V kryptografii a kryptosystémech je velikost klíče (také: délka klíče nebo klíčový prostor ) počet bitů v klíči používaném v kryptografických operacích, jako je šifrování a elektronický digitální podpis .
Pokud je tedy například uvedeno, že kryptosystém používá šifrovací klíč o velikosti 8 bitů , znamená to, že možné kombinace klíčů lze získat z 8 bitů binárního kódu a například z délky klíče 256 bitů již implikuje kombinace [1] .
Velikost klíče by neměla být zaměňována s počtem znaků v normálním hesle ani se znakovou reprezentací veřejného nebo soukromého klíče v asymetrických kryptosystémech .
Existují dvě rodiny šifrování: symetrické systémy (např . AES ) a asymetrické systémy (např . RSA ). Protože každý má jinou úroveň kryptografické složitosti, je běžné používat různé velikosti klíčů pro stejnou úroveň zabezpečení v závislosti na použitém algoritmu. Například zabezpečení poskytované 1024bitovým klíčem využívajícím asymetrický algoritmus se považuje za přibližně stejné jako zabezpečení 80bitového klíče symetrickým algoritmem [2] .
Stupeň zabezpečení kryptosystému , stanovený ve fázi vydání, se postupem času snižuje s tím, jak je k dispozici větší výpočetní výkon a výkonnější metody matematické analýzy. Z tohoto důvodu mají kryptologové tendenci hledat indikátory, že algoritmus nebo délka klíče vykazuje známky potenciální zranitelnosti, aby zvětšili velikosti klíčů nebo přešli na složitější algoritmy [3] . Takže například v roce 2010 se skupině vědců podařilo úspěšně vypočítat data zašifrovaná pomocí 768bitového kryptografického klíče RSA. Což by mohlo být předběžné varování, že 1024bitové RSA používané od roku 2007 by mělo být ukončeno, protože by se v blízké budoucnosti mohlo stát zranitelným [4] .
Zejména Shannonova práce o teorii informace ukázala, že pro získání absolutně bezpečné šifry dokonalého utajení nesmí být délka klíče menší než délka zprávy [5] . Kvůli praktické obtížnosti správy tak dlouhých klíčů moderní kryptografická praxe opustila představu dokonalého utajení a zaměřila se na efektivní šifrovací sílu, ve které musí být výpočetní požadavky na prolomení šifrovaného textu pro útočníka nesplnitelné. Délka klíče by tedy měla být taková, aby útok hrubou silou nebyl možný, to znamená, že by jeho dokončení trvalo příliš dlouho.
V symetrických kryptosystémech délka klíče udává horní bezpečnostní práh kryptosystému . Vzhledem k tomu, že hodnocení bezpečnosti (nebo kryptografické síly ) takového kryptosystému je založeno na předpokladu, že neexistuje účinnější metoda útoku než metoda „hrubé síly“ , lze délku klíče definovat také jako logaritmický ukazatel počtu iterací potřebných k vyčerpávajícímu výčtu všech klíčů [6] .
V souladu s Kerckhoffsovým principem je většina kryptosystémů navržena tak, že jejich stupeň zabezpečení je zcela určen délkou klíče a není redukován návrhem algoritmu. [7] . Je třeba také poznamenat, že původně nastavený práh zabezpečení může být snížen kvůli zjištěné zranitelnosti. Takže například Triple DES byl navržen pro použití se 168bitovým klíčem, ale pak se stal známým útok na složitost [8] . To znamená, že spodní práh šifrovací síly tohoto systému se snížil na 112. Pokud je však efektivní šifrovací síla (tj. množství úsilí potřebného k získání přístupu) dostatečná pro použití v konkrétní aplikaci, klíč nesoulad délky s nižším bezpečnostním prahem nemá praktický význam, což se potvrdilo v doporučeních NIST [9] .
Efektivita kryptosystémů s asymetrickým klíčem závisí na neřešitelnosti či obtížnosti řešení konkrétního matematického problému, podle jehož pravidel je klíč generován. Například v případě RSA se útok neprovádí vyčerpávajícím výčtem celého prostoru klíče, ale rozložením klíče na prvočinitele [10] .
Od roku 2015 NIST doporučuje minimálně 2048bitové klíče pro RSA [11] . Například pro DSA nebo eliptickou kryptografii musí útočník vyřešit diskrétní logaritmickou rovnici . V roce 2009 NSA doporučil 256bitový tajný klíč pro eliptickou kryptografii [12] .
Symetrické kryptosystémy | |
---|---|
Streamové šifry | |
Síť Feistel | |
Síť SP | |
jiný |
Hashovací funkce | |
---|---|
obecný účel | |
Kryptografický | |
Funkce generování klíčů | |
Kontrolní číslo ( srovnání ) | |
Hashe |
|