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

Intel Cascaded Cipher (Intel CC, каскадный шифр Intel) — блочный шифр, представленный Intel в 2005 году, с высокой пропускной способностью, который используется в качестве дополнительного компонента схемы DRM защиты выходного контента операционной системы Microsoft Windows Vista. Был специально разработан для шифрования видео-контента высокого качества. Для генерации ключей используется стандарт AES, работающий в режиме CTR. Шифрование содержимого производится на основе 3-раундовой версии алгоритма Serpent.
Для использование Intel CC требуется лицензия от корпорации Intel.
Описание
Оригинальный патент содержит подробное описание шифра. Каскадный шифр, состоит из двух частей:
Благодаря частой замене внутренних ключей шифр защищен от сдвиговой атаки. Кроме того, даже наличие одного внутреннего ключа не дает злоумышленнику преимущества в расшифровке. Блок шифрования может быть реализован как программно, так и железно.
Псевдокод
// Пусть 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 encrypted1. Режим CTR-ECB
В режиме счётчик-электронно кодовая книга (режим простой замены) в шифре Cascade используется стандарт AES-128 в режиме счётчика для создания безопасного потока передачи ключей и передает этот поток в трехраундовый Serpent в режиме электронно кодовой книги для того, чтобы зашифровать каждый блок открытого текста. С целью увеличения производительности, каждый поток передачи внутренних ключей используется несколько раз для шифрования нескольких блоков.
Режим CTR-CTR
В режиме счётчик-счётчик шифр Intel Cascade использует стандарт AES-128 в режиме счётчика, чтобы создать защищенный поток передачи ключей и затем передать этот поток в урезанный Serpent (всего 3 цикла), работающий в режиме счётчика для того, чтобы зашифровать каждый блок открытого текста. С целью увеличения производительности каждый поток передачи внутренних ключей используется несколько раз для шифрования нескольких блоков.
Эффективность
Эффективность предложенного алгоритма сравнима с реализацией хорошо знакомого AES. В случае выбора 3-раундного Serpent в качестве внутреннего шифра время работы легковесного алгоритма составляет около 1 / 5 {displaystyle 1/5} времени работы AES. При этом на работу самого AES для генерации внутренних ключей уходит в 4 раза меньше времени. Итоговый прирост в производительности подобного алгоритма шифрования составляет около 50 %. Дальнейшее ускорение алгоритма происходит за счет того, что внутренний ключ создаётся не для каждого блока отдельности, а для нескольких блоков сразу.
Безопасность
В публикациях компании Майкрософт о безопасности выходного содержимого в Windows Vista утверждается, что уровень безопасности, достигнутый для обычных видео-данных оценивается примерно таким же, как и обычный AES. Это утверждение проверялось компанией Intel за счёт отправки шифра Cascade в сообщество криптографии, чтобы получить оценку безопасности и проверить, могут ли его взломать.
Безопасность системы требует, чтобы текущий активный внутренний ключ нельзя было восстановить из выхода зашифрованного видеопотока после Serpent с уменьшенным количеством раундов. Кроме того, безопасность такого метода очень чувствительна к количеству раундов, используемых в Serpent, его режиму работы и количеству раз, когда внутренний ключ используется повторно.