I was wondering that what make RSA Asymmetric Cryptography Algorithm special. So I wrote a very simple algorithm that do the same work (Generate Public and Private Key) Now I want to ask you that What is the excellence of RSA vs my algorithm ? What's your idea?

This is my algorithm :

n = random 
e = factorial(n)  /* Public Key */ 
d = test(e)  /* Private Key */

return XXOXOXXOOXO  /* X values are some random numbers &
 O is the digits of e number in order */ 

[-] e just has 5 digits. [-] test function, actually generates couple of different random numbers (X) and combine the random numbers with O that are e digits.

So now we can get e from d but it's impossible to obtain d from e unless we guess all the possible values (Brute Force it) that needs time as the same as RSA.

  • 2
    1) RSA was made by respectable cryptographers, I haven't heard of you 2) RSA has been tested, vetted and implemented in a wide array of solutions. 3) RSA has been under wide scrutinity – Lucas Kauffman Jan 18 '14 at 12:08
  • 1
    It's quite easy to obtain d from e. Just run the "test" function on it and get a (somehow) valid "d" for it. Oops? What does your algorithm do? It's nonsense as it is now. – Thomas Jan 18 '14 at 12:55
  • 1
  • Dear friend, I know. I didn't say I invent a new cryptography alg, I just faced this question while I was researching on my project. And my comment that removed, was just for illogical reason of one of friends. Eventually I found my answer and it's done. – Seyed Hamed Shams Jan 18 '14 at 14:44
  • So how do I use e to encrypt a message that can be decrypted with d but not with e with your scheme? – CodesInChaos Jan 28 '14 at 17:35

The primary difference is that RSA is well defined, whereas your algorithm is incompletely defined. This means that nobody can use your algorithm in practice, while RSA is widely used.

The secondary difference is that your algorithm has no security proof, assumptions, goals, list of security properties you are trying to achieve, and list of security properties that you did not achieve, while RSA's were reviewed by experts. This means that there is no reason to trust your algorithm or even to know what it's supposed to secure.

The third difference is that your algorithm, as you describe, is intended to generate keys, while RSA is an asymmetric encryption algorithm. These are two entirely different things.

If you are truly interested in becoming a cryptographer and creating new algorithms, you should go to a school that teaches cryptography, like MIT. This will teach you how crypto works, how algorithms are designed and evaluated, common problems with algorithms, the difference between key generation and encryption, and a myriad of other things.

In the meantime, you are unsafe using crypto algorithms and protocols that have not gone through the standard, public community review process, and you are unsafe using algorithms designed by a non-cryptographer, especially when that non-cryptographer doesn't know the purpose of a pre-existing algorithm that they themselves bring up in conversation.

If you want security, always use proven crypto, never custom crypto.

  • I myself use proven algs like RSA, AES & etc. but it was the question that I faced and confused me. And Thank you very much for your answer. – Seyed Hamed Shams Jan 18 '14 at 13:56

Not the answer you're looking for? Browse other questions tagged or ask your own question.