Existují různé různé provozní režimy pro použití blokové šifry, z nichž některé poskytují „encryption“ a některé z nich poskytují ověřené šifrování .
Proč bych měl používat režim ověřeného šifrování , nikoli pouze režim šifrování?
Tato otázka se netýká za cíl diskutovat o různých režimech režimů šifrování ověřeného šifrování vrs (i když se dobrá odpověď může rozhodnout): jeho cílem je zdůvodnit, proč / kdy je AE lepší než „prosté“ šifrování.
Komentáře
- Další odpověď najdete zde na Security.SE tak, jak ji napsal DW
Odpověď
Zásadní rozdíl mezi prostým šifrováním a autentizovaným šifrováním (AE) je to AE navíc provi des autenticity, zatímco prosté šifrování poskytuje pouze důvěrnost. Pojďme podrobně prozkoumat tyto dva pojmy.
V dalším textu předpokládáme, že $ K $ je tajný klíč, který je známý oprávněným stranám, ale útočníkům neznámé.
Cíle
Důvěrnost (soukromí) znamená, že útočník nemůže získat žádné informace o prostém textu $ P $ z ciphertext $ E_K (P) $ , s výjimkou délky. Jinými slovy, ciphertext vypadá jako náhodný řetězec pro ty, kteří neznají $ K $ , i když mají určitou kontrolu nad holým textem. Všechny metody šifrování folklóru, od jednorázového bloku po Enigmu, poskytují důvěrnost (za určitých předpokladů) a pouze ji.
Data autenticita (integrita) znamená, že oprávněná strana (příjemce), která vlastní $ K $ , může zkontrolovat, zda ved data $ D $ jsou originální, tj. byla vytvořena pouze odesílatelem, který zná $ K $ . Data mohou být ve formátu cleartext nebo ciphertext a v každém případě existuje nepatrný rozdíl v tom, co je autentické: pokud je ciphertext autentizován, víme, že vlastník klíče autorizoval ciphertext, ale nemusí to být nutně holý text. Tradiční způsob, jak dosáhnout autenticity, je použít Message Authentication Code (MAC): $$ H_K (D) = T, $$ kde $ T $ se nazývá značka . Ve světě kryptografie s veřejným klíčem je stejného cíle dosaženo pomocí digitálních podpisů.
Co potřebujete
Uživatel je obvykle schopen se rozhodnout, kterou z těchto vlastností hledá. Například pokud ví, že útočník nemůže data upravovat, možná nebude nutné je ověřovat. Pokud však potřebuje obojí, existují bezpečné i nejisté způsoby, jak kombinovat schémata dvou typů. Například naivní přístup k použití stejného klíče $ K $ v obou schématech je pro většinu instancí nebezpečně nejistý. Proto se doporučuje kombinované schéma.
Ověřené šifrování
Ověřené šifrování (AE) poskytuje důvěrnost a autentičnost dat současně. Schéma AE je obvykle složitější než schémata pouze pro zachování důvěrnosti nebo pouze pro autentičnost. Používání je však snazší, protože obvykle potřebuje pouze jeden klíč a je robustnější, protože uživatel má menší svobodu dělat něco špatně (viz také komplikovanější odpověď ).
Jako samostatná funkce může ověřené šifrovací schéma autentizovat, nikoli však šifrovat, část svého vstupu, která se nazývá asociovaná data . Například můžeme chtít zašifrovat obsah internetového paketu, ale musíme nechat jeho záhlaví nezašifrované, ale stále vázané na interní data.
Zabezpečení
Dosud jsme nespecifikovali, co máme na mysli zabezpečeným schématem. Zdá se, že existuje několik bezpečnostních pojmů a uživatel si musí mezi nimi vybrat podle schopností, které od protivníka očekává.
Nejpopulárnější režimy provozu pouze pro zachování důvěrnosti pojem bezpečnosti se zabývá útoky vybraného prostého textu . Nechť $ E $ je schéma šifrování. Předpokládáme, že protivník nejen zná některé prosté texty $ P $ , ale je také schopen si některé z nich zvolit pro šifrování (to je docela praktická situace).Proto umožňujeme protivníkovi zvolit jakýkoli prostý text pro šifrování a mnohokrát za sebou. To, co od bezpečného schématu stále vyžadujeme, je to, že v každém případě vydává náhodně vypadající šifrovací texty: $$ E_K (P_1), E_K (P_2), \ ldots, E_K (P_n) \ sim RandomString (| P_1 | + | P_2 | + \ cdots + | P_n |) $$
Protivník nedokáže rozlišit celou sadu šifrovacích textů, které získá z výstupu skutečného generátoru náhodných bitů stejně dlouhý, i když protivník opakuje své prosté texty. Druhý požadavek znamená, že systém musí být nedeterministický a režimy důvěrnosti, které splňují tyto požadavky, jsou buď pravděpodobnostní, nebo založené na nonce.
Poznamenávám, že existují pojmy zabezpečení folklóru, které se týkají zabezpečení schématu se schopností obnovit samotný klíč $ K $ . To bylo relevantní, když bylo možné klíč použít jinde, ale nyní je to mnohem méně běžné a převládá bezpečnostní koncepce popsaná výše.
Zabezpečení režimů autenticity je definováno v jiným způsobem. Nechť je $ H_K $ takové schéma s tajným klíčem $ K $ . Vyžadujeme, aby pokud si protivník vybral data $ D $ , která dosud nebyla ověřena, pak má šanci uhodnout značku $ T $ takové, že $$ H_K (D) = T $$ jsou zanedbatelné. Pokud odešle dvojici $ (D, T) $ k ověřovateli, dostane odpověď $ \ perp $ (chyba).
Upozorňujeme, že jsme nemluvili o útokech vybraného šifrovaného textu v režimech pouze zachování důvěrnosti. Jedná se o útoky, kdy je protivník také schopen poslat své vlastní šifrovací texty k dešifrování. I když se toto nastavení také objevuje v praxi (i když méně často než útoky podle zvoleného prostého textu), schémata pouze pro zachování důvěrnosti nemohou těmto útokům odolat. Chcete-li vytvořit tento druh zabezpečení, musí se uživatel znovu obrátit na ověřené šifrování .
Zabezpečení ověřených šifrovacích schémat je definováno ve dvou částech. Zaprvé, podobně jako v režimech pouze zachování důvěrnosti, nesmí být protivník schopen rozlišit šifrovací texty od náhodných řetězců. Zadruhé, jakýkoli falešný (nevytvořený na $ K $ ) šifrovacím textu, který pošle k dešifrování, pravděpodobně dostane $ \ perp $ v reakci.
Proto ověřené režimy šifrování poskytují v případě potřeby také zabezpečení proti útokům zvoleného šifrovacího textu.
Jak to funguje
Existuje mnoho integrovaných ověřených šifrovacích schémat: CCM, GCM, OCB, EAX atd. , kde jsou mechanismy zajišťující důvěrnost a autenticitu úzce spojeny. Návrh těchto schémat přesahuje toto téma. Existuje však jednoduché komponované schéma, známé jako Encrypt-then-MAC, které funguje následovně. Nechť $ K_1, K_2 $ jsou tajné klíče, $ P $ být prostý text, $ E $ je nějaký režim šifrování a $ H $ nějaký MAC. Pak schéma $$ \ Pi_ {K_1, K_2}: M \ rightarrow E_ {K_1} (M) || H_ {K_2} (E_ {K_1} (M)) $$ je zabezpečené ověřené šifrovací schéma, pokud $ E $ je režim zabezpečené důvěrnosti a $ H $ je zabezpečený režim autenticity.
Další funkce ověřených šifrovacích schémat
Kromě zajištění důvěrnosti i autenticity mohou mít ověřená šifrovací schémata řadu dalších funkcí. Žádné schéma nemá všechny, proto je nejlepší volba určena nastavením uživatele.
-
Úroveň zabezpečení . Schéma zaručuje důvěrnost a autentičnost dat pouze do výše do určité míry vázané na množství šifrovaných dat nebo požadavků na dešifrování. Tato hranice je obvykle mnohem nižší než prostor klíče a pro režimy založené na AES obvykle nepřesahuje $ 2 ^ {64} $ .
-
Paralelismus Pokud je k dispozici spousta zdrojů, může být potřeba paralelně spustit šifrování, dešifrování nebo ověření. Režimy, které používají řetězení (jako jsou režimy odvozené od šifrování CBC nebo konstrukce houby), je obtížné paralelizovat.
-
Online šifrování . Říkáme že schéma je online, pokud umožňuje šifrovat okamžitě, když jsou data k dispozici, bez znalosti jeho délky.
-
Použití patentů . Jedno z nejzajímavějších schémat AE, režim OCB, je patentováno a je méně časté kvůli této vlastnosti se používá a analyzuje.Často je žádoucí, aby schéma nebylo patentované.
-
Aktualizace značky . Většina schémat, s několika výjimkami, jako je GCM, vyžaduje přepočítat téměř celý šifrovací text, pokud je upravena malá část prostého textu. Pokud lze šifrovací text rychle aktualizovat, umožnilo by to mnohem rychlejší zpracování velkého množství šifrovaných dat, např. Šifrování pevného disku.
-
Použití nonces nebo náhodného IV . Nonces a náhodné IV vedou k odlišným modelům zabezpečení, které jsou často nekompatibilní (schémata mohou být zabezpečena pomocí nonces, ale ne s náhodnými IV stejné délky nebo naopak). Zatímco jedinečnost nonce může být obtížnější zajistit, náhodné IV vyžadují samostatný mechanismus generování náhodných čísel a vedou k rozšíření ciphertextu.
-
Variabilní klíč, nonce, nebo délka značky . Všechny tři parametry jsou obvykle omezeny aplikací, která používá schéma AE. Schémata AE mají zase svá vlastní, někdy nekompatibilní omezení. Čím větší variabilita má schéma, tím více aplikací vyhovuje.
-
Zpracování souvisejících dat . Všechna moderní schémata umožňují ověřování souvisejících dat, která nejsou šifrována. Někteří z nich však nemohou předzpracovat AD dříve, než skončí prostý text, což může být pokutou za výkon.
Dodatečné čtení
technická zpráva společnosti Rogaway představuje komplexní průzkum důvěrnosti – pouze režimy, MAC a některé režimy ověřeného šifrování. Obsahuje také všechny formální podrobnosti o bezpečnostních pojmech.
Komentáře
- Mohu dodat, že v mnoha praktických situacích je do značné míry diktována volba ověřeného šifrovacího schématu. příslušnou konvencí nebo protokoly. Je velmi běžné, že se lidé zamračují na ověřené šifrování, ale v praxi jsem viděl ‚ jak vlastní implementaci MAC-then-encrypt, tak encrypt-then-MAC, abych měl nedostatky než použití ověřeného šifrování. Je to proto, že pro správnou implementaci kombinace je nutná velká pozornost pro detail.
- Pokud jde o další vlastnosti, bylo při hodnocení zabezpečení kritické vyhnout se vytváření postranních kanálů (zejména časovacích postranních kanálů). šifrovací sady AE (AD). Z praktického hlediska to znamená, že je možné implementovat šifru tak, aby běžela v čase, který není ovlivněn klíčem nebo vstupem v prostém textu.
Odpověď
Když přenášíme informace přes nezabezpečený kanál, přejeme si, aby naše data byla zabezpečená.
Takže, co to znamená? Abychom o nich diskutovali, použijeme standardní kryptografickou situaci Alice a Boba. Alice chce poslat něco ( prostý text ) přes nezabezpečený kanál (o čem to bude pojednáno) Bobovi. Tento kanál bude poslouchat Evu (odposlech) a Mallory (která se snaží zlomyslně zasahovat) – co to znamená, bude projednáno v pravý čas.
Důvěrnost : Když Alice pošle zprávu Bobovi, požadujeme, aby se odposlechová Eva, která poslouchá jejich komunikaci, nemohla dozvědět nic o obsahu jejich zpráv.
Odůvodnění : Jinak by se Eva mohla naučit něco, co Alice / Bob nechtějí sdílet.
Řešení: Používáme šifrování , které transformuje prostý text na šifrovací text, který (v teoretickém smyslu informace) ) obsahuje pouze informace o holém textu, které nelze proveditelně extrahovat. To znamená, že (parafrázující Goldwasser ) cokoli Eva se může dozvědět o holém textu, protože zná šifrovací text, dokáže také odvodit bez šifry.
I v tomto případě musíme být opatrní. Jen proto, že schéma obstojí proti pasivnímu útočníkovi (někomu, kdo právě poslouchá stream zpráv), nedělá to silné proti aktivnímu útočníkovi. Zvažte například CBC Je použit režim . Je zabezpečen ve hře IND – CPA , což podle vás dělá bezpečným. Ve hře CCA však umožňujeme útočníkovi požádat o dešifrování zpráv (i když ne dešifrování šifrovacího textu) . Co může udělat, vzhledem k ciphertext $ c = {\ small IV} \ mathbin \ | c_1 \ mathbin \ | \ dots \ mathbin \ | c_n $ je požádat o dešifrování $ c „= a \ mathbin \ | c $, kde $ a $ je nějaká neprázdná zpráva. To se nerovná šifrovacímu textu, což je ve hře povoleno, a když vezme jen posledních $ n $ bloků, může extrahovat dešifrování šifrovacího textu.
Takový příklad není tak vymyslený, jak si možná myslíte, protože to, co modelujeme jako dešifrovací věštec, může dobře existovat v tom, že útočník může být schopen dešifrovat řetězce, ale že data, o která mohou požádat dešifrování možná bude muset začínat konkrétním řetězcem (podobný myšlence injekce SQL).
Autentičnost : Když Bob přijme zprávu, ví, že to rozhodně byla od Alice.
Odůvodnění: Jinak by mohla Mallory poslat zprávu Bobovi a tvrdit, že je od Alice, aniž by to Bob věděl. V prokazatelné bezpečnosti jsme „Velmi shovívavý k tomu, co pro Malloryho znamená vytvořit falešnou zprávu – vyhraje, pokud může vytvořit jakoukoli zprávu, kterou Bob přijme (i když je téměř stejná jako ta, kterou mu již Alice poslala). Existuje mnoho způsobů, jak to provést, například přehrání, změna pořadí nebo bitové převrácení.
Řešení: K dosažení samotného ověření můžeme použít MAC .
Autentičnost a důvěrnost : Alice a Bob komunikují důvěrně a každá zpráva je autentický.
Odůvodnění: Pokud je stream pouze důvěrný (tj. šifrování, ale ne autentizované šifrování), mohl by odposlouchávač být schopen upravit přenášenou zprávu, i když by nevěděl, o co jde. Předpokládejme například, že Alice & Bob používá dokonale zabezpečený jednorázový pad ( OTP ) s tajným klíčem $ k $ a zprávou $ m $:
$$ A \ text {send} c = m \ oplus k \ do B \\ \ prec M \ text {zachycuje} c \ succ \\ M \ text {send} c „= c \ oplus h \ na B \ text {(pro nějakou hodnotu} h) \\ B \ text {přijímá} c“ \ text {od M, ale myslí si, že to je} c \ text {odeslaný z} A \\ B \ text {decrypts} m „= c“ \ oplus k = c \ oplus h $$ To znamená, že $ B $ přijal zprávu $ m „$, ale on si myslí, že je to $ m $.
Takže předpokládejme, že protokol není ověřen a Mallory ví, že zpráva, kterou Alice pošle Bobovi, je“ Souhlasím s odesláním £ ??? na účet # ???? „u některých hodnot ???. I když nemohou přesně zjistit, o jaký účet jde, a tak možná nemohou odeslat platbu na svůj vlastní účet, mohou se změnit to už není účet Alice.
Řešení: Ověřené šifrování!
Dobrý článek, který vysvětluje potřebu AE, je tento blogový příspěvek od Matthewa Greena. Techničtějším úvodem do provozních režimů je tento příspěvek od Rogaway.
Komentáře
- Jediným šifrovacím schématem zajišťujícím bezpečnost informací je teoretická jednorázová podložka. Šifrovací schémata IND-CPA zaručují pouze to, že informace nelze extrahovat ze šifrovacího textu pravděpodobným poly-časovým protivníkem.
- Ach ano, to bylo napsáno nejasně (/ nesprávně!). Děkuji za jeho úpravu – chtěl jsem to dát jako ‚ neobsahuje žádné informace <, které by bylo možné extrahovat > ‚
- ve skutečnosti mnoho “ pouze k zachování důvěrnosti “ režimy vlastně ani nedávají ‚ dobré utajení, když jsou napadeny aktivním útočníkem (který může upravovat zprávy nebo připojovat vybrané prosté texty nebo vybrané útoky šifrovacími texty) . Proto je třeba tyto režimy v praxi (pro komunikační kanál) používat společně s některými MAC, a to i pro získání důvěrné části. Režim AE je kombinuje do jednoho.
- @ PaŭloEbermann / Kdokoli jiný: Opravdu si nemyslím, že ‚ si ‚ napsal jsem tu dobrou odpověď (koneckonců v pátek večer!), ale chtěl jsem jen dát první myšlenky. Neváhejte přidat své vlastní odpovědi / upravit toto / odepsat své vlastní z tohoto. Pokud si lidé myslí, že moje odpověď je “ dostatečně blízká “ dobré (což ji při opětovném načítání nedokážu ‚ t) pak ‚ můžete jen upravit nebo znovu použít moje slova ve vašem.
- Myslím, že AE také poskytuje integritu ( en.wikipedia.org/wiki/Authenticated_encryption ), takže možná budete chtít přidat i to.