해시 개념에 대해서 이야기해봅시다.
해시 개념에 대해 알기
해시 개념(Hash)은 하나의 문자열에 대해서 이를 상징할 수 있는 더 짧은 길이의 문자열이나 값, 키로 변환하는 것을 의미합니다.
해시(Hash)는 무결성 검증에 사용됩니다.
해시(Hash)는 해시 함수(Hash Function)와 해시값(Hash Value)을 사용합니다. 해시 함수에는 3가지 특징이 사용되는데 해시 함수의 3가지 특징은 역방향의 계산이 어렵다는 점, 입력한 값이 조금이라도 변경되면 얻을 수 있는 결과 값이 크게 바뀐다는 점, 같은 입력에서는 같은 값을 얻을 수 있다는 점입니다. 해시는 이러한 특징을 이용하여 파일의 수정 검증과 패스워드 저장에 사용됩니다.
해시와 해시함수는 블록체인(Block Chain)의 핵심 기술이기도 합니다.
해시 함수(Hash Function)를 이용하여 매칭된 해시는 특정 패턴의 배열을 가진 인덱스와 데이터 값을 사용해서 보관할 수 있게 되며 검색이 가능한 구조가 됩니다. 해시가 없었다면 데이터 자료구조를 파악하고 찾는데 많은 시간이 필요하지만 해시 기술이 등장하면서 데이터를 특정한 길이로 나눌 수 있게 됨에 따라 검색의 효율성이 높아졌습니다.
해시 개념에 대한 설명
해시 개념(Hash)은 입력된 값이나 데이터에 대해서 해시 함수를 이용하여 고정된 길이의 데이터로 변환되는 값으로 암호처럼 사용할 수 있는 것을 의미합니다. 해시는 여러 가지 길이를 가진 데이터를 특정한 길이로 매핑(Mapping)하는 기술입니다.
해시(Hash)는 해시 코드, 해시 함수의 개념과 동일하게 사용합니다.
해시(Hash)는 암호화 개념과는 구분됩니다.
해시는 정보의 위변조 내용을 확인하고 정보의 무결성을 확인하기 위한 방법이라면 암호화는 정보를 숨기기 위한 방법입니다. 해시는 원래대로 되돌릴 수 없지만 암호화는 원래대로 되돌리는 복호화가 가능합니다.
일반적으로 해시는 대칭 암호 방식과 비대칭 암호 방식, 하이브리드 암호 방식과 함께 사용하게 됩니다.
[해시와 암호화 개념 구분]
구분 | 내용 |
해시 | 위변조 내용을 확인하고 정보의 무결성을 확인하기 위한 방법 |
암호화 | 정보를 숨기기 위한 방법 |
해시(Hash)는 전자서명, 전자메일, 전자화폐와 같은 전자상거래를 위한 다양한 기능에 활용될 수 있습니다.
해시는 무결성을 검증하는 방법으로 사용될 수 있으며 송신자가 파일과 해시 값을 합쳐서 송신하면 수신자는 파일에서 해시값을 계산하여 일치하는지를 여부를 확인하고 위변조 유무를 확인할 수 있게 됩니다.
해시는 패스워드 저장에도 사용됩니다. 패스워드를 저장할 때 계산한 해시 값만을 저장하면 패스워드가 외부로 공개되어도 원래 값의 추측을 할 수 없다는 특징을 이용하여 안전성을 확보할 수 있게 됩니다.
해시는 프로그래밍 언어에서도 사용하는데 일부 프로그래밍 언어에서는 해시라고 하는 데이터 구조가 존재하며 제목과 본문 내용을 짝을 지어서 저장합니다. 이를 연상 배열이라고도 부릅니다.
해시는 많은 양의 데이터를 다루게 되는 블록체인(Block Chain) 기술에 필수적인 요소입니다. 또한 해시는 보안과 관련된 기술 분야에도 널리 사용되고 있고 패스워드와 전자서명에 대한 무결성 검증에 사용됩니다.
해시함수(Hash Function)는 암호 알고리즘(Algorithm)입니다. 해시 함수는 일반적으로 웹사이트 홈페이지나 시스템에 로그인할 때 입력하는 아이디와 패스워드가 일치하는지 여부를 확인하는데 사용하는 기술입니다. 해시 기술은 양방향이 아니라 단방향으로 움직입니다. 해시 함수의 특징을 통해 개인정보를 보호하고 패스워드의 일치 여부를 확인할 수 있게 됩니다.
해시 함수는 입력한 값이 조금만 달라져도 완전히 다른 값으로 변형됩니다. 만약 해시 함수를 통해 같은 값이 출력 되면 해시 충돌 현상으로 시스템에 큰 오류가 발생할 수 있습니다.