увати і легше аналізувати на предмет можливих вразливостей.
Для розшифрування виконуються зворотні операції в зворотній послідовності, тобто в кожному раунді r (із зворотного послідовністю раундів) виконуються наступні операції:
B=((B - K2 * r +1 mod 2w) >>> A) (+) A (2.11)=((A - K2 * r mod 2w) >>> B ) (+) B (2.12)
де >>> n - аналогічна описаній вище (<<< n) операція побітового циклічного зсуву вправо.
Відповідно після R раундів виконуються наступні операції:
B=B - K1 mod 2w (2.13)=A - K0 mod 2w (2.14)
Алгоритм RC5 і деякі його варіанти запатентовані; патенти належать фірмі RSA Data Security.
Процедура розширення ключа незначно складніше власне шифрування. Розширення ключа виконується в кілька етапів.
Етап 1. Вирівнювання ключа шифрування, в рамках якого ключ шифрування, якщо її розмір у байтах b не кратний w / 8 (тобто розміром слова в байтах), доповнюється нульовими байтами до найближчого більшого розміру c, кратного w / 8.
Етап 2. Ініціалізація масиву розширених ключів K0 ... K2 * R +1, яка виконується таким чином:
=Pw (2.15) +1=Ki + Qw (2.16)
де Pw і Qw - селестічні константи, утворені шляхом множення на 2w дробової частини і подальшого округлення до найближчого непарного цілого двох математичних констант (e і f відповідно). У специфікації алгоритму наведені обчислені константи для можливих значень w в шістнадцятковому вигляді:
P16=B7E1 (2.17)=9E37 (2.18)=B7E15163 (2.19)=9E3779B9 (2.20)=B7E151628AED2A6B (2.21)=9E3779B97F4A7C15 (2.22)
Етап 3. Циклічно виконуються наступні дії:
A=Ki=(Ki + A + B) <<< 3 (2.23)
B=KCj=(KCj + A + B) <<< (A + B) (2.24)=i + 1 mod (2 * R + 1) (2.25)=j + 1 mod c (2.26)
де i, j, A і B - тимчасові змінні, їх початкові значення рівні нулю; KC - вирівняний на етапі 1 ключ шифрування.
Кількість ітерацій циклу N визначається як N=3 * m, де m - максимальне з двох значень: c або (2 х R + 1).
Вважається, що саме революційна ідея зсуву на змінне число біт привернула увагу криптоаналітиків до алгоритму RC5 - він став одним з алгоритмів, найбільш вивчених на предмет можливих вразливостей.
Початок криптоанализу алгоритму RC5 було покладено співробітниками RSA Laboratories (наукового підрозділу фірми RSA Data Security) Бертоном Каліскі-молодшим (Burton S. Kaliski Jr.) і Іква Лайзой Ін (Yiqun Lisa Yin). У період з 1995 по 1998 р. вони опублікували ряд звітів, в яких докладно проаналізували крипостійкість алгоритму RC5. Зроблені з них висновки наведені ніже.почті неможливо розкрити методом лінійного криптоаналізу. Багато в чому це властивість алгоритму зумовлено наявністю операції циклічного зсуву на змінне число біт. Однак подальші дослідження показали, що існує клас ключів, при використанні яких алгоритм можна розкрити лінійним криптоаналізу.
Диференціальний криптоаналіз істотно більш ефективний при атаках на алгоритм RC5. Каліскі і Ін запропонували атаку на алгоритм RC5-32/12/16, для якої вимагалося 263 пар обраних відкритих текстів і відповідних їм Шифртекст. Цей результат покращили Ларс Кнудсен (Lars R. Knudsen) і Уіллі Мейер (Willi Meier), яким для атаки потурбувалися 254 обраних відкритих текстів. Вони ж знайшли кілька класів слабких ключів, що спрощують диференціальний криптоаналіз. А найкращим результатом став криптоаналітичних метод,...