- •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.Краткие сведения из теории чисел
7.2.1. Модульная арифметика
Действия в целочисленной модульной арифметике совершаются с целыми числами. Если с помощью resn (x) обозначить остаток от деления x на n, то результаты сложения, вычитания и умножения по модулю n определяются соответственно равенствами:
(a + b) mod n = resn (a + b), (a – b) mod n = resn(a + (– b)), – b mod n = resn (n – b), ab mod n = resn (ab).
Легко проверить, что
(a + b) mod n = ((a mod n) + (b mod n)) mod n,
a b mod n = ((a mod n) (b mod n)) mod n.
Для действий в модульной арифметике справедливы те же законы, что и в обычной: коммутативный (переместительный)
(a +b) = (b+a) mod n, ab = ba mod n,
ассоциативный (сочетательный)
(a +(b+c)) = ((a+b)+c) mod n, a (bc) = (ab) c mod n,
и дистрибутивный (распределительный)
a (b + c) = ab + ac mod n.
Функция Эйлера (x) определяет число целых чисел из промежутка от 1 до x – 1 взаимно простых с целым числом x. Если p – простое число, то, очевидно, оно взаимно простое со всеми меньшими натуральными числами. Поэтому для простого числа
(p) = p – 1.
Данная формула является частным случаем формулы для степени простого числа
(pn) = pn – pn – 1.
Для взаимно простых чисел x и y функция Эйлера мультипликативна:
(mn) = (m) (n).
В дальнейшем будет использована теорема Эйлера и ее частный случай, малая теорема Ферма.
Теорема Эйлера. Если a и m взаимно простые целые числа, то
a (m) = 1 mod m.
Теорема Ферма. Если a и p взаимно простые целые числа, где p –простое число, то
a p – 1 = 1 mod p.
Действия целочисленной модульной арифметики должны выполняться абсолютно точно безо всякого округления. Если разрядность вычислительной машины не позволяет выполнить это условие, то используются специальные программы повышенной точности.
Действия сложения, вычитания и умножения являются простыми в том смысле, что для их выполнения требуется число операций, которое описывается полиномиальной функцией от числа разрядов чисел, с которыми совершаются вычисления. Сложные операции – это такие, которые требуют для своего выполнения число операций, определяемое некоторой экспонентой. Показатель такой экспоненты зависит от числа разрядов чисел, участвующих в операции.
Рассмотрим далее некоторые операции и функции в поле целых чисел, где сложность операций определяется числом двоичных действий, выполняемых для получения результатов, и оценивается с помощью функции 0 (п). Пусть даны две последовательности f (n) и g (n), тогда считают, что последовательность f (n) растет как 0 (g (n)), если существует такая ненулевая константа С, что отношение f (n)/g (n) стремится к С вместе с ростом п.
7.2.2. Возведение в степень
Прямой метод возведения в степень
y = a x mod n = |
a·a·a·a…·a |
mod n, |
|
x раз |
|
где x – натуральное число, на первый взгляд, кажется сложной операцией, поскольку число перемножений пропорционально показателю степени x и экспоненциально зависит от числа разрядов x. Однако существует быстрый алгоритм возведения в степень, число операций в котором пропорционально лишь числу разрядов показателя степени x.
Метод быстрого возведения в степень основан на представлении показателя степени x в двоичной форме:
x = x0 + 2x1 + ... + 2k – 1 xk – 1,
где xi – элемент двоичного представления, т.е. xi = 0 или 1, а k – число двоичных разрядов. Тогда
.
Из этого выражения видно, что число перемножений последовательных квадратов числа a равно числу ненулевых двоичных разрядов xi. С учетом возведения в квадрат общее число умножений при возведении в степень x не более 2 log x. В свою очередь известно, что каждое умножение k разрядных двоичных чисел требует выполнения примерно 0 (k log k) двоичных операций.
