이제 이전에 만든 RSA 프로그램을 기반으로 만들어보겠다.
간단하게 RSA와 같이 소수를 생성하고 어쩌고저쩌고 하면 되겠구나! 싶었다.
그런데, 예상못한 어려움에 부딪혔다.
랜덤한 소수값은 구할 수 있는데, 그 소수값의 원시근은 어떻게 구할까...?
일단 소수값은 RSA 프로그램에서 했던 것 처럼, 밀러-라빈 소수 판정법을 이용해서 구하면 된다.
$$a^{p-1} \equiv 1 \pmod{p}$$
위의 조건을 갖는 원시근을 찾아야한다. (연산량이 너무 많다...)
그런데.. 열심히 코드를 짜다 보니.... 알게된 것이 있다.
디피헬만의 q(소수) , a(원시근)는 공개된 값이라서 상수로 Fix 해둔 값으로 해도 된다는 것이였다....
3시간 정도 찾아보고 공부했었는데,,,
'프로그래밍 > 암호화 프로그램' 카테고리의 다른 글
디피-헬만 키 생성 프로그램(1) - 이론 (0) | 2020.11.06 |
---|---|
RSA 암호화 프로그램(2) - encrypt.py, decrypt.py (0) | 2020.11.04 |
RSA 암호화 프로그램(1) - 이론 (0) | 2020.11.02 |