home *** CD-ROM | disk | FTP | other *** search
/ Chip 1999 July / Chip_1999-07_cd.bin / servis / Chip_txt / TXT / 56.TXT < prev    next >
Text File  |  1999-06-06  |  10KB  |  83 lines

  1. CAST
  2. V╪ci, které jsou levné, neb∞vají p²íliτ kvalitní. Kdyº ale jde o algoritmus, kter∞ se má stát τifrovacím standardem, je situace úpln╪ jiná. Musí b∞t superkvalitní a zcela zadarmo. Na jeden takov∞ se nyní podíváme podrobn╪.
  3.  
  4. µifrovací standard zdarma
  5.  
  6. V polovin╪ devadesát∞ch let nebyla situace na poli τifrovacích algoritmà ràºová. Mnozí lidé pochopili, ºe DES uº má svá nejlepτí léta dávno za sebou, ale nem╪li místo n╪j p²íliτ na vybranou. Existovalo totiº jen velmi málo alternativ. Mnohé z nich byly pouze za peníze - p²i komerƒním pouºití se za n╪ muselo platit. To byl zejména p²ípad τv∞carské τifry IDEA, americk∞ch τifer RC2, RC4, RC5 a dalτích. V této situaci p²iτla kanadská spoleƒnost Entrust Technologies s nápadem poskytnout τifrovací algoritmus, kter∞ by byl voln╪ τi²iteln∞ a pouºiteln∞ zdarma pro osobní i komerƒní úƒely. Proto sponzorovala v∞voj nového algoritmu, kter∞ by byl dostateƒn╪ variabilní a siln∞, pouºiteln∞ bez p²ehnan∞ch nárokà na sloºitost a také dostateƒn╪ sviºn∞. V∞sledek byl nazván CAST podle iniciál sv∞ch kanadsk∞ch tvàrcà (C. Adams, S. Tavares) a na internetu byl v kv╪tnu roku 1997 publikován pod oznaƒením RFC 2144 .
  7.  
  8. Americk∞, nebo kanadsk∞?
  9. CAST tak p²inesl alternativu k algoritmu Blowfish, kter∞ ze stejn∞ch dàvodà nabídl jako freeware Ameriƒan B. Schneier o dva roky d²íve. Tím vznikla koneƒn╪ i v oblasti freewaru urƒitá konkurence a nabídka. CAST si brzo získal p²íznivce na celém sv╪t╪, stejn╪ tak jako Blowfish, a oba se díky bezplatnému pouºití brzy objevily v ²ad╪ komerƒních produktà.
  10. V∞hodou CAST se staly dv╪ podstatné skuteƒnosti, které jej up²ednostσovaly p²ed algoritmem Blowfish. Jednak jej ve sv∞ch produktech zaƒal pouºívat Microsoft, jednak získal certifikát kvality od oficiálního kanadského ú²adu CSE (Communication Security Establishment), a dá se tak pouºít pro ochranu citliv∞ch dat v kanadsk∞ch vládních organizacích a institucích (urƒení pro stupeσ "designated information" podle kanadského systému klasifikace). Za zmínku stojí i jeho vƒlen╪ní do programu PGP (Pretty Good Privacy), kde nahradil pro komerƒní úƒely licenƒními poplatky zatíºen∞ τv∞carsk∞ algoritmus IDEA.
  11.  
  12. Je CAST podobn∞ DES?
  13. Ano, v mnoha sm╪rech je. Pouºívá ovτem ²adu nov∞ch kryptografick∞ch myτlenek a je nesrovnateln╪ kvalitn╪jτí. S DES má spoleƒn∞ tzv. Feistelàv princip. Algoritmus Feistelova typu pracuje v cyklech totoºn∞ch operací, které se naz∞vají rundy (rounds). Kaºdá runda opakuje stejné operace se vstupem a v∞stup z jedné rundy je zároveσ vstupem do rundy následující, ale v ràzn∞ch rundách jsou pouºity odliτné tzv. rundovní klíƒe (viz t麠p²ipojená schémata). Rundovní klíƒe se odvozují v inicializaƒní fázi algoritmu z vlastního τifrovacího klíƒe ràzn╪ sloºit∞m procesem (DES nap²íklad oproti CAST pouºívá velmi jednoduch∞ postup, kter∞ màºe vytvo²it i tzv. slabé klíƒe).
  14. Feistelàv princip umoºσuje pro odτifrování pouºít stejn∞ postup jako pro zaτifrování, jen se obrátí po²adí v∞b╪ru rundovních klíƒà (zkuste si tento geniální princip rozmyslet podle obrázku). Tato vlastnost je v∞hodná zejména pro hardware a τifrovací ƒipy. Dalτí podobnost s DES je op╪t na úrovni obecného principu, kter∞m jsou tzv. substituƒn╪-permutaƒní sít╪. DES i CAST pouºívají substituce, a to ve form╪ pevn∞ch substituƒních tabulek zvan∞ch S-boxy. DES má osm S-boxà, které zobrazují τest bità na ƒty²i, u CAST to jsou ƒty²i mohutn╪jτí S-boxy S1 aº S4, které p²evád╪jí osm bità na 32. Toto "rozτí²ení" je jedním z nov∞ch prvkà, které se objevily u n╪kolika τifer devadesát∞ch let.
  15. Dále DES pouºívá permutaci bità (p²eházení po²adí bità), která je skuteƒn∞m "zabijákem" pro softwarovou realizaci, zatímco CAST jako permutaci pouºívá cyklickou rotaci bità. Tu lze, jak známo, softwarov╪ realizovat velmi jednoduτe. Krom╪ toho CAST pouºívá aritmetické operace sƒítání a odƒítání v celé τí²i 32bitového slova, tj. v modulu 232. Uvedené operace jsou kryptologicky siln╪jτí a p²i realizaci souƒasn╪ rychlejτí. V∞sledkem je proto τifra kvalitn╪jτí a rychlejτí neº DES. Auto²i uvád╪jí, ºe rychlost τifrování dat v operaƒní pam╪ti PC je na 150MHz Pentiu asi 3 MB/s.
  16.  
  17. CAST je bezpeƒn∞
  18. Díky v∞τe uveden∞m zesílením oproti DES si CAST získal velkou dàv╪ru. P²isp╪lo k tomu jist╪ i zve²ejn╪ní vτech kryptografick∞ch detailà a úvah o bezpeƒnosti algoritmu ve studii "Constructing Symmetric Ciphers Using the CAST Design Procedure" (viz infotipy).
  19. CAST v∞hodn╪ vyuºívá skuteƒnosti, ºe Feistelàv princip je uº velmi dlouho pouºívan∞ a prozkouman∞, a p²itom zavádí dalτí kvalitní kryptografické operace. V∞sledkem jsou velmi dobré vlastnosti algoritmu, jako je konfuze, difuze, lavinovitost, nezávislost bità atd., coº dosv╪dƒuje i skuteƒnost, ºe dosud nebyla odhalena ºádná jeho slabina.
  20. CAST se samoz²ejm╪ vyh∞bá vτem notoricky znám∞m neτvaràm DES, jako je vlastnost komplementárnosti nebo existence slab∞ch a poloslab∞ch klíƒà. Dalτím dàleºit∞m p²edpokladem bezpeƒnosti je délka klíƒe. Zde dává CAST uºivateli volnou ruku a umoºσuje volit délku klíƒe od 40 aº do 128 bità (po osmi bitech). Posledním - a nepochybn╪ zásadním - potvrzením jeho kvality se stalo uº zmín╪né oficiální stanovisko kanadského ú²adu CSE.
  21.  
  22. Popis algoritmu
  23. Popis lze shrnout do ƒty² základních krokà. Oznaƒme bity otev²eného textu (vstupu algoritmu) jako m1 ... m64, bity τifrovacího klíƒe K jako k1 ... k128 (pokud je kl탠kratτí, je do délky 128 bità dopln╪n nulami) a τifrov∞ text (tj. v∞stup algoritmu) jako c1 ... c64. Algoritmus má 12 nebo 16 rund, podle toho, zda pàvodní kl탠má délku do 80 bità (vƒetn╪) nebo více neº 80 bità. Rundy nemají zcela totoºnou míchací funkci f (jak je znázorn╪no na obrázku Feistelova principu), ale funkce f jsou t²i. Liτí se v ràzném po²adí v∞b╪ru operací +, -, xor, které jsou v obrázku znázorσujícím míchací funkci oznaƒeny jako operace a, b, c, d. Proto rozeznáváme typ1 (f1), typ2 (f2) a typ3 (f3) této funkce. Konkrétní napln╪ní operací u funkcí f1 aº f3 je uvedeno dále v odstavci o míchací funkci f.
  24. Protoºe se popis algoritmu m╪ní v závislosti na délce klíƒe K, zohledσuje se to také v oznaƒení algoritmu. Algoritmus se pak oznaƒuje jako CAST5-x, p²iƒemº ƒíslo za pomlƒkou udává délku klíƒe v bitech (12 moºností). Za základní verze se povaºují CAST5-40, CAST5-80 a CAST5-128. K nim jsou také definovány kontrolní p²íklady (viz infotipy).
  25.  
  26. Zaτifrování
  27. 1. krok:
  28. P²íprava rundovních klíƒà. Z klíƒe K se vypoƒte 16 párà rundovních klíƒà {Kmi, Kri}, i = 0 ... 15, kde Kmi jsou 32bitová slova (maskovací klíƒe) a Kri p╪tibitová slova (rotaƒní klíƒe). 
  29. 2. krok:
  30. Otev²en∞ text se rozd╪lí na levé (L) a pravé (R) 32bitové slovo: 
  31. L0 = m1 ... m32,   R0 = m33 ... m64.
  32. 3. krok:
  33. Nyní následuje 16 (p²ípadn╪ 12) rund (i = 0 ... 15), v nichº se vypoƒítávají Li+1 a Ri+1 z Li a Ri podle vztahà:
  34. Li+1 = Ri 
  35. Ri+1 = Li xor f(Ri, Kmi, Kri) 
  36. P²itom funkce f je vybíraná postupn╪ jako f1, f2, f3 a cyklicky dále.
  37. 4. krok:
  38. Na záv╪r prob╪hne v∞m╪na po²adí L16 a R16, tj. τifrov∞ text je definován jako c1 ... c64 = (R16, L16) - nikoliv, jak by se dalo oƒekávat, jako (L16, R16). 
  39.  
  40. Odτifrování
  41. Jak uº bylo ²eƒeno, odτifrování probíhá stejn∞m postupem jako zaτifrování. Proto byl také uƒin╪n 4. krok v uvedeném popisu. Jedin∞ rozdíl p²i odτifrování oproti zaτifrování spoƒívá v obrácení po²adí v∞b╪ru párà rundovních klíƒà. Jako první se tedy pouºije ten pár rundovních klíƒà, kter∞ byl p²i zaτifrování pouºit jako poslední, atd. 
  42.  
  43. Substituƒní boxy
  44. CAST pouºívá 8 konstantních substituƒních boxà S1 aº S8, které zobrazují bajt na ƒty²bajtové slovo. Kaºd∞ S-box tedy zabírá v pam╪ti 1 KB. P²i vlastním τifrování dat ale postaƒí vyhradit pam╪£ 4 KB na S-boxy S1 aº S4, nebo£ S5 aº S8 se pouºívají pouze k p²íprav╪ párà rundovních klíƒà.
  45. Míchací funkce f
  46. V míchací funkci jsou pouºity b╪ºné operace intelsk∞ch procesorà, jako je sƒítání (+) a odƒítání (-) 32bitov∞ch slov v modulu 232 (tj. p²ípadné p²eteƒení se zanedbává), operace xor a cyklická rotace 32bitového slova o n bità doleva (<<< n ). Pro snadn╪jτí popis oznaƒme D vstupní 32bitové slovo funkce f a I 32bitové slovo, které vznikne jako meziv∞sledek. Jednotlivé bajty slova I oznaƒme od nejv∞znamn╪jτího Ia aº po nejmén╪ v∞znamn∞ Id. Zápis míchací funkce f je pak jednoduch∞:
  47.  
  48. Typ 1: 
  49. I = ((Kmi + D) <<< Kri)
  50. f = ((S1[Ia] xor S2[Ib]) - S3[Ic]) + S4[Id]
  51.  
  52. Typ 2: 
  53. I = ((Kmi xor D) <<< Kri)
  54. f = ((S1[Ia] - S2[Ib]) + S3[Ic]) xor S4[Id]
  55.  
  56. Typ 3: 
  57. I = ((Kmi - D) <<< Kri)
  58. f = ((S1[Ia] + S2[Ib]) xor S3[Ic]) - S4[Id]
  59.  
  60. Tyto rovnice pak definují konkrétní instance operací a aº d v obrázku míchací funkce.
  61.  
  62. P²íprava rundovních klíƒà
  63. Zb∞vá popsat, jak se vytvá²ejí rundovní klíƒe z k1 ... k128. Postup je dost podobn∞ vlastnímu procesu τifrování, ale jeho popis by vyºadoval pom╪rn╪ hodn╪ místa. Zájemce proto odkazujeme na popis uveden∞ v RFC 2144 nebo na programovou realizaci (viz infotipy). Poznamenejme, ºe zde, a práv╪ jen zde, se vyuºívají S-boxy S5 aº S8, které jsou také pevn╪ definované. V∞stupem je nakonec 12 nebo 16 párà rundovních klíƒà {Kmi, Kri}.
  64.  
  65. Záv╪r
  66. CAST p²edstavuje zdarma standard, kter∞ je τiroce akceptován, je dostateƒn╪ rychl∞ a bezpeƒn∞ a má moºnost silné i slabé verze podle délky klíƒe. Co si p²át více? Není divu, ºe vyplnil vakuum, které existuje od "pádu" DES, a potrvá jeτt╪ jeden dva roky, neº bude vybrán nov∞ americk∞ τifrovací standard AES.
  67. Vlastimil Klíma (vklima@decros.cz)
  68.  
  69. Infotipy
  70. http://ds.internic.net/frc/
  71. rfc2144 .txt 
  72. (Obsahuje definici a základní dokument - RFC 2144: CAST-128 Encryption Algorithms, C. Adams, Entrust Technologies, May 1997.)
  73.  
  74. http://www.entrust.com/library.htm
  75. (Obsahuje studii "Constructing Symmetric Ciphers Using the CAST Design Procedure" o kryptograficko-bezpeƒnostních aspektech algoritmu.)
  76.  
  77. http://adonis.ee.queensu.ca:8000/cast/cast.html
  78. (Obsahuje dokument "CAST Encryption Algorithm Related Publications" s dalτími informacemi k algoritmu.)
  79.  
  80. http://www.mhv.net/~mgraffam/ce/cryptography.html
  81. (Obsahuje voln╪ τi²itelnou implementaci CAST v jazyce C.)
  82.  
  83.