Konkurs funkcji skrótu NIST - NIST hash function competition

Konkurs na funkcję skrótu NIST był otwartym konkursem zorganizowanym przez Narodowy Instytut Standardów i Technologii (NIST) w USA w celu opracowania nowej funkcji skrótu o nazwie SHA-3, która będzie uzupełnieniem starszych SHA-1 i SHA-2 . Konkurs został oficjalnie ogłoszony w Federal Register w dniu 2 listopada 2007. „NIST jest zainicjowanie starań, aby opracować jeden lub więcej dodatkowych algorytmów mieszania w drodze publicznego konkursu, podobny do procesu rozwoju dla Advanced Encryption Standard (AES).” Konkurs zakończył się 2 października 2012 r., Kiedy NIST ogłosił, że Keccak będzie nowym algorytmem haszującym SHA-3.

Zwycięska funkcja skrótu została opublikowana jako NIST FIPS 202, „SHA-3 Standard”, jako uzupełnienie FIPS 180-4, Secure Hash Standard .

Konkurs NIST zainspirował inne konkursy, takie jak konkurs haszowania haseł .

Proces

Termin składania zgłoszeń upływał 31 października 2008 r., A lista kandydatów przyjętych do pierwszej tury została opublikowana 9 grudnia 2008 r. NIST zorganizował konferencję pod koniec lutego 2009 r., Na której zgłaszający przedstawili swoje algorytmy, a urzędnicy NIST omówili kryteria zawężenia zakresu kandydatów. do Rundy 2. Lista 14 kandydatów przyjętych do Rundy 2 została opublikowana 24 lipca 2009 r. Kolejna konferencja odbyła się w dniach 23–24 sierpnia 2010 r. (po CRYPTO 2010) na Uniwersytecie Kalifornijskim w Santa Barbara , gdzie druga - omawiano kandydatów z rundy. Ogłoszenie kandydatów do finału nastąpiło 10 grudnia 2010 r. 2 października 2012 r. NIST ogłosił zwycięzcę, wybierając Keccak , stworzony przez Guido Bertoni, Joan Daemen i Gilles Van Assche z STMicroelectronics i Michaël Peeters z NXP.

Uczestnicy

To jest niekompletna lista znanych zgłoszeń. NIST wybrał 51 zgłoszeń do rundy 1. 14 z nich awansowało do rundy 2, z której wyłoniono 5 finalistów.

Zwycięzca

Zwycięzcą został Keccak 2 października 2012 roku.

Finaliści

NIST wybrał pięć kandydujących algorytmów SHA-3, aby przejść do trzeciej (i ostatniej) rundy:

NIST zwrócił uwagę na kilka czynników, które wpłynęły na jego wybór, gdy ogłosił finalistów:

  • Wydajność: „Kilka algorytmów zostało uszkodzonych lub wyeliminowanych przez wymaganie bardzo dużego obszaru [bramki sprzętowej] - wydawało się, że obszar, którego wymagały, wykluczał ich użycie w zbyt dużej potencjalnej przestrzeni aplikacji”.
  • Bezpieczeństwo: „Woleliśmy być konserwatywni, jeśli chodzi o bezpieczeństwo, aw niektórych przypadkach nie wybieraliśmy algorytmów o wyjątkowej wydajności, głównie dlatego, że coś w nich denerwowało nas, chociaż nie wiedzieliśmy o wyraźnym ataku na pełny algorytm”.
  • Analiza: „NIST wyeliminował kilka algorytmów z powodu zakresu ich poprawek w drugiej rundzie lub ze względu na względny brak zgłoszonej kryptoanalizy - albo powodowało podejrzenie, że projekt może nie być jeszcze w pełni przetestowany i dojrzały”.
  • Różnorodność: finaliści uwzględnili skróty oparte na różnych trybach działania, w tym konstrukcjach funkcji HAIFA i gąbki , oraz o różnych strukturach wewnętrznych, w tym opartych na AES, bitslicing i naprzemiennym XOR z dodatkami.

NIST opublikował raport wyjaśniający algorytm oceny według algorytmu.

Nie przeszedł do rundy finałowej

Następujące zgłoszenia funkcji skrótu zostały zaakceptowane do rundy drugiej, ale nie dotarły do ​​rundy finałowej. Jak zauważono w ogłoszeniu finalistów, „żaden z tych kandydatów nie został wyraźnie złamany”.

Nie przeszedł do rundy drugiej

Następujące zgłoszenia funkcji skrótu zostały zaakceptowane do rundy pierwszej, ale nie przeszły do ​​rundy drugiej. Nie zostały one przyznane przez podmioty przesyłające ani nie miały znacznych słabości kryptograficznych. Jednak większość z nich ma pewne słabości w komponentach projektu lub problemy z wydajnością.

Uczestnicy z istotnymi słabościami

Następujący uczestnicy Rundy Pierwszej, którzy nie zostali poddani, zgłosili istotne słabości kryptograficzne:

Zwolnieni uczestnicy

Następni uczestnicy Rundy Pierwszej zostali oficjalnie wycofani z konkursu przez swoich zgłaszających; są uważane za złamane zgodnie z oficjalną stroną internetową NIST dla kandydatów Round One. Jako takie są wycofywane z konkursu.

  • Liczydło
  • Boole
  • DCH
  • Khichidi-1
  • MeshHash
  • SHAMATA
  • StreamHash
  • Splot
  • WaMM
  • Wodospad

Odrzuceni uczestnicy

Kilka zgłoszeń otrzymanych przez NIST nie zostało zaakceptowanych jako kandydaci do pierwszej rundy po wewnętrznej ocenie NIST. Ogólnie rzecz biorąc, NIST nie podał żadnych szczegółów, dlaczego każdy z nich został odrzucony. NIST również nie podał pełnej listy odrzuconych algorytmów; wiadomo, że jest ich 13, ale tylko następujące są publiczne.

  • HASH 2X
  • Maraca
  • MIESZANKA
  • NKS 2D
  • Ponic
  • ZK-Crypt

Zobacz też

Bibliografia

Linki zewnętrzne