암호 기술
인증서를 등록할 때 핵심 과제는 인증서를 요청하는 디바이스나 사용자를 어떻게 인증하는가입니다. 인증 기관은 인증서를 통해 인증서 소유자가 특정 속성을 갖추고 있으며 그 진위성을 확인했음을 보증합니다

키를 사용하는 암호화의 두 가지 유형
키를 사용하는 암호화는 크게 대칭 암호화와 비대칭 암호화로 나뉩니다.
대칭 암호화
- 키 사용: 암호화와 복호화에 동일한 키를 사용합니다.
- 속도: 일반적으로 더 빠르고 효율적입니다.
- 보안: 주된 과제는 당사자 사이에서 키를 안전하게 공유하는 일입니다.
- 예: AES(Advanced Encryption Standard), DES(Data Encryption Standard).
비대칭 암호화
- 키 사용: 키 쌍, 즉 암호화에 쓰는 공개 키와 복호화에 쓰는 개인 키를 사용합니다.
- 속도: 연산이 더 복잡하기 때문에 대칭 암호화보다 느립니다.
- 보안: 개인 키는 결코 공유되지 않으므로 키 배포 측면에서 더 안전합니다.
- 예: RSA(Rivest-Shamir-Adleman), ECC(Elliptic Curve Cryptography).
더 안전하다고 평가되는 암호화 방식
충분한 키 길이의 최신 알고리즘을 사용하는 한 현재의 어떤 컴퓨터도 암호를 해독할 수 없다는 점에서, 두 방식 모두 안전하다고 봅니다.
어느 쪽이 더 나은지는 사용 사례에 따라 다르지만, 많은 사용 사례에서 비대칭 암호화가 필요합니다. 비대칭 암호화는 키 쌍, 즉 암호화에 쓰는 공개 키와 복호화에 쓰는 개인 키를 사용하기 때문입니다. 개인 키는 비밀로 유지되며 공유할 필요가 전혀 없으므로 보안이 한층 강화됩니다.
대용량 데이터에 적합한 암호화 방식
대칭 암호화입니다. 더 빠르기 때문입니다.
하이브리드 암호화의 일반적인 절차
- 키 생성: 발신자가 실제 메시지를 암호화할 새 대칭 키(세션 키라고도 합니다)를 생성합니다.
- 메시지 암호화: 발신자가 대칭 키로 평문 메시지를 암호화하여 암호문을 만듭니다.
- 키 암호화: 이어서 발신자가 수신자의 공개 키로 그 대칭 키를 암호화합니다(비대칭 암호화).
- 전송: 발신자가 암호화된 메시지(암호문)와 암호화된 대칭 키를 함께 수신자에게 보냅니다.
- 키 복호화: 수신자가 자신의 개인 키로 대칭 키를 복호화합니다.
- 메시지 복호화: 마지막으로 수신자가 복호화한 대칭 키로 암호문을 복호화하여 원래의 평문을 얻습니다.
해싱 알고리즘
해싱 알고리즘은 크기에 상관없이 입력 데이터를 고정 길이의 문자열로 변환하는 수학 함수이며, 그 결과는 보통 문자와 숫자가 이어진 형태입니다. 이 출력값을 해시 값 또는 다이제스트라고 합니다.
충돌
해싱에서 충돌은 서로 다른 두 데이터가 같은 해싱 알고리즘에서 동일한 해시 값을 만들어 낼 때 발생합니다. 해싱 알고리즘의 주된 목적은 서로 다른 데이터 입력을 고유하게 표현하는 것이므로, 충돌은 문제가 될 수 있습니다.
MAC
메시지 인증 코드(MAC): 암호 기술에서 MAC은 메시지를 인증하고 그 무결성을 보장하는 데 쓰이는 짧은 정보입니다. 메시지가 변경되지 않았음을 검증하고 발신자의 신원을 확인해 줍니다.
MAC과 HMAC의 차이
MAC: 블록 암호 또는 해시 함수를 사용하여 메시지의 무결성과 진위성을 검증하는 코드를 가리키는 일반 용어입니다.
HMAC: 암호학적 해시 함수와 비밀 키를 사용하는 특정한 유형의 MAC으로, 더 강력한 보안 속성을 제공합니다.
비대칭 암호
메시지 서명의 일반적인 절차
메시지 서명은 메시지의 진위성과 무결성을 검증하는 데 사용하는 암호학적 절차입니다.
- 해시 생성: 발신자가 암호학적 해시 함수(예: SHA-256)를 사용하여 메시지의 고유한 디지털 지문(해시)을 생성합니다. 이 해시는 메시지의 내용을 고유하게 나타냅니다.
- 서명: 발신자가 이 해시를 자신의 개인 키로 암호화하여 디지털 서명을 만듭니다. 덕분에 발신자의 개인 키에 접근할 수 있는 사람만 서명을 생성할 수 있습니다.
- 전송: 디지털 서명을 메시지에 첨부하여 둘 다 수신자에게 보냅니다. 검증에 필요한 발신자의 공개 키도 함께 제공합니다.
- 검증: 수신자가 발신자의 공개 키로 디지털 서명을 복호화하여 원래의 해시를 얻습니다. 이어서 수신한 메시지로 새 해시를 생성하여 복호화한 해시와 비교합니다. 두 값이 일치하면 메시지가 변경되지 않았음이 확인되고 발신자의 신원도 검증됩니다.
비대칭 암호화의 세 가지 기능
공개 키 암호 방식이라고도 하는 비대칭 암호화는 통신과 데이터를 보호하는 데 여러 중요한 역할을 합니다.
- 암호화와 복호화
- 디지털 서명
- 키 교환
RSA
RSA는 Rivest-Shamir-Adleman의 약자로, 안전한 데이터 전송에 널리 쓰이는 공개 키 암호 시스템입니다. 1977년에 이를 발표한 발명자 Ronald Rivest, Adi Shamir, Leonard Adleman의 이름을 딴 것입니다.
Diffie-Hellman
Diffie-Hellman 키 교환은 공개 채널을 통해 암호 키를 안전하게 교환하기 위해 암호 기술에서 사용하는 방법입니다. 1976년 Whitfield Diffie와 Martin Hellman이 개발했습니다. Diffie-Hellman 키 교환의 주된 목적은 두 당사자가 이후의 통신을 암호화하는 데 쓸 공유 비밀 키를 안전하게 만들어 내도록 하는 것입니다.
Digital Signature Algorithm(DSA)
Digital Signature Algorithm(DSA)은 디지털 서명을 생성하고 검증하는 데 사용하는 공개 키 암호 알고리즘입니다. 미국 국립표준기술연구소(NIST)가 1991년에 Digital Signature Standard(DSS)의 일부로 제안했습니다.
작동 방식
- 키 생성: DSA는 서명용 개인 키와 검증용 공개 키로 이루어진 키 쌍을 생성합니다.
- 서명: 발신자가 자신의 개인 키로 메시지에 디지털 서명을 만듭니다. 이 서명은 메시지와 개인 키 모두에 대해 고유합니다.
- 검증: 수신자가 발신자의 공개 키로 서명의 진위성을 검증하며, 이를 통해 메시지의 무결성과 출처도 확인합니다.