Wie hängt die Sicherheit eines Verschlüsselungsalgorithmus von der Faktorisierung großer Zahlen ab?
Die fehlende Phrase ist "public-key", wie in "Wie der öffentliche Schlüssel Sicherheit des Verschlüsselungsalgorithmus ist ..."
In der modernen Kryptographie gibt es zwei Hauptkategorien von Chiffren, symmetrisch (secret key) und öffentlicher Schlüssel (der ein öffentliches/privates Schlüsselpaar verwendet).
Innerhalb jeder Kategorie finden Sie die Schlüsselgrößen relativ nah. Für Public-Key-Systeme wie RSA und DH/DSA, die beide in der OpenPGP-E-Mail-Verschlüsselung verwendet werden, sind die gängigen Schlüsselgrößen heute (Anfang 2010) 1024 Bit und größer. Dies hat mit den mathematischen Anforderungen geeigneter Schlüssel zu tun, die zum Verschlüsseln und Entschlüsseln von Nachrichten verwendet werden. Für RSA, kurz gesagt, ist es viel einfacher, einen Faktor von zwei zufälligen großen Primzahlen zu erzeugen und Multiplikationen mit ihnen zu machen, verglichen mit dem Faktorisieren von sehr großen Zahlen, die keine kleinen Faktoren haben. Wie Sie entdeckt haben, ist das Factoring von sehr großen Zahlen das "Problem" oder der Ansatz, der zu Bruch RSA über rohe Kraft benötigt wird.
Diffie-Hellman/Digitaler Signaturalgorithmus (DH/DSA) basiert auf einem anderen mathematischen Problem, das diskrete Logarithmen berechnet.
Aufgrund der Eigenschaften der öffentlichen und privaten Schlüsselpaare ist der Suchraum auf Faktoren von großen Primzahlen beschränkt, was unglaublich spärlich wird, so dass es sinnvoller ist zu versuchen, Faktor zu sein jede sehr große Anzahl.
Während bei symmetrischen Chiffren wie AES, RC6, RC4, Twofish, DES und Triple-DES diese Algorithmen einen zufälligen Schlüssel einer bestimmten Bitlänge verwenden. Jede nicht-triviale (d. H. 0x000 ... 000 kann eine schlechte Schlüsselwahl sein) ist ein zufälliger Schlüssel geeignet. Wenn also bei diesen Systemen kein Angriff auf den Algorithmus selbst erfolgt, können Sie einfach Brute-Force durch den Schlüsselraum suchen (d. H. Alle 2^256 möglichen Schlüssel versuchen), um eine Nachricht ohne den geheimen Schlüssel zu entschlüsseln. Da jeder Schlüssel geeignet ist, beträgt die Dichte der Schlüssel 2^256.
Ich ignoriere Quantum Computing (theoretisch und praktisch), vor allem, weil a) kann ich keine solide Antwort geben, und b) es stellt einen großen Paradigmenwechsel, der viel angewandte Mathematik und Computerwissenschaften von Computer-Komplexität potenziell verwandelt auf seinem Kopf ist dieses Grundverständnis immer noch ein bewegliches Ziel. Oh, und die meisten meiner Feinde haben noch keinen Quantencomputer. :)
Ich hoffe, dass das den allgemeinen Unterschied zwischen den beiden Arten von Kryptosystemen, wie RSA und AES erklärt.
Sidebar: Cryptography ein reiches und komplexes Thema ist, wo die Grundlagen einfach genug sein können, zu verstehen und sogar eine naive („Lehrbuch“) Implementierung schreiben, die komplexen Feinheiten einer sicheren Implementierung macht es am besten für Programmierer Wer sind keine Kryptographieexperten, um Krypto-Systeme auf hohem Niveau zu verwenden, einschließlich der Verwendung bekannter Standardprotokolle, um Ihre Chancen zu verbessern, dass die Kryptographie eines Systems nicht der ausnutzbare Fehler in einem System ist.
Es hat nichts mit AES zu tun. –
Auch für diejenigen, die schließen wollen. Verschlüsselungsalgorithmen und Kryptographie ist ein starkes Feld der Informatik. Auch wenn dies nicht mit Ihrer Programmierung zu tun hat, heißt das nicht, dass es sich nicht um Programmierung handelt. – Mithrax
Verschlüsselung ist in der Tat ein Programmier-Thema, aber das ist eine Frage zur Zahlentheorie. – dmckee