• Aucun résultat trouvé

Cours - Sécurisation des données

N/A
N/A
Protected

Academic year: 2022

Partager "Cours - Sécurisation des données"

Copied!
8
0
0

Texte intégral

(1)

M. GEORGES-SAINT-MARC - NSI - Lycée Mendès France Rennes 9 février 2021

Cette séquence aborde les notions de cryptologie, la science du chiffrage de l’information. Cette discipline est découpée en deux branches : lacryptographie, qui s’intéresse au cryptage de messages, et lacryptanalyse, qui s’intéresse à leur déchiffrement.

1 Chiffrement

Depuis plusieurs milliers d’année, lechiffrement(oucryptage) est un procédé permettant de ne rendre com- préhensible la lecture d’informations que pour un nombre restreint de personnes, qui doivent alors posséder une clef de chiffrement.

On retrouve déjà des techniques de chiffrement dans l’antiquité, comme :

• une technique par transposition aurait été utilisée par les grecs (-1000, -700) : il s’agissait d’enrouler une bandelette autour d’un bâton de diamètre identique pour l’émetteur et le récepteur et d’écrire le message dans le sens du bâton.

• les légions romaines utilisaient ce qu’on appelle encore le cryptage de César : décaler l’ensemble des lettres de l’alphabet d’un rang donné.

Exercice 1 :Cryptage de César

Voici un texte décalé de 5 caractères (A est crypté en F, B en G, etc. . . ) : "FAJ HFJXFW".

1. Donner la correspondance de chaque lettre dans l’alphabet dans le tableau ci-dessous :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

F G

2. Décrypter le message ci-dessus à l’aide du tableau.

3. Écrire deux fonctionscryptageCesaretdecryptageCesaren Python qui prennent en entrée une chaîne de caractère et qui la cryptent / la décryptent.

On pourra dans un premier temps considérer que le cryptage est toujours fait avec un décalage de 5, puis dans un second temps ajouter la valeur du décalage en paramètre des fonctions.

Indications:

• on se servira des fonctions de conversion des caractères en code Unicode,chretord: ord(’A’) = 65ÞÝÑ65 + 5 = 70ÞÝÑchr(70) = ’F’

• commencer par la fonction de décryptage !

Les techniques ont évoluées au cours de l’histoire, mais c’est l’avènement de l’informatique qui a amené à la plus forte évolution de la cryptographie, de part les fortes capacités en cryptanalyse amenées par les ordinateurs.

2 Chiffrement symétrique

Jusque récemment, le chiffrage de l’information se fait de façon symétrique : le récepteur du message doit impérativement connaître la clef de cryptage pour pouvoir le déchiffrer.

Prenons quelques autres exemples de chiffrement symétrique :

(2)

Exercice 2 :Carré de Polybe

Cette technique est proposée vers 150 avant JC par l’historien grec Polybe. Il s’agit de faire correspondre des lettres à des nombres. Voici une application avec l’alphabet latin :

1 2 3 4 5

1 A B C D E

2 F G H I J

3 K L M N O

4 P Q R S T

5 U V/W X Y Z

Ainsi, A est codé 11, B est codé 12, . . .

1. Coder le message : "Eurêka" à l’aide du carré de Polybe.

2. Écrire une fonction en Python qui chiffrera tout texte (écrit en majuscules latines sans accent) à partir de ce code. Est-ce avec une matrice de dimensions55reproduisant le tableau que l’on sera le plus efficace ? 3. Écrire alors la fonction de déchiffrement associée.

Exercice 3 :Cryptage linéaire

Une autre méthode consiste à multiplier le nombre correspondant à la lettre à coder par un même nombre, que l’on appellera également la clef de codage. Ici, on prend la clef 3. Ainsi, à une lettre de numéro n, on fait correspondre la lettre de numéro3n, en retranchant éventuellement 26 ou un multiple de 26 pour que le numéro de la lettre soit compris entre 1 et 26.

Exemples :

• D = 4, et4312, donc DÑL (12èmelettre de l’alphabet)

• S = 19, et 193 57. Comme 57 dépasse 26, on retranche 26 jusqu’à revenir entre 1 et 26. Ainsi : 572265, donc SÑE (5èmelettre de l’alphabet).

1. Compléter le tableau de chiffrage avec la clef 3 :

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

4 19

12 57

L E

2. Coder l’expression : CHIFFREMENT LINEAIRE.

3. Décoder le message : VSKB JO MSMOPH SP W CBBANO !

4. Écrire les fonctions de codage et de décodage pour la méthode de chiffrement linéaire. Elles prendront deux paramètres en entrée : la chaîne de caractère à chiffrer ou déchiffrer, et la clef de chiffrement.

Pour aller plus loin: chiffrage affine, chiffrage de Hill, chiffrage enigma.

(3)

3 Chiffrage asymétrique

Dans les années 1970, des scientifiques proposent une nouvelle méthode de chiffrage dont l’approche est radicalement différente de celles abordées précédemment, où le récepteur et le diffuseur d’information étaient tous deux possesseurs d’un même niveau d’information pour crypter et décrypter des messages.

Deux mathématiciens américains, Whitfield Diffie et Martin Hellman, présentent en 1976 le principe suivant :

• Le récepteur du message à chiffrer crée deux clefs, mais n’en garde qu’une privée(pour lui seul) et rend par contrepubliquela seconde.

• À partir de la clef publique, toute personne peut crypter un message.

• Seul le possesseur de la clef privée peut décrypter les messages cryptés.

On peut faire l’analogie avecla clef et le cadenas: le récepteur du message met à disposition du public des cadenas qui s’ouvrent avec une clef que lui seul possède. Toute personne qui veut lui transmettre de l’information peut donc enfermer cette information dans une boîte, fermer le cadenas et l’envoyer. Seul le possesseur de la clef pourra déverrouiller le cadenas et récupérer l’information contenue dans la boîte.

3.1 Cryptosystème Merkle-Hellman

En 1978, Ralph Merkle et Martin Hellman proposent un système concret de cryptage et décryptage, basé sur le problème du sac à dos.

3.1.1 Création des clefs privée et publique

• On choisitnentiers qui respectent la propriété desupercroissance: chaque nouvelle valeur de la liste est supérieure à la somme des valeurs précédentes. Cette liste est appelée unsac.

Exemple: on prend comme sac la listet2,7,11,21,42,89,180,354u

• On calcule la sommeSde la liste.

S2 7 11 21 42 89 180 354706

• On choisit un nombreNplus grand que cette somme.

N881

• On choisit un nombreA N qui est premier avecN(pgcdpA, Nq1) A588

• La clef privée est donc l’ensemble :tA, N, sacu.

• On calcule alors les différentes valeurs de la clef publiqueen appliquant le principe suivant pour chaque élémentadu sac :

bA.arNs

Concrètement, on cherche le restebdans la division deAaparN.

Ainsi, pour les différents éléments du sac :

a12, doncA.a158821176et11768811 295doncb1295. Exercice 4 :

Calculer les différentes valeurs des coefficients de la clef publique, deb2àb8.

(4)

• La clef publique et la clef privée sont désormais calculées :

Ñ clef publiquet295, . . .

Ñ clef privéet588,881,t2,7,11,21,42,89,180,354uu. 3.1.2 Chiffrage du message

Pour faire simple nous n’allons chiffrer que le caractère ’ a’.

On donne la valeur binaire du code ASCII de ’ a’(97) :01100001.

On applique le calcul suivant, en se servant des valeursbide la clef publique :c0b1 1b2 1b3 0b4 0b5 0b6 0b7 1b8.

C’est la valeur decqui sera envoyée au récepteur du message (qui possède lui la clef privée).

3.1.3 Réversibilité du processus

On a trouvé chaque élémentbde la clef publique en prenant l’élémentade la clef privée et en appliquant : bA.arNs

L’élément A estpremier avecN, donc A et N n’ont aucun diviseur en commun si ce n’est 1.

Par conséquent, lethéorème de Bézoutnous indique qu’il existe un couple de nombres entiers relatifspu, vq tels que :A.u B.v 1.

On a pourA 588etN 881le couple p442,295q. Il se détermine par l’algorithme d’Euclide étendu (programme de Maths expertes).

Ainsi :588442 881p295q1.

Le nombre442, qui est compris entre 0 et 881, est appelél’inverse de Adans l’ensemble des restes dans la division par 881 (que l’on noteZ{881Z).

On noteA1442. Exercice 5 :

1. Quel est le reste deAA1dans la division par881?

2. Poura2, on avait trouvébA.arNs5882r881s1176r881s295r881s.

Pourb295, quel est le reste debA1dans la division par881? Que constate-t-on ? 3. Pourb592, quel est le reste debA1dans la division par881? Que constate-t-on ?

4. Expliquer alors l’intérêt de diffuser les éléments de la clef publique tout en gardant secrets le sac,Aet N?

3.1.4 Déchiffrage du message Le message codé vaut 1129.

Pour le déchiffrer, on applique le calcul suivant :pA1.crNs, oùA1est 442 pourA588. Ainsi :1129442372r881s.

Remarque: on peut rapidement faire le calcul avec Python : (1129∗442) % 881 = 372.

À partir de 372, on peut retrouver les 0 et les 1 correspondant au message initial ’ a’ avec un algorithme glouton :

Ñ 37235418

Ñ 18117

Ñ 770

on a donc372 0 2 1 7 1 11 0 21 0 42 0 89 0 180 1 354.

(5)

Exercice 6 :

Crypter le message ’ ok’par la méthode de Merkle-Hellman avec les éléments de cryptage précédents :

• sact2,7,11,21,42,89,180,354u.

• N 881

• A588(etA1442).

Exercice 7 :

1. Reprendre le cryptage de l’expression ’ SAC’avec la combinaison suivante :

• sact1,3,6u.

• N 12

• A7(etA17).

On cryptera les données binaires par groupes de 3 (3*8 bits pour ’ SAC’, donc 8 groupes de 3 bits à coder).

2. Créer des fonctions de cryptage et de décryptage pour cet exemple.

(6)

4 Échange de données en ligne

4.1 Les systèmes utilisés actuellement

4.1.1 Chiffrement asymétrique : AES

Le standard de chiffrement le plus sûr et répandu depuis l’an 2000 est AES (Advanced Encryption Standard), basé sur l’algorithmeRijndael(créé en 1998 par deux chercheurs belges : Joan Daemen et Vincent Rijmen).

Il est basé sur des clefs de chiffrement de 128, 192 ou 256 bits. Le cryptage grand public est restreint à 128 bits. Cela nécessite déjà au plus2128tentatives distinctes (soient 3,5 sextillions :3,5.1036) en cas d’attaque par force brute(test de toutes les clefs une par une).

4.1.2 Chiffrement asymétrique : RSA

En 1978, trois mathématiciens américains et israëliens, Ronald Rivest, Adi Shamir et Leonard Adleman, pro- posent une méthode plus sûre de chiffrage asymétrique qui sera nommée selon leurs initiales : RSA.

Cette méthode a en plus l’avantage de fonctionner dans les deux sens : un message chiffré par la clef privée pourra aussi être déchiffré par la clef publique, ce qui n’est pas le cas pour le cryptosystème Merkle-Hellman.

On verra que cela a un intérêt majeur pour les processus d’authentification.

Par comparaison avec les clefs de chiffrement symétrique type AES, le cryptage asymétrique RSA utilise des clefs de 1024 bits minimum (2048 bits souvent actuellement).

4.1.3 Protocole d’authentification

Le chiffrement asymétrique pose au moins deux problèmes :

• le chiffrement est nettement plus lourd qu’avec un système symétrique

• l’utilisateur qui décrypte un message avec sa clef privée n’a pas la garantie de la provenance de l’utilisateur.

Pour résoudre ces deux problèmes, le fonctionnement actuel de nombreux échanges de donnée est basé sur un protocole d’identification qui va permettre, grâce à du chiffrement asymétrique :

• d’authentifier formellement les deux utilisateurs qui souhaitent échanger des données ;

• de s’échanger en toute sécurité une clef de chiffrement symétrique !

On trouvera en annexe du cours des illustrations de protocole d’identification entre deux connexions A et B (Alice et Bob).

Ces protocoles sont aussi utilisés pour la notion designature numérique.

Pour justifier d’échanges convenables, il faut une phase de négociation de la connexion sécurisée (handshake).

On y définit ainsi les contraintes d’authentification, de chiffrements symétrique et asymétrique, la méthode de hachage (MD5,SHA, . . . ), de contraintes d’intégrité, de compression éventuelle des données. C’est ce que font les protocoles SSL (Secure Socket Layer) et sa version améliorée TLS (Transport Layer Security).

Enfin, le protocoleHTTPS, qui est une surcouche de HTTP utilisant une sécurisation via SSL, utilise la notion de certificat: on s’assure de l’authentification en passant par un serveur tierce, qui garantit que vous vous adressez au bon serveur.

Bien évidemment, les serveurs fournissant les certificats de sécurité monnayent ces certificats. C’est notam- ment pour cela que ceux-ci ont des dates d’expiration et que l’on peut voir apparaître sur certains sites que le certificat aexpiré.

Bibliographie

• Wikipedia : cryptographie symétrique, asymétrique, signature numérique, RSA, Merkle-Hellman

• https ://www.apprendre-en-ligne.net/crypto/knapsack/index.html

• ENIB : cours de Fabrice Harrouet

• pixees.fr : cours de David Roche

(7)

Réception d’un message en clair avec authentification

080caf2e31787

90a4af1b6f6c1 7f0a993f6bb89 9d75be22fa70f 65d4f447620d

C’est moi, Alice !

781d2e618aa27 b0a165ad67597 54eb3ea68ef74 1eb221c8a5de3 012d2832afc5 4fc84e9358835

3db95681de61f 63d4aea54e5b6 020f787652404 d6368f41fffd

C’est moi, Alice !

hachage

Crypté avec clé privée

d’Alice

Crypté avec clé publique de

Bob

Message envoyé

080caf2e31787 90a4af1b6f6c1 7f0a993f6bb89 9d75be22fa70f 65d4f447620d

781d2e618aa27 b0a165ad67597 54eb3ea68ef74 1eb221c8a5de3 012d2832afc5 4fc84e9358835

3db95681de61f 63d4aea54e5b6 020f787652404 d6368f41fffd

C’est moi, Alice !

hachage

Décrypté avec clé publique

d’Alice

Décrypté avec clé privée de

Bob

Message reçu

080caf2e31787

90a4af1b6f6c1 7f0a993f6bb89 9d75be22fa70f 65d4f447620d

comparaison

(8)

Réception d’un message chiffré avec authentification

2fbe01f5d98c2

93d668f4ce297 720d8865f0186 4067dc1c44fe0 4f66db9cc7e7

C’est moi, Alice et ma clef

symétrique est

ABCD

1ffd40f711d3f 8e06210880bd2 70bd36b3946cd 587a3790d5d24 bf7f0c04c313 f3954f48c976e

6e31e89b7e1b4 02864ac359736 529b6e5526971 0636b6b046fc

hachage

Crypté avec clé privée

d’Alice

Crypté avec clé publique de

Bob

Message envoyé

3a9c3e8a8f69f

3a725ef4c38f2 057ca8bbbec49 562e79be3b422 b89851d40fbd

9bd46e1a74150 5df5a3c7f91e1 7290c039c27de d61c779b61097 1a06fed2f70f

Crypté avec clé privée

d’Alice

Crypté avec clé publique de

Bob

2fbe01f5d98c2 93d668f4ce297 720d8865f0186 4067dc1c44fe0 4f66db9cc7e7

C’est moi, Alice et ma clef

symétrique est

ABCD

1ffd40f711d3f 8e06210880bd2 70bd36b3946cd 587a3790d5d24 bf7f0c04c313 f3954f48c976e

6e31e89b7e1b4 02864ac359736 529b6e5526971 0636b6b046fc

hachage

Décrypté avec clé publique

d’Alice

Décrypté avec clé privée de

Bob

Message reçu

3a9c3e8a8f69f

3a725ef4c38f2 057ca8bbbec49 562e79be3b422 b89851d40fbd

9bd46e1a74150 5df5a3c7f91e1 7290c039c27de d61c779b61097 1a06fed2f70f

Décrypté avec clé publique

d’Alice

Décrypté avec clé privée de

Bob

2fbe01f5d98c2 93d668f4ce297 720d8865f0186 4067dc1c44fe0 4f66db9cc7e7

comparaison

Références

Documents relatifs

Pour revenir à tout moment sur cette page, cliquer sur l'image en cours Visite terminée.. Cliquer ici

[r]

[r]

nlen2: translation using Dutch stemmer and a dictionary with stemmed entries nlen3: translation using compound-splitter for Dutch and full-form dictionary nlen4: translation

1) Le travail invisible : la fouille s’effectue avec des bénévoles plus ou moins amateurs, aussi peut-il arriver que les responsables de fouilles soient conduits à effectuer

Pour assurer la condentialité de ses messages, le professeur chire les notes avec la clef RSA du secrétariat.. Pour assurer l'authenticité des messages contenant les notes,

• Lorsque le chiffrement est symétrique – Génération de la clef partagée sur un partenaire – Distribution sûre de la clef vers l'autre partenaire. • Lorsque le chiffrement

Si Alice veut voter « oui » au référendum, elle envoie le message 1 à A, chiffré avec la clef publique de A, si elle veut voter « non », elle envoie un chiffré du message 0..