paint-brush
Un pilier non sécurisé de la cybersécuritépar@hal9000
895 lectures
895 lectures

Un pilier non sécurisé de la cybersécurité

par HAL8m2022/11/03
Read on Terminal Reader
Read this story w/o Javascript

Trop long; Pour lire

Les algorithmes cryptographiques modernes sont basés sur le fait que certains problèmes mathématiques sont difficiles à calculer. Si nous prouvons que ces problèmes ne sont en fait pas difficiles à calculer, certains des cryptosystèmes les plus populaires deviendraient obsolètes.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Un pilier non sécurisé de la cybersécurité
HAL HackerNoon profile picture
0-item

L'histoire raconte que César, pour échanger des messages secrets avec ses généraux sur le terrain, rasait ses messagers chauves et écrivait le message sur leur cuir chevelu. Il attendrait alors quelques mois que leurs cheveux repoussent et les enverrait vers leurs destinations. Seuls ses généraux de confiance connaîtraient cette méthode pour échanger des messages, transmettant ainsi ses ordres en toute sécurité (bien qu'avec quelques mois de retard).


Cet exemple peu pratique et plutôt idiot décrit ce qu'est la cryptologie. La cryptologie est la science de la sécurisation des communications. Le terme est tiré du grec kryptós ("caché, secret") et lógos ("mot"). Essentiellement, il s'agit de "cacher des mots". Ce n'est qu'un pilier de la science de la cybersécurité, mais c'est un pilier important. A la base de ce pilier se trouvent les subdivisions de la cryptologie : Cryptographie et Cryptanalyse. Les deux peuvent presque être considérés comme complémentaires. Là où la cryptographie est la pratique consistant à transformer les communications en une forme illisible pour les oreilles indiscrètes, la cryptanalyse est la pratique consistant à essayer de démêler ces messages transformés par un destinataire involontaire.


Et c'est ici, à la base de ce pilier, qu'une seule preuve d'un problème pourrait provoquer l'effondrement de la cybersécurité.


Alors, entrez dans le Panthéon, ce temple de la cybersécurité si vous voulez, et laissez-moi vous guider là où les fissures des colonnes corinthiennes commencent à apparaître.

Le panthéon

Il existe de nombreux algorithmes différents conçus pour assurer la sécurité des messages. Je vais vous parler un peu de certains de ces systèmes afin que le fondement de ces algorithmes devienne clair.


Si vous avez lu quelque chose sur la cryptographie, il y a de fortes chances que vous ayez rencontré un concept appelé le "chiffre de César". Ceci est un autre exemple de méthode utilisée pour sécuriser les messages. Il est également attribué à César, bien que celui-ci n'implique pas les serrures d'un messager (jeu de mots) pour garder le message en sécurité. Au lieu de cela, ce chiffrement introduit un concept important sur lequel une partie importante des algorithmes cryptographiques sont basés : l'arithmétique modulaire.



Je sais je sais. Cela semble effrayant, non? Et si je vous disais que c'est tellement simple que vous l'utilisez tous les jours ? Vous voyez, votre horloge est également basée sur l'arithmétique modulaire. Lorsque vous essayez de déterminer combien de temps vous allez dormir si vous devez vous réveiller à 06h00, alors que vous terminez cette échéance à 23h00, vous savez qu'il ne faut pas compter au-delà de 24h00 . Le résultat sera toujours inférieur à 24:00. Vous calculez essentiellement le modulo 24. Il s'agit d'arithmétique modulaire, et elle est largement utilisée en cryptographie. Même dans sa simplicité, cependant, l'arithmétique modulaire recèle de nombreux secrets qui ne sont pas immédiatement évidents. De nombreux algorithmes cryptographiques reposent sur ces secrets.


Le chiffre de César est un chiffre symétrique. Cela signifie que les deux parties utilisent la même clé. Disons que la clé est 3. L'expéditeur décalerait chaque lettre de son message de 3. C'est ce qu'on appelle le cryptage. Le récepteur doit connaître la clé, puis reculerait chaque lettre de 3, obtenant le message d'origine. C'est ce qu'on appelle le décryptage. Comparez cela à la méthode du messager chauve. Le cryptage laisse pousser les cheveux du messager sur le message, le décryptage rase le messager chauve.


Maintenant, le chiffrement de César est-il très sûr ? Eh bien pas vraiment. N'importe qui peut facilement essayer toutes les différentes clés, dont il y en a 26 au total, et trouver la bonne pour démêler le message. C'est ce qu'on appelle une attaque par force brute. Bien que le chiffrement ne soit pas très sûr, il adhère à un principe important auquel les messagers chauves de César n'adhèrent pas. Le principe de Kerckhoff stipule :



"Un chiffrement ne devrait pas exiger le secret, et cela ne devrait pas être un problème s'il tombe entre les mains de l'ennemi."


En d'autres termes, le principe stipule que seule la clé doit rester secrète. La méthode peut être rendue publique, mais sans la clé, le message doit rester sécurisé.


Si le messager autrefois chauve de César est intercepté par l'ennemi et que l'intercepteur est au courant de la méthode utilisée par César, le pauvre messager sera à nouveau rasé en un rien de temps, révélant le message sur son cuir chevelu. Avec le chiffrement de César, cependant, même si l'intercepteur connaît la méthode de cryptage, il devrait encore essayer 26 clés différentes pour découvrir le message.

Panneau de la bande dessinée AES


Le chiffrement de César est l'un des chiffrements les plus simples qui existent, mais sa simplicité démontre bien les aspects de l'arithmétique modulaire. D'autres cryptosystèmes symétriques courants sont DES, 3DES et AES. Ils font essentiellement la même chose que le chiffre de César, bien que beaucoup plus complexe et plus difficile à forcer. Si vous voulez en savoir plus sur ces systèmes, je vous recommande fortement de lire la bande dessinée AES .


Introduisons un autre concept important. Cryptographie asymétrique (ou cryptographie à clé publique). La différence est qu'au lieu que les deux parties aient la même clé, elles ont leurs propres clés publique et secrète.


Avant de plonger dans RSA, voici une information intéressante à ce sujet pour vous. Lorsque RSA a été inventé par Ron Rivest, Adi Shamir et Leonard Adleman, il était illégal pour eux d'exporter l'algorithme ou même sa description, dans le cadre du contrôle des munitions aux États-Unis. Le RSA était considéré comme si puissant qu'il devait être gardé secret militaire. Pour protester contre la liberté d'expression, ils portaient des T-shirts avec l'algorithme imprimé dessus lors de conventions et de discussions.


T-shirt RSA limité à l'exportation
RSA est le système de chiffrement à clé publique le plus populaire. C'est un système super cool qui illustre parfaitement sur quoi repose une grande partie de la cryptographie moderne. Nous allons être un peu techniques ici, mais soyez indulgents avec moi.


Le théorème fondamental de l'arithmétique stipule que tout nombre positif peut être représenté exactement d'une manière comme le produit d'un ou de plusieurs nombres premiers. Par exemple, le nombre 77 peut être représenté par la multiplication de 7 (un nombre premier) et 11 (un nombre premier). Il n'y a pas d'autre moyen de représenter 77 en nombres premiers que de changer l'ordre des nombres premiers. Gardez cela à l'esprit pendant que j'explique RSA.


Avant qu'un message puisse être envoyé, nous devons effectuer une configuration. Dites, Bob veut envoyer un message à Alice et il y a une espionne appelée Eve. Alice, en tant que receveur, choisit deux grands nombres premiers. Elle multiplie ces deux nombres pour obtenir le résultat m, le module. Nous allons le garder simple et petit dans notre exemple. Alice choisit 7 et 11 comme nombres premiers, ce qui donne le module 77. Elle publie le module 77 et un exposant de chiffrement choisi e. La combinaison du module 77 et de l'exposant de chiffrement e est appelée sa clé publique.


Avec la clé publique d'Alice, Bob peut chiffrer le message qu'il veut envoyer. Dans ce cas, le message est un nombre x. Le cryptage en RSA se fait en prenant x^e mod m. Cela se traduit par un texte chiffré y et l'envoie à Alice.


Maintenant, Alice peut faire de la magie avec les facteurs premiers 7 et 11, ce qui donne une information appelée d (pour déchiffrement). C'est la clé secrète d'Alice. Tout ce qu'Alice doit faire maintenant est de prendre y^d, ce qui donnera le message original de Bob x.


Ouf, c'était beaucoup, mais le plus dur est passé ! Maintenant, remarquez que seule Alice connaît les facteurs premiers 7 et 11. Cela signifie que seule Alice peut faire ce tour de magie pour obtenir des informations d. Mais si vous êtes pointu, vous ne serez pas d'accord avec moi ici. Vous diriez : "Puisque 77 est publié et que tout le monde y a accès, Eve peut facilement comprendre que 77 = 7*11 et faire également le tour de magie pour obtenir d, avec lequel elle peut obtenir le message original x". Je serais d'accord avec vous ici. Alors je vous dirais : "Quels sont les nombres premiers du nombre 30142741". Il y a de fortes chances que vous ne puissiez pas me donner la réponse. Je peux très facilement vous dire la réponse puisque tout ce que j'ai fait a été de prendre deux nombres premiers et de les multiplier pour obtenir 30142741. Et si je vous disais ces deux nombres, vous pourriez tout aussi facilement vérifier que le produit est 30142741. Donc en effet, RSA dépend du fait qu'Eve (ou vous) ne soit pas en mesure de trouver ces deux nombres premiers. Dans ce cas, les nombres premiers sont 6037 et 4993. Voyez à quel point la factorisation en nombres premiers est difficile, mais à quel point il est facile de vérifier les nombres premiers corrects ?


C'est ça! Nous sommes enfin à la base du pilier. Vous voyez les fissures ? Probablement pas. Permettez-moi de clarifier.


Ainsi, les transformations que nous appliquons au message (chiffrement) doivent être inversibles pour que le récepteur puisse le déchiffrer. Le récepteur peut inverser le message car il est en possession d'informations supplémentaires. Pendant ce temps, tout intercepteur, qui n'est pas en possession de ces informations, ne pourra pas décrypter le message. En RSA, par exemple, l'intercepteur aurait besoin de trouver les deux facteurs premiers du module. Trouver les deux facteurs premiers d'un petit nombre comme 77 est, bien sûr, facile, mais la factorisation en nombres premiers devient beaucoup plus difficile lorsqu'un grand nombre est choisi. Vérifier que les deux nombres premiers sont des facteurs du module est toujours relativement facile puisque vous ne faites que des multiplications.


Si la factorisation en nombres premiers était facile ou s'il existait un algorithme capable de résoudre le problème relativement rapidement, alors RSA deviendrait obsolète. Il repose sur le fait que la factorisation première est difficile à résoudre, mais facile à vérifier. On peut distinguer deux séries de problèmes. Il y a des problèmes pour lesquels nous connaissons un moyen de trouver la réponse rapidement, par exemple, la multiplication ou la mise au carré. Cet ensemble est appelé "classe P". L'autre classe, « NP », est un ensemble de problèmes pour lesquels il n'existe aucun moyen connu de trouver une réponse rapidement, mais lorsque vous avez quelques informations, la réponse est facilement vérifiable. La factorisation première appartient à cette classe.


Mais que se passe-t-il s'il existe un moyen de résoudre facilement un problème de factorisation premier ? Cela impliquerait que la factorisation première appartient à la classe P. En fait, nous pourrions peut-être prouver que tous les problèmes NP sont en fait des problèmes P. La conclusion serait que P = NP.


Dans l'épisode "Treehouse of Horror VI", Homer tombe dans la troisième dimension et trouve à répondre à P vs NP
Cette conclusion aurait des conséquences désastreuses pour la cryptographie. Comme nous l'avons vu, RSA repose sur le fait que la factorisation première est difficile à résoudre. Mais RSA n'est qu'un des nombreux algorithmes qui reposent sur des problèmes NP et la factorisation en nombres premiers n'est qu'un exemple de problème NP. D'autres chiffrements symétriques et asymétriques utilisés pour vos transactions financières, vos communications par e-mail, etc. seraient rendus obsolètes.


Bitcoin et d'autres crypto-monnaies subiraient également de graves conséquences puisque Bitcoin s'appuie sur le hachage cryptographique, en particulier l'algorithme de hachage SHA-256. Pour qu'un nouveau bloc soit accepté dans la blockchain, ce nouveau bloc doit contenir une preuve de travail. En bref, la preuve est facile à vérifier pour n'importe quel nœud du réseau, mais générer le nombre correct est extrêmement difficile.


Visualisation dramatique de ce qui arrive à Bitcoin si P = NP La preuve de P = NP pourrait par contre avoir des conséquences positives pour d'autres champs. De nombreux problèmes mathématiques restent difficiles à résoudre. Imaginez les effets que cela pourrait avoir sur les mathématiques !


La preuve de P ≠ NP signifierait que nos algorithmes cryptographiques sont sécurisés et que le titre de cet article n'est qu'un clickbait. Mais au moins je t'ai offert la chance de gagner un million de dollars ! C'est la récompense que le Clay Mathematics Institute décernera à la première personne qui résoudra le problème "P vs NP".


Alors, essayez-le! Peut-être que vous pourriez être celui qui cassera la cryptographie moderne et nous renverra à l'utilisation de messagers chauves pour nos communications quotidiennes.


Également publié ici