ScholarGate
Asistan

Kriptografik Özet Fonksiyonları

Bir kriptografik özet fonksiyonu, rastgele girdiyi tek yönlü ve çakışmaya dayanıklı bir şekilde kısa, sabit uzunlukta bir özete sıkıştırmakta olup, bütünlük, kimlik doğrulama ve birçok üst düzey protokol için temel bir yapı taşı olarak hizmet etmektedir.

PaperMind ile konu bulYakındaMakale ve konu bul
Tools & resources
Slaytları indir
Learn & explore
VideoYakında

Tanım

Bir kriptografik özet fonksiyonu, rastgele uzunluktaki girdileri sabit uzunlukta bir çıktıya (özet) eşleyen deterministik bir fonksiyon olup, bir ön görüntü, ikinci bir ön görüntü veya aynı çıktıyı üreten herhangi iki farklı girdiyi bulmak imkansız kılınmaktadır.

Kapsam

Bu konu, özet fonksiyonlarının güvenlik özelliklerini (ön görüntü, ikinci ön görüntü ve çakışma direnci), iç yapılarını (Merkle-Damgaard, sünger), standartlaştırılmış SHA-2 ve SHA-3 ailelerini ve bütünlük doğrulama, parola depolama, taahhüt ve iş kanıtı gibi uygulamalarını kapsamaktadır. Doğum günü sınırı ve MD5 ile SHA-1'in kırılması dahil olmak üzere kriptanalitik saldırıları ele almaktadır. Anahtarlı kimlik doğrulama kodlarını hariç tutmaktadır; bunlar mesaj kimlik doğrulama kodları altında ele alınmakta olup, birçok MAC özet fonksiyonlarından inşa edilmektedir.

Temel sorular

  • Bir kriptografik özet fonksiyonunu sıradan bir sağlama toplamı veya özet tablo fonksiyonundan ayıran nedir?
  • Ön görüntü, ikinci ön görüntü ve çakışma direnci neden farklıdır ve birbirleriyle nasıl ilişkilidirler?
  • Doğum günü paradoksu neden çakışma direncini özet uzunluğunun yarısı ile sınırlar?
  • Merkle-Damgaard ve sünger yapıları, sabit boyutlu bir sıkıştırmayı rastgele girdiye nasıl genişletir?
  • Özet fonksiyonları verilere taahhüt etmek, bütünlüğü doğrulamak ve parolaları depolamak için nasıl kullanılır?

Anahtar kavramlar

  • mesaj özeti
  • ön görüntü direnci
  • ikinci ön görüntü direnci
  • çakışma direnci
  • doğum günü saldırısı
  • Merkle-Damgaard yapısı
  • sünger yapısı (Keccak)
  • uzunluk uzatma saldırısı
  • iş kanıtı

Temel kuramlar

Çakışma direnci ve doğum günü sınırı
Doğum günü paradoksu nedeniyle, n-bitlik bir özete yönelik genel bir çakışma bulma saldırısı yaklaşık 2^(n/2) iş ile başarılı olmaktadır; bu nedenle çakışma direnci, istenen güvenlik seviyesinin yaklaşık iki katı uzunlukta özetler gerektirmektedir (örn. 128-bit güvenlik için 256 bit).
İteratif ve sünger yapıları
Merkle-Damgaard paradigması, mesaj blokları üzerinde sabit girdili bir sıkıştırma fonksiyonunu yineleyerek tam bir özet oluşturmaktadır; SHA-3 (Keccak) tarafından kullanılan sünger yapısı ise girdiyi büyük bir permütasyon durumuna emmekte ve çıktıları buradan sıkıştırarak çıkarmakta, böylece uzunluk uzatma zayıflıklarını önlemektedir.

Mekanizmalar

Bir Merkle-Damgaard özeti, mesajı doldurmakta, bloklara ayırmakta ve her bloğu çalışan bir zincirleme değerine karıştıran bir sıkıştırma fonksiyonunu iteratif olarak uygulamakta, son değeri özet olarak çıkarmaktadır. SHA-3'ün sünger yapısı ise bunun yerine mesaj bloklarını Keccak-f fonksiyonu tarafından permütasyon uygulanan büyük bir durumun bir kısmına XOR'layarak emmekte, ardından özet bitlerini sıkıştırarak çıkarmakta; bu da düz Merkle-Damgaard'a özgü uzunluk uzatma özelliğini önlemektedir.

Klinik önem

Özet fonksiyonları yaygın olarak kullanılmaktadır: yazılım indirme bütünlüğünü doğrulamakta, dijital imzaları (tüm belgeyi değil, bir özeti imzalayan) demirlemekte, Git'teki içeriği ve içerik dağıtım ağlarını indekslemekte, yavaş anahtar türetme fonksiyonları (bcrypt, Argon2) aracılığıyla parola depolamasını güvence altına almakta ve blok zincirlerinin temelini oluşturan iş kanıtı ve Merkle ağaçlarını sağlamaktadır. MD5 ve SHA-1 çakışma direncinin pratik olarak kırılması, internet genelinde SHA-2'ye geçişi zorunlu kılmıştır.

Kanıt ve kılavuzlar

SHA-2 (SHA-256, SHA-512) FIPS 180-4'te ve SHA-3 FIPS 202'de belirtilmektedir; her ikisi de NIST onaylıdır. MD5 ve SHA-1, gösterilen çakışma saldırılarından sonra güvenlik kullanımı için kullanımdan kaldırılmıştır (2017 SHAttered SHA-1 çakışması bir dönüm noktası olarak kabul edilmektedir). Parola depolama için standartlar, düz özetleme yerine Argon2 gibi bellek-zorlu fonksiyonları önermektedir.

Tarihçe

MD ailesi (Rivest'in MD4 ve MD5'i) ve NSA tarafından tasarlanan SHA-0/SHA-1, 1990'lara damgasını vurmuştur. Xiaoyun Wang'ın çakışma saldırıları (2004-2005) MD5'i kırmış ve SHA-1'i zayıflatmış, bu da NIST'in açık SHA-3 yarışmasını (2007-2012) tetiklemiştir; bu yarışmayı Bertoni, Daemen, Peeters ve Van Assche'nin Keccak sünger tasarımı kazanmıştır. SHA-1, 2017'deki SHAttered çakışmasıyla pratik olarak kırılmıştır.

Öne çıkan isimler

  • Ralph Merkle
  • Ivan Damgaard
  • Guido Bertoni
  • Joan Daemen
  • Xiaoyun Wang

İlgili konular

Temel eserler

  • nist2015sha3
  • katz2020
  • menezes1996

Sıkça sorulan sorular

Neden bir parolayı sadece özetleyip özeti depolayamıyorum?
Düz kriptografik özetler hızlıdır, bu da saldırganların çalınan bir veritabanına karşı saniyede milyarlarca tahmin denemesine olanak tanımaktadır. Parola depolama bunun yerine kasıtlı olarak yavaş, tuzlanmış, bellek-zorlu fonksiyonlar (bcrypt, scrypt, Argon2) kullanmakta, böylece her parolayı kaba kuvvetle kırmak maliyetli hale gelmektedir.
SHA-1 kırıldığına göre SHA-256 da kırıldı mı?
Hayır. SHA-1 ve SHA-256 farklı algoritmalardır; SHA-1'deki çakışma saldırıları SHA-2'ye aktarılamamaktadır. SHA-256 kırılmamış olup, SHA-3 ile birlikte önerilen genel amaçlı özet olarak kabul edilmektedir.

Bu kavram için yöntemler

İlgili kavramlar