Doğrusal problama için 5 bağımsız hash işlevlerini yeniden kullanma


14

Doğrusal problama ile çarpışmaları çözen karma tablolarda, beklenen performansı sağlamak için, karma işlevinin 5 bağımsız bir aileden olması hem gerekli hem de yeterlidir. (Yeterlilik: "Sabit bağımsızlıkla doğrusal problama", Pagh ve ark. , Gereklilik: "Doğrusal Sondalama ve Minwise Bağımsızlık için Gerekli k-Bağımsızlık Üzerine", Pătraşcu ve Thorup )O(1)

Anladığım kadarıyla, bilinen en hızlı 5 bağımsız aile tablo kullanıyor. Böyle bir aileden bir işlev seçmek pahalı olabilir, bu yüzden Crosby ve Wallach'ın "Algoritmik Karmaşıklık Saldırıları ile Hizmet Reddi" nde açıklanan algoritmik karmaşıklık saldırılarını önlerken bunu yapmamın sayısını en aza indirmek istiyorum . Zamanlama saldırıları hakkında daha az endişeliyim (yani kronometreli rakipler). Aynı işlevi tekrar kullanmanın sonuçları nelerdir:

  1. Çok dolu bir karma tablo büyürken?
  2. Yeterince dolu olmayan bir karma tabloyu küçültürken?
  3. Çok fazla "silinmiş" bit ayarlanmış bir karma tablosu yeniden oluşturulurken?
  4. Gelen farklı hash tabloları bu ortak noktası bazı tuşları içerebilir?k
  5. Gelen ortak noktası anahtarlar içermelidir farklı karma tablolar?k

Bu uygulama hakkında bir soru ise, makul bir pragmatik yaklaşım, tablolamaya dayalı bir şema kullanmak yerine, girişe rastgele bir sır dahil edilmiş bir kriptografik karma işlevini kullanmaktır. Sonra aynı karma işlevini yeniden kullanmak için daha az baskı vardır; her karma tablosu için farklı bir sır kullanabilirsiniz (ve karma tabloyu küçültürken / büyürken / yeniden inşa ederken, sırrı değiştirebilir ve her şeyi yeniden şekillendirebilirsiniz).
DW

SipHash-2-4 gibi kısa girdilerdeki hızlı kriptografik hash işlevlerinin bile polinom kullanan 5 bağımsız aileye kıyasla oldukça yavaş olduğunu düşünüyorum.
jbapple

Yanıtlar:


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.