RC6
W kryptografii RC6 jest symetrycznym szyfrem blokowym pochodzącym z RC5. RC6 jest sparametryzowanym algorytmem o zmiennej wielkości bloku, zmiennej wielkościklucza i zmiennej liczbie rund. RC oznacza "Rivest Cipher" lub alternatywnie "Ron's Code".
W 1997 roku NIST ogłosiła konkurs na następcę standardu szyfrowania danych (DES), znanego jako Advanced Encryption Standard (AES). RC6 pochodzi z RC5 i został wybrany jako jeden z pięciu finalistów konkursu na zaawansowany standard szyfrowania (Advanced Encryption Standard - AES), ale nie został wybrany jako standard.
W celu zapewnienia różnych poziomów bezpieczeństwa i wydajności, RC6 umożliwia wybór wielkości bloku: 32 bity (wyłącznie do celów eksperymentalnych i oceny), 64 bity (do stosowania jako zamiennik DES) i 128 bitów (przeznaczonych dla AES). Liczba rund może wynosić od 0 do 255, a wielkość klucza od 0 bitów do 2040 bitów.
RC6 jest bardzo podobny do RC5 w strukturze i może być postrzegany jako przeplatanie się dwóch równoległych procesów szyfrowania RC5. W RC6 zastosowano jednak dodatkową operację mnożenia, która nie występuje w RC5, oraz użycie czterech b/4-bitowych rejestrów roboczych (patrz podział bloków zwykłego tekstu w szyfrze feistel) zamiast dwóch b/2-bitowych rejestrów, jak w RC5 (b to rozmiar bloku). Do zwiększenia dyfuzji osiąganej na rundę stosuje się mnożenie całek, dzięki czemu potrzeba mniej rund i można zwiększyć szybkość działania szyfru.
Powodem stosowania czterech rejestrów roboczych zamiast dwóch jest głównie optymalizacja na 32-bitowych procesorach. Domyślny rozmiar bloku RC5 to 64 bity, natomiast domyślny rozmiar bloku AES to 128 bitów. RC5 posiada tylko dwa robocze rejestry. Wykorzystuje on operacje 32-bitowe podczas pracy z blokami 64-bitowymi oraz operacje 64-bitowe podczas pracy z blokami 128-bitowymi, dlatego do budowy architektury AES wymagane są cztery rejestry robocze wykorzystujące tylko operacje 32-bitowe.
RC6 jest zastrzeżonym i opatentowanym algorytmem (przez RSA Security U. S. Patent 5 724 428 i Patent USA 5 835 600 ) i może wymagać uiszczenia opłat licencyjnych i opłat licencyjnych za wszelkie produkty wykorzystujące ten algorytm. Został on zaprojektowany przez Rona Rivesta, Matta Robshaw, Raya Sidneya i Yiqun Lisa Yin, a także przedłożony do projektów NESSIE i CRYPTREC.
Pytania i odpowiedzi
P: Co to jest RC6?
O: RC6 to szyfr blokowy z kluczem symetrycznym wywodzący się z RC5. Jest to parametryzowany algorytm o zmiennej wielkości bloku, wielkości klucza i liczbie rund.
P: Kto zaprojektował RC6?
O: RC6 został zaprojektowany przez Rona Rivesta, Matta Robshawa, Raya Sidneya i Yiqun Lisa Yina.
P: Jakie są domyślne wielkości bloków dla RC5 i AES?
O: Domyślny rozmiar bloku w RC5 to 64 bity, a domyślny rozmiar bloku w AES to 128 bitów.
P: Jak wygląda struktura RC6 w porównaniu z RC5?
O: Struktura RC6 jest bardzo podobna do RC5, ale wykorzystuje dodatkową operację mnożenia, której nie ma w RC5, a także cztery rejestry robocze b/4-bitowe zamiast dwóch b/2-bitowych.
P: Dlaczego stosuje się cztery rejestry robocze zamiast dwóch, aby zbudować architekturę AES wykorzystującą tylko operacje 32-bitowe?
O: Mnożenie liczb całkowitych służy do zwiększenia dyfuzji osiąganej w jednej rundzie, dzięki czemu potrzeba mniej rund i można zwiększyć szybkość. Potrzebne są cztery rejestry robocze, ponieważ w przypadku bloków 64-bitowych stosuje się operacje 32-bitowe, a w przypadku bloków 128-bitowych - 64-bitowe.
P: Czy w przypadku produktów wykorzystujących ten algorytm wymagane są jakieś opłaty licencyjne lub tantiemy?
O: Tak, ponieważ jest to algorytm zastrzeżony i opatentowany (przez RSA Security U.S. Patent 5,724,428 i U.S. Patent 5,835,600 ), w przypadku produktów wykorzystujących ten algorytm mogą być wymagane opłaty licencyjne i tantiemy.