Intro
Rabin μλͺ (Rabin Signature)μ 1979λ μ Michael O. Rabinμ΄ μ μν Rabin μνΈ(Rabin cryptosystem)λ₯Ό μλͺ λͺ©μ μΌλ‘ μμ©ν μκ³ λ¦¬μ¦μ λλ€. μ΄ μλͺ λ°©μμ λΉλμΉν€ μνΈν(곡κ°ν€ μνΈν)μμ μ¬μ©λλ©°, RSA μλͺ μκ³ λ¦¬μ¦κ³Ό μ μ¬νλ©΄μλ μνμ μΌλ‘λ λ€λ₯Έ ꡬ쑰μ νΉμ§μ 보μ λλ€.
Rabin μνΈλ μμ¬ λμ μμ±, λ©μμ§ μνΈν, μλͺ μκ³ λ¦¬μ¦ λ± λ€μν λΆμΌμμ μ°κ΅¬λμ΄ μμ΅λλ€. Rabinμ μ λ Όλ¬Έμμλ βRabin μκ³ λ¦¬μ¦μ RSAμ λ§μ°¬κ°μ§λ‘ ν° μμλ€μ κ³±μ λͺ¨λλ¬λ‘ μ¬μ©νλ λ¨λ°©ν₯ ν¨μλ₯Ό κΈ°λ°μΌλ‘ νλ, κ·Έ μμ μ±μ λν μ¦λͺ μ΄ μ‘°κΈ λ βκ°λ¨νλ©΄μλ κ°λ ₯νβ μ±μ§μ 보μΈλ€βκ³ μ£Όμ₯ν©λλ€. μ€μ λ‘ Rabin μλͺ μ μ€μ§ Integer Factorization Problemμ κΈ°λ°νμ¬ μμ μ±μ΄ κ·κ²°λλ€λ μ μμ μ΄λ‘ μ μΌλ‘ νΌνΌν κ·Όκ±°λ₯Ό κ°μ§κ³ μμ΅λλ€.
μλμμλ Rabin μλͺ μ΄ λ¬΄μμΈμ§, μ΄λ€ μλ¦¬λ‘ λμνλμ§, κ·Έλ¦¬κ³ κ΅¬νμμ μΈλΆ μ¬ν λ° μ£Όμμ , λ€λ₯Έ μλͺ μκ³ λ¦¬μ¦κ³Ό λΉκ΅νμ λμ μ₯λ¨μ λ±μ λ¨κ³λ³λ‘ μ΄ν΄λ΄ λλ€.
History
Rabin μνΈμ κΈ°μ
- 1978λ Rivest, Shamir, Adlemanμ΄ RSA 곡κ°ν€ μνΈλ₯Ό μ μν μ΄ν, μνμ μΌλ‘ ν° μμ μΈμλΆν΄κ° μ΄λ €μ΄ μ μ κΈ°λ°μΌλ‘ ν λ€μν μνΈ μκ³ λ¦¬μ¦λ€μ΄ λ±μ₯νμμ΅λλ€.
- 1979λ Michael O. Rabinμ RSAμ λΉμ·νκ² μμΈμλΆν΄ λ¬Έμ μ κ·Όκ±°ν μκ³ λ¦¬μ¦μ μ μν©λλ€. Rabin μνΈλ λ©μμ§ mmmμ λν΄ m2modββnm^2 \mod nm2modnμΌλ‘ μνΈννλ ꡬ쑰λ₯Ό κ°μ΅λλ€.
- Rabin μνΈμ λ νΉν μ μ 볡νΈν μ νλμ μνΈλ¬Έμ λν΄ μ΅λ 4κ°μ κ°λ₯ν νλ¬Έ νλ³΄κ° λμ€κΈ° λλ¬Έμ, μ΄λ₯Ό μ²λ¦¬νλ λ©μ»€λμ¦μ΄ νμν©λλ€.
μλͺ μκ³ λ¦¬μ¦μΌλ‘μ λ°μ
- Rabin μνΈκ° μλ €μ§ λ€, βRabin μλͺ (Rabin Signature)β μκ³ λ¦¬μ¦μ΄ μμ°μ€λ½κ² κ΄μ¬μ λμμ΅λλ€. ννΈ, RSA μλͺ μ λΉν΄ Rabin μλͺ μ΄ λ 보κΈλ μ΄μ μ€ νλλ ꡬνμ 볡μ‘μ±, κ·Έλ¦¬κ³ μλͺ κ°μ΄ λ¨μ μ κ³±(νΉμ λ³ν)μ κΈ°λ°νμ¬ μ¬λ¬ νλ³΄κ° λμ€κΈ° λλ¬Έμ μκΈ°λ νΉμν λ¬Έμ λ€κ³Ό κ°μ μ€μ©μ μΈ μ΄μ κ° κΌ½νλλ€.
- κ·ΈλΌμλ Rabin μλͺ μ μμ μ±μ μ€μ§ μ μ μΈμλΆν΄ λμ΄λμλ§ μμ‘΄νκΈ° λλ¬Έμ, μ΄λ‘ μ κ΄μ¬μ κΎΈμ€ν μ΄μ΄μ§κ³ μμ΅λλ€.
μνμ λ°°κ²½
μΈμλΆν΄ λ¬Έμ
- Rabin μλͺ μ ν¬ν¨ν λ§μ 곡κ°ν€ μνΈλ ν° μμ μΈμλΆν΄κ° μ΄λ €μμ κ·Όκ°μΌλ‘ ν©λλ€.
- μΌλ°μ μΌλ‘ μμ pppμ qqqλ₯Ό μ΄μ©νμ¬ n=pΓqn = p \times qn=pΓqλ‘ κ΅¬μ±νλ©΄, nnnμ μΈμλΆν΄λ μλ°±~μμ² λΉνΈ μμ€μ p,qp, qp,qλ₯Ό μ¬μ©νμ λ λ§€μ° μ΄λ ΅λ€κ³ μλ €μ Έ μμ΅λλ€.
- Rabin μλͺ μμλ μ΄ nnnμ 곡κ°ν€λ‘, p,qp, qp,qλ₯Ό λΉλ°ν€λ‘ μ¬μ©ν©λλ€.
λͺ¨λλ¬ μ κ³±
- Rabin μλͺ μ κΈ°λ³Έ μ°μ°μ μ κ³± μ°μ°μ λλ€. λ¨μννλ©΄, μλͺ μμ± μ λ©μμ§λ ν΄μ κ° λ±μ νΉμ ν¨μλ‘ λ³νν ν, κ·Έ κ²°κ³Όμ λν β루νΈβλ₯Ό μ°Ύλ κ³Όμ μ΄ ν¬ν¨λ©λλ€.
- μνμ μΌλ‘ x2β‘y(modn)x^2 \equiv y \pmod{n}x2β‘y(modn)λ₯Ό λ§μ‘±νλ xxxλ₯Ό μ°Ύλ λ¬Έμ (μ¦ βμ κ³±κ·Όβ λ¬Έμ )λ nnnμ΄ μμΈμλΆν΄λμ§ μμ μνμμ μ΄λ ΅μ΅λλ€. κ·Έλ¬λ nnnμ μΈμλΆν΄ν μ μλ€λ©΄(μ¦ λΉλ°ν€λ₯Ό κ°μ§ μλΌλ©΄) μ΄ λ¬Έμ λ μ½κ² ν΄κ²°λ μ μμ΅λλ€.
λ©μμ§ ν΄μ±κ³Ό ν¨λ©
- Rabin μλͺ μμλ λ©μμ§λ₯Ό λ°λ‘ μλͺ νλ κ²μ΄ μλλΌ, μΌλ°μ μΌλ‘ μνΈνμ ν΄μ ν¨μ(μ: SHA-256, SHA-3 λ±)λ₯Ό μ΄μ©νμ¬ λ©μμ§λ₯Ό μ§§μ ν΄μκ°μΌλ‘ λ§λ λ€μ, κ·Έ ν΄μκ°(νΉμ ν¨λ©λ ν΄μκ°)μ λν΄ μλͺ μ μ·¨ν©λλ€.
- ν΄μ ν¨μλ μλ³Έ λ©μμ§λ₯Ό μμμ κΈΈμ΄μμ κ³ μ λ κΈΈμ΄λ‘ μμΆν΄ μ£Όλ©°, μΌλ°μ μΌλ‘ μμ μ νμ±μ κ°μ§λλ€.
- Rabin μλͺ μμλ λ©μμ§ ν΄μλ₯Ό H(m)H(m)H(m)λΌ νκ³ , μλͺ μ°μ° μ μ΄ ν΄μμ νΉμ ν¨λ© λ°©μμ μ μ©ν λ€ μ κ³±κ·Όμ μ°Ύλ κ³Όμ μ κ±°μΉ©λλ€.
Rabin μλͺ μ λμ λ°©μ
Rabin μλͺ μ ν΅μ¬μ μΌλ‘ μλμ κ°μ κ³Όμ μ κ±°μΉ©λλ€. μ΄λ, λ©μμ§λ₯Ό λ¨μννμ¬ μ€λͺ νλ©°, μ€μ ꡬνμμλ ν΄μ ν¨μμ μΆκ° ν¨λ©(νΉμ νλΌλ―Έν°)μ μ μ©ν©λλ€.
Key Generation
-
λ μμ p,qp, qp,q μ ν
- ν° μμ p,qp, qp,q (μ: κ° 1024λΉνΈμ©, μ΄ 2048λΉνΈ λͺ¨λλ¬ λ±)λ₯Ό 무μμλ‘ μ νν©λλ€.
- p,qp, qp,qλ μλ‘ λ€λ₯Έ μμμ¬μΌ νλ©°, λ³΄ν΅ pβ‘qβ‘3(mod4)p \equiv q \equiv 3 \pmod{4}pβ‘qβ‘3(mod4)μ κ°μ ννλ‘ μ ννλ κ² μΌλ°μ μ
λλ€.
- μ΄λ μλͺ λ° λ³΅νΈν(λ£¨νΈ μ°ΎκΈ°) κ³Όμ μμ 2κ°μ ν΄λ§ μμ±λλλ‘ κ΄λ¦¬νκΈ° μν¨μ λλ€.
- μ¬μ€μ pβ‘qβ‘3(mod4)p \equiv q \equiv 3 \pmod{4}pβ‘qβ‘3(mod4)μ΄λ©΄, 볡μ μ ν ν보(μ: μμ 루νΈ)λ§μ μ ννλ λͺ νν κ·μΉμ΄ κ°λ₯νκ² λ©λλ€.
-
n=pΓqn = p \times qn=pΓq κ³μ°
- 곡κ°ν€: nnn
- κ°μΈν€(λΉλ°ν€): p,qp, qp,q
-
μΆκ° νλΌλ―Έν° μ€μ (μ΅μ )
- Rabin μλͺ μ λ³΅νΈ κ³Όμ (μ κ³±κ·Ό ꡬνκΈ°)μμ 4κ°μ§ νλ³΄κ° λμ¬ μ μμ΅λλ€. μ΄λ₯Ό λͺ νν νλλ‘ κ²°μ νκΈ° μν μΆκ° μ 보(μ: salt, μ ν λΉνΈ, μΈμ½λ© κ·μΉ) λ±μ΄ νμν κ²½μ°κ° μμ΅λλ€.
- μΌλ°μ μΌλ‘ λΈλ£Έ-골λμμ(BGW) ν¨λ©μ΄λ λ€λ₯Έ λ©μμ§ μλ² λ© λ°©μμ μ΄μ©νμ¬, μλͺ κ°μ λν΄ μΆ©λμ΄ μΌμ΄λμ§ μλλ‘ ν©λλ€.
Signing
-
λ©μμ§ ν΄μ H(m)H(m)H(m) κ³μ°
- μλ³Έ λ©μμ§ mmmμ λνμ¬, μνΈνμ ν΄μ ν¨μ HHHλ₯Ό μ μ©ν΄ h=H(m)h = H(m)h=H(m)μ ꡬν©λλ€.
- νμνλ€λ©΄ hhhμ λ€μ ν¨λ© λ± μΆκ° λ°μ΄ν°λ₯Ό ν¬ν¨ν΄ h~\tilde{h}h~μ κ°μ νμ₯ λ²μ μ νμ±νκΈ°λ ν©λλ€.
-
μλͺ λͺ©μ μ βμ κ³±κ·Όβ κ³μ°
- Rabin μλͺ
μμ μλͺ
κ° sssλ h
β‘s2(modn)\tilde{h} \equiv s^2 \pmod{n}hβ‘s2(modn)μ λ§μ‘±νλλ‘ νλ sssλ₯Ό μ°Ύλ κ³Όμ μ μν΄ κ²°μ λ©λλ€. - νμ§λ§, λͺ¨λλ‘ nnnμ μ κ³±κ·Όμ p, qμ μμΈμλ₯Ό μλ μ¬λλ§μ΄ μ½κ² κ³μ°ν μ μμ΅λλ€.
- ꡬ체μ μΌλ‘,
- h
p=hmodββp\tilde{h}_p = \tilde{h} \mod phpβ=hmodp - h
q=hmodββq\tilde{h}_q = \tilde{h} \mod qhqβ=hmodq - κ°κ°μ μμμ λν΄ sp2β‘h
p(modp)s_p^2 \equiv \tilde{h}_p \pmod{p}sp2ββ‘hpβ(modp), sq2β‘hq(modq)s_q^2 \equiv \tilde{h}_q \pmod{q}sq2ββ‘hqβ(modq)λ₯Ό λ§μ‘±νλ ν΄ sp,sqs_p, s_qspβ,sqβλ₯Ό μ°Ύκ³ , - μ€κ΅μΈμ λλ¨Έμ§ μ 리(CRT, Chinese Remainder Theorem)λ₯Ό μ¬μ©νμ¬ sps_pspβμ sqs_qsqβλ₯Ό nnnμμμ κ³ μ μ루μ sssλ‘ κ²°ν©ν©λλ€.
- h
- λ§μ½ p,qβ‘3(mod4)p, q \equiv 3 \pmod{4}p,qβ‘3(mod4) ννλ‘ μ νλμλ€λ©΄, h
p\tilde{h}_phpβκ° μ£Όμ΄μ‘μ λ spβ‘hpp+14modββp s_p \equiv \tilde{h}_p^{\frac{p+1}{4}} \mod pspββ‘hp4p+1ββmodp λ°©μμΌλ‘ μ½κ² μ κ³±κ·Όμ ꡬν μ μμ΅λλ€.
- Rabin μλͺ
μμ μλͺ
κ° sssλ h
-
μ μΌν μλͺ κ°(νΉμ λνκ°) κ²°μ
- μ΄λ‘ μ μΌλ‘ CRT μ μ© μ 4κ°μ ν보 Β±sp,Β±sq\pm s_p, \pm s_qΒ±spβ,Β±sqβ μ‘°ν©μ΄ λνλ μ μμΌλ, κ·Έμ€ νλλ₯Ό μ ννλ κ·μΉ(μ: κ°μ₯ μμ μμ μ μ)μ ν΅ν΄ μλͺ κ°μ λ¨μΌνκ² κ²°μ ν©λλ€.
-
μλͺ κ²°κ³Ό μΆλ ₯
- μ΅μ’ μλͺ κ° sssλ₯Ό μ‘μ μΈ‘(μλͺ μ)μ΄ λ©μμ§μ ν¨κ» μ μ‘ν©λλ€.
Verification
-
λ©μμ§ ν΄μ H(m)H(m)H(m) μ¬κ³μ°
- κ²μ¦μλ λ©μμ§λ₯Ό λ°μ λμΌν ν΄μ ν¨μ HHHλ₯Ό μ μ©νμ¬ h=H(m)h = H(m)h=H(m)μ μ»μ΅λλ€.
- ν¨λ©μ΄ μ μ©λ κ²½μ°, λ©μμ§μ ν¬ν¨λ ν¨λ© μ 보λ₯Ό 볡μνκ±°λ λ³λμ λ°©μμ ν΅ν΄ h~\tilde{h}h~λ₯Ό μ¬κ΅¬μ±ν©λλ€.
-
μλͺ κ°μ μ΄μ©ν΄ μ κ³± μ°μ° μν
- κ²μ¦μλ μλͺ κ° sssμ λν΄ s2modββns^2 \mod ns2modnμ κ³μ°νμ¬, κ·Έ κ²°κ³Όκ° h~\tilde{h}h~μ μΌμΉνλμ§ νμΈν©λλ€.
- λ§μ½ h
β‘s2(modn)\tilde{h} \equiv s^2 \pmod{n}hβ‘s2(modn)μ΄ μ±λ¦½νλ€λ©΄, μλͺ μ μ ν¨ν©λλ€. - μ±λ¦½νμ§ μλλ€λ©΄ μμ‘°μ΄κ±°λ λ³μ‘°λ κ²μΌλ‘ νμ λ©λλ€.
Rabin μλͺ μ μ₯μ κ³Ό λ¨μ
μ₯μ
-
λ¨μΌν μνμ κ°μ (μΈμλΆν΄ λ¬Έμ )μλ§ μμ‘΄
- RSAμ λ¬λ¦¬ βeeeβ νΉμ βdddβ λ±μ μΆκ° μ§μ κ°μ μ΄ νμ μμ΅λλ€.
- Rabin μλͺ μ μμ μ±μ μ€μ§ μ μ μΈμλΆν΄ λ¬Έμ μ λμ΄λμ κ·Όκ±°ν©λλ€. μ΄λ‘ μ μΌλ‘ κΉλν μμ μ± κ·Όκ±°λ₯Ό κ°μ§.
-
μλμ μΌλ‘ λ¨μν ꡬ쑰
- μ€μ ꡬνμ λ©μμ§λ₯Ό λ³ν(ν΄μ+ν¨λ©)ν λ€ λͺ¨λλ¬ μ κ³±κ·Ό μ°μ°μ μννλ λ°©μμΌλ‘, RSA μλͺ κ³Ό ν° νμμ λ€λ₯΄μ§ μμ΅λλ€.
- μλͺ κ²μ¦λ μ κ³± μ°μ° ν λ²μ΄λ©΄ μΆ©λΆνλ―λ‘, κ³μ° λΉμ©μ λΉκ΅μ μ μ μ μμ΅λλ€(μ§μ μ°μ° λμ μ κ³± μ°μ°).
-
μλͺ κ²μ¦μ΄ λ§€μ° κ°λ¨
- βμλͺ κ°μ μ κ³± β λͺ¨λλ¬ μ°μ° β ν΄μμ λΉκ΅βλ‘ λλλ―λ‘, κ²μ¦ μΈ‘λ©΄μμ μ°μ°μ΄ κ²½λνλ μ μμ΅λλ€.
λ¨μ
-
4κ°μ§ ν΄(Β±κ°) λ¬Έμ
- λͺ¨λλ‘ nnnμμμ μ κ³±κ·Όμ μ΅λ 4κ°μ§κ° μ‘΄μ¬ν©λλ€.
- μ΄λ₯Ό μ²λ¦¬νκΈ° μν΄ CRTμ βλνκ°βμ μ νλ κ·μΉμ΄ νμν©λλ€. μ€μ ꡬν μ 볡μ‘μ±μ μ¦κ°μν€λ μμΈμ΄ λ©λλ€.
-
ν¨λ©/μλ² λ© λ°©μμ 볡μ‘μ±
- Rabin μλͺ μ μμ νκ² μ μ©νκΈ° μν΄μλ μ μ ν ν¨λ© μ€ν΄μ΄ νμν©λλ€.
- μλ₯Ό λ€μ΄ λΈλ£Έ-골λμμ(BloomβGoldwasser) ν¨λ©, νΉμ ISO/IEC νμ€μ λͺ μλ λ³λμ ν¨λ© μκ³ λ¦¬μ¦ λ±μ μ μ©ν΄μΌ ν©λλ€.
- μ¬λ°λ₯΄μ§ μμ ν¨λ©μ λ©μμ§-μλͺ μμ λν 곡격 벑ν°λ₯Ό λ§λ€ μλ μμ΅λλ€.
-
λ리 μ°μ΄μ§ μμ
- RSA, ECDSA, EdDSA λ±μ λΉν΄ μ°μ νμ€μΌλ‘ μ±νλ μ¬λ‘κ° μ μ΅λλ€.
- λ°λΌμ μ€μ ꡬν λΌμ΄λΈλ¬λ¦¬λ λ¬Έμν, μ΅μ ν μ½λ, νλμ¨μ΄ κ°μ μ§μ λ±μ΄ λΆμ‘±ν νΈμ λλ€.
-
ν€ κΈΈμ΄μ μμ μ±
- Rabin μλͺ λ RSAμ²λΌ ν° λͺ¨λλ¬ nnnμ μ¬μ©ν΄μΌ μμ ν©λλ€.
- λλ΅ RSAμ μ μ¬νκ² 2048λΉνΈ μ΄μ(νλ 보μ κΈ°μ€)μ κΆμ₯λλ©°, 3072, 4096 λ± λ ν° ν€ κΈΈμ΄κ° μꡬλ μλ μμ΅λλ€.
Rabin Signature vs. RSA
Rabin μλͺ κ³Ό RSA μλͺ μ λͺ¨λ μμΈμλΆν΄ λ¬Έμ λ₯Ό κΈ°λ°μΌλ‘ νμ§λ§, μνμ μ²λ¦¬ κ³Όμ μμ μ½κ°μ μ°¨μ΄κ° μμ΅λλ€.
-
μνμ μ리
- RSA: sβ‘hd(modn)s \equiv h^d \pmod{n}sβ‘hd(modn) (μ¬κΈ°μ dddλ κ°μΈν€)
- Rabin: s2β‘h(modn)s^2 \equiv h \pmod{n}s2β‘h(modn) (μμΈμλΆν΄λ₯Ό ν΅ν΄ μ κ³±κ·Όμ ꡬν¨)
-
볡μ‘λ
- μλͺ μ°μ°μμ RSAλ κ±°λμ κ³±(μ§μ μ°μ°), Rabinμ μ κ³±κ·Όμ μ°ΎμμΌ ν©λλ€.
- λμ²΄λ‘ RSAλ λͺ¨λλ¬ κ±°λμ κ³±μ, Rabinμ CRT κΈ°λ°μ λ μμμ λν λ£¨νΈ ν©μ± κ³Όμ μ μννλ―λ‘, μ΄λ μͺ½μ΄ λ ν¨μ¨μ μΈμ§λ ꡬνμ λ°λΌ λ¬λΌμ§ μ μμ΅λλ€.
-
μμ μ± κ·Όκ±°
- RSAλ μΌλ°μ μΌλ‘ βRSA λ¬Έμ β(ceβ‘mmodββnc^e \equiv m \mod nceβ‘mmodnμμ mmmμ μ°ΎκΈ° μ΄λ ΅λ€λ κ²)μ κ·Όκ±°νμ§λ§, μ΅μ’ μ μΌλ‘λ μ μ μΈμλΆν΄, e-th root λ¬Έμ λ± λ³΅ν©μ μΈ μνμ λ¬Έμ μ μμ‘΄ν©λλ€.
- Rabinμ μ‘°κΈ λ μ§μ μ μΌλ‘ μ μ μΈμλΆν΄ λ¬Έμ μ κ·κ²°λλ―λ‘, μμ μ± μ¦λͺ μ΄ κ°κ²°νλ€κ³ νκ°λ©λλ€.
-
νμ€/μ±νλ
- RSAλ μλ§μ κ΅μ νμ€, μ°μ νμ€μ μ±νλμ΄ νλκ² μ°μ΄λ©°, νλμ¨μ΄ κ°μλ μ§μλ©λλ€.
- Rabinμ νμ μ μΌλ‘λ RSAμ μ΄κΉ¨λ₯Ό λλν νμ§λ§, μ€μ μ°μ μ μΌλ‘λ λ μ±νλμμ΅λλ€.