• Aucun résultat trouvé

Licence Info Cryptologie

N/A
N/A
Protected

Academic year: 2022

Partager "Licence Info Cryptologie"

Copied!
3
0
0

Texte intégral

(1)

Licence Info

Cryptologie

Feuille d'exercices n 4.

Chirements symétriques (suite)

1 Modes de chirement

Soit eK :Fn2 →Fn2 une fonction de chirement symétrique. SoitdK sa fonction de déchire- ment

(a) Mode ECB (electronic code book) : on découpe le message en blocs de taille n P =P1P2. . . Pk

puis on chire Ci =eK(Pi) et le chiré de P est C =C1C2. . . Ck

Dans ce mode de chirement, un même bloc est toujours chiré de la même façon. Pour- quoi est-ce un problème ? Explicitez le mode de déchirement.

(b) Mode CBC (cipher block chaining mod) : On choisit un vecteur d'initialisation C0 =IV. Puis on chire C1 = eK(C0+P1),. . ., Ci = eK(Ci−1 +Pi), . . ., Ck = eK(Ck−1+Pk). Le chiré de P est

C =C0C1C2. . . Ck.

Pourquoi ce mode de chirement n'a pas le défaut du précédent ? Explicitez le mode de dé- chirement. Montrez qu'il a l'inconvénient de propager une erreur éventuelle apparaissant dans un bloc de clair (eet d'avalanche).

(c) Modes CFB (cipher feedback mode) et OFB (output feedback mode) : ils ont en commun de construire un masqueZ0Z1Z2. . . Zk et de chirer par Ci =Pi+Zi. Le chiré de P est

C =C0C1C2. . . Ck.

Le déchirement est donc réalisé par la même procédure que le chirement. Ils se para- métrisent par un entier 1≤s≤n.

(c1) CFB avec s=n : C0 =IV, Z0 = 0,Zi =eK(Ci−1) pouri≥1. (c2) OFB avec s=n : C0 = 0, Z0 =IV,Zi =eK(Zi−1)pour i≥1.

(c3) CFB avecs < n :C0 =IV de taillen,P est découpé en blocsPi de tailles,Z0 = 0, Z1 =MSBs(eK(C0)), et pour i≥2,

Zi =MSBs(eK(LSBn−s(Ci−2)||Ci−1)

(c4) OFB avec s < n : C0 = 0, Y0 =IV de taille n, Y1 =eK(Y0)), et pour i≥2, Yi =eK(LSBn−s(Yi−2)||MSBs(Yi−1)),

Zi =MSBs(Yi)

(2)

(d) Mode CTR (counter mode) : encore un masque. On initialise un compteur c puis on calculeZi =eK(c)et on incrémentec=c+ 1, oùc+ 1est l'addition d'entiers modulo2n. Le chiré est C0 =c, Ci =Pi+Zi et toujours

C =C0C1C2. . . Ck.

2 AES Chirement

Le principe d'AES a été vu en cours et une feuille complémentaire a été donnée qui résume les diérentes étapes du chirement.

(a) Appliquer SubBytes à l'octet (01010011). (b) Appliquer MixColumns au tableau

(11000001) (00000111) (00000000) (11111111) (11000000) (00001000) (00011110) (11111100) (11000011) (00000100) (00000001) (11100000) (10001001) (00000110) (11000000) (00010111)

 .

On se contentera de calculer quelques nouveaux octets.

3 AES Déchirement

On s'intéresse ici au déchirement d'AES.

(a) Dénir la procédure inverse de chacune des procédures SubBytes, ShiftRows, MixColumns et AddRoundKey.

(b) Montrer que l'on peut permuter InvshiftRows et InvSubBytes.

(c) Indiquer comment modier la clé de tour correspondante pour pouvoir permuter les pro- cédures AddRoundKey et InvMixColumns.

(d) Donner un découpage en tours pour le déchirement qui applique à chaque tour les pro- cédures inverses des procédures de chirement dans le même ordre que les procédures initiales, en indiquant comment modier l'expansion de clé (concaténation des clés de tour).

4 Chirement de PohligHellman, Log discret

SoitP l'ensemble des symboles (lettres, blocs) à chirer que l'on a par commodité identiés à des entiers inférieurs ou égaux à un entier donnén. On identie doncP avec un sous-ensemble de {0,1, . . . , n}. Par exemple si les symboles sont les blocs de deux lettres AB, ZC, ... codés 0001, 2502, ... on peut prendre n= 2525.

Soit pun premier impair > n et soite une clé secrète où e est un entier vériant 2≤e≤p−1 et pgcd(p−1, e) = 1.

Soit m∈ P. La clé de chirement est dénie par

m 7−→me modp∈Z/pZ.

(a) Rappeler pourquoi e est inversible modulo p−1. On note d un entier qui représente e−1 modulo p−1. Monter que la clé de déchirement est dénie par

c7−→cdmodp.

(b) Soit p= 11. On a chiré 2 en 7. Quelles sont les clés de chirement et de déchirement ?

(3)

(c) Soit p= 31. On sait que l'on a chiré 2 en 4. Peut-on trouver la clé de chirement ? Soit p un nombre premier, soit α un générateur de (Z/pZ) et soit β ∈ (Z/pZ). Le problème qui consiste à résoudre l'équation

αa =β modp d'inconnue a est appelé problème du logarithme discret.

(d) Montrer que ce problème a une solution dénie de façon unique modulo p−1. On note alors

a= logαβ (modp).

En général, le problème du logarithme discret est dicile à résoudre, mais il existe des algorithmes qui peuvent s'avérer performants quand p−1 est friable, en particulier l'al- gorithme de Pohlig-Hellman qui fait l'objet de la question suivante.

(e) On suppose que l'on connaît la décomposition de p−1 en produit de facteurs premiers :

p−1 =

r

Y

i=1

pcii.

La première idée consiste à calculera modpcii pour chaque ipuis à se servir du théorème chinois pour déterminer a.

(1) Pour simplier on pose pi = q, ci = c et l'on cherche donc x = amodqc (avec 0≤x≤qc−1). On décompose x sous la forme

x=

c−1

X

i=0

aiqi (0≤ai ≤q−1)

et on se propose de calculer les ai. Montrer qu'il existe un entiers tel que

a=

c−1

X

i=0

aiqi+sqc.

(2) Montrer que β(p−1)/qa0(p−1)/q modp. (3) En déduire une procédure de calcul de a0.

(4) Si c= 1 c'est terminé. On suppose donc maintenant que c >1 et que l'on a calculé a0, a1, . . . , aj−1 où1≤j ≤c−1. On désire calculer aj. On pose

βj =βα−(a0+a1q+···+aj−1qj−1)modp.

Montrer queβj(p−1)/qj+1aj(p−1)/q modpet en déduire une procédure pour calculer aj.

(5) En déduire un algorithme de calcul de x qui s'appuie sur les calculs successifs de a0, β1, a1, . . . , βc−1, ac−1.

(f) Se servir de cet algorithme pour trouver les clés de chirement et de déchirement sachant que p= 37 et que 2 se code 19.

(g) Même question avec p= 3001, sachant que 14 se code 1873.

Références

Documents relatifs

Un chirement ane dont vous ne connaissez pas la clé a chiré le texte clair hahaha en nonono.. Retrouvez

(h) Montrer que le recours à ces correspondances peut ramener le calcul de sommes de puis- sances de ω à celui beaucoup plus simple de produits de puissances de

Montrez qu'un attaquant peut déchirer tous les messages dès qu'il sait calculer le log en base α de β4. Quel avantage de ce système de chirement est obtenu avec le nombre

[r]

Cette application est composée d’une classe Dictionnaire.java comme modèle, une classe VueGraphik comme vue et une classe ContrôleurGraphik comme contrôleur.. Nous donnons le code

Améliorez aussi la classe Joueur de test LotoAPlusieurs pour que le tirage d'un jeton et sa remise dans le sac se fasse en exclusion mutuelle des autres joueurs : si le joueur A

Écrire la partie attente des résultats de telle sorte que votre solution soit « thread-safe » et sans

La programmation événementielle des boutons &#34;Sauvegarder&#34; et &#34;Restaurer&#34; est minable : les lectures et écritures dans un fichier sont des opérations longues, or