Die Stärke der Verschlüsselung hängt hauptsächlich von der Verschlüsselungsmethode und der Schlüsselkomplexität ab. Der Schlüssel ist ein Parameter, der bei der Verwendung eines kryptografischen Algorithmus eingegeben wird. Er ist ein wichtiger Parameter, der bestimmt, ob der Chiffretext sicher ist. Je länger der Schlüssel ist, desto schwieriger ist er.
Die Betriebsumgebung dieses Tutorials: Windows 7-System, Dell G3-Computer.
Die Stärke der Verschlüsselung hängt hauptsächlich von der Verschlüsselungsmethode und der Schlüsselkomplexität ab.
Schlüssel
Ein Schlüssel ist ein Parameter, der bei der Verwendung eines Verschlüsselungsalgorithmus eingegeben wird. Derselbe Klartext erzeugt unter demselben kryptografischen Algorithmus und unterschiedlichen Schlüsselberechnungen unterschiedliche Chiffretexte. Viele bekannte kryptografische Algorithmen sind öffentlich und der Schlüssel ist ein wichtiger Parameter, der bestimmt, ob der Chiffretext sicher ist. Je länger der Schlüssel ist, desto schwieriger kann er beispielsweise sein Bis 256 Situationen. Der bekannte DES-Algorithmus verwendet einen 56-Bit-Schlüssel. Der Hauptgrund ist, dass der 56-Bit-Schlüssel zu kurz ist innerhalb weniger Stunden geknackt werden. Schlüssel werden in symmetrische Schlüssel und asymmetrische Schlüssel unterteilt.
Klartext/Chiffretext
Klartext sind die Originaldaten vor der Verschlüsselung, und Chiffretext ist das Ergebnis, das nach der Verschlüsselungsoperation erhalten wird, um Chiffretext zu werden Derselbe Schlüssel in den Verschlüsselungs- und Entschlüsselungsprozessen. Zu den gängigen symmetrischen Verschlüsselungsalgorithmen gehören DES, 3DES, AES, RC5 und RC6. Der Vorteil eines symmetrischen Schlüssels besteht darin, dass er schnell berechnet werden kann, aber er hat auch Nachteile. Der Schlüssel muss an beiden Enden der Kommunikation geteilt werden, damit jeder den Schlüssel kennt und die andere Partei ihn entschlüsseln kann Wenn alle Clients denselben Schlüssel verwenden, ist dieser Schlüssel wie ein Hauptschlüssel. Wenn jeder Client und jeder Server einen separaten Schlüssel verwalten müssen . Dies kann serverseitig zu Albträumen führen.
Das Folgende ist eine einfache symmetrische Verschlüsselung zum Verschlüsseln von Klartext in ASCII.
# 加密的方式:在ASCII的基础上 + 密钥的值 def encipher(plain_text, key): # 加密 cipher_text = [] for c in plain_text: cipher_text.append(str(ord(c) + key)) return ' '.join(cipher_text) def decipher(cipher_text, key): # 解密 plain_text = [] for c in cipher_text.split(" "): plain_text.append(chr(int(c)+key)) return "".join(plain_text)if __name__ == '__main__': print "cipher_text:", encipher("abcdef", 0) print "plain_text:", decipher("97 98 99 100 101 102", 0)
Asymmetrischer Schlüssel
Asymmetrischer Schlüssel (Public-Key-Kryptographie), auch bekannt als Public-Key-Verschlüsselung, der Server generiert ein Schlüsselpaar, ein privater Schlüssel wird auf dem Server gespeichert, nur Sie kennen ihn, und der andere ist einer ist der öffentliche Schlüssel, der für jedermann frei zugänglich gemacht werden kann.
Der Klartext des Clients wird mit dem öffentlichen Schlüssel verschlüsselt und der Chiffretext muss mit dem privaten Schlüssel entschlüsselt werden. Asymmetrische Schlüssel verwenden unterschiedliche Schlüssel bei den Verschlüsselungs- und Entschlüsselungsprozessen. Verschlüsselung und Entschlüsselung sind asymmetrisch, daher wird dies als asymmetrische Verschlüsselung bezeichnet.
Im Vergleich zur symmetrischen Schlüsselverschlüsselung ist bei der asymmetrischen Verschlüsselung kein Austausch von Schlüsseln zwischen dem Client und dem Server erforderlich. Solange der private Schlüssel nicht an einen Benutzer gesendet wird, kann er nicht entschlüsselt werden, selbst wenn er online abgefangen wird Ein gestohlener öffentlicher Schlüssel nützt nichts. Die übliche asymmetrische Verschlüsselung ist RSA. Der Prozess der asymmetrischen Verschlüsselung und Entschlüsselung:
Der Server generiert das Paar aus öffentlichem Schlüssel und privatem Schlüssel
Der private Schlüssel wird auf dem Server gespeichert und der öffentliche Schlüssel wird an den Client gesendet
Der Client verwendet den öffentlichen Schlüssel, um den Klartext zu verschlüsseln, und überträgt ihn an den Server. Der Server verwendet den privaten Schlüssel, um den Chiffriertext zu entschlüsseln und den Klartext zu erhalten Stellen Sie sicher, dass die Daten vom realen Server ohne Unterauftrag gesendet werden, und stellen Sie sicher, dass die übertragenen Daten nicht manipuliert wurden. Um diese beiden Probleme zu lösen, müssen digitale Signaturen wie eine Signatur im täglichen Leben verwendet werden Sobald Ihr Name auf einem Vertrag steht, wird dieser von niemandem gefälscht, da er Ihnen gehört. Die exklusive Handschrift kann von niemandem erstellt werden.
Schritt 1: Der Server verarbeitet die Nachricht über Hash, um die Digest-Informationen zu generieren. Die Digest-Informationen werden mit dem privaten Schlüssel verschlüsselt, um eine Signatur zu generieren.
Schritt 3: Der Client extrahiert den Text der Nachricht und führt die gleiche Hash-Verarbeitung durch. Die erhaltenen Digest-Informationen werden mit den zuvor entschlüsselten Digist2 verglichen. Wenn die beiden gleich sind, bedeutet dies, dass der Inhalt nicht manipuliert wurde. andernfalls wird der Inhalt geändert. Denn solange sich der Textinhalt geringfügig ändert, werden völlig andere zusammenfassende Informationen herausgehasht.
Digitales Zertifikat, auch CA genannt, ist ein anerkanntes Zertifikat, das von einer maßgeblichen Organisation für eine Website ausgestellt wird. Dieses Zertifikat wird von allen (Browsern) anerkannt. Ist es nicht sicher genug? eine digitale Signatur?
Es gibt eine Situation, in der der Browser nicht feststellen kann, ob alle echten Server wirklich echt sind. Hier ist ein einfaches Beispiel: Hersteller A installiert ein Schloss an Ihrem Haus und gibt Ihnen gleichzeitig den Schlüssel Wenn Sie das Schloss öffnen, können Sie sicher sein, dass der Schlüssel und das Schloss übereinstimmen. Wenn jemand den Schlüssel oder das Schloss wechselt und Sie die Tür nicht öffnen können, wissen Sie, dass es gestohlen wurde Ein anderes Set sieht auf den ersten Blick ähnlich aus, aber die Qualität ist viel schlechter. Obwohl Schlüssel und Schloss übereinstimmen, sind Sie nicht sicher, ob es Ihnen wirklich von Hersteller A gegeben wurde. Zu diesem Zeitpunkt können Sie die Qualitätsprüfungsabteilung darum bitten Überprüfen Sie es. Stammt dieser Satz Schlösser wirklich von Hersteller A?
In ähnlicher Weise, denn wenn jemand (Zhang San) den vom echten Server an den Browser gesendeten öffentlichen Schlüssel durch seinen eigenen öffentlichen Schlüssel ersetzt, dann verwendet Zhang San seinen eigenen privaten Schlüssel, um die gleichen Schritte durchzuführen, um den Text zu hashen, digital zu signieren, und schließlich ist an den erhaltenen Ergebnissen nichts auszusetzen, aber tatsächlich wird das, was der Browser sieht, nicht vom realen Server bereitgestellt, sondern von Zhang San von innen nach außen geändert (öffentlicher Schlüssel in privaten Schlüssel).
Wie stellen Sie also sicher, dass der öffentliche Schlüssel, den Sie gerade verwenden, derjenige ist, der Ihnen vom echten Server gesendet wird? Um dieses Problem zu lösen, nutzen wir digitale Zertifikate. Digitale Zertifikate werden im Allgemeinen von einer digitalen Zertifizierungsstelle (Certificate Authority) ausgestellt. Das Zertifikat enthält den öffentlichen Schlüssel des realen Servers und einige andere Informationen über die Website. Die digitale Zertifizierungsstelle verschlüsselt es mit ihrem eigenen privaten Schlüssel und sendet es an den Browser . Der Browser verwendet das digitale Zertifikat. Der öffentliche Schlüssel der Organisation wird entschlüsselt, um den öffentlichen Schlüssel des realen Servers zu erhalten. Dieser Prozess basiert auf dem öffentlichen Schlüssel, der von einer allgemein anerkannten Zertifizierungsstelle erhalten wurde, und ist daher eine sichere Methode.
Für mehr Computerwissen besuchen Sie bitte die FAQ-Kolumne!
Das obige ist der detaillierte Inhalt vonDie Stärke der Verschlüsselung hängt hauptsächlich davon ab, was. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!