1 Computergestützte Verifikation 28.6.2002. 2 Beispiel für Shape-Analysis Insert in Liste: x : nichtleere Liste x malloc(y) x y y -> n = x x y x = y x.

Slides:



Advertisements
Ähnliche Präsentationen
BSC & Report
Advertisements

Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Vorbereitung: struct knoten { int x; struct knoten *l, *r; } *b, *bh, **bp; b: Zeiger auf Wurzel bh: Hilfszeiger bp: Zeiger auf Zeiger auf knoten b bp.
Klassen - Verkettete Liste -
Hochschule Fulda – FB ET Sommersemester 2010
Programmierung 1 - Repetitorium
Programmierung 1 - Repetitorium
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Funktionen und Module Einführung anhand des Beispiels Wörter sortieren Timm Grams Fachhochschule Fulda Fachbereich Elektrotechnik und Informationstechnik.
Rekursion vs. Iteration
Hochschule Fulda – FB ET Sommersemester 2010
Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Zehn Jahre Forschung am Institut für Abfallwirtschaft und Altlasten. Fakultät für Forst-, Geo und Hydrowissenschaften, Institut für Abfallwirtschaft und.
Lösung 6.3 Denksportaufgabe
Übung 6.6Schranken 1.Angenommen, Ihr Algorithmus habe einen Aufwand von g(n) = 5n 3 + n für alle n a)Geben sie eine obere Schranke O(g(n)) an. b)Beweisen.
1 Computergestützte Verifikation Symbolisches Model Checking 4.1 CTL Model Checking mit Binary Decision Diagrams (1. Systeme 2. Spezifikationen.
1 Computergestützte Verifikation Probleme bei der Softwareverifikation 1.komplexe Datentypen und Expressions 2.Pointer und dynamische Datenstrukturen.
1 Computergestützte Verifikation Teil II Infinite State Systems.
1 Computergestützte Verifikation SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.
Computergestützte Verifikation
Zusammenfassung Risiken sind Bestandteil jeder Projektarbeit
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Testing Frameworks im Internet Testing Framework (xUnit, unit testing)
Schleifen-beobachtung
WHILE - Anweisung.
DO...WHILE Anweisung.
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (13 – Offenes Hashing) Prof. Th. Ottmann.
Beispiel in einer Karte
Themenbuch Wichtige Mathematiker. Themenbuch © Beutelspacher Mai 2005 Seite 2 Themen Es geht um jeweils einen wichtigen Mathematiker Informieren Sie sich!

Das Alternating-Bit-Protokoll: Modellierung und Verifikation
Operationen auf verketteten Listen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. D. Dörschlag Einführung in die Programmierung mit Java.
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
Vorbereitung: struct SX { int x; struct SX *p; } *px, *ph; px: Zeiger auf Listen- anfang ph: Hilfszeiger px = NULL; px zeigt auf leere Liste px.
A. Zündorf, SE Group Reverse Engineering K2 1 Ziele Heute Compilerbau Nachlese Ausnutzung von Laufzeittypinformation.
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
Programmierung 1 - Repetitorium WS 2002/2003 Programmierung 1 - Repetitorium Andreas Augustin und Marc Wagner Homepage:
15.1 Synchronisation nebenläufiger Prozesse
Einfach verkettete Listen
INSTITUT FÜR DATENTECHNIK UND KOMMUNIKATIONS- NETZE 1 Harald Schrom ViEWcon08.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Abteilung für Telekooperation Übung Softwareentwicklung 1 für Wirtschaftsinformatik Dr. Wieland Schwinger
Eine Implementierung einer effiziente externe geordnete (!) lineare Liste Operationen: Search(x) Insert(x) Delete(x)
Die Computer der Zukunft?
Diskrete Mathematik II
Geschäftsdeutsch: 28. Januar Welthandelspartner Warum exportiert Deutschland? Was importiert Deutschland? Wie steht die Handelsbilanz zwischen DE.
Aggregatsfunktion SQL = Structured Query Language.
Programmieren in C Dynamische Listen / Bäume
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Geschachtelte Verbindung (1) Geschachtelte Schleife, in der jeder Datensatz in Datei R (hier: BUCHUNG) mit jedem Datensatz in S (hier: FLUG) verglichen.
Agenda für heute, 28. April, 2005 Strukturierte VariablenStrukturierte Variablen Arrays.
Gruppe: 31 Grundlagen wissenschaftlichen Arbeitens Algorithmen und Datenstrukturen Iris Studeny.
Vorlesung 3. if else Anweisung if (Ausdruck) Anweisung1 else Anweisung2 Ausdruck hat einen von 0 verschiedenen Wert, so wird Anweisung 1 ausgeführt. Bei.
Vorlesung 5. #include double fv(double x) { return sin(x); } int main(){ int i,N=10; double a=1,b=2,del,x,sum,f,integral; for(i=1,sum=0.0,del = (b-a)/N;i
Datenbankanbindung mit
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
ÜBERSCHRIFTEN <H1> Überschrift 1 </H1>
Computergestützte Verifikation
CuP - Java Achte Vorlesung Entspricht ungefähr Kapitel 4.1 des Skriptums Montag, 28. Oktober 2002.
Der Design-Flow eines ASIC
Wandel im Geschlechterverhältnis
Informatik Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholugnsanweisungen 3. Beschreibung von Abläufen durch Algorithmen 3.3 Wiederholungsanweisungen.
X. Übungsblatt – Aufgabe X Bestimmen Sie jeweils die disjunktive Normalform (DNF) der Folgenden Funktionen: a)f 1 = b)f 2 = c)Bestimmen Sie die primären.
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
Einführung in die Informationsverarbeitung Teil Thaller Stunde II: Datenstrukturen Köln 27. Oktober 2011.
Binomische Formeln
Titellayout Untertitel.
Sidemap Topic Dokumente
Density Estimation Tim Pfeifle Technische Universität München Fakultät für Informatik Garching, 08. June 2017.
 Präsentation transkript:

1 Computergestützte Verifikation

2 Beispiel für Shape-Analysis Insert in Liste: x : nichtleere Liste x malloc(y) x y y -> n = x x y x = y x y Coarsening xy

3 Beispiel statisch 1 read(n); 2 i := 1; 3 sum := 0; 4 product := 1; 5 while i <= n do 6sum := sum + 1; 7product := product * i; 8i := i + 1; end 9 write(sum); 10 write(product); (product,10) 1 read(n); 2 i := 1; 4 product := 1; 5 while i <= n do 7product := product * i; 8i := i + 1; end 10 write(product);

4 9. Sonstiges Ziel: In einigen weiteren Domains Tragfähigkeit der gelernten Konzepte testen

5 9.1 Hybride Systeme hybrid = kontinuierliche + diskrete Variablen Hybrider Automat: Einlaufen Auslaufen h>= max h <= min h [ -0.5,0.7] h [ -0.8,0.9] (Der hier ist ein linearer Automat: x [c1,c2])

6 Verifikation linearer hybrider Automaten geometrische Abstraktionen, z.B. Polyeder – analog Zonen mehrere andere geometrische Formen, u.a. Ellipsen Tool: HyTech (Berkeley)

7 Verifikation allg. hybrider Automaten numerische Verfahren Fehlerbetrachtung notwendig Tool: CheckMate (CMU) Flowpipe ,6,7

8 9.2 Kompositionale Verifikation System in Komponenten zerlegen Komponenten verifizieren Eigenschaft des Gesamtsystems schlußfolgern Assume-Guarantee-Reasoning

9 Komponierte Systeme Interessant vor allem: parallele Komposition Komponente = Transitionssystem (mit benannten Aktionen) Parallele Komposition S1 || S2: S = S1 x S2 Übergänge: synchronisiert, wenn Aktion in A1 A2, sonst allein

10 Assume-Guarantee { } S { }, z.B. aus LTL-X heißt: Jeder Pfad, der erfüllt und in S möglich ist, erfüllt.

11 Eine Kompositionsregel unglaublich, aber wahr: { } S1 { } { } S2 { } ____________ { } S1 || S2 { } Grund: Jeder Pfad in S1 || S2 ist auch in S1 möglich

12 Problem: Zyklen Mit || kann man keine ringförmige Argumentation aufbauen, und Assume-Guarantee in Ringen taugt nix Aus { i } Si { (i+1) mod k } folgt nichts für Gesamtsystem

13 Invarianten in Systemen mit Zyklen Wenigstens geht Verifikation von Invarianten (G ) auch in ringförmigen Systemen { i } Familie von Formeln mit Halbordnung Zeigen für alle j,k in Komponenten: Aus i gilt bis Schritt k, falls i i - i gilt bis Schritt k-1, sonst folgt - j gilt in Schritt k Dann gilt G ( 1... n ) im Gesamtsystem

Parametrisierte Systeme Unendliche Familie gleich strukturierter Komponenten (z.B. Ring mit beliebig vielen Komponenten) Wollen Resultat, das für jede Instanz gilt

15 Induktion gilt für System mit 0 oder 1 Komponente Model Checking I)Wenn für System mit max. k Komponenten, so auch mit k+1 Komponenten kompliziert. Meist manuell. z.B.: Versuche, 2 oder mehr Komponenten derart zu abstrahieren, daß sich Resultat wie 1 Komponente verhält

16 Small Model Properties Viele Logiken, auch temporale, haben Eigenschaften der Form Wenn in irgendeinem Modell gilt, so gibt es auch ein Modell der Größe k, wo gilt. k z.B. Anzahl der freien Variablen in Parametrisiertes Problem kann auf endlich viele Model Checking Probleme reduziert werden

Security-Protokolle Betrachten nicht: Verschlüsselung/Entschlüsselung, sondern vor allem: Verbindungsaufbau, Authentifizierung,... Perfekte Verschlüsselung = Inhalt einer verschlüsselten Nachricht ist ohne Schlüssel nicht verfügbar Begrenzter Zufall = Wenn eine Zufallszahl (Nonce) Bestandteil einer verschlüsselten Nachricht ist, gibt es keine Möglichkeit, den Wert dieser Zahl zu ermitteln, als die Nachricht zu entschlüsseln. Beide Annahmen falsch, aber sinnvoll.

18 Beispiel 1 Austausch geheimer Information N A, N B (z.B. Session Key) A B {A,N A } PKB {N A,N B } PKA {N B } PKB Attacke: A B {A,N A } PKB {N A,N C } PKA {N C } PKB C {A,N A } PKC {N A,N C } PKA {N C } PKC C glaubt, mit A zu kommunizieren, anstatt mit B

19 Beispiel 2 A B: A B A: N B A B: {N B } KAS B S: {A,{N B } KAS } KBS S B {N B } KBS Attacke: C B : A C B: C B A(C): N B B C: N B C B: {N B } KCS B S:{A,{N B } KCS } KBS B S: {C,{N B } KCS } KBS S B:{N B } KBS S B: error

20 Elemente von Security-Protokollen Teilnehmer (A,B, Server, Intruder,....) Kanäle (unsicher, d.h. Intruder kann abfangen, selbst senden usw.) Inhalte (Daten, Nonces, Timestamps) Schlüssel (symmetrisch oder asymmetrisch) Verschlüsselte Nachrichten {... } K Ableitbares Wissen: 1.Jede gesendete Nachricht 2.{ bla } K + K bla 3.bla + K { bla } K

21 Model Checking Zustand: -ehrliche Teilnehmer + Abarbeitungszustand -Intruder, evt. personifiziert als ehrlicher Teilnehmer + abgeleitetes Wissen -1 oder mehrere Protokollinstanzen Übergänge: ehrliche Agenten: laut Protokoll Intruder: beliebiger Nichtdeterminismus, außer Annahmen nach perfekter Verschlüsselung, nach jedem Schritt Abschluss bzgl. ableitbarem Wissen

22 Alternative: Modale Logik A glaubt Wenn A glaubt, Nachricht M kommt von B, dann kommt Nachricht M von B Beweissysteme, SPI-Calculus, spezifische Model Checker für solche modalen Logiken Andere Typen von Attacken brauchen andere Verifikationstechniken, z.B. Denial-of-Service E-Commerce: A glaubt reicht nicht, stattdessen: A kann Dritten gegenüber nachweisen

Worst-Case-Execution-Time-Analyse geg: Programm, Prozessor, Taktfrequenz ges: max. Abarbeitungszeit T: jede Ausführung braucht garantiert nicht länger als T T möglichst klein Probleme im Low-Level und im High-Level-Bereich

24 Low-Level Probleme -Pipelining -Pre-Fetch, Branch-Prediction -Instruction Cache, Datencache nicht unbedingt unser Problem, aber es gibt z.B. zur Cache-Analyse Ansätze, die auf Abstract Interpretation beruhen

25 High-Level Probleme Wie oft werden Schleifen durchlaufen? if B1 then {7 ms} else {5 ms} end; if B2 then {8 ms} else {3 ms} end; Max. 15? Nur wenn B1 B2 erfüllbar Model Checking könnte helfen, High Level-Probleme zu lösen. (in etablierten Tools werden max. Durchlaufzahlen vom Nutzer vorgegeben)

26 Model Checking für HL-WCET geg.: WCET für Basic Blocks (verzweigungsfreie Teile) aus LL-WCET Analyse Programm annotieren: wcet := 0... if B then wcet += k1;... else wcet += k2;... end... while B do wcet += k3;... end...

27... while-Schleifen k Iterationen abwickeln, k+1-te Iteration mit Label L markieren. Programm zu SAT-Checker schicken: - falls EF L erfüllbar, k vergrößern - Per Binärschachtelung kleinstes T finden, wo AG wcet < T gilt Ausgabe T