RSA 알고리즘 (RSA algorithm)

컴퓨터과학·AI
한 줄 정의: 두 개의 큰 소수의 곱을 인수분해하는 것이 계산적으로 매우 어렵다는 수학적 사실에 기반한 대표적인 공개키 암호 알고리즘.

쉽게 풀면

RSA는 두 개의 아주 큰 소수를 골라 서로 곱한 값을 공개하되, 원래의 두 소수는 비밀로 유지하는 원리로 동작한다. 곱한 결과가 아무리 커도 그것을 다시 원래의 두 소수로 인수분해하는 것은 현재 컴퓨터로도 엄청난 시간이 걸릴 만큼 어렵다는 수학적 사실이 이 암호의 안전성의 근거다. 이 비대칭성 덕분에 공개키(곱한 값 등)는 누구나 알아도 되지만, 개인키(원래 소수)를 모르면 암호화된 내용을 풀 수 없다. 오늘날 웹 브라우저의 HTTPS 통신을 비롯한 수많은 보안 시스템의 기초가 되었다.

왜 중요한가

인터넷을 통한 통신은 대부분 서로 사전에 비밀 정보를 공유하지 않은 당사자들 사이에서 이루어지는데, RSA와 같은 공개키 암호는 이런 상황에서도 안전하게 정보를 암호화하고 신원을 확인할 수 있는 방법을 제공합니다. 이 때문에 RSA는 암호학, 네트워크 보안, 사물인터넷, 블록체인 등 보안이 관련된 거의 모든 컴퓨터과학 분야의 논문에서 비교 기준이 되는 대표적인 공개키 알고리즘으로 다뤄지며, 새로운 암호 기법의 효율성이나 안전성을 논할 때 자주 준거점으로 언급됩니다.

논문에서는 이렇게 쓰입니다

"본 인증서 체계는 RSA 알고리즘을 이용해 2048비트 키 길이의 공개키 서명을 생성한다."

특정 시스템이 사용하는 공개키 암호 알고리즘의 구체적인 종류와 안전성 수준(키 길이)을 명시할 때 사용된다.

"제안된 경량 IoT 프로토콜은 RSA 대비 연산량을 크게 줄이면서도 유사한 수준의 안전성을 제공하는 것으로 나타났다."

사물인터넷처럼 연산 능력이 제한된 환경을 다루는 연구에서, 새로 제안한 방식의 효율성을 기존 표준인 RSA와 비교해 평가했다는 의미입니다.

"양자 내성 암호로의 전환을 논의하며, 현재 널리 쓰이는 RSA와 타원곡선암호 기반 체계가 양자 컴퓨터 환경에서 취약해질 수 있음을 지적하였다."

암호학 분야의 최근 연구에서는 RSA를 미래의 양자 컴퓨터 위협에 대비해 대체해야 할 기존 표준 기술로 언급하는 경우가 많다는 뜻입니다.

조금 더 깊게 보면

RSA의 실제 동작은 공개키로 암호화하고 개인키로 복호화하는 과정, 그리고 개인키로 서명하고 공개키로 검증하는 과정으로 나뉘며, 이 두 방향의 사용이 각각 기밀성 보장과 신원 인증(전자서명)이라는 서로 다른 목적에 쓰입니다. 실제 시스템에서는 RSA로 메시지 전체를 암호화하기보다, 대칭키 암호에 쓸 짧은 키만 RSA로 안전하게 교환하고 본문은 더 빠른 대칭키 암호로 처리하는 하이브리드 방식이 흔히 사용됩니다. 논문에서 키 길이(비트 수)를 언급하는 것은 안전성 수준을 나타내는 지표이므로, 다른 암호 방식과 비교할 때는 단순히 키 길이만 볼 것이 아니라 실제 계산 복잡도 수준을 함께 고려해야 한다는 점도 참고할 만합니다.

주의할 점

RSA의 안전성은 큰 정수의 소인수분해가 어렵다는 가정에 의존하는데, 이론적으로 충분히 큰 양자 컴퓨터가 등장하면 쇼어 알고리즘으로 이를 효율적으로 풀 수 있어 안전성이 위협받는다.

관련 용어