Un exemple de preuve de sécurité sur un schéma de Feistel
Nous présentons ici l'étude de la sécurité d'un schéma de Feistel à 3 étages, d'abord démontré par Luby et Rackoff en 1988 [] puis par J. Patarin en 1991 [], et enfin par U. Maurer en 1992. La démonstration présentée s'inspire de celle de [] qui utilise le théorème précédent.
Théorème 1 Soient F1*, F2*, F3* trois fonctions aléatoires parfaites indépendantes définies de 2[m/2] dans lui-même et soit f* une fonction aléatoire parfaite de 2m dans 2m. On note f=Ψ3(F1*, F2*, F3*) le schéma de Feistel à trois étages lié aux fonctions F1*, F2* et F3*. Alors, pour tout distingueur A adaptatif faisant appel à q requêtes, on a :
| AdvA(f, f*) ≤ q2 ·2−[m/2]. |
|
Preuve :

Figure 1: Schéma de Feistel sur 3 étages
On note x=(x
i)
i ∈ [1..q]=(z
i0,z
i1)
i ∈ [1..q] le q-uplet de requêtes et y=(y
i)
i ∈ [1..q]=(z
i3,z
i4)
i ∈ [1..q] le q-uplet de sorties correspondant. On note également z
2=(z
i2)
i ∈ [1..q] le q-uplet d'éléments z
i2 de I
[m/2] avec z
i2=z
i0 ⊕F
1*(z
i1). On note également z
0=(z
i0)
i ∈ [1..q], z
1=(z
i1)
i ∈ [1..q] ,z
3=(z
i3)
i ∈ [1..q] et z
4=(z
i4)
i ∈ [1..q] les q-uplets correspondants aux différentes valeurs d'entrée et de sortie. On note
Z l'ensemble des q-uplets de valeurs de z
i2 deux à deux distinctes et comme dans le paragraphe précédent,
X l'ensemble des x=(x
1,…,x
q) q-uplets de valeurs de I
m deux à deux distinctes.
On note
Y l'ensemble défini par :
| Y = { (y1, …, yq) ; ∀i < j, zi3 ≠ zj3 } |
|
Y correspond donc à l'ensemble des q-uplets de sortie dont les valeurs de la partie droite sont deux à deux distinctes. Le cardinal de cet ensemble est tel que :
| |Y| ≥ |
|
1 − |
q(q−1)
2
|
·2−[m/2] |
|
2mq |
|
On peut donc poser :
pour rester dans le cadre du théorème 11.
À présent, pour tout q-uplet x de l'ensemble
X et pour tout q-uplet y de l'ensemble
Y, on cherche à établir une borne inférieure pour la probabilité Pr[x→
f y] :
| |
|
| = |
∑ z2 ∈ I[m/2] ,z3 ∈ I[m/2]
|
|
|
| Pr[ (z2=z0⊕F1*(z1)) ∧(z3 = z1 ⊕F2*(z2)) |
|
|
| |
|
|
|
|
| |
|
|
| Pr[(z3 = z1 ⊕F2*(z2)) ∧(z4 = z2 ⊕F3*(z3))] |
|
|
| |
|
|
| ·Pr[(z2=z0 ⊕F1*(z1))] (1) |
|
|
|
On cherche alors à estimer l'inégalité (1).
Pour cela, pour tout q-uplet z
2 dans
Z et pour tout q-uplet z
3 de
Y, on évalue tout d'abord Pr[(z
3 = z
1 ⊕F
2*(z
2)) ∧(z
4 = z
2 ⊕F
3*(z
3))] = Pr[(z
1 ⊕z
3 = F
2*(z
2))] ·Pr[(z
2 ⊕z
4 = F
3*(z
3))]. Comme z
2 appartient à
Z et comme z
3 appartient à
Y, alors
| Pr[(z3 = z1⊕F2*(z2)) ∧(z4 = z2 ⊕F3*(z3))] = (2−[m/2] )q ·( 2−[m/2] )q = 2−mq |
|
De plus, comme les z
2 appartiennent à
Z, on a :
| Pr[(z2=zi0 ⊕F1*(zi1))] ≥ 1 − |
q(q−1)
2
|
·2−[m/2] |
|
On obtient donc
| Pr[x |
f →
|
y] ≥ 2−mq · |
|
1 − |
q(q−1)
2
|
·2−[m/2] |
|
|
|
On pose alors :
Il ne reste alors plus qu'à appliquer le théorème 11 sur l'ensemble
Y, on obtient donc :
[¯]
Références
- [1]
- M. Luby and C. Rackoff. How to construct pseudorandom permutations from pseudorandom functions. SIAM Journal on Computing, 17, no. 2:373-386, 1988.
- [2]
- J. Patarin. Etudes des Générateurs de Permutations Pseudo-aléatoires Basés sur le Schéma du DES. PhD thesis, Université Paris VI, 1991.