05.47 Алгоритмы гаммирования, блочные шифры, ГОСТ 28147-89.
Прислано GMan1990 March 18 2015 21:21:12

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

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

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

В современных стандартах шифрования используется побитовое сложение сообщения и гаммы по модулю 2, так как эта операция (XOR – исключающее ИЛИ) аппаратно реализована в арифметико-логическом устройстве процессора.

Метод сложения по модулю . Перед шифрованием символы сообщения заменяются их номерами в алфавите. Основание модуля определяет количество символов в используемом алфавите. Шифрование выполняется по формуле

 

,

 

при этом полученный -й символ остаётся -м, а не нулевым. Затем выполняется замена полученных чисел на буквы шифрограммы. Дешифрирование выполняется по формуле

 

,

 

где – это символы исходного сообщения, – символы зашифрованного сообщения, – символы гаммы.

· Рекомендации : Для каждого сообщения использовать новую гамму (повторное использование гаммы недопустимо).

· Для формирования гаммы использовать аппаратные генераторы случайных чисел на основе физических процессов.

· Длина гаммы должна быть не меньше длины защищаемого сообщения.

 

Блочный шифр — разновидность симметричного шифра, оперирующего группами бит фиксированной длины — блоками, характерный размер которых меняется в пределах 64 — 256 бит. Если исходный текст (или его остаток) меньше размера блока, перед шифрованием его дополняют. Фактически, блочный шифр представляет собой подстановку на алфавите блоков, которая, как следствие, может быть моно- или полиалфавитной.Блочный шифр является важной компонентой многих криптографических протоколов и широко используется для защиты данных, передаваемых по сети.

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

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

ОЦЕНКА: На практике блочный шифр оценивают по множеству критериев:

· Параметры ключа: его длина и длина блока, обеспечивающие верхнюю границу безопасности шифра.

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

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

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

· Стоимость шифра, которая может быть обусловлена лицензионными требованиями в соответствии с интеллектуальной собственностью.

· Гибкость шифра, связанная со способностью поддерживать множество длин ключей и блоков.

 

Примеры:

Итеративные блочные шифры

Большинство блочных шифров являются итеративными. Это означает, что данный шифр преобразует блоки открытого текста (англ. plaintext) постоянной длины в блоки шифротекста (англ. ciphertext) той же длины посредством циклически повторяющихся обратимых функций, известных как раундовые функциии. [10] Это связано с простотой и скоростью исполнения как программных, так и аппаратных реализаций. Обычно раундовые функции используют различные ключи, полученные из первоначального ключа:

,

где Ci — значение блока после i-го раунда, C0 = M — открытый текст, Ki — ключ, используемый в i-м раунде и полученный из первоначального ключа K.

Размер блока n — это фиксированный параметр блочного шифра, обычно равный 64 или 128 битам, хотя некоторые шифры допускают несколько различных значений. Длина 64 бита была приемлема до середины 90-х годов, затем использовалась длина 128 бит, что примерно соответствует размеру машинного слова и позволяет эффективную реализацию на большинстве распространённых вычислительных платформ. Различные схемы шифрования позволяют зашифровывать открытый текстпроизвольной длины. Каждая имеет определенные характеристики: вероятность ошибки, простота доступа, уязвимость к атакам. По состоянию на 2006 год 80-битный ключ способен был предотвратить атаку грубой силой.

←SP-сетиSP-сети

Сеть Фейстеля — это общий метод преобразования произвольной функции F в перестановку на множестве блоков. [15] Она состоит из циклически повторяющихся ячеек — раундов. Внутри каждого раунда блок открытого текста разделяется на две равные части. Раундовая функция

Шифрование в ячейке Фейстеля

 

берет одну половину (на рис. правую), преобразует её с использованием ключа Ki и объединяет результат с второй половиной посредством операции исключающее ИЛИ (XOR). Этот ключ задаётся первоначальным ключом K и различен для каждого раунда. Далее половинки меняются местами (иначе будет преобразовываться только одна половина блока) и подаются на следующий раунд. Преобразование сети Фейстеля является обратимой операцией.

Для функции F существуют определенные требования:

· её работа должна приводить к лавинному эффекту

· должна быть нелинейна по отношению к операции XOR

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

Подобная конструкция обладает ощутимым преимуществом: процедуры шифрования/расшифрования совпадают, только производные от первоначального ключи используются в обратном порядке. Это значит, что одни и те же блоки могут использоваться как для шифрования, так и для расшифрования, что, безусловно, упрощает реализацию шифра. Недостаток схемы заключается в том, что в каждом раунде обрабатывается только половина блока, что приводит к необходимости увеличивать число раундов

СТАНДАРТЫ:

1) DES (США)

2) ГОСТ 28147-89

3) AES (заменил DES в США)

ГОСТ 28147-89 — советский и российский стандарт симметричного шифрования, введённый в 1990 году, также является стандартом СНГ. Блочный шифр алгоритм. При использовании метода шифрования с гаммированием может выполнять функции поточного крипто алгоритма.

Выделяют четыре режима работы ГОСТ 28147-89:

· простой замены

· гаммирование

· гаммирование с обратной связью

· режим выработки имитовставки.

Режим простой замены

Шифрование может быть описано следующим образом:

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

Преимущества:

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

Недостатки:

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

· Блоки могут пропадать или появляться. Злоумышленник может перехватить блок и продублировать его, и со стороны приёмника он будет воспринят как «правильный».

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

Гаммирование

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

Выработка гаммы происходит на основе ключа и так называемой синхропосылки, которая задает начальное состояние генератора Случайных чисел

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

Особенность работы ГОСТ 28147-89 в режиме гаммирования заключается в том, что при изменении одного бита шифротекста изменяется только один бит расшифрованного текста. С одной стороны, это может оказывать положительное влияние на помехозащищенность; с другой - злоумышленник может внести некоторые изменения в текст, даже не расшифровывая его

Режим обратной связи по шифротексту.

Режим обратной связи по шифротексту, режим гаммирования с обратной связью (англ. Cipher Feedback Mode, CFB) — один из вариантов использования симметричного блочного шифра, при котором для шифрования следующего блока открытого текста он складывается по модулю 2 с перешифрованным (блочным шифром) результатом шифрования предыдущего блока.

 

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

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

При использовании данного режима следует иметь в виду, что синхропосылку нельзя использовать повторно (например, при шифровании логически раздельных блоков информации - сетевых пакетов, секторов жёсткого диска и т.п). Это обусловлено тем, что первый блок шифр-текста получен всего лишь сложением по модулю два с зашифрованной синхропосылкой; таким образом, знание всего лишь 8 первых байт исходного и шифрованного текста позволяют читать первые 8 байт любого другого шифр-текста после повторного использования синхропосылки.

 

Имитовставка по ГОСТ 28147-89

ГОСТ 28147-89 предусматривает выработку имитовставки в соответствующем режиме. Длина имитовставки от 1 до 32 бит. Её выработка происходит по следующей схеме.

Открытый текст разбивается на блоки длиной 64 бита. Последний блок в случае необходимости дополняется нулями.

Первый блок шифруется в режиме простой замены ГОСТ 28147-89 тем же ключом, что и сообщение, но с применением 16 циклов вместо 32. Результат по битам по модулю 2 складывается с вторым блоком и так же шифруется. Результат складывается с третьим блоком... и так далее.

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

Имитовставка обычно передаётся в конце сообщения и может вычисляться либо отдельно от шифрования/расшифрования, либо в процессе оного.

Достоинства ГОСТа

· бесперспективность атаки полным перебором (XSL-атаки в учёт не берутся, так как их эффективность на данный момент полностью не доказана);

· эффективность реализации и, соответственно, высокое быстродействие на современных компьютерах;

· наличие защиты от навязывания ложных данных (выработка имитовставки) и одинаковый цикл шифрования во всех четырех алгоритмах ГОСТа.