IP Library Granted Patent US 7,890,565
Granted Patent B2
US 7,890,565 · App. 11/741,865 · Granted Feb 15, 2011

Efficient hardware implementation of tweakable block cipher

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,890,565
App. No.
11/741,865
Granted
Feb 15, 2011
Kind
B2
Abstract

A combination of an infrequently-called tiny multiplication unit and a “differential” unit that quickly computes T (n+1) basing on known T n. 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).

Claims (89)

1. 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 T 0 value, where

T 0 =TØ3,

(B) entering To into a second functional unit to produce 128 128-bit values T 1 -T 128 , where,

T 1 =T 0 2,

T 2 =T 1 2,

T 128 =T 127 2,

(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 T 1-128 in a fourth functional unit to produce one 128-bit value T m+1 , by:

(i) using the least significant bit m 0 of m, compute sixty-four 128-bit values, by:

T 1.0 =m 0 ?T 1 :T 2 ,

T 2.0 =m 0 ?T 3 :T 4 ,

T 3.0 =m 0 ?T 5 :T 6 ,

T 64.0 =m 0 ?T 127 :T 128 ,

(ii) using the second least significant bit m 1 of m, compute thirty-two 128-bit values, by:

T 1.1 =m 1 ?T 1.0 :T 2.0,

T 2.1 =m 1 ?T 3.0 :T 4.0,

T 3.1 =m 1 ?T 5.0 :T 6.0,

T 32.1 =m 1 ?T 63.0 :T 64.0,

(iii) using the third least significant bit m 2 of m, compute sixteen 128-bit values, by:

T 1.2 =m 2 ?T 1.1 :T 2.1,

T 2.2 =m 2 ?T 3.1 :T 4.1,

T 3.2 =m 2 ?T 5.1 :T 6.1,

T 16.2 =m 2 ?T 31.1 :T 32.1,

(iv) using the fourth least significant bit m 3 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 m 4 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 m 5 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 m 6 of m, compute the 128-bit value T m+1 in the same manner as described in steps (D)(i) through (D)(iii),

(E) input T m+1 and T 0 into a fifth functional unit to compute differential D T (n)=T m+1 ⊕T 0 , and

(F) using the differential D T (n), compute whitening vector P n+1 =P n ⊕D T (n+1) and use P n+1 to encrypt/decrypt a data block for storage, where P n0 has been computed in an external multiplication unit once, at a beginning of a series of sequentially indexed data blocks.

2. The method of claim 1 , further comprising:

computing the whitening vector for each n,

XORing the whitening vector with an input block of data,

sending the XORed input block of data through an AES unit to produce an output block of data, and

XORing the output block of data with the whitening vector.

3. The method of claim 1 , further comprising:

computing the differentials using separate first and second processes that function identically and with a time shift between the two processes that is equal to a latency of the AES unit,

where when the first process produces the whitening vector P t at moment t, the AES unit finishes processing the t-th data block at t+latency(AES), and the second process has the whitening vector P t ready at t+latency(AES).

4. The method of claim 1 , wherein calculations are performed only for values of n that are divisible by two, as:

D 1( n )= T,

D 2( n )= D T ( n/ 2) 2= D T 2 ( n/ 2),

P n+1 =P n ⊕D 1( n ), and

P n+2 =P n ⊕D 2( n )

5. The method of claim 4 , further comprising:

computing the whitening vector for each n,

XORing the whitening vector with an input block of data,

sending the XORed input block of data through an AES unit to produce an output block of data, and

XORing the output block of data with the whitening vector.

6. The method of claim 5 , further comprising:

computing the differentials using separate first and second processes that function identically and with a time shift between the two processes that is equal to a latency of the AES unit,

where when the first process produces the whitening vector P t at moment t, the AES unit finishes processing the t-th data block at t+latency(AES), and the second process has the whitening vector P t ready at t+latency(AES).

7. The method of claim 1 , wherein calculations are performed only for values of n that are divisible by four, as:

D 1( n )= D 1( n+ 2)= T,

D 1′( n+ 1)= T 3,

D 4( n )= D T ( n/ 4) 4= D T 4 ( n/ 4),

P +1 =P n ⊕D 1( n ),

P n+2 =P n+1 ⊕D 1′( n+ 1),

P n+3 =P n+2 ⊕D 1( n+ 2), and

P n+4 =P n ⊕D 4( n )

8. The method of claim 7 , further comprising:

computing the whitening vector for each n,

XORing the whitening vector with an input block of data,

sending the XORed input block of data through an AES unit to produce an output block of data, and

XORing the output block of data with the whitening vector.

9. The method of claim 8 , further comprising:

computing the differentials using separate first and second processes that function identically and with a time shift between the two processes that is equal to a latency of the AES unit,

where when the first process produces the whitening vector P t at moment t, the AES unit finishes processing the t-th data block at t+latency(AES), and the second process has the whitening vector P t ready at t+latency(AES).

10. The method of claim 1 , wherein calculations are performed only for values of n that are divisible by K=2 k , where k>0, as:

for 0<i<K, P n+i =P n+i−1 ⊕+D1(n+i−1), and

P n+K =P n ⊕DK(n), where DK(n)=D T (n/K) K=D T K (n/K).

11. The method of claim 10 , further comprising:

computing the whitening vector for each n,

XORing the whitening vector with an input block of data,

sending the XORed input block of data through an AES unit to produce an output block of data, and

XORing the output block of data with the whitening vector.

12. The method of claim 11 , further comprising:

computing the differentials using separate first and second processes that function identically and with a time shift between the two processes that is equal to a latency of the AES unit,

where when the first process produces the whitening vector P t at moment t, the AES unit finishes processing the t-th data block at t+latency(AES), and the second process has the whitening vector P t ready at t+latency(AES).

13. The method of claim 1 , wherein calculations are performed only for values of n that are divisible by K=2 k , where k>0, as:

for 0<i<K, P n+i =P n+i−1 ⊕D 1 (n+i−1), and

P n+K =T{circle around (×)}(n+K).

14. The method of claim 13 , further comprising:

computing the whitening vector for each n,

XORing the whitening vector with an input block of data,

sending the XORed input block of data through an AES unit to produce an output block of data, and

XORing the output block of data with the whitening vector.

15. The method of claim 14 , further comprising:

computing the differentials using separate first and second processes that function identically and with a time shift between the two processes that is equal to a latency of the AES unit,

where when the first process produces the whitening vector P t at moment t, the AES unit finishes processing the t-th data block at t+latency(AES), and the second process has the whitening vector P t ready at t+latency(AES).

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2020
From: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
To: BROADCOM INTERNATIONAL PTE. LTD.
Reel/Frame 053771/0901 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY NUMBERS PREVIOUSLY RECORDED AT REEL: 47630 FRAME: 344. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 21, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0267 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF MERGER TO 9/5/2018 PREVIOUSLY RECORDED AT REEL: 047196 FRAME: 0687. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047630/0344 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047196/0687 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS (RELEASES RF 032856-0031) Recorded Feb 2, 2016
From: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
To: LSI CORPORATION; AGERE SYSTEMS LLC
Reel/Frame 037684/0039 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: LSI CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 035390/0388 →
CHANGE OF NAME Recorded Jun 6, 2014
From: LSI LOGIC CORPORATION
To: LSI CORPORATION
Reel/Frame 033102/0270 →
PATENT SECURITY AGREEMENT Recorded May 8, 2014
From: LSI CORPORATION; AGERE SYSTEMS LLC
To: DEUTSCHE BANK AG NEW YORK BRANCH, AS COLLATERAL AGENT
Reel/Frame 032856/0031 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2007
From: BOLOTOV, ANATOLI; GRINCHUK, MIKHAIL I.
To: LSI LOGIC CORPORATION
Reel/Frame 019226/0786 →