• Tidak ada hasil yang ditemukan

Analisi Dan Perancangan Aplikasi Pesan Rahasia Menggunakan Algoritma One Time PAD (OTP)Dengan Pembangkit Bilangan Acak Linear Congurential Generator (LCG)

N/A
N/A
Protected

Academic year: 2019

Membagikan "Analisi Dan Perancangan Aplikasi Pesan Rahasia Menggunakan Algoritma One Time PAD (OTP)Dengan Pembangkit Bilangan Acak Linear Congurential Generator (LCG)"

Copied!
15
0
0

Teks penuh

(1)

BAB 2

LANDASAN TEORI

2.1 Kriptografi

Kriptografi berasal dari bahasa Yunani, yakni kata kriptos dan graphia. Kriptos berarti

secret (rahasia) dan graphia berarti writing (tulisan). Kriptografi merupakan seni dan ilmu untuk menjaga keamanan data dengan metode tertentu, dan pelakunya disebut

cryptographer. Kriptografi disebut sebagai ilmu karena didalamnya terdapat metode (rumusan) yang digunakan, dan dikatakan sebagai seni karena karena dalam membuat suatu teknik kriptografi itu sendiri merupakan ciri tersendiri dari si pembuat dan memerlukan teknik khusus dalam mendisainnya [8]. Sedangkan cryptanalysis adalah suatu ilmu dan seni memecahkan ciphertext menjadi plaintext tanpa melalui cara yang seharusnya dan orang yang melakukannya disebut cryptanalyst.

enkripsi

dekripsi

Gambar 2.1 Proses - proses kriptografi

Menurut Request for Comments (RFC), kriptografi merupakan ilmu matematika yang berhubungan dengan transformasi data untuk membuat artinya tidak dapat dipahami (untuk menyembunyikan maknanya), mencegahnya dari perubahan tanpa izin, atau mencegahnya dari penggunaan yang tidak sah. Jika transformasinya dapat dikembalikan, kriptografi juga bisa diartikan sebagai proses mengubah kembali

(2)

data yang terenkripsi menjadi bentuk yang dapat dipahami. Artinya, kriptografi dapat diartikan sebagai proses untuk melindungi data dalam arti yang luas [11].

Dalam kamus bahasa Inggris Oxford diberikan pengertian kriptografi sebagai berikut :

“Sebuah teknik rahasia dalam penulisan, dengan karakter khusus, dengan menggunakan huruf dan karakter di luar bentuk aslinya, atau dengan metode-metode lain yang hanya dapat dipahami oleh pihak-pihak yang memproses kunci, juga semua hal yang ditulis dengan cara seperti ini.”

Jadi, secara umum dapat diartikan sebagai seni menulis atau memecahkan cipher [16].

Algoritma kriptografi selalu terdiri dari dua bagian yaitu fungsi enkripsi dan dekripsi. Bila keamanan algoritma tergantung pada kerahasiaan algoritma bekerja, maka algoritma tersebut dikatakan algoritma terbatas (terbatas kemampuannya) [7]. Algoritma terbatas mempunyai sejarah yang menarik, namun tidak cukup baik untuk digunakan saat ini. Sebagian besar pengguna (yang tidak dalam satu grup) tidak dapat menggunakannya bersama-sama, sehingga setiap kali seorang pengguna meninggalkan grupnya, pemakai lain dalam grup tersebut harus mengganti algoritma agar tidak diketahui kelompok lain. Dan bila salah satu anggota tanpa sengaja menampakkan algoritma keluar grupnya, grup tersebut harus mengganti algoritmanya.

2.2 Komponen Kriptografi

Pada dasarnya, kriptografi terdiri dari beberapa komponen sebagai berikut [1] :

1. Algoritma, merupakan himpunan aturan matematis yang digunakan dalam enkripsi dan dekripsi.

(3)

3. Dekripsi, merupakan kebalikan dari enkripsi, yaitu transformasi data terenkripsi kembali ke bentuknya semula.

4. Kunci, digunakan pada saat melakukan enkripsi dan dekripsi. Pada kriptografi modern, keamanan enkripsi tergantung pada kunci, dan tidak tergantung kepada algoritmanya apakah dilihat orang lain atau tidak.

5. Pesan asli (Plaintext), disebut juga dengan clear-text, merupakan teks asli yang akan diproses menggunakan algoritma kriptografi tertentu untuk menjadi

ciphertext.

6. Ciphertext, merupakan pesan yang telah melalui proses enkripsi yang merupakan himpunan karakter acak.

7. Kriptologi, merupakan studi tentang kriptografi dan kriptanalisis.

8. Kriptanalisis (Cryptanalysist), merupakan aksi memecahkan mekanisme kriptografi dengan cara menganalisisnya untuk menemukan kelemahan dari suatu algoritma kriptografi sehingga akhirnya dapat ditemukan kunci atau teks asli.

9. Kriptosistem, adalah perangkat keras atau implementasi perangkat lunak kriptografi yang diperlukan dalam mentransformasi sebuah pesan asli menjadi

ciphertext dan juga sebaliknya.

2.3 Kunci Simetris dan Asimetris

2.3.1 Kunci Simetris

(4)

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-nya, melainkan masalah bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan. Contoh algoritma kunci simetris adalah DES (Data Encryption Standard), 2, RC-4, RC-5, RC-6, TwoFish, Rijndael, International Data Encryption Algorithm (IDEA),

Advanced Encryption Standard (AES), One Time Pad (OTP), dan lainnya .

Gambar 2.2 Kunci simetris (Sumber : Herianto, 1999) Kelebihan kunci simetris:

a. Kecepatan operasi lebih tinggi bila dibandingkan dengan algoritma asimetris. b. Karena kecepatannya yang cukup tinggi, maka dapat digunakan pada sistem

real-time

Kelemahan kunci simetris:

a. Untuk tiap pengiriman pesan dengan pengguna yang berbeda dibutuhkan kunci yang berbeda juga, sehingga akan terjadi kesulitan dalam manajemen kunci tersebut.

b. Permasalahan dalam pengiriman kunci itu sendiri yang disebut “keydistribution problem” .

2.3.2 Kunci Asimetris

(5)

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 Alice mengirim pesan untuk Bob, Alice dapat merasa yakin bahwa pesan tersebut hanya dapat dibaca oleh Bob, karena hanya Bob yang bisa melakukan dekripsi dengan kunci privatnya. Tentunya Alice harus memiliki kunci publik Bob untuk melakukan enkripsi. Alice bisa mendapatkannya dari Bob, ataupun dari pihak ketiga seperti Eva.

Gambar 2.3 Penggunaan kunci asimetris (Sumber : Herianto, 1999)

Teknik enkripsi asimetris ini jauh lebih lambat ketimbang enkripsi dengan kunci simetris. Oleh karena itu, biasanya bukanlah pesan itu sendiri yang disandikan dengan kunci asimetris, namun hanya kunci simetrislah yang disandikan dengan kunci asimetris. Sedangkan pesannya dikirim setelah disandikan dengan kunci simetris tadi. Contoh algoritma yang menggunakan kunci asimetris adalah RSA (merupakan singkatan penemunya yakni Rivest, Shamir dan Adleman), Digital Signature Algorithm (DSA), Diffie-Hellman, Kriptografi Quantum, ElGamal, dan lainnya.

Contoh penggunaan, misalkan jaringan komputer menghubungkan komputer karyawan di kantor cabang dengan komputer manejer di kantor pusat. Seluruh kepala cabang diberitahu bahwa kalau mereka mengirim laporan ke manejer di kantor pusat, mereka harus mengenkripsi laporan tersebut dengan kunci publik manajer (kunci publik manajer diumumkan kepada seluruh kepala cabang). Untuk mengembalikan laporan tersandi ke laporan semula, hanya manajer yang dapat melakukan dekripsi, karena hanya dialah yang memegang kunci privat. Selama proses transmisi ciphertext

(6)

yang dikirim disadap oleh pihak ketiga, namun pihak ketiga ini tidak dapat mengembalikan ciphertext ke plaintext-nya karena ia tidak mengetahui kunci untuk dekripsi.

Kelebihan kunci asimetris:

a. Masalah keamanan pada distribusi kunci dapat lebih baik

b. Masalah manajemen kunci yang lebih baik karena jumlah kunci yang lebih sedikit, maksudnya untuk berkorespondensi secara rahasia dengan banyak pihak tidak diperlukan kunci rahasia sebanyak jumlah pihak tersebut, cukup membuat dua buah kunci (disebut public-key) bagi para koresponden untuk mengenkripsi pesan, dan private-key untuk mendekripsi pesan.

Kelemahan kunci asimetris:

a. Kecepatan yang lebih rendah bila dibandingkan dengan algoritma simetris

b. Untuk tingkat keamanan sama, kunci yang digunakan lebih panjang dibandingkan dengan algoritma simetris.

2.4 Block Cipher dan Stream Cipher

Jika kita melihat berdasarkan ukuran serta format data yang akan diproses, maka algoritma kriptografi dapat dibagi menjadi dua bagian yang utama yaitu:

(7)

b. Stream cipher, algoritma yang dalam operasinya bekerja dalam suatu pesan berupa bit tunggal atau terkadang dalam suatu byte, jadi format data berupa aliran dari bit untuk kemudian mengalami proses enkripsi dan dekripsi.

Stream cipher adalah sebuah algoritma enkripsi simetris di mana output yang dihasilkan ciphertext bit per bit atau byte per byte dari sebuah input plaintext

[15].Yang paling banyak digunakan adalah RC4.

2.5 Tujuan Kriptografi

Ada empat tujuan mendasar dari kriptografi yang juga merupakan aspek keamanan informasi, yaitu:

1. Kerahasiaan (Confidentiality), adalah layanan yang digunakan untuk menjaga isi informasi dari siapapun, kecuali yang memiliki kunci rahasia atau otoritas untuk membuka informasi yang telah disandikan.

2. Integritas Data (Message Integrity), berhubungan dengan penjagaan (perlindungan data) dari upaya-upaya pengubahan data secara tidak sah. Untuk dapat menjaga integritas data, suatu sistem harus memiliki kemampuan untuk mendeteksi pemanipulasian data yang dilakukan oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pendistribusian data lain ke dalam data yang asli.

3. Autentifikasi (Authentication), berhubungan dengan identifikasi, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan harus diautentikasi keasliannya, isi datanya, waktu pengirimannya dan lain sebagainya.

(8)

2.6 Keamanan Algoritma Kriptografi

Sebuah algoritma kriptografi dikatakan aman (computationally secure) bila ia memenuhi tiga kriteria berikut [8] :

1. Persamaan matematis yang menggambarkan operasi algoritma kriptografi sangat kompleks sehingga algoritma tidak mungkin dipecahkan secara analitik.

2. Biaya untuk memecahkan ciphertext melampaui nilai informasi yang terkandung di dalam ciphertext tersebut.

3. Waktu yang diperlukan untuk memecahkan ciphertext melampaui lamanya waktu informasi tersebut harus dijaga kerahasiaannya.

2.7 Pembangkit Bilangan Acak

(9)

2.8 Pembangkit Bilangan Acak Semu

Pembangkit Bilangan Acak Semu atau Pseudo Random Number Generator (PRNG) merupakan suatu algoritma yang menghasilkan suatu urutan nilai dimana elemen-elemennya bergantung pada setiap nilai yang dihasilkan. Output dari PRNG tidak betul-betul acak, tetapi hanya mirip dengan properti dari nilai acak. Hal ini didukung oleh penelitian sebelumnya. [12] menyimpulkan dari beberapa algoritma untuk membangkitkan bilangan acak semu, tidak ada yang benar-benar dapat menghasilkan bilangan acak secara sempurna dalam arti benar-benar acak dan tanpa ada perulangan selama pembangkit yang digunakan adalah komputer yang memiliki sifat deterministik dan bilangan yang benar-benar acak hanya dapat dihasilkan oleh perangkat keras (hardware).

Menurut [14], pembangkit bilangan acak yang cocok untuk kriptografi dinamakan Cryptographically Secure Pseudorandom Number Generator (CSPRNG). Persyaratan CSPRNGadalah :

1. Terlihat acak. Artinya mampu melewati uji statistik keacakan .

2. Tidak dapat diprediksi. Perhitungan secara komputasional tidak dapat mempengaruhi prediksi bilangan acak selanjutnya yang telah diberikan

algoritma secara menyeluruh ataupun dari dibangkitkan dari mesin (komputer).

3. Tidak mampu diproduksi kembali. Jika pembangkit bilangan acak mampu dibangkitkan dua kali dengan input yang sama akan memperoleh hasil acak yang berbeda satu dengan lainnya.

(10)

1. Dapat diulang. Sekumpulan (barisan) bilangan yang sama harus bisa diperoleh (diulang) dengan menggunakan seed yang sama, hal ini kadang-kadang

diperlukan untuk pemeriksaan dan penelusuran program (debugging).

2. Keacakan. Barisan bilangan harus memenuhi syarat keacakan secara seragam (uniform) yang dapat diuji melalui uji statistika.

3. Periode panjang. Karena pada dasarnya bilangan acak itu merupakan barisan berulang dengan berbagai periode, maka periode pengulangan harus sangat besar atau lama melebihi banyaknya bilangan acak yang diperlukan.

Tidak peka seed. Sekalipun barisan bilangannya bergantung pada seed tetapi sifat keacakan dan periodisasi sedapat mungkin tidak bergantung pada seed -nya.

Secara umum, sebuah PRNG didefinisikan sebagai algoritma kriptografi yang digunakan untuk menghasilkan bilangan secara acak. Pengertian acak sendiri adalah bilangan yang dihasilkan dalam setiap waktu tidaklah sama. Sebuah PRNG memiliki sebuah kondisi awal K yang rahasia. Saat digunakan, PRNG harus membangkitkan output acak yang tidak dapat diidentifikasi oleh kriptanalis yang tidak tahu dan tidak dapat menebak kondisi awal K. Dalam hal ini, PRNG memiliki kesamaan dengan

cipher aliran. Akan tetapi, sebuah PRNG harus mampu mengubah kondisi awalnya dengan memproses input sehingga tidak dapat diprediksi oleh kriptanalis. Umumnya PRNG memiliki kondisi awal yang tidak sengaja dapat ditebak oleh kriptanalis dan harus mengalami banyak proses sebelum kondisinya rahasia dan aman. Patut dipahami bahwa sebuah input untuk PRNG memiliki informasi rahasia yang tidak diketahui oleh kriptanalis. Input-input ini umumnya diperoleh dari proses-proses fisik, interaksi

user dengan mesin, atau proses eksternal lain yang sulit diprediksi. Dalam desain dan implementasi harus dapat dipastikan bahwa input-input ini memiliki cukup jaminan keamanan dan kerahasiaan.

(11)

menentukan tingkat keamanan dari metode kriptografi. Semakin rumit PRNG yang digunakan maka semakin tinggi tingkat keamanan dari metoda kriptografi [7].

.

Bilangan acak semu

Input seed rahasia

Gambar 2.4 Skema Dasar PRNG

Semua deretan bilangan acak yang dibangkitkan dari rumus matematika, serumit apapun, dianggap sebagai deret acak semu, karena dapat diulang pembangkitannya. Sementara itu, banyak produk software yang dinyatakan sebagai produk yang aman karena menggunakan bilangan acak semacam OTP (One Time Pad). Namun karena OTP ini dibangkitkan dari bilangan acak semu, maka keamanan yang diperoleh juga semu. Pembangkit bilangan acak yang sering diimplementasikan adalah Linier Congruential Generator (LCG) dan Linear Feedback Shift Register

(LFSR).

2.9 Linear Congruential Generator (LCG)

Linear Congruential Generator (LCG) mewakili salah satu algoritma pseudo random number yang tertua dan paling populer. Algoritma ini diciptakan oleh D. H. Lehmer pada tahun 1951. Teori dari algoritma ini mudah dipahami dan dapat diimplementasikan secara cepat. Hal ini didukung oleh penelitian sebelumnya. [10] menyimpulkan hasil analisis yang diperoleh bahwa dari segi kecepatan LCG membutuhkan waktu yang paling pendek dalam menghasilkan bilangan acak dibandingkan dengan metode lain. Keuntungan dari LCG adalah operasinya yang sangat cepat. LCG dapat didefinisikan dengan rumusan berikut :

𝑿𝑿𝒏𝒏 = (a.𝑿𝑿𝒏𝒏−𝟏𝟏 + b) mod m (2.1)

(12)

Dimana :

𝑋𝑋𝑛𝑛 = bilangan acak ke-n dari deretnya

𝑋𝑋𝑛𝑛−1 = bilangan acak sebelumnya

a = faktor pengali b = increment

m = modulus (batas maksimum bilangan acak) (a, b, dan m semuanya konstanta LCG)

Penentuan nilai awal 𝑋𝑋0 atau 𝑋𝑋𝑛𝑛−1dan konstanta (a, b, dan m) akan menentukan kualitas bilangan acak yang dihasilkan. Bilangan acak yang baik (pada umumnya) apabila terjadinya perulangan atau munculnya bilangan acak yang sama, dapat terjadi setelah sekian banyak pembangkitan bilangan acak (semakin banyak akan semakin baik) serta tidak bisa diprediksi kapan terjadi perulangannya.

Periode dari LCG umumnya adalah sebesar nilai m. Masalah pada LCG adalah

lower order bit yang digenerasi mempunyai periode yang lebih pendek dari deretan secara keseluruhan jika m di-set menjadi pangkat 2. Tanpa desain yang benar, dengan

m yang sangat besar, bisa jadi periode bilangan acak yang dihasilkan tidak akan maksimal, bahkan mungkin jauh lebih pendek daripada periode maksimalnya. Kunci pembangkit adalah X0 yang disebut umpan (seed). LCG mempunyai periode tidak

lebih besar dari m. Jika a, b, dan m dipilih secara tepat (misalnya b seharusnya relatif prima terhadap m dan b < m ), maka LCG akan mempunyai periode maksimal, yaitu

m – 1.

(13)

Tabel 2.1 Hasil pembangkitan bilangan acak dengan metode LCG n 𝑋𝑋𝑛𝑛−1 a b 𝑎𝑎.𝑋𝑋𝑛𝑛−1+𝑏𝑏 m 𝑋𝑋𝑛𝑛 = (𝑎𝑎.𝑋𝑋𝑛𝑛−1+𝑏𝑏) mod m

1 2 13 7 33 11 0

2 0 13 7 7 11 7

3 7 13 7 98 11 10

4 10 13 7 137 11 5

5 5 13 7 72 11 6

6 6 13 7 85 11 8

7 8 13 7 111 11 1

8 1 13 7 20 11 9

9 9 13 7 124 11 3

10 3 13 7 46 11 2

2.10 One Time Pad (OTP)

One Time Pad (OTP) ditemukan pada tahun 1917 oleh G. Vernam dan Major Joseph Mauborgne. OTP sering disebut “Vernam Cipher”. OTP merupakan algoritma yang relatif gampang untuk dipelajari dan sudah dinyatakan oleh para ahli kriptografi sebagai “perfect encryption algorithm”. [3] sebelumnya pernah melakukan penelitian tentang penggunaan algoritma OTP untuk sistem pengamanan access database server.

Cipher yang tidak dapat dipecahkan dikatakan memiliki tingkat kerahasiaan yang sempurna (perfect secrecy). Satu-satunya algoritma kriptografi sempurna, aman dan tidak dapat dipecahkan adalah One TimePad [8].

Sistem cipher One Time Pad ini tidak dapat dipecahkan karena barisan kunci acak yang ditambahkan ke pesan plaintext yang tidak acak menghasilkan ciphertext

yang seluruhnya acak serta panjang kunci harus sama dengan panjang plaintext.

(14)

Pad merupakan cipher yang sempurna aman, namun faktanya ia tidak digunakan secara universal dalam aplikasi kriptografi sebagai satu-satunya sistem cipher yang tidak dapat dipecahkan ( hanya sedikit sistem komunikasi yang menggunakan OTP). Malahan orang masih tetap menggunakan sistem cipher yang dapat dipecahkan. Alasannya adalah dari segi kepraktisan, yaitu karena panjang kunci harus sama dengan panjang pesan, maka One Time Pad hanya cocok untuk pesan berukuran kecil.

2.10.1 Proses Enkripsi dan Dekripsi

Prinsip enkripsi pada algoritma ini adalah dengan mengkombinasikan masing-masing karakter pada plaintext dengan satu karakter pada kunci. Oleh karena itu, panjang kunci harus sama dengan panjang plaintext. Enkripsi dapat dinyatakan sebagai penjumlahan modulo 256 (menggunakan kode ASCII 8 bit) dari satu karakter

plaintext dengan satu karakter kunci OTP :

ci = (pi + ki) mod 256 (2.2)

Dalam hal ini, pi adalah plaintext ke-i, ki adalah kunci ke-i, dan ci adalah

huruf ciphertext ke-i. Panjang kunci sama dengan panjang plaintext, sehingga tidak ada kebutuhan mengulang penggunaan kunci selama proses enkripsi. Setelah pengirim mengenkripsikan pesan dengan kunci, ia menghancurkan kunci tersebut. Penerimaan pesan menggunakan kunci yang sama untuk mendekripsikan karakter-karakter

ciphertext menjadi karakter-karakter plaintext dengan persamaan :

pi = (ci - ki) mod 256 (2.3)

(15)

dibahas pada subbab sebelumnya), maka akan menghasilkan sebuah huruf ciphertext

sebagai berikut:

Plaintext : B (66)

Kunci : I (73)

Plaintext + kunci : 139

Plaintext + kunci mod 256 : 139 ( ‹ )

Untuk mendekripsikannya, akan diproses sebaliknya, yaitu :

Ciphertext : ‹ (139)

Kunci : I (73)

Ciphertext - kunci : 66

Ciphertext - kunci mod 256 : 66 (B)

Gambar

Gambar 2.1  Proses - proses kriptografi
Gambar 2.3  Penggunaan kunci asimetris
Gambar 2.4   Skema Dasar PRNG
Tabel 2.1  Hasil pembangkitan bilangan acak dengan metode LCG

Referensi

Dokumen terkait

Oleh karena itu, maka program pembaruan pemikiran hukum Islam adalah suatu bagian yang tidak terpisahkan dari proses kehidupan masyarakat yang selalu berubah5. Akan

(metode survei) atau penelitian benda (metode observasi). Kelebihan dari data primer adalah data lebih mencerminkan kebenaran berdasarkan dengan apa yang dilihat dan

Sedangkan yang ketiga tentang bagaimana pembebanan tanggung jawab pidananya apabila tindak pidana korupsi ini dilakukan oleh korporasi ditentukan pada ayat (7)

hasil belajar peserta didik yaitu nilai tes awal pada kelas eksperimen dan kelas kontrol. termasuk homogen atau

5. Menjadi lebih ramah dan lain-lain Banyak keuntungan-keuntungan yang dapat dipetik dari hasil melakukan olahraga secara teratur. Harapan untuk memiliki

[r]

Dalam perancangan stadion sepak bola yang terpenting adalah aspek struktur yang digunakan, perkembangan sistem struktur terutama dalam perancangan stadion di dunia telah

Dilarang mengutip sebagian atau seluruh karya tulis ini tanpa mencantumkan dan menyebutkan sumber.... MOTIF PENGGUNA PORTAL BERITA ONLINE DETIKCOM