Specializovan² t²denφk o v²poΦetnφ technice |
|
Serißl o bezpeΦnosti a informaΦnφm soukromφ |
|
╚ßst 32 - CW 43/97
Algoritmy na bßzi problΘmu digitßlnφho logaritmuJaroslav DoΦkal
V naÜem serißlu jsme se setkali ji₧ se dv∞ma typy jednocestn²ch funkcφ -- s faktorizacφ p°irozenΘho Φφsla (rozkladem Φφsla na souΦin prvoΦφsel, viz algoritmus RSA) a s aritmetick²mi operacemi nad eliptick²mi k°ivkami. T°etφ v²znamnß skupina algoritm∙ tohoto typu je zalo₧ena na obtφ₧nosti °eÜenφ problΘmu diskrΘtnφho algoritmu. Obecn∞ je problΘm diskrΘtnφho logaritmu objasn∞n ve 27. dφlu serißlu. StruΦn∞ zopakovßno: Jsou-li dßny dva parametry -- prvoΦφslo p a p°irozenΘ Φφslo g nesoud∞lnΘ s p, pak hodnota y je ze vztahu y = gx mod p snadno spoΦitatelnß, kde₧to hodnota x je z inverznφho vztahu x = logg y spoΦitatelnß velmi obtφ₧n∞. DiskrΘtnφ logaritmus je tedy tou t∞₧ko °eÜitelnou stranou jednocestnΘ funkce. S v²hodou se tΘto vlastnosti vyu₧φvß u algoritm∙ s ve°ejn²m klφΦem, z nich₧ nejznßm∞jÜφ je ElGamal∙v algoritmus.
ElGamal∙v algoritmus Jedna verze algoritmu slou₧φ pro pot°eby Üifrovßnφ, druhß pro tvorbu digitßlnφho podpisu. èifrovßnφ probφhß tak, ₧e si p°edpoklßdan² p°φjemce zprßvy zvolφ privßtnφ (tajn²) klφΦ x a vygeneruje pomocφ vztahu y = gx mod p ve°ejn² klφΦ y, kter² poÜle p°edpoklßdanΘmu odesilateli zprßvy. Ten si zvolφ nßhodnΘ Φφslo k < p a s vyu₧itφm zprßvy M vypoΦte dvojici hodnot (a,b): a = gk mod p b = M (+) yk a tuto dvojici hodnot poÜle p°φjemci. P°φjemce zφskß zprßvu M v otev°enΘm tvaru ze vztahu M = ax mod p (+) b P°edßnφ ve°ejnΘho klφΦe odesilateli zprßvy prob∞hne u digitßlnφho podepisovßnφ naprosto stejn∞ jako u Üifrovßnφ. Pak jsou dv∞ slo₧ky podpisu vypoΦteny nßsledujφcφm zp∙sobem: a = gk mod p b se vypoΦte tak, aby platil vztah M = (x.a + k.b) mod p. Verifikace probφhß podle vztahu yaab mod p = gM mod p. Pou₧itφ algoritmu demonstruje p°φklad 1.
DalÜφ algoritmy Na bßzi problΘmu diskrΘtnφho algoritmu ji₧ byla navr₧ena celß °ada algoritm∙. ZvlßÜt∞ podn∞tn² algoritmus navrhl Schnorr, kter² p°iÜel s nßpadem p°edzpracovat si n∞kterΘ v²poΦty a tak zkrßtit proces podepisovßnφ. DalÜφ v²hodou jeho algoritmu byl kratÜφ podpis -- a to jak v∙Φi schΘmatu ElGamala, tak v∙Φi RSA. To byl d∙vod, proΦ spolu s algoritmem ElGamala byl Schnorr∙v algoritmus pou₧it jako zdroj pro nßvrh americkΘho standardu DSA (Digital Signature Algorithm).
Algoritmus DSA Postup p°i podepisovßnφ pomocφ DSA je nßsledujφcφ: Je zvoleno 160bitovΘ prvoΦφslo q a vypoΦteno prvoΦφslo p o 512, resp. 1 024 bitech tak, aby platilo p = i . q + 1, kde i je p°irozenΘ Φφslo. Zvolφ se hodnota h a vypoΦte hodnota g ze vztahu g = h(p-1)/q mod p. Tajn² klφΦ musφ b²t podobn∞ jako q 160bitov², ale p°itom menÜφ ne₧ q. V²poΦet ve°ejnΘho klφΦe p°φjemce probφhß op∞t podle vzorce y = gx mod p. Podpis je op∞t dvouslo₧kov², zde (r,s), a pracuje se zase s nßhodn²m Φφslem k < q. Slo₧ky podpisu se poΦφtajφ podle vzorc∙ r = (gk mod p) mod q s = (k-1(H(M) + x . r)) mod q H(M) zde oznaΦuje zhaÜovanou (zkomprimovanou) zprßvu, neboli zßsadn∞ se nepodepisuje samotnß zprßva; podepisovßnφ se tφm znaΦn∞ urychlφ. Verifikace probφhß slo₧it∞jÜφm zp∙sobem. P°φjemce zprßvy poΦφtß
w = s-1mod q Pokud platφ v = r, pak je podpis verifikovan². Pou₧itφ algoritmu demonstruje p°φklad 2 (oba p°φklady jsou p°evzaty z knihy Schneier D. R.: Applied Cryptography. John Wiley & Sons, 1993 a 1995, oznaΦovanΘ za bibli kryptograf∙). DSA byl p°edlo₧en americk²m NIST (National Institute of Standards and Technology), ale jak se pozd∞ji ukßzalo, jeho vytvo°enφ bylo pln∞ v rukou vlßdnφ agentury NSA (National Security Agency). Tuto agenturu zalo₧il v roce 1952 Harry Truman a up°φmn∞ °eΦeno, tato jejφ role je zdrojem r∙zn²ch pochybovaΦn²ch nßzor∙. Obchodnφ kruhy tuto instituci oznaΦujφ za poz∙statek studenΘ vßlky a vyΦφtajφ jφ p°φliÜnΘ omezovßnφ exportu kryptografick²ch za°φzenφ. Odbornß kryptografickß ve°ejnost ji zase podezφrß, ₧e umis¥uje do sv²ch produkt∙ "zadnφ vrßtka". Mo₧nß jsou to jenom paranoidnφ p°edstavy, kdo vφ. V ka₧dΘm p°φpad∞ byl algoritmus DSA navr₧en pouze pro podepisovßnφ. Smysl zavßd∞t nov² standard mß tehdy, je-li v n∞Φem lepÜφ. Podepisovßnφ je u DSA ve srovnßnφ s RSA velice rychlΘ, navφc tuto rychlost lze zv²Üit n∞kter²mi opat°enφmi b∞hem p°edzpracovßnφ (lze si nap°φklad vÜimnout, ₧e hodnota r nenφ zßvislß na zprßv∞ a proto je mo₧no vytvo°it sadu nßhodn²ch hodnot k a p°edvypoΦφtat si k-1 a r). Naopak verifikace je ve srovnßnφ s RSA pomalejÜφ (10--40krßt). A kterß ·spora je v²znamn∞jÜφ, je p°edm∞tem spor∙ dodnes. V souvislosti s DSA se takΘ Φasto uvßd∞jφ v²hrady etickΘ povahy. Je zde snaha o standardizaci algoritmu, kter² Φerpß z jin²ch algoritm∙, z nich₧ jeden je dokonce patentovßn a₧ do roku 2008 (Schnorr). A zase jsme u etick²ch problΘm∙, tak Φasto diskutovan²ch v tomto serißlu.
Parametry protokolu: P°φklad 2: Digitßlnφ podpis zprßvy -- algoritmus DSA Serißl je rovn∞₧ dostupn² na www.idg.cz/computerworld/bvsk/
| COMPUTERWORLD - serißl o bezpeΦnosti | COMPUTERWORLD | IDG CZ homepage | |