CRT, Modulo Operation

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