3. Уведення розходжень між паралельними лініями алгоритму, а саме використання різного порядку подачі слів вихідного повідомлення і зворотне застосування нелінійних бульових функцій.
4. Використання перестановок спеціального вигляду. Перестановка побудована таким чином, що якщо два слова вихідного повідомлення є "близькими" на першому-другому циклах, то вони будуть розрізнятися на другому-третьому циклах хеш-функції і навпаки. Перестановка побудована таким чином, що якщо два слова будуть близькі у своїй лівій частині, то в правій частині вони будуть відрізнятися принаймні в сімох позиціях.
5. Зсуви в хеш-функціях обрані у відповідності з такими правилами:
– значення зсуву повинно лежати в межах від 5 до 15;
– кожен блок повідомлення повинний зсуватися на різну кількість позицій на всіх циклах хешування;
– зсуви, застосовувані на кожному регістрі не повинні мати спеціальних шаблонів, наприклад, їхня сума не повинна ділитися на 32;
– не занадто багато значень зсуву повинні ділитися на чотири.
Нижче наводяться тестові значення хеш-кодів для розглянутих хеш-функцій
Вхідний рядок |
Хеш-код |
RIPEMD-160 |
|
"" |
9c1185a5c5e9fc54612808977ee8f548b2258d31х |
"a" |
0bdc9d2d256b3ee9daae347be6f4dc835a467ffeх |
"abc" |
8eb208f7e05d987a9b044a8e98c6b087f15a0bfcх |
"abcdefghijklmnopqrstuvwxyz" |
f71c27109c692c1b56bbdceb5b9d2865b3708dbcх |
RIPEMD-128 |
|
"" |
cdf26213a150dc3ecb610f18f6b38b46х |
"a" |
86be7afa339d0fc7cfc785e72f578d33х |
"abc" |
c14a12199c66e4ba84636b0f69144c77х |
"abcdefghijklmnopqrstuvwxyz" |
fd2aa607f71dc8f510714922b371834eх |
Деякі додатки, у яких використовують хеш-функції, можуть вимагати виробітки більш довгих хеш-кодів. Прямим шляхом розв’язання даної задачі є паралельне виконання однієї і тієї ж хеш-функції з різними векторами ініціалізації. Однак у цьому випадку можлива поява залежностей між двома результатами хешування, що і було виявлено при використанні MD4. Хеш-функції RIPEMD-128 і RIPEMD-160 уже мають паралельні лінії і для одержання хеш-кодів довжиною, відповідно, 256 і 320 біт досить виключити кінцеву комбінацію результатів хешування по кожній лінії.
На закінчення наведемо порівняльні характеристики за швидкістю реалізації алгоритмів хешування (таб. 2.1). Алгоритми були реалізовані на мовах асемблер і С для процесора Pentium 90 Мгц. Хешуванню підлягали дані обсягом 256 Мбайт.
Таблиця 2.1
Алгоритм |
Довжина хеш-кода (біт) |
Цикли ´ кроки на кожнім циклі |
Швидкість Мбит/с |
|
Асемблер |
С |
|||
MD4 |
128 |
3´16 |
165,7 |
81,4 |
MD5 |
128 |
4´16 |
113,5 |
59,7 |
RIPEMD |
128 |
3´16 (двічі) |
82,1 |
44,0 |
RIPEMD-128 |
128 |
4´16 (двічі) |
63,8 |
35,6 |
SHA-1 |
160 |
4´20 |
46,5 |
21,2 |
RIPEMD-160 |
160 |
5´16 (двічі) |
39,8 |
19,3 |
У порівнянні з 128-розрядними хеш-функціями, 160-розрядний хеш-код, вироблюваний SHA-1, забезпечує більшу стійкість до силових атак. Хеш-функції SHA-1 і RIPEMD-160 за стійкістю приблизно рівні й обидві перевершують MD5. Розширення блоку вхідного повідомлення введено з метою забезпечення більшої відмінності між вхідними блоками. Надмірність, що вводиться, сприяє підвищенню стійкості хеш-функції.
Функции хеширования стойкие к коллизиям, как это было отмечено в проекте NESSIE, являются алгоритмами Whirlpool, SHA-256, SHA-384 и SHA-512.
Алгоритм Whirlpool впервые был представлен проекту NESSIE и отобран для изучения во вторую стадию проекта. Алгоритмы SHA-1 и SHA-2 также были отобраны для изучения во вторую стадию NESSIE, кроме того, они являются стандартами NIST [393], и рассматривались ISO [2].
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.