Goldwasser-Micali 암호 시스템
Goldwasser–Micali cryptosystemGoldwasser-Micali(GM) 암호 시스템은 1982년 Shafi Goldwasser와 Silvio Micali에 의해 개발된 비대칭 키 암호화 알고리즘입니다.GM은 표준 암호 가정 하에서 입증 가능한 안전한 최초의 확률론적 공개 키 암호화 스킴이라는 특징을 가지고 있습니다.그러나 암호문은 초기 일반 텍스트보다 수백 배 클 수 있으므로 효율적인 암호 시스템은 아닙니다.암호 시스템의 보안 특성을 증명하기 위해 Goldwasser와 Micali는 널리 사용되는 의미 보안의 정의를 제안했습니다.
근거
GM 암호 시스템은 복합 N = pq에 대한 2차 잔차성 문제 모듈의 난치성을 바탕으로 의미론적으로 안전하다. 여기서 p, q는 큰 소수이다.이 가정은 x에 대한 야코비 기호가 +1일 때 (x, N) x가 2차 잔차 모듈로 N(일부 y의2 경우 x = y mod N)인지 여부를 판단하기 어렵다는 것이다.2차 잔차 문제는 N의 인수분해로 쉽게 해결되는 반면, 새로운 2차 잔차는 이러한 인수분해에 대한 지식이 없어도 모든 당사자에 의해 생성될 수 있다.GM 암호 시스템은 개별 평문 비트를 랜덤 2차 잔기 또는 비잔기 모듈로 N으로 암호화하여 이 비대칭을 활용하며, 모두 2차 잔기 기호 +1을 사용합니다.수신자는 개인키로서 N의 인수분해를 사용하여 수신한 암호문 값의 2차 잔존성을 테스트하여 메시지를 복호화합니다.
Goldwasser-Micali는 보통 텍스트의 모든 비트를 암호화하기 위해 약N 사이즈의 값을 생성하기 때문에 GM 암호화를 통해 암호문이 대폭 확장됩니다.인수분해 공격을 방지하려면 N을 수백 비트 이상으로 하는 것이 좋습니다.따라서, 이 계획은 주로 개념 증명 역할을 하며, ElGamal과 같은 보다 효율적인 입증 가능한 보안 체계가 그 이후로 개발되었다.
암호화는 확률론적 알고리즘을 사용하여 실행되므로 암호화될 때마다 특정 평문이 매우 다른 암호문을 생성할 수 있습니다.이것은, 수신한 메시지를 기존의 암호 텍스트의 사전과 비교하는 것으로써, 상대방이 그것을 인식할 수 없게 하기 때문에, 큰 메리트가 있습니다.
스킴 정의
Goldwasser-Micali는 공개 키와 개인 키를 생성하는 확률적 키 생성 알고리즘, 확률론적 암호화 알고리즘 및 결정론적 복호화 알고리즘의 3가지 알고리즘으로 구성됩니다.
스킴은 N의 인수분해(p, q)가 주어졌을 때 주어진 값 x가 제곱모드 N인지 아닌지에 따라 결정됩니다.이것은, 다음의 순서에 따라서 실시할 수 있습니다.
- x = x mod p, xq = x mod q를 계산합니다p.
- p ( - )/ 1( p ( p - 1( p - 1 ) / )\ 1 { \ pmod {} 및 x ) / ( ( mod q )\ equiv 1 \ {q}의 경우, restersecondary 입니다.
키 생성
GM 암호화에 사용되는 계수는 RSA 암호 시스템과 동일한 방법으로 생성됩니다.(자세한 것에 대하여는, RSA, 키 생성을 참조해 주세요).
- 앨리스는 서로 독립적으로 랜덤으로 두 개의 뚜렷한 큰 소수 p와 q를 생성합니다.
- Alice는 N = p q를 계산합니다.
- 그런 다음 Legendre 기호가(p ) (q ) - ( \ { } { } \ ) = \ style \ { x { x } \ right ) - - the hence hence hence\\\\\\\ ( N (\ \ \ \ \ \ \ \ \ \ \ \ frac { right } { right } { right ( ( ( ( ( ( ( ( ( ( ( ( ( ( (예를 들어 값 x는 랜덤 값을 선택하고 두 개의 Legendre 기호를 테스트하여 찾을 수 있습니다.p, q = 3 mod 4(즉, N은 Blum 정수)일 경우, N - 1 값은 필수 특성을 가집니다.
공개 키는 (x, N)로 구성됩니다.비밀키는 인수분해(p, q)입니다.
메시지 암호화
Bob이 Alice에게 m 메시지를 보내고 싶다고 가정합니다.
- Bob은 먼저 m을 비트 문자열(m1, ..., mn)로 인코딩합니다.
- Bob은 마다 단위 모듈 N 또는 (\N) \ n)에서 임의의 를 생성합니다
Bob은 암호문(c1, ..., cn)을 전송합니다.
메시지 복호화
Alice는 (c1, ..., cn)를 수신합니다.다음 절차를 사용하여 m을 회복할 수 있습니다.
- 각 i에 대해 Alice는 소인수 분해(p, q)를 사용하여 값i c가 2차 잔차인지 여부를 결정합니다. 그렇다면 mi = 0이고, 그렇지i 않으면 m = 1입니다.
Alice는 m = (m1, ..., mn) 메시지를 출력합니다.
보안 속성
이 암호 시스템을 해제하는 것에서 Jacobi 기호 +1을 가진 랜덤 값 모듈로 N이 2차 잔차인지 여부를 결정하는 문제로 단순하게 감소합니다.알고리즘 A가 암호 시스템을 파괴한 경우, 주어진 값 x가 2차 잔차 모듈로 N인지 아닌지를 판단하기 위해 공개 키로 (x, N)를 사용하여 암호 시스템을 파괴할 수 있는지 여부를 A에 테스트한다.x 가 잔존하지 않는 경우는, A 가 정상적으로 동작합니다.그러나 x가 잔차라면, 모든 "암호문"은 단순히 랜덤 2차 잔차이기 때문에, A는 시간의 절반 이상을 보정할 수 없습니다.또, 이 문제는 랜덤으로 자기 리듀케이블이 가능하기 때문에, 특정의 N 에 대해서, 모든 공개 키가 다른 공개 키와 같이 시큐어인 것을 확인할 수 있습니다.
GM 암호 시스템은 c, c가1 비트0 m, m의1 암호화일 경우001 cc mod N은 m 1의 (\ m_1라는 점에서 동형 속성을 가지고 있습니다.이 때문에 GM 암호 시스템은 보다 복잡한 암호 원형에 사용되는 경우가 있습니다.
레퍼런스
- S. Goldwasser, S. Micali (1982). "Probabilistic encryption and how to play mental poker keeping secret all partial information". Proc. 14th Symposium on Theory of Computing: 365–377. doi:10.1145/800070.802212.
- S. Goldwasser, S. Micali (1984). "Probabilistic encryption". Journal of Computer and System Sciences. 28 (2): 270–299. doi:10.1016/0022-0000(84)90070-9.