 Windows Encryption Toolkit v2.x

 (c) 1995-1996 by: MaeDae Enterprises

5805 Prospero Road

Peyton, CO 80831 USA

Voice: (719) 683-3860   FAX: (719) 683-5199

Royalty free secure encryption DLLs for Windows!

The Windows Encryption Toolkit (WET) is a data protection toolkit featuring secure encryption and decryption DLLs.  All distribution is royalty free with your products.  This includes our secure Data Encryption Standard (DES) plus cipher block chaining (professional version only) DLLs.  Both 16 bit DLLs for Win v3.1 and 32 bit DLLs for Win95/NT are provided.

Features and file list

System requirements

Program license

Introduction

Installation

WET Standard Edition functions

WET Professional functions

How to use DLLs

Tutorial

Advanced features

Troubleshooting

Additional information

Glossary

Note:  Distribution of WET Pro with DES is limited to USA and Canada due to USA DES export restrictions.


FEATURES AND FILE LIST

The Windows Encryption Toolkit (WET) is a powerful, high performance encryption/decryption toolkit for Windows v3.1/Win95 that goes beyond any comparable data protection product:

•	Standard version supports XOR, transposition, and substitution

•	Professional version adds Data Encryption Standard (DES) plus cipher block chaining on top of all that the standard version provides

•	Encryption keys can be any combination of letters, numbers, words, or phrases (including spaces) of any length.

•	Generates keys over 1000 characters in WETs substitution method; uses your key as the seed for the much longer key.

•	Provides error detection using 16 bit cyclic redundancy checks (CRCs)  implemented using a high speed lookup table

•	Data can be encrypted using any combination of methods, in any order, any number of times (many programs allow only one method or layer of encryption.

•	There is no limit on the data type (e-mail messages, .EXE, source code, etc.)

•	WET is provided as 16 bit and 32 bit DLLs that can be used with virtually any Windows based language

•	WET Pro  provides the standard WET DLL plus a second DLL for DES and DES with cipher block chaining.

•	Save many man-months of effort by using our off -the-shelf DLLs

•	No royalties or run time fees

•	And do it all without cryptic commands!

A few of the most important files are listed below:

•	WET.C - Example of using WET from the C language (C++ is easy also!)

•	WET.H - Header file defining all WET Standard Edition and Professional Edition Functions

•	WETEXE16.EXE - Demo of WET.C compiled for 16 bit operation

•	WETEXE32.EXE - Demo of WET.C compiled for 32 bit operation

•	WETSTD16.DLL - 16 bit XOR, transposition, and substitution DLL

•	WETSTD16.LIB - Library file to automatically load the DLL

•	WETSTD32.DLL - 32 bit XOR, transposition, and substitution DLL

•	WETSTD32.LIB - Library file to automatically load the DLL

•	WETDES16.DLL - 16 bit Data Encryption Standard (DES) DLL

•	WETDES16.LIB - Library file to automatically load the DLL

•	WETDES32.DLL - 32 bit Data Encryption Standard (DES) DLL

•	WETDES32.LIB - Library file to automatically load the DLL

•	WET.HLP - This help file that you are reading for general WET usage

•	SECURITY.HLP - Security manual covering important encryption issues


SYSTEM  REQUIREMENTS

WET runs on any computer running Microsoft Windows.  Minimum system requirements are:

•	IBM PC/AT, PS/2 or fully compatible computer

•	12 MHz 80286 or better CPU recommended

•	One 5 ¼" or 3 ½" floppy disk drive with 200 KB free space

•	Two floppy disk drives or one floppy and a hard disk recommended

•	EGA or better video adapter and display

•	Color VGA recommended

•	IBM or Microsoft Disk Operating System (DOS) version 4.0 or higher

•	Microsoft Windows 3.1 or higher


PROGRAM LICENSE

The printed Reference Manual and associated registered software may not be copied, resold, reproduced, disclosed, archived, transmitted, or transferred in any form, electronic or otherwise, without the express written permission of MaeDae Enterprises.  You may freely distribute the Shareware version of WET.  Registered users may freely distribute WET's standard encryption DLL with their products.  Export restrictions apply to WET Pro's DES DLL due to export restrictions.

The WET DLLs provide the same quality encryption routines as those used in our Encrypt-It for Windows and DOS.  These routines have been tested by thousands of registered Encrypt-It users.  We have recently provided these quality encryption/decryption routines to the general public in the form of WET.  Please let us know of other functions you would like us to provide.

REGISTERED USERS:  (those who paid us for this product)

MaeDae Enterprises hereby grants a "book" license to the original individual user (even if purchased by a company) of this copy of WET.  You may use this developer's toolkit on your computer and make one backup copy for storage as long as there is no possibility of use or residence on more than one machine at any time.  Just like two people cannot read the same book in different locations at the same time.  You may not sell or give copies of the registered development files or printed documentation to anyone.

You may include WET's encryption/decryption DLLs with any products you develop without additional payment to us.  Please note that you must restrict the distribution of any product that contains WET Pro's DES DLL.  WET standard version can be distributed world-wide.

Pricing, specifications, and conditions are subject to change without notice.

Send all registrations and inquiries for site licensing (multiple CPU or network) to MaeDae Enterprises at the address listed on the front cover of this manual.

Disclaimer:

MaeDae Enterprises makes NO claims AND offers NO warranties of any sort with WET.  MaeDae Enterprises assumes NO responsibility for any damage resulting from the apparent or actual use of WET (mental or physical).  The WET toolkits are not guaranteed as to merchantability or fitness for its ultimate use.  The user accepts all responsibility for use and may not resell the program.

IBM PC/XT/AT are registered trademarks of the International Business Machines Corporation.


INTRODUCTION

WHAT IS WET?

The Windows Encryption Toolkit (WET) is a powerful encryption/decryption toolkit packaged as Dynamic Link Libraries (DLLs) for Windows 3.1or later that allows you to:

1.  Distribute secure data protection with your package royalty free,

2.  Encrypt any data using our secure data encryption routines,

3.  Decrypt the data using a confidential key,

4.  Perform encryption and decryption on both text and binary data in entire blocks at a time,

5.  Use XOR, transposition, substitution, Data Encryption Standard (DES), or DES plus cipher block chaining in any combination or number of layers you want,

6.  Calculate cyclic redundancy checks (CRCs) to detect any modifications to your data,

7.  Access our secure routines from almost any Windows based language,

8.  And do it all without having to invest weeks or months developing your own encryption routines!


WHAT IS WET PRO?

WET Professional version or WET Pro is the professional version of WET.  It provides all the functions and DLLs of WET plus provides another DLL for DES and DES + cipher block chaining (CBC) encryption/decryption functions.

Our DES routines are based on DESNEW and are up to ten times faster than most other DES routines.  Thanks to our high performance and secure encryption/decryption functions, you can have the latest in data protection without spending months to develop them.

WHAT IS THE DATA ENCRYPTION STANDARD (DES)?

Most encryption schemes are kept secret.  One exception is the Data Encryption Standard (DES), which was issued by the U.S. National Bureau of Standards.  The National Security Agency (NSA) was intimately involved in the development and acceptance testing of this algorithm.

But, how does it work?  DES performs its encryption "magic" by working on a block of 64 bits of your data using a 64 bit key (we generate the 64 bit key from the key you supply).  Basically, DES is a substitution cipher.  We know this sounds very technical, but don't worry, we have hidden all the complexity of DES behind an extremely easy to use interface.  Our simple and straight forward encryption functions makes protecting your data a simple task.

There has been a lot of discussion centering around key length, especially with DES.  Is it 64 bit or 56 bit?  Technically, DES only uses the first 56 bits of your key.  There are several good cryptography books available that discuss the details of DES.  We will leave the exact details of DES and key length for more advanced reading on your part.  Check your local large bookstore for suitable texts.

Why did we choose to implement DES?  We chose DES because it is a standard.  Its ability to protect your data is well documented. Our goal is to provide you the best possible software tool for the protection of your data.  We support multiple layers of encryption, with DES as any layer of protection for your data.  Because of this approach, we feel your data is protected far better than using DES by itself.

There has been some theoretical discussions recently centering around whether it is just impossibly hard to break DES or whether it could be broken given million dollar computers and months or years of the computer's time.  Just to alleviate any concern you might have in this area, we have added cipher block chaining to WET Pro as an additional encryption layer that is applied underneath DES.


 INSTALLATION

Additional information about installing and using WET is located in readme.doc.  You can view the information on-line using any editor capable of reading pure text files, or you may print it out on your printer by typing either of the following from the DOS prompt:

copy readme.doc prn:

or

print readme.doc

WET comes with an installation program that runs under Microsoft Windows.  To install WET on your system, follow these steps:

1.	Start Windows if it is not already running (refer to your Windows manual for additional information)

2.	Depending on the format of the distribution diskette, insert it in either drive A: or B:

3.	Run the installation program using one of the following methods:

a.  From the Program Manager menu bar, select File Run... and type

A:INSTALL.EXE (or B:INSTALL.EXE, as applicable) 	in the Command Line box, then select OK.

or

b.  Use the Windows File Manager to locate and run INSTALL.EXE

The installation program allows you to install WET in a DOS directory of your choice (see Figure 1).  Just follow the on-screen instructions.

As the installation program progresses, status boxes ("meters") will appear indicating the percentage completed and files currently being copied.


WET Standard Edition

The WET toolkit provides several different encryption techniques for protecting your data.  Listed below is an overview of the different functions in our toolkit.  We have provided complete definitions of the functions.  Almost any computer language for Windows should be able to call these DLLs using the information listed below.

Note:  Our WET.H header file uses a complex function prototype definition for the WET functions that allows the same DLL source code to be used for both Windows v3.1 and Windows 95/NT.  We have simplified the WET function prototypes listed below to allow easier use.

Functions provided using the standard version of WET (WETSTD16.DLL and WETSTD32.DLL):

int FAR PASCAL EncryptXORBlock(unsigned char far *block,  int block_length, unsigned char far *code_key);

Where:  block - A far pointer to the data you want encrypted or decrypted.

block_length - The number of bytes to encrypt or decrypt at the location pointed to by block.

code_key - A far pointer the zero terminated string  that is to be used to encrypt or decrypt  the block data.

int FAR PASCAL EncryptTranspositionBlock(unsigned char far *block, int block_length, unsigned char far *code_key);

Where:  block - A far pointer to the data you want encrypted or decrypted.

block_length - The number of bytes to encrypt or decrypt at the location pointed to by block.

code_key - A far pointer the zero terminated string  that is to be used to encrypt or decrypt the block data.

Note:  This encryption technique is especially strong.  Your code_key is used as the seed into a pseudo-random number generator which generates a greatly expanded key of between 1000 and 2000 bytes long using only lengths that are prime numbers (ex: 1009, 1999, 1013, etc).  For short blocks this technique will provide you with a key longer than the block ensuring good protection.

int FAR PASCAL EncryptSubstitutionBlock(unsigned char far *block, int block_length, unsigned char far *code_key);

Where:  block - A far pointer to the data you want decrypted. block_length - The number of bytes to encrypt or decrypt at the location pointed to by block.

code_key - A far pointer the zero terminated string that is to be used to encrypt the block data.

unsigned int FAR PASCAL CRCBlock(unsigned char far *block,  int block_length);

Where:  block - A far pointer to the data you want encrypted or decrypted.

block_length - The number of bytes to encrypt or decrypt at the location pointed to by block.

Note:  This function returns a 16 bit unsigned int which contains a 16 bit CRC for the data pointed to by the block far pointer.

unsigned int FAR PASCAL GetVersionWETSTD(void);

This function returns the current revision number of WET.  The format is to return the entire revision as an unsigned integer.  For example:  v1.00 would be returned as 100.

Note:  The WET encryption functions mentioed above return 0 for no errors or a non-zero number indicating an error and its code.  Currently only the return values of 0=no error and 1=out of memory are used.


WET Professional Edition

Additional functions provided with the professional version of WET (WETSTD16.DLL/WETSTD32.DLL + WETDES16.DLL/WETDES32.DLL) include:

VOID FAR PASCAL DESKeyloadEncrypt(unsigned char far *key);

Where:  key - A far pointer to the eight byte block that contains the DES key for encryption.  This is binary data, no need for a zero terminated string.  For DES, you need to load the key once at the start of the encryption process.

VOID FAR PASCAL DESKeyloadDecrypt(unsigned char far *key);

Where:  key - A far pointer to an eight byte block that contains the DES key for decryption.  This is binary data, no need for a zero terminated string.  You need to load the key once at the start of the decryption process.

VOID FAR PASCAL CryptDES(unsigned char far *datablock);

Where:  datablock - A far pointer to an eight byte block that is to be encrypted or decrypted in place.  The plain text data will be overwritten by the encrypted version.

VOID FAR PASCAL EncryptDESBlock(unsigned char far *block,  int block_length);

Where:  block - A far pointer to the data you want encrypted.

block_length - The number of bytes to encrypt at the location pointed to with block.

Note:  DES works with 64 bits (8 bytes) of your data at one time.  We recommend additional steps if your block is not exactly an even multiple of 8 bytes long.  One approach to work around this limitation is to apply one of the conventional encryption methods such as transposition underneath the DES level of encryption.

VOID FAR PASCAL DecryptDESBlock(unsigned char far *block, int block_length);

Where:  block - A far pointer to the data you want decrypted.

block_length - The number of bytes to decrypt at the location pointed to with block.

VOID FAR PASCAL EncryptDESBlockCBC(unsigned char far *block, int block_length);

Where:  block - A far pointer to the data you want encrypted.

block_length - The number of bytes to encrypt at the location pointed to with block.

Notes:

1.  DES works with 64 bits (8 bytes) of your data at one time.  We recommend additional steps if your block is not exactly an even multiple of 8 bytes long.  One good approach to work around this limitation is to apply one of the conventional encryption methods such as transposition underneath the DES level of encryption.

2.  Data cannot be encrypted in place when you use the cipher block chaining option.  Because of this, we have to allocate a temporary work buffer from the stack of the same size as the block_length you pass.  Please be aware of this and limit your block length to no more that 2048 bytes!

VOID FAR PASCAL DecryptDESBlockCBC(unsigned char far *block, int block_length);

Where:  block - A far pointer to the data you want decrypted.

block_length - The number of bytes to decrypt at the location pointed to by block.

Note:  Data cannot be decrypted in place when you use the cipher block chaining option.  Because of the chaining, we have to allocate a temporary work buffer from the stack of the same size as the block_length you pass.  Please be aware of this and limit your block length to no more that 2048 bytes!

unsigned int FAR PASCAL GetVersionWETDES(void);

This function returns the current revision number of WET PRO.  The format is to return the entire revision as an unsigned integer.  For example:  v1.00 would be returned as 100.

General argument descriptions:

block - A far pointer to your data to be encrypted/decrypted

block_length - The length of the block you are pointing to

code_key - A zero terminated string containing the phrase to be

used for encryption/decryption

key - An eight byte block that contains the DES key for

encryption/decryption

data_block - An eight byte block that contains the data to be

encrypted using DES

Application notes:

1.  For XOR, transposition, and substitution, process your data once thru the routines to encrypt.  Process the encrypted data thru a second time to decrypt.

2.  DES works with 64 bits (8 bytes) of your data at one time.  We recommend additional steps if your block is not exactly an even multiple of 8 bytes long.  One good approach to work around this limitation is to apply one of the conventional encryption methods such as transposition underneath the DES level of encryption.

* Data cannot be encrypted in place when you use the DES+cipher block chaining.  Because of the need to apply XOR underneath DES, we have to allocate a temporary work buffer from the stack of the same size as the block_length you pass.  Please be aware of this and limit your block length to no more that 2048 bytes!

The demo for WET that we provide gives you a basic example of how to encrypt and decrypt data.  Look at the source code to see the details of the encryption/decryption process.

The XOR, transposition, and substitution encryption routines are used once to encrypt your data and then used a second time to decrypt the data.  You can apply as many layers as you want but be careful to reverse the order for decryption.  For example:

<Clear Text>

Encryption -	XOR

                         Transposition

                          Substitution

<Encrypted Text>

To decrypt - 	Substitution

Transposition

XOR

<Clear Text>

The above steps may seem a little strange to you at first .  Encryption isnt something most of us grew up with.  However, in todays world computers and theft of secrets occur frequently.  WET provides the tools to help you protect your data from unwanted, prying eyes.

In the next section we will explain a few of the terms like the above mentioned XOR, transposition, and substitution..  Then we will go into details on how WET can help protect your data.


HOW TO USE DLLS

You can access DLLs in C/C++ using two basic methods.  The function prototypes for C access are in WET.H.  For C++ use, define the WET function prototypes as extern C.  Basic DLL access methods are:

1.  Link an access library into your program.  To do this you need to run IMPLIB against the WET DLL(s) to create a .LIB file.  Add this .LIB file with your other .LIBs for your project.  Include WET.H into your C module that access WETSTD16.DLL/WETSTD32.DLL or WETDES16.DLL/WETDES32.DLL.  Call the WET functions from your program just as any other function.  To use IMPLIB enter the following command at your DOS prompt:

IMPLIB WETSTD16.LIB WETSTD16.DLL

                 or

IMPLIB WETSTD32.LIB WETSTD32.DLL

Note:  IMPLIB should be in your path and will probably be located in your compiler's BIN subdirectory.

2.  You can access DLLs in C/C++ thru the LoadLibrary command.  You use the LoadLibrary command to load the DLL and then access the functions via GetProcAddress.  When your program finishes execution it should unload the DLL via the FreeLibrary command.  Refer to your compiler vendor's documentation for exact details on how to do this.

Many other languages also support DLL function calls.  Refer to your manuals for more details on DLL use.


TUTORIAL (Encrypting sample data)

Now let's do something simple to demonstrate how WET works.

All the encryption/decryption functions provided with the standard version of WET are used once to encrypt the data.  Then used a second time with the same key to decrypt the data.  In C this example would look like:

#include "WET.H" /* WET.H contains C prototypes for DLLs */

char test_data[50];

int data_length;

lstrcpy(test_data,"This is a test 1234567890");

data_length=strlen(test_data);

EncryptXORBlock(&test_data,data_length,"my key");

/* test_data now contains the encrypted data */

/* To decrypt you would use the same function again */

EncryptXORBlock(&test_data,data_length,"my key");

/* the test_data should now have "This is a test 1234567890" */

Notes:  The XOR, transposition, and DES encryption routines alter the data distribution causing 0s to appear at different portions of the encrypted string.  Because of this, we can't use strlen(...) to get the length of the encrypted data.  You need to get the string length before encryption and then refer to that length during the decryption process.

The WET DLLs were written using the large memory model C/C++ which assumes far data pointers.  To use these DLLs with other memory model programs you must first typecast the data pointers (the char far *block pointer) to be char far * also.

The professional version of WET comes provides DES in addition to the standard encryption techniques.  The following code fragment shows how to use the DES+CBC encryption within a Microsoft C program.

The majority of our example source code will also work with any Microsofts C/C++ version compiler with only minor changes.  Our DLLs are fully compatible across a wide range of compilers.  Only the calling mechanism varies slightly between the different vendor's products.

You will notice that for DES+CBC either DESKeyloadEncrypt or DESKeyloadDecrypt is called first to load the key.  Then you call the encrypt or decrypt function.

When using the DES function without CBC you can just call the appropriate function to load the key and then call CryptDES for both encryption and decryption.  DES+CBC's additional buffer manipulation for cipher block chaining forces a unique encrypt and decrypt functions.

Listed below is an example of DES+CBC in C++ code:

unsigned char work_string[100];

// create a 64 bit key

unsigned char use_key[8]={'0','1','2','3','4','5','6','7'};

// create a string (0 terminated)

// we will encrypt only 1st 16 characters

lstrcpy(work_string,"This is a test 0123456789");

MessageBox(NULL,work_string, "DES Encryption test - 	Clear Text", MB_ICONEXCLAMATION);

// Load the 64 bit key into the DES encryption keyload function

DESKeyloadEncrypt(use_key);

// Encrypt the 1st 16 characters of the block using DES+CBC

EncryptDESBlockCBC(work_string,16);

MessageBox(NULL,work_string,"DES Encryption test - DES Encrypted (1st 16 char)",MB_ICONEXCLAMATION);

// Load the 64 bit key into the DES decryption keyload function

DESKeyloadDecrypt(use_key);

// Decrypt the first 16 characters of the block using DES+CBC

DecryptDESBlockCBC(work_string,16);

MessageBox(NULL,work_string, "DES Encryption test - 	Decrypted",MB_ICONEXCLAMATION);

For DES, the core steps would be:

DESKeyloadEncrypt(use_key);

CryptDES(work_string);

// 1st 16 characters of the data is now encrypted

DESKeyloadDecrypt(use_key);

CryptDES(work_string);

// the entire string is now decrypted

An example of using multiple layers of encryption follows.

char test_data[50];

int data_length;

lstrcpy(test_data,"This is a test 1234567890");

data_length=strlen(test_data);

EncryptXORBlock(&test_data,data_length,"my key");

EncryptTranspositionBlock(&test_data,data_length,"my key");

// now encrypted two layers deep

  EncryptTranspositionBlock(&test_data,data_length,"my key");

  EncryptXORBlock(&test_data,data_length,"my key");

// now back to clear text

Did you notice that the decryption steps must be the mirror image of the encryption steps?  The encryption layers can be applied in any order or number.  The encryption process can only be reversed as long as you use exactly the same steps in reverse order for decryption process.


ADVANCED FEATURES

Data Encryption Standard (DES)

WET Pro provides both standard conventional encryption techniques plus the secure DES.  DES has been proven to provide virtually unbreakable protection.  However, even DES can be improved on.  One improvement is the use of cipher block chaining underneath DES.

DES+Cipher Block Chaining (DES+CBC)

WET Pro adds cipher block chaining as one of tits secure encryption routines.  You  can use CBC  simply by making the function call.  We have done all the coding, all you need to do is to make a simple function call to have virtually unbreakable encryption.


TROUBLESHOOTING

TSRs

If WET will not run, you may have insufficient memory or too many memory resident programs, also known as terminate and stay resident (TSR) programs.  If you have any memory resident software that modifies the way DOS works, then WET may not function properly.  First, try running WET with no memory resident programs.  Then add them back into operation one at a time to determine which one is causing the problem.

Device Drivers

Special device drivers may conflict with WET.  Try removing device drivers in your CONFIG.SYS file one at a time until the problem is solved.  Also try allocating a larger swapfile under Windows if you have a 386 or higher computer.  See your Windows User's Guide for help with the Swapfile program.

Distribution Files

The distribution diskette contains many files in addition to the main demo programs.  Make sure these files are all installed in the same directory when running the program.  If necessary, compare the files in the directory where WET is installed with the distribution disk to ensure all the files exist and have the same size and date.  The only exception will be any initialization ("*.ini") files that may or may not be part of your version of WET.  Initialization files may be modified upon installation or while WET is running and may not match the version on the distribution disk.

Compatibility

If  WET just stops running and you get an "Unrecoverable Application Error," you may have incompatible hardware or software.  WET works closely with your computer's hardware to gain much of its speed.  However, it never directly addresses the hardware without using standard function calls.  Try running WET in the 386 Enhanced mode (if you have a 386 or 486 computer) to see if that corrects the problem.  Your machine may not be 100% IBM PC compatible or Windows may be installed incorrectly.  This is not always disastrous.  A call to our phone support staff at 719-683-3860 may solve your problem.

Video Drivers

You may have an incompatible Windows video driver.  Updating your driver (available from your video board manufacturer) or re-installing Windows may solve the problem.

Forgetting Your Key

WET does not maintain a record of what key you used to encrypt a file.  If you forget the key you used to encrypt a file, you can also forget about ever decrypting the file.  There are no back doors in WET.   Sorry, we can't help you!


ADDITIONAL INFORMATION

Technical Support

If you need to contact us about WET, write to:

MaeDae Enterprises

5805 Prospero Road

Peyton, CO 80831  USA

Voice:  (719) 683-3860

FAX:  (719) 683-5199

When contacting us about a problem, please be as specific as possible about which version of WET you are using and about the configuration of your system.  You may also reach us on Internet at dblack@maedae.com and CompuServe at 72571,3245.

Suggestions

As always, we welcome your suggestions for improvement.  If you need a particular file security feature and WET doesn't contain it, let us know.  Send us your suggestions.  We have included a suggestion form called SUGGEST.DOC on your distribution disk.

Company Profile

MaeDae Enterprises was founded in 1984 and is most noted for originating the electronic forms era by publishing a product called Forms, later renamed to EZ-Forms.  It soon became the leading DOS-based electronic forms package.

MaeDae Enterprises has been in the data encryption business since 1989 with the introduction of EZ-Crypt for DOS.  An enhanced implementation of DES was incorporated in 1990.  With the introduction of the Microsoft Windows version in 1991, the name was changed to Encrypt-It.  The current versions of Encrypt-It maintain 100% compatibility between the encrypted file formats used by the DOS and Windows versions.  This provides an integrated business solution to personal computer file and data security.  The DOS, Windows v3.1, and Windows 95 versions of Encrypt-It are available directly from MaeDae Enterprises.  Encrypt-Its encryption routines are provided to you as WET and WET Pro DLLs.

MaeDae Enterprises has a mortgage analysis product no homeowner, realtor, or mortgage lender should be without.  Mortgage Designer for Windows provides extensive "What if?" capabilities, amortization schedules, graphical displays of analytical data, on-line context sensitive help, tax analysis functions, and much more.  Mortgage Designer is available directly from MaeDae Enterprises.

MaeDae Enterprises also markets a diskette duplicator for Windows called WinDupe.  This product provides an easy to use toolbar interface to a high performance single pass diskette duplicator.  It will copy, format, and compare diskettes in a single pass.  WinDupe is available directly from MaeDae Enterprises.


GLOSSARY

Terms used in WET may be a little confusing.  They are terms frequently used when discussing cryptography.  We picked the most important ones and defined them for you here.

Cipher -- Any technique, method, or scheme (XOR, substitution, transposition, etc.) used to encrypt and decrypt text, without regard to its linguistic structure.

Cipher Block Chaining (CBC) -- Provides an exclusive or encryption layer underneath DES that chains the encryption of the unencrypted data from one 64 bit block to the next.

Ciphertext -- The unintelligible text, after encrypting it.

Cryptanalysis -- The solving or breaking of codes without knowledge of the key.

Cryptography -- The general study of hiding the meaning of messages and the general techniques used for the hiding.

Data Encryption Standard (DES) -- DES is basically a substitution cipher using a 64 bit block of your data and a 64 bit key.

Decrypting -- The process of  decoding an encrypted or ciphertext file to regain the original information.

DLL  -- Windows supports building tools in the form of Dynamic Link Library (DLL) file to regain the original information.  The DLLs can then be used with any language that supports DLLs (most do).

Encrypting -- The process of encoding a plaintext file to hide the original information.

Key -- The text used to encrypt or decrypt a file.  Sometimes called a code word or password.  Keys can be simple everyday words or very complex combinations of characters that have no meaning.  Example keys: abc1234, Never:Again, and Buy Bonds.

Plaintext -- The unencrypted or decrypted, readable text.