Введение в современную криптографию



Pdf көрінісі
бет241/249
Дата14.06.2023
өлшемі6.4 Mb.
#475029
1   ...   237   238   239   240   241   242   243   244   ...   249
Криптография Катц

АЛГОРИТМ B.12
Примитивный алгоритм для модульного возведения в степень
Модуль N ; основание a ∈ ZN ; Выход: [ab mod N ]
x := 1
for i = 1 to b:
x := [x • a mod N
лучше, опираясь на следующее рекуррентное соотношение:
Это приводит к алгоритму, который по очевидным причинам называют «квадрат и 
умножение» (или «повторяющееся возведение в квадрат»), который требует только 
O(log b) = O(«b») модульных возведений в квадрат/умножений; см. алгоритм B.13.
В этом алгоритме длина b уменьшается на 1 в каждой итерации; отсюда следует, что 
число итераций равно «b», и поэтому общий алгоритм действует в течение поли-
номиального времени «a», «b», и «N «. Точнее, количество модульных возведений 
в квадрат равно точно»b», а количество дополнительных модульных умножений 
точно равно весу Хэмминга b (т.е., количеству единиц в двоичном представлении
b). Это объясняет предпочтение, обсуждаемое в разделе 8.2.4, по выбору сте-
пени e открытого RSA малых длины/веса Хэмминга.
АЛГОРИТМ B.13
Алгоритм ModExp для эффективного модульного возведения в степень Мо-
дуль N ; основание a ∈ ZN ; Выход: [ab mod N ]
x := a
t :=1
// поддерживает инвариант, поэтому ответ равен [ t • xb mod N ]
while b > 0 do:
if b является четным
t :=[ t • x mod N ], b := b − 1
x:=[x2 mod N ], b := b/2
retun t
Зафиксируем a и N и рассмотрим функцию модульного возведения в степень 
с учетом fa,N (b) = [ab mod N ]. Мы только что видели, что вычислить fa,N про-
сто. Напротив, вычисление инверсии этой функции, то есть, вычисление b с 
учетом a, N и [ab mod N ], считается трудным для соответствующего выбора a 
и N . Инвертирование этой функции требует решения задачи дискретного лога-


327
рифмирования, кое-что мы обсуждаем подробно в разделе 8.3.2.


Достарыңызбен бөлісу:
1   ...   237   238   239   240   241   242   243   244   ...   249




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет