Протоколы информационного обмена
.pdfОднако существует способ быстрого умножения точки на число, который требует O(log k log3 p) количества операций для умножения точки P E , определенной в конечном поле Fp на некоторое число k [19]. Этот метод
аналогичен алгоритму быстрого возведения в степень для элементов конечного поля, действительно: 100P = 2(2(P + 2(2(2(P + 2P))))) .
В группе точек, принадлежащих эллиптической кривой существует задача, имеющая экспоненциальный уровень сложности и получившая название задачи дискретного логарифмирования на эллиптической кривой. Суть ее заключается в том, что при известных точках P,Q E , вычисли-
тельно трудно найти такое число x (если оно существует), что Q = xP .
Стойкость криптографических систем на эллиптических кривых основана на сложности решения этой задачи. Приведем оценки необходимой вычислительной мощности для нахождения дискретного логарифма в группе точек эллиптической кривой [18] (табл.5.1).
|
|
|
|
|
Таблица 5.1 |
|
|
|
|
|
|
|
|
Модуль кривой p , бит |
163 |
191 |
239 |
359 |
431 |
|
Порядок |
группы точек |
160 |
186 |
234 |
354 |
426 |
кривой n , бит |
|
|
|
|
|
|
Требуемая |
вычислительная |
9,6*1011 |
7,9*1015 |
1,6*1023 |
1,5*1041 |
1052 |
мощность (M/Y) |
|
|
|
|
|
Задача дискретного логарифмирования в группе точек эллиптической кривой является более трудной, чем задача дискретного логарифмирования в конечном поле. В этом заключается основная причина преимущества использования криптосистем на эллиптических кривых, которые обеспечивают такой же уровень стойкости при использовании чисел существенно меньшего размера по сравнению с более традиционными криптосистемами, стойкость которых заключается в сложности задачи факторизации или дискретного логарифмирования в конечном поле. Соответственно при использовании чисел одинаковой размерности уровень стойкости криптосистем на эллиптических кривых значительно выше. На сегодняшний день лучший из известных алгоритмов – ρ-метод Полларда, дает
следующую оценку для решения задачи дискретного логарифмирования в группе точек эллиптической кривой: ( πn / 2) / m , где m – количество
процессоров для параллельных вычислений, а n – порядок группы точек эллиптической кривой [17]. С помощью этого метода в 2000 г. была решена задача дискретного логарифмирования в группе точек эллиптиче-
49
ской кривой с порядком в 108 бит. Для сравнения отметим, что криптосистема, использующая преобразования в группе точек эллиптической кривой с порядком в 160 бит, эквивалентна по стойкости криптосистеме RSA с модулем шифрования в 1024 бита [8].
Примечание. В рамках лабораторного практикума рассматриваются только кривые, удовлетворяющие уравнению (5.1). Для полей с характеристикой p ≤ 3 используются другие уравнения эллиптических функций [4].
ЗАДАНИЕ
1.Разделиться на группы по два человека.
2.В конечном поле Fp сгенерировать общую эллиптическую кривую
E вида
y 2 = x3 + ax +b ,
такую, что
4a3 + 27b2 ≠ 0 ,
p выбрать простым, используя таблицу простых чисел (желательно 3-
значное число, большее 263или 4-значное число).
3. Выполнить вручную операции сложения и вычитания двух произвольных точек R1 и R2 E . Выполнить вручную операцию удвоения
выбранной произвольной точки R E . Проверить результаты вычислений на спецвычислителе. Убедится, что полученные в результате вычислений точки принадлежат эллиптической кривой E .
4. Каждому абоненту сгенерировать пару чисел e1 и d1 .
Для этого нужно выбрать случайное число e1 в интервале [3, N −1] , где N – ранг кривой, такое, что:
НОД(e1, N) =1
Найти мультипликативно обратное к e1 число d1 по модулю N : e1d1 ≡1mod N
5.Отослать число e1 другому абоненту.
6.Выбрать открытый текст M1 (короткое слово из букв русского ал-
фавита) и перевести его в массив точек Pi1 E .
50
7. Осуществить преобразование выбранного ранее открытого текста, представленного в виде массива точек Pi1 , путем умножения каждой из них на число e2 , полученное от другого абонента.
Qi1 = e2 Pi1 .
8. Отослать другому абоненту полученные результаты (точки Qi1 , по-
лученные в результате преобразования) и выбранный вами открытый текст M1 .
9. Осуществить обратное преобразование полученного массива точек Qi2 с использованием числа d1 :
Pi2 = d1Qi2 .
10. Перевести полученный массив точек Pi2 в открытый текст M 2′ . Сравнить полученный результат с изначальным открытым текстом M 2 , который был выбран другим абонентом. Текст M 2 должен совпадать с
текстом M 2′ .
11. Оформить и сдать отчет о выполнении лабораторной работы. Форма отчета приведена в приложении 1 для работы 5.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Работа 5 выполняется группами по два человека. Работа происходит по протоколу «Операции над точками ЭК». Возможные роли: 1-й абонент и 2-й абонент. Выберите роль для работы по протоколу. Договоритесь о том, кто создает сессию для работы по протоколу, и о времени начала работы. Пользователь, выбравший роль 1-го абонента, выбирает параметры кривой и пересылает их своему партнеру.
Перевод открытого текста в точки, принадлежащие эллиптической кривой и обратно, осуществляется автоматически с использование соответствующих возможностей специализированного вычислителя. Более детальное описание работы со специализированным вычислителем приведено в разделе описания программного комплекса.
51
Р а б о т а 6
ПРОТОКОЛ ДИФФИ-ХЕЛЛМАНА ДЛЯ ЭЛЛИПТИЧЕСКИХ КРИВЫХ
Цель: практическое изучение протокола Диффи-Хеллмана на эллиптических кривых для генерации сеансового ключа; анализ дефекта протокола с атакой «посередине».
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Протокол Диффи-Хеллмана используется в процессе управления ключами. В результате его работы два или более абонентов вычисляют общее значение секретного ключа, при этом по открытым каналам связи передается только общедоступная информация. Предложенная в 1976 г. схема [15] получила большое распространение и впоследствии также была реализована на основе криптографических преобразований в группе точек, принадлежащих эллиптической кривой, определенной в конечном поле
[19].
Рассмотрим базовый вариант схемы Диффи-Хеллмана, использующий преобразования в группе точек эллиптической кривой [19]. Абоненты А и B знают общую эллиптическую кривую E , определенную над конечным полем Fp . Помимо этого оба абонента заранее договариваются об ис-
пользовании некоторой произвольной точки Q E .
Абонент A выбирает случайное число ka (желательно, чтобы величина числа ka была сравнима с модулем кривой p , что, в свою очередь,
сравнимо с рангом кривой). Абонент B аналогичным образом выбирает некоторое случайное число kb . Эти числа абоненты A и B сохраняют в
тайне.
Абонент A вычисляет точку K A = kaQ путем умножения точки Q на число ka . Полученную точку он отправляет абоненту B. Абонент B аналогичным образом вычисляет точку K B = kbQ и отправляет ее абоненту A. После этого абонент A вычисляет точкуK AB = ka K B , а абонент В –
52
точку K BA = kb K A . Нетрудно увидеть, что точки K AB и K BA совпадают, действительно:
K AB = ka K B = ka (kbQ) = kb (kaQ) = kb K A = K BA .
Общим секретом для абонентов А и B является точка KAB. Для передачи секретных сообщений можно, например, воспользоваться значением координаты x этой точки. Если известен ранг эллиптической кривой, то возможно непосредственное применение x в качестве секретного ключа зашифрования в криптосистеме на эллиптических кривых. В противном случае можно использовать значение x в качестве ключа в классических криптосистемах.
По открытым каналам связи передаются только параметры кривой E , точки Q, KA и KB. Этой информации злоумышленнику не хватит для того, чтобы вычислить значение общего для абонентов А и B секрета – точки KAB . Для вычисления общего секрета необходимо знать числа ka или kb .
Нахождение их на основе знания точек Q, K A и K B эквивалентно реше-
нию задачи дискретного логарифмирования на эллиптической кривой. Как уже отмечалось, эта проблема имеет экспоненциальный уровень сложности и не поддается эффективному решению при имеющемся уровне развития вычислительной техники и математических алгоритмов. В этом смысле схема Диффи-Хеллмана является безопасной.
Однако возможны активные атаки, связанные с самой схемой информационного обмена данными. Рассмотрим атаку, получившую название атаки посередине с перекодированием сообщения [9].
Злоумышленник C внедряется в процесс информационного обмена между абонентами A и B (рис.6.1), выдавая себя абоненту А за абонента B, а абоненту B – за абонента А. Таким образом он генерирует два общих секрета: один для обмена данными с пользователем A, другой для обмена данными с пользователем B. Впоследствии, когда абонент А посылает криптограмму абоненту B, он думает, что зашифровывает ее на общем для них с B секретном ключе. Однако на практике он использует секретный ключ, который известен злоумышленнику C. Злоумышленник C перехватывает и блокирует криптограмму от абонента А. Потом расшифровывает ее с использование знания общего для них с абонентом А секретного ключа. Затем заново зашифровывает с использованием общего для него с абонентом B сетного ключа и отправляет абоненту B. В случае успешного осуществления такой атаки, абоненты А и B ведут обмен секретными сообщениями, содержание которых становится известно злоумышленнику.
53
A |
|
|
|
|
C |
|
|
|
|
|
|
|
B |
|
|||||
EGF(p), Q, N |
|
|
EGF(p), Q, N |
|
EGF(p), Q, N |
||||||||||||||
ka |
|
|
kc |
|
|
|
|
|
|
|
|
kb |
|
|
|
||||
KA=kaQ |
|
|
|
|
|
|
|
|
|
|
|
|
|
KB=kbQ |
|
||||
|
KAC=kcKA |
|
|
|
KBC=kcKB |
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
KAC=kaKC |
|
|
|
|
|
KC=kcQ |
|
|
|
KBC=kb*KC |
|||||||||
|
|
|
|
|
|
|
|
||||||||||||
Pm |
|
|
x ac x ac* |
≡ 1 mod |
N |
|
|
|
|||||||||||
CAC=xacPm |
|
|
|
P |
= x* |
C |
AC |
xbc xbc* |
≡1mod N |
||||||||||
|
|
|
|||||||||||||||||
|
|
|
|
|
|
m |
|
ac |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
CCB = xbc Pm |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
P = x* |
C |
CB |
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m |
bc |
|
Рис.6.1
Итак, абонентам A, B и злоумышленнику C известны эллиптическая кривая E и точка Q на этой кривой. Абонент А выбирает секретное число
ka , абонент B – kb и злоумышленник C – kc . Абонент А вычисляет точку K A = kaQ и отправляет ее абоненту B. Абонент B вычисляет точку
KB = kbQ и отправляет ее абоненту А. Злоумышленник C перехватывает
иблокирует дальнейшую передачу точек K A и K B . Вместо этого он вычисляет значение точки KC = kcQ и отправляет его абонентам А и B. Помимо этого злоумышленник C вычисляет значение общего для него секрета с абонентом А – точку K AC (xAC , y AC ) = kc K A и с абонентом B –
точку |
K BC (xBC , yBC ) = kc K B . Абонент А получает точку KC |
вместо |
|||||
K B |
и |
вычисляет общий |
секрет со |
злоумышленником – |
точку |
||
K AC (xAC , y AC ) = ka KC , полагая, однако, |
что это – общий секрет с або- |
||||||
нентом |
B. Абонент |
B |
аналогичным |
образом |
вычисляет |
точку |
|
K BC (xBC , yBC ) = kb KC . |
Пусть известен ранг N эллиптической кривой |
||||||
E , тогда далее для обмена секретными сообщениями в качестве ключа |
|||||||
зашифрования будут использоваться координаты x |
полученных общих |
||||||
секретов. Абонент А хочет послать абоненту B некоторое секретное со- |
|||||||
общение |
M , которому на эллиптической кривой E соответствует точка |
Pm . Он вычисляет криптограмму C AC = x AC Pm и отправляет ее абоненту B. Злоумышленник С перехватывает и блокирует дальнейшее прохождение криптограммы CAC. Злоумышленник C вычисляет такое число x*AC ,
54
при котором xAC x*AC ≡1mod N . После этого он дешифрует криптограм-
му CAC, действительно Pm = x*AC C AC . После того, как злоумышленник С узнал содержание секретного сообщения, он перешифровывает его на секретном ключе xBC и отправляет абоненту B: CCB = xBC Pm . Абонент
В вычисляет значение такого числа x*BC , при котором xBC x*BC ≡1mod N , и расшифровывает полученную криптограмму Pm = x*BC CBC .
ЗАДАНИЕ
1. Все участники информационного обмена договариваются об используемой эллиптической кривой E, характеристике поля Fp и началь-
ной общей точке Q E .
2. Абоненты А и B действуют по схеме Диффи-Хеллмана для генерации общей секретной точки.
3. Абонент А выбирает некоторую точку Pm E , зашифровывает ее
с использованием координаты x полученной общей секретной точки и отправляет криптограмму абоненту B.
4.Абонент B расшифровывает полученную криптограмму.
5.Злоумышленник C осуществляет атаку «посередине» с перешифрованием сообщения на протокол информационного обмена между пользователями A и B.
6.Оформить и сдать отчет о выполнении лабораторной работы. Форма отчета приведена в приложении 1 для работы 6.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Работа 6 выполняется группами по три человека. Работа происходит по протоколу «Схема Диффи-Хеллмана». Возможные роли: абонент А, абонент B и злоумышленник C. Выберите роль для работы по протоколу. Договоритесь о том, кто создает сессию для работы по протоколу, и о времени начала работы.
Для выполнения работы используйте специализированный вычислитель для эллиптических кривых. Для задания характеристики p поля Fp
используйте таблицу простых чисел. Ранг кривой N (т.е. количество точек на кривой) считается автоматически.
По предварительной договоренности, для выполнения задания и осуществления атаки «посередине», возможна отправка сообщений между абонентамиA иB черезпользователя, выбравшегорользлоумышленника C.
55
Р а б о т а 7
ДИАЛОГОВЫЕ ПРОТОКОЛЫ ПЕРЕДАЧИ СЕКРЕТНЫХ СООБЩЕНИЙ
Цель: практическое изучение протокола Месси-Омуры на эллиптических кривых для передачи секретного сообщения; анализ безопасности схемы.
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
Рассмотрим протокол Месси-Омуры (Massey-Omura), использующий криптографические преобразования в группе точек эллиптической кривой, определенной в конечном поле [4, 17]. В информационном обмене участвуют два абонента А и B. Цель протокола состоит в передаче секретного сообщения от одного абонента к другому без предварительного распространения ключей.
Всем абонентам известна общедоступная информация, состоящая из кривой E , определенной в конечном поле Fp , ранга кривой N и харак-
теристики поля (модуля кривой) p . Пусть вид кривой задается уравнением:
y 2 = x3 + ax +b ,
при этом
4a3 + 27b2 ≠ 0 , a, b Fp .
Каждый из абонентов генерирует свою пару секретных чисел e и d , являющихся мультипликативно обратными по модулю ранга N :
ed ≡1mod N
Для этого необходимо выбрать такое число e , что
0 < e < N ,
НОД(e, N) =1 .
56
В таком случае число d можно легко вычислить, например, с помощью расширенного алгоритма Евклида из уравнения:
ed + Ny =1 .
Абонент А генерирует пару чисел (ea , da ) . Абонент B – пару чисел (eb , db ) .
Ниже приводится схема протокола информационного обмена.
А: Хочет переслать абоненту B секретное сообщение M , которому соответствует на кривой E некоторая точка Pm .
Для этого он вычисляет значение точки
Q1 = ea Pm .
Отправляет значение Q1 абоненту B.
B:Вычисляет значение точки
Q2 = ebQ1 .
Отправляет значение Q2 абоненту A.
A:Вычисляет значение точки
Q3 = daQ2 .
Отправляет значение точки Q3 абоненту B.
B:Вычисляет значение точки
Q4 = dbQ3 .
Значение Q4 равно точке Pm , соответствующей секретному со-
общению M . Действительно:
Q4 = dbQ3 = db (daQ2 ) = db (da (ebQ1)) = db (da (eb (ea Pm ))) .
Воспользовавшись свойством коммутативности операции умножения в конечном поле Fp, можно записать, что
Q4 = (ea da )(eb db )Pm = Pm .
Имея это значение, абонент B восстанавливает исходный открытый текст M .
В рассмотренном протоколе секретное сообщение передается от одного абонента другому в процессе диалога, состоящего в обмене криптограммами, при этом по открытым каналам связи передается только зашифрованная и общедоступная информация.
57
ЗАДАНИЕ
1.Всем участникам информационного обмена договорится об общих параметрах эллиптической кривой определенной в конечном поле, и о характеристике поля.
2.Каждому абоненту сгенерировать свои секретные параметры.
3.Осуществить передачу секретного сообщения от одного абонента к другому в соответствии с протоколом Месси-Омуры.
4.Оформить и сдать отчет о выполнении лабораторной работы. Форма отчета приведена в приложении 1 для работы 7.
ПРАКТИЧЕСКОЕ РУКОВОДСТВО
Работа 7 выполняется группами по два человека. Работа происходит по протоколу «Протокол Месси-Омуры». Возможные роли: абонент А и абонент B. Выберите роль для работы по протоколу. Договоритесь о том, кто создает сессию для работы по протоколу, и о времени начала работы. Секретное сообщение передается от абонента A к абоненту B.
Для выполнения работы используйте специализированный вычислитель для эллиптических кривых. Для задания характеристики p поля Fp
используйте таблицу простых чисел. Ранг кривой N (т.е. количество точек на кривой) считается автоматически.
58