|
Jak PGP pracujePGP je kombinovaný šifrovací systém. Navenek se jeví jako program s veřejným šifrovacím klíčem, plně využívající asymetrického šifrování. To se však ve skutečnosti používá pouze pro zakódování klíče symetrické šifry, kterou je pak zašifrována samotná zpráva. Digitálním podpisem je kontrolní součet zprávy (angl. hash), který je zašifrován asymetrickou šifrou.Ve verzích 2.x a při použití RSA klíče ve verzích 5.x jsou použity tyto algoritmy: RSA jako asymetrická šifra, IDEA jako symetrická šifra a MD5 pro kontrolní součty podpisu (hash). Použijete-li nový typ klíče DH/DSS, bude se šifrovat asymetrickým algoritmem Diffie-Hellman (ElGamalova varianta) a jako symetrickou šifru lze vybrat ze tří variant: IDEA (128 efektivních bitů klíče), TripleDES (168 bitů) nebo CAST (128 bitů). Při podepisování se používá asymetrickí šifra DSS a SHA-1 kontrolní součty (hash). Symetrické šifrováníSymetrické šifrování je metoda, při které je otevřený text zašifrován s pomocí jistého klíče a může být obnoven jen se znalostí tohoto klíče. Symetrické šifrovací algoritmy se vyvíjejí doslova tisíce let. Většina moderních algoritmů je založena na matematické teorii čísel. Při symetrickém šifrování si musí autor a příjemce nějakým bezpečným způsobem vyměnit klíč. Samotné symetrické šifrování nemůže nikdy problém předání klíče vyřešit.Rozhodujícím kritériem síly symetrické šifry je délka klíče. Zpráva totiž musí odolat tzv. útoku hrubou silou, který předpokládá prosté vyzkoušení všech možných klíčů. Délka se uvádí v počtu bitů binárního čísla. Má-li tedy šífra sílu 4 bity, je 2^4=16 možných klíčů. Je zřejmé, že tato síla neobstojí. Přestože přidáním jediného bitu se počet klíčů (a tedy šifrovací síla) zdvojnásobí, jsou 40tibitové klíče používané např. v prohlížečích firem Netscape a Microsoft určených pro vývoz z USA dnes poměrně snadno rozluštitelné. Americký bankvoní standard, šifru DES s 56 bity, je dnes již rozbít hrubou silou s vynaložením jen velmi malých prostředků. Dnes nejčastěji používané 128mibitové klíče zaručují odolnost proti útokům hrubou silou minimálně na několik desítek let dopředu. Asymetrické šifrováníTeprve v 70. letech 20. století byl navržen první asymetrický šifrovací algoritmus. Jeho princip je jednoduchý: zpráva se zašifruje jedním klíčem, rozšifrovat se však musí jiným klíčem. Navíc ze znalosti prvního klíče nelze zjistit druhý. První klíč může být tedy dán ve známost komukoli (tzv. veřejný klíč nebo veřejná část klíče), zatímco druhý si uchovává vlastník v tajnosti (sokromý klíč nebo soukromá část klíče). Mezi nejznámější asymetrické šifry patří RSA, Diffie-Hellman a DSS.Délka klíče asymetrické šifry má trochu jiný význam. Asymetrické šifry jsou většinou založeny na nějakých speciálních číslech (např. prvočíslech). Při útoku hrubou silou tedy stačí zkoumat jen tato speciální čísla. Dnes se běžně pracuje s délkou klíče 1024 bitů, avšak pro dlouhodobější použití je lépe zvolit 2048 bitů nebo více. Jak pracuje RSAAlgoritmus je založen na jednoduché myšlence, že můžeme poměrně snadno vynásobit dvě velká čísla, je však časově velice náročné rozložit takový součin na prvočinitele.Nalezneme dvě velká prvočísla p a q. Jejich součin označíme n:=p*q. Myšlenka je postavena na malé Fermatově větě, podle které vyjde m^(f(n)+1) mod n=m pro libovolné číslo m v intervalu 1,2,...,n-1, kde funkce f(n) dává počet čísel mezi 1,2,...,n-1 nesoudělných s n (tzv. Eulerova funkce). Indukcí se pak dá dokázat, že také m^(k*f(n)+1) mod n=m pro libovolné přirozené číslo k, protože m^(k*f(n)+1) mod n=m^f(n)*m^((k-1)*f(n)+1) mod n a to je podle indukčního předpokladu m^f(n)*m mod n=m^(f(n)+1) mod n=m. Protože v našem případě f(n)=f(p*q)=(p-1)*(q-1), najdeme dvojici čísel e, d takových, že e*d=1 mod (p-1)*(q-1). Dvojice (e,n) pak bude tvořit veřejný klíč, zatímco (d,n) je soukromá část klíče. Zašifrování zprávy m (maximální délky n) provedeme operací c:=m^e mod n, čímž dostaneme zašifrovanou zprávu c. Rozšifrování je operace m:=c^d mod n. K ověření správnosti algoritmu si stačí uvědomit, že e*d=k*f(n)+1 pro nějaké číslo k, a tedy m^(e*d) mod n=m^(k*f(n)+1) mod n=m. Příklad: Vezmeme za p, q prvočísla 5, 11. Dostaneme n=5*11=55 a f(n)=4*10=40. Za šifrovací klíč můžeme volit čísla mezi 1-39 nesoudělná s f(n)=40. Zvolíme tedy např. e=17 a najdeme k němu multiplikativní inverzi modulo 40: d=33, e*d=561=14*40+1. Nechť nyní zpráva (může být mezi 1-54) je m=14, zakódujeme ji na 14^17 mod 55=30 491 346 729 331 195 904 mod 55=9. Dekódování pak proběhne podobně: 9^33 mod 55=309 031 543 826 326 123 611 920 641 803 529 mod 55=14. Veřejnou část klíče znají všichni. Pokud by tedy šlo rozložit n snadno na prvočinitele, získalo by se tak p, q, z čehož by šel pak již odvodit soukromý klíč d. Tento úkol je však pro dostatečně velká čísla prakticky neproveditelný. Je známo, že klíč velikosti 384 bitů byl rozluštěn během několika měsíců neustálé práce několika desítek až stovek spolupracujících počítačů. Běžně používané velikosti klíče 1024 až 2048 bitů jsou dnes zatím bezpečné. Princip šifry PGPJak je vidět z předchozího příkladu, RSA pracuje při poměrně malém základu s vysokými čísly. Šifrování velkých zpráv s pomocí RSA by bylo časově ohromně náročné. Stějně je tomu i u jiných asymetrických algoritmů. PGP tedy kóduje text symetrickým algoritmem, jehož implementace je mnohem rychlejší. PGP nejprve vygeneruje náhodný klíč pro symetrickou šifru, tento klíč zakóduje do zprávy s pomocí veřejného RSA nebo DH klíče příjemce, a celou zprávu pak zakóduje symetrickou šifrou. Příjemce nejprve s pomocí svého soukromého RSA nebo DH klíče zjistí klíč pro symetrickou šifru, s jehož pomocí pak rozkóduje samotnou zprávu.Elektronické podpisyPGP řeší také problém ověření obsahu a identifikace autora zprávy tzv. elektronickými podpisy. Nejprve je nutné zvolit nějaký vzor, který umožní ověřit, že zpráva nebyla změněna poté co ji autor sestavil. K tomu slouží algoritmus MD5 nebo SHA-1 pro vytvoření kontrolního součtu zprávy. Tento kontrolní součet, který by při jakékoli změně zprávy byl porušen, se pak přidá ke zprávě, zašifrovaný autorovým soukromým klíčem. Příjemce pak s pomocí autorova veřejného klíče rozkóduje kontrolní součet zprávy a ověří, jestli zpráva nebyla pozměněna (či podvržena).Správa klíčůDůležitou součástí PGP je správa klíčů. Uživatel musí mít alespoň jeden pár soukromý klíč-veřejný klíč. Soukromá část zůstává na disku počítače a je zabezpečena heslem. Anglický název passphrase (namísto obvyklého password) naznačuje, že heslo má být dlouhé a tedy nesnadno uhádnutelné. Je dobré použít dlouhé souvětí nebo i několik vět.Měli byste si také zachovat kopii Vašeho soukromého klíče, protože jeho ztrátou přijdete o možnost přečíst zprávy Vám určené. Tuto kopii uložte na bezpečném místě (je ale také chráněna stejným heslem). Při komunikaci s jinými osobami budete potřebovat jejich veřejné klíče. Takový klíč má několik atributů:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1999, SkyNet a.s., Distributor produktů Network Associates, Inc. mailto:webmaster@pgp.cz |