EnRUPT

EnRUPT
EnRUPT
Создатель:

Шон О`Нил (англ. Sean O’Neil)

Создан:

2007 г.

Опубликован:

2008 г.

Размер ключа:

мин. 32 бит с шагом 32 бит

Размер блока:

мин. 64 бит с шагом 32 бит

Число раундов:

8 * (xw / 32) + 4 * (kw / 32)

Тип:

Несбалансированная модифицированная сеть Фейстеля[1]


EnRUPT — в криптографии симметричный блочный криптоалгоритм и криптопримитив, разработанный Шоном О`Нилом (англ. Sean O’Neil).

Особенностью алгоритма является его чрезвычайная гибкость. По-сути дела, алгоритм — это криптопримитив, позволяющий реализовать блочный шифр с произвольным размером блока — от 32 бит и длиной ключа от 64 бит. При этом, число раундов будет равно 8 * (xw / 32) + 4 * (kw / 32), где xw — размер блока в битах, kw — длина ключа в битах. Для шифра со 128-битным блоком и 512 битным ключом применяется 96 раундов, а при 256-битном ключе — 64 раунда.

Содержание

Сфера использования

Схема раунда поточного шифра RUPT

Поскольку EnRUPT является, де-факто, криптопримитивом, он может быть использован в режиме быстрого симметричного блочного шифра, поточного шифра (irreversible EnRUPT, irRUPT), хэш-функции (mdRUPT), MAC, ГСЧ, ГПСЧ.

Пример реализации

Как и алгоритм TEA, EnRUPT очень прост в реализации. Фактически, шифр является упрощенным, усиленным и ускоренным вариантом алгоритма XXTEA. Ниже указан простой и гибкий пример реализации алгоритма в режиме 32-разрядного блочного шифра.


#define er1(k) (rotr(2*x[(r-1)%xw]^x[(r+1)%xw]^k^r,8)*9^k)
 
enRUPT (u32 *x, const u32 xw, u32 *key, const u32 kw)
{
    u32 r, s=4, n=s*(2*xw+kw);
    for (r=1; r<=n; r++) x[r%xw] ^= er1(key[r%kw]);
}
 
unRUPT (u32 *x, const u32 xw, u32 *key, const u32 kw)
{
    u32 r, s=4, n=s*(2*xw+kw);
    for (r=n; r   ; r--) x[r%xw] ^= er1(key[r%kw]);
}

Где x — блок из 32-разрядных беззнаковых чисел, key — ключ, xw — длина сообщения, kw — длина ключа.

Безопасность

Существует атака на 32-разрядный вариант блочного шифра EnRUPT, при условии, что криптоаналитик имеет возможность модифицировать ключ и получить большое количество пар открытого и зашифрованного текста, для 256-битного ключа и 128-битного блока необходимо около 264 выбранного текста. Данная атака применима и для шифра XXTEA.[2][3]

На конкурсе SHA-3 хэш-функция на базе алгоритма EnRUPT была определена как имеющая коллизии при всех семи заявленных параметрах безопасности. Сложность нахождения коллизии составила от 236 до 240 операций для разных вариантов алгоритма, что позволило продемонстрировать[4] практическую коллизию для варианта EnRUPT-256.

По утверждению авторов алгоритма EnRUPT, была проведена успешная атака (англ. linearization attack) не хэш-функции в целом и не ее структуры, а только заявленного варианта с конкретным параметром s = 4. Увеличение параметра s до 8 должно привести к усилению диффузии и обеспечить более высокий уровень безопасности, за счет снижения скорости вычисления функции в два раза. Однако, независимых исследований данного варианта алгоритма не производилось.

В рамках того же конкурса SHA-3 была опубликована работа[5], где показана возможность нахождения прообраза для варианта EnRUPT-512. Данная атака требует около 2480 операций, что лишь немногим лучше 2512 для полного перебора, но все же показывает слабость структуры алгоритма.

Примечания

  1. EnRUPT: First all-in-one symmetric cryptographic primitive.
  2. Enrupt related-key attack
  3. EnRUPT related-key attack
  4. Practical Collisions for EnRUPT
  5. Cryptanalysis of EnRUPT

Ссылки

  1. Референсный исходный код EnRUPT
  2. Исходный код алгоритма EnRUPT, портированный на Delphi

Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Полезное


Смотреть что такое "EnRUPT" в других словарях:

  • NIST hash function competition — Cryptography portal The NIST hash function competition is an open competition held by the US National Institute of Standards and Technology for a new SHA 3 function to replace the older SHA 1 and SHA 2, which was formally announced in the Federal …   Wikipedia

  • Шифрование — Шифрование  преобразование информации в целях сокрытия от неавторизованных лиц, с предоставлением, в это же время, авторизованным пользователям доступа к ней. Главным образом, шифрование служит задаче соблюдения конфиденциальности… …   Википедия

  • Генератор псевдослучайных чисел — (ГПСЧ, англ. Pseudorandom number generator, PRNG)  алгоритм, порождающий последовательность чисел, элементы которой почти независимы друг от друга и подчиняются заданному распределению (обычно равномерному). Современная информатика… …   Википедия

  • NIST hash function competition — La NIST hash function competition est une compétition organisée par la NIST afin de trouver une nouvelle fonction de hachage (SHA 3) destinée à remplacer les anciennes fonctions SHA 1 et SHA 2. Sommaire 1 Participants 1.1 Finalistes 1.2 …   Wikipédia en Français

  • SHA-3 — NIST hash function competition La NIST hash function competition est une compétition organisée par la NIST afin de trouver une nouvelle fonction de hachage (SHA 3) destinée à remplacer les anciennes fonctions SHA 1 et SHA 2 Sommaire 1… …   Wikipédia en Français

  • RC2 — (Ron s Code 2 или Rivest s Cipher 2) блочный шифр (длина блока 64 бита) с переменной длиной ключа, разработанный Роном Ривестом. Алгоритм является более быс …   Википедия

  • RC4 — (англ. Rivest Cipher 4 или англ. Ron’s Code, также известен как ARCFOUR или ARC4 (англ. Alleged RC4))  потоковый шифр, широко применяющийся в различных системах защиты информации в компьютерных сетях (например, в протоколах… …   Википедия

  • RC5 — Создатель: Рон Ривест Создан: 1994 год Опубликован …   Википедия

  • Криптография — Немецкая криптомашина Lorenz использовалась во время Второй мировой войны для шифрования самых секретных сообщений Криптография (от др. греч …   Википедия

  • Сеть Фейстеля — (конструкция Фейстеля)  один из методов построения блочных шифров. Сеть представляет собой определённую многократно повторяющуюся (итерированную) структуру, называющуюся ячейкой Фейстеля. При переходе от одной ячейки к другой меняется ключ,… …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»