Циклопедия скорбит по жертвам террористического акта в Крокус-Сити (Красногорск, МО)

Шифр Andromeda

Материал из Циклопедии
Перейти к навигации Перейти к поиску

Шифр Andromeda — потоковый шифр, разработанный компанией OrionDevTeam, ныне уже не существующей (сайт — oriondevteam.com). По некоторой информации компания специализировалась сугубо на разработках криптографических решений, в середине 2013 года их сайт перестал существовать и продуктов более никаких не выходило. Поиск в интернете дает два продукта — Orion Cipher Box и Base64Code.

Andromeda — потоковый шифр, построенный по принципу криптопримитива, то есть состоит из блоков, из которых можно сконфигурировать разные варианты этого шифра, в данный момент в интернете практически не возможно найти информацию по нему, к сожалению. Но шифр описан в узкоспециальной литературе. Andromeda — шифр с высокой производительностью, чем-то напоминающий RC4, о его устойчивости к разным видам анализа ничего не известно. Однако известно, что шифр имеет определенную особенность — в ходе работы шифр генерирует 3 ключевых байта для шифрования одного байта открытого текста, причем ключевые байты не только участвуют в шифровании, но и определяют как именно будет зашифрован открытый байт. Принцип такой: есть три ключа k1, k2, k3, после того, как они сгенерированы, блок шифрования сравнивает ключи, если k1>k2, то открытый байт шифруется например так Ci = P xor k1 xor k2 xor k3, а если k1<k2, то открытый байт шифруется так Ci = P + k3 xor k1 + k2. Варианты операций строго не заданы (может быть xor, +, и даже умножение по модулю), стойкость базируется на случайности ключей и, как следствие, случайности операции, которая применена для шифрования. НО! Сравнивать можно только ключи k1 и k2 - так как они псевдослучайны, а ключ k3 получается в результате k3=k2 xor k1.

Шифр Andromeda очень легко реализовывается как программно, так и аппаратно из-за своей простоты и понятной архитектуры, генератор ключевого расписания базируется на предварительном заполнении двух блоков инициализации шифра, хешированным выходом пароля от любой стойкой хеш-функции. Размер этих массивов по 1500 байт каждый, или по 12 000 бит. Блоки называются S-Box и Pool. При работе шифра, байты меняются не только внутри этих блоков, но и между самими блоками. Количество всех вариантов ключа колоссально — 2561500 * 2561500.

Он сочетает в себе такие «не сочетаемые» параметры как простота, но при этом стойкость практически к любым видам криптоанализа.

ГПСЧ этого шифра имеет архитектуру sponge, как и хеши семейства SHA3. Шифр симметричный, с высокой производительностью.

В базовой реализации обычно состоит из четырёх блоков:

  • блок инициализации;
  • блок шифрования;
  • блок прогрева;
  • блок перестановки.

Также рекомендуется использовать функцию деинициализации (для повышения защиты ключа от его определения).

По своей схеме генератор ключа Andromeda напоминает генератор ключа в RC4, за исключением того, что Andromeda использует два блока ключа, наполняемых при помощи функций-преобразователей (хеш-функции), при инициализации генератора нужно использовать любые криптостойкие хеширующие методы и протоколы соответствующие правилу 1567 (в режиме KDFx с использованием синтетической соли, для параметризации хеш-функции лучше использовать аппаратный ГСЧ или программные ГСЧ основанные, например, на осцилляции частот процессоров за счет теплового шума). Уникальность шифра в том, что можно без труда изменять выходной период генератора, а так же в наличии байтового весового шифратора и дешифратора. Рассмотрим каждый блок шифра.

Блок инициализации — его задача установить массивам Pool и SBox размером по 1500 Б начальное состояние. Эти массивы должны быть заполнены случайными байтами, полученными в ходе хеширования случайных параметров стойким хешем в режиме KDFx ≥ 8000 (рекомендуемый режим). Для заполнения массивов (установки ключевого расписания) рекомендуется использовать PbKDF от Whirpool(pass)x1500 для Sbox и SHA512(Revers(pass))x1500 для Pool. Размер массивов по 1500 байт является достаточным размером для обеспечения стойкости шифра. Блок шифрования — элемент, который определяет шифрующие ключи и получает байт зашифрованной(для расшифровки) или расшифрованной(для шифрования) информации. Сложность алгоритма состоит в том, что каждый байт шифруется тремя ключами. Два из которых — ключи из Sbox и Pool, полученные при помощи алгоритмов смешивания элементов массивов, а третий — так называемый «синтетический ключ» — ключ, полученный рядом операций над SBox и Pool. Далее элемент по первому ключу из массива SBox, элемент по второму ключу из массива Pool и третий ключ шифрую (или расшифровывают) байт открытой(закрытой) информации при помощи любых комбинаций обратимых побитовых операций. Таких функции, реализующих операции шифрования (расшифровки) несколько, и сложность заключается в том, что по весу ключей определяется, какой из них будет зашифрован байт исходной информации.

Блок прогрева — блок в котором происходит шифрование нулевого байта без сохранения выхода. Нужен для смешивания элементов массивов Pool и Sbox и, соответственно, изменения их состояния после инициализации.

Блок перестановки — блок, в котором происходит перестановка элементов массивов Pool и SBox для определения ключей.

Функция деинициализации — очищение инициализированных структур в памяти методом Гутмана.

 
Потоковые шифры

A3 A5 A8 Decim MICKEY RC4 Rabbit SEAL SOSEMANUK Trivium VMPC

Сеть Фейстеля

ГОСТ 28147-89 Blowfish Camellia CAST-128 CAST-256 CIPHERUNICORN-A CIPHERUNICORN-E CLEFIA Cobra DFC DEAL DES DESX EnRUPT FEAL FNAm2 HPC IDEA KASUMI Khufu LOKI97 MARS NewDES Raiden RC5 RC6 RTEA SEED Sinople Skipjack TEA Triple DES Twofish XTEA XXTEA

SP-сеть

3-WAY ABC AES (Rijndael) • Akelarre Anubis ARIA BaseKing BassOmatic CRYPTON Diamond2 Grand Cru Hierocrypt-L1 Hierocrypt-3 KHAZAD Lucifer Present Rainbow SAFER Serpent SHARK SQUARE Threefish

Другие

FROG NUSH REDOC SHACAL SC2000