Introduction à la cryptologie - LIG...

75
Introduction à la cryptologie Clément PERNET M1 INFO, UFR-IM 2 AG, Université J. Fourier http://membres-liglab.imag.fr/pernet/M1INFO_Crypto.html

Transcript of Introduction à la cryptologie - LIG...

Introduction à la cryptologie

Clément PERNET

M1 INFO, UFR-IM2AG, Université J. Fourierhttp://membres-liglab.imag.fr/pernet/M1INFO_Crypto.html

Plan du cours

Introduction

Chiffres historiquesTranspositions, substitutions mono-alphabétiquesSubstitutions poly-alphabetiques

Théorie de l’information

Chiffrement par flotGénérateurs pseudo-aléatoiresLinear Feedback Shift Register (LFSR)

Codes correcteurs

Plan du cours

Introduction

Chiffres historiques

Théorie de l’information

Chiffrement par flot

Codes correcteurs

References

Notion of Code

Source DestinationChannelencoding decoding

Change of representation of the information forI efficiency: compressionI security: cryptography, authentication, ...I integrity: error correcting codes

Cryptologie

Cryptographie: l’art d’encoder une information pour la gardersecrète

I Stéganographie: incorporer secrètement uneinformation dans une autre (son existencen’est pas décelable)

I Cryptographie: transforme un message clairen un message chiffré

Cryptanalyse: L’analyse des messages chiffrés pour trouvé lemessage clair

StéganographieL’information n’est pas chiffrée:

Connaissance de l’existence⇔ connaissance de l’information

I Encre invisible (Spline, 1BC)I Tatouage sur le crâne du messager (couvert par les

cheveux)

coder une image sur les 2 bits de poids faible d’une image

Toujours utilisé de nos jours:I 2010: Services des renseignements Russes (images)I Watermarking (JPEG, MP3-MPEG)

StéganographieL’information n’est pas chiffrée:

Connaissance de l’existence⇔ connaissance de l’information

I Encre invisible (Spline, 1BC)I Tatouage sur le crâne du messager (couvert par les

cheveux)

coder une image sur les 2 bits de poids faible d’une image

Toujours utilisé de nos jours:I 2010: Services des renseignements Russes (images)I Watermarking (JPEG, MP3-MPEG)

Cryptographie

L’information est cryptée:

connaissance de l’existence < connaissance de l’information

Alice BobChannel

encoding decoding

Oscar

Algorithmes pour la cryptographie

Propriétés requises:Confusion: Aucun biais statistiques ne doit aider à retrouver le

message clairDiffusion: Un petit changement dans le message clair produit

un changement total dans le message chiffré

Terminologie

Message clair: le message initial M, compréhensible, que Aliceveut transmettre à Bob

Encodage/chiffrement: transformation du message clair en unmessage équivalent non compréhensible.

I fonction de chiffrement: EI qui génère le message chiffré: C = E(M)

Décodage/Déchiffrement: reconstruction du message clair àpartir du chiffré

I fonction de déchiffrement DI D(C) = D(E(M)) = M: E doit être injective, D

surjective

Types de Cryptographie

En pratique, les fonctions E et D sont paramétrées par unepaire de clés KE et KD.

Cryptographie symétrique: I La clé reste secrète des deuxcotés

⇒cryptographie à clé privéeCryptographie asymétrique: KE 6= KD

I la clé d’encodage KE est publiéepubliquement

I clé de décodage KD reste privée⇒cryptographie à clé publique

Deux façon de traiter l’information:chiffrement par flot: flux de bitschiffrement par blocs: découpage en blocs et traitement

spécifique pour chaque bloc

Principes de Kerckhoffs

En 1883: Kerckhoffs fixe les principe de la cryptographiemoderne

1. Decoder sans la clé doit être impossible (at échellehumaine)

2. Trouver la clé à partir du chiffré doit être impossible (àéchelle humaine)

3. La sécurité doit reposer sur le secret de la clé et non lesecret de l’algorithme

Role de la cryptographie

L’acronyme: CAIN

Confidentialité: seuls les personnes autorisées peuventaccéder à l’information

Authentification: certifier l’identité d’une personneIntegrité: l’information a été corrompue

Non repudiation: protéger les utilisateurs les uns des autres:impossible de contester avoir dit quelque chose

Jusque récemment, la cryptographie concernait principalementla confidentialité, et les protocoles symétriques.

I nouvelles tendances⇒besoin d’authentification et de non-répudiation

I explosion combinatoire du nombre de clés⇒motive les clés publiques

Role de la cryptographie

L’acronyme: CAIN

Confidentialité: seuls les personnes autorisées peuventaccéder à l’information

Authentification: certifier l’identité d’une personneIntegrité: l’information a été corrompue

Non repudiation: protéger les utilisateurs les uns des autres:impossible de contester avoir dit quelque chose

Jusque récemment, la cryptographie concernait principalementla confidentialité, et les protocoles symétriques.

I nouvelles tendances⇒besoin d’authentification et de non-répudiation

I explosion combinatoire du nombre de clés⇒motive les clés publiques

Attaques

Passives: en écoutant sur le canal de communication⇒menace la confidentialité

Actives: modification du message⇒menace l’intégrité, l’authenticité

Texte chiffré connu: Oscar connaît seulement C

Texte clair connu: Oscar connaît C et M

Texte clair choisi: Oscar peut choisir M et obtient le chiffré Ccorrespondant

Texte chiffré choisi: Oscar peut choisir C et obtient le texte claircorrespondant M

Attaques

Passives: en écoutant sur le canal de communication⇒menace la confidentialité

Actives: modification du message⇒menace l’intégrité, l’authenticité

Texte chiffré connu: Oscar connaît seulement C

Texte clair connu: Oscar connaît C et M

Texte clair choisi: Oscar peut choisir M et obtient le chiffré Ccorrespondant

Texte chiffré choisi: Oscar peut choisir C et obtient le texte claircorrespondant M

Attaques

Algorithmes pour les attaques:

Attaque par force brute: exploration de de l’espace des clésAttaque par séquences connues: une partie du message clair

est connue (ex. :en-tête d’un e-mail)Forced sequence attack: force Alice à chiffrer une séquenceDifferential analysis attack: petite difference entre deux textes

clairs

Plan du cours

Introduction

Chiffres historiquesTranspositions, substitutions mono-alphabétiquesSubstitutions poly-alphabetiques

Théorie de l’information

Chiffrement par flot

Codes correcteurs

Histoire des codes

Apperçu historique:I Cryptographie antique:

I transposition: Sparte (500 av-J.C.)I substitutions mono-alphabetiques: César (100 av-J.C.)I substitutions poly-alphabetiques: Vigénère (XIXth)

I Cryptanalyse des substitutions mono etpoly-alphabetiques: El Kindi (IXth), Babbage/Kasiski(XIXth)

I Mecanisation de la cryptographie: Enigma (2ème guerremondiale)

I vers un codage parfait: Vernam et théorie de l’information

Outline

Introduction

Chiffres historiquesTranspositions, substitutions mono-alphabétiquesSubstitutions poly-alphabetiques

Théorie de l’information

Chiffrement par flot

Codes correcteurs

TranspositionBâton de Scytale: 500 BC

Principe général des transpositions:I mélange des lettres d’un message suivant une permutationI Bonne sécurité en théorie: pour un message de 35 lettres,

35! = 10333147966386144929666651337523200000000chiffrés possibles)

Inconvénients:I clé complexe (la permutation)I maintient la fréquence des lettres (biais statistique)

Substitutions

Substitutions mono-alphabetiques:

Remplace systématiquement chaque lettre d’un message parune autre. La clé est la permutation de l’alphabet.

Désormais, c’est une permutation de l’alphabet:

a b c d e f g h ... zu f j k a m s w ... t

I Securité: 26! = 1.3× 1088 clés possibles

Le chiffre de CésarCas particulier quand la permutation est un décalage de klettres k lettres dans l’alphabet:

Fonction de chiffrement:

Ek : Z/26Z → Z/26Zn 7→ n + k

Fonction de déchiffrement:

Dk : Z/26Z → Z/26Zn 7→ n− k

ExempleA → 0,B → 1,C → 2, ...

E3(THIS CIPHER IS WEAK) = WKLV FLSKHU LV ZHDN

D17(NV NZCC JVV DLTY SVKKVI) = WE WILL SEE MUCH BETTER

Le chiffre de CésarCas particulier quand la permutation est un décalage de klettres k lettres dans l’alphabet:

Fonction de chiffrement:

Ek : Z/26Z → Z/26Zn 7→ n + k

Fonction de déchiffrement:

Dk : Z/26Z → Z/26Zn 7→ n− k

ExempleA → 0,B → 1,C → 2, ...

E3(THIS CIPHER IS WEAK) = WKLV FLSKHU LV ZHDN

D17(NV NZCC JVV DLTY SVKKVI) = WE WILL SEE MUCH BETTER

Securité du chiffre de César

I Petit espace des clés: 26I Méthode efficace pour retrouver la clé:

C = FTQCGUOWNDAIZRAJVGYBEAHQDFTQXMLKPAS

D0(C) = FTQCGUOWNDAIZRAJVGYBEAHQDFTQXMLKPAS

D1(C) = ESPBFTNVMCZHYQZIUFXADZGPCESPWLKJOZR...

...

D12(C) = THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG...

...

D25(C) = HVSEIWQYPFCKBTCLXIADGCJSFHVSZONMRCU

Amélioration du chiffre de César

Pour a, b ∈ Z/26Z, avec gcd(a, 26) = 1.Fonction d’encodage:

EK : Z/26Z → Z/26Zm 7→ a · m + b

Fonction de décodage:

DK : Z/26Z → Z/26Zn 7→ a−1(c− b)

Exercice

I Encoder le message clair GRENOBLE avec a = 3, b = 8.I Décoder le message chiffré KNUBZ avec a = 5, b = 13.

Cryptanalyse des substitutions mono-alphabetiques

[El Kindi (IXe S)]:

I Supposer un langage cibleI Compter les fréquence de

chaque lettre dans le messagechiffré C

I faire correspondre lesfréquences des lettre aveccelles du langage pour leslettres les plus fréquentes

I fixer les autres occurrences pardes suppositions

Exemple:

WYSKBO KT CZWJB RCBTKAJSJA WC HJ WIJ ZGWIJS CZ MCAJSB RCMDYWJSTRKJBRJ. WYSKBO DSCFKAJA GB KBZLYJBWKGL ZCSMGLKTGWKCB CZ WIJ RCBRJDWCZ WIJ GLOCSKWIM GBA RCMDYWGWKCB NKWI WIJ WYSKBO MGRIKBJ. NKWI WIJWYSKBO WJTW, IJ MGAJ G TKOBKZKRGBW GBA RIGSGRWJSKTWKRGLLX DSCFCRGWKFJRCBWSKHYWKCB WC WIJ AJHGWJ SJOGSAKBO GSWKZKRKGL KBWJLLKOJBRJ: NIJWIJSKW NKLL JFJS HJ DCTTKHLJ WC TGX WIGW G MGRIKBJ KT RCBTRKCYT GBA RGBWIKBV. IJ LGWJS NCSVJA GW WIJ BGWKCBGL DIXTKRGL LGHCSGWCSX, RSJGWKBOCBJ CZ WIJ ZKSTW AJTKOBT ZCS G TWCSJA-DSCOSGM RCMDYWJS, GLWICYOI KWNGT BJFJS GRWYGLLX HYKLW

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Exemple:

Essayer W → T et J → E

tYSKBO KT CZteB RCBTKAeSeA tC He tIe ZGtIeS CZ MCAeSB RCMDYteSTRKeBRe. tYSKBO DSCFKAeA GB KBZLYeBtKGL ZCSMGLKTGtKCB CZ tIe RCBReDtCZ tIe GLOCSKtIM GBA RCMDYtGtKCB NKtI tIe tYSKBO MGRIKBe. NKtI tIetYSKBO teTt, Ie MGAe G TKOBKZKRGBt GBA RIGSGRteSKTtKRGLLX DSCFCRGtKFeRCBtSKHYtKCB tC tIe AeHGte SeOGSAKBO GStKZKRKGL KBteLLKOeBRe: NIetIeSKt NKLL eFeS He DCTTKHLe tC TGX tIGt G MGRIKBe KT RCBTRKCYT GBA RGBtIKBV. Ie LGteS NCSVeA Gt tIe BGtKCBGL DIXTKRGL LGHCSGtCSX, RSeGtKBOCBe CZ tIe ZKSTt AeTKOBT ZCS G TtCSeA-DSCOSGM RCMDYteS, GLtICYOI KtNGT BeFeS GRtYGLLX HYKLt

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Exemple:

Supposer que TIE est THE et déduire I → H

tYSKBO KT CZteB RCBTKAeSeA tC He the ZGtheS CZ MCAeSB RCMDYteSTRKeBRe. tYSKBO DSCFKAeA GB KBZLYeBtKGL ZCSMGLKTGtKCB CZ the RCBReDtCZ the GLOCSKthM GBA RCMDYtGtKCB NKth the tYSKBO MGRhKBe. NKth thetYSKBO teTt, he MGAe G TKOBKZKRGBt GBA RhGSGRteSKTtKRGLLX DSCFCRGtKFeRCBtSKHYtKCB tC the AeHGte SeOGSAKBO GStKZKRKGL KBteLLKOeBRe: NhetheSKt NKLL eFeS He DCTTKHLe tC TGX thGt G MGRhKBe KT RCBTRKCYT GBA RGBthKBV. he LGteS NCSVeA Gt the BGtKCBGL DhXTKRGL LGHCSGtCSX, RSeGtKBOCBe CZ the ZKSTt AeTKOBT ZCS G TtCSeA-DSCOSGM RCMDYteS, GLthCYOh KtNGT BeFeS GRtYGLLX HYKLt

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Exemple:

Lettre seule G: supposer G→ A

tYSKBO KT CZteB RCBTKAeSeA tC He the ZatheS CZ MCAeSB RCMDYteSTRKeBRe. tYSKBO DSCFKAeA aB KBZLYeBtKaL ZCSMaLKTatKCB CZ the RCBReDtCZ the aLOCSKthM aBA RCMDYtatKCB NKth the tYSKBO MaRhKBe. NKth thetYSKBO teTt, he MaAe a TKOBKZKRaBt aBA RhaSaRteSKTtKRaLLX DSCFCRatKFeRCBtSKHYtKCB tC the AeHate SeOaSAKBO aStKZKRKaL KBteLLKOeBRe: NhetheSKt NKLL eFeS He DCTTKHLe tC TaX that a MaRhKBe KT RCBTRKCYT aBA RaBthKBV. he LateS NCSVeA at the BatKCBaL DhXTKRaL LaHCSatCSX, RSeatKBOCBe CZ the ZKSTt AeTKOBT ZCS a TtCSeA-DSCOSaM RCMDYteS, aLthCYOh KtNaT BeFeS aRtYaLLX HYKLt

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Exemple:

Suppositions suivantes, par fréquences: C↔ O, K → I, B→ N,

tYSinO iT oZten RonTiAeSeA to He the ZatheS oZ MoAeSn RoMDYteSTRienRe. tYSinO DSoFiAeA an inZLYentiaL ZoSMaLiTation oZ the RonReDtoZ the aLOoSithM anA RoMDYtation Nith the tYSinO MaRhine. Nith thetYSinO teTt, he MaAe a TiOniZiRant anA RhaSaRteSiTtiRaLLX DSoFoRatiFeRontSiHYtion to the AeHate SeOaSAinO aStiZiRiaL inteLLiOenRe: NhetheSit NiLL eFeS He DoTTiHLe to TaX that a MaRhine iT RonTRioYT anA RanthinV. he LateS NoSVeA at the nationaL DhXTiRaL LaHoSatoSX, RSeatinOone oZ the ZiSTt AeTiOnT ZoS a TtoSeA-DSoOSaM RoMDYteS, aLthoYOh itNaT neFeS aRtYaLLX HYiLt

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Exemple:

On y est presque: essayer: S↔ R, T → S, Y → u,

turinO iT oZten RonTiAereA to He the Zather oZ MoAern RoMDuterTRienRe. turinO DroFiAeA an inZLuentiaL ZorMaLiTation oZ the RonReDtoZ the aLOorithM anA RoMDutation Nith the turinO MaRhine. Nith theturinO teTt, he MaAe a TiOniZiRant anA RharaRteriTtiRaLLX DroFoRatiFeRontriHution to the AeHate reOarAinO artiZiRiaL inteLLiOenRe: Nhetherit NiLL eFer He DoTTiHLe to TaX that a MaRhine iT RonTRiouT anA RanthinV. he Later NorVeA at the nationaL DhXTiRaL LaHoratorX, RreatinOone oZ the ZirTt AeTiOnT Zor a TtoreA-DroOraM RoMDuter, aLthouOh itNaT neFer aRtuaLLX HuiLt

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Exemple:

On y est presque: R↔ c, F → v, O→ g, T → s,Z → f ,

turing is often consiAereA to He the father of MoAern coMDuterscience. turing DroviAeA an infLuentiaL forMaLisation of the conceDtof the aLgorithM anA coMDutation Nith the turing Machine. Nith theturing test, he MaAe a significant anA characteristicaLLX DrovocativecontriHution to the AeHate regarAing artificiaL inteLLigence: Nhetherit NiLL ever He DossiHLe to saX that a Machine is conscious anA canthinV. he Later NorVeA at the nationaL DhXsicaL LaHoratorX, creatingone of the first Aesigns for a storeA-DrograM coMDuter, aLthough itNas never actuaLLX HuiLt

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Exemple:

Et enfin: A→ d, D→ p, H → b, X → y, W → w, V → k,

turing is often considered to be the father of Modern coMputerscience. turing provided an infLuentiaL forMaLisation of the conceptof the aLgorithM and coMputation with the turing Machine. with theturing test, he Made a significant and characteristicaLLy provocativecontribution to the debate regarding artificiaL inteLLigence: whetherit wiLL ever be possibLe to say that a Machine is conscious and canthink. he Later worked at the nationaL physicaL Laboratory, creatingone of the first designs for a stored-prograM coMputer, aLthough itwas never actuaLLy buiLt

I Occurrences:W J K G C B S I R L T A O Y Z M D H N F X V54 49 45 41 35 35 32 24 24 20 19 14 13 13 12 10 9 7 6 5 5 2

I Lettres les plus fréquentes en anglais: ETAOIN SHRDLU

Outline

Introduction

Chiffres historiquesTranspositions, substitutions mono-alphabétiquesSubstitutions poly-alphabetiques

Théorie de l’information

Chiffrement par flot

Codes correcteurs

Le chiffre de Vigénère

Clair C R Y P T O I S C O O LClé S E C R E T S E C R E TDécalage 18 4 2 17 4 19 18 4 2 17 4 19Code U V A G Y H A W E F S E

Le chiffre de Vigénère cipher: point de vue algébrique

Clé K de taille m.

Encodage

Ci = Mi + K(i mod m) mod 26

Décodage

Mi = Ci − K(i mod m) mod 26

Cryptanalyse

1. Trouver la longueur de la clé2. Casser la clé par analyse fréquentielle

Le chiffre de Vigénère cipher: point de vue algébrique

Clé K de taille m.

Encodage

Ci = Mi + K(i mod m) mod 26

Décodage

Mi = Ci − K(i mod m) mod 26

Cryptanalyse

1. Trouver la longueur de la clé2. Casser la clé par analyse fréquentielle

Longueur m de la clé: Babbage 1854 et Kasiski 1863

Idée: si répétition d’une séquence C avec période δ

I Soit cela correspond au même texte clair, encodé par lamême partie de clé

I Ou c’est une coïncidence (moins probable)

⇒la distance δ est donc probablement un multiple de m

KQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPSNCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZAYGFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFPGUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYLSKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJRGPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVLWNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFCMPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFTWGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEEDCLDHWTVBUVGFBIJG

Possible values for mSequence Distance 2 3 5 19WUU 95

√ √

EEK 200√ √

WXIZAY 190√ √ √

NUOCZGM 80√ √

DOEOY 45√ √

GMU 90√ √ √

KQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPSNCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZAYGFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFPGUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYLSKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJRGPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVLWNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFCMPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFTWGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEEDCLDHWTVBUVGFBIJG

Possible values for mSequence Distance 2 3 5 19WUU 95

√ √

EEK 200√ √

WXIZAY 190√ √ √

NUOCZGM 80√ √

DOEOY 45√ √

GMU 90√ √ √

KQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPSNCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZAYGFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFPGUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYLSKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJRGPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVLWNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFCMPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFTWGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEEDCLDHWTVBUVGFBIJG

Possible values for mSequence Distance 2 3 5 19WUU 95

√ √

EEK 200√ √

WXIZAY 190√ √ √

NUOCZGM 80√ √

DOEOY 45√ √

GMU 90√ √ √

KQOWEFVJPUJUUNUKGLMEKJINMWUXFQMKJBGWRLFNFGHUDWUUMBSVLPSNCMUEKQCTESWREEKOYSSIWCTUAXYOTAPXPLWPNTCGOJBGFQHTDWXIZAYGFFNSXCSEYNCTSSPNTUJNYTGGWZGRWUUNEJUUQEAPYMEKQHUIDUXFPGUYTSMTFFSHNUOCZGMRUWEYTRGKMEEDCTVRECFBDJQCUSWVBPNLGOYLSKMTEFVJJTWWMFMWPNMEMTMHRSPXFSSKFFSTNUOCZGMDOEOYEEKCPJRGPMURSKHFRSEIUEVGOYCWXIZAYGOSAANYDOEOYJLWUNHAMEBFELXYVLWNOJNSIOFRWUCCESWKVIDGMUCGOCRUWGNMAAFFVNSIUDEKQHCEUCPFCMPVSUDGAVEMNYMAMVLFMAOYFNTQCUAFVFJNXKLNEIWCWODCCULWRIFTWGMUSWOVMATNYBUHTCOCWFYTNMGYTQMKBBNLGFBTWOJFTWGNTEJKNEEDCLDHWTVBUVGFBIJG

Possible values for mSequence Distance 2 3 5 19WUU 95

√ √

EEK 200√ √

WXIZAY 190√ √ √

NUOCZGM 80√ √

DOEOY 45√ √

GMU 90√ √ √

Longueur m de la clé: Friedman

Soit nA le nombre d’occurrences de A dans le texte de taille nX,Y deux lettres tirées au hasard.

P(X = A,Y = A) =

(nA2

)(n2

) =nA(nA−1)

2n(n−1)

2

=nA(nA − 1)n(n− 1)

Indice de coïncidenceProbabilité que deux lettres tirées au hasard soient égales

IC =

Z∑λ=A

nλ(nλ − 1)n(n− 1)

=

Z∑λ=A

(fλ +

fλ − 1n− 1

)IC→

∑Zλ=A f 2

λ

⇒caractérisé par les fréquences (donc par le langage).

Longueur m de la clé: Friedman

Soit nA le nombre d’occurrences de A dans le texte de taille nX,Y deux lettres tirées au hasard.

P(X = A,Y = A) =

(nA2

)(n2

) =nA(nA−1)

2n(n−1)

2

=nA(nA − 1)n(n− 1)

Indice de coïncidenceProbabilité que deux lettres tirées au hasard soient égales

IC =

Z∑λ=A

nλ(nλ − 1)n(n− 1)

=

Z∑λ=A

(fλ +

fλ − 1n− 1

)IC→

∑Zλ=A f 2

λ

⇒caractérisé par les fréquences (donc par le langage).

Indice de coïncidence

Allemand Anglais Français Aléa unifIC(g)=0,07187 IC(e)=0,06577 IC(f)=0,07405 IC(a)=0,03846

Propriété

I IC est invariant par substitution mono-alphabetiqueI Si v est chiffré par Vigénère

IC(v) ≈ 1m

IC(f ) + (1− 1m)IC(a)

⇒m ≈ IC(f )−IC(a)IC(v)−IC(a)

Indice de coïncidence

Allemand Anglais Français Aléa unifIC(g)=0,07187 IC(e)=0,06577 IC(f)=0,07405 IC(a)=0,03846

Propriété

I IC est invariant par substitution mono-alphabetiqueI Si v est chiffré par Vigénère

IC(v) ≈ 1m

IC(f ) + (1− 1m)IC(a)

⇒m ≈ IC(f )−IC(a)IC(v)−IC(a)

Calcul de la clé: le test de FriedmanOn connaît m ⇒on forme la matrice de dimension m× n/m

A =

c0 cm c2m . . .c1 cm+1 c2m+1 . . ....

......

cm−1 cm−1+m cm−1+2m . . .

⇒Chaque ligne Li est générée par la même lettre de la clé: Ki

Coïncidence jointeProbabilité que les alphabets de X et Y correspondent:MIC(X,Y) =

∑Zλ=A P(X = λ)P(Y = λ)

Pour tout k = 0 . . . 25:I Ajouter k à L1 (noté Lk

1)I Calculer l’indice de coïncidence jointe Mi,k = IC(Lk

1,Li)

I Si le max de M sur la ligne i est en colonne ki, alorsKi − K0 = ki

⇒on a tous les coefficients des clés K1, ...,Km−1 sauf K0.⇒analyse fréquentielle classique sur 26 possibilités.

Vers un chiffre parfait

I A usage unique: Vernam (1917)I C = M ⊕ K (XOR bit à bit)I téléphone rouge

I Vigénère avec m = n (taille de clé = taille du message)I confusion totale: message aaaaaaa génère une séquence

aléatoire uniformeI Cryptanalyse seulement possible si

I phrase clé faibleI Re-utilisation de la phrase clé:

(M1 ⊕ K)⊕ (M2 ⊕ K) = M1 ⊕M2

I Attaque à clair connu: (M ⊕ K)⊕M) = K

I Le seul code prouvé sûr mathématiquement à ce jour (c.f.entropie)

Plan du cours

Introduction

Chiffres historiques

Théorie de l’information

Chiffrement par flot

Codes correcteurs

Plan du cours

Introduction

Chiffres historiques

Théorie de l’information

Chiffrement par flotGénérateurs pseudo-aléatoiresLinear Feedback Shift Register (LFSR)

Codes correcteurs

Chiffrement symétrique par flot

Traiter le source, la clé et le chiffré comme des flux decaractères

M = < m0,m1,m2, · · · >K = < k0, k1, k2, · · · >C = < c0, c1, c2, · · · >

avec ci = E(mi, ki)

ki = K constant: substitution mono-alphabétique (César, ...)⇒analyse fréquentielle

ki = ki+m périodique: substitution poly-alphabétique⇒test de Friedman + analyse fréquentielle

ki aléatoire unif.: Chiffre parfait (Vernam)

Chiffrement symétrique par flot

Générer la clé aléatoire de façon algorithmique:Générateur Pseudo-Aléatoire

I algorithme connu de tous (cf Kerchoffs)I chaque séquence est paramétrée par une petite clé

secrète, la graine

pseudo−aleatoire

Generateur

Chiffrement EM

S

C

K

I En général: caractères dans Z/nZ ⇒E(m, k) = m + kmod n

I Souvent: Z/2Z et E(m, k) = m⊕ k (XOR)

Outline

Introduction

Chiffres historiques

Théorie de l’information

Chiffrement par flotGénérateurs pseudo-aléatoiresLinear Feedback Shift Register (LFSR)

Codes correcteurs

Générateurs pseudo-aléatoires (PRNG)

DéfinitionPRNG Un algorithme qui produit une suite de nombre à partird’un état:

f (Sn) = (Xn, Sn+1)

où Sn est l’état à l’étape n et (X0,X1, . . . ) est la suite générée.

Exemple

I Congruentiel linearI /dev/random dans LinuxI LFSRI RC4I Xn+1 = EK(Xn) pour E une fonction de chiffrementI Blum Blum Shub

Générateur congruentiel linéaire

Xn+1 = a · Xn + c mod m

I Période au plus mI Propriétés statistiques dépendant fortement du choix des

paramètres.

I RANDU: a = 65539, c = 0,m = 231.

Mi = (X3i,X3(i+1),X3(i+2))

Cryptanalyse

Montrer comment casser avecbonne probabilité ungénérateur congruentiellinéaire en connaissant troistermes consécutifs et m.Application: m = 101,(X0,X1,X2) = (17, 42, 23).

Générateur congruentiel linéaire

Xn+1 = a · Xn + c mod m

I Période au plus mI Propriétés statistiques dépendant fortement du choix des

paramètres.I RANDU: a = 65539, c = 0,m = 231.

Mi = (X3i,X3(i+1),X3(i+2))

Cryptanalyse

Montrer comment casser avecbonne probabilité ungénérateur congruentiellinéaire en connaissant troistermes consécutifs et m.Application: m = 101,(X0,X1,X2) = (17, 42, 23).

/dev/random

I Pool d’entropie alimenté par les évènements physiques(disque dur, réseau, clavier, souris, . . . ).

I Fonction de hachage pour générer la sortie.I Estimation «prudente» de l’entropie de l’état.

I Et sur un serveur ?

/dev/random

I Pool d’entropie alimenté par les évènements physiques(disque dur, réseau, clavier, souris, . . . ).

I Fonction de hachage pour générer la sortie.I Estimation «prudente» de l’entropie de l’état.I Et sur un serveur ?

Blum Blum Shub

Basé sur la sécurité de RSA:

N = pq

Sn+1 = S2n mod N

Xn = Sn mod 2

où p et q sont des premiers congrus à 3 modulo 4.

Outline

Introduction

Chiffres historiques

Théorie de l’information

Chiffrement par flotGénérateurs pseudo-aléatoiresLinear Feedback Shift Register (LFSR)

Codes correcteurs

Suites récurrentes linéaires

Définitions

I Une suite récurrente linéaire est une suite (a0, a1, . . . , )telle que

∃d > 0, ∀i ≥ 0 ai+d =

d−1∑j=0

λiai+j

I Polynôme générateur: P(X) = Xd −∑d−1

i=0 λiXi

I Polynôme générateur minimal: de plus petit degréI complexité linéaire d’une séquence : le degré du

générateur minimal

Une Suite récurrente linéaire de complexité d est donnée parI un générateur P de degré dI un état initial (u0, u1, . . . , ud−1)

LFSR : représentation de Fibonacci

P = X9 − 3X6 − 4X3 − 9

3 4

2 1 1 0 85 0 8 3

Output

9

I Un registre de n variables.I A chaque pas de temps:

I La valeur de droite est mise en OutputI Chaque valeur est décalée vers la droiteI La valeur de gauche est calculée par une fonction linéaire

des autres valeurs

LFSR : représentation de Galois

2 1 80 3

Output

3 4

Xn = Xn−5 + 3Xn−4 + 4Xn−2

Représentation alternative: construction à la chaine ducoefficient Xn.

I les sommes ont lieu lors de chaque décalageI Plus efficace: la profondeur du circuit vaut 1

Propriétés de la représentation de Galois

Polynôme de rétro-action

Soit s0, s1, . . . , sn−1 les valeurs des n variables dans le registre.On définit le polynôme d’état:

U = sn−1Xn−1 + · · ·+ s1X + s0,

et le polynôme de rétroaction

P = Xn − an−1Xn−1 − · · · − a1X − a0.

Alos le polynôme d’état U’ à l’étape suivante vérifie

U′ = XU mod P

Periode d’un LFSR

I La valeur prise par le registre est périodiqueI La période maximale est pn − 1

Théorème(s0, s1, . . . ) est périodique ssi elle est générée par un LFSR

Exercice

1. Calculer toutes suites binaires possibles produites par unLFSR dont le polynôme de retroaction estP = X4 + X2 + X + 1. Quelles sont leur périodes ?

2. Même question avec P = X4 + X3 + 1.

Période d’un LFSR

DefinitionUn polynôme P(X) de degré L > 0 défini sur F2 est primitif s’ilest irréductible et

min{

i > 0 | Xi = 1 mod P}= 2L − 1

Polynôme primitif: Exercices

ExerciceMontrer qu’un polynôme primitif de degré > 1 sur F2:

1. a toujours un coefficient constant non nul (a0 6= 0),2. a toujours un nombre impair de monomes,3. a au moins un monome de degré impair.

La réciproque est-elle vraie?

ExerciceSur F2:

1. Est-ce que X2 + X + 1 est primitif?2. Montrer que X6 + X3 + 1 n’est pas primitif.3. Montrer que X5 + X3 + X2 + X + 1 est primitif. Qu’en est-il

des autres polynômes de degré 5?

LFSR de période maximale

ThéorèmeUn LFSR à L registres a une période 2L − 1 (la périodemaximale) ssi son polynôme de rétroaction est primitif et quel’état initial est non-nul.

ExerciceLe prouver à partir de la représentation de Galois.

ThéorèmeSi (ui) et (vi) sont générées par deux LFSR de période T1 et T2,alors la période de la suite wi = ui + vi est inférieure àppcm(T1,T2). Si de plus pgcd(T1,T1) = 1 alors il y a égalité.

LFSR de période maximale

ThéorèmeUn LFSR à L registres a une période 2L − 1 (la périodemaximale) ssi son polynôme de rétroaction est primitif et quel’état initial est non-nul.

ExerciceLe prouver à partir de la représentation de Galois.

ThéorèmeSi (ui) et (vi) sont générées par deux LFSR de période T1 et T2,alors la période de la suite wi = ui + vi est inférieure àppcm(T1,T2). Si de plus pgcd(T1,T1) = 1 alors il y a égalité.

Exemple: générateur E0 (bluetooth)

A(X) = X25 + X20 + X12 + X8 + 1B(X) = X31 + X24 + X16 + X12 + 1C(X) = X33 + X28 + X24 + X4 + 1D(X) = X39 + X36 + X28 + X4 + 1

La sortie est f (LFSRA(X),LFSRB(X),LFSRC(X),LFSRD(X)) pourune certaine fonction f .

I Registre de 25 + 31 + 33 + 39 = 128 bitsI Periode de lcm(225 − 1, 231 − 1, 233 − 1, 239 − 1) ≈ 2125

LFSR

Cryptanalyse des LFSR:Recherche du générateur minimal et de la graine:

I résolution de système linéaire: O(d3)

I Berlekamp-Massey [1969] O(d2)

Vers de meilleurs générateurs :I introduire de la non-linearitéI introduire de l’entropie (/dev/(u)random)I utiliser des algorithmes de chiffrement xn+1 = E(xn) ⇒la

fiabilité dépend de la sécurité du crypto-système!

Plan du cours

Introduction

Chiffres historiques

Théorie de l’information

Chiffrement par flot

Codes correcteurs