ЗАШТИТА ПОДАТАКА · zadatak •za originalnu poruku 10111101b i ključ 1010000010b...
TRANSCRIPT
ЗАШТИТА ПОДАТАКА
Симетрични алгоритми заштите
блок алгоритми и DES (Data Encryption Standard)
Zadatak
• Za originalnu poruku 10111101b i ključ 1010000010b dati međurezultat svake operacije, kao i vrednost šifrovane poruke ako se koristi pojednostavljeni DES algoritam (S-DES). Nacrtati strukturu pojednostavljenog DES algoritma. Koristiti opis modifikacija u odnosu na DES algoritam dat u prilogu.
Zadatak - prilog
• Pojednostavljeni DES algoritam ima veličinu bloka 8 bita, veličinu ključa 10 bita i 2 iteracije. Struktura algoritma odgovara strukturi DESalgoritma. Sve operacije u algoritmu su modifikovane da rade sa redukovanim veličinama ulaznih parametara.
Zadatak – detalji operacija
• PC1:
• rotacija: 1. iteracija za 1, 2. iteracija za 1
• PC2: IP:
• IP-1: E:
• S1: S2:
• P:
3 5 2 7 4 10 1 9 8 6
6 3 7 4 8 5 10 9 2 6 3 1 4 8 5 7
4 1 3 5 7 2 8 6 4 1 2 3 2 3 4 1
1 0 3 2
3 2 1 0
0 2 1 3
3 1 0 2
0 1 2 3
2 0 1 3
3 0 1 2
2 1 0 3
2 4 3 1
Rešenje - struktura
Rešenje – struktura iteracije
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1
Rešenje
• K = 1010000010b
• PC1:1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1 0 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1 0 0 1
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1 0 0 1 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1 0 0 1 0 0
Rešenje
• K = 1010000010b
• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;
• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;
• PC2:
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1 0 0 1 0 0 1
Rešenje
• K = 1010000010b• PC1:
• LCS-1: 10000 – 00001; 01100 – 11000;• PC2:
• LCS-2:00001 – 00010; 11000 – 10001;• PC2:
• K1=10100100b; K2=10010010b
1 2 3 4 5 6 7 8 9 10
1 0 1 0 0 0 0 0 1 0
3 5 2 7 4 10 1 9 8 6
1 0 0 0 0 0 1 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 0 1 1 1 0 0 0
6 3 7 4 8 5 10 9
1 0 1 0 0 1 0 0
1 2 3 4 5 6 7 8 9 10
0 0 0 1 0 1 0 0 0 1
6 3 7 4 8 5 10 9
1 0 0 1 0 0 1 0
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1
Rešenje
• P = 10111101b
• IP:1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0 1
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0 1 1
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0 1 1 1
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0 1 1 1 1
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0 1 1 1 1 1
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0 1 1 1 1 1 0
Rešenje
• P = 10111101b
• IP:
• L0=0111b; R0=1110b
• E:
• XOR: 01111101 1010010011011001
1 2 3 4 5 6 7 8
1 0 1 1 1 1 0 1
2 6 3 1 4 8 5 7
0 1 1 1 1 1 1 0
1 2 3 4
1 1 1 0
4 1 2 3 2 3 4 1
0 1 1 1 1 1 0 1
Rešenje
• S1 – 11011 0 3 2
3 2 1 0
0 2 1 3
3 1 0 2
Rešenje
• S1 – 1101 – 001 0 3 2
3 2 1 0
0 2 1 3
3 1 0 2
Rešenje
• S1 – 1101 – 00
• S2 – 1001
1 0 3 2
3 2 1 0
0 2 1 3
3 1 0 2
0 1 2 3
2 0 1 3
3 0 1 2
2 1 0 3
Rešenje
• S1 – 1101 – 00
• S2 – 1001 – 10
1 0 3 2
3 2 1 0
0 2 1 3
3 1 0 2
0 1 2 3
2 0 1 3
3 0 1 2
2 1 0 3
Rešenje
• P: 00101 2 3 4
0 0 1 0
2 4 3 1
Rešenje
• P: 00101 2 3 4
0 0 1 0
2 4 3 1
0
Rešenje
• P: 00101 2 3 4
0 0 1 0
2 4 3 1
0 0
Rešenje
• P: 00101 2 3 4
0 0 1 0
2 4 3 1
0 0 1
Rešenje
• P: 0010
• L1 = R0=1110b
• R1 = 0010 xor01110101
1 2 3 4
0 0 1 0
2 4 3 1
0 0 1 0
Rešenje
• L1 = 1110b; R1 = 0101b;• E: 10101010b• XOR: 10101010
1001001000111000
• S1 – 0011 – 10; S2 – 1000 – 11• P: 0111b• L2 = R1 = 0101b;• R2 = 0111 xor
11101001
• L2 = 0101b; R2 = 1001b;• 4bit swap: 10010101b• C= IP-1: 11000011b