Abstract:
A symmetric encryption/decryption method includes the steps of selecting a diffused mechanism, and the diffused mechanism includes at least one selected from a shift point, a block and a frame; obtaining a plurality of bits required for a cipher by the diffused mechanism and the element number of each dimension of a plaintext; carrying out at least one diffused operation for the plaintext; repeating the foregoing steps to achieve the effect of encrypting the plaintext. Since the sum of the encryption diffused times and the decryption diffused times equals to the diffused cycle, the cipher can be read and at least one dimensional diffused operation of the ciphertext can be carried out, and thus achieving the effect of decrypting the ciphertext.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The present invention relates to a data encryption/decryption method, and more particularly to a data encryption/decryption method that uses basic disturbed operations including shift and exclusive or (XOR) and applies a multipoint synchronous diffused mechanism to achieve data encryption and decryption by a diffused cycle.  
         [0003]     2. Description of the Related Art  
         [0004]     A prior art data encryption/decryption method fully mixes a plaintext with a cipher to define a ciphertext by a series of operations including shift, XOR and transform, etc, and the ciphertext and cipher can decrypt the ciphertext back into the plaintext by the same algorithm. If other users do not have the original cipher, then they cannot decrypt the ciphertext. Thus, the present invention can achieve the effect of protecting confidential data.  
         [0005]     In the prior arts, it is intentionally to produce a substantial irrelevance between the plaintext and the ciphertext. Basically, the plaintext and the cipher go through a one-dimensional matrix logical operation and a two-dimensional matrix transform, and the key point of the security resides on the repeated logical operations and transforms of the algorithm.  
       SUMMARY OF THE INVENTION  
       [0006]     The inventor of the present invention based on years of experience in the related field to conduct extensive researches and experiments to improve the existing technology and finally invented the safer and more versatile multipoint synchronous diffused encryption/decryption method of the present invention.  
                                                                     TABLE 1                           Plain-       Pre-                       text   cipher   processing   encryption   decryption   code       Technical   (bit)   (bit)   (second)   (second)   (second)   (line)                                Present   256   264   0   0.062   0.093   100       invention       AES   128   176   6.3   0.094   0.109   125                  
 
         [0007]     It is a primary objective of the present invention to provide a multipoint synchronous diffused data computing to process at least one dimensional matrix logical operation (which is an n-dimensional space operation) so as to significantly reduce the operating time. By using the multipoint synchronous diffused mechanism to replace the conventional bit conversion table and use the multipoint to set up a synchronous processing, a major irrelevance between the plaintext and the ciphertext can be established in a very short time.  
         [0008]     The technical measures taken by the present invention are described as follows:  
         [0009]     A symmetric encryption/decryption method comprises the steps of:  
         [0010]     (A) Selecting a diffused mechanism;  
         [0011]     (B) Obtaining a plurality of bits required for the cipher according to the diffused mechanism and the element number of each dimension of the plaintext;  
         [0012]     (C) Using the plurality of bits to carry out at least one dimensional diffused operation of the mechanism to the plaintext;  
         [0013]     (D) Repeating the foregoing steps to transform the plaintext into a ciphertext, so as to achieve the effect of encrypting the plaintext.  
         [0014]     Since the sum of encryption diffusion times and the decryption diffusion times equals to the diffusion cycle, the cipher can be read and at least one dimensional diffused operation of the ciphertext can be carried out, and thus achieving the effect of decrypting the ciphertext. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]      FIG. 1  is a flow chart of a multipoint synchronous distribution according to the present invention;  
         [0016]      FIG. 2A  is a flow chart of a shift point diffused encryption according to the present invention;  
         [0017]      FIG. 2B  is a flow chart of a shift point diffused decryption according to the present invention;  
         [0018]      FIG. 3A  is a flow chart of a block diffused encryption according to the present invention;  
         [0019]      FIG. 3B  is a flow chart of a block diffused decryption according to the present invention;  
         [0020]      FIG. 4A  is a flow chart of a frame diffused encryption according to the present invention; and  
         [0021]      FIG. 4B  is a flow chart of a frame diffused decryption according to the present invention.  
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0022]     Referring to  FIG. 1 , a multipoint synchronous diffusion method makes use of a combination of a diffused mechanism to include at least one dimensional matrix to define a multipoint synchronous diffused operation, which comprises the following elements:  
         [0023]     A diffused operation: For a diffused cycle, the value of the diffused area will return to its original value for every cycle of the diffused times, and thus the diffused operation is divided into a diffused status from the beginning to the end of a cycle or a status for returning from the end to the start before the diffusion.  
         [0024]     A diffused status: It includes a diffused area, and the diffused area is neatly arranged with the same block size, and the diffused area includes a diffused start block, and such start block is used as a diffused center for the diffusion in a sequence outward, and a new value in the diffused area is produced. The original value at that position XOR with the diffused value transmitted from the adjacent diffused direction, and the new value is used as a diffused value for the diffusion outward. The process is continued until the entire diffused area is finished.  
         [0025]     A status before diffusion: It includes a diffused area and the diffused area is neatly arranged with the same block size, and the diffused area includes a diffused start block, and such start block is used as a diffused center for the diffusion in a sequence inward, and a new value in the diffused area is produced. A new value produced at that position is performed by the original value XOR with the original value transmitted from the adjacent diffused direction inwardly. The process is continued until the entire diffused area is finished.  
         [0026]     The diffused mechanism of a shift point: It includes a diffused area, and the diffused area includes a start point of diffusion, and the start point is used as a diffused center to carry out at least one dimensional diffused operation.  
         [0027]     Symbols and definition of a shift point diffusion:  
         [0028]     A(i 1 , i 2 , . . . i n ): It is an n-dimensional matrix diffused area A that uses Point (i, i 2 , . . . i n ) as a start point to carry out an n-dimensional diffused operation. A(i 1 , i 2   t , . . . i n ) It is an n-dimensional matrix diffused area A that uses Point (i 1 , i 2 , . . . i n ) as a start point to repeat diffusion for t times.  
         [0029]     Example: 
 
 A ( i   1   ,i   2   2   , . . . i   n )= A ( i   1   , i   2   , . . . i   n )( i   1   ,i   2   , . . . i   n )  (a) 
 
 A ( i   1   ,i   2   1   , . . . i   n )= A ( i   1   ,i   2   , . . . i   n )  (b) 
 
 A ( i   1   ,i   2   0   , . . . i   n )= A   (c) 
 
         [0030]     A shift point diffused cycle: 
 
 A ( i   1   , i   2   t   , . . . i   n )= A  
 
         [0031]     (a) A takes a dimension with the most number of elements (set to k).  
         [0032]     (b) The new value and original value of a diffused start point are different, t=2×2 ┌log     2     k┐ .  
         [0033]     (c) The new value and original value of a diffused start point are the same, t=2 ┌log     2     k┐ .  
         [0034]     The flow chart of a shift point diffused encryption is shown in  FIG. 2A .  
         [0035]     The flow chart of a shift point diffused decryption is shown in  FIG. 2B .  
         [0036]     The diffused mechanism of a block: It includes a diffused area, a block, and a fixing point in a block; the diffused area includes a diffused start block at the position of the block, and the diffused start block is the center, and the diffused area is neatly arranged with the block size, and the block size is used as the unit. The diffused start block is used at the center to carry out at least one dimensional diffused operation.  
         [0037]     Symbols and definition of a block definition:  
         [0038]     S k     1     *k     2     * . . . *k     n   : It is an n-dimensional matrix block S, and the element number for each dimension is k 1 k 2  . . . k n .  
         [0039]     A(i 1 ,i 2 , . . . i n ): It is an n-dimensional matrix diffused area A that uses Point (i 1 ,i 2 , . . . i n ) as an anchor point of a start block, and A is converted into size S with block as its unit for carrying out an n-dimensional diffused operation.  
         [0040]     A(i 1 ,i 2   t , . . . i n ): It is an n-dimensional matrix diffused area A that uses Point (i 1 ,i 2 , . . . i n ) as an anchor point of a start block to repeat the diffusion for t times.  
         [0000]     block diffused cycle: 
 
 A ( i   1   ,i   2   t   , . . . i   n )= A  
        (a) A and S take a dimension with the largest element number ratio (set to be k).     (b) The new value and original value of the diffused start block are different, t=2×2 ┌log     2     k┐ .     (c) The new value and original value of the diffused start block are the same, t=2 539 log     2     k┐ .        
 
         [0044]      FIG. 3A  shows a flow chart of a block diffused encryption.  
         [0045]      FIG. 3B  shows a flow chart of a block diffused decryption.  
         [0046]     The diffused mechanism of a frame: It comprises a diffused area, a frame, a fixing point in the frame, and the edge corner end point is the start point of the diffusion. The diffused area is divided into a plurality of sub-areas being stacked on a fixing point of the frame, and each sub-area must include a diffused start point, and the plurality of diffused start points are the center. In the meantime, at least one dimensional diffused operation is carried out to be diffused to each diffused value XOR at the overlapped position.  
         [0047]     Symbols and definition of a frame:  
         [0048]     W k     1     *k     2     * . . . *k     m   : It is an m-dimensional frame W. and the number of elements for each dimension is k 1 , k 2 , . . . k m .  
         [0049]     A(i 1 , i 2 , . . . i n ): it is an n-dimensional matrix diffused area A, and the frame shift point is corresponsive to Point (i 1 , i 2 , . . . i n ), and the edge corner end point of a frame is used as a diffused start point of the diffused area to carry out an n-dimensional diffused operation.  
         [0050]     A(i 1 , i 2   t , . . . i n ): It is an n-dimensional matrix diffused area A, and the frame fixing point is corresponsive to Point (i 1 , i 2 , . . . i n )to repeat diffusion for t times.  
         [0051]     Frame diffused cycle: 
 
 A ( i   1   ,i   2   t   , . . . i   n )= A  
 
         [0052]     (a) A takes a sub-diffused area with the largest element number for a dimension (set to be K).  
         [0053]     (b) The new value and the original value of the diffused start point are different, t=2×2 ┌log     2     k┐ .  
         [0054]     (c) The new value and the original value of the diffused start point are the same, t=2 ┌log     2     k┐ .  
         [0055]      FIG. 4A  shows a flow chart of a frame diffused encryption.  
         [0056]      FIG. 4B  shows a flow chart of a frame diffused decryption. 
       Embodiment of Multipoint Synchronization  
       [0057]     To make it easier for our examiner to understand the content of the present invention, the diffused operation, diffused mechanism, and diffusion dimension are described in details as follows:  
         [0058]     Diffused operation: It comprises four diffused areas A, B, C and D which have the same block size with each other and neatly arranged; where A is the diffused start block, T is a trigger signal, and their operations are shown in Table 2.  
                                                 TABLE 2                       Diffused Area   Diffused Status   Status before Diffusion                                C   D   i.   A = A ⊕ T   i.   D = B ⊕ C ⊕ D               ii.   B = A ⊕ B   ii.   C = A ⊕ C       A   B   iii.   C = A ⊕ C   iii.   B = A ⊕ B               iv.   D = B ⊕ C ⊕ D   iv.   A = A ⊕ T                 ⊕: XOR             
 
       EXAMPLE 1  
     Shift Point+Block+Two-Dimensional Matrix  
       [0059]     A plaintext takes an 8×8 two-dimensional matrix.  
         [0060]     A block takes a 2×2 two-dimensional matrix and a fixing point takes the coordinates (row, column) of a two-dimensional matrix.  
         [0061]     A shift point takes the coordinates (row, column) of a two-dimensional matrix.  
         [0062]     A diffused encryption frequency is in terms of a number of times.  
         [0063]     Initialization:  
         [0064]     Tale a plaintext: Taking “smoother” for example, its ASCII code is 73 6D 6F 6F 74 68 65 72, which can be represented by a binary system to form an 8×8 two-dimensional matrix as shown in Table 3-1.  
                                                     TALBE 3-1                           ASCII                73   6D   6F   6F   74   68   65   72                       1   1   1   1   0   0   1   0           1   0   1   1   0   0   0   1           0   1   1   1   1   0   1   0           0   1   1   1   0   1   0   0           1   0   0   0   1   0   0   1           1   1   1   1   1   1   1   1           1   1   1   1   1   1   1   1           0   0   0   0   0   0   0   0                      
 
         [0065]     Take a plurality of blocks: Set all positions in a block to 1 and the fixing point of each block to (1, 1).  
         [0066]     Take a plurality of shift points: Taking “Yourlips” for example, its ASCII code is 59 6F 75 72 6C 69 70 73, and 3 is truncated, which can be represented by an octal number system to form 26 26 75.65 34 46 61 51 34 07, and in turned converted as shown in Table 3-2 to obtain 10 shift points.  
                                                                                                                   TABLE 3-2                                       ASCII                26   26   75   65   34   46   61   51   34   07                        Row   3   3   8   7   4   5   7   6   4   1       Column   7   7   6   6   5   7   2   2   5   8                  
 
         [0067]     Take a plurality of diffused encryption times: set each diffused encryption times as 1.  
         [0000]     Encryption Process:  
         [0068]     1. Take out a shift point and a block in sequence.  
         [0069]     2. The diffused area is labeled as the shift point.  
         [0070]     3. The fixing point of the block is set to the shift point, and the block is set to the position of a diffused start block.  
         [0071]     4. The diffused start block is uses as a center, and the diffused areas are neatly arranged according to their block size.  
         [0072]     5. A block size is used as a unit to carry out a two-dimensional matrix diffused operation.  
         [0073]     Description: The first shift point (3, 7) is taken out, and its row value is 3 and column value is 7. Take out the first block and move it to that position, so that the upper left corner and the lower right corner of the diffused start block can be represented by (3, 7) (4, 8). The diffused start block is the center, and the diffused area is divided by blocks to obtain the top, down, left and right blocks which are represented by their upper left corner and lower left corner pairs (1, 7) (2, 8), (5, 7) (6, 8), (3, 5) (4, 6) and (3, 9) (4, 10) respectively. The diffused start block is used as the center to carry out a two-dimensional matrix diffused operation. The binary table for encrypted plaintexts is shown in Table 3-3.  
                                                   TABLE 3-3                                       0   1   0   0   0   0   0   0           0   0   0   0   0   0   0   1           1   0   0   1   0   0   0   1           1   0   1   0   0   1   1   1           1   1   0   1   0   1   1   1           0   1   1   1   0   1   1   1           1   0   0   0   1   0   1   0           1   1   1   1   1   1   1   1                      
 
         [0074]     The second shift point (3, 7) is taken out, and the second block is encrypted until all shift points and blocks are taken out. The process is repeated until the encryption is completed. The binary table for ciphertexts is shown in Table 3-4.  
                                                   TABLE 3-4                                       0   1   0   1   1   0   0   0           0   1   1   0   0   1   1   1           1   0   1   0   0   1   1   1           1   0   0   1   1   0   1   0           0   1   0   1   0   0   0   0           1   0   1   1   0   1   0   1           1   0   1   0   1   0   1   1           1   1   1   1   1   0   0   1                      
 
         [0075]     The decryption of a ciphertext is the similar to the encryption of a plaintext. In the previous example, an 8×8 two-dimensional matrix plaintext and a 2×2 matrix block are used. The new value and the original value of the diffused start block are different. The computed cycle is 8 times. Since the diffused encryption times is set to 1, therefore the diffused decryption times is set to 7. In a decryption, the last shift point and block are taken out until the first shift point and block are taken out. All shift points and blocks are taken out, and the decryption process is repeated for 7 times to obtain the original plaintext.  
       EXAMPLE 2  
     Shift Point+Frame+Two-Dimensional Matrix 
       [0076]     A plaintext takes an 8×8 two-dimensional matrix.  
         [0077]     A frame takes a 7×7 two-dimensional matrix, and the end point and the fixing point take the coordinates (row, column) of a two-dimensional matrix.  
         [0078]     A shift point takes the coordinates (row, column) of a two-dimensional matrix.  
         [0079]     A diffused encryption frequency is represented by a number of times.  
         [0080]     Initialization:  
         [0081]     Take a plaintext which is the same as Table 3-1.  
         [0082]     Take a plurality of frames: Set the middle position of each frame as the fixing point, and the positions of four corners s as the end points.  
         [0083]     Take a plurality of shift points: In an 8×8 two-dimensional matrix plaintext, the positions of a 16×16 two-dimensional matrix is selected. Taking “Yourlips” for example, its ASCII code is 59 6F 75 72 6C 69 70 73, which can be converted into Table 4-1 to obtain 8 shift points.  
                                                                                                           TABLE 4-1                                       ASCII                    59   6F   75   72   6C   69   70   73                            Row   6   7   8   8   7   7   8   8           Column   10   16   6   3   13   10   1   4                      
 
         [0084]     Take a plurality of diffused encryption times: Set each diffused encryption times as 1.  
         [0085]     Encryption Process:  
         [0086]     1. Take a 22×22 two-dimensional zero matrix and encrypt the plaintext to be build at the central block to define a diffused area.  
         [0087]     2. Take out a shift point and a frame in sequence.  
         [0088]     3. Each of the shift points for both row and column adds a value of 3, and the diffused area marks that particular position.  
         [0089]     4. The fixing point of the frame is set to that position and divided into 4 diffused sub-areas overlapped at the fixing point.  
         [0090]     5. Each end point of the frame is a diffused start point. In the meantime, a two-dimensional matrix diffused operation is carried out.  
         [0091]     6. Perform XOR on each diffused value diffused to the overlapped position.  
         [0092]     7. Take out the middle block (Row 8˜15, Column 8˜15) from the diffused area as the encrypted plaintext for the next time.  
         [0093]     Description: Take out the first shift point (6, 10), and its row has a value of 6 and its column has a value of 10. Take out the first frame, and move the fixing point to the diffused area (9, 13) to be divided into four diffused sub-areas which are represented by the upper left corner and the lower right corner pair (1,1) (9, 13), (1, 13) (9, 22), (9, 1) (22, 13) and (9, 13) (22, 22) respectively. The end points (6, 10), (6, 16), (12, 10), (12, 16) of the frame are diffused start points. The new value and the original value of the diffused start point are different, and each diffused start point is used as a center. In the meantime, a two-dimensional matrix diffused operation is carried out and XOR is diffused to each diffused values at the overlapped position, the binary table of the encrypted plaintext taken out is shown in Table 4-2.  
                                                   TABLE 4-2                                       0   0   1   0   1   1   1   0           0   1   1   0   0   0   1   1           1   1   0   1   0   1   1   0           0   0   1   0   0   1   0   1           1   0   1   0   1   1   1   1           1   0   1   0   1   1   0   0           1   1   0   1   1   0   1   0           1   1   1   1   1   1   1   1                      
 
         [0094]     The second shift point (7, 16) is taken out and the second frame is encrypted until all shift points and frames are taken out and the encryption cycle is completed. The binary table for the ciphertext is shown in Table 4-3.  
                                                   TABLE 4-3                                       0   1   0   0   1   0   1   1           0   1   0   1   0   0   0   1           0   0   1   0   0   0   1   1           1   0   0   1   0   1   1   0           0   0   1   1   1   0   1   1           0   1   0   1   0   0   0   1           1   0   1   0   0   1   0   1           1   0   0   0   1   1   0   0                      
 
         [0095]     The decryption process of the ciphertext is similar to the encryption process of the plaintext. In the previous example, an 8×8 two-dimensional matrix plaintext is diffused, and the new value and the original value of the diffused start point are different. The computed cycle is 16 times. Since the diffused encryption times is set to 1, therefore the diffused decryption times is set to 15. In the decryption, the last shift point and frame are taken out until the first shift point and frame are taken out. All shift points and frames are taken out, and the decryption process is repeated for 15 times to obtain the original plaintext.  
       EXAMPLE 3  
     Shift Point+Frame+Three-Dimensional Matrix  
       [0096]     A plaintext takes a 8×8×8 three-dimensional matrix.  
         [0097]     A frame takes a 7×7×7 three-dimensional matrix, and the end point and the fixing point take the coordinates (1 st  dimension, 2 nd  dimension, 3 rd  dimension) of a three-dimensional matrix. 
         [0098]     A shift point takes the coordinates (1 st  dimension, 2 nd  dimension, 3 rd  dimension) of a three-dimensional matrix.  
         [0099]     A diffused encryption frequency is represented by a number of times.  
         [0100]     Initialization:  
         [0101]     Take a plaintext: Taking “smoother” for example, it is repeated for 8 times. In other words, the 8×8 two-dimensional matrix of the previous example is overlapped for 8 times to form a binary 8×8×8 three-dimensional matrix as shown in Table 5-1 which is represented by ASCII codes and an 8×8 two-dimensional matrix.  
                                                   TABLE 5-1                                       73   6D   6F   6F   74   68   65   72           73   6D   6F   6F   74   68   65   72           73   6D   6F   6F   74   68   65   72           73   6D   6F   6F   74   68   65   72           73   6D   6F   6F   74   68   65   72           73   6D   6F   6F   74   68   65   72           73   6D   6F   6F   74   68   65   72           73   6D   6F   6F   74   68   65   72                      
 
         [0102]     Take a plurality of frame: Set the middle position of each frame as the fixing point, and the 8 corner position are set as end points.  
         [0103]     Take a plurality of shift point: In an 8×8×8 three-dimensional matrix plaintext, a 16×16×16 three-dimensional matrix position is selected. Taking “YourlipsY” for example, its ASCII code is 59 6F 75 72 6C 69 70 73 59, which can be converted into Table 5-2, and 6 shift points are taken.  
                                                                                   TABLE 5-2                                       ASCII                596   F75   726   C69   707   359                        First Dimension   6   16   8   13   8   4       Second Dimension   10   8   3   7   1   6       Third Dimension   7   6   7   10   8   10                  
 
         [0104]     Take a plurality of diffused encryption times: Set each diffused encryption times to 1.  
         [0105]     Encryption process: It has the same encryption process as described in Example 2, and its two-dimensional settings are changed to three-dimensional settings.  
         [0106]     Description: The first shift point (6, 10, 7) is taken out. The value of the first dimension is 6; the value of the second dimension is 10; and the value of the third dimension is 7. The first frame is taken out, and the fixing point is moved to the diffused area (9, 13, 10). Since the frame has 8 end points, therefore it is divided into 8 diffused sub-areas, and each end point is a diffused start point. The new value and the original value of the diffused start point are set to different, and each diffused start point is a center. In the meantime, a three-dimensional matrix diffused operation is carried out to diffuse XOR to each diffused value at the superimposed position. The second shift point (16, 8, 6) is taken out, and the second frame is encrypted until all shift points and frames are taken out and the cycle encryption is completed. The binary table for the ciphertext is represented by ASCII codes ad an 8×8 two-dimensional matrix as shown in Table 5-3.  
                                                   TABLE 5-3                                       33   2C   CC   AC   A0   52   13   66           E6   04   A9   C7   31   51   00   A1           FC   DB   23   57   7B   85   CE   95           87   DE   13   3B   6E   CE   16   DA           B8   FE   88   18   19   D6   B0   DF           10   14   F5   2A   DE   7B   C1   C2           29   B2   C5   C8   63   B3   40   60           AB   FA   CE   76   A9   C4   0A   AD                      
 
         [0107]     In the examples, the diffused mechanism can be used either independently or jointly with more than one item, and the diffused operation can be established for two or more dimensions. By this method, the number of points of the multipoint synchronous diffusion is increased by multiples if the plaintext is increased by one dimension. Further, the multipoint setting is indicated by the dotted line section as shown in  FIG. 1 , and the further setting of its block includes the block value, the element combination and the fixing point. The further setting of its frame includes the end point and the fixing point. All further settings can be taken as a plurality of different values for the embodiments. Therefore, a cipher with a combination of much more digits can be formed during the process of executing the diffused operation.  
         [0108]     The cipher having much more digits can be used in a serial input and as a unit according to the diffused mechanism combination. The cipher is divided into a plurality of units, and a plaintext can be encrypted by the diffused mechanism combination together with a unit and then encrypted again with another diffused mechanism combination together with another unit, and so on and so forth. The cipher having much more digits also can be established in the parallel input. In the process, the same diffused mechanism combination is used, and the individual setting of the combination is used as a unit to divide the cipher into a plurality of units. All units are inputted at the same time and read in sequence for encrypting the plaintext.  
         [0109]     In summation of the above description, the present invention herein complies with the patent application requirements and is submitted for patent application. However, the description and its accompanied drawings are used for describing preferred embodiments of the present invention, and it is to be understood that the invention is not limited thereto. To the contrary, it is intended to cover various modifications and similar arrangements and procedures, and the scope of the appended claims therefore should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements and procedures.