Seed key expansion method and its uses
OwnerMarc Leo Princeinventor
Life of this patent
Estimating the term…
Abstract
A seed key is expanded using a base primitive scheme. The first x bits of a seed key are used to determine a count number. These first x bits of the seed key are rotated from the front of the seed key to the back of the seed key. A pointer is then moved down the seed key a number of places corresponding to the count number. A specific bit pointed to by the pointer is then removed from the seed key and placed in the expanded key. After the deletion, the bit pointed to by the pointer is considered the front of the seed key and the process repeats until all the bits have been extracted and placed in the expanded key. These count numbers are also used to determine the specific bits to be removed from the plain text block and inserted into the cipher text block.
Claims10
A method for securely exchanging a secret message through a communication channel between two agents by transforming a binary plain text block into a binary cipher text block (and subsequently transforming said binary cipher text block back into said binary plain text block) by utilizing the count numbers generated by transforming a binary seed key into a binary expansion key, the method comprising:
- a) ensuring that prior to the agents communicating, in a secure environment or through a secure channel, the agents generate and exchange said binary seed key of length n;
- b) initiating a secure communication, the sending agent drafts said secret message in their language of choice, and through a text to binary encoder, such as ASCII, converts said secret message into said binary plain text block;
- c) storing said binary seed key in an ordered sequential data structure sk;
- d) ensuring said binary expansion key is an empty ordered sequential data structure ek;
- e) ensuring an empty ordered sequential data structure cns is initialized to store said count number cn;
- f) pointing a pointer psk at the bit at a front of said seed key data structure sk;
- g) reading a first a bits of said seed key data structure sk from said front of said seed key data structure sk to determine said count number cn, where both a and cn are natural numbers;
- h) inserting said count number cn in the back of said ordered sequential data structure cns;
- i) shifting the first a bits from said front to a back of said seed key data structure sk;
- j) shifting a number of cn bits from said front to a back of said seed key data structure sk, cn being equal to said count number;
- k) extracting a bit bsk pointed to by said pointer psk at the front of said seed key data structure sk and placing said bit bsk into the back of said expansion key data structure ek;
- l) by removing the bit bsk extracted in step k) from said seed key data structure sk, thereby shrinking this ordered sequential data structure by one;
- m) repeating steps f)-l) until all bits in said seed key data structure sk have been transferred into said expansion key data structure ek and all said count number cn are inserted into the back of said ordered sequential data structure cns;
- n) storing said binary plain text block in an ordered sequential data structure pt;
- o) ensuring said binary cipher text block is an empty ordered sequential data structure ct;
- p) pointing a pointer ppt at the bit at a front of said plain text data structure pt;
- q) extracting a said count number cn from the front of said ordered sequential data structure cns;
- r) shifting a number of cn bits from said front to a back of said plain text data structure pt, cn being equal to said count number;
- s) extracting a bit bpt pointed to by said pointer ppt at the front of said plain text data structure pt and placing said bit bpt into the back of said cipher text data structure ct;
- t) by removing a bit bpt extracted in step s) from said plain text data structure pt, thereby shrinking this ordered sequential data structure by one;
- u) repeating steps p) to t) until all bits in said plain text data structure pt have been transferred into said cipher text data structure ct;
- v) having formed said cipher text block by completing step u), transferring said cipher text block through said communications channel to said receiving agent;
- w) receiving said cipher text block from said communication channel, said receiving agent transforms said cipher text block back into said plain text block by performing steps c) to m) to generate said count number cn to populate said ordered sequential data structure cns, then performing steps n) to u) while substituting said plain text data structure with said cipher text data structure and reversing the direction of extraction (from back to front) of said count number cn of said ordered sequential data structure cns in q) and reversing the direction of shifting (from back to front) of now said cipher text data structure at r);
- x) having converted said cipher text block back into said plain text block in step w), converting said plain text block back into said secret message through the use of said encoder (such as ASCII);
- y) having reformed said secret message, said receiving agent has received said secret message from said sending agent;
- z) continuing said exchange of said secret messages, as required, the agents may alternately take on the roles of sending agent and receiving agent and repeat the steps b) to y) to securely transmit said secret messages;
- wherein when executing step j) and r), a count to said cn positions begins said count from 0.
Dependencies are inferred from the claim text.