프라이빗 키 생성에서 엔트로피 소스가 중요한 이유

Author logo
Patrick Dike-Ndulue
Post image

비트코인 프라이빗 키가 256비트 숫자라는 사실, 알고 계셨나요? 이는 약 2^256가지 조합이 가능하다는 뜻으로, 관측 가능한 우주에 존재하는 모든 원자의 수보다도 훨씬 큰 숫자예요.
프라이빗 키는 암호화폐 보안의 핵심으로, 디지털 자산을 지키는 마스터 비밀번호와 같아요. 이 보안성은 무작위성, 즉 엔트로피에 크게 의존하며, 키 생성에서 매우 중요한 역할을 해요. 엔트로피는 비트 단위로 측정되며, 시스템의 무작위성(불확실성)의 정도를 수치로 나타냅니다.

무작위성이 왜 중요한지 감을 잡으려면 다음을 생각해 보세요. 엔트로피가 낮은 상태에서 프라이빗 키를 생성하면 심각한 취약점과 해킹이 발생할 수 있어요. 2024년에는 프라이빗 키 유출로 2억 3,900만 달러 이상의 피해가 발생해, 키 생성 시 고품질 엔트로피 확보가 얼마나 중요한지 다시 한 번 보여줬습니다.

그렇다면 비트코인 프라이빗 키가 단순한 숫자라면, 슈퍼컴퓨터가 무작위 대입(브루트포스)으로 이 키를 알아내는 데 얼마나 걸릴까요? 이 글 끝에서 답을 확인해 보세요.

엔트로피(Entropy)란 무엇인가요?

엔트로피는 무작위성 또는 예측 불가능성의 척도이며, 안전한 암호화 키를 생성하는 데 필수적이에요. 이 개념은 정보 이론에서 시작됐으며, 시스템의 불확실성을 수치로 나타냅니다. 쉽게 말해, 예측이 어려울수록 엔트로피가 높다고 할 수 있어요.

암호화폐 프라이빗 키에서 높은 엔트로피는 키를 예측하거나 무작위 대입으로 알아내는 것을 거의 불가능하게 만들어 보안을 지켜줘요. 이런 무작위성은 하드웨어 이벤트, 환경 소음, 마우스 움직임이나 키보드 입력 등 다양한 소스에서 얻을 수 있습니다. 운영체제는 이런 예측 불가능한 이벤트를 모아 진짜 무작위 숫자를 만들어, 안전한 프라이빗 키의 기반으로 사용해요.

엔트로피가 충분하지 않으면 생성된 키가 예측 가능해져 공격에 취약해질 수 있어요. 예를 들어, 엔트로피 소스에 문제가 있으면 동일하거나 비슷한 결과가 반복적으로 나와 공격자가 프라이빗 키를 예측하거나 복원할 위험이 생깁니다.

이처럼 무작위성은 매우 중요하기 때문에, 클라우드 플랫폼이나 가상머신 같은 고도화된 시스템도 암호화 작업을 위해 전용 하드웨어로 고품질 엔트로피를 안정적으로 공급받아요.

엔트로피는 어떻게 작동할까요?

하드웨어 지갑에서 엔트로피는 안전한 프라이빗 키 생성을 위해 핵심적인 역할을 해요. 그 원리를 살펴보면 다음과 같습니다.

엔트로피 소스

Tangem Wallet 같은 하드웨어 지갑에는 전용 하드웨어 난수 생성기(HRNG)가 탑재돼 있어요. 이 장치는 전자 노이즈나 온도 변화 같은 물리적 현상을 측정해 무작위성을 만들어냅니다. 이런 원시 엔트로피는 예측 불가능한 프라이빗 키를 만드는 데 꼭 필요해요.
일부 하드웨어 지갑은 사용자가 주사위 굴리기처럼 직접 무작위 데이터를 입력해 엔트로피에 기여할 수 있게 해줍니다. 사용자 입력과 하드웨어 생성 엔트로피를 섞는 것이 실제 엔트로피 수준에 큰 영향을 주지 않을 수도 있지만, 재미있는 추가 기능이에요.

키 생성

충분한 엔트로피가 모이면, 지갑은 이를 바탕으로 프라이빗 키를 생성해요. 이 과정에서는 종종 엔트로피와 SHA-256 같은 암호화 알고리즘을 결합해 256비트 키를 만듭니다. 많은 하드웨어 지갑은 BIP39 표준을 사용해 엔트로피에서 12~24개의 단어로 구성된 니모닉(복구용 문구)을 생성합니다. 이 문구는 필요할 때 프라이빗 키 복구에 활용할 수 있어요.

보안성

지갑의 펌웨어는 엔트로피가 충분히 섞여 예측 불가능하도록 관리해요. 이후 프라이빗 키는 기기 내부의 변조 방지 환경에 안전하게 저장됩니다. 그래서 대부분의 하드웨어 지갑에는 CC 인증 보안 칩이 들어가 있죠. Tangem의 펌웨어는 Kudelski Security와 Riscure 같은 독립 보안 기관에서 두 차례 철저히 감사를 받았어요.
일반적으로 하드웨어 지갑은 엔트로피 생성과 키 저장 과정을 기기의 다른 기능과 분리해, 악성코드나 외부 위협에 노출될 위험을 최소화합니다.

백업 및 복구

엔트로피로 생성된 니모닉 문구는 직접 적어 안전하게 보관할 수 있어요. 이 문구는 기기를 분실하거나 손상됐을 때 지갑을 복구하는 데 필수적입니다. 니모닉 자체에 키를 생성한 엔트로피가 담겨 있어 안전한 백업 수단이 돼요.

하드웨어 지갑은 고품질 엔트로피에 의존해 프라이빗 키를 안전하게 생성하고, 공격에도 강한 보안을 제공해 암호화폐를 보관하는 가장 안전한 방법 중 하나로 꼽혀요.

엔트로피가 왜 중요할까요?

엔트로피와 복구 문구는 형태만 다를 뿐 동일한 정보를 담고 있기 때문에, 엔트로피 역시 복구 문구만큼 비밀로 지켜야 해요. 다시 강조하지만, 누군가 엔트로피에 접근하면 전체 지갑에 접근할 수 있습니다!

복구 문구로 모든 프라이빗 키와 각 계정에 접근할 수 있듯, 엔트로피 역시 마찬가지예요. 따라서 엔트로피가 최대한 무작위이고, 쉽게 유추할 수 없게 만드는 것이 보안상 매우 중요합니다.

누군가 엔트로피를 추측해 자금을 빼앗는 상황을 원하지 않으시겠죠? 그래서 이 숫자는 통계적으로 추측이 거의 불가능할 정도로 무작위여야 해요. 같은 조합이 두 번 나오는 일도 사실상 불가능해야 합니다.

엔트로피가 쉽게 추측된다면 해커가 이를 악용해 자금에 접근할 수 있습니다. 그래서 엔트로피 생성 방식을 신경 쓰는 암호화폐 지갑을 선택하는 것이 매우 중요해요.
 

엔트로피와 시드 구문 이해하기

시드 구문의 무작위성은 지갑 보안 유지에 핵심적이에요. 직접 단어를 선택하거나 예측 가능한 패턴을 사용하면 지갑 방어력이 크게 약해집니다. Tangem이 사용하는 엔트로피 기반 방식은 다양한 암호화폐 공격에 대해 강력한 보호에 필요한 무작위성을 보장해요.

Tangem은 안전한 엔트로피 생성을 위한 도구를 제공하지만, 시드 구문을 안전하게 지키는 것은 사용자의 책임이에요. 이 정보를 누구와도, Tangem 직원에게도 절대 공유하지 마세요. 시드 구문은 디지털 자산의 열쇠이며, 그 비밀 유지가 지갑 보안의 핵심입니다.
 

Trust Wallet 해킹 사례: 강력한 엔트로피의 중요성

암호화폐 지갑을 고를 때는 무작위성(엔트로피) 생성 방식을 꼭 확인해야 해요. 2022년 Trust Wallet에서 발생한 보안 사고는 지갑의 엔트로피 생성이 예측 가능했던 점이 주요 원인이었습니다.

SecBit는 이 취약점을 자세히 연구해 블로그에 정리했어요: Trust Wallet's Fomo3D Summer: Fresh Discovery of Low Entropy Flaw From 2018. 여기서는 주요 내용을 간략히 소개할게요.

Trust Wallet의 iOS 플랫폼은 BIP39 니모닉 단어 생성을 위해 trezor-crypto 라이브러리에 의존했어요. 이 라이브러리에는 실제 환경에서 사용하면 안 되는 샘플 코드가 포함돼 있었고, 테스트 용도임을 경고하는 문구도 있었습니다.

  1. 이 코드는 크게 random32()와 random_buffer() 두 부분으로 나뉩니다.
  2. random32():
    - 난수를 생성하지만, 그 방식이 충분히 안전하지 않았어요.
    - 난수 생성 시작에 현재 시간을 사용합니다.
    - 즉, 생성 시점을 대략 알면 값을 추측할 수 있게 돼요.
    - 더 나쁜 점은, 두 사람이 같은 초에 생성하면 동일한 "난수"가 나온다는 겁니다.
  3. random_buffer():
    - 데이터를 담을 공간을 무작위 바이트로 채웁니다.
    - 이 과정에서 random32()를 사용하므로 동일한 보안 문제가 발생해요.
  4. 핵심 문제:
    - 이 코드는 사용자의 암호화폐 지갑 접근 권한을 주는 시드 구문 생성에 쓰였습니다.
      - 무작위성이 충분하지 않아 해커가 이 문구를 훨씬 쉽게 추측할 수 있었어요.
      - 수백만 가지 중에서 맞추는 게 아니라, 생성 시점만 알면 수천 가지 중에서 추측이 가능했습니다.
  5. 실수:
      - Trust Wallet은 경고를 무시하고 이 코드를 그대로 사용했어요.
      - 그 결과, 사용자의 지갑을 만드는 데 쓰인 엔트로피가 원래보다 훨씬 쉽게 재현될 수 있었습니다.

Trust Wallet의 최근 보안 사고는 암호화폐 지갑 보호를 위한 강력한 엔트로피 생성의 중요성을 다시 한 번 일깨워줍니다. Trust Wallet은 피해 사용자에게 보상을 제공하며 문제를 해결했습니다.

Tangem Wallet의 엔트로피 생성 방식

Tangem Wallet은 엔트로피 생성 과정부터 암호화폐 자산을 강력하게 보호해요. 이 지갑은 인증된 진정한 난수 생성기를 사용하며, 독립 전문가의 철저한 검증도 거쳤습니다. 이를 통해 생성된 숫자는 예측이 불가능해 자산을 각종 공격으로부터 안전하게 지켜줍니다.

비트코인 프라이빗 키를 브루트포스로 찾으려면 얼마나 걸릴까?

이 질문에 답하기 위해, 과정을 단계별로 살펴보고 규모를 계산해 볼게요.

비트코인 프라이빗 키는 실제로 단순한 숫자이지만, 그 크기는 엄청납니다. 정확히는 256비트 숫자이며, 이는 2^256개의 프라이빗 키가 존재한다는 뜻이에요.

오늘날 가장 강력한 슈퍼컴퓨터로도 비트코인 프라이빗 키를 브루트포스로 찾으려면 상상할 수 없을 만큼 오랜 시간이 걸려요. 우주의 나이보다도 훨씬 긴 시간입니다.

 

슈퍼컴퓨터가 1초에 1조(10^12) 개의 키를 검사한다 해도, 단 하나의 프라이빗 키를 찾으려면 평균 3.67 x 10^57년이 걸립니다. 참고로 우주의 나이는 약 138억 년(1.38 × 10^10년)입니다.

즉, 비트코인 프라이빗 키를 브루트포스로 찾는 데 걸리는 시간은 우주 나이의 약 1.33 × 10^47배에 달해요.

이처럼 우리는 아직 어린 지구에서 엄청난 기술을 이루고 있음을 새삼 느끼게 됩니다.

Author logo
작가 Patrick Dike-Ndulue

Senior editor covering crypto, onchain equities, and technology.

Author logo
검토자: Rukkayah Jigam

Writer & editor covering digital assets and product updates.