Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - RC514 июня 2011Оглавление: 1. RC5 2. Свойства 3. Варианты алгоритма 4. Реализация алгоритма RC5 на языке C#
ОписаниеСуществует несколько различных вариантов алгоритма, в которых преобразования в "пол-раундах" классического RC5 несколько изменены. В классическом алгоритме используются три примитивных операции и их инверсии:
Основным нововведением является использование операции сдвига на переменное число бит, не использовавшиеся в более ранних алгоритмах шифрования. Эти операции одинаково быстро выполняются на большинстве процессоров, но в то же время значительно усложняют дифференциальный и линейный криптоанализ алгоритма. Шифрование по алгоритму RC5 состоит из двух этапов. Процедура расширения ключа и непосредственно шифрование. Для расшифровки выполняется сначала процедура расширения ключа, а затем операции, обратные процедуре шифрования. ПараметрыТ.к. алгоритм RC5 имеет переменные параметры, то для спецификации алгоритма с конкретными параметрами принято обозначение RC5-W/R/b, где
Расширение ключаПеред непосредственно шифрованием или расшифровкой данных выполняется процедура расширения ключа. Процедура генерации ключа состоит из четырех этапов:
Генерация константДля заданного параметра W генерируются две псевдослучайные величины используя две математические константы: e и f.
где Odd это округление до ближайшего нечетного целого. Для w = 16,32,64 получатся следующие константы: Разбиение ключа на словаНа этом этапе происходит копирование ключа в массив слов L0…Lc − 1, где , где u = W / 8, то есть, количество байт в слове. Если c не кратен W / 8, то Li дополняется нулевыми битами до ближайшего большего размера c, кратного W / 8. В случае если b = c = 0, то мы устанавливаем значение c = 1, а L0 = 0. Построение таблицы расширенных ключейНа этом этапе происходит построение таблицы расширенных ключей , которая выполняется следующим образом:
ПеремешиваниеЦиклически N раз выполняются следующие действия:
причем G,H,i,j — временные переменные, начальные значения которых равны 0. Количество итераций цикла N — это максимальное из двух значений 3 * c и . ШифрованиеПеред первым раундом выполняются операции наложения расширенного ключа на шифруемые данные: В каждом раунде выполняются следующие действия: РасшифровкаДля расшифровки выполняются обратные операции, т.е. в каждом раунде выполняются следующие операции: Просмотров: 8090
|