Криптография. Основные понятия. Основные понятия. Сообщение и шифрование. Проверка подлинности, целостность и не отрицание
Скачать 316.32 Kb.
|
Основные понятия. Сообщение и шифрование. Проверка подлинности, целостность и не отрицание авторства. Сообщение называется открытым текстом. Изменение вида сообщения так, чтобы спрятать его суть называется шифрованием. Шифрованное сообщение называется шифротекстом. Процесс преобразования шифротекста в открытый текст называется дешифрированием. Пример. Обозначим открытый текст как М (от message, сообщение), или Р (от plaintext, открытый текст). Это может быть поток битов, текстовый файл, битовое изображение, оцифрованный звук, цифровое видеоизображение... Для компьютера М – это просто двоичные данные. (Во всех следующих главах этой книги рассматриваются только двоичные данные и компьютерная криптография.) Открытый текст может быть создан для хранения или передачи. В любом случае, М – это сообщение, которое должно быть зашифровано. Обозначим шифротекст как С (от ciphertext). Это тоже двоичные данные, иногда того же размера, что и М, иногда больше. (Если шифрование сопровождается сжатием, С может быть меньше чем М. Однако, само шифрование не обеспечивает сжатие информации.) Функция шифрования Е действует на М, создавая С. Или, в математической записи: Е(М) = С В обратном процессе функция дешифрирования D действует на С, восстанавливая М: D(C) = М Поскольку смыслом шифрования и последующего дешифрирования сообщения является восстановление первоначального открытого текста, должно выполняться следующее равенство: D(E(M)) = М Проверка подлинности. Получатель сообщения может проверить его источник, злоумышленник не сможет замаскироваться под кого-либо. Целостность. Получатель сообщения может проверить, не было ли сообщение изменено в процессе доставки, злоумышленник не сможет подменить правильное сообщение ложным. Не отрицание авторства. Отправитель не сможет ложно отрицать отправку сообщения. Алгоритмы и ключи. Криптографический алгоритм. Пространство ключей. Криптографический алгоритм, также называемый шифром, представляет собой математическую функцию, используемую для шифрования и дешифрирования. (Обычно это две связанных функции: одна для шифрования, а другая для дешифрирования.) Если безопасность алгоритма основана на сохранении самого алгоритма в тайне, это ограниченный алгоритм. Ограниченные алгоритмы представляют только исторический интерес, но они совершенно не соответствуют сегодняшним стандартам. Большая или изменяющаяся группа пользователей не может использовать такие алгоритмы, так как всякий раз, когда пользователь покидает группу, ее члены должны переходить на другой алгоритм. Алгоритм должен быть заменен и если кто-нибудь извне случайно узнает секрет. Множество возможных ключей называют пространством ключей. И шифрование, и дешифрирование этот ключ (то есть, они зависят от ключа, что обозначается индексом К), и теперь эти функции выглядят как: ЕК(М)=С DK(С)=M При этом выполняется следующее равенство: DK(EK(M))=M Для некоторых алгоритмов при шифровании и дешифрировании используются различные ключи. То есть ключ шифрования (К1) отличается от соответствующего ключа дешифрирования (К2). В этом случае: ЕК1(М)=С DK2(С)=M DK2(EK1(M))=M Безопасность этих алгоритмов полностью основана на ключах, а не на деталях алгоритмов. Это значит, что алгоритм может быть опубликован и проанализирован. Продукты, использующие этот алгоритм, могут широко тиражироваться. Не имеет значения, что злоумышленнику известен ваш алгоритм, если ему не известен конкретный ключ, то он не сможет прочесть ваши сообщения. Симметричные алгоритмы. Потоковые алгоритмы. Блочные алгоритмы. Существует два основных типа алгоритмов, основанных на ключах: симметричные и с открытым ключом. Симметричные алгоритмы, иногда называемые условными алгоритмами, представляют собой алгоритмы, в которых ключ шифрования может быть рассчитан по ключу дешифрирования и наоборот. В большинстве симметричных алгоритмов кличи шифрования и дешифрирования одни и те же. Эти алгоритмы требуют, чтобы отправитель и получатель согласовали используемый ключ перед началом безопасной передачи сообщений. Безопасность симметричного алгоритма определяется ключом, раскрытие ключа означает, что кто угодно сможет шифровать и дешифрировать сообщения. Пока передаваемые сообщения должны быть тайными, ключ должен храниться в секрете. Шифрование и дешифрирование с использованием симметричного алгоритма обозначается как: ЕК(М)=С DK(C)=M Симметричные алгоритмы делятся на две категории. Одни алгоритмы обрабатывают открытый текст побитно (иногда побайтно), они называются потоковыми алгоритмами или потоковыми шифрами. Другие работают с группами битов открытого текста. Группы битов называются блоками, а алгоритмы – блочными алгоритмами или блочными шифрами. Для алгоритмов, используемых в компьютерных модемах, типичный размер блока составляет 64 бита – достаточно большое значение, чтобы помешать анализу, и достаточно небольшое и удобное для работы. Алгоритмы с открытым ключом. Алгоритмы с открытым ключом (называемые асимметричными алгоритмами) разработаны таким образом, что ключ, используемый для шифрования, отличается от ключа дешифрирования. Более того, ключ дешифрирования не может быть рассчитан по ключу шифрования. Алгоритмы называются "с открытым ключом", потому что ключ шифрования может быть открытым: кто угодно может использовать ключ шифрования для шифрования сообщения, но только конкретный человек с соответствующим ключом дешифрирования может расшифровать сообщение. В этих системах ключ шифрования часто называется открытым ключом, а ключ дешифрирования – закрытым. Закрытый ключ иногда называется секретным ключом. Шифрование с открытым ключом К обозначается как: ЕК(М)=С Хотя открытый и закрытый ключи различны, дешифрирование с соответствующим закрытым ключом обозначается как: DK(С)=M Иногда сообщения шифруются закрытым ключом, а дешифрируются открытым, что используется для цифровой подписи. Несмотря на возможную путаницу эти операции, соответственно, обозначаются как: ЕК(М)=С DK(C)=M Криптоанализ Криптоанализ – это наука получения открытого текста, не имея ключа. Успешно проведенный криптоанализ может раскрыть открытый текст или ключ. Он также может обнаружить слабые места в криптосистемах, что в конце концов приведет к предыдущему результату. (Раскрытие ключа не криптологическими способами называется компрометацией). Попытка криптоанализа называется вскрытием. Существует четыре основных типа криптоаналитического вскрытия: 1. Вскрытие с использованием только шифротекста. У криптоаналитика есть шифротексты нескольких сообщений, зашифрованных одним и тем же алгоритмом шифрования. Задача криптоаналитика состоит в раскрытии открытого текста как можно большего числа сообщений или, что лучше, получении ключа (ключей), использованного для шифрования сообщений, для дешифрирования других сообщений, зашифрованных теми же ключами. 2. Вскрытие с использованием открытого текста. У криптоаналитика есть доступ не только к шифротекстам нескольких сообщений, но и к открытому тексту этих сообщений. Его задача состоит в получении ключа (или ключей), использованного для шифрования сообщений, для дешифрирования других сообщений, зашифрованных тем же ключом (ключами). 3. Вскрытие с использованием выбранного открытого текста. У криптоаналитика не только естьдоступ к шифротекстам и открытым текстам нескольких сообщений, но и возможность выбирать о т-крытый текст для шифрования. Это предоставляет больше вариантов чем вскрытие с использованиемоткрытого текста, так как криптоаналитик может выбирать шифруемые блоки открытого текста, чтоможет дать больше информации о ключе. Его задача состоит в получении ключа (или ключей), использованного для шифрования сообщений, или алгоритма, позволяющего дешифрировать новые сообщения, зашифрованные тем же ключом (или ключами). 4. Адаптивное вскрытие с использованием открытого текста. Это частный случай вскрытия с использованием выбранного открытого текста. Криптоаналитик не только может выбирать шифруемыйтекст, но также может строить свой последующий выбор на базе полученных результатовшифрования. При вскрытии с использованием выбранного открытого текста криптоаналитик мог выбрать для шифрования только один большой блок открытого текста, при адаптивном вскрытии с использованием выбранного открытого текста он может выбрать меньший блок открытого текста, затемвыбрать следующий блок, используя результаты первого выбора и так далее. Существует по крайней мере еще три типа криптоаналитической вскрытия: 1. Вскрытие с использованием выбранного шифротекста. Криптоаналитик может выбрать различные шифротексты для дешифрирования и имеет доступ к дешифрированным открытым текстам. Например, у криптоаналитика есть доступ к "черному ящику", который выполняет автоматическое дешифрирование. Его задача состоит в получении ключа. Такой тип вскрытия обычно применим к алгоритмам с открытым ключом. Вскрытие с использование выбранного шифротекста иногда также эффективно против симметричных алгоритмов. (Иногда вскрытие с использованием выбранного открытого текста и вскрытие с использованием выбранного шифротекста вместе называют вскрытием с использованием выбранного текста.) 2. Вскрытие с использованием выбранного ключа. Такой тип вскрытия означает не то, что криптоаналитик может выбирать ключ, а что у него есть некоторая информация о связи между различными ключами. Это странный, запутанный и не очень практичный тип вскрытия. 3. Бандитский криптоанализ. Криптоаналитик угрожает, шантажирует или пытает кого-нибудь, пока не получит ключ. Взяточничество иногда называется вскрытием с покупкой ключа. Это очень мощные способы вскрытия, часто являющиеся наилучшим путем взломать алгоритм. Безопасность алгоритмов Различные алгоритмы предоставляют различные степени безопасности в зависимости от того, насколько трудно взломать алгоритм. Ларе Кнудсен (Lars Knudsen) разбил вскрытия алгоритмов по следующим категориям, приведенным в порядке убывания значимости: · Полное вскрытие. Криптоаналитик получил ключ, К, такой, что DK(C) — Р. · Глобальная дедукция. Криптоаналитик получил альтернативный алгоритм, А, эквивалентный DK(C) без знания К. · Местная (или локальная) дедукция. Криптоаналитик получил открытый текст для перехваченного шифротекста. · Информационная дедукция. Криптоаналитик получил некоторую информацию о ключе или открытом тексте. Такой информацией могут быть несколько бит ключа, сведения о форме открытого текста и так далее. Сложность вскрытия можно измерить различными способами: · Сложность данных. Объем данных, используемых на входе операции вскрытия. · Сложность обработки. Время, нужное для проведения вскрытия. Часто называется коэффициентом работы или фактором трудозатрат. · Требования к памяти. Объем памяти, необходимый для вскрытия. В качестве эмпирического метода сложность вскрытия определяется по максимальному из этих трех коэффициентов. Стеганография. Подстановочные и перестановочные шифры. Стеганография служит для передачи секретов в других сообщениях, так что спрятано само существование секрета. Как правило отправитель пишет какое-нибудь неприметное сообщение, а затем прячет секретное сообщение на том же листе бумаги. Исторические приемы включают невидимые чернила, невидимые простому глазу пометки у букв, плохо заметные отличия в написании букв, пометки карандашом машинописных символов, решетки, покрывающие большую часть сообщения кроме нескольких символов и тому подобное. Подстановочным шифром называется шифр, который каждый символ открытого текста в шифротексте заменяет другим символом. Получатель инвертирует подстановку шифротекста, восстанавливая открытый текст. В классической криптографии существует четыре типа подстановочных шифров: · Простой подстановочный шифр или моноалфавитный шифр – это шифр, который каждый символоткрытого текста заменяет соответствующим символом шифротекста. Простыми подстановочными шифрами являются криптограммы в газетах. · Однозвучный подстановочный шифр похож на простую подстановочную криптосистему за исключением того, что один символ открытого текста отображается на несколько символов шифротекста. Например, "А" может соответствовать 5, 13, 25 или 56, "В" - 7, 19, 31 или 42 и так далее. · Полиграмный подстановочный шифр – это шифр, который блоки символов шифрует по группам. Например, "ABA" может соответствовать "RTQ", "ABB" может соответствовать "SLL" и так далее. · Полиалфавитный подстановочный шифр состоит из нескольких простых подстановочных шифров. Например, могут быть использованы пять различных простых подстановочных фильтров; каждый символ открытого текста заменяется с использованием одного конкретного шифра. В перестановочном шифре меняется не открытый текст, а порядок символов. В простом столбцовом перестановочном шифре открытый текст пишется горизонтально на разграфленном листе бумаги фиксированной ширины, а шифротекст считывается по вертикали. Дешифрирование представляет собой запись шифротекста вертикально на листе разграфленной бумаги фиксированной ширины и затем считывание открытого текста горизонтально. |