IP Library Granted Patent US 7,318,160
Granted Patent B2
US 7,318,160 · App. 10/062,808 · Granted Jan 8, 2008

Cryptographic key setup in queued cryptographic systems

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,318,160
App. No.
10/062,808
Granted
Jan 8, 2008
Kind
B2
Abstract

A method is disclosed for performing cryptographic tasks, that include key setup tasks and work data processing tasks. This method comprises the steps of processing the key data in a first cryptographic engine and processing the work data in a second cryptographic engine. The processing of the key data comprises the steps of receiving key data, processing the key data, and generating processed key data. The processing of the work data comprises the steps of receiving the processed key data, receiving work data, processing the work data, and outputting the processed work data. In this method of the invention, the first cryptographic engine performs its tasks independently of the second cryptographic engine. A method for allocating cryptographic engines in a cryptographic system is also disclosed comprising monitoring a queue of cryptographic tasks, monitoring activity levels of a first allocation of a plurality of cryptographic engines, and dynamically adjusting the first allocation.

Claims (106)

1. A method for queue look-ahead key setup in a cryptographic system, the method comprising:

receiving jobs in queue with each of the jobs consisting of work data and key data that is associated with a key type;

designating plural duplicate key cryptographic engines using a same encryption scheme processing the key data of the jobs;

designating plural duplicate work cryptographic engines using a same encryption scheme processing the work data of the jobs, the plural duplicate work cryptographic engines being different cryptographic engines from the plural duplicate key cryptographic engines;

looking ahead into the job queue for one or more succeeding jobs to be performed;

assigning the one or more succeeding jobs to one of the plural duplicate key cryptographic engines;

outputting, from the one key cryptographic engine, processed key data to memory; and

inputting the processed key data to one of the plural work cryptographic engines when the one work cryptographic engine is ready to process work data relating to the processed key data.

2. The method of claim 1 , further comprising:

in the one key cryptographic engine,

receiving key data,

processing the key data,

generating processed key data, and

storing the processed key data.

3. The method of claim 2 , further comprising:

processing the work data in the one work cryptographic engine, wherein processing includes

retrieving the processed key data,

receiving work data,

processing the work data, and

outputting the processed work data.

4. The method of claim 3 , wherein the one key cryptographic engine is pipelined with the one work cryptographic engine.

5. The method of claim 3 , wherein the one key cryptographic engine is optimized to perform key setup tasks of a cryptographic algorithm.

6. The method of claim 3 , wherein the one work cryptographic engine is optimized to perform work data processing tasks of a cryptographic algorithm.

7. The method of claim 1 , wherein the queue is developed from cryptographic tasks that arrive in batches or randomly.

8. The method of claim 1 , further comprising:

retaining, processed key data for processing of different work data.

9. The method, of claim 1 , wherein processing the key data is performed in the one key cryptographic engine and processing of the work data is performed in the one work cryptographic engine.

10. A method for performing cryptographic tasks, the method comprising:

maintaining cryptographic tasks in a queue, wherein the cryptographic tasks include key setup tasks and work data processing tasks;

selecting a first cryptographic engine from plural duplicate cryptographic engines that use a same encryption scheme to process key data;

performing the key setup tasks in the first cryptographic engine, wherein each of the key setup tasks includes

receiving the key data,

processing the key data,

generating processed key data, and

storing the processed key data;

selecting a second cryptographic engine from plural duplicate cryptographic engines that use a same encryption scheme to process work data; and

processing the work data in the second cryptographic engine, wherein each of the work data processing tasks includes

retrieving the processed key data,

receiving the work data,

processing the work data, and

outputting the processed work data, wherein the first cryptographic engine is pipelined with the second cryptographic engine.

11. The method of claim 10 , further comprising:

looking ahead into the queue for one or more succeeding cryptographic tasks to be performed; and

performing a pipeline key setup for the one or more succeeding cryptographic tasks, the pipeline key setup being performed independently from, and it can performed be concurrently with, processing of the work data for any others of the cryptographic tasks, wherein for each cryptographic task, key setup tasks further include

identifying a cryptographic algorithm for processing the work data,

processing the key data from that cryptographic task so as to match its key type to the algorithm, wherein the key data in a matched key type is available for processing of the work data for that cryptographic task.

12. The method of claim 10 , further comprising:

monitoring the queue to identify key setup task and work data processing tasks;

directing the key setup tasks to the first cryptographic engine; and

directing the work data processing tasks to the second cryptographic engine.

13. The method of claim 10 , wherein the queue is developed from cryptographic tasks that arrive in batches or randomly.

14. The method of claim 10 , further comprising:

retaining the stored processed key data for processing of different work data.

15. The method of claim 10 , wherein each of the key setup tasks further includes identifying a cryptographic algorithm for processing the key data and work data.

16. The method of claim 15 , wherein the cryptographic algorithm includes a DES algorithm, an RSA algorithm, a multi-prime algorithm, an AES algorithm, a Diffie-Hellman algorithm, or a hashing algorithm.

17. The method of claim 15 , wherein the first cryptographic engine is optimized to perform tasks of the cryptographic algorithm.

18. The method of claim 15 , wherein the second cryptographic engine is optimized to perform tasks of the cryptographic algorithm.

19. The method of claim 10 , wherein the first cryptographic engine performs its tasks substantially in parallel with the second cryptographic engine.

20. A computer readable medium embodying program code having instructions for causing a computer to perform cryptographic tasks, comprising:

program code for receiving cryptographic tasks that include key setup tasks and work data processing tasks;

program code for selecting a first cryptographic engine from plural duplicate cryptographic engines that use a same encryption scheme to process key data;

program code for causing the computer to perform the key setup tasks in the first cryptographic engine, wherein each of the key setup tasks includes

receiving the key data,

processing the key data,

generating processed key data, and

storing the processed key data;

program code for selecting a second cryptographic engine from plural duplicate cryptographic engines that use a same encryption scheme to process work data; and

program code for causing the computer to process the work data in the second cryptographic engine, wherein each of the work data processing tasks includes

retrieving the processed key data,

receiving the work data,

processing the work data, and

outputting the processed work data, wherein the first cryptographic engine is pipelined with the second cryptographic engine.

21. The computer readable medium of claim 20 , further comprising:

program code for causing the computer to perform queue look-ahead tasks that include looking ahead into the queue for one or more succeeding cryptographic tasks to be performed, and

performing a pipeline key setup for the one or more succeeding cryptographic tasks, the pipeline key setup being performed independently from, and it can be performed concurrently with, processing of the work data for any others of the cryptographic tasks, wherein for each cryptographic task, the key setup tasks further include

identifying a cryptographic algorithm for processing the work data,

processing the key data from that cryptographic task so as to match its key type to the algorithm, wherein the key data in a matched key type is available for processing of the work data for that cryptographic task.

22. The computer readable medium of claim 20 , wherein the cryptographic tasks correspond to a cryptographic algorithm.

23. The computer readable medium of claim 22 , wherein the cryptographic algorithm includes a DES algorithm.

24. The computer readable medium of claim 22 , wherein the cryptographic algorithm includes a DES algorithm, an RSA algorithm, a multi-prime algorithm, an AES algorithm, a Diffie-Hellman algorithm, or a hashing algorithm.

25. The computer readable medium of claim 22 , wherein the first cryptographic engine is optimized to perform tasks of the cryptographic algorithm.

26. The computer readable medium of claim 25 , wherein the second cryptographic engine is optimized to perform tasks of the cryptographic algorithm.

27. The computer readable medium of claim 20 , wherein the first cryptographic engine performs its tasks substantially in parallel with the second cryptographic engine.

28. A computer system comprising:

a plurality of duplicate key cryptographic engines using a same encryption scheme for processing key data;

a plurality of duplicate work cryptographic engines using a same encryption scheme for processing work data;

a memory for storing cryptographic tasks that include key setup tasks and work data processing tasks; and

a processor for selecting a first cryptographic engine from the duplicate key cryptographic engines and for selecting a second cryptographic engine from the duplicate work cryptographic engines, the processor interacting with the first and second cryptographic engines to cause the first cryptographic engine to perform the key setup tasks wherein each of the key setup tasks includes

receiving key data,

processing the key data,

generating processed key data, and

storing the processed key data, and to cause the second cryptographic engine to process the work data, wherein each of the work data processing tasks includes

retrieving the processed data,

receiving work data,

processing the work data, and

outputting the processed work data, wherein the first cryptographic engine is pipelined with the second cryptographic engine.

29. The computer system of claim 28 , wherein the processor performs queue look-ahead tasks that include

looking ahead into queue for one or more succeeding cryptographic tasks to be performed, and

performing a pipeline key setup for the one or more succeeding cryptographic tasks, the pipeline key setup being performed independently from, and it can be performed concurrently with, processing of the work data for any others of the cryptographic tasks, wherein for each cryptographic task, key setup tasks further include

identifying a cryptographic algorithm for processing the work data

processing the key data from that cryptographic task so as to match its key type to the algorithm, wherein the key data in a matched key type is available for processing of the work data for that cryptographic task.

30. The computer system of claim 28 , wherein the cryptographic tasks correspond to a cryptographic algorithm.

31. The computer system of claim 30 , wherein the cryptographic algorithm includes a DES algorithm, an RSA algorithm, a multi-prime algorithm, an AES algorithm, a Diffie-Hellman algorithm, or a hashing algorithm.

32. The computer system of claim 30 , wherein the first cryptographic engine is optimized to perform tasks of the cryptographic algorithm.

33. The computer system of claim 30 , wherein the second cryptographic engine is optimized to perform tasks of the cryptographic algorithm.

34. The computer system of claim 28 , wherein the first cryptographic engine performs its tasks in parallel with the second cryptographic engine.

Assignments (12)
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0577 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC)
Reel/Frame 063560/0001 →
RELEASE OF SECURITY INTEREST REEL/FRAME 044183/0718 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC (F/K/A ENTIT SOFTWARE LLC); BORLAND SOFTWARE CORPORATION; MICRO FOCUS (US), INC.; SERENA SOFTWARE, INC; ATTACHMATE CORPORATION; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062746/0399 →
RELEASE OF SECURITY INTEREST Recorded Aug 22, 2019
From: NIBC BANK N.V., AS SECURITY AGENT
To: UTIMACO INC.
Reel/Frame 050135/0404 →
SECURITY INTEREST Recorded Feb 5, 2019
From: UTIMACO INC.
To: NIBC BANK N.V.
Reel/Frame 048240/0281 →
RELEASE OF SECURITY INTEREST Recorded Oct 24, 2018
From: JPMORGAN CHASE BANK, N.A. (AS SUCCESSOR TO BANK OF AMERICA, N.A.)
To: ENTIT SOFTWARE LLC
Reel/Frame 047297/0843 →
RELEASE OF SECURITY INTEREST Recorded Oct 24, 2018
From: JPMORGAN CHASE BANK, N.A. (AS SUCCESSOR TO BANK OF AMERICA, N.A.)
To: ENTIT SOFTWARE LLC
Reel/Frame 047299/0055 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ENTIT SOFTWARE LLC; ARCSIGHT, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0577 →
SECURITY INTEREST Recorded Oct 11, 2017
From: ATTACHMATE CORPORATION; BORLAND SOFTWARE CORPORATION; NETIQ CORPORATION; MICRO FOCUS (US), INC.; MICRO FOCUS SOFTWARE, INC.; ENTIT SOFTWARE LLC; ARCSIGHT, LLC; SERENA SOFTWARE, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 044183/0718 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2017
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: ENTIT SOFTWARE LLC
Reel/Frame 042746/0130 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
CHANGE OF NAME Recorded May 12, 2004
From: COMPAQ INFORMATION TECHNOLOGIES GROUP LP
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 014628/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2002
From: HOPKINS, DALE W.; COLLINS, THOMAS W.; WIERENGA, STEVEN W.
To: COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P.
Reel/Frame 012757/0787 →