Cryptographic Hash Function, ์ดํ h(x)๊ฐ ๊ฐ์ถ์ด์ผ ํ ์กฐ๊ฑด์ ๋ค์๊ณผ ๊ฐ๋ค.
Compression (์์ถ)
ยท ํ์ฌ ์ฌ์ฉ๋๋ ํด์ํจ์์ output์ ๋๊ฐ 256 / 512bit
ยท ๋ฐ๋ฉด input ๊ธธ์ด๋ ์ ํ์ด ์์ด ์ด๋ง์ด๋งํ๊ฒ ์์ถ
Efficiency (๊ณ์ฐ์ ํจ์จ์ฑ)
ยท x๊ฐ ์ฃผ์ด์ง๋ฉด h(x) ๊ณ์ฐ์ ๊ป์ด๋ค.
One-way (๋จ๋ฐฉํฅ์ฑ)
ยท h(x)๊ฐ ์ฃผ์ด์ก์ ๋ x๋ฅผ ๊ณ์ฐํ๋ ๊ฑด ๋ถ๊ฐ๋ฅ์ ๊ฐ๊น๋ค.
Collision resistance (์ถฉ๋ ์ ํญ์ฑ)
ยท collision : X์ ๋ ์ ์ด Y์ ํ ์ ์ mapping๋๋ ๊ฒ
ยท x๊ฐ ์ฃผ์ด์ง๊ณ , x์ ๊ฐ์ ์ ์ mapping๋๋ x'๋ฅผ ์ฐพ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ฉด ์ฝํ ์ถฉ๋ ์ ํญ์ฑ์ ๊ฐ๋๋ค๊ณ ๋งํ๋ค.
ยท ์ด๋ค ๋ ์ ์ด๋ ๊ฐ์ ์ ์ mapping๋๋ ๊ฒ์ ์ฐพ์ ์ ์๋ค๋ฉด ๊ฐํ ์ถฉ๋ ์ ํญ์ฑ์ ๊ฐ๋๋ค๊ณ ๋งํ๋ค.
ยท 128bit output
ยท collision ๋ฐ๊ฒฌ๋์์ผ๋ฏ๋ก ์ฌ์ฉ ์ง์
ยท 160bit output
ยท Secure Hash Algorithm
ยท ๋ฏธ๊ตญ NIST์์ ์ฑํํ ํ์ค
ยท MD5๋ฅผ ๋์ฒดํ๊ธฐ ์ํด ๊ณ ์๋์์ผ๋ ์ด๊ฒ๋ collision ๋ฐ๊ฒฌ
ยท SHA-224(224bit ์๋ฏธ), SHA-256, SHA-384, SHA-512
ยท ์ด๋ฏธ ๊นจ์ง SHA-1๊ณผ ๊ฑฐ์ ๋์ผํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ถ์๊ฐ ์กด์ฌ
ยท SHA3-224, SHA3-256, SHA3-384, SHA3-512
ยท SHA-1, 2์ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ธ Keccak ์ฌ์ฉ
ยท Message Authentication Code
ยท integrity ๋ณด์ฅ์ ์ํ ๊ธฐ๋ฒ
ยท MAC ๊ณ์ฐ์ hash ํจ์๋ฅผ ์ฌ์ฉํ ์ ์๋ค. (keyed hash)
ยท MAC(M) = h(K, M)
ยท K๋ ํค, M์ ๋ฉ์์ง
hash ํจ์๋ input์ด ํ๋. K, M์ด๋ผ๊ณ ์จ์ ๋ง์น input์ด 2๊ฐ์ธ ๋ฏ ๋ณด์ด์ง๋ง ์ฌ์ค์ KM์ฒ๋ผ ์ด์ด๋ถ์ฌ์ ํ๋์ input์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
์ด๋ค ๋ฐ์ดํฐ M์ด ์๋ค๋ฉด ์ถํ์ ์ด ๋ฐ์ดํฐ์ ๋ด์ฉ ๋ณ๊ฒฝ์ด ์์๋์ง ํ๋จํ๊ธฐ ์ํด h(K, M)์ ๋ง๋ค์ด ์ ์ฅํด๋๋ค.
โ ์ถํ ํ๋จ์, ์ ์ฅํด๋์๋ h(K, M)๊ณผ ํ์ฌ์ M์ hashํ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํ์ฌ ์ผ์นํ๋์ง ํ์ธํ๋ค.
ํด์ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๊ฐ๋ ์ ๋ณด์ด๊ธฐ ๋๋ฌธ์ ๊ณต๊ฒฉ์๊ฐ ๋ง์๋ง ๋จน์ผ๋ฉด M์ M'์ผ๋ก ๋ง๋ค๊ณ , ์ ์ฅ๋์ด ์๋ h(M)๋ (M')์ผ๋ก ๋ฐ๊ฟ์น๊ธฐ ํ ์ ์๋ค.
โ h(K, M)์ผ๋ก ํด์ํ๋ฉด ๊ณต๊ฒฉ์๋ K๋ฅผ ๋ชฐ๋ผ์ h(K, M')์ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ ๋ ์์ ํ๋ค.