[PYTHON] L'expérience de la CIA pour déchiffrer le mécanisme de l'écoute téléphonique publique

À la demande, la CIA a examiné si le code ne pouvait être déchiffré que par la vulnérabilité sans la porte dérobée. Enquête pour soutenir le décryptage de l'affaire Snowden et la fuite d'informations téléphoniques publiques suivantes. https://www.asahi.com/articles/ASN2D638WN2DUHBI010.html Sous l'hypothèse, le code de courbe elliptique de 112 bits (ECC) pourrait être déchiffré en 1/100 seconde. Les performances de décodage sont équivalentes au décodage par un ordinateur quantique complet (50 ans plus tard?). ECC-112 est un record du monde de décryptage. Décrypté en 110 ans avec Preste 3 et en centaines d'années avec PC.

Il sera évalué avec ECC-256 ou supérieur, mais il semble effrayant qu'il puisse être facilement déchiffré avec CIA. On dit que c'est une écoute par la porte arrière, mais c'est possible sans préparation. La plupart des chiffrements publics ont été migrés de RSA-2048 vers ECC-256. Le code à courbe elliptique est mathématiquement fort, mais a la propriété d'être vulnérable aux attaques. Le miso est crypté par ECC (y ^ 2 = x ^ 3 + ax + b (mod p), p, et le chiffre r est un nombre premier) Attaquez en profitant de ne pas utiliser b (et donc r). Dans une communication cryptée, seul le point (x, y) sur l'ECC est envoyé.

C'est intéressant, alors annonçons-le lors du Symposium sur l'analyse numérique en juin. Jabashi: Je suis en sécurité car je n'ai pas les compétences d'interception et d'attaques vulnérables et je ne suis pas intéressé.

Échange de clés entre A et B par ECC: step1: A: Créez le point ECC P = (Px, Py) et envoyez-le à B. step2: A: Créez un nombre aléatoire m, calculez le point ECC Q = m * P et envoyez Q à B. B: Créez un nombre aléatoire n, calculez le point ECC R = n * P et envoyez R à A. step3: A: Calculez S = m * R avec le R reçu B: Calculez T = n * Q avec le Q reçu

Principe commun d'échange de clés Ce qui suit (S = T) est établi par la règle d'échange d'ECC   S=mR=m(nP)=n(mP)=nQ=T La clé commune est Sx avec S = T = (Sx, Sy) Même si les points P, Q et R transmis sont interceptés, la clé commune Sx est déchiffrée par ECC. Sinon, vous ne pouvez pas voler Miso.

Méthode d'écoute de la clé commune (Sx) par cette méthode Supposition: (1) Utilisez la vulnérabilité pour décocher le traitement ECC de B. (2) Les transmissions A et B peuvent être interceptées, modifiées et transmises. Méthode d'écoute: étape 1: envoyer de A à B, intercepter le point P, passer à E et envoyer à B. étape 2: Intercepter les points Q et R des deux transmissions A et B. Décodez n avec cette méthode et envoyez R recalculé avec R = n * P à A. étape 3: Calculez T = n * Q et décodez Sx de T = S = (Sx, Sy)

Au cours d'un mois, ECC-256 prévoyait de développer un programme de calcul de paramètres pouvant être déchiffré par une attaque, mais l'a annulé. J'ai pensé à la légère que je n'attaquerais pas. Il existe moins de 10 types recommandés d'ECC-256 actuellement utilisés. Le code Bitcoin est speck256k1, ce qui est facile à comprendre pour chaque banque. Si ECC-256 calcule et publie un coefficient d'attaque qui peut être instantanément déchiffré, et s'il est mal utilisé et que le dépôt est volé sur le compte bancaire d'une autre personne, notre responsabilité pénale peut être engagée. Même si vous ne le publiez pas, si vous créez un programme et le demandez, il peut être écouté et divulgué. Avant l'annonce en juin, je m'adresserai au ministère de l'Intérieur et des Communications et au ministère du Commerce international et de l'Industrie, qui sont les agences gouvernementales auxquelles appartient le code. Un bref matériel de déchiffrement (la plupart des exemples) a été publié sur https://ecc-256.com. Une copie d'écran (démo) du programme python de décryptage, des données d'entrée, des résultats et de l'exécution a également été ajoutée au programme web python ci-dessus (30 mars 2020). Les programmes python sont environ 20 fois plus lents que C + gmp (longueur multiple). Même ainsi, le décodage de l'ECC 160.192.224.256 bits prend environ 1.10.100.1000 secondes sur un PC 4Ghz, respectivement. Le temps de décodage varie plusieurs fois. Il s'est avéré que la méthode d'apprentissage λ découverte il y a deux ans peut être appliquée au décodage. Il semble que le code de courbe elliptique de 256 bits puisse être déchiffré instantanément (0,05 seconde) sur un PC. La conception détaillée est actuellement en cours et des mesures réelles sont attendues après les vacances. Le temps de pré-apprentissage sera de quelques jours sur le PC. (7 avril 2020) Attaque de vulnérabilité de code de courbe elliptique. Réussir à combiner avec la méthode d'apprentissage λ. Le code 256 bits actuel pourrait être décrypté sur un ordinateur personnel (4Ghz) en 0,05 seconde en moyenne (25 avril 2020). Le temps d'étude est d'un jour (24 heures) sur un ordinateur. Amélioration supplémentaire, visant 1 seconde (1 cas en moyenne 0,01 seconde) pour 100 décodages après des vacances consécutives. Dans le même temps, portez-le en python (uniquement la partie décryptage). Le bluetooth sans fil s'est avéré être facilement déchiffré sans vérification de légitimité. Il est actuellement patché. Cependant, de nombreuses personnes laissent le côté modem (routeur) sans surveillance car il est difficile d'appliquer le correctif.

Recommended Posts

L'expérience de la CIA pour déchiffrer le mécanisme de l'écoute téléphonique publique
[Statistiques] Comprendre le mécanisme des graphiques Q-Q avec animation.
J'ai étudié le mécanisme de connexion flask!
Expliquer le mécanisme de la classe de données PEP557
Pandas du débutant, par le débutant, pour le débutant [Python]
Examinons le mécanisme de la chinchirorine de Kaiji