Fabio said:
Note that is most important to protect key,
more than the type of used algorithm. I suggest you the use of
asymmetric algorithm for to protect symmetric algorithm's secret key.
Just a note..
When you use encryption (at most in this situation) you're basically
exchanging a big secret (the data you want to protect) with a little
secret (the key). Therefore you still have a secret to store..
Encrypting your symmetric key with a asymmetric key still requires you
to store a secret, and it's not always the best option.
A symmetric key can be just a hash (see HashAlgorithm-class) of a
pass-word/-phrase - and while it's properly possible to make this work
with a asymmetric key as well, it's more complicated.
But the asymmetric approach is often used (in NTFS's EFS among others)
when you have more users that require access to the same file: on NTFS
the file (the data) is encrypted by a symmetric key, which in turn is
encrypted with each users asymmetric key.
And a finally: you shouldn't encrypt non-random data with a asymmetric
cipher, because in some algorithms this weakens the key (RSA included).