[PYTHON] Das Experiment der CIA zur Entschlüsselung des Mechanismus des Abhörens öffentlicher Telefone

Auf Anfrage untersuchte die CIA, ob der Code nur durch die Sicherheitsanfälligkeit ohne Hintertür entschlüsselt werden kann. Untersuchung zur Unterstützung der Entschlüsselung des Snowden-Falls und des folgenden öffentlichen Informationslecks. https://www.asahi.com/articles/ASN2D638WN2DUHBI010.html Unter dieser Annahme könnte der 112-Bit-Code für elliptische Kurven (ECC) in 1/100 Sekunde entschlüsselt werden. Die Decodierungsleistung entspricht der Decodierung durch einen vollständigen Quantencomputer (50 Jahre später?). ECC-112 ist ein Entschlüsselungs-Weltrekord. In 110 Jahren mit Preste 3 und in Hunderten von Jahren mit PC entschlüsselt.

Es wird mit ECC-256 oder höher evaluiert, aber es scheint beängstigend, dass es mit CIA leicht entschlüsselt werden kann. Es soll an der Hintertür lauschen, aber es ist ohne Vorbereitung möglich. Die meisten öffentlichen Chiffren wurden von RSA-2048 auf ECC-256 migriert. Die Kryptographie mit elliptischen Kurven ist mathematisch stark, hat jedoch die Eigenschaft, anfällig für Angriffe zu sein. Miso wird durch ECC verschlüsselt (y ^ 2 = x ^ 3 + ax + b (mod p), p und die Ziffer r ist eine Primzahl). Greife an, indem du b (und damit r) nicht verwendest. Bei der verschlüsselten Kommunikation wird nur der Punkt (x, y) auf dem ECC gesendet.

Es ist interessant, also lasst es uns auf dem Numerical Analysis Symposium im Juni bekannt geben. Jabashi: Ich bin in Sicherheit, weil ich nicht die Fähigkeiten habe, abzufangen und verletzliche Angriffe auszuführen, und ich bin nicht interessiert.

Schlüsselaustausch zwischen A und B durch ECC: step1: A: Erstellen Sie den ECC-Punkt P = (Px, Py) und senden Sie ihn an B. step2: A: Erstellen Sie eine Zufallszahl m, berechnen Sie den ECC-Punkt Q = m * P und senden Sie Q an B. B: Erstellen Sie eine Zufallszahl n, berechnen Sie den ECC-Punkt R = n * P und senden Sie R an A. step3: A: Berechnen Sie S = m * R mit dem empfangenen R. B: Berechnen Sie T = n * Q mit dem empfangenen Q.

Prinzip des gemeinsamen Schlüsselaustauschs Folgendes (S = T) wird durch die Austauschregel der ECC festgelegt   S=mR=m(nP)=n(mP)=nQ=T Der gemeinsame Schlüssel ist Sx mit S = T = (Sx, Sy) Selbst wenn die übertragenen Punkte P, Q, R abgefangen werden, wird der gemeinsame Schlüssel Sx durch ECC entschlüsselt. Wenn Sie dies nicht tun, können Sie Miso nicht stehlen.

Abhörmethode des gemeinsamen Schlüssels (Sx) durch diese Methode Annahme: (1) Deaktivieren Sie die Sicherheitsanfälligkeit, um die ECC-Verarbeitung von B zu deaktivieren. (2) Sowohl A- als auch B-Übertragungen können abgefangen, modifiziert und übertragen werden. Abhörmethode: Schritt 1: Von A nach B senden, Punkt P abfangen, zu E wechseln und nach B senden. Schritt 2: Schnittpunkte Q und R von A- und B-Übertragungen. Dekodiere n mit dieser Methode und sende R, das mit R = n * P neu berechnet wurde, an A. Schritt 3: Berechne T = n * Q und decodiere Sx von T = S = (Sx, Sy)

Es dauerte einen Monat, um ein Berechnungsprogramm für Parameter zu entwickeln, die ECC-256 bei einem Angriff entschlüsseln konnte, aber es wurde abgebrochen. Ich dachte leichthin, dass ich nicht angreifen würde. Derzeit werden weniger als 10 empfohlene ECC-256-Typen verwendet. Der Bitcoin-Code lautet speck256k1 und ist für jede Bank leicht zu verstehen. Wenn ECC-256 einen Angriffskoeffizienten berechnet und veröffentlicht, der sofort entschlüsselt werden kann, und wenn er missbraucht wird und die Einzahlung vom Bankkonto einer anderen Person gestohlen wird, kann unsere strafrechtliche Haftung bestehen bleiben. Selbst wenn Sie es nicht veröffentlichen, kann es belauscht und durchgesickert sein, wenn Sie ein Programm erstellen und danach fragen. Vor der Ankündigung im Juni werde ich zum Ministerium für innere Angelegenheiten und Kommunikation und zum Ministerium für internationalen Handel und Industrie gehen, die die Regierungsbehörden sind, zu denen der Kodex gehört. Ein kurzes Entschlüsselungsmaterial (die meisten Beispiele) wurde unter https://ecc-256.com veröffentlicht. Eine Bildschirmkopie (Demo) des Entschlüsselungs-Python-Programms, der Eingabedaten, der Ergebnisse und der Ausführung wurde ebenfalls zum obigen Web-Python-Programm hinzugefügt (30. März 2020). Python-Programme sind etwa 20-mal langsamer als C + gmp (mehrfache Länge). Trotzdem dauert das Decodieren von 160.192.224.256-Bit-ECC auf einem 4-GHz-PC ungefähr 1.10.100.1000 Sekunden. Die Dekodierungszeit variiert mehrmals. Es stellte sich heraus, dass die vor zwei Jahren entdeckte Lernmethode λ auf die Decodierung angewendet werden kann. Es scheint, dass der elliptische 256-Bit-Kurvencode auf einem PC sofort (0,05 Sekunden) entschlüsselt werden kann. Derzeit wird ein detailliertes Design erstellt, und die tatsächliche Messung wird nach den Ferien erwartet. Die Vorlernzeit auf dem PC beträgt einige Tage. (7. April 2020) Sicherheitsanfälligkeit durch elliptischen Kurvencode. Es gelang, mit der Lernmethode λ zu kombinieren. Der aktuelle 256-Bit-Code kann auf einem Personal Computer (4 GHz) in durchschnittlich 0,05 Sekunden (25. April 2020) entschlüsselt werden. Die Lernzeit am Computer beträgt einen Tag (24 Stunden). Weitere Verbesserung mit dem Ziel einer Sekunde (1 Falldurchschnitt 0,01 Sekunden) für 100 Dekodierungen nach aufeinanderfolgenden Feiertagen. Portieren Sie es gleichzeitig auf Python (nur den Entschlüsselungsteil). Es wurde festgestellt, dass der drahtlose Bluetooth-Betrieb ohne Legitimitätsprüfung leicht entschlüsselt werden kann. Es ist derzeit gepatcht. Viele Benutzer lassen das Modem (Router) jedoch unbeaufsichtigt, da es schwierig ist, den Patch anzuwenden.

Recommended Posts

Das Experiment der CIA zur Entschlüsselung des Mechanismus des Abhörens öffentlicher Telefone
[Statistik] Verstehen Sie den Mechanismus von Q-Q-Plots mit Animation.
Ich habe den Mechanismus der Flaschenanmeldung untersucht!
Erläutern Sie den Mechanismus der PEP557-Datenklasse
Pandas des Anfängers, vom Anfänger, für den Anfänger [Python]
Untersuchen wir den Mechanismus von Kaijis Chinchirorin