2. • Keccak algoritması, 2008 yılında NIST hash fonksiyonu
yarışmasında SHA-3 için aday olarak sunulmuştur. NIST(Ulusal
Standartlar ve Teknoloji Entitüsü) tarafından 2015 yılında
yayınlanan Güvenli Karma Algoritma standartları( Secure Hash
Algorithm) ailesinin en son üyesidir. Keccak özet fonksiyonu ile
tasarlanmıştır. Keccak, sünger yapımı( sponge construction) adı
verilen yeni bir yaklaşıma dayanmaktadır. SHA 3 algoritması SHA 2
nin yerini alması amaçlanmıştır. Yine MD5, SHA 0 ve SHA1 e
yapılan başarılı saldırılar sebeiyle SHA-3 hash algoritması ihtiyacı
doğmuştur.
GİRİŞ
3. • SHA 3, Keccak işlemleri hızlı hesaplayabilmek için özel üretilen içinde özel
talimatları barındırmayan işlemci mimarilerinde (CPU'lar) yavaş olduğu için
eleştirildi.
• SHA2-512, SHA3-512 ve SHA' nın iki katından daha hızlı olduğu koyuldu.
Bununla birlikte, donanım uygulamalarında, SHA-3 diğer tüm Keccak ailesine
ait hash algoritmalarından önemli ölçüde daha hızlıdır.
• SHA 1 ve SHA2 hash algoritmalarından özel talimatlar barındırması da göz
önünde bulundurularak SHA 3 algoritmasının daha hızlı olduğu kanıtlanmıştır.
• SHA 3 (Keccak) algoritmasının diğer özet algoritmalarından daha hızlı olduğu ve
bu sebeple daha az hesaplama kaynağı gerektirmektedir.
• SHA 3 (Keccak) algoritmasının hafıza gereksiniminin daha az olması sebebiyle
mobil cihazlar gibi daha az donanıma sahip cihazlarda
gerçekleştirilebilmektedir.
• SHA 3 algoritması tüm bu sebepler dolayısı ile diğer özet fonksiyonlarında daha
hızlı ve daha az maliyetlidir.
ALGORİTMADA HIZ ve MALİYET
4. • SHA 3, verilerin “emildiği(absorbed)” ve sonucunda
“sıkıştırıldığı(squeezed)” sünger yapısını(sponge construction)
kullanır.
• Absorbed aşamasında durumun bir alt kümesine “XORed” edilir
ve daha sonra bir permütasyon fonksiyonu “f” kullanılarak bir
bütün olarak dönüştürülür.
• “XOR” işlemi, Özel veya ayrıcalıklı ayrıştırma, yalnızca girişler farklı
olduğunda (biri doğru(true), diğeri yanlış(false)) çıktıları
doğru(true) çıkan mantıksal bir işlemdir.
ALGORİTMA ANALİZ
5. • “squeezed” aşamasında, çıkış blokları, durum dönüştürme
fonksiyonu “f” ile dönüşümlü olarak, durumun aynı alt
kümesinden okunur. Durumun yazılan ve okunan kısmının
boyutuna "oran" (r ile gösterilir) ve girdi / çıktı tarafından
dokunulmayan kısmın boyutuna "kapasite" (c ile gösterilir) denir.
• Kapasite amaçlanan planın güvenliğini belirler. En yüksek güvenlik
seviyesi kapasitenin yarısıdır.
• Bir giriş bit dizisi N, bir doldurma işlevi pad, b genişliğindeki bit
blokları üzerinde çalışan bir permütasyon işlevi f, r bir oran ve bir
çıktı uzunluğu d verildiğinde, c = b - r kapasiteye sahib sünger
yapısı(sponge construction) Z = sponge[f, pad, r] (N, d) dir. , Bu
yapı “d” uzunluğunda bir “Z” dizisi verir, aşağıdaki gibi çalışır:
6. • Giriş N'yi pad işlevini kullanarak doldurun, uzunluğu ile bölünebilen bir dolgulu
bit dizisi P üretin
• P'yi n ardışık r bit parçasına ayır
• S durumunu b sıfır bitlik bir dizgeye başlat
• her blok için Absorbe(emilim) başlat:
a)Sonunda Pi'yi c sıfır bitlik bir dize ile genişletin, b uzunluğundan veriyi
verir,
b)S ile XOR et,
c)Yeni bir S durumu vererek, blok permütasyonunu f sonuca uygulayın
• Z'yi boş dizge olarak başlat
• Z'nin uzunluğu d'den az ise:
a)S'den Z'ye ilk r bitlerini ekleyin
b)Z hala d bit uzunluğundan azsa, f'yi S'ye uygulayarak yeni bir S durumu
elde edilir.
• Z'den d'ye kadar bitleri kırpılır ya da kesilir.
7.
8. • Hash fonksiyonları için sünger yapısı. Pi girdidir, Zi hash edilmiş
çıktıdır. Kullanılmayan "kapasite" c, çarpışma veya ön görüntü
saldırılarına karşı istenen direncin iki katı olmalıdır.
• SHA-3' te, S durumu 5 × 5'lik bir w-bit kelime dizisinden oluşur (w
= 64 ile), b = 5 × 5 × w = 5 × 5 × 64 = 1600 bit. Keccak, 1 bit'e kadar
(toplam 25 bitlik durum) daha küçük 2 kelimelik güç boyutları için
de tanımlanır. Küçük durum boyutları, kriptanalitik saldırıları test
etmek için kullanılabilir ve ara durum boyutları (w = 8, 200 bitten
w = 32, 800 bit'e kadar) pratik, hafif uygulamalarda kullanılabilir.
• SHA-3-224, SHA-3-256, SHA-3-384 ve SHA-3-512 örnekleri için r,
d'den büyüktür, bu nedenle sıkıştırma aşamasında ek blok
permütasyonlarına gerek yoktur; durumun önde gelen d bitleri
istenen karmadır. Bununla birlikte, SHAKE-128 ve SHAKE-256,
optimal asimetrik şifreleme dolgusu gibi uygulamalarda yararlı
olan isteğe bağlı bir çıktı uzunluğuna izin verir.
9. • SHA 3 algoritma şifreli mesajın eşit şekilde r- bit bloklara bölünebilmesini
sağlamak için, doldurma gereklidir. SHA-3, doldurma işlevinde 10 * 1 modelini
kullanır : 1 bit, ardından sıfır veya daha fazla 0 bit (maksimum r - 1 ) ve son 1
bit. Son mesaj bloğu r - 1 bit uzunluğunda olduğunda maksimum r - 1 sıfır biti
oluşur. Daha sonra ilk 1 bitten sonra, son 1 bitten önce r - 1 sıfır bit içeren
başka bir blok eklenir . Mesajın uzunluğu halihazırda r ile bölünebilse bile iki 1
bit eklenecektir. Bu durumda, mesaja 1 bit, ardından r - 2 sıfır bitlik bir blok ve
başka bir 1 bit içeren başka bir blok eklenir. Bu, uzunluğu r ile bölünebilen bir
mesajın dolguya benzeyen bir şeyle biten bir mesajın, bu bitlerin kaldırıldığı
mesajla aynı karmayı üretmemesi için gereklidir. Başlangıçtaki 1 bit gereklidir,
bu nedenle sonunda sadece birkaç ek 0 bitte farklılık gösteren mesajlar aynı
hash'i üretmez. Son 1 bitin konumu , güvenlik kanıtının farklı hash varyantları
için çalışması için gerekli olan r hızının kullanıldığını (çoklu oran dolgusu)
gösterir. Bu olmadan, aynı kısa mesajın farklı karma varyantları kesilmeye kadar
aynı olacaktır.
BLOKLARIN OLUŞTURULMASI(BLOK
PERMÜTASYONU)
10. • Keccak-f [1600] olan blok dönüşümü f , XOR , AND ve NOT
işlemlerini kullanan bir permütasyondur ve hem yazılım hem de
donanımda kolay uygulama için tasarlanmıştır.
• Herhangi bir “üslü” kelime boyutu için, w = 2 ℓ bit için
tanımlanmıştır. Ana SHA-3 sunumu 64-bit kelimeleri kullanır, ℓ = 6
. Durum, 5 × 5 × w'lik bir bit dizisi olarak düşünülebilir.
• Let bir [ ı ] [ j ] [ k ] be bit (5 i + j ) x w + k bir kullanarak, giriş little-
endian bit numaralama kuralı ve row-major indekslemedir. Yani i
satırı, j sütunu ve k biti seçer.4
• İndeks aritmetiği ilk iki boyut için modulo 5 ve üçüncü boyut için
modulo w yapılır .
• Temel blok permütasyon işlevi, beş adımlık 12 + 2ℓ turdan oluşur:
Yine SHA 3 algoritması Keccak Blok Algoritmasında:
11.
12. •SHA 3 geniş kriptolama ilkel familyasının alt kümesidir.
•MD5, SHA 1 ve SHA 2 hash algoritmalarına benzer
standartlar olsa da SHA 3 hash algoritması farlılıklar
gösterir.
•SHA-3'ün amacı, gerekirse mevcut uygulamalarda
doğrudan SHA-2 ile ikame edilebilmesi ve NIST'in genel
karma algoritma araç setinin sağlamlığını önemli ölçüde
iyileştirmesidir.
ÖZELLİKLER
13. • SHA 3 (Keccak) algoritması diğer alt aile algoritma sınıflarına(MD5,
SHA1 ve SHA2 v.b.) göre oldukça esnek ve güvenliklidir.
• Esnek olmasından dolayı oldukça kolay bir şekilde SHA-3 224, 256,
384 ve 512 özet fonksiyonlarına kolaylıkla değiştirilebilmektedir.
• Keccak algoritması istenilen uzunlukta çıkış değeri üretebilir ve bu
saya de algoritmanın akış şifreleme, rastgele sayı üretiminin
kullanımını sağlar.
• SHA-3 (Keccak) özet algoritması yapılan araştırmalarda en güvenli
özet algoritması olduğu kanıtlanmıştır.
SHA 3 GÜVENLİĞİ ve YAPILAN SALDIRILAR
14. •SHA 3 özet fonksiyonun diğer aile sınıfında da rastlanan
çakışma ve ön görme dayanıklılığına karşı yeterli seviyede
güvenlik sağlar.
•SHA 3 algoritması ile yüksek boyutta özet değerleri
üretilebildiği için bu algoritma güvercin deliği ilkesi ve
doğum günü çelişkisi v.b. kaba kuvvet saldırılarına karşı
dayanıklıdır.
•Yine belirlenen boyutta özet değeri oluşturulduğu için özet
değerinin tahmin edilebilme ihtimalini düşüktür.
15. Aşağıda sunulan tabloda kuantum saldırılarına yönelik
güvenlik ve dayanıklılık değerleri sunulmuştur.
16. • ALGORİTMA ANALİZ başlığı altında bahsedilen terimlerle alakalı S iç durumunun, Z' ye
çıktıya ek olarak, c ek bilgi biti içermesi gerçeği, SHA-2, SHA-1, MD5 ve Merkle-Damgård
yapısına dayalı diğer karmaların duyarlı olduğu uzunluk uzatma saldırılarını önler.
Merkle-Damgärd hash construction
17. • SHA 3 (Keccak) hash algoritmasının hesaplama işlevselliği, esnekliği ve
güvenliği açısından oldukça verimli olduğu görülmüştür.
• Şuan da sahip olunan en iyi karma algoritmalarından biridir.
• Bazıları önümüzdeki 20-30 yıl içinde kırılamayacağını öne sürmektedir.
Kuantum hesaplamalarının gelişmesi bu süreyi azaltabilir.
• SHA 3 hash algoritmasının küçük boyutlu olması bir başka
avantajlarından biridir.
• SHA 3 hash algoritması hız açısından oldukça etkili olduğu görülmüştür.
• Yine maliyet olarak düşük işlemci mimariyle gerçekleştirilebilir olması,
düşük donanıma sahip mbil cihazlarda kullanılmasına da imkan
sağlamıştır.
SHA 3 (KECCAK) ALGORİTMA DEĞERLENDİRME
ve SONUÇ