πŸ”’μœ ν΄λ¦¬λ“œ μ•Œκ³ λ¦¬μ¦˜(μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•)

t1mmyt1mΒ·2022λ…„ 3μ›” 31일
1

RSA μ•”ν˜Έ μ‹œμŠ€ν…œμ„ μ΄ν•΄ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ μˆ˜ν•™μ  이둠인 μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μ— λŒ€ν•΄ μ•Œμ•„λ³Ό 것이닀.
이야기 ν•˜κΈ°μ— μ•žμ„œ μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μ— μ‚¬μš©λ˜λŠ” μˆ˜ν•™κΈ°ν˜Έμ™€ μš©μ–΄μ— λŒ€ν•œ μ„€λͺ…은 λ‹€μŒκ³Ό κ°™λ‹€.

μˆ˜ν•™κΈ°ν˜Έ 및 μš©μ–΄

aβ€‰βˆ£β€‰ba\, |\, b : μ •μˆ˜ bbλŠ” μ •μˆ˜ aa둜 λ‚˜λˆ„μ–΄ 떨어진닀.
∈\in : (μ™Όμͺ½μ΄ 였λ₯Έμͺ½μ˜) μ›μ†Œμ΄λ‹€.
βˆƒ\exist : μ‘΄μž¬ν•œλ‹€. (exist)
Z\mathbb{Z} : μ •μˆ˜ 집합


μ•½μˆ˜μ˜ μ •μ˜

a,b∈Zβ€…β€Š(aβ‰ 0)a,b\in\mathbb{Z}\; (a\ne0)
aaκ°€ bb의 μ•½μˆ˜λΌλŠ” 말은 b=ak,β€‰βˆƒk∈Zb=ak,\, \exist k \in \mathbb{Z} λΌλŠ” 말과 λ™μΉ˜μ΄λ‹€.

0의 μ•½μˆ˜

xβ€‰βˆ£β€‰0β€…β€Šβ‡’β€…β€Šxx\,|\,0\; \Rightarrow\; xλŠ” λͺ¨λ“  μ •μˆ˜
0의 μ•½μˆ˜λŠ” λͺ¨λ“  μ •μˆ˜ (λͺ¨λ“  μ •μˆ˜λŠ” 0의 배수)⇒ xβ€‰βˆ£β€‰0β€…β€Šβ‡’β€‰0=xΓ—k (kλŠ”β€‰0) ,β€‰βˆƒkβˆˆβ€‰Z\Rightarrow\,x\,|\,0\;\Rightarrow\,0=x\times k\, (kλŠ”\, 0)\, ,\,\exist k\in\,\mathbb{Z}

κ³΅μ•½μˆ˜(μ΅œλŒ€ κ³΅μ•½μˆ˜)

gcd⁑(a,b)\gcd(a,b) 라고 λ‚˜νƒ€λ‚Ό 수 있으며 gcd⁑\gcdλŠ” greatest common diviser (μ΅œλŒ€ κ³΅μ•½μˆ˜)의 μ•½μžμ΄λ‹€.
ex)gcd⁑(12,3)=3β€…β€Šβ€‰gcd⁑(32,18)=2{\sf ex})\gcd(12,3)=3\\\quad\;\,\gcd(32,18)=2


μœ ν΄λ¦¬λ“œ μ•Œκ³ λ¦¬μ¦˜(μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•)

gcd⁑(A,B)=gcd⁑(B,r)\gcd(A,B)=\gcd(B,r)

각 문자의 크기λ₯Ό 비ꡐ해보면 0≀r<B<A0\le r<B<A 라고 λ‚˜νƒ€λ‚Ό 수 μžˆλŠ”λ° μœ ν΄λ¦¬λ“œ ν˜Έμ œλ²•μ„ 보면 AA보닀 μž‘μ€ B,rB,r의 μ΅œλŒ€κ³΅μ•½μˆ˜κ°€ A,BA,B의 μ΅œλŒ€κ³΅μ•½μˆ˜μ™€ κ°™λ‹€κ³  λ‚˜μ™€μžˆλ‹€.
λ”°λΌμ„œ μœ„μ˜ μ‹μ—μ„œ = 의 μ˜λ―ΈλŠ” 같은 κ°’ gcd⁑\gcdλ₯Ό μ’€ 더 μž‘μ€ 수둜 μΆ•μ†Œν•΄μ„œ λ‚˜νƒ€λ‚Έλ‹€λŠ” 말이 될 수 μžˆλ‹€. λ˜ν•œ 이 말을 톡해 gcd⁑(B,r)\gcd(B,r)을 계속 μΆ•μ†Œν•  수 μžˆλ‹€λŠ” 것을 μ•Œ 수 μžˆλ‹€.

gcd⁑(A,B)(A>B , Aβ‰ B)A=qB+rB=q1r+r1\gcd(A,B)\quad (A>B\,,\,A\ne B)\\ A=qB+r\\B=q_1r+r_1

μœ„μ˜ BB의 식은 gcd⁑(B,r)\gcd(B,r)을 ν•œλ²ˆ 더 μΆ•μ†Œν–ˆλ‹€κ³  κ°€μ •ν–ˆμ„ λ•Œμ˜ 식이닀. μ΄λ•Œ q,q1q,q_1은 λͺ«μ„ λ‚˜νƒ€λ‚΄κ³  r,r1r,r_1은 λ‚˜λ¨Έμ§€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.

증λͺ…

gcd⁑(A,B)=gcd⁑(B,r)\gcd(A,B)=\gcd(B,r)
((단, A>B, Aβ‰ B, A=qB+r, 0≀r<B)A>B,\,A\ne B,\,A=qB+r,\,0\le r<B)

pfβ€…β€Šgcd⁑(A,B)=gβ‡’gcd⁑(B,r)=gβ€…β€Š{\sf pf}\;\gcd(A,B)=g\Rightarrow \gcd(B,r)=g\\\quad\;μ΄λ•Œ gcd⁑(B,r)=g\gcd(B,r)=g κ°€ μš°λ¦¬κ°€ 증λͺ…ν•  λͺ…μ œμ΄λ‹€. κ³΅ν†΅μΈμˆ˜μΈ ggλ₯Ό μ‚¬μš©ν•˜μ—¬ A,BA,Bλ₯Ό μ‹μœΌλ‘œ λ‚˜νƒ€λ‚΄λ©΄β€‰A=ga B=gb\quad \,A=ga\\\quad \,B=gb 와 κ°™λ‹€. 단, a,ba,b λŠ” μ„œλ‘œμ†Œμ΄λ‹€.


μ„œλ‘œμ†Œλž€?

: a,ba,bκ°€ μ„œλ‘œμ†ŒλΌλŠ”κ±΄, gcd⁑(a,b)=1⇔\gcd(a,b)=1\Leftrightarrow κ³΅ν†΅μΈμˆ˜κ°€ μ—†λ‹€.(1을 μ œμ™Έν•˜κ³ )

a,ba,bκ°€ μ„œλ‘œμ†Œκ°€ 아닐 경우

gcd⁑(a,b)β‰ 1 , gcd⁑(a,b)=mβ‡’mβ€‰βˆ£β€‰a , mβ€‰βˆ£β€‰b\gcd(a,b)\ne1\,,\,\gcd(a,b)=m\Rightarrow m\,|\,a\,,\,m\,|\,b
A=ga , B=gbA=ga\, ,\,B=gb λ₯Ό gmgm으둜 λ‚˜λˆŒ 수 있고 λͺ¨λ‘ μ•½λΆ„λœλ‹€. 그럼 A,BA,B의 κ³΅ν†΅μΈμˆ˜λŠ” gmgm이 λœλ‹€.
λ”°λΌμ„œ gcd⁑(A,B)=gβ‡’\gcd(A,B)=g\Rightarrow λͺ¨μˆœ
이λ₯Ό μ •λ¦¬ν•˜μžλ©΄
gcd⁑(A,B)=gA=ga , B=gbβ€…β€Šβ€‰\gcd(A,B)=g\\A=ga\,,\,B=gb\;\, ((단, gcd⁑(a,b)=1)\gcd(a,b)=1)


λ‹€μ‹œ 증λͺ…을 μ΄μ–΄μ„œ ν•˜λ©΄
pfβ€…β€ŠA=qB+r{\sf pf}\;A=qB+r 은 ga=qgb+rga=qgb+r κ³Ό 같이 λ‚˜νƒ€λ‚Ό 수 있고
β€…β€Šr=gaβˆ’qgb=g(aβˆ’qb)=grβ€²\quad \;r=ga-qgb=g(a-qb)=gr^\prime 을 톡해 gβ€‰βˆ£β€‰rg\,|\,r 이 κ°€λŠ₯ν•˜λ‹€.
B=gb ,r=gr′ ⇒ gβ€‰βˆ£β€‰b , gβ€‰βˆ£β€‰r\quad B=gb\,,r=gr^\prime\,\Rightarrow\,g\,|\,b\,,\,g\,|\,r
\quadμœ„ 식을 톡해 ggκ°€ B,rB,r의 κ³΅μ•½μˆ˜μž„μ„ μ•Œ 수 μžˆμ§€λ§Œ μ΅œλŒ€κ³΅μ•½μˆ˜μΈμ§€λŠ” μ•Œ 수 μ—†λ‹€.
\quadλ”°λΌμ„œ gcd⁑=(B,rβ€²)=1\gcd=(B,r^\prime)=1μž„μ„ λ³΄μ—¬μ•Όν•œλ‹€.

\quadμš°λ¦¬λŠ” κ·€λ₯˜λ²•μ„ μ‚¬μš©ν•  것인데 gcd⁑(b,rβ€²)=Ξ±β€…β€Šβ€‰(aβ‰ 1)\gcd(b,r^\prime)=\alpha\;\,(a\ne1) 라고 κ°€μ •ν•˜κ³  식을 써보면 λ‹€μŒκ³Ό κ°™λ‹€.
A=qB+r⇒ga=qgb+gr′\quad A=qB+r\Rightarrow ga=qgb+gr^\prime
b=Ξ±bβ€²\quad b=\alpha b^\prime
rβ€²=Ξ±rβ€²β€²\quad r^\prime=\alpha r^{\prime\prime}
\quadμ΄λ•Œ gcd⁑(bβ€²,rβ€²β€²)=1\gcd(b^\prime,r^{\prime\prime})=1 이며 μœ„ b , rβ€²b\,,\,r^\prime 에 λŒ€ν•œ 두 식을 ga=qgb+grβ€²ga=qgb+gr^\prime 에 λŒ€μž…ν•œλ‹€.
A=ga=qgΞ±bβ€²+gΞ±rβ€²β€²=ga(qbβ€²+rβ€²β€²)β‡’gΞ±β€‰βˆ£β€‰Aβ€…β€ŠgΞ±β€‰βˆ£β€‰B=gb=gΞ±bβ€²\quad A=ga=qg\alpha b^\prime+g\alpha r^{\prime\prime}=ga(qb^\prime+r^{\prime\prime})\\\quad\Rightarrow g\alpha\,|\,A\\ \quad\quad\;g\alpha\,|\,B=gb=g\alpha b^\prime
\quadμœ„ 식은 gcd⁑(A,B)=gcd⁑(B,r)\gcd(A,B)=\gcd(B,r) 에 λͺ¨μˆœμ΄λ‹€.
\quad즉, μ΅œλŒ€κ³΅μ•½μˆ˜κ°€ gΞ±g\alpha 이기 λ•Œλ¬Έμ— A , BA\,,\,B의 μ΅œλŒ€κ³΅μ•½μˆ˜κ°€ ggλΌλŠ” 것에 λͺ¨μˆœμ΄λ‹€.

\quadμœ„ κ·€λ₯˜λ²•μ„ 톡해 gcd⁑(b,rβ€²)=1\gcd(b,r^\prime)=1 이 증λͺ…λœλ‹€.
\quad그럼 gcd⁑(B,r)=g\gcd(B,r)=g λ˜ν•œ 증λͺ…이 되고 λ”°λΌμ„œ gcd⁑(A,B),gcd⁑(B,r)\gcd(A,B),\gcd(B,r)의 값이 g둜 κ°™λ‹€.
\quad결둠적으둜, gcd⁑(A,B)=gcd⁑(B,r)\gcd(A,B)=\gcd(B,r) μ΄λΌλŠ” 것을 μ•Œ 수 μžˆλ‹€.


예제

ex) gcd⁑(12345,123)=gcd⁑(123,45)β€…β€Šβ€…β€Šβ€‰=gcd⁑(45,33)β€…β€Šβ€…β€Šβ€‰=gcd⁑(33,12)β€…β€Šβ€…β€Šβ€‰=gcd⁑(12,9)β€…β€Šβ€…β€Šβ€‰=gcd⁑(9,3)β€…β€Šβ€…β€Šβ€‰=gcd⁑(3,0)=3{\sf ex})\,\gcd(12345,123)=\gcd(123,45)\\\quad\quad\quad\quad\quad\quad\quad\quad\;\;\,=\gcd(45,33)\\\quad\quad\quad\quad\quad\quad\quad\quad\;\;\, =\gcd(33,12)\\\quad\quad\quad\quad\quad\quad\quad\quad\;\;\, =\gcd(12,9)\\\quad\quad\quad\quad\quad\quad\quad\quad\;\;\, =\gcd(9,3)\\\quad\quad\quad\quad\quad\quad\quad\quad\;\;\, =\gcd(3,0) =3

ν‹€λ¦°λΆ€λΆ„μ΄λ‚˜ μ΄μƒν•œ λΆ€λΆ„ 있으면 μ•Œλ €μ£Όμ„Έμš”...!

0개의 λŒ“κΈ€