Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération...

25
Cryptographie - 2

Transcript of Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération...

Page 1: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Cryptographie - 2

Page 2: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Plan

Primalité RSA Cryptographie à courbes elliptiques Les modes d’opération Les tailles de clé

Page 3: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Primalité

Rappel : un nombre est dit premier s’il n’est divisible que par lui-même ou par 1

De nombreux problèmes en cryptographie utilisent les nombres premiers et la factorisation des nombres en facteurs premiers (RSA, …)

Il est donc important de pouvoir déterminer si un nombre est premier

Méthode classique : crible d’Eratosthene (division par les nombres premiers)

Page 4: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Primalité – suite

Avec 256 bits : 2256 => 77 chiffres décimaux Avec 512 bits : 2512 => 155 chiffres décimaux Avec 2048 bits : 22048 => 617 chiffres décimaux Plus grand nombre premier (2006):

232 582 657-1 : 9 808 358 chiffres décimaux

Page 5: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Test de primalité de Fermat Le petit théorème de Fermat affirme que

si p est un nombre premier et et si a est premier avec p, alors ap-1 - 1 est divisible par p. corollaire :pour tout a entier et p premier, alors a p - a est un multiple de p.

Ceci peut être aussi écrit

a p-1 1 (p) Le programme de chiffrage PGP utilise cette propriété pour examiner si les grands

nombres aléatoires qu'il choisit sont premiers. Il examine les valeurs que nous appellerons x en utilisant quatre valeurs de a (appelées témoins) en employant la formule ci-dessus. Ces quatre valeurs sont 2, 3, 5 et 7, les quatre premiers nombres premiers.

Si 1 2x-1 3x-1 5x-1 7x-1 (x) alors nous savons que le nombre x est probablement premier

Page 6: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

RSA: Chiffrement et déchiffrement Chiffrement (publique)

La clé publique est un couple d'entiers:

K = (e, n) Le chiffrement se fait au moyen de l'élévation à la

puissance e modulo n:

EK (M) = Me mod n,

Déchiffrement (secrète) La clé secrète est un couple d'entiers:

k = (d, n) Le déchiffrement se fait au moyen de l'élévation à la

puissance d modulo n:

Dk (M) = Md mod n

Page 7: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

RSA - Détermination des clefs – 1 1.Détermination de n

Trouver deux entiers premiers p et q très grands: Calculer n = p q

p et q doivent rester secrets : La sécurité du système repose sur la difficulté de factoriser un grand entier n en deux entiers premiers p et q.

n doit avoir un longueur supérieure à 512 bits. p et q doivent vérifier diverses autres conditions.

2.Détermination de e Calculer z = (p-1) (q-1) Choisir un entier e premier avec z. La clé publique est (e, n)

Page 8: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

RSA - Détermination des clefs – 2

3. Détermination de d Choisir un entier d tel que : e d =1 mod z

(d inverse de e dans l'arithmétique mod z) La clé privée est ( d , n )

Page 9: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

RSA : Inversibilité -1 Fonction d'Euler

Pour n entier, z = φ(n) est le nombre d'entiers premiers avec n.

si n est premier, φ(n) = n-1 si n = p.q avec p et q premiers,

φ(n) = (p-1)(q-1) Théorème d'Euler

Si a et n sont premiers entre eux,

a φ(n) mod n = 1

Page 10: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

RSA : Inversibilité - 2 Pourquoi RSA marche

Dk(E

K (M)) = ((M)e mod n)d mod n

= (Me) d mod n = Me.d mod n

Mais on a choisi e.d = 1 mod z

Donc, il existe un entier j tel que e.d = j z + 1

Me.d = Mj.z M mod n = M mod n

En effet, d’après le théorème d’Euler :

Mj.z mod n = (Mz)j mod n = (1)j = 1

Page 11: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Exemple - (B. Schneier)1) Soit deux entiers premiers p =47,q =71

n = p.q = 3337

2) z= (p-1)(q-1)= 46 . 70 = 3220

Choisissons e = 79 (premier avec n)

3) Calcul de l'inverse de e modulo z

Une solution possible : le théorème d'Euler

eφ(n) = e eφ(n)-1 mod z = 1 mod z

Donc d = e-1 = eφ(n)-1 mod z Numériquement 7978 (mod 3220) = 1019

Page 12: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Exemple - (B. Schneier)- Suite

4) Pour chiffrer M = 6882326879666683

Décomposons M en blocs dont la valeur est inférieure à n= 3337

=> Des blocs de 3 chiffres

M= 688 232 687 966 668 3

Chiffrer 688: 68879 mod 3337 = 1570

E(M) = 1570 2756 2091 2276 2423 158

Déchiffrer 1570:15701019 mod 3337 = 688

Page 13: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Cryptographie à courbes elliptiques ECC (Elliptic Curve Cryptography) Les courbes elliptiques, peuvent être utilisées

pour des opérations asymétriques comme des échanges de clés sur un canal non-sécurisé ou un chiffrement asymétrique, => cryptographie sur les courbes elliptiques. (N. Koblitz et V. Miller - 1985).

permet d'utiliser des clés plus courtes qu'avec les systèmes fondés sur le problème de la factorisation comme RSA. De plus l'ECC procure un niveau de sécurité équivalent ou supérieur aux autres méthodes.

Page 14: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Cryptographie à courbes elliptiques - 2 La résistance d'un système fondé sur les courbes

elliptiques repose sur le problème du logarithme discret dans le groupe correspondant à la courbe elliptique.

théorie complexe et relativement récente. de nombreux brevets sont déposés : incertitudes sur le

développement. une clé (=taille du corps de base) de 200 bits pour les

courbes elliptiques est plus sûre qu'une clé de 1024 bits pour le RSA.

les calculs sur les courbes elliptiques ne sont peu compliqués à réaliser, => avantage pour les cartes à puces (puissance limitée) et où la taille de la clé influe beaucoup sur les performances.

Page 15: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Les courbes elliptiques - 3

Debian propose actuellement des clés ECDSA de 512 bits.

Page 16: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Les modes d’opération

C’est le mode opératoire du traitement des blocs clairs et chiffrés en cryptographie symétrique par blocs. Il en existe plusieurs : Dictionnaire de codes (Electronic Code Book, ECB)

Enchaînement des blocs (Cipher Block Chaining, CBC)

Chiffrement à rétroaction (Cipher Feedback, CFB)

Chiffrement à rétroaction de sortie (Output Feedback, OFB)

Chiffrement basé sur un compteur (CounTeR, CTR)

Chiffrement avec vol de texte (CipherText Stealing, CTS)

Page 17: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Dictionnaire de codes (Electronic Code Book, ECB)

Le mode le plus simple. Le message à chiffrer est subdivisé en plusieurs blocs qui sont chiffrés séparément les uns après les autres.

2 blocs avec le même contenu seront chiffrés de la même manière, on peut donc tirer des informations à partir du texte chiffré en cherchant les séquences identiques. On obtient dès lors un « dictionnaire de codes » avec les correspondances entre le clair et le chiffré d'où le terme codebook.

fortement déconseillé dans toute application cryptographique.

Page 18: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Enchaînement des blocs (Cipher Block Chaining, CBC)

on applique sur chaque bloc un ‘OU exclusif’ avec le chiffrage du bloc précédent avant qu’il soit lui-même chiffré.

Utilisation d’un vecteur d’initialisation

Page 19: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

CBC

Page 20: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Chiffrement à rétroaction (Cipher Feedback, CFB)

le flux de clé est obtenu en chiffrant le précédent bloc chiffré. CFB est un chiffrement par flot.

il ne nécessite que la fonction de chiffrement, ce qui le rend moins cher à câbler ou programmer pour les algorithmes ayant une fonction de chiffrement différente de la fonction de déchiffrement (exemple: AES).

Page 21: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Chiffrement à rétroaction de sortie (Output Feedback, OFB)

Dans ce mode, le flux de clé est obtenu en chiffrant le précédent flux de clé.

mêmes avantages que CFB. possible de le précalculer en chiffrant successivement la clé. Il n'est donc sûr que si la fonction de chiffrement alliée à la clé forment une bonne suite aléatoire.

Page 22: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Chiffrement basé sur un compteur (CounTeR, CTR)

le flux de clé est obtenu en chiffrant les valeurs successives d’un compteur.

Présente des avantages, car il permet le chiffrement par flot, est précalculable, permet un accès aléatoire aux données, est parallélisable et n'utilise que la fonction de chiffrement. Le compteur utilisé peut être une suite pseudo-aléatoire qu'il sera facile de retrouver à partir de la graine (vecteur d'initialisation).

Page 23: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Chiffrement avec vol de texte (CipherText Stealing, CTS)

Dans le chiffrement par blocs (ECB, CBC, etc.), les deux derniers blocs sont partiellement combinés de façon à obtenir un message de même taille. Ici, exemple de CTS opérant sur un chiffrage en mode CBC

Notons que les deux derniers blocs sont échangés et combinés en partie, ce qui nécessitera de les obtenir tous les deux pour en décrypter un.

CTS n'est pas un mode de chiffrage par flot, mais permet d'éviter l'utilisation de bourrage dans les chiffrements par blocs, et donne une taille de message crypté égale à la taille du message clair. Il est très utilisé dans les protocoles ou formats ne supportant pas une taille quelconque

Page 24: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Taille clés

Cryptographie symétrique : au moins 128 bits.

Fonction hash : au moins 160 bits. SHA3

Cryptographie asymétrique : Type RSA : au moins 1024 bits (Debian Wheezy :

2048). Courbes elliptiques : 180 bits.

Page 25: Cryptographie - 2. Plan Primalité RSA Cryptographie à courbes elliptiques Les modes dopération Les tailles de clé.

Tailles de clés : équivalences

Symétrique Publique (RSA)

80 1024

112 2048

128 3072

256 15360