This is featured post 1 title
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.This theme is Bloggerized by Lasantha - Premiumbloggertemplates.com.

This is featured post 1 title
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.This theme is Bloggerized by Lasantha - Premiumbloggertemplates.com.

This is featured post 1 title
Replace these every slider sentences with your featured post descriptions.Go to Blogger edit html and find these sentences.Now replace these with your own descriptions.This theme is Bloggerized by Lasantha - Premiumbloggertemplates.com.

Minggu, 30 Juni 2013
About Security : What, How MD5 Security
Dalam kriptografi, MD5 (Message-Digest
algortihm 5) ialah fungsi hash kriptografik yang digunakan
secara luas dengan hash value 128-bit. Pada standart Internet
(RFC
1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi
keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas
sebuah berkas.
MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk
menggantikan hash function sebelumnya, MD4.
Pada tahun 1996, sebuah kecacatan ditemukan dalam
desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan
menggunakan algoritma lain,
seperti SHA-1 (klaim
terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004,
kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan
algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.
Sejarah dan Kriptoanalisis .
MD5 adalah
salah satu dari serangkaian algortima message
digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest,
1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 —MD4 —
mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai
pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans
Dobbertin).
About Security : What, How MD5 Security
Dalam kriptografi, MD5 (Message-Digest
algortihm 5) ialah fungsi hash kriptografik yang digunakan
secara luas dengan hash value 128-bit. Pada standart Internet
(RFC
1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi
keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas
sebuah berkas.
MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk
menggantikan hash function sebelumnya, MD4.
Pada tahun 1996, sebuah kecacatan ditemukan dalam
desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan
menggunakan algoritma lain,
seperti SHA-1 (klaim
terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004,
kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan
algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.
Sejarah dan Kriptoanalisis .
MD5 adalah
salah satu dari serangkaian algortima message
digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest,
1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 —MD4 —
mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai
pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans
Dobbertin).
Pada tahun 1993, den Boer dan Bosselaers memberikan
awal, bahkan terbatas, hasil dari penemuan pseudo-collision dari
fungsi kompresi MD5.
Dua vektor
inisialisasi berbeda I dan J dengan
beda 4-bit di antara keduanya.
Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan
pada fungsi kompresi MD5. Dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5
sepenuhnya, hal ini menyebabkan para pengguna kriptografi menganjurkan
pengganti seperti WHIRLPOOL, SHA-1 atau RIPEMD-160.
Ukuran dari hash — 128-bit — cukup kecil untuk
terjadinya serangan brute force birthday
attack. MD5CRK adalah
proyek distribusi mulai Maret 2004 dengan tujuan untuk
menunjukka kelemahan dari MD5 dengan menemukan kerusakan kompresi menggunakan brute
force attack.
Bagaimanapun juga, MD5CRK berhenti pada tanggal 17 Agustus 2004,
saat kerusakan
''hash'' pada MD5 diumumkan oleh Xiaoyun
Wang, Dengguo
Feng, Xuejia
Lai dan Hongbo Yu [1][2].
Serangan analitik mereka dikabarkan hanya memerlukan satu jam dengan menggunakan IBM P690 cluster.
Pada tanggal 1 Maret 2005, Arjen
Lenstra, Xiaoyun Wang, and Benne
de Weger mendemontrasikan[3] kunstruksi
dari dua buah sertifikat X.509 dengan public key yang
berbeda dan hash MD5 yang sama, hasil dari demontrasi
menunjukkan adanya kerusakan. Konstruksi tersebut melibatkan private
key untuk kedua public key tersebut. Dan beberapa
hari setelahnya, Vlastimil
Klimamenjabarkan[4] dan mengembangkan algortima, mampu
membuat kerusakan Md5 dalam beberapa jam dengan menggunakan sebuah komputer notebook. Hal ini menyebabkan MD5 tidak bebas
dari kerusakan.
Dikarenakan MD5 hanya menggunakan satu langkah pada data, jika dua buah
awalan dengan hash yang sama dapat dibangun, sebuah akhiran
yang umum dapat ditambahkan pada keduanya untuk membuat kerusakan lebih masuk
akal. Dan dikarenakan teknik penemuan kerusakan mengijinkan pendahuluan kondisi hash menjadi
arbitari tertentu, sebuah kerusakan dapat ditemukan dengan awalan apapun.
Proses tersebut memerlukan pembangkitan dua buah berkas perusak sebagai berkas
templat, dengan menggunakan blok 128-byte dari tatanan data pada 64-byte
batasan, berkas-berkas tersebut dapat mengubah dengan bebas dengan menggunakan
algoritma penemuan kerusakan.
Efek Nyata dari Kriptoanalisis
Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses
pembangkitan kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang
sama. Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5 (2128),
tetapi terdapat bilangan yang tak terbatas sebagai masukannya, hal ini harus
dipahami sebelum kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar
bahwa menemukannya adalah hal yang sulit.
Sebagai hasilnya bahwa hash MD5 dari informasi tertentu
tidak dapat lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari
sebuah public key, hash MD5 tidak mengenalinya
secara berbeda jika terdapat public key selanjutnya yang
mempunyai hash MD5 yang sama.
Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan untuk
memilih kedua pesan kerusakan. Kedua pesan tersebut tidak dengan mudah untuk memberikan
serangan preimage,
menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun serangan
preimage kedua, menemukan pesan dengan hash MD5 yang sama
sebagai pesan yang diinginkan.
Hash MD5 lama, yang dibuat sebelum serangan-serangan tersebut diungkap,
masih dinilai aman untuk saat ini. Khususnya pada digital
signature lama masih dianggap layak pakai. Seorang pengguna
boleh saja tidak ingin membangkitkan atau mempercayai signature baru
menggunakan MD5 jika masih ada kemungkinan kecil pada teks (kerusakan dilakukan
dengan melibatkan pelompatan beberapa bit pada bagian 128-byte pada masukan hash)
akan memberikan perubahan yang berarti.
Penjaminan ini berdasar pada posisi saat ini dari kriptoanalisis.
Situasi bisa saja berubah secara tiba-tiba, tetapi menemukan kerusakan dengan
beberapa data yang belum-ada adalah permasalahan yang lebih susah lagi, dan
akan selalu butuh waktu untuk terjadinya sebuah transisi.
Pengujian Integritas
Ringkasan MD5 digunakan secara luas dalam dunia perangkat lunak untuk
menyediakan semacam jaminan bahwa berkas yang diambil (download) belum terdapat perubahan. Seorang
pengguna dapat membandingkan MD5 sum yang dipublikasikan dengan checksum dari
berkas yang diambil. Dengan asumsi bahwa checksum yang
dipublikasikan dapat dipercaya akan keasliannya, seorang pengguna dapat secara
yakin bahwa berkas tersebut adalah berkas yang sama dengan berkas yang dirilis
oleh para developer, jaminan perlindungan dari Trojan
Horse dan virus komputeryang ditambahkan pada perangkat
lunak. Bagaimanapun juga, seringkali kasus yangterjadi bahwa checksum yang
dipublikasikan tidak dapat dipercaya (sebagai contoh, checksum didapat
dari channel atau lokasi yang sama dengan tempat mengambil berkas), dalam hal
ini MD5 hanya mampu melakukan error-checking. MD5 akan mengenali
berkas yang didownload tidak sempurna, cacat atau tidak lengkap.
Algoritma
Satu operasi MD5 — MD5 terdiri atas 64
operasi, dikelompokkan dalam empat putaran dari 16 operasi.F adalah
fungsi nonlinear; satu fungsi digunakan pada tiap-tiap putaran. Mi menujukkan
blok 32-bit dari masukan pesan, dan Ki menunjukkan
konstanta 32-bit, berbeda untuk tiap-tiap operasi.
s menunjukkan perputaran bit kiri oleh s; s bervariasi
untuk tiap-tiap operasi. menunjukan tambahan modulo 232.
MD5 memproses variasi panjang pesan kedalam keluaran 128-bit dengan panjang
yang tetap. Pesan masukan dipecah menjadi dua gumpalan blok 512-bit; Pesan
ditata sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai
berikut: bit tunggal pertama, 1, diletakkan pada akhir pedan. Proses ini
diikuti dengan serangkaian nol (0) yang diperlukan agar panjang pesan lebih
dari 64-bit dan kurang dari kelipatan 512. Bit-bit sisa diisi dengan 64-bit
integer untuk menunjukkan panjang pesan yang asli. Sebuah pesan selalu ditata
setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah kelipatan
512 dikurangi 64-bit untuk informasi panjang (panjang mod(512) = 448), sebuah
blok baru dari 512-bit ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol
(0) diikuti dengan panjang 64-bit.
Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi
empat word 32-bit, menunjukkan A, B, C dan D.
Operasi tersebut di inisialisasi dijaga untuk tetap konstan. Algoritma utama
kemudian beroperasi pada masing-masing blok pesan 512-bit, masing-masing blok
melakukan pengubahan terhadap kondisi.Pemrosesan blok pesan terdiri atas empat
tahap, batasan putaran; tiap putasan membuat 16 operasi serupa
berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke
kiri. Gambar satu mengilustrasikan satu operasi dalam putaran. Ada empat macam
kemungkinan fungsi F, berbeda dari yang digunakan pada tiap-tiap
putaran:
Pseudocode
Pseudocode pada algoritma MD5 adalah
sebagai berikut.
//Catatan: Seluruh variable pada unsigned integer 32-bit dan dan wrap
modulo 2^32 saat melakukan perhitungan
//Mendefinisikan r sebagai berikut
var int[64] r, k
r[ 0..15] := {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17,
22, 7, 12, 17, 22}
r[16..31] := {5, 9, 14, 20, 5, 9, 14, 20,
5, 9, 14, 20, 5, 9, 14, 20}
r[32..47] := {4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16,
23, 4, 11, 16, 23}
r[48..63] := {6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15,
21, 6, 10, 15, 21}
//Menggunakan bagian fraksional biner dari integral sinus sebagai
konstanta:
for i from 0 to 63
k[i] := floor(abs(sin(i + 1)) × 2^32)
//Inisialisasi variabel:
var int h0 := 0x67452301
var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE
var int h3 := 0x10325476
//Pemrosesan awal:
append "1" bit to message
append "0" bits until message length in bits ≡ 448 (mod 512)
append bit length of message as 64-bit little-endian integer to
message
//Pengolahan pesan paada kondisi gumpalan 512-bit:
for each 512-bit chunk of message
break chunk into sixteen 32-bit little-endian words
w(i), 0 ≤ i ≤ 15
//Inisialisasi nilai hash pada gumpalan ini:
var int a := h0
var int b := h1
var int c := h2
var int d := h3
//Kalang utama:
for i from 0 to 63
if 0 ≤ i ≤ 15 then
f :=
(b and c) or ((not b) and d)
g :=
i
else if 16 ≤ i ≤ 31
f :=
(d and b) or ((not d) and c)
g :=
(5×i + 1) mod 16
else if 32 ≤ i ≤ 47
f :=
b xor c xor d
g :=
(3×i + 5) mod 16
else if 48 ≤ i ≤ 63
f :=
c xor (b or (not d))
g :=
(7×i) mod 16
temp := d
d := c
c := b
b := ((a + f + k(i) + w(g)) leftrotate
r(i)) + b
a := temp
//Tambahkan hash dari gumpalan sebagai hasil:
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d
var int digest := h0 append h1 append h2 append
h3 //(diwujudkan dalam little-endian)
Catatan: Meskipun rumusan dari yang tertera pada RFC 1321, berikut ini sering
digunakan untuk
meningkatkan efisiensi:
(0 ≤ i ≤ 15): f := d xor (b and (c xor d))
(16 ≤ i ≤ 31): f := c xor (d and (b xor c))
About Security : What, How MD5 Security
Dalam kriptografi, MD5 (Message-Digest
algortihm 5) ialah fungsi hash kriptografik yang digunakan
secara luas dengan hash value 128-bit. Pada standart Internet
(RFC
1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi
keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas
sebuah berkas.
MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk
menggantikan hash function sebelumnya, MD4.
Pada tahun 1996, sebuah kecacatan ditemukan dalam
desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan
menggunakan algoritma lain,
seperti SHA-1 (klaim
terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004,
kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan
algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.
Sejarah dan Kriptoanalisis .
MD5 adalah
salah satu dari serangkaian algortima message
digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest,
1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 —MD4 —
mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai
pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans
Dobbertin).
Pada tahun 1993, den Boer dan Bosselaers memberikan
awal, bahkan terbatas, hasil dari penemuan pseudo-collision dari
fungsi kompresi MD5.
Dua vektor
inisialisasi berbeda I dan J dengan
beda 4-bit di antara keduanya.
Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan
pada fungsi kompresi MD5. Dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5
sepenuhnya, hal ini menyebabkan para pengguna kriptografi menganjurkan
pengganti seperti WHIRLPOOL, SHA-1 atau RIPEMD-160.
Ukuran dari hash — 128-bit — cukup kecil untuk
terjadinya serangan brute force birthday
attack. MD5CRK adalah
proyek distribusi mulai Maret 2004 dengan tujuan untuk
menunjukka kelemahan dari MD5 dengan menemukan kerusakan kompresi menggunakan brute
force attack.
Bagaimanapun juga, MD5CRK berhenti pada tanggal 17 Agustus 2004,
saat kerusakan
''hash'' pada MD5 diumumkan oleh Xiaoyun
Wang, Dengguo
Feng, Xuejia
Lai dan Hongbo Yu [1][2].
Serangan analitik mereka dikabarkan hanya memerlukan satu jam dengan menggunakan IBM P690 cluster.
Pada tanggal 1 Maret 2005, Arjen
Lenstra, Xiaoyun Wang, and Benne
de Weger mendemontrasikan[3] kunstruksi
dari dua buah sertifikat X.509 dengan public key yang
berbeda dan hash MD5 yang sama, hasil dari demontrasi
menunjukkan adanya kerusakan. Konstruksi tersebut melibatkan private
key untuk kedua public key tersebut. Dan beberapa
hari setelahnya, Vlastimil
Klimamenjabarkan[4] dan mengembangkan algortima, mampu
membuat kerusakan Md5 dalam beberapa jam dengan menggunakan sebuah komputer notebook. Hal ini menyebabkan MD5 tidak bebas
dari kerusakan.
Dikarenakan MD5 hanya menggunakan satu langkah pada data, jika dua buah
awalan dengan hash yang sama dapat dibangun, sebuah akhiran
yang umum dapat ditambahkan pada keduanya untuk membuat kerusakan lebih masuk
akal. Dan dikarenakan teknik penemuan kerusakan mengijinkan pendahuluan kondisi hash menjadi
arbitari tertentu, sebuah kerusakan dapat ditemukan dengan awalan apapun.
Proses tersebut memerlukan pembangkitan dua buah berkas perusak sebagai berkas
templat, dengan menggunakan blok 128-byte dari tatanan data pada 64-byte
batasan, berkas-berkas tersebut dapat mengubah dengan bebas dengan menggunakan
algoritma penemuan kerusakan.
Efek Nyata dari Kriptoanalisis
Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses
pembangkitan kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang
sama. Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5 (2128),
tetapi terdapat bilangan yang tak terbatas sebagai masukannya, hal ini harus
dipahami sebelum kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar
bahwa menemukannya adalah hal yang sulit.
Sebagai hasilnya bahwa hash MD5 dari informasi tertentu
tidak dapat lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari
sebuah public key, hash MD5 tidak mengenalinya
secara berbeda jika terdapat public key selanjutnya yang
mempunyai hash MD5 yang sama.
Bagaimanapun juga, penyerangan tersebut memerlukan kemampuan untuk
memilih kedua pesan kerusakan. Kedua pesan tersebut tidak dengan mudah untuk memberikan
serangan preimage,
menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun serangan
preimage kedua, menemukan pesan dengan hash MD5 yang sama
sebagai pesan yang diinginkan.
Hash MD5 lama, yang dibuat sebelum serangan-serangan tersebut diungkap,
masih dinilai aman untuk saat ini. Khususnya pada digital
signature lama masih dianggap layak pakai. Seorang pengguna
boleh saja tidak ingin membangkitkan atau mempercayai signature baru
menggunakan MD5 jika masih ada kemungkinan kecil pada teks (kerusakan dilakukan
dengan melibatkan pelompatan beberapa bit pada bagian 128-byte pada masukan hash)
akan memberikan perubahan yang berarti.
Penjaminan ini berdasar pada posisi saat ini dari kriptoanalisis.
Situasi bisa saja berubah secara tiba-tiba, tetapi menemukan kerusakan dengan
beberapa data yang belum-ada adalah permasalahan yang lebih susah lagi, dan
akan selalu butuh waktu untuk terjadinya sebuah transisi.
Pengujian Integritas
Ringkasan MD5 digunakan secara luas dalam dunia perangkat lunak untuk
menyediakan semacam jaminan bahwa berkas yang diambil (download) belum terdapat perubahan. Seorang
pengguna dapat membandingkan MD5 sum yang dipublikasikan dengan checksum dari
berkas yang diambil. Dengan asumsi bahwa checksum yang
dipublikasikan dapat dipercaya akan keasliannya, seorang pengguna dapat secara
yakin bahwa berkas tersebut adalah berkas yang sama dengan berkas yang dirilis
oleh para developer, jaminan perlindungan dari Trojan
Horse dan virus komputeryang ditambahkan pada perangkat
lunak. Bagaimanapun juga, seringkali kasus yangterjadi bahwa checksum yang
dipublikasikan tidak dapat dipercaya (sebagai contoh, checksum didapat
dari channel atau lokasi yang sama dengan tempat mengambil berkas), dalam hal
ini MD5 hanya mampu melakukan error-checking. MD5 akan mengenali
berkas yang didownload tidak sempurna, cacat atau tidak lengkap.
Algoritma
Satu operasi MD5 — MD5 terdiri atas 64
operasi, dikelompokkan dalam empat putaran dari 16 operasi.F adalah
fungsi nonlinear; satu fungsi digunakan pada tiap-tiap putaran. Mi menujukkan
blok 32-bit dari masukan pesan, dan Ki menunjukkan
konstanta 32-bit, berbeda untuk tiap-tiap operasi.
s menunjukkan perputaran bit kiri oleh s; s bervariasi
untuk tiap-tiap operasi. menunjukan tambahan modulo 232.
MD5 memproses variasi panjang pesan kedalam keluaran 128-bit dengan panjang
yang tetap. Pesan masukan dipecah menjadi dua gumpalan blok 512-bit; Pesan
ditata sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai
berikut: bit tunggal pertama, 1, diletakkan pada akhir pedan. Proses ini
diikuti dengan serangkaian nol (0) yang diperlukan agar panjang pesan lebih
dari 64-bit dan kurang dari kelipatan 512. Bit-bit sisa diisi dengan 64-bit
integer untuk menunjukkan panjang pesan yang asli. Sebuah pesan selalu ditata
setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah kelipatan
512 dikurangi 64-bit untuk informasi panjang (panjang mod(512) = 448), sebuah
blok baru dari 512-bit ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol
(0) diikuti dengan panjang 64-bit.
Algoritma MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi
empat word 32-bit, menunjukkan A, B, C dan D.
Operasi tersebut di inisialisasi dijaga untuk tetap konstan. Algoritma utama
kemudian beroperasi pada masing-masing blok pesan 512-bit, masing-masing blok
melakukan pengubahan terhadap kondisi.Pemrosesan blok pesan terdiri atas empat
tahap, batasan putaran; tiap putasan membuat 16 operasi serupa
berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke
kiri. Gambar satu mengilustrasikan satu operasi dalam putaran. Ada empat macam
kemungkinan fungsi F, berbeda dari yang digunakan pada tiap-tiap
putaran:
Pseudocode
Pseudocode pada algoritma MD5 adalah
sebagai berikut.
//Catatan: Seluruh variable pada unsigned integer 32-bit dan dan wrap
modulo 2^32 saat melakukan perhitungan
//Mendefinisikan r sebagai berikut
var int[64] r, k
r[ 0..15] := {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17,
22, 7, 12, 17, 22}
r[16..31] := {5, 9, 14, 20, 5, 9, 14, 20,
5, 9, 14, 20, 5, 9, 14, 20}
r[32..47] := {4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16,
23, 4, 11, 16, 23}
r[48..63] := {6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15,
21, 6, 10, 15, 21}
//Menggunakan bagian fraksional biner dari integral sinus sebagai
konstanta:
for i from 0 to 63
k[i] := floor(abs(sin(i + 1)) × 2^32)
//Inisialisasi variabel:
var int h0 := 0x67452301
var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE
var int h3 := 0x10325476
//Pemrosesan awal:
append "1" bit to message
append "0" bits until message length in bits ≡ 448 (mod 512)
append bit length of message as 64-bit little-endian integer to
message
//Pengolahan pesan paada kondisi gumpalan 512-bit:
for each 512-bit chunk of message
break chunk into sixteen 32-bit little-endian words
w(i), 0 ≤ i ≤ 15
//Inisialisasi nilai hash pada gumpalan ini:
var int a := h0
var int b := h1
var int c := h2
var int d := h3
//Kalang utama:
for i from 0 to 63
if 0 ≤ i ≤ 15 then
f :=
(b and c) or ((not b) and d)
g :=
i
else if 16 ≤ i ≤ 31
f :=
(d and b) or ((not d) and c)
g :=
(5×i + 1) mod 16
else if 32 ≤ i ≤ 47
f :=
b xor c xor d
g :=
(3×i + 5) mod 16
else if 48 ≤ i ≤ 63
f :=
c xor (b or (not d))
g :=
(7×i) mod 16
temp := d
d := c
c := b
b := ((a + f + k(i) + w(g)) leftrotate
r(i)) + b
a := temp
//Tambahkan hash dari gumpalan sebagai hasil:
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d
var int digest := h0 append h1 append h2 append
h3 //(diwujudkan dalam little-endian)
Catatan: Meskipun rumusan dari yang tertera pada RFC 1321, berikut ini sering
digunakan untuk
meningkatkan efisiensi:
(0 ≤ i ≤ 15): f := d xor (b and (c xor d))
(16 ≤ i ≤ 31): f := c xor (d and (b xor c))
Langganan:
Postingan (Atom)