해시란 무엇입니까?
해시 함수는 단순히 임의 길이의 입력 X를 고정 길이 n의 출력 h(x)에 매핑하는 함수입니다.
” The input to a hash function is called a pre-image, the message, or
simply the input data. The output is called the hash"
--Mastering Ethereum, by Andreas M. Antonopoulos, Gavin Wood
간단히 말해서 입력이 아무리 길거나 짧더라도 해시 함수는 항상 고정된 크기의 결과를 제공합니다.
해시 함수에는 두 가지 속성이 있습니다.
암호화 해시란 무엇입니까?
암호화 해시 함수가 되려면 해시 함수가 더 많은 속성을 충족해야 합니다. 그것들을 살펴봅시다.
1) 사전 이미지 저항
"If a function h is a one-way-function, then a function h-1 does not
exist. It is therefore computationally infeasible to find the input
to an output of h"
-- Gallersdörfer, U., Holl, P., & Matthes, F. (2020). "Blockchain-based Systems Engineering". Lecture Slides
이는 기존 해시 값에서 입력 값을 가져오는 함수가 없음을 의미합니다(따라서 입력에서 해시까지 단방향이라고 하지만 반대 방향은 아님).
2) 2차 프리이미지 저항
"Given x it is computationally infeasible to find any second input x’ with x != x’ such that h(x) = h(x’)."
-- Gallersdörfer, U., Holl, P., & Matthes, F. (2020). "Blockchain-based Systems Engineering". Lecture Slides
즉, 입력과 해시가 있는 경우 동일한 해시를 생성하는 다른 입력을 찾기가 매우 어렵습니다.
3) 충돌 저항
"A hash function h is said to be collision resistant if it is infeasible to find two values, x and y, such that x != y, yet h(x) = h(y)."
-- Gallersdörfer, U., Holl, P., & Matthes, F. (2020). "Blockchain-based Systems Engineering". Lecture Slides
충돌 저항을 통해 우리의 해시 함수는 임의 길이의 두 개의 다른 입력이 동일한 해시를 생성하지 않도록 합니다.
나는 당신이 생각하는 것을 압니다, 이것은 2차 사전 이미지 저항과 같지 않습니까? 저도 이것에 대해 생각했고 이것에 대한 아주 좋은 설명을 찾았습니다 👇
Collision resistance always implies property second preimage
resistance but does not imply preimage resistance. The properties of
second preimage resistance and collision resistance may seem similar
but the difference is that in the case of second preimage resistance,
the attacker is given a message to start with, but for collision
resistance no message is given; it is simply up to the attacker to
find any two messages that yield the same hash value.
--Merkle-Damgård Construction Method and Alternatives: A Review. By Harshvardhan Tiwari
해싱!= 암호화
이를 명확히 하기 위해 해싱은 암호화가 아닙니다. 암호화 알고리즘을 사용하여 일부 민감한 정보를 암호화하지만 향후 복호화를 목표로, 즉 해싱 기능이 불가능함(단방향 속성 기억)
해싱 사용 사례
• 데이터 핑거프린팅
• 메시지 무결성(오류 감지)
• 인증
• 정보 숨기기
• 정보 제공(예: 투표)
공개 Ethereum 주소는 실제로 해시이기도 합니다.
공개 이더리움 주소도 해시라는 사실을 알고 계셨나요?
다음은 이더리움이 공개 주소를 생성하는 간단한 흐름입니다.
개인 키(k) 생성 및 공개 키 파생
(케이) 그것으로부터.
Keccak256(K) =
2a5bc342ed616b5ba5732269001d3f1ef827552ae1114027bd3ecf1f086ba0f9
001d3f1ef827552ae1114027bd3ecf1f086ba0f9
주소가 16진수임을 분명히 하기 위해 앞에 0x를 추가하는 경우가 많습니다.
요약
자원
Reference
이 문제에 관하여(해시란 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/xamhans/what-is-a-hash-1j4텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)