Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Python / Zope

Cevapla
 
LinkBack Seçenekler
Eski 12/09/2007, 23:48   #1 (permalink)
Üye
 
Utku Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 09/2007
Yer: Ist
Mesaj: 9
Varsayılan Python & RSA

RSA şifreleme algoritmasını kullanarak verileri şifreleyen bir program yazmıştım zamanında, bunu da paylaşayım dedim. ( RSA hakkında bilgi için: http://en.wikipedia.org/wiki/RSA )




Kod:
import time

q=int(raw_input('Lutfen bir asal sayi giriniz:'))
p=int(raw_input('Lutfen bir asal sayi daha giriniz:'))
x=int(raw_input('Sifrelemek istediginiz sayiyi giriniz:'))


n=p*q

f=(p-1)*(q-1)

if x>f:
     print "Veri guvenliginiz icin daha buyuk asallar giriniz.",time.sleep(3), exit()
          

for e in range(1,f):
     if f%e==1:
          print 

for d in range(1,f):
     if (d*e)%f==1:
          print 
print 'Verinizin sifrelenmis hali:', x**e%n



cik=raw_input('Cikmak icin bir tusa basin'   )
Utku hatta değil   Alıntı Yaparak Yanıtla
Eski 12/09/2007, 23:50   #2 (permalink)
Üye
 
Utku Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 09/2007
Yer: Ist
Mesaj: 9
Varsayılan

Tabi ki şifreli veriyi çözmekte gerekir, onun içinde:

Kod:
q=int(raw_input('Lutfen ilk anahtari girin:'))
p=int(raw_input('Lutfen ikinci anahtari girin:'))
x=int(raw_input('Sifrelenmis veriyi giriniz:'))

n=p*q

f=(p-1)*(q-1)

for e in range(1,f):
     if f%e==1:
          if e>f/2:
               print ''

for d in range(1,f):
     if (d*e)%f==1:
          print ''

print 'Sifrelenmis veriniz:', x**d%n

cik=raw_input('Cikmak icin bir tusa basin  ')
Utku hatta değil   Alıntı Yaparak Yanıtla
Eski 29/09/2007, 01:20   #3 (permalink)
ysa
Üye
 
Üyelik Tarihi: 06/2007
Mesaj: 45
Varsayılan

asal sayıyı da rastlantısal olarak atamak lazım aslında ve tabiki bi kaç yüz basamaklı olmalı ki bi işe yarasın eline sağlık. c de yapacam en kısa zamanda. yazıp paylaşabilmem dileğiyle.. hatta şimdi aklıma geldi bi dosyaya önceden büyük asalların listesini atayım ordan rand olarak alsın. daha hızlı olabilir yoksa her şifrelemede asal sayı hesaplatsam yaşlanırım.
ysa hatta değil   Alıntı Yaparak Yanıtla
Eski 29/09/2007, 12:27   #4 (permalink)
İptal Durumu
 
Euclides Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2004
Yer: M86
Mesaj: 1,092
Varsayılan

büyük asal sayılar üretmek için miller rabin primality test'i kullanabilirsiniz.

Bir ara python ile oynarken bunu yapıp yayınlamıştım
http://aspn.activestate.com/ASPN/Coo.../Recipe/511459
Euclides hatta değil   Alıntı Yaparak Yanıtla
Eski 19/10/2007, 01:18   #5 (permalink)
Üye
 
Utku Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 09/2007
Yer: Ist
Mesaj: 9
Varsayılan

Asallık kontrol etmek için Wilson Teoremini kullanan bi program yazmıştım, kodları aşağı da:
Kod:
x=int(raw_input('Bir sayi giriniz: '))

def fact(n):
     if n==0:
          return 1
     else:
          return n*fact(n-1)

if fact(x-1)%x==x-1:
     print x, 'Asal'
else:
     print x, 'Asal degil'

raw_input('Cikmak icin bir tusa basin ')
Fakat programı çalıştırdığımda 4 ve 4'ten büyük basamaklı sayıları girdiğimde hata veriyor. Nedenini bi türlü anlamadım?
Utku hatta değil   Alıntı Yaparak Yanıtla
Eski 19/10/2007, 16:48   #6 (permalink)
İptal Durumu
 
Euclides Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2004
Yer: M86
Mesaj: 1,092
Varsayılan

Rescusion limit'e ulaşıyorsun.
Şöyle yazarsan olur.
Ancak factoriyel hesaplamak zor olduğu için bu teknik büyük sayılar için kullanışlı değil.(5-6 haneli sayılarda denediğinde göreceksin )
Kod:
#!/usr/bin/env python
def factor(x):
	ret = 1
	while x > 0:
		ret = ret * x
		x = x - 1
	return ret

def checkPrime(x):
	if (factor(x - 1) % x) == (x - 1):
		print x,"is a prime number"
	else:
		print x,"is not a prime number"

def main():
	checkPrime(6029)
	
if __name__ == "__main__":
    main()
Euclides hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Mod Python Raiden Python / Zope 3 28/08/2008 13:25
Python laucian Python / Zope 13 23/07/2008 22:20
C/C++ ve python perros Python / Zope 5 03/06/2007 02:35
Python hgedek Python / Zope 2 16/04/2007 16:17
python Desktop Python / Zope 7 19/12/2006 13:48


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 09:52.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net