Рейтинг:1

Верификатор SHA в формате CNF

флаг br

Может кто-нибудь помочь рассказать, как создать верификатор 3-CNF для SHA-256, который:

  1. выводит 1, если вычисленное значение SHA-256 сообщения/ввода соответствует предварительно предоставленному хэшу
  2. В противном случае выводит 0.

Учитывая, что сообщение может быть произвольно длинным, мы можем предположить, что оно имеет конечную длину (скажем, 2 МБ), чтобы упростить нашу задачу.

fgrieu avatar
флаг ng
За исключением размера CNF, особых трудностей, по-видимому, нет. Вы видите, как бы вы справились с 3-CNF-реализацией SHA-256 для сообщения фиксированного размера? Как бы вы построили это, учитывая реализацию 3-CNF сжатия SHA-256? Как построить это из реализации 3-CNF раунда SHA-256? Как далее разбить это на 3-CNF? Просто начните это делать, а если застрянете, скажите где.
J.Doe avatar
флаг br
Спасибо. просто дополнительный запрос. Можете ли вы предложить хороший язык и программу вывода схемы в том смысле, что с учетом двоичных операций высокого уровня она по существу выводит логическое выражение, реализующее логику. VHDL или какой-то другой, похоже, предназначен для проектирования схем, но я не уверен, как мы можем получить вывод на основе двоичной логики [И, ИЛИ, НЕ], который реализует то же самое. P.S. Новичок в этом, таким образом, несколько невежественный.
fgrieu avatar
флаг ng
К сожалению, я не могу порекомендовать инструмент. Однажды (2004 г.) я хотел преобразовать в CNF проблему, связанную с криптографией ([VMPC](http://www.vmpcfunction.com/vmpc.pdf)), пытался найти легко используемые инструменты, потерпел неудачу и в итоге написал [ короткая программа на C](https://pastebin.com/WbDaYxWP). Генерируемые им бенчмарки до сих пор используются в соревнованиях SAT. Все это заработало за один вечер, IIRC.
J.Doe avatar
флаг br
Не ошибка. большое спасибо.

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

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