Paper 2019/958

Using SMT Solvers to Automate Chosen Ciphertext Attacks

Gabrielle Beck, Maximilian Zinkus, and Matthew Green


In this work we investigate the problem of automating the development of adaptive chosen ciphertext attacks on systems that contain vulnerable format oracles. Unlike previous attempts, which simply automate the execution of known attacks, we consider a more challenging problem: to programmatically derive a novel attack strategy, given only a machine-readable description of the plaintext verification function and the malleability characteristics of the encryption scheme. We present a new set of algorithms that use SAT and SMT solvers to reason deeply over the design of the system, producing an automated attack strategy that can entirely decrypt protected messages. Developing our algorithms required us to adapt techniques from a diverse range of research fields, as well as to explore and develop new ones. We implement our algorithms using existing theory solvers. The result is a practical tool called Delphinium that succeeds against real-world and contrived format oracles. To our knowledge, this is the first work to automatically derive such complex chosen ciphertext attacks.

Note: Conference publication details 9 Nov 2020: Updated to correct citations for Z3 and Boolector, thanks to Aina Niemetz!

Available format(s)
Publication info
Published elsewhere. Minor revision. Usenix Security Symposium 2020
Boolean SatisfiabilitySatisfiability Modulo TheoriesApplicationImplementation
Contact author(s)
zinkus @ cs jhu edu
2022-04-04: last of 3 revisions
2019-08-23: received
See all versions
Short URL
Creative Commons Attribution


      author = {Gabrielle Beck and Maximilian Zinkus and Matthew Green},
      title = {Using SMT Solvers to Automate Chosen Ciphertext Attacks},
      howpublished = {Cryptology ePrint Archive, Paper 2019/958},
      year = {2019},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.