La cryptologie expliquée à mon voisin qui n'y connait rien mais qui voudrait savoir... Comme dans toutes mes rubriques "Le coin du cryptologue", un conseil pratique se trouve à la fin.
Vous trouverez les articles précédents sur le sujet :
1. Le calcul d’empreinte dans la lettre mensuelle de Forum ATENA du mois d’avril 2016
2. Chiffrer, déchiffrer, décrypter dans celle du mois de mai
3. Le chiffrement à clé publique dans celle du mois de juin
4. La signature numérique dans celle du mois de septembre
5. Le chiffrement symétrique dans celle du mois d’octobre
6. Les échanges des clés de chiffrement dans celle du mois de novembre
Deux problèmes posés au chiffrement classique
Le chiffrement dit « classique » se fait en combinant le chiffrement symétrique pour chiffrer, et le chiffrement asymétrique pour échanger, en assurant sa confidentialité, la clé qui va servir à chiffrer, puis à déchiffrer, le message.
Alice veut correspondre avec Bob en garantissant la confidentialité de ses messages. Elle génère une clé secrète, aléatoire qui va servir pour la durée de la session. Avec cette clé secrète, Alice chiffre ses messages avec un algorithme symétrique comme l’AES. Bob, destinataire des messages d’Alice, doit les déchiffrer avec la même clé et le même algorithme symétrique. Pour transmettre à Bob cette clé secrète, et qui doit le rester, en toute confidentialité sur un réseau qui peut ne pas être sûr, Alice a besoin de la clé publique de Bob qu’il lui fournit dans son certificat numérique.
La clé publique de Bob est mathématiquement liée à une clé privée que Bob possède et ne donne à personne. Si on chiffre avec l’une des clés, publique ou privée, et un algorithme de chiffrement asymétrique comme le RSA, on déchiffre avec l’autre clé et le même algorithme. Bien entendu, à partir de la clé publique de Bob, qu’il donne à qui la lui demande dans son certificat numérique, il ne doit pas être possible à quiconque de reconstituer la clé privée de Bob.
Avec la clé publique de Bob, et un algorithme asymétrique, Alice chiffre la clé secrète aléatoire qu’elle a générée, et que Bob pourra déchiffrer avec sa clé privée, avec le même algorithme asymétrique utilisé par Alice. Bob reçoit le message chiffré avec la clé secrète d’Alice, et la clé secrète d’Alice qu’elle a chiffrée avec la clé publique de Bob. Il déchiffre cette clé secrète avec sa clé privée, et s’en sert pour déchiffrer le message d’Alice.
Mais il y a deux problèmes :
1. Un ordinateur, machine déterministe, ne peut créer par logiciel une clé purement aléatoire. En effet, sans signal extérieur aléatoire, un ordinateur ne peut créer que des clés pseudo aléatoires. Dans les grandes séries de clés générées, celles-ci ont tendance à se répéter, ce qui peut les rendre prédictibles et donc affaiblir la robustesse du chiffrement symétrique.
2. À partir d’une clé publique qui intervient dans un chiffrement asymétrique, il est très coûteux en temps, avec un calculateur classique, de reconstituer la clé privée, mathématiquement liée à la clé publique. Très coûteux en temps mais pas impossible, l’algorithme de Shor peut aider. La difficulté de reconstituer une clé privée, qui est un secret qui engage l’identité de son propriétaire, à partir d’une clé publique qui, comme son nom l’indique, est publique, repose sur un problème mathématique difficile à résoudre, comme la factorisation d’un très grand nombre, produit de deux nombres premiers, dans le cas de l’algorithme asymétrique RSA.
La physique quantique apporte une solution très sûre au problème de la difficulté pour un ordinateur de créer des clés purement aléatoires utilisées dans le chiffrement symétrique.
Un calculateur quantique, quand il sera pleinement opérationnel, permettra de résoudre dans un temps suffisamment court la factorisation d’un grand nombre utilisé dans un chiffrement asymétrique. Donc il permettra de retrouver les deux nombres premiers dont le produit constitue ce grand nombre, et, de là, la clé privée correspondant à cette clé publique. Le chiffrement asymétrique comme le RSA, solution pour transmettre la clé secrète de chiffrement symétrique, ne pourra alors plus être conseillé. Mais la physique quantique apporte, dès aujourd’hui aussi, une solution très sûre à l’échange des clés de chiffrement symétriques.
Orienter la polarisation d’un photon, particule élémentaire, onde et grain d’énergie
La physique quantique s’applique aux particules élémentaires de l’infiniment petit, comme les photons, et explique que la lumière peut être vue comme constituée de photons, qui sont des ondes ou des grains d’énergie, ou les deux à la fois. Nous ne développerons pas de théorie sur la physique quantique, hors propos dans cet article. Retenons seulement qu’il est possible d’orienter la polarisation de chaque photon, objet quantique, et de les envoyer, un par un, sur un miroir incliné semi-réfléchissant.
Le principe de décohérence quantique explique qu’on ne peut observer directement la polarisation d’un photon sans que cette observation ne change son orientation. Mais on peut quand même déterminer si les photons ont traversé le miroir semi réfléchissant ou au contraire ont été réfléchis.
Si le photon dont la polarité a été orientée, rencontre le miroir semi-réfléchissant sous une incidence α par rapport aux stries du miroir, la probabilité qu’il passe à travers, sans être réfléchi, est exactement égale à cos^2 α (lire : cosinus carré alpha)
- Si le photon et le miroir ont la même orientation, cos^2 0 = 1 et la probabilité que le photon passe est de 100%. Donc le photon traverse le miroir.
- Si le photon et le miroir sont à angle droit (90 degré), cos^2 ??/2 = 0 et la probabilité que le photon passe est de 0%. Donc le photon est réfléchi par le miroir.
- Si le photon et le miroir sont à 45 degré, cos^2 ??/4 = 1/2 et le photon a exactement une chance sur deux de traverser le miroir, et une chance sur deux d’être réfléchi. Le résultat est donc mathématiquement imprédictible.
La génération d’un nombre purement aléatoire rendue possible par la physique quantique
Nous prenons un miroir semi réfléchissant incliné à 45 degré par rapport à l’orientation de la polarisation de chaque photon qui le frappe. On envoie les photons un par un sur le miroir. Si le photon traverse, il parvient à un capteur, situé derrière le miroir, qui entre un bit à 1 dans une pile. Si le photon ne traverse pas, il est réfléchi et parvient à un autre capteur situé devant le miroir qui entre un bit à 0 dans la même pile.
Comme chaque photon a mathématiquement une chance sur deux de traverser le miroir, provoquant l’entrée d’un bit à 1, ou d’être réfléchi, provoquant l’entrée d’un bit à 0, photon après photon, un nombre purement aléatoire se constitue dans la pile. Ce nombre sera utilisé comme clé secrète qui interviendra dans le chiffrement symétrique.
Dans l’idéal, si la longueur de la clé est égale à la longueur du message qu’on veut chiffrer, et si cette clé n’est utilisée qu’une seule fois, on peut obtenir un chiffrement incassable (comme le chiffre de Vernam). Mais si on limite la longueur de la clé à 128, 192 ou 256 bits, on peut utiliser le chiffrement symétrique AES.
Ainsi est résolue avec élégance, grâce à la physique quantique, la génération de clés purement aléatoires, qui peuvent servir dans un chiffrement symétrique. Des générateurs de clés purement aléatoires existent dans le commerce, voir l’exemple pratique de l’université de Genève à la fin de cet article.
Reste à trouver un moyen d’échanger cette clé entre Bob et Alice, puisque, quand un calculateur quantique sera opérationnel, le chiffrement asymétrique type RSA ne pourra plus assurer une sécurité suffisante dans le transfert de la clé symétrique.
Le transfert sûr de la clé secrète, à travers un réseau qui peut être public
Le calculateur quantique rendra moins opérante la sécurité du chiffrement asymétrique pour acheminer la clé symétrique de chiffrement/déchiffrement, mais là encore, la physique quantique apporte, dès aujourd’hui, une solution.
Alice veut transmettre la clé secrète, qu’elle vient de générer, à Bob, à travers une fibre optique qui peut ne pas être protégée. Elle sait orienter la polarisation des photons et les envoyer un par un. Elle oriente chaque photon en « rectiligne » (0 ou 90 degrés), ou en « diagonal » (45 ou 135 degrés) par rapport à la verticale. Alice convient que, pour la clé qu’elle veut transmettre à Bob, pour un bit de la clé à 0, elle oriente la polarisation du photon à 45 ou à 90 degrés. Pour un bit à 1, elle l’oriente à 0 ou à 135 degrés.
Bob place un miroir sur le trajet des photons. Il oriente son miroir en rectiligne (0 ou 90 degrés) ou en diagonal (45 ou 135 degrés) par rapport à la verticale, mais n’a aucune idée de l’orientation de la polarisation de chacun des photons qu’Alice lui envoie. Alice ne connait pas comment Bob oriente son miroir pour chaque photon reçu. Bob peut juste savoir si le photon a traversé ou pas son miroir.
Si le photon passe, il note un bit à 0. Si le photon ne passe pas, il note un bit à 1.
Par un autre canal, par exemple avec son smartphone, Bob téléphone à Alice pour lui dire s’il avait, pour chaque photon reçu, orienté son miroir en rectiligne (0 ou 90 degrés), ou en diagonal (45 ou 135 degrés), par rapport à la verticale.
Donc Bob dit à Alice, par téléphone : « rectiligne » ou « diagonal ».
Si Bob a dit au téléphone « rectiligne » Alice répond à Bob « oui » si elle avait orienté son photon à 0 ou à 90 degrés, et « non » si elle avait orienté son photon à 45 ou à 135 degrés.
Si Bob a dit au téléphone « diagonal », Alice répond à Bob « oui » si elle avait orienté son photon à 45 ou 135 degrés, et « non » si elle avait orienté son photon à 0 ou 90 degrés.
Quand Alice a répondu « oui » à Bob, si la polarisation du photon faisait un angle de 0 degré avec l’orientation du miroir, il y avait 100% de chance que le photon ait traversé le miroir. Bob considère que le bit de la clé est à 0. Si la polarisation du photon faisait un angle de 90 degré avec l’orientation du miroir. Il y avait 100% de chance que le photon n’ait pas traversé le miroir. Bob considère que le bit de la clé est à 1.
Quand Alice a répondu « non » à Bob, il n’y avait que 50% de chance que le photon ait traversé le miroir car la polarisation du photon faisait un angle de 45 ou 135 degrés avec l’orientation du miroir.
Alice et Bob laissent tomber les bits issus des configurations où la probabilité que le photon traverse ou ne traverse pas le miroir était de 50% (ceux pour lesquels Alice a répondu « non ») et ne gardent que les valeurs déterministes (celles pour lesquelles Alice a répondu « oui ». Alice et Bob se partagent ainsi la clé qui va servir au chiffrement symétrique, comme l’AES (dans cet exemple : 0110).
Pourquoi cette méthode de transfert de clé est-elle sûre ?
Si Ève, l’espionne passive (Eyedropper), se place au milieu des échanges entre Bob et Alice, pour observer la polarisation d’un photon, l’orientation du photon émis par Alice est modifiée, principe de décohérence quantique. Ève ne connaissant pas l’orientation initiale du photon choisie par Alice ne saura pas avec quelle orientation elle devra le renvoyer à Bob après avoir observé ce photon. La probabilité que Bob et Alice s’aperçoivent que la clé a été observée est ainsi très forte.
Pour être persuadés que la méthode choisie a donné les bons résultats, Bob et Alice choisissent de sacrifier quelques bits de la clé. Bob annonce par exemple à Alice, par téléphone : « Le premier bit de notre clé était 0 ». Alice approuve et ils enlèvent de la clé ce premier bit révélé. La clé qu’ils ont ainsi échangée est, dans cet exemple, 110.
Ainsi, avant même que le calculateur quantique soit opérationnel et condamne la sécurité du transfert de clés secrètes chiffrées par chiffrement asymétrique, la physique quantique apporte une réponse à ce transfert, et aussi une réponse à la production de clés symétriques vraiment aléatoires.
Grâce à une autre faculté de la physique quantique, Bob et Alice n’auront, un jour, même plus à s’échanger une clé symétrique à travers un média physique comme une fibre optique. Alice génèrera une clé et celle-ci sera automatiquement générée chez Bob.
Magie ? Non principe d’intrication quantique. Les Chinois disent avoir déjà une solution entre deux entités éloignées de plusieurs centaines de kilomètres.
Le conseil crypto du mois
À partir du web http://www.randomnumbers.info/ de l’université de Genève, vous pouvez utiliser une application, basée sur la physique quantique, pour générer des nombres purement aléatoires.
Vous choisissez la quantité de nombres que vous souhaitez générer et leur valeur maximale. Dans cet exemple, on demande la génération de 3 nombres aléatoires compris entre 0 et 10.
Les éléments de la suite des trois nombres proposés, par exemple (3, 8 et 5) sont aléatoires. Vous pouvez vous en servir pour offrir des lots à 3 personnes dans une liste de personnes numérotée de 0 à 10, ici la 3e, 8e et 5e personne de la liste numérotée, sachant que des personnes peuvent être tirées au sort plusieurs fois, puisque la même valeur peut sortir plusieurs fois.
Ajouter un commentaire