Method and system for accelerating cryptographic processing
First Claim
1. A method for accelerating cryptographic processing of a cryptographic algorithm, comprising:
- breaking the cryptographic algorithm into a plurality of cryptographic primitives;
determining for each of the cryptographic primitives if each cryptographic primitive is capable of being executed in parallel;
executing the cryptographic primitive in parallel if the cryptographic primitive is fully capable of being executed in parallel;
executing a part of the cryptographic primitive in parallel that if the cryptographic primitive is partially capable of being executed in parallel;
sequentially executing the cryptographic primitive if the cryptographic primitive is not capable of being executed in parallel; and
distributing processing of the cryptographic primitive fully capable of being executed in parallel or the partially-capable of being executed in parallel cryptographic primitive to one or more devices capable of parallel execution of the cryptographic primitive.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, an apparatus, and a non-transitory computer readable medium for accelerating cryptographic processing are presented. A cryptographic algorithm is parallelized, which includes breaking the cryptographic algorithm into components, parallelizing an entire component if the component is fully parallelizable, parallelizing part of a component if the component is partially parallelizable, and sequentially executing a component if the component is not parallelizable. Processing of the parallelizable component or the partially parallelizable component is distributed to one or more parallelized devices. The parallelized devices include at least one of: a graphics processing unit or a cryptographic processing device, which may include an integrated cryptographic processor or a cryptographic co-processor.
27 Citations
22 Claims
-
1. A method for accelerating cryptographic processing of a cryptographic algorithm, comprising:
-
breaking the cryptographic algorithm into a plurality of cryptographic primitives; determining for each of the cryptographic primitives if each cryptographic primitive is capable of being executed in parallel; executing the cryptographic primitive in parallel if the cryptographic primitive is fully capable of being executed in parallel; executing a part of the cryptographic primitive in parallel that if the cryptographic primitive is partially capable of being executed in parallel; sequentially executing the cryptographic primitive if the cryptographic primitive is not capable of being executed in parallel; and distributing processing of the cryptographic primitive fully capable of being executed in parallel or the partially-capable of being executed in parallel cryptographic primitive to one or more devices capable of parallel execution of the cryptographic primitive. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for accelerating cryptographic processing, comprising:
-
one or more devices capable of parallel execution of cryptographic primitives of a cryptographic algorithm; and a central processing unit core, configured to; break the cryptographic algorithm into a plurality of cryptographic primitives; determine for each of the cryptographic primitives if each cryptographic primitive is capable of being executed in parallel; execute the cryptographic primitive in parallel if the cryptographic primitive is fully capable of being executed in parallel; execute part of the cryptographic primitive in parallel if the cryptographic primitive is partially capable of being executed in parallel; sequentially execute the cryptographic primitive if the cryptographic primitive is not capable of being executed in parallel; and distribute processing of the cryptographic primitive fully capable of being executed in parallel or the partially-capable of being executed in parallel cryptographic primitive to one or more devices capable of parallel execution of the cryptographic primitive. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable storage medium storing a set of instructions for execution by a general purpose computer to accelerate cryptographic processing of a cryptographic algorithm, the set of instructions comprising:
-
a breaking code segment for breaking the cryptographic algorithm into a plurality of cryptographic primitives; a determining code segment for determining for each of the cryptographic primitives if each cryptographic primitive is capable of being executed in parallel; a first executing code segment for executing the cryptographic primitive in parallel if the cryptographic primitive is fully capable of being executed in parallel; a second executing code segment for executing a part of the cryptographic primitive in parallel if the cryptographic primitive is partially capable of being executed in parallel; a sequentially executing code segment for sequentially executing the cryptographic primitive if the cryptographic primitive is not capable of being executed in parallel; and a distributing code segment for distributing processing of the cryptographic primitive fully capable of being executed in parallel or the partially capable of being executed in parallel component to one or more devices capable of parallel execution of the cryptographic primitive. - View Dependent Claims (19, 20, 21, 22)
-
Specification