Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

В криптографии , A блочный шифр представляет собой детерминированный алгоритм работает на фиксированной длины группы битов , называемых блоками . Он использует неизменяющееся преобразование, то есть использует симметричный ключ . Они представляют собой определенные элементарные компоненты в конструкции многих криптографических протоколов и широко используются для реализации шифрования больших объемов данных, включая протоколы обмена данными.

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

Определение [ править ]

Блочный шифр состоит из двух парных алгоритмов , один для шифрования, Е , а другой для расшифровки, D . [1] Оба алгоритма принимают два входа: входной блок размером n бит и ключ размером k бит; и оба дают n- битный выходной блок. Алгоритм дешифрования D определяется как функция, обратная шифрованию, то есть D = E -1 . Более формально, [2] [3] блочный шифр определяется функцией шифрования.

который принимает в качестве входных данных ключ K с длиной битов k , называемой размером ключа , и битовую строку P длиной n , называемую размером блока , и возвращает строку C из n бит. P называется открытым текстом , а C - зашифрованным текстом . Для каждого K функция E K ( P ) должна быть обратимым отображением на {0,1} n . Обратное для E определяется как функция

взяв ключ K и зашифрованный текст C, чтобы вернуть значение открытого текста P , так что

Например, алгоритм шифрования блочного шифра может принимать 128-битный блок открытого текста в качестве входа и выводить соответствующий 128-битный блок зашифрованного текста. Точное преобразование контролируется с помощью второго входа - секретного ключа. Расшифровка аналогична: алгоритм дешифрования берет, в этом примере, 128-битный блок зашифрованного текста вместе с секретным ключом и выдает исходный 128-битный блок простого текста. [4]

Для каждого ключа К , Е К является перестановка (а взаимно однозначное отображение) по множеству входных блоков. Каждый ключ выбирает одну перестановку из набора возможных перестановок. [5]

История [ править ]

Современный дизайн блочных шифров основан на концепции итеративного шифровального продукта . В своей основополагающей 1949 публикации, Теория связи в секретных системах , Клод Шеннон проанализировали шифры продуктов и предложили им в качестве средств эффективного повышения безопасности пути объединения простых операций , таких как замены и перестановки . [6] Итерированные товарные шифры выполняют шифрование в несколько раундов, каждый из которых использует другой подключ, полученный из исходного ключа. Одна широко распространенная реализация таких шифров, названная сетью Фейстеля в честь Хорста Фейстела , особенно реализована в шифре DES .[7] Многие другие реализации блочных шифров, такие как AES , классифицируются как сети замещения-перестановки . [8]

Корень всех форматов криптографических блоков, используемых в стандартах безопасности данных индустрии платежных карт (PCI DSS) и Американском национальном институте стандартов (ANSI), лежит в блоке ключей Atalla (AKB), который был ключевым нововведением Atalla Box , первый аппаратный модуль безопасности (HSM). Он был разработан в 1972 году Мохамедом М. Аталлой , основателем Atalla Corporation (ныне Utimaco Atalla ) и выпущен в 1973 году. AKB был ключевым блоком, который требуется для безопасного обмена симметричными ключами или PIN-кодами с другими участникамибанковское дело . Этот безопасный обмен выполняется с использованием формата AKB. [9] Atalla Box защищал более 90% всех сетей банкоматов, работающих по состоянию на 1998 год [10], а продукты Atalla по-прежнему обеспечивают безопасность большинства транзакций банкоматов в мире по состоянию на 2014 год [11].

Публикация шифра DES Национальным бюро стандартов США (впоследствии - Национальным институтом стандартов и технологий США , NIST) в 1977 году стала фундаментальной для понимания общественностью современной конструкции блочного шифра. Это также повлияло на академическое развитие криптоаналитических атак . И дифференциальный, и линейный криптоанализ возникли в результате исследований конструкции DES. По состоянию на 2016 год существует палитра методов атаки, от которых блочный шифр должен быть защищен, помимо того, что он устойчив к атакам методом грубой силы .

Дизайн [ править ]

Итерированные блочные шифры [ править ]

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

Обычно функция раунда R принимает различные раундовые ключи K i в качестве второго входа, которые выводятся из исходного ключа: [ необходима ссылка ]

где - открытый текст и зашифрованный текст, где r - количество раундов.

Часто в дополнение к этому используется отбеливание . В начале и в конце данные модифицируются с помощью ключевого материала (часто с помощью XOR , но также используются простые арифметические операции, такие как сложение и вычитание): [ необходима ссылка ]

Учитывая одну из стандартных схем проектирования повторяющегося блочного шифра, довольно легко построить криптографически безопасный блочный шифр, просто используя большое количество раундов. Однако это сделает шифр неэффективным. Таким образом, эффективность является наиболее важным дополнительным критерием проектирования профессиональных шифров. Кроме того, хороший блочный шифр предназначен для предотвращения атак по побочным каналам, таких как предсказание ветвлений и доступ к памяти, зависящий от ввода, которые могут привести к утечке секретных данных через состояние кеша или время выполнения. Кроме того, для небольших аппаратных и программных реализаций шифр должен быть кратким. Наконец, шифр должен легко поддаваться криптоанализу, чтобы можно было показать, до скольких раундов шифра нужно сократить, чтобы существующие криптографические атаки сработали - и, наоборот,что можно показать, что количество реальных раундов достаточно велико для защиты от них.[ необходима цитата ]

Сети подстановки-перестановки [ править ]

Эскиз сети замещения-перестановки с 3 раундами, зашифровывающий блок открытого текста из 16 бит в блок зашифрованного текста из 16 бит. S-блоки - это S i , P-блоки - это те же P , а круглые ключи - это K i .

Один важный тип итерационного блочного шифра, известный как сеть замещения-перестановки (SPN), принимает блок открытого текста и ключ в качестве входных данных и применяет несколько чередующихся циклов, состоящих из этапа подстановки, за которым следует этап перестановки, - для создания каждого блока вывод зашифрованного текста. [13] На этапе нелинейной замены биты ключа смешиваются с битами открытого текста, что сбивает Шеннона с толку . Затем этап линейной перестановки рассеивает избыточность, создавая распространение . [14] [15]

Блок подстановки (S-блок) заменяет небольшой блок входных бит другим блоком выходных битов. Эта замена должна быть взаимно однозначной , чтобы гарантировать обратимость (следовательно, расшифровку). Защищенный S-блок будет обладать тем свойством, что изменение одного входного бита в среднем изменит примерно половину выходных битов, демонстрируя так называемый эффект лавины - т.е. он обладает тем свойством, что каждый выходной бит будет зависеть от каждого входного бита. [16]

Блок перестановки (P-блок) - это перестановка всех битов: он принимает выходные данные всех S-блоков одного раунда, переставляет биты и подает их в S-блоки следующего раунда. Хороший P-блок обладает тем свойством, что выходные биты любого S-блока распределяются по как можно большему количеству входов S-блока. [ необходима цитата ]

В каждом раунде ключ раунда (полученный из ключа с помощью некоторых простых операций, например, с использованием S-блоков и P-блоков) объединяется с помощью некоторой групповой операции, обычно XOR . [ необходима цитата ]

Расшифровка выполняется путем простого обращения процесса (с использованием инверсии S-блоков и P-блоков и применения круглых ключей в обратном порядке). [17]

Шифры Фейстеля [ править ]

Многие блочные шифры, такие как DES и Blowfish, используют структуры, известные как шифры Фейстеля.

В шифре Фейстеля блок открытого текста, который должен быть зашифрован, разделяется на две половины равного размера. Функция округления применяется к одной половине с помощью подключа, а затем результат объединяется с помощью операции XOR с другой половиной. Затем две половинки меняются местами. [18]

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

Тогда основная операция следующая: [18]

Разделите блок открытого текста на две равные части, ( , )

Для каждого раунда вычислите

.

Тогда зашифрованный текст .

Расшифровка зашифрованного текста осуществляется путем вычисления

.

Затем снова открытый текст.

Одно из преимуществ модели Фейстеля по сравнению с сетью замены-перестановки состоит в том, что функция раунда не должна быть обратимой. [19]

Шифры Лая – Мэсси [ править ]

Схема Лая – Месси. Архетипический шифр, использующий его, - это ИДЕЯ .

Схема Лая-Месси предлагает свойства безопасности, аналогичные свойствам структуры Фейстеля . Он также разделяет то преимущество, что функция округления не обязательно должна быть обратимой. Еще одно сходство заключается в том, что он также разделяет входной блок на две равные части. Однако функция округления применяется к разнице между ними, а результат затем добавляется к обоим половинным блокам.

Позвольте быть функцией раунда и функцией полукруга и пусть быть подключаемыми клавишами для раундов соответственно.

Тогда основная операция выглядит следующим образом:

Разделите блок открытого текста на две равные части, ( , )

Для каждого раунда вычислите

где и

Тогда зашифрованный текст .

Расшифровка зашифрованного текста осуществляется путем вычисления

где и

Затем снова открытый текст.

Операции [ править ]

ARX ​​(добавить – повернуть – XOR) [ редактировать ]

Многие современные блочные шифры и хэши являются алгоритмами ARX - их циклическая функция включает только три операции: (A) модульное сложение, (R) вращение с фиксированными значениями вращения и (X) XOR . Примеры включают ChaCha20 , Speck , XXTEA и BLAKE . Многие авторы рисуют сеть ARX, своего рода диаграмму потока данных , чтобы проиллюстрировать такую ​​круглую функцию. [20]

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

Другие операции [ править ]

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

Режимы работы [ править ]

Небезопасное шифрование изображения в результате кодирования в режиме электронной кодовой книги (ECB).

Блочный шифр сам по себе позволяет зашифровать только один блок данных длины блока шифра. Для сообщения переменной длины данные сначала должны быть разделены на отдельные блоки шифрования. В простейшем случае, известном как режим электронной кодовой книги (ECB), сообщение сначала разделяется на отдельные блоки размером блока шифра (возможно, расширяя последний блок битами заполнения ), а затем каждый блок шифруется и дешифруется независимо. Однако такой наивный метод обычно небезопасен, потому что одинаковые блоки открытого текста всегда будут генерировать одинаковые блоки зашифрованного текста (для одного и того же ключа), поэтому шаблоны в сообщении открытого текста становятся очевидными в выводе зашифрованного текста. [21]

Чтобы преодолеть это ограничение, несколько так называемых режимов блочного шифра работы были разработаны [22] [23] и конкретизированы в национальных рекомендациях , таких как NIST 800-38A [24] и BSI TR-02102 [25] и международные стандарты , такие как ISO / МЭК 10116 . [26] Общая концепция заключается в использовании рандомизации данных открытого текста на основе дополнительного входного значения, часто называемого вектором инициализации , для создания так называемого вероятностного шифрования . [27] В популярном режиме цепочки блоков шифров (CBC), чтобы шифрованиеsecure вектор инициализации, передаваемый вместе с сообщением с открытым текстом, должен быть случайным или псевдослучайным значением, которое добавляется исключительным образом к первому блоку открытого текста перед его шифрованием. Результирующий блок зашифрованного текста затем используется как новый вектор инициализации для следующего блока открытого текста. В режиме обратной связи шифра (CFB), который имитирует самосинхронизирующийся потоковый шифр , вектор инициализации сначала зашифровывается, а затем добавляется к блоку открытого текста. Режим обратной связи по выходу (OFB) многократно шифрует вектор инициализации, чтобы создать ключевой поток для эмуляции шифра синхронного потока . НовееРежим счетчика (CTR) аналогичным образом создает поток ключей, но имеет то преимущество, что в качестве векторов инициализации требуются только уникальные, а не (псевдо) случайные значения; необходимая случайность определяется внутренне путем использования вектора инициализации в качестве счетчика блоков и шифрования этого счетчика для каждого блока. [24]

С теоретической точки зрения безопасности режимы работы должны обеспечивать так называемую семантическую безопасность . [28] Неформально это означает, что по некоторому зашифрованному тексту с неизвестным ключом практически невозможно извлечь какую-либо информацию из зашифрованного текста (кроме длины сообщения) относительно того, что можно было бы узнать, не видя зашифрованного текста. Было показано, что все описанные выше режимы, за исключением режима ECB, обеспечивают это свойство при так называемых атаках по выбору открытого текста .

Заполнение [ править ]

Некоторые режимы, такие как режим CBC, работают только с полными блоками открытого текста. Простого расширения последнего блока сообщения нулевыми битами недостаточно, поскольку это не позволяет получателю легко различать сообщения, которые отличаются только количеством битов заполнения. Что еще более важно, такое простое решение приводит к очень эффективным атакам оракула заполнения . [29] Следовательно, необходима подходящая схема заполнения для расширения последнего блока открытого текста до размера блока шифра. Хотя было показано, что многие популярные схемы, описанные в стандартах и ​​в литературе, уязвимы для атак оракула с заполнением, [29] [30] решение, которое добавляет один бит, а затем расширяет последний блок нулевыми битами, стандартизованное как " метод заполнения 2 дюйма вИСО / МЭК 9797-1 , [31] доказал свою защищенность от этих атак. [30]

Криптоанализ [ править ]

Атаки грубой силы [ править ]

Это свойство приводит к квадратичному ухудшению безопасности шифра, и его необходимо учитывать при выборе размера блока. Однако есть компромисс, поскольку большие размеры блоков могут привести к тому, что алгоритм станет неэффективным в работе. [32] Более ранние блочные шифры, такие как DES , обычно выбирали размер блока 64-бит, в то время как более новые конструкции, такие как AES, поддерживают размеры блоков 128 бит или более, при этом некоторые шифры поддерживают диапазон различных размеров блоков. [33]

Дифференциальный криптоанализ [ править ]

Линейный криптоанализ [ править ]

Линейный криптоанализ - это форма криптоанализа, основанная на нахождении аффинных приближений к действию шифра . Линейный криптоанализ - одна из двух наиболее широко используемых атак на блочные шифры; другой - дифференциальный криптоанализ . [34]

Это открытие приписывают Мицуру Мацуи , который первым применил эту технику к шифру FEAL (Matsui and Yamagishi, 1992). [35]

Интегральный криптоанализ [ править ]

Интегральный криптоанализэто криптоаналитическая атака, которая особенно применима к блочным шифрам, основанным на сетях замещения-перестановки. В отличие от дифференциального криптоанализа, который использует пары выбранных открытых текстов с фиксированной разницей XOR, интегральный криптоанализ использует наборы или даже мультимножества выбранных открытых текстов, часть которых остается постоянной, а другая часть изменяется во всех возможных вариантах. Например, атака может использовать 256 выбранных открытых текстов, у которых все биты, кроме 8, одинаковы, но все различаются этими 8 битами. Такой набор обязательно имеет сумму XOR, равную 0, а суммы XOR соответствующих наборов зашифрованных текстов предоставляют информацию о работе шифра. Этот контраст между различиями пар текстов и суммами более крупных наборов текстов вдохновил название «интегральный криптоанализ», заимствовав терминологию исчисления.[ необходима цитата ]

Другие методы [ править ]

Развитие атаки бумерангом позволило применять методы дифференциального криптоанализа ко многим шифрам, которые ранее считались безопасными от дифференциальных атак.

В дополнении к линейному и дифференциальному криптоанализу, существует растущий каталог атак: усеченные дифференциальный криптоанализ , частичный дифференциальный криптоанализ, Интегральный криптоанализ , который включает в себя квадратные и интегральные атаки, атаки скольжения , бумеранг атаку , в XSL атаку , невозможно дифференциальный криптоанализ и алгебраические атаки . Чтобы новый дизайн блочного шифра имел какое-либо доверие, он должен продемонстрировать доказательства защиты от известных атак. [ необходима цитата ]

Обеспечиваемая безопасность [ править ]

Когда блочный шифр используется в данном режиме работы , результирующий алгоритм в идеале должен быть примерно таким же безопасным, как и сам блочный шифр. ECB (обсуждалось выше) категорически не хватает этого свойства: независимо от того, насколько безопасен базовый блочный шифр, режим ECB можно легко атаковать. С другой стороны, можно доказать, что режим CBC является безопасным, если предположить, что базовый блочный шифр также безопасен. Обратите внимание, однако, что создание подобных утверждений требует формальных математических определений того, что означает «безопасность» алгоритма шифрования или блочного шифра. В этом разделе описаны два общих понятия о том, какими свойствами должен обладать блочный шифр. Каждый соответствует математической модели, которую можно использовать для доказательства свойств алгоритмов более высокого уровня, таких как CBC.

Этот общий подход к криптографии - доказательство безопасности высокоуровневых алгоритмов (таких как CBC) при явно заявленных предположениях относительно их компонентов (таких как блочный шифр) - известен как доказуемая безопасность .

Стандартная модель [ править ]

Неформально блочный шифр является безопасным в стандартной модели, если злоумышленник не может отличить блочный шифр (снабженный случайным ключом) от случайной перестановки.

Чтобы быть более точным, пусть E будет n- битным блочным шифром. Представляем следующую игру:

  1. Человек, ведущий игру, подбрасывает монету.
    • Если монета приземляется на голове, он выбирает случайный ключ K и определяет функцию F = E K .
    • Если монета выпадает решкой, он выбирает случайную перестановку π на множестве n- битных строк и определяет функцию f = π .
  2. Атакующий выбирает n- битную строку X , и человек, запускающий игру, сообщает ему значение f ( X ).
  3. Шаг 2 повторяется всего q раз. (Каждое из этих q взаимодействий представляет собой запрос .)
  4. Злоумышленник догадывается, как упала монета. Он выигрывает, если его догадка верна.

Злоумышленник, которого мы можем смоделировать в виде алгоритма, называется противником . Функция f (которую злоумышленник смог запросить) называется оракулом .

Обратите внимание, что злоумышленник может тривиально гарантировать 50% -ный шанс выигрыша, просто угадывая наугад (или даже, например, всегда угадывая «орел»). Поэтому, пусть P E ( ) обозначает вероятность того, что противник выигрывает эту игру против E , и определить преимущества от А , как 2 ( P E ( ) - 1/2). Отсюда следует, что если A угадает случайным образом, его преимущество будет равно 0; с другой стороны, если A всегда выигрывает, то его преимущество равно 1. Блочный шифр E представляет собой псевдослучайную перестановку(PRP), если ни один противник не имеет преимущество, значительно превышающее 0, при заданных ограничениях на q и время работы противника. Если на шаге 2 выше злоумышленники имеют возможность изучать f −1 ( X ) вместо f ( X ) (но все же имеют лишь небольшие преимущества), то E является сильным PRP (SPRP). Противник не адаптивен, если он выбирает все значения q для X до начала игры (то есть он не использует никакой информации, полученной из предыдущих запросов, для выбора каждого X по ходу).

Эти определения оказались полезными для анализа различных режимов работы. Например, можно определить аналогичную игру для измерения безопасности алгоритма шифрования на основе блочного шифра, а затем попытаться показать (с помощью аргумента сокращения ), что вероятность того, что противник выиграет эту новую игру, не намного больше, чем P E ( ) для некоторого А . (Уменьшение обычно обеспечивает пределы q и времени работы A. ) Эквивалентно, если P E ( A ) мало для всех соответствующих A, то ни один злоумышленник не имеет значительной вероятности выиграть новую игру. Это формализует идею о том, что алгоритм более высокого уровня наследует безопасность блочного шифра.

Идеальная модель шифра [ править ]

Практическая оценка [ править ]

На практике блочные шифры можно оценивать по множеству критериев. Общие факторы включают: [36] [37]

  • Ключевые параметры, такие как размер ключа и размер блока, оба обеспечивают верхнюю границу безопасности шифра.
  • Оценивается уровень безопасности , который основан на доверии , накопленном в блочно шифра после того, как она в значительной степени противостояли основные усилия в криптоанализа со временем, дизайн в математической обоснованности, а также наличие практических или certificational [38] атак.
  • Сложность шифра и его пригодность для аппаратной или программной реализации . Аппаратные реализации могут измерять сложность с точки зрения количества ворот или потребления энергии, которые являются важными параметрами для устройств с ограниченными ресурсами.
  • Шифра производительность с точки зрения обработки пропускной способности на различных платформах, в том числе его памяти требований.
  • Стоимость шифра, который относится к лицензированию требований , которые могут применяться в связи с правами интеллектуальной собственности .
  • Гибкость шифра, который включает в себя его способность поддерживать несколько размеров клавиш и длины блоков.

Известные блочные шифры [ править ]

Люцифер / DES [ править ]

Люцифер обычно считается первым гражданским блочным шифром, разработанным в IBM в 1970-х годах на основе работы Хорста Фейстеля . Пересмотренная версия алгоритма была принята в качестве Федерального стандарта обработки информации правительства США : FIPS PUB 46 Data Encryption Standard (DES). [39] Он был выбран Национальным бюро стандартов США (NBS) после публичного приглашения к подаче материалов и некоторых внутренних изменений со стороны NBS (и, возможно, NSA ). DES был публично выпущен в 1976 году и получил широкое распространение. [ необходима цитата ]

DES был разработан, чтобы, среди прочего, противостоять определенной криптоаналитической атаке, известной NSA и повторно открытой IBM, хотя и неизвестной публично, пока ее снова не обнаружили и не опубликовали Эли Бихам и Ади Шамир в конце 1980-х годов. Этот метод называется дифференциальным криптоанализом и остается одной из немногих общих атак на блочные шифры; линейный криптоанализ - еще один, но, возможно, был неизвестен даже АНБ до его публикации Мицуру Мацуи . DES вызвал большое количество других работ и публикаций в области криптографии и криптоанализа в открытом сообществе и вдохновил множество новых дизайнов шифров. [ необходима цитата ]

DES имеет размер блока 64 бит и размер ключа 56 бит. 64-битные блоки стали обычным явлением в блочных шифрах после DES. Длина ключа зависела от нескольких факторов, в том числе от государственного регулирования. Многие наблюдатели [ кто? ] в 1970-х годах отметил, что длина 56-битного ключа, используемого для DES, была слишком короткой. Со временем его неадекватность стала очевидной, особенно после того, как в 1998 году Electronic Frontier Foundation продемонстрировала машину специального назначения, предназначенную для взлома DES . Расширение DES, Triple DES, тройное шифрование каждого блока либо двумя независимыми ключами (112-битный ключ и 80-битная безопасность), либо тремя независимыми ключами (168-битный ключ и 112-битная безопасность). Он получил широкое распространение в качестве замены. По состоянию на 2011 год версия с тремя ключами по-прежнему считается безопасной, хотя стандарты Национального института стандартов и технологий (NIST) больше не разрешают использование версии с двумя ключами в новых приложениях из-за ее 80-битного уровня безопасности. [40]

ИДЕЯ [ править ]

International Data Encryption Algorithm ( IDEA ) представляет собой блочный шифр разработанный Джеймсом Мэсси из ETH Zurich и Xuejia Lai ; он был впервые описан в 1991 году как предполагаемая замена DES.

IDEA работает с 64-битными блоками с использованием 128-битного ключа и состоит из серии из восьми идентичных преобразований ( раунд ) и выходного преобразования ( полукруглый ). Процессы шифрования и дешифрования аналогичны. Безопасность IDEA в значительной степени обеспечивается за счет чередования операций из разных групп - модульного сложения и умножения, а также поразрядного исключающего ИЛИ (XOR) - которые в некотором смысле алгебраически «несовместимы».

Разработчики проанализировали IDEA, чтобы измерить ее устойчивость к дифференциальному криптоанализу, и пришли к выводу, что она невосприимчива при определенных предположениях. Об успешных линейных или алгебраических слабостях не сообщалось. По состоянию на 2012 год лучшая атака, которая применяется ко всем ключам, может взломать полную 8,5-раундовую IDEA, используя атаку узкого биклика примерно в четыре раза быстрее, чем грубая сила.

RC5 [ править ]

Один раунд (два полукруга) блочного шифра RC5

RC5 - это блочный шифр, разработанный Рональдом Ривестом в 1994 году, который, в отличие от многих других шифров, имеет переменный размер блока (32, 64 или 128 бит), размер ключа (от 0 до 2040 бит) и количество раундов (от 0 до 255). Первоначально предложенный выбор параметров был размером блока 64 бита, 128-битным ключом и 12 раундами.

Ключевой особенностью RC5 является использование ротации, зависящей от данных; одной из целей RC5 было побудить к изучению и оценке таких операций как криптографический примитив. RC5 также состоит из ряда модульных дополнений и операций XOR. Общая структура алгоритма представляет собой сеть типа Фейстеля . Процедуры шифрования и дешифрования могут быть указаны в нескольких строках кода. Ключевое расписание, однако, более сложное, расширение ключа с использованием по существу односторонней функции с двоичными расширениями как e, так и золотого сечения как источников " ничего в моем рукаве чисел"Дразнящая простота алгоритма вместе с новизной ротации, зависящей от данных, сделали RC5 привлекательным объектом исследования для криптоаналитиков.

12-раундовый RC5 (с 64-битными блоками) подвержен дифференциальной атаке с использованием 2 44 выбранных открытых текстов. [41] В качестве достаточной защиты рекомендуется 18–20 патронов.

Rijndael / AES [ править ]

Rijndael шифр , разработанный бельгийскими криптографы, Джоан Daemen и Винсент Рэймен был один из конкурирующих проектов для замены DES. Он выиграл 5-летний публичный конкурс на звание AES (Advanced Encryption Standard).

Принятая NIST в 2001 году, AES имеет фиксированный размер блока 128 бит и размер ключа 128, 192 или 256 бит, тогда как Rijndael может быть указан с размерами блока и ключа, кратными 32 битам, минимум 128 биты. Размер блока составляет максимум 256 бит, но размер ключа не имеет теоретического максимума. AES работает с матрицей байтов размером 4 × 4 по столбцам , называемой состоянием (версии Rijndael с большим размером блока имеют дополнительные столбцы в состоянии).

Blowfish [ править ]

Blowfish - это блочный шифр, разработанный в 1993 году Брюсом Шнайером и включенный в большое количество наборов шифров и продуктов для шифрования. Blowfish имеет 64-битный размер блока и переменную длину ключа от 1 до 448 бит. [42] Это 16- этапный шифр Фейстеля, в котором используются большие зависящие от ключа S-блоки . Примечательные особенности дизайна включают зависящие от клавиш S-блоки и очень сложную схему расположения клавиш .

Он был разработан как алгоритм общего назначения, задуманный как альтернатива устаревшему DES и свободный от проблем и ограничений, связанных с другими алгоритмами. На момент выпуска Blowfish многие другие разработки были собственностью, обременены патентами или составляли коммерческую / государственную тайну. Шнайер заявил, что «Blowfish не запатентован и останется таковым во всех странах. Таким образом, алгоритм становится общественным достоянием и может свободно использоваться кем угодно». То же самое относится к Twofish , алгоритму преемника от Schneier.

Обобщения [ править ]

Настраиваемые блочные шифры [ править ]

М. Лисков, Р. Ривест и Д. Вагнер описали обобщенную версию блочных шифров, названную «настраиваемыми» блочными шифрами. [43] Настраиваемый блочный шифр принимает второй вход, называемый настройкой, вместе с обычным вводом открытого текста или зашифрованного текста. Настройка вместе с ключом выбирает перестановку, вычисленную шифром. Если изменение настроек достаточно легкое (по сравнению с обычно довольно дорогостоящей операцией по настройке клавиш), то становятся возможными некоторые интересные новые режимы работы. В статье по теории шифрования дисков описаны некоторые из этих режимов.

Шифрование с сохранением формата [ править ]

Блочные шифры традиционно работают с двоичным алфавитом . То есть и вход, и выход представляют собой двоичные строки, состоящие из n нулей и единиц. Однако в некоторых ситуациях может потребоваться блочный шифр, работающий на каком-либо другом алфавите; например, шифрование 16-значных номеров кредитных карт таким образом, что зашифрованный текст также является 16-значным числом, может облегчить добавление уровня шифрования в устаревшее программное обеспечение. Это пример шифрования с сохранением формата . В более общем смысле, шифрование с сохранением формата требует перестановки с ключом на некотором конечном языке.. Это делает схемы шифрования с сохранением формата естественным обобщением (настраиваемых) блочных шифров. Напротив, традиционные схемы шифрования, такие как CBC, не являются перестановками, потому что один и тот же открытый текст может шифровать несколько разных зашифрованных текстов даже при использовании фиксированного ключа.

Связь с другими криптографическими примитивами [ править ]

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

  • Потоковые шифры могут быть построены с использованием блочных шифров. Режим OFB и режим CTR - это блочные режимы, которые превращают блочный шифр в потоковый шифр.
  • Криптографические хеш-функции могут быть построены с использованием блочных шифров. [44] [45] См. Описание некоторых таких методов в функции одностороннего сжатия . Эти методы напоминают режимы работы блочного шифра, обычно используемые для шифрования.
  • Криптографически безопасные генераторы псевдослучайных чисел (CSPRNG) могут быть построены с использованием блочных шифров. [46] [47]
  • Безопасные псевдослучайные перестановки конечных множеств произвольного размера могут быть построены с помощью блочных шифров; см. Шифрование с сохранением формата .
  • Коды аутентификации сообщений (MAC) часто строятся из блочных шифров. CBC-MAC , OMAC и PMAC являются такими MAC.
  • Аутентифицированное шифрование также строится из блочных шифров. Это означает одновременное шифрование и MAC. Это необходимо для обеспечения конфиденциальности и аутентификации . CCM , EAX , GCM и OCB являются такими режимами аутентифицированного шифрования.

Так же, как блочные шифры могут использоваться для построения хеш-функций, хэш-функции могут использоваться для построения блочных шифров. Примеры таких блочных шифров: SHACAL , BEAR и LION .

См. Также [ править ]

  • Сводка по безопасности шифрования
  • Темы в криптографии

Ссылки [ править ]

  1. ^ Cusick, Томас У .; Станица, Пантелимон (2009). Криптографические логические функции и приложения . Академическая пресса. С. 158–159. ISBN 9780123748904.
  2. ^ Менезес, Альфред Дж .; van Oorschot, Paul C .; Ванстон, Скотт А. (1996). «Глава 7: Блочные шифры». Справочник по прикладной криптографии . CRC Press. ISBN 0-8493-8523-7.
  3. ^ Белларе, Михир; Rogaway, Phillip (11 мая 2005 г.), Введение в современную криптографию (конспекты лекций) , Глава 3.
  4. ^ Chakraborty, D .; Родригес-Энрикес, Ф. (2008). «Режимы работы блочного шифра с точки зрения аппаратной реализации» . В Коч, Четин К. (ред.). Криптографическая инженерия . Springer. п. 321. ISBN. 9780387718163.
  5. Перейти ↑ Menezes, van Oorschot & Vanstone 1996 , раздел 7.2.
  6. ^ Шеннон, Клод (1949). "Коммуникационная теория секретных систем" (PDF) . Технический журнал Bell System . 28 (4): 656–715. DOI : 10.1002 / j.1538-7305.1949.tb00928.x .
  7. ^ ван Тилборг, Хенк Калифорния; Jajodia, Sushil, ред. (2011). Энциклопедия криптографии и безопасности . Springer. ISBN 978-1-4419-5905-8., п. 455.
  8. ^ Ван Tilborg & Jajodia 2011 , стр. 1268.
  9. Рупп, Мартин (16 августа 2019 г.). «Преимущества ключевого блока Аталла» . Утимако . Проверено 10 сентября 2019 .
  10. ^ Hamscher, Уолтер; Маквилсон, Аластер; Тернер, Пол (1998). "Электронный бизнес без страха: Архитектура безопасности Tristrata". Прайс Уотерхаус . S2CID 18375242 .  Cite journal requires |journal= (help)
  11. ^ Stiennon, Ричард (17 июня 2014). «Управление ключами в быстрорастущем пространстве» . SecurityCurrent . IT-Harvest . Проверено 21 августа 2019 .
  12. ^ Жюно, Pascal & Canteaut, Энн (2011). Расширенный линейный криптоанализ блочных и потоковых шифров . IOS Press. п. 2. ISBN 9781607508441.
  13. ^ Келихер, Лиам; и другие. (2000). "Моделирование линейных характеристик сетей замещения – перестановки". В Хейс, Ховард; Карлайл, Адам (ред.). Избранные области криптографии: 6-й ежегодный международный семинар, SAC'99, Кингстон, Онтарио, Канада, 9–10 августа 1999 г .: материалы . Springer. п. 79 . ISBN 9783540671855.
  14. ^ Baigneres, Томас; Finiasz, Матье (2007). «Наберите 'C' для шифра» . В Бихаме, Эли; Юсефф, Амр (ред.). Избранные области криптографии: 13-й международный семинар, SAC 2006, Монреаль, Канада, 17–18 августа 2006 г .: исправленные отдельные статьи . Springer. п. 77. ISBN 9783540744610.
  15. ^ Cusick, Томас У .; Станица, Пантелимон (2009). Криптографические логические функции и приложения . Академическая пресса. п. 164. ISBN 9780123748904.
  16. ^ Кац, Джонатан; Линделл, Иегуда (2008). Введение в современную криптографию . CRC Press. п. 166 . ISBN 9781584885511., страницы 166–167.
  17. ^ Subhabrata Samajder (2017). Криптоанализ блочного шифра: обзор . Калькутта: Индийский статистический институт. С. 5/52.
  18. ^ a b Кац и Линделл 2008 , стр. 170–172.
  19. ^ Katz & Lindell 2008 , стр. 171.
  20. ^ Aumasson, Жан-Филипп; Бернштейн, Дэниел Дж. (18 сентября 2012 г.). «SipHash: быстрый PRF с коротким вводом» (PDF) : 5. Cite journal requires |journal= (help)
  21. Menezes, Oorschot & Vanstone 1996 , pp. 228–230, глава 7.
  22. ^ «Режимы блочного шифрования» . Центр ресурсов по компьютерной безопасности NIST .
  23. Перейти ↑ Menezes, van Oorschot & Vanstone 1996 , pp. 228–233.
  24. ^ a b Моррис Дворкин (декабрь 2001 г.), «Рекомендации по режимам работы блочного шифра - методы и методы» (PDF) , Специальная публикация 800-38A , Национальный институт стандартов и технологий (NIST)
  25. ^ "Kryptographische Verfahren: Empfehlungen und Schlüssellängen", Bsi Tr-02102 (Technische Richtlinie) (версия 1.0), 20 июня 2008 г.
  26. ^ ISO / IEC 10116: 2006 Информационные технологии. Методы безопасности. Режимы работы для n-битового блочного шифра.
  27. ^ Bellare & Rogaway 2005 , стр. 101, раздел 5.3.
  28. ^ Bellare & Rogaway 2005 , раздел 5.6.
  29. ^ а б Серж Воденэ (2002). «Недостатки безопасности, вызванные приложениями CBC Padding для SSL, IPSEC, WTLS ...». Достижения в криптологии - EUROCRYPT 2002, Proc. Международная конференция по теории и применению криптографических методов . Springer Verlag (2332): 534–545.
  30. ^ а б Кеннет Г. Патерсон; Гавен Дж. Уотсон (2008). «Иммунизация режима CBC против атак Oracle Padding: официальная процедура безопасности». Безопасность и криптография для сетей - SCN 2008, Конспект лекций по информатике . Springer Verlag (5229): 340–357.
  31. ^ ISO / IEC 9797-1: Информационные технологии - Методы безопасности - Коды аутентификации сообщений (MAC) - Часть 1: Механизмы, использующие блочный шифр , ISO / IEC, 2011
  32. ^ Мартин, Кейт М. (2012). Повседневная криптография: основные принципы и приложения . Издательство Оксфордского университета. п. 114. ISBN 9780199695591.
  33. ^ Паар, Кристоф; и другие. (2010). Понимание криптографии: Учебник для студентов и практиков . Springer. п. 30. ISBN 9783642041006.
  34. ^ Мацуи, Мицуру. «Линейный криптоанализ DES Cipher» . Mitsubishi Electric Corporation . 1 (3): 43 - через Лабораторию компьютерных и информационных систем.
  35. ^ Мацуи, М. & Ямагиши, А. "Новый метод атаки известного открытого текста на шифр FEAL". Достижения в криптологии - EUROCRYPT 1992 .
  36. Перейти ↑ Menezes, van Oorschot & Vanstone 1996 , p. 227.
  37. ^ Джеймс Нечватал; Элейн Баркер; Лоуренс Бэшэм; Уильям Берр; Моррис Дворкин; Джеймс Фоти; Эдвард Робак (октябрь 2000 г.), Отчет о разработке усовершенствованного стандарта шифрования (AES) (PDF) , Национальный институт стандартов и технологий (NIST)
  38. ^ Атаки, которые показывают, что шифр не работает так, как заявлено (т. Е. Уровень сложности, связанный с его взломом, ниже заявленного), которые, тем не менее, имеют достаточно высокую сложность, так что они практически не достижимы.
  39. ^ FIPS PUB 46-3 Стандарт шифрования данных (DES) (это третье издание, 1999 г., но включает историческую информацию в предварительном разделе 12.)
  40. ^ Специальная публикация NIST 800-57 Рекомендации по управлению ключами - Часть 1: Общие (пересмотренная) , март 2007 г. Архивировано 6 июня 2014 г., на Wayback Machine
  41. ^ Бирюков А. и Kushilevitz E. (1998). Улучшенный криптоанализ RC5. ЕВРОКРИПТ 1998.
  42. ^ Брюс Шнайер (1993). «Описание нового ключа переменной длины, 64-битного блочного шифра (Blowfish)» . Cite journal requires |journal= (help)
  43. ^ Лисков, М .; Ривест, Р .; Вагнер, Д. "Настраиваемые блочные шифры" (PDF) . Крипто 2002 .
  44. ^ ISO / IEC 10118-2: 2010 Информационные технологии. Методы безопасности. Хеш-функции. Часть 2: Хеш-функции с использованием n-битного блочного шифра.
  45. ^ Менезес, ван Оршот и Ванстон 1996 , Глава 9: Хеш-функции и целостность данных.
  46. ^ Специальная публикация NIST 800-90A Рекомендации по генерации случайных чисел с использованием детерминированных генераторов случайных бит
  47. Menezes, van Oorschot & Vanstone 1996 , Глава 5: Псевдослучайные биты и последовательности.

Дальнейшее чтение [ править ]

  • Knudsen, Lars R .; Робшоу, Мэтью (2011). Компаньон блочного шифра . Springer. ISBN 9783642173417.

Внешние ссылки [ править ]

  • Список многих симметричных алгоритмов, большинство из которых являются блочными шифрами.
  • Зал блочного шифра
  • Что такое блочный шифр? из RSA FAQ
  • Блочный шифр, основанный на золотых последовательностях и хаотической логистической системе палаток