Polymorphic encryption method and system
First Claim
1. A method of encoding a message sent from a sender to a receiver, comprising the steps of:
- (a) generating a first character set;
(b) generating a key comprising characters within the first character set;
(c) creating a sender assignment table using the key, the sender assignment table comprising a plurality of values corresponding to each character in the first character set, and each of the sender assignment table values comprised of characters from a second character set;
(d) substituting each character in a plaintext message comprised of the first character set with the corresponding sender assignment table value to create a ciphertext message;
(e) repeating said substitution step a number of times equal to a specified level number, each repetition being performed upon the ciphertext message resulting from the preceding substitution step; and
(f) passing the ciphertext message resulting from said repetition of said substitution step with the level number to a receiver.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention is directed to a symmetric encoding and decoding architecture for a communication system that may be implemented using multiple encoding levels. By changing the number of levels used, the system may be adapted to the user'"'"'s speed and security requirements. Cryptoanalysis techniques attacking the encoding process may yield multiple meaningful messages, without the ability of the attacker to determine which message is the correct one. The encrypted messages may also be compressed according to an algorithm that is effective even for small message sizes, and an exclusive-OR (XOR) function may be applied to the result to thwart an attack by a party that knows the compression algorithm.
53 Citations
38 Claims
-
1. A method of encoding a message sent from a sender to a receiver, comprising the steps of:
- (a) generating a first character set;
(b) generating a key comprising characters within the first character set;
(c) creating a sender assignment table using the key, the sender assignment table comprising a plurality of values corresponding to each character in the first character set, and each of the sender assignment table values comprised of characters from a second character set;
(d) substituting each character in a plaintext message comprised of the first character set with the corresponding sender assignment table value to create a ciphertext message;
(e) repeating said substitution step a number of times equal to a specified level number, each repetition being performed upon the ciphertext message resulting from the preceding substitution step; and
(f) passing the ciphertext message resulting from said repetition of said substitution step with the level number to a receiver. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
- (a) generating a first character set;
-
16. A system for the transmission of encoded messages, comprising:
-
(a) a network operable to transmit messages;
(b) first and second communication sockets connected to said network wherein said first communication socket is operable to send a message over said network to said second communication socket;
(c) an encoding module in communication with said first communication socket, said encoding module comprising;
(i) a key generation module operable to generate a key;
(ii) an encoding assignment table generation module operable to generate an assignment table using the key, wherein the assignment table comprises each possible character in a plaintext message and a corresponding substitution character set for each such character; and
(iii) an encoding substitution module operable to generate a ciphertext message from a plaintext message by substituting for each character in a plaintext message the corresponding substitution character set for each such character, and repeating such operation on the resulting ciphertext message a number of times equal to a level number;
(d) a decoding module in communication with said second communication socket, said decoding module comprising;
(i) a decoding assignment table generation module operable to generate an assignment table using a key, wherein the assignment table comprises each possible character in a plaintext message and a corresponding substitution character set for each such character; and
(ii) a decoding substitution module operable to generate a plaintext message from a ciphertext message by substituting for each substitution character set in a ciphertext message the corresponding character, and repeating such operation on the resulting message a number of times equal to a level number, resulting in a plaintext message;
(e) a first user interface in communication with said encoding module wherein said first user interface is operable to receive as input a plaintext message and a level number and communicate said plaintext message and said level number to said encoding module; and
(f) a second user interface in communication with said decoding module wherein said second user interface is operable to display as output a plaintext message received from said decoding module. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method of communicating between a first and second node using encoded messages, comprising the steps of:
-
(a) receiving a plaintext message and a level number at the first node;
(b) generating a key at the first node;
(c) creating a first assignment table at the first node using the key, wherein the first assignment table comprises an assignment table value corresponding to each possible character in the plaintext message;
(d) substituting each character in the plaintext message with the corresponding assignment table value to create a ciphertext message, and repeating said substitution step a number of times equal to the level number, each repetition being performed upon the ciphertext message resulting from the preceding substitution step;
(e) substituting a character representing the level number with the corresponding assignment table value to create a ciphertext level number;
(f) encrypting the key with a public key encryption technique;
(g) passing the public-key encrypted key to the second node; and
(h) passing the ciphertext message and ciphertext level number to the second node. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38)
-
Specification