0

I've read a couple times that MD5 is not an encryption, e.g. on MD5 ... Encryption? or Command Line Message Digest Utility.

Well, I get that it's a hash/message digest, and the explanation in the links above says an encryption has to have a key, while hash/md is a cryptographic hash function that produces just a signature. I don't really understand the difference. Couldn't you see the cryptographic hash function / algorithm as a key?

Also, what is the difference between something that's cryptographic and something that's encryption?

Paŭlo Ebermann
  • 73,284
  • 20
  • 146
  • 210
inman320
  • 501
  • 3
  • 13

3 Answers3

3

You can't "decrypt" a md5 hashed function, and you chose a bad algorithm if you want to transmit information and the receiver can't read it.

So encryption must be decryptable. MD5 is a "cryptographic" hash function, because it's very difficult to produce a block of information that has a specific given hash value. So if you want to sign a message, it is enough to sign the hash. This uses less computing power and the receiver can regardless be sure that the original message is untouched.

Heinzi
  • 5,793
  • 4
  • 40
  • 69
  • ah okay. so you're saying that by definition, an encryption must be decryptable, whereas something cryptographic is just a consistent obfuscation. is that right? – inman320 Sep 27 '11 at 18:40
  • 1
    Something "cryptographic" isn't really defined. They mean something that can be used in cryptographic use cases. It doesn't have to be an obfuscation but can also be an encryption. – Heinzi Sep 27 '11 at 18:41
2

A hash algorithm causes information about the original data to be lost irreplaceably, whereas an encryption algorithm has a corresponding decryption algorithm which restores the original data.

This can be shown in that hash algorithm results have a uniform size (128, 160, 256, etc. bits) regardless of the input, whereas encryption algorithm results have a variable size depending on the size of the input.

Ignacio Vazquez-Abrams
  • 776,304
  • 153
  • 1,341
  • 1,358
0

I don't think you can regard the function itself as a key. Because a key is something you pass to the function in order encrypt or decrypt (<- impossible with md5) a message.

0xfee1dead
  • 116
  • 1
  • 8