1. K R I P T O L O J I V E G Ü V E N L I K
P R O T O K O L L E R I
El-Gamal Asimetrik
Şifreleme Algoritması
İbrahim
Fil 927220046
2. TA R I H Ç E
Taher Elgamal ilk olarak ElGamal Cryptosystem'i, kriptolojinin
gelişmeleri üzerine bir konferans olan CRYPTO ’84'ün
bildirilerinde yayınlanan bir makalede anlattı.
3. H A K K I N D A
• ElGamal şifreleme sistemi, Diffie – Hellman anahtar
değişimine dayanan açık anahtarlı kriptografi için asimetrik bir
anahtar şifreleme algoritmasıdır.
• Bu algoritmada public ve private olmak üzere iki adet anahtar
vardır.Public metni şifrelemek için private şifreyi çözmek için
kullanılmaktadır.
4. • ElGamal'ın güvenliği, ayrık logaritma problemine
dayanmaktadır.
• Bugün ElGamal algoritması birçok kriptografik
üründe kullanılmaktadır. Açık kaynaklı yazılım GnuPG,
imzalar için standart olarak ElGamal'ı kullanır.
• Bu algoritmanın zorluğu dairesel gruplar üzerinde ayrık
algoritma işleminin uygulanmasına dayanmaktadır.
5. D A I R E S E L
G R U P L A R
Grup teorisinde, bir dairesel
grubun üyeleri tek bir
elemandan üretilebiliyorsa bu
gruba dairesel grup
denilmektedir. Bu eleman
generator olarak
isimlendirilmektedir ve bu
elemanın bütün kuvvetleri bu
grubun elemanıdır yani bu
grubun elemanları generator
değerinin kuvveti olarak
hesaplanabiliyor.
6. Örnek olarak G={g0,g1,g2,g3,g4} grubunda 5 eleman
bulunmaktadır ve dairesel olduğu için son elemandan sonra
tekrar ilk elemana dönülür yani g5=g0. Mod fonksiyonu bu
gruba örnek verilebilir.
7. AY R I K L O G A R I T M A
Ayrık logaritma işlemleri çoğunlukla soyut matematik alanında
karşımıza çıkmaktadır. Ayrık logaritma dairesel gruplar üzerinde
tanımlanmış logaritma işlemidir. Örneğin g elemanı G dairesel
grubunun bir elemanı olsun ve g^x = h olsun. Bu işlemin tersi
olan x = log(h) işlemi ayrık algoritma olarak
isimlendirilmektedir.
8. Ayrık logaritmaları anlamanın en kolay yollarından birisi de
(Zp)× ahenk sınıfı üzerindeki işlemleridir. Bir ahenk sınıfı 0 ile
p-1 arasındaki ayrık sayılar kümesi olup bu küme üzerinde
tanımlı olan herhangi bir işlem yine bu küme içinden bir sonuç
döndürmelidir. Basitçe modulo p işlem kümesi olarak
düşünülebilir ve yapılan her işlemin p tabanında modulo alındığı
düşünülebilir.
9. Daha açık bir şekilde ayrık üst (discrete exponent) denilen işlem
bir sayının verilen üst değerinin verilen modulo p için
hesaplanmasıdır. Yani sayının istenilen üstü hesaplanır ve p
değerine bölünür sonuç bölme işleminin kalan kısmıdır.
10. Ö R N E K
• 2 sayısının Z29 ‘da bir ilkel kökü (primitive root) olup olmadığını bulunuz ve
L2(15) ayrık logaritma değerini bulunuz.
21=2 mod 29
22= 4 mod 29
24=16 mod 29
28= 24 mod 29
…..
228 = 1 mod 29
11. A L G O R I T M A
• Anahtar Üretme
• Şifreleme
• Şifreyi Çözme
12. A N A H TA R Ü R E T M E
• Çok basamaklı büyük bir p asal sayısı belirlenir ve mod(p)
kümesinin elemanlarından bir g generator pozitif tam sayısı
belirlenir.
• Daha sonra şifreyi çözecek kişi 1<= x <= p-2 aralığında
kalacak şekilde kendisine bir özel anahtar(private key) seçer.
13. • Daha sonra public key'in bir parçası
olan y değeri y= gxmod(p) işlemi sonucu hesaplanır.
• (p,g,y) değerleri public key 3'lüsü olarak mesajlaşmak istenilen
kişiye iletilir.
14. Ş I F R E L E M E S Ü R E C I
M mesajını şifrelemek için, önce bir anahtar sunucusundan veya
şifrelenmemiş elektronik posta yoluyla açık anahtar
üçlüsünün (p, g, gx ) alınması gerekir. Bu mesajlaşma sürecinde
tek gizli anahtar x'dir ve karşı tarafa gx şeklinde gönderilir.
15. • M messaj metni (m1,m2,m3,...) tamsayı seti
şeklinde hazırlanır.({1,2,…,p-1} kümesinin elemanı olacak
şekilde)
• (Zp)× Kümesinden bir k üs değeri belirlenir.
• Rastgele üs k'yi iletmek için c1=gk mod(p) hesaplanır.
• Ayrıca c2=mi . gxk Mod(p) hesaplanır ve (c1,c2) ikilisi
çözülmek için gönderilir.
16. Ş I F R E Y I Ç Ö Z M E
Şifre çözme işleminde private anahtar olan x değişkeni
kullanılır.
Mi= ( c2 / c1
x )
17. Ö R N E K
g=3,p=101,k=6,m=5,x=2
1.aşama y'nin hesaplanması: y= gxmod(p)=32=9mod101
2.aşama şifreleme: C = (r,c)
r = gk mod(p)=729 mod101 = 22mod 101
c = m.yk mod(p)=5.96(mod101)=97 mod101 C=(22,97)
3.aşama şifreyi çözme: D= c.(r(p-1-x)modp) = 97.(2298 mod101)
= 5 mod101
18. K R I P TA N A L I Z
Geliştirilmiş ElGamal Algoritması (Hwang at al).
Anahtar üretimi ElGamal ile aynıdır.(p,g,gx) public key olarak
nitelendiriliyor ve x değeri private key olarak kullanılıyor.
Şifreleme sürecinde ElGamal'dan farklı olarak 2 adet üs değeri
seçilmektedir;r1,r2. 1< r1,r2 <= p-1.
19. • Mesaj gönderecek kişi M mesajını herbiri log2(p) değerinden
küçük olacak şekilde n parçaya böler ve her biri için şifreleme
yöntemini uygular. 0≤Mi< p.
• R1 = gr1mod(p), R2 = gr2mod(p),
• Şifre çözme işlemi için aşşağıdaki formül kullanılmaktadır.
20. 2d-1 = 0 mod(q) olsun.
Eğer n > d ise ve p değeri 2e.q+1 şeklinde yazılabiliyorsa
algoritmanın güvenliksiz olduğu savunulmaktadır.Burda q
değeri bir asal sayıdır.
21. Burdan şu sonuç çıkabiliyor:
2e(2d-1) = 0 mod(2eq) ---> 2e+d = 2emod(2eq) yani d değeri periyot oluyor.
(Me+a,Ce+a) mesaj ve şifeli hali olsun ve 0 ≤ a≤ n−e olsun.
Saldırgan 0 ≤ i ≤ n−e ve i ≡ a(mod (d)) koşulunu sağlayan bütün i'ler için Me+i
değerini bulabilir.
Bu formül bilindiğinden
Aşşağıdaki denklik elde edilir.
22. 2e+a=2e+i mod(2eq) olduğu için
Bu iki formül kullanılarak aşşağıdaki sonuç elde edilir.
Bu şekilde mesaj çözülmüş olur.
23. K AY N A K L A R
• http://bilgisayarkavramlari.com/2008/05/06/ayrik-logaritma-discrete-logarithm/
• Cryptanalysis of an ElGamal-Like Cryptosystem for EncipheringLarge
Messages
• http://bilgisayarkavramlari.com/2008/04/30/el-gamal-encryption-el-cemal-
sifrelemesi/
• http://bilgisayarkavramlari.com/2008/04/30/dairesel-grup-cyclic-group/
• meier_paper.pdf (tum.de)