You are on page 1of 8

KRİPTOLOJİ(Şifreleme)

Kriptografi şifreleme bilimi demektir. Teknolojinin hızlı bir şekilde gelişmesiyle askeri,
elektronik, banka sistemleri ve daha birçok yer kriptografi biliminin kullanım alanları haline
gelmiştir. Günümüz sistemlerinde en önemli gereksinimlerden birisi bilgilerin sorunsuz bir
şekilde taşınması ve gizliliktir.

Kriptoloji türleri nelerdir?


Kriptografi Teknikleri
Plaintext: Orijinal, düz metin.
Ciphertext: Şifrelenmiş metin.
Cipher: Düz metni, şifrelenmiş metne çeviren algoritma. …
Encipher (encrypt): Düz metni şifrelenmiş metne çevirme.
Decipher (decrypt): Şifreli metinden düz metni kurtarma.
Kriptografi: Şifreleme yöntem ve prensipleri.

Kriptoloji ne iş yapar?
Haberleşme ve iletişim alanında iletilerin, mesajların, yazıların güvenli şekilde alıcısına
ulaşması için çalışmalar yapan, yöntemler geliştiren bilim dalına kriptoloji denir. Bu bilim
genellikle şifre bilimi ve kripto olarak biliniyor. Kriptoloji için bir matematik bilimi
diyebilirsiniz.

Kriptoloji neden önemli?


Kriptografi bir düz metin (açık metin olarak da bilinir) alır ve bunu yalnızca amaçlanan alıcılar
tarafından anlaşılabilecek bir şeye dönüştürür. Bir şekilde bu bilgi parçasını ele geçiren başka
kimse bunu anlayamamalıdır. Bu nedenle siber güvenlik uzmanları şifreleme ve kriptografi'ye
çok daha fazla önem verecektir.

Kuantum kriptoloji nerelerde kullanılır?


Kuantum kriptografi, yalnızca anahtar üretmek ve bu anahtarı dağıtmak için kullanılır, veri
taşınmasında kullanılmaz. Üretilen anahtar daha sonra herhangi bir şifreleme algoritmasında
şifreleme ve şifreyi açma için kullanılır.

Kriptoloji Hangi Alanlarla İlişkilidir?


Kriptoloji mühendisliği matematik (cebir, sonlu grup, halka ve cisim teorisi), elektrik
mühendisliği (donanım tasarımı, ASIC, FPGA) ve bilgisayar bilimleri (algoritmalar, karmaşıklık
teorisi, yazılım tasarımı, gömülü sistemler) disiplinlerinin birleşimidir.
Kriptoloji kaça ayrılır?
Kriptoloji = Kriptografi + Kriptanaliz. Kriptoloji bilimi kendi içerisinde iki farklı branşa ayrılır.
Bunlar Kriptografi; şifreli yazı yazma ve Kriptanaliz; şifreleri çözme ya da analiz etmedir.

Cipher=şifre
 İlkel Şifreleme Algoritmaları
-Sezar Şifreleme (Shift)
-Yerine Koyma (Substitution)
-Affine Şifreleme
 Kriptoanaliz ve Frekans Analizi
 Blok Şifrelemeler ve Vigenere Cipher
 Simetrik Şifreleme (DES),
 Asimetrik Şifreleme (RSA)
 Anahtar Değişimi (Diffie Helman)
 Özetleme Fonksiyonları (Hashing Function)
 Güvenlik Prensibleri
 Diğer Şifreleme Algoritmaları

SEZAR (Kaydırma) ŞİFRELEME

İlkel şifreleme yöntemlerinden birisidir. Basitçe şifrelenmek istenen metindeki her karakterin
anahtara kadar kaydırılması ile şifrelenir (encrypt). Şifrenin açılmasında (decrypt) anahtar
kadar her karakter geri kaydırılır.
Örnek Mesaj (plain text) : “baba dede”
Anahtar (Key) : 2
Şifreli Mesaj (cipher text) : “dcdc fgfg”
Saldırı yöntemi olarak anahtarların tamamı denenebilir. Örneğin 26 harf bulunan ingilizce için
25 ihtimal teker teker denenirse metne ulaşmak mümkündür.
Saldırı yöntemi olarak anahtarların tamamı denenebilir. Örneğin 26 harf bulunan ingilizce için
25 ihtimal teker teker denenirse metne ulaşmak mümkündür.
Bu algoritmanın C / C++ dilindeki kodlaması aşağıdaki şekildedir:
#include <stdio.h>

#include <conio.h>

void shift(char *kelime, int anahtar){

char c = kelime[0];

int i = 0;

while(c!='\0'){

if(c>=65&&c<=90){

kelime[i]=(kelime[i]+anahtar);

if(kelime[i]>90)

kelime[i]= (kelime[i]%90)+65;

if(c>=97&&c<=122){

kelime[i]=(kelime[i]+anahtar);

if(kelime[i]>122)

kelime[i]= (kelime[i]%122)+97;

i++;

c=kelime[i];

int main(){

char kelime[100]="ali baba ve kirk haramiler";


shift(kelime,2);

printf("nsifreli :%s",kelime);

shift(kelime,-2);

printf("nacilmis :%s",kelime);

getch();

Yukarıdaki kodda, basitçe gelen kelimenin içeriğine bakılıyor ve şayet mesaj ascii tablosundaki
büyük harflere tekabül ediyorsa (65 büyük A ve 90 büyük Z olduğuna göre, bu sayılar
arasındaysa) veya küçük harfe tekabül ediyorsa (97 küçük a ve 127 küçük z harfleri
arasındaysa) bu durumda anahtar miktarı arttırma yapılır.
Anahtar miktarı arttıktan sonra, z harfinden sonraki bir harfe gelirse modu alınıp a harfi kadar
ekleme yapılır.
örneğin z harfini ( ascii değeri 127) anahtar değeri olan 2 kadar arttırdığımızı düşünelim, bu
durumda değeri 129 gibi bizim için anlamsız bir harf olacak, bu değerin mod 127 karşılığı alınıp
‘a’ harfinin değeri eklenir, sonuçta 129 % 127 = 2 + 97 = 99 olur ki bu değer c harfidir.
Kodun örnek ekran çıktısı aşağıdaki şekildedir:

dikkat edileceği üzere, sadece harfleri şifrelemiş ancak ascii kod karşılığı 32 olan boşluk
sembolünü olduğu gibi bırakmıştır. Bunun sebebi, şifrelenmesini istediğimiz iki aralığı (büyük
ve küçük alfabe harflerini) dikkate alıyor olmasıdır.
ÖDEV: Sizde Sezar Şifreleme yöntemini kullanarak bir C/C++ ya da Java dillerini ile bir
şifreleme algoritması yazınız.

Yerine Koyma Şifrelemesi (Substitution Cipher)


Yerine koyma şifrelemesinde amaç bir alfabede bulunan karakterlerin her birisinin yerine
aynı alfabeden farklı bir karakter koyarak şifreleme yapmaktır. Buna göre bir tablo
oluşturularak her karaktere karşılık gelen alternatif karakter tabloda tutulur. Mesajı
şifrelemek isteyen kişi bu tablo yardımıyla her karakteri teker teker karşılık geldiği karaktere
çevirir. Şifrelenmiş mesajı açmak isteyen kişi ise aynı tabloda tersi işlemi uygular.
Örnek olarak aşağıdaki yerine koyma tablosu verilmiş olsun (dilimizde 8 karakter olduğunu
düşünelim, daha çok karakter için tablo uzatılabilir. Ayrıca aşağıdaki tablo tamamen rast gele
üretilmiştir.) :
abcdefgh
fdeachgb
Buna göre şifrelenecek mesaj : “baba dede” olarak kabul edilsin
Anahtar: fdeachgb
Şifreli Metin: “dfdf acac” olacaktır.
Şifreyi açmak için aynı ahahtara sahip olan kişi tersi işlem uygulayarak tabloda hangi harfin
hangisine karşılık geldiğini bulacak ve orjinal mesaj olan “baba dede” mesajını bulacaktır.

Kriptoanalizi
Yerine koyma saldırısının kripto analizini (cryptoanalysis) inceleyelim . Yerine koyma
şifrelemesi özellikle frekans saldırısına (frequencey attack) karşı zayıf bir şifrelemedir. Ancak
şifreleme sisteminin anahtar uzayını çıkararak (key space), kaba kuvvet saldırısına (brute
froce attack) karşı en kötü ihtimal (worst case analysis) analizi yapmaya çalışalım.
Öncelikle yerine koyma şifrelemesinde her harfin farklı bir harf ile yer değiştirmesi gerektiğini
biliyoruz. Bu duruma yukarıda verilen örnekte olduğu gibi 8 karakterli bir alfabeyi ele alalım
ve durumu inceleyelim.

a 8

b 7

c 6

d 5

e 4

f 3

g 2

h 1

Yukarıdaki tabloda, her harfe karşılık kaç farklı harf gelebileceği incelenmiştir. Örneğin a
harfine karşılık 8 farklı harf yerleştirilebilir. Bu durumda b harfine karşılık yerleştirilebilecek 7
farklı harf kalmış olur (alfabedeki bir harf zaten a harfine karşılık olarak yerleştirilmiştir ve
ikinci kere kullanılamaz)
Bu durumda kaba kuvvet saldırısı 8! ihtimal içerir.
Yukarıdaki tabloda dikkat edilebilecek bir durum. Bu tablodaki ilk harf olan a harfi için 8 farklı
olasılık değerlendirilirken, a harfine karşılık yine a harfinin yazılabilme ihtimalinin de
içerilmesidir. Oysaki yerine koyma şifrelemesinde, bir harf başka bir harf ile ikâme edilirken
aynı harf kullanılmaz. Diğer bir deyişle a yarfinin şifreli mesajda da a harfi olarak kullanılması
doğru olmaz. O halde a harfi için aslında 7 olasılık bulunmaktadır.
a harfi için (a hariç) 7 olasılıktan birisi kullanıldıktan sonra (diyelim ki c kullanıldı), b harfi için
bu sefer 6 olasılık kalmış olur. Diğer harfler için de durum devam eder. Bu durumu aşağıdaki
tabloda görmeye çalışalım:

harf muhtemel harfler ihtimal sayısı örnek harf

a bcdefgh 7 h

b acdefg 6 g

c abdef 5 f

d abce 4 e

e abcd 4 d

f abc 3 c

g ab 2 b

h a 1 a

Yukarıdaki tabloda görüldüğü üzere yapılan seçimlere ve muhtemel harflere göre ihtimaller
hesaplanmıştır. Bu durumda sonuç n! x n / 2 olarak bulunur. Ancak yukarıdaki tablo
karşılaşılabilecek en kötü durum değildir. En kötü durumda, ilk başta aynı harfle
değiştirilmesinden endişe ettiğimiz için kullanmadığımız a harfinin kullanılmasını aşağıdaki
tabloda görmeye çalışalım:

harf muhtemel harfler ihtimal sayısı örnek harf


a bcdefgh 7 b

b acdefgh 7 c

c bdefgh 6 b

d cefgh 5 c

e dfgh 4 d

f egh 3 e

g fh 2 h

h f 1 f

Yukarıdaki bu son durumda görüldüğü üzere ihtimal sayısı, bir önceki duruma göre daha
yüksektir ve n harfli bir alfabe için (n-1) x (n-1)! olarak hesaplanır. Biz de kaba kuvvet
saldırısında (brute force attack) en kötü ihtimali aradığımız için, yerine koyma şifrelemesinde
olasılık olarak (n-1) x (n-1)! almamız daha doğru olur. Örneğin 26 alfabeli ingilizce için bu
durum 25 x 25! veya 29 harfli Türkçe için 28×28! olarak hesaplanabilir.

Doğrusal Şifreleme (Affine Cipher)


Bu şifreleme yöntemindeki amaç geometride doğrunun denklemi olarak bilinen
y=ax+b doğrusal fonksiyonunu şifreleme işleminde kullanmaktır. Buna göre x, şifrelenecek
mesajı (plain text), y şifrelenmiş mesajı (cipher text) ifade etmekte olup a ve b ikilisi anahtarı
oluşturmaktadır.
Örnek mesaj: “baba dede”
Anahtar: (3,2) yani a=3, b=2 olarak verilmiş
Şifreli mesajın oluşuturulması: b harfi için 2. harf olduğu kabul edilirse, 3×2 + 2 = 8 olarak
bulunur yani karşılığı allfabenin 8. harfidir. Bu harf ‘h’ harfidir. Diğer harflerde benzer şekilde
hesaplanır. Örneğin ‘e’ harfine karşılık gelen harf için 3×5 +2 = 17 yani ‘q’ harfi bulunur.
Şifreli mesaj: “hehe nqnq”
Bu şifreleme yönteminin aslında bir yerine koyma şifrelemesi (substitution cipher) olduğu
söylenebilir. Buna göre sadece hangi karakterin hangi karakter yerine konulacağı bir formüle
bağlanmıştır.
Bu şifreleme yöntemine saldırı için frekans analizi yöntemi kullanılabilir.

Uygulama ödevi: Doğrusal Şifreleme Yönteminin algoritmasını istediğiniz bir programlama


dilinde yazınız!!

You might also like