| 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: |
| Double Vigenere; Simple Idea for harder crackable code | |
|---|---|
| Topic Started: Feb 10 2006, 05:07 PM (750 Views) | |
| Boulemans | Feb 10 2006, 05:07 PM Post #1 |
|
Just registered
![]() ![]() ![]()
|
I've had an idea to make Vigenere a little bit harder to crack. don't know if it is a brand new idea, but it is new to me First, you choose a plaintext, in this example, the plaintext will be 'DOUBLE VIGENERE'. Second, you made up a nonsens code text, like 'mhjoui'. Next, you encrypt your plaintext as a normal vigenere code. PVDPFM HPPSHMDL now, this is just like a normal vigenere, now the new part: you take a second code text, again, pure nonsens and with another text lengt (use a lengt that is relative prime with the lenght of the first keyword), like 'puiazerh'. Now you encrypt PVDPFM HPPSHMDL again, now with this second keyword, making EPLPEQ YWEMPMCP To decrypt, it's a simple job of using the keywords in the oposite order. To crack, I think it is a lot harder. To test the hardness of this encryption method, I'll leave a message in the challange forum, encrypted in the way discribed in this message. |
![]() |
|
| insecure | Feb 10 2006, 05:39 PM Post #2 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Double encryption with Vigenere using two keys of co-prime lengths is equivalent to encrypting with a single key equal in length to the product of the two co-prime-length keys. So, if you have enough plaintext, it's trivial to crack. Your point about "nonsense" keywords is a reasonable one, since it foils a dictionary attack - but a dictionary attack would be overkill for Vigenere in any case. I lack the time to prove my point by attacking your challenge cipher right now. Sorry, but that's life. If there's enough plaintext to make it feasible, though, I doubt whether it will take donald or rot13 very long. |
![]() |
|
| Boulemans | Feb 10 2006, 05:45 PM Post #3 |
|
Just registered
![]() ![]() ![]()
|
I've given you enough plaintext in the challange discussion, so if it size matters, it will be easy to crack. |
![]() |
|
| Revelation | Feb 10 2006, 07:53 PM Post #4 |
|
Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Do you understand what insecure said? The way you encrypt it, you don't have to find the two keys. You will find a representative key that can crack the whole ciphertext. |
|
RRRREJMEEEEEPVKLWENFNVJKEEEEEAOLKAFKLXCFZAASDJXZTTTTTTTLSIOWJXMOKLAFJNNKFNXN RAGRBAQEMHIGDJVDSEOXVIYCELFHWLELJFIENXLRATALSJFSLCYTKLASJDKMHGOVOKAJDNMNUITN RRRRLJVEEEEECLYVYHNVPFTAEEEEEMWLMEIRNGLARWJAKJDFLWNTIERJMIPQWOTZEOCXKNUBNXCN RJIRPOWEANFUSNCZVDVZNMSFEKLOEPZLDKDJWSAAAAAAAOERHJCTNCKFRIMVKSOFOMKMANREWNBN RZUDRGXEEEEENFQIDVLQNCKNEEEEEDGLLLLLLAWIOSNCDARLODMTOEJXMILDFJROTKJSDNLVCZNN | |
![]() |
|
| Donald | Feb 10 2006, 08:04 PM Post #5 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
rot13 discussed the same thing here. And insecure is absolutely correct, for example if you use one key of 7 and another of 13, its the equivilent of using a single encryption with a key of 7*13=91 Now the security of a vigenere is drectly releated to it's key length. There MAY be some holes in the double vigenere that might give clues to how the two keys are combining, but when I played with it last time, I couldn't find anything actually useful. SO, unless someone can figure out a way to exploit the rotating relationships, the double vigenere is going to require a MUCH bigger hunk of text to attack because of the effective period. Your challenge is 706 characters long. If you picked 7*13, or something smaller, it's probably doable. However, if you chose keys of, say, 13 and 17, then we are only going to have about 3 repeats of the key and things get much more difficult. I'll take a crack at it when I have some more time. |
![]() |
|
| rot13 | Feb 10 2006, 08:17 PM Post #6 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Post moved. |
![]() |
|
| Revelation | Feb 10 2006, 08:25 PM Post #7 |
|
Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
You are absolutely amazing rot13!
I am not sure I completely understand what you did. Could you please post some source code? And how did you get that great idea? |
|
RRRREJMEEEEEPVKLWENFNVJKEEEEEAOLKAFKLXCFZAASDJXZTTTTTTTLSIOWJXMOKLAFJNNKFNXN RAGRBAQEMHIGDJVDSEOXVIYCELFHWLELJFIENXLRATALSJFSLCYTKLASJDKMHGOVOKAJDNMNUITN RRRRLJVEEEEECLYVYHNVPFTAEEEEEMWLMEIRNGLARWJAKJDFLWNTIERJMIPQWOTZEOCXKNUBNXCN RJIRPOWEANFUSNCZVDVZNMSFEKLOEPZLDKDJWSAAAAAAAOERHJCTNCKFRIMVKSOFOMKMANREWNBN RZUDRGXEEEEENFQIDVLQNCKNEEEEEDGLLLLLLAWIOSNCDARLODMTOEJXMILDFJROTKJSDNLVCZNN | |
![]() |
|
| rot13 | Feb 10 2006, 08:31 PM Post #8 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
I modified my program so that after it has an initial guess for all the keys, it tries modifying each key value to see if it can do any better. It spit out the correct keys. Then I tried with about 1/2 the original ciphertext and it was still able to crack it. |
![]() |
|
| rot13 | Feb 10 2006, 08:47 PM Post #9 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Well, in the previous discussion I had outlined how I might attack it, although then I was attacking it with known text. This really wasn't much of a step beyond that. I keep a couple of .o files lying around with common stuff like counts.o for english frequency counts and correlate.o for correlation coefficients. Rather than posting the source for 3 files, I just combined the needed parts into one. I did this under Linux, you'll need the -lm flag on gcc because it uses sqrt(). The command line I used was: gcc -o doublevig2 doublevig2.c -lm Then to run it against a file called double.vig: doublevig2 double.vig 8 9 The program isn't as efficient as it could be - copying and comparing whole keys might be a bit of overkill, but since it really isn't doing a LOT of computation, it should be fine.
|
![]() |
|
| Donald | Feb 12 2006, 04:12 AM Post #10 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
What incredible work rot13! Especially considering the nature of the plain text! Speaking of which, I'm curious as to Boulemans' rational for the unusual text. Were you hoping to cause repeats? |
![]() |
|
| loki | Aug 15 2006, 02:30 PM Post #11 |
|
Advanced Member
![]() ![]() ![]() ![]() ![]()
|
just interested in seeing how difficult it would really be for someone to crack double vigenere; Mary queen of scotts, used a technique called nulls, I have used it here. I am curoius if it will twart rot13 as there seems to be nothing that is a curve ball for him. |
| c(x) = 3x3 + x2 + x + 2; Find the inverse | |
![]() |
|
| 1 user reading this topic (1 Guest and 0 Anonymous) | |
| « Previous Topic · General · Next Topic » |





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



2:58 PM Nov 28