Studi Grǿstl sebagai salah satu kandidat SHA 3
Daniel Melando, Ninik Ratna Dewi, R. Ahmad Immanullah Zakariya Tingkat II Teknik Kripto
Sekolah Tinggi Sandi Negara
1. Pendahuluan
Grǿstl adalah salah satu kandidat SHA 3 yang diadakan oleh NIST. Algoritma ini dikirim oleh Lars Ramkilde Knudsen. Grǿstl adalah algoritma iterated compression hash function yang dibangun dari dua permutasi yang jelas, tetap, dan besar. Desain Grǿstl sangat berbeda dengan SHA family. Terdapat dua permutasi yang dibangun dari trail design strategy yang besar yang membuat algoritma ini menjadi tahan terhadap kriptanalisis. Ditambah lagi asumsi bahwa permutasi yang digunakan adalah permutasi ideal, maka menambah kekuatan fungsi hash yang dibangun.
Grǿstl berbasis SP network yang mengadopsi banyak komponen AES termasuk S-box yang digunakan maupun layer difusi yang digunakan sehingga kekuatannya ada pada difusi dan konfusi yang dibangun.
Grǿstl juga disebut dengan konstruksi wide pipe yang ukuran internal statenya sangat besar dibanding dengan ukuran output. Efek yang ditimbulkan yaitu sangat sulit dalam melakukan serangan. Grǿstl juga memunyai performa yang bagus pada range platform yang luas dan tahan terhadap side channel attack sama seperti AES.
2. Tujuan Desain
Tujuan dari desain agoritma ini adalah untuk desain yang elegan, dan mudah dianalisis.
Pada kenyataannya, fungsi iterasi yang diaplikasikan pada fungsi kompresi membuat kemiripan dengan sifat algoritma hash yang lain.
2.1 Tujuan desain untuk Grøstl
Analisis Grøstl sangat sederhana. Grøstl menggunakan permutasi bilangan kecil sebagai pengganti block cipher (dengan banyak permutasi)
Terkonstruksi secara aman (dengan asumsi permutasi yang ideal).
Permutasi didasari prinsip desain yang terkenal
Tidak ada persyaratan khusus untuk bentuk tertentu dan ukuran kata, performance yang baik pada platform yang berjarak jauh
Anti terhadap side-channel dengan tambahan biaya yang sedikit
Mendefinisikan variant yang tereduksi untuk kemudahan kriptanalisis
Mencegah length-extension attack
Bisa diimplementasikan untuk mengeksploitasi paralelisasi dalam fungsi kompresi
2.2 Toleransi Kegagalan Desain
Permutasi yang digunakan seharusnya idela, sehingga serangan yang ada pada fungsi kompresi tidak akan mempengaruhi fungsi hash.
Internal state lebih besar dibanding output akhir, oleh karena itu, semua jenis serangan yang umum digunakan akan gagal
Teknik yang digunakan untuk mengetahui ketidak idealan permutasi hanya akan bisa dilakukan pada variant yang dikurangi
Serangan pada fungsi kompresi tidak berpengaruh pada ungsi hash.
Tidak ada serangan pada fungsi kompresi yang terbukti memenuhi lower bound
2.3 Pertimbangan desain untuk fungsi kompresi
Desain fungsi hash secara tradisional biasanya berdasarkan pada desain blok cipher.
Hal ini dikarenakan key schedule nya memiliki peran yang sangat penting. Keuntungan metodologi desain seperti itu adalah sebagai berikut:
Tidak ada serangan melalui key schedule
Karena key schedule pada block cipher seringkali lambat tetapi performance dapat ditingkatkan
Sederhana 3 Spesifikasi Grøstl
Grøstl adalah kumpulan dari fungsi hash, mampu mencerna pesan kembali dari sejumlah byte dari 1 sampai 64, yaitu, dari 8 sampai 512 bit pada langkah 8-bit. Sisa varian n bit disebut Grøstl-n. Grøstl termasuk dalam ukuran message digest (MD) 224, 256, 384, dan 512 bit.
3.1 The hash function construction
Fungsi hash yang Grøstl mengiterasi fungsi kompresi fungsi f sebagai pesan berikut.
Pesan M telah di padding dan dipecah menjadi ℓ-bit blok pesan m1,..., mt, dan setiap pesan blok diproses satu-persatu. Sebuah initial nilai ℓ-bit h0=IV didefinisikan, dan kemudian subsekuen pesan blok mi diproses sebagai
Oleh karena itu, f memetakan dua input ℓ bit masing-masing ke output ℓ bit. Masukan pertama yang disebut chaining input, dan masukan kedua disebut message block. Untuk varian Grøstl mengembalikan sampai 256 bit, ℓ didefinisikan sebagai 512. Untuk varian yang lebih besar, ℓ adalah 1024.
Setelah blok pesan terakhir diproses, output H(M) pada fungsi hash dihitung sebagai
Dimana Ω adalah output transformation. Ukuran output dari Ω adalah n bit, n < ℓ .
Gambar 1. Grøstl
3.2 Konstruksi fungsi kompresi
Fungsi kompresi f berdasarkan 2 permutasi ℓ-bit P dan Q. Didefinisikan sebagai berikut:
.
Gambar 2. Fungsi Kompresi
3.3 Transformasi output
Truncn(x) menjadi operasi yang membuang semua deret kecuali deretan n bit dari x.
Kemudian output transformasi Ω didefinisikan dengan
3.4 Desain P and Q
Seperti disebutkan, fungsi kompresi f berbentuk dua varian, satu digunakan untuk message digest singkat, dan satu digunakan untuk message digest panjang. Setiap varian menggunakan pasangan sendiri dari permutasi P dan Q. Jadi, didefinisikan sebanyak empat permutasi. Permutasi akan ditetapkan dengan subskrip 512 atau 1024.
Gambar 3. Output Transformasi
Desain P dan Q terinspirasi oleh algoritma blok cipher Rijndael. Ini berarti bahwa desain Rijndael terdiri dari beberapa round R, yang terdiri dari beberapa round transformasi. Karena P dan Q jauh lebih besar daripada ukuran normal Rijndael, sebagian besar transformasi round
telah didefinisikan ulang. Dalam Grøstl, sebanyak empat putaran transformasi didefinisikan untuk setiap permutasi.
AddRoundconstant
SubBytes
ShiftBytes
MixBytes
Ketika perbedaan diperlukan, transformasi ketiga ShiftByteswill akan disebut ShiftBytesWide bila digunakan dalam permutasi besar P1024 dan Q1024. Transformasi lain dapat digambarkan dengan cara yang sama untuk semua empat permutasi.
Satu round R terdiri dari empat round transformasi ini diterapkan dalam urutan di atas.
Dengan demikian,
Semua round mengikuti definisi ini. Jumlah round dinotasikan r.
Transformasi yang beroperasi pada state direpresentasikan sebagai matriks A dari byte.
Untuk varian pendek, matriks memiliki 8 baris dan 8 kolom, dan untuk varian besar, matriks memiliki 8 baris dan 16 kolom degan notasi v nomor kolom, Bytes konstannya c3.
3.4.1 Pemetaan dari urutan byte ke negara matriks dan sebaliknya
Karen Grøstl beroperasi pada byte, pada umumnya endianness netral. Pemetaan yang dilakukan dengan cara yang sama seperti dalam Rijndael yaitu 64-byte urutan dengan urutan 000102...3f
Gambar 4. Transformasi dasar Grǿstl
F F
F F
E E
E E
D D
D D
C C
C C
B B
B B
A A
A A
3 37 2 27 1 17 0 07
3 36 2 6 1 16 0 06
3 35 2 25 1 15 0 05
3 34 2 24 1 14 0 04
3 33 2 23 1 13 0 03
3 32 2 22 1 12 0 02
39 31 29 21 19 11 09 01
38 30 28 20 18 10 08 00
Gambar 5. Matrik Hasil Pemetaan
3.4.2 AddRoundConstant
P dan Q memiliki konstanta round yang berbeda yang terletak pada permutasinya.
Konstanta round adalah sebuah matrik yang pada kolom dan barisnya hanya terdapat 1 posisi yang bukan nol. Round constant ini digunakan pada P512 dan P1024 yang pada dasarnya sama.
Gambar 6. AddRoundConstant untuk Permutasi P dan Q
3.4.3 SubBytes
Subbytes mensubstitusi masing-masing byte pada state matriks dengan nilai lain, mengambil dari s-box S. S-Box yang dipakai sama dengan S-Box satu yang digunakan Rijndael. Oleh karena itu, jika ai,j adalah elemen di dalam baris i dan kolom j dari A, maka Subbytes melaksanakan transformasi sebagai berikut:
3.4.4 Shift Bytes
Shiftbytes dan Shiftbyteswide secara siklis menggeser bytes di dalam suatu baris ke kiri oleh sejumlah posisi. Misal s= [ s0, s1,..., s7] daftar bilangan bulat berbeda di dalam cakupan dari 0 untuk v-1.
Gambar 7. SubBytes Subtitude
Maka, Shiftbytes memindahkan semua bytes di baris i pada state matriks si ke kiri.
Vektor s didefinisikan sebagai s = [ 0, 1, 2, 3, 4, 5, 6, 7] dalam Shiftbytes, dan = [ 0, 1, 2, 3, 4, 5, 6, 11] pada Shiftbyteswide.
Gambar 8. ShiftByte
Gambar 9. ShiftBytesWide
4.5 Mix Bytes
Pada transformasi Mixbytes, masing-masing kolom di dalam matriks ditransformasi secara bebas. Untuk menguraikan transformasi yang dilakukan, kita harus mengenal finite field.
Finite field ini sama dengan Rijndael yang irreducible polinomial pada F2
Matriks ini adalah circulant, yang berarti bahwa masing-masing baris sama dengan pergeseran satu kali ke kanan.
Gambar 10. Matriks Circulant
3.4.6 Jumlah round
Jumlah r round adalah suatu parameter keamanan yang tuneable. Di sini direkomendasikan nilai r untuk empat permutasi.
Tabel 1. Permutasi yang Dipakai
3.5 Initial values
Initial value ivn Grøstl-N adalah l-bit yang mempresentasikan n. Tabel di bawah menunjukkan initial value yang diperlukan oleh ukuran output 224, 256, 384, dan 512 bit.
Tabel 2. Initial Value
3.6 Padding
Panjang masing-masing blok pesan adalah l. Untuk dapat mengoperasikan input dengan panjang sembarang, dilakukan padding. Fungsi padding ini mengambil string x dengan panjang N bit dan menghasilkan string x*= pad(x) yang panjangnya perkalian dari l.
Fungsi padding bekerja sebagai berikut. Pertama, menambahkan bit ‘1’ dari x.
Kemudian, menambahkan w = - N- 65 mod l ‘0’ bit, dan terakhir menambahkan 64-bit yang merupakan representasi dari ( N+ w+ 65)/l.
4. Keputusan dan Fitur Desain
Keuntugan Grǿstl dibanding algoritma yang lain yaitu : a. Keamanan
Karena menggunakan permutasi yang ideal, maka Grǿstl memiliki properti collision resistant dan preimage resistant.
b. Fleksibel
Algoritma ini bisa diimplementasi pada beberapa platform karena parameter keamanan r dan jumlah round dapat dengan mudah diubah.
c. Sederhana
Konstruksi permutasi sederhana dan mudah dipahami.
d. Tidak asing
Karena algoritma ini berdasar pada Rijndael, maka sudah banyak dikenal dan tidak asing lagi.
4.1 Keamanan konstruksi
Konstruksi fungsi kompresi yang digunakan dapat dibuktikan aman karena menggunakan dua permutasi P dan Q yang ideal. Dibutuhkan nilai yang besar dalam percobaan untuk menemukan nilai collision pada algoritma Grǿstl. Asumsi yang digunakan adalah permutasi yang digunakan ideal padahal, pada kenyataannya serangan terhadap permutasi yang tidak ideal tidak akan menambah peluang serangan pada algoritma itu sendiri.
4.2 AddRoundConstant
Tujuan dari penambahan konstanta round yaitu agar masing-masing round berbeda dan pada saat yang sama P dan Q juga berbeda. Bila permutasi yang digunakan sama, maka hasilnya merupakan perluasan dari permutasinya, dan hal itu akan menimbulkan jumlah fixed point P dan Q adalah 1. Pada implementasinya, penggunaan P dan Q yang berbeda tidak menimbulkan kesalahan yang besar karena kode masih dapat dishared antara P dan Q. Round constant yang digunakan sederhana agar mengurangi performa dalam melakukan kesalahan.
4.3 SubBytes
SubBytes adalah satu-satunya elemen non linear yang ada pada Grǿstl yang menggunakan s-box yang sama seperti AES. Alasan pemakaiannya sebagai berikut :
a. Ukuran yang mudah dalam implementasi
b. Menggunakan singe s-box agar implementasi mudah dan pertimbangan kriptanalisis c. S-box yang digunakan lebih efisien di hardware dibanding s-box acak
d. S-box AES sudah lama dipelajari dan termasuk s-box yang kuat e. Implementasi pada hardware sudah banyak dipelajari
4.4 ShiftBytes dan ShiftBytesWide
Niai pergeseran yang dimiliki harus optimal dalam arti state byte minimal 1 state byte lain. Nilai pergeseran yang digunakan juga merupakan nilai yang ada pada AES.
4.5 MixBytes
Tujuan dari mixbytes adalah memperluas transformasi trail stategi dengan menggunakan error correcting code dengan MDS.
4.6 Output Transformasi
Transformasi output dibutuhkan karena chaining ukuran variabel lebih besar dibanding output. Transformasi output yang dilakukan dengan cara pemotongan. Karena fungsi kompresi yang digunakan ini tidak ideal, maka fungsi yang dipakai adalah fungsi one way dan collision resistant tetapi bukan fungsi komresi sebelum dilakukan pemotongan. ω (x) = P (x) ⊕ x.
Konstruksi Matyas-Meyer-Oseas untuk fungsi hash didasarkan pada blok cipher yang menyediakan fungsi kompresi g dan didasarkan pada fungsi enkripsi EK g (h, m) = Eh (m) ⊕ m
Fungsi ini telah terbukti one way dan collision resistant dengan asumsi bahwa E yang digunakan adalah ideal. Dengan fakta itu, maka sulit menyerang Grǿstl dengan menggunakan output transformasi.
4,7 Jumlah putaran
Pada square attack, permutasi dapat dibedakan dari permutasi ideal jika jumlah round kurang dari 7. Semakin besar jumlah round, maka akan semakin kuat tingkat keamanan yang dimiliki.
4,8 Trapdoor
Semua konstanta yang digunakan dalam Grǿstl harus jelas termasuk penggunaan s-box sehingga termasuk dalam trapdoor.
5. Penggunaan Grǿstl
5.1 Otentikasi pesan
HMAC adalah salah satu cara membangun otentikasi pesan menggunakan hash function.
Ket :
K : Paddingan k menjadi blok dengan panjang sesuai degan fungsi hash Opad dan ipad : 2 konstanta yang berbeda yang sudah didefinisikan
Ada lagi metode lain
, M adalah M ditambah dengan perkalian dari l bit.
5.2 Randomized Hashing
Agar message authenticationnya aman, maka dilakukan penambahan nilai acak yang selalu baru z sebelum pesan dihash.
5.3 Klaim keamanan pada Grǿstl
Tabel 3. Klaim Keamanan Grǿstl 6. Hasil Kriptanalisis
Pada tulisan in tidak akan dibahas kriptanalisis Grǿstl secara detail. Secara umum, serangan pada Grǿstl dibagi menjadi lima serangan yakni serangan pada permutasi yang termasuk di dalamnya differential cryptanalysis,linier cryptanalysis, integral, dan algebraic attack collision attack yang di dalamnya mengandung collision attack pada fungsi kompresi, dan collision attack pada fungsi hash, iterasi yang di dalamnya termasuk multicollision attack, second preimage attack, dan length extension attack, dan fixed point.
Berdasarkan hal itu, maka hasil kriptanalis data dijadikan table sbagai berikut :
Tabel 4. Serangan Grǿstl
Ternyata selain serangan yang bersifat matematis itu, terdapat side channel attack yaitu cache based timing attacks, power- and em side-channel attacks, dan on countermeasures.
7. Implementasi
Secara umum Grǿstl mudah diimplementasikan baik pada software maupun hardware.
Pada software, Grǿstl diperuntukkan pada prosesor 64 bit, tetapi performanya bagus untuk prosesor ukuran 32 bit. Pada hardware, Grǿstl adalah algoritma yang mengijinkan penggunanya untuk trade off yang terlalu besar, laten, gerbang count, konsumsi daya, dan lain- lain. Benchmarks on pc platforms diperuntukkan bagi pesan yang panjang. Benchmarks on pc platforms ditunjukkan pada tabel di bawah ini
Tabel 5. Implementasi
8. Kesimpulan
Grǿstl adalah salah satu kandidat SHA 3 yang dikirim oleh Lars Ramkilde Knudsen dalam NIST. Grǿstl adalah algoritma iterated compression hash function yang dibangun dari dua permutasi yang jelas, tetap, dan besar. Terdapat dua permutasi yang dibangun dari trail design strategy yang besar yang membuat algoritma ini menjadi tahan terhadap kriptanalisis.
Grǿstl berbasis SP network yang S-box dan layer difusinya mengamil dari AES. Grǿstl juga disebut dengan konstruksi wide pipe yang ukuran internal statenya lebih besar dibanding dengan output. Hal ini dilakukan agar serangan yang dilakukan sulit. Grǿstl juga memunyai performa yang bagus pada range platform yang luas dan tahan terhadap side channel attack.
9. Referensi
Knudsen, dkk. 2008. Grøstl – a SHA-3 Candidate