IP Library › Granted Patent US 7,190,791
Granted Patent B2
US 7,190,791 · App. 10/299,847 · Granted Mar 13, 2007

Method of encryption using multi-key process to create a variable-length key

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,190,791
App. No.
10/299,847
Filed
Nov 20, 2002
Granted
Mar 13, 2007
Kind
B2
Art Unit
2132
USPC
380/45
Abstract

In symmetric methods of encryption the key should be as long as the plaintext message. Such a key is difficult to generate if the plaintext data to be encrypted is enormous. The present invention provides a method of creating a random key of variable length which may be extremely long. It is generated by consecutively applying sub-keys having shorter non-repeating random lengths.

Claims (39)

1. A method of generating a stream cipher having length x bytes, the method comprising the steps of:

i) selecting a number n representing a number of sub-keys, and n unique prime numbers m n each representing a unique non-repeating sub-key length m n bytes;

ii) generating n unique random numbers, each having non-repeating length m n bytes;

iii) generating a n+1st random number R;

iv) for each byte whose position in said n th random number is p, where p=R Mod m n , consecutively applying a function to each p th byte of each of said n random numbers to generate a value;

v) incrementing the value of p by 1; and

vi) repeating step iv) and v) and concatenating each said value produced in step iv) to the previous value produced in step iv) until said stream cipher of x bytes in length has been produced.

2. The method of claim 1 wherein said selected length m n of each said sub-key is a prime number greater than 10.

3. The method of claim 1 wherein said function applied consecutively to each said p th byte of said n random numbers is the exclusive-or function, which is applied by obtaining the result of applying the exclusive-or function initially to the k th and the k+1 st pair of p th bytes where k=1 and then consecutively incrementing k by 1 and applying the exclusive-or function to said result and the next p th byte.

4. The method of claim 1 comprising the further step of applying a delinearization function to said stream cipher.

5. The method of claim 4 wherein said delinearization function is a substitution cipher.

6. The method of claim 1 wherein each of said n random numbers are generated by:

i) generating a n+2 nd random number which is not a perfect square;

ii) calculating the square root of said n+2 nd random number;

iii) generating a n+3 rd random number;

iv) commencing with a digit whose position in said square root of said n+2 nd random number is calculated based on said n+3 rd random number, taking finite strings of digits sequentially from said square root of said said n+2 nd random number and converting each said finite string into a byte;

v) concatenating each byte sequentially from said square root of said said n+2 nd random number until the selected length m n of said each of said n random numbers has been reached.

7. The method of claim 6 wherein said finite strings of digits are at least 4 digits long.

8. The method of claim 7 wherein said finite string is converted into a byte by applying a mod function.

9. The method of claim 8 wherein said finite string is converted into a byte by applying a mod 256 function.

10. A computer program product embodied in a computer usable medium for generating a stream cipher having length x bytes, said computer program product comprising a computer usable medium having computer readable program code means embodied in said medium for:

i) generating n unique random numbers, each having non-repeating length m n bytes where m n is a prime number;

ii) generating a n+1st random number R;

iii) for each byte whose position in said n th random number is p, where p=R Mod m n , consecutively applying a function to each p th byte of each of said n random numbers to generate a value;

iv) incrementing the value of p by 1; and

v) repeating step iii) and iv) and concatenating each said value produced in step iii) to the previous value produced in step iii) until said stream cipher of x bytes in length has been produced.

11. The computer program product of claim 10 wherein said selected length m n of each said sub-key is a prime number greater than 10.

12. The computer program product of claim 10 wherein said function applied consecutively to each said p th bytes of said n random numbers is the exclusive-or function, which is applied consecutively by obtaining the result of applying the exclusive-or function initially to the k th and the k+1 st pair of p th bytes where k=1 and then consecutively incrementing k by 1 and applying the exclusive-or function to said result and the next p th byte.

13. The computer program product of claim 10 wherein said computer usable medium has computer readable program code means embodied in said medium for the further step of applying a delinearization function to said stream cipher.

14. The computer program product of claim 13 wherein said delinearization function is a substitution cipher.

15. The computer program product of claim 10 wherein each of said n random numbers is generated by:

i) generating a n+2 nd random number which is not a perfect square;

ii) calculating the square root of said n+2 nd random number;

iii) generating a n+3 rd random number;

iv) commencing with a digit whose position in said square root of said n+2 nd random number is calculated based on said n+3 rd random number, taking finite strings of digits sequentially from said square root of said said n+2 nd random number and converting each said finite string into a generated byte;

v) concatenating each generated byte sequentially until the selected length m n of said each of said n random numbers has been reached.

16. The computer program product of claim 15 wherein said finite strings of digits are at least 4 digits long.

17. The computer program product of claim 15 wherein said finite string is converted into a byte by applying a mod function.

18. The computer program product of claim 17 wherein said finite string is converted into a byte by applying a mod 256 function.

Continuity (1)
Related Publication 20040096056A1 · May 20, 2004