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 раунда.





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

Поскольку 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 для полного перебора, но все же показывает слабость структуры алгоритма.

Напишите отзыв о статье "EnRUPT"

Примечания

  1. [www.enrupt.com/EnRUPT_008.pdf EnRUPT: First all-in-one symmetric cryptographic primitive.]
  2. [www.enrupt.com/index.php/2009/01/20/enrupt_related-key_attack Enrupt related-key attack]
  3. [cipherdev.org/break-enrupt-kdchain.c.txt EnRUPT related-key attack]
  4. [drops.dagstuhl.de/opus/volltexte/2009/1950/ Practical Collisions for EnRUPT]
  5. [ehash.iaik.tugraz.at/uploads/9/9b/Enrupt.pdf Cryptanalysis of EnRUPT]

Ссылки

  1. [www.enrupt.com/EnRUPT.zip Референсный исходный код EnRUPT]
  2. [cartman-cipher.narod.ru/mirror/enrupt.zip Исходный код алгоритма EnRUPT, портированный на Delphi]

Отрывок, характеризующий EnRUPT

Рассказ был очень мил и интересен, особенно в том месте, где соперники вдруг узнают друг друга, и дамы, казалось, были в волнении.
– Charmant, [Очаровательно,] – сказала Анна Павловна, оглядываясь вопросительно на маленькую княгиню.
– Charmant, – прошептала маленькая княгиня, втыкая иголку в работу, как будто в знак того, что интерес и прелесть рассказа мешают ей продолжать работу.
Виконт оценил эту молчаливую похвалу и, благодарно улыбнувшись, стал продолжать; но в это время Анна Павловна, все поглядывавшая на страшного для нее молодого человека, заметила, что он что то слишком горячо и громко говорит с аббатом, и поспешила на помощь к опасному месту. Действительно, Пьеру удалось завязать с аббатом разговор о политическом равновесии, и аббат, видимо заинтересованный простодушной горячностью молодого человека, развивал перед ним свою любимую идею. Оба слишком оживленно и естественно слушали и говорили, и это то не понравилось Анне Павловне.
– Средство – Европейское равновесие и droit des gens [международное право], – говорил аббат. – Стоит одному могущественному государству, как Россия, прославленному за варварство, стать бескорыстно во главе союза, имеющего целью равновесие Европы, – и она спасет мир!
– Как же вы найдете такое равновесие? – начал было Пьер; но в это время подошла Анна Павловна и, строго взглянув на Пьера, спросила итальянца о том, как он переносит здешний климат. Лицо итальянца вдруг изменилось и приняло оскорбительно притворно сладкое выражение, которое, видимо, было привычно ему в разговоре с женщинами.
– Я так очарован прелестями ума и образования общества, в особенности женского, в которое я имел счастье быть принят, что не успел еще подумать о климате, – сказал он.
Не выпуская уже аббата и Пьера, Анна Павловна для удобства наблюдения присоединила их к общему кружку.


В это время в гостиную вошло новое лицо. Новое лицо это был молодой князь Андрей Болконский, муж маленькой княгини. Князь Болконский был небольшого роста, весьма красивый молодой человек с определенными и сухими чертами. Всё в его фигуре, начиная от усталого, скучающего взгляда до тихого мерного шага, представляло самую резкую противоположность с его маленькою, оживленною женой. Ему, видимо, все бывшие в гостиной не только были знакомы, но уж надоели ему так, что и смотреть на них и слушать их ему было очень скучно. Из всех же прискучивших ему лиц, лицо его хорошенькой жены, казалось, больше всех ему надоело. С гримасой, портившею его красивое лицо, он отвернулся от нее. Он поцеловал руку Анны Павловны и, щурясь, оглядел всё общество.
– Vous vous enrolez pour la guerre, mon prince? [Вы собираетесь на войну, князь?] – сказала Анна Павловна.
– Le general Koutouzoff, – сказал Болконский, ударяя на последнем слоге zoff , как француз, – a bien voulu de moi pour aide de camp… [Генералу Кутузову угодно меня к себе в адъютанты.]
– Et Lise, votre femme? [А Лиза, ваша жена?]
– Она поедет в деревню.
– Как вам не грех лишать нас вашей прелестной жены?
– Andre, [Андрей,] – сказала его жена, обращаясь к мужу тем же кокетливым тоном, каким она обращалась к посторонним, – какую историю нам рассказал виконт о m lle Жорж и Бонапарте!
Князь Андрей зажмурился и отвернулся. Пьер, со времени входа князя Андрея в гостиную не спускавший с него радостных, дружелюбных глаз, подошел к нему и взял его за руку. Князь Андрей, не оглядываясь, морщил лицо в гримасу, выражавшую досаду на того, кто трогает его за руку, но, увидав улыбающееся лицо Пьера, улыбнулся неожиданно доброй и приятной улыбкой.