📄 wnstorm.doc
字号:
White Noise Storm (tm)
Copyright (C) 1992,1993,1994 by Ray (Arsen) Arachelian
All Rights Reserved, General Technical Data Restricted.
Software License:
This software is subject to the following license. Any use
or distribution of this software indicates agreement to
this license.
This software may be freely distributed by any means,
on any media as long as it is distributed completly along
with all its supporting files (documentation, etc.) without
modifications. This program may not be sold, in part or
whole without the express permission of the author, however
the media on which this program is distributed may be sold
(as in a shareware collection, etc.) as long as no money
is specifically charged for this software. This software
is hereby distributed as freeware and no shareware fee is
requested for its use.
Due to ITAR export restrictions on cryptographic software,
this software may not be exported out of the United States
of America until such time as these restrictions are
removed.
Modifications of this program may be distributed so long as
the copyright notices are left intact, and the modified
version(s) of this software are marked as such. The author
of this software retains the copyright and all rights to
any modified version of this software. Modifications of
this software are not copyrightable by others.
The source code of this program may not be included in any
other software packages, in part or whole without the
expressly written authorization of the author. Please feel
free to contact the author if you would like to use this
code in your programs as I would most likely grant you that
right.
The author is not resposible for any damage(s) or losses
occuring from the use of this product, or any errors
contained within this software and/or its documentation.
This program is distributed "as is" and the user uses it at
his/her own risk. The author disclaims all warranties,
express or implied, and may not be held liable for any
damages or consequences arising from the use of this
software.
Should any part of this license be found invalid, it will
not invalidate the whole license, but rather only that
part.
The names "White Noise Storm", "WNSTORM" and "WNINJECT" are
trade marks of the author refrerring to this software. Any
commercial products mentioned in this software and this
document maybe trademarks, copyrighted, or owned by their
respective owners.
- LICENSE -
-
USAGE:
=======
WNSTORM {COMMAND} PLAINTEXT CYPHERTEXT PASSKEY {OPTIONS}
The possible commands are
E - Encrypt (IE: WNSTORM E MYTEXT.TXT MYCRYPT.TXT "MyPasskey Phrase"
D - Decrypt (IE: WNSTORM E MYTEXT.TXT MYCRYPT.TXT "MyPasskey Phrase"
The Plaintext is the file pathname of the plaintext file to encryt.
The Cyphertext is the file pathname of the output file.
The Passkey is the passkey (password) to encrypt/decrypt the file
with. If this is to contain spaces, you should put quotes around it
as shown in the examples.
The possible options are:
-Sx Max Window Size: This option sets the maximum window size for
the encryption. If you specify the -N option,
you must provide this option for the decryption.
-S5 is the default, -S3 is the minimum, -S31
is the maximum. This option has a large effect
on the size of your cyphertext. -S10 will give
you a cyphertext of approximatly five times the
original plaintext.
-N No Header: This option implements the stealth mode which
removes the signature header from an encryption.
To decrypt a stealth mode cyphertext, you must
append the -N option and the -Sx option if one
was provided durring encryption. Without the
header WNSTORM cannot know what -S option was
choses, though it will default to 5.
-V View Statistics: This option will only work for encryption, and
will display several screens of statistics
when the operation is completed.
-T Trace: This option will provide a detailed channel
by channel trace of the bit locations as the
plaintext is encrypted or recovered.
-B BitFix: This option will invoke a statistical bit fix
command that will fix up the number of 1 or 0
bits (and possibly their values) in a window
which were replaced by the cyphertext bits.
This option will only work for encryption.
- USAGE 1 -
-RF:file RND file This option will let WNSTORM use a datafile
whose name is specified instead of the
random number function. The file should be
large enough to hold all the cyphertext that
WNSTORM will insert in the stream. A good
measure will be the size of the plaintext
file multiplied by the half of the maximum
window size specified by the -S option. This
option is useful for steganographic processing
of the lower bits of a sound, image, etc.
-RD:dev RNG device This option is similar to the -RF option,
however instead of a file, the data is to
come from a device "dev". For instance if
you had a random number generator attached
to the COM1 device that returns random
numbers at a rate of 2400 bps, which you'd
like WNSTORM to use instead of the Borland
C rand() function, you should use
-RD:COM1:2400 as an option.
-O Old method. Encrypt a file using the old
method from version 1.01.
Steganography is the science of hiding information in a medium where it
will not be noticed. For instance durring WWI and WWII, it was illegal
for a childs like drawing to be mailed or passed from person to person,
because it could contain hidden meanings or symbols. A classic example
of this is a child's drawing of a ship on water. Since the water can
be a set of wavy broken lines, some long, some short, it can contain
Morse code! WNSTORM is useful in aiding steganography.
For Stegonography, you will also need two programs that remove the least
significant bytes of a picture, sound or movie file, (or least significant
bits if an abundance of data is available,) and put them in a file.
You would then use that file as your source of random numbers using the
-RF:filename -N, and -Sx options. You'd then take the cyphertext produced
by WNSTORM and inject it back into the least significant bytes (or bits) of
your picture, sound, movie, etc. The person receiving the file would then
use the same program to extract the LSB's from the picture, sound, movie,
etc. and use WNSTORM to decrypt your hidden message.
I and possibly others, will write short remove/inject programs for various
data formats for sounds and images such as PCX, TIFF, VOX, AIFF, etc which
could be used with WNSTORM.
- USAGE 2 -
White Noise is the name given to the sounds one would hear if he tuned in
to a radio or tv station that was not transmitting anything. Hence
in computer terms White Noise simply means random data, not containing
any meaning what so ever.
The principle behind White Noise Storm Encryption mentioned from here
on as WNSTORM is hiding encrypted data inside a storm of random data.
The system consists of active data channels, which following a certain
formula will constantly switch themselves within a window of x characters.
The size of this window will also varry based on one of the data channels
called "command." The command channel contains hidden commands for the
next pass. The commands are simply decisions which change one of the
channels or the size of the command window in the next data window.
In simple English the command channel commands mean one of the below:
For the next window, the first data channel will be xxxx
For the next window, the second data channel will be xxxx, etc.
For the next window, the command channel will be xxxx
For the next window, swap the xth data channel with the yth data channel.
For the next window, rotate, swap, interlace, the data channels.
For the next window, the window size will be xxxx characters long.
In this version of the program, the data is recursivly encrypted.
Although the source code may not show recursion, the data is encrypted with
the password, a passkey code which is derived from the password, the
position of the current password letter, and the past decrypted password key.
For each window, the data stream is first "seeded" with random garbage
data, the character is encrypted, the command channel is chosen, and
the encrypted character is then split up into eight data channels. Each
of these data channels contains one bit of the plaintext character.
Since each data character is encrypted with the previous data character
as well, if decryption fails for one character, all future characters to
be decrypted will also fail, thus producing garbage.
The simple data pre-encryption scheme of encoding the text with the
passkey and the previous character may be replaced or fortified by other
formal data encryption methods such as DES, IDEA, RSA, etc.
The size of the character window, the command channel, and the data channels,
are chosen before the encryption begins, with a function called "seedpassword"
which uses the password and the passkey (which it generates based on the
password.) Thus if a wrong password is chosen, the channels, window size,
location of the eight data channels, and future positioning of these
channels will not match, and decryption will not be possible.
- Theory 1 -
Further more, while the data channel bits may not overlap one another,
several of these may occupy the same byte. For added security, the
command channel is actually the whole window, random numbers included.
The reason for this is to prevent an attack where the cyphertext is
modified bit by bit to reveal which bits are used. In other words,
every bit in the window is used.
Thus we need at least two characters for a minimum window size to generate
a window: the eight data bit channels, the command channel. However,
for security reasons, probability would show that if we were to use the
minimum size window, it would be fairly easy to usea brute force method
to figure out which channels do what. Therefore the minimum window size
limit this software uses is 3 bytes, so that we allow the possibility for
the window to change between 2 and 3.
Also there is the possibility that when the window size changes, we may
have one channel (data or command) which would move outside the range of
the new window size as can be seen in figure 3, pass 4 and pass 5. In
such a case, the command decypher code (figure 1,2) will also correct
this error by moving the channel so that it would fit within the window.
Figures 1 and 2 on this page show block diagrams of the operations performed
for encryption and decryption.
ENCRYPTION DIAGRAM: DECRYPTION DIAGRAM:
=============================== =====================================
[ seed password & ] [ seed password & ]
[ select channels ] [ select channels ]
| |<-----------------+
[ seed window with ] [ read window ] |
[ random data ] | |
|<-----------------+ [ Join data channels ] |
[ read a character ] | | |
| | [ Decrypt character ] ^
[ encrypt it ] | | |
| | [ Write character ] |
[ split it into the] | | |
[ data channels ] ^ [ Decypher command ] |
| | [ and select new ] ^
[Write the window ] | [channels or window ] |
| | [size. ] |
[Decypher command ] | | |
[and select new ] | | |
[channels or window] ^ +---------->-------+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -