Функция Фейстеля алгоритма RC6. | |
Общие | |
---|---|
Дизайнеры | Рон Ривест, Мэтт Робшоу, Ицзюнь Лиза Инь |
Впервые опубликовано | 1998 |
На основе | RC5 |
Сертификация | Финалист AES |
Детали шифра | |
Размеры ключей | 128, 192 или 256 биты |
Размеры блоков | 128 битов |
Структура | Сеть Фейстеля (Тип 2) |
Раунды | 20 |
В криптографии, RC6 (Шифр Ривеста 6 ) - это симметричный ключ блочный шифр, полученный из RC5. Он был разработан Роном Ривестом, Мэттом Робшоу, Рэем Сидни и Ицюном Лизой Инь в соответствии с требованиями Advanced Encryption Standard (AES) соревнование. Алгоритм был одним из пяти финалистов, а также был представлен в проектах NESSIE и CRYPTREC. Это был запатентованный алгоритм, запатентованный RSA Security.
. Сам RC6 имеет размер блока 128 бит и поддерживает размеры ключа 128, 192 и 256 бит. до 2040 бит, но, как и RC5, он может быть параметризован для поддержки широкого диапазона длин слова, размеров ключей и количества раундов. RC6 очень похож на RC5 по структуре, используя зависящие от данных чередования, модульное сложение и операции XOR ; Фактически, RC6 можно рассматривать как переплетение двух параллельных процессов шифрования RC5, хотя RC6 действительно использует дополнительную операцию умножения, отсутствующую в RC5, чтобы сделать чередование зависимым от каждого бита в слове, а не только от нескольких младших значащих битов.
Обратите внимание, что алгоритм расширения ключа практически идентичен алгоритму RC5. Единственное отличие состоит в том, что для RC6 большее количество слов выводится из ключа, вводимого пользователем.
// Шифрование / дешифрование с помощью RC6-w / r / b // // Ввод: открытый текст, хранящийся в четырех w-битных входных регистрах A, B, C и D // r - количество раундов // w- битовые раундовые ключи S [0,..., 2r + 3] // // Вывод: зашифрованный текст, хранящийся в A, B, C, D // // '' 'Процедура шифрования:' '' B = B + S [ 0] D = D + S [1] для i = 1 до r do {t = (B * (2B + 1)) <<< lg w u = (D*(2D + 1)) <<< lg w A = ((A ⊕ t) <<< u) + S[2i] C = ((C ⊕ u) <<< t) + S[2i + 1] (A, B, C, D) = (B, C, D, A) } A = A + S[2r + 2] C = C + S[2r + 3] // '''Decryption Procedure:''' C = C - S[2r + 3] A = A - S[2r + 2] for i = r downto 1 do { (A, B, C, D) = (D, A, B, C) u = (D*(2D + 1)) <<< lg w t = (B*(2B + 1)) <<< lg w C = ((C - S[2i + 1])>>>t) ⊕ u A = ((A - S [2i])>>>u) ⊕ t} D = D - S [1] B = B - S [0]
В августе 2016 года код имел вид Были раскрыты «имплантаты» Equation Group или NSA для различных устройств сетевой безопасности. В сопроводительных инструкциях показано, что некоторые из этих программ используют RC6 для конфиденциальности сетевых соединений.
Поскольку RC6 не был выбран для AES, это не было гарантировано что RC6 не требует лицензионных отчислений. По состоянию на январь 2017 г. на официальном веб-сайте разработчиков RC6, RSA Laboratories, говорится следующее:
Акцент на слове« если »предполагает, что RSA Security Inc. могла требовать лицензионных и лицензионных платежей за любые продукты, использующие алгоритм RC6. RC6 был запатентованным алгоритмом шифрования (Патент США 5,724,428 и Патент США 5,835,600 ); однако срок действия патентов истек между 2015 и 2017 годами.