Logici de încredere în securitatea informaţieimasalagiu/pub/Logici de incredere.pdf · •...
Transcript of Logici de încredere în securitatea informaţieimasalagiu/pub/Logici de incredere.pdf · •...
Logici de încredere în
securitatea informaţiei
Universitatea „Al. I. Cuza”, Iaşi Facultatea de Informatică
Master Securitatea informaţiei
2015 - 2016
Profesori - 1 • Prof. dr. Cristian Masalagiu (Titular
Curs/Seminar)
http://profs.info.uaic.ro/~masalagiu
Profesori - 2
• Lect. dr. Cosmin Vârlan (seminar)
http://profs.info.uaic.ro/~vcosmin
Profesori 3
• Asist. dr. Vasile Alaiba (seminar)
http://profs.info.uaic.ro/~alaiba
CERINȚE ȘI NOTĂ - 1 • Conform deciziei Rectoratului, sunt, în anul universitar
2015 - 2016, semestrul II (anii terminali), 15 săptămâni de
activitate (între 15 februarie – 29 mai): 14 sunt dedicate
activității didactice, și o săptămână (a 12-a) este liberă în
perioada Sărbătorilor de Paște (2 – 8 mai)
• Urmează 2 săptămâni de evaluare (30 mai – 12 iunie), apoi 3
săptămâni de „practică” de specialitate (13 iunie – 3 iulie), în
scopul pregătirii și susținerii lucrării de disertație
• În aceeași (ultimă) perioadă, fiecare facultate organizează o
sesiune de reexaminări (restanțe/măriri)
• Cel mai probabil, la Facultatea de Informatică, săptămâna a
8-a (4 -10 aprilie) va fi rezervată (și) susținerii unor lucrări
(parțiale) de evaluare, caz în care toate activitățile care
urmează la cursurile respective se vor decala cu o săptămână
(perioada finală de evaluare rămânând doar între 6 – 12 iunie;
sau, posibil, va fi prelungită)
CERINȚE ȘI NOTĂ - 2
• Pentru voi, totul se termină până pe data amintită de 3 iulie
2015 (de pe 4 iulie începe oricum vacanța de vară)
• La cursul nostru, primele 7 săptămîni vor fi doar „de
predare” (4 ore/săptămână), iar în săptămâna a 8-a veți
susține o lucrare scrisă din materia făcută (fie că această
săptămână va fi oficializată ca fiind „de evaluare parțială
pe Facultate”, fie că nu)
• Începând cu săptămâna a 9-a vom continua cu un
program de lecții de tipul „curs/seminar/laborator/susținere
referate”, până pe 30 mai (sau până pe 6 iunie)
• Modalitatea de a alege/susține referatele precum și
conținutul unor lecții le vom fixa împreună, urmărind
informațiile și propunerile care vor urma
CERINȚE ȘI NOTĂ - 3 • Prezenţa este, în principiu, obligatorie (nu fiți „Fata
Morgana...”)
• Fiecare coordonator de lecție (seminar/laborator) va
stabili însă (și alte) cerinţe proprii; media aritmetică a
notelor obţinute la seminarii/laboratoare va conta în
proporţie de ¼ din nota finală (nota 2)
• Nota de la lucrarea de evaluare (din săptămâna a 8-a)
va conta ½ din nota finală (nota 1)
• Restul de ¼ din nota finală (nota 3) se va obține din
aprecierea eseului/referatului ales/finalizat și prezentat
„public”; alte cerințe privind realizarea și aprecierea
referatului, urmează
CERINȚE ȘI NOTĂ - 4 • Fiecare curs vă va fi furnizat în format electronic
imediat după ce vă va fi predat (sub formă de slide-uri,
evident)
• Mai exact, materia predată până la un moment dat va
putea fi accesată direct printr-un link special, din
pagina mea web
• Este esenţial să „treceţi” pe la ore, pentru că: nu dau
proiecte pe INTERNET; nu accept să nu prezentați
„public” referatul; evitați să rămân singur la ore…
• Unele cursuri se vor încheia și cu indicarea unei
bibliografii suplimentare precum şi cu sugerarea unor
teme de cercetare (noi) care ar putea constitui baza
implicării voastre în (eventuale) proiecte reale...
DESPRE REFERATE - 1 • Domenii generale/arii în care ar putea fi încadrate referatele (e mai ușor să
căutați titluri în limba engleză...):
-Specific Problems in Modal, Temporal and Epistemic Logics (MTE) – aria 1
-Model Checking for Belief/Non-standard Logics (MC) - aria 2
-Natural Deduction/Deductive Systems for Belief/Non-standard Logics
(NDTP) - aria 3
-Logic Programming for Belief/Non-standard Logics (PROBLOG) - aria 4
-Lambda Notation/Calculus for Functional Representation of
Belief/Non-standard Logics (LAMBDABL) - aria 5
-Formal Verification of Different (Cryptographic) Protocols using Logics
of Belief (VEPBL) - aria 6
-Decidability and Formal Complexity of different classes of
Belief/Non-standard Logics (DCBL) - aria 7
-Vulnerabilities in Different Security Protocols Detected by Using
Belief/Non-standard Logics (VUPBL) - aria 8
-Altele, propuse de voi, dar „în zonă” (ALTE) - aria 9 (vezi mai jos)
DESPRE REFERATE - 2 • Titluri posibile (în engleză): Implementation in Language “X” for a “Y”
Analyzer of the “Z” Protocol; Practical Aspects Related to Some Dynamic
Epistemic Logics; Logical Attacks for Smartcard (or Mobile) Security, etc.
• De fapt, poate fi orice conține cuvintele/expresiile cheie belief logics
sau/și epistemic logics, în „combinație” cu security/cryptographic
protocol; sau, ceva mai specific/practic, care poate fi încadrat într-una
dintre ariile anterior menționate
• La o temă pot fi angrenate maxim 3 persoane, cu atribuții bine precizate
(și șef, pentru discuțiile cu mine)
• Totul va fi redactat/prezentat de voi în limba română; după ce vă
decideți, trimiteți-mi în prealabil (adică înainte de a trece efectiv la lucru)
un „eseu”/sumar (max. 4-8 pagini), prin e-mail (obiective, structură,
bibliografie principală, sarcini individualizate, etc.); forma finală trebuie să
aibă maxim 20 pagini, iar prezentarea „pe scurt”, min. 10 slide-uri; totul
trebuie să fie gata cam cu o săptămână înainte de prezentarea
(convenită) în plen (trebuie să dau OK-ul)
• Programările prezentărilor le voi face (chiar parțial) de îndată ce primesc
primele titluri și autorii
FINAL CERINȚE, NOTĂ,
REFERATE
• La nevoie, prezentarea referatelor se poate extinde în
ultimele 2 (1) săptămâni de evaluare (nu vom mai da
altă lucrare de evaluare decât cea din săptămâna
a 8-a)
• Fiecare student va primi 3 note: una la lucrarea de
evaluare (numită mai înainte nota 1), una pentru
referat (nota 3) și nota 2 pentru activitatea „practică”,
din ultimele săptămâni (media notelor altor profesori
„posibil implicați” în activitatea voastră); ele vor intra în
calculul notei finale (modalitatea am prcizat-o deja)
DESPRE CURS (STRUCTURĂ,
CONȚINUT, SCOP) - 1 • Conținutul principal:
-Chestiuni recapitulative (concepte, notații, etc. privind logicile „clasice”
LP și LP1 – făcute cu C. Masalagiu; PROLOG – V. Alaiba; programare
funcțională - Ș. Ciobâcă)
-Chestiuni (cumva tot recapitulative) legate de anumite logici
„neclasice” (modale, temporale, epistemice – făcute cu C. Dima, ș.a.)
-Partea principală a cursului va fi legată de logicile de încredere (și aici
însă trebuie să vă „reactualizați” și conținutul anumitor cursuri anterioare
cu tematici apropiate, ale colegilor mei: C. Bârjoveanu, F. Țiplea, A.
Atanasiu, etc.)
• Deoarece una dintre expresiile „cheie” ale Cursului (alături de logici și
securitatea informației), este algoritmi de verificare (bazați pe sintaxă
și demonstrare automată sau/și pe semantică și model checking), în
săptămânile care urmează până la final, după „predare” (seminarii,
laboratoare, susținere referate), intenționăm să punem accentul și pe
lucruri legate direct de practică („amintiri” aici: MCMAS – C. Vârlan)
DESPRE CURS (STRUCTURĂ,
CONȚINUT, SCOP) - 2 • Vom aborda astfel, atât cât ne va permite timpul
(și...nevoia) în final, subiecte privind Isabelle,
care este un ATP (Automated Theorem Prover)
comercial și MCMAS (A Model Checker for
MultiAgent Systems); sau, alternativ: HOL
(Higher Order Logic) în loc de Isabelle, respectiv
TLA/TLC (Temporal Logic of Actions/TLA model
Checker) în loc de MCMAS
• Tematica concretă a laboratoarelor/seminariilor
(precum și a referatelor individuale) va fi fixată
aprioric sau pe parcurs
DESPRE CURS (STRUCTURĂ,
CONȚINUT, SCOP) - 3 Capitolele tematice ale Cursului (ne-exhaustiv) ar fi deci
• Recapitulare: logica clasică/logici neclasice; criptografie și
protocoale de securitate în sisteme multiagent în mediu
INTERNET – toate cu noi formalizări pentru ceva numit, de acum
înainte, SISTEM; logica BAN – Burrows, Abadi, Needham, etc. (în
funcție de necesități și de ceea ce deja cunoașteți)
• Logica GNY (Gong/Needham/Yahalom), ca „primă” extensie a
logicii BAN
• Alte extensii ale BAN și GNY: logica AT (Abadi, Tuttle), logica vO
(van Oorschot), logica SvO (Syverson, van Oorschot), etc.; din
nou, în funcție de timp
• Model Checking și demonstrare automată (cu referiri directe la
logicile de încredere)
DESPRE CURS (STRUCTURĂ,
CONȚINUT, SCOP) - 4
Scopurile principale ale Cursului sunt
• Însuşirea unor cunoștințe de bază pentru a putea
gestiona corespunzător SISTEM-ele cu ajutorul unor
logici „potrivite”
• Înțelegerea modalității de a „construi” noi logici, specifice
caracteristicilor particulare ale unor „părți de realitate”
precizate (ceea ce ar reprezenta o introducere în ceea
ce s-ar putea numi logic engineering)
• Însușirea unor primitive conceptuale pentru învăţarea
unor limbaje concrete privind demonstrarea automată
(Isabelle/HOL) sau model-checking-ul (MCMAS/TLC)
CURSURI ANTERIOARE
NECESARE
• Logică pentru informatică (an I, Licență)
• Securitatea informaţiei (an III, Licență)
• Opţional: Programare logică sau Programare funcţională
(an II, Licență)
• Opţional: Calculabilitate, decidabilitate şi complexitate (an
III, Licență)
• Fundamentele algebrice ale informaticii (an I, Licență)
• Limbaje formale, automate și compilatoare (an II, Licență)
• Cursuri făcute (sau care se fac în prezent chiar) la MSI, și
care sunt „legate” cumva (voi ar trebui să știți cum!) de
cursul de față
BIBLIOGRAFIE PRINCIPALĂ
(NE-EXHAUSTIVĂ) - 1
(cărţile se găsesc la Biblioteca Facultății sau în format electronic; unele
sunt accesibile direct prin link-uri din pagina mea; ordinea de mai jos este
aleatoare; alte site-uri INTERNET vă vor fi indicate pe parcurs)
1. C. Masalagiu - Fundamentele logice ale Informaticii, Ed. Universităţii „Al. I.
Cuza", Iasi, 2004, ISBN 973-703-015-X.
2. M. Huth, M. Ryan - Logic in Computer Science: Modelling and Reasoning
about Systems, Cambridge University Press, England, 2000,
ISBN 0-521-65200-6.
3. R. Stalnaker – On Logic of Knoledge and Belief, Springer Verlag, 2006
4. P.C. van Oorschot – Handbook of Applied Cryptography, Carleton
University, 2002.
5. L. Gong, R. Needham, R. Yahalom – Reasoning about belief in
cryptographic protocols, IEEE Symposium on Research in Security and
Privacy, IEEE Computer Society Press, 1990.
BIBLIOGRAFIE PRINCIPALĂ
(NE-EXHAUSTIVĂ) - 2 6. T. Kwon, S. Lim – Automation-Considered Logic of
Authentication and Key Distibution, Spinger Verlag, 2003.
7. D. Yiqiang – An Improvement of GNY Logic for the
Reflection Attacks, Springer Verlag, 1999.
8. M. Benerecetti, et al. – A Logic of Belief and a Model
Checking Algoritm for Security Protocols, 2000.
9. D. Monniaux – Analysis of Cryptographic Protocols Using
Logics of Belief: An Overview, Journal of
Telecommunications and Information Technology, 2006.
10. R. Fagin, et al. – Reasoning about Knoledge, M. I. T. Press,
2003.
11. J.J. Ch. Meyer, W. van der Hoek - Epistemic Logic for AI
and Computer Science, Cambridge Univ. Press, 2004.
BIBLIOGRAFIE PRINCIPALĂ
(NE-EXHAUSTIVĂ) - 3 12. G. Bella – Formal Correctness of Security Protocols,
Springer Verlag, 2007.
13. E. A. Emerson – Temporal and Modal Logic, Handbook of
Theoretical Computer Science, North-Holland Pub.Co., 1996.
14. UT Austin - Course Material on BAN Logic (online, la
cerere)
15. **** - A Logic of Authentication (mirror) - the original paper
by Burrows/Abadi/Needham (online, la cerere)
16. D. Monniaux - Decision Procedures for the Analysis of
Cryptographic Protocols by Logics of Belief, Proceedings of
the 12th Computer Security Foundations Workshop, 1999 (și
online, la cerere)
BIBLIOGRAFIE PRINCIPALĂ
(NE-EXHAUSTIVĂ) - 4
17. R. Needham, M. Schöder – Using Encription for
Authentication in Large Networks of Computers,
Communication of the A.C.M., vol. 21, no. 12, 1978.
18. B. Schneier – Applied Cryptography (second
edition), Wiley & Sons, 1996.
19. I. Goriac – An Epistemic Logic Based Framework
for Reasoning About Information Hiding, Ph.D.
Thesis, Universitatea „Al. I. Cuza”, Iași, România,
2014.
• Altele: desigur, le găsiți (sau le-ați găsit deja) singuri
RECAPITULARE LP/LP1 – 1 • Începem cu recapitularea logicilor pe care
le-am numit „clasice”: LP și LP1
• Facem acest lucru foarte pe scurt; dacă aveți
probleme, vă rog să urmăriți, direct din pagina mea
web, link-ul la slide-urile „dezvoltate” (vedeți acolo...)
• Nu uitați că aveți acces (tot direct, din aceeași pagină)
și la orice material privind „Logica pentru Informatică”,
anul I, Licență)
• Vom „vorbi” (nu neapărat în această ordine) despre
sintaxă, semantică, forme normale, echivalențe,
funcții booleene, problema SAT, rezoluție, sisteme
deductive, teorii logice
RECAPITULARE LP/LP1 – 2
• Pentru că vom lucra în primul rând cu mulțimi, este absolut
necesar să vorbim mai întâi despre constructivism
• De exemplu, putem defini N folosind doar 4 simboluri, să
le notăm 0, (, ), și s (deocamdată, neavând semnificație)
• Pentru aceasta, sunt necesari 3 pași (din care doar doi
sunt „efectivi”):
Baza. 0 N („zero” este număr natural).
Pas constructiv (structural). Dacă n N, atunci
s(n) N (dacă n este număr natural, atunci „succesorul
său imediat”, de fapt textul „s(n)”, este număr natural).
Nimic altceva nu mai este număr natural (textul va fi
considerat implicit pentru orice definiție constructivă).
RECAPITULARE LP/LP1 – 3 • Ca un prim avantaj al ideii, putem da imediat o
definiţie constructivă/algoritmică (structurală,
recursivă...) a adunării numerelor naturale
Baza. n + 0 = n, pentru fiecare n N (a aduna 0 la orice
număr natural înseamnă a-l lăsa neschimbat).
Pas constructiv. n + s(m) = s(n + m), pentru fiecare n,
m N (dacă ştim să calculăm n + m şi cunoaştem
succesorul imediat al numărului natural m, atunci ştim
să calculăm şi suma n + s(m); mai exact, aceasta
coincide cu succesorul imediat al numărului care
reprezintă suma n + m).
• Calculați 2 + 3 (voi; adică s(s(s(0))) + s(s(0)))
RECAPITULARE LP/LP1 – 4 • Un al doilea avantaj, şi cel mai important, este
posibilitatea folosirii în demonstraţii a
principiului inducţiei (matematice, în cazul lui
N)
• Astfel, dacă vrem să arătăm că o anumită
proprietate, notată „P”, este adevărată pentru
fiecare n N (adică, vrem să demonstrăm
adevărul „formulei” F = (n)(P(n))), folosind
principiul amintit vom arăta de fapt că este
adevărată afirmația
G = P(0) ((n)(P(n) P(n + 1))
RECAPITULARE LP/LP1 – 5
• Generalizând, orice definiție constructivă a unei mulțimi oarecare
M, (cel mult) numărabilă și presupusă a fi vidă pentru început, va
avea practic 2 pași (al treilea fiind implicit: „Nimic...”)
• În pasul (inițial), Baza, se introduc (explicit) în M un număr
oarecare de elemente „de bază” („grupate” în mulțimea M’)
• În Pasul constructiv, se repetă (de câte ori este posibil) unul sau
mai multe procedee de introducere de elemente noi în M,
folosindu-se elementele vechi, deja existente
(procedeu = algoritm/metodă)
• M’ este cunoscută aprioric, ca de altfel și mulțimea O, de
„algoritmi”
• Fiecare algoritm o O este privit în sens determinist, funcțional: aplicat „intrării” m1, m2, ..., mk, va genera (unica) „ieșire” m
RECAPITULARE LP/LP1 – 6
Definiția structurală/constructivă a unei mulțimi
oarecare M
Baza (elemente inițiale). M’ M (M conține
elementele de bază/inițiale).
Pas constructiv (elemente noi din elemente
vechi). Pentru fiecare k N*, pentru fiecare
m1, m2, ..., mk M și pentru fiecare o O
(„operator de aritate k”), avem
o(m1, m2, ..., mk) = m M.
• (Și singura posibilitate de a obține (noi)
elemente din M, este de a aplica algoritmii din O)
RECAPITULARE LP/LP1 – 7
• Fie acum M orice mulțime definită structural ca
mai sus (cu ajutorul lui M’ și O) și o afirmație
generală de tipul Q = (m)(P(m)), adică
proprietatea P „privește” întreaga mulțime M
• Fie și afirmația Q’, corespunzătoare definiției
structurale a lui M, dată prin
Q’ = (a M’)(P(a))
(k N*)(m1, m2, ..., mk M)(o O)
(P(m1) P(m2) ... P(mk) P(m)),
unde m = o(m1, m2, ..., mk)
RECAPITULARE LP/LP1 – 8 Principiul general al inducţiei structurale
• Admitem că Q este adevărată dacă putem arăta că:
Baza. P(a) este adevărată, pentru fiecare a M’ (P este
adevărată pentru elementele de bază).
Pas inductiv. Presupunem acum că sunt adevărate
P(m1), P(m2), ..., P(mk). Atunci, arătăm că P(m) este
adevărată (presupunând că P este adevărată în
elementele vechi, arătăm că P este adevărată și în
elementele noi).
• Acest ultim pas trebuie demonstrat presupunând că
k N*, m1, m2, ..., mk M și o O (de aritate k, care satisface o(m1, m2, ..., mk = m), ele fiind oarecare,
dar fixate
RECAPITULARE LP/LP1 – 9
• Ideea este cea folosită în cazul N: în loc să arătăm Q, este
suficient să arătăm Q’ (nu întotdeauna...; observație: principiu vs
teoremă)
• Ca o primă concluzie, putem spune că logicile pot fi atât limbaje
de programare, cât și limbaje naturale, dar foarte exacte
• O logică particulară = limbaj (mulțime de...)
• Logicile modelează realitatea, întâi prin sintaxă (formulă =
program), apoi prin semantică/valoare de adevăr (și nu „sens
lingvistic”)
• Știm că semnificația unui program este dată (să zicem, în sens
imperativ, operațional) de execuțiile sale: pentru intrarea x, se
obține ieșirea y (prin efectuarea operațiilor indicate de textul
programului, în ordinea precizată, asupra valorilor inițiale și
intermediare)
RECAPITULARE LP/LP1 – 10
• Semnificația unei formule va fi dată, similar, tot
de execuții, adică de procedeele prin care se
obțin valorile de adevăr „finale”, în urma aplicării
operatorilor logici prezenți în formulă, în ordinea
fixată, valorilor de adevăr precizate la „intrare” (și
a celor intermediare)
• După cum am explicat deja, ideea de bază va fi
aceea de a construi logici pentru studiul coerent
al SISTEM-elor, plecând cu logicile cele mai
simple și „apropiindu-ne cât putem” de cele mai
„potrivite” și mai „simplu de folosit”
RECAPITULARE LP/LP1 – 11
Sintaxa LP
Baza (formulele elementare/atomice sunt formule):
A LP (A = {A1, A2, ...}).
Pas constructiv (obţinere formule noi din formule vechi):
(i) Dacă F LP atunci ( F) LP.
(ii) Dacă F1, F2 LP atunci (F1 F2) LP.
(iii) Dacă F1, F2 LP atunci (F1 F2) LP.
(iv) Dacă F LP atunci (F) LP.
Nimic altceva nu mai este formulă.
Semantica LP
• Vorbim despre algebre booleene și noțiunea de asignare
RECAPITULARE LP/LP1 – 12
• Teoremă (de extensie). Pentru fiecare asignare S,
S : A B există o unică extensie a acesteia,
S’ : LP B (numită și structură sau interpretare),
care satisface:
(i) S’(A) = S(A), pentru fiecare A A
(ii) S’(( F)) = pentru fiecare F LP
(iii) S’((F1 F2) ) = S’(F1) • S’(F2),
pentru fiecare F1, F2 LP
(iv) S’((F1 F2) ) = S’(F1) + S’(F2), pentru fiecare
F1, F2 LP
(v) S’((F)) = S(F), pentru fiecare F LP.
S '(F )
RECAPITULARE LP/LP1 – 13 • Definiţie (folosim de-acum S în loc de S’) .
-O formulă F LP se numeşte satisfiabilă dacă există măcar o
structură S (completă) pentru care formula este adevărată
(S(F) = 1). Se mai spune în acest caz că S este model pentru F
(simbolic, se mai scrie S ╞ F)
-O formulă este validă (tautologie) dacă orice structură este
model pentru ea
-O formulă este nesatisfiabilă (contradicţie) dacă este falsă în
orice structură (S(F) = 0, pentru fiecare S, sau S⊭ F, pentru
fiecare S).
• Restul problematicii (inclusiv formele normale, rezoluție și
rezolvarea sintactică a SAT) nu o mai reluăm explicit, nici pe
viitor (există în Bibliografie sau în link-uri din pagina mea, dacă
nu se regăsește ceva în slide-uri...căutați)
RECAPITULARE LP/LP1 – 14
• Teoremă (decidabilitatea pentru LP, a
problemei SAT). Satisfiabilitatea
(validitatea, nesatisfiabilitatea) formulelor
LP este decidabilă în timp exponenţial.
RECAPITULARE LP/LP1 – 15
Sintaxa LP1
• Pentru a construi mulţimea de formule a logicii cu
predicate de ordinul I, LP1, vom porni cu următoarele
mulţimi de simboluri:
-X = {x1, x2, …}: o mulţime cel mult numărabilă de
variabile funcţionale sau, pe scurt, variabile
-P = {P0, P1, …}: o mulţime cel mult numărabilă de
simboluri predicative (sau predicate, sau relaţii), cu
arităţi; la rândul său, fiecare Pi este o mulţime cel mult
numărabilă de predicate de aritate i (i N);
elementele lui P0 se mai numesc şi variabile
predicative
RECAPITULARE LP/LP1 – 16 -F = {F0, F1, ...}: o mulţime cel mult numărabilă de
simboluri funcţionale (sau funcţii) cu arităţi,
fiecare Fi fiind o mulţime cel mult numărabilă de
funcţii de aritate i (i N); elementele lui F0 se
numesc şi constante (funcţionale)
-C1 = {, , }: o mulţime de conectori logici
(conective logice), la care se pot adăuga, opţional,
şi alte simboluri cum ar fi , etc.
-C2 = {(x) | x X} U {( x) | x X}: o mulţime de
cuantificatori (cuantori), universali, respectiv
existenţiali ((x) se citeşte „pentru fiecare x”, sau
„pentru oricare (orice) x”, iar (x) – „există x”, „există
măcar un x” etc.)
RECAPITULARE LP/LP1 – 17
• Ca şi în cazul LP, vom porni cu alfabetul
total, adică reuniunea mulţimilor precedente,
împreună cu parantezele rotunde şi virgula
(pe scurt, P):
-Alf = X U (UPi ) U (UFi ) U C1 U C2 U P
• Mulţimile UPi şi UFi vor fi notate tot cu P ,
respectiv F, atunci când nu există confuzii
RECAPITULARE LP/LP1 – 18
• Definiţie (sintaxa LP1). Fie Alf alfabetul fixat anterior.
Atunci mulţimea formulelor calculului cu predicate de
ordinul I, LP1Alf, este dată constructiv prin:
Baza. Se defineşte mulţimea formulelor atomice, notată
cu At, prin:
(i) Po At (variabilele predicative sunt formule atomice)
(ii) Pentru fiecare n N*, pentru fiecare P Pn, pentru
fiecare t1, t2, …, tn T, avem P(t1, t2, ……, tn) At
(iii) Nimic altceva nu mai este formulă atomică.
• În cele de mai sus, T denotă mulţimea termilor
(funcţionali), care este la rândul ei definită constructiv
astfel:
RECAPITULARE LP/LP1 – 19 Baza. X T şi F0 T (variabilele şi constantele sunt termi; se mai
numesc şi elementari).
Pas constructiv. Pentru fiecare n N*, pentru fiecare f Fn, pentru fiecare
t1, t2, … , t n T, avem f(t1, t2, …, tn) T.
Concluzionăm această (primă) etapă a definiţiei prin:
Baza. At LP1 (formulele atomice sunt formule). Continuăm definirea lui
LP1Alf cu partea „formule noi din formule vechi”:
Pas constructiv.
(i) Dacă F LP1 atunci ( F) LP1.
(ii) Dacă F1, F2 LP1 atunci (F1 F2), (F1 F2) LP1 (dacă dorim,
putem introduce şi (F1 F2), (F1 F2) LP1, etc.).
(iii) Dacă F LP1 atunci (x)(F) LP1; punem şi ( x)(F) LP1, pentru
fiecare x X.
(iv) Dacă F LP1 atunci (F) LP1
Nimic altceva nu mai este formulă.
RECAPITULARE LP/LP1 – 20 Semantica LP1 (rezultate, complemente, legătură sintaxă-semantică)
• Trecem în revistă Teorema (de extensie), rezoluţie, SAT…(practic,
toată problematica logicii bivalente clasice sugerată la LP, cu accent
pe posibilitățile de generalizare la LP1 și la logicile „superioare”)
• Repetăm că ar trebui cunoscute, mai mult sau mai puțin, măcar la
acest nivel (înainte de a aminti de formalizarea unor aspecte legate
de securitate, criptografie, protocoale, logica BAN, etc.) :
-Teoriile logice și sistemele deductive
-Elemente de Programare logică (limbaje de tip PROLOG)
-Elemente de Programare funcţională (notația lambda, lambda
calculul; un limbaj comercial, implementat)
-Problematica privind Model-checking-ul și demonstrarea automată
-Elemente de logici superioare (să zicem, modale și temporale)
• Prezentăm doar un strict necesar, cu insistență pe logicile mai
avansate (urmăriți și celelalte link-uri amintite...)
RECAPITULARE LP/LP1 – 21
• Teorie logică - concept semantic pentru
definirea şi tratarea globală a unei mulţimi
de formule: TE
• O teorie logică este o (sub)clasă de formule
închisă la consecinţă semantică
• Cu alte cuvinte, o mulţime TE de formule (din
orice logică) este teorie logică dacă pentru
fiecare submulţime T TE şi fiecare (altă)
formulă G care este consecinţă semantică
din T, avem şi GTE
RECAPITULARE LP/LP1 – 22
• Sistem deductiv (de deducţie, de demonstraţie,
inferenţial) - concept sintactic pentru definirea şi
tratarea globală a unei mulţimi de formule FORM:
SD
• Se numeşte sistem deductiv în FORM, un cuplu
SD = <A, R> unde
- A FORM este o mulţime de axiome iar
- R FORM+ C o mulţime de reguli de inferenţă
(de deducţie, de demonstraţie)
RECAPITULARE LP/LP1 – 23
• În cele de mai sus, FORM+ denotă mulţimea relaţiilor de
oricâte argumente (cel puţin unul) peste FORM, iar C
reprezintă o mulţime de condiţii de aplicabilitate; fiecare
regulă de inferenţă r R , are astfel aspectul
r = < < G1, G2, … , Gn, G>, (c)>, unde n N,
iar G1, G2, … , Gn FORM; (c) C
• G1, G2, … , Gn sunt ipotezele (premizele) regulii, G
reprezintă concluzia (consecinţa) iar c desemnează
cazurile (modalităţile) în care regula poate fi aplicată;
vom putea scrie chiar r = < < {G1, G2, … , Gn}, G>, c>
deoarece ordinea ipotezelor nu este esenţială
RECAPITULARE LP/LP1 – 24 • O regulă r = < < {G1, G2, … , Gn}, G>, (c)> va fi
scrisă şi ca:
• În cazul în care n = 0 şi (c) lipseşte, r poate fi
identificată ca fiind o axiomă, după cum rezultă din
definiţia care urmează
• Câteodată, alături de c, sunt explicitate separat şi
restricţiile sintactice locale asupra (formei)
(meta)formulelor (de ce „meta”...)
1 2 nG , G ,... . , G
, cG
RECAPITULARE LP/LP1 – 25 • Definiţie (demonstraţie, deducţie sintactică, raţionament).
Fie un sistem deductiv SD = <A, R> în FORM. Se numeşte
demonstraţie (pentru Fm, pornind cu A) în SD o listă de
(meta)formule (D) : F1, F2, … , Fm astfel încât pentru fiecare
i [m], fie Fi A, fie Fi este obţinut din Fj1, Fj2, … , Fjn
folosind o regulă r = < < {Fj1, Fj2, … , Fjn}, Fi>, c> R,
unde j1, j2, ... , jn < i
• Prin urmare, fiecare element al listei (D) este fie o axiomă, fie
este concluzia unei reguli de inferenţă ale cărei ipoteze sunt
elemente anterioare din listă; de detaliat și:
• Teoreme de corectitudine şi completitudine (sau
incompletitudine: aritmetica Peano; Presburger; etc.)
• Sisteme de tip Hilbert şi Gentzen, deducţie naturală,
calculul cu secvențe: SD0, SD1, SD3 (măcar); rezoluția ca
sistem deductiv, etc.
RECAPITULARE LP/LP1 – 26
• Ar urma o altă parte, privind diagramele de decizie binară
(eventual, ordonate) poate nu ați făcut-o la timp, la capitolul de
logică clasică legată de algebre boolene; dar o regăsiți acum și în
slide-urile relative la „Logica de anul I ”
• Ştim ce înseamnă funcţii booleene (inclusiv algebra booleană B) şi
reprezentarea lor cu ajutorul tabelelor de adevăr sau cu expresii
(FNCP, de exemplu)
• O altă reprezentare a elementelor din FB (mulţimea tuturor
funcţiilor booleene) se bazează pe diagramele de decizie binare
((O)BDD – (Ordered) Binary Decision Diagrams)
• Alegerea celei mai „convenabile” reprezentări depinde de context
• Tot ceea ce vom menţiona aici este că în anumite cazuri o BDD
poate fi mai „compactă” decât o tabelă de adevăr pentru o aceeaşi
funcţie (din cauza anumitor redundanţe care pot fi exploatate)
RECAPITULARE LP/LP1 – 27 • Renunțăm la explicitarea programării funcționale,
continuând cu ceva despre programarea logică
• Primul pas în scrierea unui program de tip
PROLOG (pur), este să formalizăm afirmaţiile
(inclusiv interogarea) prin formule din LP1 (de
exemplu...)
• Pentru aceasta, identificăm mai întâi elementele
importante din realitatea (lumea, universul) avută
în vedere
• Se pot distinge astfel următoarele elemente:
-Obiecte (intuitiv, constante ale lumii reale)
RECAPITULARE LP/LP1 – 28
-Transformări între (mulţimi de) obiecte;
acestea s-ar reprezenta prin simboluri
funcţionale de aritate mai mare ca 0
-Nume generice pentru obiecte; avem nevoie de
acest lucru deoarece există exprimări de genul
„Lui Adam îi place orice persoană care...” ; vom
nota cu X mulţimea tuturor acestor nume (care
vor fi, intuitiv desigur, variabile) şi vom folosi
x, y,…X
-Relaţii (legături) între (mulţimi de) obiecte; de
exemplu, „Lui Adam îi place de Eva”
RECAPITULARE LP/LP1 – 29
• Al doilea pas poate fi descris prin
-Construirea Afirmaţiilor adică, în acest moment putem
traduce cunoştinţele existente în formule (ale logicii
aristotelice...), lucru urmat inevitabil de formularea
-Interogării (întrebării); prin aceasta, dorim de fapt să
știm dacă o (nouă) cunoștință (formulă) este consecință
semantică din baza de cunoștințe pe care am construit-o
până acum
• Al treilea pas constă în a găsi o respingere în LP1,
pornind cu clauzele lui F*, folosind (de exemplu)
rezoluţia de bază; prin urmare, calculăm mai întâi D(F) şi
apoi E(F) (sau/şi E’(F)), etc.
RECAPITULARE LP/LP1 – 30
• Un program logic (clasic, standard, pur)
este format dintr-o mulţime finită de formule
program, alcătuită din fapte şi o mulţime de
formule suplimentare; un program logic
interogat este un cuplu format dintr-un
program logic şi o formulă scop; toate
formulele implicate sunt formule Horn, aflate
în FNSC şi cuantificate universal (clauza scop
este la fel doar în urma negării ei)
RECAPITULARE LP/LP1 – 31 • Pentru a încheia această primă parte recapitulativă, să
spunem că cel mai simplu mod de a vorbi despre
calculabilitate și decidabilitate este de a apela la
noţiunile intuitive de problemă şi algoritm care
rezolvă o problemă
• Apoi este nevoie de stăpânirea unor concepte formale
cum ar fi limbaje formale și automate, mulţimi și funcții
recursive și recursiv enumerabile; maşini Türing;
Random Access Machines (RAM), etc.
• Situaţia este şi mai complexă dacă dorim să discutăm,
mai mult decât informal, despre eficiență, adică despre
(clasele de) complexitate (formală) sau despre
(in)tractabilitate (am mai zis: căutați singuri, sau link...)
RECAPITULARE LOGICI
MODALE ȘI TEMPORALE
(LMT) – 1 • Pentru logicile neclasice (în ansamblu) pe care le vom trece în
revistă în continuare, vom folosi schema propusă inițial
(sintaxă, semantică, eventual forme normale, sisteme
deductive, SAT și alte rezultate importante)
• „Avansăm” întâi spre logicile de încredere, care sunt cele mai
potrivite pentru „modelarea simplă” a părții/zonei de realitate
care ne interesează (comunicarea „sigură” în sistemele
multiagent „în INTERNET” = SISTEM, după cum am mai
precizat)
• Prin „logici neclasice” ar trebui înțeles: Modal, Temporal and
Epistemic Logics (inclusiv „logicile de încredere”, de fapt)
RECAPITULARE LMT - 2
• Logicile temporale pot fi privite drept cazuri particulare ale unor logici
modale, deși ele au în acest moment o definiție/existenţă şi o
evoluţie/aplicabilitate independentă (ar trebui însă altă formalizare...)
• Diverse logici modale au, de asemenea, o evoluţie individualizată în
anumite ramuri ale informaticii (legate în mod direct de concurenţă și
distributivitate, în marea lor majoritate), tratând separat subiecte cum ar fi,
de ex., cunoaşterea în sistemele multiagent
• Într-un final, logicile de încredere sunt (pot fi privite ca) logici
epistemice, iar logicile epistemice sunt logici modale „temporale” (vom
reveni...)
• Modalităţile/modurile principale (operatorii modali) ale logicii modale de
bază (clasice, standard) nu sunt mereu/neapărat (mai revenim...)
□ (box/always) şi ◊ (diamond/eventually), ci, posibil,
(circle/next), U (u/until) sau Ũ (ũ/releases) (sau chiar alții...)
• Depinzând de relația dintre lumile universului (vezi în continuare),
operatorii pot avea și alte semnificații intuitive (ca modalități, sau moduri de
adevăr)
RECAPITULARE LMT - 3 • Astfel, în funcţie context și de diferitele „nuanţe” (moduri/modalități
de „adevăr”), înafară de adevărat_în_viitor (se poate chiar înlocui
în viitor cu în trecut, dar nu insistăm pe moment; filozofic...), mai
putem avea şi adevărat_în_mod_necesar, crezut_a_fi_adevărat,
corespunde_cunoştinţelor_agentului_Q, etc.; operatorii modali nu
se mai citesc prin urmare întotdeauna_în_viitor/cândva_în_viitor ci
necesar/posibil, sau crezut_de_toţi/crezut_de_cineva, sau chiar
agentul_Q_ştie_sigur_că/din_ceea_ce_ştie_agentul_Q, etc.
• Vom nota cu Ф (sau cu MD) mulţimea formulelor logicii modale
de bază, definită constructiv (sintaxa MD!) peste alfabetul
L = A U P U C1 U C2, unde A = {p1, p2, …} este mulţimea cel mult
numărabilă a variabilelor propoziţionale (a literalilor pozitivi),
P = {( , )} este mulţimea parantezelor, C1 = {, , , , } este
mulţimea conectorilor booleeni iar C2 = {□, ◊} este mulţimea
operatorilor modali (acestea pot fi mai vaste sau mai reduse...)
RECAPITULARE LMT - 4
• Ā = {p1, p2, …} va denota mulţimea negaţiilor
variabilelor propoziţionale (a literalilor negativi)
• Nu vom introduce (deocamdată) explicit în L,
mulţimea de operatori 0-ari adică constantele
(sau simbolurile) {true, false} (posibil a fi notaţi în continuare şi prin - top, respectiv prin
- bottom); ei vor fi introduși totuși, dar ca
formule atomice, iar negațiile ca formule
compuse
• Ca de obicei, definiţiile structurale pot fi
prezentate mai succint dacă utilizăm notația BNF
(Backus–Naur Form)
RECAPITULARE LMT - 5 Definiţie (sintaxa logicii modale de bază: Ф/MD).
Baza (formule atomice).
(i) true, false Ф.
(ii) Pentru fiecare p A, avem p Ф.
Pas constructiv (formule noi din formule vechi).
(a) Dacă F Ф, atunci (F) Ф.
(b) Dacă F1, F2 Ф, atunci (F1 F2),
(F1 F2), (F1 F2), (F1 F2) Ф.
(c) Dacă F Ф, atunci (□F), (◊F) Ф.
(d) Dacă F Ф, atunci (F) Ф.
(e) Nimic altceva nu mai este în Ф.
RECAPITULARE LMT - 6 • BNF-ul corespunzător:
Ф ::= | | p | ( Ф) | (Ф Ф) | (Ф Ф) |
(Ф Ф) | (Ф Ф) | (□ Ф) | (◊ Ф), unde p A
(paranteze, priorități, arbori sintactici, gramatici...)
• Înainte de a furniza şi semantica, să precizăm că diferenţele faţă de logica temporală „aleasă de noi” (care va urma) sunt minore la nivel strict sintactic, cea mai importantă fiind posibilitatea de a aplica negaţia oricărei formule, încă de la început (devin formule atomice atât literalii pozitivi cât și cei negativi)
• Alegerile noastre vor fi (în mare parte) justificate pe parcurs
• Nu ne vom ocupa (acum) de probleme de genul „care este numărul minim” de conectori astfel încât „niciunul să nu poată fi exprimat (semantic) cu ajutorul celorlalţi” (alternativ, „care sunt bazele minimale pentru această logică”)
• Bazele sunt importante atunci când „lungimea” unei formule devine esențială (în algoritmii de model-checking, de ex.)
RECAPITULARE LMT - 7 • Definiţie (structuri Kripke modale). O structură Kripke
modală este un 4-uplu K = <A, W, R, Π>, unde:
-A este mulţimea variabilelor propoziţionale (nevidă, cel mult
numărabilă)
-W este mulţimea stărilor sau lumilor universului (nevidă, cel
mult numărabilă; sau, universul este format din lumi...)
-R W W este o relaţie de trecere (sau de accesibilitate, sau
de legătură între lumi)
-Π : W 2A este o funcţie care va ataşa fiecărei stări mulţimea
variabilelor propoziţionale adevărate în acea stare
• Se mai poate adăuga o mulțime de stări inițiale, W0 W (și
atunci K devine un 5-uplu); de obicei, card(W0) = 1
• Cu structurile Kripke am „intrat” deja în semantică...
RECAPITULARE LMT - 8 • Definiţie (semantica MD). Fie
K = <A, W, R, Π> o structură Kripke modală. Adevărul formulelor din Ф, în K, se obţine în două faze/etape:
(I) Adevărul formulelor într-o lume (stare) oarecare.
-Baza:
(i) Pentru fiecare w W, w true şi
w false („în cuvinte...”).
(ii) Pentru fiecare w W, w p dacă şi numai dacă p Π(w), pentru fiecare
p A.
RECAPITULARE LMT - 9 -Pas constructiv:
(a) Pentru fiecare w W, w ( F) dacă şi numai
dacă w F (pentru fiecare F Ф).
(b) Pentru fiecare w W, w (F1 F2) dacă şi
numai dacă w F1 şi w F2 (pentru fiecare F1,
F2 Ф).
(c) Pentru fiecare w W, w (F1 F2) dacă şi
numai dacă w F1 sau w F2 (pentru fiecare F1,
F2 Ф).
(d) Pentru fiecare w W, w (F1 F2) dacă şi
numai dacă: dacă w F1 atunci w F2 (pentru
fiecare F1, F2 Ф).
RECAPITULARE LMT - 10
(e) Pentru fiecare w W, w (F1 F2) dacă şi numai dacă: dacă
w F1 atunci w F2 şi reciproc (pentru fiecare F1, F2 Ф).
(f) Pentru fiecare w W, w (□F) dacă şi numai dacă avem:
w’ F pentru fiecare w’ W care satisface <w, w’> R (pentru fiecare
F Ф).
(g) Pentru fiecare w W, w (◊F) dacă şi numai dacă avem: există
w’ W care satisface <w, w’> R astfel încât w’ F (pentru fiecare
F Ф).
(II) Adevărul formulelor în structura dată. O formulă
F Ф este adevărată într-o structură Kripke, K, dacă şi numai dacă ea
este adevărată în orice lume w W (adică avem K F dacă şi numai
dacă w F, pentru fiecare w W; nedeterminism angelic și demonic,
există versus orice, etc.); putem scrie (convențional) K(F) = 1 (sau chiar
w(F) = 1, sau S(F) = 1,...); putem pune chiar, în situațiile care o cer,
K F dacă şi numai dacă w F, pentru fiecare w W0 .
RECAPITULARE LMT - 11
• Să notăm că, peste tot în cele de mai sus, era mai corect de scris w K F sau <K, w> F
Observaţie.
(1)Relaţia R nu este presupusă a fi totală; pot
exista lumi w care nu mai au succesori; pentru aceste lumi avem, de exemplu, w (◊F), pentru
fiecare F Ф (inclusiv pentru F = true !); dual, avem w (□F), pentru fiecare F Ф (inclusiv
pentru F = false !), deoarece afirmaţia „avem
(w’ F pentru fiecare w’ W care satisface
<w, w’> R)” este adevărată prin lipsă, sau în
mod implicit (true by default).
RECAPITULARE LMT - 12 (2) Expresia „lumea w’ este legată de lumea w (în K, prin R)” trebuie desigur
înţeleasă prin aceea că <w, w’> R; aceasta ne sugerează în primul rând
faptul că logica modală de bază are o interpretare (ca mod de adevăr) pentru
□/◊ (de genul „relația R dă tonul”, indiferent de ceea ce înțelegem prin lume):
în_toate_lumile_legate/pentru_măcar_o_lume_legată; ceea ce face ca
această logică să poată fi privită ca o generalizare a tuturor celor care vor fi
abordate de noi, inclusiv a logicilor temporale sau a celor „agent dependent”
(totul depinzând de înțelesul atribuit expresiei „lume legată”); în al doilea
rând, ar părea natural ca, în lipsa totalităţii, relaţia R să fie măcar reflexivă şi
tranzitivă (ceea ce poate schimba chiar afirmațiile simple anterioare; similar,
se pot face doar anumite convenții locale, de genul <w, w> R (pentru un
anumit w), atunci când ne ocupăm de o semantică concretă; și alte proprietăţi
generale pentru R pot fi luate în considerare, lucru care poate conduce la
rezultate surprinzătoare faţă de cele presupuse, intuitiv, a fi standard (vezi
exemplele din Huth/Ryan).
(3) Operatorii □ şi ◊ „seamănă” atât cu cuantificatorii din LP1 cât şi cu
cuantificatorii de cale din CTL (vezi mai jos), dar este evident că diferenţele
determină o clară separare în ceea ce priveşte problemele de decizie legate
de semantica formală din logicile respective (inclusiv SAT).
RECAPITULARE LMT - 13 • De acum încolo, dacă nu vom spune altceva, presupunem că R este
reflexivă și tranzitivă, dar nu este (neapărat) totală
• Exemplu. Fie structura Kripke K = <A, W, R, Π>, unde:
-A = {p, q, ...}.
-W = {w1, w2, w3, w4, w5, w6, ...}.
-R = {<w1, w2>, <w1, w3>, <w2, w3>, <w2, w2>, <w3, w2>, <w4, w5>,
<w5, w4>, <w5, w6>} (construiți graful care reprezintă R; este relația
reflexivă ?)
-Π(w1) = {q}, Π(w2) = {p, q}, Π(w3) = {p}, Π(w4) = {q}, Π(w5) = Ø,
Π(w6) = {p} (este adevărat că avem: w1 q, w1 (◊q), w1 (□q),
w5 (□p), w5 (□q), w5 (□p □q), w5 □(p q) ?) (graful „relațional”
se etichetează și cu elemente din codomeniul lui Π)
• Este adevărat că lumile de mai sus care satisfac formula
F = ((□p) p) sunt doar w2, w3, w4 și w6 ?
• Avem oare K F ?; dar în nedeterminismul angelic ? (voi, ce nu-i...)
RECAPITULARE LMT – 13/1
(EXEMPLU; REZOLVĂRI)
• Graful „lui R” este orientat, dublu etichetat pe
noduri și putem spune că reprezintă întreaga
structură K
• În cazul nostru, el va avea 6 noduri, etichetate cu
o primă etichetă care denotă lumea/starea (w1,
...,w6); a doua etichetă a fiecărui nod va fi
mulțimea stărilor adevărate în acel nod, adică
Π(wi), i [6] (de exemplu, a doua etichetă a lui
w2 este {p, q} iar a lui w5 este Ø)
• Vom avea arc de la w’ la w’’ ddacă <w’, w’’> R
RECAPITULARE LMT – 13/2
(EXEMPLU; REZOLVĂRI) • Avem w1 (◊q) ddacă există w’ W care satisface
<w1, w’> R, astfel încât w’ p; lucru adevărat, putând lua
w’ = w2 sau w’ = w3, deoarece p Π(w2) (= {p, q}) și
p Π(w3) (= {p})
• Pentru ca o stare w ((□p) p): fie w (□p), fie (exclusiv)
w (□p), dar atunci trebuie să avem și w p
• Să ne plasăm în a doua situație; pentru a avea w (□p), ar
trebui ca pentru fiecare w’ cu <w, w’> R, să avem și
w’ p; dacă luăm w = w1, atunci afirmația imediat
anterioară este adevărată (w’ = w2 sau w’ = w3, iar
p Π(w2) și p Π(w3)); dar pentru ca w1 ((□p) p), ne
trebuie și w1 p, ceea ce nu mai este adevărat, deoarece
p {q}
RECAPITULARE LMT – 13/3
(EXEMPLU; REZOLVĂRI) • Concluzionăm imediat că w1 ((□p) p)
• Desigur, rezultă și alte lucruri, în mod similar, dar,
posibil, nu cu aceeași concluzie), despre restul stărilor
• Dacă pornim de la cerința w (□p), caz în care nici nu
ne mai interesează ce se întâmplă cu adevărul lui p în
vreo stare (deoarece
((□p) p) devine implicit adevărată în w): ar trebui ca
să existe măcar o stare w’ cu
<w, w’> R, astfel încât p Π(w’); niciuna dintre
stările „noastre” nu se află însă în situația de-abia
descrisă
RECAPITULARE LMT - 14 • Există anumite dificultăți legate de definirea constructivă a
adevărului în trepte, folosit mai sus (întâi într-o lume, apoi în
structura corespunzătoare, apoi...)
• Definiţie (consecinţă semantică şi echivalenţe în logica modală de bază). Fie F Ф, G Ф şi K = <A, W, R, Π> o
structură Kripke. Spunem că G este consecinţă semantică din F în K (pe scurt, F K G) dacă şi numai dacă din w K F (pentru fiecare
F F) avem w K G şi aceasta pentru fiecare wW. Două formule
F şi G din Ф sunt tare echivalente în K (F K G) dacă şi numai dacă {F} K G şi {G} K F. Putem „merge mai departe” și vorbi
despre tare/slabă echivalență, validitate, satisfiabilitate, etc. (de
exemplu, F G dacă şi numai dacă F K G, pentru fiecare K...; F
este validă în K...; F este validă; F este satisfiabilă...).
• În acest cadru (pentru noi, prea) general, nu ne vom ocupa de
formele normale pentru formule (necesare, de ex., pentru aplicarea
rezoluției, ca metodă sintactică de testare a satisfiabilității)
• Amânăm și prezentarea unor rezultate importante...
RECAPITULARE LMT - 15 • Ca și logica modală, logica temporală definită direct (mai
corect: logicile temporale) reprezintă, în primul rând, o
extensie a logicii clasice bivalente (există și...extensii
clasice ale logicilor clasice; comparații: ierarhii, putere de
exprimare...), în care timpul (interpretat discret, nu
continuu, lucru totuși posibil...) este reprezentat implicit
prin anumiţi operatori sintactici şi apoi interpretat explicit
așa, în semantică
• Logicile temporale se constituie într-un limbaj potrivit
pentru a descrie proprietăţi importante ale unor
secvenţe/cuvinte infinite (sau chiar arbori infiniţi), care pot
reprezenta, ca suport, comportările temporale ale unui
sistem (concurent) real (este vorba aici inclusiv despre
sistemele multiagent)
RECAPITULARE LMT - 16 • Logica temporală poate fi privită, în același timp, și ca un caz
particular chiar al logicii dinamice (altă extensie/restricție a logicii
modale; nu insistăm), care au implementări comerciale de succes
(relativ la timp, lumile/stările nu „prea” există aprioric, ca entități
primordiale, ci se construiesc în momente succesive de timp, prin
„programe” care convertesc o lume la alta, prin acțiuni sau
evenimente care schimbă starea curentă, etc.; scalabilitatea poate
fi totuși o problemă...)
• În logica modală, principala idee era aceea că adevărul unei
formule depinde de contextul/lumea/universul în care aceasta
este folosită
• Contextul (privit ca o mulţime nevidă de stări/lumi care
inter-relaţionează) îl poate reprezenta însă nu doar acel univers
(abstract) înconjurător cu lumile/stările lui, ca mai înainte, ci și
timpul (privit ca entitate în sine), clasa de agenți, sistemul de
operare în ansamblu, mediul de programare, etc.
RECAPITULARE LMT - 17 • Structura/interpretarea unei formule în cazul unor asemenea logici
(neclasice) temporale (care, pentru fragmentele alese de noi, vor
rămâne extensionale, bivalente și bazate pe tertium non datur), va
furniza o unică valoare de adevăr pentru fiecare stare, într-un
context (moment de timp) dat
• Relaţia modală R, prin care se stabileau legăturile dintre stări, va fi
aici dedusă direct din modul în care va fi privit timpul (liniar sau
arborescent)
• În logica dinamică de ex., relaţia este generată de execuţia unor
programe reale, de obicei concurente (acţiuni/evenimente cumva
externe universului considerat, dar având propria lor interpretare)
• Pe scurt, putem privi intuitiv starea ca reprezentând o situație
posibilă a sistemului (eventual, multiagent...), la un moment dat de
timp; o succesiune temporală de stări corelate va fi o comportare
posibilă (în timp) a sistemului; o formulă adevărată, va descrie o
proprietate (dorită a fi) satisfăcută de către sistem, etc.
RECAPITULARE LMT - 18 • Vom începe cu o descriere a sintaxei şi semanticii logicii temporale
(propoziţionale) cu timp liniar (LTL/PTL), la nivel intuitiv
• Dacă ne gândim la sintaxa LP, formulele din LTL vor conţine (înafara variabilelor propoziţionale şi a conectorilor cunoscuţi ,, ..., cu ajutorul
cărora se exprimă adevăruri generale, simple, independente de timp), şi nişte
operatori noi, care sunt operatorii temporali de viitor (sintactic, unii dintre
aceștia pot să nu difere de operatorii modali întâlniți deja; pot fi și alții înafară
de cei pe care-i amintim; trecutul, încă, îl neglijăm)
• Dintre aceştia (primii trei sunt unari - știm asta - iar ultimii trei, binari) amintim:
(sau N, X) – circle/NeXt/tomorrow
(la_momentul_de_timp_imediat_următor)
□ (G) - box/always/Globally) (întotdeauna_în_viitor)
◊ (F) - diamond/eventually/Finally/sometimes) (cândva_în_viitor)
U – u/until (până_când_în_viitor)
Ũ (R, V) – ũ/releases (declanşează/provoacă_în_viitor)
W – double u/unless/Week until (înafară_de_cazul_când_în_viitor)
• Operatorii absolut necesari sunt aici (i-am ales pentru a constitui o bază; se pot selecta și alții, care se exprimă prin aceștia): , , , U
RECAPITULARE LMT - 19
• Din punct de vedere semantic se va schimba noţiunea de
structură/interpretare (Kripke, modală); desigur că formulele vor primi
(tot gradual/constructiv) o valoare de adevăr (0 sau 1), posibil diferită, în
funcţie de: secvenţa (de timp) aleasă, de valorile de adevăr ale
variabilelor propoziţionale în fiecare element al secvenţei şi de operatorii
care intră în componenţa formulelor
• Elementele/etichetele unei secvenţe (cuvânt infinit) se mai numesc stări,
ele identificând (în mod uzual) anumite situaţii care se pot petrece la
diversele locuri/momente de timp (timpul, considerat a fi unic și discret,
adică liniar „în curgerea sa”, va fi pur și simplu considerat ca fiind
reprezentat de mulțimea N)
• A alege o secvenţă înseamnă de fapt a alege stările componente
(identificate tot prin mulţimea variabilelor propoziţionale adevărate în ea)
şi ordinea acestora
• Să considerăm astfel secvenţa următoare care conţine stările s0, s1, s2,
s3, s0, s1, s2, s3, …, respectiv pe poziţiile/momentele de timp 0,1, 2, 3, 4,
5, 6, 7, …; mai scriem și w = w0w1w2... (unde wi este starea de pe poziția
i, i N)
RECAPITULARE LMT - 20
• Dacă s0 = {p, q}, s1 = { p, q},
s2 = { p, q} = s3, p şi q fiind variabile
propoziţionale/formule atomice, putem „picta” graful (arborele unar...):
(de „pus cum trebuie” în „poză”; s3 este
marcată, mai exact starea w3 care apare la
momentul 3; s0 apare la momentul 0, 4, ...; vezi și
continuarea...)
RECAPITULARE LMT - 21 • Este adevărat că (în „poză”): formulele F1 = p q şi
F2 = (p q) sunt adevărate în starea marcată iar
F3 = □p este falsă în întreaga secvenţă (voi, sau
slide următor) ?
• Reluând, dacă privim totul „de sus în jos”, adică din
perspectiva logicii modale, universul ar fi constituit
din clasa tuturor stărilor (privite ca mulțimi de
formule atomice, negate sau nu, cu condiția...), iar
relația dintre stări pentru o structură va fi practic
dedusă din relaţia temporală sugerată de o
cale/secvență (vezi mai jos)
• În acest mod, o secvență, va fi ea însăși privită ca o
structură/cale (Kripke temporală/liniară)
RECAPITULARE LMT – 21/1
(EXEMPLU; REZOLVĂRI)
• Să arătăm că F2 = (p q) este adevărată în w3
(= s3)
• Acest lucru (mai corect, w3 ((p q))), revine
(intuitiv !) la w4 (p q); astfel, atât p, cât și q,
trebuie să fie adevărate în starea w4, imediat
succesoare (în timp) stării w3; cum w4 este de
fapt s0 („etichetată” cu {p, q}), pentru ca F2 să fie
adevărată în starea (momentul) menționată,
trebuie ca p {p, q} și q {p, q} (ceea ce este
evident)
RECAPITULARE LMT - 22
• Pentru definiţiile formale, vom porni cu alfabetul
„logic” L = A U Ā U P U C1 U C2, unde
A = {p1, p2, …} este mulţimea (nevidă, cel mult
numărabilă) a variabilelor/formulelor atomice
propoziţionale (sau a literalilor pozitivi),
Ā = {p1, p2, …} este mulţimea negaţiilor
variabilelor propoziţionale (adică a literalilor
negativi), P = {( , )} este mulţimea parantezelor,
C1 = { - mai „altfel”,, } este mulţimea
conectorilor booleeni iar C2 = {, U, Ũ} este
mulţimea operatorilor temporali
RECAPITULARE LMT - 23 • Pentru că nu am introdus aici şi cuantificatorii, LTL este mai
degrabă (dacă privim „de jos în sus”) o extensie a LP decât a
LP1 (iar comentarii legate de extensii, fragmente, ierarhii ale
logicilor, privite ca mulțimi de fomule; putere de exprimare...)
• De aceea această mulţime se mai numeşte şi logică temporală
propoziţională (Propositional Temporal Logic - PTL)
• Faptul că LTL este şi cu timp liniar va fi justificat prin semantică
(mai exact, prin modalitatea de definire a unei structuri, adică
de obţinere a valorii de adevăr pentru o formulă)
• Logicile temporale studiate în continuare (LTL, CTL*, CTL...),
exprimă simplu realitatea „noastră” identificată până acum,
adică clase întregi de proprietăți dorite ale sistemelor (MA)
reale, cum ar fi cele de siguranță (safety),
permanență/vivacitate (liveness), corectitudine (fairness),
etc. (revenim...)
RECAPITULARE LMT - 24
• Definiţie (sintaxa LTL).
Baza (formule atomice).
(i) true, false sunt formule atomice şi elemente ale LTL.
(ii) Pentru fiecare p A, atât p, cât şi p ( Ā) sunt formule atomice şi
elemente ale LTL (prezente însă nu simultan într-o aceeaşi stare;
vezi semantica).
Pas constructiv (formule noi din formule vechi).
(a) Dacă F1, F2 LTL, atunci (F1 F2), (F1 F2) LTL.
(b) Dacă F LTL, atunci (F) LTL.
(c) Dacă F1, F2 LTL, atunci (F1 U F2), (F1 Ũ F2) LTL.
(d) Dacă F LTL, atunci (F) LTL.
(e) Nimic altceva nu mai este în LTL.
• Putem renunța (se va vedea mai clar puțin mai târziu) la folosirea explicită a operatorilor , Ũ, true, false
• Varianta BNF (voi...)
RECAPITULARE LMT - 25 Observaţie. Faţă de cazul „clasic, modal” am introdus (și)
negaţiile variabilelor propoziţionale în mulţimea
formulelor atomice, negaţia nemaifiind prezentată
explicit ca un conector pentru obținerea formulelor
compuse.
• Acest „dezavantaj” poate fi eliminat, la fel ca şi absenţa posibilă a altor operatori importanți (cum ar fi ◊, □, ,
true, false, Ũ, ...), prin folosirea unor echivalențe
(„evidente”/naturale, pe care le admitem deocamdată
fără demonstrație) și introducerea „globală” a lui
• Vom reveni după definirea semanticii formale
• Nicio modificare de asemenea natură (posibil a fi
adoptată chiar prin definiție/convenție) nu schimbă însă
esenţial rezultatele principale deja cunoscute/bănuite
RECAPITULARE LMT - 26 • Dacă nu există confuzii, vom folosi priorităţi pentru operatori și vom elimina anumite paranteze
corespondente (sau, uneori, scrierea lor cu bold) din formule (arbori, compilator, ...)
• Priorităţile general acceptate sunt, de obicei: 0 – pentru operatorii unari, 1 – pentru , şi 2 (şi
mai mare...) – pentru restul...
Definiţie (drum). Se numeşte drum (cale, urmă, rută, traseu, structură, secvență, cuvânt) pentru o
logică LTL (peste A) orice funcţie π : N 2A. Pentru un drum π vom nota cu πi sufixul său obţinut
prin înlăturarea primelor i elemente (deci a prefixului π(0), π(1), ..., π(i-1)). E vorba de funcţia
πi : N 2A dată prin πi(j) = π(i+j), pentru fiecare j N (i N*). Orice submulțime w a lui A se
numește stare; π(0) va fi numită starea inițială a căii π. Admitem de pe acum că F este
adevărată în π (π F) ddacă ea este adevărată în starea iniţială a căii respective (adică în
starea π(0) A); prin convenție, admitem mai sus și cazul i = 0 (π0 va denota pe π).
• Astfel, putem adăuga în sintaxă pe box și diamond, dar putem pune și direct (◊F) =def (true U F)
şi respectiv (□F) =def (false Ũ F); aceasta, intuitiv, „trăgând cu ochiul” la semantica Kripke
modală a operatorilor
• Mai exact, stabilind prin convenție că orice stare w este și succesorul său „implicit” (nu
întotdeauna și imediat, dacă ne gândim la drumuri !) vom putea spune (vezi mai jos, formal) că
π (□F) ddacă π(0) (□F), adică ddacă πi F (pentru fiecare i 0); similar pentru (◊F), adică
înlocuind „pentru fiecare i”, cu „există măcar (un) i”
RECAPITULARE LMT - 27 Definiţie (semantica LTL). Valoarea de adevăr pentru formulele LTL
într-o cale π se obţine structural astfel:
Baza.
(i) π true şi π false (pentru fiecare π).
(ii) π p ddacă p π(0), şi π p ddacă p π(0), pentru fiecare p A
(pentru fiecare π).
Pas constructiv.
(a) π (F1 F2) ddacă π F1 şi π F2, iar π (F1 F2) ddacă π F1
sau π F2 (pentru fiecare π).
(b) π (F) ddacă π1 F (pentru fiecare π).
(c) π (F1 U F2) ddacă există i 0 astfel încât πi F2 şi pentru fiecare
0 j < i avem πj F1; cumva „dual”, punem π (F1 Ũ F2) ddacă
pentru fiecare i 0 cu πi F2, există 0 j < i astfel încât πj F1
(pentru fiecare π). (d) π (F) dacă şi numai dacă π F (pentru fiecare π).
RECAPITULARE LMT - 28 • Intuitiv, avem π F1 U F2 ddacă fie F2 este adevărată în toată calea, fie, de la un
loc încolo; în acest ultim caz, până la acel loc, este mereu adevărată F1
• Silmilar, avem π F1 Ũ F2 ddacă pentru fiecare loc din cale începând cu care F2
nu este adevărată, există (măcar) un loc anterior în care este adevărată F1
• În cele de mai sus, trebuie (peste tot) adăugat „pentru fiecare F, F1, F2 LTL”
• Dacă admitem că o stare w ar fi inclusă în A U Ā (nu doar în A), atunci
implicit/prin convenție, se consideră că dacă p w, avem neapărat p w (nu şi
reciproc: dacă p w nu înseamnă că admitem ca p w)
• Mai mult, pentru nici o stare w şi atom p nu putem avea atât p w cât şi
p w
• Repetăm: în semantică putem introduce explicit toate definițiile dorite de
operatori (după cum i-am introdus sintactic), dar pentru a le păstra consistența
trebuie apoi demonstrate anumite ehivalențe generale
• Mergând pe o idee oarecum opusă și ținând cont, de exemplu, de „echivalențele”
de la începutul slide-ului cu titlul „RECAPITULARE LMT – 29”, relative la negația
„generală”, care pot fi interpretate drept definiția directă a acesteia, putem renunța
și la Ũ, true, false, (nu numai la □ și ◊)
• Furnizăm însă pe slide-urile imediat următoare câteva amănunte despre definițiile
temporale ale operatorilor modali întâlniți, precum și anumite echivalențe tari între
aceștia, care pot fi importante; vi le-am dat și vouă
RECAPITULARE LMT – 28/1
(OPERATORI ȘI ECHIVALENȚE) • Definițiile (în sensul de precizare a adevărului
într-o cale dată, π) directe (a) intuitiv, b) formal,
c) grafic) ale operatorilor temporali deja amintiți
ar fi (unele au mai fost „atinse”):
1. Next: π (F)
a) În pasul/momentul (imediat) următor (de timp), F
(trebuie să fie) este adevărată
b) π1 F
c) ○ ○ ○ ○ ... (F este adevărată în starea
punctată/înnegrită; în rest, nu contează)
RECAPITULARE LMT – 28/2
(OPERATORI ȘI ECHIVALENȚE) 2. Until: π (F U G)
a) F trebuie să rămână adevărată până când G devine adevărată (lucru care se și
întâmplă până la urmă)
b) Există i N astfel încât πi G, și, pentru fiecare 0 k i (trebuie să) avem πk F
c) ... ○ ○ ○ ... (F este adevărată în stările punctate și G este falsă în ele;
G devine adevărată în starea „înroșită”, care este prima pusă în evidență și poate
fi și prima din secvență; în rest, nu contează)
3. Release: π (F Ũ G) (cumva dual față de U)
a) G trebuie să rămână adevărată până când se întâmplă ca F să devină adevărată
(lucru care poate să nu se întâmple niciodată)
b) Pentru fiecare i N cu πi G, există 0 k < i astfel încât πk F
c) ... (F este falsă mereu deci și G rămâne mereu adevărată), sau,
... ○ ○ ○ ... (G este adevărată în stările punctate și F este falsă ele; în
starea „înroșită”, F devine adevărată iar G rămâne și ea adevărată; în rest, nu
contează)
RECAPITULARE LMT – 28/3
(OPERATORI ȘI ECHIVALENȚE) 4. Always: π (□F)
a) F trebuie să fie adevărată la fiecare pas/moment al căii
b) Pentru fiecare i N, avem πi F
c) ... (F este adevărată în toate stările)
5. Eventually: π (◊F)
a) Există măcar un moment de timp în care F este (va fi)
adevărată
b) Există i N astfel încât avem πi F
c) ○ ○ ... ○ ○ ○ ○ ... (F este adevărată în starea punctată,
care poate fi și prima; în stările de dinaintea ei, F este
falsă, iar în cele care urmează, nu contează)
RECAPITULARE LMT – 28/4
(OPERATORI ȘI ECHIVALENȚE) 6. Unless (weak until): π (F W G)
a) F trebuie să rămână adevărată până când G devine adevărată (ceea ce
poate să nu se întâmple niciodată)
b) Dacă există i N astfel încât πi G, atunci pentru fiecare
0 k i avem πk F
c) ... (G este permanent falsă) sau
... ○ ○ ○ ... (F este adevărată în stările punctate, G este falsă în
acestea, iar în starea „înroșită”, G este adevărată; în rest, nu contează)
• Continuăm cu câteva echivalențe, legate în special de introducerea
negației și exprimarea unor operatori în funcție de alții (este posibil ca
unele să mai fi fost prezentate anterior, eventual sub alte forme)
• Desigur că este vorba despre echivalența tare a formulelor în LTL, și avem F G dacă: π F ddacă π G, pentru fiecare cale π
• Mai concret, pentru fiecare F, G LTL, p A avem:
RECAPITULARE LMT – 28/5
(OPERATORI ȘI ECHIVALENȚE) (I)Echivalențe clasice:
-F G (F G)
-F G F G
-F G (F G) (G F)
-true p p
-false true
(II)Echivalențe legate de exprimarea unor operatori temporali în funcție de
alții (vezi și (III)(b)):
-(F Ũ G) (F U G)
-(F W G) (F U G) (□F) F U (G (□F)) G Ũ (G F)
-(F U G) (◊G) (F W G)
-(F Ũ G) G W (G F)
-(◊F) true U F (□(F))
-(□F) false Ũ F (◊(F))
-Este adevărat și că F U G ◊G este validă (pentru fiecare F)
RECAPITULARE LMT – 28/6
(OPERATORI ȘI ECHIVALENȚE) (III)Alte echivalențe utile:
(a)Distributivitate
-(F G) (F) (G)
-(F G) (F) (G)
-(F U G) (F) U (G)
-◊(F G) (◊F) (◊G)
-□(F G) (□F) (□G)
-H U (F G) (H U F) (H U G)
-(F G) U H (F U H) (G U H)
(b)Propagarea negației
- (F) ( F)
- (□F) ◊(F)
- (◊F) □(F)
- (F U G) (F Ũ G)
- (F Ũ G) (F U G)
RECAPITULARE LMT – 28/7
(OPERATORI ȘI ECHIVALENȚE) (c)Proprietăți temporale speciale (primele 3: idempotență; următoarele 5: expansiune; ultimele
2: absorbție)
-◊F ◊(◊F)
-□F □(□F)
-F U G F U (F U G) (F U G) U G
-F U G G (F (F U G))
-F W G G (F (F W G))
- F Ũ G G (F (F Ũ G))
-□F F (□F)
-◊F F (◊F)
- ◊(□(◊F)) □(◊F)
- □(◊(□F)) ◊(□F)
• Formulele LTL pot fi aduse, în sensul cunoscut (prin transformări sintactice care păstreză adevărul,
folosind echivalențele anterioare), la o formă normală numită NNL (Negation Normal Form; nu
insistăm)
• În NNL pot apare și operatorii Ũ, , true, false (care nu fac parte din baza sugerată, deoarece pot
fi exprimați cu ajutorul celorlalți), dar lungimea ei nu crește exponențial față de formula inițială; ea
va folosi în special la trecerea de la LTL la automate Büchi (este vorba despre amănunte legate de
model-checking; din nou, nu insistăm)
RECAPITULARE LMT – 28/8
(OPERATORI ȘI ECHIVALENȚE) • Să demonstrăm că (◊F) true U F, adică, pentru fiecare drum π, avem
π (◊F) ddacă π true U F; succesiv:
-π (◊F), ddacă există k N, cu πk F (din definiția lui ◊); ddacă există
k N, cu (πk F și pentru fiecare 0 j k, avem πj true), deoarece true
este adevărată în orice stare a drumului π; și, în sfârșit, ddacă
π true U F (din definiția lui U)
• Să demonstrăm și (□F) (◊(F)), adică, pentru fiecare drum π, avem
π (□F) ddacă π (◊(F)); succesiv:
-π (□F), ddacă pentru fiecare i N, avem πi F (din definiția lui □); ddacă
nu este adevărat că există i N, astfel încât (nu avem πi F) - legătura
dintre oricare și există în LP1, adică (vom folosi acum definițiile negației, de
oriunde) ddacă nu este adevărat că (există i N, astfel încât πi F); ddacă
nu este adevărat că (π ◊(F)); ddacă, în sfârșit, π (◊(F)) (din nou am
folosit definiția negației); restul demonstrațiilor - voi
RECAPITULARE LMT - 29 • Putem aplica negaţia şi formulelor oarecare din LTL ținând cont de definițiile (mai jos, peste tot,
ddacă poate fi înlocuit cu =def , sau cu ) :
-π (F) ddacă nu este adevărat că π F, adică, ddacă avem π F
-π (F1 U F2) ddacă π (F1) Ũ (F2)
-π (F1 Ũ F2) ddacă π (F1) U (F2)
-π (F1) ddacă π ((F1))
• Conform notaţiilor şi convenţiilor adoptate deja, π F va denota faptul că π este model pentru F
(sau, F este adevărată în π; sau, F este satisfăcută în/de π)
• Ideea principală (repetăm...) este că o cale reprezintă acum o structură şi că o formulă este
adevărată într-o cale π dacă şi numai dacă ea este adevărată în starea iniţială a acelei căi
• De exemplu, (F) este adevărată în π dacă şi numai dacă ea este adevărată în π(0), adică dacă şi
numai dacă F este adevărată în π1, adică dacă şi numai dacă F este adevărată în π1(0), adică dacă
şi numai dacă F este adevărată în π(1+0) = π(1), care este de fapt starea imediat succesoare lui
π(0) (în π)
• Nesurprinzător, vom spune că o formulă F LTL este satisfiabilă ddacă este adevărată în măcar
o cale și validă ddacă este adevărată în toate căile (folosim desigur un alfabet deja fixat)
• În plus, avem: pentru F1, F2 LTL spunem că F1 F2 ddacă π F1 implică π F2 și reciproc (F1 și
F2 sunt tare echivalente); etc.
• Am folosit metodologia generală de construcție punctuală a unei logici; până la „inginerie” mai
sunt lucruri de făcut...; oricum, deși încă fără a dispune/stăpâni anumite sisteme de demonstrație și
(eventual !) teorii logice asociate, avem: alfabet, sintaxă, semantică/adevăr = structură:
RECAPITULARE LMT - 30 -S-a pornit cu o structură (asignare, interpretare...) simplă, prin care se atribuie valori de adevăr
variabilelor propoziţionale (alfabet ...); practic, în cazul nostru, începem cu o mulţime
numărabilă (de fapt, cuvânt infinit) de stări, fiecare fiind element al lui 2A; dacă w 2A şi
p w, atunci p este adevărată în w (dacă p w, atunci negaţia sa este adevărată în w, adică
p w, adică p este falsă în w; dacă p w, nu înseamnă că p w...); sintaxa aleasă este
astfel mai mult un template pentru true, ca „definire” a adevărului „de bază”
-Se extinde apoi structura anterioară la formule; adică, ne interesează adevărul unei formule în
anumite mulţimi particulare de stări şi anume în drumuri; adevărul unei formule într-un
drum/cale este unic determinat de adevărul formulei în starea iniţială a drumului, adevăr care
(conform definiţiei structurale) se reduce în final la adevărul, în anumite stări (de asemenea
unic determinate), a variabilelor propoziţionale, adică la (ne)apartenența lor la starea
corespunzătoare
-După cum am mai remarcat (intuitiv), o cale π poate fi privită ca o structură Kripke modală
(acum, temporală), dacă se face paralela exactă cu relația R și funcția Π (și, desigur, cu mulțimea lumilor = stărilor modale, W); ideea ar fi ca, mai jos, să avem Kπ F în caz că
π F; adică, pe scurt:
-Dată orice cale π : N 2A , peste A (notăm π = w0w1..., cu wi A și π(i) = wi), componentele
rămase a fi precizate ale structurii Kripke (modale) atașate, Kπ = <A, Wπ, Rπ, Ππ>, sunt:
mulțimea lumilor, Wπ = {π0 = π, π1, π2,...}; apoi, <s, s’> Rπ ddacă s = πi și s’ = πi+1 (pentru
fiecare s, s’ Wπ adică pentru fiecare i N); în final, Ππ : W 2A , va fi dată prin
Ππ(πi) = πi(0) = π(i)
RECAPITULARE LMT - 31 • Se arată, prin inducție structurală, că este adevărată afirmația F: (pentru fiecare π)(P(π)),
unde P(π): (pentru fiecare G LTL)(dacă π G atunci Kπ G); pentru G este nevoie de a fi
considerate situațiile acceptate de sintaxa concretă (G = true, ( F), (F1 F2), (□F), etc.)
• Putem construi similar căi πK „corespunzătoare”, pornind de la structuri K (vezi mai jos)
• Vom defini structural/constructiv și mulțimea subformulelor unei formule F LTL, notată aici
cl(F) (și numită închidere), deși ea va fi utilă abia atunci când vom discuta despre de tip
model-checking (MC)
• Față de definiția cunoscută (bottom-up, de la LP, să zicem; algoritmi recursivi, terminare...),
definiția următoare este, în esență, varianta top-down
Definiţie (închiderea unei formule). Fie F LTL.
Baza. F cl(F).
Pas constructiv.
(i) Dacă (F1 * F2) cl(F), unde * {, , U, Ũ}, atunci F1, F2 cl(F).
(ii) Dacă (G) sau (G) cl(F) atunci G cl(F).
(iii) Nimic altceva nu mai este în cl(F); astfel, înțelegem (implicit) că procedeul de construcție
al lui cl(F) se încheie imediat după ce introducem toate formulele atomice care apar în F.
• Să menționăm că este adevărat rezultatul (am mai precizat că tot la (MC) ne vor interesa
formele normale și, eventual, alte echivalențe)
Teoremă (decidabilitatea SAT pentru LTL). Problema satisfiabilităţii (validităţii, nesatisfiabilităţii)
pentru clasa formulelor logicii temporale cu timp liniar este decidabilă.
RECAPITULARE LMT - 32
• Exemplu (trebuie rezolvat folosind definițiile formale introduse, adică noțiunea de
adevăr al unei formule într-o cale). Fie p, q, r A variabile propoziţionale şi formulele F1 = □(p (q)), F2 = □(p (q U r)), F3 = □(◊p), F4 = (p Ũ q). Avem
π Fi, i [4], după cum urmează (faceți voi ceea ce nu este făcut):
• F1 este satisfăcută în toate drumurile π care satisfac condiţia: fiecare stare în care
p este adevărată, este imediat urmată de o stare în care q este adevărată
• F2 este satisfăcută în toate drumurile π care satisfac condiţia: dacă p este
satisfăcută într-o stare, atunci, începând cu starea (imediat) următoare acesteia (şi
în următoarele...), fie r este adevărată (mereu), fie q este şi rămâne falsă până
când apare (ceea ce se întâmplă cu siguranţă) o (altă) stare în care r este
adevărată (și apoi, r rămâne adevărată până „la sfârșit”); putem chiar spune că
această a doua parte („fie q este...”) o include („la limită”) și pe prima („fie r este...”)
• F3 este satisfăcută în toate drumurile π care satisfac condiţia: p este adevărată
într-o infinitate de stări
• F4 este satisfăcută în toate drumurile π care satisfac condiţia: q este mereu
adevărată de la început, sau măcar o dată falsă, dar nu mereu începând cu acel
loc; dacă se întâmplă totuși așa ceva, atunci există măcar un loc anterior celui în
care q este falsă și în care p este adevărată
RECAPITULARE LMT – 32/1
(ADEVĂRUL ÎNTR-O CALE π)
• Vom lua doar pe F1; notăm π = w0w1..., cu
π(i) = wi, i N
• Avem π □(p (q)) ddacă
π(0) □(p (q)) ddacă w0 □(p (q));
deci trebuie să avem wi p (q), pentru
fiecare i N, adică exact faptul că „pentru
fiecare stare în care p este adevărată, este
necesar ca în starea imediat următoare
acesteia să fie adevărată q”
RECAPITULARE LMT - 33
• Înainte de a ne ocupa de o logică mai evoluată, CTL*/CTL (Computation
Tree Logic), să remarcăm că putem proceda și invers, adică putem
„trece” de la MD la LTL, ceea ce va implica mai târziu și trecerea de la
CTL*/CTL la LTL
• Astfel, dacă pornim cu o structură Kripke modală K = <A, W, R, Π>, și
notăm cu DK mulțimea tuturor „drumurilor Kripke, infinite” din K (conform relației R), putem spune că K F ddacă avem π F, pentru fiecare
element π din DK
• În mod natural, vom pune deci π DK ddacă π = w0w1... și
<wi, wi+1> R, pentru fiecare i N
• Putem înlocui, peste tot, pe W cu W0 (dacă este cazul)
• Remarcăm faptul că diferenţa principală dintre noile logici și logica
temporală (propoziţională) cu timp liniar este dată de ideea că timpul nu
este privit a fi liniar ci arborescent (chiar dacă un drum poate fi considerat
și el ca un arbore unar), adică, pentru fiecare stare curentă (atașată unui
„moment de timp”) pot exista mai multe stări (imediat) succesoare
RECAPITULARE LMT - 34 • Această presupunere este naturală dacă ne gândim, de exemplu, la
nedeterminismul generat implicit de evoluţia concurentă a unor mulțimi de procese
• Se schimbă din nou noţiunea de structură („fostă” Kripke modală, cale, Kripke
temporală...), trecându-se practic de la cuvinte infinite la arbori infiniți (desigur că și
sintaxa se schimbă, dar nu așa de vizibil)
• Începem, normal, cu sintaxa formală a noii (noilor) logici
• La alfabetul logic cunoscut, L = A U Ā U {true, false} U P U C1 U C2 ,
se adaugă şi o mulţime C3 = {E, A}, a cuantificatorilor (cuantorilor) de cale
• Vom nota L U C3 = Alf , transformarea (datorată introducerii noilor operatori fiind
(cam) de aceeaşi natură ca trecerea de la LP la LP1
• Intuitiv, aceşti cuantificatori se vor aplica formulelor LTL care vor deveni (în noul
context) aşa-numitele formule de stare, formule care vor fi, în continuare, folosite
pentru construcţia formulelor de cale (și...reciproc)
• A (sperăm să nu existe o confuzie; există și A...) se „citeşte” pentru fiecare (cale)
iar E – există (măcar o cale), de unde şi denumirea (preluată de la LP1) de
cuantori/cuantificatori
• Spre deosebire de cuantorii din LP1, aceștia nu se aplică unor variabile ci unor
formule (dar și în trecerea de la LP1 la LP2 se petrece ceva similar...), ceea ce va
face dificil de apreciat unde este „locul exact” al CTL*/CTL în comparaţie cu logicile
clasice LP/LP1 (LP2,...)
RECAPITULARE LMT - 35 Definiţie (sintaxa CTL*). Fie Alf alfabetul logic menţionat mai sus.
Mulţimea formulelor logicii temporale cu timp ramificat (CTL*, sau CTL*Alf)
este dată (bi)structural, imbricat, prin:
Formule de stare
Baza_1 (formule atomice de stare).
(i1) true, false sunt formule atomice (de stare) şi elemente ale CTL*.
(ii1) Pentru fiecare p A, fie p, fie p (exclusiv, în sensul de la LTL) sunt
formule atomice (de stare) şi elemente ale CTL*.
Pas constructiv_1 (formule noi din formule vechi).
(a1) Dacă F1, F2 CTL* sunt formule de stare, atunci (F1 F2),
(F1 F2) CTL* sunt formule de stare.
(b1) Dacă F CTL* este formulă de cale, atunci A(F), E(F) CTL* sunt
formule de stare.
(c1) Dacă F CTL* este formulă de stare, atunci (F) CTL* este formulă
de stare.
(d1) Nimic altceva nu mai este formulă de stare.
RECAPITULARE LMT - 36 Formule de cale
Baza_2 (formule atomice de cale).
(i2) Orice formulă de stare din CTL* este şi formulă
(atomică) de cale în CTL*.
Pas constructiv_2 (formule noi din formule vechi).
(a2) Dacă F CTL* este formulă de cale, atunci
(F) CTL* este formulă de cale.
(b2) Dacă F1, F2 CTL* sunt formule de cale, atunci
(F1 F2), (F1 F2) CTL* sunt formule de cale.
(c2) Dacă F1, F2 CTL* sunt formule de cale, atunci
(F1 U F2), (F1 Ũ F2) CTL* sunt formule de cale.
(d2) Dacă F CTL* este formulă de cale, atunci
(F) CTL* este formulă de cale.
(e2) Nimic altceva nu mai este formulă de cale.
RECAPITULARE LMT - 37
• De obicei se lucrează cu o parte (mai restrânsă; vezi mai jos) a lui
CTL*, notată CTL, și numită logica liniară cu timp ramificat, standard
Definiţie (sintaxa CTL). Definiţia este identică cu cea anterioară,
exceptând următoarele (și înlocuind acolo desigur, peste tot, CTL* cu
CTL):
• (a2): având textul „Dacă F CTL* este formulă de cale, atunci
(F) CTL* este formulă de cale” se înlocuieşte cu:
(a2’) Dacă F CTL este formulă de stare, atunci (F) CTL este
formulă de cale.
• (c2): având textul „Dacă F1, F2 CTL* sunt formule de cale, atunci
(F1 U F2), (F1 Ũ F2) CTL* sunt formule de cale” se înlocuieşte prin:
(c2’) Dacă F1, F2 CTL sunt formule de stare, atunci (F1 U F2),
(F1 Ũ F2) CTL sunt formule de cale.
• Versiunile BNF (voi)
RECAPITULARE LMT - 38
• Schimbându-se definiţia sintactică, se va schimba şi definiţia
lui cl(F) pentru F CTL* (şi apoi pentru
F CTL), într-un mod nu chiar evident (tot voi)
• Vom nota cu CTLS* - mulţimea formulelor de stare şi cu
CTLC* - mulţimea formulelor de cale; însă vom identifica
CTL* cu CTLS*, prin convenţie
• Procedăm similar și cu CTL
• Se poate deduce imediat incluziunea CTL CTL*, dacă
observăm că (la nivel sintactic, evident) „orice operator temporal (, U, Ũ) trebuie imediat (adică, înainte de a folosi
altul de acest tip) precedat de un cuantificator de cale”
• Exemplul cu arborele/subformule de cale/de stare pentru
formula (v-am dat foaie):
F = A((E(p) Ũ A(((p (q)) U r)))) (p, q, r A)
RECAPITULARE LMT - 39
• Definiţie (structură Kripke temporală ramificată). O
structură Kripke temporală ramificată este un 5-uplu
K = <A, W, R, w0, Π>, unde:
-A este mulţimea variabilelor propoziţionale (cel mult
numărabilă)
-W este mulţimea stărilor sau lumilor universului (nevidă; finită,
dacă nu se precizează altfel)
-R W W este o relaţie de trecere (sau, de accesibilitate),
totală, adică satisface condiţia
(w W)(w’ W)(<w, w’> R)
-w0 W este starea iniţială
-Π : W 2A este, ca și până acum, o funcţie care ataşează
fiecărei stări/lumi o mulţime de variabilele propoziţionale
(adevărate în acea stare)
RECAPITULARE LMT - 40
• Datorită faptului că relaţia R este totală, din fiecare stare
w W „porneşte” (măcar) un drum (secvenţă infinită de
stări) π = w0w1… (π(i) = wi) care satisface proprietatea
(i 0)(<wi, wi+1> R); desigur că aici am pus w = w0 (care
nu coincide neapărat cu w0!)
• Dacă identificăm, pentru un drum π, elementul π(i) cu
Π(wi), putem spune că din fiecare stare a unei structuri
Kripke, K, „începe” (măcar) o structură (cale, drum;
sequence, path, way, route, track) pentru LTL
• Vom spune că aceste „structuri pentru LTL-uri” sunt
generate de K (și pot fi gândite, în final, ca formând
împreună niște arbori pentru K)
• În acest context, legăturile cu LTL și MD sunt deja clare
RECAPITULARE LMT - 41
• Astfel, graful prin care se poate reprezenta structura K (vezi
imediat mai jos, nu e nimic nou) poate fi, tehnic vorbind,
„expandat” la un arbore cu rădăcina w0, din fiecare nod
„pornind” câte (măcar) o structură LTL, așa cum este sugerat
mai sus
• Mai exact, o structură K poate fi reprezentată printr-un graf orientat
etichetat în care nodurile sunt stările lui W, etichetele lor sunt
mulţimi de variabile propoziţionale reprezentând mulțimea de valori
a funcţiei Π, iar arcele descriu relaţia R
• De exemplu (poate și foi), în graful (bi-etichetat pe noduri) care
urmează avem reprezentată structura K dată prin A = {p, q, ...},
W = {w0, w1}, Π(w0) = {p}, Π(w1) = {q}; R este relaţia totală, adică
R = {<p, p>,<p, q>,<q, p>,<q,q>} (în cerculeţe trebuiau puse de fapt
w0 respectiv w1 iar p şi/sau q trebuie puse dedesubt, între acolade
corespunzătoare; se deduce ușor și arborele „derivat”)
RECAPITULARE LMT - 42
RECAPITULARE LMT - 43
Definiţie (semantica CTL*/CTL). Fie K = <A, W, R, w0, Π>
o structură Kripke temporală ramificată. Adevărul formulelor
CTL* în K se obţine structural, în trei faze imbricate:
(I) Adevărul formulelor CTL* într-o stare oarecare din W.
BazaI.
(iI) Pentru fiecare w W, w true şi w false.
(iiI) Pentru fiecare w W, w p dacă şi numai dacă
p Π(w), pentru fiecare p A şi w p dacă și numai dacă
p Π(w), pentru fiecare p A (sau, direct, pΠ(w)).
RECAPITULARE LMT - 44 Pas constructivI.
(aI) Pentru fiecare w W, w (F1 F2) dacă şi numai dacă
w F1 şi w F2, pentru fiecare F1, F2 CTL*.
(bI) Pentru fiecare w W, w (F1 F2) dacă şi numai dacă
w F1 sau w F2, pentru fiecare F1, F2 CTL*.
(cI) Pentru fiecare w W, avem w A(F) dacă şi numai dacă
pentru fiecare drum (structură LTL generată de K) începând
cu w, π = w0w1… (w0 = w), este adevărat că π F; pentru
fiecare F CTL*.
(dI) Pentru fiecare w W, avem w E(F) dacă şi numai dacă
există un drum (structură LTL generată de K) începând cu
w, π = w0, w1, … (w0 = w), astfel încât π F; pentru fiecare
F CTL*.
RECAPITULARE LMT - 45
(II) Adevărul formulelor CTL*/CTL într-un drum/cale
de stări din W (privit ca structură LTL generată de K).
BazaII.
(iII) Fie F orice formulă de stare din CTL*/CTL şi
π = w0w1… o secvenţă infinită de stări din W (structură LTL generată de K). Atunci avem π F
dacă şi numai dacă w0 F (știm deja că o formulă
este adevărată într-o structură LTL generată de K,
dacă şi numai dacă ea este adevărată în starea iniţială
a acelei structuri).
RECAPITULARE LMT - 46 Pas constructivII (pentru fiecare F, F1, F2 CTL*/CTL și fiecare π o
cale...).
(aII) Fie F1, F2 CTL*/CTL şi π o structură LTL generată de K. Atunci
π (F1 F2) dacă şi numai dacă π F1 şi π F2.
(bII) Fie F1, F2 CTL*/CTL şi π o structură LTL generată de K. Atunci
π (F1 F2) dacă şi numai dacă π F1 sau π F2.
(cII) Fie F CTL*/CTL şi π o structură LTL generată de K. Atunci
π (F) dacă şi numai dacă π1 F.
(dII) Fie F1, F2 CTL*/CTL şi π o structură LTL generată de K. Atunci
π (F1 U F2) dacă şi numai dacă există i0 astfel încât πi F2 şi
pentru fiecare 0 j i avem πj F1.
(eII) Fie F1, F2 CTL*/CTL şi π o structură LTL generată de K. Atunci
π (F1 Ũ F2) dacă şi numai dacă pentru fiecare i0 cu πi F2, există
0 j i astfel încât πj F1.
RECAPITULARE LMT - 47
(III) Adevărul formulelor CTL*/CTL în K. O formulă F CTL*/CTL
este adevărată într-o structură Kripke, K, dacă si numai dacă ea este
adevărată în orice structură LTL, π, generată de K, care porneşte cu
starea iniţială w0 (adică K F dacă şi numai dacă π F, pentru
fiecare π având π(0) = w0 = w0).
• Enunțăm și următorul rezultat, (tot) fără demonstrație:
Teoremă (putere de exprimare comparativă). Sunt
adevărate afirmaţiile:
(i) CTL CTL*.
(ii) LTL CTL*.
(iii) LTL CTL.
(iv) CTL LTL.
(v) CTL ∩ LTL ≠ Ø.
RECAPITULARE LMT - 48 • În ceea ce privește satisfiabilitatea formulelor CTL, la fel ca
în cazul LTL (înlocuind drum cu arbore și Kripke cu...alt
Kripke), ideea (vezi și MC) este să identificăm o astfel de
formulă cu mulţimea structurilor Kripke care sunt model
pentru ea, generând de fapt automatul (pe arbori) care
acceptă ca limbaj exact mulţimea acestor structuri
• Metodologia generală este similară, adică vom începe prin a
eticheta o structură Kripke candidat cu subformule (elemente
din cl) ale formulei date, ţinând cont de anumite reguli
semantice; formulele sunt și într-o anumită formă normală
• Concluzionăm că logicile temporale pot fi „traduse” în
automate, în sensul deja sugerat: mulţimea structurilor care
sunt model pentru o formulă coincide cu limbajul acceptat de
un anumit automat, construit (sintactic și algoritmic) din
formula dată
RECAPITULARE LMT - 49
• În acest mod, problema SAT pentru CTL (ca şi pentru LTL) se
reduce la o problemă privind apartenenţa unui obiect la un limbaj
dat (membership)
• Dimensiunea automatului ataşat pentru o formulă dată (oricum ar fi
ea definită formal) este însă exponenţială în dimensiunea formulei
(dacă ne referim la automatele nedeterministe ataşate unei
formule LTL) şi respectiv liniară în aceeaşi dimensiune (în ceea ce
priveşte automatele alternate construite pentru formulele CTL)
• Este adevărat rezultatul:
Teoremă (decidabilitatea SAT pentru CTL). Problema
satisfiabilităţii (validităţii, nesatisfiabilităţii) pentru clasa CTL este
decidabilă.
• Din păcate, nu același lucru se poate spune și despre CTL*...
RECAPITULARE LMT - 50 Exemplu global (voi, cel mai ușor folosindu-vă de arbori)
• Sunt formule CTL* (de stare):
A(p (E(□p)), A(□(◊p)), E(□(◊p))
• Sunt formule CTL (de stare): A(□p), E(□p), A(□E(p)),
E(□E(◊p))
• Ca o simplă observație (nu prea utilă...), dacă adoptăm
priorităţile standard corespunzătoare pentru operatori,
formulele precedente se vor putea scrie (de exemplu)
şi ca: A(p E□p), A(□◊p), E(□◊p), respectiv A□p, E□p,
A□Ep, E□E◊p
• În cele de mai sus, p A iar F G este (desigur) o
prescurtare pentru F G
RECAPITULARE LMT - 51 • Privind în ansamblu, lucrurile se complică şi mai mult
dacă ne propunem să tratăm logici mixte (în ceea ce
priveşte măcar noțiunea de adevăr adoptată)
• Toate aceste complicaţii se reflectă până la urmă în
modalitatea de a testa satisfiabilitatea formulelor
• În bibliografia sugerată sunt furnizate și exemple
practice/concrete, pentru diverse astfel de tipuri de
logici, cu referiri inclusiv la anumite sisteme deductive
(corecte şi complete)
• Există, în plus, numeroase alte tipuri de logici
neclasice (multivaluate, probabiliste, cuantice, etc.;
și...combinații ale acestora și combinații de
combinații...)
RECAPITULARE LMT - 52
• Până acum, au fost date/rezolvate și exemple (sper, edificatoare)
pe slide-uri, deși nu peste tot complete (dar mereu unde era
cazul), privind (ordinea nu este chiar exactă):
-K F; structurile Kripke modale ca modele pentru formulele MD
-manipularea formulelor LTL (ca limbaj introdus intuitiv)
-sintaxa (BNF pentru) LTL
-legăturile formale dintre MD și LTL; echivalențe; extinderea negației;
reprezentările grafice ale operatorilor temporali; folosirea inducției
structurale în eventualele demonstrații, etc.
-manipularea formulelor LTL, folosind definițiile formale
-sintaxa (BNF pentru) CTL*/CTL; extinderea închiderii/mulțimii de
subformule (cl(F)), de la LTL la CTL*/CTL; arborele sintactic
pentru formulele/subformulele de cale și stare, etc.
-reprezentările grafice ale diverselor căi/structuri Kripke
RECAPITULARE LMT - 53 • Motivațiile pentru introducerea logicilor temporale și
modale au fost legate în primul rând de ușurința de a
exprima „corect”, prin formule logice (text formal + adevăr)
o anumită parte a realității (= SISTEM)
• Să detaliem...
• Chiar începând cu afirmațiile aristotelice simple, este clar
că ceea ce putem exprima relativ simplu în LP1, nu se
poate face la fel în LP
• Să continuăm, considerând afirmația cumva clasică Îmi
este foame (*)
• Deși înțelesul ei „în sine” (lingvistic) nu se modifică
niciodată, adevărul poate varia (și) în timp
• Câteodată (*) este adevărată, altădată este falsă (dar nu
simultan)
RECAPITULARE LMT - 54 • Astfel, privind timpul ca o unică axă (dimensiune), „mergând” din
trecut spre viitor (se poate admite și existența unui moment zero),
în LTL putem jongla cu valorile de adevăr ale formulelor în
momente diferite (anumite afirmații având totuși o semantică
stabilă); cumva „opuse” sunt așa-numitele Computational Verb
Logics – CVL (nu insistăm)
• În CTL*/CTL, timpul este privit ca o mulțime „conectată” de
asemenea axe trecut/moment – viitor, atașate unor entități diverse
(de exemplu, agenți)
• Într-o asemenea logică, putem găsi valoarea de adevăr („pe axe”)
ale unor afirmații de tipul Există posibilitatea să rămân flămând
tot timpul (**) sau Există posibilitatea ca în cele din urmă să
nu-mi mai fie foame (***)
• Dacă nu știu dacă sau când Voi fi (mă voi) aproviziona(t) (****),
s-ar putea ca atât (**) cât și (***) să fie „cândva” adevărate ...
RECAPITULARE LMT - 55
• Este evident de pe acum că LMT sunt „mai bune” decât
LP/LP1, dacă ne gândim la exprimarea fidelă a
„proprietăților evolutive” ale comportării unor SISTEME
(chiar mai generale decât cele care ne interesează)
• Chiar proprietățile comportărilor unor asemenea
sisteme (reale, distribuite, concurente...) pot fi foarte
generale
• Putem vorbi astfel despre proprietăți de siguranță
(safety) sau de vivacitate/persistență/permanență
(liveness), care se exprimă „bine” în LMT („starea”,
mai jos, desemnând un moment temporal, deși...)
RECAPITULARE LMT - 56 • Safety (H = □(G)): Niciodată nu se va întâmpla ceva
rău/nedorit; sau chiar orice altă aserțiune prin care se afirmă de
fapt că „o anumită stare nu va fi atinsă niciodată”
• Liveness (H = □(◊G) sau H = □(F ◊G)): Ceva bun/folositor/de
dorit, va continua să se întâmple mereu; mai general, orice
aserțiune prin care se afirmă că „o anumită stare va fi
întotdeauna atinsă, indiferent de starea din care plecăm”
(eventual, în anumite condiții suplimentare, date de F) :
• Extrapolând mai mult chiar, am putea spune că proprietățile
legate de safety sunt acelea pentru care: fiecare contraexemplu
(comportare/drum infinit(ă)) are un prefix (finit) care satisface
condiția că, indiferent de cum este extins la un drum infinit,
rămâne un contraexemplu
• În același mod, pentru o proprietate privind liveness: fiecare
prefix finit al unui posibil contraexemplu, poate fi extins la un
drum infinit care este model pentru formula în cauză
RECAPITULARE LMT - 57
• Formalizând în diverse LMT:
-Formula F este o formulă de siguranță ddacă
fiecare drum π = w0w1... care nu este model
pentru F (π F) are un prefix finit π’ = w0w1...wk
astfel încât, pentru toate „extensiile” infinite ale
lui π’, π’’ = w0w1...wkw’k+1…, avem π’’ F
-Formula F este o formulă de persistență ddacă
fiecare secvență finită de stări π’ = w0w1...wk,
poate fi extinsă la un drum infinit π’’ (ca mai
sus), astfel încât π’’ F
RECAPITULARE LMT - 58
• Asa-numita Teoremă SL (Safety and Liveness Theorem)
stipulează chiar că orice formulă din LTL se poate
exprima ca o conjuncție dintre o proprietate de
siguranță și una de persistență
• Putem enumera astfel alte proprietăți, la fel de interesante:
-Întotdeauna adevărul lui F este imediat urmat de adevărul
lui G: H = □(F G) (unde F, G, ...)
-În cele din urmă, F va fi adevărată mereu: H = ◊(□F) (F, ...)
-Proprietățile generale numite de echitate (fairness): să
considerăm, de exemplu, situația în care o mulțime de
procese secvențiale „rulează” concurent, dar măcar unul
dintre acestea nu este niciodată „selectat”
RECAPITULARE LMT - 59 • Evitând considerațiile filozofice, putem extinde
sintactic LMT prin introducerea operatorilor de
trecut ; aceștia nu vor crește „puterea de exprimare”
a logicii respective (de obicei), dar, vor simplifica
(uneori) explicitarea anumitor proprietăți (putem face
referiri directe la un eveniment care a avut deja loc)
• În acest scop, se vor produce niște modificări explicite
și în semantică (neesențiale din punctul de vedere al
teoriei generale), cum ar fi înlocuirea axei temporale
N cu axa Z, a numerelor întregi și, în conformitate,
schimbarea noțiunii de drum/cale (sau a celei de stare
inițială), etc.
RECAPITULARE LMT - 60 • Operatorii la care vom (putea) face referire sunt (primii trei sunt
unari iar ultimul este binar):
(P sau X) – dark_circle/Previous/yesterday/neXt_in_the_past
(la_momentul_de_timp_imediat_anterior)
■ (G) – dark_box/has_always_been/Globally_in_the_past
(întotdeauna_în_trecut)
♦ (F) – dark_diamond/once_in_the_past/
sometimes/Finally_in_the_past)
(cândva_în_trecut)
S – Since
(de_la_un_anumit_moment_dat_în_trecut)
• Ne vom limita a-i aminti pe aceștia, ținând cont și de posibilitatea
de exprimare a unora în funcție de alții (nu insistăm)
RECAPITULARE LMT - 61 • Există numeroase (alte) variante de LMT (legate direct de
timp; de cerințele programării concurente/distribuite; de
agenți și mediu internautic, în care modalitățile de adevăr
sunt altfel interpretate decât temporal, etc.)
• Toate acestea se pot clasifica/compara după diverse
criterii generale, cum ar fi:
-Logici propoziționale vs. Logici de ordinul I
-Logici globale vs. Logici compoziționale
-Logici cu timp liniar vs. Logici cu timp ramificat
-Logici punctuale vs. Logici bazate pe intervale (de timp)
-Logici discrete vs. Logici continue (în timp)
-Logici care tratează trecutul vs. Logici care tratează viitorul
-Etc.
RECAPITULARE LMT - 62 • Ca exemple (fără a intra în detalii), amintim: logica
temporală a intervalelor (ITL/ Interval Temporal Logic),
μ-calculul, care, de fapt, include logica
Hennessy-Milner (HML), precum și logica CTL* (iar
CTL* include CTL, LTL, MITL = Metric Interval
Temporal Logic) sau STL (Signal Temporal Logic);
apoi, LTL include, într-un anumit sens, logica
temporală a acțiunilor (TLA/Temporal Logic of
Actions)
• „Apropiate” de cele amintite (mai exact, de logicile
temporale/cronologice/orare = tense logics), sunt și
așa-numitele logici modale bazate pe topologii/metrici,
sau locuri/poziții spațiale
RECAPITULARE LMT - 63 • Alte câteva relații interesante legate de semantica
(„comună”) a logicilor „noastre” LMT:
-Deși știm că atât CTL cât și LTL sunt submulțimi proprii
ale CTL*, ele nu sunt „echivalente”, în sensul că nu
există nicio formulă în CTL care să fie (semantic)
echivalentă cu (de pildă) formula (totuși, LTL) H =
◊(□p) (care este formulă de cale)
-Nu există nicio formulă în LTL care să fie (semantic) echivalentă cu formula CTL, F = A(□(p (E(q)
E((q)))))
-Există însă o submulțime proprie a lui CTL*, care este
o submulțime proprie atât a lui CTL, cât și a lui LTL
(toate formulele din LTL fiind „de stare”)
RECAPITULARE LMT - 64
• Se poate arăta că LTL este echivalentă (în sensul anterior) cu
așa-numita logică monadică de ordinul întâi a relației de ordine (FOMLO, sau FO[]), care este o logică „clasică” (First Order
Monadic Logic of Order)
• Dacă ne punem întrebarea (de exemplu) „De ce nu am exprimat și
pe U, binar, în funcție de (unii) operatorii temporali unari (gen
box)”, răspunsul constă în faptul că nu am folosit operatorii
adecvați
• Unul ar putea fi operatorul de succesiune/trecere
(succesor/chop), notat „|”, iar altul cel de cel mai mare punct
fix (GFP/Greatest Fixed Point), notat „vX.F” (F fiind o formulă
temporală „normală”, care conține numele generic X ca
subformulă); aici se face apel la calculul duratelor (DC/Duration
Calculus), care este o variantă a ITL, precum și la logica de punct
fix cu succesor (FLC/Fixpoint Logic with Chop), care extinde
μ-calculul modal (sau, echivalent) la logica lui Stephan Mertz
RECAPITULARE LMT - 65
• Acesta din urmă argumentează că, nu numai
că este adevărată Teorema SL, ci chiar că
sunt suficiente doar proprietățile de siguranță
pentru a exprima proprietățile reale
într-adevăr folositoare; logica sa este o
variantă a CTL*/CTL, care folosește operatorii
| și vX.F, negația doar pentru formulele
atomice, dar nu și „”
• Însă, în această logică, nu se poate exprima
(deloc) operatorul „◊”
RECAPITULARE LMT - 66 • Iată câteva echivalențe care implică și cuantificatorii
de cale:
(a)A(◊F) E(□(F))
(b)A(□F) E(◊(F))
(c)A(F) E((F))
(d)A(◊F) A(true U F)
(e)E(◊F) E(true U F)
(f)A(□F) E(true U (F))
(g)E(□F) A(true U (F))
• Ne vom opri aici cu recapitularea/punerea la punct a
unui limbaj coerent privind folosirea logicilor în
legătură cu reprezentarea proprietăților SISTEM-elor
RECAPITULARE LMT - 67 • N-am ajuns încă la ceea ce trebuia, adică la
logicile de încredere (chiar dacă BAN putea fi considerată ea însăși ca o logică „deja făcută”; și deci, „de recapitulat”)
• Se „vede” totuși imediat că nu putem exprima fidel toate proprietățile „dorite” ale
SISTEM-elor doar în LTM-urile menționate
• Vom face mai întâi o „paranteză” pentru a indica anumite „linii directoare” în ceea ce privește MC și ATP, pentru a puncta apoi mai bine cum trebuie construite logicile „potrivite”
RECAPITULARE LMT - 68 • Să punctăm totuși faptul că Logicile epistemice (EL - Epistemic Logics)
formalizează noţiunile de cunoaștere (knoledge; episteme în greacă = a
ști/a cunoaște) și încredere (belief); vom mai reveni asupra „filozofiei din
spate”
• Astfel, logicile de încredere (sau Belief Logics - BL) sunt tratate de
obicei drept cazuri particulare de logici epistemice (filiera, ca și legătura
dintre MD și LTL, nu este chiar „străvezie”); câteodată sunt tratate
separat (și referite) ca Doxastic Logics, DL (doxa = presupunere, în
greacă); sau, Deontic Logics (exprimă permisiunea și obligativitatea;
deon = ceea ce este încadrat/potrivit)
• Relevanţa logicilor epistemice pentru AI (Artificial Intelligence) în
ansamblu, a fost remarcată de câţiva cercetători interesaţi în formalizarea
conceptului de cunoştinţe/cunoaștere ale agenţilor în sistemele distribuite;
aceasta, nu neapărat pornind cu scopul de a specifica sau verifica
protocoalele de securitate
• Ar trebui să discutăm în detaliu despre modalităţile de reprezentare a
cunoştinţelor şi metodele speciale de formalizare a raţionamentelor;
cu legături privind învățarea automată; din păcate...
MODELE – 1 (MC) • Deoarece logicile temporale (și în special cele de tip CTL) sunt utilizate
(și) pentru crearea de „instrumente” de verificare formală (de tip ATP
sau/și MC), vom trece în revistă, pe scurt, acest subiect
• Metodele de verificare a corectitudinii protocoalelor de securitate (mai
general, de verificare a funcționării corecte a sistemelor concurente
reale/componentelor hard și soft, oricât de complexe), pot fi clasificate
după următoarele criterii principale:
(a) Bazate pe sintaxă/demonstraţie/sistem deductiv sau pe
semantică/model/teorie logică
-Într-o abordare bazată pe sintaxă, descriem sistemul/componenta printr-o
mulţime de formule Г (într-o logică fixată) şi proprietatea tot printr-o
formulă F (de obicei, în aceeaşi logică, dar nu este neapărat
semnificativ acest aspect)
-Verificarea constă în a demonstra că Г F (F este demonstrabilă pornind
cu mulțimea de axiome Г, sau, folosind mulțimea de axiome
suplimentare Г; asta, într-un sistem deductiv corespunzător, și utilizând
un ATP performant (alternativ, utilizând o implicare deosebită a
programatorului)
MODELE – 2 (MC)
-Într-o abordare bazată pe semantică, sistemul/componenta este
reprezentat/ă printr-un model (formal; nu insistăm, poate fi și aici o
mulțime de formule) M, proprietatea se exprimă (tot) printr-o formulă F
(dintr-o logică convenabil aleasă), iar metoda de verificare (cu ajutorul unui așa-numit model-checker, MC) constă din a demonstra că M F
-În ambele situații (cum deja am remarcat pentru abordarea sintactică), ideal
ar fi ca totul să fie automatizat, prin urmare ca demonstratorul automat
să aibă doar o „mică parte de amestec” (sau, chiar deloc) a utilizatorului,
respectiv ca verificatorul să selecteze aprioric măcar un model posibil și procedura de verificare pentru M F să fie și ea automatizată
-Existența unei teoreme de completitudine şi corectitudine în acest context, ar avea drept consecință afirmația: Г F (cu ajutorul
demonstratorului) dacă și numai dacă M F (cu ajutorul verificatorului de
modele)
-Vom reveni (puțin...) asupra abordării semantice (adică asupra
construirii/sarcinilor unui MC), la sfârșitul acestui curs
MODELE – 3 (MC) (b) Gradul de „algoritmizare”: după cum am mai amintit, este evident că
putem
trece dintr-o extremă în alta, adică de la o algoritmică „totală” (în situaţiile
particulare care permit acest lucru) la ceva complet „manual”; la „mijloc” ar
fi tehnicile de tip Computer Aassisted Interfaces (CAI)
(c) Se verifică o singură proprietate și/sau întregul comportament (sau doar
o parte), totul depinzând de posibilitatea de a implementa metode eficiente
(d) Domeniul principal de aplicabilitate: nu este acelaşi lucru dacă ne gândim
la hardware sau la software, la sisteme secvenţiale sau concurente, la
sisteme reactive (care „funcţionează” permanent) sau la unele care trebuie
să îşi oprească funcţionarea, la protocoale de securitate sau de
comunicare, etc.
(e) Verificarea este destinată a fi aplicată pentru un sistem care
există/funcţionează deja sau chiar înaintea proiectării acestuia; singurul
lucru pe care-l putem sublinia în plus acum, este faptul că verificarea
(formală) trebuie folosită cât mai devreme
MODELE – 4 (MC) • Revenind la metodele bazate pe semantică,
putem spune că orice tehnică formală de verificare bazată pe model-checking este alcătuită din trei părţi distincte:
(1)Un cadru general pentru specificarea sistemelor reale cuprinzând un limbaj de descriere cât mai evoluat (sisteme concurente formale – FCS = sintaxa; sisteme tranziţionale - TS = semantica (alte formalisme: procese secvenţiale cooperante sau comunicante – CSP, algebre de proces,
μ-calcul, reţele Petri, reţele workflow, rewriting systems, etc.)
MODELE – 5 (MC)
(2)Un limbaj pentru specificarea proprietăţilor
sistemelor reale (logica clasică, logica
modală, logica temporală, logica liniară a lui
Jean-Yves Girard, care este o logică
intensională, etc.); nu ar fi lipsit de interes ca
cele două limbaje să coincidă (vezi
programarea logică)
(3)O metodă/(semi)algoritm/metodologie
tratabilă prin care să se poate clar stabili
dacă o anumită descriere a unui sistem
satisface o anumită proprietate
MODELE – 6 (MC) • Ne-am concentrat, cât de cât, asupra logicilor
neclasice (modale, temporale...), și, chiar mai
puțin, asupra unor formalisme ajutătoare, cum
ar fi FCS, TS , din motive (aproape...)
transparente
• O procedură/algoritm de tip model checking
(un model-checker) va răspunde „DA” dacă M
F şi „NU” altfel (repetăm, M denotă un model
„generat” de sistemul real formalizat, iar F este
o proprietate a sistemului, exprimată printr-o
formulă dintr-o logică corespunzătoare)
MODELE – 7 (MC)
• Majoritatea model-checker-elor
comerciale produc şi un istoric al
comportamentelor unui sistem, deoarece
în caz de insucces se poate deduce ceea
ce trebuie „reparat” (vezi TLC pentru
TLA+)
• Formulele pot „captura” diferite aspecte
„naturale” (proprietăți generale...) ale
comportării sistemelor (după cum am mai
amintit; vom reveni)
MODELE – 8 (MC) • Concluzii despre MC (ideal, ceea ce descriem se va putea folosi
și pentru sistemele de securitate, conform punctelor (1)-(3),
amintite anterior):
Metoda (VERIF)
• Reprezentăm sistemul real (în final, protocolul?) ca un FCS, F
• Reprezentăm proprietatea (dorită a fi verificată, a) sistemului printr-o formulă
modală/temporală/epistemică/BAN/...), notată G
• Construim sistemul tranziţional (cum?) ataşat lui F, TS ; limbajul acceptat de
acesta constituie totalitatea modelelor posibile pentru G, L(TS, F), unde
condiţia de acceptare F este aleasă corespunzător
• Construim automatul (Büchi) A (cum?), ataşat lui G (care, de dorit, ne
furnizează modelele posibile ale lui G) şi fie L(A, s0, F) limbajul acceptat de
automat (mulţimea de stări finale F este, la rândul ei, aleasă corespunzător)
• Demonstrăm că L(TS, F) = L(A, s0, F); chiar variante mai „slabe” (acest lucru
înseamnă SUCCES)
• Va trebui desigur să formalizăm (la locul potrivit) tot ceea ce dorim, trebuie,
este legat de SISTEM-e și să depășim și problema, inexistenței reale a unei
semantici formale convenabile pentru logicile de încredere
MODELE – 9 (MC) SISTEM CERINȚE
formalizare formalizare
MODEL FORMULĂ
MODEL-CHECKER
(SUCCES ?)
nu da
CONTRAEXEMPLU GATA
(reluare)
• În cele de mai sus, reluarea se poate face
chiar de la SISTEM și/sau CERINȚE
MODELE – 10 (MC) • Cât despre ATP-uri, ele pot fi folosite pe parcursul implementării
schemei anterioare (ne le explicităm), sau pot chiar înlocui întrega
procedură de după „MODEL + FORMULĂ” (startul aici fiind de fapt
o formulă „combinată”, gen BAN)
• Pentru metoda generală anterioară există și variante, care
apelează (și) la formula G, apoi la testarea decidabilității
problemelor de membership și/sau emptiness pentru limbaje (clase
de limbaje, etc.; de exemplu, intersecții ...)
• Calculul cu secvențe (SD1) este important atât „prin sine însuși”,
fiind vorba despre o variantă de sistem deductiv, de tip
Hilbert/Gentzen, cât și datorită legăturii strânse pe care o are (și)
cu deducția naturală (cu, mai exact, Gentzen Hauptsatz), deci și cu
MC
• Calculul cu secvențe folosește deducții (raționamente) cu un
anumit tip de metaformule, care sunt, pe scurt, liste/secvențe de
formule „obișnuite” (vezi din nou BAN)
CONCEPTE ȘI SISTEMe – 1 • Am terminat (pe moment) cu recapitularea „globală”
• Începem cu trecerea în revistă a unor concepte legate
de INTERNET, comunicare, agenți, securitate, pentru
a putea „construi” logica BAN (ca și „conținut”, va fi
doar „recapitulată”) și anumite extensii ale acesteia
• Simson Garfinkel (computer scientist):
INTERNET-ul nu este nesigur/șubred/plin de hazard
(insecure). Doar poate fi nesigur/lipsit de securitate
(unsecure). Insecuritatea reprezintă o stare mentală.
Utilizatorii de INTERNET pot fi insecure, și poate pe
bună dreptate...
CONCEPTE ȘI SISTEMe – 2
• Computer (sau Information) Security (CS) este o
ramură a IT (Information Technology) amintită în special
în legătură cu sistemele multiagent concurente şi
distribuite (în/şi reţele/mediu INTERNET)
• Obiectivul principal în cadrul domeniului este de a
proteja împotriva furtului, coruperii, sau chiar a
dezastrelor (mai mult sau mai puţin naturale…),
informaţiile care circulă prin „interiorul” sistemelor și între
acestea (simultan cu menținerea proprietăţilor generale
pozitive ale acestora)
• Informaţiile şi proprietăţile trebuie să rămână însă
accesibile (și „productive”) celor cărora le sunt adresate
CONCEPTE ȘI SISTEMe – 3
• Prin urmare, termenul de Computer (System) Security sugerează
ideea că există proceduri prin care informaţiile şi serviciile deosebit
de valoroase pot fi protejate aprioric de desconspirare (produsă în
urma anumitor activităţi neautorizate, de implicarea unor
„persoane”/entități nedemne de încredere sau chiar de apariţia
unor evenimente neprevăzute)
• Strategiile şi metodologiile introduse folosesc drept paradigmă
sintagma: prevenim/interzicem comportările nedorite, și nu
aceea că permitem doar comportările acceptabile
• Aria de discurs este foarte largă, dar aproape toate instrumentele
construite și folosite cu succes pentru atingerea scopului menționat
sunt bazate pe LOGICĂ
• Ceea ce vom putea face astfel, reprezintă o foarte mică parte din
necesar, dar totul este extrem de util
CONCEPTE ȘI SISTEMe – 4 • Se începe cu criptarea/encryption, care reprezintă
transformarea unei informaţii sursă/brută (plaintext) într-o informaţie codată (ciphertext) care ar fi „de neînțeles” pentru orice entitate care nu posedă anumite cunoştinţe suplimentare (în particular, nu are acces la așa-numitele chei/keys de criptare/decriptare)
• Transformarea textelor se face cu ajutorul unor algoritmi (cifruri/ciphers, sau, a criptosistemelor/criptosystems)
• În majoritatea cazurilor, aceștia sunt suficient de complecși fiind concepuți chiar „în trepte” (o treaptă/etapă putând diferi mult de alta, chiar la nivel conceptual)
• Algoritmii de criptare sunt dublaţi de algoritmi („duali”) de decriptare
• Detaliile necesare privind criptosistemele cu chei divizate/împărțite/shared sau/şi cele cu chei publice/public, vă sunt deja familiare
CONCEPTE ȘI SISTEMe – 5
• Și alte noţiuni necesare vă sunt la fel de familiare:
atac, adversar, atacator, etc.
• Vă este desigur cunoscută și noţiunea generală de
protocol; în particular (de exemplu) cea de
protocol de comunicare (TCPIP, etc.)
• Un cryptographic/security/encryption protocol
este un protocol (concret/implementabil sau chiar
abstract) care are înglobată suplimentar şi o funcţie
care (încearcă să) asigure securitatea (suplimentar)
prin aplicarea unor metode criptografice
CONCEPTE ȘI SISTEMe – 6 • În context, acceptăm că un protocol de securitate
reprezintă o strategie de comunicare între două sau mai
multe părți, folosită pentru a obține un anumit grad de
confidențialitate (legată de consecințele efectuării unei
tranzacții, adică a unei primitive de comunicare)
• Din motive practice, legate de comunicarea on-line, în timp
real, vom presupune implicit că textele prezente în
mesajele cuprinse în „tranzacții” sunt mereu criptate, adică
utilizăm protocoale criptografice
• Acestea sunt definite ca fiind algoritmi distribuiți
identificați prin secvențe de pași care specifică cu
exactitate acțiunile pe care trebuie să le efectueze două
sau mai multe entități, pentru a exprima anumite
obiective/proprietăți de securitate (a comunicării)
CONCEPTE ȘI SISTEMe – 7 • Vom considera că un protocol de securitate
încorporează cel puţin unul dintre următoarele aspecte (în plus față de protocoalele generale):
-Stabilirea cheilor sau „punerea lor de acord”
-Identificarea clară a „entităţilor” implicate în comunicare
-Criptarea simetrică şi autentificarea mesajelor prin
care se realizează comunicarea (de date/informații)
-Securizarea transmisiei datelor la nivelul cel
mai de jos (șiruri de biți)
• Pentru aceasta, se utilizează metode variate, compuse/în trepte, etc.
• De exemplu, TLS (Transport Layer Security) este un protocol criptografic folosit pentru a securiza legăturile HTTP (pe web)
CONCEPTE ȘI SISTEMe – 8
• Un astfel de protocol reprezintă de fapt un format/șablon/template, prin care se transmit date/informații între două (sau, mai general, între entitățile unui grup de) dispozitive/devices
• „Conținutul” (descrierea) protocolului va stabili cu exactitate și următoarele lucruri:
-ce modalitate de depistare/tratare a erorilor se folosește
-metoda de compresie a datelor (dacă se folosește vreuna)
-modalitatea prin care emițătorul indică faptul că a terminat transmisia mesajului
-modalitatea prin care receptorul indică faptul că a recepționat mesajul
• Alegerea utilizării unui protocol (de către un programator specializat), depinde nu doar de situația concretă și/sau de așteptări, ci și de alte avataje/dezavantaje (generale)
• Astfel, unele protocoale sunt mai simple (în sensul...), altele mai sigure (...), altele mai rapide (...), etc.
CONCEPTE ȘI SISTEMe – 9
• Din punctul de vedere al unui utilizator,
singurul aspect interesant (care merită
menționat) legat de folosirea în practică a
protocoalelor, este cerința ca
dispozitivul/computerul utilizat de el să
suporte protocolul ales pentru comunicare
• Să avem mereu în vedere și faptul că orice
protocol (abstract) poate fi implementat atât
în hard cât și prin soft, la diverse nivele de
profunzime, într-una sau mai multe etape și
trepte
CONCEPTE ȘI SISTEMe – 10 • Repetăm: toate protocoalele de securitate manipulate
sunt „programate” a funcţiona în medii interactive,
concrete sau abstracte (INTERNET, reţele, sisteme
multiagent distribuite, etc.); ne vom putea referi la ele
şi ca interactive protocols
• Mai jos enumerăm câteva dintre protocoalele (clasice,
universal folosite; sau, mai „de nișă”) pe care este
posibil să le „atingem” (nu neapărat în ordinea
sugerată)
• Anumite protocoale sunt dedicate satisfacerii doar a
unor (clase de) proprietăți specifice; altele sunt doar
didactice, altele se pot aplica pentru testarea mai
multor proprietăți diferite...
CONCEPTE ȘI SISTEMe – 11 -Kerberos (autentificare)
-OR (Onion Routing) și H(erbivore) (anonimitate)
-FFS (Feige, Fiat, Shamir), C(Carnivore) și P(Passwords)
(identificabilitate/autorizare; primul este și pentru intimitate)
-PGP (Pretty Good Privacy) (intimitate)
-HF (Hash Functions) (integritate)
-MR (Markowitch, Roggeman) și DS (Digital Signatures) (recunoaștere)
-NS(L) (Needham-Schroeder(-Löwe)) (cu chei publice sau chei divizate)
-WMF (Wide-Mouth(ed)-Frog) (didactic)
-OR (Otway, Rees) (scuze de ambiguitate; aici, doar scop didactic)
-Yahalom (doar didactic)
-NS (Neuman, Stubblebine) (didactic)
-(S)TWA (Shorted Two-Way Authentication) (autentificare)
-DF (Diffie, Hellman) (didactic)
-STS (Station-To-Station) (didactic)
-etc. (conform alegerilor voastre din referate)
CONCEPTE ȘI SISTEMe – 12
• Să precizăm câțiva termeni: autentificare = „Cine ești ?”;
autorizare = „Tu ești cel care trebuie să facă asta ?”; Denial
(refuz) Of Service (DOS); protejarea integrității = controlul
accesului la date „secrete”
• Să reamintim pe scurt și ce pot face intrușii/intruders, adică
adversarii:
-compromite routere, legături, algoritmi de routare, Domain Name
Systems (DNS), etc. (prin eavesdropping - „tras cu urechea”)
-trimite mesaje arbitrare (care să conțină inclusiv „IP header-e”
-răspunde unor mesaje anterior înregistrate
-modifica anumite mesaje „aflate în trafic”
-scrie coduri „malițioase” și „păcăli” anumite entități să le execute
• Vom intra în detalii acolo unde va fi necesar
• Repetăm: nu vorbim despre detalii de implementare
CONCEPTE ȘI SISTEMe – 13
• În ceea ce privește sistemele multiagent (MAS), ele pot fi gândite
conceptual ca reprezentând o strategie rezonabilă pentru
modelarea sistemelor (distribuite, reale) foarte complexe
• Deoarece proprietățile importante ale unui asemenea sistem
(privit ca tot) sunt mult prea complicate pentru a fi studiate în
mod direct (formal sau nu), putem (aprioric) împărți sistemul în
subsisteme care nu se întrepătrund, ci doar inter-reacționează
unul cu altul
• Fiecare asemenea „bucată” va fi referită ca reprezentând un
agent (inteligent d.p.d.v. cognitiv)
• Fiecare agent va fi (de dorit) mai simplu și deci mai ușor de
studiat
• Totuși, o asemenea noțiune este destul de sofisticată (chiar la
nivel intuitiv) și nu vom insista pe moment
CONCEPTE ȘI SISTEMe – 14
• Până acum, am amintit cum putem privi contextul, măcar la
nivel intuitiv: mediul (INTERNET, rețele/networks), criptarea,
protocoalele de comunicare/securitate, agenții, etc.
• Să spunem câteva lucruri suplimentare, la același nivel, despre
instrumentele alese pentru verificarea formală apriorică a
corectitudinii funcționării protocoalelor
• Acestea – după cum am mai precizat – se bazează pe (diverse
tipuri de) logici (în general, neclasice: modale, temporale, apoi
epistemice, de încredere, etc.)
• Logicile pot fi integrate, la rândul lor, în anumite
meta-modele formale (sau chiar tool-uri specifice,
implementate), împreună cu (parte din...) contextul sau alte
„instrumente”, mai mult sau mai puțin sofisticate, având sau nu
implementări comerciale
CONCEPTE ȘI SISTEMe – 15
• Modelul Dolev-Yao (MDY) este unul dintre aceste meta-modele folosite
pentru a demonstra (folosind logica) corectitudinea (proprietăţilor)
protocoalelor de securitate (interactive) integrate în contextul amintit
• În acest cadru, există încrederea (totală) că agenţii îşi pot controla
mediul; de exemplu, că ei pot controla distribuţia cheilor comune,
împărţite/divizate (shared)
• Pe scurt, în MDY, reţeaua/mediul INTERNET + „altele”, se reprezentă
direct, printr-o mulţime de entități, maşini, dispozitive (mai mult sau mai
puțin abstracte), care pot schimba informații/date, prin mesaje (mesajele
fiind constituite din texte brute, care pot fi însă definite/construite și cumva
formalizat)
• Se presupune că un intrus poate auzi/vedea, intercepta şi sintetiza orice
asemenea mesaj
• Se consideră că intrusul este limitat doar de restricţiile legate de metodele
de criptografie utilizate (nu și de alte tipuri de coerciție; altfel spus,
presupunem că atacatorul conduce transmisia și comunicarea se face
„pe sesiuni” distincte în timp)
CONCEPTE ȘI SISTEMe – 16 • Presupunem și că (deși nu vom folosi nimic explicit):
-Primitivele criptografice sunt modelate prin operatori (abstracţi)
-Dacă ne referim la criptarea (simetrică !) pentru un participant
X, ea se va reprezenta prin cuplul <EX, DX> (se evidențiază atât
funcţia de criptare, cât și cea de decriptare)
-Este îndeplinită proprietatea: EXDX = DXEX = 1X (compunerea
lor reprezintă identitatea)
-Dat un mesaj brut M, varianta sa criptată (EX(M)) nu poate
releva nimic despre M
-Deşi nu prea în concordanţă cu lumea reală, se mai presupune
și că adversarul nu poate „ghici” (sub nicio formă) mesajul
criptat (nici măcar la nivel de reprezentare 0-1) şi că nu poate
„ghici” nici cheile
CONCEPTE ȘI SISTEMe – 17
• Apoi, logicile de încredere sunt proiectate pentru a evidenţia
concluziile pe care le poate trage orice entitate participantă
(privită, în mare, ca ceva indivizibil/considerat ca tot) la un dialog
de comunicare, pe baza mesajelor primite/trimise şi pe baza unor
presupuneri iniţiale (beliefs), suplimentare celor de mai sus
• Ele sunt destinate conceperii tuturor raţionamentelor legate de
protocoalele de securitate, cum ar fi, de exemplu, cele care conduc
la un răspuns precis la întrebări de genul Protocolul funcționează
corect? sau Protocolul urmează/satisface specificațiile?
• Totul este privit la un nivel abstract, deducţiile nefăcându-se pe
şiruri de biţi, ci pe mesajele text existente sub diverse forme de
redare
• Se mai presupune că toţi participanţii sunt capabili să recunoască
(într-o anumită măsură) diverse forme de mesaje, chiar dacă în
exprimarea lor (viitoare, finală, 0-1,...) o parte din
formatul/conținutul iniţial ar lipsi
CONCEPTE ȘI SISTEMe – 18
• Ne aşteptăm ca o analiză bazată pe logicile de încredere să
garanteze că doar proprietăţile dorite privind, de exemplu
securitatea datelor, nereplicarea mesajelor (mai general, a
tranzacţiilor), admiterea doar a persoanelor de încredere,
etc., sunt acceptate în cursul fiecărei sesiuni de comunicare
• Evident că demonstraţiile formale (într-o logică dată) legate
de funcționarea dorită a protocoalelor abstracte
(formalizate și ele într-o anumită măsură), nu constituie o
garanţie a faptului că şi protocoalele concrete (presupuse a fi
implementări fidele ale celor abstracte) vor funcționa corect
• Există astfel destule presupuneri (ca mai sus) care pot fi
luate (teoretic) „drept bune”, dar care sunt nevalide în multe
cazuri reale (exemplu clasic de afirmație de acest gen:
criptoalgoritmul X este sigur)
CONCEPTE ȘI SISTEMe – 19 • Reamintim că vom privi logicile de încredere/belief logics ca
fiind logici modale (ar trebui să fie multisortate), bazate pe o
interpretare epistemică a operatorilor modali (adică a
modurilor/modalităților de adevăr)
• Și că epistemologia este o ramură a filozofiei privind natura
şi aria/limitările conceptului de cunoaştere/knoledge; sau, the
science of knoledge and (justified) belief
• Ar fi esențial să putem defini o distanţă adecvată (concretă,
măsurabilă, chiar probabilistic) dintre Knoledge (K) şi Belief
(B)
• Noţiunea de încredere trebuie înțeleasă cam așa: o persoană
fizică (pe post de agent) crede în mod rezonabil că…
CONCEPTE ȘI SISTEMe – 20
• Aceste tipuri de raţionament, legate de funcționarea conform specificației
a protocoalelor, au fost însă mult timp folosite doar în mod informal
• După cum știm, prima dintre logicile de încredere introduse (în contextul
menționat) a fost logica BAN (Burrows, Abadi, Needham), urmată, destul
de repede, de extensii mai expresive şi mai „evoluate”, cum ar fi logica
GNY (Gong, Needham, Yahalom), logica SyO (Syverson, van Oorshot) ,
sau logica AT (Abadi, Tuttle)
• O limitare neplăcută a tuturor acestor logici este necesitatea de a
adnota/anotate protocoalele cu formule logice suplimentare, pentru a
reprezenta fidel intenţiile celui care a trimis un anumit mesaj
• Este necesară uneori și adnotarea cu formule privind secretizarea sau
prospețimea/freshness unor anumite porţiuni de informaţie/mesaj
• În plus, în cadrul acestor logici nu se poate demonstra formal, în mod
direct, faptul că, de exemplu secretele/secrecy sunt protejate
• De fapt, conform MDY, acest lucru este presupus a fi adevărat în mod
implicit
CONCEPTE ȘI SISTEMe – 21 • „Mergând” mai în profunzime, când proiectăm/explicăm un protocol
criptografic (abstract), se foloseşte aproape mereu presupunerea
implicită „Deoarece acest mesaj a fost semnat de (maşina) Bob,
atunci (maşina) Alice poate fi sigură că acel mesaj provine de la B”,
aceasta devenind o certitudine informală (belief)
• Presupunerea anterioară stă la baza justificării faptului că un
protocol funcţionează/este corect
• Într-o „demonstraţie” bazată implicit pe această presupunere, va
lipsi o definiție formală a unei relaţii de încredere între parteneri,
precum și certitudinea reală (knoledge) că un mesaj nu este, de
exemplu, o copie a unui mesaj dintr-o sesiune anterioară
• Deşi logicile (formale) dedicate pe care le-am descris (sau pe care
le vom descrie) înglobează de obicei și anumite tehnici de
demonstrare (automată) sau de tip model-checking, ele sunt de
mare utilitate în sine, prin aceea că ajută la descoperirea unor
puncte sensibile ale oricărui protocol, puncte care ar favoriza
slăbiciunile acestuia și care ar putea fi ușor exploatate de adversari
CONCEPTE ȘI SISTEMe – 22 • Totuși, lipsa unei semantici formale simple și viabile reprezintă un mare
handicap în utilizarea eficientă și viabilă a unor asemenea logici: cu ele
avem doar încredere în ceea ce cunoaștem, nu și certitudini, avem
doar demonstrații, nu și o legătură clară cu adevărul real
• Protocoalele (criptografice) abstracte sunt de obicei specificate printr-o
secvenţă standard de mesaje (cu emițător și receptor precizați explicit),
având forma sintactică generală X → Y: listă
• Pe scurt, semnificația este aceea că X (emițător) îi trimite lui Y (receptor)
un mesaj text descris prin listă (astfel, în O1. de mai jos: P îi trimite lui S
mesajul format din P, Q, Np, adică...)
• O formă uzuală a protocolului Needham-Shroeder cu chei împărțite și
simetrice (vom reveni), ar putea fi dată de secvența
O1. P → S : P, Q, Np
O2. S → P : {Np, Q, Kpq, {Kpq, P}Kqs}Kps
O3. P → Q : {Kpq, P}Kqs
O4. Q → P : {Nq}Kpq
O5. P → Q : {Nq - 1}Kpq
CONCEPTE ȘI SISTEMe – 23
• Câteodată mai apare în listă şi ceasul (notat de obicei cu t)
adică timpul (local) al agentului (emițător)
• În cele de mai sus P, Q, S (nu facem diferența între P, Q, S și
p, q, s) sunt/joacă rolul unor maşini sau principali/(mulțimi de)
agenţi, etc.
• P și Q sunt uneori chiar persoane fizice (să zicem A și B de
mai înainte), iar S este considerat (aproape mereu) drept un
server/intermediar („de încredere”/trusted)
• Np şi Nq sunt cuvinte inventate/reproduse (nonce – din
franceză...: mesager, ambasador, reprezentantul papei pe
lângă un guvern străin = nunțiu papal)
• De fapt, ele sunt numere aleatoare, alese de către P
respectiv Q, şi folosite pentru a preveni atacurile prin
revenire/reluare (replay attacks)
CONCEPTE ȘI SISTEMe – 24 • Asemenea atacuri constau în faptul că un intrus va replica/duplica
părţi dintr-un mesaj vehiculat/păstrat într-una dintre sesiunile
anterioare
• Ideea generală a nonces-elor este că principalii verifică faptul că
valorile folosite în anumite mesaje criptate corespund celor corecte
ale acestora pentru sesiunea în curs; discrepanţele, care pot apare
de exemplu datorită prezenţei (accesibilităţii) mesajelor memorate
în cursul unor sesiuni anterioare, pot fi detectate astfel de către
principali, care pot să evite asemenea mesaje dacă protocolul este
gestionat corespunzător
• Din punctul de vedere al analizei protocoalelor, nonces-le sunt
tratate distinct de alte informaţii utilizate în cadrul unui protocol
• Un concept similar ar fi acela de confounders (co-fondator)
• Acest (alt) concept reprezintă apelul (tot) la numere aleatoare,
încorporate într-un mesaj, pentru a compara atacurile asupra
plaintext-ului (este vorba de cifrurile de tip public-key)
CONCEPTE ȘI SISTEMe – 25
• Kxy este o notaţie generică pentru o cheie K împărţită/divizată
(shared) de agenţii x şi y, iar ceva de genul {text}K, semnifică
faptul că întregul text este criptat cu K
• Scopul protocolului Needham-Schroeder cu (symmetric)
shared-keys este să permită ca P şi Q să fie de acord să
împartă/dețină în timpul comunicării cheia Kpq (comună) și să
facă acest lucru în siguranță
• Pentru aceasta, în primul rând, P şi Q vor face apel la
serverul (trusted) S, pe care se pot bizui ambii, și care va
genera cheia în timpul execuţiei protocolului
• În al doilea rând, S va comunica cu P şi Q folosind cheile
împărţite Kps respectiv Kqs, presupuse a fi cunoscute de la
bun început de către părţile implicate
CONCEPTE ȘI SISTEMe – 26 • Exprimarea anterioară este puţin ambiguă, deoarece, de
exemplu, se utilizează un acelaşi nume (să zicem K) atât
pentru informaţia pe care un agent o produce singur cât şi
pentru informaţia pe care acelaşi agent o primeşte din
exterior, de la o altă entitate
• Astfel, în mesajul codat 0-1 (final), Np este generat de P şi ca
urmare tratat de către acesta drept o constantă cunoscută,
dar, fiind primit de către S, S îl va privi ca fiind o variabilă
• Am putea desigur înlătura ambiguitatea prin notarea distinctă
(la nivel sintactic) a celor două modalităţi de utilizare
• Acest lucru ar uşura şi conceperea (eventuală a) unei
semantici formale, prin care să descriem comportarea
agenţilor (dar nu ar asigura implicit şi corectitudinea
acesteia); s-ar genera însă alte complicații sintactice
CONCEPTE ȘI SISTEMe – 27 • Vom presupune şi că din punctul de vedere al
protocoalelor criptografice, rămânem în MDY, adică
presupunem că criptarea este perfectă dar un intrus are
de fapt controlul complet (după cum am mai explicat) al
reţelei în sensul că poate vizualiza, şterge sau falsifica
orice mesaj (atenţie, precizăm din nou că aici nu
discutăm la nivel de şiruri de biţi)
• Există numeroase tehnici de analiză (multe dintre ele
automatizate măcar parţial) folosite în cadrul acestui
model şi cu ajutorul cărora s-au realizat demonstraţii
formale ale unor proprietăţi generale privind protocoalele
abstracte folosite, cum ar fi de exemplu asigurarea
secretizării sau asigurarea anonimatului
CONCEPTE ȘI SISTEMe – 28 • Cu toate succesele sale, folosirea MDY (cu presupunerile
sale implicite) pentru a proiecta un protocol este cumva
nenaturală d.p.d.v. al gândirii umane
• Un om nu proiectează de obicei un protocol folosind
enumerarea tuturor acţiunilor care ar putea avea loc (cum
este, de exemplu, șirul de tranzacții O1. - O5.)
• Mai degrabă ne gândim la a folosi anumite concepte de
nivel superior, cum ar fi: cheia secretă este cunoscută doar
de către A şi B şi este singura folosită pentru comunicarea
dintre cei doi agenţi
• Astfel, vom putea deduce afirmaţii de genul: dacă un
mesaj soseşte criptat cu o cheie cunoscută doar mie şi
maşinii S, şi nu eu sunt acela care l-am trimis prima dată,
atunci el trebuie să fi fost trimis de către S
„ÎNTRE” LTM ȘI BAN - 1 • Pentru că am spus în mod repetat că logica BAN va fi
tratată (cumva, și „succesoarele” ei) ca o recapitulare a
ceva deja cunoscut de voi (accentul căzând aici pe partea
de logic engineering), vom „progresa” întâi (de la LTM),
spre anumite logici „intermediare”, tot epistemice, care vor
fi „înglobate” într-un formalism mai complex
• Formalismul include, prin sintaxa și semantica acestor noi
logici (deci într-un cadru unitar) și câteva caracteristici
amintite ale contextului: INTERNET, rețele, sisteme
multiagent, protocoale, comunicare, proprietăți de
„siguranță”, etc.
• Ne „lungim” doar până la momentul în care vom seziza că
orice formalism prea detaliat nu mai este benefic, ci poate
deveni chiar dăunător
„ÎNTRE” LTM ȘI BAN - 2 • Datorită marii complexități a sistemelor multiagent la nivel
conceptual și imposibilității de a face o demarcație semantică
clară/formală între a cunoaște (efectiv) și a crede (că se
cunoaște), folosirea logicilor de încredere într-un mod eficient, de
exemplu pentru demonstrarea proprietăților protocoalelor de
securitate, este desigur limitată
• Însă posibilitatea de a defini o asemenea semantică și de a enunța
o teoremă de corectitudine și completitudine, în condițiile
existenței, totuși, a unor sisteme deductive „promițătoare”, nu este
chiar iluzorie
• În principal, trebuie să restrângem întregul cadru general (structura
sistemului multiagent, tipul protocoalelor de securitate, propritățile
acestora care intresează, etc.) la anumite „fragmente”
• Aceste fragmente trebuie să poată fi, în primul rând, tratate în
modul menționat; apoi, să exprime părți suficient de „interesante”
din lumea reală
„ÎNTRE” LTM ȘI BAN - 3
• Vom începe cu prezentarea așa-numitei K-logici
• Aceasta reprezintă cea mai simplă logică epistemică
total formalizată
• Este, de fapt, o logică modală multiagent, care conține,
la nivel sintactic, câte un singur operator modal (Ki)
pentru fiecare agent i
• La nivel semantic, noțiunea de structură este (la
început) destul de apropiată de cea considerată pentru
o logică propozițională, adaptată însă pentru a
„cuprinde” mai mulți agenți, precum și operatorii modali
• În definițiile formale se vor folosi doar concepte deja
întâlnite (univers, relație, atomi, interpretări, validitate,
constructivism, etc.)
„ÎNTRE” LTM ȘI BAN - 4
• Definiție (univers). Ca și până acum, prin A se va
nota mulțimea variabilelor propoziționale (atomi
pozitivi). Prin R vom nota reuniunea (numărabilă a)
mulțimii tuturor relațiilor de aritate i peste A,
R i = {ri1, ri2, ...}, unde, desigur, rik Ai (produsul
cartezian al lui A cu el însuși de i-ori), unde i, k N.
Cuplul U = A, R se va numi univers.
• Definiție (structură). Se numește structură peste U,
orice tuplu s = r, a1, a2, ..., ak, r R k și
a1, a2, ..., ak r.
• Mulțimea tuturor structurilor peste U se va nota cu SU
„ÎNTRE” LTM ȘI BAN - 5
• Formalizarea aleasă va cuprinde și conceptele
(intuitive, până acum) de sistem multiagent și cea de
protocol de acțiune asociat fiecărui agent în parte (a
nu se confunda cu noțiunea de protocol de securitate!)
• Definiție (sistem multiagent). Se numește sistem multiagent un 3-uplu Mas = Ag, Gs, Act, unde:
-Ag = {A1, A2, …, An} reprezintă o mulțime finită, nevidă,
de agenți; fiecărui agent A i se asociază, în plus, o
mulțime (nevidă) de stări locale, LA; se presupune că
fiecare agent A este capabil să „memoreze și să
prelucreze informații”; întreaga cantitate de informație
la care A are acces la un moment dat este exprimată
prin starea sa locală din acel moment, lA LA
„ÎNTRE” LTM ȘI BAN - 6
-Gs denotă produsul LA1 LA2 ... LAn adică mulțimea
tuturor stărilor globale ale sistemului (indicii...)
-Act reprezintă o mulțime (numărabilă) de acțiuni abstracte;
acestea ar fi inițiate de către agenți și se manifestă în
sistem doar prin efectele secundare pe care le au, adică
prin schimbările pe care le produc (în urma efectuării lor)
asupra stărilor globale ale sistemului; fiecărui agent A i se
va asocia o mulțime de acțiuni pe care va putea să le
execute (el, dar posibil și alți agenți), ActA Act (A Ag)
Observație. Este util (câteodată) să se presupună că în Ag
este prezent un agent special, notat E (prin care se va
identifica influența contextului/mediului în care „evoluează”
sistemul); în acest caz, ceilalți agenți se vor numi obișnuiți.
„ÎNTRE” LTM ȘI BAN - 7
• Rezultă că sistemele (noastre) multiagent sunt entități
dinamice, dinamica fiind „exprimată” de transformările stării
globale făcute de către agenți (în urma execuției unor
acțiuni)
• Ar trebui să distingem și între comportările (o comportare
este orice sevență de acțiuni executate de către agenți)
așteptate ale unui sistem și cele posibile
• Definiție (protocol de acțiune). Un protocol de acțiune
(pentru un agent A, într-un sistem Mas dat) este orice funcție PA : LA P (ActA), prin care se specifică mulțimea
acțiunilor pe care un agent le poate efectua în fiecare dintre
stările sale locale. Se numește protocol reunit (pentru un
sistem Mas, în care Ag = {A1, A2, …, An}) orice n-uplu
P = PA1, PA2, ..., PAn.
„ÎNTRE” LTM ȘI BAN - 8
• Un sistem Mas „dotat” cu un protocol reunit corespunzător P (ca mai sus), poate fi prezentat și ca un graf etichetat (sistem tranzițional), în care nodurile sunt stările globale ale sistemului (Gs), iar arcele/tranzițiile reflectă relații, mai precis elemente corespunzătoare ale produsului cartezian ActA1 ActA2 ... ActAn (semnificația intuitivă fiind clară)
• Definiție (drum, cale). Se numește drum/cale (într-un sistem multiagent Mas), orice funcție
π : Time Gs (intuitiv, orice secvență finită/infinită de stări globale; dacă nu specificăm altceva, se ia Time = N).
„ÎNTRE” LTM ȘI BAN - 9 • Definiție (punct). Fie Mas = Ag, Gs, Act un sistem
multiagent unde Ag = {A1, A2, …, An}, π un drum și
m Time un moment de timp în Mas (ambele, oarecare).
Se numește punct/loc/moment în Mas, orice cuplu π, m. Ținând cont de definiția lui π în Mas, putem
spune că fiecărui punct îi este asociată o stare globală
g Gs, g = π(m).
• Deoarece g = l1, l2, ..., lj, ..., ln, cu lj LAj, vom nota pe lj
cu πj(m); cu alte cuvinte, vom identifica prin πj(m) starea
locală a agentului Aj, corespunzătoare stării globale g a lui
Mas (pentru fiecare j [n]), stare determinată de drumul π
la momentul m; dacă notăm cu mulțimea tuturor
drumurilor din Mas, prin () se va nota mulțimea tuturor
punctelor din sistemul dat (ar trebui să apară pe undeva,
ca indici, Mas și Time)
„ÎNTRE” LTM ȘI BAN - 10
• Câteodată (vom specifica explicit aceasta), dat sistemul
Mas, prin se va nota orice mulțime nevidă de drumuri din
Mas
• Admitem că este posibil ca în cazul „trecerii” de la un punct
la altul (adică de la momentul m la momentul „următor”,
notat m + 1, în cursul unui drum π) anumiți agenți să nu
afecteze deloc starea globală a sistemului, adică să nu
efectueze nici o acțiune; în acest caz, vom considera, prin
convenție, că acei agenți efectuează totuși o acțiune
specială (vidă, ascunsă), introdusă forțat în Act
• Mai spunem și că între două puncte consecutive (ca mai
sus), sistemul execută o rundă/un ciclu (pentru cazul
precedent, este vorba despre „runda m + 1” a drumului π)
„ÎNTRE” LTM ȘI BAN - 11
• Să revenim acum la K-logică
• Definiție (-interpretare). Fie fixat un univers U = A, R
și o structură peste U, s = r, a1, a2, ..., ak, r R k,
a1, a2, ..., ak r. O -interpretare pentru s (în U) este
orice funcție (notată tot cu ), care atașează fiecărui atom ai
(i [k]), un alt atom bi A; astfel, este de fapt o funcție de
la {a1, a2, ..., ak} la A (dată prin (ai) = bi); sau, echivalent (nu uităm că a1, a2, ..., ak r), ea poate fi privită ca o
(meta)funcție ’, de la SU la 2A (dată prin ’(s) = {b1, b2,...,bk},
unde (ai) = bi, i [k], iar s și r sunt ca mai sus).
• Oricum, nu vom mai face distincție între și ’ (la nivel conceptual) iar un cuplu s, se va numi și unitate de
informație (în universul dat)
„ÎNTRE” LTM ȘI BAN - 12 • Definiție (unitate de informație validă). Fie U un
univers, s = r, a1, a2, ... o structură (cu (ai) = bi), și
u = s, o unitate de informație în U; u se numește
validă dacă s’ = r, b1, b2, ... este la rândul ei o
structură, adică dacă (a1), (a2), ... r.
• Considerând acum un sistem multiagent
Mas = Ag, Gs, Act și U un univers, vom
presupune că pentru fiecare agent A Ag și orice
stare locală lA LA, lA conține (și) atomi; suplimentar,
vom impune restricția de a nu exista doi agenți
(obișnuiți) care, în stările lor locale din același moment
să conțină același atom a A
„ÎNTRE” LTM ȘI BAN - 13
• Dat un sistem multiagent Mas și un univers U (ca mai sus),
fiecare agent A va putea fi asociat cu zero, una, două sau mai multe unități de informație, u; orice cuplu A, u se va
numi reprezentare (accesibilă lui A); dacă u este validă, atunci reprezentarea A, u se va numi validă (și
accesibilă lui A)
• Vom defini în continuare, în contextul menționat (sunt fixate Mas, U, Φ, unde Φ este mulțimea tuturor
reprezentărilor din Mas), o formă preliminară
(propozițională) a K-logicii, pe care o vom nota cu PK (o
putem considera ca fiind „o logică propozițională peste
starea locală a agenților”)
• PK va denota, ca de obicei, și clasa de formule a acestei
logici
„ÎNTRE” LTM ȘI BAN - 14 • Sintaxa PK.
Baza. Dacă F Φ atunci F PK.
Pas constructiv.
(i) Dacă F PK atunci (F) PK.
(ii) Dacă F PK atunci (F) PK.
(iii) Dacă F, G PK atunci (F G) PK.
(iv) Nimic altceva nu mai este în PK.
• Definiție (sistem interpretat). Un sistem interpretat este un
4-uplu I = Mas, P, , , unde Mas este un sistem multiagent,
P este un protocol reunit pentru agenții lui Mas, este mulțimea
tuturor drumurilor posibile din Mas, iar este o interpretare
dependentă de puncte, adică o funcție prin care se asociază
valori de adevăr tuturor reprezentărilor din Φ corespunzătoare lui
Mas. Mai exact, pentru fiecare reprezentare p Φ și fiecare punct π, m (π , m Time), avem că (π, m)(p) este
fie true, fie false.
„ÎNTRE” LTM ȘI BAN - 15 • Semantica PK. Fie orice sistem interpretat I, orice punct
π, m din Mas și orice formulă F PK. Semantica lui F
va fi o valoare de adevăr (true, false), obținută constructiv
(conform definiției sintaxei), după cum urmează:
Baza. F = p Φ. Atunci F este adevărată în I și π, m
ddacă (π, m)(p) = true. Se scrie I, π, m p.
Pas constructiv. Fie F, G PK.
(i) I, π, m (F) ddacă I, π, m F.
(ii) I, π, m (F) ddacă I, π, m F.
(iii) I, π, m (F G) ddacă I, π, m F și
I, π, m G.
• Dacă dorim să discutăm doar despre reprezentările
accesibile unui agent A, se va folosi notația ΦA
„ÎNTRE” LTM ȘI BAN - 16 • Până acum nu am discutat încă despre knoledge
și belief (b sau ), sau despre k-interpretări și
-interpretări (simbolul K a apărut totuși...)
• Sunt necesare însă numeroase rezultate
(precum și introducerea altor concepte
esențiale), astfel încât nu insistăm pe alte detalii
• Doar vom trece pe scurt în revistă modul în care
se poate „prinde” semantic dinamica unui Mas și
cum se pot folosi logicile epistemice (urmează:
K-logica și KB-logica, privite ca extensii directe
ale PK) în scopul menționat încă de la început
„ÎNTRE” LTM ȘI BAN - 17 • După cum am mai spus, K-logica (KL) este cea mai
simplă logică epistemică pe care o vom introduce și ea este (și) o logică modală multiagent, pentru fiecare agent i existând un singur operator modal, Ki
• Fie Mas un sistem multiagent având card(Ag) = n,
U – un univers și Φ - mulțimea tuturor reprezentărilor din Mas
• Sintaxa KL. Baza și Pas-ul constructiv ((i)-(iii)) sunt exact ca la PK. Adăugăm pentru KL:
Pas constructiv ((iv) de acolo va referit aici prin (v)).
(iv) Dacă F KL atunci (Ki[F]) KL, i [n].
• Semantica KL. Și aceasta se obține prin extensia semanticii PK; este suficient să precizăm acum doar semnificația noilor operatori introduși sintactic, Ki:
„ÎNTRE” LTM ȘI BAN - 18 • Definiție (knoledge). Fie I = Mas, P, , un
sistem multiagent interpretat, un agent A și o formulă
F. Vom spune că A cunoaște „faptul” F, sau că A știe că F (este adevărată) (în punctul π, m ()), în
scriere KA[F], dacă avem:
I, π, m (KA[F]) ddacă I, π’, m’ F,
pentru fiecare π’, m’ KA(π, m).
• Notația KA(π, m) are semnificația intuitivă de mulțimea tuturor informațiilor unui agent A (sau, mulțimea tuturor punctelor despre care agentul A crede că pot apare exact pe locul lui π, m)
• Formal, punem:
KA(π, m) = {π’, m’ () | πA(m) = π’A(m’)}
„ÎNTRE” LTM ȘI BAN - 19 • Adică, în cele două stări globale ale lui Mas,
g = π(m) și g’ = π’(m’), corespunzătoare punctelor π, m și π’, m’, stările locale
πA(m) și π’A(m’) (ambele corespunzătoare
agentului A) vor coincide
• Două puncte care aparțin unei aceleași mulțimi KA(π, m) se numesc de nedistins
(indiscernabile) în raport cu agentul A
• Operatorul dual lui KA, notat PA (PA(F) reprezintă
KA(F) și desemnează faptul că A crede că F
este posibil(ă) (a fi adevărată); și (de
exemplu) se află într-un raport similar
„ÎNTRE” LTM ȘI BAN - 20 • În același context (și pentru fiecare...), se pot
demonstra un număr de afirmații, cum ar fi:
(C) I, π, m (KA[F]) (KA[G]) ddacă
I, π, m (KA[F G])
(K) Dacă I, π, m (KA[F]) (KA[F G]) atunci
I, π, m (KA[G])
(D) I, π, m (KA[F F])
(T) Dacă I, π, m (KA[F]) atunci I, π, m F
(4) Dacă I, π, m (KA[F]) atunci
I, π, m (KA[(KA[F])])
(5) Dacă I, π, m (KA[F]) atunci
I, π, m (KA[(KA[F])])
„ÎNTRE” LTM ȘI BAN - 21
• Se mai pot introduce și folosi (fără a se crește expresivitatea logicii
curente, dedicată cunoașterii, dar crescându-se simplitatea
reflectării directe a realității), trei noi operatori modali, dedicați reprezentării cunoașterii de grup: EA (fiecare agent din A
cunoaște), CA (cunoaștere uzuală, pentru întregul A) și DA
(cunoaștere distribuită, pentru întregul A)
• Mai precis, să considerăm Mas = Ag, Gs, Act un sistem
multiagent, unde Ag = {A1, A2, …, An} și I = Mas, P, , un
Mas interpretat, cu: A Ag, π, m un punct și F o formulă
• Definiție („fiecare cunoaște”). Dat I și un grup de agenți A, ca
mai sus, spunem că fiecare agent din A cunoaște formula F în punctul π, m, scris I, π, m (EA[F]), ddacă avem
I, π’, m’ F, pentru fiecare π’, m’ UAAKA(π, m).
„ÎNTRE” LTM ȘI BAN - 22 • Definiție („cunoaștere uzuală”). Dat I un sistem
multiagent interpretat, un grup de agenți A, o formulă F și un punct π, m, ca mai sus, spunem că F este
o cunoștință uzuală/informație cunoscută de către (toți) agenții din A, în punctul π, m, scris
I, π, m (CA[F]) ddacă avem
I, π, m (EA[(EA[(EA[F])...])]) (operatorul EA[•] se
aplică de un număr oarecare, dar finit, de ori).
• Definiție („cunoaștere distribuită”). În contextul
precedent, vom spune că formula F este o cunoștință distribuită între agenții din A, în punctul π, m, scris I, π, m (DA[F]), ddacă
avem I, π’, m’ F, pentru fiecare punct π’, m’
din ∩AAKA(π, m).
„ÎNTRE” LTM ȘI BAN - 23 • O soluție pentru a „prinde” în același context
formal și conceptul de credință/încredere/părere,
alături de cel de cunoaștere (sigură) (knoledge vs.
belief, simultan), vom apela la o altă extensie a
logicii PK, și anume la KB-logica
• Similar cu cazul K-logicii, KB-logica (KBL) este
o logică modală multiagent, folosind însă câte doi
operatori modali pentru fiecare agent A: KA și BA
• Fie astfel Mas un sistem multiagent având
card(Ag) = n, U – un univers și Φ - mulțimea
tuturor reprezentărilor din Mas
„ÎNTRE” LTM ȘI BAN - 24
• Sintaxa KBL. Baza și Pas constructiv (i)-(iii)
sunt exact ca la PK. Adăugăm pentru KBL:
Pas constructiv ((iv) de acolo devine aici (vi)).
(iv) Dacă F KBL atunci (Ki[F]) KBL, i [n].
(v) Dacă F KBL atunci (Bi[F]) KBL, i [n].
• Semantica KBL. Ca mai înainte, aceasta se
obține tot prin extensia directă a semanticii
PK; este suficient să precizăm semnificația
noilor operatori introduși sintactic, Ki și Bi; va fi
însă nevoie și de câteva „ajustări” față de KL
„ÎNTRE” LTM ȘI BAN - 25 • Să considerăm a fi fixate elementele de genul I,
Mas, , A, F, π, m (), π(m), πA(m), etc.,
toate având acum o semnificație intuitivă (de
fapt, și formală) implicită, rezultată din notațiile
folosite deja
• Pornind de la observația că în mulțimea:
()KA(π, m)={π’, m’() | πA(m) = π’A(m’)}
egalitatea din interior nu prea știm ce înseamnă
în cazuri concrete (dacă ar fi să ne gândim doar
la decidabilitate, de exemplu), o idee bună pare a
fi înlocuirea ei cu anumite relații de echivalență
cu o semnificație mai „realistă”
„ÎNTRE” LTM ȘI BAN - 26 • Vom „vorbi” astfel despre agenți determiniști și agenți
nedeterminiști; de acțiuni interne și acțiuni externe; de echivalența extrospectivă și de echivalența introspectivă; despre determinatori, ș.a.m.d.
• Definiție (echivalența extrospectivă). Fie date: sistemul
Mas = Ag, Gs, Act, protocolul reunit
P = PA1, PA2, ..., PAn (Ag = {A1, A2,…,An}), A Ag și două stări locale ale lui A, l, l’ LA. Spunem că l și l’ sunt extrospectiv echivalente, scris l ext l’, dacă sunt satisfăcute proprietățile:
(a) PA(l) = PA(l’) (reamintim că ActA Act și că
PA : LA P (ActA)).
(b) Dacă stările locale ale lui A, l1 și l1’ sunt atinse plecând de la l, respectiv l’, prin executarea exact a aceleiași secvențe de acțiuni, atunci avem și PA(l1) = PA(l1’).
„ÎNTRE” LTM ȘI BAN - 27 • Un agent A este determinist ddacă pentru fiecare
l LA avem card(PA(l)) 1
• În cele de mai sus, cuvântul acțiune și mulțimile de
acțiuni de tipul PA(l) se referă doar la așa-numitele
acțiuni externe
• Definiție (echivaleța introspectivă). Fie sistemul
Mas = Ag, Gs, Act, A Ag, l, l’ LA și o
mulțime (oarecare) de drumuri în Mas. Spunem că l și
l’ sunt introspectiv echivalente, scris l int l’, dacă
sunt satisfăcute condițiile:
(c) (a)(a det(l) ddacă a det(l’)).
(d) l F ddacă l’ F, pentru fiecare formulă F PK.
„ÎNTRE” LTM ȘI BAN - 28 • În definiția anterioară, legat de relația , s-au luat în
considerare doar -interpretările (vezi mai jos)
• Putem atunci înlocui, în interiorul egalității () (3 slide-
uri înapoi), simbolul „=” cu „ext” sau cu „int” și vom fi
mai aproape de realitate
• Termenul „extrospectiv” se referă astfel la faptul că
pentru un agent se iau în considerare doar acțiunile
sale care îi pot influența pe ceilalți agenți (adică cele
care arată ce acțiuni poate executa agentul respectiv,
„vizibile” prin „impactul” asupra unui alt agent); dacă
două stări locale diferite ale unui agent pot conduce la
secvențe identice de acțiuni (comportări identice),
atunci ele pot fi numite „echivalente” (extrospectiv)
„ÎNTRE” LTM ȘI BAN - 29
• În ceea ce privește celălalt tip de echivalență,
termenul „introspectiv” se referă la faptul că se ia în
considerare doar informația pe care agentul respectiv
o poate „vedea” (sau, cu care poate „lucra”, într-un
anumit punct); doar agentul însuși are acces direct la
starea sa locală
• Se pot defini și alte tipuri de relații de echivalență
(folosite în același scop, de a defini de fapt
indiscernabilitatea anumitor stări, altfel decât prin
egalitate): echivalența extrospectivă mărginită,
accesibilitatea extrospectivă (asta este doar reflexivă
și tranzitivă) și, similar, pentru introspectivitate; nu
insistăm, pe moment
„ÎNTRE” LTM ȘI BAN - 30 • Să revenim puțin la sistemele multiagent interpretate,
oprindu-ne la ideile de -interpretare, unitate de informație
și reprezentare validă
• Deși nu explicit, luând în calcul dinamica sistemelor
(agenți, stări, acțiuni, modificări de stări, adevărul
formulelor, etc.), am considerat de fapt două tipuri de
interpretări (folosite de fiecare agent pentru a raționa
despre lumea dinafara lui astfel încât să aleagă, în
cunoștință de cauză, acțiunile pe care le va efectua):
-k-interpretările utilizează doar reprezentările valide,
implicând sistemul în ansamblu și semnificând cunoaștere
--interpretările utilizează, în mod colectiv, valorile de
adevăr pe care fiecare agent A le asignează tuturor
reprezentărilor sale, ΦA; ele semnifică încredere
„ÎNTRE” LTM ȘI BAN - 31 • Am putea descrie succint totul prin „schema”:
Reprezentări ale contextului
Operatori
Formule
-interpretări k-interpretări
Credințe Cunoștințe
• Putem remarca astfel faptul că aici relația dintre „validitate” și
„adevăr” nu mai este cea uzuală: adevărul va fi pur și simplu ales
corespunzător (pentru a fi asignat) de către fiecare agent în parte,
în timp ce validitatea este o proprietate „dependentă de sistem”,
care depinde atât de starea internă a agenților, cât și de context
• De asemenea, putem spune acum că logica KL a folosit pentru () echivalența introspectivă, dar numai reprezentările valide; în acest
mod, pentru KL nu vor exista diferențe între -interpretări și
k-interpretări (tot ceea ce credem, este într-adevăr o
cunoștință reală); acestea vor fi ( =k)-interpretările
„ÎNTRE” LTM ȘI BAN - 32 • Vom vedea în continuare că KBL va utiliza pentru operatorii de
cunoaștere KA echivalența extrospectivă, iar pentru cei de încredere
BA, echivalența introspectivă (per ansamblu, vorbim practic doar de
–interpretări, deoarece se lucrează cu orice reprezentare, nu doar
cu cele valide)
• Pentru ultimele detalii (privind semantica formală pentru KBL), mai
sunt necesare însă (alte) câteva concepte noi
• Definiție (acțiune sistemică). Fie Mas un sistem multiagent, π un
drum în Mas. O acțiune sistemică este un obiect de forma
a* = g1, g2, p1, p2, unde g1 este starea globală a
sistemului în punctul p1 = π, m1 și g2 este starea globală a
sistemului în p2 = π, m1. g1 se numește starea inițială a acțiunii
respective (sau originea), iar g2 este starea finală (destinația).
Dacă g1 și g2 coincid, atunci a* va fi considerată implicit ca fiind
acțiunea vidă.
• De fapt, se presupune că un sistem „evoluează” doar datorită
execuției de acțiuni individuale ale agenților
„ÎNTRE” LTM ȘI BAN - 33 • Definiție (operație). Prin operație vom înțelege o
specificare exactă a unei mulțimi de schimbări (cum ar fi adăugarea sau ștergerea unor structuri), schimbări care pot fi operate/introduse într-un sistem de către un agent (sau un grup de agenți) în cursul trecerii de la o stare inițială la o stare finală (într-un drum).
• Definiție (acțiune abstractă). O acțiune abstractă este un cuplu a = cons, cost, unde cons (consecventul) este o operație, iar cost este un „cost asociat”.
• Cost-ul atașat unei acțiuni abstracte este o exprimare cantitativă privind timpul, spațiul, etc. (legată de „execuția” acțiunii; pot exista acțiuni care „iau” un timp fixat aprioric, altele care se execută „instantaneu”, etc.); el poate fi și ignorat, dacă nu este esențial
„ÎNTRE” LTM ȘI BAN - 34 • Definiție (acțiune concretă). O acțiune
concretă este un obiect a = a , p1, p2,
unde a este o acțiune abstractă iar p1, p2
este o pereche de puncte dintr-un același drum π
dintr-un Mas fixat.
• Acțiunile concrete instanțiază practic diverse
acțiuni abstracte (pentru un drum dat), marcând
momentele stării inițiale și stării finale
• Definiție (echivalența acțiunilor). Două acțiuni
concrete sunt echivalente, dacă prima lor
componentă este aceeași acțiune abstractă.
„ÎNTRE” LTM ȘI BAN - 35 • Definiție (acțiuni interne și acțiuni externe). O
acțiune (concretă) se numește internă dacă ea
modifică starea locală a agentului care a executat-o. O
acțiune (concretă) se numește externă dacă execuția
ei de către un agent modifică starea locală (și) a (cel
puțin) altui agent.
• Deoarece starea unui sistem (stare globală) se
formează cu ajutorul stărilor (locale) ale (tuturor)
agenților din sistemul respectiv, este ușor de văzut că
execuția oricărei acțiuni nevide are un efect sistemic
(intern sau/și extern)
• Este posibil ca o acțiune să fie doar internă, doar
externă, sau atât internă cât și externă, simultan
„ÎNTRE” LTM ȘI BAN - 36
• Definiție („determinarea” pentru o acțiune). Fie o acțiune a = a , p1, p2 și o formulă F. Prin (F, a)
vom exprima faptul că operația atașată acțiunii poate
fi cu adevărat executată (între punctele
p1 = π, m1 și p2 = π, m2) ddacă F va fi
evaluată la true, în punctul p1. În acest caz, formula
F va putea fi numită antecedent pentru acțiunea a, a
unui agent, iar expresia (F, a) va fi numită
determinator pentru a.
• Ideea ar fi că un agent poate efectiv executa o acțiune
doar dacă posedă (măcar) un determinator; putem
admite și acțiuni „spontane”, dacă considerăm
„formule vide/neimportante” (adevărate în orice punct)
„ÎNTRE” LTM ȘI BAN - 37 • Dacă nu „legăm”, în definiția precedentă, toate
reprezentările (interpretate) de antecedentul unui
același agent, am putea vorbi despre acțiuni
colective/distribuite; acestea vor fi acțiuni „sistemice”,
pe care niciun agent nu le poate executa singur
• Definiție (execuția unei acțiuni). Folosind expresia
(A, a), vom preciza că acțiunea a este executată de
agentul A, „undeva”, pe parcursul unui drum π.
• Implicația ar fi aceea că antecedentul (existent) al lui a,
trebuie să fie evaluat la true doar de către agentul A
însuși; definiția anterioară se poate însă extinde pentru
a „prinde” și ideea efectuării unor acțiuni de către
grupuri de agenți
„ÎNTRE” LTM ȘI BAN - 38 • În sfârșit, la baza formalizării conceptului de belief
(încredere, credință) vom pune următoarea idee: niciun
agent nu va ști cu siguranță și întotdeauna, care dintre
reprezentările (la care el are acces) este sau nu validă;
dar va ști cu siguranță, și mereu, că orice reprezentare
va fi ori validă, ori nu
• Definiție („încredere”, în sens operațional). O credință
va fi orice formulă F (-interpretată, element din
PK(/KL/KBL)), pe baza căreia (măcar) un agent A decide
să acționeze. Adică, va exista o acțiune a, pentru care
(F, a) este un determinator, F fiind evaluată la true în
contextul reprezentărilor accesibile lui A
• Se pot identifica chiar diverse subclase „interesante” de
credințe
„ÎNTRE” LTM ȘI BAN - 39 • Definiție (credința ca ipoteză). O ipoteză este o formulă
-interpretată, asupra căreia un anumit agent decide să
acționeze doar într-un mod strict intern.
• Definiție (credința drept convingere). O convingere
este o formulă -interpretată, asupra căreia un anumit
agent decide să acționeze într-un mod extern.
• Definiție (credința drept certitudine). O certitudine este
o formulă -interpretată, asupra căreia un anumit agent
reușește întotdeauna să acționeze într-un mod extern,
obținând mereu rezultatul dorit.
• Prezenta abordare nu atinge nivelul maxim de detaliere al
specificării (reluăm întrebarea: Ar fi așa ceva neapărat
necesar?), și chiar pentru unele concepte introduse ar fi
nevoie de o formalizare „mai completă”
„ÎNTRE” LTM ȘI BAN - 40 • Totuși, abordarea adoptată descrie cu claritate „structura” și activitatea locală a
oricărui agent (cunoaștem practic toate informațiile de care acesta dispune/are
acces, în fiecare punct), menținându-se, în același timp, un nivel „confortabil” de
generalitate
• Definiție (structurarea stării locale). Starea locală (structurată) a unui agent A
este tripletul lA = ΦA, lA(ΦA), det(lA), unde:
-ΦA: este mulțimea tuturor reprezentărilor „accesibile” agentului A (în starea respectivă).
-lA(ΦA): este o -interpretare, depinzând de agentul A și starea corespunzătoare, prin
care se atașează „valori de adevăr” tuturor elementelor din ΦA.
- det(lA): este mulțimea tuturor determinatorilor „legați” de A (și de lA), prin care se
limitează de fapt mulțimea acțiunilor care pot fi executate de A, pornind cu această
stare locală.
• Am folosit notația lA in loc de cea deja introdusă/consacrată, lA (pentru o stare
locală), tocmai pentru a lua în considerare în mod implicit structura detaliată și
componentele unei stări
• Situația generală (legată de descrierea stării locale a unui agent) se poate
sistematiza acum prin următoarea „schemă”:
„ÎNTRE” LTM ȘI BAN - 41 Reprezentări ale contextului |
(+ Operatori modali) |
Formule |
-interpretări k-interpretări |
Credințe Cunoștințe | determinatori acțiuni
|
(=k)-interpretări |
|
Ipoteze Convingeri Certitudini | interne externe
|
Partea STRUCTURALĂ | Partea OPERAȚIONALĂ
Starea locală a unui agent în PK, KL, KBL
„ÎNTRE” LTM ȘI BAN - 42 • În acest moment, se pot demonstra câteva rezultate utile
(în legătură, de exemplu, cu echivalențele care privesc
stările locale), cum ar fi (nu insistăm)
• Propoziție. Dat un agent determinist A, o acțiune a și o formulă F, într-un sistem multiagent interpretat I, avem:
Dacă I, πA(m) F (F, a) atunci (A, a); asta,
dacă a este internă și considerăm doar -interpretări
pentru sistem, sau, alternativ, dacă a este externă și se
folosesc k-interpretările.
• Propoziție. Dat un agent A și o acțiune a într-un sistem multiagent interpretat I, dacă I, π (A, a), atunci
există un punct π, m și un antecedent F, astfel încât
I, πA(m) F (F, a).
„ÎNTRE” LTM ȘI BAN - 43
• Înainte de a reveni la semantica KBL, considerăm util
să „filozofăm” din nou asupra noțiunii de befief (deși
noțiunea de knoledge pare foarte clară, ușor de
definit într-un cadru formal, după cum, de altfel, am
mai și făcut, nici aceasta nu este chiar așa simplă...)
• „Credințele sunt, în esență, judecăți și evaluări despre
noi înșine, despre alții, despre lumea din jurul
nostru...;... ele sunt considerate a fi generalizări
„corecte” legate de cauzalitate, înțeles și limite privind:
lumea din jurul nostru, comportarea, capabilitățile sau
îndemânările și chiar identitățile pe care ni le asumăm”
„ÎNTRE” LTM ȘI BAN - 44 • Definiție (semantica KBL). Este suficient să extindem
semantica PK, pentru operatorii modali „cunoscuți” deja,
KA și BA (în contextul legat de echivalențele extrospective
și introspective, de acțiunile interne și externe, etc.). Mai exact, fie I un sistem multiagent interpretat (folosim doar
-interpretările), un agent A și o formulă F KBL. Vom spune că A crede F în punctul π, m, scris pe scurt
BA[F], dacă:
I, π, m (BA[F]) ddacă I, π’, m’ F, pentru fiecare
π’, m’ KAint(π, m).
De asemenea, vom spune că A cunoaște F în punctul π, m, scris pe scurt KA[F], dacă:
I, π, m (KA[F]) ddacă I, π’, m’ F, pentru fiecare
π’, m’ KAext(π, m).
„ÎNTRE” LTM ȘI BAN - 45 • În cele de mai sus, desigur că avem:
KAint(π, m) = {π’, m’() | πA(m) int π’A(m’)}
KAext(π, m) = {π’, m’() | πA(m) ext π’A(m’)}
• Apropo și de ceea ce remarcam în legătură cu filozofia
cunoașterii, înțelesul lui „A cunoaște F” (agentul A știe
faptul F), nu este acela că A îi atașează lui F o valoare de
adevăr (true sau false); de fapt, ideea este aceea că A
este capabil de a izola o mulțime de stări globale
(indiscernabile între ele), folosindu-și doar starea sa locală
(internă)
• Ceea ce face ca această mulțime de stări globale
indiscernabile să fie relevantă, este aceea că în toate
stările, agentul poate executa o acțiune externă, bazată pe
reprezentarea la care se referă
„ÎNTRE” LTM ȘI BAN - 46 • Propoziție. Într-un sistem I, -interpretat ca mai sus,
este adevărată următoarea afirmație (deloc
surprinzătoare...) legată de knoledge și belief (pentru
fiecare formulă F și fiecare punct π, m):
Dacă I, π, m (KA[F]) atunci I, π, m (BA[F])
• Putem demonstra chiar mai mult, și anume niște
afirmații similare cu cele demonstrate în cazul KL, de
data aceasta (și) pentru operatorul BA (pentru KA rămân
adevărate aceleași proprietăți, deși este acum vorba
despre -interpretări și nu despre (=k)-interpretări)
• Mai exact, într-un sistem I, -interpretat, și pentru
fiecare F, G KBL și fiecare punct π, m, avem:
„ÎNTRE” LTM ȘI BAN - 47 (C) I, π, m (BA[F]) (BA[G]) ddacă
I, π, m (BA[F G])
(K) Dacă I, π, m (BA[F]) (BA[F G]) atunci
I, π, m (BA[G])
(D) I, π, m (BA[F F])
(T) Dacă I, π, m (BA[F]) atunci I, π, m F
(4) Dacă I, π, m (BA[F]) atunci
I, π, m (BA[(BA[F])])
(5) Dacă I, π, m (BA[F]) atunci
I, π, m (BA[(BA[F])])
„ÎNTRE” LTM ȘI BAN - 48 • În abordarea (aproape complet) formală adoptată pentru
logicile de încredere (K vs B) în sistemele multiagent, cea
mai mare provocare pentru un agent este de a determina
care dintre reprezentările la care are acces (punctual) sunt
valide și care nu
• O asemenea distingere va permite agentului să „opereze
înafara sa” într-un mod predictibil
• Totuși, un agent va putea doar să observe starea sa
internă; chiar rezultatul acțiunilor sale externe poate fi doar
evaluat, și anume prin studierea consecințelor avute
asupra stărilor interne
• Ar fi astfel nevoie de un fel de procedeu prin care un
agent să-și poată actualiza și studia (formal) credințele
• Vom apela la ceea ce s-ar putea numi strategii reale
„ÎNTRE” LTM ȘI BAN - 49 • „Strategiile reale implică o secvență de teste mentale și
criterii interne pe care o persoană le poate alege spre
aplicare, cu scopul de a evalua posibilitatea ca o anumită
experiență particulară să fie sau nu reală, sau ca un
anumit eveniment să se fi întâmplat (sau nu); strategia
aleasă este esențială pentru a distinge cât se poate de clar
între fantezie și realitate; strategiile reale sunt liantul dintre
knoledge și belief”
• Ca exemplificare, să considerăm un sistem multiagent Mas,
având doar doi agenți „generici”, mai precis un „observator”
A și „mediul”, E (orice alt posibil agent va fi „inclus” în E)
• Scopul practic cel mai important pentru A este cel de a
identifica stările extrospectiv echivalente ale lui A relative la
E, pentru a putea atașa fiecărei clase de echivalență o stare
locală diferită
„ÎNTRE” LTM ȘI BAN - 50
• Definiție (strategie reală). Vom numi strategie reală pentru
un agent A, orice relație binară ρA între mulțimea claselor de
echivalență generate de int, peste LA, și mulțimea claselor de
echivalență generate de ext, peste LE. Adică orice submulțime
ρA Dom(ρA) Ran(ρA).
• Pentru orice agent, este esențială interacțiunea sa cu mediul
înconjurător; în acest mod, comportarea sa va fi cu atât mai
adaptabilă cu cât acesta va fi mai capabil să distingă „corect”
între diversele contexte
• Deoarece un agent are acces doar la starea sa locală și
acțiunile pe care le face depind complet de această stare
locală, numărul de stări locale diferite va limita numărul de stări
globale la care agentul va fi nevoit să se adapteze (evident că
numărul de stări globale este cel puțin la fel de mare ca cel al
stărilor locale)
„ÎNTRE” LTM ȘI BAN - 51 • Definiție (strategii reale efective). O strategie reală
efectivă pentru un agent A, este o strategie reală de tip
funcțional, surjectivă. Mai exact, este o strategie reală care
satisface condiția că pentru fiecare clasă din Ran(ρA), va
exista cel puțin o clasă din Dom(ρA), cu care să se afle în
relația dată.
• În acest caz, chiar dacă un agent nu va face distincție dintre
una sau mai multe (toate) stările globale, acest lucru nu va
avea importanță deoarece stările globale imposibil de
distins una de alta, vor avea același efect asupra agentului;
astfel, acesta va fi capabil să se adapteze fiecărui caz în
parte, datorită deosebirilor dintre stările locale
• Prin urmare, o strategie reală efectivă va ajuta/asista
agentul să facă cea mai potrivită acțiune, indiferent de
situație
„ÎNTRE” LTM ȘI BAN - 52 • Definiție (strategie reală eficientă). O strategie reală
eficientă pentru un agent A, este o strategie reală de
tip funcțional, injectivă.
• O strategie reală eficientă nu va conține clase de
echivalență formate din stări locale, care să fie
„redundante”; o asemenea strategie nu va permite
agentului să facă cea mai potrivită acțiune în fiecare
situație, dar în schimb nu vor exista „confuzii” în ceea
ce privește răspunsul la întrebarea „ce acțiune trebuie
să fie făcută” în fiecare situație
• Definiție (strategie reală perfectă). O strategie reală
perfectă pentru un agent A, este o strategie reală
care este atât efectivă cât și eficientă.
„ÎNTRE” LTM ȘI BAN - 53 • O primă concluzie în abordarea considerată, ar fi deci aceea că, deși un
lucru valoros, „cunoașterea adevărului absolut” (?), prin folosirea
k-interpretărilor, are consecințe limitate în ceea ce privește strategiile
reale efective și niciuna dovedită legată de strategiile reale eficiente
• Găsirea unor strategii reale perfecte rămâne, chiar în cadrul unui
formalism destul de complet și sofisticat, un simplu ideal, care însă poate
(și merită) să fie (doar) căutat
• Ar fi de dorit să știm, de exemplu, unde putem plasa în cadrul
formalismului tocmai dezvoltat (în care există o definiție naturală a
semanticii pentru noțiunea de încredere), protocoalele de securitate,
proprietățile generale de securitate legate de acestea, sistemele
deductive și demonstrațiile de corectitudine, teoremele de
completitudine, etc.
• Cercetările sunt de-abia la început în această direcție, și tot ceea ce
putem face deocamdată este să trecem în revistă câteva dintre
modalitățile posibile prin care problemele practice pot fi soluționate cu
succes folosind ideile formalismului introdus
„ÎNTRE” LTM ȘI BAN - 54 • Desigur că prin adoptarea unui protocol de securitate într-un sistem
multiagent, se urmărește în primul rând ca tot ceea ce înseamnă
comunicare în sistem să se desfășoare în siguranță
• Vorbim astfel despre asigurarea apriorică a satifacerii/sau nu de către
sistem (în cazul utilizării respectivului protocol) a unor proprietăți generale
cum ar fi anonimitatea/anonimity, observabilitatea/observability,
nedectabilitatea/undetectability, identificabilitatea/identifiability,
secretizarea/secrecy, autenticitatea/authenticity, intimitatea/privacy, etc.
• Adică, „vorbim” despre posibilitatea formalizării unor asemenea proprietăți
și despre posibilitatea demonstrării formale a satisfacerii lor, de către un
protocol și un sistem dat (utilizând eventual un ATP sau un MC)
• Putem continua formalizarea anterior propusă cu introducerea, prin
formule, a definițiilor proprietăților, apoi a protocoalelor, ipotezelor
suplimentare, sistemelor deductive, etc.; sau putem proceda ca la logica
BAN, unde, în paralel, avem și definițiile semantice intuitive și putem
folosi direct sisteme deductive corecte (presupuse a fi și complete)
• Puteți să consultați lucrările lui F. Raimondi și A. Lomuscio la adresa
http://www.doc.ic.ac.uk./~alessio/papers/
„ÎNTRE” LTM ȘI BAN - 55 • Vom încheia această parte a cursului cu câteva considerații
generale
• Până la urmă, scopul final/fundamental al unui protocol de
securitate real nu este acela de a împiedica un observator
(fie el și malițios) să cunoască anumite fapte; ci de a
preveni consecințele nedorite ale posibilelor acțiuni pe
care acel observator ar putea să le execute (bazându-se pe
cunoașterea acelor fapte)
• E deja dovedit faptul că dacă limităm cunoștințele la care
poate avea acces un agent, numărul de acțiuni pe care
acesta le poate executa devine și el mai mic
• Considerăm totuși că accentul în definirea unui protocol de
securitate, care să aibă șanse să fie „sigur”, trebuie să
cadă pe restricțiile impuse asupra comportărilor agenților și
nu pe limitarea accesului lor la anumite cunoștințe
„ÎNTRE” LTM ȘI BAN - 56
• Nici acest lucru nu este chiar ideal, deoarece limitarea acțiunilor poate
implica costuri foarte mari
• De aceea protocoalele ar trebui să se bazeze pe strategiile reale pe care
agenții le aleg, în scopul de a decide care sunt faptele semnificative
pentru lurea deciziei corecte
• Strategia aleasă (alegere bazată, posibil, și pe statistică și teoria
probabilităților; sau pe alte metode formale care tratează aproximarea)
va conduce, ideal, de la credințe și ipoteze, la convingeri și certitudini
• Avem astfel nevoie, pentru selectarea în cunoștință de cauză a unui
protocol care să asigure satisfacerea anumitor proprietăți de
securitate a comunicărilor (într-un sistem multiagent), atât de o
analiză calitativă formală (knoledge, belief, action, strategy, formal proof
și semantics, correctness și completeness, etc.), cât și de una cantitativă
(pentru a alege ceea ce este mai potrivit dintre definițiile formale
adoptate la nivel calitativ, folosind tot metode formale, cum ar fi teoria
măsurii, probabilități și statistică, etc.)
LOGICI DE ÎNCREDERE - 1 • Logica BAN va fi furnizată direct prin anumite sisteme
deductive, folosite pentru definirea, analizarea și
autentificarea formală a unor protocoale (abstracte,
criptografice) privind schimbul de informaţii (comunicarea)
între anumite entități
• BAN ajută, în primul rând, persoanele implicate să determine
dacă informaţia vehiculată este demnă de încredere şi/sau
este sigură în raport cu o posibilă interceptare
(eavesdropping)
• De multe ori este necesar a se utiliza notaţii particulare,
corespunzătoare logicii concrete utilizate, chiar pentru
protocoalele în sine, care sunt descrise (adnotate) cu formule
• Această logică pleacă de la premiza că toate informaţiile care
se vehiculează se petrec într-un mediu vulnerabil, supus
posibilelor falsificări şi monitorizării publice
LOGICI DE ÎNCREDERE - 2 • Am menționat deja că logica BAN este considerată a fi
o logică modală (epistemică) multisortată
• Sorturile, chiar dacă nu grupează explicit mulțimi de
obiecte, constă din mai multe categorii (clase):
agenţii/principalii, cheile de criptare, „cuvintele”
folosite o singură dată (nonces), formulele, etc.
• Observaţie. O secvenţă de raţionament în BAN
(demonstrația propriu-zisă în sistemul deductiv care
descrie logica), include de obicei trei scopuri:
1.Verificarea originii mesajului (authentication).
2.Verificarea „actualităţii” (freshness) mesajului.
3.Verificarea încrederii în transmiţător (trust).
LOGICI DE ÎNCREDERE - 3
• Observaţie. Logicile BAN sunt, în general, decidabile:
-Mai exact, există un algoritm care, având la intrare anumite presupuneri şi o
concluzie ţintă/scop (formule scrise în „limbajul BAN” concret), se termină
(întotdeauna) cu răspunsul DA (concluzia este demonstrabilă din ipoteze,
în sistemul dat) sau NU (în caz contrar).
-Algoritmii clasici folosesc de obicei noțiunea de mulţime magică (D.
Monniaux).
-De remarcat totuşi că aceste logici, ca de altfel toate cele construite direct
sintactic, pe baza unui sistem deductiv (de tip SD1 și „implementând” o
semantică implicită), nu au și o semantică formală; ca urmare, nu
dispunem nici de vreo teoremă de corectitudine şi completitudine (TCC).
-„Succesoarele” BAN (cum ar fi logica GNY) „caută”, să modifice axiomele și
regulile de inferență pentru a „prinde” mai bine aspectele semantice (care
pot ține și de contextul în care sunt plasate SISTEM-ele) în partea de
sintaxă
LOGICI DE ÎNCREDERE - 4 • CUM „inginerim” aceste (noi) logici? (pentru a ne
menține în cadrul propus de la bun început, adică acela
de a avea o metodologie standard de concepere,
descriere și folosire a unei anumite logici);
• „Metodologia” va fi standard, începând cu alegerea și
definirea constructivă a anumitor mulțimi:
-Alfabet (n-am mai explicitat, de exemplu: virgula, etc.)
-Formule (sintaxa)
-Axiome şi reguli de inferenţă (precizarea unui sistem de
deductiv)
• După cum deja am amintit, partea de semantică
formală (inclusiv TCC), poate fi dezvoltată în logici de
tipul PK, KL, KBL
LOGICI DE ÎNCREDERE - 5
• P, Q, …(sau P1, P2, …) – entități „responsabile
cu comunicarea, adică agenți (principali)
• S (sau S1, S2, …) – servere (mașini), adică
dispozitive cu rol de „intermediari”
• X, Y (sau X1, X2, …, Y1, Y2, …) – mesaje, adică
plaintexte
• Np, Nq, …(sau NP, NQ, …) – nonces (NP este
ataşat agentului P, sau p; în sintaxă deci, nu
facem diferență între literele mari și mici, decât
dacă precizăm aceasta în mod explicit; uneori
nici indicii nu vor fi „plasați la locul lor”, iar
restricțiile sintactice vor fi mai „relaxate”)
LOGICI DE ÎNCREDERE - 6 • Kxy (sau Kxy) – o cheie împărțită între agenţii x şi y
• K – o cheie publică sau o cheie secretă
• operatori binari:
1. believes/crede: |
2. has jurisdiction over/are control asupra: |
3. said/spune(a spus cândva): |
4. sees/vede (poate observa):
5. communicate/comunică (printr-o cheie K; sau, o cheie publică
+K, sau o cheie secretă corespunzătoare/matching
-K): ↔K (↔+K; ↔-K ; sau, indicele pus deasupra); vom mai scrie și
key/cheie(K, • ↔ •), ultimă notație pe care nu o mai evidențiem
însă sintactic (în BNF care urmează), deși o vom folosi des
6. from/de la (luând în considerare) cheia K: K (sau +K/-K)
7. (con)catenation/concatenare (de mesaje): <•,•>
LOGICI DE ÎNCREDERE - 7
• operatori unari:
1.encryption/criptare (ţinând cont de cheia K):
{•}K (sau +K, –K)
2.fresh/proaspăt (nou, recent, actual): #(•)
3.has(posesses)/are(deține) cheia K: ׀→K (din
nou, putem folosi și +K și –K)
• Definiţia constructivă a sintaxei logicii BAN,
utilizând BNF (clasa formulelor acestei logici
o vom numi tot BAN, ca de obicei):
LOGICI DE ÎNCREDERE - 8 • <server> ::= S1 | S2 | …
• <agent> ::= <server> | P1 | P2 | … | Q1 | Q2 | ...
• <machine> ::= <agent>
• <principal> ::= <agent>
• <message> ::= X1 | X2 | …
• <binary-operator> ::= | | | | | | | ↔K | ↔+K | ↔-K | K |
+K | -K | <•,•>
• <unary-operator> ::= {•}K | #(•) | ׀→K | ׀→+K | ׀→-K
• <nonce> ::= N | N<agent>
• <public-key> ::= K | K1 | K2 | … (sau +K,...)
• <secret-key> ::= K’ | K’1 | K’2 | … (sau –K,...)
• <shared-key> ::= K<agent><agent>
• <key> ::= <public-key> | <shared-key> | <secret-key>
LOGICI DE ÎNCREDERE - 9 • <formula> ::=
<agent> <binary-operator> <message> |
| < <message>, <message>> |
| <agent> <binary-operator> <agent> |
| <unary-operator> <message> |
| <unary-operator> <agent>
• Observaţie. Formulele au o semnificație doar intuitivă,
dar...esențială (comentarii...). Mnemonicele folosite
sunt numele regulilor de inferență din sistemul deductiv
pentru BAN (articol D. Monniaux...), pe care îl vom
numi de acum încolo SD-BAN (în slide-urile care
urmează după exemplu).
LOGICI DE ÎNCREDERE – 10
-Exemplu de derivare BAN
LOGICI DE ÎNCREDERE - 11 • Pe scurt, axiomele (=formule BAN) şi regulile de inferenţă (=liste de
formule BAN: ipoteze + concluzie) ale SD-BAN arată după cum urmează
(este furnizată și câte o descriere intuitivă a semanticii/semnificației lor;
există și niște comentarii „de ajutor”; poate, și numele lor mnemonic):
Axiome
• 1A. P crede X (P| X): agentul P se comportă ca şi cum ar şti că mesajul
X este „adevărat” (adică provine de unde/de la cine trebuie) şi garantează
pentru X (chiar dacă este prezent şi în alte mesaje)
• 2A. P are jurisdicţie asupra lui X (P | X): părerea lui P despre
(adevărul lui) X trebuie tratată cu încredere/crezută (should be trusted); de
exemplu, distribuţia cheilor făcute de către servere trebuie crezută
• 3A. P spune X (P |X): la un anumit moment dat (în trecut), P a transmis
(şi a crezut) X, deşi (în prezent) se poate ca P să nu (mai) creadă X;
practic, nu se ştie dacă mesajul a fost trimis cu mult timp în urmă
(eventual, chiar în altă sesiune), sau în cursul acestei sesiuni de
comunicare; mai corect (intuitiv) ar fi (poate...) a spus în loc de spune
• 4A. P vede X (P X): P primeşte mesajul X, îl poate „citi” şi îl poate
retransmite
LOGICI DE ÎNCREDERE - 12 • 5A. {X}K: mesajul X este criptat cu cheia K; în logica BAN se pot cripta şi
credinţele (beliefs) „adiacente” unei formule (vezi și 1A.)
-Mesajele pot fi privite prin prisma înţelesului lor; prin urmare, un mesaj Kpq
care „transportă” o cheie creată spre a fi folosită pentru comunicarea între
P şi Q, va fi reprezentat în această logică prin P↔Q (↔ are de obicei pe
Kpq deasupra, sau ca indice inferior, dreapta jos)
-Deoarece orice cheie este la rândul ei criptată într-un mod în care să nu
poată fi divulgată vreunui intrus (respectiv, „găsită” de către acesta),
mesajul transmis va fi criptat sub forma {Kpq}Kqs (de exemplu); formula
corespunzătoare va fi astfel {P↔Q}Kqs (din nou, ↔ având Kpq deasupra,
sau indice dreapta jos)
• 6A. nou(X) (#X): X nu a mai fost trimis anterior în sesiunea curentă; acest
lucru este în special valabil pentru nonces
-#X va fi folosit practic ca o alternativă pentru P |X în scopul de a stabili
faptul că un mesaj provenind de la P se referă într-adevăr la sesiunea
curentă, nefiind un mesaj mai vechi, memorat, pe care un intrus l-a folosit
(poate) într-un „replay attack”
LOGICI DE ÎNCREDERE - 13 • 7A. cheie(K, P↔Q) (sau, știm asta, P↔Q cu K deasupra
sau indice...): P şi Q pot comunica folosind cheia comună (shared) K; mai mult, cheia K se consideră a fi bună, în sensul că nu va fi vreodată cunoscută/descoperită de către alt agent înafara lui P, Q, sau a altuia în care aceștia cred (beliefs, beliefs...)
-Să remarcăm faptul că aici am aplicat pentru prima oară și presupunerea că secretele sunt protejate în mod implicit, în MDY; operatorul este și comutativ: dacă P↔Q (cu K deasupra, sau...) atunci, implicit, Q↔P şi reciproc
• 8A. P are (deține) o cheie publică K (׀→ P, cu K/+K/-K deasupra, sau...)
-Presupunem, iarăşi implicit, că această cheie nu va putea niciodată fi descoperită de către niciun agent, cu excepţia lui P (sau a altuia în care P are încredere; din nou, beliefs, beliefs…)
LOGICI DE ÎNCREDERE - 14 Reguli de inferenţă (postulate)
• Vom folosi formele de reprezentare ale acestora deja
(re)amintite (o regulă r se va scrie textual sub forma
< <{G1, G2, … , Gn}, G>, c>; sau în varianta „fracție”:
„sus – premizele, jos – ipotezele” şi între ele bara orizontală);
dar şi în altă variantă textuală, folosită mai jos și mai ușor de
redactat („Dacă...premize, atunci...concluzie”)
• Începem cu:
• 1I. Dacă (P crede cheie(K, P↔Q)) şi P vede {X}K, atunci P
crede (Q spune X), pentru fiecare K; clar, putem avea și S în
loc de P sau Q (ca și mai înainte...)
-Ideea din spatele acestei reguli este aceea că dacă o cheie K
este shared între doi agenţi P şi Q şi este menţinută secretă,
dacă P vede un mesaj criptat cu K atunci el poate (cu
siguranță...) crede că acesta provine de la Q
LOGICI DE ÎNCREDERE - 15 -O presupunere (suplimentară) implicită (uşor de a fi
trecută cu vederea) este aceea că mesajul nu trebuie
neapărat să fie trimis de către P; Burrows, Abadi şi
Needham justifică acest lucru explicând că „{X}K” este
de fapt o prescurtare pentru „{X}K de la P”, ceea ce
înseamnă că criptarea a fost făcută chiar de către P
-Se mai presupune şi că fiecare agent îşi poate
recunoaşte mesajele criptate de către el însuşi şi astfel
le poate chiar ignora dacă dorește
-Regula (numită și MM1 – Message Meaning rule number
1) poate atunci fi „redată” prin (în general, regulile de
tip message meaning privesc interpretarea mesajelor
autentificate printr-o criptare care utilizează chei private
sau shared):
LOGICI DE ÎNCREDERE - 16 • 1I’. Dacă (P crede (cheie(K, P↔Q))) şi (P vede
{X}K, provenienţa nefiind de la P), atunci P crede
(Q spune X)
-Aceasta reprezintă ceva uneasy (computațional); în
logica GNY se va introduce simbolul „*” pentru a se
specifica explicit faptul că un lucru „nu își are
originea în acel loc”, ceea ce ar face ca
presupunerea anterioară să devină internă logicii şi
regula, aici, să arate sub forma (numită şi (MM2)):
• 1I’’. Dacă P crede ( I→ Q (cu +K deasupra, sau
indice...)) şi P vede {X}-K, atunci P crede
(Q spune X)
LOGICI DE ÎNCREDERE - 17
• 2I. Dacă P crede (Q spune X) şi P crede (nou(X)), atunci
P crede (Q crede X)
-Această regulă, notată şi cu (NV) (Nonce Verification sau (FR), the Freshness Rule, vezi în continuare), exprimă faptul că s-a verificat că un mesaj este recent (el a fost emis în cursul sesiunii curente) şi astfel emitentul crede încă în el; ea este astfel introdusă pentru a preveni acele replay attacks
• Observaţie. Pentru aceste prime reguli de inferenţă ar trebui precizat (din nou) că este valabilă condiţia locală de aplicabilitate (așa e și ce am subliniat pe slide-ul anterior) exprimată prin:
c1: P crede (nou(X))
• Desigur că dacă X nu este recunoscut ca fiind proaspăt,
s-ar putea să fie un mesaj vechi (depăşit şi, posibil, înlocuit deja de către un potenţial atacator)
LOGICI DE ÎNCREDERE - 18 • 3I. Dacă P crede (Q are Jurisdicţie asupra lui X) şi P
crede (Q crede X), atunci P crede X
-Această regulă (notată şi (J)) „spune” că dacă P
crede că Q are jurisdicţie asupra lui X, atunci P va
crede Q pe baza faptului că X este adevărat
• 4I. Dacă P crede (Q spune <X, Y>), atunci
((P crede (Q spune X)) şi (P crede (Q spune Y)))
-Această regulă (ar fi de fapt două, având aceeași
ipoteză) este numită și (SG: Sees Group); ideea
este că dacă un agent a spus ceva despre o
mulţime (group) de mesaje, atunci a spus acel ceva
despre fiecare element din grup
• Mai introducem şi:
LOGICI DE ÎNCREDERE - 19 • 5I. Deloc surprinzător, stipulăm că un agent va crede o
mulţime de mesaje, chiar afirmațiile/formulele eventual asociate, ddacă va crede fiecare element al mulţimii; reamintim faptul că perechile, adică împerecherea privită ca operator - e vorba despre concatenare în acest context - este asociativă şi comutativă; furnizăm 3 variante (X, Y, P sunt oarecare; BE provine de la BElief):
• 5Ia. (BE1) Dacă (P crede X) şi (P crede Y), atunci
(P crede <X, Y>)
• 5Ib. (BE2) Dacă P crede <X, Y>, atunci (P crede X) şi (P crede Y) (ar fi și aici două reguli...)
• 5Ic. (BE3) Dacă P crede (Q crede <X, Y>), atunci (P crede (Q crede X)) şi (P crede (Q crede Y)) (două...)
• Similar, introducem şi:
LOGICI DE ÎNCREDERE - 20 • 5Id. (BE4) Dacă (P crede (Q crede X)) şi
(P crede (Q crede Y)), atunci P crede (Q crede <X, Y>)
• 6I. Dacă un agent vede o formulă, atunci el va putea vedea şi
componentele (subformulele) acesteia, dacă presupunem că
agentul cunoaşte cheile necesare (SP provine de la Sees
Part):
• 6Ia. (SP1) Dacă (P vede <X, Y>), atunci (P vede X)
şi (P vede Y) (două...)
• 6Ib. (SP2) Dacă (P vede {X}K ) şi (P crede (cheie(K, P↔Q))),
atunci (P vede X)
-Să punctăm faptul că ipoteza din ultima regulă este de fapt „P
crede (cheie(K, P↔Q))” şi nu „P vede K” (lucru care ar părea
totuși destul de…logic); de fapt, regula precedentă ar putea fi
înlocuită de către perechea de reguli:
LOGICI DE ÎNCREDERE - 21 • 6Ib’. (SP2’) Dacă (P vede {X}K ) şi (P vede K), atunci P vede X
• 6Ib’’. (SP2’’) Dacă P crede (cheie(K, P↔Q)), atunci
P vede K
• 7I. Dacă o parte (subformulă) a unei formule este cunoscută a fi
nouă, atunci întreaga formulă trebuie să fie nouă; mai exact, avem:
• 7Ia. (FR1) Dacă P crede (X este proaspăt), atunci
P crede (<X, Y> este proaspăt), indiferent de cine este Y
• 7Ib. (FR2) Dacă P crede (X este proaspăt), atunci P crede
({X}K este proaspăt)
• Observaţie. Există o regulă unanim acceptată de către cei care
lucrează cu public-key criptosystems, şi anume faptul că mesajele
criptate cu ajutorul cheilor publice pot fi decriptate doar folosind
cheile private:
LOGICI DE ÎNCREDERE - 22 • 8I. (SP3) Dacă (P vede {X}+K ) şi
(P crede (I→ P, cu +K deasupra...)), atunci
P vede X
-Să subliniem faptul că această regulă presupune și că
dacă K/+K reprezintă cheia publică, atunci P va deţine şi
cheia privată corespunzătoare
• Următoarea regulă este opţională și exprimă faptul că
pentru anumite criptosisteme cu cheie publică (cum ar fi
RSA), este posibil ca oricine deţine cheia publică să
poată descifra orice mesaj criptat cu o cheie privată
• 9I. (SP4) Dacă (P vede {X}-K ) şi
(P crede (I→ Q, (cu +K deasupra...))), atunci
P vede X
LOGICI DE ÎNCREDERE - 23 • În sfârşit, reamintim regula (SG) (numită/notată
aici 10I):
• 10I. (SG) Dacă un principal a spus „un
grup/mulțime de lucruri”, atunci el le-a spus
separat pe fiecare (reciproca nu este adevărată
deoarece ar implica faptul că principalul spune
mereu toate lucrurile în acelaşi moment de timp),
adică (nu uităm nici de comutativitate...):
Dacă P crede (Q spune <X, Y>) atunci (P crede
(Q spune X))
LOGICI DE ÎNCREDERE - 24 • Trebuie să repunctăm faptul că logica BAN a fost creată în primul
rând cu scopul de a fi o variantă viabilă pentru „o logică adaptată
unor cerinţe particulare de comunicare între agenți, în medii
internautice” (gen PK, KL, KBL – incomplete însă formal, în ce
privește modelarea adecvată a realității)
• S-a văzut că dacă încercăm să aplicăm asemenea tehnici la niște
protocoale particulare, trebuie neapărat să introducem construcţii
adiţionale; folosirea procedurilor de decizie automate este astfel
inevitabilă (lipsește și semantica formală) și poate fi folositoare și
pentru depistarea axiomelor şi regulilor de inferenţă care, eventual,
lipsesc
• Utilizând notaţiile bazate pe sistemele deductive, putem formaliza
corespunzător orice autentificare a unui protocol; mai mult, putem
demonstra că anumiţi agenţi (cred că) pot comunica (în siguranţă)
folosind nişte chei corespunzătoare
• Dacă demonstraţia eşuează, ar trebui să tragem concluzia că
a existat un atac care a compromis protocolul de comunicare
LOGICI DE ÎNCREDERE - 25 • Și pentru reprezetarea demostraţiilor vom folosi metoda textuală
utilizată pentru reguli (şi/sau cea cu arbori); ca o variantă, acolo
unde nu există posibilitate de confuzie, vom folosi și notaţia
prescurtată a unui arbore, în care se indică doar ultima regulă de
inferenţă folosită dar ataşâdu-li-se premizelor şi o
codificare/adnotare a subarborilor ale căror rădăcini sunt
• Desigur că şi o regulă de inferenţă poate fi privită ca un caz
particular de demonstraţie (arbore), astfel încât putem adnota şi o
regulă; o asemenea adnotare poate fi complet generică (de
exemplu „α” pentru un subarbore oarecare) sau având o conotaţie
de mnemonic (cum ar fi „p” pentru o regulă pricipală sau „a” pentru
o regulă auxiliară)
• Observaţie. Pentru postulatele prezentate mai sus, putem adnota
premizele (ne va ajuta la construcţia mai simplă a unor
demonstraţii, vezi GNY) respectiv cu: p1 şi p2 în (MM1) şi (MM2),
a şi p în (NV), p şi a în (J), p în (BE2), (BE3), (SG) şi (SP1), p1 şi
p2 în (SP2), p şi a în (SP1’), p în (SP2’), p şi a în (SP3) şi (SP4).
LOGICI DE ÎNCREDERE - 26 Concluzionând:
• Pentru logicile de încredere (BAN, pentru moment) dispunem de un sistem deductiv, fără a dispune de o teorie logică aferentă (adevăr, semantică formală...) și, evident, nici de o teoremă de corectitudine și completitudine
• Complicând teoria am putea introduce variabile multisortate (cu domenii corespunzătoare...) şi putem considera o stare ca fiind construită în accepțiunea clasică a structurilor Kripke modale (PK, KL, KBL și...mai mult...)
• Am putut interpreta operatori ca box şi diamond în sistemele multiagent:
agentul_Q_ştie_sigur_că /
din_ceea_ce_ştie_agentul_Q, etc.
• Punctăm iar că partea dificilă o reprezintă stabilirea unei diferenţe măsurabile dintre Knoledge şi Belief (alternativa: aproximare...)
• Nu am putut defini, în sensul (e.g.) logicilor epistemice modale (bazate pe, e.g., structuri Kripke), decât parțial, noţiuni ca adevăr şi model (satisfiabilitate, validitate, etc.); rezultă – BAN și...
LOGICI DE ÎNCREDERE - 27 • Se poate deci „lucra” la modalitatea și consecinţele
introducerii de elemente noi într-o structură Kripke
modală; după cum am mai spus, să definim de
exemplu o distanţă (în sens topologic!) formală între K
şi B şi – nu în ultimul rând – de a folosi (poate...) logici
probabilistice, fuzzy, genetice, cuantice, string-based,
etc., combinate (eventual) cu nişte (alte) logici
neclasice (modale, epistemice...) utilizate deja în
practică pentru sistemele multiagent și (separat sau
împreună!) „BAN-like”...
• Să nu uităm totuși că: Întregul poate fi „bun”, deşi
componentele pot fi „proaste” (și invers!)
• Vom continua cu două exemple comentate mai în
detaliu („originate” în „munca” lui D. Monniaux)
EXEMPLE: DERIVĂRI ÎN BAN - 1 Exemplul 1. Analiza bazată pe logica BAN a protocolului WIDE MOUTH(ED) FROG
• Acesta a fost propus în 1990 de către Burrows, Abadi, Needham ca exemplu pentru
necesitatea introducerii BAN (personal, nu cunosc originea acestui nume curios, dar
sunt destule glume pe net...); notația pe scurt: (WMF)
• Este un protocol de autentificare în rețele, permițând entităților implicate în comunicare
să-și dovedească propria identitate, evitându-se, în același timp (pe cât posibil),
interceptarea mesajelor și atacurile prin replicare
• Acest protocol – considerat a fi foarte simplu, chiar didactic – presupune
prezenţa a doar doi agenţi/participanţi, să-i notăm (obișnuit) cu A şi B; ei doresc
să aibă o comunicare secure, pe parcursul unei perioade fixate de timp (sesiuni),
utilizând un server de autentificare trusted, S, şi folosind „synchronized clocks
all around” (t, mai jos) = SPECIFICAREA (BRUTĂ A) PROTOCOLULUI
• Protocolul se furnizează (obișnuit) ca o listă de tranzacții + niște cerințe, care devin
formule BAN care adnotează tranzacțiile, sau chiar le reprezintă TOTAL în BAN
• Pornind cu aceste axiome suplimentare pentru SD-BAN (rezultă, să zicem, SD-BAN+),
vom dori să demonstrăm formal, de exemplu, că protocolul funcționează corect
(alternativ, satisface specificația brută) folosind logica BAN, sistemul SD-BAN+
• Prezentăm întâi protocolul și cerințele suplimentare, inclusiv pe cele considerate a fi
satisfăcute în mod implicit (cum ar fi faptul că pentru mesajele schimbate între
participanți este folosită o anumită formă de criptare/autentificare, cunoscută aprioric)
EXEMPLE: DERIVĂRI ÎN BAN - 2 • Se presupune, de exemplu, că A nu știe cu siguranță că B chiar există, sau dacă
acesta este mereu disponibil; comunicarea ar putea fi deci oprită (periodic, în timp) și
S trebuie să se „descurce” în aceste cazuri (deși generează doar Kbs nu și celelate
chei)
• Mai jos, TA și TS sunt timestamps („mărci ale orei reale”, emise la momentul primei
trimiteri a mesajului)
• Cheile sunt chei simetrice (partajate), Kas fiind cunoscută doar de A și S (similar, Kbs)
• Cheia Kab (cheia de sesiune, partajată între A și B), este generată (ca și Kas de
altfel), și complet determinată de „competentul” A, care o poate (re)folosi pentru
criptarea altor mesaje, atâta timp cât nu se schimbă mărcile de oră
• Folosind o notaţie standard, protocolul poate fi prezentat inițial prin următoarele două
tranzacții (prima „spune” că A îi trimite lui S mesajul A, {TA, Kab, B}Kas, etc....):
1Ex1. A → S: A, {TA, Kab, B}Kas
2Ex1. S → B: {TS, Kab, A}Kbs
• Începând formalizarea în BAN, putem deja presupune că sunt „adevărate”
afirmațiile/formulele
(P – de la Presupunere; similar, mai jos, D – de la Deducție):
1PEx1. A crede (cheie(Kas, A ↔ S))
2PEx1. S crede (cheie(Kas, A ↔ S))
3PEx1. B crede (cheie(Kbs, B ↔ S))
EXEMPLE: DERIVĂRI ÎN BAN - 3 4PEx1. S crede (cheie(Kbs, B ↔ S))
5PEx1. A crede (cheie(Kbs, A ↔ B))
• Mai mult, vom utiliza, de câte ori va fi nevoie, formulele BAN obținute conform
precizării:
• (af1)Fiecare comunicare de tipul P → Q: M (M fiind desigur o listă, adică un
mesaj), va genera o formulă BAN de forma C vede M (C putând fi un
participant la comunicare, dar...și un atacator, câteodată)
• La rândul lui, B este doritor să considere această cheie ca fiind sigură, deoarece
„vine” de la A; acceptăm astfel și „adevărul” formulei:
6PEx1. B crede (A are jurisdicţie asupra lui
cheie(Kab, A ↔ B))
• De asemenea, B doreşte să aibă încredere și în S (anume, acesta ar trebui să
transmită în siguranţă cheile de la/la A), deci vom pune:
7PEx1. B crede (S are jurisdicţie asupra lui
(A crede (cheie(Kab, A ↔ B))))
• Dacă B crede că S crede că A doreşte să utilizeze o cheie specifică pentru a
comunica cu B, atunci B va trebui chiar practic să aibă încredere în S; adică, vom
admite și:
8PEx1. B crede (cheie(Kab, A ↔ B))
EXEMPLE: DERIVĂRI ÎN BAN - 4 • Astfel asigurați, pentru ca protocolul să funcționeze intuitiv
corect, putem presupune că A (își) citeşte ceasul, obţinând timpul
curent, t, şi apoi trimite un mesaj corespunzător lui S; ajungem
astfel la al treilea mesaj care trebuie să facă parte din protocol:
3Ex1. A → S : {t, cheie(Kab, A ↔ B)}Kas
-Mai precis, A îi trimite lui S cheia curentă de comunicare cu B (de
sesiune), aleasă/generată deja, precum şi timpul/ceasul curent,
totul criptat cu cheia sa privată de autentificare pentru server, Kas
• Acum dispunem de suficiente formule suplimentare (chiar prea
multe, pentru că nu le vom folosi probabil pe toate), pentru a
putea începe o demonstrație în SD-BAN+; prin ceea ce urmează,
justificăm de fapt și de ce au fost introduse anumite reguli de
inferență în sistemul deductiv menționat
• Avem astfel Ipotezele S crede (cheie(Kas, A ↔ S)) (2PEx1) şi
S vede {t, cheie(Kab, A ↔ B)}Kas (din 3Ex1 și (af1))
EXEMPLE: DERIVĂRI ÎN BAN - 5 • Folosind (MM1), cu P S, Q A, X {t, cheie(Kab, A ↔ B)}, tragem Concluzia:
1DEx1. S crede (A spune {t, cheie(Kab, A ↔ B)})
• Mai mult, pe X îl putem privi ca fiind format din concatenarea lui Y1 t și
Y2 cheie(Kab, A ↔ B) și atunci, luând 1DEx1 ca Ipoteză în (SG),
cu P S, Q A, deducem:
2DEx1. S crede (A spune t) și
3DEx1. S crede (A spune (cheie(Kab, A ↔ B)))
• Din cauza prezenței lui t, S (și B) nu va crede că mesajul X de-abia primit de la A
a fost preluat/citit de către vreun atacator în trecut; admitem deci fără
demonstrație:
9PEx1a;b;c. S crede (nou(X)); S crede (nou(Y1)); S crede (nou(Y2)); la fel B
• Acum, deoarece S crede (A spune X), din (1DEx1) și S crede (nou(X)), din (9PEx1a), deducem, prin (NV) cu P S, Q A, Concluziile (respectiv):
4DEx1a;b;c. S crede (A crede X); S crede (A crede Y1); S crede (A crede Y2)
• Având informațiile anterioare și ceasurile fiind sincronizate, S va putea trimite lui B
un mesaj conținând timpul t, identitatea lui A și formula A crede Y2; prin urmare,
putem adăuga al patrulea mesaj la protocolul nostru, alături de cele două de la
început și de cel de-al treilea, „găsit” pe parcurs (de unde, B vede {...}, din (af1)):
4Ex1. S → B: {t, A, A crede (cheie(Kab, A ↔ B))}Kbs
EXEMPLE: DERIVĂRI ÎN BAN - 6 • Deoarece mesajul 4Ex1 și este criptat cu cheia Kbs şi, conform 3PEx1,
avem B crede (cheie(Kbs, B ↔ S)), în acest moment deducem că
5DEx1. B crede (S spune ({t, A, A crede (cheie(Kab, A ↔ B))}))
• Mai precis, pentru a trage Concluzia anterioară, am aplicat Ipotezelor 4Ex1 (B vede...) şi 3PEx1 regula (MM1) cu P B, X {t, A, A crede (cheie(Kab, A ↔ B))}
• În acest moment, suntem exact în situația de pe slide-ul anterior, imediat după 1DEx1,
dar cu „B crede...” în loc de „S crede...”, cu „S spune...” în loc de „A spune...” și cu
mesajul {t, A crede (cheie(Kab, A ↔ B))} pe „post” de X (pe A îl putem ignora, neavând
importanță în deducții)
• Repetând pașii (aplicând regulile) făcuți anterior (inclusiv presupunerile relative la
noutate) deducem:
6DEx1. B crede (S crede (A crede (cheie(Kab, A ↔ B))))
• Acum, presupunem implicit (normal, conform primelor ipoteze din enunțul (WMF)) că
B crede (S are jurisdicție asupra lui (cheie(Kab, A ↔ B)), iar din această afirmație și
6DEx1 ca Ipoteze, aplicăm (J) și găsim adevărată:
7DEx1. B crede (A crede (cheie(Kab, A ↔ B)))
• Similar (tot ipoteze (WMF)), B crede (A are jurisdicție asupra lui (cheie(Kab, A ↔ B)), și
folosind această afirmație și 7DEx1, obținem prin (J):
8DEx1. B crede (cheie(Kab, A ↔ B))
EXEMPLE: DERIVĂRI ÎN BAN - 7 • Astfel, B va putea contacta pe A în mod direct și în siguranță, folosind Kab ca pe
o direct session key, reciproc desigur implicit, datorită lui 5PEx1 (Q.E.D.)
• Să pesupunem acum că renunţăm la ipoteza ceasurilor sincronizate
• În acest caz, S va primi mesajul 3Ex1 de la A, {t, cheie(Kab, A ↔ B)}Kas, dar nu mai
poate conchide că t este nou
• S ştie însă că A a trimis cândva acest mesaj (deoarece este criptat cu cheia Kas), dar
nu şi că acesta ar fi un mesaj recent; de aceea S nu poate crede că A doreşte
neapărat să continue să folosească cheia Kab
• Acest lucru (folosirea în viitor a lui Kab) ar putea permite un atac direct asupra
protocolului: un atacator care ar fi în stare să captureze mesajele ar putea „ghici” una
dintre cheile Kab dintr-o sesiune mai veche (deşi acest lucru ar putea dura „mult” timp);
atacatorul ar putea răspunde la vechiul mesaj {t, cheie(Kab, A ↔ B)} prin trimiterea
acestuia lui S; dacă ceasurile nu sunt sincronizate (poate tocmai datorită aceluiaşi
atac), S ar putea crede acest mesaj (practic, vechi!) şi ar putea cere ca B să utilizeze
în continuare cheia veche, deja compromisă
• Prin urmare, ipoteza ceasurilor sincronizate este esențială pentru corectitudinea
protocolului (funcționarea acestuia conform specificației inițiale)
• Putem spune că am terminat o analiză (sumară) a protocolului (WMF) (voi - de
transcris demonstrațiile textuale anterioare, comentate, în arbori de derivare „legați”,
compleți)
EXEMPLE: DERIVĂRI ÎN BAN - 8 • Exemplul 2 (Protocolul Needham-Schroeder în logica
BAN)
• Să ne ocupăm de analiza şi formalizarea (cât se poate, din
punct de vedere semantic) a protocolului cu chei divizate (și
simetrice) Needham-Schroeder, (NSS); acesta este
important în sine, dar şi prin faptul că multe alte protocoale
sunt practic derivate din acesta (cum ar fi Kerberos)
• În plus, acesta are o slăbiciune majoră, care ar putea fi
demonstrată și apoi eliminată, dacă se utilizează un cadru
formal corespunzător
• Vom descrie activitatea protocolului (funcționarea lui) printr-o
secvenţă de afirmaţii/formule BAN (ca și în Exemplul 1)
• Reamintim mai întâi că acceptăm (af1), care poate genera
formule BAN utile, oricând va fi nevoie
EXEMPLE: DERIVĂRI ÎN BAN - 9
• În cele ce urmează, vom și înlătura anumite „indicaţii” din
textele/mesajele din formulele generate, care nu joacă nici un rol în
demonstraţia BAN (cum ar fi, uneori, numele agenţilor) şi vom
înlocui anumite elemente sintactice prin înţelesul lor semantic
(pentru îmbunătățirea transparenței și înțelegerii)
• Spre exemplu, cheia proaspăt generată Kpq, destinată a fi utilizată
pentru comunicarea între P şi Q în sesiunea curentă, va fi
idealizată/precizată prin perechea de formule BAN
cheie(Kpq, P ↔ Q) şi #(cheie(Kpq, P ↔ Q)), care vor fi notate cu
1PEx2a respectiv 1PEx2b (pot fi folosite chiar ca mesaje în
axiome); ele vor fi ipoteze/axiome suplimentare, posibil a fi folosite
într-o derivare (prescurtăm asta prin (af2)); a se revedea și
axiomele 7A și 6A (SD-BAN)
• Reluăm acum mesajele care compun protocolul, deși nu chiar
exact așa cum le știam (O1. – O5.); dar ținând cont (și) de
afirmațiile (af1) și (af2):
EXEMPLE: DERIVĂRI ÎN BAN - 10
• 2Ex2. S → P:
{Np, cheie(Kpq, P ↔ Q),
#(cheie(Kpq, P ↔ Q)),
{cheie(Kpq, P ↔ Q)}Kqs}Kps
• 3Ex2. P → Q:
{ cheie(Kpq, P ↔ Q)}Kqs
• 4Ex2. Q → P:
{Nq, cheie(Kpq, P ↔ Q)}Kpq
EXEMPLE: DERIVĂRI ÎN BAN - 11
• 5Ex2. P → Q: {Nq, cheie(Kpq, P ↔ Q)}Kpq
• Primul mesaj cunoscut (O1.) este omis, deoarece nu contribuie cu nimic
la evidenţierea proprietăţilor logice ale protocolului pe parcursul
demonstrației; astfel, notația 1Ex2 nu va fi deloc atribuită
• Din O2. și O3. sunt omise niște nume de agenți, inutile d.p.d.v.
SD-BAN
• Ar trebui totuşi să nu uităm faptul că Np este creat exact înaintea primului
mesaj trimis şi trebuie considerat ca fiind proaspăt,
deci P crede #(Np), notată 2PEx2, va fi și ea o ipoteză suplimentară
folosibilă într-o derivare
• Ultimele două mesaje apar puțin modificate și simetrice; astfel, în 4Ex2
apare și cheie(Kpq, P ↔ Q) față de O4. (formulă menționată în (af2)), iar
în O5. se folosea Nq – 1 în loc de Nq, apărând în (actualizatul) 5Ex2 și
cheie(Kpq, P ↔ Q)
• În acest mod, cel puțin teoretic, un intrus nu va putea replica lui P
folosind propriul său mesaj (gen 4Ex2)
EXEMPLE: DERIVĂRI ÎN BAN - 12 • Avem nevoie, probabil, și de următoarele presupuneri
suplimentare (formule BAN considerate ca fiind „adevărate”),cu observația că, implicit, agenţii (inclusiv serverul) ştiu cum să comunice folosind criptografia cu chei divizate/simetrice (presupunere folosită și în Exemplul 1):
3PEx2. P crede (cheie(Kps, P ↔ S))
4PEx2. Q crede (cheie(Kqs, Q ↔ S))
5PEx2. S crede (cheie(Kps, P ↔ S))
6PEx2. S crede (cheie(Kqs, Q ↔ S))
7PEx2. S crede (cheie(Kpq, P ↔ Q))
• P şi Q cred astfel că serverul este sigur și va furniza nişte chei proaspete şi corecte; ei vor accepta orice cheie K furnizată de către server; atunci este normal să acceptăm și adevărul formulelor următoare, pentru fiecare K:
8PEx2. P crede (S are jurisdicţie asupra lui cheie(K, P ↔ Q))
9PEx2. P crede (S are jurisdicţie asupra lui #(cheie(K, P ↔ Q)))
10PEx2. Q crede (S are jurisdicţie asupra lui cheie(K, P ↔ Q))
EXEMPLE: DERIVĂRI ÎN BAN - 13 • Repetăm: formulele precizate (1PEx2 – 10PEx2) vor fi
adăugate, ca și până acum, ca nişte (scheme) de
axiome/ipoteze suplimentare (formule „adevărate”),
la SD-BAN
• Singura valoare pentru K (din 8PEx2 – 10PEx2) care va
avea sens pentru a trage anumite concluzii utile legate de
funcționarea/corectitudinea protocolului (NSS), este Kpq;
schemele anterioare ar putea astfel fi înlocuite chiar cu
(lucru nu prea greu în cazul în care s-ar folosi un
demonstrator automat):
11PEx2. P crede (S are jurisdicţie asupra lui cheie(Kpq, P↔Q))
12PEx2. P crede (S are jurisdicţie asupra lui
#(cheie(Kpq, P↔Q)))
13PEx2. Q crede (S are jurisdicţie asupra lui cheie(Kpq, P↔Q))
EXEMPLE: DERIVĂRI ÎN BAN - 14
• În mod cu totul nesurprinzător, fiecare agent va crede
în prospeţimea a ceea ce generează el însuşi (iarăşi,
axiome suplimentare):
14PEx2. P crede (#(Np)) (deja întâlnit, ca 2PEx2)
15PEx2. Q crede (#(Nq))
16PEx2. S crede (#(cheie(Kpq, P ↔ Q)))
• Presupunerea 16PEx2 este utilă în atingerea scopurilor
protocolului reformulat, dar este pusă sub semnul
îndoielii de către anumiți experți; protocolul (NSS) a fost
astfel criticat pentru folosirea acestei
presupuneri,deoarece se pot demonstra și anumite
proprietăți nedorite; autorii lui nici măcar nu au fost
conştienţi că au folosit-o (în mod implicit)
EXEMPLE: DERIVĂRI ÎN BAN - 15 • Având astfel SD-BAN, folosind și (poate nu chiar toate) ipotezele
suplimentare adoptate (SD-BAN+), vom dezvolta un raționament
asupra protocolului (NSS), prin care vom demonstra că acesta
funcționează (parțial) corect (satisface „ceea ce se dorește de la
el”, adică specificațiile)
• În primul rând, P trebuie să se asigure că cheia folosită pentru a
comunica cu Q este proaspătă; trebuie deci să fie posibil să
deducem în SD-BAN+ formula
H1 = P crede #(cheie(Kpq, P ↔ Q))
• Începem demonstrația folosind ca Ipoteze pe (a), „adevărată”
conform 2Ex2 și (af1), și pe (b), „adevărată” conform 3PEx2
(ordinea ipotezelor nu este totuși esențială aici), pentru a obține
(pe slide-ul care urmează) Concluzia (i), folosind (MM1):
(a)P vede {Np, cheie(Kpq, P ↔ Q),
#(cheie(Kpq, P ↔ Q)), {cheie(Kpq, P ↔ Q)}Kqs}Kps
(b)P crede (cheie(Kps, P ↔ S))
EXEMPLE: DERIVĂRI ÎN BAN - 16 (i)P crede (S spune (Np, cheie(Kpq, P ↔ Q),
#(cheie(Kpq, P ↔ Q)), {cheie(Kpq, P ↔ Q)}Kqs))
• Urmărind forma generală a lui (MM1), în care proveniența cheii K poate să nu fie de la P, la aplicarea ei am folosit particularizările:
K Kps, Q S și X = Np, cheie(Kpq, P ↔ Q), #(cheie(Kpq, P ↔ Q)), {cheie(Kpq, P ↔ Q)}Kqs
• Continuăm cu aplicarea lui (SG) (putem spune că se aplică chiar de două ori dacă ținem cont de necesitatea de a și permuta elementele mesajului în cauză pentru a găsi X1 și X2), Ipoteza fiind (i) de mai sus; X este mesajul anterior, dar privit ca fiind format prin concatenare (X = X1, X2) din
X1 = Np, #cheie(Kpq, P ↔ Q) și
X2 = cheie(Kpq, P ↔ Q), {cheie(Kpq, P ↔ Q)}Kqs
• Concluzia, urmărind forma generală (unde X X1, Y X2 și Q S) a regulii (SG), este:
(ii)P crede (S spune (Np, #cheie(Kpq, P ↔ Q)))
• Separat de ceea ce am dedus până acum, aplicăm (FR1) Ipotezei
P crede (#(Np)) („adevărată” conform 2PEx2) pentru a trage Concluzia:
(iii)P crede #(Np, #( cheie(Kpq, P ↔ Q)))
EXEMPLE: DERIVĂRI ÎN BAN - 17
• În forma generală a lui (FR1) am luat X Np și
Y #( cheie(Kpq, P ↔ Q))
• În continuare, (ii) şi (iii), vor constitui alte două Ipoteze, pentru a aplica (NV) şi a găsi:
(iv)P crede (S crede (Np, #(cheie(Kpq, P ↔ Q))))
• Uitându-ne la forma generală a lui (NV), anterior am
folosit-o cu Q S și X Np, #(cheie(Kpq, P ↔ Q))
• Acum luăm (iv) drept Ipoteză și deducem, folosind (BE2), Concluzia (în forma generală a lui (BE2), am luat X Np și
Y #(cheie(Kpq, P ↔ Q))):
(v)P crede (S crede (#(cheie(Kpq, P ↔ Q))))
• În sfârșit, folosim acum Ipoteza („adevărată” din 9PEx2):
(vi)P crede (S are jurisdicție asupra lui #(cheie(K, P ↔ Q)))
care, împreună cu (v) și folosind (J), conduce la Concluzia:
(vii)P crede (#(cheie(K, P ↔ Q))), pentru fiecare K
• Drept urmare, am demonstrat în SD-BAN+ formula pe care ne-am propus-o, și anume H1, care este caz particular pentru (vii) (K Kpq)
EXEMPLE: DERIVĂRI ÎN BAN - 18
• Demonstrația lui H1 v-am dat-o pictorial (adică... arbore)
• Continuăm cu o a doua deducţie posibilă în (NSS) și folosind SD-BAN+; utilizarea lui H1, tocmai demonstrată, devine esențială
• Avem deja următoarele posibile Ipoteze de start, obținute (H1) sau folosite ((a), (b)) în cazul precedent:
(a)P vede
{Np, cheie(Kpq, P ↔ Q),
#(cheie(Kpq, P ↔ Q)),
{cheie(Kpq, P ↔ Q)}Kqs}Kps (2Ex2)
(b)P crede (cheie(Kps, P ↔ S)) (3PEx2)
(c)P crede (#(cheie(Kpq, P ↔ Q))) (H1, adică (vii))
EXEMPLE: DERIVĂRI ÎN BAN - 19 • Vom obține Concluzia (viii) (sau, fosta (i)), prin aplicarea
lui (MM1) Ipotezelor (a) și (b), exact ca în prima
demonstrație:
(viii)P crede
(S spune (Np, cheie(Kpq, P ↔ Q), #(cheie(Kpq, P ↔ Q)),
{cheie(Kpq, P ↔ Q)}Kqs))
• Urmăm în continuare un drum similar cu prima
demonstrație, adică aplicăm întâi (SG), de două ori să
zicem, formulei anterioare ca Ipoteză, deducând
Concluzia (punem, în forma generală a lui (SG), ca înainte, Q S, dar permutăm altfel mesajul
X Np, cheie(Kpq, P ↔ Q),
#(cheie(Kpq, P ↔ Q))), {cheie(Kpq, P ↔ Q)}Kqs):
(ix)P crede (S spune (cheie(Kpq, P ↔ Q)))
EXEMPLE: DERIVĂRI ÎN BAN - 20 • Putem acum deduce Concluzia (x), utilizând (vii) (sau (c), sau H1)
şi (ix) ca Ipoteze (cu Q S, X cheie(Kpq, P ↔ Q)) pentru regula
(NV):
(x)P crede (S crede (cheie(Kpq, P ↔ Q)))
• Vom utiliza apoi (x), drept primă Ipoteză, împreună cu
P crede (S are jurisdicție asupra lui (cheie(K, P ↔ Q))), pentru
fiecare K (aceasta este 8PEx2), pentru a deduce Concluzia
(folosind regula (J)):
(xi)P crede (cheie(Kpq, P ↔ Q)) ( H2), unde S și X sunt ca în pasul
imediat precedent (de făcut voi „poza” cu a doua demonstrație)
• Să notăm faptul că în acest moment, Q nu are nici o posibilitate de a verifica formal că mesajul X ( cheie(Kpq, P ↔ Q)) este proaspăt
• Vom face totuși acest lucru dacă ne folosim de unele dintre
presupunerile suplimentare admise inițial (a se (re)vedea 1PEx2a,
1PEx2b, (af2) și axiomele BAN notate 7A, 6A), adică admitem
„adevărul” formulelor (aici începe a treia demonstrație – voi, „poza”):
EXEMPLE: DERIVĂRI ÎN BAN - 21 (f)Q crede (#(cheie(K, P ↔ Q))), pentru fiecare K, și, evident
(g)Q crede (#(cheie(Kpq, P ↔ Q))) ( H3)
• Apoi, conform 4PEx2, avem:
(d)Q crede (cheie (Kqs, Q S))
• Iar conform 3Ex2 și (af1), avem și:
(e)Q vede (cheie({Kpq, P ↔ Q}Kqs))
• Cu (d) și (e) ca Ipoteze, putem aplica (MM1), în a cărei formă generală punem P Q, Q S, K Kqs și X cheie(Kpq, P ↔ Q)
• Găsim astfel Concluzia:
(xii)Q crede (S spune (cheie(Kpq, P ↔ Q)))
• În continuare, prin regula (NV) (P Q, Q S și X cheie(Kpq, P
↔ Q)) și folosind ca Ipoteze pe (xii) și (g) de mai sus, obținem
Concluzia:
(xiii)Q crede (S crede (cheie(Kpq, P ↔ Q)))
EXEMPLE: DERIVĂRI ÎN BAN - 22 • De asemenea, din 10PEx2, adică
Q crede (S are jurisdicție asupra lui (cheie(K, P ↔ Q))), pentru fiecare K, am găsit 13PEx2 (punând K Kpq), adică
(xiv)Q crede (S are jurisdicție asupra lui (cheie(Kpq, P ↔ Q)))
• În acest moment folosim (xiii) și (xiv) ca Ipoteze pentru (J), găsind
Concluzia:
(xv)Q crede (cheie(Kpq, P ↔ Q)) ( H4)
• În ultimul pas de derivare, de aplicare a lui (J) (forma concretă), am pus iar P Q, Q S și X cheie(Kpq, P ↔ Q), în forma sa
generală
• Uitându-ne la (xiv) și (xv), mai exact, la întreaga demonstrație
prin care am arătat că sunt „adevărate” H1, H2, H3 și H4, putem
spune că P şi Q sunt convinși de faptul că fiecare dintre ei au
primit cu adevărat cheia reală (prin intermediul lui S) şi ambii
pot să o folosească în siguranță (inclusiv pentru orice alt mesaj,
„normal”, transmis de la unul la altul)
EXEMPLE: DERIVĂRI ÎN BAN - 23 • Putem acum arăta chiar mai mult, continuând practic demonstrația
anterioară
• Folosim pentru început Ipotezele
P crede (cheie(Kpq, P ↔ Q)), adică (xi)/H2 și
P vede ({Nq, cheie(Kpq, P ↔ Q)}Kpq ), obținută din 4Ex2 și (af1)
• Aplicăm acestora (MM1), luând în forma generală
K Kpq și X Nq, cheie(Kpq, P ↔ Q); se obține Concluzia:
P crede (Q spune Nq, cheie(Kpq, P ↔ Q)); aceasta devine
Ipoteză pentru (SG) și găsim „adevărată”:
(xvi)P crede (Q spune (cheie(Kpq, P ↔ Q)))
• Acum, folosind formula (xvi) drept o Ipoteză, împreună cu o alta (și anume H1), pentru a aplica regula (NV), cu X cheie(Kpq, P ↔ Q),
găsim Concluzia:
(xvii)P crede (Q crede (cheie(Kpq, P ↔ Q))) ( H5)
EXEMPLE: DERIVĂRI ÎN BAN - 24 • Urmând (aproape) aceeași serie de pași, vom găsi „adevărată” și formula
(xviii)Q crede (P crede (cheie(Kpq, P ↔ Q))) ( H6)
• Mai detaliat, avem succesiv...
• Din Ipoteza Q crede (#(Nq)) (o admitem în mod similar cu formula P
crede (#(Np), care a fost notată 2PEx2 și a fost admisă ca fiind
„adevărată” deoarece Np este generat de P, înaintea oricărui mesaj trimis de acesta), aplicând (FR1), cu Y cheie(Kpq, P ↔ Q), deducem
Concluzia:
(xix)Q crede (#Nq, cheie(Kpq, P ↔ Q))
• Folosim acum Ipotezele (xv)/H4 şi
Q vede ({Nq, cheie(Kpq, P ↔ Q)}Kpq) (obținută direct din 4Ex2 și (af1)), aplicăm (MM1), cu K Kp, P și Q schimbați între ei (ceea ce aici este
posibil, lucru neadevărat în general deoarece comutativitatea între parteneri nu este mereu permisă), X Nq, cheie(Kpq, P ↔ Q),
deducând:
(xx)Q crede (P spune Nq, cheie(Kpq, P ↔ Q))
EXEMPLE: DERIVĂRI ÎN BAN - 25
• În acest moment, folosind (xx) şi (xix) ca Ipoteze pentru regula
(NV) și punând în forma generală X Nq, cheie(Kpq, P ↔ Q),
din nou cu P și Q schimbați unul cu celălalt, obținem
Concluzia:
(xxi)Q crede (P crede Nq, cheie(Kpq, P ↔ Q))
• În sfârşit, utilizând (xxi) ca Ipoteză pentru (BE3) în care luăm
X Nq, Y cheie(Kpq, P ↔ Q), cu P și Q interschimbați, găsim
exact ceea ce am dorit, adică H6 (aici se termină a 3-a derivare)
• Acest lucru indică și mai pregnant (după cum precizasem),
faptul că fiecare dintre principalii P şi Q crede în celălalt, cel
puţin prin aceea că împart în siguranţă o cheie secretă divizată
Kpq, cu ajutorul căreia pot comunica pe parcursul întregii
sesiuni
• Voi - „poza” (arborele) pentru întreaga demonstrație (reamintim că
o aveți doar pe cea care descrie obținerea lui H1)
EXEMPLE: DERIVĂRI ÎN BAN - 26 • Să ne indicăm şi câteva „slăbiciuni” ale acestui protocol;
presupunerea că Q crede (#(cheie(K, P ↔ Q))) (pentru
fiecare K), folosită anterior, semnifică faptul că Q va admite o
propunere de a crede într-o cheie Kpq fără a fi capabil să
verifice cumva faptul că această cheie este și „potrivită”
(nouă) pentru sesiunea în curs
• De fapt, să presupunem că un intrus C a „vizualizat” şi
memorat (e.g., de pe net...) o sesiune (anterioară) în care
erau implicaţi P şi Q; asta înseamnă că el a memorat, de
exemplu, un mesaj real {Kpq, P}Kqs; să presupunem
suplimentar că intrusul a făcut cumva astfel încât să
cunoască cheia Kpq; în acest moment, acesta poate
„depersonaliza” pe P, cu scopul de a iniţia o comunicare cu
Q, folosind informaţia memorată și (NSS)
EXEMPLE: DERIVĂRI ÎN BAN - 27
Adică, se vor lansa mesajele:
• (a)C Q : {Kpq, P}Kqs
• (b)Q C: {Nq}Kpq
• (c)C Q : {Nq - 1}Kpq
• În acest moment Q va crede că poate comunica
cu P folosind cheia de sesiune (secretă) Kpq, și va
începe de fapt o comunicare cu intrusul, crezând
sincer că el este P
• Cu alte cuvinte: dacă o „cheie de sesiune” a
fost compromisă, toate sesiunile ulterioare
pot fi compromise
EXEMPLE: DERIVĂRI ÎN BAN - 28 • Acest fapt contrazice puternic una dintre motivaţiile principale care
promovează utilizarea cheilor de sesiune, care spune că trebuie să
limităm expunerea mesajelor, gândindu-ne atât la perioada de timp
cât şi la volumul de informaţie transmis, în cazul în care cheia de
sesiune este compromisă
• Denning şi Sacco punctează faptul că o compromitere a unei chei de
sesiune poate avea consecinţe nefaste: un intrus are timp „nelimitat”
pentru a regăsi o o cheie folosită într-o sesiune anterioară, pentru ca apoi
să o folosească ca şi cum ar fi proaspătă (1981)
• Bauer, Berson şi Feiertag punctează la rândul lor faptul că există în
realitate consecinţe chiar mai dramatice dacă, de exemplu, cheia privată
a lui P (cu S) a fost şi ea compromisă: un intrus poate folosi această
cheie pentru a obţine chei de sesiune şi a lua contact acceptat cu mulţi
alţi principali, eventual implicați în comunicare (nu ne-am prea implicat
până acum în problematica comunicării între grupuri...); de asemenea,
în condiţiile menţionate, intrusul poate continua să folosească cheile de
sesiune obţinute chiar şi după ce P şi-a schimbat cheia proprie (1983)
• Folosirea logicii BAN pentru a analiza protocolul (NSS) confirmă
aceste dubii
EXEMPLE: DERIVĂRI ÎN BAN - 29
• Ca o concluzie imediată (rezultată și din exemple), să
menţionăm faptul că logica BAN are cu adevărat succes în
identificarea unor presupuneri, aparent firești, dar care pot
avea efecte nedorite pentru un protocol de securitate, cel
puțin în ceea ce priveşte prospeţimea unui mesaj
• Identificarea acestor presupuneri „nefaste” se face prin
demonstrarea unor afirmații în BAN (SD-BAN; fiecare
SD-BAN+ fiind creat special, practic pentru fiecare
protocol concret în parte)
• Folosind această logică, putem găsi metode specifice de a
răspunde unui replay attack
• Au existat însă și destule critici (e adevărat,
constructive...), soldate cu dezvoltarea unor noi logici de
încredere
EXTENSII BAN – 1 • Logica BAN a fost (destul de) criticată pentru „este o
idealizare”, cumva formalizată (dar nu total) însă „dubioasă” a
modelului Dolev-Yao (acesta fiind deja idealizat față de
realitate): în cadrul ei se fac anumite presupuneri semantice
(reflectate în sintaxă) neadecvate
• Știm deja tratamentul pe care logica BAN îl aplică situaţiilor
în care un principal P trimite un mesaj de răspuns pentru
{M}Kpq, de la Q (unde Kpq este o cheie divizată între P şi Q)
• Atunci P poate crede că acest mesaj provine într-adevăr de
la Q doar dacă P este sigur că acest mesaj nu este un
răspuns al unuia dintre propriile sale mesaje „anterioare”
• Logica GNY este o logică de încredere care rezolvă o
asemenea problemă, precum şi altele nemenţionate încă
(desigur, nefiind nici ea „perfectă”; ce urmează este, în mare,
din articolul lui D. Monniaux: ”Decision Procedures...”)
EXTENSII BAN – 2
• Logica GNY nu necesită anumite presupuneri
„universale” aşa cum face logica BAN; de exemplu,
nu se presupune că redundanţa este întotdeauna
„prinsă” în mesajele criptate încorporate
• În loc de acest lucru, este folosită o nouă noţiune de
„recunoaştere”, prin care se gestionează și alte
concepte privind conţinutul mesajelor
• De asemenea (vezi comentariul anterior), nu se mai
presupune că un principal (agent) poate întotdeauna
determina dacă un mesaj a fost sau nu transmis
vreodată (în trecut desigur; eventual, în altă sesiune)
de către el însuşi
EXTENSII BAN – 3 • Logica GNY separă, de asemenea, pentru un principal,
ceea ce spune/said, de ceea ce crede/posedă (has)
• Să precizăm încă o dată faptul că există şi alte extensii
BAN, care tind să facă lucruri similare, sau chiar mai
complexe și (desigur) de dorit, dar pe care nu avem
timp să le discutăm pe larg (deși, poate, le-am amintit
la început)
• Să începem cu un exemplu
• Fie protocolul didactic dat prin:
(a)A B : Na
(b)B A : {Na}-Kb
(c)A B : {Kab}+Kb
EXTENSII BAN – 4 • Acest protocol trebuie înţeles astfel: în pasul (a), A trimite
către B un număr (nou) generat aleator, Na; B răspunde
apoi cu cheia de (de)criptare a lui Na, prin cheia sa
privată -Kb; A răspunde prin criptarea unei (noi) chei
destinate sesiunii curente, noi (adică Kab), folosind cheia
publică a lui B (+Kb)
• Pentru a ilustra modul în care funcţionează aici sistemul
deductiv al logicilor de încredere vom prezenta mai întâi
o versiune idealizată (în GNY) a protocolului precedent
(transformarea tranzacțiilor în formule, cu ajutorul simbolului „ ”, a mai fost folosită de noi):
(a’)B Na
(b’)A {Na}-Kb
(c’)B ({Kab}+Kb cheie(Kab, A↔B))
EXTENSII BAN – 5
• „Steluţa” () semnifică faptul că ceea ce urmează nu
provine de la entitatea care a primit mesajul (am mai
amintit despre asta...)
• Ceea ce urmează după „săgeata tremurată” ()
reprezintă o adnotare/formulă GNY care sugerează
faptul că Kab este destinată a fi o cheie partajată secretă
(desigur, pentru comunicarea dintre A şi B)
• Vom mai avea nevoie și de nişte presupuneri semantice
suplimentare, care se vor descrie astfel în GNY:
(i) A +Kb (A posedă/are/deține cheia publică +Kb)
(ii) A ⫢ ׀→ B, cu + Kb deasupra lui ׀→ (A crede că B
are/posedă +Kb care este cheia sa publică; sau, A crede
că +Kb este cheia publică a lui B); deci, crede = ⫢
EXTENSII BAN – 6 (iii) A ⫢ Φ(Na) (A crede că Na poate fi recunoscut; adică, dacă
A vede o parte a unui mesaj despre care bănuie că
reprezintă Na, atunci A poate chiar verifica acest lucru)
(iv) A ⫢ #(Na) (A crede că Na este proaspăt, adică Na a fost
folosit pentru prima dată în această sesiune de comunicare
care folosește acest protocol, și nu într-o sesiune
anterioară)
• Desigur că din acest moment se modifică întreg eșafodajul
sintactic construit de noi pentru BAN (operatori, formule
elementare, axiome, reguli de inferenţă, sisteme deductive,
etc.), chiar provenit din cel semantic/intuitiv; dar într-un
mod ușor de reprodus
• Nu vom furniza întreg sistemul deductiv „actualizat”; lista
completă a regulilor este în articolul specificat al lui Gong,
Needham, Yahalom (voi...)
EXTENSII BAN – 7 • Totuși, ca exemplu de derivare în SD-GNY+, demonstrăm formula
A ⫢ (B Na) (voi...arbore...)
• Mai întâi, știm că (uitându-ne la tranzacția (b) al protocolului) A vede
mesajul constând din criptarea lui Na prin cheia privată folosită pentru
cheile private/publice Kb (vorbim de fapt de (b’), ca fiind Ipoteza 1); folosim
și presupunerea (i) (aceea că A posedă cheia publică corespunzătoare);
aceasta va fi Ipoteza 2 (pentru presupusa următoare regulă de aplicat)
• Folosim în continuare şi presupunerea (ii), admițând că B utilizează cheia
privată Kb nu pe cea publică; aceasta este Ipoteza 3
• Folosim și (iii) (sub forma A crede că recunoaşte Na), ca Ipoteza 4
• Având aceste 4 ipoteze, am putea deduce (concluzie a unei reguli) faptul
că A crede că B spune Na; prin urmare, dispunem de o primă regulă de
inferență în SD-GNY+, notată (I4) în articol
• Atunci, folosind presupunerea (iv) (adică A crede că Na este proaspăt),
putem deduce exact formula dorită mai sus (A crede că B deține Na); am
folosit și regula I6 (4 și 6 reprezintă de fapt numărul total de ipoteze folosit
până la acel moment de aplicare)
EXTENSII BAN – 8 • Scopul final al protocolului analizat poate fi acela de a
a-i induce lui B ideea de a crede faptul că A crede că Kab este într-adevăr cheia lor divizată de sesiune (ceea ce se întâmpla în general și până acum, la celelalte protocoale)
• Adică de a demonstra formula GNY
B ⫢ (A ⫢ cheie(Kab, A↔B))
• Oricum, tranzacția/mesajul (c) de mai înainte ar putea fi procesat de către un intrus care are acces la +Kb
• Aceasta este o presupunere realistă, Kb fiind o cheie publică care poate înlocui Kab oricând se doreşte
• Folosind însă metodele logicii formale (SD-uri), nu vom putea deduce că protocolul menţionat va îndeplini acest scop, acest lucru neputând fi dedus printr-o derivare GNY din ipotezele menţionate
EXTENSII BAN – 9
• Arborele corespunzător exemplului anterior (care e o
demonstație textuală) – voi
• Să spunem ceva în plus despre decidabilitate
• Un fapt puţin cunoscut despre logicile de încredere BAN,
GNY, etc. (chiar modale, în general și epistemice, în
particular), este acela că ele sunt (cocepute să fie) decidabile
• Mai exact, să existe un algoritm care, pornind ca intrare cu o
mulţime (finită) de ipoteze (formule suplimentare față de
axiome în SD-ul atașat logicii corespunzătoare) H1, H2, ..., Hn,
precum şi cu o concluzie C, se termină întotdeauna cu
răspunsul DA, dacă C poate fi dedusă (și) din H1, H2, ..., Hn,
folosind regulile de inferenţă considerate din SD-ul
corespunzător, și NU, în caz contrar
• Acest lucru nu este deloc uşor de arătat
LOGICI DE TIP BAN & SD-uri – 1 • Să punctăm astfel că, nu toate logicile de încredere sunt
decidabile (în sensul precizat mai înainte; sau chiar în cel
legat şi de eventuala semantică: existența, sau nu, a unor
teoreme de corectitudine și completitudine – vezi Mas...)
• Mai departe, analiza protocoalelor criptografice în
metamodelul Dolev-Yao (în prezenţa unor ipoteze
suplimentare rezonabile, chiar restrictive), este de asemenea
nedecidabilă dacă se permite existenţa unui număr nelimitat
de sesiuni (chiar dacă mesajele sunt restricţionate la a avea
o „adâncime” mărginită – bounded depth)
• Revenind, există cel puţin două metode generale tradiţionale
pentru a testa dacă o formulă/concluzie F admite o derivare (Γ F) pornind de la o mulţime de ipoteze (axiome
suplimentare) Γ într-un sistem deductiv atașat unei logici de
încredere particulare
LOGICI DE TIP BAN & SD-uri – 2 • (I)Forward chaining: pornind cu ipotezele Γ, se
aplică toate regulile de deducţie posibile pentru a
deriva noi formule, continuându-se cu reuniunea
dintre ipoteze şi noile formule deduse cărora li se
aplică din nou regulile de deducţie, etc., până când
(eventually) se obţine concluzia
• (II)Backward chaining: pornind cu bănuita ţintă F
(purported), trebuie găsite toate regulile (şi toate
instanţierile de variabile prezente în ele), care ar
putea conduce la acea concluzie; apoi, se încearcă,
recursiv (folosind metode de tip backtracking), să se
regăsească ipotezele fiecărei reguli (pentru fiecare
instanţiere)
LOGICI DE TIP BAN & SD-uri – 3
• Există însă două probleme majore privind implementarea
sistemelor deductive prezentate pentru BAN şi GNY
• Întâi, atât metoda forward cât şi cea backward pot să nu se
termine; avem de-a face deci cu metode semidecidabile,
adică cu semialgoritmi
• Apoi, există reguli care nu sunt prea „potrivite” pentru forward
chaining (căutarea înainte), cum ar fi (FR1), instanţiată la
„Dacă P ⫢ #(X), atunci P ⫢ #<X, Y>, pentru fiecare Y” are o
concluzie în care sunt prezente variabile care nu sunt
prezente în ipoteze
• Ar fi astfel imposibil să aplice metoda forward fără a se
introduce variabile care să reprezinte formule necunoscute;
similar, regula (BE2) nu este prea potrivită cu metoda
backward chaining (de căutare înapoi)
LOGICI DE TIP BAN & SD-uri – 4
• Dacă vom încerca să implementăm direct (şi naiv)
regulile BAN/GNY într-un demonstrator automat
(acest lucru s-a şi făcut deja), demonstratorul are
mari şanse să „intre” într-un spaţiu de căutare cu un
număr infinit de stări (posibile demonstraţii) ceea ce
desigur denotă faptul că algoritmul (posibil) nu se va
termina nici măcar atunci când concluzia nu este
demonstrabilă
• Mai mult, chiar în cazurile de terminare timpul de
calcul poate fi prohibitiv (de mare) pentru că
procedura „simplă” va explora numeroase căi
nefolositoare
LOGICI DE TIP BAN & SD-uri – 5 • Abordarea, datorată lui D. Kindred şi J. M. Wing
şi geralizată de D. Monniaux, reprezintă de fapt o
rafinare a unei combinaţii între căutările înainte şi
înapoi (incluzând și folosirea mulțimilor
magice/magic sets)
• Vom prezenta pe scurt această metodă în ceea
ce urmează; metoda analizează în special logica
GNY, dar este suficient de generică pentru a
putea fi aplicată şi altor logici similare
• Ea se bazează pe aplicarea „atentă” a căutării
înainte
LOGICI DE TIP BAN & SD-uri – 6 • Metoda care va fi prezentată (...„pentru cunoscători ”, de fapt...) a
mai fost aplicată pentru variante „echivalente” ale GNY-ului indicat de noi
• Dar, să revenim puţin la logica BAN; vom partiţiona, pentru început, regulile de derivare în două subclase
(I) Reguli de descompunere, în care toate variabilele concluziei se regăsesc în premize (ele sunt folosite în căutarea înainte)
• În cadrul lor, vom distinge între două tipuri de premize: principale (cel puţin una) şi secundare sau auxiliare (opţionale, care pot lipsi); varibilele din premizele auxiliare constituie o submulţime a celor din premizele principale
• Regulile de descompunere vor fi reprezentate sub forma (formele) cunoscute, cu precizarea că premizele vor fi liste ordonate: prima sublistă va fi constituită din cele principale, iar separarea între subliste se face prin (să zicem) „;”
• Alternativ, în cadrul unei demonstraţii prescurtate, premizele principale ar putea fi adnotate cu „p” iar cele auxiliare cu „a” (eventual, cu indici)
LOGICI DE TIP BAN & SD-uri – 7 (II) Reguli de compunere, în care toate variabilele premizelor se
regăsesc în concluzie (ele sunt folosite în căutarea înapoi)
• Intuitiv, regulile de compunere introduc constructori (cum ar fi
împerecherea) iar cele de descompunere „rup” constructorii
(sunt destructori; cum ar fi selectarea primei componente a
unei perechi)
Observaţie. Partiţionarea unei mulţimi de reguli în două
subclase este foarte similară cu cea folosită de „magic
sets”, unde regulile principale sunt denumite growing (în
creștere) iar cele auxiliare shrinking (în scădere).
• Se poate găsi o similaritate puternică şi cu împărţirea regulilor
deducţiei naturale în reguli de introducere şi reguli de
eliminare (vezi mai jos Teorema 1, privind demonstraţiile
normalizate sau,pe scurt, normale)
-Această teoremă este foarte asemănătoare cu teorema de
normalizare (Gentzen Hauptsatz) pentru deducţia naturală
LOGICI DE TIP BAN & SD-uri – 8 • Logica GNY (şi cele similare) îndeplinesc
criteriul demonstraţiei/derivării normale: dacă există o derivare D : Γ F atunci există
şi o derivare normală Γ ’ F
• O derivare se numeşte normală dacă nu
există nicio regulă de compunere care să fie
folosită ca „regulă rădăcină” a subderivării
care generează o premiză principală a unei
reguli de descompunere
• Mai exact, pentru fiecare regulă de
descompunere „d” folosită în D, care are:
LOGICI DE TIP BAN & SD-uri – 9
• Ipoteze principale: P1, P2, …, Pn
• Ipoteze auxiliare: A1, A2, …, Am
• Concluzie: C
• Și unde la deducerea ipotezelor principale s-au
folosit nişte „pre-reguli” r1, r2, …, rn, niciuna dintre
ele nefiind reguli de compoziţie (spunem că este
prezentă o tăietură la „d”)
• Informal, acest lucru ar însemna faptul că ar fi
posibil să deducem orice poate fi demonstrat, fără a
trebui să compunem ceva şi apoi să descompunem
acel ceva
LOGICI DE TIP BAN & SD-uri – 10
• De exemplu, putem avea o derivare
Ipoteze: P X, P Y
Concluzie: P <X, Y>
(cu α ca ramură anterioară pentru deducerea lui
P X şi cu β pentru deducerea lui P Y); se
aplică apoi (BE1) și, folosind ultima concluzie
drept ipoteză şi aplicând (BE2) găsim iar P X
• Cu alte cuvinte, compunând şi decompunând putem
obţine ceva ce se putea găsi direct
LOGICI DE TIP BAN & SD-uri – 11 • Extinzând GNY, putem defini o nouă logică, inițial prin
introducerea unui simbol special numit scop: X va
însemna „dorim să-l compunem pe X”
• Mai mult, internalizăm aceasta în strategia/algoritmul
de decizie permițând aplicarea unei reguli de
compunere doar în cazul în care concluzia ei „se va
compune” (la rândul său)
• Transformarea amintită va transforma o regulă de
compunere
Ipoteze: H1, H2, …, Hn
Concluzie: C
într-o pereche de reguli:
LOGICI DE TIP BAN & SD-uri – 12 1.Ipoteze: C, H1, H2, …, Hn
Concluzie: C
2.Ipoteză: C
Concluzii: H1, H2, …, Hn
• Odată cu acestea, aveam de fapt și regula de
descompunere dată prin:
Ipoteze: P1, P2, …, Pn, A1, A2, … , Am
Concluzie: C
unde n > 0, m ≥ 0 (Pi sunt premize
principale, iar Aj sunt premize auxiliare)
LOGICI DE TIP BAN & SD-uri – 13 • Aceasta va genera şi regula dată prin:
Ipoteze: P1, P2, … , Pn
Concluzii: A1, A2, …, Am
Teorema 1. Pentru fiecare sistem deductiv în care există
posibilitatea de a se efectua transformările anterioare, notat direct prin „” și notând cu „’ ” sistemul obținut
prin efectuarea transformărilor, avem: pentru fiecare mulțime de ipoteze suplimentare Γ avem Γ C ddacă
Γ, C ’ C.
• Să reflectăm puțin asupra procedurii de decizie aplicate
• Începem prin a observa că interesul de a transforma problema iniţială legată de „” într-una legată de „’ “
are o dublă motivaţie:
LOGICI DE TIP BAN & SD-uri – 14 -Toate regulile din „’ “ se „potrivesc” a fi folosite cu
forward-chaining
-Pentru fiecare mulţime finită de ipoteze Γ,
lungimea derivărilor pentru „’ “ pornind cu Γ este
mărginită (superior); acest lucru se poate arăta
dacă introducem o funcţie de măsură/lungime
prin care se atribuie o valoare (număr întreg)
fiecărei formule F (măsura sa va fi notată |F|)
într-un asemenea mod încât lungimea concluziei
unei „’ “-reguli este strict mai mică decât
lungimea maximă totală a premizelor
LOGICI DE TIP BAN & SD-uri – 15
• Acest lucru va însemna că pentru fiecare mulţime finită de
ipoteze Γ, mulţimea concluziilor care pot fi derivate din Γ este
finită şi poate fi complet enumerată prin aplicarea exhaustivă a regulilor din „’ “ (se mai numeşte saturarea ipotezelor prin
sistemul forward-chaining „’ “)
• Procedura de decizie pentru „’ “ devine astfel foarte simplă
(ca enunț general, nu ca implementare!): pentru a testa dacă
Γ ’ F, este suficient să „saturăm” Γ în „’ “ şi apoi să testăm
dacă F aparţine mulţimii de formule generate
• Să notăm că deşi Γ este este utilizată pentru demonstrarea
terminării procesului de saturare, aceste lucru nu implică în mod expres „calculul” efectiv, adică obținerea întregului Γ
• Iată definiţia lui |·| (slide-ul următor va fi numit Tabel 1):
LOGICI DE TIP BAN & SD-uri – 16 • Dacă F = K sau F = P sau F = Np, atunci |F| = 1
• Dacă F = (P ⫢ X) sau F = (X), atunci
|F| = 1 + |X|
• Dacă F = (P X) sau F = cheie(K, P↔Q) sau
F = ׀→ P (cu (+)K deasupra), atunci |F| = 2 + |X|
• Dacă F = {X}K, atunci |F| = 3 + |X| + |K|
• Dacă F = <X, Y>, atunci |F| = 1 + |X| + |Y|
• Dacă F = P | X sau P | X, atunci
|F| = 3 + |X|
• Evident că pentru un mesaj sau o cheie, măsura/
lungimea este dată de numărul de caractere
LOGICI DE TIP BAN & SD-uri – 17
• Folosind Teorema 1, poate fi obţinută cu uşurinţă o procedură de decizie privind „“ (în logica BAN sau,
uşor modificată, în logica GNY)
• Trebuie mare atenţie pentru ca implementarea să
respecte regulile teoretice precizate în procedura de
saturare (mai ales în cazul logicilor mai complexe,
cum ar fi chiar GNY)
• După cum am mai specificat, implementările „naive”
pot genera costuri prohibitive (nu putem pur şi simplu
încerca toate regulile la fiecare pas pentru găsirea
unei derivări; de fapt, problema „alegrii rapide” nu
este caracteristică algoritmului anterior...)
LOGICI DE TIP BAN & SD-uri – 18
• Există numeroase posibilităţi de optimizare, atât
la nivel de teorie cât şi la nivel de practică
• Timpul de implementare poate fi redus, chiar în
cazurile complicate, la nivel de secunde,
implementările bazate pe forward-chaining fiind
mai eficiente (în general; în cazurile „naturale”)
• Reținem și ideea că scopul general al unor
asemenea implementări nu este doar de a
demonstra corectitudinea protocoalelor
utilizând logici specifice, ci şi de a identifica
presupunerile neconvenabile
LOGICI DE TIP BAN & SD-uri – 19 • Spre exemplu, am putea spune că este „mai bine” să
folosim F şi „’ “ decât F şi „“
• A se (re)vedea și articolul de bibliografie („tot” al lui D.
Monniaux) „Analysis of Cryptographic Protocols
using Logics of Belief: an Overview”
• Marea problemă este legată totuși de semantică
• Mai exact, fie o introducem direct în considerații (Mas...), fie este nevoie de un instrument formal suplimentar prin care să fim siguri că utilizăm regulile „potrivite” în derivare
• Astfel, suntem oare siguri că nu deducem (prin derivări,
cu semantica „înglobată” ceva greşit datorită unei
„loophole” („portiță” spre o eroare, datorată unei,
eventuale, ciclări) ?
LOGICI DE TIP BAN & SD-uri – 20
• Vom analiza în viitor legătura
logicilor de încredere cu Isabelle
(într-un mod cât de cât precis)
• Pentru aceasta, vom prezenta pe
scurt în ceea ce urmează
protocolul Needham-Schröder-
Löwe cu chei publice, (NSLP)
LOGICI DE TIP BAN & SD-uri – 21 • Pentru introducerea (NSLP) vom folosi modalitatea
deja cunoscută (sperăm) a listării tranzițiilor absolut
necesare pentru prima comunicare între
agenții/principalii A și B (fără a se folosi vreun server
intermediar și fără a ne interesa conținutul efectiv al
mesajelor care vor constitui ulterior esența
comunicării); nucleul protocolului este, într-o primă
fază:
• T1. A B: {Na, A}Kb
• T2. B A: {Na, Nb}Ka
• T3. A B: {Nb}Kb
• Protocolul a fost introdus sub această formă în 1978,
găsit greșit 20 de ani mai târziu, apoi reparat de Löwe
LOGICI DE TIP BAN & SD-uri – 22
• Protocolul folosește criptografia cu chei publice
• Fiecare „persoană” posedă o cheie privată știută
numai de ea și o cheie publică cunoscută de toată
lumea (sintactic, nu vom face diferențe de scriere între
cheile private și cele publice, cam ca și până acum;
diferența se va face doar în semantică, la nivel intuitiv
deocamdată)
• Dacă persoana A vrea sa îi trimită persoanei B un
mesaj (secret) atunci persoana A criptează mesajul
folosind cheia publică a persoanei B
• Doar persoana B are cheia privată care se potrivește
pentru a decripta mesajul lui A
LOGICI DE TIP BAN & SD-uri – 23 • În prima tranzacție, A îi trimite lui B un mesaj ce conține nonce-ul Na
împreună cu numele lui A (criptate folosind cheia publică a lui B (Kb)
• În a doua, B îi trimite lui A un mesaj constând atât din Na cât și din Nb și
criptat folosind cheia publică a lui A (Ka)
• În ultima tranzacție, A returnează Nb lui B (criptat cu cheia lui B)
• Când A recepționează mesajul al doilea, ea știe că B a primit mesajul ei,
deoarece doar el ar fi putut decripta {Na, A}Kb și „extrage” apoi Na (indici...)
• La fel, în cazul celui de-al treilea mesaj, B știe că A este cu adevărat
persoana activă, cu care comunică în sesiune
• Despre acest protocol de credea inițial că poate fi presupus a satisface
implicit proprietatea că Na și Nb sunt (secrete) cunoscute doar de către A
si B
• Această proprietate se „traducea” apoi explicit și în logica de încredere
aleasă (împreună cu tranzacțiile T1. – T3., în modul cunoscut) și se
folosea în demonstrațiile de corectitudine ale protocolului
LOGICI DE TIP BAN & SD-uri – 24 • Löwe a arătat că acest lucru este fals, sugerând un
replay attack de genul: dacă A „rulează” protocolul și
cu C, atunci C poate să înceapă o nouă rulare a
protocului cu B (C dându-se drept A)
• În final, B va crede că a rulat protocolul cu A, fără a ști
că C cunoștea Na și Nb și a folosit acest lucru pentru a
se substitui lui A (nu insistăm...)
• Corecția propusă de Löwe și demonstrată apoi a fi
viabilă, a fost de a introduce și numele lui B în mesajul
(trimis de B lui A) din tranzacția a doua, aceasta
devenind:
• T2’. B A: {Na, Nb, B}Ka
LOGICI DE TIP BAN & SD-uri – 25 • Astfel, nucleul protocolului (NSLP) va fi format în
continuare din:
T1’. A B: {Na, A}Kb
T2’. B A: {Na, Nb, B}Ka
T3’. A B: {Nb}Kb
• Ar urma acum transcrierea tranzacțiilor și ipotezelor
suplimentare în BAN/GNY/etc. și apoi retranscrierea
lor și a regulilor de inferență în Isabelle
• Isabelle este însă un demonstrator automat folosit în
cazuri reale și având un limbaj propriu de specificare a
formulelor (ipoteze, concluzii, reguli, ș.a.m.d.)
implicate într-o demonstrație (revenim, la „seminar”)
LOGICI DE TIP BAN & SD-uri – 26 • Totuși, să menționăm că procedeul prin care va trebui să
ajungem să ne plasăm „mai aproape de realitate”, adică mai
aproape de cadrul formal de scriere a specificațiilor pentru
Isabelle constă din executarea succesivă a următoarelor
activități
• Trebuie început prin a cunoaște detaliat acest cadru formal,
care este în esență un limbaj de programare concret, de tip
programare funcțională (ca exprimare; e combinată totuși
cu programarea logică și cea bazată pe reguli; desigur, și
pe cea imperativă clasică...)
• Apoi ar trebui căpătată abilitatea de a exprima corect în
acest cadru toate conceptele legate de mediul internautic,
protocoale de comunicare, securitate, atacuri, vulnerabilități,
etc. (măcar cele care ne sunt absolut necesare la un
moment dat)
LOGICI DE TIP BAN & SD-uri – 27 • Exprimarea într-un asemenea limbaj poate fi făcută la
diverse nivele de detaliere/abstractizare: de pildă, un
nonce se reprezintă pe 20 de octeți, că o cheie de
criptare este un simplu număr natural, că o cheie
publică se poate mapa într-o cheie privată și reciproc,
că un text criptat poate fi decriptat folosind doar o
singură cheie și producând un text simplu, etc.
• Dar am putea (la modul ideal) traduce/reprezenta în
acel cadru formal și protocolul în sine, semantica sa
operațională (măcar), atacatorii și comportamentul
acestora, comportamentul sistemului în ansamblu
(rezultat în urma apariției unor evenimente, ca rezultat
al efectuării anumitor acțiuni de către participanții la
comunicare, fie ei doriți sau nu...)
LOGICI DE TIP BAN & SD-uri – 28 • Repetăm că, în ceea ce privește proprietățile
protocoalelor, se pot demonstra în logicile de
încredere (și nu numai...) lucruri „mai simple”
(legate,de exemplu, de încredere) sau „mai complexe”
(legate, să zicem, de secretizare, autentificare,
comunicarea sigură în grupuri, efectul pierderii cheilor,
etc.)
• Ceea ce se demonstrează depinde nu doar de
abilitățile personale necesare (amintite) ci și de
înțelegerea profundă a mediului formal implementat,
precum și de posibilitatea de a-l extinde (desigur, când
este cazul); aici vorbim e.g. despre teoria (axiomatică
a) mulțimilor, demonstrații prin inducție bazată pe
reguli, specificare formală și paradigme de programare
REMEMBER - 1 • Un protocol de securitate este o secvență (finită) de mesaje
text (sau tranzacții/șabloane de comunicare), reprezentând
comunicarea între două entități (fiecare instanțiere este privită
ca o sesiune de comunicare distinctă de altele posibile), în
mediu internautic (MAS), având emițătorul (U) și receptorul (V)
precizați în mod explicit:
U V: text (U îi transmite lui/trimite lui V informația/datele precizate
în text)
• Porțiunile distincte de text sunt separate prin virgulă, iar aceste
porțiuni individualizate pot reprezenta texte reale (sau chiar
obiecte mai complexe), dar și diverse prescurtări, extensii,
mnemonice, codificări, criptări, etc. ale acestora
• Ca (sub)porțiuni de text, putem identifica:
-(grupuri de) agenți (participanți la comunicare; mai sunt numiți și
principali, servere (de obicei, trusted, în care orice participant se
poate încrede), mașini, dispozitive)
REMEMBER - 2 -chei de criptare/decriptare (simetrice, în general); divizate/împărțite,
publice, secrete (corespunzătoare celor publice) și folosite pentru
algoritmii (cifruri, criptosisteme) de criptare/decriptare a textului sursă
într-un text cifrat; se încearcă astfel împiedicarea finalizării unor atacuri
(în special al celor prin revenire, care folosesc informațiile vehiculate într-
o sesiune de comunicare anterioară temporal) ale unor intruși (atacatori,
adversari, persoane rău intenționate, corupte; de obicei, textele cifrate
apar delimitate de acolade, indicându-se și cheia folosită)
-mesageri (co-fondatori, nonces), care sunt numere pseudoaleatoare,
prin care se identifică sesiunea curentă a unei comunicări (prospețimea
informației)
-timpul curent de transmitere a text-ului (pentru transmițător)
-o marcă (suplimentară) de timp, folosită eventual de participanții la
comunicare pentru idenficarea mai sigură a sesiunii de proveniență
(curentă sau nu) a (părții de) text în care apare
-formule (BAN), care, practic, adnotează anumite (sub)porțiuni de text
-alte informații (legate, de exemplu, de poziția geografică a celor care
comunică) necesare identificării (autentificării) entităților
REMEMBER - 3 • Ordinea tranzacțiilor din fiecare instanțiere
(execuție) a unui protocol (într-o sesiune) este
implicită, fixată aprioric de poziția lor în lista ce
descrie protocolul
• Ca pas următor, fiecare tranzacție din lista
anterioară (protocol description) este
transformată într-o formulă (BAN), printr-un
proces numit idealizare
• Ca, de fapt, în orice logică în care formulele
„apar” ca „traduceri” dintr-un limbaj informal,
ideea de „idealizare” este specificată vag și
extrem de greu de a fi aplicată „corect”
REMEMBER - 4 • Anumite „variații” ale protocoalelor pot să nu se
distingă suficient în reprezentarea lor logică (ca
formule BAN), deși anumite variații ar putea fi critice
pentru a decide dacă un protocol este sigur (sau nu),
vs. proprietatea selectată
• Din această cauză, analiza BAN (nu doar ea, din
păcate...) poate fi chiar periculoasă deoarece este
posibil să „ateste” un protocol ca fiind sigur, deși în
realitate nu este cazul (vom reveni; poate...)
• „Trecând peste” (pe moment), după descrierea unui
protocol printr-o listă de tranzacții, formulele BAN
obținute prin traducere sunt adăugate (ca axiome
suplimentare) la axiomele sistemului deductiv al BAN
(SD-BAN devenind SD-BAN+)
REMEMBER - 5 • Iată operatorii care vor apare în formulele BAN care
reprezintă „idealizări” ale protocoalelor
• • ⫢ •: believes/crede (A crede S: A acționează ca și cum S
este „de încredere”)
• • | • : has jurisdiction over/are control, jurisdicție,
autoritate asupra lui (S are autoritate asupra lui A)
• • |~ •: said/spune, trimite, a spus cândva, a trimis
(cândva) mesajul (A a trimis mesajul X)
• • • : sees/vede, a primit mesajul (A a primit mesajul X)
• • ↔K • : communicate/comunică prin (cheia divizată) K;
se poate și „prin (cheia publică) +K”, sau „prin cheia
secretă (matching)/corespunzătoare cheii publice +K,
adică –K”); eventual, și cu indici inferiori de tip A sau B
(A ↔K B, A ↔+K B, A ↔-K B)
REMEMBER - 6 • key/cheie(K, • ↔ •) va fi o notație alternativă
pentru • ↔K • (sau cu +K/-K...)
• • K • : from/de la (luând în considerare
cheia K; sau +K/-K) (A de la B)
• <•, •> : (con)catenation/concatenare
(alăturare textuală de mesaje; <X, Y> = XY)
• {•}K : encryption/criptare mesaj (cu cheia K,
+K, -K) ({X}K)
• #(•) : fresh/mesajul este proaspăt, nou (#(X))
• K(•) : has, posesses/are, deține cheia K→׀
(+K, -K) (׀→K(A))
REMEMBER - 7
• Reamintim și că simbolurile care sunt indici
inferiori (dreapta) pentru operatori, pot apare
și/sau deasupra operatorului respectiv, că „A”
se poate scrie și „a”; sau: Ka este de fapt Ka
• Să exemplificăm cu protocolul Otway-Rees
• În cadrul acestui protocol se presupune
implicit (cam ca peste tot) că se folosește un
algoritm simetric de criptare/decriptare, care
asigură, tot implicit, autentificarea și
confidențialitatea informației criptate
• Lista „brută” a tranzacțiilor este:
REMEMBER - 8 1) A B: M, A, B, {NA, M, A, B}Kas
2) B S: M, A, B, {NA, M, A, B}Kas,
{NB, M, A, B}Kbs
3) S B: M, {NA, KAB}Kas, {NB, KAB}Kbs
4) B A: M, {NA, KAB}Kas
• Precizăm doar că M este un (alt) nonce „creat”
de A; sperăm că restul semnificațiilor lingvistice
sunt conoscute
• Se va reveni asupra acestui protocol
• Versiunea sa idealizată va fi, într-o primă etapă:
REMEMBER - 9
1) A B: {NA, NC}Kas
2) B S: {NA, NC}Kas, {NB, NC}Kbs
3) S B: {NA, (A ↔Kab B), (B |~ NC)}Kas,
{NB, (A ↔Kab B), (A |~ NC)}Kbs
4) B A: {NB, (A ↔Kab B), (A |~ NC)}Kbs
• Desigur că, în plus, fiecare tranzacție de forma
U V: {X}K..., se va înlocui cu două formule BAN,
de forma V {X}K... și U|~{X}K... (C este un alt nume,
fictiv, al lui A)
• Această idealizare este dată de inițiatori și se poate
arăta că ea este „ambiguă”, în sensul sugerat
REMEMBER - 10
• Axiomele (schemele de...) SD-BAN sunt:
1A. P crede X (P ⫢ X)
2A. P are control asupra lui X (P | X)
3A. P spune/trimite X (P |~ X)
4A. P vede X (P X)
5A. {X}K : mesajul X este criptat cu cheia K
6A. #(X): mesajul X este nou/proaspăt (uneori,
este și o alternativă pentru P spune X)
REMEMBER - 11 7A. cheie(K, P ↔ Q) (sau P ↔K Q, sau...): se aplică de
obicei presupunerea că secretele sunt protejate în mod implicit în modelul Dolev-Yao, deci nu vom folosi ipoteze suplimentare pentru acest lucru în demonstrații; de asemenea implicit, presupunem că operatorul este comutativ, în sensul că dacă P ↔ Q atunci vom avea și Q ↔ P, şi reciproc; această formulă poate fi un mesaj
8A. P deține cheia K (׀→K(P)): se presupune implicit că cheia K nu va putea niciodată fi descoperită de către niciun alt agent; cu excepţia desigur a lui P, sau a altuia în care P are încredere (exprimată explicit)
• În general: P este agent, S este server, X este mesaj, K este cheie, etc. (ceea ce înseamnă că schemele sunt valabile „pentru fiecare...”)
REMEMBER - 12 • Regulile vor fi redactate sub forma: Dacă premize atunci concluzii
(premizele/concluziile vor fi separate prin și).
• Voi: rescriere sub formă standard/arborescentă și folosind
exprimarea simbolică
• 1I. (MM1) Dacă (P crede (cheie(K, P ↔ Q))) şi (P vede {X}K),
atunci (P crede (Q spune X))
• Reamintim că în general, regulile de tip Message Meaning privesc
interpretarea mesajelor autentificate printr-o criptare care utilizează
chei private sau divizate
• Astfel, regula poate fi redată și prin:
• 1I’. Dacă (P crede (cheie(K, P ↔ Q))) şi (P vede {X}K, dar
provenienţa nu este de la P), atunci (P crede (Q spune X))
• Anticipând, în logica GNY se va introduce simbolul (operatorul unar) „” pentru a se specifica faptul că o (sub)componentă „nu își
are originea în acel loc”, ceea ce ar face ca presupunerea
anterioară să devină internă logicii şi regula să arate sub forma:
REMEMBER - 13 • 1I’’. (MM2) Dacă (P crede (׀→K (Q))) şi (P vede {X}-K),
atunci (P crede (Q spune X))
• 2I. (NV) Dacă (P crede (Q spune X)) şi (P crede
(#(X))), atunci (P crede (Q crede X))
• Această regulă, Nonce Verification, mai are variante
numite mai jos (FR) (de la Freshness Rule)
• În plus, pentru aceste prime reguli de inferenţă, să
reamintim că, condiţia de aplicabilitate exprimată prin
formula (c1): P crede (#(X)) este câteodată admisă ca
fiind valabilă implicit (în asemenea situații, sunt însă
posibile replay attacks)
• 3I. (J) Dacă (P crede (Q are control asupra lui X)) şi
(P crede (Q crede X)), atunci (P crede X)
REMEMBER - 14 4I. (SG) Dacă (P crede (Q spune <X, Y>)) atunci
((P crede (Q spune X)) şi (P crede (Q spune Y)))
• Numele anterior provine de la Sees Group. Continuăm cu:
5I. Se poate și „invers”, adică vom admite de fapt corectitudinea
schemelor (mnemonicul provine de la BElief) :
5Ia. (BE1) Dacă ((P crede X) şi (P crede Y)) atunci (P crede <X,Y>)
5Ib. (BE2) Dacă (P crede <X, Y>) atunci ((P crede X) şi
(P crede Y))
5Ic. (BE3) Dacă (P crede (Q crede <X, Y>))
atunci ((P crede (Q crede X)) şi (P crede (Q crede Y)))
5Id. (BE4) Dacă (P crede (Q crede X)) şi (P crede (Q crede Y))
atunci (P crede (Q crede <X, Y>))
• 6I. Reamintim că, mai jos, presupunem implicit că agentul P
cunoaşte cheile necesare (mnemonicul provine de la Sees Part):
REMEMBER - 15 6Ia. (SP1) Dacă (P vede <X, Y>) atunci ((P vede X) şi (P
vede Y))
6Ib. (SP2) Dacă (P vede {X}K ) şi (P crede (cheie(K,P ↔ Q)))
atunci (P vede X)
Reamintim și că regula imediat anterioară ar putea fi,
câteodată, înlocuită de:
6Ib’. (SP2’) Dacă ((P vede {X}K ) şi (P vede K)) atunci
(P vede X)
6Ib’’. (SP2’’) Dacă P crede (cheie(K, P ↔ Q)) atunci
(P vede K)
7I. Revenind la prospețime, vom introduce:
7Ia. (FR1) Dacă (P crede (#(X))) atunci (P crede
(#(<X,Y>))), pentru fiecare Y
7Ib. (FR2) Dacă (P crede (#(X))) atunci (P crede (#({X}K)))
REMEMBER - 16 • Următoarea regulă este uneori acceptată implicit (mesajele
criptate cu ajutorul cheilor publice, K/+K, pot fi decriptate
doar folosind cheile private, -K):
8I. (SP3) Dacă ((P vede {X}+K) şi (P crede ׀→+K(P)) atunci
(P vede X)
• Penultima schemă este opţională în BAN (dar, câteodată
este bine ca cineva care deţine o anumită cheie publică, să
poată descifra orice mesaj criptat cu o cheie privată):
9I. (SP4) Dacă ((P vede {X}-K) şi (P crede (׀→+K(Q)) atunci
(P vede X)
• Regula (SG), (dată la 4I.), poate fi, în acest moment,
reformulată prin:
10I. (SG) Dacă (P crede (Q spune <X, Y>)) atunci (P crede
(Q spune X))
DEDUCȚIA NATURALĂ - 1
• Pe scurt, câteva lucruri (unele deja amintite) despre
sisteme deductive (noțiune sintactică) și despre teorii logice
(noțiune semantică)
• O teorie logică este o mulţime de formule închisă la
consecinţă semantică (exemplu clasic și de interes: clasa
formulelor valide dintr-o logică dată)
• Un sistem deductiv, sau de demonstraţie, este format
din axiome (valide) + reguli de inferenţă (sound); eventual,
plus „câteva” ipoteze suplimentare (satisfiabile)
• O teoremă de corectitudine şi completitudine certifică
legătura dintre „adevăr” și „demonstrație”: tot ceea ce este
demonstrabil este adevărat (corectitudine) și (reciproc) tot
ceea ce este adevărat este demonstrabil (completitudine)
DEDUCȚIA NATURALĂ - 2
• Repetând, noțiunea de teorie logică (TE) este
un concept semantic pentru definirea şi
tratarea globală a unei mulţimi de „formule”
• O teorie logică este astfel, formal, o
(sub)clasă de formule (dintr-o logică dată),
care este închisă la consecinţă semantică
• Cu alte cuvinte, o mulţime TE de formule este
teorie logică dacă pentru fiecare submulţime
M TE şi fiecare (altă) formulă G care este
consecinţă semantică din M, avem şi G TE
DEDUCȚIA NATURALĂ - 3 • Notaţii pentru „consecinţă semantică”:
I F; F, sau Ø F (pentru „F – validă”)
• Cs(F) – mulţimea consecinţelor semantice din
F FORM (la modul „cel mai general”; nu
insistăm...)
• Nu insistăm nici asupra altor concepte cum ar
fi cele privind tipurile de teorii: (ne)degenerate,
(in)consistente, complete, recursive (recursiv
enumerabile), etc.
DEDUCȚIA NATURALĂ - 4
• Noțiunea de sistem deductiv (de deducţie, de
demonstraţie, inferenţial), pe scurt SD, este un
concept sintactic pentru definirea şi tratarea
globală a unei mulţimi de „formule”
• Se numeşte sistem deductiv în FORM, care
reprezintă mulţimea „(meta)formulelor” dintr-o logică dată, un cuplu SD = <A, R> unde
- A FORM este o mulţime de axiome iar
- R FORM+ C este o mulţime de reguli de
inferenţă (de deducţie, de demonstraţie)
DEDUCȚIA NATURALĂ - 5
• În cele de mai sus, FORM+ denotă mulţimea relaţiilor
de oricâte argumente (cel puţin unul) peste FORM, iar C reprezintă o mulţime de condiţii de aplicabilitate
• Fiecare regulă de inferenţă r R , are astfel aspectul
r = < < G1, G2, … , Gn, G>, c>, unde n N,
iar G1, G2, … , Gn, G FORM; c C
• G1, G2, … , Gn sunt ipotezele (premizele) regulii, G
reprezintă concluzia (consecinţa) iar c desemnează
cazurile (modalităţile) în care regula poate fi aplicată.
Vom scrie chiar r = < < {G1, G2, … , Gn}, G>, c>
deoarece ordinea ipotezelor nu este esenţială
DEDUCȚIA NATURALĂ - 6
• Mulţimea C nu a fost specificată formal, din
cauza generalităţii ei; putem spune totuşi că
elementele sale sunt (meta)predicate (condiții
„de satisfăcut” pentru formule, demonstrații,
etc.)
• Regulile vor fi folosite pentru a construi
demonstraţii în paşi succesivi, la un pas
aplicându-se o regulă (similar cu situaţia
rezoluţiei…unde…)
DEDUCȚIA NATURALĂ - 7
• O regulă r = < < {G1, G2, … , Gn}, G>, c> va fi scrisă
şi ca:
• Câteodată, alături de c, sunt explicitate separat şi
restricţiile sintactice locale asupra (formei)
(meta)formulelor
• În cazul în care n = 0 şi c lipseşte, r poate fi
identificată ca fiind o axiomă, după cum rezultă din
definiţia care va urma
1 2 nG , G ,... . , G
, cG
DEDUCȚIA NATURALĂ - 8
• Există însă posibilitatea ca în afara restricţiilor
sintactice „locale”, date de forma formulelor implicate
(ceea ce face ca regulile să fie, de fapt, scheme
generale) să se interzică aplicarea regulii (schemei)
pe considerente semantice „globale” (forma
demonstraţiei, apariţia în demonstraţie a unei formule
nedorite la acel pas, păstrarea completitudinii unei
teorii etc.)
• Dacă c este ataşată unei reguli r (c poate lipsi, mai
exact ea poate fi „condiţia permanent adevărată
indiferent de context”), înseamnă că în orice
demonstraţie, r va putea fi aplicată la un moment dat
doar dacă c este adevărată la momentul respectiv
DEDUCȚIA NATURALĂ - 9 • Definiţie. Fie un sistem deductiv SD = <A, R> în
FORM. Se numeşte demonstraţie (pentru Fk, pornind cu A) în SD o listă de (meta)formule, (D), F1, F2, … , Fk
astfel încât pentru fiecare i [k], fie Fi A, fie Fi este
obţinut din Fj1, Fj2, … , Fjm folosind o regulă r = < < {Fj1, Fj2, … , Fjm}, Fi>, c> din R,, unde j1, j2, ... , jm < i
• Prin urmare, fiecare element al listei (D) este fie o
axiomă, fie este concluzia unei reguli de inferenţă ale
cărei ipoteze sunt elemente anterioare din listă (toate
elementele unei liste se numesc și teoreme)
• Dacă F este teoremă în SD, se mai spune că F este consecință sintactică din A folosind R (scris SD F, sau
Ø SD F; sau chiar I SD F, dacă folosim un sistem
„extins”, SD’, ca mai jos)
DEDUCȚIA NATURALĂ - 10
• O demonstrație (raționament formal !), se poate reprezenta ca un graf, sau chiar ca un arbore
• Putem considera că un sistem de demonstrație poate conține, pe lângă axiome (de obicei acestea sunt formule valide, „știute” ca fiind așa printr-o altă metodă credibilă), și, eventual, niște ipoteze suplimentare (considerate, de obicei, a fi formule, măcar satisfiabile)
• Vorbim atunci de SD’ = <A’, R>, A’ = A UI, I reprezentând „axiomele suplimentare”
• Notăm Th(SD) = {F FORM | există o demonstraţie (D) pentru F în SD} (se poate da şi o definiţie constructivă pentru Th(SD)…voi)
DEDUCȚIA NATURALĂ - 11
• Și în legătură cu sistemele deductive putem
discuta despre: tipuri de sisteme deductive
(boolean complete, finit axiomatizabile, etc.),
sau ddespre clasificarea generală a acestora
(Hilbert, Gentzen, etc.), dar nu insistăm...
• Este evident că ceea ce ne propunem să
folosim (pentru IA, în general), sunt sistemele
corecte și complete pentru clasa formulelor
valide din orice logică dată (varianta SD-BAN
este „altfel”...)
DEDUCȚIA NATURALĂ - 12 • Definiție. Considerând orice prefix al oricărei
demonstraţii (privită textual) (D) dintr-un sistem SD,
acesta poate fi considerat ca o nouă regulă de
inferenţă (derivată din cele iniţiale): concluzia noii
reguli este ultima formulă din demonstraţia respectivă,
iar ipotezele sunt reprezentate de restul formulelor
care apar (regulă de inferență derivată).
• Definiţie. Două sisteme SD1 şi SD2 sunt echivalente
dacă pentru fiecare mulţime de (meta)formule I (poate
fi chiar vidă) şi fiecare (meta)formulă F avem:
I SD1 F dacă şi numai dacă I SD2 F.
DEDUCȚIA NATURALĂ - 13 • Dacă un sistem are „mai multe” reguli de
inferență decât axiome, el se numește de tip
Gentzen(-Jaskowski)
• Un asemenea sistem va fi SD0, sau deducţia
naturală, care nu are nicio axiomă...
• În cazul în care balanţa este inversată (există
„mai multe” axiome decât reguli de inferenţă,
ca în cazul SD3), sistemele sunt cunoscute
sub numele de sisteme (de tip) Hilbert
• SD0 este echivalent cu SD3 (dacă „suntem”
în LP, LP1,...)
DEDUCȚIA NATURALĂ - 14
• Sistemul SD3 este un sistem deductiv standard (Hilbert), finit
specificat, care generează întreaga clasă (şi numai pe
aceasta) a formulelor valide din LP (extinzându-l, vom obține
același lucru pentru LP1)
• Sistemul a fost introdus pentru prima dată de către A. Church
(1954)
• Axiome (ASD3). Condiţiile sintactice sunt doar F, G, H LP:
1. F (G F)
2. (F (G H)) ((F G) (F H))
3. ( F G) (( F G) F)
• Observații...(alfabet, limbaj...)
DEDUCȚIA NATURALĂ - 15 • Să remarcăm deja faptul că mulțimea LP trebuie considerată
ca fiind construită peste alfabetul care conţine drept conectori
doar pe „” şi „”
• Dacă dorim să utilizăm şi ceilalţi conectori, putem face acest
lucru utilizându-i doar ca notaţii (de exemplu, A B va
reprezenta de fapt A B; etc.)
• Reguli de inferenţă (RSD3). Există doar restricţii de natură
sintactică (lipsind condiţiile de aplicabilitate): F, G LP
• Schema de regulă este chiar modus ponens (pe scurt, (MP)):
1.
F G ,F
G
DEDUCȚIA NATURALĂ - 16 • Continuăm prezentarea cu un sistem de tip
Gentzen, și anume SD0 (rămâne în sarcina voastră să citiți despre extensia SD3 la LP1)
• Mai precis, este vorba despre deducția naturală
• Prima abordare (axată în special pe aspectele teoretice), urmează imediat
• După aceea, descriem abordarea din M. Huth/M. Ryan (carte menționată în bibliografie)
• Clasa FORM este, pentru început, LP
• Alfabetul peste care sunt construite formulele conține în acest caz doar conectorii (notat aici și prin ) și
• Încercați să “combinați” cele două abordări…
DEDUCȚIA NATURALĂ - 17 • După cum am mai spus, regulile de inferență sunt „mai
multe” decât axiomele
• SD0 nu are nicio axiomă
• O demonstrație, sensul deducției naturale va fi definită
în mod direct ca fiind un arbore (și nu o listă)
• Un arbore de deducție naturală are pe nivelul 0 (cel
al frunzelor) formule oarecare (numite și ipoteze, sau
premize, pentru anumite reguli de inferență din sistem)
• Următoarele niveluri sunt obținute constructiv din
precedentele
• Astfel, nivelul i va conține concluziile inferențelor având
ca premize elemente ale nivelurilor anterioare 1,2,...,i-1
(rădăcina fiind „rezultatul final“ al demonstrației)
DEDUCȚIA NATURALĂ - 18
• O caracteristică importantă a acestui sistem este
aceea că acele condiții de aplicabilitate c
asociate regulilor (dacă există), au aspectul
„înlătură ipoteza F” (termenul se referă aici
exclusiv la frunzele arborelui curent)
• Înlăturarea nu este una efectivă: doar marcăm
frunzele corespunzătoare (de exemplu, folosind
numere; diferite de la pas la pas)
• F va fi o formulă validă în LP ddacă este
rădăcina unui arbore de deducție naturală având
toate ipotezele înlăturate (pe parcursul
demonstrației)
DEDUCȚIA NATURALĂ - 19
DEDUCȚIA NATURALĂ - 20 • Vom furniza toate regulile corespunzătoare unui sistem
SD0, folosind notațiile generale deja introduse
• Orice regulă este de fapt o schemă (valabilă pentru
fiecare formulă; acestea sunt notate aici cu
A, B, … LP, și nu cu F,G, ...); ele au asociate atât un
număde ordine, cât și un mnemonic
• Schemele 3. şi 4. au și alternative, deoarece trebuie să
„captăm” comutativitatea conjuncției la nivel sintactic
(ele se vor numi 3’., și respectiv 4’.)
• Mnemonicele „vin” de la următoarele cuvinte:
E – eliminare; I – introducere; N – negare; C –
conjuncție (pentru primele patru reguli)
DEDUCȚIA NATURALĂ - 21
• 1. (EN) , c: ipoteza A este înlăturată
• 2. (IN) , c: ipoteza A este înlăturată
• 3. (EC)
• 4. (IC)
B , B
A
B , B
A
A B A B
A Bs i
A ,B A ,B
A B B As i
DEDUCȚIA NATURALĂ - 22 • De fapt SD0 este un sistem predicativ, finit
specificat și boolean complet; dacă introducem
direct și conectorii și în alfabet, putem folosi și
următoarele reguli derivate:
• 5. (ED) 6. (ID)
• 7. (EI) 8. (II)
• 9. (DN) , c: ipoteza A este
înlăturată
A B ,¬ A A B ,¬ B
B As i
A A
A B B As i
A ,A B
B
B
A B
A A
A As i
DEDUCȚIA NATURALĂ - 23
• Noile mnemonice: ED - eliminarea disjuncției,
ID – introducerea disjuncției,
EI – eliminarea implicației, II – introducerea
implicației, și, în sfârșit, DN – dubla negație
• După ce tratăm pe scurt un exemplu „mic”
(vezi următorul slide), „trecem” la descrierea
celeilalte abordări menționate, „luată” din
cartea menționată (H/R)
DEDUCȚIA NATURALĂ - 24 • Exemplu. Să arătam în SD0 „validitatea secvenței” (vezi ceea ce urmează)
( A C), ( B C), ( A B) C.
• Într-adevăr, putem construi arborele:
A
A C
C
( A B) A B
A B
B C
C
B
( A C) ( B C)
C
1
2 1
2
3 3
(iv)
(vi)
(v)
(ii)
(iii) (i)
3
DEDUCȚIA NATURALĂ - 25
• Este evident că într-o carte se pot explica mult mai
multe decât într-un discurs: citiți Huth/Ryan (măcar
paginile numerotate acolo 1-30)
• Exemplul 1. Dacă trenul ajunge mai târziu și nu sunt
taxiuri în stație, atunci Ion va întârzia la întâlnirea
fixată. Ion nu întârzie la întâlnire. Trenul ajunge într-
adevăr mai târziu. Prin urmare, erau taxiuri în stație.
p: trenul ajunge mai târziu
q: sunt taxiuri în stație
r: Ion întârzie la întâlnirea fixată
• Raționament = demonstrație:
(p (q)) r, r, p q (secvență; premize, concluzie)
DEDUCȚIA NATURALĂ - 26
• În general: 1, 2, …, n ψ
• H/R: p, q,…; ; ; , ψ,..; Φ, ,…
Eu: A, B,…; ; □; F, G,…; F, G,…
• Există o similaritate evidentă între aceste demonstrații și
cele de tip Hilbert (SD3…): F1, F2, …, Fm-1 (premize), Fm
(concluzie)
• Demonstrațiile prin deducție naturală sunt „mai complexe”:
ele pot include (implicit!) alte (sub)demonstrații, care pot fi
exprimate prin noi reguli de inferență („derivate”, în sensul
anterior)
• H/R: By applying proof rules to the premises, we hope to
get some more formulae, and by applying more proof rules
to those, to eventually obtain the conclusion
DEDUCȚIA NATURALĂ - 27 • Observație. Nu este întotdeauna simplu să știm care reguli trebuie
aplicate și în ce ordine; sau, mai rău, am putea folosi „șabloane”
invalide în raționamente (demonstrând, de exemplu,
p, q p q)
• Vom prezenta acum16 reguli de inferență pentru deducția naturală
(ultimele 4 sunt de fapt reguli derivate): (i), (e1), (e2), (i1), (i2), (e), (i), (e), (i), (e), (e), (e), (MT), (i), (PBC), și
(LEM) (H/R, pag. 27/Figure 1.2.); ca de obicei, i „vine” de la
introducere, și e – de la eliminare; apoi (în cele derivate): Modus
Tollens (modul negativ), Proof By Contradiction (reductio ad
absurdum), și respectiv Law (of the) Excluded Middle (tertium non
datur)
• Vom „trece în revistă” câteva exemple; vezi și H/R, la adresa
directă, dar accesibilă doar din cadrul Facultății:
http://profs.info.uaic.ro/~masalagiu/resources/HR.pdf
DEDUCȚIA NATURALĂ - 28 • Începem prin a „discuta” regulile (i), (e1), și (e2)
(reamintim, vezi pag. 27, în H/R)
• Simbolul „” denotă evident orice contradicție (în context, este doar o formulă de forma sau )
• Exemplul 2. Arătați că secvența p q, r q r este
„validă” (cuvântul nu are semnificația uzuală; nu avem
încă nicio referire la vreo semantică formală…).
• Scrieți: p q
r
„spații…”
q r
• A construi o demonstrație înseamnă a completa
spațiile aflate între premize și concluzie (prin aplicarea
unei secvențe potrivite de reguli de inferență)
DEDUCȚIA NATURALĂ - 29 • Obținem: 1 p q premiză
2 r premiză
3 q (e2) 1
4 q r (i) 3, 2
• Desigur că și ψ din the „tabelul” corespunzător (H/R, pag. 27), pot fi „instanțiate” nu doar cu formule atomice (repetăm: nu dispunem aici, încă, de o semantică formală, de o teoremă de substituție, etc.)
• Demonstrația precedentă poate fi prezentată și printr-un arbore etichetat, având rădăcina q r și frunzele p q, și r (surpriză?!), după cum urmează:
DEDUCȚIA NATURALĂ - 30
p q
(e2)
q r
(i)
q r
• Mai înainte am „turtit” acest arbore într-o prezentare de tip listă
verticală (necesitând folosirea unor pointeri, ca 1, 2, 3, 4)
• Pot exista diferite modalități de a „demonstra o concluzie” (arbori
diferiți, o ordine diferită de aplicare a regulilor, chiar reguli
schimbate…)
• Cel mai important lucru pe care trebuie să-l înțelegem este acela că
orice „presupusă demonstrație” poate fi verificată că este corectă
(în sensul aplicării corecte a tuturor regulilor, pe parcursul
dezvoltării ei), prin „controlul” fiecărei linii în parte (începând de sus)
DEDUCȚIA NATURALĂ - 31 • În exemplul precedent am folosit doar „și”-regulile
• Să continuăm cu regulile referitoare la dubla negație (i.e. (e) și (i)) (pag. 27…)
• Intuitiv (nu avem semantică formală…), nu există vreo diferență între formulele și
• H/R: The sentence “It is not true that it does not rain” is
just a more sophisticated way of saying “It rains”
(and…conversely…)
• Exemplul 3. Demonstrați singuri validitatea secvenței: p, (q r) p r.
• Indicație: Se pornește cu ambele premize, apoi se aplică
de două ori ceva de la dubla negație (una la fiecare pas);
pentru a termina, se aplică „și”-regulile (similar ca mai
sus)
DEDUCȚIA NATURALĂ - 32 • Iată demonstrația pentru Exemplul 3:
1 p premiză
2 (q r) premiză
3 p (i) 1
4 q r (e) 2
5 r (e2) 4
6 p r (i) 3, 5
• Exemplul 4. Demonstrați secvența (preferabil
singuri; apoi comparați ceea ce ați făcut voi cu
soluția dată de mine): (p q) r, s t q s.
DEDUCȚIA NATURALĂ - 33
1 (p q) r premiză
2 s t premiză
3 p q (e1) 1
4 q (e2) 3
5 s (e1) 2
6 q s (i) 4, 5
• A voastră care este? Sunt diferențe? De ce?!
DEDUCȚIA NATURALĂ - 34 • După cum ați bănuit (?), mai este mult de „muncit”…
• Trebuie discutate restul regulilor (începând cu eliminarea implicației…)
• Trebuie definită (și...folosită) echivalența sintactică
• Trebuie descoperită modalitatea prin care putem adăuga noi formule (înafară de premizele „obișnuite”) numite presupuneri (acestea fiind inspirate de o anumită „încredere contextuală”)
• Acestea trebuie apoi înlăturate...ba chiar (de cele mai multe ori) și restul premizelor...
• Trebuie, în final, să învățăm cum să demonstrăm teoreme (formule valide în sensul semanticii formale), adică secvențe de forma Ø (pe scurt: )
• Sfat repetat: citiți (cât de puțin din) H/R…
DEDUCȚIA NATURALĂ - 35 • Presupunând că mi-ați urmat sfatul anterior, să
amintim, totuși, câteva lucruri legate de extensia
sistemului SD0 (deducția naturală, sub forma din
H/R) la LP1
• Nu uitați că v-am furnizat lista completă a
(axiomelor și) regulilor de inferență pentru acest
tip de deducție naturală
• Diferența față de textul din H/R este dată de
faptul că la fiecare listă de ipoteze „normale” ale
fiecărei secvențe, este adăugată și o listă
„generică” de (posibile) ipoteze suplimentare
(așa cum s-a mai menționat), notată cu A
DEDUCȚIA NATURALĂ - 36
• Dacă ipotezele A sunt aceleași pentru „o clasă de reguli”,
le putem elimina
• De exemplu, în cazul „manipulării” lui „” putem scrie (așa
cum se procedează de altfel în H/R și cum am făcut și noi
pentru cazul LP) toate regulile corespunzătoare ( „i”,
„e1”, respectiv „e2”) sub forma:
F G F G F G
F G F G
• Adăugarea de ipoteze „diferite” (pentru diverse secvențe),
se poate face explicit, introducând acele noi ipoteze într-un
chenar/dreptunghi)
• Atunci, regulile pentru „” („i” respectiv „e”) vor căpăta aspectul:
DEDUCȚIA NATURALĂ - 37
F
•
•(chenarul este aici)
•
G F G, F
F G G
DEDUCȚIA NATURALĂ - 38 • Pentru a vă verifica cunoștințele (presupuse a fi fost)
însușite, încercați să demonstrați că următoarele sunt
secvențe valide (folosind sistemul deducției naturale
din H/R):
1. P(x) Q(x), P(x) R(x) Q(x) R(x)
2. P(t), (x)(P(x) Q(x)) Q(t)
3. (x)(P(x)) (x)(P(x))
4. (x)(P(x) Q(x)), (x)(P(x)) (x)(Q(x))
5. (x)(P(x) Q(x)), (x)(P(x)) (x)(Q(x))
6. (x)(P(x)) (x)( P(x))
• Simbolul „” reprezintă desigur două secvențe
„corespondente”
DEDUCȚIA NATURALĂ - 39 • Pentru final, vom preciza alte câteva aspecte
interesante privind legătura dintre teoriile logice și
sistemele de demonstrație
• Să ne gândim la reprezentarea prin (meta)formule a
unei baze de cunoştinţe
• Din păcate nu există metode semantice efective
(algoritmice) convenabile pentru a testa aprioric dacă o
mulţime dată de (meta)formule este sau nu închisă la
consecinţă semantică, sau dacă o anumită
(meta)formulă este satisfiabilă sau validă
• Alternativa este de a folosi metode sintactice, care au
avantajul că pot fi totuşi automatizate (măcar parţial)
DEDUCȚIA NATURALĂ - 40
• Se pune problema axiomatizării teoriilor
logice, cu ajutorul sistemelor de
demonstraţie
• Acest lucru înseamnă că având dată o teorie (de
exemplu, mulţimea formulelor valide din LP1)
TE FORM, trebuie să găsim o submulţime A’ = A U I TE de „axiome” şi/sau ipoteze
suplimentare, precum şi o mulţime de reguli de inferenţă R (adică un sistem de
demonstraţie SD’ = <A’, R>) astfel încât
TE = Th(SD’)
DEDUCȚIA NATURALĂ - 41
• În acest caz, se impune de obicei ca A’ să fie
măcar o mulţime satisfiabilă (există măcar o structură S astfel încât pentru fiecare F A’
avem S(F) = 1), sau chiar validă (dacă A’
conţine măcar o contradicţie, atunci orice
(meta)formulă este consecinţă semantică din A’ )
• Forma generală a lui A’ se explică tocmai prin
aceea că am admis că A conţine formulele
valide iar I pe cele (dovedite a fi…)
satisfiabile
DEDUCȚIA NATURALĂ - 42
• Mai general, să presupunem că pornim cu o mulţime
de (meta)formule A’ FORM, de cunoştinţe primare,
unanim acceptate ca fiind „adevărate”, adică despre
care ştim (nu ne interesează deocamdată prin ce
metodă am aflat acest lucru) că reprezintă formule
valide/satisfiabile în contextul descris mai sus
• Pentru a axiomatiza teoria dată, trebuie să mai găsim şi o mulţime de reguli de inferenţă R astfel încât să
avem Cs(A’) = Th(SD’) (am notat cu Cs(A’) mulţimea
tuturor consecinţelor semantice din A’, în raport cu
noţiunea de adevăr adoptată, şi cu SD’ sistemul compus din A’ şi R)
DEDUCȚIA NATURALĂ - 43
• Putem lua în considerare şi situaţia inversă, în care avem dat un sistem SD’ = <A’, R> şi dorim să vedem
dacă Th(SD’) este într-adevăr o teorie logică, şi,
mai mult, dacă Cs(A’) = Th(SD’ )
• Definiţie. Un sistem de demonstraţie SD’ = <A’, R> se
numeşte corect şi complet pentru o teorie TE dacă TE = Th(SD’) = Cs(A’) şi A’ TE. O teorie TE este
axiomatizabilă dacă există un sistem deductiv
SD’ = <A’, R> corect şi complet pentru ea, adică
satisfăcând condiţiile anterioare.
• Dacă SD’ este finit specificabil (axiomatizabil), atunci
teoria corespunzătoare se numeşte finit
axiomatizabilă
DEDUCȚIA NATURALĂ - 44 • În cele de mai sus, dacă I este mulţimea vidă atunci
TE este alcătuită doar din (meta)formule valide
• În cazul teoriilor „reale”, I cuprinde în general
cunoştinţele primare ale lumii respective (Presburger…), iar A axiomele „logice” (de genul celor
„puse” în SD3)
• Teoremă (de corectitudine şi completitudine – formă generală). Fie o clasă de (meta)formule FORM, o clasă de structuri admisibile Str pentru FORM (prin care se defineşte noţiunea de adevăr), un sistem deductiv SD’ = <A’, R> în FORM, unde A’ = A U I (A fiind alcătuită din formule valide şi I din formule satisfiabile) şi o teorie logică TE FORM, astfel încât TE = Cs(A’). Atunci Th(SD’) = Cs(A’).
DEDUCȚIA NATURALĂ - 45
• Observaţie. A demonstra corectitudinea înseamnă a arăta că Th(SD’) Cs(A’) iar completitudinea, că
Th(SD’) Cs(A’)
• Teorema se mai poate enunţa şi sub una din formele
echivalente, destul de des întâlnite:
-Teoria TE admite un sistem deductiv corect şi
complet
-În condiţiile precizate, avem, pentru fiecare
metaformulă F FORM: I ├SD F dacă şi numai dacă I ╞ F
• Practic, este de dorit ca teoria TE să fie (eventual,
chiar finit) axiomatizabilă
DEDUCȚIA NATURALĂ - 46 • În cazul în care este vorba de o teorie formată doar din
formule valide (atunci va lipsi I), teorema capătă forma
simplificată:
„Pentru fiecare F FORM, avem: ├SD F dacă şi numai
dacă ╞ F”
• În cele de mai sus am folosit notaţia ├SD F pentru a exprima faptul că F Th(SD), unde
SD = <A, R>, sau, în momentul în care SD este implicit,
├F poate nota chiar faptul că F este o formulă validă
• Teoremă (teorema de completitudine a lui K. Gödel, 1930). I ├SD3 F dacă şi numai dacă
I ╞ F.
DEDUCȚIA NATURALĂ - 47 • Iată alte câteva rezultate interesante
• Teoremă. Sistemul SD0 este corect şi complet pentru Val(LP1)
• Teoremă. Sistemele SD0 şi SD3 sunt
echivalente. Mai mult, pentru fiecare mulţime de formule închise J LP1 şi fiecare formulă
F LP1, avem: J ├SD0 F dacă şi numai dacă J ├SD3 F
• Sistemul SD1 (nu insistăm...), numit și
„calculul cu secvențe”, este atât o generalizare
a lui SD0, cât și a celor de tip, e.g., SD-BAN
DEDUCȚIA NATURALĂ - 48
• D.p.d.v. practic, avem nevoie de teorii
„puternice” (care să conţină măcar
„aritmetica”, „egalitatea” şi axiomele logice
„primare” Presburger…); acestea sunt
incomplete, din păcate
ALTE LOGICI PRIVIND
SECURITATEA ÎN SISTEMELE
MULTIAGENT (LSSM) - 1 • Vom prezenta o scurtă descriere a logicii
justificărilor plauzibile (Logic of Plausible
Justifications/LPJ): CE, CUM, DE CE studiem...
• Aceasta este o „combinație” între așa-numitele logici
ale justificărilor și logicile (de încredere!) bazate pe
plauzibilitate
• Este utilă pentru acele sisteme multiagent (MA) în
care fiecare agent vrea și poate să-și exprime în mod
explicit justificarea faptului că el crede într-o anumită
afirmație (...construcție noi logici...„vorbim cuvinte”...)
LSSM - 2 • Logicile epistemice în general și logicile de încredere
în particular, sunt suficient de expresive pentru a
„prinde” noțiunile de K/B ale (multi)agenților într-un
MA (un agent „știe” ceea ce „știe” altul; fiecare agent
dintr-un grup „știe” că..., etc.)
• Limitări ale (majorității) acestora:
-K sau B ale unui agent reprezintă noțiuni statice, adică
ele nu se modifică în timp (în aceste logici,
modalitatea prin care agenții pot comunica nu poate fi
descrisă satisfăcător)
-K modelată prin aceste logici este cumva implicită (dacă
un agent știe ceva, o face din cauza unui motiv rămas
nespecificat)
LSSM - 3 • Pentru „tratarea” primei limitări, s-au introdus logicile
epistemice dinamice (Dynamic Epistemic Logics/DEL)
• În cadrul lor se pot descrie „acte” ale comunicării între
agenți
• Acestea constau în „anunțuri”/afirmații adevărate
(despre cunoștințe!), făcute de către un agent (sau de
către un observator extern) pentru ceilalți agenți (sau o
parte a lor)
• „Munca” de început a fost extinsă pentru a cuprinde nu
doar K ci chiar B
• Acestea pot astfel ambele „evolua” cu timpul (desigur
că credințele, spre deosebire de cunoștințe care
rămân adevărate, se pot dovedi a fi false într-un final)
LSSM - 4 • Semantica DEL-urilor se bazează pe așa-
numitele modele de plauzibilitate
• În cadrul acestora, fiecare agent are o ordine
proprie, „bazată pe plauzibilitate”, pentru toate
stările posibile ale unui model posibil; agentul va
crede doar în acele afirmații care sunt adevărate
în „stările cele mai plauzibile” (conform ordinii
sale de plauzibilitate)
• Schimbările care pot interveni asupra
(adevărului/falsității) credințelor sunt astfel
modelate prin schimbările care intervin în ordinile
de plauzibilitate ale agenților
LSSM - 5 • Pentru a „trata” a doua limitare, au fost introduse
logicile justificative (Justification/evidence Logics/JL)
• În aceste logici, în locul formulelor care „spun” ceva de
genul „Agentul i știe/crede ”, se folosesc formule de
tipul „t este agentul care justifică evidența faptului că
agentul i știe/crede ”
• JL sunt astfel logici în care fiecare cunoștință avută de
către un agent este însoțită de o justificare explicită a
a acestui lucru
• De aceea logicle mai sunt numite și logicile cunoașterii
explicite (Logics of Explicit Knoledge/LEK) sau logicile
cunoașterii bazate pe evidență (Logics of Evidence-
Based Knoledge/LEBK)
LSSM - 6 • Totuși, comunicând/făcând o afirmație despre ceva în care
crede (fie pentru alt agent, fie pentru un observator extern
– vezi „alegeri de primar” (!)), n-ar trebui să considerăm
acele anunțuri ca fiind chiar adevărate, ci doar sincere
(orice agent crede în ceea ce anunță)
• O abordare mai realistă, pentru ca un agent să convingă
pe alții de faptul că credințele sale sunt adevărate (că B
sunt K!), ar fi ca agentul nu doar să spună în ce crede, ci
și de ce crede în acel ceva
• Am avea astfel nevoie de niște logici dinamice de
încredere bazate pe evidență (Dynamic Logics of
Evidence-Based Beliefs/DLEBB)
• Cu alte cuvinte diferența dintre K și B poate fi „umplută”
prin adăugarea lui D (dinamicii, evoluției în timp) și a lui E
(evidenței)
LSSM - 7 • Propunerea noastră pentru construcția unei logici
de tipul de mai sus (nu uitați că așa ceva
însemnă în plus SD, și, poate, TE și anumite
proprietăți formale ale lor: consistență,...)
cuprinde două direcții
• O primă direcție este de natură sintactică și
înseamnă îmbogățirea alfabetului/limbajului cu
termi (și formule) care descriu/modelează explicit
evidența
• A doua direcție este de natură semantică și
înseamnă definirea unei semantici formale
bazată pe plauzibilitate
LSSM - 8
• Reamintind că principalul scop pe care îl urmărim
inventând noua logică este acela de a modela (cât
de cât) formal noțiunea de credință/încredere/Belief,
să subliniem că în LPJ justificările (unor credințe) pot
fi însă defectuoase/imperfecte/greșite și
instabile/nedemne de încredere
• Folosind semantica bazată pe plauzibilitate
(modele„plauzibile”), vom putea însă introduce formal
noțiunea de evidență/justificare plauzibilă pentru un
agent
LSSM - 9 • Astfel, dacă un agent are o evidență plauzibilă
pentru a crede o anumită afirmație/formulă,
atunci el o va crede cu adevărat; dar, deoarece
evidența pe care s-a bazat poate fi greșită, există
posibilitatea ca afirmația respectivă să fie falsă
• În consecință, LPJ este o logică modală
normalizată (normal modal logic; vezi Wiki),
având o semantică Kripke standard; aceasta va
conține și o definiție formală a noțiunii de
evidență plauzibilă pentru un agent, care se va
baza introducerea unei relații de plauzibilitate
LSSM - 10 • Articolul de bază (accesibil la adresa
http://dx.doi.org/10.1016/j.tcs.2015.07.018 ) este axat în
principal pe procesele de comunicare în sisteme
multiagent legate de argumentație și dezbatere
• În cadrul ei, după cum am mai amintit, putem descrie
formal plauzibilitatea evidențelor pentru orice agent
(grup de agenți)
• Mai mult, se va „localiza” un sistem deductiv corect
și (tare) complet pentru ea (care va avea proprietatea
modelului finit)
• În cadrul articolului se analizează și complexitatea
problemelor SAT și Model-Checking
LSSM - 11 • Intenția pe viitor este de a construi o logică
asemănătoare chiar pentru exprimarea formală
a încrederii (într-un mod explicit), prin
adăugarea la LPJ a acțiunilor concrete care
vor modela comunicarea dintre agenți (în cursul
proceselor de argumentație și dezbatere)
• Puteți face chiar voi acest lucru (articolul este
din 2015...)?
• Eventual, luînd în calcul (cum de altfel s-a făcut
la BAN...) doar „comunicarea pură” și
„siguranța” ei ?
• No, să purcedem...cu LPJ și plausibility models
LSSM - 12 • Alfabetul logicii este
L = A E X C {} P, unde:
-A = mulțime numărabilă de atomi
-E = mulțime numărabilă de constante „de
evidență”
-X = mulțime numărabilă de variabile de „evidență”
-C = {, } (singurii conectori)
-P = {(, )} (mulțimea de paranteze rotunde)
- = true
• Toate mulțimile implicate sunt disjuncte două
câte două
LSSM - 13 Sintaxa LPJ
• Se definesc, constructiv (prin BNF):
-T = mulțimea termilor de evidență (t T, c E,
x X)
t ::= c | x | t • t | t + t | !t
-F = mulțimea formulelor ;sau, cum am notat de
obicei, LPJ (p A, F F, t T)
F ::= p | | (F) | (F F) | (t:F)
• Vom folosi abrevierile standard pentru
false/, , și
LSSM - 14 Semantica LPJ
Definiție. Se numește cadru/corp/frame pentru LPJ un cuplu I = W, R unde W este o mulțime nevidă de stări/lumi și R W W este o relație reflexivă și tranzitivă.
Definiție. Un model Fitting pentru LPJ este un triplet M = I, V, , unde I este un cadru, V este o funcție (de evaluare/interpretare),
V : A 2W, iar este o funcție de evidență,
: W T 2F, care satisface condițiile:
-Dacă (F1 F2) (w, s) și F1 (w, t), atunci
F2 (w, s • t).
LSSM - 15
- (w, s) (w, t) (w, s + t).
- Dacă F (w, t), atunci (t:F) (w, !t).
- Dacă wRw’, atunci (w, t) (w’, t).
- Dacă F (w, c) și c E, atunci F trebuie să
fie validă (definiția urmează).
• Definiție. Fie M = I, V, un model Fitting.
Definim întâi adevărul unei formule într-o stare (uzual: M, w F, citit...), constructiv,
după definițiile claselor T și F :
LSSM - 16 - M, w p ddacă w V(p).
- M, w pentru fiecare w W.
- M, w (F) ddacă M, w F.
- M, w (F1 F2) ddacă M, w (F1) și
M, w (F2).
- M, w (t:F) ddacă (F (w, t) și pentru fiecare w’ W,
cu wRw’, avem M, w’ F).
F F este satisfiabilă dacă există o stare
w W astfel încât M, w F.
Definiție. F F este validă/global satisfiabilă în M
dacă pentru fiecare stare w W avem
M, w F. Notație: M F.
LSSM - 17 Definiție. Dacă F este global satisfiabilă în orice model
M al unui cadru I = W, R, spunem că F este validă
în I (notație I F). În sfârșit, dacă F este validă în
toate cadrele (adică în toate modelele fiecărui cadru), spunem că F F este validă (notație: F).
• Conform definițiilor semantice precedente, ne-am
putea gândi la „•” ca fiind un fel de modus ponens
pentru controlul evidenței, la „+” ca fiind o formă de
combinare a evidențelor și la „!” ca reprezentând un
constructor pentru evidență (privită „în sine”) și asta în
cazul formulelor care nu mai necesită vreo (altă)
justificare, ele fiind de fapt valide
• Conform acestor definiții, vom avea și diverse tipuri de
echivalențe () între formule
LSSM - 18 • Continuăm partea de semantică cu introducerea
conceptului de model de plauzibilitate pentru LPJ
(ca particularizare din DEL), deocamdată pentru
sisteme cu un singur agent
Definiție. Un cadru de plauzibilitate este un cuplu I = W, unde W este o mulțime nevidă
de stări/lumi și W W este o relație
reflexivă, tranzitivă și totală.
• Totalitatea înseamnă că pentru fiecare
v, w W avem fie v w, fie w v, fie ambele;
adică „” este o relație de preordine totală, care
se mai numește și ordine de plauzibilitate
LSSM - 19
• Dacă privim „” ca pe o relație epistemică, vom
putea spune că dacă v w atunci agentul (unic)
nu știe cu siguranță în care dintre stări(le) v sau
w se află sistemul (în care „acționează”); dar
consideră/presupune că w este la fel de mult sau
chiar, poate, (mult) mai plauzibilă decât v (adică
„v ar conține mai multe informații vagi decât w” și
este mai puțin „credibilă”)
• Desigur, dacă v w și w v, atunci w este
(strict) mai plauzibilă decât v
• Iar dacă v w și w v, agentul va considera
ambele stări ca fiind egal plauzibile
LSSM - 20 • Ideea de mai sus (fără ceea ce am subliniat), legată
de interpretarea relației „” în sensul că v w
înseamnă că „w este mai plauzibilă decât v”, este
cumva contra-intuitivă (adică faptul că cele mai
plauzibile stări sunt cele „minimale în raport cu
preordinea „” ”)
• Lucrurile se schimbă dacă vom presupune în plus că
„” este bine-formată (well-founded), adică W nu
conține lanțuri infinite numărabile descrescătoare (w1
w2 ...; formal, este nevoie și de axioma alegerii...)
• Atunci am avea garantat faptul că mulțimea stărilor
cele mai plauzibile (minimale, în sensul precedent)
este bine definită, adică poate fi găsită algoritmic
LSSM - 21
• În consecință, deoarece „” este tranzitivă și
conectată (adică reflexivă și totală), agentul
poate considera că, în orice stare (a sistemului,
să zicem) ar fi (și în oricare alta ar „trece”), va
ști care este mai plauzibilă decât alta
Definiție. Un model de plauzibilitate este un cuplu M = I, V, unde I este un cadru de
plauzibilitate iar V este o funcție de evaluare,
V : A 2W.
• Să vedem acum ce fel de credințe (B) pot fi
descrise cu ajutorul unui model de plauzibilitate
LSSM - 22 • Mai întâi, să observăm că toate tipurile de credințe au
ceva în comun, care sigur le separă de cunoștințe (K):
există oricând posibilitatea ca o credință să fie în
realitate un fapt fals și nu unul adevărat
• Desigur că B rămân consistente: niciun agent nu va
crede simultan atât în F, cât și în F
• În continuare, ne plasăm în cadrul formal descris, presupunem că un model dat de plauzibilitate M este
finit, sau că relația „” este bine-formată
• Atunci putem considera mulțimea
Best(M) = {w W | (v W)(v w)} și putem
introduce „cea mai slabă” noțiune de credință, notată B, prin (este o modalitate, mai exact un operator unar):
LSSM - 23 M, w (B F) ddacă pentru fiecare v Best(M),
avem M, v F (să notăm că B nu este direct asociat cu relația „”)
• Astfel, un agent va crede (în) faptul/formula F (doar) dacă formula va fi adevărată în (toate) cele mai plauzibile stări (conform ordinii de plauzibilitate)
• Vom presupune în plus că modalitatea B este normalizată (adică satisface
(B(F G)) ((BF) (BG)))
• Acum putem defini o modalitate „de tip always/□”, care va fi numită credință sigură/safe belief, prin:
LSSM - 24 M, w (□F) ddacă pentru fiecare v W cu
w v, avem M, v F (e presupusă și ea a fi
normalizată)
• Prin urmare, un agent va avea o credință
sigură într-o formulă (o va crede cu
siguranță ca fiind adevărată), (doar) dacă
aceasta este satisfăcută în toate stările care
sunt la fel de plauzibile, sau mai mult, decât
starea curentă
• Am putea spune că „credința sigură implică
credința”
LSSM - 25 • Totuși, „siguranța” unei credințe ar putea fi
dedusă doar de către un „observator extern”,
deoarece pentru ca un agent să știe că una
dintre credințele sale este sigură, ar trebui să
cunoască în ce stare curentă se află (sistemul)
• În sfârșit, vom defini și noțiunea de credință
tare/strong belief într-o formulă/fapt F; asta însă
doar fixând presupunerile suplimentare: F este
satisfăcută în măcar o stare și toate stările în
care F este satisfăcută sunt mai plauzibile decât
toate stările în care F nu este satisfăcută
LSSM - 26 • Credința tare implică și ea credința, deși nu este
normalizată/normală
• Revenim acum la LPJ extinsă, de această dată „completă”, adică definită pentru mai mulți agenți, etc. (o vom nota la fel, începând de acum)
• Vom porni acum cu:
- A = {1, 2, ..., n}, o mulțime finită de agenți
- A = mulțime numărabilă de atomi
- Xi = mulțime numărabilă de variabile de „evidență”, pentru fiecare agent i A
• Toate mulțimile sunt disjuncte două câte două
LSSM - 27 • Clasa formulelor (notată F, sau LPJ) și clasa termilor de de evidență (T ) sunt date
prin BNF-urile (i A, j N, p A, xij Xi, g este un term care nu apare prin A, F
sau Xi-uri):
F ::= p | | (F) | (F F) | (KiF) | (□iF) | (t:iF) | ([t?]F) | (t »i F) | (Pit)
t ::= p | g | xij | ᵵ | t + t
• Aceste ultime definiții vor fi deci folosite de acum înainte
• După cum vedem, față de „vechiul” LPJ, nu mai există operatorii „•” sau „!”, nici o
mulțime E de constante de evidență (g va fi singura constantă de evidență)
• Se observă că în noul context formulele atomice sunt (și) termi
• Semnificația intuitivă a termilor de tip ᵵ, precum și a noilor formule (dedusă din
semantica operatorilor modali = modalităților introduși(se) mai sus) o vom da după
prezentarea semanticii formale
• Diferența dintre „vechea” logică a justificării și „noul” LPJ va fi generată de fapt
tocmai de diferența semantică dintre termii de evidență din cele două logici
• Vom folosi (uneori explicit) și operatorii duali, cum ar fi (putem pune și „”, „egal
prin definiție”, în loc de „”):
LSSM - 28 (KiF) ( (Ki(F)))
(◊iF) ( (□i(F)))
(t?F) ( [t?](F))
• Deși ar putea fi definiți analog, nu vom mai defini dualii pentru „»i”, Pi și :i, pentru că nu-i vom utiliza deloc
Definiție. Se numește cadru pentru LPJ un triplet I = W, {~i}i A, {i}i A, unde:
- W este o mulțime nevidă de stări.
- ~i W W este o relație de echivalență (i A).
- i W W este o relație reflexivă și tranzitivă
(i A).
LSSM - 29 - Mai mult, pentru fiecare i A, relațiile ~i și i
satisfac proprietatea ~i = i (i)-1, notată (*),
unde: (i)-1 = {v, w W W | w, v i}.
- Relația = (i A ~i) satisface următoarea
proprietate: pentru fiecare pereche de stări v, w W W, impunem ca v w, adică
există i A astfel încât v ~i w; această ultimă
proprietate se numește conectivitate slabă.
• Într-un cadru LPJ, relațiile „i” reprezintă relațiile de plauzibilitate pentru fiecare agent i A în
parte și sunt de fapr relații de preordine, similar
cu cazul agentului unic
LSSM - 30 • Tot ca în cazul agentului unic, dacă v i w, atunci
agentul i A (care nu știe cu siguranță în care dintre
stările „globale”, v și w, se află în realitate) va
considera că w este „la fel, sau (mult) mai plauzibilă”
decât v
• Deoarece relațiile „~i” sunt practic definite prin (*),
acestea sunt de fapt relații de indiscernabilitate între
stările fiecărui agent
• Să notăm că în noul „scenariu”, relațiile „i” nu mai
sunt totale, dacă sunt considerate individual; totuși,
proprietatea de conectivitate slabă va implica faptul că
fiecare pereche de stări dintr-un cadru dat, vor fi
indiscernabile una de alta pentru măcar un agent
LSSM - 31
Definiție. Un model pentru (o logică) LPJ este un triplet M = I, V, unde I este un cadru, V este o funcție
(de evaluare), V : A 2W, iar este o funcție de
evidență, : T 2W, care satisface condițiile:
- (p) = V (p), pentru fiecare p A.
- (g) = W.
- (ᵵ) = W \ (t).
- (t1 + t2) = (t1) (t2).
• Întrebări pentru voi: „Goriac”; de ce „finit” și „fixat
dinainte”; „intuiția” pentru construcția termilor de
evidență...(„bonus”...)
• Continuăm după ce v-ați gândit...(!)