Académique Documents
Professionnel Documents
Culture Documents
m
K {0, 1} clé
n
M {0, 1} message
2 rondes.
p0 p1 p2 p3
Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit Bit
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
p0 p2
P= p1 p3
Le corps de Galois GF(24)
• Corps fini composé de tous les nibbles (0000,
0001, 0010, …, 1100, 1101, 1110, 1111) vu
comme des polynômes à coefficients binaires
x3 + x + 1
b0 b2 b0 b2 c0 c2
ShiftRow
b1 b3 b3 b1 = c1 c3
MixColumn θ
c0 c2 d0 d2
MixColumn
c1 c3 d1 d3
d0 3 2 c0 d2 3 2 c2
= and =
d1 2 3 c1 d3 2 3 c3
d0 d2 k0 k2 e0 e2
⊕ k1 k3 = e1 e3
d1 d3
Calcul des clés de rondes
w0 = k0 w4 = w0 ⊕ NibbleSub(w3) ⊕ 1
w1 = k1 w5 = w1 ⊕ w4
K0 K1
w2 = k2 w6 = w2 ⊕ w5
w3 = k3 w7 = w3 ⊕ w6
w8 = w4 ⊕ NibbleSub(w7) ⊕ x
w9 = w5 ⊕ w8
K2
w10 = w6 ⊕ w9
w11 = w7 ⊕ w10
Chiffrement
Enc = (σK2 ∘ π ∘ γ) ∘ (σK1 ∘ θ ∘ π ∘ γ) ∘ σK0
Plaintext S
S Ciphertext
Déchiffrement −1
( ( )
Dec = σK2 ∘ π ∘ γ) ∘ (σK1 ∘ θ ∘ π ∘ γ) ∘ σK0
−1 −1
= −1
σK0 ∘ (σK1 ∘ θ ∘ π ∘ γ) ∘ (σK2 ∘ π ∘ γ)
= −1
σK0 ∘ (γ −1
∘π −1
∘θ −1
∘ σK1 )
−1
∘ (γ −1
∘π −1
∘ σK2 )
−1
= σK0 ∘ (γ −1
∘ π ∘ θ ∘ σK1) ∘ (γ −1
∘ π ∘ σK2)
Input Output Input Output
0000 1110 1000 0111
0001 0011 1001 1101
0010 0100 1010 1001
0011 1000 1011 0110
0100 0001 1100 1011
0101 1100 1101 0010
0110 1010 1110 0000
0111 1111 1111 0101
Modes opératoires
Modes opératoires
Morris Dworkin
C O M P U T E R S E C U R I T Y
ECB (electronic codebook)
ECB Encryption ECB Decryption
PLAINTEXT CIPHERTEXT
CIPHK CIPH-1K
CIPHERTEXT PLAINTEXT
Exemples :
• train de bits 10000...000 ;
• séquence de k octets de valeur k (PKCS).
CBC (cipher block chaining)
INITIALIZATION PLAINTEXT 1 PLAINTEXT 2 PLAINTEXT n
VECTOR
⊕ ⊕ ⊕
ENCRYPT
INITIALIZATION
VECTOR
INITIALIZATION
VECTOR
. . . . .
ENCRYPT
• Auto-synchronisation
• Accès randomisé
Serge Vaudenay
Un protocole naïf
Alice et Bob ont échangé une clé secrète de
256 bits et élu l’algorithme AES-256-CTR. Ils
souhaitent établir un canal de communication
sécurisé entre eux, sur une socket TCP, comme
suit. Eve écoute les échanges « sécurisés ».
(…)