- •О. Н. Жданов в. А. Чалкин эллиптические кривые: основы теории и криптографические приложения
- •Оглавление
- •П редисловие
- •Эллиптические кривые
- •§ 1. Алгебраические кривые и эллиптические кривые
- •Список уравнений кривых с целыми коэффициентами,
- •Список уравнений кривых с целыми коэффициентами,
- •§ 2. Группа точек эллиптической кривой
- •Ранги эллиптических кривых 𝛦, задаваемых уравнениями
- •Ранги эллиптических кривых 𝛦, задаваемых уравнениями
- •Значения для 𝑥 от 0 до 22
- •Точки кривой
- •§ 3. Применение эллиптических кривых в задаче факторизации чисел
- •Контрольные задания
- •Глава 2 Криптосистемы на эллиптических кривых
- •§ 1. Кодирование и дискретное логарифмирование
- •§ 2. Ключевой обмен и шифрование с использованием группы точек эллиптической кривой
- •Вычислительные усилия, необходимые для криптоанализа при использовании эллиптических кривых и rsa
- •§ 3. Алгоритм цифровой подписи, основанный на группе точек эллиптической кривой
- •Контрольные задания
- •Глава3 . Аспекты практической реализации криптографических алгоритмов на эллиптических кривых
- •§ 1. Эффективная реализация элементарных операций
- •§ 2. Определение количества точек на кривой
- •§ 3. Использование стандартных кривых
- •§ 4. Применение эллиптических кривых в криптографии
- •Алфавит точек эллиптической кривой для выполнения индивидуальных заданий
- •Пример выполнения контрольного задания 4.Умножение точки на число.
- •Пример3.Генерация подписи
- •Пример 4.Проверка подписи
- •Контрольные задания
- •1. Шифрование
- •2. Расшифрование
- •3. Сложение точек
- •5. Генерация подписи
- •6. Проверка подписи
- •Практические задания
- •Послесловие
- •Библиографический список
- •3. Определения и обозначения
- •Эллиптические кривые: основы теории и криптографические приложения
§ 3. Использование стандартных кривых
Ввиду того что формирование случайных кривых, особенно выполнение этапа подсчета количества точек на кривой, может быть слишком трудной задачей (даже с применением описанного выше алгоритма Шуфа), на практике часто бывает достаточным использовать кривые, предлагаемые различными стандартами или другими источниками. Например, в американском стандарте FIPS186-2 приводятся параметры эллиптических кривых для различных длин модулей. Вообще говоря, нет никаких ограничений на использование всеми одной хорошо выбранной кривой. Однако такая кривая, при широком ее использовании, становится слишком притягательной для злоумышленников. Не исключено, что со временем они смогут найти какие-либо эффективные атаки именно на эту кривую, используя ее характерные особенности, не принятые ранее во внимание. Но все это лишь возможность, вероятность осуществления которой считается многими специалистами ничтожно малой.
Приведем
пример реальной кривой, рекомендуемой
в FIPS186-2
(CurveР-256).
Обратным «слэшем» (\) обозначим продолжение
числа на следующей строке. Предполагается,
что кривая задана уравнением
,
число точек на кривой
,
точка
является генератором подмножества
мощности q
точек,
где q
–
простое число. Нижний индекс после
записи числа означает основание системы
счисления (десятичная или шестнадцатеричная):
;
;
(простое число);
;
;
.
Мы видим, что p и q вряд ли можно назвать случайно выбранными числами и вся «случайность» кривой определяется случайным выбором параметра b (это считается вполне обоснованным).
Первый вопрос, который возникает, когда мы видим кривую, подобную вышеприведенной: нет ли ошибки в записи параметров? Три проверки могут быть сделаны для выяснения этого вопроса.
Проверяем, является ли число p простым.
Проверяем, удовлетворяет ли точка уравнению кривой.
Удостоверяемся в том, что n – это действительно количество точек на кривой. Заметим, что такую проверку целесообразно делать и в том случае, когда мы сами вычисляем n, например, с помощью алгоритма Шуфа. В общем случае
,
где h
– небольшое
число, a
q
–
простое. Прежде всего путем последовательного
деления и проверки на простоту
следует убедиться, что n
соответствует заявленной форме. Затем
выбираем случайно точку на кривой P
(можно взять
,
где
k
–
случайно выбранное число). Число n
гарантированно является числом
точек на кривой, если одновременно
и
.
При невыполнении этого условия
возможны два варианта. Если
,
то
n
–
это не число точек. Если же
(вероятность этого крайне мала),
то нужно взять другую точку P.
Второй
вопрос, который возникает, когда нам
предъявляют «готовую» кривую:
действительно ли она была сгенерирована
случайным образом? Этот вопрос вообще
актуален для многих задач криптографии.
Возможно, предложенная кривая обладает
каким-либо редким свойством, позволяющим
«взламывать» криптосистему, и человек,
изготовивший эту кривую, может в
дальнейшем получить доступ, скажем, к
информации, зашифрованной при помощи
этой кривой. Задача доказательства
отсутствия заранее заданных специальных
свойств кривой сводится к задаче
подобного же доказательства для случайно
выбираемых параметров. Например, для
рекомендованной выше кривой мы должны
доказать случайность выбора параметра
b.
Эту задачу можно решить следующим
образом. Пусть
– криптографически стойкая хеш-функция.
Чтобы сгенерировать число b,
вначале выбираем число s,
а затем вычисляем
и предъявляем оба числа: b
и
s.Если
хеш-функция удовлетворяет всем требованиям
стойкости, то b
не
может иметь никаких заранее заданных
свойств, и мы можем спокойно им
пользоваться. Число s
является
«сертификатом», доказывающим «чистоту»
числа b.
Приведенная выше эллиптическая кривая
имеет подобный сертификат, основанный
на хеш-функции SHA-1,
и стандарт оговаривает процедуру
использования этого сертификата. Так
что мы можем быть уверены в том, что
кривая была сформирована действительно
случайным образом.
