Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Anderson, R., Biham, E., Knudsen, L.: Serpent: A proposal for the advanced encryption standard (August 1998), Available at http://www.cl.cam.ac.uk/~rja4/serpent.html
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)
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)
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, http://www.research.ibm.com/security/mars.pdf
Daemen, J., Rijmen, V.: The design of Rijndael: AES - the Advanced Encryption Standard. In: Information Security and Cryptography, vol. 17. Springer, Heidelberg (2002)
Dworkin, M.: Recommendation for block cipher modes of operation: Methods and techniques, Tech. Report SP 800-38A, National Institute of Standards and Technology (2001)
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)
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)
Lewis, J.: Cryptol, a domain specific language for cryptography, Tech. report, Galois Connections Inc., (2002), http://www.cryptol.net/docs/CryptolPaper.pdf
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)
Meertens, L.: Calculate polytypically! In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 1–16. Springer, Heidelberg (1996)
Norrish, M., Slind, K.: HOL-4 manuals (1998-2005), Available at, http://hol.sourceforge.net/
United States National Institute of Standards and Technology, Advanced Encryption Standard, Web (2001), http://csrc.nist.gov/encryption/aes/
Boyer, R., Moore, J.: Proof checking the RSA public key encryption algorithm. American Mathematical Monthly 91(3), 181–189 (1984)
Rivest, R., Robshae, M., Sidney, R., Yin, Y.L.: The RC6 block cipher (August 1998), Available at, http://www.rsasecurity.com/rsalabs/rc6
Schneier, B., Kelsey, J., Whiting, D., Wagner, D., Hall, C., Ferguson, N.: The Twofish encryption algorithm. John Wiley and Sons, Chichester (2003)
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)
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)
Thery, L.: Formalizing Huffman’s algorithm, Tech. Report TRCS 034/2004, Department of Informatics, University of Acquila (2004)
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)
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)
Wheeler, D., Needham, R.: TEA, a tiny encryption algorithm. In: Preneel, B. (ed.) FSE 1994. LNCS, vol. 1008, pp. 363–366. Springer, Heidelberg (1995)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Duan, J., Hurd, J., Li, G., Owens, S., Slind, K., Zhang, J. (2005). Functional Correctness Proofs of Encryption Algorithms. In: Sutcliffe, G., Voronkov, A. (eds) Logic for Programming, Artificial Intelligence, and Reasoning. LPAR 2005. Lecture Notes in Computer Science(), vol 3835. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11591191_36
Download citation
DOI: https://doi.org/10.1007/11591191_36
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-30553-8
Online ISBN: 978-3-540-31650-3
eBook Packages: Computer ScienceComputer Science (R0)