
- •Значение средств криптографической защиты.
- •3. Шифрование в каналах связи компьютерной сети.
- •4. Достоинства блочных шифров.
- •Рекомендации Шеннона для шифрования двоичной последовательности некой фиксированной длины n.
- •Методы анализа шифров (универсальные, специальные, частные)
- •Типовые элементы современных шифров: Перестановка размера n, q - ичная подстановка размера n, Усеченная q - ичная подстановка размера n X m , q- ичная n- разрядная память объема m
- •Примеры современных шифров: des ( схема, математические операции);Режимы работы des.
- •Примеры современных шифров: модификации des; проблема последнего блока des – способы решения; криптоанализ des.
- •Примеры современных шифров. Гост 28147-89 (Стандарт ссср и рф, 1989 год), отличия от des , алгоритм. Режимы работы алгоритма гост.
- •Параметры
- •Расширение ключа
- •Шифрование
- •26. Использование маркантов или производных ключей
- •1. Ключ ka для шифрования сообщений входящих к абоненту а должен изготовить сам абонент а. Он же изготавливает ключ ka-1 - для расшифрования данных сообщений.
- •2. Ключ ka рассылается всем желающим, отправлять сообщения абоненту a, ключ ka-1 держится в секрете.
- •3. Ключ ka-1 не восстанавливается по ключу ka.
- •51. Методы анализа криптопротоколов
- •52. Классификация протоколов аутентификации. Типы аутентификации
- •Основные атаки на протоколы аутентификации. Типы атак и пути их обхождения.
- •Простая аутентификация.
- •Использование односторонних функций для проверки паролей
- •Строгая аутентификация.
- •Строгая аутентификация, основанная на симметричных алгоритмах. Протоколы с симметричными алгоритмами шифрования.
- •Общая структура доказательств с нулевым разглашением
- •75.Криптосистемы на эллиптических кривых.
1. Ключ ka для шифрования сообщений входящих к абоненту а должен изготовить сам абонент а. Он же изготавливает ключ ka-1 - для расшифрования данных сообщений.
2. Ключ ka рассылается всем желающим, отправлять сообщения абоненту a, ключ ka-1 держится в секрете.
3. Ключ ka-1 не восстанавливается по ключу ka.
Алгоритм Диффи-Хелмана (1976) использует функцию дискретного возведения в степень и используется для открытого распределения ключей по открытому каналу связи.
Первая публикация данного алгоритма открытого ключа появилась в статье Диффи и Хеллмана, в которой вводились основные понятия криптографии с открытым ключом и в общих чертах упоминался алгоритм обмена ключа Диффи-Хеллмана.
Цель алгоритма состоит в том, чтобы два участника могли безопасно обменяться ключом, который в дальнейшем может использоваться в каком-либо алгоритме симметричного шифрования. Сам алгоритм Диффи-Хеллмана может применяться только для обмена ключами.
Алгоритм основан на трудности вычислений дискретных логарифмов. Дискретный логарифм определяется следующим образом. Вводится понятие примитивного корня простого числа Q как числа, чьи степени создают все целые от 1 до Q – 1. Это означает, что если А является примитивным корнем простого числа Q, тогда числа
A mod Q, A2 mod ……AQ-1 mod Q
являются различными и состоят из целых от 1 до Q – 1 с некоторыми перестановками. В этом случае для любого целого B < Q и примитивного корня A простого числа Q можно найти единственную экспоненту Х, такую, что
Y =AX mod Q ,где 0≤ X ≤ (Q-1).
Экспонента X называется дискретным логарифмом, или индексом Y, по основанию A mod Q. Это обозначается как
indA,Q(Y)
Теперь опишем алгоритм обмена ключей Диффи-Хеллмана.
-
Общеизвестные элементы
Q
Простое число
A
A < Q и A является примитивным корнем Q
-
Создание пары ключей пользователем I
Выбор случайного числа X i (закрытый ключ)
Xi<Q
Вычисление числа Y i (открытый ключ)
Yi=AXimod Q
Создание открытого ключа пользователем J
Выбор случайного числа X j (закрытый ключ)
X j< Q
Вычисление случайного числа Y j (открытый ключ)
Yj=A Ximod Q
-
Создание общего секретного ключа пользователем I
K= (Yi)Ximod Q
-
Создание общего секретного ключа пользователем J
K=(Yj)Xjmod Q
Предполагается, что существуют два известных всем числа: простое число Q и целое A, которое является примитивным корнем Q. Теперь предположим, что пользователи I и J хотят обменяться ключом для алгоритма симметричного шифрования. Пользователь I выбирает случайное число Xi< Q и вычисляет Y i=AXi mod Q. Аналогично пользователь J независимо выбирает случайное целое число Xj<Q и вычисляет Y i=AXj mod Q. Каждая сторона держит значение Х в секрете и делает значение Y доступным для другой стороны. Теперь пользователь I вычисляет ключ как K=(Yi)Xi mod Q, и пользователь J вычисляет ключ как K= (Yj)Xj mod Q. В результате по правилам модульной арифметики оба получат одно и то же значение:
K= (Yj)Xi mod Q= (AXj mod Q)Xi mod Q = (A Xj)Xi mod Q = A XjXi mod Q =
(A Xi)Xj mod Q= ( A Xi mod Q)Xj mod Q = ( Yi)Xj mod Q.
Таким образом, две стороны обменялись секретным ключом. Так как Xi и Xj являются закрытыми, противник может получить только следующие значения: Q, A, Yi и Yj. Для вычисления ключа атакующий должен взломать дискретный логарифм, т. е. вычислить
Xj = ind a,q(Yj)
29. Описание системы с открытыми ключами
Метод
достижения одновременно аутентичности
и целостности при распределении
открытых ключей заключается в использовании
сертификатов. Система, основанная
на сертификатах, предполагает, что
имеется центральный
орган (ЦО), как и в случае распределения
секретных ключей. Далее предполагается,
что каждый пользователь может осуществлять
безопасное взаимодействие с ЦО. Для
этого требуется, чтобы у каждого
пользователя был открытый ключ ЦО
–
Тогда
каждый пользователь А
может
зарегистрировать в ЦО свой открытый
ключ ЕА.
Поскольку ЕД
является
открытым,
это можно сделать по почте, по открытому
каналу электросвязи и т.п.
Обычно при регистрации в ЦО А будет следовать определенной ау-тентификационной процедуре. Альтернативным вариантом может быть обработка регистрации системой, имеющей древовидную структуру: ЦО выдает сертификаты местным представителям, которые в дальнейшем действуют в качестве посредников в процессе регистрации пользователя на более низких уровнях иерархии.
В любом случае, в ответ А получает сертификат, подписанный ЦО и содержащий ЕА, т.е. ЦО формирует сообщение М, содержащее ЕА, идентификационную информацию для А (IА), период действия сертификата и т.п. Затем ЦО вычисляет CERTА = DЦО(М), который и становится сертификатом A. CERTA делается общедоступным документом, который содержит ЕА и одновременно аутентифицирует его, поскольку сертификат подписан ЦО. Сертификаты могут распространяться ЦО, пользователями или использоваться в иерархической системе. Включение срока действия является обобщением временного штампа, что обеспечивает защиту от использования скомпрометированных ключей.
Однако, проблема устаревших данных не может быть решена только с помощью временных штампов, поскольку сертификат может стать недействительным до истечения срока его действия вследствие компрометации или по административным причинам. Поэтому, если сертификаты хранятся у пользователей (а не выдаются каждый раз ЦО при их использовании), ЦО должен время от времени публиковать списки аннулированных сертификатов.
Некоторые свойства рассмотренных схем могут быть объединены в подход, известный под названием "телефонный справочник", с использованием электронного эквивалента, такого как гибкий диск, содержащий сертификаты. Это облегчит использование, поскольку пользователь сможет быстро связаться с другим, очень быстро получая доступ к сертификату последнего.
30. Система электронной подписи
Электро́ннаяпо́дпись (ЭП) — реквизит электронного документа, позволяющий установить отсутствие искажения информации в электронном документе с момента формирования ЭП и проверить принадлежность подписи владельцу сертификата ключа ЭП. Значение реквизита получается в результате криптографического преобразования информации с использованием закрытого ключа ЭП.
Электронная подпись предназначена для идентификации лица, подписавшего электронный документ[1]. Кроме этого, использование электронной подписи позволяет осуществить:
Контроль целостности передаваемого документа: при любом случайном или преднамеренном изменении документа подпись станет недействительной, потому что вычислена она на основании исходного состояния документа и соответствует лишь ему.
Защиту от изменений (подделки) документа: гарантия выявления подделки при контроле целостности делает подделывание нецелесообразным в большинстве случаев.
Невозможность отказа от авторства. Так как создать корректную подпись можно, лишь зная закрытый ключ, а он должен быть известен только владельцу, то владелец не может отказаться от своей подписи под документом.
Доказательное подтверждение авторства документа: Так как создать корректную подпись можно, лишь зная закрытый ключ, а он должен быть известен только владельцу, то владелец пары ключей может доказать своё авторство подписи под документом. В зависимости от деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые изменения», «метка времени» и т. д.
Все эти свойства ЭП позволяют использовать её для следующих целей[2]:
Декларирование товаров и услуг (таможенные декларации)
Регистрация сделок по объектам недвижимости
Использование в банковских системах
Электронная торговля и госзаказы
Контроль исполнения государственного бюджета
В системах обращения к органам власти
Для обязательной отчетности перед государственными учреждениями
Организация юридически значимого электронного документооборота
В расчетных и трейдинговых системах
31. Открытое шифрование и электронная подпись
1. Абонент А изготавливает пару алгоритмов преобразования открытого текста - алгоритм шифрования E и алгоритм расшифрования D со свойством - для любого открытого текста M выполняется соотношение D(E(M)) = M.
2. Алгоритм E рассылается всем желающим, отправлять сообщения абоненту A, алгоритм D держится в секрете.
Алгоритм D не восстанавливается по алгоритму E.
Данная система называется системой открытого шифрования.
Для формирования системы ЭЦП можно использовать криптографическую систему Ривеста-Шамира-Адлемана.
Пользователь А вырабатывает цифровую подпись предназначенного для пользователя В сообщения М с помощью следующего преобразования:
SIG(m)=Eeb,nb(Eda,na(M))
При этом он использует: свое секретное преобразование; открытое преобразование Eeb,nb пользователя В. Eda,na
Затем он передает пользователю В пару{M,SIG(M)}.
Пользователь В может верифицировать это подписанное сообщение сначала при помощи своего секретного преобразованияс целью получения Edb,nb
Eda,na(M)=Edb,nb(SIG(M))=Edb,nb(Eeb,nb(Eda,na(M)))
и затем открытого Eea,na пользователя А для получения сообщения М:
M= Eea,na(Eda,na(M))
Затем пользователь В производит сравнение полученного сообщения М с тем, которое он получил в результате проверки цифровой подписи, и принимает решение о подлинности/подложности полученного сообщения.
В рассмотренном примере проверить подлинность ЭЦП может только пользователь В. Если же требуется обеспечение возможности верификации ЭЦП произвольным пользователем (например, при циркулярной рассылке документа), то алгоритм выработки ЭЦП упрощается, и подпись вырабатывается по формуле SIG(M)= Eda,na(M), а пользователи осуществляют верификацию с использованием открытого преобразования отправителя (пользователя А): M= Eea,na(SIG(M))= Eea,na(Eda,na(M))
Недостатком подобного подхода является то, что производительность асимметричной криптосистемы может оказаться недостаточной для удовлетворения предъявляемым требованиям.
Возможным решением является применение специальной эффективно вычисляемой функции, называемой хэш-функцией или функцией хэширования. Входом этой функции является сообщение, а выходом – слово фиксированной длины, много меньшей, чем длина исходного сообщения. ЭЦП вырабатывается по той же схеме, но при этом используется не само сообщение, а значение хэш-функции от него.
32. Oсновные результаты статьи Диффи и Хеллмана
Алгоритм Диффи-Хелмана (1976) использует функцию дискретного возведения в степень и используется для открытого распределения ключей по открытому каналу связи.
Первая публикация данного алгоритма открытого ключа появилась в статье Диффи и Хеллмана, в которой вводились основные понятия криптографии с открытым ключом и в общих чертах упоминался алгоритм обмена ключа Диффи-Хеллмана.
Цель алгоритма состоит в том, чтобы два участника могли безопасно обменяться ключом, который в дальнейшем может использоваться в каком-либо алгоритме симметричного шифрования. Сам алгоритм Диффи-Хеллмана может применяться только для обмена ключами.
Алгоритм основан на трудности вычислений дискретных логарифмов.
Безопасность обмена ключа в алгоритме Диффи-Хеллмана вытекает из того факта, что, хотя относительно легко вычислить экспоненты по модулю простого числа, очень трудно вычислить дискретные логарифмы. Для больших простых чисел задача считается неразрешимой.
Следует
заметить, что данный алгоритм уязвим
для атак типа «man-in-the-middle». Если противник
может осуществить активную атаку, т.е.
имеет возможность не только перехватывать
сообщения, но и заменять их другими, он
может перехватить открытые ключи
участников Yi
и Y j,
создать свою пару открытого и закрытого
ключа
и послать каждому из участников свой
открытый ключ. После этого каждый
участник вычислит ключ, который будет
общим с противником, а не с другим
участником. Если нет контроля целостности,
то участники не смогут обнаружить
подобную подмену.
33. Однонаправленные функции, построение однонаправленных функций с секретами.
В основе идей, изложенных в статье Уитфилда Диффи и Мартина Хеллмана лежало понятие однонаправленной функции.
Пусть X, Y - произвольные равномощные множества, F - биективная функция, отображающая X в Y. Обозначим через Q(F) - сложность вычисления значения F(x) для произвольного xÎX, через Q(F-1) - сложность вычисления по произвольному yÎY значения x, такого, что F(x)=y (сложность вычисления понимается в стандартном смысле теории сложности).
В данных терминах будем говорить, что функция F является однонаправленной, если Q(F-1) много больше Q(F). Как видно, данное определение не является достаточно строгим. Под термином «много больше» можно подразумевать весьма разные понятия, например то, что вычисление F имеет полиномиальную сложность, а F-1- экспоненциальную.
Для того, чтобы под понятием однонаправленная функция понимался вполне конкретный класс объектов считают, что под термином «много больше», понимается следующее:
1. Сложность вычисления F такова, что алгоритм ее вычисления реализуем на современной технике и выдает ответ за приемлемое время
2. Сложность вычисления F-1 такова, что алгоритм ее вычисления либо не реализуем на современной технике, либо не дает ответ за приемлемое время.
Что считать приемлемым временем следует из практических соображений - вычисление F не должно замедлять скорости обработки информации, а сложность вычисления F-1 должна быть столь велика, чтобы не допускать обращения функции F злоумышленником.
На момент опубликования статьи авторы не имели конкретной системы ЭЦП и по этой причине их система ОРК повисла в воздухе, так как в ней не решался вопрос аутентификации отправителя сообщения. Такое решение появилось значительно позднее - в 1984 году. Пока же авторы предложили еще одну абстрактную схему с использованием так называемых однонаправленных функций с секретом (trapdoor one-way function). Строгое определения однонаправленной функции с секретом дать весьма затруднительно.
Попробуем сформулировать его следующим образом.
Однонаправленной функцией с секретом S называется биективная функция F отображающая произвольное множество X в множество Y, зависящая от параметров T1,...,TL и обладающая следующим свойствами:
1. Существует некоторая функция S, зависящая от параметров T1,...,TL
2. По виду функции F значение функции S для конкретных параметров T1,...,TL не восстанавливается
3. Сложность вычисления значения F-1(y) " yÎY при знании значения S(T1,...,TL) не превосходит сложности вычисления прямого преобразования F
4. Сложность вычисления преобразования F-1 без знания значения S(T1,...,TL) много больше сложности вычисления прямого преобразования F.
Иными словами, без знания дополнительной информации о функции F она является однонаправленной, при наличии некоторой дополнительной информации (которую нельзя получить по функции F) обратное преобразование эффективно вычисляемо.
Для иллюстрации данного понятия можно привести следующий пример. Известно, что не существует общего метода решения уравнений четвертой степени над полем действительных чисел.
34. Система RSA. Использование алгоритма Евклида для расчета секретного ключа d.
Алгоритм RSA стоит у истоков асимметричной криптографии. Он был предложен тремя исседователями-математиками Рональдом Ривестом (R. Rivest), Ади Шамиром (A. Shamir) и Леонардом Адлеманом (L. Adleman). Эта асимметричная криптосистема в настоящее время является широко распространенной во всем мире. В основе алгоритма RSA лежат идеи алгоритма Диффи-Хеллмана.
Первым этапом любого асимметричного алгоритма шифрования является создание пары ключей: открытого и закрытого (с последующим свободным распространением открытого ключа).
Для алгоритма RSA этап создания ключей состоит из следующих операций:
Выбираются два простых числа p и q;
Вычисляется их произведение n = p*q;
Выбирается произвольное число e (e<n), такое, что НОД ( e, (p-1)(q-1))=1
, т. е. должно быть взаимно простым с числом (p-1)(q-1);
методом Евклида решается в целых числах уравнение
e*d+ (p-1)(q-1)*y=1. Здесь неизвестными являются переменные d и y – метод Евклида как раз и находит множество пар (d, y), каждая из которых является решением уравнения в целых числах;
два числа (e, n) – публикуются как открытый ключ;
число d хранится в строжайшем секрете – это и есть закрытый ключ, который позволит читать все послания, зашифрованные с помощью пары чисел (e, n).
Собственно шифрование с помощью этих чисел производится следующим образом:
отправитель разбивает свое сообщение на блоки, равные k= [log2(n)] бит, где квадратные скобки обозначают взятие целой части от дробного числа. Подобный блок может быть интерпретирован как число из диапазона (0; 2i-1);;
для каждого такого числа (назовем его mi) вычисляется выражение ci=((mi)e) mod n
35. Алгоритма цифровой подписи Эль Гамаля, преимущества по сравнению с методом RSA, недостатки.
Система Эль-Гамаля – это криптосистема с открытым ключом, осно¬ванная на проблеме логарифма, Система включает как алгоритм шифрова¬ния, так и алгоритм цифровой подписи. В отличие от RSA метод Эль-Гамаля основан на проблеме дискретного логарифма.
По сравнению с методом RSA данный метод имеет целый ряд преимуществ:
1. При заданном уровне стойкости алгоритма цифровой подписи целые числа, с которыми приходится проводить вычисления, имеют запись на 25% короче, что соответственно уменьшает сложность вычислений почти в 2 раза и позволяет заметно сократить объем используемой памяти;
2. При выборе параметров достаточно проверить всего два достаточно легко проверяемых условия;
Алгоритм не запатентован, и не требует специальной лицензии на его реализацию. Кроме того данный алгоритм подписи, не допускает его использования в качестве алгоритма шифрования (в отличии от RSA в котором шифрование и подпись суть одно и то же), а следовательно не подпадает ни под какие экспортные ограничения из США.
Множество параметров системы включает простое число p и целое число g, степени которого по модулю р порождают большое число элемен¬тов Zp. У пользователя А есть секретный ключ а и открытый ключ у, где у = ga(mod p). Предположим, что пользователь В желает послать сообщение т пользователю А. Сначала В выбирает случайное число k, меньшее р, и вы¬числяет y1=gk(mod p), y2=m*(yk(mod p)),
где * обозначает побитовое "исключающее ИЛИ". В посылает А пару (у1, у2).
После получения шифрованного текста пользователь А вычисляет m=(y1a mod p)*y2.
Известен вариант этой схемы, когда операция ⊕ заменяется на умно¬жение по модулю р. Это удобнее в том смысле, что в первом случае текст (или значеникции) необходимо разбивать на блоки той же длины, что и число yk(mod p) Во втором случае этого не требуется и можно обрабатывать блоки текста заранее заданной фиксированной длины (меньшей, чем длина числа р). Уравнение расшифрования в этом случае будет таким: m=y2/y1k mod p.
Однако, при всех перечисленных выше преимуществах алгоритм Эль Гамаля имеет по сравнению с RSA и некоторые недостатки.
В частности, при том же уровне стойкости он оперирует с целыми числами на 25% короче, чем RSA, но длина подписи получается в 1,5 раза больше, что увеличивает время ее вычисления и ужесточает требования к надежности канала связ
36. Проблема дискретного логарифмирования, аутентификация
Система шифрования была представлена Мишелем Абдаллой, Михиром Беллэром и Филлипом Рогэвэем в рамках европейского проекта NESSIE (New European Schemes for Signatures, Integrity and Encryption). Она столь же эффективна, что и система Эль-Гамаля, но обладает дополнительными свойствами безопасности.
Данная криптосистема реализуема на основе любой циклической группы, для которой может быть сформулирована проблема Диффи-Хеллмана, например в {Zp*} или в группе точек на эллиптической кривой.Система строится из криптографических примитивов низкого уровня:групповой операции, симметричного шифра, функции хэширования и алгоритма вычисления кода аутентификации сообщения-имитовставки (MAC). Стойкость доказывается на основе предположения о сложности решения соответствующей проблемы Диффи-Хеллмана и предположения о стойкости входящих в схему симметричных примитивов.Опишем криптографические примитивы, входящие в схему.
Циклическая группа G = {g}. Далее будем использовать мультипликативную запись групповой операции. Алгоритмы, реализующие эту операцию, будут работать с представлениями элементов группы в виде битовых строк фиксированной длины gLen € N. Способ кодирования G →{0,1}gLen не фиксируется и может быть выбран из соображений эффективности.
Код аутентификации сообщения позволяет пользователям, обладающим общим секретным ключом, выработать битовую строку для аутентификации и проверки целостности данных Пусть Msg = {0,1}* – пространство сообщений, mKey = {0,1}mLen – пространство ключей для вычисления MAC для некоторого mLen € N, Tag = {0,1}tLen – включающее множество всех возможных значений MAC для некоторого tLen €N. В этих обозначениях код аутентификации сообщений представляет собой пару алгоритмов MAC =
{MAC.gen, MAC.ver}. Алгоритм генерации MAC определяется как отображение MAC.gen(k,x):mKey×Msg→Tag и может быть вероятностным. Алгоритм верификации MAC является отображением со свойством MAC.ver(k,x,MAC.gen(k,x))=1.
В качестве MAC можно использовать, например, блочный шифр с достаточной длиной блока и ключа в режиме сцепления блоков шифрованноготекста.
Симметричный шифр позволяет пользователям, обладающим общим секретным ключом, обеспечить секретность. Пусть Msg, как и ранее, пространство сообщений, eKey = {0,1}eLen – пространство ключей для некоторого eLen € N, Ctext = {0,1}* – включающее множество всех возможных значений шифрованного текста и Coins = {0,1}∞ – множество строк бесконечной длины. В этих обозначениях шифр представляет собой пару алгоритмов SYM = {SYM.enc, SYM.dec}. Алгоритм зашифрования определяется как отображение
SYM.enc(k,x,r):eKey ×Msg×Coins→Ctext , алгоритм расшифрования является отображением
SYM.dec(k,y):eKey ×Ctext→MsgUu{BAD}, где значение BAD выдается, если шифртекст у не является результатом зашифрования никакого открытого текста.
Асимметричный шифр. Пусть Msg, Ctext, Coins определены как и ранее, PK G{0,1}* , SK G{0,1}* – множества открытых и секретных ключей.Асимметричный шифр определяется как тройка алгоритмов
ASYM ={ASYM.enc, ASYM.dec, ASYM.Key}. Алгоритм зашифрования является отображением
ASYM.enc(pk,x,r):PK × Msg×Coins→Ctext ,а расшифрования: ASYM.enc(sk,y):SK ×Ctext→MsgUu{BAD}.
Алгоритм выработки ключа в качестве аргумента берет строку r €Coins и выдает пару ключей
pk, sk € PK × SK . При этом должно выполняться следующее свойство:
@ (pk,sk): r’€ Coins: (pk,sk)= ASYM.key (r’), @ r €Coins
@x €Msg ASYM.dec( sk, ASYM.enc( pk, x, r))=.
Функция хэширования является отображением следующего вида: H :{0,1)2gLen →{0,1)mLen+eLen .
Теперь можно описать криптографические примитивы, непосредственно составляющие рассматриваемую криптографическую систему. Графически процесс зашифрования представлен на рис. 3.2.
37. Система открытого шифрования «Рюкзак»
Задача о ранце в криптографии (англ. Knapsack problem) — это задача, на основе которой американские криптографы Ральф Меркл (англ.) и Мартин Хеллман разработали первый алгоритм шифрования с открытым ключом. Он носит название криптосистема Меркла-Хеллмана. Для шифрования сообщений использовалось решение задачи о рюкзаке, как известно являющейся NP-сложной. Потому, как считалось, она могла обеспечивать криптостойкость системы. На данный момент создано множество рюкзачных криптосистем. Однако практически все существующие на сегодняшний день взломаны или признаны потенциально небезопасными.
Задача
о рюкзаке звучит так: задан
набор
из
различных
положительный целых чисел. Пусть есть
число
так
же целое и положительное. Задачей
является нахождение такого набора
,
чтобы в сумме они давали ровно
.
Ясно, что решение этой задачи существует
не всегда.
Согласно определению систем с открытым ключом, для успешного шифрования/расшифровки нужно иметь два ключа. Законный получатель сообщения знает секретный ключ A, а отправитель владеет лишь открытым ключом B. Как же помешать злоумышленнику дешифровать сообщение в случае если ему стал известен открытый ключ? Ответ прост, открытый ключ должен получаться из секретного ключа при помощи какого-либо преобразования f, обладающего следующими двумя свойствами[16]:
Легко вычислить
, зная
Определение
, зная
, вероятно, трудновыполнимая задача.
В качестве трудновыполнимых задач обычно рассматриваются NP-полные задачи, поэтому задача о ранце подходит для построения систем на открытом ключе.
Сообщение шифруется как решение набора задач о ранце[2].
Def.Рюкзачным вектором назовём упорядоченный набор из n предметов[17].
Для
шифрования открытого
текста в
двоичном представлении его разбивают
на блоки длины
(например,
соответствует
5-ти предметам в рюкзаке). Считается, что
единица указывает на наличие предмета
в рюкзаке, а ноль на его отсутствие.
Шифровать можно двумя способами:
1)
Шифр сообщения получается возведением
элементов рюкзачного вектора в степень
соответствующих им бит шифруемого
сообщения и дальнейшим перемножением
результатов, то есть если
,
а сообщение
,
то шифром будет число
.
Такой способ называют мультипликативным[5].
2)
Шифр сообщения получается путем умножения
элементов рюкзачного вектора на
соответствующий им бит шифруемого
сообщения и дальнейшим сложением
результатов, то есть если
,
а сообщение
,
то шифром будет число
.
Такой способ называют аддитивным[5].
Безопасность
рюкзачных систем
Для
небольших рюкзачных векторов, задачу
о ранце легко решить даже вручную.
Реальный рюкзак должен содержать большое
число элементов. Вскрытие такого рюкзака
при помощи грубой силы, т.е перебором,
будет трудной (невозможной) задачей.
Однако рюкзачные системы не являются
безопасными для криптоанализа .
Шамир и Циппел (англ. Zippel)
обнаружили, что зная числа
(«секретную
лазейку»)
можно восстановили сверхвозрастающий
вектор
по
нормальному открытому вектору
[3].
Важно то, что числа
(«секретная
пара») не обязательно должны быть теми
же, что использовались при создании
системы легальным пользователем.
Достаточно найти любую пару
,
такую что
даст
нам сверхрастущий вектор
38. Система открытого шифрования RSA, атаки на RSA.
В настоящее время наиболее развитым методом криптографической защиты информации с известным ключом является RSA, названный так по начальным буквам фамилий ее изобретателей (Rivest, Shamir и Adleman) и представляющую собой криптосистему, стойкость которой основана на сложности решения задачи разложения числа на простые сомножители..
Под простым числом будем понимать такое число, которое делится только на единицу и на само себя. Взаимно простыми числами будем называть такие числа, которые не имеют ни одного общего делителя, кроме единицы.
Под результатом операции i mod j будем считать остаток от целочисленного деления i на j. Чтобы использовать алгоритм RSA, надо сначала сгенерировать открытый и секретный ключи, выполнив следующие шаги:
выберем два очень больших простых числа p и q;
определим n как результат умножения p на q (n = p Ч q);
выберем большое случайное число, которое назовем d (оно должно быть взаимно простым с m результатом умножения (р – 1) × (q – 1));
определим такое число e, для которого является истинным следующее соотношение: (e Ч d) mod (m) =1 или e = (1 mod (m))/d.
Открытым ключом будут числа e и n, а секретным ключом – числа d и n.
Теперь, чтобы зашифровать данные по известному ключу {e, n}, необходимо сделать следующее:
разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа М(i) = 0, 1, …, n – 1;
зашифровать текст, рассматриваемый как последовательность чисел М(i) по формуле С(i) = (М(i)e) mod n.
Чтобы расшифровать данные, используя секретный ключ {d, n}, необходимо выполнить следующие вычисления: М(i) = (С(i)d) mod n. В результате получится множество чисел М(i), которые представляют собой исходный текст.
Криптостойкость алгоритма RSA основывается на проблеме факторизации больших простых чисел. Действительно, если злоумышленнику удастся разложить число n на простые множители p и q, то для него не составит труда вычислить (n), а затем и определить секретный ключ пользователя. Однако нахождение секретного ключа RSA не эквивалентно проблеме факторизации. Это означает, что T(RSA)<=T(факторизации), где T(RSA) – трудоемкость определения секретного ключа RSA, а T(факторизации) – трудоемкость факторизации числа n. То есть, могут быть найдены эффективные алгоритмы определения секретного ключа алгоритма RSA, причем проблема факторизации при этом не будет разрешена.
Если сообщение невелико, то злоумышленник может попытаться подобрать открытый текст путем перебора всех возможных вариантов и шифрования их на открытом ключе абонента e до тех пор, пока не будет получен перехваченный шифртекст c.
Схема шифрования RSA несостоятельна при использовании абонентами общих модулей n. Допустим, что имеются 2 абонета A и В с открытыми ключами (e1,n) и (e2,n). Центр (например, общий сервер) желает послать обоим абонетам одно и то же сообщение m. Он получает me1=c1(mod n) и me2=c2(mod n) и посылает c1 и c2 абонентам А и В соответственно. Положим, что противник перехватывает эти сообщения. Затем, если (e1,e2)=1, то с помощью расширенного алгоритма Евклида можно найти такие k1 и k2, для которых e1k1+e2k2=1. И, соответственно, me1k1me2k2=m. Найдя такие k1 и k2 (это можно сделать, ведь открытые ключи противнику известны), противник вычислит собщение: (c1)k1(c2)k2 = m.
39. Система электронной подписи Эль Гамаля (EGSA - ElGamal Signature Algorithm)
Очень часто бывает желательно, чтобы электронная цифровая подпись была разной, даже если дважды подписывается одно и то же сообщение. Для этого в процесс выработки ЭЦП необходимо внести элемент "случайности". Конкретный способ был предложен Эль-Гамалем аналогично тому, как это делается в системе шифрования, носящей его имя.
Выбирается большое простое число р и целое число g, являющееся примитивным элементом в Zp. Эти числа публикуются. Затем выбирается секретное число х и вычисляется открытый ключ для проверки подписи y=gx(mod p)
Далее для подписи сообщения М вычисляется его хэш-функция т = h(M). Выбирается случайное целое k:1<k<(p-1), взаимно простое с р–1, и вычисляется r=gk(mod p). После этого с помощью расширенного алгоритма Евклида решается относительно s уравнение m=xr+ks(mod(p-1)). Подпись образует пара чисел (r,s). После выработки подписи значение k уничтожается.
Получатель подписанного сообщения вычисляет хэш-функцию сообщения m=h(M) и проверяет выполнение равенства yrrs=gxrgks=gxr+ks=gm(mod p). Корректность этого уравнения очевидна.
40. Система открытого шифрования Эль Гамаля
Одновременно с описанием системы ЭЦП Эль Гамаль предложил к использованию систему открытого шифрования, так же основанную на задаче дискретного логарифмирования.
Пусть, как и выше задано простое число P, основание A, секретный ключ расшифрования x и открытый ключ шифрования y=AX.
Для шифрования сообщения M, проводится следующая процедура:
Выбирается случайное число k, (k,P-1)=1
Вычисляется G=AK mod P
Вычисляется H=yK M mod P
Пара (G, H) является шифрованным сообщением M
При расшифровании вычисляется:
H/GX mod P = yK M / AXK mod P = M mod P
Преимуществами системы ЭЦП и ОШ Эль Гамаля, является простота генерации открытых и секретных ключей, а так же то, что параметры P и A могут быть общими для всех участников сети связи.
Открытое шифрование по Эль Гамалю не получило широкого распространения, в то время, как алгоритм ЭЦП стал весьма известным и начал успешно конкурировать с алгоритмом RSA. Несколько позднее, усилиями криптографов была описана общая схема ЭЦП на основе дискретного логарифмирования.
41. Общая схема электронной подписи на основе дискретной экспоненты.
Механизм электронной цифровой подписи (ЭЦП) возник как побочный эффект криптографии с открытым ключом. Поэтому характерное для систем с открытым ключом разделение ключа на 2 части - секретную и несекретную - позволяет реализовать возможность проверки подлинности без возможности подписать другой документ.
цифровая подпись - это конечная цифровая последовательность, зависящая от самого сообщения или документа и от секретного ключа, известного только подписывающему субъекту, предназначенная для установления авторства.
Наиболее пpостым и pаспpостpаненным инстpументом электpонной подписи является алгоpитм RSA. Кpоме этого, существуют еще десятки дpугих схем цифpовой подписи.
Пpедположим, что
d,p,q – секpетные, а е, n = pq – откpытые.
Замечания.
1. Разложение по n дает: (n) = (p-1)(q-1); зная (n) и e, можно найти d.
2. Из e и d можно найти кpатность (n); кpатность (n) позволяет опpеделить делители n.
Пусть DATA – пеpедаваемое Александpом Боpису сообщение. Александp подписывает DATA для Боpиса пpи пеpедаче: Eeb,nb{Eda,na{DATA}}.
Пpи этом он использует:
закpытый ключ Eda,na Александpа,
откpытый ключ Eeb,nb Боpиса.
Боpис может читать это подписанное сообщение сначала пpи помощи закpытого ключа Eeb,nb Боpиса с целью получения Eda,na{DATA}= Edb,nb{ Eeb,nb{ Eda,na {DATA}}}
и затем откpытого ключа EeA,nA Александpа для получения
DATA= Eea,na{ Eda,na {DATA}}.
Таким обpазом, у Боpиса появляется сообщение DATA, посланное ему Александpом. Очевидно, что данная схема позволяет защититься от нескольких видов наpушений. Александp не может отказаться от своего сообщения, если он пpизнает, что секpетный ключ известен только ему. Наpушитель без знания секpетного ключа не может ни сфоpмиpовать, ни сделать осмысленное изменение сообщения, пеpедаваемого по линии связи. Данная схема позволяет пpи pешении многих конфликтных ситуаций обходиться без посpедников.
Иногда нет необходимости зашифpовывать пеpедаваемое сообщение, но нужно его скpепить электpонной подписью. В этом случае текст шифpуется закpытым ключом отпpавителя, и полученная цепочка символов пpикpепляется к документу. Получатель с помощью откpытого ключа отпpавителя pасшифpовывает подпись и свеpяет ее с текстом.
42. Использование произвольной циклической группы для организации систем ЭЦП и ОРК.
Алгоритмы Диффи-Хеллмана и алгоритма RSA дословно переносятся на произвольные конечные абелевы группы Gm порядка m. Это верно и для остальных несимметричных криптографических алгоритмов. Существует два варианта использования таких групп.
1. Если
порядок группы m
вычислить сложно (т.е. сложность такого
вычисления по крайней мере
субэкспоненциальна), то мы получаем
RSA-подобные
алгоритмы, в частности, собственно
алгоритм RSA
работает в группе Gm
=
,
причем
.
Как сказано выше, вычисление значения
функции Эйлера эквивалентно факторизации
числа n.
2. Возьмем
в Gm
циклическую подгруппу
,
порожденную некоторым элементом
.Если
порядок этой циклической подгруппы
легко вычисляется (этот порядок является
делителем числа m)
, но решение уравнения
,
относительно x,
1<
x<n,
имеет экспоненциальную сложность, то
в этой циклической подгруппе можно
строить криптографические системы
экспоненциального типа. В этом случае
будем считать, что группа Gm
и есть циклическая группа порядка m.
Вопрос
заключается в выборе группы Gm.
В произвольной циклической группе Gm
задачу
дискретного логарифмирования можно
решить за
операций, например, с помощью метода
Шэнкса. Это метод заключается в составлении
двух список размером t=
каждый. Первый список состоит из пар
и отсортирован по второй компоненте.
Второй список состоит из пар вида
и тоже отсортирован по второй компоненте.
Такая упорядоченность списков позволяет
легко найти две пары с равными вторыми
компонентами, т.е.
и
с
.
Тогда
по модулю m.
Поэтому группа
должна допускать только алгоритмы
решения задачи дискретного логарифмирования,
порядок сложности которых не меньше
,
и не допускать алгоритмов субэкспоненциальной
сложности. Аналогичные требования
предъявляются к RSA-подобным
криптографическим алгоритмам. Второе
принципиально важное условие
групповая операция должна быть простой
в реализации. Третье условие построение
групп должно быть не очень сложным и их
должно быть достаточно много для того,
чтобы построение самих групп и вычисление
их параметров не превратилось в сложную
задачу. Групп, пригодных для создания
RSA-подобных систем, до сих пор не найдено.
43. Однонаправленные хеш-функции Понятие хеш-функции
Хэш-функция - функция, аргументом которой является сообщение, выходным значением - строка символов фиксированного размера (дайджест сообщения). Изменения в тексте сообщения приводят к изменению значения хеш-функции. Поэтому все изменения, в тексте сообщения приведут к изменению дайджеста.
Ключевые хэш-функции
Называются кодами аутентификации сообщений (message authentication code(MAC)) и применяются в системах с симметричными ключами.
К ним предъявляются определенные требования.
Требования к ключевым хэш – функциям:
простота вычисления
сжатие
стойкость к вычислению
Бесключевые хэш-функции
известны как коды обнаружения ошибок (modification detection code(MDC)) и дают возможность с помощью дополнительных средств гарантировать целостность данных.
На бесключевые хеш-функции накладываются определенные условия.
Условия для бесключевых хэш-функций.
однонаправленность
устойчивость к коллизиям
устойчивость к нахождению второго прообраза
Применение ключевых хэш-функций
Ключевые хеш-функции применяются в случаях, когда стороны имеют общий секретный ключ (доверяют друг другу). В подобных ситуациях обычно не требуется обеспечение защиты в случае отказа получателя от факта получения сообщения или его подмены. Поэтому от ключевых хеш-функций не требуется устойчивости к коллизиям.
Вычисление дайджеста ключевых хеш-функций
Для вычисления дайджеста ключевых хеш-функций могут использоваться блочные шифры, что неприемлемо по отношению к бесключевым хеш-функциям, так как противоречит требованию устойчивости к нахождению второго прообраза.
Построение ключевых хэш-функций на основе бесключевых
Ключевые хеш-функции могут строиться на основе бесключевых. При этом ключ приписывается к обрабатываемому сообщению, но не просто в начало его или конец, что приводит к потенциальным слабостям. Используются способы введения ключа, при которых он вставляется не один, а по крайней мере два раза. Укажем два способа: H=h(k, y, M, k) и H=h(k, y1, h(k, y2, M)), где y, y1 и y2 - дополнения ключа k до размера, кратного длине блока n. Недостатком такого метода является слишком большая длина дайджеста.
44. Примеры хеш-функций:
MD 5 (R. RIVEST 1992)
Данная хэш-функция является однопроходной хэш-функцией, размер хэш-функции - 128 бит.
Алгоритм хэширования разделяется на две части.
Расширение исходного сообщения
Собственно хеширование
. Расширение исходного битового сообщения M длины L происходит следующим образом. Пусть К - минимальное для которого выполняется соотношение L < K*512 - 64. Исходное сообщение M дополняется одним единичным битом и далее нулями до длины K*512 - 64, после чего к полученному сообщению дописывается 64 битный блок содержащий двоичную запись значения L. Таким образом, расширенное сообщение М имеет длину кратную 512 бит.
Алгоритм хеширования работает циклами, за один цикл обрабатывается блок исходного сообщения длины 512 бит. Пусть A, B, C, D - 32 битные переменные. Перед первым циклом хеширования им присваиваются начальные значения (в шестнадцатиричной записи).
Цикл состоит из четырех раундов каждый из которых вычисляет новые значения переменных A, B, C, D на основании их предыдущего значения и значения 64-битного отрезка хешируемого 512-битного блока исходного сообщения. В заключение цикла полученные значения A, B, C, D суммируются по модулю 232 с соответствующими значениями до начала цикла хэширования.
Финальное (после обработки последнего блока хэшируемого сообщения) значение переменных A, B, C, D является 128 битным значением хэш-функции.
Через функцию F обозначено соответствующее нелинейное преобразование (S, T, U или V). С учетом циклического сдвига переменных a, b, c, d в преобразованиях SS, TT, UU и VV. Один цикл работы алгоритма MD 5 можно представить в виде 64 тактов работы нелинейного регистра сдвига с четырьмя обратными связями, при этом первые 16 тактов работает первая обратная связь, следующие 16 вторая и т.д.
В заключение рассмотрения алгоритма MD 5 отметим, что несмотря на многие попытки провести на него атаку, он остается практически стойким.
MD 2 (R. RIVEST 1992)
Данный алгоритм также реализует 128 битную однопроходную хэш-функцию и в частности используется в протоколе PEM (Privacy -Enhanced Mail см. ниже). Этот алгоритм значительно более медленный чем остальные изложенные в книге примеры, однако, до сих пор у него не найдено даже потенциальных слабостей.
Алгоритм использует случайную перестановку на байтах, задаваемую вектором (S0,S1, ... S255), сам автор, например, предлагает генерировать эту подстановку из битового вектора, получаемого записью числа в двоичном виде. Также используется 48 байтный блок X=X0,...,X48,
Алгоритм выглядит следующим образом;
Исходное сообщение расширяется до сообщения длины кратной 16 байтам. При этом если дописывается N байтов, до их значение равно 0, 1, ... N-1.
Сообщение дополняется 16 байтной контрольной суммой, которая содержит истинный размер сообщения и может содержать дополнительную информацию (например, CRC значение).
Первый 16 байтный блок блока X инициализируется нулями.
Второй 16 байтный блок блока Х устанавливается равным очередному 16 байтному блоку хэшируемого текста.
Третий 16 байтный блок блока Х получается покоординатным суммированием первого и второго 16-байтных блоков блока X.
Вычисляется преобразование (запишем его в терминах псевдоязыка программирования)
45. Примеры хеш-функций Классификация хеш-функций.
Ключевые хэш-функции
Называются кодами аутентификации сообщений (message authentication code(MAC)) и применяются в системах с симметричными ключами.
К ним предъявляются определенные требования.
Требования к ключевым хэш – функциям:
простота вычисления
сжатие
стойкость к вычислению
Бесключевые хэш-функции
известны как коды обнаружения ошибок (modification detection code(MDC)) и дают возможность с помощью дополнительных средств гарантировать целостность данных.
На бесключевые хеш-функции накладываются определенные условия.
Условия для бесключевых хэш-функций.
однонаправленность
устойчивость к коллизиям
устойчивость к нахождению второго прообраза
Алгоритм MD2
MD2(The MD2 Message Digest Algorithm) — хэш-функция, разработанная Бартом Калиски (RSA Laboratories) в 1992 году, и описанная в RFC 1319. Размер хэша — 128 бит. Размер блока входных данных — 512 бит.
Предполагается, что на вход подано сообщение, состоящее из байт, хеш которого нам предстоит вычислить. Здесь — произвольное неотрицательное целое число; оно может быть нулем или сколь угодно большим. Запишем сообщение побайтово, в виде:
m0m1…m(b-1)\
Алгоритм MD5
Предназначен для создания «отпечатков» или «дайджестов» сообщений произвольной длины. Является улучшенной в плане безопасности версией MD4.[1] Зная MD5, невозможно восстановить входное сообщение, так как одному MD5 могут соответствовать разные сообщения. Используется для проверки подлинности опубликованных сообщений путём сравнения дайджеста сообщения с опубликованным. Эту операцию называют «проверка хеша» (hashcheck).
На вход алгоритма поступает входной поток данных, хеш которого необходимо найти. Длина сообщения может быть любой (в том числе нулевой). Запишем длину сообщения в L. Это число целое и неотрицательное. Кратность каким-либо числам необязательна. После поступления данных идёт процесс подготовки потока к вычислениям.
46. Примеры хеш-функций: применение хеш-функций в системах ЭЦП; хеш-функции с ключом.
В большинстве ранних систем ЭЦП использовались функции с секретом, которые по своему назначению близки к односторонним функциям. Такие системы уязвимы к атакам с использованием открытого ключа, так как, выбрав произвольную цифровую подпись и применив к ней алгоритм верификации, можно получить исходный текст.[9] Чтобы избежать этого, вместе с цифровой подписью используется хеш-функция, то есть, вычисление подписи осуществляется не относительно самого документа, а относительно его хеша. В этом случае в результате верификации можно получить только хеш исходного текста, следовательно, если используемая хеш-функция криптографически стойкая, то получить исходный текст будет вычислительно сложно, а значит атака такого типа становится невозможной.
Также существуют другие преимущества использования хеш-функций вместе с ЭЦП:
Вычислительная сложность. Обычно цифровой документ во много раз больше, чем его хеш, поэтому время, затрачиваемое на подпись, намного меньше, так как алгоритмы вычисления хеша являются более быстрыми по сравнению с алгоритмами ЭЦП.
Совместимость. Большинство алгоритмов оперирует со строками бит данных, но некоторые используют другие представления. Хеш-функцию можно использовать для преобразования произвольного входного текста в подходящий формат.
Целостность. Без использования хеш-функции большой электронный документ в некоторых схемах нужно разделять на достаточно малые блоки для применения ЭЦП. При верификации невозможно определить все ли блоки получены и в правильном ли они порядке.
Стоит заметить, что использование хеш-функции не обязательно при цифровой подписи, а сама функция не является частью алгоритма ЭЦП, поэтому может использоваться любая хеш-функция или вообще не использоваться.
хеш-функции с ключом Называются кодами аутентификации сообщений (message authentication code(MAC)) и применяются в системах с симметричными ключами.
К ним предъявляются определенные требования.
простота вычисления (для известной функции Hk, заданного значения k и входного значения x, легко вычислить Hk(x));
сжатие (Hk отображает входное значение x - конечную двоичную строку произвольной длины в выводное значение Hk(x) - двоичную строку фиксированной длины n);
стойкость к вычислению (по известным парам "сообщение - значение функции" вычислительно невозможно получить любую другую пару "сообщение - значение функции", для любого входного значения отличного от имеющихся). Свойство также включает не восстанавливаемость ключа.
Применение ключевых хэш-функций
Ключевые хеш-функции применяются в случаях, когда стороны имеют общий секретный ключ (доверяют друг другу). В подобных ситуациях обычно не требуется обеспечение защиты в случае отказа получателя от факта получения сообщения или его подмены. Поэтому от ключевых хеш-функций не требуется устойчивости к коллизиям.
47. Примеры хеш-функций sha…
SECURE HASH ALGORITHM (SHA-1)
Алгоритм хеширования SHA-1 описан в стандарте США безопасного хеширования. Для входного сообщения, длина которого меньше 264 бит алгоритм SHA-1 выдаёт 160-битовый результат. Предназначен SHA-1 для использования вместе с алгоритмом цифровой подписи DSA. Цифровая подпись формируется на основе дайджеста SHA-1 от сообщения, что повышает эффективность процесса подписания.
Применения алгоритма SHA-1
В результате применения алгоритма получается хэш-код длиной 160 бит. Процедура дополнения хэшируемого текста до кратного 512 битам совпадает с процедурой дополнения алгоритма MD5.
Инициализируются 5 переменных по 32 бита (в алгоритме MD5 таких переменных было 4):
A=67452301 B=efcdab89
C=98badcfe D=10325476 E=c3d2e1f0
Далее, как и в MD5, создаются копии AA, BB, CC, DD, EE инициализированных переменных и для каждого блока текста размером 512 битов выполняется основной цикл, состоящий из 4 раундов. В отличие от MD5 каждый раунд состоит из 20 операторов (в MD5 -16 операторов).
Аналогично MD5, каждый оператор состоит из функции от 3 переменных (в случае SHA-1 это B, C и D), циклического сдвига и суммирования.
Отечественный стандарт хеш-функции (ГОСТ Р 34.11-94)
Российский стандарт хеширования - ГОСТ Р 34.11-94 использует блочный алгоритм шифрования ГОСТ 28147-89. Хэш-функция формирует 256-битовый дайджест. Предназначена для использования совместно с российским стандартом электронной цифровой подписи.
Приведём краткое описание функции сжатия алгоритма ГОСТ Р 34.11-94 f. Hi=f(Hi - 1, Mi)
Описание функции сжатия алгоритма ГОСТ Р 34.11-94 f.
Смешивает линейно Hi– 1, Mi и некоторых констант Cj, генерируются четыре ключа шифрования Kj, j = 1…. 4;
Входной блок разбивается на четыре части равной длины, каждая из которых потом шифруется на одном из четырёх ранее полученных ключей, склейка результата этой операции затем заносится во временную переменную S;
Hi представляет собой значение линейной функции от S, Mi и Hi– 1
48. Системы с открытым ключом и режимы их использования. Криптографические протоколы.
Как бы ни были сложны и надежны криптографические системы - их слабое мест при практической реализации - проблема распределения ключей. Для того, чтобы был возможен обмен конфиденциальной информацией между двумя субъектами ИС, ключ должен быть сгенерирован одним из них, а затем каким-то образом опять же в конфиденциальном порядке передан другому. Т.е. в общем случае для передачи ключа опять же требуется использование какой-то криптосистемы.
Для решения этой проблемы на основе результатов, полученных классической и современной алгеброй, были предложены системы с открытым ключом.
Суть их состоит в том, что каждым адресатом ИС генерируются два ключа, связанные между собой по определенному правилу. Один ключ объявляется открытым, а другой закрытым. Открытый ключ публикуется и доступен любому, кто желает послать сообщение адресату. Секретный ключ сохраняется в тайне.
Исходный текст шифруется открытым ключом адресата и передается ему. Зашифрованный текст в принципе не может быть расшифрован тем же открытым ключом. Дешифрование сообщение возможно только с использованием закрытого ключа, который известен только самому адресату
Криптографические системы с открытым ключом используют так называемые необратимые или односторонние функции, которые обладают следующим свойством: при заданном значении x относительно просто вычислить значение f(x), однако если y=f(x), то нет простого пути для вычисления значения x.
Множество классов необратимых функций и порождает все разнообразие систем с открытым ключом. Однако не всякая необратимая функция годится для использования в реальных ИС.
В самом определении необратимости присутствует неопределенность. Под необратимостью понимается не теоретическая необратимость, а практическая невозможность вычислить обратное значение используя современные вычислительные средства за обозримый интервал времени.
Поэтому чтобы гарантировать надежную защиту информации, к системам с открытым ключом (СОК) предъявляются два важных и очевидных требования:
1. Преобразование исходного текста должно быть необратимым и исключать его восстановление на основе открытого ключа.
2. Определение закрытого ключа на основе открытого также должно быть невозможным на современном технологическом уровне. При этом желательна точная нижняя оценка сложности (количества операций) раскрытия шифра.
Алгоритмы шифрования с открытым ключом получили широкое распространение в современных информационных системах. Так, алгоритм RSA стал мировым стандартом де-факто для открытых систем и рекомендован МККТТ.
Вообще же все предлагаемые сегодня криптосистемы с открытым ключом опираются на один из следующих типов необратимых преобразований:
1. Разложение больших чисел на простые множители.
2. Вычисление логарифма в конечном поле.
3. Вычисление корней алгебраических уравнений.
Здесь же следует отметить, что алгоритмы криптосистемы с открытым ключом (СОК) можно использовать в трех назначениях.
1. Как самостоятельные средства защиты передаваемых и хранимых данных.
2. Как средства для распределения ключей. Алгоритмы СОК более трудоемки, чем традиционные криптосистемы. Поэтому часто на практике рационально с помощью СОК распределять ключи, объем которых как информации незначителен. А потом с помощью обычных алгоритмов осуществлять обмен большими информационными потоками.
3. Средства аутентификации пользователей. Ниже рассматриваются наиболее распространенные системы с открытым ключом.
Одним из важнейших средств решения задач информационной безопасности в сетях передачи данных являются криптографические протоколы (далее - криптопротоколы). Их применение обусловлено использованием обширных механизмов межсетевого взаимодействия, причем под межсетевым взаимодействием следует понимать обмен информацией как на сетевом уровне модели взаимодействия открытых систем, так и на вышележащих уровнях.
49. Основные задачи, которые решаются криптопротоколами.
Одним из важнейших средств решения задач информационной безопасности в сетях передачи данных являются криптографические протоколы (далее - криптопротоколы). Их применение обусловлено использованием обширных механизмов межсетевого взаимодействия, причем под межсетевым взаимодействием следует понимать обмен информацией как на сетевом уровне модели взаимодействия открытых систем, так и на вышележащих уровнях.
В общем случае под криптопротоколом будем понимать распределенный алгоритм, реализованный при помощи последовательности действий, позволяющий двум или более участникам информационного обмена решать определенные задачи.
При этом под безопасным будем понимать криптопротокол, в котором участники достигают своей цели, а злоумышленник - нет.
Большинство криптопротоколов в своей основе используют криптографические алгоритмы (блочного шифрования, ЭЦП и хэш-функции), хотя это утверждение не является обязательным - вместо криптографических алгоритмов могут применяться необратимые преобразования, такие как модульное возведение в степень.
Использование криптографических алгоритмов в криптопротоколах (причем в некоторых протоколах используются несколько различных алгоритмов) приводит к необходимости решить задачу согласования используемых алгоритмов и их параметров между сторонами информационного обмена.
Многообразие механизмов межсетевого взаимодействия, в свою очередь, способствует появлению различных криптопротоколов. Причем они могут решать задачи информационной безопасности как в виде отдельных механизмов (SSL, SHTTP и др.), так и входить в состав других продуктов, связанных с этой областью (например, в TrustedWeb используется Кегberos). Типичным примером использования криптопротоколов может являться решение такой распространенной задачи: клиент (например, HTTP-клиент) хочет получить доступ к серверу (например, к Web-серверу) через открытые сети передачи данных и установить с ним защищенный канал передачи данных. Данная проблема эффективно разрешима только с применением криптопротоколов.
В свою очередь, средства обеспечения информационной безопасности в сетях передачи данных тоже требуют решения ряда специфических задач, поддерживающих их надежное функционирование, что также расширяет сферу применения криптопротоколов. Типичным примером их использования является обеспечение ключевого обмена и согласование параметров безопасности (тип алгоритма, режим применения и т.д.).
Основными задачами сегодняшнего дня, которые решаются криптопротоколами в сетях передачи данных, являются:
- аутентификация и идентификация ;
- ключевой обмен .
Существует также целый ряд криптопротоколов, предназначенных для решения более специфических задач .
Следует иметь в виду, что один и тот же криптопротокол может применяться в самых разных областях. Например, криптопротокол Kerberos в ходе своей работы позволяет произвести аутентификацию пользователей и осуществить ключевой обмен между участниками.
50. Виды атак на криптопротоколы