Рейтинг:1

Пошаговая работа с примерами ввода для хэш-функций NIST, таких как SHA-1, SHA-2 и SHA-3.

флаг in

Я работаю над наивной реализацией SHA-1, SHA-2 и SHA-3 на Python, и мне нужно протестировать и отладить, потому что результат хеширования сейчас неверен.

Я нашел здесь пошаговую разработку SHA-256. https://docs.google.com/spreadsheets/d/1mOTrqckdetCoRxY5QkVcyQ7Z0gcYIH-Dc0tu7t9f7tw/edit#gid=1025601888

Может ли кто-нибудь связать меня с пошаговой работой SHA-1, SHA-2 и SHA-3 для примера ввода?

Maarten Bodewes avatar
флаг in
Почему бы просто не взять работающую реализацию и не добавить несколько операторов печати для получения шестнадцатеричных значений? SHA-512 не является *этим* комплексом.
arunkumaraqm avatar
флаг in
@MaartenBodewes Хорошая идея. Я начал делать это 15 минут назад.
Maarten Bodewes avatar
флаг in
Я вас немного ускорю, смотрите [здесь](https://eips.ethereum.org/assets/eip-2680/sha256-384-512.pdf). Если у вас неправильный вывод (а если нет, вы бы не спрашивали), вам все равно может понадобиться эта известная хорошая реализация, хотя они просто перечисляют значения между раундами.
arunkumaraqm avatar
флаг in
@MaartenBodewes Это было в некоторой степени полезно, но мне нужны были сложные расчеты для этого первого блока.
Рейтинг:2
флаг in

NIST имеет очень давнюю традицию проверки алгоритмов, одобренных NIST. Это называется Программа проверки криптографических алгоритмов (CAVP). На подстранице о странице хеш-алгоритма вы найдете;

Тестовые векторы

Приведенные ниже тестовые векторы можно использовать для неофициальной проверки правильности реализации алгоритма безопасного хеширования (в FIPS 180-4 и FIPS 202) с использованием систем проверки, перечисленных выше.

Файлы ответов (.rsp): тестовые векторы правильно отформатированы в файлах ответов (.rsp). Файлы ответов поставщика должны точно соответствовать этому формату.

Файлы промежуточных результатов (.txt): файлы с промежуточными результатами (.txt) предоставляются для облегчения отладки.

Подробности смотрите в файле README в каждом zip-файле.

Скачайте нужный. Тестовый вектор содержит входные и выходные данные, за исключением теста Монте-Карло. Он предоставляет информацию о внутреннем цикле для некоторых выбранных циклов, но не дает дайджеста!.

Промежуточные значения

Если вы ищете полные промежуточные результаты, есть

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

Maarten Bodewes avatar
флаг in
Хм, мне было интересно, как ребята из криптовалюты создали такой красиво оформленный документ. Но кажется оригинал, из которого был создан документ NIST.

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

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