Slepenā atslēga
Foto - Aivars Liepiņš, "Diena"
zinātne

Pētera Bankovska saruna ar a/s DATI projektu menedžeri, sistēmanalītiķi, inženierzinātņu doktoru Alvilu Švēdi

Slepenā atslēga

Pēteris Bankovskis: Vai kriptogrāfija ir zinātne?

Alvils Švēde: Zinātne tā ir kādus pēdējos piecdesmit gadus, kādreiz varbūt tā vairāk bija māksla. Bet kas vispār ir zinātne? Nav, protams, vienkārši definēt, bet tā ir kaut kas tāds, kur var nonākt pie šādiem vai tādiem secinājumiem, kurus iespējams pārbaudīt. Kas attiecas uz kriptogrāfiju, tad šobrīd ir teorētiskas metodes, teorētiskas koncepcijas, kas ļauj zinātniski organizēt... teiksim, ne jau nu šifru veidošanas procesu, bet kāds algoritms vai protokols ar pretenziju, ka tas ir kriptogrāfiski drošs, šobrīd ir iespējams. Un ir metodes, ar kuru palīdzību var mēģināt šo protokolu vai algoritmu matemātiski analizēt. Kopumā jāsaka, ka uz jautājumu, vai kriptogrāfija ir zinātne, precīzākā atbilde būs — daļēji, droši vien daļēji. Katrā ziņā tā nav tāda zinātne, kas pētījumu rezultātā ģenerētu visāda veida ērtus un drošus kriptogrāfiskos algoritmus.

Bankovskis: Ar ko izskaidrojams, ka jūsu minētajos pēdējos piecdesmit gados ir iespējams runāt par zinātnes pazīmēm attiecībā uz kriptogrāfiju? Vai tas saistīts ar matemātisko metožu attīstību? Vai varbūt ar to, ka nepieciešamība ir diktējusi, lai šīs metodes attīstītos?

Švēde: Vispār jau par mūsdienu kriptogrāfijas un vispār informācijas teorijas pirmsākumu tiek uzskatīti Kloda Šenona darbi, kas nāca klajā 1949. gadā un kas bija saistīti ar Bell korporācijas pasūtījumu: viņš pētīja, kā pa noteiktu sakaru kanālu iespējams pārraidīt noteiktu signālu apjomu. Tā ka varētu teikt, ka, kā jau tas parasti notiek, praktiskās vajadzības diktēja pētījumu virzienu. Šai gadījumā radīja zinātnisko pamatu kriptogrāfijai. Protams, milzīga nozīme bija tam, ka parādījās visāda veida skaitļošanas mašīnas, kas ļāva būtiski paātrināt visus kriptogrāfijas un kriptoanalīzes posmus.

Foto - Andris Kozlovskis, Punctum Foto - Andris Kozlovskis, Punctum

Bankovskis: Cilvēks, kurš vispār ir dzirdējis vārdu “kriptogrāfija”, parasti ar to saprot kaut ko, kas ir saistīts ar šifrēšanu un atšifrēšanu, sākot jau ar antīko pasauli, līdz pat tagadnei ar, piemēram, kredītkartes datu slepenības nodrošināšanu. Mums par to visu ir miglaini, nereti pat fantastiski priekšstati, ko lielā mērā nosaka no spiegu romāniem gūtā “pieredze” par vienreizējās lietošanas bloknotiem (one-time pad) un tamlīdzīgām lietām. Kā būtu pareizi, vai ar kriptogrāfijas vārdu būtu apzīmējams viskautkas vai varbūt tas jālieto šaurāk, zinātniskāk?

Švēde: Pirms gadiem piecdesmit un senāk — gadsimtu vai vairākus pirms mums, kriptogrāfija bija galvenokārt šauras cilvēku grupas piederums, galvenokārt valdību, militārajā un diplomātiskajā sfērā. Parastais cilvēks ar to nesaskārās nekādā veidā. Šobrīd tā aina ir stipri mainījusies — pat nezinot un nepamanot, parastais cilvēks nonāk ar to saskarē. Un nevajag nemaz runāt par kredītkartes datu nosūtīšanu caur internetu. Galu galā tā pati parastā naudas karte ir nodrošināta — PIN koda drošība, protams, lai to izdarītu, tiek lietota kriptogrāfija. Vēl var minēt vairākas vispārizplatītas lietas: mobilie telefoni, parasto telefonu telekartes, kaut vai DVD, ko nopērkam veikalā, maksas televīzija, nu... ļoti daudz kas. Tas no vienas puses. Bet no otras puses, tieši saistībā ar interneta attīstību, daudzu struktūru funkcionēšana ir atkarīga tieši no informācijas, kas ir viņu rīcībā, līdz ar to pēdējās desmitgadēs ļoti aktuāls ir kļuvis jautājums par informācijas drošību. Un kriptogrāfija pilnīgi noteikti ir informācijas drošības problemātikas ne nu apakšnozare, bet būtiska sastāvdaļa. Tā sastāvdaļa, ko nodrošina ar matemātikas līdzekļiem. Slepenība, ziņojumu autentificēšana, integritāte, ja tās tiek garantētas ar matemātiskiem līdzekļiem, būtībā ir kriptogrāfijas metodes.

Bankovskis: Jūs sakāt — matemātiskās metodes, matemātiskie līdzekļi. Bet vai parastam cilvēkam vispār ir iespējams saprast, kas tā ir par matemātiku, kas tur notiek? Nu — tādam cilvēkam, kurš nav studējis augstāko matemātiku?

Švēde: Es domāju, ka jā. Jā. Bet te es vēl gribu piebilst...

Bankovskis: Vai vispār ir iespējams saprast? Protams, ja kāds ir studējis matemātiku, bioloģiju, fiziku, viņš savā specializācijā kaut ko saprot. Bet, ja ne, ja no malas...

Švēde: ...gribu piebilst, ka es personiski nenodarbojos ar kriptogrāfiju kā ar zinātni...

Bankovskis: Bet jūs interesējaties par to...

Švēde: Šķiet, ka pamatprincipus varēšu mēģināt pāris vārdos pastāstīt. Tur nav nekā tāda, ko nevar uztvert. Tās idejas tur apakšā ir, nu, jā, diezgan vienkāršas. Šobrīd pamatā eksistē divas pieejas datu šifrēšanai. Viena ir tā klasiskā, kad partijas vai korespondenti vienojas savā starpā par kādu slepenu informāciju, sauktu par atslēgu, apmainās ar šo atslēgu. Tad ziņojums pirms nosūtīšanas tiek šifrēts ar šo atslēgu, un saņēmējs ar šo pašu atslēgu ziņojumu atšifrē. Tā ir klasiskā, simetriskā kriptogrāfija. Bet 1976. gadā tika izgudrota asimetriskā kriptogrāfija, kur ir divas atslēgas. Viena ir publiska, zināma, otra — slepena. Un, ja, piemēram, man ir šīs divas atslēgas, tad publisko es varu nopublicēt, un jebkurš var sūtīt man ziņojumu, izmantojot šo publisko atslēgu, ziņojums būs slepens, bet tikai es, kam ir šī privātā atslēga, varēšu to atšifrēt. Tas ir tā, it kā jūs iemestu vēstuli pastkastītē, no kuras to izņemt varu tikai es.

Ja pakāpjamies atpakaļ un atgriežamies pie simetriskās kriptogrāfijas, tad jāsaka, ka pamatideja ir apmēram šāda (tā realizējas arī nesimetriskajā kriptogrāfijā): atklāto tekstu, ko paredzēts nosūtīt, jāsamaisa tik stipri, ka pazūd jelkādas valodas likumsakarības, jelkādi iespējamie, sākotnējā tekstā pat varbūtējā līmenī sastopamie periodiskumi. Jāsamaisa tik lielā mērā, ka ziņojums “izskatās” pēc trokšņa. Pēc trokšņa, kādu, piemēram, dzirdam ultraīsviļņu radio, kad nogriežam nost no stacijas. Pēc kosmiskā trokšņa, ja gribat. Protams, šo sajaukšanu nevar darīt patvaļīgi, ir jābūt kādai metodei, lai varētu sākotnējo tekstu restaurēt. Var nosaukt vairākus paņēmienus, kā šo sajaukšanu var izdarīt. Viens ir substitūcija: vienu simbolu vai simbolu grupu šifrētājs apmaina pret citu simbolu vai simbolu grupu. Otrs paņēmiens ir, ka vienu burtu vai simbolu “izsmērē” pa visu ziņojuma tekstu — tā ir transpozīcija. Šiem diviem paņēmieniem vai metodēm manis jau pieminētais Klods Šenons ir ieviesis nosaukumus. Tie ir: konfūzija un difūzija. Var teikt, ka kriptogrāfijā valda šīs divas metodes. Vēl liela nozīme ir tā saucamajam lavīnas efektam. Piemēram, ja atslēgā vai tekstā, ko gribam nošifrēt, nomainām vienu burtu, drīzāk jau vienu bitu, jo šobrīd viss notiek ar skaitļotājiem un tur ir biti, nevis burti, tad ar 50% varbūtību var sacīt, ka jānomainās jebkuram šifrāta burtam vai bitam. Respektīvi, neliela izmaiņa atklātajā tekstā ļoti stipri ietekmē šifrēto tekstu.

Kāpēc tā vajag? Ļoti bieži ir tā, ka tiek sūtīti līdzīgi teksti. Mēs varētu savākt daudzus šifrātus un pamanīt, ka tur ir likumsakarības, kas jau ir informācija, pie kuras var pieķerties.

Bankovskis: Vai nav līdzīgi kā astronomijā, kur strādā pētnieki, kas mēģina pamanīt likumsakarības kosmiskajā troksnī, tādējādi cerot pamanīt citplanētiešu ziņojumu šifrātus?

Švēde: Protams. Tieši tā. Ja jau ir konstatēts kaut kāds par šifrātu atzīstams apjoms, tad var tālāk sākt tā analīzi, meklējot, nu, kā lai pasaka, musturus, nē, latviski tā nevar teikt...

Bankovskis: Tomēr šajā gadījumā vārdam “musturs” būs īstais lietojums, jo “raksti” laikam gan nederēs...

Švēde: Respektīvi, kaut kā sakārtojušās simbolu virknes... Bet atgriezīsimies pie metodēm. Tās tātad attiecas kā uz simetrisko, tā nesimetrisko vai, pareizāk sakot, asimetrisko kriptogrāfiju. Simetriskās kriptogrāfijas ideju saprast ir vieglāk — kad ir atslēga, kuru zina abi saziņas dalībnieki. Ar asimetrisko ir grūtāk, varbūt var līdzēt tas manis pieminētais salīdzinājums ar pastkastīti: ja es zinu, ka tur kaut kur atrodas mana partnera pastkastīte, kurai tikai viņš viens tiek klāt, tad es varu aiziet un iemest tur sūtījumu, kas apkārtējai pasaulei paliks slepens. Asimetriskā kriptogrāfija pamatota uz matemātiskām metodēm, kuru īpatnība ir tāda, ka kādu vienādojumu vienā virzienā izrēķināt var ļoti viegli, bet otrā virzienā to izdarīt ir daudz grūtāk vai praktiski neiespējami. Pavisam virenkāršs piemērs: ir viegli kādu skaitli uzkāpināt kvadrātā, bet izvilkt kvadrātsakni, nu, ir grūtāk... Var atrast tādas matemātiskās problēmas, kur šāda asimetrija ir novesta līdz ekstrēmam, kur, ja skaitlis ir pietiekami liels, vienā virzienā viss notiek, bet otrā virzienā kaut ko izdarīt kļūst ļoti sarežģīti. Protams, ideja ir tāda, ka sarežģīti izdarīt ir tad, ja nezina noslēpumu, atslēgu. Var jau runāt konkrētāk. Viena no matemātiskajām problēmām, kas var tikt aplūkota šādā pavērsienā, nav, protams, kāpināšana kvadrātā un kvadrātsakņu vilkšana, tas izdarāms tomēr ļoti vienkārši, bet gan pirmskaitļu sadalīšana reizinātājos. Ja paņemam divus lielus pirmskaitļus un sareizinām, tad šo reizinājumu var uzskatīt par publisko, atklāto atslēgu, bet katrs no reizinātājiem varētu reprezentēt slepeno atslēgu. Sadalīt lielo skaitli reizinātājos nav vienkārši.

Bankovskis: Man ir pietiekoši viegli iztēloties pirmskaitli, vairākus pirmskaitļus, to reizināšanu, to, ka tos var vai nevar sadalīt reizinātājos — pirmreizinātājos. Bet kā to var izmantot kriptogrāfijā? Nu, kas par to, ka ir tā skaitļu teorija?

Švēde: Būtībā to var diezgan vienkārši parādīt, bet tad tomēr ir jāņem priekšā papīra lapa. Runa būs par RSA algoritmu, kas ir populārākais asimetriskais algoritms, nosaukums sastāv no to pētnieku uzvārdu iniciāļiem, kuri šo algoritmu izveidoja.

Tā... (Raksta.) Ņemam divus pirmskaitļus p un q, sareizinām viņus. Viss te notiek ar naturāliem skaitļiem. Vēl mums ir jāatrod divi tādi skaitļi e un d, kam piemīt šāda īpašība, ka e reiz d vienāds ar s reiz p mīnus 1 reiz q mīnus 1 plus 1. Šādus skaitļus var atrast. Tādā gadījumā d tiek uzskatīts par slepeno atslēgu, e un n kopā ir atklātā atslēga. Tagad tālāk: m ir atklātais teksts, c tātad būs šifrētais. Un šo šifrēto tekstu iegūst, veicot šādu matemātisko operāciju, izmantojot tā saukto reizināšanu ar atlikumu: c = me mod n. To var ilustrēt ar vienkāršu aritmētisku piemēru: 7 2 mod 3 = 1. Nu, un attiecīgi no šifrāta: m’ = c d mod n, kur m’, saprotams, ir vienāds ar m. Jāpiebilst, ka šim pirmskaitļu reizinājumam n, lai patvaļīga atšifrēšana būtu pietiekami apgrūtināta, ir jābūt lielākam par 10155.

RL  8_02_19_1

P.S. 1845. gadā izdotajā dzeju un eseju krājumiņā Edgars Alans Po, kurš bija liels kriptogrāfijas entuziasts un sapratējs, ievietojis arī kādu savu avīžrakstu, kas tieši veltīts kriptogrāfijas problemātikai un savai darbībai, vadot tādu kā kriptogrāfijas nodaļu masu lasītājiem domātā laikrakstā(!). Tur lasāmas arī šādas rindas: “Var droši apgalvot, ka cilvēka ģēnijs nevar radīt šifru, ko šis pats ģēnijs nespētu atšifrēt. Tiesa gan, pastāv milzīgas atšķirības starp atsevišķu cilvēku intelektuālajām spējām šajā nozarē. Bieži vien pie cilvēkiem, kuru parastās gara spējas ir itin vienādā līmenī, atrodam, ka viens nespēj atšifrēt visparastāko šifru, kamēr citu diezin vai mulsinās pat vissarežģītākais.” Mūsdienās, kad datu šifrēšanai plaši izmantotā RSA algoritma lietotāji reti kad nolaižas līdz skaitļiem, kuros ir mazāk par pārsimt cipariem –– šķiet, to nemaz nedrīkst –– runāt par tiešu cilvēka prātniecisko spēju samērošanu ar datorizēti apstrādājamo šifrātu un atklāto tekstu nemitīgo troksni nav iespējams. Liekas pat, ka vispār nav iespējams saprast, kas notiek datora procesorā, varbūt vārds “notiek” te ir nevietā, tajās nanosekundēs, kad viena secīga vieninieku un nullīšu rinda vai plūsma pārtop par jūkli, lai kaut kur, kaut kad atkal pārvērstos secībā. Līdzīgi Edgaram Po, varu vien ieteikt tiem, kuri vēlas iegūt vairāk informācijas par šo lietu, palasīt Tritēmija, kapteiņa Porta, Vinjerē un P. Niserona traktātus.

P.B.

Raksts no Augusts, 2002 žurnāla