RSA Algoritması ve Manuel Şifreleme

'Saruca

Uzman üye
4 Ocak 2020
1,098
751
tnziel

konu-araligi-6ed4dec158f5ad778.png


# Konu İçeriği #

* Kriptografi Nedir?
* Kriptografi Terimleri
* Kriptografi'nin Önemi
* RSA Algoritması
*
RSA Manuel Şifreleme

konu-araligi-6ed4dec158f5ad778.png


Kriptografi Nedir?


Kriptografi, şifreleme olarak bildiğimiz "Kriptoloji"nin alt birimi olarak bilinir. Kriptoloji, Yunancadan dilimize kadar gelmiştir. Türkçe anlamı "Gizli Yazı"dır. Gizli yazı denmesinin nedeni şifreleme yapılmasıdır. Yani verinin, üçüncü kişiler tarafından anlam çıkarılamayacak bir yapıya getirilmesine şifreleme denmektedir ve bu kullanılan yöntemlerin tümüne verilen isimdir.


Kriptografi Terimleri


Plaintext: Yazının şifrelenmemiş hali, düz metin.
Ciphertext: Yazının şifrelenmiş hali, şifreli metin.
Cipher: Yazıyı şifreleyen algoritma, şifreleme algoritması.
Encryption: Yazıyı şifrelenmiş şekline getirme.
Decryption: Yazıyı şifrelenmiş şekline getirme.
Encoding: Şifrelenmiş yazıyı şifrelenmemiş haline getirme.
Key: Şifrelenmiş yazıyı çözmek için gereken bazı bilgiler.
Asymmetric Encryption: Yazıyı şifrelemekte ve çözmekte farklı anahtarlar kullanılır.
Symmetric Encryption: Yazıyı şifrelemekte ve çözmekte aynı anahtarlar kullanılır.

Passphrase: Anahtarı korumak için kullanılan şifreye benzeyen yapı.


Kriptografi Terimleri


Kriptografi'nin önemi bilgi güvenliğinde ortaya çıkmaktadır. Bildiğiniz üzere şifreleme yaparak verinin, üçüncü şahıslar tarafından okunmamasını sağlamakta. Burada da ortaya kimlik denetimi, gizlilik gibi kavramlar girmektedir. Bir verinin ulaşacağı yerin sadece anlaması için önemli diyebiliriz.

konu-araligi-6ed4dec158f5ad778.png


RSA Algoritması

b08edc97034acd1f06c0af3e60b2a280.png


RSA algoritması, aslında matematik formülleri ile oluşturulmuş bir şifreleme algoritması diyebiliriz. RSA algoritması "p" ve "q" harfleriyle tanımlanmış asal sayılardan oluşmaktadır. Bu asal sayılar seçilir. RSA algoritmasına kaba taslak olarak baktığımızda bu algoritmanın 5 adet formülden oluştuğunu dile getirebiliriz. Yine bu formüller matematiksel olarak göz önüne gelmektedir. Hadi gelin size sırasıyla formülleri gösterelim.

Formüller

Birinci formülümüz "p" ve "q" harflerine aralarında asal olmak üzere iki adet asal sayı seçmeliyiz.
İkinci formülümüz, iki asal sayının çarpımı olarak bilinir. Bu çarpıma "
n" harfi verilir. Formülümüz ise "n=p*q" şeklinde yazılır.
Üçüncü formülümüz, totient bulmak oluyor. Bunun da formülü "totient=(p-1)*(q-1)" şeklindedir. Totient iki şekilde gösterilir. "𝓹" ve "p{n}" olarak bilinir.
Dördüncü formülümüz totient sayısı bulunduktan sonra bir "e" sayısı seçilerek yapılır. Bu e sayısı "1" sayısından büyük ve "totient" sayısından küçük olmalıdır. Bunun da gösterimi "1<e<𝓹" olacaktır. "e" sayısı kesinlikle rastgele sayı değildir. totient ile aralarında asal sayı olmak zorundadır.

"e" sayısının bulunması sonucu ortaya açık anahtar (public key) bulunur. Bu da "(n,e)"dir.
Sıra geldi kapalı anahtarı bulmaya. Bunun için belirlenen formül ise "d.e≡1(mod(p{n}))" Bundan sonra kapalı (private key) bulunur. O da "(n,d)"dir.

Örnek bir çözüm gösterelim.

p=13, q=19 diye alalım. Şimdi n'yi bulalım. Bunun için iki sayıyı çarpacağız. Sonucu "n=247" çıkacaktır. Şimdi sıra geldi totient sayısını bulmaya. Burada verilen formül aklınızı karıştırmasın. Asal sayı olduğu için p ve q'nun bir eksiğini alıp çarpın. Yani "12*18=216" olacaktır. Şimdi bulduklarımızı yerine yazalım.

p=13, q=19, n=247, p{n}=216 sırada açık dördüncü formül var hemen yapalım.
1<e<216 (asal olacak) e=11 olacaktır.
şimdi d'yi bulalım. "d.11≡1mod(p{n}))" = "11d-1=mod(216)" burada "11d-1" 216'nın katı olacak. "k" tam sayı olacaktır. Hemen hesaplayalım.
216*3=648, 648+1 =649, 649/11 = 59

"d" sayımız buradan 59 çıktı. Tekrardan bulduklarımızı yazalım.
p=13, q=19, n= 247, p{n}=216, e=11, d= 59

Şimdi public ve private keylerin formülüne göre yerine yazalım.
public(n,e)=(247,11)
private(n,d)=(247,59)

şimdi "m" diye bir ASCII değişkeni alalım. Formülümüz;
m^e=ymod{n}
y^d=mmod(d)
Şimdi "A" harfini şifreleyelim. A'nın ASCII kodu 65'dir.
n,d ve e değerlerini bulmuştuk. Formülde yerlerine yazalım.

65^11=mod(247), cevap = 221 olacaktır.

221'in denk geldiği
[] karakterdir. Bu şekilde kullanıcıya iletilir. Kullanıcı işe bunu "221^59 = mod(247)" formülü ile çözümleyerek "A" harfinin ASCII koduna erişecektir.

konu-araligi-6ed4dec158f5ad778.png


RSA Manuel Şifreleme


Şifreleme örneği olarak arkadaşlar bir kelimeyi şifreleyelim. Bunun için her harfin ASCII kodunu almamız gerekiyor. Hemen başlayalım.

Ben "armut" kelimesini seçiyorum hemen başlayalım. Ben "p=3" ve "q=5" olarak alacağım.
"n=p*q" ,"n=15"
"p{n}=(p-1)*(q-1)", "p{n}=8"
"1<e<8" ," e=5"

"armut"un ASCII Kodlarını alalım.


a=97,
r=114, m=109, u=117, t=116

(97^5) (114^5) (109^5) (117^5) (116^5) = mod(15)
(97^5)=mod(15), =7
(114^5)=mod(15), =9
(109^5)=mod(15), =4
(117^5)=mod(15), =12
(116^5)=mod(15), =11

7 9 4 12 11


Armut'un şifreli hali = 07 09 04 12 11

En fazla alabileceğimiz değer "14" olduğu için, rakamları iki basamaklı yapmak gerekiyor. Değerlerini bozmadan devam etmek için "0" koyduk
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.