Notatki metodologiczne · 05
Losowość commit–reveal, wyjaśniona
Zobowiązanie kryptograficzne nie dowodzi, że wybór był losowy, ale może dowieść, że serwer nie podmienił go po zobaczeniu twojego typowania.
W skrócie
- Najpierw zobowiązanie: publikacja skrótu ukrytej karty i świeżego nonce.
- Potem ujawnienie: pokazanie obu wartości, by każdy mógł przeliczyć skrót.
- Zobowiązanie dowodzi kolejności i braku podmiany, nie jakości generatora losowego.
Zapieczętowana koperta z arytmetyki
Przed typowaniem serwer wybiera kartę i tworzy świeży losowy nonce. Łączy kartę i nonce w jednoznaczny ciąg bajtów i oblicza skrót SHA-256. Uczestnik otrzymuje ten skrót przed wysłaniem odpowiedzi.
Po utrwaleniu typowania serwer ujawnia kartę i nonce. Ponowne obliczenie tego samego skrótu pokazuje, że wartości pasują do wcześniejszego zobowiązania. Zamiana koła na gwiazdę albo wymyślenie innego nonce z niemal całkowitą pewnością dałoby inny skrót.
Dlaczego nonce jest konieczny
Istnieje tylko pięć symboli Zenera. Gdyby serwer skracał samą kartę, uczestnik mógłby obliczyć skróty wszystkich pięciu nazw i porównać je ze zobowiązaniem przed typowaniem. Nonce rozszerza ukrytą przestrzeń tak bardzo, że taki atak słownikowy przestaje być praktyczny.
Nonce musi być nowy dla każdej próby i ujawniony dokładnie. Sposób kodowania także należy do protokołu: „star” połączone z „12” nie może zostać pomylone z inną parą wartości, która przypadkiem tworzy ten sam tekst przed skróceniem.
Granica dowodu
Zgodne ujawnienie dowodzi, że pokazana karta była przedmiotem zobowiązania przed typowaniem. Nie dowodzi, że kartę wylosowano równomiernie. Nieuczciwy serwer mógłby z góry zobowiązać się do obciążonej sekwencji i ujawnić ją bezbłędnie. Testy rozkładu i otwarty kod dotyczą tego osobnego twierdzenia.
Metoda nie dowodzi też, co stało się na urządzeniu, które nie otrzymało zobowiązania. Otwarty zapis musi więc zachować razem skrót, typowanie, ujawnienie, kolejność próby i wersję algorytmu. Ujawnianie manipulacji jest łańcuchem; pominięcie jednego ogniwa zmienia kryptograficzny dowód w dekorację.
Źródła
- Standard bezpiecznego skrótu
NIST FIPS PUB 180-4 · Źródło instytucjonalne · NIST FIPS 180-4 · DOI 10.6028/NIST.FIPS.180-4 · SRC-63FE4C4C - Przejrzystość certyfikatów
Laurie, Langley & Kasper, RFC 6962, 2013 · Źródło instytucjonalne · RFC 6962 · SRC-C14688D5