logo search
Информационная безопасность / Информационная безопасность2006

Основные свойства

  1. amoda= 0 (6)

  2. (a + b) mod N = (a mod N + b mod N) mod N (7)

  3. (a – b) mod N = (a mod N – b mod N) mod N (8)

  4. (a * b) mod N = (a mod N) * (b mod N) mod N (9)

Доказательство — прямая подстановка. Например:

a= 60,b= 63,N= 32

(60 * 63) mod 32 =3780 mod 32 =3780 – 32 * 118 = 4

L mod N = L – N * INT(L/N)

60 mod 32 = 28, 63 mod 32 = 31

(28 * 31) mod 32 = 868 mod 32 = 4

Следствие:

Если m=a+b+c, то:

  1. xm mod N = xa+b+c mod N = (xaxbxc) mod N =

= [(xa mod N)*(xb mod N)*(xc mod N)] mod N (10)

  1. (a*(b+c)) mod N = ((a*b) mod N + (a*c) mod N) mod N (11)

  2. xai mod N = (xa mod N)i mod N) (12)

Действительно, например 523 mod11 = 56mod11 = 5

52mod11 = 3

(52mod11)3mod11 = 33mod11 = 27mod11 = 5

Формулы (9), (10), (12) удобно использовать для расчета по modNбольших чисел превосходящих разрядность ЭВМ.

Например: x53modN

Разложим 53 на двоичные сомножители 1, 2, 4, 8, 32, 64, ….

x53=x(32+16+4+1)

Надо сачала найти x2,x4 = (x2)2,x8 = (x4)2,x16 = (x8)2,x32 = (x16)2.

Это 5 операций умножения.

Теперь надо последовательно умножить еще три операции умножения. Все операции надо делать по модулюN. Получим результат за 8 операций

Пример 1:

319 mod 15 = 319 — 15Int(319/15) = 1162261467 – 1577484097= 12

19 = 16 + 2 + 1

1

3

3

2

32 = 9

9

4

92 = 81 mod 15 = 6

8

62 = 36 mod 15 = 6

16

62 = 36 mod 15 = 6

6



39 = 27mod15 = 12

126 = 72mod15 = 12

Следствие: если xa modN= 1, то иxaimodN= 1

Пример 2:

Общие формулы вычисления больших степеней.

abmodN= (aaа…a(bраз)modN) затем применяем формулу (9)

  1. F(φ(x)) mod N = F(φ(x) mod N) mod N (13)

Проверка: N = 11,x = 5

φ(x) = x2

φ(x) mod N = 52 mod 11 = 3

F(φ(x)) mod N = (10*25) mod 11 =

F(y) = 10y

F(y) mod N = 10*3 mod 11 = 8

= 250 mod 11 = 8

  1. Свойство коммутативности.

Обозначим xamodN=Fa(x),xbmodN=Fb(x)

Будет верно тождество

Fa(Fb(x))modN=Fb(Fa(x))modNдля всехx. (14)

Действительно:

Fa(Fb(x)) = (Fb(x))amodN= (xbmodN)amodN= (см. формулу 13) = (xb)amodN=xbamodN

Fb(Fa(x)) = (Fa(x))bmodN= (xamodN)bmodN= (см. формулу 13) = (xa)bmodN=xabmodN

но xba=xabследовательно иFa(Fb(x)) =Fb(Fa(x))

  1. Теорема Эвклида (300 г. до н.э.)

Если Е и М удовлетворяют условию 0 < EMи НОД(М,Е) = 1, то существует единственное числоD, такое что 0 <D<Mи

E*D  1 (mod M) ((E*D) mod M = 1) (15)

и кроме того Dможет быть вычислено с помощью расширения алгоритма Евклида при нахожденииHOD(M, Е). (Сравни Кнут Д. ”Искусство программирования, ” т. 1 стр. 26, 1976г.

Алгоритм Евклида при нахождении HOD(M,Е).

Рисунок 3.9

  1. Функция Эйлера

Φ(N) — функция Эйлера определяет для каждого положительного целого числаNколичество положительных целых чиселiне превышающихNи таких, чтоHOD(i,N) = 1, ПриN= 1 по определению Φ (1) = 1

1 i<N

Найдем, например, Φ(8). Вычислим НОД (i, 8), 1i< 8, (i= 1, 2, …7)

i

1

2

3

4

5

6

7

НОД (i,8)

1

2

1

4

1

2

1

Имеем до 4-х i= 1, 3, 5, 7 НОД (i,8) = 1 следовательно Φ(8) = 4.

Очевидно, что для простого числа Р имеем Φ(Р) = Р – 1, так как простое число не делится нацело на меньшее число. Например, Φ(7) = 7 – 1 = 6, ибо для всех i=1,2,3,4,5,6 НОД(i,7) = 1.

Нетрудно видеть, что для двух неравных простых чисел PиQ

Φ(P*Q) = (P- 1)*(Q– 1) (16)

Например, Φ(6) = Φ(2*3) = 1*2 = 2.

  1. Теорема Эйлера

Для любых целых чисел xиN(x<N)

xΦ(N)  1 (mod N), xΦ(N) mod N = 1 (17)

при условии, что НОД (x,N) = 1.

Например, для Φ(8) = 4 сравнение (17), будет выполнено только для x= 1,3,5,7 для которых НОД (х,N) = 1.

Действительно, например :

для х = 2 : 2Φ(8) mod8 = 24modΦ = 16mod8 = 0

а для х = 3 : 34 mod8 = 81modΦ = 1.Генерация псевдослучайных последовательностей (ПСП) чисел и бит