Confederate Cipher Disc

Cracking Vigenere

by: burt rosenberg
at: university of miami
date: jan 2018
NAME
    vigenere.py, ioc.py, crack-vigenere.py
    
SYNOPSIS
    vignere.py [-dv] key
    
    ioc.py [-v]
    
    crack-vigenere.py [-v] key-length reference-text 
  
DESCRIPTION
    vignere.py encrypts or decrypts stdin to stdout using a viginere cipher and the given
    key. The key is alphabetic, lowercase, with "a" representing 0 shift, and "z" a 
    shift of 25. When decrypting, "z" is be a shift of -25. Any non-alphabetic characters
    in stdin are discarded, and lower and upper case letters are considered identical.
    
    Output ciphertext as capital letters, and plaintext as little letters. Use a traditional
    grouping of 5 letters pair group separated by one space, and 5 groups per line. See
    the shiftcipher program for an example.
    
    The ioc.py inputs a presumed vigenere encrypted text from stdin and guesses the length
    of the key encrypting the text, using the method of the index of coincidence. The
    (non-verbose) output is just a number.
    
    crack-vignere takes a presumed vigenere encrypted text from standard in, and writes
    the key by which the text has been encrypted to standard out. It takes two arguments: 
    the presumed key length, which will be suggested by ioc.py, and a reference text to 
    get letter frequencies.

OPTIONS 
    -d decrypt
    -v verbose

Goals

There are several practical skills to learn in this project:

For learning Pyton, the [repo]/class/proj1 directory as a few Python programs the provide example code. For those without Python experience, note that Python programs must be properly indented. I have found it best to have an editor that can show invisibles and to indent either by only spaces or only tabs. Programs that mix spaces and tabs often do not compile in Python.

Copy the class examples to a proj1 directory in your folder — that is, [repo]/[username]/proj1. The add and submit to the subversion repository. This will be your introduction to subversion. Do not modify the class folder. Consider it to be read-only. Although nothing stops you from modifying what is in the class folder, if you try to commit your changes, you will get access denied.

Read my tutorial on subversion, and pay attention to the svn st command. It will help you to unravel problems you might have submitting to subversion.

The cryptographic skills learned are,

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

author: burton rosenberg
created: 21 jan 2018
update: