BAB II LANDASAN TEORI
2.1 Kriptografi 2.1.1 Definisi Kriptografi
Secara etimologi, kata kriptografi berasal dari bahasa Yunani, yaitu: kryptos berarti
rahasia dan graphein berarti tulisan [18]. Sedangkan secara terminologi, kriptografi adalah ilmu dan seni untuk menjaga kerahasiaan pesan dengan cara menyandikannya
ke dalam bentuk yang tidak dapat dipahami maknanya sehingga tidak dapat dibaca oleh orang yang tidak berkepentingan.
Dalam kriptografi, setiap orang dimungkinkan untuk bebas memilih metode untuk merahasiakan pesan. Metode tersebut berbeda-beda unik untuk setiap pelaku
kriptografi sehingga penulisan pesan rahasia mempunyai estetika tersendiri. Estetika penulisan pesan rahasia ini menjadikan kriptografi sebagai sebuah seni. Pada
perkembangan selanjutnya, kriptografi dikenal sebagai disiplin ilmu yang menggunakan teknik matematika untuk keamanan informasi, seperti privasi dan autentikasi.
2.1.2 Tujuan Kriptografi Kriptografi bertujuan untuk memberikan layanan keamanan [15] sebagai berikut:
1. Autentikasi Authentication Autentikasi memberikan kepastian terhadap identitas setiap entitas yang terlibat
dan sumber sebuah data. 2. Kerahasiaan Confidentiality
Data yang ditransmisikan diproteksi terhadap pengungkapan oleh pihak-pihak yang tidak berwenang.
3. Keutuhan Data Data Integrity Data yang diterima oleh penerima dipastikan adalah sama dengan data yang
dikirim oleh pengirim.
Universitas Sumatera Utara
4. Nirpenyangkalan Non-Repudiation Setiap entitas yang berkomunikasi tidak dapat menolak atau menyangkal atas data
yang telah dikirim atau diterima.
2.2 Sistem Kriptografi Kriptografi membentuk sebuah sistem yang dinamakan sistem
kriptograficryptosystem. Cryptosystem adalah lima tuple P, C, K, E, D, dimana P adalah plaintext,C adalah ciphertext, K adalah himpunan kunci-kunci, E adalah
himpunan fungsi enkripsi dan D adalah himpunan fungsi dekripsi [16].Berdasarkan prinsip kerjanya, sistem kriptografi terbagi dua, yaitu sistem kriptografi klasik simetris
dan modern asimetris [1].
2.2.1 Sistem Kriptografi Klasik Simetris Kriptografi klasik umumnya merupakan teknik penyandian dengan kunci simetris dan
pesan disembunyikan sehingga tidak memiliki arti dengan metode substitusi danatau transposisi. Terdapat lima komponen utama dalam sistem kriptografi klasik, yaitu:
1. Plaintext Teks asli dapat berupa pesan atau data sebagai input algoritma enkripsi.
2. Kunci Rahasia Kunci rahasia sebagai penentu output dari algoritma enkripsi. Antar entitas harus
saling mengetahui kunci ini agar dapat melakukan enkripsidekripsi pesan. 3. Ciphertext
Hasil dari proses algoritma enkripsi di mana teks asli dianggap telah tersembunyi tidak memiliki arti.
4. Algoritma Enkripsi Algoritma enkripsi mengubah teks asli menjadi ciphertext dengan parameter
masukan, yaitu teks asli dan kunci rahasia. 5. Algoritma Dekripsi
Algoritma dekripsi mengubahciphertext menjadi teks asli dengan parameter masukan, yaitu ciphertext dan kunci rahasia.
Berdasarkan skema pada gambar 2.1, kriptografi simetris menggunakan kunci tunggal yang mengharuskan pengirim dan penerima menyetujui dan mengetahui
Universitas Sumatera Utara
satu kunci rahasia tertentu sebelum mereka dapat berkomunikasi dengan aman. Keamanan kriptografi simetris ini terletak pada kerahasiaan kuncinya [7]. Semua
algoritma kriptografi klasik termasuk dalam algoritma simetri. Contohnya, DES, Tripel-DES, AES, RC2, RC4 dan sebagainya.
A
Teks Asli
B
Kunci Rahasia Ciphertext
Teks Asli
: Jalur Rahasia Algoritma
Enkripsi Algoritma
Dekripsi
Gambar 2.1 Skema Sistem Kriptografi Klasik
2.2.2 Sistem Kriptografi Modern Asimetris Sistem kriptografi modern juga disebut kriptografi kunci asimetris, memiliki dua jenis
kunci, yaitu kunci enkripsi dan kunci dekripsi yang berbeda. Kunci enkripsi dimiliki oleh pengirim dan kunci dekripsi dimiliki oleh penerima pesan. Dalam kriptografi kunci
asimetris, hampir semua algoritma kriptografinya menggunakan konsep kunci publik, seperti RSA, El-Gamal, dan sebagainya. Kecuali algoritma Pohlig
˗Hellman karena kunci enkripsi maupun kunci dekripsinya bersifat privat.
2.2.3 Sistem Kriptografi Kunci Publik Sistem kunci kriptografi kunci publik merupakan bagian dari sistem kriptografi modern.
Pada kriptografi kunci publik terdapat dua jenis kunci, kunci pertama ialah kunci tidak rahasia, yaitu kunci enkripsi K
e
yang disebut kunci publik K
publik
. Kunci kedua ialah kunci dekripsi K
d
bersifat rahasia K
privat
yang ditunjukkan pada gambar 2.2. Berikut algoritma sistem kriptografi kunci publik [5]:
K
publik
, K
privat
PembangkitKunci …B
Ciphertext EnkripsiK
publik
, Plaintext …A Plaintext
DekripsiK
publik
, Ciphertext …B
Universitas Sumatera Utara
A
Teks Asli
B
K
publik
B Ciphertext
Teks Asli
K
privat
B Algoritma
Enkripsi Algoritma
Dekripsi Pembangkit
Kunci
Gambar 2.2 Skema Sistem Kriptografi Kunci Publik 2.3 Teori BilanganInteger
Teori bilangan integer ℤ memiliki peran yang sangat besar dalam kriptografi pada
umumnya serta merupakan pondasi bagi sistem kriptografi kunci publik. Misalnya, kekuatan sistem kriptografi RSA yang terletak pada sulitnya faktorisasi bilangan
komposit merupakan bagian dari teori bilanganinteger.
2.3.1 Faktor Persekutuan Terbesar Greatest Common Divisor Faktor persekutuan terbesar adalah elemen terbesar pada himpunan divisor dua
bilangan integer. Misalnya, divisor 16 = { 1, 2, 4, 8, 16 } dan divisor 24 = { 1, 2, 3, 4, 6, 8, 12, 24 }, maka himpunan divisor kedua bilangan tersebut ialah { 1, 2, 4, 8 } dan
yang terbesar ialah 8. Dengan kata lain, faktor persekutuan terbesar 16 dan 24 dapat dinotasikan sebagai gcd16, 24 = 8. Apabila ada dua bilangan integer m dan n
memiliki gcdm, n = 1, maka bilangan m dan n dapat disebut relatif prima.
2.3.2Algoritma Euclid dan Extended Euclid Salah satu cara untuk menentukan gcd dua bilangan integer a dan b ialah dengan
menggunakan algoritma Euclid. Walaupun algoritma ini dijelaskan dalam buku Euclid yang berjudulElements, para sejarawan meyakini algoritma ini tidak ditemukan oleh
Euclid, melainkan telah ada 200 tahun lebih dahulu dari Elements [18]. Algoritma Euclid merupakan algoritma rekursif yang terdapat dua kasus:
I: b = 0 ����, 0 = �
II: b ≠ 0
����, � = ����, � ��� �
Universitas Sumatera Utara
Algoritma Euclid dikembangkan menjadi kombinasi linear oleh dengan koefisien integer a dan bdengan dua bilangan integer s dan t sehingga memenuhi
persamaan: � × � + � × � = ����, �
Persamaan tersebut merupakan teorema Bézout yang kemudian disebut algoritma Extended Euclid [16].Berikut pseudocode algoritma Extended Euclid.
extEuclidaa, bb: 1.
lastremainder, remainder = absaa, absbb 2. x, lastx, y, lasty = 0, 1, 1, 0
3. while remainder: 4. lastremainder, quotient, remainder =
5. remainder, divmodlastremainder, remainder 6. x, lastx = lastx - quotientx, x
7. y, lasty = lasty - quotienty, y 8. return lastremainder, lastx -1 if aa 0 else 1,
9. lasty -1 if bb 0 else 1
2.3.3 Invers Modulo Bilangan n disebut modulo apabila m mod n = r dan ada k, sehingga:
� × � + � = � Sedangkan
�
−1
adalah invers modulo dari � ��� �, apabila:
�
−1
∙ � ≡ 1��� � ���� � memiliki invers modulo jika dan hanya jika m dan n relatif prima. Salah
satu cara untuk menemukan invers ���� � ialah dengan menggunakan algoritma
Extended Euclid sehingga memenuhi � × � + � × � = ����, � [17]. Karena
����, � = 1 dan � × � ≡ 0 ��� �, maka persamaan tersebut menjadi � × � = 1 atau
� × � ≡ 1 ��� � sehingga � = �
−1
.
2.3.4 �˗Euler
�˗Euler atau ditulis�� adalah fungsi yang mengembalikan jumlah bilangan integer a dalam
� � dan a relatif prima dengan n relatif prima jika gcda, n = 1 [16]. Hasil
�� untuk empat kasus dasar adalah: 1.
�1 = 0. 2.
�� = � − 1apabila � ∈ bilangan prima. 3.
�� × � = �� × �� apabila ����, � = 1. 4.
��
�
= �
�
− �
�−1
apabila � ∈ bilangan prima.
Universitas Sumatera Utara
2.3.5 Eksponensial Modulo Salah satu operasi modulo yang sering digunakan dalam sistem kriptografi adalah
eksponensial. Pada sistem kriptografi RSA, proses enkripsi dan dekripsinya memakai operasi eksponensial modulo. Operasi eksponensial modulo dinotasikan sebagai
�
�
��� �.
Salah satu implementasi penghitungan eksponensial modulo adalah algoritma Square and Multiply.Algoritma Square and Multiply mengasumsikan
eksponen y dalam bentuk biner sehingga � = � �
�
2
� �−1
�=0
dengan l adalah panjang y dalam biner, x
i
bernilai0 atau 1 untuk 0 ≤ i ≤ l ˗ 1 [17].
Berikut pseudocode algoritma Square and Multiply.
ModExx, y, n: 1. y = 1
2.for i = l – 1 downto 0: 3. y = y y mod n
4. if x
i
== 1: 5. y = y a mod n
6. return y
2.4 Sistem Kriptografi RSA Salah satu algoritma kriptografi kunci publik ialah RSA yang dipublikasikan pada
tahun 1977 [11]. RSA dibangun oleh fungsi eksponensial modulo yang terdiri dari tiga proses utama, yaitu: pembangkitan kunci, enkripsi, dan dekripsi.
2.4.1 Pembangkitan Kunci RSA Pemilik kunci harus membangkitkan kunci publik dan privat untuk dapat
menggunakan RSA. Kedua kunci ini membutuhkan dua bilangan prima besar agar sulit untuk difaktorisasi. Berikut variabel-variabel yang dibutuhkan untuk RSA:
p, qbilangan prima acak besar n p · q, sehingga
ϕn p – 1· q – 1
Universitas Sumatera Utara
e kunci enkripsi: bilangan acak dalam rentang 1 e ϕn,
dengan syarat gcde, ϕn = 1
d kunci dekripsi:e
-1
mod ϕn
K
publik
= e, n K
privat
= d P = plain text
C = cipher text
2.4.2 Enkripsi RSA Proses enkripsi RSA menggunakan kunci publik yang telah dibangkitkan sebelumnya.
Enkripsi pada RSA menggunakan fungsi eksponensial modulokunci enkripsi e berikut:
K
publik
= e, n C P
e
mod n
2.4.3 Dekripsi RSA Untuk mengembalikan cipher text menjadi plain text, dekripsi RSA juga berupa fungsi
eksponensial modulon dengan menggunakan kunci privat. Berikutproses dekripsi RSA:
K
publik
= e, n K
privat
= d P C
d
mod n
2.5 Sistem Kriptografi Multiple-Key RSA