Loading AI tools
З Вікіпедії, вільної енциклопедії
RIPEMD-160 (від англ. RACE Integrity Primitives Evaluation Message Digest) - криптографічна геш-функція, розроблена в Католицькому університеті Лувена Хансом Доббертіном (Hans Dobbertin[en]), Антоном Босселарсом і Бартом Пренелом. Для довільного вхідного повідомлення функція генерує 160-розрядне хеш-значення, відоме як дайджест повідомлення. RIPEMD-160 є покращеною версією RIPEMD, яка, в свою чергу, використовувала принципи MD4 і продуктивність якої така ж як і у більш популярної SHA-1.
Також існують 128, 256 і 320-бітні версії цього алгоритму, які, відповідно, називаються RIPEMD-128, RIPEMD-256 і RIPEMD-320. 128-бітна версія являє собою лише заміну оригінальної RIPEMD, яка також була 128-бітною і в якій були знайдені вразливості. 256 і 320-бітові версії відрізняються подвоєною довжиною дайджесту, що зменшує ймовірність колізій, але при цьому функції не є більш крипостійкими.
RIPEMD-160 була розроблена у відкритій академічній спільноті, на відміну від SHA-1 і SHA-2, які були створені NSA. З іншого боку, RIPEMD-160 на практиці використовується не так часто, як SHA-1.
Використання RIPEMD-160 не обмежене жодними патентами.
Повідомлення розширюється так, щоб його довжина у бітах за модулем 512 дорівнювала 448. Таким чином, у результаті розширення, повідомленню бракує 64 біта до довжини, кратної 512 бітам. Розширення проводиться завжди, навіть якщо повідомлення спочатку мало потрібну довжину.
Розширення проводиться таким чином: один біт, що дорівнює 1, додається до повідомлення, а потім додаються біти, рівні 0, до тих пір, поки довжина повідомлення не стане рівною 448 по модулю 512. У підсумку, до повідомлення додається, як мінімум, 1 біт, і, як максимум - 512.
64-бітове представлення (довжини повідомлення перед додаванням додаткових бітів) додається до результату попереднього кроку. У малоймовірному випадку, коли більше, ніж , використовуються тільки 64 молодших біта. Ці біти додаються у вигляді двох 32-бітних слів, і першим додається слово, що містить молодші розряди.
На цьому етапі (після додавання бітів і довжини повідомлення) отримується повідомлення довжиною кратною 512 бітам. Це еквівалентно тому, що це повідомлення має довжину, кратну 16-ти 32-бітовим словами. Кожне 32-бітове слово містить чотири 8-бітних, але слідують вони не підряд, а навпаки (наприклад, з восьми 8-бітних слів (a b c d e f g h) отримується два 32-бітних слова (dcba hgfe)).
I. Нелінійні бітові функції:
II. Адитивні шістнадцяткові константи:
III. Вибір 32-бітових слів з повідомлення
VI. Набір для бітового повороту вліво (операція rol)
V. Вихідні значення слів дайджесту
Після визначення всіх вихідних функцій, констант і початкових значень слів хеш-суми, переходять до виконання алгоритму. Виконання алгоритму відбувається по двох паралельних шляхах. Обробка повідомлення відбувається блоками по 16 слів у 32 біта.
Під складанням «+» мається на увазі складання по модулю 232, rol s позначає циклічний зсув вліво на s позицій.
for i := 0 to (t - 1) { A := h0; B := h1; C := h2; D := h3; E := h4; A' := h0; B' := h1; C' := h2; D' := h3; E' := h4; for j := 0 to 79 { T := rols(j) (A + f(j; B; C; D) + Xi[r(j)] + K(j)) + E; A := E; E := D; D := rol10(C); C := B; B := T; T := rols'(j) (A' + f(79 — j; B'; C'; D') + Xi[r'(j)] + K'(j)) + E'; A' := E'; E' := D'; D' := rol10(C'); C' := B'; B' := T; } T := h1 + C + D'; h1 := h2 + D + E'; h2 := h3 + E + A'; h3 := h4 + A + B'; h4 := h0 + B + C'; h0 := T; }
Вхідний рядок складається із ASCII-символів. Вихідний рядок являє собою шістнадцятковий запис результату.
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("") = 9c1185a5c5e9fc54612808977ee8f548b2258d31
У таблиці для порівняння наведені швидкості виконання MD4-подібних функцій. Передбачається, що код виконання та дані знаходяться в кеші виконуючого пристрою.
Алгоритм | Циклів | Мбіт/сек | Відносна продуктивність |
---|---|---|---|
MD4 | 241 | 191.2 | 1.00 |
MD5 | 337 | 136.7 | 0.72 |
RIPEMD | 480 | 96.0 | 0.50 |
RIPEMD-128 | 592 | 77.8 | 0.41 |
SHA-1 | 837 | 55.1 | 0.29 |
RIPEMD-160 | 1013 | 45.5 | 0.24 |
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. (лютий 2017) |
Це незавершена стаття з криптографії. Ви можете допомогти проєкту, виправивши або дописавши її. |
Це незавершена стаття про алгоритми. Ви можете допомогти проєкту, виправивши або дописавши її. |
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.