Элементарное введение в эллиптическую криптографию, 1-2 [1-2]
5484004438
Элементарное введение в эллиптическую криптографию: Протоколы криптографии на эллиптических кривых. — М.: КомКнига, 2006
284
115
10MB
Russian
Pages [600]
Year 2006
Report DMCA / Copyright
DOWNLOAD DJVU FILE
Table of contents :
Том 1
Предисловие
Глава 1. Введение
1.1. Криптография с открытым ключом
1.2. Группы, кольца, поля
1.2.1. Группы
1.2.2. Кольца. Поля. Многочлены над полем
1.2.3. Алгоритм Евклида и его варианты
Глава 2. Конечные поля и эллиптические кривые
2.1. Поля Галуа
2.1.1. Характеристика поля
2.1.2. Мультипликативная группа конечного поля
2.1.3. Конечное расширение поля
2.1.4. Поле разложения многочлена
2.1.5. Минимальные многочлены. Существование неприводимых многочленов
2.1.6. След и норма элемента конечного поля
2.1.7. Алгоритмическое представление конечного поля
2.1.8. Поле Галуа как векторное пространство
2.1.9. Проверка, является ли нормальная система базисом. Переход от нормального базиса к стандартному
2.1.10. Переход от стандартного базиса к нормальному
2.1.11. О быстрой линейной алгебре
2.1.12. Быстрый алгоритм для решения систем линейных уравнений над конечным полем
2.1.13. Оптимальные и гауссовы нормальные базисы
2.1.14. Алгебраическое замыкание конечного поля
2.1.15. Квадратичные вычеты и извлечение квадратных корней в конечных полях
2.2. Эллиптические кривые
2.2.1. Алгебраические кривые и эллиптические кривые
2.2.2. Группа точек эллиптической кривой
2.2.3. Эллиптические кривые над полями действительных и рациональных чисел
2.3. Эллиптические кривые над конечными полями
2.3.1. Порядок эллиптической кривой
2.3.2. Легко ли вычислить порядок группы точек эллиптической кривой
2.3.3. Применения теоремы Хассе
2.3.4. О структуре групп эллиптических кривых
Глава 3. Неприводимые многочлены
3.1. Тестирование и поиск неприводимых многочленов
3.1.1. Чем интересны неприводимые многочлены
3.1.2. Тест на неприводимость. Алгоритм Берлекемпа
3.1.3. Оценка сложности алгоритма Евклида
3.1.4. Тестирование неприводимости многочленов
3.1.5. О тестировании неприводимости многочленов малого веса
3.1.6. Асимптотически быстрый алгоритм тестирования неприводимости многочленов
3.1.7. Вероятностные алгоритмы тестирования неприводимости многочленов
3.1.8. Генерация неприводимых многочленов
3.2. Тестирование примитивных многочленов
3.2.1. Тестирование примитивности неприводимого многочлена
3.2.2. Генерация примитивных многочленов
3.2.3. Генерация примитивных элементов в поле GF{p^)
3.3. Алгоритмы вычисления минимального многочлена
3.3.1. О сложности вычисления минимальных многочленов
3.3.2. Быстрый алгоритм вычисления минимального многочлена
3.4. Генерация нормальных базисов
3.4.1. Критерии базисности нормальной системы
3.4.2. Быстрое тестирование базисности нормальных систем
3.4.3. О нормальных базисах, порождаемых многочленами малого веса
Глава 4. Арифметика GF{2^) в полиномиальном базисе
4.1. Особенности реализации операций
4.1.1. Выбор поля и способов реализации
4.2. Классический алгоритм умножения в GF{2)X
4.2.1. Элементарные многочлены. Таблица умножения
4.2.2. Умножение многочленов с использованием таблицы умножения
4.2.3. Модификация классического алгоритма и гибридный алгоритм умножения
4.2.4. Еще две модификации классического алгоритма умножения
4.3. Алгоритм Карацубы и его реализация
4.3.1. О методе Карацубы
4.3.2. Умножение многочленов по методу Карацубы
4.3.3. Декомпозиционная схема умножения многочленов над GF{2)
4.3.4. Умножение многочленов
4.4. Приведение по модулю неприводимого многочлена
4.4.1. Классический алгоритм деления многочленов
4.4.2. Приведение многочлена по модулю многочлена малого веса
4.4.3. Обобщение алгоритма
4.4.4. Приведение по модулю многочлена высокого веса
4.5. Возведение в степень и инвертирование
4.5.1. Возведение в степень 2^ в стандартном базисе
4.5.2. Инвертирование в полиномиальном или нормальном базисах
4.5.3. Быстрый алгоритм возведения в степень в стандартном базисе
4.5.4. Быстрое инвертирование в стандартном базисе поля GF{p^)
4.5.5. Быстрое программное инвертирование на основе алгоритма Евклида
4.5.6. Деление с помощью алгоритма Евклида
4.6. Асимптотически быстрые алгоритмы
4.6.1. Быстрое умножение чисел и многочленов
4.6.2. Аддитивные цепочки
4.6.3. Приложения аддитивных цепочек
4.6.4. Аддитивные цепочки с вычитаниями
4.6.5. Алгоритмы возведения в степень с фиксированной базой
4.6.6. Ускорение проверки электронной подписи
4.6.7. Метод Монтгомери быстрого возведения в степень
4.6.8. Пример реализации метода Монтгомери логическими схемами
4.6.9. Быстрое! введения в степень через модулярную композицию
4.6.10. Быстрое инвертирование в стандартном базисе через модулярную композицию
4.6.11. Некоторые уточнения в случае q = 2
Глава 5. Арифметика в нормальных базисах
5.1. Оптимальные нормальные базисы
5.1.1. Три типа оптимальных нормальных базисов
5.1.2. Некоторые примеры примитивных элементов по модулю
5.1.3. Алгоритм генерации оптимальных нормальных базисов первого типа и доказательство их оптимальности
5.1.4. Алгоритм генерации оптимальных нормальных базисов второго типа и доказательство их оптимальности
5.1.5. Алгоритм генерации оптимальных нормальных базисов третьего типа и доказательство их оптимальности
5.2. Оптимизация преобразований базисов
5.2.1. О комбинированном использовании полиномиального и нормального базисов
5.2.2. Пример выполнения алгоритма перехода от оптимального базиса первого типа к стандартному и обратно
5.2.3. Примеры построения логических схем для умножения в стандартном и оптимальном нормальном базисе первого типа
5.2.4. Оценка сложности перехода от оптимальных нормальных базисов второго и третьего типа к стандартным и обратно
5.2.5. О явном вычислении формул перехода и минимальных многочленов для оптимальных нормальных базисов
5.2.6. Оценка сложности перехода от оптимальных нормальных базисов второго и третьего типа к стандартным в общем случае
5.2.7. Пример выполнения алгоритма перехода от оптимального базиса 2-го или 3-го типа к стандартному и обратно
5.2.8. Замечание о программной реализации
5.2.9. О сложности арифметических операций в конечных полях
5.2.10. Об оценках сложности возведения в степень и инвертирования в конечных полях
5.3. Гауссовы нормальные базисы
5.3.1. Построение гауссовых нормальных базисов
5.3.2. Сложность умножения, инвертирования и возведения в степень в ГНБ
5.3.3. Гауссовы базисы и гауссовы периоды
5.3.4. Еще один вывод таблицы умножения для ГНБ
5.3.5. Примеры гауссовых нормальных базисов в полях GF{2^)
5.3.6. Порядки генераторов базисов низкой сложности и быстрый алгоритм возведения в степень
5.3.7. О сложности порождения нормальных базисов, примитивных элементов и неприводимых многочленов
5.3.8. Редундантные базисы
5.4. Операции в нормальных базисах
5.4.1. Пример построения схемы для умножения и инвертирования в оптимальных нормальных базисах второго типа
5.4.2. Пример схемного инвертирования с использованием редундантного базиса
5.4.3. Пример схемы умножения в ГНБ
5.4.4. Быстрое программное инвертирование с помощью ГНБ
Литература
Предметный указатель
Том 2
Предисловие
Глава 1. Алгоритмы на эллиптических кривых
1.1. Алгоритм сложения и удвоения точек
1.1.1. Общая схема алгоритма сложения
1.1.2. Частные формулы для сложения и удвоения
1.1.3. Алгоритмы сложения и удвоения точек эллиптических кривых
1.2. Эллиптические кривые над GF{2^)
1.2.1. Суперсингулярные кривые
1.2.2. Несуперсингулярные кривые
1.2.3. Стандарты о выборе кривых для реализации криптосистем на эллиптических кривых
1.3. Скалярное умножение на суперсингулярных кривых
1.3.1. Вычисление к-Р методом аддитивных цепочек
1.3.2. Использование проективных координат
1.3.3. Метод Монтгомери
1.4. Скалярное умножение на несуперсингулярных кривых
1.4.1. Метод Монтгомери для несуперсингулярных кривых
1.4.2. Метод Монтгомери в проективных координатах
1.4.3. Метод Лопеса—Дахаба использования проективных координат
1.4.4. Алгоритм скалярного умножения, использующий операцию «ополовинивания»
1.5. Скалярное умножение на аномальных кривых
1.5.1. Свойства кривых Коблица
1.5.2. Использование модулярной редукции
1.6. Вычисление дискретного логарифма
1.6.1. Проблема дискретного логарифмирования
1.6.2. Алгоритм «большой шаг — малый шаг»
1.6.3. Алгоритм для групп составных порядков
Глава 2. Протоколы на эллиптических кривых
2.1. Выбор точки и размещение данных
2.1.1. Введение
2.1.2. Решение квадратных уравнений
2.1.3. Выбор точки эллиптической кривой
2.1.4. Размещение данных на эллиптической кривой
2.1.5. Определение порядка точки эллиптической кривой и нахождение образующего элемента группы точек эллиптической кривой
2.2. Распределение ключей
2.2.1. Введение
2.2.2. Распределение ключей для классической криптосистемы (протокол Диффи—Хеллмана)
2.2.3. Распределение ключей для классической криптосистемы (протокол Месси—Омуры)
2.2.4. Протокол распределения ключей Менезеса—Кью—Венстоуна (MQV-протокол)
2.3. Криптосистемы Эль-Гамаля
2.4. Протоколы цифровой подписи
2.4.1. Электронная цифровая подпись
2.4.2. Обобщенная схема электронной подписи Эль-Гамаля
2.4.3. Электронная подпись Эль-Гамаля с возвратом сообщения — схема Nyberg—Rueppel
2.5. Передача с забыванием
2.5.1. Введение
2.5.2. Схема некоторых протоколов передачи с забыванием
2.5.3. Некоторые частные случаи передачи с забыванием
2.5.4. Передача комбинации А; из п сообщений с забыванием
2.5.5. Применение передачи А; из п сообщений с забыванием
Глава 3. Криптосистемы на основе спариваний
3.1. Билинейная проблема Диффи—Хеллмана
3.1.1. Однораундовый протокол генерации общего секретного ключа между тремя участниками
3.1.2. Короткая цифровая подпись, основанная на спаривании
3.1.3. Криптосистема с публичным индивидуальным ключом
3.2. Спаривание Андре Вейля на эллиптических кривых
3.2.1. Дивизоры
3.2.2. Явное определение спаривания Вейля .
3.2.3. Функции на гиперэллиптических кривых
3.3. Алгоритм вычисления спариваний Вейля и Тейта
3.3.1. Усоверщенствования алгоритма Миллера
3.4. Спаривание Тейта
3.4.1. Применение спариваний для логарифмирования в эллиптических кривых
3.4.2. Кривые, удобные для спаривания
3.4.3. Искажающее отображение
3.4.4. Удобные для спаривания кривые с множителем безопасности А; ^ 2
3.4.5. Удобные для спаривания поля
3.5. Кривые над полями характеристики три
3.5.1. Устранение делений
3.6. О больших значениях параметра безопасности
3.6.1. Скалярное умножение точек кривой над полем большой характеристики ,
3.6.2. Ускорение алгоритма Миллера для больших к
3.6.3. Итерированное удвоение в якобиевых координатах
3.6.4. Комбинирование с другими методами
3.6.5. Использование аддитивных цепочек с двойной базой
3.7. Алгоритм Дуурсма—Ли
3.7.1. Алгоритм Дуурсма—Ли над полями характеристики два
3.8. Некоторые алгоритмы арифметики конечных полей
3.8.1. Извлечение квадратных корней в полях характеристики большей двух
3.8.2. Извлечение корней ^?-й степени в полях характеристики
3.8.3. Один метод компактной записи точек суперсингулярных кривых
3.8.4. Арифметика в полях характеристики большей двух
3.9. О реализации алгоритма Дуурсма—Ли
3.9.1. Использование нормального базиса в поле G
3.9.2. Умножение в поле К методом Карацубы
3.9.3. Умножение в поле К методом Тоома
3.9.4. Возведение в степень р в поле К
Приложение А. Алгоритмы с двоичными матрицами
А.1. Представление векторов и матрицы
А.2. Умножение матрицы на вектор
А.З. Алгоритм GAUS-MATRIX-TRIAN
А.4. Алгоритм проверки невырожденности матрицы
А.5. Приведение матрицы к диагональному виду
А.6. Обращение матрицы
А.7. Умножение вектор-строки на матрицу
Приложение В. Таблицы неприводимых многочленов
8.1. Неприводимые многочлены над полем GF{2)
В.1.1. Неприводимые трехчлены степени п, 2 < п ^ 2000
В. 1.2. Неприводимые трехчлены вида I + ж"~* + ж" степени п, 2)
Приложение С. Таблицы ОНБ
С.1. ОНБ размерности п, 2 ^ п < 30
С.2. ОНБ размерности п, 30 < п < 1013
С.З. Возможные размерности ОНБ п, 998 < п < 10 000
Приложение D. Примеры исполнения MQV-протокола
Литература
Предметный указатель