agencies

암호학 기초 본문

Ⅲ. 정보보안

암호학 기초

agencies 2024. 3. 14. 19:00

정보시스템 보안의 3가지 기본 목표

- 기밀성 (confidentiality)

- 무결성 (integrity)

- 가용성 (availability)

 

security mechanisms

- 암호화

- 데이터 무결성

- 디지털 서명

- 출처 인증

- 통신 트래픽 은닉성 보장

- 안전한 경로 통제

- 데이터 내용의 익명성

- 접근 통제

* 시큐리티 매커니즘은 시큐리티의 목표를 달성하기 위한 것!

 

 

안전하게 데이터를 주고 받는 보안 통신을 하려면?

- 데이터 기밀성 : 인가 받은 사용자만 메시지를 읽을 수 있다.

데이터 무결성

- 메시지가 수정되지 않았음을 확인할 수 있다.

데이터 출처 인증

- 메시지의 출처와 내용이 수정되지 않았음을 확인할 수 있다.

데이터 부인방지

- 송신자가 메시지를 보낸 사실 그 내용을 부정할 수 없다.

접근 통제

- 승인된 사용자만 데이터/단말기에 접근해야 한다.


암호기술

통신 당사자 간 메시지 전달 과정을 보호하고 컴퓨터에 저장된 메시지를 보호하기 위한 수학적 기술

 

암호학 : 비밀코드를 만들거나 해독하는 학문

암호기술 : 비밀코드를 만드는 것

암호분석 : 비밀코드를 해독하는 것

암호 : 가장 포괄적인 용어

 

 

케르크호프스의 원리

* 실용적인 암호 설계의 6가지 원칙

1. 시스템은 수학적으로는 아니더라도 실질적으로 해독할 수 없어야 한다.

2. 비밀을 요구하지 않아야 하며 적의 손에 넘어가도 문제가 되지 않아야 한다.

3. 키를 전달하고 기억할 수 있어야 하며 통신원이 마음대로 키를 변경하거나 수정할 수 있어야 한다.

4. 전신 통신에 적용 가능해야 한다.

5. 휴대할 수 있어야 하며 여러 사람이 취급하거나 조작할 필요가 없어야한다.

6. 시스템은 사용하기 쉬워야 하며 사용자가 긴 규칙 목록을 알고 준수하도록 요구해서는 안된다.

 

보안강도란? 암호 알고리즘이나 시스템의 암호키 또는 해시함수의 취약섬을 찾아내는데 소요되는 작업량을 수치화 한 것!

(예) 112비트 : 2의 112승번의 계산을 해야 암호키 또는 암호 알고리즘의 취약섬을 알아낼 수 있음을 의미

 

 

 

암호기술의 분류

일방향 암호기술

해시함수 : 무결성 (MD5, SHA-2,3) / 무결성&인증 (Key-Hashed MAC)

 

양방향 암호기술

- 대칭키

스트림 암호기술 : 기밀성 (RC4)

블록 암호기술 : 기밀성&인증 (AES, SEED)

- 비대칭키

공개키 암호기술 : 기밀성&인증&부인방지 (DH, RSA, ECC, ELGamal)


해시(Hash)는 데이터의 무결성을 확인하는데 사용된다.

물리공간에서는?

- 문서에 직접 서명

- 문서와 서명이 물리적으로 결합

 

사이버공간에서는?

- 암호 기술을 사용 : 메시지 다이제스트

- 메시지와 메시지 다이제스트는 디지털 정보이므로 전자적으로 분리 가능

- 메시지 다이제스트는 변경되어서는 안된다

 

해시 함수는 다양한 길이의 메시지를 입력 받아

일정한 고정 길이 값으로 출력한다.

해시는 일방향(one-way) 수학 함수에 기반한다.

- 해시 값을 만드는 것은 쉽지만, 해시 값으로 원래의 값을 찾는 것은 매우 어렵다.

- 출력값 (메시지 다이제스트, 디지털 지문)

 

 

안전한 암호 해시함수란?

- 서로 다른 두 개의 메시지가 같은 해시 값을 만들 확률이 매우 낮다.

- 메시지의 내용이 변경되면 해시 값도 변경된다.

 

암호 해시함수의 3가지 기준 요건

- 프리이미지 저항성 (어떤 메시지 다이제스트가 주어졌을때 메시지 내용은 모르지만 같은 메시지 다이제스트를 갖는 메시지를 만들 수 있다)

- 제2 프리이미지 저항성 (어떤 메시지와 이것의 메시지다이제스트가 주어졌을때 같은 메시지 다이제스트를 갖도록 메시지를 변조할 수 있다)

※ 1번과 2번 차이 : 1번은 메시지의 내용은 모르나 다이제스트는 앎, 2번은 메시지의 내용과 다이제스트를 앎

충돌 저항성 : 공격자는 하나의 메시지 다이제스트에 대해 서로 다른 메시지를 선택할 수 있다.

 

 

비둘기 집 원리 (충돌 관련 설명)

- 만약에 n+1 마리의 비둘기가 n개의 비둘기 집에 들어가 있다면 적어도 한 비둘기 집에는 두마리의 비둘기가 들어있다는 뜻이다.

 

 

 

해시 함수 자체에는 송신자에 대한 유일한 식별 정보가 사용되지 않는다.

- 누구나 해시 함수를 이용해 해시 값을 만들 수 있다.

- 따라서 해시 값을 만드는 과정은 중간자 공격(man-in-the-middle attack)에 취약하다.

 

 

출처 인증 (origin authentication)

출처 인증과 무결성을 모두 보장하려면 비밀키 해시 메시지 인증 코드(HMAC)를 사용한다.

keyed-hash (비밀키를 메시지 입력에 함께 사용한다. SSL, IPsec, SSH에 사용됨)

 

HMAC은 메시지 인증에 사용된다.

- HMAC 값이 일치하면 상대방이 비밀키를 정당하게 갖고 있다고 생각할 수 있다.

- 송신자와 수신자만 비밀키를 알고 있어야 한다.

- 비밀키는 안전하게 사전에 공유되어야 한다.


잘 알려진 해시함수

 

 

해시 함수는 조작 또는 변경을 검출할 수 있지만, 거짓행세(인증/부인방지)는 검출하지 못한다.

그래서 인증과 부인방지 기술이 필요하다.

- 인증 : 메시지가 올바른 송신자로부터 온 것인지를 확인하는 것

- 부인방지 : 이 파일이 정말로 해당 사용자가 작성한 것인지를 확인하는 것

 

메시지 인증 코드로 해결 할 수 없는 문제

- 제 3자에게 증명하기

· A로부터 메시지를 받은 B가 이 메시지는 A가 보낸 것이다 라는 것을 제 3자인 C에게 증명할 수 있는가?

C가 검증을 하기 위해서는 B가 갖고 있는 키를 C에게 알려줘야 한다.

그런데 그 키는 A와 B 모두가 동일한 키를 가지고 있으므로 둘 중 누가 작성했는지 말할 수 없다.

 

- 부인방지

B가 MAC 값이 포함된 메시지를 받음으로써 이 메시지의 출처가 A임을 확신할 수 있다.

하지만 A가 전송 자체를 부정할 경우 제 3자에게 이 사실을 증명할 수 있을까?

메시지 인증 코드로는 부인 방지 불가

 

* 공개키 암호기술을 이용하는 디지털 서명 필요!

디지털 서명 : 해시함수와 공개키 암호기술을 이용