BAB II LANDASAN TEORI 2.1 Kriptografi 2.1.1 Definisi Kriptografi - Implementasi Pengamanan File Text Dengan Algoritma Kriptografi Kanpsak dan Algoritma Steganografi FOF First of File)

     

BAB II LANDASAN TEORI

2.1 Kriptografi

  2.1.1 Definisi Kriptografi

  Kriptografi (cryptography) berasal dari Bahasa Yunani cprytos artinya “secret atau

  

hidden” (rahasia), dan graphein artinya “writing” (tulisan). Jadi, kata kriptografi dapat

  diartikan sebagai “secret writing” (tulisan rahasia). Selain pengertian tersebut, kriptografi juga dapat diartikan sebagai ilmu dan seni untuk menjaga keamanan pesan yang dilakukan oleh cryptographer, sedangkan cryptanalysis adalah suatu ilmu dan seni membuka pesan yang diacak. Kata “seni” didalam definisi tersebut berasal dari fakta sejarah bahwa pada masa-masa awal sejarah kriptografi, setiap orang mempunyai cara- cara yang unik untuk merahasiakan pesan. Cara-cara unik tersebut berbeda-beda pada setiap pelaku kriptografi. Setiap cara menulis pesan rahasia, pesan tersebut mempunyai nilai estetika tersendiri sehingga kriptografi berkembang menjadi sebuah seni merahasiakan pesan [7].

  2.1.2 Terminologi

  Dalam Kriptografi terdapat beberapa terminologi atau istilah yang penting untuk diketahui. Istilah tersebut adalah sbb: 1)

  Pesan, Plaintext, dan Ciphertext

     

  Pesan adalah data atau informasi yang dapat dibaca dan dimengerti maknanya. Pesan asli biasanya disebut plaintext. Agar pesan tidak bisa dimengerti maknanya oleh pihak yang tidak berwewenang, maka pesan perlu disandikan ke bentuk lain yang tidak dapat dipahami. Bentuk pesan yang tersandi disebut ciphertext.

  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. Entitas disini dapat berupa orang, mesin (komputer), kartu kredit, dsb.

  3) Enkripsi dan dekripsi

  Kriptografi mempunyai dua bagian yang penting, yaitu enkripsi dan dekripsi. Enkripsi adalah proses penyandian dari pesan asli (plaintext) menjadi pesan yang tidak dapat diartikan seperti pesan aslinya (ciphertext) dengan menggunakan aturan tertentu, sedangkan dekripsi merupakan kebalikannya yaitu mengubah pesan yang sudah disandikan menjadi pesan aslinya. Secara sederhana istilah-istilah diatas dapat digambarkan sebagai berikut:

  Kunci Kunci Plaintext Ciphertext Plaintext

  

Enkripsi Dekripsi

     

Gambar 2.1 Skema Enkripsi dan Dekripsi

  4) Cipher dan kunci

  Algoritma kriptografi disebut juga cipher yaitu aturan untuk enchipering dan dechipering atau fungsi matematika yang digunakan untuk enkripsi dan dekripsi. Keamanan algoritma kriptografi sering diukur dari banyaknya kerja (work) yang dibutuhkan untuk memecahkan ciphertext menjadi plaintext tanpa mengetahui kunci

     

  yang digunakan. Kunci merupakan parameter yang digunakan untuk transformasi

enciphering dan deciphering. Kunci biasanya berupa string atau deretan bilangan.

  5) Sistem kriptografi

  Kriptografi membentuk sebuah sistem yang dinamakan sistem kriptografi. Sistem kriptografi (cryptosystem) terdiri dari algoritma kriptografi, semua plaintext,

  ciphertext, dan kunci.

  6) Penyadap (eavesdropper) Penyadap adalah orang yang mencoba menangkap pesan selama ditransmisikan.

  Tujuan penyadap adalah untuk memperoleh informasi sebanyak-banyaknya mengenai sistem kriptografi yang digunakan untuk berkomunikasi dengan tujuan untuk memecahkan ciphertext menjadi plaintext.

  7) Kriptanalisis dan kriptologi

  Kriptanalisis (cryptanalysis) adalah ilmu dan seni untuk memecahkan ciphertext menjadi plaintext tanpa mengetahui kunci yang digunakan. Pelakunya disebut kriptanalis. Jika seorang kriptografer (cryptographer) mentransformasikan plaintext menjadi ciphertext dengan suatu algoritma dan kunci, maka sebaliknya seorang kriptanalis akan berusaha untuk memecahkan ciphertext tersebut untuk menemukan

  plaintext atau kunci. Studi mengenai kriptografi dan kriptanalisis disebut dengan Kriptologi (cryptology) [7].

2.1.3 Tujuan Kriptografi

  Kriptografi bertujuan untuk memberi layanan keamanan (aspek-aspek keamanan) sebagai berikut:

  1. Kerahasiaan (confidentiality) adalah layanan yang digunakan untuk menjaga isi informasi dari semua pihak kecuali pihak yang memiliki otoritas terhadap informasi tersebut. Untuk menjaga keamanan informasi dapat dilakukan dengan

     

  pengamanan secara fisik hingga penggunaan algoritma matematika yang membuat informasi tidak dapat dipahami.

  2. Integritas data (data integrity) adalah layanan yang menjamin bahwa pesan masih utuh atau belum pernah dimanipulasi selama pengiriman. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi pesan oleh pihak-pihak yang tidak berhak, seperti penyisipan, penghapusan, dan pensubsitusian data lain kedalam pesan yang sebenarnya.

  3. Otentikasi (authentication) adalah layanan yang berhubungan dengan identifikasi, baik mengidentifikasikan 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. Pesan yang dikirim melalui saluran komunikasi juga harus diotentikasi asalnya. 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.

  4. Nirpenyangkalan (non-repudiation) adalah layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan. [7].

2.2 Kriptografi Simetri dan Asimetri

  Berdasarkan jenis kuncinya algoritma kriptografi terdiri dari dua jenis yaitu:

2.2.1 Algoritma Simetris (Konvensional)

  Algoritma simetris (symmetric cryptography) adalah algoritma yang menggunakan kunci enkripsi yang sama dengan kunci dekripsinya, sehingga algoritma ini disebut juga sebagai

     

single key algorithm. Algoritma ini disebut juga konvensional karena algoritma jenis ini

  biasa digunakan sejak berabad-abad yang lalu. Sebelum melakukan komunikasi, pengirim dan penerima pesan harus menyetujui suatu kunci tertentu yang sama untuk dipakai secara bersama. Keamanan sistem kriptografi simetri tergantung pada kerahasiaan kunci karena membocorkan kunci berarti orang lain bisa mengenkripsi dan mendekripsi pesan. Agar komunikasi tetap aman, maka keberadaan kunci harus tetap dirahasiakan dari pihak yang tidak berkepentingan dengan cara pengirim harus memastikan bahwa jalur yang digunakan dalam pendistribusian kunci adalah jalur yang aman atau memastikan bahwa pihak yang ditunjuk membawa kunci untuk pertukaran data adalah pihak yang dapat dipercaya.

  Algoritma-algoritma yang termasuk dalam kriptografi simetris adalah semua algoritma kriptografi klasik seperti hill cipher, vigenere cipher, playfair cipher, dll. Beberapa algoritma kriptografi modern juga termasuk kriptografi simetris, diantaranya adalah IDEA, DES (Data Encryption Standard), Blowfish, Twofish, Tripel DES, Serpent,

  AES (Advanced Encryption Standard), RC2, RC4, RC5, RC6, dll. [7].

  Proses enkripsi-dekripsi algoritma kunci simetris dapat dilihat pada gambar dibawah ini: Kunci Privat,K Kunci Privat,K

  Enkripsi Dekripsi    

  Plaintext(P) Ciphertext(C) Plaintext(P)

  E (P)=C D (C)=P k k    

Gambar 2.2 Skema Kriptografi Simetris

2.2.2 Algoritma Asimetris (Kunci Publik)

  Kriptografi asimetris (asymmetric cryptography) adalah algoritma yang menggunakan kunci yang berbeda untuk proses enkripsi dan dekripsi. Kunci enkripsi dapat disebarkan kepada umum yang dinamakan sebagai kunci publik (public key), sedangkan kunci

     

  dekripsi disimpan untuk digunakan sendiri dan dinamakan sebagai kunci pribadi (private

  

key). Oleh karena itulah, kriptografi ini dikenal pula dengan nama kriptografi kunci

publik (public key cryptography).

  Pada kriptografi jenis ini, setiap orang yang berkomunikasi mempunyai sepasang kunci, yaitu kunci privat dan kunci publik. Prosesnya, pengirim (sender) mengenkripsi pesan dengan menggunakan kunci publik sipenerima pesan (receiver) dan hanya sipenerima pesanlah yang dapat mendekripsi pesan karena hanya ia yang mengetahui kunci privatnya sendiri. Contoh algoritma yang termasuk algoritma kriptografi kunci publik diantaranya adalah RSA, Elgamal, DSA, Knapsack, dll [7]. Proses enkripsi dan dekripsi algoritma kunci asimetris dapat dilihat pada gambar dibawah ini:

  Kunci Publik,K1 Kunci Privat,K2

  Enkripsi Dekripsi    

  Plaintext(P) Ciphertext(C) Plaintext(P)

  

E (P)=C D (C)=P

k1 k2    

Gambar 2.3 Skema Kriptografi Asimetris

2.3 Landasan Matematika Kriptografi

2.3.1 Aritmetika Modulo

  Misalkan a adalah bilangan bulat dan m adalah bilangan bulat > 0. Operasi a mod m (dibaca “a modulo m”) memberikan sisa r jika a dibagi dengan m atau ditulis dengan a

  mod m = r sedemikian sehingga : a = mq + r, dengan 0 ≤ r < m………………………………..(2.1)

  Contoh: 23 mod 5 = 3 (23 = 5 ⋅ 4 + 3) 27 mod 3 = 0 (27 = 3 ⋅ 9 + 0)

     

  6 mod 8 = 6 (6 = 8 ⋅ 0 + 6) 0 mod 12 = 0 (0 = 12

  ⋅ 0 + 0)

  • – 41 mod 9 = 4 (–41= 9 (–5) + 4), karena a negatif, bagi |a| dengan m mendapatkan

  ’

  sisa r . Maka a mod m = m – r’ bila r’

  ≠ 0. Jadi |– 41| mod 9 = 5, sehingga –41 mod 9 = 9 – 5 = 4.

  2.3.2 Teorema Euclidean

  Misalkan m dan n adalah dua buah bilangan bulat dengan syarat n>0. Jika m dibagi dengan n maka terdapat dua buah bilangan bulat unik q yang merupakan hasil bagi

  (quotient) dan r adalah sisa (remainder), sedemikian sehingga: m = nq + r, dengan 0 ≤ r ≤ n ……………………………………….…(2.2)

  Contoh : 15 dibagi dengan 12, hasilnya adalah 1 dengan sisa 3 atau dapat ditulis dengan: 15 = 12. 1 + 3.

  2.3.3 Relatif Prima

  Dua buah bilangan bulat a dan b dikatakan relatif prima jika GCD(a,b) = 1. Jika a dan b relatif prima, maka terdapat bilangan bulat m dan n sedemikian sehingga:

  ma + nb = 1………………………...….……………………………....(2.3)

  Contoh: 20 dan 3 relatif prima sebab GCD(20,3) = 1 atau dapat ditulis dengan 2.20 + (-13).3 = 1, dengan m = 2 dan n = -13. Tetapi 20 dan 5 tidak relatif prima karena GCD(20,5) ≠ 1 sehingga 20 dan 5 tidak dapat dinyatakan dengan m.20 + n.5 = 1.

  2.3.4 Permutasi (Transposisi)

  Permutasi dari n unsur yang berbeda x

  1 , x 2 ,..., x n adalah pengurutan dari n unsur tersebut tanpa pengulangan. Pada permutasi identitas karekter tetap, tetapi posisi diacak.

     

  Contoh: Permutasi dari huruf ABC adalah ABC, ACB, BAC, BCA, CAB, CBA. Sehingga terdapat 6 permutasi dari huruf ABC.

2.4 Algoritma Kriptografi Knapsack

  Algoritma knapsack adalah algoritma kunci publik yang keamanannya terletak pada sulitnya memecahkan persoalan knapsack (knapsack problem). Permasalahan dalam algoritma knapsack adalah bagaimana menempatkan benda-benda agar dapat dimasukkan ke dalam suatu tempat dengan kapasitas tertentu secara maksimal. Permasalahan ini dijuluki knapsack (ransel) karena hal ini dapat dianalogikan dengan masalah memilih sekumpulan benda-benda yang bisa dimuatkan dengan pas kedalam ransel [5].

  2.4.1 Knapsack Problem

Knapsack Problem merupakan algoritma untuk menghitung nilai s, jika diberikan integer

  positif a

  1 , …,a n , dan s merupakan subset dari jumlah integer positif (a 1 ,…,a n ). Kemudian

  ditentukan nilai x j , sedemikian sehingga: ………....…….(2.4)

  ∑     , 0,1 , , 1 …

  Dalam hal ini, x j bernilai 0 atau 1. Jika x j = 1, berarti objek j dimasukkan ke dalam

  

knapsack, sebaliknya jika x j = 0, objek j tidak dimasukkan. Knapsack problem termasuk

  ke dalam kelompok NP-Complete, yang artinya tidak dapat dipecahkan dalam orde waktu polinomial (sukar untuk dikomputasi) [9].

  2.4.2 Algoritma Knapsack Sederhana

  Ide dasar dari algoritma kriptografi knapsack adalah mengkodekan pesan sebagai rangkaian solusi dari knapsack problem. Setiap a j di dalam knapsack problem merupakan kunci privat, sedangkan bit-bit plaintext dinyatakan sebagai x j .

     

  Contoh 1: Misalkan n = 4 dan a

  1 = 1, a 2 = 5, a 3 = 7, a

4 = 10

Plaintext : 11100101 01100000

Plaintext dibagi menjadi blok yang panjangnya n, kemudian setiap bit di dalam blok

  dikalikan dengan x j yang berkorepsonden sesuai dengan persamaan (1).

  Blok plaintext ke-1: 1110 Knapsack : 1, 5, 7, 10

  Kriptogram : (1 * 1) + (1 * 5) + (1 * 7) = 13

  Blok plaintext ke-2: 0101 Knapsack : 1, 5, 7, 10

  Kriptogram : (1 * 5) + (1 * 10) = 15

  Blok plaintext ke-3: 0110 Knapsack : 1, 5, 7, 10

  Kriptogram : (1 * 5) + (1 * 7) = 12

  Blok plaintext ke-4: 0000 Knapsack : 1, 5, 7, 10

  Kriptogram : 0 Jadi, ciphertext yang dihasilkan: 13 15 12 0

  Tetapi algoritma ini tidak dapat digunakan untuk mendekripsi ciphertext yang dihasilkan. Misalnya, jika diberikan kriptogram = 28, maka tentukan x

  1 ,x 2 ,…,x

  6

  sedemikian, sehingga 28= x

  1 +5x 2 +6x 3 +11x 4 +14x 5 +20x 6 . Solusi persamaan tersebut tidak

  dapat dipecahkan dalam orde waktu polinomial dengan semakin besarnya n (dengan catatan barisan nilai tidak dalam urutan menaik). Namun, hal inilah yang dijadikan sebagai kekuatan algoritma knapsack [7].

2.4.3 Superincreasing Knapsack Problem

  

Superincreasing Knapsack Problem adalah suatu barisan di mana setiap nilai di dalam

  barisan lebih besar daripada jumlah semua nilai sebelumnya atau a j

  1 +a 2 +…+a j-1 .

  ≥ a

  Sebagai contoh, {1, 3, 6, 13, 27,52} merupakan barisan superincreasing, sedangkan {1, 3,

     

  4, 9, 15, 25} bukan barisan superincreasing. Algoritma superincreasing knapsack adalah algoritma yang lemah karena ciphertext dapat didekripsi menjadi plaintext-nya secara mudah dalam orde polinomial O(n) [8]. Langkah-langkah untuk memecahkan masalah dari superincreasing knapsack adalah sebagai berikut:

  1. Bandingkan nilai total dengan nilai terbesar di dalam barisan. Jika nilai terbesar lebih kecil atau sama dengan nilai total, maka ia dimasukkan ke dalam knapsack, jika tidak, maka ia tidak dimasukkan.

  2. Kurangi nilai total dengan nilai yang telah dimasukkan, kemudian bandingkan nilai total sekarang dengan nilai terbesar selanjutnya. Demikian seterusnya sampai seluruh nilai di dalam barisan selesai dibandingkan.

  3. Jika nilai total menjadi nol, maka terdapat solusi persoalan superincreasing knapsack, tetapi jika tidak nol, maka tidak ada solusinya. Contoh 2: Misalkan bobot-bobot yang membentuk barisan superincreasing adalah a = [2, 3, 6, 13, 27, 52], dan diketahui bobot knapsack (S) = 70. Yang akan dicari adalah x

  1 , x 2 , …, x

  6

  sedemikian, sehingga 70 = 2x

  1 + 3x 2 + 6x

3 + 13x

4 + 27x 5 + 52x 6 .

  Caranya adalah seperti pada tabel berikut:

Tabel 2.1 Contoh Solusi Superincreasing Knapsack

  J a j S S ≥ a j x j S S-a j * x j 6 52 70 True x

  6 =1 18

  5 27 18 False x

  5 =0 18

  4 13 18 True x

  4 =1 5

  3 6 5 False x

  3 =0 5

  2 3 5 True x

  2 =1 2

  1 2 2 True x

  1 =1 0

  Barisan bobot yang dimasukkan ke dalam knapsack adalah {2, 3, – , 13, – , 52}, sehingga 70 = (1 × 2) + (1 × 3) + (0 × 6) + (1 × 13) + (0 × 27) + (1 × 52). Dengan kata lain,

  plaintext dari kriptogram 70 adalah 110101.

      Superincreasing knapsack tidak memproteksi pesan atau relatif mudah untuk

  didekripsi. Hal ini dikarenakan pihak lain akan dapat mengetahui pola bit dari beban total untuk superincreasing knapsack jika elemen-elemen dari superincreasing knapsack diketahui. Untuk mengatasi kelemahan tersebut, algoritma 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.

Modifikasi ini ditemukan oleh Martin Hellman dan Ralph Merkle. Algoritma non-

  

superincreasing knapsack atau normal knapsack adalah kelompok algoritma knapsack

  yang sulit dari segi komputasi karena membutuhkan waktu dalam orde eksponensial untuk memecahkannya [7].

2.4.4 The Merkle Hellman Knapsack Cryptosystem

  

Merkle Hellman Knapsack merupakan kriptosistem yang dibuat oleh Ralph Merkle dan

  Martin Hellman pada tahun 1978 [2]. Algoritma Merkle-Hellman memanfaatkan kunci publik dan kunci privat untuk memodifikasi superincreasing knapsack menjadi knapsack

  

non-superincreasing. Kunci publik yang berbentuk barisan non-superincreasing

  dimanfaatkan untuk enkripsi pesan, sedangkan untuk dekripsi pesan, digunakan kunci privat yang merupakan deret superincreasing. Berikut merupakan algoritma untuk membangkitkan kunci, enkripsi, dan dekripsi dengan menggunakan Merkle Hellman

  Knapsack dengan penambahan permutasi:

1. Algoritma membangkitkan Kunci Publik dari Kunci Privat

  1) Menentukan himpunan angka atau bilangan bulat positif yang merupakan barisan superincreasing a = (a 1,…, a n ) dimana :

   a , 2 (2.5) j ≤ j ≤n ……………..……..………………

  ∑

     

  Contoh 3: Barisan superincreasing, a = [7 11 19 39 79 157 313].

  2) Menentukan kunci publik dengan mengalikan setiap elemen di dalam barisan tersebut dengan r modulo q. Dimana modulus q harus lebih besar daripada jumlah semua elemen didalam barisan, dan pengali r tidak mempunyai faktor persekutuan dengan p atau gcd(r,q) = 1 atau dirumuskan dengan:

   Kp = a r(mod q) , ……….……….…………………. (2.6) j j

  dimana :

   q , 0 < r < q

  ∑ dan gcd(r,q) = 1

  Contoh 4: Berdasarkan contoh 3, jumlah barisan superincreasing adalah 7+11+19 +39+ 79+157 + 313 = 625. Misalkan nilai q yang dipilih adalah q = 900 karena 625 < 900, dan r = 37 karena gcd (37,900) =1. Jadi, kunci publiknya dapat dihitung sebagai berikut:

  7*37 mod 900 = 259 11*37 mod 900 = 407 19*37 mod 900 = 703 39*37 mod 900 = 543 79*37 mod 900 = 223 157*37 mod 900 = 409 313*37 mod 900 = 781 Jadi, kunci publiknya adalah {259,407,703,543,223,409,781}.

  3) Memilih permutasi (hasil pengacakan posisi setiap elemen) dari hasil perkalian (Kp j ).

  Contoh 5: Permutasi yang dipilih dari contoh 4 adalah Kp = [543,407,223,703,259,781,409] atau posisinya berada di [4 2 5 3 1 7 6].

     

  4) Permutasi dari hasil perkalian akan menjadi kunci publik (Kp), sedangkan barisan superincreasing a = (a 1,.., a n) , q , r, dan posisinya menjadi kunci privat.

2. Algoritma Enkripsi/Dekripsi Knapsack Enkripsi :

  1) Enkripsi dilakukan dengan cara yang sama seperti algoritma knapsack sebelumnya. Plaintext dituliskan dalam bentuk :

  X = (x 1, x 2, ...,x n ), dimana X {0,1}.

  Contoh 6:

  Plaintext “g” dikonversikan ke kode ASCII 8 bit, menjadi 01100111. Sehingga X = [0,1,1,0,0,1,1,1].

  2) Plaintext dibagi menjadi blok bit-bit m, yang panjangnya sama dengan panjang barisan kunci publik (m adalah bilangan pembatas dalam knapsack).

  X = (x 1, x 2, ...x m ), X1 = (x m+1, …,x 2m ), dst.

  Contoh 7: Berdasarkan contoh 6, bit-bit plaintext dibagi menjadi blok yang panjangnya sama dengan panjang kunci publik. Pada contoh 4 panjang barisan kunci publiknya adalah 7. Jadi bit-bit plaintext dibagi menjadi blok bit-bit 7. X = [0,1,1,0,0,1,1], X = [1,0,0,0,0,0,0]

  1

  3) Mengalikan setiap bit di dalam blok dengan elemen yang berkoresponden di dalam kunci publik.

  C = ………..………………..………………..……(2.7)

  Contoh 8: Kunci publik dari contoh 5: Kp = [543,407,223,703,259,781,409]. Blok X : (1*407) + (1*223) + (1*781) + (1*409) = 1820 Blok

  X 1 : (1*543) = 543.

     

  Jadi, ciphertext (C) yang dihasilkan adalah 1820 dan 543.

  Dekripsi : 1) Dekripsi dilakukan dengan menggunakan kunci privat.

  • -1

  2) Penerima pesan menghitung r , dengan rumus :

  • -1

  (r. r ) mod q = 1 atau

  • -1

  r = (1+kq)/r , ………..…………...………………..………...……..(2.8)

  • -1

  untuk k sembarang bilangan bulat (k = 0,1,2,3,…,dst), sehingga diperoleh r juga merupakan bilangan bulat. Contoh 9:

  q = 900 dan r = 37. Dengan mencoba k = 0,1,2,…,dst, maka untuk k = 3 diperoleh

  • -1 -1 r bilangan bulat, yaitu: r = (1+3*900)/37 = 73.
  • -1

  3)

   mod q, kemudian hasil kalinya

  Mengalikan setiap kriptogram dengan r dinyatakan sebagai target penjumlahan elemen-elemen kunci privat untuk memperoleh plaintext dengan menggunakan algoritma pencarian solusi superincreasing knapsack. Plaintext :

  • -1

   S =

  C. r mod q …………..….………………. ……………….(2.9)

  Contoh 10: Kunci privat a = [7 11 19 39 79 157 313], q=900, dan dari contoh 8 diperoleh

  • -1

  ciphertext 1820,543, dan dari contoh 9 diperoleh r = 73. Dengan menggunakan

  rumus (2.9) diperoleh, 1820*73 mod 900 = 560 => 0*7+1*11+0*19+0*39+1*79+1*157+1*313 = 560 => 0100111 543*73 mod 900 = 39 => 0*7+0*11+0*19+1*39+0*79+0*157+0*313 = 39

  => 0001000

     

  4) Mengurutkan kembali posisi setiap bit, sama seperti posisi setelah permutasi dari kunci publik [3]. Contoh 11:

  Posisi kunci publik setelah permutasi adalah [4 2 5 3 1 7 6], maka untuk mendapatkan plaintext kembali, posisi bit plaintext diubah berdasarkan posisi tersebut, sehingga posisi bitnya menjadi: 0110011 1000000. Apabila dikonversi ke karakter menggunakan kode ASCII 8 bit, maka akan diperoleh karakter ”g”.

2.5 Steganografi

2.5.1 Defenisi Steganografi

  Steganografi (steganography) adalah ilmu dan seni menyembunyikan pesan rahasia

  

(hiding message) sedemikian, sehingga keberadaan pesan tidak terdeteksi oleh indra

  manusia. Selain orang yang dituju, orang lain tidak akan menyadari keberadaan dari pesan rahasia tersebut. Kata steganografi berasal dari bahasa Yunani steganos yang artinya ”tersembunyi atau terselubung” dan graphein ”menulis” sehingga kurang lebih artinya “menulis (tulisan) tersembunyi”. Pada steganografi modern, arti steganografi berkembang menjadi penyembunyian informasi pada sebuah media file digital, bisa berupa media gambar, suara ataupun video. Aspek terpenting pada steganografi adalah tingkat keamanan penyembunyian informasinya, yang mengacu pada seberapa besar ketidakmampuan pihak ketiga dalam mendeteksi keberadaan informasi yang tersembunyi [10].

  Steganografi bisa dikatakan sebagai bentuk perkembangan dari kriptografi dan dapat dianggap sebagai pelengkap dari kriptografi yang bertujuan untuk menyembunyikan isi pesan. Perbedaan antara kriptografi dan steganografi ada pada hasil

  

output-nya. Kriptografi akan menghasilkan output yang acak (beda dari aslinya) dan sulit

  dimengerti. Namun steganografi menghasilkan output yang memiliki tampilan yang percis sama dengan aslinya [11].

     

2.5.2 Konsep dan Terminologi

  Pada steganografi digunakan beberapa istilah penting. Istilah-istilah tersebut adalah sbb: 1.

  Hiddentext atau embedded message adalah pesan yang disembunyikan.

  2. Coverimage atau coverobject adalah pesan atau media yang digunakan untuk menyembunyikan embedded message.

  3. Stegoimage atau stegoobject adalah pesan atau media yang sudah berisi embedded message.

  Di dalam Steganografi citra digital ini, hiddentext atau embedded message yang dimaksudkan adalah teks yang akan disisipkan ke dalam coverimage atau coverobject yaitu file citra digital yang digunakan sebagai media penampung pesan yang akan disisipkan. Dari hasil encoding atau embedding pesan kedalam file citra akan dihasilkan

  stegoimage atau stegoobject yang merupakan file citra yang berisikan pesan embedding.

  Pada gambar berikut ini merupakan contoh dari hiddentext, coverimage, dan stegoimage.

   Coverimage Stegoimage .

  • Hiddentext =

Gambar 2.4 Proses Embedding

  Penyisipan pesan ke dalam media coverimage atau coverobject dinamakan encoding

  

(embedding), sedangkan ekstraksi pesan dari stegoimage dinamakan decoding

(extraction). Kedua proses ini memerlukan kunci rahasia (stegokey) agar hanya pihak

  yang berhak saja yang dapat melakukan penyisipan dan ekstraksi pesan. Konsepnya adalah seperti pada gambar 2.5 [1].

     

  coverimage coverimage

  Encoding   Decoding  

  hiddentext stegoimage hiddentext

  (Embedding)   (extraction)   key key

Gambar 2.5 Konsep Dasar Steganografi

2.5.3 Kriteria Steganografi Penyembunyian data rahasia ke dalam media digital mengubah kualitas media tersebut.

  Kriteria yang harus diperhatikan dalam penyembunyian data diantaranya adalah sbb: 1.

  Fidelity. Mutu citra penampung tidak jauh berubah. Setelah penambahan data rahasia, citra hasil steganografi masih terlihat dengan baik. Pengamat tidak mengetahui kalau di dalam citra tersebut terdapat data rahasia.

  2. Robustness. Data yang disembunyikan harus tahan (robust) terhadap berbagai operasi manipulasi yang dilakukan pada citra penampung, seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan

  (cropping), enkripsi, dan sebagainya. Bila pada citra dilakukan operasi-operasi

  pengolahan citra tersebut, maka data yang disembunyikan seharusnya tidak rusak atau tetap valid jika diekstraksi kembali.

3. Recovery. Data yang disembunyikan harus dapat diiungkapkan kembali

  (recovery). Karena tujuan stegnografi adalah data hiding, maka sewaktu-waktu

  data rahasia di dalam citra penampung harus dapat diambil kembali untuk digunakan lebih lanjut [10].

     

2.5.4 Metode First Of File (FOF)

  Teknik steganografi FOF (First Of File) merupakan teknik penyisipan dengan cara menyisipkan file rahasia pada awal file penampung dengan diberi tanda khusus di awal dan akhir dari file rahasia yang ingin disisipkan. Tujuannya untuk memisahkannya dengan file penampung.

  Steganografi FOF hampir sama dengan teknik EOF (End Of File), dimana teknik ini dapat digunakan untuk menyisipkan file yang ukurannya sesuai dengan kebutuhan. Metode ini akan mengubah besar ukuran file sesuai dengan ukuran pesan yang disisipikan kedalam file penampung namun tidak mengubah file yang dipakai sebagai tempat penyisipan pesan tersebut [11]. Yang menjadi kelebihan FOF jika dibandingkan dengan

  

EOF adalah teknik FOF tidak perlu membaca nilai-nilai setiap piksel pada citra. Yang

  perlu dibaca hanya awalnya saja karena file yang disisipkan berada diawal file penampung, sedangkan pada teknik EOF, untuk mengetahui akhir dari file, setiap nilai- nilai piksel pada file penampung dibaca satu persatu. Berikut merupakan contoh penyisipan pesan pada citra RGB :

Gambar 2.6 Citra RGB ukuran 200 x 291

  Pada citra diatas akan disisipkan pesan “ilkom” dengan nilai desimal “105 108

  

107 111 109” pada layer 1 yaitu layer merah (Red). Untuk mengetahui batas dari pesan,

     

  maka ditambahakan pengenal awal dan akhir pada citra. Pada pesan akan ditambahkan pengenal awalnya dengan tanda “DISA” (nilai desimal 68 73 83 65) dan pengenal akhir dengan tanda “SRG“ (nilai desimal 83 82 71). Setelah proses penyisipan terjadi, hasilnya menjadi seperti gambar dibawah ini:

Gambar 2.7 Citra RGB ukuran 200 x 292

  Pada contoh diatas dapat dilihat bahwa jika diamati secara visual, perbedaannya hampir tidak terlihat. Tetapi, jika lebih diamati lagi, maka akan terlihat perbedaan diantara kedua citra. Perbedaannya adalah pada bagian atas citra yang telah disisipi pesan terdapat sedikit garis dan dari segi ukuran juga terdapat perbedaan, dimana citra pada

gambar 2.7 ukurannya lebih besar dibandingkan dengan gambar 2.6. Hal ini disebabkan oleh penambahan pesan pada gambar.

2.5.5 Citra

  Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra sebagai keluaran suatu sistem perekaman data dapat bersifat optik berupa foto, bersifat analog berupa sinyal-sinyal video seperti gambar pada monitor televisi atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpan.

     

  Citra terbagi atas dua yaitu ada citra yang bersifat analog dan ada citra yang bersifat digital. Citra analog adalah citra yang bersifat kontinu seperti gambar pada monitor televisi, foto sinar X, hasil CT Scan, dll. Citra analog tidak dapatdirepresentasikan dalam komputer, sehingga tidak bisa diproses di komputer secara langsung, sedangkan pada citra digital adalah citra yang dapat diolah oleh komputer. Supaya citra analog dapat diproses di komputer, proses konversi analog ke digital harus dilakukan terlebih dahulu [10].

2.5.6 Format File Citra Bitmap

  Citra bitmap atau citra raster merupakan citra yang menyimpan data kode citra secara digital dan lengkap atau cara penyimpanannya per piksel. Citra bitmap dipetakan dengan menggunakan angka biner atau sistem bilangan lain seperti desimal. Citra bitmap biasanya diperoleh dengan cara scanner, camera digital, video capture, dan lain-lain. Beberapa format file citra bitmap yang umum digunakan dalam pemrograman pengolahan citra adalah BMP, Giff, TIF, IMG, dll. Format umum yang digunakan untuk menyimpan citra bitmap adalah format BMP yang dikembangkan oleh Microsoft. Kelebihan tipe file

  

BMP adalah dapat dibuka oleh hampir semua program pengolah gambar. Baik file BMP

  yang terkompresi maupun tidak terkompresi, file BMP memiliki ukuran yang jauh lebih besar daripada tipe-tipe yang lain. Ukuran file BMP dapat turun menjadi sepersepuluhnya setelah dikonversi menjadi JPG. Meskipun terjadi penurunan kualitas gambar, pada gambar-gambar tertentu penurunan kualitas gambar hampir tidak terlihat secara visual [10].

   

Dokumen yang terkait

Implementasi Kriptografi Algoritma Elgamal Dengan Kombinasi Steganografi Teknik End Of File (Eof) Untuk Keamanan File Text Dan File Citra

23 143 153

Implementasi Algoritma Kriptografi Massey Omura Dengan Teknik Steganografi Kombinasi End Of File (EOF) Dan First Of File (FOF) Untuk Keamanan Data

8 80 144

Implementasi Kriptografi Des pada File Gambar ke Dalam File Audio dengan Algoritma Steganografi LSB+1

0 1 20

Implementasi Kriptografi Des pada File Gambar ke Dalam File Audio dengan Algoritma Steganografi LSB+1

1 2 12

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Simulasi Pencarian Kunci Privat dengan Algoritma Silver-Pohlig-Hellaman pada Algoritma Kriptografi Elgamal

1 2 14

BAB II TINJAUAN PUSTAKA 2.1. Kriptografi - Implementasi Kombinasi Algoritma Ntruencrypt Dan Steganografi End Of File Pada Pengamanan Data Teks

0 0 22

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Perancangan Aplikasi Kombinasi Algoritma Steganografi Least Significant Bit dan Alagoritma Kriptografi Kanpsack Merkle-Hellman pada Citra Bitmap

0 0 17

BAB 2 LANDASAN TEORI 2.1 Kriptografi - Kombinasi Algoritma Rsa Dan Elgamal Dalam Implementasi Algoritma Kriptografi

0 0 28

BAB II LANDASAN TEORI 2.1 Kriptografi 2.1.1 Definisi Kriptografi - Implementasi Autentikasi Data Teks Denning-Sacco Dengan Menggunakan Algoritma Kunci Publik RSA

0 0 28

BAB 2 LANDASAN TEORI 2.1 - Implementasi Kriptografi Algoritma Elgamal Dengan Steganografi Teknik Least Significant Bit (LSB) Berdasarkan Penyisipan Menggunakan Fungsi Linier

0 0 13