- •Информационная безопасноть.
- •Понятие и определение врдоносных программ.
- •По наличию материальной выгоды
- •По цели разработки
- •По методам распространения
- •3. Понятие и определение криптографических протоколов. Примеры.
- •4. Возможности и сложности применения криптографических алгоритмов.
- •Защита от нсд.
- •Понятия и примеры монофонической замены и перестановки.
- •8. Виды криптоаналитических нападений. Классификация по ресурсам, доступным криптоаналитику. Примеры.
- •2 Метода криптоанализа:
- •Криптографические алгоритмы одноключевой криптографии.
- •10. Криптографические алгоритмы для двухключевой криптографии.
- •Требования к алгоритмам шифрования (по американским стандартам).
- •Российский стандарт шифрования гост 28147 – 89: назначение, область применения, основные принципы и структура алгоритма, режим работы, оценка криптостойкости и т.Д.
- •14. Государственные стандарты цифровой подписи сша и России (dss и гост 3410-94). Требования к системам цифровой подписи с точки зрения криптографа и пользователя.
- •Требования к цифровой подписи
- •15. Сравнительная оценка американского и российского стандартов криптографической защиты данных.
- •16. Основные принципы открытого шифрования. Однонаправленные функции (определение, примеры). Схема экспоненциального ключевого обмена Диффи-Хелмана.
- •17. Криптографические алгоритмы в сетях эвм.
- •Область использования цифровой подписи, технология применения.
- •Функции хеширования, их место в схемах цифровой подписи.
- •Стандартные и нестандартные нападения на системы эцп. Примеры.
- •Основные математические схемы цифровой подписи. Примеры.
- •Виды злоумышленных действий при обмене электронными документами (отказ, модификация, подмена, маскарад и др.) и пути их предотвращения.
- •Обмен электронными документами – возможности защиты.
- •Электронный документ
- •Основные требования, предъявляемые к электронному документу
- •1. Криптография с открытым ключом
- •2. Электронная цифровая подпись.
- •Аутентификация при помощи цифровой подписи. Возможные злоумышленные действия при передаче информации. Примеры.
- •26. Математическое описание и алгоритмы цифровой подписи (rsa).
- •Требования к системам эцп с точки зрения криптографа и пользователя.
- •28. Законодательные акты в области информационной безопасности. Виды конфиденциальной информации.
- •29. Основания стеганографии. Понятие файла-контейнера.
- •Теоретическая оценка емкости контейнера.
- •30. 31. Компьютерная стеганография на примере графических файлов. Стеганография с использованием текстовых файлов.
- •32. Использование стеганографии для защиты авторских прав.
- •Методы парольной защиты информации.
- •Понятие "политика безопасности" и ее применение в информационных системах.
- •36. Компрометация ключа. Необходимые действия пользователя.
- •Изобретение. Определение.
- •Полезная модель, определение, отличие от изобретения.
- •Состав заявки на изобретение, структура описания изобретения.
- •Формула изобретения.
- •Формальная экспертиза и экспертиза по существу.
- •Промышленный образец.
- •Международная патентная классификация.
- •Сроки действия патентов.
- •Международная классификация промышленных образцов. (мкпо)
- •Объекты, которые не могут быть изобретениями и полезными моделями.
- •Состав заявки на промышленный образец и структура описания промышленного образца.
Требования к алгоритмам шифрования (по американским стандартам).
Зашифрованный текст должен поддаваться чтению только при наличии ключа шифрования.
Число операций, необходимых для определения используемого ключа шифрования по фрагменту шифрованного текста и соответствующего ему открытого текста, должно быть больше или равно общего числа возможных ключей.
Знание алгоритма шифрования не должно влиять на надежность защиты.
Незначительное изменение ключа шифрования должно приводить к существенному изменению вида зашифрованного текста.
Незначительное изменение шифруемого текста должно приводить к существенному изменению вида зашифрованного текста.
Структурные элементы алгоритма шифрования должны быть неизменными.
Дополнительные биты, вводимые в текст в процессе шифрования, должны быть полностью и надежно скрыты.
Длина зашифрованного текста должна быть равна длине исходного текста.
Не должно быть простых и легко устанавливаемых зависимостей между ключами, которые последовательно используются в процессе шифрования.
Любой ключ из множества возможных должен обеспечить надежную защиту информации.
Изменение длины значащей части ключа не должно вести к качественному ухудшению алгоритма шифрации.
DES
DES (Data Encryption Standard) — симметричный алгоритм шифрования, в котором один ключ используется как для шифрования, так и для расшифрования данных. DES разработан фирмой IBM и утвержден правительством США в 1977 году как официальный стандарт (FIPS 46-3). DES имеет блоки по 64 бит и 16 цикловую структуру сети Фейстеля, для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований. Для DES рекомендовано несколько режимов:
режим электронной кодовой книги (ECB — Electronic Code Book) ,
режим сцепления блоков (СВС — Cipher Block Chaining),
режим обратной связи по шифротексту (CFB — Cipher Feed Back),
режим обратной связи по выходу (OFB — Output Feed Back).
Ключ, который может быть любым 56-битовым числом, можно изменить в любой момент времени. Ряд чисел считаются слабыми ключами, но их можно легко избежать. Безопасность полностью определяется ключом.
На простейшем уровне алгоритм не представляет ничего большего, чем комбинация двух основных методов шифрования: смещения и диффузии. Фундаментальным строительным блоком DES является применение к тексту единичной комбинации этих методов (подстановка, а за ней - перестановка), зависящей от ключа. Такой блок называется этапом. DES состоит из 16 этапов, одинаковая комбинация методов применяется к открытому тексту 16 раз (см. 11-й).
Cхема алгоритма
DES работает с 64-битовым блоком открытого текста. После первоначальной перестановки блок разбивается на правую и левую половины длиной по 32 бита. Затем выполняется 16 этапов одинаковых действий, называемых функцией f, в которых данные объединяются с ключом. После шестнадцатого этапа правая и левая половины объединяются и алгоритм завершается заключительной перестановкой (обратной по отношению к первой начальной).
На каждом этапе (см. 10-й) биты ключа сдвигаются, и затем из 56 битов ключа выбираются 48 битов. Правая половина данных увеличивается до 48 битов с помощью перестановки с расширением, объединяется посредством XOR с 48 битами смещенного и переставленного ключа, проходит через 8 S-блоков, образуя 32 новых бита, и переставляется снова. Эти четыре операции и выполняются функцией f. Затем результат функции f объединяется с левой половиной с помощью другого XOR. В итоге этих действий появляется новая правая половина, а старая правая половина становится новой левой. Эти действия повторяются 16 раз, образуя 16 этапов DES.
Если Вi - это результат i-ой итерации, Li и Ri - левая и правая половины Вi, Кi, - 48-битовый ключ для этапа i, a f - это функция, выполняющие все подстановки, перестановки и XOR с ключом, то этап можно представить как:
Li=Ri-1
Ri=
Li
f(Ri-1,
Ki)
Начальная перестановка
Начальная перестановка выполняется еще до этапа 1, при этом входной блок переставляется, как показано в 11-й. Эту и все другие таблицы этой главы надо читать слева направо и сверху вниз. Например, начальная перестановка перемещает бит 58 в битовую позицию 1, бит 50 - в битовую позицию 2, бит 42 - в битовую позицию 3, и так далее.
Начальная перестановка и соответствующая заключительная перестановка не влияют на безопасность DES. (Как можно легко заметить, эта перестановка в первую очередь служит для облегчения побайтной загрузки данных открытого текста и шифротекста в микросхему DES. Не забывайте, что DES появился раньше 16- и 32-битовых микропроцессорных шин.) Так как программная реализация этой многобитовой перестановки нелегка (в отличие от тривиальной аппаратной), во многих программных реализациях DES начальная и заключительные перестановки не используются. Хотя такой новый алгоритм не менее безопасен, чем DES, он не соответствует стандарту DES и, поэтому, не может называться DES.
Преобразования ключа
Сначала 64-битовый ключ DES уменьшается до 56-битового ключа отбрасыванием каждого восьмого бита, как показано в 10-й. Эти биты используются только для контроля четности, позволяя проверять правильность ключа. После извлечения 56-битового ключа для каждого из 16 этапов DES генерируется новый 48-битовый подключ. Эти подключи, Кi, определяются следующим образом.
Из-за
сдвига для каждого подключа используется
отличное подмножество битов ключа.
Каждый бит используется
приблизительно в 14 из 16 подключей, хотя
не все биты используются в точности
одинаковое число раз.
Перестановка с расширением
Эта операция расширяет правую половину данных, R„ от 32 до 48 битов. Так как при этом не просто повторяются определенные биты, но и изменяется их порядок, эта операция называется перестановкой с расширением. У нее две задачи: привести размер правой половины в соответствие с ключом для операции XOR и получить более длинный результат, который можно будет сжать в ходе операции подстановки. Однако главный криптографический смысл совсем в другом. За счет влияния одного бита на две подстановки быстрее возрастает зависимость битов результата от битов исходных данных. Это называется лавинным эффектом. DES спроектирован так, чтобы как можно быстрее добиться зависимости каждого бита шифротекста от каждого бита открытого текста и каждого бита ключа.
П ерестановка с расширением показана на 9-й. Иногда она называется Е-блоком (от expansion). Для каждого 4-битового входного блока первый и четвертый бит представляют собой два бита выходного блока, а второй и третий биты - один бит выходного блока. В 7-й показано, какие позиции результата соответствуют каким позциям исходных данных. Например, бит входного блока в позиции 3 переместится в позицию 4 выходного блока, а бит входного блока в позиции 21 - в позиции 30 и 32 выходного блока.
Подстановка с помощью S-блоков
После объединения сжатого блока с расширенным блоком с помощью XOR над 48-битовым результатом выполняется операция подстановки. Подстановки производятся в восьми блоках подстановки, или S-блоках (от substitution). У каждого S-блока 6-битовый вход и 4-битовый выход, всего используется восемь различных S-блоков. (Для восьми S-блоков DES потребуется 256 байтов памяти.) 48 битов делятся на восемь 6-битовых подблока. Каждый отдельный подблок обрабатывается отдельным S-блоком: первый подблок - S-блоком 1, второй - S-блоком 2, и так далее. См. 8-й. Каждый S-блок представляет собой таблицу из 2 строк и 16 столбцов. Каждый элемент в блоке является 4-битовым числом. По 6 входным битам S-блока определяется, под какими номерами столбцов и строк искать выходное значение. Все восемь S-блоков показаны в 6-й. Хотя выходной блок больше входного, каждый входной блок генерирует уникальный выходной блок.
Входные биты особым образом определяют элемент S-блока. Рассмотрим 6-битовый вход S-блока: b1, b2, b3, b4, b5 и b6. Биты b1 и b6 объединяются, образуя 2-битовое число от 0 до 3, соответствующее строке таблицы. Средние 4 бита, с b2 по b5, объединяются, образуя 4-битовое число от 0 до 15, соответствующее столбцу таблицы. Например, пусть на вход шестого S-блока (т.е., биты функции XOR с 31 по 36) попадает 110011. Первый и последний бит, объединяясь, образуют И, что соответствует строке 3 шестого S-блока. Средние 4 бита образуют 1001, что соответствует столбцу 9 того же S-блока. Элемент S-блока 6, находящийся на пересечении строки 3 и столбца 9, - это 14. (Не забывайте, что строки и столбцы нумеруются с 0, а не с 1.) Вместо 110011 подставляется 1110. Подстановка с помощью S-блоков является ключевым этапом DES. Другие действия алгоритма линейны и легко поддаются анализу. S-блоки нелинейны, и именно они в большей степени, чем все остальное, обеспечивают безопасность DES.
В результате этого этапа подстановки получаются восемь 4-битовых блоков, которые вновь объединяются в единый 32-битовый блок. Этот блок поступает на вход следующего этапа - перестановки с помощью Р-блоков.
Перестановка с помощью Р-блоков
32-битовый выход подстановки с помощью S-блоков, перетасовываются в соответствии с Р-блоком. Эта перестановка перемещает каждый входной бит в другую позицию, ни один бит не используется дважды, и ни один бит не игнорируется. Этот процесс называется прямой перестановкой или просто перестановкой. Позиции, в которые перемещаются биты, показаны в 5-й. Например, бит 21 перемещается в позицию 4, а бит 4 - в позицию 31.
Наконец, результат перестановки с помощью Р-блока объединяется посредством XOR с левой половиной первоначального 64-битового блока. Затем левая и правая половины меняются местами, и начинается следу тощий этап.
Заключительная перестановка
Заключительная перестановка является обратной по отношению к начальной перестановки и описана в 4-й. Обратите внимание, что левая и правая половины не меняются местами после последнего этапа DES, вместо этого объединенный блок R16L16 используется как вход заключительной перестановки. В этом нет ничего особенного, перестановка половинок с последующим циклическим сдвигом привела бы к точно такому же результату. Это сделано для того, чтобы алгоритм можно было использовать как для шифрования, так и для дешифрирования.
Дешифрирование DES
После всех подстановок, перестановок, операций XOR и циклических сдвигов можно подумать, что алгоритм дешифрирования, резко отличаясь от алгоритма шифрования, точно также запутан. Напротив, различные компоненты DES были подобраны так, чтобы выполнялось очень полезное свойство: для шифрования и дешифрирования используется один и тот же алгоритм.
DES позволяет использовать для шифрования или дешифрирования блока одну и ту же функцию. Единственное отличие состоит в том, что ключи должны использоваться в обратном порядке. То есть, если на этапах шифрования использовались ключи К1, К2, К3, ..., К16, то ключами дешифрирования будут К16, К15, К14, ..., К1. Алгоритм, который создает ключ для каждого этапа, также цикличен. Ключ сдвигается направо, а число поз и-ций сдвига равно 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1.
Режимы использования DES
DES может использоваться в четырёх режимах.
Режим электронной кодовой книги (ЕCB — Electronic Code Book): обычное использование DES как блочного шифра. Шифруемый текст разбивается на блоки, при этом, каждый блок шифруется отдельно, не взаимодействуя с другими блоками (см. Рис.7).
Рис.7 Режим электронной кодовой книги — ECB
Режим сцепления блоков (СВС — Cipher Block Chaining) (см. Рис.8). Каждый очередной блок Ci i>=1, перед зашифровыванием складывается по модулю 2 со следующим блоком открытого текста Mi + 1. Вектор C0 — начальный вектор, он меняется ежедневно и хранится в секрете.
Рис.8 Режим сцепления блоков — СВС
Режим обратной связи по шифротексту (CFB — Cipher Feed Back) (см. Рис.9). В режиме СFB вырабатывается блочная «гамма» Z0,Z1,...Zi = DESk(Ci − 1) . Начальный вектор C0 сохраняется в секрете.
Рис.9 Режим обратной связи по шифротексту — CFB
Режим обратной связи по выходу (OFB — Output Feed Back) (см. Рис.10). В режиме OFB вырабатывается блочная «гамма» Z0,Z1,... , i>=1
Рис.10 Режим обратной связи по выходу — OFB
Достоинства и недостатки режимов:
Режим ECB прост в реализации, но возможно проведение криптоанализа по словарю.[источник не указан 369 дней].
В режимах ECB и OFB искажение при передаче одного 64-битового блока шифротекста Ci приводит к искажению после расшифрования только соответствующего открытого блока Mi , поэтому такие режимы используется для передачи по каналам связи с большим числом искажений.
В режимах CBC и CFB искажение при передаче одного блока шифрованного текста Сі приводит к искажению на приёмнике не более двух блоков открытого текста Mi,Mi + 1[источник не указан 369 дней]. Изменение Mi приводит к изменению всех остальных блоковMi + 1,Mi + 2… Это свойство используется для выработки кода аутентификации сообщения.
Криптостойкость алгоритма DES
Нелинейность преобразований в DES средствами только S-блоков, в случае, если они имеют слабину, позволяет осуществлять контроль за шифрованной перепиской. Выбор S-блоков требует соблюдения нескольких условий:
Каждая строка каждого блока должна быть перестановкой множества {0,1,2,……,15}
S-блоки не должны являться линейной или афинной функцией своих аргументов.
Изменение одного бита на входе S-блока должно приводить к изменению по крайней мере двух битов на выходе.
Для каждого S-блока и любого аргумента х значение S(x) и должны различаться по крайней мере двумя битами.
Из-за небольшого числа возможных ключей (всего 256), появляется возможность их полного перебора на быстродействующей вычислительной технике за реальное время. В 1998 году The Electronic Foundation используя специальный компьютер DES-Cracker, удалось взломать DES за 3 дня.
В алгоритме DES существуют слабые и частично-слабые ключи. Слабыми ключами называется ключи k такие что DESk(DESk(x)) = x, x — блок 64 бит. Частично-слабые ключи — пары ключей (k1,k2) такие что DESk1(DESk2(x)) = x
Метод полного поиска требует одну известную пару шифрованного и расшифрованного текста, незначительный объём памяти, и для его выполнения нужны 255 шагов.
Дифференциальный криптоанализ — первую такую атаку на DES заявили Biham и Shamir. Эта атака требует шифрования 247 открытых текстов выбранных нападающим, и для её выполнения нужны 247 шагов. Теоретически являясь точкой разрыва, эта атака непрактична из-за чрезмерных требований к подбору данных и сложности организации атаки по выбранному открытому тексту. Сами авторы этой атаки Biham и Shamir заявили, что считают DES защищенным для такой атаки.
Линейный криптоанализ разработан Matsui. Этот метод позволяет восстановить ключ DES с помощью анализа 243 известных открытых текстов, при этом требуется 243 шагов для выполнения. Первый экспериментальный криптоанализ DES, основанный на открытии Matsui, был успешно выполнен в течение 50 дней на автоматизированных рабочих местах 12 HP 9735.
Для линейной и дифференциальной атак требуется достаточно большой объём памяти для сохранения выбранных (известных) открытых текстов до начала атак.
Увеличение криптостойкости DES
Чтобы увеличивать криптостойкость DES появляются несколько вариантов: double DES (2DES), triple DES (3DES), DESX, G-DES.
Методы 2DES и 3DES основаны на DES, но увеличивают длину ключей (2DES — 112 бит, 3DES — 168 бит) и поэтому увеличивается криптостойкость.
Схема 3DES имеет вид DES(k3,DES(k2,DES(k1,M))), где k1,k2,k3 ключи для каждого шифра DES. Это вариант известен как в ЕЕЕ так как три DES операции являюся шифрованием.
операции используют одинаковый ключ.
Метод DESX создан Рональдом Ривестом и формально продемонстрирована Killian и Rogaway. Этод метод — усиленный вариант DES, поддерживаемый инструментарием RSA Security. DESX отличается от DES тем, что каждый бит входного открытого текста DESX логически суммируется по модулью 2 с 64 битами дополнительного ключа, а затем шифруется по алгоритму DES. Каждый бит результата также логически суммируется по модулью 2 с другими 64 битами ключа. Главной причиной использования DESX является простой в вычислительном смысле способ значительного повысить стойкость DES к атакам полного перебора ключа.
Метод G-DES разработан Schaumuller-Bichl для повышения производительности DES на основе увеличения размером шфрованного блока. Заявлялось, что G-DES защищен так же как и DES. Однако, Biham и Shamir показали, что G-DES с рекомендуемыми параметрами легко взламывается, а при любых изменениях параметров шифр становится ещё менее защищен чем DES.
Ещё другой вариант DES использует независимые суб-ключи. Различно от алгоритма DES, в котором на основе 56-битного секретного ключа пользователя алгоритм DES получает шестнадцать 48-битных суб-ключей для использования в каждом из 16 раундов, в этом варианте использует 768-битного ключа (разделенного на 16 48-битных подключей) вместо 16 зависимых 48-битных ключей, создаваемых по ключевому графику алгоритма DES. Хотя очевидно, что использование независимых суб-ключей значительно усложнит полный поиск ключа, но стойкость к атаке дифференциальным или линейным криптоанализом не намного превысит стойкость обычного DES. По оценке Biham для дифференциального криптоанализа DES с независимыми подключами требуется 261 выбранных открытых текстов, в то время как для линейного криптоанализа требуется 260 известных открытых текстов.
