Jump to content

Ideas for a Cryptography class


Recommended Posts

My Story:

I've been doing various cryptography puzzles and challenges for the past few months (more like a year or so) breaking a huge array of different encryptions and/or ciphers, some even piled 3 or 4 on top of each other. What I've found is that I find myself repeatedly coding various apps (in VB.NET, my language of choice) to do such things as Frequency Distribution, Index Shifting, Ascii Shifting, Dictionary Attacks, and so on. So I've finally decided that since I've been getting more days off at work than usual, I should take advantage of it and put the spare time towards making something useful. So I'm currently working on making a class containing subclasses to deal with...well as much as I can think of relating to cryptography and ciphers. Every subroutine that actually does something is fully customizable. Output formats,  input formats, character sets, etc.

Where You Come In:

I need more ideas. That's as simple as it gets. What can I make this thing do? What encryption, decryption, ciphering methods can I include and how can I make them interesting? I'm making it as a custom class library, so when it's all finished and compiled into a dll anybody that uses VB.NET and likes cryptography can do whatever they want with it. So...anybody?

Thanks for the help!

Link to comment
Share on other sites

This would make a great project for everyone to work on together, I myself want to learn more about encryption.  I have a pretty good understanding of it but never gotten any real-world exp with it.  Be great if you could post/link to the source code.

Link to comment
Share on other sites

I never thought of that. Great idea!

I just finished the first function of the Analysis class: AnalyzeFrequency(), and the Shift() function of the AsciiShift class.

I packed and uploaded what I've got so far. There's some info in the project folder in Notes.txt about my build environment in case anyone wants to know.

I made both .zip and .7z archives, as well as sfv and md5 checksums of the folder contained within.

Everything can be found here: http://fs.kb_the_keeper.elitemail.org/

Let's see where this goes! Anyone with contributions can email them to me at fear.neverending@gmail.com. I'll be sure to give credit where credit is due.

Thanks all  :D

Link to comment
Share on other sites

  • 2 months later...

hackits.de

take a look at the site. would that be what your lookin for?

Link to comment
Share on other sites

  • 1 month later...

I've had this idea floating around my noodle for some time. I had this idea since around the time Johnny Mnemonic came out. My thought was to use a file for the key. If a prearranged file could be determined (like notepad.exe), you would use the information contained within (ascii or the likes) as the key.

I have next to no knowledge of encryption that would be of any use, so I have no clue if that would even be possible.

Link to comment
Share on other sites

Hey, sounds like a good idea, i was also thinking of creating a program with a bunch of encrypt/decrypt types...but as usual i was too lazy to be bothered making it haha.

also, in regards to using the contents of a file as a key, its a freaken brilliant idea. In fact, it was one of the greatest ideas ever in terms of encryption. The Beale encryption (which worked on very similar logic) still hasnt been broken to this day (as far as i know). It was an encryption technique developed by thomas J. Beale, a gold miner, in the earlier 19th century. To skip the tale, it pretty much used a book (or other text) to create a substitution key by allocating the first letter of each word to their respective number that they came in the text e.g.:

I(1) was(2) extremely(3) happy(4) and(5) amazed(6) when(7) i(8) found(9) this(10) site(11).

A table of substitutions is then created:

a:5,6 d: g: j: m: p: s:11 v: y:

b: e:3 h:4 k: n: q: t:10 w:2,7 z:

c: f:9 i:1,8 l: o: r: u: x:

7 4 5 10 11 6 4 6 10 = "whats a hat" ...its actually better to construct the above table using the numbers first with the associated letters...but meh.

as you can see this very small text doesnt have enough to produce an alphabet, but with a large text (say a book, or from your example the code from a program or file!) you can have many substitutions for each letter, making it incredibly hard for the decryptor to decypher. in fact, you pretty much need the key text to do it if its a big enough key. As well as that, its extremely difficult to solve if it is a one of publication used as the key is a one off text.

So maybe you could add a section which requires the user to specify a word document or txt file as the key. Then 2 people could simply exchange an unnoticeable file (e.g. a school essay) and use it as the text. since noone else would have the text it makes it fairly secure.

anyway, sorry for the long post, just thought id add to the ideas.

so in conclusion, yes, using a program such as notepad could be a good use of a key (you may need to split the characters into sets though...) but there are only so many programs to use which makes it slightler easier to figure out the key, also you cant use the same key multiple times or the security is dramatically decreased. therefore being able to specify a file created would be a good way of creating a secure key as well as using your brilliant idea ;)

the downsides of this method are essentially the same as a one-time pad (a random key you use only once); namely: you and the reciever would need to have the file already (and of course you cant just send it or that defeats the security), its time consuming to make a new file each time you want a new key and in that point...you need to make a new key every time for absolute security.

a REALLY awesome idea would be to allow a url to be entered and the html from the site to be used as a key of sorts...just an idea (probably a hard one to implement haha).

sorry again for the freaken mammoth post, if you want me to help i also like VB.NET. ive got some other ideas, but i wont post them now...ive already typed too much.

Link to comment
Share on other sites

Even though the Beale encryption is secure since nobody has the ciper text, wouldn't it be possible to break the code by simply using either frequency analysis or sites likes this (http://snicker.nebrwesleyan.edu/~mcclung/getCipher.html) that work off of word patterns?

Nope......provided that the book/file used as a key is long enough...in the crappy example i gave there were barely any words in the key. However, if we chose a book such as 'The Code Book by Simon Singh' (excellent book on this stuff btw) or say all the words used as replies in this thread, then you would have a crap load of numbers which all refer to the same letter. (its essentially a way of creating a homophonic substitution cypher with a shitload of homophones and an easy-to-remember key (well not easy to remember, but easy to look at, especially if you had a program for it).)

if you were to try a frequency analysis on a piece of text (lets say this post) then you would find that each number would come up an incredibly small amount of times (due to the sheer amount of numbers we would have available for each letter). Hence it would not be possible to determine which letters are what through frequency analysis.

pretty nifty eh ;)

but like i said, the downside is you have to type in a large amount of text to make a good enough key (hence the reason being able to use a website's text might make the process alot quicker).

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...