for posting anouncements...but... ******************************** *Post-Preliminary Announcement:* ******************************** Inspiration: Dogwash was inspired by (some might say stolen from) Bruce Schneier's Blowfish. DogWash: A 128 bit block encryption algorithm/fiestal cipher, product encryption algorithm.... Rounds: The number of rounds can be defined at runtime. The range for the number of rounds is from 0 to 6140. The speed of the algorithm is correlated to the number of rounds used, with 16 rounds being reasonably fast. Keylength: The maximum keylength is determined by the number of rounds. For rounds=0, the maximum keylength is 16 bytes, or 128 bits. For rounds=6140, the maximum keylength is a ridiculous 49136 bytes, or 393088 bits long. For a standard 16 rounds, the maximum keylength is 144 bytes, or 1152 bits. Subkeydata: 64k bytes of high entropy (7.95 bits/char) subkey data are included in a header file. The subkey data is mutated with the key, and the result is used for encryption/decryption. Note that the actual amount of subkey data used is a function of the number of rounds requested. The subkey data is not fixed and may be changed so long as your correspondent is using the same subkey data. (Note: subkey data is later mutated with the session key. I only point out that the subkey data may be changed for those who might want to do that, for whatever reason.) Sourcecode: The program is written in c++. Currently, it requires a compilier that allows a 64 bit unsigned integer addition, %(1<<63). The use of destructors helps ensure that mutated subkey data is automatically destroyed after an encryption or decryption session. However, other risks exist, such as memory being swapped to disk, or the final programmer forgetting to protect his/her key. It should be very easy to convert it to standard C. Description: A PostScript file containing block diagrams and a well written (well, probably better than this) description may become available within the next few months. Security: I believe that DogWash is practically uncrackable, but I haven't the credentials to make such a pronouncement. (The only code I have cracked is the Sunday paper's Cryptogram.) But, unlike blowfish, this is not a fast encryption algorithm.