Ledger 디바이스가 24개의 단어 복구 문구를 생성하는 방법

복구문구는 암호화 관리의 핵심입니다. 따라서 복구 문구는 길게 만들어야 하고, 누구도 추측할 수 없는 것이어야 합니다. 또한 이는 패스워드나 PIN(Ledger 장치에는 액세스를 보호하기 위해 이미 PIN이 있음)과는 다르며, 본인의 모든 암호화 기밀의 근간을 이룹니다. 처음에 장치가 복구 문구를 무작위로 생성하면 종이에 기록해 두고 장치를 복구해야 하는 경우에만 확인하면 됩니다.

Ledger는 당사의 모든 장치에서의 복구 문구 생성 및 해석을 위한 BIP 39라는 표준을 사용합니다. BIP 39는 다른 많은 계층적 결정성 지갑에서 사용하는 산업 표준입니다. Ledger 장치에서 기본적으로 사용하는 BIP 39 시드의 정확한 유형은 24 단어의 니모닉으로, 이는 BIP 39 영어 단어 목록의 2048개 단어로만 구성됩니다. BIP 39의 24 단어 니모닉 시드가 생성되는 방법은 다음과 같습니다.

  1. 장치는 보안 칩에 내장된 진정한 난수 생성기(True Random Number Generator, 또는 TRNG)를 사용해 256개의 무작위 비트 시퀀스를 생성합니다.
  2. 초기 256비트의 SHA-256 해시의 처음 8비트가 끝에 추가되어 264비트를 제공합니다.
  3. 모든 264비트는 11비트의 24개 그룹으로 분할됩니다.
  4. 11비트로 구성된 각 그룹은 0 - 2047 범위의 숫자로 해석되며, 이는 BIP 39 단어 목록에 대한 지수 역할을 하여 24개의 단어를 제공합니다.

이 프로세스의 결과로 장치는 2256 확률의 니모닉 시드(이는 115 792 089 237 316 195 423 570 985 008 687 907 853 269 984 665 640 564 039 457 584 007 913 129 639 936 확률의 니모닉 시드 중 하나임)중 하나의 니모닉 시드를 생성하게 됩니다. 

처음 23개 단어는 완전히 무작위이지만 마지막 단어는 SHA-256 해시에서 3개의 무작위 비트와 8개의 계산된 비트에서 파생한 것입니다. 이는 이 마지막 단어가 검사 합계 역할을 할 수 있음을 의미합니다. 즉, 장치 복구 중 잘못된 시드를 입력할 경우 장치에서 입력된 시드가 유효하지 않음을 감지할 수 있게 됩니다.

다른 사람이 내 시드를 추측할 수 있을까요?

2256가지 다른 24 단어의 니모닉 시드가 존재합니다. 비교하자면, 지구에 존재하는 원자의 수가 약 2166가지로 추정된다는 점을 볼 때, 다른 누군가가 여러분의 시드를 추측해 낼 수 있는 확률은 한 마디로 천문학적으로 낮습니다.

도움이 되었습니까?