2021. 9. 22. 17:07ใBACKEND/Security
***************** INDEX *****************
๐พ ๋ชจ๋์ฐ์ฐ
๐ค Chinese Remainder Theorem
********************************************
๋ชจ๋์ฐ์ฐ
์ํธํ์์ ๋น ์ง ์ ์๋ ๋ชจ๋์ฐ์ฐ์ ๊ธฐ๋ณธ์ผ๋ก ์ํธํ์์ ์ฌ์ฉํ๋ ์ํ์ ์ธ ๊ธฐ๋ฒ๋ค์ ์์๋ณด๊ณ ์ ํฉ๋๋ค.
์ด ํฌ์คํ ์ ๋ชจ๋์ฐ์ฐ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๊ณ ์๋ค๋ ๊ฐ์ ํ์ ์์ฑํ๊ฒ ์ง๋ง,
๊ทธ๋๋ ๋ชจ๋์ฐ์ฐ์ ๊ฐ๋ณ๊ฒ ํ๊ณ ๋ง ๊ฐ๊ฒ ์ต๋๋ค.
๋ชจ๋์ฐ์ฐ?
๋๋์ ์ ํด์ ๋๋จธ์ง๋ฅผ ๊ตฌํ๋ ์ฐ์ฐ. ๋ฐ๋์ด ํ๋๋ฐ์ ์๋ ์๊ณ์ฐ์ฐ
Amod
๋ชจ๋์ฐ์ฐ์์ ๊ธฐ๋ณธ์ ์ผ๋ก 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
๐๐ฎ๐ง ยท ๐๐ฎ๐๐ค๐ฃ๐๐จ๐ช๐ฃ ๐๐๐ง๐