라빈 암호체계
보이기
라빈 암호(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을 사용하므로, 이와 관련된 공격이 가능하다.