Twierdzenie Gabriela Lame'a ogranicza liczbę kroków przez log (1 / sqrt (5) * (a + 1/2)) - 2, gdzie podstawą logu jest (1 + sqrt (5)) / 2. Dotyczy to najgorszego scenariusza dla algorytmu i występuje, gdy wejściami są kolejne liczby Fibanocciego.
Nieco bardziej liberalne ograniczenie to: log a, gdzie podstawą logu jest (sqrt (2)) wynika z Koblitz.
Do celów kryptograficznych zwykle bierzemy pod uwagę złożoność bitową algorytmów, biorąc pod uwagę, że rozmiar bitu jest określony w przybliżeniu przez k = loga.
Oto szczegółowa analiza złożoności bitowej algorytmu Euclid:
Chociaż w większości odniesień bitowa złożoność algorytmu Euclid jest określona przez O (loga) ^ 3, istnieje ściślejsza granica, która jest O (loga) ^ 2.
Rozważać; r0 = a, r1 = b, r0 = q1. r1 + r2. . . , ri-1 = qi.ri + ri + 1,. . . , rm-2 = qm-1.rm-1 + rm rm-1 = qm.rm
zauważ, że: a = r0> = b = r1> r2> r3 ...> rm-1> rm> 0 .......... (1)
a rm jest największym wspólnym dzielnikiem a i b.
Stwierdzeniem w książce Koblitza (Kurs teorii liczb i kryptografii) można udowodnić, że: ri + 1 <(ri-1) / 2 ................. ( 2)
Ponownie w Koblitz liczba operacji bitowych wymaganych do podzielenia k-bitowej liczby całkowitej dodatniej przez l-bitową liczbę całkowitą dodatnią (zakładając k> = l) jest podana jako: (k-l + 1). L ...... ............. (3)
Przy (1) i (2) liczba podziałów wynosi O (loga), a więc przy (3) całkowita złożoność wynosi O (loga) ^ 3.
Teraz można to zredukować do O (loga) ^ 2 przez uwagę w Koblitz.
rozważ ki = logri +1
przez (1) i (2) mamy: ki + 1 <= ki dla i = 0,1, ..., m-2, m-1 i ki + 2 <= (ki) -1 dla i = 0 , 1, ..., m-2
a przez (3) całkowity koszt m działek jest ograniczony przez: SUMA [(ki-1) - ((ki) -1))] * ki dla i = 0,1,2, .., m
przekształcając to: SUMA [(ki-1) - ((ki) -1))] * ki <= 4 * k0 ^ 2
Więc bitowa złożoność Algorytmu Euklidesa wynosi O (loga) ^ 2.
a%b
. W najgorszym przypadku sąa
ib
są to kolejne liczby Fibonacciego.