| Home Page |
| Course Page |

$ java Oracle01 1 10 142857 Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F 66B00FF580266641 8334CB94231083BA 4CD889F1452736ED F2EE6F86EE539BA2 FAD1CE0FB755ECFB 22537456F7999E20 4FA23DF5BF583A95 FB593B54EFC6AF63 1D61F599CCBD178A 47493E3F1530FA3D 85EC44B91EE73D90 2D289C8449F796A7 32715EFFCFA633FF 6A7BFE7317705E50 AC3605B4F3D7B606 F5274CC65458320A 5AB5F0661BFA318D 104CDD86E2A51AD0 1612BF79C6E64A6C 1171721C217FA079

$ java Attack01 10 142857 0 1 2 3 0 16 32 48 > out01.txt Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F $ cat out01.txt Subkey 0 Subkey 1 3 2 1 0 48 32 16 0 Count 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 3 . . . 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 1 10 *** 1 1 0 0 1 0 0 0 0 1 1 0 0 1 0 0 1 0 1 1 0 0 1 0 1 0 0 . . . 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0
$ java Attack02 10 142857 Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F S-box 0, round 0 subkey = C, round 1 subkey = 7 S-box 1, round 0 subkey = 2, round 1 subkey = B S-box 2, round 0 subkey = 2, round 1 subkey = 5 S-box 3, round 0 subkey = D, round 1 subkey = 9 S-box 4, round 0 subkey = F, round 1 subkey = 1 S-box 5, round 0 subkey = F, round 1 subkey = E S-box 6, round 0 subkey = C, round 1 subkey = 4 S-box 7, round 0 subkey = 8, round 1 subkey = 9 S-box 8, round 0 subkey = E, round 1 subkey = 7 S-box 9, round 0 subkey = 1, round 1 subkey = E S-box 10, round 0 subkey = 9, round 1 subkey = A S-box 11, round 0 subkey = B, round 1 subkey = C S-box 12, round 0 subkey = A, round 1 subkey = F S-box 13, round 0 subkey = 2, round 1 subkey = C S-box 14, round 0 subkey = B, round 1 subkey = 3 S-box 15, round 0 subkey = D, round 1 subkey = 5 Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F

$ java MitmAttack01 142857 Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F Round 2 subkey = 1F48A7D5576CAAE5 N Plaintext Ciphertext # subkeys 1 66B00FF580266641 681FAD64B5A15B88 1048576 1048576 1048576 1048576 2 4CD889F1452736ED 1656E7DE98779837 7424 6656 6400 5888 3 FAD1CE0FB755ECFB 02316FAE86D6B6A1 2 4 2 2 4 4FA23DF5BF583A95 4253B7FDCF33A36C 1 2 1 1 5 1D61F599CCBD178A E57EF7404C434442 1 1 1 1 Subkey 0 = ................................................1101001000101100 Subkey 1 = ............1010............0101............0011............1111 Subkey 2 = ...1...1...0...0...0...1...1...1...1...1...0...0...0...0...0...1
X X X X | Y Y Y Y 1 2 3 4 | 1 2 3 4 --------+-------- 0 0 0 0 | 1 1 0 0 0 0 0 1 | 0 1 0 1 0 0 1 0 | 0 1 1 0 0 0 1 1 | 1 0 1 1 0 1 0 0 | 1 0 0 1 0 1 0 1 | 0 0 0 0 0 1 1 0 | 1 0 1 0 0 1 1 1 | 1 1 0 1 1 0 0 0 | 0 0 1 1 1 0 0 1 | 1 1 1 0 1 0 1 0 | 1 1 1 1 1 0 1 1 | 1 0 0 0 1 1 0 0 | 0 1 0 0 1 1 0 1 | 0 1 1 1 1 1 1 0 | 0 0 0 1 1 1 1 1 | 0 0 1 0
X1X2X3X4 | Y1Y2Y3Y4 | X3+X4 | Y2+Y3 | Equal? ---------+----------+-------+-------+------- 0 0 0 0 | 1 1 0 0 | 0 | 1 | 0 0 0 1 | 0 1 0 1 | 1 | 1 | Yes 0 0 1 0 | 0 1 1 0 | 1 | 0 | 0 0 1 1 | 1 0 1 1 | 0 | 1 | 0 1 0 0 | 1 0 0 1 | 0 | 0 | Yes 0 1 0 1 | 0 0 0 0 | 1 | 0 | 0 1 1 0 | 1 0 1 0 | 1 | 1 | Yes 0 1 1 1 | 1 1 0 1 | 0 | 1 | 1 0 0 0 | 0 0 1 1 | 0 | 1 | 1 0 0 1 | 1 1 1 0 | 1 | 0 | 1 0 1 0 | 1 1 1 1 | 1 | 0 | 1 0 1 1 | 1 0 0 0 | 0 | 0 | Yes 1 1 0 0 | 0 1 0 0 | 0 | 1 | 1 1 0 1 | 0 1 1 1 | 1 | 0 | 1 1 1 0 | 0 0 0 1 | 1 | 0 | 1 1 1 1 | 0 0 1 0 | 0 | 1 |
$ java PresentLinearApprox
Input Output Sum
Sum 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 +8 . . . . . . . . . . . . . . .
1 . . . . . -4 . -4 . . . . . -4 . +4
2 . . +2 +2 -2 -2 . . +2 -2 . +4 . +4 -2 +2
3 . . +2 +2 +2 -2 -4 . -2 +2 -4 . . . -2 -2
4 . . -2 +2 -2 -2 . +4 -2 -2 . -4 . . -2 +2
5 . . -2 +2 -2 +2 . . +2 +2 -4 . +4 . +2 +2
6 . . . -4 . . -4 . . -4 . . +4 . . .
7 . . . +4 +4 . . . . -4 . . . . +4 .
8 . . +2 -2 . . -2 +2 -2 +2 . . -2 +2 +4 +4
9 . +4 -2 -2 . . +2 -2 -2 -2 -4 . -2 +2 . .
A . . +4 . +2 +2 +2 -2 . . . -4 +2 +2 -2 +2
B . -4 . . -2 -2 +2 -2 -4 . . . +2 +2 +2 -2
C . . . . -2 -2 -2 -2 +4 . . -4 -2 +2 +2 -2
D . +4 +4 . -2 -2 +2 +2 . . . . +2 -2 +2 -2
E . . +2 +2 -4 +4 -2 -2 -2 -2 . . -2 -2 . .
F . +4 -2 +2 . . -2 -2 -2 +2 +4 . +2 +2 . .

$ java LinearAttack01 2 1000 142857 0 16 32 48 3 4 20 36 52 3 1 2 5 6 > out04.txt Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F Round 2 subkey = 1F48A7D5576CAAE5 $ cat out04.txt Final round subkey bits 48 32 16 0 52 36 20 4 Count |Bias| 0 0 0 0 0 0 0 0 503 0.003000 0 0 0 0 0 0 0 1 486 0.014000 0 0 0 0 0 0 1 0 505 0.005000 . . . 0 1 0 1 0 0 0 1 502 0.002000 0 1 0 1 0 0 1 0 479 0.021000 0 1 0 1 0 0 1 1 484 0.016000 0 1 0 1 0 1 0 0 617 0.117000 *** 0 1 0 1 0 1 0 1 545 0.045000 0 1 0 1 0 1 1 0 466 0.034000 0 1 0 1 0 1 1 1 444 0.056000 . . . 1 1 1 1 1 1 0 1 482 0.018000 1 1 1 1 1 1 1 0 497 0.003000 1 1 1 1 1 1 1 1 526 0.026000
$ java LinearAttack01 2 1000 142857 1 17 33 49 3 5 21 37 53 3 17 18 21 22 > out05.txt Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F Round 2 subkey = 1F48A7D5576CAAE5 $ cat out05.txt Final round subkey bits 49 33 17 1 53 37 21 5 Count |Bias| 0 0 0 0 0 0 0 0 465 0.035000 0 0 0 0 0 0 0 1 458 0.042000 0 0 0 0 0 0 1 0 531 0.031000 0 0 0 0 0 0 1 1 620 0.120000 *** 0 0 0 0 0 1 0 0 499 0.001000 0 0 0 0 0 1 0 1 487 0.013000 0 0 0 0 0 1 1 0 524 0.024000 . . . 1 1 1 1 1 1 0 1 495 0.005000 1 1 1 1 1 1 1 0 452 0.048000 1 1 1 1 1 1 1 1 463 0.037000


$ java LinearAttack01 3 100000 142857 1 17 33 49 3 5 21 37 53 3 5 7 21 23 > out06.txt Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F Round 2 subkey = 1F48A7D5576CAAE5 Round 3 subkey = FF4663E914FAAAEC $ cat out06.txt Final round subkey bits 49 33 17 1 53 37 21 5 Count |Bias| 0 0 0 0 0 0 0 0 49825 0.001750 0 0 0 0 0 0 0 1 49987 0.000130 0 0 0 0 0 0 1 0 50032 0.000320 . . . 1 0 1 0 0 1 0 0 50510 0.005100 1 0 1 0 0 1 0 1 50498 0.004980 1 0 1 0 0 1 1 0 49556 0.004440 1 0 1 0 0 1 1 1 49206 0.007940 *** 1 0 1 0 1 0 0 0 49472 0.005280 1 0 1 0 1 0 0 1 49822 0.001780 1 0 1 0 1 0 1 0 50462 0.004620 . . . 1 1 1 1 1 1 0 1 50044 0.000440 1 1 1 1 1 1 1 0 49813 0.001870 1 1 1 1 1 1 1 1 49919 0.000810
X X X X | Y Y Y Y 1 2 3 4 | 1 2 3 4 --------+-------- 0 0 0 0 | 1 1 0 0 0 0 0 1 | 0 1 0 1 0 0 1 0 | 0 1 1 0 0 0 1 1 | 1 0 1 1 0 1 0 0 | 1 0 0 1 0 1 0 1 | 0 0 0 0 0 1 1 0 | 1 0 1 0 0 1 1 1 | 1 1 0 1 1 0 0 0 | 0 0 1 1 1 0 0 1 | 1 1 1 0 1 0 1 0 | 1 1 1 1 1 0 1 1 | 1 0 0 0 1 1 0 0 | 0 1 0 0 1 1 0 1 | 0 1 1 1 1 1 1 0 | 0 0 0 1 1 1 1 1 | 0 0 1 0
X X X X | Y Y Y Y | X'X'X'X'| Y'Y'Y'Y'| ΔYΔYΔYΔY 1 2 3 4 | 1 2 3 4 | 1 2 3 4 | 1 2 3 4 | 1 2 3 4 --------+---------+---------+---------+-------- 0 0 0 0 | 1 1 0 0 | 0 0 0 1 | 0 1 0 1 | 1 0 0 1 0 0 0 1 | 0 1 0 1 | 0 0 0 0 | 1 1 0 0 | 1 0 0 1 0 0 1 0 | 0 1 1 0 | 0 0 1 1 | 1 0 1 1 | 1 1 0 1 0 0 1 1 | 1 0 1 1 | 0 0 1 0 | 0 1 1 0 | 1 1 0 1 0 1 0 0 | 1 0 0 1 | 0 1 0 1 | 0 0 0 0 | 1 0 0 1 0 1 0 1 | 0 0 0 0 | 0 1 0 0 | 1 0 0 1 | 1 0 0 1 0 1 1 0 | 1 0 1 0 | 0 1 1 1 | 1 1 0 1 | 0 1 1 1 0 1 1 1 | 1 1 0 1 | 0 1 1 0 | 1 0 1 0 | 0 1 1 1 1 0 0 0 | 0 0 1 1 | 1 0 0 1 | 1 1 1 0 | 1 1 0 1 1 0 0 1 | 1 1 1 0 | 1 0 0 0 | 0 0 1 1 | 1 1 0 1 1 0 1 0 | 1 1 1 1 | 1 0 1 1 | 1 0 0 0 | 0 1 1 1 1 0 1 1 | 1 0 0 0 | 1 0 1 0 | 1 1 1 1 | 0 1 1 1 1 1 0 0 | 0 1 0 0 | 1 1 0 1 | 0 1 1 1 | 0 0 1 1 1 1 0 1 | 0 1 1 1 | 1 1 0 0 | 0 1 0 0 | 0 0 1 1 1 1 1 0 | 0 0 0 1 | 1 1 1 1 | 0 0 1 0 | 0 0 1 1 1 1 1 1 | 0 0 1 0 | 1 1 1 0 | 0 0 0 1 | 0 0 1 1
$ java PresentDifferential
Input Output Delta
Delta 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 16 . . . . . . . . . . . . . . .
1 . . . 4 . . . 4 . 4 . . . 4 . .
2 . . . 2 . 4 2 . . . 2 . 2 2 2 .
3 . 2 . 2 2 . 4 2 . . 2 2 . . . .
4 . . . . . 4 2 2 . 2 2 . 2 . 2 .
5 . 2 . . 2 . . . . 2 2 2 4 2 . .
6 . . 2 . . . 2 . 2 . . 4 2 . . 4
7 . 4 2 . . . 2 . 2 . . . 2 . . 4
8 . . . 2 . . . 2 . 2 . 4 . 2 . 4
9 . . 2 . 4 . 2 . 2 . . . 2 . 4 .
A . . 2 2 . 4 . . 2 . 2 . . 2 2 .
B . 2 . . 2 . . . 4 2 2 2 . 2 . .
C . . 2 . . 4 . 2 2 2 2 . . . 2 .
D . 2 4 2 2 . . 2 . . 2 2 . . . .
E . . 2 2 . . 2 2 2 2 . . 2 2 . .
F . 4 . . 4 . . . . . . . . . 4 4

$ java Oracle02 2 10 142857 0 4 Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F Round 2 subkey = 1F48A7D5576CAAE5 66B00FF580266641 681FAD64B5A15B88 66B00FF580266650 681FAD74B4B15A99 4CD889F1452736ED 1656E7DE98779837 4CD889F1452736FC 1646E7CE88668836 FAD1CE0FB755ECFB 02316FAE86D6B6A1 FAD1CE0FB755ECEA 02316EAF87D7B7B0 4FA23DF5BF583A95 4253B7FDCF33A36C 4FA23DF5BF583A84 5253A6FCCF22B37D 1D61F599CCBD178A E57EF7404C434442 1D61F599CCBD179B E57EF6514D524452 85EC44B91EE73D90 16974B8EAD02F976 85EC44B91EE73D81 16974B9FAC02F876 32715EFFCFA633FF EC39C5249E6CCD01 32715EFFCFA633EE ED29D4258E7DDC00 AC3605B4F3D7B606 060391D2F671B2BC AC3605B4F3D7B617 171381C2F771A2AD 5AB5F0661BFA318D 7E6D7BBA580A044B 5AB5F0661BFA319C 7E7D7BAB490B155A 1612BF79C6E64A6C 3767583A53F5508F 1612BF79C6E64A7D 3767583A43F5408E
$ java DifferentialAttack01 2 100 142857 0 16 32 48 3 4 20 36 52 3 0 4 > out07.txt Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F Round 2 subkey = 1F48A7D5576CAAE5 $ cat out07.txt Final round subkey bits 48 32 16 0 52 36 20 4 Count 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 1 . . . 0 1 0 1 0 0 0 1 2 0 1 0 1 0 0 1 0 2 0 1 0 1 0 0 1 1 0 0 1 0 1 0 1 0 0 5 *** 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 1 0 0 0 1 0 1 0 1 1 1 3 . . . 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0


$ java DifferentialAttack02 3 1000 142857 0 16 32 48 3 4 20 36 52 3 8 24 40 56 3 12 28 44 60 3 12 13 14 15 28 29 30 31 > out08.txt Key = DB2AB91E8CFFD22C7555 (Shhh!) Round 0 subkey = DB2AB91E8CFFD22C Round 1 subkey = 3EAABB655723D19F Round 2 subkey = 1F48A7D5576CAAE5 Round 3 subkey = FF4663E914FAAAEC $ cat out08.txt Final round subkey bits 48 32 16 0 52 36 20 4 56 40 24 8 60 44 28 12 Count 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 . . . 0 1 0 0 0 0 1 0 1 1 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 0 0 1 0 1 1 0 0 1 0 0 1 5 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 0 9 *** 0 1 0 0 0 0 1 0 1 1 0 0 1 0 1 1 2 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 0 6 0 1 0 0 0 0 1 0 1 1 0 0 1 1 0 1 0 . . . 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0
K Trials Confs Green Msec 4 0.0 0.0 0.0 583.4 8 0.0 0.0 0.0 79.8 12 0.0 0.0 0.0 94.8 16 0.0 0.0 0.0 106.1 20 0.0 0.0 0.0 90.1 24 0.0 0.0 0.0 85.6 28 0.0 0.0 0.0 88.2 32 0.0 0.0 0.0 73.6 36 0.0 0.0 0.0 88.3 40 2.1 0.7 1.5 112.0 44 2.1 1.0 1.8 158.7 48 5.0 2.2 3.0 105.5 52 16.0 7.1 6.4 115.9 56 76.3 29.0 26.1 176.1 60 143.4 51.1 48.7 155.1 64 362.4 168.4 129.6 118.8 68 411.5 211.2 151.0 212.5 72 263.8 103.2 78.6 120.1 76 321.2 125.5 93.3 77.9 80 278.4 93.1 68.7 94.3
K Trials Confs Green Msec 4 0.0 0.0 0.0 579.1 8 0.0 0.0 0.0 128.9 12 0.0 0.0 0.0 70.3 16 0.0 0.0 0.0 83.6 20 0.0 0.0 0.0 97.8 24 0.0 0.0 0.0 80.7 28 0.8 0.4 2.0 122.1 32 19.5 5.2 4.7 152.5 36 43.5 10.5 9.9 166.5 40 113.6 30.8 26.1 134.5 44 138.7 31.0 25.8 90.0 48 325.9 120.0 96.1 187.4 52 783.5 356.9 239.4 213.5 56 2321.5 1248.8 654.4 324.2 60 7602.8 5056.5 1547.6 927.2 64 65905.2 52819.2 5240.3 19401.6 68 68028.7 54932.5 4806.4 19653.5 72 49216.7 38616.7 3403.4 10942.2 76 129185.8 105346.1 5238.1 51255.3 80 97825.8 80464.1 3951.7 38631.4
K Trials Confs Green Msec 4 0.0 0.0 0.0 632.6 8 0.0 0.0 0.0 87.0 12 3.7 1.0 1.2 213.2 16 24.6 4.8 4.5 159.0 20 36.9 7.4 7.0 117.6 24 57.1 10.0 9.3 113.9 28 100.3 19.6 17.4 138.4 32 184.0 38.3 34.7 144.4 36 336.0 62.8 51.7 159.3 40 695.9 176.1 117.1 176.3 44 1337.0 428.7 249.9 174.9 48 5158.1 2669.5 962.7 539.1 52 24204.9 16368.0 3187.3 3852.3 56 220047.5 173606.4 12887.8 165689.6 60 2725013.3 2293931.4 69933.4 26109676.5 64 7417622.0 6269241.5 111690.8 105327287.8 68 9397425.0 8023027.0 119269.0 150076739.0
| Course Page |
| Home Page |