home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 July / Chip_2000-07_cd.bin / obsahy / Chip_txt / TXT / 56-59.TXT < prev    next >
Text File  |  2000-06-06  |  14KB  |  59 lines

  1. Modernφ kryptografickΘ metody
  2. Labyrint Üifer v rßji poΦφtaΦ∙
  3. Rozvoj poΦφtaΦ∙, internetu, elektronickΘ poÜty a mobilnφch telefon∙, ale i nar∙stajφcφ ochrana dat uvnit° organizacφ Φi zaΦle≥ovßnφ bezpeΦnostnφch funkcφ do operaΦnφch systΘm∙, to vÜe p°inßÜφ stßle novΘ aplikace kryptografick²ch technik. Vznikajφ novΘ protokoly a standardy a mnohdy jeÜt∞ neza₧itΘ pojmy jsou u₧ brßny jako samoz°ejmost. V prßv∞ zaΦφnajφcφm volnΘm serißlu se proto budeme v∞novat jak klφΦov²m pojm∙m, tak nejpou₧φvan∞jÜφm technikßm a standard∙m. Zam∞°φme se p°itom zejmΘna na modernφ metody a internetovou kryptografii.
  4.  
  5. Nejprve si osv∞₧φme zßkladnφ pojmy a principy z oblasti Üifrovßnφ. Definice sice budeme uvßd∞t bez nadbyteΦn²ch formalism∙, ale tak, aby bylo rozum∞t podstat∞. Pro zßjemce bude k dispozici dost literatury a dalÜφch odkaz∙ na zdroje, kde naleznou p°esnΘ matematickΘ formulace, v∞ty a d∙kazy. Mimochodem, v souΦasnΘ dob∞ existuje u₧ n∞kolik desφtek zßkladnφch uΦebnic, p°φruΦek a knih, kterΘ se zab²vajφ kryptografick²mi metodami û a p°esto co autor, to jinß definice i u zcela zßkladnφho pojmu. Kryptografie se toti₧ neustßle rozvφjφ, a tak dßle vznikajφ novΘ metody i pojmy, zatφmco n∞kterΘ "starΘ" se dostßvajφ do nov²ch souvislostφ. 
  6.  
  7. Algoritmy a klφΦe
  8. èifrovacφ algoritmus je transformace, kterß p°evßdφ otev°en² text (otev°enß data, plaintext) na Üifrov² text (zaÜifrovanß data, ciphertext) a naopak. èifrovacφ algoritmus se tedy sklßdß ze dvou transformacφ: zaÜifrovßnφ a odÜifrovßnφ. P°i zaÜifrovßnφ je p°φsluÜnß transformace °φzena (parametrizovßna) klφΦem pro zaÜifrovßnφ a p°i odÜifrovßnφ pak klφΦem pro odÜifrovßnφ. U symetrick²ch Üifer jsou tyto klφΦe odvoditelnΘ jeden z druhΘho (prakticky v₧dy jsou oba klφΦe toto₧nΘ), zatφmco u asymetrick²ch Üifer z jednoho klφΦe nelze zjistit druh² û je to v²poΦetn∞ neproveditelnΘ.
  9. K≤dovßnφ a Üifrovßnφ
  10. èifrovßnφ se Φasto zam∞≥uje s pojmem k≤dovßnφ. Nenφ divu, k≤dovßnφ je takΘ proces p°evodu informace z jednΘ formy do druhΘ. K≤dovßnφ k tomu ale nepou₧φvß ₧ßdnou utajovanou informaci û proces zak≤dovßnφ a dek≤dovßnφ je zcela ve°ejn² a m∙₧e ho provΘst ka₧d²; typick²m p°φkladem jsou k≤dy ASCII, Latin 2 apod. U Üifrovacφho algoritmu ale v₧dy existuje "n∞co tajnΘho" û i kdy₧ u asymetrick²ch Üifer (viz dßle) si m∙₧eme dovolit, aby jeden z klφΦ∙ byl ve°ejn². Ostatn∞, kdyby nic tajnΘho v Üifrovacφm algoritmu nebylo, zaÜifrovat a odÜifrovat data by mohl kdokoliv a smysl t∞chto operacφ by se zcela vytratil. 
  11. SymetrickΘ Üifrovacφ algoritmy
  12. Jestli₧e klφΦ pro zaÜifrovßnφ je stejn² jako klφΦ pro odÜifrovßnφ (obecn∞ji: pokud jeden m∙₧eme odvodit z druhΘho), hovo°φme o symetrickΘm Üifrovacφm algoritmu. KlasickΘ symetrickΘ algoritmy vidφte v tabulce 1.
  13.  AsymetrickΘ Üifrovacφ algoritmy
  14. Jestli₧e z klφΦe pro zaÜifrovßnφ nelze odvodit klφΦ pro odÜifrovßnφ, nebo naopak (p°esn∞ji: je to v²poΦetn∞ neproveditelnΘ), hovo°φme o asymetrickΘm Üifrovacφm algoritmu. Tyto algoritmy b²vajφ takΘ naz²vßny Üifrovacφ algoritmy s ve°ejn²m klφΦem, proto₧e jeden z klφΦ∙ je ve°ejn²; ten druh², k n∞mu pßrov², se pak jmenuje klφΦ tajn² (privßtnφ, soukrom²). 
  15. Pro utajenφ dat se pou₧φvß klasick² model: ve°ejn²m klφΦem se zaÜifrovßvß, tajn²m klφΦem se odÜifrovßvß. Tak funguje zaÜifrovßnφ dat zejmΘna pro p°enos û odesφlatel zaÜifruje data, kterß chce odeslat, ve°ejn²m klφΦem p°φjemce. V²hodou je, ₧e tento klφΦ je skuteΦn∞ ve°ejn∞ k dispozici, a tak ka₧d² m∙₧e p°φjemci poslat n∞co zaÜifrovanΘho, ani₧ by pot°eboval cokoli jinΘho. P°φjemce pak data odÜifruje sv²m tajn²m klφΦem. Kouzlo utajenφ spoΦφvß v tom, ₧e nikdo jin² operaci odÜifrovßnφ ud∞lat nem∙₧e, proto₧e k tomu by u₧ musel mφt p°φjemc∙v tajn² klφΦ. 
  16. P°i podpisu dat naopak signatß° p°i tvorb∞ podpisu pou₧φvß sv∙j tajn² klφΦ (vystupuje ve form∞ "podpisovΘho" klφΦe) a jist²m zp∙sobem ho "sluΦuje" s podepisovan²mi daty. V²sledkem je tzv. digitßlnφ podpis, kter² m∙₧e kdokoliv ov∞°it û pou₧ije k tomu ve°ejn² klφΦ signatß°e. Poznamenejme jeÜt∞, ₧e v klasickΘm asymetrickΘm modelu, jakkoli to na prvnφ pohled vypadß podivn∞, se tajn² (podepisovacφ) klφΦ pou₧φvß p°i podepisovßnφ ve spojenφ s operacφ odÜifrovßnφ (p°esto₧e p°i podpisu vlastn∞ nejde o zaÜifrovanß data) a ve°ejn² klφΦ (ov∞°ovacφ) ve spojenφ s operacφ zaÜifrovßnφ û tedy stejn∞ jako p°i Üifrovßnφ dat. 
  17. Pozd∞ji ale vznikly specißlnφ asymetrickΘ algoritmy pro digitßlnφ podpis, kterΘ nepou₧φvajφ klasickΘ operace zaÜifrovßnφ a odÜifrovßnφ, ale operace podepsßnφ a verifikace. LiÜφ se od p°edchozφch v tom, ₧e pro tyto operace pou₧φvajφ r∙znΘ matematickΘ metody. Zatφmco tedy v klasickΘm p°φpad∞ byla operace zaÜifrovßnφ i odÜifrovßnφ toto₧nou matematickou funkcφ zpracovßvajφcφ jednou ve°ejn² a podruhΘ tajn² klφΦ, v t∞chto nov²ch algoritmech se pou₧φvajφ dv∞ r∙znΘ matematickΘ funkce. V²sledkem operace podepsßnφ pak jsou data, v²sledkem operace ov∞°enφ je odpov∞∩ ANO/NE. 
  18. Vznikly jeÜt∞ dalÜφ algoritmy, p°esn∞ji kryptografickΘ protokoly, kterΘ definujφ vzßjemnou Φinnost dvou nebo vφce stran (odtud oznaΦenφ protokol) k dosa₧enφ n∞jakΘho cφle. Vyu₧φvajφ technik podobn²ch asymetrick²m algoritm∙m a majφ r∙znΘ ·Φely (viz tab. 2). Nejpou₧φvan∞jÜφ je protokol umo₧≥ujφcφ dohodu nebo ustavenφ spoleΦnΘho klφΦe z·Φastn∞n²ch stran pro p°enosy dat p°es komunikaΦnφ kanßl û naz²vßme ho algoritmus pro v²m∞nu klφΦ∙. Protokoly ovÜem existujφ nejen na bßzi asymetrick²ch, ale i symetrick²ch Üifer.
  19.  
  20. Kryptologie
  21. Kryptologie je v∞da, kterß se zab²vß Üifrovßnφm v celΘ Üφ°i. Sklßdß se z kryptografie, v∞dy o tvorb∞ Üifer, a z kryptoanal²zy, v∞dy o jejich luÜt∞nφ. Kryptografie krom∞ symetrick²ch a asymetrick²ch Üifrovacφch algoritm∙ studuje kryptografickΘ nßstroje, jako jsou generßtory nßhodn²ch Φφsel, haÜovacφ funkce, digitßlnφ podpisy, kryptografickΘ protokoly apod. Kryptoanal²za se zab²vß nejen p°φm²m luÜt∞nφm, tj. hledßnφm klφΦ∙ nebo otev°en²ch text∙ ze Üifrov²ch zprßv, ale v poslednφ dob∞ zejmΘna odhalovßnφm teoretick²ch slabin Üifer. Cφlem je najφt metody, kterΘ, i kdy₧ nevedou p°φmo k otev°enΘmu textu, ukazujφ, ₧e Üifra nenφ tak silnß, jak by m∞la teoreticky b²t. Takov²m v²sledkem m∙₧e b²t t°eba zjiÜt∞nφ, ₧e k ·toku na Üifru hrubou silou nenφ zapot°ebφ 256 klφΦ∙, ale jen 255 (nap°φklad vlastnost komplementßrnosti u DES), nalezenφ  slab²ch nebo ekvivalentnφch klφΦ∙, krßtk²ch cykl∙ apod. 
  22.  
  23. BlokovΘ a proudovΘ Üifry
  24. I kdy₧ nßsledujφcφ informace platφ pro symetrickΘ i asymetrickΘ Üifry, v∞tÜinou se pojmy blokovΘ a proudovΘ Üifry spojujφ se symetrick²mi algoritmy. U asymetrick²ch Üifer se toti₧ v₧dy implicitn∞ p°edpoklßdß, ₧e se jednß o blokovou Üifru. 
  25. BlokovΘ Üifry
  26. BlokovΘ Üifry zpracovßvajφ vφce znak∙ otev°enΘho textu najednou. V souΦasnΘ dob∞ je to tΘm∞° v²hradn∞ blok 64 bit∙, zatφmco po p°ijetφ standardu AES (viz tab. 1) to bude blok 128 bit∙. V zßkladnφm re₧imu Φinnosti blokovß Üifra zaÜifruje cel² tento blok a vznikne tak stejn∞ dlouh² blok ÜifrovΘho textu. (Jist∞ je mo₧nΘ, aby Üifrov² blok byl delÜφ, ale nepou₧φvß se to.) Proto₧e se vlastn∞ jednß o jakousi zßm∞nu bloku za blok, naz²vß se tento zßkladnφ re₧im "elektronickß k≤dovß kniha" (ECB, Electronic Code Book). Vidφte, a u₧ jsme zase u k≤dovßnφ! Jen₧e v tomto p°φpad∞ je k≤dovß kniha p∞kn∞ dlouhß. Mß 264 nebo 2128 polo₧ek typu "otev°en² blok û zaÜifrovan² blok" a je "vygenerovßna" tajn²m Üifrovacφm klφΦem. OznaΦφme-li Üifrovacφ klφΦ K, otev°en² text OT a Üifrov² text èT, pak zaÜifrovßnφ a odÜifrovßnφ formßln∞ zapisujeme jako èT = EK(OT) a OT = DK(èT); pφsmena E a D pochßzejφ z anglickΘho encrypt a decrypt. Situaci znßzor≥uje obrßzek 2. 
  27. ProudovΘ Üifry
  28. Pokud chceme zaÜifrovat jen n∞kolik bit∙ Φi bajt∙ otev°enΘho textu, nebo v p°φpadech, kdy jsou data zφskßvßna jako proud bit∙ a je pot°eba je okam₧it∞ Üifrovat, pou₧φvajφ se proudovΘ Üifry. Nejpou₧φvan∞jÜφ proudovΘ Üifrovacφ algoritmy pou₧φvajφ tzv. heslo (running key, key stream), kterΘ je s otev°en²m textem slouΦeno n∞jakou jednoduchou operacφ bit po bitu nebo bajt po bajtu (nejΦast∞ji je to operace XOR).
  29.  
  30. Kvalita Üifer
  31. ProudovΘ i blokovΘ Üifrovacφ algoritmy majφ tu v²hodu, ₧e k Üifrovßnφ velk²ch objem∙ dat nepot°ebujφ nijak dlouh² klφΦ. Musφ ale zajistit, aby bez znalosti tohoto klφΦe nebylo mo₧nΘ luÜtit otev°en² text. To na kvalitnφ Üifrovacφ algoritmy klade vysokΘ nßroky. Nap°φklad u blokovΘ Üifry ka₧d² bit ÜifrovΘho textu musφ slo₧it∞ zßviset na ka₧dΘm bitu Üifrovacφho klφΦe a ka₧dΘm bitu otev°enΘho textu; navφc zm∞na jedinΘho z t∞chto bit∙ musφ vΘst k nepredikovatelnΘ zm∞n∞ v ÜifrovΘm textu apod. Vzhledem k pokrok∙m v oblasti kryptografie a kryptoanal²zy v poslednφch 30 letech jsou vÜak u₧ znßmy osv∞dΦenΘ postupy, jak tvo°it kvalitnφ algoritmy, a hodn∞ jich bylo takΘ navr₧eno a je pou₧φvßno. V souΦasnΘ dob∞ se proto d°φv∞jÜφ problΘm v²b∞ru kvalitnφho Üifrovacφho algoritmu p°esouvß spφÜe k otßzce jeho vÜeobecnΘho pou₧φvßnφ z d∙vodu kompatibility, tj. na v²b∞r standardu. 
  32. Po₧adavky na kvalitnφ Üifrovacφ algoritmus
  33. Nßvrh by m∞l pochßzet od zkuÜen²ch odbornφk∙ (nejlΘpe od t²mu kryptograf∙ a kryptoanalytik∙ s praktick²mi zkuÜenostmi).
  34. ZnßmΘ po₧adovanΘ teoretickΘ kryptografickΘ vlastnosti: 
  35. statistickΘ û vzßjemnß nekorelovanost otev°enΘho textu, ÜifrovΘho textu a klφΦe, ...
  36. analytickΘ û konfuze, difuze, ·plnost, lavinovitost, ...
  37. Odolnost proti vÜem znßm²m kryptoanalytick²m ·tok∙m. P°edpoklßdß se, ₧e p°φpadn² ·toΦnφk dokonale znß Üifrovacφ algoritmus a jeho cφlem je nap°φklad otev°en² text nebo Üifrovacφ klφΦ. 
  38. DostateΦn∞ dlouh² klφΦ.
  39.  
  40. Zve°ej≥ovßnφ Üifrovacφch algoritm∙
  41. Z teoretickΘho hlediska se zßsadn∞ uva₧uje, ₧e p°φpadn² ·toΦnφk Üifrovacφ algoritmus znß. Je to nezbytn² p°edpoklad, proto₧e pokud se ·toΦnφk na n∞jak² systΘm zam∞°φ, s urΦit²mi nßklady dokß₧e popis algoritmu v₧dy zφskat. P°i nßvrhu algoritm∙ se proto s tφm, ₧e luÜtitel znß algoritmus, poΦφtß jako se samoz°ejmostφ. 
  42. V poslednφch letech se ve°ejnost algoritmu prosazuje v oblastech, kde jsou Üifry Üiroce ve°ejn∞ pou₧φvßny (nap°. internetovΘ prohlφ₧eΦe apod.) û to je urΦit∞ sprßvnß tendence. Sv∞tovß kryptografickß ve°ejnost takΘ oΦekßvß, ₧e brzo bude mo₧nΘ pou₧φvat bezpeΦn² Üifrovacφ algoritmus (viz AES) i v komerΦnφch produktech, jako je prßv∞ komunikace na internetu nebo bankovnφ aplikace (co₧ umo₧nφ zruÜenΘ embargo na v²voz americkΘho softwaru se silnou kryptografiφ). 
  43. Naproti tomu v uzav°en²ch komunitßch, jako jsou ozbrojenΘ sφly nebo vnit°nφ systΘmy bank a podobn∞, m∙₧e b²t situace jinß. Utajovßnφ informacφ o algoritmech a jin²ch bezpeΦnostnφch opat°enφch mß za cφl znesnadnit p°φpadnΘmu ·toΦnφkovi jeho Φinnost a zabrßnit ·toku vÜemi mo₧n²mi prost°edky (jak² bankovnφ sejf banka pou₧φvß, si takΘ nechßvß pro sebe...). U ozbrojen²ch sil je tomu podobn∞ û ani zde se nezve°ej≥uje nic, co nenφ nezbytn∞ nutnΘ. V t∞chto p°φpadech je tedy utajenφ algoritmu urΦit∞ na mφst∞. 
  44. Tolik snad jako obecn² ·vod do problematiky. Nynφ u₧ p°ejdeme ke konkrΘtnφm algoritm∙m a chviliΦku se zastavφme u t∞ch nejrozÜφ°en∞jÜφch internetov²ch.
  45. RC2
  46. Algoritmus RC2 byl publikovßn jako Internet Draft (RFC 2268) v roce 1977. Podobn∞ jako DES a CAST je to 64bitovß blokovß Üifra. DΘlku klφΦe lze volit v rozsahu 1 a₧ 128 bajt∙, nejΦast∞ji se pou₧φvß v dΘlce 128 bit∙ (americkΘ verze) a 40 bit∙ (exportnφ verze û doufejme, ₧e u₧ to nebude platit dlouho). Je Üiroce pou₧φvßn na internetu, je nap°φklad obsa₧en ve standardech  S/MIME ver. 3.0 a SSL 3.1.  Algoritmus navrhl R. Rivest pro spoleΦnost RSA.
  47. RC4
  48. Algoritmus RC4 je proudovß Üifra op∞t z dφlny R. Rivesta. RC4 nebyl dodnes oficißln∞ publikovßn û p°esto je jednou z nejΦast∞jÜφch proudov²ch Üifer na internetu. Popis byl zve°ejn∞n neznßm²m hackerem v roce 1994, kter² disassembloval jeho k≤d z jednoho programu. Dφky tomu je takΘ algoritmus p°edm∞tem ve°ejn²ch diskusφ a v²zkumu. Je obsa₧en v S/MIME ver. 3.0 i SSL ver. 3.0. Vedle DES je nejpou₧φvan∞jÜφm algoritmem na internetu. Umo₧≥uje volit dΘlku klφΦe a₧ 256 bajt∙, nejpou₧φvan∞jÜφ je op∞t v dΘlce 40 nebo 128 bit∙. Je trochu anomßlnφ v tom, ₧e nevyu₧φvß techniku inicializaΦnφho vektoru, a proto se na ka₧dou zprßvu musφ generovat nov² nßhodn² Üifrovacφ klφΦ. Ten se pak komunikujφcφmu prot∞jÜku musφ p°edat jinou bezpeΦnou cestou, nap°φklad prost°ednictvφm asymetrickΘho systΘmu. O obou technikßch si °ekneme p°φÜt∞.
  49. TripleDES
  50. TripleDES je zkratka pro algoritmus, kter² vyu₧φvß DES (viz tab. 1) jako stavebnφ prvek, a to t°ikrßt za sebou. Vzhledem k tomu zde vystupujφ t°i klφΦe K1, K2 a K3, kterΘ mohou b²t r∙znΘ. NejΦast∞ji se ale pou₧φvß varianta znßmß jako "EDE", a to se dv∞ma nebo t°emi r∙zn²mi klφΦi. V prvnφm p°φpad∞ je vztah pro Üifrovßnφ èT = EK1(DK2(EK1(OT))), v druhΘm èT = EK3(DK2(EK1(OT))). P°esto₧e Üifra DES u₧ byla prolomena, TripleDES je pova₧ovßna (a₧ na drobnΘ teoretickΘ nedostatky, jako je vlastnost komplementßrnosti a slabΘ klφΦe) za spolehlivou a bezpeΦnou, i kdy₧ pomalou Üifru. Tam, kde menÜφ rychlost nenφ na zßvadu, je TripleDES v souΦasnΘ dob∞ bezpeΦn²m a oficißlnφm standardem. O tom, ₧e bude jeÜt∞ n∞jakou dobu aktußlnφ, sv∞dΦφ i prßv∞ nynφ vyvinut² korejsk² "high-tech" Φip, Üifrujφcφ rychlostφ a₧ 240 Mb/s! Obsahuje dva algoritmy û TripleDES a SEED.
  51. CAST
  52. Algoritmus CAST je velmi populßrnφ blokovou Üifrou. Byl publikovßn na internetu jako RFC 2144 v kv∞tnu 1997 a jako freeware ho zaΦalo pou₧φvat mnoho firem ve sv²ch produktech (vΦetn∞ Microsoftu). Je tzv. Feistelovou Üifrou a pracuje v rundßch. Pou₧φvß 40- a₧ 128bitov² klφΦ; p°i klφΦi do 80 bit∙ (vΦetn∞) se pou₧ije 12 rund, jinak 16 rund. KomerΦnφ produkty v∞tÜinou podporujφ 80- a 128bitovΘ klφΦe. V Kanad∞ byl CAST schvßlen pro ochranu dat ve stßtnφm sektoru a₧ do stupn∞ "vyhrazenΘ". Je to zcela ojedin∞l² p°φpad, kdy byl n∞jak² ve°ejn² algoritmus schvßlen pro ochranu utajovan²ch dat (i kdy₧ nejni₧Üφho stupn∞). P°ipome≥me, ₧e algoritmy DES a GOST jsou sice takΘ oficißlnφmi standardy (americk²m a rusk²m), ale pro ochranu pouze "senzitivnφch", nikoli utajovan²ch dat.
  53. Vlastimil Klφma (v.klima@decros.cz)
  54.  6/00: 613-KLIMA (Au.Klφma - 8.43 n.str., 3374.88 KΦ) Strana: 4
  55.  
  56.         4/11
  57.  
  58.  
  59.