이 기사는 책에서 발췌 한 것입니다. 평신도를위한 비트 코인 가이드 작성자 : Logan Brutsche 저자의 허가를 받아 여기에 다시 게시됩니다..
암호화는 보안을 보장하기 위해 데이터 조각에 수학 함수를 적용하는 과학입니다..
많은 인기 소설은 충분한 해커가있는 한 모든 시스템이 해킹 될 수 있음을 암시합니다. 이 “할리우드 해킹”은 실제 세계가 작동하는 방식이 아닙니다. 해커는 잠금 해제 된 서버 룸, 추측하기 쉬운 암호, 보호되지 않은 네트워크 포트 또는 “백도어”와 같은 악용 할 시스템의 취약점을 찾아야합니다. 나중에 무단 액세스를 얻기 위해 내부 작업으로 설치.
사실이긴하지만 특정 시스템에 취약점이 없다고 보장 할 수는 없습니다. 결국 시스템은 불완전한 인간에 의해 만들어집니다. “모든 것이 해킹 될 수있다”는 생각은 거짓입니다. 90 년대 초반부터 우리는 해킹에 아주 쉽게 영향을받지 않는 암호화 기술에 접근했습니다. 때때로 착취의 여지를 남길 수있는 이러한 기술의 적용입니다..
암호화 자체를 해킹하여 위조 된 암호화 서명 (짧게 정의 됨)을 생성 할 수 없습니다. 수학을 해킹하여 2 + 2 = 5를 만들 수없는 것처럼 암호화와 수학을 모두 잘못 사용할 수 있습니다.. 암호화를 사용하는 시스템이 실패하면 설계자가 암호화를 잘못 적용했기 때문입니다.. 그것은 암호화가 작동하지 않았거나 누군가가 암호화를“해킹”했기 때문이 아닙니다. 은행이 귀하의 계좌를 잘못 처리하는 경우 수학의 잘못이 아니거나 엄마가 익숙하지 않은 첨부 파일을 다운로드하여 컴퓨터 바이러스에 감염된 경우 이메일의 잘못이 아닙니다. . 이것은 비트 코인이 확립 된 암호화의 응용 프로그램이기 때문에 중요한 차이점입니다..
암호화는 테스트되지 않은 새로운 기술이 아닙니다.. 비트 코인에서 사용하는 모든 암호화 기술은 인터넷이 시작된 이래로 사용되어 왔으며 매일 사용되는 많은 일반적인 인터넷 프로토콜에 필수적입니다.. NASA가 로켓 과학을 신뢰할 수 있고 필수적인 것으로 간주하는 것과 마찬가지로 암호화 과학은 컴퓨터 과학자들에게 신뢰할 수 있고 필수적인 것으로 간주됩니다..
키쌍 : 암호화의 초석
키 쌍은 블록 체인에서 사용되는 암호화의 초석입니다.. 키 쌍은 개인 키와 공개 키의 두 부분으로 구성됩니다. 이 키는 실제로 암호와 사용자 이름 대신 사용되는 특정 수학적 관계를 가진 매우 큰 숫자에 지나지 않습니다..
이름이나 사용자 이름과 같은 공개 키를 처리합니다. 대부분의 경우 요청하는 모든 사람과 공유하고이를 가진 사람은이를 사용하여 참조하거나 연락 할 수 있습니다. 평판 (또는 비트 코인의 경우 거래 내역)과 연결되어 있으므로 다양한 용도로 사용하는 여러 공개 키 (따라서 여러 키 쌍)가있을 수 있습니다. 공개 키를 사용하여 계정을 참조하거나 볼 수 있지만 그 자체로 해당 계정에 대한 작업을 승인 할 수는 없습니다..
개인 키는 비밀번호처럼 취급해야합니다. 누구와도 공유해서는 안되며 BTC 전송과 같은 특정 작업을 인증하는 데 사용됩니다..
그러나 개인 키와 암호 사이에는 중요한 차이점이 있습니다. 암호를 사용하려면 개인 또는 서버로 보내야 기록과 비교할 수 있습니다. 암호를 보낸 후 책임감있게 처리 될 것이라고 믿어야합니다. 반대로 개인 키는 아무데도 보내지 않고 자신을 인증하는 데 사용할 수 있습니다. 저장하거나 직접 사용하는 유일한 장소는 로컬 기기입니다..
비밀을 어디에도 보내지 않고 자신을 인증 할 수 있으면 보안을 완벽하게 제어 할 수 있으므로 다른 시스템의 보안 문제에 취약하지 않기 때문에 이는 중요합니다. 이것은 비트 코인을 해킹 할 수 없게 만드는 필수 요소입니다. 공격자가 타협 할 수 있도록 비트 코인 자체에 저장된 암호 나 개인 키가 없지만 사용자는 여전히 트랜잭션을 인증 할 수 있습니다..
그러나 개인 키를 어디에도 보내지 않는 경우 어떻게 개인 키를 사용하여 트랜잭션을 인증 할 수 있습니까? 대답은 개인 키와 공개 키 사이의 수학적 관계인 암호화 서명과 관련이 있습니다..
암호화 서명
암호화 서명을 생성하고 유효성을 검사하는 몇 가지 다른 기술이 있으며 이러한 서명이 작동하도록 허용하는 수학적 정리는이 기사의 범위를 훨씬 벗어납니다. 암호화에 익숙하지 않은 사람들에게는 여기에 설명 된 프로세스가 처음에는 완전히 불가능하게 들릴 수 있습니다. 4 년 전 비트 코인에 대한 연구를 시작했을 때 이런 인상을 받았던 기억이납니다..
지금은 이러한 기술이 많은 일반적인 인터넷 프로토콜에서 사용되며 정보 과학의 확립 된 부분임을 다시 한 번 언급하겠습니다..
이미 공개 키를 직접 거래 한 두 사람, Alice와 Bob을 상상해보십시오. Alice는 Bob에게 메시지를 보내고 싶어하지만 Bob은 매우 의심스러운 사람이며 의심 할 여지없이 수학적으로 증명할 수없는 경우 메시지가 Alice에게서 실제로 온 것이라고 믿지 않습니다. 이 증명을 용이하게하기 위해 그들은 암호화 서명을 사용하는 데 동의합니다..
서명을 생성하기 위해 Alice는 자신의 개인 키와 전체 메시지를 입력으로 받아 암호화 서명을 생성하는 컴퓨터의 서명 생성 알고리즘을 사용합니다. 그런 다음 Bob에게이 메시지 / 서명 콤보를 보냅니다.하지만 결정적으로, 그녀의 개인 키를 보내지 않습니다.
Bob은 메시지와 서명을 수신 할 때 사용할 보완 서명 유효성 검사 알고리즘을 갖게됩니다. ㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ 이 알고리즘은 메시지와 서명을 입력으로 받아 공공의 Alice가 서명을 생성하는 데 사용한 키 쌍의 키입니다. Bob은 자신의 알고리즘 출력 Alice의 공개 키를 보면 Alice의 키 쌍의 비공개 절반을 알지 못하고 계산할 수 없더라도 서명이 Alice의 키 쌍으로 생성되어야한다는 것을 수학적으로 증명했습니다..
더 간결하게, 이 암호화 서명 프로세스를 통해 Bob은 메시지가 제 3 자에 의해 생성 또는 수정되지 않았으며 Alice의 개인 키를 몰라도 (또는 알 수없는) Alice의 개인 키로 생성되었는지 확인할 수 있습니다. 그가 필요로하는 것은 메시지 / 서명 조합과 그녀의 공개 키입니다..
직관적으로 이것은 불가능 해 보이며 무언가를 오해 한 것처럼 느낄 수 있습니다. Alice의 개인 키와 공개 키가 매우 밀접하게 관련되어 있고 Alice가 자신의 개인 키를 사용하여 Bob이받는 서명을 생성 한 경우 공개 키를 파생 할 수 있지만 개인 키를 찾을 수없는 이유는 무엇입니까? 이에 대한 답은 대부분의 사람들이 가지고있는 것보다 훨씬 더 깊은 수학 이해를 필요로하며이 책의 범위를 훨씬 벗어납니다..
그럼에도 불구하고이 기술은 매일 의존하고 사용되며 암호화 커뮤니티 내에서 견고한 것으로 간주됩니다. 웹 사이트를 방문하고 주소가 https로 시작하면 “s”는 사이트가 암호화 서명으로 자체 검증되었음을 나타냅니다. 귀하의 컴퓨터는 Bob이 위의 예에서 한 것처럼 서명 유효성 검사 알고리즘을 사용하여 웹 사이트가 실제로 올바른 키 쌍에서 왔는지 확인했습니다. 이 암호화 서명은 귀하와 웹 사이트 간의 추가 상호 작용이 암호화되고 인증되도록하기 위해 사용됩니다. 이 테스트가 실패하면 최신 브라우저에서 경고하고 웹 사이트를 위험하다고 표시합니다..
충분히 거대한 숫자
앞서 개인 키와 공개 키가 사용자 이름과 암호처럼 작동한다고 간단히 언급했지만 실제로는 특별한 수학적 관계를 가진 매우 큰 숫자에 지나지 않습니다. 이를 감안할 때 종종 다음과 같은 질문을 받게됩니다. ㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ ㅇㅇㅇ
“누군가 컴퓨터가 수많은 숫자를 추측하거나 세어보고 개인 키로 시도 할 수는 없나요? 결국 일부 대상 키 쌍의 개인 키를 통해 실행되어 해당 ID에 대한 제어 권한을 얻지 않겠습니까? ” 실제로 비트 코인의 경우 공격자가 일부 키 페어가 보유한 돈을 훔칠 수 있습니다..
좋은 질문이지만 발생하지 않습니다. 이전에 언급했듯이 수백만 달러 상당의 BTC가있는 비트 코인 주소가 몇 년 동안 움직이지 않았습니다. 훔치는 데 필요한 모든 것이 올바른 개인 키인 경우에도 마찬가지입니다. 바로 엄청난 수입니다! 해당 주소의 개인 키를 추측 할 수 있다면 돈은 어디로 든 보낼 수 있습니다. 비밀번호와 달리 개인 키를 자신의 컴퓨터에서 로컬로 확인할 수 있으며, 사용 횟수 또는 시도 속도를 제한하는 서버가 없습니다..
그런데 왜 아직이 자금을 훔치지 않은 이유는 무엇입니까? 대답은 개인 키로 사용되는 숫자의 거의 터무니없는 크기에 있습니다. 그들은 충분히 크다.
간단한 사고 실험부터 시작하겠습니다. 개인 키가 충분히 커서 전 세계의 모든 컴퓨터가 함께 작동한다면 무차별 대입이 추측하는 데 24 시간이 걸릴 것입니다. 개인 키에 숫자를 하나만 더 추가하면 컴퓨터가 통과하는 데 10 배 더 많은 순열이 있으므로 1 대신 10 일이 걸립니다. 6 자리가 더 있으면 27,000 년이됩니다..
각각의 경우에 난수를 생성하는 기능 만 필요한 개인 키를 생성하는 작업은 간단합니다. 개인 키를 사용하여 서명을 생성하고 공개 키에 대해 이러한 서명을 확인하는 것 역시 계산적으로 간단합니다. 그러나 개인 키를 추측하는 데 필요한 작업은 숫자가 추가 될 때마다 기하 급수적으로 증가합니다. 무차별 대입 추측에 대해 개인 키를 “면역”하려면 충분한 숫자 만 추가하면됩니다. 충분히 크게 만들면됩니다..
그래서 얼마나 거대한가? 비트 코인에서 사용되는 개인 키는 256 비트 정수로, 길이는 76 자리 숫자입니다.. 이 숫자의 크기의 힘은 놀랍습니다. 다음 그림은 Bruce Schneier의 저서에서 많이 파생 된 것입니다. 적용된 암호화, 그리고 충분히 많은 수의 설득력있는 시연입니다..
첫째, 열역학 제 2 법칙의 구체적인 결과는 정보의 단일 바이너리 비트를 변경하는 데 필요한 최소 에너지가 있다는 것입니다 (1을 0으로 또는 그 반대로 변경). 즉, 사용되는 하드웨어에 관계없이 모든 계산 프로세스를 수행하려면 최소한의 에너지가 필요합니다..
이제 태양의 전체 에너지 출력을 활용하여 특수 설계된 컴퓨터에 전력을 공급할 수 있었다고 가정 해 보겠습니다. 특수 설계된 컴퓨터는 개인 키를 세거나 추측하여 키 쌍 (BTC를 제어 할 수 있음)의 개인 키를 찾을 수 있기를 바랍니다..
약간의 수학 및 열역학을 사용하면 완벽하게 효율적인 컴퓨터가 태양의 전체 연간 에너지 출력을 고려할 때 2178 개의 값을 계산할 수 있음을 알 수 있습니다. 이 값을 가능한 개인 키 수 2256으로 나누면이 가상 컴퓨터는 가능한 총 개인 키 수의 0.0000000000000000000003 %까지만 추측하거나 계산할 수 있습니다. 태양의 전체 연간 에너지 출력을 감안할 때.
또한 이것은 단지 계산에 불과하며 각 개인 키가 올바른 공개 키에 해당하는지 확인하기 위해 실제로 각 개인 키를 확인하는 훨씬 더 복잡한 작업은 포함하지 않습니다. 따라서이 컴퓨터가 1 년 말까지 올바른 개인 키를 통해 발생했을 가능성이 0.0000000000000000000003 %이면이를 인식하지 못할 것입니다..
이 숫자는 장치의 기술과 관련이 없습니다. 그것들은 1930 년대 이후 확립 된 열역학 법칙에 따라 가능한 최대 값입니다. 그리고 그들은 256 비트 키 (비트 코인이 사용하는)에 대한 무차별 대입 공격은 컴퓨터가 물질이 아닌 다른 것으로 만들어지고 공간이 아닌 다른 것을 차지할 때까지 실행 불가능할 것이라고 강력하게 암시합니다..
이것은 충분히 큰 숫자의 힘입니다.. 해커가 얼마나 좋은지는 중요하지 않습니다. 그가 1 년 동안 300 십경의 태양의 힘을, 또는 300 십경 년 동안 하나의 태양의 힘을 이용할 수 없다면 그의 컴퓨터는 카운트 모든 개인 키를 통해 테스트하거나 다른 방법으로 사용.
비트 코인과 암호화에 대해 더 자세히 알아 보려면 Logan Brutsche의 책을 선택하세요., 평신도를위한 비트 코인 가이드.