skip to main content
10.1145/1481848.1481860acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
research-article

Pragmatic equivalence and safety checking in Cryptol

Published:20 January 2009Publication History

ABSTRACT

Cryptol is programming a language designed for specifying and programming cryptographic algorithms. In order to meet high-assurance requirements, Cryptol comes with a suite of formal-methods based tools allowing users to perform various program verification tasks. In the fully automated mode, Cryptol uses modern off-the-shelf SAT and SMT solvers to perform verification in a push-button manner. In the manual mode, Cryptol produces Isabelle/HOL specifications that can be interactively verified using the Isabelle theorem prover. In this paper, we provide an overview of Cryptol's verification toolset, describing our experiences with building a practical programming environment with dedicated support for formal verification.

References

  1. Clark Barrett and Cesare Tinelli. CVC3 web site. cs.nyu.edu/acsys/cvc3, 2008.Google ScholarGoogle Scholar
  2. Koen Claessen and John Hughes. QuickCheck: A lightweight tool for random testing of Haskell programs. In Proc. of International Conference on Functional Programming (ICFP). ACM SIGPLAN, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Duan, J. Hurd, G. Li, S. Owens, K. Slind, and J. Zhang. Functional correctness proofs of encryption algorithms. In G. Sutcliffe and A. Voronkov, editors, Logic for Programming, Artificial Intelligence, and Reasoning (LPAR 2005), volume 3835 of Lecture Notes in Artificial Intelligence. Springer-Verlag, December 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bruno Duterte and Leonardo de Moura. The YICES SMT Solver. Available at: yices.csl.sri.com/tool-paper.pdf, 2006.Google ScholarGoogle Scholar
  5. Morris Dworkin. Recommendation for block cipher modes of operation: Methods and techniques, December 2001. URL http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf. NIST Special Publication 800-38A.Google ScholarGoogle Scholar
  6. Niklas Eén and Niklas Sörensson. An extensible SAT-solver. In Enrico Giunchiglia and Armando Tacchella, editors, SAT, volume 2919 of Lecture Notes in Computer Science, pages 502--518. Springer, 2003. ISBN 3-540-20851-8.Google ScholarGoogle Scholar
  7. Xiushan Feng. Formal equivalence checking of software specifications vs. hardware implementations. PhD thesis, Vancouver, BC, Canada, Canada, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. DPTAmit Goel, Jim Grundy, and Sava Krstić. DPT web site. http://sourceforge.net/projects/dpt, 2008.Google ScholarGoogle Scholar
  9. George Hagen and Cesare Tinelli. Scaling up the formal verification of Lustre programs with SMT-based techniques. In A. Cimatti and R. Jones, editors, Proceedings of the 8th International Conference on Formal Methods in Computer-Aided Design (FMCAD'08), Portland, Oregon, Lecture Notes in Computer Science. Springer, 2008. URL ftp://ftp.cs.uiowa.edu/pub/tinelli/papers/HagTin-FMCAD-08.pdf. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud. The synchronous dataflow programming language lustre. In Proceedings of the IEEE, pages 1305-1320, 1991.Google ScholarGoogle ScholarCross RefCross Ref
  11. J. Roger Hindley. Basic Simple Type Theory, volume 42. Cambridge University Press, Cambridge, UK, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Shi-Yu Huang and Kwant-Ting Cheng. Formal Equivalence Checking and Design Debugging. Kluwer Academic Publishers, Norwell, MA, USA, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Joe Hurd. Embedding Cryptol in higher order logic. Available from the author's website, March 2007. URL http://www.gilith.com/research/papers.Google ScholarGoogle Scholar
  14. Daniel Kroening and Ofer Strichman. Decision Procedures: An Algorithmic Point of View. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. R. Lewis and B. Martin. Cryptol: high assurance, retargetable crypto development and validation. In Military Communications Conference 2003, volume 2, pages 820--825. IEEE, October 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Guodong Li and Konrad Slind. An embedding of Cryptol in HOL-4. Unpublished draft, 2005.Google ScholarGoogle Scholar
  17. Alan Mishchenko. ABC: System for sequential synthesis and verification. Release 70930, Available at: http://www.eecs.berkeley.edu/ alanmi/abc, 2007.Google ScholarGoogle Scholar
  18. T. Nipkow, L. C. Paulson, and M. Wenzel. Isabelle/HOL - A Proof Assistant for Higher-Order Logic. LNCS 2283. Springer, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. NIST. Announcing the AES, November 2001. URL http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf. FIPS Publication 197.Google ScholarGoogle Scholar
  20. Thomas Nordin. The jaig Equivalence Checker. Available from Objective Security Company, 2005.Google ScholarGoogle Scholar
  21. Lee Pike, Mark Shields, and John Matthews. A verifying core for a cryptographic language compiler. In ACL2 '06: Proceedings of the sixth international workshop on the ACL2 theorem prover and its applications, pages 1--10, New York, NY, USA, 2006. ACM. ISBN 0-9788493-0-2. http://doi.acm.org/10.1145/1217975.1217977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. John C. Reynolds. Definitional interpreters for higher-order programming languages. In ACM '72: Proceedings of the ACM annual conference, pages 717--740, New York, NY, USA, 1972. ACM. http://doi.acm.org/10.1145/800194.805852. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Konrad Slind, Scott Owens, Juliano Iyoda, and Mike Gordon. Proof producing synthesis of arithmetic and cryptographic hardware. Formal Aspects of Computing, 19 (3), August 2007. Google ScholarGoogle ScholarCross RefCross Ref
  24. A. Tarski, A. Mostowski, and R. M. Robinson. Undecidable Theories. North-Holland Publishing Company, 1953.Google ScholarGoogle Scholar
  25. Diana Toma and Dominique Borrione. Formal verification of a SHA-1 circuit core using ACL2. In Joe Hurd and Thomas F. Melham, editors, TPHOLs, volume 3603 of Lecture Notes in Computer Science, pages 326--341. Springer, 2005. ISBN 3-540-28372-2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Tjark Weber and Hasan Amjad. Efficiently checking propositional refutations in HOL theorem provers. Journal of Applied Logic, July 2007. URL http://dx.doi.org/10.1016/j.jal.2007.07.003.Google ScholarGoogle Scholar

Index Terms

  1. Pragmatic equivalence and safety checking in Cryptol

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Conferences
      PLPV '09: Proceedings of the 3rd workshop on Programming languages meets program verification
      January 2009
      90 pages
      ISBN:9781605583303
      DOI:10.1145/1481848

      Copyright © 2009 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 20 January 2009

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article

      Acceptance Rates

      Overall Acceptance Rate18of25submissions,72%

      Upcoming Conference

      POPL '25

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader