Při návrhu kryptografického řešení se často objeví jednoduchá zkratka: hardware
je rychlejší a bezpečnější než software. Takové tvrzení je ale příliš obecné. Hardware a software
mají rozdílné vlastnosti, různé možnosti optimalizace a také jiné náklady na změnu, údržbu
a ochranu. Pro rozhodnutí proto nestačí porovnat jednu hodnotu propustnosti. Je potřeba sledovat
také latenci, determinismus, spotřebu zdrojů, možnost aktualizace, náklady, odolnost proti
chybám a útokům, detekce chyb a útoků a především požadavky konkrétní aplikace.
Navíc se hranice mezi hardwarem a softwarem v praxi stírá. Software může využívat instrukce
procesoru určené pro kryptografii, specializovaný akcelerátor nebo jiný hardwarový prostředek.
Naopak programovatelný hardware může obsahovat poměrně obecnou logiku. Smysluplnější je proto
porovnávat konkrétní architektury než abstraktní kategorie „hardware“ a „software“.
Mezi hardwarovou a softwarovou implementací kryptografických algoritmů existují rozdíly
ve výkonu, latenci, ceně, možnosti aktualizace, způsobu detekce chyb i bezpečnostních
vlastnostech. Bez konkrétního měření ale nelze spolehlivě určit, která varianta bude pro
daný systém vhodnější.
Výrobci navíc nemusí uvádět všechny parametry potřebné pro skutečné posouzení. Nominální
propustnost kryptografického akcelerátoru nemusí odpovídat propustnosti celého systému.
Do výsledku mohou vstupovat přenosy mezi pamětí a akcelerátorem, fronty požadavků,
synchronizace, síťové rozhraní, operační systém nebo sdílení prostředku více aplikacemi.
| Oblast | Hardware | Software |
| Výkon | Je dán architekturou, šířkou datové cesty, počtem paralelních bloků, počtem taktů na operaci, frekvencí a technologií. U ASIC lze optimalizovat přímo pro požadovaný algoritmus. | Závisí na procesoru, jeho architektuře, frekvenci, počtu jader, dostupných instrukčních rozšířeních a kvalitě implementace. Významnou roli má také kompilátor a použitá kryptografická knihovna. |
| Latence | Lze ji při vhodné architektuře poměrně přesně předvídat. Závisí například na počtu taktů, kritické cestě a pipeline. | Ovlivňuje ji nejen počet instrukcí, ale také cache, přerušení, plánování vláken, přístup do paměti a operační systém. |
| Propustnost | Lze ji zvyšovat paralelismem, širší datovou cestou, pipeline a více instancemi kryptografického jádra. | Závisí na výkonu CPU a dostupném paralelismu. Lze ji zvýšit více jádry, SIMD nebo hardwarovými kryptografickými instrukcemi. |
| Zdroje | U ASIC a FPGA souvisí zejména s logikou, pamětí, registry, I/O a technologií výroby. U FPGA lze sledovat například LUT, FF, BRAM a DSP. | Spotřebovává především CPU, paměť a případně kryptografický akcelerátor. |
| Spotřeba energie | Specializovaný hardware může být velmi efektivní z hlediska energie na zpracovaný bit nebo blok. | Závisí na zatížení procesoru a době potřebné ke zpracování kryptografie. |
| Cena | Komoditní akcelerace může mít malý dodatečný náklad. Specializovaný ASIC má naopak vysoké počáteční náklady na návrh, verifikaci a výrobu. | Nevyžaduje návrh nového čipu, ale přináší náklady na vývoj, integraci, testování, údržbu a platformu. |
| Flexibilita | ASIC je omezený; FPGA a programovatelný hardware jsou flexibilnější. | Obvykle vysoká. Algoritmus nebo jeho implementaci lze změnit aktualizací. |
| Oprava zranitelnosti | U pevného ASIC může být oprava velmi nákladná nebo prakticky nemožná. U FPGA a aktualizovatelného firmwaru je situace lepší. | Opravu lze obvykle distribuovat aktualizací, pokud to dovoluje platforma a mechanismus aktualizace. |
| Detekce chyb | Lze implementovat redundanci, parity, kontrolní mechanismy nebo ochrany proti fault injection. | Lze implementovat validaci, kontrolu integrity a další mechanismy, ale výsledek ovlivňuje i procesor, paměť a operační systém. |
| Side-channel ochrany | Lze je navrhovat přímo v obvodu, například masking nebo hiding. Tyto ochrany mohou zvyšovat plochu a spotřebu. | Lze používat konstantní čas a další techniky, ale implementace závisí na konkrétním procesoru, cache a paměťovém subsystému. |
| Determinismus | Typicky vysoký, pokud je architektura navržena s předvídatelným počtem taktů a datovou cestou. | Obvykle nižší v běžném multitaskingovém systému. Bare-metal nebo real-time prostředí může být výrazně determinističtější. |
| Doba podpory | Závisí na dostupnosti komponenty a životním cyklu návrhu. | Závisí na operačním systému, knihovnách, firmwaru a výrobci platformy. |
| Ověření a certifikace | Může zahrnovat ověření RTL, fyzické implementace a testování proti fault nebo side-channel útokům. | Zahrnuje zdrojový kód, knihovny, API, závislosti a konkrétní běhové prostředí. Aktualizace mohou vyžadovat opakované testování. |
| Škálovatelnost | Výkon lze zvyšovat paralelními jádry, pipeline nebo širší datovou cestou za cenu plochy a spotřeby. | Lze využít rychlejší CPU, více jader nebo akcelerátory. |
| Životní cyklus algoritmu | Pevný ASIC může při změně algoritmu vyžadovat nový hardware. | Algoritmus lze zpravidla změnit nebo doplnit aktualizací softwaru. |
Z tabulky nevyplývá univerzální vítěz. Výběr architektury musí vycházet z požadované kombinace výkonu, latence, bezpečnosti, flexibility a životního cyklu.
Propustnost udává množství dat, které je implementace schopna zpracovat za jednotku
času. Latence naopak vyjadřuje čas od vzniku požadavku nebo datového bloku do okamžiku,
kdy je k dispozici výsledek. Tyto veličiny nejsou zaměnitelné. Paralelizovaná implementace
může mít velmi vysokou agregovanou propustnost, ale jednotlivý požadavek může stále
vyžadovat relativně dlouhou dobu kvůli inicializaci výpočtu, synchronizaci, přístupu
do paměti, čekání na akcelerátor nebo dokončení navazujících operací.
U symetrických algoritmů lze díky hardwarové akceleraci dosahovat vysoké propustnosti,
zejména při zpracování velkých bloků nebo více paralelních toků. Operace založené
na veřejném klíči, výměně klíčů, digitálním podpisu nebo ověřování podpisů mají jiný
výpočetní charakter a jejich latence může být významnější. Při hodnocení proto nestačí
sledovat taktovací frekvenci nebo nominální počet kryptografických operací. Výsledek
ovlivňuje například:
U softwaru se navíc uplatňuje operační systém, plánování vláken, přepínání kontextu, virtualizace nebo další mechanismy, které mohou do latence vnášet proměnlivou složku. Z bezpečnostního hlediska je proto vhodné sledovat nejen průměrnou dobu operace, ale také rozptyl a například horní kvantily latence. Systém s velmi krátkou průměrnou dobou operace může být pro časově kritické použití nevhodný, pokud za určitých okolností vykazuje výrazně delší odezvu.
Při návrhu specializovaného kryptografického datapathu lze výkon škálovat změnou šířky datové cesty. Následující hodnoty je ale nutné chápat jako modelový příklad, nikoli jako univerzální benchmark konkrétního ASIC.
| Datapath | Gate equivalents | Taktů AES-128 |
| 8 bit | 5 052 GE | 160 |
| 16 bit | 6 281 GE | 80 |
| 32 bit | 7 155 GE | 40 |
| 64 bit | 11 628 GE | 20 |
| 128 bit | 20 410 GE | 10 |
Z tabulky je patrné, že širší datapath může snížit počet taktů potřebných pro zpracování bloku. Současně ale roste složitost implementace a není možné z toho přímo odvodit celkovou systémovou latenci. Pokud například uvažujeme modelový akcelerátor pracující na 1 GHz, vychází při uvedených počtech taktů přibližně následující hodnoty:
| Datapath | Modelová propustnost | Modelová latence AES-128 |
| 8 bit | 0,8 Gb/s | 160 ns |
| 16 bit | 1,6 Gb/s | 80 ns |
| 32 bit | 3,2 Gb/s | 40 ns |
| 64 bit | 6,4 Gb/s | 20 ns |
| 128 bit | 12,8 Gb/s | 10 ns |
Tyto hodnoty popisují pouze samotnou kryptografickou operaci v daném modelu. Nezahrnují přenos dat, čekání ve frontě, přístup do paměti, synchronizaci ani ostatní části systému. Proto je nelze zaměňovat za end-to-end latenci.
Při vzdáleném řízení nebo zpracování dat je potřeba posuzovat celý řetězec. Pokud se data přenášejí mezi zařízeními, kryptografická ochrana může být provedena před přenosem i po přijetí dat. Při vzdáleném rozhodování se obdobný proces opakuje také v opačném směru. Modelový příklad může vypadat například takto:
V uvedeném modelu vychází celkové zpoždění přibližně na 11 µs. Pokud příprava
dat a kryptografické operace zaberou přibližně 1 µs, tvoří už významnou část časového
rozpočtu. To může být důležité například u výkonové elektroniky a měničů, RF/DSP
řízení, ultrazvukového snímání, ochranných a spínacích funkcí nebo některých optických
a telekomunikačních systémů. Nejde ale pouze o tyto příklady. Stejný princip platí
všude tam, kde existuje pevný časový rozpočet a kryptografická ochrana z něj spotřebovává
významnou část.
Důležité je, že v takové situaci nemusí být hlavním problémem volba mezi hardwarem
a softwarem. Pokud je celý systém příliš pomalý, pouhá optimalizace kryptografické
operace nemusí problém vyřešit. Je potřeba posoudit celý časový řetězec.
U systémů pracujících s velmi rychlými nebo prudce se měnícími ději nabývá významu
také determinismus. Nejde pouze o to, zda kryptografický mechanismus dokončí operaci
dostatečně rychle v průměru, ale zda lze s dostatečnou jistotou předpokládat, že
ji dokončí v požadovaném časovém intervalu. Každý další krok mezi získáním informace
a reakcí systému vytváří vlastní latenci a případně také jitter, tedy časovou
nejistotu. Celkovou odezvu lze zjednodušeně chápat jako součet latence snímání,
předzpracování, kryptografických operací, komunikace, synchronizace, rozhodovací
logiky a fyzické reakce.
U časově kritických systémů může být proto vhodnější mechanismus s předvídatelnou
a omezenou latencí než řešení s vyšší průměrnou výkonností, ale výrazně proměnlivou
odezvou. To je důležitý rozdíl mezi běžným informačním systémem a řídicím systémem.
U běžného systému může být několik milisekund dodatečné latence zanedbatelných.
U procesu s velmi krátkým časovým horizontem může stejná latence znamenat, že informace
přestane být použitelná ještě před jejím ověřením.
Kryptografická ochrana tak může současně zvyšovat bezpečnost z hlediska důvěrnosti
a integrity a vytvářet nárok na část časového rozpočtu systému. Nejde o argument
proti kryptografii. Jde o důvod, proč ji posuzovat jako součást celého systému.
Tento problém souvisí také s klasifikací. Hodnota informace nemusí být konstantní
v čase. Některé informace mají vysokou hodnotu pouze před nebo během určité události.
Jiné mohou mít dlouhodobou hodnotu pro analýzu, plánování nebo zpětné odvození
vlastností systému.
Samotný údaj může být po určité době prakticky bezvýznamný, ale větší množství
podobných údajů může umožnit zpětně odvodit vlastnosti procesu, přesnost měření,
reakční časy, konstrukční charakteristiky nebo jiné parametry systému. Časová
degradace informační hodnoty proto nemusí být monotónní. Bezprostřední hodnota
může prudce klesnout, zatímco analytická nebo důkazní hodnota může přetrvávat.
Při posuzování ochrany je proto vhodné zohlednit:
Z toho vyplývá i pojem časový rozpočet informace. Označíme-li okamžik vzniku
informace jako t0 a nejzazší okamžik, kdy lze na jejím základě účinně
jednat, jako tD, potom dostupný časový rozpočet lze přibližně vyjádřit jako:
TD = tD - t0
Do tohoto intervalu se musí vejít nejen kryptografická operace, ale celý řetězec
zpracování a reakce. Prakticky tedy nestačí podmínka:
T(crypto) < TD;
důležitější je zajisti T(end-to-end) < TD,
zároveň je vhodné ponechat rezervu pro jitter, ztráty paketů, opakování komunikace,
změnu zatížení a další nepředvídané stavy.
Pokud se tato podmínka nesplní, může být kryptografický mechanismus technicky
správně implementovaný a přesto neposkytovat praktickou ochranu požadované operace,
protože chráněná informace bude dostupná až po okamžiku, kdy ji již nelze účinně
využít. V takovém případě je potřeba posuzovat architekturu celého systému: zda
lze některé výpočty provést předem, zda lze operace paralelizovat, zda lze oddělit
časově kritickou datovou cestu od méně kritického logování nebo zda je možné použít
jiný kryptografický kontext s menší režií.
Kryptografii proto není vhodné hodnotit pouze podle počtu zpracovaných bitů za sekundu.
Pro návrh systému jsou stejně důležité latence, její rozptyl, determinismus a celková
end-to-end odezva. Hardware může nabídnout vysokou a předvídatelnou propustnost, ale
za cenu vyšší specializace nebo obtížnější aktualizace. Software přináší větší flexibilitu,
ale jeho latenci mohou ovlivňovat další vrstvy systému. V praxi navíc často vzniká
kombinované řešení, takže hranice mezi oběma přístupy není ostrá.
Rozhodující proto není otázka, zda je hardware nebo software obecně rychlejší.
Rozhodující je, zda konkrétní architektura splňuje časový rozpočet dané aplikace
při požadované úrovni bezpečnosti a současně poskytuje dostatečnou rezervu pro běžné
i výjimečné provozní stavy. Stejně jako u klasifikace je přitom potřeba zohlednit
časový rozměr informace. Informace může být kritická pouze po krátkou dobu, ale může
mít také dlouhodobou analytickou nebo důkazní hodnotu. Požadavky na kryptografickou
ochranu se proto nemají určovat pouze podle objemu dat nebo jejich okamžité citlivosti,
ale také podle toho, kdy musí být informace chráněná, jak dlouho musí být chráněná
a kdy ještě musí být použitelná.
Tím se dostáváme od samotného výkonu kryptografických operací k otázce, jaké role
a prostředky mají v systému jednotlivé části kryptografické infrastruktury. Další
část série se proto zaměří na používané role a jejich vztah ke správě klíčového
materiálu.
1. Úvodní ustanovení
1.1. Tyto všeobecné obchodní podmínky jsou, není-li ve smlouvě písemně dohodnuto jinak, nedílnou součástí všech smluv týkajících školení, pořádaných nebo poskytovaných školitelem, Jan Dušátko, IČ 434 797 66, DIČ 7208253041, se sídlem Pod Harfou 938/58, Praha 9, zapsané u Úřadu městské části Praha 9 (dále jen „školitel“).2. Vznik smlouvy přihlášením ke kurzu
2.1. Přihláškou se rozumí jednostranný úkon objednatele adresovaný školiteli prostřednictvím datové schránky s identifikací euxesuf, e-mailu na adresu register@cryptosession.cz nebo register@cryptosession.info, internetových stránek cryptosession.cz, cryptosession.info nebo kontaktním telefonem +420 602 427 840.3. Zánik smlouvy zrušením přihlášky
3.1. Přihláška může být objednatelem zrušena pomocí e-mailu, nebo pomocí datové schránky.4. Cena a platební podmínky
4.1. Odesláním přihlášky objednatel akceptuje smluvní cenu (dále jen účastnický poplatek) uvedenou u daného kurzu.5. Podmínky školení
5.1. Školitel je povinnen informovat objednatele 14 dní dopředu o místě a času školení, včetně termínu zahájení a ukončení denního programu.6. Reklamace
6.1. Pokud je účastník hrubě nespokojen s průběhem kurzu, je školitel o této informaci vyrozuměn.7. Autorská práva k poskytnutým materiálům
7.1. Školicí materiály poskytnuté školitelem v rámci konání školení splňují znaky autorského díla dle zákona č. 121/2000 Sb.8. Zodpovědnost
8.1. Školitel nepřebírá odpovědnost za nedostatky ve službách kterékoliv třetí strany, kterou využívá při školeních.9. Platnost podmínek
9.1 Tyto všeobecné obchodní podmínky jsou platné a účinné od 1. října 2024.Informace o sběru a zpravování osobních údajů
Zpracovatel Jan Dušátko (dále jen „Správce“), dle nařízení Evropského parlamentu a Rady (EU) č. 2016/679 o ochraně fyzických osob v souvislosti se zpracováním osobních údajů a o volném pohybu těchto údajů a o zrušení směrnice 95/46/ES (obecné nařízení o ochraně osobních údajů, dále jen „Nařízení“) zpracovává osobní údaje. Dále jsou rozepsané jednotlivé osobní údaje, které jsou součástí zpracování při konkrétních aktivitách u této webové prezentace a v rámci obchodního styku.Informace o záznamech přístupu na webovou prezentaci
Tento web nesbírá žádné cookies. Stránka nepoužívá ani žádné analytické scripty třetích stran (sociální sítě, cloud provideři). Z těchto důvodů je také nabízena volba pro zobrazení mapy formou odkazu, kde primárním zdrojem je OpenStreet a alternativy pak často používané Mapy společnosti Seznam, a.s., případně Google Maps společnosti Google LLC Inc. Využití jakéhokoliv z těchto zdrojů je zcela na libovůli uživatelů těchto stránek. Správce nenese odpovědnost za sběr dat realizovaný těmito společnostmi, neposkytuje jim data o uživatelích a na sběru dat nespolupracuje.Informace o kontaktování provozovatele stránek
Formulář pro kontaktování provozovatele stránek (správce) obsahuje následující osobní údaje: jméno, příjmení, e-mail. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu nezbytnou k naplnění účelu, maximálně pak po dobu jednoho roku, pokud si uživatel neurčí jinak.Informace o objednávkovém formuláři
Pro případ zájmu o objednávku formulář obsahuje více údajů, tj. jméno, příjmení, e-mail a kontaktní údaje na organizaci. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu jednoho roku, pokud si uživatel neurčí jinak. V případě, kdy na základě této objednávky dojde k uzavření obchodního vztahu, budou nadále správcem udržovány pouze informace vyžadované českými zákony na základě obchodních vztahů (název a adresa společnosti, číslo bankovního účtu, typ kurzu a jeho cena).Informace o dokumentu o absolovování kurzu
V rámci kurzu je vydán zpracovatelem dokument o absolovování kurzu. Tento dokument obsahuje následující údaje: jméno a příjmení studenta, název a datum absolovování kurzu a jméno zaměstnavatele. Uvedené informace se následně používají pro tvorbu lineárního stromu hashí (nemodifikovatelný záznam). Tato databáze obsahuje pouze informace o poskytnutých jménech a názvech společností, které mohou a a nemusí odpovídat realitě a je udržován zpracovatelem pro případné opětovné vystavení nebo ověření vydání dokumentu.Práva subjektu osobních údajů
Zákazník nebo návštěvník tohoto webu má možnost požádat o informace o zpracování osobních údajů, právo požadovat přístup k osobním údajům, případně právo požádat o opravu nebo výmaz veškerých dat, které by o něm byly vedeny. V případě výmazu tento požadavek není možné splnit pouze pokud se nejedná o data nezbytně nutná v rámci obchodního styku. Zákazník nebo návštěvník webu má dále právo na vysvětlení týkající se zpracování jeho osobních údajů, pokud tento zjistí nebo se domnívá, že zpracování je prováděno v rozporu s ochranou jeho soukromého a osobního života nebo v rozporu s platnými právními předpisy a právo požadovat odstranění takto vzniklého stavu a zajištění nápravy.