Общие | |
---|---|
Разработчики | , |
Впервые опубликовано | 2003 |
На основе | криптосистемы Мак-Элиса и криптосистемы Нидеррайтера |
Преемники | Улучшенная хеш-функция на основе быстрого синдрома |
Относится к | Синдромная хеш-функция |
Детализация | |
Размеры дайджеста | Масштабируемость |
В криптографии быстрые синдромные хеш-функции (FSB) являются семейство криптографических хэш-функций, представленных в 2003 году Даниэлем Ауго, Матье Финиасом и Николя Сендриером. В отличие от большинства других криптографических хеш-функций, используемых сегодня, FSB в определенной степени может быть доказана как безопасная. Точнее, можно доказать, что взлом FSB не менее сложен, чем решение определенной NP-полной проблемы, известной как обычное синдромное декодирование, поэтому FSB доказуемо безопасна. Хотя неизвестно, разрешимы ли NP-полные задачи за полиномиальное время, часто предполагается, что это не так.
Было предложено несколько версий FSB, последняя из которых была представлена на конкурс SHA-3 криптографии, но была отклонена в первом раунде. Хотя все версии ФСБ заявляют о доказуемой безопасности, некоторые предварительные версии в конечном итоге были сломаны. Однако конструкция последней версии FSB учла эту атаку и остается защищенной от всех известных в настоящее время атак.
Как обычно, доказуемая безопасность имеет свою цену. FSB работает медленнее, чем традиционные хеш-функции, и использует довольно много памяти, что делает ее непрактичной в средах с ограниченным объемом памяти. Кроме того, функция сжатия, используемая в FSB, требует большого размера вывода, чтобы гарантировать безопасность. Эта последняя проблема была решена в последних версиях путем простого сжатия вывода с помощью другой функции сжатия, называемой Whirlpool. Однако, хотя авторы утверждают, что добавление этого последнего сжатия не снижает безопасность, оно делает невозможным формальное доказательство безопасности.
Начнем с функции сжатия с параметрами такими, что и <18 журнал (п / ш)>r {\ displaystyle w \ log (n / w)>r}. Эта функция будет работать только с сообщениями длиной ; будет размер вывода. Кроме того, нам нужны и как натуральные числа, где обозначает двоичный логарифм. Причина - это то, что нам нужно быть функцией сжатия, поэтому входные данные должны быть больше, чем выходные. Позже мы будем использовать конструкцию Меркла – Дамгарда, чтобы расширить область до входов произвольной длины.
Базис этой функции состоит из (случайно выбранной) двоичной матрицы , которая действует на сообщение из бит на матричное умножение. Здесь мы кодируем -битовое сообщение как вектор в , -мерное векторное пространство над fi eld из двух элементов, поэтому на выходе будет сообщение из бит.
В целях безопасности, а также для увеличения скорости хеширования мы хотим использовать только «обычные слова с весом » в качестве входных данных для нашей матрицы.
Ровно различные регулярные слова веса и длины , поэтому нам нужно ровно битов данных для кодирования этих обычных слов. Мы фиксируем биекцию из набора битовых строк длины на набор регулярных слов веса и длина , а затем функция сжатия FSB определяется следующим образом:
Эта версия обычно называется синдромным сжатием . Это очень медленно и на практике выполняется другим, более быстрым способом, что приводит к быстрому синдромному сжатию . Мы разбиваем на субматрицы размером , и мы исправляем взаимное соответствие из битовых строк длины к набору последовательностей чисел от 1 до . Это эквивалентно взаимно однозначному отображению набора обычных слов длины и веса , поскольку мы можем рассматривайте такое слово как последовательность чисел от 1 до . Функция сжатия выглядит следующим образом:
Теперь мы можем использовать конструкцию Меркла – Дамгарда, чтобы обобщить функцию сжатия для приема входных данных произвольной длины.
Ситуация и инициализация : Хеширование сообщения с использованием матрица H. ., которое разделено на
Алгоритм :
Доказано, что конструкция Меркла – Дамгарда основывает свою безопасность только на безопасности используемой функции сжатия. Таким образом, нам нужно только показать, что функция сжатия
Криптографическая хеш-функция должна быть защищена в трех различных аспектах:
Обратите внимание, что если злоумышленник может найти второй прообраз, то он обязательно найдет коллизию. Это означает, что если мы сможем доказать, что наша система устойчива к коллизиям, это обязательно будет второй прообраз.
Обычно в криптографии «жесткий» означает что-то вроде «почти наверняка вне досягаемости любого злоумышленника, которому необходимо предотвратить взлом системы». Однако нам потребуется более точное значение слова «жесткий». трудно иметь в виду «Время выполнения любого алгоритма, обнаруживающего коллизию или пре-иму ge будет экспоненциально зависеть от размера хеш-значения ». Это означает, что за счет относительно небольших добавлений к размеру хэша мы можем быстро достичь высокой безопасности.
Как было сказано ранее, безопасность FSB зависит от проблемы, называемой декодирование обычного синдрома (RSD) . Синдромное декодирование изначально является проблемой из теории кодирования, но его NP-полнота делает его прекрасным приложением для криптографии. Декодирование обычного синдрома является частным случаем декодирования синдрома и определяется следующим образом:
Определение RSD: данные
Доказано, что эта проблема NP-полная путем сокращения с 3-мерного сопоставления. Опять же, хотя неизвестно, существуют ли алгоритмы полиномиального времени для решения NP-полных задач, ни один из них не известен, и его обнаружение было бы огромным открытием.
Легко видеть, что поиск прообраза заданного хэша
Нам все еще нужно доказать устойчивость к столкновениям. Для этого нам понадобится еще один NP-полный вариант RSD: декодирование 2-регулярного нулевого синдрома .
Определение 2-RNSD: Для
2-RNSD также оказался NP-полным путем сокращения с 3-мерного соответствие.
Точно так же, как RSD, по сути, эквивалентно поиску обычного слова
Предположим, что мы обнаружили коллизию, поэтому у нас есть Hash (m 1) = Hash (m 2) с
Последние версии FSB используют функцию сжатия Whirlpool для дальнейшего сжатия выходных хеш-данных. Хотя это не может быть доказано, авторы утверждают, что это последнее сжатие не снижает безопасность. Обратите внимание, что даже если бы можно было найти коллизии в Whirlpool, все равно нужно было бы найти предварительные изображения коллизий в исходной функции сжатия FSB, чтобы найти коллизию в FSB.
Решая RSD, мы находимся в ситуации, противоположной той, что и при хешировании. Используя те же значения, что и в предыдущем примере, мы получаем
В 2-RNSD мы хотим найти в каждом подблоке не один столбец, а два или ноль, чтобы их сумма составляла 0000 (а не
доказуемая безопасность FSB означает, что поиск коллизии NP-полны. Но доказательство сводится к проблеме с асимптотически жесткой сложностью наихудшего случая. Это дает только ограниченную гарантию безопасности, поскольку все еще может существовать алгоритм, который легко решает проблему для подмножества проблемного пространства. Например, существует метод линеаризации, который можно использовать для создания коллизий за считанные секунды на настольном ПК для ранних вариантов системной шины с заявленной безопасностью 2 ^ 128. Показано, что хеш-функция обеспечивает минимальную стойкость к предварительному изображению или столкновениям, когда пространство сообщений выбирается определенным образом.
В следующей таблице показана сложность наиболее известных атак на FSB.
Размер вывода (биты) | Сложность поиска коллизий | Сложность инверсии |
---|---|---|
160 | 2 | 2 |
224 | 2 | 2 |
256 | 2 | 2 |
384 | 2 | 2 |
512 | 2 | 2 |
FSB - это ускоренная версия синдромальной хеш-функции (SB). В случае SB функция сжатия очень похожа на функцию кодирования версии Нидеррайтера из криптосистемы Мак-Элиса. Вместо использования матрицы проверки на четность переставленного кода Гоппы, SB использует случайную матрицу
В 2007 году был опубликован IFSB. В 2010 году была опубликована S-FSB, которая на 30% быстрее оригинала.
В 2011 году D. J. Bernstein и Tanja Lange опубликовали RFSB, который в 10 раз быстрее, чем исходный FSB-256. Было показано, что RFSB работает очень быстро на Spartan 6 FPGA, достигая пропускной способности около 5 Гбит / с.