Petit jeu pour passer l'été si vous vous ennuyez.
Trouver P et Q, 2 nombres entiers premiers tels que
cle_pub_768 = P * Q = 1550880802783769298423921500751307878471020215206 71110279311199011387539455345999975760530467173585609 15975553897974089381733440436747047809863900699066790 96728933081405044935969514508676239942493440750589270 015739962374529363251827
Par exemple, voici un détail d'un essai de vérification de la VA768 sur une carte ayant pour expiration avril 2003 (Les X visent à masquer le numéro de carte réel) :
Prestataire 16 (lecture h74 octets à partir de l'adresse 08 D8)
2E 16 70 3A 30 00 06 49 3F 06 FD 86 34 CC 0C B5 37 C4 79 5D 36 A2 69 8A 36 83 2D 08 3B 35 F4 CC 33 26 21 71 39 0F 9E 78 38 6C 74 89 3A E0 B1 16 32 7F 4B 16 3D CE 37 5F 30 BA 0E 4E 3B 38 41 34 33 33 D4 9E 34 08 9F 78 36 4D 21 98 34 E7 5C 88 3B 2D 18 BC 3C ED 6A 93 37 57 04 24 3E FC EB A1 3D 0C 22 D1 31 90 3D EA 34 24 7A CD 3X XX XX XX 3X XX XX XX
On enlève les 3 tous les 8 quartets :
on obtient 0 00 06 49 F 06 FD 86 4 CC 0C B5 7 C4 79 5D 6 A2 69 8A 6 83 2D 08 B 35 F4 CC 3 26 21 71 9 0F 9E 78 8 6C 74 89 A E0 B1 16 2 7F 4B 16 D CE 37 5F 0 BA 0E 4E B 38 41 34 3 33 D4 9E 4 08 9F 78 6 4D 21 98 4 E7 5C 88 B 2D 18 BC C ED 6A 93 7 57 04 24 E FC EB A1 D 0C 22 D1 1 90 3D EA 4 24 7A CD X XX XX XX X XX XX XX
soit 0000649F06FD864CC0CB57C4795D6A2698A6832D08B35F4CC326217190F9E7886C7489AE0B1 1627F4B16DCE375F0BA0E4EB384134333D49E4089F7864D21984 E75C88B2D18BCCED6A937570424EFCEBA1D0C22D11903DEA4 247ACDXXXXXXXXXXXXXX
Maintenant sous Maple : >VA_allongee768:=convert(`0000649F06FD864CC0CB57C4795D6A2698A6832D08B35F4CC326217190F9E7886C7489AE0B11627F4B16DCE375F0BA0E4EB384134333D49E4089F7864D21984E75C88B2D18BCCED6A937570424EFCEBA1D0C22D11903DEA4247ACDXXXXXXXXXXXXXX`, decimal, hex); >sign_allongee768:=VA_allongee768 &^ 3 mod cle_pub_768; >hex_sign_allongee768:=convert(sign_allongee, hex768, decimal); hex_sign_allongee112001 := 1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF\ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0084B2C6DB\ FF2E8C062E4F81F9B71456AE39XXXXXX >hex_Inv_sign_allongee768:=convert(2^753 -sign_allongee768, hex, decimal); hex_Inv_sign_allongee768 := FF7B4D392400D17XXXXXB07E0648EBA951C6AXXXXX On voit donc un motif de 41 octets commençant par FF puis 2 signatures SHA-1 de 20 octets chacune. Ensuite sous Maple : >ifactor(cle_pub_768, 'lenstra'); 2 jours après toujours rien, on peut toujours rêver, peut être qu'au bout de 1000 ans sans éteindre l'ordinateur. Cette instruction a pour objet de faire la factorisation de la clé publique, Maple est très lent pour factoriser de grands nombres entiers même avec la méthode Lenstra (Courbes elliptiques)
Ce procédé de signature ne permet pas non plus, à première vue, de faire des signatures forgées sans connaître la clé privée (même si des collisions sont trouvées sur l'algorithme de hachage SHA-1 utilisé)
Le cassage de la clé 768 bits reste envisageable, à condition de disposer de beaucoup de ressources de calcul et d'avoir de l'imagniation : ce serait le record du monde de factorisation.
Pour les néophytes qui n'auraient rien compris, ne soyez pas rassurés :
la voie du clônage de carte bancaire (y compris celles émises depuis novembre 1999)
reste beaucoup plus simple, possible par les fraudeurs dès aujourd'hui et le restera pendant de nombreuses années si les banques ne retirent pas les cartes actuellement en circulation.
Cette méthode a moins d'intérêt scientifique.
De plus, d'après des documents internes du cartel, l'attaque de la Yescard 320 bits
avec des numéro bidons fonctionnera au moins jusqu'au 1er mars 2002.