
- •Введение
- •Лабораторная работа № 1 Анализ стойкости шифров замены. Цель работы
- •Задание
- •Порядок выполнения
- •4. Реализовать на листе Excel вычисления с большими числами по модулю.
- •Т.Е. После каждого шага приводить по модулю. Аналогично можно применять этот подход к быстрому возведению в степень:
- •Лабораторная работа № 6 Исследование ассиметричного алгоритма rsa Цель работы
- •Задание
- •Порядок выполнения
- •Литература
- •Содержание
4. Реализовать на листе Excel вычисления с большими числами по модулю.
Описание алгоритма быстрого возведения в степень по модулю y=a^x mod N.
Требуется вычислить результат возведения в степень по модулю. Вычисление должно выполняться в целых числах. Вычисление по модулю можно выполнять последовательно, т.е. a^b mod N можно вычислять по шагам следующим образом: 1. a^2=a*a mod N 2. a^3=a^2*a mod N 3. a^4=a^3*a mod N …
b-1. a^b=a^(b-1)*a mod N
Т.Е. После каждого шага приводить по модулю. Аналогично можно применять этот подход к быстрому возведению в степень:
Алгоритм: y=a^x mod N
Начальные присвоения: Y=1 A=a X=x
В цикле выполняем:
if(X – нечетно) then
a)Y=Y*A mod N;
b)X=(X-1)/2;
с)A=A*A mod N.
if(X – четно) then
a)Y=Y; (т.е. оставляем как на предыдущем шаге)
b)X=X/2
с)A=A*A mod N.
Алгоритм завершается при X=0 (на этом шаге A не нужно считать) Ответ: y=Y;
5. Реализовать на листе Excel алгоритм Ферма разложения на множители. n=p*q. Найти p и q по известному n.
Описание алгоритма. В рамках алгоритма мы пытаемся представить n как x2-y2, тогда n раскладывается на (x-y)*(x+y). Алгоритм достаточно эффективен при близких сомножителях p и q. Шаг1. Принять x=[sqrt(n)], если n=x2 , то x делитель – окончание алгоритма, иначе x=x+1 ([ … ]- обозначает взять целое). Шаг2. Если x=(n+1)/2 – n простое – окончание алгоритма, иначе вычисляем y=sqrt(x2-n). Шаг3. Если y целое, т.е. y2=x2-n,то решение найдено (n=(x+y)*(x-y)), иначе x=x+1 и переходим к шагу 2.
Пример n=1342127
-
x
x2
x2-n
y=sqrt(x2-n)
1158
1340964
-1163
1159
1343281
1154
33,97058
1160
1345600
3473
58,93216
1161
1347921
5794
76,11833
1162
1350244
8117
90,09439
1163
1352569
10442
102,1861
1164
1354896
12769
113
Т.е. x=1164, y=113. n=(1164+113)*(1164-113)=1277*1051
Варианты задания:
№ пп |
Двоичная запись |
Быстрое возведение |
НОД |
Быстрое возведение по модулю |
Факторизация |
1 |
16 |
9^10 |
1125851 1129913 |
11^14 mod 111 |
5810653073 319066187 |
2 |
19 |
9^11 |
1307491 1316503 |
12^12 mod 112 |
5824662901 208613461 |
3 |
25 |
8^12 |
1678583 1689179 |
13^11 mod 113 |
5842265399 339726871 |
4 |
16 |
7^13 |
1927231 1933033 |
14^10 mod 114 |
5858168527 224263319 |
5 |
17 |
6^14 |
270253 272611 |
15^14 mod 115 |
5872408933 363499961 |
6 |
26 |
6^13 |
385711 387521 |
11^15 mod 116 |
5887482301 236246759 |
7 |
18 |
5^14 |
530819 535121 |
12^12 mod 117 |
5905333157 383745989 |
8 |
28 |
4^12 |
671849 676537 |
13^11 mod 118 |
5920578299 252427511 |
9 |
27 |
2^36 |
851189 854779 |
14^12 mod 119 |
5942282681 481531609 |
10 |
29 |
3^23 |
1025977 1030187 |
15^12 mod 120 |
5959258237 420194951 |
Контрольные вопросы
1. Приведите примеры «сложных» операций.
2. Приведите примеры «простых» операций.
3. Поясните, что лежит в основе алгоритма быстрого возведения в степень.
4. Назовите задачи, которые можно решить на основе алгоритма Эвклида.
5. Перечислите свойства вычислений по модулю.
6. Произведите следующие вычисления:
7 mod 3 11+9 mod 8
6 mod 3 3-7 mod 8
3 mod 6 3*7 mod 8
-2mod 6 6+2 mod 8
7 mod 7 3+2 mod 8
7. Предложите несколько способов факторизации.
8. Укажите, какое максимальное число необходимо испытывать, если находить множитель некоторого большого числа методом последовательного перебора чисел: 1, 2, 3, 4, 5, 6, …