| Welcome to Crypto. We hope you enjoy your visit. You're currently viewing our forum as a guest. This means you are limited to certain areas of the board and there are some features you can't use. If you join our community, you'll be able to access member-only sections, and use many member-only features such as customizing your profile, sending personal messages, and voting in polls. Registration is simple, fast, and completely free. Join our community! If you're already a member please log in to your account to access all of our features: |
- Pages:
- 1
- 2
| Mono Cipher Walkthroughs; Post your walkthrough | |
|---|---|
| Topic Started: Sep 22 2005, 11:52 AM (823 Views) | |
| Donald | Sep 22 2005, 11:52 AM Post #1 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
(Revelation: I placed this here because it wasn't exactly a "Challange" like the others, but if you think it should go into the Challange forum, please feel free to move it!) --- Ok folks, at Insecure's request, here is a LONG mono cipher. (About 3 times as long as recommended by the ACA) so it should be pretty easy. It's a random next from the KJV Bible, with word spacing and punctuation in tact. GI MEO UQBJ QW MEO RQBJ UOBO MEO EOVZOLH FVJO; VLJ VRR MEO EQHM QW MEOF GI MEO GBOVME QW EKH FQTME. EO AVMEOBOME MEO UVMOBH QW MEO HOV MQAOMEOB VH VL EOVY: EO RVIOME TY MEO JOYME KL HMQBOEQTHOH. ROM VRR MEO OVBME WOVB MEO RQBJ: ROM VRR MEO KLEVGKMVLMH QW MEO UQBRJ HMVLJ KL VUO QW EKF. WQB EO HYVXO, VLJ KM UVH JQLO; EO DQFFVLJOJ, VLJ KM HMQQJ WVHM. MEO RQBJ GBKLAOME MEO DQTLHOR QW MEO EOVMEOL MQ LQTAEM: The point here is not only to break the cipher, but to publish a walkthrough of how you did it so that others can learn from it. Since I generated the cipher and text randomly by a program I'm writing, even *I* have no clue what the text or cipher alphabet is, so I'll be able to participate as well. Good luck! I'm posting some spoiler space so those that intend to break the cipher don't have to look at other folks walkthroughs! Donald . .Don't read past here unless you want to see the walkthroughs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
![]() |
|
| insecure | Sep 22 2005, 08:51 PM Post #2 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Okay, I'm rested and raring to go. In a way, it's a shame that Donald told us the source of his text, because it gives us quite a few clues as to the content. I will do my best to ignore the hint! Right, this won't take long, but it'll take longer than it might because I'll be explaining as I go exactly what I'm doing and why. I start off by loading the cipher and a dictionary into memory. I took my dictionary from /usr/share/dict/words but on some distributions it's in /usr/dict/words so just check before you try this at home. I'm going to start off with a frequency analysis, not because I have to but because that's what most people do when confronted with a cryptogram like this. So here we go:
Okay, this tells me that o is probably the ciphertext character for e, and m is probably t. Frankly, I don't trust that very much, especially as o and m are so close in frequency. Let's take a closer look at the ciphertext instead.
What I'm looking for is loooong words. The most obvious long words seem to be AVMEOBOME and HMQBOEQTHOH and KLEVGKMVLMH so we'll start with those. Let's look more closely at AVMEOBOME. We see that it follows the pattern 123456534. What do I mean? Well, the first six letters are unique, but the seventh is a repeat of the fifth, the eighth is a repeat of the third, and the last is a repeat of the fourth. Let's see what words match that pattern, using our dictionary:
So much for that idea. I guess it's a name or something, which is why it's not in the dictionary. Okay, let's try again with HMQBOEQTHOH, which has the pattern 12345637151:
Aha! Okay, so let's map those letters into our key, and see where it takes us:
And there we are. I reckon we can call that cracked, don't you? But let's finish it off. We can see that FQTME translates to ?OUTH. Let's find out what options we have:
Well, any of those could be it, I guess. Let's try them one at a time:
This guess highlights the double-letter of _OMM___E_. This more or less rules out one of the other possibilities - Y. _OYY___E_ doesn't seem to work. S might - _OSS___E_ - but that would leave us with THES in the first line, which doesn't look promising. So I think it's fair to say this guess of m is correct. We can now fill in the rest with common sense. E_RTH is clearly EARTH, so V maps to A. TO_ETHER surely has to be TOGETHER, so we can map A to G. This gives us:
HE GATHERETH THE _ATERS O_ THE SEA TOGETHER gives us W and F:
We're close to a full decrypt. We can now reasonably hope to find the I-vowel, which should make it possible to fill in the other gaps trivially. AWE OF H_M surely has to give us the I, doesn't it?
We can quickly work out that J is D (WOR_ and _OR_ both end in ciphertext J), and that gives us a mapping of R to L, which means we can do this:
At this point, I'm prepared to take a stab at the whole thing: BY THE WORD OF THE LORD WERE THE HEAVENS MADE; AND ALL THE HOST OF THEM BY THE BREATH OF HIS MOUTH. HE GATHERETH THE WATERS OF THE SEA TOGETHER AS AN HEAP: HE LAYETH UP THE DEPTH IN STOREHOUSES. LET ALL THE EARTH FEAR THE LORD: LET ALL THE INHABITANTS OF THE WORLD STAND IN AWE OF HIM. FOR HE SPAKE, AND IT WAS DONE; HE COMMANDED, AND IT STOOD FAST. THE LORD BRINGETH THE COUNSEL OF THE HEATHEN TO NOUGHT: (Psalm 33:6-10) The key is gr?chmbsydint?e?ol?uwafkp? Now, the thing is this - almost ALL of this article has been about tidying up. The cipher was effectively broken when we discovered that HMQBOEQTHOH had only one plausible decrypt - STOREHOUSES. That gave us E, T, O, S, H, R, U - which are seven of the twelve most common letters. And we discovered that on only our second attempt. (A better dictionary would have had GATHERETH, which turned out not to be a name after all, and we would then have got it on our first attempt.) The lesson here is: every word has a pattern, and the longer the word, the easier it is to find a unique decrypt of that pattern from the dictionary. Once you've cracked a single long word, decrypting the rest of the cryptogram is merely a matter of making a few obvious guesses. As it turned out, the frequency analysis did correctly identify E and T for us, but it would have led us astray if we'd trusted it further than that, since - unusually - H is so common in the plaintext. In fact, though, we didn't bother with the frequency analysis at all! As you have seen, there are surer, quicker ways. |
![]() |
|
| Donald | Sep 23 2005, 05:59 AM Post #3 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Ok, frequency count alone should be enough to hand this one to us for a message this long.
Except that the word MEO appears 15 times in this passage! That may be shifting our numbers by quite a bit. So lets subtract it out and see what the frequency table looks like:
Only a little bit of difference there. We can compare to:
I think its a safe bet that O=e. Lets concentrate on that unusually repeated word MEO. Notice that we have MEO and MEOF. If O=e, then MEO is probably "the" and MEOF is "then" or "them". Lets see where we get just assigning M=t, E=h, and O=e
Oh yeah, that turns EO=he, I think we have these letters identifed correctly. OVBME=e**th, could this be earth? V is in the top three of our freq table, as it should be for a. so we have V=a, and B=r Now if we are using V=a, then the word KM=*t must be "it", so we also have K=i. (The frequency table doesn't match up for K=i, but the freq table is a guidline, not a rule!) Also, the word VRR=a** must be "all" so R=l V=a would also make the word EOVMEOL=heathe* which could only be "heathen", so we have L=n. Let's try adding those five letters. V=a, B=r, R=l, K=i, and L=n
Well, THAT opened it up wide. VLJ=an* must be "and" so J=d. GBOVME=*reath must be "breath", so G=b. HOV=*ea is probably sea, so H=s MQAOMEOB=t**ether looks like "together" so Q=o, A=g RVIOME=la*eth could be "layeth" so I=y WOVB=*ear could be lots of words, but "fear" makes the most sense in the context we have so far, so W=f KLEVGKMVLHM=inha*itant* can only be "inhabitants" so G=b, H=s Lets see where that takes us:
Well, now we are pretty much done. Lets fill in those last letters. UQBJ=*ord and UOBO=*ere means U=w EOVZOLH=hea*ens means Z=v FVJO=*ade and EKF=hi* so F=m FQTME=mo*th so T=u UVMOBH=*aters and UQBRJ=*orld so U=w EOVY=hea* from context is "heap" so Y=p HYVXO=spa*e so X=k DQFFVLJOJ=*omanded and DQTLHOR=*ounsel so D=c and we are done:
It's Psalms 66:6-10 |
![]() |
|
| Donald | Sep 23 2005, 06:06 AM Post #4 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Yeah, sorry, but since *I* knew the source, I thought it was only fair that I share that with everyone else as well. Level playing field and all that. We took two different approaches, which is GOOD! I avoided using my pattern dictionary, because it's no longer available on the web and so I can't point the users to it. I happen to agree with you on it's use though, I can't live without mine. Is your pattern dictionary the one created by fiziwig? And wherever you got it from, do you have a link and any information on rights? Thanks! Donald |
![]() |
|
| insecure | Sep 23 2005, 07:50 AM Post #5 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
No, I just use a normal dictionary - /usr/share/dict/words - and create the pattern dictionary myself, using code I wrote a few years back. Written, naturally enough, in standard C, which means it'll even work on those newfangled CP/M or MS-DOS or whatever computers some of you fellows have nowadays - although in that case you'd have to write your own dictionary, I guess. But how hard could that be? a and create dictionary i just myself no normal pattern the use etc etc. :-) As for rights, well, I guess I can give the source code to whoever I like! |
![]() |
|
| Donald | Sep 23 2005, 12:00 PM Post #6 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Yeah, I've been thinking about doing that, it's just that fiziwig already went to the work of scanning LOTS and LOTS of source materials, which is why his pattern dictionary includes the word "Gathereth"
|
![]() |
|
| Revelation | Sep 29 2005, 07:21 PM Post #7 |
|
Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Nice walkthrough
Here is a visual table:
|
|
RRRREJMEEEEEPVKLWENFNVJKEEEEEAOLKAFKLXCFZAASDJXZTTTTTTTLSIOWJXMOKLAFJNNKFNXN RAGRBAQEMHIGDJVDSEOXVIYCELFHWLELJFIENXLRATALSJFSLCYTKLASJDKMHGOVOKAJDNMNUITN RRRRLJVEEEEECLYVYHNVPFTAEEEEEMWLMEIRNGLARWJAKJDFLWNTIERJMIPQWOTZEOCXKNUBNXCN RJIRPOWEANFUSNCZVDVZNMSFEKLOEPZLDKDJWSAAAAAAAOERHJCTNCKFRIMVKSOFOMKMANREWNBN RZUDRGXEEEEENFQIDVLQNCKNEEEEEDGLLLLLLAWIOSNCDARLODMTOEJXMILDFJROTKJSDNLVCZNN | |
![]() |
|
| insecure | Sep 30 2005, 04:57 AM Post #8 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
No, it isn't. |
![]() |
|
| Donald | Sep 30 2005, 12:34 PM Post #9 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
ARGH!!!! Typo!!!! Sorry. Psalms 33:6-10. Thanks for catching that Insecure. |
![]() |
|
| PulsarSL | Oct 3 2005, 11:08 PM Post #10 |
|
Super member
![]() ![]() ![]() ![]() ![]() ![]()
|
What software were you using for that, insecure? Looks pretty powerful. Custom, I suppose? Pulsar |
![]() |
|
| insecure | Oct 4 2005, 12:15 AM Post #11 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
A program I wrote a few years ago. I did actually write an improved version, complete with crib-dragging, but I appear to have lost it. It's almost 1200 lines long. Otherwise, I'd have posted it here. |
![]() |
|
| PulsarSL | Oct 4 2005, 07:08 PM Post #12 |
|
Super member
![]() ![]() ![]() ![]() ![]() ![]()
|
ugh, nothing's worse than that Pulsar |
![]() |
|
| insecure | Oct 4 2005, 07:59 PM Post #13 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Yeah, but I still have the original version. Just not the crib-dragging version. So I could always add in crib-dragging again (or just look harder!). Shame we can't post stuff here really. That is, I don't know whether we can. 1200 lines in one article is probably pushing it! |
![]() |
|
| Revelation | Oct 4 2005, 08:22 PM Post #14 |
|
Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Do you need a host for your application? I can host it on my FTP. |
|
RRRREJMEEEEEPVKLWENFNVJKEEEEEAOLKAFKLXCFZAASDJXZTTTTTTTLSIOWJXMOKLAFJNNKFNXN RAGRBAQEMHIGDJVDSEOXVIYCELFHWLELJFIENXLRATALSJFSLCYTKLASJDKMHGOVOKAJDNMNUITN RRRRLJVEEEEECLYVYHNVPFTAEEEEEMWLMEIRNGLARWJAKJDFLWNTIERJMIPQWOTZEOCXKNUBNXCN RJIRPOWEANFUSNCZVDVZNMSFEKLOEPZLDKDJWSAAAAAAAOERHJCTNCKFRIMVKSOFOMKMANREWNBN RZUDRGXEEEEENFQIDVLQNCKNEEEEEDGLLLLLLAWIOSNCDARLODMTOEJXMILDFJROTKJSDNLVCZNN | |
![]() |
|
| insecure | Oct 4 2005, 08:32 PM Post #15 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
No, not really. It's just C source, and anyway I already have as much Web space as I could possibly want. |
![]() |
|
| 1 user reading this topic (1 Guest and 0 Anonymous) | |
| Go to Next Page | |
| « Previous Topic · General · Next Topic » |
- Pages:
- 1
- 2





![]](http://209.85.122.85/static/1/pip_r.png)



1:22 AM Nov 25