[์ •๋ณด๋ณด์•ˆ] Cryptographic Hash Function

์„ ์ฃผยท2021๋…„ 7์›” 20์ผ

์ •๋ณด๋ณด์•ˆ

๋ชฉ๋ก ๋ณด๊ธฐ
2/4

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๋˜๋Š” ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋ฉด ๊ฐ•ํ•œ ์ถฉ๋Œ ์ €ํ•ญ์„ฑ์„ ๊ฐ–๋Š”๋‹ค๊ณ  ๋งํ•œ๋‹ค.

๐Ÿ ์ข…๋ฅ˜

MD5

ยท 128bit output
ยท collision ๋ฐœ๊ฒฌ๋˜์—ˆ์œผ๋ฏ€๋กœ ์‚ฌ์šฉ ์ง€์–‘

SHA-1

ยท 160bit output
ยท Secure Hash Algorithm
ยท ๋ฏธ๊ตญ NIST์—์„œ ์ฑ„ํƒํ•œ ํ‘œ์ค€
ยท MD5๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋˜์—ˆ์œผ๋‚˜ ์ด๊ฒƒ๋„ collision ๋ฐœ๊ฒฌ

SHA-2 family

ยท SHA-224(224bit ์˜๋ฏธ), SHA-256, SHA-384, SHA-512
ยท ์ด๋ฏธ ๊นจ์ง„ SHA-1๊ณผ ๊ฑฐ์˜ ๋™์ผํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ์•ˆ๊ฐ ์กด์žฌ

SHA-3 family

ยท SHA3-224, SHA3-256, SHA3-384, SHA3-512
ยท SHA-1, 2์™€ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ธ Keccak ์‚ฌ์šฉ

๐Ÿ MAC

ยท 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ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

๐Ÿ™„ ๊ทธ๋ƒฅ h(M) ์“ฐ๋ฉด ์•ˆ ๋จ?

ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ณต๊ฐœ๋œ ์ •๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ณต๊ฒฉ์ž๊ฐ€ ๋งˆ์Œ๋งŒ ๋จน์œผ๋ฉด M์„ M'์œผ๋กœ ๋งŒ๋“ค๊ณ , ์ €์žฅ๋˜์–ด ์žˆ๋Š” h(M)๋„ (M')์œผ๋กœ ๋ฐ”๊ฟ”์น˜๊ธฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ†’ h(K, M)์œผ๋กœ ํ•ด์‹œํ•˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” K๋ฅผ ๋ชฐ๋ผ์„œ h(K, M')์„ ๋งŒ๋“ค ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒŒ ๋” ์•ˆ์ „ํ•˜๋‹ค.

profile
๊ธฐ๋กํ•˜๋Š” ๊ฐœ๋ฐœ์ž ๐Ÿ‘€

0๊ฐœ์˜ ๋Œ“๊ธ€