- •1.Основы защиты информации
- •1.1.Общие вопросы информационной безопасности
- •1.2.Правовые методы обеспечения информационной безопасности
- •1.3.Административные методы защиты информации
- •1.4.Преступления в сфере компьютерной информации
- •Глава 28. Преступления в сфере компьютерной информации
- •1.5.Программно-аппаратные методы защиты информации
- •2.Краткая история развития криптографии
- •2.1.Криптография в Древнем мире
- •2.2.Основные этапы развития криптографии
- •3.Идеи и методы криптографии
- •3.1.Модели шифрования/дешифрования дискретных сообщений
- •3.2.Идеально стойкие криптосистемы
- •3.3.Необходимое условие теоретической недешифруемости
- •3.4.Расстояние единственности
- •3.5.Вычислительно стойкие криптосистемы
- •4.Способы формирования криптограмм
- •4.1.Блоковые и потоковые шифры
- •4.2.Маскираторы аналоговых сообщений
- •5.Блоковое шифрование
- •5.1.Симметричные блоковые шифры
- •5.2.Структура Файстеля
- •5.3.Многократное шифрование блоков
- •5.4.Модифицированные алгоритмы блоковых шифров
- •5.5.Параметры современных блоковых шифров Зарубежные блоковые шифры
- •Государственный стандарт шифрования Российской Федерации
- •6.Потоковые шифры
- •6.1.Аддитивные потоковые шифры
- •6.2.Применение линейных рекуррентных регистров для потокового шифрования
- •6.3. Рис. 15. К обсуждению применимости лрр для потокового шифрования Потоковые режимы применения блочных шифров
- •7.Асимметричные криптосистемы
- •7.1.Особенности асимметричных криптосистем
- •8.Краткие сведения из теории чисел
- •7.2.1. Модульная арифметика
- •7.2.2. Возведение в степень
- •8.1.Вычисление дискретного логарифма
- •8.2.Разложение на множители
- •8.3.Вычисление наибольшего общего делителя
- •8.4.Обращение элементов по модулю n
- •8.5.Тесты на простоту
- •9.Основы построения асимметричных систем
- •7.4. Критосистема rsa
- •10.Гибридная система шифрования
- •11.Цифровая подпись
- •11.1.Цифровая подпись в системах шифрования с открытым ключом
- •11.2.Хеширование
- •12.Обеспечение безопасности электронных платежей
- •12.1.Основные методы электронных платежей
- •12.2.Пластиковые карты
- •12.3.Магнитные карты
- •12.4.Интеллектуальные карты
- •12.5.Основные преимущества смарт-карт
- •12.6.Надежность и безопасность пластиковых карт
- •13.Электронные платежи в Интернет
- •13.1.Электронные платежи с использованием пластиковых карт
- •13.2.Протокол set
- •13.3.Цифровая наличность
- •13.4.Цифровая подпись вслепую
- •13.5.Протокол анонимных платежей
8.1.Вычисление дискретного логарифма
Логарифм x по основанию a от целого числа y по mod n обозначается как
log a y = x mod n.
Это такое целое число x, которое удовлетворяет уравнению
y = a x mod n.
В отличие от логарифмов вещественных и комплексных чисел, которые всегда можно найти хотя бы приближенно, дискретные логарифмы существуют не всегда. Так легко убедиться, что log 3 7 mod 17 не существует.
Операция
логарифмирования является сложной,
т.е. до сих пор не найден алгоритм, который
позволил бы вычислить логарифм за число
операций, полиномиально зависящее от
числа разрядов аргумента. В настоящее
время известный наилучший алгоритм
требует для вычисления логарифма по
mod n
количество операций порядка exp
.
8.2.Разложение на множители
Согласно основной теореме арифметики любое целое число n допускает однозначное разложение на простые множители:
,
где pi – различные простые числа (т.е. числа, которые делятся без остатка только на 1 и на себя), i – натуральные числа, i = 1, 2,…, s. Разложение чисел на простые множители более кратко называется факторизацией.
В настоящее время неизвестны простые алгоритмы факторизации. Наиболее быстрые алгоритмы требуют для факторизации целого числа n примерно столько же операций, сколько нужно для вычисления логарифма по mod n. Например, разложение на простые множители случайно выбранных натуральных чисел со ста десятичными разрядами по данным 1977 года требовало 74 года машинного времени, а для чисел со 125 десятичными разрядами по данным 1994 года та же оценка давала 106 лет.
8.3.Вычисление наибольшего общего делителя
Наибольшим общим делителем (НОД) двух чисел u и v называется такое наибольшее целое число НОД(u, v), которое делит оба числа u и v.
Прямой метод нахождения наибольшего общего делителя (НОД) состоит в разложении чисел u и v на простые множители и выборе среди них всех общих множителей. Эта задача является сложной, поскольку требует для своего выполнения числа операций, экспоненциально зависящего от числа разрядов чисел u и v. Однако существует быстрый метод вычисления НОД. Он основан на алгоритме Евклида и состоит в следующем. Пусть, не умаляя общности, u > v > 0. Тогда производятся вычисления
u |
= a1 v + b1 |
|
b1 |
= res v u |
0 b1 < v |
v |
= a2 b1 + b2 |
|
b2 |
= |
0 b2 < b1 |
b1 |
= a3 b2 + b3 |
|
b3 |
= |
0 b3 < b2 |
… bk – 2 |
… = ak bk – 1+ bk |
|
… bk |
… = |
… 0 bk < bk – 1 |
до тех пор, пока не будет получено, что bk = 0 или bk = 1. Если bk = 1, то НОД(u, v) = 1, т.е. u и v взаимно простые числа. Иначе, когда bk = 0, имеем НОД(u, v) = bk – 1 , т.е. bk – 1 и дает решение задачи. Сложность данного алгоритма полиномиально зависит от числа разрядов u и v и требует 0 (log v) делений.
