ANKARA ÜNIVERS ITES FEN B˙IL ˙IMLER IENST ITÜSÜ...
Transcript of ANKARA ÜNIVERS ITES FEN B˙IL ˙IMLER IENST ITÜSÜ...
ANKARA ÜNIVERSITESIFEN BILIMLERI ENSTITÜSÜ
DOKTORA TEZI
SONLU CISIMLERDE DISKRET LOGARITMA PROBLEMI
Murat SAHIN
MATEMATIK ANABILIM DALI
ANKARA2009
Her hakkı saklıdır
TEZ ONAYI
Murat SAHIN tarafından hazırlanan " SONLU CISIMLERDE DISKRETLOGARITMAPROBLEMI " adlı tez çalısması 13/07/2009 tarihinde asagıdakijüri tarafından oy birligi / oy çoklugu ile Ankara Üniversitesi Fen Bilimleri En-stitüsü Matematik Anabilim Dalı’nda DOKTORATEZI olarak kabul edilmistir.
Danısman: Prof. Dr. Ali Bülent EKIN
Jüri Üyeleri:
Baskan: Prof. Dr. Sait HALICIOGLUAnkara Üniversitesi, Fen Fakültesi, Matematik Bölümü
Üye: Prof. Dr. Ali Bülent EKINAnkara Üniversitesi, Fen Fakültesi, Matematik Bölümü
Üye: Doç. Dr. Ali DOGANAKSOYOrta Dogu Teknik Üniversitesi, Fen Edebiyat Fakültesi, Matematik Bölümü
Üye: Doç. Dr. Nuri ÖZALPAnkara Üniversitesi, Fen Fakültesi, Matematik Bölümü
Üye: Doç. Dr. Emrah KILIÇTOBB Ekonomi ve Teknoloji Üniversitesi, Fen Edebiyat Fakültesi, MatematikBölümü
Yukarıdaki sonucu onaylarım
Prof. Dr. Orhan ATAKOLEnstitü Müdürü
ÖZET
Doktora Tezi
SONLU CISIMLERDE DISKRET LOGARITMA PROBLEMI
Murat SAHIN
Ankara ÜniversitesiFen Bilimleri EnstitüsüMatematik Anabilim Dalı
Danısman: Prof. Dr. Ali Bülent EKIN
Fq mertebesi q olan sonlu bir cisim ve g, Fq nun bir primitif elemanı olmak üzere q,g ve y ∈ Fq verildiginde
y = gx, 0 6 x < q − 1olacak sekildeki x tamsayısını bulma problemine sonlu cisimlerde diskret logaritmaproblemi denir. Sayılar teorisinde uzun bir geçmise sahip olan bu problem öncelerisonlu cisimlerde bazı hesaplamaları yapabilmek için kullanılmıs, 1950 li yıllarda ro-tor makinelerinin yerini kaydır-kaydet dizilerinin almasıyla kriptografide önemli birrol oynamaya baslamıstır. Burada bir asalın kuvveti olan q tamsayısı yeterincebüyük seçildiginde x diskret logaritmasını hesaplamak zordur. Bu zorlugu temelalarak 1976 yılında Diffie ve Hellman açık anahtar kripto sistemlerinin dogmasınavesile olan anahtar degis-tokus yöntemini gelistirmislerdir. Günümüzde, bir çok krip-tografi uygulamasının güvenligi diskret logaritma probleminin bu zorluguna dayan-maktadır.Diskret logaritma problemi ile ilgili olan ve kriptografide kullanılan diger bir önemliproblem de çarpanlara ayırma problemidir. Gauss’un çarpanlara ayırmanın mate-matikteki önemini dile getiren ünlü sözüne benzer herhangi bir söz diskret logaritmaproblemi için edilmemis olmasına ragmen bu problemin çarpanlara ayırma proble-minden daha zor oldugu düsünülmektedir.Bu tezde, sonlu cisimlerdeki diskret logaritmayı hesaplayan karekök zamanlı algo-ritmalardan Küçük adım-Büyük adım, Pollard ρ, Kanguru ve Pohlig-Hellman algo-ritmalarını inceledik. Gadiyar vd. (2009) Ardısık kare alma-çarpma algoritmasınıntersini düsünerek diskret logaritma için olasılıksal, karekök zamanlı bir algoritmagelistirdiler. Bu algoritmayı farklı yorumlayarak çalısma zamanını detaylı bir se-kilde inceleyip Pollard ρ-algoritması ile kıyasladık. Aynı zamanda, ihmal edilebilirbir hafıza gereksinimi duyacak sekilde bu algoritmayı gelistirdik. Karekök zamanlıalgoritmalara ilaveten indeks calculus algoritmalar olarak adlandırılan yarı üstel za-manlı algoritmalardan bazılarını inceledikten sonra, sonlu cisimlerdeki diskret loga-ritmayı en etkili sekilde hesaplayan Sayı Cismi Elegi algoritmasını inceledik.
2009 , 74 sayfaAnahtar Kelimeler: Diskret logaritma problemi, Sonlu cisimler
i
ABSTRACT
Ph.D. Thesis
DISCRETE LOGARITHM PROBLEM in FINITE FIELDS
Murat SAHIN
Ankara UniversityGraduate School of Natural and Applied Sciences
Department of Mathematics
Supervisor: Prof. Dr. Ali Bülent EKIN
Let Fq a finite field of order q and g a primitive element of Fq, for given q, g andy ∈ Fq finding integer x such that
y = gx, 0 6 x < q − 1
is called discrete logarithm problem in finite fields. At first, this problem which hasa long history in number theory was used for some computations in finite fields andthen it started to play an important role in cryptography by shift-register sequencesdisplaced rotor machines in the 1950s. When the prime power q in here is choosensufficiently large, calculating the discrete logarithm x is hard. In 1976, Diffie andHellman improved the Key-exchange method leading to emergence of public keycryptosystems by using this hardness as a base. Nowdays, the security of the manycryptographic applications depend on the hardness of this problem.Another important problem used in cryptography and related to the discrete lo-garithm problem is factoring problem. Although there is not any word for discretelogarithm problem like the famous quates of Gauss about importance of the factoringin mathematics, it is thought more hard than the factoring.In this thesis, We investigated square root algorithms calculating the discrete loga-rithm problem, namely, Baby step-Giant step, Pollard ρ and Kangaroo algorithms.Gadiyar et al. (2009) improved a probabilistic, square root algorithm by thinkinginverse of the Repeated square-multiply algorithm. Running time of the Gadiyar’s al-gorithm is investigated in details by interpreting the algorithm in a different way andcompared with Pollard ρ-algorithm. At the same time, this algorithm has improvedsuch that negligible memory requirement. In addition to square root algorithms,After studying some exponential algorithms called index calculus algorithms, weexamined the Number Field Sieve algorithm which is the most effective algorithmin finite fields.
2009 , 74 pagesKey Words: Discrete logarithm problem, Finite fields.
ii
TESEKKÜR
Bu çalısmanın olusturulmasına imkan saglayan, çalısmalarımı büyük titizlikle izle-yerek beni yönlendiren ve bilimin dısında da kendisinden hayata dair bir çok seyögrendigim degerli bilim adamı Sayın Hocam Prof. Dr. A. Bülent EKIN’e en derinsaygılarımla tesekkürlerimi sunarım.
Tez yazımında benden yardımlarını esirgemeyen Doç. Dr. Nuri ÖZALP’a ve degerlivakitlerini bana ayıran TIK hocalarım Prof. Dr. Sait HALICIOGLU ve Doç. Dr.Ali DOGANAKSOY’a tesekkür ederim.
Ayrıca, özverilerinden dolayı basta esim Ebru SAHIN olmak üzere Aileme sonsuztesekkürlerimi sunarım.
Murat SAHINAnkara, Temmuz 2009
iii
IÇINDEKILER
ÖZET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
ABSTRACT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
TESEKKÜR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
SEKILLER DIZINI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
ÇIZELGELER DIZINI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
SIMGELER DIZINI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
1 GIRIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 TEMEL KAVRAMLAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.1 O Notasyonu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Sayı Cisimleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 ÇARPANLARA AYIRMA VE DISKRET LOGARITMA . . . . . . . . . . . . . . . . . . 8
4 SONLU CISIMLERDE DISKRET LOGARITMAYI VEREN BIR FORMÜL 12
5 KAREKÖK ALGORITMALAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145.1 Küçük-adım Büyük-adım algoritması . . . . . . . . . . . . . . . . . . . . 145.2 Pollard ρ-Algoritması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.3 Kanguru Algoritması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.4 Pohlig-Hellman Algoritması . . . . . . . . . . . . . . . . . . . . . . . . . 225.5 Olasılıksal bir Karekök Algoritması . . . . . . . . . . . . . . . . . . . . . 24
6 YARI-ÜSTEL ZAMANLI ALGORITMALAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.1 Düzgünlük Kavramı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336.1.1 Düzgün tamsayılar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346.1.2 Düzgün polinomlar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356.2 Fp de Indeks Calculus Algoritması . . . . . . . . . . . . . . . . . . . . . . 376.2.1 Düzgünlük testi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406.2.2 Lineer cebir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436.2.3 Analiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.3 F2n de Indeks Calculus Algoritmaları . . . . . . . . . . . . . . . . . . . . 496.3.1 Sistematik denklemler . . . . . . . . . . . . . . . . . . . . . . . . . . . 566.3.2 Coppersmith versiyonu . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7 SAYI CISMI ELEGI (SCE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607.1 SCE Algortimasının Taslagı . . . . . . . . . . . . . . . . . . . . . . . . . 617.2 Polinom Seçme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637.3 Çarpan Tabanlarını Olusturma . . . . . . . . . . . . . . . . . . . . . . . 647.4 Eleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657.5 Logaritmik Dönüsümler . . . . . . . . . . . . . . . . . . . . . . . . . . . 667.5.1 ZK nın ideallerinden elemanlarına geçis . . . . . . . . . . . . . . . . . . 677.6 Lineer Cebir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
KAYNAKLAR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
ÖZGEÇMIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
SEKILLER DIZINI
5.1 Pollard ρ-algoritmasının olusturdugu sekil . . . . . . . . . . . . . . . . . 18
vi
ÇIZELGELER DIZINI
5.1 Fp cisminin çarpımsal grubunda fG fonksiyonunun performansı . . . . . . 315.2 Fp cisminin çarpımsal grubunda fM fonksiyonunun performansı . . . . . 326.1 Düzgün sayıların yogunlugu . . . . . . . . . . . . . . . . . . . . . . . . . 34
vii
SIMGELER DIZINI
DL Diskret Logaritma
DLP Diskret Logaritma Problemi
TTIAB Tek Türlü Ideallerine Ayrılabilen Bölge
TTÇAB Tek Türlü Çarpanlarına Ayrılabilen Bölge
SCE Sayı Cismi Elegi
Z Tamsayılar
Q Rasyonel Sayılar
Fq q Elemanlı Sonlu Cisim
F∗q Fq − {0}A ∼= B A izomorf B
π (B) B den küçük asalların sayısı
hu,vi u ve v vektörlerinin iç çarpımı
< γ > γ elemanının ürettigi ideal
bxc x den küçük en büyük tamsayı
dxe x den büyük en küçük tamsayı
viii
Bu çalısmayı babam ve oglum, Mehmet Sami ve Mehmet Furkan SAHIN’eatfediyorum.
1. GIRIS
G sonlu bir grup olmak üzere verilen g, y ∈ G için gx = y olacak sekilde bir x
tamsayısı varsa, mod |G| de tek türlü olan bu tamsayıyı bulma problemine diskretlogaritma problemi (DLP) denir ve x := (d log)g y ile gösterilir. Aslında, bu problem
g nin ürettigi alt grupta ele alnacagından G grubu, g nin ürettigi bir devirli grup
olarak da düsünülebilir. 20 yy. da bilgisayarların kesfi ile diskret logaritma problemi
daha çok algoritmik açıdan düsünülmeye baslamıstır. Teknoloji, bilgisayarlar vb.
mevcut bütün imkanları kullanarak bir problem makul bir sürede çözülemiyorsa bu
probleme zor problem diyecegiz.
DLP nin yeterince zor oldugu iki popüler grup, sonlu cisimlerin çarpımsal grubu ve
sonlu cisimler üzerindeki eliptik egri grubudur. Eger uygun parametreler seçilirse
mevcut imkanlarla makul bir sürede DLP yi çözmek oldukça zordur.
Günümüzde kullanılan modern kripto sistemler matematikte hesaplanması zor prob-
lemler üzerine insaa edilirler. Güvenligi DLP nin zorluguna dayanan bir çok krip-
tografi uygulaması vardır. Bu uygulamalardan bazıları
• Anahtar-degis tokusu (Diffie and Hellman 1976)
• Açık anahtar kriptosistem (ElGamal 1985)
• Akıllı kartlar için kimlik tanımlama ve imza (Schorr 1989)
• Kimlik tanımlama semaları (Brickell and McCurley 1990)
• Dijital imza seması (ElGamal 1984)
• Rastgele üreteçler (Sundaram 1998)
seklinde listelenebilir.
Bu tezde, sonlu cisimlerin çarpımsal grubundaki diskret logaritmayı (DL) hesaplayan
algoritmalar incelenecektir. Herhangi bir devirli grupta DLP yi çözen üstel zamanlı
algoritmalar mevcuttur. Eger grubun mertebesi ve mertebesinin çarpanlara ayrılısı
1
biliniyorsa ve bu çarpanlara ayrılıstaki asal bölenler küçükse bu grupta DLP etkili
bir sekilde çözülebilir. Eger grubun hakkında daha fazla bilgi varsa daha etkili
algoritmalar da gelistirilebilir. Örnek olarak, bir sonlu cismin çarpımsal grubunda
düzgünlük kavramından bahsedilebilir. Buna baglı olarak sonlu cismin çarpımsal
grubunda DLP yi çözen yarı-üstel zamanlı algoritmalar mevcuttur.
Kriptografide kullanılan bir baska önemli problemde çarpanlara ayırma problemidir.
Çarpanlara ayırma problemi ile DLP birbiriyle çok iliskilidir. Problemlerden birini
çözmek için uygulanan algoritmalardan çogu diger problem için de uygulanabilmek-
tedir. Üstelik, bu iki problem dısında kriptografide kullanılması kabul görmüs baska
bir problemde mevcut degildir.
2
2. TEMEL KAVRAMLAR
Bu bölümde tezde kullanılacak bazı temel kavramları verecegiz.
2.1 O Notasyonu
O notasyonu bir algoritmanın çalısma zamanını belirtmek için çok kullanıslıdır.
Tanım 2.1 f : N+ → R+ ve g : N+ → R+ iki fonksiyon olsun. Eger
∀n > n0 ∈ N+ için f (n) < Cg (n)
olacak sekilde bir C sabiti varsa f , g ile sınırlıdır denir ve f = O (g) ile gösterilir.
Örnek 2.1 f (n) := 2n2 + 3n− 3 ve g (n) := n2 olarak tanımlansın.
2n2 + 3n− 3 < 3n2 oldugundan f = O (g)
dir.
Tanım 2.1 asagıdaki gibi genellestirilebilir.
Tanım 2.2 Bir k pozitif tamsayısı için f : (N+)k → R+ ve g : (N+)k → R+ iki
fonksiyon olsun. Eger
∀nj > B için f (n1, n2, ..., nk) < Cg (n1, n2, ..., nk)
olacak sekilde B ve C sabitleri varsa f , g ile sınırlıdır denir ve f = O (g) ile gös-
terilir.
Bir algoritmada çıktıya ulasmak için yapılan islem sayısı ya da geçen zaman al-
goritmanın çalısma zamanı olarak adlandırılır. Bir algoritmanın çalısma zamanı
algoritmanın girdileri n1, n2, ..., nk olmak üzere f (n1, n2, ..., nk) fonksiyonu ile gös-
terilirse, O notasyonu yardımıyla algoritmanın çalısma zamanı daha basit sekilde
ifade edilebilir. Bununla birlikte, algoritmaların çalısma zamanını kıyaslamakta O
notasyonu kolaylık saglamıs olur. O notasyonu yardımıyla algoritmalar çalısma
3
zamanlarına göre polinom ve üstel zamanlı algoritmalar olarak sınıflandırılabilir.
Girdisi p olan bir A algoritmasının çalısma zamanı bir c pozitif tamsayısı için yak-
lasık O ((log2 p)c) veya O (pc) ise A algoritmasına sırasıyla polinom zamanlı veya
üstel zamanlı algoritma denir. Polinom zamanlı algoritmalardan daha yavas, fakat
üstel zamanlı algoritmalardan daha hızlı algoritmalara da yarı-üstel zamanlı algo-
ritmalar denir. Yarı-üstel zamanlı algoritmaların çalısma zamanını belirtmek için n
algoritmanın girdisi, c herhangi bir sabit ve v, (0, 1) aralıgında bir sayı olmak üzere
Ln [v; c] := exp¡(c+ o (1)) (log n)v (log logn)1−v
¢seklinde tanımlanan L fonksiyonu kullanılabilir. L fonksiyonunda v = 1 için üstel
zamanlı, v = 0 için polinom zamanlı bir algoritma elde edilir. v degeri 0 sayısına
yaklastıkça algoritma hızlanmıs olur.
2.2 Sayı Cisimleri
Bölüm 8 de anlatılacak olan Sayı cismi elegi algoritmasını tam olarak anlayabilmek
için cebirsel sayılar teorisinden bazı kavramların bilinmesi gerekir. Bu bölümde,
Sayı cismi elegi ile ilgili cebirsel sayılar teorisinden bazı teoremler ispatsız olarak
verilecektir. Ispatlar ve daha detaylı bilgi için Cohen’in (1993) kitabından yarar-
lanılabilir.
Tanım 2.3 (Sayı cismi) K, Q yu kapsayan bir cisim olsun. K, Q üzerinde bir vek-
tör uzayı olarak düsünüldügünde Q üzerinde sonlu boyutlu ise K ya sayı cismi denir.
K nın Q üzerindeki boyutuna K cisminin derecesi denir ve dimQK ile gösterilir.
Teorem 2.1 K, derecesi d olan bir sayı cismi olmak üzere
K = Q (α) :=
(d−1Xi=0
xiαi | (x0, x1, ..., xd−1) ∈ Qd
)
olacak sekilde bir α ∈ K vardır.
Bu bölümün sonuna kadar α, K nın bir elemanı olmak üzere K, derecesi d olan
Q (α) sayı cismini gösterecektir.4
Teorem 2.2 θ ∈ K olsun. f ∈ Z [x], k := do (f) 6 d ve f (θ) = 0 olacak sekilde bir
f (x) := akxk + ak−1xk−1 + ...+ a1x+ a0
polinomu vardır. Eger f polinomu Q [x] de indirgenemez ise f , θ nın minimal poli-
nomu olarak adlandırılır.
Tanım 2.4 w ∈ K olsun. Eger w elemanının minimal polinomu tamsayı katsayılı
bir polinom ise w, cebirsel tamsayı olarak adlandırılır.
ZK := {w ∈ K | w bir cebirsel tamsayı}
kümesi bir halka olusturur ve bu halkaya K cisminin tamlık halkası denir. Cebirsel
tamsayılar, tamsayıların genellestirilmesidir. K daki problemleri rasyonel sayılara
tasıyan norm dönüsümü asagıdaki sekilde tanımlanır.
Tanım 2.5 (Norm) σi : K → C d tane monomorfizma olmak üzere bir θ ∈ K
elemanının normu
N (θ) :=dY
i=1
σi (θ)
seklinde tanımlanır.
Norm dönüsümü çarpımsaldır ve bir elemanın normu rasyonel sayıdır. Tamlık halka-
sındaki bir elemanın normu ise tamsayıdır.
Tanım 2.6 (Diskriminant) θ, minimal polinomu
f (x) := xk + ak−1xk−1 + ...+ a1x+ a0
olan bir cebirsel tamsayı olsun.
∇f := N (f 0 (θ)) = kθk−1 + (k − 1) ak−1θk−2 + ...+ a1
ifadesine f polinomunun diskriminantı denir.
SCE algoritmasında asagıdaki teorem norm hesabı için kullanılır.
5
Teorem 2.3 K := Q (α) cisminin derecesi d ve α nın minimal polinomu
f (x) := adxd + ad−1xd−1 + ...+ a1x+ a0
olsun. Eger d > 2 ise a, b ∈ Q olmak üzere a+ bα elemanının normu için
N (a+ bα) = (−b)d f (−a/b)ad
esitligi saglanır.
I, R halkasının bir ideali (I < R) ise R/I ile bölüm gurubu gösterilecektir.
Tanım 2.7 I < ZK ise bir idealin normu
N (I) := |ZK/I|
seklinde tanımlanır. Eger ZK/I bir sonlu cisimse I ya ZK nın asal ideali denir. I
asal ideal olmak üzere bir m pozitif tamsayısı ve p asal tamsayısı için |ZK/I| = pm
dir. m pozitif tamsayısı I idealinin derecesi olarak adlandırılır.
ZK tek türlü ideallerine ayrılabilen bölgedir (TTIAB). SCE algoritması ZK nın bu
özelligini kullanır. [ZK : Z [α]], (Z [α] ,+) grubunun ZK üzerindeki grup indeksini
göstersin. Bu indeks sonludur ve indeksi bölen asal tamsayılara indeks bölenler
denir.
Bir p asal tamsayısının ZK da ürettigi idealin asal ideallerine ayrılısı Teorem 2.4 ile
verilebilir.
Teorem 2.4 α, bir cebirsel tamsayı olmak üzere K := Q (α) bir sayı cismi ve α
elemanının minimal polinomu T (x) olsun. f := [ZK : Z [α]] indeksini göstermek
üzere f yi bölmeyen bir p asal tamsayısı için pZK idealinin asal ideallerine ayrılısı
asagıdaki sekildedir. Ti polinomları monik olmak üzere
T (x) ≡gY
i=1
Ti (x)ei (mod p)
ise
℘i = (p, Ti (α)) := pZK + Ti (α)ZK6
olmak üzere
pZK =gY
i=1
℘eii
dir.
Teorem 2.4 de ℘i asal ideallerine p asal tamsayının üzerindedir denir ve ei 6 1 ise pasalı K da dallanmaz olarak adlandırılır. Her asal ideal tek türlü olacak sekilde bir
asal tamsayının üzerindedir.
Asagıdaki teorem ha+ bαi seklindeki idealleri hangi tip asal ideallerin böldügü ileilgili bilgi verir.
Teorem 2.5 a ve b tamsayıları aralarında asal olsun. Bu durumda,
℘| ha+ bαi ⇔ ℘, birinci dereceden asal ideal
veya
℘, indeks bölen bir asal tamsayının üzerindedir.
ZK da bir elemanın normu ile olusturdugu idealin normu arasında asagıdaki gibi bir
baglantı vardır.
Teorem 2.6 θ ∈ ZK içinN (θ) = N (θZK)
dir.
Teorem 2.7 α, bir cebirsel tamsayı olmak üzere K := Q (α) bir sayı cismi, a+bα ∈ZK, a ile b arasında asal ve p bir indeks bölen olmamak üzere ℘ = (p, α− cp) normu
p olan bir asal ideal olsun. Bu durumda,
N (a+ bα) ≡ 0 (mod p)℘| ha+ bαi ⇔ ve
−a/b ≡ cp (mod p)
dir. ha+ bαi nın asal ideallerine ayrılısındaki ℘ asal idealinin kuvveti N (a+ bα)
nın asal çarpanlara ayrılısındaki p asal tamsayının kuvvetine esittir.
7
3. ÇARPANLARA AYIRMA VE DISKRET LOGARITMA
Aritmetigin Temel Teoremi birden büyük her pozitif tamsayının sıra gözetmeksizin
asal sayıların çarpımı seklinde tek türlü yazılabildigini ifade eder. Bununla birlikte,
rastgele büyük bir tamsayı verildiginde bu asal çarpanlara ayrılısı bulmak mate-
matigin en eski ve zor problemlerinden biridir. Günümüzdeki bazı kripto sistemler
diskret logaritma problemine benzer olarak bu problemin üzerine insaa edilirler.
Bu iki problem birbiriyle çok iliskilidir. Çarpanlara ayırma problemini çözmek
için kullanılan bir çok algoritma DLP nin çözümüne de uygulanabilmektedir. Bu
bölümde, çarpanlara ayırma probleminin belli bir gruptaki DLP ye indirgenebilecegi
gösterilecektir. Dolayısıyla, DLP nin en az çarpanlara ayırma problemi kadar zor
oldugu söylenebilir.
p asal tamsayı olmak üzere
x2 ≡ 1 (mod p)⇒ x ≡ ±1 (mod p)
dir. Yani, 1 in mod p de tam iki tane karekökü vardır. Fakat, eger N asal degilse
Çin Kalan teoreminden 1 in mod N de ±1 den farklı kareköklerinin de bulundugukolayca gösterilebilir. Yani,
x2 ≡ 1 (modN) ve x 6≡ ±1 (modN)
olacak sekilde x ∈ Z∗N ler mevcuttur. Böyle bir x tamsayısı bulundugunda N nin
asikar olmayan bir çarpanı bulunabilir. Gerçekten,
x2 ≡ 1 (modN)⇒ x2 − 1 ≡ 0 (modN)
oldugundan
N |(x− 1)(x+ 1) (3.1)
dir. Benzer sekilde, x 6≡ ±1 (modN) ise
N - (x± 1) (3.2)
8
oldugu açıktır. Eger ebob (x± 1, N) = 1 ise (3.1) den N | (x∓ 1) dir. Bu ise (3.2)ile çelisir. Benzer sekilde, eger ebob (x± 1, N) = N ise (3.2) ile çeliski elde edilir.
Sonuç olarak, ebob (x± 1, N), N nin asikar olamayan bir çarpanıdır.
N asal veya bir asalın kuvveti olmasın. Eger N nin asal çarpanlara ayrılısı
N =sY
i=1
peii
ise
Z∗N ∼= (Z/pe11 )∗ × (Z/pe22 )∗ × ...× (Z/pess )∗
dir. φ, Euler-φ fonksiyonu olmak üzere, Z∗N çarpımsal grubunun mertebesi
φ (N) = φ1φ2...φs , φi := φ (peii ) = pei−1i (pi − 1)
dir. Herhangi bir a ∈ Z∗N için
i = 1, 2, ..., s için φi | e =⇒ ae ≡ 1 (mod peii )
oldugundan Çin kalan teoreminden
ae ≡ 1 (modN)
dir. Dolayısıyla, L := ekok (φ1, φ2, ..., φs) olmak üzere Z∗N grubundaki her elemanın
mertebesi L yi böler.
K, Z∗N ın bir altgrubu olmak üzere
K :=©x ∈ Z∗N | xL/2 ≡ ±1 (modN)
ªseklinde tanımlansın. N asal olmadıgından Z∗N da 1 in ±1 den farklı kareköklerimevcuttur. Dolayısıyla, K 6= Z∗N dir. Üstelik, Z∗N ın en az yarısı K kümesinde
degildir (Greeg 2003).
Eger xm ≡ 1 (modN) seklindeki bir denklemi çözebilirsek x ∈ Z∗N olacak sekilde
rastgele x tamsayıları seçerek 1/2 den büyük olasılıkla N nin asikar olmayan bir
çarpanı bulunabilir. Gerçekten, x ∈ Z∗N , x /∈ K ve xm ≡ 1 (modN) olacak sekilde9
bir m tamsayısının bilindigini kabul edelim. e2 (m), m yi bölen 2 nin en büyük
kuvvetini göstermek üzere,
xm, xm/2, xm/4, ..., xm/2e2(m)
dizisinde xm/2k ≡ 1 (modN) ve xm/2k+1 6≡ 1 (modN) olacak sekilde bir k tamsayısıvardır (Greeg 2003). Yani, 1 inmodN de±1 den farklı bir karekökü belirlendigindenebob
³xm/2k+1 ± 1, N
´, N nin asikar olmayan bir çarpanıdır. Dolayısıyla,
xm ≡ 1 (modN)
olacak sekilde bir m olusturulabilinirse N sayısının asikar olmayan bir çarpanı bu-
lunabilir. Z∗N grubundaki DLP çözümünden böyle bir m elde edilebilir.
p bir asal olmak üzere ebob(p, φ (N)) = 1 ise pq ≡ 1 (modN) olacak sekilde bir qtamsayısı vardır. Euler teoreminden xpq ≡ x (modN) oldugundan Z∗N daki DLP yi
çözerek q := (d log)xp x ve m := pq−1 belirlenebilir. φ (N) bilinmediginden rastgelebir p seçilip q := (d log)xp x ifadesi hesaplandıktan sonra x
pq ≡ x (modN) denkligi
kontrol edilerek m olusturulabilir. φ (N) < N oldugundan logN + 1 den küçük bir
p asalı için ebob(p, φ (N)) = 1 kosulu saglar. Böylece Z∗N daki DLP yi çözerek N nin
etkili bir sekilde nasıl çarpanlarına ayrılacagı özetle anlatıldı. Bu düsünce asagıda
algoritma olarak verilmistir.
Eger DLP yi Z∗N çarpımsal grubunda çözebilen bir A algoritması varsa, Algoritma
3.1 ile N etkili bir sekilde çarpanlarına ayrılabilir.
Algoritma 3.1 (ÇA problemini DLP ye indirgeme)
Girdi : N tamsayısı ve A algoritması
Çıktı : N nin asikar olmayan bir çarpanı
1. Z∗N dan rastgele bir g elemanı seç
2. H := N2 − 2N√N +N
3. 2 < r < H olacak sekilde rastgele bir r tamsayısı seç
4. y := gr (modN)
5. A algoritmasını kullanarak x := (d log)g y ifadesini hesapla
6. Eger gxr−1 6≡ 1 ise adım 1 e git
10
7. m := xr − 18. gm (modN) , gm/2 (modN) , ... dizisini
gm/2t ≡ 1 (modN) ve gm/2t+1 6≡ ±1 (modN)
olacak sekilde bir t tamsayısı buluncaya kadar hesapla
9. d := ebob³gm/2t+1 − 1, N
´, N nin asikar olmayan bir çarpanıdır.
Algoritma 3.1 in 2. adımında p ve q asal olmak üzere N = pq için
φ (N) = φ (p− 1)φ (q − 1) ≈ N − 2√N + 1
oldugundan H ≈ Nφ (N) seçilmektedir. Bu durumda, adım 3 de rastgele seçilen r
tamsayısı için ebob (r, φ (N)) = 1 olma olasılıgı artmaktadır (Bach 1984).
11
4. SONLU CISIMLERDE DISKRET LOGARITMAYI VEREN BIR
FORMÜL
q, bir p asalının kuvveti olmak üzere F∗q sonlu bir cismi göstersin. y ∈ F∗q ve g, Fqnun bir primitif elemanı olmak üzere
y = gx , 0 6 x < q − 1
olacak sekilde tek türlü bir x tamsayısı vardır. x tamsayısına g tabanına göre y nin
diskret logaritması denir ve x := (d log)g y seklinde gösterilir. q, g ve y verildiginde
x tamsayısını bulma problemine sonlu cisimlerde diskret logaritma problemi denir.
Tezin bundan sonraki kısmında aksi belirtilmedikçe g, x ve y harfleri yukarıda tanım-
landıgı anlamda kullanılacaktır.
Sonlu cisimlerde DL yı hesaplayan polinom tipinde formüller mevcuttur. Bu for-
müller açık formüller olarak adlandırılır. Açık formüller DL yi hesaplamak için
kullanıslı olmamasına ragmen matematiksel açıdan ilginçtir. Wells (1984) p asal
olmak üzere F∗p sonlu cismindeki diskret logaritmayı veren bir açık formül vermistir.
Bu formül herhangi bir sonlu cisim için genellestirilmistir (Mullen and White 1986).
Niederreiter (1990) verilen bu açık formülü daha basit bir sekilde ispatlamıstır. Son
olarak, Wan (2008) daha da basit ve kısa bir sekilde bu formülü ispatlamıstır.
Teorem 4.1 q, bir p asalının kuvveti olmak üzere Fq sonlu cismi için
x = (d log)g y ≡ −1 +q−2Xi=1
yi
g−i − 1 (mod p) (4.1)
dir.
Ispat. q = 2 durumunda, g = 1, h = 1, x = 1 veq−2Xi=1
= 0 dır. Dolayısıyla, (4.1)
q = 2 için gerçekler. Kabul edelim ki q > 2 olsun. Bu durumda,
q−2Xi=1
yi
g−i − 1 =
q−2Xi=1
gxi
g−i − 1 =q−2Xi=1
g(x+1)i
1− gi= −
q−2Xi=1
1− g(x+1)i
1− gi+
q−2Xi=1
1
1− gi
= −q−2Xi=1
¡1 + gi + g2i + ...+ gyi
¢+
q−2Xi=1
1
1− gi.
12
1 6 j 6 x olacak sekildeki ∀j ∈ Z içinq−2Xi=1
gij =1− gj(q−1)
1− gj− 1 = −1
veq−2Xi=1
1
1− gi=
Xγ∈Fq , γ 6=0,1
1
γ=
Xγ∈Fq , γ 6=0,1
γ = −1
dir. Sonuç olarak,
q−2Xi=1
yi
g−i − 1 = − (q − 2)− x (−1)− 1 ≡ x+ 1 (mod p)
13
5. KAREKÖK ALGORITMALAR
Bir G devirli grubunda diskret logaritma problemini çözen bir algoritma eger sonuca
yaklasıkp|G| grup isleminde ulasıyorsa bu algoritmaya karekök algoritma denir.
Bunlardan en önemlileri Küçük adım-Büyük adım, Pollard ρ, Kanguru ve Pohlig-
Hellman algoritmalarıdır. Bu algoritmalar herhangi bir devirli grupta DL hesabı için
kullanılmasına ragmen burada p asal olmak üzere F∗p sonlu cisminin çarpımsal grubu
üzerinden anlatılacaktır. F∗p ile (Z/pZ)∗ arasında bir izomorfizma kurulabileceginden
F∗p cisminin elemanları 1 ile p− 1 arasındaki tamsayılarla ifade edilecektir. Gadiyarvd. (2009) F∗p da DL yi hesaplayan ve yaklasık O
¡√p¢hafıza gerektiren olasılıksal
bir karekök algoritması gelistirmistir. Bu bölümde, bu algoritmanın çalısma zamanı
detaylı olarak ele alınarak Pollard ρ-algoritması ile kıyaslanacaktır ve algoritma
ihmal edilebilir bir hafıza gereksinimi olacak sekilde gelistirilecektir.
Pohlig-Hellman algoritmasında, eger p−1 in bütün asal bölenleri küçükse F∗p da DLPetkili bir sekilde çözülebilir. Fakat, genel olarak karekök algoritmalar büyük p asal-
ları için etkili degildirler. Öte yandan, bu algoritmaların herhangi bir devirli grupta
kullanılabilmeleri önem arz etmektedir. Örnegin, sonlu cisimler üzerindeki eliptik
egri grubunda DL hesabı için bilinen en etkili algoritma Pollard ρ-algoritmasıdır.
Bununla birlikte, Pollard ρ ve Kanguru algoritmaları birden fazla bilgisayar için
kullanıldıklarında (Paralellistirme) çalısma zamanında dogrusal bir artıs saglamak-
tadırlar (Pollard 2000).
5.1 Küçük-adım Büyük-adım algoritması
Shanks tarafından 1971 yılında gelistirilen bu algoritmayı p asal olmak üzere F∗pcismini gözönüne alarak anlatacagız.
b :=§√
p¨olmak üzere hesaplanmak istenilen x diskret logaritması, b tabanında
0 6 i, j 6 b− 1 olmak üzere i ve j tamsayıları için
x = i+ jb (5.1)
14
seklinde yazılabilir. Bu algoritmanın temel fikri i ve j tamsayılarını bulmaktır ki x
belirlenmis olsun.
gx = gi+jb ≡ y (mod p)⇐⇒ gi ≡ yg−jb (mod p) (5.2)
ifadesi yazılabilir. (5.1) yi saglayan i ve j yi bulmak için öncelikle 0 6 i 6 b− 1 içingi (mod p) ler hesaplanır ve (i, gi) ikilileri bir tabloya depolanıp ikinci bilesenine göre
küçükten büyüge sıralanır. Sonra, j = 0, 1, 2, ..., b− 1 için yg−jb (mod p) elemanları
ardısık olarak
yg−jb ≡ gi (mod p) (5.3)
denklemi saglanıncaya kadar hesaplanır. (5.3) ifadesinin saglanıp saglanmadıgı olus-
turulan tablo vasıtasıyla kontrol edilebilir. (5.3) saglandıgında, (5.2) den dolayı (5.1)
ifadesini saglayan i ve j dolayısıyla x bulunmus olur.
Bu algoritmanın çalısma zamanı O¡√
p¢ve gerekli hafıza miktarı O
¡√p¢dir. Yani,
büyük p asalları için etkili bir algoritma degildir. Bu algoritmanın daha farklı ver-
siyonları için (Buchman et al. 1997) ve (Blackburn and Teske 2000) makalelerine
bakılabilir.
Örnek 5.1 F19 de y := 15 ve g := 2 için x := (d log)2 15 diskret logaritmasını
bulmak isteyelim.
x tamsayısı, b :=§√19¨= 5 tabanında 0 6 i, j 6 4 olmak üzere i ve j tamsayıları
için
x = i+ 5j
seklinde yazılabilir. (i, gi) ikililerini hesaplayıp ikinci bilesenine göre küçükten büyüge
sıralayarak
T := [(0, 1) , (4, 4) , (3, 12) , (1, 13) , (2, 17)]
dizisini olusturalım.
j = 0 için yg−5j ≡ 15 (mod 19) dir. T de ikinci bileseni 15 olan eleman yok.j = 1 için yg−5j ≡ 17 (mod 19) dir. T de ikinci bileseni 17 olan (2, 17) elemanı var.Dolayısıyla, i = 1 ve j = 2 olarak belirlenir. Bu durumda x = i+ 5j = 11 dir.
15
5.2 Pollard ρ-Algoritması
Karekök zamanlı algoritmalar içinde yaygın olarak bilinen Pollard ρ-algoritması
olasılıksal bir algoritmadır (Pollard 1978). Bunun sebebi algoritmanın ihmal edilebilir
hafızaya gereksinim duyması ve üstel zamanlı bir algoritma olmasına ragmen düzgün-
lük kavramından bahsedemedigimiz gruplar için bilinen en etkili algoritma olmasıdır.
Bu algoritmada, F∗p cismindeki x := (d log)g y diskret logaritmasını hesaplamak için
fP (h) :=
⎧⎪⎪⎪⎨⎪⎪⎪⎩gh (mod p) , Eger 0 < h 6 p/3 ise
h2 (mod p) , Eger p/3 < h 6 2 (p/3) isehy (mod p) , Eger 2 (p/3) < h 6 p ise
seklinde tanımlanan fP : F∗p → F∗p iterasyon fonksiyonu kullanılır. Bu fonksiyon
baslangıç degeri h0 = 1 ve hk+1 = f (hk) olacak sekilde bir (hk) dizisi tanımlar.
Ayrıca, fP fonksiyonunun tanımından dolayı hk ≡ gαkyβk (mod p) olacak sekilde
asagıdaki (αk) ve(βk) dizilerini elde etmek kolaydır.
α0 := 0 , αi+1 :=
⎧⎪⎪⎪⎨⎪⎪⎪⎩αi + 1 (mod p− 1) , Eger 0 < h 6 p/3 ise
2αi (mod p− 1) , Eger p/3 < h 6 2 (p/3) iseαi (mod p− 1) , Eger 2 (p/3) < h 6 p ise
ve
β0 := 0 , βi+1 :=
⎧⎪⎪⎪⎨⎪⎪⎪⎩βi (mod p− 1) , Eger 0 < h 6 p/3 ise
2βi (mod p− 1) , Eger p/3 < h 6 2 (p/3) iseβi + 1 (mod p− 1) , Eger 2 (p/3) < h 6 p ise .
Eger (hk) dizisinde bir çakısma bulunursa, yanim 6= n olmak üzere hm ≡ hn (mod p)
ise
(βn − βm)x ≡ αm − αn (mod p− 1) (5.4)
denklemi elde edilir. (5.4) denkleminin çözümlerinden
gx ≡ y (mod p) (5.5)
ifadesini saglayan x diskret logaritması belirlenebilir. (5.4) denkleminden büyük bir
olasılıkla diskret logaritma elde edilir (Miller and Venkatesan 2009). Eger bu sekilde
diskret logaritma bulunamazsa, baska bir baslangıç degeri seçilip yukarıdaki islemler
tekrar edilebilir.
16
Örnek 5.2 F101 de y := 6 ve g := 2 için x := (d log)2 6 diskret logaritmasını Pollard
ρ-algoritması kullanarak bulmak isteyelim.
h0 := 1 baslangıç degeri için yukarıda tanımlanan (hk), (αk) ve (βk) dizilerini kul-
lanarak
h12 = 85, α12 = 54, β12 = 0
ve
h17 = 85, α17 = 14, β17 = 2
oldugu hesaplanabilir. h12 = h17 oldugundan (5.4) den
(β17 − β12)x ≡ α12 − α17 (mod p− 1)=⇒ 2x ≡ 40 (mod p− 1)=⇒ x = 20 veya 70
muhtemel x degerleridir. (5.5) den x := (d log)2 6 = 70 dir.
Simdi de, çakısma oldugu durumda bile çözümün belirlenemeyecegi bir örnek vere-
lim.
Örnek 5.3 F101 de y := 7 ve g := 2 için x := (d log)2 7 diskret logaritmasını Pollard
ρ-algoritması kullanarak bulmak isteyelim.
h0 := 1 baslangıç degeri için
h23 = 48, α23 = 20, β23 = 17
ve
h39 = 48, α39 = 20, β39 = 17
dir. h23 = h39 oldugundan (5.4) den
(β39 − β23)x ≡ α23 − α39 (mod p− 1)=⇒ 0 ≡ 0 (mod p− 1)
elde edilir. Dolayısıyla bu çakısma için diskret logaritmayı belirleyemeyiz.
17
Sekil 5.1. Pollard ρ-algoritmasının olusturdugu sekil
(hk) dizisinde bir çakısma olustuktan sonra fP fonksiyonunun tanımından dolayı bir
devir elde edilir. Bu durumu sekille ifade edersek Pollard ρ-algoritması Sekil 5.1 i
olusturur. Bu özelligi kullanıp çakısmayı bütün dizi elemanlarının arasında aramak
yerine belli elemanlar arasında arayan etkili çakısma bulma algoritmalarımevcuttur.
Çok az hafıza gerektiren bu algoritmalardan bazıları Floyd (1967), Brent (1980) ve
Teske (1998) nin algoritmalarıdır.
F∗p sonlu oldugundan (hk) dizisi periyodiktir. Dolayısıyla,
∀k > μ için hk = hk+μ (5.6)
kosulunu saglayan λ > 1 ve μ > 0 tamsayıları mevcuttur. λ ve μ tamsayıları
(5.6) i saglayan en küçük tamsayılar olmak üzere Pollard ρ-algoritmasının çalısma
zamanının analizi için λ ve μ nin yaklasık degerlerini veren asagıdaki teorem kul-
lanılabilir.
Teorem 5.1 (Harris 1960) Kabul edelim ki iterasyon fonksiyonu f : F∗p → F∗prastgele bir dönüsüm olsun. Bu durumda λ ve μ tamsayılarının yaklasık degeripπp/8 = 0.63
√p dir. Ve bir çakısma olusuncaya kadar gereken iterasyon sayısı
E (λ+ μ) yaklasıkpπp/2 ≈ 1.253√p dir.
Pollard ρ-algoritmasında bir çakısma-bulma algoritması kullanılarak I iterasyonda
bir çakısma bulunsun. Bu durumda, E (λ+ μ) ≈ I/δ olacak sekilde bir δ (gecikme
18
çarpanı) reel sayısı vardır. Yani, δ çakısmanın olusmasıyla bulunması arasındaki
farkı ölçmektedir. Eger çakısma-bulma algoritması olarak Teske’nin algoritması kul-
lanılırsa deneysel olarak δ ≈ 1.13 dür (Teske 1998).
Teske (2001) deneysel olarak Pollard ρ-algoritmasındaki iterasyon fonksiyonunun
performansınınE (λ+ μ) ≈ 1.37√p oldugunu göstererek rastgele bir fonksiyona göredaha kötü bir performansa sahip oldugunu bulmustur ve Pollard ρ-algoritmasının
çalısma zamanını asagıdaki iterasyon fonksiyonunu kullanarak %20 artırmıstır.
Sabit bir r ∈ N için v : F∗p → {1, 2, 3, .., r} bir özet fonksiyon olsun. i = 1, 2, 3, ..., riçin
mi, ni ∈ {1, 2, 3, ...p}
olacak sekilde 2r tane rastgele sayı kullanılarak
i = 1, 2, 3, ..., r için Mi ≡ gmiyni (mod p)
sayıları önceden hesaplansın. Teske’nin "adding walk" olarak adlandırdıgı iterasyon
fonksiyonu
fTA : F∗p → F∗ph 7→ yMv(h) , v (h) ∈ {1, 2, 3, ..., r}
seklinde tanımlanır. Teske (2001) bu iterasyon fonksiyonunu r > 16 olacak sekildekullanarak Polard ρ-algoritmasının çalısma zamanını E (λ+ μ) ≈ 1.29
√p olarak
gelistirmistir.
5.3 Kanguru Algoritması
Pollard (1978) ρ-algoritmasını tanımladıgı makalede DL yi hesaplayan bir baska
algoritma daha sundu. Bu algoritma kanguru veya lamda (λ) algoritması olarak
adlandırılır. Hesaplanması istenilen x diskret logaritması belli bir [a, b] aralıgında ol-
sun. Kanguru algoritmasında yabani ve evcil olmak üzere iki kanguru sahne alır. Bu
kanguruların Fp cisminin çarpımsal grubunda hareket ettigi varsayılsın. Dolayısıyla,
bir kangurunun pozisyonunu bir grup elemanı temsil eder. Evcil kanguru yolcu-
luguna e0 ≡ ga+b2 (mod p) den baslasın. Yabani kanguru ise yolculuguna diskret
logaritmasını hesaplamak istedigimiz y0 ≡ y (mod p) noktasından baslasın. Yani,
19
evcil kangurunun aralıgın ortasından basladıgını ve yabani kangurunun ise aralıgın
neresinden basladıgının belli olmadıgı söylenebilir.
Kanguru algoritmasının amacı yabani kangurunun yerini belirleyip y elemanının
diskret logaritmasını bulmaktır. Yabani kangurunun yeri evcil kangurunun yolu ile
kesismesi sonucu elde edilebilir. Simdi, bir kangurunun hareketini açıkca tanımla-
yalım.
Sıçrama uzunluklarından olusan S kümesi ve sıçramalardan olusan J kümesi
S := {s1, s2, ..., sr}
ve
J := {gs1, gs2, ..., gsr}
seklinde tanımlansın. Bir kangurunun grup içindeki bir sıçraması, J kümesinin bir
elemanının kangurunun o andaki yerini temsil ettigi grup elemanı ilemod p de çarpıl-
ması ile tanımlanır. Bir sıçrama için J kümesinin hangi elemanının kullanılacagının
belirlenmesi için F∗p den {1, 2, 3, .., r} ye tanımlı bir özet fonksiyonu kullanılır. Buözet fonksiyonu F∗p grubunu r tane ayrıkM1,M2, ...Mr kümelerine böler. Dolayısıyla,
kanguruların sıçramaları
k = 0, 1, 2, ... içinek+1 := ek ∗ gsi , ek ∈Mi
yk+1 := yk ∗ gsj , yk ∈Mj
olacak sekilde (ek) ve (yk) dizileri ile ifade edilebilir. Bu dizileri kullanarak kangu-
ruların sıçrayısları hesaplanırken
d0,evcil := 0 , k > 1 için dk+1,evcil := dk,evcil + si , ek ∈Mi
ve
d0,yabani := 0 , k > 1 için dk+1,yabani := dk,yabani + sj , yk ∈Mj
dizileri kullanılarak ne kadar yol aldıkları da hesaplanabilir.
ek1 = yk2 olacak sekilde k1 ve k2 indisleri için bir çakısma bulunabilirse
ga+b2 gdk1,evcil ≡ ygdk2,yabani (mod p)
20
denklemi saglanır. Buradan da y ≡ gx oldugundan
x ≡ a+ b
2+ dk1,evcil − dk2,yabani (mod p− 1) (5.7)
elde edilir. (5.7) denkleminin çözümünden istenilen diskret logaritma x belirlenebilir
Böyle bir çakısma bulmak için ayırt edilebilir nokta metodu kullanılabilir (van
Oorschot and Wiener 1999). Bu metodun temel fikri ek1 = yk2 çakısmasını dizilerin
tüm elemanları içinde aramak yerine belli bir özelligi saglayan terimler arasında
aramaktır.
D, F∗p ın bir alt kümesi olsun. Eger grubun bir elemanı D kümesinde ise bu elemana
ayırt edilebilen nokta denir. Önceden belirlenmis bir t tamsayısı için D kümesi
D = Dt :=©z ∈ F∗p | z nin ikilik tabanındaki gösterimindeki en son t tane biti sıfır
ªseklinde tanımlansın. D nin tanımından dolayı bir elemanın Dt kümesinde olup
olmadıgı kolayca anlasılabilir ve t yi kullanarak D nin eleman sayısı ayarlanabilir.
Bir kangurunun her bir sıçramasında, kangurunun yerini temsil eden grup elemanı
eger D nin elemanı ise (ek,dk,evcil) veya (yk,dk,yabani) ikilileri bir tabloda depolanır.
Istenilen çakısma, yeni bir ayırt edilebilen nokta tabloya depolanmadan önce tabloda
olup olmadıgı kontrol edilerek bulunabilir.
van Oorschot ve Wiener (1999) ayırt edilebilir nokta metodunu kullanarak, sıçrama
uzunlukları si lerin ortalama degerlerinin yaklasık√b− a/2 seçilerek kanguru algo-
ritmasının çalısma zamanının minimize edildigini göstermislerdir. Ve iki kanguru-
nun yaklasık 2√b− a sıçrayıstan sonra istenilen çakısmanın bulunabilecegini elde
etmislerdir.
Eger diskret logaritma x sayısının küçük bir aralıkta oldugu bilgisine sahipsek, kan-
guru algoritması etkilidir. Fakat, bu algoritmayı x ∈ [0, p] aralıgında düsünürsekPollard ρ metodundan daha yavastır. Kanguru algoritmasının parametrelerinin
seçilisiyle ilgili detaylı bilgi için Teske’nin (2000) makalesine bakınız.
21
5.4 Pohlig-Hellman Algoritması
Pohlig-Hellman algoritması çarpımsal bir grupta diskret logaritmayı hesaplayan bir
algoritmadır (Pohlig and Hellman 1978). Çin kalan teoremine dayanan bu algoritma
F∗p sonlu cismi için asagıdaki sekilde uyarlanabilir.
Kabul edelim ki g, Fp nin primitif kökü olsun ve x := (d log)g y diskret logaritmasını
hesaplamak isteyelim. p− 1 in asal çarpanlarına ayrılısı
p− 1 =kYi=1
peii
seklinde olsun. Eger
xi ≡ x (mod peii )
ler hesaplanabilirse Çin kalan teoreminden x elde edilebilir.
Kabul edelim ki q := pi ve e := ei olsun. x, q tabanında yazılarak
x ≡e−1Xj=0
ljqj (mod qe)
seklinde ifade edilebilir. Bu durumda,
h := yp−1q = gx
p−1q ≡
³gp−1q
´l0(mod p)
oldugundan t ≡ gp−1q (mod p) olmak üzere h
t0, t1, ..., tq−1
degerlerinden birisidir. Böylece, b0 Küçük adım-Büyük adımalgoritması kullanılarak
belirlenebilir. b0 belirlendikten sonra
¡yg−b0
¢p−1q2 ≡ tl1 (mod p)
denklemi kullanarak benzer sekilde b1 de belirlenebilir. Bu sekilde devam ederek
j = 0, 1, 2, ...e − 1 için bj ler belirlenebilir. Dolayısıyla, x (mod qe) belirlenmis olur.
Bu düsünce asagıda algoritma olarak verilmistir.
22
Algoritma 5.1 (Pohlig-Hellman algoritması)
Girdi : p, g, y
Çıktı : x öyle ki gx ≡ y (mod p)
1. p− 1 sayısını çarpanlarına ayır
p− 1 =kYi=1
peii
2. i = 1, 2, .., r için
xi ≡ x (mod peii ) olmak üzere
xi := l0 + l1pi + ...+ lei−1pei−1i , 0 6 lj < pi
yazılabilir. xi ler lj tamsayıları hesaplanarak asagıdaki gibi belirlenebilir.
2.1 q := pi ve e := ei
2.2 γ := 1 ve l−1 := 0
2.3 t := g(p−1)/q (mod p)
2.4 j = 0, 1, ..., e− 1 içinγ := γglj−1q
j−1(mod p) ve h := (yγ−1)(p−1)/q
j+1
(mod p)
lj = (d log)t h oldugundan Küçük adım-Büyük adım algoritmasından lj yi
belirle
3. Çin kalan teoremin kullanarak
xi ≡ x (mod peii )
denklemlerinden 0 6 x 6 p− 2 olacak sekildeki x tamsayısını belirle
Eger p − 1 sayısının çarpanlara ayrılısı biliniyorsa Pohlig-Hellman algoritmasınınçalısma zamanı O
ÃrX
i=1
ei¡log (p− 1) +√pi
¢!dir. Dolayısıyla, eger p − 1 küçük
asal bölenlere sahipse Algoritma 5.1 etkilidir.
Örnek 5.4 p := 251 asal tamsayısı için g := 71, Fp cisminin primitif köküdür.
Fp de y := 210 elemanının x diskret logaritması hesaplanmak istensin. p − 1 tam-sayısının asal çarpanlara ayrılısı
p− 1 = 250 = 2.5323
seklindedir. x1 ≡ x (mod 2) ve x2 ≡ x (mod 53) sayıları algoritmadan asagıdaki gibi
belirlenir.
1. x1 ≡ x (mod 2) nin belirlenisi
t ≡ gp−12 ≡ 250 (mod p) ve h ≡ y
p−12 ≡ 250 (mod p) ise x1 ≡ (d log)250 250 = 1
2. x2 ≡ x (mod 53) nün belirlenisi
x2 = l0 + 5l1 + 52l2 öyle ki j = 0, 1 ve 2 için 0 6 lj < 5
t := gp−15 ≡ 20 (mod p) ve q := 5 için
(i) γ := 1, h ≡ yp−15 ≡ 149 ise l0 = (d log)20 149 = 2
(ii) γ := γgl0 ≡ 712 ≡ 21 (mod p) ve h ≡ (yγ−1)(p−1)/52 ≡ 113 (mod p) isel1 = (d log)20 51 = 4
(iii) γ := γgl15 ≡ 115 (mod p) ve h ≡ (yγ−1)(p−1)/53 ≡ 149 (mod p) isel2 = (d log)20 149 = 2
Dolayısıyla, x2 = l0 + 5l1 + 52l2 = 72 dir. x ≡ 1 (mod 2) ve x ≡ 72 (mod 53) ise Çin
kalan teoreminden x ≡ 197 (mod p− 1) olarak hesaplanır.
5.5 Olasılıksal bir Karekök Algoritması
Ardısık kare alma-çarpma algoritması kullanılarak Fp de g, x ve p verildiginde
y = gx (mod p)
etkili bir sekilde hesaplanabilir.
x tamsayısını
x = x0 + 2x1 + 22x2 + ...+ 2kxk
olacak sekilde ikilik tabanda yazdıgımızı düsünelim.
Algoritma 5.2 (Ardısık kare alma-çarpma)
Girdi : g, x ve p
Çıktı : y öyle ki gx ≡ y (mod p)
1. y := 1
2. i := k
3. i > 0 oldukça3.1. y := y2 (mod p)
24
3.2. Eger xi = 1 ise y := y ∗ g (mod p)
3.3. i := i− 1
Örnek 5.5 x = 10 = (1010)2 yukarıdaki algoritmayı kullanırsak
1→ 1→ g → g2 → g4 → g5 → g10 ≡ y (mod p)
dir.
Gadiyar vd. (2009) bu algoritmanın tersi nedir? sorusuna cevap aramıstır. Bu
soruya cevap bulamasalar da diskret logaritmayı hesaplayan olasılıksal bir algoritma
gelistirmislerdir.
Algoritma 5.2 in tersi açık olarak esb (en sagdaki bit) den baslayarak bölme ve
ardısık karekök almadır. Yani, xi = 1 durumunda bölme ve karekök islemi, xi = 0
durumunda ise karekök islemi yapılır. Bu algoritma bölme-ardısık karekök alma
algoritması olarak adlandırılabilir. Buradaki amaç x sayısını bulmak oldugundan
x in bitleri bilinmiyor. Fakat, Legendre sembolünü kullanarak x sayısının esb si
asagıdaki gibi belirlenebilir.
Fp de g primitif kök oldugundan³gp
´= g
p−12 ≡ −1 (mod p) dir. Dolayısıyla,µ
y
p
¶=
µgx
p
¶=
µg
p
¶x
= (−1)x (5.8)
dir. Böylece,³yp
´etkili bir sekilde hesaplanabildigi için x in son bitini belirlemek
kolaydır. Herhangi bir h := gα ∈ Fp elemanının karekökü varsa gα/2 ve gα/2+(p−1)/2olmak üzere iki tanedir. Fp de h nin gα/2 ye esit olan karekökünü dogru karekök
olarak adlandıralım. Örnegin, F23 cisminin bir primitif kökü 5 dir. 8 elemanınınmod
23 deki karekökleri 10 ve 13 dür. 56 ≡ 8 (mod p) ve 53 ≡ 10 (mod p) oldugundan 8sayısının dogru karekökü 10 dur. Bölme ve ardısık karekök alma algoritmasında her
defasında dogru karekökü belirleyebilirsek, (5.8) esitligini de kullanarak x in bütün
bitleri etkili bir sekilde belirlenebilir.
Örnek 5.6 p := 23 asal tamsayısı için g := 5, Fp cisminin primitif köküdür. Fp de
y := 9 elemanının x diskret logaritmasını dogru karekökleri belirleyebildigimizi kabul
25
ederek hesaplamak isteyelim.³9p
´= 1 =⇒ x0 = 0 =⇒ 9 un dogru karekökü 20³
20p
´= −1 =⇒ x1 = 1 =⇒ 20g−1 ≡ 4 (mod p) ve 4 ün dogru karekökü 2³
2p
´= 1 =⇒ x2 = 0 =⇒ 2 nin dogru karekökü 5³
5p
´= −1 =⇒ x3 = 1 =⇒ 5g−1 ≡ 1 (mod p) ve 1 in dogru karekökü 1
oldugundan x = (x3x2x1x0)2 = (1010)2 = 10 olarak belirlenir.
Algoritma 5.3 (Bölme-ardısık karekök alma)
Girdi : g, y ve p öyle ki gx ≡ y (mod p)
Çıktı : x
1. i := 0
2. y <> 1 oldukça
2.1. Eger³yp
´= −1 ise
xi := 1
y := y ∗ g−1 (mod p)
y := y12 (mod p)
ny := gα olsun y
12 := g
α2
odegilse
xi := 0
y := y12 (mod p)
ny := gα olsun y
12 := g
α2
o2.2. i := i+ 1
3. x := (xixi−1...x0)2
Algoritma 5.3 de y := gα elemanınınmod p de karekökünü etkili bir sekilde hesaplayan
algoritmalar mevcuttur (Crandall and Pomerance 2005). Fakat, iki tane karekök
oldugundan hangisinin yα2 oldugunu belirlemenin yöntemi bilinmemektedir. Dolayısıyla,
bölme ve ardısık karekök alma algoritmasını bu sekilde kullanamayız.
y = gx, mod p de kuadratik rezidü olsun. y nin karekökleri gx2 ve g
x2+ p−1
2 dir. Eger
p ≡ 1 (mod 4) iseesb
³x2
´= esb
µx
2+
p− 12
¶dir. Dolayısıyla hangi karekökü seçersek seçelim x1 bitini dogru sekilde belirleye-
biliriz. Genel olarak, eger p − 1 = 2rs , s tek ve r > 1 ise x sayısının son r bitini
26
Bölme ve ardısık karekök alma algoritması ile belirlenebilir. (r + 1) . bitten itibaren
ise dogru karekökün hangisi oldugu bilinmediginden bu bitler bu yolla belirlenemez.
Bölme ve ardısık karekök alma algoritmasında karekök aldıgımızda iki karekökten
hangisinin dogru karekök oldugu bilinmese de Gadiyar vd. (2009) tarafından rast-
gele bir kök seçilerek DLP yi hesaplayan olasılıksal bir algoritma asagıdaki sekilde
verilmistir.
Algoritma 5.4 (DLP yi hesaplayan olasılıksal bir algoritma)
Girdi : g, y ve p öyle ki gx ≡ y (mod p)
Çıktı : x
1. Bir B pozitif tamsayısı belirle ve {kj}, tamsayıların bir alt dizisi olmak üzerej = 0, 1, 2, ..., B için
¡gkj , kj
¢elemanlarından olusan A dizisini olustur. B ve C yi
bos dizi olarak tanımla.
2. m := x , k := 0 , cakisma := 0
3. cakisma = 0 oldukça
3.1. Eger³yp
´= −1 ise
y := y ∗ g−1 (mod p) , m := m− 1y ∈ A, B veya C ise
cakisma := 1
kuvvet := y sayısına dizide karsılık gelen kuvvet
Çoz (m, kuvvet, k)
(y,m) yi B ye ekle
3.2. y := y12 (mod p) , m := m
2, k := k + 1
y (veya p− y) ∈ A, B veya C ise
cakisma := 1
kuvvet := y (veya p− y) sayısına dizide karsılık gelen kuvvet
Çoz (m, kuvvet, k)
(y,m) ve (p− y,m) yi C ye ekle
y yi rastgele y veya p− y olarak belirle
Çoz (a, b, t) :
2ta ≡ 2tb (mod p) lineer kongrüansının çözümlerini belirleyip x in muhtemel deger-
27
lerini bul. Bu degerlerden
gx ≡ y (mod p) (5.9)
denklemini saglayan x tamsayısını belirle.
Algoritma 5.4 ü kısaca özetleyelim. A dizisi, önceden hesaplanan B tane g nin
kuvvetinden ve bu elemanlara karsılık gelen kuvvetlerden olusmaktadır. B dizisi
ise³yp
´= −1 olacak sekildeki y ara degerlerinden ve onlara karsılık gelen x in li-
neer fonksiyonu olan m kuvvetlerinden olusmaktadır. Benzer sekilde C dizisi de³yp
´= 1 olacak sekildeki y ara degerlerinden ve onlara karsılık gelen x in lineer
fonksiyonu olan m kuvvetlerinden olusmaktadır. y nin her yeni degerinin A, B
veya C ile çakısıp çakısmadıgı kontrol ediliyor. Eger bir çakısma varsa y için karsılık
gelen kuvvetlerden bir lineer denklem olusturulup çözülerek x in mod (p − 1) dekiolası degerleri belirleniyor. Bir lineer denklemin etkili bir sekilde çözümleri bulun-
abilir. Bu çözümlerden büyük bir olasılıkla istenilen diskret logaritma belirlenebilir.
Dolayısıyla, bu algoritma olasılıksal bir algoritmadır. Bununla birlikte, algoritmada
rastgele bir karekök seçilmesi de algoritmanın olasılıksal olmasına etkendir. Al-
goritmada k degiskeni kaç defa karekök alındıgını sayar. Çakısma bulundugunda
Çoz (a, b, t) fonksiyonunda olusturulan denklemin her iki tarafı 2k ile çarpıldıgı için
algoritmada yanlıs karekökler seçilmis olsa bile bu karısıklık giderilmis olur. Aynı
zamanda, bu islem denklemin katsayılarının tamsayı olmasına neden olur.
Algoritma 5.4 ün çalısma zamanı ve hafıza gereksinimi B ≈ √p için O ¡√p¢ dir.(Gadiyar et al. 2009).
Örnek 5.7 p = 103 asal tamsayısı için g = 5, Zp de bir primitif köktür. B = 7 ve
j = 1, 2, .., 7 için kj = 2j−1 olsun. Bu durumda A dizisi asagıdaki gibidir.
j 0 1 2 3 4 5 6
52j(mod 103) 5 25 7 49 32 97 36
28
Algoritma 5.4 ü y = 84 için uygularsak,
y¡
y103
¢y ∗ g−1 (mod 103) y
12 ve − y
12 Rastgele seçilen karekök m
84 −1 58 − − x− 158 1 − 26 , 77 77 x−1
2
77 −1 36 − − x−12− 1
36 için A dizisinde bir çakısma bulduk. Yalnızca bir kere karekök aldıgımızdan k = 1
dir. Dolayısıyla,
2 ∗µx− 12− 1¶≡ 2 ∗ 26 (mod 102)
lineer denklemini çözersek x ≡ 29 (mod 102) dir.
Örnek 5.8 p = 103 asal tamsayısı için g = 5, Zp de bir primitif köktür. B = 7 ve
j = 1, 2, .., 7 için kj = 2j−1 olsun.
Algoritma 5.4 ü y = 99 için uygularsak,
y¡
y103
¢y ∗ g−1 (mod 103) y
12 ve −y 1
2 Rastgele seçilen karekök m
99 -1 61 - - x− 161 1 - 24 , 79 24 1
2(x− 1)
24 -1 46 - - 12(x− 3)
46 1 - 47 , 56 56 14(x− 3)
56 1 - 46 , 57 - 18(x− 3)
4. sütundaki 46 ile 3. sütündaki ile çakıstı. 3 kere karekök alındıgından
x− 3 ≡ 4 (x− 3) mod 102
dir. Lineer denklemi çözersek, x ≡ 3 (mod 34) dir. Dolayısıyla, x in olası deger-leri 3, 37 ve 71 dir. Bu durumda x diskret logaritmasının degeri (5.9) denklemi kul-
lanılarak 37 olarak belirlenebilir.
Bu algoritma, ebob(r, p − 1) = 1 olmak üzere r ve s tamsayıları için³yp
´= −1
durumunda
y := y ∗ g−1 (mod p) ve m := m− 1
yerine
y := yr ∗ gs (mod p) ve m := rm+ s
29
islemi uygulanarak genellestirilebilir. Nasıl bir (r, s) ikilisi seçilmeli ki algoritmanın
çalısma zamanı azalsın? sorusu sorulabilinir. Bu simdilik açık bir problemdir.
Gadiyar vd. (2009) nin bu algoritması aslında Pollard ρ-algoritmasına benzer bir
algoritmadır. Çünkü, Algoritma 5.4, baslangıç degeri h0 := y olmak üzere
fG (h) :=
⎧⎪⎪⎪⎨⎪⎪⎪⎩h (mod p) nin rastgele seçilen bir kökü, Eger
³hp
´= 1 ise
hrgs (mod p) , Eger³hp
´= −1 ise
iterasyon fonksiyonu ile üretilen (hk) dizisinde A, B ve C dizilerini kullanarak bir
çakısma bulmaya çalısır.
Bu algoritmayı bu sekilde yorumlamamızın amacı fG iterasyon fonksiyonunun per-
formansını belirleyerek Gadiyar vd. (2009) ile Pollard ρ algoritmalarını kıyasla-
maktır. Bu iterasyon fonksiyonunun performansını belirlemek için r = 1, s = 1
ve B ≈ √p parametreleri seçilip Maple programı kullanarak Çizelge 5.1 i olustur-duk. Bu deneyde, sabitlenmis bir n pozitif tamsayı için 10n−1 < p < 10n olacak
sekilde rastgele bir p asal tamsayısı seçerek Fp cismini ve bu cisme karsılık gelen
bir primitif kök olusturuldu. Bu cismin çarpımsal grubundan S tane rastgele ele-man seçilerek her bir eleman için algoritmanın çakısmayı kaç iterasyonda buldugu
belirlenip toplam iterasyon sayısı T belirlendi. Buna göre, Lp
Lp :=T
S√polarak tanımlansın. Bu islem rastgele p asalları seçilerek olusturulan farklı gruplar
için de tekrarlanarak
L := Lp lerin aritmetik ortalaması
seklinde tanımlanan L degeri bulundu. L degeri basamak sayısı n olan bir grupta
algoritmanın performansını ölçmek için kullanılabilir. Çizelge 5.1 de, birinci sütun
grubun mertebesinin basamak sayısı n yi, ikinci sütun L degerini, üçüncü sütun kaç
farklı grup kullanıldıgını, dördüncü sütun gruptan seçilen rastgele eleman sayısı Syi ve besinci sütun da toplam örnek sayısını göstermektedir.
30
n L #(Farklı grupların) S #(Toplam örnek)
3 0.542 100 100 10000
4 0.558 100 100 10000
5 0.564 100 100 10000
6 0.569 40 40 1600
7 0.575 20 30 600
8 0.627 5 10 50
Ortalama 0.555 - - 32250
Çizelge 5.1. Fp cisminin çarpımsal grubunda fG fonksiyonunun performansı
Çizelge 5.1 kullanılarak Gadiyar vd. nin algoritması ile Pollard ρ-algoritmasının per-
formansları kıyaslanabilir. Pollard ρ-algoritması, F∗p cisminin çarpımsal grubunda
herhangi bir çakısma bulma algoritması kullanmadan bir çakısmayı yaklasık 1.55√p
iterasyonda bulur (Bai and Brent 2008). Bununla birlikte, Pollard ρ-algoritmasının
iterasyon fonksiyonunda yalnızca bir grup islemi yapılmaktadır. Gadiyar vd. nin
algoritması ise Çizelge 5.1 den bir çakısmayı yaklasık 0.555√p iterasyonda bulur.
Fakat, bu algoritmanın iterasyon fonksiyonunda legendre sembolünün ve bir grup ele-
manının kuvvetinin hesaplanması gerekmektedir. Dolayısıyla, her iterasyon fonksiy-
onunda yaklasık O¡log3 p
¢grup islemininin yapılması gerekir. Böylece, Pollard ρ-
algoritması bir çakısmayı yaklasık olarak 1.55√p grup isleminde bulurken, Gadiyar
vd. nin algoritması 0.555√pO¡log3 p
¢grup isleminde bulur. Sonuç olarak, p > 27
için
0.555√pO¡log3 p
¢> 1.55
√p
oldugundan Pollard ρ-algoritmasının Gadiyar vd. nin algoritmasına göre pratikte
daha etkili oldugunu deneysel olarak göstermis olduk.
Pollard ρ-algoritmasında bir çakısma bulma algoritması kullanılarak çok az bir hafıza
ile bir çakısma bulunabiliyordu. Gadiyar vd. nin algoritmasında ise, kullanılan i-
terasyon fonksiyonunda rastgelelik oldugundan bir çakısma olustuktan sonra bir
devir elde edilemez. Dolayısıyla, algoritmanın bu halinde bir çakısma bulma algo-
31
n L #(Farklı grupların) S #(Toplam örnek)
3 1.164 100 100 10000
4 1.185 100 100 10000
5 1.261 100 100 10000
6 1.365 40 40 1600
7 1.217 20 30 600
8 1.135 5 10 50
Ortalama 1.211 - - 32250
Çizelge 5.2. Fp cisminin çarpımsal grubunda fM fonksiyonunun performansı
ritması kullanılamaz. Bu rastgeleligi ortadan kaldırmak için iterasyon fonksiyonunu
fM (h) :=
⎧⎪⎪⎪⎨⎪⎪⎪⎩h (mod p) nin küçük olan kökü , Eger
³hp
´= 1 ise
hrgs (mod p) , Eger³hp
´= −1 ise
seklinde tanımlayalım. Bu durumda, bu iterasyon fonkiyonunun ürettigi diziyi ele
alırsak bir çakısma olustuktan sonra bir devir olusur. Böylece, bir çakısma bulma
algoritması kullanılarak bu algoritma herhangi bir dizi olusturulmadan çok az bir
hafıza ile bir çakısma bulacak sekilde gelistirilebilir. Algoritmadaki bu degisiklilerin
çalısma zamanını nasıl etkiledigi asagıda incelenmistir.
Gadiyar vd. nin algoritması, iterasyon fonksiyonu olarak fM ve çakısma bulma algo-
ritması olarak Teske’nin (1998) algoritması kullanılarak r = 1 ve s = 1 parametreleri
için Maple programlama dilinde kodlanarak Çizelge 5.2 elde edilmistir.
Çizelge 5.2 ye göre algoritmanın bu versiyonu Fp sonlu cismindeki çarpımsal grupta
bir çakısmayı yaklasık L = 1.211√p iterasyonda bulur. Dolayısıyla, iterasyon
fonksiyonunda rastgeleligin kaldırılması ve dizi olusturulmadan bir çakısma bulma
algoritması kullanılması performansı önemli ölçüde azaltmamıstır. Üstelik, ihmal
edilebilir bir hafıza ile çakısmayı bularak algoritmayı hafıza açısından önemli dere-
cede gelistirmis olduk.
32
6. YARI-ÜSTEL ZAMANLI ALGORITMALAR
Sonlu cisimlerde diskret logaritma hesabı için yarı-üstel zamanlı algoritmalar mev-
cuttur. Bu algoritmalar Bölüm 5 deki algoritmalardan farklı olarak düzgünlük
kavramından bahsedilebilen gruplar için kullanılabilir ve indeks calculus algorit-
malar olarak adlandırılır. Indeks calculus algoritmalar çalısma zamanı kesin (rigor-
ous) veya bazı kabullere dayanan (heuristic) algoritmalar olarak ikiye ayrılır. Birinci
tipteki algoritmalar teorik açıdan, ikinci tipteki algoritmalar ise pratik açıdan önem-
lidir. Bu bölümde, Fp ve F2n cisimlerinin kriptografi açısından öneminden dolayı bu
cisimler üzerinden bazı heuristic olan indeks calculus algoritmalarına deginilecektir.
6.1 Düzgünlük Kavramı
p bir asal tamsayı, d ∈ Z+ ve q := pd olarak tanımlansın. Sonlu cisimler asagıdaki
gibi temsil edilebilirler.
1. p asal olmak üzere Fp ∼= (Z/pZ) oldugundan
Fp nin elemanları [0, p− 1] aralıgındaki tamsayılar ile, (6.1)
2. f (x) polinomu Zp [x] de indirgenemez olmak üzere Fpd ∼= Zp [x] / < f (x) >
oldugundan
Fq nun elemanları polinomlar ile, (6.2)
3. Fpd ∼= ZK/ < p > oldugundan
Fq nun elemanları cebirsel tamsayılar ile (6.3)
temsil edilebilir.
Indeks calculus algoritmalarında düzgün tamsayılar, polinomlar veya cebirsel tam-
sayılar kullanılır.
Düzgün sayılar çarpanlara ayırma, diskret logaritma veWaring problemi vb. konular
için çok önemli bir yere sahiptir.
33
x #{I deki asallar} #{J deki asallar} #{I daki √x-düzgün sayılar}100 25 4 46
1000 168 11 434
10000 1229 25 3716
100000 9562 65 35819
Çizelge 6.1. Düzgün sayıların yogunlugu
6.1.1 Düzgün tamsayılar
Tanım 6.1 (Düzgün tamsayı) Eger bir pozitif tamsayının bütün asal bölenleri bir
B sayısından küçükse bu tamsayıya B-düzgün denir.
Çizelge 6.1 de I ve J sırasıyla [1, x] ve [1,√x] aralıklarını göstermektedir ve 100000
den küçük x pozitif tamsayıları için J aralıgındaki asal sayısı I aralıgındaki asal
sayısına göre ihmal edilebilir sayıdadır. Fakat, ilginç bir sekilde√x-düzgün tam-
sayıların sayısı [1, x] aralıgındaki tamsayıların sayısının en az %30 unu olusturmak-
tadır. Düzgün sayıların ÇA ve DL problemlerinde kullanılmasının sebebi bu yogun-
lugundan dolayıdır.
Bu durum, herhangi bir B ∈ Z+ için
Ψ (x, y) := # {1 6 n 6 x | n sayısı B-düzgün}
fonksiyonunun incelenmesini gerektirir. Bu fonksiyon asimtotik açıdan literatürde
genis bir sekilde ele alınmıstır.
u := log x/ logB ve ρ (u),
0 6 u 6 1 için ρ (u) = 1 ve uρ0(u) + ρ (u− 1) = 0 (6.4)
diferansiyel denkleminin çözümü olmak üzere Dickman (1930),
Ψ¡x, x1/u
¢ ≈ xρ (u)
yaklasmını vermistir. (6.4) deki diferansiyel denklemin ρ (u) çözümü
ρ (u) ≈ u−u+o(u)
34
olarak verilebilir. Dolayısıyla,
Ψ (x,B)
x≈ u−u+o(u) (6.5)
dur.
Indeks calculus algoritmalarının analizi için x nin ve B nin büyüklükleri sırasıyla
x = Lp [s; c] ve B = Lp [sB; cB] dir. Bu durumda, [1, x] aralıgından seçilen rastgele
bir tamsayının B-düzgün olma olasılıgı
Ψ (x,B)
x= Lp
∙s− sB;− (s− sB)
c
cB+ o (1)
¸dır (Studholme 2002). Bu algoritmaların bir kısmında bir aralıktaki degerlerin B-
düzgün olup olmadıgına bakmak yerine bir polinomun belli bir aralıktaki görüntü-
lerinin düzgün olup olmadıgına bakılır. Bu durum için asagıdaki kestirim verilebilir.
Kestirim 6.1 f , Z üzerinde n degiskenli bir polinom ve£−1
2C, 1
2C¤aralıgındaki
xi tamsayıları için |f (x1, x2, ..., xn)| < A olsun. ai ler£−1
2C, 1
2C¤aralıgından rast-
gele seçilen tamsayılar olmak üzere f (a1, a2, ..., an) degerinin B-düzgün olma olasılıgıΨ(A,B)
Adır. Eger B = Lp [sB; cB] ve A = Lp [sA; cA + o (1)] olarak seçilirse
Ψ (A,B)
A= Lp
∙sA − sB;− (sA − sB)
cAcB+ o (1)
¸dir.
6.1.2 Düzgün polinomlar
p asal olmak üzere Zp [x] halkası bir çok yönden Z halkasına benzer. Örnegin, Zp [x],
Z halkası gibi asagıdaki özellikleri saglar.
• Tek türlü çarpanlarına ayrılabilen bölgedir (TTÇAB).
• Sonlu sayıda terslenebilen elemana sahiptir.
• Sıralanabilen bir halka olmamasına ragmen polinomların dereceleri yardımıylabüyüklük-küçüklük kavramı olusturulabilir.
35
Dolayısıyla, tamsayılar için tanımlanan düzgünlük kavramı polinomlar için uyarla-
nabilir.
Tanım 6.2 (Düzgün polinom) Eger bir polinomun bütün asal bölenlerinin derecesi
bir pozitif m tamsayısından küçükse bu polinoma m-düzgün denir.
Düzgün polinomların sayısı da düzgün tamsayılar gibi yogundur. Yani, Zp [x] de
u := d/b olmak üzere derecesi d den küçük olan bir polinomun b-düzgün olma
olasılıgı u−u dur (Odlyzko 1985). Özel olarak,
N (k,m) := # {p (x) ∈ Z2 [x] | do (p (x)) = k , p (x) polinomu m-düzgün}
ve
p (k,m) := Z2 [x] de derecesi k olan bir polinomun m-düzgün olma olasılıgı
olarak tanımlansın. Bu durumda,
p (k,m) =N (k,m)
N (k, k)=
N (k,m)
2k
dır.
N (k,m) nin yaklasık degerini hesaplayan asagıdaki teoremi vermistir (Odlyzko
1985).
Teorem 6.1 I (k), Z2 [x] de derecesi k dan küçük asal polinomların sayısı olmak
üzere
fm (z) =mYk=1
¡1− zk
¢−I(k)ve
b (z) =
µf 0mfm(z)
¶0=
mXk=1
I (k)
µk (k − 1) zk−2
1− zk+
k2z2k−2
(1− zk)2
¶ise n1/100 6 m 6 n99/100 , n→∞ için
N (n,m) ≈ (2πb (r0))−1/2 fm (r0) r−n0
dir. Burada, r = r0 = r0 (m,n) ifadesi
rf 0mfm(r) = n
denkleminin tek çözümünü göstermektedir.
36
Sonuç 6.1 n1/100 6 m 6 n99/100 , n→∞ için
N (n,m) ≈ 2n³mn
´(1+o(1))n/mdir.
Sonuç 6.1 den
p (n,m) =N (n,m)
N (n, n)≈ exp
³(1 + o (1))
n
mloge
m
n
´(6.6)
olarak bulunur.
6.2 Fp de Indeks Calculus Algoritması
Günümüzde, sonlu cisimlerde DLP yi çözen en etkili algoritmalar indeks calcu-
lus algoritmalarıdır. Bu algoritmaların temel fikri Kraitchik (1922) tarafından or-
taya atılmıstır. Bu algoritma sınıfının ilk versiyonunu temel indeks calculus (TIC)
olarak adlandıralım. Fp asal cismi için TIC algoritması Adleman (1979), Merkle
(1979) ve Pollard (1978) tarafından birbirlerinden bagımsız olarak bulunmus ve
analiz edilmistir. Bu algoritma sabit bir p asalı ve n → ∞ için Fpn sonlu cis-
mine genellestirilmistir (Hellman and Reyneri 1983). Bu bölümde, TIC algoritması
Fp cismi üzerinden anlatılacaktır.
Fp cisminde x := (d log)g y diskret logaritması hesaplanmak istensin. B pozitif bir
tamsayı olmak üzere S kümesi
S := {p asal tamsayı | p 6 B}
seklinde tanımlansın. S kümesi çarpan tabanı veB tamsayısı düzgünlük sınırı olarak
adlandırılır. TIC algoritması iki ana bölümden olusur. Birinci bölüm, bagıntılar
elde edilerek S kümesinin elemanlarının diskret logaritmalarını bulmaktan olusur.
Bu bagıntılar,
i = 1, 2, ..., k için gr ≡ pr11 pr22 ...p
rkk (mod p) , pi ∈ S
seklindeki denklemlerden elde edilirler. Bu tip bir denklemden logaritmanın özellik-
lerini kullanarak
r ≡ r1 (d log)g p1 + r2 (d log)g p2 + ...+ rk (d log)g pk (mod p− 1) (6.7)
37
denklemi elde edilebilir. Bu denklemi bagıntı olarak adlanrıcagız.Eger yeterince bu
sekilde bagıntı elde edilebilirse lineer cebir kullanılarak S kümesindeki elemanların
diskret logaritması hesaplanabilir. Algoritmanın ikinci bir bölümü ise istenilen x
diskret logaritmasının hesaplanmasından olusur. Eger
i = 1, 2, ..., k için gRy ≡ pα11 pα21 ...pαkk (mod p) , pi ∈ S
seklinde bir denklem elde edilebilirse, logaritmanın özelliklerinden
x = (d log)g y ≡ −R+ α1 (d log)g p1 + α2 (d log)g p2 + ...+ αk (d log)g pk (mod p− 1)(6.8)
dir. Bu tip bagıntılar rastgele r veR tamsayıları seçilerek olusturulabilir. Dolayısıyla,
(6.8) bagıntısında, R tamsayısı ve S kümesindeki elemanların DL leri bilindiginden
x = (d log)g y elde edilebilir.
Algoritma 6.1 (TIC algoritması)
Girdi : p asal, Fp nin bir primitif elemanı g ve y ∈ FpÇıktı : x := (d log)g y
1. Bir B (düzgünlük sınırı) seç ve
S := {p | p asal tamsayı ve p 6 B}
çarpan tabanını olustur.
2. r ∈ [1, p− 2] olacak sekilde rastgele r tamsayıları seçerek |S| den fazla B-düzgünh := gr (mod p) tamsayıları belirle. Eger h tamsayısı B-düzgünse,
h ≡Yv∈S
vev(h) (mod p)
olacak sekilde çarpanlarına ayrılır. Bu çarpanlara ayrılıstan
(d log)g h ≡Xv∈S
ev (h) (d log)g v (mod p− 1)
bagıntısı elde edilebilir.
3. Adım 2 de elde edilen bagıntılardan lineer cebir kullanarak S kümesindeki asal-
ların diskret logaritmalarını belirle.
38
4. Rastgele R ∈ [1, p− 2] tamsayıları seçerek B-düzgün olan bir h := ygR (mod p)
tamsayısı belirle. Bu durumda,
h ≡ ygR ≡Yv∈S
vev(h) (mod p)
⇒ x = (d log)g y ≡Xv∈S
ev (h) (d log)g v −R (mod p− 1)
dir.
Örnek 6.1 p = 1217 asal tamsayısı için Fp nin bir primitif elemanı g = 3 dür. Fpde y = 37 elemanının diskret logaritmasını indeks calculus algoritmasını kullanarak
hesaplamak isteyelim.
B = 13 düzgünlük sınırı için çarpan tabanı
S = {−1, 2, 3, 5, 7, 11, 13}
seklinde olur.
r = 1, 24, 25, 30, 54 ve 87 sanslı sayıları için
31 ≡ 3 (mod 1217) 330 ≡ −2× 52 (mod 1217)324 ≡ −22 × 7× 13 (mod 1217) 354 ≡ −5× 11 (mod 1217)325 ≡ 53 (mod 1217) 387 ≡ 13 (mod 1217)
denklemleri elde edilir. Fermat’ın küçük teoreminden −1 sayısının diskret loga-ritması
g(p−1)/2 ≡ −1 (mod p) =⇒ (d log)g (−1) =p− 12
= 608
dir. Dolayısıyla yukarıdaki denklemlerin her iki tarafının 3 tabanında diskret loga-
ritmasını alarak
1 ≡ (d log)3 3 (mod 1216)24 ≡ 608 + 2 (d log)3 2 + (d log)3 7 + (d log)3 13 (mod 1216)25 ≡ 3 (d log)3 5 (mod 1216)30 ≡ 608 + (d log)3 2× 2 (d log)3 5 (mod 1216)54 ≡ 608 + (d log)3 5 + (d log)3 11 (mod 1216)87 ≡ (d log)3 13 (mod 1216)
39
bagıntıları elde edilir. Bu bagıntılardan lineer cebir kullanarak çarpan tabanındaki
elemanların diskret logaritmaları belirlenebilir.
R = 16 sanslı sayısı için
316 × 37 ≡ 23 × 7× 11 (mod 1217)
denklemi elde edilir. Bu denklemde her iki tarafın 3 tabanında diskret logaritması
alınırsa
16 + (d log)3 37 ≡ 3 (d log)3 2 + (d log)3 7 + (d log)3 11 (mod 1216)
bagıntısını elde edilir ve (d log)3 37 = 588 olarak belirlenir.
Algoritma 6.1 de 1,2 ve 3. adımlar algoritmanın birinci bölümü, 4. adım ise al-
goritmanın ikinci bölümü olarak adlandırılır. Bu algoritma için asagıdaki sorular
belirir.
• Bir sayının B-düzgün oldugu nasıl belirlenir ?
• Lineer cebir bölümünün detayları nedir ?
• B nin uygun degeri nedir?
• Bu algoritmanın çalısma zamanı nedir?
Bu sorular alt bölümlerde ele alınacaktır.
6.2.1 Düzgünlük testi
TIC algoritmasında, düzgünlük sınırı B seçilip çarpan tabanı S olusturulduktan
sonra çok sayıda B-düzgün sayı belirlenmesi gerekiyordu. Yani, bir tamsayının
düzgün olup olmadıgını test etmek (düzgünlük testi) önemlidir. Düzgünlük testi
için bazı çarpanlara ayırma algoritmaları ve eleme metotları kullanılabilir.
Pozitif tamsayıları çarpanlarına ayırmak için kullanılan normal bölme algoritması
düzgünlük testi olarak uyarlanabilir. Normal bölme algoritmasında bir sayının
çarpanları, kareköküne kadar olan asallara bölünerek belirlenir. Benzer sekilde, bir
40
sayının düzgün olup olmadıgı, önceden olusturulan S kümesindeki asallara bölünerek
asagıdaki gibi belirlenir. Her bir bölme isleminde bölüm, sayının yeni degeridir ve
S deki asallara bölündügü sürece bölme islemi tekrar edilir. Bu islemin sonucunda,
eger bölüm 1 oluyorsa bu sayının bütün asal bölenleri S kümesinde demektir. Yani,
bu sayı B-düzgündür. S kümesinde π (B) tane asal oldugundan bu testin çalısma
zamanı O (π (B)) dir.
Düzgünlük testi olarak Pollard ρ veya eliptik egri çarpanlara ayırma algoritmaları
da kullanılabilir. Bu algoritmaların çalısma zamanları sırasıyla O³√
B´ve
O³exp
³p(2 + o (1)) logB log logB
´(log p)2
´dir. Burada p, düzgün olup olmadıgına bakılacak sayı için bir üst sınırdır.
Düzgünlük testi için en etkili yöntemler eleme metotlarını kullanmaktır. Eleme
metotlarından en çok bilineni belli bir aralıktaki asalları bulan Eratosthenes eleme-
sidir. Benzer bir mantık kullanılarak belli bir aralıkta, bir polinomun görüntülerinin
düzgün olup olmadıgı belirlenebilir. Bu yöntem polinom elemesi olarak adlandırılır.
f (x) := anxn+an−1xn−1+ ...+a1x+a0 olmak üzere x ∈ [c, d] tamsayıları için hangi
f (x) degerlerinin B-düzgün oldugu belirlenmek istensin.
p bir asal tamsayı olmak üzere
∀b ∈ Z+ için f (b) ≡ 0 (mod p)⇒ f (b+ p) ≡ 0 (mod p) (6.9)
dir. Belli bir p asalı için f (x) polinomunun Zp [x] de en fazla n tane kökü vardır.
Bu kölerden her biri için (6.9) kullanılırsa f (b) ≡ 0 (mod p) olacak sekildeki bütün btamsayıları bulunabilir. Özel olarak, [c, d] aralıgındaki hangi tamsayılar için polinom
degerlerinin p ile bölündügü belirlenebilir. Bu aralıktaki polinom degerlerini bir
diziye aktarıp p ile bölünebildigi yerlerdeki sayıların yeni degerleri bölüm olarak
degistirilir. S kümesindeki bütün asallar ve kuvvetleri için bu islem yapıldıgı taktirde
dizide 1 kalan yerler aralıktaki hangi tamsayılar için polinom degerlerinin B-düzgün
oldugunu verir.
41
Schirokouer (1993) [c, d] aralıgı için polinom elemesinin çalısma zamanını
π (B) (n+ logB)O(1) +O ((d− c) log logB)
olarak vermistir. Polinom elemesi dısında lattice ve q-özel gibi baska eleme metotları
da mevcuttur.
TIC algoritmasında polinom elemesi kullanabilmek için birinci ve ikinci bölümde
asagıdaki degisiklikler yapılabilir.
Birinci bölümde polinom elemesi ile bir bagıntı bulmanın yolu H :=§√
p¨ve yete-
rince küçük c1 ve c2 pozitif tamsayıları için mod p de (H + c1) (H + c2) çarpımını
hesaplamaktır. Eger H2 = p+ J öyle ki J ≈ O ¡√p¢ ise(H + c1) (H + c2) = H2 + (c1 + c2)H + c1c2
= p+ J + (c1 + c2)H + c1c2
≡ J + (c1 + c2)H + c1c2 (mod p)
dir. Dolayısıyla, mod p de (H + c1) (H + c2) çarpımı yaklasıkO¡√
p¢büyüklügündedir
ve yukarıda anlatılan polinom elemesi ile sabit bir c1 ve bir çok c2 degeri için düzgün
olup olmadıgı test edilebilir. Bu çarpım eger düzgünse,
(H + c1) (H + c2) ≡ pe11 pe22 ...p
ekk (mod p) (6.10)
dir. (6.10) dan,
(d log)g (H + c1)+(d log)g (H + c2) ≡ e1 (d log)g p1+e2 (d log)g p2+...+ek (d log)g pk (mod p− 1)
bagıntısı elde edilir.
TIC algoritmasının ikinci bölümünde ise verilen y nin diskret logaritmasını bulmak
için asagıdaki adımlar izlenebilir.
1. u =§√
p/y¨,§√
p/y¨, ... için
Eger u tamsayısı B-düzgünse 2. adıma git
2. v = H,H + 1, ... için
n ≡ uvy (mod p)
Eger n, B-düzgünse 3. adıma git
42
3. TIC algoritmasının birinci bölümünden n, u ve v nin diskret logaritmalarını
bildigimizden ve 2. adımdan dolayı
(d log)g y ≡ (d log)g n− (d log)g u− (d log)g v (mod p− 1)
ifadesinden (d log)g y hesaplanabilir.
6.2.2 Lineer cebir
Düzgünlük kavramı ve çarpan tabanı kullanarak bir sayının çarpanını veya diskret
logaritmasını belirlemeye çalısan bir algoritmada, büyük bir lineer denklem siste-
minin olusturulup çözülmesine ihtiyaç vardır. Bu tip bir algoritmanın böyle bir
denklem sisteminin çözümüyle ilgili olan bölümü algoritmanın lineer cebir bölümü
olarak adlandırılır. Çarpanlara ayırma algoritmaları için lineer denklemler F2 ü-
zerinde olusturulur ve bu denklemler arasında bir lineer bagımlılık aranır. Diger
taraftan, DL algoritmaları için lineer denklemler herhangi bir sonlu cisim üzerinde
olabilir ve lineer cebir bölümünün amacı çarpan tabanındaki asalların diskret logarit-
malarını bulmaktır veya çarpan tabanı vasıtasıyla bir halkada kuvvet olusturmaktır.
Bu lineer sistemlerin büyüklügü, algoritmadaki düzgünlük sınırı B nin seçilisine
baglıdır. Algoritmanın çalısma zamanı açısından uygun bir B degeri için lineer sis-
temler 100000 bilinmeyenli 100000 denklemden olusan büyüklükte olabilir. Fakat,
bu tip bir sisteme karsılık gelen matrisin girislerinde çok sayıda sıfır olması (sparse)
çözüm bulmayı kolaylastırır. Böyle bir denklem sistemini çözmek için kullanılan ilk
yöntem Gauss eleminasyon yöntemidir. Su anda, bu tip büyük sistemleri çözen bir
çok algoritma mevcuttur. Bu algoritmaların en önemlileri Structured Gauss Elemi-
nasyon, Lanczos, Conjugate Gradient ve Wiedeman algoritmalarıdır. Bu bölümde,
Fp üzerindeki denklem sistemlerini çözen Lanczos algoritması özetle anlatılacaktır.
Fakat, bu algoritmalar n asal olmayacak sekildeki Z/nZ halkası üzerindeki bir den-
klem sistemi için de kullanılabilir. Eger n nin asal çarpanlarına ayrılısı biliniyorsa,
denklem sistemi bu çarpanlara ayrılıstaki asallarda çözülüp, elde edilen çözümler
asalların kuvvetlerine tasınabilir (Hensel 1975). Daha sonra, Çin kalan teoremi kul-
lanılarak Z/nZ üzerindeki çözümler elde edilebilir. Eger n nin asal çarpanlarına43
ayrılısı bulunamıyorsa, n sayısı asalmıs gibi kabul edilip yukarıdaki algoritmalardan
biri kullanılırsa, algoritma ya basarılı olur ya da n nin bir böleni elde edilir.
Gauss eleminasyon yönteminin matrisin seyrekligini bozmadan akıllıca kullanılması
structured Gauss eleminasyon (SGE) olarak bilinir. Fakat, genellikle indeks calculus
algoritmalarında SGE sistemi direk çözmek yerine sistemi küçültmek için kullanır.
Sistem küçültüldükten sonra sistemi çözmek için Lanczos, conjugate gradient veya
Wiedeman algoritmalarından biri kullanılır.
A ∈ Fn×np bir simetrik matris öyle ki det (A) 6= 0 ve w ∈ Fnp bir vektör olmak üzere,Lanczos algoritması
Ax = w , x ∈ Fnp (6.11)
seklindeki bir sistemi çözmek için kullanılır. Lanczos algoritmasının temel fikri vek-
törlerden olusan asagıdaki (wk) ve (vk) dizilerini hesaplamaktır. (wk) ve (vk) dizileri,
baslangıç degerleri
w0 : = w , v1 = Aw0 ,
w1 : = v1 − hv1,v1ihw0,v1iw0
olmak üzere i > 1 tamsayısı için
vi+1 : = Awi
wi+1 : = vi+1 − hvi+1,vi+1ihwi,vi+1i wi − hvi+1,viihwi−1,viiwi−1
seklinde tanımlanır.
hwj,Awji = 0 ve j 6 n olacak sekilde bir j pozitif tamsayısının varlıgı ispatlanabilir.
Eger wj = 0 ise
x =
j−1Xi=0
hwi,wihwi,vi+1iwi
vektörü (6.11) in bir çözümüdür.
Indeks calculus algoritmalarında, B ∈ Fm×np genel bir matris ve u ∈ Fmp bir vektörolmak üzere
Bx = u , x ∈ Fnp (6.12)
44
sisteminin çözümü gerekmektedir. Fp cismini, |F | > n olacak sekilde daha büyük
bir F cisminin içine gömdügümüzü düsünelim. D ∈ (F ∗)m×m rastgele bir kösegenmatris olmak üzere
A := BTD2B
ve
w := BTD2u
seklinde tanımlansın. Bu durumda, (6.12) sisteminin bir çözümü (6.11) sisteminin de
bir çözümüdür ve büyük olasılıkla (6.11) sisteminin bir çözümü de (6.12) sisteminin
bir çözümüdür. Dolayısıyla, olasılıksal bir yöntem uygulanarak (6.12) nin çözümleri
Lanczos algoritması kullanılarak bulunabilir (LaMacchia and Odlyzko 1991).
Lanczos algoritması genellikle n boyutlu bir sistemi n iterasyonda çözer. Algorit-
manın çalısma zamanı O (n2) dir ve en önemli özelligi çok az hafızaya gereksinim
duymasıdır.
Conjugate Gradient algoritması Lanczos algoritmasının bir benzeridir. Yalnızca i-
terasyonlar biraz daha farklıdır. Conjugate Gradient algoritması çarpanlara ayırma
algoritmaları için daha kullanıslıdır ve O (n2) çalısma zamanına sahiptir. Wiedeman
algoritmasının da çalısma zamanının O (n2) olmasına ragmen eger ekstradan O (n2)
hafıza kullanılmazsa pratikte Lanczos algoritmasına göre önemli derecede yavastır.
Bu algoritmaların ayrıntıları için (LaMacchia and Odlyzko 1991) e bakınız.
6.2.3 Analiz
Indeks calculus algoritmalarında çalısma zamanını belirleyen en önemli etken düzgün-
lük sınırı B dir. B nin büyük seçilmesi durumunda, istenilen bagıntıları elde etmek
kolaylasırken matrisin boyutu büyüyeceginden algoritmanın lineer cebir bölümü zor-
lasır. B küçük seçildiginde ise istenilen bagıntıları elde etmek zorlasırken matris
boyutu küçüleceginden lineer cebir bölümü kolaylasır. Dolayısıyla, B nin degeri
algoritmanın çalısma zamanını minumum yapacak sekilde optimize edilmelidir. B
için teorik olarak uygun bir deger belirlenebilmesine ragmen B nin algoritma için
en uygun degeri pratikte belirlenebilir.
45
TIC algoritmasının polinom elemesi kullanılan versiyonu için Studholme (2002), B
yi ve algoritmanın çalısma zamanını belirleyen asagıdaki analizi vermistir.
sB ve cB sabitleri için düzgünlük sınırı
B := Lp [sB; cB + o (1)]
seklinde tanımlansın. Algoritmada, istenilen sekilde bagıntılar elde edebilmek için
c1 ve c2 pozitif tamsayılar olmak üzere mod p de B-düzgün (H + c1) (H + c2) aranı-
yordu. c1 ve c2 tamsayıları
C := Lp [sC ; cC + o (1)]
olmak üzere [0, c] aralıgından seçilsin. Bu aralık eleme aralıgı olarak adlandırılır.
Böylece, mod p de düzgün olup olmadıgı test edilebilecek tamsayı sayısı
1
2C2 = Lp [sC ; 2cC + o (1)]
dir. Bulunması gereken düzgün tamsayı sayısı ise
B + C = Lp [sB; cB + o (1)] + Lp [sC ; cC + o (1)]
= Lp [maks {sB, sC} ;maks {cB, cC}+ o (1)]
dir. P , [0, p] aralıgından rastgele seçilen bir tamsayının B-düzgün olma olasılıgı
olmak üzere algoritmada yeterli sayıda B-düzgün sayı elde edebilmek için
1
2C2P > B + C (6.13)
esitsizliginin saglanması gerekir.
x ≡ (H + c1) (H + c2) (mod p), H = dLp [1; 1/2]e ve J = H2 − p 6 2H ise
x = J + (c1 + c2)H + c1c2
6 (2 + c1 + c2)H + c1c2
6 2Lp [sC ; cC + o (1)]Lp [1; 1/2] + Lp [sC ; 2cC + o (1)]
= Lp
∙1;1
2+ o (1)
¸46
olacak sekilde düzgünlügü test edilen x tamsayıları üstten sınırlandırılabilir.
Kestirim 6.1 in dogru oldugunu kabul edersek
P =Ψ(x,B)
x= Lp
∙1− sB;−1− sB
2cB+ o (1)
¸dir. Dolayısıyla, P yi (6.13) de yerine koyarsak
Lp [sC ; 2cC + o (1)] > Lp [maks {sB, sC} ;maks {cB, cC}+ o (1)] . (6.14)
Lp
∙1− sB;
1− sB2cB
+ o (1)
¸esitsizligi elde edilir. Bu esitsizlikten
sC > maks {sB, sC , 1− sB} (6.15)
oldugu söylenebilir.
Algoritmanın birinci bölümünde, polinom elemesi kullanarak istenilen bagıntıları
elde etmek için gereken zaman
C.³π (B) (1 + logB)o(1) + C log logB
´= Lp [maks {sB, sC} ; cC +maks {cB, cC}+ o (1)]
ve lineer cebir bölümü için gereken zaman
(B + C)2 = Lp [maks {sB, sC} ;maks {2cB, 2cC}+ o (1)]
dir. Böylece, algoritmanın birinci bölümünün toplam çalısma zamanı
Lp [maks {sB, sC} ;maks {2cB, 2cC}+ o (1)]
olarak verilebilir. Bu çalısma zamanını minumum yapabilmek için sB ve sC sabitleri
maks {sB, sC} degerini minumum yapacak sekilde seçilmelidir. (6.15) den dolayı
sC > maks {sB, 1− sB}
oldugundan sB = sC =12degerleri için maks {sB, sC} minumum olur. sB = sC =
12
için
B = Lp [1/2; cB + o (1)] ,
C = Lp [1/2; cC + o (1)] ,
P = Lp
∙1/2;
−14cB
+ o (1)
¸47
dir. Bu durumda, (6.15) ifadesi
Lp [1/2; 2cC + o (1)] > Lp [1/2;maks {cB, cC}+ o (1)] .Lp [1/2; 1/4cB + o (1)]
haline dönüsür ve
2cC > maks {cB, cC}+ 1/4cB (6.16)
esitsizligi elde edilir. Aynı zamanda birinci bölümün çalısma zamanı
Lp [1/2;maks {2cB, 2cC}+ o (1)]
seklinde olur. Bu çalısma zamanını minumum yapabilmek için maks {2cB, 2cC}degerini minumum yapmak gerekir. maks {2cB, 2cC} degeri (6.16) ifadesinden dolayıcB = cC =
12degerleri için minumum degerini alır. Sonuç olarak, B ve C nin uygun
degerleri
B = Lp
∙1/2;
1
2+ o (1)
¸ve C = Lp [1/2; 1/2 + o (1)]
dir. Bu degerler için algoritmanın birinci bölümünün çalısma zamanı
O (Lp [1/2; 1 + o (1)])
dir.
Algoritmanın ikinci bölümünde U > B olacak sekilde baska bir düzgünlük sınırı U
belirlenip ygw (mod p) ifadesi U -düzgün olacak sekilde bir w tamsayısı belirlenmeye
çalısılıyordu.
U := Lp [sU ; cU + o (1)] ve uygun bir w bulma olasılıgı Pw := Lp [sw; cw + o (1)]
olsun. Düzgünlük testine tabi tutulan x ≡ ygw (mod p) sayıları için Lp [1, 1] = p bir
üst sınır oldugundan
Pw =Ψ (x,U)
p= Lp
∙1− sU ;−1− sU
cU+ o (1)
¸dir. Eger düzgünlük testi için eliptik egri çarpanlara ayırma algoritması kullanılırsa,
bir x tamsayısının düzgün olup olmadıgı için gerekli zaman
Lp
hsU2;√2sUcU + o (1)
iLp [0; 2]
= Lp
hsU2;√2sUcU + o (1)
i48
olacagından uygun bir w bulmak için gerekli zaman
Lp
∙1− sU ;
1− sUcU
+ o (1)
¸Lp
hsU2;√2sUcU + o (1)
i(6.17)
dir. sU =23ve cU =
¡13
¢1/3degerleri için sırasıyla maks {1− sU , sU/2} ve 1
(3cU )+
2pcU/3 minumum degerlerini aldıgından (6.17) ifadesi de minumum degerini alır.
Sonuç olarak, U nun uygun degeri
U = Lp
"2
3;
µ1
3
¶1/3+ o (1)
#ve ikinci bölümün çalısma zamanı
Lp
∙1
3; 31/3 + o (1)
¸olarak belirlenir.
6.3 F2n de Indeks Calculus Algoritmaları
TIC algoritması F2n sonlu cismindeki diskret logaritma hesabı için de uygulan-
abilir. Bu cisimlerin pratige uyarlanısı kolay oldugundan kriptografi açısından ayrı
bir önemi vardır. TIC algoritmasını uygulayabilmek için F2n cismi asagıdaki gibi
ifade edilebilir.
f , F2n [x] de derecesi n olan bir indirgenemez polinom olmak üzere
F2n ∼= F2 [x] / < f >
oldugundan, F2n cisminin bütün elemanları derecesi n den küçük F2 üzerindeki
polinomlar olarak düsünülebilir. TIC algoritması, F2n cismindeki diskret logaritma
hesabı için asagıdaki sekilde uyarlanabilir.
Algoritma 6.2 (F2n için TIC algoritması)
Girdi : n ∈ Z+, F2n nin bir primitif elemanı g ve y ∈ F2nÇıktı : x := (d log)g y
1. Bir m (düzgünlük sınırı) seç ve
S := {v (x) ∈ F2 [x] | v (x) , F2 [x] de indirgenemez ve do (v (x)) 6 m}49
çarpan tabanını olustur.
2. s ∈ [1, 2n − 1] olacak sekilde rastgele s tamsayıları seçerek |S| den fazla m-düzgünh∗ := gs (mod f) polinomları belirle. Eger h∗ polinomu m-düzgünse,
h∗ ≡Yv∈S
vev(h∗) (mod f)
olacak sekilde çarpanlarına ayrılır. Bu çarpanlara ayrılıstan
(d log)g h∗ ≡
Xv∈S
ev (h∗) (d log)g v (mod 2
n − 1)
bagıntısı elde edilebilir.
3. Adım 2 de elde edilen bagıntılardan lineer cebir kullanarak S kümesindeki ele-
manların diskret logaritmalarını belirle
4. Rastgele s ∈ [1, 2n − 1] tamsayıları seçerek m-düzgün olan bir h∗ := ygs (mod f)
polinomu belirle. Bu durumda,
h∗ ≡ ygs ≡Yv∈S
vev(h∗) (mod f)
⇒ x = (d log)g y ≡Xv∈S
ev (h∗) (d log)g v − s (mod 2n − 1)
dir.
Örnek 6.2 F221 ∼= Z2 [x] / < x21 + x2 + 1 > , F221 cisminin bir primitif kökü
g := x18+x8+x6+x5+x dir. F221 de y := x19+x16+x7+x+1 elemanının diskret
logaritmasını indeks calculus algoritmasını kullanarak hesaplamak isteyelim.
m = 4 düzgünlük sınırı için çarpan tabanı
S := {x, x+ 1, x2 + x+ 1, x3 + x+ 1, x3 + x2 + 1, x4 + x+ 1, x4 + x3 + 1 ,
x4 + x3 + x2 + 1}
seklindedir.. s = 37, 40, 223, 268, 308, 349, 714, 752, 799, 870 ve 980 sanslı sayıları
50
için F221 de gs elemanları
g37 = (x+ 1)x2 (x2 + x+ 1) (x3 + x2 + 1) (x4 + x3 + 1)2(x3 + x2 + 1)
(x4 + x3 + x2 + 1)
g40 = (x+ 1)4 (x2 + x+ 1)2(x4 + x3 + 1) (x4 + x3 + x2 + 1)
2
g223 = (x+ 1)3 (x2 + x+ 1) (x3 + x+ 1)2(x4 + x+ 1) (x4 + x3 + 1)
g268 = x (x4 + x+ 1) (x4 + x3 + 1) (x4 + x3 + x2 + 1)2
g308 = (x2 + x+ 1)3(x4 + x+ 1) (x4 + x3 + 1)
2
g349 = x9 (x+ 1) (x2 + x+ 1)5
g714 = x4 (x+ 1)3 (x3 + x+ 1)2
g752 = (x+ 1)4 (x2 + x+ 1)2(x3 + x2 + 1)
g799 = x4 (x2 + x+ 1)2(x4 + x3 + 1)
g870 = (x+ 1) (x3 + x+ 1) (x4 + x+ 1) (x4 + x3 + 1)2(x4 + x3 + x2 + 1)
g980 = (x3 + x2 + 1) (x4 + x+ 1)
oldugundan m-düzgündür. Bu denklemlerin her iki tarafının g tabanına göre diskret
logaritması alınırsa 8 bilinmeyenli 11 tane lineer denklem elde edilir. Bu denklem
sistemi mod 221 − 1 de çözülülerek çarpan tabanındaki elemanların diskret logarit-maları
(d log)g x = 425141 , (d log)g x3 + x2 + 1 = 1818568
(d log)g x+ 1 = 1318254 , (d log)g x4 + x+ 1 = 1951573
(d log)g x2 + x+ 1 = 648886 , (d log)g x
4 + x3 + 1 = 1196765
(d log)g x3 + x+ 1 = 1366996 , (d log)g x
4 + x3 + x2 + x+ 1 = 1359121
olarak belirlenebilir.
y elemanının diskret logaritmasını bulalım:
s = 150 için
h∗ ≡ ygs ≡ x2 (x+ 1)4¡x3 + x+ 1
¢ ¡x4 + x+ 1
¢ ¡x4 + x3 + x2 + x+ 1
¢(mod f)
⇒ (d log)g y + 150 ≡ 2 (d log)g x+ 4 (d log)g (x+ 1) + (d log)g¡x3 + x+ 1
¢+
(d log)g¡x4 + x+ 1
¢+ (d log)g
¡x4 + x3 + x2 + x+ 1
¢(mod 2n − 1)
⇒ (d log)g y = 10800838
Bu algoritmada 1,2 ve 3. adımlar algoritmanın birinci bölümü, 4. adım ise algorit-
manın ikinci bölümü olarak adlandırılır. Polinomları F2 [x] de çarpanlarına ayırmak51
polinom zamanlı oldugundan algoritmanın analizinde ihmal edilecektir. Bu algo-
ritma için uygun m degeri ve algoritmanın çalısma zamanı asagıda incelecektir.
(6.6) den n1/100 6 m 6 n99/100 ve n→∞ için F2 [x] de derecesi n olan bir polinomun
m-düzgün olma olasılıgı
p (n,m) = exp³(1 + o (1))
n
mloge
m
n
´(6.18)
oldugu biliniyor. Algoritmada olusturulan h∗ polinomları derecesi n den küçük
rastgele polinomlar olarak kabul edilirse h∗ polinomunun m-düzgün olma olasılıgı
p (n,m) olarak kabul edilebilir. Bu durumda, algoritmanın ikinci bölümünde m-
düzgün bir polinom belirlemek için ortalama
p (n,m)−1
tane deneme yapılması gerekir. Böylece, ikinci bölümün çalısma zamanı
p (n,m)−1 =³ nm
´(1+o(1)) nm
dir. Algoritmanın ikinci bölümü asagıdaki düsünce kullanılarak gelistirilebilir (Blake
et al. 1984).
Bu algoritmada h∗ polinomlarının m-düzgün olup olmadıgına direk bakmak yerine,
h∗ ≡ w1w2(mod f) , do (wi) 6 n/2
olacak sekilde w1 ve w2 polinomları bulup, bu polinomlarınm-düzgün olup olmadık-
ları kontrol edilebilir. Genisletilmis Euclid algoritması kullanılarak böyle w1 ve w2
polinomları etkili bir sekilde olusturulabilir (Blake et al. 1984).
w1 ve w2 polinomları derecesi n/2 den küçük rastgele polinomlar olarak kabul
edilirse, bu polinomların ikisinin de m-düzgün olma olasılıgı
p (bn/2c ,m)2
dir. Dolayısıyla, bu düsünceyi kullanarak algoritmanın ikinci bölümünün çalısma
zamanı
p (bn/2c ,m)−2 =³ n
2m
´(1+o(1))n/m52
olacagından TIC algoritmasını 2n/m kat hızlandırılmıs olur. Aynımetot algoritmanın
birinci bölümünü hızlandırmak için de kullanılabilir.
Ikinci bölümün çalısma zamanı m büyüdükçe hızlanır. Fakat, algoritmanın birinci
bölümünden dolayı m büyüdükçe lineer cebir bölümü zorlasır. Dolayısıyla, m yi
algoritmanın birinci bölümü belirler ve m, çalısma zamanını minumum yapacak
sekilde optimize edilmelidir.
Algoritmanın birinci bölümünde yeterli sayıda bagıntı ortalama
|S| p (n,m)−1
denemede elde edilebilir. Eger bu bagıntıları elde etmek için Blake et al. (1984) nin
düsüncesi kullanılırsa
|S| p (bn/2c ,m)−2
deneme yaparak yeterli sayıda bagıntı elde edilebilir. Lineer cebir bölümü de dikkate
alınırsa birinci bölüm için gerekli adım sayısı
|S| p (bn/2c ,m)−2 + |S|2
dir. |S| ≈ 2m oldugundan birinci bölümün çalısma zamanı
2m³ n
2m
´n/m+ 22m (6.19)
olarak belirlenir. (6.19) ifadesi
m ≈ c1 (n loge n)1/2 , c1 := (2 loge 2)
−1/2 = 0.8493
için minumum degerini alır. Böylece, algoritmanın birinci bölümünün çalısma za-
manı c2 := c1 log2 2 + (2c1)−1 olmak üzere
n→∞ için exp³(c2 + o (1))
pn loge n
´dir. m ≈ c1 (n loge n)
1/2 için ikinci bölümün çalısma zamanı ise
n→∞ için exp³¡(2c1)
−1 + o (1)¢p
n loge n´
53
haline dönüsür. Bu çalısma zamanları L fonksiyonu cinsinden ifade edilirse birinci
ve ikinci bölümlerin çalısma zamanları sırasıyla
L2n [1/2; 1.178] ve L2n [1/2; 0.588]
olarak belirtilebilir.
Son yıllarda, TIC algoritmasının modifikasyonu olan ve algoritmanın asimtotik per-
formansını artıran çesitli algoritmalar bulunmustur. Bu algoritmalarda F2 cismini
tanımlayan f (x) polinomunun,
f (x) = xn + f1 (x) , do (f1 (x)) küçük (6.20)
oldugu kabul edilir. Bu kabul önemli bir kısıtlama degildir (Odlyzko 1985).
Bu tip algoritmalardan bir tanesi Schroeppel çarpanlara ayırma algoritmasının bir
adaptasyonudur. f (x) polinomunun (6.20) ifadesini do (f1 (x)) 6 n/2 olacak sekilde
sagladıgı kabul edilsin. S1 ve S2 kümeleri
S1 := {p (x) ∈ F2 [x] | do (p (x)) 6 m ve p (x) , F2 [x] de asal}
ve
S2 :=©xk + g (x) | k := bn/2c ve do (g (x)) 6 m
ªseklinde olmak üzere çarpan tabanı S := S1 ∪ S2 olarak tanımlanır. TIC algorit-
masındaki h∗ polinomları, S2 kümesinden alınan herhangi iki xk+h1 (x) ve xk+h2 (x)
elemanı için
h∗ ≡ ¡xk + h1 (x)¢ ¡
xk + h2 (x)¢(mod f (x))
seklinde olusturulur. a := 2k − n olmak üzere
¡xk + h1
¢ ¡xk + h2
¢= x2k + xk + (h1 + h2) + h1h2
= xa (f + f1) + xk (h1 + h2) + h1h2
≡ xk (h1 + h2) + h1h2 + xaf1 (mod f)
oldugundan h∗ polinomunun derecesi yaklasık olarak n/2 dir. Eger h∗ polinomunun
bütün asal bölenleri S1 kümesinde ise bilinmeyenleri S kümesinin elemanlarının
54
diskret logaritmalarından olusan bir bagıntı elde edilir. Bu sekilde |S| den fazlabagıntı elde edilerek S1 kümesindeki elemanların diskret logaritmaları lineer cebir
kullanarak belirlenebilir. Bu algoritma için uygun m degeri yaklasık
m ≈ c2pn loge n , c2 := 0.6005
ve birinci bölümün çalısma zamanı L2n [1/2; 0.8325] dir (Odlyzko 1985).
Çarpanlara ayırma metodu olarak kullanılan kübik eleme algoritması da benzer
sekilde uyarlanabilir. Bu algoritmanın mantıgı yukarıda bahsedilen algoritma ile
aynıdır. F2n cismini tanımlayan f (x) polinomunun (6.20) ifadesini do (f1 (x)) 6 n/3
olacak sekilde sagladıgı kabul edilsin. S1 ve S2 kümeleri
S1 := {p (x) ∈ F2 [x] | do (p (x)) 6 m ve p (x) , F2 [x] de asal}
ve
S2 :=©xk + g (x) | k := bn/3c ve do (g (x)) 6 m
ªseklinde olmak üzere çarpan tabanı S := S1 ∪ S2 olarak tanımlanır. Benzer sekilde,TIC algoritmasındaki h∗ polinomları, S2 kümesinden alınan herhangi iki xk+h1 (x)
ve xk + h2 (x) elemanı için
h∗ ≡ ¡xk + h1 (x)¢ ¡
xk + h2 (x)¢ ¡
xk + h1 (x) + h2 (x)¢(mod f (x))
seklinde olusturulur. a := 3k − n olmak üzere
¡xk + h1
¢ ¡xk + h2
¢ ¡xk + h1 + h2
¢≡ x3k + xk
¡h21 + h1h2 + h22
¢+ h1h2 (h1 + h2) (mod f)
≡ xaf1 + xk¡h21 + h1h2 + h22
¢h1h2 (h1 + h2) (mod f)
oldugundan h∗ polinomunun derecesi bu defa yaklasık n/3 dür. Eger h∗ polinomunun
bütün asal bölenleri S1 kümesinde ise yukarıda anlatıldıgı gibi bagıntılar elde edilerek
istenilen elemanların diskret logaritmaları belirlenebilir. Bu algoritma için uygun m
degeri yaklasık olarak
m ≈ c3pn loge n , c3 := 0.4903
55
ve algoritmanın birinci bölümünün çalısma zamanı L2n [1/2; 0.6797] dir (Odlyzko
1985).
TIC algoritmasının ikinci bölümü de yukarıda bahsedilen metotlarla benzer sekilde
gelistirilebilir. Aynı zamanda, anlatılan iki algoritma Fp cisminde de uygulanabilir
(Coppersmith et al. 1986).
TIC algoritmasında derecesi yaklasık n olan polinomların m-düzgün olup olmadıgı
kontrol ediliyordu. Yukarıda anlatılan iki algoritmanın TIC algoritmasından daha
hızlı olmasının temel sebebi ilk algoritmada derecesi yaklasık olarak n/2 olan, ikin-
cisinde ise n/3 olan tek bir polinomun m-düzgün olup olmadıgının kontrol edilme-
sidir. Derecesi daha küçük olan polinomların düzgün olma olasılıgı arttıgından
burada anlatılan iki algoritma TIC algoritmasından daha hızlıdır. Hatta, bu iki
algoritma Blake et. al. (1984) versiyonundan da daha hızlıdır. Çünkü, Blake ver-
siyonunda derecesi n/2 olan iki polinomun düzgünlügü test ediliyordu.
TIC algoritmasının versiyonları olan bu iki algoritma acaba genellestirilebilir mi?
gibi bir soru akla gelir. Coppersmith (1984) bunun bir yolunu bulmus ve TIC algorit-
masının bilinen en hızlı versiyonunu gelistirmistir. Fakat, Coppersmith algoritması
yalnızca F2n cismi için uygulanabilmektedir. Coppersmith algoritmasını sistematik
denklemlerden esinlenerek gelistirmistir.
6.3.1 Sistematik denklemler
TIC algoritmasının ilk bölümünde, bilinmeyenleri S kümesinin elemanlarının diskret
logaritması olan |S| den biraz daha fazla sayıda denklem elde edilmeye çalısılıyordu.Sistematik denklemler denilen bir metotla gerekli olan denklem sayısının yaklasık
yarısı etkili bir sekilde elde edilebilir (Blake et al. 1984). Bu metotdan yola çıkarak
Coppersmith F2n cisminde bilinen en etkili algoritmayı gelistirmistir.
F2n cismini tanımlayan f (x) polinomunun
f (x) |x2k + f1 (x)
ifadesini sagladıgı kabul edilsin. Herhangi bir u (x) ∈ S polinomu için
56
(u (x))2n
= u¡x2
n¢= u (f1 (x))
dir. Eger u (f1 (x)) in bütün asal bölenleri S kümesinde ise istenilen sekilde bir
bagıntı elde edilmis olur.
u (f1 (x)) polinomunun çogu durumda bütün asal çarpanlarının derecesi u (x) poli-
nomunun derecesine esittir ve bu yolla en fazla Sdof1(x)
tane denklem elde edilebilir
(Blake et al. 1984).
Örnek 6.3 f (x) := x127 + x+ 1 asal polinomu için F2127 ∼= Z2 [x] / < f (x) > dir.
xf (x) = x128 + x2 + x oldugundan k := 7 ve f1 (x) := x2 + x için
f (x) |x2k + f1 (x)
ifadesi saglanır. m = 4 düzgünlük sınırı için çarpan tabanı
S := {x, x+ 1, x2 + x+ 1, x3 + x+ 1, x3 + x2 + 1, x4 + x+ 1, x4 + x3 + 1 ,
x4 + x3 + x2 + 1}
seklindedir. S kümesinin herhangi bir elemanının 2k-ıncı kuvvetinin m-düzgün olma
olasılıgı büyüktür. Gerçekten,.
x128 ≡ x (x+ 1) (mod f)
(x+ 1)128 ≡ x2 + x+ 1 (mod f)
(x2 + x+ 1)128 ≡ x4 + x+ 1 (mod f)
(x3 + x+ 1)128 ≡ x3 + x+ 1 (mod f)
(x3 + x2 + 1)128 ≡ x6 + x5 + x3 + x2 + 1 (mod f)
(x4 + x+ 1)128 ≡ (x4 + x3 + 1) (x4 + x3 + x2 + x+ 1) (mod f)
(x4 + x3 + 1)128 ≡ x8 + x6 + x5 + x3 + 1 (mod f)
(x4 + x3 + x2 + x+ 1)128 ≡ x8 + x6 + x5 + x4 + x3 + x+ 1 (mod f)
oldugundan gerekli olan 8 denklemden 5 tanesi bu yolla elde edilmis oldu.
6.3.2 Coppersmith versiyonu
Coppersmith versiyonu, F2 cisminde (A + B)2 = A2 + B2 esitliginin saglanması
gerçegine dayanır. Bu esitlik kullanılarak düzgünlügü test edilmek için üretilen
57
polinomların daha düsük derecede olması saglanmıstır. Dolayısıyla, Coppersmith
versiyonu F2n cismindeki DLP yi çözen en etkili algoritmadır.
f(x) polinomu (6.20) ifadesini dof1(x) 6 n23 olacak sekilde saglasın ve TIC algorit-
masındaki gibi bir m düzgünlük sınırı için S kümesi çarpan tabanı olarak tanımlan-
sın. Coppersmith versiyonunda istenilen bagıntılar asagıdaki gibi elde edilir :
1. Bir k pozitif tamsayısı seç (2k ≈ n13 (loge n)
− 13 )
2. h :=¥n2−k
¦+ 1
3. B ≈ n13 (loge n)
23 olmak üzere aralarında asal ve dereceleri B den küçük olan F2
üzerinde iki tane u1 (x) ve u2 (x) polinomlarını seç
4. w1 (x) := u1 (x)xh + u2 (x)
5. w2 (x) := (w1 (x))2k (mod f (x))
6. Eger w1 (x) ve w2 (x) polinomlarının bütün asal bölenleri S kümesinde ise
(d log)g w2 (x) ≡ 2k (d log)g w1 (x) (mod 2n − 1)
oldugundan istenilen sekilde bir bagıntı elde edilir.
Coppersmith versiyonunda,
w2 (x) ≡ u1³x2
k´xh2
k+ u2
³x2
k´(mod f (x))
≡ u1³x2
k´xh2
k−nf1 (x) + u2³x2
k´ (6.21)
dir. Eger B ≈ n13 , 2k ≈ n
13 seçilirse h ≈ n
23 ve h2k − n ≈ n
13 olur. Böylece,
(6.21) den dow1 (x) ve dow2 (x) yaklasık olarak n23 olur. Yani, Coppersmith versi-
yonunda bagıntılar derecesi n23 olan iki tane polinomun düzgün olup olmadıgı test
edilerek olusturuluyor. Bu yüzden Coppersmith versiyonu TIC algoritmasının en
etkili versiyonudur.
Yukarıdaki adımlar izlenerek bagıntılar elde edildikten sonra TIC algoritmasındaki
gibi lineer cebir kullanarak S kümesindeki elemanların diskret logaritmaları hesa-
planır ve algoritmanın birici bölümü tamamlanmıs olur. Coppersmith versiyonu için
m nin uygun degeri
m ≈ n13 (loge n)
23
58
ve algoritmanın birinci bölümünün çalısma zamanı
c4 < 1.351 olmak üzere L2n [1/3; c4]
dir (Coppersmith 1984).
Coppersmith versiyonunun ikinci bölümü ise TIC algoritmasından biraz daha farklı
ve karmasıktır. Coppersmith versiyonunun ikinci bölümündeki temel düsünce iste-
nilen diskret logaritmayı bulmak için polinomların olusturdugu azalan (dereceleri
açısından) bir dizinin diskret logaritmalarını hesaplamaktır. Detaylar için Copper-
smith’in (1984) makalesine bakılabilir. Coppersmith bu yolla algoritmanın ikinci
bölümünün çalısma zamanının
c5 < 1.098 olmak üzere L2n [1/3; c5]
oldugunu göstermistir.
Örnek 6.4 f (x) := x127 + x+ 1 asal polinomu için F2127 ∼= Z2 [x] / < f (x) > dir.
Coppersmith versiyonunda parametreleri k := 2, h :=¥n2k
¦+ 1 ve B := 10 olarak
seçelim. Bu durumda, 221 tane (u1 (x) , u2 (x)) ikilisi seçiebilir. Algoritmada üretilen
w1 (x) ve w2 (x) polinomlarının derecesi en fazla 42 olur.
Adleman (1994), Coppersmith versiyonunu ln p < n ve n → ∞ olacak sekilde Fpn
cismi için genellestirdi. Bu algoritma fonksiyon cismi elegi (FCE) olarak adlandırılır
ve bir c sabiti için Lpn [1/3; c] çalısma zamanına sahiptir.
59
7. SAYI CISMI ELEGI (SCE)
F2n cismi üzerinde anlatılan TIC algoritması,
Fpn ∼= Zp [x] / < f (x) > , do (f (x)) = n ve f (x) , Zp [x] de asal (7.1)
izormorfizmasından yararlanılarak küçük bir p asalı ve n → ∞ için Fpn cismi
üzerinde DL hesabı yapan Lpn [1/2; c] zamanlı bir algoritma olarak uyarlanabilir.
Fakat, Örnegin büyük bir p asalı için Fp2 cismi ele alınırsa, (7.1) ifadesinden benzer
yolla yarı-üstel zamanlı bir algoritma gelistiremeyiz. Bu sorunun üstesinden gelmek
için bu tipteki sonlu cisimler elemanları cebirsel tamsayılar olacak sekilde (6.3) sek-
linde ifade edilirler. Coppersmith vd. (1986) Fp cismini (6.3) seklinde ifade ederek Fpdeki DLP yi çözen Lp [1/2; 1] zamanlı Gauss tamsayılar metodunu gelistirmislerdir.
Bu metot çarpanlara ayırma algoritması olan Sayı Cismi Elegi algoritmasının dog-
masına yol açmıstır.
Gordon (1993), Sayı Cismi Elegi algoritmasını Fp de DL hesabı için kullanılan
Lp
£1/3; 32/3
¤zamanlı bir algoritma olarak adapte etmistir. Schirokauer (1993) bu
algoritmayı çalısma zamanı Lp
h1/3; (64/9)1/3
iolacak sekilde gelistirmistir. Bu al-
goritma, çarpanlara ayırma durumundaki gibi Sayı Cismi Elegi (SCE) olarak ad-
landırılır ve su anda bir çok versiyonu mevcuttur. SCE algoritması, Gauss tamsayılar
metodunun genellestirilmesi veya indeks calculus algoritmalarının bir devamı olarak
görülebilir.
Günümüzde, SCE algoritmaları hem teorik hem de pratik açıdan sonlu cisimlerde
DLP yi çözen en etkili algoritmalardır. Weber (1995), Studholme (2002) ve Klein-
jung (2007) Fp için SCE yi basarılı bir sekilde pratige uyarlamıslardır. Bu bölümde,
özellikle Schrokauer’in (2008) makalesinden yararlanılarak Fp deki DL hesabı için
kullanılan SCE algoritması anlatılacaktır.
Fp (p asal) deki DLP hatırlanırsa g, Fp nin primitif kökü olmak üzere verilen bir
y ∈ Fp içingx ≡ y (mod p)
60
denklemini saglayan en küçük x pozitif tamsayısı bulunmaya çalısılıyordu.
Burada anlatılacak algoritma, bir B düzgünlük sınırı için B-düzgün g ve y kısıt-
lamaları altında q, p − 1 in asal bir böleni olmak üzere (d log)g y (mod q) ifadesinihesaplar. Bu kısıtlamalar istenilen diskret logaritmayı hesaplamak için ciddi bir
engel teskil etmez. Çünkü,
• Bu algoritma qe|p−1 olacak sekildeki bir e pozitif tamsayısı için (d log)g y (mod qe)yi hesaplayacak sekilde degistirilebilir. Böylece, p − 1 sayısının çarpanlaraayrılısı belirlendikten sonra Çin kalan teoremi uygulanarak (d log)g y hesa-
planabilir.
• Eger g, B-düzgün degilse Fp nin B-düzgün olan baska bir h primitif elemanı
belirlendikten sonra (d log)h y ve (d log)h g hesaplanıp
(d log)g y =(d log)h y(d log)h g
ifadesinden (d log)g y hesaplanabilir.
• Eger y, B-düzgün degilse rastgele R pozitif tamsayıları seçilerek B-düzgün
z := gRy elemanı belirlenip (d log)g z, dolayısıyla (d log)g y hesaplanabilir.
7.1 SCE Algortimasının Taslagı
Bir önceki bölümde, Fp sonlu cismindeki DLP yi q, p − 1 in bir asal böleni ve B,düzgünlük sınırı olmak üzere B-düzgün g ve y elemanları için (d log)g y (mod q) yu
belirleme problemine indirgenebilecegini gördük.
Fp de
gx0y = γq (7.2)
seklinde bir esitlik bulunabilirse,
gx0y = γq ⇒ gx0y ≡ γq (mod p)
⇒ (d log)g gx0 + (d log)g y ≡ q (d log)g γ (mod p− 1)
⇒ x0 + (d log)g y ≡ 0 (mod q)⇒ (d log)g y ≡ −x0 (mod q)
61
oldugundan (d log)g y (mod q) belirlenebilir. Asagıdaki algoritma kullanılarak (7.2)
seklindeki esitlik elde edilebilir.
Algoritma 7.1 (Sayı Cismi Elegi)
Girdi : Fp (p asal) nin B-düzgün bir g primitif elemanı ve y elemanı, p− 1 in birq asal böleni
Çıktı : x := (d log)g y (mod q)
1. (Polinom seçme) m, d ∈ Z+ olmak üzere f (m) ≡ 0 (mod p) olacak sekilde derecesid olan bir f (x) ∈ Z [x] polinomu belirle. α, f (x) polinomunun kompleks bir kökü
olmak üzereφ : Z [α] → FpX
biαi 7→
Xbim
i
dönüsümü bir halka homomorfizmasıdır.
2. (Çarpan tabanlarını olusturma) Belirlenen bir B-düzgünlük sınırı için
S1 := {p asal | p 6 B}
ve
S2 := {Normu B den küçük birinci dereceden asal idealler}
çarpan tabanlarını olustur.
3. (Eleme) Bir C pozitif tamsayısı için 0 < |a| , |b| 6 C aralıgında
a+ bm tamsayısı B-düzgün
ve
a+ bα elemanının normu B-düzgün
sartlarını gerçekleyen yeterli sayıda (a, b) ∈ Z × Z ikilisini eleme teknikleri kulla-narak belirle. S ile bu ikililerin olusturdugu küme gösterilsin
4. (Lineer cebir) S kümesindeki (a, b) ikililerinden ve logaritmik dönüsümleri kulla-
narak
δ := gx0yY
(a,b)∈S(a+ bm)xa,b öyle ki δ, Z de q-uncu kuvvet
ve
γ :=Y
(a,b)∈S(a+ bα)xa,b öyle ki γ, Z [α] da q-uncu kuvvet
62
ifadelerini olustur.
5. φ halka homomorfizması oldugundan φ (δ) ve φ (γ), Fp de q-uncu kuvvettirler ve
φ (δ) = gx0φ
⎛⎝ Y(a,b)∈S
(a+ bm)xa,b
⎞⎠ = gx0yφ (γ)
dır. Dolayısıyla gx0y, F∗p da q-uncu kuvvettir ve (7.2) den
x0 ≡ − (d log)g y (mod q)
olarak belirlenir.
Bu algoritmanın detayları alt bölümlerde ele alınacaktır.
7.2 Polinom Seçme
SCE algoritmasının birinci adımında istenilen özelliklerde bir polinom asagıdaki al-
goritma kullanılarak olusturulabilir.
Algoritma 7.2 (Taban-m)
Girdi : p asal elemanı
Çıktı : f (x) ∈ Z [x] polinomu1. Polinomun derecesi olacak d pozitif tamsayısını belirle
2. m :=¥p1/d
¦3. p, m tabanında yazılırsa,
p = md + ad−1md−1 + ...+ a1m+ a0 , 0 6 ai < m
esitliginden
f(x) := xd + ad−1xd−1 + ...+ a1x+ a0 , 0 6 ai < m
polinomunu olustur.
Bu algoritma ile olusturulan bir polinom asagıdaki özellikleri saglarsa SCE algorit-
ması için uygun bir polinom seçilmis olur.
1. f , Z [x] de asal63
2. f , monik
3. do (f) = d
4. f (m) ≡ 0 (mod p)
5. q, asalı f polinomunun diskriminantını bölmesin
Taban-m algoritmasında olusturulan polinomların 2-4 sartlarını sagladıgı açıktır.
1 ve 5 sartlarının ise saglanıp saglanmadıgı kontrol edilmelidir. Ancak, taban-m
algoritması ile olusturulan polinomlar bu sartları büyük olasılıkla saglarlar. Aslında,
2 ve 5 sartları SCE algoritması için gerekli degildir. Fakat, bu sartlar algoritmayı
daha yalın hale getirir.
Bu bölümde, f (x) polinomu belirlenerek α, f (x) polinomunun bir kompleks kökü
olmak üzere K := Q (α) olacak sekilde bir sayı cismi de belirlenmis oldu. Sonraki
bölümlerde aksi söylenmedikce f (x), taban-m algoritması ile olusturulan polinomu
ve K := Q (α) cismi de bu polinomun bir α kompleks kökü ile olusturulan sayı
cismini gösterecektir.
7.3 Çarpan Tabanlarını Olusturma
SCE algoritmasında Z ve Z [α] halkalarında q-uncu kuvvetten elemanların olustu-
rulması gerekiyordu. Z halkasında q-uncu kuvvetten bir eleman, indeks calculus
algoritmalarına benzer sekilde tamsayılardaki düzgünlük kavramı kullanılarak olus-
turulabilir. Dolayısıyla, B bir düzgünlük sınırı olmak üzere
S1 := {p asal | p 6 B}
çarpan tabanı Z halkasında q-uncu kuvvetten bir eleman belirlemek için kullanılır
ve bu çarpan tabanına rasyonel çarpan tabanı denir.
Z [α] halkasında q-uncu kuvvetten bir eleman olusturmak için ise ZK tamlık halka-
sındaki düzgünlük kavramı kullanılır. Eger ZK TTÇAB ise Z halkasındakine benzer
sekilde ZK da q-uncu kuvvetten bir eleman elde edilmeye çalısılabilir. Fakat, ZK her
zaman TTÇAB degildir ve bunun kontrolü zahmetlidir. Bunun yerine, ZK tek türlü64
ideallerine ayrılabilen bir bölge oldugundan, SCE algoritmasında ha+ bαi seklindekiideallerin çarpanlarına ayrılısı belirlenerek ZK da bir q-uncu kuvvet olusturulmaya
çalısılır. Dolayısıyla, rasyonel çarpan tabanının yanı sıra ZK nın asal ideallerinden
olusan ve cebirsel çarpan tabanı olarak adlandırılan bir çarpan tabanına daha ihtiyaç
vardır.
Teorem 2.5 den dolayı ha+ bαi yı bölen asal idealler ya birinci dereceden ya daindeksi bölen asal ideallerdir. Yani, çarban tabanının bu iki tipteki asal idealler-
den olusturulması yeterlidir. SCE algoritması için indeksi bölen asal ideallerden
kaçınarak bir B düzgünlük sınırı için çarpan tabanı
S2 := {ZK nın normu B den küçük birinci dereceden asal idealleri}
olarak tanımlanabilir. Çarpan tabanındaki böyle bir kısıtlama f nin seçilisini kısıt-
lasa da SCE algoritması için uygun bir polinom elde edilemesine engel teskil etmez
(Weber 1990). Ayrıca çarpan tabanını bu sekilde seçmenin bazı avantajları da vardır.
Örnegin, çarpan tabanı Teorem 2.4 den f (x) polinomunun küçük asallardaki kökleri
hesaplanarak olusturulabilir ve ha+ bαi idealinin asal ideallerine ayrılısı Teorem 2.7den N (a+ bα) yı Z de çarpanlarına ayırarak belirlenebilir. Eger indeks bölenlerde
çarpan tabanına eklenirse bu asal ideallerin ha+ bαi yı bölen kuvvetleri Lenstra’nın(1992) metodu ile hesaplanabilir.
7.4 Eleme
SCE algoritmasında eleme bölümünün amacı |a| , |b| 6 C aralıgında
1. a− bm tamsayısı B-düzgün
2. a− bα elemanı B-düzgün
sartlarını saglayan (a, b) ∈ Z× Z ikililerini bulmaktır.
f (x, y) derecesi d olan iki degiskenli homojen bir polinom olsun. z := x/y için
f(z) :=f(x, y)
yd
65
polinomu tek degiskenli bir polinomdur. Tek degiskenli bir polinomun belli bir
aralıktaki hangi degerler için görüntülerinin düzgün olup olmadıgı polinom elemesi
kullanarak belirlenebilir (Bknz bölüm 6.2.1). Dolayısıyla, B bir düzgünlük sınırı
olmak üzere belli bir aralıktaki hangi z degerleri için f (z) nin B-düzgün oldugu
belirlenebilir. Sonuç olarak, B sınırından küçük her p asalı için
z ≡ x
y(mod p)
denklemlerinden hangi (x, y) ikilileri için f (x, y) nin B-düzgün oldugu belirlenebilir.
Böylece (1) ve(2) sartlarını saglayan (a, b) ∈ Z×Z ikililerini belirlemek için sırasıylaf1 (x, y) = x + ym ve f2 (x, y) = xd − bd−1xd−1y + ... + b1x (−y)d−1 + b0 (−y)d
polinomları kullanılabilir.
7.5 Logaritmik Dönüsümler
SCE algoritmasının lineer cebir bölümünde, q-uncu kuvvetten ZK nın bir ideali olus-
turulup ZK nın q-uncu kuvvetten bir elemanına geçis yapabilmek için Schirokauer’in
(1993) tanımladıgı logaritmik dönüsümler kullanılır. Bu dönüsümler asagıdaki gibi
tanımlanır.
Γ kümesi
Γ := {γ ∈ ZK | q, N (γ) yı bölmesin}
olarak tanımlansın.
ZK da q asalının üzerindeki her ℘ asal ideali için ℘ := |(ZK/℘)∗| olmak üzere:= ℘ lerin en küçük katı olarak tanımlansın ve q, 4f i bölmediginden K cisminde
dallanmaz. Bu durumda,
∀γ ∈ Γ için γ ≡ 1 (mod q)
dur. λ dönüsümü
λ : Γ → qZK/q2ZKγ 7→ (γ − 1) + q2ZK
66
olarak tanımlanmak üzere qZK/q2ZK , Z/qZ üzerinde rankı d olan bir modüldür.
Dolayısıyla, j = 1, 2, ..., d için {bjq + q2ZK} tabanını sabitlersek λ dönüsümü
λj : Γ→ Z/qZ
dönüsümlerine karsılık gelir. λj dönüsümleri de herhangi bir γ ∈ ZK için
γ − 1 ≡dX
j=1
λj (γ) bjq¡mod q2
¢ile belirlenir.
λ (γ1γ2) = λ (γ1) + λ (γ2) oldugundan j = 1, 2, ..., d için λj ler
λj (γ1γ2) = λj (γ1) + λj (γ2)
özelligini saglar. Bu yüzden λj dönüsümleri logaritmik dönüsümler olarak adlandırılır.
7.5.1 ZK nın ideallerinden elemanlarına geçis
γ ∈ ZK ve ℘, ZK nın bir asal ideali olmak üzere
ord℘ (γ) := hγi idealinin çarpanlara ayrılısındaki ℘ asal idealinin kuvveti
olarak tanımlansın. U , ZK nın birim grubunu göstermek üzere U2 ve U q kümeleri
sırasıyla
U2 :=©γ ∈ U | γ ≡ 1 ¡mod q2¢ª
ve
U q := {γ ∈ | γ, q-uncu kuvvet}
seklinde tanımlansın.
Schirokauer’in (1993) makalesindeki teoremin özel bir hali asagıdaki gibi verilebilir.
Önerme 7.1 q asal sayısı K cisminin sınıf sayısını bölmesin ve U2 ⊂ U q olsun.
Eger γ ∈ Γ elemanı
(i) ZK nın her ℘ asal ideali için ord℘ (γ) ≡ 0 (mod q)(ii) λ (γ) = 0
sartlarını saglıyorsa γ, ZK da bir q-uncu kuvvettir.67
q büyük bir asal olacagından q nun K nın sınıf sayısını bölme olsalıgı azdır. Üstelik,
U2 ⊂ U q sartının saglanmama olsalıgı da azdır (Schirokauer 1990). Dolayısıyla, SCE
algoritmasında bu sartların kontrolü ihmal edilebilir.
7.6 Lineer Cebir
Rasyonel ve cebirsel çarpan tabanları sırasıyla
S1 := {p1, p2, ..., pπ}
ve
S2 := {℘1, ℘2, ..., ℘μ}
olmak üzere eleme bölümünde a+ bm ve a+ bα B-düzgün olacak sekilde π + μ+ d
den fazla (a, b) ikilileri belirlenmis olsun.
vr (t), r asal tamsayısı ve t herhangi bir tamsayı olmak üzere t yi bölen r nin en
büyük kuvvetini göstersin. Benzer sekilde, v℘ (γ) ifadesi de ℘, ZK nın herhangi bir
asal ideali ve γ ∈ ZK olmak üzere hγi yı bölen ℘ nin en büyük kuvvetini göstersin.
a ve b tamsayılar olmak üzere Va,b, ilk π girisi
vp1 (a+ bm) , vp2 (a+ bm) , ..., vpπ (a+ bm)
sonraki μ girisi
v℘1 (a+ bα) , v℘2 (a+ bα) , ..., v℘π (a+ bα)
ve son d girisi
λ1 (a+ bα) , λ2 (a+ bα) , ..., λd (a+ bα)
olan bir vektörü temsil etsin.
g, Zp nin primitif kökü ve y, diskret logaritması hesaplanmak istenen eleman olmak
üzere
Vg := ilk π girisi vp1 (g) , vp1 (g) , ..., vpπ (g) ve son μ+ d girisi 0 olan vektör
ve
Vy := ilk π girisi vp1 (y) , vp1 (y) , ..., vpπ (y) ve son μ+ d girisi 0 olan vektör
68
olarak tanımlansın.
A matrisi, ilk sütunu Vg ve sonraki sütunları eleme bölümünde elde edilen (a, b)
ikilileri için Va,b olacak sekilde tanımlanırsa,
AX ≡ −Vu (mod q) (7.3)
denkleminin bir x := (x0, x1, ..., xl) çözümü için Önerme 7.1 den dolayı
δ := gxylY
i=1
(a− bm)xi
ve
γ :=lY
i=1
(a− bα)xi
sırasıyla Z ve ZK da q-uncu kuvvetten elemanlardır.
f 0 (α)ZK ⊆ Z [α] oldugundan f 0 (α)q δ ve f 0 (α)q γ sırasıyla Z ve Z [α] da q-uncu
kuvvetten elemanlardır. Dolayısıyla, SCE algoritmasının 5. adımından
x0 ≡ − (d log)g y (mod q)
elde edilebilir.
(7.3) denklemini çözmek için Bölüm 6.2.2 de sözü edilen algoritmalar kullanılabilir.
SCE algoritmasının çalısma zamanı analizi için Studholme’nin (2002) tezine bakınız.
Bütün sonlu cisimler için yarı-üstel zamanlı bir algoritma var mıdır? sorusu uzun
süre sürüncemede kalmıs ve sonunda 1993 yılında bu soruya cevap verilmistir. Fpn
cismi n < p için (6.3), n > p için (6.2) seklinde ifade edilerek bütün sonlu cisim-
ler için Lpn [1/2; c] çalısma zamanı olan bir algoritma gelistirilmistir (Adleman and
Demarris 1993). Daha sonra bu soru "bütün sonlu cisimler için Lpn [1/3; c] zamanlı
bir algoritma var mıdır?" sorusuna dönüsmüstür. Bu soru da Joux et al. (2003)
tarafından Lpn [1/3; c] zamanlı bir algoritma verilerek cevaplanmıstır.
69
KAYNAKLAR
Adleman, L.M. 1979. A subexponential algorithm for the discrete logarithm
problem with applications to cryptography. Proc. of the 20th Annual IEEE
Symposium on Foundations of Computer Science, 55-60.
Adleman, L.M. 1994. Function field sieve. Algorithmic Number Theory (ANTS-I)
Lecture Notes in Computer Science, 877, 108-121.
Bach, E. 1984. Discrete Logarithms and Factoring, University of California at
Berkeley, Berkeley, CA.
Blackburn, S.R. and Teske, E. 2000. Baby-step giant-step algorithms for non-
uniform distributions, In Algorithmic Number Theory Seminar ANTS-IV,
volume 1838 of LNCS, 153-168.
Blake, I.F. Fuji-Hara, R. Mullin, R.C. and Vanstone, S.A. 1984. Computing
logarithms in finite fields of characterisitic two. SIAM J. Alg. Disc.
Methods, 5, 276-285.
Brent, R.P. 1980. An improved Monte Carlo factorization algorithm. BIT, 20,
176-184.
Brickell, E.F. and McCurley, K. S. 1990. An Interactive Identification Scheme
Based on Discrete Logarithms and Factoring, EUROCRYPT’90, 63-71.
Buchman, J. Jacobson, M.J. and Teske, E. 1997. On some computational problems
in finite abelian groups. Mathematics of Computation, 66, 1663-1687.
Cohen, H. 1993. A Course in Computational Algebraic Number Theory, Springer-
Verlag, 580 p., Berlin.
Coppersmith, D. 1984. Fast evaluation of logarithms in finite fields of characteristic
two. IEEE Trans. Inform. Theory, 30, 587-594.
70
Coppersmith, D. Odlyzko, A.M. and Schroeppel, R. 1986. Discrete logarithms in
GF(p). Algorithmica, 1, 1-15.
Crandall, R. and Pomerance, C. 2005. Prime Numbers A Computational
Perspective, Springer-Verlag, 577 p., Berlin.
Dickman, K. 1930. On the Frequency of Numbers Containing Prime Factors of
a Certain Relative Magnitude. Ark. Mat. Astronomi och Fysik, 22A(10),
1-14.
Diffie, W. and Hellman, M.E. 1976. New Directions in Cryptography. IEEE
Transactions on Information Theory, 22, 644-654.
ElGamal, T. 1985. A public key cryptosystem and a signature scheme based on
discrete logarithms. IEEE Transactions on Information Theory, 31(4), 469-
472.
Floyd, R.W. 1967. Non-deterministic Algorithms. J. ACM, 14(4), 636-644.
Gadiyar, H.G. Maini, K.M.S. Padma, R. and Romsy, M. 2009. What is the inverse
of repeated square and multiply algorithm?. Colloq. Math. 116, 1-14.
Gregg, J.E. 2003. On Factoring Integers and Evaluating Discrete Logarithms,
Ph.D. thesis, Harvard College Cambiridge, 61 p., Massachusetts.
Harris, B. 1960. Probability distributions related to random mappings. Ann. Math.
Statist., (31), 1045-1062.
Hellman, M.E. and Reyneri, J.M. 1983. Fast Computation of Discrete Logarithms
in GF(q). Advances in Cryptology: Proceedings of CRYPTO’82, 3-13.
Joux, A. and Lercier, R. 2003. Improvements to general number field sieve for disc-
rete logarithms in prime fields. A comparision with the Gaussian integer
method. Math. Comp., 72(242), 953-967.
Kleinjung, T. 2007. Discrete logarithms in GF(p)-160 digits. email to NMBRTHRY
mailing list.
71
Kraitchik, M. 1922. Theorie des nombres, Vol. 1, Gauthier-Villars.
LaMacchia, B.A. and Odlyzko, A.M. 1991. Solving large sparse linear systems over
finite fields. Lecture Notes in Computer Science, 537, 109-133.
Miller, S.D. and Venkatesan, R. 2009. Non-Degeneracy of Pollard Rho Collisions.
International Mathematics Research Notices, 1, 1-10.
Mullen, G. and White, D. 1986. A polynomial representation for logarithms in
GF(q). Acta Arithmetica, 47, 255-261.
Niederreiter, H. 1990. A short proof for explicit formulas for discrete logarithms in
finite fields. Applicable Algebra in Eng., 1, 55-57.
Odlyzko, A. 1985. Discrete logarithms in finite fields and their crptographic
significance. Advances in Cryptology-Eurocrypt’84 Lecture Notes in
Computer Science, 209, 224-314.
Pollard, J.M. 1978. Monte Carlo methods for index computation (modp). Math.
Computation, 32, 918-924.
Pollard, J.M. 2000. Kangoroos, Monopoly and Discrete Logarithms. Journal of
Cryptology, 13, 437-447.
Schirokouer, O. 1993. Discrete logarithms and local units. Phil. Trans. R. Soc.
Lond., A(345), 409-423.
Schirokouer, O. 2008. The impact of the number field sieve on the discrete
logarithm problem in finite fields. Algorithmic Number Theory, 44, 397-
420.
Shanks, D. 1971. Class numbers, a theory of factorization and a genera, In 1969
Number Theory Institue, Proc. Symposium Pure Mathematics, American
Mathematical Society, 20, 415-440.
Sundaram, P. 1998. An efficient discrete log pseudo random generator, In Crypto’98
LNCS, 1462, 304-317.
72
Teske, E. 1998. A space efficient algorithm for group structure computation.
Mathematics of Computation, 67(224), 1637-1663.
Van Oorschot, P.C. and Wiener, M.J. 1999. Parallel collision search with
cryptanalytic applications. Journal of Cryptology, 12, 1-28.
Wan, Z.X. 2008. A shorter proof for an explicit formula for discrete logarithms in
finite fields. Discrete Mathematics, 308(21), 4914-4915.
Weber, D. 1995. An implementation of the general number field sieve to compute
discrete logarithms mod p. Theory and Application of Cryptographic Tech-
niques, 95-105.
Wells, A.L. 1984. A polynomial form for logarithms modulo a prime. IEEE Trans.
Info. Theory, 30, 845-846.
73
ÖZGEÇMIS
Adı Soyadı: Murat SAHIN
Dogum Yeri: Isparta
Dogum Tarihi: 21.05.1978
Medeni Hali: Evli ve 1 çocuk sahibi
Yabancı Dili: Ingilizce
Egitim Durumu (Kurum ve Yıl):
Lise: Isparta Sehit Ali Ihsan Kalmaz Lisesi (1994)
Lisans: Ortadogu Teknik Üniversitesi, Fen Edebiyat Fakültesi,
Matematik Bölümü (2000)
Yüksek Lisans: Ankara Üniversitesi, Fen Bilimleri Enstitüsü,
Matematik Anabilim Dalı (2003)
Çalıstıgı Kurum/Kurumlar ve Yıl:
• Ankara Üniversitesi, Fen Bilimleri Enstitüsü, Matematik Anabilim Dalı,
Arastırma Görevlisi (Mart 2001 - ...)
Yayınları:
Sahin, M. and Ekin, A.B. 2009. On a probabilistic algorithm solving discrete
logarithm problem. Sumbitted to Journal of Mathematics Research.
Sahin, M. 2008. Nested Squares of Length 4. Journal of Number Theory, Under
Review.
Ekin, A.B. and Sahin, M. 2009. A Note on Some Weak Keys in RSA, International
Journal of Mathematics and Computer Science, Under Review.
74