Основное отличие от MD55_rand, то что, MD55_seed - можно использовать в распеределенных системах (функия не содержит сгенерированных значений), для вычисления хешей.
Функция на входе принимает 2 значения: $hash_str (строка для хеширования), $seed (число от 1 до PHP_INT_MAX, в данной системе - 9223372036854775807), результат: 16 byte hash.
Более 100 итераций с дополненными двоичными данными до 190-300 байт, инкапсулированные друг в друга 4 раза в каждом цикле/итерации (всего 100 циклов, можно увеличить).
То есть, более 400 вычислений хешей md5, как кусков текста, так и выражений на каждом этапе с дальнейшим испоользованием этих хешей в следующих шагах.
Seed - генерируется база seed значений (155) каждая итерация испоользует предидущий seed и md5. Seed каждую итерацию задается новый и дополняется rand значениями. Исходный код возможно будет выложен позже.
Расчет атак перебором.
~ (255^192 * 255^255 * 255^255 * 255^302)^100 ~ 4.30641192176160068098726429852622150424985511728951230218... × 10^241616
4.3 × 10 241616 - Криптостойкость/количество вариаций, hash алгоритма MD55_seed.
Вычисления примерные, так как не понятно, как считать подмешивание текста/хешей от предидущих этапов, на каждом цикле/итерации и подциклах/итерациях.
Если кто-то сможет посчитать более точно, пишите тут в комментариях или на почту [email protected]
+ Криптостойкость (зашита от перебора): очень хорошая.
+- Криптостойкость (зашита от колизий): средняя.
+ Скорость: хорошая .
+ Возможность использования в распределенных системах: хорошая.
+ Удобство использования: хорошее