BAB I PENDAHULUAN 1.1 LATAR BELAKANG
Kehidupan kita saat ini dilingkupi oleh kriptografi. Mulai dari transaksi di mesin ATM, percakapan melalui telpon genggam, mengakses Internet, sampai mengaktifkan peluru kendalipun menggunakan
kriptografi. Begitu pentingnya
kriptografi untuk keamanan Informasi ( Information Security ), sehingga jika berbicara mengenai masalah keamanan yang berkaitan dengan penggunaan computer, maka tidak akan bisa dipisahkan dari dengan kriptografi Kriptografi juga digunakan dalam proses pengiriman Email. Jika sebuah email
dikirim melewati jaringan
public maka tingkat keamanannya sangat
beresiko. Teknik – teknik pencurian informasi dari sebuah email ini semakin canggih dari hari ke hari. Salah satunya adalah konsep Man – In – The The Middle. Penggunaan Kriptografi akan sangat membantu memberikan keamanan informasi email kita. Walaupun attacker atau Man – In – the Middle berhasil mendapatkan teks yang kita kirim namun tidak bisa mendapatkan informasi apapun karena teks yang didapat sudah ter-enkripsi sebelumnya. Chiperteks yang didapat hanya bisa dibuka oleh
1
BAB II PEMBAHASAN
2.1 Pengertian DES
DES merupakan kependekan dari {Data Encryption Standard}, yaitu standar teknik encryption yang diresmikan oleh pemerintah Amerika Serikat (US) di tahun 1977. DES kemudian dijadikan standar ANSI di tahun 1981. Horst Feistel merupakan salah satu periset yang mula-mula mengembangkan DES ketika bekerja di IBM Watson Laboratory di Yorktown Heights, New York. DES merupakan block cipher yang beroperasi dengan blok berukuran 64 bit dan d an kunci kun ci 56-bit. 56 -bit. Brute-force Brut e-force attack at tack terhadap DES membutuhkan membutuhk an kombinasi komb inasi 2 pangkat 56, atau sekitar 7 x 10 pangkat 16, atau 70 juta ju ta milyar.
A. Tinjauan Umum
DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis blok. cipher blok.
DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal
(internal
key)
atau
upa-kunci
( subkey subkey).
Kunci
internal
dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit.
Skema global dari algoritma DES adalah sebagai berikut: 1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP).
2. Hasil permutasi awal kemudian di-enciphering - sebanyak 16 kali (16 putaran). Setiap putaran menggunakan men ggunakan kunci internal inter nal yang berbeda. 3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks.
Di dalam proses enciphering , blok plainteks terbagi menjadi dua bagian, kiri ( L L) dan kanan ( R R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam dala m 16 putaran DES.
2
Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f . Pada fungsi f , blok R dikombinasikan dengan kunci internal K i. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES.
Secara matematis, satu putaran DES dinyatakan sebagai Li = Ri – 1 Ri = Li – 1 f ( Ri – 1, K i)
Gambar 2 memperlihatkan skema algoritma DES yang lebih rinci. Plainteks
IP
L0
R0
f
K 1
L1 = R0
R1
L0
f ( R 0 ,
K 1 )
f
K 2
L2 = R1
L15 = R14
R 2
L1
R15
L14
f ( R1 , K 2 )
f ( R14 ,
f
K 16
R16
L15
f ( R15 ,
K 16 )
K 15 )
L16 = R15
IP-1
Cipherteks
Gambar 2. Algoritma Enkripsi dengan DS
3
Catatlah bahwa satu putaran DES merupakan model jaringan Feistel (lihat Gambar 3). Li - 1
Ri 1
f
K i
Li
Ri
Gambar 3. Jaringan Feistel untuk satu putaran DES
Perlu dicatat dari Gambar 2 bahwa jika ( L16, R16) merupakan keluaran dari putaran ke-16, maka ( R16, L16) merupakan pra-cipherteks ( pre-ciphertext ) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP-1, terhadap blok pra-cipherteks.
B. Pembangkitan Kunci Internal
Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K 1, K 2, …, K 16. Kunci-kunci internal ini dapat dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi.
Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter.
Misalkan kunci eksternal yang tersusun dari 64 bit adalah K . Kunci eksternal ini
menjadi masukan untuk permutasi dengan
menggunakan matriks permutasi kompresi PC-1 sebagai berikut:
4
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
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
Dalam permutasi ini, tiap bit kedelapan ( parity bit ) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56 bit.
Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing disimpan di dalam C 0 dan D0:
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
D0: berisi bit-bit dari K pada posisi
63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46,
38, 30, 22
14,
20, 12, 4
6, 61, 53, 45, 37, 29, 21, 13, 5, 28,
Selanjutnya, kedua bagian digeser ke kiri (left shift ) sepanjang satu atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift . Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 1 sbb: Tabel 1. Jumlah pergeseran bit pada setiap putaran
Putaran, i
Jumlah pergeseran bit
1
1
2
1
3
2
4
2
5
2
6
2
7
2 5
8
2
9
1
10
2
11
2
12
2
13
2
14
2
15
2
16
1
Misalkan (C i, Di) menyatakan penggabungan C i dan Di. (C i+1, Di+1) diperoleh dengan menggeser C i dan Di satu atau dua bit. Setelah pergeseran bit, (C i, Di) mengalami permutasi kompresi dengan menggunakan matriks PC-2 berikut:
14
17
11
24
1
5
3
28
15
6
21
10
23
19
12
4
26
8
16
7
27
20
13
2
41
52
31
37
47
55
30
40
51
45
33
48
44
49
39
56
34
53
46
42
50
36
29
32
Dengan permutasi ini, kunci internal K i diturunkan dari (C i, Di) yang dalam hal ini K i merupakan penggabungan bit-bit C i pada posisi: 14, 17, 11, 24, 1, 5, 3, 28, 15, 23, 19, 12,
4, 26, 8, 16,
6, 21, 10
7, 27, 20, 13, 2
dengan bit-bit Di pada posisi: 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48 44, 49, 39,
56, 34, 53, 46, 42, 50, 36, 29, 32
Jadi, setiap kunci internal K i mempunyai panjang 48 bit. Proses pembangkitan kunci-kunci internal ditunjukkan pada Gambar 4.
6
Bila jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah bit pada C i dan Di. Karena itu, setelah putaran ke-16 akan didapatkan kembali C 16 = C 0 dan D16 = D0.
Kunci eksternal
Permutasi PC-1
C 0
D0
Left Shift
Left Shift
C 1
D1 Permutasi PC-2
Left Shift
Left Shift
C j
D j
K 1
Permutasi PC-2
Left Shift
Left Shift
C 16
D16
K j
Permutasi PC-2
Gambar 4. Proses pembangkitan kunci-kunci internal DES
7
K 16
E nciphering
Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (lihat Gambar 1). Setiap blok plainteks mengalami 16 kali putaran enciphering (lihat Gambar 2). Setiap putaran enciphering merupakan
jaringan Feistel yang secara matematis dinyatakan sebagai
Li = Ri – 1 Ri = Li – 1 f ( Ri – 1, K i)
Diagram komputasi fungsi f diperlihatkan pada Gambar 5.
Ri-1
32 bit
Ekspans i menjadi 48 bit E ( Ri-1)
48 bit
K i
48 bit
48 bit E ( R i 1 ) K i A
S 1
...
S 8
B
32 bit P ( B)
32 bit
Gambar 5. Rincian komputasi fungsi f
8
Matriks substitusi
E adalah fungsi ekspansi yang memperluas blok Ri – 1 yang panjangnya 32-
bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sbb:
32
1
2
3
4
5
4
5
6
7
8
9
8
9
10
11
12
13
12
13
14
15
16
17
16
17
18
19
20
21
20
21
22
23
24
25
24
25
26
27
28
29
28
29
30
31
32
1
Selanjutnya, hasil ekpansi, yaitu E ( Ri – 1), yang panjangnya 48 bit di-XOR-
kan dengan K i yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit: E ( Ri – 1) K i = A
Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan
menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah kotak-S (S-box), S 1 sampai S 8. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6-bit pertama menggunakan S1, kelompok 6-bit kedua menggunakan S2, dan seterusnya. (cara pensubstitusian dengan kotak-S sudah dijelaskan pada materi “Prinsip-prinsip Perancangan Cipher Blok”)
Kedelapan kotak-S tersebut adalah: S 1:
14
4
13
1
2
15
11
8
3
10
6
12
5
9
0
7
0
15
7
4
14
2
13
1
10
6
12
11
9
5
3
8
4
1
14
8
13
6
2
11
15
12
9
7
3
10
5
0
15
12
8
2
4
9
1
7
5
11
3
14
10
0
6
13
9
S 2:
15
1
8
14
6
11
3
4
9
7
2
13
12
0
5
10
3
13
4
7
15
2
8
14
12
0
1
10
6
9
11
5
0
14
7
11
10
4
13
1
5
8
12
6
9
3
2
15
13
8
10
1
3
15
4
2
11
6
7
12
0
5
14
9
10
0
9
14
6
3
15
5
1
13
12
7
11
4
2
8
13
7
0
9
3
4
6
10
2
8
5
14
12
11
15
1
13
6
4
9
8
15
3
0
11
1
2
12
5
10
14
7
1
10
13
0
6
9
8
7
4
15
14
3
11
5
2
12
7
13
14
3
0
6
9
10
1
2
8
5
11
12
4
15
13
8
11
5
6
15
0
3
4
7
2
12
1
10
14
9
10
6
9
0
12
11
7
13
15
1
3
14
5
2
8
4
3
15
0
6
10
1
13
8
9
4
5
11
12
7
2
14
2
12
4
1
7
10
11
6
8
5
3
15
13
0
14
9
14
11
2
12
4
7
13
1
5
0
15
10
3
9
8
16
4
2
1
11
10
13
7
8
15
9
12
5
6
3
0
14
11
8
12
7
1
14
2
13
6
15
0
9
10
4
5
3
12
1
10
15
9
2
6
8
0
13
3
4
14
7
5
11
10
15
4
2
7
12
9
5
6
1
13
14
0
11
3
8
9
14
15
5
2
8
12
3
7
0
4
10
1
13
11
6
4
3
2
12
9
5
15
10
11
14
1
7
6
0
8
13
S 3:
S 4:
S 5:
S 6:
10
S 7:
4
11
2
14
15
0
8
13
3
12
9
7
5
10
6
1
13
0
11
7
4
9
1
10
14
3
5
12
2
15
8
6
1
4
11
13
12
3
7
14
10
15
6
8
0
5
9
2
6
11
13
8
1
4
10
7
9
5
0
15
14
2
3
12
13
2
8
4
6
15
11
1
10
9
3
14
5
0
12
7
1
15
13
8
10
3
7
4
12
5
6
11
0
14
9
2
7
11
4
1
9
12
14
2
0
6
10
13
15
3
5
8
2
1
14
7
4
10
8
13
15
12
9
0
3
5
6
11
S 8:
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
7
20
21
29
12
28
17
1
15
23
26
5
8
31
10
2
8
24
14
32
27
3
9
19
13
30
6
22
11
4
25
Bit-bit P ( B) merupakan keluaran dari fungsi f .
Akhirnya, bit-bit P ( B) di-XOR-kan dengan Li – 1 untuk mendapatkan Ri (lihat Gambar 6): Ri = Li – 1 P ( B)
Jadi, keluaran dari putaran ke-i adalah ( Li, Ri) = ( Ri – 1 , Li – 1 P ( B))
11
Li-1 32 bit
f
Ri 32 bit
Gambar 6. Skema perolehan Ri Permutasi Terakhir (I nverse I nitial Permutation)
Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan
blok kiri dan blok kanan. Proses permutasi menggunakan matriks permutasi awal balikan (inverse
initial permutation atau IP-1 ) sbb:
40
8
48
16
56
24
64
32
39
7
47
15
55
23
63
31
38
6
46
14
54
22
62
30
37
5
45
13
53
21
61
29
36
4
44
12
52
20
60
28
35
3
43
11
51
19
59
27
34
2
42
10
50
18
58
26
33
1
41
9
49
17
57
25
Implementasi Hardware dan Software 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).
12
C. Keamanan DES
Isu-isu yang menjadi perdebatan kontroversial menyangkut keamanan DES: 1. Panjang kunci 2. Jumlah putaran 3. Kotak-S
Panjang kunci
Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang 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. Alasan pengurangan tidak diumumkan.
Tetapi,
dengan
panjang
kunci
56
bit
akan
terdapat
256 atau
72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor paralel mencoba
setengah dari jumlah kemungkinan kunci itu, maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi
seluruhnya diperlukan 1142 tahun
untuk menemukan kunci yang benar.
Tahun 1998, Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan diharapkan dapat
menemukan kunci selama 5 hari. Tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. Jumlah putaran
13
Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acak dari setiap bit plainteks dan setiap bit cipherteks. Jadi, mengapa harus 16 kali putaran?
Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat dipecahkan dengan known-plaintext attack lebih mangkus daripada dengan brute force attack .
Kotak-S
Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.
Kunci Lemah dan Kunci Setengah Lemah
DES mempunyai beberapa kunci lemah (weak key). Kunci lemah menyebabkan kunci-kunci internal pada setiap putaran sama (K 1 = K 2 = … = K 16). Akibatnya, enkripsi dua kali berturut-turut terhadap plainteks menghasilkan kembali plainteks semula.
Kunci lemah terjadi bila bit-bit di dalam C i dan Di semuanya 0 atau 1, atau setengah dari kunci seluruh bitnya 1 dan setengah lagi seluruhnya 0.
Kunci eksternal (dalam notasi HEX) yang menyebabkan terjadinya kunci lemah adalah (ingat bahwa setiap bit kedelapan adalah bit paritas).
Kunci lemah (dengan bit paritas)
Kunci sebenarnya
0101 0101 0101 0101
0000000 0000000
1F1F 1F1F 1F1F 1F1F
0000000 FFFFFFF
E0E0 E0E0 F1F1 F11F
FFFFFFF 0000000
FEFE FEFE FEFE FEFE
FFFFFFF FFFFFFF
Selain kunci lemah, DES juga mempunyai sejumlah pasangan kunci setengah-lemah
( semiweak key). Pasangan kunci setengah- lemah 14
mengenkripsikan plainteks menjadi cipherteks yang sama. Sehingga, satu kunci dalam pasangan itu dapat mendekripsi pesan yang dienkripsi oleh kunci yang lain di dalam pasangan itu.
Kunci setengah-lemah terjadi bila: 1. Register C dan D berisi bit- bit dengan pola 0101…0101 atau 1010…1010
2. Register yang lain (C atau D) berisi bit-bit dengan pola 0000…0000, 1111…1111, 0101…0101, atau 1010…1010
Ada 6 pasang kunci setengah lemah (dalam notasi HEX):
a. 01FE 01FE 01FE 01FE dan
FE01 FE01 FE01 FE01
b. 1FE0 1FE0 0EF1 0EF1 dan
E01F E01F F10E F10E
c. 01E0 01E0 01F1 01F1 dan
E001 E001 F101 F101
d. 1FFE 1FFE 0EFE 0EFE dan
FE1F FE1F FE0E FE0E
e. 011F 011F 010E 010E dan
1F01 1F01 0E01 0E01
f. E0FE E0FE F1FE F1FE dan
FEE0 FEE0 FEF1 FEF1
2.2 IDEA
IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka dengan lebar 64-bit. Dan menggunakan kunci yang sama , berukuran 128-bit, untuk proses enkripsi dan dekripsi. Pesan rahasia yang dihasilan oleh algoritma ini berupa blok pesan rahasia dengan lebar atu ukuran 64-bit Pesan dekripsi menggunakan blok penyandi yang sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari dari kunci enkripsi.
Algoritma ini menggunakan operasi
campuran dari tiga operasi aljabar yang berbeda, yaitu XOR, operasi penjumlahan modulo 216 dan operasi
perkalian modulo ( 216 + 1 ) . Semua operasi ini
digunakan dalam pengoperasian sub-blok 16-bit. Algoritma ini melakukan iterasi yang terdiri dari atas 8 putaran dan I transformasi keluaran pada putaran ke 9, Algoritma penyandian IDEA (International Data Encryption Algorithm) muncul 15
pertama kali pada tahun 1990 yang dikembangkan oleh ilmuwan Xueijia Lai dan James L Massey. Algoritma utama dari sistem kriptografi IDEA adalah sebagai berikut : 1. Proses enkripsi : ek(M) = C 2. Proses dekripsi : dk(C) = M Dimana : E = adalah fungsi enkripsi D = adalh fungsi dekripsi M = adalah pesan terbuka C = adalah pesan rahasia K = adalah kunci enkripsi atau dekripsi
1.
Proses Enkripsi IDEA
Pada proses enkripsi, algoritma IDEA ini ditunjukkan oleh gambar di atas, terdapat tiga operasi yang berbeda untuk pasangan sub-blok 16-bit yang digunakan, sebagai berikut :
XOR dua sub-blok 16-bit bir per bit, yang disimbolkan dengan tanda Penjumlahan integer modulo (216 + 1) dua sub-blok 16-bit , dimana edua sub-blok itu dianggap sebagai representasi biner dari integer biasa, yang disimbolkan Dengan tanda
Perkalian modulo (216 + 1) dua sub-blok 16-bit, dimana kedua sub-blok 16 bit itu dianggap sebagai representasi biner dari integer biasa kecuali sub-blok nol dianggap mewakili integer 216 , yang disimbolkan dengan tanda .
2.
Proses Deskripsi IDEA Proses dekripsi menggunakan algoritma yang sama dengan proses enkripsi
tetapi 52 buah sub-blok kunci yang digunakan masing-masing merupakan hasil turunan 52 buah sub-blok kunci enkripsi. Tabel sub-blok kunci dekripsi yang diturunkan dari sub-blok kunci enkripsi dapat dilihat pada tabel berikut :
16
Keterangan : • Z-1
merupakan invers perkalian modulo 216+1 dari Z, dimana Z Z-1 = 1 • -Z merupakan invers penjumlahan modulo 216 dri Z, dimana Z Z-1 = 0
2.3 LOKI
LOKI dirancang oleh kriptografer Australia yaitu Lawrie Brown, Josef Pieprzyk, dan Jennifer Seberry. LOKI didesain sebagai hasil dari analisis yang dilakukan secara detail terhadap blok cipher yang standar digunakan pada saat itu, yaitu DES (Data Encryption Standar). Dikarenakan ada versi terbaru dari LOKI ini, maka LOKI yang dibuat pertama kali lebih dikenal dengan nama LOKI89 sesuai dengan tahun pembuatannya, walaupun LOKI pertama kali diperkenalkan pada tahun 1990. 17
LOKI didesain untuk menggantikan DES sehingga strukturnya pun dibuat hampir sama dengan DES. LOKI menggunakan blok data sepanjang 64 bit dan kunci sepanjang 64 bit pula. Desain LOKI89 Secara garis besar, desain dari LOKI89 sangat mirip dengan desain DES, termasuk :
Permutasi P dan penggunaannya dalam membentuk cipherteks tergantung daripada plainteks
Permutasi PC2 dan perputaran kunci dalam membentuk cipherteks tergantung dari kunci.
Desain S-Boxes dari LOKI89
berdasarkan pada kriteria nonlinier yang dibuat oleh Josef Pieprzyk, dan Jennifer Seberry. LOKI89 merupakan sebuah kelas dari Feistel cipher, maksudnya adalah sebuah bentuk dari subtitusi dan permutasi (S-P) dan jaringan (Shannon). Properti inti dari jaringan S-P adalah sebagai berikut.
Properti avalanche
Properti completeness
Kedua buah properti di atas diimplementasikan dalam desain yang terdiri dari dua buah fase.
18
2.4 LUC
Metode LUC merupakan algoritma kriptografi kunci publik yang dikembangkan oleh Peter J. Smith dari New Zealand pada tahun 1993. Metode LUC ini dirancang oleh Peter J. Smith setelah ia berhasil meneliti dan melihat kelemahan dari metode RSA. Metode LUC ini menggunakan fungsi Lucas yang dapat menutupi kelemahan metode RSA yang menggunakan fungsi pangkat. Kemungkinan untuk menjebol RSA menjadi ada karena masalah pangkat tersebut. Fungsi Lucas ini dapat mencegah kemungkinan tersebut. Metode LUC sendiri hampir sama dengan metode RSA hanya saja fungsi pangkat pada metode RSA diganti dengan fungsi Lucas pada metode LUC. Metode LUC ini menggunakan dua buah bilangan prima besar, p dan q untuk menghasilkan pasangan kunci publik, e dan n, dimana n = p * q, serta kunci privat, d. Sedangkan nilai p dan q sendiri tidak digunakan dalam algoritma ini. Algoritma ini juga 19
menggunakan Extended Euclidean algorithm untuk menghasilkan nilai kunci dekripsi d dari kunci enkripsi e. Nilai kunci enkripsi e merupakan sebuah bilangan acak yang dibangkitkan sedemikian rupa sehingga harus relatif prima terhadap p – 1, q – 1, p + 1 dan q + 1. Sedangkan panjang plaintext harus lebih kecil daripada n. Algoritma LUC merupakan salah satu algoritma dalam kriptografi kunci umum, algoritma dibangun berdasarkan fungsi matematika yaitu barisan Lucas yang telah didefinisikan sebelumnya : fluc(P) = Vn(P,1) mod N Dalam algoritma LUC terdapat tiga bagian utama yaitu pembangkit kunci, proses enkripsi, dan proses dekripsi.
1. Pembangkitan Kunci Dalam algoritma LUC pada saat membangkitkan sepasang kunci membutuhkan dua buah bilangan prima p dan q. Kemudian dikalikan menghasilkan nilai modulus N ∈ Z. (1) N = p x q Dihitung nilai fungsi perluasan euler Φ(N) : (2) Φ(N) = (p-1)(p+1)(q-1)(q+1)
Sebuah bilangan bulat, e
∈
Z, 1 < e < Φ(N), yang disebut kunci enkripsi,
kemuadian dicari semikian sehingga e dan Φ(N) berelatif prima. Faktor Persekutuan Terbesar (FPB) dari e dan Φ(N) adalah 1. (3) FPB(e, Φ(N)) = 1
Nilai (e,N) kemudian dipublikasikan sebagai kunci publik algoritma LUC. Setelah kunci publik diperoleh, langkah selanjutnya menghitung kunci dekripsi (kunci privat) d diperoleh dengan terlebih dahulu menghitung nilai D (diskriminan) barisan Lucas : (4) D = m2 – 4, dimana m adalah plainteks yang akan dienkripsi. Kemudian dicari Kelipatan Persekutuan Terkecil (KPK) dari fungsi Lehmer Totient sehingga diperoleh :
20
Karena simbol Legendre mempunyai nilai 1 dan -1 maka nilai S(N) mempunyai empat kemungkinan yaitu : S(N) = KPK[(p-1),(q-1)] S(N) = KPK[(p-1),(q+1)] S(N) = KPK[(p+1),(q-1)] S(N) = KPK[(p+1),(q+1)]
Sehingga nilai kunci dekripsi d mempunyai empat kemungkinan tergantung dari nilai S(N), dan diperoleh dengan mencari invers perkalian modulo S(N) :
(6) ed ≡ 1 mod S(N) Nilai (d,N) merupakan kunci dekripsi (kunci privat) pasangan dari (e,N).
2. Algoritma E nkripsi LUC Plainteks m akan dienkripsi dengan kunci publik e yang diperoleh dari hasil pembangkit kunci. Fungsi enkripsi didefinisikan sebagai berikut : fenk(M) = Vn(M,1) mod N Fungsi enkripsi akan menghitung suku ke-n dari barisan Lucas dengan indeks n adalah kunci publik e dan M adalah plainteks. Sehingga untuk mengenkripsi plainteks m ∈ M dan kunci publik LUC (e,N) dinyatakan sebagai : c = Ve(m,1) mod N Proses enkripsi menghasilkan ciperteks c ∈ C.
3. Algoritma Dekripsi LUC Ciperteks c
C diperoleh dari algoritma enkripsi LUC, langkah
∈
selanjutnya yaitu proses dekripsi ciperteks c ∈ C menjadi plainteks asli m dengan kunci privat. Fungsi dekripsi didefinisikan sebagai : 21
∈
M
fdek(C) = Vn(C,1) mod N Untuk mendekripsi c ∈ C dan kunci privat LUC (d,N) untuk mendapatkan plainteks m ∈ M dinyatakan sebagai : m = Vd(c,1) mod N
Imlementasi Algoritma LUC
Implementasi Algoritma LUC dalam melakukan enkripsi, setiap karakter dari string berupa teks / plainteks yang dimasukkan dikonversi ke dalam bentuk bilangan dengan kode ASCII (American Standard Code for Information Interchange) dan inputan plainteks berupa file berecord, setiap kalimat merupakan satu record. Dan plainteks dipecah kedalam blok berisi 2 karakter kemudian dienkripsi tiap-tiap blok, ciperteks yang diperoleh merupakan hasil dari gabungan dari blok-blok plainteks yang telah terenkripsi. Kemudian ciperteksdidekripsi tiaptiap blok dan dikonversi kembali dengan kode ASCII untuk menghasilkan plainteks yang diinginkan. Sebagai contoh teks “Algorithm” akan dienkripsi dengan algoritma LUC,
plainteks dibagi dalam blok yang berisi dua karakter, jika blok terakhir hanya berisi 1 karakter maka di tambah dengan spasi/blank. Sehingga setelah dikonversi dengan kode ASCII menjadi 5 blok plainteks, M = 3477 7280 8374 8573 7801 Dari hasil Pembangkitan kunci diperoleh bilangan prima p = 47, bilangan prima q = 241 dan kunci publik (e,N) = (7,11327) dan kunci privat (d,N) = (103,11327), kemudian setiap blok plainteks M dienkripsi dengan fungsi enkripsi menghasilkan ciperteks : C = 4749 6482 3387 9470 942 Kemudian setiap blok ciperteks didekripsi dengan fungsi dekripsi menghasilkan : M = 3477 7280 8374 8573 7801 Plainteks M dikonversi kedalam bentuk teks dengan kode ASCII didapatkan teks asli kembali “Algorithm”
22
BAB III PENUTUP 3.1 KESIMPULAN
DES merupakan kependekan dari {Data Encryption Standard}, yaitu standar teknik encryption yang diresmikan oleh pemerintah Amerika Serikat (US) di tahun 1977. DES kemudian dijadikan standar ANSI di tahun 1981. Horst Feistel merupakan salah satu periset yang mula-mula mengembangkan DES ketika bekerja di IBM Watson Laboratory di Yorktown Heights, New York. DES merupakan block cipher yang beroperasi dengan blok berukuran 64 bit dan kunci 56-bit. Brute-force attack terhadap DES membutuhkan kombinasi 2 pangkat 56, atau sekitar 7 x 10 pangkat 16, atau 70 juta milyar. IDEA (International Data Encryption Algorithm) merupakan algoritma simetris yang beroperasi pada sebuah blok pesan terbuka dengan lebar 64-bit. Dan menggunakan kunci yang sama , berukuran 128-bit, untuk proses enkripsi dan dekripsi. Pesan rahasia yang dihasilan oleh algoritma ini berupa blok pesan rahasia dengan lebar atu ukuran 64-bit Pesan dekripsi menggunakan blok penyandi yang sama dengan blok proses enkripsi dimana kunci dekripsinya diturunkan dari dari kunci enkripsi LOKI didesain sebagai hasil dari analisis yang dilakukan secara detail terhadap blok cipher yang standar digunakan pada saat itu, yaitu DES (Data Encryption Standar). Dikarenakan ada versi terbaru dari LOKI ini, maka LOKI yang dibuat pertama kali lebih dikenal dengan nama LOKI89 sesuai dengan tahun pembuatannya, walaupun LOKI pertama kali diperkenalkan pada tahun 1990. Metode LUC merupakan algoritma kriptografi kunci publik yang dikembangkan oleh Peter J. Smith dari New Zealand pada tahun 1993. Metode LUC ini dirancang oleh Peter J. Smith setelah ia berhasil meneliti dan melihat kelemahan dari metode RSA. Metode LUC ini menggunakan fungsi Lucas yang dapat menutupi kelemahan metode RSA yang menggunakan fungsi pangkat. Kemungkinan untuk menjebol RSA menjadi ada karena masalah pangkat tersebut. Fungsi Lucas ini dapat mencegah kemungkinan tersebut.
23
KATA PENGANTAR
Puji serta syukur kami
panjatkan kehadirat Allah SWT
yang telah
memberikan kenikmatan kepada kita semua sehingga kami dapat membuat dan menyelesaikan makalah yang berjudul
“
Algoritma Kriptografi DES, IDEA,
LOKI dan LUC ini. ”
Selawat beriring salam tak lupa kami sanjungkan kepangkuan alam Nabi Muhammad SAW selaku Nabi dan Rasul terakhir yang membimbing manusia, mengajak manusia untuk menganut agama tauhid yakni Agama Islam sekaligus menyempurnakan akhlak manusia Ucapan terima kasih yang tak terhingga kami ucapkan kepada Dosen yang telah membimbing kami dan teman-teman semua yang telah banyak membantu dalam pembuatan makalah ini Kami sangat mengharapkan kritikan dan saran serta soal-soal.yang bersifat positif baik itu dari Dosen sendiri dan juga dari teman-teman semua, agar kedepannya menjadi lebih baik, Amin ya rabbal alamin.
Matangglumpangdua, juni 2010
`
24
DAFTAR ISI
KATA PENGANTAR ……………………………….………………….
i
DAFTAR ISI…………..…………………………………………………
ii
BAB I PENDAHULUAN
1.1 Latar Belakang ................................................................................
1
BAB II PEMBAHASAN
2.1 Pengertian DES.................................................................................
2
A. Tinjauan Umum .........................................................................
2
B. Pembangkitan Kunci Internal .....................................................
4
C. Keamanan DES ..........................................................................
13
2.2 Pengertian IDEA .............................................................................
15
2.3 Pengertian LOKI .............................................................................
17
2.4 Pengertian LUC ...............................................................................
5
BAB III PENUTUP
3.1 Kesimpulan ......................................................................................
25
23
26