Sekureco kaj konfidenceco en komputila komunikado
Ne ĉiu povas inventi metodon por solvi matematikan problemon. Por igi la aŭtentikigon per scio ĝenerale uzebla necesas "amas-produktado" de sekretoj. Kiel ni vidis, necesas sekretoj, kiuj estas malfacile malkaŝeblaj ("rompeblaj"), sed facile kontroleblaj.
Tiaj situacioj ne estas maloftaj en matematiko. Ekzemple multiplikado estas pli facila ol radikado, kaj per multiplikado eblas kontroli, ĉu iu nombro a estas aŭ ne estas la radiko de alia nombro b (a·a = b). Sed la diferenco en la malfacileco ne estas sufiĉe granda.
Bezonataj estas funkcioj, kiuj estas (relative) facile kalkuleblaj, sed kies inverso estas tre, tre malfacile kalkuleblaj. Tiaj funkcioj nomiĝas unudirektaj funkcioj.
Kion oni povus fari per tiaj matematikaj funkcioj? Memoru, ke mesaĝon el literoj oni povas kodi per nombroj, kaj nombrojn oni povas transformi per matematikaj funkcioj. Ĉiu ĉifro estas tia funkcio; ekzemple la ĉifro de Julio Cezaro, priskribita en la dua leciono, respondas al la funkcio (ni nomu ĝin "c")
y(x) = (x + 3) mod 23 |
La esprimo "mod 23" signifas, ke oni ignoras oblojn de 23, tiel ke c(21) = (24 − 23) = 1.
La inversa funkcio "d", bezonata por malĉifrado (deĉifrado), estas difinita per
d(x) = (x − 3) mod 23 |
En ĝia difino aperas la sama "ŝlosilo" (3) kiel en la difino de c. Se oni scias la ĉifran funkcion, estas facile kalkuli la malĉifran funkcion. Oni nomas tian ĉifron simetria ĉifro:
Difino: Ĉifro (metodo por ĉifri) nomiĝas simetria, se la ŝlosilo uzataj por ĉifri kaj por malĉifri estas la sama aŭ facile kalkuleblaj unu el la alia. Aliaj ĉifroj nomiĝas malsimetriaj.
Ĝis antaŭ nelonge oni uzis nur simetriajn ĉifrojn. La ideo pri la ekzisto de malsimetriaj ĉifroj devenas el artikolo aperinta en 1977:
Diffie, Hellman: New directions in cryptography. IEEE transactions on information theory (IT) 22 (1976), 6, 644–654. |
Diffie kaj Hellman ne prezentis ekzemplon de malsimetria ĉifro, ili tiutempe eĉ ne sciis, ĉu malsimetriaj ĉifroj ekzistas. Ili ja estus tre utilaj: Por vidi tion ni konsideru scenaron, en kiu iu homo A posedas propran malsimetrian ĉifron (du funkciojn c kaj d). Tiam li povus publikigi la funkcion c, kaj tamen la funkcio d restus sekreta.
Kiel ni vidis en la ekzemplo de Tartaglia, oni povus per malsimetria ĉifro aŭtentikigi sin kaj siajn mesaĝojn. La principa procedo por tio estas jena:
Kelkaj klarigoj pri la procedo:
Se iu volas sendi al A mesaĝon, li povas ĉifri ĝin per c. Tiamaniere neniu fremdulo povus legi la mesaĝon; por tio ja necesus la funkcio d, kaj ĝin A ne publikigis. A tamen kapablas malĉifri kaj legi.
Tiu procedo havas du gravajn avantaĝojn kompare al simetriaj ĉifroj:
Supre ni diris, ke oni sendas sian mesaĝon en ne-ĉifrita formo kaj kune en formo ĉifrita per sia privata ŝlosilo. Tio duobligas la amplekson de la mesaĝo, sed tio ne estas tre grava. Pli grave estas, ke necesas ĉifri grandan kvanton da informoj, kaj malsimetriaj ĉifroj bezonas relative multe da kalkula laboro.
Tial estas pli simple formi el la mesaĝo kontrol-sumon (foje nomatan "digesto") kaj por subskribo ĉifrI nur tiun. Tio havas du avantaĝojn: Estas malpli da ĉifra laboro kaj la subskribo funkcie pli similas al la tradicia subskribo, ĉar la subskribita informo ne estas trovebla el ĝi.
Simpla formo de tia kontrol-sumo estus adicii la kod-numerojn de ĉiuj signoj en la mesaĝo. Sed tiel ne eblas procedi, ĉar tiu sistemo estas facile atakebla: Oni povus interŝanĝi du signojn kaj ricevus la saman valoron kiel kontrolsumon. Ekzemple en ĝiro de 1800 mon-unuoj oni povus meti 8100, kaj la subskribo restus tamen valida.
Bona kontrol-sumo por subskribo devas esti "preskaŭ senkolizia", t. e. la trovo de du mesaĝoj kun la sama kontrol-suma valoro devas esti tre malfacila. Ekzistas kontrol-sumaj funkcioj, pri kiuj oni kredas, ke ili estas preskaŭ senkoliziaj. (Tute senkolisiaj ili ne povas esti, ĉar ekzistas multe malpli da kontrol-sumaj valoroj ol da mesaĝoj (la longeco de la mesaĝoj estas nelimigita).
Kiam oni ĉifras longan mesaĝon por konfidencigi ĝin, oni same havas la problemon de granda komputa laboro: Daŭrus longe ĉifri la tutan mesaĝon.
Tie ĉi oni ekspluatas la fakton, ke simetriaj ĉifroj estas multe pli rapide kalkuleblaj ol malsimetriaj. Pro tio oni generas hazardan ŝlosilon por simetria ĉifro kaj per ĝi ĉifras la mesaĝon; ĉar la ŝlosilo estis generita hazarde, neniu konas ĝin. Poste oni ĉifras la generitan ŝlosilon per la publika malsimetria ŝlosilo de la ricevonto (rapida afero, ĉar la generita ŝlosilo estas mallonga) kaj sendas la ĉifritan ŝlosilon kune kun la ĉifrita mesaĝo. La ricevanto unue malĉifras (per sia privata ŝlosilo) la generitan ŝlosilon kaj poste per ĝi la mesaĝon.
Tiu du-ŝtupa procedo eble aperas komplika, sed plenumas ĝin ne homoj, sed komputiloj.
Estas klare, ke privata ŝlosilo devas esti konservata kun granda zorgemo, por ke neniu povu misuzi ĝin; tio estas analoga al la konservado de stampilo aŭ sigelilo. Sed estas grava diferenco: Ĉe stampilo aŭ sigelilo ne malutilas, se iu vidas ĝin, ĉar estas malfacile kopii (imiti) ĝin; sed cifereca ŝlosilo estas tre facile kopiebla, se oni povas dum eĉ mallonga tempo aliri ĝin.
Kiel oni do protektu sian privatan ŝlosilon? Ĝi povus restadi en la privata (hejma) komputilo de la posedanto; sed tio havas plurajn malavantaĝojn:
Estas ĝenerale konsentite, ke privata ŝlosilo estu konservata en ico-karto. Ico signifas "integran cirkviton", kaj ico-karto estas plasta karto, normale en la formato de ĉek-karto (85 mm × 54 mm), en kiu troviĝas eta cirkvito kun kontaktoj. (Telefonkartoj normale estas ico-kartoj.)
Kiam oni bezonas la ŝlosilon (por subskribi aŭ malĉifri), ĉu tiam oni petas la karton doni ĝin? Eĉ tio estus danĝera, ĉar la programo, per kiu oni ĉifras, povus esti misprogramo, destinita por spioni privatajn ŝlosilojn. Por havi veran sekurecon devas esti neeble eligi la privatan ŝlosilon el la ico-karto.
Kiel oni do uzu la ŝlosilon? La ico-karto devas esti kapabla, sed helpo de ekstera komputilo malĉifri kaj subskribi. Por tio ĝi bezonas propran procezilon. Tiumaniere iuj misprogramoj maksimume povas eligi el la karto kelkajn falsajn subskribojn, sed ne spioni la ŝlosilon. Por sekureco tamen estas konsilinde, ne uzi la karton en komputilo, kiu ne estas fidinda. Ideale oni uzus ĝin nur en aparatoj sigelitaj kaj aprobitaj de fidinda instanco. Tiaj aparatoj ĝis nun ne estas haveblaj aŭ ĝenerale disvastigitaj.
La procezilo sur la karto ne povas esti tre potenca, ĉar ĝi devas esti malgranda. (Granda cirkvito povus rompiĝi, kiam la karto estas fleksata, ĉar silicio estas tre rompiĝema materialo.) Do la kvantoj de la prilaborataj datenoj ne estu tro grandaj. Tial estas grave redukti la kvanton per la supre priskribitaj teknikoj.
Necesas ankoraŭ konsideri la kazon, ke la posedanto de karto perdas ĝin. Por malhelpi, ke la trovinto (aŭ ŝtelinto) utiligu la karton, ĝi devas esti aldone sekurigita, normale per PIN-o (persona identiga numero), kiun necesas entajpi antaŭu la uzo. Same kiel ĉe mon-aŭtomata karto plurfoja enigo de malĝusta PIN-o igas la karton neuzebla.
Kelkiuj avertas, ke misprogramoj povus spioni la PIN-on. Tio estas vera, kaj protekto eblus per aldono de eta klavaro al la karto, tiel ke la PIN-o ne iru tra eksteraj aparatoj. Ĝis nun tia klavaro tamen normale ne estas parto de ico-karto.
Ĉiuj informoj en komputilo estas nombroj aŭ estas interpreteblaj kiel nombroj. Tial foje leviĝas la demando, ĉu ne iu povus per hazarda diveno trovi la nombron, kiu estas la sekreta ŝlosilo de alia persono, aŭ kiu estas la ĝusta subskribo al iu falsita mesaĝo. La problemo teorie ekzistas, ĉar per la publika ŝlosilo ĉiu ja povas kontroli, ĉu li divenis ĝuste. Eĉ pli, li povas fari multajn provojn, tute nerimarkate.
Kvankam la problemo ekzistas, ĝi ne estas vere grava, pro la grandeco de la uzataj nombroj. Se ekzemple oni uzas nombron kun 1000 bitoj (proksimume 300 dekumaj pozicioj) kaj malbonulo havus komputilon, kiu kapablas kontroli en ĉiu sekundo miliardon (109) da tiaj nombroj, li bezonus 10291 sekundojn pro provi ĉiujn, tio estas proksimume 310283 jaroj. Eĉ se li havus komputilon miliardoble pli kapablan kaj uzus miliardon da tiaj komputiloj, la tempo ankoraŭ estus 310265 jaroj.
Divenado aŭ elprovado do ne estas problemo. Vera problemo estas la eblo, ke iu trovas tute novan, antaŭe ne pripensitan metodon por inversigi la uzatan unudirektan funkcion.