rabbit stream cipher for you
Rabbit Stream Cipher
Nikson Badua Putra
STSN
Ciseeng
Parung
Bogor
Stsn-nci.ac.id
Rabbit stream cipher berbasis pada perulangan sebuah himpunan dari fungsi non linier yang berpasangan. Rabbit dikenal dengan performanya yang tinggi dalam implementasi software dengan ukuran kecepatan enkripsi/dekripsi 3,7 clock cycles per byte pada sebuah processor Pentium III paper ini juga membahas mengenai analisis pengamanan, dengan keterangan analisis korelasi dan penelitian secara aljabar. Kriptanalis tidak dapat melakukan serangan lebih dari penyelidikan kunci yang mendalam.
Kata kunci : Stream cipher, cepat, non-linier, berpasangan, counter, chaos
1. ![]()
Pendahuluan
Stream cipher merupakan sebuah kelas penting dari algoritma enkripsi simetrik. Filosofi rancangan dasarnya diilhami One-Time-Pad cipher yang dienkrip dengan meng-XOR teks terang menggunakan kunci acak. Bagaimana pun juga, kebutuhan akan kunci sama ukurannya dengan teks terang membuat One-Time-Pad tidak dapat dijalankan pada sebagian besar aplikasi. Sebagai alternatif, stream cipher mengembangkan sebuah kunci acak yang pendek menjadi sebuah aliran kunci semu acak, yang lalu di-XOR dengan teks terang untuk membangkitkan teks sandi. Maka dari itu, tujuan yang telah direncanakan untuk sebuah stream cipher adalah mengefisienkan pembangkitan bit-bit semu acak yang tidak membedakan dengan bit-bit yang betul-betul acak.
1.1 ![]()
Latar Belakang Rabbit
Design rabbit diinspirasikan oleh jalan rumit dari chaotic maps yang mempunyai nilai riil. Chaotic maps dicirikan dengan sebuah sensitivitas eksponensial pada kekacauan kecil yang menyebabkan iterasi maps tersebut agar terlihat acak dan tidak dapat diprediksikan dalm jangka waktu yang panjang. Properti-properti tersebut sebelumnya juga mengarahkan kita kepada sugesti bahwa system chaotic dapat digunakan untuk keperluan kriptografi, lihat referensi [1], [2]. Bagaimana pun juga, walaupun sistem chaotic menampilkan kebiasaan yang terlihat acak., mereka tidak perlu diamankan secara kriptografis dalam bentuk diskret, lihat contoh [3, 4]. Alasan lainnya adalah bahwa fungsi chaotic yang didiskretkan tidak secara otomatis menghasilkan kebiasaan rumit dengan cukup dari mengkorespondensikan fungsi biner, yang merupakan sebuah syarat pengamanan kriptografis. Oleh karena itu, kompleksitas fungsi biner diperlukan untuk dipertimbangkan dalam tahap rancangan yang perlu untuk dimodifikasi. Selain itu, banyak cipher yang dianjurkan didasarakan pada chaos yang didapat dari kemampuan mereproduksi permasalahan-permasalahan dari aliran kunci yang mengacu pada penanganan yang berbeda-beda untuk bilangan-bilangan floating-point pada bermacam prosesor, lihat contoh [5].
Tujuan yang telah dirancang untuk rabbit adalah untuk mengambil keuntungan dari property-properti yang terlihat acak dari chaotic maps yang bernilai riil, dan pada waktu yang sama, property-properti kriptografi yamg mempunyai keamanan optimal, saat didiskretkan. Lebih tepatnya, rancangannya diinisiasikan dengan membuat sebuah chaotic system dari map-map non-linier yang dipasangkan. Sistem ini lalu dibatasi menjadi fixed-point valued1. Reproduksibilitas yang terjamin ini, dan membuat sistemnya dapat dianalisa dari sudut pandang biner menggunakan teknik kriptografi yang terkenal (lihat contoh [7]). Analisanya memberikan alasan kepada beberapa perbaikan sistematik dari system persamaan, beberapa di antaranya secara terbatas merupakan alami biner, sebagai contoh dari rotasi dan operator XOR. Perubahan-perubahan ini menjadi keuntungan bagi kompleksitas fungsi-fungsi biner sebaik performanya.
1.2 ![]()
Rabbit Secara Umum
Algoritma rabbit dapat dijelaskan secara singkat sebagai berikut. Algoritmanya mempunyai 128 bit kunci rahasia sebagai input dan membangkitkan sebuah blok output dari 128 bit yang semu acak dari sebuah kombinasi bit-bit internal state. Enkripsi atau dekripsinya dihasilkan dari meng-XOR data yang semu acak dengan teks terang atau teks sandi. Ukuran dari internal state adalah 513 bit terbagi menjadi 8 kali 32 bit variable state dan 8 kali 32 bit counter dan sebuah cunter carry bit. 8 variabel state dibaharui dengan 8 funsi integer non linier yang dipasangkan. Counter-counternya mengamankan sebuah lompatan rendah pada panjang periode dari variabel state. Rancangan tujuan yang spesifik dari rabbit adalah sebagai berikut :
· Keamanan : cipher sebaiknya memperbolehkan sebuah ukuran kunci dari 128 bit untuk mengenkripsi hingga 264 bit teks terang.
· Sebaiknya lebih cepat dari cipher-cipher yang telah digunakan sebelumnya.
1.3 Hasil Ringkasan
Kriptanalisis rabbit dihasilkan seperti berikut ini. Untuk menyelidiki kemungkinan serangan divide and conquer dan guess and determine, sebuah analisis aljabar dilakukan dengan perhatian khusus pada bagian-bagian non linier dari fungsi next state, sebagaimana mereka merupakan sumber utama untuk mencampurkan bit-bit input. Tidak ada serangan yang ditemukan yang lebih baik dari pencarian kunci secara mendalam (exhaustive key search). Untuk menguji ketahanan terhadap jenis serangan korelasi dan distinguishing, sebuah analisis korelasi dilakukan dengan menghitung Walsh-Hadamard spectra dari bagian-bagian non linier. Berdasarkan analisis korelasi, kita tidak yakin bahwa terdapat jenis sebuah jenis serangan korelasi, yang membutuhkan usaha yang lebih kecil dibandingkan pencarian kunci sacara mendalam (exhaustive key search), untuk panjang output lebih kecil dari 264 bit..
1.4 Pengaturan dan Catatan
Pada bagian kedua akan dijelaskan rincian desain rabbit. Kita akan membicarakan kriptanalisis rabbit pada bagian ketiga, dan pada bagian keempat akan diberikan hasil dari pelaksanaan rabbit. Akan terdapat kesimpulan dan ringkasan pada bagian kelima. Lampiran A berisi kode C ANSI rabbit. Perhatikan penjelasan di bawahnya dan source code-nya ditetapkan untuk prosesor little endian (misalnya sebagian besar prosesor Intel). Lampiran B berisi uji vector. Lampiran C membicarakan rincian bagian-bagian penting dari sistem counter.
Notasi yang digunakan sebagai berikut :
menunjukkan logika XOR, & menunjukkan logika AND, << dan >> menunjukkan logika bit-wise shift kiri dan kanan, <<< dan >>> menunjukkan logika rotasi bit wise ke kiri dan kanan, dan ◊ menunjukkan rentetan rangkaian 2 bit. A[g...h] berarti bit g hingga h merupakan variabel A. Saat menomori bit-bit variabel, bit yang paling kecil (LSB) ditunjukkan dengan 0. Bilangan heksadesimal ditunjukkan dengan “0x”. Yang terakhir, kita menggunakan notasi integer untuk semua variabel dan konstanta.
2. Desain Rabbit
Pada bagian ini akan diberikan penjelasan terperinci dari desain algoritma rabbit.
2.1 Algoritma Cipher
Bagian dalam stream cipher terdiri dari 513 bit. 512 bit dibagi menjadi 2 bagian yaitu
32-bit variabel state xj,i sebanyak 8,dan 32-bit variable counter cj,i di mana xj,I merupakan variabel state dari subsistem j pada iterasi i, and cj,i menunjukkan korespondensi variabel counter. Terdapat satu bit carry counter, Ø7,i, yang perlu disimpan saat iterasi bit carry counter ini diinisialisasikan dengan 0. Delapan variabel state dan delapan counterdiperoleh kunci, pada saat inisialisasi kunci.
· Skema Pengaturan Kunci
Algoritma ini diawali dengan mengembangkan 128-bit kunci menjadi into both the delapan variabel state
dan delapan counter sedemikian sehingga ada korespondensi satu-satu antara kunci dan inisial variabel state xj,0 dan inisial counter cj,0. Kunci K[127..0], dibagi menjadi delapan bagian: k0 = K[15..0], k1 = K[31..16], …, k7 =
K[127..112]. variabel state dan counter diinisialisasikan dari bagian-bagian kunci seperti berikut :
(1)
dan
(2)
Sistem ini diiterasi empat kali, mengacu pada fungsi state yang selanjutnya dijelaskan di bawah, untuk mengurangi korelasi antara bit-bit kunci dan bit-bit variable internal state. Pada akhirnya, nilai counter akan diinisialisasikan kembali, yang mengacu pada :
(3)
Untuk mencegah recovery kunci dari inversi sistem counter.
· Fungsi Next State
Inti dari algorithm rabbit adalah iterasi system, yang dijelaskan dengan persamaan berikut :
(4)
(5)
Dengan semua penjumlahan merupakan modulo 232. Sistem berpasangan ini diilustrasikan secara skematik dalam gambar.
1. Sebelum iterasi, counter ditambahkan seperti yang akan dijelaskan di bawah ini.
<!–[if supportFields]> SHAPE \* MERGEFORMAT <![endif]–>
|
<<<16 |
|
<<<16 |
|
<<<16 |
|
<<<16 |
|
<<<16 |
|
C0,i
|
|
C1,i
|
|
C7,i
|
|
C6,i
|
|
C0,i
|
|
C1,i
|
|
C7,i
|
|
C6,i
|
|
C2,i
|
|
C3,i
|
|
C4,i
|
|
C5,i
|
|
C2,i
|
|
C5,i
|
|
C4,i
|
|
C3,i
|
|
<<<8 |
|
<<<16 |
|
<<<8 |
|
<<<16 |
|
<<<8 |
|
<<<8 |
|
<<<16 |
![]()
![]()
![]()
![]()

<!–[if supportFields]><![endif]–>
Gambar 1: Grafik Ilustrasi Sistem.
· Sistem Counter
Dinamika counter dijelaskan sebagai berikut :
(6)
Dengan bit carry,
, diberikan oleh
(7)
Selanjutnya, konstanta
didefinisikan sebagai :
(8)
· Skema Ekstraksi
Setelah setiap iterasi 128 bit output dibangkitkan seperti berikut :
(9)
dengan
merupakan blok aliran kunci 128 bit pada iterasi
.
· Skema Enkripsi / dekripsi
Bit yang diekstrak lalu di-XOR dengan teks terang atau teks sandi untuk enkripsi atau dekripsi.
(10)
(11)
dengan
dan
menotasikan teks sandi ke-
dan blok teks terang, secara berturut-turut.
3. Analisis Keamanan
Analisis keamanan dibagi menjadi enam bagian. Pertama, akan dibahas mengenai fungsi pengatuan kunci dan properti counter. Lalu akan ditampilkan analisis aljabar dari fungsi next state. Sebuah analisis korelasi dari fungsi biner dan membahas properti statistic dari rabbit. Yang terakhir, bagian hasil penelitian digunakan pada jenis serangan yang
Khusus seperti Guess and Determine, Divide and Conquer, Distinguishing and Correlation attacks.
3.1 Properti Pengaturan Kunci
Pada bagian ini akan digambarkan properti khusus dari skema pengaturan kunci. Pengaturan ini dapat dibagi ke dalam tiga tahap : Ekspansi kunci, iterasi sistem dan modifikasi counter.
· Ekspansi Kunci
Pada tahap pengaturan kunci ada dua properti. Yang pertama menjadi sebuah korespondensi satu-satu antara kunci, state, dan counter, yang menjaga kelebihan kunci. Properti yang lain adalah bahwa setelah sebuah iterasi fungsi next state, setiap bit kunci telah dibuat-buat seperti semua delapan variabel state. Lebih tepat lagi, untuk sebuah bit kunci yang diberikan terdapat sebuah
sedemikian bahwa bit kunci ini mempengaruhi output dari
Pada setiap delapan subfungsi next state paling sedikit satu dari fungsi
dimasukkan.
· Iterasi Sistem
Skema ekspansi kunci memastikan bahwa setelah dua iterasi dari fungsi next state, semua bit state dipengaruhi oleh seluruh bit kunci dengan besar peluang = 0,5. Batas keamanan dihasikan dari empat kali iterasi sistem.
· Modifikasi Counter
Meskipun counter dapat diketahui seorang attacker, modifikasi counter membuatnya menjadi sulit untuk menemukan kembali kunci dengan menginversi sistem counter sam halnya dengan membutuhkan pengetahuan tambahan mengenai variabel state. Mengacu pada modifikasi counter, kita tidak dapat menjamin bahwa setiap kunci menghasilkan nilai counter yang unik.
3.2 Properti Counter
Pada bagian ini akan dijelaskan mengenai dinamika counter, di antaranya panjang periode dan kemungkinan perubahan kunci dari nilai bit individual.
· Panjang Periode
Ciri yang paling utama dari counter dibantu stream cipher adalah bahwa lower bounds tepat pada panjang periode dapat dihasilkan. Sistem counter yang diambil pada rabbit mempunyai panjang periode 2256 -1. Karena dapat ditunjukkan bahwa input fungsi g mempunyai minimal periode yang sama, sebuah lower bound yang terlalu konservatif pada periode variabel state, Nx > 2158, dapat diamankan.

Hi, this is a comment.
To delete a comment, just log in, and view the posts’ comments, there you will have the option to edit or delete them.