Стандарт ISO/IEC 10118-3 пропонує хеш-функції – RIPEMD-160 і RIPEMD-128, які є подальшим вдосконаленням початкової версії алгоритму RIPEMD (1995 року). За оцінками розроблювачів хеш-функція RIPEMD-160 повинна залишатися безпечною протягом десяти найближчих років.
Алгоритм RIPEMD-160.
Розмір хеш-кода і перемінних зчеплень RIPEMD-160 дорівнює 160 бітам (п'ять 32-х розрядних слів). Кількість циклів збільшена з трьох (як у RIPEMD) до п'яти. Крім того, внесені додаткові зміни в паралельні лінії алгоритму. Тепер права і ліва лінії відрізняються не тільки застосовуваними константами, але і порядком проходження бульових функцій. Для алгоритму RIPEMD-160 визначені такі бульові функції:
 ;
;
 ;
;
 ;
;
 ;
;
 .
.
Усі позначення аналогічні раніше використаним позначенням при описі алгоритму SHA-1.
На рис. 2.7 представлена загальна структура хеш-функції RIPEMD-160.
Алгоритм RIPEMD-160
Вхід. Двійковий рядок  довжиною
 довжиною  .
.
Вихід. 160-бітний хеш-код
за рядком  .
.
1. Ініціалізація.
а) Ініціалізувати п'ять векторів ініціалізації:
 ;
;  ;
;  ;
; 
 ;
;  .
.
б) Задати для лівої і правої ліній алгоритму додаткові константи:
– ліва лінія:
 ;
;
 ;
; 
 ;
; 
 ;
; 
 ;
;
– права лінія:
 ;
;
 ;
; 
 ;
; 
 ;
; 
 .
.
 
Рис. 2.7. Схема хеш-функции RIPEMD-160.
в) задати порядок подачі слів
повідомлення на ліву  праву
  праву  лінії.
Порядок подачі слів визначається на основі таких перестановок:
 лінії.
Порядок подачі слів визначається на основі таких перестановок:
– для лівої лінії
визначається перестановка  , а для циклів порядок
слів визначається в такий спосіб:
, а для циклів порядок
слів визначається в такий спосіб:
| i | zL[0..15] | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| r(i) | zL[16..31] | 7 | 4 | 13 | 1 | 10 | 6 | 15 | 3 | 12 | 0 | 9 | 5 | 2 | 14 | 11 | 8 | 
| r2(i) | zL[32..47] | 3 | 10 | 14 | 4 | 9 | 15 | 8 | 1 | 2 | 7 | 0 | 6 | 13 | 11 | 5 | 12 | 
| r3(i) | zL[48..63] | 1 | 9 | 11 | 10 | 0 | 8 | 12 | 4 | 13 | 3 | 7 | 15 | 14 | 5 | 6 | 2 | 
| r4(i) | zL[64..79] | 4 | 0 | 5 | 9 | 7 | 12 | 2 | 10 | 14 | 1 | 3 | 8 | 11 | 6 | 15 | 13 | 
– для правої лінії визначається
перестановка  і порядок подачі слів
визначається з використанням перестановки
 і порядок подачі слів
визначається з використанням перестановки  у такий спосіб:
у такий спосіб:
| p(i) | zR[0..15] | 5 | 14 | 7 | 0 | 9 | 2 | 11 | 4 | 13 | 6 | 15 | 8 | 1 | 10 | 3 | 12 | 
| rp(i) | zR[16..31] | 6 | 11 | 3 | 7 | 0 | 13 | 5 | 10 | 14 | 15 | 8 | 12 | 4 | 9 | 1 | 2 | 
| r2p(i) | zR[32..47] | 15 | 5 | 1 | 3 | 7 | 14 | 6 | 9 | 11 | 8 | 12 | 2 | 10 | 0 | 4 | 13 | 
| r3p(i) | zR[48..63] | 8 | 6 | 4 | 1 | 3 | 11 | 15 | 0 | 5 | 12 | 2 | 13 | 9 | 7 | 10 | 14 | 
| r4p(i) | zR[64..79] | 12 | 15 | 10 | 4 | 1 | 5 | 8 | 7 | 6 | 2 | 13 | 14 | 0 | 3 | 9 | 11 | 
г) визначити для лівої  и правої
 и правої  ліній
аргументи для операторів циклічного зсуву відповідно до таблиці:
 ліній
аргументи для операторів циклічного зсуву відповідно до таблиці:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.