392 lines
20 KiB
Plaintext
392 lines
20 KiB
Plaintext
|
-------------------------------------------------------------------------------
|
|||
|
|
|||
|
MUTATi0N: Cryptography for Hackers/Phreakers & Others
|
|||
|
=====================================================
|
|||
|
|
|||
|
Version 1.00, Released 7/27/91
|
|||
|
|
|||
|
Written By Professor Falken
|
|||
|
Copyright (c) 1991
|
|||
|
|
|||
|
-------------------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
INTRODUCTION:
|
|||
|
------------
|
|||
|
Mutation was written with the Hacker, Phreaker, Pirateer and Almost-Average
|
|||
|
Joe in mind. Its purpose is to extend highly secure cryptographic systems
|
|||
|
to the end user of the program. This program uses a modified National
|
|||
|
Bureau of Standards DES (Data Encryption Standard) algorithm to achieve
|
|||
|
this purpose. Along with the normal Electronic Code Book cipher there is
|
|||
|
also the option of creating a Block-Chained cipher.
|
|||
|
|
|||
|
I decided to write THIS program because I felt there was an inadequate
|
|||
|
supply of encryption utilities out there. Let me explain, the encryption
|
|||
|
utilities that were in the public domain (Shareware & Copyrighted)
|
|||
|
either employed insecure encryption algorithms or the key (password)
|
|||
|
length was much too short to make cracking it hard. Take Central Point
|
|||
|
Software's "PC-Secure" for example. PC-Secure employs NBS's DES algorithm
|
|||
|
but the key length is limited to 32 characters. While the DES standard
|
|||
|
is safe, a key length of 32 is not all that secure. Not to mention that
|
|||
|
I'm sure Central Point Software put some type of backdoor in the program
|
|||
|
just in case SOMEONE made a ciphertext that NEEDED to be deciphered via
|
|||
|
abnormal means. Another SHAREWARE utility is "The Private Line" the only
|
|||
|
thing private about the ciphers this program makes is they won't be able
|
|||
|
to be read your cat. The Private Line employs DES, however, their key
|
|||
|
length is a miserable 16 characters long. I think my 486-33 could bust
|
|||
|
these ciphers in a matter of weeks. Unlike these previous programs, and
|
|||
|
the hordes of other programs which follow in their footsteps, I am proud
|
|||
|
to release a highly secure, command-lined, low memory overhead, and
|
|||
|
portable cryptographic tool.
|
|||
|
|
|||
|
|
|||
|
BRIEFING:
|
|||
|
---------
|
|||
|
|
|||
|
Mutation has a possible key length of 118 characters for Electronic
|
|||
|
Code Book mode, and 56 characters per KEY for Cipher Block Chaining's
|
|||
|
2 key requirement. Not to mention there are NO known trapdoors written
|
|||
|
into this program. As for the DES algorithm, thats another story
|
|||
|
(See:TRAPDOOR THEORY).
|
|||
|
|
|||
|
Mutation can be used in Electronic Code Book mode, which is the
|
|||
|
default mode if no options are specified, and a Cipher Block Chaining
|
|||
|
mode. The ECB(Electronic Code Book) mode uses only ONE key. A key
|
|||
|
is the password that you want to use to encrypt & thusly also decrypt
|
|||
|
the file with. While ECB only uses ONE password, CBC(Cipher Block
|
|||
|
Chaining) uses TWO passwords to encrypt the file with.
|
|||
|
|
|||
|
The files you wish to encrypt can be really anything. A list of
|
|||
|
telephone numbers, friends names, passwords for various systems,
|
|||
|
technical notes, where you hid the dead body etc. You can really
|
|||
|
encrypt anything. However, I would recommend at this time to stay
|
|||
|
away from encrypting EXE & COM files. There is a small bug in the
|
|||
|
program which will add a few bytes to the end of each file. While
|
|||
|
this will not effect the output of an ASCII file, it may mess up an
|
|||
|
EXE/COM file. I hope to fix this bug in upcoming versions.
|
|||
|
|
|||
|
|
|||
|
USING THE ECB OPTION:
|
|||
|
-----------------------
|
|||
|
|
|||
|
In order to invoke the ECB option (default) of Mutation, all that
|
|||
|
is needed is knowing whether you wish to ENcrypt(+) or DEcrypt(-) the
|
|||
|
file, what password(KEY) you wish to use, and the INCOMING filename
|
|||
|
and what the OUTGOING filename should be. For instance, I wish to ENCRYPT
|
|||
|
a file called TELEFONE.DOC, I will use "fatcuntwhorecumbelchinggutterslut"
|
|||
|
as my password. I suppose I will output the ENCRYPTED text to a file called
|
|||
|
TELEFONE.DOC . You see, this makes sure that the original text is
|
|||
|
OVERWRITTEN and never seen again. Here's how its done:
|
|||
|
|
|||
|
C:> m + fatcuntwhorecumbelchinggutterslut <telephone.doc> telephone.doc
|
|||
|
|
|||
|
C:>
|
|||
|
OK, so now you have this nice file called TELEPHONE.DOC which looks
|
|||
|
so messed up, if you didn't know better, you'd swear its the face of
|
|||
|
your neighbors crack-smoking child.
|
|||
|
|
|||
|
So, after an amount of time elapses you decide you need a telephone
|
|||
|
number out of that file. No problem. Enter:
|
|||
|
|
|||
|
C:> M - fatcuntwhorecumbelchinggutterslut <telephone.doc> telephone.dec
|
|||
|
|
|||
|
C:>
|
|||
|
Now, you can read TELEPHONE.DEC and get the phone number you need.
|
|||
|
But, if you noticed, I used a DIFFERENT filename for DECRYPTING the
|
|||
|
file. The reason for this is just in case I fucked up the KEY and
|
|||
|
it OVERWROTE my encrypted file with the incorrect decrypting KEY.
|
|||
|
So when I check out telephone.dec and see that it is FINE! I can then
|
|||
|
rename telephone.doc to something else, copy some bullshit file over
|
|||
|
its place, then erase it. See that way no one will be able to match
|
|||
|
your enciphered text with your deciphered text and figure out your key.
|
|||
|
See how easy it was?!
|
|||
|
|
|||
|
USING THE CBC OPTION:
|
|||
|
---------------------
|
|||
|
< NOTE: CBC IS NOT AVAILABLE IN VERSION 1.00 OF MUTATi0N >
|
|||
|
< COMING VERSIONS WILL HAVE CIPHER BLOCK CHAINING ENABLED >
|
|||
|
|
|||
|
|
|||
|
The Cipher Block Chaining option is a little bit different from the
|
|||
|
ECB option, not to mention a bit more secure(See TECHNICAL SPECS.& NOTES).
|
|||
|
CBC requires you to enter TWO passwords(KEYS). Lets say we wish to use
|
|||
|
CBC on a file called TECHNOTE.DOC, we will use
|
|||
|
"everyonewantstobeabigshottheres" & "toomanychiefsandnotenoughindians"
|
|||
|
as the two passwords. We will output our ciphered-text to a file called
|
|||
|
TECHNOTE.DOC
|
|||
|
|
|||
|
C:> M + <cbc> everyonewantstobeabigshottheres toomanychiefsandnotenoughindians
|
|||
|
<technote.doc> technote.doc
|
|||
|
|
|||
|
C:>
|
|||
|
Notice that all that text overran the current line and splashed down
|
|||
|
onto the next. This is NO PROBLEM. Mutation will use up the WHOLE
|
|||
|
command line for incoming keys/filename etc... So if you have a pretty
|
|||
|
long password/s don't worry about it wrapping over, just be sure to
|
|||
|
leave enough room for the filenames. NOTE: Names without extensions
|
|||
|
(IE ibmbios. ) ARE valid in Mutation.
|
|||
|
|
|||
|
Ok, so you have this NICE enciphered text. I bet you would like to
|
|||
|
read it later huh?! Well, remember your KEYS, else your screwed.
|
|||
|
Ok, LETS DECRYPT!
|
|||
|
|
|||
|
C:> M - <cbc> everyonewantstobeabigshottheres toomanychiefsandnotenoughindians
|
|||
|
<technote.doc> technote.dec
|
|||
|
|
|||
|
C:>
|
|||
|
Thats how its done. No problem huh?! Once you verify that technote.dec
|
|||
|
came out correctly be sure to overwrite/rename/etc. the encrypted
|
|||
|
ciphertextfile before going on.
|
|||
|
|
|||
|
TECHNICAL SPECIFICATIONS & NOTES:
|
|||
|
---------------------------------
|
|||
|
|
|||
|
The Data Encryption Standard Algorithm was conceived by IBM
|
|||
|
in 1977 and was adopted by the National Bureau of Standards as
|
|||
|
the nations Encryption Standard. The Data Encryption Standard
|
|||
|
Algorithm is a block cipher that enciphers identical eight-byte
|
|||
|
plaintext blocks into identical eight-byte ciphertext blocks.
|
|||
|
Or more technically: it transforms an input block (file) into a
|
|||
|
string of output bits of fixed length(output file). The
|
|||
|
enciphering/deciphering functions are such that every bit in the
|
|||
|
output block depends jointly on every bit in the input block and
|
|||
|
on every bit in the password. This DES algorithm is also known
|
|||
|
as the Electronic Code Book (ECB).
|
|||
|
|
|||
|
Certain files exhibit great regularity, with many identical
|
|||
|
eight-byte blocks (for example, a memorandum always begins with
|
|||
|
TO: ). Normally under ECB encipherment, such identical blocks
|
|||
|
of plaintext yield identical blocks of ciphertext (when using
|
|||
|
the same key). Repetitions of some other blocks may also be
|
|||
|
visible; for example, telephone numbers in the plain text when
|
|||
|
aligned with the eight-byte DES blocks, can be recognized as
|
|||
|
identical in the ciphertext. It is doubtful whether this
|
|||
|
phenomenon is a serious weakness: to date no technique has been
|
|||
|
found which uses it to determine the password or obtain usable
|
|||
|
plain text of alphabetic/numeric files. However, if the existence
|
|||
|
of identical blocks can be concealed, a cryptographic system is
|
|||
|
strengthened at least intuitively, because the amount of information
|
|||
|
available to the cracker is reduced. This is where Cipher Block
|
|||
|
Chaining comes in handy.
|
|||
|
|
|||
|
By using Mutation's Cipher Block Chaining option it is possible
|
|||
|
to use DES in such a manner that identical eight-byte plaintext
|
|||
|
blocks virtually always yield different ciphertext blocks, without
|
|||
|
altering the security of the existing algorithm. Thusly if you are
|
|||
|
encrypting a file that has a lot of repetition (IE- Indented source
|
|||
|
code, Spreadsheet, Listing) please use CBC to strengthen the code.
|
|||
|
However, as in life for every GOOD there is an EVIL, the CBC is
|
|||
|
easily cryptanalyzed on the basis of a moderate amount of ciphertext.
|
|||
|
You see, from enough enciphered short blocks, a cryptanalyst could
|
|||
|
recover the key, and then decipher each individual short blocks.
|
|||
|
But, I am not here to analyze various cipher systems, I'm here to
|
|||
|
teach the use of this product.
|
|||
|
|
|||
|
CRYPTANALYSIS OF THE DES ALGORITHM:
|
|||
|
-----------------------------------
|
|||
|
|
|||
|
So you ask, "Is DES crackable?" Well from a time standpoint, YES.
|
|||
|
But before you say "WHAT? I thought NO ONE could read it!" lets ask these
|
|||
|
questions:
|
|||
|
|
|||
|
1. Is it reasonable to assume that an opponent can obtain the
|
|||
|
required information to decipher the ciphertext. (IE-Finding them
|
|||
|
written down, extracting them from your head, etc.)
|
|||
|
2. What is the computational COST of the attack?
|
|||
|
(IE- How much manpower, fast enough computing facilities etc..)
|
|||
|
3. How much time does it require?
|
|||
|
(Can my opponent wait 30,000 years for the cracking of my text?)
|
|||
|
|
|||
|
So it while it is TRUE that someone will be able to read your
|
|||
|
ciphertext, I really don't think they will care 10,000 years from now
|
|||
|
anyhow. But, just for the hell of it lets make a worst case hypothetical
|
|||
|
situation(I hate them). First, lets assume you have made a CBC cipher
|
|||
|
with two keys 55 characters per key. Second off, we MUST assume, that
|
|||
|
for some reason you have pissed off the WRONG people in the government
|
|||
|
(namely the people that effectively OWN the modified Cray Y-MP that
|
|||
|
the National Security Agency has) and they deem it necessary that they
|
|||
|
devote 100% of the computing resources to cracking your file. Third,
|
|||
|
we must assume your DEAD else, they would have used sodium-penathol
|
|||
|
a long time ago to get the KEY from you. Fourth- These government
|
|||
|
people plan on having their jobs AFTER the current administration leaves
|
|||
|
the White House. If all these pre-conditions are met, WELL, your up
|
|||
|
chunky-shit creek without a paddle. Because probably in 3-4 years
|
|||
|
they will have deciphered it.
|
|||
|
|
|||
|
If DES keys were tested at the rate of one per 60 microseconds, the
|
|||
|
key trial would require in excess of 68,000 years. However, as critics
|
|||
|
are quick to point out: Massive parallelism and pipelining, the time to
|
|||
|
recover a key can be reduced to any value. In a pre-calculated scenario
|
|||
|
properly combining precomputation, a machine can be constructed that
|
|||
|
would recover the key with high probability in one day. The estimates
|
|||
|
of the cost are $5,000,000 with a precomputation time of 2 years.
|
|||
|
Even if these estimates are accepted, the way DES would normally be
|
|||
|
used, with Cipher-Block Chaining & Initial chaining value, would negate
|
|||
|
the advantage gained in the time-memory tradeoff. Thusly, it is VERY
|
|||
|
questionable if any organization would risk an investment of 5 million
|
|||
|
dollars and two years of precomputation under these circumstances.
|
|||
|
So really, your ciphers are very safe.
|
|||
|
|
|||
|
|
|||
|
TRAPDOOR THEORY:
|
|||
|
----------------
|
|||
|
|
|||
|
Some critics of DES are leery about the methods of analysis used
|
|||
|
by IBM to validate the DES, and all such methods used by the National
|
|||
|
Security Agency, have been [CLASSIFIED] by the U.S. Government.
|
|||
|
Therefore, some critics have inferred that one cannot be sure that the
|
|||
|
statements by IBM and NSA about DES are as claimed. You see, the
|
|||
|
National Security Agency advised the designers that certain design
|
|||
|
criteria were considered by the agency to be sensitive. IBM was
|
|||
|
requested not to publish the selection criteria. Critics have
|
|||
|
suggested that special properties might have been incorporated into
|
|||
|
the design of the substitutions and permutations (aka Trap Doors)
|
|||
|
which would give a cryptanalytic advantage to a knowledgeable
|
|||
|
party. No proof can be offered to refute the existence of trap
|
|||
|
doors. Even if IBM, the National Bureau of Standards, or the
|
|||
|
National Security Agency were to reveal the criteria, there would
|
|||
|
undoubtedly be critics who would suggest that not all were revealed.
|
|||
|
The BOTTOM LINE is that after nearly 11 years of scrutiny, no
|
|||
|
viable method of cryptanalyzing DES has been discovered and published.
|
|||
|
Bell Telephone Laboratories & the Lexar Corporation examined the
|
|||
|
properties of the substitutions and permutations. While the Lexar
|
|||
|
Corporation reported some "peculiar" properties of the substitution
|
|||
|
boxes, to date, no feasible cryptanalytic for DES has been found.
|
|||
|
To keep the public happy, the Senate Committee on Intelligence
|
|||
|
conducted an investigation into the matter. The following summarizes
|
|||
|
the conclusions that were reached:
|
|||
|
1. DES is more than adequate for its
|
|||
|
intended applications.
|
|||
|
2. IBM invented and designed DES.
|
|||
|
3. NSA did not tamper with the design.
|
|||
|
4. NSA certified that the DES was free
|
|||
|
of any known statistical/mathematical
|
|||
|
weakness.
|
|||
|
5. NSA recommended that the Federal
|
|||
|
Reserve Board use DES for electronic
|
|||
|
funds transfer applications.
|
|||
|
|
|||
|
So if there is a TRAPDOOR or not, I really doubt they would risk
|
|||
|
releasing of their trapdoor to the public & intelligence community
|
|||
|
at large just to decipher some piss on the wall hackers file (Their
|
|||
|
point of view).
|
|||
|
|
|||
|
PASSWORD LENGTH:
|
|||
|
----------------
|
|||
|
|
|||
|
In the past there has been a tendency among users of cryptographic
|
|||
|
systems to use a word or a name as a key. Today this procedure is
|
|||
|
VERY unsafe. There are a fewer than a million words in an unabridged,
|
|||
|
and fewer than a million names in the largest telephone directory.
|
|||
|
That number of potential keys could be tested in a few minutes on a
|
|||
|
powerful computer of today. Even the use of eight randomly chosen
|
|||
|
ASCII characters is unsafe. If a DES key is introduced directly,
|
|||
|
it should consist of 32 or MORE ASCII characters
|
|||
|
(IE-A-Z,a-z,0-9,and punctuation, and ALT-key combinations). You see
|
|||
|
by having Mutation being able to use 118 bytes of password, the user
|
|||
|
might, for example, enter several words chosen randomly and
|
|||
|
independently from an unabridged dictionary. Or the user may enter
|
|||
|
some phrase from a song or TV commercial. It is essential that these
|
|||
|
choices be made in such a way that the key cannot practically be found
|
|||
|
by an opponent, either by guesswork or by enumerating some plausible set
|
|||
|
of keys.
|
|||
|
|
|||
|
HINTS & EXTRAS:
|
|||
|
---------------
|
|||
|
< NOTE: CIPHER BLOCK CHAINING (CBC) IS NOT AVAILABLE FOR >
|
|||
|
< VERSION 1.00 OF MUTATi0N, FURTHER RELEASES WILL FIX THIS >
|
|||
|
|
|||
|
Mutation in ECB mode can use KEYS up to 118 characters in length. In
|
|||
|
CBC mode, it can use TWO KEYS, with a maximum of 56 characters per key.
|
|||
|
That is assuming your using one letter filenames. Example:
|
|||
|
C:> m + <cbc> passwordOne passwordTwo <A> B
|
|||
|
This would give you A. as your input file and B. as your output file.
|
|||
|
|
|||
|
The LARGER the password you use, the STRONGER the ciphertext becomes.
|
|||
|
So a 118 character password is MUCH better than a 70 character password.
|
|||
|
However, in Block Chaining, having two 56 character passwords are even
|
|||
|
STRONGER than one 118 character password.
|
|||
|
|
|||
|
For the STRONGEST ciphertext possible, I suggest using Cipher-Block
|
|||
|
Chaining, with 56-char. passwords. Note, that you could use a
|
|||
|
100-character password for KEY1 and a 18 character password for KEY2.
|
|||
|
Or a 34-character password for KEY1 and an 84-character password for KEY2.
|
|||
|
Just realize that the numbers can be swapped around, and just make sure
|
|||
|
its as long as possible for the STRONGEST text.
|
|||
|
|
|||
|
Sometimes making the LONG password is about as much bother as it
|
|||
|
will be for someone trying to break it. Here are some ideas for
|
|||
|
making up these LONG keys:
|
|||
|
1. Sentences from books.
|
|||
|
2. Phrases from obscure songs.
|
|||
|
3. TV/Radio Commercials.
|
|||
|
4. A column from an old newspaper.
|
|||
|
5. Make up a short story.
|
|||
|
6. Make faces with the ASCII chars. :0 :) ;) etc.
|
|||
|
|
|||
|
I'm sure you can think of other things to write about, like maybe
|
|||
|
your first screw, but that may too personal, incase someone breaks it.
|
|||
|
|
|||
|
ALSO make sure you PROPERLY dispose of the ENCRYPTED filename, that
|
|||
|
you just decrypted. First copy a file over, then another, then to be
|
|||
|
safe, copy another, then rename the fucker, THEN erase the SOB.
|
|||
|
|
|||
|
It would also be nice to have this program setup in your PATH.
|
|||
|
So that you can encipher stuff all over your harddrive! When the nice
|
|||
|
men in jackets come to borrow your computer don't let them have all
|
|||
|
your data that easily.
|
|||
|
|
|||
|
CONCLUSION:
|
|||
|
-----------
|
|||
|
|
|||
|
This documentation is A LOT longer than I intended it to be. In fact
|
|||
|
I shouldn't have written all that, I probably confused a lot of the
|
|||
|
readers. Oh well, you should be able do discern how to run the thing
|
|||
|
from the previous text and the small example built into the program.
|
|||
|
|
|||
|
I would now like to thank Legions of Lucifer-Phuck for releasing
|
|||
|
this product on their intercontinental distribution system. I really
|
|||
|
helps a program when it has access to a WIDE dispersal network. Again,
|
|||
|
thanks LoL-PHUCK.
|
|||
|
|
|||
|
Earlier, I mentioned 'portability' of this code. The code is in 'C'
|
|||
|
and is quite portable, but I am not releasing the code for various
|
|||
|
reasons. First, there is the possibility that someone will be able to
|
|||
|
figure out how the DES code was modified by myself, and secondly
|
|||
|
I plan to release this on AMIGA & MAC computers. I plan on having the
|
|||
|
AMIGA version out sometime in the summer of 91'. The MAC will have
|
|||
|
to wait a few more months.
|
|||
|
|
|||
|
Anyhow, greets go out to: All X Legion of Doom members hanging out
|
|||
|
and around, P/H/A & Doctor Dissector (KC3.0 is the BEST!), Prometheus,
|
|||
|
Sir Hackalot, Ex-Phortune 500s UNITE!, Shawn-Da-Lay Productions -
|
|||
|
Wheres the NEW version of Telix Hacker?!!, Brew Associates Where RU?,
|
|||
|
L.E. Pirate(What happened to Dragonfire?!oh no)(What Cult of the Dead
|
|||
|
Cow?), The Rebel(716), 2600 Magazine(About time I get that damn
|
|||
|
subscription information-1.5 months later), Phrack Magazine, Mondo 2000
|
|||
|
Magazine (Wheres my subscription fuckers?), Twisted Sector, The Ranger,
|
|||
|
The Viper, Slavelord, and all the others who give me phree file points...
|
|||
|
Not that I am partial to people who give me free points or anything.(haha)
|
|||
|
|
|||
|
And for EVERYONE who I left out- YOU TOO!
|
|||
|
|
|||
|
Anyhow, this ends this SUMMERs(1991) IBM program release schedule for
|
|||
|
me. Hopefully, you will see something from me sometime soon, other than
|
|||
|
updates to this and CNA Inquiry.
|
|||
|
|
|||
|
Programs released to date:
|
|||
|
1. Automated CNA Finder (1989)
|
|||
|
2. Phreak Tools v1.x (1989)
|
|||
|
3. CNA Inquiry v2.x (1991)
|
|||
|
4. MUTATi0N v0.x Beta (1991)
|
|||
|
|
|||
|
- Professor Falken
|
|||
|
= Ex-Legion of Doom!
|
|||
|
= Ex-Phortune 500
|
|||
|
|
|||
|
|
|||
|
|
|||
|
MUTATi0N - Version 1.00
|
|||
|
Conceived & Written by Professor Falken 6/91
|
|||
|
Copyright (c) 1991 Released by Legions of Lucifer-Phuck
|
|||
|
|