Algoritma Kriptografi Keccak (SHA-3)


KRIPTOGRAFI
(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

Komentar

Postingan populer dari blog ini

Model Pengembangan Rekayasa Perangkat Lunak

Quick Sort C++