Prototype Verification System Rick Erkens May 24th, 2017 Rick - - PowerPoint PPT Presentation

prototype verification system
SMART_READER_LITE
LIVE PREVIEW

Prototype Verification System Rick Erkens May 24th, 2017 Rick - - PowerPoint PPT Presentation

Prototype Verification System Rick Erkens May 24th, 2017 Rick Erkens May 24th, 2017 Prototype Verification System Background John Rushby, Stanford Research Institute Patrick Lincoln, Sam Owre, Natarajan Shankar, Ashish Tiwari Emacs


slide-1
SLIDE 1

Prototype Verification System

Rick Erkens May 24th, 2017

Rick Erkens May 24th, 2017 Prototype Verification System

slide-2
SLIDE 2

Background

  • John Rushby, Stanford Research Institute
  • Patrick Lincoln, Sam Owre, Natarajan Shankar, Ashish Tiwari
  • Emacs user interface
  • Google Scholar: 1907 citations
  • Described as a research prototype

Rick Erkens May 24th, 2017 Prototype Verification System

slide-3
SLIDE 3

System

  • Written in Common Lisp
  • Automation
  • NASA library: https://github.com/nasa/pvslib

Rick Erkens May 24th, 2017 Prototype Verification System

slide-4
SLIDE 4

Logic

  • Classical higher order logic
  • Dependent types

Rick Erkens May 24th, 2017 Prototype Verification System

slide-5
SLIDE 5

On partiality

“PVS and B-method handle partiality right”

Rick Erkens May 24th, 2017 Prototype Verification System

slide-6
SLIDE 6

On partiality

“PVS and B-method handle partiality right”

  • Freek Wiedijk, three weeks ago

Rick Erkens May 24th, 2017 Prototype Verification System

slide-7
SLIDE 7

On partiality

“PVS and B-method handle partiality right”

  • Freek Wiedijk, three weeks ago

nonzero: NONEMPTY_TYPE = {i:int | r /= 0\}} div: [int, nonzero -> int]

Rick Erkens May 24th, 2017 Prototype Verification System

slide-8
SLIDE 8

Some projects

Collins AAMP5 avionics processor

  • Microarchitecture
  • 108 out of 209 instructions
  • 500,000 transistors
  • Three-stage pipeline
  • Stack architecture
  • Autonomous subunits

Rick Erkens May 24th, 2017 Prototype Verification System

slide-9
SLIDE 9

Some projects

Verification of Biphase Mark Protocol, 2004

  • Frits Vaandrager and Adriaan de Groot
  • Clock tolerances found with Uppaal
  • Verification with PVS

Rick Erkens May 24th, 2017 Prototype Verification System

slide-10
SLIDE 10

Demo: sum of squares

n

  • i=0

i2 = n(n + 1)(2n + 1) 6

Rick Erkens May 24th, 2017 Prototype Verification System

slide-11
SLIDE 11

Mifare Classic Card

  • Bart Jacobs and Ronny Wichers Schreur
  • RFID smart card sold by NXP
  • Widely used
  • Card relied on secrecy of the algorithm

Rick Erkens May 24th, 2017 Prototype Verification System

slide-12
SLIDE 12

Mifare Classic Card

LfsrSize : nat = 48 state : TYPE = bvec[LfsrSize] MfCfeedback : [state -> bit] = LAMBDA (r:state) : r(0) XOR r(5) XOR r(9) XOR r(10) XOR r(12) XOR r(14) XOR r(15) XOR r(17) XOR r(19) XOR r(24) XOR r(25) XOR r(27) XOR r(29) XOR r(35) XOR r(39) XOR r(41) XOR r(42) XOR r(43)

Rick Erkens May 24th, 2017 Prototype Verification System

slide-13
SLIDE 13

Mifare Classic Card

shift1in : [state, bit -> state] = LAMBDA(r:state, b:bit) : LAMBDA(i:below(LfsrSize)) : IF i < LfsrSize - 1 THEN r(i+1) % shift left ELSE b XOR MfCfeedback(r) % put new value at % i = LfsrSize - 1 ENDIF

Rick Erkens May 24th, 2017 Prototype Verification System

slide-14
SLIDE 14

“Many of the details of the formalisation are inherently specific to the Mifare Classic card and its weaknesses. However, this work does show that formalisations are relatively easy to do and can be both precise and readable. This makes them a solid base for the documentation and analysis of cryptographic systems. Thus, this paper suggests to card producers that they do such formalisations themselves, before bringing a card onto the market.”

Rick Erkens May 24th, 2017 Prototype Verification System