-4

It is my intention to reinvent the wheel. I learn many things by example. That's important information you should consider when answering. This isn't homework, it's purely a side project.

Now, I've heard of modulus math. I'm trying to use it to make an uncrackable (by today's technology standards).

I have more than one question:

  1. How can you make encryption harder to crack (asymmetric)
  2. Random Numbers or Patterns (Like, there's a set standard, not random), why or why not.
  3. Is this formula vulnerable:

a = (unknown prime)

b = (unknown prime)

c = (unknown prime)

d = (a ^ b) mod c

Can you get a, b, and c if d = 9? Don't brute force it but actually make a formula to reverse it. If you can do so, post it.

Is this a good way to make a key, seed, or something of that nature? Why or why not?

By all means, answer what you understand, the best answer gets marked as so, and fairly!

Also, if you can, give me references to cryptology texts (Free).

Whippet
  • 322
  • 1
  • 11
  • 1
    You should **never ever ever** invent your own cryptographic system. Use a well-known, open crypto standard. In fact, don't even try implementing it yourself - use a well-known, well-tested implementation of the crypto system to make sure that your system is not vulnerable to side channel attacks. – templatetypedef Jan 28 '13 at 00:01
  • 1
    As you know, it's a side project. I do this for FUN. I like reinventing the wheel. – Whippet Jan 28 '13 at 00:07
  • 1
    I'm afraid your question(s) are not within the scope of Stack Overflow. Please see the first two Q&As at the [FAQs](http://stackoverflow.com/faq). Number theoretic questions would be more appropriate at http://math.stackexchange.com/, but in general your post is too broad. – A. Webb Jan 28 '13 at 00:23
  • @A.Webb Agreed - I've voted to close on that basis. – Duncan Jones Jan 28 '13 at 15:38
  • It's kind of like doing heart surgery for fun. – argentage Jan 28 '13 at 16:38
  • @airza A bit. With the important distinction that no one gets hurt (unless he actually *uses* it) – loopbackbee Jan 28 '13 at 19:44

1 Answers1

1

This is a broad question. As templatetypedef has mentioned, you shouldn't be designing any cryptography-related algorithm you plan to use in the real world, so you may want to forget about "trying to use it to make an uncrackable [cipher]" and leave that to the experts.

Answering your questions:

1- The general understanding is that if you want to make a message harder to "crack", you increase the key size. There's no point in developing a entirely new (and most certainly weak) cipher when there are tried and true algorithms for that.

2- It's difficult to tell what's being asked here, but I'll assume you're referring to the randomness of a given ciphertext. The general understanding is that any kind of pattern (non-randomness) of the ciphertext is a very bad sign. Ciphertext should be indistinguishable from pure random data, and there are several batteries of tests to check that (see ENT, Diehard and many others)

3- The formula you give is close to the one used in RSA, although a,b,c are not the primes directly. Also, it's not clear which one of your variables is the plaintext (hint: a cipher that can only encrypt prime numbers is not particularly useful). AFAICT, as you state, it's also not reversible (which is not a good thing at all, unless you don't plan on decrypting the messages ever...)

As a final note, you're looking for a cryptography reference, not a cryptology one. Many people associate cryptology with classic (and easy to break) ciphers, like Caesar's. Bruce Schneier's Applied Cryptography is a standard textbook on the subject. It's not free, but you can always try university libraries.

loopbackbee
  • 21,962
  • 10
  • 62
  • 97