Kriptoloji (Şifreleme Bilimi)
- Kriptografi : Şifreleyerek bilgilerimizi gizlemektir.
- Kriptoanaliz : Başkaların şifreli metinlerini inceleyerek, metni elde etmektir
Encode : Farklı formata dönüştürme. Utf8 -> Base64,Hex
Plaintext P: Metin
Ciphertext C: Şifrelenmiş Metin
Key K: Şifreleyen anahtar. Şifre
Cipher : Şifreyici
Encrypt : Metni şifreleme fiili
Decrypt : Şifrelenmiş metni çözme fiili ( - deşifre )
Base64 : Verilerin 2^6 lik, 64 karakterle ifadesini sağlar. Bu biçimi binaryler ve ASCIIler çevrilebilmektedir. Genelde sonlarında = veya == bulunur. Herkes tarafından bilinir ve encoding/decoding yapılabilir.
Kerckhoff Prensibi
Bir kripto sisteminin güvenliği algoritmayı gizli tutmaya bağlı olmamalıdır. Sadece Key'in gizliliğini bağlı olmalı. Çünkü algoritmayı değiştirmek zordur.
XOR
Farklı olma durumu arayan kapıdır. 00=0 , 01=1 , 10=1 , 11=0
A xor B = A
A xor A = 0
A xor B xor A = B
Son kısma dikkat ;
P xor K xor K = P oluyor. Yani XOR ile şifrelemede Key iki defa kullanılamaz.
P1 xor K = C1
P2 xor K = C2
olsun. O zaman
C1 xor C2 = P1 xor P2
Yani Şifrelenmiş iki metni'nin xor, Şifrelenmemiş hallerinin iç içe geçmiş hali olacaktır. Eğer bunu bir resimde yapsaydık, iki resmi içi içe görürdük.
OTP (Vernam)
One-time pad (Tek kullanımlık Şerit): P xor K = C 'nin tektek her bit için kullanıldığı. P ve K şeritlerini alıp C şeridi veren şifreleme türüdür. Sadece bir defa kullanılmalıdır. Kırılmasının imkansız olduğu kanıtlanmıştır. Anahtar üretme ve dağıtma zorluğu vardır.
Rastgelelilik
Rastgelelilik bir teoridir. Birşeyin rastgele olmasının sebebi, onu hesaplayamamız veya nasıl hesaplanacağını bilmemizdir.
Pseudo Random Number Generator :
Bu algoritma mod fonksiyonun geri döndürülemezlik özelliğini kullanır.
Xi+1 = (a.Xi+c)modM;
Bu C’dilin random sayı üretme algoritmasıdır. a ve c sabit değerdir. (asal sayı olması önerilir) Xi önceki random üretilen sayıdır. M ise aralık boyutudur.
Sezar Şifreleme
@monoalphabetic chiper family
P : abcd
C : bcda
K : 1
Karakterleri alfabede K sonraki harfe kaydırarak şifrelemedir.
Cn = (Pn+K)mod(HarfSayısı)
- Harfleri frekansı(sıklığı) ölçülerek kolayca çözülebilir. Ö : Türkçede en fazla A harfi kullanılır. İngilizcede ise E harfi kullanılır. Bu bilgi dilin son yayılanan makalelerindeki harfler sayılarak elde edilebilir. Metin ne kadar uzunsa , bu yöntemle çözülmesi o kadar kolaydır.
- Kaba Kuvvet ile Harf Sayısı kadar şifre olasılığı (ö : 29) deneyerekte çözülebilir.
Simetrik Şifreleme
Tek bir anahtar ile , hem şifreleme hemde deşifreleme işlemi yapmaktır.
DES (Veri şifreleme standartı)
Herkesin bilebildiği, şifrenin gizliliğine dayalı , IBM tarafından üretilenen bir standart simetrik algoritmadır. Key 56 bit sabittir.
- Permutasyon fonksiyonu ile yer değiştirme yapılır. Bu yüzden metinden bir bit bile değişirse, şifreli metnin neredeyse tamamı değişir.
- Metin ikiye bölünür.(sol,sağ) Keyden subkeyler üretilir. Sağ taraf, subkey ile F fonksiyonuna yönlendirilir. F fonksiyonu, sol taraf ile xor'lanır. Sonraki aşamada XOR'lanmış değer sağ taraf, F fonksiyonun sol taraf olur. Bu işlem 16 defa yapılır.
- Rivayet: Artık kullanımı iptal edilmiştir. Güvensizdir. Çünkü : Deşifrelemede, key'e bir bit yaklaşılırsa. Metinin yarısı çözülür.
- 99da 22 saat 15 dakikada kırılabilmiştir. (Metin : Romada görüşürüz. Herkes AES kullansın.)
- DES'in açığı bilerek bırakılmamıştır. O dönemde güçlü olduğu düşünülüyordu. (1977)
AES (Gelişmiş şifreleme standartı)
Joan Daemen ve Vincent Rijmen adlı 2 belçikalı bulmuştur. Romadaki AES yarışmasında birinci olmuştur. (15 algoritmadan) Asıl adı : RIJNDAE
- AES, 2000 yılında çıktı. Keyler 128,196 ve 256 bittir. Blok boyutu 128 bittir.
RC4
40-2048 bit key sahibi, 256 roundlik bir şifreleme biçimidir.
Asimetrik Şifreleme
Şifrelemek için ayrı şifre, şifrelemiş metini çözmek için ayrı şifre gerek şifreleme biçimidir.
RSA
Asal sayıların kullanıldığı asimetrik şifreleme algoritmasıdır.
CBC modu
iv (initialization vector) : başlangıç vektörü. şifreleme algoritması için gerekli olan başlangıç bilgisidir.(gizlenmelidir) 0. bloktan sonrakiler için gerekmemekte.
CFB modu
Kendini feedbackleyen moddur.
Hash
Veriyi özetlemek, doğruluğunu kontrol etmek için kullanılan fonksiyondur. Geri döndürülemez olmamalıdır. Adli işlerde , kanıtların doğruluğunu ve değiştirilmedini kanıtlamak için kullanılır. Hep sabit uzunlukla çıktı verir.
md5
popüler ve hızlı hash algoritmasıdır. Sözlük saldırısı ile geri döndürebilme ihtimalı vardır. md5("dsadas".text) ile tuzlama yapılarak bundan korunulabilmektedir.