Processing math: 7%

CRT, Modulo Operation

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' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€