IP Library Granted Patent US 7,362,859
Granted Patent B1
US 7,362,859 · App. 09/970,912 · Granted Apr 22, 2008

Enhancement of utilization of encryption engine

Assignee: Sandia Corporation
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,362,859
App. No.
09/970,912
Granted
Apr 22, 2008
Kind
B1
Abstract

A method of enhancing throughput of a pipelined encryption/decryption engine for an encryption/decryption process has a predetermined number of stages and provides feedback around the stages (and of such an encryption/decryption engine) by receiving a source datablock for a given stage and encryption/decryption context identifier; indexing according to the encryption/decryption context identifier into a bank of initial variables to retrieve an initial variable for the source datablock; and generating an output datablock from the source datablock and its corresponding initial variable.

Claims (34)

1. A method of enhancing throughput of a multi-stage pipelined encryption/decryption engine for an encryption/decryption process when used with an encryption/decryption mode of operation requiring feedback around the pipelined engine, the method comprising steps of:

aggregating together multiple security contexts and establishing an entry in a bank of initial variables for each context, there being at least as many encryption/decryption security context identifiers as a predetermined number of stages in the encryption/decryption process;

receiving, for input to the multi-stage pipelined encryption/decryption engine, a source datablock for a given encryption/decryption security context identifier;

indexing according to the encryption/decryption security context identifier into the bank of initial variables to retrieve an initial variable for the source datablock, the bank comprising a plurality of initial variables for each encryption/decryption security context identifier;

generating an output datablock from the source datablock and its corresponding initial variable;

replacing the initial variable in the bank of initial variables with a new seed, as determined by a selected mode of operation, for the security context identifier; and

wherein the mode of operation of the encryption/decryption process requires feedback around the encryption/decryption engine; and wherein the pipelined encryption/decryption engine is Cipher Block Chaining Mode with exception of handling of initial variables.

2. The method of claim 1 wherein the encryption/decryption process comprises a block cipher capable of being pipelined and the encryption/decryption process is Digital Encryption Standard (DES).

3. A multi-stage pipelined encryption engine for an encryption/decryption process when used with an encryption/decryption mode of operation requiring feedback around the stages, the encryption/decryption engine comprising:

means for aggregating together multiple security contexts and establishing an entry in a bank of initial variables for each context, there being at least as many encryption/decryption security context identifiers as a predetermined number of stages in the encryption/decryption process;

means for receiving, for input to the multi-stage pipelined encryption/decryption engine, a source datablock for a given encryption/decryption security context identifier, there being at least as many encryption/decryption security context identifiers as the predetermined number of stages in the encryption/decryption process;

means for indexing according to the encryption/decryption security context identifier into a bank of initial variables to retrieve an initial variable for the source datablock, the bank comprising a plurality of initial variables for each encryption/decryption security context identifier;

means for generating an output datablock from the source datablock and its corresponding initial variable;

means for replacing the initial variable in the bank of initial variables with a new seed, as determined by a selected mode of operation, for the security context identifier; and

wherein the mode of operation of the encryption/decryption process requires feedback around the encryption/decryption engine; and wherein the pipelined encryption/decryption engine is Cipher Block Chaining Mode with exception of handling of initial variables.

4. The encryption/decryption engine of claim 3 wherein the encryption/decryption process comprises a block cipher capable of being pipelined and the encryption/decryption process is Digital Encryption Standard (DES).

5. A method of enhancing throughput of a multi-stage pipelined encryption/decryption engine for an encryption/decryption process when used with an encryption/decryption mode of operation requiring feedback around the pipelined engine, the method comprising steps of:

separating one data stream into multiple interleaved data streams, each having its own encryption/decryption security context;

aggregating together the multiple security contexts and establishing an entry in a bank of initial variables for each context, there being at least as many encryption/decryption security context identifiers as a predetermined number of stages in the encryption/decryption process;

receiving, for input to the multi-stage pipelined encryption/decryption engine, a source datablock for a given encryption/decryption security context identifier;

indexing according to the encryption/decryption security context identifier into the bank of initial variables to retrieve an initial variable for the source datablock, the bank comprising a plurality of initial variables for each encryption/decryption security context identifier;

generating an output datablock from the source datablock and its corresponding initial variable;

replacing the initial variable in the bank of initial variables with a new seed, as determined by a selected mode of operation, for the security context identifier; and

wherein the mode of operation of the encryption/decryption process requires feedback around the encryption/decryption engine; and wherein the pipelined encryption/decryption engine is Cipher Block Chaining Mode with exception of handling of initial variables.

6. The method of claim 5 wherein the encryption/decryption process comprises a block cipher capable of being pipelined and the encryption/decryption process is Digital Encryption Standard (DES).

7. A multi-stage pipelined encryption engine for an encryption/decryption process when used with an encryption/decryption mode of operation requiring feedback around the stages, the encryption/decryption engine comprising:

means for separating one data stream into multiple interleaved data streams, each having its own encryption/decryption security context;

means for aggregating together the multiple security contexts and establishing an entry in a bank of initial variables for each context, there being at least as many encryption/decryption security context identifiers as a predetermined number of stages in the encryption/decryption process;

means for receiving, for input to the multi-stage pipelined encryption/decryption engine, a source datablock for a given encryption/decryption security context identifier, there being at least as many encryption/decryption security context identifiers as the predetermined number of stages in the encryption/decryption process;

means for indexing according to the encryption/decryption security context identifier into a bank of initial variables to retrieve an initial variable for the source datablock, the bank comprising a plurality of initial variables for each encryption/decryption security context identifier;

means for generating an output datablock from the source datablock and its corresponding initial variable;

means for replacing the initial variable in the bank of initial variables with a new seed, as determined by a selected mode of operation, for the security context identifier; and

wherein the mode of operation of the encryption/decryption process requires feedback around the encryption/decryption engine; and wherein the pipelined encryption/decryption engine is Cipher Block Chaining Mode with exception of handling of initial variables.

8. The encryption/decryption engine of claim 7 wherein the encryption/decryption process comprises a block cipher capable of being pipeline and the encryption/decryption process is Digital Encryption Standard (DES).

Assignments (2)
CHANGE OF NAME Recorded Sep 28, 2017
From: SANDIA CORPORATION
To: NATIONAL TECHNOLOGY & ENGINEERING SOLUTIONS OF SANDIA, LLC
Reel/Frame 044050/0390 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2002
From: ROBERTSON, PERRY J.; WITZKE, EDWARD L.
To: SANDIA NATIONAL LABORATORIES
Reel/Frame 012487/0070 →
Continuity (1)
Provisional Application 6023867800 · Oct 6, 2000