Be it a bit late, I would like to clarify a few concepts
proposed in this thread. First, I'll start off by pointing
out the two main differences between RSA and DSA.
This lies simply in the problem of which renders their
assumed security. I'll also spare any mathematical
notation, aside from a handful of variables, unless
asked to elaborate otherwise.
Obviously, most of us know that the RSA algorithm relies
on the difficulty of factoring large primes for its
assumed
security. I use the word "assumed" because it is just that.
There is no inherent proof that one must factor
n, in
order to deduce
m from
c and
e. This, however, is our best
cryptanalytic viewpoint thus far. Consider RSA's security
a mere conjecture. Perhaps a safe one, but still volatile.
It was pointed out that DSA is based off of the ElGamal
algorithm. To be more exact, it is modeled from the quite
similar ElGamal
and Schnorr schematics. These
algorithms are based upon a much different problem.
This problem being, calculation difficulty in regards to
discrete logarithms in a finite field. One thing to keep
in mind of - DSA isn't derived from the aforementioned
algorithms; it is only similar in mathematical approach.
DSA may be the official standard, but RSA has always
been the
de facto king of asymmetry. My main argument
is that the construction of DSA was private, thus minimizing public
analysis, whereas RSA has seen many, many solid years of
cryptanalysis. It's faster than DSA and gives us the confidence
of such tried-and-true robustness.
Now for the miscellany.
DSA can in fact be used for encryption, but is not intended
for this, apparently. I won't go into this, but this is just to
confirm any speculation. Either way, I don't recommend it,
for various reasons. If you can't or don't want to use RSA
at all, then encrypt via ElGamal and sign with DSA. It's the
second most common configuration, in many applications.
Also, GnuPG
can use RSA for signatures; not just DSA.
"
The difficulty of cracking RSA and DSA with identical key lengths
are the same" - another conjecture of which isn't exactly
accurate, but isn't worthy of a discussion for this particular
thread.
Last but not least, I saw the phrase stating that any key larger
than that of 56 bits is secure. Highly false, this statement. I
have a very strong, and rationale-induced, opinion on this very
thing. Regardless of what you've been told, what hype suggests,
or what the majority of utilities implement by default, there is
an important "rule" that one should follow -
2n for n.
This simply means, to maximize your chance of actually
reaping
n bits of security, use a
2n-bit key. I won't go
off into the mathematical spree of this reasoning, but I will point
you to my article of which explains it. Just mosey on over to:
Just How Secure ARE Those 128-bit Keys?
Now, to why I believe that statement to be "highly false."
To summarize my take on it - use 256-bit keys
at minimum to
best assure yourself of 128-bit security, of which is generally
regarded as the most conservative minimum. Don't be fooled,
however. Not just everything is better than 56-bit. Take 64-bit,
for example, of which was recently exhausted via distributed.net's
RC5-64 challenge. Many cryptographers will agree than 80 to 90
bits is just above the assumed "safe-from-brute-force" mark, in
most predictions of computing growth. Disregard that assumption,
though, as it just isn't worth risking. Besides, as 128-bit keys will
render approximately equal setup times as those of 64-bit keys -
why go any smaller?
In all actuality, it isn't even so much brute force that worries us,
in many cases, but collision attacks, which call for the
2n for n
guidelines. You may read more pertaining to that, via the
supplied link.
Even then, I'm willing to bet that the majority of users do not
understand the concept of proper key creation and management.
'tis a shame and the one facet of cryptography that isn't taught
enough. Aside from establishing the importance of flawless
implementation, this is one of the more common reasons that
many cryptosystems fail.
But I suppose all of this lies in your interpretation of security. As
civilians, it isn't likely that we'll face cryptanalytical attacks or such
a hefty key exhaust as that of which would require immense power
from the civilian world. It isn't impossible, by any means, but let's
face it ... in terms of what is practical and likely to happen, even
somewhat small key sizes will suffice. But that's another ball game.
The more important issue is theoretical, long-term security. The
better choice is 256-bit, right now. It makes perfect sense to those
who understand the cryptanalytical theory. Given a read of the link
I provided, that should well-prepare you for understanding just that.
Well, that concludes a cryptanalyst's opinionated rant. Pardon me.
Cheers, fellas.