UNIVERSITETET I OSLO

Like dokumenter
UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Modellering av kommuniserende systemer i Maude

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF 3230/4230 Forelesning 9: Omskrivningslogikk

UNIVERSITETET I OSLO

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Eksamen i emnet Mat131 - Differensiallikningar I Onsdag 25. mai 2016, kl.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

En Maude-modell for sikker asynkron kommunikasjon i π-kalkylen

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF 3230/4230 Forelesning 4: Assosiativitet og kommutativitet; operasjonell semantikk

Slope-Intercept Formula

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Hvor mye teoretisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

IN2010: Algoritmer og Datastrukturer Series 2

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet

Hjemmeeksamen 1 i INF3110/4110

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Dynamic Programming Longest Common Subsequence. Class 27

INF Logikk og analysemetoder Forslag til løsning på oppgave fra læreboken

UNIVERSITY OF OSLO DEPARTMENT OF ECONOMICS

INF 3230: Videregående kurs i formell modellering

UNIVERSITETET I OSLO

Trigonometric Substitution

Syntax/semantics - I INF 3110/ /29/2005 1

Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser

Eksamen ENG1002/1003 Engelsk fellesfag Elevar og privatistar/elever og privatister. Nynorsk/Bokmål

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

Med Svarforslag UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet. 3 sider (side 6, 7 og 8, rives ut, fylles ut og leveres)

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

Endelig ikke-røyker for Kvinner! (Norwegian Edition)

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Trådløsnett med. Wireless network. MacOSX 10.5 Leopard. with MacOSX 10.5 Leopard

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi

UNIVERSITETET I OSLO

Vekeplan 4. Trinn. Måndag Tysdag Onsdag Torsdag Fredag AB CD AB CD AB CD AB CD AB CD. Norsk Matte Symjing Ute Norsk Matte M&H Norsk

Mathematics 114Q Integration Practice Problems SOLUTIONS. = 1 8 (x2 +5x) 8 + C. [u = x 2 +5x] = 1 11 (3 x)11 + C. [u =3 x] = 2 (7x + 9)3/2

Skjema for spørsmål og svar angående: Skuddbeskyttende skjold Saksnr TED: 2014/S

Databases 1. Extended Relational Algebra

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

Dagens tema: Eksempel Klisjéer (mønstre) Tommelfingerregler

UNIVERSITETET I OSLO

BIBSYS Brukermøte 2011 Live Rasmussen og Andreas Christensen. Alt på et brett? -om pensum på ipad og lesebrett

Om oppgaveteksten på noe punkt er uklar eller upresis, kan du gjøre egne presiseringer. Formulér i så fall disse tydelig i oppgavebesvarelsen din.

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Hjemmeeksamen 2 i INF3110/4110

UNIVERSITETET I OSLO

INF2820 Datalingvistikk V2012. Jan Tore Lønning & Stephan Oepen

FIRST LEGO League. Härnösand 2012

Eksamensoppgaver til SOSANT1101. Regional etnografi: jordens folk og kulturelt mangfold. Utsatt skoleeksamen 12. desember 2013 kl.

5 E Lesson: Solving Monohybrid Punnett Squares with Coding

Transkript:

UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF220 Formell modellering og eksekvering av kommuniserende systemer Eksamensdag: 5. juni 2003 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 14 sider. Vedlegg: Maude spesifikasjon av NSPK-protokollen Tillatte hjelpemidler: Alle trykte og skrevne Kontroller at oppgavesettet er komplett før du begynner å besvare spørsmålene. Oppgavene og deloppgavene kan til en stor grad løses uavhengig av hverandre. Om det er en deloppgave du ikke har løst, så anta at du har løst den og prøv å gå videre i settet. Alle sorter og operasjoner definert i pensum kan brukes fritt (gjerne med en henvisning). Legg vekt på å finne enkle og elegante løsninger! Prosentandelene angitt i parentes for hver deloppgave er veiledende. (Fortsettes på side 2.)

Eksamen i INF220, 5. juni 2003 Side 2 Oppgave 1 Tekster (17 %) En datatype Tekst er definert på følgende måte: sorts Bokstav Tekst. subsort Bokstav < Tekst. ops a b c d e f g h i j k l m n o p q r s t u v w x y z : -> Bokstav [ctor]. op : Tekst Tekst -> Tekst [ctor assoc]. 1a Palindromer (5 %) Et palindrom er en tekst som er den samme uansett om den leses fra venstre mot høyre eller fra høyre mot venstre. Eksempelvis er a b b a og b o b og m a d a m i m a d a m 1 alle palindromer, mens for eksempel e k s a m e n e r m o r o ikke er et palindrom. Definér en funksjon op erpalindrom : Tekst -> Bool. som sjekker hvorvidt en gitt grunnterm av sort Tekst er et palindrom. 1b Initialsegmenter (6 %) Definér en funksjon op _erinitialsegmentav_ : Tekst Tekst -> Bool. slik at t erinitialsegmentav t er true hvis og bare hvis t er et initialsegment av t, dvs. dersom t er begynnelsen av t. Eksempelvis er både b og b o og b o b initialsegmenter av b o b, mens hverken o l l i e eller b a eller o b eller b o b b y er initialsegmenter av b o b. 1c Substrenger (6 %) Definér en funksjon op _finnesi_ : Tekst Tekst -> Bool. 1 Verdenshistoriens første (?) uttalte setning, Madam, I m Adam, er altså et palindrom. (Fortsettes på side 3.)

Eksamen i INF220, 5. juni 2003 Side 3 slik at t finnesi t er true hvis og bare hvis Teksten t finnes et eller annet sted i t (dvs., t er en substreng av t ). Eksempelvis er både a b c finnesi d a b d e a b c x og a b c finnesi a b c lik true, mens både a b c finnesi a b og a b c finnesi b a b d c e erfalse. Oppgave 2 Terminering (30 %) Vi skal se på énsortede likhetsspesifikasjoner (og bruker notasjonskonvensjonen for énsortede spesifikasjoner gitt i kompendiets kapittel 3). Med unionen E 1 E 2 av to likhetsspesifikasjoner E 1 og E 2 mener vi unionen av deres funksjonsymboler, variable og ligninger. (Vi antar at dersom et funksjonsymbol 2 f forekommer i både E 1 og E 2 så tar f det samme antall parametre i E 1 og E 2. På samme måte kræsjer ikke variabelnavn i E 1 med funksjonsymbolnavn i E 2, og omvendt.) Eksempelvis er {f (x) =b, a=b} {f(x)=c, c=d} lik {f (x) =b, a=b, f(x)=c, c=d}. 2a Modularitet av terminering (4 %) Vis at det finnes terminerende systemer E 1 og E 2 som har nøyaktig to funksjonsymboler felles 3, slik at deres union E 1 E 2 ikke er terminerende. 2b Mer modularitet av terminering (6 %) Er det alltid slik at E 1 E 2 er terminerende når både E 1 og E 2 er terminerende, og E 1 og E 2 ikke har noe funksjonsymbol felles? Begrunn svaret. 2c Modularitet og stiordninger (5 %) Anta nå at E 1 og E 2 begge kan vises å være terminerende ved bruk av den leksikografiske stiordningen, og at E 1 og E 2 ikke har noe funksjonsymbol felles. Er unionen E 1 E 2 alltid terminerende? Begrunn svaret. 2 husk at konstanter også regnes som funksjonsymboler 3 dvs. at det er nøyaktig to funksjonsymboler som forekommer i både E 1 og E 2 (Fortsettes på side 4.)

Eksamen i INF220, 5. juni 2003 Side 4 2d Modularitet og stiordninger II (5 %) Anta nå at E 1 og E 2 begge kan vises å være terminerende ved bruk av den leksikografiske stiordningen, og at E 1 og E 2 har ett funksjonsymbol felles. Er unionen E 1 E 2 alltid terminerende? Begrunn svaret. 2e Modularitet og stiordninger III (4 %) Anta nå at E 1 og E 2 begge kan vises å være terminerende ved bruk av den leksikografiske stiordningen, og at E 1 og E 2 har to funksjonsymboler felles. Er unionen E 1 E 2 alltid terminerende? Begrunn svaret. 2f Terminering ved vekting (6 % + 5 % ekstra ) I pensum står det at spesifikasjonen {f (a, b, x) =f(x,x,x)} er terminerende. Bevis hvorfor det ikke kan finnes noen monoton vektingsfunksjon vekt (som til enhver grunnterm tilordner et naturlig tall og hvor vekt-sammenligning er vanlig større-enn over naturlige tall), som kan brukes til å bevise at den ovenstående spesifikasjonen {f (a, b, x) =f(x,x,x)} er terminerende. (Denne deloppgaven kan muligens være noe vanskeligere enn de andre oppgavene i eksamenssettet, slik at det kanskje kan lønnes seg å sanke sammen endel poenger andre steder før man går løs på denne?) Hint: Sjekk alle størrelses-forhold mellom vekt(a) og vekt(b). Tilfellet vekt(a) =vekt(b) synes vrient (men løselig) og gir de 5 ekstra-poengene i denne oppgaven. Oppgave 3 Sending av én viktig beskjed gjennom et upålitelig nettverk (15 %) I denne oppgaven har vi én sender som skal sende én meget viktig beskjed til en mottager. Dessverre er det underliggende kommunikasjonsmediet ikke helt til å stole på, slik at meldinger kan gå tapt som beskrevet i hver deloppgave. Meldinger kan ikke dupliseres eller på annen måte forandres/korrumperes under transport. (Fortsettes på side 5.)

Eksamen i INF220, 5. juni 2003 Side 5 Eventuelle protokoller skal enten beskrives nøyaktig men uformelt eller skrives i Maude. I eventuelle protokoller trenger du ikke modellere meldingstapene, men bare anta at meldingstapene kan skje som angitt i oppgaveteksten. 3a Noen meldinger vil alltid komme fram (10 %) Anta at meldinger kan gå tapt under kommunikasjon, men at en uendelig mengde av meldinger ikke kan gå tapt uten at noen meldinger kommer fram. (Dette gjelder selvfølgelig begge veier, både til og fra mottageren.) Det vil si at dersom man sender mange nok meldinger (uten at mange nok er gitt), så vil en melding før eller siden måtte komme frem. Beskriv en terminerende protokoll mellom sender og mottaker som sikrer at mottageren har fått lest (minst én kopi av) den viktige beskjeden, eller forklar hvorfor en slik terminerende protokoll ikke kan finnes. 3b Begrenset tap (5 %) Anta nå at forbindelsen mellom sender og mottager ikke kan tape mer enn 20 meldinger på rad. Beskriv en terminerende protokoll mellom sender og mottaker som sikrer at mottageren har fått lest (minst én kopi av) den viktige beskjeden, eller forklar hvorfor en slik terminerende protokoll ikke kan finnes. Oppgave 4 Autentiseringsprotokoller (38 %) I kurset har vi presentert Needham-Schroeder public-key authentication protocol (NSPK) og en Maude spesifikasjon av denne. Maude spesifikasjonen er også gitt som vedlegg A til dette eksamenssettet. Som beskrevet i pensum har Gavin Lowe foreslått en måte å gjøre protokollen sikker på, nemlig å forandre Melding 2 -delen av protokollen til slik at modifiserte protokollen blir Message 2. B A : B.A.{N a.n b.b} PK (A) Message 1. A B : A.B.{N a.a} PK (B) Message 2. B A : B.A.{N a.n b.b} PK (A) Message 3. A B : A.B.{N b } PK (B) (Fortsettes på side 6.)

Eksamen i INF220, 5. juni 2003 Side 6 4a Modellere den modifiserte protokollen i Maude (6 %) Modellér den modifiserte protokollen i Maude. Dette skal gjøres ved å angi nøyaktig hvilke regler og andre deklarasjoner som må erstattes/modifiseres i modulen NSPK og ved å angi nøyaktig ny kode til de modifiserte deklarasjonene/reglene. Du trenger altså ikke å gjøre de tilsvarende forandringene i modulen NSPK-INTRUDER (selv om det sikkert er god trening!). 4b Invarianter (18 %) Gitt følgende initialtilstand: op exinit : -> Configuration. eq exinit = < "Imtiaz" : InitiatorAndResponder initsessions : emptysession, respsessions : emptysession, noncectr : 1 > < "Maiken" : InitiatorAndResponder initsessions : notinitiated("perle"), respsessions : emptysession, noncectr : 1 > < "Perle" : Intruder initsessions : emptysession, respsessions : emptysession, noncectr : 1, agentsseen : "Perle", noncesseen : emptynonceset, encrmsgsseen : emptyencrmsg > < "Wolfie" : Intruder initsessions : notinitiated("imtiaz"), respsessions : emptysession, noncectr : 1, agentsseen : "Wolfie", noncesseen : emptynonceset, encrmsgsseen : emptyencrmsg >. Anta nå at den modifiserte NSPK-protokollen faktisk er sikker. Anta i tillegg at inntrengerspesifikasjonen er modifisert for å håndtere meldinger av type 2. Hvilke(n) av de følgende invariantene vil da holde med hensyn til initialtilstanden exinit i den modifiserte spesifikasjonen av protokollen? Svarene skal begrunnes godt men gjerne uformelt (du trenger altså ikke å angi konkrete stier etc., men bør beskrive oppførsler uformelt). 1. Hverken "Imtiaz" s initsessions-attributt eller "Imtiaz" s respsessionsattributt inneholder en verdi trustedconnection("wolfie"). (Fortsettes på side 7.)

Eksamen i INF220, 5. juni 2003 Side 7 2. Hverken "Maiken" s initsessions-attributt eller "Maiken" s respsessionsattributt inneholder en verdi trustedconnection("imtiaz"). 3. "Maiken" s initsessions inneholder en verdi trustedconnection("perle"). 4. "Maiken" s initsessions inneholder ikke en verdi trustedconnection("perle"). 5. "Perle" s respsessions attributt inneholder ikke en verdi trustedconnection("wolfie"). 6. "Wolfie" s initsessions attributt inneholder ikke en verdi trustedconnection("perle"). 4c Validering av invariant (14 %) 1. Hvilken Maude kommando (merk at det altså bare er snakk om én kommando) ville du brukt for å validere ( teste ) at den første av invariantene i deloppgaven over som holder med hensyn til tilstand exinit faktisk holder for denne initialtilstanden? (Validere = få økt tillit til at noe er korrekt) Antagelse 1: Du kan anta at Full Maude klarer å utføre such that-søk. Antagelse 2: Du kan anta at din maskin har ekstremt stort primærminne, hvis det hjelper deg. 2. Hva forventer du blir resultatet av å gi denne søkekommandoen til Maude? Begrunn kort. Lykke til! Peter C. Ølveczky Olaf Owe (Fortsettes på side 8.)

Eksamen i INF220, 5. juni 2003 Side 8 Vedlegg A: NSPK spesifikasjonen i (Full) Maude Dette er Ølveczky s Maude spesifikasjon av (den opprinnelige) NSPK protokollen og av en passende inntrenger, som beskrevet i kompendiet og på forelesning. *** Ølveczky version of the Needham-Scroeder Public-Key Athentication Protocol in full-maude.maude in LINK.maude *** The module OidSet (omod NSPK is protecting NAT. sort Nonce. op nonce : Oid Nat -> Nonce [ctor]. sort Key. op pubkey : Oid -> Key [ctor]. *** Messages involved in the specification. *** First we define the content of unencrypted messages: sorts MsgContent EncrMsgContent. op _;_ : Nonce Oid -> MsgContent [ctor]. *** Message kind "1" op _;_ : Nonce Nonce -> MsgContent [ctor]. *** Message kind "2" subsort Nonce < MsgContent. *** Message kind "3" op encrypt_with_ : MsgContent Key -> EncrMsgContent [ctor]. msg msg_from_to_ : EncrMsgContent Oid Oid -> Msg. *** Next, we define the "Initiator" class: class Initiator initsessions : InitSessions, noncectr : Nat. *** initsessions stores information about all the sessions that this *** Initiator could be involved in and their states: sorts Sessions InitSessions. *** State of the sessions for which this object is, or could be, the initiator: subsort Sessions < InitSessions. op emptysession : -> Sessions [ctor]. op : InitSessions InitSessions -> InitSessions [ctor assoc comm id: emptysession]. op : Sessions Sessions -> Sessions [ctor assoc comm id: emptysession]. (Fortsettes på side 9.)

Eksamen i INF220, 5. juni 2003 Side 9 op notinitiated : Oid -> InitSessions [ctor]. *** Not initaited yet a session with this node, but could start one. op initiated : Oid Nonce -> InitSessions [ctor]. *** Have initiated a session with this node, with the given nonce op trustedconnection : Oid -> Sessions [ctor]. *** Have established a trusted connection with the given node. *** Now we define the protocol: vars A B : Oid. vars M N : Nat. vars NONCE NONCE : Nonce. var IS : InitSessions. rl [start-send-1] : < A : Initiator initsessions : notinitiated(b) IS, noncectr : N > < A : Initiator initsessions : initiated(b, nonce(a, N)) IS, noncectr : N + 1 > msg (encrypt (nonce(a, N) ; A) with pubkey(b)) from A to B. rl [read-2-send-3] : (msg (encrypt (NONCE ; NONCE ) with pubkey(a)) from B to A) < A : Initiator initsessions : initiated(b, NONCE) IS > < A : Initiator initsessions : trustedconnection(b) IS > msg (encrypt NONCE with pubkey(b)) from A to B. *** Responder: two states: responded and trustedconnection: class Responder respsessions : RespSessions, noncectr : Nat. sort RespSessions. subsort Sessions < RespSessions. op : RespSessions RespSessions -> RespSessions [ctor assoc comm id: emptysession]. op responded : Oid Nonce -> RespSessions [ctor]. *** Do we already have a session going for an object: op _insession_ : Oid RespSessions -> Bool. (Fortsettes på side 10.)

Eksamen i INF220, 5. juni 2003 Side 10 var RS : RespSessions. eq A insession emptysession = false. eq A insession (trustedconnection(b) RS) = (A == B) or (A insession RS). eq A insession (responded(b, NONCE) RS) = (A == B) or (A insession RS). *** The rules, first receive message 1, and send message 2: crl [read-1-send-2] : (msg (encrypt (NONCE ; A) with pubkey(b)) from A to B) < B : Responder respsessions : RS, noncectr : N > < B : Responder respsessions : responded(a, nonce(b, N)) RS, noncectr : N + 1 > msg (encrypt (NONCE ; nonce(b, N)) with pubkey(a)) from B to A if not A insession RS. *** Finally, the responder receives message 3: rl [read-3] : (msg (encrypt NONCE with pubkey(b)) from A to B) < B : Responder respsessions : responded(a, NONCE) RS > < B : Responder respsessions : trustedconnection(a) RS >. *** Finally, a node may both be initiator and responder: class InitiatorAndResponder. subclass InitiatorAndResponder < Initiator Responder. endom) (omod NSPK-INTRUDER is including NSPK. including OID-SET. *** Specifies all the possibilities of a "stupid intruder" *** The intruder must be able to store *** - nonces it has seen *** - encrypted message content it has seen, but could not decrypt *** - names of other agents it has seen (Fortsettes på side 11.)

Eksamen i INF220, 5. juni 2003 Side 11 vars NONCE NONCE : Nonce. vars A B I O O O : Oid. var ENCRMSG : EncrMsgContent. var ENCRMSGS : EncrMsgContentSet. var N : Nat. var OS : OidSet. var NSET : NonceSet. var IS : InitSessions. var RS : RespSessions. var MSGC : MsgContent. *** Set of nonces seen: sort NonceSet. subsort Nonce < NonceSet. op emptynonceset : -> NonceSet [ctor]. op : NonceSet NonceSet -> NonceSet [ctor assoc comm id: emptynonceset]. eq NONCE NONCE = NONCE. *** Set of encrypted messages seen: sort EncrMsgContentSet. subsort EncrMsgContent < EncrMsgContentSet. op emptyencrmsg : -> EncrMsgContentSet [ctor]. op : EncrMsgContentSet EncrMsgContentSet -> EncrMsgContentSet [ctor assoc comm id: emptyencrmsg]. eq ENCRMSG ENCRMSG = ENCRMSG. *** Set of agents seen is an OidSet, which is really a multiset, *** so we add the following axiom: eq O ; O = O. *** The intruder has the capabilities of a initiator and responder, *** and can in addition do all kinds of strange message sending: class Intruder initsessions : InitSessions, respsessions : RespSessions, noncectr : Nat, agentsseen : OidSet, noncesseen : NonceSet, encrmsgsseen : EncrMsgContentSet. *** The usual protocol roles. rl [I-send-1] : < I : Intruder initsessions : notinitiated(b) IS, noncectr : N, agentsseen : OS, noncesseen : NSET > (Fortsettes på side 12.)

Eksamen i INF220, 5. juni 2003 Side 12 < I : Intruder initsessions : initiated(b, nonce(i, N)) IS, noncectr : N + 1, agentsseen : OS ; B, noncesseen : nonce(i, N) NSET > (msg (encrypt (nonce(i, N) ; I) with pubkey(b)) from I to B). crl [I-rcv-1] : (msg (encrypt (NONCE ; A) with pubkey(i)) from A to I) < I : Intruder respsessions : RS, noncectr : N, agentsseen : OS, noncesseen : NSET > < I : Intruder respsessions : responded(a, nonce(i, N)) RS, noncectr : N + 1, agentsseen : OS ; A, noncesseen : NSET NONCE nonce(i, N) > (msg (encrypt (NONCE ; nonce(i, N)) with pubkey(a)) from I to A) if not A insession RS. rl [I-rcv-2] : (msg (encrypt (NONCE ; NONCE ) with pubkey(i)) from B to I) < I : Intruder initsessions : initiated(b, NONCE) IS, noncesseen : NSET > < I : Intruder initsessions : trustedconnection(b) IS, noncesseen : NSET NONCE > (msg (encrypt NONCE with pubkey(b)) from I to B). rl [I-rcv-3] : (msg (encrypt NONCE with pubkey(i)) from A to I) < I : Intruder respsessions : responded(a, NONCE) IS > < I : Intruder respsessions : trustedconnection(a) IS >. *** Now, we model the less pleasant capabilities of the intruder. *** The intruder may overhear messages passed around in the system. *** We get a lot of cases here, depending on whether *** the agent can read the message or not. *** We first state the cases where the intruder can overhear *** a message he cannot understand: crl [overhear-but-not-understand] : (msg (encrypt MSGC with pubkey(o)) from O to O) < I : Intruder agentsseen : OS, encrmsgsseen : ENCRMSGS > (Fortsettes på side 13.)

Eksamen i INF220, 5. juni 2003 Side 13 < I : Intruder agentsseen : OS ; O ; O, encrmsgsseen : (encrypt MSGC with pubkey(o)) ENCRMSGS > (msg (encrypt MSGC with pubkey(o)) from O to O) if O =/= I. crl [intercept-but-not-understand] : (msg (encrypt MSGC with pubkey(o)) from O to O) < I : Intruder agentsseen : OS, encrmsgsseen : ENCRMSGS > < I : Intruder agentsseen : OS ; O ; O, encrmsgsseen : (encrypt MSGC with pubkey(o)) ENCRMSGS > if O =/= I. *** We may strictly speaking be done with storing stuff. However, *** for extreme caution, in case there are other guys around, *** may store messages which are encrypted with I s key... rl [intercept-msg1-and-understand] : (msg (encrypt (NONCE ; A) with pubkey(i)) from O to I) < I : Intruder agentsseen : OS, noncesseen : NSET > < I : Intruder agentsseen : OS ; O ; A, noncesseen : NSET NONCE >. rl [intercept-msg2-and-understand] : (msg (encrypt (NONCE ; NONCE ) with pubkey(i)) from O to I) < I : Intruder agentsseen : OS, noncesseen : NSET > < I : Intruder agentsseen : OS ; O, noncesseen : NSET NONCE NONCE >. rl [intercept-msg3-and-understand] : (msg (encrypt NONCE with pubkey(i)) from O to I) < I : Intruder agentsseen : OS, noncesseen : NSET > < I : Intruder agentsseen : OS ; O, noncesseen : NSET NONCE >. *** And now, the fun part! The sending of messages into the wild ocean! *** First, it sends messages it could not read out to *** arbitrary receives "from arbitrary sender". (Fortsettes på side 14.)

Eksamen i INF220, 5. juni 2003 Side 14 crl [send-encrypted] : < I : Intruder encrmsgsseen : (encrypt MSGC with pubkey(b)) ENCRMSGS, agentsseen : A ; OS > < I : Intruder > (msg (encrypt MSGC with pubkey(b)) from A to B) if A =/= B /\ B =/= I. *** Now, we send stuff whose contents we know. Clearly, the contents *** must be encrypted with the recipient s key: crl [send-1-fake] : < I : Intruder agentsseen : A ; B ; OS, noncesseen : NONCE NSET > < I : Intruder > (msg (encrypt (NONCE ; A) with pubkey(b)) from A to B) if A =/= B /\ B =/= I. crl [send-2-fake] : < I : Intruder agentsseen : A ; B ; OS, noncesseen : NONCE NONCE NSET > < I : Intruder > (msg (encrypt (NONCE ; NONCE ) with pubkey(a)) from B to A) if A =/= B /\ A =/= I. crl [send-3-fake] : < I : Intruder agentsseen : A ; B ; OS, noncesseen : NONCE NSET > < I : Intruder > (msg (encrypt NONCE with pubkey(b)) from A to B) if A =/= B /\ B =/= I. endom)