Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I just bought that book a few weeks ago (after I got my algorithm down for the vigenere cipher, but before I fully obfuscated it) because my other source of information/inspiration for additional algorithms was running dry, and I was trying to figure out a few things:

  1. Next stops for my tour through old encryption ciphers
  2. How to 'break' the 'undecipherable cipher'. I had an idea or two from reading the entry on wikipedia, but was left wanting a more in depth discussion of letter frequency analysis.

I'm glad you posted the link to the book, I was able to get my hands on an electronic version of the ciphertext from the book (I wasn't about to type it all in by hand!) and run my cracking script against it - I was pretty happy to find that I was able to decipher the keyword used to encode that ciphertext, though I wouldn't've recognized the plaintext because it's in french :)

I'm now trying to figure out how to easily get from having the encoding key and the ciphertext and working backwards to get the original plaintext - it's unfortunately not as much of a slam dunk as I thought it would be - but I guess I now know what I'll be working on tonight.

Update: I've finished the breaking script, but it's turned into a monster (what the the optional html formatted output). I was intending to either obfuscate it and post it separately, or post it as a followup to the original node, but I'm thinking instead of posting it to the code section, now that I've started a long way towards cleaning it up, passing strict and warnings, and even documented it with some POD. Comments welcome. End update

I also read up on how the "official" solution for that particular ciphertext was arrived upon, and I am a little embarassed to say that my method for extracting a likely encoding key isn't quite as sophisticated as theirs. I just search for repeating strings, find the greatest common denominator factor for the intervals between the repeats, build a little data structure and "compare" it to a standard letter distribution frequency for plaintext of a similar size. Or something like that.



--chargrill
$,=42;for(34,0,-3,9,-11,11,-17,7,-5){$*.=pack'c'=>$,+=$_}for(reverse s +plit//=>$* ){$%++?$ %%2?push@C,$_,$":push@c,$_,$":(push@C,$_,$")&&push@c,$"}$C[$# +C]=$/;($#C >$#c)?($ c=\@C)&&($ C=\@c):($ c=\@c)&&($C=\@C);$%=$|;for(@$c){print$_^ +$$C[$%++]}

In reply to Re^2: Vigenére cipher by chargrill
in thread Vigenére cipher by chargrill

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2024-04-19 03:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found