Algoritma Kriptografi Modern(1)

Download Report

Transcript Algoritma Kriptografi Modern(1)

Algoritma Kriptografi Modern
Pendahuluan

Beroperasi dalam mode bit (algoritma kriptografi
klasik beroperasi dalam mode karakter)
 kunci, plainteks, cipherteks, diproses dalam
rangkaian bit
 operasi bit xor paling banyak digunakan
Pendahuluan
 Tetap menggunakan gagasan pada algoritma klasik:
substitusi dan transposisi, tetapi lebih rumit (sangat sulit
dipecahkan)
 Perkembangan algoritma kriptografi modern didorong
oleh penggunaan komputer digital untuk keamanan
pesan.
 Komputer digital merepresentasikan data dalam biner.
Diagram Blok Kriptografi Modern
Secure Network Protocols
Confidentiality
Encryption
Symmetric Key
Cryptography
Block
Cipher
Stream
Cipher
Data
Integrity
MACs
MICs
Message
Digest
Hash
Function
NonRepudiation
Authentication
Challenge
Responses
IVs
Nonces
Pseudo
Random
Smart
Cards
Secret
Keys
Random
Source
Digital
Signatures
Public Key
Cryptography
Elliptic
Curve
DH
RSA
Data Encryption Standard
(DES)
Tinjauan Umum DES
 Dikembangkan di IBM pada tahun 1972.
 Berdasarkan pada algoritma Lucifer yang dibuat oleh
Horst Feistel.
 Disetujui oleh National Bureau of Standard (NBS) setelah
penilaian kekuatannya oleh National Security Agency (NSA)
Amerika Serikat.
 DES adalah standard, sedangkan algoritmanya adalah
DEA (Data EncryptionAlgorithm). Kedua nama ini sering
dikacaukan.
 DES termasuk ke dalam kriptografi kunci-simetri dan
tergolong jenis cipher blok.
 DES beroperasi pada ukuran blok 64 bit.
 Panjang kunci ekternal = 64 bit (sesuai ukuran blok),
tetapi hanya 56 bit yang dipakai (8 bit paritas tidak
digunakan)
 Setiap blok (plainteks atau cipherteks) dienkripsi dalam
16 putaran.
 Setiap putaran menggunakan kunci internal berbeda.
 Kunci internal (56-bit) dibangkitkan dari kunci eksternal
 Setiap blok mengalami permutasi awal (IP), 16 putaran
enciphering, dan inversi permutasi awal (IP-1). (lihat
Gambar)
P lainteks
IP
16 kali
E nciphering
IP
-1
C ipherteks
G a m b a r 9 .1 S k em a G lo b al A lg o ritm a D E S
E
Plainteks
IP
L0
R0
f
K1

R1  L0  f ( R0 , K 1 )
L1 = R0
f
K2

L2 = R1
R 2  L1  f ( R1 , K 2 )
L15 = R14
R15  L14  f ( R14 , K 15 )
f
K16

R16  L15  f ( R15 , K 16 )
L16 = R15
Gambar 2. Algoritma Enkripsi dengan DES
IP-1
Cipherteks
Permutasi Awal
 Tujuan: mengacak plainteks sehingga urutan bit-bit di
dalamnya berubah.
 Matriks permutasi awal (IP):
58
62
57
61
50
54
49
53
42
46
41
45
34
38
33
37
26
30
25
29
18
22
17
21
10
14
9
13
2
6
1
5
60
64
59
63
52
56
51
55
44
48
43
47
36
40
35
39
28
32
27
31
20
24
19
23
12
16
11
15
4
8
3
7
Pembangkitan Kunci Internal
 Kunci internal = kunci setiap putaran
 Ada 16 putaran, jadi ada 16 kunci internal: K1, K2, …,
K16
 Dibangkitkan dari kunci eksternal (64 bit) yang
diberikan oleh pengguna.
 Gambar 3. memperlihatkan proses pembangkitan kunci
internal.
12
Kunci eksternal
Gambar 3. Proses pembangkitan kunci-kunci internal DES
Permutasi
PC-1
13
C0
D0
Left Shift
Left Shift
C1
D1
Left Shift
Left Shift


Cj
Dj


Left Shift
Left Shift
C16
D16
Permutasi
PC-2
K1
Permutasi
PC-2
Kj
Permutasi
PC-2
K16
M atriks perm utasi kom presi P C -1:
57
10
63
14
49
2
55
6
41
59
47
61
33
51
39
53
25
43
31
45
17
35
23
37
9
27
15
29
1
19
7
21
58
11
62
13
50
3
54
5
42
60
46
28
C 0 : berisi bit-bit dari K pada posisi
57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18
10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36
D 0 : berisi bit-bit dari K pada posisi
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22
14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4
14
Rinaldi M/IF3058 Kriptografi/Teknik Informatika ITB
34
52
38
20
26
44
30
12
18
36
22
4
Kunci eksternal
Gambar 9.2. Proses pembangkitan kunci-kunci internal DES
Permutasi
PC-1
15
C0
D0
Left Shift
Left Shift
C1
D1
Left Shift
Left Shift


Cj
Dj


Left Shift
Left Shift
C16
D16
Permutasi
PC-2
K1
Permutasi
PC-2
Kj
Permutasi
PC-2
K16
M atriks perm utasi kom presi PC -1:
57
10
63
14
49
2
55
6
41
59
47
61
33
51
39
53
25
43
31
45
17
35
23
37
9
27
15
29
1
19
7
21
58
11
62
13
50
3
54
5
42
60
46
28
C 0 : berisi bit-bit dari K pada posisi
57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18
10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36
D 0 : berisi bit-bit dari K pada posisi
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22
14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4
16
34
52
38
20
26
44
30
12
18
36
22
4
Enciphering
 Setiap blok plainteks mengalami 16 kali putaran
enciphering .
 Setiap putaran enciphering merupakan jaringan Feistel:
L i = Ri – 1
Ri = Li – 1  f(Ri – 1, Ki)
Li - 1
Ri 1
f

17
Li
Ri
Ki
 Diagram komputasi fungsi f :
Ri-1
32 bit
Ekspansi menjadi 48 bit
E(Ri-1)
48 bit

Ki
48 bit
48 bit
E ( Ri 1 )  K i  A
S1
...
B
32 bit
P(B)
32 bit
18
S8
Matriks substitusi
 E adalah fungsi ekspansi yang memperluas blok Ri – 1 32-bit
menjadi blok 48 bit.
 Fungsi ekspansi direalisasikan dengan matriks permutasi
ekspansi:
32
8
16
24
19
1
9
17
25
2
10
18
26
3
11
19
27
4
12
20
28
5
13
21
29
4
12
20
28
5
13
21
29
6
14
22
30
7
15
23
31
8
16
24
32
9
17
25
1
 Hasil ekpansi, yaitu E(Ri – 1) di-XOR-kan dengan Ki
menghasilkan vektor A 48-bit:
E(Ri – 1)  Ki = A
 Vektor A dikelompokkan menjadi 8 kelompok, masing-
masing 6 bit, dan menjadi masukan bagi proses
substitusi.
 Ada 8 matriks substitusi, masing-masing dinyatakan
dengan kotak-S.
 Kotak –S menerima masukan 6 bit dan memebrikan
keluaran 4 bit.
20
S 1:
14
0
4
15
4
15
1
12
13
7
14
8
1
4
8
2
2
14
13
4
15
2
6
9
11
13
2
1
8
1
11
7
3
10
15
5
10
6
12
11
6
12
9
3
12
11
7
14
5
9
3
10
9
5
10
0
0
3
5
6
7
8
0
13
1
13
14
8
8
4
7
10
14
7
11
1
6
15
10
3
11
2
4
15
3
8
13
4
4
14
1
2
9
12
5
11
7
0
8
6
2
1
12
7
13
10
6
12
12
6
9
0
0
9
3
5
5
11
2
14
10
5
15
9
0
7
6
10
9
0
4
13
14
9
9
0
6
3
8
6
3
4
15
9
15
6
3
8
5
10
0
7
1
2
11
4
13
8
1
15
12
5
2
14
7
14
12
3
11
12
5
11
4
11
10
5
2
15
14
2
8
1
7
12
13
8
6
15
14
11
9
0
3
5
0
6
0
6
12
10
6
15
11
1
9
0
7
13
10
3
13
8
1
4
15
9
2
7
1
4
8
2
3
5
5
12
14
11
11
1
5
12
12
10
2
7
4
14
8
2
15
9
4
14
S 2:
15
3
0
13
S 3:
10
13
13
1
S 4:
7
13
10
3
21
S 5:
2
14
4
11
12
11
2
8
4
2
1
12
1
12
11
7
7
4
10
1
10
7
13
14
11
13
7
2
6
1
8
13
8
5
15
6
5
0
9
15
3
15
12
0
15
10
5
9
13
3
6
10
0
9
3
4
14
8
0
5
9
16
14
3
1
15
14
3
10
4
15
2
15
2
5
12
9
7
2
9
2
12
8
5
6
9
12
15
8
5
3
10
0
6
7
11
13
1
0
14
3
13
4
1
4
14
10
7
14
0
1
6
7
11
13
0
5
3
11
8
11
8
6
13
4
13
1
6
S 8:
11
0
4
11
2
11
11
13
14
7
13
8
15
4
12
1
0
9
3
4
8
1
7
10
13
10
14
7
3
14
10
9
12
3
15
5
9
5
6
0
7
12
8
15
5
2
0
14
10
15
5
2
6
8
9
3
1
6
2
12
13
1
7
2
2
15
11
1
8
13
4
14
4
8
1
7
6
10
9
4
15
3
12
10
11
7
14
8
1
4
2
13
10
12
0
15
9
5
6
12
3
6
10
9
14
11
13
0
5
0
15
3
0
14
3
5
12
9
5
6
7
2
8
11
S 6:
12
10
9
4
S 7:
22
 Keluaran proses substitusi adalah vektor B yang
panjangnya 48 bit.
 Vektor B menjadi masukan untuk proses permutasi.
 Tujuan permutasi adalah untuk mengacak hasil proses
substitusi kotak-S.
 Permutasi dilakukan dengan menggunakan matriks
permutasi P (P-box) sbb:
16
2
23
7
8
20
24
21
14
29
32
12
27
28
3
17
9
1
19
15
13
23
30
26
6
5
22
8
11
31
4
10
25
 P(B) merupakan keluaran dari fungsi f.
 Bit-bit P(B) di-XOR-kan dengan Li – 1 menghasilkan Ri:
Ri = Li – 1  P(B)
 Jadi, keluaran dari putaran ke-i adalah
(Li, Ri) = (Ri – 1 , Li – 1  P(B))
Li-1
32 bit
f

Ri
32 bit
24
Inversi Permutasi (IP-1)
 Permutasi terakhir dilakukan setelah 16 kali putaran
terhadap gabungan blok kiri dan blok kanan.
 Permutasi menggunakan matriks permutasi awal balikan
(IP-1 ) sbb:
40
38
36
34
25
8
6
4
2
48
46
44
42
16
14
12
10
56
54
52
50
24
22
20
18
64
62
60
58
32
30
28
26
39
37
35
33
7
5
3
1
47
45
43
41
15
13
11
9
55
53
51
49
23
21
19
17
63
61
59
57
31
29
27
25
Dekripsi
 Dekripsi terhadap cipherteks merupakan kebalikan dari
proses enkripsi.
 DES menggunakan algoritma yang sama untuk proses
enkripsi dan dekripsi.
 Pada proses dekripsi urutan kunci yang digunakan adalah
K16, K15, …, K1.
 Untuk tiap putaran 16, 15, …, 1, keluaran pada setiap
putaran deciphering adalah
L i = Ri – 1
Ri = Li – 1  f(Ri – 1, Ki)
26
Rinaldi M/IF3058 Kriptografi/Teknik Informatika ITB
Mode DES
 DES dapat dioperasikan dengan mode ECB, CBC, OFB, dan
CFB.
 Namun karena kesederhanaannya, mode ECB lebih sering
digunakan pada paket komersil.
27
Implementasi DES
 DES sudah diimplementasikan dalam bentuk perangkat
keras.
 Dalam bentuk perangkat keras, DES diimplementasikan
di dalam chip. Setiap detik chip ini dapat
mengenkripsikan 16,8 juta blok (atau 1 gigabit per
detik).
 Implementasi DES ke dalam perangkat lunak dapat
melakukan enkripsi 32.000 blok per detik (pada
komputer mainframe IBM 3090).
28
Keamanan DES
 Keamanan DES ditentukan oleh kunci.
 Panjang kunci eksternal DES hanya 64 bit, tetapi yang
29
dipakai hanya 56 bit.
 Pada rancangan awal, panjang kunci yang diusulkan IBM
adalah 128 bit, tetapi atas permintaan NSA, panjang kunci
diperkecil menjadi 56 bit.
 Tetapi, dengan panjang kunci 56 bit akan terdapat 256 atau
72.057.594.037.927.936 kemungkinan kunci.
 Jika serangan exhaustive key search dengan menggunakan
prosesor paralel, maka dalam satu detik dapat dikerjakan satu
juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk
menemukan kunci yang benar.