GENÇ OGRETMEN
ANASAYFA
İLETİŞİM
ONLiNE DERSANE
KARİYER
EGİTİM
KULTUR-SANAT
HOBi
SPOR
GEZi
MUZiK
SAĞLIK
YAŞAM
TEKNOLOJi
SİNEMA
KiTAP
ALTERNATiF TIP
EGLENCE
OYUNLAR
ARŞİV
=> Osmanlıca dersleri
=> İslami fontlar&jijler
=> Evren bilim / Kozmik bilinç
=> Kozmik ve Beşeri Devinimler
=> Nefes Alma Teknikleri
=> CANLI YASAMIN TEMELI VE BILINCLI SIFA ENERJISI: SU
=> GİRİŞİM PRENSİBİ ve ESİR TEOREMİ
=> Kundalini Belirtileri Ve Semptomlari
=> ILAHI NUR: Bir Sunus
=> Dünyaya Zarar Vermeden Yaşamak
=> Kozmik Beden temizliği
=> Kozmik Işınlar Üzerine
=> Ankaranın Turistik Yerleri
=> ARABALAR
=> Aşık Veysel şatıroğlu Hayatı
=> Asit Yağmurları
=> Atmosfer Nedir?
=> Atomun Tarihi
=> Aya ikinci insan
=> Ayasofya Hakkıda
=> Aylar ve Anlamları
=> Azot ve Karbon Döngüsü
=> ASTROFİZİK
=> Uzun Evliliğin Formülü
=> kapadokya nasıl oluştu?
=> 18 Mart Çanakkale Zaferi
=> Kornea Nakli
=> Akupunktur Nedir
=> Bilgisayarı Kim Buldu Tarihçesi icadı
=> Bilim Ve Teknoloji
=> 1071 1453 arası önemli savaşlar olaylar
=> Ekran koruyucu indir
=> Winamp skinler
=> Beyaz Perde Yaratıkları
=> Dinozor Müzik Grupları
=> Sokakta gerilla işi sanat
=> Küresel ısınma
=> İklim değişikliğinden neden korkuyoruz?
=> Küresel ısınmanın etkileri
=> Böyle giderse neler olacak?
=> Kimler sorumlu?
=> Küresel Isınma ve Türkiye
=> Kyoto Protokolü
=> Fotoğraflarla Küresel Isınma
=> Neler Yapabiliriz?
=> Küresel Isınmaya Karşı Duranlar
=> Kaynakça
=> Herkesin kalbine giden yol midesinden geçer!
=> Kolayından Çin yemeği hazırlıyoruz
=> Çorbada tuzumuz olsun
=> Vitaminli yazı
=> Aşçıbaşı Testi
=> Mutfak canavarı
=> Modern Türk mutfağının kahramanı
=> Ah çikolata!
=> Baharat karnavalı, Hint mutfağı
=> Gözünüzü 4 Açın
=> Programlar
=> Kriptoloji
=> Michael Jackson
=> Reenkarnasyon
=> Mistisizm
=> Parapsikoloji
=> Atlantis
=> insan Beyni Allaha inanmaya Programlanmis
=> Kuran Bilimi Kurtardi
GÖRÜŞ KABİNİ
TOPLiST
DiNi YAZILAR

Ekol Hoca Din dersi Matematik Nişanlık Modelleri
Kriptoloji

“RSA Şifreleme Algoritmasının Uygulaması”

 

Arş. Gör. Halife KODAZ

Bilgisayar Mühendisliği Bölümü, Selçuk Üniversitesi, Alaeddin Keykubad Kampüsü,Konya- 2003

 

ÖZET

           

Şifreleme/deşifreleme (encryption-decryption) bir bilgisayar ağında veya kişisel bilgisayarlarda haberleşme ya da dosya güvenliğini sağlamak için kullanılır. Bu nedenle günümüzde bilgisayarlarda ya da bilgisayar ağlarında şifrelemenin önemi gün geçtikçe artmaktadır.

 

Bu çalışma da genel olarak şifreleme teknikleri hakkında bilgi verildikten sonra RSA şifreleme algoritmasına uygun olarak şifreleme ve deşifreleme işlemi yapan bir simulasyon tasarlanmıştır. Simulasyonu gerçekleştirmek için programlama dili olarak java seçilmiştir. Algoritma gereği kullanılan sayıların boyutları çok büyük olması nedeniyle java programlama dili kullanılmıştır.

           

Anahtar Kelimeler:

Şifreleme, şifre çözme, açık anahtar, gizli anahtar, düz metin, şifreli metin, kriptografi

 

1.      Giriş

 

İnternette yollanan veri paketleri birçok halka açık networklerden geçer, bu da bu paketlere ulaşmayı mümkün kılar. Son derece gizli bilgiler internette nakil olurken, bu durum önemli bir kaygı halini alır. Bu tür bilgileri korumak mümkün olmadıkça, internet iş yapmak veya gizli, şahsi yazışmalarda bulunmak asla güvenli bir yer olmayacaktır. Bilgi güvenliği başkası tarafından dinlenme, bilginin değiştirilmesi, kimlik taklidi gibi tehditlerin ortadan kaldırılması ile sağlanır ve bu amaçla kullanılan temel araç kriptografidir. Kriptografi bilgi güvenliğini inceleyen ve anlaşılabileni anlaşılamaz yapan bir bilim dalıdır. Güvenilirlik, veri bütünlüğü, kimlik doğrulama gibi bilgi güvenliği konularıyla ilgilenen matematiksel yöntemler üzerine yapılan çalışmalar kriptografinin önemli konularıdır.

 

Kriptografi genel olarak şu ana konularla ilgilenir:

Gizlilik: Bilgi istenmeyen kişiler tarafından anlaşılamamalı.

Bütünlük: Bir iletinin alıcısı bu iletinin iletim sırasında değişikliğe uğrayıp uğramadığını öğrenmek isteyebilir; davetsiz bir misafir doğru iletinin yerine yanlış bir ileti koyma şansına erişmemelidir. Saklanan veya iletilmek istenen bilgi farkına varılmadan değiştirilememeli.

Reddedilemezlik: Bilgiyi oluşturan ya da gönderen, daha sonra bilgiyi kendisinin oluşturduğunu veya gönderdiğini inkar edememeli. Bir gönderici daha sonrasında bir ileti göndermiş olduğunu yanlışlıkla reddetmemelidir. 

Kimlik belirleme: Gönderen ve alıcı, birbirlerinin kimliklerini doğrulayabilirler. davetsiz bir misafir başkasının kimliğine bürünme şansına erişmemelidir.

 

2.      Şifrelemenin Temel Elemanları

 

Bir göndericinin bir alıcıya açık ağlar üzerinden bir ileti göndermek istediği zaman, açık ağlardan gönderilen iletiler üçüncü şahıslar tarafından dinlenme ve değiştirilme tehdidi altındadırlar. Burada söz konusu ileti düz metindir. Bazı kullanımlarda plaintext adı da verilir. Bir iletinin içeriğini saklamak üzere yapılan gizleme işlemi de şifrelemedir (encryption). Bu işlem düz metini şifreli metine dönüştürür. Bilginin içeriğinin başkalarının anlamayacağı hale gelir. Bu bilgi bir yere iletilmek amacıyla şifrelenen bir mesaj veya saklanmak amacıyla şifrelenen bir bilgi olabilir. Şifrelenmiş bir ileti şifreli metindir (ciphertext). Şifreli metini düzmetine geri çevirme işlemi şifre çözümüdür (decrypt). Bu işlemler Şekil 1’de gösterilmektedir. 

 

 

Şekil 1 Şifreleme ve şifreyi çözme işlemleri

 

İleti güvenliğini sağlama bilimi kriptografidir. Matematiğin hem şifrebilimi hem de şifreanalizini kapsayan dalı kriptolojidir ve şifrebilimciler tarafından icra edilir.

 

Eğer bir algoritmanın güvenliği bu algoritmanın çalışma biçimini gizlemeye dayalıysa, bu bir sınırlandırılmış algoritmadır. Sınırlandırılmış algoritmalar günümüzün şartlarına pek uymamaktadır; bir gruba ait kullanıcılar bunları kullanamamaktadır, çünkü gruptan bir kullanıcının her çıkışında geri kalan herkesin başka bir algoritmaya geçmesi gerekmektedir. İçlerinden birisi yanlışlıkla gizleneni açığa vurduğunda, diğer herkesin algoritmalarını değiştirmeleri gerekmektedir. Daha da kötüsü, sınırlandırılmış algoritmalar kalite kontrolüne ve standartizasyona olanak tanımamaktadır. Her bir grup kullanıcının kendisine ait bir algoritması olmalıdır. Bu tür bir grup hazır şifre çözüm anahtarının yazılım veya donanım ürünlerini kullanamaz; davetsiz bir misafir aynı ürünü alıp algoritmayı öğrenebilir. Kendi algoritmalarını ve gerçekleştirimlerini kendileri yazmaları gerekir. Günümüz kriptografisi bu sorunu bir anahtar ile çözmektedir. Bu anahtar çok çeşitli değerler alabilen herhangi bir anahtar olabilir. Günümüzde kullanılmakta olan modern ve güçlü şifreleme algoritmalaları artık gizli değildir. Bu algoritmalar güvenliklerini kullandıkları farklı uzunluk ve yapılardaki anahtarlarla sağlarlar. Bütün modern algoritmalar şifrelemeyi ve şifre çözmeyi kontrol için anahtarları kullanır. Bir anahtar ile şifrelenmiş bilgi, kullanılan algoritmaya bağlı olarak, ilgili anahtar ile çözülebilir. Genel olarak anahtarın kullanımı şu şekildedir (şekil 2):

 

Şekil 2. Bir mesajın dinlenmesini önlemek için anahtar ile şifreleme.

 

 

Kullanıcı bir mesajı (m) göndermeden önce bir anahtar (k1) kullanarak şifreler. Şifreli metin (c) yasadışı dinleyicilere açık olan bir kanaldan gönderilir. Mesajı okumak için alıcı bir anahtar (k2) kullanarak şifreyi çözer ve m mesajını elde eder. Aktif düşmanlar araya girip iletişimi dinleyebilir. Eğer k1 ve k2 eşitse, sistem simetriktir. Aksi takdirde bu sistem asimetrik olarak nitelenir. Güvenliğin garantilenmesi için k2 her zaman gizli olmalıdır, ancak k1’i kullanarak k2’yi elde etmek mümkün olmadığı sürece k1 açıklanabilir. Bu durumda sisteme açık anahtarlı sistem (public key system) adı verilir.

 

Açık anahtarlı sistemler pek çok ilginç olanaklar sunar; örneğin herkes online bir mağazaya mağazanın açık k1 anahtarını kullanarak şifrelenmiş bir kredi kartı numarası gönderebilir. k2 anahtarını sadece mağaza bildiği için, kartın numarasını sadece mağaza öğrenebilir. Eğer simetrik sistem kullanılsaydı, mağaza potansiyel müşterilerinin her biriyle önceden ve gizlice ayrı ayrı anahtarlar belirlemek zorunda kalırdı. Açık anahtarlı sistemlerin güvenliği her zaman belirli matematiksel problemleri çözmenin zorluğuna dayanır, simetrik sistemler daha çok tek kullanımlık, geçici yapıdadırlar. Açık anahtarlı sistemlerin en büyük dezavantajı matematiksel yapıları nedeniyle simetrik sistemlerden daha yavaş olmalarıdır; özellikle açık anahtarlı sistemlerdeki anahtarların boyutları simetrik sistemlerin anahtarlarının boyutlarından çok daha büyüktür. Kısaca, kullanılacak şifreleme yöntemi gerçekleştirilecek uygulamaya bağlı olarak seçilir. (Şekil 3)

 

Algoritmalardaki bütün güvenlik anahtara (veya anahtarlara) dayalıdır, hiçbiri algoritmanın ayrıntılarında yer almaz. Bu, algoritmanın yayınlanabildiği ve incelenebildiği anlamına gelir. Bu algoritmayı kullanan ürünler seri üretilebilir. Bir davetsiz misafirin sizin algoritmanızı bilmesi önemli değildir; sizin özel anahtarınızı bilmedikçe, o şahıs iletilerinizi okuyamaz.

 

Şifreleme algoritmaları anahtar kullanma yöntemlerine göre genel olarak iki kategoriye ayrılmaktadır. Bu yöntemler:

 

- Gizli-Anahtar (Simetrik) yöntemleri (Geleneksel kriptolama sistemleri)

- Açık-Anahtar (Asimetrik) yöntemleri (Açık anahtar kriptolama sistemleri)

 

3.      Açık-Anahtar (Asimetrik) Şifreleme Yöntemleri

 

Bu şifreleme yöntemi iki ayrı anahtar kullanan yöntemdir. İki anahtar kullanımının; güvenirlik, anahtar dağıtımı ve onaylama alanlarında önemli sonuçları vardır. Bu kriptografi yapısında, açık ve gizli 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. 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ı (en azından makul bir zaman dilimi içerisinde) şifre anahtarından hesaplanamaz. Bu algoritmalara açık anahtarlı algoritmalar denmesinin sebebi şifre anahtarı halka (kamuya/genel kullanıma) açılabilir: Bir yabancı bir iletiyi şifrelemek için şifreleme anahtarını kullanabilir, ancak sadece ilgili şifre çözüm anahtarına sahip bir kişi iletinin şifresini çözebilir. Bu sistemde, şifre anahtarına genellikle açık anahtar denir, şifre çözüm anahtarı da genellikle gizli anahtar olarak adlandırılır. Gizli anahtar kimi zaman özel anahtar olarak da adlandırılır, ancak simetrik algoritmalarla karışmaması için bu terim genelde kullanılmaz. 

 

Bir kullanıcının açık anahtarıyla kilitlenen bir mesajı yalnız ve ancak ona ait gizli anahtar çözebilir. Aynı şekilde, herhangi bir kullanıcının gizli anahtarıyla attığı sayısal imzanın doğrulanabilmesi, yalnızca onun açık anahtarını kullanarak mümkün olabilir. Açık anahtar kamuya açıktır, elektronik kimlik belgelerinin içinde diğer kişisel bilgilerle birlikte tutulur ve herkes birbirinin açık anahtarını e-kimliklerine ulaşmak süretiyle istediği zaman elde edebilir.

 

Sayısal Şifreleme :Şifreleme açık ağlardan gönderilen bilginin başkaları tarafından görülmesinin (dinlenmesinin) istenmedigi zaman yapılır. Bunun için çift anahtarlı bir kriptografik algoritma kullanılabilir. Buna göre, mesajı gönderen taraf, gönderilen bilginin sayısal içeriğini, mesajı alacak tarafın açık anahtarını, sayısal şifrelemede kullanır. Mesajı alan taraf da, şifreli mesajı çözmek için şifreli mesajın sayısal içeriği, kendisinin gizli anahtarına gereksinim duyar.

           

Burada dikkat edilecek olursa, şifreli mesajın üçüncü taraflar tarafından dinlenebilmesi ancak “gizli anahtara” sahip olmaları ya da şifreli mesajı matematiksel yollarla deşifre etmeye çalışmaları ile mümkün olabilir. “Güvenlik açısından iyi bir şifreleme” algoritması, gizli anahtar olmadan şifreli mesajı deşifre etmeye imkan tanımıyan bir algoritmadır.

 

Sayısal İmza : Sayısal imza elektronik mesaja eklenmiş bilgidir. Çift anahtarlı bir kriptografik algoritmayla hazırlanan sayısal imza, hem gönderilen bilginin sayısal içeriğinin değiştirilmediğinin hem de gönderen tarafın kimliğinin ispatlanması için kullanılır ve gönderilecek mesajdan üretilen “mesaj özetinin” sayısal içeriği,       gönderen tarafın kendi gizli anahtarına bağlı olarak oluşturulur. Sayısal imzanın doğruluğunu kanıtlamak için mesaji alan taraf, kendisine gelen mesajin ve sayısal imzanın sayısal içeriği, gönderen tarafın açık anahtarını kullanır.

 

Açık-anahtar şifreleme için pek çok algoritma bulunmaktadır. En yaygın olan iki tanesi RSA (Ron Rivest, Adi Shamir, Leonard Adleman) algoritması ve DSA (Digital Signature Algorithm - Dijital İmza Algortiması) dır. RSA pek çok uygulamada kullanılan bir algoritmadır. Mesajları şifrelemek için kullanılabileceği gibi dijital imzalarda da kullanılabilir. DSA sadece dijital imza kullanımı içindir. Mesajları şifrelemek için kullanılmaz.

 

3.1.    Rsa Algoritması

 

1976 yılında Stanford Üniversitesinden Diffie ve Hellman adlı iki araştırmacı farklı  bir şifreleme sistemi önerdiler, bu sistemde bir tane şifreleme için(encryption key) ve bundan farklı olarak  bir tanede şifre çözmek için(decryption key) anahtar bulunmaktaydı ve decryption key encryption key den elde edilememekteydi.

 

RSA Algoritmasının içeriği ve çalışması aşağıdaki gibidir:

 

RSA Public Key Sistemi

Örnek

Hem p’nin hem de q’nun asal olduğu p ve q seçilir.

P =11; q=13;

Mod alınacak değer hesaplanır n = pq.

N = 11*13 = 143.

Euler's totient fonksiyonu uygulanır t = (p-1)(q-1).

t = (11-1)*(13-1) = 120.

T değeri ile en büyük ortak böleni 1 olan bir e değeri hesaplanır.

e = 7. (7<120, ve 7 ve 120 nin en büyük ortak böleni 1 dir

e*d = 1 mod t olacak şekilde d değeri hesaplanır

7*d = 1 mod 120 => d = 103,

çünkü

7*103 = 721 = 1 mod 120.

public key (e, n).

public key (7, 143).

Private key (d, n).

private key (103, 143).

Plaintext M olsun.

M = 5 kabul edelim.

ciphertext C = M^e mod n.

Ciphertext:

C = 5^7 mod 143= 47

Şifre çözme işlemi =>

plaintext = C^d mod n = (M^e)^d mod n = M.

Plaintext:

47^103 mod 143 = 5

47^103 = (5^7)^103 = 5^721
= 5*[5^720] =5*[(5^120)^6]
= 5*[ 1^6] = 5.

5^120 = 5^t = 1 mod 143 (Euler teoremi)veya,

daha basitçe,

x^(e*d) = x; bu sebepten, 5^721 = 5’tir.

 

3.2.    RSA Algoritmasının Önemli özellikleri

 

RSA nın yasal kullanımı ile kolayca hesaplanabilenler;

-          Birbirine uyan public/private anahtar çifti oluşturulabilir.

-          Eğer public-key varsa ,encryption ve signature verification işlemleri yapılabilir.

-          Eğer private-key varsa, decryption ve signing işlemleri yapılabilir.

 

RSA nın yasalara aykırı kullanımı ile hesaplaması çok zor olanlar;

 

-          public-key varken private-key in oluşturulması.

-          private-key yokken şifreli mesajın çözülmesi.

 

RSA şifreleme algoritmasının güvenli olmasını şu şekilde açıklanabilir:

 

Bu algoritmaya zarar vermek için bilinen en etkin yol N'in asal çarpanları olan P ve Q nun bulunmasıdır. Ancak P ve Q çok büyük asal sayılar olduğundan ötürü bulunmaları neredeyse imkansızdır. Ayrıca public key {E,N} belli iken D yi, P ve Q olmadan bulmak çok zordur.

 

4.      Sonuç

 

RSA açık anahtarlı şifreleme algoritması kullanılarak çeşitli anahtar uzunluklarında anahtarlar oluşturulmuş ve şifreleme işlemleri gerçekleştirilmiştir.  Ayrıca anahtar oluşturma süreleri ve şifreleme süreleri tablo1 de gösterilmiştir. Test süreleri uygulamanın Pentium 4 1.7Ghz Cpu’ya sahip bir bilgisayarda çalıştırılmasıyla elde edilmiştir.

 

Uygulamanın gerektirdiği güvenlik seviyesine bağlı olarak kullanılacak bit sayısı ayarlanabilir. Normal şartlarda 1024 bitlik anahtar kullanarak şifreleme sistemi oluşturmak yeterli güvenliği sağlamaktadır.

 

Tablo 1 RSA algoritmasında Farklı bit uzunluklarında anahtar oluşturma ve şifreleme süreleri

Bit Sayısı

Anahtar Oluşturma Süresi (saniye)

Şifreleme

Süresi (saniye)

64

0.021

0.011

128

0.026

0.013

256

0.083

0.015

512

0.307

0.018

1024

2.985

0.106

2048

50.432

0.766

4096

798.625

18.687

 

 

5.      Kaynakça

 

1.         Kodaz, 2002, Veri İletiminde Güvenlik İçin Şifreleme, Yüksek Lisans, S.Ü.

2.         Erhan, 1993, RSA algoritmasını kullanan şifreleme/deşifreleme yazılımının tasarımı (Data encyption/decryption methods and software design of RSA algorithm), Yüksek Lisans, İTÜ

3.         Gül, 1997, RSA tabanlı halka açık anahtarlı kripto sisteminin uygulanması (Implementation of on RSA based cryptosystem), Yüksek Lisans, ODTU

4.         Uysal, 1998, RSA, DES ve MD5 tabanlı halka açık bir kripto sisteminin geliştirilmesi (Implementation of a public key cryptosystem using RSA, DES and MD5 algorithms), Yüksek Lisans, ODTU

5.         Bellovin, 1998, "Cryptography and the Internet", In Proceedings of CRYPTO '98, August 1998

6.         Aslan, 1999, Sayısal imza sistemlerinin incelenmesi (Digital signature schemes), Yüksek Lisans, İTÜ.

7.         Saka, 2000, Bilgisayar ağ güvenliği ve şifreleme (Network security and cryptography), Yüksek Lisans, MUĞLA

8.         http://www.olympos.org, 20.03.2002

9.         http://e-kimlik.bilten.metu.edu.tr/,14.04.2002

10.       http://security.nyg.ege.edu.tr/, 15.04.2002

11.       http://www.rsa.com, 17.04.2002


REKLAM ALANI

Reklamı Kapat
Bugün 2 ziyaretçi (6 klik) kişi burdaydı!

Zirve100 Site ekle
Eğitim
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol