• Aucun résultat trouvé

Sécurité du schéma de signature contre un adversaire actif

Partie II Cryptographie à seuil 79

3.3 Algorithme de génération partagée de clés RSA de Boneh-Franklin

3.4.5 Sécurité du schéma de signature contre un adversaire actif

Le but de cette section est de revisiter la preuve de robustesse d’origine conçue par Shoup pour couvrir le cas des modules RSA générés dans la section 3.4.3. La méthode utilisée permet de générer avec forte probabilité le groupe des carrés en prenant peu d’éléments au hasard.

Preuve de validité des parts de signature

SoitN un module tel queN = pq etp = 2p0 + 1 etq = 2q0 + 1 où p0 etq0 n’ont pas de petits facteurs premiers etpgcd(p−1, q−1) = 2. CommeQN est cyclique, il existe un générateurgdansQN. Alors, le logarithme discret en basegde n’importe quel élémentσi2 existe, oùσi = x2∆di,∆ =n!, et x =H(m). Comme dans la section 15, notonsv1, . . . , vkunk-uplet d’éléments choisis au hasard dans (QN)k tel qu’avec forte probabilité, cek-uplet génère le groupeQN en entier, d’ordreM = p0q0, i.e.

pour chaquex∈QN, il existe(a1, . . . , ak)∈[0, M[ktels quex=Qk

i=1viai modN. Posonsvki =vi

pour touti∈[1, k].

Chaque serveur i possède un k-uplet de clés de vérification vk1,i = vk1di modN, . . . ,vkk,i = vkkdi modN. Il calcule une part de signature,σi =x2dimodN, oùdiest lai-ième de la clé secrète det prouve que

logvk1(vk1,i) =. . .= logvkk(vkk,i) = logx4∆i2)

Décrivons maintenant la preuve de “robustesse” et comme d’habitude, soit di ∈ [0, M[ les parts secrètes de la clé de chaque serveur, etAetB0deux entiers tels quelog(A)≥log(B0M h) +k2oùB0 etk2 sont des paramètres de sécurité ethest le nombre de tours d’une version interactive de la preuve.

On fixe A = 2L(N)+hL01+k2 etB0 = 2L01. Finalement, k1 est un paramètre tel que la probabilité de tricher1/B0h soit<1/2k1,(k1 > hL01). Alors que le paramètre de sécuriték1 contrôle la consistance et le caractère statistiquement zero-knowledge, le paramètre de sécuriték2contrôle la significativité du protocole. Nous présentons le protocole pour un seul tour.

Le prouveur choisit un aléardans[0, A[, puis calculet= (v01, . . . , v0k, x0) = (vkr1, . . . ,vkrk, x4∆r). Soit elesb0 = log(B0)−1premiers bits de la valeur de la fonction de hachage

e= [H(vk1, . . . ,vkk, x4∆,vk1,i, . . . ,vkk,i, σi2, v01, . . . , v0k, x0)]b0

si nous notons[x]b0 lesb0 premiers bits dex. Ensuite, le prouveur calculezoùz = r+edi. La preuve est la paire(e, z)∈[0, B0[×[0, A[. Pour la vérifier, le vérifieur doit calculer si

e= [H(vk? 1, . . . ,vkk, x4∆,vk1,i, . . . ,vkk,i, σi2,vk1zvk1,i−e

, . . . ,vkkzvkk,i−e

, x4∆zσi−2e

)]b0 (3.5) et vérifier si0≤z < A.

Analyse de sécurité de la preuve de robustesse Consistance.

Théorème 14. L’exécution du protocole entre un prouveur qui connaît le secret di et un vérifieur est réussi avec probabilité écrasante siB0M h/A est négligeable, oùhest le nombre de tours.

Preuve: Si le prouveur connaîtdi ∈[0, M[et suit le protocole, il échoue seulement siz≥A. Pour toute valeur x ∈ [0, M[, la probabilité d’échec d’un tel événement pris sur l’ensemble des choix possibles

de r est inférieure à B0M/A. Par conséquent l’exécution de la preuve est réussie avec probabilité ≥

(1−BA0M)h ≥1−B0AM h. ut

Significatif.On va montrer que la version interactive du schéma est sûre face à un vérifieur honnête, ce qui prouvera la sécurité de la version non-interactive en utilisant le lemme de bifurcation [151].

Lemme 4 Si le vérifieur accepte la preuve, avec probabilité ≥ 1/B0 ε est une quantité non-negligeable, alors en utilisant le prouveur comme une “boîte-noire” il est possible de calculerσetτ tels que|σ|< A, et|τ|< B0etvk1σ =vk1,iτ, . . . ,vkkσ =vkk,iτ, x4∆σi.

Preuve: Si nous redémarrons l’adversaire et que nous obtenons deux preuves valides pour la même mise en gaget,(e, z)et(e0, z0), nous avons pouru = 1, . . . , ki.e. pour toutes les clés de vérification, vkur=vkuzvk−eu,i =vkuz0vk−eu,i0. Donc, nous obtenonsvkuσ =vku,iτ modN si nous fixonsσ =z0−z etτ =e−e0. Par conséquent nous pouvons écrirevk1σ =vk1,iτ, . . . ,vkkσ =vkk,iτ, x4∆σi. ut

Théorème 15. (Significatif)Faisons l’hypothèse qu’une machine de Turing probabiliste en temps polynomial P˜ soit acceptée avec probabilité non-negligeable. SiB0 < B,h× log(B0) = Θ(k1), k = Θ(k1/log(B))etlog(A)est un polynôme en k1 etlog(N), nous pouvons montrer quex4∆dii2 et doncσiest une part de signature correcte.

Preuve: D’après le lemme précédent, nous pouvons faire comme hypothèse que nous avonsτ etσ tels quevkuσ =vkudiτpouru= 1, . . . , ketx4∆σi.

Alors, nous pouvons écrire x4∆ avec l’ensemble de générateurs de QN car c’est un carré :x4∆ = vk1β1×. . .×vkkβk.

Par conséquent, si nous élevons cette équation à la puissance σ, nous obtenonsx4∆σ = vk1σβ1 × . . .×vkkσβk. Mais,x4∆σ est égal àσi etvk1σβ1 ×. . .×vkkσβk est égal à(vk1β1 ×. . .×vkkβk)τ di carvkuσ =vkudiτ pouru= 1, . . . , k.

D’où,σi = (x4∆)τ di avec|τ|< B0. Nous pouvons simplifier cette équation parτ siτ est premier avecp0q0. Nous obtenons doncx4∆dii2 siB0 < B.

Soit π(k˜ 1)la probabilité de succès deP˜. Siπ(k˜ 1)est non-négligeable, il existe un entierctel que

˜

π(k1) ≥ 1/k1c pour infiniment beaucoup de valeursk1. La probabilité pourP˜ de générer une part de signature correcte alors que lesvkigénèrent le groupeQN est plus grande queπ(k˜ 1)−2×k−12 ×Bk−11

selon le résultat de la section 15 (Génération d’un groupe cyclique avec plusieurs éléments.). Donc si k= Θ(k1/log(B)), pour infiniment beaucoup de valeursk1,2×k−12 × 1

Bk−1 ≤1/3k1c.

De plus, pour k1 suffisamment grand,1/B0h < 1/3k1c sih×log(B0) = Θ(k1). Donc en prenant ε = ˜π(k1)/3 dans le lemme 4 nous pouvons en conclure qu’il est possible d’obtenir (σ, τ) en temps

polynomialO(1/ε) =O(k1c). ut

Statistiquement Zero-Knowledge.

Preuve: De plus, nous pouvons prouver que siAest beaucoup plus grand queB0×N, le protocole ne donne statistiquement aucune information sur le secret. Dans le modèle de l’oracle aléatoire où l’atta-quant a un contrôle total des valeurs retournées par la fonction de hachageH, on définit lesb0 premiers bits de la fonction de hachageHau point

(vk1, . . . ,vkk, x4∆,vk1,i, . . . ,vkk,i, σi2,vk1zvk1,i−e, . . . ,vkkzvkk,i−e, x4∆zσi−2e)

comme valant e. Avec probabilité écrasante, l’attaquant n’a pas encore défini l’oracle aléatoire en ce

point et l’adversaireAne peut pas détecter la fraude. ut

Génération d’un groupe cyclique avec plusieurs éléments

Dans cette section nous prouvons qu’avec forte probabilité nous pouvons générer le groupe des carrés QN en entier avec seulement quelques éléments pris au hasard.

Théorème 16. Avec probabilité supérieure à1−2×k−12 ×Bk−11 , unk-uplet(v1, . . . , vk) pris au hasard génèreQN.

Définissons d’abord quelques notations supplémentaires. Si (v1, . . . , vk) est unk-uplet de(QN)k, nous utilisons la notationhv1, . . . , vkipour représenter le sous-groupe deQN qui est généré par lesvi, i.e.,

hv1, . . . , vki={x∈QN|∃(λ1, . . . , λk)x=

k

Y

i=1

vλii modN} Nous notons aussiζ(k)la fonction Zeta de Riemann définie parζ(k) = P+∞

d=1 1

dk pout tout entier k≥2. SiN =q1e1 ×q2e2×. . .×qjej, nous notons parϕk(N)la valeur

Nk×(1− 1

q1k)(1− 1

q2k). . .(1− 1 qjk)

qui est une généralisation de la fonction d’Euler dans le cas dekgénérateurs. Finalement, siN n’a pas de facteurs premiers inférieurs àB, nous définissonsζB(k)commeP+∞

d=B 1 dk.

Nous pouvons aussi noter que p−12 et q−12 sont premiers entre eux. Pour trouver un générateurvde QN, nous devons trouver un élémentvtel que(v modp)génèreQp et(vmodq)génèreQq.

Estimons la probabilité quex∈QNsoit un générateur deQN. La probabilité d’obtenir un tel nombre dépend de la factorisation dep0et deq0. Mais, même siM =p0q0n’a pas de petits facteurs, la probabilité d’obtenir un tel générateur n’est pas écrasante. En effet, si on tire un élémentv au hasard dansQp, la probabilité quevsoit un générateur deQpest

Pr = Pr

v∈Qp

[hvi=Qp] = ϕ(p0)

p0 = Y

pi≥B,pi|p−1

(1− 1 pi

)≤1− 1 p1

et sip1 ≤2B, nous pouvons borner la probabilité par≤1− 2B1 . La probabilité queB ≤p1 ≤ 2Best égale à la probabilité quep0soit divisible par au moins un nombre premier dans[B,2B], donc

Prp1

[B ≤p1 ≤2B] = X

B≤qi≤2B,qipremier

1 qi

≥ 1

2B ×(π(2B)−π(B))

si on note parπ(x)le nombre de nombres premiers entre2etx. SiB = 216, avec probabilité≥1/23, Pr ≤1−2117, en fait avec probabilité1/17exactement. Par conséquent, nous ne pouvons pas dire que cette probabilité est écrasante.

Cependant, si nous nous permettons de prendre plusieurs éléments au hasard dansQN, alors le sous-groupe hv1, . . . , vki est égal àQN avec forte probabilité. Un k-uplet (v1, . . . , vk) est un ensemble de générateurs de QN si(v1 modp, . . . , vk modp)est un ensemble de générateurs de Qp et si(v1mod q, . . . , vk modq) est un ensemble de générateurs de Qq. Ainsi, le nombre de k-uplets de (QN)k qui

génèrentQN est le nombre dek-uplets qui vu comme éléments de(Qp)k génèreQp et qui vu comme éléments de(Qq)kgénèreQq.

Il y ap0 = p−12 éléments dansQp. Pour générer ce sous-groupe cyclique deZp (car un sous-groupe d’un groupe cyclique est un groupe cyclique), il y aϕ(p0)générateurs.

L’analyse faite par Poupard et Stern dans [157] peut être étendue dans notre contexte car elle est vraie en général dans tout groupe cyclique et pas seulement dansZpe. Nous présentons tout d’abord un lemme préliminaire.

Lemme 5 Le nombre desk-uplets de(Qp)kqui génèrentQpestϕk(p0).

Preuve: Soit(v1, . . . , vk)unk-uplet de(Qp)ketvun générateur deQp; pouri= 1, . . . , k, nous définis-sonsαi∈Zp0 par la relationvαi =vimodp.

Nous remarquons d’abors que(v1, . . . , vk)génèreQpsi et seulement si l’idéal engendré parα1, . . . , αk

dans l’anneauZp0 est l’anneau tout entier. L’égalité de Bezout montre que cet événement se produisait si et seulement sipgcd(α1, . . . , αk, p0) = 1.

Comptons le nombre desk-uplets(α1, . . . , αk)∈(Qp)ktels quepgcd(α1, . . . , αk, p0) = 1.

SoitQt0

i=1qifila décomposition en facteurs premiers dep0. Nous savons que pgcd(x,

t0

Y

i=1

qifi) = 1 ⇐⇒ ∀i≤t0, pgcd(x, qifi) = 1 ⇐⇒ ∀i≤t0, pgcd(xmodqifi, qifi) = 1 En utilisant le théorème des restes chinois, le problème se réduit à compter le nombre de k-uplets (β1, . . . , βk)de(Zqifi)ktels quepgcd(β1modqifi, . . . , βkmodqifi, qifi) = 1pouri= 1, . . . , t0. Les k-uplets qui ne vérifient pas cette relation pour un indice i fixé sont de la forme(qiγ1, . . . , qiγk) où (γ1, . . . , γk)∈Zqifi−1ket il y en a exactementqik(fi−1).

Finalement, il y aQt0

i=1(qikfi−qik(fi−1))k-uplets de(Zp0)ktels quepgcd(α1, . . . , αk, p0) = 1et ceci est égal àQt0

i=1ϕk(qifi) =ϕk(p0)carϕkest une fonction faiblement multiplicative. ut Maintenant, nous retournons vers la preuve du théorème 16. Voici quelques notations supplémen-taires : pour chaque entier x, Sx représente l’ensemble des indices itels que pi soit un facteur de x.

D’après le lemme précédent, nous savons que la probabilité pour qu’unk-uplet de(Qp)kgénèreQpest

ϕk(p0)

p0k , notéepr = Q

i∈Sp01− p1

ik. L’inverse de chaque terme1− p1

ik peut être développé en série de puissance :(1−p1

ik)−1 =P

j=0(1/pik)j. La probabilitéprest un produit de puissances avec des termes positifs,pr= (Q

i∈Sp0

P αi=0 1

piαik)−1et par conséquent, nous pouvons distribuer les termes et obtenir quepr−1 est la somme de1/dk où dparcourt les entiers dont les facteurs premiers sont parmi lespi, i ∈ Sp0. Cette somme est inférieure à la somme non restreinte P

d=11/dk = ζ(k). Finalement, nous obtenons quepr>1/ζ(k).

Dans notre cas, nip0niq0n’ont des petits facteurs premiers inférieurs àB, et ainsipr> 1+ζ1

B(k). ζB(k) =

X

d=B

1/dk ≤ 1/Bk+ Z

B

dx/xk 1 +ζB(k) ≤ 1 +k−1 +B

k−1 × 1 Bk Comme pour toutx >−1,1/(1 +x)≥1−x, on a :

1

1 +ζB(k) ≤1− k−1 +B k−1 × 1

Bk

Par conséquent, le nombre dek-uplets de(Qp)kqui génèrentQpestϕk(p0)et Pr

(v1,...,vk)∈(Qp)k

[{hv1, . . . , vki] =Qp}= ϕk(p0)

p0k > 1

1 +ζB(k) ≤1−k+B−1 k−1 × 1

Bk Donc, avec probabilité supérieure à1−2×k−12 × 1

Bk−1, les k-uplets(v1, . . . , vk)génèrentQp et Qq, et doncQN. Par exemple, aveck= 6etB = 216, cette probabilité est supérieure à1−1/280.