What cryptographic algorithms are not considered secure, but yet are still widely used and available in standard libraries? If applicable, mention a secure alternative.
|
These are the most common:
|
|||||||||||||||||||||
|
|
The links below can quickly help you choose the proper method and key length for your security requirements (thereby avoiding insecure methods):
"This web site implements mathematical formulas and summarizes reports from well-known organizations allowing you to quickly evaluate the minimum security requirements for your system. You can also easily compare all these techniques and find the appropriate key length for your desired level of protection." |
|||
|
|
|
Although this quesiton is already answered, I'm missing a lot of answers.
Moreover, it depends on the use and purpose of the algorithm. Breaking DES is no hard, but is quite expensive. Consider who your attackers are and how much money and effor they can spend to break the security? |
|||
|
|
|
As of the end of 2010, the US government deprecates these algorithms based on recommendations from the very savvy folks at NIST:
MD5 never was an acceptable algorithm for government use, along with many other older algorithms. For security through the year 2030, they recommend at least SHA-224, 2048 bits for RSA or DSA, 224-bit EDCSA, and AES-128 or 3-key triple-DES be used. This has been in the works for several years. See this post and the NIST documents it references: http://securitymusings.com/article/1587/algorithm-and-key-length-deprecation Update: Another concise, useful set of advice is Cryptographic Right Answers by Colin Percival. |
||||
|
|
|
Insecure but widely used cryptographic algorithms include:
Secure alternatives: SHA-256 for hashing (SHA-512 if you have the same fetish on size than US Army, and/or if you want to kill performance on 32-bit systems), AES for symmetric encryption. For key agreement, consider ECDH (Diffie-Hellman over an elliptic curve) with one of the standard NIST curves (e.g. P-224, K-233 or B-233 -- but P-256 is more widely supported). For asymmetric encryption, use RSA with a large enough key (1024 bits for short term security, preferably 1536 or 2048 bits) and PKCS#1 padding (v1.5 "old-style" is fine, but OAEP is finer). For signatures, consider ECDSA (same curves than for ECDH) or RSA with a large enough key and PKCS#1 padding (v1.5 or PSS). Never design your own algorithm (or, if you do, never believe that it is secure). Most security issues, however, are not in the choice of algorithm, but in how they are used. WEP uses RC4, but RC4 is not one of the numerous weaknesses of WEP. Sony protected the PlayStation 3 with ECDSA, which is secure, but botched their randomness generator, resulting in a catastrophic failure (private key exposure...). |
|||
|
|
|
Obviously there are as many broken algorithms as there are programmers who write home-grown encryption systems, but by and large those are limited to a given software package. Several "password protection" schemes for documents and archives come to mind as examples. But the only general-purpose encryption algorithm (not hashing algorithm as others are listing) that is considered "broken" for normal use because of flaws in the algorithm (rather than key length), and which is still widely deployed and accepted, is RC4. Note that the primary reason RC4 sticks around despite its known flaws is that the vulnerability can be mitigated by throwing out the first few K output. Also, its the only widely-deployed stream cipher, and many programmers don't realize you can turn a block cipher into a stream cipher using an appropriate block chaining mode. |
|||||||||
|
|
Using a block cipher like Blowfish or AES, when operated in ECB (Electronic Code Book) mode. |
|||||
|
|
Context is important. Secure for what? How is something being used? For example:
|
||||
