terdiri atas satu huruf, angka, tanda baca, atau karakter khusus seperti “a”, “1”, “” dan sebagainya. Tipe string terdiri atas nol atau lebih karakter seperti “algoritma”,
“teks” dan sebagainya.
2.2 Kriptografi
2.2.1 Pengertian Kripografi
Kriptografi berasal dari bahasa yunani 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 yang lain. Dalam perkembangannya, kriptografi juga digunakan
untuk mengidentifikasi pengiriman pesan dan tanda tangan digital dan keaslian pesan dengan sidik jari digital Ariyus, 2005.
Di dalam kriptografi sering ditemukan berbagai istilah yang penting untuk diketahui yaitu Munir, 2006:
1. Pesan, Plainteks dan cipherteks
Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan adalah plainteks. Pesan dapat berupa data atau
informasi yang dikirim atau dapat disimpan didalam media perekam. Pesan yang tersimpan tidak hanya berupa teks, tetapi juga dapat berbentuk citra,
suara bunyi, dan video. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat
dipahami. Bentuk pesan yang tersandi disebut cipherteks. Cipherteks harusdapat ditransformasikan kembali menjadi plainteks semula agar pesan
yang diterima bisa dibaca. 2.
Pengirim dan Penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim
sender adalah entitas yang mengirim pesan kepada entitas lainnya. Penerima receiver adalah entitas yang menerima pesan. Pengiriman tentu
menginginkan pesan dapat dikirim secara aman, yaitu pengirim yakin bahwa
Universitas Sumatera Utara
pihak lain tidak dapat membaca isipesan yang dikirim. Solusinya adalah dengan cara menyandikan pesan menjadi cipherteks.
3. Enkripsi dan Dekripsi
Proses menyandikan plainteks menjadi cipherteks disebut enkripsi atau enciphering
. Sedangkan proses mengembalikan cipherteks menjadi plainteks dinamakan dekripsi atau deciphering.
4. Cipher dan Kunci
Algoritma kriptografi disebut juga cipher yaitu aturan untuk enciphering dan deciphering
, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Beberapa cipher memerlukan algoritma yang berbeda untuk
enciphering dan deciphering. Konsep matematis yang mendasari algoritma
kriptografi adalah relasi antara dua buah himpunan yang berisi elemen – elemen plainteks dan himpunan yang berisi cipherteks. Enkripsi dan dekripsi
merupakan fungsi yang memetakan elemen – elemen antara kedua himpunan tersebut. Misalkan P menyatakan plainteks dan C menyatakan Cipherteks,
maka fungsi enkripsi E memetakan P ke C, EP = C
Dan fungsi dekripsi D memetakan C ke P, DC = P
Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut harus benar
DEP = P Kriptografi mengatasi masalah diatas dengan menggunakan kunci. Dalam hal
ini algoritma tidak lagi dirahasiakan tetapi kunci harus dijaga kerahasiaannya. Kunci adalah parameter yang digunakan untuk transformasi enciphering dan
deciphering . Kunci biasanya berupa string atau sederetan bilangan. Dengan
menggunakan kunci k, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai: E
k
P = C dan D
k
Dan kedua fungsi ini memenuhi C = P
D
k
E
k
Keterangan: P = P
P = Plainteks C = Cipherteks
Universitas Sumatera Utara
K = Kunci E
k
D = Proses Enkripsi
k
Gambar 2.1 adalah skema enkripsi dan dekripsi dengan menggunakan kunci. = Proses Dekripsi
Gambar 2.1 Skema enkripsi dan dekripsi menggunakan kunci
5. Sistem Kriptografi
Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi adalah kumpulan yang terdiri dari algoritma kriptografi,
semua plainteks dan cipherteks yang mungkin dan kunci. Di dalam sistem kriptografi, cipher hanyalah salah satu komponen saja.
6. Penyadap
Penyadap adalah orang yang mencoba menangkap pesan selama ditransmisikan. Tujuan penyadap adalah untuk mendapatkan informasi
sebanyak – banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks.
7. Kriptanalisis dan Kriptologi
Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis adalah ilmu seni untuk
memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelaku kriptanalisis disebut kriptanalis. Kriptologi adalah studi
mengenai kriptografi dan kriptanalis. Pelaku kriptologi disebut kriptografer.
2.2.2 Sejarah kriptografi
Kriptografi mempunyai sejarah yang panjang. Informasi yang lengkap mengenai sejarah kriptografi dapat ditemukan di dalam buku David Khan yang berjudul The
Universitas Sumatera Utara
Codebreakers . Secara historis ada empat kelompok yang berkontribusi terhadap
perkembangan kriptografi yaitu kalangan militer, kalangan diplomatik, penulis buku harian, dan pecinta lovers Munir, 2006.
Kriptografi sudah digunakan dan diperkenalkan oleh bangsa Mesir pada 4000 tahun yang lalu berupahieroglyph untuk mengirim pesan ke pasukan militer yang
berada di lapangan. Sehingga, pesan tersebut tidak bisa terbaca oleh pihak musuh maupun kurir pembawa pesan tersebut tertangkap oleh musuh.Jenis tulisan ini
bukanlah bentuk standar untuk menulis sebuah pesan. Hieroglyph diturunkan dari bahasa Yunani hieroglyphica yang berarti ukiran rahasia. Sekitar 400 SM, kriptografi
militer digunakan oleh bangsa Spartan dalam bentuk sepotong papirus atau perkamen dibungkus dengan batang kayu. Sistem ini disebut Scytale Ariyus, 2008.
Gambar 2.2Scytale
Scytale merupakan pita panjang dari daun papyrus ditambah sebatang silinder.
Pesan ditulis horizontal baris per baris. Bila pesan dilepaskan, maka huruf-huruf di dalamnya telah tersusun membentuk pesan rahasia. Untuk membaca pesan, penerima
melilitkan kembali silinder yang diameternya sama dengan diameter silinder pengirim. Namun, pada tiga puluh tahun terakhir ini, kriptografi tidak hanya dimonopoli
oleh pihak militer saja. Hal yang sama juga dilakukan oleh individu – individu yang menginginkan pesan dan komunikasi mereka tidak diketahui oleh pihak lain,dan
setiap individu berhak mengamankan informasi keluarganya, pekerjaan, bisnis dan lain – lain. Apalagi zaman sekarang ini, persaingan yang begitu tingggi menyebabkan
mereka rela mengeluarkan sekian dolar hanya untuk menjaga privasi mereka Ariyus, 2005.
Universitas Sumatera Utara
2.2.3 Tujuan Kriptografi
Dari paparan awal dapat dirangkumkan bahwa kriptografi bertujuan untuk memberi layanan keamanan sebagai berikut: Munir, 2006
1. Kerahasiaan confidentiality
Adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak – pihak yang tidak berhak. Di dalam kriptografi, layanan ini
direalisasikan dengan menyandikan pesan menjadi cipherteks. Misalnya pesan “bahaya” disandikan menjadi “44220273490202729512027”. Istilah lain yang
senada dengan confidentiality adalah secrecy dan privacy. 2.
Integritas data data integrity Adalah layanan yang menjamin bahwa pesan masih asli utuh atau belum
pernah dimanipulasi selama pengiriman. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan “Apakah pesan yang diterima masih
asli atau tidak mengalami perubahan modifikasi ?” 3.
Otentikasi authentication Adalah layanan yang berhubungan dengan identifikasi baik mengidentifikasi
kebenaran pihak – pihak yang berkomunikasi user authentication atau entity authentication
maupun mengidentifikasi kebenaran sumber pesan data origin authentication
. Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan.
4. Nirpenyangkalan non - repudation
Adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau
penerima pesan menyangkal telah menerima pesan.
2.2.4 Serangan Terhadap Kriptografi
Serangan attack merupakan suatu usaha yang dilakukan oleh seorang kriptanalis untuk menemukan kunci atau plainteks dari chiperteks dari sistem kriptografi.
Kriptanalis akan berusaha untuk menemukan plainteks dari chiperteks tanpa memiliki akses kunci yang digunakan dari sistem kriptografi. Berdasarkan teknik yang
digunakan dalam menemukan kunci, serangan dibagi menjadi exhaustive atau brute force attack
dan analytical attack Fithria, 2007.
Universitas Sumatera Utara
Exhaustive atau brute force attack merupakan serangan untuk mendapatkan
plainteks dari chiperteks dengan mencoba satu persatu seluruh kombinasi atau
kemungkinan kunci yang digunakan. Dalam hal ini kriptanalis harus tahu jenis algoritma kriptografi yang digunakan oleh pengirim pesan dan juga memiliki sejumlah
plainteksdan chiperteksyang bersesuaian yang digunakan untuk mencari pola dari proses enkripsimaupun dekripsidari algoritma kriptografi yang digunakan.
Analytical attack merupakan serangan untuk mendapatkan plainteksdari
chiperteksdengan menganalisa kelemahan algoritma kriptografi untuk mengurangi kemungkinan kunci yang tidak mungkin digunakan, sehingga kriptanalis tidak
mencoba semua kemugkinan kunci. Dalam hal ini kriptanalis juga harus tahu jenis algoritma kriptografi yang digunakan oleh pengirim pesan. Analisis yang digunakan
dengan menggunakan pendekatan matematik dan statistik untuk mendapatkan kunci
yang digunakan dalam sistem kriptografi tersebut. 2.3
CSPRNG Berbasis RSA
Pembangkit bilangan acak yang dapat menghasilkan bilangan yang tidak dapat diperdiksi oleh pihak lawan yang cocok untuk kriptografi: pembangkit tersebut
dinamakan cryptographically secure pseudorandom generator CSPRNG
. Perancanangan CSPRNG dapat dibagi kedalam beberapa kelompok. Dalam hal ini kita
menggunakan perancangan CSPRNG berbasis teori bilangan. Contoh dua CSPRNG yang berdasarkan teori bilangan adalah Blum Blum Shut dan modifikasi RSA Munir,
2006. Dalam penulisan CSPRNG yang digunakan adalah CSPRNG berbasis RSA. Algoritma pembangkit bilangan acak berbasis RSA adalah sebagai berikut:
1. Pilih 2 bilangan prima rahasia, p dan q, dan bilangan bulat e yang relatif prima
dengan p-1q-1. 2.
Kalikan keduanya menjadi n = pq 3.
Pilih bilangan acak lain, s, sebagai x 4.
Barisan bit acak dihasilkan dengan melakukan itersai berikut sepanjang yang diinginkan:
yang dalam hal ini 2 ≤ s ≤ n.
a. Hitung x
i
= x
i -
1
e
mod n dengan x b.
Z = s.
i
= bit LSB Least Significant Bit dari x
i.
Universitas Sumatera Utara
5. Barisan bit acak adalah z
1,
z
2,
z
3,
....
Sebagai contoh, untuk menemukan bialangan acak berbasis RSA, yaitu:
Misal p = 11 dan q = 5 N = p.q = 11.5 =55
E3, or S = 3
X x
= 3
i
= x
i -
1
e
= 3
3
x mod 55 = 27
2
= 27
3
x mod 55 = 48
3
= 48
3
x mod 55 =42
4
= 42
3
karena x mod 55 = 3
4
= x
1
z berarti dilakukan pengulangan setelah 3 kali
i
z mod 2
1
z = 27 mod 2 = 1
2 =
z 48 mod 2 = 0
3
z = 3 mod 2 = 1
4
karena z = 27 mod 2 = 1
4
= z
1
jadi baris acak yang dihasilkan maka pengulangan dilakukan setelah 3 kali
1011 0110 1101 1011 0101 dan seterusnya, kemudian dikonversikan ke bilangan desimal
11 6 13 11 5
2.4 Algoritma Lehmann