Информационная безопасность и защита информации Ю. А. Смолий Криптографическая защита информации ЛЕКЦИЯ 6, ЧАСТЬ 1 Криптология, криптография, криптоанализ Криптология - это наука о создании и анализе систем безопасной связи. В сферу криптологии входят: • шифрование передаваемых сообщений и хранимых данных для сохранения их конфиденциальности; • контроль целостности передаваемых сообщений и хранимых данных с целью обнаружения случайных или преднамеренных искажений, то есть защита от модификации информации; • аутентификация (в целях обеспечения юридической значимости документов), включающая: • проверку подлинности передаваемых сообщений, позволяющую обнаруживать различные искажения текстов, • подтверждение авторства сообщений, необходимое для обнаружения фактов отказа от причастности к сообщению его подлинного автора и фактов присвоения авторства сообщения другим субъектом, Криптология, криптография, криптоанализ Составные части криптологии: • Криптография – это наука о методах обеспечения секретности и подлинности при передаче информации по каналам связи, наука о методах защиты информации с использованием шифров. • Криптоанализ – наука о методах раскрытия шифров. Текст Шифр Терминология Основные термины Алфавит – конечное множество используемых для шифрования сообщений знаков. Открытый текст – исходное сообщение, которое необходимо защитить. Шифр – некоторое преобразование информации (сообщения), осуществляемое с целью ее защиты от несанкционированного прочтения и/или изменения. Важным и необходимым свойством преобразований шифра является их обратимость, позволяющая однозначно восстанавливать исходный текст сообщения. Основные термины С каждым преобразованием шифра связано значение некоторого сменного параметра, называемого ключом. Выбор ключа предполагает однозначный выбор одного варианта преобразования из множества возможных с помощью конкретного шифра. Применение преобразований шифра к открытому тексту называется зашифрованием, а результат зашифрования - шифрованным текстом (шифротекстом) или криптограммой. Расшифрование vs. дешифрование Применение к шифротексту обратного преобразования с помощью известного ключа, называется расшифрованием. Действия, связанные с раскрытием шифра при неизвестном ключе и/или неизвестном алгоритме шифрования называют дешифрованием. (атакой на шифр, взломом или вскрытием шифра). Взлом шифров Преобразования шифра должны обеспечивать "нечитаемость" зашифрованного сообщения посторонним (неавторизованным) лицом, причем не только в данный момент, но и после весьма значительных усилий и времени по "взлому" шифра. Стойкость системы шифрования - способность противостоять попыткам криптоаналитика дешифровать перехваченное сообщение. Правило Керкхоффа Надежность системы шифрования не должна основываться на ее секретности. Система должна оставаться надежной даже если все ее компоненты, кроме ключа стали известны атакующему. Иными словами, метод шифрования, кроме секретного ключа, может быть известен криптоаналитику противника, поэтому стойкость шифра должна определяться только стойкостью ключа. Криптоанализ, общие моменты Если ключ шифрования имеет длину n символов, а алфавит, на основе которого составляется ключ, имеет мощность A (т.е. состоит из A символов), то тогда количество различных вариантов ключа равно An. Пример: Длина ключа: 10 символов, Алфавит: русский алфавит (строчные и заглавные) + цифры, Количество ключей: (33+33+10)10 ≈ 6*1010 Криптоанализ, общие моменты Как определяется, что текст, полученный в результате дешифрования, является осмысленным? Проверить его на соответствие правилам грамматики. Детерминированный вариант: проверка мультиграмм на допустимость. Русский язык: недопустимы мультиграммы типа «гласная + ь», «гласная + ъ». Английский язык: после «q» всегда следует «u». Криптоанализ, общие моменты Статистический вариант: определяются вероятности появления в тексте отдельных мультиграмм. Пример – мультиграммы из одного символа (буквы) высокой частоты для основных европейских языков. Язык Частоты (в %) использования букв в тексте Русский О 11.0 И 8,9 Е 8,3 А 7,9 Н 6,9 Т 6,0 Английский E 12,9 T 9,7 A 8,0 I 7,8 N 7,5 R 7,0 Немецкий E 19,2 N 10,2 I 8,2 S 7,1 R 7,0 T 5,9 Французский E 17,8 S 8,2 A 7,7 N 7,6 T 7,3 I 7,2 Испанский E 14,2 A 12,9 O 8,8 S 7,6 I 7,0 T 6,9 Итальянский I 12,0 E 11,6 A 11,1 O 8,9 N 7,7 T 7,1 Основные виды криптоаналитических атак 1. Криптоанализ на основе шифротекста предполагает наличие шифротекстов одного или нескольких сообщений, зашифрованных с помощью одного и того же метода шифрования. Такая ситуация соответствует модели внешнего нарушителя, имеющего доступ к каналу связи, по которому передаются сообщения. Задача в этом случае – раскрыть исходные тексты возможно большего числа сообщений, а еще лучше, определить криптоалгоритм и ключ (ключи) шифрования. Частный случай такой атаки – криптоанализ методом полного перебора возможных ключей (брутфорс), требующий наличия занчительных вычислительных ресурсов Основные виды криптоаналитических атак 2. Криптоанализ на основе известного открытого текста предполагает, что криптоаналитику известен не только шифротекст, но и некоторая доля исходного текста, а в частном случае и полное соответствие между шифротекстом и исходным текстом. Атака такого рода возможна при дешифровании стандартных документов, когда определенные блоки данных повторяются и известны. Трудоемкость дешифрования в этом случае существенно ниже. Основные виды криптоаналитических атак 3. Криптоанализ на основе выбранного открытого текста имеет место в тех случаях, когда криптоаналитик может по желанию ввести в шифрующее устройство выбранные им открытые тексты, получив их в зашифрованном виде. Эта ситуация соответствует модели внутреннего нарушителя, имеющего доступ к шифру (но не к ключам!). На практике она возникает, когда в атаку на шифр вовлекаются лица, которые не знают секретного ключа, но в силу служебного положения имеют доступ к шифровальной аппаратуре. Этот вид криптоанализа наиболее мощен, поскольку криптоаналитик может подбирать такие исходные тексты, которые дадут больше информации о ключе. Схема классической криптосистемы Криптоаналитик (нарушитель) Ключ Ke Источник сообщения Незащищенный канал связи Зашифрование М ЕКе(М) Ключ Kd С Зашифрование (encryption): C = ЕКе(М) М – исходное сообщение; С – криптограмма (шифротекст); Ke – ключ, используемый при зашифровании сообщения М. Получатель сообщения Расшифрование С М DКd(C) Расшифрование (decryption): M= DКd(C) Kd – ключ, используемый при расшифровании. Виды криптосистем По ключам: • Симметричные - когда ключи шифрования и расшифрования совпадают, то есть Ke=Kd или, по крайней мере, знание ключа Ke позволяет легко вычислить ключ Kd. • Асимметричные - для зашифрования и расшифрования используются разные ключи, причем знание одного ключа не дает практической возможности определить другой. Поэтому, если получатель сообщений сохраняет ключ расшифрования Kd в секрете (secret key, секретный или тайный ключ), то ключ зашифрования Ke может быть сделан общедоступным (public key, публичный или открытый ключ). Другие виды криптосистем По количеству преобразуемых символов: • Поточные (обработка 1 символа за раз), где результат зависит от позиции обрабатываемого символа в тексте. • Блочные – обработка блоков фиксированной длины. Симметричные криптосистемы Схема симметричной криптосистемы Криптоаналитик (нарушитель) Ключ K Источник сообщения Незащищенный канал связи Зашифрование М ЕК(М) Ключ K С Зашифрование (encryption): C = ЕК(М) М – исходное сообщение; С – криптограмма (шифротекст); K – ключ Получатель сообщения Расшифрование С М DК(C) Расшифрование (decryption): M= DК(C) K – ключ Недостатки симметричных криптосистем 1. Затруднительна передача секретного ключа по ненадежному каналу. 2. Обеспечение секретности ключа – проблема ОБЕИХ сторон. 3. Для поддержания стойкости сообщений необходимо регулярно менять ключи. Если они берутся из некоторого хранилища ключей, то оно должно иметь достаточный объем для обеспечения «неповторяемости» ключей. Шифр подстановки (простой замены) • Шифр Цезаря абвгдеёжзийклмнопрстуфхцчшщъыьэюя бв гдеёжзийклмнопрстуфхцчшщъыьэюяа вгдеёжзийклмнопрстуфхцчшщъыьэюяаб гдеёжзийклмнопрстуфхцчшщъыьэюяабв (1) Г мётф спеймбтэ жмпшлб. Шифры транспозиции (перестановки) • См. лабораторную работу №1. • Шифр скитала Каеарф зиипопчрвтееаосонгкбироре к а е а р ф _ з и и п о п ч р в т е е а о с о н г к б и р о р е 1 3 4 5 8 9 18 19 20 21 23 26 2 6 7 10 11 12 13 14 15 16 17 22 24 25 27 28 29 30 31 32 Шифры транспозиции (перестановки) • См. лабораторную работу №1. • Шифр скитала к р и п т о г р а ф и ч е с к о п р е о б р о в а н и е е а з Каеарф зиипопчрвтееаосонгкбироре Шифр четырех квадратов Исходная пара букв – желтый и розовый блоки. ь ц у к е е р ф ы в ф и в а п к о с ч я я ч с м и у л х а б н г ш б з ц д г м и р о л д х ь н ш а з Результирующая – голубой и зеленый. с ф и г ы к б в ш ь Блок - ишфь ц б н ч я е я ч д ы з х ь е п ц р ь н ф м р к ш д о а с г л у о в л а з у и м х Одноразовая система шифрования (Шифр Вернама, одноразовые блокноты) Одноразовая система шифрования преобразует исходный текст (X1, X2, …, Xn) в шифротекст (Y1, Y2,…, Yn) с использованием случайной ключевой последовательности (K1, K2,…,Kn) посредством подстановки, задаваемой преобразованием: Yi = Xi + Ki (mod N) где N – длина используемого алфавита, iÎ[0,N–1]; Yi – i-й символ шифротекста (код символа); Xi – i-й символ открытого текста (код символа); Ki – i-й символ ключа (ключевое слово, фраза или др.). Пример одноразового шифрования Исходный текст Ключ Стойкость шифра Исходный текст Ключ При случайном выборе ключа, разным открытым текстам может быть сопоставлен один и тот же шифротекст и наоборот. Одноразовые блокноты Гаммирование Гамма – псевдослучайная последовательность. Может быть той же длины, что и исходный текст или может повторяться (снижает защищенность). ⊕ (XOR) = поразрядное суммирование по модулю два или исключающее ИЛИ. ⊕ 0 1 0 0 1 1 1 0 Yi = Xi ⊕ Ki Xi = Yi ⊕ Ki Xi – i-ый бит исходного сообщения Yi – i-ый бит шифрограммы Ki – i-ый бит гаммы Хэш-функция или функция свертки Используется для аутентификации сообщений. Обладает свойствами: 1. Хэш-функция Н должна применяться к блоку данных любой длины. 2. Хэш-функция Н создает выход фиксированной длины. 3. Н (М) относительно легко (за полиномиальное время) вычисляется для любого значения М. 4. Для любого данного значения хэш-кода h вычислительно невозможно найти M такое, что Н (M) = h. 5. Для любого данного х вычислительно невозможно найти y такой, что H(y) = H(x). 6. Вычислительно невозможно найти произвольную пару (х, y) такую, что H(y) = H(x). Принцип работы хэш-функции Множество исходных сообщений Х Множество значений хэшфункции H(Х) Значение хэш-функции также может называться хэш-кодом, проверочной суммой, цифровым отпечатком Коллизии, криптографические хэш-функции Пример: Н(x) = x mod 19 Коллизии – пары чисел, имеющие одинаковое значение хэш-функции (например, [y, y+19]) Криптографические хэш-функции: • для заданного значения хеш-функции m должно быть практически невозможно найти блок данных X , для которого H(X)=m. • cтойкость к коллизиям первого рода: для заданного сообщения M должно быть практически невозможно подобрать другое сообщение N, для которого H(N)=H(M). • Стойкость к коллизиям второго рода: должно быть практически невозможно подобрать пару сообщений M и M1, имеющих одинаковый хэш H(M)=H(M1). • Дополнительно: незначительное изменение аргумента должно приводить к существенным изменениям значения хэш-функции. Популярные хэш-функции • CRC32 • AICH • MD4 • WHIRLPOOL • MD5 • GOST (ГОСТ Р 34.11-94) • SHA1 • HAS-160 • Tiger • RIPEMD-160 • TTH • EDON-R • BTIH • Snefru • EDonkey 2000 См. http://ehash.iaik.tugraz.at/wiki/The_Hash_Function_Zoo