์์ ํ ๋น๋ฐ๋ฒํธ๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ๊ธธ์ด์ ์ต์ ์ ์ค์ ํ์ธ์.
๋น๋ฐ๋ฒํธ ๋ณด์์ ์จ๋ผ์ธ ๊ณ์ ๊ณผ ๊ฐ์ธ์ ๋ณด๋ฅผ ๋ณดํธํ๊ธฐ ์ํ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ด๋ฉด์๋ ์ค์ํ ๋ณด์ ์๋จ์ ๋๋ค. ์ฝํ ๋น๋ฐ๋ฒํธ๋ ํด์ปค๊ฐ ๋ฌด์ฐจ๋ณ ๋์ ๊ณต๊ฒฉ(Brute Force Attack)์ด๋ ์ฌ์ ๊ณต๊ฒฉ(Dictionary Attack)์ ํตํด ์ฝ๊ฒ ๋ซ์ ์ ์์ต๋๋ค.
๋น๋ฐ๋ฒํธ ์์ฑ๊ธฐ๋ ์ฌ๋์ด ๋ง๋ค๊ธฐ ์ด๋ ค์ด ๋ฌด์์ ๋ฌธ์ ์กฐํฉ์ ์๋์ผ๋ก ์์ฑํ์ฌ, ์์ธก ๋ถ๊ฐ๋ฅํ ๊ฐ๋ ฅํ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ง๋ค์ด์ค๋๋ค. ์ด ๋๊ตฌ๋ ๋ธ๋ผ์ฐ์ ์ crypto.getRandomValues API๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํ์ ์ผ๋ก ์์ ํ ๋์๋ฅผ ์์ฑํ๋ฏ๋ก, ์๋ฒ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ก๋์ง ์์ ์์ ํ ์์ ํฉ๋๋ค.
๋น๋ฐ๋ฒํธ์ ๊ฐ๋๋ '์ํธ๋กํผ(Entropy)'๋ผ๋ ๊ฐ๋ ์ผ๋ก ์ธก์ ํฉ๋๋ค. ์ํธ๋กํผ๋ ๋น๋ฐ๋ฒํธ์ ์์ธก ๋ถ๊ฐ๋ฅ์ฑ์ ๋นํธ(bit) ๋จ์๋ก ๋ํ๋ธ ๊ฐ์ ๋๋ค.
์ํธ๋กํผ ๊ณ์ฐ ๊ณต์: ๋น๋ฐ๋ฒํธ ๊ธธ์ด x log2(๋ฌธ์ ํ ํฌ๊ธฐ)
์๋ฅผ ๋ค์ด, ๋๋ฌธ์+์๋ฌธ์+์ซ์+ํน์๋ฌธ์(92์)๋ก ๊ตฌ์ฑ๋ 16์๋ฆฌ ๋น๋ฐ๋ฒํธ์ ์ํธ๋กํผ๋ 16 x log2(92) = ์ฝ 104๋นํธ์ ๋๋ค.
๊ฐ๋ ํ์ ๊ธฐ์ค:
์์ ํ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ง๋๋ ๊ฒ๋งํผ ์ฌ๋ฐ๋ฅด๊ฒ ๊ด๋ฆฌํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค.