Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Хэш-функция t1ha 05.02.17 16:26
Автор: leo <Леонид Юрьев> Статус: Elderman
|
Кратко о t1ha:
1. новый быстрый не-криптографический переносимый хэш для 64-битных систем.
2. почти вдвое быстрее FarmHash (и всех прочих) на коротких ключах, на больших чуть быстрее или сопоставим.
3. t1ha проходит все тесты SMHasher, как и другие подобные.
Цель дизайна t1ha в получении предельно быстрого, короткого (64 бита), переносимого софтверного хэша с приемлемым (reasonable) качеством.
Поэтому в t1ha интенсивно используется 64-битное умножение, но нет как таковых внутренних раундов.
У t1ha очень неплохие показатели качества, а с учетом затраченных тактов процессора они пожалуй превосходны.
В текущем понимании, по качеству t1ha уступает только "тяжелым" хешам с много-раундовой организацией.
В остальных случаях, тесты дают основания считать, что t1ha выигрывает как по качеству, так и по скорости.
При дизайне t1ha в главные цели не входила устойчивость к преднамеренной генерации коллизий.
Такая устойчивость требует многораундовой обработки, что приводит к кратному снижению производительности.
Целевая задача не позволяла жертвовать производительностью, поэтому было решено сначала добиться максимальной стойкости без потери производительности и перехода к многорайндовой обработке, а уже после подумать о более медленном и стойком варианте.
В этом главное отличие t1ha от SipHash.
Тем не менее, t1ha гораздо более устойчива к атакам чем многие другие быстрые функции.
При этом следует отметить, что требуется дальнейший анализ как перемешивания вида mux64(rot64(a + b, s1), p4) + mix(a ^ b, p0), так и в t1ha в целом, на предмет "вскрытия" seed для последующей генерации коллизий.
Результаты такого анализа позволят оценить возможность создания стойкой версии t1ha, с минимальным количеством раундов.
t1ha на github
|
|
Чуть дополню 05.02.17 16:32
Автор: leo <Леонид Юрьев> Статус: Elderman
|
t1ha имеет достаточно регулярную структуру, что должно упрощать анализ. Например в сравнении с FarmHash.
t1ha должна очень хорошо работать на E2K и IA64.
Технически, кроме переносимого варианта t1ha, также доступны еще несколько.
Например, t1ha_local() в случае x86_64 использует все доступные фичи процессора.
|
|
|