Výhody a nevýhody Stream versus Blokové šifry

Šifrovací algoritmy jako Blowfish, AES, RC4, DES a Seal jsou implementovány v jedné ze dvou kategorií šifer. Jaké jsou výhody / nevýhody typu šifer?

Odpověď

I když jsou oba symetrické šifry, šifry streamů jsou založeny na generování „nekonečného“ kryptografického klíčového proudu a jeho použití k zašifrování jednoho bitu nebo bajtu najednou (podobně jako jednorázový blok), zatímco blokové šifry fungují na větších blocích dat (tj. blocích) najednou, často kombinují bloky pro další zabezpečení (např. AES v režimu CBC).

  • Streamové šifry jsou obvykle rychlejší než bloky, ale má to svou vlastní cenu.
  • Blokové šifry obvykle vyžadují více paměti, protože fungují na větších částech dat a často mají „přenos“ z předchozích bloků, zatímco šifry streamů fungují pouze na několika bitech najednou, mají relativně nízké nároky na paměť (a proto je jejich implementace levnější v omezených scénářích, jako jsou vestavěná zařízení, firmware a zejména hardware) .
  • Streamové šifry se obtížněji implementují správně a jsou náchylné k slabinám založeným na použití – protože principy jsou podobné jednorázovým padům, keystream má velmi přísné požadavky. Na druhou stranu, že “ je obvykle složitá část a lze ji vyložit např externí krabici.
  • Protože blokové šifry šifrují celý blok najednou (a navíc mají režimy „zpětné vazby“, které se nejvíce doporučují), jsou náchylnější k přenosu šumu, to znamená, že pokazíte jednu část data, vše ostatní je pravděpodobně neobnovitelné. Zatímco s bity šifrování proudu jsou bajty jednotlivě šifrovány bez připojení k jiným částem dat (ve většině šifer / režimů) a často mají podporu pro přerušení na lince.
  • Streamové šifry také neposkytují ochranu nebo autentizaci integrity, zatímco některé blokové šifry (v závislosti na režimu) mohou kromě důvěrnosti poskytovat ochranu integrity.
  • Kvůli všem výše uvedeným , šifry streamů jsou obvykle nejlepší pro případy, kdy je množství dat neznámé nebo kontinuální – například síťové toky. Na druhou stranu blokové šifry, nebo užitečnější, když je předem známo množství dat – například soubor, datová pole nebo protokoly požadavku / odpovědi, jako je HTTP, kde je délka celkové zprávy známa již na začátek.

Komentáře

  • Druhá odrážka není přesná. Rozdíl v paměti způsobený “ přenesením “ z předchozích bloků je zanedbatelný a mnohem menší než rozdíl v paměti od algoritmu k algoritmu ( např. porovnejte RC4 se svými 256 bajty vnitřního stavu s AES, s 0 bajty vnitřního stavu v některých implmeentacích). Poslední odrážka přináší falešné rozdíly a je špatnou radou.
  • @ D.W. 2. odrážka byla “ obecně řečeno „, což je obvykle případ (ale připouštím, že to není přesně přesné).
  • @DW máte nějaký základ pro svůj komentář k poslední odrážce? Kde je falešné rozlišení a proč říkáte, že je to špatná rada?
  • ano, mám základ pro svůj komentář k poslední odrážce. Zdá se, že je to celkově zmatené. Blokové šifry jsou dobré pro streamování dat; viz např. režim CBC, režim CTR atd., kde najdete různé provozní režimy, které dobře fungují se streamovanými daty. Blokové šifry se neomezují na případy, kdy je množství dat známo předem. ‚ Nevím o žádném důvodu považovat šifry streamů za lepší než blokovat šifry pro streamování dat (i přes název).
  • D.W. je správné: Slovo ‚ Stream ‚ v Stream Cipher odráží, že existuje klíčový proud – proud bitů, který je kombinován s prostým textem produkovat šifrovací text. To neodráží kompozici prostého textu. Je zřejmé, že se jedná o detail, který často zaměňuje vývojáře a inženýry, s nimiž je obvykle implikován. Blokové šifry lze použít k manipulaci se streamováním prostého textu v pohodě. Matoucí je také to, že blokové šifry lze použít jako proudovou šifru s vhodným provozním režimem a pokud je velikost bloku atomová (např. 1 bajt).

Odpovědět

A bloková šifra je univerzální algoritmus, který implementuje klíč závislá permutace hodnot, které jsou sekvencemi pevného počtu bitů (tzv. „bloky“). Může být použit pro různé role v mnoha druzích kryptografických protokolů. Jednou z takových rolí je hromadné šifrování dlouhých toků dat; k dosažení takového cíle musí být bloková šifra použita s příslušným provozním režimem (aka „režim zřetězení“), tradičním je CBC a trendovým novějším režimem je CTR.

proudová šifra je specializovaný algoritmus pro hromadné šifrování dlouhých toků dat. Myšlenka je, že propadnutím všestrannosti blokové šifry by bylo možné vytvořit efektivnější algoritmus (tj. Něco, co šifruje data rychleji ).

Oba blokové šifry s režimem šifrování orientovaným na stream a šifry streamů mohou narazit na problémy se zabezpečením, pokud je stejný klíč použit dvakrát, pro dva odlišné streamy, aniž by byl k dispozici vhodný, jedinečný / náhodný Inicializační vektor . Pro šifrování CBC musí být IV pro každou novou zprávu nová rovnoměrně náhodná sekvence bitů, stejné velikosti než blok. Dobré šifry proudu také přijímají IV. Tradiční proudová šifra s názvem RC4 je bez použití IV (jeho specifikace neuvádí, kde a jak by mohla být vložena IV), což vedlo k velkému chaosu a dalo špatné jméno pojmu šifry streamů.

Novější, bezpečnější (a rychlejší) šifry streamů najdete v portfoliu eSTREAM . Tyto algoritmy prošly poměrně důkladnou analýzou mnoha kryptografů a jsou považovány za „zcela bezpečné“.

Streamovou šifru lze převést na generátor pseudonáhodných čísel šifrováním dlouhé sekvence bajtů s nulovou hodnotou. Ve skutečnosti mnoho (ale ne všechny) proudové šifry interně fungují tak, že jsou PRNG a generují dlouhou sekvenci klíčově závislých pseudonáhodných bajtů, které jsou následně kombinovány (bitovým XOR) s daty k šifrování (nebo dešifrování), takže šifrování nulových bajtů je pak ekvivalentní úplnému vynechání XOR. Proto se šifry streamů často používají jako vlastní PRNG.

Komentáře

  • Zapomněli jste zmínit, co je obecně bezpečnější (stream vs block).
  • Nezapomněl jsem, protože tvrzení nedává žádný obecný smysl. Blokové šifry i proudové šifry mohou poskytnout odpovídající zabezpečení, pokud jsou správně použity a nemají strukturální slabiny.
  • “ univerzálnost blokové šifry “ mám s touto částí potíže. Čím je bloková šifra ve své podstatě univerzálnější? Blokové šifry lze použít k šifrování a autentizaci buď streamů (např. TLS), nebo paketových dat (např. ESP) a totéž pro streamové šifry (např. TLS nebo DTLS). Existují případy, kdy se streamová šifra zdá být více “ přirozená “ (např. Šifrování zvuku) nebo bloková šifra vypadá více “ přírodní “ (např. Šifrování disků), ale v rozumných aplikacích nevidím ‚ velkou mezeru buď.

Odpověď

Jednou z výhod šifrovacích proudů, které dosud nebyly zmíněny, je to, že „nepotřebujete výplň (blokové šifry fungují na celých blocích, takže pokud nemáte dostatek dat, musíte nějak nějak vygenerovat). A překvapení (opravdu ne, kryptografie je pole, kde je Murphy všude), výplň lze špatně, jak je doloženo například v Praktické vycpávky Oracle Attacks .

Také zabezpečení blokových šifer do značné míry závisí na jejich provozním režimu, vy Stále vidíme, že ECB je občas použita a není to o moc lepší než žádná kryptoměna vše.

V zásadě nemůžete říci, že jeden je lepší než ten druhý, jeden se musí podívat na kompletní kryptosystém, aby mohl posoudit bezpečnost.

Komentáře

  • k vašemu prvnímu odstavci: pro blokové šifry existují režimy provozu, které nepotřebují polstrování, například: režim CTR. Není to tedy výhoda, která je jedinečná pro streamování šifer. Ale +1 k vašemu poslednímu odstavci – dobře řečeno!
  • No, ‚ říkám, že CTR a OFB jsou konstrukce, které vytvářejí proudovou šifru z blokové šifry. To ‚ je další skvělá věc s blokovými šiframi, lze je snadno použít jako stavební kameny pro jiné věci, ať už jde o proudové šifry nebo jednosměrné hashe. Šifry streamů nejsou tak univerzální.
  • Zapomněli jste zmínit, co je obecně bezpečnější (stream vs block).
  • Žádné není přirozeně bezpečnější, Opravdu je používáte.

Odpovědět

Streamové šifry kryptují data ve formátu prostého textu s náhodným bitovým tokem (obvykle s XOR, protože jej lze snadno převrátit). Pokud máte 128bitová data, použijete k šifrování 128bitový psedurandom strem (váš klíč).

Blokové šifry kryptují data ve formátu prostého textu po bloku se stejnou transformací (na základě klíče ).Takže máte svá 128bitová data, šifra je rozdělí na bloky (jako 4 bloky po 32 bitech) a použije stejnou transformaci na každý blok, který získá 4 šifrované bloky, které v kombinaci vytvoří finální kryptogram.

Of samozřejmě díky tomuto Block Cyphers jsou bezpečnější, ale nákladně použitelné z hlediska složitosti hardwaru. Streamové šifry jsou rychlejší a „levné“, ale mohou být náchylné k bezpečnostním problémům , pokud nebudou implementovány správně.

Komentáře

  • Poslední odstavec obsahuje řadu faktických chyb. Blokové šifry nejsou obecně bezpečnější, ani nejsou nutně horší v hardwaru. Streamové šifry nemusí být nutně rychlejší nebo levnější.
  • @DW: Bez ohledu na to jsou streamové šifry obvykle rychlejší nebo levnější než blokové šifry, protože ‚ s deal: méně univerzální algoritmus obchodovaný pro lepší výkon. Streamová šifra, která je pomalejší a dražší než AES / CTR, si vůbec vůbec nezvykne.
  • Zapomněli jste zmínit, co je obecně bezpečnější (stream vs block).

Odpověď

Data (data, která mají být šifrována) obvykle přicházejí ve streamech. Abychom to zašifrovali, musíme použít proudovou šifru, tj. Šifrovací algoritmus vhodný pro použití v proudu dat. Proud je sled bitů (nebo bajtů) libovolné, měnící se nebo neurčené délky.

Nejlepší šifry, které jsme doposud vynalezli, jsou obvykle blokové šifry. Bloková šifra je schopna šifrovat jeden blok dat pevné velikosti; a podle důkazů kolem nás je zjevně snazší vytvářet dobré blokové šifry než streamové šifry.

Dobrá zpráva. Použitím dané blokové šifry v některých konkrétních vzorcích („provozní režim“) a pomocí konkrétních strategií výplně můžeme transformovat jakoukoli blokovou šifru na proudovou šifru! To znamená, že můžeme použít lepší šifry, což jsou blokové šifry, k šifrování jakýchkoli dat, z nichž většina přichází ve streamech.

Komentáře

  • druhá věta se zdá být zavádějící. Streamovaná data můžete šifrovat pomocí blokové šifry pomocí libovolného z řady standardních provozních režimů: např. Režim CBC, režim CTR atd. AES-CBC je stále blokovou šifrou. Ve skutečnosti téměř každý standardní režim provozu pro blokové šifry již podporuje streamování dat. Bloková šifra navíc není bezpečná bez provozního režimu, takže ‚ není jako provozní režim je některá volitelná věc, kterou potřebujete, jen když chcete šifrovat streamovaná data .

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *