해시와 해시함수가 뭔지 알아보자

암호학에 있어서 해시는 매우 중요한 요소이며
블록체인에도 마찬가지이다

보기만해도 현기증이 나겠지만 참고 한번 알아보자

IT 계열은 용어가 무진장 중요하다
또한 무진장 거지 같다
마치 10대 애들이 쓰는 은어 같은 수준인게 바로
IT 용어다. ㅇㄱㄹㅇ(이거리얼) 뭐 이런거?

대신 용어자체에 그 뜻이 함축되어 있어서
한번만 제대로 알면 그후 이해도에서 다른 사람과
엄청난 차이가 나게 된다

일단 용어의 일반적 뜻부터 알아보자

Hash : 잘게 썰고 섞어서 짬뽕
함수 : 상자와 수?

사실 함수라는 용어의 탄생은 아래와 같다

function [평션] -> 휭션(중국발음) -> 한션 -> 한슈


함수의 유래

한국어 용어들은 이런 식으로 다른나라에서 번역한걸
재번역해서 알아듣기 어려운게 많다

다만 함수의 경우는 예상외로 원래의 뜻에 굉장히
가까운 뜻이 되었는데 이왕이면 그냥 '함' 이었으면
더 나을지도 모르겠다

진짜 뜻과 우연찮게 유사함

여튼 함수의 의미는 수학시간에 지겹게 들어서 뭔지는 알겠지만
이게 또 정확히 모를 수도 있으니 다시 설명하겠다

함수는 함에 들어있는 모종의 장치로 인해서
입구에 뭔가를 넣으면
거기에 반응해 출구에 뭔가가 튀어나오는 것을 말한다

가장 대표적으로 자판기다

돈과 버튼 - 입구
나오는 것 - 결과물

이렇게 되는 것이다
여기서 맥심을 눌렀는데 콜라가 튀어나오는 참사는 없다
함수는 사용처에 따라 '그렇게' 설계해놓는다
예를들어 자동차의 핸들함수의 경우
오른쪽으로 돌렸을때(입력) 오른쪽으로 간다(출력)
왼쪽으로 가면 설계자가 싸이코거나 문제가 있는것이다

여하튼 우린 함수의 '설계'를 알 필요는 없다
단순히 그 함수가 용도에 맞게
뭔가를 넣으면 원하는 결과를 뱉게만 하면된다

결과만 원하는데로 나오면 내부는 어찌만들던
상관할바가 아니다

그럼 해시함수의 용도는 무엇이며
우리가 원하는 결과물은 뭘까

이해를 돕기 위해 다음의 예제를 보자


본래의 짜장면(원래의 데이터)


어이쿠(해시함수)


늦어서 죄송합니다 짜장면 시키셨죠?(해시당한 결과물)

대체 이것이 뭔가
우리가 원한게 멀쩡한 음식이 해쉬당해 음식 쓰레기가
되는 것이란 말인가?

음식점에서야 이딴 쓰레기 함수는 안쓰겠지만
암호학이라면 얘기가 다르다

암호학이 원하는 것은 짬뽕쓰레기 결과다
해커가 결과로부터 입력값을 절대 모르게 하기 위해서다

우리는 이것을 직접 실험해볼 수 있다
아래사이트로 가보자
http://www.convertstring.com/ko/Hash/SHA256

이 사이트는 자신의 입력을 해시함수가
어떻게 망쳐놓는지를 보여준다

이걸보면 확실히 해커가 나의 원래 입력을
결과로부터 알아낼 수가 없다는 것을 알것이다

근데 그래서 뭘 어쩌란 것인가
이걸 어떻게 쓰라구 라고 범인은 생각한다
하지만
암호학자들은

입력이 같으면 결과값도 같다

라는 사실에 주목하게 된다

200번 커피를 누른다고 그중 한번은 콜라를 뱉는게
아니라는 것이다
그것은 역으로 상대가 뭘 누른지 몰라도
커피가 나왔다면 커피버튼을 눌렀다는 확인이 된다는 것이다!

흔히들 보안업체가 말하는 변명(?) 같은게 있다
우린 패스워드를 암호화해서 실제론 모른다
이게 말인지 방구인지 잘 몰랐을 것이다
암호화했어도 자기네들이 가지고 있을테고
확인할려면 어차피 풀어야하는데 누가 푼단 말인가

여기서 바로 해시함수가 등장한다

쟤네들이 가진 그 암호화 된것이란 바로
짬뽕된 해시값을 뜻한다

그 해시값만 가지고 있다면 그 말대로 자기네들은
상대방의 암호를 알아낼수가 없는 것이다
하지만 상대방이 보낸 암호를 해시함수에 입력해서
결과가 자신들이 가진 해시값과 일치한다면?

그것은 진짜라는 것이 인증된다

해시함수를 통해
커피가 나왔으니 상대가 커피가 나오게 하는 입력을
넣은것이 확실하다는 것이다

이건 이전에 설명한 지갑에서 키파일의 작동방식이기도 하다
🔗이더리움 온라인 지갑을 만들어보자

키파일은 털려도 상관없다. 어차피 해시값일 뿐이니
거기서 원래값은 알아낼수 없다
우리가 지갑에 로그인할때 키파일을 주고
그 다음에 패스워드를 입력한다. 그럼 지갑은 그 패스워드를
바로 해시함수에 집어넣어 값을 뽑아낸다
이제 이 값과 키파일의 값을 비교,
일치하면 인증이 되는 것이다

이로써 해시에 대해서 어느정도 알았을 것이다
덤으로 외국인이 떡갈비에 대해서 물으면

'오우 잇츠 갈뷔해시~'

라고 자신있게 지껄일 부가지식까지 얻은 것이다
해시가 이렇게나 유용하다

빙수는? 아이스해쉬 오우..-ㅅ-~

함수는? 오우~... 오.. .. 예~

..뭐...그런 것이다
어쨋든 유용하고 생각보다 쉽다는 것이다

H2
H3
H4
3 columns
2 columns
1 column
81 Comments