# What is different between a hash function and permutations with repeats

Are secure hash function outputs different from permutation sets of the same length and value? If yes please explain how they appear differently.

For example, MD5 would produce

8743b52063cd84097a65d1633f5c74f5


A non standard permutation algorithm that is impossible to inverse without a key would appear to be the same and be just as secure.

Are secure hash function outputs different from permutation sets of the same length and value?

Yes, almost certainly because both tend to produce randomized output, and it is unlikely that they will both end up with the same output for the same input message. In principle they may differ in size of course, SHA-224 output is hard to reproduce using a repetition of a 128 bit block cipher.

If yes please explain how they appear differently.

Ah, now you're talking about appearance. Well, generally the output is randomized so they will be indistinguishable from each other. Of course, with a hash, if you can guess the input message then you can see if the hash value matches that. For block ciphers we generally assume that the adversary doesn't know the key, so that's not possible.

A non standard permutation algorithm that is impossible to inverse without a key would appear to be the same and be just as secure.

Why would you use a "non standard permutation algorithm"? Remember Kerckhoff's principle! We generally use a keyed permutation which selects a permutation from a limited set of permutations. Assuming that it is reversible this is called a block cipher.

More importantly, now you are suddenly comparing security properties. So that's the third different comparison: comparing values, comparing appearance and comparing properties!

First of all, you seem to be basically compare a MAC and a non-keyed hash function. The MAC function is generally more secure for most situations, as an adversary cannot perform an offline search for collisions without the key.

Second, just repeating a specific permutation (e.g. twice 64 bits for a 128 bit output) is not a secure MAC. For starters, it doesn't provide compression, and moreover, it leaks information if the message is evenly split into two blocks with the same information. Similarly, these blocks may also be found in previous messages.

• "Why would you use a "non standard permutation algorithm" Because I would be able to have an unlimited set of permutations taken by combining an unlimited random stream as a key with the length of the plain text. By using the same key produce several runs of permutations that be as secure as a hash, but completely reversible. As seen here. youtu.be/thS2-hJJkSs 5,4,3,2,1, would become my random stream of bytes or bits. 1,5,3,4,1,2,2 would be the plaintext, byte stream or bitstream. Repeated several times, the reversal would be impossible. – Jonathan Hutton May 17 at 23:52