๋น๋ฐ๋ฒํธ ํฌ๋ ์๊ฐ ๊ณ์ฐ๊ธฐ๋?
์ด ๋๊ตฌ๋ ๊ณต๊ฒฉ์๊ฐ ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ ํ๋์ฉ ์๋ํ๋ ๋ฌด์ฐจ๋ณ ๋์ (brute-force) ๋ฐฉ์์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๋ซ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ถ์ ํฉ๋๋ค. ๊ณ์ฐ์ ๋น๋ฐ๋ฒํธ์ ๊ธธ์ด, ์ฌ์ฉ๋ ๋ฌธ์ ์งํฉ์ ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๊ณต๊ฒฉ์๊ฐ 1์ด์ ๋ช ๋ฒ ์ถ์ธกํ ์ ์๋์ง๋ฅผ ๋ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. ๊ฒฐ๊ณผ๋ ์ด๋๊น์ง๋ ์ํ ๋ชจ๋ธ์ ๊ธฐ๋ฐํ ๋๋ต์ ์ธ ์ถ์ ์น์ ๋๋ค. ์ค์ ๊ณต๊ฒฉ์ ์ฌ์ ๋จ์ด๋ ํํ ํจํด์ ํ์ฉํ๊ธฐ ๋๋ฌธ์, ์ทจ์ฝํ ๋น๋ฐ๋ฒํธ๋ ์ด๋ณด๋ค ํจ์ฌ ๋น ๋ฅด๊ฒ ๋ซ๋ฆด ์ ์์ต๋๋ค.
์ฌ์ฉ ๋ฐฉ๋ฒ
๋น๋ฐ๋ฒํธ ๊ธธ์ด๋ฅผ ์ ๋ ฅํ๊ณ , ์ฌ์ฉ ์ค์ธ ๋ฌธ์ ์ข ๋ฅ(์๋ฌธ์, ๋๋ฌธ์, ์ซ์, ํน์๋ฌธ์)๋ฅผ ๋ชจ๋ ์ฒดํฌํ ๋ค ๊ณต๊ฒฉ์์ ์ถ์ธก ์๋๋ฅผ ์ค์ ํ์ธ์. ์ต์ GPU ์ฅ๋น๋ ๋น ๋ฅธ ํด์์ ๋ํด 1์ด์ 100์ต(10,000,000,000) ๋ฒ๊น์ง ์ถ์ธกํ ์ ์๋ ๋ฐ๋ฉด, bcrypt ๊ฐ์ ๋๋ฆฐ ํด์๋ ๊ณต๊ฒฉ์๋ฅผ ์ด๋น ์์ฒ ๋ฒ ์์ค์ผ๋ก ๋ฌถ์ด๋ ์ ์์ต๋๋ค.
๊ณต์ ์ค๋ช
์ ์ฒด ์กฐํฉ ์๋ ๋ฌธ์ ์งํฉ ํฌ๊ธฐ \(C\)๋ฅผ ๊ธธ์ด \(L\)๋งํผ ๊ฑฐ๋ญ์ ๊ณฑํ ๊ฐ, ์ฆ \(C^{L}\)์ ๋๋ค. ์ด๋ฅผ ์ถ์ธก ์๋ \(g\)๋ก ๋๋๋ฉด ์ต์ ์ ๊ฒฝ์ฐ ์์ ์๊ฐ์ด ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ํ๊ท ์ ์ผ๋ก ์ฌ๋ฐ๋ฅธ ๋น๋ฐ๋ฒํธ๋ ์ ์ฒด ๊ฒฝ์ฐ์ ์์ ์ ๋ฐ์ฏค์์ ๋ฐ๊ฒฌ๋๋ฏ๋ก 2๋ก ๋๋ ์ค๋๋ค: $$t = \frac{C^{L}}{2g}$$ ๋นํธ ๋จ์ ์ํธ๋กํผ๋ \(L \times \log_{2} C\)์ด๋ฉฐ, ์ํธ๋กํผ๊ฐ 1๋นํธ ๋์ด๋ ๋๋ง๋ค ๊ณต๊ฒฉ์ ํ์ํ ํ์๋์ ๋ ๋ฐฐ๊ฐ ๋ฉ๋๋ค.
๊ณ์ฐ ์์
์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง 8์๋ฆฌ ๋น๋ฐ๋ฒํธ๋ 26๊ฐ ๋ฌธ์ ์งํฉ์ ์ฌ์ฉํ๋ฏ๋ก ์กฐํฉ์ \(26^{8} = 208{,}827{,}064{,}576\)๊ฐ์ง์ ๋๋ค. ์ด๋น 10์ต ๋ฒ ์ถ์ธกํ๋ ๊ณต๊ฒฉ์์ ๋ํด ํ๊ท ํฌ๋ ์๊ฐ์ $$\frac{208{,}827{,}064{,}576}{2 \times 1{,}000{,}000{,}000} \approx 104.4\ \text{์ด}$$ ์ ๋๋ค. ์ฌ๊ธฐ์ ๋๋ฌธ์, ์ซ์, ํน์๋ฌธ์๋ฅผ ์ถ๊ฐํ๋ฉด ๋ฌธ์ ์งํฉ์ด 94๊ฐ๋ก ๋์ด๋ ์์ ์๊ฐ์ด ๊ทน์ ์ผ๋ก ์ฆ๊ฐํฉ๋๋ค.
๋ฌธ์ ์งํฉ ํฌ๊ธฐ
๊ณต์์ ๊ธฐ๋ณธ๊ฐ \(C\)๋ ๊ณต๊ฒฉ์๊ฐ ํ ์์น์์ ๊ณ ๋ คํด์ผ ํ ์๋ก ๋ค๋ฅธ ๋ฌธ์์ ๊ฐ์์ ๋๋ค. ๋น๋ฐ๋ฒํธ๊ฐ ์ฌ์ฉํ ์ ์๋ ๋ชจ๋ ๋ฌธ์ ํด๋์ค ํฌ๊ธฐ์ ํฉ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ์กฐํฉ:
| ๋ฌธ์ ์งํฉ | ๊ธฐํธ | ํฌ๊ธฐ |
|---|---|---|
| ์๋ฌธ์ (aโz) | [a-z] | 26 |
| ๋๋ฌธ์ (AโZ) | [A-Z] | 26 |
| ์ซ์ (0โ9) | [0-9] | 10 |
| ์ผ๋ฐ์ ์ธ ASCII ๊ธฐํธ | [sym] | 32 |
| ์๋ฌธ์ + ์ซ์ | [a-z0-9] | 36 |
| ์๋ฌธ์ + ๋๋ฌธ์ | [a-zA-Z] | 52 |
| ๋ฌธ์ + ์ซ์ (์์ซ์) | [a-zA-Z0-9] | 62 |
| ๋ค ๊ฐ์ง ํด๋์ค ๋ชจ๋ | [a-zA-Z0-9 sym] | 94 |
32๊ฐ์ "์ผ๋ฐ์ ์ธ ๊ธฐํธ"๋ ์ธ์ ๊ฐ๋ฅํ ASCII ๋ฌธ์ฅ ๋ถํธ ์งํฉ !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~๊ณผ ๊ณต๋ฐฑ์ ๋ฐ์ํ๋ฉฐ, ์ด๋ค๊ณผ ํจ๊ป 62๊ฐ์ ์์ซ์๋ ํ์ค 94์ ์ธ์ ๊ฐ๋ฅ ASCII ํ์ ์ ๊ณตํฉ๋๋ค.
ํฌ๋ํน ์๊ฐ ํด์
ํฌ๋ํน ์๊ฐ๊ณผ ๋น๋ฐ๋ฒํธ ์ํธ๋กํผ๋ ๋ ๊ฐ์ง ๊ด์ ์์ ๊ฐ์ ๊ฒ์ ์ธก์ ํฉ๋๋ค. ๋ฌด์์ ๋น๋ฐ๋ฒํธ์ ์ํธ๋กํผ(๋นํธ)๋ \(H = L\log_2 C\)์ ๋๋ค. ์ถ๊ฐ๋ ๊ฐ ๋นํธ๋ ํ์ํ ์ถ์ธก ํ์๋ฅผ ๋ ๋ฐฐ๋ก ๋๋ฆฌ๋ฏ๋ก ๊ณ ์ ์ถ์ธก ์๋์์ ํ๊ท ํฌ๋ํน ์๊ฐ๋ ๋ ๋ฐฐ๋ก ๋๋ฆฝ๋๋ค. ๋นํธ ์๋ฅผ ๋๋ต์ ์ผ๋ก ์ฝ๋ ๋ฐฉ๋ฒ:
- 40๋นํธ ๋ฏธ๋ง โ ์ฝํจ. ์ด ๋ฒ์(์: 8์ ์๋ฌธ์ ๋น๋ฐ๋ฒํธ๋ก ์ฝ \(\approx 37.6\) ๋นํธ)๋ ๋น ๋ฅธ ์คํ๋ผ์ธ ํ๋์จ์ด์ ๋ํด ์์ด์์ ์์ผ ๋ด์ ๊นจ์ง๋ฏ๋ก ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ๋ณดํธํ๋ ๋ฐ ์ฌ์ฉํ๋ฉด ์ ๋ฉ๋๋ค.
- ์ฝ 60โ70๋นํธ โ ์ค๊ฐ ์ ๋. ์ฐ์ฐํ ์คํ๋ผ์ธ ๊ณต๊ฒฉ์๋ ์ ํญํ์ง๋ง ์ ์ง์๋ฐ๋ GPU ํด๋ฌ์คํฐ๋ก๋ ์๊ฐ์ด ์ง๋๋ฉด์ ๋๋ฌ ๊ฐ๋ฅํฉ๋๋ค.
- 80๋นํธ ์ด์ โ ๊ฐํจ. ํ์ฌ ๋ฐ ์์๋๋ ๊ธฐ์ ๋ก ๋ฌด์ฐจ๋ณ ๋์ ๊ณต๊ฒฉ์ด ๋ถ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. 12์ ์ ์ฒด ํด๋์ค ๋น๋ฐ๋ฒํธ๋ ์ฝ 78๋นํธ์ ๋๋ฌํ๊ณ 16์๋ ์ฝ 105๋นํธ์ ๋๋ฌํฉ๋๋ค.
NIST์ ๋์งํธ ์ ์ ์ง์นจ(SP 800-63B)์ ๊ฐ์ ๋ณต์ก์ฑ ๊ท์น๋ณด๋ค ๊ธธ์ด๋ฅผ ๊ฐ์กฐํ๊ณ ๊ธด ์ํธ ๊ตฌ๋ฌธ ํ์ฉ์ ๊ถ์ฅํ๋ฉฐ ํผํฉ ๋ฌธ์ ํด๋์ค ์๋ฌดํ๋ณด๋ค๋ ์๋ฐ ๋ฐ ์ฌ์ ๋ชฉ๋ก์ ๋ํด ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฒ์ฌํ๋๋ก ๊ถ๊ณ ํฉ๋๋ค. ์ด๋ ์ ํํ ์๋์ ๋ฌด์ฐจ๋ณ ๋์ ์๊ฐ์ด ์ง์ ํ ๋ฌด์์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ค์ํ ์ฃผ์: ์ด ์์น๋ ์ํ์
๋๋ค. ๊ณต์์ ๋ชจ๋ ๋ฌธ์๊ฐ ์ ์ฒด ์งํฉ์์ ๊ท ๋ฑํ๊ฒ ๋ฌด์์๋ก ์ ํ๋๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. ์ค์ ๊ณต๊ฒฉ์๋ "aaaaaaaa"์์ ์์ํ์ง ์์ต๋๋ค. ์ฌ์ , ์ ์ถ๋ ๋น๋ฐ๋ฒํธ ๋ชฉ๋ก, ํค๋ณด๋ ํจํด, ์ด๋ฆ, ๋ ์ง ๋ฐ ์์ธก ๊ฐ๋ฅํ ๋์ฒด๋ฅผ ๋จผ์ ์คํํฉ๋๋ค. P@ssw0rd123๊ณผ ๊ฐ์ ๋น๋ฐ๋ฒํธ๋ ๋ช
๋ชฉ์ ํฐ ๋ฌธ์ ์งํฉ๊ณผ ๊ธธ์ด๋ฅผ ๊ฐ์ง์ง๋ง ๋จ์ด ๋ชฉ๋ก์ ๋ํ๋๊ธฐ ๋๋ฌธ์ ๊ฑฐ์ ์ฆ์ ํฌ๋ํน๋ฉ๋๋ค. ๊ณ์ฐ๋ ์๊ฐ์ ์ธ๊ฐ์ด ์ ํํ ๊ฒ์ด ์๋๋ผ ๋ฌด์์ ํ๋ก์ธ์ค๋ก ์์ฑ๋ ๋น๋ฐ๋ฒํธ์๋ง ์๋ฏธ๊ฐ ์๋ ๊ฒ์ผ๋ก ์ฒ๋ฆฌํ์ธ์.
์ด๊ฒ์ ํน์ ๊ณ์ ์ ์์ ์ ๋ณด์ฅํ์ง ์๋ ์ผ๋ฐ์ ์ธ ๋ณด์ ์ ๋ณด์ ๋๋ค. ๊ฐ๋ ฅํ๊ณ ๊ณ ์ ํ ๋น๋ฐ๋ฒํธ์ ๋ค์ค ์ธ์ฆ์ ํจ๊ป ์ฌ์ฉํ์ธ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
์ 2๋ก ๋๋๋์? ๋ฌด์ฐจ๋ณ ๋์ ์ ์ ์ฒด ํค ๊ณต๊ฐ ์ด๋๊ฐ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์๋ ๋๋ค. ํ๊ท ์ ์ผ๋ก๋ ์ ๋ฐ ์ง์ ์์ ๋ฐ๊ฒฌ๋๋ฏ๋ก, ์์ ์์ ์๊ฐ์ ์ต๋ ์๊ฐ์ ์ ๋ฐ์ด ๋ฉ๋๋ค.
์ด ๊ฒฐ๊ณผ๊ฐ ๋ณด์ฅ๋ ์์น์ธ๊ฐ์? ์๋๋๋ค. ์ด ๊ณ์ฐ๊ธฐ๋ ๋น๋ฐ๋ฒํธ๊ฐ ์์ ํ ๋ฌด์์๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค. ์ฌ์ฌ์ฉ๋ ๋น๋ฐ๋ฒํธ, ์ฌ์ ๋จ์ด, ํจํด ๊ธฐ๋ฐ ๋น๋ฐ๋ฒํธ๋ ๊ธธ์ด์ ์๊ด์์ด ํจ์ฌ ๋น ๋ฅด๊ฒ ๋ซ๋ฆฝ๋๋ค.
๋ฌธ์ ์งํฉ ํฌ๊ธฐ๋ ์ด๋ป๊ฒ ๊ณจ๋ผ์ผ ํ๋์? ์ค์ ๋ก ์ฌ์ฉํ๋ ๋ฌธ์ ์ข ๋ฅ๋ง ์ฒดํฌํ์ธ์. ์ฌ๊ธฐ์ ํน์๋ฌธ์๋ ํํ ์ฐ์ด๋ ๊ตฌ๋์ 32๊ฐ ์งํฉ์ผ๋ก ๊ฐ์ ํฉ๋๋ค.