Results 1 
2 of
2
Automated Analysis and Synthesis of BlockCipher Modes of Operation∗
"... Block ciphers such as AES are deterministic, keyed functions that operate on small, fixedsize blocks. Blockcipher modes of operation define a mechanism for probabilistic encryption of arbitrary length messages using any underlying block cipher. A mode of operation can be proven secure (say, agains ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
Block ciphers such as AES are deterministic, keyed functions that operate on small, fixedsize blocks. Blockcipher modes of operation define a mechanism for probabilistic encryption of arbitrary length messages using any underlying block cipher. A mode of operation can be proven secure (say, against chosenplaintext attacks) based on the assumption that the underlying block cipher is a pseudorandom function. Such proofs are complex and errorprone, however, and must be done from scratch whenever a new mode of operation is developed. We propose an automated approach for the security analysis of blockcipher modes of operation based on a “local ” analysis of the steps carried out by the mode when handling a single message block. We model these steps as a directed, acyclic graph, with nodes corresponding to instructions and edges corresponding to intermediate values. We then introduce a set of labels and constraints on the edges, and prove a metatheorem showing that any mode for which there exists a labeling of the edges satisfying these constraints is secure (against chosenplaintext attacks). This allows us to reduce security of a given mode to a constraintsatisfaction problem, which in turn can be handled using an SMT solver. We couple our securityanalysis tool with a routine that automatically generates viable modes; together, these allow us to synthesize hundreds of secure modes. 1
Templatebased Program Verification and Program Synthesis
 SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER
"... Program verification is the task of automatically generating proofs for a program’s compliance with a given specification. Program synthesis is the task of automatically generating a program that meets a given specification. Both program verification and program synthesis can be viewed as search pr ..."
Abstract
 Add to MetaCart
(Show Context)
Program verification is the task of automatically generating proofs for a program’s compliance with a given specification. Program synthesis is the task of automatically generating a program that meets a given specification. Both program verification and program synthesis can be viewed as search problems, for proofs and programs, respectively. For these search problems, we present approaches based on userprovided insights in the form of templates. Templates are hints about the syntactic forms of the invariants and programs, and help guide the search for solutions. We show how to reduce the templatebased search problem to satisfiability solving, which permits the use of offtheshelf solvers to efficiently explore the search space. Templatebased approaches have allowed us to verify and synthesize programs outside the abilities of previous verifiers and synthesizers. Our approach can verify and synthesize difficult algorithmic textbook programs (e.g., sorting, and dynamic programmingbased algorithms, etc.), and difficult arithmetic programs.