BAB Kriptografi

dokumen-dokumen yang mirip
Kriptografi Kunci Rahasia & Kunci Publik

Universitas Sumatera Utara BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Bab 2 Tinjauan Pustaka 2.1 Penelitian Terdahulu

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB 2 TINJAUAN PUSTAKA

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

ALGORITMA ELGAMAL DALAM PENGAMANAN PESAN RAHASIA

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Berikut ini akan dijelaskan sejarah, pengertian, tujuan, dan jenis kriptografi.

TUGAS KRIPTOGRAFI Membuat Algortima Sendiri Algoritma Ter-Puter Oleh : Aris Pamungkas STMIK AMIKOM Yogyakarta emali:

BAB II TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. diperhatikan, yaitu : kerahasiaan, integritas data, autentikasi dan non repudiasi.

Sedangkan berdasarkan besar data yang diolah dalam satu kali proses, maka algoritma kriptografi dapat dibedakan menjadi dua jenis yaitu :

BAB I PENDAHULUAN. mempunyai makna. Dalam kriptografi dikenal dua penyandian, yakni enkripsi

SISTEM KRIPTOGRAFI. Mata kuliah Jaringan Komputer Iskandar Ikbal, S.T., M.Kom

BAB II LANDASAN TEORI

BAB II TINJAUAN PUSTAKA. Kriptografi adalah ilmu sekaligus seni untuk menjaga keamanan pesan (message).

BAB II TINJAUAN PUSTAKA

BAB II LANDASAN TEORI. yang mendasari pembahasan pada bab-bab berikutnya. Beberapa definisi yang

Penerapan Matriks dalam Kriptografi Hill Cipher

+ Basic Cryptography

BAB 2 LANDASAN TEORI

APLIKASI TEORI BILANGAN UNTUK AUTENTIKASI DOKUMEN

BAB 2 LANDASAN TEORI

Reference. William Stallings Cryptography and Network Security : Principles and Practie 6 th Edition (2014)

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA

BAB I PENDAHULUAN. melalui ringkasan pemahaman penyusun terhadap persoalan yang dibahas. Hal-hal

K i r p i t p o t g o ra r f a i

ANALISIS WAKTU ENKRIPSI-DEKRIPSI FILE TEXT MENGGUNAKAN METODA ONE-TIME PAD (OTP) DAN RIVEST, SHAMIR, ADLEMAN (RSA)

PENGGUNAAN POLINOMIAL UNTUK STREAM KEY GENERATOR PADA ALGORITMA STREAM CIPHERS BERBASIS FEEDBACK SHIFT REGISTER

BAB II. Dasar-Dasar Kemanan Sistem Informasi

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

Kriptografi Modern Part -1

BAB 2 LANDASAN TEORI. Berikut ini akan dijelaskan pengertian, tujuan dan jenis kriptografi.

Kriptografi, Enkripsi dan Dekripsi. Ana Kurniawati Kemal Ade Sekarwati

Simulasi Pengamanan File Teks Menggunakan Algoritma Massey-Omura 1 Muhammad Reza, 1 Muhammad Andri Budiman, 1 Dedy Arisandi

DASAR-DASAR KEAMANAN SISTEM INFORMASI Kriptografi, Steganografi. Gentisya Tri Mardiani, S.Kom.,M.Kom

BAB 2 LANDASAN TEORI. Universitas Sumatera Utara

BAB 1 PENDAHULUAN. 1.1 Latar Belakang. Seiring perkembangan teknologi, berbagai macam dokumen kini tidak lagi dalam

Cryptography. Lisa Anisah. Abstrak. Pendahuluan. ::

BAB II TINJAUAN PUSTAKA

Pengenalan Kriptografi

KOMBINASI ALGORITMA ONE TIME PAD CIPHER DAN ALGORITMA BLUM BLUM SHUB DALAM PENGAMANAN FILE

Bab 1 PENDAHULUAN Latar Belakang

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

BAB 2 LANDASAN TEORI

BAB I PENDAHULUAN. Universitas Sumatera Utara

Kriptografi. A. Kriptografi. B. Enkripsi

BAB II TINJAUAN PUSTAKA. Kriptografi (cryptography) berasal dari Bahasa Yunani: cryptós artinya

Percobaan Perancangan Fungsi Pembangkit Bilangan Acak Semu serta Analisisnya

BAB III PENGERTIAN DAN SEJARAH SINGKAT KRIPTOGRAFI

BAB 2 LANDASAN TEORI

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

PENGAMANAN SQLITE DATABASE MENGGUNAKAN KRIPTOGRAFI ELGAMAL

BAB II TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

Security Sistem Informasi.

BAB 2 LANDASAN TEORI. 2.1 Kriptografi Definisi Kriptografi

APLIKASI JAVA KRIPTOGRAFI MENGGUNAKAN ALGORITMA VIGENERE. Abstract

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

Algoritma Kriptografi Kunci Publik. Dengan Menggunakan Prinsip Binary tree. Dan Implementasinya

BAB 2 LANDASAN TEORI

Disusun oleh: Ir. Rinaldi Munir, M.T.

BAB II DASAR TEORI. membahas tentang penerapan skema tanda tangan Schnorr pada pembuatan tanda

IMPLEMENTASI KRIPTOGRAFI DAN STEGANOGRAFI DENGAN MENGGUNAKAN ALGORITMA RSA DAN MEMAKAI METODE LSB

Keamanan Sistem Informasi. Girindro Pringgo Digdo

Perhitungan dan Implementasi Algoritma RSA pada PHP

Manajemen Keamanan Informasi

BAB 1 PENDAHULUAN. dalam bahasa sandi (ciphertext) disebut sebagai enkripsi (encryption). Sedangkan

Otentikasi dan Tandatangan Digital (Authentication and Digital Signature)

SEMINAR TUGAS AKHIR PERIODE JANUARI 2012

(pencurian, penyadapan) data. Pengamanan data dapat dilakukan dengan dua cara, yaitu steganography dan cryptography.

ALGORITMA LOGICAL CIPHER

Latar Belakang Masalah Landasan Teori

BAB 1 PENDAHULUAN Latar Belakang

BAB III ANALISIS DAN PERANCANGAN

BAB 2 LANDASAN TEORI

Pengantar Kriptografi

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah

ALGORITMA ELGAMAL UNTUK KEAMANAN APLIKASI

BAB I PENDAHULUAN. 1.1 Latar Belakang

Pertukaran kunci Diffie-Hellman dengan Pembangkit Bilangan Acak Linear Congruential Generator (LCG)

RC4 Stream Cipher. Endang, Vantonny, dan Reza. Departemen Teknik Informatika Institut Teknologi Bandung Jalan Ganesha 10 Bandung 40132

Studi Perbandingan ORYX Cipher dengan Stream Cipher Standard

BAB 2 LANDASAN TEORI. 2.1 Pengertian Kriptografi

Sistem Kriptografi Kunci Publik Multivariat

Penggunaan Digital Signature Standard (DSS) dalam Pengamanan Informasi

Tandatangan Digital. Yus Jayusman STMIK BANDUNG

BAB I PENDAHULUAN. 1.1 Latar Belakang Masalah. Pada dasarnya sistem administrasi kependudukan merupakan sub sistem dari

Kriptografi Modern Part -1

Blok Cipher JUMT I. PENDAHULUAN

Message Authentication Code (MAC) Pembangkit Bilangan Acak Semu

A-2 Sistem Kriptografi Stream Cipher Berbasis Fungsi Chaos Circle Map dengan Pertukaran Kunci Stickel

Transkripsi:

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

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 metodemetode 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. 2. Enkripsi, adalah transformasi data ke dalam bentuk yang tidak dapat terbaca tanpa sebuah kunci tertentu.

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 Ini adalah jenis kriptografi yang paling umum dipergunakan. 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-nya, melainkan masalah bagaimana menyampaikan kunci simetris tersebut kepada pihak yang diinginkan. Contoh algoritma kunci simetris adalah DES (Data Encryption Standard), RC-2, RC- 4, RC-5, RC-6, TwoFish, Rijndael, International Data Encryption Algorithm (IDEA), Advanced Encryption Standard (AES), One Time Pad (OTP), dan lainnya. Kelebihan kunci simetris: Gambar 2.2 Kunci simetris (Sumber : Herianto, 1999) 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 key distribution problem. 2.3.2 Kunci Asimetris Pada pertengahan tahun 70-an Whitfield Diffie dan Martin Hellman menemukan teknik enkripsi asimetris yang merevolusi dunia kriptografi. Kunci asimetris adalah pasangan kunci-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 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 dari kantor cabang ke kantor pusat melalui saluran komunikasi mungkin saja data

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: a. Block Cipher, algoritma kriptografi ini bekerja pada suatu data yang berbentuk blok/kelompok data dengan panjang data tertentu (dalam beberapa byte), jadi dalam sekali proses enkripsi atau dekripsi data yang masuk mempunyai ukuran yang sama. Untuk algoritma komputer modern, ukuran blok dasarnya adalah 64 bit atau 128 bit, cukup besar untuk menghindari analisis pemecahan kode dan cukup kecil agar dapat bekerja dengan cepat. Sebelum pemakaian komputer, algoritma biasanya beroperasi pada plaintext, satu karakter per satu operasi. Dapat dikatakan bahwa ini seperti algoritma aliran (stream) yang beroperasi pada aliran karakter.

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. 4. Nirpenyangkalan (Non-repudiation), merupakan usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman/terciptanya suatu informasi oleh yang mengirimkan/membuat, juga sebaliknya.

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 Pembangkit Bilangan Acak atau Random Number Generator (RNG) adalah suatu peralatan komputasional yang dirancang untuk menghasilkan suatu urutan nilai yang tidak dapat ditebak polanya dengan mudah, sehingga urutan nilai tersebut dapat dianggap sebagai suatu keadaan acak (random). RNG ini tidak dapat diterapkan dalam prakteknya. Bilangan acak yang dihasilkan oleh komputer sekalipun tidak benar-benar acak dan kebanyakan bilangan acak yang diterapkan dalam kriptografi juga tidak benar-benar acak, tetapi hanya berupa acak semu. Ini berarti bahwa bilangan acak yang dihasilkan itu dapat ditebak susunan atau urutan nilainya. Dalam kriptografi, bilangan acak sering dibangkitkan dengan menggunakan pembangkit bilangan acak semu atau Pseudo Random Number Generator (PRNG ).

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 elemenelemennya 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 CSPRNG adalah : 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. Meskipun demikian, pada dasarnya bilangan acak yang diperoleh bukanlah bilangan acak yang sesungguhnya, maka supaya lebih menyerupai bilangan acak, [4] mengatakan beberapa syarat penting yang harus dipenuhi oleh bilangan acak adalah seperti berikut ini :

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 seednya. 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. Kebanyakan algoritma dari PRNG ditujukan untuk menghasilkan suatu sampel yang secara seragam terdistribusi. PRNG ini sering digunakan dalam kriptografi pada proses pembentukan kunci dari metode kriptografi. Tingkat kerumitan dari PRNG ini

menentukan tingkat keamanan dari metode kriptografi. Semakin rumit PRNG yang digunakan maka semakin tinggi tingkat keamanan dari metoda kriptografi [7].. Bilangan acak semu PRNG 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 : XX nn = (a.xx nn 11 + b) mod m (2.1)

Dimana : XX nn = bilangan acak ke-n dari deretnya XX nn 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 XX 0 atau XX nn 1 dan 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 X 0 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. Sebagai contoh : Untuk membangkitkan bilangan acak sebanyak 10 kali dengan a=13, b=7, m=11, dan XX 0 = 2. Dengan menggunakan rumus pada metode LCG di atas, akan diperoleh hasil sesuai tabel dibawah ini.

Tabel 2.1 Hasil pembangkitan bilangan acak dengan metode LCG n XX nn 1 a b aa. XX nn 1 + bb m XX nn = (aa. XX nn 1 + bb) 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 Time Pad [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. Beberapa barisan kunci yang digunakan untuk mendekripsi ciphertext mungkin menghasilkan pesan-pesan plaintext yang mempunyai makna, sehingga kriptanalis tidak punya cara untuk menentukan plaintext mana yang benar. Meskipun One Time

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 : c i = (p i + k i ) mod 256 (2.2) Dalam hal ini, p i adalah plaintext ke-i, k i adalah kunci ke-i, dan c i 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 : p i = (c i - k i ) mod 256 (2.3) Sebagai contoh : Sebuah huruf plaintext B akan dienkripsi dengan menggunakan kunci I (kunci ini masih dipilih sembarang, karena belum menggunakan metode pembangkit bilangan acak, untuk sistem yang akan dibuat selanjutnya, kunci yang terpilih sudah menggunakan metode LCG seperti yang sudah

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)