×

Utilizziamo i cookies per contribuire a migliorare LingQ. Visitando il sito, acconsenti alla nostra politica dei cookie.


image

Science Étonnante, (#10) Les codes secrets - YouTube

(#10) Les codes secrets - YouTube

Quand j'étais au CM1, j'avais mis au point un code secret absolument génial pour communiquer.

L'idée c'était que dans un message, vous remplacez chaque lettre

par la lettre qui la suit dans l'alphabet.

Voilà, c'est tout.

Eh bien, aujourd'hui on va voir comment on peut faire beaucoup beaucoup mieux que ça.

Evidemment l'idée de coder un message en remplaçant chaque lettre

par la suivante n'est pas de moi, elle est vieille comme le monde,

on appelle ça le chiffrement par décalage.

Il paraît que César l'utilisait pour communiquer avec ses généraux et

d'ailleurs certains appellent ça le code de César.

Sauf que César avait été un tout petit peu plus malin que moi puisque

il pouvait utiliser des décalages qui n'étaient pas forcément d'une lettre

mais qui pouvait être de 3 lettres, 7 lettres ou 12 lettres.

Si César voulait envoyer un message, il choisissait un décalage

et il suffisait que son destinataire connaisse la valeur du décalage

pour reconstituer le message de départ.

Bien sûr un code comme celui de César n'est pas très difficile à casser,

une fois que vous connaissez le principe.

Si jamais demain vous interceptez un message de César,

il suffit d'essayer tous les décalages possibles, et il n'y en a que 25,

jusqu'à trouver celui qui fonctionne

donc ce n'est pas un code très très solide.

Si vous voulez quelque chose de plus robuste,

vous pouvez par exemple utiliser une méthode légèrement différente

où vous remplacez chaque lettre par une autre lettre de l'alphabet,

mais pas forcément issue d'un décalage,

c'est ce qu'on appelle le chiffrement par substitution.

Si vous prenez un message qui a été codé par substitution

et que vous essayez de le décoder en testant tous les codes possibles,

eh bien il y a beaucoup plus de possibilités.

On peut faire rapidement le calcul, pour coder la lettre A, il y a 26 possibilités

pour la lettre B, il en reste 25 pour la lettre C, 24, etc...

Donc le nombre total de codes par substitution possibles

c'est ce qu'on appelle factorielle de 26.

C'est un nombre absolument énorme et juste pour vous donner un ordre d'idée,

si vous étiez capable d'essayer un million de codes à chaque seconde,

il vous faudrait quand même 13 000 milliards d'années pour les essayer tous,

c'est-à-dire mille fois l'âge de l'univers.

Donc avec des chiffres comme ça on a envie de penser que les codes

par substitution sont absolument impossible à casser,

et en fait ce n'est pas vrai, ils sont même assez faciles à craquer.

Pour comprendre comment on peut casser facilement les textes qui sont codés par substitution,

on peut prendre un exemple donc là je vous mets un message que j'ai codé

avec un certain code par substitution

et il y a une chose que vous pouvez observer sur ce message,

c'est qu'il y a une lettre qui revient assez souvent et d'ailleurs assez souvent en fin de mot

c'est la lettre T.

Donc on a de bonnes raisons de penser que la lettre T doit certainement symboliser le E

Ce principe-là on peut le pousser beaucoup plus loin

et faire ce qu'on appelle de l'analyse des fréquences.

Vous regardez la fréquence d'apparition des différentes lettres dans le message

et vous la comparez à la fréquence d'apparition des lettres en français.

Donc ça c'est quelque chose de bien connu, on sait que la lettre la plus fréquente c'est le E, ensuite c'est le A etc.

Donc si vous connaissez la langue d'origine du message et que ce message

est suffisamment long pour se prêter à ce genre d'analyse statistique,

on peut assez rapidement grandement réduire le nombre de possibilités à tester.

Il existe même des algorithmes qui peuvent à eux tout seuls

quasiment casser un code par substitution.

Alors voyez que la faiblesse du code par substitution et qui fait qu'on peut

l'attaquer par analyse de fréquence,

c'est le fait qu'une lettre donnée par exemple le E,

va être toujours représentée par la même lettre dans le message codé.

Il existe des moyens d'éviter ça et on peut utiliser par exemple une clé de chiffrement.

Donc le principe est le suivant,

il vous faut choisir un mot clé, alors par exemple on va prendre le mot science,

vous écrivez votre message et sous votre message vous écrivez

votre mot-clé autant de fois que nécessaire.

Ensuite pour coder le message, vous ajoutez chaque lettre du message

à la lettre du mot clé qui lui correspond.

Quand je dis vous ajoutez les lettres, évidemment ce que vous faites,

c'est que vous ajoutez leur position dans l'alphabet

et puis si jamais ça dépasse 26 vous revenez à 0.

En faisant ça vous obtenez un message codé et vous pouvez observer que dans ce message codé

une lettre donnée par exemple le E, n'est par toujours représentée par la même lettre

et donc grâce à ce procédé vous pouvez échapper à l'attaque par analyse de fréquences

Alors pour que ça marche bien il faut prendre une clé suffisamment longue

là, j'ai juste pris un mot, mais vous pouvez très bien prendre

une phrase voir carrément un paragraphe en entier.

Donc dans ces conditions ce genre de code peut devenir quasiment inviolable.

Alors il y a juste un petit problème avec ce type de code,

c'est que vous devez donner la clé à quelqu'un pour qu'il vous envoie des messages codés.

Imaginons que vous soyez une agence de services secrets et que vous ayez des espions sur le terrain.

Vous avez envie que ces espions vous envoient des messages codés,

mais il y a un petit risque, c'est que si jamais ils se font piquer la clé

ou que la clé se fait intercepter au moment où vous la transmettez,

du coup l'ennemi peut décoder vos messages.

La raison c'est que ce type de code est ce qu'on appelle un code symétrique,

c'est-à-dire que la clé pour coder les messages et la clé pour les décoder, c'est la même.

Mais en fait ce n'est pas du tout obligatoire.

Dans les années 70 au MIT à Boston trois chercheurs en informatique

ont mis au point un système de cryptographie qu'on appelle asymétrique

c'est-à-dire que la clé pour coder et la clé pour décoder ne sont pas les mêmes.

C'est ce qu'on appelle l'algorithme RSA du nom des trois inventeurs.

Alors l'algorithme RSA je ne vais pas vous le décrire ici, il n'est pas extrêmement compliqué,

il y a juste un peu de maths, mais je vous mettrai un lien dans la description.

Ce qui est intéressant de comprendre c'est comment ça fonctionne.

Pour faire un codage selon l'algorithme RSA il faut que vous choisissiez une clé,

et une clé c'est un nombre, alors on va prendre par exemple le nombre 143.

donc il y a toute une procédure et à partir de cette clé vous fabriquez votre message codé.

Le truc c'est que pour décoder le message,

il faut que la personne possède la décomposition de ce nombre en facteurs premiers,

donc dans le cas de 143 c'est par exemple 11 fois 13.

Donc la clé de codage c'est 143 mais la clé de décodage c'est 11 et 13.

Alors dans ce cas-là ce n'est pas hyper compliqué de retrouver la clé de décodage

une fois qu'on connait la clé de codage que si je vous dis 143,

vous pouvez très bien trouver que c'est 11 fois 13,

mais si je m'amuse à prendre un nombre beaucoup plus gros,

là, ça devient quasiment impossible de retrouver sa décomposition en facteurs premiers.

Donc en pratique, si vous voulez utiliser l'algorithme RSA, qu'est-ce que vous faites?

Vous prenez deux nombres premiers énormes,

vous les multipliez entre eux et ça vous fabrique votre clé de codage.

Cette clé là vous pouvez la distribuer à peu près à n'importe qui,

d'ailleurs parfois on appelle ça la clé publique.

Par contre les deux nombres premiers de départ vous les gardez pour vous,

c'est la clé de décodage, c'est ce qu'on appelle la clé privée.

Donc grâce à ça, des gens partout peuvent vous envoyer des messages qu'ils vont pouvoir coder

mais ce n'est pas pour autant qu'ils pourront décoder les messages des autres

et donc même si la clé fuite et que l'ennemi arrive à s'en emparer,

il n'y a aucun problème, ils ne pourront pas décoder vos messages.

L'algorithme RSA aujourd'hui, on le trouve un petit peu partout

et il est même à la base d'un grand nombre de protocoles de communication sécurisés sur internet.

Donc il y a une grande partie de la sécurité informatique mondiale

et donc probablement de la stabilité de l'économie qui repose sur des cryptages de ce type

et c'est quand même marrant que tout ça tient, in fine, au fait que

mathématiquement, c'est compliqué de trouver les facteurs premiers d'un nombre.

D'ailleurs c'est pour ça qu'à une certaine époque, il y en a qui s'inquiétaient

de l'arrivée possible des ordinateurs quantiques, parce que l'une des choses

qu'un ordinateur quantique est censé faire beaucoup mieux qu'un ordinateur classique,

c'est factoriser des nombres.

Donc si demain quelqu'un se pointait avec un ordinateur quantique suffisamment puissant,

il pourrait casser toutes les clés RSA et donc ça foutrait probablement un beau bordel.

Heureusement à ce jour,

je crois que le plus gros nombre qu'un ordinateur quantique ait réussi à factoriser c'est 143,

donc 11 fois 13.

Vous voyez qu'on a encore un petit peu de tranquillité devant nous.

Merci d'avoir suivi cette vidéo, n'hésitez pas à la partager surtout pour m'aider à faire connaître la chaîne.

Vous pouvez vous abonner si ce n'est pas déjà fait, aller voir mes vidéos précédentes

et me retrouver sur Facebook, sur Twitter et aussi sur mon blog qui s'appelle "Science Étonnante".

A bientôt !

(#10) Les codes secrets - YouTube (#10) Die Geheimcodes - YouTube (#10) Secret codes - YouTube (#10) Los códigos secretos - YouTube (#10) De geheime codes - YouTube (#10) Tajne kody - YouTube (#10) Os códigos secretos - YouTube (#10) De hemliga koderna - YouTube (#10) 密码 - YouTube

Quand j'étais au CM1, j'avais mis au point un code secret absolument génial pour communiquer.

L'idée c'était que dans un message, vous remplacez chaque lettre

par la lettre qui la suit dans l'alphabet.

Voilà, c'est tout.

Eh bien, aujourd'hui on va voir comment on peut faire beaucoup beaucoup mieux que ça.

Evidemment l'idée de coder un message en remplaçant chaque lettre

par la suivante n'est pas de moi, elle est vieille comme le monde,

on appelle ça le chiffrement par décalage.

Il paraît que César l'utilisait pour communiquer avec ses généraux et

d'ailleurs certains appellent ça le code de César.

Sauf que César avait été un tout petit peu plus malin que moi puisque

il pouvait utiliser des décalages qui n'étaient pas forcément d'une lettre

mais qui pouvait être de 3 lettres, 7 lettres ou 12 lettres.

Si César voulait envoyer un message, il choisissait un décalage

et il suffisait que son destinataire connaisse la valeur du décalage

pour reconstituer le message de départ.

Bien sûr un code comme celui de César n'est pas très difficile à casser,

une fois que vous connaissez le principe.

Si jamais demain vous interceptez un message de César,

il suffit d'essayer tous les décalages possibles, et il n'y en a que 25,

jusqu'à trouver celui qui fonctionne

donc ce n'est pas un code très très solide.

Si vous voulez quelque chose de plus robuste,

vous pouvez par exemple utiliser une méthode légèrement différente

où vous remplacez chaque lettre par une autre lettre de l'alphabet,

mais pas forcément issue d'un décalage,

c'est ce qu'on appelle le chiffrement par substitution.

Si vous prenez un message qui a été codé par substitution

et que vous essayez de le décoder en testant tous les codes possibles,

eh bien il y a beaucoup plus de possibilités.

On peut faire rapidement le calcul, pour coder la lettre A, il y a 26 possibilités

pour la lettre B, il en reste 25 pour la lettre C, 24, etc...

Donc le nombre total de codes par substitution possibles

c'est ce qu'on appelle factorielle de 26.

C'est un nombre absolument énorme et juste pour vous donner un ordre d'idée,

si vous étiez capable d'essayer un million de codes à chaque seconde,

il vous faudrait quand même 13 000 milliards d'années pour les essayer tous,

c'est-à-dire mille fois l'âge de l'univers.

Donc avec des chiffres comme ça on a envie de penser que les codes

par substitution sont absolument impossible à casser,

et en fait ce n'est pas vrai, ils sont même assez faciles à craquer.

Pour comprendre comment on peut casser facilement les textes qui sont codés par substitution,

on peut prendre un exemple donc là je vous mets un message que j'ai codé

avec un certain code par substitution

et il y a une chose que vous pouvez observer sur ce message,

c'est qu'il y a une lettre qui revient assez souvent et d'ailleurs assez souvent en fin de mot

c'est la lettre T.

Donc on a de bonnes raisons de penser que la lettre T doit certainement symboliser le E

Ce principe-là on peut le pousser beaucoup plus loin

et faire ce qu'on appelle de l'analyse des fréquences.

Vous regardez la fréquence d'apparition des différentes lettres dans le message

et vous la comparez à la fréquence d'apparition des lettres en français.

Donc ça c'est quelque chose de bien connu, on sait que la lettre la plus fréquente c'est le E, ensuite c'est le A etc.

Donc si vous connaissez la langue d'origine du message et que ce message

est suffisamment long pour se prêter à ce genre d'analyse statistique,

on peut assez rapidement grandement réduire le nombre de possibilités à tester.

Il existe même des algorithmes qui peuvent à eux tout seuls

quasiment casser un code par substitution.

Alors voyez que la faiblesse du code par substitution et qui fait qu'on peut

l'attaquer par analyse de fréquence,

c'est le fait qu'une lettre donnée par exemple le E,

va être toujours représentée par la même lettre dans le message codé.

Il existe des moyens d'éviter ça et on peut utiliser par exemple une clé de chiffrement.

Donc le principe est le suivant,

il vous faut choisir un mot clé, alors par exemple on va prendre le mot science,

vous écrivez votre message et sous votre message vous écrivez

votre mot-clé autant de fois que nécessaire.

Ensuite pour coder le message, vous ajoutez chaque lettre du message

à la lettre du mot clé qui lui correspond.

Quand je dis vous ajoutez les lettres, évidemment ce que vous faites,

c'est que vous ajoutez leur position dans l'alphabet

et puis si jamais ça dépasse 26 vous revenez à 0.

En faisant ça vous obtenez un message codé et vous pouvez observer que dans ce message codé

une lettre donnée par exemple le E, n'est par toujours représentée par la même lettre

et donc grâce à ce procédé vous pouvez échapper à l'attaque par analyse de fréquences

Alors pour que ça marche bien il faut prendre une clé suffisamment longue

là, j'ai juste pris un mot, mais vous pouvez très bien prendre

une phrase voir carrément un paragraphe en entier.

Donc dans ces conditions ce genre de code peut devenir quasiment inviolable.

Alors il y a juste un petit problème avec ce type de code,

c'est que vous devez donner la clé à quelqu'un pour qu'il vous envoie des messages codés.

Imaginons que vous soyez une agence de services secrets et que vous ayez des espions sur le terrain.

Vous avez envie que ces espions vous envoient des messages codés,

mais il y a un petit risque, c'est que si jamais ils se font piquer la clé

ou que la clé se fait intercepter au moment où vous la transmettez,

du coup l'ennemi peut décoder vos messages.

La raison c'est que ce type de code est ce qu'on appelle un code symétrique,

c'est-à-dire que la clé pour coder les messages et la clé pour les décoder, c'est la même.

Mais en fait ce n'est pas du tout obligatoire.

Dans les années 70 au MIT à Boston trois chercheurs en informatique

ont mis au point un système de cryptographie qu'on appelle asymétrique

c'est-à-dire que la clé pour coder et la clé pour décoder ne sont pas les mêmes.

C'est ce qu'on appelle l'algorithme RSA du nom des trois inventeurs.

Alors l'algorithme RSA je ne vais pas vous le décrire ici, il n'est pas extrêmement compliqué,

il y a juste un peu de maths, mais je vous mettrai un lien dans la description.

Ce qui est intéressant de comprendre c'est comment ça fonctionne.

Pour faire un codage selon l'algorithme RSA il faut que vous choisissiez une clé,

et une clé c'est un nombre, alors on va prendre par exemple le nombre 143.

donc il y a toute une procédure et à partir de cette clé vous fabriquez votre message codé.

Le truc c'est que pour décoder le message,

il faut que la personne possède la décomposition de ce nombre en facteurs premiers,

donc dans le cas de 143 c'est par exemple 11 fois 13.

Donc la clé de codage c'est 143 mais la clé de décodage c'est 11 et 13.

Alors dans ce cas-là ce n'est pas hyper compliqué de retrouver la clé de décodage

une fois qu'on connait la clé de codage que si je vous dis 143,

vous pouvez très bien trouver que c'est 11 fois 13,

mais si je m'amuse à prendre un nombre beaucoup plus gros,

là, ça devient quasiment impossible de retrouver sa décomposition en facteurs premiers.

Donc en pratique, si vous voulez utiliser l'algorithme RSA, qu'est-ce que vous faites?

Vous prenez deux nombres premiers énormes,

vous les multipliez entre eux et ça vous fabrique votre clé de codage.

Cette clé là vous pouvez la distribuer à peu près à n'importe qui,

d'ailleurs parfois on appelle ça la clé publique.

Par contre les deux nombres premiers de départ vous les gardez pour vous,

c'est la clé de décodage, c'est ce qu'on appelle la clé privée.

Donc grâce à ça, des gens partout peuvent vous envoyer des messages qu'ils vont pouvoir coder

mais ce n'est pas pour autant qu'ils pourront décoder les messages des autres

et donc même si la clé fuite et que l'ennemi arrive à s'en emparer,

il n'y a aucun problème, ils ne pourront pas décoder vos messages.

L'algorithme RSA aujourd'hui, on le trouve un petit peu partout

et il est même à la base d'un grand nombre de protocoles de communication sécurisés sur internet.

Donc il y a une grande partie de la sécurité informatique mondiale

et donc probablement de la stabilité de l'économie qui repose sur des cryptages de ce type

et c'est quand même marrant que tout ça tient, in fine, au fait que

mathématiquement, c'est compliqué de trouver les facteurs premiers d'un nombre.

D'ailleurs c'est pour ça qu'à une certaine époque, il y en a qui s'inquiétaient

de l'arrivée possible des ordinateurs quantiques, parce que l'une des choses

qu'un ordinateur quantique est censé faire beaucoup mieux qu'un ordinateur classique,

c'est factoriser des nombres.

Donc si demain quelqu'un se pointait avec un ordinateur quantique suffisamment puissant,

il pourrait casser toutes les clés RSA et donc ça foutrait probablement un beau bordel.

Heureusement à ce jour,

je crois que le plus gros nombre qu'un ordinateur quantique ait réussi à factoriser c'est 143,

donc 11 fois 13.

Vous voyez qu'on a encore un petit peu de tranquillité devant nous.

Merci d'avoir suivi cette vidéo, n'hésitez pas à la partager surtout pour m'aider à faire connaître la chaîne.

Vous pouvez vous abonner si ce n'est pas déjà fait, aller voir mes vidéos précédentes

et me retrouver sur Facebook, sur Twitter et aussi sur mon blog qui s'appelle "Science Étonnante".

A bientôt !