|
|
Redundant Number Systems for Reconfigurable Arithmetic Units
Arnaud Tisserand
|
|
Representation of numbers plays a key role in arithmetic units. They
widely impact the speed, silicon area and power consumption of
computation units. Choosing a specific representation is not a simple
task. There is a complex trade-off between:
- the number system(s) used to represent the data (width, number
coding...);
- the algorithm used to compute the mathematical operations
(evaluation methods, speed/area trade-offs, fused operations...);
- the characteristics of data (signal activity, space/time
correlations...);
- and some circuit constraints (specific cells in the standard
library, logic style...).
Redundant number systems have been introduced to speed-up some
computations. In a redundant number system, some numbers have several
distinct representations. This property is used in some number systems
to allow constant time addition (the addition time does not depend on
the number of digits). Constant time addition is useful for the
addition of multiple values (n*n-bit multiplication is equivalent to n
additions of n-bit numbers). The conversion into a non-redundant
number system is done using a standard adder. One drawback of a
redundant number system is the fact that comparisons are expensive
(this may be a problem for modular arithmetic).
Redundant number systems are used in cryptography for a long
time. Recodings of some values into a redundant number system are
frequent. For instance, Non-Adjacent Forms (NAF and w-NAF) are used in
modular exponentiation in RSA and in scalar multiplication in
ECC. Redundancy is used to lower the number of some operations.
After an introduction to redundant number systems, we will present
some current investigations on links between redundant number systems
and reconfigurable arithmetic units with countermeasures against some
side channel attacks. The use of redundant number system allows to
change the way some computations are performed (and then their effects
on side channels). The frequency (internal iteration level, field
operation level, curve operation level...) and the location (digit
level, number level, curve point level...) of the reconfigurations
widely impact units characteristics. We will show some very first
results on a long term project dedicated to reconfigurable arithmetic
units for cryptography.
|
|