diff --git a/files/pagging.svg b/files/pagging.svg
index 6558467..5129873 100644
--- a/files/pagging.svg
+++ b/files/pagging.svg
@@ -6,11 +6,35 @@
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg8"
version="1.1"
viewBox="0 0 435.13284 144.2607"
height="144.2607mm"
- width="435.13284mm">
+ width="435.13284mm"
+ sodipodi:docname="pagging.svg"
+ inkscape:version="0.92.4 5da689c313, 2019-01-14">
+
CBC Padding
-
+ 1
+ id="path933" />
+
- 2
+ id="text3904">
+
+
diff --git a/memoire.md b/memoire.md
index e1de56b..b00e424 100644
--- a/memoire.md
+++ b/memoire.md
@@ -1,10 +1,10 @@
---
title: Authentification par smartcard et PKI
-documentclass: scrbook
+documentclass: scrartcl
author:
- Luc Lauriou
- Yorick Barbanneau
-fontsize: 12pt
+fontsize: 13pt
mainfont: DejaVu Serif
geometry: [top=1.5cm, bottom=3cm, left=3cm, right=3cm]
header-includes:
@@ -312,28 +312,34 @@ de `cleartext[n]` en modifiant `cblock[n-1]`, ou tout simplement en le
forgeant à notre convenance.
Prenons `X` comme bloc de chiffrement forgé pour l'occasion, et `cblock[n]`
-bloc de chiffrement à attaquer, nous pouvons écrire :
+bloc de chiffrement à attaquer et `cleartexthack` le résultat du déchiffrement
+de `cblock[n]` avec notre `X` en vecteur d'initialisation, nous pouvons écrire :
$$
-cleartexthack[n] = decrypt(cblock[n]) \oplus X
+cleartexthack = decrypt(cblock[n]) \oplus X
$$
Nous savons aussi que :
$$
-cblock[a] = encrypt(cleartextr[n] \oplus cblock[n-1])
+cblock[n] = encrypt(cleartext[n] \oplus cblock[n-1])
$$
Donc on peut écrire :
$$
-cleartexthack = decrypt(encrypt(txt_clair[n] \oplus cblock[n-1])) \oplus X
+cleartexthack = decrypt(encrypt(cleartext[n] \oplus cblock[n-1])) \oplus X
$$
En simplifiant :
$$
-cleartext = cleartext[a] \oplus cblock[n-1] \oplus X
+cleartexthack = cleartext[n] \oplus cblock[n-1] \oplus X
+$$
+
+Que l'on peut aussi écrire
+$$
+cleartext[n] = cleartexthack \oplus cblock[n-1] \oplus X
$$
Cette équation se compose de deux éléments que nous avons en notre possession :
@@ -349,10 +355,10 @@ toutes les valeurs du dernier octet de `X` jusqu'à obtenir un padding correct
(`0x01`). Dans le cadre de notre block de 16 octets :
$$
-0x01 = cleartext[n][15] \oplus cblock[n-1][15] \oplus X[15]
+cleartext[n][15] = 0x01 \oplus cblock[n-1][15] \oplus X[15]
$$
-Il ne nous reste plus qu'une inconnue `cleartext[15]`, nous pouvons résoudre
+Il ne nous reste plus qu'une inconnue `cleartext[n][15]`, nous pouvons résoudre
l'équation.
Il suffit de procéder ainsi pour les 16 octets de notre bloc pour le déchiffrer
@@ -391,12 +397,12 @@ sont résistante à l'ouverture par la force, une attaque ciblée couplée à de
l'ingénierie sociale bien menée pour retrouver le code PIN reste possible.
[^n_infra]:Google a publié le 23 février 2017 un article annonçant la première
- collision sur du SHA1. https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html)
+ collision sur du SHA1. [source](https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html)
[^n_yubikey]:La Yubikey 4, et d'autre périphériques cryptographiques sont
touchés par ROCAT, une faille touchant des librairies utilisées par des puces
de la marque Infineon Technologies AG et permettant de prédire la clé privée
- grâce à la clé publique - CVE-2017-15361. https://crocs.fi.muni.cz/public/papers/rsa_ccs17
+ grâce à la clé publique - CVE-2017-15361. [source](https://crocs.fi.muni.cz/public/papers/rsa_ccs17)
## Bibliographie