From 748b5cceaa346d3097c58229ea04ead0c7e3f48e Mon Sep 17 00:00:00 2001 From: Neil Smith Date: Thu, 29 Apr 2021 17:49:32 +0100 Subject: [PATCH] Minor documentation updates --- README.md | 26 +++++++++++++++++++++++++- setup.py | 5 ++++- szyfrow/__init__.py | 3 ++- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 865e8ec..91ad22e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,28 @@ # Szyfow ciphers -Various tools for enciphering, deciphering, and breaking simple (manual) ciphers. +Simple (mainly manual) ciphers, and routines for enciphering, deciphering, +and breaking messages created with them. +The ciphers implemented here are mostly ones that predate mechanical cipher +systems. The most complex cipher is the Enigma of World War II. + +Each cipher is presented with functions to encipher, decipher, and +automatically break messages with that cipher. + +Most of the time, messages are broken by brute-force trying each possible key +and scoring the resulting deciphered message using a bag-of-words probability +measure (or a bag-of-bigrams, or a bag-of-trigrams). + +You can find more information on the ciphers and how they are implemented in +the [codes and ciphers area of my blog](https://work.njae.me.uk/tag/codes-and-ciphers/). + +Ciphers work on messages encoded with the 26 letters of the Latin alphabet, +without accents (the letters contained in the `string.ascii_letters` constant). +Most of the ciphers convert letters to lowercase, strip accents from letters, +and drop all other characters (such as spaces and punctuation). + +`szyfrow.support.text_prettify` contains functions to make the output easier +to read, such as automatically recovering word boundaries. + +The name comes from the Polish cipher bureau, the Biuro Szyfrów, who were +breaking Enigma ciphers by hand before World War II. diff --git a/setup.py b/setup.py index e585ed4..ff3747a 100644 --- a/setup.py +++ b/setup.py @@ -5,13 +5,16 @@ with open("README.md", "r") as fh: setuptools.setup( name="szyfrow", - version="0.0.6", + version="0.0.7", author="Neil Smith", author_email="neil.szyfrow@njae.me.uk", description="Tools for using and breaking simple ciphers", long_description=long_description, long_description_content_type="text/markdown", url="https://github.com/NeilNjae/szyfrow", + project_urls={ + "Documentation": "https://neilnjae.github.io/szyfrow/szyfrow/index.html", + }, packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", diff --git a/szyfrow/__init__.py b/szyfrow/__init__.py index 4419d08..623c242 100644 --- a/szyfrow/__init__.py +++ b/szyfrow/__init__.py @@ -1,4 +1,5 @@ -"""Simple ciphers, enciphering, deciphering, and breaking. +"""Simple (mainly manual) ciphers, and routines for enciphering, deciphering, +and breaking messages created with them. The ciphers implemented here are mostly ones that predate mechanical cipher systems. The most complex cipher is the Enigma of World War II. -- 2.34.1