25
Cryptographie - G´ en´ eralit´ es 1. Cryptologie 2. Cryptographie 3. Cryptanalyse 4. S´ ecurit´ e 5. St´ eganographie 6. Transposition 7. Substitution 8. One time pad 9. Chaˆ ınage Jean Berstel 1 (January 20, 1999) Universit´ e Marne-la-Vall´ ee

Cryptographie - G´en´eralit´es 1.Cryptologie 2 ...berstel/Cours/Crypto/Crypto.pdf · 1. Cryptologie La cryptologie comprend • la cryptographie (“secret writing”) qui est

  • Upload
    hanhan

  • View
    225

  • Download
    4

Embed Size (px)

Citation preview

Cryptographie - Generalites

1. Cryptologie

2. Cryptographie

3. Cryptanalyse

4. Securite

5. Steganographie

6. Transposition

7. Substitution

8. One time pad

9. Chaınage

Jean Berstel 1 (January 20, 1999) Universite Marne-la-Vallee

1. Cryptologie

La cryptologie comprend

• la cryptographie (“secret writing”) qui est le chiffre-ment ou cryptage de messages en clair et le dechiffre-ment ou decryptage de messages codes, connaissantla cle.

• la cryptanalyse qui est l’art de decrypter des messagescodes sans connaıtre la cle (“code breaking”).

E(m) = c, D(c) = m

Jean Berstel 2 (January 20, 1999) Universite Marne-la-Vallee

2. Cryptographie

Un systeme cryptographique ou cryptosysteme est com-pose d’un algorithme de cryptage (chiffrement) et d’unalgorithme de decryptage (dechiffrement).

Types de cryptosystemes

• Systemes a usage restreint: les algorithmes de chiffre-ment et de dechiffrement sont secrets. La securiterepose sur leur confidentialite.

• Systemes a usage general: la confidentialite ne reposepas sur l’algorithme, mais sur une cle. Tout le mondepeut utiliser le systeme.

Jean Berstel 3 (January 20, 1999) Universite Marne-la-Vallee

Les cryptosystemes modernes sont des systemes a cle.

EK(m) = c, DK′(c) = m

Deux classes d’algorithmes:

• Algorithmes a cle secrete ou algorithmes symetriques.

• Algorithmes a cle publique.

Jean Berstel 4 (January 20, 1999) Universite Marne-la-Vallee

• Algorithmes a cle secreteLa cle de decryptage se calcule (simplement) a partirde la cle de cryptage et vice-versa; equivaut a unememe cle.

Deux categories:

– stream ciphers: travaillent bit a bit ou octet a octet.Exemple : xor, one time pad.

– block ciphers: travaillent sur des groupes de bits(par ex. 64 bits, DES).

• Algorithmes a cle publiqueLa cle de cryptage est publique, la cle de decryptageest secrete et non calculable en temps raisonnable.

Jean Berstel 5 (January 20, 1999) Universite Marne-la-Vallee

Objectifs

Confidentialite : le message crypte doit rester secret. nepeut etre decrypte par un tiers.

Authentification : assurance de l’authenticite, notam-ment de l’expediteur ou de l’origine.

Integrite : assurance que le message n’a pas ete modifiedurant la transmission.

Nonrepudiation : l’expediteur ne peut pas nier, ulterieu-rement, avoir envoye le message.

Jean Berstel 6 (January 20, 1999) Universite Marne-la-Vallee

Techniques

Signature : un moyen d’associer l’expediteur a un mes-sage.

Certificat : attestation qui corrobore (confirme) une af-firmation.

Tiers de confiance : c’est lui qui delivre les certificats.

Estampillage : apposition de dates ou autres signes as-surant l’unicite du message.

Jean Berstel 7 (January 20, 1999) Universite Marne-la-Vallee

3. Cryptanalyse

La cryptanalyse est la science du decryptage sans con-naissance de la cle. Une tentative d’analyse est une at-taque.

Une attaque n’est pas generale, mais exploite des situa-tions particulieres.

Attaque a texte chiffre :

l’analyste dispose de textes chiffres c1, . . . , cn.

Attaque a texte clair connu :

l’analyste dispose de textes en clair m1, . . . ,mn et deleur chiffrement c1, . . . , cn.

Jean Berstel 8 (January 20, 1999) Universite Marne-la-Vallee

Attaque a texte clair choisi :

l’analyste peut choisir les textes

m1, . . . ,mn

et obtenirc1, . . . , cn

Un cas particulier : l’analyste peut choisir mi en fonc-tion de m1, . . . ,mi−1 et c1, . . . , ci−1. C’est le cas dessystemes a cle publique.

Attaque biaisee :

l’analyste achete la cle, ou force quelqu’un a la luifournir. C’est souvent l’attaque la plus efficace.

Jean Berstel 9 (January 20, 1999) Universite Marne-la-Vallee

4. Securite

La securite mesure la difficulte de casser l’algorithme.Mais cette mesure est relative.

Un algorithme est sur

- si le cout pour casser l’algorithme est superieur a lavaleur des donnees cryptees;

- si le temps necessaire pour casser l’algorithme estsuperieur au temps pendant lequel le message doit restersecret.

Un algorithme est inconditionnellement sur si un crypt-analyste ne peut pas trouver le texte en clair, quelle quesoit la quantite de messages chiffres dont il dispose.

Un algorithme est algorithmiquement sur s’il ne peutetre casse avec les ressources disponibles (vague).Jean Berstel 10 (January 20, 1999) Universite Marne-la-Vallee

La complexite d’une attaque est mesuree par la place etle temps requis.

Exemple:

Complexite en temps : 2128 = 1040 operations.

Moyens : Un million de stations travaillant a un milliardd’operations par seconde.

Temps requis : Avec 1015 operations par seconde, il faut1025 secondes, c’est-a-dire de l’ordre d’un milliard demilliards d’annees.

Jean Berstel 11 (January 20, 1999) Universite Marne-la-Vallee

5. Exemple : Steganographie

Le message a transmettre est cache a l’interieur d’untexte beaucoup plus grand.

Exemples historiques : encre invisible, petits points surdes caracteres particuliers, grille masquant des portionsdu texte.

Exemples plus recents : on cache un message dans uneimage graphique en modifiant le dernier bit de la couleurde chaque pixel. Une version plus efficace est le water-marking, qui est une estampille (en principe invisible)ajoutee a une image et qui en certifie l’origine (donc lecopyright).

Jean Berstel 12 (January 20, 1999) Universite Marne-la-Vallee

6. Exemple : Transposition

Une transposition ou anagramme d’un texte

t = a1 · · · anest le texte

aτ (1) · · · aτ (n)

ou τ est une permutation de {1, . . . , n}.

La transposition de permutation τ−1 redonne le texteoriginal.

Une transposition augmente la “diffusion” dans un texte(les digrammes n’en sont plus).

Un texte long est decoupe en blocs transposesseparement.Jean Berstel 13 (January 20, 1999) Universite Marne-la-Vallee

Exemple: Transposition de colonnes

Soit n = pq. On ecrit le texte en p lignes de longueura, puis on lit les colonnes, dans l’ordre donne par lapermutation.

3 2 4 1e n v ah i r ma r n e

donneamenirehavrn

Jean Berstel 14 (January 20, 1999) Universite Marne-la-Vallee

Substitution

Une substitution est une permutation σ de l’alphabet.Une substitution doit augmenter la “confusion” d’untexte. Le texte

m = a1 · · · andonne

c = sigma(a1) · · ·σ(an)

La substitution de permutation σ−1 redonne le texteoriginal.

Exemple :

• Code de Cesarσ(a) = a+ 1 mod 26, IBM→HAL

• rot13 : σ(a) = a+ 13 mod 26

Jean Berstel 15 (January 20, 1999) Universite Marne-la-Vallee

Code de Vigenere

On choisit une cle k = k1 · · · kp. On repete la cle jusqu’aobtenir la longueur du message m = a1 · · ·an. Le mes-sage crypte est:

ci = ki + ai mod 26

ou encorec = k +m mod 26

Le decodage est par soustraction.

Jean Berstel 16 (January 20, 1999) Universite Marne-la-Vallee

Xor simple

C’est un algorithme de cryptage utilise dans de nom-breux logiciels commerciaux, et autorise par la NSApour l’industrie des telephones cellulaires aux Etats-Unis.

La cle est une chaıne de caracteres k et le codage est

m ⊕ k = c

Le decodage estc ⊕ k = m

Ce systeme n’est pas sur.

Jean Berstel 17 (January 20, 1999) Universite Marne-la-Vallee

7. One time pad ou a masque jetable

Donnees :

• le message m a crypter.

• un masque ou pad qui est une chaıne de caracteres ktiree au hasard, et de meme longueur que m

Cryptage : par addition modulo 26 ou par xor:

c = k ⊕ m

Decryptage : le destinataire possede une copie dumasque, et fait l’operation inverse:

m = c ⊕ k

Jean Berstel 18 (January 20, 1999) Universite Marne-la-Vallee

• Si masque est parfaitement aleatoire, le texte crypteest parfaitement aleatoire: il n’y a pas de moyend’attaque.

• Le destinataire doit connaıtre le masque.

• On doit savoir engendrer des sequences aleatoires.

Jean Berstel 19 (January 20, 1999) Universite Marne-la-Vallee

8. Chaınage

Donnee : un cryptosysteme (E,D) par blocs de taille n.Cela peut etre RSA ou DES.

Objectif : envoyer un message m long.

Methode :

• on le decoupe en segments de taille n:

m = m1 · · ·mk

• on crypte chaque segment;

• on chaıne les segments en les faisant interagir, en clairou cryptes, pour augmenter la diffusion.

Jean Berstel 20 (January 20, 1999) Universite Marne-la-Vallee

Quatre modes de chaınage existent:

• ECB (Electronic codebook)

• CBC (Cipher block chaining)

• CFB (Cipher feedback)

• OFB (Output feedback)

Jean Berstel 21 (January 20, 1999) Universite Marne-la-Vallee

ECB (Electronic codebook)

C’est l’absence de chaınage:

On calculeci = E(mi)

et on envoitc = c1 · · · ck

On decrypte par

mi = D(ci)

• Ce chaınage expose a des attaques statistiques, cardeux blocs egaux de la source donnent deux blocschiffres egaux.

• Peut etre vu comme une substitution, l’alphabet etantforme des blocs de taille n.

Jean Berstel 22 (January 20, 1999) Universite Marne-la-Vallee

CBC (Cipher Block Chaining)

On choisit un premier bloc c0.

On crypte par

ci = E(mi ⊕ ci−1)

et on envoit c0 et les ci.

On dechiffre par

mi = ci−1 ⊕ D(ci)

Les erreurs de transmission sur les ci ne se propagentpas.

Jean Berstel 23 (January 20, 1999) Universite Marne-la-Vallee

CFB (Cipher Feedback)

• On prend une taille t < n.On decoupe le message en blocs de taille t

m = m1 · · ·mk

Un registre a decalage a n bits initialises a s0.

• Chiffrage par

pi = E(si−1)t (t bits de gauche)ci = mi ⊕ pisi = (2tsi−1 + ci) mod 2n (decalage et addition)

• Dechiffrage : changer la formule du milieu en

mi = ci ⊕ pi

• NB. Il faut une cle secrete.

Jean Berstel 24 (January 20, 1999) Universite Marne-la-Vallee

OFB (Output Feedback)

Les CFB et OFB sont utilises lorsque l’unite de trans-mission est de taille t (= 1 ou = 8 souvent) est inferieurea la taille d’un bloc crypte (n = 64).

Pour OFB, on a t ≤ n. Le calcul des si est modifie en:

si = (2tsi−1 + pi) mod 2n

Cas frequent: t = n. Dans ce cas, pi = si et

si = E(si−1)

Variante (counter mode) : On prend si = 1 + si−1.

Jean Berstel 25 (January 20, 1999) Universite Marne-la-Vallee