190 likes | 373 Views
Post Quantum Cryptography. Code- based signatures. BOURG Guillaume PERRIER Léonard THOMIERES Pierre-Adrien. Sommaire. Introduction Problèmes difficiles Schémas CFS Stern KKS Signatures : À Cercle Aveugles Par identification Conclusion. Introduction.
E N D
Post Quantum Cryptography Code-based signatures BOURG Guillaume PERRIER Léonard THOMIERES Pierre-Adrien
Sommaire • Introduction • Problèmes difficiles • Schémas • CFS • Stern • KKS • Signatures : • À Cercle • Aveugles • Par identification • Conclusion
Introduction • Ecrit par Pierre-Louis Cayrelet Mohammed Meziani • Signature numérique essentiel pour la sécurité. • Algorithmes existants : DSA ECDSA • Repose sur problème logarithme discret • Cassable par algorithme de Shor • Création de schéma reposant sur le problème de décodage par syndrome (SD) • 1978 McEliece • Aucune attaque efficace trouvée • Problème : pas inversible donc pas utilisable pour signature • 2001 CFS (Courtois FiniaszSendrier) • Basé sur le SD problem
Problèmes difficiles : • Code linéaire • Distance / poids de Hamming • Matrice génératrice • Matrice de parité • Problème de décodage par syndrome • Code Goppa
Schéma CFS • Utilise code Goppa • Longueur n=2m, dimension k = n-mt et t erreurs • Fonctionnement : • m -> h(m) • Implémentation d’un compteur jusqu’à que l’on puisse décoder • Envoi de la valeur du compteur et du chiffré obtenu • Sécurité : • attaque la plus efficace : attaque des « anniversaires » • sécurité assez importante (280 calculs) il faut utiliser, (m=21 et t=10) ou (m=19 et t=11) ou (m=15 et t=12)
Schéma d’identification de Stern • Créé en 1993 • Basé sur le problème de décodage par syndrome • Public : H,t,S Privé : e • Principe : • Alice veut prouver à Bob qu’elle connaît le secret mais sans lui révéler • Bob envoie c1=h(σ|HyT) c2=h(σ(y)) et c3=h(σ(y+e)) • Bob envoie un alea b Є {0,1,2} • Trois possibilités : • Si b = 0 : Alice envoie y et σ et Bob peut vérifier c1 et c2 • Si b = 1 : Alice envoie y+eet σ et Bob peut vérifier c1 et c3 • Si b = 2 : Alice envoie σ(y) et σ(s) et Bob peut vérifier c2 et c3 • 28 tours pour éviter la triche
Schéma d’identification de Stern • 1995 : Veron propose version duale • Repose sur matrice génératrice de code aléatoire • Existe encore d’autres variantes du schéma d’identification de Stern
Schéma de KKS • Schéma proposé par Kabatianskii, Krouk, et Smeets • Schéma de signature basé sur des codes correcteurs d'erreurs linéaires arbitraires. • Trois versions avec un point commun : La signature est un mot codé du code linaire • Sécurité : • Prétendu aussi sure que Niederreiter • Facile de retrouver la matrice G • 277 opérations binaire et 20 signature maximum pour casser KKS-3
Les signatures de cercle • Présenté en 2001 par Rivest et Traumann • Les signataire restent anonyme tant qu’ils sont dans leur boule. • Pour roduire une signature valide on a besoin de : • Clé privé • Clé publique des autres membres • ZLC (Zheng, Li, and Chen ) a proposé le premier modèle de signature en anneaux, basé sur le problème de décodage syndrome.
Les signatures de cercle • Signature : • Signataire génère un hash de m • Choisi un v • Pour chaque clé publique autre que la sienne, le signataire choisi un x aléatoire • Crypte avec p et xore le résultat avec v avant de faire une permutation symétrique ce qui donne un nouveau v = Eσ (f (x) ⊗ v) avec f fonction de cryptage • On fait cette manipulation avec toute les autres clé • On se retrouve avec v différent du départ, on cherche alors y qui xoré avec le v trouvé et permuté avec Eσpermet de retrouver le v original. • Utilisation de sa clé privé pour trouver x qui passé par sa clé publique donne y
Les signatures de cercle • Vérification : • Destinataire refait v = Eσ (f (x) ⊗ v) pour toute les clé publique de la signature et vérifie qu’il retrouve bien le v original • Taille de la signature linéaire en N, qui correspond à la taille du cercle • Sécurité : • Schéma basé sur CFS • Permet l’anonymat • Probabilité de contrefaire une signature : 1 / 2^n
Signature de cercle à seuil • Evolution des signatures de cercle • Par stern, Bresson et Szydlo • Clé secrète distribuée parmi des membres de N • Au moins un de ces membre est requis pour une signature valide • Cout de signature réduis • Utilise le principe de séparabilité • Le plan ACG est le premier schéma basé sur les signatures de cercle à seuil • Utilise le paradigme de Fiat-Shammir
Les signatures aveugles • Proposées par Chaum • Applications : • E-vote • Payement électronique • Principal modèle : Overbeck
Modèle d’Overbeck • Utilisation de la permutation des noyaux • Génération de la clé : • Choisir un code (n, k) • Construire la matrice de parité Ĥ (n-k)*n • Choisir aléatoirement : • Matrice inversible Q (n-k)*(n-k) • Matrice de permutation P n*n • Clé publique : H = QĤP • Clé privée : (P, Ĥ, Q, γ) • Signature générée à partir de cette clé
Modèle d’Overbeck • Signature • On génère aléatoirement R0 p*n et K L*p • R = K*R0 • Génération de la matrice de permutation Π n*n • Créer la matrice génératrice Gb = [G/R] * Π • En déduire Hb (matrice de vérification) • Sortie s = H(xΠ-1) et u = (r, Π, Hb) • Efficacité basée sur CFS • Modèle sûr à cause de la difficulté de certaines instances des problèmes PKP et SD
Signatures basées sur l’identité • Introduites en 1984 par Shamir • Souffrent d’un inconvénient majeur : • Le Key Generation Center doit être digne de confiance • On peut employer de multiples PKGs pour produire conjointement la clé secrète maîtresse • Naissance des IBS
Signatures basées sur l’identité • Délivrance de clé : • Envoi de l’identité y au KGC • Exécution de l’algorithme CFS sur y, on obtient : • Clé privée {s,j} • Clé publique h(h(y)|j) • Identification : protocole de Stern • Prouveur : génère r, calcule x=A(r) et envoie au vérifieur • Vérifieur génère g et l’envoie au prouveur • Prouveur calcule y=B(s,g,r) et l’envoie au vérifieur • Vérification : calcule g=H(m,x) et vérifie si x=C(y,g) • Algorithme sûr
Conclusion • Il existe différents modèles de signatures : • A petite clé publique (Stern) • A petite signature (CFS) • Avec un compromis entre les tailles de la clé et de la signature KKS • En combinant ces modèles on peut obtenir des signatures • La Code-BasedResearchCommunity est encouragée à améliorer ces systèmes
Merci de votre attention Des questions ?