home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: sci.crypt
- Path: sparky!uunet!walter!att!linac!pacific.mps.ohio-state.edu!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!destroyer!gumby!yale!mintaka.lcs.mit.edu!hal.gnu.ai.mit.edu!knight
- From: knight@hal.gnu.ai.mit.edu (Knight of Tossing and Turning)
- Subject: mcrypt key/matrix generation
- Message-ID: <1992Aug13.153842.24060@mintaka.lcs.mit.edu>
- Summary: details of mcrypt 'key' generation
- Keywords: key mcrypt Mass Encryption
- Sender: news@mintaka.lcs.mit.edu
- Organization: It doesn't look like much, but its improving.
- Date: Thu, 13 Aug 1992 15:38:42 GMT
- Lines: 73
-
-
- This is the post to the creation method of the "Encryption Grid" of
- "Mass Encryption" aka mcrypt. Thank you the 20 or so people who sent
- me very constructive mail yesterday. I'm attempting to break this
- down into scientific method so that I don't have to retrace steps
- along the way.
-
- I created this hypothosis to use as a guideline. I realize that
- DES often produces "alternative" strings that will decrypt identically.
- Such that "DOG" could be the same as "% x!(( l". This statement is
- pretty blunt and if you can spot the gaping hole in my logic please
- let me know.
-
- HYPOTHOSIS:
-
- For password string "X", and distribution of "X" in a 32 * 32
- matrix is represented by the function GENKEY, and that X
- is an ASCII combination from 1-1024 digits, and that SET of X
- consists of all possible ASCII combinations from 1-1024,
-
- The least most vulnerable method of distribution would be:
-
- GENKEY(X) != GENKEY(SET of X excluding X)
-
- So that all generated keys of X are not identical to any other
- cases of the SET of X.
-
- The most blunt but valid example of this would be
-
- (4x4 matrix, password "china")
-
- 1 2 3 4
- 1 C H I N
- 2 A *
- 3
- 4
-
- Where * is a NON-ASCII value, computed by third letter of the
- password + 128 ($80).
-
- This preserves length, and qualifies that each result of
- GENKEY(SET of X) is an original value.
-
- The rest of the grid can be generated from happenstance values
- from manipulation of characters from the password characters that
- make up X. A few formulas would be:
-
- matrix[x,y]=( ( 1 / ordinal ( X[current])) * 1000) % 256
- matrix[x,y]=(pi * 10^ordinal(x) ) % 256
- matrix[x,y]=(X[current-1]^(e*(1/current-2)*(X[current%length(X)])) % 256
-
- So that the remaining grid is filled with these values. As long
- as the rows and columns are not altered, and that the original
- password line followed by the non-ascii character are not altered,
- the matrix will remain unique to this varient of GENKEY(X) for
- all cases of X.
-
- Next, after the completion of the grid, the grid is examined
- for 0 and 255 values ($00 & $FF) I'm considering eliminating this
- step as it creates an unnecessary burdon to the system, and cuts
- the permutation set much father then it has to be.
-
- Finally, this grid is fed into the bit substitution scheme and then
- ultimately discarded completely, as re-feeding the password will
- be able to generate the unique key in order to create the proper
- file.
-
- Total permutations for the GENKEY() function = 95 ^ (1024!).
- I'm fairly sure my 386 is incapable of finding out what this number
- is in any reasonable length of time.
-
- --- Eric Knight
-
-