Choose a default theme

You can change your theme from the menu

RSA

RSA는 공개키와 개인키를 이용하는 암호 기법이다. 공개키 암호화와 전자서명에 사용되는 구성 방식이 있으며, 실제 사용에서는 수학적 연산뿐 아니라 메시지 인코딩과 매개변수까지 포함한 방식이 중요하다.

암호 알고리즘

암호화

AES · RSA

해시·인증

SHA-256 · HMAC

비밀번호 해싱

Argon2

분야

공개키 암호 기법

키와 연산

공개키는 공개 가능한 정보를 담고 개인키는 비밀로 유지한다. 암호화에서는 수신자의 공개키로 보호한 내용을 해당 개인키로 복호화하는 구성을 사용한다. 서명에서는 서명자의 개인키로 생성한 서명을 공개키로 검증한다. 두 목적의 절차를 단순히 같은 연산의 방향만 바꾼 것으로 설명해서는 안 된다.

패딩과 표준 구성

PKCS #1은 RSAES-OAEP 같은 암호화 방식과 RSASSA-PSS 같은 서명 방식을 규정한다. 패딩은 공간을 채우는 장식이 아니라 보안 구성의 일부다. 인코딩 없이 정수에 RSA 연산만 적용한 예제를 실제 보호 방식으로 사용하지 않는다.

큰 파일을 보호하는 경우

OAEP로 처리할 수 있는 메시지 크기는 모듈러스와 해시 출력 길이에 따라 제한된다. 큰 데이터를 보호할 때는 대칭키 암호와 키 전달 방식을 조합하는 구조를 고려한다. RSA를 파일 전체에 임의로 쪼개 적용하는 방법으로 대체하지 않는다.

검증과 신뢰

서명 검증이 성공했다는 사실과 그 공개키가 원하는 사람이나 서비스의 키라는 사실은 별개의 문제다. 인증서나 신뢰할 수 있는 배포 경로 등으로 키의 소속을 확인해야 한다. 키 크기뿐 아니라 알고리즘 조합과 프로토콜, 구현의 오류 처리도 함께 검토한다.

참고 자료