네트워크보안에센셜

Chapter 03. 공개키 암호와 메시지 인증 - 3.1 메시지 인증 방법

영차영차33 2020. 9. 19. 19:19

Chapter 02. 대칭 암호와 메시지 기밀성Chapter 03. 공개키 암호와 메시지 인증 - 3.1 메시지 인증 방법

 

암호를 사용하여 적극적 공격에 대응하는 방법으로 메시지 인증 방법이 있다. 

데이터가 인증된다는 말은 데이터가 진짜이고 송신자라고 주장하는 근원지로부터 왔다는 것을 확신할 수 있다는 것을 의미한다. 

 

 

□ 관용 암호를 이용한 인증

  • 메시지가 오류 감지 코드와 순서 번호를 포함하는 방법
    - 수신자는 메시지가 변경되지 않고, 순서도 틀리지 않았음을 확신할 수 있다. 
  • 타임스탬프를 포함하는 방법
    - 메시지가 지나는 동안 소요되는 시간지연 이외에 고의적으로 지연되지 않았음을 확신할 수 있다. 

□ 메시지 암호화 없이 메시지 인증하기

 ㅇ 메시지 암호화 없는 메시지 인증이 필요한 경유

  1. 동일한 메시지를 다수의 수신자에게 브로드캐스트 하는 경우
  2. 메시지 교환을 할 때 한쪽이 과부화로 인하여 수신되는 메시지를 복호화할 수 없는 경우
  3. 컴퓨터프로그램을 평문인 채로 인증하는 경우 
    - 컴퓨터 프로그램을 매번 복호화 하지 않고 무결성을 확신할 수 있다. 

메시지 인증 코드(MAC) 

이미지 출처 : https://blog.naver.com/nttkak/20130240600

ㅇ 메시지 인증 코드 원리 

  1. A와 B가 비밀키를 공유한다. (공개키 암호 방식으로도 가능하다.) 
  2. A는 메시지와 키를 사용해 메시지 인증 코드를 계산한다. 
  3. A는 메시지와 코드를 B에게 전송한다. 
  4. B는 수신된 메시지에 동일한 키를 사용하여 인증 코드를 계산한다. 
  5. B는 계산한 인증 코드와 A로부터 받은 인증 코드를 비교한다. 

ㅇ 메시지 인증 코드를 이용하면 다음 사항이 가능하다. 

  1. 수신자는 메시지가 변경되지 않았음을 확신할 수 있다. 
  2. 수신자는 메시지가 송신자라고 주장하는 근원지에서 송신됨을 확신할 수 있다. 
  3. 메시지가 순서번호를 사용한다면 공격자는 순서번호를 성공적으로 변경할 수 없기 때문에 정확한 순서라는 것을 확신할 수 있다. 

ㅇ NIST 명세 FIPS PUB 113에서는 코드를 사용하는 알고리즘으로 DES 암호를 권장한다. 

 

 

 

일방향 해시 함수를 사용한 메시지 다이제스트 방법 

ㅇ 비밀키 또는 공개키로 암호화 하여 메시지를 전송하면 전체 메시지를 암호화 하는 방법에 비해 계산의 양을 줄일 수 있다는 장점이 있음에도 불구하고, 암호화를 전혀 하지 않는 기술이 다음과 같은 이유로 필요하다.

  1. 암호 소프트웨어가 속도가 매우 느리다. 
  2. 암호 장비 비용이 너무 비싸다.
  3. 작은 데이터블록 처리 시 초기화/실행 오버헤드에 상당 시간이 소요된다. 
  4. 암호 알고리즘의 수출 제한이 있다. (ex. DES는 수출 제한이 있다.)

=> 따라서 HASH함수를 사용하여 메시지 인증에 암호를 사용하지 않는 기술이 필요하다.

 

ㅇ HASH 함수를 사용한 알고리즘 

일방향 해시함수를 이용한 메시지 인증

ㅇ 일방향 해시함수를 이용한 메시지 인증 원리(그림 c. 비밀값 사용 참조)

  1. 송신자와 수신자는 비밀값 S를 공유하고 있다.
  2. 송신자는 [S|메시지]를 HASH함수에 적용하여 코드를 만든다. 
  3. 송신자는 [메시지|코드]를 수신자에게 전송한다. 
  4. 수신자는 S를 가지고 있기 때문에 코드를 계산할 수 있다. 
  5. 수신자가 계산한 코드와 A로부터 받은 코드를 비교한다.