CFB1 vs. CFB8 vs. CFB128 er feedbackstørrelse, ikke nøglestørrelse
Tallet efter CFB er et feedbacktrin, ikke en nøglelængde: CFB1, CFB8 og CFB128 bruger en blok på 128 bit. Læs gamle navne uden at opfinde svage nøgler.
Et navn som AES-256-CFB1 bærer to tal, og de svarer på forskellige spørgsmål. 256 er AES-nøglens længde. Og 1 er CFB-feedbacken, altså segmentstørrelsen: en egenskab ved hvordan tilstanden flyttes frem. Læses 1 som en nøglelængde, ser navnet ud som en katastrofal fejlkonfiguration, og derfor kommer spørgsmålet igen og igen.
Afgør, hvilken af tre størrelser du ser på, før du dømmer navnet: nøglestørrelse, blokstørrelse eller segmentstørrelse. Kun den første er en sikkerhedsparameter i sædvanlig forstand.
Tre tal, tre størrelser
AES accepterer nøgler på 128, 192 eller 256 bit og har en blok på 128 bit, uanset hvad du vælger. Blokstørrelsen hører til AES, ikke til tilstanden. CFB-suffikset er den tredje størrelse: hvor mange data tilstanden forbruger og sender tilbage pr. trin. OpenSSL-dokumentationen om AES angiver disse skiftstørrelser udtrykkeligt for CFB-varianterne.
CFB1 sender én bit tilbage ad gangen, CFB8 én byte, CFB128 en hel blok. Alle tre bruger internt det samme blokchiffer på 128 bit; det, der ændres, er hvor mange bit af hver beregnet blok der bruges pr. operation. Derfor flytter suffikset omkostninger og bufferadfærd frem for nøglestyrke.
| 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 |
Hvorfor blokstørrelsen aldrig ændrer sig
AES er et blokchiffer med en fast blok på 128 bit, og tilstande er konstruktioner omkring det. Ingen af dem krymper blokken for at matche segmentstørrelsen. En CFB1-implementering beregner stadig en fuld AES-blok og tager én bit af resultatet. De øvrige bit kasseres for det trin, og det er netop, hvor effektivitetsomkostningen ligger.
Så feedback på én bit betyder ikke en nøgle på én bit, og et navn kan ikke rangeres efter sit suffiks. CFB128 er ikke fire gange stærkere end CFB32; den behandler større segmenter.
Hvad segmentstørrelsen faktisk ændrer
Segmentstørrelsen ændrer, hvor meget ciphertext der sendes tilbage pr. trin, og hvor meget klartekst hvert trin kan bære. Den ændrer også fejludbredelse og bufferadfærd, hvilket betyder noget for strømlignende brug. Byteorienterede segmenter passer med buffere, bitorienterede gør ikke.
I praksis vælger protokollen tilstanden, ikke operatøren. En VPN-datakanal bruger den konstruktion, dens protokol foreskriver, med sin egen integritetsbeskyttelse, og en biblioteksliste fortæller kun, hvilke navne der findes.
At læse et ukvalificeret CFB-navn
Et ukvalificeret CFB-navn kræver sin implementeringskontekst. I OpenSSL 1.0.2-headere er EVP_aes_128_cfb en makro for EVP_aes_128_cfb128, med tilsvarende aliaser for nøgler på 192 og 256 bit. Det er en API-navngivningskonvention fra én gren, ikke en påstand om, at hvert bibliotek, filformat eller GUI udvider forkortelsen på samme måde. Tjek headeren eller dokumentationen for den version, du har foran dig.
Hvis en ældre profil siger CFB, og modparten accepterer det, registreres de forhandlede parametre et sted: i en log, en konfigurationsdump, et API-svar. Læs dem i stedet for at udlede segmentstørrelsen fra en visningstekst.
Hvad et tilstandsnavn ikke fortæller dig
Navnet beskriver krypteringsadfærd og intet andet. En VPN har stadig brug for integritetsbeskyttelse, nøgleafledning og modpartsautentifikation, og CFB leverer ingen af dem. At bytte CFB8 ud med CFB1 er heller ikke en kosmetisk ændring: adfærden på nettet er forskellig, og begge parter skal understøtte samme konstruktion. Et navn i et bibliotek beviser heller ikke, at den udrullede gateway accepterer det til sin datakanal.
For alt vedligeholdt bruges protokollens fulde beskyttelsesopsætning og operatørens politik, og biblioteks- og gatewayversioner, den præcise indstilling og det forhandlede resultat noteres. Det gamle navn forklarer, hvad du læser; det retfærdiggør ikke at genoplive konfigurationen.