배경
돈을 금고에 담아 자물쇠로 잠근 후 다른 사람에게 보낸다고 가정하자.
그렇다면 받는 사람은 금고를 열기 위한 열쇠가 필요하다.
이 과정에서 어떤 방법으로든 열쇠에 대한 정보가 필요하다.
"열쇠를 직접 전달한다.", "열쇠를 만드는 법을 전달한다."같은 방법이 있는데 이런 방법은 금고 외에 추가적인 정보 전달이 필요하다.
최악의 경우 열쇠를 직접 전달하는 과정에서 도난을 당할 수 있다.
Massey-Omura (Three-pass Protocol)은 이런 문제를 해결한다.
Process
정보를 암호화한 상태로 추가적인 정보전달 없이 송수신이 가능할까?
0. A가 B에게 금고에 넣은 돈을 전달하는 경우를 생각하자. (자물쇠 적용 X)
1. A가 금고에 돈을 넣은 후 자물쇠로 잠근 후 B에게 전달한다. (A 자물쇠 적용중)
2. B가 금고를 받고 자물쇠를 추가로 잠근 후 A에게 전달한다. (A, B 자물쇠 적용중)
3. A는 금고를 받고 자물쇠를 해제한 후 B에게 전달한다. (B 자물쇠 적용중)
4. B는 금고를 받고 자물쇠를 해제한다. (자물쇠 적용 X)
위의 과정에서 금고는 자물쇠로 잠겨있는 상태에서 금고의 이동만으로 돈을 보낼 수 있다.
이를 컴퓨터에 대입하면 추가적인 정보 없이 안전하게 암호화하여 데이터를 보낼 수 있다.
RSA에 적용
A는 $e_a, d_a$를 가지고 있고 B는 $e_b, d_b$를 가지고 있고 나머지를 위한 소수 $p$가 공개돼있다고 하자. ($e_ad_a \equiv 1 \mod p-1, e_bd_b \equiv 1 \mod p-1$)
원래는 $e_a, e_b$도 공개키이지만 여기서는 공개하지 않는다!
위 Process에서 각 단계에 전송되는 데이터는 다음과 같다.
1. $m^{e_a} \mod p$ (A 자물쇠 적용중)
2. $m^{e_ae_b} \mod p$ (A, B 자물쇠 적용중)
3. $m^{e_ad_ae_b} \equiv m^{e_b} \mod p$ (B 자물쇠 적용중)
4. $m^{e_bd_b} \equiv m^1 \equiv m \mod p$ (자물쇠 적용 X)
한계
위의 방법은 정보를 암호화하여 전달하기 위해 3번의 송수신과정을 거쳐야 한다.
그렇기때문에 속도가 느려지고 크게 실용적이진 않다고 한다.
정말로 보안이 중요할 때는 유용할 것 같다.
'기타 > 암호학' 카테고리의 다른 글
[암호학] 23. Zero Knowledge Proof (0) | 2024.09.14 |
---|---|
[암호학] 22. 스테가노그래피 (0) | 2023.06.08 |
[암호학] 20. 소수 판정 (Primality Test) (0) | 2023.02.03 |
[암호학] 19. RSA 암호 (0) | 2023.01.31 |
[암호학] 18. NP-Complete (0) | 2023.01.27 |