Addition ( angl. padding ) v kryptografii - přidávání nesmyslných dat k zašifrovaným informacím s cílem zvýšit kryptografickou sílu . V klasické kryptografii se používaly různé techniky paddingu , techniky paddingu byly široce používány v počítačových šifrovacích systémech.
Formální zprávy často začínají a končí předvídatelným způsobem, například „ S úctou,... “. Hlavním účelem aplikace doplnění do klasických šifer je připravit kryptoanalytika o možnost použít takovou předvídatelnost při kryptoanalýze známého textu [1] . Náhodná délka výplně také zabraňuje kryptoanalytikovi znát přesnou délku zprávy.
Mnoho klasických šifer používá specifické vzory (například čtverce, obdélníky a tak dále) jako prostý text. Pokud odesílaná zpráva neodpovídá šabloně, je často potřeba ji doplnit, aby byla šablona dokončena. Použití nesmyslných znaků jako doplňku v tomto případě také komplikuje práci kryptoanalytika.
Většina moderních kryptografických hašovacích funkcí zpracovává zprávy v blocích s pevnou délkou a téměř všechny do určité míry používají vycpávku.
Mnoho schémat výplně je založeno na přidání určitých dat do posledního bloku. Výplň může být například odvozena z celkové délky zprávy. Tento druh výplně se obvykle aplikuje na hashovací algoritmy založené na Merkle-Damgorově struktuře .
Elektronický seznam kódů (ECB) a řetězení šifrových bloků (CBC) jsou příklady režimů šifrování . Režimy šifrování pro algoritmy se symetrickým klíčem vyžadují, aby délka zprávy byla násobkem velikosti bloku, takže zpráva může vyžadovat vyplnění, aby měla vhodnou délku.
Nevýhodou paddingu je, že činí text náchylným vůči útokům Oracle . Tento útok umožňuje útočníkovi získat informace o přenášené zprávě, aniž by primitivně útočil na blokovou šifru; tomuto útoku se lze vyhnout tím, že se ujistíte, že útočník nemůže získat žádné znalosti o odstranění přidaných bajtů. Toho lze dosáhnout ověřením kódu MAC (Message Authentication Code) nebo digitálního podpisu před odstraněním vyplňovacích bajtů.
Výplň bitůBit padding lze aplikovat na zprávu libovolné délky. Zpráva je doplněna jedním 1 bitem ('1') a určitým počtem nulových bitů ('0'). Počet přidaných nulových bitů závisí na hranici bloku, do které je třeba zprávu doplnit. V bitovém vyjádření je to "1000...0000". Tuto metodu lze použít k vyplnění zpráv libovolným počtem bitů, není absolutně nutné, aby se jednalo o celý počet bajtů. Například 23bitová zpráva je doplněna 9 bity, aby se vyplnil 32bitový blok:
… | 1011 1001 1101 0100 0010 011 1 0000 0000 |
Toto odsazení je prvním krokem ve dvoufázovém schématu odsazení používaného v mnoha hashovacích funkcích, včetně MD5 a SHA .
Byte paddingVýplň bajtů lze použít na zprávy, které lze zakódovat jako celý počet bajtů.
ANSI X.923V ANSI X.923 jsou bajty doplněny nulami a poslední bajt určuje hranici výplně nebo počet přidaných bajtů.
Příklad: V následujícím příkladu má blok velikost 8 bajtů a je vyžadována výplň 4 bajty.
... | DD DD DD DD DD DD DD DD | DD DD DD DD 00 00 00 04 | ISO 10126V ISO 10126 [2] [3] musí být výplň vyplněna náhodnými bajty a poslední bajt musí udávat počet přidaných bajtů.
Příklad: V následujícím příkladu má blok velikost 8 bajtů a je vyžadována výplň 4 bajty.
... | DD DD DD DD DD DD DD DD | DD DD DD DD 81 A6 23 04 | PKCS7Výplň v celých bajtech. Hodnota každého bajtu se rovná počtu přidaných bajtů, to znamená, že N bajtů je přidáno s hodnotou N. Počet přidaných bajtů závisí na hranici bloku, na kterou je třeba zprávu rozšířit. Doplnění bude jedním z:
01 02 02 03 03 03 04 04 04 04 05 05 05 05 05 atd.Tato metoda výplně (stejně jako obě předchozí) je dobře definovaná pouze tehdy, když N je menší než 256.
Příklad: V následujícím příkladu má blok velikost 8 bajtů a je vyžadována výplň 4 bajty.
... | DD DD DD DD DD DD DD DD | DD DD DD DD 04 04 04 04 | ISO/IEC 7816-4ISO/IEC 7816 -4:2005 [4] je totožné se schématem bitové výplně aplikovaným na N bajtový text. V praxi to znamená, že první bajt navíc je nutně '80', následovaný 0 až N-1 bajty '00', pokud je to nutné, dokud není dosaženo hranice bloku. ISO/IEC 7816-4 je komunikační standard pro čipové karty a sám o sobě neobsahuje žádné kryptografické specifikace.
Příklad: V následujícím příkladu má blok velikost 8 bajtů a je vyžadována výplň 4 bajty.
... | DD DD DD DD DD DD DD DD | DD DD DD DD 80 00 00 00 |Následující příklad ukazuje odsazení pouze jedním bajtem:
... | DD DD DD DD DD DD DD DD | DD DD DD DD DD DD DD 80 |Všechny bajty, které je třeba doplnit, jsou vyplněny nulami. Schéma nulového odsazení není standardem rozpoznáno, i když je popsáno jako metoda odsazení 1 pro hashovací funkce a MAC v ISO/IEC 10118-1 [5] a ISO/IEC 9797-1 . [6]
Příklad: V následujícím příkladu má blok velikost 8 bajtů a je vyžadována výplň 4 bajty.
... | DD DD DD DD DD DD DD DD | DD DD DD DD 00 00 00 00 |Nulové odsazení může být nevratné, pokud původní zpráva skončila jedním nebo více prázdnými bajty, což znemožňuje odlišit bajty prostého textu od bajtů výplně.
V kryptografii s veřejným klíčem je padding způsob, jakým je zpráva připravena pro šifrování nebo podepisování pomocí následujících schémat: PKCS#1 , OAEP , PSS , PSSR, IEEE P1363 EMSA2 a EMSA5. Moderní tvar výplně pro asymetrická primitiva je aplikován na algoritmus RSA , když se používá k šifrování omezeného počtu bajtů.
Operace se nazývá "Přidání", protože zpočátku je do zprávy jednoduše přidán náhodný materiál. Tato forma přidávání není bezpečná, a proto se již nepoužívá.
I když jsou použity dokonalé kryptografické postupy, může útočník získat informace o množství generovaného provozu. Útočník nemůže konkrétně vědět, co Alice a Bob vysílali, ale může vědět, že zpráva byla přenesena a jak dlouho to trvalo. V některých situacích to může být velmi špatné. Například, když země zorganizují tajný útok na jinou zemi: to může stačit k tomu, aby byla tato země upozorněna a aby věděla, že probíhá mnoho tajných aktivit.
Jako další příklad, při šifrování toků Voice Over IP , které používají kódování s proměnnou bitovou rychlostí, není počet bitů za jednotku času skrytý, což může sloužit k uhodnutí hlasové fráze. [7]
Přidání zprávy pomáhá ztížit analýzu provozu. Obvykle jsou na konec zprávy přidány náhodné bity, které udávají, kolik takových bitů je celkem.
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |
Hashovací funkce | |
---|---|
obecný účel | |
Kryptografický | |
Funkce generování klíčů | |
Kontrolní číslo ( srovnání ) | |
Hashe |
|