A Novel Parity Bit Scheme For Sbox in Aes Circuits: 'L1Dwdoh0/) Orwwhv%5Rx) H/Uh
A Novel Parity Bit Scheme For Sbox in Aes Circuits: 'L1Dwdoh0/) Orwwhv%5Rx) H/Uh
A Novel Parity Bit Scheme For Sbox in Aes Circuits: 'L1Dwdoh0/) Orwwhv%5Rx) H/Uh
*'L1DWDOH0/)ORWWHV%5RX]H\UH
Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier
Université Montpellier II / CNRS UMR 5506
161 rue Ada, 34392 Montpellier Cedex 5, France
{dinatale,flottes,rouzeyre}@lirmm.fr
Abstract – This paper addresses an efficient concurrent fault processors, and it is appropriate for dedicated hardware
detection scheme for the SBox hardware implementation of the implementations. Hardware implementations can reach
AES algorithm. Concurrent fault detection is important not only throughput rates in the gigabit range.
to protect the encryption/decryption process from random and Several hardware implementations for AES circuit have
production faults. It will also protect the system against side-
been proposed [4]. No matter the type of implementation, the
channel attacks, in particular fault-based attacks, i.e. the
injection of faults in order to retrieve the secret key. We will most expensive part of the circuit in terms of area is the so
prove that our solution is very effective while keeping the area called SBox. Section 2 will describe in detail the algorithm of
overhead very low. the AES and in particular the definition and the characteristics
of the SBox. In this paper we focus on a novel parity bit
scheme to protect the SBox core.
Conversely to the other computational blocks of the AES
I. INTRODUCTION algorithm, the SBox performs an operation that is not linear
Cryptographic algorithms play a crucial role in the and is not invariant with respect to the parity of the processed
information society. When we use teller machines, home data, i.e., the parity bit is not preserved after the
banking services or credit cards, call someone on a mobile transformation. This is the reason why it is necessary to insert
phone, get access to health care services, or buy something on an additional circuit able to predict the value of the output
the web, cryptographic algorithms are used to offer protection. parity bit starting from the input value.
These algorithms guarantee that nobody can steal our money, In this paper, we present novel low cost concurrent error
place a call at our expense, eavesdrop on our phone calls, or detection (CED) S-Box architecture for the AES. Compared to
get unauthorized access to sensitive health data. Information previous works, our solution has higher fault coverage and
technology keeps changing and will become increasingly lower area overhead.
pervasive, while disappearing from the eye of the user. The paper is organized as follows. Section 2 describes the
However, this evolution keeps presenting new security characteristics of the Advanced Encryption Standard
challenges, and there is no doubt that cryptographic algorithms algorithm. Section 3 summarizes the state-of-the-art on this
and protocols will form an important part of the solution. topic. Section 4 presents the parity-based concurrent error
Fault detection and tolerance schemes for various detection approach, whereas Section 5 discusses the results in
implementations of cryptographic algorithm have recently terms of fault detection capability and area overhead, and
been considered. Several motivations led to increase the compares these results with those published in the literature.
reliability of these circuits. From one side the circuit Eventually, Section 6 concludes the paper.
implementation of cryptographic algorithms can be quite
complex, increasing the probability of device failures. Fault II. ADVANCED ENCRYPTION STANDARD
detection is therefore helpful in finding faults during the
The Rijndael algorithm used for the AES standard
production tests. In addition, fault tolerance schemes are very
implements a symmetric-key cryptographic function in which
useful to on-line tolerate faults during mission time. From the
both the sender and receiver use a single key to encrypt and
other side, intentional intrusions and attacks based on the
decrypt the information.
malicious injection of transient faults into the device are very
Although in [5], the block length of Rijndael can be 128,
efficient in order to extract the secret key [1] [2].
192, or 256 bits, the AES algorithm [3] only adopted the block
The Advanced Encryption Standard (AES) [3] is a block
length of 128 bits. Meanwhile, the key length can be 128,
cipher adopted as an encryption standard by the U.S.
192, or 256 bits. The AES algorithm’s internal operations are
government. AES began immediately to replace the data
performed on a two dimensional array of bytes called State.
encryption standard (DES), which had been in use since 1976.
The State consists of 4 rows of bytes and each row has Nb
AES outperforms DES in improved long-term security
bytes. Each byte is denoted by Si, j (0 i < 4, 0 j < Nb).
because of larger key sizes (128, 192, and 256 bits). Another
Since the block length is 128 bits, each row of the State
major advantage of AES is the possibility of efficient
contains Nb = 4 bytes. For sake of simplicity we focus on key
implementation on various platforms. AES is suitable for
length equal to 128 bits. The four bytes in each column of the
small 8-bit microprocessor platforms and common 32-bit
State array form a 32-bit word, with the row number as the
Fig. 1: Mapping of input bytes, State array and Ciphertext (128 bits)
output bytes
Fig. 2: AES Algorithm (encryption)
Parity
*
predicted starting from the output value of the Sbox. In
SBox SBox
* addition, we calculate the parity bit of the output of the SBox
** and we compare it with the prediction of this bit starting from
**
*
the input value. All works presented in the past were based on
the predictor of the output parity.
Parity
= We calculated the Output Parity Predictor and the Input
Parity
= Parity Predictor using the truth tables of the SBox and of the
parity bits, calculated for both the input value and the output
value. Fig. 4 shows the first elements of the truth tables.
(a) (b) This scheme allows double protection of the SBox circuit
Fig. 3: State-of-the-Art and it should allow covering more faults than the architectures
proposed in the literature. Section 5 will prove that actually
To increase the dependability and to detect additional this scheme is more effective.
input parity errors and some internal memory errors (data or
decode), [11] proposes replacing the original 8-bit decoder
with a 9-bit one, yielding a 512x9 bits memory (Fig. 3.b). If a
Parity
9-bit address with an even parity is decoded, the
corresponding output byte with its associated even parity bit is
produced. Otherwise, a constant word of 9 bits with a Output
deliberately odd parity is output, e.g., “00000000 1”. Thus, Parity
Prediction
half of the entries in the SBox memory will be deliberately
wrong (in the figure, all the rows marked with a ‘*’). In case
of a single error in the input value, a wrong cell will be
addresses. That cell will contain an erroneous parity bit that =
will be detected during the parity bit check. This solution SBox
guarantees higher fault coverage but it’s very expensive in
terms of used area. =
Section 5 gives some comparative results.
Input
IV. ARCHITECTURE DESCRIPTION Parity
Prediction
In this paper we focus on the use of the parity code for a
single Sbox. We propose a solution that is suitable for all the
schemes where there is a parity check for each byte element of Parity
the matrix S. The main problem in implementing the parity bit
for the SBox is related to the fact that the SBox transformation
is not invariant with respect to the parity bit. Hence, it is Fig. 4: Proposed solution
necessary to implement a method to predict the output parity,
given the input value.
In order to meet higher fault detection capability a code-
based fault detection approach has been adopted, consisting of
information redundancy applied to both data and address of
the memory storing the SBox values. With this solution we are
single error affects the circuit. In this experiment we focused
Input Parity (Input) SBox Output Parity (Output) on single stuck-at faults. The obtained fault coverage is equal
00000000 0 01100011 0 to 99,20% for the circuit synthesised with area optimization
and 99,25% for the speed optimization.
00000001 1 01111100 1
TABLE ,
00000010 1 01110111 0
AREA
00000011 0 01111011 0 Area Speed
Optimization Optimization
... ... ... ...
Module Area Area
# Cells [µm2] # Cells [µm2]
SBox 555 34780 566 35672
InPrediction 90 5569 99 6061
OutPrediction 93 5879 94 5923
Parity 8 1420 8 1420
Comparators 2 124 2 124
Output Parity Prediction Input Parity Prediction