What is a Avalanche Effect? - minseok127/HashSimulator GitHub Wiki

Avalanche Effect

wikipedia์— ๋”ฐ๋ฅด๋ฉด Avalanche Effect์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

whenever a single input bit is complemented, each of the output bits changes with a 50% probability.

์ฆ‰ input์˜ bit 1๊ฐœ๊ฐ€ ๋ณ€ํ•œ๋‹ค๋ฉด output์˜ ๋ชจ๋“  bit๋“ค์ด ๊ฐ๊ฐ 50%์˜ ํ™•๋ฅ ๋กœ ๋ณ€ํ•˜๋Š” ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Hash Function์— ๋Œ€ํ•ด ์ ์šฉํ•ด๋ณด๋ฉด, Key์˜ bit 1๊ฐœ๊ฐ€ ๋ฐ”๋€” ๋•Œ value๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  bit๋“ค์ด ๊ฐ๊ฐ 50%์˜ ํ™•๋ฅ ๋กœ ๋ณ€ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด Hash Function์€ ์™œ Avalanche Effect๋ฅผ ๋งŒ์กฑํ•ด์•ผํ• ๊นŒ์š”?

Avalanche Effect with Hash Function

Avalanche Effect์˜ ํ•ต์‹ฌ์€ ์ž‘์€ ๋ณ€ํ™”๊ฐ€ ๋ˆˆ์‚ฌํƒœ์ฒ˜๋Ÿผ ์ปค๋‹ค๋ž€ ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚จ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•ž์„œ ์‚ดํŽด๋ณธ ์นด์ด์ œ๊ณฑ๊ฒ€์ •์„ ํ†ต๊ณผํ•œ Hash Function์ด๋ผ๋„ ์ „์ฒด Data set์ด ์•„๋‹Œ ํ‘œ๋ณธ๋“ค์— ๋Œ€ํ•ด์„œ๋Š” ํŽธํ–ฅ๋œ ๋ถ„ํฌ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฆ‰ Avalanche Effect๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” Hash Function์˜ ๊ฒฝ์šฐ ๋น„์Šทํ•œ ํ˜•ํƒœ์˜ input Data๋“ค์˜ ๋นˆ๋„๊ฐ€ ๋†’์•„์ง„๋‹ค๋ฉด

๊ฒฐ๊ณผ ๋˜ํ•œ Uniform Distribution์ด ์•„๋‹ˆ๊ฒŒ ๋  ํ™•๋ฅ ์ด ๋†’์•„์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋งŒ์•ฝ Avalanche Effect๊ฐ€ ์กด์žฌํ•˜๋Š” Hash Function์ด๋ผ๋ฉด input Data๊ฐ€ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋˜ ์ง€ ์ƒ๊ด€์—†์ด

Randomํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์„ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.