Probabilistic Relational Verification for Cryptographic Implementations

被引:44
作者
Barthe, Gilles [1 ]
Fournet, Cedric
Gregoire, Benjamin [2 ]
Strub, Pierre-Yves [1 ]
Swamy, Nikhil
Zanella-Beguelin, Santiago
机构
[1] IMDEA Software Inst, Madrid, Spain
[2] INRIA, Paris, France
关键词
program logics; probabilistic programming; CERTIFICATION; PROOFS; CODE;
D O I
10.1145/2535838.2535847
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Relational program logics have been used for mechanizing formal proofs of various cryptographic constructions. With an eye towards scaling these successes towards end-to-end security proofs for implementations of distributed systems, we present RF*, a relational extension of F*, a general-purpose higher-order stateful programming language with a verification system based on refinement types. The distinguishing feature of RF* is a relational Hoare logic for a higher-order, stateful, probabilistic language. Through careful language design, we adapt the F* typechecker to generate both classic and relational verification conditions, and to automatically discharge their proofs using an SMT solver. Thus, we are able to benefit from the existing features of F*, including its abstraction facilities for modular reasoning about program fragments. We evaluate RF* experimentally by programming a series of cryptographic constructions and protocols, and by verifying their security properties, ranging from information flow to unlinkability, integrity, and privacy. Moreover, we validate the design of RF* by formalizing in Coq a core probabilistic lambda-calculus and a relational refinement type system and proving the soundness of the latter against a denotational semantics of the probabilistic lambda-calculus.
引用
收藏
页码:193 / 205
页数:13
相关论文
共 47 条
[1]   Private authentication [J].
Abadi, M ;
Fournet, C .
THEORETICAL COMPUTER SCIENCE, 2004, 322 (03) :427-476
[2]  
Aizatulin M., 2012, P 2012 ACM C COMPUTE, P712
[3]  
Almeida J. B., CRYPTOLOGY EPRINT AR
[4]  
Almeida J.B., 2013, ACM CCS
[5]  
[Anonymous], 2001, Handbook of Process Algebra, DOI DOI 10.1016/B978-044482830-9/50029-1
[6]  
[Anonymous], 2011, Proceedings of the 10th annual ACM workshop on Privacy in the electronic society, WPES '11, DOI DOI 10.1145/2046556.2046564
[7]   An indexed model of recursive types for foundational proof-carrying code [J].
Appel, AW ;
McAllester, D .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2001, 23 (05) :657-683
[8]   Analysing Unlinkability and Anonymity Using the Applied Pi Calculus [J].
Arapinis, Myrto ;
Chothia, Tom ;
Ritter, Eike ;
Ryan, Mark .
2010 23RD IEEE COMPUTER SECURITY FOUNDATIONS SYMPOSIUM (CSF), 2010, :107-121
[9]   Proofs of randomized algorithms in COQ [J].
Audebaud, Philippe ;
Paulin-Mohring, Christine .
SCIENCE OF COMPUTER PROGRAMMING, 2009, 74 (08) :568-589
[10]  
Barthe G, 2011, LECT NOTES COMPUT SC, V6841, P71, DOI 10.1007/978-3-642-22792-9_5