Szyfr blokowy - Block cipher

W kryptografii , A szyfr blokowy jest deterministyczny algorytm działający na grupy o stałej długości bitów , zwanych bloków . Są one określonymi podstawowymi elementami w projektowaniu wielu protokołów kryptograficznych i są szeroko stosowane do implementacji szyfrowania dużych ilości danych, w tym protokołów wymiany danych. Używa bloków jako niezmiennej transformacji.

Nawet bezpieczny szyfr blokowy nadaje się do szyfrowania tylko jednego bloku danych na raz, przy użyciu stałego klucza. Wiele trybów działania zostało zaprojektowanych tak, aby umożliwić ich wielokrotne użycie w bezpieczny sposób, aby osiągnąć cele bezpieczeństwa, jakimi są poufność i autentyczność . Jednak szyfry blokowe mogą również stanowić bloki konstrukcyjne w innych protokołach kryptograficznych, takich jak uniwersalne funkcje skrótu i generatory liczb pseudolosowych.

Definicja

Szyfr blokowy składa się z dwóch sparowanych algorytmów , jednego do szyfrowania, E , a drugiego do deszyfrowania, D . Oba algorytmy akceptują dwa dane wejściowe: blok wejściowy o rozmiarze n bitów i klucz o rozmiarze k bitów; i oba dają n- bitowy blok wyjściowy. Algorytm deszyfrowania D jest zdefiniowany jako odwrotna funkcja szyfrowania, tj. D = E- 1 . Bardziej formalnie, szyfr blokowy jest określony przez funkcję szyfrowania

który przyjmuje jako dane wejściowe klucz K o długości w bitach k (nazywany rozmiarem klucza ) i łańcuch bitów P o długości n (nazywany rozmiarem bloku ) i zwraca łańcuch C składający się z n bitów. P to tekst jawny , a C to tekst zaszyfrowany . Dla każdego K funkcja E K ( P ) musi być odwzorowaniem odwracalnym na {0,1} n . Odwrotność dla E jest zdefiniowana jako funkcja

pobranie klucza K i tekstu zaszyfrowanego C w celu zwrócenia wartości tekstu jawnego P , takiej, że

Na przykład algorytm szyfrowania blokowego może przyjąć jako dane wejściowe 128-bitowy blok tekstu jawnego i wyprowadzić odpowiadający mu 128-bitowy blok zaszyfrowanego tekstu. Dokładna transformacja jest kontrolowana za pomocą drugiego wejścia – tajnego klucza. Deszyfrowanie jest podobne: algorytm deszyfrowania pobiera, w tym przykładzie, 128-bitowy blok zaszyfrowanego tekstu wraz z tajnym kluczem i daje oryginalny 128-bitowy blok zwykłego tekstu.

Dla każdego klucza K , E K jest permutacją ( odwzorowaniem bijektywnym ) na zbiorze bloków wejściowych. Każdy klucz wybiera jedną permutację z zestawu możliwych permutacji.

Historia

Nowoczesna konstrukcja szyfrów blokowych oparta jest na koncepcji iterowanego szyfru produktowego . W swojej przełomowej publikacji z 1949 r., Communication Theory of Secrecy Systems , Claude Shannon przeanalizował szyfry produktów i zasugerował je jako sposób na skuteczne zwiększenie bezpieczeństwa poprzez łączenie prostych operacji, takich jak podstawienia i permutacje . Iterowane szyfry produktowe przeprowadzają szyfrowanie w wielu rundach, z których każda używa innego podklucza pochodzącego z oryginalnego klucza. Jedna z rozpowszechnionych implementacji takich szyfrów, nazwana siecią Feistel na cześć Horsta Feistela , jest w szczególności zaimplementowana w szyfrze DES . Wiele innych realizacji szyfrów blokowych, takich jak AES , jest klasyfikowanych jako sieci substytucyjno-permutacyjne .

Podstawą wszystkich formatów bloków kryptograficznych wykorzystywanych w standardach Payment Card Industry Data Security Standard (PCI DSS) i American National Standards Institute (ANSI) jest Atalla Key Block (AKB), który był kluczową innowacją Atalla Box , pierwszy sprzętowy moduł bezpieczeństwa (HSM). Został on opracowany w 1972 roku przez Mohamed M. Atalla , założyciela Atalla Corporation (obecnie Utimaco Atalla ), a wydana w 1973 roku AKB był kluczowy blok, który jest wymagany do bezpiecznego wymiany kluczy symetrycznych lub PIN z innymi podmiotami sektora bankowego . Ta bezpieczna wymiana odbywa się przy użyciu formatu AKB. Atalla Box chronił ponad 90% wszystkich działających sieci bankomatów od 1998 roku, a produkty Atalla nadal zabezpieczają większość światowych transakcji bankomatowych od 2014 roku.

Publikacja szyfru DES przez Narodowe Biuro Standardów Stanów Zjednoczonych (później Narodowy Instytut Standardów i Technologii USA , NIST) w 1977 r. miała fundamentalne znaczenie dla publicznego zrozumienia współczesnego projektowania szyfrów blokowych. Wpłynęło to również na akademicki rozwój ataków kryptoanalitycznych . Zarówno różnicowa, jak i liniowa kryptoanaliza powstała na podstawie badań projektu DES. Od 2016 r. istnieje paleta technik ataku, przed którymi szyfr blokowy musi być zabezpieczony, a także odporny na ataki siłowe .

Projekt

Iterowane szyfry blokowe

Większość algorytmów szyfrowania blokowego jest klasyfikowana jako iterowane szyfry blokowe, co oznacza, że ​​przekształcają bloki tekstu jawnego o stałym rozmiarze w bloki tekstu zaszyfrowanego o identycznym rozmiarze , poprzez powtarzane zastosowanie odwracalnej transformacji znanej jako funkcja round , z każdą iteracją określaną jako runda .

Zwykle funkcja rundy R przyjmuje różne klucze rundy K i jako drugie wejście, które pochodzą z oryginalnego klucza:

gdzie jest tekst jawny i tekst zaszyfrowany, gdzie r jest liczbą rund.

Często oprócz tego stosuje się wybielanie klawiszy . Na początku i na końcu dane są modyfikowane za pomocą materiału klucza (często za pomocą XOR , ale używane są również proste operacje arytmetyczne, takie jak dodawanie i odejmowanie):

Biorąc pod uwagę jeden ze standardowych schematów projektowania iterowanych szyfrów blokowych, dość łatwo jest skonstruować szyfr blokowy, który jest bezpieczny kryptograficznie, po prostu używając dużej liczby rund. Jednak spowoduje to, że szyfr będzie nieefektywny. Zatem wydajność jest najważniejszym dodatkowym kryterium projektowym dla profesjonalnych szyfrów. Co więcej, dobry szyfr blokowy ma na celu unikanie ataków kanałem bocznym, takich jak przewidywanie rozgałęzień i dostępy do pamięci zależne od danych wejściowych, które mogą przeciekać tajne dane za pośrednictwem stanu pamięci podręcznej lub czasu wykonania. Ponadto szyfr powinien być zwięzły, w przypadku niewielkich wdrożeń sprzętowych i programowych. Wreszcie szyfr powinien być łatwy do kryptoanalizy, tak aby można było pokazać, do ilu rund należy zredukować szyfr, aby istniejące ataki kryptograficzne zadziałały – i odwrotnie, aby można było wykazać, że liczba rund jest wystarczająco duży, aby chronić przed nimi.

Sieci substytucyjno-permutacyjne

Szkic sieci substytucyjno-permutacyjnej z 3 rundami, szyfrującej 16-bitowy blok tekstu jawnego w 16-bitowy blok tekstu zaszyfrowanego. S-boxy to S i , P-boxy to to samo P , a okrągłe klawisze to K i .

Jeden ważny typ iterowanego szyfru blokowego, znany jako sieć permutacji podstawienia (SPN), pobiera blok tekstu jawnego i klucza jako dane wejściowe i stosuje kilka naprzemiennych rund składających się z etapu podstawienia, po którym następuje etap permutacji — w celu wytworzenia każdego bloku wyjście zaszyfrowanego tekstu. Etap podstawienia nieliniowego miesza kluczowe bity z bitami tekstu jawnego, powodując zamieszanie Shannona . Następnie etap permutacji liniowej rozprasza nadmiary, tworząc dyfuzję .

Pole substytucji (S-box) zastępuje mały blok bitów wejściowych innym blokiem bitów wyjściowych. To podstawienie musi być jeden do jednego , aby zapewnić odwracalność (stąd deszyfrowanie). Bezpieczny S-box będzie miał tę właściwość, że zmiana jednego bitu wejściowego zmieni średnio około połowy bitów wyjściowych, wykazując tak zwany efekt lawinowy — tj. ma tę właściwość, że każdy bit wyjściowy będzie zależał od każdego bitu wejściowego.

Pole permutacji (P-box) jest permutacji wszystkich bitów: trwa wyjścia wszystkich skrzynek S jednej rundzie permutacji bitów i podaje je do skrzynki S następnej rundy. Dobry P-box ma tę właściwość, że bity wyjściowe dowolnego S-boxa są rozprowadzane do jak największej liczby wejść S-box.

W każdej rundzie klucz okrągły (uzyskany z klucza za pomocą prostych operacji, na przykład za pomocą S-boxów i P-boxów) jest łączony za pomocą jakiejś operacji grupowej, zwykle XOR .

Deszyfrowanie odbywa się po prostu przez odwrócenie procesu (używając odwrotności S-boxów i P-boxów oraz stosując okrągłe klucze w odwrotnej kolejności).

Szyfry Feistela

Wiele szyfrów blokowych, takich jak DES i Blowfish, wykorzystuje struktury znane jako szyfry Feistela

W szyfrze Feistela blok zwykłego tekstu do zaszyfrowania jest podzielony na dwie równej wielkości połówki. Funkcja round jest stosowana do jednej połowy za pomocą podklucza, a następnie wynik jest XORowany z drugą połową. Dwie połówki są następnie zamieniane.

Niech będzie funkcją round i niech będzie odpowiednio podkluczami dla rund .

Wtedy podstawowa operacja wygląda następująco:

Podziel blok tekstu jawnego na dwie równe części ( , )

Dla każdej rundy obliczyć

.

Wtedy tekst zaszyfrowany to .

Odszyfrowanie zaszyfrowanego tekstu odbywa się przez obliczenie dla

.

Potem znowu jest tekst jawny.

Jedną z zalet modelu Feistela w porównaniu z siecią substytucyjno-permutacyjną jest to, że funkcja zaokrąglania nie musi być odwracalna.

Szyfry Lai-Masseya

Schemat Lai-Masseya. Archetypowym szyfrem, który go używa, jest IDEA .

Schemat Lai-Massey oferuje właściwości bezpieczeństwa podobne do tych ze struktury Feistel . Ma również tę zaletę, że funkcja zaokrąglania nie musi być odwracalna. Innym podobieństwem jest to, że również dzieli blok wejściowy na dwie równe części. Jednak funkcja round jest stosowana do różnicy między nimi, a wynik jest następnie dodawany do obu półbloków.

Niech będzie funkcją round i funkcją half-round i niech będzie odpowiednio podkluczami dla rund .

Wtedy podstawowa operacja wygląda następująco:

Podziel blok tekstu jawnego na dwie równe części ( , )

Dla każdej rundy obliczyć

gdzie i

Wtedy tekst zaszyfrowany to .

Odszyfrowanie zaszyfrowanego tekstu odbywa się przez obliczenie dla

gdzie i

Potem znowu jest tekst jawny.

Operacje

ARX ​​(dodaj-obróć-XOR)

Wiele nowoczesnych szyfrów blokowych i skrótów to algorytmy ARX — ich funkcja zaokrąglania obejmuje tylko trzy operacje: (A) dodawanie modularne, (R) rotację ze stałymi wartościami rotacji oraz (X) XOR . Przykłady obejmują ChaCha20 , Speck , XXTEA i BLAKE . Wielu autorów rysuje sieć ARX, rodzaj diagramu przepływu danych , aby zilustrować taką okrągłą funkcję.

Te operacje ARX są popularne, ponieważ są stosunkowo szybkie i tanie w sprzęcie i oprogramowaniu, ich implementacja może być niezwykle prosta, a także dlatego, że działają w stałym czasie, a zatem są odporne na ataki czasowe . W rotacyjne cryptanalysis próby technika zaatakować takie okrągłe funkcje.

Inne operacje

Inne operacje często używane w szyfrach blokowych obejmują rotacje zależne od danych, jak w RC5 i RC6 , pole podstawienia zaimplementowane jako tablica przeglądowa, jak w Data Encryption Standard i Advanced Encryption Standard , pole permutacji i mnożenie, jak w IDEA .

Tryby działania

Niepewne szyfrowanie obrazu w wyniku kodowania w trybie elektronicznej książki kodowej (EBC).

Sam szyfr blokowy umożliwia szyfrowanie tylko jednego bloku danych o długości bloku szyfru. W przypadku wiadomości o zmiennej długości dane należy najpierw podzielić na oddzielne bloki szyfrów. W najprostszym przypadku, znanym jako tryb elektronicznej książki kodowej (EBC), wiadomość jest najpierw dzielona na oddzielne bloki o rozmiarze bloku szyfru (ewentualnie rozszerzając ostatni blok o bity dopełniające ), a następnie każdy blok jest szyfrowany i deszyfrowany niezależnie. Jednak taka naiwna metoda jest ogólnie niepewna, ponieważ równe bloki tekstu jawnego zawsze generują równe bloki tekstu zaszyfrowanego (dla tego samego klucza), więc wzorce w wiadomości w postaci tekstu jawnego stają się widoczne w danych wyjściowych tekstu zaszyfrowanego.

Aby przezwyciężyć to ograniczenie, zaprojektowano i określono kilka tak zwanych trybów szyfrowania blokowego w zaleceniach krajowych, takich jak NIST 800-38A i BSI TR-02102 oraz normach międzynarodowych, takich jak ISO/IEC 10116 . Ogólną koncepcją jest wykorzystanie randomizacji danych w postaci zwykłego tekstu w oparciu o dodatkową wartość wejściową, często nazywaną wektorem inicjującym , w celu stworzenia tak zwanego szyfrowania probabilistycznego . W popularnym trybie szyfrowania blokowego (CBC), aby szyfrowanie było bezpieczne, wektor inicjujący przekazywany wraz z wiadomością w postaci zwykłego tekstu musi być wartością losową lub pseudolosową , która jest dodawana w sposób wyłączny lub w sposób wyłączny do pierwszego bloku tekstu jawnego przed jest szyfrowany. Powstały blok szyfrogramu jest następnie używany jako nowy wektor inicjujący dla następnego bloku tekstu jawnego. W trybie sprzężenia zwrotnego szyfrowania (CFB), który emuluje samosynchronizujący się szyfr strumieniowy , wektor inicjujący jest najpierw szyfrowany, a następnie dodawany do bloku tekstu jawnego. Tryb wyjściowych informacji zwrotnych (OFB) wielokrotnie szyfruje wektor inicjujący, aby utworzyć strumień kluczy do emulacji synchronicznego szyfru strumieniowego . Nowszy tryb licznika (CTR) podobnie tworzy strumień klucza, ale ma tę zaletę, że jako wektory inicjujące potrzebuje tylko unikalnych, a nie (pseudo-)losowych wartości; potrzebna losowość jest wyprowadzana wewnętrznie przez użycie wektora inicjalizacji jako licznika bloków i zaszyfrowanie tego licznika dla każdego bloku.

Z punktu widzenia teorii bezpieczeństwa , tryby działania muszą zapewniać to, co jest znane jako bezpieczeństwo semantyczne . Nieformalnie oznacza to, że mając jakiś zaszyfrowany tekst pod nieznanym kluczem, praktycznie nie można uzyskać z zaszyfrowanego tekstu żadnych informacji (innych niż długość wiadomości) na temat tego, co można by wiedzieć, nie widząc zaszyfrowanego tekstu. Wykazano, że wszystkie omówione powyżej tryby, z wyjątkiem trybu ECB, zapewniają tę właściwość w przypadku tzw. ataków z wybranym tekstem jawnym .

Wyściółka

Niektóre tryby, takie jak tryb CBC, działają tylko na pełnych blokach tekstu jawnego. Proste rozszerzenie ostatniego bloku wiadomości o bity zerowe jest niewystarczające, ponieważ nie pozwala odbiorcy na łatwe rozróżnienie wiadomości, które różnią się tylko ilością bitów wypełniających. Co ważniejsze, takie proste rozwiązanie daje początek bardzo skutecznym atakom padding oracle . Dlatego potrzebny jest odpowiedni schemat dopełnienia, aby rozszerzyć ostatni blok tekstu jawnego do rozmiaru bloku szyfru. Podczas gdy wiele popularnych schematów opisanych w standardach i w literaturze okazało się podatnych na ataki typu padding oracle, rozwiązanie, które dodaje jeden bit, a następnie rozszerza ostatni blok o bity zerowe, standaryzowane jako „metoda dopełniania 2” w ISO /IEC 9797-1, został zabezpieczony przed tymi atakami.

Kryptoanaliza

Ataki siłowe

Ta właściwość powoduje, że bezpieczeństwo szyfru spada kwadratowo i należy ją wziąć pod uwagę przy wyborze rozmiaru bloku. Istnieje jednak kompromis, ponieważ duże rozmiary bloków mogą spowodować, że algorytm stanie się nieefektywny w działaniu. Wcześniejsze szyfry blokowe, takie jak DES , zwykle wybierały 64-bitowy rozmiar bloku, podczas gdy nowsze projekty, takie jak AES, obsługują rozmiary bloków 128 bitów lub więcej, a niektóre szyfry obsługują szereg różnych rozmiarów bloków.

Kryptoanaliza różnicowa

Kryptoanaliza liniowa

Kryptoanaliza liniowa jest formą kryptoanalizy polegającą na znalezieniu afinicznych przybliżeń do działania szyfru . Kryptoanaliza liniowa jest jednym z dwóch najczęściej stosowanych ataków na szyfry blokowe; drugim jest kryptoanaliza różnicowa .

Odkrycie przypisuje się Mitsuru Matsui , który jako pierwszy zastosował tę technikę do szyfru FEAL (Matsui i Yamagishi, 1992).

Integralna kryptoanaliza

Integralna kryptoanaliza jest atakiem kryptoanalitycznym, który ma szczególne zastosowanie do szyfrów blokowych opartych na sieciach substytucyjno-permutacyjnych. W przeciwieństwie do kryptoanalizy różnicowej, która wykorzystuje pary wybranych tekstów jawnych ze stałą różnicą XOR, kryptoanaliza integralna wykorzystuje zestawy lub nawet zestawy wybranych tekstów jawnych, których część jest utrzymywana na stałym poziomie, a inna część zmienia się we wszystkich możliwościach. Na przykład atak może użyć 256 wybranych tekstów jawnych, które mają wszystkie oprócz 8 takich samych bitów, ale wszystkie różnią się tymi 8 bitami. Taki zbiór z konieczności ma sumę XOR równą 0, a sumy XOR odpowiednich zbiorów tekstów zaszyfrowanych dostarczają informacji o działaniu szyfru. Ten kontrast między różnicami par tekstów a sumami większych zbiorów tekstów zainspirował nazwę „kryptoanaliza integralna”, zapożyczając terminologię rachunku różniczkowego.

Inne techniki

Rozwój ataku bumerangowego umożliwił zastosowanie technik kryptoanalizy różnicowej do wielu szyfrów, które wcześniej uważano za bezpieczne przed atakami różnicowymi

Ponadto liniowych i różnicowej kryptoanalizy, rośnie katalogowy ataków: ściętego różnica kryptoanaliza częściowe różnica kryptograficznych, integralną kryptograficznych , które obejmuje kwadratowych i integralne ataków, ataków ślizgowe , ataki bumerang , na atak XSL , niemożliwe różnicowego kryptoanalizy i ataki algebraiczne . Aby nowy projekt szyfru blokowego miał jakąkolwiek wiarygodność, musi wykazywać dowody na zabezpieczenie przed znanymi atakami.

Udowodnione bezpieczeństwo

Kiedy szyfr blokowy jest używany w danym trybie działania , wynikowy algorytm powinien być w idealnym przypadku tak bezpieczny, jak sam szyfr blokowy. EBC (omawiany powyżej) zdecydowanie nie ma tej właściwości: niezależnie od tego, jak bezpieczny jest szyfr blokowy, tryb EBC można łatwo zaatakować. Z drugiej strony można udowodnić, że tryb CBC jest bezpieczny przy założeniu, że bazowy szyfr blokowy jest również bezpieczny. Należy jednak zauważyć, że formułowanie takich oświadczeń wymaga formalnych matematycznych definicji tego, co oznacza, że ​​algorytm szyfrowania lub szyfr blokowy jest „bezpieczny”. W tej sekcji opisano dwa popularne pojęcia dotyczące właściwości, jakie powinien mieć szyfr blokowy. Każdy odpowiada modelowi matematycznemu, który można wykorzystać do udowodnienia właściwości algorytmów wyższego poziomu, takich jak CBC.

To ogólne podejście do kryptografii – udowadnianie, że algorytmy wyższego poziomu (takie jak CBC) są bezpieczne przy wyraźnie określonych założeniach dotyczących ich komponentów (takich jak szyfr blokowy) – jest znane jako dowodliwe bezpieczeństwo .

Model standardowy

Nieformalnie szyfr blokowy jest bezpieczny w standardowym modelu, jeśli atakujący nie może odróżnić szyfru blokowego (wyposażonego w losowy klucz) od losowej permutacji.

Aby być bardziej precyzyjnym, niech E będzie n- bitowym szyfrem blokowym. Wyobrażamy sobie następującą grę:

  1. Osoba prowadząca grę rzuca monetą.
    • Jeśli moneta wyląduje na orłach, wybiera losowy klucz K i definiuje funkcję f = E K .
    • Jeśli moneta wyląduje na ogonie, wybiera losową permutację π na zbiorze n- bitowych ciągów i definiuje funkcję f = π .
  2. Atakujący wybiera ciąg n- bitowy X , a osoba prowadząca grę podaje mu wartość f ( X ).
  3. Krok 2 powtarza się łącznie q razy. (Każda z tych q interakcji jest zapytaniem ).
  4. Atakujący zgaduje, jak wylądowała moneta. Wygrywa, jeśli jego przypuszczenia są prawidłowe.

Atakujący, którego możemy zamodelować jako algorytm, nazywamy adwersarzem . Funkcja f (którą przeciwnik mógł zadać) nazywa się wyrocznią .

Zauważ, że przeciwnik może w trywialny sposób zapewnić sobie 50% szans na wygraną, po prostu zgadując losowo (lub nawet, na przykład, zawsze zgadując „orzeł”). W związku z tym pozwalają P e ( ) oznacza prawdopodobieństwo, że przeciwnik wygrywa gry przed E i określenia korzyści z A, jak 2 ( P e ( ) - 1/2). Wynika z tego, że jeśli A zgadnie losowo, jego przewaga wyniesie 0; z drugiej strony, jeśli A zawsze wygrywa, to jego przewaga wynosi 1. Szyfr blokowy E jest pseudolosową permutacją (PRP), jeśli żaden przeciwnik nie ma przewagi znacznie większej niż 0, biorąc pod uwagę określone ograniczenia q i czasu działania przeciwnika . Jeśli w kroku 2 powyżej przeciwnicy mają możliwość uczenia się f -1 ( X ) zamiast f ( X ) (ale nadal mają tylko małe zalety), to E jest silnym PRP (SPRP). Przeciwnik jest nieadaptacyjny, jeśli wybierze wszystkie wartości q dla X przed rozpoczęciem gry (to znaczy, że nie używa żadnych informacji zebranych z poprzednich zapytań, aby wybrać każdy X w trakcie).

Definicje te okazały się przydatne do analizy różnych trybów działania. Na przykład, można zdefiniować podobną grę do pomiaru bezpieczeństwo algorytmu szyfrowania szyfru blokowego na bazie, a następnie starają się pokazać (za pomocą argumentu redukcji ), że prawdopodobieństwo przeciwnikiem wygrywając Ta nowa gra nie jest dużo więcej niż P E ( A ) dla niektórych A . (Redukcja zazwyczaj zapewnia limity na q i czas działania A .) Podobnie, jeśli P E ( A ) jest małe dla wszystkich odpowiednich A , to żaden atakujący nie ma znaczącego prawdopodobieństwa wygrania nowej gry. Formalizuje to ideę, że algorytm wyższego poziomu dziedziczy bezpieczeństwo szyfru blokowego.

Idealny model szyfru

Ocena praktyczna

W praktyce szyfry blokowe mogą być oceniane według wielu kryteriów. Wspólne czynniki to:

  • Kluczowe parametry, takie jak rozmiar klucza i rozmiar bloku, które zapewniają górną granicę bezpieczeństwa szyfru.
  • Szacowany poziom bezpieczeństwa , który opiera się na zaufaniu zdobytym w projekcie blok szyfr po to w dużej mierze przetrwały główne wysiłki w kryptoanalizy z upływem czasu, matematyczne solidność projektowania, a istnienie ataków praktycznych lub certificational.
  • Złożoność szyfru i jego przydatność do implementacji sprzętowej lub programowej . Implementacje sprzętowe mogą mierzyć złożoność pod względem liczby bramek lub zużycia energii, które są ważnymi parametrami dla urządzeń o ograniczonych zasobach.
  • Szyfr za wydajność w zakresie przetwarzania przepustowość na różnych platformach, w tym jego pamięci wymagań.
  • Koszt od szyfru, który odnosi się do wymagań licencyjnych, które mogą mieć zastosowanie ze względu na prawa własności intelektualnej .
  • Elastyczność z szyfru, który obejmuje jego zdolność do obsługi wielu rozmiarach klucz i długości bloków.

Wybitne szyfry blokowe

Lucyfer / DES

Lucyfer jest powszechnie uważany za pierwszy cywilny szyfr blokowy, opracowany w IBM w latach 70. w oparciu o pracę wykonaną przez Horsta Feistela . Poprawiona wersja algorytmu została przyjęta jako federalny standard przetwarzania informacji rządu Stanów Zjednoczonych : FIPS PUB 46 Data Encryption Standard (DES). Została wybrana przez amerykańskie National Bureau of Standards (NBS) po publicznym zaproszeniu do składania zgłoszeń i wprowadzeniu pewnych wewnętrznych zmian przez NBS (i potencjalnie NSA ). DES został publicznie wydany w 1976 roku i jest szeroko stosowany.

DES został zaprojektowany, aby, między innymi, odeprzeć pewien atak kryptoanalityczny znany NSA i ponownie odkryty przez IBM, choć nieznany publicznie, dopóki nie został ponownie odkryty i opublikowany przez Eli Bihama i Adi Shamira pod koniec lat osiemdziesiątych. Technika ta nazywana jest kryptoanalizą różnicową i pozostaje jednym z niewielu ogólnych ataków na szyfry blokowe; kryptoanaliza liniowa to kolejna, ale mogła być nieznana nawet NSA, zanim została opublikowana przez Mitsuru Matsui . DES zainicjował wiele innych prac i publikacji w dziedzinie kryptografii i kryptoanalizy w otwartej społeczności i zainspirował wiele nowych projektów szyfrowania.

DES ma rozmiar bloku 64 bity i rozmiar klucza 56 bitów. Bloki 64-bitowe stały się powszechne w projektach szyfrów blokowych po DES. Długość klucza zależała od kilku czynników, w tym regulacji rządowych. Wielu obserwatorów w latach 70. zauważyło, że 56-bitowy klucz używany do DES jest zbyt krótki. Z biegiem czasu jego nieadekwatność stała się oczywista, zwłaszcza po tym, jak w 1998 roku Electronic Frontier Foundation zademonstrowała maszynę specjalnego przeznaczenia, zaprojektowaną do łamania DES . Rozszerzenie DES, Triple DES , potrójnie szyfruje każdy blok dwoma niezależnymi kluczami (klucz 112-bitowy i zabezpieczenie 80-bitowe) lub trzema niezależnymi kluczami (klucz 168-bitowy i zabezpieczenie 112-bitowe). Został powszechnie przyjęty jako zamiennik. Od 2011 roku wersja z trzema kluczami jest nadal uważana za bezpieczną, chociaż standardy National Institute of Standards and Technology (NIST) nie zezwalają już na używanie wersji z dwoma kluczami w nowych aplikacjach, ze względu na jej 80-bitowy poziom bezpieczeństwa.

POMYSŁ

International Data Encryption Algorithm ( IDEA ) jest szyfr blokowy zaprojektowany przez Jamesa Masseya z ETH Zurich i Xuejia Lai ; został po raz pierwszy opisany w 1991 roku jako zamierzony zamiennik DES.

IDEA działa na 64-bitowych blokach przy użyciu 128-bitowego klucza i składa się z serii ośmiu identycznych transformacji ( round ) i transformacji wyjściowej ( półround ). Procesy szyfrowania i deszyfrowania są podobne. IDEA czerpie wiele ze swojego bezpieczeństwa, przeplatając operacje z różnych grup – dodawanie modułowe i mnożenie oraz wykluczanie bitowe lub (XOR) – które są w pewnym sensie algebraicznie „niekompatybilne”.

Projektanci przeanalizowali IDEA, aby zmierzyć jego wytrzymałość na kryptoanalizę różnicową i doszli do wniosku, że jest on odporny na pewne założenia. Nie zgłoszono żadnych udanych niedociągnięć liniowych lub algebraicznych. Od 2012 r. najlepszy atak, który stosuje się do wszystkich klawiszy, może złamać pełny IDEA na 8,5 rundy przy użyciu ataku wąskich bicliques około cztery razy szybciej niż brutalna siła.

RC5

Jedna runda (dwie połówki) szyfru blokowego RC5

RC5 to szyfr blokowy zaprojektowany przez Ronalda Rivesta w 1994 roku, który w przeciwieństwie do wielu innych szyfrów ma zmienny rozmiar bloku (32, 64 lub 128 bitów), rozmiar klucza (0 do 2040 bitów) i liczbę rund (0 do 255). Pierwotny sugerowany wybór parametrów to 64-bitowy rozmiar bloku, 128-bitowy klucz i 12 rund.

Kluczową cechą RC5 jest wykorzystanie rotacji zależnych od danych; jednym z celów RC5 było zachęcenie do badania i oceny takich operacji, jak prymityw kryptograficzny. RC5 składa się również z szeregu dodatków modułowych i XOR-ów. Ogólna struktura algorytmu to sieć podobna do Feistela . Procedury szyfrowania i deszyfrowania można określić w kilku wierszach kodu. Jednak kluczowy harmonogram jest bardziej złożony, rozszerzając klucz za pomocą zasadniczo jednokierunkowej funkcji z binarnymi rozwinięciami zarówno e, jak i złotego podziału jako źródeł „ nic w rękawie ”. Kusząca prostota algorytmu wraz z nowatorstwem rotacji zależnych od danych uczyniła RC5 atrakcyjnym obiektem badań dla kryptoanalityków.

12-rundowy RC5 (z blokami 64-bitowymi) jest podatny na atak różnicowy przy użyciu 2 44 wybranych tekstów jawnych. Sugeruje się 18-20 rund jako wystarczającą ochronę.

Rijndäel / AES

Rijndael szyfr opracowany przez kryptologów belgijskich, Joan Daemen oraz Vincent Rijmen był jednym z konkurencyjnych projektów, aby zastąpić DES. Wygrał 5-letni publiczny konkurs na AES (Advanced Encryption Standard).

Przyjęty przez NIST w 2001 r. AES ma stały rozmiar bloku 128 bitów i rozmiar klucza 128, 192 lub 256 bitów, podczas gdy Rijndael może być określony za pomocą rozmiarów bloku i klucza w dowolnej wielokrotności 32 bitów, przy minimum 128 bity. Rozmiar bloku ma maksymalnie 256 bitów, ale rozmiar klucza nie ma teoretycznego maksimum. AES operuje na macierzy 4×4 kolumna-głównego rzędu bajtów, zwanej stanem (wersje Rijndaela o większym rozmiarze bloku mają dodatkowe kolumny w stanie).

Rozdymka

Blowfish to szyfr blokowy, zaprojektowany w 1993 roku przez Bruce'a Schneiera i zawarty w wielu zestawach szyfrowania i produktach szyfrujących. Blowfish ma 64-bitowy rozmiar bloku i zmienną długość klucza od 1 do 448 bitów. Jest to 16-okrągły szyfr Feistela i wykorzystuje duże S-boxy zależne od klucza. Godne uwagi cechy projektu obejmują S-boxy zależne od kluczai bardzo złożony harmonogram kluczy .

Został zaprojektowany jako algorytm ogólnego przeznaczenia, mający stanowić alternatywę dla starzejącego się DES i wolny od problemów i ograniczeń związanych z innymi algorytmami. W momencie wydania Blowfish wiele innych projektów było zastrzeżonych, obciążonych patentami lub stanowiło tajemnice handlowe/rządowe. Schneier stwierdził, że „Blowfish jest nieopatentowany i pozostanie nim we wszystkich krajach. Algorytm zostaje niniejszym umieszczony w domenie publicznej i może być swobodnie używany przez każdego”. To samo dotyczy Twofish , następcy algorytmu firmy Schneier.

Uogólnienia

Ulepszalne szyfry blokowe

M. Liskov, R. Rivest i D. Wagner opisali uogólnioną wersję szyfrów blokowych zwaną szyframi blokowymi, które można modyfikować. Szyfr blokowy, który można modyfikować, akceptuje drugie wejście zwane dostrojeniem wraz ze zwykłym wejściem w postaci tekstu jawnego lub tekstu zaszyfrowanego. Ulepszenie wraz z kluczem wybiera permutację obliczoną przez szyfr. Jeśli zmiana poprawek jest wystarczająco lekka (w porównaniu z zazwyczaj dość kosztowną operacją ustawiania klawiszy), możliwe stają się interesujące nowe tryby działania. Szyfrowania dysku teoria artykule opisano niektóre z tych trybów.

Szyfrowanie z zachowaniem formatu

Szyfry blokowe tradycyjnie działają na alfabecie binarnym . Oznacza to, że zarówno dane wejściowe, jak i wyjściowe są ciągami binarnymi, składającymi się z n zer i jedynek. Jednak w niektórych sytuacjach można chcieć mieć szyfr blokowy, który działa na innym alfabecie; na przykład zaszyfrowanie 16-cyfrowych numerów kart kredytowych w taki sposób, że zaszyfrowany tekst jest również 16-cyfrową liczbą, może ułatwić dodanie warstwy szyfrowania do starszego oprogramowania. To jest przykład szyfrowania z zachowaniem formatu . Mówiąc bardziej ogólnie, szyfrowanie z zachowaniem formatu wymaga permutacji z kluczem w pewnym skończonym języku . To sprawia, że ​​schematy szyfrowania zachowujące format są naturalnym uogólnieniem (możliwych do dostosowania) szyfrów blokowych. W przeciwieństwie do tego tradycyjne schematy szyfrowania, takie jak CBC, nie są permutacjami, ponieważ ten sam tekst jawny może być szyfrowany w wielu różnych tekstach zaszyfrowanych, nawet przy użyciu stałego klucza.

Związek z innymi prymitywami kryptograficznymi

Szyfrów blokowych można używać do budowania innych prymitywów kryptograficznych, takich jak te poniżej. Aby te inne prymitywy były bezpieczne kryptograficznie, należy zadbać o ich poprawną budowę.

Tak jak szyfry blokowe mogą być używane do budowania funkcji haszujących, tak funkcje haszujące mogą być używane do budowania szyfrów blokowych. Przykładami takich szyfrów blokowych są SHACAL , NIEDŹWIEDŹ i LEW .

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki