[Ach] about the 3DES thing again
ianG
iang at iang.org
Tue Dec 3 14:15:01 CET 2013
The problem with t-des in all of its variants is that it is a 64 bit
block cipher. This makes it vulnerable to rainbow tables, which puts a
ceiling on its overall security.
Modern ciphers are typically 128 bit block sizes. In March at FSE, DJB
was opining that even 128 bits may be too small...
So, t-des and des and *all 64 bit block ciphers* and their variants are
more or less deprecated.
iang
On 3/12/13 02:41 AM, Aaron Zauner wrote:
> Hi,
>
> I gave some thought to what we discussed during the meeting. To keep people on track: We were talking whether we should add or remove the paragraph on 3DES that currently states:
>
> ```
> One special remark is necessary for 3DES: here we want to note
> that it theoretically has 168 bit security, however based on the NIST Special
> Publication 800-57
> \footnote{\url{http://csrc.nist.gov/publications/PubsSPs.html\#800-57-part1},
> pages 63 and 64}, it is clear that 3DES is only considered 80 bits / 112 bits.
> ```
> This needs further discussion and feedback from other people on the ML.
>
> My opinion:
>
> 1) We are critical of NIST (a bit too critical in my opinion) - yet we include a reference to a NIST publication citing security concerns with 1 or 2 key variants of 3DES (usually 3 keys for each iteration, yielding 168bit security)
> 2) I cannot find any popular SSLv3 library implementing 3DES with only one or two keys. [0] [1] [2]
> 3) So after all.. we exclude 3DES in example configurations, why include a statement on 3DES implementations that are not relevant to the paper? I’m sure they are out there. But they do not matter for us, right?
>
> Thanks,
> Aaron
>
>
> [0] - https://github.com/openssl/openssl/blob/master/crypto/des/des_enc.c
> - https://github.com/openssl/openssl/blob/master/crypto/des/des.h
> ```
> void DES_ede3_cbcm_encrypt(const unsigned char *in,unsigned char *out,
> long length,
> DES_key_schedule *ks1,DES_key_schedule *ks2,
> DES_key_schedule *ks3,
> DES_cblock *ivec1,DES_cblock *ivec2,
> int enc);
> ```
>
> [1] - https://polarssl.org/des-source-code
> ```
> #define DES_KEY_SIZE 8
> …
> typedef struct
> {
> int mode; /*!< encrypt/decrypt */
> uint32_t sk[96]; /*!< 3DES subkeys */
> }
> des3_context;
> ```
>
> [2] - http://git.savannah.gnu.org/cgit/gnutls.git/tree/lib/nettle/cipher.c?id=0d004a210db5d220c896456a165c81264fa4454a#n76
> - http://git.lysator.liu.se/nettle/nettle/blobs/master/des3.c#line36
> ```
> int
> des3_set_key(struct des3_ctx *ctx, const uint8_t *key)
> {
> unsigned i;
> int is_good = 1;
>
> for (i = 0; i<3; i++, key += DES_KEY_SIZE)
> if (!des_set_key(&ctx->des[i], key))
> is_good = 0;
>
> return is_good;
> }
> ```
>
>
>
> _______________________________________________
> Ach mailing list
> Ach at lists.cert.at
> http://lists.cert.at/cgi-bin/mailman/listinfo/ach
>
More information about the Ach
mailing list