SlideShare a Scribd company logo
Machine Assisted Verification Tools for
Cryptography
Paulo Silva1

Manuel Barbosa1

1 Departamento de Informática
Computer Science and Technology Centre (CCTC/DI)
Universidade do Minho
Portugal

October 13, 2010
Computer Aided Cryptography Engineering (CACE)

European FP7 Project
(http://www.cace-project.eu)
Overal objectives:
Design, develop and deploy a toolbox for cryptographic
software engineering
Allow non-experts to develop high-level cryptographic
applications using cryptography-aware programming
languages and tools

Our group is responsible for the Work Package 5 (WP5):
Formal Verification and Validation of Cryptographic
Software
Formal Verification and Validation (WP5)

Adapt validation, verification and certification of secure
software techniques to the CACE project
Extend languages and tools to include machine assisted
verification of correctness and conformance to security
policies
Implement a certified shared library core
CAO Language
CAO Language

Small and simple domain specific language
Geared toward the automatic production of highly efficient
target code subject to security-aware optimizations
Close to cryptographic standards
Type system supports cryptographic types such as bit
strings, matrices and field extensions
We have a complete formalization of CAO’s:
Syntax
Semantics
Type system

We have implemented a fully functional CAO interpreter
CAO Language Example (AES fragment)
typedef GF2 := mod[ 2 ];
typedef GF2N :=
mod[ GF2<X> / X**8 + X**4 + X**3 + X + 1 ];
typedef S
:= matrix[4,4] of GF2N;
def mix : matrix[4,4] of GF2N
{[X],[X+1],[1],[1],
[1],[X],[X+1],[1],
[1],[1],[X],[X+1],
[X+1],[1],[1],[X]};

:=

def MixColumns( s : S ) : S {
def r : S;
seq i := 0 to 3 {
r[0..3,i] := mix * s[0..3,i]; }
return r; }
Deductive Verification
Deductive Verification

Tools based on variations of Hoare logic
Axioms and inference rules capture the semantics of
imperative languages
Programs are bound to contracts: a pre- and a
post-condition
If pre-condition is met at the inputs, program guarantees
post-conditions at the outputs
Deductive Verification
Annotation Language (CAO-SL) Properties that must be
proven (specification) and extra information to
facilitate verification are included in source code
as annotations.
Verification condition generator (VCGen) The annotated
program is used to generate a set of proof
obligations. The validity of these proof obligations
will imply that the software is indeed correct with
respect to the specification.
Proof generation Proof obligations are theorems of first-order
logic that must be proven, using a first-order
automatic proof tool (e.g. Simplify) or a proof
assistant (e.g. Coq) to construct the proof.
CALF Language
CALF Language

Higher-level than CAO
More powerful abstraction to write generic code
A suitable candidate for direct translation and
implementation of cryptographic standards
Static verification and pre-processing tool for enhanced
CAO source code.
CALF to CAO compiler

High-assurance compiler that translates CALF to CAO
code
Advanced type system based on dependent types to
ensure that certain properties are met
More manageable than deductive verification
May be used to reduce the number of proof obligations
Example: ensures that the access to a vector position is
within bounds (memory safe)
CALF Language Example (RSA fragment)

typedef RSAPub<(n : int)> :=
struct [ def e : int; ];
def RSA<(n : int)>(k : RSAPub<(n)>, m : int ) : int
{
def c : mod[n];
c := (mod[n]) m;
c := c ** k.e;
return (int) c;
}
Ongoing Work

Proofs about CAO formalization, namely, type safety
Data type classifiers
Verification of cryptographic libraries (NaCl)
Compiler from CAO to C

More Related Content

What's hot

RajeswaraRao_Resume_3years
RajeswaraRao_Resume_3yearsRajeswaraRao_Resume_3years
RajeswaraRao_Resume_3years
Rajeswara K
 
NAVEENRAJ B KALI
NAVEENRAJ B KALINAVEENRAJ B KALI
NAVEENRAJ B KALI
naveen215
 
Rahul_Ramani_Profile
Rahul_Ramani_ProfileRahul_Ramani_Profile
Rahul_Ramani_Profile
Rahul Ramani
 
Resume lukeman hakkimsheikalavudeen
Resume   lukeman hakkimsheikalavudeenResume   lukeman hakkimsheikalavudeen
Resume lukeman hakkimsheikalavudeen
lukemanHakkim
 
Pro_Tools_Tier_1 cert
Pro_Tools_Tier_1 certPro_Tools_Tier_1 cert
Pro_Tools_Tier_1 cert
Travis Felker
 
Mesa_Yogananda_ASIC_FPGA_Verification
Mesa_Yogananda_ASIC_FPGA_VerificationMesa_Yogananda_ASIC_FPGA_Verification
Mesa_Yogananda_ASIC_FPGA_Verification
Yogananda Mesa
 

What's hot (18)

Using gcov and lcov
Using gcov and lcovUsing gcov and lcov
Using gcov and lcov
 
resume_Harikrishnan
resume_Harikrishnanresume_Harikrishnan
resume_Harikrishnan
 
Ramya Resume
Ramya ResumeRamya Resume
Ramya Resume
 
RajeswaraRao_Resume_3years
RajeswaraRao_Resume_3yearsRajeswaraRao_Resume_3years
RajeswaraRao_Resume_3years
 
Robin Singh-Fd
Robin Singh-FdRobin Singh-Fd
Robin Singh-Fd
 
Anjaneya Gupta_CV
Anjaneya Gupta_CVAnjaneya Gupta_CV
Anjaneya Gupta_CV
 
Manoj_Resume
Manoj_ResumeManoj_Resume
Manoj_Resume
 
Updated Resume
Updated ResumeUpdated Resume
Updated Resume
 
NAVEENRAJ B KALI
NAVEENRAJ B KALINAVEENRAJ B KALI
NAVEENRAJ B KALI
 
Software Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code QualitySoftware Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code Quality
 
Rahul_Ramani_Profile
Rahul_Ramani_ProfileRahul_Ramani_Profile
Rahul_Ramani_Profile
 
Kumar_J
Kumar_JKumar_J
Kumar_J
 
Resume lukeman hakkimsheikalavudeen
Resume   lukeman hakkimsheikalavudeenResume   lukeman hakkimsheikalavudeen
Resume lukeman hakkimsheikalavudeen
 
Pro_Tools_Tier_1 cert
Pro_Tools_Tier_1 certPro_Tools_Tier_1 cert
Pro_Tools_Tier_1 cert
 
SonarQube와 함께하는 소프트웨어 품질 세미나 - 지속적인 코드 인스펙션 SonarQube 활용 방안
SonarQube와 함께하는 소프트웨어 품질 세미나 - 지속적인 코드 인스펙션 SonarQube 활용 방안SonarQube와 함께하는 소프트웨어 품질 세미나 - 지속적인 코드 인스펙션 SonarQube 활용 방안
SonarQube와 함께하는 소프트웨어 품질 세미나 - 지속적인 코드 인스펙션 SonarQube 활용 방안
 
Resume
ResumeResume
Resume
 
Mesa_Yogananda_ASIC_FPGA_Verification
Mesa_Yogananda_ASIC_FPGA_VerificationMesa_Yogananda_ASIC_FPGA_Verification
Mesa_Yogananda_ASIC_FPGA_Verification
 
Pro Tools Tier 2
Pro Tools Tier 2Pro Tools Tier 2
Pro Tools Tier 2
 

Similar to Machine Assisted Verification Tools for Cryptography

Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approach
Aleksandr Tsertkov
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudy
Primesoftinc
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
Bill Duncan
 
devops ppt for hjs jsdjhjd hsdbusinees.pptx
devops ppt for hjs jsdjhjd hsdbusinees.pptxdevops ppt for hjs jsdjhjd hsdbusinees.pptx
devops ppt for hjs jsdjhjd hsdbusinees.pptx
Deepakgupta273447
 
Devops certification training task 08
Devops certification training task  08Devops certification training task  08
Devops certification training task 08
GURUPRASANTH33
 
Indresh_Yadav_Resume
Indresh_Yadav_ResumeIndresh_Yadav_Resume
Indresh_Yadav_Resume
Indresh yadav
 

Similar to Machine Assisted Verification Tools for Cryptography (20)

20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
20070925 03 - La qualimétrie en environnement industriel (Schneider automation)
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
 
Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approach
 
Psi multi accessgateway_casestudy
Psi multi accessgateway_casestudyPsi multi accessgateway_casestudy
Psi multi accessgateway_casestudy
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
Embedded services by Faststream Technologies
Embedded services by Faststream TechnologiesEmbedded services by Faststream Technologies
Embedded services by Faststream Technologies
 
Sumanth
SumanthSumanth
Sumanth
 
Ramesh gupta cv
Ramesh gupta cvRamesh gupta cv
Ramesh gupta cv
 
XINTscope
XINTscopeXINTscope
XINTscope
 
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
Upgrade your InfoSec, Ops and Dev teams with PCF 1.12
 
devops ppt for hjs jsdjhjd hsdbusinees.pptx
devops ppt for hjs jsdjhjd hsdbusinees.pptxdevops ppt for hjs jsdjhjd hsdbusinees.pptx
devops ppt for hjs jsdjhjd hsdbusinees.pptx
 
What's New in Helix QAC 2019.1
What's New in Helix QAC 2019.1What's New in Helix QAC 2019.1
What's New in Helix QAC 2019.1
 
CV Nagaraju Sreeram
CV Nagaraju SreeramCV Nagaraju Sreeram
CV Nagaraju Sreeram
 
Amit Bhandari
Amit BhandariAmit Bhandari
Amit Bhandari
 
Devops certification training task 08
Devops certification training task  08Devops certification training task  08
Devops certification training task 08
 
Embedded firmware
Embedded firmwareEmbedded firmware
Embedded firmware
 
Qualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDzQualidade de Software em zOS usando IBM Debug Tool e RDz
Qualidade de Software em zOS usando IBM Debug Tool e RDz
 
Security Validation
Security ValidationSecurity Validation
Security Validation
 
Indresh_Yadav_Resume
Indresh_Yadav_ResumeIndresh_Yadav_Resume
Indresh_Yadav_Resume
 
Coverity Data Sheet
Coverity Data SheetCoverity Data Sheet
Coverity Data Sheet
 

More from Paulo Silva (6)

Compiling CAO: From Cryptographic Specifications to C Implementations
Compiling CAO: From Cryptographic Specifications to C ImplementationsCompiling CAO: From Cryptographic Specifications to C Implementations
Compiling CAO: From Cryptographic Specifications to C Implementations
 
Galois: A Language for Proofs Using Galois Connections and Fork Algebras
Galois: A Language for Proofs Using Galois Connections and Fork AlgebrasGalois: A Language for Proofs Using Galois Connections and Fork Algebras
Galois: A Language for Proofs Using Galois Connections and Fork Algebras
 
On the Design of a Galculator
On the Design of a GalculatorOn the Design of a Galculator
On the Design of a Galculator
 
Galculator: Functional Prototype of a Galois-connection Based Proof Assistant
Galculator: Functional Prototype of a Galois-connection Based Proof AssistantGalculator: Functional Prototype of a Galois-connection Based Proof Assistant
Galculator: Functional Prototype of a Galois-connection Based Proof Assistant
 
On the Design of a Galculator
On the Design of a GalculatorOn the Design of a Galculator
On the Design of a Galculator
 
Dependent Types for Cryptography Implementations
Dependent Types for Cryptography ImplementationsDependent Types for Cryptography Implementations
Dependent Types for Cryptography Implementations
 

Recently uploaded

Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Peter Udo Diehl
 

Recently uploaded (20)

In-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT ProfessionalsIn-Depth Performance Testing Guide for IT Professionals
In-Depth Performance Testing Guide for IT Professionals
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 

Machine Assisted Verification Tools for Cryptography

  • 1. Machine Assisted Verification Tools for Cryptography Paulo Silva1 Manuel Barbosa1 1 Departamento de Informática Computer Science and Technology Centre (CCTC/DI) Universidade do Minho Portugal October 13, 2010
  • 2. Computer Aided Cryptography Engineering (CACE) European FP7 Project (http://www.cace-project.eu) Overal objectives: Design, develop and deploy a toolbox for cryptographic software engineering Allow non-experts to develop high-level cryptographic applications using cryptography-aware programming languages and tools Our group is responsible for the Work Package 5 (WP5): Formal Verification and Validation of Cryptographic Software
  • 3. Formal Verification and Validation (WP5) Adapt validation, verification and certification of secure software techniques to the CACE project Extend languages and tools to include machine assisted verification of correctness and conformance to security policies Implement a certified shared library core
  • 5. CAO Language Small and simple domain specific language Geared toward the automatic production of highly efficient target code subject to security-aware optimizations Close to cryptographic standards Type system supports cryptographic types such as bit strings, matrices and field extensions We have a complete formalization of CAO’s: Syntax Semantics Type system We have implemented a fully functional CAO interpreter
  • 6. CAO Language Example (AES fragment) typedef GF2 := mod[ 2 ]; typedef GF2N := mod[ GF2<X> / X**8 + X**4 + X**3 + X + 1 ]; typedef S := matrix[4,4] of GF2N; def mix : matrix[4,4] of GF2N {[X],[X+1],[1],[1], [1],[X],[X+1],[1], [1],[1],[X],[X+1], [X+1],[1],[1],[X]}; := def MixColumns( s : S ) : S { def r : S; seq i := 0 to 3 { r[0..3,i] := mix * s[0..3,i]; } return r; }
  • 8. Deductive Verification Tools based on variations of Hoare logic Axioms and inference rules capture the semantics of imperative languages Programs are bound to contracts: a pre- and a post-condition If pre-condition is met at the inputs, program guarantees post-conditions at the outputs
  • 9. Deductive Verification Annotation Language (CAO-SL) Properties that must be proven (specification) and extra information to facilitate verification are included in source code as annotations. Verification condition generator (VCGen) The annotated program is used to generate a set of proof obligations. The validity of these proof obligations will imply that the software is indeed correct with respect to the specification. Proof generation Proof obligations are theorems of first-order logic that must be proven, using a first-order automatic proof tool (e.g. Simplify) or a proof assistant (e.g. Coq) to construct the proof.
  • 11. CALF Language Higher-level than CAO More powerful abstraction to write generic code A suitable candidate for direct translation and implementation of cryptographic standards Static verification and pre-processing tool for enhanced CAO source code.
  • 12. CALF to CAO compiler High-assurance compiler that translates CALF to CAO code Advanced type system based on dependent types to ensure that certain properties are met More manageable than deductive verification May be used to reduce the number of proof obligations Example: ensures that the access to a vector position is within bounds (memory safe)
  • 13. CALF Language Example (RSA fragment) typedef RSAPub<(n : int)> := struct [ def e : int; ]; def RSA<(n : int)>(k : RSAPub<(n)>, m : int ) : int { def c : mod[n]; c := (mod[n]) m; c := c ** k.e; return (int) c; }
  • 14. Ongoing Work Proofs about CAO formalization, namely, type safety Data type classifiers Verification of cryptographic libraries (NaCl) Compiler from CAO to C