라빈 암호체계

위키백과, 우리 모두의 백과사전.

라빈 암호(Rabin cryptosystem)는 미하엘 라빈이 1979년1월에 발표한, 소인수분해 기반 공개키 암호(비대칭 암호)이다.

공개키로 암호화하고, 개인키로 복호화한다.

중국인의 나머지정리(Chinese Remainder Theorem, CRT)를 활용한다.

절차[편집]

밥이 앨리스에게 암호문을 보내고, 앨리스는 이를 해독한다.

키 생성(key generation)[편집]

  • 앨리스는 매우 크며 서로 다른 두 소수 p, q을 고른다. 계산 편의를 위해 를 사용해도 좋다.
  • n = pq을 구한 뒤 밥에게 보낸다.
  • n은 공개키, p와q는 앨리스의 개인키이다.

암호화(encryption)[편집]

  • 밥은 앨리스에게 보낼 평문 m을 고른다.
  • 밥은 암호문 을 보낸다.

복호화(decryption)[편집]

  • 앨리스는 암호문 c를 받고, n을 아는 상황이다.
  • 이고, 를 만족하는 를 찾는다.
    • m이 합성수이면, 효율적으로 찾는 방법이 발견되지 않았다.
    • m이 소수이거나, 두 소수의 곱이면 중국인의 나머지정리로 푼다.
  • 중국인의 나머지정리를 이용하면, 근 네 개가 나타나며 이 가운데 하나가 mod n에 대해 m과 같다. 근은 아래와 같다.
  • 를 계산했다면, 이므로 p,q를 알 수 있다. 따라서 n을 쉽게 소인수분해 할 수 있다.
    • 이면, 아래 성질을 이용해 더 쉽게 풀 수 있다.
      • 에서 c의 지수가 정수로 나온다.
      • is Legendre symbol

특징[편집]

효율성(efficiency)[편집]

암호화에서 Square modulo를 계산하기 때문에, 3차 이상을 계산해야 하는 RSA에 비해 효율적이다.

복호화에서 two modular exponentiations와 중국인의 나머지정리를 적용하므로 효율성은 RSA와 비슷하다.

효과성(effectiveness)[편집]

암호화 함수가 4 to 1 함수이므로, 복호화 과정에서 4가지 서로 다른 결과가 나오고 이중 3가지는 가짜 결과이기 때문에, 푸는 과정에서 진짜 결과를 잘 추론해야 한다. 특히 숫자 값을 암호화한 경우 모호성 제거 스킴(disambiguation scheme)를 사용해야 한다. 이 단점을 개량해서 [암호문1 : 평문1]을 유지하는 알고리즘이 쓰인다.

 보안성(security)[편집]

Rabin 알고리즘은 소인수 분해 문제와 동치이다. (RSA에서는 동치성이 증명되지 않았다.) 따라서 동치성이 증명되거나, 소인수분해 일반공식이 등장할 때까지 상당히 안전하다.

선택 암호문 공격(chosen ciphertext attack)에 취약할 수 있다.

제작 시 quadratic residue modulo n을 사용하므로, 이와 관련된 공격이 가능하다.