Протоколы информационного обмена
.pdfОписание схемы подписи включает в себя три этапа: генерацию параметров, вычисление подписи для документа и процедуру верификации подписи.
Генерация ключей. Вычислить два больших простых числа p и q, при которых q < p.
Выбрать случайное целое число x: 1 ≤ x ≤ ( p −1) . Вычислить
y = q x mod p
Результат: p, q, y – открытый ключ; x – секретный ключ.
Подпись сообщения. Найти результат хеширования сообщения M: m = h(M) и 1 < m < (p – 1)
Генерировать случайное число k, такое, что
1 < k < (p – 1)
и
НОД(k, p – 1) = 1
Вычислить
a = qk mod p
Вычислить b, такое, что
m = x * a + k * b (mod(p – 1))
или
b = k-1(m – a * x) (mod (p – 1))
Пара чисел (a, b) является значением цифровой подписи для сообщения m. Вместе с сообщением передается значение цифровой подписи. Любой абонент может использовать открытый ключ (p, q, y) для верификации подписи.
Верификация. Вычислить с помощью той же хэш-функции h значение m = h(M).
Вычислить V = y a ab mod p .
Вычислить W = qm mod p .
Если V = W, то подпись признается подлинной.
39
ЗАДАНИЕ
1.Каждый абонент генерирует параметры системы ЭЦП Эль-Гамаля. Абоненты обмениваются открытыми ключами для последующей верификации подписи {p, q, y}.
2.Каждый абонент выбирает два исходных сообщения M1 и M2. Для одного из них он вычисляет значение хэш-функции m по алгоритму
Флетчера. Далее для полученного хэш-значения каждый абонент генерирует значение ЭЦП по схеме Эль-Гамаля. Абоненты обмениваются исходными сообщениями M1, M2, а также значением ЭЦП для одного из этих сообщений S = (a, b). При этом отправитель не сообщает получателю, для какого именно сообщения им была сгенерирована ЭЦП.
3.Используя открытые ключи, все абоненты осуществляют процедуру верификации полученной ЭЦП для каждого из двух сообщений. Процедура пройдет успешно, т.е. значения V и W совпадут, только для одного из этих сообщений.
4.Оформить и сдать отчет о выполнении лабораторной работы. Форма отчета приведена в приложении 1 для работы 3.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Работа 3 выполняется группами по два человека. Работа происходит по протоколу «ЭЦП Эль-Гамаля». Возможные роли: 1-й абонент и 2-й абонент. Выберете роль для работы по протоколу. Договоритесь о том, кто создает сессию для работы по протоколу, и о времени начала работы.
Для выполнения работы используйте специализированный вычислитель с поддержкой модулярной арифметики. Параметры системы ЭльГамаля можно сгенерировать в автоматическом режиме. Исходные сообщения рекомендуется выбирать из слов, состоящих из трех букв русского алфавита. В качестве функции хэширования использовать алгоритм Флетчера. Этот алгоритм дает значение в интервале от 1 до 255. Соответственно необходимо проконтролировать, чтобы в результате генерации параметров системы Эль-Гамаля значение p – 1 было больше, чем 255.
Корректным является сообщение, для которого успешно прошла процедура верификации электронной цифровой подписи. В отчете по лабораторной работе каждый абонент заранее знает номер отправленного им сообщения M11 или M12, которое является корректным, т.е. для которого действительно им была вычислена ЭЦП по Эль-Гамалю. Номер корректного полученного сообщения M21 или M22 каждый абонент узнает только после того, как попытается верифицировать для него значение полученной ЭЦП.
40
В процессе генерации ЭЦП и ее верификации все элементарные операции вычисляются по модулю. Для определения случайного числа k, взаимно простого со значением p – 1, рекомендуется воспользоваться возможностью специализированного вычислителя для поиска случайных простых чисел. Для этого нажмите кнопку [Простое число] или найдите подходящее число в таблице простых чисел. В таком случае, значение числа k гарантировано будет взаимно простым с числом p – 1. При определении значения k-1 mod (p – 1) следует воспользоваться расширенным алгоритмом Евклида.
41
Р а б о т а 4
НЕСОСТОЯТЕЛЬНОСТЬ ПРОТОКОЛА ЭЛЕКТРОННОЙ ЦИФРОВОЙ ПОДПИСИ НА RSA
Цель: практический анализ дефекта протокола электронной цифровой подписи на RSA.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Протокол применения криптосистемы RSA для электронной цифровой подписи передаваемых сообщений, рассматриваемый в данной лабораторной работе, является классическим примером того, как использование несостоятельной схемы протокола может полностью сделать систему уязвимой перед возможными атаками. Даже, несмотря на то, что для всех криптографических преобразований над данными используется проверенная и стойкая криптосистема. Анализируемая несостоятельность протокола разобрана в работе [9].
Протокол. Цель протокола состоит в том, чтобы передать секретное и подисанное сообщение от одного абонента другому. Получатель сообщения имеет возможность не только прочитать его, но и должен быть уверен в авторстве отправителя.
Пусть злоумышленником является один из зарегистрированных в сети абонентов. Рассмотрим следующий протокол, в котором участвуют три абонента. Каждый из абонентов генерирует параметры криптосистемы RSA. 1-й абонент выбирает исходное сообщение. Преобразует его в числовое представление M и зашифровывает на открытом ключе 2-го абонента. В результате получает криптограмму
C2 = M e2 mod n2
После этого 1-й абонент подписывает криптограмму C2 на своем секретном ключе и получает криптограмму
C21 =C2d1 mod n1
42
Криптограмму C21 1-й абонент отправляет 2-му абоненту. Злоумышленник (3-й абонент) перехватывает криптограмму C21 и снимает с нее подпись 1-го абонента:
C2 = C21e1 mod n1
После этого у злоумышленника есть криптограмма C2 , и он подписывает ее на своем секретном ключе:
C23 =C2d3 mod n3
Полученную криптограмму C23 злоумышленник отправляет 2-му або-
ненту, который проверяет цифровую подпись с использованием открытого ключа злоумышленника:
C2 = C23e3 mod n3
апотом расшифровывает криптограмму C2 , используя свой секретный
ключ:
M= C2d2 mod n2
Врезультате 2-й абонент уверен, что получил сообщение от 3-го абонента, а вместо этого настоящим автором был 1-й абонент. Таким образом, злоумышленнику удалось выдать себя за другое лицо. Рассмотренный протокол является несостоятельным, так как в случае подобной атаки не достигает своей цели.
Комментарий. Для 2-го абонента и 1-й абонент, и злоумышленник (3-й участник информационного обмена) являются равноправными зарегистрированными абонентами сети. По этой причине, если только 2-й абонент заранее не договаривался с 1-м абонентом об информационном обмене, он не заподозрит подмены сообщения.
Вместе с криптограммой C23 2-й абонент получает дополнительный
блок данных о том, кто является отправителем сообщения. Поэтому действия злоумышленника будут неотличимы от действий 1-го абонента.
Для того, чтобы полностью исключить возможность возникновения подозрений у 2-го абонента, злоумышленник должен заблокировать проход криптограммы C21 от 1-го абонента к 2-му абоненту. Иначе 2-й або-
нент получит две криптограммы, подписанные разными абонентами, но содержащие один и тот же текст.
Как избежать атаки. Чтобы полностью исключить возможность описанной атаки, необходимо всегда корректно применять последовательность операций зашифрования и цифровой подписи. Сначала надо подписывать сообщение, а потом уже зашифровывать его.
43
ЗАДАНИЕ
1. Все абоненты генерирую параметры криптосистемы RSA и обмениваются открытыми ключами. 1-й абонент получает только открытый ключ 2-го абонента { e2 , n2 }. 2-й абонент получает от злоумышленника
его открытый ключ { e3 , n3 } и открытый ключ 1-го абонента { e1 , n1 }. Злоумышленник получает открытые ключи 1-го и 2-го абонентов { e1 ,
n1 } и { e2 , n2 } соответственно.
2. 1-й абонент выбирает открытый текст M . Зашифровывает его на открытом ключе 2-го абонента и получает криптограмму C2 .
Подписывает криптограмму C2 на своем секретном ключе и получает криптограмму C21 .
Отправляет криптограмму C21 2-му абоненту.
3. Злоумышленник получает копию криптограммы C2 , отправленной
2-му абоненту. Блокирует дальнейшее прохождение криптограммы. Снимает подпись 1-го абонента и вместо этого ставит свою подпись. В результате получает криптограмму C23 , которую отправляет 2-му абоненту.
4. 2-й абонент получает криптограмму C23 . Применяет к ней открытый ключ 1-го абонента для снятия цифровой подписи и получает криптограмму C12 . Далее расшифровывает криптограмму C12 с использованием своего секретного ключа и получает открытый текст M1 , который явля-
ется бессмысленным набором символов, отличным от того, который первоначально выбрал 1-й абонент. После этого 2-й абонент применяет к криптограмме C23 открытый ключ 3-го абонента (злоумышленника) для
проверки цифровой подписи и получает криптограмму C22 . Далее расшифровывает криптограмму C22 с применением своего секретного ключа и получает открытый текст M 2 , значение которого является
осмысленным и совпадает с первоначальным текстом M , выбранным 1-м абонентом.
5. Оформить и сдать отчет о выполнении лабораторной работы. Форма отчета приведена в приложении 1 для работы 4.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Работа 4 выполняется группами по три человека. Работа происходит по протоколу «Несостоятельность ЭЦП на RSA». Возможные роли: 1-й
44
абонент, 2-й абонент и злоумышленник. Выберите роль для работы по протоколу. Договоритесь о том, кто создает сессию для работы по протоколу, и о времени начала работы.
Для выполнения работы используйте специализированный вычислитель с поддержкой модулярной арифметики. Рекомендуется вручную сгенерировать параметры криптосистемы RSA. В качестве исходного текста использовать слово из трех букв русского алфавита. Необходимо проконтролировать, чтобы числовой эквивалент открытого текста был меньше, чем модуль шифрования у всех участников информационного обмена. Для генерации параметров криптосистемы RSA целесообразно использовать два 4-разрядных простых числа в качестве значений множителей p и q.
45
Р а б о т а 5
ПРЕОБРАЗОВАНИЯ В ГРУППЕ ТОЧЕК НА ЭЛЛИПТИЧЕСКИХ КРИВЫХ
Цель: освоение работы на специализированном вычислителе для эллиптических кривых; практическое изучение преобразований в группе точек на эллиптической кривой определенной в конечном поле.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Использование эллиптических кривых для криптографии было независимо предложено Нилом Коблицем (Neal Koblitz) и Виктором Миллером (Victor Miller) в 1985 г. [19, 20]. На сегодняшний день это одно из самых перспективных направлений развития криптографии с открытыми ключами.
Эллиптической кривой E , определенной в конечном поле Fp , где p > 3 , называется множество точек с координатами (x, y) , удовлетво-
ряющих уравнению: |
|
y 2 = x3 + ax +b , |
|
||
|
|
|
|
(5.1) |
|
где a, b F |
p |
и 4a3 |
+ 27b2 |
≠ 0 вместе со специальной точкой |
O , назы- |
|
|
|
|
|
|
ваемой точкой бесконечности или, как еще иногда говорят, нулевой точкой [4, 10]. В группе точек на эллиптической кривой точка бесконечности O нужна для обеспечения существования обратного элемента в группе и необходимых свойств операций.
Рассмотрим основные операции над точками и их геометрическую интерпретацию на примере обычных плоских эллиптических кривых, т.е. кривых определенных над полем вещественных чисел. Полученные в результате аналитические формулы для рассматриваемых операций являются действительными для эллиптических кривых (5.1), определенных над любым полем [4].
46
Точкой, обратной к данной точке P(x, y) , называется точка с координатами (x,−y) и обозначается как (−P) , т.е. точка, зеркально отраженная
от оси абсцисс.
Геометрический смысл операции сложения двух точек P,Q E на эл-
липтической кривой (рис.5.1) заключается в том, что через них проводится секущая, пересекающая кривую в третьей точке. Обратная точка для точки пересечения дает результат операции сложения.
Рис.5.1
Если некоторая точка эллиптической кривой P E складывается сама с собой (рис.5.2), то такая процедура называется удвоением точки. Геометрический смысл подобной операции заключается в том, что через точку P проводится секущая линия, которая пересекает кривую в некоторой точке. Обратная точка к точке пересечения и будет результатом удвоения точки P .
Рис.5.2
47
Операции сложения и удвоения точек имеют аналитические выражения.
Сложение точек. Пусть P(x1, y1),Q(x2 , y2 ) E – две точки, для которых x1 ≠ x2 . Тогда P +Q = R(x3 , y3 ) , где
x3 = λ2 − x1 − x2 ,
y3 = λ(x1 − x3 ) − y1 ,
и
λ= y2 − y1 .
x2 − x1
Удвоение точки. Пусть точка P(x1, y1) E , для которой y1 ≠ 0 (если y1 = 0 , тогда P = −P , т.е. 2P = O ), тогда 2P = (x3 , y3 ) , где
x3 = λ2 −2x1 ,
y3 = λ(x1 − x3 ) − y1 ,
и
λ = 3x12 +a . 2y1
Точка бесконечности. Геометрический смысл точки бесконечности заключается в том, что в ней пересекаются все прямые, параллельные оси ординат. Рассмотрим операции с участием точки бесконечности O и некоторой точки P E :
1)O +O = O ;
2)P +O = O + P = P ;
3)P + (−P) = O .
Количество точек, принадлежащих эллиптической кривой называется рангом кривой и обозначается буквой N . Рангом точки P E называется такое минимальное целое положительное число n , что nP = O . Ранг точки определяет порядок группы точек эллиптической кривой, с которыми осуществляются криптографические преобразования.
Операция сложения двух точек, принадлежащих эллиптической кривой, определенной на конечном поле, является аналогом операции умножения двух чисел в конечном поле. Операция умножения точки на некоторое число k является аналогом операции возведения в степень k . Операцию умножения точки на число можно представить как процесс сложения точки самой с собой нужное число раз. Например:
2P = P + P ,
3P = 2P + P и т.д.
48
