Keamanan Algoritma Kriptografi Pembangkit Bilangan Acak Pembangkit Bilangan Acak Semu

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 . UNIVERSITAS SUMATERA UTARA

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 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 : UNIVERSITAS SUMATERA UTARA 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. 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 UNIVERSITAS SUMATERA UTARA 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.