COMMUNICATION SYSTEM
A system effective to communicate a message between two devices. A first device may include a plaintext to monoid element module effective to receive a plaintext message and apply a first function to the plaintext message to produce a first monoid element. A monoid element evaluator module may be effective to receive and insert submonoid generators into a monoid expression to produce a second monoid element in response. An encryption device module may be effective to apply a second function to the first monoid element, the second monoid element, the monoid expression, and a third monoid element to produce an encrypted plaintext message. Decryption may be performed on the encrypted plaintext message knowing the private key which includes the first function, the second function, the third monoid element and the submonoid generators list.
Latest SECURERF CORPORATION Patents:
In a symmetric or private key encryption communication system, two devices in possession of a common secret or private key can perform both encryption and decryption using the secret key. A plaintext message may be encrypted using the secret key to produce encrypted plaintext or a cyphertext. The cyphertext may be decrypted using the secret key to re-produce the plaintext. Examples of such protocols date back to early history, with the classic Caesar cipher being an early instance of a secret key being used to secure communications. Symmetric encryption protocols typically take one of two forms. The stream cipher is a protocol where individual bits are encrypted one at a time. The Caesar cipher, and German Enigma machine are both instances of such protocols. A block cipher is a protocol where the data to be encrypted is first broken into a union of blocks of a fixed size, and then each of said blocks is encrypted by the protocol.
SUMMARY OF THE INVENTIONOne embodiment of the invention is a device effective to communicate a message. The device may include a memory, wherein the memory is effective to include a first function, a list of submonoid generators, a second function, and a first monoid element. The device may further include a first module in communication with the memory, the first module effective to receive a message and apply the first function to the message to produce a second monoid element. The device may further include a second module in communication with the memory, the second module effective to receive and insert the submonoid generators into at least one monoid expression to produce a third monoid element. The device may further include a third module in communication with the memory, in communication with the first module, and in communication with the second module, the third module effective to apply the second function to the first monoid element, the second monoid element, the monoid expression, and the third monoid element to produce an encrypted message.
Another embodiment of the invention is a device effective to decrypt an encrypted message. The device may include a memory, wherein the memory is effective to include a first function, a list of submonoid generators, a second function, and a first monoid element. The device may further include a first module in communication with the memory, the first module effective to receive a monoid expression in the encrypted message, the first module effective to insert the submonoid generators into the monoid expression to produce a second monoid element. The device may further include a second module in communication with the memory and the first module. The second module may be effective to receive a third monoid element in the encrypted message, receive the second function, and receive the first monoid element. The second module may be further effective to receive the second monoid element, and apply the second function to the third monoid element, to the inverse of the second monoid element, and to the inverse of the first monoid element to produce a fourth monoid element. The device may further include a third module in communication with the memory and the second module, the third module effective to apply the first function to the fourth monoid element to produce the message.
Another embodiment of the invention is a system effective to communicate a message. The system may comprise a first device in communication with a second device over a network. The first device may include a first memory. the first memory may be effective to include a first function, a list of submonoid generators, a second function, and a first monoid element. The first device may include a first module in communication with the first memory, the first module effective to receive a message and apply the first function to the message to produce a second monoid element. The first device may include a second module in communication with the memory. The second module may be effective to receive and insert the submonoid generators into at least one monoid expression to produce a third monoid element. The first device may include a third module in communication with the memory, in communication with the first module, and in communication with the second module. The third module may be effective to apply the second function to the first monoid element, the second monoid element, the monoid expression, and the third monoid element to produce an encrypted message including a fourth monoid element and the monoid expression. The second device may include a second memory, wherein the second memory is effective to include the first function, the list of submonoid generators, the second function, and the first monoid element. The second device may include a fourth module in communication with the second memory. The fourth module may be effective to receive the monoid expression in the encrypted message, the fourth module effective to insert the submonoid generators into the monoid expression to re-produce the third monoid element. The second device may include a fifth module in communication with the second memory and the fourth module. The fifth module may be effective to receive the fourth monoid element in the encrypted message, receive the second function, receive the first monoid element, and receive the third monoid element. The fifth module may further be effective to apply the second function to the fourth monoid element, the inverse of the first monoid element and the inverse of the third monoid element to produce the second monoid element. The second device may include a sixth module in communication with the second memory and the fifth module, the sixth module effective to apply the first function to the second monoid element to re-produce the message.
The foregoing and other features of this disclosure will become more fully apparent from the following description and appended claims taken in conjunction with the accompanying drawings. Understanding that these drawings depict only some embodiments in accordance with the disclosure and are therefore not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail by reference to the accompanying drawings in which:
In the following detailed description, reference is made to the accompanying drawings which form a part thereof. In the drawings, similar symbols typically identify similar components unless context indicates otherwise. The illustrative embodiments described in the detailed description, drawings and claims are not meant to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the aspects of the present disclosure as generally described herein and as illustrated in the accompanying figures can be arranged, substituted, combined, separated and/or designed in a wide variety of different configurations all of which are explicitly contemplated herein.
Referring to
First device 106 may be operated by a first user 102 and second device 112 may be operated by a second user 116. First device 106 may include an encryption module 118 and a decryption module 120. Similarly, second device 112 may include an encryption module 122 and a decryption module 124. Encryption module 118 may be configured to perform the same functions and operations as encryption module 122. Decryption module 120 may be configured to perform the same functions and operations as decryption module 124.
First device 106 may receive plaintext 104, such as from user 102, and encrypt plaintext 104 using encryption module 118 and a private key to produce encrypted plaintext 108. First device 106 may send encrypted plaintext 108 over network 110 to second device 122. Second device 122 may receive encrypted plaintext and decrypt encrypted plaintext 108 using the decryption module 124 and the private key to produce decrypted plaintext 114.
Encryption modules 118 and 122 may include an ordered pair of functions T=(T0, T1) 126, a pseudorandom number generator (PRNG) 128, a secret submonoid generators list w1, w2, . . . ws 130, a plaintext to monoid element module 134, and/or a random monoid expression generator module. The ordered pair of functions T, may include a first function T0 effective to map text to a monoid element and second function T1 which may be effective to map a monoid element to text. Encryption modules 118 and 122 may further include a function 136, an encryption device module 138, a monoid element evaluator module 140 and/or a secret fixed monoid element β0 142. At least some of these modules may be in communication with a memory 144 and/or a processor 146. For example, data elements of the private key such as the ordered pair of functions T=(T0, T1) 126, secret submonoid generators list w1, w2, . . . ws 130, function 136, and secret fixed monoid element β0 142 may be stored in memory 144. Processor 146 could have a relatively small processing power such as with a 5 MHz clock cycle. Memory 144 could have a relatively small size and have, for example, 1 kb of memory. Modules could be implemented as software such as with a processor and/or in hardware or firmware.
Plaintext 104 could be any data desired to be encrypted. For example, plaintext 104 may be a block of data m. A relatively large block of data may be broken into smaller blocks of data m to be encrypted. Function T0 126 may be effective to map letters in plaintext (m) 104 into monoid elements. Monoid elements may be, for example, matrices with entries in a finite field. Plaintext to monoid element module 134 may receive plaintext 104 and ordered pair of functions T 126, and apply function T0 126 to plaintext (m) 104 to produce monoid element T0(m). Monoid element T0(m) is forwarded to encryption device module 138. The ordered pair of functions T=(T0, T1) 126 may be part of the private key used to encrypt and decrypt plaintext 104 as illustrated by the gray shading.
Pseudorandom number generator 128 may generate and forward a random integer number R to random monoid expression generator module 132. Random monoid expression generator module 132 may be in communication with memory 144. Memory 144 may include one or more monoid expressions. Random number R may be used by random monoid expression generator module 132 to select a random monoid expression BR with s variables. Random monoid expression BR is forwarded to encryption device module 138 and to monoid element evaluator module 140.
Secret submonoid generators list 130 may be stored in memory 144 and includes submonoid generators w1, w2, . . . ws. Submonoid generators w1, w2, . . . ws are also part of the private key as illustrated by the gray shading. Monoid element evaluator module 140 receives random monoid expression BR and submonoid generators w1, w2, . . . ws. Monoid element evaluator module 140 inserts submonoid generators w1, w2, . . . ws into monoid expression BR to produce monoid element βR. Monoid element βR is forwarded to encryption device module 138. Secret fixed monoid element β0 142 is also sent to encryption device module 138 and is part of the private key, as illustrated by the gray shading.
Encryption device module 138 may receive function 136, monoid element T0(m), monoid expression BR, monoid element βR, and monoid element β0. Encryption device module 138 may apply function 136 to monoid element T0(m), monoid expression BR, monoid element βR, and monoid element β0 to produce encrypted plaintext 148. Encrypted plaintext 148 may include an ordered pair with a first entry that is a monoid element and a second entry that is the selected monoid expression: {(T0(m), βR·β0), BR}.
Decryption modules 120 and 124 may include function 136, secret submonoid generators list w1, w2, . . . ws 130, a decryption device module 162, a monoid element evaluator module 160, secret fixed monoid element β0 142, a monoid element to plaintext module 164, and/or ordered pair of functions T=(T0, T1) 126. At least some of these modules may be in communication with a memory 166 and/or a processor 168. For example, data elements of the private key such as ordered pair of functions T=(T0, T1) 126, secret submonoid generators list w1, w2, . . . ws 130, one way function 136, and secret fixed monoid element β0 142 may be stored in memory 166. Processor 168 could have relatively small processing power such as with a 5 MHz clock cycle. Memory 166 could be relatively small in size and have, for example, 1 kb of memory. As both encryption modules 118, 122 and decryption modules 120, 124 may be in the same device, common modules, processing and data may be shared among these modules. For example, encryption module 118 and decryption module 120 may share the same memory, processor or monoid element evaluator module.
As shown, decryption module 124 may receive encrypted plaintext 148 and forward the monoid element (T0(m), βR·β0) of encrypted plaintext 148 to decryption device module 162. Function 136 is forwarded to decryption device module 162. Monoid expression BR, the second element of encrypted plaintext 148, may be extracted from encrypted plaintext 148 and forwarded to monoid element evaluator module 160. Monoid element evaluator module 160 may also receive submonoid generators w1, w2, . . . ws of secret submonoid generators list 130. Monoid element evaluator module 160 may re-produce monoid element βR by inserting submonoid generators list w1, w2, . . . ws 130 into monoid expression BR. Monoid element evaluator module 160 may forward monoid expression βR to decryption device module 162.
Decryption device module 162 may receive secret fixed monoid element β0, monoid element βR, function 136, and encrypted plaintext 148. Decryption device module 162 may apply function 136 to the inverse of secret fixed monoid element β0, the inverse of monoid element βR, and the first element of encrypted plaintext 148 to re-produce monoid element T0(m) as shown below.
(T0(m),βR·β0)·β0−1·βR−1=
(T0(m),βR·β0·β0−1·βR−1)=
(T0(m),1M)=T0(m).
Decryption device module 162 may forward monoid element T0(m) to monoid element to plaintext module 164. Monoid element to plaintext module 164 may apply function T1 126 to monoid element T0(m) to re-produce plaintext m 104.
Function may be a one-way function that is computable but difficult to reverse. In an example, an instance of a one-way function based symmetric encryption protocol utilizes an Algebraic Eraser. An Algebraic Eraser may include a specified 6-tuple (M×S, N, Π, E, A, B) where
M and N are monoids,
S is a group that acts on M (on the left),
MS denotes the semi-direct product,
A and B denote submonoids of MS, and
Π denotes a monoid homomorphism from M to N. The E-function, also called E-multiplication, is defined by
E:(N×S)×(MS)→(N×S)
E((n,s),(m1,s1))=(nΠ(sm1),s s1).
It is observed that the E-function satisfies the following identity:
E((n,s),(m1,s1)·(m2,s2)))=E(E((n,s),(m1,s1)),(m2,s2)).
Function may be an Algebraic Eraser (MS, N, Π, E, A, B). Letting M=MS, N=NS, function is defined as follows: given (n0, s0)∈NS and (m, s1)∈MS let N×M→N denote the function:
((n0,s0)(m,s1))=E((n0,s0),(m,s1))=((n0Π(s
The above E-function identity enables the following definition of a right action: given an arbitrary element (n, s)∈N, and (m, s1)∈M, define the right action of (m, s1) on n=(n0, s0) by
((n0,s0)·(m1,s1))=E((n0,s0),(m,s1))=((n0Π(s
The identities may be:
(n,g1g2)=(n,g1)·g2,
and
(n,1M)=n
for all n∈N, g1, g2∈M. Said identities are seen to be valid: for all gi=(mi,si), i=1, 2, and n=(n0, s0),
Furthermore, letting 1M, 1S, denote the identity elements of M, S, respectively,
(n,1M)=E((n0,s0),(1M,1S))=nΠ(1M),s0·1S)=(n,s0),
since s0 acting on the Π(1M), results in 1M, Π(1M)=1M, and s0·1S=s0. This demonstrates that this function may be used to produce a symmetric encryption protocol as described herein.
Another instance of a function that may be used is a function where monoids M and N are chosen to be a group G. Defining relators of G may allow for an effective rewriting or cloaking of group elements, and a conjugacy equation in G may be relatively difficult to solve. This insures that the function : G×G→G defined by the equation,
(x,g)=g−1×g=(g−1×g),
where x, g∈G, is a one-way function. In this setting it may be desirable to rewrite or cloak the output of the encryption mechanism. Let G act on itself by conjugation: if g, g1∈G, define
g·g1=g1−1g g1.
(x,g1g2)=(g1)·g2, is easily verified:
This demonstrates that the function can be in the symmetric encryption protocol described herein.
Among other benefits, using a system in accordance with this disclosure may produce a secure communication system with a relatively simple processor and a small memory. Environments with relatively simple devices can be provided with secure communication capability. Messages can be encrypted and decrypted relatively quickly.
Referring to
As shown, at step S2, a plaintext to monoid element module may receive a plaintext message and a first function. At step S4, the plaintext to monoid element module may apply the first function to the plaintext message to produce a monoid element. At step S6, a random monoid expression generator may receive a random number and generate a monoid expression in response.
At step S8, a monoid element evaluator module may receive submonoid generators and the monoid expression. At step S10, the monoid element evaluator module may insert the submonoid generators into the monoid expression and produce a second monoid element in response. At step S12, an encryption device module may receive a second function, the first monoid element, the second monoid element, the monoid expression, and a third monoid element. At step S14, the encryption device module may apply the second function to the first monoid element, the second monoid element, the monoid expression, and the third monoid element to produce an encrypted plaintext message.
Referring to
As shown, at step S20, a monoid element evaluator module may receive a monoid expression in an encrypted plaintext message. At step S22, the monoid element evaluator module may insert submonoid generators into the monoid expression to produce a first monoid element. At step S24, a decryption device module may receive a second monoid element in the encrypted plaintext message, a second function, the first monoid element, and a third monoid element. At step S26, the decryption device module may apply a first function to the first monoid element, the second monoid element and the third monoid element to produce a fourth monoid element. At step S28, a monoid element to plaintext module may receive the fourth monoid element and a second function. At step S30, the monoid element to plaintext module may apply the second function to the fourth monoid element to produce a plaintext message.
While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.
Claims
1. A device effective to communicate a message, the device comprising:
- a memory, wherein the memory is effective to include a first function, a list of submonoid generators, a second function, and a first monoid element,
- a first module in communication with the memory, the first module effective to receive a message and apply the first function to the message to produce a second monoid element;
- a second module in communication with the memory, the second module effective to receive and insert the submonoid generators into at least one monoid expression to produce a third monoid element; and
- a third module in communication with the memory, in communication with the first module, and in communication with the second module, the third module effective to apply the second function to the first monoid element, the second monoid element, the monoid expression, and the third monoid element to produce an encrypted message.
2. The device as recited in claim 1, further comprising:
- a random number generator effective to produce a random number; and
- a fourth module in communication with the random number generator and the memory, the fourth module effective to receive the random number and generate the monoid expression in response.
3. The device as recited in claim 1, wherein the encrypted message includes an ordered pair with a first entry that is a fourth monoid element and a second entry that is the monoid expression.
4. The device as recited in claim 1, wherein the second function is a one way function.
5. The device as recited in claim 1, wherein the second function is a 6-tuple (MS, N, Π, E, A, B) where
- M and N are monoids,
- S is a group that acts on M,
- MS denotes the semi-direct product,
- A and B denote submonoids of MS,
- Π denotes a monoid homomorphism from M to N,
- E is defined by E:(N×S)×(MS)→(N×S) E((n,s),(m1,s1))=(nΠ(sm1),s s1),
- M=MS, N=NS,
- and the function is defined as: given (n0, s0)∈NS and (m, s1)∈MS let: N×M→N denote the function: ((n0,s0)(m,s1))=E((n0,s0),(m,s1))=((n0Π(s0m),s0 s1).
6. The device as recited in claim 1, wherein the second function is selected such that monoids M and N are chosen to be a group G and where x, g∈G.
- (x,g)=g1×g=c(g1×g),
7. The device as recited in claim 1, wherein:
- the message is a first message;
- the monoid expression is a first monoid expression;
- the encrypted message is a first encrypted plaintext message;
- the device is effective to receive a second encrypted message including a fourth monoid element and a second monoid expression, and
- the second module is effective to receive the second monoid expression and insert the submonoid generators into the second monoid expression to produce a fifth monoid element;
- and the device further comprises:
- a fourth module in communication with the memory and the second module, the fourth module effective to receive the fourth monoid element in the second encrypted plaintext message, receive the second function, receive the first monoid element, receive the fifth monoid element, and apply the second function to the fourth monoid element, the inverse of the fifth monoid element and the inverse of the first monoid element to produce a sixth monoid element;
- a fifth module in communication with the memory and the fourth module, the fifth module effective to receive the sixth monoid element and the first function, and apply the first function to the sixth monoid element to produce a second message.
8. The device as recited in claim 1, wherein:
- the message is a first message
- and the device further comprises:
- a random number generator effective to produce a first random number; and
- a fourth module in communication with the random number generator and the memory, the fourth module effective to receive the first random number and generate the monoid expression in response, where the monoid expression is a first monoid expression; and wherein
- the first module is effective to receive a second message and apply the first function to the second message to produce a fourth monoid element;
- the random number generator is further effective to produce a second random number;
- the fourth module is further effective to receive the second random number and generate a second monoid expression in response;
- the second module is effective to receive and insert the submonoid generators into the second monoid expression to produce a fifth monoid element; and
- the third module is effective to apply the second function to the first monoid element, the fourth monoid element, the second monoid expression, and the fifth monoid element to produce another encrypted message.
9. The device as recited in claim 1, further comprising:
- a random number generator effective to produce a random number; and
- a fourth module in communication with the random number generator and the memory, the fourth module effective to receive the random number and generate the monoid expression in response; wherein
- the encrypted message includes an ordered pair with a first entry that is a fourth monoid element and a second entry that is the monoid expression;
- the first function is a mapping function; and
- the second function is a one way function.
10. A device effective to decrypt an encrypted message, the device comprising:
- a memory, wherein the memory is effective to include a first function, a list of submonoid generators, a second function, and a first monoid element,
- a first module in communication with the memory, the first module effective to receive a monoid expression in the encrypted message, the first module effective to insert the submonoid generators into the monoid expression to produce a second monoid element;
- a second module in communication with the memory and the first module, the second module effective to receive a third monoid element in the encrypted message, receive the second function, receive the first monoid element, receive the second monoid element, and apply the second function to the third monoid element, to the inverse of the second monoid element, and to the inverse of the first monoid element to produce a fourth monoid element;
- a third module in communication with the memory and the second module, the third module effective to apply the first function to the fourth monoid element to produce the message.
11. The device as recited in claim 10, wherein the second function is a one way function.
12. The device as recited in claim 10, wherein the second function is a 6-tuple (MS, N, Π, E, A, B) where
- M and N are monoids,
- S is a group that acts on M,
- MS denotes the semi-direct product,
- A and B denote submonoids of MS,
- Π denotes a monoid homomorphism from M to N,
- E is defined by E:(N×S)×(MS)→(N×S) E((n,s),(m1,s1))=(nΠ(sm1),s s1),
- M=MS, N=NS,
- and the function is defined as: given (n0, s0)∈NS and (m, s1)∈MS let: N×M→N denote the function: ((n0,s0),(m,s1))=E((n0,s0),(m,s1))=((n0Π(s0m),s0 s1).
13. The device as recited in claim 10, wherein the second function is selected such that monoids M and N are chosen to be a group G and where x, g∈G.
- (x,g)=g−1×g=(g−1×g),
14. A system effective to communicate a message, the system comprising:
- a first device in communication with a second device over a network;
- wherein the first device includes a first memory, wherein the first memory is effective to include a first function, a list of submonoid generators, a second function, and a first monoid element,
- a first module in communication with the first memory, the first module effective to receive a message and apply the first function to the message to produce a second monoid element;
- a second module in communication with the memory, the second module effective to receive and insert the submonoid generators into at least one monoid expression to produce a third monoid element; and
- a third module in communication with the memory, in communication with the first module, and in communication with the second module, the third module effective to apply the second function to the first monoid element, the second monoid element, the monoid expression, and the third monoid element to produce an encrypted message including a fourth monoid element and the monoid expression;
- wherein the second device includes a second memory, wherein the second memory is effective to include the first function, the list of submonoid generators, the second function, and the first monoid element, a fourth module in communication with the second memory, the fourth module effective to receive the monoid expression in the encrypted message, the fourth module effective to insert the submonoid generators into the monoid expression to re-produce the third monoid element; a fifth module in communication with the second memory and the fourth module, the fifth module effective to receive the fourth monoid element in the encrypted message, receive the second function, receive the first monoid element, receive the third monoid element, and apply the second function to the fourth monoid element, the inverse of the first monoid element and the inverse of the third monoid element to produce the second monoid element; and a sixth module in communication with the second memory and the fifth module, the sixth module effective to apply the first function to the second monoid element to re-produce the message.
15. The system as recited in claim 14, wherein the network is a near field communications network
16. The system as recited in claim 14, wherein:
- the network is an RF-ID network,
- the first device is one of a tag or a reader; and
- the second device is the other of the tag or the reader.
17. The system as recited in claim 14, wherein the first device further comprises:
- a random number generator effective to produce a random number; and
- a seventh module in communication with the random number generator, the seventh module effective to receive the random number and generate the monoid expression in response.
18. The system as recited in claim 14, wherein the second function is a one way function.
19. The system as recited in claim 14, wherein the second function is a 6-tuple (MS, N, Π, E, A, B) where
- M and N are monoids,
- S is a group that acts on M,
- MS denotes the semi-direct product,
- A and B denote submonoids of MS,
- Π denotes a monoid homomorphism from M to N,
- E is defined by E:(N×S)×(MS)→(N×S) E((n,s),(m1,s1))=(nΠ(sm1),s s1),
- M=MS, N=NS,
- and the function is defined as: given (n0, s0)∈NS and (m, s1)∈MS let: N×M→N denote the function: ((n0,s0),(m,s1))=E((n0,s0),(m,s1))=((n0Π(s0m),s0 s1).
20. The system as recited in claim 14, wherein the first device further comprises:
- a random number generator effective to produce a random number; and
- a seventh module in communication with the random number generator, the seventh module effective to receive the random number and generate the monoid expression in response; wherein
- the first function is a mapping function; and
- the second function is a one way function.
Type: Application
Filed: Dec 21, 2017
Publication Date: May 17, 2018
Applicant: SECURERF CORPORATION (SHELTON, CT)
Inventors: Iris Anshel (Tenafly, NJ), Dorian Goldfeld (Tenafly, NJ)
Application Number: 15/850,066