๐Ÿงฎ SHA ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ – ์ดˆ๋“ฑ๋ถ€

์•ˆ๋…•ํ•˜์„ธ์š”! ์˜ค๋Š˜์€ ์šฐ๋ฆฌ๊ฐ€ ์ˆ˜ํ•™ ์‹œ๊ฐ„์— ๋ฐฐ์šด ๋‚ด์šฉ์œผ๋กœ SHA ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๋Š” ํฅ๋ฏธ๋กœ์šด ๊ธฐ์ˆ ์„ ์„ค๋ช…ํ•ด๋ณผ๊ฒŒ์š”.

SHA๋Š” ์ธํ„ฐ๋„ท์—์„œ ์ •๋ง ๋งŽ์ด ์“ฐ์ด๋Š” ๊ธฐ์ˆ ์ธ๋ฐ, “๋‹จ๋ฐฉํ–ฅ ์•”ํ˜ธ์ฒ˜๋Ÿผ ์ •๋ณด๋ฅผ ๋ฐ”๊พธ๋Š” ๊ณ„์‚ฐ๋ฒ•”์ด์—์š”.
๊ทธ๋Ÿฐ๋ฐ ์ด ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•  ๋•Œ ์šฐ๋ฆฌ๊ฐ€ ์ด๋ฏธ ํ•™๊ต์—์„œ ๋ฐฐ์šด ์ˆ˜ํ•™ ๊ฐœ๋…์ด ์•„์ฃผ ์œ ์šฉํ•˜๋‹ต๋‹ˆ๋‹ค!
์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋Š”์ง€ ๊ฐ™์ด ์‚ดํŽด๋ณผ๊นŒ์š”?


1๏ธโƒฃ ํ•จ์ˆ˜ (Function) โ€” ์—ฌ๋Ÿฌ ์ž…๋ ฅ โ†’ ํ•˜๋‚˜์˜ ์ถœ๋ ฅ

์ˆ˜ํ•™ ์‹œ๊ฐ„์— ํ•จ์ˆ˜ ๋ฐฐ์› ์ฃ ? f(x)=x2f(x) = x^2f(x)=x2

์ด๋ ‡๊ฒŒ ์ž…๋ ฅ x๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ถœ๋ ฅ f(x)๊ฐ€ ๋”ฑ ์ •ํ•ด์ง€์ฃ .
๊ฐ™์€ ์ž…๋ ฅ์ด๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ์ถœ๋ ฅ์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ ์„ฑ์งˆ์ด์—์š”.

SHA๋„ ๋น„์Šทํ•ด์š”: SHA(x)=์–ด๋–ค ๊ณ ์ •๋œ ์ฝ”๋“œSHA(x) = \text{์–ด๋–ค ๊ณ ์ •๋œ ์ฝ”๋“œ}SHA(x)=์–ด๋–ค ๊ณ ์ •๋œ ์ฝ”๋“œ

์ž…๋ ฅ์ด ๊ฐ™์œผ๋ฉด ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€์š”. ๊ทธ๋ž˜์„œ ํŒŒ์ผ์ด ๋ฐ”๋€Œ์—ˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ๋ผ์š”.


2๏ธโƒฃ ๋‹ค๋Œ€์ผ ๋Œ€์‘ (Many-to-One Mapping)

๋˜ ๋ฐฐ์šด ๊ฒƒ ์ค‘์— ๋Œ€์‘ ๊ด€๊ณ„๊ฐ€ ์žˆ์ฃ .

  • ์ผ๋Œ€์ผ ๋Œ€์‘
  • ์ผ๋Œ€๋‹ค ๋Œ€์‘
  • ๋‹ค๋Œ€์ผ ๋Œ€์‘ โ† ์—ฌ๊ธฐ๊ฐ€ SHA์™€ ์—ฐ๊ฒฐ!

SHA๋Š” ๋‹ค๋Œ€์ผ ๋Œ€์‘์ด์—์š”: ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž…๋ ฅโ†’ํ•˜๋‚˜์˜ ์ถœ๋ ฅ\text{์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž…๋ ฅ} โ†’ \text{ํ•˜๋‚˜์˜ ์ถœ๋ ฅ}์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž…๋ ฅโ†’ํ•˜๋‚˜์˜ ์ถœ๋ ฅ

์™œ๋ƒํ•˜๋ฉด ์ž…๋ ฅ์€ ์•„์ฃผ์•„์ฃผ ๊ธธ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ถœ๋ ฅ์€ ๋”ฑ ์ •ํ•ด์ง„ ๊ธธ์ด(์˜ˆ: 256๋น„ํŠธ)๋กœ๋งŒ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์ด์—์š”.
๊ทธ๋ž˜์„œ ๊ฐ™์€ ์ถœ๋ ฅ์„ ๋งŒ๋“œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ž…๋ ฅ๋„ ์žˆ์„ ์ˆ˜ ์žˆ์–ด์š”.
์ด๋ ‡๊ฒŒ ์ •๋ณด๊ฐ€ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๊ฑฐ๊พธ๋กœ ๊ณ„์‚ฐํ•˜๊ธฐ ์–ด๋ ต์ฃ .


3๏ธโƒฃ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ (Mod ์—ฐ์‚ฐ)

์ค‘3 ์ˆ˜ํ•™์—์„œ **๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ(mod)**๋„ ๋ฐฐ์šฐ์ฃ : amodโ€‰โ€‰ba \mod bamodb

์˜ˆ๋ฅผ ๋“ค์–ด: 17modโ€‰โ€‰5=217 \mod 5 = 217mod5=2

SHA๋Š” ๋‚ด๋ถ€์—์„œ ์ด๋Ÿฐ mod ์—ฐ์‚ฐ์„ ์—„์ฒญ ๋งŽ์ด ์‚ฌ์šฉํ•ด์š”!
์ด๋Ÿฐ ์—ฐ์‚ฐ์€ ๊ฒฐ๊ณผ๋งŒ ๋ณด๋ฉด ์›๋ž˜ ๊ฐ’์„ ์•Œ์•„๋‚ด๊ธฐ ์–ด๋ ค์›Œ์š”: x+ymodโ€‰โ€‰100=42x + y \mod 100 = 42x+ymod100=42

์ด๋Ÿฐ ์‹์œผ๋กœ ๊ฒฐ๊ณผ๊ฐ€ 42๋ผ๋ฉด x์™€ y๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์—ญ์œผ๋กœ ์•Œ๊ธฐ๊ฐ€ ์–ด๋ ต์ฃ .

โ†’ SHA๋Š” ์ด๋Ÿฐ ์›๋ฆฌ๋ฅผ ์‘์šฉํ•ด์„œ ๊ฑฐ๊พธ๋กœ ํ’€ ์ˆ˜ ์—†๊ฒŒ ์„ค๊ณ„๋ผ ์žˆ์–ด์š”.


4๏ธโƒฃ ๋น„์„ ํ˜• ๋ณ€ํ™” (์„ ํ˜•๊ณผ ๋น„์„ ํ˜•)

์ค‘3 ๊ณผ์ •์—์„œ **1์ฐจ ํ•จ์ˆ˜(์„ ํ˜•)**์™€ **2์ฐจ ํ•จ์ˆ˜(๋น„์„ ํ˜•)**๋„ ๋ฐฐ์šฐ์ฃ ?

  • ์„ ํ˜• ํ•จ์ˆ˜ โ†’ ์ž…๋ ฅ์ด 2๋ฐฐ๋ฉด ์ถœ๋ ฅ๋„ 2๋ฐฐ
  • ๋น„์„ ํ˜• ํ•จ์ˆ˜ โ†’ ์ž…๋ ฅ์ด ์กฐ๊ธˆ ๋ฐ”๋€Œ์–ด๋„ ์ถœ๋ ฅ์€ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์ด ๋ฐ”๋€œ

SHA๋Š” ์•„์ฃผ ๋ณต์žกํ•œ ๋น„์„ ํ˜• ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์ž‘๋™ํ•ด์š”.
๊ทธ๋ž˜์„œ ์ž…๋ ฅ์—์„œ ๋”ฑ ํ•œ ๊ธ€์ž๋งŒ ๋ฐ”๊ฟ”๋„ ๊ฒฐ๊ณผ๊ฐ€ ์™„์ „ํžˆ ๋‹ฌ๋ผ์ ธ์š”. SHA(“abc”)โ‰ SHA(“abd”)SHA(“abc”) โ‰  SHA(“abd”)SHA(“abc”)๎€ =SHA(“abd”)

**๋ˆˆ์‚ฌํƒœ ํšจ๊ณผ(Avalanche Effect)**๋ผ๊ณ  ๋ถ€๋ฅด๋Š”๋ฐ, ๋น„์„ ํ˜• ํ•จ์ˆ˜์˜ ์„ฑ์งˆ๊ณผ ์•„์ฃผ ๋น„์Šทํ•˜์ฃ !


๐Ÿ“ ์ •๋ฆฌ

์šฐ๋ฆฌ๊ฐ€ ์ค‘ํ•™๊ต 3ํ•™๋…„ ์ˆ˜ํ•™ ์‹œ๊ฐ„์— ๋ฐฐ์šฐ๋Š”:

โœ… ํ•จ์ˆ˜ โ†’ ์ž…๋ ฅ์— ๋Œ€์‘ํ•˜๋Š” ์ถœ๋ ฅ
โœ… ๋‹ค๋Œ€์ผ ๋Œ€์‘ โ†’ ๋งŽ์€ ์ž…๋ ฅ โ†’ ํ•˜๋‚˜์˜ ์ถœ๋ ฅ
โœ… ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ(mod) โ†’ ์›๋ž˜ ๊ฐ’ ๋ณต์› ์–ด๋ ค์›€
โœ… ๋น„์„ ํ˜• ๋ณ€ํ™” โ†’ ์ž‘์€ ์ž…๋ ฅ ๋ณ€ํ™” โ†’ ํฐ ์ถœ๋ ฅ ๋ณ€ํ™”

์ด๋Ÿฐ ๊ฐœ๋…๋“ค์ด ๋ชจ๋‘ SHA ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์†์— ๋“ค์–ด๊ฐ€ ์žˆ์–ด์š”!

์ฝ”๋ฉ˜ํŠธ

๋‹ต๊ธ€ ๋‚จ๊ธฐ๊ธฐ

์ด๋ฉ”์ผ ์ฃผ์†Œ๋Š” ๊ณต๊ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•„์ˆ˜ ํ•„๋“œ๋Š” *๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค