키 선택 (Key Selection)
키 선택은 여러 개의 키 가운데 특정 메시지나 작업에 쓸 올바른 키를 정확히 고르는 과정으로, 시행착오식으로 여러 키를 시도하지 않도록 키 식별 정보를 함께 관리하는 것이 핵심입니다. 여기서 key는 형용사 '주요한'이 아니라 암호 키를 뜻합니다.
자세히 알아보기
실제 시스템은 키를 하나만 쓰지 않습니다. 사용자마다, 기간마다, 용도(암호화·서명·인증)마다 다른 키를 쓰고, 키는 주기적으로 교체됩니다. 그래서 암호문을 받은 쪽은 "이 메시지를 풀려면 어느 키를 써야 하는가"를 알아야 합니다. 가장 나쁜 방법은 가진 키를 하나씩 대입해 보는 것입니다. 시간이 낭비될 뿐 아니라, 잘못된 키로 시도한 결과나 오류 메시지가 공격자에게 정보를 줄 수 있고, 한 시스템의 키를 다른 용도에 쓰는 실수로 이어져 키가 노출될 위험이 생깁니다.
그래서 암호 프로토콜은 메시지에 '키 식별자'를 함께 붙입니다. 식별자는 키 자체가 아니라 키를 가리키는 번호나 지문(키의 해시 일부)이므로 공개되어도 안전합니다. 예를 들어 PGP 메시지에는 수신자 키 ID가, JSON 웹 토큰(JWT)에는 서명에 쓴 키를 나타내는 kid 필드가, TLS에는 인증서 정보가 들어 있습니다. 군용 암호 시스템에서도 메시지 머리말에 키 지시자(indicator)를 넣어 수신자가 그날의 올바른 키를 고르게 했습니다.
키 선택은 '용도 분리' 원칙과도 연결됩니다. 서명용 키를 암호화에 쓰거나, 테스트용 키를 운영 환경에 쓰는 것은 흔하지만 위험한 실수입니다. 키 관리 시스템은 키마다 용도, 유효 기간, 허용 알고리즘을 메타데이터로 붙여, 애플리케이션이 잘못된 키를 고르지 못하게 막습니다.
블록체인·암호화폐에서는
HD 지갑은 하나의 시드에서 수많은 키를 파생하므로, 올바른 키를 고르는 일은 '파생 경로'를 맞추는 일이 됩니다. 같은 니모닉이라도 m/44'/0'/0'(레거시 비트코인), m/84'/0'/0'(네이티브 세그윗), m/44'/60'/0'(이더리움) 등 경로가 다르면 전혀 다른 주소가 나옵니다. 다른 지갑 앱으로 복원했는데 잔액이 0으로 보인다면 대개 파생 경로나 주소 유형을 잘못 선택한 경우입니다. BIP-32의 키 지문(fingerprint)과 멀티시그 설정 파일은 어떤 키가 어느 지갑에 속하는지 식별하는 데 쓰입니다.
쉽게 말하면
열쇠 꾸러미에 이름표를 붙여 두는 것입니다. 이름표가 없으면 문 앞에서 열쇠를 하나씩 꽂아 봐야 하고, 그러다 엉뚱한 문까지 열 수 있습니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.