27
L'interface du programme pour la MPS La zone clé, vous permet d’entrer votre clé secrète. Lors de la vidéoprojection , on peut agrandir la taille de la police. M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal CHOUCHI Rachid

L'interface du programme pour la MPS CHO - …r.chouchi.free.fr/telechargement/documentationprogramme.pdf · Les méthodes de chiffrement : Il y a différentes méthodes de chiffrements

  • Upload
    lamthu

  • View
    218

  • Download
    0

Embed Size (px)

Citation preview

L'interface du programme pour la MPS

La zone clé, vous permet d’entrer votre clé secrète.

Lors de la vidéoprojection , on peut agrandir la taille de la police.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Les méthodes de chiffrement :Il y a différentes méthodes de chiffrements

1. Chiffrement de César En cryptographie, le chiffrement par décalage, aussi connu comme chiffre de César, est une méthode de chiffrement très simple utilisée par Jules César dans ses correspondances secrètes.Le texte chiffré s’obtient en décalant chaque lettre d’un nombre fixe de rang dans l’ordre de l’alphabet.Pour les dernières lettres, on reprend au début.

Pour un décalage de 3 vers la droite, A est remplacé par D,B devient E, et ainsi de suite Z devient C.

On parle de substitution mono-alphabétique quand chaque lettre est toujours codée par la même lettre.

2. L'Atbash adapté à l'alphabet latinLe chiffrement Atbash adapté à l'alphabet latin serait:

En clair 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 zChiffré Z Y X W V U T S R Q P O N M L K J I H G F E D C B A

Une façon plus simple et plus rapide de le noter est de présenter la correspondance dans un tableau de 13 colonnes:

A B C D E F G H I J K L MZ Y X W V U T S R Q P O NL'Atbash peut de même être utilisé dans tout alphabet.

Par exemple, en Atbash, les lettres « xszlh» correspondent au mot «chaos».

L'absence de voyelle dans l'hébreu permet de nombreuses situations dans lesquelles des mots et leur Atbash ont un sens. Ce cas est plus rare en français. RU et IF, ART et ZIG, RIVA et IREZ en sont quelques exemples1.

3. Chiffrement Affine

Le chiffrement affine est une méthode de cryptographie basée sur un chiffrement par substitution.On commence par remplacer chaque lettre par son rang dans l'alphabet en commençant au rang 0.Deux entiers a et b sont choisis comme clef.le coefficient a ∈ A∗ = {1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25}.le coefficient b : un entier de 0 à 25Chaque lettre claire est d'abord remplacée par son équivalent numérique x puis chiffrée par le calcul du reste de la division euclidienne par 26 de l'expression affine ax+b (soit ax+b mod26 ).

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Ainsi pour chiffrer le mot CHIMIE grâce au chiffre affine de clef (17,3), il faut:

• d'abord le transcrire en série de nombres : CHIMIE → 2 ; 7 ; 8;12;8;4• appliquer ensuite la fonction affine : 2 ; 7 ; 8;12;8;4 → 37;122;139;207;139;71• prendre les restes dans la division par 26 : 37;122;139;207;139;71→ 11;18;9;25;9;19• puis retranscrire en lettres : 11;18;9;25;9;19→ LSJZJT

Si a (paire ) =2 et b =7

AVION devient HUXJH A et N donnent H , si, on effectue un déchiffrement : AVIOA ou NVIONANNEE devient HDDPP le déchiffrement: ANNEE? ALLEE? AYYRR ..?Remarque : Le menu Affine0 ne test pas la validité de a

4. Chiffrement de VigenèreL'idée de Vigenère est d'utiliser un chiffre de César, mais où le décalage utilisé change de lettres en lettres. Pourcela, on utilise une table composée de 26 alphabets, écrits dans l'ordre, mais décalés de ligne en ligne d'un caractère. On écrit encore en haut un alphabet complet, pour la clé, et à gauche, verticalement, un dernier alphabet, pour le texte à coder :

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Exemple:Message: FORMATION ISN LE JEUDI APRES MIDIClé: PHYSIQUEOn commence par écrire la clef sous le texte à coder

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

L’intersection P et F donne U, on remplace F par U

L’intersection P et F donne U, on remplace F par U ainsi de suiteOn a le message après chiffrement : UVPEIJCSCPQFTUDIJKGSXHYWBPBA

5. Chiffrement de HillEn 1929, Lester Hill propose un nouvel algorithme de chiffrement. Son idée est de procéder à des substitutions de lettres mais par un procédé impliquant des polygrammes, c'est-à-dire des paquets de plusieurs lettres(c'est-à-dire qu'on ne (dé)chiffre pas les lettres les unes après les autres, mais par paquets).C'est une version bigraphique, c'est-à-dire que l’on groupe les lettres deux par deux, mais on peut envisager des paquets plus grands.

On veut par exemple chiffrer le message « PHYSIQUE».On décompose en paquet de deux lettres : PH YS IQ UEon remplace par :15;7 24;18 8;16 20;4Remarque : Le nombre de lettres doit être un multiple de 2,dans le cas contraire on ajoute arbitrairement une lettre.Exemple : BONJOUR deviendrait BO NJ OU RXLes valeurs numériques des lettres du texte en clair sont ensuite chiffrées par blocs de deux, en leur substituant les valeurs obtenues par le procédé suivant :On choisit quatre entiers a,b,c et d constituant la clé du chiffrement.Les 4 nombres doivent satisfaire 2 conditions :a est premier avec 26 (a=3,5,7,9,11,15,17,19,21,23,25),a est un des nombres [ 3,5,7,9,11,15,17,19,21,23,25], et ad-bc est premier avec 26.

Les lettres de l’alphabet sont codées de 0 à 25. A un bloc de deux lettres correspondent donc un couple (x;y) d’entiers compris entre 0 et 25. On chiffre le message en associant au couple (x;y), le couple (x′;y′) tel que :x′≡ax+by mod (26)y′≡cx+dy mod (26)

Exemple : a = 2 ; b = 5; c = 17; d = 1On veut chiffrer PC , c'est le couple (15;2) d'après le tableau.x′≡2x+5y mod (26)y′≡17x+1y mod (26)x′≡2x15+5x2 mod (26) = 40 mod 26 = 14 → Oy′≡17x15+1x2 mod (26) = 257 mod 26 = 23 → XLe chiffrement donne OX pour PC.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

6. Chiffrement de ADFGVXLes Allemands l’ont utilisé, à partir de 1918, un chiffre inspiré du carré de Polybe, le GEDEFU 18.http://fr.wikipedia.org/wiki/Chiffre_ADFGVXhttp://www.apprendre-en-ligne.net/crypto/subst/adfgvx.html

7. Chiffrement de Delastellehttp://fr.wikipedia.org/wiki/Chiffre_de_Delastelle«Le chiffre de Delastelle - du nom de son inventeur, le Français Félix-Marie Delastelle (1840-1902), qui en avait décrit pour la première fois le principe dans la Revue du Génie civil en 1895, sous le nom de « cryptographie nouvelle » - utilise une grille de chiffrement/déchiffrement analogue à celle du carré de Polybe. Ilrepère les coordonnées de plusieurs lettres claires, mélange ces coordonnées, puis lit dans la grille les lettres chiffrées correspondant aux nouvelles coordonnées obtenues. Ce procédé est dit tomogrammique. Le Traité élémentaire de cryptographie de Delastelle, seul cryptographe civil important de l'époque, fut publié chez Gauthier-Villars en 1902.»http://www.apprendre-en-ligne.net/crypto/subst/delastelle.htmlhttp://www.bibmath.net/crypto/index.php?action=affiche&quoi=ancienne/delastelle

8. Chiffrement de Morse Code morse international

1. Un tiret est égal à trois points2. L’espacement entre deux éléments d’une même lettre est égal à un point.3. L’espacement entre deux lettres est égal à trois points.4. L’espacement entre deux mots est égal à sept points.

Source : http://fr.wikipedia.org/wiki/Morse_%28alphabet%29

8. Chiffrement VernamLe masque jetable est le seul algorithme de chiffrement connu comme étant indéchiffrable. C'est en fait un chiffre de Vigenère avec comme caractéristique que la clef de chiffrement a la même longueur que le message clair. Le système du masque jetable fut inventé par Gilbert Vernam en 1917, puis perfectionné par le major Joseph O. Mauborgne en 1918, qui inventa le concept de clef aléatoire.http://fr.wikipedia.org/wiki/Masque_jetable

9. Chiffrement de EnigmaPrincipe de fonctionnement :http://fr.wikipedia.org/wiki/Enigma_%28machine%29http://www.bibmath.net/crypto/index.php?action=affiche&quoi=debvingt/enigmafoncEnigmaSim v7.0.6 (Zip 3.1 MB) :http://fr.wikipedia.org/wiki/Enigma_%28machine%29

10. PetitRSAL’algorithme le plus célèbre d’algorithme à clef publique a été inventé en 1977 par Ron Rivest, Adi Shamir et Len Adleman, à la suite de la publication de l’idée d’une cryptographie à clef publique par Diffie et Hellman. Il fut appelé RSA, des initiales de ces inventeurs.RSA est basé sur la difficulté de factoriser un grand nombre en produit de deux grands facteurs premiers.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

PrincipeLe chiffrement RSA repose sur le choix d'un couple de deux nombres premiers généralement appelés {p} et {q}que l'on doit absolument garder secrets.Les nombres premiers choisis doivent être les plus grands possible afin de compliquer au maximum la tâche de celui qui veut craquer le système.Ce couple élu va engendrer d'autres nombres qui vont constituer la clé du procédé.

Génération des clésLe RSA fonctionne à partir de deux nombres premiers, que l’on appellera p et q. Ces deux nombres doivent êtretrès grands, car ils sont la clé de voûte de notre chiffrement.Aujourd’hui, on utilise des clés de 128 à 1024 bits, ce qui représente des nombres décimaux allant de 38 à 308 chiffres !Une fois ces deux nombres déterminés, multiplions-les.On note : - n le produit n = p × q- φ (n) = (p – 1) × (q – 1).Cherchons maintenant un nombre e (inférieur à φ (n)) , qui doit nécessairement être premier avec φ (n).pgcd(e,φ (n)) = 1

Calculons ensuite l’inverse de e modulo φ (n), que nous noterons d.d ≡ e-1 mod((p - 1)(q – 1))dxe mod (p - 1)(q – 1) = 1dxe mod φ (n) = 1Le couple (e, n) est la clé publique, et (d, n) est la clé privée.

2) Chiffrement et déchiffrement RSAPour chiffrer un nombre, il suffit de le mettre à la puissance e. Le reste modulo n représente le nombre une fois chiffré.c = te mod nPour déchiffrer, on utilise la même opération, mais en mettant à la puissance d :t = cd mod nUne fois e, d et n calculés, on peut détruire p, q et φ (n), qui ne sont pas nécessaires pour chiffrer et déchiffrer. On peut calculer très rapidement la clé privée d à partir de p et q, il ne faut donc pas conserver ces nombres.

Remarque : En général, la clé privée est ensuite chiffrée à l’aide d’un chiffrement symétrique.Cela permet de la conserver de façon sûre, car la clé utilisée par le chiffrement symétrique n’a pas à être transmise, et donc ne risque pas d’être interceptée.

Alice BobMessageConversion du message en chiffresABC → 65 66 67«Vous pouvez faire Alt + Lettre pour obtenir le code ascii d'une lettreAlt+ 65 donne A»

n = p.qp et q des nombres premiersf= (p-1)(q-1)Pour chaque chiffre on calculY = Xe mod nLe couple e et n sont la clé publique

398 230 67 → 65 66 67 ABCIl calcul Z = Yd mod n le couple d et n est la clé privéeIl y a des conditions :- il faut e.d mod f = 1- e est premier avec f, c'est-à-dire PGCD(e,f) =1Z = Yd mod nZ = (X e modn)

d modnZ = X e .d modnZ = X mod n = X

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Les clésPrenons deux nombres premiers simples à garder secrets :p = 17q = 37

Le nombre n est la clé publique du système.

n = p⋅qn = 17 ⋅ 37 = 629

Il ne faut pas très longtemps pour factoriser ce nombre ….A partir des nombres {p} et {q} , nous allons générer un autre nombre { φ (n)} appelé fonction indicatrice d'Euler :

φ (n) = (p − 1) ⋅ (q − 1)

φ (629) = (17 − 1) ⋅ (37 − 1)

φ (629) = 16x36 = 576 C'est ce nombre { φ(n) }et non {n} qui constitue le secret du chiffrement.La fonction indicatrice d'Euler nous dit qu'il y a 576 nombres inférieurs à 629 et qui sont premiers avec 629.Dans l'intervalle [1;629], il y a 576 qui n'ont aucun facteur premier commun avec 629.Il suffit de supprimer tous les multiples de 17 et tous les multiples de 37 dans l'intervalle [1;629].

L'exposant de chiffrement e :- il doit être supérieur à 3- il ne doit pas nécessairement être premier mais il doit être premier avec {(n)} en d'autres mots leur PGCD doitêtre égal à 1.Prenons par exemple :e = 19Comme 19 est un nombre premier, il est premier avec 576 : PGCD(19,576) = 1.Le couple (629, 19) constitue la clé publique.On peut choisir un autre nombre quelconque pour e dans [1;629].Plus n est grand , plus on a de choix pour e.Chaque couple (n,e) donne une clé publique de chiffrement différente et unique.clé publique : n = 629exposant de chiffrement e = 19

L'exposant de chiffrement.Il nous faut trouver un nombre [d] tel que :

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

(d ⋅ e ) mod φ (n) = 1

(d ⋅ 19 ) mod 576 = 1

d ⋅ 19 = k ⋅ 576 + 1 où k est un entier positif à déterminer.

d ≅ 576/19 = 31

[d] doit être un multiple de 31 ou proche d'un multiple de 31,61,67,71....

Il faut prendre 91 pour dLe couple (629,91) constitue la clé privée

Lettre A B C

Code ascii 65 66 67

(6591) mod 629 (6691) mod 629 (6791) mod 629

Chiffrement 435→ Ƴ 230 → æ 67 → C

Le déchiffrement ƳæCLe chiffrement permet de transformer un nombre [x] strictement plus petit que [n] en un autre nombre {y}, lui aussi strictement plus petit que {n}.n = 629, l'alphabet comporte 26 lettres.Déchiffrement de ABCDE avec un tableur :

Lettre Ƴ æ C

Code ascii 435 230 67

(43519) mod 629 (23019) mod 629 (6719) mod 629

65 → A 66 → B 67 → C

Finalement ƎæC → ABC

Analyses statistiquesLe menu Analyses du programme

L’application peut vous donner :

- Fréquence de la langue ( Français, Anglais, Allemand,Espagnol et Italien)

- Les Fréquences des digrammes et trigrammes duFrançais

Les histogrammes :

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Exemple d’analyse de données chiffrement de César décalage 5

Par décalage, on retrouve que F → AStatistiques de la langue

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Statistiques du texte chiffré

On peut faire des comparaisons entre le message et le message chiffré :

Analyse Affine

Qui vous détermine automatiquement

les valeurs de a et b :

Analyse Vigenère Kappa et Feidman

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

IC texte clair ( indice de coïncidence)

IC texte chiffré (indice de coïncidence)

IC des sous séquences

On prend l’indice le plus proche de la langue (0,00754)

indice du Français 0,0778

La longueur de la clé probable est de 5 lettres

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Calculer Kappa par décalage d’une lettre

Exemple

Message à déchiffrerL'indice le plus proche de la languefrançaise est un décalage de 5La longueur de la clé probable est

de 5 lettres.

Ici l’indice de coïncidence pour le Français est de 0,0778 , pourune longueur de clef de 5 on à unindice de 0,078796....La longueur de la clef possible est 5.

On peut demander la longueur possible de la clé

Menu Analyse Déchiffrer Vigenère par le KappaOn peut montrer ici l’intérêt des statistiques que l’on fait étudier aux élèves en classe de 3ième, en seconde première et autres classes.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Menu Analyse Déchiffrer Vigenère longueur 2-9

On a la clé possible

On peut faire une analyse manuelle :

test de Kasiski

http://www.di.ens.fr/~pointche/stages/projets/ensta04_2.pdf

https://www.gyyv.vd.ch/branches/mathematique/cryptographie/textes/indiceexpl.htm

http://www.numb3rs-singularity.fr/mathematiques/cryptologie/test-de-kasiski

« Test de Kasiski

Après l’épisode 1#05 et son hypothèse de Riemann pour décrypter des algorithmes asymétriques, voici l’épisode 1#06 et la cryptanalyse d’un algorithme symétrique… Décidemment, vous allez devenir des pros du décryptage de code !

Le test de Kasiski permet de casser le code de Vigenère. La méthode de cryptage de Vigenère est très simpliste comparée à ce que l’on utilise aujourd’hui. (cf : explication de son fonctionnement et démo)(Allez-y, apprenez comment cela fonctionne… ici, on va le casser, ce code !)

En cryptanalyse, on utilise souvent les attaques statistiques pour essayer de trouver le codage. Pour cela, il faut avoir une idée de la langue du message crypté. Ensuite, on utilise une analyse d’un corpus de la langue ciblée pour connaître la fréquence d’apparition des lettres. Pour le français, vous pouvez prendre celui-ci (ou

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

construire le votre…).

Le code de Vigenère a été pensé pour résister à cette attaque brute. En effet, un « e » est codé par plusieurs lettres différentes selon sa position dans le texte et la longueur de la clé. Cependant, plus la longueur de la clé est courte par rapport à la longueur du texte, plus le nombre de lettre codé par la même lettre de la clé est important. Si on trouve la taille de la clé, il suffit de réaliser une attaque statistique sur les groupes de lettres correspondant. Prenons un exemple…B M I O Y Y S K W N R B C F Z Y O E I M F Y J Y H K L W E T P T L Y M Z K H E Q L Q K C D M I K J W U J L X J S K B T M P C I I M G G V N S I Y G F C M J S X N X N T E J Q M C K Z R R C P E R V N K T M E Y M F R R T E M U Q A K Z C A T K N C A T Y K Y Y E W N X R V M C A C D P V C G S E J R X M D I E O N J S Z V Z S P N G Z X K A M E K J Z S Z B B M F L R R U E R V A V M M Z G K F T S K M W C K Q G K M O E W I G Q

On va casser le code de ce texte. Il est en français. L’idée de Kasiski est de dire qu’en français on utilise souvent des mots de 2 lettres de manière répétée : le, la, un, et. On peut aussi considérer des groupes de 3 lettresfréquents : des, une. Mais considérons déjà les groupes de 2 lettres. Vu la manière de fonctionner de l’algorithme de Vigenère, il est possible que des « le » soient codés plusieurs fois par les mêmes lettres de la clé. On obtiendra alors les mêmes 2 lettres en sortie. Cherchons donc dans le texte des groupes de lettres qui se répètent…

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

Il y a 187 positions entre les deux OE. La clé est donc de longueur 17, 11 ou 187.

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

Entre les deux YY, il y a 122 positions, soit 11*11.

La clé est donc un mot de 11 caractères. Bien sûr, il faudrait continuer à chercher d’autres groupes pour en être convaincu : certains groupes peuvent ne pas être significatifs.

Coupons maintenant le texte en paquet de 11.

B M I O Y Y S K W N RB C F Z Y O E I M F YJ Y H K L W E T P T LY M Z K H E Q L Q K CD M I K J W U J L X JS K B T M P C I I M GG V N S I Y G F C M JS X N X N T E J Q M CK Z R R C P E R V N KT M E Y M F R R T E MU Q A K Z C A T K N CA T Y K Y Y E W N X RV M C A C D P V C G S

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

E J R X M D I E O N JS Z V Z S P N G Z X KA M E K J Z S Z B B MF L R R U E R V A V MM Z G K F T S K M W CK Q G K M O E W I G Q

On sait maintenant que chaque colonne a été cryptée par la même lettre. Faisons une attaque statistique sur chaque colonne. La deuxième colonne est un bon exemple : il y a un très grand nombre de M. Or la lettre la plus utilisée en français est le E. De plus, si l’on considère une phrase normale, c’est bien la 2ème position qui aune très grande chance de contenir un E…

En prenant le carré de Vigenère, on voit que la deuxième lettre de la clé est un I.

De même avec la 3ème colonne : elle contient 3 R et 2 G. Si on suppose que les 3 R correspondent à 3 E dans letexte en clair, on obtient la lettre N comme clé.

La clé est donc : - I N - - - - - - - -

Prenons maintenant la dernière colonne : 4 C, 3 M et 3 J. On va donc prendre C = E et on obtient la lettre : Y comme clé.

La clé est donc : - I N - - - - - - - Y.

Vous pouvez continuer ainsi sur les autres colonnes également. Vous trouverez au final la clé : S I N G U L A R I T Y (quelle surprise…)

Et en décodant le texte : « J e v i e n s t o u t j u s t e d e r e m a r q u e r l e c h a n g e m e n t q u i r e l e v e p l u s d e l a c o n s e c r a t i o n a m o n g o u t L a p a r t i e s i t e s r e l i e e a N u m b e r s s u r A l l o c i n e f r a c c u e i l l e e n e f f e td e p u i s p e u N u m b e r s S i n g u l a r i t y e n p r e m i e r e p o s i t i o n d e l a t r e s c o u r t e l i s t e d e s i t e s d e f a n s »

Le test de Kasiski est un excellent exemple de cryptanalyse qui permet de bien appréhender la problématique que rencontrent les spécialistes du cryptage : le cryptage que je vend comme inviolable n’a-t-il pas des failles permettant de retrouver la clé ? Il existe de très nombreuses attaques qui ont été mises au point au fil du temps. Bien sûr, les algorithmes de cryptages les plus récents comme AES ont été soumis aux attaques connues pour évaluer leur robustesse. Lorsqu’une attaque aura été inventée, il faudra trouver de nouveaux algorithmes qui tiendront compte de la nouvelle attaque. »

La version ISN- Spé-Maths du programme :

Quelques compétences du programme

Grille de compétences et grille d'évaluation de l'épreuve de spécialité « informatique sciences du numérique » :complément à la note de service n° 2011-140 du 3 octobre 2011http://www.education.gouv.fr/pid25535/bulletin_officiel.html?cid_bo=59864

Exprimer des opérations logiques simples par combinaison d'opérateurs de base.On découvre les opérations logiques de base à l'aide d'exercices simples et on met en évidence ces opérations dans les mécanismes de recherche.En parallèle avec les séances d'algorithmique, on peut expliquer le principe d'addition de deux octets.Comprendre un algorithme et expliquer ce qu'il fait.Modifier un algorithme existant pour obtenir un résultat différent.Concevoir un algorithme.Programmer un algorithme.♦ S'interroger sur l'efficacité d'un algorithme.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Comprendre et expliquer (oralement ou par écrit) ce que fait un algorithme.♦ S'interroger sur l'efficacité d'un algorithme.Choisir un type de donnée en fonction d'un problème à résoudre.Concevoir l'entête (ou l'interface) d'une fonction, puis la fonction elle-même.Mettre un programme au point en le testant, en l'instrumentant.♦ Utiliser un outil de mise au point.L'architecture MVC du programme permet l'ajout de plugins. Le but étant de faire réaliser par les élèves une petite partie du programme en occultant certaines difficultés et en minimisant le temps.Il y a une ossature et en fonction des élèves, on peut avoir une difficulté graduelle.

La version ISN-Spé-Maths comporte plus de menus

L’ossature d'un plugin exemple :Avec une clef de chiffrement/ Déchiffrementimport cryptographie.Outils;import eleves……;

public class NomClasse extends ………….{ private String nom ="NomClasse"; @Override public String Chiffrement(String texte,String clef){ return null; } public String Dechiffrement(String texte,String clef){ return null; } @Override public String getNom() { return nom; }}

Sans clef de chiffrement/ Déchiffrementimport cryptographie.Outils;import eleves……;public class NomClasse extends ………..{ private String nom ="NomClasse"; @Override public String Chiffrement(String texte){ return null; } public String Dechiffrement(String texte){ return null; } @Override public String getNom() { return nom;

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

}}

ExemplesOn veut faire travailler les élèves sur l'utilisation d'une boucle, ils ont alors le prototype suivant à compléter :import eleves.CesarEleve;/** * * @author ELEVE */public class MonCesar extends CesarEleve { private String nom ="MonCesar"; public String Chiffrement(String secret, int decalage) { /* * partie à compléter */

return null; } @Override public String getNom() { return nom; }}

Pour un élève un peu plus débrouillard :import eleves.CesarEleve;/** * * @author ELEVE */public class MonCesar extends CesarEleve { private String nom ="MonCesar";

@Override public String Chiffrement(String message, String decalage) { /* * partie à compléter */ return null; } public String Dechiffrement(String secret, int decalage) { /* * partie à compléter */

return null; } @Override public String getNom() { return nom; }}

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Après compilation du fichier ou programme, il place celui -ci dans le répertoire plugins de l'application.Cela peut-être un fichier class ou un jar.

L’élève peut faire des essais et comparer avec la fonction César du programme.Cela peut s'appliquer aux autres fonctions : Affine, Vigenère, Polybe …..Exemple :

On peut aller graduellement dans la difficulté.Il y a beaucoup d’exercices possibles, si on prend le chiffrement affine :L'élève ne connaissant pas a et b, devrait trouver une méthode pour réussir à déchiffrer le message ….Il y a les conditions sur a et b...Il en va de même pour Vigenère, Polybe... etc.Le lien avec la SVTLa compréhension de l’information génétique portée par les génomes est un défi pour les biologistes, les biophysiciens, les informaticiens et les mathématiciens. Un des problèmes classiques en bioinformatique est l’identification de «mots» qui apparaissent avec une fréquence inattendue dans ces longues suites de lettres à valeur dans l’alphabet {a,c,g,t} que sont les séquences d’ADN. Ces mots peuvent en effet être liés à des mécanismes biologiques cruciaux pour la cellule.Transcription de l' ADN en ARN messager et inverse.Dans l'ADN, il y une chaîne transcrite et une chaîne non transcrite.On transforme le brin d'ADN transcrit en ARN messager (ARNm)

L'élève devra compléter le code

suivant :public class RTPCR extends TranscriptaseRTEleve { private String nom ="RTPCR"; public String Chiffrement(String texte) { return null; } public String Dechiffrement(String texte) { return null; } @Override public String getNom() { return nom; }}

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

On peut faire une analyse de séquence ADN : http://abiens.snv.jussieu.fr/OBI/OBI3/cours_seq.pdf http://blast.ncbi.nlm.nih.gov/Blast.cgi

Dans le Cadre d’un projet ISNOn peut faire réaliser dans le cadre d'un projet un plugin sur monRSA (petits nombres premiers ) en deux étapes :- Utilisation d'un tableur.- puis élaboration du plugin.- On peut mettre en évidence l'intérêt de l'utilisation de grands nombres premiers.http://fr.wikipedia.org/wiki/Nombre_premier- calculer le modulo du carré d'un nombre

Le chiffrement RSAPrincipeLe chiffrement RSA repose sur le choix d'un couple de deux nombres premiers généralement appelés {p} et {q}que l'on doit absolument garder secrets.Les nombres premiers choisis doivent être les plus grands possible afin de compliquer au maximum la tâche de celui qui veut craquer le système.Ce couple élu va engendrer d'autres nombres qui vont constituer la clé du procédé.

Génération des clésLe RSA fonctionne à partir de deux nombres premiers, que l’on appellera p et q. Ces deux nombres doivent êtretrès grands, car ils sont la clé de voûte de notre chiffrement.Aujourd’hui, on utilise des clés de 128 à 1024 bits, ce qui représente des nombres décimaux allant de 38 à 308 chiffres !Une fois ces deux nombres déterminés, multiplions-les.On note : - n le produit n = p × q- φ (n) = (p – 1) × (q – 1).Cherchons maintenant un nombre e (inférieur à φ (n)) , qui doit nécessairement être premier avec φ (n).pgcd(e,φ (n)) = 1

Calculons ensuite l’inverse de e modulo φ (n), que nous noterons d.d ≡ e-1 mod((p - 1)(q – 1))dxe mod (p - 1)(q – 1) = 1dxe mod φ (n) = 1Le couple (e, n) est la clé publique, et (d, n) est la clé privée.

2) Chiffrement et déchiffrementPour chiffrer un nombre, il suffit de le mettre à la puissance e. Le reste modulo n représente le nombre une fois chiffré.c = te mod nPour déchiffrer, on utilise la même opération, mais en mettant à la puissance d :t = cd mod nUne fois e, d et n calculés, on peut détruire p, q et φ (n), qui ne sont pas nécessaires pour chiffrer et déchiffrer. On peut calculer très rapidement la clé privée d à partir de p et q, il ne faut donc pas conserver ces nombres.

Remarque : En général, la clé privée est ensuite chiffrée à l’aide d’un chiffrement symétrique.Cela permet de la conserver de façon sûre, car la clé utilisée par le chiffrement symétrique n’a pas à être transmise, et donc ne risque pas d’être interceptée.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Alice BobMessageConversion du message en chiffresABC → 65 66 67n = p.qp et q des nombres premiersf= (p-1)(q-1)Pour chaque chiffre on calculY = Xe mod nLe couple e et n sont la clé publique

398 230 67 → 65 66 67 ABCIl calcul Z = Yd mod n le couple d et n est la clé privéeIl y a des conditions :- il faut e.d mod f = 1- e est premier avec f, c'est-à-dire PGCD(e,f) =1Z = Yd mod nZ =

Object 3

Z = Object 4

Z = X mod n = X

Les clésPrenons deux nombres premiers simples à garder secrets :p = 17q = 37

Le nombre n est la clé publique du système.

n = p⋅qn = 17 ⋅ 37 = 629

Il ne faut pas très longtemps pour factoriser ce nombre ….A partir des nombres {p} et {q} , nous allons générer un autre nombre { φ (n)} appelé fonction indicatrice d'Euler :

φ (n) = (p − 1) ⋅ (q − 1)

φ (629) = (17 − 1) ⋅ (37 − 1)

φ (629) = 16x36 = 576 C'est ce nombre { φ(n) }et non {n} qui constitue le secret du chiffrement.La fonction indicatrice d'Euler nous dit qu'il y a 576 nombres inférieurs à 629 et qui sont premiers avec 629.Dans l'intervalle [1;629], il y a 576 qui n'ont aucun facteur premier commun avec 629.Il suffit de supprimer tous les multiples de 17 et tous les multiples de 37 dans l'intervalle [1;629].

L'exposant de chiffrement e :- il doit être supérieur à 3- il ne doit pas nécessairement être premier mais il doit être premier avec {(n)} en d'autres mots leur PGCD doitêtre égal à 1.Prenons par exemple :e = 19Comme 19 est un nombre premier, il est premier avec 576 : PGCD(19,576) = 1.Le couple (629, 19) constitue la clé publique.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

On peut choisir un autre nombre quelconque pour e dans [1;629].Plus n est grand , plus on a de choix pour e.Chaque couple (n,e) donne une clé publique de chiffrement différente et unique.

clé publique : n = 629exposant de chiffrement e = 19

Le chiffrementLe chiffrement permet de transformer un nombre [x] strictement plus petit que [n] enun autre nombre {y}, lui aussi strictement plus petit que {n}.n = 629, l'alphabet comporte 26 lettres.

Chiffrement de ABCDE avec un tableur :Lettre A B C

Code ascii 65 66 67

Chaque nombre [x] (code Ascii) subit l'opération (xe ) mod nLettre A B C

Code ascii 65 66 67

(6519) mod 629 (6619) mod 629 (6719) mod 629

Depuis de nombreuses années, les machines sont de plus en plus rapides et puissantes, avec de plus en plus de mémoire. Les problèmes qu'on aborde sont souvent de plus en plus complexes, donc de plus en plus gourmandsen temps et en ressources (facebook, Google, le Big data, les nombres premiers ….)Le choix d'un algorithme efficace restera toujours très important.On ne va pas calculer 6519 puis faire mod 629.On ne colle pas le calcul dans l'ordinateur et on attend le résultat, il faut essayer d'optimiser les choses et éviter des calculs inutiles (algorithme “efficace” ).

Exponentiation rapideOn utilise l'algorithme suivant pour le calcul de xk mod n, qui servent à chiffrer et déchiffre le message. Les opérations de chiffrement/déchiffrement RSA nécessitent des calculs dont les exposants sont des nombres de très grande taille (plusieurs centaines de chiffres). Elles nécessitent donc un algorithme efficace d'exponentiation.Cet algorithme permet d'élever rapidement un nombre entier à des puissances très grandes. Son principe consiste à opérer par élévations au carré successives en remarquant que x2k = (xk)2 et x2k+1 = x×(xk)2

Comment, par exemple calculer le (6519) mod 629 = 398 a = 65 k = 19 = 24 + 21+20 s'écrit, en binaire, 10011n=629

p = 1 au départ.on lit les bits de droite à gauche :

le premier chiffre binaire vaut 1 donc 65 : 651 mod 629

p devient égal à pxa mod n = 1x65 mod 629 = 65

a devient égal à a2 mod 629 = 65

2 mod 629 = 4225 mod 629 = 451

le second chiffre binaire vaut 1 donc : p devient égal à p x a mod n = 65x451mode 629 = 381

a devient égal à a2 mod 629 = 451

2 mod 629 = 234

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

le 3ème

chiffre binaire vaut 0 donc :p p reste égal à 381

a devient égal à a2 mod 629 = 234

2 mod 629 = 33

le 4ème

chiffre binaire vaut 0 donc :p reste égal à 381

a devient égal à a2 mod 629 = 33

2 mod 629 = 460

le 5ème

chiffre binaire vaut 1 donc :p devient égal à pxa mod n = 381x460 mod 629 = 398

a devient égal à a2 mod 629 = 460

2 mod 629 = 256

(6519) mod 629 = p=398 est le résultat du calcul cherché.

On peut calculer le modulo du carré d'un nombre à partir du carré de son modulo.

x = k ⋅ 629 + reste

x mod 629 = reste

x² = (k ⋅ 629 + reste ) = k² ⋅ 629² + 2⋅k⋅629⋅reste + reste²

k² ⋅ 6292 et 2⋅k⋅629⋅reste sont multiples de 629

x² mod 629 = reste² mod 629

xe = x19= x16⋅x2⋅x

(6519) mod 629 = (6516⋅ 652⋅ 65) mod 629

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

TableurRang e x reste² mod 6291 65 652 65² = 4225 4514 451²=203401 2348 234²=54756 3316 33² =1089 46016+2+1

460⋅451⋅65 =13484900

398

Lettre A B C

Code ascii 65 66 67

Code 398 230 67

Le déchiffrementLe déchiffrement utilise le même processus pour transformer un nombre [y] strictement plus petit que [n] comme pour x).Chaque nombre y subit l'opération (yd) mod n

L'exposant de chiffrement.Il nous faut trouver un nombre [d] tel que :

(d ⋅ e ) mod φ (n) = 1

(d ⋅ 19 ) mod 576 = 1

d ⋅ 19 = k ⋅ 576 + 1 où k est un entier positif à déterminer.

d ≅ 576/19 = 31

[d] doit être un multiple de 31 ou proche d'un multiple de 31,61,67,71....

Il faut prendre 91 pour dLe couple (629,91) constitue la clé privée

Lettre A B C

Code ascii 65 66 67

Code 398 230 67

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Décode (39891) mod 629 (23091) mod 629 (6791) mod 629

Décode 65 66 67

Tableur

Attaque sur RSAhttp://etudes.univ-rennes1.fr/digitalAssets/38/38448_cours02_RSA.pdfhttp://www.acrypta.com/telechargements/fgc/annexes/fgc_annexe_6.pdfhttp://www.math.unicaen.fr/~nitaj/rsa2005.pdf

Spé-Maths Les problèmes étudiés peuvent notamment être issus de la cryptographie ou relever directement de questions mathématiques, par exemple à propos des nombres premiers.

Exemples de problèmes ContenusProblèmes de codage (codes barres, code ISBN, clé du Rib, code Insee Problèmes de chiffrement (chiffrement affine, chiffrement de Vigenère, chiffrement de Hill).Questionnement sur les nombres premiers : infinitude, répartition, tests de primalité, nombres premiers particuliers (Fermat, Mersenne, Carmichaël).Sensibilisation au système cryptographique RSA.

Divisibilité dans Z. Division euclidienne. Congruences dans Z. PGCD de deux entiers. Entiers premiers entre eux. Théorème de Bézout. Théorème de Gauss. Nombres premiers. Existence et unicité de la décomposition en produit de facteurs premiers.

Pour une sensibilisation au chiffrement RSA, on peut utiliser différents chiffres :

Pour vous aider, il fournit les valeurs de p,q,e,dChiffrement avec N,e ou p,q,e

Déchiffrement avec p,q,d ou N,dPour le chiffrement :13,23,19

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Si, on n’entre pas les bonnes valeurs, on obtient un message erroné :

Il est donc important de bien choisir les valeurs de p,q,d,e.

On peut utiliser RSA qui utilise des nombres premiers beaucoup plus grands.

NOMBRES de FERMAT

Un peu d’histoire . . .

http://tomlr.free.fr/Math%E9matiques/Fichiers%20Claude/Les%20Nombres%20De%20Fermat(Fermat,%20Maths,%20Math%E9matiques,%20Nombre%20Particulier).pdf

«Pierre de Fermat, homme de loi et conseiller au Parlement de Toulouse (Les mathématiques, et en particulier l’arithmétique, constituaient en effet plus un loisir qu’un métier, et la frontière entre «amateur» et «professionnel», notions pour le moins relatives, n’était pas encore tracée. ) , postula en 1640 dans un courrier à son ami Bernard Frenicle de Bessy (Mathématicien français, membrede la première Académie des Sciences. ) , et cela au regard de certains résultats, que tout nombre de la forme Fn = 22 +1, avec n entier naturel, était premier. Ne réussissant pas à démontrer ce résultat, il proposa ce problème difficile à Blaise Pascal, accompagné du commentaire du suivant : « Je ne vous demanderais pas de travailler à cette question si j’avais pu la résoudre moi-même » Ce dernier ne s’y intéressant guère, il soumit également cette question à Lord William Brouncker et JohnWallis , en vain. . . Et pour cause : la conjecture de Fermat était fausse. Ce fut le mathématicien Leonhard Euler qui, en proposant une factorisation de F5 , démontra que

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

Fermat s’était trompé . Et pourtant l’espoir était là d’avoir enfin trouvé une suite d’entier dont les termes décrivent une partie de la suite infinie des nombres premiers. »

Forme générale F3 – 1 = 22^3 = 28 = 256F3 = 257Fn = F0 F1 F2 .... Fn-1 + 2ExemplesF2 = F0 F1 + 2 = 3 x 5 + 2 = 17F3 = F0 F1 F2 + 2 = 3 x 5 x 17 + 2 = 257F4 = 3 x 5 x 17 x 257 + 2 = 65 537Aucun nombre de Fermat n'est somme de deux nombres premiers à l'exception de F1 = 2 + 3.

Nombres de MersenneUn entier positif n est appelé un nombre parfait si il est égal à la somme de ses diviseurs positifs en excluant n. Nombres parfaits paires6 = 21(22-1)=1+2+328= 22(23-1)=1+2+3+4+5+6+7496= 24(25-1)=1+2+....+30+318128 = 26(27-1)=1+2+3+....+126+127

Mp = 2p – 1 (nombre de Mersenne) et Pp = 2p-1(2p - 1) (nombre parfait associé) Soit n un entier. 2n – 1 est appelé un nombre de Mersenne. Si 2n - 1 est premier alors il s'agit d'un nombre premier de Mersenne. k est un nombre parfait pair si et seulement si il est de la forme 2n-1(2n-1) et 2n-1 est premier.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid

La petite calculetteElle offre quelques outils :Bezout, ModuloInverse, mod, PGCD et la puissance d’un nombre.

M CHOUCHI Rachid Lycée Louis Lapicque 88000 Epinal

CH

OU

CH

I Rachid