Блочный шифр
Эта статья нуждается в дополнительных цитатах для проверки . ( апрель 2012 г. ) |
В криптографии блочный шифр — это детерминированный алгоритм фиксированной длины , который работает с группами битов , называемыми блоками . Блочные шифры являются элементарными строительными блоками многих криптографических протоколов . Они повсеместно используются при хранении и обмене данными, где такие данные защищаются и аутентифицируются с помощью шифрования .
Блочный шифр использует блоки в качестве неизменного преобразования. Даже безопасный блочный шифр пригоден для одновременного шифрования только одного блока данных с использованием фиксированного ключа. Было разработано множество режимов работы, позволяющих их многократное использование безопасным способом для достижения целей безопасности, таких как конфиденциальность и подлинность . Однако блочные шифры могут также использоваться в качестве строительных блоков в других криптографических протоколах, таких как универсальные хеш-функции и генераторы псевдослучайных чисел .
Определение [ править ]
Блочный шифр состоит из двух парных алгоритмов : один для шифрования, E , а другой для расшифровки, Д. [1] Оба алгоритма принимают два входных параметра: входной блок размером n бит и ключ размера к бит; и оба дают n- битный выходной блок. Алгоритм расшифровки D определяется как обратная функция шифрования, т.е. Д = И −1 . Более формально, [2] [3] блочный шифр определяется функцией шифрования
который принимает в качестве входных данных ключ K , битовой длины k (называемый размером ключа ) и битовая строка P , длины n (называемый размером блока ) и возвращает строку С из n бит. P называется открытым текстом , а C называется зашифрованным текстом . Для каждого К , функция И К ( P ) должно быть обратимым отображением на {0,1} н . Обратное для E определяется как функция
беру ключ K и зашифрованный текст C для возврата значения открытого текста П , такой, что
Например, алгоритм блочного шифрования может принимать на входе 128-битный блок открытого текста и выводить соответствующий 128-битный блок зашифрованного текста. Точное преобразование контролируется с помощью второго входа — секретного ключа. Дешифрование аналогично: в этом примере алгоритм дешифрования берет 128-битный блок зашифрованного текста вместе с секретным ключом и дает исходный 128-битный блок открытого текста. [4]
Для каждого ключа E K K является перестановкой ( биективным отображением ) над набором входных блоков. Каждая клавиша выбирает одну перестановку из набора возможные перестановки. [5]
История [ править ]
Современный дизайн блочных шифров основан на концепции итеративного шифра произведения . В своей основополагающей публикации 1949 года « Коммуникационная теория секретных систем » Клод Шеннон проанализировал шифры-продукты и предложил их как средство эффективного повышения безопасности путем объединения простых операций, таких как замены и перестановки . [6] Итерированные шифры продукта выполняют шифрование в несколько раундов , каждый из которых использует отдельный подключ, полученный из исходного ключа. Одна широко распространенная реализация таких шифров, названная сетью Фейстеля в честь Хорста Фейстеля , особенно реализована в шифре DES . [7] Многие другие реализации блочных шифров, такие как AES , классифицируются как сети замены-перестановки . [8]
Корень всех форматов криптографических блоков, используемых в стандарте безопасности данных индустрии платежных карт (PCI DSS) и стандартах Американского национального института стандартов (ANSI), лежит в блоке ключей Atalla (AKB), который был ключевым нововведением Atalla Box , первый аппаратный модуль безопасности (HSM). Он был разработан в 1972 году Мохамедом М. Аталлой , основателем корпорации Atalla (ныне Utimaco Atalla ), и выпущен в 1973 году. AKB представлял собой ключевой блок, который необходим для безопасного обмена симметричными ключами или ПИН-кодами с другими участниками банковской отрасли. . Этот безопасный обмен осуществляется с использованием формата AKB. [9] Atalla Box защищал более 90% всех банкоматов по состоянию на 1998 год. действующих сетей [10] и продукты Atalla по-прежнему обеспечивают безопасность большинства транзакций в банкоматах в мире по состоянию на 2014 год. [11]
Публикация шифра DES Национальным бюро стандартов США (впоследствии Национальным институтом стандартов и технологий США , NIST) в 1977 году сыграла фундаментальную роль в общественном понимании конструкции современного блочного шифра. Это также повлияло на академическое развитие криптоаналитических атак . И дифференциальный , и линейный криптоанализ возникли в результате исследований по разработке DES. По состоянию на 2016 год [update]Существует целый ряд методов атаки, против которых блочный шифр должен быть защищен, а также устойчив к атакам методом перебора .
Дизайн [ править ]
Итерированные блочные шифры [ править ]
Большинство алгоритмов блочного шифрования классифицируются как итерационные блочные шифры фиксированного размера , что означает, что они преобразуют блоки открытого текста в блоки зашифрованного текста идентичного размера посредством многократного применения обратимого преобразования, известного как функция раунда , причем каждая итерация называется раундом . . [12]
Обычно функция раунда R принимает разные ключи раунда K i в качестве второго входного сигнала, который является производным от исходного ключа: [ нужна ссылка ]
где это открытый текст и зашифрованный текст, где r — количество раундов.
Часто отбеливание ключей в дополнение к этому используется . В начале и в конце данные модифицируются с помощью ключевого материала (часто с помощью XOR ):
Учитывая одну из стандартных схем построения итерированных блочных шифров, довольно легко построить криптографически безопасный блочный шифр, просто используя большое количество раундов. Однако это сделает шифр неэффективным. Таким образом, эффективность является важнейшим дополнительным критерием проектирования профессиональных шифров. Кроме того, хороший блочный шифр предназначен для предотвращения атак по побочным каналам, таких как предсказание ветвей и доступ к памяти, зависящий от ввода, которые могут привести к утечке секретных данных через состояние кэша или время выполнения. Кроме того, шифр должен быть кратким для небольших аппаратных и программных реализаций.
Сети замены-перестановки [ править ]
Один важный тип итерированного блочного шифра, известный как сеть замены-перестановки (SPN), принимает блок открытого текста и ключ в качестве входных данных и применяет несколько чередующихся раундов, состоящих из этапа замены, за которым следует этап перестановки , - для создания каждого блока зашифрованного текста. выход. [13] На этапе нелинейной замены ключевые биты смешиваются с битами открытого текста, создавая замешательство Шеннона . Затем на этапе линейной перестановки избыточность рассеивается, создавая диффузию . [14] [15]
Блок замены (S-box) заменяет небольшой блок входных битов другим блоком выходных битов. Эта замена должна быть взаимно однозначной , чтобы обеспечить обратимость (следовательно, расшифровку). Защищенный S-блок будет обладать свойством, заключающимся в том, что изменение одного входного бита приведет к изменению в среднем около половины выходных битов, демонстрируя так называемый лавинный эффект , то есть он обладает свойством, согласно которому каждый выходной бит будет зависеть от каждого входного бита. [16]
Блок перестановок (P-box) — это перестановка всех битов: он принимает выходные данные всех S-блоков одного раунда, переставляет биты и передает их в S-блоки следующего раунда. Хороший P-блок обладает тем свойством, что выходные биты любого S-блока распределяются по как можно большему количеству входов S-блока. [ нужна ссылка ]
В каждом раунде ключ раунда (полученный из ключа с помощью некоторых простых операций, например, с использованием S-блоков и P-блоков) объединяется с помощью некоторой групповой операции, обычно XOR . [ нужна ссылка ]
Дешифрование выполняется путем простого обращения процесса (с использованием инверсий S-блоков и P-блоков и применения раундовых ключей в обратном порядке). [17]
Шифры Фейстеля [ править ]
В шифре Фейстеля блок открытого текста, подлежащий шифрованию, разделяется на две половины одинакового размера. Функция округления применяется к одной половине с использованием подраздела, а затем выполняется операция XOR с другой половиной. Затем две половинки меняются местами. [18]
Позволять — круглая функция и пусть быть дополнительными клавишами для раундов соответственно.
Тогда основная операция выглядит следующим образом: [18]
Разделите блок открытого текста на две равные части ( , )
Для каждого раунда , вычислить
- .
Тогда зашифрованный текст .
Расшифровка зашифрованного текста достигается путем вычисления для
- .
Затем это снова открытый текст.
Одним из преимуществ модели Фейстеля по сравнению с сетью подстановки-перестановки является то, что функция округления не обязательно должен быть обратимым. [19]
Шифры Лая – Мэсси [ править ]
Схема Лая-Месси предлагает свойства безопасности, аналогичные свойствам структуры Фейстеля . Он также имеет то преимущество, что функция округления не обязательно должен быть обратимым. Еще одно сходство заключается в том, что он также разбивает входной блок на две равные части. Однако к разнице между ними применяется функция округления, а затем результат добавляется к обоим полублокам.
Позволять быть круглой функцией и полукруглую функцию и пусть быть дополнительными клавишами для раундов соответственно.
Тогда основная операция выглядит следующим образом:
Разделите блок открытого текста на две равные части ( , )
Для каждого раунда , вычислить
где и
Тогда зашифрованный текст .
Расшифровка зашифрованного текста достигается путем вычисления для
где и
Затем это снова открытый текст.
Операции [ править ]
ARX (добавить-повернуть-XOR) [ править ]
Многие современные блочные шифры и хэши представляют собой алгоритмы ARX — их функция округления включает только три операции: (A) модульное сложение, (R) вращение с фиксированной величиной вращения и (X) XOR . Примеры включают ChaCha20 , Speck , XXTEA и BLAKE . Многие авторы рисуют сеть ARX, своего рода диаграмму потока данных , чтобы проиллюстрировать такую круглую функцию. [20]
Эти ARX-операции популярны, поскольку они относительно быстры и дешевы в аппаратном и программном обеспечении, их реализация может быть сделана чрезвычайно простой, а также потому, что они выполняются в постоянном времени и, следовательно, невосприимчивы к атакам по времени . Техника ротационного криптоанализа пытается атаковать такие круговые функции.
Прочие операции [ править ]
Другие операции, часто используемые в блочных шифрах, включают зависящее от данных вращение, как в RC5 и RC6 , поле подстановки, реализованное в виде таблицы поиска , как в Data Encryption Standard и Advanced Encryption Standard , поле перестановки и умножение, как в IDEA .
Режимы работы [ править ]
Блочный шифр сам по себе позволяет шифровать только один блок данных с длиной блока шифра. Для сообщения переменной длины данные сначала должны быть разделены на отдельные блоки шифрования. В простейшем случае, известном как режим электронной кодовой книги (ECB), сообщение сначала разбивается на отдельные блоки размера блока шифра (возможно, с расширением последнего блока битами заполнения ), а затем каждый блок шифруется и расшифровывается независимо. Однако такой наивный метод, как правило, небезопасен, поскольку равные блоки открытого текста всегда будут генерировать равные блоки зашифрованного текста (для одного и того же ключа), поэтому шаблоны в сообщении открытого текста становятся очевидными в выходном зашифрованном тексте. [21]
несколько так называемых режимов работы блочного шифрования. Чтобы преодолеть это ограничение, было разработано [22] [23] и указано в национальных рекомендациях, таких как NIST 800-38A. [24] и БСИ ТР-02102 [25] и международные стандарты, такие как ISO/IEC 10116 . [26] Общая концепция заключается в использовании рандомизации данных открытого текста на основе дополнительного входного значения, часто называемого вектором инициализации , для создания так называемого вероятностного шифрования . [27] В популярном режиме цепочки блоков шифра (CBC) для обеспечения безопасности шифрования вектор инициализации, передаваемый вместе с сообщением открытого текста, должен быть случайным или псевдослучайным значением, которое добавляется методом исключающего или к первому блоку открытого текста перед он зашифрован. Результирующий блок зашифрованного текста затем используется в качестве нового вектора инициализации для следующего блока открытого текста. В режиме обратной связи шифрования (CFB), который эмулирует самосинхронизирующийся потоковый шифр , вектор инициализации сначала шифруется, а затем добавляется в блок открытого текста. Режим выходной обратной связи (OFB) многократно шифрует вектор инициализации для создания потока ключей для эмуляции синхронного потокового шифра . Новый режим счетчика (CTR) аналогичным образом создает поток ключей, но имеет то преимущество, что в качестве векторов инициализации требуются только уникальные, а не (псевдо)случайные значения; необходимая случайность определяется внутренним образом путем использования вектора инициализации в качестве счетчика блоков и шифрования этого счетчика для каждого блока. [24]
С точки зрения теории безопасности , режимы работы должны обеспечивать так называемую семантическую безопасность . [28] Неформально это означает, что, имея некоторый зашифрованный текст с неизвестным ключом, практически невозможно получить из зашифрованного текста какую-либо информацию (кроме длины сообщения) сверх того, что можно было бы знать, не видя зашифрованного текста. Было показано, что все рассмотренные выше режимы, за исключением режима ECB, обеспечивают это свойство при так называемых атаках с выбранным открытым текстом .
Заполнение [ править ]
Некоторые режимы, такие как режим CBC, работают только с полными блоками открытого текста. Простого расширения последнего блока сообщения нулевыми битами недостаточно, поскольку это не позволяет получателю легко различать сообщения, которые отличаются только количеством битов заполнения. Что еще более важно, такое простое решение приводит к очень эффективным атакам оракулов с заполнением . [29] Поэтому необходима подходящая схема заполнения , чтобы расширить последний блок открытого текста до размера блока шифра. Хотя многие популярные схемы, описанные в стандартах и литературе, оказались уязвимыми для атак оракула заполнения, [29] [30] решение, которое добавляет один бит, а затем расширяет последний блок нулевыми битами, стандартизированное как «метод заполнения 2» в ISO / IEC 9797-1, [31] была доказана безопасность от этих атак. [30]
Криптоанализ [ править ]
Этот раздел нуждается в расширении: Для методов криптоанализа может потребоваться введение моделей атак: только зашифрованный текст, известный открытый текст, выбранный открытый текст, выбранный зашифрованный текст и т. д. Вы можете помочь, добавив к нему . ( апрель 2012 г. ) |
Атаки грубой силы [ править ]
Этот раздел нуждается в расширении : влияние размера ключа и размера блока, обсуждение времени до атаки на день рождения . Вы можете помочь, добавив в него . ( январь 2019 г. ) |
Это свойство приводит к квадратичному ухудшению безопасности шифра, и его необходимо учитывать при выборе размера блока. Однако существует компромисс, поскольку большие размеры блоков могут привести к тому, что алгоритм станет неэффективным в работе. [32] Более ранние блочные шифры, такие как DES, обычно выбирали размер блока 64 бита, в то время как новые конструкции, такие как AES, поддерживают размеры блоков 128 бит и более, при этом некоторые шифры поддерживают диапазон различных размеров блоков. [33]
Дифференциальный криптоанализ [ править ]
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( апрель 2012 г. ) |
Линейный криптоанализ [ править ]
Линейный криптоанализ — это форма криптоанализа, основанная на нахождении аффинных приближений к действию шифра . Линейный криптоанализ — одна из двух наиболее широко используемых атак на блочные шифры; другой — дифференциальный криптоанализ . [34]
Открытие приписывается Мицуру Мацуи , который первым применил эту технику к шифру FEAL (Мацуи и Ямагиши, 1992). [35]
Интегральный криптоанализ [ править ]
Интегральный криптоанализ — это криптоаналитическая атака, которая особенно применима к блочным шифрам, основанным на сетях замены-перестановки. В отличие от дифференциального криптоанализа, который использует пары выбранных открытых текстов с фиксированной разницей XOR, интегральный криптоанализ использует наборы или даже мультинаборы выбранных открытых текстов, часть которых остается постоянной, а другая часть варьируется во всех возможностях. Например, атака может использовать 256 выбранных открытых текстов, у которых все бита, кроме 8, одинаковы, но все они различаются по этим 8 битам. Такой набор обязательно имеет сумму XOR, равную 0, а суммы XOR соответствующих наборов зашифрованных текстов предоставляют информацию о работе шифра. Этот контраст между различиями между парами текстов и суммами более крупных наборов текстов вдохновил на название «интегральный криптоанализ», заимствовав терминологию исчисления. [ нужна ссылка ]
Другие методы [ править ]
В дополнение к линейному и дифференциальному криптоанализу существует растущий каталог атак: усеченный дифференциальный криптоанализ , частичный дифференциальный криптоанализ, интегральный криптоанализ , который включает в себя квадратичные и интегральные атаки, атаки слайдом , атаки бумеранга , атаку XSL , невозможный дифференциальный криптоанализ и алгебраический атаки. Чтобы новая конструкция блочного шифра пользовалась доверием, она должна продемонстрировать доказательства защиты от известных атак. [ нужна ссылка ]
безопасность Доказуемая
используется блочный шифр Когда в заданном режиме работы , результирующий алгоритм в идеале должен быть примерно таким же безопасным, как и сам блочный шифр. ECB (обсуждаемому выше) категорически не хватает этого свойства: независимо от того, насколько безопасен базовый блочный шифр, режим ECB можно легко атаковать. С другой стороны, можно доказать безопасность режима CBC, если предположить, что лежащий в его основе блочный шифр также безопасен. Однако обратите внимание, что подобные утверждения требуют формальных математических определений того, что означает «безопасность» алгоритма шифрования или блочного шифра. В этом разделе описываются два общих понятия о том, какими свойствами должен обладать блочный шифр. Каждый соответствует математической модели, которую можно использовать для доказательства свойств алгоритмов более высокого уровня, таких как CBC.
Этот общий подход к криптографии – доказательство безопасности алгоритмов более высокого уровня (таких как CBC) при явно сформулированных предположениях относительно их компонентов (таких как блочный шифр) – известен как доказуемая безопасность .
Стандартная модель [ править ]
Неформально, блочный шифр в стандартной модели безопасен, если злоумышленник не может отличить блочный шифр (оснащенный случайным ключом) от случайной перестановки.
Точнее, пусть n E — - битный блочный шифр. Представим себе следующую игру:
- Человек, управляющий игрой, подбрасывает монету.
- монета выпадает орлом, он выбирает случайный ключ K и определяет функцию f = E K. Если
- Если монета выпадает решкой, он выбирает случайную перестановку π в наборе n- битных строк и определяет функцию f = π .
- Злоумышленник выбирает n- битную строку X , а человек, запускающий игру, сообщает ему значение f ( X ).
- Шаг 2 повторяется всего q раз. (Каждое из этих q взаимодействий представляет собой запрос .)
- Злоумышленник догадывается, как упала монета. Он выигрывает, если его предположение верно.
Злоумышленник, которого мы можем смоделировать как алгоритм, называется противником . Функция f (которую злоумышленник смог запросить) называется оракулом .
Обратите внимание, что противник может тривиально обеспечить 50% шанс на победу, просто угадывая наугад (или даже, например, всегда угадывая «орла»). Поэтому пусть P E ( A ) обозначает вероятность того, что противник выиграет эту игру против E , и определим преимущество A E как 2 ( P A ( A ) − 1/2). Отсюда следует, что если А угадает случайно, его преимущество будет равно 0; с другой стороны, если A всегда побеждает, то его преимущество равно 1. Блочный шифр E представляет собой псевдослучайную перестановку (PRP), если ни один противник не имеет преимущества, значительно большего, чем 0, с учетом заданных ограничений на q и время работы противника. . Если на шаге 2 выше у противников есть возможность изучить f −1 ( X ) вместо f ( X ) (но все равно имеет лишь небольшие преимущества), то E является сильным PRP (SPRP). Противник является неадаптивным, если он выбирает все q значения для X до начала игры (то есть он не использует никакой информации, полученной из предыдущих запросов, для выбора каждого X в ходе игры).
Эти определения оказались полезными для анализа различных режимов работы. Например, можно определить аналогичную игру для измерения безопасности алгоритма шифрования на основе блочного шифра, а затем попытаться показать (посредством аргумента сокращения ), что вероятность победы противника в этой новой игре ненамного больше, чем P E ( A для некоторого A. ) (Уменьшение обычно обеспечивает ограничения на q и время работы A .) Аналогично, если P E ( A ) мало для всех соответствующих A , то ни один злоумышленник не имеет значительной вероятности выиграть новую игру. Это формализует идею о том, что алгоритм более высокого уровня наследует безопасность блочного шифра.
Модель идеального шифрования [ править ]
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( апрель 2012 г. ) |
Практическая оценка
На практике блочные шифры можно оценивать по множеству критериев. Общие факторы включают в себя: [36] [37]
- Ключевые параметры, такие как размер ключа и размер блока, оба из которых обеспечивают верхнюю границу безопасности шифра.
- Предполагаемый уровень безопасности , который основан на уверенности, полученной в конструкции блочного шифра после того, как она в значительной степени выдержала серьезные усилия в области криптоанализа с течением времени, математической обоснованности конструкции и наличии практических или сертификационных [38] атаки.
- шифра Сложность и его пригодность для реализации в аппаратном или программном обеспечении . Аппаратные реализации могут измерять сложность с точки зрения количества вентилей или энергопотребления, которые являются важными параметрами для устройств с ограниченными ресурсами.
- шифра Производительность с точки зрения пропускной способности обработки на различных платформах, включая требования к памяти .
- Стоимость правами шифра относится к лицензионным требованиям, которые могут применяться в связи с интеллектуальной собственности .
- Гибкость . шифра включает в себя его способность поддерживать несколько размеров ключей и длин блоков
блочные Известные шифры
Люцифер/DES [ править ]
Люцифер обычно считается первым гражданским блочным шифром, разработанным в IBM в 1970-х годах на основе работы Хорста Фейстеля . Пересмотренная версия алгоритма была принята в качестве федерального стандарта обработки информации правительства США : FIPS PUB 46 Data Encryption Standard (DES). [39] Он был выбран Национальным бюро стандартов США (NBS) после публичного приглашения к участию и некоторых внутренних изменений со стороны NBS (и, возможно, АНБ ). DES был публично выпущен в 1976 году и широко использовался. [ нужна ссылка ]
DES был разработан, среди прочего, для противодействия определенной криптоаналитической атаке, известной АНБ и вновь открытой IBM, хотя и неизвестной публично, пока она не была вновь открыта заново и опубликована Эли Бихамом и Ади Шамиром в конце 1980-х годов. Этот метод называется дифференциальным криптоанализом и остается одной из немногих универсальных атак на блочные шифры; линейный криптоанализ — еще один метод, который, возможно, был неизвестен даже АНБ до его публикации Мицуру Мацуи . DES послужил толчком к большому количеству других работ и публикаций в области криптографии и криптоанализа в открытом сообществе и вдохновил множество новых разработок шифров. [ нужна ссылка ]
DES имеет размер блока 64 бита и размер ключа 56 бит. 64-битные блоки стали обычным явлением в конструкциях блочных шифров после DES. Длина ключа зависела от нескольких факторов, включая государственное регулирование. Многие наблюдатели [ ВОЗ? ] в 1970-х заметил, что 56-битная длина ключа, используемая для DES, слишком коротка. Со временем его неадекватность стала очевидна, особенно после того, как специальную машину, предназначенную для взлома DES продемонстрировала в 1998 году Electronic Frontier Foundation . Расширение DES, Triple DES , тройное шифрование каждого блока либо с помощью двух независимых ключей (112-битный ключ и 80-битная безопасность), либо трех независимых ключей (168-битный ключ и 112-битная безопасность). Он получил широкое распространение в качестве замены. По состоянию на 2011 год версия с тремя ключами по-прежнему считается безопасной, хотя стандарты Национального института стандартов и технологий (NIST) больше не разрешают использование версии с двумя ключами в новых приложениях из-за ее 80-битного уровня безопасности. [40]
ИДЕЯ [ править ]
Международный алгоритм шифрования данных ( IDEA ) — это блочный шифр, разработанный Джеймсом Мэсси из ETH Zurich и Сюэцзя Лаем ; Впервые он был описан в 1991 году как предполагаемая замена DES.
IDEA оперирует 64-битными блоками с использованием 128-битного ключа и состоит из серии из восьми одинаковых преобразований ( раунд ) и выходного преобразования (полураунд ) . Процессы шифрования и дешифрования аналогичны. IDEA обеспечивает большую часть своей безопасности за счет чередования операций из разных групп — модульного сложения и умножения, а также побитового исключающего или (XOR) , — которые в некотором смысле алгебраически «несовместимы».
Разработчики проанализировали IDEA, чтобы оценить его устойчивость к дифференциальному криптоанализу , и пришли к выводу, что при определенных предположениях он неуязвим. Об успешных линейных или алгебраических слабостях не сообщалось. По состоянию на 2012 год [update], лучшая атака, применимая ко всем ключам, может сломать полную 8,5-раундовую IDEA, используя атаку узкими бикликами примерно в четыре раза быстрее, чем грубая сила.
RC5 [ править ]
RC5 — это блочный шифр, разработанный Рональдом Ривестом в 1994 году, который, в отличие от многих других шифров, имеет переменный размер блока (32, 64 или 128 бит), размер ключа (от 0 до 2040 бит) и количество раундов (от 0 до 2040 бит). 255). Первоначально предложенный выбор параметров предусматривал размер блока 64 бита, 128-битный ключ и 12 раундов.
Ключевой особенностью RC5 является использование ротации в зависимости от данных; одной из целей RC5 было стимулировать изучение и оценку таких операций как криптографических примитивов. RC5 также состоит из ряда модульных дополнений и XOR. Общая структура алгоритма представляет собой Фейстеля сеть типа . Процедуры шифрования и дешифрования можно указать в нескольких строках кода. Расписание ключей, однако, более сложное: расширение ключа осуществляется с использованием, по сути, односторонней функции с двоичными расширениями как e , так и золотого сечения в качестве источников « ничего в запасе ». Дразнящая простота алгоритма вместе с новизной вращения, зависящего от данных, сделали RC5 привлекательным объектом изучения для криптоаналитиков.
12-раундовый RC5 (с 64-битными блоками) восприимчив к дифференциальной атаке с использованием 2 44 выбранные открытые тексты. [41] В качестве достаточной защиты предлагается 18–20 патронов.
Рейндал / AES [ править ]
Шифр Rijndael , разработанный бельгийскими криптографами Джоан Демен и Винсентом Рейменом, был одним из конкурирующих проектов, призванных заменить DES. Он выиграл пятилетний публичный конкурс на звание AES (расширенный стандарт шифрования).
Принятый NIST в 2001 году, AES имеет фиксированный размер блока 128 бит и размер ключа 128, 192 или 256 бит, тогда как Rijndael может быть указан с размерами блока и ключа, кратными 32 битам, но не менее 128 бит. биты. Размер блока составляет максимум 256 бит, но размер ключа не имеет теоретического максимума. по основным столбцам 4 × 4 AES работает с матрицей порядка байтов , называемой состоянием (версии Rijndael с большим размером блока имеют дополнительные столбцы в состоянии).
Иглобрюхий [ править ]
Blowfish — это блочный шифр, разработанный в 1993 году Брюсом Шнайером и включенный в большое количество наборов шифров и продуктов шифрования. Blowfish имеет размер блока 64 бита и переменную длину ключа от 1 до 448 бит. [42] Это 16-раундовый шифр Фейстеля , в котором используются большие зависящие от ключа S-блоки . Примечательные особенности конструкции включают зависящие от ключа S-блоки и очень сложную схему клавиш .
Он был разработан как алгоритм общего назначения, задуманный как альтернатива устаревшему DES и свободный от проблем и ограничений, связанных с другими алгоритмами. На момент выпуска Blowfish многие другие разработки были запатентованы, обременены патентами или составляли коммерческую/правительственную тайну. Шнайер заявил, что «Blowfish не имеет патента и останется таковым во всех странах. Алгоритм настоящим размещен в общественном достоянии и может свободно использоваться кем угодно». То же самое относится и к Twofish , алгоритму-преемнику от Schneier.
Обобщения [ править ]
Настраиваемые блочные шифры [ править ]
Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( июнь 2008 г. ) |
М. Лисков, Р. Ривест и Д. Вагнер описали обобщенную версию блочных шифров, названную «настраиваемыми» блочными шифрами. [43] Настраиваемый блочный шифр принимает второй ввод, называемый настройкой, вместе с обычным вводом открытого текста или зашифрованного текста. Твик вместе с ключом выбирает перестановку, вычисленную шифром. Если изменение настроек достаточно легкое (по сравнению с обычно довольно дорогостоящей операцией настройки клавиш), то становятся возможными некоторые интересные новые режимы работы. В статье по теории шифрования диска описаны некоторые из этих режимов.
Шифрование с сохранением формата [ править ]
Блочные шифры традиционно работают на основе двоичного алфавита . То есть и входные, и выходные данные представляют собой двоичные строки, состоящие из n нулей и единиц. Однако в некоторых ситуациях может потребоваться иметь блочный шифр, работающий с другим алфавитом; например, шифрование 16-значных номеров кредитных карт таким образом, чтобы зашифрованный текст также представлял собой 16-значный номер, может облегчить добавление уровня шифрования в устаревшее программное обеспечение. Это пример шифрования с сохранением формата . В более общем смысле, шифрование с сохранением формата требует перестановки ключей на некотором конечном языке . Это делает схемы шифрования, сохраняющие формат, естественным обобщением (настраиваемых) блочных шифров. Напротив, традиционные схемы шифрования, такие как CBC, не являются перестановками, поскольку один и тот же открытый текст может зашифровать несколько разных зашифрованных текстов, даже при использовании фиксированного ключа.
с другими криптографическими Связь примитивами
Блочные шифры можно использовать для создания других криптографических примитивов, например приведенных ниже. Чтобы эти другие примитивы были криптографически безопасными, необходимо позаботиться о их правильном построении.
- Потоковые шифры могут быть построены с использованием блочных шифров. Режим OFB и режим CTR — это блочные режимы, которые превращают блочный шифр в поточный шифр.
- Криптографические хэш-функции могут быть построены с использованием блочных шифров. [44] [45] См . функцию одностороннего сжатия для описания нескольких таких методов. Эти методы напоминают режимы работы блочного шифра, обычно используемые для шифрования.
- Криптографически безопасные генераторы псевдослучайных чисел (CSPRNG) могут быть построены с использованием блочных шифров. [46] [47]
- Безопасные псевдослучайные перестановки конечных множеств произвольного размера могут быть построены с помощью блочных шифров; см . Шифрование с сохранением формата .
- Общеизвестной непредсказуемой перестановки в сочетании с отбеливанием ключа достаточно для создания блочного шифра, такого как одноключевой шифр Эвена-Мансура , возможно, самый простой из возможных доказуемо безопасных блочных шифров. [48]
- Коды аутентификации сообщений (MAC) часто создаются на основе блочных шифров. CBC-MAC , OMAC и PMAC являются такими MAC.
- Аутентифицированное шифрование также строится на основе блочных шифров. Это означает одновременное шифрование и MAC. Это необходимо для обеспечения конфиденциальности и аутентификации . CCM , EAX , GCM и OCB являются такими режимами шифрования с аутентификацией.
Точно так же, как блочные шифры могут использоваться для построения хеш-функций, например, SHA-1 и SHA-2 основаны на блочных шифрах, которые также используются независимо как SHACAL , хеш-функции могут использоваться для построения блочных шифров. Примерами таких блочных шифров являются BEAR и LION .
См. также [ править ]
Ссылки [ править ]
- ^ Кьюсик, Томас В.; Станица, Пантелимон (2009). Криптографические логические функции и приложения . Академическая пресса. стр. 158–159. ISBN 9780123748904 .
- ^ Менезес, Альфред Дж.; ван Оршот, Пол К.; Ванстон, Скотт А. (1996). «Глава 7: Блочные шифры». Справочник по прикладной криптографии . ЦРК Пресс. ISBN 0-8493-8523-7 . Архивировано из оригинала 3 февраля 2021 г. Проверено 15 июля 2012 г.
- ^ Белларе, Михир; Рогауэй, Филлип (11 мая 2005 г.), «Введение в современную криптографию» (конспекты лекций) , заархивировано (PDF) из оригинала 09 октября 2022 г. , глава 3.
- ^ Чакраборти, Д.; Родригес-Энрикес, Ф. (2008). «Режимы работы блочного шифра с точки зрения аппаратной реализации» . В Коче, Четин К. (ред.). Криптографическая инженерия . Спрингер. п. 321. ИСБН 9780387718163 .
- ^ Менезес, ван Ооршот и Ванстон 1996 , раздел 7.2.
- ^ Шеннон, Клод (1949). «Теория связи секретных систем» (PDF) . Технический журнал Bell System . 28 (4): 656–715. дои : 10.1002/j.1538-7305.1949.tb00928.x . Архивировано из оригинала (PDF) 5 июня 2007 г. Проверено 9 апреля 2012 г.
- ^ ван Тилборг, Хенк, Калифорния; Яджодиа, Сушил, ред. (2011). Энциклопедия криптографии и безопасности . Спрингер. ISBN 978-1-4419-5905-8 . , с. 455.
- ^ ван Тилборг и Джаджодиа 2011 , с. 1268.
- ^ Рупп, Мартин (16 августа 2019 г.). «Преимущества ключевого блока Atalla» . Утимако . Архивировано из оригинала 17 октября 2020 года . Проверено 10 сентября 2019 г.
- ^ Хамшер, Уолтер (1998). «Электронный бизнес без страха: архитектура безопасности Tristrata» (PDF) . CiteSeerX 10.1.1.123.2371 . Архивировано из оригинала (PDF) 29 мая 2005 года. [ самостоятельно опубликованный источник? ]
- ^ Стиеннон, Ричард (17 июня 2014 г.). «Управление ключами в быстрорастущем пространстве» . SecurityCurrent . IT-Урожай . Проверено 21 августа 2019 г.
- ^ Жюно, Паскаль и Канто, Энн (2011). Расширенный линейный криптоанализ блочных и потоковых шифров . ИОС Пресс. п. 2. ISBN 9781607508441 .
- ^ Келихер, Лиам; и др. (2000). «Моделирование линейных характеристик сетей замены-перестановки». В Хейсе, Ховард; Карлайл, Адам (ред.). Избранные области криптографии: 6-й ежегодный международный семинар, SAC'99, Кингстон, Онтарио, Канада, 9–10 августа 1999 г.: материалы . Спрингер. п. 79 . ISBN 9783540671855 .
- ^ Баньерес, Томас; Финиас, Матье (2007). «Наберите «C», чтобы получить шифр» . В Бихаме, Эли; Юсефф, Амр (ред.). Отдельные области криптографии: 13-й международный семинар, SAC 2006, Монреаль, Канада, 17–18 августа 2006 г.: пересмотренные избранные статьи . Спрингер. п. 77. ИСБН 9783540744610 .
- ^ Кьюсик, Томас В.; Станица, Пантелимон (2009). Криптографические логические функции и приложения . Академическая пресса. п. 164. ИСБН 9780123748904 .
- ^ Кац, Джонатан; Линделл, Иегуда (2008). Введение в современную криптографию . ЦРК Пресс. п. 166 . ISBN 9781584885511 . , страницы 166–167.
- ^ Субхабрата Самадждер (2017). Криптоанализ блочного шифра: обзор . Калькутта: Индийский статистический институт. стр. 5/52.
- ^ Jump up to: Перейти обратно: а б Кац и Линделл, 2008 , стр. 170–172.
- ^ Кац и Линделл 2008 , с. 171.
- ^ Омассон, Жан-Филипп; Бернштейн, Дэниел Дж. (2012). «SipHash: быстрый PRF с коротким вводом» (PDF) . В Гэлбрейте, Стивен; Нанди, Мридул (ред.). Прогресс в криптологии — INDOCRYPT 2012: 13-я Международная конференция по криптологии в Индии, Калькутта, Индия, 9–12 декабря 2012 г., материалы . Берлин: Шпрингер. п. 494. дои : 10.1007/978-3-642-34931-7_28 . ISBN 978-3-642-34931-7 . Архивировано из оригинала (PDF) 12 марта 2020 г.
- ^ Менезес, ван Ооршот и Ванстон 1996 , стр. 228–230, Глава 7.
- ^ «Режимы блочного шифрования» . NIST Ресурсный центр по компьютерной безопасности. 4 января 2017 г.
- ^ Менезес, ван Ооршот и Ванстон 1996 , стр. 228–233.
- ^ Jump up to: Перейти обратно: а б Моррис Дворкин (декабрь 2001 г.), «Рекомендации по режимам работы блочного шифра - методы и методы» (PDF) , специальная публикация 800-38A , Национальный институт стандартов и технологий (NIST), doi : 10.6028/NIST.SP.800- 38А , заархивировано (PDF) из оригинала 09 октября 2022 г.
- ^ «Криптографические методы: рекомендации и длины ключей», Bsi Tr-02102 (Техническое руководство) (версия 1.0), 20 июня 2008 г.
- ^ «ISO/IEC 10116:2006 Информационные технологии. Методы обеспечения безопасности. Режимы работы n-битного блочного шифра » .
- ^ Белларе и Рогауэй 2005 , с. 101, раздел 5.3.
- ^ Белларе и Рогауэй 2005 , раздел 5.6.
- ^ Jump up to: Перейти обратно: а б Серж Водене (2002). «Дефекты безопасности, вызванные заполнением CBC — приложения для SSL, IPSEC, WTLS». Достижения в криптологии — EUROCRYPT 2002 . Конспекты лекций по информатике. Том. 2332. Спрингер Верлаг. стр. 534–545. дои : 10.1007/3-540-46035-7_35 . ISBN 978-3-540-43553-2 .
- ^ Jump up to: Перейти обратно: а б Кеннет Г. Патерсон; Гавен Дж. Уотсон (2008). «Иммунизация режима CBC против атак Oracle с заполнением: формальный подход к обеспечению безопасности». Безопасность и криптография для сетей . Конспекты лекций по информатике. Том. 5229. Спрингер Верлаг. стр. 340–357. дои : 10.1007/978-3-540-85855-3_23 . ISBN 978-3-540-85854-6 .
- ^ ISO/IEC 9797-1: Информационные технологии. Методы обеспечения безопасности. Коды аутентификации сообщений (MAC). Часть 1. Механизмы, использующие блочный шифр . ISO/IEC, 2011.
- ^ Мартин, Кейт М. (2012). Повседневная криптография: фундаментальные принципы и приложения . Издательство Оксфордского университета. п. 114. ИСБН 9780199695591 .
- ^ Паар, Кристоф; и др. (2010). Понимание криптографии: Учебник для студентов и практиков . Спрингер. п. 30. ISBN 9783642041006 .
- ^ Мацуи, Мицуру. «Линейный криптоанализ DES-шифра» . Корпорация Мицубиси Электрик . 1 (3): 43 – через Лабораторию компьютерных и информационных систем.
- ^ Мацуи М. и Ямагиши А. «Новый метод атаки шифра FEAL по известному открытому тексту». Достижения в криптологии – EUROCRYPT 1992 .
- ^ Менезес, ван Ооршот и Ванстон 1996 , стр. 227.
- ^ Джеймс Нечватал; Элейн Баркер; Лоуренс Бэшем; Уильям Берр; Моррис Дворкин; Джеймс Фоти; Эдвард Робак (октябрь 2000 г.), Отчет о разработке расширенного стандарта шифрования (AES) (PDF) , Национальный институт стандартов и технологий (NIST), заархивировано (PDF) из оригинала 9 октября 2022 г.
- ^ Атаки, которые показывают, что шифр не работает так, как заявлено (т. е. уровень сложности его взлома ниже заявленного), которые, тем не менее, имеют достаточно высокую сложность, поэтому практически недостижимы.
- ^ FIPS PUB 46-3 Стандарт шифрования данных (DES) (это третье издание, 1999 г., но включает историческую информацию в предварительный раздел 12.)
- ^ Специальная публикация NIST 800-57 «Рекомендации по управлению ключами — Часть 1: Общие сведения (пересмотренные)» , март 2007 г. Архивировано 6 июня 2014 г., в Wayback Machine .
- ^ Бирюков А. и Кушилевиц Э. (1998). Улучшен криптоанализ RC5. ЕВРОКРИПТ 1998.
- ^ Брюс Шнайер (1994). «Описание нового ключа переменной длины, 64-битного блочного шифра (Blowfish)» . Журнал доктора Добба . 19 (4): 38–40.
- ^ Лисков, М.; Ривест, Р.; Вагнер, Д. «Настраиваемые блочные шифры» (PDF) . Крипто 2002 . Архивировано (PDF) из оригинала 9 октября 2022 г.
- ^ «ISO/IEC 10118-2:2010 Информационные технологии. Методы обеспечения безопасности. Хэш-функции. Часть 2. Хэш-функции с использованием n-битного блочного шифра » .
- ^ Менезес, ван Ооршот и Ванстон, 1996 , Глава 9: Хэш-функции и целостность данных.
- ^ Баркер, Э.Б.; Келси, Дж. М. (2012). «Специальная публикация NIST 800-90A, Рекомендации по генерации случайных чисел с использованием детерминированных генераторов случайных битов » (PDF) . doi : 10.6028/NIST.SP.800-90A .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Менезес, ван Ооршот и Ванстон 1996 , Глава 5: Псевдослучайные биты и последовательности.
- ^ Орр Данкельман, Натан Келлер и Ади Шамир . «Минимализм в криптографии: новый взгляд на схему Эвена-Мансура» .
Дальнейшее чтение [ править ]
- Кнудсен, Ларс Р.; Робшоу, Мэтью (2011). Компаньон по блочным шифрам . Спрингер. ISBN 9783642173417 .