RC5 — це алгоритм симетричного шифрування, розроблений Роном Райвестом в середині 90-х років.
Розробники | Рональд Рівест, RSA |
---|---|
Уперше оприлюднений | 1994 р. |
Раундів | 12 |
Тип | Мережа Фейстеля |
Характеристики
Під час розробки RC5 ставилося завдання досягти наступних характеристик:
- Придатність для апаратної та програмної реалізації. В RC5 використовуються тільки елементарні обчислювальні операції, які зазвичай застосовуються в мікропроцесорах.
- Швидкість виконання. RC5 є простим алгоритмом, що працює з даними розміром в машинне слово. Усі основні операції передбачають також роботу з даними довжиною в слово.
- Адаптованість до процесорів з різною довжиною слова. Довжина слова в бітах є параметром RC5 — при зміні довжини слова змінюється сам алгоритм.
- Змінна кількість раундів. Кількість раундів є другим параметром RC5. Цей параметр дозволяє обрати оптимальне співвідношення між швидкістю роботи та ступенем захисту.
- Змінна довжина ключа. Довжина ключа є третім параметром RC5. Як і в попередньому випадку, цей параметр дозволяє знайти прийнятний компроміс між швидкістю роботи та необхідним рівнем безпеки.
- Простота. Структура RC5 дуже проста не тільки для реалізації, але й для оцінки її криптоаналітичної стійкості.
- Низькі вимоги до пам'яті. Низькі вимоги до пам'яті роблять RC5 придатним для використання в смарт-картах та інших подібних пристроях з обмеженим обсягом пам'яті.
- Високий ступінь захисту. RC5 покликаний забезпечити високий ступінь захисту за умови вибору відповідних значень параметрів.
- Залежність циклічних зсувів від даних. В RC5 використовуються циклічні зсуви, величина яких залежить від даних, що має підвищувати криптоаналітичну стійкість алгоритму.
Алгоритм RC5 вбудовано до багатьох основних продуктів компанії RSA Data Security Inc., зокрема BSAFE, JSAFE та S/MAIL. RC5 фактично являє собою родину алгоритмів шифрування, що визначається трьома такими параметрами:
Параметр | Визначення | Допустимі значення |
---|---|---|
w | Розмір слова в бітах. RC5 шифрує дані блоками завдовжки 2 слова | 16, 32, 64 |
r | Кількість раундів | 0, 1, …, 255 |
b | Кількість 8-бітових байтів (октетів) в таємному ключі К | 0, 1, …, 255 |
Таким чином, RC5 шифрує блоки відкритого тексту довжиною 32, 64 чи 128 бітів в блоки шифрованого тексту тієї самої довжини. Довжина ключа може змінюватись від 0 до 2040 бітів. Конкретна версія RC5 позначається RC5-w/r/b. Наприклад, RC5-32/12/16 використовує 32-бітові слова (64-бітові блоки відкритого і шифрованого тексту), 12 раундів шифрування і ключ довжиною 16 байтів (128 бітів). Райвест пропонує використовувати RC5-32/12/16 як «стандартну» версію RC5.
Елементарні операції
В алгоритмі RC5 виконуються три елементарні операції (а також обернені до них):
- Додавання. Додавання слів, позначене символом +, виконується по модулю 2w. Обернена операція, позначена символом -, є відніманням по модулю 2w.
- Побітове виключне АБО. Ця операція позначається символом Å.
- Циклічний зсув вліво. Циклічний зсув слова x вліво на y бітів позначається x<<<y. Обернена операція є циклічним зсувом слова x вправо на y бітів і позначається x>>>y.
Шифрування
- Вхідні дані: відкритий текст M=(A,B) довжиною 2w бітів; кількість раундів r; ключ K=K[0]…K[b-1].
- Вихідні дані: шифрований текст С довжиною 2w бітів.
- Обчислити (2r+2) підключів S[0]…S[2r+1] за відповідним алгоритмом з вхідного K та r.
- A:=A+S[0], B:=B+S[1] (додавання здійснюється за модулем 2w).
- Від i=1 до r виконати : A:=((AÅB)<<<B)+S[2i], B:=((BÅA)<<<A)+S[2i+1].
- Вихідним значенням є C:=(A,B).
Дешифрування
- Для дешифрування використовуються ті самі підключі, які застосовуються для шифрованого тексту C=(A,B), таким чином (віднімання здійснюється за модулем 2w).
- Від i=r по спаданню до 1 виконати : B:=((B-S[2i+1])>>>A)ÅA, A:=((A-S[2i])>>>B)ÅB.
- Результат M:=(A-S[0],B-S[1]). (рис. 1б)
Створення підключів
- Підключі зберігаються в масиві з (2r+2) слів, елементи якого позначені S[0], S[1],…,S[2r+1]. Використовуючи як вхідні дані параметри r та w, цей масив ініціалізується псевдовипадковими фіксованими значеннями. Потім ключ K[0…b-1] довжиною b байтів перетворюється в масив L[0…c-1], що містить c слів. Для цього байти ключа копіюються в масив L доповнюючи при необхідності останнє слово справа нулями. Зрештою виконується деяка операція змішування, що об'єднує вміст L з ініціалізованими значеннями S, в результаті чого отримують остаточне значення масиву S.
Алгоритм створення підключів виглядає так:
- Вхідні дані: розмір слова в бітах w; кількість раундів r; ключ довжиною b байтів K[0]…K[b-1].
- Вихідні дані: підключі S[0]…S[2r+1] (де кожне S[i] має довжину w бітів).
- Перетворення ключа К в масив L. Нехай u=w/8 (кількість байтів у слові) і c=int[b/u] (довжина К в словах).
Ключ К заповнюється справа нулями при необхідності отримати кількість байтів, що ділиться на u (тобто for j=b to (c×u-1) do: K[j]:=0). For i=0 to c-1 do: (тобто заповнюємо L[j] від молодшого до старшого байта використовуючи по одному разу кожен байт K[×]).
- Ініціалізація масиву S:
S[0]:=Pw; for i=1 to 2r+1 do: S[i]:=S[i-1]+Qw. (тут Pw Qw є константами, заснованими на двійковому представленні чисел е та j (основи натуральних логарифмів та відношення золотого перетину). Значення цих констант для алгоритму RC5 наведено в табл. 4.)
- Змішування ініціалізованого масиву S з масивом ключів L:
i:=0, j:=0, A:=0, B:=0, t:=max(c, 2r+2). For s=1 to 3t do: (здійснюється три проходи більшого з масивів L і S) S[i]:=(S[i]+A+B)<<<3, A:=S[i], i:=(i+1)mod(2r+2). L[j]:=(L[j]+A+B)<<<(A+B), B:=L[j], j:=(j+1)mod(c)
- Виходом є S[0], S[1], … , S[2r+1].
При створенні програмного забезпечення захисту інформації особливу увагу слід приділяти безпечній реалізації таких програм. Так, наприклад, основними операціями з ключами шифрування є створення, знищення та встановлення значення. З метою запобігання розповсюдження ключової інформації в інші частини програми, операція знищення має заповнити нулями область пам'яті виділену для роботи з ключем, перед тим як звільняти її менеджеру пам'яті. Взагалі об'єкт ключа може підтримувати й інші операції, такі як створення нового випадкового ключа чи отримання ключа з даних протоколу обміну ключами.
Режими шифру
З метою забезпечення можливості ефективного використання RC5 в неоднорідному середовищі, специфікація RFC 2040 визначає чотири різних режими роботи цього алгоритму.
- Блочний шифр RC5. Алгоритм прямого шифрування, при якому береться блок даних заданого розміру (2w бітів) і з нього за допомогою залежного від ключа перетворення генерується блок шифрованого тексту такого самого розміру. Цей режим часто називають режимом ECB (режим електронної шифрувальної книги).
- RC5-CBC. Режим зв'язаних шифрованих блоків для RC5. В режимі СВС обробляються повідомлення, довжина яких кратна розміру блока RC5 (тобто кратна 2w бітам). Режим СВС забезпечує вищий ступінь захисту, ніж ЕСВ, оскільки генерує різні блоки шифрованого тексту для однакових повторних блоків відкритого тексту.
- RC5-CBC-Pad. Модифікація режиму СВС, призначена для роботи з відкритим текстом будь-якої довжини. Довжина шифрованого тексту в цьому режимі перевищує довжину відкритого тексту не більш ніж на довжину одного блоку RC5.
- RC5-CTS. Режим запозичення шифрованого тексту (ciphertext stealing), теж є модифікацією СВС. В цьому режимі допускається обробка відкритого тексту будь-якої довжини і генерується шифрований текст тієї самої довжини.
Криптоаналіз
Цей розділ потребує доповнення. (січень 2011) |
Див. також
Ця стаття не містить . (січень 2011) |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
RC5 ce algoritm simetrichnogo shifruvannya rozroblenij Ronom Rajvestom v seredini 90 h rokiv RC5Rozrobniki Ronald Rivest RSAUpershe oprilyudnenij 1994 r Raundiv 12Tip Merezha FejstelyaHarakteristikiPid chas rozrobki RC5 stavilosya zavdannya dosyagti nastupnih harakteristik Pridatnist dlya aparatnoyi ta programnoyi realizaciyi V RC5 vikoristovuyutsya tilki elementarni obchislyuvalni operaciyi yaki zazvichaj zastosovuyutsya v mikroprocesorah Shvidkist vikonannya RC5 ye prostim algoritmom sho pracyuye z danimi rozmirom v mashinne slovo Usi osnovni operaciyi peredbachayut takozh robotu z danimi dovzhinoyu v slovo Adaptovanist do procesoriv z riznoyu dovzhinoyu slova Dovzhina slova v bitah ye parametrom RC5 pri zmini dovzhini slova zminyuyetsya sam algoritm Zminna kilkist raundiv Kilkist raundiv ye drugim parametrom RC5 Cej parametr dozvolyaye obrati optimalne spivvidnoshennya mizh shvidkistyu roboti ta stupenem zahistu Zminna dovzhina klyucha Dovzhina klyucha ye tretim parametrom RC5 Yak i v poperednomu vipadku cej parametr dozvolyaye znajti prijnyatnij kompromis mizh shvidkistyu roboti ta neobhidnim rivnem bezpeki Prostota Struktura RC5 duzhe prosta ne tilki dlya realizaciyi ale j dlya ocinki yiyi kriptoanalitichnoyi stijkosti Nizki vimogi do pam yati Nizki vimogi do pam yati roblyat RC5 pridatnim dlya vikoristannya v smart kartah ta inshih podibnih pristroyah z obmezhenim obsyagom pam yati Visokij stupin zahistu RC5 poklikanij zabezpechiti visokij stupin zahistu za umovi viboru vidpovidnih znachen parametriv Zalezhnist ciklichnih zsuviv vid danih V RC5 vikoristovuyutsya ciklichni zsuvi velichina yakih zalezhit vid danih sho maye pidvishuvati kriptoanalitichnu stijkist algoritmu Algoritm RC5 vbudovano do bagatoh osnovnih produktiv kompaniyi RSA Data Security Inc zokrema BSAFE JSAFE ta S MAIL RC5 faktichno yavlyaye soboyu rodinu algoritmiv shifruvannya sho viznachayetsya troma takimi parametrami Parametri algoritmu RC5 Parametr Viznachennya Dopustimi znachennya w Rozmir slova v bitah RC5 shifruye dani blokami zavdovzhki 2 slova 16 32 64 r Kilkist raundiv 0 1 255 b Kilkist 8 bitovih bajtiv oktetiv v tayemnomu klyuchi K 0 1 255 Takim chinom RC5 shifruye bloki vidkritogo tekstu dovzhinoyu 32 64 chi 128 bitiv v bloki shifrovanogo tekstu tiyeyi samoyi dovzhini Dovzhina klyucha mozhe zminyuvatis vid 0 do 2040 bitiv Konkretna versiya RC5 poznachayetsya RC5 w r b Napriklad RC5 32 12 16 vikoristovuye 32 bitovi slova 64 bitovi bloki vidkritogo i shifrovanogo tekstu 12 raundiv shifruvannya i klyuch dovzhinoyu 16 bajtiv 128 bitiv Rajvest proponuye vikoristovuvati RC5 32 12 16 yak standartnu versiyu RC5 Elementarni operaciyiV algoritmi RC5 vikonuyutsya tri elementarni operaciyi a takozh oberneni do nih Dodavannya Dodavannya sliv poznachene simvolom vikonuyetsya po modulyu 2w Obernena operaciya poznachena simvolom ye vidnimannyam po modulyu 2w Pobitove viklyuchne ABO Cya operaciya poznachayetsya simvolom A Ciklichnij zsuv vlivo Ciklichnij zsuv slova x vlivo na y bitiv poznachayetsya x lt lt lt y Obernena operaciya ye ciklichnim zsuvom slova x vpravo na y bitiv i poznachayetsya x gt gt gt y ShifruvannyaVhidni dani vidkritij tekst M A B dovzhinoyu 2w bitiv kilkist raundiv r klyuch K K 0 K b 1 Vihidni dani shifrovanij tekst S dovzhinoyu 2w bitiv Obchisliti 2r 2 pidklyuchiv S 0 S 2r 1 za vidpovidnim algoritmom z vhidnogo K ta r A A S 0 B B S 1 dodavannya zdijsnyuyetsya za modulem 2w Vid i 1 do r vikonati A AAB lt lt lt B S 2i B BAA lt lt lt A S 2i 1 Vihidnim znachennyam ye C A B DeshifruvannyaDlya deshifruvannya vikoristovuyutsya ti sami pidklyuchi yaki zastosovuyutsya dlya shifrovanogo tekstu C A B takim chinom vidnimannya zdijsnyuyetsya za modulem 2w Vid i r po spadannyu do 1 vikonati B B S 2i 1 gt gt gt A AA A A S 2i gt gt gt B AB Rezultat M A S 0 B S 1 ris 1b Stvorennya pidklyuchivPidklyuchi zberigayutsya v masivi z 2r 2 sliv elementi yakogo poznacheni S 0 S 1 S 2r 1 Vikoristovuyuchi yak vhidni dani parametri r ta w cej masiv inicializuyetsya psevdovipadkovimi fiksovanimi znachennyami Potim klyuch K 0 b 1 dovzhinoyu b bajtiv peretvoryuyetsya v masiv L 0 c 1 sho mistit c sliv Dlya cogo bajti klyucha kopiyuyutsya v masiv L dopovnyuyuchi pri neobhidnosti ostannye slovo sprava nulyami Zreshtoyu vikonuyetsya deyaka operaciya zmishuvannya sho ob yednuye vmist L z inicializovanimi znachennyami S v rezultati chogo otrimuyut ostatochne znachennya masivu S Algoritm stvorennya pidklyuchiv viglyadaye tak Vhidni dani rozmir slova v bitah w kilkist raundiv r klyuch dovzhinoyu b bajtiv K 0 K b 1 Vihidni dani pidklyuchi S 0 S 2r 1 de kozhne S i maye dovzhinu w bitiv Peretvorennya klyucha K v masiv L Nehaj u w 8 kilkist bajtiv u slovi i c int b u dovzhina K v slovah Klyuch K zapovnyuyetsya sprava nulyami pri neobhidnosti otrimati kilkist bajtiv sho dilitsya na u tobto for j b to c u 1 do K j 0 For i 0 to c 1 do tobto zapovnyuyemo L j vid molodshogo do starshogo bajta vikoristovuyuchi po odnomu razu kozhen bajt K Inicializaciya masivu S S 0 Pw for i 1 to 2r 1 do S i S i 1 Qw tut Pw Qw ye konstantami zasnovanimi na dvijkovomu predstavlenni chisel e ta j osnovi naturalnih logarifmiv ta vidnoshennya zolotogo peretinu Znachennya cih konstant dlya algoritmu RC5 navedeno v tabl 4 Zmishuvannya inicializovanogo masivu S z masivom klyuchiv L i 0 j 0 A 0 B 0 t max c 2r 2 For s 1 to 3t do zdijsnyuyetsya tri prohodi bilshogo z masiviv L i S S i S i A B lt lt lt 3 A S i i i 1 mod 2r 2 L j L j A B lt lt lt A B B L j j j 1 mod c Vihodom ye S 0 S 1 S 2r 1 Pri stvorenni programnogo zabezpechennya zahistu informaciyi osoblivu uvagu slid pridilyati bezpechnij realizaciyi takih program Tak napriklad osnovnimi operaciyami z klyuchami shifruvannya ye stvorennya znishennya ta vstanovlennya znachennya Z metoyu zapobigannya rozpovsyudzhennya klyuchovoyi informaciyi v inshi chastini programi operaciya znishennya maye zapovniti nulyami oblast pam yati vidilenu dlya roboti z klyuchem pered tim yak zvilnyati yiyi menedzheru pam yati Vzagali ob yekt klyucha mozhe pidtrimuvati j inshi operaciyi taki yak stvorennya novogo vipadkovogo klyucha chi otrimannya klyucha z danih protokolu obminu klyuchami Rezhimi shifruZ metoyu zabezpechennya mozhlivosti efektivnogo vikoristannya RC5 v neodnoridnomu seredovishi specifikaciya RFC 2040 viznachaye chotiri riznih rezhimi roboti cogo algoritmu Blochnij shifr RC5 Algoritm pryamogo shifruvannya pri yakomu beretsya blok danih zadanogo rozmiru 2w bitiv i z nogo za dopomogoyu zalezhnogo vid klyucha peretvorennya generuyetsya blok shifrovanogo tekstu takogo samogo rozmiru Cej rezhim chasto nazivayut rezhimom ECB rezhim elektronnoyi shifruvalnoyi knigi RC5 CBC Rezhim zv yazanih shifrovanih blokiv dlya RC5 V rezhimi SVS obroblyayutsya povidomlennya dovzhina yakih kratna rozmiru bloka RC5 tobto kratna 2w bitam Rezhim SVS zabezpechuye vishij stupin zahistu nizh ESV oskilki generuye rizni bloki shifrovanogo tekstu dlya odnakovih povtornih blokiv vidkritogo tekstu RC5 CBC Pad Modifikaciya rezhimu SVS priznachena dlya roboti z vidkritim tekstom bud yakoyi dovzhini Dovzhina shifrovanogo tekstu v comu rezhimi perevishuye dovzhinu vidkritogo tekstu ne bilsh nizh na dovzhinu odnogo bloku RC5 RC5 CTS Rezhim zapozichennya shifrovanogo tekstu ciphertext stealing tezh ye modifikaciyeyu SVS V comu rezhimi dopuskayetsya obrobka vidkritogo tekstu bud yakoyi dovzhini i generuyetsya shifrovanij tekst tiyeyi samoyi dovzhini KriptoanalizCej rozdil potrebuye dopovnennya sichen 2011 Div takozhBlochnij shifr Cya stattya ne mistit posilan na dzherela Vi mozhete dopomogti polipshiti cyu stattyu dodavshi posilannya na nadijni avtoritetni dzherela Material bez dzherel mozhe buti piddano sumnivu ta vilucheno sichen 2011