컴퓨터 공학 기초)Hash

Dec 12, 2023
컴퓨터 공학 기초)Hash

1. Hash란?

  • 어떤 데이터를 고정된 크기의 문자열로 변환하는 함수 또는 알고리즘
  • 단방향 암호화 기법 : 한번 암호화 하면 복구화가 안됨
  • 해싱(Hashing) : 특정한 규칙에 따라 변환하여 고정된 크기의 해시 값을 생성하는 과정
  • 임의의 난수, 16 진수 : 0~f까지 표기
💡
컴퓨터가 8bit 체제라 16진수를 이해하기 더 편해서 사용
 
예시) 3을 16진수로 표현할 때 0x03
key : 안녕 → hash : AB3F7D8

2. Hash 특징

  • 같은 입력에 대해서는 항상 동일한 해시값이 생성
  • 해시 값은 주어진 입력 데이터에 대해 유일하게 대응
작은 변화라도 입력 데이터의 해시 값이 크게 변하도록 설계됨
길이는 hash 알고리즘에 따라 다 다름
  • 이미 해봐서 사람이 기억하고 있으면 찾을 수 있음
💡
Why? 무엇을 hash하던지 항상 동일한 길이가 나옴
 
예시) 엄청 두꺼운 책에 엄청 많은 글이 적혀있는 책 한 권을 hash했을 때 : A3F6D08
그 저자의 이름이 홍길동인데 이름을 홍길도로 바꾸면 위조된 것
동일한 책이지만 조금이라도 변경이 되면 hash가 변경됨 : 3F607D4
이 책에 대한 hash를 국가에 등록한 경우 이 책을 위조하면
그 파일 내용을 hash하면 다르게 나옴 어떤 책이 진본인지 알 수 있음
그래서 전자 서명, 위조 확인에 사용
 

3. Hash의 장단점

장점) 변경의 유무를 알 수 있음
단점) 복구화가 안됨
hash 알고리즘을 통해서 암호화하면 hash를 원복시킬 순 없음
어떤 부분이 변경됐는지는 알 수 없음
예시) 세상의 모든 것에 대한 hash 값이 나오고
세상이 계속 바뀌기 때문에 그 순간마다 hash 값이 달라짐

권장 Hash


MD5, SHA-1 → 크랙 당함
크랙을 당하는 이유? 레인보우 테이블을 가지고 있음
레인보우 테이블 : hash 함수에 따른 hash 값들이 다 저장되어 있음
 
SHA-256, SHA-512에 salt 추가하기

예시) SHA-256 : 256 bit
notion image
notion image
notion image
 

4. 단방향 통신

notion image
ID = user name
통신할 때 연결되는 물리적인 선 : Byte Stream
PW를 그대로 저장하면 보안법에 걸리니까 hash해서 저장함
직원도 몰라야하니까 단방향 hash를 사용
 
hash값을 비교해서 값이 같으면 승인
hash니까 해킹을 당해도 단방향이라 원복이 안되니 PW가 노출되지 않음
 

5. 전자서명에 많이 사용 됨

블록체인


블록을 hash → 이전hash와 블록을 hash : 블록끼리 hash로 연결되어 있음
 
블록의 내용을 변경하면 hash값이 변경되고 다음 블록들도 다 바뀌게 됨
블록이 10분마다 생성되어 모든 블록을 해킹해야하기에 해킹이 불가능

 
Share article

vosw1