Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Специальные разделы математики. Учебное пособие (курс лекций)
.pdf
{}
|.
sS∈
pB∈
nn
()
Лекция 8
в качестве столбцов матрицы и затем использовать метод Гаусса,
который легко приспособить для работы с целыми числами по
mod 2. Как только мы найдём линейно зависимые векторы, мы
просто перемножаем числа, соответствующие этим векторам, и
получаем квадрат, который ищем.
Однако возведение в квадрат множества случайных чисел
по mod n приводит к большому числу различных простых множителей, длинным векторам и большой матрице. Чтобы избавиться от этой проблемы, мы специально ищем числа, такие что
2
mod n имеет только небольшие простые множители (такие числа
a
называются гладкими числами). Их сложнее найти, но использование таких чисел позволяет избежать больших векторов и матриц.
Основная идея метода
В качестве факторной базы B берется множество простых чисел, состоящее из p = 2 и всех таких нечетных простых чисел p,
не превосходящих заданной границы P (которая выбирается из
соображений оптимальности), что n – квадратичный вычет по
модулю p.
Множество S целых чисел, в котором ищутся B-числа (B-чис-
ло – целое число, делящееся только на простые числа из B) выглядит следующим образом:
2
Stnn tnA=−
+≤≤
Далее, вместо того чтобы брать одно за другим
1
+
, и де-
лить его на простые числа из B, берутся одно за другим каждое
и проверяется делимость на p (и его степени) одновременно для всех . Для построения списка всех простых p, не превосходящих A, можно использовать решето Эратосфена.
Алгоритм
1. Выбираются границы P и A и порядка величины (далее
обозначается как Ln), такие что P < A < P2.
2. Для
tn
+
+
A=
+12,,...,
по порядку в стол-
бец выписываются целые числа t2 – n.
3. Для каждого нечетного простого числа p < P проверяется
np/
=1
условие
. Если оно не выполняется, p удаляется из
факторной базы.
- 121 -

СПЕЦИАЛЬНЫЕ РАЗДЕЛЫ МАТЕМАТИКИ
4. Предполагая, что p – такое нечетное простое число, что
n – квадратичный вычет по модулю p, решается уравне-
ние для β = 1, 2,… . Значения β берутся в порядке возрас-
тания пока не окажется, что уравнение не имеет решений
t, сравнимых по модулю pβ с каким-либо из чисел в об-
ласти Пусть β – наибольшее из таких чисел, для которых в указанной области найдется число t со свойством
2
tn p
≡ (mod )
5. Пусть t
β
.
1
и t2 – решения
2
tn p
≡ (mod )
β
tt p
≡− (mod )
и
21
β
6. При том же значении p просматривается список значений
2
t
– n, полученный в п. 2. В столбце, соответствующем
p, ставится 1 против всех значений t
t отличается от t
на некоторое кратное p. После этого
1
1 заменяется на 2 для всех таких значений t
отличается от t
мое проделывается с t
на кратное p2 и т. д. до β. Затем то же са-
1
вместо t1. Наибольшее возможное
2
2
– n, для которых
2
– n, что t
число в столбце – β.
7. При добавлении очередной единицы к числу в столбце в
п. 5, соответствующее число t
2
– n делится на p и полу-
ченный результат сохраняется.
8. В столбце под p = 2 при n ≠ 1 (mod 8) просто ставится 1
против t
лится на 2. При n ≡ 1 (mod 8) решается уравнение t
2
– n с нечетным t и соответствующее t2 – n де-
2
– n
(mod 2β) и решение продолжается в том же ключе, как
при нечетном p.
9. Когда все указанные действия будут проведены для всех
простых чисел, не превосходящих P, следует отбросить
все числа t
2
– n, кроме обратившихся в 1 после деления
на все степени p, не превосходящих P. В итоге получится таблица, в которой в b
такие значения t из интервала что t
столбце будут содержаться все
i
2
– n есть B-число,
а остальные столбцы будут соответствовать тем значениям p < P, для которых n – квадратичный вычет.
10. Далее используется обобщенный метод факторизации
Ферма (метод факторных баз).
- 122 -

Лекция 8
Метод факторизации с помощью эллиптических кривых бу-
дет рассмотрен в следующей лекции.
Выводы
В лекции рассмотрены некоторые методы и алгоритмы теории чисел, применяемые в криптографии: применение простых
чисел; проверка простоты натуральных чисел; некоторые методы и алгоритмы факторизации натуральных и целых чисел.
Вопросы для самопроверки
1. Какие числа называются простыми?
2. На какие классы делятся алгоритмы тестирования чисел
на простоту?
3. Какие вероятностные тесты простоты Вы знаете?
4. Какую задачу решают вероятностные тесты простоты?
4. Как оценивается теоретическая сложность вероятностных тестов простоты?
5. Какие детерминированные тесты простоты Вы знаете?
6. Какую задачу решают детерминированные тесты простоты?
7. Как работает тест Ферма?
8. Как определить простоту числа с помощью теста Миллера-Рабина?
9. Каковы достоинства и недостатки каждого из вероятностных тестов (сравнить хотя бы 2 из них).?
10. Что называется факторизацией чисел?
11. Какие алгоритмы факторизации чисел Вы знаете?
12. Какие методы решета числового поля Вы знаете и чем
они отличаются?
Литература: 1, 11, 14, 15, 19.
- 123 -

СПЕЦИАЛЬНЫЕ РАЗДЕЛЫ МАТЕМАТИКИ
{}
),
[]
9. ПРИМЕНЕНИЕЭЛЛИПТИЧЕСКИХКРИВЫХ
ДЛЯПРОВЕРКИПРОСТОТЫИФАКТОРИЗАЦИИ
План
9.1. Некоторые сведения об эллиптических кривых над конечным полем.
9.2. Факторизация с помощью эллиптических кривых.
9.3. Алгоритм Шуфа вычисления порядка группы точек эллиптической кривой над конечным полем.
9.4. Реализация метода генерации эллиптических кривых
на основе алгоритма подсчета количества точек.
9.5. Выбор эллиптической кривой для формирования подписи.
9.1. Некоторыесведенияобэллиптических
кривыхнадконечнымполем
Эллиптические кривые являются частью алгебраических
кривых.
Приведем некоторые определения и теоремы теории алгебра-
ических кривых [1].
Определение 1. Алгебраической кривой порядка n над полем
ExyK Fxy
=∈ =
К называется множество
FXYKXY(,
E
∈
называются точками кривой.
F
– многочлен степени n над полем К. Элементы
(,)|(,)
F
Алгебраическая кривая порядка 1 над полем К называется
прямой над этим полем.
Известно, что частные производные многочлена F(X,Y) мож-
но представить в виде:
∂
F
()... ()
=++
FX mF XY
∂
X
m
m11
()2
−
;
0
, где
∂
F
()... ()
=++
GY nG YX
∂
X
n
n11
−
.
Определение 2. Точка называется простой (неособой), если
значения частных производных
- 124 -

Лекция 9
()
()
[]
Xb
−−
qX
[]
∈ ()
Xb
70
32
ab+≠
()
(())
()
2
∂
F
P
∂
X
и
2
∂
F
P
∂
Y
не равны нулю одновременно. В противном случае точка называется особой или кратной.
Определение 3. Кривая E
называется гладкой, если все её
F
точки являются простыми.
Пусть GF(q) – поле из q элементов, характеристика которого
больше 3. Рассмотрим многочлен
FXYGFq XY(,)(),∈
.
Лемма 1. Алгебраическая кривая , заданная многочленом
FXYY Xa
(,)=−
23
, (9.1)
является гладкой тогда и только тогда, когда многочлен
FX XaXbGF
() ()=++∈
3
не имеет кратных корней в поле
разложения.
Лемма 2. Пусть поле из q элементов, характеристика которо-
го больше 3, а
bGFq
. Многочлен
FX Xa
()=++
3
не имеет кратных корней в поле разложения в том и только в том случае, когда выполнено условие
42
. (9.2)
Следствие. Алгебраическая кривая, заданная многочленом
(9.1), является гладкой только тогда, когда выполнено условие (9.2).
Определение 4. Эллиптической кривой над полем
зывается множество
кой алгебраической кривой
ном
FXY(,)
вида (9.1), и еще одного элемента О, называемого
EGFq
ab,
E
, состоящее из всех точек глад-
GF q
над
F
, заданной многочле-
GF q
на-
«точка в бесконечности».
Элементы множества
(())
ab,
называются точками кри-
EGFq
вой. Точки кривой, отличные от точки О, называются конечными
или аффинными точками кривой. Из следствия вытекает, что для
эллиптической кривой должно выполняться условие (9.2).
В криптографии интерес к эллиптическим кривым над конечными полями вызван тем, что они являются источником конечных абелевых групп, удобных для вычислений и достаточно
богатых по структуре.
При описании свойств групп точек эллиптических кривых
важным вопросом является вычисление порядка этих групп.
- 125 -

СПЕЦИАЛЬНЫЕ РАЗДЕЛЫ МАТЕМАТИКИ
, �∈
kl
il
[]
lC
9.2.Факторизацияспомощьюэллиптических
кривых
Алгоритм факторизации натурального числа с использованием эллиптических кривых имеет субэкспоненциальное время
выполнения. Является третьим по скорости работы после общего
метода решета числового поля и метода квадратичного решета.
На практике часто используется для выявления (отбрасывания) небольших простых делителей числа. Если полученное
после работы алгоритма число все еще является составным, то
остальные сомножители – большие числа. При увеличении количества кривых шансы найти простой делитель возрастают,
тем не менее зависимость ожидаемого количества эллиптических кривых от количества цифр в искомом делителе экспоненциальна.
Приведем алгоритм факторизации натурального числа с использованием эллиптических кривых:
Дано составное целое нечетное число n. Нужно найти его не-
тривиальный делитель d, 1 < d < n.
Случайным образом выбирается эллиптическая кривая
2
= x3 + ax + b,
E: y
ab
где
разложения окажется неудачной, следует взять другие E и P и
повторить алгоритм сначала.
1. Выбирается целое число k, делящееся на степени малых
где
2. Вычисляем kP (все действия производятся по модулю n)
, и некоторая точка P = (x, y) на ней. Если попытка
n
простых чисел (не больших некоторого B), не превосходящих C, то есть
α
i
α
C=
log
– наибольший из возможных показате-
лей, при котором
α
i
=
≤ .
П
lB
≤
,
где
му закону.
,
– операция сложения, определенная по группово-
- 126 -

Лекция 9
Вычисления проводятся до тех пор, пока при попытке
найти число, обратное к 2yp, не появляется число, не взаимно простое с n. Это произойдёт при таком k = k1, что
k1P = O, то есть порядок P в группе E по модулю n явля-
ется делителем k1.
3. При применении алгоритма Евклида вместо обращения
знаменателя по модулю n, получаем нетривиальный наи-
больший общий делитель этого знаменателя и n, то есть
собственный делитель числа n.
Обоснование
Если числа p и q – два простых делителя числа n, то эллиптическая кривая y2 = x3 + ax + b (mod n) соответствует двум
эллиптическим кривым: по модулю p и по модулю q. Эти две
кривые с заданной операцией сложения точек образуют группы, содержащие Np и Nq элементов, соответственно. По теореме
Лагранжа, для любой точки Р на исходной кривой по модулю p
из равенства kP = ∞ для минимального положительного числа
k следует, что k делит Np (в частности, NpP = ∞). Аналогичное
утверждение справедливо и для кривой по модулю q. Для случайно выбранной эллиптической кривой порядки Np и Nq являются случайными числами, близкими к p+1 и q + 1, соответственно
(см. ниже). Поэтому маловероятно, что большинство простых
делителей Np и Nq совпадают, и вполне вероятно, что при вычислении мы столкнёмся с некоторыми kP = ∞ по модулю р, но не
по модулю q, или наоборот. Если это так, то kP не существует на
исходной кривой, а в вычислениях мы нашли такое v, что либо
НОД (v, p) = p, либо НОД (v, q) = q, но не одновременно. Тогда
НОД (v, n) является нетривиальным делителем числа n.
9.3. АлгоритмШуфавычисленияпорядка
группыточекэллиптическойкривой
надконечнымполем
Алгоритм Шуфа – эффективный алгоритм подсчёта числа
точек на эллиптической кривой над конечным полем. Алгоритм
имеет приложения в эллиптической криптографии, где важно
- 127 -

СПЕЦИАЛЬНЫЕ РАЗДЕЛЫ МАТЕМАТИКИ
℘=
11
22
ωω
знать число точек, чтобы судить о трудности решения задачи
дискретного логарифмирования на группе точек на эллиптической кривой.
Алгоритм опубликован в 1985 году, и это был теоретический
прорыв, поскольку это был первый детерминированный алгоритм полиномиального времени. До алгоритма Шуфа подходы
к подсчёту точек на эллиптических кривых, каким был алгоритм
малых и больших шагов, были по большей части трудоёмкими и
требовали экспоненциального времени работы.
Пусть E – эллиптическая кривая, определённая над конечным
полем Fq, где q = pn для простого p и целого n ≥ 1n ≥ 1. Над полем с характеристикой ≠2,3 эллиптическая кривая может быть
задана (коротко) уравнением Вейерштрасса:
Ez
() (
+
∑
2
zz
0
∈
\{ }
ω
Γ
−
()
1
−
)
,
которое можно привести в виде
E: y2 = x3 + ax + b {a, b ∈ Fq, a, b ∈ Fq}.
Множество точек, определённых над Fq, состоит из решений
a, b ∈F2q, удовлетворяющих уравнению кривой, и бесконечно
удалённой точки O. Если использовать групповой закон на эллиптических кривых на этом множестве, можно видеть, что это
множество E(Fq)образует абелеву группу, в которой O действует
как нулевой элемент. Чтобы посчитать точки на эллиптической
кривой, мы подсчитываем мощность множества E(Fq). В подходе Шуфа для подсчёта мощности этого множества используется
теорема Хассе об эллиптических кривых вместе с китайской теоремой об остатках.
Теорема Хассе об эллиптических кривых, также называемая границей Хассе, даёт оценку числа точек на эллиптической
кривой над конечным полем, причём ограничивает значения
как сверху, так и снизу. Теорема Хассе эквивалентна определению абсолютного значения корней локальной дзета-функции Е.
В этом виде её можно рассматривать как аналог гипотезы Римана для поля функций, ассоциированного с эллиптической
кривой.
- 128 -

()
Fq
≤+11
22
qq
Лекция 9
Теорема Хассе об эллиптических кривых утверждает, что ко-
личество точек на эллиптической кривой над конечным полем
Fq лежит в интервале
()|()|
qE
−≤
q
.
Или, что то же самое, это число близко к числу точек на про-
ективной прямой над тем же полем:
|| ()||EF
−−<12
q
.
9.4. Реализацияметодагенерации
эллиптическихкривыхнаоснове
алгоритмаподсчетаколичестваточек
Знание количества точек эллиптической кривой над конечным полем необходимо для проверки её криптографической
стойкости.
Многим криптографическим алгоритмам, использующим
аппарат эллиптических кривых над конечным полем, требуется знание порядка группы используемой эллиптической кривой.
В частности, порядок группы (количество точек) должен быть
известен при генерации эллиптической кривой для того, чтобы
проверить её криптографическую стойкость. Например, этого
требуют новый американский и российский стандарты на цифровую подпись.
Существует два основных метода решения этой проблемы:
1) использовать способы, позволяющие получать эллиптические кривые, порядок группы которых удовлетворяет
некоторым выбранным заранее свойствам, например, алгоритмы «комплексного умножения»;
2) выбрать эллиптическую кривую случайным образом, вычислить порядок группы этой эллиптической кривой, а затем проверить, удовлетворяет ли эллиптическая кривая требуемым свойствам, используя это вычисленное значение.
Первый алгоритм для подсчёта количества точек эллиптической кривой над конечным полем, выполняющийся за полиномиальное время, был предложен Шуфом (Schoof). В первое
- 129 -

СПЕЦИАЛЬНЫЕ РАЗДЕЛЫ МАТЕМАТИКИ
время считалось, что алгоритм Шуфа малопригоден для применения на практике, но Элкис (Elkies) и Аткин (Atkin) внесли в
него несколько важных добавлений, после чего он стал известен
как алгоритм SEA (по первым буквам фамилий авторов). Позже
были предложены дальнейшие усовершенствования алгоритма.
В ходе работы была написана библиотека «ECcount» на языке программирования C++, реализующая версию алгоритма SEA,
описанную в статье. Библиотеку можно собрать как в операционных системах Unix, так и в операционных системах Windows.
Используя написанный код, можно легко реализовать второй метод генерации параметров эллиптических кривых.
В качестве основы была взята известная математическая библиотека NTL. Выбор базовой библиотеки обусловлен её функциональностью, скоростью (например, на ней были реализованы
некоторые криптографические атаки), компактностью (исходный
код занимает чуть более 600 килобайт), переносимостью и наличием криптографически стойкого генератора случайных чисел.
Существует несколько других реализаций алгоритма SEA, но
они имеют определённые недостатки. В частности, рассматривались реализации, основанные на математических библиотеках
Miracle и Lidia. Недостатком первой реализации является то, что в
ней алгоритм представлен в виде отдельного приложения, лицензия которого запрещает его модификацию третьими сторонами.
Данный факт не позволяет произвести интеграцию данной реализации алгоритма с другими программами, что значительно снижает удобство её использования, а также не позволяет произвести
модификации использованного в ней алгоритма в целях ускорения его выполнения. Недостатком второй реализации является
невозможность её сборки в операционных системах Windows.
Библиотека «ECcount» может быть расширена за счёт включения в неё новых быстрых алгоритмов подсчёта количества точек эллиптических кривых над полями Галуа порядка 2n. Также
возможно использовать библиотеку в качестве основы для более
универсальной библиотеки на основе библиотеки NTL, реализующей весь набор операций с эллиптическими кривыми, необходимых для написания криптографических приложений.
- 130 -
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
