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.