암호학 - 암호문, 마스킹, 해시

업데이트:

정보보안기사를 공부하며 배웠던 암호학 단원을 잊어먹기전에 정리해두고자 한다.

암호학이란

정보를 보호하기 위한 언어학적 및 수학적 방법론 (wikipedia 피셜)

어떤 분야던 개요 단계에서 그 학문의 역사를 배우게 된다.
컴퓨터 개론에서 컴퓨터의 역사를 배울 땐 책상에 누워 디비 잤는데, 암호학의 역사는 천재들의 치열한 두뇌 공방전에 대한 이야기이기 때문에 재밌는 소설을 보는 듯한 기분이 든다.

하지만 오늘 정리하고자 하는 것은 암호학의 역사가 아닌, 이론적이고 실용적인 측면에서의 암호학이다.
암호기술과 관련한 역사가 궁금하다면 KISA에서 작성한 아티클을 보자.

평문과 암호문

평문은 암호화가 이루어지기 전 원본 메시지이고, 암호문은 평문이 무엇인가로 암호화된 후의 메시지이다.
암호학에서는 평문을 P(Plain Text)PyoungMoon 라고 하고, 암호문을 C(Cipher Text)로 줄여 이야기한다.

혼돈과 확산

암호화를 하는 데에는 ‘혼돈’과 ‘확산’이 필수적이다.
혼돈(Confusion)은 암호문과 평문의 상관 관계를 숨기는 것.
확산(Diffusion)은 통계적 성질을 암호문 전반에 퍼뜨려 숨기는 것이다.
이게 무슨 소릴까?

P = ‘I LOVE JIAE SEO’ 라고 하자.
이 평문을 바꾸어, ‘I LOVA JIEA SAO’ 로 만들었다.
잘 보면 E를 A로, A를 E로 변경했는데, 이처럼 평문을 변경해 혼돈을 구현할 수 있다.

다시, P = ‘I LOVE JIAE SEO’ 라고 하자.
이 평문을 바꾸어, ‘I EVOL EAIJ OES’ 로 만들었다.
잘 보면 각 단어의 스펠 순서를 바꿨는데, 이처럼 평문 텍스트의 위치를 변경해 확산을 구현할 수 있다.

이것은 또한 암호학에서 자주 등장하는 치환(Substitution)전치(Transposition) 의 개념이다.
혼돈을 구현하는 방법 중 치환이 있고, 확산을 구현하는 방법 중 전치가 있는 것이다.

암호화와 해싱

암호화와 해싱 관련해, 배우지 않았다면 사람들이 헷갈려하는 내용이 있다.
바로 암호화와 해싱의 차이이다.

암호화 (양방향 암호화)

암호화란 남이 못알아보고, 나는 알아볼 수 있는 것이 핵심이다.
복호화 과정을 통해 원본 데이터가 적시에 무결하게 제공되어야 한다.

해싱 (단방향 암호화)

해싱이란 남도 못알아보고, 나도 못알아보는 것이 핵심이다.
평문1, 평문2가 있다고 하자. 두 평문이 해싱이라고 부르는 과정을 거치면 결과1 결과2가 생성된다.

이 경우 나도 너도 아무도 원본 데이터를 복구할 수 없지만, 두 해싱 결과물이 다르므로 1번 원본과 2번 원본이 다르다는 것 은 알 수 있다. (해시충돌이 발생하지 않는 경우라면)

원본을 복구할 수 없고 구분만 가능하다는 특징을 활용해, 서버가 비밀번호를 저장할 때 해싱 과정을 거쳐 저장한 후 로그인을 검증할 때, 비밀번호가 맞는지 틀리는지 여부를 확인하는 용도로 자주 사용한다.

마스킹

마스킹이란 남도 못알아보고, 나도 못알아보고, 예수님도 못알아보는게 핵심이다.
‘I LOVE JIAE SEO’ 평문을 * 문자로 마스킹한다고 하면 결과는 ‘*******’ 이다.
예수님도 이건 못알아본다.

댓글남기기