디지털 서명 및 해싱

디지털 서명과 암호화 해시 기능은 암호 화폐를 작동시키는 비밀 소스를 구성합니다. 말하자면 그들은 암호 화폐를 통화에 넣었습니다. 디지털 서명은 거래에 설명 된 자산의 소유권을 주장하는 개인 키가 있음을 증명합니다. 해시 함수는 트랜잭션을 정의하고 보호합니다..

암호화 — 비밀을 알고 싶으십니까??

디지털 서명과 해시 함수는 암호화에 존재합니다. 그렇다면 암호화 란 무엇입니까? 암호화는 통신 자 간의 프라이버시를 유지하기 위해 메시지를 인코딩 및 디코딩하는 기술과 과학을 정의합니다..

암호화의 샐러드 데이

다양한 형태의 암호화가 수년에 걸쳐 서로 다른 기간에 우세합니다. Julius Caesar 시대에는 알파벳을 회전하는 것만으로 충분했습니다. 따라서 암호학자는이를 “Caesar 암호”라고합니다. “cat”이라는 단어 대신 암호화 된 메시지는 모든 문자를 왼쪽으로 한 단계 씩 회전시킬 수 있으므로 “cat”은 “dbu”로 번역됩니다. 영화에서 2001 : 스페이스 오디세이, 같은 방식으로 “HAL”문자를 회전하면 무엇을 얻을 수 있습니까??

시간이 지남에 따라 암호 분석가가 주어진 각 시스템을 해결함에 따라 암호 시스템이 중단됩니다..

공개 키 암호화

디지털 서명 이미지

공개 키 / 개인 키 암호화 또는 단순히 공개 키 암호화라고도하는 비대칭 암호화가 현재 널리 사용되고 있습니다. 공개 키와 개인 키는 단순히 숫자입니다..

비대칭이라는 용어는 대칭 암호화와 구별됩니다. 대칭 암호화에서는 동일한 키가 메시지를 암호화하고 해독합니다. 따라서 키는 숨겨져 있어야합니다. 이로 인해 키 배포 문제가 발생합니다. 키를받는 사람과 암호화 된 메시지에게 안전하게 전송하는 방법?

공개 키 암호화는 누구나 메시지를 암호화하는 데 사용할 수있는 공개 키를 게시하여이 문제를 해결하고 사용자는 메시지를 해독하는 데 사용할 개인 키를 보유합니다. 이것은 단방향 수학 함수의 마법을 통해 작동합니다. 단방향 함수는 간단하고 쉽게 계산하지만 리버스 엔지니어링에 저항합니다..

공개 키 암호화 예제

아주 간단한 예를 들어 설명하기 위해, 두 개의 소수 곱하기 : prime1 * prime2 = 결과. 숫자가 충분히 크면 누구나 결과를 볼 수 있지만 그 결과에 도달하는 데 사용 된 두 소수를 결정하는 것은 큰 어려움을 나타냅니다. 결과는 공개 키를 나타내고 prime1 및 prime2는 개인 키를 나타냅니다..

해커가 충분한 컴퓨팅 성능을 사용하면 비대칭 암호화가 중단됩니다. 그러나 해커는 합리적인 시간 내에이를 수행하기 위해 슈퍼 컴퓨터가 필요합니다. 양자 컴퓨터가 표준이 될 때 암호화는 진화해야합니다..

디지털 서명

개인 키에 의해 생성 된 디지털 서명은 개인 키를 나타내므로 사용자가 주어진 트랜잭션에서 로그 오프했음을 보여줍니다..

디지털 서명은 암호화 된 메시지의 변형이라고 생각할 수 있습니다. 공개 키 암호화가 암호화 된 메시지를 만드는 것처럼 개인 키도 디지털 서명을 만듭니다. 공개 키를 사용하면 개인 키에 의해 생성 된 디지털 서명을 신속하게 확인할 수 있습니다. 이것을 직소 퍼즐이라고 생각하십시오. 퍼즐은 완료하기가 매우 어려울 수 있지만 올바르게 완료되면 한 눈에 확인합니다..

해시 하우스에서 만찬

암호화 해시는 임의 크기의 데이터를 해시 값 또는 단순히 해시라고하는 고정 된 크기의 비트 문자열로 매핑하는 수학적 함수의 결과입니다. 주어진 입력 데이터는 항상 동일한 해시를 생성합니다. 따라서 메시지가 연결된 해시 값과 일치하지 않으면 메시지가 변조 된 것입니다. 두 개의 다른 메시지가 동일한 해시 값을 생성해서는 안됩니다. 그럴 경우 충돌이 발생하고 해당 값을 생성 한 해시 함수에 치명적인 결함이 있습니다..

해싱의 간단한 예

설명을 위해 간단한 문자열 “ABCDE”를 입력 데이터로 해시한다고 가정합니다..

간단한 해싱 알고리즘을 만들어 보겠습니다. 먼저 문자를 숫자로 변환합니다. A = 1, B = 2, C = 3, D = 4, E = 5입니다. 결과 해시 값은 한 자리 여야합니다. 기본 방법은 단순히 모든 자릿수를 더합니다 : 1 + 2 + 3 + 4 + 5 = 15. 이것은 두 자릿수를 산출합니다. 그래서 우리의 알고리즘은 반복적으로이 숫자의 각 자릿수를 더합니다 : 1 + 5 = 6 6 해시 값, 6은 해시로 “ABCDE”를 나타냅니다..

6이 해시로 표시되는 메시지로 “ABCDE”를 수신하면 메시지가 정확하다고 신뢰하는 것입니다. 그러나 해시 6으로 표시되는 “ABCXE”메시지를 받으면 메시지 변조로 인해 불일치가 존재합니다..

물론 우리의 간단한 해싱 알고리즘은 여러 수준에서 실패합니다. 첫째, 문자열 “EDCBA”또는 그 조합은 “ABCDE”와 동일한 해시를 생성하여 충돌을 생성합니다. 복잡한 수학은 이러한 문제를 극복합니다. 현재 암호 화폐에서 가장 많이 사용되는 해싱 알고리즘은 SHA-256이라는 이름으로 사용됩니다 (두문자어는 Secure Hash Algorithm을 나타냄). SHA-256 알고리즘에서 해시 값의 고정 크기는 256 비트가됩니다..

암호 화폐의 디지털 서명 및 해싱

좋아요, 우리는 어떻게 디지털 서명과 암호 화폐 해싱을 실제로 사용합니까??

실제 기술을보기 위해 비트 코인 거래를 살펴 보겠습니다..

비트 코인 거래는 1) 입력 섹션과 2) 출력 섹션의 두 부분으로 나뉩니다..

입력 섹션에는 발신자의 공개 키, 발신자가 거래를 처리하기에 충분한 비트 코인을 소유하고 있음을 보여주는 정보 및 기타 유용한 정보가 포함됩니다. 발신자의 개인 키는이 거래에 서명하기위한 디지털 서명을 생성합니다. 이 디지털 서명은 거래의 입력 섹션으로 들어갑니다..

출력 섹션에는 수신자의 지갑 주소와 하나 이상의 출력이 있기 때문에 색인이 포함됩니다 (다양한 출력은 수신자, 발신자 및 채굴 자에게 전달됨)..

해싱은 거래의 무결성을 보호하기 위해 작동합니다. 지불 인, 수취인 및 지불 된 금액과 같은 데이터는이 정보를 변경하는 악의적 인 행위자로부터 보호하기 위해 해싱이 필요합니다. 암호화 키와 이러한 입력 매개 변수를 결합하여 해시 함수를 제공하면 트랜잭션 ID가 생성됩니다. 이제 우리는 보낸 사람이 실제로 지불 할 권한이 있고 거래의 세부 사항이 정확하고 변조되지 않았 음을 암호화 확실하게 알고 있습니다..

버터 밀크의 파리

비트 코인 거래의 알려진 문제는 거래 가단성.

비트 코인이 트랜잭션의 다양한 필드를 해시하기 때문에 트랜잭션 가단성이 발생합니다. 거래를 처리하는 동안 이러한 필드 중 일부는 겉보기에는 미미하고 중요하지 않은 방식으로 변경 될 수 있습니다. 그러나 변경되기 때문에 해시 값이 변경되어 트랜잭션 ID가 변경됩니다..

이것을 시각화하기 위해 정수 123을 포함하는 필드를 생각해보십시오. 그러나 처리 중에 시스템은 이것을 0123이되도록 확장합니다. 둘 다 동일한 숫자를 구성하고이를 살펴보면 동일한 것으로 알고 있지만 해시 함수는이를 다음과 같이 간주합니다. 다르고 이후에 각각에 대해 다른 해시 값을 생성합니다. 이 기이 한 점은 악의가 시스템을 조작 할 기회를 제공합니다..

구조에 세그 윗

Segregated Witness (SegWit) 기술이이 문제를 해결했습니다. SegWit은 블록과 분리 된 (분리 된) 구조를 생성합니다. 이 별도의 구조에는 트랜잭션의 유효성을 확인하는 데 필요한 정보 (트랜잭션의 유효성 확인)가 포함되어 있지만 트랜잭션 데이터 자체는 포함되지 않습니다. 이러한 방식으로 트랜잭션 데이터를 분리하면 가단성의 가능성이 제거되었습니다..

결론

기술이 발전함에 따라 암호화도 발전합니다. 미래의 컴퓨터는 확실히 오늘날의 암호화를 깨뜨릴 것입니다. 그러나 우리가 살고있는 현재 세계에서 디지털 서명과 암호화 해시는 거래의 보안과 무결성을 보장 할 수있는 충분한 보호 장치를 제공합니다..