Conversion from arithmetic to boolean masking with logarithmic complexity

19Citations
Citations of this article
32Readers
Mendeley users who have this article in their library.

This article is free to access.

Abstract

A general technique to protect a cryptographic algorithm against side-channel attacks consists in masking all intermediate variables with a random value. For cryptographic algorithms combining Boolean operations with arithmetic operations, one must then perform conversions between Boolean masking and arithmetic masking. At CHES 2001, Goubin described a very elegant algorithm for converting from Boolean masking to arithmetic masking, with only a constant number of operations. Goubin also described an algorithm for converting from arithmetic to Boolean masking, but with O(k) operations where k is the addition bit size. In this paper we describe an improved algorithm with time complexity O(log k) only. Our new algorithm is based on the Kogge-Stone carry look-ahead adder, which computes the carry signal in O(log k) instead of O(k) for the classical ripple carry adder. We also describe an algorithm for performing arithmetic addition modulo 2k directly on Boolean shares, with the same complexity O(log k) instead of O(k). We prove the security of our new algorithm against first-order attacks. Our algorithm performs well in practice, as for k = 64 we obtain a 23% improvement compared to Goubin’s algorithm.

Cite

CITATION STYLE

APA

Coron, J. S., Großschädl, J., Tibouchi, M., & Vadnala, P. K. (2015). Conversion from arithmetic to boolean masking with logarithmic complexity. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 9054, pp. 117–129). Springer Verlag. https://doi.org/10.1007/978-3-662-48116-5_7

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free