Quels sont les principes d'un échange de clé de type Diffie-Hellman? C'est ce que nous allons voir dans cette vidéo. L'objectif n'est pas de présenter l'ensemble de la théorie mais, à partir d'un exemple, de faire sentir de quoi il s'agit. Il y a des opérations qui mathématiquement sont simples à faire et d'autres qui sont complexes. Ce qui est simple à faire et qui peut se câbler facilement dans une logique électronique c'est la multiplication d'entiers. On peut faire également facilement des opérations modulo p. Par exemple, multiplier plusieurs fois de suite un nombre par lui-même, c'est-à -dire prendre l'exponentiation, est assez facile. On va considérer des calculs modulo p avec un nombre premier de g puissance n. Prenons un exemple avec p égal 11 et g égal 7. 7 puissance 0 nous fait 1 comme toujours ; n puissance 0 fait toujours 1. 7 puissance 1 égal 7 modulo 11, nous retrouvons 7. 7 au carré c'est 49, et c'est donc 11 x 4 + 5. Le reste de la division par 11 est 5. Et donc, 7 au carré modulo 11 nous font 5. On peut continuer, 7 puissance 3, 7 puissance 4, ainsi de suite. Nous pouvons remarquer, parce que p et g sont judicieusement choisis, qu'avec 7 puissance n modulo 11, nous pouvons parcourir toutes les valeurs entre 1 et 10. Nous avons 1, 2, 3, 4, 5, 6, 7, 8, 9 et 10. Il est donc possible, pour tout nombre entre 1 et 10, de faire l'opération inverse, c'est-à -dire, à partir de x dans cette ligne, de trouver n tel que g puissance n égal x, bien sûr modulo p, c'est-à -dire dans notre exemple modulo 11. Nous avons la correspondance. À 1 correspond 0, le log de 1 c'est 0. Le log de 2 c'est 3. Pourquoi? Parce que nous remontons ici et nous trouvons que c'est l'exposant 3 qui a permis d'obtenir 2, et ainsi de suite. Il se trouve que cette opération de logarithme discret est plus complexe, et pour la faire, il faut pratiquement parcourir tous les cas. Pour trouver le logarithme de 8, il faut faire tous les essais jusqu'à trouver que 7 puissance 9 modulo 11, ça nous donne 8. Nous représentons un autre exemple avec p = 23 et g = 5. 5 puissance 6 modulo 23 nous donne 8. C'est-à -dire que le logarithme de 8 vaut 6. Voyons comment c'est utilisé d'abord sur le cas général. Alice et Bob se mettent d'accord de façon publique sur un modulo et une base g. Alice va tirer une valeur secrète a. Bob va tirer une valeur secrète b, qui va constituer la clé privée. Chacun de son côté fait g la base puissance a modulo p, et envoie cette clé qui va être la clé publique à son correspondant. À la réception de la clé de l'autre, il suffit de prendre la clé reçue, ici, g puissance b modulo p a été reçu de Bob, et faire l'exponentiation avec la clé secrète. Nous avons g puissance b modulo p à la puissance a modulo p, qui est égal à g puissance b puissance a modulo p. Et c'est égal, en entier comme en réel, à g puissance ba modulo p, qui nous donne donc la même chose que g puissance ab. Bob fait le même calcul, mais lui, il reçoit g puissance a modulo p et il connaît b. Il peut donc faire l'exponentiation ab, et il va trouver la même clé partagée. Quelqu'un qui écoute le canal voit g puissance a modulo p, g puissance b modulo p. Il n'est pas possible pour lui dans un temps raisonnable de connaître a et b. On peut se dire qu'il pourrait très bien essayer de multiplier les deux valeurs, mais g puissance a modulo p fois g puissance b modulo p, si on reprend le modulo, ça va nous donner g puissance a plus b. Et g puissance a plus b est différent de g puissance ab, donc il n'y a pas possibilité pour quelqu'un qui écoute le canal de faire le calcul qui est indiqué ici. Un petit exemple sur un cas numérique. Nous prenons de petites valeurs, mais dans la pratique, on va prendre des valeurs de p, de a, de b, qui vont être sur 100 ou 200 bits. Ça va être des nombres extrêmement grands. Alice choisit 6. Elle calcule 5 puissance 6 modulo 23. Ça nous donne 8. Elle transmet ça à Bob. Bob choisit 13. Il calcule 5 puissance 13 modulo 23, ça nous donne 21. 21 est renvoyé par Bob à Alice, qui va calculer 21 puissance 6 modulo 23, et on trouve 18. De la même façon, Bob fait 5 puissance 6 modulo 23, le 8 qui est reçu l'élève à la puissance 13, c'est sa clé privée, 8 puissance 13 modulo 23 nous donne aussi 18. La clé partagée est 18, et quelqu'un au milieu ne peut pas la connaître. Dans le cas de la 5G et du SUCI, ce n'est pas tout à fait ce principe-là qu'on utilise. On utilise des courbes elliptiques, qui sont représentées par une équation de ce type-là . Voilà un exemple de courbe elliptique représentée, et on va définir l'addition de deux points. Pour additionner le point P et le point Q, on trace la droite qui passe par PQ. Celle-ci a une intersection autre avec la courbe elliptique, et on prend le symétrique par rapport à l'axe des x du point obtenu. Ça nous donne la somme de P et de Q. On peut voir qu'il est possible de faire l'addition de P par P. On va prendre la tangente, ici mettons un plan P prime plus P prime. Ça nous donne un point. Et P prime plus P prime va nous donner R prime représenté ici. On peut réitérer en réadditionnant P prime, et ainsi de suite. L'opération de logarithme ici consiste à déterminer P à partir d'une valeur de P additionnée n fois. L'échange de clé se passe de façon similaire. Pour les personnes passionnées, elles peuvent regarder les recommandations ici, qui spécifient les courbes elliptiques qui sont utilisées, mais ce n'est lisible que par les spécialistes du domaine. [MUSIQUE] [MUSIQUE]