Ming-Hsien Tsai 0001

dblp:30/3940-1 · DBLP profile ↗
← Back
27ranked-venue papers
5as first author
6since 2021 · last 2025
0009-0001-7621-7981ORCID · verified

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 19 · 3 first-author · 4 since 2021Theory of computation · 9 · 4 first-author · 3 since 2021Security and privacy · 5 · 1 first-author · 2 since 2021
YearPublicationVenuePosition
2025 Jazzline: Composable CryptoLine Functional Correctness Proofs for Jasmin Programs
abstract
Jasmin is a programming language for high-speed and high-assurance cryptography. Correctness proofs of Jasmin programs are typically carried out deductively in EasyCrypt. This allows generality, modularity and composable reasoning, but does not scale well for low-level architecture-specific routines. CryptoLine offers a semi-automatic approach to formally verify algebraically-rich low-level cryptographic routines. CryptoLine proofs are self-contained: they are not integrated into higher-level formal verification developments. This paper shows how to soundly use CryptoLine to discharge subgoals in functional correctness proofs for complex Jasmin programs. We extend Jasmin with annotations and provide an automatic translation into a CryptoLine model, where most complex transformations are certified. We also formalize and implement the automatic extraction of the semantics of a CryptoLine proof to EasyCrypt. Our motivating use-case is the X-Wing hybrid KEM, for which we present the first formally verified implementation.
José Bacelar Almeida, Manuel Barbosa, Gilles Barthe, Lionel Blatter, Gustavo Xavier Delerue Marinho Alves, João Diogo Duarte, Benjamin Grégoire, Tiago Oliveira 0004, Miguel Quaresma, Pierre-Yves Strub, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
CCS11
2024 Automatic Verification of Cryptographic Block Function Implementations with Logical Equivalence Checking
Li-Chang Lai, Jiaxiang Liu 0001, Xiaomu Shi, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
ESORICS (4)4
2023 Certified Verification for Algebraic Abstraction
abstract
Abstract We present a certified algebraic abstraction technique for verifying bit-accurate non-linear integer computations. In algebraic abstraction, programs are lifted to polynomial equations in the abstract domain. Algebraic techniques are employed to analyze abstract polynomial programs; SMT QF_BV solvers are adopted for bit-accurate analysis of soundness conditions. We explain how to verify our abstraction algorithm and certify verification results. Our hybrid technique has verified non-linear computations in various security libraries such as Bitcoin and OpenSSL. We also report the certified verification of Number-Theoretic Transform programs from the post-quantum cryptosystem Kyber.
Ming-Hsien Tsai 0001, Yu-Fu Fu, Jiaxiang Liu 0001, Xiaomu Shi, Bow-Yaw Wang, Bo-Yin Yang
CAV (3)1
2023 CoqCryptoLine: A Verified Model Checker with Certified Results
abstract
Abstract We present the verified model checker CoqCryptoLine for cryptographic programs with certified verification results. The CoqCryptoLine verification algorithm consists of two reductions. The algebraic reduction transforms into a root entailment problem; and the bit-vector reduction transforms into an SMTQF_BV problem. We specify and verify both reductions formally using Coq with MathComp. The CoqCryptoLine tool is built on the OCaml programs extracted from verified reductions. CoqCryptoLine moreover employs certified techniques for solving the algebraic and logic problems. We evaluate CoqCryptoLine on cryptographic programs from industrial security libraries.
Ming-Hsien Tsai 0001, Yu-Fu Fu, Jiaxiang Liu 0001, Xiaomu Shi, Bow-Yaw Wang, Bo-Yin Yang
CAV (2)1
2023 llvm2CryptoLine: Verifying Arithmetic in Cryptographic C Programs
abstract
Correct implementations of cryptographic primitives are essential for modern security. These implementations often contain arithmetic operations involving non-linear computations that are infamously hard to verify. We present llvm2CryptoLine, an automated formal verification tool for arithmetic operations in cryptographic C programs. llvm2CryptoLine successfully verifies 51 arithmetic C programs from industrial cryptographic libraries OpenSSL, wolfSSL and NaCl. Most of the programs are verified fully automatically and efficiently. A screencast that showcases llvm2CryptoLine can be found at https://youtu.be/QXuSmja45VA. Source code is available at https://github.com/fmlab-iis/llvm2cryptoline.
Ruiling Chen, Jiaxiang Liu 0001, Xiaomu Shi, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
ESEC/SIGSOFT FSE4
2021 CoqQFBV: A Scalable Certified SMT Quantifier-Free Bit-Vector Solver
abstract
Abstract We present a certified SMT QF_BV solver CoqQFBV built from a verified bit blasting algorithm, Kissat, and the verified SAT certificate checker GratChk in this paper. Our verified bit blasting algorithm supports the full QF_BV logic of SMT-LIB; it is specified and formally verified in the proof assistant Coq . We compare CoqQFBV with CVC4, Bitwuzla, and Boolector on benchmarks from the QF_BV division of the single query track in the 2020 SMT Competition, and real-world cryptographic program verification problems. CoqQFBV surprisingly solves more program verification problems with certification than the 2020 SMT QF_BV division winner Bitwuzla without certification.
Xiaomu Shi, Yu-Fu Fu, Jiaxiang Liu 0001, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
CAV (2)4
2019 Signed Cryptographic Program Verification with Typed CryptoLine
abstract
We develop an automated formal technique to specify and verify signed computation in cryptographic programs. In addition to new instructions, we introduce a type system to detect type errors in programs. A type inference algorithm is also provided to deduce types and instruction variants in cryptographic programs. In order to verify signed cryptographic C programs, we develop a translator from the GCC intermediate representation to our language. Using our technique, we have verified 82 C functions in cryptography libraries including NaCl, wolfSSL, bitcoin, OpenSSL, and BoringSSL.
Yu-Fu Fu, Jiaxiang Liu 0001, Xiaomu Shi, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
CCS4
2019 Verifying Arithmetic in Cryptographic C Programs
abstract
Cryptographic primitives are ubiquitous for modern security. The correctness of their implementations is crucial to resist malicious attacks. Typical arithmetic computation of these C programs contains large numbers of non-linear operations, hence is challenging existing automatic C verification tools. We present an automated approach to verify cryptographic C programs. Our approach successfully verifies C implementations of various arithmetic operations used in NIST P-224, P-256, P-521 and Curve25519 in OpenSSL. During verification, we expose a bug and a few anomalies that have been existing for a long time. They have been reported to and confirmed by the OpenSSL community. Our results establish the functional correctness of these C implementations for the first time.
Jiaxiang Liu 0001, Xiaomu Shi, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
ASE3
2018 Verifying Arithmetic Assembly Programs in Cryptographic Primitives (Invited Talk)
abstract
Arithmetic over large finite fields is indispensable in modern cryptography. For efficienty, these operations are often implemented in manually optimized assembly programs. Since these arithmetic assembly programs necessarily perform lots of non-linear computation, checking their correctness is a challenging verification problem. We develop techniques to verify such programs automatically in this paper. Using our techniques, we have successfully verified a number of assembly programs in OpenSSL. Moreover, our tool verifies the boringSSL Montgomery Ladderstep (about 1400 assembly instructions) in 1 hour. This is by far the fastest verification technique for such programs.
Andy Polyakov, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
CONCUR2
2018 Advanced automata-based algorithms for program termination checking
abstract
In 2014, Heizmann et al. proposed a novel framework for program termination analysis. The analysis starts with a termination proof of a sample path. The path is generalized to a Büchi automaton (BA) whose language (by construction) represents a set of terminating paths. All these paths can be safely removed from the program. The removal of paths is done using automata difference, implemented via BA complementation and intersection. The analysis constructs in this way a set of BAs that jointly "cover" the behavior of the program, thus proving its termination. An implementation of the approach in Ultimate Automizer won the 1st place in the Termination category of SV-COMP 2017.
Yu-Fang Chen 0001, Matthias Heizmann, Ondrej Lengál, Yong Li 0031, Ming-Hsien Tsai 0001, Andrea Turrini, Lijun Zhang 0001
PLDI5
2017 Certified Verification of Algebraic Properties on Low-Level Mathematical Constructs in Cryptographic Programs
abstract
Mathematical constructs are necessary for computation on the underlying algebraic structures of cryptosystems. They are often written in assembly language and optimized manually for efficiency. We develop a certified technique to verify low-level mathematical constructs in X25519, the default elliptic curve Diffie-Hellman key exchange protocol used in OpenSSH. Our technique translates an algebraic specification of mathematical constructs into an algebraic problem. The algebraic problem in turn is solved by the computer algebra system Singular. The proof assistant Coq certifies the translation and solution to algebraic problems. Specifications about output ranges and potential program overflows are translated to SMT problems and verified by SMT solvers. We report our case studies on verifying arithmetic computation over a large finite field and the Montgomery Ladderstep, a crucial loop in X25519.
Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang
CCS1
2016 PAC learning-based verification and model synthesis
abstract
We introduce a novel technique for verification and model synthesis of sequential programs. Our technique is based on learning an approximate regular model of the set of feasible paths in a program, and testing whether this model contains an incorrect behavior. Exact learning algorithms require checking equivalence between the model and the program, which is a difficult problem, in general undecidable. Our learning procedure is therefore based on the framework of probably approximately correct (PAC) learning, which uses sampling instead, and provides correctness guarantees expressed using the terms error probability and confidence. Besides the verification result, our procedure also outputs the model with the said correctness guarantees. Obtained preliminary experiments show encouraging results, in some cases even outperforming mature software verifiers.
Yu-Fang Chen 0001, Chiao Hsieh, Ondrej Lengál, Tsung-Ju Lii, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Farn Wang
ICSE5
2016 Complementing Semi-deterministic Büchi Automata
Frantisek Blahoudek, Matthias Heizmann, Sven Schewe, Jan Strejcek, Ming-Hsien Tsai 0001
TACAS5
2015 CPArec: Verifying Recursive Programs via Source-to-Source Program Transformation - (Competition Contribution)
Yu-Fang Chen 0001, Chiao Hsieh, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Farn Wang
TACAS3
2014 Verifying Curve25519 Software
abstract
This paper presents results on formal verification of high-speed cryptographic software. We consider speed-record-setting hand-optimized assembly software for Curve25519 elliptic-curve key exchange presented by Bernstein et al. at CHES 2011. Two versions for different microarchitectures are available. We successfully verify the core part of the computation, and reproduce detection of a bug in a previously published edition. An SMT solver supporting array and bit-vector theories is used to establish almost all properties. Remaining properties are verified in a proof assistant with simple rewrite tactics. We also exploit the compositionality of Hoare logic to address the scalability issue. Essential differences between both versions of the software are discussed from a formal-verification perspective.
Yu-Fang Chen 0001, Chang-Hong Hsu, Hsin-Hung Lin, Peter Schwabe, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Bo-Yin Yang, Shang-Yi Yang
CCS5
2014 Verifying Recursive Programs Using Intraprocedural Analyzers
Yu-Fang Chen 0001, Chiao Hsieh, Ming-Hsien Tsai 0001, Bow-Yaw Wang, Farn Wang
SAS3
2013 GOAL for Games, Omega-Automata, and Logics
Ming-Hsien Tsai 0001, Yih-Kuen Tsay, Yu-Shiang Hwang
CAV1
2013 Büchi Store: an open repository of ω-automata
Yih-Kuen Tsay, Ming-Hsien Tsai 0001, Jinn-Shu Chang, Yi-Wen Chang, Chi-Shiang Liu
Int. J. Softw. Tools Technol. Transf.2
2011 Büchi Store: An Open Repository of Büchi Automata
Yih-Kuen Tsay, Ming-Hsien Tsai 0001, Jinn-Shu Chang, Yi-Wen Chang
TACAS2
2010 Automated Assume-Guarantee Reasoning through Implicit Learning
Yu-Fang Chen 0001, Edmund M. Clarke, Azadeh Farzan, Ming-Hsien Tsai 0001, Yih-Kuen Tsay, Bow-Yaw Wang
CAV4
2010 Comparing Learning Algorithms in Automated Assume-Guarantee Reasoning
Yu-Fang Chen 0001, Edmund M. Clarke, Azadeh Farzan, Fei He 0001, Ming-Hsien Tsai 0001, Yih-Kuen Tsay, Bow-Yaw Wang
ISoLA (1)5
2010 Automatic numeric abstractions for heap-manipulating programs
abstract
We present a logic for relating heap-manipulating programs to numeric abstractions. These numeric abstractions are expressed as simple imperative programs over integer variables and have the property that termination and safety of the numeric program ensures termination and safety of the original, heap-manipulating program. We have implemented an automated version of this abstraction process and present experimental results for programs involving a variety of data structures.
Stephen Magill, Ming-Hsien Tsai 0001, Peter Lee 0001, Yih-Kuen Tsay
POPL2
2010 State of Büchi Complementation
Ming-Hsien Tsai 0001, Seth Fogarty, Moshe Y. Vardi, Yih-Kuen Tsay
CIAA1
2009 Tool support for learning Büchi automata and linear temporal logic
abstract
Abstract We introduce a graphical interactive tool, named GOAL, that can assist the user in understanding Büchi automata, linear temporal logic, and their relation. Büchi automata and linear temporal logic are closely related and have long served as fundamental building blocks of linear-time model checking. Understanding their relation is instrumental in discovering algorithmic solutions to model checking problems or simply in using those solutions, e.g., specifying a temporal property directly by an automaton rather than a temporal formula so that the property can be verified by an algorithm that operates on automata. One main function of the GOAL tool is translation of a temporal formula into an equivalent Büchi automaton that can be further manipulated visually. The user may edit the resulting automaton, attempting to optimize it, or simply run the automaton on some inputs to get a basic understanding of how it operates. GOAL includes a large number of translation algorithms, most of which support past temporal operators. With the option of viewing the intermediate steps of a translation, the user can quickly grasp how a translation algorithm works. The tool also provides various standard operations and tests on Büchi automata, in particular the equivalence test which is essential for checking if a hand-drawn automaton is correct in the sense that it is equivalent to some intended temporal formula or reference automaton. Several use cases are elaborated to show how these GOAL functions may be combined to facilitate the learning and teaching of Büchi automata and linear temporal logic.
Yih-Kuen Tsay, Yu-Fang Chen 0001, Ming-Hsien Tsai 0001, Kang-Nien Wu, Wen-Chin Chan, Chi-Jian Luo, Jinn-Shu Chang
Formal Aspects Comput.3
2008 THOR: A Tool for Reasoning about Shape and Arithmetic
Stephen Magill, Ming-Hsien Tsai 0001, Peter Lee 0001, Yih-Kuen Tsay
CAV2
2008 GOAL Extended: Towards a Research Tool for Omega Automata and Temporal Logic
Yih-Kuen Tsay, Yu-Fang Chen 0001, Ming-Hsien Tsai 0001, Wen-Chin Chan, Chi-Jian Luo
TACAS3
2007 GOAL: A Graphical Tool for Manipulating Büchi Automata and Temporal Formulae
Yih-Kuen Tsay, Yu-Fang Chen 0001, Ming-Hsien Tsai 0001, Kang-Nien Wu, Wen-Chin Chan
TACAS3