universitÉ cheikh anta diop · remerciements les remerciements! ce texte auquel je pensais pendant...

158
T H E S E UNIVERSITÉ CHEIKH ANTA DIOP FACULTE DES SCIENCES ET TECHNIQUES Département de Mathématiques et Informatique Thèse de Doctorat Unique en Mathématiques pour obtenir le grade de docteur délivré par l’École Doctorale de Mathématiques et Informatique Mention: Mathématiques et Modélisation Option: Codage, Cryptologie, Algèbre et Applications Année : 2015-2016 N° d’ordre : Protocoles Post-Quantiques et Attaques Critiques présentée et soutenue publiquement par Ousmane NDIAYE le 06 Août 2016 Composition du jury Président: Mamadou SANGHARE Professeur, UCAD Rapporteurs: Thierry BERGER Professeur, Univ. de Limoges(France) Pierre LOIDREAU HDR, Maître de Conférences Univ. de Rennes 1(France) Examinateurs: Oumar DIANKHA Professeur, UCAD Djiby SOW Professeur, UCAD Ayoub OTMANI Professeur, Univ. Rouen(France) Directeur: Cheikh Thiécoumba GUEYE Professeur, UCAD Année académique 2015-2016

Upload: hoangquynh

Post on 16-Sep-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

T

H

E

S

E

UNIVERSITÉ CHEIKH ANTA DIOP

FACULTE DES SCIENCES ET TECHNIQUES

Département de Mathématiques et Informatique

Thèse de Doctorat Unique en Mathématiquespour obtenir le grade de docteur délivré par

l’École Doctorale de Mathématiques et Informatique

Mention: Mathématiques et Modélisation

Option: Codage, Cryptologie, Algèbre et Applications

Année : 2015-2016 N° d’ordre :

Protocoles Post-Quantiques et Attaques Critiques

présentée et soutenue publiquement par Ousmane NDIAYE

le 06 Août 2016Composition du juryPrésident:

Mamadou SANGHARE Professeur, UCAD

Rapporteurs:

Thierry BERGER Professeur, Univ. de Limoges(France)

Pierre LOIDREAU HDR, Maître de Conférences Univ. de Rennes 1(France)

Examinateurs:

Oumar DIANKHA Professeur, UCAD

Djiby SOW Professeur, UCAD

Ayoub OTMANI Professeur, Univ. Rouen(France)

Directeur:

Cheikh Thiécoumba GUEYE Professeur, UCAD

Année académique 2015-2016

Page 2: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Remerciements

Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses

car étant le plus difficile à rédiger. Les images commencent à me venir à l’esprit: con-

férences, écoles d’été, séminaires,.... J’ai la chance d’être entouré d’un beau monde. Cer-

tainement il y aurait des oublis, je m’en excuse!!!

• Bref, mes plus vifs remerciements vont en premier lieu au Professeur Mamadou

Sangharé pour l’honneur qu’il m’a fait en acceptant de présider mon jury de thèse.

• Je tiens à remercier très sincèrement mon directeur de thèse le Professeur Cheikh

Thiécoumba Gueye, en lui exprimant ma profonde gratitude pour l’excellente for-

mation que j’ai reçue auprès de lui sur tous les plans (didactique, recherche, hu-

main,..). Merci infiniment "Monsieur" de m’avoir montré le chemin de par vos idées

débordantes, votre rigueur et ténacité dans le travail.

• J’exprime ma profonde gratitude aux Professeurs Thierry Berger, Pierre Loidreau

et Ayoub Otmani qui ont accepté d’être rapporteurs de cette thèse et examinateurs

dans ce jury. Merci pour ces remarques pertinentes qui du point de vue fond et

forme ont contribué à l’ amélioration de ce document.

• Je tiens à remercier le Professeur Djiby Sow d’avoir accepté d’être dans le jury en

qualité d’examinateur. Je suis marqué par votre ouverture scientifique très large

et surtout par votre générosité sans limite. Merci de m’avoir recommandé au pôle

PRMAIS et pour toutes les autres recommandations d’ailleurs!

• Je tiens à remercier le Professeur Oumar Diankha d’avoir accepté d’être dans le

jury en qualité d’examinateur. Merci d’avoir accueilli parfois, un petit curieux que

je suis, dans votre équipe de recherche. Merci d’avoir confiance en moi et de me

confier la charge de cours en Master TDSI!

• Mes sincères remerciements sans limites vont aussi à l’endroit du Docteur Pierre-

Louis Cayrel pour m’avoir encadré, guidé et initié dans beaucoup de concepts en

cryptographie et aussi de m’avoir mis en relation avec d’autres co-auteurs pour en-

richir mon travail. Merci de m’avoir permis de spammer votre boite emails avec

mes indénombrables questions:-).

• J’en profite pour remercier mes autres co-auteurs sans lesquels cette thèse n’aurait

pas vu le jour : Alassane Diouf, Richard Lindner, Mohammed Meziani, Robert Niebuhr,

Quentin Santos et Rosemberg Silva.

i

Page 3: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

• Mes très Vifs remerciements à mes lecteurs indépendants: Cherif Tidiane Aïdara,

Jean Klamti Bélo sans qui ce documents n’aurait certainement jamais été finalisée.

• Je remercie également le Pole of Research in Mathematics and their Applications

in Information Security (PRMAIS) financé par la fondation Simons, dont je fais

parti, de m’avoir permis de participer à trois écoles d’été (déjà) à travers l’afrique

et de la subvention également. J’en profite pour remercier tous les membres très

sympathiques: En commençant par nos anciens(on est en Afrique!) les Docteurs

Tony ezome, Abdoul Aziz Ciss, Emmanuel Fouotsa, Patrick Rabarison, en suite les

thésards Hortense Boudjou, Nafissatou Diarra, Thierry Mefenza Nountu, Aminatou

Pecha Epse Nsangou, Herve Kalachi Talé.

• Je remercie vivement le Centre d’excellence africain en Mathématiques, Informa-

tique et Technologies de l’Information et de la Communication (CEA-MITIC) de

m’avoir payer mon billet d’avion Dakar-Alger-Dakar pour participer à la conférence

ICCC’2015. J’espère qu’il le reitère pour un déplacement vers d’autres horizons :-)!

• Je tiens à exprimer ma profonde gratitude:

– A tous les membres du département de Mathématiques et Informatique ainsi

qu’aux membres du Laboratoire d’Algèbre de Cryptographie de Géométrie Al-

gébrique et Applications (LACGAA) pour la sympathie qu’ils m’ont témoignée

durant ces années de thèse.

– Aux autres membres plus que sympathiques de notre équipe de recherche

Equipe de Recherche en Codes et Implémentations Sécurisées post-quantique

(ERCISpq) dirigée M. Cheikh Thiécoumba Gueye: Anta Niane Gueye, Modou

Mboup, Adiawa Haikréo, Mbouye Khady Diagne, Jean Klamti Belo, Brice Odilon

Boidje, Gilbert Dione, Cherif Fall, Yakhya Diop. A l’équipe de la présidence

dirigée par M. Babacar Alassane Ndaw: Omar Ndoye, Amapenda Gueye, Ababacar

Aziz Kane ...

– A Mes ancien du labo: Chérif DEME, Mouhamadou Lamine DIOUF, Abdol Aziz

CISS, Demba Sow , G. CAMARA, Régis Babindamana,Demba Sow , Youssef, EL.

Modou MBOUP, Ahmed Khalifa, Amadou TALL. Merci de nous avoir éclairé le

chemin!

– mes compagnons de tous les jours à la fac: Mouhamed Traoré(Trasasse), Alas-

sane Diouf(alias Rodriguez), Albert Diompy (V.I), Alfousseyni Ba, André Mi-

alébama, André Souley Diabang. Nos déjeunés au pavillion C: de "bons" sou-

venirs!

ii

Page 4: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

– A mes compagnons dans les salles, je veux nommer mes étudiants: TDSI,

ESSA. Merci d’avoir pu supporter toutes mes explications kilométriques et théoriques,

mes débordments et les pauses oubliées.

– Au personnel administratif du département: M. Famara Massaly, Mme Mbaye,

Mme Ba et gnima la nouvelle recrue pour leur gentillesse et leur disponibilité.

– A mes amis: Tidiane(Zin abdala Kaas ibn barada :-)), Déthié, Lat, Mbengue(alias

lopez), Fallou (Luc Nicolaï),Diégane (alias ngor), Cheikh K. Ka, Fayelams, tous

mes promotionnaires du lycée....

• Je ne saurai terminer sans remercier très chaleureusement ma famille Papa, Ma-

man, mes frères et cousins: Les Paa Djibys, Madické, Lamina(Steve G), Paa Alsane

(Naruto), Makhfous, Mame Lissa, Fatou, Mama Awa, Ma grand Mère, Mes oncles et

tantes...

Merci Maman de m’avoir compris et soutenu à tout instant

Merci Paa de m’avoir donné goût à la recherche, aux mathématiques même si par-

fois je me perds dans tes formules, nous résoudrons d’autres problèmes ensemble!

Mention spéciale à Mame Diarra pour tes délicieux repas... que je n’arrive toujours

pas à bien conserver au frigo :-)

iii

Page 5: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

DEDICACES

“ To God,

To Daddy,

To Mommy,

To my Grandmother ”

iv

Page 6: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Table des matières

1 Introduction 2

1.1 Cryptographie: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.1 Les Services de la Cryptographie . . . . . . . . . . . . . . . . . . . . . . 3

1.1.2 La génération de nombres aléatoires . . . . . . . . . . . . . . . . . . . 4

1.1.3 Le Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.1.4 Le Hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.5 Hachage et Signature caméléon . . . . . . . . . . . . . . . . . . . . . . 5

1.1.6 Cryptographie Post-Quantique . . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Organisation du mémoire et Contributions . . . . . . . . . . . . . . . . . . . . 6

1.3 Publications personnelles et soumissions . . . . . . . . . . . . . . . . . . . . . 9

I Préliminaires 10

2 Rappels Mathématiques (Codes, Réseaux) 11

2.1 Généralités sur la théorie des codes . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1.1 Définition d’un code linéaire . . . . . . . . . . . . . . . . . . . . . . . . 13

2.1.2 Quelques Familles de Codes . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Groupes abéliens libres de type fini . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3 Généralités sur la théorie des réseaux . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.1 Définition d’un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.2 Base d’un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.3 Réseaux équivalents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.4 Invariants d’un Réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.5 Dual d’un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4 Des Codes aux Réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3 Sécurité Prouvée et Cryptographie Post-Quantique 23

3.1 Généralités sur la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.1 Machine de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.2 Fonctions de base en cryptographie . . . . . . . . . . . . . . . . . . . . 25

v

Page 7: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

TABLE DES MATIÈRES

3.2 Notions de sécurité en cryptographie . . . . . . . . . . . . . . . . . . . . . . . 29

3.2.1 Modèles de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2.2 Quelques problèmes difficiles . . . . . . . . . . . . . . . . . . . . . . . 30

3.2.3 Sécurité Prouvée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3 Quelques Primitives Cryptographiques Post-Quantiques . . . . . . . . . . . . 37

3.3.1 Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3.2 Fonctions de Hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.3.3 Chiffrement par flot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

II Résultats 49

4 Les attaques critiques en Cryptographie basée sur les Codes 50

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.2 Les attaques critiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2.2 Résumé des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.3 Contre-mesures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5 Implémentations Efficaces de Fonctions de Hachage et chiffrements par Flux basés

sur les Codes 71

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.2 Quelques bases cryptographiques . . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.1 Primitives cryptographiques . . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 chiffrements par flux basés sur les PRNG . . . . . . . . . . . . . . . . . 75

5.3 Fonction de Hachage basée sur les codes . . . . . . . . . . . . . . . . . . . . . 75

5.3.1 Choix des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.3.2 FSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.3.3 SFSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.3.4 RFSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4 Les Générateurs de Nombres Pseudo-aléatoire(PRNG) basés sur les codes . 79

5.4.1 Schéma général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.4.2 SYND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.4.3 2SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.4.4 XSYND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.5 Les Techniques d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.5.1 Nettoiement du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.5.2 Registres classiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.5.3 Registres XMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

vi

Page 8: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

TABLE DES MATIÈRES

5.5.4 Représentation des données . . . . . . . . . . . . . . . . . . . . . . . . 82

5.6 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.6.1 Bancs d’essai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.6.2 Discussions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

6 Un chiffrement par flux et prouvé sûr: SBS 87

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.2 Les Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6.3 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

6.4 Le chiffrement par flux SBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6.5 Securité de SBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.11 Les meilleures attaques connues contre SBS . . . . . . . . . . . . . . . . . . . 99

6.13 Résultats Experimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.14 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

7 Un PRNG basé sur des Problèmes de la Théorie des Réseaux 106

7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7.1.1 Acronymes et Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7.1.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7.1.3 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7.1.4 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.2 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3 Un PRNG basé sur ISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3.1 Construction du Bloc Central . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3.2 Construction Itérative . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3.3 Principe de Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.4 Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.6 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7.7 L’attaque par paradoxe d’anniversaire généralisé . . . . . . . . . . . . . . . . 116

7.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

8 A LPN-Based Chameleon Hash Function 117

8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8.2 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

8.2.1 The Learning from Parity with Noise Problem . . . . . . . . . . . . . . 121

8.2.2 LPN-based cryptography . . . . . . . . . . . . . . . . . . . . . . . . . . 122

8.3 LPN-based chameleon hash-function . . . . . . . . . . . . . . . . . . . . . . . 122

8.3.1 Chameleon hash function . . . . . . . . . . . . . . . . . . . . . . . . . . 122

vii

Page 9: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

TABLE DES MATIÈRES

8.3.2 Our chameleon hash: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

8.4 The security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

8.6.1 Chameleon signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

8.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

Conclusion 131

Bibliographie 145

viii

Page 10: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Liste des Figures

3.1 Découpage de message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.2 Padding de message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3.3 schéma de Merkle-Damgård . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.4 Construction Éponge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

3.5 Construction de SYND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.1 Résultat des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

5.1 Schéma de chiffrement par flux . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.2 Fonction de mise à jour de FSB . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.3 Fonction de mise à jour de SFSB . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.4 Fonction de mise à jour de RFSB . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.5 schéma des PRNGs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.6 schéma de SYND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.7 Schéma de 2SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.8 schéma XSYND: style FSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.9 Performance des fonctions de hachage . . . . . . . . . . . . . . . . . . . . . . 84

5.10 Performance des PNRGs et Chiffrement par Flux . . . . . . . . . . . . . . . . 84

6.1 Générateur de SBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

6.2 structure des transformations utilisées dans SBS . . . . . . . . . . . . . . . . 94

6.3 Illustration de G1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.4 Illustration de G2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.5 GBA pour k = 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

7.1 PRNG basé sur ISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

ix

Page 11: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Liste des Tableaux

4.1 Comparaison des conversions et de la redondance . . . . . . . . . . . . . . . 67

6.1 Paramètres et performance de SBS. . . . . . . . . . . . . . . . . . . . . . . . . . . 104

6.2 performance annoncée pour SYND [64, 47]. . . . . . . . . . . . . . . . . . . . . . 104

6.3 performance annoncée 2SC [101, 47]. . . . . . . . . . . . . . . . . . . . . . . . . . 105

7.1 Les paramères de SWIFFT[95] (n, q,m) = (64,257,1024). . . . . . . . . . . . . 112

7.2 Peformance comparée avec d’autre Stream Cipher . . . . . . . . . . . . . . . 115

1

Page 12: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 1

Introduction

“ Où que vous soyez, quelqu’un vous

surveille. Ce quelqu’un vous le

connaissez peut-être, mais lui vous

connaît à coups surs. ”

anonyme 1984

Sommaire

1.1 Cryptographie: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.1.1 Les Services de la Cryptographie . . . . . . . . . . . . . . . . . . . . . 3

1.1.2 La génération de nombres aléatoires . . . . . . . . . . . . . . . . . . 4

1.1.3 Le Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.1.4 Le Hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.1.5 Hachage et Signature caméléon . . . . . . . . . . . . . . . . . . . . . 5

1.1.6 Cryptographie Post-Quantique . . . . . . . . . . . . . . . . . . . . . . 6

1.2 Organisation du mémoire et Contributions . . . . . . . . . . . . . . . . . 6

1.3 Publications personnelles et soumissions . . . . . . . . . . . . . . . . . . 9

2

Page 13: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 1. INTRODUCTION

1.1 Cryptographie:

1.1.1 Les Services de la Cryptographie

La cryptographie est une des disciplines de la cryptologie s’attachant à protéger des mes-

sages en s’aidant souvent de secrets ou clés. En effet, elle offre un certain nombre de

services pour répondre aux exigences de la sécurité des transmissions: confidentialité,

authenticité , intégrité et la non-répudiation. Ces services de protection de l’information

utilisent souvent des algorithmes mathématiques pour cacher le sens des messages en

se reposant sur le principe de Kerckhoffs [87]. Ce principe exprime que la sécurité d’un

cryptosystème ne doit reposer que sur le secret de la clé. Autrement dit, tous les autres

paramètres doivent être supposés publiquement connus.

La cryptographie moderne est composée de deux familles que sont la cryptographie symétrique

et la cryptographie asymétrique.

La cryptographie symétrique consiste à échanger des données chiffrées à partir d’un se-

cret (appelé clé) connu uniquement par les parties concernées, le chiffrement comme le

déchiffrement nécessitant la même clé. Pour cela, il paraît nécessaire d’avoir un protocole

d’échange de clés sûr et efficace. De l’antiquité jusque dans les années 1970, la principale

préoccupation était la confidentialité; ainsi tous les systèmes de cryptographie étaient

symétriques et il n’existait pas de méthode sûre pour échanger les clés secrètes. Le DES,

l’AES, l’IDEA en sont les exemples les plus célèbres. Ces cryptosystèmes présentent en

général un avantage majeur qui se trouve être leur robustesse et leur rapidité mais mal-

heureusement ils ne permettent pas de garantir un partage de clé sûr et ne permet pas

d’assurer certains services de la cryptographie moderne tels que la non-répudiation.

Ce n’est qu’en 1976 que White Diffie et Martin Hellmann de l’université de Standford,

dans leur papier "New Direction In Cryptography", ont donné une solution au problème

de l’échange des clés et ont proposé en même temps le modèle théorique de la cryptogra-

phie à clé publique qui est appelé modèle de cryptographie asymétrique.

La cryptographie à clé publique intervient dans de nombreuses applications quotidiennes,

de l’utilisation de cartes à puce en passant par la téléphonie mobile, jusqu’à la connex-

ion d’un utilisateur à un ordinateur. RSA, Elgammal, DSA, ECDSA en sont les exemples

les plus célèbres. Cependant, la sécurité de ces applications reposait essentiellement sur

deux problèmes réputés difficiles de la théorie des nombres : le problème de factorisation

et le problème du logarithme discret. Bien que ces deux problèmes résistent encore aux

cryptanalystes, ils ne sont pas à l’abri d’une percée théorique ni même de l’ordinateur

quantique qui mettrait en danger la difficulté de les résoudre. En effet, dès 1994, P. Shor

[128] a montré que les ordinateurs quantiques peuvent casser la plupart des systèmes

cryptographiques classiques, par exemple ceux basés sur le problème de la factorisation

ou sur le problème du logarithme discret. Il est donc crucial de développer des systèmes

3

Page 14: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 1. INTRODUCTION

de chiffrement qui sont résistants aux attaques quantiques.

La cryptographie basée sur les codes de correcteurs d’erreurs, sur les réseaux euclidi-

ens, sur les systèmes multivariés, ou bien sur le hachage sont des candidats très promet-

teurs pour la cryptographie post-quantique.

L’autre branche, la cryptanalyse intéresse également la communauté, c’est un ensemble

de techniques et d’outils théoriques et pratiques permettant d’évaluer la robustesse des

primitives cryptographiques. La sécurité théorique est en générale garantie si, casser une

primitive cryptographique revient à casser un problème réputé difficile (cf chap. 3). La

sécurité pratique est en générale évaluée en confrontant ces primitives aux attaques con-

nues et en proposant des paramètres de sécurité non atteignables par ces attaques en

temps polynomial. Pour les schémas de chiffrement et de signature les attaques pratiques

peuvent être de deux types:

• attaques structurelles ou algébriques qui porte en général sur les clés

• attaques critiques qui ne peuvent pas être évitées en augmentant la taille des clés,

elles sont portées généralement sur les messages clairs et sur les messages chiffrés.

Les moyens mis en œuvre pour offrir ces services sont appelés mécanismes de sécu-

rité: la génération de nombres (pseudo-)aléatoires, le hachage, le chiffrement et la signa-

ture.

1.1.2 La génération de nombres aléatoires

Un générateur de nombres pseudo-aléatoires, PseudoRandom Number Generator (PRNG)

en anglais, est un algorithme qui génère une séquence de nombres présentant certaines

propriétés du hasard telles l’indépendance(probabiliste) entre les différentes sorties du

générateur ou bien l’indistingabilité d’une sortie à une sortie purement aléatoire.

La fonction essentielle des PRNG cryptographique est la génération de clés de chiffrement

pour le chiffrement par flux ou par bloc, mot de passe robuste, ...

1.1.3 Le Chiffrement

Le chiffrement est le plus vieux outils de la cryptographie pour mettre en œuvre la confi-

dentialité. Il permet à partir d’une clé appelée clé de chiffrement de transformer un mes-

sage en une suite de nombres intelligibles que pour celui qui détient la clé de déchiffre-

ment.

4

Page 15: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 1. INTRODUCTION

1.1.4 Le Hachage

Les fonctions de hachage cryptographiques sont à sens unique, et elles possèdent de

nombreux domaines d’utilisation. Nous donnons ci-dessous une liste non exhaustive de

ces domaines.

Intégrité des données: Il s’agit du service principal des fonctions de hachage. Ce service

permet d’assurer que les données n’ont pas été altérées lors d’une transmission ou d’un

stockage de manière intentionnelle ou non.

Authentification des messages: Dans le cadre de la cryptographie symétrique, ce ser-

vice permet de s’assurer de l’intégrité des données face à un adversaire actif. Pour obtenir

un MAC (Message Authentification Code), on chiffre le haché du message avec la clé

symétrique des entités qui échangent.

Signature électronique: La Signature électronique (ou numérique) fait par partie des

outils les plus importants de la cryptographie asymétrique. Elle permet d’assurer deux

services à savoir l’intégrité et la non-répudiation. Pour obtenir la signature d’un mes-

sage(ou empreinte), l’ensemble des hachés devrait être inclus dans l’ensemble des mes-

sages chiffrés. On déchiffre un haché avec la clé privée de l’expéditeur pour obtenir une

signature.

Protection des mots de passe: Dans l’exploitation des ressources informatique, pour

mettre en œuvre une politique d’accès on a souvent besoin de stocker le haché(scellé) des

mots de passe dans une base de données, pour éviter de les stocker en clair, afin d’assurer

une identification future des usagers.

1.1.5 Hachage et Signature caméléon

Dans les systèmes d’information hiérarchiques, si un message haché ou signé depuis un

nœud, doit être modifié par un autre nœud légitime, ce dernier après modification serait

obligé de redemander la signature du nouveau message afin de garder sa validité. Dans

ce cas, si le nœud signataire n’est pas connecté, alors il est serait impossible d’assurer la

validité du message. La signature caméléon apporte une réponse à cela en permettant

au signataire de choisir les agents qui peuvent modifier le message ainsi que les parties à

modifier.

Cette technique de signature peut être utilisé dans:

• les protocoles de routage(Proxy) sur internet pour lesquels les entêtes IP doivent

être modifié au cours de la transmission tout en gardant l’intégrité des données;

5

Page 16: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 1. INTRODUCTION

• la gestion des mises à jour logiciel au niveau des postes clients par diverse équipes

de développeurs;

• la gestion de publicité des pages web chiffrés sur lesquels les agences de publicité

insèrent du contenu aléatoire(adapté à l’utilisateur);

• la gestion collaborative des dossiers médicaux des patients;

• la gestion(partage) des licences d’utilisation de contenu multimédia;

• la modification des certificats sans changer sa signature, donc sans être obligé de

faire des mises à jour chez les clients.

1.1.6 Cryptographie Post-Quantique

L’informatique quantique est un nouveau domaine de recherche qui n’a que récemment

commencé à fleurir. L’informatique quantique et la cryptologie quantique sont nées de

l’étude des principes de la mécanique quantique qui pourraient être utilisés dans l’exécution

des calculs.

En 1994, le domaine de l’informatique quantique avait une percée significative lorsque

Peter Shor d’AT&T Research Labs introduisit un algorithme quantique qui peut, en temps

polynomial probabiliste, factoriser de grands nombres entiers et résoudre le logarithme

discret sur machine quantique. C’était une percée spectaculaire car il a présenté l’un des

premiers exemples de scénario dans des techniques quantiques.

Dès lors, la communauté mathématique à penser à de nouvelles primitives capables de

résister à la machine quantique: cette nouvelle famille est appelée cryptographie post-

quantique.

Les différents candidats potentiels à cette famille sont la cryptographie basée sur les réseaux

qui disposent déjà de standards IEEE (NTRUCrytp, NTRUSign), la cryptographie basée

sur les codes, la cryptographie basée sur les systèmes multivariés, la cryptographie sur le

hachage et celle sur le calcul d’isogenie sur les courbes elliptiques.

1.2 Organisation du mémoire et Contributions

Le présent mémoire est composé de neufs chapitres dont trois sur les notions de bases et

cinq (4,5,6,7,8) pour la partie contribution et un pour une conclusion générale.

Chapitre 2: introduit quelques notions de base de la théories des codes, des réseaux arithmé-

tiques après avoir donné quelques propriétés préliminaires sur les groupes. Il faut

noter qu’il existe un lien entre la théorie des codes et celle des réseaux qui est intro-

duit à la fin de ce chapitre.

6

Page 17: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 1. INTRODUCTION

Chapitre 3: présente quelques généralités sur la cryptographie moderne, les notions et modèles

de sécurité et termine par la présentation de quelques primitives cryptographiques

pour la cryptographie post-quantique.

Chapitre 4: présente un survey sur les attaques critiques en cryptographie basée sur les codes

et propose une conversion IND-CCA2 spécifique aux codes avec une redondance

plus petite que celle de Kobara et al. [88].

En effet, dans ce chapitre nous avons analysé la vulnérabilité des cryptosystèmes

de McEliece, Niederreiter, et HyMES face à plusieurs attaques critiques. Tous les

schémas ont montré des faiblesses face à la pluspart de ces attaques, HyMES contre

toutes les attaques sauf l’attaque de messages reliés. Ce résultat montre l’importance

des conversions pour ces cryptosytèmes qui protègent contre les attaques critiques.

Nous aussi avons proposé ici une nouvelle version de conversion spécifique aux

schémas basés sur les codes qui permet d’obtenir une plus petite redondance des

données par rapport aux conversions existantes.

Ce travail fait l’objet d’une publication [43] dans "International Journal of Informa-

tion and Coding Theory", 3(2):158–176, 2015.

Chapitre 5 : fait une étude sur les implémentations logicielles de deux familles de primitives

cryptographiques basées sur le problème du décodage par syndrome : les fonctions

de hachage et de chiffrement par flux. Ce chapitre étudie différents algorithmes,

à savoir, FSB, SFSB, RFSB, SYND, 2SC et XSYND, et améliore leur performance en

implémentations logicielles qui sont faites en langage C à l’aide de registres XMM

de Streaming SIMD Extensions (SSE). Nous avons réussi à battre les résultats des

implémentations de référence disponibles.

Ce travail fait l’objet d’une présentation dans WAIFI2014 et d’une publication [47]

dans Arithmetic of Finite Fields, volume 9061 of Lecture Note on Computer Sci-

ences, pages 187–203. Springer International Publishing, 2015.

Chapitre 6: présente un nouveau chiffrement par flux basé sur les codes, appelé SBS. En util-

isant le parallélisme, nous avons conçu un système très rapide par rapport à toutes

les propositions précédentes basées sur les codes. Sa sécurité est basée sur le prob-

lème de décodage par syndrome de mots réguliers et sa performance est compara-

ble à l’AES-CTR, il fonctionne à 7,8 cycles par byte, tandis que la performance de

l’AES-CTR est d’environ 7,59 cycles par byte.

Ce travail fait l’objet d’une présentation dans "International Conference on Coding

and Cryptography", USTHB, Alger, 2-5 Novembre 2015.

Chapitre 7: présente un PRNG basé sur des problèmes de réseau arithmétique au pire des cas

, en s’appuyant sur la dureté d’ISIS comme sécurité de base. En effet, nous avons

7

Page 18: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 1. INTRODUCTION

conçu un système qui présente des similitudes avec la conception proposée dans

certains chiffrements de flux à sécurité prouvée comme QUAD [19] et SYND [66].

Nous avons prouvé l’indistingabilité de notre PRNG d’une véritable séquence pure-

ment aléatoire, à condition que le SIS soit difficile pour l’ensemble de paramètres

appliqués.

Ce travail fait l’objet d’une présentation dans "International Conference on Cod-

ing and Cryptography", USTHB, Alger, 2-5 Novembre 2015 et d’une publication à

paraitre dans "Applicable Algebra in Engineering, Communication and Comput-

ing".

Chapitre 8: introduit une nouvelle fonction de hachage caméléon basée sur le problème LPN.

notre fonction de hachage est non-interactive et est facile à implémenter. Cepen-

dant nous avons suggérer l’utilisation de matrice uniformément aléatoire qui de-

mande beaucoup d’espace mémoire. Nous pensons à l’avenir bâtir une telle fonc-

tion de hachage sur la version polynomiale de LPN et/ou d’utiliser les matrices

Toeplitz aléatoires tout en gardant le même niveau de sécurité.

Contributions par rapport aux objectifs du CBC/CEA-MITIC

Dans cette thèse, nous apportons quelques contributions à la cryptographie (symétrique

et asymétrique) basée sur les codes et sur les réseaux. Les résultats présentés ici sont le

fruit de trois années de recherche, d’octobre 2013 à janvier 2016, au sein de l’équipe de

recherche ERCISpq(Équipe de Recherche en Codes et Implantation post-quantique) du

Laboratoire LACGAA(Laboratoire d’Algèbre, de Cryptographie, de Géométrie Algébrique

et Applications) de l’Université Cheikh Anta Diop de Dakar. Cette thèse est réalisée dans

le cadre du projet CBC/CEA-MITIC du Laboratoire LACGAA représenté par le Professeur

Cheikh Thiécoumba Gueye, dont les contributions sont alignées aux objectifs du Projet.

Ces contributions qui ont fait l’objet de plusieurs publications dans des conférences in-

ternationales [47, 45, 46], et des chapitres d’ouvrage [46, 43], sont concentrées sur les

chapitres 4,5,6,7 et 8.

Entre autres nous regardons les attaques critiques face à la cryptographie basée sur les

codes en proposant de façon concrète des modèles d’attaque et donnant une conversion

IND-CCA2 spécifique de ces schémas(objectif 4 de CBC/CEA-MITIC).

Nous avons aussi amélioré la performance logicielle de pratiquement toutes les fonctions

de hachage, PRNG et les schémas de chiffrement par flux basés sur les codes(objectif 3 de

CBC/CEA-MITIC). Nous avons réussi à proposer de nouveaux PRNG et Chiffrement par

flux basés respectivement sur les réseaux et sur les codes(objectif 1 de CBC/CEA-MITIC).

Enfin nous proposons une fonction de hachage caméléon basée sur les codes ainsi que

la signature caméléon correspondante(objectif 1 de CBC/CEA-MITIC). Tous les schémas

8

Page 19: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 1. INTRODUCTION

que nous avons proposés sont dotés de preuves de sécurité théorique et pratique.

Contributions par rapport aux objectifs du PRMAIS/SIMONS FOUNDA-

TION

this thesis is aligned to the objectives of PRMAIS/SIMONS FOUNDATION in the area of

fundamental mathematical research, and research in Applied Mathematics to Informa-

tion Security (Cryptology and Coding Theory)(objectif 1 of PRMAIS/SIMONS FOUNDA-

TION).

1.3 Publications personnelles et soumissions

[43] Critical attacks in code-based cryptography , International Journal of Information

and Coding Theory (IJICOT), Vol. 3, No. 2, 2015. Join work (P.-L. Cayrel, C. T. Gueye,

R. Niebuhr) DOI: 10.1504/IJICOT.2015.072639

[47] Efficient software implementations of code-based hash functions and stream-ciphers.

In Arithmetic of Finite Fields volume 9061 of Lecture Note on Computer Sciences,

pages 187–203. Springer International Publishing, 2015.Join work (P.-L. Cayrel, M.

Meziani, Q. Santos).

[46] A Pseudorandom Number Generator Based on Worst-Case Lattice Problems. To

be appeared in Applicable Algebra in Engineering, Communication and Comput-

ing(AAECC). Join Work (P.-L. Cayrel , M. Meziani, R. Lindner , and R. Silva).

[45] SBS: A Fast and Secure Syndrome-Based Stream Cipher, in "International Confer-

ence on Coding and Cryptography", USTHB, Alger, 2-5 Novembre 2015. Join Work

(P.-L. Cayrel, M. Meziani).

Chap. 8 A LPN-Based Chameleon Hash Function, en Soumission

Join work (P.-L. Cayrel, C. T. Gueye)

[52] Idempotent, Zero Divisors and Nilpotent Elements of the Quaternion and Octonion

rings over Fpk . Pioneer Journal of Algebra, Number Theory and its Applications,

Volume 8, Issues 1-2, Pages 17-32 (September & December 2014).

Join Work (A. Diouf)

[112] On Cyclic Codes over Fpk + vFpk + v2Fpk + ...+ v rFpk

ArXiv e-prints : http://arxiv.org/abs/1511.01955. Join Work (C. T. Gueye)

accepted in International Colloquium of Algebra, Number Theory, Cryptography

and Information Security, ANCI-Taza’2016, Morocco.

9

Page 20: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Part I

Préliminaires

10

Page 21: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 2

Rappels Mathématiques (Codes,

Réseaux)

“ En mathématiques, on ne comprend

pas les choses, on s’y habitue. ”

John Von Neumann

Sommaire

2.1 Généralités sur la théorie des codes . . . . . . . . . . . . . . . . . . . . . . 13

2.1.1 Définition d’un code linéaire . . . . . . . . . . . . . . . . . . . . . . . 13

2.1.2 Quelques Familles de Codes . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Groupes abéliens libres de type fini . . . . . . . . . . . . . . . . . . . . . . 18

2.3 Généralités sur la théorie des réseaux . . . . . . . . . . . . . . . . . . . . . 19

2.3.1 Définition d’un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.2 Base d’un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.3 Réseaux équivalents . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.4 Invariants d’un Réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.5 Dual d’un réseau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.4 Des Codes aux Réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Dans cette section, nous donnerons quelques notions de base de la théories des codes,

des réseaux arithmétiques. Les codes linéaires de longueur n et dimension k sont des

sous-espaces vectoriels de dimension k d’un espace vectoriel (ambiant) de dimension n

sur un corps donné. Les réseaux arithmétiques quant à eux sont des sous-groupes dis-

crets de l’espace vectoriel euclidien Rn muni de son produit scalaire canonique. Dans ce

11

Page 22: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

chapitre nous donnerons la définition de ces concepts après avoir donné quelques résul-

tats préliminaires sur les groupes. Ainsi, il existe des liens entre la théorie des codes et

celle des réseaux que nous introduirons dans ce chapitre.

12

Page 23: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

2.1 Généralités sur la théorie des codes

2.1.1 Définition d’un code linéaire

Définition 2.1.1 (Code linéaire). Un code linéaire C de longueur n et de dimension k sur

le corps fini Fq ([n,k]-code), est un sous-espace vectoriel de dimension k < n de Fnq . Les

éléments de Fnq sont appelés mots(word) et ceux de C des mots de codes(codeword). Le taux

de transmission du code R est défini par R = kn .

Définition 2.1.2 (Encodeur , code linéaire) Soit C un code (n,k)-linéaire.

On appelle encodeur une application linéaire injective g de Fkq dans Fn

q , telle que C =

g (Fkq )

Remarque 2.1.1 Comme l’encodeur est Fq -linéaire , alors on peut l’exprimer :

g : Fkq ,→ Fn

q x : 7→ xG

C = g (Fkq ) = {xG|x ∈ Fk

q }

Avec G une matrice de rang k.

Définition 2.1.3 Soit C un code linéaire [n,k] sur Fq , une matrice génératrice G est une

matrice (k ×n) dont les lignes forment une base de C . Si c appartient à C alors c est une

combinaison linéaire des lignes de la matrice génératrice G. On peut ainsi écrire

C = {m ·G,m ∈ Fkq }.

Si G = [Ik ||Ak×(n−k)] avec Ik la matrice identité de dimension k et Ak×(n−k) une matrice k ×(n −k), on dit que G est sous forme systématique.

Définition 2.1.4 (Matrice de Parité). Soit C un (n,k)-code sur Fq .

Alors il existe une matrice H (n −k)×n sur Fq de rang n −k telle que

C = {c ∈ Fnq |H · c> = 0}

De telles matrices sont appelées matrices de parité de C .

Remarque 2.1.2 En particulier, si G est sous forme systématique, i.e. G = [Ik ||Ak×(n−k)],

alors H = [−A>k×(n−k)||In−k ] est une matrice de parité du code C .

Définition 2.1.5 (Syndrome). Soit C un (n,k)-code sur Fq et H une matrice de parité de C .

Pour tout x ∈ Fnq , le syndrome de x est le vecteur sx = H · x> ∈ Fn−k

q .

13

Page 24: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

Les messages sont encodés a travers des mots de code en utilisant une matrice généra-

trice . Les mots de code c sont en général envoyés à travers un canal bruité ; ainsi on peut

recevoir un vecteur y ∈ Fnq différent du mot de code envoyé, i.e. y = c + e avec un certain

vecteur erreur e ∈ Fnq . La question qui se pose maintenant c’est comment décoder le mot

de code c( détecter l’erreur et la corriger).

En pratique, le décodeur essaie de trouver le mot de code le plus proche(décodage par

maximum de vraisemblance) du vecteur y reçu. On voit que si H est la matrice de parité

du code alors, H · y> = H · c>+H ·e> = H ·e>.

Pour donner un sens à ceci, nous allons définir la notion de distance sur Fnq et les condi-

tions sous lesquelles un processus de décodage correct est possible.

Définition 2.1.6 (Distance de Hamming, et Poids de Hamming)

La fonction:

d : Fnq ×Fn

q →N

(u, v) 7→ |{i ∈ {0, . . . ,n −1} : ui 6= vi }|

est une distance sur Fnq , appelée distance de Hamming.

Pour un mot x ∈ Fnq , son poids de Hamming est défini par:

w(x) := d(x,0).

Définition 2.1.7 (Distance minimale,capacité de correction). Soient n, t ∈N, C un [n,k]-

code linéaire sur Fq et x ∈ Fnq .

B(x, t ) := {y ∈ Fnq | d(x, y) ≤ t }

indique la boule de rayon t et de centre x.

1. la distance minimale de C est définie comme:

d := d(C ) := min{d(c,c′) | c,c

′ ∈C ,c 6= c′}

2. la capacité de correction de C est définie comme:

τ := maxc,c ′∈C ,c 6=c ′

{t ∈N | B(c, t )∩B(c′, t ) = ;} = b(d(C )−1)/2c

Définition 2.1.8 On notera [n,k,d ] un code de longueur n de dimension k et de distance

minimale d.

14

Page 25: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

Supposons que nous sommes intéressés par des codes de q-aires (pas nécessairement

linéaire) de longueur n et de distance minimale d qui ont beaucoup de mots de code.

Quelle est la plus grande taille qu’un tel code peut avoir? En théorie de l’information, pour

un canal q-aire symétrique de probabilité de transition p ∈ [0,1− 1q ] (c’est la probabilité

pour qu’un symbole émis x soit changé en un symbole y 6= x), la capacité est 1−Hq (p), où

Hq est la fonction d’entropie q-aire de Hilbert :

Hq (p) = p logq (q −1)−p logq p − (1−p) logq (1−p)

.

Proposition 2.1.3 (Borne de Gilbert-Varshamov). Soient n,k et d des entiers positifs tels

que 2 ≤ d ≤ n et 1 ≤ k ≤ n .

Si qn−k >∑d−2i =0

( in−1

)(q −1)i := Vq (n −1,d −2), alors il existe un code linaire [n,k] sur Fq de

distance minimale au moins égale à d.

Cette borne peut être démontrée avec des arguments probabilistes, qui permettent de

plus d’obtenir que la probabilité qu’un code tiré uniformément au hasard soit en dessous

de la borne de Varshamov-Gilbert tend exponentiellement vers zéro avec la longueur n.

L’objectif général est de construire des familles de codes asymptotiquement bonnes.

Définition 2.1.9 Une famille de codes Ci , de paramètres [ni ,ki ,di ]q est asymptotiquement

bonne si:

limsupki

ni> 0, et limsup

di

ni> 0

Théorème 2.1.4 (Borne Asymptotique Gilbert-Varshamov). Sur Fq , pour tout δ ∈ [0,1− 1q ],

alors il existe une infinité de code C q-aire avec un taux d’information:

R(C ) ≥ 1−Hq (δ)−o(1)

.

2.1.2 Quelques Familles de Codes

Codes Cycliques

Un code cyclique sur Fq est un code Fq -linéaire stable par permutation circulaire des co-

ordonnées des mots du code i.e. si C est un code cyclique, alors

(c0, ...,cn−1) ∈C ⇒ (cn−1,c0, ...,cn−2) ∈C

Si l’on représente le mot de code ci-dessus par le polynôme c(x) = c0+c1x+...+cn−1xn−1,

alors la permutation circulaire d’une unité à droite correspond à la multiplication par x

15

Page 26: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

modulo xn −1. Un code cyclique q-aire est un idéal de l’anneauFq [x]

<xn−1> des polynômes à

coefficients dans le corps à q éléments Fq modulo xn −1, et sera de la forme C =< g (x) >,

c’est-à-dire que tout élément de C est un multiple d’un certain polynôme g (x) à coeffi-

cients dans Fq . Lorsqu’il est de degré minimal et unitaire, ce polynôme est unique, nous

l’appellerons polynôme générateur du code.

Théorème 2.1.5 Soit C un code cyclique dansFq [x]

<xn−1> . Il existe un polynôme g (x) ∈C avec

les propriétés suivantes:

• g (x) est l’unique polynôme unitaire de degré minimal dans C ,

• C =< g (x) >, et

• g (x)|(xn −1).

Soit k = n −deg (g (x)), et g (x) =∑n−k

i =0 gi xi , où gn−k = 1. Alors

• la dimension de C est k et {g (x), xg (x), ..., xk−1g (x)} forme une base de C ,

• chaque élément de C est exprimé d’une manière unique comme un produit g (x) f (x),

où f (x) = 0 ou deg ( f (x)) < k.

Codes Quasi-Cycliques

Les codes quasi-cycliques sont une généralisation des codes cycliques et peuvent être

définis comme des codes cycliques sur un anneau de matrices à coefficients dans Fq .

Définition 2.1.10 Soit n = ln0, la permutation quasi-cyclique σl sur {0, ...,n − 1} d’ordre

l et d’index n0 est la permutation définie par les orbites {(0, ..., l − 1), (l , ...2l − 1), ..., ((n0 −1)l , ...,n −1)}.

Définition 2.1.11 Un code linéaire C de longueur n = ln0 est un code quasi-cyclique d’ordre

l et d’index n0 s’il est globalement invariant sous l’action de σl .

Pour n0 = 1, ce code quasi-cyclique devient cyclique.

Définition 2.1.12 (Matrice Quasi-cyclique) une k ×n-matrice par bloc avec n = ln0 et k =

l k0 est appelé quasi-cyclique si chaque bloc est cyclique de taille l × l

Codes de Goppa

Définition 2.1.13 (Codes de Goppa q-aire). Soit n, t, m des entiers positifs tels que 0 < t < n

, m ≥ 2 et n ≤ qm . Soit

g (x) =t∑

i =0gi xi ∈ Fqm [x]

16

Page 27: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

un polynôme de degré t appelé polynôme de Goppa et

L = (α0, ....αn−1)

un n-uplet d’éléments de Fqm distincts deux à deux ,tels que

g (αi ) 6= 0, ∀i ∈ {0, ...,n −1}

Le code de Goppa de polynôme générateur g (x) et de support L, notéΓ(L, g (x)), est l’ensemble

des mots c = (c0, ....,cn−1) ∈ Fnq tels que:

Rc (x) = −n−1∑j =0

c j

g (α j )

g (x)− g (α j )

x −α j= 0 mod g (x) (2.1)

Comme deg (Rc (x)) < deg (g (x)), pour tout c ∈ Fnq , alors dans Fqm [x] on a Γ(L, g (x)) = {c ∈

Fnq |Rc (x) = 0}, et si de plus g (x) est irréductible alors Γ(L, g (x)) est appelé code de Goppa

irréductible.

A partir de cette définition, on peut donner la matrice de parité du code de Goppa en

fonction du support L et du polynôme générateur g (x).

g (x)− g (α j )

x −α j=

t∑i =0

gi

xi −αij

x −α j=

t∑i =0

gi

i−1∑s=0

αi−1−sj xs =

t−1∑s=0

xst∑

i =s+1giα

i−1−sj

A partir de l’équation 2.1 nous obtenons, pour tout c ∈Γ(L, g (x))

Rc (x) =n−1∑j =0

c j

g (α j )

t−1∑s=0

xst∑

i =s+1giα

i−1−sj =

t−1∑s=0

(n−1∑j =0

c j

g (α j )

t∑i =s+1

giαi−1−sj )xs = 0

Ainsi pour 0 < s < t −1n−1∑j =0

(1

g (α j )

t∑i =s+1

giαi−1−sj )c j = 0 (2.2)

Donc la matrice de parité H du code de Goppa peut être écrit sous cette forme:

H =

1

g (α0) g t · · · 1g (αn−1) g t

1g (α0) (g t−1 + g tα0) · · · 1

g (αn−1) (g t−1 + g tαn−1)...

. . ....

1g (α0)

∑ti =1 giα

i−10 · · · 1

g (αn−1)

∑ti =1 giα

i−1n−1

= T ·V ·D

où T =

g t 0 0 · · · 0

g t−1 g t 0 · · · 0...

......

. . ....

g1 g2 g3 · · · g t

, V =

1 · · · 1

α0 · · · αn−1...

. . ....

αt−10 · · · αt−1

n−1

, et D =

1

g (α0)1

g (α1)

1g (αn−1)

La matrice T étant inversible alors on peut écrire H = V ·D sans nuire à la généralité car

V ·D · c = 0, pour tout c ∈ Γ(L, g (x)). Comme Fqm est un espace vectoriel de dimension m

sur Fq , alors La matrice H est écrite comme une mt ×n-matrice sur Fq d’où ce théorème.

17

Page 28: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

Théorème 2.1.6 Le code de Goppa Γ(L, g (x)), où deg (g (x)) = t < |L|, a pour longueur n =

|L| , une dimension k vérifiant

n −mt ≤ k ≤ n − t

et de distance minimale d vérifiant

d º t +1.

Les codes de Goppa sont très intéressants car ils possèdent un algorithme de décodage ef-

ficace, et que, dans le cas binaire, la borne sur la distance minimale devient d ≥ 2t + 1.

Cette famille a été proposée pour la cryptographie depuis la présentation du crytosystème

de McEliece en 1978 [97] et reste sûr jusqu’a ce jour. Patterson a proposé dans [117]un

algorithme efficace pour le décodage des codes de Goppa jusqu’à t erreurs.

2.2 Groupes abéliens libres de type fini

Définition 2.2.1 (Groupe de type fini). Un groupe est dit de type fini s’il admet un système

générateur fini.

Dans la suite, les groupes considérés seront abéliens et de type fini munis d’une loi notée

additivement.

Remarque 2.2.1 Pour tout l ∈ N et g ∈ G un élément d’un groupe, alors on notera l .g =

g + g + ...+ g la somme du terme g , l fois .

Définition 2.2.2 Soit G un groupe (abélien de type fini), G1 et G2 deux sous-groupes de G.

Le groupe G est somme directe des sous-groupes G1 et G2, si tout élément G s’écrit d’une

manière unique comme somme d’un élément de G1 et d’un élément de G2. On note G =

G1 ⊕G2.

Remarque 2.2.2 G = G1 ⊕G2 si et seulement si G = G1 +G2 et G1 ∩G2 = {0}

Définition 2.2.3 Soit G un groupe et B = (b1, ...,bn) une famille d’éléments de G. On dit que

B est une base de G si G =Zb1 ⊕ ...⊕Zbn .

Remarque 2.2.3 Vu autrement, un groupe abélien peut être aussi défini comme un module

sur l’anneau des entiers relatifs Z.

Tout groupe abélien de type fini n’a pas forcément une base. Exemple (Zp ,+)

Théorème 2.2.4 Soit G un groupe abélien de type fini alors toutes les bases de G, si elles

existent, ont même cardinal fini n, appelé rang de G. G est isomorphe à Zn .

18

Page 29: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

Proposition 2.2.5 Soit v = l1b1 + ... + lnbn ∈ G. Si les entier (l1, ..., ln) sont premiers en-

tre eux dans leur ensemble, alors il existe des vecteurs v2, v3, ..., vn ∈ G tels que la famille

(v, v2, ...., vn) forme une base de G.

Théorème 2.2.6 Soit G groupe abélien libre de rang n, et G′ un sous-groupe abélien de

G non nul. Alors il existe une base (e1, ...,en) de G et des entiers non nuls d1, ...,dk avec

0 ≤ k ≤ n tels que (d1e1, ...,ek ek ) forme une base de G′. En particulier, G′ est groupe abélien

libre de rang k ≤ n.

2.3 Généralités sur la théorie des réseaux

On se place dans l’espace vectoriel euclidien Rn muni de son produit scalaire canonique.

2.3.1 Définition d’un réseau

Définition 2.3.1 Soit Γ⊂Rn , Γ est appelé réseau s’il est un sous-groupe discret de Rn .

Exemple 2.3.1 Zn est un réseau de Rn ,

Γ2 =Z(10)⊕Z(1

2) est un réseau de R2.

2.3.2 Base d’un réseau

Définition 2.3.2 On appelle base du réseau Γ ⊂ Rn de rang k ≤ n, toute famille (e1, ...,ek )

de vecteur de Rn telle que Γ =Ze1 ⊕ ...⊕Zek .

Remarque 2.3.2 les bases du réseau Γ sont donc des bases du groupe libre Γ au sens de 2.2.

Remarque 2.3.3 Soit B la matrice dont les colonnes sont formées par les vecteurs d’une

base, alors Γ est vu comme {Bx|x ∈Zk }

Dans las suite nous travaillons avec des réseaux de rang plein i.e. qui engendrent Rn

comme R-espace vectoriel.

Lemme 2.3.4 Une matrice carrée P ∈ Mn(Z) à coefficients dans Z est inversible si et seule-

ment si son déterminant vaut ±1.

Ceci permet de caractériser les bases des réseaux de rang plein.

Théorème 2.3.5 Soit Γ un réseau et (ε1, ...,εn) une base de Γ, la famille des (e1, ...,en) est

une base de Γ si et seulement si la matrice de passage de (ε1, ...,εn) à (e1, ...,en) à pour déter-

minant ±1.

19

Page 30: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

2.3.3 Réseaux équivalents

Définition 2.3.3 Soient u = (u1, ..., vn) et v = (v1, ..., vn) deux vecteurs de Rn , le produit

scalaire de u et de v est :

u · v =< u, v >=n∑

i =1ui · vi

Définition 2.3.4 La norme euclidienne d’un vecteur u = (u1, ..., vn) de Rn est définie par:

‖u‖ =p< u,u > =

√n∑

i =1u2

i

Définition 2.3.5 Deux réseaux Γ et Λ de Rn sont dits équivalents, s’il existe un automor-

phisme orthogonal f ∈ On(R) tel que f (Γ) =Λ.

2.3.4 Invariants d’un Réseau

Les invariants d’un réseau sont des propriétés qui reste constantes pour des réseaux équiv-

alents

Définition 2.3.6 Soit (e1, ...,en) une Z-base d’un réseau Γ, la matrice de Gramm par rap-

port à cette base est G = (< ei ,e j >) = B ·B>, avec la matrice correspondante à cette base.

Définition 2.3.7 On appelle déterminant du réseau Γ, le déterminant d’une matrice de

Gramm de Γ.

La proposition qui suit montre que le déterminant d’un réseau est un invariant.

Proposition 2.3.6 Deux réseaux équivalents ont le même déterminant.

Proposition 2.3.7 Soit Γ et Γ′ deux réseaux de Rn , supposons que Γ′ ⊂Γ, alors

det(Γ′) = det(Γ) · [Γ :Γ′]2.

Définition 2.3.8 On appelle le minimum d’un réseau la valeur

Mi n(Γ) = Mi n{‖x‖2 |x ∈Γ, x 6= 0} = Mi n{< x, x > |x ∈Γ, x 6= 0}

Proposition 2.3.8 Deux réseaux équivalents ont le même minimum.

20

Page 31: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

2.3.5 Dual d’un réseau

Définition 2.3.9 L’espace dual de V = Rn est l’espace vectoriel V∗ = HomR(V,R) des formes

linéaires sur R.

Théorème 2.3.9 L’application V → V∗, v 7→ (x 7→ v ·x) est un isomorphisme. En particulier,

quel que soit ϕ ∈ V∗, il existe un unique vϕ ∈ V tel que ϕ(x) = vϕ · x

Définition 2.3.10 Soit Γ = Ze1 ⊕ ...⊕Zen un réseau. Le dual du Z-module libre est le Z-

module HomZ(Γ,Z) des applications Z-linéaires de Γ dans Z.

Définition 2.3.11 On appelle réseau dual du réseau Γ, le réseau

Γ = {v ∈Rn , v · x ∈Z ∀x ∈Γ} =Ze1 ⊕ ...⊕Zen

avec ei le i-ème vecteur correspondant à la i-ème application du dual de Γ cf. théorème

2.3.9.

Proposition 2.3.10 On peut identifier le dual du réseau Γ à un sous ensemble du dual de

V

ΓwHomZ(Γ,Z)w {ϕ ∈ HomR(V,R), ϕ(ei ) ∈Z pour 1 ≤ i ≤ n}

Réseaux Entiers

Définition 2.3.12 Un réseau Γ est dit entier si pour tout x, y ∈Γ alors x · y ∈Z.

Exemple 2.3.11 Zn est un réseau entier et il coïncide avec son dual

Corollaire 2.3.12 • Si un réseau est entier alors sa matrice de Gramm est à coefficients

dans Z

• Tout réseau entier est inclus dans son réseau dual

• Le déterminant et le minimum d’un réseau entier sont des entiers.

Proposition 2.3.13 Si L est un réseau entier et L son réseau dual, alors

det(L) = [L : L].

21

Page 32: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 2. RAPPELS MATHÉMATIQUES (CODES, RÉSEAUX)

2.4 Des Codes aux Réseaux

Dans cette partie nous allons définir le lien qui existe entre les réseaux et les codes linéaires.

Nous essayerons à partir d’un code linéaire donner le réseau associé et quelques pro-

priétés de ce réseau en fonction du code sous-jacent.

On considère le réseau Zn ⊂ Rn , p un nombre premier et l’application ρ : Zn → (Z/pZ)n

définie ρ(x1, ...xn) = (x1, ..., xn).

Lemme 2.4.1 Soit C un code linéaire sur Fp de longueur n, alors ρ−1(C) est un sous réseau

de Zn

Preuve 2.5 on considère le morphisme canonique i : Fnp → Fn

p /C et on pose le morphisme

f :Zn → Fnp /C : x 7→ f (x) = i (ρ(x)),

alors ker( f ) = ρ−1(C) un sous groupe de Zn

Définition 2.5.1 Le réseau associé au code linéaire C ⊂ Fnp est :

ΓC =1ppρ−1(C) =

1pp

(C+pZn)

On remarque ici que ΓC = { 1pp (c + pz),c ∈ C et z ∈ Zn}. On déduit de la définition, les

proposition suivantes:

Proposition 2.5.1 Soient C1 et C2 deux codes linéaires sur Fp , avec p premier. Si C1 ⊂ C2

alors ΓC1 ⊂ΓC2

Proposition 2.5.2 Soit C un [n,k]-code sur Fp , avec p premier. alors le déterminant de ΓC

det(ΓC) = pn−2k

Preuve 2.6 ρ−1(C) est un sous réseau du réseau entierZn , alors d’après la proposition 2.3.7,

det(ρ−1(C)) = det (Zn).[Zn : ρ−1(C)]2. Or Zn/ker( f ) ' Fnp /C donc, det(ρ−1(C)) = |Fn

p /C|2 =

(pn−k )2 = p2n−2k

Chaque coefficient de la matrice de Gramm de ΓC est celui de ρ−1(C) multiplié par 1pp

1pp =

1p , donc finalement det(ΓC) = ( 1

p )n det(ρ−1(C)) = pn−2k

Théorème 2.6.1 Le réseau associé au code dual C> est le dual du réseau associé au code C

ΓC> = ΓC

Corollaire 2.6.2 Le réseau ΓC est entier si et seulement si C ⊂ C>.

Proposition 2.6.3 Le réseau associé à un code cyclique est cyclique

22

Page 33: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 3

Sécurité Prouvée et Cryptographie

Post-Quantique

“ En mathématiques, prouver que

quelque chose est impossible n’a «

aucun intérêt pratique ». Mais en

cryptologie « si on peut garantir que

l’adversaire est dans l’impossibilité

d’accéder à des données la preuve

devient utile » ”

Jacques Stern

Sommaire

3.1 Généralités sur la cryptographie . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.1 Machine de Turing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3.1.2 Fonctions de base en cryptographie . . . . . . . . . . . . . . . . . . . 25

3.2 Notions de sécurité en cryptographie . . . . . . . . . . . . . . . . . . . . . 29

3.2.1 Modèles de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2.2 Quelques problèmes difficiles . . . . . . . . . . . . . . . . . . . . . . 30

3.2.3 Sécurité Prouvée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3 Quelques Primitives Cryptographiques Post-Quantiques . . . . . . . . . 37

3.3.1 Chiffrement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.3.2 Fonctions de Hachage . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.3.3 Chiffrement par flot . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

23

Page 34: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

3.1 Généralités sur la cryptographie

3.1.1 Machine de Turing

Tous les ordinateurs d’aujourd’hui ont le même ancêtre, la machine de Turing (TM), une

machine abstraite inventée par Alan Turing en 1936. Dans sa forme canonique simplifiée,

elle est composée de trois objets:

1. un ruban(ou bande) divisé en une suite infinie de cases mémoire;

2. une tête de lecture/écriture qui à chaque instant est placée devant une case et peut

être dans l’état 0 ou 1;

3. une table de transitions qui contient une série de transitions.

La notion de machine de Turing permet de manipuler formellement les problèmes de

calculabilité et de traitement de l’information ainsi que la notion de complexité. Ces ma-

chines permettent donc de formaliser de façon abstraite la difficulté d’un problème et

constituent le modèle de calcul le plus couramment utilisé en cryptologie.

D’une manière formelle, à chaque instant le fonctionnement de la machine ne dépend

que de deux paramètres: le symbole lu, c’est-à-dire celui qui est situé dans la case sur

laquelle est placée la tête de lecture/écriture, et l’état de la machine. Pour contrôler la

machine, le programmeur dispose en effet d’un ensemble fini d’états Q de son choix. Il

fixe également l’état initial. C’est le programme qui va déterminer ce que la machine va

faire en fonction du couple (p,s) constitué par l’état courant de la machine et le symbole

lu. Si la cellule est vide, on considère que le symbole lu est un symbole particulier appelé

"blanc".

Définition 3.1.1 machine de Turing.

Une machine de Turing est un septuplet (Q,Σ,Γ, p0,b,δ,F) où

1. Q est l’ensemble des états (fini) de la tête de lecture/écriture;

2. Γ est l’alphabet de travail (fini);

3. � ∈Γ est un symbole particulier appelé blanc;

4. Σ est l’alphabet d’entrée (fini),Σ⊆Γ\�;

5. p0 ∈ Q est l’état initial;

6. F ⊆ Q est l’ensemble des états acceptants (ou finaux, terminaux);

24

Page 35: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

7. δ : Q×Γ→ Q∪ {"yes","no"}×Γ× {←,→,−} est la fonction de transition.

Où "yes" est l’état d’accepter, et "non" est l’état de rejet. Les instructions de déplace-

ment sont ← pour déplacer d’une étape à gauche, → pour déplacer d’une étape à

droite, et − pour ne pas déplacer la tête de lecture.

La fonction de transition δ associe l’état courant p ∈ Q et le symbole lu γ ∈ Γ , le triplet

(q,ρ,D) où q ∈ Q∪ {"yes","no"} est l’état suivant, ρ ∈Γ le symbole à écrire à la place de γ

, et D ∈ {←,→,−} indique comment la tête de lecture doit bouger.

La tête reste initialement au début de la bande, et le symbole � est écrit sur la première

case. La fonction de transition doit satisfaire aux conditions suivantes décrites dans la

table:

• si le symbole� est lu, se déplacer vers la gauche est interdit,

• le symbole� ne peut pas être effacé.

Cela garantit que la tête ne quitte jamais la bande sur le côté gauche.

Ce modèle est appelé machine de Turing à une bande. On peut aussi envisager de ma-

chines de Turing avec plusieurs bandes, et une tête sur chaque bande comme dans le cas

des programmes probabilistes pour lesquels on a besoin de rubans aléatoires.

Si on veut résoudre un problème fonctionnel avec une machine de Turing, on écrit

l’entrée sur le ruban, on lance la machine de Turing, et on attend jusqu’à ce qu’il s’arrête.

La sortie sera lue sur la bande. Si la machine s’arrête toujours et renvoie la réponse cor-

recte, on dira qu’il résout le problème en question.

La complexité de temps est le nombre d’étapes avant que la machine de Turing résolve un

problème donné. Une telle machine de Turing est dit déterministe parce que son com-

portement ne dépend que de l’entrée.

Un problème est dit déterministe en temps polynomial s’il existe une machine de Turing

déterministe qui le résout en temps polynomial de la taille de l’entrée.

Définition 3.1.2 On appelle programme ou algorithme le graphe de la fonction de transi-

tion δ d’une machine de Turing.

3.1.2 Fonctions de base en cryptographie

Définition 3.1.3 (Fonction polynomiale).

Une fonction f :N→N est dite polynomiale si,

∃n ∈N,∃K ∈N,∀l > K, f (l ) ≤ l n

25

Page 36: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

Définition 3.1.4 (Fonction négligeable).

Une fonction µ :N→R+ est dite négligeable si,

si, pour tout polynôme p, il existe un nombre entier N tel que µ(n) ≤ 1p(n) , ∀n > N.

Définition 3.1.5 (Fonction à sens unique).

Une fonction f est à sens-unique si elle peut être évaluée en temps polynomial, mais ne peut

être inversée en temps polynomial. En d’autres termes, il existe un algorithme d’évaluation

E dont le temps d’exécution

Ti me(E ) = maxx

{E ( f , x)},

est polynomial en la taille des entrées. Et pour tout adversaire A , fonctionnant en temps

polynomial Ti me(A ), sa probabilité de succès Succow (A ) de l’inversion de la fonction f ,

est négligeable en la taille des entrées:

Succow (A ) = Prx[ f (A ( f (x))) = f (x)]

Définition 3.1.6 (Fonction à sens unique à trappe).

Une fonction ( f , t ) est dite à sens-unique à trappe si la fonction f est à sens-unique, mais

l’information t (appelée trappe) permet une inversion aisée de la fonction f : il existe un

algorithme d’inversion E dont le temps d’exécution

Ti me(E ) = maxx

{E ( f , t , x)},

est polynomial en la taille des entrées.

Définition 3.1.7 (Famille de fonctions à sens unique) Une famille de fonction { fm : {0,1}m 7→{0,1}L} est à sens unique d’une sécurité p(m)(polynôme en m), s’il y a une Machine de Turing

à temps polynomial qui les évalue et pour tout adversaire A qui tourne en temps polyno-

mial, alors

Pr[A i nver t s fm(x)] ≤ 1

2+ 1

p(m).

où la probabilité est calculée avec des paramètres aléatoirement choisis d’une manière uni-

forme x ∈ U({0,1}m).

Définition 3.1.8 (Distinguer une fonction à sens unique en une seule requête) Étant donné

une fonction à sens unique g : {0,1}m → {0,1}L, on définit un distingueur en temps t pour

g , un algorithme probabiliste A qui, prend en argument une séquence de L bits et retourne

comme résultat 0 ou 1. On définit l’avantage de A de distinguer g d’une parfaite séquence

aléatoire comme

Advpr ngg (A ) =

∣∣∣Prx∈{0,1}m (A (g (x)) = 1)−Pry∈{0,1}L (A (y) = 1)∣∣∣ .

26

Page 37: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

Les probabilités sont considérées sur des valeurs choisies uniformément aléatoires x ∈ {0,1}m ,

y ∈ {0,1}L. On définit l’avantage de distinguer la fonction g en temps t comme

Advpr ngg (t ) = maxA

{Advpr ng

g (A )}

.

Définition 3.1.9 (Pseudorandom Number Generator (PRNG)) Nous dirons qu’une fonc-

tion g est une PRNG si Advpr ngg (t ) est négligeable pour t fixé. Cela permet d’ajuster la défi-

nition d’un PRNG aux niveaux de sécurité reconnus.

Définition 3.1.10 (Fonctions de hachage).

Une famille H de fonctions H : {0,1}∗ → {0,1}k est une famille de fonctions de hachage

cryptographiquement sûres si elle vérifie les trois propriétés suivantes :

• résistance à la pré-image : toute fonction H ∈H est une fonction à sens unique;

• résistance à la seconde pré-image : il n’existe pas d’algorithme polynomial permet-

tant, étant donnés un message m ∈ {0,1}∗ et une fonction H ∈H, de trouver m′ 6= m

tel que H (m) = H (m′);

• résistance aux collisions: il n’existe pas d’algorithme polynomial permettant, étant

donnée une fonction H ∈H, de trouver deux messages m′,m ∈ {0,1}∗ tels que m

′ 6= m

et H (m) = H (m′);

A noter que {0,1}∗ =⋃∞

k=1{0,1}k forme l’ensemble des mots binaires de longueur finie.

Définition 3.1.11 Système de chiffrement à clé publique.

Un schéma de chiffrement à clé publique se compose d’un couple (P ,C ) où

1. P est l’espace des textes clairs

2. C est l’espace des textes chiffrés

et de trois algorithmes s’exécutant en temps polynomial (Epk ,Dsk ,K (1k ))

• L’algorithme de génération des clés K (1k ) est un algorithme probabiliste en temps

polynomial qui prend en entrée un paramètre de sécurité k (que l’on note souvent en

notation unaire 1k ) et produit une paire (pk, sk) où pk est appelé la clé publique, et

sk la clé secrète correspondante.On notera (pk, sk) ← K (1k ). On dira aussi que la

paire (pk, sk) correspond à la paire de clés de chiffrement/déchiffrement.

• L’algorithme de chiffrement Epk est un algorithme probabiliste en temps polynomial

qui prend en entrée un paramètre de sécurité 1k , une clé publique pk choisie par

K (1k ), et une chaîne m ∈P , appelée le message, et qui produit une chaîne en sortie

27

Page 38: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

c ∈ C appelée le chiffré. On utilisera la notation c ← Epk (m,r ) pour dire que c est

un chiffrement du message m en utilisant la clé publique pk avec un paramètre k de

sécurité et un aléa r .

• L’algorithme de déchiffrement Dsk est un algorithme en temps polynomial qui prend

en entrée un paramètre de sécurité 1k , une clé secrète sk choisie dans K (1k ), quelques

fois un aléa s et un chiffré c ← Ep k(m,r ) et qui produit une chaîne m0 ∈P telle que

pour toute paire (pk, sk) dans K , pour tout message m, et pour tout chiffré c ∈C , la

probabilité Pr [Dsk (c, s) 6= m0] soit négligeable.

Définition 3.1.12 Schéma de signature.

Un schéma de signature se compose d’un triplet d’algorithmes (K ,S ,V ) et d’un couple

d’ensembles (P ,S ) où

1. P est l’espace des textes clairs

2. S est l’espace des signatures

• L’algorithme de génération des clés K (1k ) est un algorithme probabiliste en temps

polynomial qui prend en entrée un paramètre de sécurité k et produit une paire

(pk, sk) où pk est appelé la clé de vérification, et sk la clé de signature correspon-

dante. On notera (pk, sk) ←K (1k ). On dira aussi que la paire (pk, sk) correspond à

la paire de clés de signature/vérification.

• L’algorithme de génération de signature Ssk est un algorithme en temps polynomial

qui prend en entrée un paramètre de sécurité 1k , une clé privée sk choisie par K (1k ),

et une chaîne m ∈ P , appelée le message, et qui produit une chaîne en sortie s ∈ S

appelée signature à partir de m ou du haché H (m). On utilisera la notation s ←Ssk (m) pour dire que s est une signature du message m en utilisant la clé privée sk

avec un paramètre k de sécurité.

• L’algorithme de vérification de signature Vpk est un algorithme en temps polynomial

qui prend en entrée un paramètre de sécurité 1k , une clé publique pk choisie dans

K (1k ), un message m ∈P et une signature s ←Ssk(m) , calcule le haché de m haché

H (m) et produit Tr ue ou Fal se telle que pour toute paire (pk, sk) dans K , pour tout

message m ∈ P , et pour toute signature s ← Ssk (m), la probabilité Pr [Vpk (s,m) 6=Tr ue] soit négligeable.

28

Page 39: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

3.2 Notions de sécurité en cryptographie

L’objectif de la cryptographie est de construire des systèmes de chiffrement inviolables.

D’une manière formelle leur sureté repose sur deux critères : la sécurité inconditionnelle

ou la sécurité calculatoire.

La sécurité inconditionnelle (ou sécurité parfaite) introduite en 1949 par Claude Shanonn,

assure que la connaissance du message chiffré ne donne aucune information sur le mes-

sage claire et d’une manière inductive le choix d’un message ne donne aucune informa-

tion sur le chiffré correspondant. Il montra que ce niveau de sécurité peut être atteint

dans le cas de la cryptographie symétrique que si le message est aussi long que la clé util-

isée et que cette clé soit utilisée une seule fois.

On remarque que cette sécurité n’est applicable qu’au cas symétrique car dans la cryp-

tographie asymétrique la clé de chiffrement (clé publique) est connue de tout le monde

ainsi le texte chiffré contient toujours de l’information sur le texte clair. En effet, une

recherche exhaustive dans l’espace des messages clairs (attaque à texte clair choisi) per-

mettrait de retrouver un message clair correspondant au chiffré fixé.

Cette remarque nous amène à considérer un autre critère de sécurité pour les primi-

tives cryptographiques (asymétriques) à savoir la sécurité calculatoire qui fait appelle à

la théorie de la complexité et qui est actuellement utilisée dans l’évaluation des schémas

cryptographiques. En effet, un schéma est considéré comme calculatoirement sûr si le

casser revient à résoudre un problème algorithmique (supposé) difficile. Par conséquent,

ces schémas asymétriques reposent généralement sur des fonctions à sens unique, voire

des fonctions à sens-unique avec trappe.

3.2.1 Modèles de sécurité

Modèle standard

Dans ce Modèle, aucune hypothèse n’est faite sur l’attaquant. Il s’agit du modèle habituel

de la théorie de la complexité qui permet d’atteindre de fortes propriétés de sécurité qui

ne reposent que sur des hypothèses calculatoires et non sur des constructions idéalisées.

Le modèle standard est moins fort que le modèle de la théorie de l’information, car la

sécurité parfaite induit inconditionnellement à la sécurité calculatoire. Dans la suite nous

verrons quelques hypothèses et problèmes (de décision) utilisés dans ce modèle.

Prouver la sécurité d’un certain système cryptographique signifie prouver une borne

inférieure de la difficulté d’un certain problème de calcul. Malheureusement, pour les

modèles généraux il est difficile de quantifier le but de l’attaquant et les moyens qu’il

utilise, il est alors intéressant d’étudier d’autres modèles pour remplir un certain nombre

29

Page 40: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

de critères de sécurité.

Modèle de l’oracle aléatoire

Ce modèle fut introduit par A.Fiat et A.Shamir en 1987 et formalisé par M.Bellare et P.Rogaway

en 1993. Il s’agit de faire une hypothèse supplémentaire en introduisant dans le chiffre-

ment des fonctions à sens unique considérées comme parfaitement aléatoires. C’est le

cas des fonctions de hachage et des générateurs pseudo-aléatoires. Dans ce contexte,

l’utilisation d’une fonction de hachage ou d’un générateur pseudo-aléatoire lors d’une

preuve est remplacée par un oracle aléatoire dont la sortie est indistinguable pour un ad-

versaire, de la sortie d’une fonction parfaitement aléatoire.

Une remarque importante est que toute nouvelle question recevra une réponse uniformé-

ment distribuée dans l’espace correspondant, indépendante des précédentes questions

et réponses. Mais une même question aura toujours la même réponse.

Dans les preuves de sécurité, pour ce modèle, il est possible de supposer que l’adversaire

a accès à un oracle aléatoire pour simuler les fonctions de hachage et les générateurs

pseudo-aléatoires, ou bien à un oracle de déchiffrement capable de déchiffrer des mes-

sages.

Il faut noter que dans ce modèle idéaliste, l’existence de schémas sûrs n’assure pas forcé-

ment la sûreté dans la pratique. En effet dans [41] R. Canetti, O. Galdreich et S. Halev ont

prouvé l’existence de schémas sûrs dans ce modèle pour lesquels Il n’existe pas d’implémentation

sûr de l’oracle par une fonction de hachage dû au caractère déterministe des fonctions de

hachage en pratique.

On peut voir l’oracle aléatoire comme un ruban infini qui, à chaque valeur d’entrée, as-

socie une valeur aléatoire dans {0,1}n où n est la taille (tronquée) de sortie de la fonction

de hachage. A la sortie, l’oracle peut retourner, soit des valeurs aléatoires, soit des valeurs

fixées qui paraissent aléatoires.

3.2.2 Quelques problèmes difficiles

Dans la théorie de complexité, il est défini des classes de problèmes considérés comme

difficiles. En cryptographie on utilise souvent des instances de problème NP-complets

ou NP-durs pour concevoir des primitives telles les schémas de chiffrement, des fonc-

tions de compressions et des fonctions d’expansion. Cependant ces classes de complex-

ité n’assurent que l’existence d’instances difficiles pour un choix judicieux de paramètres.

Ce choix de paramètres nous permet en cryptographie de fixer le niveau de sécurité.

• Un problème de décision est un problème dont la réponse est OUI ou NON.

30

Page 41: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

• un problème de décision est dans la classe P s’il peut être décidé par une machine

de Turing déterministe en temps polynomial en la taille de l’entrée.

• La classe NP est la classe des problèmes décisionnels dont une solution Oui est véri-

fiable en temps polynomial, à l’aide d’une information supplémentaire appelée cer-

tificat;

• problème NP-complet (c’est-à-dire un problème complet pour la classe NP) est un

problème de décision vérifiant les propriétés suivantes:

1. Il est possible de vérifier une solution efficacement (en temps polynomial); la

classe des problèmes vérifiant cette propriété est notée NP;

2. Tous les problèmes de la classe NP se ramènent à celui-ci via une réduction

polynomiale ; cela signifie que le problème est au moins aussi difficile que

tous les autres problèmes de la classe NP.

Ici nous présentons quelques problèmes difficiles liés à la cryptographie post-quantique.

En effets, ils ont en général servit à construire des cryptosystèmes qui sont calculatoire-

ment aussi difficiles sur une machine Turing que sur une machine quantique. Contraire-

ment aux problèmes de factorisation et de logarithmes discrets, aucun algorithme actuelle-

ment connu ne permet d’attaquer ces problèmes liés aux codes et aux réseaux euclidiens.

Sur les Codes

Problème 3.2.1 CSD (Décodage par syndrome Calculatoire)

• Entrée: Soit H une matrice (n − k,n) binaire et w un entier positif et un syndrome

s ∈ Fn−k2

• Sortie: Un mot e ∈ Fn2 telle que w t (e) ≤ w et H ·e> = s.

Souvent appelé de Coset Weight, ce problème correspond au problème de décodage borné

i.e de trouver un mot à distance plus petite qu’une borne donnée.

Ce problème est sous-jacent à la sécurité de la plupart des schémas cryptographiques

basés sur les codes (voir [26, 126, 44] pour plus de détails). En effet Berlekamp, McEliece

et Van Tilborg ont montré en 1978 [21] que le problème de la recherche de syndrome de

mots de poids fixé était un problème NP-complet.

Problème 3.2.2 DMD(Problème de Distance Minimale Décisionnel)

• Entrée: Soit H une matrice (n −k,n) binaire et w un entier >0

31

Page 42: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

• Question : Existe-t-il un vecteur x ∈ F∗n2 telle que w t (x) ≤ w et H ·x> = 0.

Dans [132], il est montré que le problème de calcul de la distance minimale d’un code

binaire linéaire est NP-difficile, et le problème de décision correspondant est NP-complet.

Ce résultat constitue une preuve de la conjecture de Berlekamp, McEliece, et van Tilborg

(1978).

Définition 3.2.1 (Mot régulier). Un mot binaire x de longueur n et de poids w t (x) = w est

appelé mot régulier, s’il est composé de w blocs de longueur nw qui contiennent chacun un

seul bit non nul.

Définition 3.2.2 (Mot 2-régulier). un mot binaire x de longueur n est 2-régulier, s’il est la

somme de deux mots réguliers de même poids w.

Son poids w t (x) ≤ 2w et chaque bloc est de poids égal à 0 ou 2.

Problème 3.2.3 RSD(Décodage par Syndrome Régulier)

• Entrée: Soit H une matrice (n − k,n) binaire et w un entier positif et un syndrome

s ∈ Fn−k2

• Sortie: Un mot régulier e ∈ Fn2 telle que w t (e) ≤ w et H ·e> = s.

Problème 3.2.4 2-RDM(Problème de Distance Minimale 2-Régulier).

• Entrée: Soit H une matrice (n −k,n) binaire et w un entier >0.

• Sortie: Un mot 2-régulier e ∈ Fn2 telle que w t (e) ≤ 2w et H ·e> = 0.

Dans [10], la version décisionnelle de chacun de ces problèmes est prouvée NP-Complet

et le nombre d’instances faciles est négligeable devant celui des instances difficiles. Ces

problèmes sont aussi difficiles que le SDP, puisqu’il n’y a toujours pas d’algorithme qui

peut significativement faire mieux que le meilleur algorithme connu [11] contre le SDP.

Sur les Réseaux

Les problèmes calculatoires en théorie des réseaux ont été récemment investigués pour

construire un certain nombre de primitives cryptographiques.

Définition 3.2.3 (SVP) Étant donnée une base du réseau A ∈ Zn×m , le Problème du plus

Court Vecteur (SVP) consiste à trouver un vecteur non nul Ax du réseau, avec x ∈ Zm \ {0},

tel que ‖Ax‖ ≤ ‖Ay‖ pour tout autre y ∈Zm \ {0}.

Définition 3.2.4 (SIS sur une anneau arbitraire R) Soient a1, a2, ..., am ∈ R des éléments

de l’anneau R, le problème SIS consiste à trouver les coefficients xi ∈ S ⊆ R de x = (x1, ..., xm)

qui satisfait à l’équation∑m

i =1 ai xi = 0 et de longueur ‖x‖ ≤ b.

32

Page 43: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

Selon les travaux d’Ajtai [107], R peut être l’anneau produit Znq des vecteurs de longueur

n modulo q.

Définition 3.2.5 (SIS(n, q,m,b)) Étant donnée A ∈Zn×mq une matrice, le problème SIS(n, q,m,b)

consiste à trouver un vecteur non nul x ∈ Sm ⊆Zmq qui satisfait à l’équation Ax = 0 (mod q)

et dont la norme vérifie ‖x‖ ≤ b.

Ce problème admet une formulation approximée par un facteur γ ∈R, où la solution soit

satisfaire ‖x‖ ≤ γb.

Définition 3.2.6 (Inhomogène SIS:ISIS(n, q,m,b)) Étant donnée A ∈Zn×mq une matrice et

y ∈ Zn un vecteur, le problème ISIS(n, q,m,b) consiste à trouver un vecteur non nul x ∈Sm ⊆Zm

q qui satisfait à l’équation Ax = y (mod q) et dont la norme vérifie ‖x‖ ≤ b.

Définition 3.2.7 (Shortest Independent Vector Problem (SIVP)) SoitΛ une réseau de di-

mension n. Le problème SIVP consiste à trouver les plus petits vecteurs indépendant entre

eux v1, . . . ,vn ∈Λ.

Définition 3.2.8 (Learning from Parity with Error) En 2005, Regev [16] a introduit un prob-

lème appelé “Learning With Errors” (LWE). Il s’agit de résoudre un système.

Soient p un nombre premier, n , m des entiers tels que 1 ≤ m ≤ n et Soit χ une distribution

de probabilité sur Zp . Pour 1 ≤ i ≤ m, considérons les vecteurs ai choisis indépendamment

à partir d’une distribution uniforme sur Znp , et bi des éléments de Zp .

LWE consiste à trouver s ∈Znp tel que

⟨s,a1⟩+e1 = b1 mod p

⟨s,a2⟩+e2 = b2 mod p

...

⟨s,am⟩+em = bm mod p

où ⟨s,ai ⟩ =∑

j s j (ai ) j est le produit scalaire modulo p de s et ai et et e1 , · · · , em des valeurs

de Zp choisis indépendamment selon χ

3.2.3 Sécurité Prouvée

La preuve de sécurité en cryptographie, pour un modèle d’attaque donné, est modélisée

en général sous forme de scénarios d’attaques appelés jeux d’attaque entre un maître de

jeu appelé (challengeur) et un adversaire qui sont tous des machines de Turing interact-

ifs. le challenger et l’adversaire sont considérés comme des algorithmes probabilistes qui

33

Page 44: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

communiquent entre eux, ainsi le jeu pourra être considéré comme un espace de prob-

abilité. Selon le type de primitive cryptographique utilisée, il existe plus ou moins un

modèle de sécurité plus adéquat comme on a vu au début du chapitre.

• Cryptographie à clé secrète: on peut utiliser la sécurité inconditionnelle au sens de

Shannon avec une puissance de calcul illimitée pour l’attaquant

• Cryptographie à clé publique (chiffrement et signature): on peut utiliser la sécurité

réductionniste qui transforme toute réussite d’une attaque en la solution d’une in-

stance d’un problème réputé difficile.

• Fonctions de Hachage et Générateur pseudo-aléatoire: on peut utiliser la sécurité

réductionniste qui transforme toute réussite d’une attaque en une contradiction

d’une proposition sur les fonctions à sens unique comme développer dans [71].

Il faut noté que dans le cas de la cryptographie à clé publique, en sus de la sécurité réduc-

tionniste dans le modèle standard, il est préférable d’étudier les primitives dans le modèle

de l’oracle aléatoire pour ainsi leur permettre d’éviter certaines attaques et de vérifier cer-

taines propriétés que nous allons voir dans la suite.

La sécurité des primitives dans le modèle standard peuvent être étudiée suivant deux axes

formés d’une part des propriétés de sécurité qui définissent les différents buts à atteindre

et d’autre part des moyens dont l’adversaire dispose.

Propriétés de sécurité

Les propriétés de sécurité peuvent être classées suivant un ordre de gravité au cas où elles

ne sont pas atteintes en tant que but. A part le but ultime d’un adversaire qui se trouve

être la découverte de la clé privée à partir de la clé publique, on peut définir:

Définition 3.2.9 One-Wayness. Un système de chiffrement à clé publique est dit one-way

si aucun attaquant probabiliste en temps polynomial ne peut retrouver le message clair à

partir d’un chiffré donné, avec une probabilité non négligeable.

De manière formelle, on écrit qu’un système de chiffrement asymétrique est (t ,ε)−OW si

pour tout adversaire A ayant un temps t borné, sa probabilité d’inversion est inférieure à ε:

Succow (A )de f= Pr

Rm←M

[(sk, pk) ←K (1k ) : A (Epk (m,r ))?= m] < ε

Comme dans le cas de la cryptographie asymétrique, il n’est pas possible d’avoir une sécu-

rité inconditionnelle comme dans le cas symétrique, il serait alors intéressant de donner

une propriété de sécurité qui correspond à la sécurité parfaite dans le cas asymétrique.

• indistinguabilité(IND). Un système de chiffrement à clé publique est dit Indistin-

guable(sémantiquement sûr) si aucun attaquant probabiliste en temps polynomial

34

Page 45: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

ne peut apprendre un seul bit d’information sur le clair à partir du chiffré, excepté

sa longueur.

• non-malléabilité(NM). La non-malléabilité (NM) formalise l’incapacité d’un adver-

saire à obtenir un nouveau chiffré c ′ à partir d’un chiffré c de telle sorte que les clairs

m et m′ des chiffrés c et c ′ soient reliés.

Ces buts (ou propriétés) souvent appelés notions de sécurité nous permettent ainsi

de définir le niveau de vulnérabilité de nos schémas de chiffrement. L’autre aspect carac-

térisé par les moyens de l’adversaire peut être classé en trois niveau en terme de puissance

des moyens utilisés dans l’attaque.

Attaque à textes clairs choisis (CPA). .

L’adversaire a non seulement accès aux textes chiffrés et aux textes clairs correspondants,

mais de plus il peut choisir les textes en clair. Il peut ainsi choisir des textes en clair spé-

cifiques qui donneront plus d’informations sur la clef.

Attaque non adaptative à chiffrés choisis (CCA1) .

aussi appelée “lunch-time attacks”, formalisées par Naor et Yung [111],l’attaquant a accès

à un oracle de déchiffrement uniquement avant de recevoir le challenge c’est à dire le

chiffré à attaquer.

Attaque adaptative à chiffrés choisis (CCA2) .

l’attaquant peut accéder à un oracle de déchiffrement avant et après avoir reçu le chal-

lenge. Mais le challenge n’est pas soumis à l’oracle. Cette attaque est plus forte que les

précédentes car après avoir pris connaissance du challenge il peut adapter les chiffrés

qu’il souhaite faire déchiffrer.

Avec ces deux familles on forme un nouveau modèle d’attaque plus précis appelé

modèle d’adversaire composé d’un but et d’un moyen utilisé par l’adversaire. Ceci permet

d’avoir des jeux d’attaques plus précis pour mesurer la sécurité des primitives et leurs

vulnérabilités.

On peut mixer les buts NM, IND, OW et les modes d’attaques CPA, CCA1, CCA2 pour

obtenir les neuf combinaisons : OW-CPA, OW-CCA1, OW-CCA2, IND-CPA, IND-CCA1,

IND-CCA2, NM-CPA, NM-CCA1, NM-CCA2.

Définition 3.2.10 IND-CPA. Soit A = (A1,A2) un adversaire contre le schéma asymétrique

PKE , on définit l’expérience ExpcpaPKE,A (1k ):

35

Page 46: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

(sk, pk) ←K (1k )

(m0,m1, s) ←A1(pk)

b ← {0,1}

c ← Epk (mb ,r )

b′ ←A2(c, s)

Si b = b′

r etour ne 1 si non r etour ne 0

,

Alors l’avantage de A est défini par:

Ad vcpaPKE,A (1k )

de f= 2×Pr [Expcpa

PKE,A (1k )?= 1]−1

On dit que le système de chiffrement asymétrique PKE est (t ,ε)− IND−CPA si pour tout

adversaire A ayant un temps t borné, l’avantage Ad vcpaPKE,A (1k ) < ε

Définition 3.2.11 IND-CCA2. Soit A = (A1,A2) un adversaire contre le schéma asymétrique

PKE , on définit l’expérience Expcca2PKE,A (1k ):

(sk, pk) ←K (1k )

(m0,m1, s) ←A Dec(sk,.)1 (pk)

b ← {0,1}

c ← Epk (mb ,r )

b′ ←A Dec(sk,.)

2 (c, s)

Si b = b′

r etour ne 1 el se r etour ne 0

,

l’adversaire A2 n’est pas autorisé à déchiffrer c. Alors l’avantage de A est défini par:

Ad vcca2PKE,A (1k )

de f= 2×Pr [Expcca2

PKE,A (1k )?= 1]−1

On dit que le système de chiffrement asymétrique PKE est (t ,ε)− IND−CCA2 si pour tout

adversaire A ayant un temps t borné, l’avantage Ad vcca2PKE,A (1k ) < ε

Remarque 3.2.1 Soient deux notions de sécurité

A,B ∈ {OW-CPA,OW-CCA1,OW-CCA2,IND-CPA,IND-CCA1,IND-CCA2,NM-CPA,NM-CCA1,NM-CCA2}

on a:

• A → B: tout chiffrement qui rencontre la notion de sécurité A rencontre B

Les relations entre les notions de sécurité ont été étudiées de manière approfondie par

Bellare, Desai, Pointcheval et Rogaway [15], puis par Bellare et al. [16]. Dans [13], les

auteurs ont montré les séparations et les implications entre les principales notions de

sécurité dans le cadre du chiffrement asymétrique.

36

Page 47: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

Théorème 3.2.2 (NM-ATK → IND-ATK → OW-ATK).[15]

Si le schéma de chiffrementΠ est sûr dans le sens de NM-ATK alorsΠ est sûr dans le sens de

IND-ATK, pour toute attaque ATK ∈ {CPA,CCA1,CCA2}.

Théorème 3.2.3 (IND-CCA2 → NM-CCA2).[15]

Si le schéma de chiffrementΠ est sûr dans le sens de IND-CCA2 alorsΠ est sûr dans le sens

de NM-CCA2.

Dans [15] les auteurs ont donné les relations qui existent entre les différentes propriétés

P ∈ {NM,IND,OW} faces aux différentes attaques ATK ∈ {CPA,CCA1,CCA2}.

3.3 Quelques Primitives Cryptographiques Post-Quantiques

La plupart des cryptosystèmes à clé publique utilisés sont basés sur des problèmes de

théorie des nombres. Il est important de connaître des systèmes alternatifs efficaces en

pratique (réseaux, systèmes multivariés, codes correcteurs d’erreurs, fonctions de hachage

...). Ces alternatives sont a priori sûres face à l’ordinateur quantique, rapide et facile à im-

planter et entre autres reposent sur des problèmes N P -complets bien connus.

3.3.1 Chiffrement

Pour assurer une communication sûre à travers un canal, la cryptographie offre deux ser-

vice:

– L’information ne sera intelligible que pour les destinataires légitimes: confidentialité

– L’information reçue correspond à celle envoyée par son véritable auteur: Intégrité

La confidentialité et l’intégrité peuvent être assurées soit grâce à une protection physique

du système de transmission, soit grâce à une protection logique des informations trans-

férées. La confidentialité est assurée en chiffrant le message envoyé, c’est-à-dire en le

transformant de manière à le rendre illisible pour toute personne ne connaissant pas la

clé de déchiffrement, tandis que l’intégrité est garantie par une signature électronique du

message.

Schémas de chiffrement basés sur les codes

Le désavantage majeur de la cryptographie basée sur les codes correcteurs d’erreurs est

la grande taille de clé publique (des centaines de milliers de bits . . . ). Récemment, les

systèmes basés sur les codes QC-MDPC [109, 77] ont été présentés avec de petites tailles

de clés et une sécurité prouvée.

37

Page 48: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

McEliece Le chiffrement à clé publique de McEliece a été présenté par R. J. McEliece

en 1978 [97]. Le schéma originel utilise les codes de Goppa, qui reste incassé (pour des

paramètres bien choisis), mais le schéma peut être utilisé avec n’importe quelle classe de

codes pour laquelle un algorithme de décodage est connu.

Soient G une matrice génératrice k ×n d’un code binaire de Goppa de paramètres

(n,k, t ), P une matrice de permutation aléatoire de taille n ×n, S une matrice binaire in-

versible de taille k ×k et DG un algorithme de décodage du code généré par G. Tous les

vecteurs et matrices sont définis sur le corps fini F2.

La clé privée est (S,G,P,DG), tandis que G = SGP et t forment la clé publique.

Chiffrement: Pour chiffrer un message m ∈ Fk2 , l’expéditeur génère un vecteur aléa-

toire e ∈ Fn2 avec wt(e) = t et calcule le chiffré c = mG⊕e.

Déchiffrement: En Recevant un chiffré c, le destinataire calcule c = cP−1 = mSG⊕eP−1. Puisque P est une permutation, wt(eP−1) = wt(e), donc DG peut être utilisé pour

décoder cela: mSG = DG(c). Le destinataire choisit alors un ensemble J ⊆ {1, . . . ,n} tel

que GJ (la matrice formée par les colonnes de G indexées par J) soit inversible, et calcule

m = mSGJ ·G−1J ·S−1.

Niederreiter En 1986, H. Niederreiter proposa un cryptosystème [116] qui peut être vu

comme la version dual du schéma de McEliece. Ce cryptosystème utilise la matrice de

parité d’un code (de Goppa) pour calculer le syndrome du message qui sert de message

chiffré. Même si le cryptosystème Niederreiter a été prouvé aussi sûr que le cryptosystème

de McEliece [91], il est menacé par différentes attaques critiques car étant un chiffrement

déterministe.

Soit H une matrice de parité d’un (n,k, t )-code de Goppa binaire, où r = n −k, P une

matrice de permutation aléatoire, S une matrice inversible de taille r × r et DH un algo-

rithme de décodage du code défini par H. Puisque le code de Goppa sous-jacent peut

corriger un certain nombre d’erreurs t < n, le Schéma de Niederreiter utilise une fonction

ϕ qui transforme d’une manière bidirectionnelle le message à un mot de longueur n et de

poids t : ϕ : Fl2 7→Wn,t , où l = dlog2

(nt

)e et Wn,t est l’ensemble des vecteurs de longueur n et

de poids t .

La clé privée est (S,H,P,DH) et (H = SHP, t ,ϕ) la clé publique.

38

Page 49: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

Chiffrement: Soit m ∈ Fl2 le message, alors le chiffré c est calculé comme c = H ·

ϕ(m)T.

Déchiffrement: Le destinataire reçoit un chiffré c et calcule c = S−1c = HP ·ϕ(m)T.

Puisque P est une matrice de permutation, wt(Pϕ(m)T) = wt(ϕ(m)T), donc DH peut être

utilisé pour décoder cela: Pϕ(m)T = DH(c). Finalement, il calcule m =ϕ−1((P−1Pϕ(m)T)T).

HyMES Le schéma HyMES (Hybrid McEliece Encryption Scheme) développé par Biswas

et Sendrier [36] améliore l’efficacité de McEliece en encodant une partie du message dans

le vecteur erreur. Alors que dans le scénario habituel ce schéma est aussi sûr que le

schéma de McEliece d’origine, il se comporte différemment face attaques critiques.

Le schéma HyMES fonctionne comme suit:

• Le message m est découpé en deux parties m = (m1||m2).

• La première partie m1 correspond au message dans le schéma de McEliece originel,

et le second m2 codé en message d’erreur e =ϕ(m2) de poids t .

Soient G, P, S, et DG définis comme dans le schéma de McEliece.

Soit ϕ une fonction définie comme dans le schéma de Niederreiter.

La clé privée est (S,G,P,DG), tandis que G = SGP, t , et ϕ forment la clé publique.

Chiffrement: Soit m ∈ Fk+l2 le message, avec l comme dans la section 3.3.1. Soit m1

les k premiers bits de m et m2 les l bits restants. Le chiffré c est c = m1G⊕ϕ(m2).

Déchiffrement: Le destinataire recouvre m1 comme dans le schéma de McEliece

c = cP−1 = m1SG⊕ϕ(m2)P−1, en appliquant l’algorithme de décodage: mSG = DG(c), et

trouve m1 = mSGJ ·G−1J ·S−1 cf. section 3.3.1. la seconde partie de m est trouver en calcu-

lant m2 =ϕ−1(c ⊕m1G).

Les clés (publique et privée) sont de grandes matrices, ce qui constitue un des plus

grands désavantages de ce chiffre. Par exemple, la clé publique est de 219 bits (64 Ko). Il y a

eu des tentatives de cryptanalyse sur l’algorithme de McEliece, mais des changements ont

permis de les rendre inopérantes. Néanmoins, ce chiffrement n’est pas utilisé en pratique,

d’une part à cause de la grandeur des clés, mais aussi parce que la grandeur du texte

chiffré est de deux fois celle du texte d’origine. La ressemblance entre ce problème et

celui du sac à dos inquiète aussi une partie des spécialistes. En 1991, E.M. Gabidulin et al.

39

Page 50: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

ont proposé une amélioration, qui, deux ans après, sera prouvée sans avantage par J.K.

Gibson.

Securité de ces schémas Les attaques sur le cryptosystème de McEliece se classent en

deux catégorie : attaques critiques et attaques non-critiques.

Les attaques non-critiques sont celles qui dépendent fortement des paramètres et peu-

vent alors être contrecarrées seulement en augmentant la valeur de ces paramètres. Les

attaques critiques, développées dans le chapitre suivant, sont plus rapides que les at-

taques non-critiques et réalisables pour des paramètres réalistes. Elles peuvent seule-

ment être évitées en utilisant des conversions adaptées (voir [81, 43]) et en évitant les

codes ayant une faiblesse structurelle.

Les attaques non-critiques les plus sérieuses sont l’attaque par recherche de mot de petits

poids et l’attaque par ensemble d’informations.

L’attaque par recherche de mot de petits poids utilise un algorithme qui trouve un mot

de poids faible parmi les mots de code générés par une matrice génératrice arbitraire en

utilisant une base de données obtenue par pré-calcul [129]. Si on considère le nouveau

code de matrice génératrice (k +1)×n suivante :

Gext = [Gc ]

où G est la matrice publique de McEliece et c = mG⊕ e le message chiffré, alors le mot de

code de Gext de poids minimal est e dont le poids est la capacité de correction du code

sous-ajent G. L’un des algorithmes les plus efficaces pour monter ce genre d’attaque sont

le décodage par ensemble d’information (ISD) ou l’algorithme d’anniversaire général-

isé(GBA). L’ISD est un algorithme probabiliste désigné pour décoder n’importe quel code

linéaire. Sa première variante introduite par Prange [121], a tété mise à jour et raffinée

plusieurs fois pendant des années, conduisant à sa meilleure variante développée par

May et al.[11, 96, 57, 28]. L’idée développée derrière cet algorithme est de trouver un sous-

ensemble, appelé ensemble d’information, de k positions ne contenant pas d’erreurs

parmi les n positions de chaque mot de code, où k et n sont respectivement la dimen-

sion et la longueur du code.

La résistance face à cette attaque dépend de plusieurs facteurs entre autres, le poids de

l’erreur et l’alphabet utilisé [119]. Pour un niveau de sécurité de 128 bits, dans [28] les

auteurs suggére l’utilisation des codes de Goppa de longueur 2960 et de dimension 2288

avec un polynome de Goppa de degré 56 et de poids de l’erreur égal à 57, et pour un niveau

de 256 bits une longueur de 6624 et de dimension 5129 avec un polynome de Goppa de

degré 115 et de poids de l’erreur égal à 117. ces paramètres resistent jusqu’à ce jour aux

différentes variantes qui existent.

40

Page 51: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

Schémas de chiffrement basés sur les Réseaux

cryptosystème NTRU Le cryptosystème NTRU a été présenté en 1996 dans la rump ses-

sion de Crypto96 et publié en 1998 [78]. Le domaine de calculs de NTRU est l’anneau des

polynômes

P =Z[X]/(XN −1)

et utilise des réductions modulo deux nombres (ou polynômes) premiers entre eux p et q.

La multiplication dans cet anneau correspond au produit de convolution noté ? i.e. Si

f =∑N−1

i =0 fi Xi et g =∑N−1

j =0 g j X j ∈P , alors h = f ?g ∈P est tel que:

hk =∑

i+ j =k mod nfi g j =

k∑i =0

fi gk−i +N−1∑k+1

fi gN+k−1.

Dans la suite toutes les opérations dans les polynômes seront globalement dans P .

Soit q un entier, on note Pq = Zq [X]/(XN −1) l’anneau des polynômes de degré inférieur

à N à coefficient dans Z/qZ, et p ∈ P alors on définit l’anneau Pp = Z[X] = (XN − 1, p)

obtenu en réduisant P modulo p.

Soient f ∈ P et g ∈ P deux polynômes choisis aléatoirement tels que f soit inversible

dans Pp et Pq d’inverse fp et fq respectivement.

La clée publique est h = p ∗ g ∗ fq mod q et la clé privée ( f , fp ).

Chiffrement: Soient m ∈ Pp le message à envoyer, r ∈ P aléatoire. Alors le chiffré

est

e = r ∗h +m mod q

Déchiffrement: A partir du chiffré e, on calcule a = f ∗ e mod q à coefficients dans

]− q2 , q

2 [. Alors, on a m = fp ∗a mod p.

NTRUCrypt est aujourd’hui standardisé pour le commerce. Son chiffrement est 10

fois plus rapide que celui de RSA et son déchiffrement 100 plus rapide. Il semble résisté

aux attaques pratiques et à la machine quantique à des paramètres bien choisis.

3.3.2 Fonctions de Hachage

Une fonction de hachage h est une fonction de F∗2 → Fn

2 qui prend en entrée un docu-

ment de longueur quelconque et retourne en sortie une suite binaire de longueur donnée.

Le but des fonctions de hachage est d’assurer l’intégrité des données, i.e. détecter toute

modification volontaire ou non du document d’origine.

Une fonction de hachage cryptographique idéale possède les cinq propriétés suivantes:

41

Page 52: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

• il est possible de calculer rapidement la valeur de hachage pour tout message donné

• il est impossible de reconstruire un message(pré-image) à partir de sa valeur de

hachage ;

• il est impossible de modifier un message sans changer sa valeur de hachage ;

• il y a une très faible probabilité pour trouver deux messages(collision) différents

ayant la même valeur de hachage.

• il est impossible de déduire une quelconque information que ce soit d’un message

à partir de son empreinte numérique.

Bourrage - Padding

Presque toutes les fonctions de hachage et de chiffrement à flot travaillent sur des blocs de

message au lieu de prendre le message dans son ensemble. Ainsi, le message est d’abord

divisé en blocs d’une longueur déterminée de la façon suivante:

Figure 3.1 – Découpage de message

Dans la figure 3.1, Le message est divisé, et les blocs ont la même longueur, sauf peut-

être pour la dernière. Comme le dernier bloc ne peut pas être aussi longue que les autres,

quelques bits sont ajoutés pour le compléter :

Figure 3.2 – Padding de message

Dans la figure 3.2, Certains bits sont ajoutés pour combler le dernier bloc. Pour éviter

une collision trivial (ajout de zéros au message donnerait le même hachage), la longueur

du message initial doit être stocké dans le rembourrage. Si ce qui reste du dernier bloc

n’est pas suffisant un nouveau bloc sera ajouté.

Une fois que le message ait été scindé et rembourré, les blocs seront enchaînés un bloc

après l’autre dans la fonction de compression ou d’expansion. Le point important est que

l’enchaînement doit être conçu de telle sorte que tout changement dans un bloc modifie

le comportement de la fonction. Pour assurer ces propriétés de sécurité et de rapidité,

42

Page 53: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

il existe aujourd’hui plusieurs constructions, celles qui nous intéressent les plus sont la

construction éponge et celle de Markle-Damgård [48].

La construction Merkle-Damgård

Le paradigme de Merkle-Damgård [99][100][48] est un chaînage réaliste pour traiter les

blocs à partir d’un message de n’importe quelle taille à hacher.

Figure 3.3 – schéma de Merkle-Damgård

Dans la figure 3.3 est représentée la fonction en boite noire (compression) comme le

domaine de Merkle-Damgård .

Le domaine d’expansion de Merkle-Damgård est une méthode permettant de construire

des fonctions de hachage qui résiste à la collision à partir de fonction de compression. Le

principe est de découper le message en blocs et de procéder par rebouclage sur les blocs

pour prendre en compte n’importe quel changement sur un bloc. L’état du compteur in-

terne est initialisé avec un "IV" (Vecteur initialisation) et l’état final est appelé pré-hache.

Le "pré-hache" peut être réutilisé pour avoir un autre "pré-hache" ou le hache final (par

exemple, à travers l’algorithme Whirlpool).

La construction éponge

La construction de l’éponge est une alternative à la construction précédente permettant

de construire des fonctions de hachage. Elle a notamment été utilisée pour la fonction

SHA-3. D’un point de vue théorique, elle permet aussi de construire des preuves de sécu-

rité. Son originalité est d’accepter en entrée à la fois des chaînes de taille arbitraire et de

permettre en sortie des chaînes de la taille que l’on souhaite. Elle généralise à la fois les

fonctions de hachage et le chiffrement par flux.

Elle utilise une permutation ou une transformation aléatoire f , au lieu d’une fonction de

compression et permet d’avoir des sortie à longueur variable. Si f est une permutation

aléatoire, on parle de fonction P-Éponge, dans les autres cas on parle de T-éponge. Cette

fonction opère sur l’état interne de taille b = r + c, où r est la taille de bloc de message et

c la capacité éponge. Initialement l’état (IV) est un vecteur nul de longueur b, aligné par

les r premiers bit du document à hacher.

Cette construction réalise le hachage en ces deux étapes:

43

Page 54: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

1. l’absorption:

Dans cette étape, le document P ayant subi l’opération de padding, est découpé en

bloc de taille r bits .i.e P = (p1, p2, ...., pl ).

Si si est l’état courant, alors le prochain

si+1 = f (si ⊕ (pi‖0c )), avec s0 = 0b et1 ≤ i ≤ l

Ceci est répété jusqu’à traiter tout les blocs de P.

2. l’essorage:

Cette étape constitue la construction pas à pas de la sortie. Elle consiste en la répéti-

tion des deux étapes suivantes:

• a: les r premiers bits hi de l’état sont retournés comme blocs de sortie

• b: la fonction f est appliquée sur l’état. Le haché h = h1‖h1‖...‖hN est de

longueur l = N · r , ainsi le nombre d’itérations N est choisi par les utilisateurs

pour avoir la sortie désirée.

Figure 3.4 – Construction Éponge

La fonction de Hachage FSB

Le FSB(Fast Syndrome-based hash Functions) est une famille de fonctions de hachage

cryptographique introduite en 2003 par Daniel Augot, Matthieu Finiasz, et Nicolas Sendrier

[8] basée sur l’itération de Merkle-Damgård. Contrairement à la plupart des autres fonc-

tions de hachage cryptographique en usage aujourd’hui, FSB présente une preuve de

sécurité calculatoire. Plus exactement, il est prouvé que casser FSB est au moins aussi

difficile que la résolution du problème NP-complet du décodage par syndrome des mots

réguliers. Donc la sécurité de FSB repose sur le fait que ce problème est supposé non-

résoluble en temps polynomial.

Plusieurs améliorations ont été proposées d’une part pour le réparer contre l’attaque par

linéarisation [124, 55], d’autre part pour augmenter sa vitesse après son élimination à la

compétition du SHA-3. Il y a eu le S-FSB proposé par Meziani et al dans [102] en 2010

qui permet d’améliorer la vitesse de FSB de 30% à l’aide de la construction éponge. Plus

44

Page 55: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

récemment en 2011, Bernstein et al. ont proposé une fonction de hachage RFSB encore

plus rapidité dans [30] qui est aussi rapide que 2 des 5 SHA-3 finalistes et 10 fois plus

rapide que le FSB-256. RFSB tourne très vite sur la carte FPGA Spartan 6, et a atteint des

débits de l’ordre de 5Gbit/s.

La Fonction de Compression de FSB La fonction de compression de FSB fonctionne

d’une manière très simple, elle est basée sur le calcul de syndrome de mots réguliers.

Soit H une matrice publique quasi-cyclique aléatoire constitué de w sous-matrices circu-

lantes Hi de taille r × nω chacune, avec r et n des entiers positifs tels que r < n.

Input: s l’état de taille ω log2( nω )

1. Découper s en ω blocs: s1, ...sω de taille log2( nω )

2. Convertir chaque si en entier (base 10) compris entre 0 et nω −1

3. Choisir la colonne de Hi correspondante pour chaque i

4. Additionner(XOR) les ω colonnes et obtenir un vecteur de longueur r bits

Output: les r bits obtenus comme haché.

Sécurité théorique de FSB Dans [48], il est montré qu’une fonction de hachage qui suit

le domaine d’extension de Merkle-Damgård resiste à la collision si la fonction de com-

pression est résistante à la collision. Il est aussi montré dans [9], que trouver une collision

revient à résoudre le problème NP-complet 2-RDM vu en 3.2.4

Sécurité pratique et choix des paramètres La fonction FSB résiste en pratique aux at-

taques bien connues sur les codes et fonctions de hachage si les paramètres sont bien

choisis.

Il résiste à l’attaque par ensemble d’information [9], au paradoxe des anniversaires général-

isé [134], et de certaines techniques de cryptanalyse [124, 62]. Les paramètres donnés

pour cette version sont:

Longueur du haché n w r s

160 20×216 80 640 1120

224 28×216 112 896 1568

256 32×216 128 1024 1792

384 23×216 184 1472 2392

512 31×216 248 1984 3224

45

Page 56: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

3.3.3 Chiffrement par flot

Un chiffrement par flot (flux) se présente souvent sous la forme d’un générateur de nom-

bres pseudo-aléatoires avec lequel on opère un XOR( One-Time Pad) entre un bit à la

sortie du générateur et un bit provenant des données. Toutefois, le XOR n’est pas la seule

opération possible. Il est très utile dans les scénarios où le message à chiffrer vient en

quantité et que sa taille est inconnue comme dans les connexions sans fil.

Pour des raisons de sécurité, la sortie du générateur (keystream) doit être indistinguable

d’une sortie réellement aléatoire. Sa période doit être très grande et il doit être impossible

de retrouver la clé mère ou l’état interne à partir d’un keystream.

chiffrement par flux synchrone Si l’état change indépendamment des messages clairs

ou chiffrés, le chiffrement est classé comme un chiffrement de flux synchrone. Dans ce

type de chiffrement, l’émetteur et le récepteur doivent être exactement à la même étape

pour que le déchiffrement réussisse. Si des bits ont été ajoutés ou supprimés du message

lors de la transmission, alors la synchronisation est perdue. Pour rétablir la synchronisa-

tion, un décalage peut être fait pour obtenir le bon déchiffrement. Une autre approche

consiste à marquer le texte chiffré avec des marqueurs à des points réguliers dans la sor-

tie.

Il faut noter que les schémas de chiffrement par flux utilise en général le modèle Merkle-

Damgard basé uniquement sur une clé mère K et un vecteur d’initialisation IV (SYND,

XSYND), toutefois on voit de nouvelles constructions basées sur le modèle éponge (2SC).

Le chiffrement par flux: SYND

Publié en 2007 par P. Gaborit et al., SYND [67] comme amélioration du PRNG de Fisher-

Stern, est un stream cipher basé sur les codes avec une réduction de sécurité. L’utilisation

des mots réguliers a permis d’accélérer le système et celle des codes quasi-cycliques a

permis de réduire l’espace mémoire requis. Ici les deux fonctions: celle de mise à jour

(update) et de sortie (Output) marchent de la même manière que dans FSB.

SYND accepte des clés mères (K) de taille 128 à 256 bits et produit un keystream de

taille double.

Soit n, ω et s des entiers positifs tels que nω soit une puissance de 2 et s =ω log2( n

ω ).

La génération des clés marche en trois étapes en utilisant les fonctions Ini , Upd et Out

(Figure 3.5). La fonction Ini s’exécute une seule fois en prenant la concaténation de la

clé mère K et du vecteur d’initiation IV de longueur chacun s/2 et retourne l’état initiale

e0 = Ini (K,IV). La fonction Ini utilise la construction de Feistel basée sur Upd et Out :

46

Page 57: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

Figure 3.5 – Construction de SYND

Ini : F|K|+|IV|2 → Fs

2

Upd : Fs2 → Fs

2

Out : Fs2 → Fs

2

Ini (x) = y ⊕Out (x ⊕Upd(y));

y = x ⊕Upd(x); ∀x = (K,IV) ∈ Fs/22 ×Fs/2

2

où Upd et Out sont définis par

Upd(x) = A ·θ(x); Out (x) = B ·θ(x), ; ∀x ∈ Fs2

Ici, A et B sont des matrices binaires aléatoires définissant le même code quasi-cyclique

binaire de longueur n qui corrige jusqu’à ω erreurs. La fonction x 7→ θ(x) encode une

chaîne de s bit en mot régulier de longueur n et de poids ω. Après initialisation, pour

chaque étape i > 0, la clé de sortie (keystream) est zi = Out (ei ) et l’état suivant ei+1 =

Upd(ei ).

Dans la suite, le chiffrement One-Time-Pad sera utilisé à chaque étape i pour chiffrer un

message mi et on obtient le chiffré ci = zi ⊕mi .

Sécurité théorique de SYND Comme pour FSB (section 3.3.2), la sécurité se réduit cal-

culatoirement au problème du décodage par syndrome d’une part et s’inspire de la preuve

de sécurité de QUAD [17] pour l’indistinguabilité.

choix des paramètres

47

Page 58: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 3. SÉCURITÉ PROUVÉE ET CRYPTOGRAPHIE POST-QUANTIQUE

n k s

8192 64 128

8192 96 192

8192 128 256

8192 192 384

8192 256 512

8192 512 1024

48

Page 59: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Part II

Résultats

49

Page 60: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 4

Les attaques critiques en Cryptographie

basée sur les Codes

“ Si vous croyez que le monde

ressemblera un jour à celui de Big

Brother, détrompez-vous... Vous êtes en

plein dedans! ”

Alex Türk, président de la Cnil

Sommaire

4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.2 Les attaques critiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

4.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

4.2.2 Résumé des attaques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4.3 Contre-mesures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Les schémas de cryptographie basés sur les codes sont des candidats prometteurs

pour la cryptographie post-quantique puisse qu’ils sont rapides, d’arithmétique basique,

et ont une sécurité très bien comprise.

Bien qu’il y ait des preuves solides que les cryptosystèmes comme McEliece et Nieder-

reiter sont sûrs, ils présentent certaines faiblesses face aux attaques critiques lorsqu’ils

sont utilisés sans conversions sémantiques. Les attaques critiques ne peuvent générale-

ment pas être évitées en augmentant la taille de la clé de plusieurs systèmes cryptographiques

basés sur les codes.

Dans ce chapitre, nous présentons un survey sur les attaques critiques en cryptogra-

phie basée sur les codes et nous vous proposons une conversion IND-CCA2 spécifique

50

Page 61: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

aux codes avec une redondance plus petite que celle de Kobara et al. Notre objectif est

d’évaluer trois cryptosystèmes: McEliece, Niederreiter et HyMES face aux attaques cri-

tiques.

Nous analysons leur sécurité contre plusieurs modèles tels que: l’attaque par dif-

fusion, à clair partiel connu, par renvoi de message, par messages associés, par chiffré

choisi, par réaction et malléabilité.

Notre travail est à la suite d’un premier travail effectué par Kobara et al. [89] qui ne couvre

pas l’ensemble des attaques connues et ne traite pas le système HyMES.

Ce travail fait l’objet d’une publication [43] dans "International Journal of Information

and Coding Theory", 3(2):158–176, 2015.

51

Page 62: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

4.1 Introduction

En 1994, P. Shor [128] a montré que les ordinateurs quantiques peuvent casser la plupart

des systèmes cryptographiques classiques, par exemple ceux basés sur le problème de la

factorisation ou sur le problème du logarithme discret. Il est donc crucial de développer

des systèmes de chiffrement qui sont résistants aux attaques quantiques. La cryptogra-

phie basée sur les codes correcteurs d’erreurs est une candidate très prometteuse pour la

cryptographie post-quantique puisqu’elle est généralement rapide et ne nécessite pas de

matériel spécial, spécifiquement pas de crypto-processeur.

Les codes correcteurs d’erreurs ont été appliqués en cryptographie depuis au moins trois

décennies, depuis que R.J. McEliece a publié son papier en 1978 [97]. L’idée derrière le

système de chiffrement McEliece est la difficulté de décoder un code linéaire aléatoire.

Pour le schéma de chiffrement, un code binaire (n,k)-linéaire qui est en mesure de cor-

riger t erreurs efficacement est sélectionné. Ce code est déguisé en un code linéaire par

multiplication avec une matrice de brouillage et une matrice de permutation. Pour le

chiffrement, le texte en clair est codé et t erreurs sont introduites de manière aléatoire.

Sans la connaissance du code linéaire, des positions d’erreurs et des matrices secrètes, le

déchiffrement du message est NP-dûr. McEliece a proposé l’utilisation de codes de Goppa

binaires qui peuvent facilement être décodés en utilisant l’algorithme Patterson. Avec des

paramètres suffisants cette variante a résisté à la cryptanalyse jusqu’à présent et est con-

sidéré comme sécurisé contre les attaques quantiques [27].

Le cryptosystème de McEliece (et le système de chiffrement de Niederreiter [116] à

partir de 1986) a quelques avantages sur les autres systèmes de chiffrement à clé publique,

par exemple, le chiffrement et le déchiffrement sont plus rapides que l’algorithme RSA

largement répandue. Cependant, il existe certains inconvénients, la taille très grande de

la clé publique (supérieure à 100kb pour les paramètres de sécurité raisonnables) et un

taux d’information inférieure à celle de RSA. Biswas et Sendrier, dans [36], ont abordé

ces problèmes avec Hymes (Hybrid McEliece Encryption Scheme). Ils ont augmenté le

taux d’information par le codage de l’information dans l’erreur et réduit la taille de clé

publique en utilisant une matrice génératrice sous forme systématique (Id ||R).

Ces systèmes cryptographiques sont basés sur le problème du décodage par syndrome

(SD) (ou le problème général de décodage, qui peut être réduit au probleme SD), qui a

été prouvé NP-complet [22]. Il y a des attaques génériques contre ces systèmes cryp-

tographiques, par exemple, celles basées sur le décodage par ensemble d’information

(ISD) ou l’algorithme d’anniversaire généralisé, mais celles-ci peuvent être rendues im-

possibles par le choix des paramètres appropriés. Cependant dans les applications pra-

tiques, un attaquant pourrait ne pas avoir à briser le problème SD et arriver à déchiffrer

52

Page 63: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

un message. Ces attaques critiques sont possibles généralement lorsque l’attaquant a une

certaine capacité supplémentaire (par exemple, un oracle de déchiffrement) ou des infor-

mations complémentaires (par exemple, des informations partielles sur le texte en clair)

et en général elles ne peuvent être évitées en augmentant la taille de la clé publique. Notre

but est d’évaluer trois systèmes cryptographiques: McEliece, Niederreiter et Hymes PKC.

Nous analysons leur sécurité contre plusieurs modèles d’attaque tels que l’attaque par

diffusion, à clair partiel connu, par renvoi de message, par messages associés, par chiffré

choisi, par réaction et la malléabilité.

Dans ce chapitre, nous fournissons une étude des attaques critiques contre les trois

systèmes cryptographiques ci-dessus et nous discutons des techniques pour s’en pro-

téger. En effet, nous fournissons ou améliorons pour la première fois un certain nombre

d’attaques:

• une version généralisée de l’attaque à clair partiellement connu

• l’attaque par renvoi de message à un niveau de sécurité supérieur (n=2048)

• une preuve de la malléabilité de Niederreiter

• Comme contribution majeure, nous proposons une version modifiée de la conver-

sion de Imai-Kobara qui permet d’obtenir des données de redondance plus petite.

La section décrit 3.3.1 brièvement les trois schémas. La section 4.2 décrit les différentes

attaques critiques et leur application aux trois schémas. Nous concluons ce chapitre dans

la section 4.4.

4.2 Les attaques critiques

Les attaques critiques, contrairement aux attaques structurelles, ne peuvent générale-

ment pas être évitées en augmentant la taille des clés, elles utilisent des manquements

et informations additionnelles sur les textes clairs et textes chiffrés.

En cryptographie asymétrique, les schémas de chiffrement se divisent en deux familles:

les algorithmes de chiffrement déterministes (Ex. Niederreiter et HyMES) et les algo-

rithmes de chiffrement probabilistes (Ex. McEliece). Le chiffrement probabiliste est plus

exposé aux attaques critiques, alors beaucoup de contre-mesures consistent à transformer

ce schéma en un schéma plus robuste en tant que schéma probabiliste. Cependant le

schéma de McEliece bien qu’il soit probabiliste ne resiste pas aux attaques critiques dû

au fait qu’il soit randomisé d’une manière linéaire d’où le besoin de renforcer sa sécurité.

53

Page 64: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

4.2.1 Description

Les modèles d’attaques spécifient quelle quantité d’information l’adversaire a accès au

moment d’attaquer un message chiffré. Dans ce qui suit, nous les présentons:

¶ Attaque par diffusion de message(Broadcast Attack)

· Attaque à texte clair partiel (Known partial plaintext)

¸ Attaque à texte clair partiel généralisée (Generalized known partial plaintext)

¹ Attaque par renvoi de message (Message-resend)

º Attaque par messages reliés(Related-message)

» Attaque à clair choisi et Attaque à chiffré choisi (CPA et CCA)

¼ Attaque par Réaction (Reaction attack)

½ Malléabilité (Malleability)

Dans cette section, nous donnons une brève description des différentes attaques cri-

tiques que nous avons analysées. Les résultats sont résumés dans le tableau 4.1.

¶ Attaque par Diffusion

Cette attaque a pour but de récupérer un seul message envoyé à un certain nombre de

destinataires. Ici l’adversaire connait seulement plusieurs cryptogrammes du même mes-

sage.

Il a été présenté pour la première fois en 1998 par J. Hastad [75] contre le système de

chiffrement RSA. Puisque le même message est chiffré avec plusieurs clés publiques, il

avait proposé un scénario pour récupérer le message dans le cas de RSA.

Dans [114], Niebuhr et al. ont montré qu’avec un petit nombre de textes chiffrés, le Cryp-

tosystème de Niederreiter sera cassé. Par conséquent, ils montrent que cela ne peut pas

être monté contre McEliece en raison du caractère aléatoire du message chiffré.

Le problème résolu par une attaque par diffusion est la suivante:

problème (Broadcast Attack): étant donnés N ciphertexts ci du même message m, chiffré

en utilisant N clés publiques Gi (Hymes) ou Hi (Niederreiter) avec les mêmes paramètres,

trouver m correspondant.

54

Page 65: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

Attaque contre Niederreiter:

Suivant le schéma Niederreiter, pour chaque ci , nous obtenons la relation cTi = Hiϕ(m)T

pour i de 1 à N.

Pour chaque matrice publique Hi (r lignes et n colonnes), nous établissons, en les con-

caténant verticalement, une nouvelle matrice H =< H1, ...,HN > et cette dernière corre-

spond à un nouveau texte chiffré c = (c1||...||cn) tel que cT = Hϕ(m)T. Comme nous pou-

vons avoir des vecteurs de lignes dépendantes, le nombre d’équations dans ce nouveau

système est au plus Nr (= N× r ). Comme la dimension k ≈ n2 (avec n la dimension de

l’espace ambiant) et r +k = n, d’où 2r ≈ n. Dans ce contexte, nous essayons de trouver

le vecteur ϕ(m) de longueur n (n variables inconnues) dans un système avec moins de

Nr ≈ Nn2 équations.

Dans [114], une attaque qui permet de récupérer le texte en clair en un temps négligeable

(10-20 secondes sur un PC de bureau) a été montée en utilisant seulement un petit nom-

bre de destinataires (≈ 3) avec les paramètres (n,k) = (1024,644) en utilisant l’attaque ISD

en raison de la faible valeur du facteur travail.

Attaquer sur Hymes:

La même procédure peut être utilisée pour monter une attaque contre ce système et

de trouver l’erreur correspondante à la deuxième partie du message ϕ(m2). Après avoir

récupéré m2, il devient facile de trouver m1 par L’ISD. Le principe est d’utiliser une ma-

trice de contrôle de parité de chaque Gi .

Comment protéger ces deux schémas: Selon la résistance du schéma original de McEliece,

il peut être intéressant de protéger Niederreiter et Hymes en utilisant une technique in-

spirée de la première.

L’idée consiste à transformer le message m en un message aléatoire et permettre de le

trouver à partir du texte chiffré par le destinataire légitime.

Considérons m le message et ei un vecteur aléatoire. Le chiffré ci devient :

cTi = Hiϕ(m||ei )T (4.1)

puisqueϕ n’est pas linéaire et que m et ei sont inconnus,ϕ(m|ei ) semblent être aléatoire.

Prenons b et u respectivement la longueur du message et la longueur de la partie aléatoire.

L’attaque proposée dans [114] échouera si le nombre de variables Nu+b = Nu+n−u > Nr ,

alors la longueur adéquate de chaque ei est u > Nr−nN−1 .

· Attaque à texte clair partiel

Une attaque à texte clair partiel est une attaque pour laquelle seulement une partie du

texte en clair est connue. Cela a été étudié dans [113].

55

Page 66: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

Attaque sur schéma de McEliece:

Soient ml et mr respectivement les kl premiers bits à gauche et les kr derniers bits du

message cible m, i.e. k = kl + kr et m = (ml ||mr ). Supposons que l’adversaire connait

mr . Alors la difficulté à récupérer l’inconnu ml dans le McEliece PKC avec des paramètres

(n,k) est équivalente à celle de la récupération complète du texte en clair dans le McEliece

PKC avec des paramètres (n,kl ), puisque:

c = mG⊕e

c = ml Gl ⊕mr Gr ⊕e

c ⊕mr Gr = ml Gl ⊕e

c ′ = ml Gl ⊕e

où Gl et Gr sont les kl lignes supérieures et les autres lignes inférieures kr de G, respec-

tivement.

Dans [42], Canteaut et Sendrier ont proposé un algorithme pour trouver des mots de

code de poids faible: Soit C un code linéaire de longueur n, de dimension k et de distance

minimale d dont on ne connait qu’une matrice génératrice. Ils développent un algo-

rithme pour trouver un mot de poids w dans C où w est proche de d avec des paramètres

(n,k, t ) = (1024,524,50).

NB: avec le schéma Hymes la même méthode est utilisée pour récupérer la totalité du

message avec les mêmes paramètres.

Attaque sur schéma Niederreiter:

Le problème est modélisé de la même manière, sachant une partie el du vecteur erreur

e = (el ||er ), trouver l’autre partie er .

Comme n = nl +nr , nous utilisons la même astuce, en décomposant H = (Hl ||Hr ) où Hl et

Hr sont respectivement les nl colonnes à gauche et les nr colonnes à droite de H.

s = He t

s = Hl e tl ⊕Hr e t

r

s ⊕Hr e tr = Hl e t

l

s′ = Hl e tl .

Puisque le nombre de colonnes de Hl est nl et wt(el ) = t −wt(er ) , alors cela réduit con-

sidérablement la sécurité si nr est assez grande. Dans [42], ils montrent que, avec des

paramètres (n,k, t ) = (1024,524,50), si er contient au moins 15 positions d’erreur, alors

l’ensemble du message sera récupéré.

56

Page 67: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

¸ Attaque à texte clair partiel généralisée

Nous présentons une nouvelle attaque sur McEliece qui permet de récupérer le texte

en clair en connaissant les positions de certains bits du message d’origine. Puisque, si

{i1, ..., ir } sont r positions de bit connus qui correspondent à mr = mi1 ...mir , nous ex-

trayons de la matrice publique la sous-matrice Gr dont les lignes sont indexées par les

positions connues {i1, ..., ir }.

Ainsi il existe une permutation qui permet de transformer le message en m = (ml ||mr ): ml

est considéré comme l’autre partie du message correspondant à l’autre sous-matrice Gl ,

où k = r + l . En procédant de la même manière qu’avec l’attaque à texte clair partiel(voir

paragraphe 4.2.1), on obtient:

c ′ = ml Gl ⊕e (4.2)

où Gl est formé de lignes qui correspondent aux positions inconnues.

Le même scénario sera monté sur le cryptosystème de Niederreiter.

¹ Attaque par renvoi de message

On assiste à un renvoi de message si le même message est chiffré et envoyé deux fois (ou

plusieurs fois) avec deux vecteurs d’erreur aléatoires différents vers le même destinataire.

Cette attaque est montée sur le schéma de McEliece pour la première fois par Berson dans

[32], il a montré que cette attaque est l’une des plus faciles à monter contre le schéma

de McEliece avec un complexité O (k3), où k est la longueur du message et (n,k, t ) =

(1024,524,50). Dans cette partie, nous montons cette attaque avec les paramètres suiv-

ants (n = 2048,k = 1608,d = 81, t = 40) en suivant la même démarche.

Considérons m le message, pour le premier envoi de m, on obtient c1 = mG⊕ e1 et pour

le renvoi on obtient c2 = mG⊕ e2, alors l’adversaire calcule c1 ⊕ c2 = e1 ⊕ e2 mod 2. Cette

attaque est basée sur le fait que, avec le McEliece (n = 2048,k = 1608,d = 81, t = 40), pour

une position de bit ` donnée, la probabilité d’avoir le bit 1 sur e1 et e2 à la position ` est

faible P(e1(`) = e2(`) = 1) ≤ ( 402048 )2 = 0.0004, avec wt(ei ) ≤ 40 et ` ∈ {1...n}. Définissons :

L0 = {` ∈ {1, . . . ,n} : c1(`)⊕ c2(`) = e1(`)⊕e2(`) = 0} (4.3)

L0 = {` : e1(`) = 0 = e2(`)}∪ {` : e1(`) = 1 = e2(`)} (4.4)

L0 ≈ {` : e1(`) = 0 et e2(`) = 0} (4.5)

et

L1 = {` ∈ {1, . . . ,n} : c1(`)⊕ c2(`) = e1(`)⊕e2(`) = 1}. (4.6)

Ainsi ` ∈ l1 signifie que e1(`) 6= e2(`) dans F2. Comme wt(e1 ⊕ e2) ≤ 2t , alors |L0| ≈ 2048−wt(e1⊕e2) ≥ 2048−2×40 = 1968 et |L1| ≤ 2t = 80. Un adversaire devrait essayer de deviner

57

Page 68: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

les k = 1608 colonnes non protégées parmi celles indexées par L0.

Soit pi la probabilité pour que juste i coordonnées soient simultanément modifiées par

e1et e2. Alors

pi = P(|{` : e1(`) = 1}∩ {` : e2(`) = 1}| = i ) =

(40i

)(204840−i

)(204840

) . (4.7)

Par conséquent, le cardinal prévu (L’espérance mathématique) de L1 est:

E(|L1|) =∑40

i =0(80−2i )pi ≈ 78.4

Les deux cryptosystèmes HyMES et Niederreiter ne sont pas menacés par cette at-

taque, puisque les deux sont deterministes.

º Attaque par messages reliés

Dans l’attaque par messages reliés contre un système de chiffrement, l’attaquant obtient

plusieurs messages chiffrés tels qu’il existe une relation connue entre les messages clairs

correspondants. Ces textes chiffrés peuvent donc aider l’attaquant à atteindre un certain

objectif, par exemple obtenir des informations utiles sur les messages cachés. Cette at-

taque était aussi montée sur le chiffrement de McEliece par Berson en Crypto’97 [32].

Cette attaque est une généralisation de l’attaque par renvoi de message. Supposons que

m1 et m2 ont été envoyés au même destinataire. La condition de messages reliés est véri-

fiée s’il existe une relation linéaire entre m1 et m2 : par exemple, si nous connaissons

δm = m1 ⊕m2.

Sur le schéma de chiffrement de McEliece, si un adversaire connait c1 = m1G⊕ e1 , c2 =

m2G⊕e2 et δm. Il sera en mesure de calculer:

c1 ⊕ c2 = m1G⊕m2G⊕e1 ⊕e2 = (δm)G⊕e1 ⊕e2.

il obtient c1⊕c2⊕ (δm)G = e1⊕e2 et applique le processus de l’attaque par renvoi de mes-

sage en utilisant c1 ⊕ c2 ⊕ (m1 ⊕m2)G à la place de c1 ⊕ c2.

D’une manière équivalente, nous remarquons que cette attaque fonctionne également

sur le schéma HyMES. Dans ce cas, puisque les deux m1 = m′1||m′′

1 et m2 = m′2||m′′

2 sont

découpés. Si δm = δm′||δm′′ = (m′1⊕m′

2)||(m′′1 ⊕m′′

2 ) et m′′1 6= m′′

2 , alors il sera en mesure de

calculer:

c1 ⊕ c2 = m′1G⊕m′

2G⊕ϕ(m′′1 )⊕ϕ(m′′

2 ) = (δm′)G⊕ϕ(m′′1 )⊕ϕ(m′′

2 )

On obtient c1⊕c2⊕(δm)G =ϕ(m′′1 )⊕ϕ(m′′

2 ) et applique le processus de l’attaque par renvoi

de message en utilisant c1 ⊕ c2 ⊕ (m1 ⊕m2)G à la place de c1 ⊕ c2.

Pour le schéma de Niederreiter cette attaque n’est pas possible parce que le chiffrement

est déterministe et partiellement homomorphe.

58

Page 69: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

» Chosen plaintext (CPA) et chosen-ciphertext attacks (CCA)

L’attaque à texte clair choisi est un modèle d’attaque qui suppose que l’attaquant a la

capacité de choisir des messages arbitraires à crypter et obtenir les cryptogrammes cor-

respondants. L’objectif de l’attaque est de gagner un peu plus d’informations qui permet

de réduire la sécurité du système de chiffrement. Dans le pire des cas, une attaque à clair

choisi pourrait révéler la clé secrète du schéma.

Pour certaines attaques de type clair choisi, seule une petite partie du texte en clair doit

être choisie par l’attaquant: de telles attaques sont connues comme des attaques par in-

jection de texte en clair. Cela semble, à première vue, être un modèle irréaliste; il serait

certainement peu probable qu’un attaquant puisse persuader un cryptographe humain

de chiffrer de grandes quantités de textes clairs de son choix. La cryptographie moderne,

implémentée en matériel ou logiciel est utilisée pour un large éventail d’applications;

dans de nombreux cas, une attaque de type clair choisi est souvent très faisable. Les at-

taques de type clair choisi deviennent extrêmement importantes dans le contexte de la

cryptographie à clé publique, où la clé de chiffrement est publique et un attaquant peut

crypter tout clair qu’il choisit.

Deux formes d’attaque à clair choisi peuvent être distinguées:

• attaque à clair choisi par lot, où l’adversaire choisit tous les textes en clair avant

qu’ils soient chiffrés.

• attaque à clair choisi adaptative, où l’adversaire fait une série de requêtes inter-

actives, choisissant des messages en se basant sur les informations provenant des

chiffrés précédents.

Les algorithmes de chiffrement à clé publique non-aléatoires (déterministes) comme Nieder-

reiter et Hymes PKC sont vulnérables aux attaques de type "Dictionnaire", où l’attaquant

crée une table de messages probables et de leur texte chiffré correspondant. Certains al-

gorithmes de chiffrement probabiliste tels que McEliece PKC sont également vulnérables.

Soit c le texte chiffré, l’attaquant tente de trouver le texte en clair correspondant en cal-

culant pour chaque texte clair m, le poids de mG⊕ c. S’il est inférieur à la capacité de

correction du code alors m est le texte en clair correspondant.

La complexité de déchiffrer le chiffré décroît exponentiellement pour chaque bit connu.

Par exemple, l’attaque d’un texte chiffré avec l’aide des paramètres du McEliece (n,k) et

sachant kl morceaux équivaut à attaquer un texte chiffré avec McEliece en utilisant les

paramètres (n,k −kl ). Voir la section d’attaque à clair connu.

Dans une attaque à chiffré choisi CCA, un attaquant a accès à un oracle de déchiffre-

ment qui permet de décrypter tout texte chiffré choisi (à l’exception de celui que l’attaquant

tente de révéler). Dans le cadre général, l’attaquant doit choisir tous les textes chiffrés à

59

Page 70: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

l’avance avant d’interroger l’oracle.

Dans l’attaque à chiffré choisi adaptative, formalisé par Rackoff et Simon dans [122], il est

capable d’adapter cette sélection en fonction de l’interaction avec l’oracle. Il existe une

variante nommée l’attaque à chiffré choisi("lunchtime") dans laquelle un attaquant peut

faire des requêtes mais seulement jusqu’à un certain point, après quoi l’attaquant doit

montrer qu’il est capable d’attaquer le système. Le terme "lunchtime" renvoie à l’idée

que l’ordinateur d’un utilisateur, avec la capacité de déchiffrer, est disponible pour un

attaquant au moment où l’utilisateur est au déjeuner.

L’attaque à chiffré choisi adaptative: Cette attaque est étudiée sur le chiffrement McEliece

par plusieurs auteurs [131, 133].

Comme l’attaquant a accès à l’oracle, pour le challenge reçu (McEliece et Hymes) c =

mG⊕ e, il peut changer deux bits de c pour obtenir c ′ = mG⊕ e ′ et l’envoyer à l’oracle

de déchiffrement. Ce déchiffrement sera réussi que si ces bits modifiés sont à la fois dif-

férents: un bit "1" dans e est changé en "0" et un "0" changé en "1", i.e. wt(e) = wt(e ′) = t

et wt(e ⊕e ′) = 2. Lorsque cela se produit, la sortie de l’oracle sera le texte en clair m. Cette

attaque peut réussir avec la probabilité:

Pr = P(wt(e) = wt(e ′) = t et wt(e⊕e ′) = 2) =(t

1)(n−t1 )

(n2) = 2t (n−t )

n(n−1) , pour n = 1024 et t = 50 Pr = 0,09

(cela signifie au plus environ 11 fois), et pour n = 2048 et t = 81 Pr = 0,08 (cela signifie au

plus environ 12 fois).

Pour le schéma Hymes, la deuxième partie m2 seraϕ(m2) = e = m1G⊕c, soit m2 =ϕ−1(e) =

ϕ−1(m1G⊕ c).

Pour le schéma Niederreiter, avec la même probabilité, puisque c = HeT, l’attaquant peut

envoyer à l’oracle c ′ = c ⊕H[i ]⊕H[ j ], avec H[i ] et H[ j ] les colonnes correspondantes aux

deux bits modifiés du message e, ce qui devient e ′. L’erreur e sera révélée en changeant à

nouveau ces bits.

¼ Reaction attack

Cette attaque peut être considérée comme une version affaiblie de l’attaque à chiffré

choisi. Ici, au lieu de recevoir les textes déchiffrés de l’oracle, l’attaquant se contente

d’observer la réaction de celui-ci. Habituellement, cela permet de savoir si l’oracle est ca-

pable de déchiffrer le texte chiffré. Dans le contexte des attaques par canaux cachés, ceci

peut aussi signifier d’observer le temps de déchiffrement, la consommation d’énergie,

etc. L’une des variantes la plus facile (voir [81]), l’attaquant retourne un ou quelques bits

du texte chiffré cible (de McEliece ou HyMES) c = mG⊕ e. Soit c ′ le cryptogramme avec

des bits modifiés, si le déchiffrement réussit alors, le poids de l’erreur e ′ (c ′ = mG⊕ e ′) est

inférieur à t ; ce qui signifie que les positions de bits modifiés sont des positions d’erreur.

Pour le schéma de Niederreiter, cette attaque peut être montée par le même procédé

60

Page 71: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

décrit dans l’attaque à chiffré choisi adaptative.

En répétant l’observation ci-dessus en temps polynomial en n, l’erreur sera révélée et

l’algorithme de décodage ISD pourra être utilisé pour révéler le texte clair. Dans le cas

Niederreiter, la même chose peut être réalisée en ajoutant des colonnes de la matrice au

syndrome.

½ Malleability

La malléabilité est une propriété de certains algorithmes cryptographiques. Un algo-

rithme de chiffrement est malléable, s’il est possible pour un adversaire de transformer

un texte chiffré en un autre texte chiffré dont le déchiffrement donne un texte clair lié. En

effet, étant donné c un chiffré du message clair m, il est possible de forger un autre texte

chiffré qui se déchiffre en f (m), pour une fonction connue f , sans besoin de connaitre

m. Comme indiqué dans [81], le schéma de McEliece est malléable: Soit δm une chaîne

de bits de longueur k dont tous les bits sont égaux à "1" , G[i ] la i -ème ligne de la matrice

publique G.

A partir de δm, l’adversaire peut obtenir le texte chiffré:

c ′ = c⊕k

i =1 G[i ] = (m ⊕δm)G⊕e = m′G⊕e, (dans HyMES e =ϕ(m2))

Par conséquent, l’oracle retourne le texte en clair m′ et l’adversaire peut monter une at-

taque à messages reliés entre c et c ′; m′ = m ⊕δm.

Dans le contexte du schéma de Niederreiter, c = Hϕ(m)T, comme nous le savons, wt(ϕ(m))) =

t , l’adversaire peut prendre au hasard la i-ème colonne de H notée H[i ] et envoie à l’oracle

c ′ = c⊕H[i ]. Le déchiffrement sera un succès si nous avions «1» sur le bit du messageϕ(m)

à la position i . Soit e1 un vecteur de longueur n dont le seul bit non nul est à la position

i . L’oracle retourne le vecteur e de poids t −1 tel que c ′ = HeT = c ⊕H[i ] = Hϕ(m)T ⊕HeT1 =

H(ϕ(m)⊕e1)T. Alors:

ϕ(m) = e ⊕e1, i.e. m =ϕ−1(e ⊕e1).

Avec une probabilité de reussite:

Pr = P(e[i ] = 1) =(t

1)(n

1) = tn , pour n = 1024 et t = 50 ,Pr = 0,05, et pour n = 2048 , t = 81,

Pr = 0,04 c’est-à-dire réussite au plus 25 tests.

4.2.2 Résumé des attaques

Dans cette section, nous dressons deux tableaux récapitulatifs des attaques étudiées

précédemment. Le premier tableau représente les attaques sur texte clair et le deuxième

sur le chiffré. ? signifie que l’attaque a marché sur le schéma et "no" que l’attaque ne

marche pas.

61

Page 72: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

Plaintext

Broadcast Known Generalized Mess Related Chosen

Scheme partial Kn. partial resend mes. Adapt. Batch

chosen chosen

McEliece no ? ? ? ? ? no

Niederreiter ? ? ? no no ? ?

HyMES ? ? ? no ? ? ?

Ciphertext

Scheme Chosen Adapt. Chosen Reaction Malleability

McEliece ? ? ? ?

Niederreiter ? ? ? ?

HyMES ? ? ? ?

Figure 4.1 – Résultat des attaques

A partir de ces deux tableaux, on remarque que HyMES hérite des mauvaises propriétés

de McEliece face aux attaques à texte clair connu, messages reliés et des mauvaise pro-

priétés de Niederreiter face aux attaques par broadcast et chiffrés choisis. Sa construc-

tion spéciale n’est pas adaptée aux attaques critiques mais en utilisant une construction

comme celle d’Imai et Kobara, il peut resister au CCA2 (adaptive chosen-ciphertext at-

tack) comme détaillé dans [89].

4.3 Contre-mesures

Dans [13], il a été conclu que l’indistinguabilité et la malléabilité sont équivalentes sous

l’attaque CCA2 et la résistance face à cette dite attaque entrainerait une résistance face à

toutes les autres attaques.

La première conversion réaliste pour la sécurité sémantique: " Optimal Asymmet-

ric Encryption Padding (OAEP)" a été proposée par Bellare et Rogaway [14], mais mal-

heureusement elle ne protégeait pas contre l’attaque par réaction.

Dans [130], H.-M. Sun plusieurs variantes de McEliece probabilistes qui resiste aux at-

taques par renvoi de message et de messages reliés avec le même ratio que le McEliece

originel. H.-M. Sun annonce que l’une des variante proposé satisfait à la non-malléabilité

sous le modèle d’attaque à chiffré choisi adaptative. Toute cette conversion ne présente

62

Page 73: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

pas de preuve sémantiquement sûre, mais reste quand même une approche pour trans-

former McEliece en chiffrement randomisé efficace de la forme c = (m⊕h(e))G⊕e avec h

une fonction de hachage.

Dans notre contexte, comme nous étudions le chiffrement basé sur les codes qui reposent

sur des fonctions à sens unique (OWE), alors il est possible d’utiliser des conversions

génériques existantes pour le rendre IND-CCA2 ou bien d’utiliser des conversions spé-

cifiques à la cryptographie basée sur les codes comme celle que nous proposerons ci-

après.

L’idée derrière les conversions est de produire une sortie randomisée en protégeant le

message par chiffrement sous-jacent de type One-Pad Time qui est inconditionnel.

Notations :

Dans la suite on note:

• E Mc (x, y) fonction de chiffrement de McEliece PKC, x est le message et y le vecteur

erreur.

• DMc (z) fonction de déchiffrement de McEliece PKC, qui retourne un message clair

du chiffré z .

• E Ne (x) fonction de chiffrement de Niederreiter PKC, x le message clair de longueur

au plus dlog2

(nt

)e• DNe (z) fonction de déchiffrement de Niederreiter PKC, qui retourne un message

clair du chiffré z .

• ϕ : Fl2 7→Wn,t , où l = dlog2

(nt

)e et Wn,t est l’ensemble des vecteurs de longueur n et de

poids t .

• Len(x) la longueur binaire de x.

• H : F∗2 7→ Fl2, où l < k et l = dlog2

(nt

)e: une fonction de compression à sens unique.

• G : Fk02 7→ Fk

2 , où k0 < k et k0 la longueur du message clair: un Générateur pseudo-

aléatoire cryptographiquement sûr.

Conversion générique de Fujisaki-Okamoto :

Cette version, basée sur une fonction de chiffrement à sens unique (One-Way Encryption:

OWE), est proposée dans [63] et est montrée sûre contre CCA2. Puisque les trois schémas

sont OWE, il est possible d’adapter cette conversion pour chacun d’entre eux. Pour un

63

Page 74: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

message clair m de longueur k0, et une valeur aléatoire r ∈ Fk02 .

Faire:

c1 = E Mc (r,ϕ(H(r ||m)) (4.8)

c2 = (m)⊕G(r ) (4.9)

r etur n c := (c1,c2) (4.10)

Cette conversion est insuffisante pour protéger McEliece contre l’attaque à texte clair

partiel[82] du fait que le schéma de McEliece ne resiste pas à cette attaque.

Cependant il existe des conversion générique à la cryptographie asymétrique applicable

aux fonction(partiellement) à sens unique avec trappe telles celle de McEliece, Niederre-

iter.

Conversion générique de Pointcheval :

Cette conversion [120] basée sur une fonction partiellement à sens unique (Partially Trap-

door One-Way Function:PTOWF) est sémantiquement sûre contre CCA2 (IND-CCA2).

Puisque sans oracle, pour n’importe quel adversaire en temps polynomial et pour n’importe

quel chiffré c à partir des trois schémas definis ci-dessus, il est calculatoirement infais-

able d’obtenir le message clair correspondant. Comme il est aussi facile d’obtenir le mes-

sage clair avec la clé privée, alors ces trois schémas (McEliece, Niederreiter et HyMES)sont

PTOWF.

Cette conversion est décrite comme suit:

Etant donnés m le message de longueur k0, et un couple (r, s) ∈ Fk02 ×Fk−k0

2 de valeurs aléa-

toires.

Faire:

c1 = E Mc (r,ϕ(H(m||s))) et c2 = (m||s)⊕G(r )

return c := (c1,c2).

L’introduction du paramètre aléatoire s a permis ici d’améliorer la conversion de Fujisaki-

Okamoto pour resister à l’attaque à texte clair partiel.

Conversion spécifique de Imai-Kobara :

Du fait que généralement les conversions génériques ajoutent une redondance assez grande(différence

entre la taille du message clair et de celle du message chiffré), dans [82] Imai et Kobara ont

proposé une conversion spécifique qui permet de réduire la redondance.

Étant donnés un message m, une valeur aléatoire r et une constante Const .

Soient Hr : Fk2 7→ Fl

2, où l < k, k = Len(m) + Len(Const ) et l = Len(r ) une fonction de

64

Page 75: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

hachage.

Faire:

y1 := G(r )⊕ (m||Const )

y2 := r ⊕Hr (y1)

(c1||y4||y3) := (y2||y1)

c2 := E Mc (y3,ϕ(y4))

r etur n c := (c1,c2)

Le point fort de cette conversion est qu’elle est adaptée au chiffrement de McEliece car

le message y3 ainsi que le vecteur erreur y4 sont tirés de y1 qui lui est tiré du massage

d’entrée m et de constante Const .

Notre Conversion spécifique :

La remarque que nous avons sur la conversion de Imai-Kobara est qu’elle s’appuie sur

une constante const qui est publique pour faire le test d’intégrité. Notre idée est de rem-

placer cette constante par une compression de donnée interne du système.

Nous proposons ici une version modifiée de imai-kobara qui permet d’avoir une redon-

dance plus petite et nous montrerons qu’elle est CCA2. Dans cette version, la taille du

message clair est aussi large que dans les autres versions.

Encryption:

Etant donnés un messages m, r une valeur aléatoire

Soit Hr : Fk2 7→ F

l12 , où l1 < k = dLen(r )

2 e une fonction de compression cryptographiquement

sûre.

Faire:

(m1||m2) := m

(r1||r2) := r

y1 := G(r1)⊕ (m1||Hr (r2))

y2 := G(r2)⊕ (m2||Hr (r1))

y3 := (r )⊕H(y1)

(c1||y5||y4) := (y3||y2||y1)

c2 := E Mc (y4,ϕ(y5))

c := (c1,c2)

65

Page 76: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

Decryption:

(c1||c2) := c

(y4,e) := DMc (c2)

y5 := ϕ−1(e)

(y3||y2||y1) := (c1||y5||y4)

r := y3 ⊕H(y1)

(r ′1||r ′

2) := r

(m1||Hr (r2)) := G(r ′1)⊕ y1

(m2||Hr (r1)) := G(r ′2)⊕ y2

i f (Hr (r1) = Hr (r ′1) et Hr (r2) = Hr (r ′

2))

r etur n(m1||m2)

el se r e j ect c

Ici Len(y4) = k (dimension du code), Len(y5) = dlog2

(nt

)e et

Len(c1) = Len(y3||y2||y1)−Len(y5||y4) = Len(m)+Len(r )+Len(Hr (r1))+Len(Hr (r2))−k−dlog2

(nt

)e.

Si Len(m)+Len(r )+Len(Hr (r1))+Len(Hr (r2)) = k +dlog2

(nt

)e, alors c1 sera supprimé.

Pour les mêmes paramètres que les autres conversions (Len(r ) = Len(Const )), nous obtenons

une redondance plus petite en éliminant la valeur Const , découpant r en deux partie

(r1||r2) = r , (Len(r1) = Len(r2)) et le message en deux parties suivant l’idée de HyMES.

Puisque la fonction de compression réduit la taille des inputs, alors:

Len(Hr (r1)) < Len(r1) = d r2e et Len(Hr (r2)) < Len(r2) = d r

2e.

La redondance est :

R = n +Len(r )+Len(Hr (r1))+Len(Hr (r2))−k −dlog2

(nt

)e < n +2Len(r )−k −dlog2

(nt

)e.

Alors que dans [82] la redondance est R1 = n + 2Len(r ) − k − dlog2

(nt

)e, on conclut que

R < R1.

N.B.:

• Pour fournir une conversion pour le schéma de chiffrement de Niederreiter , du fait

que E Ne (x) utilise un seul paramètre x, nous l’adaptons juste comme il a été donné

dans [114].

• Il faut noter que: G,H, et Hr sont considérés totalement aléatoires et s’appuient sur

des fonctions de hachage cryptographiquement sûres.

Nous allons fournir un tableau de synthèse qui explicite la taille et le rendement de chaque

proposition. Pour les paramètres nous fixons H = SHA3− 512 i.e. Len(r ) = 512 et Hr =

66

Page 77: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

Table 4.1 – Comparaison des conversions et de la redondance

Redondance= taille du chiffré - taille du clair

Conversion Conversion (n,k) (2048,1289) (4096,2560)

Scheme Type t 68 128

Pointcheval [120] Générique n +Len(r ) 2560 4608

Fujisaki-Okamoto[63] Générique n 2048 4096

Imai-Kobara[82] spécifique n + 2Len(r ) −k −dlog2

(nt

)e 1352 1743

Notre conversion spécifique n + Len(r ) +Len(Hr (r1)) +Len(Hr (r2)) −k −dlog2

(nt

)e

1288 1679

McEliece Originel - n −k 762 1536

SHA3−224 .i.e Len(Hr (r1)) = Len(Hr (r2)) = 224.

Pour prouver que notre schéma est sûr contre l’attaque à texte clair choisi CPA et

l’attaque à chiffré choisi adaptative CCA2, nous donnons ce lemme.

Lemme 4.3.1 . Soit A un adversaire(Machine de Turing) contre la sécurité sémantique

(IND) de notre conversion dans un scénario CPA avec une complexité au plus t étapes, avec

un avantage égal à ε après au plus qO appels à l’oracle O ∈ {G,H,Hr }. Alors, il existe un

algorithme B contre le schéma de McElice original capable de fournir le message clair de

n’importe quel chiffré c avec un avantage ε′ ≥ ε− qH

2k .

Preuve: Ici nous suivons la même idée dans [120] et [82].

Soit A = (A1, A2) avec A1 le "find-stage" et A2 le "guess-stage". B intercepte les requêtes sur

(G,Hr ,H) en les simulant correctement.

• Premièrement B lance A1 en simulant correctement G, Hr et H. Pour toute requête

q soumise à l’oracle O ∈ {G,Hr ,H}, B prends Oq et le retourne comme la valeur O(q).

A la fin de ce stage, A1 retourne les messages m0,m1.

B choisit un bit aléatoire b ∈ {0,1} et deux valeurs aléatoires c1 et y5 et définit c2 := c

(De 4.11 nous avons c2 := E Mc (y4,ϕ(y5)). ) et c = (c1,c2) comme le chiffré de mb (c

est le chiffré du McEliece original).

• Deuxièmement, B appelle A2 avec c comme entrée et simule les requêtes toujours

de la même manière, A2 retourne d ∈ {0,1}.

67

Page 78: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

Supposons que l’algorithme B soit conçu de cette manière, montrons que B est capable

de déchiffrer le McEliece PKC:

Soit AskG l’événement où r1 est demandé à l’oracle G, AskHr l’événement où r2 est de-

mandé à l’oracle Hr et AskH l’événement où y1 est demandé à l’oracle H (pour la défini-

tion de r1, r2 et y1 voir 4.11 ).

Ici nous supposons que l’événement AskH est indépendant de G et de Hr , et il se

réalise avant les événement AskG et AskHr .

Pour un certain avantage ε′, l’adversaire B gagne le jeu si:

• AskH se réalise ( i.e. avoir y1 qui contient y4) ou

• AskG et AskHr se réalise (i.e avoir y1 ) ou (exclusif)

• d=b (dû à la condition CPA)

Nous allons évalué la borne inférieure de l’avantage ε′

pour lequel B gagne le jeu pour

n’importe quel message chiffré c. Soit wi n l’événement pour lequel A2 devine correcte-

ment b. Sa probabilité, par définition, est: Pr (wi n) = ε+12 (avec ε l’avantage)

Pr (wi n) ≤ Pr (AskH∨ (AskG∧AskHr ))+Pr (d = b)

Pr (wi n) ≤ Pr (AskH∨ (AskG∧AskHr ))+ 1−Pr (AskH∨ (AskG∧AskHr ))

2

Pr (wi n) ≤ 1+Pr (AskH)+Pr (AskG∧AskHr )

2ε≤ Pr (AskH)+Pr (AskG∧AskHr )

Pr (AskG∧AskHr ) ≥ ε−Pr (AskH)

La probabilité pour que AskH se réalise en une requête est 1Len(y1) = 1

2k , (G : Fk02 7→ Fk

2 ).

Alors après qH requêtes Pr (AskH) ≤ qH2k et la probabilité pour laquelle B gagne le jeu est

ε′ ≥ ε− qH

2k . Le nombre d’étapes au plus d’avoir le message est:

t +TGqG +THr qHr +THqH +TDec (qG +qHr ) = t + (TG +TDec )qG + (THr +TDec )qHr +THqH.

TO, où O ∈ {G,Hr ,H}, est défini comme nombre d’étapes pour l’oracle aléatoire de donner

la réponse à chaque requête. TDec est le nombre d’étapes pour déchiffrer c à partir des

requêtes sur G et H.

Dans ce qui suit, nous allons montrer que notre conversion est IND-CCA2.

Théorème 4.3.2 . Soit A un adversaire(Machine de Turing) contre la sécurité sémantique

(IND) de notre conversion dans un scénario CCA2 avec une complexité au plus t étapes,

68

Page 79: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

avec un avantage égal à ε après au plus qO appels à l’oracle O ∈ {G,H,Hr } et au plus qD à

l’oracle de déchiffrement D. Alors, il existe un algorithme B contre le schéma de McEliece

original capable de fournir le message clair de n’importe quel chiffré c avec un avantage

ε′ ≥ ε− qH

2k − qD(n

t ) .

Proof:

Selon la sécurité sémantique face à l’attaque à chiffré choisi, on peut répéter ce scénario

en utilisant un oracle de déchiffrement. Ici l’oracle de déchiffrement accepte un chiffré

supposé et retourne le texte clair correspondant ou rejette le soit disant chiffré.

En utilisant le lemme 4.3.1, pour chaque appel à l’oracle O ∈ {G,Hr ,H}, B l’intercepte

comme (q,Oq ). L’oracle de déchiffrement peut réussir au plus après qD requêtes et re-

tourne un message clair (m1||m2) correspondant aux requêtes (r1,Gr1 ) , (r2,Hr2 ) et (y1,Hy1 )

et B calcule y1 = Gr1⊕(m1||Hr2 ), Len(y1) ≥ Len(y4); B révèle le message (y4) qui correspond

au chiffré c2 := c.

Ici, avec l’oracle de déchiffrement, seulement les chiffrés corrects différents du challenge

seront décryptés. Le fait d’avoir un chiffré correct avant la requête r1 à G et r2 à Hr

est défini par la probabilité 1(n

t ) , alors après qD requêtes Pr (AskD) ≤ qD(n

t ) . En se basant

sur le lemme 4.3.1, dans le scénario de chiffré choisi, B gagne le jeu avec la probabilité

ε′ ≥ ε− qH

2k − qD(n

t ) .

Le nombre d’étapes est au plus t +TDqD +TGqG +THr qHr +THqH +TDec (qG + qHr ) = t +(TG +TDec )qG + (THr +TDec )qHr +TDqD +THqH.

TO, où O ∈ {G,Hr ,H,D}, est défini comme nombre d’étapes pour l’oracle aléatoire de don-

ner la réponse pour chaque requête. TDec est le nombre d’étapes pour déchiffrer c à partir

des requêtes sur G et H.

4.4 Conclusion

Dans ce chapitre nous avons analysé la vulnérabilité des cryptosystèmes de McEliece,

Niederreiter, et HyMES face à plusieurs attaques critiques. Tous les schémas ont mon-

tré des faiblesses face à la pluspart de ces attaques, HyMES contre toutes les attaques

sauf l’attaque de messages reliés. Ce résultat montre l’importance des conversions pour

ces cryptosytèmes qui protègent contre les attaques critiques. S’il faut choisir une con-

version appropriée, il est important de considérer toutes les attaques critiques ci-dessus,

puisqu’il existe des conversions qui ne protègent que certaines d’entres elles comme par

exemple le bien connu "Optimal Asymmetric Encryption Padding (OAEP)" par Bellare et

Rogaway [14] qui ne protège pas contre l’attaque par réaction. Des conversions spéci-

fiques pour McEliece ont été proposées dans [82], et pour le cryptosysteme Niederreiter

dans [114].

69

Page 80: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 4. LES ATTAQUES CRITIQUES EN CRYPTOGRAPHIE BASÉE SUR LES CODES

En fin, nous avons proposé ici une nouvelle version de conversion spécifique aux

schémas basés sur les codes qui permet d’obtenir une plus petite redondance des don-

nées.

70

Page 81: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 5

Implémentations Efficaces de Fonctions

de Hachage et chiffrements par Flux

basés sur les Codes

“ Un programme C est comme une

danse rapide sur une piste de danse

fraîchement cirée, par des personnes

tenant des rasoirs. ”

Waldi Ravens

Sommaire

5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

5.2 Quelques bases cryptographiques . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.1 Primitives cryptographiques . . . . . . . . . . . . . . . . . . . . . . . 74

5.2.2 chiffrements par flux basés sur les PRNG . . . . . . . . . . . . . . . . 75

5.3 Fonction de Hachage basée sur les codes . . . . . . . . . . . . . . . . . . . 75

5.3.1 Choix des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

5.3.2 FSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

5.3.3 SFSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

5.3.4 RFSB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

5.4 Les Générateurs de Nombres Pseudo-aléatoire(PRNG) basés sur les codes 79

5.4.1 Schéma général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.4.2 SYND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

5.4.3 2SC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

5.4.4 XSYND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

71

Page 82: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

5.5 Les Techniques d’optimisation . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.5.1 Nettoiement du code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

5.5.2 Registres classiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.5.3 Registres XMM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

5.5.4 Représentation des données . . . . . . . . . . . . . . . . . . . . . . . 82

5.6 Résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.6.1 Bancs d’essai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

5.6.2 Discussions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Dans cette partie du travail, nous présentons une étude sur les implémentations logi-

cielles de deux familles de primitives cryptographiques basées sur le problème du dé-

codage par syndrome : les fonctions de hachage et de chiffrement par flux. Nous avons

étudié différents algorithmes, à savoir, FSB, SFSB, RFSB, SYND, 2SC et XSYND, et amélioré

leur performance en implémentations logicielles qui sont faites en langage C à l’aide de

registres XMM de Streaming SIMD Extensions (SSE). Nous fournissons une comparaison

équitable des implémentations de ces primitives dans la même plate-forme et donnons

également des liens vers les codes que nous avons développés. Bien que dans certains

cas, nous ne sommes pas parvenus à la vitesse donnée dans le document, nous avons

réussi à battre les résultats des implémentations de référence qui sont disponibles.

Ce travail fait l’objet d’une présentation dans WAIFI2014 et d’une publication [47] dans

Arithmetic of Finite Fields, volume 9061 of Lecture Note on Computer Sciences, pages

187–203. Springer International Publishing, 2015.

72

Page 83: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

5.1 Introduction

Officieusement, une fonction de hachage est définie comme une fonction qui compresse

une entrée de longueur arbitraire dans une chaîne avec une longueur fixe, appelée haché

ou empreinte. Si elle satisfait à des exigences supplémentaires, elle peut être utilisée

comme un puissant outil dans la cryptographie pour sécuriser les infrastructures infor-

matiques telles que la gestion: des connexions Web sécurisées, des clés de cryptage, des

signatures de virus et des logiciels malveillants, des logins et mots de passe, des signa-

tures numériques. Au cours des dernières années, plusieurs fonctions de hachage ont été

proposées, mais malheureusement, la plupart des propositions utilisées dans la pratique

a été trouvée vulnérable. Cela a remis en question la sécurité à long terme des propo-

sitions ultérieures, dont les concepts sont dérivés de ces fonctions de hachage comme

la famille SHA-2. La réaction de l’Institut National américain des Normes et de la Tech-

nologie (NIST) était d’annoncer au public la compétition pour une nouvelle fonction de

hachage SHA-3, pour le développement de nouveaux algorithmes de hachage. Initiale-

ment, le NIST a reçu 64 propositions, mais seulement 5 candidats ont été sélectionnés

pour passer au troisième (et dernier) tour du concours. Une des 64 soumissions est le FSB

une fonction de hachage rapide, introduit d’abord par Augot, Finiasz et Sendrier [9] en

2003 et améliorée par Finiasz, Gaborit, et Sendrier en 2007 dans [56]. Cette fonction de

hachage est encore intacte à ce jour et a une preuve de sécurité, ce qui signifie que sa sécu-

rité est directement réductible aux problèmes NP-complets de la théorie du codage, qui

sont censés être difficiles en moyenne. Cependant, elle souffre de l’inconvénient d’être

peu efficace par rapport aux autres fonctions de hachage. Cette question est la principale

raison de son élimination au second tour de la compétition. Motivés par son inefficacité,

Meziani et al dans [102] ont proposé une autre fonction de hachage basée sur le problème

du décodage par syndrome qui permet d’améliorer la vitesse de FSB à l’aide de la con-

struction éponge. Plus récemment, Bernstein et al. ont proposé une fonction de hachage

encore plus vite dans [30] qui est aussi rapide que 2 des 5 finalistes de SHA-3 avec moins

de 14 cycles pour hacher un octet pour un niveau de sécurité de 128 bits.

A côté des fonctions de hachage, les chiffrements par flux sont une famille très importante

dans les systèmes de chiffrement à clé secrète. Chaque bloc de texte en clair est com-

biné, une à la fois, avec le bloc correspondant d’une séquence pseudo-aléatoire (appelée

keystream) pour produire un bloc de texte chiffré. En règle générale, la combinaison est

effectuée au moyen de l’opération XOR au niveau de chaque bit du message. Les chiffre-

ments par flux doivent être exceptionnellement rapides et exigent des ressources infor-

matiques faibles. Par conséquent, ils sont utilisés dans de nombreuses applications telles

que GSM, UMTS, RFID, Bluetooth et chiffrement en ligne de grandes quantités de don-

nées en général. Les constructions théoriquement sécurisées de PRNG (Pseudo-Random

73

Page 84: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

Number Generator) ont, jusqu’à présent, la plupart du temps été axées à des méthodes

basées sur des hypothèses de la théorie des nombres. Malgré leur simplicité, la plupart

de ces systèmes sont donc peu pratiques pour de nombreuses applications. Il est donc

souhaitable d’avoir les chiffrements de flux efficaces dont leur sécurité repose sur d’autres

hypothèses. La première construction, sur la base du problème de décodage par syn-

drome, a été proposée par Fisher et Stern [59]. Gaborit et al. ont proposé SYND [67] qui

est une variante améliorée du système de Fisher-Stern. Avec 2SC [104], Meziani et al.

ont proposé un chiffrement par flux plus rapide en utilisant la construction éponge. Plus

récemment, Meziani et al. [103] proposé le chiffrement par flux XSYND comme une vari-

ante améliorée du SYND en termes de performance. Leur proposition surpasse toutes les

constructions à base de codes citées précédemment.

contribution : Nous avons mis en œuvre chacune des fonctions de hachage récem-

ment proposées et les chiffrements par flux. Certaines implémentations ont été améliorées

par une certaine optimisation de bas niveau ou un code simple. Nous avons mené des

bancs d’essai sur une plate-forme unique pour la comparaison des performances.

Organisation du chapitre : Nous présentons d’abord les fonctions de hachage (FSB,

SFSB, RFSB) et les chiffrements par flux (SYND, 2SC, XSYND) sur lesquels nous avons

travaillés. Ensuite, nous nous concentrons sur le choix des paramètres pour chaque fonc-

tion pour les questions de sécurité et d’efficacité. Compte tenu de ces fonctions et des

paramètres, nous donnons les résultats de nos bancs d’essai. Enfin, nous détaillons com-

ment nous avons obtenu ces résultats et optimisations.

5.2 Quelques bases cryptographiques

5.2.1 Primitives cryptographiques

Nous nous concentrons sur deux primitives principales: fonctions de hachage et de chiffre-

ment par flux. La première a l’intention d’assurer une fonction difficile à inverser, qui ne

nécessite pas de clé, et dont la longueur de sortie est fixe. La deuxième a l’intention de

fournir une fonction facile à inverse, protégée par une clé et dont la sortie est de longueur

variable.

Une fonction de hachage doit veiller à ce que les opérations suivantes soient difficiles

à effectuer:

• Résistance à la pré-image ( f (?) = y): pour un haché donné, il est difficile de calculer

un message qui donne la même valeur de hachage une fois fourni à la fonction de

hachage;

74

Page 85: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

• résistance à la deuxième de pré-image ( f (?) = f (x)): pour un message donné, il est

difficile de trouver un autre qui a le même haché;

• résistance aux collisions ( f (?) = f (?)): Il est difficile de trouver deux messages dif-

férents qui donnent le même haché.

5.2.2 chiffrements par flux basés sur les PRNG

La plupart des dernières définitions de chiffrement par flux ont l’approche suivante: le

message d’entrée (texte brut) est divisé en blocs et rembourré comme expliqué dans le

paragraphe précédent. Le cryptage se fait par une opération très simple, comme un XOR

bit à bit. La sécurité est basée sur l’une des opérandes, qui est donnée par la keystream

précédent comme une clé de session (des chaînes de bits).

Figure 5.1 – Schéma de chiffrement par flux

Dans la Figure 5.1, chaque bloc de message est additionné à un seul flux de clés. Un

keystream est un bloc qui prend une clé de chiffrement et émet une séquence détermin-

iste de nombres qui ne sont pas prévisibles sans la clé. En fait, le flux de clés est produit

par un Générateur pseudo aléatoire (PRNG) qui est initialisé avec une graine qui dépend

de la clé secrète.

5.3 Fonction de Hachage basée sur les codes

5.3.1 Choix des paramètres

Nous aurons à choisir des paramètres pour les fonctions de sorte à augmenter la vitesse

et la sécurité des algorithmes. La vitesse est généralement calculée en cycles par byte, le

nombre moyen de cycles pendant lequel le processeur exécute l’algorithme pour traiter

un octet d’entrée (fonction de hachage) ou pour délivrer en sortie un byte de pseudo-aléa

(PRNG). La sécurité est donnée comme le logarithme du nombre d’opérations nops pour

qu’un attaquant puisse rompre le secret: sec = log2(nops). Un système est actuellement

considéré comme sûr si la sécurité est au-dessus de 128.

75

Page 86: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

Ainsi, nous avons besoin de connaître le nombre minimum d’opérations nécessaires

pour inverser les fonctions. Afin de l’estimer, nous étudions d’abord quelques attaques

bien connues contre SD. Ici, les meilleures attaques sont: le décodage par ensemble d’information

(ISD), l’attaque des anniversaires généralisées (GBA), et l’attaque par linéarisation. En-

suite, pour chaque point de la sécurité (résistance à la pré-image, résistance à la seconde

pré-image, et la résistance à la collision), nous réduisons l’attaque à une instance SD pour

déduire ainsi le nombre d’opérations nécessaires pour le briser. Nous gardons enfin le

plus petit nombre comme un plafond pour la sécurité.

5.3.2 FSB

FSB [9] (Fast Syndrome Based hash function), parmi les fonctions de hachage rapide

basées sur le SD, il était le premier à être proposé en 2003 comme remplacement du

SB [61] (Syndrome Based hash function). Il combine quelques bits de l’état interne et

quelques bits du bloc de message courant pour calculer des indices (en base 10). Les w

indices sont calculés et chacun fait référence à un numéro de colonne d’une matrice (de

parité) . La somme directe des colonnes sélectionnées donne la sortie de la fonction de

compression.

Figure 5.2 – Fonction de mise à jour de FSB

La figure 5.2 représente la fonction de compression (de mise à jour) de FSB basée sur

le modèle de Merkle-Damgård (voir 3.3.2) et un calcul de syndrome.

Voici un résumé des paramètres utilisés par FSB:

76

Page 87: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

n nombre de colonnes disponibles

w nombre de colonnes à ajouter dans chaque tour

s la taille en bit de l’état interne

r la partie à ne pas modifier de l’état r < s

p la taille des vecteurs à permuter

FSB a été un candidat à la compétition SHA-3 [56] mais éliminé au deuxième tour, à

cause de sa lenteur par rapport aux autres candidats. Les paramètres donnés pour cette

version sont:

Longueur du hache n w r p s

160 20×216 80 640 653 1120

224 28×216 112 896 907 1568

256 32×216 128 1024 1061 1792

384 23×216 184 1472 1483 2392

512 31×216 248 1984 1987 3224

5.3.3 SFSB

SFSB [102] (Sponge for Fast Syndrome Based hash function) était proposé en 2011 et avait

pour but d’augmenter la vitesse de FSB en "fusionnant"(fonction Éponge) l’état interne

et le bloc de message au lieu de faire une concaténation. La fonction éponge utilisée, à

cet effet, a permis de simplifier le calcul des index.

Figure 5.3 – Fonction de mise à jour de SFSB

La figure 5.3 représente la fonction de compression de SFSB basée sur le modèle éponge

(voir 3.3.2).

Voici un résumé des paramètres utilisés par SFSB:

77

Page 88: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

n nombre de colonnes disponibles

w nombre de colonnes à ajouter dans chaque tour

s la taille en bit de l’état interne

c la capacité éponge

p la taille des vecteurs à permuter

Les spécifications de SFSB donnent l’ensemble des paramètres suivants:

Hash length n s w c Nxor GBAp ISDp GBAc ISBc

160 12×217 384 24 240 64.0 130 99 86 91

224 17×217 544 34 336 88.9 150 144 114 112

256 39×217 624 39 296 90.5 246 172 129 148

GBAp et ISDp signifient la complexité de l’attaque par pré-image utilisant GBA ou bien

ISD tandis que GBAc et ISDc sont pour l’attaque par collision.

5.3.4 RFSB

RFSB [30] (Really Fast Syndrome Based hash function) était proposé en Africacrypt 2011

et change légèrement la manière dont les matrices quasi-cycliques sont manipulées. Une

permutation circulaire est faite durant la sommation des vecteurs colonnes en fonction

de leur position. RFSB sélectionne les colonnes à sommer d’une manière simple, qui al-

lège fortement les calculs en utilisant une représentation polynomiale des vecteurs. cette

approche permet de simplifier l’implémentation autant que possible.

Figure 5.4 – Fonction de mise à jour de RFSB

La Figure 5.4 représente la fonction de compression de RFSB basée sur le modèle de

Merkle-Damgård (voir 3.3.2) , un calcul de syndrome et permutation des colonnes.

Voici un résumé des paramètres utilisés par RFSB:

78

Page 89: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

r la taille en bit de l’état interne

b les bits lus dans chaque étape

w nombre d’étape pour chaque bloc

Les spécifications de RFSB prennent seulement en compte un ensemble de paramètres

en sorte d’utiliser les registres matériels pour un meilleur niveau de performance.

r b w

509 8 112

5.4 Les Générateurs de Nombres Pseudo-aléatoire(PRNG)

basés sur les codes

5.4.1 Schéma général

Comme les fonctions de hachage dans le modèle Merkle-Damgård, les PRNGs que nous

étudions ont la même structure générale. Pour chaque bloc, l’état est mis à jour et la

sortie est faite sur cet état. Généralement la somme directe est utilisée pour chiffrer les

messages dans le cas du chiffrement par flux(One-Time PAD).

Figure 5.5 – schéma des PRNGs

La Figure 5.5 représente le PRNG basé sur la fonction de mise à jour (d’expansion) du

modèle Merkle-Damgård (voir Figure 3.3).

Un PRNG est en général défini par une fonction de mise à jour, une fonction de sortie

et une fonction d’initialisation.

5.4.2 SYND

SYND [67] était publié en 2007 comme un PRNG basé sur les codes. La fonction de mise

à jour (update) et celle de sortie (Output) marchent de la même manière que dans FSB.

Pour une matrice F donnée: on définit f , une fonction capable de calculer un nouveau

état ou bien qui sort le dernier état.

SYND utilise deux fonctions, f1 et f2 définies par les matrices F1 et F2. Les deux fonc-

tions sont aussi utilisées dans la fonction initialisation à travers un schéma de Feistel.

La Figure 5.6 représente le SYND basé sur le schéma des PRNGs (voir Figure 5.5) et la

fonction update de FSB (voir Figure 5.2).

79

Page 90: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

Figure 5.6 – schéma de SYND

La description des paramètres:

k longueur de la clé

n nombre de colonnes de la matrice

r nombre de lignes de la matrice

n k r

8192 64 128

8192 96 192

8192 128 256

8192 192 384

8192 256 512

8192 512 1024

5.4.3 2SC

En 2011, 2SC [104] (Sponge for Code-based Stream Cipher) proposa l’utilisation de la con-

struction éponge sur SYND. La fonction de mise à jour fonctionne de la même manière

comme dans SYND (la fonction h1 définie par une matrice H1), mais la sortie est calculée

en tronquant l’état interne.

Figure 5.7 – Schéma de 2SC

La Figure 5.7 représente le schéma de 2SC basé sur SYND (voir Figure 5.6) en tron-

quant l’état interne pour les sorties.

Description des paramètres:

n nombre de colonnes de la matrice

s la taille en bit de l’état interne

c la capacité éponge

w nombre de colonnes à sommer

n s w c

1572864 384 24 240

2228224 544 34 336

3801088 928 58 576

80

Page 91: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

5.4.4 XSYND

XSYND [103] a été publié en 2012. Il utilise le schéma de RFSB dans une structure de

PRNG. Contrairement aux SYND, Les fonctions sont décrites comme elles le sont pour

RFSB:

Figure 5.8 – schéma XSYND: style FSB

La figure 5.8 représente la fonction de style FSB utilisée pour le schéma de XSYND.

Paramètres:

k taille des clés

n nombre de colonnes de la matrice

r la taille en bit des vecteurs à XORé

w nombre de colonnes à sommer

n r w k

8192 256 32 128

12288 384 48 192

16384 512 64 256

20480 640 80 320

24576 768 96 384

28672 896 112 448

5.5 Les Techniques d’optimisation

Ici, nous décrivons les optimisations que nous avons utilisées pour améliorer la vitesse

des fonctions de hachage et de chiffrement à flot. Pour une meilleure compréhension du

code, une version ’brute’ contient la version la plus simple de nos implémentations. Nous

fournissons également les valeurs intermédiaires de ces fonctions.

5.5.1 Nettoiement du code

Bien que nous avons écrit notre code à partir de zéro, nous nous sommes référés à la

mise en œuvre de référence pour une meilleure compréhension du papier et homonymie.

81

Page 92: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

Dans la plupart des cas, le code était plus qu’une traduction de la description théorique

qu’une description de la façon dont l’ordinateur doit fonctionner à un bas niveau. Ainsi,

nous avons évité (presque) toutes les opérations inutiles et déplacé le choix sur des paramètres

préprocesseur. Cela a été une amélioration notable.

5.5.2 Registres classiques

La première étape dans l’optimisation réelle était de profiter de tous les registres disponibles

sur le processeur. Nous avons changé le code de sorte qu’on manipule des variables de

8, 32 ou 64 bits(quitte à faire un padding pour l’alignement) en fonction des options de

compilation. Dans certains cas, il a accéléré les fonctions d’un facteur supérieur à 2.

5.5.3 Registres XMM

Les extensions de XMM introduit huit nouveaux registres de données de 128 bits et SSE2,

et rendent leur utilisation très facile. SSE2 est désormais présent sur presque tous les

processeurs, permettant un usage large public . Tous les registres utilisent des paquets

qui contiennent des nombres flottants et entiers, et supportent plusieurs instructions. En

outre, les processeurs 64 bits fournissent huit registres de plus. Ces seize registres sont

nommés XMM0 à XMM15.

Généralement en utilisant la programmation de bas niveau (ASM), les processeurs SSE

convertissent les données en un vecteur ou unité SIMD (Single Instruction Multiple don-

nées) et font les calculs en parallèle. L’approche, ici, est similaire au circuit intégré tel que

FPGA:

1. Charger seize points de données à la fois dans les registres SIMD

2. Effectuer une seule opération en même temps sur tous les points de données

3. Mettre les données en mémoire.

Ainsi, le principe de vectorisation nous permet d’accélérer les programmes.

Nous avons d’abord adapté nos implémentations à utiliser les huit premiers registres,

mais pour certains paramètres, l’état de FSB a une longueur qui ne rentre pas dans les 8

registres et RFSB a besoin d’un neuvième registre temporaire. Dans ces cas, nous avons

dû utiliser la mémoire pour combler le manque de registres.

5.5.4 Représentation des données

Pour des raisons de comparaison nous faisons les implémentations avec les mêmes paramètres

que les articles originaux (cf. section 5.3) et faisons tourner toutes les implémentations

82

Page 93: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

de référence sur la même plate-forme: AMD Phenom II X2 550 processor (64 bits) - Debian

GNU/Linux (3.2.0-2-amd64) wheezy/sid comme système d’exploitation.

Le byte est utilisé comme unité d’information dans toutes les implémentations à cause

des registres XMM, et l’allocation de la mémoire y est faite d’une manière contiguë.

Comme notre stratégie est d’utiliser SSE, nous avons jugé nécessaire d’adapter le stock-

age de données en mémoire pour exploiter les registres XMM en profitant du parallélisme.

Donc, pour les systèmes basés sur une représentation matricielle (FSB, SFSB), nous choi-

sissons de faire une division par sous-matrices afin de rendre facile la sélection d’une

seule colonne dans chaque sous-matrice au cours du processus. Pour ceux qui sont basés

sur les anneaux de polynômes (XSYND, RFSB), nous utilisons la représentation polyno-

miale (vecteur).

Pour 2SC et SYND nous utilisons deux matrices (de parité) pour représenter les deux ap-

plications linéaires utilisées.

5.6 Résultats

5.6.1 Bancs d’essai

Les Bancs d’essai qui suivent ont été lancés à partir d’un fichier de 100MiB généré à par-

tir de /dev/urandom sur Debian GNU/Linux (3.2.0-2-amd64) wheezy/sid installé dans un

AMD Phenom II X2 550 processor (64 bits). Le temps d’exécution est mesuré en utilisant

l’utilitaire Unix, time.

Les tableaux ci-dessous donnent les informations sur la vitesse des fonctions implé-

mentées. Les trois premières colonnes donnent la vitesse (nombre de cycles processeur

requis pour traiter un byte) respectivement celle donnée dans l’article de référence, celle

que nous avons obtenue avec l’implémentation de référence(si possible), et enfin celle

que nous avons obtenue avec notre implémentation. Le niveau de sécurité est donné par

son équivalent en terme de longueur (en bits) du facteur travail (log2(WF)).

La formule du cpb est: le temps d’exécution multiplié par la fréquence du processeur

(Hz), le tout divisé par la taille du fichier test (bytes).

Nous avons trouvé les implémentations de référence de FSB 1, SFSB et 2SC 2 et pour

RFSB 3.

1https://www.rocq.inria.fr/secret/CBCrypto/index.php?pg=fsb2http://www.cayrel.net/research/code-based-cryptography/code-based-cryptosystems/article/implementation-

of-code-based-hash3http://bench.cr.yp.to/supercop.html

83

Page 94: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

Function speed in speed in speed in ratio ratio Security

cpb (art.) cpb (ref.) cpb (our) our / art. our / ref.

FSB-160 257 395.12 110.21 0.43 0.28 100

FSB-224 297 482.51 131.50 0.44 0.27 135

FSB-256 324 528.39 137.41 0.42 0.26 153

FSB-384 423 652.20 203.99 0.48 0.31 215

FSB-512 507 820.87 264.33 0.52 0.32 285

SFSB-160 160 286.20 79.82 0.50 0.28 86

SFSB-224 201 422.91 99.92 0.50 0.24 114

SFSB-384 183 604.19 172.65 0.94 0.29 129

RFSB-509 13.62 22.82 17.26 1.27 0.76 142

Figure 5.9 – Performance des fonctions de hachage

Function speed in speed in speed in ratio ratio Security

cpb (art.) cpb (ref.) cpb (our) our / art. our / ref

SYND-64 22 - 23.88 1.09 - 71

SYND-96 46 - 29.91 0.65 - 102

SYND-128 27 108.08 30.27 1.12 0.28 131

SYND-192 47 - 53.80 1.14 - 191

SYND-256 53 280.76 41.50 0.78 0.15 252

SYND-512 83 430.36 149.94 1.81 0.35 493

2SC-144 37 298.97 25.18 0.68 0.08 80

2SC-208 47 387.55 33.22 0.71 0.09 170

2SC-352 72 605.61 80.05 1.11 0.13 366

XSYND-509 - 55.36 15.25 - 0.27 142

Figure 5.10 – Performance des PNRGs et Chiffrement par Flux

84

Page 95: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

5.6.2 Discussions

Comparaison des implémentations

Cette comparaison sur la base de la vitesse d’exécution de l’algorithme, est mesurée par

le rapport entre le nombre de cpb de notre mise en œuvre et ceux de la mise en œuvre de

référence, car les deux sources sont exécutées sur la même plate-forme.

Fonctions de Hachage: Sauf pour RFSB, nous avons réellement amélioré la vitesse de

toutes les fonctions de hachage. La principale explication est que les implémentations

précédentes ne sont pas optimisées. Concernant RFSB, nous ne pouvions pas atteindre

la vitesse annoncée dans le papier [30], mais notre mise en œuvre est plus rapide que la

mise en œuvre de référence lancée sur la même machine. Très probablement, la mise en

œuvre des auteurs de l’article bénéficiait plus d’optimisations spécifiques à la machine et

ou des techniques d’optimisation qui ne sont pas décrits dans le document.

Pour FSB, le meilleur(plus petit) ratio égal à 0.26 est obtenu avec FSB-256 et le pire ratio

égal à 0.32 avec FSB-512.

Pour SFSB, le meilleur(plus petit) ratio égal à 0.24 est obtenu avec SFSB-224 et le pire ratio

égal à 0.29 avec SFSB-384.

Pour RFSB-509, nous avons amélioré l’implémentation de référence avec un ratio de 0.76,

mais nous n’avons pas obtenu une meilleure vitesse que celle présentée dans l’article [30]

(ratio =1.27).

PRNGs : Les résultats sont plus équilibrés. Nous avons encore de meilleurs résultats

que les implémentations de référence, mais nous ne pouvons pas toujours obtenir de

meilleurs résultats que ceux annoncés dans les articles de référence. Dans deux cas (SYND-

512 et 2SC-352), la vitesse est bien pire que pour les autres. Bien que nos implémentations

fonctionnent dans la même plate-forme pour tous les paramètres et on s’attendait à ce

que la progression de la vitesse soit linéaire, la vitesse ne semble pas être régulière pour

tous.

Pour SYND nous obtenons le meilleur ratio qui égal à 0.15 pour SYND-256 et le pire

ratio égal à 0.35 pour SYND-512 .

Pour 2SC nous obtenons le meilleur ratio qui est égal à 0.08 pour 2SC-144 et le pire ratio

est égal à 0.13 pour 2SC-352 .

Pour XSYND-509, nous avons amélioré la mise en œuvre de référence avec un ratio égal à

0,27.

85

Page 96: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 5. IMPLÉMENTATIONS EFFICACES DE FONCTIONS DE HACHAGE ETCHIFFREMENTS PAR FLUX BASÉS SUR LES CODES

Comparaison des fonctions

Fonctions de hachage : La fonction de hachage plus rapide parmi celles-ci est RFSB.

Son niveau de sécurité est entre celui de FSB-224 et de FSB-256. Nous estimons que RFSB

améliore la vitesse d’un facteur de 7. Les résultats de SFSB sont plus équilibrés ici, pour

un niveau de sécurité autour de 100, nous obtenons une amélioration de 10% mais notre

SFSB-384 semble tourné beaucoup plus lente que pour les autres paramètres.

PRNGs : Enfin, pour comparer SYND et 2SC, on remarque que les niveaux de sécu-

rité proposés ne sont pas proches; nous allons voir donc à vitesses proches celle qui a

le niveau de sécurité le plus élevé. Autour de 30 cpb, 2SC offre une bonne amélioration

de la sécurité. En effet, la construction éponge est clairement montrée plus efficace que

le chaînage de Markel-Damgård.

5.7 Conclusion

Nous avons étudié FSB, SFSB, RFSB, SYND, 2SC et XSYND et essayé d’améliorer leurs per-

formances en implémentation logicielle. Bien que dans certains cas nous ne sommes pas

parvenus à la vitesse donnée dans le document, nous avons réussi à battre les résultats

des implémentations de référence disponibles.

Le problème du décodage par syndrome conduit à beaucoup d’idées de fonctions

de hachage et PRNGs. Cependant, il n’est pas toujours facile de comparer la vitesse de

chaque fonction parce que les codes sources ne sont pas toujours disponibles pour être

utilisés sur la même plate-forme ou ils ne sont généralement pas optimisés.

À l’avenir, afin d’améliorer la mise en œuvre de ces Implémentations, il serait intéres-

sant de faire cette étude sur d’autres plate-formes telles que l’architecture ARMv8 ou des

processeurs qui prennent en charge des instructions vectorielles (AVX, AVX2).

86

Page 97: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 6

Un chiffrement par flux et prouvé sûr:

SBS

“ La théorie, c’est quand on sait tout et

que rien ne fonctionne. - La pratique,

c’est quand tout fonctionne et que

personne ne sait pourquoi. - Si la

pratique et la théorie sont réunies, rien

ne fonctionne et on ne sait pas

pourquoi. ”

Albert Einstein

Sommaire

6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

6.2 Les Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

6.3 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

6.4 Le chiffrement par flux SBS . . . . . . . . . . . . . . . . . . . . . . . . . . . 92

6.5 Securité de SBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

6.11 Les meilleures attaques connues contre SBS . . . . . . . . . . . . . . . . . 99

6.13 Résultats Experimentaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6.14 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Nous proposons un nouveau chiffrement par flux synchrone, appelé SBS, basé sur

l’itération d’un ensemble de fonctions de Niederreiter. Notre proposition est caractérisée

par une haute performance logicielle. Sa vitesse est comparable au chiffrement AES en

mode compteur. Il fonctionne à 7.8 cycles par byte. Nous avons réalisé une analyse dé-

taillée de la sécurité, en particulier, nous prouvons que la sécurité de SBS est réductible au

87

Page 98: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

problème du décodage par syndrome. Plus précisément, nous montrons que la distinc-

tion des clés générées par SBS est aussi dure que la résolution d’une instance du problème

de décodage régulier par syndrome.

Ce travail fait l’objet d’une présentation dans "International Conference on Coding and

Cryptography", USTHB, Alger, 2-5 Novembre 2015.

88

Page 99: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

6.1 Introduction

Grosso modo, un chiffrement par flux (ou encore générateur pseudo-aléatoire) est un al-

gorithme à clé symétrique qui peut être considéré comme une "boîte noire" qui produit

une séquence de bits qui apparaît pseudo-aléatoire en utilisant une clé secrète (et un

vecteur publique, appelé un nonce). Le terme "pseudo-aléatoire" signifie que la séquence

générée est mathématiquement impossible à distinguer d’une séquence véritablement

aléatoire.

Un certain nombre de chiffrements par flux efficaces a été proposé dans la littérature,

plusieurs d’entre eux se sont avérés non sûrs comme indiqué lors du projet eSTREAM 1.

Par conséquent, le principal défi est de concevoir un chiffrement par flux qui a des im-

plémentations très rapides en logiciel et matériel et qui a une sécurité prouvée, en ce

sens que la récupération de la clé secrète ou la production d’un flux de clé valide est ré-

ductible à un problème difficile au sens de la cryptographie. Comme toujours, les pre-

mières propositions en ce sens ont été basées sur la dureté de problèmes bien connus

provenant de la théorie des nombres (par exemple la factorisation [1], le logarithme

discret [84], RSA [1]). Cependant, ce genre de système implique des opérations com-

plexes sur les grands entiers et est vulnérable aux attaques quantiques comme démontré

dans [127].

Les schémas cryptographiques basés sur les codes correcteurs d’erreurs sont parmi

les candidats les plus prometteurs de la cryptographie post-quantique [26, 51, 25]. Leur

sécurité repose sur le problème, en moyenne difficile, à décoder les codes aléatoires génériques.

En outre, ils bénéficient de fonctionnalités très intéressantes. Ils sont très rapides, car ils

utilisent la plupart des opérations très simples tels que les Shifts et les XORs permettant

de faire des implémentations efficientes en matériel et logiciel.

Dans la cryptographie basée sur les codes, Fischer et Stern [60] ont d’abord eu l’idée

de concevoir un générateur pseudo-aléatoire, dont la sécurité est avérée reposer sur la

dureté du problème de décodage par syndrome [21]. Cependant, leur construction était

inefficace parce qu’il a besoin d’énormes exigences de calcul et de mémoire. Le chiffre-

ment de flux SYND, proposé par Gaborit et al. [64], surpasse la proposition de Fischer-

Stern en termes d’espace de stockage et de performance. Il utilise des codes aléatoires

quasi-cycliques(QC) permettant une diminution de la capacité de stockage et introduit

l’encodage régulier pour accélérer le flux de génération de clé. Leur proposition est basée

sur la difficulté à décoder les codes aléatoires QC [65, 20]. Récemment, un nouveau de-

sign, appelé 2SC, fait par Meziani et al. [101] est proposé sur la base du même problème.

1http://www.ecrytp.eu.org/stream

89

Page 100: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

Il tourne plus vite que la construction précédente, mais a besoin de beaucoup d’espace

de stockage.

Contribution.

Le présent chapitre propose une mise en œuvre efficace d’un chiffrement par flux prouvé

sûr basé sur les code correcteurs d’erreurs que nous appelons SBS(Syndrome-Based Stream

cipher). Sa sécurité est réductible à la dureté du problème de décodage par syndrome. En

outre, ce schéma est très efficace en termes d’espace de stockage, et surpasse toutes les

constructions prouvées sûres précédentes. Sa performance est comparable à AES dans la

mise en œuvre la plus rapide.

L’organisation du chapitre

La structure de ce chapitre est distribuée comme suit. Dans la section 6.2, nous présen-

tons les concepts qui sont utilisés dans l’ensemble du texte et les objets de base sur la

cryptographie basée sur les codes. Ensuite, nous donnons une brève discussion de SYND

[64] comme des travaux connexes dans la section 6.3. Dans la section 6.4, nous décrivons

en détail notre proposition, puis effectuons une analyse détaillée de la sécurité dans la

section 6.5. Dans la section 6.11, nous abordons les attaques et les contre-mesures fondées

sur le choix des paramètres. La section 6.13 présente les résultats expérimentaux et les

compare à d’autres programmes tels que SYND [64], 2SC [101] ou à l’amélioration de leur

version détaillée dans [47]. La section 6.14 conclut le chapitre.

6.2 Les Préliminaires

Notations

? |x| la longueur en bit de la chaîne x.

? Le poids de Hamming de x est le nombre de coordonnées non-nulles et est noté

wt(x).

? x> est la transposé du vecteur x.

? x‖y (resp. X‖Y ) représente la concaténation des chaînes x et y (resp. des matrices

X et Y)

? x ⊕ y représente la somme directe de deux vecteurs x et y , qui ont la même taille.

90

Page 101: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

? Pour un ensemble fini S, on note par x$←− S l’événement de choisir uniformément

aléatoire un élément x de S.

? Nous écrivons M`,η pour indiquer l’ensemble de toutes les matrices binaires aléa-

toires de taille `×η.

? Nous notons par [N] l’ensemble {0, · · · ,N−1}.

? Si x est une chaine de bit, alors Int(x) représente l’entier correspondant à x en

format.

? Nous écrivons Wη,ω pour l’ensemble des vecteurs binaires de longueur η de poidsω.

? Pour deux chaines binaires a et b ayant la même longueur, la valeur binaire ⟨a,b⟩ =∑i ai bi mod 2 définit leur produit scalaire modulo 2.

6.3 Etat de l’art

Le chiffrement par flux SYND Comme mentioné dans l’introduction du chapitre, Ga-

borit et al. [64] ont proposé une amélioration du générateur pseudo-aléatoire de Fisher-

Stern [60] en apportant deux modifications majeures: l’introduction des codes aléatoires

quasi-cycliques a considérablement permis de diminuer l’espace de stockage requis, et

l’utilisation des mots réguliers au lieu des mots classiques a significativement amélioré les

performances du système. Dans la suite, nous décrivons les éléments de base du schéma

de chiffrement par flux SYND sans trop entrer dans les détails.

Soit η, ω, et ` trois entiers positifs tels que le rapport ηω est une puissance de deux et

` = ω log2( ηω ). SYND fonctionne essentiellement en 2 étapes: phase d’initialisation et la

phase de génération de clés. Les deux utilisent les deux fonctions f1 et f2 de F`2 → F`2 qui

sont définies par

f1(x) = A ·θ(x)>; f2(x) = B ·θ(x)>, ∀x ∈ F`2 ,

où A et B sont des matrices binaires aléatoires décrivant chacune une code binaire quasi-

cyclique (QC) de longueur η, qui corrige jusqu’à ω erreurs et x 7→ θ(x) est une fonction

d’encodage qui transforme une chaîne de ` bits en mot régulier. On omet ici comment

marche cette fonction, on renvoie le lecteur à [8, 7].

En outre, nous décrivons seulement la phase de génération de clés sans expliquer

comment les états initiaux internes sont générés. Compte tenu de l’état initial e0 généré

en utilisant une clé secrète k et une valeur initiale IV, le flux de clés formé par un certain

91

Page 102: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

nombre de blocs zi est produit comme suit: appliquer f1 sur l’état actuel ei pour obtenir

le prochain état ei+1 = f1(ei ) (mise à jour de l’état actuel), puis calculer le bloc de sortie

zi par zi = f2(ei ). Comme indiqué dans [64], ce processus peut être modélisé en utilisant

une fonction f , ce qui est une concaténation de f1 avec f2, soit f (x) = f1(x)‖ f2(x), pour

x ∈ F`2 .

Comme nous pouvons le voir, afin de produire un bloc de sortie, la fonction f2 doit

d’abord attendre l’évaluation de f1 à chaque tour. Cela empêche à l’ensemble du pro-

cessus d’être pleinement parallélisable. Notre principale motivation dans ce travail est

de savoir comment concevoir un chiffrement de flux à base de SYND qui peut être com-

plètement mis en œuvre de manière parallèle. Il aura donc de meilleures fonctionnalités

de calcul, et sera doté de preuve de sécurité. Nous notons que les auteurs de SYND n’ont

pas donné de détail à propos de la réduction de sécurité de leur proposition, mais ils affir-

ment que la réduction de la sécurité peut être déduite du chiffrement par flux QUAD [18]

et le PRNG de Fischer-Stern [60].

6.4 Le chiffrement par flux SBS

Dans cette section, nous fournissons une description détaillée du chiffrement SBS et ses

éléments de base. Les lettres dans son nom se tiennent pour "Syndrome-Based Stream

cipher».

Les blocs de construction de l’algorithme de chiffrement SBS sont deux fonctions injec-

tive ϕ1 et ϕ2 qui acceptent en entrée une chaîne de bits et renvoient une chaîne de bits

de même taille que l’entrée. SBS est un chiffrement de flux synchrone et paramétré par

un ensemble de nombres entiers positifs (η,`,ω) satisfaisant ` = ω log2( ηω ), où ω < ` < η.

Cet ensemble détermine la taille d’un état interne, la longueur des clés et la taille d’un

vecteur initial (IV). Pour des raisons de sécurité, IV est de la même longueur que la clé

secrète, les deux ont b`2 c bits. SBS est composé de deux blocs principaux, Initializer ,

et Generator , les deux utilisent implicitement deux transformations ϕ1 et ϕ2 que nous

allons décrire plus tard.

On considère la fonction d’encodage ε qui transforme une entrée x ∈ F`2 en ε(x) ∈Rη,ω

(Rη,ω l’ensemble des mots de longeur η et de poids ω)tel que

ϕ1(x) = A ·ε(x)>, (6.1)

ϕ2(x) = B ·ε(x)>. (6.2)

Où A et B sont pris aléatoires dans M`,η. En pratique, l’existence de l’algorithme x → ε(x)

92

Page 103: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

a été montré dans [60, 8]. Comme on peut le voir, ϕ1 et ϕ2 sont tous les deux liés au

problème du décodage par syndrome.

Initializer: F : F|K|2 ×F|IV|

2 → F`2 ×F`2 .

Il prend en entrée le Vecteur d’Initialisation (IV) et la clé initiale (K) pour calculer l’état

initial du compteur s0 = (x0, y0), en suivant ces étapes:

α = K‖IV (6.3)

β = α⊕ϕ1(α) (6.4)

γ = α⊕ϕ2(α) (6.5)

s0 = (x0, y0) = F(α) = (β⊕ϕ2(β),γ⊕ϕ1(γ)) (6.6)

Au cours de la phase d’initialisation aucun bit de sortie n’est retourné, seulement

après que s0 soit produit, la génération de clé est autorisée à prendre place.

Generator: G : F`2 ×F`2 → F`2 ×F`2 .

Il prend en argument l’état interne du compteur s0 généré par F, et produit une chaîne de

2` bits (ui , vi ), i ≥ 1 à chaque tour. Le principe de design de ce générateur est représenté

sur la Figure 6.1. Pour produire {si+1}i≥0 à partir de si = (xi , yi ), le générateur G sort (ui , vi )

et met à jour si (ou calcule si+1 = (xi+1, yi+1)) en exécutant ce calcul suivant(en parallèle):

1. xi+1 ←ϕ1(xi ) et yi+1 ←ϕ2(yi )

2. ui ←ϕ1(yi ) et vi ←ϕ2(xi )

Durant ce processus, seulement ui et vi sont retournés comme sortie et sont visibles

à l’utilisateur.

Figure 6.1 – Générateur de SBS

A noter que les fonctions ϕ1 et ϕ2 sont appelées au même moment avec des entrées dif-

férentes, alors l’implémentation de G peut être faite en parallèle sur les CPUs modernes.

Tout le processus de génération de clé peut être décrit avec une seule fonction h qui prend

93

Page 104: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

en entrée une chaîne de 2` bits et étend cela sur une chaîne de 4` bits dans chaque itéra-

tion. Cette fonction est décrite comme suit:

h(x, y) := f(x, y)‖g(x, y) ∈ F4`2 , (6.7)

où (x, y) → f(x, y) := (ϕ1(x),ϕ2(y))) est une fonction de mise à jour, qui actualise l’état

interne (x, y), pendant que (x, y) → g(x, y) := (ϕ1(y),ϕ2(x) est la sortie de la fonction qui

produit une chaîne de 2` bits qui forme le flux de clé obtenu.

Maintenant nous allons décrire comment les transformationsϕ1 etϕ2 dans le chiffre-

ment SBS sont implémentées. Soient A et B deux matrices choisies aléatoirement de

même taille `×η. Soit (x1, · · · , xω) la décomposition de x ∈ F`2 , i.e., en ω chaînes binaires,

chacune d’elles est de longueur log2( ηω ). En notant σ := log2( ηω ), on obtient 2σ valeurs

décimales possibles pour chaque xi , dans l’intervalle [0, 2σ−1]. Puisque η =ω2σ, alors à

chaque valeur décimale de xi correspond une certaine colonne de la matrice A et B. En

combinant toutes les colonnes choisies, on obtient une chaîne de ` bits, qui sera la sortie

de la transformation. Dans SBS nous utilisons la somme directe bit à bit dans la combi-

naison des vecteurs choisis. La Figure 6.2 décrit le fonctionnement de la fonction ϕ1 (or

ϕ2).

Figure 6.2 – structure des transformations utilisées dans SBS

6.5 Securité de SBS

Cette section traite de la sécurité de chiffrement par flot SBS. Avant d’entrer dans les dé-

tails, nous introduisons quelques hypothèses que nous utiliserons pour prouver la sécu-

rité de SBS. Ces hypothèses sont généralement à la base de la sécurité du générateur

pseudo-aléatoire de Fisher-Stern [60].

La première hypothèse (A1), appelée indistinguabilité, est ainsi définie:

"Il est calculatoirement impossible de distinguer deux matrices A et B de celles aléa-

toires uniformes ayant les mêmes dimensions".Nous utilisons la même idée en QUAD

94

Page 105: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

[18] pour la réduction de la sécurité de problème de décodage par syndrome. Cette ré-

duction de la sécurité permet de dire: briser le système SBS signifie briser le problème du

décodage par syndrome qui est N P -complet.

Lemme 6.5.1 Soit L = 2λ` la taille d’une séquence de clé produite en λTS unité de temps en

utilisant λ itérations.

Supposons qu’il existe un algorithme(machine de Turing probabiliste) A qui discerne la

séquence de L bits associée à deux matrices `∗η choisies aléatoirement A et B et un état

interne inconnu x, y de poids au plus 2ω de {0,1}η à partir d’une séquence de L bits en T

unité de temps avec un avantage ε.

Alors, il existe un algorithme B, qui prend en argument l’image H · z> d’un mot régulier

z de poids ω de {0,1}η par une matrice choisie aléatoirement H de taille `×η et permet de

retrouver z en T = T+λTS unité de temps avec un avantage au moins ελ .

Preuve 6.6 on peut voir H · z> =

(H 0

0 H

)(z>

0

)comme une sortie d’état initial (z,0).

Alors on peut voir H ·z> = g (z,0), avec les matrices aléatoires A = B := H et pour chaque tour

0 ≤ i ≤ λ−1, le flux de sortie est g ( f i (z,0)) avec f et g les fonctions définies dans la section

??. Pour le reste nous suivons la preuve de QUAD car le problème ainsi posé est le même de

celui de QUAD[18].�

La deuxième hypothèse (A2), appelée le Décodage par Syndrome, est déclarée comme suit:

"La collection des fonctions {FM}M∈M`,ηdéfinies sur l’ensemble Wη,ω comme FM(x) =

M ·x> est à sens unique".

La troisième hypothèse (A3), appelée le Décodage par Syndrome de mots réguliers, est un

cas particulier de A2 et se définit comme:

"La collection des fonctions {FM}M∈M`,ηdéfinies sur l’ensemble Rη,ω comme FM(x) =

M · x> est à sens unique".

Pour A1 et A3 voir [8]. Maintenant nous avons besoin de ces lemmes.

Lemme 6.6.1 Si l’hypothèse A3 est garantie, alors la fonction ϕ1 (et ϕ2) implémentée dans

SBS est à sens unique.

Preuve 6.7 Pour prouver ce lemme, il suffit de montrer queϕ1 (etϕ2) peut être transformée

en une fonction de la collection définie dans A2. On prend la matrice A $←− M`,η telle que

` =ω ·σ, où ω < ` < η, σ = log2( ηω ), et η =ω2σ. Alors la matrice A peut être partitionnée en

ω sous matrice de 2σ colonnes et ` lignes, i.e., A = A1| . . . |Aω . Soit (x1, · · · , xω) l’entrée de la

fonctionϕ1, où |xi | =σ. Par conséquent, chaque xi peut être associé de manière unique avec

95

Page 106: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

un numéro de colonne di ∈ [2σ], de la sous matrice Ai en utilisant la forment du bit de poids

fort (big-endian). Ces positions de colonne (di )ωi =1 forme un mot régulier z = (z1, · · · , zη) de

longueur η et de poids ω tel que z j = 1 si j = di et z j = 0 sinon. En faisant ceci, on peut

facilement vérifier que ϕ1(x) = A · z>.�

Lemme 6.7.1 Si l’hypothèse A2 est garantie, alors les fonctions f et g sont à sens unique.

Preuve 6.8 Ceci résulte simplement de [70, 136], qui affirment que pour chaque collec-

tion de fonctions à sens unique F = { fk }k∈S , où S est un ensemble fini, la collection Fn =

{ fi1,··· ,in }i1,··· ,in∈Sn , dont les éléments sont définis comme fi1,··· ,in (x1, · · · , xn) = ( fi1 (x1), · · · , fin (xn))

est aussi à sens unique. En outre, cela est vrai même en ayant une seule application (i.e.,

quand i1 = · · · = in). Dans notre contexte, nous avons S = {1,2}.�

Afin de prouver que SBS est un générateur pseudo-aléatoire, nous prouvons que la

séquence (ui , vi ) est pseudo-aléatoire, ce qui signifie qu’il est impossible de la distinguer

d’une chaîne aléatoire bits 2`. Nous allons le démontrer par induction. Pour ce faire nous

avons besoin de la définition suivante:

Soit Fune fonction à sens unique. Un prédicat inconditionnel (hardcore bit) b : {0,1}∗ →{0,1} pour F est une fonction calculatoire en temps polynomial telle que si pour tout ad-

versaire PPT A il existe une fonction négligeable ε, telle que

Pr[A (F(x)) = b(x)] ≤ 1

2+ε(n), ∀n

Où x est choisie au hasard. Goldreich et Levin ont prouvé le théorème suivant, qui peut

être officieusement déclaré comme suit: pour toute fonction à sens unique, le produit

scalaire de son argument avec une chaîne de bits choisie au hasard est un prédicat incon-

ditionnel.

Théorème 6.8.1 (Goldreich-Levin theorem) Soit F : {0,1}∗ → {0,1}∗ une fonction à sens

unique. Pour tout algorithme PPT A , pour tout polynôme p et pour tout entier n fini,

Pr[A (F(x),ν) = ⟨x,ν⟩] ≤ 1

2+ 1

p(n)

où la probabilité est exprimée sur x. les deux aléas x et ν sont uniformément choisis.

Théorème 6.8.2 Soient R et L deux fonctions définies sur F`2 par

R =ϕ1(x)‖ϕ2(x) et L(y) =ϕ2(y)‖ϕ1(y)

Relatif à R et L, nous définissons 2 générateurs de chaînes de 2` bits GR et GL représentés sur

la Figure 6.3 et Figure 6.4, respectivement. La fonction ϕ1 (resp. ϕ2) est la fonction de mise

à jour (resp. de sortie) de GR contrairement à GL. Si les hypothèses A1 et A3 sont vérifiées,

alors GR et GL sont des générateurs pseudo-aléatoires.

96

Page 107: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

Figure 6.3 – Illustration de G1 Figure 6.4 – Illustration de G2

Preuve 6.9 Il suffit de prouver cette affirmation pour GR, car ils sont semblables. La preuve

est une adaptation de celle donnée dans [60]. Noter que R et L sont des fonctions d’expansion

de Facteur 2.

Le lemme 6.6.1 montre que la fonction ϕ1 (resp. ϕ2) peut être réécrite comme ϕ1(x) = A · z>

(resp. ϕ2(x) = B · z>), où z est un mot régulier qui correspond à l’entrée x. Alors, si l’on

empile verticalement A et B, on obtient une nouvelle matrice M de taille 2`×η donnée par

M =

(AB

)

Cette nouvelle matrice satisfait à l’hypothèse A1. On peut alors écrire R(x) = M · z>.

Donc, il suffit de prouver que la sortie de M · z> est pseudo-aléatoire. Maintenant, nous

allons montrer par contradiction que la sortie de R est pseudo-aléatoire. Supposons le con-

traire. Alors il existe un distingueur Ψ qui peut faire la différence entre cette sortie et une

séquence aléatoire u de 2` bits. Ce distingueur prend en entrée un matrice binaire de taille

2`×η: M et un aléa u ∈ {0,1}2` en tant que candidat étant égal à M ·z> pour un certain mot

régulier z. Si M · z> = u, Ψ retourne 1 avec une probabilité supérieure à 12 + 1

p(η) , pour tout

polynôme p(n). Sinon, lorsque u est choisie de manière uniforme dans {0,1}2`, Ψ retourne

1 avec une probabilité au plus 12 . Plus précisément, le comportement de Ψ est le suivant:Pr[Ψ(M,u) = 1] ≥ 1

2 + 1p(η) , si u = M · z>, pour un certain mot régulier z

Pr[Ψ(M,u) = 1] < 12 , si u est choisie de manière uniforme dans {0,1}2`

Notre prochaine étape est de construire un algorithmeΘ qui appelleΨ comme une sous-

routine, afin de prédire le produit scalaire d’un mot inconnu régulier z et un aléa choisi v de

η bits (i.e., ⟨z, v⟩) avec une probabilité 12 + 1

2p(η) . Pour ce faire, nous écrivons v = (v1, · · · , vη)

et définissons π comme le nombre de positions j telles que z j = v j = 1, i.e. la taille de de

l’intersection des supports de z et v. Soit ε la parité cette taille, i.e. qu produit scalaire ⟨z, v⟩.Ce faisant, sur les entrées M · z> et v, l’algorithmeΘ va effectuer les opérations suivantes:

• Choisir un aléa ε′ ∈ {0,1} comme candidat de ε

• Choisir aléatoirement δ ∈ {0,1}2`

97

Page 108: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

• Construire une nouvelle matrice M = (a1, · · · , aη) de taille 2`×η telle que pour tout

j ∈ {1, · · · ,η} on a

a j =

a j +δ si v j = 1,

a j si v j = 0

où (a1, · · · , aη) est la décomposition de M, cela signifie que M = M+δ> · v

• Alimenter le distingueur Ψ avec M et M · z> = M · z>+ε′ ·δ>

• Si Ψ retourne 1, alors on retourne ε′. Dans le cas contraire, retourne l’opposé de ε′.

Montrons queΘprédit le produit scalaire ⟨z, v⟩ avec une probabilité supérieure 12+ 1

2p(η) .

Il y a deux cas distincts à traiter:

(1) C1:= {ε correctement deviné}. Alors la valeur prédite pour ⟨z, v⟩ est correcte si le

distingueur sort 1. Mais la distribution vue par le distingueur sur (M,M · z>+ ε′ ·δ>)

est similaire à la distribution sur l’entrée (M,M·z>). Par construction, cela se produit

avec une probabilité d’au moins 12 + 1

p(η) .

(2) C2:= {ε incorrectement deviné }. Le distingueur reçoit d’une manière uniformé-

ment distribuée les entrées en raison du caractère aléatoire δ et donc sort 1 avec une

probabilité 12 .

Vu que Pr[C1] = Pr[C2] = 12 , nous pouvons clairement conclure que l’ensemble de la prob-

abilité de succès de prédiction du produit ⟨z, v⟩ est au moins 12 + 1

2p(η) . Cela conduit à une

contradiction avec le Goldreich-Levin Theorem [71] due à l’hypothèse A3. En conséquence,

la fonction R (et aussi L) est pseudo-aléatoire.�

Maintenant, nous sommes prêts à présenter le résultat principal concernant l’aspect pseudo-

aléatoire du chiffrement par flux SBS. La preuve en est inductive sur le nombre d’itération

et implique 6.8.2.

Théorème 6.9.1 Soit (x0, y0) un état initial du compteur interne de SBS. Si nous choisis-

sons les paramètres (η,`,ω) tels que A1 et A3 soient vérifiées, alors SBS est un générateur

pseudo-aléatoire.

Preuve 6.10 À cette fin, nous allons montrer par récurrence que les suites ui et vi sont

pseudo-aléatoires.

98

Page 109: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

• Pour i = 1. D’après le théorème 6.8.2 nous concluons que R(x0) = ϕ1(x0)‖ϕ2(x0) et

L(y0) = ϕ2(y0)‖ϕ1(y0) sont deux séquences de chaînes de 2` bits pseudo-aléatoires.

Cela implique également que u0 = ϕ1(y0) et v0 = ϕ2(x0) sont pseudo-aléatoires. Le

même argument se tient sur x1 =ϕ1(x0) et y1 =ϕ2(y0).

• Supposons que u j et v j (et aussi x j et y j ) sont pseudo-aléatoires pour un certain

entier positif j . on montrera que u j+1 et v j+1 sont pseudo-aléatoires. Nous avons la

les relations suivantes:

ui+1 =ϕ1(yi+1), y j+1 =ϕ2(y j )

vi+1 =ϕ2(xi+1), x j+1 =ϕ1(x j )

Par l’hypothèse d’induction, les séquences R(x j ) =ϕ1(x j )‖ϕ2(x j ) et L(y j ) =ϕ2(y j )‖ϕ1(y j )

sont pseudo-aléatoires. Ce qui signifie, ϕ1(x j ) = x j+1 et ϕ2(y j ) = y j+1 sont pseudo-

aléatoires et en appliquant le Théorème 6.8.2 sur ces séquences, on complète l’étape

de récurrence et par conséquent, SBS est un générateur pseudo-aléatoire.

6.11 Les meilleures attaques connues contre SBS

Dans cette section, nous présentons les algorithmes génériques les plus connus pour at-

taquer SBS et vérifier si elles sont applicables. Nous nous concentrons uniquement sur la

dureté de l’inversion des fonctions sous-jacentes ϕ1 et ϕ2 appelées dans l’initialisation et

la procédure de génération de clés car elles constituent les composantes principales de la

conception de SBS. L’inversion de ϕ1 et ϕ2 permet évidemment de recouvrer avec succès

les clés et l’état interne. L’estimation de la complexité d’une attaque Z sur une instance

de SBS avec des paramètres (η,ω,`) sera notée CEZ(η,ω,`). Cette complexité est définie

comme le nombre d’opérations binaires nécessaire pour inverser une des fonctions ϕ1

(ou ϕ2). Dans nos estimations, l’ensemble des paramètres (η,ω,`) est choisi comme suit:

` =ωσ avec σ = log2

( ηω

).

Il y a généralement trois différentes attaques potentielles en théorie des codes: le Dé-

codage par Ensemble d’Information (ISD), les Attaques par Linéarisation(LA) et L’attaque

des anniversaires Généralisée (GBA). Dans cette analyse, nous essayerons de donner une

borne inférieure pour estimer la complexité de chacune de ces attaques.

99

Page 110: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

Décodage par ensemble d’Information(ISD).

C’est un algorithme probabiliste désigné pour décoder n’importe quel code linéaire. Sa

première variante introduite par Prange [121], a été mise à jour et raffinée plusieurs fois

pendant des années, conduisant à sa meilleure variante développée par May et al.[11].

L’idée développée derrière cet algorithme est de trouver un sous-ensemble, appelé en-

semble d’information, de κ positions ne contenant pas d’erreurs parmi les η positions de

chaque mot de code, où κ et η sont respectivement la dimension et la longueur du code.

Pour chaque ensemble choisi, une élimination de Gauss est faite sur la matrice de parité

de taille `×η (les colonnes correspondantes) pour tester la validité de l’ensemble, ce qui

permet d’estimer la complexité CEISD(η,ω,`) de cet algorithme par GE(`)PR(η,`,ω)

. La quantité

GE(`) exprime la complexité de l’élimination de Gauss, pendant que PR(η,`,ω) est la prob-

abilité de trouver un ensemble d’information valide. Dans [8], une borne inférieure de

cette complexité de résoudre une instance de RSDP (le coût d’inversion deϕ1) est présen-

tée et estimée à

CEISD(η,ω,`) ≈ (ωσ)3 ·(

σ

)ω. (6.8)

Attaque par linéarisation(LA).

Ce genre d’attaque appartient à la cryptanalyse linéaire qui est probablement l’outil le

plus puissant disponible pour attaquer les cryptosystèmes. D’une manière basique, une

attaque par linéarisation consiste à construire une expression linéaire qui résout facile-

ment un système non-linéaire avec les techniques de l’algèbre linéaire. Contre SBS on

peut identifier deux algorithmes de linéarisation possibles: celui de Saarinen [125] et

celui de Bellare-Micciancio [12]. La première attaque a été désignée pour attaquer la

famille des fonctions de hachage FSB [8] et consiste brièvement à réduire le problème de

trouver des collisions ou pré-images en solvant un système d’équation linéaire. Si `≤ 2ω,

sa complexité est seulement aux environs de 0.29`3, où 0.29 est une approximation de la

probabilité pour qu’une matrice carrée soit non-singulière.

D’autre part, si ω ≤ λ, pour un certain entier cette complexité devient 2`(λ+1)ω . En partic-

ulier pour λ = 2µ, Berstein et al. [29] ont récemment révisé cette complexité à 2`(µ+1)2ω .

Le second algorithme a pour but d’inverser la fonction appelée XHASH en trouvant une

relation linéaire entre ω colonnes de longueur ` bits. Ceci permet de construire un sys-

tème ayant ω+ ` équations avec 2` inconnues, qui sera facilement résoluble si ω = `+1.

Plus généralement, la complexité d’inverser la fonction mentionnée requiert au moins

2`−ω opérations binaires (c.f. [12, Appendix A, Lemma A.1] pour plus de détails).

100

Page 111: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

Figure 6.5 – GBA pour k = 4.

Attaque des anniversaires généralisée(GBA).

Cette classe d’attaque a pour but de résoudre le problème suivant: étant donné k listes

aléatoires L1,L2, . . . ,Lk indépendantes de chaînes de ` bits sélectionnées uniformément,

trouver x1 ∈ L1, x2 ∈ L2, . . . , xk ∈ Lk tels que ⊕ki =1xi = 0. Pour k = 2, la solution peut être

trouver en 2r2 en utilisant le paradoxe des anniversaires standard. Pour k > 2, l’algorithme

de Wagner [134] et ces variantes étendue [8, 24, 108, 58] peuvent être appliqués. Si k =

2 j−1 et |Li | > 2`j , l’algorithme de Wagner peut trouver au moins une solution avec une

complexité de 2rj .

L’idée principale derrière l’algorithme GBA est présentée à la figure Fig. 6.5. Nous con-

sidérons le cas où k = 4. Soit L1, . . . ,L4 quatre listes, chacune de taille 2`3 . L’algorithme

tourne en deux itérations. Dans la première, on construit deux nouvelles listes L1,2 et L3,4.

La liste L1,2 contient toutes les sommes x1 ⊕ x2 avec x1 ∈ L1 et x2 ∈ L2 telles que les pre-

miers `3 bits de la somme sont des zéro. D’une manière similaire, La liste L3,4 contient

toutes les sommes x3⊕x4 avec x3 ∈ L3 et x4 ∈ L4 telles que les premiers `3 bits de la somme

sont des zéro. Ainsi la taille de L1,2 est égale à 2−`3 · |L1| · |L2| = 2`3 . D’une manière similaire,

la longueur attendue de L3,4 est aussi 2`3 . Dans la seconde itération de l’algorithme, on

construit une nouvelle liste L′1 qui contient toutes les paires (x ′

1, x ′2) ∈ L1,2 ×L3,4 telles que

les dernières 2`3 bits de la somme x ′

1 ⊕ x ′2 sont zéro. Alors la probabilité que x ′

1 ⊕ x ′2 soit

égale à zéro est 2− 2`3 ce qui donne un nombre de candidats égal à 2− 2`

3 · |L1,2| · |L3,4| = 1. Et

on trouve la solution. Cette idée peut être généralisée pour k = 2 j−1 en répétant la même

procédure j −2 fois. Dans chaque itération a, on construit des listes, chacune contenant

2`j éléments qui ont zéro sur leurs premiers a`

j bits, jusqu’à obtenir en moyenne un élé-

ment de ` bits avec toute les positions égales à 0.

Pour les paramètres de sécurité de SBS contre l’attaque GBA, on utilise l’algorithme

de [58]. Cet algorithme essaie de trouver un ensemble d’indices I = {1,2, · · · ,2γ} qui sat-

isfait ⊕i∈IHi = 0, où les Hi sont des colonnes de la matrice H. Comme mentionné [58],

l’algorithme est applicable quand( 2b w

2(1−γ)w

)≥ 2bw+γ(γ−1). Sous cette condition, le coût pour

résoudre une instance de RSD avec les paramètres (n,r, w) est au moins approximé par

101

Page 112: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

(wbγ −1

)2

wbγ −1.

Noter que [115] montre que le temps et la mémoire requis pour l’attaque GBA peuvent

être améliorés, mais seulement par un petit facteur.

Remarque. Les équations qui définissent ui et vi peuvent exprimées comme une fonc-

tion en y0 et x0, respectivement. On peut vérifier facilement quexi =ϕ(i )1 (x0), yi =ϕ(i )

2 (y0)

ui =ϕ1(ϕ(i−1)2 (y0)), vi =ϕ2(ϕ(i−1)

1 (x0))

Avec ces paramètres, si x0 (resp. x0) est un point fixe deϕ1 (resp. ϕ2), alors SBS va produire

un flux clé identique à chaque itération et donc l’attaquant peut deviner correctement

le flux de clé subséquent généré par SBS. Heureusement, cet événement va se produire

avec une probabilité négligeable. Afin de prouver cette affirmation, nous avons besoin du

lemme suivant.

Lemme 6.11.1 Soient 0 < θ< 1, et Z1,Z2, · · · ,Zt des variables aléatoires indépendantes sur

{0,1} telles que Pr[Zi = 1] = θ, ∀i ∈ {1, · · · , t }. Alors, Pr

[t∑

i =1Zi ≡ 1 mod 2

]= 1

2 − (1−2θ)t

2 .

Preuve 6.12 Il est facile de montrer (par induction) que

t∑i =1

Zi ≡ 0 mod 2 ⇔t∏

i =1(−1)Zi = 1 (6.9)

De là, il suit :

Pr

[t∑

i =1Zi ≡ 0 mod 2

]= Pr

[t∏

i =1(−1)Zi = 1

]. (6.10)

En outre, si W est une variable aléatoire qui prend ses valeurs dans {−1,1} alors son es-

pérance mathématique E(W) est égale

E (W) = Pr[W = 1]−Pr[W = −1] = 1−2Pr[W = −1] . (6.11)

Si on prend W =t∏

i =1(−1)Zi , alors en utilisant le fait que Z1,Z2, · · · ,Zt sont indépendantes,

on obtient

E (W) =t∏

i =1E

((−1)Zi

)=

t∏i =1

(1−2θ) = (1−2θ)t . (6.12)

En combinant les équations (6.11) et (6.12), on obtient:

Pr

[t∑

i =1Zi ≡ 1 mod 2

]= P [W = −1] = Pr

[t∏

i =1(−1)Zi = −1

]=

1

2− (1−2θ)t

2. (6.13)

102

Page 113: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

Maintenant, nous voulons estimer la probabilité d’avoir des points fixes pour ϕ1 (or ϕ2).

De tels points satisfont à l’équation ϕ1(x) = x, qui est l’équivalent de la somme directe de

ω+1 vecteurs inconnus de ` bits, qui donne zéro. Si x est choisi d’une manière aléatoire

dans F`2 , alors la probabilité d’avoirϕ1(x) = x est égale à 12 . En fait, les entrées de ligne de la

matrice de sous-jacenteϕ1 et x peuvent être associées à des variables aléatoires indépen-

dantes (Z( j )i ) définies sur {0,1}, respectivement, où i ∈ {1, · · · ,ω+1} et j ∈ {1, · · · ,`} sont des

position de colonne et de ligne . On a Pr[

Z( j )i = 1

]= θ = 1

2 . En utilisant le lemme 6.11.1 on

obtient:

Pr

[ω+1∑i =1

Z( j )i ≡ 0 mod 2

]=

1

2, ∀ j ∈ {1, · · · ,`}. (6.14)

et par conséquent

Pr[ϕ1(x) = x

]=

(1

2

)`=

1

2`(6.15)

Cela signifie que la probabilité d’occurrence des points fixes au cours de la génération

de flux de clé est négligeable quand ` est choisi assez grand. Dans ce travail, les valeurs de

` est au moins 128.

6.13 Résultats Experimentaux

Le chiffrement par flux SBS décrit ci-dessus a été mis en œuvre en utilisant le langage

de programmation C/C++ fonctionnant sur un AMD Phenom(tm) 9950 Quad-Core, tour-

nant à un rythme d’horloge de 1300 MHz et ayant de 4 Go de RAM. L’implémentation est

basée sur les codes binaires aléatoires sans structure particulière. En tenant compte de

toutes les attaques discutées précédemment, nous avons sélectionné un grand ensem-

ble de paramètres sûrs offrant une meilleure performance mesurée en cycles par byte

(cpb). le Tableau 6.1 illustre les résultats de simulation des ensembles de paramètres dif-

férents (η,`,ω) dans lesquels le niveau de sécurité fourni (en log2 opérations binaires),

les tailles de la clé secrète K et du vecteur initialisation IV, et la vitesse sont répertoriées.

Afin d’augmenter la performance et diminuer la capacité de stockage requise par notre

proposition, on peut introduire des codes quasi-cycliques en raison de la propriété aléa-

toire obtenue dans [65].

Le Tableau 6.1 représente la vitesse obtenue par SBS pour un niveau de sécurité crois-

sant. On voit que le cpb généralement croit avec le paramètre ` (la moitié de la taille de

sortie) et pour une longueur du code fixée η(=8192), la croissance devient linéaire. En ef-

fet, pour un niveau de sécurité fixé comme but, on peut prendre η et ω en sorte d’avoir `

le plus petit possible en minimisant la fonction qui lie ces trois paramètres.

103

Page 114: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

sécurité η ` ω K/IV performance (cpb)

80 8192 256 32 128 7.85

100 8192 384 48 192 12.63

100 8192 512 64 256 21.13

100 8192 640 80 320 26.90

100 8192 1024 128 512 29.56

120 12288 384 48 192 12.29

160 16384 512 64 256 35.40

200 20480 640 80 320 26.819

240 24576 768 96 384 32.413

280 28672 896 112 448 39.59

260 32768 1024 128 512 29.867

Table 6.1 – Paramètres et performance de SBS.

sécurité η ` ω key/IV performance (cpb) annoncée

80 8192 256 32 128 27

128 8192 384 48 192 47

180 8192 512 64 256 41.50

400 8192 1024 128 512 83

Table 6.2 – performance annoncée pour SYND [64, 47].

Comparée aux performances des autres propositions basées sur les codes, comme

SYND [64] et the 2SC [101], notre implémentation confirme que pour un niveau de sécu-

rité comparable, SBS tourne plus rapidement, même pour leur version améliorée que

nous avions réalisée dans le chapitre précédent [47].

Les vitesses rapportées de SYND [64] et de 2SC [101] sont affichées dans Table 6.2 et

Table 6.3, respectivement.

En outre, les résultats de nos implémentations présentés dans le tableau 6.1 montrent

clairement que notre proposition va aussi vite que le schéma de chiffrement AES mode

compteur. En effet, l’implémentation en assembleur de AES en mode CTR de Käsper et

al. [85] fournit une vitesse de 7.59 cycles par byte sur Intel 2 Q9550 et 6.92 cycles par byte

sur Core i7 920, pendant que la notre tourne à 7.85 cycles par byte.

104

Page 115: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 6. UN CHIFFREMENT PAR FLUX ET PROUVÉ SÛR: SBS

sécurité n r w key/IV performance (cpb)

100 1572864 384 24 144 25.18

160 2228224 544 34 208 33.22

250 3801088 928 58 352 72

Table 6.3 – performance annoncée 2SC [101, 47].

Notre proposition est seulement deux fois plus lent que les finalistes eSTREAM 2 (HC-

128, Rabbit, Salsa20/12, SOSEMANUK, Grain v1, MICKEY v2, et Trivium).

6.14 Conclusion

Dans ce chapitre, nous avons proposé un nouveau chiffrement par flux basé sur les codes,

appelé SBS. En utilisant le parallélisme, notre système est très rapide par rapport à toutes

les propositions précédentes basées sur les codes. Sa sécurité est basée sur le problème de

décodage par syndrome de mots réguliers et sa performance est comparable à l’AES-CTR.

Il fonctionne à 7,8 cycles par byte, tandis que la performance de l’AES-CTR est d’environ

7,59 cycles par byte. Nous avons effectué une analyse détaillée de sécurité, en particulier,

nous avons montré que SBS est sécurisé contre les attaques les plus connues telles que

les attaques ISD et attaques GBA. En outre, nous avons prouvé que la distinction du flux

de clés générées par SBS est aussi dure que la résolution d’une instance du problème de

décodage des mots réguliers.

2http://www.ecrypt.eu.org/stream/phase3perf/2007a/amd64/

105

Page 116: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 7

Un PRNG basé sur des Problèmes de la

Théorie des Réseaux

“ Rien dans la nature n’est aléatoire. Le

hasard n’apparaît qu’à travers

l’insuffisance de nos connaissances. ”

B. Spinoza

Sommaire

7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

7.1.1 Acronymes et Définitions . . . . . . . . . . . . . . . . . . . . . . . . . 108

7.1.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7.1.3 Contribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

7.1.4 Organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.2 Préliminaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3 Un PRNG basé sur ISIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3.1 Construction du Bloc Central . . . . . . . . . . . . . . . . . . . . . . . 110

7.3.2 Construction Itérative . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7.3.3 Principe de Conception . . . . . . . . . . . . . . . . . . . . . . . . . . 111

7.4 Sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

7.6 Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7.7 L’attaque par paradoxe d’anniversaire généralisé . . . . . . . . . . . . . . 116

7.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Dans ce chapitre, nous construisons un générateur de nombres pseudo-aléatoire en

utilisant seulement des hypothèses standards au pire des cas des problèmes de réseau

106

Page 117: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

arithmétique. Avec une technique courante, nous pouvons alors construire un chiffre-

ment par flux en combinant la séquence pseudo-aléatoire générée avec le texte en clair.

Notre mise en œuvre pour les unités de traitement graphique (GPU) tire parti du paral-

lélisme inhérent aux réseaux et atteint des performances comparables aux constructions

rapides connues qui ont les preuves de sécurité.

Ce travail fait l’objet d’une présentation dans "International Conference on Coding and

Cryptography", USTHB, Alger, 2-5 Novembre 2015 et d’une publication à paraitre dans

"Applicable Algebra in Engineering, Communication and Computing".

107

Page 118: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

7.1 Introduction

La cryptographie basée sur les réseaux arithmétiques s’appuie généralement sur des prob-

lèmes présumés difficiles tels que Le Problème du plus Court Vecteur(SVP) ou la Plus

Courte Solution Entière(SIS) qui permettent de construire des fonctions à sens unique. En

raison de leur vitesse et de la non-existence présumée d’algorithmes quantiques qui sont

en mesure de les résoudre en temps polynomial, les schémas cryptographiques basés sur

les réseaux deviennent alors des candidats sérieux pour la cryptographie post-quantique.

Une famille de ces primitives cryptographique est celle des Générateurs Pseudo-aléatoires

(PRNG) qui ont plusieurs applications en cryptographie. Parmi eux, l’un des plus fréquem-

ment utilisé sont les chiffrement par flux. Ce sont des constructions qui utilisent des clés

symétriques dans lesquelles un flux chiffré est obtenu à travers une combinaison des bits

du message clair et d’une séquence de bit pseudo-aléatoire. Dans un chiffrement par flux,

les bits du message clair sont chiffrés les uns à la suite des autres, à l’opposé du chiffre-

ment par bloc, qui typiquement opère sur de larges portions du message.

Récemment, plusieurs PRGNs sont proposés dans le but d’améliorer les schémas ineffi-

caces. La sécurité de certains d’entre eux repose sur certaines hypothèses de la théorie

des codes [[103], [47]], des système multivarié,...

Dans le contexte de la théorie des réseaux arithmétiques, des PRNGs robustes sont tirés

des fonctions à sens unique dont leur sécurité est basée sur des problèmes difficiles pour

un niveau de sécurité au pire des cas, ce qui signifie que les casser est au moins aussi

difficile que résoudre n’importe quelle instance des problèmes basés sur les réseaux. Le

premier, avec une preuve de sécurité, a été celui de Ajtai [107] et se réduit au problème

SVP.

La difficulté au pire des cas des fonctions à sens unique n’est pas efficace due aux con-

traintes de sécurité, c’est pourquoi récemment quelques travaux sont faits pour améliorer

leur rapidité en utilisant le parallélisme tel que SWIFFT avec l’utilisation de la transformé

de Fourier rapide(FFT).

La sécurité de SWIFFT repose sur la réduction au SVP des réseaux cycliques (idéaux) dans

le pire des cas et sa preuve a été donnée dans [105] et [94]. Malheureusement il n’était

pas directement utilisable comme PRNG. C’est ainsi qu’il est important de faire des de-

signs efficients des PRGN avec un niveau de sécurité au moins aussi élevé que celle de la

fonction de compression SWIFFT.

7.1.1 Acronymes et Définitions

• DDH - Decisional Diffie-Hellman assumption.

• FFT - Fast Fourier Transform

108

Page 119: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

• GPU - Graphics Processing Unit.

• LPN - Learning from Parity with Noise.

• LWE - Learning With Errors.

• PRNG - Pseudorandom Number generator.

• QUAD - A multivariate QUADratic stream cipher.

• SIS - Short Integer Solution.

• TDF - Trapdoor function.

• ϕm,t est une application injective :{0,1}l −→ Wm,t . Wm,t représente l’ensemble des

mots de longueur m, de poids de Hamming t et l est inférieur ou égal à log2(mt ).

7.1.2 Etat de l’art

Les problèmes calculatoires en théorie des réseaux ont été récemment investigués pour

construire un certain nombre de primitives cryptographiques. Dans la suite, nous lis-

teront quelques constructions qui traitent des PRNGs.

Basés sur la difficulté du problème LPN, Applebaum, Cash, Peikert et Sahai [2] consen-

tirent un PRNG qui double la taille des entrées en sortie et peut être implanté en circuit

binaire (sans crypto-processeur) de taille O (n). Le PRNG proposé ici est basé sur la diffi-

culté de LPN qui n’est pas connu comme un problème au pire des cas. En résumé nous

montrerons que notre construction est sûre sous l’hypothèse de la difficulté au pire des

cas et est efficace en pratique.

7.1.3 Contribution

Dans ce chapitre, en utilisant le problème ISIS 3.2.6 comme brique de sécurité de base,

nous sommes en mesure de construire un PRGN plus rapide, qui s’implémente facile-

ment, et marche avec de petits paramètres et ayant une réduction classique au pire des

cas aux problèmes des réseaux. Notre instanciation appliquée aux réseaux cycliques, avec

des paramètres similaires que ceux de SWIFFT [95], fournit un niveau de sécurité pratique

de 100 bits. Notre implémentation en GPU augmente l’efficacité à partir du parallélisme

inhérent et atteint les performances qui surpassent certaines implémentations connues

avec des preuves de sécurité tirées des autres domaines. Par exemple, on peut être plus

performant que QUAD [19], qui est basé sur la difficulté de résoudre des système multi-

variés quadratiques.

109

Page 120: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

7.1.4 Organisation

La structure de ce chapitre est la suivante. Dans la section 7.2 nous présentons les con-

cepts qui seront utilisés à travers le texte pour expliquer les PRNG. Plutard, nous décrivons

en détail notre PRNG dans la Section 7.3. Dans la section 7.4 nous listons une serie de

théorèmes qui nous permettra de montrer que notre système est à la fois sûr et indistin-

guable d’une source réellement aléatoire. Après cela, dans la section 7.6 nous présentons

quelques résultats concrets et discutons sur les performances et paramètres de notre im-

plémenetation sur CPU et GPU. Nous abordons les attaques et les contremesures dans la

Section 7.7. Une appréciation globale de notre système est donnée dans la Section 7.8 en

guise de conclusion.

7.2 Préliminaires

Dans cette section nous définissons quelques concepts qui seront traités tout au long de

ce chapitre dans les discussions de sécurité et de performance sur la cryptographie basée

sur les réseaux. Pour tout ce qui est de la théorie des réseaux nous renvoyons le lecteur au

chapitre 2 de ce manuscrit.

Nous proposons l’ensemble des paramètres, dans la table 7.1, qui sont compatibles à

ceux utilisés par la fonction de compression SWIFFT [95]. L’une des meilleures attaques

pour trouver des vecteurs courts dans un réseau [135] est la méthode combinatoire et a

une complexité calculatoire au dessus de 2100(Attaque des anniversaires généralisée).

7.3 Un PRNG basé sur ISIS

7.3.1 Construction du Bloc Central

Considérons la famille F des fonctions à sens unique définies comme f : Fm2 →Zn

q , qui à x

fait correspondre f (x) = Ax mod q , tel que le poids de hamming de x, ‖x‖ = m4 , A ∈Zn×m

q et

q un nombre premier. Il est calculatoirement à sens unique pour un choix judicieux des

paramètres, comme montré dans [106]. Notre choix pour q , de ne pas être une puissance

de 2, peut être justifié par le fait qu’on obtienne parfois des séquences biaisées. Nous

montrerons dans la suite comment l’éviter dans la description du module de mise à jour.

7.3.2 Construction Itérative

Nous proposons l’utilisation d’un générateur itérative capable de produire un flux de bits

pseudo-aléatoires de longueur arbitraire. Chaque itération correspond à une application

110

Page 121: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

InitializerState

Updater

x

zwK, IV

y

P-RAND STREAM

Figure 7.1 – PRNG basé sur ISIS

de la construction basique vue dans la figure 7.1. Une description plus détaillée de chaque

bloc qui constitue le PRNG est donnée dans la suite.

• Input: Key K ∈ Fm/22 and initialization vector IV ∈ Fm/2

2 .

1 Initializer : Obtain the current state w through a Feistel network applied to K and

IV, see 7.3.3.

2 State updater :

Compute S = Ax mod q , where S ∈Znq and x ∈ Fm

2 with Hamming weight m/4.

Split the current state S = (y|t|z) in output vector y ∈ Zn/2q , feedback vector z ∈

Zn/4q and t ∈Zn/4

q .

• Output: The vector y ∈ Zn/2q is further mapped into Zn/2

256 and fed to a permutation

SBox before being saved to the pseudorandom output stream to break the linear

structure. This last step helps to improve non-linearity.

• Feedback: The vector z ∈ Zn/4q is further mapped into Zn/4

256 , fed to a permutation

SBox . Since dup(Zn/4256 ) = F2n

2 and 2n ≤ log2(mm4

), it is fed to x := ϕm, m4

(z) ∈ Fm2 with

Hamming weight m/4, see Table 7.1

Go to step 2.

7.3.3 Principe de Conception

Son design général est donné dans la figure 7.1. Il est composé de trois blocs majeurs:

Initializer: g : Fm/22 ×Fm/2

2 → Fm2 . Il suit le paradigme de Feistel appliqué dans le modèle

du chiffrement par flux SYND [66]. Ici on choisit deux fonctions f1 et f2 qui trans-

forment un vecteur de longueur m en un vecteur de Fm2 via f1(x) = dup(A1x mod q)

et f2(x) = dup(A2x mod q), où A1,A2 ∈ Zn/2×mq et dup : Zn/2

q → Fm2 qui permet de

représenter chaque entrée en binaire, tel que A = [A1;A2] ∈ Zn×mq correspond à la

111

Page 122: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

Variable Domain Description Bitsize

w Fm2 State m = 256 or 512 or 1024

y Zn/2q PRNG pre-output bn/2log2(q)c = 256

z Zn/4q Feedback stream bn/4log2(q)c = 128

K Fm/22 Key m/2 = 128 or 256 or 512

IV Fm/22 Initialization vector m/2 = 128 or 256 or 512

A Zn×mq Lattice basis bnm log2(q)c

Table 7.1 – Les paramères de SWIFFT[95] (n, q,m) = (64,257,1024).

matrice utilisée dans le module State Updater. Les matrices A1 et A2 sont consid-

érées comme des paramètres du système. L’état initial du compteur est obtenu par

g (K,IV) = z+ f2(y+ f1(z))

où y = K || IV et z = f1(y)+y.

State Updater: Soit f : Fm2 → Zn

q telle que f (x) = Ax mod q , avec A ∈ Zn×mq . Alors, la sor-

tie de f est découpée en trois vecteurs. la partie gauche est assignée à y ∈ Zn/2q ,

et fournie à la sortie du générateur, après que chaque cordonnée ait été conver-

tie dans Z256, en supprimant le bit de poids fort. La partie de droite identifiée par

z ∈Zn/4q , est utilisée pour la rétro-action. La matrice A est un paramètre d’entrée du

système. Nous appliquons les paramètres prescrits dans la table 7.1. Le State Up-

dater représente une instance du problème ISIS. Pour des paramètres bien choisis,

il existe des réductions des instances au pire des cas aux instances au moyens des

cas du problème ISIS, comme discuté dans [106].

la table 7.1 liste la taille des paramètres utilisés dans le design du PRNG. La valeur de n,

m et q est choisie de sorte que notre système soit aussi sûr que SWIFFT[95]. Notre généra-

teur peut être utilisé pour un chiffrement par flux en faisant une opération de somme

directe entre le message clair et la séquence générée.

7.4 Sécurité

Dans cette section nous montrons que les fonctions choisies aléatoirement dans la famille

Hn,q,m ={

fA : {0,1}m −→Znq : x 7−→ Ax mod q | A ∈Zn×m

q

}sont des générateurs pseudo-aléatoires. Pour ce faire, on a besoin de deux résultats.

112

Page 123: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

Premièrement, on utilise le fait que Ajtai ait prouvé que ces fonctions sont à sens

unique en considérant la difficulté à résoudre des problèmes standard de la théorie des

réseaux dans le pire des cas [107]. Ces preuves ont été plus tard améliorées et rafinées

dont l’une de ses variantes les plus récentes est dûe à Micciancio et Regev [106].

Deuxièmement, on adapte un résultat de Impagliazzo et Naor, qui ont montré que

notre affirmation reste valable dans le cas des fonctions qui additionnent les sous ensem-

bles (sac à dos)[83]. Comme eux, nous allons utiliser le théorème de Goldreich et Levin,

qui donne un prédicat pour une fonction à sens unique[72].

Être en mesure de prédire ce prédicat permet aussi de briser l’aspect "sens-unique".

En outre, le prédicat peut souvent être prédit par un oracle qui brise un générateur pseudo-

aléatoire, ce qui en fait un candidat idéal pour notre environnement.

Nous commençons par un rappel du théorème Goldreich-Levin pour prouver l’aspect

pseudo-aléatoire de notre fonction.

Théorème 7.4.1 ([72]) Soit f une fonction à sens unique. Pour tout algorithme PTT A ,

tout polynôme p, et un nombre fini de m ∈N, on a

Pr[A ( f (x),r) = r ¯x] < 1

2+ 1

p(m),

où les probabilités sont évaluées sur des paramètres aléatoires uniformément choisis x,r ∈U({0,1}m) et r ¯x = rxT mod 2.

Théorème 7.4.2 Si la fonction fA ∈ Hn,q,m est à sens unique, alors il est aussi un généra-

teur pseudo-aléatoire.

Preuve 7.5 on considère que la matrice A ∈Zn×mq est choisie uniformément.

Supponsons que le fonction n’est pas pseudo-aléatoire, i.e il existe un algorithme PTT D

efficace et un polynôme p tels que:

Pr[D(A, fA(x)) = 1] ≥ 1

2+ 1

p(m)et Pr[D(A,y) = 1] =

1

2(7.1)

Pour montrer comment exploiter ce distingueur afin de prédire le prédicat de Goldreich-

Levin. Considérons cet algorithme suivant:

A (A, fA(x),r):

Choose k ←− U({0,1}) uniformly at random

Choose y ←− U(Znq ) uniformly at random

Set B ←− A+yTr mod q

Set b ←−D(B, fA(x)+yTk mod q)

Return k ⊕ (1⊕b)

113

Page 124: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

Maintenant on considère k,A,y des variables aléatoires uniformément choisies et soient

x,r des paramètres fixés. On compare trois distributions décrivant l’entrée de D

I1 = (B, fB(x)+yT(k ⊕ r ¯x) mod q), I2 = (B, fB(x)), I3 = (B,y).

On note que I1 est la réelle distribution d’entrée, puisque par construction fA(x)+ yTk =

fB(x)+ yT(k ⊕ r ¯ x). Alors, sous la condition k = r ¯ x := rxT mod 2, I1 est identique à I2

et sous la condition k 6= r ¯ x := rxT mod 2, I1 est identique à I3. Si k est le bit que nous

cherchons (hard-core bit: r ¯ x), alors notre algorithme réussit si D retourne 1 ou 0 les seul

cas possible. En combinant les deux avec l’équation (7.1) on obtient en utilisant le théorème

de Bayes:

Pr[A success] = Pr[D(I1) = 1 | k = r¯x]Pr[k = r¯x]+Pr[D(I1) = 1 | k 6= r¯x]Pr[k 6= r¯x]

=1

2Pr[D(I2) = 1]+ 1

2(Pr[D(I3) = 1])

≥ 1

2+ 1

p(m).

Ceci signifierait qu’on peut prédire le prédicat de Goldreich-Levin avec un avantage non-

négligeable et par conséquent avoir une contradiction sur le fait que la fonction soit à sens

unique.

7.6 Performance

Pour des raisons d’optimisation de nos algorithmes, nous avons utilisé la programmation

en parallèle sur cartes GPU qui offrent plus de ressources (transistors) que les cartes CPU

sur le marché. Nos mises en œuvre sont basées sur le langage CUDA C et sur les cartes

NVIDIA GTX460. Ce type de carte est spécialisé dans le calcul intensif et dans le calcul

hautement parallèle. Comme une plate-forme hybride, CUDA est caractérisé par des en-

tités:

• Host : pour désigner la carte CPU,

• Device: pour désigner la carte GPU,

• Kernel: les fonctions lancées par Host et exécutées par Device.

La carte contient une grille 3D (x,y,z) qui contient des blocs et fait tourner chacun in-

dépendamment des processus (threads) qui font la même action simultanément sur les

différents blocs de données. L’index global suivant une direction (x par exemple) pour

chaque processus dans la grille est obtenu par: index =threadIdx.x + blockIdx.x

* blockDim.x où

• threadIdx.x : l’index du processus dans le bloc courant

114

Page 125: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

Cipher/PRNG Cycles/Byte Key Size (bits)

QUAD 4347 80

Ours/CPU 432 128

Ours/GPU 367 128

SYND 27 128

AES-CTR 15 128

Table 7.2 – Peformance comparée avec d’autre Stream Cipher

• blockIdx.x : l’index du bloc dans la grille

• blockDim : le nombre de processus dans chaque bloc

En effet, suivant l’architecture de telle carte, la conception suit ces étapes:

1. Définition de nos kernels: convertir les vecteurs de Znq en chaînes binaires, le pro-

cessus de duplication, la fonction de mise à jour,

2. Allocation de la mémoire et transfert de données de IV et de l’état interne sur GPU

3. Lancement indéfiniment de la fonction mise à jour déjà définie

4. Recouvrement de la sortie après chaque mise à jour.

Cette section montre le résultat d’une mise en œuvre en appliquant les paramètres

indiqués dans le tableau 7.1. Nous avons utilisé les optimisations proposées dans la fonc-

tion de hachage SWIFFT [95] afin d’obtenir des opérations de FFT efficaces. Nous avons

atteint un débit de 27 Mbps avec pour notre PRNG sur un dual core Intel Celeron E3300 à

2,50 GHz exécutant Linux Ubuntu 10.04, avec 2,0 Gio de RAM. Le compilateur utilisé pour

générer le code était gcc, la version 4.4.3-4. Ce débit est environ 30 fois plus lent que AES

en mode CTR, de la bibliothèque de Crypto++, Version 5.6.1.

Une performance comparative avec QUAD (qui a aussi la sécurité prouvée), AES en

mode CTR, et une amélioration de la SYND par P.-L. Cayrel et al. [47]sont donnés au

tableau 7.2. Pour notre mise en œuvre CPU, environ 49% du traitement temps est passé

sur le calcul FFT. En ayant FFT exécuté dans un GPU, à la place, de façon similaire à ce

qui était réalisé par de Beer et al. dans [50], on peut espérer voir la performance à près

90% plus rapide. Les tentatives faites avec AES en GPU, comme rapportées par Mei et al.

[98], montrent des gains de près de 36% en débit. Cette implémentation GPU sur Nvidia

GTX460 a atteint une amélioration de 15%, comparativement à notre mise en œuvre de la

CPU.

115

Page 126: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 7. UN PRNG BASÉ SUR DES PROBLÈMES DE LA THÉORIE DES RÉSEAUX

7.7 L’attaque par paradoxe d’anniversaire généralisé

Notre conception applique une instance d’ISIS dans son noyau. On pourrait appliquer

des attaques d’anniversaire ou de base réduction pour tenter de reproduire un flux pseudo-

aléatoire de bits, et ainsi récupérer le texte brut. L’ensemble des paramètres qui sont sug-

géré dans ce chapitre exclut ce genre d’attaques. Pour le niveau de sécurité appliqué dans

cet article, l’état actuel de la technique n’est pas assez forts pour briser notre système [31].

Comme indiqué dans [74, 79], l’Attaque par Compromis Temps-Mémoire (TMTA) peut

être évitée en prenant les conditions suivantes en compte: le vecteur initial devrait être

au moins aussi grand que la clé, et l’état interne doit être au moins deux fois la clé et dans

[110, 34, 35] les attaques de différentielles (DA) en utilisant une fonction initiale(réseau

de Feistel) sûre et des Sboxes.

L’agorithme du paradoxe des anniversaire généralisé est dû à Wagner [135] et il est

réductible au problème SIS. Une collision Ax1 = Ax2 mod q ⇐⇒ A(x1−x2) = 0 mod q pour

x1 6= x2 mod q , est calculable quand on est capable de répondre à cette question:

Soit une matrice A ∈ Zn×mq et b un entier positif, existe-il un vecteur x ∈ Fm

2 tel que

Ax = 0 mod q et qui a pour poids de hamming ‖x‖ ≤ b?

L’ensemble des solutions est ker (A) = {x ∈ Fm2 : Ax = 0 mod q} est un réseau,donc ré-

soudre ce problème est aussi dur que la résolution SIVP et SVP dans le pire des cas. [31].

7.8 Conclusion

Dans ce chapitre, nous avons présenté un PRNG basé sur des problèmes de réseau arith-

métique au pire des cas , en se basant sur la difficulté à résoudre ISIS. Il présente des simil-

itudes avec la conception proposée dans certains chiffrements de flux à sécurité prouvée

comme QUAD [19] et SYND [66]. Nous avons prouvé l’indiscernabilité de notre PRNG

d’une véritable séquence purement aléatoire, à condition que le SIS soit difficile pour

l’ensemble de paramètres appliqués.

Les hypothèses de sécurité légers utilisés dans la conception de notre construction

nous permet de relier sa performance à celle de SWIFFT [95]. Ceci conduit à un rapide et

plus simple système que celui obtenu à partir de constructions avec trappe. [118].

Étant donné que la conception de SYND peut également être utilisée pour dériver les

fonctions de hachage, en fonction de l’ensemble des paramètres choisis, et que notre con-

struction est structurellement similaire à ce système, nous croyons qu’un résultat ana-

logue pourrait être dérivé ici. En outre, comme représentées sur [33], les constructions

éponges peuvent être appliquées avec succès comme bloc de construction pour les fonc-

tions de hachage et chiffrement par flux. Elles peuvent être combinés avec notre hy-

pothèse de sécurité du ISIS, conduisant à un système structurellement différent.

116

Page 127: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Chapitre 8

A LPN-Based Chameleon Hash Function

“ Avec l’Internet et le Web, la demande

en cryptologie a explosé. Et

paradoxalement, la cryptologie est

passée d’une science du secret à une

science de confiance. ”

Jacques Stern

Sommaire

8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

8.2 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

8.2.1 The Learning from Parity with Noise Problem . . . . . . . . . . . . . 121

8.2.2 LPN-based cryptography . . . . . . . . . . . . . . . . . . . . . . . . . 122

8.3 LPN-based chameleon hash-function . . . . . . . . . . . . . . . . . . . . . 122

8.3.1 Chameleon hash function . . . . . . . . . . . . . . . . . . . . . . . . . 122

8.3.2 Our chameleon hash: . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

8.4 The security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

8.6.1 Chameleon signature . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

8.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

In some collaboration scenarios, a hashed message needs to be modified by a third

party different from the original publisher without changing the message digest.

To ensure data integrity for such a modification, the message has to be rehashed without

the control of the original publisher. However, this is usually only possible in case the

original editor is available.

As a solution to this problem, we present in this paper the first chameleon hash func-

117

Page 128: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

tion based on the LPN (Learning Parity with Noise) problem. In addition, we show it is

semantically secure and resistant to collision forgery attacks.

Keywords: cryptographic chameleon hash functions, provable security, LPN.

118

Page 129: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

8.1 Introduction

Hash functions, a powerful encryption tool, are a crucial ingredient for many applications.

They are typically used in order to reduce the size of data to be processed by the encryp-

tion functions, to build secure encryption schemes in the random oracle model, to ensure

the data integrity and also to secure the infrastructures such as: secure web connections,

encryption key management, virus and malware-scanning, password logins, and digital

signatures.

In literature there are several hash functions whose security is based on some diffi-

cult problems such as number theory [38], the arithmetic networks [93] and particularly

on the theory of error correcting codes(ECC) [9, 102, 30]. One particular ECC-scheme,

called FSB [9] received a lot of attention after the Augot, Finiasz, and Sendrier’s proposal

[56] during the SHA-3 competition. However, FSB has been eliminated because of its in-

efficiency compared to the others in the second round. Thus some improvements and

new schemes have been proposed to reposition code based cryptography in the race as

candidate for post-quantum cryptography due to the existence of quantum algorithms

solving some problems related to number theory. Motivated by its inefficiency, Augot et

al. proposed improvements still based on the Markle-Damegard construction by using a

masked random quasi-cyclic matrix [56].

In the following reviews, another hash function based on the syndrome decoding

problem has been proposed by Meziani et al. in [102] which improves the speed of the

FSB by using a sponge construction.

Bernstein et al. have proposed an even faster hash-function in [30] which is as fast as

two of the five finalists SHA-3 with less than 14 cycles on one byte hash for 128 bit security

level.

More recently, Cayrel et al. have proposed an improvement in these diagrams by using

the Streaming SIMD Extensions registers (SSE) and proposed a benchmark based on the

same platform [47].

In some collaboration scenarios an already hashed message needs to be modified in off-

line mode by a third party different from the original publisher without changing the mes-

sage digest.

However, all those hash functions provide no answer for the above mentioned prob-

lem of rehashing a message by authorized persons without the presence of the original

119

Page 130: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

publisher and without changing the message digest. Indeed, sometimes this is not pos-

sible because the editor is not available as in the case of a very large hierarchy in organi-

zations, in the routing information with routers or proxies, in the case of release update

software, or in the internet advertising system where one allows the organizations to at-

tach advertisements on broadcast messages. The ideal solution would be to ensure that

authorized persons can edit the original message without changing the message digest:

in this case we speak of a chameleon hash function. The corresponding signature is also

called chameleon or signing sanitizable signature.

The chameleon hash function was proposed for the first time by H.Krawczyk T.Rabin [90]

, which had a weakness against a key exposure attack. Today there are solutions, such as

those presented by G.Ateniese and B. de Medeiros in [6] proven secure in the random or-

acle model. Recently, new chameleon hash functions were proposed e.g. identity-based

chameleon hash [5, 138]. Many applications of hash functions and signatures charac-

terised as chameleon are given in [3].

Related Work.

Our contribution.

In this paper we give the first chameleon hash function on LPN-based cryptography. We

give also a provable security by showing it is semantically secure and resistant to collision

forgery attacks.

Organization of the paper.

This paper is organized as follows: After preliminaries in section 2, we give the descrip-

tion of our new scheme in section 3, a security study in section 4 and finally we give a

discussion about performance.

8.2 Preliminaries

A chameleon hash function is a secure hash function with a secret key that permits to

generate efficiently a new pre-image for any modification of the original message. That

means it is possible to delegate people to modify the message without changing the hash

value or the signature.

We denote the Bernoulli distribution over F2 with parameter p ∈]0, 12 [ by Berp i.e. if x ←

Berp , then Pr [x = 1] = p and Pr [x = 0] = 1− p. We write Ber np to denote the distribution

over Fn2 of a sequence of n independent Bernoulli trials with parameter p. We write U k to

120

Page 131: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

denote the distribution over F2 of a sequence of k independent uniform trials.

The inner product of a,b ∈ Fn2 is a ·b =< a,b >=

∑n−1i =0 a[i ] ·b[i ] mod 2

8.2.1 The Learning from Parity with Noise Problem

The Learning from Parity with Noise (LPN) problem has been well studied and has been

used to build some cryptographic primitives such as HELEN public key [53, 49].

Solving this problem consists of finding out an unknown vector s, given some noisy

versions of its scalar product with some known random vector. Formally :

Définition 8.2.1 (LPN Oracle) An LPN oracle∐

s,p for a hidden vector s ←U k and 0 < p <12 is an oracle returning an LPN k +1-vector, i.e. vector of the form

< r ← {0,1}k , s · r ⊕e >

where e ← Berp

Définition 8.2.2 (The search LPN problem.) For p ∈]0, 12 [, l ∈N the search LPNl ,p is (q, t ,ε)-

hard if for every distinguisher D running in time at most t and making at most q queries to

the oracle∐

s,p :

Pr [s ← {0,1}k : D∐

s,p (1κ) = s] < ε

Définition 8.2.3 (The decisional LPN problem.) For p ∈]0, 12 [, l ∈ N the decisional LPNl ,p

is (q, t ,ε)-hard if for every distinguisher D running in time at most t and making at most q

queries to the oracle∐

s,p :

| Pr [s ← {0,1}k : D∐

s,p (1κ) = 1]−Pr [U k+1(1κ) = 1] |< ε

in [86, 123], authors show that decisional and search LPN are polynomially equivalent.

There is in literature some equivalent Versions of LPN by considering new Oracle which

take r or s as matrices and change the uniform distribution with an other one.

Lemme 8.2.1 The oracle∏

s,p for a hidden vector s ← Ber kp and 0 < p < 1

2 is an equivalent

LPN oracle returning an LPN k +1-vector of the form

< r ← {0,1}k , s · r ⊕e >

where e ← Berp

121

Page 132: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

Lemme 8.2.2 The oracle∧

S,p for a hidden matrix S ∈ {0,1}n×k where every line is taken

from U k and 0 < p < 12 is an equivalent LPN oracle returning an LPN n +k-vector of the

form

< r ← {0,1}k , S · r ⊕e >where e ← Ber n

p

Lemme 8.2.3 The oracle∨

s,p for a hidden vector s ← U k and 0 < p < 12 is an equivalent

LPN oracle returning an LPN n ×k-matrix and n-vector, i.e. an output of the form

< R ← {0,1}n×k , R · s ⊕e >

where e ← Ber np

Lemme 8.2.4 (Multi-bit LPN Oracle) The oracle ΣS,p for a hidden matrix S ← U k×l and

0 < p < 12 is an equivalent LPN oracle returning an LPN n ×k-matrix and a ×l -matrix, i.e.

an output of the form

< R ← {0,1}n×k , R ·S ⊕E >where E ← Ber n×l

p

8.2.2 LPN-based cryptography

The oracle∨

s,p is connected to well known problems such as decoding random linear

codes [23] and the Learning with Errors problem (LWE) [123]. It is used in several crypto-

graphical primitives like pseudorandom generators (PRG) [76], pseudorandom functions

(PRF)[69] or pseudorandom permutations (PRP)[92], Secret-key encryption scheme [68],

Secret-Key Identification and Message Authentication [80] The HB protocol.

Hardness of LPN The security of LPN is well studied by several authors and its complex-

ity remain subexponential. One of the best algorithm to solve the LPN problem called

BKW had been proposed in [37] by Blum, Kalai and Wasserman. In that paper; they esti-

mate the complexity to the order 2O ( klog(k) )

8.3 LPN-based chameleon hash-function

8.3.1 Chameleon hash function

A chameleon hash function is a trapdoor collision-resistant hash function associated with

a key pair (d sk,d pk) that permits to efficiently generate new pre-images for any modifi-

cation of the original message.

122

Page 133: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

That means it is possible to delegate people to modify the message without changing

the hash value. The knowledge of the public key d pk permits to compute efficiently the

hash value for each message. Therefore, except for the owner of the delegate private key

d sk, it must be impossible for anyone to find a collision.

Design principle

:

• Key generation : KG accepts as input a security parameter κ and runs a proba-

bilistic polynomial-time algorithm to generate a pair of delegate secret/public keys

(d sk,d pk) :

(d sk,d pk) ←KG(1κ)

• Chameleon hash : CH accepts as input a public key d pk, a message m and a random

parameter r and outputs a binary string ch of fixed length.

ch ←CH(d pk,m,r )

• Forgery : Forge permits to the private key owner to generate collision on the mes-

sage for a new message m′. This algorithm takes as inputs the private key d sk, the

message m and its corresponding random element r , the chameleon hash value ch

and the modified message m′. This returns a random element r ′ s.t. CH(d pk,m,r ) =

CH(d pk,m′,r ′)

r ′ = Forge(d sk,m,r,m′,ch)

8.3.2 Our chameleon hash:

In this section, we provide a detailed description of our hash function and its basic com-

ponents.

Let us define a chameleon hash function

CH : F(n×`)2 ×F∗2 ×F(k+n)

2 −→ Fn2 CH(d pk,m,r ) = ch

Let A be an n×k random matrix, 0 < p < 12 , and hash : F∗2 −→ F`2 be a collision-resistant

hash function.

• Key generation : KG

Let X be a random (k×`)-matrix in which each column is independently generated.

The delegate private key is d sk := (X,E) while d pk := (S = AX ⊕E), is made public,

where E ← Ber n×`p

123

Page 134: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

• Chameleon hash : CH

The message sender generates a random vector r = (r1‖r2) of size (k +n), where

(r1‖r2) represents the concatenation of r1 and r2, such that r1 ← Ber np , r2 ∈ Fk

2 and

computes :

h = hash(m)

and

ch = CH(d pk,m,r ) = r1 ⊕S ·h ⊕A · r2

• Forgery : Forge

For a new modified message m′, the recipient generates a vector e ∈ Fk2 , computes

the corresponding random vector

h′ := hash(m′) r ′1 = r1 ⊕E · (h ⊕h′)⊕A ·e and r ′

2 = e ⊕X · (h ⊕h′)⊕ r2

and provides as chameleon hash r ′ = (r ′1‖r ′

2).

Remarque 8.3.1 The same hash (collision) is obtained with m′ and r ′; note that :

CH(d pk,m′,r ′) = r ′1 ⊕S ·h′⊕A · r ′

2

= r1 ⊕E · (h ⊕h′)⊕A ·e ⊕S ·h′⊕A[e ⊕X · (h ⊕h′)⊕ r2]

= ch ⊕E ·h′⊕A ·e ⊕S ·h′⊕A ·e ⊕AX ·h′

= ch = CH(d pk,m,r )

8.4 The security

A chameleon hash function is claimed as secure generically, if it is collision and (second)

pre-image resistant like a standard hash function, and additionally semantically secure.

Définition 8.4.1 (Semantic security)

A chameleon hash function is said to be semantically secure if, for all pairs of messages m

and m′, the probability distributions of the random variables CH(d pk,m,r ) and CH(d pk,m′,r )

are computationally indistinguishable.

Définition 8.4.2 A collision-forgery strategy is an efficient, probabilistic algorithm that,

given a message m, and random bits r , outputs another message m′ and random bits r ′,

such that CH(d pk,m,r ) = CH(d pk,m′,r ′), with high probability.

Définition 8.4.3 A chameleon hash function is secure against existential collision forgery

by passive attacks if no collision-forgery strategy against it exists.

124

Page 135: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

Définition 8.4.4 (Resistance to collision forgery by active attacks)

The chameleon hash function is secure against (existential) collision forgery by active at-

tacks if, there is no probabilistic algorithm A which has oracle access to the Forge function

and runs in polynomial time, and succeeds with non-negligible advantage in computing

random values r and r ′, and binary string m′, where m′ 6= m, such that CH(d pk,m,r ) =

CH(d pk,m′,r ′).

Définition 8.4.5 (Trapdoor Collision Resistance)

There is no efficient algorithm that, for any pair (m,r ), a delegate public key d pk and an

additional message m′, finds a value r ′ such that CH(d pk,m,r ) = CH(d pk,m′,r ′) (forge a

collision).

Théorème 8.4.1 Our chameleon hash is resistant to Trapdoor Collision attacks.

Preuve 8.5 Let A be a Trapdoor Forgery oracle that may forge a collision.

The attacker B receives the LPN challenge S = AX⊕E and try to find X and E. It takes as the

delegate public key d pk := (S = AX⊕E).

r ′ ←A (d pk,m,r,m′,ch) m′ 6= m

such that CH(d pk,m,r ) = CH(d pk,m′,r ′), ∀ message m,m′, public key d sk and fixed r

and ch.

So the attacker B make ` request to the oracle A , in each

r ′i ←A (d sk,m0,

−→0 ,m′

i ,−→0 ) 1 ≤ i ≤ ` ∈N and m′

i 6= m′j f or i 6= j .

this experience will give :

h′i := hash(m′

i ) r ′i ,1 = E · (h ⊕h′

i )⊕A ·e and r ′i ,2 = e ⊕X · (h ⊕h′

i )

Since the Forgery oracle A chose e independently to any consideration, we may suppose

e =−→0 without harming generality. Then we have:

h′i := hash(m′

i ) r ′i ,1 = E · (h ⊕h′

i ) and r ′i ,2 = X · (h ⊕h′

i )

1 ≤ i ≤ ` ∈N.

Since X and E has ` columns, it gives for every line of both matrices we will have system of `

equations with ` unknown variables. So this reveals the private key d sk := (X,E) and breaks

an instance of Multi-bit LPN.

This proof reveals that it is important to choose a not null hash ch for a publisher and and

a not null random vector e for the delegate which also makes the scheme semantically

secure.

125

Page 136: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

Théorème 8.5.1 Our chameleon hash is semantically secure.

Preuve 8.6 The semantical security is obtained if the chameleon hash

ch = r1 ⊕S ·h ⊕A · r2 where h := hash(m), reveals nothing about the message (m), i.e. the

entropy H [m|ch] = H [m].

Indeed, since we suppose hash to be a secure hash function, took random vectors r1 and r2

independent from each other even in Forge stage because of the one-pad time applied to the

vector e.

The probability p(m|ch) = p(m|r1 ⊕S ·h⊕A · r2) = p(m|(r1,r2)) = p(m,e) = p(m). So the

Shannon entropy H [m|ch] = H [m]

This means the chameleon hash ch does not give any information about the message

and permits to guarantee the transparency i.e. only the publisher and the delegate shall be

able to distinguish an original pair message-hash from a modified pair.

Parameters: Usually hash functions have security of 2n2 against collisions attacks pro-

cessed by the general birthday paradox. Here we suggest parameters (n,`,k, p) = (160,160,770,0.05)

such that the cost of GISD in work-factor(binary operations) is 2120 [54]. For the under-

line hash hash, we used the RFSB based on coding theory. The matrix A is presented in the

systematic form to reduce the required storage space.

8.6.1 Chameleon signature

A chameleon signature scheme is a signature scheme which allows the signer of a mes-

sage to designate a delegate who may subsequently modify parts of the signed message

while maintaining a valid signature of the signer on the new message.

It is a direct application of the chameleon hash functions. The general principle is to

permit the modification of the message by authorized persons called delegate without

changing the signature (hash). For this chameleon signature, we give a scheme that al-

lows to modify only some parts of the message. Formally before signing, the signer splits

the message into several parts and hashes every modifiable part by a chameleon hash

function attached to a delegate public key.

Let S be a cryptographically classical secure signature scheme with associated verification

algorithm VerifS. Indeed as defined in [73] we assume that S is existentially unforgeable

against chosen message attacks(EU-CMA).

In the following we will restrict the study to a single delegate because the process is the

same for more delegates. It is simply sufficient to use the chameleon hash for each block

by the specific public key of the chosen delegate. We will use a similar construction as

[4, 39, 40].

126

Page 137: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

Design principle

:

• Keys Generation (KG):

Generate two key pairs, one for the signer and one for the delegate.

– (d sk,d pk), the delegate key pair of the chameleon hash see the section 8.3.2.

– (ssk, spk), the signer key pair for the signature scheme S.

• Sign: Sign a message m ∈ F∗2 by using the signer private key ssk, the delegate public

key d pk and a random coins to produce the signature σ

Σ := (σ,r ) ← Sign(m,r, ssk,d pk)

• VerifSign: Outputs a bit b ∈ {true, false} verifying the correctness of a signature of σ

by using both public keys spk and d pk

b ←VerifSign(m,Σ, spk,d pk)

• ForgeSign: Modification of m by m′ without changing σ by using the delegate secret

key d sk

Σ′ := (σ,r ′) = ForgeSign(d sk,m,m′,Σ)

Our chameleon signature: CS

Let m = (m0, ...,mn) the message, K ⊆ {0, ...,n} the set of the modifiable parts index and

q = |K|.Before signing, the signer converts the message m into a new message m attached to a

random coin r $←− Fq(n+`)2 that allows to the delegate to modify the message without chang-

ing the signature because by this way the internal hash function used by S will get the

same input for an appropriate delegate.

• Sign:

– Compute, for each i ∈ K

mi =

CH(d pk,mi ,ri ) if i ∈ K, wher e ri $←− Fn+`2 ;

mi otherwise.

and set m = (m0, ...,mn), r = ri1‖...‖riq .

127

Page 138: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

– Compute σ = S(m, ssk, spk), and provideΣ := (σ,r )

the chameleon signature is (m,Σ)

• ForgeSign: for a new message m′ from which modifications are done only on prede-

termined blocks, for instance if the the block mi where i ∈ K is modified to m′i , the

delegate computes r ′i such that CH(d pk,mi ,ri ) = CH(d pk,m′

i ,r ′i ) corresponding to

the modified part as it is done in the section 8.3.2, that means m = m′ since mi = m′i

for i ∉ K.

• VerifSign: For Verification, compute m, and verify with the public key spk.

Given (m,Σ := (σ,ri1‖...‖riq )), Compute for K := {i1, ..., iq }

mi =

CH(d pk,mi ,ri ) if i ∈ K

mi otherwise.

and set m = (m0, ...,mn).

{true, false} = VerifS(m, spk,d pk)

Security of chameleon signature: CS

As a classical signature scheme, the data integrity and the non-repudiation must also be

met in the chameleon context.In [4] Ateniese et al. identify security requirements for

chameleon signature and this work was revisited and improved by Brzuska et al. in [39].

They defined properties that a strong chameleon signature scheme should provide:

1. Unforgeability: It should be impossible for anyone to forge signatures in the name

of the original signer or one delegate signer.

• Only the legitimate signer can generate a valid original signature.

• Only the legitimate delegate signer can generate a valid chameleon signature,

even the original signer can not.

2. Immutability: The delegate is able to modify admissible parts of a message, but he

should not be able to modify other parts of the message.

3. Privacy: It should be infeasible to reproduce or to derive information of the original

message (part) from modified messages.

4. Transparency: Only the signer and the delegate should be able to distinguish a orig-

inal pair Message-signature from a modified pair.

5. Accountability: the signer and/or the delegate are able to prove in some case a

trusted third party a pair Message-signature is original or modified.

128

Page 139: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

In [39], Brzuska et al. considered that a chameleon signature is secure if it meets simulta-

neously all these properties. And they showed at the same time the relationships of these

security properties by claiming that Transparency meets Privacy, Accountability meets

Unforgeability and for any other pair, they are independent from each other.

Théorème 8.6.1 The chameleon signature defined above is immutable, transparent, ac-

countable if the signature scheme is EU-CMA.

Preuve 8.7

• Immutability:

Let A be a polynomial time adversary against this property and SIGN a chameleon

signature oracle.

A chameleon signature is immutable if the follow experiment returns 1 with a negli-

gible advantage.

ExpCSImm :

– Generate a signer key pair (ssk, spk)

– From (mi ,d pki ) getΣi ← SIGN(mi ,d pki ) with 0 ≤ i ≤ q

– (m,d pk,Σ) ← A Sign(.,.,ssk,.)(spk), where m a non legitimate modification of a

certain mi for d pki = d pk.

– Return 1 if VerifSign(m,Σ, spk,d pk) = true and

for every i = 0...., q, we have

* d pki 6= d pk or

* m is not a correct modification of mi under the same key d pk = d pki

Now, by this experiment:

– if d pki 6= d pk for every i = 0...., q that means σ ∈Σ is obtain without using the

underlying signature scheme S.

– If m is not a correct modification of a certain mi under the same key d pk =

d pki .

Then ∃ j ∉ Ki such that m j 6= mi j , where Ki the set of the modifiable parts index

of mi . As S processes directly on the block mi j without using the underlying

chameleon hash function.

Then both these two states break S with some advantage.

129

Page 140: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

• Transparency:

Notice that for a chameleon signatureΣ := (σ,ri1‖...‖riq )), the ri j parameters are only

used into the underlying chameleon hash function which and the semantically secure

of. Since, as seen in section 8.3.2, r ′1 = r1 ⊕E · (h⊕h′)⊕A ·e and r ′

2 = e ⊕X · (h⊕h′)⊕ r2

for a random e then these entropies H [r ′1|ch] = H [r ′

1] and H [r ′2|ch] = H [r ′

2].

• Accountability:

Here, for simplicity, we consider the accountability defined in [4] called weak-accountability

in [39] where a non honest signer is not able to accuse the honest delegate. For the

other direction, we do a slightly modification by appending the every message from a

additional private as it is done in [40].

Here the adversary A has access to a forge oracle FORGE which is able to give "legit-

imate" collision (m′i ,Σ′

i ) ← FORGE(mi ,Σi ), for i = 0, ..., q. at the end the A returns

(m,Σ, spk) a probably correct modified signature where m is the modification of a

mi . This means adversary have got an chameleon hash collision without private key.

8.8 Conclusion

In this chapter, we have proposed a new chameleon hash function based on the LPN Prob-

lem. The resulting chameleon hash function, is not non-interactive, easy to implement,

uses unforgeable standard hash function secure against chosen message attacks. For fur-

ther works, we will study the implementation of this scheme on embedded device and to

improve the efficiency and key size, we will investigate the use of Toeplitz matrices.

130

Page 141: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Conclusion et perspectives

“Comment la fin justifierait-elle les

moyens? Il n’y a pas de fin, seulement

des moyens à perpétuité.”

René Char

Cette thèse a été pour moi une riche exploration à travers les concepts mathématiques

de la cryptographie du futur. Cette exploration m’a permis de trouver de nouvelles appli-

cations de la théorie des codes correcteurs d’erreurs, et de la théorie des réseaux arithmé-

tiques.

Ceci trouve sa motivation du fait de l’existence d’un certain nombres d’algorithmes qui

une fois implémentés sur machines quantique permettrait de casser les problèmes sous-

jacents à la cryptographie basée sur la théorie des nombres. Entre autres les principaux

challenges étaient de concevoir des systèmes rapides, résistants de manière théorique aux

machines classiques et quantiques, et qui présentent aussi une sécurité pratique faces at-

taques connues selon la primitive étudiée.

Nos contributions ont été développées à travers les quatre derniers chapitres et ici nous

faisons le point ici sur les différents chapitres de cette thèse et proposons quelques per-

spectives.

Les attaques critiques en Cryptographie basée sur les Codes Dans ce chapitre nous

avons analysé la vulnérabilité des cryptosystèmes de McEliece, Niederreiter, et HyMES

face à plusieurs attaques critiques. Tous les schémas ont montré des faiblesses face à la

pluspart de ces attaques, HyMES contre toutes les attaques sauf l’attaque de messages

reliés. Ce résultat montre l’importance des conversions pour ces cryptosytèmes qui pro-

tègent contre les attaques critiques.

Nous avons proposé ici une nouvelle version de conversion spécifique aux schémas basés

sur les codes qui permet d’obtenir une plus petite redondance des données.

À l’avenir, il serait peut être intéressant de penser à réduire davantage le redondance

et de le nombre d’étapes de la conversion.

131

Page 142: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

CHAPITRE 8. A LPN-BASED CHAMELEON HASH FUNCTION

Implémentations de Fonctions de Hachage et chiffrements par Flux basés sur les Codes

Nous avons étudié FSB, SFSB, RFSB, SYND, 2SC et XSYND et essayé d’améliorer leurs per-

formances en implémentation logicielle. Nous avons réussi à battre les résultats des im-

plémentations de référence disponibles.

Le problème du décodage par syndrome conduit à beaucoup d’idées de fonctions de

hachage et PRNGs.

À l’avenir, afin d’améliorer la mise en œuvre de ces Implémentations, il serait intéres-

sant de faire cette étude sur d’autres plate-formes telles que l’architecture ARMv8 ou des

processeurs qui prennent en charge des instructions vectorielles (AVX, AVX2) ou-bien im-

plémentation sur GPU.

Un chiffrement par flux et prouvé sûr: SBS nous avons proposé un nouveau chiffre-

ment par flux basé sur les codes, appelé SBS, en utilisant le parallélisme. Sa performance

est comparable à l’AES-CTR, il fonctionne à 7,8 cycles par byte, tandis que la performance

de l’AES-CTR est d’environ 7,59 cycles par byte. Nous avons effectué une analyse détaillée

de sécurité, en particulier, nous avons montré que SBS est sécurisé contre les attaques les

plus connues telles que les attaques ISD et attaques GBA.

Un PRNG basé sur des Problèmes de la Théorie des Réseaux Dans ce chapitre, nous

avons présenté un PRNG basé sur des problèmes de réseau arithmétique au pire des cas ,

en se basant sur la difficulté à résoudre ISIS. Nous avons prouvé l’indistingabilité de notre

PRNG d’une véritable séquence purement aléatoire, à condition que le SIS soit difficile

pour l’ensemble de paramètres appliqués.

Notre algorithme est de loin plus lent que les références telles que AES-CTR et requiert

beaucoup d’espace pour stocker les deux matrices. Il serait judicieux de penser à définir

le concept de mot régulier afin de ganger en vitesse sur les calculs.

A LPN-Based Chameleon Hash Function Dans ce chapitre nous avions proposé une

première fonction de Hachage caméléon basé sur le problème LPN. notre fonction de

hachage est non-interactive et est facile à implémenter. Cependant nous avons suggérer

l’utilisation de matrice uniformément aléatoire qui demande beaucoup d’espace mé-

moire. Nous pensons à l’avenir bâtir une telle fonction de hachage sur la version poly-

nomiale de LPN et/ou d’utiliser les matrices Toeplitz aléatoires tout en gardant le même

niveau de sécurité.

132

Page 143: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Bibliographie

[1] W. Alexi, B. Chor, O. Goldreich, and C. P. Schnorr. RSA and Rabin functions: certain

parts are as hard as the whole. SIAM J. Comput., 17(2):194–209, 1988. 89

[2] B. Applebaum, D. Cash, C. Peikert, and A. Sahai. Fast cryptographic primitives and

circular-secure encryption based on hard learning problems. In Shai Halevi, ed-

itor, CRYPTO, volume 5677 of Lecture Notes in Computer Science, pages 595–618.

Springer, 2009. 109

[3] G. Ateniese, D. H. Chou, B. De Medeiros, and G. Tsudik. Sanitizable sig-

natures. In Computer Security–ESORICS 2005, pages 159–177. Springer, 2005.

http://www.ics.uci.edu/ gts/paps/esorics-2005.pdf. 120

[4] G. Ateniese, D.H. Chou, B. de Medeiros, and G. Tsudik. Sanitizable signatures.

In Sabrinade Capitani di Vimercati, Paul Syverson, and Dieter Gollmann, editors,

Computer Security ESORICS 2005, volume 3679 of Lecture Notes in Computer Sci-

ence, pages 159–177. Springer Berlin Heidelberg, 2005. 126, 128, 130

[5] G. Ateniese and B. de Medeiros. Identity-based chameleon hash and applications.

In Financial Cryptography, pages 164–180. Springer, 2004. 120

[6] G. Ateniese and B.d Medeiros. On the key exposure problem in chameleon hashes.

In Security in Communication Networks, pages 165–179. Springer, 2005. 120

[7] D. Augot, M. Finiasz, P. Gaborit, S. Manuel, and N. Sendrier. SHA-3 proposal: FSB.

Submission to the SHA-3 NIST competition, 2008. 91

[8] D. Augot, M. Finiasz, and N. Sendrier. A Family of Fast Syndrome Based Crypto-

graphic Hash Functions. In E. Dawson and S. Vaudenay, editors, Mycrypt 2005, vol-

ume 3715, pages 64–83. Springer, 2005. 44, 91, 93, 95, 100, 101

[9] Daniel Augot, Matthieu Finiasz, and Nicolas Sendrier. A fast provably secure cryp-

tographic hash function. IACR Cryptology ePrint Archive, 2003:230, 2003. 45, 73, 76,

119

133

Page 144: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[10] Daniel Augot, Matthieu Finiasz, and Nicolas Sendrier. A family of fast syndrome

based cryptographic hash functions. In Ed Dawson and Serge Vaudenay, editors,

Progress in Cryptology - Mycrypt 2005, First International Conference on Cryptology

in Malaysia, Kuala Lumpur, Malaysia, September 28-30, 2005, Proceedings, volume

3715 of Lecture Notes in Computer Science, pages 64–83. Springer, 2005. 32

[11] A. Becker, A. May A. Joux, and A. Meurer. Decoding random binary linear codes

in 2(n/20) : How 1+1=0 improves information set decoding. Eurocrypt 2012. LNCS,

Springer-Verlag, 2012. 32, 40, 100

[12] M. Bellare and D. Micciancio. A new paradigm for collision-free hashing: incre-

mentality at reduced cost. In Proceedings of the 16th annual international confer-

ence on Theory and application of cryptographic techniques, EUROCRYPT’97, pages

163–192. Springer, 1997. 100

[13] M. Bellare, D. Pointcheval, A. Desai, and P. Rogaway. Relations among notions of

security for Public-Key Encryption schemes. Crypto ’98, LNCS 1462:26–45, 1998.

36, 62

[14] M. Bellare and P. Rogaway. Optimal asymmetric encryption. In EUROCRYPT, pages

92–111, 1994. 62, 69

[15] Mihir Bellare, Anand Desai, David Pointcheval, and Phillip Rogaway. Relations

among notions of security for public-key encryption schemes. In Hugo Krawczyk,

editor, Advances in Cryptology — CRYPTO ’98, volume 1462 of Lecture Notes in Com-

puter Science, pages 26–45. Springer Berlin Heidelberg, 1998. 36, 37

[16] Mihir Bellare and Amit Sahai. Non-malleable encryption: Equivalence between two

notions, and an indistinguishability-based characterization. In Michael Wiener, ed-

itor, Advances in Cryptology CRYPTO99, volume 1666 of Lecture Notes in Computer

Science, pages 519–536. Springer Berlin Heidelberg, 1999. 36

[17] C. Berbain, H. Gilbert, and J. Patarin. Quad: A Multivariate Stream Cipher with

Provable Security. J. Symb. Comput., 44(12):1703–1723, 2009. 47

[18] C. Berbain, H. Gilbert, and J. Patarin. QUAD: A multivariate stream cipher with

provable security. J. Symb. Comput., 44(12):1703–1723, 2009. 92, 95

[19] Côme Berbain, Henri Gilbert, and Jacques Patarin. Quad: A multivariate stream

cipher with provable security. J. Symb. Comput., 44(12):1703–1723, 2009. 8, 109,

116

134

Page 145: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[20] T. P. Berger, P.-L. Cayrel, P. Gaborit, and A. Otmani. Reducing Key Length of the

McEliece Cryptosystem. In Progress in Cryptology – Africacrypt’2009, volume 5580

of LNCS, pages 77–97. Springer, 2009. 89

[21] E. Berlekamp, R. McEliece, and H. van Tilborg. On the Inherent Intractability of

Certain Coding Problems. IEEE Trans. Inform. Theory, 24(3):384–386, 1978. 31, 89

[22] E. Berlekamp, R. McEliece, and H. van Tilborg. On the Inherent Intractability of

Certain Coding Problems. IEEE Transactions on Information Theory, 24(3):384–386,

1978. 52

[23] E. Berlekamp, R. McEliece, and H. van Tilborg. On the inherent intractability of

certain coding problems. IEEE Transactions on Information Theory, 24(2):384–386,

May 1978. 122

[24] D. J. Bernstein. Better price-performance ratios for generalized birthday attacks.

In Workshop Record of SHARCS’07: Special-purpose Hardware for Attacking Crypto-

graphic Systems (2007), 2007. 101

[25] D. J. Bernstein. Grover vs. McEliece. In PQCrypto, volume 6061 of LNCS, pages

73–80. Springer, 2010. 89

[26] D. J. Bernstein, J. Buchmann, and E. Dahmen. Post Quantum Cryptography.

Springer, 1st edition, 2008. 31, 89

[27] D. J. Bernstein, J. Buchmann, and E. Dahmen. Post-Quantum Cryptography.

Springer, 2008. 52

[28] D. J. Bernstein, T. Lange, and C. Peters. Attacking and defending the McEliece cryp-

tosystem. In J. Buchmann and J. Ding, editors, PQCrypto, volume 5299 of LNCS,

pages 31–46. Springer, 2008. 40

[29] D. J. Bernstein, T. Lange, C. Peters, and P. Schwabe. Really fast syndrome-

based hashing. In A. Nitaj and D. Pointcheval, editors, Progress in Cryptology–

AFRICACRYPT 2011, volume 6737 of LNCS, pages 134–152. Springer, 2011. http:

//cryptojedi.org/papers/#rfsb. 100

[30] Daniel J Bernstein, Tanja Lange, Christiane Peters, and Peter Schwabe. Really fast

syndrome-based hashing. In Progress in Cryptology–AFRICACRYPT 2011, pages

134–152. Springer, 2011. 45, 73, 78, 85, 119

[31] D.J. Bernstein, J. Buchmann, and E. Dahmen. Post Quantum Cryptography.

Springer Publishing Company, Incorporated, 2008. 116

135

Page 146: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[32] T. A. Berson. Failure of the McEliece Public-Key Cryptosystem Under Message-

Resend and Related-Message Attack. Crypto 97, 1997. 57, 58

[33] G. Bertoni, J. Daemen, M. Peeters, and G. Van Assche. Sponge functions. In ECRYPT

hash workshop. Citeseer, 2007. 116

[34] E. Biham and A. Shamir. Differential cryptanalysis of des-like cryptosystems. In

Proceedings of the 10th Annual International Cryptology Conference on Advances in

Cryptology, CRYPTO ’90, pages 2–21. Springer, 1991. 116

[35] E. Biham and A. Shamir. Differential cryptanalysis of the full 16-round des. In

Proceedings of the 12th Annual International Cryptology Conference on Advances

in Cryptology, CRYPTO ’92, pages 487–496. Springer, 1993. 116

[36] B. Biswas and N. Sendrier. Mceliece Cryptosystem Implementation: Theory and

Practice. In PQCrypto, pages 47–62, 2008. 39, 52

[37] A. Blum, A. Kalai, and H. Wasserman. Noise-tolerant learning, the parity problem,

and the statistical query model. J. ACM, 50(4):506–519, July 2003. 122

[38] E. Brier, J.-S. Coron, T. Icart, D. Madore, H. Randriam, and M. Tibouchi. Efficient

indifferentiable hashing into ordinary elliptic curves. In Tal Rabin, editor, Advances

in Cryptology – CRYPTO 2010, volume 6223 of Lecture Notes in Computer Science,

pages 237–254. Springer Berlin Heidelberg, 2010. 119

[39] C. Brzuska, M. Fischlin, T. Freudenreich, A. Lehmann, M. Page, J. Schelbert,

D. Schröder, and F. Volk. Security of sanitizable signatures revisited. In Stanislaw

Jarecki and Gene Tsudik, editors, PKC 2009, volume 5443 of LNCS, pages 317–336,

Irvine, CA, USA, March 18-20, 2009, 2009. Springer, Berlin, Germany. 126, 128, 129,

130

[40] S. Canard and A. Jambert. On extended sanitizable signature schemes. In Josef

Pieprzyk, editor, Topics in Cryptology - CT-RSA 2010, volume 5985 of Lecture Notes

in Computer Science, pages 179–194. Springer Berlin Heidelberg, 2010. 126, 130

[41] R. Canetti, O. Goldreich, and S. Halevi. The random oracle methodology, revisited.

J. ACM, 51(4):557–594, July 2004. 30

[42] A. Canteaut and N. Sendrier. Cryptoanalysis of the original McEliece cryptosystem.

In ASIACRYPT, pages 187–199, 1998. 56

[43] P.-L. Cayrel, C.T. Gueye, O. Ndiaye, and R. Niebuhr. Critical attacks in code-based

cryptography. International Journal of Information and Coding Theory, 3(2):158–

176, 2015. 7, 8, 9, 40, 51

136

Page 147: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[44] P.-L. Cayrel and M. Meziani. Post-quantum cryptography: code-based signatures.

In Proceedings of the 2010 international conference on Advances in computer science

and information technology, pages 82–99. Springer-Verlag, 2010. 31

[45] P.-L. Cayrel, M. Meziani, and O. Ndiaye. Sbs: A fast and secure syndrome-based

stream cipher. USTHB, Algiers, Algeria, November 2-5, 2015, 2015. 8, 9

[46] P.-L. Cayrel, M. Meziani, O. Ndiaye, R. Lindner, and R. Silva. A Pseudorandom Num-

ber Generator Based on Worst-Case Lattice Problems. 2016. 8, 9

[47] P.-L. Cayrel, M. Meziani, O. Ndiaye, and Q. Santos. Efficient software implemen-

tations of code-based hash functions and stream-ciphers. In Çetin Kaya Koç, Si-

hem Mesnager, and Erkay Savas, editors, Arithmetic of Finite Fields, volume 9061 of

LNCS, pages 187–203. Springer International Publishing, 2015. 1, 7, 8, 9, 72, 90, 104,

105, 108, 115, 119

[48] Ivan B. Damgaard. A design principle for hash functions. In Advances in Cryptology

(CRYPTO ’89), pages 416–427, Berlin - Heidelberg - New York, August 1990. Springer.

43, 45

[49] I. Damgård and S. Park. Is public-key encryption based on lpn practical? IACR

Cryptology ePrint Archive, 2012:699, 2012. 121

[50] R. de Beer, D. van Ormondt, F. Di Cesare, D. Graveron-Demilly, DA Karras, and

Z. Starcuk. Accelerating batched 1D-FFT with a CUDA-capable computer. In Imag-

ing Systems and Techniques (IST), 2010 IEEE International Conference on, pages

446–451. IEEE, 2010. 115

[51] H. Dinh, C. Moore, and A. Russell. McEliece and Niederreiter cryptosystems that re-

sist quantum Fourier sampling attacks. In Proceedings of the 31st annual conference

on Advances in cryptology, CRYPTO’11. Springer-Verlag, 2011. 89

[52] A. Diouf and O. Ndiaye. Idempotent, zero divisors and nilpotent elements of the

quaternion and octonion rings over Fpk . Pioneer Journal of Algebra, Number Theory

and its Applications, 8(1-2):17–32, September & December 2014. 9

[53] A. Duc and S. Vaudenay. Progress in Cryptology – AFRICACRYPT 2013: 6th Interna-

tional Conference on Cryptology in Africa, Cairo, Egypt, June 22-24, 2013. Proceed-

ings, chapter HELEN: A Public-Key Cryptosystem Based on the LPN and the De-

cisional Minimal Distance Problems, pages 107–126. Springer Berlin Heidelberg,

Berlin, Heidelberg, 2013. 121

137

Page 148: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[54] D. Engelbert, R. Overbeck, and A. Schmidt. A summary of mceliece-type cryptosys-

tems and their security. J. Mathematical Cryptology, 1(2):151–199, 2007. 126

[55] M. Finiasz, P. Gaborit, and N. Sendrier. Improved fast syndrome based crypto-

graphic hash functions. In V. Rijmen, editor, ECRYPT Hash Workshop 2007, 2007.

44

[56] M. Finiasz, P. Gaborit, N. Sendrier, and S. Manuel. Sha-3 proposal: Fsb, Oct 2008.

Proposal of a hash function for the NIST SHA-3 competition. 73, 77, 119

[57] M. Finiasz and N. Sendrier. Security Bounds for the Design of Code-Based Cryptosys-

tems, pages 88–105. Springer Berlin Heidelberg, Berlin, Heidelberg, 2009. 40

[58] M. Finiasz and N. Sendrier. Security Bounds for the Design of Code-based Cryp-

tosystems. In Mitsuru Matsui, editor, Advances in Cryptology - ASIACRYPT 2009,

number 5912 in LNCS, pages 88–105. Springer, 2009. 101

[59] J.-B. Fischer and J. Stern. An efficient pseudo-random generator provably as secure

as syndrome decoding. In EUROCRYPT’96: Proc. of the 15th annual international

conference on Theory and application of cryptographic techniques, pages 245–255.

Springer, 1996. 74

[60] J.-B. Fischer and J. Stern. An efficient pseudo-random generator provably as secure

as syndrome decoding. In EUROCRYPT’96: Proc. of the 15th annual international

conference on Theory and application of cryptographic techniques, pages 245–255.

Springer, 1996. 89, 91, 92, 93, 94, 97

[61] Jean-Bernard Fischer and Jacques Stern. An efficient pseudo-random generator

provably as secure as syndrome decoding. In Ueli Maurer, editor, Advances in

Cryptology—EUROCRYPT 96, volume 1070 of Lecture Notes in Computer Science,

pages 245–255. Springer-Verlag, 12–16 May 1996. 76

[62] P.-A. Fouque and G. Leurent. Cryptanalysis of a hash function based on quasi-cyclic

codes. In Tal Malkin, editor, CT-RSA, volume 4964 of LNCS, pages 19–35. Springer,

2008. 45

[63] E. Fujisaki and T. Okamoto. Secure integration of asymmetric and symmetric en-

cryption schemes. Proc. of CRYPTO ’99, LNCS 1666:535–554, 1999. 63, 67

[64] P. Gaborit, C. Laudaroux, and N. Sendrier. SYND: a Very Fast Code-Based Cipher

Stream with a Security Reduction. In IEEE Conference, ISIT’07, pages 186–190, Nice,

France, July 2007. 1, 89, 90, 91, 92, 104

138

Page 149: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[65] P. Gaborit and G. Zémor. Asymptotic improvement of the gilbert-varshamov bound

for linear codes. volume abs/0708.4164, 2007. 89, 103

[66] Philippe Gaborit, Cedric Lauradoux, and Nicolas Sendrier. Synd: a fast code-based

stream cipher with a security reduction. In Information Theory, 2007. ISIT 2007.

IEEE International Symposium on, pages 186 –190, 24-29 2007. 8, 111, 116

[67] Philippe Gaborit, Cedric Lauradoux, and Nicolas Sendrier. Synd: a very fast code-

based cipher stream with a security reduction. In Proceedings of the 2007 IEEE

International Symposium on Information Theory - ISIT 2007, pages 186–190, Nice,

France, june 2007. 46, 74, 79

[68] H. Gilbert, M. J. B. Robshaw, and Y. Seurin. How to Encrypt with the LPN Problem,

pages 679–690. Springer Berlin Heidelberg, Berlin, Heidelberg, 2008. 122

[69] O. Goldreich, S. Goldwasser, and S. Micali. How to construct random functions. J.

ACM, 33(4):792–807, August 1986. 122

[70] O. Goldreich, R. Impagliazzo, L. Levin, R. Venkatesan, and D. Zuckerman. Security

preserving amplification of hardness. In Proceedings of the 31st Annual Symposium

on Foundations of Computer Science, SFCS ’90, pages 318–326 vol.1. IEEE Computer

Society, 1990. 96

[71] O. Goldreich and L. A. Levin. A hard-core predicate for all one-way functions. In

Proceedings of the twenty-first annual ACM symposium on Theory of computing,

STOC ’89, pages 25–32. ACM, 1989. 34, 98

[72] Oded Goldreich and Leonid A. Levin. A hard-core predicate for all one-way func-

tions. In STOC, pages 25–32. ACM, 1989. 113

[73] S. Goldwasser, S. Micali, and R.L. Rivest. A digital signature scheme secure against

adaptive chosen-message attacks. SIAM J. Comput., 17(2):281–308, April 1988. 126

[74] J. D. Golic. Cryptanalysis of alleged a5 stream cipher. In Proceedings of the 16th

annual international conference on Theory and application of cryptographic tech-

niques, EUROCRYPT’97, pages 239–255. Springer, 1997. 116

[75] J. Håstad. Solving simultaneous modular equations of low degree. SIAM J. Comput.,

17(2):336–341, 1988. 54

[76] J. Håstad, R. Impagliazzo, L. A. Levin, and M. Luby. Construction of a pseudo-

random generator from any one-way function. SIAM Journal on Computing, 28:12–

24, 1993. 122

139

Page 150: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[77] S. Heyse, I. von Maurich, and T. Güneysu. Smaller keys for code-based cryptogra-

phy: Qc-mdpc mceliece implementations on embedded devices. In Proceedings of

the 15th International Conference on Cryptographic Hardware and Embedded Sys-

tems, CHES’13, pages 273–292, Berlin, Heidelberg, 2013. Springer-Verlag. 37

[78] J. Hoffstein, J. Pipher, and J. H. Silverman. Algorithmic Number Theory: Third In-

ternational Symposiun, ANTS-III Portland, Oregon, USA, June 21–25, 1998 Proceed-

ings, chapter NTRU: A ring-based public key cryptosystem, pages 267–288. Springer

Berlin Heidelberg, Berlin, Heidelberg, 1998. 41

[79] J. Hong and P. Sarkar. Rediscovery of time memory tradeoffs. Cryptology ePrint

Archive, Report 2005/090, 2005. http://eprint.iacr.org/. 116

[80] N. J. Hopper and M. Blum. Secure Human Identification Protocols, pages 52–66.

Springer Berlin Heidelberg, Berlin, Heidelberg, 2001. 122

[81] H. Imai and K. Kobara. Semantically Secure McEliece Public-Key Cryptosystems -

Conversions for McEliece PKC. Proc. of 4th International Workshop on Practice and

Theory in Public Key Cryptosystems (PKC 01), pages 19–35, 2001. 40, 60, 61

[82] H. Imai and K. Kobara. Semantically Secure McEliece Public-Key Cryptosystems -

Conversions for McEliece PKC. Proc. of 4th International Workshop on Practice and

Theory in Public Key Cryptosystems (PKC 01), pages 19–35, 2001. 64, 66, 67, 69

[83] Russell Impagliazzo and Moni Naor. Efficient cryptographic schemes provably as

secure as subset sum. J. Cryptology, 9(4):199–216, 1996. 113

[84] B. S. Kaliski. Elliptic Curves and Cryptography: A Pseudorandom Bit Generator and

Other Tools. Phd thesis, MIT, Cambridge, MA, USA, 1988. 89

[85] E. Käsper and P. Schwabe. Faster and timing-attack resistant AES-GCM. In

Christophe Clavier and Kris Gaj, editors, Cryptographic Hardware and Embedded

Systems – CHES 2009, volume 5747 of LNCS, pages 1–17. Springer, 2009. 104

[86] J. Katz and J.S. Shin. Advances in Cryptology - EUROCRYPT 2006: 24th Annual In-

ternational Conference on the Theory and Applications of Cryptographic Techniques,

St. Petersburg, Russia, May 28 - June 1, 2006. Proceedings, chapter Parallel and Con-

current Security of the HB and HB + Protocols, pages 73–87. Springer Berlin Hei-

delberg, Berlin, Heidelberg, 2006. 121

[87] A. Kerckhoffs. La cryptographie militaire. des sciences militaires, IX:161–191, 1983.

3

140

Page 151: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[88] K. Kobara and H. Imai. Semantically secure McEliece public-key cryptosystems -

conversions for McEliece PKC. In In Proc. of 4th International Workshop on Practice

and Theory in Public Key Cryptosystems (PKC ’01), pages 19–35, 2001. 7

[89] K. Kobara and H. Imai. On the One-Wayness Against Chosen-Plaintext Attacks of

the Loidreau’s Modified McEliece PKC. IEEE Transactions on Information Theory,

49(12):3160–3168, 2003. 51, 62

[90] H. Krawczyk and T. Rabin. Chameleon hashing and signatures. In Proc. of NDSS,

pages 143–154. Citeseer, 2000. 120

[91] Y.X. Li, R.H. Deng, and X.M. Wang. The equivalence of McEliece’s and niederreiter’s

public-key cryptosystems. IEEE Trans. Inform. Theory, 40:271–273, 1994. 38

[92] M. Luby and C. Rackoff. How to construct pseudorandom permutations from pseu-

dorandom functions. SIAM J. Comput., 17(2):373–386, April 1988. 122

[93] V. Lyubashevsky, D. Micciancio, C. Peikert, and A. Rosen. Swifft: A modest proposal

for fft hashing. In Kaisa Nyberg, editor, Fast Software Encryption, volume 5086 of

Lecture Notes in Computer Science, pages 54–72. Springer Berlin Heidelberg, 2008.

119

[94] Vadim Lyubashevsky and Daniele Micciancio. Generalized compact knapsacks are

collision resistant. In Michele Bugliesi, Bart Preneel, Vladimiro Sassone, and Ingo

Wegener, editors, ICALP (2), volume 4052 of Lecture Notes in Computer Science,

pages 144–155. Springer, 2006. 108

[95] Vadim Lyubashevsky, Daniele Micciancio, Chris Peikert, and Alon Rosen. Swifft:

A modest proposal for fft hashing. In Kaisa Nyberg, editor, FSE, volume 5086 of

Lecture Notes in Computer Science, pages 54–72. Springer, 2008. 1, 109, 110, 112,

115, 116

[96] A. May, A. Meurer, and E. Thomae. Decoding random linear codes in O(20.054n).

In Proceedings of the 17th international conference on The Theory and Application

of Cryptology and Information Security, ASIACRYPT’11, pages 107–124. Springer-

Verlag, 2011. 40

[97] R. McEliece. A Public-Key Cryptosystem Based on Algebraic Coding Theory. The

Deep Space Network Progress Report, DSN PR 42–44, 1978. http://ipnpr.jpl.

nasa.gov/progressreport2/42-44/44N.PDF. 18, 38, 52

[98] C. Mei, H. Jiang, and J. Jenness. CUDA-based AES parallelization with fine-tuned

GPU memory utilization. In Parallel & Distributed Processing, Workshops and Phd

141

Page 152: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

Forum (IPDPSW), 2010 IEEE International Symposium on, pages 1–7. IEEE, 2010.

115

[99] Ralph C. Merkle. Secrecy, authentication, and public key systems. PhD thesis, Stan-

ford University, 1979. 43

[100] Ralph C. Merkle. A certified digital signature. In Advances in Cryptology (CRYPTO

’89), pages 218–238, Berlin - Heidelberg - New York, August 1990. Springer. 43

[101] M. Meziani, P.-L. Cayrel, and S. M. Alaoui El Yousfi. 2SC: An Efficient Code-Based

Stream Cipher. In ISA, volume 200 of Communications in Computer and Informa-

tion Science, pages 111–122. Springer, 2011. 1, 89, 90, 104, 105

[102] M. Meziani, Ö. Dagdelen, P.-L. Cayrel, and S.M.Y. Alaoui. S-FSB: An improved vari-

ant of the FSB hash family. In Tai-Hoon Kim, Hojjat Adeli, Rosslin John Robles, and

Maricel O. Balitanas, editors, Information Security and Assurance - International

Conference, ISA 2011, Brno, Czech Republic, August 15-17, 2011. Proceedings, vol-

ume 200 of Communications in Computer and Information Science, pages 132–145.

Springer, 2011. 44, 73, 77, 119

[103] M. Meziani, G. Hoffmann, and P.-L. Cayrel. Improving the performance of the SYND

stream cipher. In Aikaterini Mitrokotsa and Serge Vaudenay, editors, AFRICACRYPT,

volume 7374 of LNCS, pages 99–116. Springer, 2012. 74, 81, 108

[104] Mohammed Meziani, Pierre-Louis Cayrel, and Sidi Mohamed El Yousfi Alaoui. 2SC:

An efficient code-based stream cipher. In Tai-Hoon Kim, Hojjat Adeli, Rosslin John

Robles, and Maricel O. Balitanas, editors, ISA, volume 200 of Communications in

Computer and Information Science, pages 111–122. Springer, 2011. 74, 80

[105] Daniele Micciancio. Generalized compact knapsacks, cyclic lattices, and efficient

one-way functions. In Computational Complexity. Springer, 2007. 108

[106] Daniele Micciancio and Oded Regev. Worst-case to average-case reductions based

on gaussian measures. SIAM J. Comput., 37(1):267–302, 2007. 110, 112, 113

[107] A. Miklós. Generating hard instances of lattice problems. Electronic Colloquium on

Computational Complexity (ECCC), 3(7), 1996. 33, 108, 113

[108] L. Minder and A. Sinclair. The extended k-tree algorithm. In Proc. of the twenti-

eth Annual ACM-SIAM Symposium on Discrete Algorithms, SODA’09, pages 586–595,

2009. 101

142

Page 153: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[109] R. Misoczki, J. P. Tillich, N. Sendrier, and P. S. L. M. Barreto. Mdpc-mceliece: New

mceliece variants from moderate density parity-check codes. In Information The-

ory Proceedings (ISIT), 2013 IEEE International Symposium on, pages 2069–2073,

July 2013. 37

[110] F. Muller. Differential attacks and stream ciphers. In The State of the Art of Stream

Ciphers, Workshop Record, ECRYPT Network of Excellence in Cryptology, pages 133–

146, 2004. 116

[111] M. Naor and M. Yung. Public-key cryptosystems provably secure against chosen

ciphertext attacks. In Proceedings of the Twenty-second Annual ACM Symposium on

Theory of Computing, STOC ’90, pages 427–437, New York, NY, USA, 1990. ACM. 35

[112] O. Ndiaye. One cyclic codes over Fpk + vFpk + v2Fpk + ... + v rFpk . CoRR,

abs/1511.01955, 2015. 9

[113] R. Niebuhr. Application of Algebraic-Geometric Codes in Cryptography. Verlag Dr.

Müller, 2006. 55

[114] R. Niebuhr and P.-L. Cayrel. Broadcast attacks against code-based encryption

schemes. In WEWORC, 2011. 54, 55, 66, 69

[115] R. Niebuhr, P.-L. Cayrel, and J. Buchmann. Improving the efficiency of Generalized

Birthday Attacks against certain structured cryptosystems. In WCC 2011, LNCS,

pages 163–172. Springer, Apr 2011. 102

[116] H. Niederreiter. Knapsack-type Cryptosystems and Algebraic Coding Theory. Prob-

lems of Control and Information Theory, 15(2):159–166, 1986. 38, 52

[117] N. Patterson. The algebraic decoding of goppa codes. IEEE Trans. Inf. Theor.,

21(2):203–207, September 2006. 18

[118] Chris Peikert and Brent Waters. Lossy trapdoor functions and their applications. In

Richard E. Ladner and Cynthia Dwork, editors, STOC, pages 187–196. ACM, 2008.

116

[119] C. Peters. Information-Set Decoding for Linear Codes over Fq . In PQCrypto, pages

81–94, 2010. 40

[120] D. Pointcheval. Chosen-Ciphertext security for any One-Way Cryptosystem. In

Proc. of PKC 2000, LNCS 1751:129–146, 2000. 64, 67

[121] E. Prange. The use of information sets in decoding cyclic codes. In Information

Theory, IRE Trans., volume 8, pages 5–9, 1962. 40, 100

143

Page 154: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[122] C. Rackoff and D. Simon. Non-interactive zero-knowledge proof of knowledge

and chosen ciphertext attack. volume 576 of LNCS. in Advances in Cryptology-

CRYPTO’91, 1991. 60

[123] O. Regev. On lattices, learning with errors, random linear codes, and cryptography.

In Proceedings of the Thirty-seventh Annual ACM Symposium on Theory of Comput-

ing, STOC ’05, pages 84–93, New York, NY, USA, 2005. ACM. 121, 122

[124] M.-J. O. Saarinen. Linearization Attacks Against Syndrome Based Hashes. In K. Sri-

nathan, C. Pandu Rangan, and Moti Yung, editors, INDOCRYPT, volume 4859 of

LNCS, pages 1–9. Springer, 2007. 44, 45

[125] M.-J. O. Saarinen. Linearization attacks against syndrome based hashes. In K. Sri-

nathan, C. Pandu Rangan, and Moti Yung, editors, INDOCRYPT, volume 4859 of

LNCS, pages 1–9. Springer, 2007. 100

[126] N. Sendrier. Code-based cryptography. In Encyclopedia of Cryptography and Secu-

rity (2nd Ed.), pages 215–216. Springer, 2011. 31

[127] P. W. Shor. Algorithms for Quantum Computation: Discrete Logarithms and Factor-

ing. In SFCS ’94: Proc. of the 35th Annual Symposium on Foundations of Computer

Science, pages 124–134. IEEE Computer Society, 1994. 89

[128] P. W. Shor. Polynomial-Time Algorithms for Prime Factorization and Discrete Loga-

rithms on a Quantum Computer. SIAM Journal on Computing, 26:1484–1509, 1995.

3, 52

[129] J. Stern. A method for finding codewords of small weight. In G. D. Cohen and

J.Wolfmann, editors, Coding Theory and Applications, volume 388 of Lecture Notes

in Computer Science, pages 106–113. Springer, 1998. 40

[130] H.-M. Sun. Enhancing the security of the mceliece public-key cryptosystem. J. Inf.

Sci. Eng., 16(6):799–812, 2000. 62

[131] H.-M. Sun. Further cryptanalysis of the mceliece public-key cryptosystem. IEEE

Communications Letters, 4(1):18–19, Jan 2000. 60

[132] A. Vardy. The intractability of computing the minimum distance of a code. Infor-

mation Theory, IEEE Transactions on, 43(6):1757–1766, Nov 1997. 32

[133] E. R. Verheul, J. M. Doumen, and H. CA van Tilborg. Sloppy alice attacks! adaptive

chosen ciphertext attacks on the mceliece public-key cryptosystem. In Informa-

tion, Coding and Mathematics, pages 99–119. Springer, 2002. 60

144

Page 155: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

[134] D. Wagner. A Generalized Birthday Problem. In Yung [137], pages 288–303. 45, 101

[135] David Wagner. A generalized birthday problem. In Yung [137], pages 288–303. 110,

116

[136] A. C. Yao. Theory and applications of trapdoor functions (extended abstract). In

FOCS, pages 80–91. IEEE Computer Society, 1982. 96

[137] M. Yung, editor. Advances in Cryptology - CRYPTO 2002, 22nd Annual International

Cryptology Conference, Santa Barbara, California, USA, August 18-22, 2002, Pro-

ceedings, volume 2442 of LNCS. Springer, 2002. 145

[138] Fangguo Zhang, Reihaneh Safavi-Naini, and Willy Susilo. Id-based chameleon

hashes from bilinear pairings. IACR Cryptology ePrint Archive, 2003:208, 2003. 120

145

Page 156: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Résumé

Nom et prénoms du Candidat : Ousmane NDIAYE

Protocoles Post-Quantiques et Attaques Critiques

Les cryptosystèmes basés sur la théorie des codes et ceux basés sur la théorie des réseaux

font partie des familles de cryptographies qui resiteraient à la machine quantique.

Dans cette thèse, nous avons apporté quelques contributions à la cryptographie (symétrique

et asymétrique) basée sur les codes et sur les réseaux.

Entre autres nous avons regardé les attaques critiques face à la cryptographie basée sur

les codes en proposant de façon concrète des modèles d’attaque et donnant une conver-

sion IND-CCA2 spécifique de ces schémas.

Nous avons aussi amélioré la performance logicielle de pratiquement toutes les fonctions

de hachage, PRNG et les schémas de chiffrement par flux basés sur les codes en utilisant

les extensions SIMD. Nous avons réussi à donner de nouveaux PRNG et Chiffrement par

flux basés respectivement sur les réseaux et sur les codes. Enfin nous avons proposé une

fonction de hachage caméléon basée sur les codes ainsi que la signature caméléon corre-

spondante. Tous les schémas que nous avons proposés sont dotés de preuves de sécurité

théorique et pratique.

Mots clés : Cryptographie basée sur les Codes, Cryptographie basée sur les Réseaux, At-

taques Critiques, CCA2, Preuve de sécurité, Modèle Oracle Aléatoire, implémentation

logicielle, chiffrement par flux, décodage par Syndrome, NP-Complétude, Générateur de

nombres pseudo-aléatoire, fonction de hachage caméléon.

Page 157: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

Abstract

Full Name of the Candidate : Ousmane NDIAYE

Post-Quantum Protocols and Critical Attacks

Code-based Cryptography and and Lattice-Based cryptography belong to the cryptogra-

phy’s family which are able to resist against the quantum machine.

In this thesis, we provide some contributions in cryptography(symetric and asymetric)

based on Codes et Lattices.

Indeed, he have studied critical attacks against the code-based cryptography by providing

some concrete attack models and giving an IND-CCA2 specific conversion for schemes.

We also have improved the software implementation of several code-based hash func-

tions , PRNGs and stream ciphers by using the XMM registers. We succeed to build new

PRNGs and stream ciphers based respectively on coding theory and lattice theory. Fi-

nally we provide a chameleon hash function based codes et the corresponding signature

scheme.

All schemes that we have proposed are provided with theoretical and practical security

proofs.

Mots clés : Code-based cryptography, lattice-based cryptography, Critical attacks, CCA2,

Provable security, Random oracle model, software implementations, Stream ciphers, Syn-

drome decoding, NP-Completeness, Pseudorandom number generator, chameleon hash

functions.

Page 158: UNIVERSITÉ CHEIKH ANTA DIOP · Remerciements Les Remerciements! ce texte auquel je pensais pendant toutes les trois années de thèses car étant le plus difficile à rédiger

BIBLIOGRAPHIE

148