이번에는 인증에 관련된 내용을 공부해봅시다.
인증에 몇가지 요구사항이 있다.
메세지에는 명백한 송신지, 송신자가 있어야 한다.
메세지는 수정되어선 안된다.
가끔 메세지는 특정 시간 또는 주기적으로 전송된다.
메세지 인증에 대해 본격적으로 알아봅시다.
1. Authentication Using Conventional Encryption
다들 아는 알려진 암호화 알고리즘을 이용하여 인증을 하는 것이다.
오로지 송신자와 수신자만이 키를 공유한다.
에러 검출 코드, 타임 스탬프 그리고 시퀀스 넘버 등의 필드를 추가해 보낼 수 있다.
2. Message Authentication without Message Encryption
암호화 없이 메세지 인증을 하는 것이다.
각 메세지 마다 인증 테그가 생성되고 첨부된다.
3. MAC (Message Authentication Code)
MAC주소 할 때 MAC이 아니다. 메세지 인증 코드라는 뜻을 가진 것.
메세지에 붙여지는 작은 데이터 블록을 생성하기 위해 비밀키를 이용하는 것이다.
이 기술을 이용하면 전송되는 메세지의 무결성과 인증이 가능하다.
보통 MAC = F( K, M) 이라고 표현 되는데,
K는 당연히 공유되는 키 이고, M은 메세지 이다.
과정을 보면, 별거 없다.
일단 처음에 말했듯이, 송신, 수신측 모두 키를 공유하고 있어야 한다.
1. 송신자는 키를 이용해 평문 메세지를 MAC 알고리즘에 집어넣어 일정한 MAC을 얻는다.
2. 얻은 MAC을 원문 메세지에 붙여서 전송한다.
3. 수신측은 MAC과 메세지를 분리하는 작업을 한다.
4. 분리된 MAC알고리즘의 입력에 키와 원문 메세지를 넣어 MAC이 동일한지 확인한다.
5. 인증완료
다음은 해시함수를 돌린 MAC을 이용한 메세지 인증을 알아보자.
4. Message Authentication using hashed MAC
그림 부터 보자.
위에 일반 MAC과 다른 점이 있다면, 뭐 단방향 해시함수를 사용하는 것이지.
해시는 나중에 자세히 설명을 해줄 거긴 하지만 간단히 말하자면,
임의의 크기 메세지를 받아서 일정한 크기의 메세지 다이제스트 (Message Digest)를 출력하는 함수이다.
단방향이란 뜻은 암호화만 되고 복호화는 불가능하다는 것을 의미한다.
종류가 3가지 정도 있다.
a. 일반적인 해시함수를 사용한 MAC 인증
b. 공개키를 이용한 해시함수를 사용한 MAC 인증(?)
c. 비밀키를 이용한 해시함수를 사용한 MAC 인증
총 3가지 인데, a와 b는 과정이 비슷해서 같이 설명하고,
c는 HMAC 이라는 개념이 나올 때 다시한번 자세히 설명을 하겠다.
1. 일방향 해시함수의 input으로 메세지를 집어넣고 일정한 메세지 다이제스트(MD라고 하겠따)를 구한다.
2. MD를 DES나 IDEA 같은 대칭키 암호 알고리즘으로 암호화 하여 E(MD)를 구하고 그걸 메세지에 갖다 붙이고 전송한다.
3. 일단 메세지와 E(MD)를 분리하고 메세지를 다시 해쉬함수에 돌려 MD를 구하고, E(MD)를 복호화 시켜 비교 해야 한다. (왜나하면, 일방향 해시함수 이므로 복호화가 불가능하기 때문에 직접다시 돌려서 값을 비교해야함)
4. 인증 완료
'IT 그리고 정보보안 > Knowledge base' 카테고리의 다른 글
HMAC 인증 (Hashed Message Authentication Code) (0) | 2021.04.16 |
---|---|
해시 함수 (HASH Functions) (0) | 2021.04.16 |
공개키의 분배 (Public-Key Distribution) (0) | 2021.04.16 |
RSA (Rivest, Shamir, and Adleman) 알고리즘 (0) | 2021.04.16 |
공개키 암호 (Public-Key Cryptography) (0) | 2021.04.16 |