PIKE (PIKE)
PIKE — поточный шифр, предложенный Россом Андерсоном на смену взломанного им шифра FISH («FIbonacci SHrinking») в 1994 году.
История
[править | править код]В 1994 году Росс Андерсон опубликовал работу[1], посвящённую вскрытию криптосистемы FISH (её представили в Уве Блёхер и Маркус Дихтль в 1993 году)[2] и разработке новой — PIKE. В своей работе Андерсон описал как слабые стороны FISH, так и достоинства аддитивного генератора (иногда называемый запаздывающим генератором Фибоначчи)[3], на котором основан FISH, после чего была предложена новая криптосистема — PIKE[4]. Андерсон стремился получить быстрый программный потоковый шифр с одной стороны и достаточно криптостойкий с другой, поэтому в конструкции PIKE был использован пороговый механизм управления движением регистров, аналогичный схеме A5. В своей работе Андерсон подчеркнул, что если бы в FISH в качестве управляющих битов использовались биты переноса, то криптостойкость этой системы была бы значительно выше. Именно поэтому в PIKE и был применен пороговый механизм, заимствованный из A5.
Описание
[править | править код]За основу криптосистемы PIKE были взяты три аддитивных генератора:
В качестве управляющих битов используются биты переноса[5] С1, С2 и С3 сумматоров OR1, OR2 и OR3. Анализирую их состояние, схема синхронизации принимает решение, какие регистры сдвигать. Если все С1, С2 и С3 одинаковы, сдвиг произойдет во всех трёх регистрах, если одинаковое состояние имеют лишь два бита переноса, то сдвигать будут соответствующие им регистры. Сдвиг будет произведён с задержкой в 8 циклов.
Очередное слово шифрующей гаммы получается применением операции XOR над самыми младшими словами всех трёх генераторов. Ожидаемый прирост скорости данного алгоритма по сравнению с FISH составляет около 10 %, что является следствием того, что в PIKE выполняется в среднем 2.75, а не 3 обновления состояния генераторов, для порождения одного слова гаммы. На 33 МГц процессоре Intel 486 возможно достичь скорости шифрования в 62 Мбайт/сек при реализации на языке Си, пример которой может быть найден в[6], в которой ключ генерируется при помощи хеш-функции типа SHA.
Предполагается перезагружать ключ каждые слов гаммы для того, чтобы использовалась лишь небольшая доля минимальной длины периода генератора. Для получения начального 700-байтного заполнения целесообразно использовать качественную хеш-функцию.
Сравнение скорости шифрования
[править | править код]Алгоритм | Скорость шифрования (Мбайт/с) |
---|---|
A5 | 5 |
PIKE | 63 |
RC4 | 164 |
SEAL | 381 |
Следует отметить, что по данным за 2004 год, зафиксированных случаев взлома данного шифра нет[8]. Возможной областью применения данного алгоритма шифрования является цифровая связь.
Примечания
[править | править код]- ↑ Ross Anderson, «On Fibonacci Keystream Generators» . Дата обращения: 13 декабря 2012. Архивировано 23 апреля 2015 года.
- ↑ Blöcher, Uwe; Dichtl, Markus (1993), «Fish: A fast software stream cipher», Proc. Fast Software Encryption 1993, Lecture Notes in Computer Science, 809, Springer-Verlag, pp. 41-44
- ↑ Фомичёв В. М. Дискретная математика и криптология: Курс лекций / под ред. Н. Д. Подуфалов — М.: Диалог-МИФИ, 2013. — С. 332—334. — 397 с. — ISBN 978-5-86404-185-7
- ↑ Название «PIKE» было взято не случайно, ведь в переводе с англ. языка оно означает щука, которая «находится вершине пищевой цепочки местных вод, живет дольше, компактнее и злее чем другие рыбы»
- ↑ Gideon Yuval, Гидеон Юваль отметил что, вместо битов переноса на некоторых процессорах предпочтительнее использовать биты чётности
- ↑ «Прикладная криптография. Протоколы, алгоритмы, исходные тексты на Си Брюс Шнайер» ISBN 5-89392-055-4, PIKE.c
- ↑ Цифровая книга — «Криптография», гл. 2.3.2.2.17, Диски издательства LDL
- ↑ «Random Stream Cipher», Växjö universitet, 2007