370 likes | 898 Views
Partage de secret. DEVES Nicolas ROGER Rémi. Plan de la présentation. Secret « morcelé » (secret splitting) Secret « réparti » (secret sharing) : schéma à seuil (threshold scheme) Secret réparti généralisé. Secret morcelé. (secret splitting). Secret morcelé : introduction.
E N D
Partage de secret DEVES Nicolas ROGER Rémi
Plan de la présentation • Secret « morcelé » (secret splitting) • Secret « réparti » (secret sharing) : schéma à seuil (threshold scheme) • Secret réparti généralisé
Secret morcelé (secret splitting)
Secret morcelé : introduction • Idée : créer des morceaux à partir d’un message secret, tels qu’aucun morceau n’a de signification, mais en les réunissant tous le message est retrouvé • Motivations : utiliser une confiance distribuée, partagée, pour des activités critiques • Ex : signature de chèques d’une entreprise, ouverture d’un coffre de banque, …
Secret morcelé : principe • Soit M le message secret à partager • Tirer une chaîne aléatoire de bits, R, de même longueur que M • Calculer S = M R • R et S sont les deux morceaux du message M • R et S séparés n’ont aucune signification car ce sont des chaînes aléatoires • Pour retrouver le message : M = R S
Secret morcelé : principe • Il est aisé d’étendre ce schéma à plusieurs personnes : il suffit de combiner d’autres chaînes aléatoires avec le message • Pour partager en 4 morceaux : • Engendrer 3 chaînes aléatoires de bits, R, S, T de même longueur que M • Calculer U = M R S T • Distribuer R, S, T, U • Reconstitution du message : M = U R S T
Secret morcelé : principe • A la place des « Ou exclusif », il est possible d’utiliser des additions modulaires • Soit M le nombre secret à partager, tel que 0 =< M < m, m entier quelconque • Générer un nombre aléatoire R, tel que 0 =< R < m • Les 2 morceaux sont R et (M – R) mod m
Secret morcelé : remarques • Autre idée de partage de secret : Couper un message de longueur L en n morceaux de longueur L / n • Très mauvaise idée car cela réduit le nombre d’essais pour trouver le secret par la force brute : • Une clé de longueur L = 56 bits, 2 morceaux de 28 bits • 228 essais chacun au lieu de 256
Secret réparti (secret sharing)
Secret réparti : introduction • Dans le mécanisme précédent, si un morceau est perdu, il n’est plus possible de reconstituer le secret • Dans ce schéma, le secret est réparti entre n personnes, et il suffit que t d’entre elles mettent en commun leur part pour reconstituer le secret : ceci est appelé un schéma à seuil (t,n)
Secret réparti : introduction • Il est possible de donner plus s’importance à certaines personnes en leur confiant plusieurs parts • Ex : Un général peut lancer des missiles mais il faut deux colonels pour faire la même chose, un seul ne peut rien faire • Solution : utiliser un schéma à seuil (2,4), donner 1 part à chaque colonel et 2 parts au général
Critères de qualité des systèmes de partage de secret • Sytème parfait : La connaissance de t-1parts n’apporte aucune information • Taux d’information : (taille en bits du secret) / (taille en bits d’une part) • Schéma idéal : Taux d’information = 1, c’est-à-dire taille d’une part = taille du secret • Extensible à de nouveaux utilisateurs • Possibilité de donner plus d’importance à certaines personnes • Ne repose pas sur des choses non prouvées ou difficiles à faire
Mécanisme de Shamir • Basé sur l’interpolation des polynômes et sur le fait qu’un polynôme de degré t-1 est déterminé de façon unique par t points distincts
Mécanisme de Shamir : partage du secret • Soit S un entier > 0, le secret à partager entre n personnes • Choisir un nombre premier p > max(S,n) • Définir a0 = S • Choisir t-1 coefficients aléatoires a1,…,at-1 compris entre 0 et p-1
Mécanisme de Shamir : partage du secret (suite) • Les coefficients a0,…,at-1 définissent un polynôme aléatoire sur Zp : • Calculer les points Si = f(i) mod p, 1 =< i =< n • Donner une part Si à chacune des n personnes concernées
Mécanisme de Shamir : reconstitution du secret • N’importe quel groupe de t personnes qui mettent en commun leur part peuvent reconstituer le secret • Les t parts fournissent t points distincts (x,y) = (i,Si) qui vont permettre de calculer les coefficients a0,…,at-1 du polynôme f(x) par l’interpolation de Lagrange • Le secret S est a0 = f(0)
Mécanisme de Shamir : interpolation de Lagrange • Les coefficients d’un polynôme f(x) de degré inférieur à t, défini par les points (xi,yi), 1 =< i =< t, sont donnés par la formule de l’interpolation de Lagrange :
avec Mécanisme de Shamir : reconstitution du secret (suite) • S = a0 = f(0), donc d’après la formule précédente : • S s’exprime donc comme une combinaison linéaire des t parts yi puisque les ci sont des constantes non secrètes (qui peuvent être calculées à l’avance pour un groupe de t personnes)
Mécanisme de Shamir : exemple • Schéma à seuil (3,5) : n = 5, t = 3 • Secret : S = 11 • p = 13 • a0 = S = 11 • a1 = 8 et a2 = 7 choisis aléatoirement • f(x) = (7x² + 8x + 11) mod 13
Mécanisme de Shamir : exemple (suite) • Calcul des 5 parts : • S1 = f(1) = (7 + 8 + 11) mod 13 = 0 • S2 = f(2) = (28 + 16 +11) mod 13 = 3 • S3 = f(3) = (63 + 24 + 11) mod 13 = 7 • S4 = f(4) = (112 + 32 + 11) mod 13 = 12 • S5 = f(5) = (175 + 40 + 11) mod 13 = 5
Mécanisme de Shamir : exemple (suite) • Reconstitution du secret à partir de S2, S3 et S5 avec l’interpolation de Laplace: • c2 = 5 • c3 = -5 • c5 = 1 • S = (c2*S2 + c3*S3 + c5*S5) mod 13 = -15 mod 13 = 11
Schéma vectoriel de Blakley • Le message secret est défini comme un point dans un espace à t dimensions • Chaque part est l’équation d’un hyperplan de m-1 dimensions qui inclut ce point • L’intersection de n’importe quel ensemble de m de ces hyperplans détermine exactement le point secret
Répartition de secret avec Tricheurs • Comment tricher avec schéma à seuil? • Révélation d’une partie non valide Impossible de savoir qui empêche décodage • Envoi d’un faux message Possibilité de découvrir toutes les parts Possibilité de s’intégrer au secret La personne attend les parts, fabrique une part valide et peut faire semblant d’être dans le secret
Répartir un secret sans que personne ne connaisse le secret complet • Schéma type d’une banque: • Il faut n clés tournées en même temps pour ouvrir la porte • Exemple : 3 employés parmi 5 = seuil(3,5) • Personne ne connaît secret entier • Protocole : N acteurs, N parts distribuées
Répartir un secret sans révélation des parts • Problème : quand on veut reconstruire le secret, on doit révéler sa partie • Comment éviter cela? Exemple: • Secret partagé est une clé privée • Les acteurs signent partiellement un document • Clé révélée après dernière signature partielle • Document utilisé sans opérateur de confiance
Secret réparti vérifiable • Problème: • On a un secret réparti à N personnes • Comment savoir si chacun à une part valide sans reconstruire le secret? Impossible • Existe protocole ou chaque individu peut savoir si il possède une part valide sans reconstruire secret complet
Secret réparti avec veto • Problème : • Secret réparti sur X acteurs sachant que moins de M acteurs nécessaires pour reconstituer le secret • Comment réaliser un veto? • Principe : • Chacun reçoit deux parts, un « oui », un « non » • Au moment de reconstruire, chacun donne une de ses parts • Si au moins M parts « oui » et au plus N parts « non », alors secret reconstruit • Inconvénient: Acteurs du « oui » peuvent se voir sans les autres Parades : tous les acteurs doivent s’exprimer
Secret réparti avec désistement • Exemple: Comment exclure quelqu’un d’un système de secret réparti sans instaurer un nouveau schéma? • Existe méthodes pour: • Copier le système actuel • Activer instantanément nouveau schéma
Secret réparti généralisé Principe Extensions
Secret réparti généralisé • Principe: • Secret partagé sur plusieurs acteurs • Détermine les sous groupes d’acteurs qui peuvent reconstruire le secret complet • Détermine les sous groupes d’acteurs qui ne peuvent pas reconstruire le secret complet Si un acteur non autorisé donne sa partie, le secret, ni une de ses parties, n’est pas révélé
Secret réparti généralisé • Extension: • Clé d’activation : une partie envoyée à la fin pour activer le secret • Secret dynamique: le secret révélé varie selon les parties mises en commun • Détection de tricheurs • Secret vérifiable • Secret avec désistement
Bibliographie • La Cryptographie appliquée – 2e édition, Bruce Schneier : chapitres 3 et 23 • Handbook of Applied Cryptography, chapter 12 (http://www.cacr.math.uwaterloo.ca/hac/) • Cryptographie, Théorie et Pratique – 1e édition, Douglas Stinson : chapitre 11 (Chapitre supprimé dans la 2e édition)