Nous devons d’abord supposer que Eve n’est que passive. Je veux dire par là qu’elle envoie honnêtement la carte à Bob et que ce qu’elle rapporte à Alice est bien la réponse de Bob. Si Eve peut modifier les données dans un sens ou dans les deux (et que son action reste non détectée), tout est permis.
(Pour honorer les traditions de longue date, les deux parties honnêtes impliquées dans la conversation s'appellent Alice et Bob. Dans votre texte, vous dites "vous". Mon vrai nom n'est pas "Alice", mais je vous répondrai comme si vous écriviez que Alice veut vérifier le numéro de téléphone de Bob.)
La réponse simple (mais faible) consiste à utiliser une fonction de hachage. Alice écrit sur la carte: "retournez-moi le hachage SHA-256 de votre numéro de téléphone". SHA-256 est une fonction de hachage cryptographique censée être sécurisée, pour autant que les fonctions de hachage disparaissent. Le calculer à la main serait fastidieux mais toujours faisable (environ 2500 opérations 32 bits, où chaque opération est une addition, un décalage ou une rotation de mots, ou une combinaison de bits au niveau des bits; Bob devrait pouvoir le faire en une journée ou alors).
Maintenant, quel est faible à ce sujet? SHA-256, étant une fonction de hachage cryptographique, résiste aux "pré-images": cela signifie que, avec une sortie de hachage, il est très difficile de récupérer une entrée correspondante (c'est le problème auquel Eve est confrontée). Cependant, "très difficile" signifie "la méthode la plus simple est la force brute: essayer les entrées possibles jusqu'à ce qu'une correspondance soit trouvée". Le problème, c'est que la force brute est facile ici: il n'y a pas beaucoup de numéros de téléphone possibles (en Amérique du Nord, c'est 10 chiffres, soit à peine 10 milliards). Bob veut faire les choses à la main, mais nous ne pouvons pas supposer qu'Eve est si limitée. Un PC de base peut essayer quelques millions de hachages SHA-256 par seconde . Eve se fera en moins d’une heure (moins de 5 minutes si elle utilise un processeur graphique).
C'est un problème générique: si Bob est déterministe (c'est-à-dire que pour un message donné d'Alice, il retournera toujours la même réponse), Eve peut le simuler. Notamment, Eve sait tout sur Bob sauf le numéro de téléphone. Elle gère donc pratiquement 10 milliards de Bobs, qui ne diffèrent que par leur numéro de téléphone supposé; et elle attend que l'un des Bobs virtuels retourne ce que le vrai Bob a réellement rendu. La faille affecte de nombreux types de solutions "intelligentes" impliquant des nonces aléatoires et un chiffrement symétrique, entre autres choses. Il s’agit d’un défaut grave, dont la racine réside dans l’énorme différence de puissance de calcul entre Eve et Bob (maintenant, si Bob avait aussi un ordinateur aussi grand que celui d’Eve, il pourrait alors utiliser un ordinateur lent.fonction de hachage grâce à l'utilisation de nombreuses itérations; C’est plus ou moins le but du mot de passe, avec le numéro de téléphone au lieu du mot de passe; voir bcrypt et aussi cette réponse ).
Par conséquent, une solution non faible doit impliquer un certain hasard de la part de Bob: Bob doit lancer une pièce de monnaie ou lancer des dés à plusieurs reprises, et injecter les valeurs dans ses calculs. De plus, Eve ne doit pas être en mesure de comprendre ce que Bob a fait, mais Alice doit pouvoir le faire, de sorte que certaines informations sont transmises confidentiellement de Bob à Alice. C'est ce qu'on appelle le cryptage asymétrique ou, au moins, l'accord de clé asymétrique. L'algorithme le plus simple de cette classe à calculer, mais toujours raisonnablement sécurisé, est alors RSA avec le remplissage PKCS # 1 v1.5 . RSA peut utiliser comme exposant public. Le protocole va donc comme suit:e = 3
Le calcul d'Alice nécessitera un ordinateur (ce que fait un ordinateur est toujours élémentaire et réalisable à la main, mais l'ordinateur est diablement rapide, donc le "faisable" risque de prendre trop de temps à faire en pratique; le déchiffrement RSA à la main prendrait beaucoup semaines).
(En fait, nous pourrions avoir un calcul manuel plus rapide en utilisant le cryptage McEliece , mais alors la clé publique - ce que Alice écrit sur la carte - serait énorme et une carte ne ferait tout simplement pas l'affaire; Eve devrait alors transporter un livre complet de chiffres.)