Funkcja gąbka - Sponge function
W kryptografii , A funkcja gąbka lub konstrukcja gąbka jest jedną z klasy algorytmów o ograniczonym stanie wewnętrznego , które mają wejście strumienia bitów o dowolnej długości i wytworzenia wyjściowego strumienia bitów o dowolnej długości. Funkcje gąbki mają zarówno teoretycznych i praktycznych zastosowań. Mogą one być wykorzystywane do modelowania lub realizować wiele elementarnych operacji kryptograficznych , w tym skrótów kryptograficznych , kodów uwierzytelnienia wiadomości , funkcji wytwarzania maski , szyfrów strumienia , generatorów liczb pseudolosowych i uwierzytelnione szyfrowania .
Zawartość
Budowa
Funkcja gąbka jest zbudowany z trzech komponentów:
- pamięć stanu, S, zawierający b bitów
- funkcją , który przekształca pamięci stanu (często jest pseudolosowych Permutacja wartości stanu)
- funkcją Wypełnienie P
Pamięć stan jest podzielona na dwie części: jedna o rozmiarze R (przepływności) i pozostałej części o rozmiarze C (liczba). Sekcje te są oznaczone R i C , odpowiednio.
Funkcja wyściółka dodaje tyle bitów w ciągu wejściowego tak, że długość wkładu wyściełana jest całkowitą wielokrotnością od przepływności, R. Wejście wyściełany może być zatem podzielony na r bloków bitowych.
Operacja
Funkcja gąbka działa w następujący sposób:
- Stan S jest inicjowany na zero
- Ciąg wejściowy jest usztywniony. Oznacza to, że wejściowy jest przekształcony bloków r bity z wykorzystaniem funkcji Wypełnienie P .
- na każdy R -bitowych bloków B wejścia wyściełanej:
- R jest zastąpiony R XOR B (za pomocą logiczną XOR )
- S jest zastąpiony przez F ( S )
Ten proces „pochłania” (w gąbkę metafory) wszystkie bloki wyściełanym wejściowego łańcucha.
Wyjście funkcji gąbka jest teraz gotowy do wytworzone ( „wyciskana”), jak następuje:
- R część pamięci stanu wyjścia
- powtarzać aż wystarczająco bity są wysyłane:
- S jest zastąpiony przez F ( S )
- R część pamięci stanu wyjścia
Jeżeli jest ona mniejsza niż r bitów pozostaje do wyjścia, to R będzie obcięta (tylko część R będzie wyprowadzany).
Innym przenośnia opisuje stan pamięci w postaci „ basenie entropii ” z wejściem „wylano do” puli, a funkcja przetwarzania określa się jako „mieszanie dostępnej puli”.
Należy pamiętać, że bity wejściowe nie są XORed do części C pamięci państwowej, ani jakichkolwiek bitów C kiedykolwiek wyjście bezpośrednio. Zakres, w którym C jest zmieniana przez wejście całkowicie zależy od funkcji przetwarzania C. W zastosowaniach mieszających, odporność na zderzenia lub ataków preimage zależy C, a jej wielkość ( „wielkość” C ) jest zwykle dwukrotnie żądany poziom oporu.
konstrukcja duplex
Możliwe jest również, aby wchłonąć i ścisnąć w sposób naprzemienny. Operacja ta nazywana jest budowa dupleks lub dupleks. To może być podstawą jednego przejazdu uwierzytelnione systemu szyfrowania.
- Stan S jest inicjowany na zero
- R XORed z pierwszym R bloku bitowych wejścia
- S jest zastąpiony przez F (S)
- R jest pierwsze R bitów na wyjściu.
- R XORed z następnym R bloku bitowych wejścia
- S jest zastąpiony przez F (S)
- R jest kolejne R bitów na wyjściu.
- ...
tryb nadpisywania
Jest możliwe pominięcie operacji XOR podczas wchłaniania, zachowując wybrany poziom bezpieczeństwa . W tym trybie, w fazie chłonnej następny blok wejścia zastępuje część R stanu. Pozwala to na utrzymanie mniejszego stanu pomiędzy etapami. Ponieważ część R zostaną zastąpione w każdym razie, można go wyrzucić z góry, tylko część C musi być zachowany.
Aplikacje
Funkcje gąbki mają zarówno teoretycznych i praktycznych zastosowań. W kryptoanalizy teoretycznej, A losową funkcją gąbka jest konstrukcją gąbki, gdzie f jest permutacją losowy lub przekształcenia, odpowiednio. Losowo wybrane funkcje gąbka uchwycić bardziej praktycznych ograniczeń prymitywów kryptograficznych niż robi to powszechnie używany losowo oracle modelu, w szczególności skończonego stanu wewnętrznego.
Budowa gąbki mogą być również wykorzystywane do budowania praktycznych operacji kryptograficznych. Na przykład, Keccak kryptograficzny gąbka ze stanem 1600 bit został wybrany przez NIST jako zwycięzca w konkurencji SHA-3 . Siła Keccak wynika z zawiłą wielorazowego użytku permutacji f że twórcy opracowali. RC4 -redesign zwane Spritz dotyczy gąbkę konstruktu do określenia algorytmu.
Na innym przykładzie, funkcja gąbki mogą być stosowane do tworzenia uwierzytelniony szyfrowanie ze związanymi danymi (AEAD).