21 Ocak 2013 Pazartesi

Açık Anahtarlı Şifreleme Teknikleri ve RSA şifreleme Algoritması


Açık Anahtarlı Şifreleme Teknikleri ve RSA şifreleme Algoritması

Kazım TEMUR, 2001510035, ktemur@gmail.com


Şifreleme/deşifreleme bir bilgisayar ağında veya kişisel bilgisayarlarda haberleşme yada 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.

Her açık anahtar tabanlı şifreleme sistemi matematiksel zor problemlere dayanır. Örneğin RSA sisteminin güvenliği büyük sayıların faktorizasyonun zorluğuna dayanmaktadır. Bu yazıda açık anahtarlı şifreleme teknikleri ve RSA şifreleme algoritması hakkında bilgi verilmiştir.

            İnternet üzerinden yolladığımız veri paketleri halka açık networklerden geçtiği için herkesin erişimine açıktır. Gizli bilgilerimizi internet üzerinden iletmek istediğimizde bu durum önemli bir sorun halini alı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.

            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, mesela gruptan bir kullanıcının her çıkışında geri kalan herkesin başka bir algoritmaya geçmesi 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; istenmeyen kişiler 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.

            Kullanıcı bir mesajı 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 mesajı elde eder. İstenmeyen kişiler 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 adı verilir.

            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.
            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.

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ı şifre anahtarından hesaplanamaz. Bu algoritmalara açık anahtarlı algoritmalar denmesinin sebebi şifre anahtarı halka 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. Bir kullanıcının açık anahtarıyla kilitlenen bir mesajı yalnız ve ancak ona ait gizli anahtar çözebilir.

            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.


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. Bu algoritmanın güvenliği, çok büyük sayıları çarpımlarına ayırmanın zorluğuna dayanmaktadır.

Ø  Hem p’nin hem de q’nun asal olduğu p ve q seçilir.
Ø  Mod alınacak değer hesaplanır n = pq.
Ø  Euler's totient fonksiyonu uygulanır t = (p-1)(q-1).
Ø  T değeri ile en büyük ortak böleni 1 olan bir e değeri hesaplanır.
Ø  e*d = 1 mod t olacak şekilde d değeri hesaplanır
Ø  public key (e, n).
Ø  Private key (d, n).
Ø  Şifrelenecek M olsun.
Ø  Şifreli metin C = M^e mod n.
Ø  Şifre çözme işlemi => Şifrelenen metin = C^d mod n = (M^e)^d mod n = M.

Örnek:
Ø  P =11; q=13;
Ø  N = 11*13 = 143.
Ø  t = (11-1)*(13-1) = 120.
Ø  e = 7. (7<120, ve 7 ve 120 nin en büyük ortak böleni 1 dir
Ø  7*d = 1 mod 120 => d = 103,
Ø  çünkü
Ø  7*103 = 721 = 1 mod 120.
Ø  public key (7, 143).
Ø  private key (103, 143).
Ø  M = 5 kabul edelim.
Ø  Şifreli metin: C = 5^7 mod 143= 47
Ø  Şifrelenen metin: 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
                             x^(e*d) = x; bu sebepten, 5^721 = 5’tir.


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.

Matematikçiler çok büyük sayıların çarpanlarına ayrılabilmesinin gerçekten zor bir problem olduğu konusunda hemfikirdirler. Ancak bilgisayar hızlarındaki artış, p ve q sayılarını seçerken bizleri çok dikkatli olmaya zorlar. Örneğin 512 ikillik bir mod (n) kullanmak, artık çok güvenli sayılmamakta, 1024 ikil şu anki standart olarak kabul edilmektedir.



Algoritmanın Önemli Özellikleri:

v  Birbirine uyan public/private anahtar çifti oluşturulabilir.
v  Eğer public-key varsa ,encryption ve signature verification işlemleri yapılabilir.
v  Eğer private-key varsa, decryption ve signing işlemleri yapılabilir.
v  public-key varken private-key in oluşturulması çok zordur.
v  private-key yokken şifreli mesajın çözülmesi çok zordur.

Kaynaklar:
1.       Kodaz,H.; 2002, Veri İletiminde Güvenlik İçin Şifreleme, Yüksek Lisans, S.Ü.
2.       www.turkmia.org/file/452guvenlik_ teknikyonleri_baykal.doc, Güvenliğin Teknik Yönleri
3.       eros.science.ankara.edu.tr/~ozbek/kripto1.htm, Kriptografiye Giriş
4.       http://edergi.linux.org.tr/?~p=dergi&action=show&which=76, Açık Anahtarlı Kriptografi
5.       Özcan,M; Açık Anahtar Tabanlı Şifreleme Neden Zordur, Sabancı Üniversitesi

Hiç yorum yok:

Yorum Gönder

isterseniz anonim seçeneginden kayıtsız gönderebilirsiniz iyi günler