<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=RC5</id>
	<title>RC5 - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://camokathomelab.servebeer.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=RC5"/>
	<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=RC5&amp;action=history"/>
	<updated>2026-07-16T14:25:19Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://camokathomelab.servebeer.com/mediawiki/index.php?title=RC5&amp;diff=7684&amp;oldid=prev</id>
		<title>imported&gt;Alex NB OT: замена имён и значений устаревшего неподдерживаемого InternetArchiveBot формата параметров доступности ссылок (4), замена устаревших имён параметров (6)</title>
		<link rel="alternate" type="text/html" href="https://camokathomelab.servebeer.com/mediawiki/index.php?title=RC5&amp;diff=7684&amp;oldid=prev"/>
		<updated>2025-07-16T10:11:43Z</updated>

		<summary type="html">&lt;p&gt;замена имён и значений устаревшего неподдерживаемого InternetArchiveBot формата параметров доступности ссылок (4), замена устаревших имён параметров (6)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Карточка блочного шифра&lt;br /&gt;
|название = RC5&lt;br /&gt;
|изображение = RC5 InfoBox Diagram.png&lt;br /&gt;
|создатель = [[Ривест, Рональд Линн|Рон Ривест]]&lt;br /&gt;
|создан = [[1994 год]]&lt;br /&gt;
|опубликован = [[1994 год]]&lt;br /&gt;
|размер ключа = 0-2040 битов (128 по умолчанию)&lt;br /&gt;
|размер блока = 32, 64 или 128 битов (64 по умолчанию для 32-разрядных платформ)&lt;br /&gt;
|число раундов = 1-255 (12 по умолчанию)&lt;br /&gt;
|тип = [[Сеть Фейстеля]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;RC5&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Ron’s Code 5&amp;#039;&amp;#039; или &amp;#039;&amp;#039;Rivest’s Cipher 5&amp;#039;&amp;#039;) — это [[блочный шифр]], разработанный [[Ривест, Рональд Линн|Роном Ривестом]] из компании {{iw|RSA Security}} с переменным количеством [[Раунд (криптография)|раундов]], длиной блока и длиной [[Ключ (криптография)|ключа]]. Это расширяет сферу использования и упрощает переход на более сильный вариант алгоритма.&lt;br /&gt;
&lt;br /&gt;
== Описание ==&lt;br /&gt;
Существует несколько [[RC5#Варианты алгоритма|различных вариантов алгоритма]], в которых преобразования в «пол-раундах» классического RC5 несколько изменены.&lt;br /&gt;
В классическом алгоритме используются три примитивных операции и их инверсии:&lt;br /&gt;
* [[сложение]] по модулю &amp;lt;math&amp;gt;2^w&amp;lt;/math&amp;gt;&lt;br /&gt;
* побитовое [[исключающее ИЛИ]] ([[XOR]])&lt;br /&gt;
* операции [[циклический сдвиг|циклического сдвига]] на переменное число бит (&amp;lt;math&amp;gt;x \lll y&amp;lt;/math&amp;gt;).&lt;br /&gt;
Основным нововведением является использование операции сдвига на переменное число бит, не использовавшиеся в более ранних алгоритмах шифрования. Эти операции одинаково быстро выполняются на большинстве [[процессор]]ов, но в то же время значительно усложняют [[дифференциальный криптоанализ|дифференциальный]] и [[линейный криптоанализ]] алгоритма.&lt;br /&gt;
&lt;br /&gt;
Шифрование по алгоритму RC5 состоит из двух этапов. Процедура расширения ключа и непосредственно [[шифрование]]. Для расшифрования выполняется сначала процедура расширения ключа, а затем операции, обратные процедуре шифрования. Все операции сложения и [[Вычитание|вычитания]] выполняются по модулю &amp;lt;math&amp;gt;2^w&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Параметры ===&lt;br /&gt;
Так как алгоритм RC5 имеет переменные параметры, то для спецификации алгоритма с конкретными параметрами принято обозначение &amp;#039;&amp;#039;&amp;#039;RC5-W/R/b&amp;#039;&amp;#039;&amp;#039;, где&lt;br /&gt;
* &amp;#039;&amp;#039;W&amp;#039;&amp;#039; — половина длины блока в [[бит]]ах, возможные значения 16, 32 и 64. Для эффективной реализации величину &amp;#039;&amp;#039;W&amp;#039;&amp;#039; рекомендуют брать равным [[машинное слово|машинному слову]]. Например, для 32-битных платформ оптимальным будет выбор &amp;#039;&amp;#039;W&amp;#039;&amp;#039;=32, что соответствует размеру блока 64 бита.&lt;br /&gt;
* &amp;#039;&amp;#039;R&amp;#039;&amp;#039; — число [[Раунд (в криптографии)|раундов]], возможные значения от 0 до 255. Увеличение числа раундов обеспечивает увеличение уровня безопасности шифра. Так, при &amp;#039;&amp;#039;R&amp;#039;&amp;#039;=0 информация шифроваться не будет. Также алгоритм RC5 использует &amp;#039;&amp;#039;&amp;#039;таблицу расширенных ключей&amp;#039;&amp;#039;&amp;#039; размера &amp;lt;math&amp;gt;2(R+1)&amp;lt;/math&amp;gt; слов, которая получается из ключа заданного пользователем.&lt;br /&gt;
* &amp;#039;&amp;#039;b&amp;#039;&amp;#039; — длина ключа в [[байт]]ах, возможные значения от 0 до 255.&lt;br /&gt;
&lt;br /&gt;
=== Расширение ключа ===&lt;br /&gt;
----&lt;br /&gt;
Перед непосредственно шифрованием или расшифрованием данных выполняется процедура расширения ключа.&lt;br /&gt;
Процедура генерации ключа состоит из четырёх этапов:&lt;br /&gt;
* Генерация констант&lt;br /&gt;
* Разбиение ключа на слова&lt;br /&gt;
* Построение таблицы расширенных ключей&lt;br /&gt;
* Перемешивание&lt;br /&gt;
&lt;br /&gt;
==== Генерация констант ====&lt;br /&gt;
Для заданного параметра &amp;lt;math&amp;gt;W&amp;lt;/math&amp;gt; генерируются две псевдослучайные величины используя две математические константы: &amp;lt;math&amp;gt;e&amp;lt;/math&amp;gt; ([[экспонента]]) и &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; ([[Золотое сечение]]).&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;Q_w \leftarrow \textrm{Odd}((f-1)\cdot 2^w)&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;P_w \leftarrow \textrm{Odd}((e-2)\cdot 2^w)&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;\textrm{Odd}()&amp;lt;/math&amp;gt; — это [[округление]] до ближайшего нечетного целого.&lt;br /&gt;
&lt;br /&gt;
Для &amp;lt;math&amp;gt;w = 16, 32, 64&amp;lt;/math&amp;gt; получатся следующие константы:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;math&amp;gt;P_{16} = \texttt{1011011111100001}_2 = \texttt{B7E1}_{16}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;Q_{16} = \texttt{1001111000110111}_2 = \texttt{9E37}_{16}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_{32} = \texttt{10110111111000010101000101100011}_2 = \texttt{B7E15163}_{16} &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;Q_{32} = \texttt{10011110001101110111100110111001}_2 = \texttt{9E3779B9}_{16} &amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;P_{64} = \texttt{B7E151628AED2A6B}_{16}&amp;lt;/math&amp;gt;&lt;br /&gt;
* &amp;lt;math&amp;gt;Q_{64} = \texttt{9E3779B97F4A7C15}_{16}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Разбиение ключа на слова ====&lt;br /&gt;
На этом этапе происходит копирование ключа &amp;lt;math&amp;gt;K_0 \dots  K_{b-1}&amp;lt;/math&amp;gt; в массив слов &amp;lt;math&amp;gt;L_0&amp;lt;/math&amp;gt;…&amp;lt;math&amp;gt;L_{c-1}&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;c=b/u&amp;lt;/math&amp;gt;, где &amp;lt;math&amp;gt;u = W/8&amp;lt;/math&amp;gt;, то есть, количество байт в слове.&lt;br /&gt;
&lt;br /&gt;
Если &amp;lt;math&amp;gt;b&amp;lt;/math&amp;gt; не кратен &amp;lt;math&amp;gt;W/8&amp;lt;/math&amp;gt;, то &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; дополняется нулевыми битами до ближайшего большего размера &amp;lt;math&amp;gt;c&amp;lt;/math&amp;gt;, кратного &amp;lt;math&amp;gt;W/8&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
В случае если &amp;lt;math&amp;gt;b=c=0&amp;lt;/math&amp;gt;, то мы устанавливаем значение &amp;lt;math&amp;gt;c=1&amp;lt;/math&amp;gt;, а &amp;lt;math&amp;gt;L_0=0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Построение таблицы расширенных ключей ====&lt;br /&gt;
На этом этапе происходит построение таблицы расширенных ключей &amp;lt;math&amp;gt;S_0 \dots S_{2 * (R+1) - 1}&amp;lt;/math&amp;gt;, которое выполняется следующим образом:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;S_0 = P_w&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;S_{i+1} = S_{i} + Q_w&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Перемешивание ====&lt;br /&gt;
Циклически N раз выполняются следующие действия:&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;G = S_i = (S_i + G + H) \lll 3&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;H = L_j = (L_j + G + H) \lll (G + H)&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;i = (i + 1) \mod (2(R + 1))&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;j = (j + 1) \mod c&amp;lt;/math&amp;gt;,&lt;br /&gt;
причем &amp;lt;math&amp;gt;G, H, i, j&amp;lt;/math&amp;gt; — временные переменные, начальные значения которых равны 0. Количество итераций цикла &amp;lt;math&amp;gt;N&amp;lt;/math&amp;gt; — это максимальное из двух значений &amp;lt;math&amp;gt;3*c&amp;lt;/math&amp;gt; и &amp;lt;math&amp;gt;(3 \cdot 2 \cdot (R + 1))&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Шифрование ===&lt;br /&gt;
----&lt;br /&gt;
Перед первым раундом выполняются операции наложения расширенного ключа на шифруемые данные:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A = (A + S_0)\;\bmod\;2^w&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;B = (B + S_1)\;\bmod\;2^w&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В каждом раунде выполняются следующие действия:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A = ((A \oplus B) \lll B) + S_{2i}&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;B = ((B \oplus A) \lll A) + S_{2i+1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Расшифрование ===&lt;br /&gt;
----&lt;br /&gt;
Для Расшифрования данных используются обратные операции, то есть для &amp;lt;math&amp;gt;i = R, R-1,...,1&amp;lt;/math&amp;gt; выполняются следующие раунды:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;B = ((B - S_{2i+1}) \ggg A) \oplus A&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;A = ((A - S_{2i}) \ggg B) \oplus B&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После выполнения всех раундов, исходное сообщение находится из выражения:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;B = (B - S_1)\;\bmod\;2^w&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;A = (A - S_0)\;\bmod\;2^w&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства ==&lt;br /&gt;
Алгоритм RC5 обладает следующими свойствами:&amp;lt;ref name=&amp;quot;fse1994&amp;quot;&amp;gt;{{cite conference|last=Rivest|first=R. L.|year=1994|title=The RC5 Encryption Algorithm|booktitle=Proceedings of the Second International Workshop on Fast Software Encryption (FSE) 1994e|pages=86–96|url=http://theory.lcs.mit.edu/~rivest/Rivest-rc5rev.pdf|format=pdf|9=ref-en|access-date=2009-10-27|archive-date=2007-04-17|archive-url=https://web.archive.org/web/20070417135716/http://theory.lcs.mit.edu/~rivest/Rivest-rc5rev.pdf|url-status=dead}} {{Cite web |url=http://theory.lcs.mit.edu/~rivest/Rivest-rc5rev.pdf |title=Источник |access-date=2009-10-27 |archive-date=2007-04-17 |archive-url=https://web.archive.org/web/20070417135716/http://theory.lcs.mit.edu/~rivest/Rivest-rc5rev.pdf |url-status=dead }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Пригодный как для аппаратной, так и для программной реализации (алгоритм использует операции, выполняющиеся одинаково быстро на всех [[процессор]]ах).&lt;br /&gt;
* Каждый раунд обрабатывает весь блок целиком (типичный раунд [[Сеть Фейстеля|сети Фейстеля]] обрабатывает только «подблок»).&lt;br /&gt;
* Одинаково хорош для машин с разной длиной машинного слова (то есть работает также хорошо и на 64-битных машинах).&lt;br /&gt;
* Имеет повторяющуюся структуру с переменным числом раундов, что позволяет пользователю самому выбирать между более высокой скоростью шифрования и большей защищенностью шифра.&lt;br /&gt;
* Имеет переменную длину ключа, что позволяет пользователю самому выбирать уровень безопасности, соответствующий специфике его приложения.&lt;br /&gt;
* Достаточно простой в реализации и анализе.&lt;br /&gt;
* Не требователен к памяти, что позволяет использовать его даже в мобильных и переносных устройствах.&lt;br /&gt;
&lt;br /&gt;
== Криптостойкость ==&lt;br /&gt;
RSA потратила много времени на анализ его работы с 64-битным блоком. Так в период с 1995 по 1998 г. они опубликовали ряд отчётов, в которых подробно проанализировали криптостойкость алгоритма RC5.&lt;br /&gt;
Оценка для линейного криптоанализа показывает, что алгоритм безопасен после 6 раундов.&lt;br /&gt;
Дифференциальный криптоанализ требует &amp;lt;math&amp;gt;2^{24}&amp;lt;/math&amp;gt; выбранных открытых текстов для алгоритма с 5 раундами, &amp;lt;math&amp;gt;2^{45}&amp;lt;/math&amp;gt; для 10 раундов, &amp;lt;math&amp;gt;2^{53}&amp;lt;/math&amp;gt; для 12 раундов и &amp;lt;math&amp;gt;2^{68}&amp;lt;/math&amp;gt; для 15 раундов. А так как существует всего лишь &amp;lt;math&amp;gt;2^{64}&amp;lt;/math&amp;gt; возможных различных открытых текстов, то дифференциальный криптоанализ невозможен для алгоритма в 15 и более раундов.&lt;br /&gt;
Так что рекомендуется использовать 18-20 раундов, или по крайней мере не меньше 15 вместо тех 12 раундов которые рекомендовал сам Ривест.&lt;br /&gt;
&lt;br /&gt;
=== RSA Security Challenge ===&lt;br /&gt;
Для стимуляции изучения и применения шифра RC5 RSA Security 28 января 1997 года предложила взломать серию сообщений, зашифрованных алгоритмом RC5 с разными параметрами,&amp;lt;ref&amp;gt;[http://www.rsasecurity.com/rsalabs/node.asp?id=2100 The RSA Laboratories Secret-Key Challenge] {{webarchive|url=https://web.archive.org/web/20040523210952/http://www.rsasecurity.com/rsalabs/node.asp?id=2100 |date=2004-05-23 }}&amp;lt;/ref&amp;gt; назначив за взлом каждого сообщения приз в $10 000. Шифр с самыми слабыми параметрами RC5-32/12/5 был взломан в течение нескольких часов. Тем не менее, последний осуществлённый взлом шифра RC5-32/12/8 потребовал уже 5 лет вычислений в рамках проекта [[распределённые вычисления|распределённых вычислений]] &amp;#039;&amp;#039;RC5-64&amp;#039;&amp;#039; (здесь 64=&amp;#039;&amp;#039;b&amp;#039;&amp;#039;·8, длина ключа в битах) под руководством [[distributed.net]]. По-прежнему неприступными пока остаются RC5-32/12/&amp;#039;&amp;#039;b&amp;#039;&amp;#039; для &amp;#039;&amp;#039;b&amp;#039;&amp;#039; от 9 до 16. distributed.net запустил проект &amp;#039;&amp;#039;RC5-72&amp;#039;&amp;#039; для взлома RC5-32/12/9, в котором по состоянию на январь 2023 года удалось перебрать около 10 % ключей.&amp;lt;ref&amp;gt;{{Cite web |url=http://stats.distributed.net/projects.php?project_id=8 |title=RC5-72: Overall project statistics |access-date=2010-02-14 |archive-date=2018-10-09 |archive-url=https://web.archive.org/web/20181009090806/http://stats.distributed.net/projects.php?project_id=8 |url-status=live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В мае 2007 года RSA Security Inc. объявила о прекращении поддержки соревнования и выплаты денежного вознаграждения. Чтобы не прекращать проект &amp;#039;&amp;#039;RC-72&amp;#039;&amp;#039;, distributed.net решила спонсировать для него приз в $4 000 из собственных средств.&amp;lt;ref&amp;gt;[http://n0cgi.distributed.net/cgi/planarc.cgi?user=bovine&amp;amp;plan=2008-09-08.02:09 distributed.net: staff blogs — 2008 — September — 08&amp;lt;!-- Заголовок добавлен ботом --&amp;gt;]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Атака по времени выполнения ===&lt;br /&gt;
На платформах, где операция циклического сдвига на переменное число битов выполняется за различное число [[такт (процессор)|тактов процессора]], возможна [[атака по времени]] исполнения на алгоритм RC5. Два варианта подобной атаки были сформулированы криптоаналитиками [[Хейз, Говард|Говардом Хейзом]] и [[Хандшух, Хелен|Хеленой Хандшух]] ({{lang-en|Helena Handschuh}}). Они установили, что ключ может быть вычислен после выполнения около 220 операций шифрования с высокоточными замерами времени исполнения и затем от 228 до 240 пробных операций шифрования. Самый простой метод борьбы с подобными атаками — принудительное выполнение сдвигов за постоянное число тактов (например, за время выполнения самого медленного сдвига).&lt;br /&gt;
&lt;br /&gt;
== Варианты алгоритма ==&lt;br /&gt;
Так как одним из свойств RC5 является его простота в реализации и анализе, вполне логично, что многие криптологи{{кто}} захотели усовершенствовать классический алгоритм. Общая структура алгоритма оставалась без изменений, менялись только [[RC5#Шифрование|действия выполняемые над каждым блоком в процессе непосредственно шифрования]]. Так появилось несколько различных вариантов этого алгоритма:&lt;br /&gt;
&lt;br /&gt;
=== RC5XOR ===&lt;br /&gt;
В этом алгоритме сложение с ключом раунда по модулю &amp;lt;math&amp;gt;2^w&amp;lt;/math&amp;gt; заменено операцией XOR:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A_{i+1} = ((A_i \oplus B_i) \lll B_i) \oplus S_{2i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;B_{i+1} = ((B_i \oplus A_i) \lll A_i) \oplus S_{2i+1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Этот алгоритм оказался уязвим для дифференциального и линейного криптоанализа. Бирюкову и Кушилевицу удалось найти атаку методом дифференциального криптоанализа для алгоритма RC5XOR-32/12/16, используя 228 выбранных открытых текстов.&lt;br /&gt;
&lt;br /&gt;
=== RC5P ===&lt;br /&gt;
В этом алгоритме сложение двух обрабатываемых «подблоков» операцией XOR заменено сложением по модулю &amp;lt;math&amp;gt;2^w&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A_{i+1} = ((A_i + B_i) \lll B_i) + S_{2i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;B_{i+1} = ((B_i + A_i) \lll A_i) + S_{2i+1}&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
Этот алгоритм оказался уязвим для дифференциального криптоанализа.{{Нет АИ|20|02|2011}}--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== RC5PFR ===&lt;br /&gt;
В данном алгоритме циклический сдвиг осуществляется на фиксированное для данного раунда число бит, а не на переменное.&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A_{i+1} = ((A_i \oplus B_i) \lll R_i) + S_{2i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;B_{i+1} = ((B_i \oplus A_i) \lll R_i) + S_{2i+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
где &amp;lt;math&amp;gt;R_i&amp;lt;/math&amp;gt; фиксированное число.&lt;br /&gt;
&lt;br /&gt;
Этот алгоритм не достаточно хорошо изучен, однако предполагается,{{кем}} что он неустойчив к дифференциальному криптоанализу.&lt;br /&gt;
&lt;br /&gt;
=== RC5KFR ===&lt;br /&gt;
В этом алгоритме число бит сдвига зависит от ключа алгоритма и от текущего раунда:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A_{i+1} = ((A_i \oplus B_i) \lll R_i(L_i)) + S_{2i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;B_{i+1} = ((B_i \oplus A_i) \lll R_i(L_i)) + S_{2i+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
Этот алгоритм также не достаточно хорошо изучен.&lt;br /&gt;
&lt;br /&gt;
=== RC5RA ===&lt;br /&gt;
В этом алгоритме число бит сдвига определяется с помощью некоторой функции от другого «подблока»:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;A_{i+1} = ((A_i \oplus B_i) \lll f(L_i)) + S_{2i}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;B_{i+1} = ((B_i \oplus A_i) \lll f(L_i)) + S_{2i+1}&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
Предполагается,{{кем}} что алгоритм RC5RA ещё более стоек к известным методам криптоанализа, чем RC5.&lt;br /&gt;
&lt;br /&gt;
== Примечания ==&lt;br /&gt;
{{примечания}}&lt;br /&gt;
&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
{{Викиучебник|Программные реализации RC5|Программные реализации RC5}}&lt;br /&gt;
&lt;br /&gt;
* {{Книга:Шнайер Б.: Прикладная криптография}}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 |url         = http://www.inode.ru/articles/admin/2006-09-07/380#2&lt;br /&gt;
 |title       = Часто задаваемые вопросы по симметричным шифрам&lt;br /&gt;
 |access-date  = 2009-11-11&lt;br /&gt;
 |lang        = ru&lt;br /&gt;
 |description = по материалам конференции fido7.ru.crypt&lt;br /&gt;
 |archive-url  = https://web.archive.org/web/20110822105602/http://www.inode.ru/articles/admin/2006-09-07/380#2&lt;br /&gt;
 |archive-date = 2011-08-22&lt;br /&gt;
 |url-status    = dead&lt;br /&gt;
}}&lt;br /&gt;
* {{cite web&lt;br /&gt;
 |url         = http://www.cio-world.ru/weekly/298888/page2.html&lt;br /&gt;
 |title       = Современные методы вскрытия алгоритмов шифрования&lt;br /&gt;
 |access-date  = 2009-12-04&lt;br /&gt;
 |lang        = ru&lt;br /&gt;
 |description = Описание некоторых методов атак на алгоритмы шифрования&lt;br /&gt;
 |archive-url  = https://web.archive.org/web/20090521201247/http://www.cio-world.ru/weekly/298888/page2.html&lt;br /&gt;
 |archive-date = 2009-05-21&lt;br /&gt;
 |url-status    = dead&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{симметричные криптоалгоритмы}}&lt;br /&gt;
&lt;br /&gt;
[[Категория:Шифры]]&lt;br /&gt;
[[Категория:Сеть Фейстеля]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Alex NB OT</name></author>
	</entry>
</feed>