BAB II
LANDASAN TEORI
2.1 Kriptografi
Kriptografi berasal dari bahasa Yunani. Menurut bahasa tersebut kata kriptografi dibagi menjadi dua, yaitu kripto dan graphia. Kripto berarti secret (rahasia) dan graphia berarti writing (tulisan). Menurut terminologinya kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ketika pesan dikirim dari suatu tempat ke tempat lain. Dalam perkembangannya, kriptografi juga digunakan untuk mengindentifikasi pengiriman pesan dengan tanda tangan digital dan keaslian pesan dengan sidik jari digital (fingerprint) [2].
Berikut adalah gambar sistem kriptografi konvensional:
Gambar 2.1 Sistem Kriptografi Konvensional [10]
Sistem kriptografi seperti yang ditunjukkan pada gambar di atas terdiri dari 5 bagian yaitu [10]: 1. Plaintext adalah pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi.
Universitas Sumatera Utara
7
2. Secret key juga merupakan masukan bagi algoritma enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. 3. Ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma yang baik akan manghasilkan ciphertext yang terlihat acak. 4. Algoritma enkripsi memiliki 2 masukan, teks asli dan kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap plaintext sehingga menghasilkan ciphertext. 5. Algoritma dekripsi memiliki 2 masukan yaitu ciphertext dan kunci rahasia. Algoritma dekripsi memulihkan kembali ciphertext menjadi plaintext bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.
Dalam sistem kriptografi klasik selalu mengasumsikan pihak pengirim dan pihak penerima memiliki kunci rahasia yang sama. Sistem kriptografi ini disebut sistem kriptografi simetris. Kunci rahasia harus dibangkitkan secara rahasia dan didistribusikan ke pengirim dan penerima melalui saluran yang diasumsikan aman. Kebutuhan saluran untuk mendapatkan kunci rahasia menjadi kelemahan utama sistem simetris. Sistem kriptografi kunci publik mengatasi asumsi ini, yaitu tidak dibutuhkan saluran aman untuk distribusi kunci [10].
Sistem kriptografi kunci asimentis memiliki kunci untuk enkripsi dan kunci untuk dekripsi yang berbeda. Kunci untuk enkripsi disebut juga sebagai kunci publik bersifat tidak rahasia sehingga dapat didistribusikan melalui saluran tidak aman. Sedangkan kunci dekripsi disebut kunci private bersifat rahasia dan harus dijaga kerahasiaannya oleh pemegang kunci [10].
2.2 Tujuan Kriptografi
Berikut ini adalah tujuan adanya kriptografi : 1. Kerahasiaan Data
Universitas Sumatera Utara
8
Dengan adanya kriptografi, kerahasiaan data dapat ditingkatkan. Data penting yang dimiliki hanya akan dapat dibuka atau dibaca oleh orang-ornag tertentu yang memilki akses untuk membukanya. 2. Data Integrity Data yang benar atau asli tanpa ada rekayasa dari pihak ketiga atau pihak yang tidak memiliki akses terhadap data tersebut. 3. Autentikasi Autentikasi dilakukan untuk membuktikan data yang dikirim adalah data asli atau data yang benar. Autentikasi mencegah adanya data palsu. 4. Non-repudiation Non-repudiation atau nir-penyangkalan adalah salah satu tujuan kriptografi. Dengan ini si pengirim tidak dapat menolak bahwa pesan tersebut benar berasal dari si pengirim.
2.3 Ancaman Keamanan
Berikut beberapa ancaman yang dapat mempengaruhi kemanan data : 1. Interruption Interruption merupakan ancaman yang dilakukan dengan merusak dan menghapus data sehingga data tidak dapat ditemukan lagi. 2. Interception Interception adalah ancaman yang dilakukan pihak ketiga dengan menyadap ataupun mengakses data. Data yang seharusnya rahasia dapat diakses oleh pihak yang tidak memiliki akses. 3. Modification Modification adalah ancaman yang lebih berbahaya, pihak yang tidak memiliki akses tidak hanya dapat mengakses data namun dapat memodifikasi atau mengubah data.
4. Fabrication
Universitas Sumatera Utara
9
Fabrication merupakan ancaman yang paling berbahaya, pihak yang tidak memiliki akses tidak hanya dapat membaca data, juga dapat mengubah dan memalsukan data, sehingga data seolah berasal dari pengirim sebenarnya.
2.4 Kriptografi Asimetris
Sistem kriptografi kunci publik atau sering disebut sebagai kunci asimetrik pertama kali diusulkan oleh Deffie dan Hellman pada tahun 1976. Ide kriptografi kunci publik sebenarnya mirip dengan cara kerja kunci gembok. Dimisalkan terdapat sebuah peti yang berisi pesan rahasia, lalu peti dikunci dengan gembok, kemudian dikirim kepada penerima. Penerima hanya dapat membuka gembok apabila kunci yang dipegang olehnya merupakan pasangan gembok[10].
Algoritma pertukaran kunci Diffie-Hellman (protokol Diffie-Hellman) berguna untuk mempertukarkan kunci rahasia untuk komunikasi menggunakan kriptografi simetris. Langkah-langkahnya adalah sebagai berikut [9]: 1. Misalkan Alice dan Bob adalah pihak-pihak yang berkomunikasi. Mula-mula Alice dan Bob menyepakati 2 buah bilangan yang besar (sebaiknya prima) P dan Q, sedemikian sehingga P < Q. Nilai P dan Q tidak perlu rahasia, bahkan Alice dan Bob dapat membicarakannya melalui saluran yang tidak aman sekalipun. 2. Alice membangkitkan bilangan bulat acak x yang besar dan mengirim hasil perhitungan berikut kepada Bob: X = Px mod Q . 3. Bob membangkitkan bilangan bulat acak y yang besar dan mengirim hasil perhitungan berikut kepada Alice : Y = Py mod Q . 4. Alice menghitung K = Yx mod Q . 5. Bob menghitung K’ = Xy mod Q . Jika berhitungan dilakukan dengan benar maka K = K’. Dengan demikian Alice dan Bob telah memiliki sebuah kunci yang sama tanpa diketahui pihak lain. Gambar 2.2 mendeskripsikan diagram protokol pertukaran kunci Diffie-Hellman:
Universitas Sumatera Utara
10
ALICE
BOB P,Q Bangkitkan Bilangan y
Bangkitkan Bilangan x X
Hitung X = Px mod Q
Hitung Key = Yx mod Q
Y
Hitung X = Py mod Q
Hitung Key = Xy mod Q
Gambar 2.2 Pertukaran Kunci Deffie –Hellman[9]
Kriptografi asimetris memiliki kunci enkripsi dan kunci dekripsi yang berbeda. Salah satu algoritma yang dikembangkan sesuai kriptografi asimetris adalah algoritma RSA. Algoritma ini memiliki kelebihan melakukan pemfaktoran bilangan yang besar.
2.5 Algoritma RSA
Pada tahun 1977, Rivest, Shamir dan Adleman merumuskan algoritma praktis yang mengimplementasikan sistem kriptografi kunci publik disebut dengan sistem kriptografi RSA[8]. Algoritma ini adalah sistem yang sangat penting dan banyak keamanan yang tergantung pada algoritma ini.[4] Algoritma enkripsi dan dekripsi memiliki komponen n = p x q, p, q adalah bilangan prima dan Φ(n) = (p-1)(q-1).
Pada paper yang dipublikasikan oleh Rivest, Shamir dan Adleman untuk mengenalkan algoritma RSA yang mereka bangun, mereka menjelaskan kriptosistem kunci publik, termasuk generator kunci dan public-key cipher dan kekuatan keamanan yang diasumsikan dengan sulitnya memfaktorkan bilangan integer menjadi bilangan prima [7].
Universitas Sumatera Utara
11
Gambar 2.3 Sistem Kriptografi dengan Kunci Publik RSA[10]
Berikut adalah algoritma pembangkit kunci RSA : 1. Bangkitkan bilangan prima p dan q. 2. Hitung perkalian bilangan prima, n = p x q. 3. Hitung banyaknya bilangan bilangan asli dibawah n, atau disimbolkan dengan Φ(n) dengan rumus Φ(n) = (p-1)x(q-1) 4. Hitung nilai kunci publik e berupa bilangan dengan rentang 1< e < Φ(n), dengan gcd(e, Φ(n)) = 1 5. Hitung nilai kunci private d, dengan rumus d ≡ e-1 (mod Φ(n)) 6. Kpublik = (e, n) , Kprivat = d Kita memilih kunci enkripsi secara random seperti e, dan (p-1) (q-1) yang relatif prima, dikatakan relatif prima karena gcd(e, ((p-1)(q-1)) = 1, yang maknanya bagi bilangan e, (p-1)(q-1) adalah prima, begitu pula sebaliknya meskipun keduanya bukan bilangan prima. Dan d di dapat dengan ed = 1 mod (p-1) (q-1), dapat di tulis dengan d = e-1 mod (p-1) (q-1) seperti yang dilakukan pada langkah 5. [9]
Untuk mengenkripsi pesan maka dilakukan perhitungan berikut: C = Pe mod n ……………………………………………………………… (1)
Untuk mendekripsi pesan yang telah dienkripsi maka dilakukan perhitungan berikut:
Universitas Sumatera Utara
12
P = Cd mod n ……………………………………………………………… (2)
Dimana: P = pesan atau data asli C = pesan atau data yang telah dienkripsi e = kunci publik yang digunakan untuk mengenkripsi pesan n = kunci publik yang digunakan mengenkripsi pesan dan untuk mengembalikan pesan kedalam bentuk asal d = kunci private yang dimiliki penerima
Contoh penggunaan algoritma RSA: Diambil bilangan prima p = 5 dan q = 11 Berdasarkan algoritma, n = p x q Maka n = 5 x 11 = 55 Φ(n) = (p-1)x(q-1)
= (5-1)x(11-1) = 40 Untuk menentukan e harus memenuhi syarat gcd(e, Φ(n)) = 1, maka didapat e = 7 dimana gcd(7, 40) = 1.Sedangkan d adalah e-1 mod Φ(n) maka didapat d = 23. Maka kunci publik yang didapat adalah 7 dan 55, sedangkan kunci private adalah 23. Pengirim ingin mengirimkan kata ILKOM yang nilainya diambil dari tabel encoding di bawah ini. Dengan nilai I = 8, L = 11, K = 10, O = 14 dan M = 12. Plaintext yang dikirim adalah 811101412
Universitas Sumatera Utara
13
Tabel 2.1 Tabel Encoding Base 64 Value
Char
Value
Char
Value
Char
Value
Char
0
A
16
Q
32
G
48
W
1
B
17
R
33
H
49
X
2
C
18
S
34
I
50
Y
3
D
19
T
35
J
51
Z
4
E
20
U
36
K
52
0
5
F
21
V
37
L
53
1
6
G
22
W
38
M
54
2
7
H
23
X
39
N
55
3
8
I
24
Y
40
O
56
4
9
J
25
Z
41
P
57
5
10
K
26
A
42
Q
58
6
11
L
27
B
43
R
59
7
12
M
28
C
44
S
60
8
13
N
29
D
45
T
61
9
14
O
30
E
46
U
62
15
P
31
F
47
V
63
/
Maka enkripsi yang dilakukan dengan nilai e = 7, n = 55 dan d = 23 sebagai berikut:
Tabel 2.2 Tabel Enkripsi Pesan P
C = Pe mod n
8
2
11
11
10
10
14
9
12
23
Si penerima akan menerima teks 21110923, maka dengan kunci private yang dimiliki maka akan dilakukan dekripsi terhadap ciphertext yang didapat. Maka dekripsi yang dilakukan adalah:
Universitas Sumatera Utara
14
Tabel 2.3 Tabel Dekripsi Pesan C
P = Cd mod n
2
8
11
11
10
10
9
14
23
12
Maka, si penerima akan menemukan teks asli dari pengirim dengan kunci private yang ia miliki. Maka di dapat hasil 811101412 yang hasilnya sama dengan plaintext yang dimilki pengirim.
2.6 Fermat’s Little Theorem Teorema : Untuk bilangan prima p dan bilangan bulat a, ap ≡ a(mod p) dan jika a tidak dapat dibagi oleh p, maka ap-1 ≡ 1 (mod p) [8]. Teorema ini dapat digunakan untuk mempermudah kalkulasi perpangkatan modulo bilangan prima. Sebagai contoh, kita coba kalkulasi 274 (mod 13). Karena 13 adalah bilangan prima dan 2 tidak dapat dibagi 13, maka teorema ini dapat digunakan untuk mengkalkulasi 212 ≡ 213-1 (mod 13) ≡ 1 (mod 13). Jadi 274 = (212)6 × 22 ≡ 16 × 22 ≡ 4 (mod 13). Meskipun dapat digunakan untuk mempermudah kalkulasi, dalam kriptogra fi,
peran
terpenting dari Fermat’s little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris [6].
2.7 Metode Universal Exponent Factoring
Pada metode Universal Exponent Factoring ini, e adalah salah satu variabel yang diketahui nilainya dengan syarat xe ≡ 1(mod n) untuk x ∈ N dan gcd(x, n) = 1
Universitas Sumatera Utara
15
kemudian dihitung e = 2b m dimana b > 0 dan m bernilai bebas. Maka akan dilakukan langkah berikut: 1. Pilih nilai random a dengan 1 < a < n-1, jika gcd(a,n) > 1 dan a adalah faktor dari n kita dapat mengakhiri algoritma. Jika tidak, dapat dilanjutkan pada langkah berikutnya. 2. Hitung x0 = am(mod n). Jika x0 ≡ 1 (mod n), lakukan langkah 1. Jika tidak hitung xj≡𝑥𝑥𝑗𝑗2−1 (mod n) untuk semua j = 1, 2, …, b . Jika xj ≡ -1 (mod n) lakukan
langkah 1. Jika xj ≡ 1 (mod n) dan Jika xj-1 ≠ ±1 (mod n) dan gcd(xj-1 - 1, n) adalah faktor dari n maka algoritma dapat diakhiri [8].
Contoh penggunaan Universal Exponent Factoring: Kita ambil nilai n = 55 dari contoh algoritma RSA diatas dan kita ambil nilai e = 40, dimana e = 23.5. maka dilakukan langkah-langkah sebagai berikut: 1. x0 = 25(mod 55) = 32 mod 55 = 32 2. x1 = 322(mod 55) = 34 3. x2 = 342 (mod 55) = 1 Maka dari hasil x2 = 1, maka gcd(xj-1 - 1, n) = gcd(33, 55) = 11 dan 11 adalah faktor dari 55, maka di simpulkan n = 55, p = 11, dan q = 5. Setelah didapat nilai p dan q, maka untuk mendapatkan kunci private, maka dilakukan perhitungan sesuai algoritma RSA. p = 5 q = 11 Φ(n) = (p-1)x(q-1)
= (5-1)x(11-1) = 40 e didapat dengan syarat gcd(e, Φ(n)) = 1, maka e = 7 dengan gcd(7, 40) = 1. Dari nilai e yang telah didapat maka kita dapat menghitung nilai d dengan perhitungan d = e-1 mod Φ(n), maka dengan e = 7, Φ(n) = 40 didapat d = 23.
2.8 Penelitian Terdahulu
Beberapa penelitian yang telah dilakukan sebelumnya yang berkaitan dengan penelitian ini adalah:
Universitas Sumatera Utara
16
1.
Penelitian oleh Imani Prasasti dengan judul “Analisis keamanan kriptosistem kunci publik RSA” disimpulkan bahwa inti dari keamanan RSA terletak pada faktorisasi bilangan yang besar. Dengan menghindari kemungkinan dari algoritma faktorisasi maka didapat algoritma yang cukup tahan dan aman dalam jalur komunikasi umum. Pada penelitian ini dilakukan analisis terhadap RSA dan algoritma untuk memfaktorkan bilangan komposit untuk keamanan data juga menganalisis serangan terhadap kriptosistem. Berdasarkan hasil analisis dengan Fermat’s Little Theorem bilangan prima yang dibangkitkan harus besar, sedangkan berdasarkan kurva elliptic kunci p dan q harus memilki panjang digit yang hampir sama. Untuk menghindari serangan terhadap kriptosistem kita juga harus membangkitkan kunci e dengan nilai yang besar [5].
2.
Penelitian Andy Tandiyono dengan judul “Simulasi Pemanfaatan Metode Interlock Protocol Untuk Mengatasi Man-In-The-Middle-Attack”. Pada penelitian ini dibahas mengenai bagaimana memanfaatkan metode interlock protocol untuk mengatasi terjadinya man-in-the-middle-attack, dimana bilangan prima pada algoritma kriptografi RSA digunakan untuk mengamankan pesan, dan bagaimana keamanan dari algoritma RSA untuk melindungi pesan yang dipertukarkan. Pada sistem ini disimulasikan terdapat 3 pihak yang terkait dengan sistem. Dimana ada pengirim, penerima dan penyadap dengan masing-masing pihak harus menginputkan kunci yang dimiliki kedalam sistem. Pada saat pengiriman pesan, penyadap mengambil pesan yang dikirim dan mengubah isinya dengan kunci yang telah ia temukan, kemudian mengirim pesan palsu kepada penerima. Untuk simulasi ini diberikan dua solusi yaitu membagi pesan menjadi dua bagian pesan, dimana jika salah satu bagian pesan dibaca tidak mengandung arti, yang kedua yaitu mengenkripsi pesan menggunaka fungsi hash SH1, kemudian hasil enkripsi dengan fungsi hash dikirim sebagai bagian pertama dan pesan dikirm sebagai bagian kedua, jika memilki nilai yang sama maka pesan benar berasal dari pengirim yang dimaksud [12].
3.
Penelitian sebelumnya telah dilakukan oleh Sisca Anggraini dengan judul “Sistem Keamanan Data dengan RSA dan Modified LSB” penelitian ini untuk meningkatkan keamanan data. Untuk meningkatkan keamanan data digunakan
Universitas Sumatera Utara
17
kriptografi RSA dengan metode tambahan lain yaitu modified LSB(Least Significant Bit). RSA digunakan untuk mengenkripsi pesan asli (plaintext) menjadi pesan terenkrip (ciphertext), selanjutnya cipherteks disembunyikan dalam media citra digital agar keberadaan pesan tidak dicurigai oleh pihak lain. Penggabungan dua algoritma tersebut dapat menjaga kerahasiaan pesan, dimana pesan hanya dapat diakses oleh orang yang berwenang dan memiliki kunci [1].
Universitas Sumatera Utara