Truecrypt – Algorytmy szyfrujące

Wolumeny TrueCrypt mogą zostać zaszyfrowane za pomocą następujących algorytmów:

AlgorytmZaprojektowany przezrozmiar klucza (bity)rozmiar bloka (bity)Tryb Operacji
AESJ. Daemen, V. Rijmen256128XTS
SerpentR. Anderson, E. Biham, L. Knudsen256128XTS
TwofishB. Schneier, J. Kelsey, D. Whiting, D. Wagner, C. Hall, N. Ferguson256128XTS
AES-Twofish256; 256128XTS
AES-Twofish-Serpent256; 256; 256128XTS
Serpent-AES256; 256128XTS
Serpent-Twofish-Aes256; 256; 256128XTS
Twofish-Serpent256; 256128XTS

Więcej na temat trybów XTS w sekcji Tryby operacji.

AES
AES (The Advanced Encryption Standard) określa kryptograficzny algorytm odpowiadający Federalnym standardom przetwarzania informacji (Federal Information Processing Standard, w skrócie FIPS). Szyfr AES/Rijndael został zaprojektowany i opublikowany w 1998 przez dwóch kryptografów – Joana Deamena i Vincenta Rijmena. Jest on używany przez Federalny Departament Stanów Zjednoczonych i amerykańskie agencje do kryptograficznej ochrony poufnych danych [3]. TrueCrypt używa standardu AES, który działa w trybie XTS (patrz sekcja Tryby operacji), wykonując 14 rund i korzystając z 256 bitowych kluczy (tj. AES-256 opublikowany w 2001 roku).


W czerwcu 2003 roku po tym jak amerykańska NSA (National Security Agency) przeprowadziła przegląd i analizę AES, tamtejszy komitet CNSS (Committee on National Security Systems) ogłosił [1], że moc szyfrująca i design metod AES-256 i AES-192 odpowiada ich potrzebom i że sprosta wymogom najściślejszej ochrony danych. Wcielenie wżycie szyfrów AES zapewnia systemom bezpieczeństwa departamentów i agencji USA najwyższą ochronę danych państwowych [1].

Serpent

Szyfr ten został zaprojektowany przez Rossa Andersona, Eliego Bihama i Larsa Knudsena, a opublikowany w 1998. Używa 256-bitowego klucza i operuje na blokach o rozmiarach 128 bitów w trybie XTS (patrz sekcja Tryby operacji). Szyfr blokowy Serpent był jednym z finalistów konkursu na proponowany algorytm AES, jednak mimo przewagi nad pozostałymi w kwestii oferowanego stopnia bezpieczeństwa (wskaźnik bezpieczeństwa tego szyfru określany jest jako wysoki), został ostatecznie wyprzedzony przez szyfr Rijndael [4], którego wskaźnik bezpieczeństwa jest tylko adekwatny [4]. Krytycy, którzy mają nieprzychylne zdanie o Rijndael tłumaczą, że słabszemu stopniowi bezpieczeństwa wygranego szyfru jest winna jego matematyczna struktura, przez co szyfr jest potencjalnie podatny na ataki w przyszłości [4].


W [5] Zespół Twofish prezentuje tabelę czynników bezpieczeństwa dla finalistów AES. Czynnik bezpieczeństwa jest określony jako liczba rund pełnego szyfrowania podzielona przez największą liczbę rund, która została złamana. Zatem, złamany szyfr posiada najmniejszy czynnik bezpieczeństwa, czyli 1. Serpent ma najwyższy ze wszystkich finalistów AES czynnik bezpieczeństwa, 3.56 (dla wszystkich obsługiwanych rozmiarów klucza). Czynnik Rijndael-256 jest znacznie niższy i wynosi dokładnie 1.56.


Pomimo tego uznano, że Rijndael będzie dobrym wyborem dla AES ze względu na odpowiednie połączenie ze sobą bezpieczeństwa, wydajności, sprawności, implementowalności jak i przystosowalności [4]. Na konferencji kandydatów Rijndael zdobył 86 głosów, następnie Serpent uzyskał 59 głosów, Twofish zdobył ich 31, RC6 tylko 23, a najmniej z nich MARS, bo w sumie tylko 13 głosów [18, 19].*
* Są to głosy pozytywne. Jeśli odjelibyśmy głosy negatywne od pozytywnych, wyniki przedstawiałyby się następująca: Rijndael: 76 głosów, Serpent: 52 głosów, Twofish: 10 głosów, RC6: -14 głosów, MARS: -70 głosów [19].

Twofish

Szyfr zaprojektowany przez Bruce’a Schneiera, Johna Kelsey, Douga Whiting, Davida Wagnera, Chrisa Halla, and Nielsa Fergusona i opublikowany w 1998. Operuje na kluczu o długości 256 bitów i na blokach o rozmiarach 128 bitów w trybie XTS (patrz sekcja Tryby operacji). Twofish był jednym z finalistów AES. Szyfr ten używa zależnych od klucza S-boxów i prezentuje się jako zespół 2 128 różnych kryptosystemów, gdzie 128 bitów wyprowadzanych z 256-bitowego klucza kontroluje wybór kryptosystemu [4]. W [13] zespół Twofish stwierdza, że kluczo-zależne S-boxy stanowią formę ochrony przeciwko obcym atakom [4].

AES-Twofish

Dwa szyfry (kaskady) [15, 16] operujące w trybie XTS (patrz sekcja Tryby operacji). Każdy 128-bitowy blok jest najpierw szyfrowany za pomocą Twofish (256-bitowy klucz) w trybie XTS, a następnie szyfrem AES (256-bitowy klucz) również w trybie XTS. Każdy z kaskadowych szyfrów używa własnego klucza. Wszystkie klucze szyfrujące pozostają od siebie niezależne (klucze nagłówka też pozostają niezależne, mimo, że są wyprowadzane z jednego hasła – patrz Wyprowadzanie klucza nagłówka, Sól (ciąg zaburzający) i Liczba iteracji). Więcej informacji na temat każdego z kaskadowych szyfrów znajdziesz w tekście powyżej.

AES-Twofish-Serpent

Trzy szyfry w kaskadzie [15, 16] operujące trybie XTS (patrz sekcja Tryby operacji). Każdy 128-bitowy blok jest najpierw szyfrowany przy użyciu szyfru blokowego Serpent (256- bitowy klucz) w trybie XTS, następnie za pomocą Twofish (256-bit key) w tym samym trybie i na sam koniec blok szyfrowany jest dzięki AES (256-bitowy klucz) również w trybie XTS. Każdy z kaskadowych szyfrów używa własnego klucza. Wszystkie klucze szyfrujące pozostają od siebie niezależne (klucze nagłówka też pozostają niezależne, mimo, że są wyprowadzane z jednego hasła – patrz Wyprowadzanie klucza nagłówka, Sól (ciąg zaburzający) i Liczba iteracji). Więcej informacji na temat każdego z kaskadowych szyfrów znajdziesz w tekście powyżej.

Serpent-AES

Dwa szyfry w kaskadzie [15, 16] operujące w trybie XTS (patrz sekcja Tryby operacji). Każdy 128-bitowy blok jest najpierw szyfrowany przy użyciu szyfru blokowego AES (256- bitowy klucz) w trybie XTS, następnie za pomocą szyfru Serpent (256-bitowy klucz) w trybie XTS. Każdy z kaskadowych szyfrów używa własnego klucza. Wszystkie klucze szyfrujące pozostają od siebie niezależne (klucze nagłówka też pozostają niezależne, mimo, że są wyprowadzane z jednego hasła – patrz Wyprowadzanie klucza nagłówka, Sól (ciąg zaburzający) i Liczba iteracji). Więcej informacji na temat każdego z kaskadowych szyfrów znajdziesz w tekście powyżej.

Serpent-Twofish-AES

Trzy szyfry w kaskadzie [15, 16] operujące w trybie XTS (patrz sekcja Tryby operacji). Każdy 128-bitowy blok jest najpierw szyfrowany za pomocą AES (256-bitowy klucz) w trybie XTS, następnie z Twofish (256-bitowy klucz) w trybie XTS i na sam koniec za pomocą szyfru Serpent (256-bitowy klucz) w trybie XTS. Każdy z kaskadowych szyfrów używa własnego klucza. Wszystkie klucze szyfrujące pozostają od siebie niezależne (kluczenagłówka też pozostają niezależne, mimo, że są wyprowadzane z jednego hasła – patrz Wyprowadzanie klucza nagłówka, Sól (ciąg zaburzający) i Liczba iteracji). Więcej informacji na temat każdego z kaskadowych szyfrów znajdziesz w tekście powyżej.

Twofish-Serpent

Dwa szyfry w kaskadzie [15, 16] operujące w trybie XTS (patrz sekcja Tryby operacji). Każdy 128-bitowy blok jest najpierw szyfrowany za pomocą Serpent (256-bitowy klucz) w trybie XTS, następnie za pomocą Twofish (256-bitowy klucz key) w trybie XTS. Każdy z kaskadowych szyfrów używa własnego klucza. Wszystkie klucze szyfrujące pozostają od siebie niezależne (klucze nagłówka też pozostają niezależne, mimo, że są wyprowadzane z jednego hasła – patrz Wyprowadzanie klucza nagłówka, Sól (ciąg zaburzający) i Liczba iteracji). Więcej informacji na temat każdego z kaskadowych szyfrów znajdziesz w tekście powyżej.

Cyfrowa Matka

Może Ci się również spodoba

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *