пипп. Криптология Криптоанализ Криптографические примитивы
Скачать 82.5 Kb.
|
Совместимая криптосистема шифрования ПЛАН: Криптология Криптоанализ Криптографические примитивы Пример шифра Криптология — наука о защите информации – делится на две части: криптографию и криптоанализ. Криптография – это часть криптологии, связанная с проектированием секретных систем, наука о том как сделать информацию конфиденциальной, избирательно доступной (шифрование)как обеспечить целостность данных как обеспечить аутентификацию (достоверную идентификацию) субъекта: аутентичность информационного источника объекта: пользователя, процесса как обеспечить доказательность действия (неотказуемость) как обеспечить контроль доступа (авторизацию). Криптоанализ – это часть криптологии, связанная со взломом секретных систем. Основные задачи криптографии конфиденциальность данных: цель: сделать данные «нечитаемыми» для непосвященных метод: шифрование целостность и имитостойкость данных цель: исключить возможность умышленного и неумышленного изменения (искажения) данных неуполномоченными лицами метод: хэш, имитовставка, электронно-цифровая подпись Аутентификация субъекта – доказательство того, что субъект действия является именно тем, за кого себя выдает Аутентификация источника данных – доказательство того, что данные изданы определенным субъектом и являются подлинными (т.е. никем другим не искажены; в этом смысле – аутентификация источника данных автоматически обеспечивает их целостность) Обеспечение неотказуемости – невозможности для субъекта, выполнившего некоторое действие, впоследствии отказаться от факта выполнения этого действия Криптографические примитивы Симметричное шифрование. Заключается в том, что обе стороны-участники обмена данными имеют абсолютно одинаковые ключи для шифрования и расшифровки данных. Данный способ осуществляет преобразование, позволяющее предотвратить просмотр информации третьей стороной. Асимметричное шифрование. Предполагает использовать в паре два разных ключа — открытый и секретный. В асимметричном шифровании ключи работают в паре — если данные шифруются открытым ключом, то расшифровать их можно только соответствующим секретным ключом и наоборот — если данные шифруются секретным ключом, то расшифровать их можно только соответствующим открытым ключом. Использовать открытый ключ из одной пары и секретный с другой — невозможно. Каждая пара асимметричных ключей связана математическими зависимостями. Данный способ также нацелен на преобразование информации от просмотра третьей стороной. Пример шифра Теперь, когда даны основные определения, рассмотрим одну из простейших систем шифрования, которая носит имя "шифр Юлия Цезаря". Предполагается, что знаменитый римский император и полководец, живший в 1 веке до нашей эры, использовал этот шифр в своей переписке. Шифр Цезаря применительно к русскому языку пример 1.1 состоит в следующем. Каждая буква сообщения заменяется на другую, которая в русском алфавите отстоит от исходной на три позиции дальше. Таким образом, буква A заменяется на Г , Б на Д и так далее вплоть до буквы Ь , которая заменялась на Я , затем Э на A , Ю на Б и, наконец, Я на В . АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ Листинг 1.1. Исходный алфавит Так, например, слово ЗАМЕНА после шифрования методом Цезаря превратится в КГПЗРГ . Это не очень сложный метод, тем более что при шифровании сообщений из нескольких слов сразу становится понятным, сколько слов содержал исходный текст. Кроме того, можно получить некоторую информацию по анализу повторов букв в зашифрованном сообщении. Например, в зашифрованном КГПЗРГ одна из букв повторяется дважды. Тем не менее, Цезарь вошел в историю криптографии, а "шифр Юлия Цезаря", как его до сих пор называют, служит примером одной из первых систем шифрования. Для расшифрования сообщения КГПЗРГ необходимо знать только сам алгоритм шифрования. Любой человек, знающий способ шифрования, легко может расшифровать секретное сообщение. Таким образом, ключом в данном методе является сам алгоритм. Каким образом можно усовершенствовать шифр Цезаря? Можно было бы попытаться расширить алфавит с 33 до 36 символов и более за счет включения знаков препинания и пробелов. Это увеличение алфавита замаскировало бы длину каждого отдельного слова. В криптографии принято считать, что противник может знать использованный алгоритм шифрования, характер передаваемых сообщений и перехваченный шифротекст, но не знает секретный ключ. Как уже упоминалось выше, это называется принципом Керкхоффса. Иногда это правило кажется "перестраховкой", но такая "перестраховка" отнюдь не лишняя, если, например, передаются данные оборонного или государственного характера. Усовершенствуем шифр Цезаря с учетом правила Керкхоффса. Предположим, что буквы сдвигаются не на три знака вправо, а на n (0 Каким же образом может действовать в том случае злоумышленник, чтобы узнать содержание сообщения? Пусть, например, перехвачено секретное сообщение ЧСЮЭЮЪ. Противнику известно, что ключ (параметр сдвига n) может принимать значения от 1 до 32. Пытаясь найти значение секретного ключа, мы будем проводить атаку по шифротексту. Рассмотрим способ последовательного перебора всех возможных ключей (это так называемый метод "грубой силы"). Запишем на 32 строчках все варианты, которые получаются сдвигом каждой буквы на 1, 2, 3, ... , 32 позиции соответственно. Эту операцию можно проводить вручную, а можно составить несложную программу, которая запишет все варианты перебора параметра n в файл. Одна из этих 32 строк будет содержать исходное сообщение ( таблица 1).
Мы видим, что единственное слово, имеющее смысл, – это ЗВОНОК. Это слово располагается на 17 месте. Следовательно, если шифрованный текст сдвинуть на 17 позиций вперед получится открытый текст. Это означает, что для получения шифрованного текста открытый текст нужно сдвинуть на (33-17)=16 позиций. Таким образом, получили, что при шифровании ключ n=16. Так как ни при каком другом сдвиге не получилось осмысленного сообщения, то, скорее всего, мы правильно дешифровали это сообщение. Такое допущение о единственности решения вполне обоснованно, когда исходное сообщение составлено на одном из естественных языков (в рассмотренном примере – русском) и содержит более пяти-шести знаков. Но если сообщение очень короткое, возможных решений может быть несколько. Единственное решение также очень трудно найти, если исходное сообщение, состоит, например, из цифр. Так, например, пусть исходный алфавит состоит из арабских цифр, то есть имеет вид 0 1 2 3 4 5 6 7 8 9. Один из абонентов желает переслать другому секретный код замка, состоящий из пяти цифр и равный 12345. Отправитель и получатель заранее договорились о том, что ключ шифрования n будет равен 3. Отправитель шифрует выбранным ключом исходное сообщение 12345, получает 45678 и переправляет полученное значение своему абоненту. Возможно, противник перехватит криптограмму и попытается вскрыть ее, используя, как и раньше, метод последовательного перебора. Так как исходный алфавит состоял из 10 символов, то значение ключа может лежать в диапазоне от 1 до 9. Выпишем, как и раньше все варианты, которые получаются сдвигом каждого знака перехваченного сообщения на 1, 2, 3, ... , 9 позиций соответственно ( таблица 2).
Видно, что все полученные варианты равнозначны и злоумышленник не может понять, какая именно комбинация истинна. Анализируя шифротекст, он не может найти значения секретного ключа. Конечно, один из приведенных в таблице вариантов подойдет к кодовому замку, но в столь простом методе шифрования нельзя рассчитывать на большую секретность. В первом примере сообщение — текст на русском языке, поэтому оно подчиняется многочисленным правилам, различные буквы и их сочетания имеют различные вероятности и, в частности, многие наборы букв вообще запрещены. (Это свойство называется избыточностью текста). Поэтому-то и удалось легко подобрать ключ и дешифровать сообщение, т.е. избыточность позволила "взломать" шифр. В противоположность этому, во втором примере все комбинации цифр допустимы. "Язык" кодового замка не содержит избыточности. Поэтому даже простой шифр, примененный к сообщениям этого языка, становится невскрываемым в случае атаки только по шифротексту. Если же мы имеем возможность проводить атаку и по открытому тексту, то есть имеем пары "открытое сообщение" – "зашифрованное сообщение", то раскрытие становится совершенно простым как в случае использования символов-букв, так и в случае символов-цифр. Приведенные простые примеры показывают, что вероятность успешного криптоанализа зависит от многих факторов: от системы шифрования, от длины перехваченного сообщения, от языка и алфавита исходного сообщения. В последующих лекциях постараемся подробнее рассмотреть все эти факторы. Контрольные вопросы: Назовите проблемы, при решении которых могут использоваться криптографические методы. В чем отличие криптографии от стеганографии? Какие задачи решает современная криптография? Сформулируйте требования к криптографическим системам защиты информации. Дайте определения понятиям: алфавит, криптограмма, криптографическая система, криптографический протокол, символ, шифр, электронная (цифровая) подпись. В чем заключается правило шифрования методом Цезаря? Почему невозможно вскрыть криптограмму, содержащую код для кодового замка? |