maskVerif is a tool that was first designed in 2015 to automatically and formally verify higher-order masking implementations. Operating on pseudo-code in SSA form, it returns either a security proof in some chosen leakage model, or a list of potential attacks.
In its latest version (available below), maskVerif is able to verify the following properties:
# obs | Tool Version | SNI | NI | probing | |||||
---|---|---|---|---|---|---|---|---|---|
HW | SW | HW | SW | HW | SW | HW | SW | ||
first-order verification | |||||||||
Trichina AND - GF(2) | 2 | 13 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
ISW AND - GF(2) | 1 | 13 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
TI AND - GF(2) | 3 | 21 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
DOM AND - GF(2) | 4 | 13 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
DOM AND SNI - GF(2) | 6 | 13 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
PARA AND - GF(2) | 6 | 16 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
DOM Keccak S-box - GF(2) | 20 | 76 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
DOM AES S-box - GF(2) | 96 | 571 | 3 | 0.02s | 0.04s | 0.02s | 0.04s | 0.06s | 0.6s |
TI Fides-160 S-box - GF(2) | 192 | 6 657 | 3 | 0.2s | 0.2s | 0.3s | 57s | 0.3s | 2.8s |
TI Fides-192 APNx - GF(2) | 128 | 69 281 | 3 | 2.3s | 2.46s | 2.25s | infty | 2.3s | 3m49s |
Multiplication - GF(28) | * | 13 | 1 | * | * | * | 0.01s | * | * |
AES S-box (4) - GF(28) | * | 63 | 1 | * | * | * | 0.01s | * | * |
full AES (4) - GF(28) | * | 17 206 | 1 | * | * | * | 128s | * | * |
second-order verification | |||||||||
DOM AND - GF(2) | 12 | 30 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
DOM AND SNI - GF(2) | 15 | 30 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
PARA AND - GF(2) | 15 | 30 | 3 | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s | 0.01s |
DOM Keccak S-box - GF(2) | 60 | 165 | 3 | 0.01s | 0.2s | 0.07s | 0.14s | 0.03s | 0.03s |
DOM AES S-box - GF(2) | 168 | 1 205 | 3 | 3s | 3m9s | 3s | 3m9s | 10.7s | 15m45s |
RefreshZero2[1] | * | 66 | 2 | * | 0.01s | * | * | * | * |
Multiplication - GF(28) | * | 435 | 1 | * | * | * | 0.01s | * | * |
AES S-box - GF(28) | * | 7 140 | 1 | * | * | * | 0.05s | * | * |
AES S-box - GF(28) | * | 1 188 111 | 1 | * | * | * | 27m29s | * | * |
AES Key Schedule - GF(28) | * | 23 041 866 | 1 | * | * | * | 340.7s | * | * |
AES 2 rounds (4) - GF(28) | * | 25 429 146 | 1 | * | * | * | 21min35s | * | * |
AES 4 rounds (4) - GF(28) | * | 109 571 806 | 1 | * | * | * | 11h9min29s | * | * |
third-order verification | |||||||||
DOM AND - GF(2) | 20 | 54 | 3 | 0.01s | 0.04s | 0.02s | 0.05s | 0.02s | 0.03s |
DOM AND SNI - GF(2) | 24 | 54 | 3 | 0.04s | 0.04s | 0.03s | 0.05s | 0.03s | 0.03s |
PARA AND NI - GF(2) | 20 | 48 | 3 | 0.01s | 0.01s | 0.02s | 0.03s | 0.02s | 0.02s |
PARA AND SNI - GF(2) | 28 | 53 | 3 | 0.04s | 0.05s | 0.02s | 0.04s | 0.02s | 0.02s |
DOM Keccak S-box - GF(2) | 100 | 290 | 3 | 0.01s | 41s | 3.6s | 11.6s | 0.49s | 0.68s |
DOM AES S-box - GF(2) | 296 | 2 011 | 3 | 0.05s | 0.05s | 0.05s | 0.05s | 12m36s | infty |
RefreshZero3[1] | * | 560 | 2 | * | 0.01s | * | * | * | * |
Multiplication - GF(28) | * | 24 804 | 1 | * | * | * | 0.03s | * | * |
AES S-box (4) - GF(28) | * | 4 499 950 | 1 | * | * | * | 3.89s | * | * |
AES S-box (5) - GF(28) | * | 4 499 950 | 1 | * | * | * | 5.04s | * | * |
fourth-order verification | |||||||||
DOM AND - GF(2) | 30 | 87 | 3 | 0.03s | 0.34s | 0.1s | 0.15s | 0.1s | 0.1s |
PARA AND NI- GF(2) | 35 | 75 | 3 | 0.01s | 0.01s | 0.15s | 0.42s | 0.18s | 0.15s |
PARA AND SNI - GF(2) | 40 | 85 | 3 | 0.34s | 0.81s | 0.17s | 0.47s | 0.16s | 0.16s |
DOM Keccak S-box - GF(2) | 150 | 450 | 3 | 0.02s | infty | 4m | 13m20 | 20s | 41s |
RefreshZero4[1] | * | 4 845 | 2 | * | 0.01s | * | * | * | * |
Multiplication - GF(28) | * | 2 024 785 | 1 | * | * | * | 1.14s | * | * |
AES S-box - GF(28) | * | 4 487 429 560 | 1 | * | * | * | 6h8m39s | * | * |
AES S-box (4) - GF(28) | * | 2 277 036 685 | 1 | * | * | * | 14m39s | * | * |
fifth-order verification | |||||||||
DOM Keccak S-box - GF(2) | 210 | 618 | 3 | 0.02s | infty | 1h6m | infty | 3m59s | 14m6s |
RefreshZero5[1,2] | * | 850 668 | 2 | * | 0.01s | * | * | * | * |
Multiplication - GF(28) | * | 216 071 394 | 1 | * | * | * | 45s | * | * |
verification for orders > 5 | |||||||||
RefreshZero6[1,2] | * | 13 983 816 | 2 | * | 0.01s | * | * | * | * |
RefreshZero10[1,2] | * | 1012 | 2 | * | 18s | * | * | * | * |
RefreshZero18[1,4] | * | 7*1021 | 2 | * | 1 month | * | * | * | * |