BAB 2
TINJAUAN PUSTAKA
2.1 Kriptografi
Kriptografi digunakan sebagai alat untuk menjamin keamanan dan kerahasiaan
informasi. Karena itu kriptografi menjadi ilmu yang berkembang pesat, terbukti
dengan banyaknya algoritma-algortima baru yang dianggap lebih unggul daripada
pendahulunya.
Ada beberapa definisi kriptografi yang telah dikemukakan dalam berbagai
literatur. Salah satunya menyatakan bahwa kriptografi merupakan ilmu mengenai
metode untuk mengirimkan pesan secara rahasia sehingga hanya penerima yang dituju
saja yang dapat menghapus dan membaca pesan atau memahaminya (Mollin, 2007).
Kriptografi juga diartikan sebagai ilmu yang mempelajari teknik-teknik
matematika yang berhubungan dengan keamanan informasi, seperti kerahasian data,
keabsahan data integritas data dan autentikasi data (Menezes, et al., 1996).
2.2 Manajemen Kunci
Manajemen kunci sangat penting dalam kriptografi. Proses pembentukan kunci
diharapkan harus benar-benar acak. Tujuannya untuk mempersulit kriptanalis
memformulasikan kunci yang telah kita tentukan. Kromodimoeljo (2010) menyatakan
bahwa untuk menghasilkan kunci secara acak, dapat digunakan aplikasi kriptografi
random number generator. Aplikasi tersebut biasanya disediakan oleh operating system untuk pembuatan kunci. Namun aplikasi ini sebaiknya hanya digunakan jika
random number generatoryang ada cukup acak.
Penggunaan algoritma enkripsi dan dekripsi yang baik sangat berperan dalam
pengamanan pesan. Namun tidak hanya itu, proses pengiriman pesan dan
pendistribusian kunci yang baik juga mendukung dalam meningkatkan keamanan.
Dalam penelitian ini, kunci yang digunakan adalah kunci privat. Sehingga termasuk
satunya adalah kunci harus didistribusikan pada jalur yang aman. Untuk mengatasi
kelemahan tersebut. Penulis menggunakan skema Shamir’s Three Pass Protocol
dimana pendistribusian kunci tidak perlu dilakukan. Tiap entitas memiliki kunci yang
hanya diketahui oleh pemilik kunci masing-masing.
2.3 Konsep Acak
Pembangkit bilangan acak sangat cocok digunakan dalam kriptografi. Tujuannya agar
tidak mudah diprediksi oleh pihak-pihak yang ingin memecahkan teknik pengamanan
pesan yang dibangun. Pembangkit bilangan acak ini diharuskan lolos uji keacakan
statistik dan harus tahan terhadap serangan yang serius (serangan untuk memprediksi
bilangan acak yang dihasilkan) (Munir, 2006). Dalam kriptografi tidak diinginkan
adanya korelasi antara naskah asli dengan naskah acak dan kunci dengan naskah acak.
Hal ini bertujuan untuk mempersulit analisa seperti analisa frekuensi (frequency analysis) ataupun analisa lain sepertilinear cryptanalysis(defferential cryptanalysis).
Dalam penelitian ini pembangkit bilangan acak digunakan sebagai pembangkit
kunci enkripsi. Pembangkit bilangan acak yang diperoleh menggunakan fungsi
random yang disediakan oleh bahasa pemrograman yang digunakan. Bilangan acak yang digunakan dibatasi mulai dari angka 1 hingga 100. Bilangan acak tidak dimulai
dari angka 0 disebabkan asumsi bahwa bilangan acak 0 memungkinkan terbentuknya
kunci dalam bentuk matriks yang semua elemen matriksnya 0. Jika itu terjadi maka
dipastikan bahwa determinan matriksnya = 0. Artinya matriks tersebut tidak
memenuhi syarat invers ( ). Angka 100 dipilih sebagai batasan bilangan
yang diacak karena cakupan bilangan yang dapat dihasilkan dianggap sudah cukup
bervariasi.
2.4 AlgoritmaHill Cipher
Hill Cipher yang merupakanpolyalphabetic cipher dapat dikategorikan sebagai block cipher (Forouzan, 2008). Pesan teks yang diproses dibagi menjadi blokblok dengan ukuran tertentu. Setiap karakter dalam satu blok akan saling mempengaruhi karakter
lainnya dalam proses enkripsi dan dekripsi, sehingga karakter yang sama tidak
dipetakan menjadi karakter yang sama pula.
Hill Cipher diciptakan oleh Lester Hill pada tahun 1929 (Stallings, 2003).
analisis frekuensi. Hill Cipher menggunakn perkalian matriks sebagai dasar enkripsi dan deskripsi. Oleh sebab itu, Hill Cipher tidak mengganti setiap abjad yang sama
pada plainteks dengan abjad lainnya yang sama pada cipherteks. Jika kriptanalis hanya
mengetahui cipherteks saja maka diperkirakan sulit untuk menemukan plainteks,
namun jika kriptanalis memiliki berkas cipherteks dan potongan berkas plainteks
maka teknik ini sangat mudah dipecahkan (Rojali, 2011).
2.4.1 Plainteks pada Algoritma Hill Cipher
Plainteks pada algoritma Hill Cipher dikelompokkan menjadi blok-blok plainteks. Matriks plainteks yang terbentuk dibagi dalam beberapa blok dengan ukuran matriks
ordo , , (…), . Sebelum membagi pesan teks menjadi deretan
blok-blok matriks plainteks, pesan tersebut terlebih dahulu disubstitusikan ke dalam
bentuk angka. Angka yang digunakan mulai dari masing-masing sehingga
, , hingga .
Jumlah blok-blok matriks disesuaikan dengan panjang plainteks yang
dienkripsi. Misalkan ukuran matriks yang digunakan adalah matriks ordo .
Maka elemen pada tiap blok-blok matriks berjumlah elemen, dimana tiap elemen
diambil dari karakter plainteks. Jika jumlah plainteks kelipatan maka
ditambahkan untuk melengkapi elemen matriks pada blok matriks yang
terakhir. Untuk memberi pemahaman yang lebih jelas tentang pembentukan matriks
plainteks, berikut diuraikan langkah-langkahnya:
1. Misalkan terdapat plainteks:
2. Substitusikan Plainteks ke dalam bentuk angka, maka:
3. Kelompokkan ke dalam bentuk matriks plainteks. Karena matriks kunci
berukuran , maka plainteks dibagi menjadi blok yang masing-masing
Blok terakhir dari matriks plainteks berisi karakter dari plainteks. Maka
ditambahkan karakter untuk melengkapi jumlah elemen matriks.
2.4.2 Kunci Enkripsi Hill Cipher
Dasar dari teknik Hill Cipher adalah aritmatika modulo terhadap matriks. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan teknik invers matriks. Kunci pada Hill Cipher adalah matriks yang berukuran n x n dengan n
merupakan ukuran blok (Widyanarko, 2007). Misalkan matriks kunci adalah , maka
matriks adalah sebagai berikut :
Keterangan:
: Matriks kunci
: Elemen matriks kunci
Matriks yang menjadi kunci harus merupakan matriks yanginvertible, yaitu
matriks yang memilikimultiplicative inverse sehingga :
…………
Keterangan:
: Kunci enkripsiHill Cipherdalam bentuk matriks
: Kunci dekripsiHill Cipherdalam bentuk invers matriks
2.4.3 Determinan Matriks
dekripsi (Mollin, 2007). Oleh karena matriks kunci harus memiliki invers matriks,
maka syarat invers matriks juga harus dipenuhi. Sebuah matriks persegi dikatakan
memiliki invers matriks jika dan hanya jika determinan matriksnya (Krantz,
2009) dan gcd determinan matriksnya = (Mollin, 2007).
Bird (2010) menjelaskan bahwa determinan matriks ordo dapat dicari
dengan menentukan minor matriks. Elemen suatu Minor matriks ordo
merupakan nilai dari determinan matriks ordo yang diperoleh dengan
menutup baris dan kolom dimana elemen tersebut berada. Berikut disajikan
bagaimana langkah-langkah mendapatkan determinan matriks :
=
=
=
=
=
=
=
2.4.4 GCD(The Greatest Common Divisor)
Sebuah matriks persegi dikatakan memiliki invers matriks jika dan hanya jika
determinan matriksnya (Krantz, 2009) dan gcd determinan matriksnya = 1
(Mollin, 2007). Berikut dijelaskan langkah menentukan gcd determinan suatu matriks:
Keterangan:
:The greatest common divisor/ Faktor persekutuan terbesar (FPB)
: Determinan matriks e
Untuk mengetahui apakah determinan kunci adalah invertible maka
dilakukan pengujian menggunakan GCD. GCD (23, 26) dapat ditentukan dengan menggunakan langkah sebagai berikut:
= =
= =
= =
= = 0, 1 adalahGCD(23, 26)
Determinan dan dengan modulo , maka termasuk
Invertible Matriks. Yaitu suatu matriks yang memiliki invers, dimana apabila
dikalikan dengan maka akan menghasilkan matriks Identitas (Krantz, 2009).
Keterangan:
: Matriks K
: Invers Matriks K
: Matriks Identitas
2.4.5 Adjoint Matriks
Adjoin pada suatu matriks dapat diperoleh dengan cara menentukan Kofaktor dari
matriks yang ada. Sementara untuk memperoleh kofaktor matriks, terlebih dahulu
tentukan minor-minor matriks. Adjoin matriks merupakan transpose dari kofaktor-kofaktor matriks, dimana kofaktor-kofaktor transpose diperoleh dengan cara mengubah posisi
baris yang ada pada kofaktor menjadi berada di posisi kolom atau mengubah posisi
kolom yang ada pada kofaktor menjadi posisi baris.
Keterangan:
: Adjoin matriks A
Adjoin matriks dapat dicari dengan menggunakan beberapa langkah, berikut
dijelaskan seperti di bawah ini:
1. Menentukan minor matriks
Jika pada matriks K ordo elemen baris ke-i dan kolom ke-j
dihilangkan, maka didapat matriks yang baru dengan ordo . Determinan
matriks ordo yang baru diperoleh itulah yang disebut dengan minor,
ditulis dengan simbol | |. Misalkan terdapat matriks A dengan ordo
sbb:
Maka minor matriks A untuk | didapat dengan cara menghilangkan baris
ke-1 dan kolom ke-1 pada matriks A di atas.
Sisanya adalah elemen-elemen | |, sehingga | adalah:
Agar lebih memahami konsep minor dengan jelas, berikut diberikan contoh
mencari minor matriks pada matriks .
= = = = =
= = = = =
= = = = =
= = = = =
= = = = =
= = = = =
= = = = =
= = = = =
Dari perhitungan di atas, maka minor matriks adalah sebagai berikut:
2. Menentukan kofaktor matriks
Tanda dari sebuah minor tergantung pada posisinya di dalam matriks. Berikut
contohnya (Bird, 2010):
Kofaktor dituliskan dengan simbol dibaca kofaktor baris ke-i dan kolom
ke-j. Kofaktor dapat diselesaikan dengan menggunakan tanda minor seperti di atas atau dengan menggunakan rumus seperti di bawah ini:
|
Keterangan:
: Kofaktor baris ke-idan kolom ke-jpada matriks
| : Minor baris ke-idan kolom ke-jpada matriks
Agar lebih memahami konsep kofaktor dengan jelas, berikut diberikan contoh
mencari kofaktor matriks pada matriks .
= = =
= = =
= = =
= = =
= = =
= = =
= = =
= = =
Dari perhitungan di atas, maka kofaktor matriks adalah sbb:
3. Adjoin Matriks
Adjoin matriks adalah transpose dari matriks kofaktor yang diperoleh
dengan mengubah posisi baris pada matriks kofaktor ke posisi kolom ataupun
sebaliknya. Oleh karena itu, adjoin untuk matriks adalah :
2.4.6 Teknik Invers Matriks
Untuk menentukan invers dari suatu matriks khususnya matriks dengan ordo ,
kita dapat menggunakan rumus di bawah ini:
Keterangan:
: Invers matriks
: Adjoin matriks
Dengan menggunakan rumus tersebut, maka invers dari matriks dapat
diperoleh. Berikut penyelesaiannya:
=
=
=
=
=
=
Dari penyelesaian di atas, maka invers matriks adalah:
2.4.7 Teknik Invers Modulo
Untuk memudahkan perhitungan dalam mencari invers suatu matriks dapat digunakan
Invers modulo. disebut invers dari apabila .
Sedangkan ) dikatakan memiliki invers jika dan hanya jika dan relatif
prima . Untuk lebih memahami teknik invers maka diberikan contoh untuk
menentukan invers seperti di bawah ini:
Dari tabel di atas diketahui bahwa invers dari adalah 17. Hal
tersebut dikarenakan hasil perhitungan dengan modulonya menghasilkan nilai 1.
Artinya dan atau dan termasuk bilangan prima.
2.4.8 Teknik Enkripsi
Secara matematis proses enkripsi pada algoritmaHill Cipherdapat dijelaskan dengan persamaan berikut: (Widyanarko, 2007)
…………
Keterangan :
: Cipherteks hasil enkripsiHill Cipher
: KunciHill Cipherdalam bentuk matriks
: Plainteks atau pesan asli
Berikut disajikan gambar yang menerangkan proses enkripsi pesan pada
algoritmaHill Cipher:
Dari gambar di atas dapat kita ketahui bahwa proses enkripsi dimulai dari
pesan pesan teks atau plainteks yang dikunci menggunakan kunci rahasia tertentu.
Bentuk kunci dalam Hill Cipher adalah matriks yang invertible. Setelah pesan diamankan dengan proses enkripsi oleh pengirim pesan (Ani), selanjutnya pesan
dikirim ke penerima (Budi).
Untuk lebih memahami teknik enkripsi pada algoritma Hill Cipher, berikut dijelaskan dengan menggunakan enkripsi pesan dan kunci yang digunakan adalah
kunci .
atau
Blok plainteks pertama:
=
=
=
=
=
Maka cipherteks yang diperoleh adalah :
=
=
=
=
=
Maka cipherteks yang diperoleh adalah :
Sehingga dihasilkan cipherteks dari proses enkripsi sebagai berikut :
Dari cipherteks yang dihasilkan terlihat bahwa Hill Cipher menghasilkan cipherteks yang tidak memiliki pola yang sama dengan plainteks asli.
2.4.7 Teknik Dekripsi
Gambar 2. Proses DekripsiHill Cipher
Secara matematis, proses dekripsi pada Hill Cipher dapat diturunkan dari persamaan . (Widyanarko, 2007)
= = = =
Jadi persamaan proses dekripsi, yaitu = …………(3)
Dengan menggunakan kunci , maka proses dekripsi dilakukan dengan
menggunakan matriks . Berikut penyelesainnya:
Blok cipherteks pertama:
=
=
=
=
=
Blok cipherteks kedua:
=
=
=
=
=
Maka plainteks yang diperoleh adalah :
Sehingga dihasilkan plainteks dari proses dekripsi menjadi
karena merupakan pelengkap blok matriks.
2.5Shamir’s Three-Pass Protocol
Dalam kriptografi, Shamir’s Three Pass Protocol (Three Pass Protocol) dalam pengiriman pesan merupakan suatu kerangka kerja yang memungkinkan satu pihak
untuk aman mengirim pesan ke pihak kedua tanpa perlu untuk bertukar atau
mendistribusikan kunci rahasia.
Disebut denganShamir’s Three Pass Protocol karena pengirim dan penerima pesan melakukan pertukaran sebanyak tiga tahap untuk mengenkripsi pesan tersebut.
pribadi. Kedua belah pihak menggunakan kunci mereka masing-masing untuk
mengenkripsi pesan dan kemudian untuk mendekripsi pesan. Dalam hal ini pengirim
disebut sebagai Ani dan penerima disebut sebagai Budi.
2.5.1 Skema Algoritma Shamir’s Three Pass Protocol
Berikut merupakan Skema dariShamir’s Three Pass Protocol:
Gambar 3. SkemaShamir’s Three-Pass Protocol
Shamir’s Three Pass Protocolbekerja dalam tiga tahap. Pertama Ani memilih sebuah kunci pribadi miliknya dan kunci dekripsi. Ani mengenkripsi pesan dengan
kunci miliknya dan mengirimkan pesan terenkripsi tersebut untuk Budi. Tahap
selanjutnya Budi memlilih sebuah kunci pribadi miliknya beserta kunci dekripsi. Budi
mengenkripsi pesan pertama yang dikirim dengan kunci tersebut. Lalu mengirimkan
kembali kepada Ani.
Tahap akhir Ani mendekripsi pesan kedua (terenkripsi 2 kali) dengan kunci
dekripsi miliknya. Lalu Ani mengirimkan kembali ke Budi. Budi kemudian dapat Pengirim
Penerima
Pengirim
membuka pesan tersebut dengan kunci dekripsi miliknya. Dengan demikian, antara
Ani dan Budi tidak terjadi pertukaran atau pendistribusian kunci. Sehingga
kerahasiaan kunci tetap terjaga.
2.6 Penelitian Terdahulu
Terdapat beberapa penelitian yang telah dilakukan oleh banyak peneliti yang berkaitan
dengan penelitian yang penulis lakukan, diantaranya yaitu penelitian yang dilakukan
Widyanarko (2007) yang membahas mengenai dasar teori Hill Cipher, teknik kriptanalis yang dapat dilakukan untuk memecahkan Hill Cipher dan upaya dalam memodifikasiHill Cipher.
Modifikasi yang dilakukan untuk meningkatkan keamanan algoritma
kriptografi kunci simetris ini agar kriptanalis tidak dapat memecahkan kunci algoritma
Hill Cipher. Perubahan dasar yang dilakukan adalah dengan menambah jumlah karakter dari 26 menjadi 29 karakter dengan penambahan karakter spasi, titik dan
koma.
Kanamori dan Yoo (2009), menggunakan protocol baru distribusi kunci tanpa
pertukaran kunci di awal. Protocol tersebut dinamakan dengan Quantum Three Pass Protocol (QTPP). Protocol ini memanfaatkan keuntungan dari Shamir’s Three Pass Protocolklasik dan keuntungan dari properti kuantum mekanik.
Reza et al., (2012), skema Shamir’s Three Pass Protocol diperkuat dengan algoritma Massey-Omura. Menggunakan logaritma diskrit dalam bidang terbatas. Algoritma Massey-Omura ini juga membutuhkan metode The Sieve of Eratosthenes
untuk membantu membangkitkan bilangan prima, algoritma Euclidean GCD untuk
mencari dua buah bilangan bulat yang relatif prima dan untuk proses enkripsi
menggunakan algoritma Modulo Exponential yang berfungsi menghitung nilai perpangkatan modulo bilangan besar serta algoritma Modulo Invers untuk proses dekripsi.
2.7 Perbedaan Dengan Penelitian Lain
Dalam beberapa penelitian yang telah dilakukan peneliti sebelumnya, terdapat
perbedaan dengan apa yang akan dilakukan oleh penulis. Dalam penelitian ini, penulis
yang merupakan algoritma kunci simetris. Sehingga diharapkan menghasilkan proses
enkripsi yang cepat.
Proses pengiriman pesan dilakukan menggunakan skemaShamir’s Three Pass Protocol, sehingga proses pengamanan data tidak mengharuskan Ani dan Budi saling bertukar kunci. Hal tersebut diharapkan dapat menutupi kelemahan kunci simetris
yaitu pada pengamanan kunci enkripsi dan dekripsi (Munir, 2006). Penelitian ini juga
tidak hanya menggunakanHill Cipher danShamir’s Three Pass Protocol, tetapi juga memodifikasi cipherteks yang dihasilkan. Dengan demikian penyandian pesan
semakin sulit dipecahkan oleh pihak-pihak yang tidak berhak.
2.8 Kontribusi Penelitian
Penelitian ini memberi kontribusi kepada pemahaman kita tentang aspek penting
keamanan pesan rahasia. Penggunaan kriptografi klasik seperti Hill Cipher sudah dianggap kurang baik dalam menjaga keamanan pesan. Melalui penelitian ini, penulis
mencoba mempersulit algoritma Hill Cipher dengan menambahkan skema yang berbeda dalam pengiriman pesan. Sehingga dihasilkan pengamanan pesan yang sulit
untuk dipecahkan.
Pada umumnya proses pengiriman pesan selalu melakukan pertukaran kunci,
tidak demikian pada skemaShamir’s Three Pass Protocol. Pada skema tersebut pesan dikirim sebanyak 3 kali. Setiap entitas memiliki kunci masing - masing yang bisa saja
berbeda. Penelitian ini juga akan melakukan uji serangan terhadap Hill Cipher pada
Shamir’s Three Pass Protocol dan menambahkan suatu teknik pengembangan. Dengan pengembangan tersebut diharapkan dapat mempersulit kriptanalis dalam