Raiden — блочний алгоритм шифрування типу «Мережі Фейстеля», представлений в 2006 році групою авторів на чолі з Хуліо Кастро (англ. Julio César Hernández Castro). Алгоритм розроблений з використанням генетичного програмування і заснований на ідеях блочного шифру TEA, який широко відомий завдяки поєднанню компактного коду, простий зі структурою, що добре запамятовується. Має високу швидкість виконання. Оскільки останнім часом алгоритм TEA був визнаний вразливим до ряду атак, авторами була запропонована, на їх думку, рівноцінна заміна алгоритму, ймовірно вільна від вразливостей і лише трохи поступається в швидкості.
Розробники | Хуліо Кастро Хав'єр Олабаррієта |
---|---|
Уперше оприлюднений | 2006 року |
Раундів | 16 |
Тип | Мережа Фейстеля |
Шифр Raiden, повністю повторюючи структуру алгоритму TEA, зашифровує блок розміром 64 біта, має два 32-бітних подблока, 128-бітний секретний ключ і виконує за умовчанням 16 повних раундів, кожен з яких має два раунди мережі Фейстеля. Структура шифру дозволяє використання 32-х і більше раундів.
Так як, це блочний шифроалгоритм, де довжина блоку 64-біт, а довжина даних може бути не кратна 64-біт, значення всіх байтів доповнюють блок до кратності в 64-біт встановлюється в 0x01 .
Безпека
Алгоритм, на відміну від TEA, фактично не був досліджений криптоаналітиками на даний момент. За заявою авторів, 16 повних раундів алгоритму мають рівень безпеки, рівний 32 повним раундам алгоритму TEA, при цьому, не маючи вразливостей вихідного алгоритму. Найважливішою відмінністю від шифру TEA є розширений ключовий розклад. В той час, як алгоритм TEA передбачає лише додавання змінної з константою 0x9e3779b9 , Raiden використовує ключовий розклад, близький до ДПРЧ, трансформує ключ і генерує підключі для кожного раунду. Шифр успішно проходить тексти Diehard, Sexton і ENT.
Приклад коду на мові 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] & 0x1F)))); 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] & 0x1F)))); 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; }
Див. також
Примітки
- . Архів оригіналу за 5 березня 2016. Процитовано 22 квітня 2018.
Посилання
- Реалізація шифру на мові Delphi [ 5 березня 2016 у Wayback Machine.]
- Ісходник програми, що показує приклад створення портированного на Delphi блочного шифру Raiden [ 25 березня 2016 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U Vikipediyi ye statti pro inshi znachennya cogo termina Raiden blochnij algoritm shifruvannya tipu Merezhi Fejstelya predstavlenij v 2006 roci grupoyu avtoriv na choli z Hulio Kastro angl Julio Cesar Hernandez Castro Algoritm rozroblenij z vikoristannyam genetichnogo programuvannya i zasnovanij na ideyah blochnogo shifru TEA yakij shiroko vidomij zavdyaki poyednannyu kompaktnogo kodu prostij zi strukturoyu sho dobre zapamyatovuyetsya Maye visoku shvidkist vikonannya Oskilki ostannim chasom algoritm TEA buv viznanij vrazlivim do ryadu atak avtorami bula zaproponovana na yih dumku rivnocinna zamina algoritmu jmovirno vilna vid vrazlivostej i lishe trohi postupayetsya v shvidkosti RaidenRozrobnikiHulio Kastro Hav yer OlabarriyetaUpershe oprilyudnenij2006 rokuRaundiv16TipMerezha Fejstelya Shifr Raiden povnistyu povtoryuyuchi strukturu algoritmu TEA zashifrovuye blok rozmirom 64 bita maye dva 32 bitnih podbloka 128 bitnij sekretnij klyuch i vikonuye za umovchannyam 16 povnih raundiv kozhen z yakih maye dva raundi merezhi Fejstelya Struktura shifru dozvolyaye vikoristannya 32 h i bilshe raundiv Tak yak ce blochnij shifroalgoritm de dovzhina bloku 64 bit a dovzhina danih mozhe buti ne kratna 64 bit znachennya vsih bajtiv dopovnyuyut blok do kratnosti v 64 bit vstanovlyuyetsya v 0x01 BezpekaAlgoritm na vidminu vid TEA faktichno ne buv doslidzhenij kriptoanalitikami na danij moment Za zayavoyu avtoriv 16 povnih raundiv algoritmu mayut riven bezpeki rivnij 32 povnim raundam algoritmu TEA pri comu ne mayuchi vrazlivostej vihidnogo algoritmu Najvazhlivishoyu vidminnistyu vid shifru TEA ye rozshirenij klyuchovij rozklad V toj chas yak algoritm TEA peredbachaye lishe dodavannya zminnoyi z konstantoyu 0x9e3779b9 Raiden vikoristovuye klyuchovij rozklad blizkij do DPRCh transformuye klyuch i generuye pidklyuchi dlya kozhnogo raundu Shifr uspishno prohodit teksti Diehard Sexton i ENT Priklad kodu na movi CAlgoritm Raiden tak samo dosit prostij v realizaciyi yaka zajmaye lishe kilka ryadkiv kodu Yak i TEA algoritm zasnovanij na operaciyah z 32 rozryadnimi bezznakovimi chislami 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 lt 16 i sk k i 4 k 0 k 1 k 2 k 3 k 0 lt lt k 2 amp 0x1F b0 sk b1 lt lt 9 sk b1 sk b1 gt gt 14 b1 sk b0 lt lt 9 sk b0 sk b0 gt gt 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 lt 16 i subkeys i k i 4 k 0 k 1 k 2 k 3 k 0 lt lt k 2 amp 0x1F for i 15 i gt 0 i b1 subkeys i b0 lt lt 9 subkeys i b0 subkeys i b0 gt gt 14 b0 subkeys i b1 lt lt 9 subkeys i b1 subkeys i b1 gt gt 14 result 0 b0 result 1 b1 Div takozhTEA RTEAPrimitki Arhiv originalu za 5 bereznya 2016 Procitovano 22 kvitnya 2018 PosilannyaRealizaciya shifru na movi Delphi 5 bereznya 2016 u Wayback Machine Ishodnik programi sho pokazuye priklad stvorennya portirovannogo na Delphi blochnogo shifru Raiden 25 bereznya 2016 u Wayback Machine