Chapitre 2
Chapitre 2
Chapitre 2
k message m tag
k
Alice Bob
m1 M m2 , …, mq
Chal. Adv.
kK t1 S(k,m1) t2 , …, tq
(m,t)
b
m0
Chal. Adv.
kK t0 S(k,m0) S(k,m0)=
S(k,m1)
(m1,t0)
b
b=1 avec une probabilité ½ (V(k,m1,t0) = “yes”) et (m1,t) { (m0,t0) }
Sécurité Sémantique des MACs
• Exemples :
Soit I=(S,V) un MAC, on suppose que la taille de la
sortie de ce MAC est égale toujours à 5 bits (la taille
de S(k,m)).
Est-ce que ce MAC est sécurisé ?
Chal. Adv.
Choisir un
messages m, et
kK (m,t) aléatoirement
choisir une tag t
message m tag
Alice Bob
F(k,) F(k,) F(k,) F(k,)
CBC Raw
tag
F(k1,)
m
Chal. Adv.
kK t S(k,m)
(m1=m tm , t1=t )
b
b=1 avec une probabilité 1
Cascade
t ll fpad
if |k|<|m[i]|
> F
k1
tag
m
Chal. Adv.
kK t S(k,m)
(m1=m w , t1=F(t,w) )
b
b=1 avec une probabilité 1
cascade(k,m w)=F(cascade(k,m),w)=F(t,w)
Attaque par extension ! (Falsification existentielle)
Analyse de ECBC-MAC et NMAC
• Théorème :
Soit L>0, pour tout adversaire efficace A attaquant
FECBC ou FNMAP avec q messages choisies, il existe
un adversaire efficace B contre la PRP/PRF F tel
que :
AdvPRP[A, FECBC] AdvPRP[B, F] + 2 q2 /|X|
AdvPRF[A, FNMAC] q⋅L⋅AdvPRF[B, F] + q2 /2|K|
• Exemple :
AdvPRP[A, EECBC] AdvPRP[B, E] + 2 q2 /|X|
>
rawCBC
tag
r
rand. r in X
MAC(m)=MAC(m 0s)
• Solution :il faut que m0≠m1pad(m0) ≠pad(m1)
• Solution ISO: ajouter 1000.. , et même si la taille de
m est multiple de n, ajouter un nouveau bloc 10n-1.
m[0] m[1] m[0] m[1] 100
k1 k2
tag tag
Variante de CBC-MAC :PMAC
• CBC-MAC et NMAC sont séquentiels ! Donc lent durant
leurs exécutions.
• Une variante parallèle existe :PMAC .
m[0] m[1] m[2] m[3]
P(k,0) P(k,1) P(k,2)
P(k,3)
F(k1,) F(k1,) F(k1,)
F(k1,) tag
Exemples:
SHA-1, SHA-256, Whirlpool, ….
• Une fonction de hachage donne une sortie de taille fixe
pour une entrée de taille variable: ex. SHA256 donne un
hache de 256bit (32 octet).
Hachage cryptographique
Exemple d’utilisation:
read-only
public space
package name package name package name
H(F2)
F1 F2 ⋯ Fn H(F1)
H(Fn)
m0
Chal. Adv.
kK t0 S*(k,m0)
(m1m0, t1=t0 )
b
b=1 avec une probabilité 1 (car H(m0)=H(m1)).
Attaque sur les fonctions de hachage:
Paradoxe de l’anniversaire
• Soit H :{0,1}*{0,1}n une fonction de Hachage.
• Il existe une attaque générique sur H de complexité
O(2n/2):
1. Choisir 2n/2 messages différents m1,m2,….,m2n/2 ;
2. Pour i=1…2n/2: calculer ti=H(mi);
3. Chercher une collision ti=tj avec ij, sinon revenir à 1.
B=106
# samples n
Exemples et Performances
IV H(m)
(fixed) H0 h H1 h H2 h H3 h H4
512-bit block
>
SHACAL-2
256-bit block
256-bit block
Fonctions de compression
mathématiques (problèmes difficiles)
IV >
h > h > h > h
(fixed)
k⨁opad
> tag
h > h
IV
(fixed)