WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
DFC
Создатель Jacques Stern[en],
Serge Vaudenay[en]
Создан 1998
Опубликован 1998
Размер ключа 128/192/256 бит
Размер блока 128 бит
Число раундов 8
Тип Сеть Фейстеля

DFC (Decorrelated Fast Cipher) — блочный симметричный криптоалгоритм, созданный в 1998 году совместно криптографами Парижской Высшей нормальной школы, Национального центра научных исследований (CNRS) и телекоммуникационного гиганта France Telecom под руководством известного криптолога Сержа Воденэ[en], специально для участия в конкурсе AES. Относится к семейству PEANUT (Pretty Encryption Algorithm with n-Universal Transformation) шифров.[1]

Общая структура

Шифрование
Расшифрование
«Запутывающая перестановка» (Confusion Permutation)

DFC — блочный шифр с длинной блока 128 бит, представляющий 8-раундовую Сеть Фейстеля. Используется 64-битовая функция шифрования с восемью различными раундовыми ключами по 128 бит, получаемыми из одного исходного ключа шифрования. Каждый раунд функция шифрования использует левую половину исходного текста (блока) и два 64-битных ключа, являющихся половинами соответствующего раундового, для получения 64-битного шифрованного текста. Полученная зашифрованная левая половина блока прибавляется к правой. Затем, согласно идее сети Фейстеля, левая и правая части блока меняются местами[2]. Расшифровывание происходит так же как и шифрование с использованием раундовых ключей в обратном порядке. Длина исходного ключа шифрования не ограничивается тремя фиксированными размерами, предусмотренными конкурсом AES (128, 192 и 256 битов), и может быть переменного размера от 0 до 256 бит[3].

Функция шифрования[2][4]

Вход:  — 64-битная левая половина исходного текста (блока);  — соответствующий раундовый ключ.

Выход:  — 64-битная зашифрованная левая половина исходного текста.

Этап 1: Вычисление

Раундовый ключ делится на две половины: и . Далее производится следующее вычисление:

Этап 2: «Запутывающая перестановка»

«Запутывающая перестановка» (Confusion Permutation) использует S-box, трансформирующий входные 6 бит в 32 бита с помощью таблицы замены RT (Далее считаем функцией данного преобразования).

Пусть и  — левая и правая части полученного по 32 бита каждая (обозначим это как ), и  — заданные константы длиной 32 и 64 бита соответственно, а  — функция, оставляющая крайних левых бит аргумента, тогда результат функции шифрования:

Таблица поиска (S-box)

S-блок — основной компонент симметричных криптоалгоритмов, производящий замену n входных бит на m выходных по некоторой таблице поиска. Используется для максимального устранения зависимостей между ключом шифрования и шифротекстом, что позволяет выполнить свойство Шеннона о запутанности криптоалгоритма. Обычно используются S-блоки с фиксированной таблицей поиска (DES,Rijndael), но в некоторых криптоалгоритмах таблица поиска генерируется с использованием входного ключа шифрования (Blowfish,Twofish). В DFC используется фиксированная таблица поиска RT, её значения будут описаны ниже. Необходимым критерием таблицы поиска является инъективность.

Раундовые ключи[4]

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

Шаг 1

Сначала дополним основной ключ шифра (длина которого колеблется от 0 до 256 бит) заданной константой длиной 256 бит, отрезая лишние символы.

.

Полученный разрезаем на 8 32-битных частей .

Шаг 2

Определим несколько вспомогательных переменных, используя полученные :

а также для i=2,3,4

где  — заданные 64-битные константы.

Шаг 3

Таким образом мы получили из исходного ключа длиной 256 бит два ключа длиной по 512 бит каждый.

Пусть  — функции шифрования, описанные в пункте 2, только с 4 раундами вместо 8, использующие для -го раунда раундовые ключи и соответственно. Тогда полагая что получаем искомые раундовые ключи:

Если  — нечетное, то:

Если  — четное, то:

Раундовые ключи найдены.

Фиксированные параметры[4]

Для проведения операции шифрования шифром DFC, как показано выше, требуются следующие фиксированные параметры:

НаименованиеДлина (бит)Назначение
64Функция Шифрования, Этап 2
32Функция Шифрования, Этап 2
64Получение раундовых ключей, Шаг 2
64Получение раундовых ключей, Шаг 2
256Получение раундовых ключей, Шаг 1
Таблица поиска 64x32Функция Шифрования, Этап 2

Для задания фиксированных параметров обычно используется шестнадцатеричная запись числа e:

e = 2.b7e151628aed2a6abf7158…

Далее будем считать только дробную часть шестнадцатеричной записи числа e.

Таким образом получим следующее (данные представлены в шестнадцатеричной системе исчисления):

Таблица поиска RT
Входная последовательность бит(6):000102030405060708090A0B
Выходная последовательность бит (32):b7e151628aed2a6abf7158809cf4f3c762e7160f38b4da56a784d9045190cfef324e7738926cfbe5f4bf8d8d8c31d763
0C0D0E0F101112131415161718191A1B
da06c80abb1185eb4f7c7b5757f5959490cfd47d7c19bb42158d9554f7b46bced55c4d79fd5f24d6613c31c3839a2ddf8a9a276bcfbfa1c877c56284dab79cd4
1C1D1E1F202122232425262728292A2B
c2d3293d20e9e5eaf02ac60acc93ed874422a52ecb238feee5ab6add835fd1a0753d0a8f78e537d2b95bb79d8dcaec642c1e9f23b829b5c2780bf38737df8bb3
2C2D2E2F303132333435363738393A3B
00d01334a0d0bd8645cbfa73a6160ffe393c48cbbbca060f0ff8ec6d31beb5cceed7f2f0bb088017163bc60df45a0ecb1bcd289b06cbbfea21ad08e1847f3f73
3C3D3E3F
78d56ced94640d6ef0d3d37be6700831

Константы:

KD  = 86d1bf27 5b9b251d
KC  = eb64749a
KA1 = b7e15162 8aed2a6a
KA2 = bf715880 9cf4f3c7
KA3 = 62e7160f 38b4da56
KB1 = a784d904 5190cfef
KB2 = 324e7738 926cfbe5
KB3 = f4bf8d8d 8c31d763
KS  = da06c80a bb1185eb 4f7c7b57 57f59584 90cfd47d 7c19bb42 158d9554 f7b46bce

Криптостойкость

Криптостойкость — способность алгоритма шифрования противостоять возможным атакам на него. Структура DFC основана на декорреляционном методе[1], разработанном Сержом Ваденэ, с доказуемой стойкостью к известным криптографическим атакам. Однако уже существуют аналитические результаты, показывающие обратное.

Слабые ключи и константы[4]

Для удобства возьмем, что  — левая половина i-го раундового ключа K,  — правая половина. Если равна 0, то на выходе функции шифрования будет некая константа, независящая от . Следовательно, взяв , , равными 0, шифр становится уязвимым к distinguishing attack (англ.) (более подробно о такой атаке с примером[5]). Шанс появления таких ключей равен 2−192.

Следует отметить ещё одну особенность шифра, связанную с плохим выбором констант и . (см. «Раундовые ключи») Если , , , то получим , , . А значит

Таким образом получаем нулевые раундовые ключи для всех раундов, значит

, где  — некая константа.

По получившемуся закрытому тексту можно восстановить исходный текст.

Атака по времени

Атака по времени — одна из разновидностей атаки по сторонним каналам. Реализации устойчивых шифров (DFC не исключение) должны быть такими, чтобы время вычисления операций по модулю (mod) не зависело от входных данных. В противном случае возможно применение атаки Кохера по времени[6].

Атака «Photofinishing Attack»

Эли Бихам предложил эффективную технологию реалиции шифра, основанную на 1-битновом SIMD-микропроцессоре. Этот вид реализации не подвержен атаке Шамира «Photofinishing attack»[7].

Примечания

  1. 1 2 Serge Vaudenay[en] Provable security for block Ciphers by deccorelation (1998)
  2. 1 2 Ларс Кнудсен, Винсент Рэймен (Март 1999) «On the Decorrelated Fast Cipher (DFC) and Its Theory»
  3. Панасенко С. П. Алгоритмы шифрования. Специальный справочникСПб.: BHV-СПб, 2009. — 576 с. — ISBN 978-5-9775-0319-8
  4. 1 2 3 4 Henri Gilbert, Marc Girault, Philippe Hoogvorst, Fabrice Noilhan, Thomas Pornin, Guillaume Poupard, Jacques Stern[en] and Serge Vaudenay[en] Decorrelated Fast Cipher: an AES Candidate. Full version
  5. Simon Künzli, Willi Meier (2009) Distinguishing Attack on MAG
  6. Пол Кохер[en] Timing Attacks on Implementations of Diffie-Hellman, PSA, DSS, and Other Systems
  7. A. Shamir. Visual cryptanalysis in Cryptology EUROCRYPT’98 (1998)

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии