SlideShare a Scribd company logo
1 of 19
Download to read offline
The Cryptol Experience

     Pedro Pereira             Ulisses Costa

    Formal Methods in Software Engineering


                   July 27, 2009




Pedro Pereira, Ulisses Costa   The Cryptol Experience
Last milestone’s recap!




We showed you
    Cryptol → VHDL translation
    Hardware performance analysis
    Real application of the verification framework




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Electronic Design Automation with Cryptol



1   Write Cryptol specification closely resembling the
    mathematical one
2   Convert top-level function into stream model for performance
    analysis
3   Substitute unsupported constructs for compilation
4   Use verification framework for safety and equivalence checking
5   Adjust implementation according to space and time
    requirements




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone I



We had to
    Learn the Cryptol language
    Create a SNOW 3G specification

We consulted
    SNOW 3G specification
    Programming guide
    Examples folder




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone I




Overall
    SNOW 3G is composed of simple manipulations and has a
    strong mathematical structure
    Clear and compact functional specification in Cryptol
    Quick specification process




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone I



Programming guide
    Well written
    Cryptol definitions could be displayed in a different style
    Block cipher operation modes?

Examples
    Great for watching Cryptol in action
    Perhaps two different specification-oriented case studies




               Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone II




We had to
    Generate an efficient and equivalent C implementation

We consulted
    Tools user guide
    Pragmatic Equivalence and Safety Checking in Cryptol




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone II




Overall
    We didn’t quite grasp the difference between SBV and C
    Optimizations?
    We learned a lot about the verification framework




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone II



Tools user guide
    Lacks some information regarding interpreter modes and
    respective differences
    Could use better formatting in some sections

PESCC
   Contains everything needed to know about the verification
   framework
    Maybe not suitable/relevant for the end-user




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone III




We had to
    Generate an efficient and equivalent VHDL implementation

We consulted
    FPGA tutorial




             Pedro Pereira, Ulisses Costa   The Cryptol Experience
Milestone III




Opinions
    :help <options>
    FPGA tutorial also lacks a more consistent formatting
    Some information could have gone to the tools user guide
    We learned a lot about EDA but...




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
As promissed!

MULxPOW

MULxPOW : ([8] , [8] , [8]) -> [8];
MULxPOW (v ,i , c ) = res @ i
  where res = [ v ] # [| MULx (e , c ) || e <- res |];


   The latency of this implementation is 28 , because Cryptol
   needs the static latency ⇒ latency of this circuit is equal to
   the worst-case latency
   But the third parameter is always the same and the second
   one only instantiates 8 possible values
   We can be more efficient by implementing it as 8 static
   lookup tables with 256 8-bit elements each ⇒ BlockRAMs


             Pedro Pereira, Ulisses Costa   The Cryptol Experience
Even better




DIVα and MULα are responsible for updating the LFSR
2 static lookup tables with 256 32-bit elements each!


          Pedro Pereira, Ulisses Costa   The Cryptol Experience
SPIR Report

=== Summary of Path Timing Estimates ===
Overall clock period: 8.38 ns (119.3 MHz )
Input pin to flip-flop: 1.94 ns (514.7 MHz )
Flip-flop to flip-flop: 7.72 ns (129.6 MHz )
Flip-flop to output pin: 8.38 ns (119.3 MHz )
Input pin to output pin: No paths

=== Summary of Size Estimates ===
Estimated total size: about 6848 LUTs , 2776 Flipflops

=== Circuit Timing ===
circuit latency: 37 cycles (36 cycles plus propagation delay )
circuit rate: one element per cycle
output length: unbounded
total time: unbounded

               Pedro Pereira, Ulisses Costa   The Cryptol Experience
Pipelining?



reg pragma
     Sequential circuits in the stream model can be pipelined
    Separation of a function into several smaller computational
    units
    Each unit is a stage in the pipeline consuming output from
    previous stage and producing output to the next
    Can increase clockrate and throughput




               Pedro Pereira, Ulisses Costa   The Cryptol Experience
Pipelining!



Timing Summary:
Minimum period: 6.214 ns (Maximum Frequency: 160.930 MHz)
Minimum input arrival time before clock: 2.892 ns
Maximum output required time after clock: 11.497 ns
Maximum combinational path delay: No path found

Device Utilization (size summary):
Number of Slices: 1212 out of 14752 8%
Number of Slice Flip Flops: 1810 out of 29504 6%
Number of 4 input LUTs: 2192 out of 29504 7%




              Pedro Pereira, Ulisses Costa   The Cryptol Experience
Comparison




   Implementation             Frequency (MHz)                      Throughput (Mbps)
Proposed SNOW 3G                    160                                  5120
     SNOW 3G                        249                                  7968
     SNOW 3G                        100                                  2500
     SNOW 2.0                       141                                  4512
     SNOW 1.0                       66.5                                 2128




           Pedro Pereira, Ulisses Costa   The Cryptol Experience
The Big Question




    We claim that non-hardware people can get good
results by working in Cryptol and would like to confirm or
deny that claim.
                                                                  Galois, Inc.


                              Yes, we can!




          Pedro Pereira, Ulisses Costa   The Cryptol Experience
(Other) Questions




                                       ?




        Pedro Pereira, Ulisses Costa       The Cryptol Experience

More Related Content

What's hot

IPLOG-BSidesROC-2015
IPLOG-BSidesROC-2015IPLOG-BSidesROC-2015
IPLOG-BSidesROC-2015
Leo Jotib
 
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
Kernel TLV
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
어형 이
 

What's hot (20)

IPLOG-BSidesROC-2015
IPLOG-BSidesROC-2015IPLOG-BSidesROC-2015
IPLOG-BSidesROC-2015
 
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro NakajimaDPDK Summit 2015 - NTT - Yoshihiro Nakajima
DPDK Summit 2015 - NTT - Yoshihiro Nakajima
 
Dpdk performance
Dpdk performanceDpdk performance
Dpdk performance
 
DPDK in Containers Hands-on Lab
DPDK in Containers Hands-on LabDPDK in Containers Hands-on Lab
DPDK in Containers Hands-on Lab
 
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
DPDK Summit - 08 Sept 2014 - 6WIND - High Perf Networking Leveraging the DPDK...
 
How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.How to Speak Intel DPDK KNI for Web Services.
How to Speak Intel DPDK KNI for Web Services.
 
High Definition On MPEG In Internet Protocol (Wbm Comments)
High Definition On MPEG In Internet Protocol (Wbm Comments)High Definition On MPEG In Internet Protocol (Wbm Comments)
High Definition On MPEG In Internet Protocol (Wbm Comments)
 
Debug generic process
Debug generic processDebug generic process
Debug generic process
 
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
 
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics WorkshopLagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
Lagopus presentation on 14th Annual ON*VECTOR International Photonics Workshop
 
VPP for Stateless SRv6/GTP-U Translation
VPP for Stateless SRv6/GTP-U TranslationVPP for Stateless SRv6/GTP-U Translation
VPP for Stateless SRv6/GTP-U Translation
 
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
BPF  & Cilium - Turning Linux into a Microservices-aware Operating SystemBPF  & Cilium - Turning Linux into a Microservices-aware Operating System
BPF & Cilium - Turning Linux into a Microservices-aware Operating System
 
Cilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPFCilium - API-aware Networking and Security for Containers based on BPF
Cilium - API-aware Networking and Security for Containers based on BPF
 
Wireshar training
Wireshar trainingWireshar training
Wireshar training
 
Precision Timing Protocol NAB2010
Precision Timing Protocol NAB2010Precision Timing Protocol NAB2010
Precision Timing Protocol NAB2010
 
netfilter and iptables
netfilter and iptablesnetfilter and iptables
netfilter and iptables
 
debugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitchdebugging openstack neutron /w openvswitch
debugging openstack neutron /w openvswitch
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
presentation
presentationpresentation
presentation
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
 

Viewers also liked (9)

Rac Seminar Presentation 30.04.08
Rac Seminar Presentation 30.04.08Rac Seminar Presentation 30.04.08
Rac Seminar Presentation 30.04.08
 
Captura de Informação em Rede
Captura de Informação em RedeCaptura de Informação em Rede
Captura de Informação em Rede
 
LDAP em VDM++
LDAP em VDM++LDAP em VDM++
LDAP em VDM++
 
Apresentacao JML
Apresentacao JMLApresentacao JML
Apresentacao JML
 
frizzled blush
 frizzled blush frizzled blush
frizzled blush
 
Fast Resilient Jumbo Frames in Wireless LANs
Fast Resilient Jumbo Frames in Wireless LANsFast Resilient Jumbo Frames in Wireless LANs
Fast Resilient Jumbo Frames in Wireless LANs
 
The Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDLThe Cryptol Epilogue: Swift and Bulletproof VHDL
The Cryptol Epilogue: Swift and Bulletproof VHDL
 
adtechtokyo2010 Augmented Reality - A Showcase What The Marketers Need To Know
adtechtokyo2010 Augmented Reality - A Showcase What The Marketers Need To Knowadtechtokyo2010 Augmented Reality - A Showcase What The Marketers Need To Know
adtechtokyo2010 Augmented Reality - A Showcase What The Marketers Need To Know
 
Uso de Honeypots com Honeyd
Uso de Honeypots com HoneydUso de Honeypots com Honeyd
Uso de Honeypots com Honeyd
 

Similar to Cryptol experience

Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3
Adam McConnell
 
NFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS Fabric
NFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS FabricNFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS Fabric
NFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS Fabric
ozkan01
 
High throughput implementations of cryptography algorithms on GPU and FPGA
High throughput implementations of cryptography  algorithms on GPU and FPGAHigh throughput implementations of cryptography  algorithms on GPU and FPGA
High throughput implementations of cryptography algorithms on GPU and FPGA
nitin3940
 
An FPGA-based acceleration methodology and performance model for iterative st...
An FPGA-based acceleration methodology and performance model for iterative st...An FPGA-based acceleration methodology and performance model for iterative st...
An FPGA-based acceleration methodology and performance model for iterative st...
NECST Lab @ Politecnico di Milano
 
MCSoC'13 Keynote Talk "Taming Big Data Streams"
MCSoC'13 Keynote Talk "Taming Big Data Streams"MCSoC'13 Keynote Talk "Taming Big Data Streams"
MCSoC'13 Keynote Talk "Taming Big Data Streams"
Hideyuki Kawashima
 

Similar to Cryptol experience (20)

Introduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, IntelIntroduction to Programmable Networks by Clarence Anslem, Intel
Introduction to Programmable Networks by Clarence Anslem, Intel
 
ZTE FL NGN ZXSS10 Induction training manual.pdf
ZTE FL NGN ZXSS10 Induction training  manual.pdfZTE FL NGN ZXSS10 Induction training  manual.pdf
ZTE FL NGN ZXSS10 Induction training manual.pdf
 
Virtual Twins: Modeling Trends and Challenges Ahead
Virtual Twins: Modeling Trends and Challenges AheadVirtual Twins: Modeling Trends and Challenges Ahead
Virtual Twins: Modeling Trends and Challenges Ahead
 
Crypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M ProcessorsCrypto Performance on ARM Cortex-M Processors
Crypto Performance on ARM Cortex-M Processors
 
How our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical RoutersHow our Cloudy Mindsets Approached Physical Routers
How our Cloudy Mindsets Approached Physical Routers
 
Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3Adam_Mcconnell_Revision3
Adam_Mcconnell_Revision3
 
Exploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC CloudExploring the Performance Impact of Virtualization on an HPC Cloud
Exploring the Performance Impact of Virtualization on an HPC Cloud
 
The Real World - Plugging the Enterprise Into It (nodejs)
The Real World - Plugging  the Enterprise Into It (nodejs)The Real World - Plugging  the Enterprise Into It (nodejs)
The Real World - Plugging the Enterprise Into It (nodejs)
 
NetApp Insight Berlin Top 5 Most Popular Breakout Sessions
NetApp Insight Berlin Top 5 Most Popular Breakout SessionsNetApp Insight Berlin Top 5 Most Popular Breakout Sessions
NetApp Insight Berlin Top 5 Most Popular Breakout Sessions
 
Webinar Renesas - IoT é Segura? Com Renesas Synergy sim! E o SSP 1.5 tornou a...
Webinar Renesas - IoT é Segura? Com Renesas Synergy sim! E o SSP 1.5 tornou a...Webinar Renesas - IoT é Segura? Com Renesas Synergy sim! E o SSP 1.5 tornou a...
Webinar Renesas - IoT é Segura? Com Renesas Synergy sim! E o SSP 1.5 tornou a...
 
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
Brain in the Cloud: Machine Learning on OpenStack & Kubernetes Done Right - E...
 
Need to-know patterns building microservices - java one
Need to-know patterns building microservices - java oneNeed to-know patterns building microservices - java one
Need to-know patterns building microservices - java one
 
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SPKrzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
Krzysztof Mazepa - Netflow/cflow - ulubionym narzędziem operatorów SP
 
The Impact of Software-based Virtual Network in the Public Cloud
The Impact of Software-based Virtual Network in the Public CloudThe Impact of Software-based Virtual Network in the Public Cloud
The Impact of Software-based Virtual Network in the Public Cloud
 
NFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS Fabric
NFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS FabricNFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS Fabric
NFV SDN Summit March 2014 D1 07 kireeti_kompella Native MPLS Fabric
 
High throughput implementations of cryptography algorithms on GPU and FPGA
High throughput implementations of cryptography  algorithms on GPU and FPGAHigh throughput implementations of cryptography  algorithms on GPU and FPGA
High throughput implementations of cryptography algorithms on GPU and FPGA
 
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
Introduction to Industrial Control Systems : Pentesting PLCs 101 (BlackHat Eu...
 
An FPGA-based acceleration methodology and performance model for iterative st...
An FPGA-based acceleration methodology and performance model for iterative st...An FPGA-based acceleration methodology and performance model for iterative st...
An FPGA-based acceleration methodology and performance model for iterative st...
 
Inside Microsoft's FPGA-Based Configurable Cloud
Inside Microsoft's FPGA-Based Configurable CloudInside Microsoft's FPGA-Based Configurable Cloud
Inside Microsoft's FPGA-Based Configurable Cloud
 
MCSoC'13 Keynote Talk "Taming Big Data Streams"
MCSoC'13 Keynote Talk "Taming Big Data Streams"MCSoC'13 Keynote Talk "Taming Big Data Streams"
MCSoC'13 Keynote Talk "Taming Big Data Streams"
 

More from Ulisses Costa

Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
Ulisses Costa
 
Static Code Analyzer - Part IV
Static Code Analyzer - Part IVStatic Code Analyzer - Part IV
Static Code Analyzer - Part IV
Ulisses Costa
 
Specifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with CryptolSpecifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with Cryptol
Ulisses Costa
 
Static Code Analyzer - Part III
Static Code Analyzer - Part IIIStatic Code Analyzer - Part III
Static Code Analyzer - Part III
Ulisses Costa
 
Static Code Analyzer - Part II
Static Code Analyzer - Part IIStatic Code Analyzer - Part II
Static Code Analyzer - Part II
Ulisses Costa
 
Static Code Analyzer - Part I
Static Code Analyzer - Part IStatic Code Analyzer - Part I
Static Code Analyzer - Part I
Ulisses Costa
 
GD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting ModuleGD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting Module
Ulisses Costa
 
Specification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolSpecification of SNOW 3G in Cryptol
Specification of SNOW 3G in Cryptol
Ulisses Costa
 
Snort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeSnort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da rede
Ulisses Costa
 

More from Ulisses Costa (18)

Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
 
Automatic Test Generation for Space
Automatic Test Generation for SpaceAutomatic Test Generation for Space
Automatic Test Generation for Space
 
Static Code Analyzer - Part IV
Static Code Analyzer - Part IVStatic Code Analyzer - Part IV
Static Code Analyzer - Part IV
 
Specifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with CryptolSpecifying and Implementing SNOW3G with Cryptol
Specifying and Implementing SNOW3G with Cryptol
 
Static Code Analyzer - Part III
Static Code Analyzer - Part IIIStatic Code Analyzer - Part III
Static Code Analyzer - Part III
 
Static Code Analyzer - Part II
Static Code Analyzer - Part IIStatic Code Analyzer - Part II
Static Code Analyzer - Part II
 
Static Code Analyzer - Part I
Static Code Analyzer - Part IStatic Code Analyzer - Part I
Static Code Analyzer - Part I
 
logCesium01
logCesium01logCesium01
logCesium01
 
Cesium Log ed2
Cesium Log ed2Cesium Log ed2
Cesium Log ed2
 
GD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting ModuleGD::Graph - Graph Plotting Module
GD::Graph - Graph Plotting Module
 
Correct sorting with Frama-C
Correct sorting with Frama-CCorrect sorting with Frama-C
Correct sorting with Frama-C
 
Splint the C code static checker
Splint the C code static checkerSplint the C code static checker
Splint the C code static checker
 
Exploring the Cryptol Toolset
Exploring the Cryptol ToolsetExploring the Cryptol Toolset
Exploring the Cryptol Toolset
 
Specification of SNOW 3G in Cryptol
Specification of SNOW 3G in CryptolSpecification of SNOW 3G in Cryptol
Specification of SNOW 3G in Cryptol
 
Snort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da redeSnort - capturar e dissecar o tráfego da rede
Snort - capturar e dissecar o tráfego da rede
 
Linux Instalation Party
Linux Instalation PartyLinux Instalation Party
Linux Instalation Party
 
Workshop LaTeX
Workshop LaTeXWorkshop LaTeX
Workshop LaTeX
 
Calculador Pointfree
Calculador PointfreeCalculador Pointfree
Calculador Pointfree
 

Recently uploaded

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Cryptol experience

  • 1. The Cryptol Experience Pedro Pereira Ulisses Costa Formal Methods in Software Engineering July 27, 2009 Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 2. Last milestone’s recap! We showed you Cryptol → VHDL translation Hardware performance analysis Real application of the verification framework Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 3. Electronic Design Automation with Cryptol 1 Write Cryptol specification closely resembling the mathematical one 2 Convert top-level function into stream model for performance analysis 3 Substitute unsupported constructs for compilation 4 Use verification framework for safety and equivalence checking 5 Adjust implementation according to space and time requirements Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 4. Milestone I We had to Learn the Cryptol language Create a SNOW 3G specification We consulted SNOW 3G specification Programming guide Examples folder Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 5. Milestone I Overall SNOW 3G is composed of simple manipulations and has a strong mathematical structure Clear and compact functional specification in Cryptol Quick specification process Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 6. Milestone I Programming guide Well written Cryptol definitions could be displayed in a different style Block cipher operation modes? Examples Great for watching Cryptol in action Perhaps two different specification-oriented case studies Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 7. Milestone II We had to Generate an efficient and equivalent C implementation We consulted Tools user guide Pragmatic Equivalence and Safety Checking in Cryptol Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 8. Milestone II Overall We didn’t quite grasp the difference between SBV and C Optimizations? We learned a lot about the verification framework Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 9. Milestone II Tools user guide Lacks some information regarding interpreter modes and respective differences Could use better formatting in some sections PESCC Contains everything needed to know about the verification framework Maybe not suitable/relevant for the end-user Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 10. Milestone III We had to Generate an efficient and equivalent VHDL implementation We consulted FPGA tutorial Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 11. Milestone III Opinions :help <options> FPGA tutorial also lacks a more consistent formatting Some information could have gone to the tools user guide We learned a lot about EDA but... Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 12. As promissed! MULxPOW MULxPOW : ([8] , [8] , [8]) -> [8]; MULxPOW (v ,i , c ) = res @ i where res = [ v ] # [| MULx (e , c ) || e <- res |]; The latency of this implementation is 28 , because Cryptol needs the static latency ⇒ latency of this circuit is equal to the worst-case latency But the third parameter is always the same and the second one only instantiates 8 possible values We can be more efficient by implementing it as 8 static lookup tables with 256 8-bit elements each ⇒ BlockRAMs Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 13. Even better DIVα and MULα are responsible for updating the LFSR 2 static lookup tables with 256 32-bit elements each! Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 14. SPIR Report === Summary of Path Timing Estimates === Overall clock period: 8.38 ns (119.3 MHz ) Input pin to flip-flop: 1.94 ns (514.7 MHz ) Flip-flop to flip-flop: 7.72 ns (129.6 MHz ) Flip-flop to output pin: 8.38 ns (119.3 MHz ) Input pin to output pin: No paths === Summary of Size Estimates === Estimated total size: about 6848 LUTs , 2776 Flipflops === Circuit Timing === circuit latency: 37 cycles (36 cycles plus propagation delay ) circuit rate: one element per cycle output length: unbounded total time: unbounded Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 15. Pipelining? reg pragma Sequential circuits in the stream model can be pipelined Separation of a function into several smaller computational units Each unit is a stage in the pipeline consuming output from previous stage and producing output to the next Can increase clockrate and throughput Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 16. Pipelining! Timing Summary: Minimum period: 6.214 ns (Maximum Frequency: 160.930 MHz) Minimum input arrival time before clock: 2.892 ns Maximum output required time after clock: 11.497 ns Maximum combinational path delay: No path found Device Utilization (size summary): Number of Slices: 1212 out of 14752 8% Number of Slice Flip Flops: 1810 out of 29504 6% Number of 4 input LUTs: 2192 out of 29504 7% Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 17. Comparison Implementation Frequency (MHz) Throughput (Mbps) Proposed SNOW 3G 160 5120 SNOW 3G 249 7968 SNOW 3G 100 2500 SNOW 2.0 141 4512 SNOW 1.0 66.5 2128 Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 18. The Big Question We claim that non-hardware people can get good results by working in Cryptol and would like to confirm or deny that claim. Galois, Inc. Yes, we can! Pedro Pereira, Ulisses Costa The Cryptol Experience
  • 19. (Other) Questions ? Pedro Pereira, Ulisses Costa The Cryptol Experience