RSA는 왜 공개키부터 만들까?

K4keye·2022년 1월 18일
0

궁굼

RSA 수식을 보다가 갑자기 드는 의문이다.
왜 공개키부터 만들까?

개인적인 생각으로 공개키와 개인키의 사이에서
개인키를 먼저 구하고 공개키를 개인키에 맞춰 구하는 거라고 생각하고 있었으나
RSA의 키 생성 알고리즘을 보니

RSA 키 생성
1. 큰 소수 p , q 생성
2. n = p * q
3. Φ(n) = (p - 1) * (q - 1) 
4. 1 < e < Φ(n) 이며 Φ(n) 과 e 가 서로소인 e 생성 //공개키
5. (e * d) mod Φ(n) = 1  //개인키

공개키, 개인키 순으로 구하는 방식이었다.
이 의문에 대한 해답은 정확하지 않을 수 있으나 내가 이해한 정도만 작성하려고 한다.

효율성?

e와 d를 공개키,개인키로 사용하지않고 개인키,공개키 로 사용하면 안되나 라는 생각에서는 효율성을 따질 필요가 있었다.

암호화에서 공개키와 개인키 이 둘 중 더 많이 사용하는 키가 있을 것이고
많이 사용하는 키를 사용하는 알고리즘이 빨라야 결국 효율성이 증가한다고 볼 수 있을 것이다.

어떤 키를 가장 많이 사용할까 에서 생각해보면 아마도 공개키가 개인키보다 많이 사용될것이다.
그렇다면 공개키는 개인키보다 작은 값이어야 한다.

공개키가 매번 변경되지 않는다.

흔히 수식에 맞춰 공개키와 개인키가 어느 정도 매번 다른 값을 사용할 것 같지만

공개키는 대부분 공통된 값을 사용한다.
공통된 값은 대표적으로 3 과 65537 이 있을 수 있다.

이게 가능한 말일까? 수식에 맞춰서 생성해야 하는 공개키가 대부분 3과 65537을 사용한다니?

이 값은 메르센 소수라고 하며 RSA 키 생성 알고리즘의 4번식에 대해 Φ(n) 이 어떤 값이든 식에 통과하는 수이다.
여기서 3은 낮은 지수 공격을 회피하기 위해 사용하지 않고 대부분 65537을 공개키로 사용한다.

결론

RSA에서 e를 반드시 공개키로 해야 한다는 것은 아니다.

하지만 e를 개인키로 해서 얻는 이점은 없으며 e를 공개키로 했을 때는 이점이 생길 수 있기에 e를 공개키로 하는구나라고 이해하기로 했다.

profile
쉬엄쉬엄 마치 취미처럼 공부하자

0개의 댓글