-->

[암호학] 양방향 vs 단방향 암호화 (해시함수, 메시지 인증코드란)

양방향 암호화 vs 단방향 암호화

양방향 암호화암호화된 데이터에 대한 복호화가 가능한 암호화 방식을 말한다. 지난 포스팅에서 살펴본 대칭키, 공개키 암호화 방식이 양방향 암호화에 속한다. 

 

단방향 암호화는 양방향 암호화와는 다르게 암호화된 데이터에 대한 복호화가 불가능한 암호화 방식을 말한다. 대표적으로 해시(Hash)나 메시지 인증코드(MAC)가 있다.

 

 

일방향 해시함수(Hash)

일방향 해시함수는 임의의 길이 메시지로부터 고정길이의 해시값을 계산한다. 단방향 암호화이기 때문에 해시값으로부터 메시지를 역산할 수는 없으며 이것을 일방향성을 갖는다고 한다.

 

Hash, (출처: 구글 무료이미지 검색, 위키백과)

 

 

또한, 메시지가 다르면 해시값도 다르다는 특징이 있는데 해당 특징으로 인해 해시함수를 무결성을 확인하기 위한 방안으로 사용하기도 한다. 메시지가 1비트라도 변화했다면 해시값은 높은 확률로 다른값이여야 하기 때문이다. 만약, 2개의 다른 메시지가 같은 해시값을 갖는다면 이건 충돌(collision)이라고 한다.

 


임의의 길이 메시지로부터 고정된 길이의 해시값을 계산

고속 계산이 가능해야 함

일방향성을 가짐

메시지가 다르면 해시값도 다름

대표적인 알고리즘으로 MD5, SHA-256/512 등이 있음

 

 

메시지 인증코드(MAC, Message Authentication Code)

메시지 인증코드임의 길이의 메시지와 송수신자가 공유하는 키를 기초로 고정 길이의 출력값을 계산하는 함수로 출력값을 MAC이라고 부른다. 메시지 인증코드는 무결성을 확인(보낸 사람으로부터 메시지가 변조되지 않았는지)하고 메시지에 대한 인증(보낸사람이 알맞는 사람인지)을 할 때 사용된다.

 

아래 그림을 보면 알 수 있듯이, 메시지와 키를 사용해서 MAC 값을 구하고 송신자는 메시지와 MAC을 같이 보내게 된다. 수신자는 받은 메시지와 본인이 가지고 있는 키를 사용해 MAC 값을 계산해보고 바든 MAC 값과 일치하는지 확인하는 방식으로 무결성과 인증을 확인한다.

 

 

Message Authentication Code, (출처: 구글 무료이미지 검색, 위키백과)

 

댓글

Designed by JB FACTORY