Comparison of DES, Triple DES, AES, blowfish encryption for data

前端 未结 8 2158
礼貌的吻别
礼貌的吻别 2020-11-28 01:10

Does anyone have pros and cons together for comparing these encryption algorithms ?

相关标签:
8条回答
  • 2020-11-28 01:16

    The encryption methods described are symmetric key block ciphers.

    Data Encryption Standard (DES) is the predecessor, encrypting data in 64-bit blocks using a 56 bit key. Each block is encrypted in isolation, which is a security vulnerability.

    Triple DES extends the key length of DES by applying three DES operations on each block: an encryption with key 0, a decryption with key 1 and an encryption with key 2. These keys may be related.

    DES and 3DES are usually encountered when interfacing with legacy commercial products and services.

    AES is considered the successor and modern standard. http://en.wikipedia.org/wiki/Advanced_Encryption_Standard

    I believe the use of Blowfish is discouraged.

    It is highly recommended that you do not attempt to implement your own cryptography and instead use a high-level implementation such as GPG for data at rest or SSL/TLS for data in transit. Here is an excellent and sobering video on encryption vulnerabilities http://rdist.root.org/2009/08/06/google-tech-talk-on-common-crypto-flaws/

    0 讨论(0)
  • 2020-11-28 01:17

    DES is the old "data encryption standard" from the seventies.

    0 讨论(0)
  • 2020-11-28 01:25
                    DES                               AES
    Developed       1977                              2000
    Key Length      56 bits                           128, 192, or 256 bits
    Cipher Type     Symmetric                         Symmetric
    Block Size      64 bits                           128 bits
    Security        inadequate                        secure
    Performance     Fast                              Slow
    
    0 讨论(0)
  • 2020-11-28 01:32

    AES is the currently accepted standard algorithm to use (hence the name Advanced Encryption Standard).

    The rest are not.

    0 讨论(0)
  • 2020-11-28 01:33

    AES is a symmetric cryptographic algorithm, while RSA is an asymmetric (or public key) cryptographic algorithm. Encryption and decryption is done with a single key in AES, while you use separate keys (public and private keys) in RSA. The strength of a 128-bit AES key is roughly equivalent to 2600-bits RSA key.

    0 讨论(0)
  • 2020-11-28 01:35

    Use AES.

    In more details:

    • DES is the old "data encryption standard" from the seventies. Its key size is too short for proper security (56 effective bits; this can be brute-forced, as has been demonstrated more than ten years ago). Also, DES uses 64-bit blocks, which raises some potential issues when encrypting several gigabytes of data with the same key (a gigabyte is not that big nowadays).
    • 3DES is a trick to reuse DES implementations, by cascading three instances of DES (with distinct keys). 3DES is believed to be secure up to at least "2112" security (which is quite a lot, and quite far in the realm of "not breakable with today's technology"). But it is slow, especially in software (DES was designed for efficient hardware implementation, but it sucks in software; and 3DES sucks three times as much).
    • Blowfish is a block cipher proposed by Bruce Schneier, and deployed in some softwares. Blowfish can use huge keys and is believed secure, except with regards to its block size, which is 64 bits, just like DES and 3DES. Blowfish is efficient in software, at least on some software platforms (it uses key-dependent lookup tables, hence performance depends on how the platform handles memory and caches).
    • AES is the successor of DES as standard symmetric encryption algorithm for US federal organizations (and as standard for pretty much everybody else, too). AES accepts keys of 128, 192 or 256 bits (128 bits is already very unbreakable), uses 128-bit blocks (so no issue there), and is efficient in both software and hardware. It was selected through an open competition involving hundreds of cryptographers during several years. Basically, you cannot have better than that.

    So, when in doubt, use AES.

    Note that a block cipher is a box which encrypts "blocks" (128-bit chunks of data with AES). When encrypting a "message" which may be longer than 128 bits, the message must be split into blocks, and the actual way you do the split is called the mode of operation or "chaining". The naive mode (simple split) is called ECB and has issues. Using a block cipher properly is not easy, and it is more important than selecting between, e.g., AES or 3DES.

    0 讨论(0)
提交回复
热议问题