380 likes | 735 Views
KRİPTOLOJİ-2. Hakan KUTUCU. AÇIK ANAHTARLI ŞİFRELEME (PUBLIC KEY ENCRYPTION). Açık Anahtarlı Sistemler. 1976 yılında Diffie ve Helman adlı iki araştırmacı önermiştir. Bu şifreleme yöntemi iki ayrı anahtar kullanan yöntemdir.
E N D
KRİPTOLOJİ-2 Hakan KUTUCU
AÇIK ANAHTARLI ŞİFRELEME (PUBLIC KEY ENCRYPTION)
Açık Anahtarlı Sistemler • 1976 yılında Diffie ve Helman adlı iki araştırmacı önermiştir. • Bu şifreleme yöntemi iki ayrı anahtar kullanan yöntemdir. • Bu kriptografi yapısında, açık(public) ve özel(private) anahtar olarak adlandırılmış olan bir anahtar çifti kullanılmaktadır. • Asimetrik algoritmalar da denilen açık anahtarlı algoritmalarda şifreleme için kullanılan anahtar ile şifre çözme için kullanılan anahtar birbirinden farklıdır.
Açık Anahtarlı Sistemler • Anahtar çiftlerini üreten algoritmaların matematiksel özelliklerinden dolayı açık-gizli anahtar çiftleri her kişi için farklıdır, diğer bir deyişle her kullanıcının açık-gizli anahtar çifti yalnızca o kullanıcıya özeldir. • Ayrıca şifre çözüm anahtarı(private) (en azından makul bir zaman dilimi içerisinde) şifre anahtarından(public) hesaplanamaz. Matematiksel zor bir problemdir. • Neden Asimetrik:Mesajı Şifreleyen mesajı açamaz ya da mesajı imzalayan mesajı tanımlayamaz.
Açık Anahtarlı Sistemler • Bu algoritmalara açık anahtarlı algoritmalar denmesinin sebebi şifre anahtarı halka (genel kullanıma) açılabilir. • Bir yabancı bir iletiyi şifrelemek için şifreleme anahtarını(public) kullanabilir, ancak sadece ilgili şifre çözüm anahtarına(private) sahip bir kişi iletinin şifresini çözebilir. • Bu sistemde, şifre anahtarına genellikle açık anahtar denir, şifre çözüm anahtarı da genellikle özel anahtar olarak adlandırılır.
Açık Anahtarlı Sistemlerde Şifreleme
Açık Anahtarlı Sistemlerde Kimlik Doğrulama(Authentication)
Neden Açık Anahtarlı Sistemler • İki anahtar kullanımının 3 sonucu vardır. • Güvenilirlilik: Gönderici Alıcının halka açık anahtarı ile şifreler. • Anahtar dağıtımı: Güvenilir bir KDC olmadan nasıl bir anahtar dağıtımı yapılır • Sayısal İmza&Doğrulama: Meajın kim tarafından gönderildiğini belirlemek
Açık Anahtarlı Sistem Karakteristikleri • Anahtarları kullanarak(KRa, KUa) şifreleme ve şifre çözme hesaplamaları kolay olmalı • Açık anahtardan özel anahtarı bulmak zor hatta imkansız olmalı. • Bilinen Açık Metin Saldırısından özel anahtarı bulmak zor olmalı.
Açık Anahtarlı Şifreleme Algoritmaları • RSA Açık Anahtarlı Şifreleme • Diffie-Hellman Açık Anahtarlı Şifreleme • ElGamal Açık Anahtarlı Şifreleme
RSA • MIT’de çalışan Ron Rives, Adi Shamir ve Len Adleman tarafından 1977 yılında önerilmiştir. • En yaygın bilinen ve sık kullanılan bir algoritmadır. • Büyük tam sayıları kullanır. (1024 bit) • Sistemin güvenliği tamsayılarda çarpanlarına ayırma probleminin kolaylıkla olmaması temeline dayanır. • Mesajları şifrelemek için kullanılabileceği gibi dijital imzalarda da kullanılabilir.
RSA-Algoritması Şifreleme • M açık mesajını şifrelemek için; • Gönderici alıcınınpublic anahtarını KU={e,n} elde etmelidir. • Ciphertext: C=Me mod n, 0≤M<n • C şifreli metinin şifresini çözmek için; • Alıcı kendi özel anahtarını kullanır KR={d,n} • Plaintext: M=Cd mod n
RSA-Algoritması(İspat) • Euler’in Küçük Fermat Teoremini kullanır. • aø(n)mod n = 1 gcd(a,n)=1 iken • RSA Algoritmasında; • n=pq • ø(n)=(p-1)(q-1) • e & d değerleri mod ø(n)’e göre birbirlerinin tersidir. • Bu yüzden ed=1+kø(n) • Sonuç olarak: • Cd = (Me)d = M1+kø(N) = M1(Mø(N))k = • = M1(1)k = M1 = M (mod n)
RSA (Örnek) • Anahtar Üretimi • Asal Sayılar Seçilir: p=17 & q=11 • n = pq =17×11=187 • ø(n)=(p–1)(q-1)=16×10=160 • Bir e seçilir öyleki gcd(e,160)=1 olsun: e=7 • d hesaplanır: de=1 (mod 160)ve d < 160 d=23 çünkü 23×7=161= 10×160+1 • Açık anahtar KU={7,187} • Özel anahtar KR={23,187}
RSA (Örnek) Mesajın Şifrelenmesi HELLO WORLD= 07 04 11 11 14 26 22 14 17 11 03. Ali’nin açık anahtarı(KU={7,187}) kullanılaraküretilen ciphertext: 077 mod 187 = 182 047 mod 187 = 115 117 mod 187 = 88 ….......................... 037 mod 187 = 130 C=182 115 88 .......130
RSA (Örnek) Mesajın Şifre Çözümü C=182 115 88 .......130 Ali kendi özel anahtarını (KP={23,187}) kullanarakşifreyi çözer: 18223 mod 187 = 07 11523 mod 187 = 04 8823 mod 187 = 11 ….......................... 13023 mod 187 = 03 P= 07 04 11 .... 03
RSA-Digital İmza • RSA kriptosistemi digital imzalar için de kullanılabilir. İmzalama • Ali, Nuray’a imzalı bir m mesajını göndermek isterse, Ali kendi özel anahtarı KR={d,n} ile mesajı şifreler. • =md mod n • (m, ) imzalı mesajı Nuray’a gönderir.
RSA-Digital İmza İmzalayı Doğrulama Nuray Ali’den aldığı mesajı doğrulamak için Ali’nin açık anahtarı KU={e,n} ile mesajın şifresini çözer. e mod n hesaplanır. Sonuç m ise mesaj doğrulanmış yani Ali’den gelmiş demektir.
RSA-Digital İmza(Örnek) • Anahtar Üretimi • Ali Asal Sayıları Seçer: p=7927 & q=6997 • n = pq =7927x6997=55465219 • ø(n)=(p–1)(q-1)=7926×6996=55450296 • Ali gcd(e, 55450296)=1 olacak şekilde e=5 sayısını seçer. • de=1 (mod 55450296) eşitliğinden d=44360237 bulur. • Açık anahtar KU={5,55465219} • Özel anahtar KR={44360237, 55465219}
RSA-Digital İmza(Örnek) İmzalama Ali m=31229978 mesajını imzalamak için kendi özel anahtarı KR={44360237, 55465219} ile mesajı şifreler. =md mod n =3122997844360237 mod 55465219=30729435 Ali,Nuray’a (31229978,30729435) verisini gönderir.
RSA-Digital İmza(Örnek) İmzayı Doğrulama Nuray aldığı mesajın (31229978,30729435) Ali’den geldiğini doğrulamak için Ali’nin açık anahtarı KU={5,55465219} ile mesajın şifresini açar. e mod n =307294355 (mod 55465219)=31229978=m Çıkan sayı aldığı mesajdaki sayı olduğu için mesajı Ali göndermiştir.
Diffie-Hellman Anahtar Anlaşması • Simetrik Anahtar Şifrelemedeki temel sorun iki kullanıcı arasındaki anahtarın güvenli bir şekilde dağıtımıdır. • Güvenli olmayan bir kanalda özel anahtarın dağıtımı asimetrik sistemler ile çözülür. • Diffie-Hellman algoritması discrete logaritma hesaplamasının zorluğu temeline dayalıdır.
Discrete(Ayrık) Logaritma • p asal bir sayı olsun • Zp={0,1,…,p-1} is sonlu bir field. • Zp* : p ile aralarında asal olan tüm tamsayıların kümesidir. • {a Zp| gcd(a, p)=1}={1,…,p-1} • Zp*‘nin bir primitif kökü olsun, • Yani Zp* ={0 mod p, 1mod p, …, p-2 mod p}. • DLP problem • Verilen bir aiçin,b a (mod p) kolaydır. • Verilen bir biçin,b a (mod p) a’yı bulmak zordur. • a = log b. Olarak gösterilir.
Discrete(Ayrık) Logaritma-Örnek p=17, Zp*={1,2,…,16}. =3 primitif bir köktür yada üretecidir çünkü; Zp*={30,31,32 ,33, 34, 35, 36, 37, 38,39,310,311,312,313, 314,315 } ={1, 3, 9, 10, 13, 5, 15,11,16,14, 8, 7, 4, 12, 2, 6 } 316 mod 17=1.’dir yani çarpma işlemine göre devirli(multiplicative cyclic) bir gruptur.
Discrete(Ayrık) Logaritma-Örnek a=10 için , b 310 mod 17 =8 kolay b=10 için , 10 3a mod 17 a=9 Ama p çok büyük olduğunda bu problemi çözmek zordur.
Diffie-Hellman Anahtar Anlaşması p ve global public elemanlardır.