A
B
C
Ç
D
E
F
G
Ğ
H
I
İ
J
K
L
M
N
O
P
R
S
Ş
T
U
Ü
V
Y
Z
Q
W
X
+ İçerik Ekle
Tek, Anahtarlı, Şifreleme, Algoritması
Tek Anahtarlı Şifreleme Algoritması

Tek Anahtarlı Şifreleme Algoritması Tek Anahtarlı Bir Şifreleme Algoritması

Günlük hayatta bilgilerini taşımak, aktarmak için kullandıkları ortamların, kötü niyetli kişilere karşı korunmasını sağlayan bir yazılımdır.

Teknik olarak ; Kablosuz ve kablolu bilgisayar ağları veya usb gibi ortamlardan aktarılan verilerin, saldırgan kişilere (hacker) ve yazılımlara (virüs, worm, trojen vb) karşı korumak için bit tabanlı şifreleme algoritmaları baz alınarak geliştirilmiş, tek anahtarlı simetrik şifreleme algoritmasıdır.

Simetrik Şifreleme Algoritmaları

Karakter Tabanlı Simetrik Sistemler

monoalfabetik

Polialfabetik

Bit Tabanlı Simetrik Sistemler

DES (Data Encryption Standard)

Twofish

Iron

AES (Advanced Encryption Standard)

Asimetrik Şifreleme Algoritmaları

Feistel Yapısı

Şifreleme bir mesajın gizliliğini sağlamak için kullanılan bir yöntemdir.

Şifreleme çeşitlerinden biri olan simetrik şifrelemede ise amaç, gönderici ile alıcının ortak bir anahtar üzerinde ve ortak bir şifreleme, de-şifreleme algoritması üzerinde anlaşıp, mesajı 3. şahıslardan korumaktır.




Simetrik şifrelemede güvenliği sağlayan anahtardır. Çünkü şifreleme ve de-şifreleme algoritmaları herkes tarafından bilinebilir. Ancak farklı anahtarlar sayesinde aynı mesaj ve aynı algoritma ile birbirinden bağımsız şifreli metinler üretilir.

Değişiklikler metnin karakterleri üzerinde yapılmaktadır.

Karakter tabanlı şifrelemede kısa anahtarlar kullanılarak üretilen şifrelenmiş metinler, frekans analizi ile çözülebilmektedir.

Gerçekleştirimi kolay ve hızlıdır, ancak güvenliği bit tabanlı sistemlere göre daha azdır.

DES : 64 bitlik veriyi 56 bitlik anahtar kullanarak şifreler. Yayılma ve karıştırma tekniklerini kullanır.

Iron : 64 bitlik veri bloklarını 128 bitlik anahtarla şifrelenir. Anahtar bağımlıdır. Döngü sayısı 16-32 arasındadır. Yazılım için tasarlanmıştır.

AES : Uzunluğu 128 bitte sabit olan blok ile uzunluğu 128, 192 ya da 256 bit olan anahtar kullanır. DES’in yerini alması için tasarlanmıştır.

Twofish : DES’ten farkı anahtar kullanılarak yaratılan değişken S-box’lara sahip olmasıdır. 128 bitlik düz metni 32 bitlik parçalara ayırarak işlemlerin çoğunu 32 bitlik değerler üzerinde gerçekleştirir. AES’den farklı olarak 2 adet 1 bitlik rotasyon eklenmiştir. %5 yavaşlatmıştır.

Bit tabanlı algoritmaların çoğunda kullanılan bir yapıdır.

Şifreleme ve de-şifreleme için aynı algoritmalar kullanılmaktadır, sadece oluşturulan alt anahtarlar de-şifreleme esnasında ters sıra ile kullanılır

64 bit mesaj



L-32 bit R-32 bit



0 F



L-32 bit R-32 bit





0 F



64 bit sifrelenmiş mesaj



Feistel yapısı kullanılmıştır.

Kullanılan anahtar uzunluğu sabit olmakla beraber 64 bittir (8 karakter).

Anahtar olarak rakam, harf, özel karakter kabul edilir.

Alt anahtarların sayısı 16’dır ve her birinin uzunluğu 48 bittir.

Anahtar boyutları DES’ tekiyle aynıdır ancak alt anahtarları üretmede kullanılan işlemler farklıdır.

Şifrelenecek metin 64 bit olarak işlenir, daha sonra varsa diğer 64 bit şifrelenir.

Metin uzunluğu 8’e bölünecek şekilde gelmediyse, metne boşluk veya boşluklar eklenerek uzunluk 8’e bölünebilecek hale getirilir ve anahtarlar üretilerek şifreleme gerçekleştirilir.


Anahtarlari_Uret : Bu fonksiyonda karakter katarı (string) olarak okunan anahtardaki her bir karakterin ASCII karşılığı alınır ve elemanları bayt olan bir diziye konulur. Daha sonra bu dizideki elemanların indeksleri “karakterleri_karistir” fonksiyonu ile değiştirilir.



Byte []anahtar_asci_degerleriß(new ascııencoding)).

Getbytes(anahtar_string)





Anahtar_asci degerleri=karakterleri_karistir(anahtar_asci_deger leri)







Anahtar_uretiliyor

(anahtar_asci_degerleri)



Karakterleri_karistir : Bu fonksiyonda dizideki her elemanın toplamı bir değişkene atılır. Bu işlemden sonra asci_degerler_toplami değikeninin 127’ ye göre modu alınır. En son elde edilen değerler dizideki elemanların yerlerini kaydırmak için kullanılır.



Anahtar_sol[i]=anahtar_ascii[i]

Anahtar_sag=anahtar_ascii[i+4]







Anahtar_ascii[i]=byte((anahtar_sag[i] I anahtar_sol[i])%127))

Anahtar_ascii[i]=byte((∞anahtar_sol[i+4])%127))



Anahtarlar_uretiliyor : anahtar_asci dizisindeki her sayı tek tek bitlerine ayrılır. 1 sayıdan 8 tane bit elde edilir ve bu bitler bir dizide toplanır. Toplam 64 tane bit elde edilir. Böylece 8 elemanlı dizi 64 elemanlı başka bir bayt dizisine dönüştürülmüş olur.

Bu fonksiyonda 4 tane alt fonksiyon çağrılmaktadır:



Bitlerin_yerlerini_degistir(bnrstr)àanahtar_56bite _dusur(bnrstr)





Anahtar_shift_et(bnrstr) anahtari_48bite_dusur(bnrstr)







Bitlerin_Yerlerini_Degistir : Anahtara ait olan 64 bitin bnrstr dizisindeki yerini karıştırmak için kullanılmaktadır.



Anahtari_56ya_Dusur : Bu fonksiyonda 64 bitlik anahtar uzunluğu permutation choice tekniği ile 56 bite düşürülür.

Anahtari_48e_Dusur : Bu fonksiyon 56 bite düşen anahtarı 48 bite azaltmak için kullanılır. Bu fonksiyondan çağrılan;

-Anahtari_32_yap_48e_Cikar fonksiyonu anahtarı 48 bitten 32 bite azaltmak için S-box adı verilen yapıyı

kullanır. Bu fonksiyonun sonunda ise “expansion box” tekniği ile 32 bitlik anahtar tekrar 48 bite çıkartılır.

Anahtari_Shift_et : 16 adet alt anahtar üretmektedir. Bir sonraki anahtar bir önceki anahtarın bitlerinin 1 kez sola kaydırılmasıyla üretilmiştir.

Çığ etkisi : Shift işleminden dolayı her anahtar bir öncekine bağlıdır. Bir bit değiştirildiğinde bir çok farklı anahtar üretilmektedir.















Byte[sifrelenecek_parca_ascii=new(ASCIIEncoding()).getb ytes(sifrelenecek_parca





Karakterlerin bnrstr dizisi àbnrstr disindeki byte fotmatındaki à ilk_gönderilecek_parcalari_belirle

İçindeki yerleri değistirilir her bir eleman bitlerine ayrılır bnrstr









Sifreli_parcayi_yaz(sifreli_parca) sifreli_parca[0..31]=R[o..31] parcaları_farklı_anahtar

Sifreli_parca[32..62]=L[32..63] larla_XORla



Li = Ri–1

Ri = Li–1 xor F(Ri–1, Ki)



R1=KARİSTİR (L0, R0, K16)

R2=KARİSTİR (R0, R1, K15)

I

I

R16=KARİSTİR (R14, R15, K0à L16=R15



R16 ve L16 şifreli metni oluşturan parçalardır.

Şifreyi çözmede kullanılan fonksiyonda şifreli metin bloğu bitlerine ayrılır. Bu bitlerden ilk 32 si L0 parçasını, geri kalan 32 bit ise R0 parçasını oluşturur.

Şifreleme algoritmasında anahtarları üretmek için kullanılan fonksiyonun aynısı deşifrelemede anahtarları tekrar üretmek için kullanılır.

Feistel yapısı kullanıldığından şifreyi çözmek için anahtarları fonksiyona tersten veririz.



R1=KARİSTİR (L0, R0, K1)

R2=KARİSTİR (R0, R1, K2)

I

I

R16=KARİSTİR (R14, R15, K16à L16=R15



ÖRNEK SİFRELEME

Düz Metin: Kriptoloji şifreleme ve de-şifreleme işlemlerini kapsayan bir bilimdir ve diğer bilimlerde olduğu gibi bu biliminde bir tarihi vardır storix.

Anahtar: Simetrik şifreleme bir mesajın gizliliğini sağlamak için kullanılan bir şifreleme türüdür.

Şifrelenmiş-Metin: 25F221670F1FEC9C5DD9DD1B0E1

6EF0389DB391A524AF1C9D01956883

0E98A6C7B1C069A62BE11AD810A01AEC1

39168AC82AA81F468A1108DD22099E865

0E7DB5C5CDADACF96FC46F9131DC7D518268

ED21F008536E5CB76D91AA31AE6BE3728F1472

C82DD582682DB484A5E09C4BF85DD0213B0145

06FD52CDA8CBF33CAB039940955DA74EDD57B 00730074006f007200690078

De-şifre Edilmiş Metin: Kriptoloji şifreleme ve de-şifreleme işlemlerini kapsayan bir bilimdir ve diğer bilimlerde olduğu gibi bu biliminde bir tarihi vardır









  Ad Soyad
  Yorum