Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sureté et réalisation du schéma à seuil (k, n) de Shamir ?

5 réponses
Avatar
David MENTRE
Bonjour,

Je suis intéressé par une réalisation du schéma de chiffrage à seuil (k,
n) de Shamir[1], typiquement pour partager un secret de quelques
centaines de bits (clé de 256 bits) voire quelques millier de bits (clé
privé GPG).

Le schéma de Shamir me semble réalisable, mais avant de me lancer dans
le code j'ai quelques questions :

1. Est-ce que ce schéma est toujours valable ? Est-ce qu'il existe
d'autres approches plus sûres ?

2. Est-ce que vous connaissez une réalisation de ce schéma, de
préférence dans du code connu (GnuPG, openssl, ...) ou pourquoi pas
un code en OCaml ?

Je suis preneur de tout conseil sur le sujet, mon objectif étant de
disposer d'un outil concret pour réaliser un partage de secret à seuil,
pour les tailles de données ci-dessus.

Merci d'avance pour toute information,
Amicalement,
david

Footnotes:
[1] http://www.google.com/search?q=cache:OjBILldOR4sJ:crypto.csail.mit.edu/classes/6.857/papers/secret-shamir.pdf

--
David Mentré

5 réponses

Avatar
Francois Grieu
Dans l'article ,
David MENTRE écrit:

Je suis intéressé par une réalisation du schéma de chiffrage à seuil
(k,n) de Shamir, typiquement pour partager un secret de quelques
centaines de bits (clé de 256 bits) voire quelques millier de bits
(clé privée GPG).

Est-ce que ce schéma est toujours valable ?


Le système à seuil de Shamir est parfaitement sur, c'est démontrable,
donc ça ne peut pas avoir changé. Pour un système de ce type admettant
(k,n) arbitraire, je ne connais pas mieux (cad avec des secrets plus
compacts ou une implémentation plus simple), ni quoi que ce soit
d'autre utilisé en pratique.


François Grieu

Avatar
Nicolas Zinovieff
In article ,
David MENTRE wrote:

Bonjour,

2. Est-ce que vous connaissez une réalisation de ce schéma, de
préférence dans du code connu (GnuPG, openssl, ...) ou pourquoi pas
un code en OCaml ?


Il existe une implementation en C (malheureusement limitee a 128 octets
pour le secret, mais le principe est sauf) disponible ici:
http://point-at-infinity.org/ssss/
La gestion des polynomes se fait au travers de la librairie gmp dont la
documentation se trouve ici:
http://swox.com/gmp/

--
Nicolas

Avatar
Jean-Marc Desperrier
Francois Grieu wrote:
Dans l'article ,
David MENTRE écrit:
Je suis intéressé par une réalisation du schéma de chiffrage à seuil
(k,n) de Shamir, typiquement pour partager un secret de quelques
centaines de bits (clé de 256 bits) voire quelques millier de bits
(clé privée GPG).

Est-ce que ce schéma est toujours valable ?


Le système à seuil de Shamir est parfaitement sur, c'est démontrable,
donc ça ne peut pas avoir changé. Pour un système de ce type admettant
(k,n) arbitraire, je ne connais pas mieux (cad avec des secrets plus
compacts ou une implémentation plus simple), ni quoi que ce soit
d'autre utilisé en pratique.


J'avais utilisé l'implémentation de Crypto++, avec un mot du type
"password" et une séparation en deux "à l'oeil" on devinait assez
facilement le mot de départ.

Je me suis demandé si l'erreur n'était pas que la répartition du secret
se fassait à un niveau octet et non au niveau du bit. Les caractères
'p' 'a' 's' 'w' 'o' 'r' et 'd' restant présent dans le résultat, on
devinait facilement la donnée source.


Avatar
David MENTRE
Nicolas Zinovieff writes:

Il existe une implementation en C (malheureusement limitee a 128 octets
pour le secret, mais le principe est sauf) disponible ici:
http://point-at-infinity.org/ssss/


Merci pour le pointeur (et aux deux autres réponses).

Amicalement,
d.
--
David Mentré

Avatar
David MENTRE
Bonjour,

Nicolas Zinovieff writes:

[ En réponse à ma recherche d'une réalisation du schéma de Shamir ]
Il existe une implementation en C (malheureusement limitee a 128 octets
pour le secret, mais le principe est sauf) disponible ici:
http://point-at-infinity.org/ssss/


Pour info, j'ai regardé le code source avec un ami matheux : ssss
n'utilise pas directement le schéma de Shamir dans Fp=Z/pZ mais une
transposition dans Fq (q du type 2^d), avec des polynomes irréductibles
sur GF(2) de degrés 8, 16, 24, 32, ..., 1016, 1024. Ceci probablement
pour des raisons d'optimisation (la somme de polynome se traduit par des
XOR par exemple). Ça ne veut pas dire que le code est invalide mais
l'implémentation du schéma de Shamir n'est pas directe et la
vérification de sa correction d'autant plus difficile (en tout cas pour
moi). Par ailleurs, le code mériterait à être amélioré pour faciliter sa
lisibilité (utilisations de variables globales inutiles, par exemple sur
le degré des polynomes manipulés). Je ne compte pas aller plus loin dans
l'analyse ou l'utilisation de ce code, mais si d'autres en font une
analyse détaillée, je suis preneur. :-)

Merci pour le pointeur,
Amicalement,
david
--
David Mentré