· kaynak Hacker News – Front Page (native)
Trail of Bits, SequenceHash'i açık kaynak yaptı: Her hash fonksiyonuyla güvenli çoklu hashing
Trail of Bits, SequenceHash ve SequenceMAC'ı açık kaynak olarak yayımladı. Bu yapılar SHA2, BLAKE, RIPEMD ve diğer hash'lerle birden fazla değeri birlikte hash'lemeyi belirsizlikten arındırıyor; NIST'in TupleHash'i ise yalnızca Keccak ile çalışıyor.

Trail of Bits neyi yayımladı
Trail of Bits, SequenceHash ve anahtarlı karşılığı SequenceMAC'ı yayımladı; bu açık kaynak hash yapıları, çoklu hashing — yani birden fazla değeri birlikte hash'leme — işlemini neredeyse tüm modern hash fonksiyonlarıyla güvenli hale getiriyor. Şirketin blog yazısına göre belirtim Community Cryptography Specification Project (C2SP) kapsamına eklendi; Rust, Go ve Python'daki ilk uygulamaların yanı sıra, birden fazla hash fonksiyonunu kapsayan ve geliştiricilerin kendi portlarını hata ayıklarken işine yarayacak ara değerleri de içeren geniş bir test vektörü seti sunuluyor.
Aynı anda birden fazla şeyi hash'lemenin sorunu
Çoklu hashing, kriptografinin her yerinde karşınıza çıkar; bir makale ya da protokol N = Hash(X, Y, Z) gibi bir şey hesaplamınızı istediğinde ortaya çıkar. Sezgisel yaklaşım — her değeri ayrı çağrılarla hash fonksiyonuna vermek — güvensizdir, çünkü hash fonksiyonu girdilerin birleştirilmesinden (concatenation) başka bir şey görmez. Trail of Bits bunu SHA256 ile gösteriyor: "Test 0", "Test 1" ve "Test 2" değerlerini üç ayrı update çağrısıyla hash'lemek, önce "Test 0Test 1" ardından "Test 2" hash'lemekle ya da "Test 0", boş bir string ve "Test 1Test 2" hash'lemekle tamamen aynı özet üretir.
Bu belirsizliğin gerçek sonuçları var. Çoklu hashing, Fiat-Shamir dönüşümünün kritik bir bileşenidir; bu dönüşüm ise sıfır bilgi kanıtlarının (zero-knowledge proofs) temel tekniklerinden biridir ve buradaki hatalar kanıt sahteciliğine yol açabilir — Trail of Bits'e göre kripto para dünyasında bu hataların maliyeti bazen milyonlarca dolarla ölçülmüştür. Diğer yaygın kullanımlar arasında bir arşivdeki dosyaların doğrulanması, birden fazla işlemin tek bir hash altında toplanması ve bir sırrın rastgele bir blinding değeriyle birlikte hash'lendiği commitment şemaları sayılabilir; ikisi arasındaki sınır belirsizse bir commitment potansiyel olarak birden fazla şekilde açılabilir.
Buna rağmen tutarlı bir standart ortaya çıkmamış. Trail of Bits, denetimlerinde ve açık kaynak dünyasında, girdilerin içinde de bulunabilecek ayırıcı karakterler, karmaşıklık ve ince zamanlama riskleri ekleyen dolar işaretleriyle birleştirilmiş Base64 string'leri gibi kodlamalar ve bazı girdileri uzunluk-önekli (length-prefix) yapan ama diğerlerini yapmayan protokoller gibi geçici çözümler bulduğunu bildiriyor.
TupleHash neden yeterli olmadı
Bilinen en iyi mevcut çözüm, NIST SP 800-185'de tanımlanan TupleHash. Trail of Bits onu gerçekten iyi bir araç olarak nitelendiriyor: düz uzunluk-önekli kodlama kullanıyor, fiilen sınırsız girdi boyutlarını işliyor ve doğal bir şekilde genişletilebilir çıktı fonksiyonu olarak çalışıyor. Sorun şu ki TupleHash yalnızca SHA3'ün ardındaki permütasyon olan Keccak için tanımlı. Farklı bir hash fonksiyonu koymak, length-extension saldırılarına direnç gibi önemli özellikleri ortadan kaldırabilir. Son on yılda SHA3 benimsenmesi parlak olmayan bir seviyede kalmışken — ve CNSA 2.0, ABD hükümeti tedarik sektöründe neredeyse her şey için SHA384 ve SHA512'yi zorunlu kıldığından — birçok geliştirici standart bir seçeneksiz kalmış durumda. Merlin ve Trail of Bits'in kendi projesi decree gibi mevcut araçlar özellikle Fiat-Shamir dönüşümlerini hedefliyor ve günlük çoklu hashing'e genellenmiyor.
SequenceHash ne sunuyor
SequenceHash, kabaca HMAC'nin hash-agnostik olduğu şekilde hash-agnostik: SHA2 ailesi, BLAKE, RIPEMD ve diğer güvenli hash fonksiyonlarıyla kutudan çıktığı gibi çalışıyor ve geliştiricilerin bayt hizalı olmayan uğraştırıcı hesaplar yapmasını gerektirmiyor. Trail of Bits, yapının hash'lenen değerlerin bağlamlar arasında karıştırılmasını, genişletilmesini ya da yeniden oynatılmasını engelleyen dört özellik sunduğunu ve duyuruda ikisini ayrıntılandırdığını belirtiyor: belirsiz olmayan girdi kodlaması, yani herhangi bir uzunluktaki başka bir girdi dizisinin temeldeki hash'e aynı girdiyi üretemeyeceği anlamına geliyor — bu da "kastettiğinizi hash'leyin" Horton ilkesiyle uyumlu; ve length-extension önleme, yani H(A) bilen birinin A'yı öğrenmeden H(A || B) hesaplayabildiği klasik saldırıyı kapatıyor.
Yapının güvenliği tamamen temeldeki hash'e dayanıyor — MD4 veya SHA0 gibi kırılmış fonksiyonları ayağa kaldıramıyor ve belirtim SHA256 gibi makul bir seçim varsayıyor. Anahtarlı varyant olan SequenceMAC, 32 bayt ve üzeri anahtarları, teorik üst sınır olan 2^128 − 1 bayta kadar destekliyor.
Neden önemli
Belirsiz girdi kodlaması tekrarlayan bir kriptografik hata kaynağıdır ve şimdiye kadar Keccak ekosistemi dışındaki geliştiricilerin bunu önlemenin standartlaşmış, iyi test edilmiş bir yolu yoktu. SequenceHash, hâlâ SHA2, BLAKE veya RIPEMD çalıştıran sistemlerin çoğunluğuna, kamuya açık bir belirtim, diller arası uygulamalar ve doğrulama vektörleriyle hazır bir yapı sunuyor. Bu, ona en çok ihtiyaç duyan protokol tasarımcıları için — sıfır bilgi kanıt sistemleri ve SHA384 ve SHA512 ile sınırlandırılmış hükümet odaklı çalışmalar dahil — engeli düşürüyor ve mevcut geçici kodlama yamalarının yerini gözden geçirilebilecek, test edilebilecek ve yeniden kullanılabilecek bir şeyle değiştiriyor.
- #cryptography
- #hashing
- #open-source
- #security
- #zero-knowledge-proofs
İlgili yazılar
- Eylül 2026 cihaz CVE özeti: 14 pakette 36 açık, ikisi halihazırda istismar ediliyor
- Apple, yapay zeka ajanı riskleri nedeniyle macOS'ta Tam Disk Erişimi için açık kullanıcı onayı isteyecek
- Redis'in yaratıcısı antirez, DeepSeek ve Qwen modellerini yerel olarak çalıştıran ds4 adlı hafif bir C motorunu yayınladı