Zaawansowany Standard Szyfrowania - Advanced Encryption Standard


Z Wikipedii, wolnej encyklopedii
Advanced Encryption Standard
(Rijndael)
AES-SubBytes.svg
SubBytes etapem, jedną z czterech etapów rundzie AES
Generał
projektanci Vincent Rijmen , Joan Daemen
Opublikowane po raz pierwszy 1998
Pochodzące z Plac
następców Anubis , Grand Cru
Orzecznictwo AES zwycięzca, CRYPTREC , Nessie , NSA
Cipher detal
Główne wymiary 128, 192 lub 256 bitów
rozmiary bloku 128 bitów
Struktura Sieć Zmiana-permutacji
rundy 10, 12 lub 14 (w zależności od rozmiaru kluczy)
Najlepszy publiczny cryptanalysis
Ataki zostały opublikowane że są obliczeniowo szybciej niż pełny ataku brute-force , choć nikt od 2013 r jest obliczeniowo niewykonalne. AES-128, klucz może zostać odzyskany z złożoności obliczeniowej 2 126,1 używając biclique ataku . Dla biclique ataków na AES-192 i AES-256, obliczeniowe zawiłości 2 189,7 i 2 254,4 odpowiednio zastosować. Powiązane klucz ataki mogą się złamać AES-192 i AES-256 z zawiłości 2 176 i 2 99,5 zarówno w czasie jak i danych, odpowiednio.

Advanced Encryption Standard ( AES ), znany także pod oryginalną nazwą Rijndael ( Dutch wymowa: [rɛindaːl] ), to specyfikacja dla szyfrowania danych elektronicznych ustanowionych przez amerykański National Institute of Standards and Technology (NIST) w 2001 roku.

AES jest podzbiorem Rijndael szyfru blokowego opracowanego przez dwóch belgijskich kryptologów, Vincent Rijmen i Joan Daemen , którzy złożą wniosek do NIST podczas procesu selekcji AES . Rijndael to rodzina szyfrów z kluczem i bloków różnej wielkości.

AES NIST wybrany trzech członków rodziny Rijndael, każdy z blokiem o wielkości 128 bitów, lecz trzy główne długościach 128, 192 i 256 bitów.

AES został przyjęty przez rząd Stanów Zjednoczonych , a obecnie stosowane na całym świecie. To Zastępuje Encryption Standard danych (DES), który został opublikowany w 1977 roku algorytmu opisanego przez AES jest algorytm symetryczny , co oznacza ten sam klucz służy zarówno do szyfrowania i deszyfrowania danych.

W Stanach Zjednoczonych, AES został ogłoszony przez NIST jako US FIPS PUB 197 (FIPS 197) w dniu 26 listopada 2001. Niniejsze ogłoszenie następuje proces normalizacji pięcioletniego, w którym piętnaście konkurencyjne projekty zostały zaprezentowane i ocenione, zanim szyfru Rijndael było wybrany jako najbardziej odpowiedni (patrz Advanced Encryption proces standardowego więcej szczegółów).

AES weszła w życie standardu federalnego rządu w dniu 26 maja 2002 roku, po zatwierdzeniu przez Sekretarza Handlu . AES jest zawarte w normie ISO / IEC 18033-3. AES jest dostępna w wielu różnych pakietów szyfrowania, i jest pierwszym (i jedynym) publicznie dostępne szyfr zatwierdzony przez Agencję Bezpieczeństwa Narodowego (NSA) na tajnej informacji, kiedy jest stosowany w NSA zatwierdzony moduł kryptograficzny (patrz Bezpieczeństwo AES , poniżej).

ostateczne normy

Advanced Encryption Standard (AES) jest określona w każdym z:

  • FIPS PUB 197: Advanced Encryption Standard (AES)
  • ISO / IEC 18033-3 szyfry blokowe ::

Opis szyfru

AES jest oparta na zasadzie projektowej znanej jako sieć substytucja-permutacji i jest skuteczny zarówno oprogramowania i sprzętu. W przeciwieństwie do swojego poprzednika DES, AES nie korzysta z sieci Feistel . AES jest wariant Rijndael który ma ustaloną wielkość bloku 128 bitów i rozmiar klucza 128, 192 lub 256 bitów. W przeciwieństwie do tego, Rijndael per se, jest określona przez blok i kluczowych wielkości, które mogą mieć dowolną wielokrotność 32 bitów, z co najmniej 128 do najwyżej 256 bitów.

AES działa na 4 x 4 kolejności kolumnowej główną tablicę bajtów, określany jako stan . Większość obliczeń AES odbywa się w określonej dziedzinie skończonych .

Na przykład, jeśli jest 16 bajtów , te bajty są reprezentowane tym dwuwymiarowej tablicy:

Rozmiar klucza użyty do szyfru AES określa liczbę rund transformacyjnych, które przekształcają dane wejściowe, zwany tekst jawny , do ostatecznego wyjścia, zwany szyfrogram . Liczba rund są następujące:

  • 10 rund kluczy 128 bitów.
  • 12 rund klawiszy 192 bitów.
  • 14 rund klawiszy 256 bitów.

Każda runda składa się z kilku etapów przetwarzania, w tym jeden, który zależy od samego klucza szyfrującego. Zestaw odwrotnej rund są stosowane do przekształcenia szyfrogramu z powrotem do oryginalnego tekstu jawnego przy użyciu tego samego klucza szyfrowania.

Opis wysokiego poziomu algorytmu

  1. KeyExpansion klucze -round pochodzą z klucza szyfrowania przy użyciu klucza harmonogram Rijndael jest . AES wymaga osobnego 128-bitowego klucza okrągły blok dla każdej rundy oraz jeszcze jeden.
  2. Początkowe dodanie klucz runda:
    1. AddRoundKey -każdy bajt stanu łączy się z blokiem klucza za pomocą okrągłego bitowe XOR .
  3. 9, 11 lub 13 okrągłe:
    1. SubBytes -A nieliniowy krok zastąpienia, każdy bajt jest zastąpiony innym według tabeli przeglądowej .
    2. ShiftRows -a etapie transpozycji gdzie ostatnie trzy rzędy stanu są przesuwane cyklicznie pewną liczbę kroków.
    3. MixColumns -A liniowy operacji mieszania, który prowadzi się na kolumnach stanu, łączenie czterech bajtów w każdej kolumnie.
    4. AddRoundKey
  4. Ostateczna okrągły (co 10, 12 lub 14 rund łącznie):
    1. SubBytes
    2. ShiftRows
    3. AddRoundKey

W SubBytes kroku

W SubBytes etapie każdy bajt w stanie otrzymuje się z jego wejściem w stałym 8-bitowej tabeli przeglądowej, S ; b ij = S (a ij ) .

W SubBytes etapie każdy bajt w stan tablicy jest zastąpiony SubByte zastosowaniem 8-bitowy blok podstawień . Operacja ta zapewnia nieliniowość w szyfru . S-box stosuje się pochodną Liczba odwrotna przez GF (2 8 ) , znane dobre właściwości nieliniowości. Aby uniknąć ataku w oparciu o proste właściwości algebraicznych, S-box się przez połączenie funkcji odwrotnej do odwracalnej przemiany afinicznej . S-box wybrany również w celu uniknięcia punktów stałych (a więc jest derangement ), to znaczy , a także wszelkie naprzeciwko punktów stałych, tj . Podczas wykonywania odszyfrowaniu InvSubBytes etap (odwrotność SubBytes ) stosuje się, co wymaga najpierw przy odwrotność afinicznej transformacji i znalezienie Liczba odwrotna.

W ShiftRows kroku

W ShiftRows etapie bajtów w każdym rzędzie stanu są przesuwane cyklicznie w lewo. Liczba miejsc każdy bajt jest przesunięty różni się dla każdego wiersza.

ShiftRows etap prowadzi się na rzędach stanie; to cyklicznie przesuwa bajtów w każdym rzędzie przez pewne przesunięcia . AES, pierwszym rzędzie pozostają niezmienione. Każdy bajt w drugim rzędzie są przesunięte jeden w lewo. Podobnie, trzeci i czwarty rzędy są przesunięte przesunięcia dwóch i trzech odpowiednio. W ten sposób, w każdej kolumnie w stanie wyjściowym ShiftRows etapie składa się z poszczególnych bajtów kolumnie stanu wejściowego. Znaczenie tego kroku jest uniknięcie kolumny są szyfrowane niezależnie, w którym to przypadku AES przeradza się w czterech niezależnych szyfrów blokowych.

MixColumns krok

W MixColumns etapie każda kolumna stanu mnożona stałej wielomianem .

W MixColumns etapie czterech bajtów każdej kolumnie stanu są łączone za pomocą odwracalnej przemiany liniowego . MixColumns funkcji zajmuje czterech bajtów na wejściu i na wyjściu z czterech bajtów, przy czym każdy bajt miała wpływ wszystkich czterech bajtów wyjściowych. Wraz z ShiftRows , MixColumns zapewnia dyfuzję w szyfru.

Podczas tej operacji każda kolumna jest przekształcany za pomocą stałej matrycy (Matrix lewej kolumnie pomnożona przez daje nową wartość kolumny w stanie)

Mnożenie macierzy jest złożony z mnożenia i dodawania wpisów. Wpisy są 8-bitowe bajty traktowane jako współczynniki wielomianu porządku . Dodatek jest po prostu XOR. Mnożenie jest modulo wielomian nierozkładalny . Jeśli przetwarzane po trochu, a następnie, po przeniesieniu, warunkowa XOR z 1B 16 powinny być wykonywane, gdy przesunął wartość jest większa niż FF 16 (przelew musi być korygowane przez odjęcie generowania wielomian). Są to specjalne przypadki zwykłego mnożenia w .

W bardziej ogólnym znaczeniu, każda kolumna jest traktowany jako wielomian powyżej , a następnie mnożone modulo z ustalonym wielomianem . Współczynniki są wyświetlane w ich szesnastkowy odpowiednik binarnej reprezentacji bitowych wielomianów z . MixColumns etap może być również traktowana jako mnożenie przez przedstawionej konkretnej macierzy MDS w skończonego . Sposób ten jest opisany w dalszej części artykułu Rijndael MixColumns .

AddRoundKey krok

W AddRoundKey etapie każdy bajt stanu połączeniu z bajtem okrągłego podklucza używając XOR operacji (⊕).

W AddRoundKey etapie podklucz jest połączona ze stanem. Dla każdej rundzie, podklucz pochodzi od głównego klucza przy użyciu klucza harmonogram Rijndael jest ; każdy podklucz ma taki sam rozmiar jak państwa. Podklucz dodaje się łącząc każdy bajt stanu z odpowiednim bajtem podklucza stosując bitowe XOR .

Optymalizacja szyfru

W systemach z 32-bitowych lub większych słowy, możliwe jest przyspieszenie wykonania szyfru łącząc SubBytes i ShiftRows kroki z MixColumns etapie poprzez przekształcenie ich w sekwencji wyszukiwań tabeli. Wymaga to cztery wejścia 256 32-bitowych tabel (łącznie zajmujące 4096 bajtów). Okrągły mogą być wykonywane operacje tabeli odnośników 16 i 12 32-bitowe lub operacji EXCLUSIVE-, a następnie przez cztery 32-bitowe operacji wyłączności albo w AddRoundKey etapie. Alternatywnie, operacja tabela wyszukiwania może być wykonana z jednego 256 wejście 32-bitowego tabeli (zajmujący 1024 bajtów), po operacji obrotu o okrągłym.

Stosując podejście zorientowane na bajt, możliwe jest łączenie SubBytes , ShiftRows i MixColumns kroki w jednej rundzie operacji.

Bezpieczeństwo

Do maja 2009 roku opublikowano tylko udane ataki na pełnych AES były ataki side-channel na pewnych konkretnych wdrożeń. Agencja Bezpieczeństwa Narodowego (NSA) dokonał przeglądu wszystkich AES finalistów, w tym Rijndael, i stwierdził, że wszystkie z nich były na tyle bezpieczna dla rządu Stanów Zjednoczonych danych niesklasyfikowanych. W czerwcu 2003 roku rząd Stanów Zjednoczonych ogłosił, że AES mogą być wykorzystywane do ochrony informacji niejawnych :

Konstrukcja i wytrzymałość wszystkich długościach klucza algorytmu AES (tj, 128, 192 i 256) są wystarczające do ochrony informacji niejawnych do poziomu SECRET. TOP SECRET informacje będą wymagały użycia zarówno podstawowych długościach 192 lub 256. Realizacja AES w produktach przeznaczonych do ochrony krajowych systemów i / lub informacji bezpieczeństwa muszą być sprawdzone i potwierdzone przez NSA przed ich nabywania i stosowania.

AES 10 rund kluczy 128 bitów, 12 rund klawiszy 192-bitowym i 14 rund klawiszy 256 bitów.

Do roku 2006, najlepiej znane były ataki 7 rund 128-bitowych kluczy, 8 rund klawiszy 192-bitowe, i 9 rund klawiszy 256 bitów.

znane ataki

Dla kryptologów, A kryptograficzny „break” jest coś szybciej niż ataku brute-force - to znaczy, wykonując jedną próbną deszyfrowanie dla każdego możliwego klucza w sekwencji (patrz kryptoanalizy ). Przerwa może zatem zawierać wyniki, które są nieosiągalne z obecną technologią. Pomimo, że niepraktyczne, przerwy teoretyczne może czasem zapewnić wgląd wzorców lukę. Największym sukcesem publicznie znany atak brute-force na szeroko realizowanego algorytmu szyfrowania blokowego szyfr był na 64-bitowym RC5 klucza przez DISTRIBUTED.NET w 2006 roku.

Klawisz spacji wzrasta o współczynnik 2 dla każdego dodatkowego kawałka długości klucza, a jeśli każda możliwa wartość klucza jest jednakowo prawdopodobne, przekłada się to na podwojenie średniej brute-force kluczowy czas wyszukiwania. Oznacza to, że wysiłek poszukiwania brute-force wzrasta wykładniczo wraz z długością klucza. Długość klucza w sobie nie oznacza zabezpieczenie przed atakami, ponieważ istnieją szyfry z bardzo długich kluczy, które zostały uznane za zagrożone.

AES ma dość prosty algebraiczny ramy. W 2002 roku teoretyczna atak, nazwany „ atak XSL ”, został ogłoszony przez Nicolas Courtois i Josef Pieprzyk , rzekomo pokazują słabość algorytmu AES, częściowo ze względu na niską złożonością jego nieliniowych elementów. Od tego czasu, inne prace wykazały, że atak, jak pierwotnie przedstawiony jest niewykonalne; zobacz atak XSL na szyfrów blokowych .

Podczas procesu selekcji AES, twórcy algorytmów konkurujących napisał algorytmu Rijndael za „... jesteśmy zaniepokojeni [jej] użyć ... w zastosowaniach krytycznych dla bezpieczeństwa”. W październiku 2000 roku, jednak pod koniec procesu selekcji AES, Bruce Schneier , deweloper algorytmu konkurencyjnych Twofish , napisał, że podczas gdy myślał udane ataki akademickich na Rijndael zostanie opracowany kiedyś, że nie „wierzę, że ktokolwiek kiedykolwiek odkryć atak, który pozwoli ktoś czytać ruchu Rijndael”.

W 2009 roku, nowy atak związany klucz odkryto, że wykorzystuje prostotę klucza AES harmonogramem i ma złożoność 2 119 . W grudniu 2009 został ulepszony do 2 99,5 . Jest to follow-up do ataku odkryto wcześniej w 2009 roku przez Alex Biryukov , Dmitry Khovratovich i Ivica Nikolić, ze złożonością 2 96 dla jednego z każdych 2 35 kluczy. Jednak podobne klucz ataki nie mają obaw w każdej prawidłowo zaprojektowanej protokół kryptograficzny, jak prawidłowo zaprojektowanego protokołu (czyli implementacji oprogramowania) zadba, aby nie dopuścić klucze związane głównie poprzez ograniczanie atakującego środki wybierając klucze do pokrewieństwa.

Kolejny atak był Bruce Schneier blogu przez w dniu 30 lipca 2009 roku, a wydany jako preprintu 3 sierpnia 2009. Ten nowy atak, Alex Biryukov, Orr Dunkelman Nathan Keller, Dmitry Khovratovich i Adi Shamir , jest niezgodne AES-256 w której są tylko dwie pokrewne klucze i 2 39 czasu aby odzyskać całkowite klucz 256-bitowy 9 rund wersji lub 2 45 czas na 10 cały wersji z mocniejszego typu powiązanego ataku podklucza lub 2 70 czas na wersja 11-round. 256-bitowy AES zużywa 14 rundach więc te ataki nie są skuteczne przeciw pełnej AES.

Praktyczność tych ataków powiązanych z silniejszych kluczy został skrytykowany, na przykład, przez papier na "wybranych-key-relations-in-the-middle" ataki na AES-128 zostały sporządzone przez Vincent Rijmen w 2010 roku.

W listopadzie 2009 roku, pierwszy znany klucz wyróżniającą atak przeciwko zmniejszonej wersji 8-tura AES-128 został wydany jako preprintu. Ten znany klucz wyróżniającą atak jest poprawa odbiciu, albo atak Start-from-the-middle, przeciwko AES-jak permutacji, który widok dwóch kolejnych rund permutacji jak stosowanie tzw Super-SBOx. Działa od wersji 8-tura AES-128, o złożoności czasowej 2 48 , a także złożoność pamięci 2 32 . 128-bit AES wykorzystuje 10 rund, więc ten atak nie jest skuteczny przeciwko pełnej AES-128.

Pierwsze ataki klucza odzyskiwania na pełnym AES były spowodowane Andriej Bogdanow, Dmitrij Khovratovich i Christian Rechberger, i zostały opublikowane w 2011 roku atak jest biclique atak i to szybciej niż brute force o czynnik około czterech. Wymaga on 2 126,2 operacji odzyskać klucz AES-128. AES-192 i AES-256, 2 190,2 i 2 254,6 potrzebne są operacje, odpowiednio. Wynik ten został udoskonalony do 2 126,0 AES-128, 2 dodano 189,9 AES-192 i 2 254,3 AES-256, które są obecne najlepsze wyniki w kluczowych ataku odzyskiwania przeciw AES.

Jest to bardzo mały przyrost, a kluczem 126-bitowym (zamiast 128 bitów) będzie nadal podejmować miliardy lat do brute force na aktualnym i przewidywanym sprzętem. Ponadto, autorzy obliczyć najlepszy atak przy użyciu techniki na ich AES z kluczem 128 bitowym wymaga przechowywania 2 88 bitów danych. To przekłada się na około 38 bilionów terabajtów danych, co jest więcej niż wszystkie dane zapisane na wszystkich komputerach na świecie w 2016 roku jako takie, to poważnie niepraktyczne atak, który nie ma żadnego praktycznego wpływu na bezpieczeństwo AES. Przestrzeń złożoność później został poprawiony do 2 56 bitów, co stanowi 9007 terabajtów.

Według dokumentów Snowden , NSA robi badania na temat tego, czy atak kryptograficzny oparty na tau statystyki mogą pomóc przełamać AES.

Obecnie nie wiadomo, praktyczny atak, który pozwoliłby kogoś bez znajomości klucza do odczytania danych zaszyfrowanych przez AES gdy prawidłowo wdrożone.

Ataki side-channel

Ataki side-channel nie atakują szyfr jako czarną skrzynkę , a tym samym nie są związane z bezpieczeństwem szyfrującej, jak określono w klasycznym kontekście, ale są ważne w praktyce. Atakują implementacje szyfru na sprzętowych lub programowych systemów, które nieumyślnie wyciek danych. Istnieje kilka takich znanych ataków na różne implementacje AES.

W kwietniu 2005 roku, DJ Bernstein ogłosił atak cache-Timing, że kiedyś przełamać serwer niestandardowy, który używany OpenSSL szyfrowanie „s AES. Atak wymagane ponad 200 milionów wybranych plaintexts. Serwer zwyczaj został zaprojektowany, aby dać się tak bardzo, jak to możliwe informacje o taktowaniu (raporty serwera kopii liczby cykli maszynowych podejmowanych przez operacji szyfrowania); Jednak, jak Bernstein wskazał, „zmniejszenie dokładności znaczników czasu serwera, albo eliminując je z odpowiedziami serwera, nie zatrzymuje atak: klient po prostu wykorzystuje czasy w obie strony na podstawie lokalnego zegara i kompensuje zwiększonego hałasu przez uśrednienia większej liczby próbek.”

W październiku 2005 roku, Dag Arne Osvik, Adi Shamir i Eran Tromer referat wykazujący kilka Cache-taktowaniu ataki na implementacje w AES znalezionych w OpenSSL i Linuksa dm-cryptfunkcji szyfrowania partycji. Jeden atak był w stanie uzyskać cały klucz AES po zaledwie 800 operacji wyzwalania encryptions, w sumie 65 milisekund. Ten atak wymaga atakującego, aby móc uruchamiać programy na tym samym systemie lub platformie, który przeprowadza AES.

W grudniu 2009 roku atak na niektórych implementacjach sprzętowych został opublikowany stosowana różnicową analizę błędów oraz umożliwia odzyskanie klucza ze złożonością 2 32 .

W listopadzie 2010 Endre Bangerter David Gullasch i Stephan Krenn opublikowała dokument opisujący praktyczne podejście do „w pobliżu czasie rzeczywistym” odzyskania tajnych kluczy z AES-128 bez potrzeby obu tekst zaszyfrowany lub zwykłego tekstu. Podejście działa również na AES-128 wdrożeń, które korzystają z tabel kompresji, takich jak OpenSSL. Podobnie jak w przypadku wcześniejszych ataków ten wymaga zdolności do uruchamiania kodu nieuprzywilejowanego w systemie wykonującego szyfrowanie AES, które mogą być osiągnięte przez infekcję złośliwym oprogramowaniem znacznie łatwiej niż commandeering konta root.

W marcu 2016 r Ashokkumar C, Ravi Prakash Giri i Bernard Menezes przedstawił bardzo skuteczny atak bocznego kanału na implementacje AES, które mogą odzyskać pełną 128-bitowy klucz AES w ciągu zaledwie 6-7 bloki tekstu jawnego / szyfrogram, który jest znaczna poprawa w stosunku do poprzednich prac, które wymagają od 100 do miliona encryptions. Proponowana atak wymaga standardowego użytkownika jako przywilej poprzednich ataków i algorytmów klucza pobierania uruchamianych pod minutę.

Wiele współczesnych procesorów mają wbudowane instrukcje sprzętowe AES , które chronią przed atakami bocznego kanału związane przejściowymi,.

walidacja NIST / CSEC

Kryptograficznego Validation Program Module (CMVP) jest obsługiwany wspólnie przez rząd Stanów Zjednoczonych w National Institute of Standards and Technology Wydziału Bezpieczeństwa (NIST) komputer i Communications Security Establishment (CSE) rządu Kanady. Zastosowanie modułów kryptograficznych zatwierdzonych do NIST FIPS 140-2 jest wymagane przez rząd Stanów Zjednoczonych do szyfrowania wszystkich danych, które posiada klasyfikację Sensitive ale Niesklasyfikowane (SBU) lub powyżej. Od NSTISSP # 11 Zasady krajowe regulujące nabycie Information Assurance: „produkty szyfrowania do ochrony informacji niejawnych zostaną potwierdzone przez NSA, a produkty szyfrujące przeznaczone do ochrony poufnych informacji będą certyfikowane zgodnie z NIST FIPS 140-2.”

Rząd Kanady zaleca również stosowanie FIPS 140 sprawdzonych modułów kryptograficznych w aplikacjach niesklasyfikowanych swoich działów.

Chociaż NIST publikacji 197 ( „FIPS 197”) to unikalny dokument, który obejmuje algorytmu AES, sprzedawcy zazwyczaj zbliżają się CMVP pod FIPS 140 i poprosić o kilka algorytmów (takie jak Triple DES lub SHA1 ) zatwierdzoną w tym samym czasie. Dlatego jest rzadkością znaleźć moduły kryptograficzne, które są jednoznacznie potwierdzone FIPS 197 i sam NIST generalnie nie trochę czasu, aby Sprzedawców FIPS 197 sprawdzonych modułów oddzielnie na swojej stronie internetowej publicznym. Zamiast FIPS 197 walidacja jest zazwyczaj tylko wymienione jako „FIPS zatwierdzony: AES” notacją (z określonym numerem certyfikatu FIPS 197) w aktualnej listy FIPS 140 sprawdzonych modułów kryptograficznych.

Kryptograficznej Validation Program Algorytm (CAVP) pozwala na niezależną walidację prawidłowej realizacji algorytmu AES przy rozsądnych kosztach. Pomyślne wyniki walidacji w wymienione są na stronie walidacji NIST. To badanie jest warunkiem wstępnym dla walidacji modułu FIPS 140-2 opisanej poniżej. Jednak sukces walidacja CAVP w żaden sposób nie oznacza, że ​​moduł kryptograficzny realizacji algorytmu jest bezpieczna. Moduł kryptograficzny brakuje FIPS 140-2 walidacji lub specyficzne zatwierdzenie przez NSA nie jest uważany za bezpieczny przez rząd Stanów Zjednoczonych i nie mogą być wykorzystywane do ochrony danych rządowych.

Walidacja FIPS 140-2 jest trudne do osiągnięcia, zarówno technicznie i finansowo. Jest to standardowy zestaw testów, jak również elementem przeglądu kodu źródłowego, które muszą być przekazane w ciągu kilku tygodni. Koszt wykonania tych badań przez zatwierdzone laboratorium mogą być znaczące (np dobrze ponad 30,000 $ US) i nie obejmuje czasu potrzebnego do napisania, test, dokument i przygotować moduł do sprawdzania poprawności. Po zatwierdzeniu, moduły muszą być ponownie złożony i ponownie ocenić, czy są one zmieniane w jakikolwiek sposób. To może się różnić od prostych aktualizacjach słuchaczowi jeśli funkcja bezpieczeństwa nie uległ zmianie do bardziej znaczącego zestawu ponownego badania, jeśli funkcja bezpieczeństwa wpłynęły na zmianę.

wektory testowe

wektory testowe są zbiorem znanych szyfrów dla danego wejścia i klucz. NIST rozprowadza odniesienie AES wektorów testowych jak AES znane odpowiedzi Test (KAT) wektorów.

Wydajność

Wysoka szybkość i niskie wymagania RAM były kryteria selekcji AES. Jako wybranego algorytmu AES dobre wyniki na szerokiej gamie sprzętu, z 8-bitowych kart inteligentnych komputerów o wysokiej wydajności.

W zakładach Pentium Pro , AES wymaga 18 cykli zegarowych na bajt, co odpowiada wydajności około 11 MB / s dla procesora 200 MHz. Na 1,7 GHz Pentium M przepustowość wynosi około 60 MB / s.

Na Intel Core i3 / i5 / i7 oraz AMD Ryzen procesorów nośnej AES-NI zestaw instrukcji rozszerzeń, może być wiele przepustowość GB / s (nawet ponad 10 GB / s).

wdrożenia

Zobacz też

Uwagi

  1. ^ Główne wielkości 128, 160, 192, 224, 256 bity są obsługiwane przez algorytm Rijndael, ale tylko 128, 192, i 256-bitowe rozmiary kluczy są podane w normie AES.
  2. ^ Rozmiarów bloków z 128, 160, 192, 224, 256 bity są obsługiwane przez algorytm Rijndael każdego kluczowego wielkości, ale tylko 128 bitów rozmiar bloku jest określona w normie AES.
  3. ^ Warianty o dużej blokowe Rijndael wykorzystać szereg dodatkowych kolumn, ale zawsze cztery rzędy.
  4. ^ Rijndael warianty z większym rozmiarem bloku mają nieco różne przesunięcia. Dla bloków wielkości 128 bitów do 192 bitów, wzorzec przesunięcia jest taka sama. Rządjest przesunięty w lewo okólnik przezbajtów. Dla bloku 256-bitowej, pierwszy rząd jest niezmieniona, a przesunięcie dla drugiego, trzeciego i czwartego rzędu jest jeden bajt 3 bajtów oraz 4 bajtów, odpowiednio, zmiana ta ma zastosowanie jedynie do szyfru Rijndael stosowany w bloku 256-bitową , ponieważ nie używa AES 256-bitowych bloków.
  5. ^ AES znane Odpowiedź Test (KAT) Wektory są dostępne w formacie ZIP w miejscu NIST tutaj Zarchiwizowane 2009-10-23 w Wayback Maszynie .

Referencje

Linki zewnętrzne