Interested Article - HPC (шифр)
- 2021-02-01
- 1
HPC ( Hasty Pudding Cipher ) — блочный симметричный криптоалгоритм, созданный известным американским криптологом и математиком из Университета штата Аризона в 1998 году . Первые два слова названия криптоалгоритма можно перевести как «мучной заварной пудинг ». Столь странное название HPC получил, по всей видимости, из-за обилия «хитрых» числовых преобразований, что существенно затрудняет его анализ .
Общая структура
HPC основан на ячейке Фейстеля и имеет интересную особенность — размер как шифруемого блока, так и ключа шифрования не ограничен ничем. Фактически, алгоритм HPC состоит из пяти различных(но взаимосвязанных) субалгоритмов, каждый из которых предназначен для шифрования блоков различной длины:
Название |
|
---|---|
HPC-Tiny |
|
HPC-Short |
|
HPC-Medium |
|
HPC-Long |
|
HPC-Extended |
|
Структура раунда HPC-Medium
Шифрование выполняется в 8 раундов. Шифруемый 128- битный блок записывается в два 64- битных регистра и , после чего над ними производится огромное число различных математических операций:
Обозначение | Операция |
---|---|
|
сложение по модулю 2 |
|
сложение по модулю |
|
вычитание по модулю |
|
циклический сдвиг влево на n разрядов |
|
циклический сдвиг вправо на n разрядов |
|
обнуление младшего байта 64- битного блока |
|
побитовое логическое "и" |
Кроме того,в раунде также принимают участие некоторые константы :
-
- - размер шифруемого блока в битах
- - " псевдослучайная " константа
-
- значения, определяющие количество
бит
циклического сдвига
:
-
- - текущее на момент выполнения значение регистра
- - номер текущего раунда, начиная с нуля
- - фрагмент расширенного ключа :
- - фрагменты дополнительного ключа:
По завершении 8 раундов преобразования производится ещё 2 операции:
Расшифровка производится посредством выполнения обратных операций в обратном порядке.
Процедура расширения ключа
Задача процедуры расширения ключа - формирование расширенного ключа , являющегося массивом из 256 64- битных слов. Понятно, что для каждого из субалгоритмов должна быть своя процедура. Знание одного из массивов расширенного ключа не позволяет вычислить ни другие массивы, ни сам ключ шифрования . Однако, при фиксированном размере шифруемых блоков достаточно один раз сформировать расширенный ключ для данного субалгоритма.
Этап 1: Инициализация
-
- , - аналогичные " псевдослучайные " константы
- - размер ключа шифрования в битах
- - номер субалгоритма(3 для HPC-Medium)
Остальные 253 слова ключа инициализируются следующим образом:
Этап 2: Сложение
Производится побитовое сложение по модулю 2 ключа шифрования и проинициализированного массива расширенного ключа, но не более 128 слов.
Этап 3: Перемешивание
Выполняется функция перемешивания данных расширенного ключа , которая обеспечивает влияние каждого бита ключа на каждый бит расширенного ключа :
Шаг 1
Выполняется инициализация
регистров
:
Шаг 2
Для каждого слова расширенного ключа выполняется операция, приведённая на рисунке. Для усиления эффекта автор алгоритма рекомендует проводить 3 раунда перемешивания.
- - побитовое логическое "или"
- - номер вычисляемого слова расширенного ключа
- - номер раунда перемешивания
-
- текущие значения слов расширенного
ключа
:
Этап 4: Добавление
Если размер ключа превышает 128 64- битных слов, то для каждого блока из 128 слов повторяются Этапы 2 и 3. Таким образом, процедура перемешивания ключей по порядку сложности примерно похожа на саму процедуру шифрования .
Дополнительный ключ
Его назначение - модифицировать результат шифрования при одинаковых входных блоках и ключах . Дополнительный ключ может быть секретным, что увеличивает фактический объём ключевой информации, однако в алгоритме с неограниченной длиной ключа такая возможность может быть лишней. В таких случаях можно просто обнулить дополнительный ключ .
Достоинства и недостатки
- Один раунд шифрования алгоритма HPC состоит из очень большого количества элементарных операций. В сравнении, например, с отечественным алгоритмом ГОСТ 28147-89 , который состоит всего из 4 элементарных операций, HPC представляется чрезвычайно сложным и громоздким. Тем не менее, из-за того, что все операции проводятся над 64- битными словами, HPC показал удивительно высокую скорость работы на 64- битных платформах. На конкурсе стандартов шифрования AES по скорости шифрования 128- битных блоков HPC уступил только алгоритму DFC , а 512- и 1024- битные блоки HPC шифровал в 2-3 раза быстрее всех своих конкурентов.
- К явным недостаткам алгоритма можно отнести, кроме сложности, невозможность распараллеливания процессов шифрования и перемешивания, а также огромные требования, предъявляемые алгоритмом к энергонезависимой и оперативной памяти, что достаточно затрудняет его применение в смарт-картах .
- Алгоритм не попал во второй этап AES . В своей статье автор обрушился с критикой на экспертов AES , считая, что на конкурсе приоритеты были расставлены неправильно. По мнению , в качестве мирового стандарта необходимо выбирать алгоритмы, приспособленные под 64- битные платформы, так как именно за ними будущее. Кроме того, автор HPC утверждал, что нельзя разработать алгоритм, работающий одинаково хорошо как на мощных многоядерных 64- битных серверах, так и на слабых и дешевых 8- битных смарт-картах . Однако, на результаты конкурса эта позиция никак не повлияла.
Криптоанализ
- Чтобы стимулировать интерес к криптоанализу своего изобретения, автор обязался награждать каждого криптоаналитика бутылкой знаменитого шампанского " Дом Периньон ". Награждения будут проходить до тех пор, пока шифр не будет вскрыт, либо пока не опустеет ящик(10 бутылок).
- По словам автора шифра, HPC имеет уровень защищённости в 400 бит , то есть, для успешной атаки на шифр потребуется испытаний. Такое утверждение основано на подсчёте количества промежуточных состояний в процессе шифрования , а также на размере расширенного ключа .
Уязвимости
обнаружил уязвимость в шифре HPC , а позднее Carl D’Halluin, Gert Bijnens, Барт Пренель и Винсент Рэймен опубликовали статью , подтверждающую это. Оказалось, что примерно каждый 256-й ключ алгоритма имеет 230 эквивалентных ключей . Однако, этот недостаток был оперативно исправлен автором ещё до подведения итогов первого раунда конкурса.
Атака "Chosen Spice"
При таком виде атаки злоумышленник, имея доступ к парам открытых и шифрованных текстов, может, манипулируя массивом дополнительного ключа "Spice", смотреть, как при этом меняется открытый или шифрованный текст в последующих шифрованиях . Однако, по словам автора, атак такого вида ещё не наблюдалось, а для работ в этой области нужны усилия криптоаналитического сообщества.
Примечания
- — СПб. : , 2009. — 576 с. — ISBN 978-5-9775-0319
- ↑ . Дата обращения: 31 октября 2010. Архивировано из 17 июля 2011 года.
- и имеют одинаковый вид, но, вообще говоря, это будут разные числа, так как они зависят от текущего значения .
- . Дата обращения: 31 октября 2010. Архивировано из 30 ноября 2021 года.
- . Дата обращения: 30 октября 2010. 3 июля 2011 года.
- . Дата обращения: 31 октября 2010. Архивировано из 30 ноября 2021 года.
- . Дата обращения: 31 октября 2010. Архивировано из 30 ноября 2021 года.
- 2021-02-01
- 1