Abstract:
The present invention discloses a system and method for cryptographic communications. It may significantly improve operation efficiency of existing symbol level encryption algorithms by permutating at symbol sequence level with significantly less computational requirements. The system includes a communications channel, at least one terminal with encoding device and at least one terminal with decoding device. A message comprising ordered symbols can be partitioned into ordered symbol sequences. Then the order of symbol sequences is permutated by the encoding device. The partition and permutation can be repeated recursively on the resultant symbol sequences to obtain the ciphertext. All the partition and permutating information are characterized by a secret key, used for decoding on the receiving terminal. It is required that the final resultant symbol sequences in the ciphertext should not disclose information confidentiality. The present invention can be also applied to secure distributed data storage.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    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”. 
     
    
     FEDERALLY SPONSORED RESEARCH 
       [0002]    Not Applicable 
       SEQUENCE LISTING OR PROGRAM 
       [0003]    Not Applicable 
       US PATENT REFERENCES  
       [0004]    1. U.S. Pat. No. 4,405,829 September 1983, Rivest, Ronald L. et al, Cryptographic communications system and method 
       BACKGROUND OF THE INVENTION 
       [0005]    1. Field of the Invention 
         [0006]    The present invention relates to a cryptographic communications system and method. 
         [0007]    2. Description of the Related Art 
         [0008]    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. 
         [0009]    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. 
         [0010]    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. 
         [0011]    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. 
         [0012]    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. 
         [0013]    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. 
         [0014]    Since symbol sequence level permutation encodes and decodes messages using the same secret key, it is a symmetric encryption approach. 
         [0015]    Accordingly, it is an object of this invention to provide a system and method for implementing a secure communications system. 
         [0016]    It is another object to provide a system and method for encoding and decoding data. 
         [0017]    It is yet another object to provide a system and method for secure distributed data storage. 
       BRIEF SUMMARY OF THE INVENTION 
       [0018]    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. 
         [0019]    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. 
         [0020]    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. 
         [0021]    The message M is an ordered symbol sequence of length k and can be represented as a k-tuple (m k , . . . , m 2 , m 1 ), k&lt;=k max , where k max  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. 
         [0022]    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. 
         [0023]    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: 
         [0024]    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. 
         [0025]    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. 
         [0026]    If the length of M is bigger than k max , then M can be transformed into blocks of length no bigger than k max , 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. 
         [0027]    To obtain ciphertext C, the encoder permutates all symbols in M according to predefined ordering information (p k , . . . , p 2 , p 1 ), which is a permutation of (k, k−1, . . . , 1). p i  is the position of symbol m i  in ciphertext C, where 1&lt;=i&lt;=k. The k-tuple (p k , . . . , p 2 , p 1 ) 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. 
         [0028]    For example, the ASCII message ABCDEFGHI can be permutated to a ciphertext EHGBICDFA according to permutation ordering information (p 9 , . . . , p 2 , p 1 )=(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 (p 0 , . . . , p 2 , p 1 )=(1, 6, 4, 3, 9, 2, 7, 8, 5) means that the 7 th  symbol C in the message ABCDEFGHI is placed at the 4 th  position in the ciphertext EHGBICDFA. Apparently, the secret key for this encoding is information (p 9 , . . . , p 2 , p 1 )=(1, 6, 4, 3, 9, 2, 7, 8, 5). 
         [0029]    Another form of symbol level permutation encryption is involved with the secret key. In this form, the secret key is always a permutation of (k max , . . . , 2, 1) instead of a permutation of (k, k−1, . . . , 1). Accordingly, messages with length less than k max  have to be padded to have length of k max . 
         [0030]    For example, assuming k max  is 15, the ASCII message ABCDEFGHI is first padded to ABCDEFGHI+JKLMN. Then the padded message is permutated to J EHKGLBIMC+DNFA according to (p 15 , . . . , p 2 , p 1 )=(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 (p 15 , . . . , p 8 , p 7 )=(1, 9, 6, 4, 14, 2, 11, 13, 8). 
         [0031]    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 (M n , . . . , M 2 , M 1 ). Each of M n , . . . , M 2  and M 1  is a symbol sequence within M and can be represented as:
       (m j+si−1 , . . . , m j+1 , m j )
 
where m j  is the starting symbol for M i , 1&lt;=i&lt;=n. s i  is the length of M i , Thus, the partition can be characterized by (s n , . . . , s 2 , s 1 ).
       
 
         [0033]    For example, the ASCII message ABCDEFGHI can be partitioned into 3 symbol sequences AB CDE FGHI according to partition information 3-tuple (s 3 , s 2 , s 1 )=(2, 3, 4). The 3 in this 3-tuple means that the 2nd symbol sequence of this partition has 3 symbols, i.e. CDE. 
         [0034]    Then (M n , . . . , M 2 , M 1 ) is permutated to (M 1n , . . . , M 12 , M 11 ) according to (p n , . . . , p 2 , p 1 ), which is a permutation of (n, n−1, . . . , 2, 1). p i  is the sequence position of M i  within the ciphertext (M 1n , . . . , M 12 , M 11 ), 1&lt;=i&lt;=n. The 1 in the subscript of M 1i  denotes the first level permutation in case of recursive partition and permutation, which will be described in the following. The partition information (s n , . . . , s 2 , s 1 ) and permutation information (p n , . . . , p 2 , p 1 ) are defined as the secret encryption key. 
         [0035]    In the previous ASCII message ABCDEFGHI, the message has been partitioned into (M 3 , M 2 , M 1 )=AB CDE FGHI according to partition information 3-tuple (s 3 , s 2 , s 1 )=(2, 3, 4). Then it is permutated to (M 13 , M 12 , M 11 )=CDE FGHI AB according to permutation information (p 3 , p 2 , p 1 )=(1, 3, 2). The 3 in (p 3 , p 2 , p 1 )=(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. 
         [0036]    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, M 1i  is one of M 1n , . . . , M 12  and M 11 , wherein 1&lt;=i&lt;=n, and can be further partitioned into n′ symbol sequences as (M 1in ′, . . . , M 1i2 , M 1i1 ) according to (s 1in ′, . . . , s 1i2 , s 1i1 ). s 1ij  is the number of symbols in M 1ij , 1&lt;=j&lt;=n′. The 1i in the subscript means a partition on sequence M 1i . Then (M 1in′ , . . . , M 1i2 , M 1i1 ) is permutated according to (p 1in ′, . . . , p 1i2 , p 1i1 ), which is a permutation of (n′, n′−1, . . . , 2, 1). (p 1in ′, . . . , p 1i2 , p 1i1 ) and (s 1in′ , . . . , s 1i2 , s 1i1 ) 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. 
         [0037]    For the recursive symbol sequence level permutation, the encryption key corresponds to information for all levels of partitions and permutations. 
         [0038]    In the ASCII message ABCDEFGHI example, the message is already partitioned and permutated into symbol sequences (M 13 , M 12 , M 11 )=CDE FGHI AB. M 12 =FGHI can be further partitioned into (M 122 , M 121 )=F GHI according to (s 122 , s 121 )=(1, 3). The 3 in (1, 3) means that the first symbol sequence has 3 symbols, i, e, GHI. (M 122 , M 121 )=F GHI can then be permutated to GHI F according to permutation information (p 122 , p 121 )=(1, 2). The 2 in (p 122 , p 121 )=(1, 2) means that the first symbol sequence M 121  is placed as the second sequence in GHI F. As a result, the ciphertext is CDE GHI F AB. 
         [0039]    In this recursive symbol sequence level permutation of ABCDEFGHI, the encryption key corresponds to (s 3 , s 2 , s 1 )=(2, 3, 4) and (p 3 , p 2 , p 1 )=(1, 3, 2) for partition and permutation on M, (s 122 , s 121 )=(1, 3) and (p 122 , p 121 )=(1, 2) for partition and permutation on M 12 . 
         [0040]    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. 
         [0041]    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. 
         [0042]    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. 
         [0043]    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. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0044]      FIG. 1  shows a block diagram for a 2-way cryptographic communications system in accordance with the present invention. 
           [0045]      FIG. 2  shows a detailed block diagram for an encoding/decoding device in the system in  FIG. 1 . 
           [0046]      FIG. 3  shows another embodiment of detailed block diagram for an encoding/decoding device in the system in  FIG. 1 . 
           [0047]      FIG. 4  shows a block diagram of another embodiment for a cryptographic communications system in accordance with the present invention. 
           [0048]      FIG. 5  shows a block diagram of yet another embodiment for a cryptographic communications system in accordance with the present invention. 
           [0049]      FIG. 6  shows in block diagram how to encode data and distribute the encoded data to storage terminals in a secure distributed storage system in accordance with the present invention. 
           [0050]      FIG. 7  shows in block diagram how to collect distributed encoded data and restore the original data in a secure distributed storage system in accordance with the present invention. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0051]    Basic Configuration 
         [0052]      FIG. 1  shows an embodiment of the present invention in block diagram form. This system comprises a communications channel  14  and two terminals A and B. The communications channel  14  in the embodiment in  FIG. 1  is a two-way communications channel. Nonetheless, the communications channel consistent with the present invention may be one-way, 2-way or even multi-way in other embodiments. Each of terminals A and B includes encoding device  10 A and  10 B, respectively, and decoding device  12 A and  12 B, respectively. An encryption key key A  is applied on both encoding device  10 A, which transforms a message M A  to a ciphertext C A , and decoding device  12 B, which transforms the received ciphertext C A  back to M′ A . Similarly, an encryption key key B  is applied on both encoding device  10 B, which transforms a message M B  to a ciphertext C B , and decoding device  12 A, which transforms the received ciphertext C B  back to M′ B . In other embodiments of one-way communications from terminal A to terminal B, only encoding device  10 A and decoding device  12 B are required. 
         [0053]    A plaintext message M A , represented as (m k , . . . , m 2 , m 1 ), can be partitioned into (M An , . . . , M A2 , M A1 ), k&lt;=k max , where k max  is the maximum message length allowed by terminal A. If the length of M is bigger than k max , then M is transformed into blocks of length no bigger than k max . 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. 
         [0054]    Symbol sequence M Ai , one of M An , . . . , M A2  and M A1 , is a symbol sequence within M A  and its length is s Ai , where 1&lt;=i&lt;=n. When the length of each M Ai  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. 
         [0055]    In the operation of encryption, (M An , . . . , M A2 , M A1 ) is permutated to (M A1n , . . . , M A12 , M A11 ) according to (p An , . . . , p A2 , p A1 ), which is a permutation of (n, n−1, . . . , 2, 1). p Ai  is where M Ai  is placed within (M A1n , . . . , M A12 , M A11 ). This partition and permutation can be characterized by (s An , . . . , s A2 , s A1 ) and (p An , . . . , p A2 , p A1 ) respectively. Each M A1i  can be further partitioned and permutated not necessarily in the same way as previously, wherein 1&lt;=i&lt;=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 C A . The information including all levels of partition and permutation schemes characterized by (s An , . . . , s A2 , s A1 ) and (p An , . . . , p A2 , p A1 ) respectively is defined as the secret encryption key, key A . 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. 
         [0056]    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. 
         [0057]    In accordance with the present invention, an exemplary form for encoding device  10 A,  10 B and decoding device  12 A,  12 B is shown in  FIG. 2 . The device in  FIG. 2  includes an M memory buffer  26  for receiving an applied digital message-to-be-transferred, a key register  24  for receiving an applied digital encryption key and a memory buffer  28  for storing the encoded ciphertext C. The memory buffer  26  has K max  entries and each entry stores one symbol of the message-to-be-transferred in either the top-down order or the bottom-up order as specified by the system. The memory buffer  28  also has K max  entries with each entry storing one symbol of the encoded ciphertext C in an order as specified by the system. 
         [0058]    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 p i , which is written into the address register  22 . A message symbol m i , 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 p i . This is how the operation of permutation is implemented. It is required that the output of symbol address p i  from address register  22  and the output of symbol m i  from the message buffer  26  should be synchronized. 
         [0059]    The device in  FIG. 2  can operate in either encryption or decryption mode using the same encryption key. This is controlled by the finite state machine  20  when generating symbol address p i . If the encryption key is reduced by conventional compression or hashing techniques, the original encryption key can be recovered either before storing into the key register  24 , which is not depicted in  FIG. 2 , or inside the finite state machine  20 . 
         [0060]    Another embodiment of the encoding and decoding devices consistent with the present invention is shown in  FIG. 3 . The M memory buffer  26  is replaced by a message symbol FIFO  30 . This is the only difference between the embodiment in  FIG. 2  and the embodiment in  FIG. 3 . After all symbols of the message are written into memory buffer  28  in  FIG. 2  and  FIG. 3 , the data in memory buffer  28  are read out in either the top-down order or the bottom-up order as specified by the communications system. This is the ciphertext C. 
         [0061]    The embodiments in  FIG. 2  and  FIG. 3  can only perform permutation one symbol at a time, however, it is possible that the encoding and decoding devices may process more than one symbol at a time in other embodiments of the present invention. 
         [0062]    Other Configurations 
         [0063]    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  FIG. 4 , a message M is partitioned and permutated according to key A0  by encoder  10   A0 , the resultant symbol sequence M s , which is one of M 1n , . . . , M 12  and M 11 , is de-selected by a 1-to-n de-selector (demux)  31   A  to generate M A1i , where i is in the range of 1 to n inclusive. M A1i  is applied on encoding device  10   Ai  to generate C i  using key Ai . C i  is transmitted to terminal B over the channel  14 . Upon received by terminal B. C i  is decoded by decoding device  12   Bi  to obtain M′ 1i  using key Ai , where 1&lt;=i&lt;=n. Then M′ s  is selected from M′ 1n , . . . , M′ 12  and M′ 11  by a n-to-1 selector(mux)  32   B  and is applied to decoding device  12   B0 . Thereby, message M′ is obtained, which should be the same as M. 
         [0064]    As the decoding of C i  is essentially the same as encoding of M 1 , where 1&lt;=i&lt;=n, it is possible to use a single decoder  12   B , as embodied in  FIG. 5 . The terminal A in  FIG. 5  is the same as that in  FIG. 4 . The decoding schemes are different from that in  FIG. 4 . Ciphertext C i  is received and stored in memory buffer  34   Bi  Then C s  is selected from C n , . . . , C 2  and C 1  by a n-to-1 selector (mux)  38   B  and decoded by the decoding device  12   B . Thereby, M′ is obtained, which is the same as M. The key used by decoder  12   B  is generated by a key generator  36   B  according to the particular symbol sequence fed to decoder  12   B . 
         [0065]    In addition, the finite state machine  20 , as embodied in  FIG. 2  and  FIG. 3 , should be designed accordingly to generate correct symbol addresses. 
         [0066]    The communications channel in both  FIG. 4  and  FIG. 5  is shown to have n physical links. However, there may be either multiple physical links or only one physical link to channel  14 . How C n , . . . , C 2  and C 1  are transmitted to the receiving terminal should be designed according to the specific communications channel. 
         [0067]    There are other forms of encoder/decoder configurations consistent with the present invention in addition to the embodiments in  FIG. 4  and  FIG. 5 . The finite state machine and memory buffers inside the encoding and decoding devices, as embodied in  FIG. 2  and  FIG. 3 , should be designed accordingly. Moreover, the embodiments in  FIG. 4  and  FIG. 5  are one-way communciations system. Nonetheless, there can be other forms of the present invention capable of two-way or multi-way communications. 
         [0068]    Secure Distributed Storage 
         [0069]    The present invention can also be applied to secure distributed data storage as embodiments in  FIG. 6  and  FIG. 7 .  FIG. 6  is an embodiment of the present invention for distributed data storage. It comprises an encoding and distributing terminal A, n distributed data storage terminals and a communications channel  14 . Terminal A comprises an encoding device  10 A, a 1-to-n deselector (demux)  42   A , and n memory buffers from  40   A1  to  40   An . The encoder  10 A partitions the message-to-be-stored into n symbol sequences (M n , . . . , M 2 , M 1 ) and permutates them into (M 1n , . . . , M 12 , M 11 ), which may be further partitioned and permutated. M 1i s are stored into memory buffers  40   Ai  respectively and transmitted to n distributed storage terminals separately over channel  14 , wherein 1&lt;=i&lt;=n. The ith distributed data storage terminal includes a storage device  38   i , where the data is stored. 
         [0070]    The embodiment in  FIG. 7  describes how the distributed data is recovered. The n data storage terminals are the same as that in  FIG. 6 . Terminal C, knowing the encryption key, receives C i s from the n storage terminals over channel  14  and store C i s in memory buffers from  46   C1  to  46   Cn  respectively. The memory buffers feed C i s to decoding device  12 C via an n-to-1 selector (mux)  48   C . C i s are decoded by decoding device  12 C to obtain message M′, which is the same as original message M. 
         [0071]    Conclusion 
         [0072]    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. 
         [0073]    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:
       1. Using encoders/decoders consistent with the present invention for messages that are either partitioned into smaller blocks to meet maximum message length requirement or padded into longer sequence to meet minimum message length requirement. It is also possible to steal symbols from other symbol sequence when particular symbol sequence is too short   2. Using encoders/decoders consistent with the present invention in conjunction with other types of encoders/decoders. Other encoders/decoders can be used either before or after encoders/decoders consistent with the present invention. Particularly, the symbols may be substituted, if needed, in encoding or decoding consistent with the present invention. The substitution symbols should also be considered as part of the secret encryption key in addition to the partition and permutation information.   3. Using a shared secret key established with other encryption schemes in implementations consistent with the present invention,   4. Using a secret key, size of which is shortened with conventional compression and hashing techniques, in encoding or decoding consistent with the present invention,   5. Implementing the present invention in software alone or hardware alone or as a combination of software and hardware,   6. Implementing the present invention as a standalone system, or embeded into or attached to another system.       
 
         [0080]    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.