Paper 2019/958

Using SMT Solvers to Automate Chosen Ciphertext Attacks

Gabrielle Beck, Maximilian Zinkus, and Matthew Green

Abstract

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 https://www.usenix.org/conference/usenixsecurity20/presentation/beckRevised 9 Nov 2020: Updated to correct citations for Z3 and Boolector, thanks to Aina Niemetz!

Metadata
Available format(s)
PDF
Category
Applications
Publication info
Published elsewhere. Minor revision. Usenix Security Symposium 2020
Keywords
Boolean SatisfiabilitySatisfiability Modulo TheoriesApplicationImplementation
Contact author(s)
zinkus @ cs jhu edu
History
2022-04-04: last of 3 revisions
2019-08-23: received
See all versions
Short URL
https://ia.cr/2019/958
License
Creative Commons Attribution
CC BY

BibTeX

@misc{cryptoeprint:2019/958,
      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},
      url = {https://eprint.iacr.org/2019/958}
}
Note: In order to protect the privacy of readers, eprint.iacr.org does not use cookies or embedded third party content.