본문 바로가기
Kor/Blockchain

암호기술과 블록체인 (1) - 암호와 해시

by PD Miles 2022. 7. 20.
반응형

암호란?

암호란 어떤 비밀 정보를 다른 사람이 판독하지 못하게 변형하여 감추는 것

우리가 어떤 정보를 누군가에게 전달할 때 암호화 하지 않으면 데이터의 변형이나 중간 탈취를 당할 가능성이 있다.

암호화 & 복호화

암호는 일반적으로 ‘암호화'와 ‘복호화' 과정을 거치는데 두 과정의 의미는 아래와 같다.

- 암호화 : 해독이 가능한 평문을 판독하지 못하도록 암호문으로 바꾸는 행위

- 복호화 : 해독이 어려운 암호문을 판독이 가능한 평문으로 복구

출처 : https://raonsecure.raonctf.com/essential/study/web/cryptography

양방향 & 일방향

암호는 다양한 유형과 분류가 있는데 크게 ‘양방향 암호'와 ‘일방향 암호'로 구분할 수 있다.

일반적으로 두 차이는 복호화 과정을 거치냐 안거치냐로 구분할 수 있다.

- 양방향 암호 : 평문을 암호문으로 암호화하고 다시 복호화 해서 평문으로 바꿀 수 있는 암호방식

- 일방향 암호 : 평문을 암호문으로 암호화하고 다시 평문으로 복호화 할 수 없는 암호방식

 

양방향 암호와 일방향 암호

이미지 출처 : https://auth0.com/blog/hashing-passwords-one-way-road-to-security/

 

처음에 이 내용을 읽었을 때 ‘암호를 다시 해독할 수 없으면.. 무슨 의미가 있지?’ 라는 생각을 했었지만,

블록체인 기술에서 일방향 암호는 매우 중요한 기술이라는 것을 알게되었다.

일단 양방향 암호에 대해서 알아보자.


양방향 암호 - 비대칭키 암호 기술

점점 내용이 어려워지기 시작한다…

암호는 ‘양방향 암호'와 ‘일방향 암호'로 구분된다고 했는데, 양방향 암호는 또 ‘대칭키 암호’와 ‘비대칭키 암호'로 나뉜다고 한다.

쉽게 설명하면

- 대칭키 암호 = 하나의 키(key)를 이용하여 암호화와 복호화를 하는 암호방식

- 비대칭키 암호 = 쌍으로 구성된 두 개의 키로 각각 암호화 복호화 할 수 있는 암호방식

자 여기서 비대칭키는 는 쌍으로 구성된 두 개의 키로 나눠져 있다고 하는데 이를 ‘개인키'와 ‘공개키'라고 한다.

- 개인키 = 외부에 절대 공개하면 안 되고 반드시 개인만 보관해야하는 키

- 공개키 = 외부에 공개되어 누구나 접근 및 이용 가능한 키

비대칭키에 대한 이해는 아래 이미지를 보면 조금 더 쉬울 것 같다.

비대칭키는

  1. 개인이 한쌍의 키를 발행하고 그 중 공개키를 송신자에게 전달한다.
  2. 그 후 송신자는 공개키를 이용해 평문을 암호화 하여 전송하고
  3. 이 암호문이 수신자에게 전달되면 수신자는 공개키와 한 쌍을 이루는 개인키를 이용하여 복호화하는 과정을 가진다.

이는 개인키를 소유한 사람만 암호문을 해독 할 수 있다는 것이다.

비대칭키를 활용하는 방식 중 가장 대표적인 예시가 우리가 이전에 자주 사용했던 ‘공인인증서' 방식이다.


일방향 암호 - 해시(Hash)

이 책에서 해시(Hash)라는 단어를 모를 수 있는 사람들을 위해서 해시의 어원부터 거슬러 올라간다.

해시는 잘게 다진 고기, 감자, 양파 등을 이용한 요리이며, 어원은 ‘잘게 자른, 다진'을 의미하는 ‘Hacher(프랑스어)’에서 유래한 것임을 알 수 있다.

양방향 암호와 달리 일방향 암호는 평문을 암호화 하여 해시함수로 변환하면 다시 평문으로 복호화 할 수 없다.

마치 해시(Hash)의 어원처럼 고기를 다진 후에 다시 고기로 되돌릴 수 없는 것과 같다.

해시의 특징

해시를 이해하기 위해 간단한 예시를 들어보자면 우리 나라의 주민등록번호로 이해해보자

우리나라에서 국민으로 태어나면 13자리로 구성된 주민등록번호가 부여된다.

이때 주민등록번호에는 몇 가지 특징이 있다.

  • 13자리의 고정된 길이가 랜덤값으로 출력됨
  • 출력된 값으로 입력값(대상)을 유추할 수 없음
  • 입력값(대상)의 사소한 변경에도 출력값은 바뀜
    • ex) 홍길동의 주민등록번호와 홈길동의 주민등록번호는 자음 하나의 차이이지만 주민번호가 달라짐

위 내용은 해시를 이해하기 위해서 예시로 든 내용이고, 실질적인 개념으로 정리하자면 ‘해시함수는 어떤 데이터를 입력해도 고정된 길이고유하게 식별 가능한 값을 랜덤하게 출력한다.

반응형