Рейтинг:0

При вводе потока необработанных двоичных значений в хэш SHA256 и во входном потоке встречается значение 10000000, заканчивается ли хэш?

флаг ng

Я получаю двоичные данные с датчика и сохраняю их в файле. Когда каждый байт данных считывается с датчика, он превращается в хэш SHA256. Длина полученного потока данных варьируется от одного сеанса к другому. Возможно, что отдельная выборка, имеющая двоичное значение 10000000, может быть обнаружена во входном потоке до окончания потока сеанса. Как хэш-алгоритм SHA256 обрабатывает это значение 10000000, поскольку оно также является маркером, используемым в конце хэш-ввода?

Рейтинг:1
флаг ng

Как хэш-алгоритм SHA-256 обрабатывает это значение 10000000, поскольку оно также является маркером, используемым в конце хэш-ввода?

SHA-256 не использует какой-либо шаблон на входе. А при использовании SHA-256 для хеширования несекретный данных нет необходимости беспокоиться об этой внутренней детали. Я добавлю одну причину эти: поскольку хеширование не является шифрованием, для хэша нет процесса дешифрования, поэтому нет необходимости распознавать какой-либо конечный шаблон, как это происходит при дешифровании зашифрованного текста для открытого текста переменного размера, например. режим ЦБК.

Есть причины для беспокойства по поводу конечного шаблона при работе с секрет данные: SHA-256 свойство расширения длины. Это справедливо для любого Меркле-Дамгард хэш $Ч$, что для любой длины $\ell$ (до такого огромного предела), есть короткая битовая строка $b_\ell$ (включая конечный шаблон) и эффективно вычислимую функцию $H_\ell$ так что для любой битовой строки $м$ из $\ell$ бит, для любой битовой строки $м'$ (до столь огромных размеров), он держит $$H(m\mathbin\|b_\ell\mathbin\|m')=H_\ell(H(m)\mathbin\|m')$$

Для любого секрета $м$ с известной длиной $\ell$ и известный хэш $Ч(м)$, это свойство позволяет вычислить $H(м\mathbin\|м')$ для любого известного $м'$ начиная с $b_\ell$. Это также достаточно, чтобы оправдать это $m\mapsto H(k\mathbin\|m)$ не является безопасным кодом аутентификации сообщения с ключом $к$.

Рейтинг:1
флаг fr

Криптографически безопасная хэш-функция может обрабатывать любую произвольную последовательность байтов, независимо от того, что это за байты или какой шаблон они могут иметь, возможно, вплоть до указанного максимального размера (что для SHA-256 равно $ 2^{64} $ биты).

Это правда, что SHA-256 использует один единичный бит, за которым следуют нулевые биты, как часть заполнения (схема Меркла-Дамгарда). Однако этот шаблон может появиться во входном потоке без проблем, а поскольку последний блок содержит входную длину, мы можем различать этот шаблон во входных данных и этот шаблон как часть схемы заполнения. Таким образом, не существует какого-либо определенного внутриполосного шаблона, который приведет к резкому завершению хэша.

Обратите внимание, что другие хэш-алгоритмы, такие как SHA-3 и BLAKE2, используют другие схемы заполнения, и они также могут без проблем обрабатывать произвольные входные шаблоны. Эти схемы заполнения, хотя и отличаются от конструкции Меркла-Дамгарда, также считаются безопасными и могут быть предпочтительнее по другим причинам.

Обычно, когда мы пишем API для хэширования, мы получаем три функции: функцию инициализации, которая устанавливает алгоритм с соответствующими параметрами; функция обновления, которая принимает входные данные для хэша; и функция завершения, которая выполняет заполнение, завершает хеширование и возвращает результат хеширования. Таким образом, мы всегда явно указываем, что хеширование должно закончиться независимо от входных данных.

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

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