Method for accelerating the computational speed of a computer algorithm
AssigneeCipherflux, LLC
InventorsJerzy Henryk Urbanik, Krzysztof Ryszard Kalita, Przemyslaw Bartlomiej Bezeg
Life of this patent
Estimating the term…
Abstract
A new technique for accelerating the computational speed of a computer algorithm is provided. The inventive technique can be applied to an encryption algorithm, such as an RSA algorithm, for example. A method and system for effecting secure information communications utilizing an accelerated information encryption algorithm is also contemplated.
Claims9
A method for accelerating the processing speed of a computer algorithm, comprising the steps of:
- obtaining data to be processed by said computer algorithm;
- providing a first data structure for holding at least a portion of said data;
- setting an index representing a stabilization state of said first data structure to a value indicating an unstabilized state;
- verifying said index setting;
- obtaining at least one data element of said data;
- and
- when said index setting indicates an unstabilized state of said first data structure, (i) inserting at least a portion of said at least one data element into said first data structure, (ii) processing said portion of said at least one data element by said computer algorithm, (iii) inserting said processed portion of said at least one data element into said first data structure, (iv) determining whether said first data structure is filled, and (a) when said first data structure is filled, setting said index to a value representing a stabilized state of said first data structure, determining if all of said data have been processed, when all of said data have been processed, adding said processed portion of said at least one data element into a second data structure and ceasing further operation, when all of said data have not been processed, adding said processed portion of said at least one data element into said second data structure and revisiting said step of obtaining at least one data element of said data, and (b) when said first data structure is not filled, determining if all of said data have been processed, when all of said data have been processed, adding said processed portion of said at least one data element into said second data structure and ceasing further operation, when all of said data have not been processed, adding said processed portion of said at least one data element into said second data structure and revisiting said step of obtaining at least one data element of said data;
- and
- when said index setting indicates a stabilized state of said first data structure, (1) searching said first data structure for at least a portion of said at least one data element that has been processed by said computer algorithm, (2) copying said processed portion of said at least one data element from said first data structure into said second data structure, (3) determining if all of said data have been processed, and (A) when all of said data have been processed, ceasing further operation, and (B) when all of said data have not been processed, revisiting said step of obtaining at least one data element of said data.
A computer program product comprising a computer usable medium having a computer readable program code means embodied in said medium for causing an application program to execute on a computer for accelerating the processing speed of a computer algorithm, comprising:
- means for obtaining data to be processed by said computer algorithm;
- a first data structure for holding at least a portion of said data;
- means for setting an index representing a stabilization state of said first data structure to a value indicating an unstabilized state;
- means for verifying said index setting;
- means for obtaining at least one data element of said data;
- and
- means for, when said index setting indicates an unstabilized state of said first data structure, (i) inserting at least a portion of said at least one data element into said first data structure, (ii) processing said portion of said at least one data element by said computer algorithm, (iii) inserting said processed portion of said at least one data element into said first data structure, (iv) determining whether said first data structure is filled, and (a) when said first data structure is filled, setting said index to a value representing a stabilized state of said first data structure, determining if all of said data have been processed, when all of said data have been processed, adding said processed portion of said at least one data element into a second data structure and ceasing further operation, when all of said data have not been processed, adding said processed portion of said at least one data element into said second data structure and revisiting said step of obtaining at least one data element of said data, and (b) when said first data structure is not filled, determining if all of said data have been processed, when all of said data have been processed, adding said processed portion of said at least one data element into said second data structure and ceasing further operation, when all of said data have not been processed, adding said processed portion of said at least one data element into said second data structure and revisiting said step of obtaining at least one data element of said data;
- and
- means for, when said index setting indicates a stabilized state of said first data structure, (1) searching said first data structure for at least a portion of said at least one data element that has been processed by said computer algorithm, (2) copying said processed portion of said at least one data element from said first data structure into said second data structure, (3) determining if all of said data have been processed, and (A) when all of said data have been processed, ceasing further operation, and (B) when all of said data have not been processed, revisiting said step of obtaining at least one data element of said data.
A system for accelerating the processing speed of a computer algorithm, comprising:
- means for obtaining data to be processed by said computer algorithm;
- a first data structure for holding at least a portion of said data;
- means for setting an index representing a stabilization state of said first data structure to a value indicating an unstabilized state;
- means for verifying said index setting;
- means for obtaining at least one data element of said data;
- and
- means for, when said index setting indicates an unstabilized state of said first data structure, (i) inserting at least a portion of said at least one data element into said first data structure, (ii) processing said portion of said at least one data element by said computer algorithm, (iii) inserting said processed portion of said at least one data element into said first data structure, (iv) determining whether said first data structure is filled, and (a) when said first data structure is filled, setting said index to a value representing a stabilized state of said first data structure, determining if all of said data have been processed, when all of said data have been processed, adding said processed portion of said at least one data element into a second data structure and ceasing further operation, when all of said data have not been processed, adding said processed portion of said at least one data element into said second data structure and revisiting said step of obtaining at least one data element of said data, and (b) when said first data structure is not filled, determining if all of said data have been processed, when all of said data have been processed, adding said processed portion of said at least one data element into said second data structure and ceasing further operation, when all of said data have not been processed, adding said processed portion of said at least one data element into said second data structure and revisiting said step of obtaining at least one data element of said data;
- and
- means for, when said index setting indicates a stabilized state of said first data structure, (1) searching said first data structure for at least a portion of said at least one data element that has been processed by said computer algorithm, (2) copying said processed portion of said at least one data element from said first data structure into said second data structure, (3) determining if all of said data have been processed, and (A) when all of said data have been processed, ceasing further operation, and (B) when all of said data have not been processed, revisiting said step of obtaining at least one data element of said data.
Dependencies are inferred from the claim text.