RIPEMD-160
RIPEMD (RACE Integrity Primitives Evaluation Message Digest) je klasa kriptografskih funkcija za sažimanje, kreiranih u Evropi od strane Hansa Dobertina, Antona Boselara i Barta Prinela. Prvi algoritmi iz te klase su dizajnirani 1996. godine. Ovi algoritmi su kreirani na osnovu algoritma MD4, i vrlo su slični algoritmima iz klase algoritama SHA kako po načinu rada toko po brzini izvođenja.
Postoje više verzija ovog algoritma i to: RIPEMD, RIPEMD-128, RIPEMD-160, RIPEMD-256, i RIPEMD-320. RIPEMD je prvi koji je kreiran i zbog niz nedostatka danas se ne koristi inače je dužine sažetka od 128 bita. Ostali algoritmi su naslednici originalnog RIPEMD algoritma i broj u njihovim oznakama predstavlja dužinu sažetaka. RIPEMD-256, i RIPEMD-320 se danas mogu smatrati veoma sigurni prvenstveno zbog dužine njihovog sažetka.
- RIPEMD je algoritam kreiran u akademskim krugovima, za razliku od SHA algoritma.
- RIPEMD je manje popularan algoritam, čime je i manje proučavan.
- RIPEMD je nepatentiran i slobodan algoritam.
U avgustu 1994. originalni RIPEMD algoritam je provaljen, odnosno pronađena je kolizija[1].
RIPEMD sažeci
urediPrimer primene RIPEMD-160 algoritma. Rečenicu u ASCII formatu „The quick brown fox jumps over the lazy dog“ pustićemo kroz RIPEMD-160 algoritam i dobićemo 160-bitni izlaz u heksadecimalnom obliku
RIPEMD-160("The quick brown fox jumps over the lazy dog") = 37f332f68db77bd9d7edd4969571ad671cf9dd3b
Čak i najmanja promena samo jednog slova u rečenici imaće kao rezultat promenu celokupnog heksadecimalnog izlaza. Na primer promenićemo d u c:
RIPEMD-160("The quick brown fox jumps over the lazy cog") = 132072df690933835eb8b6ad0b77e7b6f14acad7
Izlaz RIPEMD-160 funkcije u slučaju praznog stringa biće:
RIPEMD-160("") = 9c1185a5c5e9fc54612808977ee8f548b2258d31
Upoređenje MD5, SHA-1 i RIPEMD-160 algoritma
urediUpoređenja RIPEMD-160 algoritma sa MD5 algoritmom pokazuju da je RIPEMD-160 algoritam sigurniji od MD5 algoritma.
MD5 | SHA-1 | RIPEMD-160 | |
---|---|---|---|
Dužina digesta | 128 bitova | 160 bitova | 160 bitova |
Dužina bloka | 512 bitova | 512 bitova | 512 bitova |
Broj koraka | 64 (4 x 16) | 80 (4 x 20) | 160 |
Najveća dužina poruke | - | 2^64-1 bitova | 2^64-1 bitova |
Primitivnih logičkih funkcija | 4 | 4 | 5 |
Broj konstanti | 64 | 4 | 9 |
Zapis bitova | Little endian | Big endian | Little endian |