• Tidak ada hasil yang ditemukan

Fast Correlation Attack pada LILI-128

N/A
N/A
Protected

Academic year: 2021

Membagikan "Fast Correlation Attack pada LILI-128"

Copied!
7
0
0

Teks penuh

(1)

Fast Correlation Attack pada LILI-128

Agung Nursilo, Daniel Melando

Jupri Rahman, R. Ahmad Imanullah Z. Tingkat III Teknik Kripto 2009/2010

Abstrak

Pada tulisan ini, akan ditunjukkan fast correlation attack pada algoritma LILI-128. Serangan ini memiliki kompleksitas sekitar 271 operasi bit yang diterima dengan panjang sekitar 230 bit dan kompleksitas fase prekomputasi sebesar 279 tabel lookup. Kompleksitas ini secara signifikan lebih rendah daripada 2112, Dimana diperkirakan oleh penemu LILI-128 menjadi lebih rendah terikat pada kompleksitas dari setiap serangan.

1. Pendahuluan

LILI-128 keystream generator adalah generator yang sederhana dan cepat yang menggunakan dua binary LFSR dan dua fungsi untuk menghasilkan rangkaian biner keystream pseudorandom. LILI-128 adalah cipher yang diambil dari keluarga LILI keystream generator. LILI-128 telah diajukan sebagai kandidat synchronous stream cipher pada projek NESSIE. Proyek NESSIE merupakan proyek dalam Information SecoritiesTecnology (IST) Program Komisi Eropa, yang berjalan pada tahun 2000-2002. Tujuan utama dari proyek ini adalah untuk mengajukan portofolio kriptografi primitif yang kuat yang diperoleh setelah open call dan telah dievaluasi menggunakan proses yang transparan dan terbuka.

Dalam pengajuan LILI-128 desainernya memperkirakan bahwa kompleksitas dari setiap divide and conquer attack pada LILI-128 setidaknya 2112 operasi. Kita petik dari paper yang diajukan desainer LILI-128 “Ini adalah perkiraan konservatif, dan tingkat keamanan yang sebenarnya mungkin jauh lebih tinggi”.

Dalam tulisan ini, ditunjukkan bahwa dimungkinkan untuk melakukan fast correlation attack dengan kompleksitas sekitar 271 operasi dengan mengasumsikan telah dimiliki rangkaian dengan panjang sekitar 128MByte menggunakan fase prekomputasi dengan kompleksitas 279.

(2)

2. Deskripsi LILI-128

Pada bagian ini diberikan penjelasan singkat mengenai LILI-128 keystream generator. LILI-128 keystream generator merupakan clock-controlled nonlinear filter generator. Generator terdiri dari dua feedback shift register, dinotasikan dengan LFSRc dan LFSRd. Panjang total LFSR

adalah 128 dan pada saat initial state , dan saat inisialisasi 128 bit kunci menyediakan initial state dari LFSR.

Generator dibagi menjadi dua subsistem. Subsistem pertama menghasilkan rangkaian integer yang digunakan untuk mengontrol clocking subsistem kedua, yang pada selanjutnya menghasilkan keystream. Struktur LILI-128diilustrasikandalamGambar 1.

Gambar 1. LILI-128 keystream generator LFSRc adalah LFSR dengan panjang 39 dengan feedback polynomial

( )

Karena ( ) primitif, rangkaian yang dihasilkan oleh LFSRc adalah rangkaian dengan panjang

maksimum. Isi stage 12 dan 20 LFSRc adalah input kefungsi fc. Fungsi fc mengambil dua bit

sebagai masukan dan menghasilkan sebuah integer ck, sehingga ck ∈ {1, 2, 3, 4}. Nilai ck dihitung

sebagai :

( )

Rangkaian integer c = c1, c2,. . . mengendalikan clocking LFSRd, dalam arti LFSRd di-clock ck

kali sebelum menghasilkan nilai keluaran zk. Dengan demikian, dari definisi c, LFSRd di-clock

setidaknya sekali dan paling banyak empat kali antara output bit keystream berturut-turut. Panjang LFSRd adalah 89 dan feedback polynomial LFSRd adalah polinomial primitif

(3)

Isi 10 stage yang berbeda dari LFSRd adalah input ke fungsi Boolean fd, fd : → . Output

dari fd adalah rangkaian keystream z1, z2, . . .

Terakhir, dilakukan penambahan bitwise output generator z1, z2, . . . ke plaintext (operasi XOR),

dan didapatkan ciphertext.

3. Fast Correlation Attack

Ketika menyerang synchronous stream cipher, diasumsikan penyerang mempunyai barisan keystream z1, z2, . . . . , zN dan tugas si penyerang (attacker) adalah bisa menemukan kunci K.

Serangan ini merupakan known-plaintext attack karena keystream dengan mudah diperoleh jika pasangan pesan dan ciphertext diberikan.

Gambar 2. Subsistem pembangkitan data

Ada beberapa kelas serangan terhadap binary stream cipher. Salah satu kelas penting serangan terhadap stream cipher berbasis LFSR adalah fast correlation attack. Fast correlation attack pada LILI-128 ini aplikasi dari teknik umum yang diajukan oleh V.Chepyzhov, T.Johansson, dan B.Smeets (A simple algorithm for fast correlation attacks on stream ciphers)

Diasumsikan kita telah mengobservasi barisan keystream dengan panjang N, z = (z1, z2, . . . , zN).

Misal barisan output dari fd dinyatakan dengan d = (d1, d2, . . . , dM) di mana M > N ketika

LFSRd secara reguler di-clock. Selanjutnya tentukan barisan s = (s1, s2, . . . , sN), sk ∈ Z, di mana

Dengan menggunakan barisan d dan s kita dapat mengobservasi barisan z sebagai

Prinsip serangannya adalah sebagai berikut. Tebak sebuah initial state LFSRc, dan hitung barisan

(4)

Jika initial state LFSRc yang ditebak benar, barisan s bersama dengan z akan memberikan kita N

simbol ds1, ds2 , . . . , dsN.

Kemudian, kita menggunakan N simbol d yang diperoleh tadi untuk menemukan initial state LFSRd. Nyatakan barisan yang dihasilkan LFSRd (dalam clocking reguler) dengan u = (u1, u2, . .

. , uN). Simbol output ke-i dari fd diberikan sebagai

( )

Langkah selanjutnya adalah pendekatan linier fungsi fd. Untuk sebuah fungsi Boolean

, → , transformasi Walsh dari f(x) didefinisikan sebagai real-valued function F(ω) pada vector space diberikan oleh

( ) ∑( ) ( )

di mana dot product vektor x dan didefinisikan sebagai .

Kita mendefinisikan nonlinieritas dari fungsi Boolean f(x), dinotasikan dengan Nf sebagai

Hamming distance terhadap fungsi affine terdekat, yaitu ( )

di mana f dan g adalah tabel kepercayaan dari f(x) dan g(x). An adalah himpunan fungsi affine

pada n variabel dan dH(f,g) adalah Hamming distance antara dua vektor f dan g, yaitu jumlah

posisi di mana f dan g berbeda.

Nonlinieritas dari f(x) dapat diperoleh dari transformasi Walsh sebagai ( )

Fungsi fd yang digunakan pada LILI-128 mempunyai nonlinieritas Nfd = 480. Hal ini

mengakibatkan kita dapat menemukan fungsi linier fl(x1,x2, . . . , x10) = a1x1 + a2x2 + . . . + a10x10

sehingga dH(fd,fl) = 480. Jadi, jika kita menggunakan fungsi ini untuk memperkirakan fd, kita

mendapatkan

( ( )) ( ))

(1)

Kita sebut probabilitas pada perhitungan (1) korelasi teridentifikasi. Untuk menyederhanakan kita punya

(5)

Spektrum Walch lengkap fungsi fd adalah sebagai berikut. Terdapat 720 ∈ yang berbeda

dengan F(ω)= 0.64 dengan F(ω)= ± 32 dan 240 dengan F(ω) ± 64. Hal ini berarti terdapat 240 fungsi affine yang berbeda fl1 , fl2 , . . . , fl240 sehingga

Selanjutnya, kita memodifikasi algoritma yang diajukan oleh V. Chepyzhov, T. Johansson, dan B. Smeets, menggunakan algoritma parameter t = 3. Misal himpunan rangkaian LFSRd yang mungkin dinotasikan dengan £. Karena LFSRd mempunyai panjang 89 |£| = 289 dan untuk

barisan tetap dengan N dari £ juga linier [N,89] kode blok, yang disebut С. Terdapat 89 x

N matriks generator GLFSR. Jelasnya, u = u0GLFSR, di mana adalah initial state LFSRd. Setiap simbol ui dapat ditulis sebagai kombinasi linier initial state u0. Ketika kita mengganti fd dengan fl, kita dapat menulis output dari fl sebagai kombinasi linier initial

state u0. Hingga, kita dapat menemukan sebuah matriks G 89 x N, sehingga rangkaian output v dari fl dapat ditulis sebagai v = u0G. Matriks G dapat dilihat sebagai matriks

generator dari kode linier C’ lain.

Tambahan lagi, dengan menggunakan semua 240 fungsi afine {fl1, fl2, . . . , fl240} dengan korelasi yang sama, kita bisa mendapatkan 240 matriks berukuran 89 x N yang berbeda, yang ditandai dengan G1, G2, . . . , G240. Dengan merangkaikan matriks-matriks ini kita mendapatkan matriks 89 x240 N berikut

Misal gi merupakan kolom ke-i dari G', yaitu

Misal k < 89 merupakan beberapa nilai tetap. Pada fase serangan prekomputasi kita menemukan semua triple kolom, gi1, gi2, gi3, sehingga

di mana * menunjukkan nilai yang berubah-ubah (tidak semua nol)

Untuk menemukan semua triple seperti itu kita lanjutkan sebagai berikut. Tempatkan tiap kolom G' pada sebuah daftar, yang dirutkan berdasarkan nilai dari 89 – k entri terakhir. Untuk setiap pasangan kolom gi1, gi2 hitung nilai gi1 + gi2 pada posisi 89 – k terakhir. Periksa jika terdapat

(6)

kolom gi3, sehingga persamaan (2) terpenuhi. Hal ini mudah dilakukan karena kolom telah

diurut. Sehingga, waktu berjalan saat langkah prekomputasi adalah O(N2). Misal jumlah triple yang memenuhi persamaan (2) adalah m. Tunjukkan indeks semua triple tersebut sebagai

Jika i1, i2 dan i3 memenuhi persamaan (2), penjumlahan vi1 + vi2 + vi3 adalah kombinasi linier

dari simbol k pertama dari initial state LFSRd. Sehingga,

membentuk sebuah kode (m, k), yang dinotasikan dengan C3. Dengan menggunakan z kita dapat menghitung

Vektor (Z1, Z2, . . . , Zm) bertindak sebagai word yang diterima untuk C3. Karena korelasi antara

zi dan vi, kita dapat menuliskan zi = vi + ei, di mana ei adalah variabel biner acak dengan

. Definisikan vektor error untuk C3 sebagai (E1, E2,

. . . , Em), di mana

Karena ei adalah variabel acak independen, untuk k = 1, 2, . . . , m jelas bahwa Ek juga variabel

acak biner yang independen dengan probabilitas error

di mana є = 0.03125 untuk LILI-128, dan p3 ≈ 0.49988

Terakhir, kita mendekode C3 menggunakan Maximum Likehood decoding (ML-decoding).

Algoritma ini menghasilkan sebuah codeword dari C3 yang terdekat dengan (Z1,Z2, . . . ,Zm). Dari

codeword ini, kita mendapatkan k bit initial state LFSRd. Bit initial state yang tersisa ditentukan

dengan cara yang sama. Penting dicatat bahwa mendapatkan bit tersisa mempunyai kompleksitas yang dapat diabaikan dibandingkan dengan menentukan k bit pertama.

Metode di atas telah dijelaskan untuk regulary clocked LFSRd. Ditinjau dari kasus LILI 128,

ketika LFSRd di-clock menggunakan barisan c, kita membutuhkan sedikit modifikasi serangan. Karena P(ci = j) = 0.25 untuk j = 1, 2, 3, 4 , LFSRd di-clock rata-rata 2.5 kali antara output

(7)

kali, di mana M ≈ 2.5 N. Barisan c menentukan simbol N mana dari d1, d2, . . . , dM yang

digunakan untuk menghasilkan keystream z.

Pada fase prekomputasi correlation attack kita butuh untuk mempertimbangkan seluruh simbol M yang mungkin ketika kita mengkonstruksi kode C3. Sehingga, waktu prekomputasi adalah O(M2) tabel lookup. Dari setiap initial state LFSRc yang mungkin memilih N posisi dan dari

himpunan persamaan dari bentuk (2) kita bisa mengatakan bahwa initial state LFSRc yang ditebak adalah valid.

Gambar

Gambar 1. LILI-128 keystream generator  LFSR c  adalah LFSR dengan panjang 39 dengan feedback polynomial

Referensi

Dokumen terkait

Kekayaan jenis burung tertinggi terdapat pada habitat tepian sungai yaitu 27, diikuti sekitar jalan hutan 21 jenis, tepian rumah memiliki 26 jenis, sedangkan daerah interior

Nyoman Kutha Ratna, Metodologi Penelitian Kajian Budaya dan Ilmu Sosial Humaniora Pada Umumnya.. (Yogyakarta: Pustaka Pelajar,

BERBAK Kabupaten Tanjung Jabung Timur Tahun Anggaran 2014, untuk Paket Pekerjaan tersebut diatas telah dilaksanakan Pembukaan Penawaran pada Tanggal 20 Agustus 2014, dimana

Jurnal ABDI KAMI (Jurnal Pengabdian Kepada Masyarakat) | Vol. Yasin dan Tahlil di tiap-tiap perdukuhan. Desa yang terdiri dari 3 perdukuhan ini, memiliki kelompok kegiatan

• Pada konjungtivitis alergi musiman dan alergi tumbuh- tumbuhan keluhan utama adalah gatal, kemerahan, air mata, injeksi ringan konjungtiva, dan kemosis berat. • Pasien

Penelitian ini dilakukan untuk membuktikan pengaruh pemberian ekstrak ginseng sebagai terapi tambahan pada terapi standar PPOK eksaserbasi sebagai antiinflamasi

Berkenaan dengan hal tersebut di atas, kami mengundang Saudara untuk hadir pada acara pembuktian kualifikasi dengan membawa dokumen Penawaran dan kualifikasi yang asli

Fungsi transfer untuk suatu sistem kontrol linier invariant waktu didefini- sikan sebagai perbandingan antara transformasi Laplace output dengan transfor- masi Laplace input