Temel Kriptoloji
BTK Akademi Temel Kriptoloji Kursu Notlarım
“Bu kursun yazılımsal kısımlarına odaklandım. Donanımsal ve donanımsal hacking kısımlarını yüzeysel izledim, notlarını almadım.”
Kriptografi: Bilgi güvenliği temelini oluşturan gizlilik veri bütünlüğü kimlik doğrulama ve inkar edilemezlik gibi konularda araştırmalar yapılır. Temel uygulama alanları elektronik Ticaret, kartlı ödeme sistemleri, dijital paralar bilgisayar ağları ve askeri haberleşmedir.
Kriptografi problemleri: Güvenli haberleşme, anahtar üretme, gizli bilgi paylaşma, şifreli bilgisi çözmeden üzerinde işlem yapma, sayısal imza, uzaktan rastsal sayı seçme ve veri bütünlüğü problemleridir.
Monoalfabetik şifreleme: Mesaj şifrelenirken alfabe tek ve sabittir.
DES Algoritması: 64 bitlilik sayımız 32 bit olacak şekilde ikiye bölünüyor. Sağdaki 32bitlik kısım bir fonksiyondan(K fonksiyonu) geçiriliyor daha sonra soldaki 32bitlik kısım ile xor’lanılıyor. Bu 16 defa tekrarlanılıyor. K fonksiyonu da bu 32 biti 48 bitlik bir alt anahtar ile xor’ladıktan sonra 8 tane s-boxa sokuyor. S-box 6bit input 4bit output’u olan “substution” entegresidir. Sbox çıkışında da permütasyona uğrar. DES gib simetrik algoritmaların çalışabilmesi için iki tarafın da anahtarı olmalı bunu anahtarların takası bir sorun oluyor. 1975te Diffie ve Hellman asimetrik şifrelemeye dayalı bir anahtar takas algoritması çözümü önerir.
Asimetrik algoritmalar için ise biri herkese açık diğeri gizli iki anahtar olur(SSL, SSH,TLS,HTTPS bu türdendir). Birbirini tanımayan iki taraf arası iletişim sağlanmış olur. Yavaş çalışırlar ve ciddi işlem gücü gerektirirler. RSA ve eliptik eğri algoritmaları bunlara örnektir. Genelde anahtar paylaşımında çalışırlar anahtar paylaşıldıktan sonra simetrik algoritma devreye girer.
Hellman anahtar takas algoritması ayrık algoritma probleminden üretilen asimetrik şifrelemeye dayanır. Haberleşecek tarafların açık ve gizli iki anahtarı bulunur. A için açık anahtar g ,gizli anahtar a ile B için açık anahtar p gizli anahtar b ile gösterelim.
1_ a ve b rastsal sayıları üretilir.
2_ A= g^a modP ve B=g^b modP hesaplanır ve birbirilerine değerlerini gönderirler.
3_B’den gelen için S=B^a modP hesaplanır, A’dan gelen için S=A^b modP hesaplanır. Ortak S anahtarları üretilmiş olur.
RSA: İlk asimetrik şifreleme algoritmasıdır. İki büyük asal sayının çarpımının çarpanlara ayrılması problemine dayanır. RSA kullanacak kişinin açık anahtarı iki asal sayının çarpımından ve bir yardımcı değerden oluşur. Asal sayıların ne olduğu gizlidir. Anahtar boyutları 1024 bit’in katlarıdır. Şimdiye dek kırılamamıştır.
Eliptik eğri şifreleme algoritması: İşlem gücü kısıtlı gömülü sistemlerde kullanılmak için tasarlanmıştır. Depolama ve veri iletim gereksinimlerini azaltan daha küçük anahtar boyutuyla RSA algoritmasına eşdeğer güvenlik seviyesi sağlamaktadır. 256 bit eğri anahtarı 3072 bit RSA anahtarı ile eşdeğer seviyede güvenlik sağlar.
Temelini Weierstrass eşitliğindne alır.
Weierstrass: y²+a1xy+a3y=x3+a2x²+a4x+a6 denklemini sağlayan(x,y) eğrisinde elliptic curve denir.
Advanced Encryption Standard: 2001’de DES yerine seçilmiş bir simetrik şifreleme algoritmasıdır. Yerdeğiştirme ve permütasyon ağı olarak bilinen bir tasarım prensibine dayanır hem yazılımda hem donanımda çok verimlidir. 128 bit bloklarla çalışabilir.
Key Expansion: her tur için 128 bit şifreleme anahtarı AES anahtar üretici tarafından üretilir.
Add Round key: Her bayt verisi, tur anahtarının ilgili baytı ile XOR’lanır.
Shift rows: Belli sayıda adımda durum verisinin son üç satırı dönel şekilde kaydırılarak transpoze edilir.
Mix Columns : Lineer sütun karıştırma işlemiyle her sütundaki 4 baytlık durum verisi birleştirilir.
Add round key: Her bayt durum verisi tur anahtarının ilgili baytı ile XOR’lanır.
Final round: Anahtar boyutuna geçer, işlem döngüsü 10/12/14e tamamlanır.:
Subbytes: Lineer olmayan şekilde her bayt bir lutdan başka bir bayt ile yerdeğiştirir.
ShiftRows : Belli sayıda adımda durum verisinin son üç satırı dönel şekilde kaydırılarak transpoze edilir.
Add round key: her bayt durum verisi tur anahtarının ilgili baytı ile XOR’lanır.
Dijital güvenlik: Zamanla değişen ve bu yüzden güncellenmesi ve takip edilmesi gereken aygıt ve politikalardır.
Hardware Security Modules: Kriptografik işlemler yapabilen güvenlik modülleri şifrelemesi kullanılan anahtarların üretilmesi, güvenli bir şekilde saklanması ve dağıtılması amacıyla kullanılmaktadır. Askeri , sivil ve ticari işlemler için kulanılır. Donanımsal ve yazılımsal müdahalalere karşı enerjileri kesildiğinde bile koruma sağlarlar. Güvenlikleri sertifikalıdır.
Rastsal sayı üreteçleri:
Kaynağı sonucu önceden belirlenimci yöntemlerle tahmin edemediğimiz olaylara dayanan sayılar rastsal sayı olarak tanımlanır. MonteCarlo simülasyonlarında(yansız değerlendirme modelleme ve test etme) istatistik(problem modelleme, yapay veri üretimi , örnekleme) kriptografide(şifreleme anahtarları, algoritma ilklendirme değerleri ve kimlik doğrulamada), bilgisayar ve şans uygulamalarında(hilesizlik ve eşit şans dağılımı uygulamalarında) kullanılır.
Rastsal sayıların temel özellikleri:
Yüksek rastsallık(entropi ve tahmin edilemezlik),düzgün dağılım(her sayının ortaya çıkma olasılığının eşit olması), bağımsızlık(ardışık üretilen sayılar arasında ilinti olmaması) ,aperiyodiklik(kullanım sürecinde sayıların tekrar etmemesi), kolay ve hızlı üretilebilirlik rastsal sayıların teme lözellikleridir.
Entropi bilgi kuramında belirsizliğin ölçütüdür. Olasılıkların gerçekleşme miktarını gösterir.
Düzgün dağılım: rastsal sayıların kaynak küme içinde homojen dağılıma sahip olmasını gerektirir, böylece kaynaktan alınan her sayı örneğinin ortaya çıkma olasılığı eşit olur.
Bağımsız olaylar: Birinin gerçekleşmesi diğerini etkilemiyorsa bu iki olay bağımsızdır.
Rastsal sayılar kriptografide: Şifreleme anahtarları(asimetrik simetrik şifreleme algoritmalarında anahtar olarak ), tek kullanımlık şifreler(OTP) ,zaman damgası(hesaplamada verileri tekil olarak etiketlemek için) ,sözde üreteçlerinin ilişkilendirilmesinde(başlangıç değeri olarak algoritmik üreteçlerin ilk değeri) ve kimlik doğrulamasında(sorgu değerlerini rastsal olarak üretilp karşılıklı paylaşım sonrası işlenerek karşılaştırmak için) kullanılıyor. Sözde rastsal sayı üreteçlerinden farkı ise ilk değerler bağımsız, periyodsuz, tahminedilemez ve belirlenimsiz olmalarıdır.
Gerçek rastsal sayı üreteçleri:
Elektriksel gürültü örnekleme:
Yarı iletkenlerdeki elektriksel gürültü entropi kaynağıdır. Düşük üretim hızı ve çevresel parametrelerden etkilenmesi olumsuz özellikleridir.
Çoklu osilatör örnekleme:
Jitter, entropi kaynağıdır yüksek hızda ve çok sayı üretilirler. Yüksek güç tüketirler .Elektromanyetik sinyal aşılama saldırılarından etkilenebilirler.
Kaotik işaret örnekleme:
Kaotik sistemler bilgi kaynağı gibi davranabilirler. Yüksek hız ya da güç tüketecek şekilde tasarlanabilirler. Kaos kontrol parametresinin saçılımı kaotik dinamiği bozabilir. Senkronizasyon saldırılarında etkilenebilirler.
Meta-stabilite ile:
Lojik kapıların zaman kısıtlarının ihlaliyle oluşan metastabilite, netropi kaynağıdır. Yarı iletken üretimindeki parametre saçılmaları nedeniyle eş olasılıklı bitler üretmezler. İstatikselse özelliklerin iyileştirilmesi içim art-işleme gereklidir.
Uygulamada kullanılan RSÜ İstatistiksel test platformlarından en günceli DIEHARDER’dır(2020).
Önde gelen istatistiksel testlerden(NIST) bazıları:
Frekans testi*: Bir dizideki 0/1 dağılımını test eder.
Blok Frekans Testi*: Dizinin alt bloklarındaki 0/1 dağılımını test eder.
Koşu Testi*: Bir dizinin alt bloklarındaki sürekli 0/1 bloklarının uzunluklarını test eder.
Uzun Koşu Testi*: Bir dizideki sürekli 0/1 bloklarının uzunluklarını test eder.
Poker Testi*: Bir dizideki ardışık bloklar arasındaki bağımsızlığı test eder.
*Çevrim-içi uygulanabilen testler(donanımsal olarak gerçekleyebilen testler).
Rütbe testi: Dizideki ardışık bloklar arasındaki lineer bağımlılıkları test eder.
Ayrık Fourier dönüşümü testi: Bir dizideki periyodik olan bileşenleri tespit eder.
Evrensel Test: Bir dizinin sıkıştırılabilirliğini test eder.
Lineer karmaşıklık testi: Eldeki dizinin bir LFSR tarafından üretilme durumunu test eder.
Serilik testi: Bir dizideki m-bitlik desenlerin dağılımını test eder.
Yaklaşık entropi testi: Bir dizideki düzensizliği ve tahmin edilemezliği test eder.
Rastsal olmamayı ispat eden testler varken, rastsal olmanın ispatının analitik bir yolu yoktur.
Algoritma ve fonksiyonlar:
Master anahtar iyi gizlenmelidir çünkü master anahtar diğer anahtarlara erişim sağlayabilir.
DES bir blok şifreleme örneğidir yani veriyi bloklara böler ve o şekilde şifreler. Anahtar uzunluğu kısa olduğu için yeterli güvenliği sağlayamadığı görülmüştür. Yerini Triple DES ve AES e bırakmıştır.
DES bitler üzerinden gerçekleştirilir. Şifrelenecek olan veriye açık metin deniz. Bu metin 64 bitlik bloklara ayrılır her blok birbirinden bağımsız olarak şifrelenir ve aynı uzunlukta şifrelenmiş metinler elde edilir. 56 bitlik anahtar uzunluğu vardır. Brute-force ataklarına dayanıklı değildir. 128 bit anahtarlı 3DES geliştirilmiştir ve halen kullanılmaktadır.
Kriptoloji kriptografi ve kriptoanaliz(inceler ve kırmaya çalışır) diye ikiye ayrılmaktadır. Kriptografi ise simetrik algoritmalar, asimetrik algoritmalar ve kriptografik protokoller olarak üçe ayrılmaktadır.
Kuantum bilgisayarların işlem kapasitesi çok yüksek olacağı için yeni şifrelemelere ihtiyaç duyulacaktır.
Kriptografi 3 şeyi sağlar: Gizlilik, veri bütünlüğü ve kimlik doğrulama.
Tek yönlü(hash) fonksiyonları:
Değişken uzunluklu veri kümelerini sabit uzunluklu veri kümelerine haritalayan algoritmadır. Özet veri olarak düşünülebilir. Hash fonksiyonları ile şifreleme yapılamaz çünkü tersi elde edilemez. Günümüzde SHA2 ve SHA3 güvenli olarak atfedilir. Tek yönlü fonksiyonlar hesaplaması kolay ancak tersinin alınması çok zor olan fonksiyonlardır. Modern hash fonksiyonları genelde blok ypaılarını kullanır.
SHA secure hashed algorithm demektir. SHA2 denince içerisinde 6 adet algoritma bulunur. Günümüzde SHA384 ve SHA512 güvenli kabul edilir çıktıları 385 ve 512 bittir.
Hash algoritmalarında en basit saldırı sözlük saldırılarıdır. Günümüzde çok işe yaramıyor ancak SHA256 için düşünelim. Önceden bilinen kısa mesajlar ve çıktıları kaydedilir. Bu veritabanı büyüdüğünde kullanıcı bir özetin tersini bulmak için bu sözlüğe başvurur.
Collision atack: İki farklı girdinin hash fonksiyonu çıktısının aynı olmasıdır. Bu tarz bir collision tespit eidlirse o algoritma güvensiz olarak nitelendirilir. Birthday paradox bir collision atağıdır. Bu saldırıya göre bir hash algoritmasında çarpışma bulma olasılığı 2^(L/2)’dir. Burada K akgoritma çıktısının boyutudur. Örneğin SHA256 için L= 256’dır.
-SON-
Referanslar:
BTK Akademi-Temel Kriptoloji Kursu