Рейтинг:-1

усеченный ша3-512

флаг tr

Допустим, мне нужна производительность на 64-битный машина, то ША3-512 это путь.
ША-512/256(х) является SHA-512(х) с выходом, усеченным до 256 бит, согласно https://pycryptodome.readthedocs.io/en/latest/src/hash/sha512.html

Позволять Н1(х) быть ША-512/256(ША-512(ША-512(х))
Позволять Н2(х) быть ША-256(ША-512(ША-512(х))

Является Н1 безопаснее, чем Н2?

Есть ли способ урезать ША3-512 нравиться ША-512/256 делает это?
Является ШЕЙК-256 с 256 бит выходной размер решения?

kelalaka avatar
флаг in
Не могли бы вы ненадолго остановиться, подумать и сформулировать свой актуальный вопрос? Кому нужно тройное хеширование? Почему вам недостаточно одного SHA3, BLAKE2? Ваш следующий вопрос будет о четырехкратном хешировании? и далее, далее, и собираюсь спросить, есть ли цикл в конце? Вы боитесь, что один из них сломается в далеком будущем? Очень маловероятно... BLAKE2 - это путь к производительности, а не SHA3-512.
Kuba Chrabański avatar
флаг tr
Мои вопросы в основном не связаны
kelalaka avatar
флаг in
На самом деле, они в основном связаны.
Kuba Chrabański avatar
флаг tr
Не так, как вы думаете. Нет никакого фактического вопроса, чтобы выразить то, что стоит за всеми ними.
kelalaka avatar
флаг in
«Допустим, мне нужно», так какова ваша на самом деле потребность? «SHA3-512 — это то, что нужно», тогда зачем просить тройное хеширование вместо того, чтобы обеспечить **фактически целевую безопасность с рисками**? `SHA3-512, как и SHA-512/256`, в нем нет необходимости благодаря губчатой ​​конструкции.
Kuba Chrabański avatar
флаг tr
Хорошо, но «в этом нет необходимости благодаря конструкции губки» означает, что я могу просто вырезать первые 256 бит или использовать SHAKE-256.
Kuba Chrabański avatar
флаг tr
«Скажем, мне нужно» — это просто способ начать вопрос
kelalaka avatar
флаг in
Зачем резать, есть SHA3-256 для 256-битного вывода. Shake-x может выводить произвольные размеры, они являются членами расширяемых функций вывода (XOF).
Kuba Chrabański avatar
флаг tr
А вот и первая часть вопроса и мой первый вопрос. Есть ли у меня преимущество от запуска SHA3-512 N раз и SHA3-256 для сужения вывода вместо запуска SHA3-256 (N+1) раз
Maarten Bodewes avatar
флаг in
Обратите внимание, что большинство процессоров в настоящее время ускоряют SHA-1 и SHA-256, а не SHA-512 - вероятно, потому, что он уже был довольно быстрым. Из-за этого SHA-256 часто работает быстрее на 64-битном оборудовании (при условии, что ускорение действительно используется, конечно, не уверен в этом PyCryptoDome).
Рейтинг:1
флаг in

Усечение SHA3-512 до 256 дает отличные 256-битные хэш-функции с широким каналом и, безусловно, является разумным и, ИМХО, лучшим выбором при поиске 256-битной хеш-функции общего назначения.

Могут быть более быстрые варианты, но это довольно быстро.

Тройное хеширование, как вы предлагаете, похоже, не подходит ни для одной из известных мне целей. И вопрос не предполагает, почему вы можете думать, что такая структура с любой хеш-функцией в качестве основы является хорошей идеей для любых целей.

В частности, легко увидеть, что такая конструкция сохраняет все коллизии из базовой хеш-функции и добавляет новые при повторных вызовах. Такое тройное хеширование строго менее устойчиво к коллизиям, чем любая из исходных хеш-функций.

Kuba Chrabański avatar
флаг tr
Во-первых, что вы подразумеваете под усечением, взятием первых или вторых 256 бит или какой-то конкретной операцией, подобной той, что используется в SHA-512/256. Также я недавно понял несколько вещей, поэтому я могу уточнить свой вопрос. Допустим, у меня есть хэш-функция пароля PH(x), мне нужно сохранить как можно большую устойчивость к прообразу, а также мне нужно, чтобы вывод был 256 бит, должен ли я тогда: использовать PH(x) в 256-битном варианте или «уменьшить» вывод PH(x) в 512-битном варианте с помощью какой-нибудь 256-битной хеш-функции, такой как SHA-256? (SHA-256(PH(x)))
kelalaka avatar
флаг in
@KubaChrabaÅski узнайте разницу между функцией хеширования паролей и хешированием с защитой от коллизий, таким как SHAx ... Мы хотим, чтобы они были быстрыми. Алгоритмы хеширования паролей разработаны так, чтобы быть медленными, требовательными к памяти и потребляющими много потоков. Хотя некоторые из них включают SHA-256 или аналогичный по своей конструкции, целевая цель отличается. Конечно, устойчивость к прообразу важна при хешировании паролей, однако не ожидайте, что они также будут нарушены в отношении устойчивости к коллизиям.
Meir Maor avatar
флаг in
Когда мы выполняем повторное хеширование, как в pbkdf, мы продолжаем смешивать исходный ввод, чтобы домен не становился все меньше и меньше с каждой итерацией. Не создавайте собственную схему хеширования паролей. Используйте что-то уже предназначенное для этой цели. А как обрезать? Не важно, все методы работают.
Kuba Chrabański avatar
флаг tr
@kelalaka, может, тебе стоит ненадолго остановиться. это вообще был не мой вопрос
Kuba Chrabański avatar
флаг tr
@MeirMaor Я, очевидно, не собираюсь создавать свою собственную функцию хеширования паролей (PH(x)), мне просто нужно, чтобы ее вывод был 256-битным, и мне интересно, могу ли я использовать PH[512](x) и обрезать вывод ( если да, то как), или поместите вывод через обычную хэш-функцию, такую ​​​​как SHA3-256, и все еще получите какую-либо выгоду от использования 512-битного варианта PH
Meir Maor avatar
флаг in
SHA3 ​​не подходит для хеширования паролей. За исключением, может быть, если вы имеете в виду PBKDF2-SHA3. посмотрите на argon2 или scrypt или даже на более старый, но проверенный и настоящий bcrypt.
Этот вопрос на других языках:

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.