키 생성 (Key Creation)

중급지갑·키수정일

키 생성(key creation, key generation)은 암호화나 전자서명에 쓸 새 키를 만드는 과정입니다. 키의 안전성은 알고리즘보다 먼저, 키를 만들 때 쓴 난수가 얼마나 예측 불가능한지에 달려 있습니다.

자세히 알아보기

대칭 키(AES 등)는 정해진 길이의 무작위 비트열 자체가 키입니다. 비대칭 키는 무작위로 고른 개인 키에서 수학적으로 공개 키를 계산합니다. 어느 쪽이든 무작위성은 운영체제가 제공하는 암호학적으로 안전한 난수 생성기(CSPRNG)나 하드웨어 난수 생성기에서 얻어야 하며, 일반 프로그래밍 언어의 rand() 같은 함수를 쓰면 안 됩니다. 권장 강도는 대칭 키 기준 128비트 이상의 보안 수준입니다.

키 생성 과정의 결함은 치명적입니다. 2008년 데비안 OpenSSL 패키지 버그로 엔트로피가 크게 줄어 가능한 키가 극소수로 제한된 사건, 2013년 일부 안드로이드 비트코인 지갑이 난수 생성기 문제로 서명 논스를 재사용해 개인 키가 노출된 사건이 대표적입니다.

조직 환경에서는 키 생성 자체를 통제하기도 합니다. 기업은 키를 하드웨어 보안 모듈(HSM)에서만 생성하게 하거나, 키 복구·감사를 위해 중앙에서 키를 생성·위탁 관리하도록 정책을 둘 수 있습니다. 이는 보안과 함께 통신 감시 가능성이라는 쟁점을 낳습니다.

블록체인·암호화폐에서는

비트코인·이더리움·트론의 개인 키는 secp256k1 곡선의 차수보다 작은 256비트 무작위 정수이며, 공개 키와 주소는 여기서 계산됩니다. 키 생성은 오프라인에서도 비용 없이 순식간에 무한히 할 수 있고, 네트워크에 등록할 필요도 없습니다. 오늘날 지갑은 대부분 BIP-39 니모닉(128~256비트 엔트로피)을 먼저 만들고, BIP-32 계층 결정적(HD) 방식으로 여러 키를 파생합니다. 하드웨어 지갑은 내부 보안 칩에서 키를 생성해 개인 키가 기기 밖으로 나가지 않게 합니다. 사람이 직접 고른 문장이나 '예쁜' 주소를 만들어 준다는 외부 웹사이트로 키를 생성하는 것은 위험합니다.

키 생성 직후에는 백업과 검증이 이어져야 합니다. 니모닉을 적은 뒤 지갑이 몇 단어를 다시 입력하게 하는 것은 기록 오류를 잡기 위한 절차입니다.

같은 개인 키를 두 사람이 우연히 생성할 확률은 무시할 수 있을 만큼 작습니다. 256비트 공간은 너무 커서, 제대로 된 난수를 썼다면 충돌을 걱정할 필요가 없습니다. 문제는 언제나 난수가 '제대로 되지 않았을' 때 생깁니다.

쉽게 말하면

아무도 따라 할 수 없게 주사위를 아주 많이 굴려 금고 비밀번호를 정하는 과정입니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.