24
Univerza v Ljubljani Fakulteta za elektrotehniko Magistrski študij elektrotehnike Študijsko leto 2001/02 Sistem za preverjanje pristnosti objektov avtonomnega merilno - registracijskega sistema Rodič Gregor, [email protected] Iskraemeco d.d., Kranj, Slovenija Mentor: Prof. dr. Sašo Tomažič

Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Univerza v Ljubljani Fakulteta za elektrotehniko Magistrski študij elektrotehnike Študijsko leto 2001/02

Sistem za preverjanje pristnosti objektov avtonomnega merilno - registracijskega sistema

Rodič Gregor, [email protected]

Iskraemeco d.d., Kranj, Slovenija

Mentor: Prof. dr. Sašo Tomažič

Page 2: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

2

Kazalo: 1. Uvod.................................................................................................................................................................... 3 2. Elementi zaščite informacijskega sistema........................................................................................................... 4 2.1 Zaupnost ......................................................................................................................................................... 4 2.2 Pristnost.......................................................................................................................................................... 4 2.3 Celovitost ....................................................................................................................................................... 4 2.4 Konsistentnost ................................................................................................................................................ 5 2.5 Nadzor dostopa............................................................................................................................................... 5 2.6 Dostopnost...................................................................................................................................................... 5 3. Osnovni principi zaščite informacijskega sistema .............................................................................................. 5 3.1 Simetrične kodirne metode............................................................................................................................. 6

3.1.1 DES....................................................................................................................................................... 6 3.1.2 IDEA (International Data Encryption Algorithm) ............................................................................... 8

3.2 Asimetrične kodirne metode ........................................................................................................................ 10 3.2.1 Algoritem RSA ................................................................................................................................... 11 3.2.2 Algoritem LUC................................................................................................................................... 16 3.2.3 Diffie – Hellman –ov princip izmenjave ključev................................................................................ 18 3.2.4 Hash funkcije (servirne funkcije)........................................................................................................ 19

4. Sinteza sistema za preverjanje pristnosti kot del sistema za vzpostavitev in upravljanje omrežja AMR enot.. 20 4.1 Avtonomna vzpostavitev in prekinitev logičnih povezav med enotami AMR omrežja.......................... 21 4.2 Avtonomno vzrževanje logične povezave med nadrejeno in podrejeno enoto ....................................... 22 5. Zaključek.......................................................................................................................................................... 23 Dodatek A: ............................................................................................................................................................ 24

Page 3: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

3

1. Uvod

Namen seminarske naloge je predstaviti koncept sistema za preverjanje pristnosti (Authentication) posameznih objektov avtomatskega merilnega in registracijskega sistema (AMR). V seminarski nalogi je predstavljen tudi AMR sistem, ki je zasnovan na osnovi DLMS standarda, ki predpisuje pravila za indentifikacijo objektov, njihovo pripadnost ter sintakso pri izmenjavi podatkov. Podatki so pridobljeni iz objektov po COSEM standardu, ki jih vsebuje vsaka izmed naprav, ki so vključene v AMR, kot npr. električni števec porabljene moči, plinski števec, števec porabljene vode, števec porabljene tople vode. Glavni namen takšnega sistema, je uporabniku zagotoviti transparenten pregled nad pretvorbo posameznih energij in porabo materij v nekem časovnem obdobju, ter ponuditi distributerju orodje s katerim lahko zniža stroške upravljanja, nadzorovanja in pregleda nad energijami in materijami, ki jih dobavlja, in nenazadnje tudi pridobivanje podatkov o profilih pretvorbe energij ter porabe materij, na osnovi katerih lahko sestavi ekonomsko zanimive pogodbe z dobavitelji ter načrtuje morebitne razširitve in posodobitve infrastrukture. Ker je tak sistem postavljen v javnem okolju in običajno povezan s cenenimi komunikacijskimi mediji kot sta PLC (power line carrier) in RF (radio frequency carrier), je seveda občutljiv na morebitne zlorabe, katerih cilj je onemogočanje delovanja takšnega sistema, injiciranje lažnih podatkov ali spreminjanje pravih podatkov. Prav zaradi prej omenjenih možnosti zlorab mora sistem vsebovati tudi določeno stopnjo zaščite, ki v osnovi zahteva možnost preverjanja pristnosti objektov (authentication) in v primeru pošiljanja podatkov s kritično vsebino tudi možnost zaupnosti (confidentiality) le teh. DLMS standard sicer predpisuje določene stopnje zaščite za preverjanje pristnost ter zaupnosti, ne predpisuje pa načina po katerem je določena stopnja zaščite dosežena. Pri našem AMR sistemu, ki smo ga zasnovali v podjetju smo način zaščite razdelili v dva nivoja. Prvi nivo zaščite bo vključeval že preizkušene sisteme, ki so bili uporabljeni pri integraciji centralnih enot AMR sistema (koncentratorjev) na nivo globalnega AMR sistema distributerja, kjer se posamezne centralne enote povezujejo med seboj z mediji kot so PSTN ISDN, GSM ali Ethernet. Drugi nivo zaščite pa mora biti izveden na nivoju objektov, ki so povezani na centralno enoto, torej spodnji nivo, kjer prevladuje PLC in RF medij. Sistem na spodnjem torej drugem nivoju je tudi zelo obsežen, saj ena centralna enota običajno odbira od 400 do 1000 objektov, kar pomeni relativno veliko količino podatkov, ki jih je potrebno prenesti po relativno nezanesljivem mediju. V seminarski nalogi se bomo ukvarjali predvsem z sintezo zaščite na slednjem nivoju, ter pri tem izbirali tehnike oziroma algoritme, ki zagotavljajo potreben nivo zaščite ter za svojo izvedbo pretirano ne obremenjujejo virov, ki jih imamo na razpolago.

Page 4: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

4

2. Elementi zaščite informacijskega sistema

Vsak informacijski sistem, v odvisnosti od zgradbe in nivoja zaščite, vsebuje naslednje elemente, ki zagotavljajo:

• Zaupnost (Confidentiality) • Pristnost (Authentication) • Celovitost (Integrity) • Konsistentnost (Nonrepudiation) • Nadzor dostopa (Access Control) • Dostopnost (Availability)

Slika 2.1 prikazuje model zaščite informacijskega sistema .

Slika 2.1: Model zaščite informacijskega sistema

2.1 Zaupnost

Zaupnost je element zaščite, ki ščiti poslana sporočila pred t.i. pasivnimi napadi, ki vljučujejo prestrezanje sporočil ter njihovo dešifriranje z namenom razkritja njihove vsebine ter opazovanja prometa na komunikacijski povezavi. Določeno stopnjo zaupnosti dosežemo z ustreznim kodiranjem sporočila, ki mora biti izvedeno tako dobro, da morebitni napadalec uspe dekodirati sporočilo šele ko je to sporočilo že brez vrednosti. V praksi poznamo za kodiranje sporočil tako imenovane simetrične in asimetrične metode.

2.2 Pristnost

Preverjanje pristnosti sporočila je zelo pomemben element zaščite informacijskega sistema pred t.i. aktivnimi napadi, ki vključujejo prestrezanje in spreminjanje vsebine sporočil, kot tudi generiranje lažnih sporočil. Ta element varnosti torej omogoča prejemniku sporočila, da preveri njegovo resničnost oziroma pristnost.

2.3 Celovitost Zagotavljanje celovitosti je pomemben element zaščite informacijskega sistema predvsem tedaj, ko neko

sporočilo dobi vsebinski pomen šele tedaj, ko ga sestavimo iz množice navidezno nepovezanih sporočil, ki lahko do naslovnika pridejo tudi v naključnem vrstnem redu. Zato mora ta element zaščite omogočati rekonstrukcijo pravilnega zaporedja prejetih sporočil in njihovo sestavo v vsebinsko celoto. Ob tem mora biti sistem sposoben

Nadzornik ali nadzorna enota

Sporočilo

Zaščita dokumenta

Skrivna informacija

Napadalec

Sporočilo

Skrivna informacija

Zaščita dokumenta

Page 5: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

5

zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element celovitosti je v bistvu zgrajen na osnovi elementa zaupnosti.

2.4 Konsistentnost

Konsistentnost je element zaščite informacijskega sistema, ki onemogoča zanikanje poslanega sporočila s strani pošiljatelja ali zanikanje prejetega sporočila s strani prejemnika. To pomeni, da lahko tako pošiljatelj kot prejemnik sporočila kadarkoli preprečita vnos nekonsistentnosti ene ali druge strani.

2.5 Nadzor dostopa

Kontrola dostopa je element informacijskega sistema, ki omogoča omejevanje in nadzor dostopa posameznih objektov do gostiteljevega sistema in aplikacij preko komunikacijskih povezav. Nadzor dostopa pa je možen le v primeru, ko je realiziran element preverjanja pristnosti objekta saj le na osnovi identifikacije, možno posameznemu objektu dodeliti njemu dovoljene pravice pri dostopu do gostiteljevega sistema in aplikacij.

2.6 Dostopnost

Element dostopnosti je specifičen element zaščite informacijskega sistema, saj mora zagotavljati dostopnost do vsebine informacijskega sistema tudi tedaj, ko bi napad ali napaka na komunikacijski povezavi onemogočila dostop do vsebine. Pri čemer v primeru napada dostopnost do vsebine zagotavljamo predvsem z elementoma zaupnosti in preverjanja pristnosti.

3. Osnovni principi zaščite informacijskega sistema

Princip zaščite informacijskega sistema je v osnovi odvisen od praktične implementacije informacijskega sistema in od potrebne stopnje zaščite. Za zagotavljanje dveh osnovnih elementov zaščite informacijskega sistema, zaupnosti in pristnosti, danes v praksi uporabljamo različne kodirne oziroma enkripcijske tehnike, ki so realizirane v obliki algoritmov. Le te zagotavljajo zaupnost sporočila medtem, ko je preverjanje pristnosti izvedeno s pomočjo t.i. Hash algoritmov, ki predstavljajo generator digitalnega podpisa. Slika 3.1 prikazuje v praksi najpogosteje uporabljane algoritme za zagotavljanje zaupnosti in pristnosti ter njihove aplikacije.

Slika 3.1: Kodirni algoritmi in njihove aplikacije

Upravljanje z omrežjem

IDEA SHA MD5 DES RSA

DSS Kerberos SNMP PEM PGP

Kodirni algoritmi Hash funkcije

Elektronska pošta Preverjanje pristnosti

Page 6: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

6

3.1 Simetrične kodirne metode Simetrične kodirne metode so nastale na osnovnem principu klasičnih kodirnih metod, ki uporabljajo pri kodiranju en skrivni ključ ter sistem zamenjav in permutacij, s ciljem pridobitve kodiranega sporočila. Zaradi enega kodirnega ključa ter dualnosti kodirnega in dekodirnega postopka jih uvrščamo med simetrične kodirne metode Med najbolj v praksi uporabljanimi metodami je vsekakor DES (Data Encryption Satandard)[1], ki je bil predstavljen leta 1977. Kasneje sta na osnovi DES nastala še PES (Proposed Encryption Standard) ter IDEA (International Data Encryption Standard), ki sta nastala šele po odkritju diferencialne kodirne analitične metode. Glavna prednost te metode je bila zmanjšanje časa potrebnega za odkritje skrivnega ključa ob uporabi DES.

3.1.1 DES Osnovna vhodna elementa v DES kodirno shemo sta 64 bitno vhodno sporočilo ter 56 bitni skrivni ključ. Kodirna shema je sestavljena iz 16 iteracij, pri čemer se v vsaki iteraciji izvede XOR operacija med 48 bitnim razširjenim delom izhoda prejšnje iteracije ter 48 bitnim permutiranim vhodnim ključem. Slika 3.2. prikazuje osnovno zgradbo DES algoritma, slika 3.3 pa prikazuje vsebino posamezne iteracije.

Slika 3.2: Zgradba DES algoritma

64 bitno vhodno sporočilo 56 bitni skrivni ključ

Začetna permutacija IP

Iteracija 1 Permutacija P2

Permutacija P2 Iteracija 2

Iteracija 16 Permutacija P2

Pomik v Levo

Pomik v Levo

Pomik v Levo

Permutacija P1

Inverzna začetna permutacija

64 bitno kodirano sporočilo

K1

K2

K16

Page 7: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

7

Zelo pomembna lastnost kodirnega algoritma je velika sprememba v strukturi kodiranega sporočila v primeru majhne spremembe vhodnega sporočila. Takšni spremembi pravimo efekt plazu in je prisoten pri vsakem dobro zastavljenem kodnem algoritmu.

Slika 3.3: Iteracija DES algoritma Dobra lastnost DES algoritma je relativno enostavna realizacija algoritma ter možnost uporabe več kodirnih ključev pri generiranju ene kodirane besede, kar seveda poveča varnost DES pred t.i. brutalnim napadom na zaupnost sporočila s katerim se napadalec skuša dokopati do skritega kodirnega ključa, pri čemer ima pri 56 bitnem ključu 562 možnih alternativ. To pomeni, da pri procesorski moči 610 kodiranj na sµ napadalec potrebuje na osnovi poznavanja kodiranega sporočila 10.01 ure za odkritje kodirnega ključa. Z uporabo dveh kodirnih ključev in t.i. Trojnega DES algoritma pa je sistem praktično neranljiv. Trojni DES algoritem[2] opisuje enačba 3.1.

[ ][ ][ ][ ][ ][ ]CDEDPPEDEC

KKK

KKK

121

121

==

(3.1)

V zgornji enačbi predstavlja dekodiranje/kodiranje z drugim ključem le postopek s katerim dosežemo združljivost DES algoritmov z enim ključem z DES algoritmi z dvema ključema. Trojni DES algoritem se danes uporablja v standardih, ki opredeljujejo zaščito in kodiranje kodirnih ključev ter njihovo manipulacijo (ANS X9.17 in ISO 8732). Poleg tega pa je Trojni DES najbolj uporabljan algoritem pri zaščiti vsebine elektronske pošte (PEM – Privacy Enhanced Mail). Za razbitje zaščite trojnega DES algoritma moramo ugotoviti oba kodirna ključa K1 in K2.

Li-1 Ri-1 Ci-1 Di-1

32 bitov 32 bitov 28 bitov 28 bitov

Permutacija E

Substitucija S

Permutacija P

Ri Ci Di Li

Pomik v levo Pomik v levo

Permutacija P2

XOR

XOR

Page 8: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

8

Postopek razbitja trojnega DES algoritma:

1. Pridobimo n (P, C) parov, pri čemer je P originalno sporočilo in C kodirano originalno sporočilo. 2. Določimo 562 možnih ključev iK in izračunamo [ ]aDP ii = na osnovi izbrane vrednosti A, za katero

velja [ ]PEA K1= . 3. Za vsako vrednost iP , ki se pojavi med n pari (P,C) določi vrednost [ ]iii CDB = na osnovi iK ključa.

4. Določimo 562 možnih ključev jK in potem za vsakega od j ključev izračunamo [ ]aDB jj = , ter

primerjamo vsakokratno izračunano vrednost jB z vsemi že izračunanimi vrednostmi iB . Če pri tem

naletimo na enakost ij BB = , imamo na osnovi predhodnih korakov znan par ključev (K1,K2). Na osnovi statističnih lastnosti problema razbitja Trojnega DES algoritma lahko ugotovimo, da je za uspešno razbitje potrebno izbrati približno n/264 vrednosti a , pri čemer je čas, ki je potreben za razbitje algoritma reda n2log1202 − .

3.1.2 IDEA (International Data Encryption Algorithm) IDEA[3] je simetrični kodirni algoritem, ki sta ga leta 1991 predstavila avtorja Xuiejia Ali in James Massey z namenom, da bi zamenjal DES, katerega življenjska doba se je zaradi izjemnega razvoja računalniške opreme iztekla. IDEA algoritem se danes uporablja v različnih aplikacijah, kot je npr. PGP sistem, ki zagotavlja zaupnost in konsistentnost pri izmenjavi sporočil elektronske pošte. Glavni lastnosti IDEA algoritma sta 128 bitni kodirni ključ ter 64 bitni podatkovni paket sporočila. Zaščita pred razbitjem kodiranega sporočila temelji pri IDEA algoritmu na štirih karakteristikah:

1. Dolžina podatkovnega bloka sporočila mora biti najmanj toliko dolga, da onemogoča kakršnokoli statistično analizo pogostnosti pojave posameznih blokov v osnovnem sporočilu. Po drugi strani pa kompleksnost kodiranja eksponentno narašča z dolžini podatkovnega bloka sporočila. Izkaže se, da je v primeru IDEA algoritma optimalna dolžina bloka 64 bitov.

2. Dolžina kodirnega ključa otežuje razbitje kodiranega sporočila z iskanjem pravega ključa, pri čemer imamo v tem primeru 1282 možnih kodirnih ključev.

3. Vnos zmede v kodirni algoritem povečuje kompleksnost statistične določitve pogostnosti pojava nekega kodirnega niza na osnovi statistične določitve pogostnosti pojava nekega niza v osnovnem sporočilu. Pri IDEA algoritmu to karakteristiko vnesemo z uporabo treh bitno orientiranih operacij kot so XOR operacija ( ⊕ ), seštevanje po modulu 162 ( ) in množenjem po modulu 1216 + ( ).

4. Razpršitev predstavlja vpliv kateregakoli bita v sporočilu in kodirnem ključu ma množico bitov v kodiranem sporočilu, kar onemogoča, da bi na osnovi kodiranega sporočila pridobili kakršnekoli lastnosti osnovnega sporočila.

Primer operacije seštevanja po modulu 162 :

0000000000000000 1000000000000000 = 1000000000000000

( ) ( ) 15161516 22mod22 =+

Primer operacije množenja po modulu 1216 + :

0000000000000000 1000000000000000 = 1000000000000001

( ) 12)12mod(22 15161516 +=+⋅

Page 9: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

9

IDEA kodiranje se izvaja v osmih iteracijah ter v eni izhodni transformaciji. Na vhodni strani se originalni 64 bitni paket sporočila sukcesivno razdeli v štiri podpakete. Iz 128 bitnega kodirnega ključa se pridobi najprej osem 16 bitnih ključev, potem se izvede krožni bitni pomik v levo za 25 bitov, in se iz rezultata bitnega pomika pridobi novih osem 16 bitnih ključev. Opisani postopek se konča ko pridobimo 52 delnih kodirnih ključev Z1..Z52, ki jih uporabljamo v posameznih iteracijah ter izhodni transformaciji, kot prikazuje slika 3.4.

Slika 3.4: Blokovni diagram IDEA kodiranja Dekodirni postopek je obraten kodirnemu postopku in se vrši v obratnem vrstnem redu. Podrobnosti v zvezi z zgradbo iteracije ter izhodne transformacije so podani v [3]. Na tem mestu velja omeniti, da je IDEA algoritem patentiran, zato se lahko uporablja le ob plačilu licenčnine. Poleg IDEA algoritma, ki trenutno predstavlja najboljšo konvencionalno rešitev pri zagotavljanju zaupnosti podatkov, je bil leta 1993 predstavljen SKIPJACK algoritem s strani ameriške administracije, katerega vsebina je strogo zaupna zaradi njegove namembnosti. SKIPJACK algoritem poleg zagotavljanja zaupnosti in pristnosti uporabnikom, omogoča tudi dekodiranje kodiranih podatkov in tako nadzor nad informacijami, ki pa jih izvajajo samo posamezne pooblaščene vladne službe. Simetrične kodirne metode lahko uporabljamo v različnih načinih povezav, ki zagotavljajo uporabo predstavljenih kodirnih algoritmov v različnih aplikacijah. Tabela 3.1[4] prikazuje značilnosti posameznih načinov uporabe ter njihove aplikacije.

64 bitni podatkovni paket

Iteracija 1

Izhodna transformacija

Iteracija 8

Iteracija 2

X1 X2 X3 X4

W11 W12 W13 W14

W21 W22 W23 W24

W71 W72 W74 W73

W81 W82 W83 W84

Y1 Y2 Y3 Y4

Z1

Z6

Z7

Z43

Z49

Z12

Z52

Z48

64 bitni kodiran podatkovni paket

Page 10: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

10

Način povezave kodirnih blokov Lastnosti Aplikacije

Elektronski kodni zapis (ECB)

Vsak bitni blok podatkov je kodiran neodvisno z istim ključem

Enkratni prenos kratkih sporočil Npr: prenos kodirnega ključa

Veriženje kodirnih blokov (CBC)

Vhod v kodirni blok je XOR opearcija bloka sporočila z

kodiranim predhodnjim blokom sporočila

Splošen blokovno orientiran prenos podatkov z preverjanjem pristnosti

Kodiranje z prejšnjim kodiranim blokom (CFB)

Prejšnji kodiran blok sporočila je vhod v kodirni blok izhod pa XOR

operacija z naslednim blokom sporočila in rezultatom prejšnjega

kodiranja

Splošen prenos znakovno orientiranega sporočila, preverjanje

pristnosti

Kodiranje s prejšnjim izhodnim blokom (OFB)

Enako kot pri CFB, le da je vhod v kodirni blok izhod prejšnjega

kodirnega bloka

Splošen prenos znakovno orientiranega sporočila preko

zašumljenega kanala

Tabela 3.1: Načini uporabe simetričnih kodirnih algoritmov

3.2 Asimetrične kodirne metode Asimetrične kodirne metode temeljijo na osnovi matematičnih funkcij in ne na osnovi zamenjav in permutacij, ki so značilne za simetrične kodirne metode. Najbolj pomembna lastnost asimetričnih kodirnih metod je obstoj para različnih kodirnih ključev. Za uspešno kodirno – dekodirno operacijo sta pri asimetričnih kodirnih metodah pomembna oba ključa, privatni (KR) in javni (KU). Obstoj dveh ključev pa za seboj potegne določene spremembe pri zagotavljanju zaupnostjo sporočil, razdeljevanju javnih ključev in preverjanju pristnosti subjektov, ki sodelujejo pri izmenjavi sporočil. Slika 3.5 prikazuje osnoven način izmenjave sporočil z uporabo asimetrične kodirne metode. V praksi zgoraj omenjene varnostne elemente zagotavlja hkratna uporaba treh različnih aplikacij:

• Kodiranje/dekodiranje, pošiljatelj kodira sporočilo z prejemnikovim javnim ključem. • Digitalni podpis, pošiljatelj k sporočilu doda s svojim privatnim ključem kodirano sporočilo oz.

digitalni podpis, ki ga generira posebna servirna funkcija (Hash function). Prejemnik s pošiljateljevim javnim ključem dekodira dodatek k sporočilu in primerja rezultat dekodiranja z rezultatom, ki ga na osnovi preostalega dela sporočila generira enaka servirna funkcija, ter tako prever pristnost prejetega sporočila in identificira pošiljatelja.

• Razdeljevanje ključev, je postopek pridobitve ključa seje, ki je pri asimetričnih kodirnih metodah izredno pomemben, saj predstavlja osnovo varnosti sistema ter osnovo za uspešno zagotavljanje zaupnosti ter pristnosti pri izmenjavi sporočil.

Slika 3.5: Izmenjava kodiranih sporočil pri asimetrični kodirni metodi

V tabeli 3.2 imamo prikazane nekatere osnovne in v praksi najbolj uporabljane asimetrične kodirne algoritme ter pripadajoče aplikacije, ki jih posamezni algoritmi podpirajo. V uvodu te seminarske naloge smo povedali, da bo cilj te seminarske naloge izbrati kodirno metodo, ki bo zagotavljala preverjanje pristnosti pri prenosu podatkov v arhitekturi, kjer imamo eno nadrejeno enoto in več podrejenih enot. Ob tem bo izredno pomemben kriterij tudi

Izvor sporočila

Kodiranje Dekodiranje Ponor sporočila

X Y X

KUb KRb

A B

Page 11: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

11

kompleksnost metode, ki ne sme biti procesorsko preveč potratna, če jo želimo realizirati na sistemu relativno majhne procesorske moči.

Algoritem Kodiranje/Dekodiranje Digitalni podpis Razdeljevanje ključev RSA Da Da Da LUC Da Da Da DSS Ne Da Ne

Diffie – Hellman Ne Ne Da

Tabela 3.2: Aplikacije, ki ji podpirajo različni asimetrični kodirni algoritmi

3.2.1 Algoritem RSA Pri in tudi najbolj znan asimetrični kodirni algoritem je nastal leta 1978 in je dobil ime po svojih izumiteljih (Rivest – Shamir – Adleman)[5]. Algoritem temelji na celoštevilski algebri ob izkoriščanju lastnosti zelo velikih praštevil. Običajna velikost praštevil, ki se uporabljajo v podobnih asimetričnih algoritmih je 15 bytov. Osnovno sporočilo je pri RSA algoritmu kodirano v več blokih od katerih je binarna vrednost bloka manjša od nekega poljubnega števila n . Kodiranje in dekodiranje lahko zapišemo v obliki dveh enačb (3.2) in (3.3):

)mod(nMC e= (3.2)

)mod(nCM d= (3.3)

Iz zgornjih enačb lahko vidimo, da morata tako pošiljatelj kot tudi prejemnik sporočila poznati število n , medtem ko mora pošiljatelj poznati še število e , prejemnik pa število d . Torej v splošnem temeljijo asimetrični kodirni algoritmi na poznavanju javnega ključa { }neKU ,= in privatnega ključa { }ndKR ,= . Ta dva ključa pa morata izpolnjevati določene zahteve:

1. Osnovni pogoj : možno je najti takšna števila nde ,, tako, da velja )mod(nMM ed = za vsak nM < .

2. Na osnovi poznavanja števil e in d , mora biti relativno enostavno izračunati eM in dC . 3. Na osnovi poznavanja števil e in n , mora biti zelo težko ali nemogoče ugotoviti število d .

Sledi še opis postopka za generiranje obeh ključev, kodiranja ter dekodiranja sporočila.

1. Določi dve praštevili npr.: 7=p in 17=q 2. Izračunaj 119177 =⋅=⋅= qpn 3. Izračunaj 96)1()1()( =−⋅−=Φ qpn 4. Določi e tako, da je e relativno praštevilo števila 96)( =Φ n in hkrati manjši od )(nΦ . Dve števili sta

relativni praštevili natanko takrat, ko je njun največji skupni delitelj enak 1.

15 3296 ⋅= , vidimo da so naslednja praštevila 5, 7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83 in 89, ki niso vsebovana v produktu in so hkrati tudi manjša od 96, zato so to možna relativna praštevila, ki bi bila enaka številu e . 5. Določi število d tako, da izpolnjuje zahtevi: ))(mod(1 ned Φ=⋅ in hkrati )(nd Φ< . Prava vrednost v

našem primeru je 77=d , ker je 1964385577 +⋅==⋅ . V zgornjih petih korakih določimo oba ključa in sicer javni { }119,5=KU in privatni { }119,77=KR . Sledi še kodiranje sporočila M .

6. 19=M in nM < , 2476099195 ==eM . Kodirano sporočilo C dobimo na osnovi enačbe (3.2), ki jo lahko preberemo tudi takole: “Najdi takšen celoštevilčen pozitiven ostanek C, da bo seštevek tega

Page 12: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

12

ostanka ter produkta nq ⋅ dalo rezultat eM , pri čemer je q neko pozitivno celo število. ” V našem primeru je 20807=q in ostanek 66=C .

Šesti korak opisan zgoraj lahko na osnovi enačbe (3.3) uporabimo analogno tudi pri dekodiranju sporočila in ga lahko opišemo tudi takole: ''Najdi takšen celoštevilčen pozitiven ostanek M , da bo seštevek tega ostanka ter produkta nq ⋅ dalo rezultat dC , pri čemer je q neko pozitivno celo število. Pri asimetričnih kodirnih metodah, imamo dve implementacijsko izjemno zahtevni operaciji nad pozitivnimi celimi števili, in sicer izbrati dve veliki praštevili v relativno širokem definicijskem območju, ter izračunati potenco števila, ki je običajno potenciran z veliko vrednostjo. Naslednji algoritem ponuja rešitev tega problema ter omogoča praktično implementacijo: Algoritem za izvedbo kodiranja in dekodiranja pri RSA V splošnem želimo izračunati vrednost potence ma , pri čemer sta a in m pozitivni celi števili. Če število m zapišemo v dvojiški obliki, kot zaporedje k bitov 01 ,..., bbb kk − , potem velja:

∑≠

=0

2ib

im (3.4)

iz tega sledi:

)mod()mod(0

)2( nanai

i

b

m

= ∏

(3.5)

na osnovi lastnosti modula celoštevilčne aritmetike lahko izraz (3.5) zapišemo tudi takole:

[ ]∏≠

=0

)2( )mod()mod(i

i

b

m nana (3.6)

Izraz (3.6) uporabimo pri implementaciji algoritma za hitro celoštevilčno potenciranje z modulom, ki ga je predlagal [6] in je napisan v programskem jeziku C:

Na osnovi implementacije algoritma rešimo nalogo, ki predstavlja popolno preslikavo našega problema, ki ga zapišemo v obliki enačb (3.2) ali (3.3):

c = 0; d = 1; for (i = k; i >= 0; i--) {

c = 2 * c; q = 0; D1 = d * d; while (q * n < D1)

{ ++q;

} --q; d = D1 – q * n; if (b(i) == 1) { ++c; q = 0; D2 = d * a; while( q * n < D2)

{ ++q;

} --q; d = D2 – q * n;

} } return (d);

Page 13: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

13

)1102mod(21113=d .

Tabela 3.3 prikazuje delne rešitve problema v posameznih iteracijah, medtem ko je prava rešitev d zgornjega izraza v stolpcu kjer 0=i .

i 6 5 4 3 2 1 0

ib 1 1 1 0 0 0 1 c 1 3 7 14 28 56 113 d 21 445 679 405 929 175 659

Tabela 3.3: Rezultat algoritma za hitro celoštevilčno potenciranje modula

Seveda je zgornji primer trivialen, saj nastopajo v njem relativno majhna cela števila saj je npr. število n sestavljeno le iz šestih bitov. V realnih RSA algoritmih je običajno to število lahko dolgo tudi več sto bitov. Vendar pa je implementacija zgornjega algoritma, če ji seveda dodamo še rutine, ki obvladajo velika cela števila, dobra osnova za uporabo tudi v aplikacijah digitalnega podpisa. Za popolno sintezo RSA algoritma ostane še določitev obeh poljubnih praštevil p in q , ki morata biti primerno veliki, če želimo zagotoviti, da bi bilo na osnovi poznavanja števila qpn ⋅= težko ali celo nemogoče določiti obe praštevili. Običajno je pri iskanju praštevila postopek tak, da z naključnim generatorjem generiramo neko naključno liho število ter potem z verjetnostno metodo ugotovimo z določeno zanesljivostjo ali je to število praštevilo ali ne. Če ugotovimo, da to število ni praštevilo, potem generiramo novo število in postopek tako dolgo ponavljamo, dokler ne najdemo praštevila. Poznamo več različnih verjetnostnih testov ali je izbrano število praštevilo ali ne in so predstavljeni v literaturi[7]. V praksi pa se daleč najbolj uporablja Miller – Rabin algoritem[8]. Algoritem za preverjanja ali je število praštevilo: Miller – Rabinov algoritem je zelo pomemben zato ga poglejmo bolj podrobno. Predpostavimo, da je p neko praštevilo. Na osnovi teorije vemo, da je praštevilo deljivo samo z številom 1 in –1 ter samo s sabo. Na osnovi tega lahko zapišemo identiteto (3.7):

)mod(12 px ≡ (3.7),

ta identiteta ima dve rešitvi in sicer 11 =x in 12 −=x . Dokaz: Identiteto (3.7) lahko zapišemo tudi v drugačni obliki:

)mod(0)1)(1()mod(012

pxxpx

≡−+≡− (3.8)

Na osnovi pravil celoštevilčne aritmetike vemo, da identiteta (3.8) velja le v primeru, ko je p delitelj )1( +x ali delitelj )1( −x ali pa delitelj obeh hkrati. Če predpostavimo, da je p delitelj obeh polinomov potem veljata enačbi (3.9) in (3.10), pri čemer sta k in j dve poljubni celi števili.

pkx ⋅=+ )1( (3.9) pjx ⋅=− )1( (3.10)

Če enačbo (3.10) odštejemo od enačbe (3.9) dobimo enačbo (3.11).

pjk ⋅−= )(2 (3.11) Enačba (3.11) je izpolnjena le v primeru, če je 2=p . Iz tega sledi, da je v primeru, če je p praštevilo, lahko samo delitelj enega od obeh polinomov )1( −x ali )1( +x , za dano rešitev x , in nikakor ne obeh. Če teorem

Page 14: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

14

obrnemo in predpostavimo, da obstaja rešitev identitete (3.7), ki je različna od 1± , potem p ni praštevilo. Zgoraj predstavljeno teorijo uporabimo pri implementaciji hitre metode za testiranje ali je število praštevilo po Miller – Rabinu [8], napisane v programskem jeziku C: V zgornjem programu je n morebitno praštevilo, a je poljubno pozitivno celo število, ki je manjše od n. b pa je binarna predstavitev izraza (n –1). Zgoraj predstavljen program ponavljamo v s iteracijah, pri čemer v vsaki iteraciji izberemo novo število a. Če funkcija vrne v katerikoli iteraciji vrednost FALSE, potem to pomeni, da n ni praštevilo, če pa funkcija v s iteracijah vrne vrednost TRUE, potem to pomeni, da lahko z gotovostjo s−− 21 trdimo, da je n praštevilo. Običajno število iteracij je 50≥s . Algoritem iskanja največjega skupnega delitelja dveh pozitivnih celih števil Zadnji matematični element RSA algoritma je iskanje največjega skupnega delitelja dveh pozitivnih celih števil. Za rešitev tega problema uporabimo Euclidov algoritem, ki temelji na naslednjem teoremu: Za vsak par dveh pozitivnih celih števil lahko najdemo tak največji skupni delitelj (nsd), da velja enačba (3.12).

))mod(,(),( babnsdbansd = (3.12)

d = 1; for (i=k; i <= 0; i—) { x = d; q = 0; D1 = d * d; while (q * n < D1) { ++q; } --q; d = D1 – q * n; if ((d == 1) && (x != 1) && (x != (n –1))) { return(FALSE); } if (b( i) == 1) { q = 0; D2 = d * a; while (q * a < D2) { ++q; } --q; d = D2 – q * n; } } if (d != 1) { return(FALSE); } else { return(TRUE); }

Page 15: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

15

Če vemo da obstaja neko pozitivno celo število ),( bandsd = , potem lahko enačbo (3.12) predstavimo tudi v naslednji obliki:

)mod(babkrbka +⋅=+⋅= (3.13) Enačba (3.13) torej pravi: če obstaja nek skupni delitelj števil a in b , potem je le ta enak številu k takrat ko je vrednost )mod(ba enaka nič. Enačbo (3.12) uporabimo v več iteracijah tako dolgo dokler ni eno izmed obeh števil v izrazu ),( bansd enako nič. Na začetku izvajanja algoritma je potrebno paziti da je število ba > . Primer:

1)0,1()1,11()10,11(

6)0,6()6,18()12,18(

===

===

nsdnsdnsd

nsdnsdnsd

Spodaj je napisan program Euklidovega algoritma [4] v programskem jeziku C: Vhod v zgornji program sta dve števili a in b , katerih največji skupni delitelj iščemo. Sedaj, ko so predstavljena vsa orodja za reševanje problemov, ki jih srečamo v posameznih sklopih RSA algortima naredimo še končni povzetek RSA algoritma kot se izvaja po sklopih v nekem praktičnem primeru.

If (a > b) { X = a; Y = b; } else { X = b; Y = a; } if (Y == 0) { return (X); } while (Y != 0) { q = 0; while (q * Y < X) { ++q; } --q; R= X – q * Y; X = Y; Y = R; } return(X);

Page 16: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

16

3.2.2 Algoritem LUC LUC[9] je algoritem, ki ga je leta 1993 razvila skupina raziskovalcev na Novi Zelandiji. V nekaterih segmentih je sicer podoben RSA, vendar je bistvena razlika v tem, da kodiranje oz. dekodiranje ne temelji na potenciraju, kot je to značilno za RSA algoritem ampak na izračunu dveh velikih pozitivnih celih števil Lucasovega zaporedja, ki ga je utemeljil leta 1878 Eduard Lucas. Definicija Lucasovega zaporedja Določimo dve pozitivni celi števili P in Q in z njima zapišemo kvadratno enačbo:

02 =+− QPXX (3.14)

Rešitev enačbe (3.14) nam da korena α in β ,

2DP +

=α in 2

DP −=β

pri čemer je D diskriminanta QPD ⋅−= 42 . Elementi Lucasovega zaporedja so definirani na osnovi enačb (3.15) in (3.16).

βαβα

−−

=nn

n QPU ),( (3.15)

nnn QPV βα +=),( (3.16)

Generiranje ključev

Izberi praštevili p in q ter preveri če sta res praštevili Izračunaj produk qpn ⋅= Iračunaj produkt )1()1()( −⋅−=Φ qpn Določi pozitivno celo število tako da velja 1)),(( =Φ dnnsd , pri čemer velja )(1 nd Φ<<

Izračun e na osnovi enačbe ))(mod(1 nde Φ= − Zpiši javni ključ { }neKU ,= Zapiši privatni ključ { }ndKR ,=

Kodiranje sporočila

Originalno sporočilo: nM < Kodirano sporočilo: )mod(nMC e=

Dekodiranje sporočila

Kodirano sporočilo: C Originalno sporočilo: )mod(nCM d=

Page 17: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

17

Zelo hitro lahko ugotovimo, da so elementi PQPVQPVQPUQPU ==== ),(,2),(,1),(,0),( 1010 , medtem je možno oba racionalna izraza (3.15) in (3.16) za 2≥n preurediti v bolj praktično obliko.

),(),(),( 21 QPVQQPVPQPV nnn −− ⋅−⋅= (3.17) ),(),(),( 21 QPQUQPUPQPU nnn −− −⋅= (3.18)

Ker je bila večina orodij za reševanje problemov na katere naletimo pri LUC predstavljena že pri RSA algoritmu, naredimo le še povzetek LUC algoritma, in nato dodamo še orodja, ki jih v svoji različnosti v primerjavi z RSA zahteva LUC algoritem. V tretjem koraku pri generiranju ključa naletimo na prvi problem, ki ga še nismo srečali in sicer potrebno je določilti oziroma izbrati število e , ki je relativno praštevilo produktov. Dve števili sta relativni števili natanko takrat, ko je njun največji skupni delitelj 1. Za rešitev tega problema lahko uporabimo algoritem, ki smo ga uporabili že pri RSA algoritmu in je služil za rešitev izraza (3.6) . V primerjavi z vhodnimi vrednostmi a in n v omenjenem algoritmu, dobi a v tem primeru vlogo števila, kateremu želimo poiskati relativno praštevilo medtem, ko n dobi vlogo naključno izbranega pozitivnega celega števila za katerega želimo preveriti ali je to število relativno praštevilo števila a. Pri tem pazimo, da velja neenakost an < . V tem primeru mora biti izpolnjena identiteta (3.19), če je katerokoli izmed števil a in n praštevilo, ali pa identiteta (3.20), če število a in hkrati število n nista praštevili.

)mod(11 na n ≡− (3.20)

)mod(1 na n ≡ (3.21)

V petem koraku naletimo na funkcijo nsv , katere namen je najti število, ki predstavlja najmanjši skupni večkratnik obeh argumentov. Funkcija nsv je definirana takole:

Generiranje ključev

1. Določi dve pozitivni števili p in q , ter preveri če sta praštevili 2. Izračunaj N qpN ⋅= 3. Določi pozitivno celo število e tako, da velja izraz : [ ] 1),1)(1)(1)(1( =++−− eqpqpnsd

4. Izračunaj D 42 −= PD

5. Izračunaj )(NS

−=

qDq

pDpnsvNS ,)(

6. Izračunaj d ))(mod(1 NSed −= 7. Določi javni ključ { }NeKU ,= 8. Določi privatni ključ { }NdKR ,=

Kodiranje sporočila Originalno sporočilo: NP < Kodirano sporočilo: )mod()1,( NPVC e=

Dekodiranje sporočila

Kodirano sporočilo: C Originalno sporočilo: )mod()1,( NCVP d=

Page 18: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

18

),(),(

bansdbabansv ⋅

= (3.19)

Potrebno je najprej s pomočjo Euklidovega teorema in pripadajočega algoritma določiti najmanjši skupni delitelj števil a in b in nato rešiti enačbo (3.20).

)),(mod(0 bansdba ⋅= (3.20)

3.2.3 Diffie – Hellman –ov princip izmenjave ključev Diffie – Hellman – ov princip izmenjave ključev[10] je bil prvič predstavljen leta 1976 in temelji na ideji kako uporabiti lastnosti asimetričnih kodirnih metod pri distribuciji skrivnega ključa, ki ga uporabljata objekta za kodiranje sporočil pri uporabi simetričnih kodirnih metod. Kot je bilo omenjeno je največja pomanjkljivost simetričnih kodirnih metod distribucija skrivnega ključa. Ta metoda omogoča da subjekti sami določijo skrivni ključ in ga po potrebi tudi periodično spreminjajo, kar zelo poveča varnost pred morebitnimi napadi. Spodnja slika prikazuje osnoven princip generiranja skrivnega ključa pred začetkom izmenjave sporočil med dvema objektoma.

Slika 3.5: Diffie – Hellman-ov princip izmenjave skrivnih ključev

Edina zahteva, ki se pojavlja pri Diffie – Hellman – ovem principu izmenjave ključev je, da morajo vsi objekti, ki želijo medsebojno izmenjevati sporočila deliti enako praštevilo q ter število α , ki predstavlja osnovni koren števila q . Število α je osnovni koren praštevila p natanko takrat, ko lahko za katerokoli pozitivno celo število b ,v območju )1(1 −≤≤ pb , najdemo natanko en eksponent (pozitivno celo število) v območju )1(0 −≤≤ pi . Števil, ki so osnovni koreni v območju od 1 do )1( −p je več , njihovo število pa je odvisno od velikosti praštevila p . Princip določitve števila α , je takšen, da najprej izberemo neko celo pozitivno število a ter izračunamo vse vrednosti izraza (3.12), pri čemer je )1(0 −≤≤ pi . Pri čemer je število a osnovni koren števila p natanko takrat ko se v zaporedju števil b , ki jih generira izraz (3.12) pojavi število 1 natanko in samo tedaj,

ko je )1( −= pi . Iz množice števil a , ki so osnovni koreni števila p , naključno izberemo nek ka=α . Vsi ostali algoritmi, ki jih še potrebujemo pri Diffie – Hellman – ovem principu izmenjave ključev, so predstavljeni v prejšnjih podpoglavjih.

Generiranje privatnega ključa:

qX i < Izračun javnega ključa:

)mod(qY iXi α=

Izračun skrivnega ključa:

)mod()( qYK iXj=

Generiranje privatnega ključa: qX j < Izračun javnega ključa:

)mod(qY jXj α=

Izračun skrivnega ključa:

)mod()( qYK jXi=

iY

jY

Objekt i Objekt j

Page 19: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

19

3.2.4 Hash funkcije (servirne funkcije) Hash funkcije se uporabljajo pri tvorbi digitalnega podpisa, ki je osnovni element sporočila na podlagi katerega se odkriva pristnost pošiljatelja. Glavna lastnost Hash funkcije je pretvorba sporočila poljubne dolžine v digitalni podpis fiksne vnaprej določene dolžine. Danes v praksi srečamo predvsem dve hash funkciji, MD5 in SHA-1, ki je del DSS aplikacije za generiranje digitalnega podpisa. V nadaljevanju je bolj podrobno opisan SHA-1 algoritem. SHA funkcija: SHA (Secure Hash Algorithm) je leta 1993 predstavil National Institute of Standards and Technology (NIST) in ga objavil v okviru standarda za prenos podatkov (FIBS PUB 180). Osnovo za SHA predstavlja leta 1990 prestavljeni MD4 algoritem avtorja Rona Riversa. Glavna značilnost algoritma je pretvorba vhodnega sporočila katerega dolžina mora biti manjša od 642 bitov v izhodni 160 bitni digitalni podpis, pri čemer se vhodno sporočilo razdeli v 512 bitne bloke. Algoritem se izvede v petih korakih. Korak 1: Dodanje dopolnitvenih bitov Dodajanje dopolnitvenih bitov pri razdelitvi vhodnega sporočila v 512 bitne bloke. Osnovnemu sporočilu dolžine n se doda enka potem pa še dodatne ničle v številu od 1..512. Dopolnitvene bita dodajamo tudi v primeru, ko je število bitov v sporočilu že enaka večkratniku števila 512. Korak 2: Dodajanje bitnega polja za zapis dolžine osnovnega sporočila Bitno polje je dolgo 64 bitov in predstavlja zapis celega števila v binarni obliki, pri čemer to število predstavlja dolžino osnovnega sporočila pred dodajanjem dopolnitvenih bitov. Po drugem koraku je osnovnemu sporočilu dodan bit 1, zahtevano število ničelnih bitov in 64 bitov dolžine osnovnega sporočila. Po tem koraku je torej izdelano novo sporočilo, ki je dolgo 512⋅L bitov. Korak3: Inicializacija predpomnilnika digitalnega podpisa Pomemben del SHA je 160 bitni predpomnilnik digitalnega podpisa, ki služi za hranjenje vmesnih ter končne izhoda vrednosti Hash funkcije. Predpomnilnik je sestavljen iz petih 32 bitnih pomnilniških enot, katerih začetne vrednosti so naslednje: A = 67452301h B = EFCDAB89h C = 98BADCFEh D = 10325476h E = C3D2E1F0h

Slika 3.6: Generiranje digitalnega podpisa z SHA

L * 512 bitov

HSHA HSHA HSHA HSHA

Y0 Y1 Yq YL-1

ABCD

512 512 512 512

K

100…0

DSporočilo

160 bitni Digitalni

Page 20: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

20

Korak 4: Procesiranje sporočila v 512 bitnih blokih in generiranje 160 bitnega digitalnega podpisa Glavni del SHA so posamezne HSHA celice, ki so prikazane na sliki 3.6 in so sestavljene iz 80 enakih elementarnih funkcij SHA. V vsaki izmed 80. elementarnih funkcijah so vhodni parametri trenutna vrednost 160 bitnega predpomnilnika, 512 bitni paket sporočila in 32 bitni ključ tK . Vrednosti ključev tK so naslednje: 190 ≤≤ t 8279995AK t = 3920 ≤≤ t 196 EBAEDK t = 5940 ≤≤ t BBCDCFK t 18= 7960 ≤≤ t 6162 DCCAK t = Izhod vsake iteracije predstavlja funkcijo, ki jo lahko zapišemo v obliki aritmetično logičnih operacij med vhodnimi elementi:

DCBCLSAKWEDCBfACLSDCBA ttt ,),(,),),,()((,,, 305 ++++← (3.21)

pri čemer so v enačbi (3.21) A,B,C,D = pet 32 bitnih besed predpomnilnika, T = iteracija pretvorbe, Ft = osnovna logična funkcija, CLSs = krožno pomikanje 32 bitnega argumenta za s bitov v levo, Wt = 32 bitna beseda, ki jo pridobimo iz 512 bitnega vhodnega bloka, Kt = ključ iteracije, + = seštevanje po modulu 2

4. Sinteza sistema za preverjanje pristnosti kot del sistema za vzpostavitev in upravljanje omrežja AMR enot

Cilj sinteze bo vzpostaviti sistem za preverjanje pristnosti objektov AMR sistema v fazi vzpostavitve logičnih

povezav med objekti in pri prenosu podatkov med več podrejenimi enotami in eno nadrejeno enoto. Slika 4.1 prikazuje tipično AMR omrežje.

Slika 4.1: Koncept sistema AMR

Page 21: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

21

4.1 Avtonomna vzpostavitev in prekinitev logičnih povezav med enotami AMR omrežja

Protokol pri avtonomni vzpostavitvi logičnih povezav med enotami AMR omrežja je prilagojen lastnostim DLC in RF prenosnega medija, katerih glavna lastnost je relativna nestabilnost kvalitete prenosnega kanala. Takšne lastnosti prenosnega kanala seveda otežujejo prenos podatkov zato je potrebno pri prenosu podatkov po takšnem mediju uporabiti dobro metodo za preverjanje pravilnosti pri prenosu podatkov in zagotoviti določeno stopnjo redundance pri prenosu podatkovnih sporočil. Avtonomno vzpostavitev in prekinitev logične povezave med nadrejeno in podrejeno enoto vrši demonski proces. Njegovi glavni nalogi sta s pomočjo petih kratkih mrežno orientiranih sporočil vzpostaviti logično povezavo, ki prestavlja vpis identifikacijske številke podrejene enote v bazo nadrejeni enoti pripadajočih podrejenih enot (PPE). Poleg tega pa zagotoviti vpis identifikacije številke nadrejene enote v bazo podrejeni enoti pripadajočih nadrejenih enot (PNE). Nabor petih mrežno orientiranih sporočil je minimalni nabor sporočil, ki zagotavlja konsistentnost med vsebinama PPE in PNE. Druga naloga demonskega procesa je prekinitev logične povezave med nadrejeno in podrejeno enoto s pomočjo dveh mrežno orientiranih sporočil. Slika 4.2 prikazuje postopek vzpostavitve in prekinitve logične povezave. Proces vzpostavitve logične povezave: Proces prekinitve logične povezave:

Slika 4.2: Vzpostavitev in prekinitev logične povezave

Postopek za preverjanje pristnostnosti pri vzpostavitvi logične povezave med nadrejeno in podrejeno enoto poteka v treh korakih: Korak 1: V začetku predpostavimo, da že obstaja povezava, ki zagotavlja zaupnost in preverjanje pristnosti med nadrejeno enoto AMR sistema ter centralno nadzorno enoto, ki vsebuje sistem za odbiranje, hranjenje in obračunavanje merilnih rezultatov. Po priključitvi nadrejene enote v AMR sistem le ta izbere svoj 56 bitni skrivni kodirni ključ in ga prepiše v avtorizirano prenosno terminalno napravo, ki jo operater uporablja pri fizični montaži podrejene enote v AMR sistem.

Nadrejena enota

Podrejena enota

Find request

Find_respond

Install_request

Install_respond

Install_confirm

Logična povezava vzpostavljena

Logična povezava vzpostavljena

Nadrejena enota

Podrejena enota

Logična povezava prekinjena

Logična povezava prekinjena

Deinstall_request

Deinstall_confirm

Page 22: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

22

Korak 2: Pri fizični montaži podrejene enote v AMR sistem operater poleg ostalih konfiguracijskih parametrov v podrejeno enoto vpiše tudi skrivni ključ nadrejene naprave, ki ga bo podrejena enota uporabljala pri preverjanju pristnosti v procesu vzpostavitve prve logične povezave. Korak 3: Po vzpostavitvi logične povezave nadrejena in podrejena enota izmenjata svoja javna ključa in po Diffie - Hellman – ovem principu (3.2.3) izračunata skrivni ključ, ki ga bosta uporabljala, do nove izmenjave javnih ključev, za kodiranje digitalnega podpisa po DES algoritmu. Ko sta nova skrivna ključa na voljo se za preverjanje pristnosti pri prenosu podatkov uporablja shema, ki jo predstavlja slika 4.3.

Slika 4.3: Preverjanje pristnosti pri prenosu podatkov Proces prekinitve logične povezave se izvaja v dveh primerih in sicer v primeru okvare podrejene enote in njeni fizični zamenjavi, po kateri je postopek vzpostavitve nove logične povezave enak zgoraj opisanemu, ter v primeru ko želimo, da podrejena enota začne pripadati drugi nadrejeni enoti.

4.2 Avtonomno vzrževanje logične povezave med nadrejeno in podrejeno enoto

Vzdrževanje logične povezave med nadrejeno in podrejeno enoto je potrebno zaradi relativno slabih lastnosti prenosnega medija, saj je potrebno pred vsakim prenosom podatkov določiti, katere podrejene enote bodo delovale v repetitorskem načinu delovanja ter potrebno redundanco pri prenosu podatkov. V ta namen uporabimo dve mrežno orientirani sporočili (slika 4.4), ki ju lahko uporabimo tudi za prenos javnih ključev. Seveda je tudi pri teh dveh sporočilih dodan digitalni podpis za preverjanje pristnosti.

Slika 4.4: Osvežitev logične povezave

H E

K

M M M

D

K

H

Primerjava

M = sporočilo H = hash funkcija E = kodiranje D = dekodiranje K = skrivni ključ

Nadrejena enota

Podrejena enota

Logična povezava osvežena

Logična povezava osvežena

Fork_request

Fork_respond

Page 23: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

23

5. Zaključek

Opisani sistem za preverjanje pristnosti predstavlja kombinacijo metode za izmenjavo skrivnih ključev po Diffie– Hellmanovem principu ter DES algoritem za kodiranje digitalnega podpisa, ki ga generiramo s standardno SHA – 1 hash funkcijo. Na ta način rešimo problem distribucije skrivnih ključev med nadrejeno in podrejeno enoto ter preprečimo pošiljanje lažnih sporočil s strani napadalca v podrejeno enoto (lažno parametriranje) ali nadrejeno enoto (lažni podatki o porabi moči,vode itd…). Slaba oziroma problematična operacija pri tej obliki zaščite je generiranje privatnega in javnega ključa na strani podrejene enote, saj je procesorska moč CPE v podrejeni enoti običajno precej manjša kot v nadrejeni enoti in je zato ta operacija lahko časovno problematična. Teoretične osnove predstavljene v tej seminarski nalogi bodo osnova pri sintezi sistema za preverjanje pristnosti pri novi generaciji elektronskih števcev porabe moči po standardu DLMS [11].

Page 24: Sistem za preverjanje pristnosti objektov …Seminarska naloga Magistrski študij elektrotehnike 5 zaznati prisotnost lažnih in izgubo ali spremembo resničnih sporočil. Element

Seminarska naloga Magistrski študij elektrotehnike

24

Dodatek A: Literatura: [1] Feistel H., “Cryptography and Computer Privacy.” Scientific American, May 1973. [2] Tuchman W., “Hellman Presents No Shortcut Solutions to DES.” IEEE Spectrum, July 1979. [3] Lai X. and Massey J., “Markov Chipers and Differential Cryptanalysis.” Proceedings, EUROCRYPT 1991, Springer-Verlag. [4] Stallings W., “Network and Internetwork Security, Priciples and Practice.” 1995, IEEE Press, Prentice –Hall. [5] Rivest R., Shamir A. and Adleman L., “A Method for Obtaining Digital Signatures and Public Key Cryptosistems”, Communications of the ACM, February 1978. [6] Cormen T., Leiserson C. and Rivest R., “Introduction to Algorithms.” Cambridge MA, MIT Press 1990. [7] Knuth D., “The Art of Computer Programming, Volume 1: Fundamental Algorithms.” Addison – Wesley, 1981. [8] Miller G., “Riemann’s Hypothesis and Tests form Primality.” Proceedings of the Seventh Annual ACM Symposium on the Theory of Computing, May 1975. [9] Smith P., “LUC Public Key Encryption: A Secure Alternative to RSA.” Dr. Bobb’s Journal, January 1993. [10] Diffie W. and Hellman M., “Multiuser Crptographic Techniques.” Proceedings of the AFIPS National Computer Conference, June 1976. [11] DLMS User Association, “COSEM Identification System and Interface Objects.” Fourth Edition 2001.