Processing math: 100%
Akademisyenler öncülüğünde matematik/fizik/bilgisayar bilimleri soru cevap platformu
0 beğenilme 0 beğenilmeme
2k kez görüntülendi

Ayrık logaritma problemi a,b,n tamsayıları verildiğinde ax=b mod n denklemini çözmek olarak ifade edilirse, problemin çözümünü olabildiğince zorlaştırmak için a,b,n sayılarını nasıl seçmek gerekir?

Akademik Matematik kategorisinde (1.8k puan) tarafından  | 2k kez görüntülendi

En son bildiklerim: n=2p+1 olacak sekilde n ve p asal. Sebebi carpim grubunun asiri derecede  indirgenmesini engellemek. Bir de x ile b arasinda bir Legendre sembolu iliskisi vardi da, ondan net emin degilim, arastirmalarini takip etmiyorum. ama galiba su an icin n kosulu boyle. Belki p'nin de nasil olmasi gerektigi hakkinda da bir bilgi vardir...

1 cevap

3 beğenilme 0 beğenilmeme

Öncelikli olarak n sayısının asal sayı seçilmesi gerekir. Çünkü asal olmayan herhangi bir n sayısı için, n sayısını asal çarpanlarına ayırıp, ardından Çin Kalan Teoremi'ni kullanarak problemi kolayca çözebiliriz. Ondan dolayı ilk şart, n sayısının asal sayı olarak seçilmesi.

Fermat'nın Küçük Teoremi'nden (Fermat's Little Theorem) biz biliyoruz ki, herhangi bir aZp sayısı için ap11 mod p denkliği sağlanır. Buradan, bölme algoritmasından, herhangi bir s tamsayısı için, 0r<p1 eşitsizliğini sağlayan biricik q ve r sayıları için s=q(p1)+r eşitliğini yazabiliriz. Bu da bize

as mod p=aq(p1)+r mod p=(ap1)qar mod p=ar mod p eşitliğini verir. Yani, rs mod p1 olduğundan, eğer Ayrık Logaritma Problemi'ni  mod p için düşünürsek, x sayısını her zaman xZp1 şeklinde alabiliriz.

Buraya kadar yazdıklarımızı toparlarsak eğer, problemimiz şu hali almış oldu aslında: 

Herhangi bir xZp1 sayısı, verilen p tek asal sayısı (2 çok küçük olduğundan almıyoruz) ve a,bZp için

bax mod p denkliğini sağlayan x sayısı nedir?

Yukarıda dedik ki, n sayısı asal olarak seçilmeli, ve seçtik de. Ancak, sadece asal sayı olarak seçmemiz de yetmiyor. Problemi yeteri kadar zorlaştırmak için, p asal sayısının yeterince büyük bir asal sayı olması gereklidir. Peki bu p asal sayısı ne kadar büyük olmalıdır? 

Bir örnek ele alalım:

p=23423429 (p asal) ve α=2 olarak alalım ve şu probleme bakalım:

b=ax19556038 mod p.

Burada x'i bulmak zor mudur? diye sorduğumuz zaman, aslında x sayısını bulmanın nispeten kolay olduğunu görürüz. Çünkü, buradaki p asal sayısına baktığımız zaman, yaklaşık olarak p225 olduğunu görürüz (ki işlemleri bilgisayar ortamında yaptığımız için 225 sayısı çok küçük bir sayıdır). x sayısı için, x=0, x=1, diye x'in doğru değerini bulana kadar devam ederiz ki, x için de test etmek için yaklaşık olarak p ile aynı sayıda olasılık vardır. Bugün, p asal sayısı için tavsiye edilen, en az 768-bit olması gerektiğidir, yani p>2767 seçilmelidir.

Problemin zor olması için, 2.şart olarak p1 sayısının en az bir tane büyük bir asal böleni olması gerektiğidir. Nedenini bir örnekle görelim:

p=884605080699835339776196609 asal sayısı için,  mod p üzerinde alınan Ayrık Logaritma Problemi zor mudur? diye sorduğumuz zaman, ilk dikkatimizi çekmesi gereken şey, bu p asal sayısının yukarıda tavsiye ettiğimiz 768-bit boyutundan daha az olmasına rağmen, x sayısının bütün olası değerlerini test etmenin o kadar da kolay olmaması. Ancak, problemi çözmenin başka kolay bir yolu var ki, bunun nedeni de p1 sayısının küçük asal bölenlere sahip olması. Baktığımız zaman, p1=234312713 olduğunu görüyoruz. Pohlig ve Hellman'ın vermiş olduğu ispata bakarsak eğer, (Pohlig-Hellman algorithm olarak geçer) http://cacr.uwaterloo.ca/hac/about/chap3.pdf (sayfa 107 3.6.4'ten itibaren sayfa 109 3.67'ye kadar) p1 sayısı sadece küçük asal çarpanlara sahipse, ayrık logaritma problemini hesaplamak kolaydır demişlerdir. Ki yukarıdaki örnekte, ilk olarak x mod 2'yi buluruz. Daha sonra, x mod 22'ni hesaplarız ve bu şekilde devam ederek x mod 234'ü elde ederiz. Yine aynı şekilde, x mod 312 ve x mod 713 sayılarını da hesapladıktan sonra, Çin Kalan Teoremi'ni kullanarak x mod p1 i hesaplarız. Bu metodun zaman karmaşıklığı (time complexity)(veya işletim süresi), p1 sayısının en büyük asal bölenine bağlıdır. Ondan dolayı da, p asal sayısı için, p1 sayısının en az 1 tane büyük asal böleni olması gerektiği tavsiye edilir. Buradan da, q asal sayısı için, p asal sayısını p=2q+1 şeklinde üretirsek eğer, p1 sayısı en az bir büyük asal bölene sahiptir diyebiliriz.

Son şart olarak da, am1 mod p denkliğini sağlayan en küçük m tamsayı değerinin, büyük olması gerekmektedir. Nedenini bir örnek üzerinde görelim yine:

p sayısı, p=589640540809904183368339807 asalı olsun. Burada, p1 sayısı, q=98273423468317363894723301 asalı olmak üzere p1=23q dur. Yani p1 sayısı yukarıda belirttiğimiz 2.şartı sağlar. a sayısı, a=151369338077029664651937484 ve b sayısı, b=438271202732874518716402322 mod p olsun. Yine aynı soruyu soralım:

Yukarıda verilenler için, b=ax mod p denkliğini sağlayan x değerini bulmak zor mudur?

Aslında kolaydır. Nedeni ise, a31 mod p denkliğinin sağlanmasıdır. Bundan dolayı, axax mod 3 mod p denkliği sağlanır ve b değeri, denklemi sağlayan yalnızca 3 olasılıktan biridir burada. Yani kısaca, a sayısının mertebesi ne kadar büyükse, problemi çözmek bir o kadar zorlaşır burada. (Ve biliyoruz ki, a ilkel (primitive) sayısı için, mertebesi en fazla p1 olabilir.)


(90 puan) tarafından 

Bu kadar güzel anlatılır. Teşekkürler.

Ben teşekkür ederim, böyle güzel bir site kurup, bizlere böyle olanaklar sağladığınız için. 

20,330 soru
21,886 cevap
73,622 yorum
3,003,671 kullanıcı