Back to results
US 7,890,565 B2Granted
Efficient hardware implementation of tweakable block cipher
AssigneeLSI Corporation
InventorsAnatoli Bolotov, Mikhail I. Grinchuk
Life of this patent
Estimating the term…
Abstract
A combination of an infrequently-called tiny multiplication unit and a “differential” unit that quickly computes T(n+1) basing on known Tn. The schedule (how often the multiplication unit is called) can be considered as a parameter of the algorithm. The proposed architecture of the “differential” unit is efficient both in terms of speed (delay) and area (gate count).
Claims15
A method of computing whitening vectors, the method comprising:
- (A) entering a tweakable 128-bit key T to a first functional unit to produce a 128-bit T0 value, where
- T0=TØ3,
- (B) entering To into a second functional unit to produce 128 128-bit values T1-T128, where,
- T1=T02,
- T2=T12,
- T128=T1272,
- (C) entering a 128-bit address value n into a third functional unit to produce 7-bit m values, where m represents a count of trailing values of one in a binary expansion of the address value n,
- (D) using the address value n, reduce the values T1-128 in a fourth functional unit to produce one 128-bit value Tm+1, by:
- (i) using the least significant bit m0 of m, compute sixty-four 128-bit values, by:
- T1.0=m0?T1:T2,
- T2.0=m0?T3:T4,
- T3.0=m0?T5:T6,
- T64.0=m0?T127:T128,
- (ii) using the second least significant bit m1 of m, compute thirty-two 128-bit values, by:
- T1.1=m1?T1.0:T2.0,
- T2.1=m1?T3.0:T4.0,
- T3.1=m1?T5.0:T6.0,
- T32.1=m1?T63.0:T64.0,
- (iii) using the third least significant bit m2 of m, compute sixteen 128-bit values, by:
- T1.2=m2?T1.1:T2.1,
- T2.2=m2?T3.1:T4.1,
- T3.2=m2?T5.1:T6.1,
- T16.2=m2?T31.1:T32.1,
- (iv) using the fourth least significant bit m3 of m, compute eight 128-bit values in the same manner as described in steps (D)(i) through (D)(iii),
- (v) using the fifth least significant bit m4 of m, compute four 128-bit values in the same manner as described in steps (D)(i) through (D)(iii),
- (vi) using the sixth least significant bit m5 of m, compute two 128-bit values in the same manner as described in steps (D)(i) through (D)(iii), and
- (vii) using the seventh least significant bit m6 of m, compute the 128-bit value Tm+1 in the same manner as described in steps (D)(i) through (D)(iii),
- (E) input Tm+1 and T0 into a fifth functional unit to compute differential DT(n)=Tm+1⊕T0, and
- (F) using the differential DT(n), compute whitening vector Pn+1=Pn⊕DT(n+1) and use Pn+1 to encrypt/decrypt a data block for storage, where Pn0 has been computed in an external multiplication unit once, at a beginning of a series of sequentially indexed data blocks.
26 more elements
Dependencies are inferred from the claim text.