Добавил:
Да поможет вам Котельников Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

7 Лекция - Асимметричные криптосистемы

.pdf
Скачиваний:
4
Добавлен:
23.06.2024
Размер:
459.25 Кб
Скачать

11

p 1

xi p 1

yi

t i

t i

 

i 0

i 0

 

Теперь заметим, что произведение в обеих частях равенства представляет собой приведенный многочлен от t степени h. Иными словами, если бы мы вычислили оба этих произведения и заменили значение t формальным параметром, например, z, тогда старшим членом на каждой стороне был бы х в степени h с коэффициентом 1. Мы знаем, что если мы подставим значение t вместо z, то значения этих двух полиномов будут равны. Поэтому вычтем один из другого, старшие члены сократятся, и если мы подставим t, то получим 0. Мы получили полином степени h-1, корнем которого является t. Но это противоречит тому, что мы выбрали t алгебраическим элементом степени h. Таким образом, доказательство закончено и построение корректно.

Хор разработал метод использования данного построения в качестве основы криптосистемы. Кратко он заключается в следующем. Мы выбираем р и h достаточно маленькими, чтобы мы могли вычислять дискретные логарифмы в GF(ph). Хор рекомендует р около 200, a h около 25. Затем мы выбираем t и g как указано выше. Для каждого из них будет много вариантов, и мы можем просто произвести случайный выбор (В действительности, будет так много пар <t,g>, что очень большое количество пользователей могут использовать одинаковые р и h, и вероятность того, что два пользователя выберут одинаковые ключи, будет пренебрежимо мала.). Затем мы следуем конструкции Боуза-Чоула. Мы вычисляем логарифмы по основанию g от t+i для каждого i, это даст нам a. Наконец, мы выбираем случайную перестановку а, которая и будет нашим ключом. Мы публикуем результат перестановки а вместе с р и h. Величины t, g и использованная перестановка остаются в секрете.

Чтобы A послать сообщение B, она просто берет свое сообщение и вычисляет

S = (х,а).

В действительности, это не так уж и просто, поскольку сообщение должно быть длиной р бит и должно быть (х,1) = h, но Хор представил довольно прямолинейный метод преобразования неограниченной битовой строки в несколько блоков, каждый из которых имеет требуемую форму. В получает S. Он возводит g в степень S и выражает результат в виде полинома от t степени h с коэффициентами из GF(p). Далее он вычисляет h корней этого полинома, затем применяет обратную подстановку и получает индексы элементов в х, содержащих единицы.

Интересно отметить, что если кто-либо откроет эффективный метод вычисления дискретных логарифмов, то такой алгоритм не только не поможет вскрыть эту систему, но и облегчит генерацию ключей, так как при этом мы должны вычислять дискретные логарифмы.

До настоящего времени не было опубликовано ни одного эффективного метода вскрытия этой системы при знании только открытого ключа.

Криптосистемы, основанные на эллиптических кривых

Рассмотренная выше криптосистема Эль-Гамаля основана на том, что проблема логарифмирования в конечном простом поле является сложной с вычислительной точки зрения. Однако, конечные поля являются не единственными алгебраическими

12

структурами, в которых может быть поставлена задача вычисления дискретного логарифма. В 1985 году Коблиц и Миллер независимо друг от друга предложили использовать для построения криптосистем алгебраические структуры, определенные на множестве точек на эллиптических кривых. Мы рассмотрим случай определения эллиптических кривых над простыми полями Галуа произвольной характеристики, а с заданием эллиптических кривых над полями Галуа характеристики 2 можно ознакомиться в пособии Лося.

Пусть р > 3 - простое число. Пусть а, b из GF(p) такие, что 4а2 + 27b2 не равно 0.

Эллиптической кривой Е=Ea,b над полем GF(p) называется множество решений (х, у)

уравнения

у2 = х3 + ах + b (*)

над полем GF(p) вместе с дополнительной точкой , называемой точкой в бесконечности или нулевой точкой О (поскольку эта точка выполняет роль нейтрального элемента в группе точек).

Представление эллиптической кривой в виде уравнения (*) носит название

эллиптической кривой в форме Вейерштрасса.

Обозначим количество точек на эллиптической кривой Е через #Е E . Теорема

Хассе гласит, что

Е p 1 t ,

где t 2p , #Е называется порядком кривой E, a t - следом кривой Е.

Если |Е|=р+1, то кривая Е называется суперсингулярной.

Зададим бинарную операцию на Е (в аддитивной записи) следующими правилами:

;

x, y E: x, y x, y ;

x, y E: x, y x, y ;

x1, y1 , x2, y2 E,x1 x2 : x1, y1 x2, y2 x3, y3 , где

x3 2 x1 x2 ,

y3

x1

x3

y1

,

y2 y1

;

 

 

 

 

 

 

 

x2 x1

при этом x1, y1 E, y1 0: x1, y1 x1, y1 x4, y4 , где

x4 2 2x1 ,

 

x1

 

y1

3x2

a

y4

x4

,

1

 

;

 

 

 

 

 

 

 

 

2y1

Множество точек эллиптической кривой Е с заданной таким образом операцией образует абелеву группу.

Отметим, что столь экзотическое аналитическое задание функции сложения вытекает из естественных геометрических операций на декартовой плоскости.

Для а = 0, b=7 эллиптическая кривая выглядит так:

13

Для сложения точек, + = мы проводим через точки и прямую, которая, по свойствам эллиптических кривых, пересекает кривую в некоторой третьей точке `. Затем мы находим точку на кривой, симметричную точке ` относительно оси . Именно эта точка и будет считаться суммой и .

Для того, чтобы сложить точку саму с собой, определяется операция удвоения точки,+ = . При удвоении проводим прямую, касательную к данной эллиптической кривой в точке , которая, согласно свойствам кривой, должна пересекать ее еще в одной точке`. Точка , симметричная ` относительно оси , и будет считаться точкой удвоения .

Пользуясь операцией сложения точек на кривой, можно естественным образом определить операцию умножения точки Р из E нa произвольное целое число n:

nР = Р + Р+ ... +Р,

14

где операция сложения выполняется п раз.

Теперь построим одностороннюю функцию, на основе которой можно будет создать криптографическую систему.

Пусть Е — эллиптическая кривая, Р — точка на этой кривой. Выберем целое число n меньше, чем |Е| - порядок E. Тогда в качестве прямой функции выберем произведение nР. Для его вычисления по оптимальному алгоритму, изложенному в пособии Лося, потребуется не более 2log2n операций сложения. Обратную задачу сформулируем следующим образом: по заданным эллиптической кривой Е, точке Р из Е и произведению nР найти n. В настоящее время все известные алгоритмы решения этой задачи требуют экспоненциального времени.

Теперь мы можем описать криптографический протокол, аналогичный известному протоколу Диффи-Хеллмана. Для установления защищенной связи два пользователя А и

Всовместно выбирают эллиптическую кривую Е и точку Р на ней. Затем каждый из пользователей выбирает свое секретное целое число, соответственно а и b. Пользователь А вычисляет произведение аР, а пользователь В - bР. Далее они обмениваются вычисленными значениями. При этом параметры самой кривой`, координаты точки на ней и значения произведений являются открытыми и могут передаваться по незащищенным каналам связи. Затем пользователь А умножает полученное значение на а, а пользователь

Вумножает полученное им значение на b. В силу свойств операции умножения на число abР = baР. Таким образом, оба пользователя получат общее секретное значение (координаты точки аbР), которое они могут использовать для получения ключа шифрования. Отметим, что злоумышленнику для восстановления ключа потребуется решить сложную с вычислительной точки зрения задачу определения а и b по известным Е, Р, aР и bР.

Заметим, что эллиптическая кривая E Ea,b

Ea,b GF p , может быть задана не

только через a и b, а еще и с помощью своего инварианта

j E j Ea,b 1728

 

 

4a3

 

,

 

 

4a

3

2

 

 

 

 

 

 

27b

 

 

 

 

где a 3ck

2

, b 2ck

3

 

 

 

j Ea,b

 

 

 

, c

 

 

, а k - это произвольный отличный от 0 элемент

 

 

1728 j Ea,b

поля GF p .

Отметим, что при разных k получаются разные по записи Ea,b , но группы точек будут одинаковы, т.е. получаются эквивалентные эллиптические кривые