2.1.1 Istilah dalam Kriptografi - Sistem Kriptografi Hybrid (Hill Cipher Dan Knapsack) Pada Pengmanan File

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 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 :

  E k (P) = C Dan fungsi dekripsi D memetakan C ke P,

  D (C) = P

  k

  Karena proses enkripsi kemudian dekripsi mengembalikan pesan ke pesan asal, maka kesamaan berikut benar,

  D (E (P)) = P

  k k

  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)

  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.

  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 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 Ciphertext Plaintext

  

Enkripsi Dekripsi

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).

  Sketsa ataupun gambaran umum kunci simetri terdapat pada gambar 2.2 di bawah:

  Kunci Privat Kunci Publik Plaintext Ciphertext Plaintext

  Enkripsi Dekripsi

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:

  

Plain File Im?.<)* Cipher Plain File

Plain File gT6K8@ Dengan Kunci Hill Plain File

Plain File 8m7$gY Dekripsi Cipherfile Plain File

File Cipherfile File Enkripsi File Dengan Kunci Hill Cipher

PENGIRIM PENERIMA

Cipher Dengan Kunci Pertukaran Kunci Dengan Kunci

Enkripsi Kunci Hill Dekripsi Cipherkey

Publik Knapsack Privat Knapsack

Session Key Session Key

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.

  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 kolom- kolom.

  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 : merupakan matriks 2x2, merupakan matriks 3x3 (Leon, 2001).

2.3.2.2 Matriks Satuan (Identitas)

  Jika a ij = 0 untuk i j dan a ij = 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 = (a ), matriks B = (b ), dan matriks C = (c ), maka :

  ij ij ij ...................................................(1)

  jika a ij + b ij = c ij 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:

  i) Perkalian Matriks dengan Bilangan Skalar

  ), matriks B = (b ), maka : Jika α = bilangan skalar, matriks A = (a ij ij

  ...................................................(2) jika b ij ij untuk setiap i dan j (Leon, 2001).

  = α x a Contoh perkalian matriks 2x2 dengan bilangan skalar : 3 x

  ii) Perkalian Dua Matriks

  Jika matriks A = (a ), matriks B = (b ), dan matriks C = (c ), maka :

  ij ij ij ...................................................(3) jika untuk setiap i dan j (Leon, 2001).

  Contoh perkalian dua matriks 2x2 : x =

  2.3.3.3 Matriks Transpose

  Jika matriks A = (a ij ), matriks B = (b ij ), maka :

   ...................................................(4) jika b = a untuk setiap i dan j (Leon, 2001). ij ji

  Contoh Matriks Transpose 2x2 : =

  2.3.3.4 Determinan Matriks

  Jika matriks A 2x2 = , maka nilai determinan matriks adalah :

  ...................................................(5) Contoh determinan matriks 2x2 : = 2.4 – 1.3 = 5 (Leon, 2001).

  Sifat Determinan :

  1. Nilai determinan suatu matriks tidak berubah jika matriks tersebut

  T

  ditranspose |A | = |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

  Jika sebuah matriks , maka disebut matriks kofator (Leon, 2001).

  Contoh kofaktor dari matriks 2x2 : =

2.3.3.6 Invers Matriks

  Jika matriks , matriks , maka dikatakan invers jika = Invers matriks diberi simbol atau .

  Sifat Invers Matriks : 1.

  2. Cara menghitung Invers Matriks :

   = ...................................................(6)

  Keterangan : Adjoint A = transpose dari matriks kofaktor A

  • 1

  A = invers matriks A Det (A) = determinan matriks A

  Catatan : Di dalam skripsi ini metode pencarian iinvers matriks dilakukan dengan metode : -1

   = (Det(A)) ...................................................(7)

  • 1

  Dimana (Det(A)) dicari dengan operasi aritmatika modulo yang menghasilkan bilangan bulat. Cara mencari Invers Determian A :

   ...................................................(8)

  Keterangan : Det (A) = determinan matriks A

  • 1

  (Det(A)) = 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

  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

  • -1 bilangan bulat a sedemikian sehingga -1

  a.a ≡ 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

  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 blok- blok 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

  • 1

  matriks yang invertible, yaitu memiliki invers K sehingga :

   ..................................................... (13)

  Keterangan:

  K = Kunci -1 K = Invers Kunci I = Matriks identitas

  • 1

  Kunci harus memiliki invers matriks K yaitu K akan dipakai melakukan dekripsi (Sansani, 2008).

  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:

  1. General Knapsack / Normal Knapsack diberikan bobot Knapsack adalah M.

  Diketahui n buah objek yang masing-masing bobotnya adalah w

  1 , w 2 , ... , w 3 .

  Tentukan nilai bi sedemikian sehingga

   ........................................ (16)

  Yang dalam hal ini, bernilai 0 atau 1. Jika =1, berarti objek i dimasukkan ke dalam knapsack, sebaliknya jika =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).

  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 non-

  Superincreasing 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 Merkle- Hellman

  

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 = (w 1 , w 2 , ..., w n ) 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 yang memenuhi

  d. Kunci publik adalah , sedangkan kunci privat adalah w barisan superincreasing semula (Munir, 2006).

2.5.2.2 Penggunaan Balikan Modulo Pada Dekripsi Enkripsi Knapsack

  Terdapat n-bit pesan n

  α = (α1, α2, ..., α ) 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 bagian dari normal Knapsack (kunci publik) yang berkorespondensi 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

  • -1 integer n yang merupakan balikan modulo (modular inverse) dari r modulo q. Ini -1 -1 -1 berarti n memenuhi persamaan n .r mod q = 1 atau n .r -1

  ≡ 1 (mod q) atau terdapat bilangan integer k sehingga n .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: -1

  n = (1 + kq)/r.............................................(18) dimana k merupakan sembarang bilangan bulat.

  • -1

  Kalikan setiap kriptogram dengan n 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

  

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

  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

  

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 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.