RSA-Diffie Helman

Download Report

Transcript RSA-Diffie Helman

KRİPTOLOJİ-2
Hakan KUTUCU
1
AÇIK ANAHTARLI
ŞİFRELEME
(PUBLIC KEY ENCRYPTION)
2
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.
3
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.
4
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.
5
Açık Anahtarlı Sistemlerde
Şifreleme
6
Açık Anahtarlı Sistemlerde
Kimlik Doğrulama(Authentication)
7
Neden Açık Anahtarlı Sistemler
İki anahtar kullanımının 3 sonucu vardır.
1. Güvenilirlilik: Gönderici Alıcının halka açık anahtarı
ile şifreler.
2. Anahtar dağıtımı: Güvenilir bir KDC olmadan nasıl
bir anahtar dağıtımı yapılır
3. Sayısal İmza&Doğrulama: Meajın kim tarafından
gönderildiğini belirlemek
8
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ı.
9
Açık Anahtarlı Kripto Sistemler
10
Açık Anahtarlı Kripto Sistemler
11
Açık Anahtarlı
Şifreleme Algoritmaları
1. RSA Açık Anahtarlı Şifreleme
2. Diffie-Hellman Açık Anahtarlı Şifreleme
3. ElGamal Açık Anahtarlı Şifreleme
12
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.
13
RSA-Algoritması (Anahtar Üretimi)
 ( n )  ( p  1)( q  1)
gcd(  ( n ), e )  1; 1  e   ( n )
d e
1
mod  ( n )
14
RSA-Algoritması Şifreleme
M açık mesajını şifrelemek için;
Gönderici alıcının public 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
15
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 =
1
k
1
16
RSA (Örnek)
Anahtar Üretimi
•
Asal Sayılar Seçilir: p=17 & q=11
1. n = pq =17×11=187
2. ø(n)=(p–1)(q-1)=16×10=160
3. Bir e seçilir öyleki gcd(e,160)=1 olsun: e=7
4. d hesaplanır: de=1 (mod 160) ve d < 160
d=23 çünkü 23×7=161= 10×160+1
5. Açık anahtar KU={7,187}
6. Özel anahtar KR={23,187}
17
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
18
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
19
RSA (Örnek)
20
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.
21
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.
22
RSA-Digital İmza(Örnek)
Anahtar Üretimi
•
Ali Asal Sayıları Seçer: p=7927 & q=6997
•
n = pq =7927x6997=55465219
1. ø(n)=(p–1)(q-1)=7926×6996=55450296
2. Ali gcd(e, 55450296)=1 olacak şekilde e=5
sayısını seçer.
3. de=1 (mod 55450296) eşitliğinden
d=44360237 bulur.
4. Açık anahtar KU={5,55465219}
5. Özel anahtar KR={44360237, 55465219}
23
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.
24
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.
25
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.
26
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 a için, b   a (mod p) kolaydır.
Verilen bir b için, b   a (mod p) a’yı bulmak zordur.
a = log  b. Olarak gösterilir.
27
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.
28
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.
29
Diffie-Hellman Anahtar Anlaşması
p ve  global public elemanlardır.
30