Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_Защ_крипт_вир.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.19 Mб
Скачать

Литература

1. Садерников А.А., Трайнев В.А., Федулов А.А., «Информационная безопасность прдприятия»: Учебное пособие. – 2-е изд.-М.,Издательско-торговая корпорация «Дашков и К», 2005

2. Мельников В.В. «Безопасность в автоматизированных системах» - М.: Финансы и кредит, 2003.

3. Романец Ю.В., Трофимов П.А., Шаньгин В.Ф, «Защита информации в компьютерных системах»/ Под ред. В.Ф.Шаньгина. – М.: Радио и связь, 1999.

4. Скембей, Джоел Мак-Клар, Стюарт. Секреты хакеров. Безопасность Windows 2000 – готовые решения. Изд. Дом «Вильямс», 2002г.

5. Антивирусный комплект DSAV. Диалогнаука, Москва 2003 г.

6. Антивирус Касперского Personal PRO ЗАО «Лаборатория Касперского».

7. С.С.Корт «Теоретические основы защиты информации»,-М., «Гелиос АРВ»,2004

8.. Connect! Мир связи, №10, 2006, «Организация процесса управления информационной безопасностью»

9. Сети и системы связи, №11, 2006, «Защита корпоративных данных»

10. Компьютер Пресс №9, 2006 «Безопасность корпоративных сетей»

Приложение 1 Арифметика в классах вычетов (модулярная арифметика)

Для любого положительного целого числа n и любого a при делении a на n мы получаем некоторое целое частное q и остаток r, удовлетворяющий соотношению

a = qn + r, 0 ≤ r < n; q = int(a / n),

где int(x) обозначает наибольшее целое число, не превышающее x.

Если a является целым, а n - положительным, то a mod n определяется как остаток от деления a на n. Таким образом, для любого целого числа a можно записать

a = int(a / n) * n + (a mod n).

Примеры: 11 mod 7 = 4; -11 mod 7 = -4.

Говорят, что два целых числа a и b являются сравнимыми по модулю n, если (a mod n) = (b mod n). Это записывает в таком виде: ab mod n.

73 ≡ 4 mod 23 (23*3+4);    21 ≡ -9 mod 10 (10*3-9).

Число b называют вычетом числа a по модулю n, например: 4 – вычет числа 73 по модулю 23.

Операцию нахождения вычета называют приведением по модулю.

Набор целых чисел от 0 до n-1 называют полным набором вычетов.

Операции сравнения по модулю имеют следующие свойства:

ab mod n, n | (a - b) (n | x означает, что n делит x нацело).

Из (a mod n) = (b mod n) следует ab mod n.

Из ab mod n следует ba mod n.

Из ab mod n и bc mod n следует ac mod n.

Операции арифметики в классах вычетов

Операции арифметики в классах вычетов обладают следующими свойствами:

[(a mod n) + (b mod n)] mod n = (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) mod n.

Докажем, например, что выполняется первое из этих свойств. Пусть (a mod n) = ra и (b mod n) = rb. Тогда a = ra + jn для некоторого целого числа j и b = rb + kn для некоторого целого числа k. Поэтому

(a + b) mod n = (ra + jn + rb + kn) mod n = (ra + rb + (j + k)n) mod n =

= (ra + rb) mod n = [(a mod n) + (b mod n)] mod n.

Продолжение приложения 1

11 mod 8 =3, 15 mod 8 = 7; [(11 mod 8) + (15 mod 8)] mod 8 = 10 mod 8 = 2, (11 + 15) mod 8 = 26 mod 8 = 2.

Мы можем либо сначала приводить по модулю n, а затем выполнять операции, либо сначала выполнять операции, а затем приводить по модулю.

С вычетами по модулю удобнее работать, т.к. они ограничивают диапазон всех промежуточных величин и результата.

Для быстрого вычисления ax mod n:

a25 mod n = (a24*a ) mod n = ((a12 )2*a) mod n=(((a6 )2 )2 *a)mod n = (((a2*a)2)2*a) mod n = (((((a2 mod n)*a)2 mod n)2 mod n)2mod n *a) mod n

Этот метод уменьшает трудоемкость вычислений до 1,5k операций в среднем, где k – длина числа в битах.

Свойства арифметики в классах вычетов

Модулярная арифметика («арифметика часов») аналогична во многом обычной арифметике: она коммутативна, ассоциативна и дистрибутивна.

Пусть Zn обозначает множество всех неотрицательных целых чисел, которые меньше n (полный набор вычетов):

Zn = {0, 1, 2, ... , (n - 1)}.

Для арифметических операций по модулю n в этом множестве выполняются следующие свойства:

Свойство

Выражение

Коммутативные законы

(w + x) mod n = (x + w) mod n, (w * x) mod n = (x * w) mod n

Ассоциативные законы

[(w + x) + y] mod n = [w + (x + y)] mod n, [(w * x) * y] mod n = [w * (x * y)] mod n

Дистрибутивный закон

[(w+ x) * y] mod n = [(w * y) + (x * y)] mod n

Тождества

(0 + w) mod n = w mod n, (1 * x) mod n= w mod n

Аддитивный обратный (-w)

Для любого w  Zn существует такое z, что w + z ≡ 0 mod n

Существует одна особенность арифметики в классах вычетов, которая делает её отличной от обычной арифметики. Заметим сначала, что, как и в обычной арифметике, имеет место следующее свойство

если (a + b) ≡ (a + c) mod n, то bc mod n.

(5 + 23) ≡ (5 + 7) mod 8; 23 ≡ 7 mod 8.

Продолжение приложения 1

Данное свойство согласуется с существованием аддитивного обратного. Прибавив к обеим частям данного равенства аддитивное обратное элемента а, получим:

((-a) + a + b) ≡ ((-a) + a + c) mod n, bc mod n.

Однако следующее утверждение выполняется только при указанном условии:

если (a * b) ≡ (a * c) mod n, то bc mod n при условии, что a и n взаимно просты.

Рассмотрим пример, когда условие не выполняется:

6 * 3 = 18 ≡ 2 mod 8, 6 * 7 = 42 ≡ 2 mod 8.

Но 3 ≠ 7 mod 8.

Причиной такого странного результата является то, что для произвольного модуля сравнения n в результате умножения чисел от 0 до (n - 1) на множитель a не получается полного набора всех вычетов, когда a и n имеют общие множители. При a = 6 и n = 8 имеем:

Z8

0

1

2

3

4

5

6

7

Умноженное на 6

0

6

12

18

24

30

36

42

Остаток

0

6

4

2

0

6

4

2

Поскольку мы не получаем в данном случае полного набора вычетов после умножения на 6, то в один класс вычетов отображается более одного элемента Z8. В частности, 6 * 0 mod 8 = 6 * 4 mod 8. Таким образом, поскольку при данном отображении несколько элементов переводится в один, операция умножения не предпологает существования единственного обратного. При a =5 и n = 8 имеем:

Z8

0

1

2

3

4

5

6

7

Умноженное на 5

0

5

10

15

20

25

30

35

Остаток

0

5

2

7

4

1

6

3

Теперь строка остатков содержит все возможные значения из класса Z8, но в ином порядке. Наконец заметим, что если p является простым, то все элементы Zp будут взаимно простыми с p. Это даёт нам возможность добавить ещё одно свойство к тем, которые были приведены выше:

Свойство

Выражение

Мультипликативный обратный (w-1)

Для любого w  Zp существует z,

что w * z ≡ 1 mod p

В связи с тем что w и  p являются взаимно простыми, при умножении каждого элемента Zp на w будет получен набор всех элементов множества Zp в несколько изменённом порядке. Поэтому по крайней мере один из остатков будет иметь значение 1. Таким образом, найдётся некоторое значение в Zp, при умножении которого на w получится значение 1. Это число и будет мультипликативным обратным для w, обозначаемым w-1.

((a-1) * a * b) ≡ ((a-1) * a * c) mod n, bc mod n.