e00af0eecd599fa521cfc86c3c7bbe752cc193473b8c46cd1832bcac99fdaafb vigenere.py sha256 sum

A lossless computer-age Vigenere

Simon Singh brought us lossless Vigenere in his book, “The Code Book.” This python3 script builds on his work, to develop a computer-age Vigenere that can secure 7,657 bytes of data on a one-time-pad secure basis, and asks cryptanalysts to line up 224 K unique columns of one-byte data in 30 rows, for t-tailed testing. For this reason, it is advisable to compress large files in a zip archive before encrypting. However, the script will happily encipher doc’s, jpg’s, pdf’s or zip files, as well as txt files.

It is possible to extend 64 bytes of key material to secure more bytes of data by using different values and more “rounds.” For this reason, this implementation is said not to achieve “full diffusion.” The compromise affords quick enciphering, and it is fast. To reassure potential users, we share that at least half of all Unicode characters are denoted using not one, but four (4) bytes of data. For this reason the meaning or order of those characters is spread over four columns when cryptanayzing, each with a different Caesar shift. Not only so, but because of the “salt,” the potential (7,657) Caesar shift alphabets vary based on the choices of passwords. Further attention is given to the key material so that the complexity is exactly equal for all passwords; short or long, the only difference is the computational expense of “brute force.”

Vigenere is usually thought of as only good enough for love letters or casual correspondence, but this implementation is meant to be surprisingly resilient.

Previous
Previous

Project One

Next
Next

Retrospective