BAB 2 LANDASAN TEORI
2.1 Kriptografi Kriptografi adalah ilmu yang mempelajari bagaimana mengirim pesan secara rahasia
sehingga hanya orang yang dituju saja yang dapat membaca pesan rahasia tersebut. Pesan asli disebut sebagai plaintext, dan pesan yang telah dirahasiakan disebut sebagai
ciphertext. Proses dalam mengubah plaintext menjadi ciphertext disebut sebagai encryption enkripsi. Proses sebaliknya, untuk mengembalikan ciphertext menjadi
plaintext di sisi penerima pesan disebut sebagai decryption dekripsi.
2.2 Sistem Kriptografi
Sistem kriptografi terdiri dari 5 bagian, yaitu Sadikin, 2012: a.
Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca. Plaintext adalah masukan bagi algoritma enkripsi.
b. Secret Key: secret key atau kunci rahasia juga merupakan masukan bagi algoritma
enkripsi merupakan nilai yang bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi.
c. Ciphertext: ciphertext adalah keluaran algoritma enkripsi. Ciphertext dapat
dianggap sebagai pesan dalam bentuk tersembunyi. Algoritma enkripsi yang baik akan menghasilkan ciphertext yang terlihat acak.
d. Algoritma Enkripsi: algoritma enkripsi memiliki 2 masukan teks asli dan kunci
rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan ciphertext.
e. Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu ciphertext dan
kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia
yang dipakai algoritma enkripsi.
2.3 Jenis Sistem Kriptografi Berdasarkan Kunci yang Digunakan Sistem kriptografi dapat digolongkan ke dalam dua jenis yaitu sistem kriptografi kunci
simetris dan sistem kriptografi kunci asimetris.
Universitas Sumatera Utara
2.3.1 Sistem Kriptografi Kunci Simetris Sistem kriptografi kunci simetris menggunakan kunci yang sama untuk mengenkripsi
plaintext dan mendekripsi ciphertext, Diagram sistem kriptografi kunci simetris dapat dilihat pada Gambar 2.1.
Gambar 2.1 Diagram Sistem Kriptografi Kunci Simetris
Arti simbol: : Data
: Proses : Aliran
Pada Gambar 2.1 dapat dilihat bahwa kunci yang digunakan untuk mengenkripsi dan mendekripsi sama yaitu K. Sistem kriptografi ini aman selama
kunci rahasia dipastikan hanya diketahui oleh kedua pihak yang saling berkirim pesan. Namun cara untuk mengirim kunci menjadi masalah lain yang sulit untuk diamankan
terutama dalam jalur publik seperti internet.
2.3.2 Sistem Kriptografi Kunci Asimetris Berbeda dengan sistem kriptografi kunci simetris, sistem kriptografi asimetris atau
disebut juga sistem kriptografi kunci publik menggunakan kunci yang berbeda untuk mengenkripsi dan mendekripsi pesan. Kunci untuk mengenkripsi akan didistribusikan
sehingga siapapun yang ingin mengirim pesan secara rahasia dapat menggunakan kunci tersebut, dan kunci untuk mendekripsi dirahasiakan sehingga hanya pemilik
Universitas Sumatera Utara
kunci yang dapat mendekripsi ciphertext yang telah dienkripsi dengan kunci publik. Diagram sistem kriptografi asimetris dapat dilihat pada Gambar 2.2.
Gambar 2.2 Diagram Sistem Kriptografi Kunci Asimetris
Pada Gambar 2.2., kunci yang digunakan untuk mengenkripsi dan mendekripsi pesan berbeda, dimana Arifin menggunakan kunci X untuk mengenkripsi pesan
menjadi ciphertext, lalu Eric sebagai penerima ciphertext akan mendekripsi pesan menggunakan kunci Y. Ciphertext tidak dapat dikembalikan menjadi plaintext jika Y
tidak diketahui. Disini X disebut sebagai public key dan Y disebut sebagai private key. Public key harus didistribusikan kepada siapapun yang ingin mengirim pesan secara
rahasia kepada pemilik kunci sedangkan private key harus tetap disimpan secara rahasia.
Sistem kriptografi ini memiliki keunggulan dimana pengiriman kunci bukan lagi menjadi masalah karena kunci publik tidak akan menjadi masalah jika diketahui
oleh siapapun.
2.4 Matematika untuk Sistem Kriptografi Asimetris Sistem kriptografi asimetris bekerja dengan dasar berbagai perhitungan matematika
terutama persoalan teori bilangan. Bagian ini akan membahas beberapa topik matematika yang akan digunakan dalam sistem kriptografi asimteris.
Universitas Sumatera Utara
2.4.1 Greatest Common Divisor GCD dan Algoritma Euclid Jika a dan b adalah bilangan bulat, maka Greatest Common Divisor GCD dari a dan
b adalah sebuah bilangan positif terbesar yang dapat membagi habis kedua bilangan tersebut.
Sebagai contoh, GCD dari 12 dan 18 adalah 6 karena 6 dapat membagi 12 dan 18 dan tidak ada bilangan yang lebih besar dari 6 yang dapat membagi 12 dan 18.
Dapat ditulis:
GCD ,
= Salah satu cara untuk mendapatkan GCD dari dua buah bilangan adalah
dengan menggunakan Algoritma Euclid. Teorema Euclid menyatakan: jika a = qb + r maka GCDa,b = GCDb,r
2.4.2. Relatif Prima Dua buah bilangan a dan b dikatakan relatif prima jika GCDa, b = 1. Sebagai
contoh 4 dan 7 adalah relatif prima karena GCD4, 7 = 1.
2.4.3 Aritmatika Modular dan Kongruensi Ketika masih kecil kita mempelajari „aritmatika jam‟ dimana angka berikutnya setelah
12 adalah 1 sehingga kita menuliskan Hoffstein, 2008:
+ = dan − = ini masuk akal karena 7 jam setelah jam 8 adalah jam 3. Yang kita lakukan sebenarnya
adalah menghitung 8 + 7 = 15 kemudian menguranginya 12 sehingga menghasilkan 3. Dan dengan cara yang sama 5 jam sebelum jam 2 adalah jam 9 dengan menghitung 2
– 5 = -3 kemudian menambahkannya dengan 12.
Konsep ini disebut sebagai dengan teori kongruensi. Kita katakan a dan b kongruen m jika selisih a – b dapat dibagi dengan m. Ditulis sebagai berikut:
mod untuk mengetahui a dan b kongruen, m disebut sebagai modulus.
Dari contoh perhitungan jam diatas, maka dapat ditulis:
Universitas Sumatera Utara
+ mod
dan − mod
2.4.4 Inversi Modulo Jika dua buah bilangan a dan m relatif prima, maka dapat dipastikan terdapat sebuah
bilangan b yang memenuhi:
. mod
pada kongruensi diatas, b disebut sebagai invers modulo dari a modulo m. 2.4.5 Grup Perkalian
Sebuah grup perkalian G, × dengan G merupakan himpunan simbol dan × adalah sebuah operator perkalian yang memenuhi kondisi Sadikin, 2012:
1. ∀ , ∈ ∶ × ∈ Closure
2. ∀ , , ∈ ∶ ×
× = × × Asosiatif 3.
∃ yang unik ∈ ∶ ∀ ∈ ∶ × = × = Elemen e disebut sebagai elemen identitas.
4. ∀ ∈ : ∃
−
∈ : ×
−
=
−
× = Invers 2.4.6 Bilangan Prima
Bilangan prima adalah sebuah bilangan yang hanya dapat dibagi habis oleh 1 dan bilangan itu sendiri. Bilangan yang dapat dibagi habis oleh selain 1 dan bilangan itu
sendiri disebut sebagai bilangan komposit. Semua bilangan positif integer n dapat dituliskan sebagai hasil product dari bilangan prima seperti berikut:
=
� �
…
� �
�
= ∏
� �
=
2.4.7 Fermat’s Little Theorem Teori fermat merupakan fondasi dari banyak pengetesan bilangan prima Riesel,
2012. Jika p merupakan sebuah bilangan prima dan GCDa, p = 1, maka
�−
Universitas Sumatera Utara
dan sebaliknya jika n adalah sebuah bilangan komposit dan GCDa, p = 1, maka
�−
2.4.8 Fungsi ϕ Euler Fungsi ϕ Euler atau yang disebut juga fungsi totien euler, dilambangkan dengan ϕn
adalah banyaknya bilangan m yang relatif prima terhadap n dimana m n Mollin, 2007. Sebagai contoh jika p adalah bilangan prima, maka untuk semua ∈ � dengan
pasti relatif prima terhadap p, maka ϕp = p – 1. Sebagai contoh beberapa hasil fungsi ϕn adalah Sadikin, 2012:
1. ϕ1 = 0
2. ϕp = p – 1 jika p adalah bilangan prima. Sebab semua elemen merupakan
prima relatif dengan p. 3.
ϕm × n = ϕm × ϕn jika m merupakan prima relatif dengan n. 4.
ϕ = −
−
dengan p adalah bilangan prima. 2.4.9 Akar Primitif
Jika p adalah bilangan prima, maka terdapat sebuah elemen � ∈
� ∗
yang jika dipangkatkan dengan setiap elemen di dalam
� ∗
Hoffstein, 2008, misalkan:
� ∗
= , �, � , � , … , �
�−
.
elemen dengan properti ini disebut dengan akar primitif dari
�
atau generator dari
� ∗
. Elemen tersebut merupakan elemen dari
� ∗
memiliki order p – 1.
2.4.10. Algoritma Miller-Rabin Algoritma Miller-Rabin merupakan algoritma probabilistik yang menguji keprimaan
sebuah bilangan yang diberikan berdasarkan pada Fermat’s LittleTheorem. Algoritma Miller-Rabin menghitung deret berikut secara berulang :
⋯
−
. Pada perhitungan dilakukan pengujian Fermat dan
pengujian kepemilikan akar kuadrat untuk i = 0, 1, 2, …, k . Jika pengujian akar kuadrat ialah positif, n dideklarasikan sebagai bilangan komposit. Jika pengujian
Fermat ialah positif, maka n mungkin bilangan prima.
Universitas Sumatera Utara
2.4.11 Discrete Log Problem Jika g merupakan akar primitif dari
�
dan h merupakan sebuah elemen yang tidak nol pada
�
. Discrete Log Problem merupakan sebuah masalah dalam menemukan x yang memenuhi persamaan berikut Hoffstein, 2008:
�
�
ℎ mod Pada persamaan diatas, x disebut sebagai logaritma diskrit dari h untuk basis g dan
ditulis sebagai log
�
ℎ . 2.4.12 Chinese Remainder Theorem
Chinese Remainder Theorem CRT diformulasikan sebagai penyelesaian permasalahan kongruen dengan modulus yang berbeda. Secara formal CRT
menyelesaikan sistem persamaan kongruen berikut ini: mod
mod
. . . mod
dengan nilai , , … , dan
, , … ,
diketahui, dan x adalah bilangan yang perlu ditemukan.
Berikut adalah algoritma untuk menemukan x: a.
Hitung = ×
× … × b.
Hitung = , =
, … , = c.
Temukan invers modulo untuk setiap
−
,
−
, … ,
−
terhadap ,
, … , d.
Temukan x dengan menghitung =
× ×
−
+ ⋯ + × ×
−
2.5 Sistem Kriptografi ElGamal Sistem kriptografi ElGamal adalah sistem kriptografi dengan kunci asimetris yang
ditemukan oleh Taher ElGamal pada tahun 1984. Sistem kriptografi ini bersandar pada kesulitan persoalan logaritma diskrit. Diagram proses sistem kriptografi ElGamal
dapat dilihat pada Gambar 2.3.
Universitas Sumatera Utara
Gambar 2.3 Diagram Proses Sistem Kriptografi ElGamal
Sistem kriptografi ElGamal bekerja pada sebuah grup perkalian
� ∗
,× yang pada grup itu persoalan logaritmik diskrit sulit untuk dipecahkan. Grup perkalian G
dapat berupa grup perkalian siklik dengan α adalah akar primitif pada Zp dengan p merupakan bilangan prima. Sadikin, 2012
2.5.1 Algoritma ElGamal Algoritma kriptografi ElGamal adalah sebagai berikut:
a. Pembangkit kunci ElGamal
1. Pilih bilangan prima p yang cukup besar sebagai basis grup perkalian
� ∗
,× 2.
Pilih α sebagai akar primitif pada grup
� ∗
,× 3.
Pilih d yang memenuhi 1 ≤ d ≤ p – 2 4.
Hitung β = mod p 5.
Kunci publik : p, α, β 6.
Kunci privat : d Setelah kunci publik dan kunci privat didapatkan, kunci publik akan
didistribusikan kepada siapapun yang perlu untuk mengirimkan pesan secara rahasia dienkripsi, sedangkan kunci privat dijaga kerahasiaannya untuk
mendekripsi pesan yang telah dienkripsi dengan kunci publik.
b. Enkripsi Pesan
Orang yang menerima kunci publik dapat mengirimkan pesan secara rahasia kepada pemberi kunci, dengan langkah sebagai berikut:
1. Input : �
�
= p, α, β , � ∈
� ∗
{P adalah plaintext}
Universitas Sumatera Utara
2. Output : � , � ∈
� ∗
3. r ←
� ∗
{r dipilih secara acak} 4.
� =
�
mod p 5.
� = P ×
�
mod p c.
Dekripsi Pesan Setelah ciphertext diterima, maka pemegang kunci privat dapat mendekripsi pesan
dengan cara sebagai berikut:
1. Input : �
��
= d, � , � ∈
� ∗
2. Output : P ∈
� ∗
3. � = � × �
−
mod 2.5.2 Contoh Penerapan Algoritma Kriptografi ElGamal
Berikut ini adalah contoh penerapan dari algoritma kriptografi ElGamal, Misalkan Adit memiliki kunci ElGamal sebagai berikut:
Kunci publik : α = 345, β = 223, p = 379,
Kunci privat : d = 43 Kemudian Adit mendistribusikan kunci publik kepada siapa saja yang mau mengirim
pesan kepadanya. Arifin yang juga mendapatkan kunci publik key milik Adit akan mengenkripsi pesan menggunakan kunci publik yang diketahui sebagai berikut:
Plaintext : mundur
Kode ascii dari plaintext adalah:
Tabel 2.1 Kode ASCII dari Plaintext
Huruf Kode Ascii
m 109
u 117
n 110
d 100
u 117
r 114
Berikut tahap-tahap yang akan dilakukan oleh Arifin untuk mengenkripsi pesan: 1.
Memilih nilai r secara acak, didapati r = 143
Universitas Sumatera Utara
2. Menghitung nilai C1 =
�
mod , sehingga didapati C1 = 10
3. Untuk setiap huruf dalam plaintext, dilakukan pengubahan nilai � = P ×
�
mod , sehingga didapati:
Tabel 2.2 Ciphertext 2, Hasil Enkripsi dari Plaintext
‘mundur’ Huruf
P =
P ×
mod p
m 109
257 u
117 255
n 110
162 d
100 354
u 117
255 r
114 161
Setelah pesan terenkripsi, Arifin mengirim ciphertext 1 dan ciphertext 2 kepada Adit. Lalu Adit akan mendekripsi ciphertext tersebut kembali menjadi plaintext
menggunakan kunci privat sebagai berikut:
Tabel 2.3 Hasil Dekripsi dari Ciphertext Ciphertext
P= [
×
−
] Plaintext
255 109
m
162 117
u
354 110
n
255 100
d
161 117
u
255 114
r 2.6 Kriptanalisis
Kriptanalisis adalah ilmu yang mempelajari cara untuk mendekripsi ciphertext tanpa memiliki akses terhadap kunci rahasia dengan cara menemukan kelemahan pada
sistem kriptografi yang digunakan. Ada banyak teknik yang bisa dilakukan dalam kriptanalisis, tergantung dari apa saja akses yang bisa didapat terhadap sistem
kriptografi dan kunci yang digunakan.
Universitas Sumatera Utara
Di dalam penelitian ini, penulis mengetahui algoritma kriptografi apa yang digunakan dan kunci publik yang telah didistribusikan. Dari itu diketahui bahwa ada
algoritma yang dapat digunakan untuk memecahkan kunci privat. Sehingga teknik yang akan digunakan adalah membuat sebuah ciphertext dari kunci publik yang
diketahui, lalu mencoba memecahkan kunci privatnya berdasarkan kunci publik dan ciphertext yang telah dibuat.
2.7 Algoritma Silver-Pohlig-Hellman Algoritma Silver-Pohlig-Hellman SPH adalah sebuah algoritma untuk menghitung
logaritma diskrit dari sebuah grup perkalian. Cara kerja algoritma Silver-Pohlig- Hellman dijabarkan sebagai berikut:
a. Diketahui α adalah generator
� ∗
, β ∈
� ∗
, dan kita memiliki faktorisasi berikut:
− = ∏
� =
∈ N
dimana adalah distinct primes. Cara untuk menghitung mod adalah
dengan menghitung e modulo untuk j = 1, 2, … , r, lalu gunakan Chinese
Remainder Theorem. b.
Untuk menghitung setiap nilai e modulo kita harus menentukan e dengan basis
:
= ∑
− =
untuk menghitung , kita lakukan hal berikut.
b.1 Set =
b.2 Temukan
dengan cara sebagai berikut: Hitunglah
�− �
untuk setiap k = 0, 1, …, − sampai kita
dapati:
�− �
�− �
Universitas Sumatera Utara
Pada kondisi diatas, k = b.3
Hitunglah untuk i = 1, 2, …, − seperti berikut.
Tentukan : =
− ∑ �
− =
Hitunglah nilai
�− �
mod untuk setiap k = 0, 1, …, − sampai kita dapati:
�− �
+
�− �
mod Setelah k didapatkan, isi nilai
← c.
Temukan e dengan menggunakan Chinese Remainder Theorem . Di bawah ini contoh dari penggunaan algoritma Silver-Pohlig-Hellman dalam
memecahkan kunci privat ElGamal, Berdasarkan contoh pada penerapan kriptografi ElGamal, diketahui bahwa p = 379,
α = 345 dan = =
. Kita ingin mencari kunci privat
= log . Pada perhitungan dibawah, semua persamaan berikut
diasumsikan sebagai modulo 379. Kita dapati
− = = . . =
Untuk = :
�− �
= =
k 1
�− �
1 =
Disini kita dapati = . Maka kita dapati representasi basis 2 dari
log adalah:
∑
− =
= . mod
Untuk = :
�− �
=
Universitas Sumatera Utara
k 1
�− �
1
i 1
2 223
339 255
�− �
+
1 2
1
Disini kita dapati = ,
= , = . Maka kita dapati representasi basis 3
dari log
adalah: ∑
− =
= . + .
+ . mod
Untuk = :
�− �
=
k 1
�− �
1
Disini kita dapati = . Maka kita dapati representasi basis 7 dari
log adalah:
∑
− =
= . mod
Lalu kita akan mencari nilai e dengan menggunakan Chinese Remainder Theorem untuk setiap nilai
pada basis . Dan kita dapati bahwa e = 43, jika nilai e
disubstitusikan pada persamaan awal, maka: mod
Sehingga kita dapati bahwa kunci privat ElGamal berhasil dipecahkan dengan nilai d
= 43.
Universitas Sumatera Utara
2.8 Tinjauan Penelitian yang Relevan