Cryptology ePrint Archive: Report 2013/810

Formal Analysis of CRT-RSA Vigilant's Countermeasure Against the BellCoRe Attack

Pablo Rauzy and Sylvain Guilley

Abstract: In our paper at PROOFS 2013, we formally studied a few known countermeasures to protect CRT-RSA against the BellCoRe fault injection attack. However, we left Vigilant's countermeasure and its alleged repaired version by Coron et al. as future work, because the arithmetical framework of our tool was not sufficiently powerful. In this paper we bridge this gap and then use the same methodology to formally study both versions of the countermeasure. We obtain surprising results, which we believe demonstrate the importance of formal analysis in the field of implementation security. Indeed, the original version of Vigilant's countermeasure is actually broken, but not as much as Coron et al. thought it was. As a consequence, the repaired version they proposed can be simplified. It can actually be simplified even further as two of the nine modular verifications happen to be unnecessary. Fortunately, we could formally prove the simplified repaired version to be resistant to the BellCoRe attack, which was considered a "challenging issue" by the authors of the countermeasure themselves.

Category / Keywords: implementation / RSA, CRT, fault injection, BellCoRe attack, formal proof, OCaml

Original Publication (in the same form): ACM SIGPLAN on Program Protection and Reverse Engineering Workshop 2014

Date: received 2 Dec 2013, last revised 22 May 2014

Contact author: rauzy at enst fr

Available format(s): PDF | BibTeX Citation

Note: This version fixes typos, and make algorithms clearer.

Version: 20140522:190754 (All versions of this report)

Short URL:

[ Cryptology ePrint archive ]