Alice

Parameters known by Alice:

Generates the key \( k \)

Encrypts the message \( m \):

Step y/x

Enter a message (a sentence containing only whitespace and the letters A-Z) that Alice wants to send encrypted to Bob:

Use the following key (a word shorter than the message which only contains the letters A-Z):

Hit enter to generate the parameters and use the left and right arrow keys to navigate.

Alice generates the key \( k \) of the keyword \( kw \) where \( k \) must have the same length as the message \( m \). If the keyword is shorter than the message, the keyword is repeated until its length is equal to the length of the message.

She then sends the key \( k \) through a secure channel to Bob.

Before Alice can encrypt the message \( m \) she needs the index in the English alphabet of each letter in the message \( m \) with the letter \( a \) starting at index \( 0 \).

Alice then use the key \( K \) to encrypt the message \( m \).

Before Bob can decrypt the ciphertext \( c \) he needs the index in the English alphabet of each letter in the ciphertext \( c \) with the letter \( a \) starting at index \( 0 \).

Decryption is almost identical to encryption: Instead of adding the two numbers we subtract them.

Bob

Parameters known by Bob:

Receives the key \( k \)

Receives the ciphertext \( c \)

Decrypts the ciphertext \( c \):