• Sonuç bulunamadı

Şifreleme algoritmalarının hızını etkileyen faktörler

N/A
N/A
Protected

Academic year: 2021

Share "Şifreleme algoritmalarının hızını etkileyen faktörler"

Copied!
80
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

T.C.

TRAKYA ÜNĠVERSĠTESĠ

FEN BĠLĠMLERĠ ENSTĠTÜSÜ

ġĠFRELEME ALGORĠTMALARININ HIZINI ETKĠLEYEN FAKTÖRLER

CANAN ASLANYÜREK

YÜKSEK LĠSANS TEZĠ

BĠLGĠSAYAR MÜHENDĠSLĠĞĠ ANABĠLĠM DALI

Tez DanıĢmanı: TARIK YERLĠKAYA

(2)
(3)
(4)

i Yüksek Lisans Tezi

ġĠFRELEME ALGORĠTMALARININ HIZINI ETKĠLEYEN FAKTÖRLER T.Ü. Fen Bilimleri Enstitüsü

Bilgisayar Mühendisliği Anabilim Dalı

ÖZET

Teknolojinin geliĢmesiyle birlikte ağ üzerinde dolaĢan bilgi miktarı günden güne artmakta ve bilgi güvenliği sorunlarını beraberinde getirmektedir.

Ağ üzerinde bulunan bilginin istenilen adrese iletimi güvenli bir Ģekilde gerçekleĢtirilmelidir. ġifreleme/deĢifreleme (encryption-decryption) bilgisayar ağlarında verilerin güvenliğini sağlamak için kullanılır.

Bilgi güvenliğinde ve dijital imzada açık anahtar Ģifreleme yöntemlerinden biri olan RSA(Rivest, Shamir, Adelman) yaygın olarak kullanılmaktadır.

Bu tezin amacı, RSA kriptosisteminin Ģifreleme ve deĢifreleme iĢlemlerini gerçekleĢtirme süresini etkileyen faktörlerin araĢtırılmasıdır.

Tez çalıĢmasında öncelikle, Ģifreleme iĢlemlerinde kullanılan matematiksel temel kavramlar ayrıntılı bir Ģekilde açıklandı. Daha sonra, simetrik ve asimetrik Ģifreleme yöntemleri ve kullanılan algoritmalar anlatıldı.

RSA kriptosisteminin Ģifreleme ve deĢifreleme iĢlemlerini gerçekleĢtirme süresini etkileyen faktörler, Ģifreleme ve Ģifre açma sürelerini kısaltmak için kullanılan algoritmalar açıklandı. Bu algoritmaların uygulamaları java programlama dili kullanılarak yapıldı, Ģifreleme, deĢifreleme süreleri hesaplanarak algoritmalar karĢılaĢtırılmıĢtır. Bu algoritmaların avantajları, dezavantajları irdelenmiĢtir.

Yıl : 2018

Sayfa Sayısı : 68

(5)

ii Master's Thesis

The Factors Affecting Speed Of Encryption Algorithms Trakya University Institute of Natural Sciences

Computational Sciences

ABSTRACT

With the development of technology the amount of information roaming through network is increasing in a daily basis, and this brings about the issues of information security. Transfer of the information the Network should be carried out safely. Encryption/decryption are used to provide safety for the data in computer Networks. In information security and digital signature, RSA (Rivest, Shamir, Adelman) which is an open key encryption method is commonly used.

The aim of this thesis is to make a research about factors that have impact upon the encryption/decryption performance time of RSA cryptosystem.

In this thesis study, firstly basic mathematical concepts used in encryption systems and the definition of RSA algorithm have been carried out in a detailed manner. Later, factors that affect the encryption/decryption performance time of RSA cryptosystem, and algorithms used to shorten encryption and decipher time have been explained.

Lastly, the implementations of these algorithms were made using the java programming language, and the algorithms were compared by calculating the encryption and decryption time. The advantages and disadvantages of these algorithms are discussed.

Year : 2018

Number of Pages : 68

Keywords : Rsa, public key cryptosystem, asymmetric encryption, speed of rsa

(6)

iii

TEġEKKÜR

Bu tez çalıĢması süresince bana önderlik yapan, tecrübeleriyle katkılarını esirgemeyen, beni destekleyen tez danıĢmanım Sayın Dr. Öğretim Üyesi Tarık YERLĠKAYA hocama teĢekkürü bir borç bilirim. Ayrıca her zaman yanımda olan, desteklerini hiçbir zaman esirgemeyen aileme ve benim için çok değerli olan eĢim Murat ASLANYÜREK‟e teĢekkür ederim.

(7)

iv

ĠÇĠNDEKĠLER

ÖZET ... i ABSTRACT ... ii TEġEKKÜR ... iii SĠMGELER DĠZĠNĠ ... vii ġEKĠLLER DĠZĠNĠ... viii ÇĠZELGELER DĠZĠNĠ... ix BÖLÜM 1 ... 1 GĠRĠġ ... 1 BÖLÜM 2 ... 3 GENEL BĠLGĠLER ... 3 2.1. Temel Kavramlar ... 3

2.2. Asal Sayılar ve Özellikleri ... 8

2. 2. 1. Fermat Asallık Testi ... 8

2. 2. 2. Miller Rabin Asallık Testi ... 9

2.2.3. Slovay & Strassen Testi ... 9

2. 3. Binary Sayı Sistemi ... 10

2. 3. 1. İkilik Sayı Sisteminde Operatörler... 10

2. 4. Kriptoloji Terimleri ... 11 2. 5. Kriptoloji ... 12 2. 5. 1. Kriptografi ... 13 2. 5. 2. Kriptanaliz ... 14 2. 6. Şifreleme Teknikleri ... 15 BÖLÜM 3 ... 16 MATERYAL VE YÖNTEM ... 16 3.1. Simetrik Şifreleme ... 16

3. 1. 1. DES (Data Encrytion Standard - Veri Şifreleme Standartı) ... 17

3. 1. 2. AES (Advanced Encrytion Standard - Gelişmiş Şifreleme Standartı) ... 18

3. 1. 3. Blowfish Algoritması ... 18

(8)

v

3. 1. 5. IDEA (Uluslararası Şifreleme Algoritması) ... 19

3. 2. Asimetrik Şifreleme(Açık Anahtarlı Şifreleme)... 19

3. 2. 1 RSA(RIVEST-SHAMIR-ADLEMAN) Şifreleme Algoritması ... 20

3. 2. 2. RSA Şifreleme Algoritmasında Güvenlik ... 23

3. 3. RSA Algoritmasında Hız ... 24

3. 4. RSA Algoritmasının Hızını Arttırmak İçin Kullanılan Algoritmalar ... 24

3. 4. 1. Hızlı Çarpım ve Üs Hesaplama Algoritmaları ... 24

3. 4. 2. Hızlı Modüler Çarpım ve Modüler Üs Hesaplama Algoritmaları ... 25

3. 4. 3. RSA Şifreleme Algoritmasında Anahtar Yönetimi ... 29

3. 4. 4. Hızlı RSA Şifre Açma Algoritmaları ... 29

3. 5. Asimetrik Şifreleme ve Simetrik Şifreleme Algoritmalarının Karşılaştırılması ... 34

BÖLÜM 4 ... 36

ARAġTIRMA BULGULARI ... 36

4. 1. Standart RSA Uygulaması ... 36

4. 2. Hızlı Mod Alma Algoritması Kullanılan RSA Uygulaması ... 37

4. 3. Binary Modüler Üs Alma Algoritması Kullanılarak RSA Uygulaması ... 39

4. 4. Montgomery Çarpım Algoritması ile RSA Çalışma Performansı ... 40

4. 5. Montgomery Radix-2 Algoritması ile RSA Çalışma Performansı ... 41

4. 6. Yüksek Güvenlikli Hızlı RSA Algoritması Çalışma Performansı ... 42

4. 7. CRT- RSA Algoritması Çalışma Performansı ... 43

4. 8. Multi-Power (Çoklu Kuvvet) RSA Algoritmasının Çalışma Performansı ... 44

4. 9. Rebalanced RSA Algoritmasının Çalışma Performansı ... 44

4. 10. Multi-Prime RSA Algoritması ... 45

4. 11. Hızlı Şifreleme Algoritmalarının Performans Karşılaştırılması ... 45

4. 11. 1. Karşılaştırma I ... 45 4. 11. 2. Karşılaştırma II ... 46 4. 11. 3. Karşılaştırma III ... 47 4. 11. 4. Karşılaştırma IV ... 48 4. 11. 5. Karşılaştırma V ... 49 4. 11. 6. Karşılaştırma VI ... 50 4. 11. 7. Karşılaştırma VII ... 51 4. 11. 8. Karşılaştırma VIII ... 52

4. 12. Hızlı Şifre Açma Algoritmalarının Performanslarının Karşılaştırılması ... 53

4. 12. 1. Karşılaştırma I ... 53

4. 12. 2. Karşılaştırma II ... 54

(9)

vi 4. 12. 4. Karşılaştırma IV ... 56 BÖLÜM 5 ... 57 TARTIġMA VE SONUÇLAR... 57 KAYNAKLAR ... 59 EK ... 65 ÖZGEÇMĠġ ... 68

(10)

vii

SĠMGELER DĠZĠNĠ

Dd ġifre açma dönüĢümü (Decryption)

Ee ġifreleme dönüĢümü (Encryption)

gcd (a, b) a ile b‟nin en büyük ortak böleni

[a,b] a ≤ x ≤ b koĢulunu sağlayan x tamsayıları C ġifreli metin

M Açık metin

, Euler Phi fonksiyonu d RSA özel anahtarı e RSA açık anahtarı

k Simetrik Ģifrelemede gizli anahtar n | m n m‟yi böler.

(11)

viii

ġEKĠLLER DĠZĠNĠ

ġekil 2.1 Kriptografinin ÇalıĢma ġekli ... 13

ġekil 3.1. Simetrik ġifreleme Algoritmasının ÇalıĢma ġekli ... 17

ġekil 3.2. Asimetrik ġifreleme Algoritmasının ÇalıĢma Sistemi ... 20

ġekil 3.3. RSA‟nın çalıĢma mantığı ... 23

ġekil 4.1 256 Bit Uzunluğunda p ve q – e = 3649134810816461 ... 45

ġekil 4.2 512 Bit Uzunluğunda p ve q - e = 3649134810816461 ... 46

ġekil 4.3. 1024 Bit Uzunluğunda p ve q - e = 3649134810816461 ... 47

ġekil 4.4. 2048 Bit Uzunluğunda p ve q - e = 3649134810816461 ... 48

ġekil 4.5. 256 Bit Uzunluğunda p ve q – 256 Bit Uzunlukta Açık Anahtar ... 49

ġekil 4.6. 512 Bit Uzunluğunda p ve q – 512 Bit Uzunlukta Açık Anahtar ... 50

ġekil 4.7. 1024 Bit Uzunluğunda p ve q – 1024 Bit Uzunlukta Açık Anahtar ... 51

ġekil 4.8. 2048 Bit Uzunluğunda p ve q – 2048 Bit Uzunlukta Açık Anahtar ... 52

ġekil 4.9. 256 Bit Uzunluğunda p, q ve e=65537 ... 53

ġekil 4.10. 512 Bit Uzunluğunda p, q ve e=65537 ... 54

ġekil 4.11. 1024 Bit Uzunluğunda p, q ve e=65537 ... 55

(12)

ix

ÇĠZELGELER DĠZĠNĠ

Çizelge 4.1. Standart RSA Uygulaması Performansı ... 36

Çizelge 4.2. Anahtar Uzunluğu ArttırılmıĢ RSA Uygulaması Performansı ... 37

Çizelge 4. 3. Hızlı Mod Alma Algoritması Kullanılarak RSA Uygulaması Performansı . 38 Çizelge 4.4. Anahtar Uzunluğu ArttırılmıĢ Hızlı Mod Algoritması Kullanılan RSA Performansı ... 38

Çizelge 4. 5. Binary Modüler Üs Algoritması Kullanılan RSA Uygulaması ... 39

Çizelge 4.6. Anahtar Uzunluğu ArttırılmıĢ Binary Modüler Üs Alma Algoritması Kullanılan RSA Performansı ... 40

Çizelge 4. 7. Montgomery Çarpım Algoritması ile RSA ÇalıĢma Performansı ... 40

Çizelge 4. 8. Anahtar Uzunluğu ArttırılmıĢ Montgomery Çarpım Algoritması Ġle RSA Performansı ... 41

Çizelge 4. 9. Montgomery Radix-2 Algoritması Ġle RSA ÇalıĢma Performansı ... 41

Çizelge 4. 10. Anahtar Uzunluğu ArttırılmıĢ Montgomery Radix-2 Algoritması Ġle RSA ÇalıĢma Performansı ... 42

Çizelge 4.11. Yüksek Güvenlikli Hızlı RSA Algoritması ÇalıĢma Performansı ... 42

Çizelge 4.12. Anahtar Uzunluğu ArttırılmıĢ Yüksek Güvenlikli Hızlı RSA Algoritması ÇalıĢma Performansı ... 43

Çizelge 4.13. CRT RSA Algoritması ÇalıĢma Performansı... 43

Çizelge 4. 14. Multi-Power RSA Algoritmasının ÇalıĢma Performansı ... 44

Çizelge 4.15. Rebalanced RSA Algoritmasının ÇalıĢma Performansı... 44

(13)

1

BÖLÜM 1

GĠRĠġ

Bilgi gizliliğinin büyük önem taĢıdığı eski çağlardan beri bilinmektedir. Bu sebeple bilginin gizli kalması için geliĢtirilen birçok yöntem bulunmaktadır. Önceleri metnin karakterlerinin yer değiĢtirmesi ve metnin Ģeklinin bozulması olarak gerçekleĢtirilen bu yöntemler, geliĢen teknolojiyle daha fazla kullanıcının yararlanacağı bir Ģekilde bilgisayarlarla yapılan yöntemlere dönüĢmüĢtür. GeçmiĢte daha çok diplomasi ve askeri alanlarda çok önemsenen bilgi gizliliği, hayatın vazgeçilmez bir parçası haline gelen elektronik ticaretin kullanılmasıyla birlikte interaktif bankacılık iĢlemlerinin de çok yaygınlaĢması ile insan hayatında çok büyük önem kazanmıĢtır. Ġnternet üzerinden yapılan alıĢveriĢlerde, bankacılık iĢlemlerinde kullanılan kiĢisel bilgilerin güvenli bir Ģekilde karĢı tarafa iletilmesi, kullanılan uygulamalar tarafından kiĢilerin ekstra bir iĢlem yapmasına gerek kalmadan otomatik olarak gerçekleĢtirilir.

Kriptoloji, Yunanca krypto‟s (saklı) ve logo‟s (kelime) sözcüklerinin birleĢmesinden oluĢmuĢ ve iletiĢimde gizlilik, veri bütünlüğü sağlayan Ģifreleme bilimi olarak değerlendirilmektedir (Schneider, 1996). Kriptoloji, kriptografi (Ģifreleme) ve kriptanaliz (Ģifre çözme) olmak üzere ikiye ayrılır. Kriptografi, haberleĢmenin güvenliğini kötü niyetli taraflara karĢı korumak için yapılan çalıĢmalar bütünüdür(Yıldırım, 2014). Kriptanaliz var olan kriptosistemlerin analizini içeren metotlar bütünüdür. KarĢı tarafa iletilmek istenen bilgi, açık mesaj (plain text) ve bu bilginin Ģifreli haline ise Ģifreli mesaj (cipher text-cryptography) denir (Stallings, 1998).

Kriptografi, simetrik ve asimetrik kriptografi olarak iki gruba ayrılır. 20. yy içinde yaygın olarak kullanılan simetrik kriptografide, Ģifreleme ve Ģifre açma iĢlemleri için gizli anahtar adı verilen tek anahtar kullanılmaktadır (OkumuĢ, 2012). Bu yöntemi kullananlar anahtar paylaĢımını güvenli bir ağda yapmalıdır. Simetrik Ģifreleme

(14)

2

algoritmalarına örnek olarak, Lucifer algoritmasından faydalanarak geliĢtirilen ve ABD tarafından FIPS olarak kabul edilen DES algoritması ve 2000‟lerde geliĢtirilen Rijndael algoritmasını temel alarak geliĢtirilen AES algoritması verilebilir (Yerlikaya, 2005).

Açık anahtarlı kriptosistem olarak adlandırılan asimetrik kriptografide genel ve özel anahtar olarak adlandırılan iki farklı anahtar kullanılır. ġifreleme iĢlemi yapılırken genel anahtar, deĢifreleme iĢleminde ise özel anahtar kullanılır. Genel anahtarı öğrenen kiĢi ĢifrelenmiĢ olan metni açamaz. Çünkü kullanılan sayıların uzunluğuna bağlı olarak genel anahtardan özel anahtarı elde etmek zordur.

1977 yılında R. Rivest, A. Shamir ve L. Adleman tarafından bulunmuĢ olan RSA( Rivest, Shamir, Adleman) algoritması asimetrik Ģifreleme algoritmalarına uygun biçimde geliĢtirilmiĢtir (Yerlikaya, 2007).

Bu tez çalıĢmasında, öncelikle genel bilgiler baĢlığı altında çalıĢmada kullanılan temel tanım ve kavramlar anlatıldı. Diğer bölümlerde RSA kriptosistemi incelenerek RSA algoritmasının hızını artırmak için yapılmıĢ olan çalıĢmalar, modüler üs hesaplama algoritmaları, RSA Ģifre açma algoritmaları (Rebalanced RSA, CRT-RSA, MultiPrimeRSA, MultiPower RSA) incelenmiĢtir. Bu algoritmaların uygulaması java programlama dili kullanılarak yapılmıĢ ve performansları değerlendirilmiĢtir.

(15)

3

BÖLÜM 2

GENEL BĠLGĠLER

2.1. Temel Kavramlar

Tanım 2. 1. 1: a>1 tamsayısı sadece kendisine ve 1‟e tam olarak bölünüyorsa bu a sayısına asal sayı denir.

Teorem 2. 1. 2: Eğer a bir asal sayı ve a| xy ise a| x veya a| y dir. Tanım 2. 1. 3: n ∈ Z+

ve n| x – y ise x tamsayısı y tamsayısına n modülüne göre denktir denir (OkumuĢ, 2012).

x ≡ y mod n Ģeklinde gösterilir.

Sonuç 2. 1. 3: a ve b sayısı aralarında asal ise ax + by = 1 olur. Bu ifade;

ax ≡ 1 mod b Ģeklinde yazılır. Burada x sayısı a sayısının çarpımsal tersi olarak da adlandırılabilir.

Teorem 2. 1. 4: x sayısının m modül sayısına göre çarpımsal tersinin olması için gerekli koĢul;

gcd (x, m) = 1 olmasıdır.

Tanım 2. 1. 5: m>1 bir doğal sayı a,b ∈ Z

ax ≡ b(mod m) Ģeklindeki denkleme bir bilinmeyenli lineer kongrüans denir. (OkumuĢ, 2012).

Öklid Algoritması

Öklid algoritması ile sayıların ortak böleni bulunur. Öklid algoritması RSA Ģifreleme algoritmasında genellikle modüle göre sayının tersini bulmak için kullanılır. ve her ikisi de 0 olmayan iki pozitif tamsayı olsun. Bölme algoritması tekrar tekrar uygulanarak aĢağıdaki eĢitlikler elde edilir.

(16)

4 ⁞

0 ile tamsayısı arasında sonlu sayıda tamsayı olduğundan bu iĢlemler sonsuza kadar gitmez. gcd( , ) = dir.

Örnek 2. 1. 6: 540 ve 168 sayılarının en büyük ortak böleni Öklid algoritması ile aĢağıdaki gibi hesaplanabilir.

540 = 168. 3 + 36 168 = 36. 4 + 24 36 = 24 . 1 + 12 24 = 12. 2 + 0

Yukarıdaki iĢlemlerde görüldüğü gibi en son sıfırdan farklı kalan sayı 12 olduğu için gcd (540, 168) = 12 olarak hesaplanmıĢ olur.

Algoritma 2. 1. Öklid Algoritması Girdi: ≥ ∈ Z+ Çıktı: Obeb ( , ) 1. While ≠ 0 do 2. r ← mod 3. ← 4. ← r 5. return ( ).

GeniĢletilmiĢ Öklid Algoritması

Öklid algoritması ax + by = gcd(a,b) denklemini sağlayan x ve y sayılarını bulmak için de kullanılabilir. Bu algoritmaya geniĢletilmiĢ Öklid algoritması denir. Bu algoritma

ax = b mod m

denklemini sağlayan x değerini bulmak için de kullanılır (OkumuĢ, 2012).

Örnek 2. 1. 7: 35x + 12y =1 olacak Ģekilde x, y ∈ Z sayılarını bulalım. Öncelikle Öklid algoritmasını kullanarak aĢağıdaki eĢitlikler elde edilir;

35 = 12. 2 + 11 12 = 11. 1 + 1

(17)

5 Bu eĢitliklerden sonra aĢağıdaki iĢlemleri yapalım. 1 = 12 – (11. 1)

=12 – (35 – 12. 2)

= 3.12 – 35 bulunur. Bu durumda, x = -1, y = 3 olarak bulunur. Yani;

35.x ≡ 1 mod 28 denklemini sağlayan x değeri x = -1 + 28.k, k ∈ Z olur, k =1 olarak alınırsa x „in en küçük pozitif tamsayı değeri 27 olur.

Algoritma 2. 2. GeniĢletilmiĢ Öklid Algoritması Girdi: a ≥ b ∈ Z+

Çıktı: ax + by = gcd (a, b) eĢitliğini sağlayan x ve y tamsayıları 1. ← 1, ← 0, ← 1 2. While (b > 0) do 3. q ← a mod b 4. r ← a – qb 5. x ← - q , y ← - q 6. a ← b, b ← r, ← , ← , ← y 7. return ( )

Tanım 2. 1. 8: f bir aritmetik fonksiyon olmak üzere m ve n sayıları aralarında asal olan sayılar;

f (m. n) = f (m) . f(n) ise f fonksiyonu çarpımsal bir fonksiyondur denir.

Tanım 2. 1. 9: (Eulerin Phi Fonksiyonu) m ∈ N olmak Ģartıyla m den küçük ve m ile aralarında asal olan pozitif tamsayıların sayısına Euler Phi fonksiyonu denir ve (m) ile gösterilir.

Teorem 2. 1. 10: Euler Phi fonksiyonu çarpımsal bir fonksiyondur. Yani, gcd (x,y)= 1 ise (x.y) = 1) . (y – 1)

Teorem 2. 1. 11: x bir asal sayı ve i pozitif bir tamsayı ise (xi ) = xi – 1 (x – 1) dir.

Teorem 2. 1. 12: (Euler Teorem) m > 1 ve gcd (x, m) = 1 ise

≡ 1 mod m dir.

Teorem 2. 1. 13: (Fermat Teorem) x bir tamsayı ve p asal bir sayı. Ayrıca x ile p aralarında asal olsun. Bu durumda

xp – 1 ≡ 1 mod p dir (Gordon, 1984).

(18)

6 p= 89 ve 20 ile 89 aralarında sayılar olduğundan Fermat Teoremine göre buna göre,

3

. 202 olarak hesaplanır.

Teorem 2. 1. 14: (Carmichael Lambda Fonksiyonu) m bir pozitif tamsayı olmak üzere, gcd (a, m) = 1 olan a ∈ Z sayısı için;

an ≡ 1 mod m

denkliğini sağlayan en küçük n sayısına Carmichael‟in Lambda fonksiyonu denir (Carmichael, 1910).

λ(m) ile gösterilir ve aĢağıdaki gibi tanımlanır.

λ(m) = {

lcm (λ( ), …….. ,λ( )) farklı asal sayılar olmak üzere; m = ∑ Teorem 2. 1. 15: p ve q asal sayılar olmak üzere;

Λ(p. q) = lcm (p – 1, q – 1) dir.

Teorem 2. 1. 16: (Çin Kalan Teoremi (CRT))

, , … ikiĢer ikiĢer aralarında asal olan pozitif tam sayılar olsun. Bu durumda; x ≡ mod

x ≡ mod (1. 1) x ≡ mod

x ≡ mod denklik sistemi m = . . …….. modülüne göre tek bir çözüme sahiptir.

Gauss Algoritması: Yukarıdaki denklik sisteminin çözümünü elde etmek için Gauss algoritması aĢağıda tanımlanmıĢtır:

Algoritma 2. 3 Gauss Algoritması Girdi: , ∈ Z+ i = 1, 2, ……, r Çıktı: Denklik sistemini sağlayan x sayısı

1. x ← 0

2. for i from 1 to r do 3. ← N /

(19)

7 4. ← mod

5. For i from 1 to r do

6. x ← x + mod m 7. Retun(x)

Özel olarak p ile q farklı asal sayılar ve m= p. q ise x ≡ mod p

x ≡ mod q lineer denklik sisteminin çözümü ;

x = . q . ( mod p) + ( . p . ( mod q) mod m olarak elde edilir.

Garner Algoritması: (1. 1) denklik sisteminin çözümü için kullanılan diğer bir yöntem Garner algoritmasıdır.

Algoritma 2. 4. Garner Algoritması Girdi: , ∈ Z+

i = 1, 2, ……, r

Çıktı: (1. 1) denklik sisteminin çözümündeki x sayısı 1. For i from 2 to r do 2. ← 1 3. For j from 1 to i – 1 do 4. u ← mod 5. ← u. mod 6. u ← , x ← u 7. For from 2 to r do 8. u ← ( – x) . mod 9. x ← x + u . ∏ 10. return (x)

Tanım 2.1.18: Güçlü Asal Sayı Algoritması q, , , asal sayılar olmak Ģartıyla

q – 1 sayısının en büyük asal çarpanı - 1 sayısının en büyük asal çarpanı q + 1 sayısının en büyük asal çarpanı

, , sayıları asal sayı olacak Ģekilde üretilen asal sayısına güçlü asal sayı denir (Gordon, 1984).

(20)

8 Bu teorem P mod n değeri bilinirken P mod n2

değerinin kolay bir Ģekilde hesaplanması esasına dayanır.

P mod n2 = P mod n + nP1

P0 = P mod n ve Xn = nP1 kabul edilsin

C = Pe mod n2 = (P0 + Xn)e mon n2 =

=

= (

P mod = P0 + mod n) ( mod bu eĢitlik kuvvet RSA‟nın

deĢifreleme iĢleminin hızlanmasını sağlamıĢtır (Shoup, 2009).

2.2. Asal Sayılar ve Özellikleri

Kriptografi, hesaplamalı sayı teorisi, bilgi bilimi ve bilgisayar bilimlerinde asal sayılar büyük önem taĢımaktadır. Üstelik bu sayılar hızlı bir Ģekilde üretilmektedir. Asimetrik Ģifreleme ve dijital imzalarda asal sayılar kullanılır. Asal sayılar için keĢfedilmiĢ bir seri henüz bulunmamıĢtır. Sıradaki asal sayının bulunması sayı üreteçleri ile yapılmaktadır. Bu sayılar daha sonra asallık testine tabi tutulmaktadır. Bir sayının asal olup olmadığını test etmek için birkaç algoritma vardır.

2. 2. 1. Fermat Asallık Testi

Bir n tamsayısı verildiğinde bu sayının asal olup olmadığını anlamanın en belirgin yolu n sayısının faktörlerini araĢtırmaktır. Ancak etkili bir factoring algoritması bilinmemektedir. Bu test Fermat teoremine bağlıdır. Teoreme göre p asal sayısı verildiğinde n-1≥ a ≥ 1 olacak Ģekilde herhangi bir a sayısı için an-1≡1 (mod n) dir. Bu

eĢitliği sağlamayan, bu aralıkta bir a sayısı seçildiğinde n sayısının asal olup olmadığı ispatlanması için yeterlidir. n asal olmayan bir sayı olsun n-1≥ a ≥ 1 ve a≠1 olan bir a sayısına bir Fermat Tanığı denir (Yerlikaya, 2006).

2.2.1. Algoritma

1. a ∈ {2,3,…..,n-1} rastgele a sayısı seçilir. 2. an-1 (mod n) hesapla.

3. if an-1≠1(mod n) ise return “sayı asal değildir.” 4.return “ sayı asaldır.”

(21)

9 2. 2. 2. Miller Rabin Asallık Testi

Bu test Gary Miller tarafından geliĢtirilmiĢtir. Bu teste aynı zamanda “Güçlü Asallık Testi” denilmektedir. Çok yaygın kullanılmasına rağmen sayının kesin olarak asal olduğunu söylemez, testi geçebilen sayı olası asal sayı geçemeyen sayı ise kesinlikle asal değildir(Yerlikaya & Kara, 2017).

Bu teste göre öncelikle n>2 olmak Ģartıyla bir n tek sayısı seçilir. n-1=2sr (r sayısı tek olmak Ģartıyla)

s ve r değerleri hesaplanır. [1,n-1] aralığında bir a sayısı seçilir. Bu durumda; ar ≡1 mod(n) veya (Formül 1)

0 ≤ i ≤ s-1 olmak Ģartıyla V=2i r

aV≡-1(mod n) (Formül 2)

Formül 1 veya formül 2‟deki eĢitliklerden biri sağlanırsa a sayısı n tabanı için güçlü Ģahit olarak kabul edilir ve n sayısı da güçlü asal olarak kabul edilir. (Yerlikaya & Kara, 2017).

Örnek 2.2.2.1: n=1729 olsun 1728 > a > 1 aralığından a sayısı 671olarak seçilisin. 1729 – 1=1728 =26. 27 böylece s=6 ve r=27 oldu.

67127≡1084 (mod 1729) 67127.2≡10842 (mod 1729) ≡ 10652

≡ 1 (mod1729)

Olduğundan dolayı n sayısı 1729 bileĢik sayıdır, asal değildir(Berlekamp, 1984). Örnek 2.2.2.2: n=577757, n-1=22. ⋅144439

s=2, r=144439 a sayısı a=314997 olarak seçilsin. 314997144439≡373220 (mod 577757)

3149972.144439 ≡ 577756 ≡ -1 (mod 577757) olduğundan n sayısı olası bir asal sayıdır (Berlekamp, 1984).

2.2.3. Slovay & Strassen Testi

Açık anahtarlı Ģifrelemede kullanılan ilk test Slovay&Strassen testidir. Bu algoritma Miller Rabin asallık testinden daha yavaĢ çalıĢmaktadır. Bu test de sayının asal olup olmadığını anlamak için Jacobi sembolü kullanılmaktadır (Karaarslan, 2001).

(22)

10 2. 3. Binary Sayı Sistemi

Ġkilik sayı sistemi, sayıların 0 ve 1 rakamları kullanılarak ifade edilmesi yani iki tabanında yazılmasıyla elde edilir. Ġkilik (Binary) sayı sisteminde her bir basamağa bit, basamak sayısına ise bit uzunluğu denir. Bilgisayarlarda verilerin iĢlenmesi (1) ve (0) rakamları ile gerçekleĢir. (1) sayısı bilgisayardan bir elektrik akımının geçtiğini, (0) ise akım olmadığını ifade eder. Örneğin ikili tabanda 101102 Ģeklinde yazılan sayı 5 bit

uzunluğundadır ve k bit uzunluğundaki sayı

= ∑ Ģeklinde yazılır.

2. 3. 1. Ġkilik Sayı Sisteminde Operatörler

Bit bazında operatörler, binary sayı sisteminde bir sayının bitleri üzerinde iĢlem yapmak için hem donanım hem de yazılım bazında kullanılırlar. Bu operatörlerin bazıları aĢağıda tanımlanmıĢtır.

VEYA (OR) Operatörü

Bu operatörde verilen iki sayısının bitleri kontrol edilir eğer herhangi bir bit 1 ise geriye 1 değerini döndürür. Donanımda bu iĢlemi gerçekleĢtiren devre elemanı VEYA kapısıdır (OR Gate) ve “|” sembolü ile gösterilir.

VE (AND) Operatörü

Verilen 2 bit değerini kontrol eder ve eğer iki bit değeri 1 ise geriye 1, aksi olan her durumda 0 değerini döndürür. Donanımda bu iĢlemi gerçekleĢtirilen devre elamanına VE kapısı (AND Gate) denir ve “&” sembolü ile gösterilir.,

Örnek: 11012 sayısının 10012 sayısı ile VE operatörü ile bit bite iĢlem yapılması

sonucunda elde edilen sayı 10012 sayısı olur.

DEĞĠL (NOT) Operatörü

Bu operatör, giriĢindeki değeri tersine çevirir. Yani 1 gördüğü yeri 0; 0 değerini 1 yapar. Donanımda bu iĢlemi gerçekleĢtiren devre elemanına DEĞĠL kapısı (NOT Gate) denir ve genellikle “~“ sembolü ile gösterilir.

XOR ( ^ ) Operatörü

XOR ( Exclusive OR ) Operatörü, giriĢindeki iĢaretler birbirinden farklı olduğu zaman çıkıĢ 1 olarak verir, diğer tüm hallerde 0 verir.

Sola Kaydırma (Shift-Left)

(23)

11

bitler bir sol pozisyona geçer ve en sağa bir 0 adet eklenir. Bu iĢlemi ifade etmek için genellikle “<<” sembolü kullanılır.

Örnek: 4 bitlik 01112 sayısı bir defa sola kaydırıldığı zaman 11102 sayısı elde edilir. Bir

bit sola kaydırma iĢlemi yapıldığı zaman sayının integer değeri 2 ile çarpılmıĢ olur. Yani bir sayının ile çarpmak sayıyı i bit sola kaydırmak demektir.

Sağa Kaydırma (Shift-Right)

Ġkilik sayı sisteminde sağa kaydırma iĢlemi uyguladığında o blok üzerindeki tüm bitler bir sağ pozisyona geçerler. En sağdaki bit yok olur ve en sol bite 0 değeri verilir. Bu iĢlemi ifade etmek için genellikle “>>” sembolü kullanılır.

Örnek: 4 bitlik 01112 bit bloğunu bir defa sağa kaydırıldığı zaman 00112 sayısı elde

edilir. Sağa bir bit kaydırma iĢlemi yapıldığı zaman sayının integer değerini 2‟ye bölmüĢ olursunuz. Yani bir sayının ile bölümünden elde edilen bölümü bulmak için sayıyı i bit sağa kaydırmak gereklidir.

2. 4. Kriptoloji Terimleri

En basit tanımla açıklanacak olunursa terminoloji; terimleri ve bu terimlerin kullanım yerlerini inceleyen bir bilim dalıdır. Kriptoloji alanında sıkça kullanılan terimler aĢağıda tanımlanmıĢtır.

Açık Metin (Plain Text-M): Ġçeri gizlenecek olan bilginin ilk halidir. Düz metin olarak da adlandırılan açık metin, üzerinde herhangi bir oynama yapılmamıĢ mesajdır.

Şifreleme (Encryption-E): Bir iletinin içeriğini gizlemek için yapılan veri gizleme iĢlemidir. Ġçerik anlaĢılmayacak bir Ģekilde Ģifreli bir metne dönüĢtürülür. ġifreleme iĢlemi mesajı gönderen tarafından gerçekleĢtirilir.

Şifreli Metin(Ciphertext-C): Verinin standart ya da özel algoritmalar ile ĢifrelenmiĢ yani içeriğinin gizlenmiĢ haline denir.

Şifre Açma (Decryption-D): ġifreleme sürecinden geçerek Ģifrelenen mesajı alan kiĢinin açık metne ulaĢmasıdır.

Kriptosistem: ġifreleme ve deĢifreleme iĢlemlerini gerçekleĢtiren sistem veya algoritmaların tümüne kriptosistem denir.

Anahtar (Key- K): Verinin Ģifrelenmesi ve Ģifreli metnin çözümü için gerekli olan sayısal, görsel veya nesnel değerler.

(24)

12

Simetrik Şifreleme: Hem Ģifreleme hem de Ģifre açma iĢlemlerinde aynı anahtarın kullanıldığı Ģifreleme sistemidir.

Asimetrik Şifreleme: ġifreleme ve Ģifre açma iĢlemlerinde farklı iki anahtarın kullanıldığı bir Ģifreleme sistemidir. Bu anahtarlardan biri bilindiğinde diğeri kolay bir Ģekilde üretilemez.

Açık Anahtar(Public Key): Her kriptosistemde bulunmayan, herkesin görebileceği ve kullanabileceği anahtar. Açık anahtarlı Ģifreleme sistemlerinde bulunur. ġifreli mesajı alacak tarafın üretmiĢ olduğu ve mesajları Ģifrelemek için kullanılan anahtardır.

Gizli Anahtar (Secret Key): Simetrik kriptosistemlerde, hem Ģifreleme hem de Ģifre açma iĢlemlerinde ortak olarak kullanılan anahtardır. Ġki kiĢinin kendi arasında anlaĢarak belirlediği anahtardır. Bu anahtarı iki kiĢinin dıĢında kimse bilmez. KarıĢıklığı önlem adına simetrik sistemlerdeki anahtar gizli, asimetrik sistemlerdeki anahtar özel olarak adlandırılır.

Özel Anahtar (Private Key): Asimetrik sistemlerde, kiĢinin sadece kendisine ait olan anahtarıdır. Bu anahtar baĢka kimse ile paylaĢılmaz. ġifreli metni çözmek ve açık metne ulaĢmak için kullanılır.

Blok Şifreleme: Blok Ģifreleme, açık metni bitiĢik bloklara bölerek, her bloğu Ģifreleyerek Ģifreli metin blokları elde etme yöntemidir. Açık metinde yer alan birbirine eĢit blokların Ģifreli metin bloklarının da aynı olması bu sistemlerin dezavantajıdır.

M: açık metin uzayının her bir elemanına açık metin denir M ile gösterilir. C: ġifreli metin.

K: anahtar uzayının bir cümlesini belirtir. K

nın bir elemanı anahtar olarak adlandırılır. e ∈ K anahtar uzayının her bir elemanı için, Ģifreleme iĢlemi C = (M) Ģeklinde bir dönüĢümü belirtir. E dönüĢümünü bir M mesajına uygulama iĢlemi genellikle M‟nin Ģifrelenmesi olarak adlandırılır.

d ∈ K anahtar uzayının her bir elemanı için Ģifre açma iĢlemi M = (C) Ģeklinde bir dönüĢüm belirtir.

2. 5. Kriptoloji

Kriptoloji, Yunanca “kryptos” (gizli) ve “logos”(bilim) kelimelerinin birleĢtirilmesinden oluĢmuĢtur ve mesajın değiĢtirilerek iletilmesini hedefleyen Ģifreleme bilimidir (Aksuoğlu, A. 2010). Ġlk kriptolog 4000 yıl önce yaĢamıĢ Mısırlı bir kâtiptir.

(25)

13

Kriptografi(Ģifreleme) ve Kriptanaliz (Ģifre çözme) olmak üzere iki ana dala ayrılmıĢtır (Yerlikaya vd, 2007).

Kriptografi, mesajın içeriğini gizleme ve mesajı yeniden eski hale dönüĢtürmek için kullanılan yöntemleri inceleyen bilim dalıdır. Bu Ģifreleme ve deĢifreleme iĢlemlerini gerçekleĢtiren algoritmalara kriptosistem denilir.

Tarihine bakıldığı zaman Ġkinci Dünya SavaĢı zamanında ortaya çıkmıĢtır. Bu savaĢ süresince ülkelerin stratejilerinin düzenlenmesinde kriptoloji önemli bir yere sahiptir. Bu süreçte gönderilmek istenen, baĢkası tarafından okunması istenmeyen bilgiler farklı Ģifreleme teknikleri kullanılarak karĢı tarafa iletilmiĢtir. Böylece kriptoloji o dönemlerde haberleĢmenin önemli bir parçası olmuĢtur.

2. 5. 1. Kriptografi

Kriptografi, gizlilik, güvenlik gibi kavramlarını gerçekleĢtirmek için çalıĢan ve matematiksel yöntemlerden oluĢan bir bilimdir. BaĢka bir deyiĢle Kriptografi, okunabilir halde olan bir mesajın istenmeyen taraflarca okunmasını engellemek için bilgiyi okunamayacak hale getiren, veriyi yalnızca yetkili kiĢinin okuyabileceği ve verilerin güvenli bir Ģekilde iletilmesini sağlayan tekniklerin tümüne denir. Verilerin karĢı tarafa güvenli bir Ģekilde aktarılması için belli matematiksel yöntemlerden geçerek kodlanması gerekmektedir. Bu kodlama iĢlemini gerçekleĢtiren algoritmalara kripto algoritması denir. Bu iĢlemler Ģekil 2. 1‟de gösterilmektedir.

ġekil 2.1 Kriptografinin ÇalıĢma ġekli

Modern kriptografi algoritmaları üç aĢamadan oluĢur. Bunlar;

 Anahtar oluĢturma (Key Generation)

(26)

14

 DeĢifreleme (Decryption)

Kriptografi güçlü ya da zayıf olabilir. Kriptografinin gücü, Ģifreli metni açık metne dönüĢtürmek için gereken süre ve kullanılan araçların kapasitesiyle ölçülür. Ayrıca güçlü olan kripto algoritmaları karĢılaĢılacak her türlü tehdide karĢı güvenlik prensiplerini karĢılamalıdır.

2. 5. 2. Kriptanaliz

Kriptografi Ģifrelerin oluĢturulması ile ilgili bir bilim iken, kriptanaliz Ģifrelerin kırılmasıyla ilgilidir. Kriptanaliz Ģifreleme algoritmalarının açığını değerlendirmede önemli bir araçtır. Kriptanaliz, bir Ģifreleme sisteminde gerekli kontrolleri yaparak orijinal verilere ulaĢmayı amaçlar, sistemin analizini yaparak zayıf ve kuvvetli yönlerini ortaya koyar (OkumuĢ, 2012). En yalın tanımıyla kriptanaliz, Ģifrelenen sistemleri kırma bilimi veya sanatıdır. BaĢka bir deyiĢle, kriptografide Ģifrelenen mesajlar, kriptanaliz bilimi ile kırılmaya çalıĢılır (Aksuoğlu, 2010). Ayrıca kriptanaliz, kod kırma (codebreaking) olarak da adlandırılmaktadır. ġifreleme sistemlerinde güvenlik oluĢturulan anahtarın gizliliğine bağlıdır, algoritmanın gizliliği ile bir ilgisi yoktur. Eğer yöntem gizli olsa kimse o algoritmanın güvenli olup olmadığından emin olamaz.

Analizin amacı, açık metni ya da anahtarı elde etmektir. Bir kripto-analizci Ģifreleme algoritmasının bütün detaylarına sahiptir sadece anahtar gizlidir (Kerckhoff‟s Prensibi). Analizci algoritmada kullanılan gizli anahtarın bir kısmını ya da tamamını elde ederse amacına ulaĢmıĢ olur. Bir kriptosistemin güvenliğinin belirlenmesinde bazı prensipler vardır (Stinson, 2005).

Gizlilik: Bilgiye sadece yetkili kiĢilerin eriĢilebilir olmasıdır. Bilgiye yetkisi olmayan kimsenin eriĢememesidir. Gizlilik prensibine bakıldığı zaman, ağ trafiğinin denetlenmesi, Ģifre(parola) verilerinin çalınması, yetkililerin gözetlenmesi ve sisteme kimlerin girip girmediğinin kontrol edilmesi gibi durumlarda değerlendirilir.

Kimlik Doğrulama: Bir veri alıĢ veriĢi durumunda alıcının ve ya göndericinin doğru kiĢi olduğundan emin olunması için kimlik belirlenir. Kısaca tanımlanırsa bir bilgisayar sistemine giriĢ yaparken parolanın girilmesi de kimlik doğrulama iĢlemidir. Bu yöntem mesajı alan tarafın, asıl alması gereken kiĢinin olup olmadığını belirler ve veri güvenli yere ulaĢtığını garanti eder. ġifrelemede göndericiden emin olmak için mesajlara imzalar

(27)

15

eklenir. Bazı algoritmalar kullanılarak oluĢturulan imzalar, alıcı taraf ta belirli yöntemlerle doğrulanabilir.

Bütünlük: Veriyi göndericiden çıktığı haliyle alıcı tarafa ulaĢtırılmasıdır. Bütünlük veri iletiminde oldukça önemlidir. Çünkü gönderilen iletinin karĢı tarafa herhangi bir değiĢikliğe uğramadan ulaĢtığından emin olunmalıdır. Yani, veri karĢı tarafa iletildiğinde veride herhangi bir eksiklik, yeni eklemeler ya da verideki bilgilerin sırasında herhangi bir değiĢiklik olmadan alıcısına iletilmelidir.

Güvenilirlik: Sistemin tutarlı bir Ģekilde çalıĢmasıdır.

İnkar Edememe: Bir mesajı alıcı ya da gönderici tarafın inkar etmemesi durumudur. Bu Ģekilde her iki tarafta mesajı inkar etmez ve böylece iki taraf sırasında çıkan herhangi bir sorun daha kısa sürede çözüme ulaĢtırılır.

2. 6. ġifreleme Teknikleri

ġifreleme algoritmaları anahtar oluĢturma ve kullanım biçimlerine göre simetrik (tek anahtarlı) ve asimetrik (çift anahtarlı) olmak üzere iki gruba ayrılırlar (Koblitz, 1994).

(28)

16

BÖLÜM 3

MATERYAL VE YÖNTEM

3.1. Simetrik ġifreleme

Simetrik Ģifreleme algoritmaları Ģifreleme ve Ģifre çözme iĢlemlerini gerçekleĢtirmek için gizli anahtar (private key) adı verilen tek bir anahtar kullanır. Bu yüzden simetrik kriptosistemlere gizli anahtarlı Ģifreleme de denilmektedir. Simetrik Ģifreleme algoritmaları kullanılarak gönderici taraf mesajı Ģifrelemek için öncelikle bir anahtar üretir ve mesajı Ģifreler. Kullanılan bu anahtar gizlidir ve Ģifreleme iĢlemini yapan ile Ģifreyi çözecek (deĢifreleme yapacak olan) kiĢiler tarafından bilinen, gönderici ve alıcı tarafta kullanılan ortak bir anahtardır. HaberleĢme içinde olan iki taraf anahtar için anlaĢır ve bu iĢlemi gizli tutar. Gönderilecek mesajla birlikte oluĢturulan gizli anahtar da metine eklenerek önceden anlaĢılmıĢ olan alıcıya birlikte, aynı anda gönderilir. Her iki tarafta veri iletiminin güvenli olduğundan emin olmalıdır. Çünkü anahtar birinin eline geçerse mesaj çok rahat bir Ģekilde okunabilir. ġifre çözme iĢlemi de bu anahtar kullanılarak gerçekleĢtirilir. Bu ĢifrelenmiĢ olan mesajı açmak istediği zaman da aynı anahtarı kullanarak ve algoritmayı tersten çalıĢtırarak Ģifre açma iĢlemini gerçekleĢtirir. Bu algoritmanın iĢleyiĢi ġekil 3. 1.‟de verilmiĢtir.

(29)

17

ġekil 3.1. Simetrik ġifreleme Algoritmasının ÇalıĢma ġekli

ġifreleme ve Ģifre çözme iĢlemlerini hızlı bir Ģekilde gerçekleĢtirdiğinden dolayı simetrik Ģifreleme algoritmaları yaygın olarak kullanılmaktadır. Fakat, Ģifrelenen mesaj alıcıya gönderilirken gizli anahtarın da güvenli bir Ģekilde alıcı tarafa gönderilmesi gereklidir. Bu da gizli anahtarın güvenli bir Ģekilde iletilmesi sorununu ortaya çıkarır. DES, AES, Blowfish, RC5, Twofish algoritmaları simetrik Ģifreleme algoritmalarına örnek olarak verilebilir (Tsunoo, 2002). Simetrik kriptosistemler kullanımı kolay ve hızlı olduğundan asimetrik (açık anahtarlı Ģifreleme) Ģifrelemeye göre daha avantajlıdır.

3. 1. 1. DES (Data Encrytion Standard - Veri ġifreleme Standartı)

DES simetrik Ģifreleme algoritması 1970‟lerde IBM tarafından geliĢtirilen ve en yaygın kullanılan simetrik Ģifreleme algoritmalardan biridir. Veri ġifreleme Standardı, 64 bitlik bir anahtar kullanarak 64 bitten oluĢan veri bloklarını Ģifrelemek ve deĢifrelemek üzere tasarlanmıĢ bir blok Ģifredir (Mandal, Parakash & Tiwari2012). DES algoritmasında anahtar uzunluğu 64 bit olsa da asıl DES tarafından kullanılan anahtar 56 bit uzunluğundadır. Bugüne kadar kaydedilen ve DES'in zayıflıklarını kullanan pek çok saldırı ve yöntem vardır, bu da onu güvensiz bir blok Ģifresi haline getirmiĢtir. DES algoritmasındaki eksiklikler Triple DES olarak bilinen yeni bir algoritma ile düzeltilmeye çalıĢılmıĢtır. Zayıflıkları ile ilgili artan endiĢelere rağmen, DES, yaygın olarak on-line uygulamaları korumak için dünya çapında finansal hizmetler ve diğer sektörler tarafından yaygın olarak kullanılmaktadır (Stallings, W. (2003).

3-DES, üç farklı anahtar ile art arda üç kez algoritmayı uygulayarak DES'in anahtar boyutunu geniĢletir. Her biri 56 bit uzunluğunda olan 3 anahtarla çalıĢtığından toplamda 168 bit uzunluğunda bir anahtarla çalıĢır.

(30)

18

3. 1. 2. AES (Advanced Encrytion Standard - GeliĢmiĢ ġifreleme Standartı)

DES Ģifreleme algoritmasına göre daha güvenli olan AES Ulusal Standartlar Enstitüsü (NIST) tarafından 2001 yılında önerilmiĢtir. DES algoritmasının zayıf yönlerinin düzeltilmesiyle oluĢturulmuĢ ve 128, 192 ve 256 bit uzunluğundaki anahtarlarla çalıĢabilir. Algoritma, kullanılan anahtar uzunluğuna göre AES – 128, AES – 192, AES – 256 olarak adlandırılır. AES algoritması tur dönüĢüm bloğu ve anahtar üretim bloğu denilen iki bloktan oluĢmaktadır (Singh, Singla & Sandha, 2011). AES tekrarlı bir algoritma olduğu için, açık metni almak ve Ģifrelemek için 128 bitlik anahtarda 10 tur, 192 bitlik anahtarda 12 tur, 256 bitlik anahtarda 14 turdan(tekrar) geçer (Singh & Kinger, 2013). Farklı anahtar uzunlukları ile çalıĢtığından esnek bir yapısı vardır. Bellek alanı az olan alanlarda kullanımı sıkıntı yaratmaz. Donanım ve yazılımda iyi performans gösterir (Singh, Singla & Sandha, 2011).

3. 1. 3. Blowfish Algoritması

Blowfish, Ģifreleme ve verilerin korunması için etkin bir Ģekilde kullanılabilen simetrik bir blok Ģifreleme algoritmasıdır. Blowfish, 1993 yılında Bruce Schneier tarafından tasarlandı. 32 bitten 448 bite kadar değiĢken uzunlukta bir anahtarla çalıĢır. Blowfish, patentsiz ve lisanssızdır ve tüm kullanımlar için ücretsiz olarak kullanılabilir (Thakur & Kumar, 2011). Bu algoritma en az 4 gb uzunluğunda bir alana ihtiyaç duyar. Blowfish karmaĢık anahtar çizelgesine sahip olduğundan Ģifrenin kırılması zorlaĢmıĢtır (Thakur & Kumar, 2011)

3. 1. 4. RC2 Algoritması

RC2 1987 yılında RSA güvenlik Ģirketi için tasarlanmıĢ bir algoritmadır. Ron Rivest tarafından tasarlanmıĢtır. RC harflerinin “Rivest Cipher” simgelediği tanımlanmıĢ olsa da büyük bir çoğunluk tarafından “Ron‟s Code” ‟u simgelediğini düĢünülür. DES algoritmasının yerine düĢünülen ve DES algoritmasından yaklaĢık olarak 3 kat daha hızlı çalıĢan bir algoritmadır. 64 bitlik anahtarla çalıĢır. Anahtara gerek duyulduğu zaman 40 ile 88 bit arasında herhangi bir uzunlukta bir anahtar ek olarak kullanılabilir. Ayrıca, RC2 hızlı bir Ģifreleme ve DES'in optimize edilmiĢ bir versiyonu değildir. BeĢ AES finalistinden herhangi birinin RC2'den daha yüksek verim üretmesi muhtemeldir (Singh, Singla & Sandha, 2011).

(31)

19 3. 1. 5. IDEA (Uluslararası ġifreleme Algoritması)

International Data Encryption Algorithm olarak adlandırılan IDEA algoritması 1990 yılında James Massey ve Xuejia Lai tarafından bulunmuĢ bir blok Ģifreleme algoritmasıdır. 1991 yılında tasarlanmıĢtır. Bu algoritma DES algoritmasının geliĢtirilmiĢ halidir. IDEA algoritması, 128 bit uzunluğunda bir anahtar kullanarak 64 bitlik açık metni 64 bitlik blok Ģeklinde Ģifreler (Hoffman, 2007). ġifrelenmek istenen 64 bit uzunluğundaki metin 16 bitlik 4 parçaya bölünür. Bugün, AES gibi 128 bitlik Ģifreleme sistemleri nedeniyle, IDEA eskidir, ancak öğrenciler için, bu algoritma DES ile AES arasında bir köprü kurmalarına yardımcı olan faydalı bir öğretim aracı olabilir. IDEA algoritmasını anlayabilmek için modüler ekleme ve modüler çarpımın biliniyor olması gereklidir. IDEA kriptanalitik saldırılara karĢı dayanıklı olduğundan hala yaygın bir kullanımı vardır (Meier, 1993).

3. 2. Asimetrik ġifreleme(Açık Anahtarlı ġifreleme)

Genel anahtar Ģifreleme sistemi olarak da adlandırılan asimetrik Ģifreleme, ilk kez Whitfield Kiffie ve Matin Hellman tarafından sunuldu. Bu Ģifreleme sisteminin temel amacı Ģifreleme ve Ģifre çözme iĢleminin farklı anahtarları kullanmasıdır. Genel anahtar Ģifreleme, daha önce sözü edilen simetrik Ģifreleme sisteminde anahtar dağıtım konusundaki eksikliği giderir. Genel anahtar Ģifreleme sisteminde, ilk kez birbiriyle karĢılaĢan iki yabancı bile, Ġnternet aracılığıyla karĢılıklı iletiĢim için anahtar çifti alabilir. Asimetrik kriptosistemlerde açık (public) ve özel (private) anahtar olarak adlandırılan iki ayrı anahtar kullanılmaktadır. Açık anahtarlı Ģifreleme olarak da adlandırılan bu Ģifreleme algoritmalarında, Ģifreleme ve Ģifre açma iĢlemlerinde kullanılan anahtar birbirinden farklıdır. Böylece simetrik kriptosistemlerde yapılmak zorunda olan anahtar takas iĢlemine gerek duyulmaz (Çenesiz & Soğukpınar, 2000). Asimetrik Ģifreleme algoritmalarının tüm güvenliği Ģifre açma anahtarının sadece yetkili alıcı tarafından bilinmesidir. Her ne kadar her iki anahtar birbirinden farklı olsa da Ģifreleme anahtarı bilindiğinde Ģifre açma anahtarını elde etmek, teorik olarak olası, ancak pratikte çözümsüz bir problemdir.

Bu Ģifreleme algoritmalarında, bir genel anahtar ve bu anahtarla arasında matematiksel bir bağ bulunan özel anahtar üretilir. Genel anahtardan özel anahtarı elde etmek zor

(32)

20

olduğundan genel anahtarı ele geçiren biri mesajı deĢifre edemez. Asimetrik sistemlerin çalıĢma sistemi Ģekil 3. 2.‟de gösterilmiĢtir.

ġekil 1.2. Asimetrik ġifreleme Algoritmasının ÇalıĢma Sistemi

Asimetrik kriptosistemler ilk kez Whitfield Diffie ve Martin Hellman tarafından 1975 yılında yayınlanan makalede tanıtılmıĢtır ( Diffie & Hellman, 1976). Günümüzde en çok bilinen asimetrik Ģifreleme algoritmaları;

 RSA Rivest-Shamir-Adleman, 1977

 Eliptik Eğri Miller-Koblitz, 1986

 El-Gamal Taber ElGamal, 1985

Asimetrik Ģifreleme algoritmalarının genel olarak iki kullanım alanı vardır: ġifreleme ve dijital imza.

3. 2. 1 RSA(RIVEST-SHAMIR-ADLEMAN) ġifreleme Algoritması

RSA Ģifreleme sistemi asimetrik Ģifreleme algoritmalarının en bilinenidir (Bellare & Rogaway,1994). RSA, MIT çalıĢanı olan Ron Rivest, Adi Shamir ve Len Adleman tarafından 1977 yılında bulunmuĢ ve bu üç kiĢinin soyadlarının baĢ harfleri birleĢtirilerek isimlendirilmiĢtir. Martin Gardener, 1977 yılında yazılan bir makalede RSA‟nın buluĢundan bahsetmiĢtir. Bu yöntem basit bir matematiksel hesaba dayandırılarak geliĢtirilmiĢtir (Yıldırım, 2006). Daha sonra asimetrik kriptosistemlere uygun olacak Ģekilde geliĢtirilmiĢtir. Hem mesaj Ģifreleme hem de dijital imza iĢlemlerinde güvenli bir Ģekilde kullanılır (Koltuksuz, Güvenlik & Denetimi, 1998).

(33)

21

S/MIME, PEM, MOSS ve PGP gibi gizli elektronik haberleĢme protokolleri RSA Ģifreleme algoritmasını kullanır (Yerlikaya, 2006). RSA Ģifreleme algoritması Ģifrelemenin yanında imzalama için de kullanılan algoritmadır (Verma, & Garg, 2011).

RSA kriptosisteminde kullanılan genel ve özel anahtar mesajı almak isteyen tarafından üretilir. Genel anahtar herkesin kullanımına açıktır. Alıcıya mesaj göndermek isteyen taraf bu genel anahtar ile mesajı Ģifreler ve karĢıya gönderir. Alıcı gelen mesajı daha önceden ürettiği gizli anahtar ile açar ve orijinal mesajı elde eder.

3. 2. 1. 1. RSA Algoritmasının ÇalıĢma Yapısı

RSA kriptosisteminde Ģifrelenecek olan mesaj öncelikle [0, N-1] arasındaki pozitif tamsayı bloklar haline dönüĢtürülür (Yerlikaya, 2006). AĢağıda RSA algoritmasının çalıĢma yapısı anlatılmıĢtır.

Anahtar Oluşturma Algoritması:

 YaklaĢık olarak eĢit bit uzunluğuna sahip, birbirinden bağımsız p ve q gibi iki büyük asal sayı seçilir.

 Bu asal sayıların çarpımı N = p.q ve bu sayıların bir eksiklerinin çarpımı (N) = (p-1) . (q-1) değeri hesaplanır.

 1 < e < (N) ve (N) ile aralarında asal olan bir e sayısı seçilir.

 GeniĢletilmiĢ Öklid algoritması ile seçilen bu e sayısının mod (N)‟e göre tersi hesaplanır; sonuç d gibi bir tamsayıdır. d ≡ e-1 mod (N)

 Alıcı tarafın genel anahtarı e, N, özel anahtarı ise d, N olur.

RSA kriptosistemindeki bu anahtar üretim algoritmasında oluĢan N sayısına modülüs, e herkes tarafından bilinen genel anahtar ve d ise özel anahtar olarak adlandırılır. P ve q sayılarının çarpımı sonucu elde edilen N sayısı hem Ģifreleme hem de Ģifre açma iĢlemlerinde kullanılır.

Şifreleme İşlemi:

 Gönderici, veriyi alacak tarafın açık anahtarı olan e, N‟ yi bulur.

 ġifrelenecek olan metin, M ∈ [N – 1] olmak Ģartıyla bir tamsayıya dönüĢtürülür.

 ġifrelenecek metnin e‟ninci kuvveti alınıp ve mod N‟ye göre karĢılığı hesaplandığında Ģifreli metin oluĢturulmuĢ olur. C mod N

(34)

22 Şifre Açma İşlemi:

Alıcı taraf açık metni elde edebilmek için M mod N iĢlemini gerçekleĢtirir. ġifre açma iĢleminin doğrulaması aĢağıda gösterilmiĢtir:

1 mod N

e. d 1 mod e. d k. + 1

k . M M mod N

RSA Ģifreleme algoritmasında anahtar oluĢturulurken asal sayılar kullanılmasının amacı, asal sayıların çarpanlarına ayrılmasının diğer sayılara göre daha zor olmasıdır. Böylece üretilen anahtarın elde edilmesi daha zor olmaktadır.

Örnek 3. 1. : Anahtar üretimi:

 Ġki asal sayı seçilsin p = 13, q = 11

 N = p.q değeri N = 13.11 =143

 (N) = (p-1) . (q-1) = 12.10 =120

 (N) ile aralarında asal ve 1 < e < (N) koĢulunu sağlayan bir e sayısı seçelim. 1 < e < 120 , e= 7 olsun.

 1 < d < (N) ve e.d 1 mod (N) koĢulunu sağlayan d = 103‟tür.

 Alıcı tarafın genel anahtarı e = 7, N = 143, gizli anahtarı d = 103, N =143 olur. Şifreleme işlemi:

 Alıcı taraf genel anahtar olan e=7, N=143 sayılarını gönderici tarafa herkes tarafından görülebilecek Ģekilde gönderir.

 Göndericinin açık metni M=9 olsun.

 Gönderici taraf C ≡ 97

mod 143 koĢulunu sağlayan C = 48 sayısını bulur.

 Gönderici taraf C = 48 sayısını herkes tarafından ulaĢılabilecek bir kanal ile karĢı tarafa gönderir.

Şifre Açma işlemi:

(35)

23

ġekil 3.3. RSA‟nın çalıĢma mantığı

3. 2. 2. RSA ġifreleme Algoritmasında Güvenlik

RSA Ģifreleme algoritmasının güvenliğine en fazla zarar verecek durum d gizli anahtarının bir kriptanalist tarafından bulunmasıdır. Bu gizli anahtarın bulunması da ortak modülüsün yani N sayısının çarpanlarına ayrılması ile gerçekleĢir. Bu sebepten dolayı, çarpanlarına ayrılması ne kadar zor olan sayılar kullanılırsa güvenlik de o kadar artar. Çünkü eğer ortak modülüs (N) kolay bir Ģekilde çarpanlarına ayrılırsa p ve q sayıları ile e genel anahtarı elde edilir ve bu anahtar aracılığıyla da d özel anahtarı çok basit bir Ģekilde elde edilebilir.

RSA kriptosisteminde güvenlik çok büyük asal sayıların çarpanlarına ayrılması varsayımına dayanmaktadır. Fermat ve Legendre gibi ünlü matematikçiler büyük sayıların çarpanlarına ayrılmasının zorluğu üzerine çalıĢmalar yapmıĢlardır (IEEE P1363 Working Group. 2005). Tam sayıların çarpanlarına ayrılmasına yönelik geliĢtirilen algoritmalar iki grupta incelenir.

(36)

24

Bazı çarpanlara ayırma algoritmaları aracılığı ile sayıların çarpanlarına ayrılabilme zamanı, bu sayıların belirli özelliklere sahip olmasına bağlı olmaktadır (Bach & Shallit, 1989). Bu grupta bulunan algoritmaların en önemlilerinden bazıları Ģunlardır:

1. Pollard p −1 algoritması: Bu algoritma kullanılarak belirli bir sonuca ulaĢma

zamanı p −1 sayısının en büyük asal çarpanıyla ile orantılıdır (Pollard, 1974).

2. Lenstra Eliptik eğri çarpanlarına ayırma algoritması: Bu algoritma kullanılarak belirli bir değere ulaĢma süresi en küçük asal çarpanın büyüklüğü ile orantılıdır (Montgomery, 1987).

3. William p + 1 algoritması: Bu algoritma kullanıldığında da belirli bir değeri elde

etme süresi p+1 sayısının en büyük asal çarpanı ile orantılıdır (Williams, 1982). Pollard p − 1 ve William p + 1 algoritmalarına karĢı güvenliği sağlayabilmek için kullanılan algoritmaya güçlü asal sayı algoritması denir (Gordon, 1984).

Genel Sayı Cisim Elemesi algoritması, günümüzde kullanılan en hızlı çarpanlara ayırma yöntemidir. Bu yöntem kullanılarak 768 bit uzunluğundaki bir sayının asal çarpanları elde edilmiĢtir (Kleinjung vd, 2010).

3. 3. RSA Algoritmasında Hız

RSA Ģifreleme algoritmasının güvenilirliğini arttırmak için çok büyük asal sayılar kullanılır. ġifreleme ve deĢifreleme iĢlemi bu çok büyük asal sayılar kullanılarak gerçekleĢtirildiğinden dolayı sonuca ulaĢma süresi artmaktadır. Bu yüzden çok büyük mesajların RSA ile Ģifrelenmesi çok uygun görülmez (Stallings, 1995). RSA Ģifre açma süresi büyük Ģifre çözme üssüne sahip olduğundan Ģifreleme süresinden daha uzundur ġifreleme ve Ģifre açma sürelerini kısaltmak için çeĢitli algoritmalar geliĢtirilmiĢtir. Bu algoritmaları üç grupta inceleyelim.

3. 4. RSA Algoritmasının Hızını Arttırmak Ġçin Kullanılan Algoritmalar

3. 4. 1. Hızlı Çarpım ve Üs Hesaplama Algoritmaları

Hızlı çarpma yapmak ve üs hesaplamak için çeĢitli algoritmalar geliĢtirilmiĢtir (Gordon, 1998). Bu bölümde modüler çarpma algoritmalarında kullanılan bazı temel algoritmalar, hızlı çarpım ve üs hesaplama algoritmaları verilecektir.

(37)

25 3. 4. 1. 1. Binary Çarpım Algoritması

Bu algoritmanın amacı iki sayının hızlı bir Ģekilde çarpılmasıdır. Bu iĢlemi gerçekleĢtirmek için de binary sayı sisteminin bazı özellikler kullanılmaktadır.

Algoritma 3. 1. Binary çarpma algoritması Girdi: b, = 1 olmak Ģartıyla; a = ….. )2

Çıktı: a.b 1. S ← 0

2. For i from t downto 0 do 3. S ← S + S

4. if (ai = 1) then S ←S+b

5. return (S)

3. 4. 1. 2. Binary Üs Hesaplama Algoritması

Bu algoritma be değerini hesaplamak için geliĢtirilen bir üs hesaplama algoritmasıdır. Binary çarpım algoritmasına benzer iĢlemlere sahiptir.

Algoritma 3. 2. Binary üs hesaplama algoritması Girdi: b, et = 1 olmak koĢuluyla; e = ….. )2

Çıktı: S = be

1. S ← 0

2. For i from t downto 0 do 3. S ← S * S

4. if (bi = 1) then S ←S * b

5. return (S)

3. 4. 2. Hızlı Modüler Çarpım ve Modüler Üs Hesaplama Algoritmaları

Modüler kalan hesaplama algoritmaları RSA kriptosisteminin hızlanması için büyük öneme sahiptir. Çünkü RSA kriptosisteminde Ģifreleme ve deĢifreleme iĢlemleri yapılırken çok büyük sayılar için modüler kalan hesaplanması gerekmektedir.

(38)

26

3. 4. 2. 1. Montgomery Modüler Çarpım Algoritması

Peter Montgomery tarafından tasarlanan bir algoritmadır. Bu algoritma birtakım donanım elemanları kullanılarak bölme iĢlemi gerçekleĢtirmeden modüler kalan değerini daha hızlı bir Ģekilde hesaplamaktadır (Montgomery, 1985).

Algoritma 3. 3. Montgomery modüler çarpım algoritması

Girdi: a =( ….. )2, b= ( ….. )2, = 1 olmak Ģartıyla; N = ( ….. )2,

R=2k Çıktı: MONT(a,b) = a . b . R-1 mod N 1. R ← 2k 2. N ' ← - N-1 mod R 3. P ← a . b 4. U ← (P mod R). N ' mod R 5. C ← (P + U. N) / R 6. if (C > N) then C ← C – N 7. return (C)

3. 4. 2. 2. Montgomery Radix-2 Çarpım Algoritması

Montgomery Radix-2 algoritması da Peter Montgomery tarafından geliĢtirilmiĢtir. Radix- 2 algoritmasında modüler kalan hızlı bir Ģekilde hesaplanır. Fakat bu algoritma ikili sayı sisteminde ve belirli donanım desteği ile daha hızlı çalıĢır.

Algoritmanın genel yapısı aĢağıda verilmiĢtir;

Algoritma 3. 4. Montgomery radix-2 çarpım algoritması

Girdi: a =( ….. )2, b= ( ….. )2, = 1 olmak Ģartıyla; N = ( ….. )2,

Çıktı: MONT(a,b) = a.b.2-k mod N 1. S ← 0 2. For i from 1 to k – 1 do 3. if (ai = 1) then S ←S + b 4. if (S mod 2) = 1 then S ←S + N 5. S ←S / 2

(39)

27

3. 4. 2. 3. Montgomery Radix-4 Çarpım Algoritması

Montgomery Radix-2 algoritmasının geliĢtirilmesi ile ortaya çıkan modüler kalan hesaplayan bir algoritmadır. Algoritmanın genel yapısı aĢağıda verilmiĢtir (Öksüzoğlu, 2008).

Algoritma 3. 5. Montgomery radix-4 çarpma algoritması

Girdi: a = ( ….. )2, b= ( ….. )2, = 1 olmak Ģartıyla; N = ( ….. )2,

Çıktı: MMr4(a,b,N) = a.b.2-k mod N 1. S ← 0 2. For i from 1 to k + 1 by 2 do 3. S ← S + Booth{ , } * b 4. if ({ , } + { , }) % 4 == 0 then S ← S + N 5. else if ({ , } + { , }) % 4 == 0 then S ← S + 2N 6. else if ({ , } − { , }) % 4 == 0 then S ← S – N 7. S ← S / 4 8. Return (S)

3. 4. 2. 4. Montgomery Çarpımı Kullanarak Modüler Üs Hesaplama Algoritması Bu algoritma binary modüler üs hesaplama algoritması ve Montgomery çarpım algoritmasının belirli iĢlemler neticesinde bazı adımlarının bir arada kullanılması ile modüler üs hesabı yapar. Algoritmanın genel yapısı aĢağıda verilmiĢtir.

Algoritma 3. 6. Montgomery modüler üs hesaplama algoritması

Girdi: m = ( ….. )2, = 1 olmak Ģartıyla; e = ( … )2, x, R = 2k

Çıktı: ax

mod m

1. x ← MONT(x,R2 mod m), A ← R mod m 2. For i from t downto 0 do

3. A ← MONT(A,A)

4. if ( = 1) then A ← MONT(A,x) 5. A ← MONT(A,1)

(40)

28 3. 4. 2. 5. Hızlı Mod Alma Algoritması Girdi: M,e,N Çıktı: Me mod N e binary formata dönüĢtürülür. 1. en= ∑ (0,i) 2i,……, 2. K=1, P=M 3. for i=0 to e do 4. P= P2 mod N 5. if ei =1 then 6. P= K.P mod N 7. P= P2 mod N 8. Return P End End

3. 4. 2. 6. Binary Modüler Üs Alma Algoritması Girdi: M,e,n , e=(ek-1ek-2….e1e0)

Çıktı: C=Me

mod n

1.if ek-1=1 then C=M else C=1

2.for i=k-2 downto 0 2a. C=C.C (mod n)

2b. Ġf ei=1 then C= C.M (mod n)

3. return C

3. 4. 2. 7. Yüksek Güvenlikli Hızlı RSA Algoritması

1. Adım: Ġki büyük asal sayı seçilir P ve Q., Ayrıca R1,R2 iki random sayı seçilir. 2. Adım : N1=P*Q*R1*R2, N2=P*Q

3. Adım: 1 = (P-1) * (Q-1)*(R1-1)*(R2-1)

4. Adım: 1 < E < 1 olmak Ģartıyla E açık anahtar seçilir. GCD (E, 1 ) = 1 5. Adım: Özel anahtar D hesaplanır. D *E= 1*mod ( 1 )

(41)

29 Açık Anahtar: (E, N1) Özel Anahtar: (D, N2) ġifreleme

C = ME mod (N1) DeĢifreleme M = CD mod (N2)

3. 4. 3. RSA ġifreleme Algoritmasında Anahtar Yönetimi

RSA algoritmasının çalıĢma süresini azaltabilmek için kullanılan açık anahtar ve özel anahtar sayıları küçültülebilir. Ancak hem Ģifreleme hem de deĢifreleme iĢlemlerinde anahtar uzunluklarını küçük seçmek pek mümkün değildir.

ġifreleme süresini azaltmak için e sayısı e = 3 olarak alınabilir. Ancak e sayısının bu kadar küçük bir sayı olarak kullanılması büyük bir güvenlik sorunu teĢkil eder. Bundan dolayı, daha hızlı ve güvenli Ģifreleme ve deĢifreleme yapmak için e=65537 sayısı standart olarak kullanılır. Açık anahtarın bir kısmı olan bu e=65537 sayısı, RSA, CRT-RSA, Multi-Prime-CRT-RSA, R-Prime ve Multi-Power-RSA Ģifreleme algoritmalarında standart olarak kullanılır (Sun, Ting, & Hinek, 2007). Ancak genel olarak yapılan çalıĢmalar neticesinde, RSA Ģifreleme algoritmasında anahtar uzunluğunun çok kısa olması, sistemin güvenliğini tehdit ettiği ortaya konmuĢtur (Hinek, 2009).

3. 4. 4. Hızlı RSA ġifre Açma Algoritmaları

RSA kriptosisteminde deĢifreleme iĢlemini daha hızlı gerçekleĢtirebilmek için bazı algoritmalar sunulmuĢtur (Aksuoğlu, 2010). Bu algoritmalar RSA Ģifreleme algoritması üzerinde birtakım değiĢiklikler yapılarak elde edilmiĢtir.

3. 4. 4. 1. CRT-RSA

CRT-RSA algoritmasında anahtarların oluĢturulması ve Ģifreleme iĢlemlerinin gerçekleĢtirilme aĢaması orijinal RSA Ģifreleme algoritması ile aynıdır. Fakat, Ģifre açma iĢlemi standart RSA algoritmasından farklı olup, Çin Kalan Teoreminin kullanılmasıyla orijinal RSA deĢifreleme iĢleminden çok daha hızlı bir Ģekilde gerçekleĢtirilir. CRT – RSA algoritmasının çalıĢma yapısı aĢağıda anlatılmıĢtır.

Anahtar oluşturma:

(42)

30

 N = p.q ve (N) = (p −1).(q−1) hesaplanır.

 gcd (e, (N)) = 1 ve 1<e< (N) koĢullarına uyan rastgele bir e sayısı seçilir.

 GenelleĢtirilmiĢ Öklid algoritması yardımı ile dp ve dq değerleri hesaplanır.

dp ≡ e-1 mod (p−1)

dq ≡ e-1 mod (q−1)

 Alıcının açık anahtarı e, N, özel anahtarı ise p, q, dp, dq olur.

Şifreleme işlemi:

 Gönderici, alıcı tarafın açık anahtarı olan e, N ‟ yi elde eder.

 Açık metni, M ∈ [0, N−1] koĢuluna uyacak Ģekilde bir tamsayıya dönüĢtürür.

 ġifreli metni, C ≡ Me

mod N olarak hesaplar.

 Gönderici Ģifreli metin C‟ yi bilgiyi alacak tarafa gönderir. Şifre açma işlemi:

 Ġlk olarak Cp ve Cq değerleri hesaplanır.

Cp ≡ C mod p

Cq ≡ C mod q

 Ġkinci olarak Mp ve Mq değerleri hesaplanır.

Mp ≡ Cpdp mod p

Mq ≡ Cqdq mod q

 Son olarak Garner algoritması kullanılarak açık metin elde edilir. M = Mp + p. (Mq− Mp)p-1 mod q

3. 4. 4. 2. Multi-Prime RSA Algoritması

Boneh ve Shacham tarafından Ģifre çözme ve dijital imzalamayı hızlandırmak için Multi-Prime RSA algoritması tasarlanmıĢtır. Multi-Prime RSA algoritmasında N ortak modülüsü standart RSA algoritmasında olduğu iki asal sayıdan oluĢmaz. N sayısı k tane asal sayıdan oluĢur. N sayısının daha küçük uzunlukta çok asal sayının çarpımından oluĢması hızlı iĢlem yapmayı sağlayan sebeplerden biridir. DeĢifreleme yapabilmek için yine Çin Kalan Teoremi kullanılır (Collins, Hopkins, Langford, & Sabin, 1998). Multi-Prime RSA çalıĢma yapısı aĢağıda açıklanmıĢtır.

(43)

31 Anahtar oluşturma:

 EĢit bit uzunluğuna sahip bit uzunluğa sahip b tane p1, p2, p3,…..pk asal sayıları seçilir.

 N = ∏ değeri hesaplanır.

 (N) = ∏ ) değeri hesaplanır.

 gcd (e, (N)) = 1 ve 1<e< (N) koĢullarına uyan rastgele bir e sayısı seçilir.

 i = 1,2,3,….,k olmak üzere; di = e-1 mod (pi ) değerleri hesaplanır.  Alıcının açık anahtarı e, N, özel anahtarı ise pi, di, N olur.

Şifreleme işlemi:

 Gönderici, alıcı tarafın açık anahtarı olan e, N ‟ yi hesaplar.

 Açık metni, M ∈ [0, N−1] aralığındaki bir tamsayıya dönüĢtürür.

 ġifreli metin, C ≡ Me

mod N iĢlemi yapılarak hesaplanır.

 Gönderici Ģifrelenen metni C‟ yi alıcıya gönderir. Şifre çözme işlemi:

 Ġlk olarak Ci değerleri hesaplanır.

Ci ≡ C mod pi

 Ġkinci olarak Mi değerleri hesaplanır.

Mi ≡ Cidpi mod pi

 Son olarak Gauss algoritması kullanılarak açık metin elde edilir ∑ .(N pi) . ((pi N) mod pi)) mod N

3. 4. 4. 3. Multi-Power RSA Algoritması

MultiPower RSA Takagi tarafından sunulan bir algoritmadır. Bu algoritma ile Ģifre çözme ve dijital imzalama süreleri kısaltılmıĢtır. Multi-Power RSA algoritmasında b>=2 olmak Ģartıyla, eĢit uzunluğa sahip p ve q sayıları seçilerek, N = pb

.q olarak değiĢtirilmiĢtir. AĢağıda b=2 değeri için anahtar oluĢturma, Ģifreleme ve Ģifre çözme iĢlemleri aĢağıda verilmiĢtir.

Anahtar oluşturma:

 Aynı uzunluktaki p ve q asal sayıları seçilir.

(44)

32

 '(N) = (p − 1)(q − 1) değeri hesaplanır.

 (e, '(N)) = 1 ve 1<e< '(N) koĢulunu gerçekleĢtiren bir e sayısı seçilir.

 d = e-1 mod '(N) değeri hesaplanır.  dp = d mod (p – 1), dq = d mod (q – 1).

 Alıcının açık anahtarı e, N, özel anahtarı ise {p, q, dp, dq} olur.

Şifreleme işlemi:

 Gönderici, alıcının açık anahtarı olan e, N‟ yi hesaplar.

 Orijinal metni, M ∈ [0, N−1] koĢuluna uygun olarak bir tamsayıya dönüĢtürür.

 ġifrelenen metin, C ≡ Me

mod N olarak hesaplanır.

 Gönderici taraf Ģifrelenen metni, C‟ yi alıcıya gönderir. Şifre çözme işlemi:

 Ġlk olarak Cp ve Cq değerleri hesaplanır.

Cp ≡ C mod p

Cq ≡ C mod q

 Ġkinci olarak Mp ve Mq değerleri hesaplanır.

Mp ≡ Cpdp mod p

Mq ≡ Cqdq mod q

 ≡ M mod p2 değeri Hensel-Lifting teoremi yardımı ile hesaplanır.  Son olarak Garner algoritması kullanılarak açık metin elde edilir. C ≡ + p2 . (Mq − ). (p-2 mod q) hesaplanır.

3. 4. 4. 4. Rebalanced CRT-RSA Algoritması

Rebalanced CRT-RSA algoritması CRT-RSA algoritmasının Ģifre çözme iĢleminin süresinin azaltmak için tasarlanmıĢtır. ġifreleme iĢlemi standart RSA algoritması ile aynıdır. Bu algoritmada anahtar oluĢturulurken öncelikle dp ve dq sayıları oluĢturulur. Daha sonra Çin Kalan Teoremi kullanılarak d sayısı hesaplanır ardından da e sayısı bulunur. Bu algoritma ile deĢifreleme süresi kısalırken, e değeri neredeyse sayısı ile eĢit büyüklüğe sahip olacağından Ģifreleme iĢleminin süresi artar.

Rebalanced CRT-RSA algoritmasının anahtar oluĢturma, Ģifreleme ve Ģifre çözme iĢlemleri aĢağıda açıklanmıĢtır.

(45)

33 Anahtar oluĢturma:

 Aynı uzunluktaki p ve q asal sayıları seçilir.

 n = p.q ve = (p −1) . (q − 1) hesaplanır.

 gcd (dp, p −1) = ve gcd (dq, q −1) = 1 Ģartlarını sağlayan rastgele dp ve dq sayıları

seçilir.

 Garner algoritması kullanılarak d hesaplanır. d = dq + q.( dq − dp) mod q

 e.d ≡ 1 mod denkliğini sağlayan sayısı e hesaplanır.

 Alıcının açık anahtarı e, n, özel anahtarı ise {p, q, dp, dq} olur.

Şifreleme işlemi:

 Gönderici, alıcının açık anahtarı olan e, n‟ yi eldeeder.

 Orijinal metni, M ∈ [0, n−1] koĢuluna uygun olarak bir tamsayıya dönüĢtürür.

 ġifrelenen metni, C ≡ Me

mod n olarak hesaplar.

 Gönderici Ģifrelenen metni C‟ yi alıcıya gönderir. Şifre çözme işlemi:

 Ġlk olarak Cp ve Cq değerleri hesaplanır.

Cp ≡ C mod p

Cq ≡ C mod q

 Ġkinci olarak Mp ve Mq değerleri hesaplanır.

Mp ≡ Cpdp mod p

Mq ≡ Cqdq mod q

 Son olarak Garner algoritması kullanılarak açık metin elde edilir. M = Mp + p. (Mq− Mp)p-1 mod q

3. 4. 4. 5. R-Prime RSA

Rebalanced RSA ve Multi-Prime-RSA algoritmalarının birleĢtirilmesi ile oluĢturulan bir hızlı Ģifre açma algoritmasıdır. ġifreleme iĢlemi Multi-Prime-RSA algoritması ile aynıdır. Anahtar oluĢturma, Ģifreleme ve Ģifre çözme iĢlemleri aĢağıda anlatılmıĢtır.

Referanslar

Benzer Belgeler

Dans, oyun açısından olduğu kadar gölge oyunu açısından da önemli bir dönem olan İmparator Wu'nun tahtta bulunduğu süre (İ.Ö.140-86) içinde, saraya bağlı bir musiki

- Tragedya kahramanları arasında kanbağına dayanan ya da yönetsel ilişkilere veya mitolojik bağlara dayanan ilişkiler üzerinden söz/hareket/adım ile birleşimlerin

ANCAK, MODERN DRAM SANATI İLE İLİŞKİ KURARAK, 21.YÜZYIL DANS SANATÇISININ TOPLUMSAL VE BİREYSEL ANALZİLERLE BU KAVRAMLARI. GÜNÜMÜZE TAŞIMASINI SAĞLAYAN

Genellikle ana giriş kapısının üzerinde bulunan bu pencereler, vitray sanatının en renkli çalışmalarının uygulandığı ve katedrallerin en etki bırakan motiflerinden

500’lerde ölümsüz bir gelişim gösterdikten sonra, kendi Antik Yunan uygarlığında bile bir kaç yüzyıl olduğu gibi çok da büyük eklenmeler olmadan

Sınırsız bir hünere, yılların birikimi olan deneyime, kuşaktan kuşağa aktarılan bir oyun çıkarma geleneğine dayanan, kendinden sonraki yüzyılları etkilemiş bir

Şöyle ki, bale o dönemlerde bir şenlik kutlaması görünümündeydi; bir soylunun doğumu, düğünü, bir utkunun kutlanması, şölen eğlenceleri ve soylulararası ziyaretler bale

• Sabit hızla kuruma evresinde hava hızının artması konveksiyonla ısı iletimini artırdığından kuruma hızı artar,. • Materyalin yüzey alanı arttıkça kuruma hızı