CFB1 a CFB8 a CFB128: to rozmiar sprzężenia zwrotnego, nie rozmiar klucza
Liczba po CFB to krok sprzężenia zwrotnego, a nie długość klucza: CFB1, CFB8 i CFB128 używają bloku 128 bitów. Czytaj stare nazwy bez wymyślania słabych kluczy.
Nazwa taka jak AES-256-CFB1 niesie dwie liczby i odpowiadają one na różne pytania. 256 to długość klucza AES. 1 to sprzężenie zwrotne CFB, czyli rozmiar segmentu, właściwość sposobu, w jaki tryb przesuwa swój stan. Gdy odczytać 1 jako długość klucza, nazwa wygląda na katastrofalną błędną konfigurację i dlatego to pytanie wciąż powraca.
Zanim ocenisz nazwę, ustal, którą z trzech wielkości widzisz: rozmiar klucza, rozmiar bloku czy rozmiar segmentu. Tylko pierwsza jest parametrem bezpieczeństwa w zwykłym sensie.
Trzy liczby, trzy wielkości
AES przyjmuje klucze 128, 192 lub 256 bitów i ma blok 128 bitów, niezależnie od wyboru. Rozmiar bloku należy do AES, nie do trybu. Przyrostek CFB to trzecia wielkość: ile danych tryb zużywa i zwraca w każdym kroku. Dokumentacja AES OpenSSL wymienia te rozmiary przesunięcia wprost dla wariantów CFB.
CFB1 zwraca po jednym bicie, CFB8 jeden bajt, CFB128 cały blok. Wszystkie trzy używają wewnętrznie tego samego szyfru blokowego o 128 bitach; zmienia się to, ile bitów każdego obliczonego bloku jest używane na operację. Dlatego przyrostek zmienia koszt i zachowanie buforowania, a nie siłę klucza.
| Name | Key | AES block | Feedback |
|---|---|---|---|
| AES-256-CFB1 | 256 bits | 128 bits | 1 bit |
| AES-256-CFB8 | 256 bits | 128 bits | 8 bits |
| AES-256-CFB128 | 256 bits | 128 bits | 128 bits |
Dlaczego rozmiar bloku nigdy się nie zmienia
AES to szyfr blokowy o stałym bloku 128 bitów, a tryby to konstrukcje zbudowane wokół niego. Żaden z nich nie zmniejsza bloku, by dopasować go do rozmiaru segmentu. Implementacja CFB1 nadal oblicza pełny blok AES i bierze jeden bit wyniku. Pozostałe bity są dla tego kroku odrzucane i właśnie tam leży koszt wydajności.
Zatem jednobitowe sprzężenie zwrotne nie oznacza jednobitowego klucza, a nazwy nie można szeregować według przyrostka. CFB128 nie jest czterokrotnie silniejszy od CFB32; przetwarza większe segmenty.
Co naprawdę zmienia rozmiar segmentu
Rozmiar segmentu zmienia to, ile szyfrogramu jest zwracane w każdym kroku i ile tekstu jawnego może przenieść każdy krok. Zmienia też propagację błędów i zachowanie buforowania, co ma znaczenie przy użyciu strumieniowym. Segmenty bajtowe pasują do buforów, bitowe nie.
W praktyce tryb wybiera protokół, a nie operator. Kanał danych VPN używa konstrukcji wskazanej przez swój protokół, z własną ochroną integralności, a lista biblioteki mówi tylko, jakie nazwy istnieją.
Jak czytać niekwalifikowaną etykietę CFB
Niekwalifikowana etykieta CFB wymaga kontekstu implementacji. W nagłówkach OpenSSL 1.0.2 EVP_aes_128_cfb jest makrem dla EVP_aes_128_cfb128, z pasującymi aliasami dla kluczy 192 i 256 bitów. To konwencja nazewnictwa API z jednej gałęzi, a nie twierdzenie, że każda biblioteka, format pliku czy GUI rozwija ten skrót tak samo. Sprawdź nagłówek lub dokumentację wersji, którą masz przed sobą.
Jeśli stary profil mówi CFB, a druga strona to akceptuje, wynegocjowane parametry są gdzieś zapisane: w logu, zrzucie konfiguracji, odpowiedzi API. Czytaj je, zamiast wnioskować rozmiar segmentu z ciągu wyświetlanego na ekranie.
Czego nazwa trybu ci nie mówi
Nazwa opisuje zachowanie szyfrowania i nic więcej. VPN nadal potrzebuje ochrony integralności, wyprowadzania klucza i uwierzytelniania drugiej strony, a CFB nie daje żadnego z nich. Zamiana CFB8 na CFB1 też nie jest zmianą kosmetyczną: zachowanie w sieci się różni i obie strony muszą obsługiwać tę samą konstrukcję. Nazwa w bibliotece nie dowodzi również, że wdrożona brama akceptuje ją dla swojego kanału danych.
Dla wszystkiego, co jest utrzymywane, używaj pełnego układu ochrony protokołu i polityki operatora, oraz zapisuj wersje biblioteki i bramy, dokładną opcję i wynegocjowany wynik. Stara nazwa wyjaśnia, co czytasz; nie uzasadnia przywracania tej konfiguracji.