IEEE TRANSACTIONS ON INFORMATION THEORY, VOL. 57, NO. 12, DECEMBER 2011 8007 A Comment on the Karpovsky–Taubin Code Shlomo Engelberg and Osnat Keren Abstract—This paper presents generalizations of the Kar- povsky–Taubin nonlinear code. The generalizations lead to robust and partially robust single error detecting codes and single error correcting codes. Index Terms—Fault analysis attack, nonlinear code, robust code, undetected error. I. INTRODUCTION I N [3], Karpovsky and Taubin presented a set of robust and partially robust nonlinear codes. In this comment, we present a generalized version of their code. Robust codes are codes designed to detect malicious active fault analysis attacks on cryptographic devices. Each time the cryptographic device is activated, it generates a codeword . The attacker, who knows the codebook but cannot predict which codeword will appear at the outputs, distorts the outputs of the device by injecting an error vector. The probability, , that a given error, , will map a codeword onto another codeword is called the error masking probability or the undetected error probability and is defined as . There are three classes of errors. Errors that are never detected. An error, , is said to be undetected if for all , that is . The set of such errors is called the detection kernel of the code. One design goal is to construct a code with a minimal kernel. Errors that are always detected. An error, , is always de- tected if for all , , that is . Errors that are detected with probability less than one. That is, . A second design goal is to construct a code for which the undetected error probability of the code, , is as small as possible. A code is robust with respect to its error-masking probability if the probability of missing an error is less than one for all nonzero errors. A code is partially robust if the size of the kernel is smaller than the size of the code. A linear code cannot be robust or partially robust [3]. The undetected error probability of a binary systematic robust code of length is lower bounded by , [4]. Thus, the number of redundancy bits in a robust binary code having minimal must be greater than or equal to where is the dimension of the code. Manuscript received March 21, 2011; revised June 26, 2011; accepted June 30, 2011. Date of publication July 25, 2011; date of current version December 07, 2011. S. Engelberg is with the Department of Electronics, Jerusalem College of Technology, 91160 Jerusalem, Israel. O. Keren is with the School of Engineering, Bar-Ilan University, 33021-3409 Ramat-Gan, Israel (e-mail: kereno@macs.biu.ac.il). Communicated by M. Blaum, Associate Editor for Coding Theory. Digital Object Identifier 10.1109/TIT.2011.2162718 In [3], Karpovsky and Taubin introduced a new class of non- linear systematic codes having the smallest possible kernel and the smallest possible undetected error probability. Construction 1 (Karpovsky–Taubin Code, [3]): Let be a binary matrix of rank . Define . The Karpovsky–Taubin (KT) code is an code of length , dimension and minimum distance that equals two when is odd and equals one when is even. The kernel forms a linear subspace of dimension , and there are errors that are masked with prob- ability . The remaining error vectors are detected with probability 1. We generalize the KT code and construct a single error de- tecting (SED) code for which all single bit errors are included in the set of error vectors that are always detected. Then, we show how by adding a single parity bit the code becomes a single error correcting (SEC) code with . The generalized Vasil’ev codes, Etzion-Vardy switching construction codes, and the generalized Phelps codes are SEC robust and partially robust codes [4], [5]. The first two have . Generalized KT (GKT) codes have the smallest possible , and for , this is always less than 0.5. By properly selecting the code parameters, it is possible to construct a Phelps code having the smallest possible . In this case, the characteristics of SEC GKT codes are the same as those of the Generalized Phelps code, but the length and dimension of the Generalized Phelps code are restricted to be and , respectively, whereas the GKT codes can have arbitrary lengths and dimension. II. GKT CODES The GKT codes are defined as follows. Construction 2 (SED GKT Code): Let be a full rank binary matrix, and let . Define The generalized code has the same immunity to fault anal- ysis attacks as the KT code. That is, each class of errors (never detected, always detected, detected with probability ) contains the same number of vectors as the KT-code. The values of the coefficients and the matrix determine the class of each error vector. As we show next, it is possible to choose these pa- rameters so that single-bit errors are always detected. Let be a codeword and be a nonzero error vector. An error vector is undetected if . In other words, if 0018-9448/$26.00 © 2011 IEEE