Gabriel Lame'in Teoremi, adım sayısını log (1 / sqrt (5) * (a + 1/2)) - 2 ile sınırlar, burada logun tabanı (1 + sqrt (5)) / 2'dir. Bu, algoritma için en kötü durum senaryosu içindir ve girişler ardışık Fibanocci sayıları olduğunda ortaya çıkar.
Biraz daha liberal bir sınır şudur: log a, burada logun tabanı (sqrt (2)) Koblitz tarafından ima edilir.
Kriptografik amaçlar için, bit boyutunun yaklaşık olarak k = loga ile verildiğini hesaba katarak, genellikle algoritmaların bitsel karmaşıklığını dikkate alırız.
İşte Öklid Algoritmasının bitsel karmaşıklığının ayrıntılı bir analizi:
Çoğu referansta Öklid Algoritmasının bitsel karmaşıklığı O (loga) ^ 3 ile verilse de, O (loga) ^ 2 olan daha sıkı bir sınır vardır.
Düşünmek; 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
şuna dikkat edin: a = r0> = b = r1> r2> r3 ...> rm-1> rm> 0 .......... (1)
ve rm, a ve b'nin en büyük ortak bölenidir.
Koblitz'in kitabındaki bir İddia ile (Sayı Teorisi ve Kriptografi dersi) şu kanıtlanabilir: ri + 1 <(ri-1) / 2 ................. ( 2)
Yine Koblitz'de bir k-bit pozitif tamsayıyı bir l-bit pozitif tamsayıya bölmek için gereken bit işlemlerinin sayısı (k> = l varsayılarak) şu şekilde verilir: (k-l + 1) .l ...... ............. (3)
(1) ve (2) ile bölme sayısı O (loga) ve dolayısıyla (3) ile toplam karmaşıklık O (loga) ^ 3'tür.
Şimdi bu, Koblitz'deki bir açıklama ile O (loga) ^ 2'ye indirgenebilir.
ki = logri +1 olarak düşünün
(1) ve (2) 'ye göre: ki + 1 <= ki for i = 0,1, ..., m-2, m-1 ve ki + 2 <= (ki) -1 i = 0 için , 1, ..., m-2
ve (3) ile m bölmelerinin toplam maliyeti şu şekilde sınırlandırılır: SUM [(ki-1) - ((ki) -1))] * ki i = 0,1,2, .., m için
bunu yeniden düzenlersek: TOPLA [(ki-1) - ((ki) -1))] * ki <= 4 * k0 ^ 2
Öyleyse, Öklid Algoritmasının bitsel karmaşıklığı O (loga) ^ 2'dir.
a%b
. En kötü durumdaa
veb
ardışık Fibonacci sayıları.