BAB 2 LANDASAN TEORI
2.1
Kriptografi
Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar aman. (Cryptography is the art and science of keeping messages secure) “Crypto” berarti “secret” (rahasia) dan “graphy” berarti “writing” (tulisan). [4]
Kriptografi merupakan metode untuk mengamankan data, baik itu data teks maupun data gambar. Metode ini dilakukan dengan penyandian atau pengacakan data asli, sehingga pihak lain yang tidak mempunyai hak akses atas data tersebut tidak dapat memperoleh informasi yang ada di dalamnya.[3]
Sistem kriptografi terdiri dari 5 bagian yaitu: 1. Plaintext: pesan atau data dalam bentuk aslinya yang dapat terbaca. 2. Secret Key: merupakan masukan bagi algoritma enkripsi yang berupa nilai bebas terhadap teks asli dan menentukan hasil keluaran algoritma enkripsi. 3. Ciphertext: keluaran algoritma enkripsi yang dianggap sebagai pesan dalam bentuk tersembunyi. 4. Algoritma Enkripsi: algoritma enkripsi memiliki 2 masukan yaitu teks asli dan teks kunci rahasia. Algoritma enkripsi melakukan transformasi terhadap teks asli sehingga menghasilkan teks sandi. 5. Algoritma Dekripsi: algoritma dekripsi memiliki 2 masukan yaitu teks sandi dan kunci rahasia. Algoritma dekripsi memulihkan kembali teks sandi menjadi teks asli bila kunci rahasia yang dipakai algoritma dekripsi sama dengan kunci rahasia yang dipakai algoritma enkripsi.[13]
Universitas Sumatera Utara
2.2
Enkripsi dan Dekripsi
Proses menyadikan plaintext menjadi ciphertext disebut enkripsi (encryption) atau enciphering (standard nama menurut ISO 7498-2). Sedangkan proses mengembalikan ciphertext menjadi plaintext semula dinamakan dekripsi (decryption) atau deciphering (standard nama menurut ISO 7498-2). [12]
Secara matematis, proses umum enkripsi dijelaskan sebagai berikut: 𝐸 (𝑃) = 𝐶 Jadi, proses enkripsi E plaintext P akan menghasilkan ciphertext C. Sedangkan proses umum deskripsi adalah sebagai berikut: 𝐷 (𝐶) = 𝑃 Proses dekripsi D ciphertext C, akan menghasilkan plaintext P. Proses umum yang terjadi pada kriptografi dapat dilihat pada Gambar 2.1.
Gambar 2.1 Proses Umum Kriptografi [7]
Gambar 2.1 merupakan proses umum kriptografi. Plaintext dienkripsi dengan menggunakan kunci enkripsi untuk menghasilkan ciphertext. Untuk mengubah ciphertext menjadi plaintext, ciphertext didekripsi menggunakan kunci dekripsi untuk menghasilkan plaintext.
2.3
Tujuan Kriptografi
Tujuan dari kriptografi adalah memberi layanan keamanan yang disebut juga dengan aspek keamanan. Aspek-aspek keamanan kriptografi sebagai berikut: 1. Kerahasian (confidentiality), layanan yang ditujukan untuk menjaga agar pesan tidak dapat dibaca oleh pihak-pihak yang tidak berhak.
Universitas Sumatera Utara
2. Integritas data (data integrity), layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. 3. Otentikasi (authentication), layanan yang berhubungan dengan identifikasi, baik mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication atau entity authentication) maupun mengidentifikasi kebenaran sumber pesan (data origin authentication). 4. Penyangkalan
(non-repudiation),
layanan
untuk
mencegah
entitas
yang
berkomunikasi melakukan penyangkalan, yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.[12]
2.4
Jenis Algoritma Kriptografi Berdasarkan Jenis Kunci
Berdasarkan jenis kunci yang dipakai terdapat 2 (dua) jenis algoritma kriptografi yaitu algoritma simetris dan algoritma asimetris.
2.4.1
Algoritma Simetris
Sistem kriptografi simetris menggunakan kunci yang sama pada proses penyandian dan proses pemulihan sandi seperti yang ditunjukan pada Gambar 2.2. [13]
Gambar 2.2 Skema Kriptografi Simetris
Gambar 2.2 menunjukan bagaimana cara kerja kriptografi simetris. Plaintext dienkripsi dengan kunci kemudian menghasilkan ciphertext, kemudian untuk mendekripsi ciphertext menggunakan kunci yang sama pada proses enkripsi untuk menghasilkan pesan asli atau plaintext.
Universitas Sumatera Utara
Kriptografi yang termasuk algoritma simetris adalah DES (Data Encryption Standard), Blowfish, Twofish, Triple-DES, IDEA, Serpent, Affine, Playfair, AES (Advanced Encryption Standard), dan sebagainya.
2.4.2
Algoritma Asimetris
Sistem kriptografi asimetris menggunakan kunci yang berbeda pada proses penyandian dan proses pemulihan sandi seperti yang ditunjukan pada Gambar 2.3.[13]
Gambar 2.3 Skema Kriptografi Asimetris
Gambar 2.3 menunjukan bagaimana cara kerja kriptografi asimetris. Plaintext dienkripsi dengan kunci publik kemudian menghasilkan ciphertext, kemudian untuk mendekripsi ciphertext membutuhkan kunci private yang menghasilkan pesan asli atau plaintext.
Kriptografi yang termasuk algoritma asimetris adalah RSA, ElGamal, DSA dan sebagainya.
2.4.3
Algoritma ElGamal
Algoritma kriptografi ElGamal merupakan salah satu algoritma kunci asimetris yang didasarkan pada logaritma diskrit. Algoritma kriptografi ElGamal ditemukan oleh Taher ElGamal pada tahun 1984[13]. Skema sistem kriptografi ElGamal dapat dilihat pada Gambar 2.4.
Universitas Sumatera Utara
Gambar 2.4 Sistem Kriptografi Algoritma ElGamal
Gambar 2.4 menunjukkan cara kerja algoritma ElGamal yaitu plainteks di enkripsi dengan menggunakan kunci publik p, g dan y. y didapat dari rumus 𝑦 =
𝑔 𝑥 𝑚𝑜𝑑 𝑝 dengan menggunakan kunci private x. Kemudian plainteks dienkripsi
dengan rumus 𝑐1 = 𝑔𝑘 𝑚𝑜𝑑 𝑝 dan 𝑐2 = ( 𝑦 𝑘 𝑚)𝑚𝑜𝑑 𝑝 dan menghasilkan chipertext.
Chipertext didekripsi dengan menggunakan kunci private d dan menggunakan rumus dekripsi 𝑚 = [𝑐2 × (𝑐1 𝑥 )−1 𝑚𝑜𝑑 𝑝] untuk menghasilkan plainteks. Berikut pembangkit kunci ElGamal: 1. Bilangan prima p > 255. 2. Dua bilangan acak g dan x dengan syarat 𝑔 < 𝑝 dan 𝑥 < 𝑝.
3. Bilangan acak k dengan syarat 0 ≤ 𝑘 ≤ 𝑝 − 2. 4. 𝑦 = 𝑔 𝑥 𝑚𝑜𝑑 𝑝.
5. 𝐾𝑝𝑢𝑏𝑙𝑖𝑘 = (𝑝, 𝑔, 𝑦). 6. 𝐾𝑝𝑟𝑖𝑣𝑎𝑡𝑒 = 𝑥.
Untuk mengenkripsi pesan dibutuhkan k, C1, C2, dan P. Untuk C1 dan C2 dapat dihasilkan menggunakan rumus: 𝑐1 = 𝑔𝑘 𝑚𝑜𝑑 𝑝 ....................................................................................... (1) 𝑐2 = ( 𝑦 𝑘 𝑚 )𝑚𝑜𝑑 𝑝 ............................................................................ (2) Untuk mendekripsi pesan dapat menggunakan rumus: 𝑚=
𝑐2 𝑚𝑜𝑑 𝑝 𝑐1 𝑥
𝑚 = [𝑐2 × (𝑐1 𝑥 )−1 𝑚𝑜𝑑 𝑝] .................................................................... (3) Untuk (𝑐1 𝑥 )−1 dapat dihitung dengan rumus:
Universitas Sumatera Utara
(𝑐1 𝑥 )−1 = 𝑐1 𝑝−1−𝑥 𝑚𝑜𝑑 𝑝 ..................................................................... (4) dimana:
k
= kunci publik bilangan acak
c1
= hasil cipherteks 1
c2
= hasil cipherteks 2
m
= pesan atau teks asli
Sebagai contoh penggunaan algoritma ElGamal, untuk melakukan enkripsi diambil bilangan prima 𝑝 = 257, bilangan acak 𝑔 = 3, 𝑥 = 4 dan 𝑘 = 7. Hitung
𝑦 = 𝑔 𝑥 𝑚𝑜𝑑 𝑝 → 𝑦 = 81. Pengirim ingin mengirim huruf “A” maka nilai dari
setiap huruf dapat diambil dari tabel ASCII. Maka enkripsi dapat dilakukan seperti berikut: 1. A dalam ASCII bernilai 65. 2. Hitung 𝑐1 = 𝑔𝑘 𝑚𝑜𝑑 𝑝 → 𝑐1 = 37 𝑚𝑜𝑑 257→ 𝑐1 = 131.
3. Hitung 𝑐2 = ( 𝑦 𝑘 𝑚 )𝑚𝑜𝑑 𝑝 → 𝑐2 = ( 817 × 65)𝑚𝑜𝑑 257 → 𝑐2 = 210 Pengirim akan mengirim 𝑐1 dan 𝑐2 kepada penerima pesan rahasia. Untuk
melakukan dekripsi dibutuhkan nilai x, 𝑐1 dan 𝑐2 . Maka enkripsi dapat dilakukan seperti berikut:
(𝑐1 𝑥 )−1 = 𝐶1 𝑝−1−𝑥 𝑚𝑜𝑑 𝑝
→
(𝑐1 𝑥 )−1 = 131257−1−4 𝑚𝑜𝑑 252
1.
Hitung
2.
→(𝑐1 𝑥 )−1 = 190.
3.
Kemudian bilangan 65 diubah ke ASCII menjadi huruf “A”.
Hitung 𝑚 = 𝑐2 × (𝑐1 𝑥 )−1 𝑚𝑜𝑑 𝑝 → 𝑚 = 210 × 190 𝑚𝑜𝑑 257 → m = 65. Setelah melakukan dekripsi, penerima menemukan pesan rahasia yaitu teks
asli yang sebelum dilakukan enkripsi oleh pengirim pesan rahasia. Maka didapat plainteks “A” dan tersampaikan pesan rahasia.
2.5
Bilangan Prima
Bilangan positif p (𝑝 > 1) disebut bilangan prima jika pembaginya hanya 1 dan p.
Sebagai contoh bilangan 23 adalah bilangan prima karena ia hanya habis dibagi 1 dan 23. Karena bilangan prima harus lebih besar dari satu, maka barisan bilangan prima
Universitas Sumatera Utara
dimulai dari 2, yaitu 2, 3, 5 , 7, 11, 13, .... Seluruh bilangan prima adalah bilangan ganjil, kecuali dua yang merupakan bilangan genap. [12]
2.6
Aritmatika Modulo
Aritmatika modulo merupakan sisa hasil pembagian 2 (dua) bilangan. Operator yang digunakan dalam aritmatika modulo adalah mod. Misalkan a adalah bilangan bulat dibagi dengan m adalah bilangan bulat > 0 , maka akan menghasilkan sisa bagi r dengan q adalah hasil bagi. Sehingga dapat dinotasikan sebagai berikut[7] : 𝑎 𝑚𝑜𝑑 𝑚 = 𝑟 sedemikian sehingga 𝑎 = 𝑚𝑞 + 𝑟, dengan 0 ≤ 𝑟 < 𝑚 Contoh :
16 𝑚𝑜𝑑 6 = 4, dimana 16 = (4 × 3) + 4 2.7
Fermat’s Little Theorem
Fermat’s little theorem adalah suatu metode yang digunakan untuk menguji keprimaan suatu bilangan bulat. Teorema Fermat ditemukan oleh Pierre De Fermat merupakan seorang matematikawan Perancis pada tahun 1640. Fermat's Little Theorem digunakan jika bilangan prima p dan bilangan bulat a adalah bilangan bulat yang tidak habis dibagi oleh p, yaitu PBB(𝑎, 𝑝) = 1, maka
Untuk nilai a rentang dalam 1 < 𝑎 < 𝑝.
𝑎𝑝−1 ≡ 1 (mod p)[12].
Sebagai contoh diambil bilangan prima 𝑝 = 7. Sehingga nilai a dalam rentang
1 < 𝑎 < 7 adalah 𝑎 = 2, . . . , 7. Misalkan 𝑎 = 2, maka: 2𝑝−1 ≡ 1(𝑚𝑜𝑑 𝑝)
27−1 ≡ 26 (𝑚𝑜𝑑 7) ≡ 64(𝑚𝑜𝑑 7) ≡ 1(𝑚𝑜𝑑 7)
Didapatkan hasil dari 27 ≡ 1 (𝑚𝑜𝑑 7), dapat disimpulkan bahwa 7 adalah
bilangan prima.
Universitas Sumatera Utara
Meskipun dapat digunakan untuk mempermudah kalkulasi dalam kriptografi, peran terpenting dari Fermat's little theorem adalah sebagai dasar dari berbagai teknik enkripsi asimetris.[10]
2.8
Citra Digital
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 penyimpanan. Citra digital adalah citra yang dapat diolah komputer[14]. Beberapa format citra digital yang banyak ditemui adalah BMP, JPEG, GIF, PNG, dan lain-lain.
2.8.1. BITMAP File citra bitmap merupakan format file citra yang tidak mengalami proses kompresi sehingga kualitas gambar yang dihasilkan baik daripada file citra dengan format lain. Pada file citra bitmap, nilai intensitas pixel dalam citra dipetakan ke dalam sejumlah bit tertentu yang umumnya panjang setiap pixel adalah 8 bit. Delapan bit ini merepresentasikan nilai intensitas pixel. Dengan demikian ada sebanyak 28 = 256 derajat keabuan, mulai dari 0 sampai 255.[7]
File citra bitmap menyimpan data kode citra secara digital dan lengkap (cara penyimpanannya adalah per pixsel). Citra ini memiliki kelebihan untuk memanipulasi warna, tetapi mengubah objek lebih sulit.[14] File citra bitmap dapat dilihat pada Gambar 2.5.
Gambar 2.5 Contoh File Citra Bitmap
Universitas Sumatera Utara
2.8.2. PNG PNG adalah kependekam dari Portable Network Grapihics dan merupakan format standar terbuka format image raster yang didukung oleh W3C dan IETF. Format PNG bukan merupakan format baru karena telah dikembangkan pada tahun 1995 untuk mengganti format GIF (Graphics Interchange Format) dan format TIFF (Tagged Image File Format). PNG memiliki tiga mode warna, yaitu paletted (8 bit), grayscale (16 bit), truecolor (hingga 48 bit). [11] File citra PNG memiliki fitur transparansi seperti yang terlihat pada Gambar 2.6.
Gambar 2.6 Contoh File Citra PNG
2.8.3. JPEG Joint Photograpic Experts (JPEG , dibaca jay-peg) di rancang untuk kompresi beberapa full-color atau gray-scale dari suatu gambar yang asli, seperti pemandangan asli di dunia ini. JPEG sudah mendukung untuk 24-bit color depth atau sama dengan 16,7 juta warna (224 = 16.777.216 warna). JPEG adalah algoritma kompresi secara lossy. JPEG bekerja dengan merubah gambar spasial dan merepresentasikan kedalam pemetaan frekueunsi. [6]
JPEG dirancang untuk mengeksploitasi tingkatan dari mata kita yakni bahwa mata kita tidak akan dapat mebedakan perubahan yang lambat terang dan warna dibandingkan dengan perbedaan suatu jarak apakah jauh atau dekat. Untuk itu JPEG sangat baik digunkan pada fotografi dan monitor 80-bit. JPEG sebenarnya hanyalah algoritma kompresi, bukan merupakan nama format file. File yang biasa disebut JPEG pada jaringan sebenarnya adalah JFIF (JPEG File Interchange Format). [6] File citra JPEG dapat dilihat pada Gambar 2.7.
Universitas Sumatera Utara
Gambar 2.7 Contoh File Citra JPEG
2.9
Steganografi
Kata
steganografi
berasal
dari
bahasa
Yunani
steganos
yang
artinya
“tersembunyi/terselubung” dan graphein “menulis” sehingga kurang lebih artinya “menulis (tulisan) terselubung”. [2]
Steganografi merupakan seni untuk menyembunyikan pesan di dalam media digital sedemikian rupa sehingga orang lain tidak menyadari ada sesuatu pesan didalam media tersebut.[15]
Steganografi menggunakan dua properti, yaitu wadah penampung dan data rahasia yang akan disembunyikan. Steganografi digital menggunakan media digital sebagai wadah penampung, misalnya citra, audio, teks dan video.[14]
Terdapat beberapa istilah yang berkaitan dengan steganografi: 1. Hiddentext atau embedded message: pesan yang disembunyikan. 2. Coverimage: citra yang digunakan untuk menyembunyikan embedded message. 3. Stegoimage: citra yang sudah berisi embedded message. 4. Stegokey: kunci rahasia.[5] 5. Embedding : proses menyisipkan pesan pada citra sebagai medium penyisipan pesan. 6. Extract : mengambil pesan yang terdapat pada citra atau medium penyisipan.
Universitas Sumatera Utara
Pada teknik steganografi terdapat dua proses, yaitu proses penyisipan pesan (embedding) pada cover image dan pengembalian pesan (extraction) seperti yang ditunjukan pada Gambar 2.8. Coverimage Hiddentext Embedding
Stegoimage
Key
Hiddentext Extraction
Key
Gambar 2.8 Diagram Penyisipan dan Ekstrasi Pesan[6]
Gambar 2.8 menunjukkan proses penyisipan (embedding)
dan ekstrasi
(extraction) pesan. Untuk menyisipkan pesan (hiddentext) dilakukan proses penyisipan (embedding) pada sebuah citra (coverimage) memerlukan kunci rahasia (stego key) untuk menghasilkan stegoimage atau pesan yang sudah disisipakan pesan rahasia. Untuk melakukan extraction dibutuhkan kunci rahasia untuk mengambil pesan yang terdapat pada coverimage. Berikut contoh hiddentext, coverimage dan stegoimage yang ditunjukan pada Tabel 2.1.
Tabel 2.1 Tabel contoh dari Hiddentext, Coverimage dan Stegoimage[12] Hiddentext
Cover Image
Stego Imagw
Istilah keilmuan serumpun terasa memberikan distorsi persepsi pada maksud sebenarnya. Persepsi yang segera terbentuk dengan istilah tesrebut adalah eprtumbuhan dari akar-akar ilmu membentuk suatu rumpun, yang berarti bahwa nuansa historis organisasi/ kelompok/ unit yang mewadahinya.
Universitas Sumatera Utara
Kriteria steganografi yang bagus sebagai berikut: 1. Fidelity, mutu citra yang menampung data tidak jauh berubah. 2. Robustness, pesan yang disembunyikan harus tahan (robust) terhadap berbagai operasi manipulasi yang dilakukan pada stego-object, seperti pengubahan kontras, penajaman, pemampatan, rotasi, perbesaran gambar, pemotongan cropping, enkripsi dan sebagainya. 3. Recovery, data yang disembunyikan harus dapat diungkapkan kembali (recovery). [14]
2.10
Least Significant Bit
Metode least significant bit, digunakan citra digital sebagai media penyamar atau cover-object. Pada setiap byte dari piksel citra, terdapat bit yang paling kecil bobotnya (Least Significant Bit atau LSB).[2]
Metode ini bekerja dengan cara mengganti bit terakhir dari masing-masing pixel dengan pesan yang akan disisipkan. LSB mempunyai kelebihan yakni ukuran gambar tidak akan jauh berubah. Sedangkan kekurangannya adalah pesan/data yang akan disisipkan terbatas, sesuai dengan ukuran citra.[1]
Sebagai contoh akan disisipkan A kedalam sebuah sebuah citra. Nilai A dalam ASCII adalah 65. Kemudian nilai ASCII A diubah menjadi biner yaitu 01000001. Piksel citra yang akan disisipkan teks yaitu 00000001, 00000110, 00000101, 00000011, 00000111, 00000100, 00000111, 00000100. Tabel 1 menunjukkan hasil dari penyisipan.
Tabel 2.2. Tabel proses penyisipan Least Significant Bit (LSB) Biner Piksel Citra
Biner Huruf A
Piksel Citra Yang berubah
00000001
0
00000000
00000110
1
00000111
00000101
0
00000100
00000011
0
00000010
00000111
0
00000110
Universitas Sumatera Utara
2.11
00000100
0
00000100
00000111
0
00000110
00000100
1
00000101
Fungsi Linier
Suatu korespondensi (𝑥, 𝑦) antara dua himpunan bilangan yang memasangkan sebarang bilangan x dari himpunan pertama sengan tepat satu bilangan y dari himpunan kedua disebut suatu fungsi.[8]
Untuk rumus umum persamaan linier ditulis sebagai berikut [9]: 𝑓(𝑥) = 𝑚𝑥 + 𝑏 .............................................................................................(5) kemiringan garis adalah m , b merupakan perpotongan sumbu y.[9]
Sebagai contoh, misalkan nilai m= 1 dan b=2, sehingga: 𝑓(𝑥) = 𝑚𝑥 + 𝑏 𝑓(𝑥) = 1𝑥 + 2 𝑓(𝑥) = 𝑥 + 2
Universitas Sumatera Utara