암호란?
암호란 어떤 비밀 정보를 다른 사람이 판독하지 못하게 변형하여 감추는 것
우리가 어떤 정보를 누군가에게 전달할 때 암호화 하지 않으면 데이터의 변형이나 중간 탈취를 당할 가능성이 있다.
암호화 & 복호화
암호는 일반적으로 ‘암호화'와 ‘복호화' 과정을 거치는데 두 과정의 의미는 아래와 같다.
- 암호화 : 해독이 가능한 평문을 판독하지 못하도록 암호문으로 바꾸는 행위
- 복호화 : 해독이 어려운 암호문을 판독이 가능한 평문으로 복구
출처 : https://raonsecure.raonctf.com/essential/study/web/cryptography
양방향 & 일방향
암호는 다양한 유형과 분류가 있는데 크게 ‘양방향 암호'와 ‘일방향 암호'로 구분할 수 있다.
일반적으로 두 차이는 복호화 과정을 거치냐 안거치냐로 구분할 수 있다.
- 양방향 암호 : 평문을 암호문으로 암호화하고 다시 복호화 해서 평문으로 바꿀 수 있는 암호방식
- 일방향 암호 : 평문을 암호문으로 암호화하고 다시 평문으로 복호화 할 수 없는 암호방식
이미지 출처 : https://auth0.com/blog/hashing-passwords-one-way-road-to-security/
처음에 이 내용을 읽었을 때 ‘암호를 다시 해독할 수 없으면.. 무슨 의미가 있지?’ 라는 생각을 했었지만,
블록체인 기술에서 일방향 암호는 매우 중요한 기술이라는 것을 알게되었다.
일단 양방향 암호에 대해서 알아보자.
양방향 암호 - 비대칭키 암호 기술
점점 내용이 어려워지기 시작한다…
암호는 ‘양방향 암호'와 ‘일방향 암호'로 구분된다고 했는데, 양방향 암호는 또 ‘대칭키 암호’와 ‘비대칭키 암호'로 나뉜다고 한다.
쉽게 설명하면
- 대칭키 암호 = 하나의 키(key)를 이용하여 암호화와 복호화를 하는 암호방식
- 비대칭키 암호 = 쌍으로 구성된 두 개의 키로 각각 암호화 복호화 할 수 있는 암호방식
자 여기서 비대칭키는 는 쌍으로 구성된 두 개의 키로 나눠져 있다고 하는데 이를 ‘개인키'와 ‘공개키'라고 한다.
- 개인키 = 외부에 절대 공개하면 안 되고 반드시 개인만 보관해야하는 키
- 공개키 = 외부에 공개되어 누구나 접근 및 이용 가능한 키
비대칭키에 대한 이해는 아래 이미지를 보면 조금 더 쉬울 것 같다.
비대칭키는
- 개인이 한쌍의 키를 발행하고 그 중 공개키를 송신자에게 전달한다.
- 그 후 송신자는 공개키를 이용해 평문을 암호화 하여 전송하고
- 이 암호문이 수신자에게 전달되면 수신자는 공개키와 한 쌍을 이루는 개인키를 이용하여 복호화하는 과정을 가진다.
이는 개인키를 소유한 사람만 암호문을 해독 할 수 있다는 것이다.
비대칭키를 활용하는 방식 중 가장 대표적인 예시가 우리가 이전에 자주 사용했던 ‘공인인증서' 방식이다.
일방향 암호 - 해시(Hash)
이 책에서 해시(Hash)라는 단어를 모를 수 있는 사람들을 위해서 해시의 어원부터 거슬러 올라간다.
해시는 잘게 다진 고기, 감자, 양파 등을 이용한 요리이며, 어원은 ‘잘게 자른, 다진'을 의미하는 ‘Hacher(프랑스어)’에서 유래한 것임을 알 수 있다.
양방향 암호와 달리 일방향 암호는 평문을 암호화 하여 해시함수로 변환하면 다시 평문으로 복호화 할 수 없다.
마치 해시(Hash)의 어원처럼 고기를 다진 후에 다시 고기로 되돌릴 수 없는 것과 같다.
해시의 특징
해시를 이해하기 위해 간단한 예시를 들어보자면 우리 나라의 주민등록번호로 이해해보자
우리나라에서 국민으로 태어나면 13자리로 구성된 주민등록번호가 부여된다.
이때 주민등록번호에는 몇 가지 특징이 있다.
- 13자리의 고정된 길이가 랜덤값으로 출력됨
- 출력된 값으로 입력값(대상)을 유추할 수 없음
- 입력값(대상)의 사소한 변경에도 출력값은 바뀜
- ex) 홍길동의 주민등록번호와 홈길동의 주민등록번호는 자음 하나의 차이이지만 주민번호가 달라짐
위 내용은 해시를 이해하기 위해서 예시로 든 내용이고, 실질적인 개념으로 정리하자면 ‘해시함수는 어떤 데이터를 입력해도 고정된 길이의 고유하게 식별 가능한 값을 랜덤하게 출력한다.
'Kor > Blockchain' 카테고리의 다른 글
블록체인 프로젝트 기획 경험기 (1) - Experience planning a blockchain project (0) | 2024.04.17 |
---|---|
블록체인 브릿지: 블록체인 간의 연결 다리 (0) | 2023.10.25 |
Starbucks Odyssey - Starbucks의 Metaverse 전략 (0) | 2023.08.21 |
암호기술과 블록체인 (2) - 머클트리와 블록체인 (0) | 2022.07.21 |
Wallet과 트레블룰? (0) | 2022.07.19 |