2021. 9. 22. 17:07ใBACKEND/Security
***************** INDEX *****************
๐พ ๋ชจ๋์ฐ์ฐ
๐ค Chinese Remainder Theorem
********************************************
๋ชจ๋์ฐ์ฐ
์ํธํ์์ ๋น ์ง ์ ์๋ ๋ชจ๋์ฐ์ฐ์ ๊ธฐ๋ณธ์ผ๋ก ์ํธํ์์ ์ฌ์ฉํ๋ ์ํ์ ์ธ ๊ธฐ๋ฒ๋ค์ ์์๋ณด๊ณ ์ ํฉ๋๋ค.
์ด ํฌ์คํ ์ ๋ชจ๋์ฐ์ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ณ ์๋ค๋ ๊ฐ์ ํ์ ์์ฑํ๊ฒ ์ง๋ง,
๊ทธ๋๋ ๋ชจ๋์ฐ์ฐ์ ๊ฐ๋ณ๊ฒ ํ๊ณ ๋ง ๊ฐ๊ฒ ์ต๋๋ค.
๋ชจ๋์ฐ์ฐ?
๋๋์ ์ ํด์ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ ์ฐ์ฐ. ๋ฐ๋์ด ํ๋๋ฐ์ ์๋ ์๊ณ์ฐ์ฐ
$A \bmod B = C$
๋ชจ๋์ฐ์ฐ์์ ๊ธฐ๋ณธ์ ์ผ๋ก $B$๊ฐ ๋์ผํ๋ฉด ํฉ์ฐ ๊ฐ๋ฅํฉ๋๋ค.
ex) $(2 \bmod 5) + (4 \bmod 5) = (2+4) \bmod 5 = 1$
โ๏ธ ๋ชจ๋์ ๊ฑฐ๋ญ์ ๊ณฑ
๋ชจ๋ ์ฐ์ฐ์ ๊ฑฐ๋ญ์ ๊ณฑ์ ๊ณ์ฐํ ๋์๋ ์์ฃผ ์ค์ํ ํน์ง์ ์ธ๊ธํ ์ ์๋๋ฐ์.
๊ณ์ฐ ๋์ค์ mod๋ฅผ ์ทจํด๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค๋ ๊ต์ฅํ ํธ๋ฆฌํ ํน์ง์ด ์์ต๋๋ค.
์์๋ฅผ ํตํด ์ดํด๋ฅผ ๋์๋ณผ๊ฒ์.
$\small 6^4 \bmod 11 = (6 \times 6 \bmod 11) \times (6 \times 6 \bmod 11) = (36 \bmod 11) \times (36 \bmod 11) = (3 \times 3) \bmod 11 = 9$
์์๋ฅผ ๋ณด๋ ์ดํด๊ฐ ์ฝ๊ฒ ๊ฐ์๋์? (์ดํด ๊ฐ์ํ๋ ๊ฒ ๊ฐ๋ค์,,ใ ใ ,ใ ใ ,,,)
์ ๊ณฑ์ ๋๋ ๊ณ์ฐํ๊ธฐ ํธํ๊ฒ ์ชผ๊ฐ๋์ ๋ค์ ์์ ์๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์์๋ก๋ $6^4$์ด๋ผ๋ ์์ ์์ง๋ง, $6^{243}$์ด๋ผ๋ ์๋ฅผ ๊ณ์ฐํ ๋์๋ ๊ต์ฅํ ์ ์ฉํ๊ฒ ์ฃ ?
โ๏ธ ๋ชจ๋์ ๊ณฑ์ ์ ์ญ์
์ด๋ฒ ํฌ์คํ ์ ๋ง์ง๋ง ์น์ ์ธ CRT(์ค๊ตญ์ธ์ ๋๋จธ์ง ์ ๋ฆฌ)๋ฅผ ์ ๋ฆฌํ ๋ ํ์๋ก ์์์ผํ๋ ๊ฐ๋ ์ ๋๋ค.
๋จผ์ , ๊ณฑ์ ์ ์ญ์์ด๋ผ๊ณ ํ๋ฉด ์ด๋ค ์๋ฅผ ๊ณฑํ์ ๋ 1์ด ๋๋ ์์ฃ .
($x$๊ฐ $3$์ผ ๋, $x$์ ๊ณฑ์ ์ ์ญ์์ $\frac{1}{3}$์ด์ฃ .)
๋ชจ๋๊ณ์ฐ์์ ๊ณฑ์ ์ ์ญ์์ ์ด๋ป๊ฒ ์ฐพ์๊น์?
๋ชจ๋ 12 ์์์ 7์ ๊ณฑ์ ์ ์ญ์ $x$๋ฅผ ๊ตฌํ ๋์ ์์ $(7 \times x) \bmod 12 = 1$ ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.
์ํธํ - ์ํ์ ๋ฌธ์
์ด์ฐ๋์๋ฌธ์
$Y=X^n$ ๋ผ๋ ์์์ $X$๊ฐ์ด ์ฃผ์ด์ง ๋ $Y$๊ฐ์ ์ฝ๊ฒ ๊ตฌํ ์ ์์ง๋ง(๋จ์๊ฐ์ ๊ฐ๋ฅ),
$Y$ ๊ฐ์ด ์ฃผ์ด์ง ๋ $X$๊ฐ์ ๊ตฌํ๊ธฐ ์ด๋ ต๋ค(๊ต์ฅํ ๊ธด ์๊ฐ์ด ํ์)๋ ์๋ฆฌ์ ๋๋ค.
๋ชจ๋ ์์์ ์ ๊ณฑ๊ทผ์ ๊ตฌํ๋ ๋ฌธ์ ๋ก ๋ค์ํ ์ํธํ ๋ฐฉ์์ ๊ธฐ์ด๊ฐ ๋๋ ์์ฃผ ์ค์ํ ๊ฐ๋ ์ ๋๋ค.
๋ชจ๋๋ก ์ฌ์ฉ๋๋ ์ซ์๊ฐ ๋งค์ฐ ํฌ๋ฉด ์ด์ฐ๋์ ๊ณ์ฐ์ด ๋งค์ฐ ์ด๋ ต๊ณ ์๊ฐ์ด ๋๋จํ ๋ง์ด ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ํด๊ฒฐํ๊ธฐ ์ด๋ ต์ต๋๋ค.
์ด๋ฐ ํน์ง์ ์ด์ฉํ์ฌ Diffie-Hellman์ ๊ณต๊ฐํค ์ํธ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณํ์ต๋๋ค.
์์ธ์ ๋ถํด ๋ฌธ์
Integer factorization Problem.
๋งค์ฐ ํฐ ์ ์๋ฅผ ์์ธ์ํด์ผํ๋ ๋ฌธ์ ์ ๋๋ค.
๋ ์๋ฅผ ๊ณฑํ๋ ์ฐ์ฐ์ ์ฝ์ง๋ง, ๊ณฑํด์ง ์๋ฅผ ๋ ์๋ก ์ชผ๊ฐ๋ ๊ฑด ์ด๋ ต์ต๋๋ค.
Chinese Remainder Theorem
โ๏ธ ์ค๊ตญ์ธ์ ๋๋จธ์ง ์ ๋ฆฌ (CRT)
์ค๊ตญ์ธ์ ๋๋จธ์ง ์ ๋ฆฌ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
CRT์ ์ ์๋ ์๋์ ๊ฐ์ต๋๋ค.
$K$๊ฐ์ ์๋ก์: $m_{1}, m_{2}, m_{3}, ···, m_{k}$ (์ฆ, $gcd(m_{i}, m_{j}) = 1, i \neq j \space$)์
์ ์ $a_{1}, a_{2}, a_{3}, ···, a_{k}$์ ๋ํด
๋ค์ ์ฐ๋ฆฝ ๋ฐฉ์ ์์ ๋ง์กฑํ๋ $x$๋ $mod (m_{1} \times m_{2} \times ··· \times m_{k})$์ ๋ํด ์ ์ผํ ํด๋ฅผ ๊ฐ์ง๋ค.
$\begin{cases}x &\equiv a_{1} (\bmod m_{1}) \\x &\equiv a_{2} (\bmod m_{2}) \\&\vdots \\x &\equiv a_{k} (\bmod m_{k})
\end{cases}$
์์ ์ฐ๋ฆฝ ๋ฐฉ์ ์์์ ํ๋์ ํด๊ฐ ๋์จ๋ค๋ ๊ฒ์ด CRTํต์ฌ์ ๋๋ค.
๋ญ๊ฐ ํ์ด ์ค๋ช ํ๋ ๋ฒ๋ฆ์ด ์๋๋ฐ, ์ด ํฌ์คํ ์ ์ค๋ช ์ ํ ๊ฒ ์๋ค์ ...
์ต๋ํ ์์์ด๋ผ๋,,ใ ใ ์ ์จ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋จ์ผ ํด $x$๋ฅผ ๊ตฌํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ์ต๋๋ค.
1. $M = m_{1} \times m_{2} \times m_{3} \times ··· \times m_{k}$
2. $M_{1} = \frac{M}{m_{1}}, M_{2} = \frac{M}{m_{2}} , ···, M_{k} = \frac{M}{m_{k}}$
3. $M_1^{-1} = M_1^{-1} (\bmod m_{2}),\space M_2^{-1} = M_2^{-1} (\bmod m_{2}),···, M_k^{-1} = M_k^{-1} (\bmod m_{k})$
4. $x = (a_{1} \times M_{1} \times M_1^{-1} + a_{2} \times M_{2} \times M_2^{-1} + ··· +a_{k} \times M_{k} \times M_k^{-1}) \bmod M$
๊ณ์ฐ์์ด ๊ต์ฅํ ๋ณต์กํด๋ณด์ด์ฃ . ํ์ด๋ณด๋๊น ์ค์ ๋ก๋ ๋ณต์กํ ๊ฒ ๊ฐ์์...ใ ใ ใ .,..
๊ทธ๋๋ ๋ช ๋ฒ ํด๋ณด๋ฉด ์ต์ํด์ง๊ฒ ์ฃ ?
์์๋ฅผ ๊ฐ์ด ํ๋ฉด์ ์ดํด๋ฅผ ๋๋๋ก ํด๋ด ์๋ค.
ex ) $x \equiv 2 \space (\bmod 5), \space x \equiv 3 \space (\bmod 5), \space x \equiv 2 \space (\bmod 7)$ ๋ฅผ ๋ชจ๋ ๋ง์กฑํ๋ $x$?
1. ๋ชจ๋ ์๋ก์๋ฅผ ๊ณฑํ์ฌ $M$ ๊ตฌํ๊ธฐ
$\small M = m_{1} \times m_{2} \times m_{3} \times ··· \times m_{k}$ ๐๐ป $M=3 \times 5 \times 7 =105$
2. $M_{1}, M_{2}, M_{3}$ ๊ณ์ฐํ๊ธฐ
$\small M_{1} = \frac{M}{m_{1}}, M_{2} = \frac{M}{m_{2}} , ···, M_{k} = \frac{M}{m_{k}}$ ๐๐ป $M_{1}=5 \times 7, \space M_{2}=3 \times 7, \space M_{3}=3 \times 5$
3. $M_{k}^{-1}$ ๊ณฑ์ ์ ์ญ์ ๊ตฌํ๊ธฐ
$\small M_1^{-1} = M_1^{-1} (\bmod m_{2}),\space M_2^{-1} = M_2^{-1} (\bmod m_{2}),···, M_k^{-1} = M_k^{-1} (\bmod m_{k})$
๋ชจ๋ ์ฐ์ฐ์ ๊ณฑ์ ์ ์ญ์์ ์ ์ $\small M_1 \times M_1^{-1} (\bmod m) = 1$ ๋ฅผ ์ด์ฉํ์ฌ ์์ ์์์ ํ ์ ์์ต๋๋ค.
๐๐ป $\begin{cases}x &\equiv a_{1} (\bmod m_{1}) \space ··· \space 35^{-1} ( \bmod 3) = 1 , \space x=2 \\x &\equiv a_{2} (\bmod m_{2}) \space ··· \space 21^{-1} ( \bmod 5) = 1 , \space x=1 \\x &\equiv a_{3} (\bmod m_{3}) \space ··· \space 15^{-1} ( \bmod 7) = 1 , \space x=1 \end{cases}$
๋ชจ๋์ฐ์ฐ์ ๊ณฑ์ ์ ์ญ์์ ๊ตฌํ๋ ๊ฒ์ด ์ด์ํ ์ ์์ผ๋, ํ๋๋ง ๊ฐ์ด ํ์ด๋ด ์๋ค ~!
$\small 35^{-1} ( \bmod 3) = 1$
$\small 35 \times M^{-1} \space (\bmod 3) \equiv 2 \times M^{-1} \space (\bmod 3) = 1, M^{-1} \in \{2, 5, 8, ···\}$
$\small \therefore M^{-1} = 2$
์ฌ๊ธฐ๊น์ง ์ ๋ฐ๋ผ์ค๊ณ ๊ณ์ ๊ฐ์ ..
์, ์ด์ ๋ง์ง๋ง์ ๋๋ค.
4. $x$๊ฐ ์ฐพ๊ธฐ
$\small x = (a_{1} \times M_{1} \times M_1^{-1} + a_{2} \times M_{2} \times M_2^{-1} + ··· +a_{k} \times M_{k} \times M_k^{-1}) \bmod M$ ๋ฅผ ๋ง์กฑํ๋ $x$๊ฐ ์ฐพ์๋ด ์๋ค.
$x = ((2 \times 35 \times 35^{-1} \bmod 3) + (3 \times 21 \times 21^{-1} \bmod 5) + (2 \times 15 \times 15^{-1} \bmod 7)) \bmod 105$
$= ((2 \times 35 \times 2) + (3 \times 21 \times 1) + (2 \times 15 \times 1)) \bmod 105$
$= 23$
์ถ๊ฐ์ ์ผ๋ก, 4๋ฒ๊ณผ ๊ฐ์ ๊ฒฐ๋ก ์ด ๋์ค๋ ์ด์ ๋ $x$๊ฐ์ ์ฐพ์ ๋ ์ ์ฒด ์์์ $\bmod m_{1}$์ ํ๊ฒ ๋๋ฉด
์ฒซ ๋ฒ์งธ ๊ณฑ์ ์ ์ ์ธํ ๋๋จธ์ง๋ $m_{1}$์ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ (2๋ฒ์งธ ๋จ๊ณ ์ฐธ์กฐ) 0์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ฐ๋ฆฝ๋ฐฉ์ ์์ ์ฒซ ๋ฒ์งธ์ ๋์ผํ ์์ด ๋์ค๊ฒ ๋์ฃ .
'BACKEND > Security' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
RSA, ์ ๋๋ก ์ดํดํ๊ธฐ (1) (4) | 2021.10.14 |
---|---|
PRNG, ์ ๋๋ก ์ดํดํ๊ธฐ (6) | 2021.09.16 |
Backend Software Engineer
๐๐ฎ๐ง ยท ๐๐ฎ๐๐ค๐ฃ๐๐จ๐ช๐ฃ ๐๐๐ง๐