whitebox techniques for des
TRANSCRIPT
Implementation et Analyse d’une White-box duDES
David Wong Jacques Monin Hugo Bonnin
Universite de Bordeaux
2014
Man At The End
.-----------------.
| ATTAQUANT |
| .-----------. |
| | | |
| | PROGRAMME | |
| | | |
| ’-----------’ |
| |
’-----------------’
GithubI DES : www.github.com/mimoo/DESI WHITEBOX-DES : www.github.com/mimoo/whiteboxDES
Partial evaluation
I Regrouper le XOR entre le bloc et la cle avec l’operation desubstitution.
I On peut ensuite pre-calculer toutes les sorties possibles decette operation.
I Les tables creees sont les seules du programme a etremodifiees lorsqu’une nouvelle cle est utilisee.
Concepts secondaires
*********************************************
* state 2 (96 bits) *
*********************************************
| | | |
v v v ... v
?????????????????????????????????????????????
| | | ... |
v v v v
*********************************************
* state 3 (96 bits) *
*********************************************
Mixing Bijection
000000000000000000000000000000010000000000000000000000001000000000000000000000000000000000000000
100000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000
010000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000
000100000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000
000010000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000
000100000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000
000010000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000
000001000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000
000000100000000000000000000000000000000000000000000000000001000000000000000000000000000000000000
000000010000000000000000000000000000000000000000100000000000000000000000000000000000000000000000
G−1 · (G ·M1) ou G ·M1
Bypass
I On empeche l’identification facile des operations
I On rajoute des bits en entree et en sortie
Split-Path Encoding
Entree S-box Sortie
.--------------------.
0011||0010 --> |...| 0011||0010 |...|
|----------------|---|
|...| 0001 |...| --> 0001
’--------------------’
|
v
.--------------------.
0011||0010 --> |...| 0011||0010 |...|
|----------------|---|
|...| 0001||xxxx |...| --> 0001||1001
’--------------------’
External Encoding
I Appliquer deux bijections a l’entree et la sortie de DES
I Whitebox = E ◦ DES(input) ◦ G