navody
Tu je voľný preklad časti dokumentácie, ktorá bola dodávaná s PGP 2.6.2. Je
tu preto, lebo obsahuje zopár informácií zo zákulisia.
Pohľad pod pokrievku
Náhodné čísla
PGP používa kryptograficky silný pseudonáhodný generátor čísel pre vytvorenie
dočasných konvenčných relačných kľúčov. Relačný kľúč sa používa pri jednej
relácií - pri jednom zašifrovávaní. Jedno šifrovanie - jeden relačný kľúč.
Ďalšie šifrovanie - ďalší relačný kľúč. Zárodočný súbor pre tieto relačné kľúče
sa volá randseed.bin pre PGP, alebo random_seed pre GnuPG. Ak tento zárodočný
súbor neexistuje, je automaticky vytvorený a naplnený zo skutočne náhodných
čísel odvodených z časového oneskorenia vašich úderov do klávesnice.
Tento náhodný zárodočný súbor by mal byť aspoň trochu chránený pred
odhalením, aby ste znížili riziko, že útočník odvodí váš nasledujúci alebo
predchádzajúci relačný kľúč. Útočník by mal čo robiť aby získal čokoľvek
užitočné z tohoto náhodného zárodočného súboru, pretože je kryptograficky
spracovaný pred a po každom použití. Bez ohľadu na to mi pripadá rozumné sa
prinajmenšom pokúsiť zabrániť tomu, aby padol do nesprávnych rúk.
Ak nedôverujete ľubovoľnému algoritmicky odvodenému zdroju náhodných čísel
hocako silnému, majte na pamäti, že už dôverujete sile tej istej konvenčnej
šifry pri ochrane svojich správ. Ak je dostatočne silná na to, tak by mala byť
aj dostatočne silná pre použitie ako zdroj náhodných čísel pre dočasné relačné
kľúče. Všimnite si, že PGP stále používa skutočne náhodné čísla z fyzických
zdrojov (predovšetkým časovania klávesnice) pre generovanie párov dlhodobých
kľúčov.
Konvenčný šifrovací algoritmus PGP
Ako bolo popísané inde, PGP "naštartuje" do konvenčného jedno-kľúčového
šifrovacieho algoritmu použitím algoritmu verejného kľúča pre zašifrovanie
konvenčného relačného kľúča a potom prepne do rýchlej konvenčnej kryptografie.
Takže pohovorme si o konvenčnom šifrovacom algoritme. Nie je to DES.
Federálny štandard pre šifrovanie dát (Federal Data Ecryption Standard - DES)
bol dobrý algoritmus pre väčšinu komerčných aplikácií. Ale vláda nikdy
nedôverovala DES pre ochranu svojich vlastných utajovaných údajov, pretože DES
používa kľúče o dĺžke 56 bitov, dosť krátke pre prelomenie hrubou silou. Tiež
úplný 16-kolový DES bol napadnutý s istým úspechom Bihamom a Shamirom použitím
diferenčnej kryptoanalýzy, a Matsuim použitím lineárnej kryptoanalýzy.
Najničivejší praktický útok na DES bol popísaný na Crypto '93 konferencii,
kde Michael Wiener z Bell Northern Research presentoval dokument o prelomení DES
špeciálnym strojom. Úspešne vyvinul a testoval čip, ktorá háda 50 miliónov DES
kľúčov za sekundu, kým nenájde ten správny. Hoci sa doteraz nepustil do výroby
kľúčov, dokáže vyrábať tieto čipy za 10 dolárov a 50 centov, a dokáže ich
vyrobiť 57000 do špeciálneho stroja za 1 millión dolárov, ktorý dokáže otestovať
každý DES kľúč do 7 hodín, čo vedie k premernej dobe do prelomenia 3,5 hodiny. 1
milión dolárov možno ukryť v rozpočte mnohých firiem. Za 10 miliónov dolárov
prelomenie trvá 21 minút a za 100 miliónov dolárov, len dve minúty. S rozpočtom
vlády hociktorej väčšej krajiny pre skúmanie DES premávky, možno túto šifru
prelomiť za niekoľko sekúnd. To znamená že, priama 56-bitový DES je prakticky
mŕtvy pre účely aplikácií vážneho zabezpečenia údajov.
Možným nástupcom DES môže byť variácia známa ako "trojitý DES", ktorý používa
dva DES kľúče pre zašifrovanie v troch prechodoch, čím sa dosiahne efektívny
priestor kľúčov s veľkosťou 112 bitov. Ale tento prístup je tri krát pomalší ako
normálny DES. Budúce verzie PGP budú asi voliteľne podporovať trojitý DES.
PGP nepoužíva DES ako svoj algoritmus pre konvenčné šifrovanie správ jedným
kľúčom. Miesto toho PGP používa iný konvenčný algoritmus pre blokové šifrovanie
s jedným kľúčom, zvaný IDEA (tm).
Pre tých čo sa zaujímajú o kryptografiu, šifra IDEA pracuje s 64-bitovými
blokmi vstupného textu a šifrovaného textu. Používa kľúč s veľkosťou 128 bitov.
Je založená na dizajnovom koncepte zmiešaných operácií z rôznych
algebraických skupín
. Jej softwarová implementácie funguje oveľa rýchlejšie
než DES. Podobne ako DES, môžno ju použiť v móde spätnej väzby (cipher feedback
-CFB) alebo reťazenia blokov (cipher block chaining - CBC). PGP ju používa v
64-bitovom CFB móde.
Bloková šifra IPES/IDEA bola vyvinutá v ETH v Zurichu James L. Massyeoma a
Xuejia Laiom a publikovaná bola v roku 1990. Nie je to "kutilský" algoritmus.
Jeho tvorcovia majú vynikajúcu reputáciu v kryptografických kruhoch. Prvé
publikované dokumenty tento algoritmus nazývali IPES (Improved Proposed
Encryption Standard), ale neskôr bol názov zmenený na IDEA (International Data
Encryption Algorithm). Doteraz, IDEA odolávala útokom oveľa lepšie ako iné šifry
ako napríklad FEAL, REDOC-II, LOKI, Snefru a Khafre. Posledné dôkazy napovedajú,
že IDEA je odolnejšia než DES inak veľmi úspešným útokom diferenciálnou
kryptoanalýzou Bihama a Shamira. Biham a Shamir podrobne skúmali IDEA a nenašli
v nej žiadne slabé miesto. Akademické kryptoanalytické kruhy v Belgicku,
Anglicku a Nemecku sa ju tiež pokúšajú napadnúť, rovnako ako vojenské služby
niekoľkých Európskych krajín. Tak ako táto nová šifra priťahuje ďalšie a ďalšie
pokusy o prelomenie z najrôznejších kútov kryptoanalytického sveta, dôvera v
IDEA s postupom času rastie.
Vždy raz za čas dostanem list od niekoho kto práve zistil strašnú pravdu o
tom, že PGP nepoužíva čisté RSA pre šifrovanie údajov. Majú obavy, že celý balík
je oslabený ak používa hybridnú schému verejného kľúča a konvenčného šifrovania
len kvôli urýchleniu. Koniec koncov celá reťaz je len tak pevná ako je pevné jej
najslabšie ohnivko. Požadujú vysvetlenie tohoto zjavného kompromisu
v
sile PGP. Je to kvôli tomu, že sa chytili do verejnej bázne a úcty pred silou a
záhadnosťou RSA, mylne sa domnievajúc že RSA je vnútorne silnejšia než ľubovoľná
iná konvenčná šifra. Nuž nie je to tak.
Ľudia, ktorí pracujú vo výskume rozkladu na prvočísla vravia, že námaha na
vyčerpanie všetky možné 128-bitové kľúče v šifre IDEA je zhruba porovnateľné
námahe na rozklad na prvočísla na prelomenie 3100-bitového RSA kľúča, ktorý je
oveľa väčší než 1024-bitový RSA kľúč, ktorý väčšina ľudí používa pre aplikácie s
vysokou bezpečnosťou. Predpokladajúc tento rozsah veľkostí kľúčov a za
predpokladu, že v konvenčnej šifre nie sú žiadne skryté slabiny, tak najslabšie
spojenie v tomto hybridnom prístupe je v algoritme verejného kľúča a nie v
konvenčnej šifre.
Nie je ergonomicky praktické používať čisto RSA s veľkými kľúčmi pre
šifrovanie a rozšifrovávanie dlhých správ. 1024-bitový RSA kľúč by dešifroval
správy asi 4000 krát pomalšie než šifra IDEA. Absolútne nikto to takto v reálnom
svete nerobí. Veľa ľudí menej skúsených v kryptografii si neuvedomuje, že
príťažlivosť kryptografie verejným kľúčom nie je v jej vnútornej sile oproti
konvenčnej šifre - je zaujímavá pretože robí prácu s kľúčmi pohodlnejšou.
Nielen že je RSA príliš pomalá pre použitie na väčšie dáta, ale má dokonca
isté slabiny ktoré možno v istých špeciálnych prípadoch využiť pre isté druhy
správ, ktoré vstupujú do RSA šifry dokonca aj pri veľkých kľúčoch. Týmto
špeciálnym prípadom sa možno vyhnúť použitím hybridného prístupu použitia RSA
pre zašifrovanie náhodných relačných kľúčov a konvenčnej šifry, tak ako to robí
PGP. Takže záver je takýto: Použitie čistého RSA na väčšie dáta je nesprávny
prístup, bodka. Je príliš pomalý, nie je silnejší a môže dokonca byť slabší. Ak
nájdete softwarovú aplikáciu ktorá používa RSA na väčšie dáta, pravdepodobne to
znamená, že implementátor nerozumie týmto problémom, čo môže znamenať, že
nerozumie ani iným dôležitým zásadám kryptografie.
Kompresia dát
PGP za normálnych okolností komprimuje vstupný text predtým než ho zašifruje.
Komprimovať dáta po zašifrovaní je príliš neskoro; zašifrované dáta sú
nekomprimovateľné. Dátová kompresia znižuje čas prenosu a spotrebu diskového
priestoru a hlavne významne zvyšuje kryptografickú bezpečnosť. Väčšina
kryptoanalytických techník využívajú na prelomenie šifry nadbytočnosť
nachádzajúcu sa vo vstupnom texte. Dátová kompresia redukuje túto nadbytočnosť
vo vstupnom texte a teda významne zvyšuje odolnosť voči kryptoanalýze.
Komprimovanie vstupného textu zaberá čas navyše, ale z hľadiska bezpečnosti sa
to vyplatí, prinajmenšom podľa mojej opatrnej mienky.
Súbory, ktoré sú príliš krátke na komprimáciu, alebo sa komprimujú zle nie sú
v PGP komprimované.
Ak tomu dávate prednosť, môžete použiť PKZIP na komprimovanie vstupných dát
pred ich zašifrovaním. PKZIP je rozšírená a efektívna MSDOS sharewarová
komprimačná utilita od PKWare, Inc. Alebo môžete použiť ZIP, PKZIP-kompatibilnú
freewarovú komprimačnú utilitu na Unix-e a iných systémoch, ktorej autorom je
Jean-Loup Gailly. V istých prípadoch je použitie PKZIP-u alebo ZIP-u výhodou,
pretože na rozdiel od PGP vstavaných komprimačných algoritmov, PKZIP a ZIP majú
šikovnú schopnosť komprimovania viacerých súborov do jediného skomprimovaného
súboru, ktorý je po rozbalení rozdelený naspäť do pôvodných súborov. PGP sa
nebude pokúšať komprimovať vstupný súbor, ktorý už bol skomprimovaný. Po
rozšifrovaní, príjemca môže rozbaliť vstupný súbor s PKUNZIP-om. Ak zašifrovaný
vstupný súbor je komprimovaný PKZIP-om, PGP to rozozná a príjemcu upozorní, že
rozšifrovaný súbor je pravdepodobne PKZIP súbor.
Pre technicky zvedavých čitateľov, súčasná verzia PGP používa freeware ZIP
komprimačné funkcie napísané Jean-Loup Gaillym, Markom Adlerom a Richardom B.
Walesom. Tento ZIP software používa funkčne ekvivalentný komprimačný algoritmus
ako ten používaný v novom PKZIP 2.0 od PKWare-u. Tento ZIP komprimačný software
bol zvolený pre PGP hlavne pre jeho voľne dostupný a portovateľný C zdrojový kód
a pre jeho naozaj dobrý komprimačný pomer a preto, že je rýchly.
Peter Gutmann tiež napísal peknú komprimačnú utilitu zvanú HPACK, voľne
dostupnú na mnohých Internetových FTP serveroch. Šifruje komprimované archívy,
použitím PGP formátu dát a kľúčeniek. Chcel aby som ju tu spomenul.
Message digesty a Digitálne podpisy
Pre vytvorenie digitálneho podpisu PGP šifruje vaším tajným kľúčom. Ale PGP v
skutočnosti nešifruje celú vašu správu vaším tajným kľúčom - to by trvalo veľmi
dlho. Miesto toho PGP šifruje výťažok správy
(message digest).
Tento výťažok správy je kompaktný (128 bitový) destilát
vašej správy,
konceptom podobný kontrolnej sume. Môžete si to predstaviť ako odtlačok
prsta
(fingerprint) vašej správy. Výťažok správy predstavuje
vašu
správu tak, že ak by správa bola zmenená ľubovoľným spôsobom zodpovedal by jej
odlišný výťažok správy. To umožňuje zistiť ľubovoľné zmeny urobené v správe
falšovateľom. Výťažok správy je vypočítaný použitím kryptograficky silnej
jednosmernej hash funkcie zo správy. Pre útočníka je výpočtovo neuskutočniteľné
zostaviť náhradnú správu, ktorá by vyprodukovala rovnaký výťažok správy. V tomto
ohľade, je výťažok správy lepší než kontrolná suma, pretože je jednoduché
zostaviť správu, ktorá by mala rovankú kontrolnú sumu. Ale podobne ako pri
kontrolnej sume, nie je možné odvodiť pôvodnú správu z jej výťažku.
Výťažok správy sám o sebe nepostačuje pre overenie pravosti správy.
Algoritmus výpočtu výťažku správy je verejne známy a nevyžaduje pre svoj výpočet
žiadne tajné kľúče. Ak by sme len pripojili k správe výťažok správy, falšovateľ
môže pozmeniť správu a jednoducho pripojiť nový výťažok správy vypočítaný z
novej pozmenenej správy. Aby sme dostali reálne overenie pravosti správy,
odosielateľ musí zašifrovať (podpísať) výťažok správy svojím tajným kľúčom.
Výťažok správy sa počíta zo správy na strane odosielateľa. Výťažok správy a
elektronická časová pečiatka spolu tvoriace digitálny podpis, alebo podpisovaný
certifikát, sa zašifruje odosielateľovým tajným kľúčom. Odosielateľ posiela
digitálny podpis spolu so správou. Príjemca prijme správu a digitálny podpis a
zistí originálny výťažok správy z z digitálneho podpisu tým, že ho dešifruje s
verejným kľúčom odosielateľa. Príjemca spočíta nový výťažok správy a porovná či
sa zhoduje s tým, ktorý získal z digitálneho podpisu. Ak sa zhodujú, tak to
dokazuje, že správa nebola pozmenená a že prišla od odosielateľa, ktorý vlastní
verejný kľúč použitý pre kontrolu podpisu.
Potenciálny falšovateľ by musel buď vytvoriť pozmenenú správu, ktorá má
rovnaký výťažok správy (čo je neuskutočniteľné), alebo by musel vytvoriť nový
digitálny podpis z odlišného výťažku správy (tiež neuskutočniteľné, bez znalosti
tajného kľúča pôvodného odosielateľa).
Digitálny podpis dokazuje, kto poslal správu a že správa nebola pozmenená
úmyselne, alebo omylom. Tiež zaručuje neodvolateľnosť, to znamená, že
odosielateľ nemôže jednoducho poprieť svoj podpis na správe.
Použitie výťažkov správy pre vytvorenie digitálnych podpisov má aj iné výhody
okrem toho, že sú rýchlejšie než priame podpisovanie celej skutočnej správy
pomocou tajného kľúča. Použitie výťažkov správ umožňuje aby podpisy boli malé a
pevnej dĺžky, bez ohľadu na veľkosť skutočnej správy. Tiež umožňuje softwaru
skontrolovať integritu správy automaticky, spôsobom podobným použitiu kontrolnej
sumy. Tiež umožňuje uloženie podpisu oddelene od správy, dokonca aj na verejne
dostupnom mieste, bez odhalenia citlivých informácií o skutočnej správe, pretože
nikto nemôže odvodiť obsah nejakej správy z výťažku správy.
Výťažok správy, ktorý sa tu používa je MD5 Message Digest Algorithm, uvoľnený
pre širokú verejnosť firmou RSA Data Security, Inc. Autor MD5, Ronald Rivest,
napísal o MD5 toto:
Odhaduje sa, že náročnosť vytvorenia dvoch správ s rovnakým
výťažkom správy je rádovo 2^64 operácií, a že náročnosť vytvorenia ľubovoľnej
správy so zadaným výťažkom správy je rádovo 2^128 operácií. Algoritmus MD5 bol
dôkladne preverený na slabiny. Je to ale relatívne nový algoritmus a ďalšia
bezpečnostná analýza je prirodzene oprávnená, tak ako je to s každým novým
návrhom takéhoto druhu. Úroveň bezpečnosti poskytovaná MD5 by mala byť
postačujúca pre implementovanie veľmi bezpečných hybridných digitálnych
podpisových schém založených na MD5 a RSA kryptosystému verejného kľúča.
Tak toľko o PGP.
PGP je v súčasnosti komerčná aplikácia pôvodný program,
ktorý pôvodne vedela len spravovať kľúče, šifrovať a dešifrovať súbory a
podpisovať či overovať elektronické podpisy. V týchto dňoch je rozšírená na celú
suitu aplikácií, ktoré ponúkajú aj šifrovanie celých diskov a podobne.
Bratrancom PGP, ktorý sa drží pôvodnej myšlienky je Gnu Privacy Guard - GPG.
GPG ponúka algoritmy:
Verejného kľúča - asymetrické šifry
- RSA, RSA-E, RSA-S, ELG-E, DSA, ELG
Symetrické šifry
- 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Výťažky správ
- MD5, SHA1, RIPEMD160
Kompresie
- ZIP, ZLIB alebo nekompresované
Defaultné algoritmy sú zvýraznené.
IDEA je dostupná oddelene ako plugin, kvôli patentovým problémom. GPG je
publikované pod licenciou GPL, a je dostupné na http://www.gnupg.org/.