Raiden

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

Хулио Кастро, Хавьер Олабарриэта

Создан:

2006 г.

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

2006 г.

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

128 бит

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

64 бит

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

16

Тип:

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

Raiden — блочный алгоритм шифрования типа «Сеть Фейстеля», представленный в 2006 году группой авторов во главе с Хулио Кастро (англ. Julio César Hernández Castro). Алгоритм разработан с использованием генетического программирования и основан на идеях блочного шифра TEA, который широко известен благодаря сочетанию компактного кода, простой и запоминающейся структуре и высокой скорости выполнения. Поскольку в последнее время алгоритм TEA был признан уязвимым к ряду атак, авторами была предложена, по их мнению, равноценная замена алгоритму, предположительно свободная от уязвимостей и лишь немного уступающая в скорости.

Шифр Raiden, полностью повторяя структуру алгоритма TEA, зашифровывает блок размером 64 бита, имеет два 32-битных подблока, 128-битный секретный ключ и выполняет по умолчанию 16 полных раундов, каждый из которых имеет два раунда сети Фейстеля. Структура шифра позволяет использование 32-х и более раундов.

Т.к. это блочный шифроалгоритм, где длина блока 64-бит, а длина данных может быть не кратна 64-битам, значения всех байтов дополняющих блок до кратности в 64-бит устанавливается в 0x01 .

Содержание

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

Алгоритм, в отличие от TEA, фактически не был исследован криптоаналитиками на данный момент. По заявлению авторов, 16 полных раундов алгоритма имеют уровень безопасности, равный 32 полным раундам алгоритма TEA, при этом не имея уязвимостей исходного алгоритма. Важнейшим отличием от шифра TEA является расширенное ключевое расписание. В то время, как алгоритм TEA предусматривает лишь сложение переменной с константой 0x9e3779b9 , Raiden использует ключевое расписание, близкое к ГПСЧ, трансформирует ключ и генерирует подключи для каждого раунда. Шифр успешно проходит тексты Diehard, Sexton и ENT.[1]

Пример кода на языке C

Алгоритм Raiden так же довольно прост в реализации, которая занимает лишь несколько строк кода. Как и TEA, алгоритм основан на операциях с 32-разрядным беззнаковыми числами (unsigned long).

void raiden_encode(const u32 key[4], const u32 data[2], u32 result[2])
{
        u32 b0 = data[0], b1 = data[1], k[4] = {key[0],key[1],key[2],key[3]}, sk;
        int i;
 
        for (i = 0; i < 16; i++)
        {
                sk  = k[i%4] = ((k[0]+k[1])+((k[2]+k[3])^(k[0]<<k[2])));
                b0 += ((sk+b1)<<9) ^ ((sk-b1)^((sk+b1)>>14));
                b1 += ((sk+b0)<<9) ^ ((sk-b0)^((sk+b0)>>14));
        }
        result[0] = b0;
        result[1] = b1;
}
 
 
void raiden_decode(const u32 key[4], const u32 data[2], u32 result[2])
{
        u32 b0 = data[0], b1 = data[1], k[4] = {key[0],key[1],key[2],key[3]}, subkeys[16];
        int i;
 
        for (i = 0; i < 16; i++) subkeys[i] = k[i%4] = ((k[0]+k[1])+((k[2]+k[3])^(k[0]<<k[2])));
 
        for (i = 15; i >= 0; i--)
        {
                b1 -= ((subkeys[i]+b0)<<9) ^ ((subkeys[i]-b0)^((subkeys[i]+b0)>>14));
                b0 -= ((subkeys[i]+b1)<<9) ^ ((subkeys[i]-b1)^((subkeys[i]+b1)>>14));
        }
        result[0] = b0;
        result[1] = b1;
}

См. также

TEA

RTEA

Примечания


Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Полезное


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

  • Raiden — Saltar a navegación, búsqueda El término Raiden o Rayden puede referirse a: El dios Raijin, el dios de los truenos y rayos según la mitología japonesa; Raiden, el videojuego matamarcianos. Raiden, un personaje de origen divino, de la serie de… …   Wikipedia Español

  • Raiden — bezeichnet Raiden Tameemon (雷電爲右エ門), japanischer Sumoringer (1767 – 1825) Raijin (雷電), japanische Schinto Gottheit, Gott des Donners Raiden (Computerspiel), eine Shoot ’em up Reihe des japanischen Unternehmens Seibu Kaihatsu (ab 1990) Mitsubishi… …   Deutsch Wikipedia

  • Raiden — (雷電) es dios de los truenos y rayos en la mitología japonesa; su nombre deriva la palabra japonesa rai (trueno) y den (rayo). Normalmente lo describen como un demonio tocando un tambor para crear truenos. Las creencias tradicionales dicen que el… …   Enciclopedia Universal

  • Raiden IV — Infobox VG title = Raiden IV developer = MOSS Ltd publisher = Taito designer = release = Arcade:flagicon|Japan vgrelease|Japan|JPN|June 7, 2007 Xbox 360: genre = Vertical scrolling shooter modes = Single player, 2 player Co op cabinet = Upright… …   Wikipedia

  • Raiden — is Japanese for thunder and lightning ; it may refer to:Video games* Raiden (series), a series of scrolling shooter arcade games. ** Raiden (arcade game), the first game in the series ** Raiden II ** Raiden DX ** Raiden III , the revival of the… …   Wikipedia

  • Raiden II — Infobox VG title = Raiden II developer = Seibu Kaihatsu, Kinesoft (Win) publisher = Arcade: flagicon|JapanSeibu Kaihatsu flagicon|USAFabtek Windows 95: flagicon|JapanGAMEBANK Corporation, CyberFront Corporation flagicon|USAInterplay Value… …   Wikipedia

  • Raiden DX — Infobox VG title = Raiden DX developer = Seibu Kaihatsu publisher = flagicon|JapanSeibu Kaihatsu (arcade) Nihon System Inc (PS) Hamster Corporation (PS) flagicon|USAFabtek (arcade) designer = engine = release = 1994 (arcade) flagicon|Japan1997 04 …   Wikipedia

  • Raiden — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Raiden peut désigner : Raiden, un démon de la mythologie japonaise ; Raiden, un personnage de jeu vidéo de la série Metal Gear ; Raiden, un …   Wikipédia en Français

  • Raiden —    Japanese thunder god who is usually depicted as a red demon with two claws on each foot and carrying a drum. There are other thunder beings associated with or derived from Raiden, such as his son Raitaro; Raicho, the thunder bird; Kaminari,… …   Who’s Who in non-classical mythology

  • Raiden (Mortal Kombat) — Saltar a navegación, búsqueda Raiden Personaje de Mortal Kombat Creador(es) John Tobias y Ed Boon Información Alias El Dios del Trueno Nacionalidad …   Wikipedia Español


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

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