RIPEMD
RIPEMD (RACE Integrity Primitives Evaluation Message Digest) је класа криптографских функција за сажимање, креираних у Европи од стране Ханса Добертина, Антона Боселара и Барта Принела. Први алгоритми из те класе су дизајнирани 1996. године. Ови алгоритми су креирани на основу алгоритма MD4, и врло су слични алгоритмима из класе алгоритама SHA како по начину рада токо по брзини извођења.
Постоје више верзија овог алгоритма и то: RIPEMD, RIPEMD-128, RIPEMD-160, RIPEMD-256, и RIPEMD-320. RIPEMD је први који је креиран и због низ недостатка данас се не користи иначе је дужине сажетка од 128 бита. Остали алгоритми су наследници оригиналног RIPEMD алгоритма и број у њиховим ознакама представља дужину сажетака. RIPEMD-256, и RIPEMD-320 се данас могу сматрати веома сигурни првенствено због дужине њиховог сажетка.
- RIPEMD је алгоритам креиран у академским круговима, за разлику од SHA алгоритма.
- RIPEMD је мање популаран алгоритам, чиме је и мање проучаван.
- RIPEMD је непатентиран и слободан алгоритам.
У августу 1994. оригинални RIPEMD алгоритам је проваљен, односно пронађена је колизија[1].
RIPEMD сажеци
уредиПример примене RIPEMD-160 алгоритма. Реченицу у ASCII формату „The quick brown fox jumps over the lazy dog“ пустићемо кроз RIPEMD-160 алгоритам и добићемо 160-битни излаз у хексадецималном облику
RIPEMD-160("The quick brown fox jumps over the lazy dog") = 37f332f68db77bd9d7edd4969571ad671cf9dd3b
Чак и најмања промена само једног слова у реченици имаће као резултат промену целокупног хексадецималног излаза. На пример променићемо d у c:
RIPEMD-160("The quick brown fox jumps over the lazy cog") = 132072df690933835eb8b6ad0b77e7b6f14acad7
Излаз RIPEMD-160 функције у случају празног стринга биће:
RIPEMD-160("") = 9c1185a5c5e9fc54612808977ee8f548b2258d31
Упоређење MD5, SHA-1 и RIPEMD-160 алгоритма
уредиУпоређења RIPEMD-160 алгоритма са MD5 алгоритмом показују да је RIPEMD-160 алгоритам сигурнији од MD5 алгоритма.
MD5 | SHA-1 | RIPEMD-160 | |
---|---|---|---|
Дужина дигеста | 128 битова | 160 битова | 160 битова |
Дужина блока | 512 битова | 512 битова | 512 битова |
Број корака | 64 (4 x 16) | 80 (4 x 20) | 160 |
Највећа дужина поруке | - | 2^64-1 битова | 2^64-1 битова |
Примитивних логичких функција | 4 | 4 | 5 |
Број константи | 64 | 4 | 9 |
Запис битова | Little endian | Big endian | Little endian |