Algoritma Kriptografi Keccak (SHA-3)
(KEAMANAN
KOMPUTER)
ALGORITMA
KRIPTOGRAFI KECCAK (SHA-3)
SHA-3 ini dikenal
sebagai Keccak yang dirancang oleh Guido Bertoni, Joan Daemen, Peeters Michael,
dan Gilles Van Assche. SHA-3 atau Keccak ini merupakan pemenang dari kompetisi
fungsi hash NIST. SHA-3 ini menggunakan
sponge construction dimana blok pesan XOR ke dalam bit awal state yang kemudian
di lakukan permutasi, dimana input ke state hash pada tingkatan tertentu akan
menghasilkan output yang mempunyai tingkatan yang sama. SHA-3 terdiri dari 5 x
5 array 64-bit kata, 1600 bit total. Belum ada standar untuk fungsi SHA-3 ini
termasuk sistem enkripsi otentik dan pohon hash. Kriptografi (atau kriptologi;
dari Yunani κρυπτός, kryptos, “tersembunyi, rahasia”; dan γράφω, gráphō, “Saya
menulis”, atau-λογία,-logia, masing-masing) adalah studi praktek dan
menyembunyikan informasi. Kriptografi modern mengambil disiplin ilmu
matematika, ilmu komputer, dan rekayasa. Aplikasi kriptografi termasuk kartu
ATM, password komputer, dan perdagangan elektronik. Kriptografi fungsi hash
adalah jenis ketiga algoritma kriptografi. Mereka mengambil pesan dari setiap
panjang sebagai masukan, dan output yang pendek, panjang tetap hash yang dapat
digunakan di (untuk contoh) tanda tangan digital. The US National Security
Agency mengembangkan Secure Hash Algorithm MD5-seri seperti fungsi hash SHA-0
adalah algoritma yang cacat, SHA-1 secara luas digunakan dan lebih aman
daripada MD5, namun telah mengidentifikasi cryptanalysts serangan terhadap hal
itu; SHA-2 meningkatkan keluarga pada SHA-1, tetapi belum digunakan secara
luas, dan otoritas standar AS menganggap “bijaksana” dari perspektif keamanan
untuk mengembangkan sebuah standar baru untuk “secara signifikan meningkatkan
kekokohan keseluruhan NIST hash algoritma toolkit. “Dengan demikian, sebuah
kompetisi desain fungsi hash sedang berlangsung dan dimaksudkan untuk memilih
standar nasional Amerika Serikat yang baru, disebut SHA-3, pada tahun 2012. SHA-3,
awalnya dikenal sebagai Keccak adalah fungsi hash kriptografi dirancang oleh
Guido Bertoni, Joan Daemen, Peeters Michaël, dan Gilles Van Assche. Pada
tanggal 2 Oktober 2012, Keccak terpilih sebagai pemenang kompetisi fungsi hash
NIST. SHA-3 tidak dimaksudkan untuk menggantikan SHA-2, karena tidak ada
serangan yang signifikan pada SHA-2 telah dibuktikan. Karena serangan yang
sukses pada MD5, SHA-0 dan serangan teoritis pada SHA-1, NIST dirasakan
kebutuhan untuk hash, kriptografi alternatif yang berbeda, yang menjadi SHA-3.
Para penulis mengklaim 12,5 siklus per byte pada CPU Intel Core 2. Namun, dalam
implementasi hardware itu terutama lebih cepat daripada semua finalis lainnya. SHA-3
menggunakan sponge construction di mana blok pesan XOR ke dalam bit awal state,
yang kemudian invertibly permutasi. Dalam versi yang digunakan dalam SHA-3,
state terdiri dari 5 × 5 array 64-bit kata-kata, 1600 bit total. Penulis Keccak
ini telah mengusulkan tambahan, belum ada standar untuk fungsi, termasuk sistem
enkripsi otentik dan pohon hash untuk hashing lebih cepat pada arsitektur
tertentu. Keccak juga didefinisikan untuk ukuran w ke 1 bit (25 bit state
total).
ANALISIS KEAMANAN DAN IMPLEMENTASI
Dalam
hal kriptografi, keamanan suatu rancangan enkripsi atau dekripsi sangatlah
penting. Oleh karena itu setiap kali muncul metode enkirpsi atau dekripsi yang
baru harus diuji terlebih dahulu keamanannya agar bisa menjadi bahan
pertimbangan bagi penggunanya.
A. Keamanan
Untuk
menaksir keamaan dari sebuah konstruksi dapat digunakan indifferentiability
framework yang diperkenalkan oleh Maurer, Renner dan Holenstein. Dalam penelitian “Indifferentiability,
impossibility results on reductions, and applications to the random oracle
methodology”[2] Sebelumnya sudah dibuktikan bahwa probabilitas keberhasilan
suatu difenesiasi sponge construction
memanggil permutasi yang bersifat acak dibatasi atasnya oleh 1 - exp(-N22-(c+1)),
dengan N adalah jumlah pemanggilan f atau inversenya. Batasan ini
menyederhanakan batasan bawahnya √π 2c/2 untuk kompleksitas yang diharapkan
dari differentiating attack yang berhasil. Seperti dijelaskan pada bagian III,
keccak menggunakan struktur spon. Penggunaan struktur spon ini aman terhadap
generic attack karena sesuai dengan indifferentiability proof. Selain itu,
fungsi permutasi keccak-f juga didesain sedemikian rupa sehingga tidak ada
properti yang dapat dieksploitasi. Salah satu masalah dalam keccak adalah
adanya masalah CICO (Constrained input constrained output). Dalam [1],
penelitian dilakukan untuk menyelesaikan masalah ini, yaitu dengan menggunakan
triangulation tool. Pada percobaan ini dilakukan pengesetan fixed variable
untuk mencari free variable. Gambar ini merupakan hasil dengan solusi untuk
jumlah round 3, dan pengesetan 2 fixed variable.
B. Implementasi
Pada implementasinya,
keccak memiliki beberapa keunggulan, diantaranya yaitu security-speed trade
off. Dalam hal ini, implementasi bisa dilakukan bergantung apa yang dibutuhkan
oleh pengguna, yaitu kecepatan atau keamanan.
c-bit terakhir dari state
tidak pernah secara langsung terpengaruh oleh blok-blok masukan dan tidak
pernah dikeluarkan selama fase squeezing. Kapasitas c sebenarnya menentukan tingkat
keamanan yang dapat dicapai dari sebuah konstruksi.
Tingkat keamanan dalam
keccak berbanding terbalik dengan kecepatannya. Sehingga, semakin tinggi
tingkat keamanan implementasi keccak, maka kecepatannya akan semakin berkurang.
Hal ini dikarenakan, hubungan bitrate dan kapasitas yang saling membentuk
panjang permutasi, yaitu bitrate ditambah dengan capacity ini menghasilkan
panjang permutasinya, maka suatu keccak untuk panjang permutasi yang sama dapat
dikenakan dua pilihan, yaitu:
1. Lebih
cepat namun kurang aman. Hal ini dapat dilakukan dengan meningkatkan
bitrate-nya, yang otomatis akan mengurangi kapasitas.
2. Lebih
aman namun kurang cepat / lebih lamban. Hal ini dapat dilakukan dengan
meningkatkan kapasitas, yang secara otomatis mengurangi bitratenya.
Contoh kasus untuk
masalah tersebut adalah untuk kasus keccak-f[1600], yang berarti r + c = 1600,
dengan asumsi tingkat sekuritas 2c/2 dan tingkat kecepatan adalah r.
1. Jika
r = 1024, dan c = 576, memiliki tingkat sekuritas 2c/2=2288,
dan tingkat kecepatan 1024.
2. Jika
r = 512, dan c = 1028, memiliki tingkat sekuritas 2c/2=2544,
dan tingkat kecepatan 512.
Dari hasil diatas
didapatkan bahwa hasil pertama jauh lebih cepat dari pada hasil yang kedua,
namun hasil yang ke dua jauh lebih aman dari pada hasil yang pertama.
Penghitungan performansi
implementasi keccak pada software telah dilakukan pada [4], dengan menggunakan
keccak-f[1600] pada dua platform yang berbeda yaitu:
1. Platform
A:
o
Linux openSUSE 11.0 x86 64 o CPU: Intel
Xeon 5150 (CPU ID: 06F6),
2.66GHz, dual core o 1333MHz
and 4Mb of level-2 cache o Compiler: GCC 4.4.1 using “gcc -O3 -g0
march=barcelona” untuk 64-bit code dan penambahan “-m32” untuk 32-bit code.
2. Platform
B:
o
Vista Ultimate x86 or x64, version
6.0.6001,
SP1 build 6001; o CPU:
Intel Core2 Duo E6600 at 2.4GHz; o x86: Microsoft Visual Studio 2008 Version
9.0.21022.8 RTM,
32-bit C/C++
Optimizing Compiler
Version
15.00.21022.08 untuk
80x86 o x64: Microsoft Visual Studio 2008 version 9.0.30428.1 SP1Beta1,
Microsoft Windows SDK 6.1 Targeting Windows Server 2008
x64 C/C++ Optimizing
Compiler Version 15.00.21022.08 untuk x64.
Dengan c = cycle; dan c/b
= cycle/byte.
didapatkan bahwa performansi yang dilakukan
dengan kompilasi menggunakan instruksi 32-bit lebih rendah dari pada 64-bit,
karena memang instruksi 64-bit bisa menyelesaikan perhitungan dengan lebih
cepat karena mampu menyelesaikan 64-bit setiapkalinya. Untuk meningkatkan
performansi dari 32-bit dilakukan optimasi dengan menggunakan SIMD atau single
instruction multiple data.
Pada implementasi
algoritma keccak dalam hardware, bergantung pada arsitektur yang digunakan. Hal
ini dikarenakan perbedaan arsitektur menyebabkan perbedaan trade-off kecepatan
dan sekuritas yang sudah dijelaskan sebelumnya.
Terdapat dua arsitektur
yang sudah dipelajari dan diimpelemntasikan algoritma keccak ini, yaitu
highspeed core dan low-area coprocessor. Pada high-speed core, core terdiri
dari 3 komponen utama, yaitu: fungsi round, state register dan input/output
buffer. Pada fase absorbsing, I/O buffer memberikan transfer input secara
simultan melalui bus dan komputasi keccak-f untuk input sebelumnya. Sedangkan
dalam fase squeezing, I/O buffer memberikan transfer output secara simultan
melalui bus dan komputasi keccak-f untuk output setelahnya.
Selain itu, Keccak telah
diimplementasikan dalam VHDL untuk diterapkan pada ASIC dan FPGA . Namun
implementasi keccak dalam bahasa VHDL sangat sulit [8]. Tapi implementasi dalam
FPGA yang telah dilakukan bisa mendapatkan performansi yang tinggi dengan cukup
mudah.
Algoritma
Kriptografi Keccak (SHA-3)
Perhitungan logika hash SHA-3 menggunakan state : c =
25W-r state bit yang tidak tersentuh oleh input atau output atau tanpa stack
pada logika prosesnya. Hal ini dapat disesuaikan berdasarkan persyaratan
keamanan, tetapi SHA-3 usulan menetapkan c = 2n konservatif, di mana n adalah
ukuran dari hash output. Dengan demikian r, jumlah bit pesan yang diproses per
blok permutasi, tergantung pada ukuran hash output. R rate 1152, 1088, 832,
atau 576 (144, 136, 104 dan 72 byte) untuk 224,, 256 384 dan ukuran hash 512-bit,
masing-masing, ketika w adalah 64. Untuk memastikan pesan dapat merata dibagi
menjadi r-bit blok, itu diisi dengan pola bit 10 * 1: 1 bit, nol atau lebih bit
0 (maksimum r-1), dan sedikit 1 akhir. Bit 1 akhir diperlukan karena bukti
konstruksi spons keamanan mensyaratkan bahwa blok pesan akhir ini tidak
semua-nol. Untuk menghitung hash, menginisialisasi negara untuk 0, pad input,
dan memecahnya menjadi r-bit potongan. Menyerap masukan ke negara, yaitu, untuk
masing-masing bagian, XOR ke bagian dan kemudian menerapkan blok permutasi. Setelah
blok akhir permutasi, n bit bagian terdepan adalah hash yang diinginkan. Karena
r selalu lebih besar dari n, sebenarnya ada pernah ada kebutuhan untuk
permutasi blok tambahan dalam fase squeezing[5]*. Namun, panjang output dapat
berbeda-beda mungkin berguna dalam aplikasi seperti bantalan enkripsi asimetris
yang optimal. Dalam kasus ini, n adalah parameter keamanan daripada ukuran
output. Meskipun bukan bagian dari persyaratan pemetaan memory SHA-3, varian
yang lebih kecil dari blok permutasi dapat digunakan, untuk ukuran output hash
sampai setengah ukuran masing-masing bagian, jika r terdapat pada tingkatan
terbatas. Sebagai contoh, hash 256-bit dapat dihitung dengan menggunakan 25
32-bit kata-kata jika r = 800-2 × 256 = 288 (36 byte per iterasi). Berikut
adalah langkah-langkah contoh pembuatan message menggunakan hash SHA-3 digest
secara garis besar adalah sebagai berikut:
·
Penambahan bit-bit pengganjal (padding
bits).
·
Penambahan nilai panjang pesan semula.
·
Inisialisasi penyangga (buffer) MD.
·
Pengolahan pesan dalam blok berukuran 512
bit.
1. Penambahan Bit-bit
Pengganjal
Pesan
ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan
(dalam satuan bit) kongruen dengan 448 modulo 512. Ini berarti panjang pesan
setelah ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512.
Angka 512 ini muncul karena SHA memperoses pesan dalam blok-blok yang berukuran
512. Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit pengganjal.
Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi
960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512. Bit-bit
pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.
2. Penambahan Nilai
Panjang Pesan Semula
Pesan
yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit
yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang
pesan sekarang menjadi 512 bit.
3. Inisialisai Penyangga
MD
SHA
membutuhkan 5 buah penyangga (buffer) yang masing-masing panjangnya 32 bit (MD5
hanya mempunyai 4 buah penyangga). Total panjang penyangga adalah 5 ´ 32 = 160
bit. Keempat penyangga ini menampung hasil antara dan hasil akhir. Kelima
penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga diinisialisasi
dengan nilai-nilai (dalam notasi HEX) sebagai berikut:
A = 67452301
B = EFCDAB89
C = 98BADCFE
D = 10325476
E = C3D2E1F0
4. Pengolahan Pesan dalam
Blok Berukuran 512 bit.
Pesan dibagi menjadi L
buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL – 1).
Setiap blok 512-bit
diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut
proses HSHA. Proses HSHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran),
dan masing-masing putaran menggunakan bilangan penambah Kt, yaitu:
Putaran 0 £ t £ 19 Kt = 5A827999
Putaran 20 £ t £ 39 Kt = 6ED9EBA1
Putaran 40 £ t £ 59 Kt = 8F1BBCDC
Putaran 60 £ t £ 79 Kt = CA62C1D6
Yq menyatakan blok 512-bit
ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit
nilai panjang pesan semula. MDq adalah nilai message digest 160-bit dari proses
HSHA ke-q. Pada awal proses, MDq berisi nilai inisialisasi penyangga MD.
Setiap putaran
menggunakan operasi dasar yang sama (dinyatakan sebagai fungsi f).
Operasi dasar SHA yang
diperlihatkan pada Gambar 3 dapat ditulis dengan persamaan sebagai berikut:
a, b, c, d, e ¬ (CLS5(a)
+ ft(b, c, d) + e + Wt + Kt), a,
CLS30(b), c, d
yang dalam hal ini,
a, b, c, d, e = lima buah
peubah penyangga 32-bit
(berisi nilai penyangga
A, B, C, D, E)
t = putaran, 0 £ t £ 79
ft = fungsi logika
CLSs = circular left
shift sebanyak s bit
Wt = word 32-bit yang
diturunkan dari blok 512 bit yang sedang diproses
Kt = konstanta penambah
+ = operasi penjumlahan modulo 232
Secara garis besar dapat
dinyatakan dalam kode program[6] berikut:
for t ¬ 0 to 79 do
TEMP ¬ (a <<< 5)
+ ft(b, c, d) + e + Wt + Kt)
e ¬ d
d ¬ c
c ¬ b <<< 30
b ¬ a
a ¬ TEMP
endfor
Keccak merupakan
algoritma fungsi hash satu arah yang berbasis pada konstruksi spon dengan
menggunakan fungsi permutasi keccak-f dengan rentang (panjang) permutasi b,
ukuran setiap lane dimana:
b
= 25 x 2l ............................... (2)
Dengan
0
≤ l ≤ 6 ................................. (3)
Algoritma keccak memiliki
prinsip yang sama dengan algoritma cipher block, dimana proses dilakukan
terhadap blok-blok, setiap hasil proses bergantung dari masukan dan hasil
proses sebelumnya, serta setap proses dikenakan pada sebuah fungsi utama yang
terdiri dari sejumlah round fungsi yang diiterasi beberapa kali. Namun terdapat
perbedaan antara algoritma hash satu arah Keccak, dengan algoritma cipher
block, yaitu:
1. Keccak
tidak memiliki key-schedule.
2. Menggunakan
konstanta round yang bersifat tetap dari pada round key.
Keccak menggunakan inner
state selama proses hashing berlangsung. Dan fungsi spon yang digunakan terdiri
dari padding, absorbing, dan squeezing. Setiap state memiliki panjang sesuai
dengan panjang permutasi, yaitu b.
Algoritma keccak menerima
tiga parameter masukan, yaitu bitrate (r), capacity (c), dan
difersity (d). Secara umum proses dari keccak ini adalah:
1. Preproses
pesan masukan (P), yaitu menerapkan padding pada pesan masukan. Panjang pesan
masukan hasil padding harus merupakan kelipatan r, dengan r = bitrate.
2. Pemecahan
pesan masukan menjadi P0, P1, P2,…Pi,
dimana i = jumlah kelipatan panjang bitrate untuk panjang pesan masukan.
3. Absorbing
pada semua pecahan pesan masukan.
4. Squeezing
sebanyak j, dimana j = kelipatan panjang keluaran r/w untuk memenuhi panjang
output yang diinginkan, r = bitrate dan w = panjang lane dari state. Dengan:
w
= 2l .................................. (4)
5. Keluaran
merupakan konkatenasi dari keluaran Squeezing pada rentang bitrate tertentu.
A.
State
State pada keccak
merupakan serangkaian bit yang dipandang sebagai suatu array tiga dimensi dari
bit-bit tersebut. Setiap sumbu pada array tersebut direpresentasikan oleh x, y,
dan z. x x y merupakan slice dari state, dan z merupakan sumbu lane state.
Proses yang dilakukan
pada state keccak berbasis pada tiap slice state tersebut. Jumlah bit untuk
tiap slice pada state adalah tetap yaitu 5 x 5 atau 25-bit. Sedangkan ukuran
tiap lane untuk state adalah 1, 2, 4, 8, 16, 32 atau 64. Gambar 1 menjelaskan
mengenai state dan elemen-elemennya dengan lebih detil.
B.
Spon
Fungsi Spon pada keccak
berbasis pada konstruksi spon. Konstruksi spon merupakan konstruksi iterasi
sederhana untuk membangun sebuah fungsi spon dengan variabel panjang input dan
panjang output yang berubah-ubah bergantung pada panjang transformasi (atau permutasi)
tetap f yang beroperasi dalam sejumlah tetap b dalam bit.
Dari Gambar Tersebut,
secara umum, dalam konstruksi spon terdapat dua fase, yaitu fase absorbing dan
fase squeezing.
1. Fase
absorbing, merupakan fase dimana proses dilakukan terhadap semua pecahan dari
input masukan (P0, P1, P2,…Pi)
di-xor-kan dengan bagian bitrate dari state kemudian dilewatkan kedalam fungsi
f. Absorbing dilakukan secara iteratif sesuai dengan jumlah pecahan yang
didapat.
2. Fase
squeezing, merupakan fase untuk mendapatkan hasil keluaran. Dalam fase ini
dilakukan konkatenasi terhadap sejumlah bit tertentu dari hasil fungsi f
sedemikian sehingga jumlah bit konkatenasi tersebut sama dengan jumlah bit
konkatenasi yang diinginkan.
Fungsi spon keccak
merupakan penerapan dari konstruksi spon dengan terlebih dahulu melakukan
proses inisialisasi. Secara umum proses inisialisasi dibagi menjadi dua tahap,
yaitu:
1. Men-set
setiap bit pada state dengan nol untuk inisial state.
2. Menerapkan
padding pada pesan masukan sedemikian sehinga panjang pesan masukan merupakan
kelipatan dari panjang bitrate awal yang ditentukan. Proses ini dilakukan
dengan menambahkan 1 dan sejumlah 0 sesedikit mungkin sampai panjang pesan
memenuhi kelipatan panjang bitrate state yang ditentukan. Persamaan (5) dan (6)
diterapkan dalam proses ini [7].
P
= pad(M, 8) || enc(d, 8) || enc(r/8, 8) ......... (5)
P
= pad(P, r) ............................. (6)
o
pad(M, n), fungsi dimana pesan M ditambah
1 kemudian ditambah 0 sedemikian rupa sehingga jumlah M merupakan kelipatan
terkecil dari n.
o
enc(x, n), fungsi yang menghasilkan string
dengan panjang n-bit yang diambil dari Least Significant Bit (LSB) ke Most
Significant Bit (MSB), pada x.
C. Fungsi Permutasi
Keccak-f
Persamaan umum untuk
fungsi keccak-f adalah keccak-f[b] atau keccak-f[r+c], dimana b sesuai dengan
persamaan (2). Karena nilai l mempunyai rentang antara 0 sampai 6, maka nilai b
yang mungkin adalah 25. 50, 100, 200, 400, 800 dan 1600.
Fungsi permutasi keccak-f
merupakan fungsi utama dalam keccak. Fungsi ini mengambil state sebagai
masukan, dan melakukan sejumlah operasi permutasi yang terdiri dari 5 tahapan
operasi yaitu: non-linearity (chi), diffusion (theta), inter-slice dispersion
(rho), disturbing horizontal/vertical aligntment (pi), dan break symetri
(iota).
Operasi permutasi dalam
fungsi keccak-f ini sering juga disebut dengan Round. Dalam setiap fungsi
keccak-f dilakukan beberapa round. Jumlah round yang rekomendasikan dapat
dihitung dengan menggunakan persamaan (7), dengan l sebagaimana dalam persamaan
(3) [7]. Jadi untuk keccak-f[1600], jumlah round yang direkomendasikan adalah
24.
Nr
= 12 + 2l ............................. (7)
C.1. Operasi
non-linearity / χ (chi)
Operasi non-linearity
merupakan satu-satunya operasi non-linear mapping dalam keccak-f. Tanpa operasi
ini, fungsi round keccak akan menjadi linier. Operasi ini dapat dipandang
sebagai aplikasi 5w operasi S-Box untuk 5-bit baris.
Operasi ini sendiri
bersifat invertible atau dapat dibalikan, invers dari χ itu sendiri bersifat
berbeda [4]. Operasi non-linier χ adalah komplemen dari fungsi non-linier γ
padar RadioGatun, Panama, dan beberapa algoritma lainnya.
C.2. Operasi diffusion /
θ (theta)
Operasi diffusion
bersifat linier. Operasi ini hanya men-xor-kan 11 bit menjadi satu. Oleh karena
itu, setiap bit berpengaruh terhadap sebelas bit lainnya. Dalam proses ini
terjadi 50 XOR dan 5 rotasi. Gambar ini masing-masing menjelaskan tentang proses
dan algoritma dari proses ini.
Operasi disturbing
horizontal/vertical alignment adalah sebuah operasi transposisi terhadap sebuah
lane yang menyediakan dispersi dan bertujuan untuk mendapatkan long-term
diffusion [4]. Inti dari operasi ini adalah mengalikan setiap bit pada slice
dengan matrix
Operasi inter-slice
dispersion terdiri dari operasi translasi dalam lane. Tanpa opersai ini, difusi
antara slice akan menjadi sangat lambat. Operasi ini juga bersifat linier,
dengan inverse berupa penggeseran ulang yang bekebalikan dengan penggeseran
sebelumnya.
Operasi break symetri
terdiri dari penambahan konstanta round yang bertujuan untuk membuyarkan
kesimetrisan. Jumlah posisi bit aktif dalam konstanta round adalah l + 1. Jika
l bertambah, konstanta round akan menambah ke-asimetrisan lebih banyak.
Kelebihan
Dan Kekurangan Algoritma Kriptografi Keccak (SHA-3)
Kelebihan dari SHA – 3 diantaranya
Algoritma keccak merupakan algoritma yang berbasis
struktur spon, yang terdiri dari 2 fase yaitu absorbing dan squeezing. Pada
fase absorbing, dilakukan permutasi terhadap input masukan, sedangkan pada fase
squeezing dilakukan permutasi dan penggabungan untuk mendapatkan hasil
keluaran.
·
Kelebihan dari SHA – 3 diantaranya :
·
memvalidasi password
·
menghindari kesalahan pengiriman password
dalam kondisi clear
·
memastikan data tidak berubah selama
ditransmisikan
dilakukan dengan cara
mengenkrip nilai hash sebuah dokumen dengan menggunakan private key, sehingga
menghasilkan tanda tangan digital untuk suatu dokumen.
Kelemahan dari SHA – 3
diantaranya
Fungsi
hash yang memerlukan memory yang cukup besar. Pemetaan blok harus dalam jumlah
space memory yang besar karena perputaran hingga 512 bit.
REFRENSI
·
informatika.stei.itb.ac.id/~rinaldi.munir/.../Makalah2-IF3058-Sem2-2010-2011-071.pdf https://www.slideshare.net/RajeevVerma14/keccakpptx
Komentar
Posting Komentar