Bump uncipher.

This commit is contained in:
Julien Palard 2018-11-27 11:52:59 +01:00
parent 3eb6017eab
commit e9806ca4bc
1 changed files with 15 additions and 7 deletions

View File

@ -7,21 +7,29 @@ robots: noindex
## Introduction
The project name is: uncipher
You'll give back your project using this protocol: https://mdk.fr/pages/obiree2uaza2sh-rendu.html
The project name is: `uncipher`.
You'll give back your project using [the rendu
protocol](https://mdk.fr/pages/obiree2uaza2sh-rendu.html).
## Project
Make a program taking a dictionary file and a string, like:
Make a program taking a string, and optionally a dictionary file, like:
python3 subst_break.py /usr/share/dict/french 'Cpokpvs mft hfot'
python3 subst_break.py --dict /usr/share/dict/french 'Cpokpvs mft hfot'
Your program should try every possible alphabetic substitution (in the alphabetic or ASCII range, maybe try different alphabets if needed), rank them by probability of being a real clear text (by counting the words being in the dictionary, doing frequency analysis on the letters, whatever...).
Your program should try every possible alphabetic substitution (in the
alphabetic or ASCII range, maybe try different alphabets if needed),
rank them by probability of being a real clear text (by counting the
words being in the dictionary, or by doing frequency analysis on the
letters, whatever...).
Your program should then print the most probable one (should easily be the right one in your tests).
Your program should then print the most probable one (should easily be
the right one in your tests).
You can write your own implementation of a substitution cipher for tests purpose in the ASCII range like this:
You can write your own implementation of a substitution cipher for
tests purpose in the ASCII range like this:
''.join([chr(ord(x) + 1) for x in "Bonjour les gens"])