Claims
- 1. A method of encryption by substituting for any one of the 2.sup.n unique clear text blocks of n bit binary numbers an associated unique encrypted block of n bit binary numbers comprising the steps of:
- (a) finding a first matrix G.sup.n of 2.sup.n equations, representing a linear orthomorphism, each equation representing the modulo 2 additions of one of the 2.sup.n clear text blocks in the left column, with a unique one of 2.sup.n n-bit blocks in the middle column to provide an associated unique n-bit block in the right column, all of the equations in the first matrix of 2.sup.n equations being characterized by the vector sum modulo 2 of any number of the equations also being one of the equations in the first matrix, the equations including the identity equation .THETA..sym..THETA.=.THETA. and the remaining 2.sup.n -1 equations being orderable as follows: ##EQU38## where m=2.sup.n, L, M and R are the left, middle and right columns respectively, G.sup.n =L.sub.n .times.M.sub.n.times.R.sub.n, represents the set of equations, G.sup.n-1 is a subgroup of G.sup.n generated by n-1 consecutive equations in G.sup.n, being a submatrix of 2.sup.n-1 equations, G.sup.n-1 is the complement of G.sup.n-1 in G.sup.n, G.sup.n-1 =L.sub.n-1 X M.sub.n-1 .times.R.sub.n-1, G.sup.n-1 =L.sub.n-1 .times.M.sub.n-1 .times.R.sub.n-1, W.sub.n-1 =L.sub.n-1 .andgate.M.sub.n-1, G.sup.n-2 is a subgroup of G.sup.n-1 generated by n-2 equations in G.sup.n-1, being a submatrix of 2.sup.n-2 equations, G.sup.n-2 is the complement of G.sup.n-2 in G.sup.n-1, G.sup.n-2 =L.sub.n-2 .times.M.sub.n-2 .times.R.sub.n-2,G.sup.n-2 =L.sub.n-2 .times.M.sub.n-2 .times.R.sub.n-2, W.sub.n-2 =L.sub.n-2 .andgate.M.sub.n-2, W.sub.n-2 is the complement of W.sub.n-2 in W.sub.n-1, with like subgroups being defined with indices n-2 to 2 wherein W.sub.2 ={x, .theta.}=W.sub.1 .orgate.W, where x.noteq..theta. and W.sub.1 ={.theta.} and W.sub.1 ={x};
- G.sup.n-1 being a submatrix of G.sup.n, including the identity equation, and the remaining 2.sup.n-1 equations being orderable as follows: ##EQU39## where s - 2.sup.n-1 -1 and G.sup.n-1 is all of the remaining 2.sup.n-1 equations from G.sup.n which are not included in G.sup.n-1, and corresponding for G.sup.n-2 being a subset of 2.sup.n-2 equations from G.sup.n-1 selected by choosing n-2 consecutive equations from G.sup.n-1 and taking all sums of these and identity equations, and wherein G.sup.n-1 is all of the remaining 2.sup.n-2 equations from G.sup.n-1 which are not included in G.sup.n-2 and so on, for successively smaller subgroups until G.sup.2 is selected with 2.sup.2 =4 equations, including the identity equations, two consecutive equations and their sum from G.sup.3 with G.sup.2 being four equations of G.sup.3 not including G.sup.2,
- (b) modifying a plurality of the non-zero 2.sup.n -1 equations in the first matrix of 2.sup.n equations to provide a second matrix of 2.sup.n equations, representing a nonlinear orthomorphisms, the plurality of equations being modified so that the modified plurality of equations collectively map the clear text blocks in the left column to unique encrypted n-bit blocks in the right column, but in a nonlinear manner so that each of the modified equations is not generally the sum modulo 2 of any number of the equations in the unmodified first step wherein said modification of said plurality of the non-zero 2.sup.n-1 equations is achieved by
- applying the 2.sup.n-3 mixing transforms in W.sub.n-2 to G.sup.n-1 ;
- applying the 2.sup.n-4 mixing transforms in W.sub.n-3 to G.sup.n-2 ;
- continuing applying mixing transforms until reaching G.sup.2 ; and
- (c) for each clear text block in the left column to be encrypted, adding modulo 2 to that block, the unique one of the 2.sup.n n-bit blocks associated therewith in the middle column in accordance with the associated equation of the second matrix of 2.sup.n equations to obtain the encrypted block in the right column.
- 2. The method of claim 1, wherein step (b) further comprises the step of:
- apply W.sub.1 to G.sup.2.
- 3. The method of claim 1, wherein step (b) further comprises the step of:
- apply .THETA.to G.sup.2.
- 4. A method of encryption by substituting for any one of the 2.sup.n unique clear text blocks of n bit binary numbers an associated unique encrypted block of n bit binary numbers comprising the steps of:
- (a) finding a first matrix G.sup.n of 2.sup.n equations, representing a linear orthomorphism, each equation representing the modulo 2 additions of one of the 2.sup.n clear text blocks in the left column with a unique one of 2.sup.n n-bit blocks in the middle column to provide an associated unique n-bit block in the right column, all of the equations in the first matrix of 2.sup.n equations being characterized by the vector sum modulo 2 of any number of the equations also being one of the equations in the first matrix, the equations including the identity equations .THETA..sym..THETA.=.THETA. and the remaining 2.sup.n -1 equations being orderable as follows: ##EQU40## where m=2.sup.n, L.sub.n, M.sub.n and R.sub.n are the left, middle and right columns respectively, G.sup.n =L.sub.n .times.M.sub.n .times.R.sub.n represents the set of equations,:
- (b) modifying a plurality of the non-zero 2.sup.n -1 equations in the first matrix of 2.sup.n equations to provide a second matrix of 2.sup.n equations, representing a nonlinear orthomorphisms the plurality of equations being modified so that the modified plurality of equations collectively map the same text blocks in the left column to unique n-bit blocks in the right column, but in a nonlinear manner so that each of the modified equations is not generally the sum modulo 2 of any number of the equations in the unmodified first step wherein said modification of said plurality of the non-zero 2.sup.n -1, equations is achieved by
- selecting from G.sup.n two or more disjoint corruptible subgroups of order 2.sup.k where 2.sup.k .ltoreq.n/2, said subgroup being represented by, at least, G.sub.0.sup.k, H.sub.0.sup.k, I.sub.0.sup.k, with each such subgroup being generated from k consecutive equations in G.sup.n by taking modulo 2 sums of all combinations of such k equations, each set of such k equations being distinct, and the totality of such equations being less than or equal to n,
- forming subgroups, not necessarily disjoint, M.sub.0.sup.2k,N.sub.0.sup.2k, . . . or order 2.sup.2k from pairs of G.sub.0.sup.k,H.sub.0.sup.k,I.sub.0.sup.k, . . . ,
- continuing forming subgroups until a subgroup Q.sub.0.sup.n-1 or Q.sub.0.sup.n-2 is selected, accordingly as n is odd or even, of order 2.sup.n-1 or 2.sup.n-2, with G.sup.n being decomposed into cosets of Q.sub.0, which are in turn decomposed into cosets of next smaller subgroups until each of M.sub.0.sup.2k,N.sub.0.sup.2k. . . and their cosets are further decomposed into cosets of G.sub.0.sup.k,H.sub.0.sup.k,I.sub.0.sup.k. . . , with each decomposition being into successively smaller cosets,
- (c) selecting an alternate sequence of such cosets to represent the entire first matrix of equations G.sup.n,
- (d) modify each coset of alternate sequence with corresponding mixing transforms to yield the second matrix of equations, and
- (e) for each clear text block in the left column to be encrypted, adding modulo 2 to that block, the unique one of the 2.sup.n n bit blocks associated therewith in the middle column in accordance with the associated equation of the second matrix of 2.sup.n equations to obtain the encrypted block in the right column.
- 5. A method of encryption by substituting for any one of the 2.sup.8 unique clear text blocks of n bit binary numbers an associated unique encrypted block of n bit binary numbers comprising the steps of:
- (a) finding a first matrix G.sup.8 of 2.sup.8 equations, representing a linear orthomorphism each equation representing the modulo 2 additions of one of the 2.sup.8 clear text blocks in the left column with a unique one of 2.sup.8 8-bit blocks in the middle column to provide an associated unique 8-bit block in the right column, all of the equations in the first matrix of 2.sup.8 equations being characterized by the vector sum modulo 2 of any number of the equations also being one of the equations in the first matrix, the equations including the identity equation .THETA..sym..THETA.=.THETA. and the remaining 2.sup.8 -1=255 equations being orderable as follows: ##EQU41## where m=2.sup.8 -1=255, L.sub.8, M.sub.8 and R.sub.8 are the left, middle and right columns respectively, G.sup.8 =L.sub.8 .times.M.sub.8 .times.R.sub.8 represents the set of equations;
- (b) modifying a plurality of the non-zero 2.sup.8 -1=255 equations in the first matrix of 2.sup.8 =256 equations to provide a second matrix of 256 equations, representing nonlinear orthomorphisms, the plurality of equations being modified so that the modified plurality of equations collectively map the clear text blocks in the left column to unique encrypted 8-bit blocks in the right column, but in a nonlinear manner so that each of the modified equations is not generally the sum modulo 2 of any number of the equations in the unmodified first set, wherein said modification of said plurality of non-zero 255 equations is achieved by
- selecting from G.sup.8 three disjoint corruptible subgroups of order 4, G.sub.0.sup.2, H.sub.0.sup.2, and I.sub.0.sup.2 ;
- generating, from G.sub.0.sup.2, H.sub.0.sup.2 and I.sub.0.sup.2, three subgroups of order 16, M.sub.0.sup.4 from G.sub.0.sup.2 .orgate.H.sub.0.sup.2, N.sub.0.sup.4 from G.sub.0.sup.2 .orgate.I.sub.0.sup.2, and P.sub.0.sup.4 from H.sub.0.sup.2 .orgate.I.sub.0.sup.2 ;
- generating a subgroup Q.sub.1.sup.6 or order 64 from G.sub.0.sup.2 .dotthalfcircle.H.sub.0.sup.2 .orgate.I.sub.0.sup.2 ;
- generating cosets Q.sub.1.sup.6,Q.sub.2.sup.6, and Q.sub.3.sup.6 ;
- decomposing said cosets into four cosets of 16 rows each; and
- decomposing each of said four cosets into four cosets of four rows each;
- (c) select an alternating sequence of such cosets to represent the entire first matrix of equations G.sup.n,
- (d) modify each coset of said alternate sequences with its mixing transforms to determine the nonlinearized second matrix of equations, and
- (e) for each clear text block in the left column to be encrypted, adding modulo 2 to that block, the unique one of the 2.sup.8 8-bit numbers associated therewith in the middle column of the associated equation of the second of 2.sup.8 equations to obtain the encrypted block in the right column.
- 6. A method of encryption by substituting for any one of the 2.sup.n unique clear text blocks of n bit binary numbers an associated unique encrypted block of n bit binary numbers comprising the steps of:
- (a) finding a first matrix G.sup.n of 2.sup.n equations, representing a linear orthomorphism, each equation representing the modulo 2 addition of one of the 2.sup.n clear text blocks in the left column, with a unique one of 2.sup.n n-bit blocks in the middle column to provide an associated unique n-bit block in the right column, all of the equations in the first matrix of 2.sup.n equations being characterized by the vector sum modulo 2 of any number of the equations also being one of the equations in the first matrix, the equations including the identity equation .THETA..sym..THETA.=.THETA. and the remaining 2.sup.n -1 equations being orderable as follows: ##EQU42## where m=2.sup.n -1, where m is not a prime number, L.sub.n, M.sub.n and R.sub.n are the left, middle and right columns respectively, G.sup.n =L.sub.n .times.M.sub.n .times.R.sub.n represents the set of equations;
- (b) modifying a plurality of the non-zero 2.sup.n -1 equations in the first matrix of 2.sup.n equations to provide a second matrix of 2.sup.n equations, representing a nonlinear orthomorphism, the plurality of equations being modified so that the modified plurality of equations collectively map the clear text blocks in the left column to unique encrypted n-bit blocks in the right column, but in a nonlinear manner so that each of the modified equations is not generally the sum modulo 2 of any number of the equations in the unmodified first step wherein said modification of said plurality of the non-zero 2.sup.n -1 equations is achieved by
- (1) selecting a corruptible subgroup of order 4 from G.sup.n with two consecutive rows from the first, linear orthomorphic matrix of equations, said subgroup of order 4 being generally represented as ##EQU43## (2) generating a coset by choosing an equation, represented by index a, x.sub.a-1 .sym.x.sub.a =x.sub.a-p, which is not in said corruptible subgroup of order 4 and adding said equation vectorially to each equation in said corruptible by
- x.sub.a-1 .sym.x.sub.a =x.sub.a-p
- x.sub.b-1 .sym.x.sub.b =x.sub.b-p
- x.sub.c-1 .sym.x.sub.c =x.sub.c-p
- x.sub.d-1 .sym.x.sub.d =x.sub.d-p;
- where x.sub.b =x.sub.a .sym.x.sub.1, x.sub.c =x.sub.a .sym.x.sub.2, x.sub.d =x.sub.a .sym.x.sub.a and similarly for the left and right columns;
- (3) choosing an integer number 1 which divides m and determines values for a mod 1, b mod 1, c mod 1 and d mod 1;
- (4) if any of said values are duplicated, repeat steps (2) and (3) until four different values result;
- (5) generate m/l additional cosets of the form
- x.sub.a+kl-1 .sym.x.sub.a+kl =x.sub.a+kl-p
- x.sub.b+kl-1 .sym.x.sub.b+kl =x.sub.b+kl-p
- x.sub.c+kl-1 .sym.x.sub.c+kl =x.sub.c+kl-p
- x.sub.d+kl-1 .sym.x.sub.d+kl =x.sub.d+kl-p
- where 0.ltoreq.k.ltoreq.m/l-1;
- (6) apply a mixing transform w.sub.kl .sym.w.sub.kl =.THETA. to said additional cosets, wherein w.sub.kl =X.sub.a+kl .sym.X.sub.b+kl to constructively corrupt said additional cosets, yielding the second matrix of 2.sup.n equations; and
- (c) for each clear text block in the left column to be encrypted, adding modulo 2 to that block, the unique one of the 2.sup.n n-bit blocks associated therewith in the middle column in accordance with the associated equation of the second matrix of 2.sup.n equations to obtain the encrypted block in the right column.
- 7. A method of encryption by substituting for any one of the 2.sup.n unique clear test blocks of n bit binary numbers an associated unique encrypted block of n bit binary numbers comprising the steps of:
- (a) finding a first matrix G.sup.n of 2.sup.n equations, representing a linear orthomorphism, each equation representing the modulo 2 addition of one of the 2.sup.n clear blocks in the left column, with a unique one of 2.sup.n n-bit block in the middle column to provide an associated unique n-bit blocking the right column, all of the equations in the first matrix of 2.sup.n equations being characterized by the vector sum modulo 2 of any number of the equations also being one of the equations in the first matrix, the equations including the identity equation .THETA..sym..eta.=.THETA. and the remaining 2.sup.n -1 equations being orderable as follows: ##EQU44## where m=2.sup.n -1, where m is a prime number, L.sub.n, M.sub.n and R.sub.n are the left, middle and right columns respectively, G.sup.n =L.sub.n .times.M.sub.n .times.R.sub.n represents the set of equations;
- (b) modifying a plurality of the non-zero 2.sup.n -1 equations in the first matrix of 2.sup.n equations to provide a second matrix of 2.sup.n equations, representing nonlinear orthomorphisms, the plurality of equations being modified so that the modified plurality of equations collectively map the clear text blocks in the left column to unique encrypted n-bit blocks in the right column, but in a nonlinear manner so that each of the modified equations is not generally the sum modulo 2 of any number of the equations in the unmodified first set, wherein said modification of said plurality of non-zero 2.sup.n -1 equations is achieved by
- (1) selecting a corruptible subgroup of order 4 from G.sup.n with two consecutive rows from the first, linear orthomorphic matrix of equations, said subgroup of order 4 being generally represented as
- .THETA..sym..THETA.=.THETA.
- x.sub.m .sym.x.sub.1 =x.sub.1-p
- x.sub.1 .sym.x.sub.2 =x.sub.2-p
- x.sub.q-1 .sym.x.sub.q =x.sub.q-p
- where x.sub.q x.sub.1 .sym.x.sub.2 ;
- (2) generating a coset by choosing an equation, represented by index a, x.sub.a-1 .sym.x.sub.a =z.sub.a-p, which is not in said corruptible subgroup of order 4 and adding said equation vectorially to each equation in said corruptible subgroup, to generate a coset thereof represented by
- x.sub.a-1 .sym.x.sub.a =x.sub.a-p
- x.sub.b-1 .sym.x.sub.b =x.sub.b-p
- x.sub.c-1 .sym.x.sub.c =x.sub.c-p
- x.sub.d-1 .sym.x.sub.d =x.sub.d-p
- where x.sub.b =x.sub.a .sym.x.sub.1, x.sub.c =x.sub.a .sym.x.sub.2, x.sub.d =x.sub.a .sym.x.sub.q and similarly for the left and right columns;
- (3) choosing an integer number 1=5 and determine values for a mod 5, b mod 5, c mod 5 and d mod 5;
- (4) if any of said values are duplicated, repeat steps (2) and (3) until four different values result;
- (5) taking successive values of k=1,2,3, . . . , generate additional cosets of the form
- x.sub.a+kl-1 .sym.x.sub.a+kl =x.sub.a+kl-p
- x.sub.b+kl-1 .sym.x.sub.b+kl =x.sub.b+kl-p
- x.sub.c+kl-1 .sym.x.sub.c+kl =x.sub.c+kl-p
- x.sub.d+kl-1 .sym.x.sub.d+kl =x.sub.d+kl-p
- continuing until a coset occurs containing an equations which has previously occurred;
- (6) delete a last duplicative coset and choose successively larger values of the k until a new closet is generated;
- (7) repeat steps 9b) (5) and (b) (6) until no more non-overlapping cosets are generated;
- (8) repeat steps (b) (2) to find a new coset containing no previously used equations;
- (9) repeat steps (b) (3) using an integer 1-6, determine values for mod 6, and then repeat steps (b) (4), (b) (5), (b) (6) and (b) (7);
- (10) repeat steps 9b) (9) as desired, using numbers which have no common divisors or until no more new distinct cosets were found;
- (11) apply a mixing transform w.sub.kl .sym.w.sub.kl =.THETA.to said additional cosets, wherein w.sub.kl =X.sub.a+kl .sym.X.sub.b+kl to constructively corrupt said additional cosets, yielding the second matrix of 2.sup.n equations; and
- (c) for each clear text block in the left column to be encrypted, adding modulo 2 to that block, the unique one of the 2.sup.n n-bit blocks associated therewith in the middle column in accordance with the associated equation of the second matrix of 2.sup.n equations to obtain the encrypted block in the right column.
- 8. A block substitution method, comprising the steps of:
- generating a set of linear orthomorphic block substitution equations having rows of equations with each row defining a block substitution operation wherein a first binary value is added modulo 2 to a second binary value to yield a third binary value, wherein said rows of equations having a certain order and wherein each binary value is represented only once within each column; and
- constructively corrupting the linear orthomorphic block substitution equations to yield a set of non-linear orthomorphic block substitution equations by independently rearranging the row order of the first and second binary values while holding the row order of the third binary values fixed and while preserving equality in each row.
- 9. The method of claim 8, wherein said step of constructively corrupting the linear orthomorphic block substitution equations comprises the steps of:
- generating nested sequences of subgroups of block substitution equations;
- generating nested sequences of mixing transforms corresponding to said nested sequences of subgroups;
- successively applying said nested sequences of mixing transforms to said nested sequences of subgroups until all subgroups have been modified.
- 10. The method of claim 8, wherein said step of constructively corrupting the linear orthomorphic block substitution equations comprises the steps of:
- selecting two or more disjoint corruptible subgroups from the set of linear orthomorphic block substitution equations;
- decomposing said subgroups into cosets;
- selecting a sequence of said cosets to represent said set of linear orthomorphic block substitution equations;
- generating a set of mixing transforms corresponding to said selected sequence of cosets; and
- modifying each coset of said selected set of cosets by a corresponding mixing transform, to yield said set of non-linear orthomorphic block substitution equations.
- 11. The method of claim 8, wherein said set of linear orthomorphic block substitution equations includes 2.sup.n rows of equations including the identity equation having subsequent blocks identified by sequential indices 1, . . . ,2.sup.n -1, wherein m=2.sup.n -1 and wherein m is not a prime number, and wherein said step of constructively corrupting the linear orthomorphic block substitution equations comprises the steps of:
- a) selecting a corruptible subgroup of four rows from said set of linear orthomorphic block substitution equations;
- b) generating a coset by selecting an equation which is not in said subgroup and adding said equation vectorially to each row of said subgroup to yield a coset having rows identified by indices a, b, c and d;
- c) selecting a number 1 which divides m;
- d) determining whether a mod 1, b mod 1, c mod 1, and d mod 1 contain duplicates;
- e) if duplicates occur in a mod 1, b mod 1, c mod 1, and d mod 1, rejecting said coset and repeat steps a)-d);
- f) generating m/l additional cosets from said coset by shifting indices by an amount kl, wherein 0<k<m/l-1; and
- g) applying a mixing transform to said additional cosets to yield said set of non-linear orthomorphic block substitution equations.
- 12. The method of claim 8, wherein said set of linear orthomorphic block substitution equations includes 2.sup.n rows of equations including the identity equation having subsequent blocks identified by sequential indices 1, . . . , 2 -1, wherein m=2.sup.n -1 and wherein m is a Mersenne prime, and wherein said step of constructively corrupting the linear orthomorphic block substitution equations comprises the steps of:
- a) selecting a corruptible subgroup of four rows from said set of linear orthomorphic block substitution equations;
- b) generating a coset by selecting an equation which is not in said subgroup and adding said equation vectorially to each row of said subgroup to yield a coset having rows identified by indices a, b, c, and d;
- c) selecting a number 1=5;
- d) determining whether a mod 1, b mod 1, c mod 1, and d mod 1 contain duplicates;
- e) if duplicates occur in a mod 1, b mod 1, c mod 1, and d mod 1, rejecting said coset and repeat steps a)-d);
- f) generating additional cosets from said coset by shifting indices by an amount kl, for successive values of an integer k, continuing until an overlapping coset is generated, wherein an overlapping coset is a coset containing an equation found in a previously generated coset;
- g) discard said coset having an equation found in a previously generated coset;
- h) generate an additional coset using successively larger values of k;
- i) repeat steps g) and h) until no more overlapping cosets are generated;
- j) repeat step b) to find a new non-overlapping coset;
- k) repeat step d) for 1=6, determining values for mod 6 and repeating steps e) - h);
- l) repeat step k) using values for 1 that have no common dividers until no more non-overlapping cosets are generated; and
- m) applying a mixing transform to said additional cosets to yield said set of non-linear orthomorphic block substitution equations.
RELATED APPLICATIONS
This application is a continuation-in-part of application Ser. No. 07/741,097 filed Aug. 5, 1991 which was a continuation-in-part of application Ser. No. 07/416,953 filed Oct. 4, 1989, now U.S. Pat. Nos. 5,214,704 and 5,038,376 respectively.
US Referenced Citations (9)
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
741097 |
Aug 1991 |
|
Parent |
416953 |
Oct 1989 |
|