Functional Correctness Proofs of Encryption Algorithms

  • Jianjun Duan
  • Joe Hurd
  • Guodong Li
  • Scott Owens
  • Konrad Slind
  • Junxing Zhang
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3835)


We discuss a collection of mechanized formal proofs of symmetric key block encryption algorithms (AES, MARS, Twofish, RC6, Serpent, IDEA, and TEA), performed in an implementation of higher order logic. For each algorithm, functional correctness, namely that decryption inverts encryption, is formally proved by a simple but effective proof methodology involving application of invertibility lemmas in the course of symbolic evaluation. Block ciphers are then lifted to the encryption of arbitrary datatypes by using modes of operation to encrypt lists of bits produced by a polytypic encoding method.


Encryption Algorithm Block Cipher Correctness Proof Symbolic Evaluation High Order Logic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Anderson, R., Biham, E., Knudsen, L.: Serpent: A proposal for the advanced encryption standard (August 1998), Available at
  2. 2.
    Armando, A., Basin, D., Boichut, Y., Chevalier, Y., Compagna, L., Cuellar, J., Hankes Drielsma, P., He, P.C., Rusinowitch, M., Santiago, J., Turuani, M., Vigano, L., Vigneron, L.: The Avispa tool for the automated validation of internet security protocols and applications. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 281–285. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  3. 3.
    Backes, M., Pfitzmann, B., Waidner, M.: Symmetric authentication in a simulatable Dolev-Yao style cryptographic library. Journal of Information Security 4(3), 135–154 (2005)CrossRefGoogle Scholar
  4. 4.
    Burwick, C., Coppersmith, D., D’Avignon, E., Gennaro, R., Halevi, S., Jutla, C., Mathas Jr., S., O’Connor, L., Peyravian, M., Safford, D., Zunic, N.: MARS - a candidate cipher for AES (September 1999), Available at,
  5. 5.
    Daemen, J., Rijmen, V.: The design of Rijndael: AES - the Advanced Encryption Standard. In: Information Security and Cryptography, vol. 17. Springer, Heidelberg (2002)Google Scholar
  6. 6.
    Dworkin, M.: Recommendation for block cipher modes of operation: Methods and techniques, Tech. Report SP 800-38A, National Institute of Standards and Technology (2001)Google Scholar
  7. 7.
    Gordon, M., Iyoda, J., Owens, S., Slind, K.: Automatic formal synthesis of hardware from higher order logic. In: Proceedings of Fifth International Workshop on Automated Verification of Critical Systems (AVoCS). ENTCS (2005) (to appear)Google Scholar
  8. 8.
    Lai, X., Massey, J.L., Murphy, S.: Markov ciphers and differential cryptanalysis. In: Davies, D.W. (ed.) EUROCRYPT 1991. LNCS, vol. 547, pp. 17–38. Springer, Heidelberg (1991)Google Scholar
  9. 9.
    Lewis, J.: Cryptol, a domain specific language for cryptography, Tech. report, Galois Connections Inc., (2002),
  10. 10.
    Matthews, J.: Recursive definition over coinductive types. In: Bertot, Y., Dowek, G., Hirschowitz, A., Paulin, C., Théry, L. (eds.) TPHOLs 1999. LNCS, vol. 1690, p. 73. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  11. 11.
    Meertens, L.: Calculate polytypically! In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 1–16. Springer, Heidelberg (1996)Google Scholar
  12. 12.
    Norrish, M., Slind, K.: HOL-4 manuals (1998-2005), Available at,
  13. 13.
    United States National Institute of Standards and Technology, Advanced Encryption Standard, Web (2001),
  14. 14.
    Boyer, R., Moore, J.: Proof checking the RSA public key encryption algorithm. American Mathematical Monthly 91(3), 181–189 (1984)zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Rivest, R., Robshae, M., Sidney, R., Yin, Y.L.: The RC6 block cipher (August 1998), Available at,
  16. 16.
    Schneier, B., Kelsey, J., Whiting, D., Wagner, D., Hall, C., Ferguson, N.: The Twofish encryption algorithm. John Wiley and Sons, Chichester (2003)Google Scholar
  17. 17.
    Slind, K.: A verification of Rijndael in HOL, Supplementary Proceedings of TPHOLs 2002 (V. A Carreno, C. A. Munoz, and S. Tahar, eds.), NASA Conference Proceedings, no. CP-2002-211736 (August 2002)Google Scholar
  18. 18.
    Slind, K., Hurd, J.: Applications of polytypism in theorem proving. In: Basin, D., Wolff, B. (eds.) TPHOLs 2003. LNCS, vol. 2758, pp. 103–119. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  19. 19.
    Thery, L.: Formalizing Huffman’s algorithm, Tech. Report TRCS 034/2004, Department of Informatics, University of Acquila (2004)Google Scholar
  20. 20.
    Toma, D., Borrione, D.: Formal verification of a SHA-1 circuit core using ACL2. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603, pp. 326–341. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  21. 21.
    Wadler, P.: Monads for functional programming. In: Broy, M. (ed.) Marktoberdorf Summer School on Progam Design Calculi. NATO ASI Series F: Computer and Systems Sciences, vol. 118. Springer, Heidelberg (1992)Google Scholar
  22. 22.
    Wheeler, D., Needham, R.: TEA, a tiny encryption algorithm. In: Preneel, B. (ed.) FSE 1994. LNCS, vol. 1008, pp. 363–366. Springer, Heidelberg (1995)Google Scholar
  23. 23.
    Zhang, J., Slind, K.: Verification of Euclid’s algorithm for finding multiplicative inverses. In: Hurd, J., Melham, T. (eds.) TPHOLs 2005. LNCS, vol. 3603. Springer, Heidelberg (2005)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • Jianjun Duan
    • 1
  • Joe Hurd
    • 2
  • Guodong Li
    • 1
  • Scott Owens
    • 1
  • Konrad Slind
    • 1
  • Junxing Zhang
    • 1
  1. 1.School of ComputingUniversity of Utah 
  2. 2.Oxford University Computer Lab 

Personalised recommendations