Криптоанализ - это наука получения открытого текста из шифртекста без знания секретного ключа. Успешно проведенный криптоанализ может раскрыть открытый текст или ключ, он также может обнаружить слабые места в криптосистемах, что, в конце концов, приведет к предыдущему результату. Раскрытие ключа без выполнения криптоанализа называется компрометацией ключа. Раскрытие ключа без выполнения криптоанализа называется компрометацией ключа [16].
Основное предположение криптоанализа, впервые сформулированное в девятнадцатом веке Огюстом Керкгоффс, состоит в том, что безопасность полностью определяется ключом. Шифрующая, так и расшифровывающая функции общеизвестны, и тайна сообщения, при известном шифртексте, зависит только от секретности ключа.
Существует четыре основных типа криптоаналитического вскрытия. Для каждого из них, предполагается, что криптоаналитик обладает всей полнотой знаний об используемом алгоритме шифрования:
1. Вскрытие с использованием только шифртекста. У криптоаналитика есть шифртексты нескольких сообщений, зашифрованных одним и тем же алгоритмом шифрования. Задача криптоаналитика состоит в раскрытии открытого текста как можно большего числа сообщений или, что лучше, получении ключа (ключей), использованного для шифрования сообщений, для дешифрировании других сообщений, зашифрованных теми же ключами.
Дано
Получить: Либо , , . . . ; ; либо алгоритм, как получать из = ().
2. Вскрытие с использованием открытого текста. У криптоаналитика есть доступ не только к шифртекстам нескольких сообщений, но и к открытому тексту этих сообщений. Его задача состоит в получении ключа (или ключей), использованного для шифрования сообщений, для дешифрирования других сообщений, зашифрованных тем же ключом (ключами) [16].
Дано=(),, C2=(), . . ., . , . ,= ()
Получить: Либо ; либо алгоритм, как получать
из = ().
3. Вскрытие с использованием выбранного открытого текста. Предполагается, что у криптоаналитика есть не только доступ к шифртекстам и открытым текстам нескольких сообщений, но и возможность выбирать открытый текст для шифрования. Это расширяет способы криптоанализа по сравнению со случаем известного открытого текста, так как криптоаналитик может выбирать шифруемые блоки открытого текста и получать соответствующие им блоки шифртекста. Выполняя такой выбор с учетом особенностей алгоритма шифрования, можно получить больше информации о ключе. Задача криптоаналитика состоит в получении ключа (или ключей), использованного для шифрования сообщений, или алгоритма, позволяющего дешифрировать новые сообщения, зашифрованные тем же ключом (или ключами).
Дано=(),, C2=(), . . ., . , . ,= ()
Получить: Либо ; либо алгоритм, как получать
из = ().
4. Адаптивное вскрытие с использованием открытого текста. Это частный случай вскрытия с использованием выбранного открытого текста. Криптоаналитик не только может многократно выбирать шифруемый текст, но также может строить свой последующий выбор на базе полученных результатов шифрования предыдущих выбранных текстов. При вскрытии с использованием выбранного открытого текста криптоаналитик мог выбрать для шифрования только один большой блок открытого текста, при адаптивном вскрытии с использованием выбранного открытого текста он может выбрать меньший блок открытого текста, затем выбрать следующий блок, используя результаты первого выбора и так далее [16].
5. Вскрытие с использованием выбранного шифртекста. Криптоаналитик может выбрать различные шифртексты для дешифрирования и имеет доступ к дешифрированным открытым текстам. Например, у криптоаналитика есть доступ к "черному ящику", который выполняет автоматическое дешифрирование. Его задача состоит в получении ключа.
Дано =(),, =(), . . .,,,= ()
Получить:
Такой тип вскрытия обычно применим к алгоритмам с открытым ключом. Вскрытие с использование выбранного шифртекста иногда также эффективно против симметричных алгоритмов. Иногда вскрытие с использованием выбранного открытого текста и вскрытие с использованием выбранного шифртекста вместе называют вскрытием с использованием выбранного текста.
6. Вскрытие с использованием выбранного ключа. Такой тип вскрытия означает то, что криптоаналитик может выбирать ключ и что у него есть некоторая информация о связи между различными ключами.
7. Бандитский криптоанализ. Криптоаналитик угрожает, шантажирует или пытает кого-нибудь, пока не получит ключ. Взяточничество иногда называется вскрытием с покупкой ключа. Это очень мощные способы вскрытия, часто являющиеся наилучшим путем взломать алгоритм.
Вскрытия с известным открытым текстом и с использованием выбранного открытого текста встречаются чаще, чем можно подумать. Многие сообщения имеют стандартные начало и окончание, что может быть известно криптоаналитику. Особенно уязвим шифрованный исходный код из-за частого использования ключевых слов: #define, struct, else, return. Те же проблемы и у шифрованного исполнимого кода: функции, циклические структуры и так далее. Вскрытия на основе известного открытого текста (и вскрытия на основе выбранного шифртекста) успешно использовались для чтения немецких и японских секретных сообщений, передаваемых в виде криптограмм по радиоканалу, в ходе Второй мировой войны [16].
Лучшими алгоритмами являются те, которые были разработаны открыто и анализировались длительное время лучшими криптоаналитиками.
В данном учебном пособии будут подробно рассмотрены протоколы аутентификации пользователей. Аутентификация является процедурой проверки подлинности и имеет огромное значение для информационных систем в настоящее время [20].
2. Аутентификация пользователей в информационных системах
алгоритм информационный криптоанализ шифрование
2.1 Простая аутентификация по паролю
В современных информационно-телекоммуникационных системах процедуры аутентификации удаленных пользователей весьма широко применяются. Можно выделить следующие типы протоколов аутентификации пользователей:
- протоколы простой аутентификации на основе паролей (наиболее уязвимый тип при взаимодействии через канал связи, поскольку пароли представляются в открытом виде без их преобразования, но несмотря на это парольная аутентификация достаточно распространена в Интернет, поскольку дает удобный механизм разграничения доступа к удаленным ресурсам без использования защищенных каналов связи и без привлечения доверенных сторон);
- протоколы строгой аутентификации (обеспечивает аутентификацию удаленных пользователей без явного разглашения секретного ключа);
- протоколы с нулевым разглашением (протоколы данного типа основанные на предварительном распределении открытых ключей и их аутентификации; каждый из взаимодействующих субъектов убеждается в подлинности другого субъекта с использованием открытого ключа последнего, причем после процедуры аутентификации никакой из субъектов не получает новой информации о секретном ключе субъекта, подлинность которого подтверждена в ходе осуществления протокола; до выполнения протокола общедоступна информация о секретном ключе, которая состоит в том, что секретный ключ связан с открытым ключом, однако его вычисление невыполнимо за обозримое время) [18].
Частным вариантом использования процедуры простой аутентификации является парольная защита входа в компьютерную систему. Например, пользователь формирует некоторую случайную информацию и, сохраняя ее в секрете, использует как пароль. Пароль в явном виде не хранится в памяти ЭВМ (или другого устройства, применяемого для выполнения аутентификации). Это требование направлено на то, чтобы потенциальный внутренний нарушитель не имел возможности извлечь из машинной памяти чужой пароль и присвоить себе полномочия другого пользователя. Для того, чтобы система защиты могла идентифицировать легальных (санкционированных) пользователей, в памяти ЭВМ хранятся образы их паролей, вычисленные по специальному криптографическому алгоритму, реализующему, так называемую, одностороннюю функцию y = где криптографический алгоритм - односторонняя функция. Основное требование к односторонней функции состоит в том, чтобы сложность вычисления значения функции по аргументу (по входу) была низкой, а сложно ость определения значения аргумента, для которого значение функции (значение выхода) было бы равно случайно выбранному значению, была высокой (неосуществимой за обозримое время при использовании всех вычислительных ресурсов доступных предполагаемому нарушителю).
Аутентификация пользователя на рабочей станции может быть выполнена следующим образом:
Запрос на ввод идентификатора со стороны системы защиты.
Ввод пользователем своего идентификатора (имени) NAME.
Запрос на ввод пароля со стороны системы защиты.
Ввод пользователем пароля .
Вычисление системой защиты значения односторонней функции ,соответствующей значению аргумента
Сравнение системой защиты значения со значением образа пароля, соответствующего пользователю с идентификатором NAME.
Если , то система защиты предоставляет пользователю права доступа (полномочия), соответствующие идентификатору NAME. В противном случае в журнале учета работы пользователей регистрируется событие попытки несанкционированного доступа. Для того, чтобы выдать себя за санкционированного пользователя нарушитель должен ввести правильный пароль. Зная образ вычислительно невозможно определить пароль . Если в системе защиты предусмотрены механизмы противодействия перехвату пароля с помощью программных или аппаратных закладок, а также через побочные электромагнитные излучения и наводки (ПЭМИН), акустический и оптический канал, то данный способ аутентификации пользователей обеспечивает высокую надежность защиты от узурпирования чужих полномочий. Рассмотренный пример относится к аутентификации пользователей на рабочих станциях, т. е. к задаче защиты входа в ЭВМ [13].
2.2 Протокол рукопожатия
Данный протокол относится к протоколам строгой аутентификации. В действительности «протокол рукопожатия» - это общее название ряда интерактивных протоколов строгой взаимной аутентификации двух пользователей, в которых используется механизм запроса?ответа, с помощью которого каждая из взаимодействующих сторон убеждается, что другая сторона знает некоторый секрет K. Схемы аутентификации такого типа называются протоколами взаимной аутентификации, или протоколами рукопожатия. В качестве секрета может служить разделяемый сторонами общий секретный ключ или личный секретный ключ, связанный с открытым ключом стороны, подлинность которой проверяется. В первом случае ключ доставляется от одной стороны к другой по защищенному каналу или через доверенное лицо (для этого можно также выполнить протокол открытого согласования ключа, но это требует использования открытых ключей, однако их можно сразу использовать в протоколе рукопожатия). Во втором случае открытые ключи друг друга стороны берут из справочника открытых ключей или цифровых сертификатов, подписанных удостоверяющим центром.
Важным моментом является то, что запрос должен представлять собой случайное сообщение. Это предотвращает использование нарушителем (с целью выдать себя за законного абонента) копий старых сообщений, переданных между пользователями в процессе предыдущей процедуры аутентификации [15].
3. Протоколы с нулевым разглашением секрета
3.1 Толкование понятия «нулевое разглашение секрета»
При изучении протоколов с нулевыми знаниями важным методическим аспектом является разъяснение термина «нулевое разглашение секрета». С понятием нулевого разглашения секрета можно связать понятие стойкости протокола к атакам различного типа. Стойкость криптографических схем (алгоритмов и протоколов) является одним из центральных понятий в криптографии. При этом для симметричных криптосистем различают условную (практическую) и безусловную (теоретическую) стойкость. Практическая стойкость связана с тем, что имеющиеся в настоящее время вычислительные ресурсы (уровень развития вычислительной техники) не позволяют за обозримое время взломать криптосистему, тогда как это принципиально возможно. Теоретическая стойкость предполагает стойкость криптосистемы при наличии у атакующего бесконечных вычислительных ресурсов. По своей природе двухключевые криптосхема не могут обладать теоретической стойкостью и относятся к классу практически стойких криптосхем. Для двухключевых криптосхем используется понятие доказуемой стойкости. Двухключевая криптосхема называется доказуемо стойкой, если можно формально доказать, что взлом криптосхемы не проще, чем решение вычислительно трудной задачи, лежащей в ее основе [16].
К доказуемо стойким криптосхемам можно отнести и протоколы с нулевым разглашением секрета, в основе которых лежат вычислительно трудные задачи, используемые для вычисления открытого ключа по секретному ключу. Благодаря практической невыполнимости обратной задачи - вычисления секретного ключа по открытому, открытый ключ может быть сделан общедоступным параметром протокола. Таким образом, у потенциального нарушителя имеется информация, дающая ему принципиальную возможность вычислить секретный ключ. Этой информацией является открытый ключ, но вычислить из него секретный ключ - нереализуемая задача. Поэтому, несмотря на теоретическую полноту этой информации, нарушитель не имеет практической возможности ею воспользоваться. Если в ходе протокола аутентификации к указанной информации не добавляется какая-либо новая информация, то говорят о нулевой утечке информации о секретном ключе или нулевом разглашении секрета.