← Back to Patent Explorer
US5631960A Expired / Lapsed US ⏱️ 0.0 years remaining

Autotest of encryption algorithms in embedded secure encryption devices

Assignee: National Semiconductor Corp
•
Filing: 1995-08-31
•
Granted: 1997-05-20
•
Expires: 2015-08-31
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract An internal state machine controller in an integrated circuit containing a cryptographic implementation independently tests and verifies each of the encryption and decryption algorithms and modes within the implementation with minimal processor intervention. The cryptographic implementation automatically generates all input data and exercises all feedback modes independent of the core processor. Eliminating external test vectors results in a device less expensive to manufacture and verify. Since the cryptographic implementation tests are performed independent of the processor, other parts of the integrated circuit may be tested simultaneously with the testing of the cryptographic implementation. The processor loads in a single set of predetermined test vectors and then signals the state machine to start the testing of all the algorithms contained in the module. The output of each algorithm is used as the input of the next algorithm. The encrypted output from each algorithm is then fed back into the algorithms in reverse order and decrypted. At the end of this cycle the data returned should match the original data exactly. This is considered a cycle. The number of cycles is programmable depending on the test requirements and or fault coverage desired. In the preferred embodiment, the cryptographic implementation includes a cryptographic engine having encryption and decryption modes. Output Feedback (OFB), Electronic Codebook (ECB), Cipher Block Chaining (CBC), and Cipher Feedback (CFB) modes are supported in the preferred embodiment of the present invention.

Inventors

  • 👤 Thomas H. Likens
  • 👤 Thomas M. Norcross

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 08:49
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/14; H; H04; H04L; H04L9/00; H04L9/06; H04L9/0618; H04L9/0637; H04L2209/00; H04L2209/12; H04L2209/125; H04L2209/26

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 212 words
A method of testing a cryptographic accelerator that implements a cryptographic function having a state that is either an encryption state or a decryption state, such that the encryption state is an inverse decryption state, and such that the decryption state is an inverse encryption state, implementing the cryptographic function in each of n modes, comprising the steps of: for integer i equal 1, performing a first cryptographic operation in a first state in a first mode taking a B-bit cryptographic test block as input and producing a B-bit first intermediate encrypted result; for i from 2 to n, performing an i th cryptographic operation in an i th state in an i th mode taking the B-bit (i-1) th intermediate result as input and producing a B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing an i th cryptographic operation in the inverse (2n-i+1) th state in the (2n-i +1) th mode taking the B-bit (i-1) th intermediate result as input and producing a B-bit i th intermediate encrypted result; and for i equal 2n, performing a 2n th cryptographic operation in the inverse first state in the first mode taking the B-bit (i-1) th intermediate result as input and producing a B-bit accelerator computed test result.
Claim 2
Independent Claim 212 words
A method of testing a cryptographic accelerator that implements a cryptographic function having a state that is either an encryption state or a decryption state, such that the encryption state is an inverse decryption state, and such that the decryption state is an inverse encryption state, implementing the cryptographic function in each of n modes, comprising the steps of: for integer i equal 1, performing a first cryptographic operation in a first state in a first mode taking a B-bit cryptographic test block as input and producing a B-bit first intermediate encrypted result; for i from 2 to n, performing an i th cryptographic operation in an i th state in an i th mode taking the B-bit (i-1) th intermediate result as input and producing a B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing an i th cryptographic operation in the inverse (2n-i+1) th state in the (2n-i +1) th mode taking the B-bit (i-1) th intermediate result as input and producing a B-bit i th intermediate encrypted result; and for i equal 2n, performing a 2n th cryptographic operation in the inverse first state in the first mode taking the B-bit (i-1) th intermediate result as input and producing a B-bit accelerator computed test result.
Claim 3
Dependent Claim 47 words
A method as in claim 1, further comprising the steps of: comparing the B-bit accelerator computed test result to the B-bit cryptographic test block; returning a pass result if the comparing step detects equality; and returning a fail result if the comparing step does not detect equality.
Claim 4
Dependent Claim 10 words
A method as in claim 1, wherein B is 64.
Claim 5
Dependent Claim 10 words
A method as in claim 2, wherein n is 4.
Claim 6
Dependent Claim 14 words
A method as in claim 4, wherein the first through fourth states are encryption.
Claim 7
Dependent Claim 40 words
A method as in claim 4, wherein the first mode is Output Feedback Mode; wherein the second mode is Electronic Codebook Mode; wherein the third mode is Cipher Block Chaining Mode; and wherein the fourth mode is Output Feedback Mode.
Claim 8
Dependent Claim 35 words
A method as in claim 1, wherein each cryptographic operation is performed using a cryptographic engine having a key input, a B-bit data input, and an encrypt/decrypt state input, and producing a B-bit data output.
Claim 9
Dependent Claim 48 words
A method as in claim 1, further comprising the steps of: comparing the B-bit n th intermediate encrypted result to a predetermined known correct answer; returning a pass result if the comparing step detects equality; and returning a fail result if the comparing step does not detect equality.
Claim 10
Independent Claim 735 words
A method of testing a cryptographic accelerator that implements a cryptographic function having a state that is either an encryption state or a decryption state, such that the encryption state is an inverse decryption state, and such that the decryption state is an inverse encryption state, implementing the cryptographic function in each of n modes, comprising the steps of: for integer t equal 1, for integer i equal 1, performing a first first cryptographic operation in a first first state in a first first mode taking a B-bit cryptographic test block and a first B-bit initial value as inputs and producing a first B-bit first intermediate encrypted result; for i from 2 to n, performing a first i th cryptographic operation in a first i th state in a first i th mode taking the first B-bit (i-1) th intermediate result and a first B-bit initial value as inputs and producing a first B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing a first i th cryptographic operation in the inverse first (2n-i+1) th state in the first (2n-i+1) th mode taking the first B-bit (i-1) th intermediate result and a first B-bit initial value as inputs and producing a first B-bit i th intermediate encrypted result; and for i equal 2n, performing a first 2n th cryptographic operation in the inverse first first state in the first first mode taking the first B-bit (i-1) th intermediate result and a first B-bit initial value as inputs and producing a first B-bit accelerator computed test result; updating the first B-bit initial value to create a second B-bit initial value; for integer t equal 2 to T-1, for integer i equal 1, performing a t th first cryptographic operation in a t th first state in a t th first mode taking the (t-1) th B-bit accelerator computed test result and a t th B-bit initial value as inputs and producing a t th B-bit first intermediate encrypted result; for i from 2 to n, performing an t th i th cryptographic operation in an t th i th state in an t th i th mode taking the t th B-bit (i-1) th intermediate result and a t th B-bit initial value as inputs and producing a t th B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing an t th i th cryptographic operation in the inverse t th (2n-i+1) th state in the t th (2n-i+1) th mode taking the t th B-bit (i-1) th intermediate result and a t th B-bit initial value as inputs and producing a t th B-bit i th intermediate encrypted result; and for i equal 2n, performing a t th 2n th cryptographic operation in the inverse t th first state in the t th first mode taking the t th B-bit(i-1) th intermediate result and a t th B-bit initial value as inputs and producing a t th B-bit accelerator computed test result; updating the t th B-bit initial value to create a (t+1) th B-bit initial value; for integer t equal T, for integer i equal 1, performing a T th first cryptographic operation in a T th first state in a T th first mode taking the (t-1) th B-bit accelerator computed test result and a T th B-bit initial value as inputs and producing a T th B-bit first intermediate encrypted result; for i from 2 to n, performing an T th i th cryptographic operation in an T th i th state in an T th i th mode taking the T th B-bit(i-1) th intermediate result and a T th B-bit initial value as inputs and producing a T th B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing an T th i th cryptographic operation in the inverse T th (2n-i+1) th state in the T th (2n-i+1) th mode taking the T th B-bit(i-1) th intermediate result and a T th B-bit initial value as inputs and producing a T th B-bit i th intermediate encrypted result; and for i equal 2n, performing a T th 2n th cryptographic operation in the inverse T th first state in the T th first mode taking the T th B-bit(i-1) th intermediate result and a T th B-bit initial value as inputs and producing a multi-cycle accelerator computed test result.
Claim 11
Independent Claim 735 words
A method of testing a cryptographic accelerator that implements a cryptographic function having a state that is either an encryption state or a decryption state, such that the encryption state is an inverse decryption state, and such that the decryption state is an inverse encryption state, implementing the cryptographic function in each of n modes, comprising the steps of: for integer t equal 1, for integer i equal 1, performing a first first cryptographic operation in a first first state in a first first mode taking a B-bit cryptographic test block and a first B-bit initial value as inputs and producing a first B-bit first intermediate encrypted result; for i from 2 to n, performing a first i th cryptographic operation in a first i th state in a first i th mode taking the first B-bit (i-1) th intermediate result and a first B-bit initial value as inputs and producing a first B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing a first i th cryptographic operation in the inverse first (2n-i+1) th state in the first (2n-i+1) th mode taking the first B-bit (i-1) th intermediate result and a first B-bit initial value as inputs and producing a first B-bit i th intermediate encrypted result; and for i equal 2n, performing a first 2n th cryptographic operation in the inverse first first state in the first first mode taking the first B-bit (i-1) th intermediate result and a first B-bit initial value as inputs and producing a first B-bit accelerator computed test result; updating the first B-bit initial value to create a second B-bit initial value; for integer t equal 2 to T-1, for integer i equal 1, performing a t th first cryptographic operation in a t th first state in a t th first mode taking the (t-1) th B-bit accelerator computed test result and a t th B-bit initial value as inputs and producing a t th B-bit first intermediate encrypted result; for i from 2 to n, performing an t th i th cryptographic operation in an t th i th state in an t th i th mode taking the t th B-bit (i-1) th intermediate result and a t th B-bit initial value as inputs and producing a t th B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing an t th i th cryptographic operation in the inverse t th (2n-i+1) th state in the t th (2n-i+1) th mode taking the t th B-bit (i-1) th intermediate result and a t th B-bit initial value as inputs and producing a t th B-bit i th intermediate encrypted result; and for i equal 2n, performing a t th 2n th cryptographic operation in the inverse t th first state in the t th first mode taking the t th B-bit(i-1) th intermediate result and a t th B-bit initial value as inputs and producing a t th B-bit accelerator computed test result; updating the t th B-bit initial value to create a (t+1) th B-bit initial value; for integer t equal T, for integer i equal 1, performing a T th first cryptographic operation in a T th first state in a T th first mode taking the (t-1) th B-bit accelerator computed test result and a T th B-bit initial value as inputs and producing a T th B-bit first intermediate encrypted result; for i from 2 to n, performing an T th i th cryptographic operation in an T th i th state in an T th i th mode taking the T th B-bit(i-1) th intermediate result and a T th B-bit initial value as inputs and producing a T th B-bit i th intermediate encrypted result; for i from n+1 to 2n-1, performing an T th i th cryptographic operation in the inverse T th (2n-i+1) th state in the T th (2n-i+1) th mode taking the T th B-bit(i-1) th intermediate result and a T th B-bit initial value as inputs and producing a T th B-bit i th intermediate encrypted result; and for i equal 2n, performing a T th 2n th cryptographic operation in the inverse T th first state in the T th first mode taking the T th B-bit(i-1) th intermediate result and a T th B-bit initial value as inputs and producing a multi-cycle accelerator computed test result.
Claim 12
Dependent Claim 48 words
A method as in claim 9, further comprising the steps of: comparing the B-bit multi-cycle accelerator computed test result to the B-bit cryptographic test block; returning a pass result if the comparing step detects equality; and returning a fail result if the comparing step does not detect equality.
Claim 13
Dependent Claim 10 words
A method as in claim 9, wherein B is 64.
Claim 14
Dependent Claim 10 words
A method as in claim 10, wherein n is 4.
Claim 15
Dependent Claim 25 words
A method as in claim 12, wherein for t from 1 to T, wherein the t th first through t th fourth states are encryption.
Claim 16
Dependent Claim 55 words
A method as in claim 12, wherein for t from 1 to T, wherein the t th first mode is Output Feedback Mode; wherein the t th second mode is Electronic Codebook Mode; wherein the t th third mode is Cipher Block Chaining Mode; and wherein the t th fourth mode is Output Feedback Mode.
Claim 17
Dependent Claim 40 words
A method as in claim 9, wherein each cryptographic operation is performed using a cryptographic implementation having a key input, a B-bit data input, a B-Bit initial value input, and an encrypt/decrypt state input, and producing a B-bit data output.
Claim 18
Dependent Claim 57 words
A method as in claim 9, further comprising the steps of: for any t from 1 to T, comparing the B-bit t th n th intermediate encrypted result to a predetermined known correct answer; returning a pass result if the comparing step detects equality; and returning a fail result if the comparing step does not detect equality.
Claim 19
Dependent Claim 48 words
A method as in claim 15, wherein for t from 1 to T-1, the step of updating the t th B-bit initial value to create a (t+1) th B-bit initial value is performed in accordance with the t th first mode in the inverse t th first state.
Claim 20
Dependent Claim 32 words
A method as in claim 15, further comprising the step: prior to the steps in which t is 1, writing the B-bit cryptographic test block into a cryptographic B-bit data input register.
Claim 21
Dependent Claim 32 words
A method as in claim 18, further comprising the step of: prior to the steps in which t is 1, writing the first B-bit initial value into a B-bit initial value register.
Claim 22
Dependent Claim 27 words
A method as in claim 19, further comprising the step of: prior to the steps in which t is 1, writing the key into a key register.
Claim 23
Dependent Claim 27 words
A method as in claim 15, further comprising the step of: prior to the step in which t is 1, writing T to a test counter register.
Claim 24
Dependent Claim 26 words
A method as in claim 21, further comprising the steps of: for t from 1 to T after the updating steps, decrementing the test counter register.

References Cited (Backward Citations)

US5432848A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-05-19 2000-11-18 2001-05-20 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-05-19 2004-11-18 2005-05-20 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-05-19 2008-11-18 2009-05-20 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag