36
A Spi kalkulus Ács Gergely [email protected] Neptun-kód: K4C03M Soós Máté [email protected] Neptun-kód: H0VTMJ Konzulens: Dr. Buttyán Levente Budapesti Műszaki és Gazdaságtudományi Egyetem Műszaki Informatika szak Híradástechnikai Tanszék 2004. május 14.

A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

Embed Size (px)

Citation preview

Page 1: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

A Spi kalkulus

Ács [email protected]

Neptun-kód: K4C03M

Soós Máté[email protected]

Neptun-kód: H0VTMJ

Konzulens: Dr. Buttyán Levente

Budapesti Műszaki és Gazdaságtudományi Egyetem

Műszaki Informatika szak

Híradástechnikai Tanszék

2004. május 14.

Page 2: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

Kivonat

A feladatunk egy kriptográfiai formális elemzés [1] feldolgozása volt a félévfolyamán. Ez az elemzési mód a Pi kalkulusból fejlődött ki, annak alapjairaépítve, kriptográfiai primitívekkel bővítve. A spi kalkulus a pi-hez [2] ha-sonlóan egy processz algebrára épülő nyelv, viszont a hitelesség és titkosságellenőrzése érdekében új formalizmust vezet be, mellyel egyszerűbb és kényel-mesebb a kriptográfiai protokollok biztonsági céljainak ellenőrzése.

Page 3: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

TARTALOMJEGYZÉK 1

Tartalomjegyzék

1. Bevezetés 3

1.1. A biztonság fogalma . . . . . . . . . . . . . . . . . . . . . . . 3

1.2. A formális elemzés . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1. Működési szemantika . . . . . . . . . . . . . . . . . . . 3

1.2.2. Struktúrális működési szemantika . . . . . . . . . . . . 4

1.2.3. A processz algebra és a viselkedés ekvivalenciák . . . . 4

1.3. A processz algebra és a kriptográfiai protokollok kapcsolata . 6

2. A Spi kalkulus bevezetése 7

2.1. A pi kalkulus . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2.2. A spi kalkulus általános jellemzői . . . . . . . . . . . . . . . . 7

2.2.1. Alapfeltevések . . . . . . . . . . . . . . . . . . . . . . 7

2.2.2. A biztonság fogalma a Spi-ben . . . . . . . . . . . . . 8

3. A notáció bevezetése 10

3.1. Termek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2. Processzek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

3.3. Első példa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.4. Második példa . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.5. Kriptográfiát használó példa . . . . . . . . . . . . . . . . . . . 13

4. Átalakulások, struktúrális ekvivalencia, barb, elkötelezés 13

4.1. Üzenetváltás . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.2. Redukció . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

4.3. Struktúrális ekvivalencia . . . . . . . . . . . . . . . . . . . . . 14

4.4. Reakció reláció . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.5. Barb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4.6. Konvergencia . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.7. Elkötelezettség . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.7.1. Absztrakció . . . . . . . . . . . . . . . . . . . . . . . . 18

4.7.2. Konkréció . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.7.3. Interakció . . . . . . . . . . . . . . . . . . . . . . . . . 18

5. Az ekvivalencia osztályok 19

5.1. Tesztelési ekvivalencia . . . . . . . . . . . . . . . . . . . . . . 20

5.2. Erős biszimuláció . . . . . . . . . . . . . . . . . . . . . . . . . 20

5.3. Barb ekvivalencia . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 4: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

TARTALOMJEGYZÉK 2

5.4. Barb kongruencia . . . . . . . . . . . . . . . . . . . . . . . . . 21

5.5. Kongruencia összefoglaló . . . . . . . . . . . . . . . . . . . . . 22

6. Alátámasztás reláció 23

6.1. E-lezárás . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

6.2. A legtöbbet használt tételek . . . . . . . . . . . . . . . . . . . 24

7. Formális bizonyítások a Spi kalkulussal 25

7.1. A formális bizonyítások célja . . . . . . . . . . . . . . . . . . 25

7.2. Egy bizonyítás általános menete . . . . . . . . . . . . . . . . 26

7.3. Példa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

7.3.1. A protokoll leírása a spi kalkulus formalizmusával . . . 27

7.3.2. A hitelesség és integritás igazolása . . . . . . . . . . . 27

7.3.3. Az információ elrejtés (titkosság) bizonyítása . . . . . 29

8. Önértékelés 33

Page 5: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

BEVEZETÉS 3

1. Bevezetés

1.1. A biztonság fogalma

A biztonság három különböző egymásra ortogonális nézőpontból közelít-hető meg. Az első az illetéktelen információhozzáférés megakadályozásánakfeladata, vagyis a titkosságot (secrecy vagy confidentiality) jelenti, és azzalfoglalkozik, hogy ki juthat hozzá az adott információhoz. A második az infor-máció védelmével, illetéktelen módosítás megakadályozásával, integritásával(integrity), vagyis, hogy ki küldheti és módosíthatja az információt. A har-madik az előzővel rokon hitelesség (authentication), tehát annak biztosítása,hogy a kommunikációban résztvevő felek nem hazudnak az azonosságukatilletően.

1.2. A formális elemzés

A formális módszerek és technikák segítenek konkrét problémák általáno-sításában és összehasonlításában, így lehetőséget adnak pontos, precíz terve-zésre és analízisre. Egy adott probléma formális elemzése több absztrakciósszinten lehetséges, melyek nemcsak biztonsági kérdések esetén lehet hasz-nos, hanem erre alapozva akár útmutatást nyújthatnak egy konkrét rendszerimplementációja során.

1.2.1. Működési szemantika

A működési szemantika – mint formális nyelveknél – az adott nyelv je-lentését írja le úgy, hogy működését egy absztrakt állapotgép (automata)állapotátmeneteivel formalizálja. A nyelv minden mondata levezethető azadott nyelvtanból, amely levezetésnek megfelel egy érvényes állapotátme-neti halmaz a nyelvtannak megfeleltetett automatán. Látható, hogy formálisnyelveknél akkor tekintünk két nemterminális (P, Q termek) kifejezést ekvi-valensnek, hogy ha igaz az alábbi állítás. Azok a mondatok melyek P -bőllevezethetőek, levezethetőek Q-ból, illetve azok a mondatok melyek levezet-hetőek Q-ból levezethetőek P -ből is. A kérdés az, hogy egy mondat P -ből ésQ-ből történő levezetéséhez is ugyanaz az állapotátmeneti halmaz tartozik-eaz automatán.

A fenti példából látszik, hogy két nemterminális ekvivalencája egy elég tágfogalom, hiszen két nem-terminális lehet ekvivalens olyan értelemben, hogynem vesszük figyelembe az állapotátmenetek halmazát hanem csak a leveze-tés végeredményét, míg a másik esetben magára a levezetésre is tekintettelvagyunk.

Page 6: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

BEVEZETÉS 4

1.2.2. Struktúrális működési szemantika

Az automata legnagyobb hátránya, hogy nem közvetlenül az adott nyelv-tan jelentését modellezi, hanem inkább annak jelentését az állapotátmenete-ken keresztül. Vagyis nehezebb kikövetkeztetni pl. egy program célját, jelen-tését anélkül, hogy ne vennénk figyelembe a végrehajtási és implementációsproblémákat. Ez a leírási mód nem tükrözi az adott rendszer struktúrális fel-építését, vagyis azt, hogy milyen komponensek alkotják az adott rendszert.A komponensekre bontás után a program célja világosabban és egyszerűb-ben kikövetkeztethető, valamint az így alkalmazott leírási mód véges lesz(a rekurzió könnyen leírható). A struktúrális működési szemantika (Struc-tural Operational Semantics (SOS)) különböző jelölési rendszerek ötvözete,alkalmazva a kompozíció képzést és az absztrakt szintakszist. Az összetettobjektumok működése így modellezhető a komponensek működésével, ha kö-vetjük a definiált szintaktikai szabályokat. Az állapotátmenetek logikai útonértelmezhetőek, melyek új szintaktikai egységeket hoznak létre. Az állapot-átmenetek az alábbi formában definiálhatóak:

FeltételKonklúzió

vagyis ha feltétel igaz, akkor igaz a konklúzió is. Így egy hatékony logikaibizonyítási rendszert kapunk, melynek programozása is egyszerűbb. A struk-túrális működési szemantika kifejező ereje legalább akkora, mint a működésiszemantikáé, csak kihasználja a komponensekre bontás lehetőségét, amivel aspecifikációk modulárissá és újrahasználhatóvá tehetők. Ezekből következik,hogy a fentihez hasonló módon itt is megfogalmazható a viselkedés ekviva-lencia.

A legtöbb processz algebra működési szemantikája is ebben a formábanadott.

1.2.3. A processz algebra és a viselkedés ekvivalenciák

A processz algebrák formális specifikációs nyelvek konkurens és elosztottrendszerek leírására. Minden – a rendszerben részt vevő – aktív, dinamikuskomponensnek megfeleltethető egy kalkulus kifejezés (nyelvi egység), amitprocessznek (vagy agent) hívnak. A processzek mindig valamilyen processz-operátor eredményeképp jönnek létre (kompozíció, nemdeterminisztikus kivá-lasztás, stb.). Alapvető esemény a processzek kommunikációja, vagyis üzene-tek atomi küldése és fogadása (I/O), melyek szintén új processzeket eredmé-nyezhetnek. A processzek viselkedését, dinamikus tulajdonságait a üzenetekküldése és fogadása reprezentálja, mely történhet egymástól függően vagyfüggetlenül. Fontos, hogy az üzenetek vétele nem determinisztikus folyamat.Ezeken kívül lehetséges még úgynevezett láthatósági operátorokról beszélni,mely egy információs egység (üzenet, kulcs, stb.) láthatóságát korlátozzák.

Page 7: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

BEVEZETÉS 5

A fentiekből két tulajdonság következik. Az egyik, hogy minden processz-nek megfelel egy irányított gráf, amelynek élei az atomi I/O műveletet jelenti,míg a pontjai a processz egy-egy állapotát. Megkülönböztetünk egy kitünte-tett élet (τ), ami nem egy atomi I/O műveletet, hanem egy belső állapotá-talakulást ír le. A másik tulajdonság, hogy a processzek leírhatók algebraistruktúrákkal az SOS segítségével. Az állapotátmeneteket itt az atomi I/Oműveletek vagy τ jelentik.

Jelöljük a processzeket reprezentáló gráfok halmazát G-vel. Legyen egyprocessznek megfeleltetett G gráf csúcsainak a halmaza V (G), éleinek a hal-maza E(G). Jelölje a

u↪→ b ∈ E(G) azt az állapotváltozást, amikor u ese-

ményre G processz a-ból b állapotba lép. Root(G) jelenti G processz kiindulásiállapotát.

1. definíció (Biszimuláció). Legyen G, H ∈ G. Egy R ⊆ V (G) × V (H)reláció biszimuláció G-ből H-ba (G ' H), ha

1. R értelmezési tartománya V (G), míg értékkészlete V (H)

2. (Root(G), Root(H)) ∈ R

3. Ha (s, t) ∈ R és su

↪→ s′

∈ E(G), akkor létezik egy tu

↪→ t′

∈ E(H) él,hogy (s

, t′

) ∈ R

4. Ha (s, t) ∈ R és tu

↪→ t′

∈ E(H), akkor létezik egy su

↪→ s′

∈ E(H) él,hogy (s

, t′

) ∈ R. ♣

Ha 1, 2 és 3 teljesülése esetén G szimulálja H-t (G ∼ H), míg 1, 2, 4teljesülése esetén H szimulálja G-t (H ∼ G).

1. tétel (Biszimuláció ekvivalencia). A biszimuláció (∼=) egy ekvivalen-cia reláció G-n. ♦

Szemléletesen a biszimuláció egy viselkedés ekvivalencia, vagyis alkalmaskét processz viselkedésének (működésének) összehasonlítására.

A körmentes processzgráfokat processzfáknak, vagy szinkronizációs fák-nak nevezzük (tehát csak egy bemenő él van minden állapotba). Jelölje Gs aG egy processzgráf olyan processz-részfáját, ahol a fa gyökere az s ∈ V (G),és V (Gs) azok a csúcsok, melyek s-ből elérhetőek E(Gs) élek mentén.

2. definíció (Tranzíció reláció). A G halmazon minden u atomi állapot-változásra definiálható egy

u→ tranzíció reláció az alábbi módon. Ha s

u↪→ t

egy él egy G ∈ G-ben, akkor Gsu→ Gt. ♣

A tranzíció reláció tehát processzek között értelmezett (u→), míg a pro-

cesszgráfban egy él (u

↪→) az adott processz állapotváltozásának felel meg.

Page 8: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

BEVEZETÉS 6

A biszimuláció feltételezi, hogy ismerjük a kérdéses processzek belső mű-ködését, esetleg teljes ellenőrzésünk van felette. Ez viszont több gyakorlatiproblémánál nem igaz, hiszen előfordulhat például, hogy a processznek bi-zonyos komponensei között meg tudjuk figyelni az atomi I/O műveleteket,míg a komponensen belülre már nem látunk, így az számunkra egy feketedoboz. Így szükséges egy másik viselkedés ekvivalencia bevezetése, amit tesztekvivalenciának hívunk.

Egy teszt kimenete lehet sikeres vagy sikertelen illetve ezek kombinációja(nemdeterminizmus miatt). A teszt lehet egy bizonyos tulajdonság teljesü-lése, ami például az adott processzkomponens külvilággal folytatott kommu-nikációja során dölhet el. Legyen egy P processz t tesztre adott kimeneteineka halmaza k(t, P ). Legyen P a processzek halmaza, míg T a lehetséges tesztekhalmaza.

3. definíció (Teszt ekvivalencia). Legyen P, Q ∈ P. P és Q processz tesztrelációban állnak (P v Q), ha k(t, P ) ⊆ k(t, Q) minden t ∈ T esetén. Továbbáha P v Q és Q v P , akkor P és Q teszt ekvivalens (P ' Q). ♣

Az, hogy mi számít sikernek és sikertelennek – vagyis mi az adott t és T– már a processz algebrától függ.

1.3. A processz algebra és a kriptográfiai protokollokkapcsolata

A kriptográfiai protokollok egy üzenetcsere specifikációt írnak le egy nemmegbízható hálózaton keresztül annak érdekében, hogy kriptográfiai kulcso-kat generáljanak, illetve a kommunikációban részt vevő feleket hitelesítsék.A protokollban résztvevő felek nemcsak egymással, de a környezetükben bár-kivel kommunikálhatnak, akik akár a támadókat is jelenthetik.

Minden protokoll megfeleltethető egy processznek, és így megadható an-nak működése SOS stílusban. A protokoll (processz) struktúrálisan továbbfinomítható modulokra (küldő protokollja, vevő protokollja, stb.), melyek kö-zött értelmezhető a tranzíció reláció. A protokollban résztvevő felek (és a tá-madók is) szintén processzek. Mivel a támadó nem ismerhet adott információsegységeket (kulcs, rejtjelezett üzenet), ezért a processzek megkülönböztetéseteszt ekvivalencia által lehetséges, de adott esetben erősebb viselkedés ekvi-valenciák is megadhatóak, attól függően, hogy a támadó mennyire lát bele„a fekete dobozba”. Sok esetben az erősebb biszimuláció relációk igazolásaegyszerűbb, és belőlük már következik a gyengébb de ugyanakkor az adottcélnak elégséges viselkedés ekvivalencia.

Page 9: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

A SPI KALKULUS BEVEZETÉSE 7

2. A Spi kalkulus bevezetése

2.1. A pi kalkulus

A Spi kalkulus [1] a pi kalkulus [2] egy bővítményének tekinthető. Azelső processz algebrák konkurens rendszerekre a CCS és CSP voltak. Ezek akonkurens processzek egymásrahatását formalizálták. A CCS kiterjesztésétmobilitásra jelentette a pi kalkulus. A pi kalkulus formalizmusa lehetőségetad egy új kommunikációs csatorna létrehozására, ami a CCS-ben és a CSP-ben nem volt lehetséges. Az így létrehozott csatorna továbbítható. Egy pro-cessz rendelkezésére álló csatornák meghatározzák a processz kommunikációsképességeit. Ezek a csatornák korlátozva lehetnek, vagyis csak bizonyos pro-cesszek kommunikálhatnak rajta. A láthatósági szabályok garantálják, hogycsak bizonyos processzek használhatják az adott csatornát, és a környezetbenlévő más processz (támadó) nem. A láthatóság kiterjesztése (scope extrusion)során egy csatorna kerül elküldésre, amit a fogadó fél utána használhat ada-tok küldésére, vagyis a csatorna használatát (láthatóságát) kiterjesztjük.

A pi kalkulus – mint processz algebra révén – egy programozási nyelvnekfelel meg. A láthatóságot felhasználva a pi kalkulus korlátozottan alkalmaskriptográfiai protokollok jellemzésére. A kriptográfiában használatos kulcsmegfeleltethető egy csatornának, a láthatóság kiterjesztése pedig ennek acsatornának az átküldése egy másik fél számára.

2.2. A spi kalkulus általános jellemzői

A Spi a pi formalizmusára épülő processz algebra nyelv, melyet krip-togáfiai protokollok elemzésére hoztak létre. A pi-től eltérően külön szintak-tikai egységeket vezet be a kriptográfiai primitívek kezelésére mint példáula rejtjelezés és a dekódolás. Ezek a Spi kalkulus működési szemantikájábanszerepelnek axiómaként.

2.2.1. Alapfeltevések

Az alapvető megközelítés a tökéletes rejtjelezés feltételezése, vagyis

– Egy rejtjelezett üzenet csak a rejtjelezés kulcsának megfelelő dekódolókulccsal fejthető meg.

– A rejtjelező kulcs nem következtethető ki a vele rejtjelezett üzenetből.

– A rejtjelezett üzenet elég redundanciát hordoz ahhoz, hogy a dekódolóalgoritmus egyértelműen el tudja dönteni, hogy a dekódolás sikerültvagy nem.

– A támadó nem képes kitalálni és/vagy létrehozni bármilyen titkosnakminősített protokoll adatot.

Page 10: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

A SPI KALKULUS BEVEZETÉSE 8

A fenti feltételekből látható, hogy a Spi kalkulus mint formális leírás egyfelsőbb absztrakciós szintről vizsgálja a protokollok helyességét.

2.2.2. A biztonság fogalma a Spi-ben

A Spi-ben a támadó (a környezet egy modellje) egy tetszőleges processz,vagyis nem tételezünk fel róla semmi specifikusat, igazából ez adja a módszerlényegi erejét. A biztonságosság igazolását egyenletekben fogalmazza meg,amik a processz algebra viselkedés ekvivalenciáin alapulnak.

A fogalmak egyszerű szemléltetésére vegyünk egy nagyon egyszerű proto-koll Spi kalkulusbeli leírását:

A(M) , cAB〈{M}KAB〉

B , cAB(x).case x of {y}KABin F (y)

Inst(M) , (νKAB)(A(M) | B)

A fenti protokoll a következőképpen értelmezhető. A protokollnak a két részt-vevője – A(M) és B – üzeneteket vált egymással cAB csatornán, ahol cAB(x)jelenti az üzenetek vételét, míg cAB〈x〉 az üzenetek fogadását. A(M) processzelküldi cAB csatornán M üzenetet KAB kulccsal rejtjelezve, amit B szinténcAB csatornán fogad, majd a kapott üzenetet megpróbálja dekódolni KAB

kulccsal, majd ha sikerült (és csak akkor) a dekódolt üzenettel futtatja F -et. F (y) jelenti az így kapott eredményt. Az Inst(M) jelenti a protokoll egypéldányát, ahol A(M) és B kommunikál egymással (párhuzamosan fut), éscAB csatorna mindenki számára publikus, viszont KAB kulcsot csak ők isme-rik. A ν operátor megköti KAB nevet, ami azt jelenti, hogy csak A(M) és Blátja, tehát a kulcs láthatósága csak rájuk korlátozódik. Ez a modell meg-felel egy előre megbeszélt szimmetrikus kulcsú rejtjelezés formális Spi-belimodelljének.

A biztonság alapja a számításelméleti modellhez hasonlóan a megkülön-böztethetetlenség egy harmadik fél (támadó) számára. Például két processzP és Q (protokollok) megkülönböztethetetlenek, ha egy harmadik R pro-cessz (például támadó) nem képes különbséget tenni P és Q között amikorazokat párhuzamosan futtatja. Tehát R mondhatja, hogy P és Q ugyanazok-kal a tulajdonságokkal (biztonsági tulajdonságokkal) rendelkeznek. P és Qáltalában fekete doboznak tekinthető, vagyis azok belső struktúráját nemismerjük, jobban mondva az R processz nem ismeri. Innen adódik, hogy Pés Q dinamikus viselkedése között teszt ekvivalenciával lehet a gyakorlatbankülönbséget tenni.

A fenti példánál maradva a biztonsági tulajdonságok pontos megfogalma-zása:

• Hitelesség, autentikáció (integritás): B mindig azt az M üzenetetadja át F -nek, amit A küld, vagyis a támadó nem képes azt elérni, hogyF nem az A által küldött üzenetet kapja meg.

Page 11: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

A SPI KALKULUS BEVEZETÉSE 9

• Információ elrejtés, titkosság: Az M küldött üzenet nem értelmez-hető (olvasható) más számára az A-tól B-ig tartó útja során, vagyis haF (M) nem fedi fel M -et, akkor az egész protokoll nem fedi fel M -et.

A titkosság tulajdonsága kifejezhető termek ekvivalenciájával: ha F (M) 'F (M ′) minden M -re és M ′-re, akkor Inst(M) ' Inst(M ′). Ez azt jelenti,hogy ha F (M) megkülönböztethetetlen F (M ′)-től, akkor az egész protokollM üzenettel megkülönböztethetetlen ugyanezen protokolltól csak M ′ üzenet-tel.

A hitelesség formális kifejezése érdekében bevezetünk az előző protokollmintájára egy újat, ami az előző specifikációja, tehát ugyanazt a feladatotlátja el, csak annál „ jobb”.

A(M) , cAB〈{M}KAB〉

Bspec(M) , cAB(x).case x of {y}KABin F (M)

Instspec(M) , (νKAB)(A(M) | Bspec(M))

Ennél a protokollnál Bspec(M) fél ideálisan (gyakorlatban ilyen nincs) tudja,hogy A mit fog neki küldeni (egyébként B mintájára viselkedik), így mindegy,hogy valaki megváltoztatja M üzenetet, ő akkor is a helyes M -et adja átF -nek. Vagyis ha a támadó nem képes megkülönböztetni ezt az idealizáltprotokollt az eredeti protokolltól, akkor a hitelesség tulajdonsága teljesül.Formálisan: Inst(M) ' Instspec(M) minden M -re.

Összefoglalva a Spi-beli biztonsági alapegyenleteket:

• Hitelesség, autentikáció (integritás): Inst(M) ' Instspec(M) min-den M -re.

• Információ elrejtés, titkosság: Ha F (M) ' F (M ′), akkorInst(M) ' Inst(M ′) minden M, M ′-re.

A ' reláció jelenti a teszt ekvivalenciát. Tehát a fenti protokollok megkü-lönböztethetetlenek egy harmadik (aktív támadó) fél számára a környezetből.Fontos, hogy ezek az ekvivalenciák csak akkor igazak, ha KAB kulcsot csakA(M) és B ill. Bspec(M) ismerik.

A teszt ekvivalencia tovább finomítható más viselkedés ekvivalenciákkal.Például

P (M) , (νK)c〈{M}K〉

esetén szeretnénk azt mondani, hogy P (M) és P (M ′) megkülönböztethetet-len, minden M és M ′-re, mivel K-t nem ismeri a támadó fél, és nem képesmegmondani, hogy vajon M vagy M ′-et rejtjelezték-e K-val. Másrészről vi-szont nyilvánvalóan P (M) és P (M ′) különböző, hiszen más-más üzeneteketküldenek. Az erős biszimuláció ekvivalencia például különbséget tesz P (M) és

Page 12: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

A NOTÁCIÓ BEVEZETÉSE 10

P (M ′) között, míg a teszt ekvivalencia nem. Ugyanakkor lehet olyan viselke-dés ekvivalenciát definiálni, amely figyelembe veszi, hogy az adott protokollmiként jutott egy adott állapotba, és nem csak a végeredménnyel törődik(barb ekvivalencia és kongruencia), viszont a rejtjeles üzeneteket már nemkülönbözteti meg.

A következő részben bemutatjuk a Spi kalkulus formalizmusát, nyelvta-nát. Két alapvető nyelvi eleme van: termek (üzenetek, csatorna azonosítok,kulcsok, stb.), amik adatot reprezentálnak és processzek, melyek a viselke-dést írják le. A termek lehetnek atomi elemek, mint konstansok, változókvagy struktúrált termek. A konstansok és változók megkülönböztetése a Spikalkulusban jelent meg. A változók helyettesíhetőek bármely más termmel.

A Spi működési szemantikáját a reakció reláció és az elkötelezési relációírja le. Ezek adják a viselkedés ekvivalenciák alapját.

3. A notáció bevezetése

A notációt első lépésben csak formálisan vezetjük be, az értelmére a pél-dák fognak fényt vetni.

3.1. Termek

A term-eket az alábbi nyelvtan definiálja:

L, M, N ::= termekn név(M, N) pár0 nullasuc(M) következőx vátozó{M}N osztott kulcsú titkosítás

Van végtelen sok név, amiket csatornaként fogunk használni, van és egyadott mennyiségű változó. Az m, n, p, q és r fogja a változókat jelölni.

Page 13: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

A NOTÁCIÓ BEVEZETÉSE 11

3.2. Processzek

A processzeket az alábbi nyelvtan definiálja:

P, Q, R ::= processzek0 semmiP | Q kompozíció (párhuzamos futtatás)!P sokszorosításM〈N〉.P term kiadásM(x).P term vétel(vn)P megkötés[M is P ] összeméréslet(x, y) = M in P pár szétválasztáscase L of {x}N in P osztott kulcsú kikódoláscase M of 0 : P suc(x) : Q egész szám eset

Nagyon fontos megemlíteni, hogy ha egy processz úgy van írva, hogyP [M/x][N/y] az azt jelenti, hogy az P processz minden M és N term-jét azx illetve az y változóra kell cserélni. Tulajdonképpen ez az "értékadás" ebbena notációs sémában. Értéket adni csak kétféleképpen lehet: a suc()-al illetveaz M(x)-el. Soronként értelmet adva a fenti táblázatnak:

• A semmi a megakadó vagy másképp értelmezve a semmittevő processz

• A párhuzamos kompozíció a processzek teljesen párhuzamos futtatásátteszi lehetőve, azaz tetszőleges sorrendben(akár egyszerre is) tehetneklépéseket az egymás mellé állított processzek

• A sokszorosítás egy processz végtelen sok párhuzamos kompozíciójátreprezentálja

• A term adás és vétel nyilván megfelel egymásnak, ezek együttesen rep-rezentálják a kommunikációt. Az M mindkét esetben egy csatornánakfelel meg.

• A megkötés egyszerűen annyit jelent, hogy a megkötött változó(itt tör-ténetesen az n) egy firss véletlen, és így más processzben – hacsak nemlett elküldve – nem jelenhet meg. lyen változó pl. az előtanulmányaink-ból már ismert viszony kulcsként használható, amit az egyik fél generál,és a másiknak titkosan átküldi. Így azt egy helyes protokollban csakkét (és esetleg egy harmadik, megbízható) fél ismerheti. A SPI kalkulusegyelőre nem ad lehetőséget Diffie-Hellman kulccserére, azaz két fél általgenerált viszonykulcsot nem lehet "összekombinálni", bár a megfelelőnotáció bevezetésével a SPI kalkulus erre is képessé tehető1. Megkötni

1Vezessük be termek nyelvtanába az /M/x -t mint hatványozást. A struktúrális ekviva-lenciák közé vezessük be az /M/x

y

≡ /M/yx

szabályt. Mivel logaritmus vonó szabály nincs,ezért a támadó nem tudja megfejteni a gxy-t a két külön, DH-ban alkalmazott gx és gy

párból.

Page 14: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

A NOTÁCIÓ BEVEZETÉSE 12

csatornákat is lehet, ez esetben a csatorna csak a két fél számára is-mert. Ez szimbolizálhat akár valóban egy fizikailag védett csatornát,vagy egy hétköznapi értelemben vett biztonságos csatornát, ahol nemlehet(értelmetlen) sem hallgatózni, sem "belepszkítani" a csatornába.

• Az összemérés egy olyan nyelvtani formula, ami megakasztja a pro-cesszt, ha a két term értéke nem egyező (azaz 0-t csinál belőle), ellen-kező esetben pedig egyszerűen engedi tovább futni a processzt

• A kódolás illetve dekódolás egymás ellentettjei. Nagyon fontos, hogy haa dekódolás sikertelen(azaz vagy a kapott érték nem volt kódolva, vagynem az adott kulccsal volt kódolva) akkor a processz megakad(azaz0 lesz belőle). Ezt lehet úgy is értelmezni, hogy a kódolással együttvan egy üzenethitelesítés is, és ha az üzenethitelesítő kód nem stim-mel, akkor a program abortál. Ez azt próbálja reprezentálni, hogy egytámadó a helytelen kulccsal való kikódolással semmit nem ér, értékte-len(információmentes) adatot kap.

• Pár szétválasztás tulajdonképpen a termek nyelvtanában definiált pár-képzésének az ellentettje

• Ez a processz P -ként viselkedik, ha M 0 és Q[N/x]-ként ha M suc(N).

3.3. Első példa

A notáció igazából csak példákon kereszül értelmezhető. Jöjjön hát elsőlépésként egy rendkívül egyszerű példa. Ebben a példában a csatorna lesztitkos(megkötött) amit csak a két fél ismer:

A(M)∆= cAB〈M〉.0

B∆= cAB(M).P

Rendsz(M)∆= (vcAB)(A(M) | B)

Ennél a példánál a Rendsz(M) a rendszert szimbolizálja, amiben a két pro-cessz fut. Itt jól látszik, hogy a cAB csatornáról senki más nem tud, csak Aés B. Ha az üzenetcsere megtörténik, akkor A processz megáll(0 lesz belőle)és B processz a P [M/x] -é fog válni, ahol az x a Rendsz(x) -ből jön.

3.4. Második példa

Jöjjön egy valamivel bonyolultabbnak tűnő példa! Ebben a példában aztfogjuk kihasználni, hogy akár csatornák nevét is át lehet küldeni2. Így lehet

2Ennek neve érvényességi határ kiterjesztés

Page 15: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ÁTALAKULÁSOK, STRUKTÚRÁLIS EKVIVALENCIA, BARB,ELKÖTELEZÉS 13

magas szinten modellezni azt, hogy egy harmadik megbízható fél megnyit akét beszégetni kívánó fél között egy biztonságos csatornát:

A(M)∆= (vcAB)cAS〈cAB〉.cAB〈M〉.0

S∆= cAS(x).cSB〈x〉.0

B∆= cSB(x).x(y).P (y)

Rendsz(M)∆= (vcAB)(A(M) | S | B)

3.5. Kriptográfiát használó példa

A kriptográfiát használó példa abban fog különbözni(és egyben ebbenis fog hasonlítani) az első példára, hogy itt nem a csatorna lesz a két félközött megkötve, hanem a kulcs. Így aztán lehet a csatorna publikus. Ezígy nyilván jobban közelíti a mindennapos világot: a fizikailag biztonságoscsatornák száma sokkal kisebb, mint a biztonságot megosztott titokkal nyújtócsatornák száma. A példabeli processzeket az alábbiak definiálják:

A(M)∆= cAB〈{M}KAB

〉.0

B∆= cAB(x).case x of {y}KAB

.P (y)

Rendsz(M)∆= (vKAB)(A(M) | B)

A rendszer láthatóan becsaphatatlan: az egyedüli támadási felület a Báltal kapott érték: ezt a támadó szabadon módosíthatja. Azonban nem álla támadó rendelkezésére a KAB kulcs, hisz ez meg van kötve a Rendsz(M)-ben. Így a támadó nem adhat semmilyen helyesen kódolt információt B-nek, ahelytelenül kódolt infomációra pedig B megáll(azaz a 0-val lesz egyenértékű).

4. Átalakulások, struktúrális ekvivalencia,barb, elkötelezés

Első lépésként be kell vezetni három új foglamat. Ezek sorban:

• fn() függvény - argumentuma egy processz, visszatérési értéke a

processzben található szabad nevek halmaza. Példaként a B∆=

cSB(x).x(y).P (y) processz szabad neve az x. Ellenben a B[x/cAB ]-neknincs szabad neve, azaz fn(B[x/cAB ]) = ∅

• fv() függvény - argumentuma egy processz, visszatérési értéke a

processzben található szabad változók halmaza. Példaként a B∆=

cAB(M).P processz szabad változója az M . Ellenben a B[M/x]-neknincs szabad változója, azaz fv(B[M/x]) = ∅

• zárt processz - Akkor mondjuk egy processzre, hogy zárt, ha nincs sza-bad változó benne

Page 16: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ÁTALAKULÁSOK, STRUKTÚRÁLIS EKVIVALENCIA, BARB,ELKÖTELEZÉS 14

4.1. Üzenetváltás

A következő lépés a legtriválisabb működés, az üzenetváltás formalizálása.Az első processz átadja az x változót a második processznek, aminek így aszabad változóinak a száma egyről nullára változik:

(React Inter) m〈M〉.P | m(x).Q → P | Q[N/x]

4.2. Redukció

A következő lépés egy processzen belül végbemenő változások, redukció-kleírása axiómákkal:

(Red Repl) !P > P | !P(Red Match) [M is M ]P > P(Red Let) let (x, y) = (M, N) in P > P [M/x][N/y](Red Zero) case 0 of 0 : P suc(x) : Q > P(Red Suc) case suc(M)of 0 : P suc(x) : Q > Q[M/x](Red Decrypt) case {M}N of {x}N in P > P [M/x]

A fenti sorok szoban:

• Red Repl - Egy processz végtelen sok kópiájához ha hozzáadok mége-gyet, az olyan, mint maga az eredeti. Másképpen: ∞ = 1 + ∞

• Red Match - Ha az összemérés két term-je ugyanaz, akkor a processztovábbléphet

• Red Let - Ez a szabály a párszétválasztást használja a processz egyesterm-jeinek az inicializálására

• Red Zero és Red Suc - Ez a két szabály a case-el foglalkozó, processznyelvtani elem alkalmazásai: azért két külön eset, mert vagy az egyikcase igaz, vagy a másik

• Red Decrypt - Ez a szabály a kikódolást formalizálja. Ha a valóbankódolt adatról van szó, és a kulcs megfelelő, akkor az M term-nek meg-felelteti az M -ben talált változót. Mivel más kikódolás szabály nincs,ezért nem lehet pl. részleges infomációkat szerezni egy kódolt szövegről,illetve ezért nem lehet rossz kulccsal kikódolni egy bekódolt adatot

4.3. Struktúrális ekvivalencia

A következő lépés a struktúrális ekvivalencia. Két processz ami struktú-rálisan ekvivalens kívülről nem megkülömböztethető. A struktúrális ekviva-lencia axiómái:

Page 17: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ÁTALAKULÁSOK, STRUKTÚRÁLIS EKVIVALENCIA, BARB,ELKÖTELEZÉS 15

(Struct Nil) P | 0 ≡ P(Struct Comm) P | Q ≡ Q | P(Struct Assoc) P | (Q | R) ≡ (P | Q) | R(Struct Switch) (vn)(vm)P ≡ (vm)(vn)P(Struct Drop) (vn)0 ≡ 0(Struct Extrusion) (vn)(P | Q) ≡ P | (vn)Q ha n /∈ fn(P )

A fenti sorok szavakban:

• Bármely processz mellé rakhatjuk a semmi processzt, azzal nem adunksem hozzá, sem nem veszünk el az eredeti processzből

• A párhuzamos kompozíció kommutatív

• A párhuzamos kompozíció asszociatív

• A megkötés kommutatív

• A semmi processzben a megkötésnek nincs szerepe, így elhagyható

• Olyan processzben, ahol a megkötésnek nincs szerepe, mert a megkötöttnév nem fordul elő a processzben, a megkötés elhagyható

A következő szabályok érvényesek a struktúrális ekvivalenciára:

(Struct Red) (Struct Refl) (Struct Symm)P > P

P ≡ Q P ≡ P

P ≡ Q

Q ≡ P

(Struct Trans) (Struct Par) (Struct Res)P ≡ Q Q ≡ R

P ≡ R

P ≡ P ′

P | Q ≡ P ′ | Q

P ≡ P ′

(vm)P ≡ (vm)P ′

Ahol a jelentése az egyes elemeknek:

• Struct Red - Ha egy processz belső átalakulással át tud alakulni egymásik processzé, akkor az eredeti és az átalakult processz struktúrálisanekvivalens. Azaz a belső átalakulás kívülről észlelhetetlen

• Struct Refl - A struktúrális ekvivalencia reflexív

• Struct Symm - A struktúrális ekvivalencia kommutatív

• Struct Trans - A struktúrális ekvivalencia tranzitív

• Struct Par - A kompozíció struktúrális ekvivalencia tartó

• Struct Res - A megkötés struktúrális ekvivalencia tartó

Page 18: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ÁTALAKULÁSOK, STRUKTÚRÁLIS EKVIVALENCIA, BARB,ELKÖTELEZÉS 16

4.4. Reakció reláció

Most pedig jöjjennek a reakció reláció(jelölése: →) axiómái:

(React Struct)P ≡ P ′ P ′ → Q′ Q′ ≡ Q

P → Q

(React Par) (React Res)P → P ′

P | Q → P ′ | Q

P → P ′

(vn)P → (vn)P ′

Ahol a jelentése az egyes elemeknek:

• React Struct - A struktúrális ekvivalencia reakció reláció tartó

• React Par - A kompozíció reakció reláció tartó

• React Res - A megkötés reakció reláció tartó

4.5. Barb

Be kell vezetni a barb-okat is. A barb intuitív jelentése, hogy egyadott csatornán a processz tud kommunikálni az adott állapotban. Azaz azm(X).m〈Y 〉.0 processz az m csatornán tud kommunikálni, így az m barb-otmutatja. Az (m(X).0 | m〈Y 〉) processz pedig két barb-ot mutat: az m-t és am-t. A barb jelölése a ↓. A barb teljességgel független a kiadott vagy kapottüzenettől. Fontos megjegyezni, hogy ha egy processz egy olyan csatornán akarkiadni, vagy fogadni term-et, amely csatorna meg van kötve a processzben,akkor az a csatorna nem számít bele a processz barb-jai közé. Jöjjenek háta barb-okkal kapcsolatos axiómák:

(Barb In) m(x).P ↓ m (Barb Out) m〈M〉.P ↓ m

Ahol a jelentése az egyes elemeknek:

• Barb In - Ha egy processz tud kiadni adatot az m csatornán, akkor őaz m barb-ot mutatja

• Barb Out - Ha egy processz tud fogadni adatot az m csatornán, akkorő az m barb-ot mutatja

És a barb-okkal kapcsolatos szabályok:

(Barb Par) (Barb Res) (Barb Struct)P ↓ β

P | Q ↓ β

P ↓ β , β /∈ {m, m}

(vm)P ↓ β

P ≡ Q , Q ↓ β

P ↓ β

Ezen szabányok intuitív jelentése:

Page 19: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ÁTALAKULÁSOK, STRUKTÚRÁLIS EKVIVALENCIA, BARB,ELKÖTELEZÉS 17

• Barb Par - A párhuzamos kompozíció barb-tartó

• Barb Res - A megkötés barb-tartó abban az esetben, ha a csatorna nemaz épp megkötött név

• Barb Struct - A struktúrális ekvivalencia barb-tartó

Vegyük észre, hogy nincs olyan szabály, mely szerint egy megkötött csa-tornán vett, vagy kiadott term beleszámítana a processz barbjai közé. Ez akésőbbiekben fontos lesz (pl: ld. ekvivalencia osztályoknál a 2. példát)

4.6. Konvergencia

A konvergencia intuitív jelentése, hogy egy processz vagy eleve, vagy belsőátalakulásokon kereszülmenve mutatni tud egy barb-ot. Jele a ⇓, szabályai:

(Conv Barb) (Conv React)P ↓ β

P ⇓ β

P → Q Q ⇓ β

P ⇓ β

Ezen szabányok intuitív jelentése:

• Conv Barb - Ha egy processz a β barb-ot mutatja, akkor konvergál aβ-hoz

• Conv React - Ha egy P processz át tud alakulni egy olyan Q processzbeami a β barb-ot mutatja, akkor P konvergál a β barb-hoz

4.7. Elkötelezettség

Az elkötelezettség intuitíve azt jelenti, hogy egy processz elkötelezi magáta mellett, hogy egy adott barb-on kommunikáljon. Egy elkötelezett processztágens-nek nevezünk. Attól függően, hogy az adott barb-on kiadni, vagy fo-gadni akar adatot, hívjuk ezt a műveletet absztrakció-nak, illetve konkréció-nak. Az absztrakciót el lehet úgy képzelni, hogy az eredeti processz, minusza név, ami megadja, hogy melyik csatornán fogadja a processz az adatot.Például: (vm)p(M).P -ból lesz (vm)(x)P . A konkréció ennek a párja, azaz(vm)m〈M〉.P -ból lesz (vm)〈M〉P .

Az elkötelezettség jele aα→, ahol α három dolog lehet:

• A kitüntetett csöndes akció τ . Ez esetben semmi kívülről érzékelhetőváltozás nem jön létre. Azaz bármely processz ágensként is felfogható

• Név, pl m - Ez esetben a keletkezett ágens absztrakció lesz

• Társ-név, pl m - Ez esetben a keletkezett ágens konkréció lesz

Page 20: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ÁTALAKULÁSOK, STRUKTÚRÁLIS EKVIVALENCIA, BARB,ELKÖTELEZÉS 18

4.7.1. Absztrakció

Az absztrakció axiómái:

(vm)(x)P∆= (x)(vm)P

R | (x)P∆= (x)(R | P ) ha x /∈ fv(R)

Ahol a jelentése sorrendbben az egyes elemeknek:

• A megkötés és az absztrakció helye megcserélhető a notációban, ez sem-milyen változást nem okoz

• Az párhuzamos kompozíció absztrakció tartó, ha az absztrahált változónem fordul elő a párhuzamosan az ágens mellé rendelt processzben

4.7.2. Konkréció

A konkréció axiómái:

(vm)(→

n)(x)P∆=

{

(vm,−→n )〈M〉Q ha m ∈ fn(M)(−→n )〈M〉(vm)Q egyébként

R | (v−→n )〈M〉Q∆= (x)〈M〉(R | Q) ha m /∈ {−→n }

4.7.3. Interakció

Az interakció arra való, hogy két ágenst, egy absztrakciót és egy konkré-ciót egymással reakcióba hozzon. Azaz:

F∆= (x)P

C∆= (v−→n )〈M〉Q

és {−→n } ∩ fn(P ) = ∅ akkor

F@C∆= (v−→n )(P [M/x] | Q)

C@F∆= (v−→n )(Q | P [M/x])

Amiből egyenesen következik, hogy az interakció kommutatív, mivel a

Page 21: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

AZ EKVIVALENCIA OSZTÁLYOK 19

párhuzamos kompozíció is kommutatív. Az interakció szabályai:

(Comm In) (Comm Out)

m(x).Pm→ (x)P m〈x〉.P

m→ (x)P

(Comm Inter 1) (Comm Inter 2)

Pm→ F Q

m→ C

P | Qτ→ F@C

Pm→ C Q

m→ F

P | Qτ→ C@F

(Comm Par 1) (Comm Par 2)P

α→ A

P | Qα→ A | Q

Qα→ A

P | Qα→ P | A

(Comm Res) (Comm Red)P

α→ A α /∈ {m, m}

(vm)Pα→ (vm)A

P Q Qα→ A

Pα→ A

Ezen szabányok intuitív jelentése:

• Comm in - Ez a szabály mindössze az absztrakció jelentését formalizálja

• Comm Out - Ez a szabály mindössze a konkréció jelentését formalizálja

• Comm Inter 1 és Comm Inter 2 - Az interakciót formalizálja

• Comm Par 1 és Comm Par 2 - A párhuzamos kompozíció elkötelezettségtartó

• Comm Res - A megkötés elkötelezettség tartó, ha az elkötelezett termnem épp a név amit megkötünk

• Comm Red - A redukció elkötelezettség tartó (és így a struktúrálisekvivalencia is, ld. Struct Red)

5. Az ekvivalencia osztályok

Az ekvivalencia osztályok arra valók, hogy két processz valamilyen szintűekvivalenciáját bizonyítsák. A legfontosabb ekvivalencia osztály a tesztelésiekvivalencia lesz. A többi ekvivalenciát csak mint eszközt fogjuk használni,hogy két processz tesztelési ekvivalenciáját bizonyítsuk. A tesztelési ekviva-lenciának azért van kitüntetett szerepe, mert ez lesz az a módszer amivel egyprotokoll hitelességét és titkosságát fogjuk bizonyítani.

Page 22: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

AZ EKVIVALENCIA OSZTÁLYOK 20

5.1. Tesztelési ekvivalencia

A tesztelési ekvivalencia(') formálisan:

P v Q∆= bármely (R, β) tesztre, ha(P | R) ⇓ β akkor (Q | R) ⇓ β

P ' Q∆= P v Q és Q v P

Informálisan ez a definíció azt jelenti, hogy egy P processz tesztelési ek-vivalens Q processzel, ha P bármilyen környezetben(amit itt R modellez)bármilyen átalakulásokon átmenve minden barb-ja amit mutat, megfeleltet-hető Q ugyanezen környezetben bármilyen átalakuláson atmenve mutatottbarb-jának. Ez körülbelül azt jelenti, hogy ha csak kívülről nézünk egy pro-cesszt, és csak azt vizsgáljuk, hogy lehet-e neki küldeni, vagy tud-e ő fogadniadatot a benne szereplő neveken, akkor meg tudjuk-e őt különböztetni egymásik, ugyanolyan neveket tartalmazó procesztől.

A Tesztelési ekvivalencia tulajdonságai:

1. Struktúrális ekvivalenciából következik a tesztelési ekvivalencia

2. A tesztelési ekvivalencia reflexív, tranzitív és szimmetrikus

3. A tesztelési ekvivalencia egy kongruencia a zárt processzeken

5.2. Erős biszimuláció

Legyen R egy reláció a zárt processzeken, ekkor definiáljunk egy R relá-ciót zárt ágenseken:

P R Q acsa ha P R Q(x)P R (x)Q acsa ha P [M/x] minden zárt M processzre

(v−→n )〈M〉P R (v−→m)〈M〉Q acsa ha −→m egy permutációja az −→n -nek és P R Q

Az R reláció tetszőleges, lehet bármilyen általunk válaszott reláció; a fentidefiníció mindössze kiterjeszti az általunk kitalált, processzekre működő re-lációt ágensekre. Egy elem-pár akkor áll relációban egymással a relációk úni-ójában, ha minden, az únióban lévő relációval értelmezve relációban áll egy-mással. Evvel a logikával lehet értelmezni egy "legnagyobb relációt", amibenminden létező reláció benne van. Ezt a legnagyobb relációt fogjuk mi erősszimuláció-nak nevezni.

Egy reláció S akkor és csak akkor biszimuláció, ha S is, és a fordítottja,S−1 is szimulációk. Erős biszimuláció - nak a legnagyobb erős biszimulációt,azaz az erős biszimulációk únióját fogjuk hívni. Az erős biszimuláció(mintazt a neve is sugallja) túl erős nekünk, ugyanis túl pontos: a (vK)c〈MK〉-tés a (vK)c〈M ′

K〉-t megkülönbözteti, amit mi, hogy a protokollok hitelessé-gét és titkosságát be tudjuk bizonyítani, egymással ekvivalensnek szeretnénktekinteni.

Page 23: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

AZ EKVIVALENCIA OSZTÁLYOK 21

5.3. Barb ekvivalencia

Próbáljuk meg úgy gyengíteni az erős biszimulációt, hogy a processzek-nek csak a barb-jait tekintjük. Erre a célra vezessük be a barb szimulációt.Formálisan: A barb szimuláció egy bináris reláció S ⊆ Proc × Proc, úgy,hogy P S Q maga után vonja, hogy:

1. Minden barb β-ra, ha P ↓ β, akkor Q ↓ β és

2. Ha P → P ′ akkor létezik olyan Q′, hogy Q → Q′ és P ≡ S ≡ Q′

Itt a P ≡ S ≡ Q′ alatt azt értjük, hogy létezik olyan P ′′ és Q′′, hogyP ′ ≡ P ′′, P ′′ S Q′′, és Q′′ ≡ Q′. A barb biszimuláció egy reláció S úgy, hogymind S, mind S−1 barb szimulációk.

A barb ekvivalencia, melynek jele�

∼ a legnagyobb barb biszimuláció. Azazkét processz akkor fog egymással barb ekvivalenciában lenni, ha alapállapot-ban egymás barb-ja megegyeznek, és ugyanez mindkettőre belső átalakulásokután is fennáll. A barb ekvivalencia tulajdonságai:

1. A barb ekvivalencia reflexív, tranzitív és szimmetrikus

2. A struktúrális ekvivalenciából következik a barb ekvivalencia

3. Erős biszimulációból következik a barb ekvivalencia

4. A megkötés barb ekvivalencia tartó

A barb ekvivalencia hibája a gyengesége: ugyanis pl. a két processzm(x).m(y).0 és m(x).0 barb ekvivalens. Ráadásul a barb ekvivalencia mégcsak nem is kongruencia, ugyanis nem zárt a kompozícióra. Próbáljuk csakmeg az előbb említett két processz mellé rakni az m〈n〉.0 processzt: az elsőprocessz a belső átalakulások után még képes lesz fogadni egy adatot az mcsatornán, míg a második a belső átalakulások(ld. Üzenetváltás fejezet) utánmegáll(0 lesz belőle).

5.4. Barb kongruencia

A barb kongruenciá-t úgy nyerjük, hogy megerősítjük a barb ekvivalenciátavval, hogy a tesztelni kívánt processzek mellé rakunk párhuzamosan egy tet-szőleges processzt(ami a környezetet szimulálja) és így is meg kell egymásnakfelelniük. Formálisan:

P ∼ Q∆= ∀R ∈ Proc(P | R

∼ P | R)

A barb kongruencia tulajdonságai:

1. A barb kongruencia reflexív, tranzitív és szimmetrikus

Page 24: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

AZ EKVIVALENCIA OSZTÁLYOK 22

2. A barb kongruencia egy kongruencia a zárt processzeken

3. Struktúrális ekvivalenciából következik a barb kongruencia

4. Erős biszimulációból következik a barb kongruencia

5. Barb kongruenciából következik a tesztelési ekvivalencia

Ez nyilván kiküszöböli azt hibát, amit a barb ekvivalenciánál meg voltemlítve: ha a R-nek m〈n〉.0 -t választjuk, akkor a belső átalakulások utánnyert processzek nem lesznek ekvivalensek (az egyik 0 lesz, míg a másik m(y)lesz, melyek nem barb ekvivalensek, így nem is barb kongruensek).

5.5. Kongruencia összefoglaló

Az ekvivalenciák egymást tartalmazását a (1) ábra szemlélteti. Jól lát-ható, hogy a legerősebb ekvivalencia a struktúrális ekvivalencia(ennél erősebbnem is létezik, hisz ez minden elképzelhető biszimuláció úniója), a miáltalunkcélnak tekintett teszt ekvivalencia valahol középen helyezkedik el, míg a leg-gyengébb ekvivalencia a barb ekvivalencia.

1. ábra. Ekvivalenciák

A (1) ábrán látható egymást tartalmazást az ekvivalenciák tulajdonsága-inak felhasználásával lehet végigvezetni. Az ábrán látható bekarikázott szá-mok példák olyan processz-párokra amik benne vannak az egyik relációban,de az annál szűkebben már nincsenek benne. Ezen példák:

Page 25: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ALÁTÁMASZTÁS RELÁCIÓ 23

1. A már említett példa: m(x).m(y).0 és m(x).0 processzek barb ekviva-lensek, de nem tesztelés ekivalensek, mivel ha a teszt processznek(a no-tációban R-nek) m〈n〉.0 -t választjuk, akkor a belső átalakulások utána barb-jaik nem fognak egymásnak megfelelni

2. A két processz (vm)(m〈?〉 | m(x).P és P , ahol m /∈ fn(P ) és n /∈fv(P ), tesztelés ekvivalens, de nem barb ekvivalens(és így nem is barbkongruens). A két processz azért nem barb ekvivalens, mert az első áttud alakulni 0-ba, azonban a második nem tud átalakulni, és így a barbbiszimuláció második szabályát nem teljesíti a két processz

3. Mint azt be is fogjuk bizonyítani, a két processz (cAB〈MKAB〉

| cAB(x).case x of {y}KABin F (y)) és (cAB〈MKAB

〉 |cAB(x).case x of {y}KAB

in F (M)) barb kongruensek, viszontláthatóan nem erősen biszimuláció ekvivalensek (pontosan azért, amimeg volt említve, hogy mi a baj az erős biszimuláció ekvivalenciánál)

4. A processz (vK)case M of {x}K in P erős biszimuláció ekvivalens a0 processzel. Ugyanis nem képzelhető el olyan reláció, ami a két pro-cessz kölönbségét észre tudná venni. Azonban nincs olyan struktúrálisekvivalencia szabály, amiből a két processz ekvivalenciája következne

5. A !P és P | !P processz, mint azt a redukciók első szabálya kimondja,struktúrálisan ekvivalensek (ugyanis a redukálhatóságból következik astrukturális ekvivalencia)

6. Alátámasztás reláció

A környezet(beleértve a támadót) tudását formalizálja az alátámasztásreláció. Azt mondjuk, hogy x1 : {−}p1

, . . . , xn : {−}pnalátámasztja az A

ágenst, ha A-ban előfordulhat bármely x1, . . . , xn változó, de nem fordulhatelő benne egyik név sem a p1, . . . , pn-k közül. Ennek a szintaktikája:

x1 : {−}p1, . . . , xn : {−}pn

` A

A intuitív értelme az alámámasztásnak az, hogy a környezet lehallgathatjaaz átküldött üzeneteket, de nem lehet tudomása a kulcsokról, amikkel azokkódolva voltak. Ahhoz, hogy formálisan is definiálni tudjuk az alátámasztást,először két új fügvénnyel kell megismerkednünk:

• dom(E) függvény - bemenete egy ágens, kimenete pedig az E-ben meg-jelenő változók halmaza

• keys(E) fuggvény - bemenete egy ágens, kimenete pedig az E-be meg-jelenő nevek halmaza

Page 26: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ALÁTÁMASZTÁS RELÁCIÓ 24

A formalizmus, amivel az alátámaszást definiáljuk tehát az alábbi(aholM egy term, A pedig egy ágens):

E ` M acsa fv(M) ⊆ dom(E) és fn(M)⋂

keys(E) = ∅E ` A acsa fv(A) ⊆ dom(E) és fn(A)

keys(E) = ∅

6.1. E-lezárás

Az E-lezárás egy olyan behelyettesítés, amely E minden változóját lefi-xálja a megfelelő kódolt adatra. A behelyettesítés jele a σ, ami [term/változó]párokat tartalmaz – E-lezárásnál természtesen a term csak kódolt adat lehet.Az E ` σ az alábbi szabályokkal levezethető:

(Closure ∅) (Closure Under)

∅ ` ∅

E ` σ x /∈ dom(x) fv(M) = ∅

E, x : {−}n ` σ, {M}n/x

Hogy a biztonsági tulajdonságokat be tudjunk bizonyítani, azt szeretnénkelérni, hogy egy processz, amit alátámaszt egy rejtjel környezet(pl. σ) ugyan-úgy viselkedik, attól függetlenül, hogy milyen titkosított adatok szerepelneka változók helyén. Ez logikus: a processz nem tudja megfejteni a változó-kat, tehát számára értelmetlen, információt nem hordoz. Azonban jobbanátgondolva ez nem így van: egy processz a kulcsolt adat visszafejtése nélkülmeg tudja határozni, hogy két kulcsolt adat egyezik-e, hisz a formális nyelvmegengedi az összemérést. Ezt elkerülendő, mostantól az E-lezárások mindiginjektívek lesznek. Ez azt jelenti, hogy ha egy σ-ban x = y akkor xσ = yσés ugyanez hasonlóan a σ′-re. Így aztán ∀P -re Pσ ∼ Pσ′. Ezen infromálisérvelés az alábbi lemmára vezet:

6.2. A legtöbbet használt tételek

1. lemma. Tegyük fel, hogy E ` P és E ` P , és hogy σ injektív.

1. Ha P > Q′ akkor létezik processz Q úgy, hogy E ` Q, fv(Q) ⊆ fv(P ),fn(Q) ⊆ fn(P ) és Q′ = Qσ úgy, hogy mindig mikor E ` σ′ és σ′

injektív, akkor Pσ′ > Qσ′.

2. Ha Pα→ A′ akkor létezik egy ágens A, úgy, hogy E ` A, fv(A) ⊆ fv(P ),

fn(A) ⊆ fn(P ), és A′ = Aσ úgy, hogy mindig mikor E ` σ′ és σ′

injektív, akkor Pσ′α→ Aσ′ ♦

A lemma kijelentéseinek az intuitív értelme:

1. Pσ′-ban vannak változók, de nincsenek benne hozzájuk tartozó nevek(akulcsok), így P nem fejtheti meg a kódolt változókat(nem használhatja

Page 27: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 25

a Red Decrypt szabályt). Pσ redukálódik Q′-vá. Vegyük észre, hogya redukcióban nincsen kommunikációs lehetőség. Innen könnyen belát-ható, hogy Q′-höz található egy Q, amire Qσ = Q′. Innen, felhasználvaaz E-lezárás értelmét, és azt, hogy σ és σ ′ injektív, az állítás logikus.

2. A feltétel ugyanaz mint az előbb, tehát a P továbbra sem tudja ki-kódolni a kódolt változókat, és így nem használhatja a Red Decryptszabályt, azonban itt a P -n belül már lehet kommunikáció, sőt, P elis kötelezheti magát a neve(i) mellett(de lehet az α a τ is, mely eset-ben nem kell, hogy elkötelezze magát P valami mellett). Innen könnyenbelátható, hogy A′-höz talalálható olyan A, amire Aσ = A′. Innen, fel-használva az E-lezárás értelmét, és azt, hogy σ és σ ′ injektív, az állításlogikus.

2. tétel. Tegyük fel, hogy E ` σ, E ` σ′, és mind σ és σ′ injektív. AkkorS = {(Pσ, Pσ′) | E ` P} egy barb biszimuláció. ♦

Vegyük észre, hogy a barb kongruencia csak a barb-okat figyeli, az adato-kat, amik mennek, nem. Innen a tétel állítása érthető: mivel sem P , sem P ′

nem tudja kikódolni a bekódolt adatokat amik σ-ban, illetve σ-ban vannak,a két processz barb-jait tekintve ugyanúgy kell, hogy működjön.

7. Formális bizonyítások a Spi kalkulussal

7.1. A formális bizonyítások célja

A protokollok elemzése során formálisan bizonyítani kell, hogy az adottprotokoll helyes, vagyis nem konstruálható ellene semmilyen támadás, illetveha létezik ellene támadás ami megsérti a biztonsági tulajdonságokat, akkorannak a támadásnak a formális definícióját meg kell adni, illetve javítani kella hibát a protokollban. A támadó itt egy olyan processzt jelent, aki képeskülönbséget tenni titkosság esetén Inst(M) és Inst(M ′) protokollok között,ha feltesszük, hogy F (M) és F (M ′) megkülönböztethetetlen minden M ésM ′-re, míg autentikáció esetén Inst(M) és Instspec(M) között minden M -re,ahol Instspec(M) az Inst(M) egy idealizált változata.

A különbségtétel a teszt(elési) ekvivalenciával fogalmazható meg:

• Hitelesség, autentikáció (integritás): Inst(M) ' Instspec(M) min-den M -re.

• Információ elrejtés, titkosság: Ha F (M) ' F (M ′), akkorInst(M) ' Inst(M ′) minden M, M ′-re.

Egy R processz egy teszt (támadó), amit ha párhuzamosan futtatunk a Pprocesszel (vizsgált protokoll), akkor R képes egy barb-on keresztül jelezni.

Page 28: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 26

Vagyis R akkor képes megkülönböztetni egy P és Q processzt, ha P -vel pár-huzamosan futtatva R kiállít ω barb-ot, míg Q-val párhuzamosan futtatvanem (vagy fordítva). Intuitíve így R képes különbséget tenni P és Q között,annak ellenére, hogy mindegyik egy „fekete doboz” számára.

A viselkedés ekvivalenciák bevezetése során látható volt, hogy a teszt ek-vivalenciánál egy erősebb feltételt fogalmaz meg a barb kongruencia, hiszena teszt ekvivalencia csak barb-ok konvergenciáját veszi figyelembe. Sok eset-ben viszont a barb kongruencia igazolása egyszerűbb, amiből már következika teszt ekvivalencia (1. ábra).

7.2. Egy bizonyítás általános menete

A következőkben bemutatunk egy egyszerű protokollt, amiről belátjuk,hogy kielégíti a biztonsági egyenleteket. A hitelesség bizonyításának menetea következő:

• Belátjuk, hogy a kérdéses protokolloknak megfeleltetett processzek barbkongruensek (∼), amiből következik a teszt ekvivalencia (').

• A barb kongruenciát visszavezetjük definíciója szerint a barb ekviva-lenciára.

• A barb ekvivalenciát definíciója szerint visszavezetjük a barb biszimu-lációra.

• Konstruálunk egy alkalmas relációt (S), amiről belátjuk, hogy barbbiszimuláció. Ez a reláció célszerűen olyan, ami a vizsgálandó protokollés egy támadó (R1) párhuzamos futtatásából képzett processzt párosíta protokoll idealizált változata és ugyanezen R1 támadó párhuzamosfuttatásából képzett processzel.

• Ha a két processz barb biszimulációban áll egymással, akkor barb ek-vivalensek is, hiszen a barb ekvivalencia a barb biszimulációk uniója.

• A barb biszimuláció igazolásához kölcsönösen megfeleltetjük a két pro-cessz összes lehetséges barb-jait és reakcióit egymásnak. A reakciókmegfeleltetése során felhasználjuk a 1. lemmát, amivel formálisan iga-zoljuk, hogy a támadó által küldött üzenet vagy a rejtjeles környezetnekmegfelelően rejtjelezett üzenet, vagy nem egy ennek megfelelően rejtje-lezett üzenet (vagyis nem dekódolható).

A titkosság bizonyításának menete teljesen hasonló a hitelesség igazolá-sának fenti menetéhez azzal a különbséggel, hogy először a titkosság egyenle-tének egy gyengébb változatát látjuk be, amiből már egyszerűen következika titkosság teljes fenti egyenlete.

Page 29: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 27

7.3. Példa

7.3.1. A protokoll leírása a spi kalkulus formalizmusával

Adott a következő protokoll:

A(M) , cAB〈{M}KAB〉

B , cAB(x).case x of {y}KABin F (y)

Inst(M) , (νKAB)(A(M) | B)

Bspec(M) , cAB(x).case x of {y}KABin F (M)

Instspec(M) , (νKAB)(A(M) | Bspec(M))

Ebben a példában látható, hogy Inst(M) és Instspec(M) nem erősen bi-szimuláció ekvivalensek. A továbbiakban bebizonyítjuk, hogy Inst(M) ésInstspec(M) barb kongruensek.

7.3.2. A hitelesség és integritás igazolása

3. tétel (autentikáció). Minden zárt M termre Inst(M) ' Instspec(M).♦

Bizonyítás Bebizonyítjuk, hogy Inst(M) ∼ Instspec(M), amiből már követ-kezik az állítás, mivel a barb kongruenciából következik a teszt ekvivalencia.

Tegyük fel, hogy R egy tetszőleges zárt processz és M egy tetszőleges zártterm, valamint, hogy KAB 6∈ fn(R). A következőkben megmutatjuk, hogy

(cAB〈{M}KAB〉 | B | R)

∼ (cAB〈{M}KAB〉 | Bspec(M) | R) (1)

ebből következik, hogy

(νKAB)(cAB〈{M}KAB〉 | B | R)

∼ (νKAB)(cAB〈{M}KAB〉 | Bspec(M) | R)

mert a barb kongruencia zárt a megkötés műveletére nézve. Mivel KAB 6∈fn(R), kapjuk, hogy

(Inst(M) | R) ≡ (cAB〈{M}KAB〉 | B | R)

valamint

(Instspec(M) | R) ≡ (cAB〈{M}KAB〉 | Bspec(M) | R)

Mivel a barb ekvivalencia gyengébb a struktúrális ekvivalenciánál, ezért

(Instspec(M) | R)�

∼ (Inst(M) | R)

Page 30: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 28

amiből a barb kongruencia definíciója miatt következik, hogy

Instspec(M) ∼ Inst(M)

Tehát hátra van még a (1) egyenlet igazolása. Ennek érdekében legyenσ = [{M}KAB

/x] és vezessük be a következő S relációt:

P S Q akkor és csak akkor, ha létezik olyan R1, hogy

P = B | R1σ és Q = Bspec(M) | R1σ, ahol x : {−}KAB` R1

Szemléletesen R1σ processz jelentheti vagy a protokollban részt vevő Aküldő felet, vagy pedig egy tetszőleges támadót. A következőkben belátjuk,hogy S ∪

∼ egy barb biszimuláció. Ehhez elég azt belátni, hogy ha P S Q,akkor igaz, hogy P és Q barb-jai és reakciói kölcsönösen megfeleltethetőkegymásnak.

A fentiek miatt ha P S Q, akkor létezik olyan R1, hogy P = B | R1σ ésQ = Bspec(M) | R1σ miközben x : {−}KAB

` R1. Vagyis P processz barb-jaia következőek:

1. P ↓ cAB (B-ből eredően).

2. P ↓ β, ha R1σ ↓ β.

Világosan látható, hogy Q szintén ezeket a barb-okat mutatja. P lehetségesreakciói a következők.

1. ha R1σcAB→ (ν−→n )〈N〉R′ és P ′ ≡ (ν−→n )(case N of {y}KAB

in F (y) | R′ ),akkor P → P ′,

2. ha R1στ→ R′ és P ′ ≡ B | R′, akkor P → P ′.

Feltesszük, hogy −→n nevek frissek. Az alábbiakban megmutatjuk, hogy Qminden egyes reakciója megfeleltethető P fenti reakciói valamelyikének.

1. Q egyik lehetséges reakciója:

Q → Q′ , (ν−→n )(case N of {y}KABin F (M) | R′ )

Elég megmutatni, hogy P ′�

∼ Q′. A 1. lemma alapján létezik olyan R′

1,hogy x : {−}KAB

` R′

1és R′

1σ = (ν−→n )〈N〉R′. Tehát R′

1(ν−→n )〈N0〉R0

alakú, ahol N = N0σ és R′ = R0σ, valamint x : {−}KAB` N0 és

x : {−}KAB` R0. Mivel x : {−}KAB

` N0, ezért N0σ vagy {M}KAB(ha

N0 az x), vagy N0σ nem egy KAB kulccsal rejtjelezett szöveg.

Page 31: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 29

Az első esetben:

P ′ ≡ (ν−→n )(case {M}KABof {y}KAB

in F (y) | R′ )

≡ (ν−→n )(F (M) | R′)

≡ (ν−→n )(case {M}KABof {y}KAB

in F (M) | R′ )

≡ Q′

A második esetben a dekódolás elakad, ezért

P ′ ≡ (ν−→n )(case N of {y}KABin F (y) | R′ )

∼ (ν−→n )(0 | R′)�

∼ (ν−→n )(case N of {y}KABin F (M) | R′ )

≡ Q′

felhasználva, hogy a struktúrális ekvivalenciából következik a barb ek-vivalencia, valamint, hogy tetszőleges P processzre ami elakad, igaz,hogy P ∼ 0.

2. Q egy másik lehetséges reakciója:

Q → Q′ , Bspec(M) | R′

Ebben az esetben elég megmutatni, hogy P ′�

∼ S�

∼ Q′. A 1. lemmaalapján létezik olyan R′

1, hogy x : {−}KAB` R′

1 és R′

1σ = R′. Tehát(B | R′)S Q′-t, és így P ′ ≡ S ≡ Q′.

Teljesen hasonló módon igazolható, hogy P barb-jai és reakciói is megfe-leltethetőek Q barb-jainak és reakcióinak. Mindezekből kapjuk, hogy S ∪

egy barb biszimuláció, és így�

∼ definíciója miatt S ⊆�

∼.

A (1) egyenlet igazolásához legyen R0 = cAB〈x〉 | R. Kapjuk, hogy

cAB〈{M}KAB〉 | B | R ≡ B | R1σ

S Bspec(M) | R1σ

≡ cAB〈{M}KAB〉 | Bspec(M) | R

Ebből már (1) egyenlet következik, mivel S ⊆�

∼, és mivel a struktúrálisekvivalenciából következik a barb ekvivalencia.

7.3.3. Az információ elrejtés (titkosság) bizonyítása

Az információ elrejtés igazolásához először belátunk egy segédtételt, ami-ből már könnyen bizonyítható a teljes információ elrejtés.

2. lemma. Inst(M) ' Inst(M ′) ha F (x) az c〈∗〉 minden zárt M és M ′

termre. ♦

Page 32: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 30

Bizonyítás A hitelesség bizonyításához teljesen hasonló módon járunk el,vagyis elég igazolni a következő egyenlőséget:

(cAB〈{M}KAB〉 | B | R)

∼ (cAB〈{M′}KAB

〉 | B | R) (2)

Feltéve, hogy KAB 6∈ fn(R) és M és M ′ zárt termek. Ennek az egyenlőségnekaz igazolásához definiáljuk a σ = [{M}KAB

/x] és a σ′ = [{M ′}KAB/x]-t, és

vezessük be a következő S relációt:

P S Q akkor és csak akkor, ha létezik olyan R1, hogy

P = B | R1σ és Q = B | R1σ′, ahol x : {−}KAB

` R1

A {(R1σ, R1σ′) | x : {−}KAB

` R1} reláció egy barb biszimuláció a 2. tételmiatt. Ezek után igazoljuk, hogy S ∪

∼ egy barb biszimuláció. Ehhez elégazt belátni, hogy ha P S Q, akkor igaz, hogy P és Q barb-jai és reakcióikölcsönösen megfeleltethetők egymásnak.

A fentiek miatt ha P S Q, akkor létezik olyan R1, hogy P = B | R1σés Q = B | R1σ

′ miközben x : {−}KAB` R1. Vagyis P processz barb-jai a

következőek:

1. P ↓ cAB (B-ből eredően).

2. P ↓ β, ha R1σ ↓ β.

Világosan látható, hogy Q szintén ezeket a barb-okat mutatja, mivel R1σ ésR1σ

′ barb biszimulációban állnak egymással. P lehetséges reakciói a követ-kezők.

1. ha R1σcAB→ (ν−→n )〈N〉R′ és P ′ ≡ (ν−→n )(case N of {y}KAB

in c〈∗〉 | R′ ),akkor P → P ′,

2. ha R1στ→ R′ és P ′ ≡ B | R′, akkor P → P ′.

Itt is feltesszük, hogy −→n nevek frissek. Az alábbiakban megmutatjuk, hogy Qminden egyes reakciója megfeleltethető P fenti reakcióinak valamelyikének.

1. A 1. lemma alapján létezik olyan R′

1, hogy x : {−}KAB

` R′

1és R′

1σ =

(ν−→n )〈N〉R′ és R1σ′ = (ν−→n )〈N0σ

′〉R0σ′. Tehát R′

1az (ν−→n )〈N0〉R0 alakú,

ahol N = N0σ és R′ = R0σ, valamint mindkét esetben x : {−}KAB` N0

és x : {−}KAB` R0. Mivel R1σ

′ = (ν−→n )〈N0σ′〉R0σ

′, ezért kapjuk, hogy

Q → Q′ , (ν−→n )(case N0σ′ of {y}KAB

in c〈∗〉 | R0σ′ )

Ezek után elég belátni, hogy P ′�

∼ Q′. Mivel x : {−}KAB` N0, ezért

vagy N0σ az {M}KABalakú és N0σ

′ az {M ′}KABalakú (ha N0 az x),

Page 33: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 31

vagy N0σ és N0σ′ nem a KAB kulccsal rejtjelezett üzenetek. Az első

esetben:

P ′ ≡ (ν−→n )(case {M}KABof {y}KAB

in c〈∗〉 | R′ )

≡ (ν−→n )(c〈∗〉 | R′)

≡ (ν−→n )(c〈∗〉 | R0σ)�

∼ (ν−→n )(c〈∗〉 | R0σ′)

≡ (ν−→n )(case {M ′}KABof {y}KAB

in c〈∗〉 | R0σ′ )

≡ Q′

A (ν−→n )(c〈∗〉 | R0σ)�

∼ (ν−→n )(c〈∗〉 | R0σ′) lépés a 2. tétel miatt igaz,

mivel x : {−}KAB` (ν−→n )(c〈∗〉 | R0).

A második esetben a dekódolás elakad, ezért

P ′ ≡ (ν−→n )(case N of {y}KABin c〈∗〉 | R′ )

∼ (ν−→n )(0 | R′)

= (ν−→n )(0 | R0σ)�

∼ (ν−→n )(0 | R0σ′)

∼ (ν−→n )(case N0σ′ of {y}KAB

in c〈∗〉 | R0σ′ )

≡ Q′

A (ν−→n )(0 | R′)�

∼ (ν−→n )(0 | R0σ′) lépés a 2. tétel miatt igaz, mivel

x : {−}KAB` (ν−→n )(0 | R0).

Mindkét esetben azt kapjuk, hogy P ′�

∼ Q′.

2. A 1. lemma alapján létezik R′

1, hogy x : {−}KAB` R′

1, R′

1σ = R′ ésR1σ

′τ→ R′

1σ′, vagyis

Q → Q′ , B | R′

1σ′

Világos, hogy (B | R′) S Q′, és így P ′ ≡ S ≡ Q′.

Teljesen hasonló módon igazolható, hogy P barb-jai és reakciói is megfe-leltethetőek Q barb-jainak és reakcióinak. Mindezekből kapjuk, hogy S ∪

egy barb biszimuláció, és így�

∼ definíciója miatt S ⊆�

∼.

A (2) egyenlet igazolásához legyen R1 = cAB〈x〉 | R. Kapjuk, hogy

cAB〈{M}KAB〉 | B | R ≡ B | R1σ

S B | R1σ′

≡ cAB〈{M′}KAB

〉 | B | R

Ebből már (2) egyenlet következik, mivel S ⊆�

∼, és mivel a struktúrálisekvivalenciából következik a barb ekvivalencia.

Page 34: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

FORMÁLIS BIZONYÍTÁSOK A SPI KALKULUSSAL 32

A teljes titkosság igazolása ezek alapján a következő.

4. tétel (Teljes titkosság). Minden zárt M és M ′ term esetén Inst(M) 'Inst(M ′), ha F (M) ' F (M ′). ♦

Bizonyítás Jelöljük Inst(M, (x)c〈∗〉)-vel Inst(M) egy olyan speciális ese-tét, amikor F (x) az c〈∗〉. Ebből adódik, hogy itt Inst(M) és Instspec(M)szintaktikailag megegyeznek.

Tegyük fel, hogy c egy friss név, és y egy friss változó. Jelöljük τ.F (N)-el(νc)(c〈∗〉 | c(y).F (N))-t. Minden zárt N term esetén kapjuk, hogy

(νc)(cAB(x).case x of {y}KABin c〈∗〉 | c(y).F (N) ) ∼s

cAB(x).case x of {y}KABin τ.F (N)

mivel ezen processzek lehetséges barb elkötelezései a következőek:

(νc)(cAB(x).case x of {y}KABin c〈∗〉 | c(y).F (N) )

cAB→ (x).τ.F (N)

cAB(x).case x of {y}KABin τ.F (N)

cAB→ (x).τ.F (N)

vagy mindkettő elakad.Ezekből kapjuk a következő egyenletet:

Instspec(N) ' (νc)(Inst(M, (x)c〈∗〉) | c(y).F (N)) (3)

mivel

Instspec(N) = (νKAB)(A(M).0 | Bspec(M))

' (νKAB)(A(M).0 | cAB(x).case x of {y}KABin (τ.F (M)) )

' (νKAB)(A(M).0 | (νc)(cAB(x).case x of {y}KABin c〈∗〉

| c(z).F (M) ))

' (νc)((νKAB)(A(M).0 | cAB(x).case x of {y}KABin c〈∗〉)

| c(z).F (M) )

= (νc)(Inst(M, (x)c〈∗〉) | c(y).F (N))

felhasználva, hogy F (N) ' τ.F (N)3, valamint, hogy a teszt ekvivalencia egykongruencia, valamint, hogy az erős biszimulációból következik a teszt ekvi-valencia.

Végül az (3) egyenlet, a 2. tétel, a 3. tétel alapján, valamint feltéve, hogyF (M) ' F (M ′) kapjuk, hogy

Inst(M) ' Instspec(M)

' (νc)(Inst(M, (x)c〈∗〉) | c(y).F (M))

' (νc)(Inst(M ′, (x)c〈∗〉) | c(y).F (M ′))

' Instspec(M′)

' Inst(M ′)

Ezzel az állítást igazoltuk.3Ezt a tételt τ -törvénynek is hívják. Igazolása a teszt ekvivalencia definíciójából követ-

kezik (P v τ.P és τ.P v P )

Page 35: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

ÖNÉRTÉKELÉS 33

8. Önértékelés

A Spi formalizmusa mindkettőnk számára szokatlan volt kezdetben, de alabor végére többé-kevésbé sikerült megbarátkoznunk vele. Nagy gondot je-lentett az előtanulmányok elsajátítása, mivel a processz algebra és az ehhezkapcsolódó ekvivalencia relációk nem szerepeltek szervesen az informatikaiképzés során. Sokszor utána kellett járnunk különböző előismereteknek, ami-ket még az Internet-en is csak foszlányokban sikerült összeszedni. Sajnos nemtaláltunk összefüggő ismertetőt a formális módszerek ezen területére vonat-kozóan, annak ellenére, hogy ezen tudományág alapjait már 20 éve lerakták!

A fentiekből kifolyólag a beszámoló során néhol bizonytalanságokat (és ta-lán hibákat) lehet felfedezni annak ellenére, hogy probáltuk tudásunk legjavátnyújtani. Néha közösen próbáltunk meg a nyitott kérdésekre közös megoldásttalálni több-kevesebb sikerrel.

Mindezek ellenére a labortéma érdekes volt, és a módszer jövője is sike-rekkel kecsegtet a kriptográfia és a biztonságtechnika dinamikus fejlődésétfigyelembe véve. Szerintünk ezen területlen még sok kiaknázatlan lehetőségvan, ami új fejlődési irányvonalakat nyithat meg a kriptográfiában.

Page 36: A Spi kalkulus - hit.bme.hubuttyan/sprj/AcsSoos0304-2.pdfKivonat A feladatunk egy kriptogrÆ˝ai formÆlis elemzØs [1] feldolgozÆsa volt a fØlØv folyamÆn. Ez az elemzØsi mód

HIVATKOZÁSOK 34

Hivatkozások

[1] Martín Abadi and Andrew D. Gordon; A Calculus for Cryptographic Pro-tocols, The Spi Calculus, 1998

[2] Robin Milner, Joachim Parrow, David Walker; A Calculus of Mobile Pro-cesses, Part I-II, 1989