Submit An Essay

Submit an encrypted essay to Popular Cryptography Magazine. You can have a plaintext introduction, too. The details of how to do that will be described soon. Write the publisher at to get it done quickly. The essay must be in a file with less than 400 kilobytes of storage. Any bigger is not an essay, it is a book. The key and the name of the algorithm that encrypted the essay should be included, but exceptions can be made. The default mode is ECB, Electronic Code Book, unless otherwise specified.

The publisher is using OpenSSL to encrypt files. It was tested for being a valid AES program. The need for compatability of AES programs is motivated by the goal of this Magazine to post encrypted essays that strangers can decrypt using any valid AES software. Some AES software is not compatible with other AES software.

The OpenSSL software was obtained as two .exe executable files. First install a Microsoft program from
file is called vcredist_x86.exe 1.7 megabytes, (Visual C++ Redistributables program)

Second install the OpenSSL executable from

That installed a program in C:\OpenSSL\bin called openssl.exe
Create a shortcut and run it.
A console opens up for the command line interface.

Methodology to use test vectors from Known Answer Test

KEY = 00000000000000000000000000000000
IV = 00000000000000000000000000000000
PLAINTEXT = c0000000000000000000000000000000
CIPHERTEXT = aae5939c8efdf2f04e60b9fe7117b2c2

Prepare plaintext in text file hex256.txt to be made into binary block size of 128 bits.
Use 32 hex digits in hex256.txt (256 bits)
Convert to binary file bin128.plain using Perl program

openssl aes-128-cbc -e -in bin128.plain -out bin128.cipher -nosalt -nopad -iv 0 -K 0

To see the result in hex, convert the binary .cipher file to ascii with


Encrypt a text file and decrypt it
openssl aes-128-cbc -e -in OpenSSL_notes.txt -out notes.aes -nosalt -iv 0 -K 0

Decrypt that .aes file

openssl aes-128-cbc -d -in notes.aes -out notes_decrypted.txt -nosalt -iv 0 -K 0
the file was 1986 bytes, the ciphertext was 2000 bytes.
2000 bytes / 16 bytes per block = 125 blocks