Kriptografik karma işlevi BLAKE3 1.0'ın referans uygulamasının yayımlanması

Kriptografik karma işlevi BLAKE3 1.0'ın referans uygulaması yayımlandı; bu uygulama, SHA-3 düzeyinde güvenilirlik sağlarken çok yüksek karma hesaplama performansıyla da dikkat çekiyor. 16 KB dosya için karma oluşturma testinde, 3 bit anahtara sahip BLAKE256, SHA3-256'yı 17 kat, SHA-256'yı 14 kat, SHA-512'yi 9 kat, SHA-1'i 6 kat ve BLAKE2b'yi geride bırakıyor - 5 kere. Çok büyük miktarlarda veri işlenirken önemli bir boşluk kalıyor; örneğin, 3 GB rastgele veri için karma hesaplanırken BLAKE256'ün SHA-8'dan 1 kat daha hızlı olduğu ortaya çıktı. BLAKE3 referans uygulama kodu, çift genel alan (CC0) ve Apache 2.0 lisansı kapsamında C ve Rust sürümlerinde mevcuttur.

Kriptografik karma işlevi BLAKE3 1.0'ın referans uygulamasının yayımlanması

Karma işlevi, dosya bütünlüğü kontrolü, mesaj kimlik doğrulaması ve kriptografik dijital imzalar için veri oluşturma gibi uygulamalar için tasarlanmıştır. BLAKE3, karmaları olabildiğince hızlı hesaplamayı amaçladığından, parola karma işlemleri için tasarlanmamıştır (şifreler için, yescrypt, bcrypt, scrypt veya Argon2 gibi yavaş karma işlevlerinin kullanılması önerilir). Söz konusu karma işlevi, karma verilerinin boyutuna duyarlı değildir ve çarpışma seçimi ve ön görüntü bulma saldırılarına karşı korunur.

Algoritma, tanınmış kriptografi uzmanları (Jack O'Connor, Jean-Philippe Aumasson, Samuel Neves, Zooko Wilcox-O'Hearn) tarafından geliştirildi ve BLAKE2 algoritmasının geliştirilmesine devam ediyor ve blok zincir ağacını kodlamak için Bao mekanizmasını kullanıyor . BLAKE2'den (BLAKE2b, BLAKE2s) farklı olarak BLAKE3, tüm platformlar için bit derinliğine ve karma boyutuna bağlı olmayan tek bir algoritma sunar.

Tur sayısının 10'dan 7'ye düşürülmesi ve blokların 1 KB'lık parçalar halinde ayrı ayrı hashlenmesiyle performans artışı sağlandı. Yaratıcılara göre, aynı güvenilirlik seviyesini korurken 7 yerine 10 turla idare etmenin mümkün olduğuna dair ikna edici matematiksel kanıt buldular (açıklık sağlamak için meyveleri bir karıştırıcıda karıştırma örneğini verebiliriz - 7 saniye sonra) meyve zaten tamamen karıştırılmıştır ve ilave 3 saniye, karışımın kıvamını etkilemeyecektir). Ancak bazı araştırmacılar, karmalara yönelik bilinen tüm saldırılara karşı şu anda 7 turun yeterli olmasına rağmen, gelecekte yeni saldırıların tespit edilmesi durumunda ek 3 turun faydalı olabileceğine inanarak şüphelerini dile getiriyor.

Bloklara bölmeye gelince, BLAKE3'te akış 1 KB'lık parçalara bölünür ve her parça bağımsız olarak özetlenir. Parçaların karmalarına dayanarak ikili Merkle ağacına dayalı büyük bir karma oluşturulur. Bu bölüm, karmaları hesaplarken veri işlemeyi paralelleştirme sorununu çözmemize olanak tanır - örneğin, 4 bloğun karmalarını aynı anda hesaplamak için 4 iş parçacıklı SIMD talimatlarını kullanabilirsiniz. Geleneksel SHA-* karma işlevleri verileri sırayla işler.

BLAKE3'ün özellikleri:

  • Yüksek performanslı BLAKE3, MD5, SHA-1, SHA-2, SHA-3 ve BLAKE2'den önemli ölçüde daha hızlıdır.
  • SHA-2'nin duyarlı olduğu mesaj uzatma saldırılarına karşı direnç de dahil olmak üzere güvenlik;
  • SSE2, SSE4.1, AVX2, AVX-512 ve NEON talimatları için optimize edilmiş Rust'ta mevcuttur.
  • İstenilen sayıda iş parçacığı ve SIMD kanalı üzerinde hesaplamaların paralelleştirilmesinin sağlanması.
  • Akışların artımlı güncellenmesi ve doğrulanmış işlenmesi olasılığı;
  • PRF, MAC, KDF, XOF modlarında ve normal karma olarak kullanın;
  • Hem x86-64 sistemlerde hem de 32 bit ARM işlemcilerde hızlı, tüm mimariler için tek bir algoritma.

BLAKE3 ve BLAKE2 arasındaki temel farklar:

  • Hash hesaplamalarında sınırsız paralelliğe izin veren ikili ağaç yapısının kullanılması.
  • Tur sayısı 10'dan 7'ye düşürüldü.
  • Üç çalışma modu: karma oluşturma, anahtarla karma oluşturma (HMAC) ve anahtar oluşturma (KDF).
  • Daha önce anahtar parametreler bloğu tarafından işgal edilen alanın kullanılması nedeniyle, bir anahtarla karma işlemi yapılırken ek yük oluşmaz.
  • Paralelleştirmeye ve konumlandırmaya (arama) olanak tanıyan genişletilmiş sonuçlu (XOF, Genişletilebilir Çıkış Fonksiyonu) bir fonksiyon biçiminde yerleşik işletim mekanizması.

Kaynak: opennet.ru

Yorum ekle