| 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: |
| Cryptanalysis Software Thread | |
|---|---|
| Topic Started: Oct 6 2005, 03:07 PM (511 Views) | |
| insecure | Oct 6 2005, 03:07 PM Post #1 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Might want to change it from "cryptoanalysis software" to "cryptanalysis software"
Is it okay to post actual software there, not just links thereto? (Provided it's All Our Own Work, of course, and provided it's not too huge.) |
![]() |
|
| Revelation | Oct 6 2005, 03:39 PM Post #2 |
|
Administrator
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
That's fine with me.
I have changed my typo |
|
RRRREJMEEEEEPVKLWENFNVJKEEEEEAOLKAFKLXCFZAASDJXZTTTTTTTLSIOWJXMOKLAFJNNKFNXN RAGRBAQEMHIGDJVDSEOXVIYCELFHWLELJFIENXLRATALSJFSLCYTKLASJDKMHGOVOKAJDNMNUITN RRRRLJVEEEEECLYVYHNVPFTAEEEEEMWLMEIRNGLARWJAKJDFLWNTIERJMIPQWOTZEOCXKNUBNXCN RJIRPOWEANFUSNCZVDVZNMSFEKLOEPZLDKDJWSAAAAAAAOERHJCTNCKFRIMVKSOFOMKMANREWNBN RZUDRGXEEEEENFQIDVLQNCKNEEEEEDGLLLLLLAWIOSNCDARLODMTOEJXMILDFJROTKJSDNLVCZNN | |
![]() |
|
| Guest | Oct 6 2005, 09:34 PM Post #3 |
|
Unregistered
|
Executables aren't allowed in attachments. Might I reccommend www.yousendit.comwww.yousendit.com? It allows up to 1 gb files, and automatically scans for viruses. PUUUUUUUUUUULSAR |
|
|
| PulsarSL | Oct 6 2005, 09:34 PM Post #4 |
|
Super member
![]() ![]() ![]() ![]() ![]() ![]()
|
Sorry, that was me. And actually, yousendit deletes your file after 1 week or 25 downloads I didn't realize that before.A free webhost with ftp access would work. |
![]() |
|
| insecure | Oct 6 2005, 10:01 PM Post #5 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Executables aren't really an issue, since nobody here would be daft enough to run an executable they'd downloaded off the Web from a crypto forum - would they? I was thinking about posting source code, not binaries. Even if I were stupid enough to try to run executables I found here, my operating system isn't stupid enough to let me try - it'll just say "Permission denied". If I insist, it'll then say "cannot execute binary file". |
![]() |
|
| PulsarSL | Oct 7 2005, 02:12 AM Post #6 |
|
Super member
![]() ![]() ![]() ![]() ![]() ![]()
|
I would run executables if it was from you guys -- as for outsiders deciding, that's up to them. Source is good too, but what do we do about very long programs? |
![]() |
|
| insecure | Oct 7 2005, 07:33 AM Post #7 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Well, most programs aren't all that long. My CBC mode thing was under 200 lines, and even my mono cracker was only 25KB. But what if we do get a longer source than that? Well, there's a possible solution, or at least there is on Linux - it's called file compression. You run the source through a little program that scrunches it up small. You put the scrunched up version on the Web. Then whoever wants it copies it down, and runs it through a program to unscrunch it back to its original glory. Linux users have a number of compression formats from which to choose - and it wouldn't surprise me if the idea had spread to Windows by now. |
![]() |
|
| PulsarSL | Oct 7 2005, 09:03 PM Post #8 |
|
Super member
![]() ![]() ![]() ![]() ![]() ![]()
|
I mean for posting the source in a message, not as a file. Pulsar |
![]() |
|
| insecure | Oct 7 2005, 10:35 PM Post #9 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Sorry, Pulsar!
I'm not sure what the line limit is on this board. Still, it shouldn't be too hard to find out - a simple binary search will do it! |
![]() |
|
| Donald | Oct 25 2005, 04:59 AM Post #10 |
|
Elite member
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
This is the sad, sad story of an idiot programmer who couldn't stop adding features to a program no one (including himself) was likely to ever use again. <sigh> You see, insecure posted this really cool two time pad challenge. Now to beat a two time pad, you xor pad1 and pad2 together, which eliminates the random key. Now you just have two plain text messages xored together, and you can solve them by dragging plain text words across the pad. This works because the really cool thing about xor is that it undoes itself. So when you xor by a word that is in message 1, you reveal the words at that location in message 2. Being a programmer, I, of course, immediately set about writing a SIMPLE routine to do the dragging for me. It worked quite well. But then the trouble started. You see, the Java program I wrote DID drag text and give me a list of results. But it wasn't really very object oriented, modular, or well designed. I've been trying to teach myself Java, so I thought I should clean my routine up a bit and make it nicer. Then I realized that I could turn the encryption method into an interface and class so that I could plug in any particular encryption scheme I wanted. Now my program was starting to look kinda cool. I added a few more features to fill out the coolness. But really, in todays age of fancy schmancy windows interfaces, shouldn't my program have a pretty gui on top? oops. THAT was a mistake. <sigh> So then I'm staying up late nights struggling with swing, adding more classes and methods, and, of course, more functionality. Until today, almost TWO WEEKS after I got started, I finally have the over blown monster done enough to share. Of course, everyone, including myself, completed the actual challenge a long time ago. And two time pads aren't exactly a popular kind of puzzle. So, this was really a lot of blood, sweat and tears to produce an absolutely useless product. <sigh> On the other hand, I had a BLAST doing it! And it WAS educational.Well, now I've decided to SHARE my folly with the rest of you. Attached to this message you will find a 31k zip file. It includes one jar file (TwoTimePad.jar) and 3 Java source files. If you are feeling particularly trusting, just double click the jar file and you will be running the program. If you are feeling a bit more cautious, look over the three Java files, then compile them and run TwoTimePad. You might also want to look over the code just for a good laugh. I'm teaching myself Java and I'm certain the code is full of REALLY stupid stuff. After you are done laughing, send me a note pointing out the flaws. I won't consider that an insult but a favor. I program for a living, having my code corrected when i'm just playing around is a GOOD thing because someday I will very likely need to do it right when lots of money (and my job) is on the line.
Ok, on to how the program works: When you run TwoTimePad you will get a small window that looks like this: ![]() Paste in the two pads in hex format with spaces between each byte. Click OK. Now you see the main two time pad breaking interface: ![]() Type the text you want to drag into the text field and click DRAG (or hit Enter). You will get a list (as you see above) that consists of all of the results from dragging your text across the pad. Entries with an arrow (->) on the left are "Significant", meaning they don't have any control characters and so the program sorts them to the top. The three digit number is the position within the pad, and it is followed by the text that results from the drag at that position. If any of the entries look promising (like the entry for pos 027 in the below pic): ![]() Select that entry from the drag list and then click one of the message buttons to assign that entry to message 1 or message 2. The drag item will be removed from the drag list, added to the "locked" list, and the text will show in the message display as you see in the below pic: ![]() Note: When you assign a drag, TwoTimePad is smart enough to ALSO assign the PARTNER of that drag. So in the above example we dragged the word "light", and found the text "d the". We assigned "d the" to message 1, and TwoTimePad automatically assigned "light" to message 2 and added it to the locked list as well. These items will remain linked so that if you change one, the other will automatically be adjusted to match. You can add as many items from that one drag to the locked list as you wish. (pos 048 looked very good in the above example) And then you can try a new drag based on what you have discovered so far or perhaps you have another crib to attempt. Just type it into the drag text field and click DRAG again. Items in the locked list can be removed selecting that item and then clicking on the CLEAR radio button. (The partner of that item will be removed as well) You can also switch which message any locked item is assigned to by selecting that item then clicking on the MSG-1 or MSG-2 radio button above the locked list. (the partner will automatically be switched to match) You will notice that your locked list gets cluttered pretty quickly. You probably tried "light", then tried " light" and " light ", and so on. You can click the MERGE button at any time and TwoTimePad will go through and combine all of your overlapping entries and make your locked list much more readable. Only items whose overlapping sections match EXACTLY, and who's partners overlapping sections ALSO match will be combined. And for those of you who have already completed insecure's first challenge, (and THANK YOU insecure for that inspiration!), I've added two more simple two time pad challenges just so you will have something to play around with the program. And if you know how to program in Java, PLEASE feel free to insult my code as much as you want, just so long as you TELL me about it so I can improve. Donald |
![]() |
|
| 1 user reading this topic (1 Guest and 0 Anonymous) | |
| « Previous Topic · Community · Next Topic » |





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



I didn't realize that before.



10:38 AM Nov 27