BAB II
LANDASAN TEORI
Pada bab ini akan dibahas mengenai landasan teori yang berhubungan dengan sistem yaitu mengenai Kriptografi, Jenis Algoritma Kriptografi, Landasan Matematika Kriptografi, Algoritma Hill Cipher, Algoritma Knapsack, File, dan Penelitian Terkait.
2.1 Kriptografi
Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. (cryptography is the art and science of keeping message secure. “Crypto” berarti “secret” (rahasia) dan “graphy” berarti “writing” (tulisan) (Sasangko, 2005). Dalam hal ini kriptografi disebut dengan ilmu dan seni, karena dari sejak jaman dahulu orang-orang mempelajari dan memperdalam sistem pengamanan pesan ini, sehingga menghasilkan berbagai macam algoritma yang sudah banyak dikenal saat ini (Ariyus, 2006).
2.1.1 Istilah dalam Kriptografi
Di dalam kriptografi sering ditemukan berbagai istilah atau terminology penting yang perlu diketahui seperti beberapa istilah di bawah ini : 1. Pesan, Plainteks, dan Cipherteks Pesan (messege) adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Nama lain untuk pesan ini adalah plainteks (plaintext). Pesan dapat berupa data atau informasi yang dikirim (melalui saluran telekomunikasi atau sejenisnya) atau yang disimpan dalam media perekaman. Pesan yang tersimpan
Universitas Sumatera Utara
tidak hanya berupa teks, teteapi juga berbentu citra (mage), suara/bunyi (audio), atau berkas biner lainnya. Agar pesan tidak dapat dimengerti maknanya oleh pihak lain, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersaindi disebut cipherteks (ciphertext) atau kriptogram (cryptogram). 2. Pengirim dan Penerima Komunikasi data melibatkan pertukaran pesan antara dua entitas. Pengirim (sender) adalah entitas yang mengirim oesan kepada entitas lainnya. Penerima (receiver) adalah entitas yang menerima pesan. Entitas di sini dapat berupa orang, mesin computer, kartu kredit, dan sebagainya. 3. Enkripsi dan Dekripsi Proses
menyandikan
plainteks
menjadi
cipherteks
disebut
enkripsi
(encryption). Sedangkan proses mengembalikan cipherteks menjadi plainteks semula dinamakan dekripsi (decryption). 4. Cipher dan Kunci Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan dechipering, atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Konsep matematis yang mendasari algoritma kriptografi adalah relasi antara dua buah himpunan yaitu himpunan yang berisi elemn-elemn plainteks dan himpunan yang berisi cipherteks. Dalam kriptografi modern, enkripsi dan dekripsi merupakan fungsi yang memetakan elemen-elemen antara kedua himpunan tersebut. Yang dalam hal ini algoritma tidak lagi dirahasiakan, tetapi kunci harus dijaga kerahasiannya. Kunci adalah parameter yang digunakan untuk transformasi enciphering dan deciphering. Misalkan P menyatakan plainteks, dan C menyatakan chiperteks, maka fungsi enkripsi E memetakan P ke C, dan dengan menggunakan kunci K, maka fungsi enkripsi dan dekripsi dapat ditulis sebagai berikut : Ek(P) = C Dan fungsi dekripsi D memetakan C ke P, Dk(C) = P Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut benar,
Universitas Sumatera Utara
Dk(Ek(P)) = P Keamanan algoritma sering kripstografi diukur dari banyaknya kerja yang dibutuhkan untuk memecahkan cipherteks menjadi plainteksnya tanpa mengetahui kunci yang digunakan (Munir, 2006) 5. Sistem Kriptografi Kriptografi membentuk sebuah sistem yang dinakaman sistem kriptografi. Sistem kriptografi (Cryptosystem) 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 (eavesdropper) adalah orang yang mencoba menangkap pesan selama ditansmisikan. Tujuan penyadap adalah untuk mendapatkan informasi sebanyak-bnayknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan maksud untuk memecahkan cipherteks. Nama lain peyadap: enemi, adversary, intruder, interceptor, bad guy. 7. Kriptanalisis dan Kriptologi Kriptografi berkembang sedemikian rupa sehingga melahirkan bidang yang berlawanan yaitu kriptanalisis. Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan cipherteks menjadi plainteks tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalisis. Jika seorang kriptografer (cryptographer) mentransformasikan plainteks menjadi cipherteks dengan suaatu algoritma dan kunci maka sebaliknya seorang kripatanalisis berusaha untuk memecahkan cipherteks tersebut untuk menemukan plainteks atau kunci. Kriptologi (cryptologi) adalah studi mengenai kriptografi dan kriptanalisis. Baik kriptografi dan kriptanalisis keduanya saling berkaitan (Munir, 2006).
2.1.2 Tujuan Kriptografi
Kriptografi bertujuan untuk memberi layanan keamanan (yang juga dianamakan sebagai aspek-aspek keamanan) sebagai berikut: 1. Kerahasian (confidentiality)
Universitas Sumatera Utara
Kerahasiaan (confidentiality) adalah layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibca oleh pihak-pihak yang tidak berhak. Di dalam kriptografi, layanan ini direalisasikan dengan menyandikan pesan menjadi cipherteks. 2. Integritas Data (Data Integrity) Integritas Data (Data Integrity) adlaah layanan yang menjamin bahwa pesan masih utuh atau belum pernah dimanipulasi selama pengirimin. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebaga pertanyaan : “Apakah pesan yang diterima masih asli atau tidak mengalami perubahan (modifikasi)?”. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubtitusian data laian ke dalam pesan yang sebenarnya. Dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda tangan digital. Pesan yang ditandatangani menyiratkan bahwa pesan yang dikirim adalah asli. 3. Otentikasi (authentication) Otentikasi (authentication) adalahan layanan yang berhubungan dengan identifikasi,
baik
mengidentifikasi
kebenaran
pihak-pihak
yang
berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran semua pesan (data origin authentication). Dua pihak yang saling berkomunikasi harus dapat mengotentikasi satu sama lain sehingga ia dapat memastikan sumber pesan. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. Dengan kata lain, aspek keamanan ini dapat diungkapkan sebagai pertanyaan : “Apakah pesan yang diterima benar-benar berasal dari pengirim yan benar?”. Otentikasi sumber pesan secara implisit juga memberikan kepastian integritas data, sebab jika pesan telah dimodifikasi berarti sumber pesan sudah tidak benar. Oleh karena itu, layanan integritas data selalu dikombinasikan dengan layanan otentikasi sumber pesan. Di dalam kriptografi, layanan ini direalisasikan dengan menggunakan tanda tangan digital. Tanda-tangan digital menyatakan sumber pesan.
Universitas Sumatera Utara
4. Nirpenyangkalan (non-repudiation) Nirpenyangkalan (non-repudiation) adalah layanan untk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengirim atau penerima pesan menyangkal telah menerima pesan. Sebagai conto misalkan pengirim pesan memberikan otoritas kepada penerima pesan untuk melakukan pembelian, namun kemudian ia menyangkal telah memberikan otoritas terseut. Contoh lainnya, misalkan seorang pemilik emas mengajukan tawaran kepasa took mas bahwa ia akan menjual emasnya. Tetapi, tiba-tiba harga emas turun dastis, lalu ia membantah telah mengajukan tawaran menjual emas. Dalam hal ini, pihak took emal perlu proseud nirpenyangkalan untuk membuktikan bahwa pemilik emas telah melakukan kebohongan (Munir, 2006).
2.2 Jenis Algoritma Kriptografi
Berdasarkan kunci yang digunakan untuk melakukan proses enkripsi dan dekripsi, algoritma kriptografi dibagi menjadi tiga bagian yaitu : 1. Algoritma Simetri (Konvensional) 2. Algoritma Asimetri (Kunci Publik) 3. Algoritma Kriptografi Hibirda (Hybrid)
2.2.1 Algoritma Kriptografi Simetri (Konvensional)
Kunci simetri merupakan jenis kriptografi yang paling umum dipergunakan. Kunci simetri seringan juga disebut kunci privat. Kunci untuk membuat pesan yang disandikan sama dengan kunci untuk membuka pesan yang disandikan itu. Jadi pembuat pesan dan penerimanya harus memiliki kunci yang sama persis. Siapapun yang memiliki kunci tersebut, termasuk pihak-pihak yang tidak diinginkan, dapat membuat dan membongkar rahasia ciphertext. Problem yang
Universitas Sumatera Utara
paling jelas disini terkadang bukanlah masalah pengiriman ciphertext, melainkan masalah bagaimana menyampaikan kunci simetri tersebut kepada pihak yang diinginkan. Aplikasi dari algoritma simetri digunakan oleh bebarapa algoritma, seperti Data Encryption Standard (DES), Advance Encryption Standard (AES), International Data Encryption Algoritma (IDEA), A5, RC2, RC4, RC5, RC6, dan lain sebgainya (Ariyus, 2006)
Sketsa ataupun gambaran umum kunci simetri terdapat pada gambar 2.1 di bawah: Kunci
Plaintext
Enkripsi
Ciphertext
Dekripsi
Plaintext
Gambar 2.1 Algoritma Kunci Simetri
2.2.2 Algoritma Kriptografi Asimetri (Publik)
Kunci asimetri adalah pasangan kunci kriptografi yang salah satunya dipergunakan untuk proses enkripsi dan yang satu lagi untuk dekripsi. Semua orang
yang
mendapatkan
kunci
publik
dapat
menggunakannya
untuk
mengenkripsikan suatu pesan, sedangkan hanya satu orang saja yang memiliki rahasia tertentu, dalam hal ini kunci privat untuk melakukan pembongkaran terhadap sandi yang dikirim untuknya. Dengan cara seperti ini, jika seorang pihak pertama mengirim pesan untuk pihak kedua, pihak pertama tersebut dapat merasa yakin bahwa pesan tersebut hanya dapat dibaca oleh pihak yang bersangkutan, karena hanya dia yang bisa melakukan dekripsi dengan kunci privatnya. Aplikasi dari algoritma simetri digunakan pleh bebara algoritma, seperti RSA, Elgamal, DSA, Knapsack, dan lain sebagainya (Ariyus, 2006).
Universitas Sumatera Utara
Sketsa ataupun gambaran umum kunci simetri terdapat pada gambar 2.2 di bawah: Kunci Privat
Kunci Publik
Plaintext
Enkripsi
Ciphertext
Dekripsi
Plaintext
Gambar 2.2 Algoritma Asimetri
2.2.3 Algoritma Kriptografi Hibrida (Hybrid)
Permasalahan yang menarik pada bidang keamanan informasi adalah adanya tradeoff antara keamanan dengan kenyamanan. Semakin aman semakin tidak nyaman, berlaku juga sebaliknya semakin nyaman semakin tidak aman. Salah satu contohnya adalah bidang kriptografi. Tetapi hal ini dapat diatasi dengan penggunaan kriptografi hibrida. Kriptografi hibrida sering dipakai karena memanfaatkan keunggulan kecepatan pemrosesan data oleh algoritma simetri dan kemudahan
transfer
kunci
menggunakan
algoritma
asimetri.
Hal
ini
mengakibatkan peningkatan kecepatan tanpa mengurangi kenyamanan serta keamanan (Annelis, 2010)
Pada sistem kriptografi hibrida ini, enkripsi/dekripsi pesan ataupun file dilakukan menggunakan kriptografi kunci simetri, sedangkan kunci simetri dienkripsi/dekripsi menggunakan kriptografi kunci asimetri(kunci publik). Kunci simetri (yang juga disebut Session Key) dibangkitkan oleh salah satu pihak dan mengenkripsi pesan dengan kunci tersebut. Selanjutnya Session Key dienkripsi dengan kunci publik penerima lalu dikirim bersama-sama dengan pesan yang sudah dienkripsi. Penerima mula-mula mendekripsi Session Key dengan kunci privatnya, lalu mendekripsi file dokumen dengan Session Key tersebut seperti yang terdapat pada sketsa atau gambar 2.3 di bawah ini:
Universitas Sumatera Utara
PENGIRIM Plain File Plain File Plain File
Enkripsi File Dengan Kunci Hill Cipher
File
PENERIMA 8m7$gY gT6K8@ Im?.<)*
Dekripsi Cipherfile Dengan Kunci Hill Cipher
Cipherfile
File
Session Key
Enkripsi Kunci Hill Cipher Dengan Kunci Publik Knapsack
Plain File Plain File Plain File
Session Key
Pertukaran Kunci
Dekripsi Cipherkey Dengan Kunci Privat Knapsack
Public Key
Privat Key
Gambar 2.3 Prinsip Kriptografi Hibrida Pada Sistem
Berdasarkan gambar 2.3 metode hibrida terdiri dari enkripsi simetri dengan satu kunci (Session Key) dan enkripsi asimetri dengan sepasang kunci (Public/Private Key). Langkah-langkah enkripsi dekripsi pada sistem ini adalah: Langkah 1 : Pengirim mengenkripsi file dengan Session Key. Langkah 2 : Mengenkripsi Session Key dengan Public Key. Langkah 3 : Penerima mendekripsi Session Key dengan Private Key. Langkah 4 : Mendekripsi file dengan Session Key.
Dalam penelitian ini dibahas mengenai perancangan sebuah aplikasi kriptografi hibrida yang ditujukan untuk kalangan tertentu, terutama pemakai hardware dengan kekuatan pemrosesan yang terbatas. Aplikasi yang ingin dicapai adalah aplikasi yang sederhana, ringan dan cepat tanpa mengurangi tingkat keamanan. Dalam hal ini, gabungan ataupun kombinasi dua algoritma yang akan dipakai adalah algoritma Hill Cipher sebagai algoritma kriptografi kunci simetri dan algoritma Knapsack sebagai algoritma kriptografi kunci asimetri (kunci publik).
2.3 Landasan Matematika Kriptografi
Berikut beberapa landasan matematika kriptografi yang akan digunakan pada sistem dapat dilihat sebagai berikut.
Universitas Sumatera Utara
2.3.1 Definisi Matriks
Matriks adalah himpunan skalar ( bilangan riil atau kompleks ) yang disusun secara empat persegi maupun persegi panjang menurut baris-baris dan kolomkolom.
Skalar – skalar itu disebut elemen matriks. Untuk pembatasnya biasanya diberikan tanda [ ] atau ( ) atau || || (Nugraha, 2001)
Notasi Matriks
Sebuah matriks yang diberi variabel A memiliki elemen-elemen baris dan kolom seperti notasi berikut (Leon, 2001).
Matriks A dapat ditulis matriks A(mxn) = a(ij). Keterangan : i = 1, 2, 3, … m j = 1, 2, 3, … n m = jumlah baris n = jumlah kolom
2.3.2 Jenis Matriks
Beberapa jenis matriks yang dipakai dalam proses pembuatan sistem dapat dilihat sebagai berikut.
2.3.2.1 Matriks Persegi ( Bujur Sangkar )
Jika m=n, maka :
Universitas Sumatera Utara
merupakan matriks 2x2,
merupakan matriks 3x3
(Leon, 2001).
2.3.2.2 Matriks Satuan (Identitas)
Jika aij = 0 untuk i
j dan aij = 1 untuk i=j, maka :
(Leon, 2001).
2.3.3 Operasi Pada Matriks
Berikut akan dijelaskan beberapa operasi matriks yang akan digunakan pada sistem.
2.3.3.1 Penjumlahan Matriks
Jika matriks A = (aij), matriks B = (bij), dan matriks C = (cij), maka : ...................................................(1) jika aij + bij = cij untuk setiap i dan j dan kedua matriks memiliki ukuran yang sama (Leon, 2001)
Contoh penjumlahan matriks 2x2 :
2.3.3.2 Perkalian matriks
Beberapa bentuk perkalian matriks akan dijelaskan sebagai berikut:
Universitas Sumatera Utara
i) Perkalian Matriks dengan Bilangan Skalar Jika α = bilangan skalar, matriks A = (aij), matriks B = (bij), maka : ...................................................(2) jika bij = α x aij untuk setiap i dan j (Leon, 2001). Contoh perkalian matriks 2x2 dengan bilangan skalar : 3x
ii) Perkalian Dua Matriks
Jika matriks A = (aij), matriks B = (bij), dan matriks C = (cij), maka : ...................................................(3) jika
untuk setiap i dan j (Leon, 2001).
Contoh perkalian dua matriks 2x2 : x
=
2.3.3.3 Matriks Transpose
Jika matriks A = (aij), matriks B = (bij), maka : ...................................................(4) jika bij = aji untuk setiap i dan j (Leon, 2001). Contoh Matriks Transpose 2x2 : =
2.3.3.4 Determinan Matriks
Jika matriks A2x2 =
, maka nilai determinan matriks adalah : ...................................................(5)
Universitas Sumatera Utara
Contoh determinan matriks 2x2 : = 2.4 – 1.3 = 5 (Leon, 2001).
Sifat Determinan :
1. Nilai determinan suatu matriks tidak berubah jika matriks tersebut ditranspose |AT| = |A| 2. Nilai determinan akan berubah tanda bila salah satu baris atau kolom dipertukarkan dengan baris atau kolom lain. 3. Nilai determinan akan berubah menjadi k kali jika setiap elemen suatu baris atau kolom dikalikan dengan k.
2.3.3.5 Minor dan Kofaktor
Berikut dapat dilihat penjelasan tentang operasi matriks minor dan kofakor.
i) Minor Minor dari sebuah matriks adalah matriks yang berasal dari matriks yang baris ke-i dan kolom ke-j dihilangkan (Leon, 2001). Contoh minor dari matriks 2x2 : = : dari matriks A, baris ke-1 dan kolom ke-1 dihilangkan, maka
=
]
: dari matriks A, baris ke-1 dan kolom ke-2 dihilangkan, maka
=
]
: dari matriks A, baris ke-2 dan kolom ke-1 dihilangkan, maka
=
]
: dari matriks A, baris ke-2 dan kolom ke-2 dihilangkan, maka
=
]
ii) Kofaktor
Universitas Sumatera Utara
Jika sebuah matriks
, maka
disebut matriks kofator
(Leon, 2001).
Contoh kofaktor dari matriks 2x2 : =
2.3.3.6 Invers Matriks
Jika matriks
Invers matriks
, matriks
diberi simbol
, maka
dikatakan invers
jika
=
atau .
Sifat Invers Matriks :
1. 2.
Cara menghitung Invers Matriks : =
...................................................(6)
Keterangan : Adjoint A = transpose dari matriks kofaktor A A-1 = invers matriks A Det (A) = determinan matriks A
Universitas Sumatera Utara
Catatan : Di dalam skripsi ini metode pencarian iinvers matriks dilakukan dengan metode : = (Det(A))-1
...................................................(7)
Dimana (Det(A))-1 dicari dengan operasi aritmatika modulo yang menghasilkan bilangan bulat. Cara mencari Invers Determian A : ...................................................(8) Keterangan : Det (A) = determinan matriks A (Det(A))-1 = invers dari determinan matriks A N = banyaknya karakter ataupun nilai yang akan dimodulokan (Leon, 2001).
2.3.4 Aritmatika Modulo
Aritmetika modulo (modular arithmetic) memainkan peranan yang penting dalam komputasi integer, khususnya pada aplikasi kriptografi. Operator yang digunakan pada aritmetika modulo adalah mod. Operator
mod, jika digunakan pada
pembagian bilangan bulat, memberikan sisa pembagian. Misalnya 23 dibagi 5 memberikan hasil = 4 dan sisa = 3, sehingga ditulis 23 mod 5 = 3. Definisi dari operator mod dinyatakan sebagai berikut : Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca “a modulo m”) memberikan sisa jika a dibagi dengan m. Dengan kata lain, a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m. Notasi: a mod m = r sedemikian sehingga a = mq + r, dengan 0 ≤ r < m.....................................(9) Bilangan m disebut modulus atau modulo, dan hasil aritmetika modulo m terletak di dalam himpunan {0,1, 2, …, m – 1} Jika a mod m = 0, maka dikatakan bahwa a adalah kelipatan dari m, yaitu a habis dibagi dengan m (Munir, 2006).
2.3.5 Relatif Prima
Universitas Sumatera Utara
Dua buah bilangan bulat a dan b dikatakan relatif prima jika PBB(a, b) = 1. Sebagai contoh, 20 dan 3 relatif prima sebab PBB(20, 3) = 1. Jika a dan b relatif prima, maka dapat ditemukan bilangan bulat m dan n sedemikian sehingga ma + nb = 1...................................................(10) Contoh: Bilangan 20 dan 3 adalah relatif prima karena PBB(20, 3) = 1, atau dapat ditulis: 2 . 20 + (–13). 3 = 1 dengan m = 2 dan n = –13 (Munir, 2006).
2.3.6 Balikan Modulo
Jika a dan m relatif prima (PBB(a, m) = 1) dan m > 1, maka kita dapat menemukan balikan (invers) dari a modulo m. Balikan dari a modulo m adalah bilangan bulat a-1 sedemikian sehingga a.a-1 ≡ 1 (mod m).............................................(11) Dari definisi relatif prima diketahui bahwa PBB(a,m) = 1 terdapat bilangan bulat p dan q sedemikian sehingga pa + qm = 1 yang mengimplikasikan bahwa pa + qm ≡ 1 (mod m) karena qm ≡ 0 (mod m), maka pa ≡ 1 (mod m)...............................................(12) Contoh: Tentukan balikan modulo dari 4 (mod 9) Jawab: Karena PBB(4,9) = 1, maka balikan dari 4 (mod 9) ada. Dari algoritma Euclidean diperoleh bahwa 9=2.4+1 -2 . 4 + 1 . 9 = 1 Dari persamaan terakhir ini diperoleh -2 adalah balikan dari 4 mod 9. Periksalah bahwa -2 . 4 ≡ 1 (mod 9)
(9 habis membagi -2 . 4 – 1 = -9)
2.4 Algoritma Hill Cipher
Universitas Sumatera Utara
Hill Cipher merupakan penerapan aritmatika modulo pada kriptografi. Teknik kriptografi ini menggunakan sebuah matriks persegi sebagai kunci yang digunakan untuk melakukan enkripsi dan dekripsi (Sasongko, 2005). Hill Cipher diciptakan oleh Lester S. Hill pada tahun 1929. Teknik kriptografi ini diciptakan dengan maksud untuk dapat menciptakan cipher (kode) yang tidak dapat dipecahkan menggunakan teknik analisis frekuensi. Hill Cipher tidak mengganti setiap abjad yang sama pada plaintext dengan abjad lainnya yang sama pada ciphertext karena menggunakan perkalian matriks pada dasar enkripsi dan dekripsinya (Sasongko, 2005). Hill Cipher yang merupakan polyalphabetic cipher dapat dikategorikan sebagai block cipher karena teks yang akan diproses akan dibagi menjadi blokblok dengan ukuran tertentu. Setiap karakter dalam satu blok akan saling mempengaruhi karakter lainnya dalam proses enkripsi dan dekripsinya, sehingga karakter yang sama tidak dipetakan menjadi karakter yang sama pula. (Sansani, 2008).
2.4.1 Teknik Dasar Hill Cipher
Dasar dari teknik Hill Cipher adalah aritmatika modulo terhadap matriks. Dalam penerapannya, Hill Cipher menggunakan teknik perkalian matriks dan teknik invers terhadap matriks. Kunci pada Hill Cipher adalah matriks n x n dengan n merupakan ukuran blok. Matriks K yang menjadi kunci ini harus merupakan matriks yang invertible, yaitu memiliki invers K-1 sehingga : ..................................................... (13) Keterangan: K = Kunci K-1 = Invers Kunci I = Matriks identitas Kunci harus memiliki invers matriks K yaitu K-1 akan dipakai melakukan dekripsi (Sansani, 2008).
Universitas Sumatera Utara
2.4.2 Teknik Enkripsi Hill Cipher
Proses enkripsi pada Hill Cipher dilakukan per blok plaintext. Ukuran blok tersebut sama dengan ukuran matriks kunci. Sebelum membagi teks menjadi deretan blok-blok, plaintext terlebih dahulu dikonversi menjadi angka (Sansani, 2008).
Secara matematis, proses enkripsi pada Hill Cipher adalah: ............................................. (14) Keterangan: C = Ciphertext K = Kunci P = Plaintext
2.4.3 Teknik Dekripsi Hill Cipher
Proses dekripsi pada Hill Cipher pada dasarnya sama dengan proses enkripsinya. Namun matriks kunci harus dibalik (invers) terlebih dahulu. Secara matematis, proses dekripsi pada Hill Cipher adalah : ................................................ (15)
2.5 Algoritma Knapsack
Algoritma Knapsack juga disebut algoritma kriptografi kunci publik. Keamanan algoritma ini terletak pada sulitnya memecahkan persoalan Knapsack (Knapsack Problem). Knapsack artinya karung/kantung. Karung mempunyai kapasitas muat terbatas. Barang-barang dimasukkan ke dalam karung hanya sampai batas kapasitas maksimum karung saja (Marta, 2006).
2.5.1 Bentuk Knapsack
Ada dua macam bentuk atau tipe Knapsack yaitu:
Universitas Sumatera Utara
1. General Knapsack / Normal Knapsack diberikan bobot Knapsack adalah M. Diketahui n buah objek yang masing-masing bobotnya adalah w1, w2, ... , w3. Tentukan nilai bi sedemikian sehingga ........................................ (16) Yang dalam hal ini,
bernilai 0 atau 1. Jika
ke dalam knapsack, sebaliknya jika
=1, berarti objek i dimasukkan
=0, objek i tidak dimasukkan.
Dalam teori algoritma, persoalan knapsack termasuk ke dalam tidak dapat dipecahkan dalam orde waktu polinomial. Sehingga algoritma ini hanya dapat digunakan untuk enkripsi tetapi tidak dirancang untuk dekripsi (Marta, 2006).
2. Superincreasing Knapsack Superincreasing Knapsack adalah persoalan Knapsack yang dapat dipecahkan dalam orde polinimial. Ini adalah persoalan Knapsack yang mudah sehingga tidak disukai untuk dijadikan sebagai algoritma kriptografi yang kuat. Jika senarai bobot disebut barisan superincreasing, maka kita dapat membentuk Superincreasing Knapsack. Barisan Superincreasing adalah suatu barisan di mana setiap nilai di dalam barisan lebih besar daripada jumlah semua nilai sebelumnya.
Solusi dari Superincreasing Knapsack (yaitu
) mudah dicari
sebagai berikut : 1. Jumlahkan semua bobot di dalam barisan. 2. Bandingkan bobot total dengan bobot terbesar di dalam barisan. Jika bobot terbesar lebih kecil atau sama dengan bobot total, maka bobot dapat dimasukkan ke dalam knapsack, jika tidak, maka bobot tidak dimasukkan. 3. Kurangi bobot total dengan bobot yang telah dimasukkan, kemudian bandingkan bobot total sekarang dengan bobot terbesar selanjutnya. Demikian seterusnya sampai seluruh bobot di dalam barisan selesai dibandingkan. 4. Jika bobot total menjadi nol, maka terdapat solusi persoalan Superincreasing Knapsack, tetapi jika tidak nol, maka tidak ada solusinya (Marta, 2006).
Universitas Sumatera Utara
Algoritma Superincreasing Knapsack adalah algoritma yang lemah, karena ciphertext dapat didekripsi menjadi plaintext secara mudah dalam waktu polinomial. Algoritma non-superincreasing knapsack atau normal knapsack adalah kelompok algoritma yang sulit (dari segi komputasi) karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya. Namun,
Superincreasing
Knapsack
dapat
dimodifikasi
menjadi
non-
Superincreasing Knapsack dengan menggunakan kunci publik (untuk enkripsi) dan kunci privat (untuk dekripsi). Kunci publik merupakan barisan nonSuperincreasing sedangkan kunci privat tetap merupakan barisan superincreasing. Hasil modifikasi tersebut dinamakan algoritma Merkle-Helman karena modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle. Modifikasi dilakukan dengan perhitungan aritmatika modulo (Munir, 2006).
2.5.2 Penggunaan Teori Bilangan Bulat Pada Sistem Kriptografi MerkleHellman
2.5.2.1 Penggunaan Arimatika Modulo Dan relatif Prima Pada Pembangkitan Kunci Merkle-Hellman
Untuk mengenkripsikan n-bit pesan, caranya adalah sebagai berikut: a. Tentukan barisan Superincreasing. w = (w1, w2, ..., wn) dari bilangan bukan nol b. Pilih salah satu bilangan integer q sehingga memenuhi
dan salah
satu angka integer r secara acak sehingga PBB(r,q) =1 (r relatif prima dengan q). Bilangan q dipilih dengan cara di atas untuk memastikan keunikan dari ciphertext. Jika bilangan yang digunakan lebih kecil, lebih dari satu plaintext akan dienkripsi menjadi ciphertext yang sama. Sedangkan r harus tidak memiliki persekutuan dengan q karena jika tidak, maka balikan modulo dari r mod q tidak dapat ditemukan. Bilangan yang merupakan balikan modulo dari r mod q adalah penting agar memungkinkan dekripsi. c. Kemudian hitung barisan d. Kunci publik adalah
yang memenuhi , sedangkan kunci privat adalah w barisan
superincreasing semula (Munir, 2006).
Universitas Sumatera Utara
2.5.2.2 Penggunaan Balikan Modulo Pada Dekripsi Enkripsi Knapsack Terdapat n-bit pesan α = (α1, α2, ..., αn) dengan αi adalah bit ke-i dari pesan dan αi ∈{0, 1}.
i) Teknik Enkripsi Knapsack
Cara untuk mengenkripsi pesan tersebut adalah sebagai berikut: a. Pilih
himpunan
berkorespondensi
bagian
dari
normal
Knapsack (kunci publik) yang
dengan 1 pada plainteks dan mengabaikan bagian yang
berkorespondensi dengan 0 pada plainteks. b. Elemen dari himpunan bagian yang telah dipilih dijumlahkan dan hasilnya menjadi ciphertext (Marta, 2006) ..................................................(17)
ii) Teknik Dekripsi Knapsack
Untuk mendekripsi ciphertext c, penerima harus menemukan pesan dalam bentuk sehingga memenuhi Nilai βi dipilih sehingga dekripsi mudah dilakukan jika kunci privat (w, q, r) diketahui. Hal yang penting dari dekripsi adalah menemukan suatu bilangan integer n-1 yang merupakan balikan modulo (modular inverse) dari r modulo q. Ini berarti n-1 memenuhi persamaan n-1.r mod q = 1 atau n-1.r ≡ 1 (mod q) atau terdapat bilangan integer k sehingga n-1.r = kq + 1. Karena r dipilih sehingga memenuhi persamaan PBB(r,q) = 1, maka s dan k mungkin ditemukan dengan menggunakan perhitungan balikan
modulo yang memenuhi sr ≡ 1 (mod q).
Kekongruenan ini dapat dihitung dengan cara yang sederhana sebagai berikut: n-1 = (1 + kq)/r.............................................(18) dimana k merupakan sembarang bilangan bulat.
Universitas Sumatera Utara
Kalikan setiap kriptogram dengan n-1 mod m, lalu nyatakan hasil kalinya sebagai penjumlahan elemen-elemen kunci privat untuk memperoleh
plainteks
dengan menggunakan algoritma pencarian solusi superincreasing knapsack (Marta, 2006).
Bentuk persamaan dekripsi algoritma Knapsack adalah sebagai berikut : .............................................(19) Keterangan : plainkey (pada sistem disebut session key) = balikan modulo = cipherkey 2.6 File
File adalah entitas dari data yang disimpan dalam berkas sistem yang dapat diakses dan diatur oleh pengguna. Sebuah file memiliki nama yang unik beserta atributnya, yang akan disimpin dalam folder atau direktori suatu dirve. Setiap drive pada penyimpanan diberikan identitas berupa huruf . pada umunya hard disk utama yang merupakan lokasi penyimpan file diberi nama dirve “C”. adapun partisi ataupun penyimpanan media lain, makan akan diberikan huruf secara berurutan setelah “C”. Secara visual, file merupakan dokumen-dokumen yang disimpan dalam sebuah arsip yang sering identik dengan kertas-kertas kerja yang masing-masing memiliki fungsi dan makna tersendiri. Sering dengan perkembangan teknologi komputerisasi, kini file tidak lagi identik dengan tumpukan kertas dalam arsip. Sebuah file menjadi dokumen yang secara visual tampak maya tetapi bisa disimpan dan bisa juga direalisasikan dalam bentuk nyata pada lembaran kertas. File dalam dunia komputerisasi tidak hanya sebatas pada dokumen berupa teks saja, tetapi bisa juga gambar, baik sketsa, desain, grafik, audio, video, dan lain sebagainya. Keragaman jenis file tersebut berpengaruh pada beragamnya format
Universitas Sumatera Utara
file. Format file merupakan suatu cara khusus untuk mengkodekan informasi yang disimpan dalam file computer. Selain format file, ada juga yang disebut dengan file extension. Secara sekilas format file tidak jauh berbeda dengan file extension, terutama dalam hal penyebutan nama jenis file. Namun, jika ditelisik secara mendalam, format file berbeda dengan file extension. File extension umumnya terdiri atas tiga atau lebih karakter yang ditempatkan pada akhir nama sebuah file. Adapun fungsi file extension, yaitu membantu mempermudah sistem operasi computer untuk mengidentifikasi informasi data yang terdapat dalam file beserta dengan aplikasi atau program yang terkait dalam file tersebut. Format file cenderung mengarah pada nama jenis file, sedangkan file extension merupakan salah satu metode untuk mengidentifikasi jenis file. Secara lebih jauh, file umumnya dituliskan dalam huruf capital, sedangkan file extension dituliskan dalam huruf kecil yang mengikuti nama file. Sebagai contoh, misalnya untuk jenis video salah satu formatnya adalah flv sehingga seringkali ditulis file FLV. Sementara untuk menunjukkan extension untuk format file tersebut adalah .flv (Enterprise, 2010).
2.6.1 Jenis-Jenis File
Berikut beberpa jenis –jenis file yaitu file dokumen, file grafik dan multimedia, dan file kompresi dapat dilihat sebagai berikut.
2.6.1.1 File Dokumen
Kategori file dokumen yang dimaksud dalam hal ini adalah file-file yang berisi teks. File teks merupakan file komputer yang tersusun atas rangkaian baris teks.
Jenis file yang termasuk dalam kategori file dokumen beberapa diantaranya adalah sebagai berikut : 1. File dokumen office 1997-2003
Universitas Sumatera Utara
Beberapa format file dalam dokumen office 1997-2003 seperti file DOC (.doc) pada Microsoft Word, file XLS (.xls) pada Microsoft Excel, file PPT (.ppt) pada Microsoft Power Point, dan lain-lain. 2. File dokumen office 2007-Sekarang Beberapa format file dokumen office 2007-Sekarang seperti file DOCX (.docx) pada Microsoft Word), file XLSX (.xlsx) pada Microsoft Excel, file PPTX (.pptx) pada Mincrosoft Power Point, dan lain-lain. Adapun file dokumen lain seperti file PDF (.pdf), file TXT (.txt), file RTF (.rtf), dan lain-lain (Enterprise, 2010). 2.6.1.2 File Grafik dan Multimedia
Kategori file grafik dan multimedia mengarah pada jenis-jenis file image atau gambar, video, dan audio atau musik. Banyak jenis file yang termasuk dalam kategori ini adalah sebagai berikut : 1. File JPG (.jpg) merupakan format kompresi image atau gambar yang distandardisasi ole Joint Photographic Ex[erts Group (JPEG). Adapun file gambar lain seperti file PNG (.png), file GIF (.gif), file BMP (.bmp), dan lain-lain. 2. File FLV (.flv) merupakan salah satu format file video berhubungan dengan Flash-compatible file video yang diekspor Flash Vidio Explorer plug-in termasuk Adobe Flash atau program lain yang support terhadap file ini. Adapaun format file video lain adalah seperti Audi Vidio Interleaved (AVI) dimana file extensionnya berupa .avi, file 3GP (.3gp), dan lain-lain. 3. File MP3 (.mp3) merupakan salah satu format file audio yang tidak lepas dari format file Motion Pictures Expert Group (MPEG). Sebelum munculnya MP3, telah ada format file audio digital yang menggunakan teknologi kompresi seperti, AAC, Dolby, Windows Mwdia Audio (WMA), Real Audio, dan lain-lain (Enterprise, 2010).
2.6.1.3 File Kompresi
Universitas Sumatera Utara
File kompresi yang dimaksdukan adalah file-file yang digabungkan menjadi satu dengan tujuan untuk memperoleh ukuran file yang lebih kecil dibandingkan dengan file lainnya. Berikut beberapa file yang termasuk dalam kategori kompresi file : 1. File ZIP (.zip) File ZIP adalah format kompresi file yang paling tua. ZIP menggabungkan beberapa file ke dalam satu file. 2. File RAR (.rar) Standar kompresi RAR mengkompres file 15 persen lebih kecil daripada ZIP. Program RAR dan WinRAR (untuk windows) tidak hanya mengkompres file dalam bentuk format RAR, tetapi juga membaca file ZIP dan beberapa format file kompresi lainnya (Enterprise, 2010).
Selain beberapa jenis file di atas, masih banyak jenis file yang tidak disebutkan, seperti file aplikasi berupa file EXE (.exe), , file photoshop berupa file PSD (.psd), file pemograman berupa file PHP (.php), HTML (.html), ASP (.asp), dan lain-lain.
2.7 Penelitian Terkait
1. Penelitian oleh Silvia Annelis menggunakan teknik kriptografi hibrida dengan menggunakan kombinasi dua algoritma Caesar Cipher dan RSA untuk pengkodean pesan. Algoritma Caesar Cipher merupakan algoritma kunci simetri yang digunakan untuk mengkodekan pesan dan algoritma RSA merupakan algoritma kunci asimetri yang digunakan untuk mengkodekan kunci simetri Caesar Cipher. Teknik metode krptografi hibrida ini akan lebih aman digunakan jika dibandingkan dengan menggunakan hanya satu algoritma sehingga penulis menggunakan algoritma yang berbeda untuk kriptografi hibrida. 2. Penelitian oleh Eko Ariwibowo menggunakan algoritma kunci asimetri Elgmal untuk keamanan dokumen office. Pada penelitian tersebut hanya sebatas mengamankan dokumen office dan menggunakan satu algoritma
Universitas Sumatera Utara
sehingga penulis menambahkan pengamanan pada file yang sudah diuji dengan algoritma yang berbeda. 3. Penelitian oleh Hendry Yuandi menggunakan metode Hill (algoritma Hill Cipher) untuk merancang perangkat lunak pengenkrpsian citra .bmp dan .jpg. Pada penelitian tersebut hanya mengenkripsi sebatas format file citra dengan dua file ekstensi yang berbeda sehingga penulis menambahkan pengamanan pada semua file dengan menggunakan algoritma yang sama yaitu Hill Cipher.
Universitas Sumatera Utara