Free Tools for Crypto

Tool #1

This Magazine is giving away a free program called smaller_07.pl and it is written in the Perl language. It is useful for taking a large file of ciphertext and producing a smaller file of only the first 10 megabytes.

For example, Alice has obtained a DVD with a huge file with 800 megabytes of ciphertext. She wants to send a small part of the file to Bob. The program smaller_07.pl opens the huge file, no matter how big it is, and writes a smaller file to disk. The output file size is 10 megabytes by default, but Alice has the ability to modify the Perl program with a text editor so it is writing a different size for the extracted initial bytes. The output file has the first 10 megabytes of the huge file.

Here is the link to the Perl program:
smaller_07.pl

When you click on the link above, a new website will appear. On that website is an icon for the file smaller_07.pl
From there, when you want to download the file, use the "save link as..." action using a right click. If you just left click on the file that is in the link above, it will execute in a DOS command line window. Do not be alarmed. Trust me.

When one wants to use the "save link as..." action, one should use the right mouse button to see the drop down menu. On that menu is the "save link as..." line, or something similar.



Tool #2

There is another Perl program that is useful for users of cryptographic software. That short program writes a file of binary numbers that can be a key. It is called zero-key-5.pl and it is on this page: link. It produces a file of all binary zeros of any number of megabytes.



Tool #3

The companion tool for #2 is this Perl program to make a key file with all zeros, except a single one bit. The bit can be placed in any byte you choose. It is called changedkeybit-01.pl . By using Tools #2 and #3, the key avalanche for a cryptographic algorithm can be tested. When any one bit of the key changes, good algorithms cause the two resulting ciphertexts to differ by about 50% of their bits.




Tool #4

This tool opens two files of ciphertext and reports how many zeros and one bits are in them. It also counts how many bits have different values when the files are compared. This is intended to be used with tools #2 and #3. In other words, a plaintext file is encrypted with a key of all zeros. It is also encrypted with a key of mostly zeros and a single one bit. The two resulting ciphertext files are examined to see the avalanche that resulted from changing one bit of the key. A good cryptographic algorithm will have about 50% of the ciphertext bits toggle when even a single bit of the key is changed. compare2files-31.pl




Tools #5 and #6

PassWord Mirror changes American sentences that use English words with Latin characters into American sentences that use English words with Greek, Cyrillic, nand Cuneiform characters. This C# GUI Tool #5 also can change them back. It also allows custom character sets from Unicode to be translated into Unicode characters that are defined in two bytes. Cuneiform uses more than two bytes, so a Perl program (Tool #6) is used for that. It is called baffle_cuneiform_69.pl . It seems like the C Sharp language cannot handle Unicode characters with more than two bytes.

Example Password is Mirrored Four Ways: Greek, Cyrillic, Decimal, Hexadecimal:

Change Your Password Monthly
Cηανγε Ξουρ Πασσωορδ Μοντηλξ
Шчанге Зоур Пассыорд Монтчлз
689498 1054 99663046 3042817
C8a49e 1054 9a66304d 3042817

Here is the Greek Mapping Abecedary
abcdefghijklmnopqrstuvwxyz
αβcδεφγηιjκλμνοπθρστυψωχξζ
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ΑΒCΔΕΦΓΗΙJΚΛΜΝΟΠΘΡΣΤΥΨΩΧΞΖ

Here is the Cyrillic Mapping Abecedary
abcdefghijklmnopqrstuvwxyz
абшдефгчиШклмнопюрстущыхзж
ABCDEFGHIJKLMNOPQRSTUVWXYZ
АБШДЕФГЧИЈКЛМНОПЮРСТУЩЫХЗЖ


Tool #7
This program called hex-key-1.pl creates any number of megawords of binary key material in a file that you can name. The key material is a 16 bit word that is repeated. You define the second byte in each word as any decimal number less than 256. For example, enter 65 (0x41 hex):
00410041004100410041004100410041 is hexadecimal for 128 bits of the file that is created.
AAAAAAAA is how those 128 bits look when the command line console displays the start of the file with the "more" command.
A A A A A A A A is how it looks in Wordpad. Why spaces are added will be checked, someday, when the Hawaiian warmth sends me into a state of sub-optimal bliss.

Unicode uses 16 bit characters, so this Tool #7 not only can produce a binary key file, the file can be viewed as Unicode fonts. This dual character of the output from the Tool is due to the structure of the binary file created. It is possible for a person who has normal skill at computer programming to modify hex-key-1.pl to write files with various Unicode numbers instead of one constant number. Incrementing the number from 0 to 255 would show all Unicode characters in that range.