Kryptoprotokollat, luento 9 (B), 16.4.2008

Reilu vaihto

Käsitellään yhtä protokollaa artikkelista Artikkelin etusivulla mainitut tiedot antavat hyvän kuvan tieteellisten aikakauslehtien julkaisuprosessista: "Received 10 December 2002; Revised 15 October 2003; accepted 16 October 2003. Available online 16 December 2003." Painettuna artikkeli julkaistiin vihdoin runsaat kaksi vuotta laatimisensa jälkeen. Lähde on: "Decision Support Systems. Volume 39, Issue 3 , May 2005, Pages 267-292."

Pohjana on mm. aiempi artikkeli I.Ray, I.Ray: An Anonymous Fair-Exchange E-Commerce Protocol (Proc. 1st Int. Workshop on Internet Computing and E-Commerce, April 2001), johon uudempi artikkeli ei jostain syystä viittaa. Vanhemman artikkelin protokolla on saanut osittaisen formaalin todistuksen: W.Kong, K.Ogata, J.Xiang, K.Futatsugi: Formal analysis of an anonymous fair exchange e-commerce protocol (Proc. 4th Int. Conf. on Computer and Information Technology, 2004, p. 1100-1107). Tämä artikkeli löytyy esim. ieeexplore.ieee.org:sta mutta on vaikeatajuinen eikä kovin vakuuttava. Siinä on käytetty OBJ-perheeseen kuuluvaa CafeOBJ-kieltä. Kirjoittajat Ray & Ray ovat itse tutkineet reilun vaihdon piirteitä CSP-algebralla: Failure Analysis of an E-commerce Protocol using Model Checking (2000). Tämä tarjoaa soveltajan näkökulman CSP:hen, joka myöhemmissä luennoissa tulee esille lähinnä kehittäjien tekstien perusteella.

Uusi artikkeli on melko pitkä mutta asiat on siinä selitetty juurta jaksain. Monin paikoin tarjoutuu kertausta aiemmin opitusta. Otetaan varsinaisesti luettavaksi vain anonyymin reilun vaihdon protokolla analyyseineen ja lopputoteamukset, eli luvut 8-10 (noin 9 sivua). Artikkelin muihin lukuihin voi joutua hieman vilkaisemaan:

Artikkelin johdanto ja aiempia tutkimuksia esittelevä luku voivat olla valaisevaa luettavaa. Jälkimmäisessä kertautuu hieman myös unohtava tiedonsiirto, ja viittaus Franklin ja Reiterin puoliluotettuun kolmanteen osapuoleen liittyy läheisesti kurssilla aiemmin esillä olleeseen valtuusallekirjoitukseen.

Ristiinvalidointi ('cross validation') tarkoittaa kirjoittajien kehittelemää "teoriaa" sille, mitä voi tehdä kahdella RSA-avaimella K1=<e,N1> ja K2=<e,N2>, joilla on eri moduulit N1 ja N2 mutta sama salauseksponentti e. Näistä määritellään tuloavain K1xK2 = <e, N1·N2>, jota voidaan käyttää normaaliin tapaan. Jos jokin viesti m salataan K1xK2:lla, tulee sama tulos modulo Ni kuin jos m salataan Ki:llä. Luvussa 3 esitetyn teorian ydin on siinä, että sama pätee myös toisinpäin, kun m < Ni (Teoreema 3). Toisin sanoen, jos salatekstit ovat samat modulo Ni, viestitkin ovat samat. Kolmansin sanoin, jos (m1e mod N1·N2) = m2e mod Ni, niin m1=m2. Tämä antaa mahdollisuuden verrata "sokkona" kahta salatekstiä ja vakuuttua, että selkotekstit ovat samat, vaikka salausavaimet ovatkin eri.

Asiakas voi ristiinvalidoinnin kautta protokollan sisällä varmistua siitä, että hänen tilaamansa bittituote on sama kuin se, jonka hän aikanaan saa. Tämä ominaisuus esitellään luvussa 3 määritelmässä 13 ja se on nimeltään validated receipt. (Mitä se olisi suomeksi?) Ominaisuutta käytetään luvun 4 epäanonyymissa perusprotokollassa myös siihen, että kauppias voi vastaavaan tapaan ristiinvalidoida maksumääräyksen ennen kuin myöhemmässä viestissä saa siihen purkuavaimen. Toisin kuin luettavana olevassa protokollassa asiakas käyttää tässä maksun kryptaamiseen siis generoimaansa julkista eikä symmetristä avainta. Vastaavasti kuin tuotteen validoinnissa maksun salaukseen käytetyn tuloavaimen toinen moduuli tekijöineen on luotetulla osapuolella, joka tässä tapauksessa on pankki.

Edellä kuvaillun validointiteorian lisäksi on tärkeää huomata, miten tuloavaimella kryptattu viesti voidaan purkaa. Artikkeli on tässä asiassa melko epämääräinen ja avainten indeksoinnissa esiintyvät virheet hankaloittavat ymmärtämistä. Ilmiö on kuitenkin yhtä yksinkertainen kuin eo. validointiyhtälökin. Jos jotain on salattu korottamalla se potenssiin e ja redusoimalla modulo N1·N2;, niin kun se redusoidaan modulo Ni, saadaan sama kuin jos alunperinkin olisi redusoitu modulo Ni. Tällaisen salatekstin purkaminen tapahtuu tavalliseen tapaan korottamalla se potenssiin d modulo Ni, missä d on e:n käänteisluku modulo Phi(Ni). Tärkeä havainto siis on, ettei lisämoduulista, esim. N1:stä, ole tässä mitään "haittaa", kunhan käänteisavain (eli d) tunnetaan toisen moduulin (N2:n) suhteen. Artikkelin termejä käyttäen avaimella K2-1 voidaan purkaa kryptoteksti, joka on salattu avaimella K1xK2.

Artikkelin luvusta 4.1 kannattaa jo aluksi lukea määritelmät käsitteille [optimistic] fair exchange ja money atomicity. Optimistisuus on sitä, että protokolla normaali toiminta sujuu ilman kolmannen osapuolen aktiivista osallistumista. Tämän ominaisuuden lisäksi artikkelin varsinainen reilun vaihdon protokolla on anonyymi siinä mielessä, ettei kukaan muu osallistuja saa selville asiakkaan identiteettiä. (Aiemmassa, vuoden 2001 artikkelin protokollassa toteutui sekä asiakkaan että myyjän anonymiteetti.) Rahan jakamattomuus on ymmärrettävissä normaalien transaktioiden kautta. (Siihen voitaisiin palata vielä erikseen B-osassa todistusten näkökulmasta, pohjana esim. artikkeli Katsaros ym.: Simulation and verification of atomicity properties for an electronic cash system (2005), jossa käytetään väritettyjä Petri-verkkoja).

Anonyymin reilun vaihdon protokolla sisältää 9 viestiä, joiden pääpiirteet on tiivistetty seuraavassa. Osapuolet C, M, T ja B ilmenevät kahdesta ensimmäisestä viestistä. Viestistä 4 alkaen C esiintyy pseudonyyminä C'.

  1. T --> C: Asiakas C saa luotetulta osapuolelta T kauppiaan M bittituotteen kryptattuna. Ennen tätä C on tietenkin valikoinut tuotteen M:n sivuilta ja jo paljon ennen M on toimittanut tuotteen T:lle. Salausavain on T:n valitsema KM, joka on sama kaikille saman kauppiaan tuotteille.
  2. C --> B: Asiakas lähettää pankille B sokaistun bittisetelin.
  3. B --> C: Pankki allekirjoittaa setelin, rahastaa siitä ja palauttaa sen asiakkaalle.
  4. C' --> M: Asiakas lähettää sokaisusta purkamansa mutta sen jälkeen symmetrisesti kryptaamansa bittisetelin kauppiaalle. Mukana on tietysti myös varsinainen ostotilaus. Siinä ei esiinny C:n omaa nimeä vaan salanimi C', ja viestintäkin täytyy tässä ja jatkossa anonymisoida ("impersonoida") siten, ettei C paljastu.
  5. M --> C': Kauppias lähettää kryptatun tuotteen asiakkaalle, salausavaimena on KMxKMi, missä KMi on kauppiaan tätä transaktiota varten generoima avain (jolla on sama salauseksponentti kuin KM:llä). Tässä viestissä asiakkaalle täytyy kertoa myös KMi:n moduuli ja (salaus)eksponentti. (Puuttuu artikkelista.) Tietyn matemaattisen hyökkäyksen (ks. luku 3.2) torjumiseksi tässä käsitellään tuotteen sijasta eräänlaista sokaistua versiota siitä: satunnaisluvulla r'' modulaarisesti kerrottua tuotetta. Validointia varten r'' kerrotaan eri viestissä, niinikään salattuna.
  6. C' --> M: Asiakas tekee ristiivalidoinnin viestissä 1 saamansa salatun tuotteen kanssa. Jos tuotteet ovat samat, asiakas lähettää bittisetelin purkuavaimen kauppiaalle.
  7. M --> B: bittiseteli pankkiin lunastettavaksi
  8. B --> M: tieto setelin pätevyydestä
  9. M --> C': tuotteen purkuavain KMi-1. (Artikkelissa esiintyy tässä ja selityksessä i=2, vaikka pitää olla 1.) Lisäksi tarvitaan "sokaisutekijän" r'' käänteisluku.
Artikkelin protokollaa tarkemmin lukiessa on tarpeen käyttää symbolitaulua luvussa 4.3, vaikka jotkin symbolit vaihtuvatkin. Erityisesti taulukosta ilmenee, että [X,K] tarkoittaa X:n salausta tai allekirjoitusta avaimella K. Kun avaimen alaindeksinä on 'prv', kyseessä on allekirjoitus. Sellaisen tekee tietysti pankki setelille, mutta myös M ja C' allekirjoittavat tiettyjä viestejä (ja vastapuoli tarkistaa), jotta mahdollisten riitojen selvittämiseen on perusteet. Yksi protokollan eduista, joita artikkeli mainostaa, on se että jotkin reiluuteen liittyvät riidat voidaan selvittää automaattisesti. Erityisesti T voi toimittaa tuotteen, jos C' toimittaa sille näytön maksusta eikä M vastaa. Tällöin T:n ei pidä antaa tuotteen avainta KM vaan pelkkä tuote, jotta M:n muut tuotteet eivät vaarannu. Periaatteessa luvun 4 protokollassa pankki voisi tehdä vastaavan kompensaation maksun osalta, mutta protokollan rakenteen vuoksi tällaista tarvetta ei synny.

Harjoitus: (1) Mille tasolle protokolla yltää Vogtin ym:n reiluusluokituksessa: Modular Fair Exchange Protocols for Electronic Commerce, 1999 (vrt. samojen tekijöiden tuoreempi artikkeli: Fair Exchange The Computer Journal, 2003; 46:1, 55-75)

(2) Millä tavoin protokollassa voisi hyödyntää reiluun vaihtoon tarkoitettua "todennettavasti sitoutunutta" allekirjoitusta, joka oli esillä luennolla 8? Miten silloin esillä ollut tilanne muuten vertautuu tämänkertaiseen?

(3) Julkisen avaimen salausta ei tunnetusti ole järkevää soveltaa mihinkään kovin laajoihin bittituotteisiin. Miten tämä pitäisi ottaa huomioon edellä olevassa protokollassa? Miten järkevää on yleisesti ottaen se, että luotettu osapuoli on tässä oikeastaan kauppiaan markkinapaikka, eli siellä on ja sieltä haetaan saman verran tuotebittejä kuin kauppiaalta itseltään?

(4) Kertauskysymys: Mikä olikaan tolkku siinä, että M lähettää C':lle jotain eri moduulilla salattua kuin se mitä C sai T:ltä? Ja miksi (siis) ylipäätään M:n tarvitsee lähettää tuote, vaikka C:llä jo tavallaan on se?

(6) Abstrahointia: Reiluuden vaatimus esitetään toisinaan vain suhteessa johonkin protokollaan, jolloin sen olemus saattaa hieman hämärtyä. Näin väittävät O.Markowitch, D.Gollmann, S.Kremer artikkelissaan On Fairness in Exchange Protocols (2002), jossa määritellään abstrakting vaihtoprotokollan turvallisuus ja sille yhdeksi osaksi reiluus.

Logiikkaa

Propositio- ja predikaattilogiikka lienevät tuttuja keinoja mallintaa arkikieltä formaalisella tavalla. Niiltä ei ole voinut täysin välttyä matematiikan ja algoritmien kursseilla. Mallinnuksen varsinaisena kohteena on lauseiden totuus ja epätotuus, kun lauseet on jollain monimutkaisella tavalla pantu kokoon joistain "atomilauseista" käyttäen sellaisia operaattoreita eli konnektiiveja kuin "Ja", "Ei", "Jos..Niin" (eli -->), "Kaikilla (x:n arvoilla)" jne.

Kun annetaan joukko tosia lauseita, voidaan päättelysäännöillä johtaa uusia tosia lauseita. Siinä mielessä logiikalla ei saavuteta mitään uutta, vaan kaikki tietämys on jo "koodattuna" lähtökohdissa eli premisseissä.

Jos esim. tiedetään väitteet eli propositiot p ja p-->q tosiksi, niin päättelysäännön Modus Ponens perusteella tiedetään myös q todeksi. Tämä on propositio- eli lauselogiikkaa. Predikaattilogiikka tuo siihen lisää ilmaisuvoimaa muuttujien avulla. Samalla propositiot laajennetaan antamalla niille ikäänkuin parametreja, jollaisina voivat toimia vakiot ja niitä edustavat muuttujat. "Parametrisoituja propositioita" sanotaan predikaateiksi. Niissä olevia muuttujia sidotaan eksistenssikvanttoreilla E ("there Exists") ja universaalikvanttorilla A ("for All"), joiden symbolit oikeasti ovat ylösalaisin kirjoitetut E ja A. Nyt esim. premisseihin A x: P(x)-->Q(x) ja P(u) "sisältyvät" johtopäätöksinä mm. E y:P(y) ja Q(u). (Tässä u on vakio, ei muuttuja.)

Päättelysääntöjen (älykkään tai automatisoidun) soveltamisen lisäksi näiden logiikkojen tapauksessa uusia tosia lauseita voidaan johtaa myös algebrallisten yhtälöiden perusteella, esimerkiksi p Tai (q Ja r) = (p Tai q) Ja (p Tai r). Yhtälöt ovat tietysti samalla uusia päättelysääntöjä. Toisaalta niistä muodostuu propositiologiikan tapauksessa oma algebrallinen struktuurinsa, nimittäin Boolen algebra. Sen pitäisi olla tuttu monestakin tietotekniikan yhteydestä.

Predikaattilogiikkaa sanotaan ensimmäisen kertaluvun teoriaksi. Jos predikaattisymboleistakin tehdään muuttujia (vähän niinkuin funktioparametreja), saadaan korkeamman kertaluvun teorioita. Sellaisia ei tässä yhteydessä tarvita.

Logiikat ovat siis kieliä, jossain määrin samaan tapaan kuin ohjelmointikielet. Niissä on ensinnäkin syntaksi, joka määrää, mitkä symbolijonot (lauseet) kuuluvat kieleen ja mitkä eivät. Tältä osin syntaksi on periaatteessa varsin yksinkertainen asia, vaikka symbolijoukko voikin olla mutkikas. Päättelysäännötkin kuuluvat syntaksiin, mutta palataan niihin jäljempänä.

Toinen osa kielen määrittelyä on semantiikka, jonka tehtävänä on kertoa, mitä kielen lauseet merkitsevät. Ohjelmointikielessä asia voidaan ilmaista viime kädessä näyttämällä, mitä operaatioita lauseen pitää saada aikaan prosessorissa, eli käytännössä antamalla käännös konekielelle. Logiikassa voisi ajatella, että semantiikka on käännös luonnolliselle kielelle, koska logiikan tehtävänä on todellisuuden mallintaminen. Sellaisenaan tämä johtaisi kuitenkin takaisin samoihin ongelmiin, joiden takia mallinnus tehdään; epätäsmällisyyteen, tulkinnanvaraisuuteen, hallitsemattomaan mutkikkuuteen jne.

Tämän välttämiseksi semantiikka esitetään muodollisen tuntuisena tulkintafunktiona, jossa kielen perusosat käännetään "maailmaksi", mutta vain siinä määrin kuin on tarpeellista osista muodostuvien kokonaisuuksien totuuden määrittämiseen. Propositiologiikan tapauksessa riittää kertoa, mitkä atomilauseet ovat tosia ja mitkä eivät eli kuvata p:t ja q:t totuusarvoiksi 0 tai 1. Tämän jälkeen kaikki niistä koostetut lauseet saavat jommankumman totuusarvon. Lähtökohtana tälle on se, että konnektiiveillekin on määritelty semantiikka eli miten niillä yhdistetyn lauseen totuusarvo lasketaan. Tämä semantiikka on aina sama ja se määritellään tunnetusti totuustauluilla.

Predikaattilogiikassa on hieman enemmän osia, joten siellä tulkitseva kuvauskin on mutkikkaampi. Nytkin tosin riittää antaa totuusarvo tietyille peruslauseille, jolloin operaattoreille kiinnitetty semantiikka hoitaa loput. Määrittely tehdään pystyttämällä universumiksi jokin olioiden joukko (esim. kokonaisluvut tai TTY:n opiskelijat), ja kuvaamalla vakiosymbolit tämän maailman alkioiksi ja kukin predikaatti joksikin tämän maailman relaatioksi. Jos predikaatti on n-paikkainen (eli sillä on n parametria), sen tulkintana on siis n-paikkainen relaatio eli joukko n:n alkion vektoreita. Lauselogiikan propositiot ja niiden kuvaus totuusarvoiksi sisältyvät tähän: ne ovat nimittäin 0-paikkaisia predikaatteja ja 0-paikkainen relaatio voidaan ajatella vakioarvoksi, tässä tapauksessa siis 0:ksi tai 1:ksi. Universumia ja tulkintafunktiota yhdessä sanotaan kielen malliksi.

Päättelysääntöjen ideana on tietenkin, että lähtökohtien ollessa tosia samoin on johtopäätös. Totuuden säilyttävää päättelyjärjestelmää sanotaan konsistentiksi. Jos päättelemällä saadaan aikaan kaikki todet lauseet, järjestelmä on täydellinen. Täydellisyys ja varsinkin konsistenssi ovat ymmärrettävästi tärkeitä minkä tahansa logiikaksi tarkoitetun kielen ominaisuuksia. Vaikka logiikkaa voitaisiinkin siis "pyörittää" päättelyjärjestelmänä, tarvitaan myös semantiikka, jotta tiedettäisiin onko tuloksilla mitään merkitystä. Semantiikan pitäisi tietysti myös hyväksyttävällä tavalla vastata mallinnettavaa todellisuutta.

Vaikka päättelysäännöt ovatkin siis kytköksissä semantiikkaan, niiden soveltaminen on vain syntaktista askartelua. Päättelyn oikeellisuus voidaan nimittäin ratkaista mekaanisesti viittaamatta lauseiden totuuteen tai varsinkaan mihinkään arkimerkitykseen. Riittää vain tarkistaa, kuuluuko päättelyksi väitetty symbolijono oikeiden päättelyiden kieleen vai ei. Tämä tarkistus on ratkeava ja voidaan siis vaikkapa automatisoida. Lauselogiikan tapauksessa annettuun tulokseen johtavan päättelyn generointikin voidaan ohjelmoida, mutta predikaattilogiikassa tämä ei ole teoriassakaan mahdollista.

Jos tuntee predikaattilogiikkaa, voi tietyssä pinnallisessa mielessä ajatella, että modaalilogiikka saadaan siitä asettamalla tavallisten kvanttorien "A" ja "E" tilalle operaattorit "välttämättä" ja "mahdollisesti". Nämä ovat kvanttorien tapaan toisilleen duaaleja eli "välttämättä P" on sama kuin "ei mahdollista että ei P". Modaalilogiikka sinänsä on kuitenkin vain lauselogiikkaa eli siihen ei sisälly muuttujia joita uudet operaattorit sitoisivat (kuten kvanttorit tekivät predikaattien välityksellä).

Siinä missä tavallisen lauselogiikan semantiikaksi riittävät (kaikki) sellaiset maailmat, jotka ovat mahdollisia (eli joissa premissit ovat tosia), modaalilogiikassa pitää esittää, millaiset siirtymät ovat mahdollisia tällaisten maailmojen välillä. "Välttämättä P" on tarkalleen silloin tosi, jos P on tosi kaikissa niissä maailmoissa, joihin nykyisestä voidaan siirtyä, "mahdollisesti P" on tosi, jos P on tosi edes yhdessä niistä.

Tavallinen modaalilogiikka muuttuu episteemiseksi, tietoa koskevaksi, kun "välttämättä" korvataan operaattorilla "tiedetään, että". Tarkemmin voidaan eritellä tietenkin myös toimija eli protokollan osapuoli, joka tietää. Mitä sitten on duaali operaattori, eli "ei tiedetä että ei P"? Tällaisen logiikan avulla yleensä tutkitaan, mitä tietoa on, joten duaalia ei tarvitse tulkita, mutta tulkinta voisi olla: "pidetään mahdollisena että P". Toisaalta tämä yhteys otetaan aksioomaksi, joka edustaa tiedon ristiriidattomuutta: jos tiedetään P, niin silloinhan ei tietenkään tiedetä P:n vastakohtaa (mikä voidaan sanoa niinkin, että P:tä pidetään mahdollisena).

Aksioomiksi otetaan logiikan kielissä (jokin) sellainen mahdollisimman pieni joukko premissejä, joista kaikki muut todet lauseet voidaan päätellä (kunhan päättelysäännöt ovat riittävän vahvat). Muita episteemisiä aksioomia:

Viimeksimainittu on jossain määrin ongelmallinen tietämyslogiikassa, samoinkuin modaalilogiikan peruspäättelysääntö "jos P, niin välttämättä P", sillä tietämyslogiikkaan käännettynä sen mukaan pitäisi tietää kaikki todet lauseet!

Ensi kerralla käsiteltävä BAN-logiikka on eräänlainen muunnos episteemisestä logiikasta, koska siinä tietäminen korvataan uskomuksella. Uskomuslogiikkaa sanotaan doxastiseksi.

Toisenlainen modaalilogiikka on temporaalinen eli aikalogiikka, jossa perusoperaattorit ovat "aina" ja "joskus" ja näillä voidaan viitata joko menneisyyteen tai tulevaisuuteen.

Erilaisia logiikoita on selitetty hyvin Wikipedian sivulla ja keskeinen alaluku kurssin kannalta on modaalilogiikan sivu.

Prosessialgebraa

Kaikille ovat tuttuja erilaisten lukujen, vektorien, matriisien ja ehkä funktioidenkin muodostamat algebralliset struktuurit. Edellä tuli mainituksi myös propositioita käsittelevä Boolen algebra ja kurssilla on aiemmin monta kertaa tarvittu modulaarista aritmetiikkaa, jossa (modulo alkuluku p) olioina ovat vain "luvut" 0,1,2,...,p-1, joilla voidaan suorittaa "normaaleja" laskutoimituksia. Jos käytetään vain kertolaskua (ja sitä kautta jako- ja potenssilaskua) riittää operoida joukossa {1,2,...,p-1}, kuten tehdään esim. DH-avaimenvaihdossa.

Jos halutaan mallintaa kryptoprotokollia ja yleisemmin hajautettuja järjestelmiä algebran keinoin, niin järjestelmistä pitäisi abstrahoida joitakin keskeisiä olioita, määritellä niiden välille luontevia operaatioita, johtaa operaatioille tehokkaita laskusääntöjä, ja laskennan tuloksena olevista olioista pitäisi saada irti ominaisuuksia, joilla on merkitystä kulloisenkin ongelman ratkaisussa.

Hajautetuissa järjestelmissä on toisistaan erillään toimivia prosessoreita, jotka ovat kuitenkin yhteydessä keskenään viestejä vaihtamalla. Kommunikoivia olioita ovat oikeastaan prosessit ja viestien avulla ne voivat synkronoitua eli toteuttaa jonkin tapahtumansa samalla hetkellä kuin toinenkin. (Sama hetki voi toki vaatia odottelua jommaltakummalta osapuolelta.)

Mitään suurempaa kuin prosessi tuskin kannattaa ottaa algebrallisen käsittelyn kohteeksi. Prosesseja käsittelevän algebran perusolioiksi, lukujen ja propositioiden tapaan, asettuvat luontevasti sellaiset tapahtumat, joita ratkaistavan ongelman kannalta voidaan pitää jotenkin jakamattomina. Esimerkiksi DH-prokollan vastinoliot suorittavat prosesseja, joiden tapahtumina varmaankin ovat viestien lähettämiset ja vastaanottamiset ja niiden perusteella tapahtuva siirtyminen käyttämään generoitua avainta.

Perusoperaatiot ovat luontevasti peräkkäisyys ja rinnakkaisuus. Edellisen voisi ajatella vastaavan eräänlaista ei-vaihdannaista kertolaskua ja jälkimmäisen yhteenlaskua. Hieman erilainen yhteenlasku on Boolen algebran +, joka tarkoittaa summaa modulo 2, eli operaatiota XOR, eli "joko-tai". Tätä vastaa prosessien tapauksessa vaihtoehtoisuus: jompikumpi (tai yksi useammasta kuin kahdesta) prosessista lähtee käyntiin. CCS:ssä vaihtoehtoisuus merkitäänkin +:lla, kun taas CSP:ssä on tähän tarkoitukseen kaksikin hieman erilaista operaatiota. (CCS = Calculus of Communicating Systems, CSP=Communicating Sequential Processes).

Siinä missä vaihtoehtoisuus vastaa "joko-tai"-operaatiota, niin rinnakkaisuuden voisi ajatella vastaavan "sekä-että"- eli "ja"-operaatiota. Boolen algebran mallin mukaisesti kyseessä olisi siis kertolasku, jota tosin edellä verrattiin peräkkäisyyteen! Näiden vertailujen opettavaisuus lieneekin nyt jo käytetty lähes loppuun. Erityisesti rinnakkaisten prosessien kohdistaminen vaatii oleellisesti mutkikkaampia toimia kuin tutuissa algebroissa on kohdattu. Kootaan edellä mainitut algebran osat ja yleiset vertailut vielä yhteen ja otetaan taulukkoon mukaan myös semantiikka eli se, miten malli tulkitaan. Prosessialgebrana käytetään tässä kuten jatkossakin CSP:tä.

Ilmiö Boole CSP
aakkosto muuttujat
vakiot
tapahtumat
operaatiot disjunktio,
konjunktio
negaatio,...
peräkkäisyys: -->
vaihtoehtoisuus: [] (neliö, ulkoisesti valittu) ja [¯] (hakanen, epädeterm.);
rinnakkaisuus: |[ tapahtumia ]| , ||| (jos synkronoitavia tapahtumia ei ole), ...
laskusäännöt kommutatiivisuus
distributiivisuus
de Morgan, ...
kommutatiivisuus, distributiivisuus, ...,
rekursiivisten määrittelyjen käsittelyssä kiintopisteen periaate
semantiikka,
merkitys
muuttujien ja vakioiden
kuvaus totuusarvoiksi;
totuusarvoja yleensä ajatellaan myös silloin, kun näennäisesti vain pyöritellään kaavoja. Totuusarvojen joukko voidaan esittää graafisesti Boolen hilana.
operationaalinen (lähellä implementaatiota): esitettävissä siirtymäkaavioina (LTS, labelled transition system)
denotationaalinen: vastaa lähinnä kuvausta totuusarvoiksi, joita tässä tapauksessa edustavat jäljet (traces) eli mahdolliset tapahtumien ketjut. Näille tarvitaan usein pareiksi 'failures' eli ne tapahtumat, jotka kulloinkin ovat mahdottomia. Kolmantena komponenttina voivat olla 'divergences' (~ ikisilmukat).
algebrallinen: tietyt laskusäännöt otetaan aksioomiksi. Kielen merkitys muodostuu sitten samaan tapaan kuin esim. kokonaislukujen abstrakti merkitys rakentuu niiden aksioomista.

Kun edellä puhuttiin laskusäännöistä, viitattiin lähinnä sellaisiin, joissa suoraan esiintyy yhtälö, esim. a·(b+c) = a·b+a·c. On muunkintyyppisiä sääntöjä, esimerkiksi epäyhtälöitä, kuten (luvuilla tai vektoreilla): |a+b| =< |a|+|b|. Lisäksi, jos sattuisi olemaan sellaiset positiiviset luvut x ja y, että a = x < y, voisimme kirjoittaa mm. a·(b+c) = x·b+x·c < x·b + y·c, käyttäen operaatioiden + ja · sekä relaatioiden = ja < ominaisuuksia. Näillä laskusäännöillä on nimenä sijoitussääntö ja (positiivisten lukujen kertolaskun) monotonisuus.

Prosessien laskutoimituksia koskevat laskusäännöt noudattelevat samoja periaatteita, mutta niitä ei saa tulkita liian suoraan vanhojen mallien mukaan. Erityisesti yhtäsuuruuden lisäksi on käytössä eri yhteyksissä hieman eri tavalla määriteltyjä ekvivalensseja, joissa prosessit eivät ole tarkkaan ottaen samat, vaan esimerkiksi sellaisia, ettei niiden välillä pysty ulkoapäin huomaamaan eroa. Ekvivalenssi on syytä määritellä siten, että sijoitussääntö on voimassa. Tämä tarkoittaa, että yhtäläisyys säilyy, vaikka jokin osa vaihdetaan sen kanssa yhtäläiseen (kuten edellä a x:ksi).

Pienemmyysrelaation sijasta prosessien välille määritellään esijärjestys, joka ei ole kokonainen järjestys siten, että kaikki olisivat verrattavissa kaikkiin eikä edes osittainen järjestys, koska siinä ei vaadita antisymmetriaa (eli sitä että a<b sulkisi pois mahdollisuuden b<a). Näitä esijärjestyksiä kuten ekvivalenssejakin voidaan määritellä hieman eri tavoin ja niillä on tärkeä merkitys prosessialgebran soveltamisessa käytäntöön, sillä niiden kautta järjestelmälle asetetut vaatimukset hienonnetaan toteutukseksi ("refinement"). Tässä on keskeistä, että järjestys on määritelty siten, että kaikki operaatiot ovat sen suhteen monotonisia. Tämä tarkoittaa, että jos jokin osa vaihdetaan "parempaan", tulos ei "huonone" (vrt. x:n vaihto y:ksi edellä).

Jatkoa varten

Myöhemmillä B-osan luennoilla tulevat esille logiikka, prosessialgebra sekä "ranta-avaruudet" kukin omien artikkelilähteidensä kautta. Näistä kaikista saa yleiskuvan seuraavasta artikkelista, johon viitataan myös, kun A-osassa ensi kerralla esitellään formaalien menetelmien yleiskuvaa: C.J.F. Cremers, S. Mauw & E.P. de Vink: Formal Methods for Security Protocols: Three Examples of the Black-Box Approach (2003).