Skip to contentSkip to conversation

MK Digest Size

dm-crypt Jorge Fábregas 2 participants 4 messages Jul 10, 2011

lore
Share & tools
lore
#0 lore raw

Hello everyone,

I'm new to DM-Crypt/LUKS and I'm wondering why is it that, when I format a partition (luksFormat) using --hash sha256, I still get to see 20 HEX characters (160 bits) for the MK digest? Shouldn't I see 32 HEX chars
(256 bits)? Or is that sha256 is used in the PBKDF2 process but the
function is instructed to deliver just 160 bits?

One final thing just to make sure: is the algorithm that appears under "Hash spec" in the header..is this the same hash-algorithm used (along with PBKDF2) for the user-keys? as well as the one used with PBKDF2 for the MK digest?

The man page says for the hash option: ...used in LUKS key setup
scheme and volume key digest. So it appears that "Hash spec" is used for both...but then, I don't understand why I get just 160 bits when I specify sha256 :(

Thanks!

Regards,
Jorge

#1 lore raw
Quoted 1 line · Jorge Fábregas

I still get to see 20 HEX characters (160 bits) for the MK digest?

I'm sorry. I meant 20 pairs of HEX characters (40 chars) as they appear nicely formatted in the luksDump output.

Quoted 1 line

Shouldn't I see 32 HEX chars (256 bits)?

Same here (64 hex characters ).

Quoted 2 lines

Or is that sha256 is used in the PBKDF2 process but the function is instructed to deliver just 160 bits?

Ok, I'm going to try to answer myself as I just read again the latest specification. It appears this is the case (just 160 bits even if you use sha256) because there are just 20 bytes available for "mk-digest" in the header.

I'm just curious: is having just 20 bytes for the digest a limitation here? Are there any plans to expand this field in the future?

Quoted 4 lines

One final thing just to make sure: is the algorithm that appears under "Hash spec" in the header..is this the same hash-algorithm used (along with PBKDF2) for the user-keys? as well as the one used with PBKDF2 for the MK digest?

Apparently yes.

Sorry for the noise!

Regards,
Jorge

#2 lore raw
In reply to Jorge Fábregas
Quoted 5 lines · Jorge Fábregas

I'm new to DM-Crypt/LUKS and I'm wondering why is it that, when I format a partition (luksFormat) using --hash sha256, I still get to see 20 HEX characters (160 bits) for the MK digest? Shouldn't I see 32 HEX chars
(256 bits)? Or is that sha256 is used in the PBKDF2 process but the
function is instructed to deliver just 160 bits?

Yes, it uses sha256 but only first 20 bytes is stored. This is limitation of the current LUKS on-disk header (20 bytes was fixed length of SHA1).

MK digest is just for verification that decrypted key is correct, 20 bytes is enough for that.

Quoted 4 lines

One final thing just to make sure: is the algorithm that appears under "Hash spec" in the header..is this the same hash-algorithm used (along with PBKDF2) for the user-keys? as well as the one used with PBKDF2 for the MK digest?

Yes, hash algorithm in LUKS header is used in PBKDF2 and AF splitter.

Quoted 4 lines

The man page says for the hash option: ...used in LUKS key setup
scheme and volume key digest. So it appears that "Hash spec" is used for both...but then, I don't understand why I get just 160 bits when I specify sha256 :(

See above, header structure is fixed, change would mean binary incompatibility. Only MK digest is limited here, in all other cases it uses real length of hash.

Milan

#3 lore raw

Thanks Milan for confirming and for all the details. I'm all clear now.

All the best,
Jorge