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

  1. 두 μ†Œμˆ˜ 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)이면, 볡원 μ‹œ ν•œ 후보(예: μ–‘μˆ˜ 루트)λ§Œμ„ μ„ νƒν•˜λŠ” λͺ…ν™•ν•œ κ·œμΉ™μ΄ κ°€λŠ₯ν•˜κ²Œ λ©λ‹ˆλ‹€.
  2. n=pΓ—qn = p \times qn=pΓ—q 계산

    • κ³΅κ°œν‚€: nnn
    • κ°œμΈν‚€(λΉ„λ°€ν‚€): p,qp, qp,q
  3. μΆ”κ°€ νŒŒλΌλ―Έν„° μ„€μ •(μ˜΅μ…˜)

    • Rabin μ„œλͺ…은 볡호 κ³Όμ •(제곱근 κ΅¬ν•˜κΈ°)μ—μ„œ 4κ°€μ§€ 후보가 λ‚˜μ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό λͺ…ν™•νžˆ ν•˜λ‚˜λ‘œ κ²°μ •ν•˜κΈ° μœ„ν•œ μΆ”κ°€ 정보(예: salt, 선택 λΉ„νŠΈ, 인코딩 κ·œμΉ™) 등이 ν•„μš”ν•œ κ²½μš°κ°€ μžˆμŠ΅λ‹ˆλ‹€.
    • 일반적으둜 λΈ”λ£Έ-κ³¨λ“œμ›Œμ„œ(BGW) νŒ¨λ”©μ΄λ‚˜ λ‹€λ₯Έ λ©”μ‹œμ§€ μž„λ² λ”© 방식을 μ΄μš©ν•˜μ—¬, μ„œλͺ… 값에 λŒ€ν•΄ 좩돌이 μΌμ–΄λ‚˜μ§€ μ•Šλ„λ‘ ν•©λ‹ˆλ‹€.

Signing

  1. λ©”μ‹œμ§€ ν•΄μ‹œ H(m)H(m)H(m) 계산

    • 원본 λ©”μ‹œμ§€ mmm에 λŒ€ν•˜μ—¬, μ•”ν˜Έν•™μ  ν•΄μ‹œ ν•¨μˆ˜ HHHλ₯Ό μ μš©ν•΄ h=H(m)h = H(m)h=H(m)을 κ΅¬ν•©λ‹ˆλ‹€.
    • ν•„μš”ν•˜λ‹€λ©΄ hhh에 λ‹€μ‹œ νŒ¨λ”© λ“± μΆ”κ°€ 데이터λ₯Ό 포함해 h~\tilde{h}h~와 같은 ν™•μž₯ 버전을 ν˜•μ„±ν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.
  2. μ„œλͺ… λͺ©μ μ˜ β€œμ œκ³±κ·Όβ€ 계산

    • Rabin μ„œλͺ…μ—μ„œ μ„œλͺ…κ°’ sssλŠ” h≑s2(modn)\tilde{h} \equiv s^2 \pmod{n}h≑s2(modn)을 λ§Œμ‘±ν•˜λ„λ‘ ν•˜λŠ” sssλ₯Ό μ°ΎλŠ” 과정에 μ˜ν•΄ κ²°μ •λ©λ‹ˆλ‹€.
    • ν•˜μ§€λ§Œ, λͺ¨λ“ˆλ‘œ nnn의 μ œκ³±κ·Όμ€ p, q의 μ†ŒμΈμˆ˜λ₯Ό μ•„λŠ” μ‚¬λžŒλ§Œμ΄ μ‰½κ²Œ 계산할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • ꡬ체적으둜,
      • hp=hmod  p\tilde{h}_p = \tilde{h} \mod php​=hmodp
      • hq=hmod  q\tilde{h}_q = \tilde{h} \mod qhq​=hmodq
      • 각각의 μ†Œμˆ˜μ— λŒ€ν•΄ sp2≑hp(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둜 κ²°ν•©ν•©λ‹ˆλ‹€.
    • λ§Œμ•½ p,q≑3(mod4)p, q \equiv 3 \pmod{4}p,q≑3(mod4) ν˜•νƒœλ‘œ μ„ νƒλ˜μ—ˆλ‹€λ©΄, hp\tilde{h}_php​가 μ£Όμ–΄μ‘Œμ„ λ•Œ sp≑hpp+14mod  p s_p \equiv \tilde{h}_p^{\frac{p+1}{4}} \mod psp​≑hp4p+1​​modp λ°©μ‹μœΌλ‘œ μ‰½κ²Œ μ œκ³±κ·Όμ„ ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μœ μΌν•œ μ„œλͺ…κ°’(ν˜Ήμ€ λŒ€ν‘œκ°’) κ²°μ •

    • 이둠적으둜 CRT 적용 μ‹œ 4개의 후보 Β±sp,Β±sq\pm s_p, \pm s_qΒ±sp​,Β±sq​ 쑰합이 λ‚˜νƒ€λ‚  수 μžˆμœΌλ‚˜, 그쀑 ν•˜λ‚˜λ₯Ό μ„ νƒν•˜λŠ” κ·œμΉ™(예: κ°€μž₯ μž‘μ€ μ–‘μ˜ μ •μˆ˜)을 톡해 μ„œλͺ…값을 λ‹¨μΌν•˜κ²Œ κ²°μ •ν•©λ‹ˆλ‹€.
  4. μ„œλͺ… κ²°κ³Ό 좜λ ₯

    • μ΅œμ’… μ„œλͺ…κ°’ sssλ₯Ό 솑신츑(μ„œλͺ…μž)이 λ©”μ‹œμ§€μ™€ ν•¨κ»˜ μ „μ†‘ν•©λ‹ˆλ‹€.

Verification

  1. λ©”μ‹œμ§€ ν•΄μ‹œ H(m)H(m)H(m) μž¬κ³„μ‚°

    • κ²€μ¦μžλŠ” λ©”μ‹œμ§€λ₯Ό λ°›μ•„ λ™μΌν•œ ν•΄μ‹œ ν•¨μˆ˜ HHHλ₯Ό μ μš©ν•˜μ—¬ h=H(m)h = H(m)h=H(m)을 μ–»μŠ΅λ‹ˆλ‹€.
    • νŒ¨λ”©μ΄ 적용된 경우, λ©”μ‹œμ§€μ— ν¬ν•¨λœ νŒ¨λ”© 정보λ₯Ό λ³΅μ›ν•˜κ±°λ‚˜ λ³„λ„μ˜ 방식을 톡해 h~\tilde{h}h~λ₯Ό μž¬κ΅¬μ„±ν•©λ‹ˆλ‹€.
  2. μ„œλͺ…값을 μ΄μš©ν•΄ 제곱 μ—°μ‚° μˆ˜ν–‰

    • κ²€μ¦μžλŠ” μ„œλͺ…κ°’ sss에 λŒ€ν•΄ s2mod  ns^2 \mod ns2modn을 κ³„μ‚°ν•˜μ—¬, κ·Έ κ²°κ³Όκ°€ h~\tilde{h}h~와 μΌμΉ˜ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€.
    • λ§Œμ•½ h≑s2(modn)\tilde{h} \equiv s^2 \pmod{n}h≑s2(modn)이 μ„±λ¦½ν•œλ‹€λ©΄, μ„œλͺ…은 μœ νš¨ν•©λ‹ˆλ‹€.
    • μ„±λ¦½ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ μœ„μ‘°μ΄κ±°λ‚˜ λ³€μ‘°λœ κ²ƒμœΌλ‘œ νŒμ •λ©λ‹ˆλ‹€.

Rabin μ„œλͺ…μ˜ μž₯점과 단점

μž₯점

  1. λ‹¨μΌν•œ μˆ˜ν•™μ  κ°€μ •(μΈμˆ˜λΆ„ν•΄ 문제)μ—λ§Œ 의쑴

    • RSA와 달리 β€œeee” ν˜Ήμ€ β€œddd” λ“±μ˜ μΆ”κ°€ μ§€μˆ˜ 가정이 ν•„μš” μ—†μŠ΅λ‹ˆλ‹€.
    • Rabin μ„œλͺ…μ˜ μ•ˆμ „μ„±μ€ 였직 μ •μˆ˜ μΈμˆ˜λΆ„ν•΄ 문제의 λ‚œμ΄λ„μ— κ·Όκ±°ν•©λ‹ˆλ‹€. 이둠적으둜 κΉ”λ”ν•œ μ•ˆμ „μ„± κ·Όκ±°λ₯Ό 가짐.
  2. μƒλŒ€μ μœΌλ‘œ λ‹¨μˆœν•œ ꡬ쑰

    • μ‹€μ œ κ΅¬ν˜„μ€ λ©”μ‹œμ§€λ₯Ό λ³€ν™˜(ν•΄μ‹œ+νŒ¨λ”©)ν•œ λ’€ λͺ¨λ“ˆλŸ¬ 제곱근 연산을 μˆ˜ν–‰ν•˜λŠ” λ°©μ‹μœΌλ‘œ, RSA μ„œλͺ…κ³Ό 큰 ν‹€μ—μ„œ λ‹€λ₯΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
    • μ„œλͺ… 검증도 제곱 μ—°μ‚° ν•œ 번이면 μΆ©λΆ„ν•˜λ―€λ‘œ, 계산 λΉ„μš©μ€ 비ꡐ적 적을 수 μžˆμŠ΅λ‹ˆλ‹€(μ§€μˆ˜ μ—°μ‚° λŒ€μ‹  제곱 μ—°μ‚°).
  3. μ„œλͺ… 검증이 맀우 간단

    • β€˜μ„œλͺ…값을 제곱 β†’ λͺ¨λ“ˆλŸ¬ μ—°μ‚° β†’ ν•΄μ‹œμ™€ λΉ„κ΅β€™λ‘œ λλ‚˜λ―€λ‘œ, 검증 μΈ‘λ©΄μ—μ„œ 연산이 κ²½λŸ‰ν™”λ  수 μžˆμŠ΅λ‹ˆλ‹€.

단점

  1. 4κ°€μ§€ ν•΄(Β±κ°’) 문제

    • λͺ¨λ“ˆλ‘œ nnnμ—μ„œμ˜ μ œκ³±κ·Όμ€ μ΅œλŒ€ 4κ°€μ§€κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.
    • 이λ₯Ό μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ CRT와 β€˜λŒ€ν‘œκ°’β€™μ„ μ •ν•˜λŠ” κ·œμΉ™μ΄ ν•„μš”ν•©λ‹ˆλ‹€. μ‹€μ œ κ΅¬ν˜„ μ‹œ λ³΅μž‘μ„±μ„ μ¦κ°€μ‹œν‚€λŠ” 원인이 λ©λ‹ˆλ‹€.
  2. νŒ¨λ”©/μž„λ² λ”© λ°©μ‹μ˜ λ³΅μž‘μ„±

    • Rabin μ„œλͺ…을 μ•ˆμ „ν•˜κ²Œ μ μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ μ ˆν•œ νŒ¨λ”© μŠ€ν‚΄μ΄ ν•„μš”ν•©λ‹ˆλ‹€.
    • 예λ₯Ό λ“€μ–΄ λΈ”λ£Έ-κ³¨λ“œμ›Œμ„œ(Bloom–Goldwasser) νŒ¨λ”©, ν˜Ήμ€ ISO/IEC ν‘œμ€€μ— λͺ…μ‹œλœ λ³„λ„μ˜ νŒ¨λ”© μ•Œκ³ λ¦¬μ¦˜ 등을 μ μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
    • μ˜¬λ°”λ₯΄μ§€ μ•Šμ€ νŒ¨λ”©μ€ λ©”μ‹œμ§€-μ„œλͺ… μŒμ— λŒ€ν•œ 곡격 벑터λ₯Ό λ§Œλ“€ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
  3. 널리 쓰이지 μ•ŠμŒ

    • RSA, ECDSA, EdDSA 등에 λΉ„ν•΄ μ‚°μ—… ν‘œμ€€μœΌλ‘œ μ±„νƒλœ 사둀가 μ μŠ΅λ‹ˆλ‹€.
    • λ”°λΌμ„œ μ‹€μ œ κ΅¬ν˜„ λΌμ΄λΈŒλŸ¬λ¦¬λ‚˜ λ¬Έμ„œν™”, μ΅œμ ν™” μ½”λ“œ, ν•˜λ“œμ›¨μ–΄ 가속 지원 등이 λΆ€μ‘±ν•œ νŽΈμž…λ‹ˆλ‹€.
  4. ν‚€ 길이와 μ•ˆμ „μ„±

    • Rabin μ„œλͺ…도 RSA처럼 큰 λͺ¨λ“ˆλŸ¬ nnn을 μ‚¬μš©ν•΄μ•Ό μ•ˆμ „ν•©λ‹ˆλ‹€.
    • λŒ€λž΅ RSA와 μœ μ‚¬ν•˜κ²Œ 2048λΉ„νŠΈ 이상(ν˜„λŒ€ λ³΄μ•ˆ κΈ°μ€€)은 ꢌμž₯되며, 3072, 4096 λ“± 더 큰 ν‚€ 길이가 μš”κ΅¬λ  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

Rabin Signature vs. RSA

Rabin μ„œλͺ…κ³Ό RSA μ„œλͺ…은 λͺ¨λ‘ μ†ŒμΈμˆ˜λΆ„ν•΄ 문제λ₯Ό 기반으둜 ν•˜μ§€λ§Œ, μˆ˜ν•™μ  처리 κ³Όμ •μ—μ„œ μ•½κ°„μ˜ 차이가 μžˆμŠ΅λ‹ˆλ‹€.

  1. μˆ˜ν•™μ  원리

    • 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) (μ†ŒμΈμˆ˜λΆ„ν•΄λ₯Ό 톡해 μ œκ³±κ·Όμ„ ꡬ함)
  2. λ³΅μž‘λ„

    • μ„œλͺ… μ—°μ‚°μ—μ„œ RSAλŠ” κ±°λ“­μ œκ³±(μ§€μˆ˜ μ—°μ‚°), Rabin은 μ œκ³±κ·Όμ„ μ°Ύμ•„μ•Ό ν•©λ‹ˆλ‹€.
    • λŒ€μ²΄λ‘œ RSAλŠ” λͺ¨λ“ˆλŸ¬ κ±°λ“­μ œκ³±μ„, Rabin은 CRT 기반의 두 μ†Œμˆ˜μ— λŒ€ν•œ 루트 ν•©μ„± 과정을 μˆ˜ν–‰ν•˜λ―€λ‘œ, μ–΄λŠ μͺ½μ΄ 더 νš¨μœ¨μ μΈμ§€λŠ” κ΅¬ν˜„μ— 따라 λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
  3. μ•ˆμ „μ„± κ·Όκ±°

    • RSAλŠ” 일반적으둜 β€œRSA λ¬Έμ œβ€(ce≑mmod  nc^e \equiv m \mod nce≑mmodnμ—μ„œ mmm을 μ°ΎκΈ° μ–΄λ ΅λ‹€λŠ” 것)에 κ·Όκ±°ν•˜μ§€λ§Œ, μ΅œμ’…μ μœΌλ‘œλŠ” μ •μˆ˜ μΈμˆ˜λΆ„ν•΄, e-th root 문제 λ“± 볡합적인 μˆ˜ν•™μ  λ¬Έμ œμ— μ˜μ‘΄ν•©λ‹ˆλ‹€.
    • Rabin은 쑰금 더 μ§μ ‘μ μœΌλ‘œ μ •μˆ˜ μΈμˆ˜λΆ„ν•΄ λ¬Έμ œμ— κ·€κ²°λ˜λ―€λ‘œ, μ•ˆμ „μ„± 증λͺ…이 κ°„κ²°ν•˜λ‹€κ³  ν‰κ°€λ©λ‹ˆλ‹€.
  4. ν‘œμ€€/채택도

    • RSAλŠ” μˆ˜λ§Žμ€ ꡭ제 ν‘œμ€€, μ‚°μ—… ν‘œμ€€μ— μ±„νƒλ˜μ–΄ ν­λ„“κ²Œ 쓰이며, ν•˜λ“œμ›¨μ–΄ 가속도 μ§€μ›λ©λ‹ˆλ‹€.
    • Rabin은 ν•™μˆ μ μœΌλ‘œλŠ” RSA와 μ–΄κΉ¨λ₯Ό λ‚˜λž€νžˆ ν•˜μ§€λ§Œ, μ‹€μ œ μ‚°μ—…μ μœΌλ‘œλŠ” 덜 μ±„νƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€.