Dlaczego SHA-224 i SHA-256 używają różnych wartości początkowych?

9

Wikipedia - mówi SHA-2

SHA-224 jest identyczny z SHA-256, z wyjątkiem tego, że:

  • początkowe wartości zmiennych od h0 do h7 są różne, i
  • wyjście jest konstruowane przez pominięcie h7.

RFC3874 - 224-bitowa jednokierunkowa funkcja skrótu: mówi SHA-224

Zastosowanie innej wartości początkowej zapewnia, że ​​skróconej wartości skrótu komunikatu SHA-256 nie można pomylić z wartością skrótu komunikatu SHA-224 obliczoną na tych samych danych.

Moje pytania:

  1. Czy powyższy powód jest jedynym powodem, dla którego SHA-224 i SHA-256 używają różnych wartości początkowych?

  2. Dlaczego ważne jest, aby upewnić się, że wartości skrótu komunikatu SHA-256 nie można pomylić z wartością skrótu komunikatu SHA-224?

  3. Jeśli użyjemy tych samych wartości początkowych dla obu funkcji skrótu, czy bezpieczeństwo obu funkcji skrótu pogorszy się? Jeśli tak to jak?

netvope
źródło
7
Jest to prawie na pewno lepsze dopasowanie do crypto.SE .
Peter Taylor
1
Przynajmniej pytanie 2 wydaje się tutaj nie na temat. W końcu jest to związane z tym, jak ludzie korzystają z komputerów i co jest dla nich wygodne; tak naprawdę nie jest to pytanie TCS.
Jukka Suomela,
Podobne pytanie w witrynie Crypto.SE: crypto.stackexchange.com/questions/3946/…
mikeazo

Odpowiedzi:

4
  1. Nazywaliśmy to Separacją Domen, gdy używamy tego samego algorytmu dla różnych wielkości wyjściowych.
  2. Rozdzielenie jest konieczne, ponieważ jeśli znalazłem dwie wiadomości, które mają wartość skrótu (SH256), różnią się tylko ostatnim oktetem, a następnie mogę opublikować wartość skrótu jako pierwsze 7 oktetów, pokazując, że użyłem SHA224. ponieważ mam już dwie wiadomości kolidujące z SHA224, których później mogę użyć do ataku fałszerstwa. Stosując separację domen możemy uniknąć takiej sytuacji
Tarun
źródło