Not Applicable
Not Applicable
1. U.S. Pat. No. 4,405,829 September 1983, Rivest, Ronald L. et al, Cryptographic communications system and method
1. Field of the Invention
The present invention relates to a cryptographic communications system and method.
2. Description of the Related Art
Data privacy and security have been increasingly important in generation, exchange and storage of information. Data transmitted over communications channels are susceptible to interception, eavesdropping and modification. Computer networks and internet can be monitored, accessed without permission. Due to various reasons, data storage devices may be accessed undesirably. Therefore, a cryptographic communications system and method is undoubtedly required to protect information confidentiality.
There have been a plurality of encryption algorithms to protect information security. These encryption algorithms involve extensive arithmetic operations and bit/symbol substitution, therefore, require substantial computing power. Some sophisticated approaches even require dedicated hardware acceleration to achieve targeted performance. Fundamentally, the daunting computing cost is due to the fact that all current transformations and mathematical operations are performed at symbol/bit level to prevent bit/symbol level security breaches.
However, in a plurality of secure communications applications, symbol/bit level data security may not be required. For instance, in on-line software release, a binary executable is a bit sequence of 1s and 0s. Current encryption algorithms would encode the binary executable at bit level, which would be time consuming.
Nonetheless, encoding binary executables at bit sequence level can achieve data security at lower computational cost. For example, a 64-kilo-byte binary executable can be first partitioned into 64 1-kilo-byte bit sequences. Then these 64 1-kilo-byte bit sequences can be permutated to generate an encoded form of the binary executable ready for on-line software release.
In this example of encoding 64-kilo-byte binary executable at 1-kilo-byte bit sequence level, the permutation information can be defined as a secret key for this encryption. There are factorial 64! possible permutations, more complex than exponential complexity. Thus, without knowing the secret key, it is computationally infeasible to restore the order of the re-ordered 64 1-kilo-byte bit sequences and obtain the original binary executable using current computing technologies.
Furthermore, symbol sequence level permutation operates at symbol sequence level, therefore, may significantly improve encryption and decryption efficiency compared to symbol/bit level cryptographic manipulations.
Since symbol sequence level permutation encodes and decodes messages using the same secret key, it is a symmetric encryption approach.
Accordingly, it is an object of this invention to provide a system and method for implementing a secure communications system.
It is another object to provide a system and method for encoding and decoding data.
It is yet another object to provide a system and method for secure distributed data storage.
The present invention includes a communications channel, at least one terminal with an encoding device and at least one terminal with a decoding device. The encoding device transforms an applied message-to-be-transmitted M to a ciphertext C for transmission over the communications channel to the receiving terminal.
To clearly describe the symbol sequence level partition and permutation method, the symbol level permutation method is presented first. It is a special case of symbol sequence level permutation, where each of the symbol sequences comprises only one symbol.
Please note that the present invention included in this patent application specification is about symbol sequence level partition and permutation. The description of symbol level permutation only serves to delineate key concepts of symbol sequence level encryption.
The message M is an ordered symbol sequence of length k and can be represented as a k-tuple (mk, . . . , m2, m1), k<=kmax, where kmax is the maximum symbol length of messages specified by the communications system. Please note that elements within parenthesis are counted from right to left in this patent application specification for consistency.
The symbols in message M can be defined as the minimum units for encryption. For instance, in on-line software release, the bits in binary executables are the minimum units for manipulation. Therefore, symbols refer to bits in this example. In ASCII message communications the minimum manipulation units are ASCII characters. Thus, symbols refer to ASCII characters.
The position of each symbol in M can be defined as another k-tuple (k, k−1, . . . , 2, 1). This information is trivial because it is the obvious original position of each symbol in M. However, this position information will be changed in permutation and can be defined as a secret key for encryption:
For example, an ASCII message ABCDEFGHI can be represented as a 9-tuple (A, B, C, D, E, F, G, H, I). The length of this symbol sequence is 9.
The position of each symbol in M can be represented as a 9-tuple (9, 8, 7, 6, 5, 4, 3, 2, 1), which is obviously trivial.
If the length of M is bigger than kmax, then M can be transformed into blocks of length no bigger than kmax, which are separately encoded and transmitted over the channel. The encoded blocks are separately decoded on the receiving terminal and transformed back to M. If the length of M is shorter than a minimum length, symbol permutation of M may still leak confidential information of message M. In this case, M can be padded to a longer sequence. Therefore, symbol permutation will not leak confidential information. The padded symbols will be dropped after decryption. These two cases apply to symbol sequence level permutation as well.
To obtain ciphertext C, the encoder permutates all symbols in M according to predefined ordering information (pk, . . . , p2, p1), which is a permutation of (k, k−1, . . . , 1). pi is the position of symbol mi in ciphertext C, where 1<=i<=k. The k-tuple (pk, . . . , p2, p1) is defined as the secret encryption key. There are a plurality of approaches to reduce the size of the secret key shared by both the encoding device and the decoding device.
For example, the ASCII message ABCDEFGHI can be permutated to a ciphertext EHGBICDFA according to permutation ordering information (p9, . . . , p2, p1)=(1, 6, 4, 3, 9, 2, 7, 8, 5), which is a permutation of (9, 8, 7, 6, 5, 4, 3, 2, 1). The 4 in the 9-tuple (p0, . . . , p2, p1)=(1, 6, 4, 3, 9, 2, 7, 8, 5) means that the 7th symbol C in the message ABCDEFGHI is placed at the 4th position in the ciphertext EHGBICDFA. Apparently, the secret key for this encoding is information (p9, . . . , p2, p1)=(1, 6, 4, 3, 9, 2, 7, 8, 5).
Another form of symbol level permutation encryption is involved with the secret key. In this form, the secret key is always a permutation of (kmax, . . . , 2, 1) instead of a permutation of (k, k−1, . . . , 1). Accordingly, messages with length less than kmax have to be padded to have length of kmax.
For example, assuming kmax is 15, the ASCII message ABCDEFGHI is first padded to ABCDEFGHI+JKLMN. Then the padded message is permutated to J EHKGLBIMC+DNFA according to (p15, . . . , p2, p1)=(1, 9, 6, 4, 14, 2, 11, 13, 8, 5, 15, 12, 10, 7, 3). Actually, because the positioning information for the remaining 6 padded symbols in the ciphertext is not important, only the first 9 elements in this 15-tuple are needed for decryption. Therefore, the encryption key can be reduced to 9-tuple (p15, . . . , p8, p7)=(1, 9, 6, 4, 14, 2, 11, 13, 8).
Unlike symbol level permutation, symbol sequence level permutation is performed at symbol sequence level. The encoding device first partitions M into n symbol sequences as (Mn, . . . , M2, M1). Each of Mn, . . . , M2 and M1 is a symbol sequence within M and can be represented as:
For example, the ASCII message ABCDEFGHI can be partitioned into 3 symbol sequences AB CDE FGHI according to partition information 3-tuple (s3, s2, s1)=(2, 3, 4). The 3 in this 3-tuple means that the 2nd symbol sequence of this partition has 3 symbols, i.e. CDE.
Then (Mn, . . . , M2, M1) is permutated to (M1n, . . . , M12, M11) according to (pn, . . . , p2, p1), which is a permutation of (n, n−1, . . . , 2, 1). pi is the sequence position of Mi within the ciphertext (M1n, . . . , M12, M11), 1<=i<=n. The 1 in the subscript of M1i denotes the first level permutation in case of recursive partition and permutation, which will be described in the following. The partition information (sn, . . . , s2, s1) and permutation information (pn, . . . , p2, p1) are defined as the secret encryption key.
In the previous ASCII message ABCDEFGHI, the message has been partitioned into (M3, M2, M1)=AB CDE FGHI according to partition information 3-tuple (s3, s2, s1)=(2, 3, 4). Then it is permutated to (M13, M12, M11)=CDE FGHI AB according to permutation information (p3, p2, p1)=(1, 3, 2). The 3 in (p3, p2, p1)=(1, 3, 2) means that the second symbol sequence CDE is placed as the third symbol sequence in the permutation. Please keep in mind that elements in parenthesis are counted from right to left in this application specification.
However, if necessary, the partition and permutation can be repeated recursively and sequentially on the resultant symbol sequences in a manner not necessarily same as previous partition and permutation until stopped by the encoding device. For instance, M1i is one of M1n, . . . , M12 and M11, wherein 1<=i<=n, and can be further partitioned into n′ symbol sequences as (M1in′, . . . , M1i2, M1i1) according to (s1in′, . . . , s1i2, s1i1). s1ij is the number of symbols in M1ij, 1<=j<=n′. The 1i in the subscript means a partition on sequence M1i. Then (M1in′, . . . , M1i2, M1i1) is permutated according to (p1in′, . . . , p1i2, p1i1), which is a permutation of (n′, n′−1, . . . , 2, 1). (p1in′, . . . , p1i2, p1i1) and (s1in′, . . . , s1i2, s1i1) may not be necessarily distinct from previous partitions and permutations respectively. The procedure of partition and permutation can be repeated recursively and sequentially on the resultant symbol sequences until stopped by the system.
For the recursive symbol sequence level permutation, the encryption key corresponds to information for all levels of partitions and permutations.
In the ASCII message ABCDEFGHI example, the message is already partitioned and permutated into symbol sequences (M13, M12, M11)=CDE FGHI AB. M12=FGHI can be further partitioned into (M122, M121)=F GHI according to (s122, s121)=(1, 3). The 3 in (1, 3) means that the first symbol sequence has 3 symbols, i, e, GHI. (M122, M121)=F GHI can then be permutated to GHI F according to permutation information (p122, p121)=(1, 2). The 2 in (p122, p121)=(1, 2) means that the first symbol sequence M121 is placed as the second sequence in GHI F. As a result, the ciphertext is CDE GHI F AB.
In this recursive symbol sequence level permutation of ABCDEFGHI, the encryption key corresponds to (s3, s2, s1)=(2, 3, 4) and (p3, p2, p1)=(1, 3, 2) for partition and permutation on M, (s122, s121)=(1, 3) and (p122, p121)=(1, 2) for partition and permutation on M12.
Assuming M is partitioned into n symbol sequences, the number of possible combinations is factorial n!, which is larger than any exponential function in n. If the resultant symbol sequences are further partitioned and permutated, the complexity of encryption is further confounded. Therefore, assuming the resultant symbol sequences do not leak message confidential information, without the knowledge of the secret key, it is computationally infeasible to decode the ciphertext with current computing technology. As a result, symbol sequence level recursive partition and permutation provides sufficient information security for applications with no symbol level security requirement.
The partition and permutation information is used as encryption and decryption key. In some applications, a shared secret encryption key is established between the transmitter and the receiver per session basis. In this case, a distinct key is required for a separate communications session. This distinct encryption key can be encoded by other encryption techniques such as public key encryption techniques, thereafter being transmitted over the communications channel to the intended receiver. For this reason, it is important to shorten or reduce the size of the secret key.
There are a plurality of methods to shorten or reduce the size of the shared secret encryption key. For instance, same partition and permutation schemes can be applied, thus no need to transmit multiple partition and permutation information as the secret encryption key.
Alternatively, some conventional data compression techniques or hashing techniques can be applied on the secret encryption key to reduce the size of the key. When received by the intended receiver, the size-shortened key is converted back to the original secret key, which is applied on the decoding device.
Basic Configuration
A plaintext message MA, represented as (mk, . . . , m2, m1), can be partitioned into (MAn, . . . , MA2, MA1), k<=kmax, where kmax is the maximum message length allowed by terminal A. If the length of M is bigger than kmax, then M is transformed into blocks of length no bigger than kmax. The blocks are encoded and transmitted separately. On the receiving terminal, the blocks are decoded separately and transformed back to original message M. If the message length is shorter than the minimum symbol length, then M is padded before encryption to avoid potential information disclosure.
Symbol sequence MAi, one of MAn, . . . , MA2 and MA1, is a symbol sequence within MA and its length is sAi, where 1<=i<=n. When the length of each MAi is one, this symbol sequence level permutation scheme is reduced to a symbol level permutation, therefore, symbol level permutation is a special case of symbol sequence level permutation.
In the operation of encryption, (MAn, . . . , MA2, MA1) is permutated to (MA1n, . . . , MA12, MA11) according to (pAn, . . . , pA2, pA1), which is a permutation of (n, n−1, . . . , 2, 1). pAi is where MAi is placed within (MA1n, . . . , MA12, MA11). This partition and permutation can be characterized by (sAn, . . . , sA2, sA1) and (pAn, . . . , pA2, pA1) respectively. Each MA1i can be further partitioned and permutated not necessarily in the same way as previously, wherein 1<=i<=n. This process can be repeated recursively and sequentially until stopped by the encoder. The final sequence of symbol sequences is defined as a ciphertext CA. The information including all levels of partition and permutation schemes characterized by (sAn, . . . , sA2, sA1) and (pAn, . . . , pA2, pA1) respectively is defined as the secret encryption key, keyA. When necessary to reduce the size of the encryption key, same partition and permutation schemes can be applied. Moreover, conventional data compression and hashing techniques can be applied on the encryption key as well.
Please note that, to avoid information disclosure, it is required that the final resultant symbol sequences should not leak any confidential information. Otherwise, the process of recursive partition and permutation should be continued on those leaky symbol sequences until the information security is guaranteed.
In accordance with the present invention, an exemplary form for encoding device 10A, 10B and decoding device 12A, 12B is shown in
The device further includes a finite state machine 20 and an address register 22. The finite state machine 20 obtains the encryption key from key register 24 and generates a symbol address pi, which is written into the address register 22. A message symbol mi, which is an output from message buffer 26 in an order specified by the system, is written into ciphertext memory buffer 28 at the address specified by pi. This is how the operation of permutation is implemented. It is required that the output of symbol address pi from address register 22 and the output of symbol mi from the message buffer 26 should be synchronized.
The device in
Another embodiment of the encoding and decoding devices consistent with the present invention is shown in
The embodiments in
Other Configurations
In the recursive symbol sequence level permutation encryption, every symbol sequence after previous partition and permutation can be partitioned and permutated distinctly and independently. Therefore, it is possible to process each of the symbol sequences in parallel. As embodied in
As the decoding of Ci is essentially the same as encoding of M1, where 1<=i<=n, it is possible to use a single decoder 12B, as embodied in
In addition, the finite state machine 20, as embodied in
The communications channel in both
There are other forms of encoder/decoder configurations consistent with the present invention in addition to the embodiments in
Secure Distributed Storage
The present invention can also be applied to secure distributed data storage as embodiments in
The embodiment in
Conclusion
The present invention describes a recursive symbol sequence level partition and permutation method for cryptographic communications. It is required that the final symbol sequences in the ciphertext should not disclose any information confidentiality. Otherwise, the recursive partition and permutation process should be continued until information security is satisfied. The symbol level permutation method is a special case for symbol sequence level permutation. The present invention can also be applied to secure distributed data storage.
The following variations on the use of the encoding/decoding devices are to be considered as obvious to one skilled in the art and therefore within the intended scope of the attached claims:
The present invention has been disclosed and described with respect to the herein disclosed embodiments. However, these embodiments should be considered in all respects as illustrative and not restrictive. Other forms of the present invention could be made within the spirit and scope of the invention.
This application claims the benefit of provisional patent application No. 61/065,591 filed on date Feb. 13, 2008, “A System and Method For Cryptographic Communications Using Permutation”.
Number | Date | Country | |
---|---|---|---|
61065591 | Feb 2008 | US |