Каскадный шифр Intel

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис
Шифр Intel Cascade
Создатель Эми Брикель, Гэри Граунк
Размер ключа 128 бит
Размер блока 128 бит
Число раундов 10 раундов AES, 3 (из 32) раунда Serpent

Intel Cascaded Cipher (Intel CC, каскадный шифр Intel) — блочный шифр, представленный Intel в 2005 году, с высокой пропускной способностью, который используется в качестве дополнительного компонента схемы DRM защиты выходного контента операционной системы Microsoft Windows Vista. Был специально разработан для шифрования видео-контента высокого качества. Для генерации ключей используется стандарт AES, работающий в режиме CTR. Шифрование содержимого производится на основе 3-раундовой версии алгоритма Serpent.

Для использование Intel CC требуется лицензия от корпорации Intel.

Описание

Оригинальный патент[1] содержит подробное описание шифра. Шифр каскадный, состоит из двух частей:

  1. AES в режиме счётчика для генерации внутренних ключей (внешний шифр)
  2. Легковесный алгоритм шифрования. В патенте предлагается использовать 3-раундовый Serpent (вместо 32). Количество циклов уменьшено для достижения необходимой скорости шифрования (внутренний шифр)

Благодаря частой замене внутренних ключей шифр защищен от сдвиговой атаки. Кроме того, даже наличие одного внутреннего ключа не дает злоумышленнику преимущества в расшифровке. Блок шифрования может быть реализован как программно, так и железно.

Псевдокод

// Пусть LWE слабый шифр (Light weight encryption), например, 3-раундный Serpent или 2-раундный Rijndael
i = 0 // количество блоков данных
j = 0 // количество внутренних ключей
repeat
    InnerKey(j) = AES_in_Counter_Mode_by_Session_Key(j)
    for k = 0 to block_size inclusive do // k -- размер блока
        C(i) = encrypt_by_InnerKey_using_LWE(P(i))
        i = i + 1
    end for
    j = j + 1
until all plaintext has been encrypted

1. Режим CTR-ECB

В режиме счётчик-электронно кодовая книга (режим простой замены) в шифре Cascade используется стандарт AES-128 в режиме счётчика для создания безопасного потока передачи ключей и передает этот поток в трехраундовый Serpent в режиме электронно кодовой книги для того, чтобы зашифровать каждый блок открытого текста. С целью увеличения производительности, каждый поток передачи внутренних ключей используется несколько раз для шифрования нескольких блоков.

Режим CTR-CTR

В режиме счётчик-счётчик шифр Intel Cascade использует стандарт AES-128 в режиме счётчика, чтобы создать защищенный поток передачи ключей и затем передать этот поток в урезанный Serpent (всего 3 цикла), работающий в режиме счётчика для того, чтобы зашифровать каждый блок открытого текста. С целью увеличения производительности каждый поток передачи внутренних ключей используется несколько раз для шифрования нескольких блоков.

Эффективность

Эффективность предложенного алгоритма сравнима с реализацией хорошо знакомого AES. В случае выбора 3-раундного Serpent в качестве внутреннего шифра время работы легковесного алгоритма составляет около [math]\displaystyle{ 1/5 }[/math] времени работы AES. При этом на работу самого AES для генерации внутренних ключей уходит в 4 раза меньше времени. Итоговый прирост в производительности подобного алгоритма шифрования составляет около 50 %. Дальнейшее ускорение алгоритма происходит за счет того, что внутренний ключ создаётся не для каждого блока отдельности, а для нескольких блоков сразу.

Безопасность

В публикациях компании Майкрософт о безопасности выходного содержимого в Windows Vista утверждается, что уровень безопасности, достигнутый для обычных видео-данных оценивается примерно таким же, как и обычный AES. Это утверждение проверялось компанией Intel за счёт отправки шифра Cascade в сообщество криптографии, чтобы получить оценку безопасности и проверить, могут ли его взломать.

Безопасность системы требует, чтобы текущий активный внутренний ключ нельзя было восстановить из выхода зашифрованного видеопотока после Serpent с уменьшенным количеством раундов. Кроме того, безопасность такого метода очень чувствительна к количеству раундов, используемых в Serpent, его режиму работы и количеству раз, когда внутренний ключ используется повторно.

Примечания