pengantar
Fungsi hash kriptografi adalah serangkaian langkah yang mengubah blok data yang berubah-ubah menjadi urutan panjang tetap. Setiap perubahan dalam data masukan menyebabkan perubahan nilai fungsi. Fungsi hash digunakan untuk menghitung checksum, saat membuat tanda tangan elektronik, saat menyimpan kata sandi dalam sistem keamanan dalam bentuk kode hash, dll.
Keluarga fungsi hash CubeHash diusulkan sebagai standar SHA-3 baru dalam kompetisi hash National Institute of Standards and Technology (NIST) 2009 .
Artikel ini menjelaskan prinsip operasi keluarga ini, dan juga membahas tentang resistensi algoritme terhadap berbagai serangan.
Deskripsi Algoritma
Berikut ini adalah algoritma kerja menurut spesifikasi [1].
Pengoperasian algoritma ditentukan oleh 3 parameter:
- ukuran urutan keluaran dalam bit,
- jumlah putaran,
- ukuran blok pesan input dalam byte,
Ide dari algoritma ini adalah untuk mengubah keadaan secara berurutan berdasarkan urutan masukan. Algoritme terdiri dari 5 langkah:
inisialisasi keadaan internal
memecah pesan menjadi beberapa blok
transformasi keadaan berulang
.
32 - ( little-endian).
3 . . .
. . . .
. . .
1, .
.
F
, , , . 10 :
,
,
,
,
1
,
,
4
,
[2]:
-
:
: - .
: 2 .
-, , - , , , .
CubeHash
, . .. , , .
50% . . , 128 [3].
. . , . . , 64 [3].
.
[4] , , .
. ( ), . , , .
, , , . , , , [2]. , , , .
F
128- [2]. 15 :
|
AABBCCDD |
EEFFGGHH |
IIJJKKLL |
MMNNOOPP |
|
ABABCDCD |
EFEFGHGH |
IJIJKLKL |
MNMNOPOP |
|
ABBACDDC |
EFFEGHHG |
IJJIKLLK |
MNNMOPPO |
|
ABCDABCD |
EFGHEFGH |
IJKLIJKL |
MNOPMNOP |
|
ABCDBADC |
EFGHFEHG |
IJKLJILK |
MNOPNMPO |
|
ABCDCDAB |
EFGHGHEF |
IJKLKLIJ |
MNOPOPMN |
|
ABCDDCBA |
EFGHHGFE |
IJKLLKJI |
MNOPPONM |
|
ABCDEFGH |
ABCDEFGH |
IJKLMNOP |
IJKLMNOP |
|
ABCDEFGH |
BADCFEHG |
IJKLMNOP |
JILKNMPO |
|
ABCDEFGH |
CDABGHEF |
IJKLMNOP |
KLIJOPMN |
|
ABCDEFGH |
DCBAHGFE |
IJKLMNOP |
LKJIPONM |
|
ABCDEFGH |
EFGHABCD |
IJKLMNOP |
MNOPIJKL |
|
ABCDEFGH |
FEHGBADC |
IJKLMNOP |
NMPOJILK |
|
ABCDEFGH |
GHEFCDAB |
IJKLMNOP |
OPMNKLIJ |
|
ABCDEFGH |
HGFEDCBA |
IJKLMNOP |
PONMLKJI |
32- . . , , , . , .
.
( )
,
.
,
, . . .
(cycle per byte cpb). , 1 .
SHA-256, SHA-512 CubeHash16/32 Intel Core 2Duo 6f6 (a) Intel Core 2 Duo E8400 1067a (b) [5]:
11.47 cpb: CubeHash 16/32, (b), amd64 architecture.
12.60 cpb: SHA-512, (b), amd64 architecture.
12.60 cpb: SHA-512, (a), amd64 architecture.
12.66 cpb: CubeHash 16/32, (a), amd64 architecture.
12.74 cpb: CubeHash 16/32, (b), x86 architecture.
14.07 cpb: CubeHash 16/32, (a), x86 architecture.
15.43 cpb: SHA-256, (b) x86 architecture.
15.53 cpb: SHA-256, (b), amd64 architecture.
15.56 cpb: SHA-256, (a), amd64 architecture
17.76 cpb: SHA-512, (b), x86 architecture.
20.00 cpb: SHA-512, (a), x86 architecture
22.76 cpb: SHA-256, (a), x86 architecture
CubeHash SHA-3 -, NIST. Cubehash , . , CubeHash , .
. , CubeHash 8 / 1-512 CubeHash 1 / 1-512, CubeHash 1 / 1-512 , CubeHash 1 / 2-512. - CubeHash 1/128- h.
: .
DJ Bernstein. Spesifikasi Cubehash (2.b.1)
Vikash Jha. Kriptanalisis dari Cubehash.
Philip Doughty Jr. Serangan umum di CubeHash, kandidat SHA-3.
Benjamin Bloom dan Alan Kaminsky. Serangan Blok Tunggal dan Uji Statistik di CubeHash.
DJ Bernstein. Tweak parameter CubeHash: 16 kali lebih cepat.