정보보호이론 개요 (module 3)
*대칭키 암호 (Symmetric cryptography)
- 특징
1) 암호화에 사용하는 키 = 복호화에 사용하는 키
2) 송신자와 수신자 모두 동일한 키를 공유해야 함
3) 비밀키는 송신자와 수신자 이외에는 알지 못하도록 해야 함
4) 대규모 데이터의 빠른 암호화에 활용
- 종류 (데이터를 변환하는 단위에 따라 블록 암호와 스트림 암호로 분류한다.)
1) 블록 암호
: 고정된 크기의 블록 단위로 암호화/복호화
: 혼돈과 확산 모두가 적용된다.
: P-box, S-box, 그 밖의 구성요소들(XOR, Shift, Swap) 을 결합하여 설계한다.
: 여러 라운드를 반복함으로써 혼돈과 확산을 만족하도록 해야 한다.
2) 스트림 암호
: 평문을 1비트 단위로 암호화한다. (난수 열을 생성하여 비트 단위, 글자 단위로 암호화/복호화)
: 암호화 및 복호화의 속도 빠르다.
- 대칭키 암호의 키 분배 문제
1) N명의 사람이 서로 통신하기를 원할 경우, n(n-1)/2개의 대칭키가 필요하다.
2) N명의 그룹에서 각 사람은 n-1개의 키를 가지고 있으며, 그룹 내의 다른 사람에 대한 n-1개의 키를 기억해야 한다.
3) 안전한 키의 공유와 분배가 가능해야 한다.
- 대칭키 암호의 장점과 단점
1) 장점
연산이 매우 효율적이다.
키 생성 과정이 비교적 간단하다.
키 길이가 비교적 짧다.
알고리즘의 표준화가 잘 되어 있고 특허가 없다.
표준화된 대칭키 암호 알고리즘들은 매우 안전하다.
2) 단점
대규모 네트워크에 적용하기 어렵다.
키 분배가 매우 비효율적이다.
모든 키를 안전하게 관리해야 한다.
- 블록 암호의 운용모드
: 현대 블록 암호 중 가장 대표적인 AES는 고정 길이(8바이트, 16바이트) 블록을 기준으로 암호화 및 복호화를 수행한다.
: 그러나 실제 운용환경에서는 평문의 길이가 무척 길고 가변적이다.
: 임의의 길이의 데이터를 암호화하고 복호화하는 방법인 운용모드가 필요하다.
- 종류
ECB : 전자 코드북 모드
CBC : 암호 블록 체인 모드
CFB : 암호 피드백 모드
OFB : 출력 피드백 모드
CTR : 카운터 모드
*공개키 암호 (Asymmetric cryptography) = 비대칭키
- key point : 개인 우편함 원리를 암호 알고리즘에 적용한 새로운 형태의 암호기법
- 공개키 암호의 개요
: 암호화용 키와 복호화용 키가 다르다.
: 대칭키 암호기법에 비해 속도가 느리다. (약 1,000배)
: 긴 문서의 암호보다 대칭키 암호기법의 비밀키 암호에 사용한다.
: 공개키 암호화 시스템에서는 수신자의 개인키와 공개키가 활용된다!
- 공개키와 개인키
1) 공개키 : 누구나 이용할 수 있는 공개된 값
* 메시지 암호화에 사용 : 송신자는 수신자의 공개키를 이용하여 전달하고자 하는 메시지를 암호화한다.
*서명 검증에 사용 : 수신자는 송신자의 공개키를 이용하여 수신한 메시지의 서명값을 검증한다.
2) 개인키 : 개인이 소장하고 있는 비밀 값
* 메시지 복호화에 사용 : 송신자가 보낸 암호문을 복호화 할 때 사용하는 복호화키
* 서명 생성에 사용 : 수신자에게 보내는 메시지의 서명값을 생성할 때 사용하는 서명 키
*해시 함수와 메시지 인증코드 (MACs)
- 통신 상에서 발생할 수 있는 공격들
노출 : 암호키 가지고 있지 않은 사람에게 메시지 내용이 노출, 도청
트래픽 분석 : 통신 주체 사이의 어떤 트래픽 형태 발견 (연결주기, 사용시간, 메시지 개수 및 길이 등)
위장 : 부정한 출처로부터 나온 메시지를 네트워크 상에 삽입
내용 수정 : 삽입, 삭제, 전치, 수정을 포함한 메시지 내용의 변경
순서 수정 : 통신 상대방간의 메시지들의 순서 변경
시간 수정 : 메시지의 지연과 재전송
발신처 부인 : 발신자가 메시지의 전송 사실을 부인
수신처 부인 : 수신자가 메시지의 수신 사실을 부인
- 공격 대처방안
노출, 트래픽 분석 : 기밀성
위장, 내용수정, 순서수정, 시간수정 : 메시지 인증
발신처 부인 : 전자서명
수신처 부인 : 전자서명과 특별히 설계된 프로토콜들의 조합
- 메시지인증코드 (Message Authentication Code)
1) '메시지 인증'의 정의 : 메시지가 올바른 송신자로부터 온 것이다
2) '메시지 인증 코드'의 정의 : 메시지의 무결성을 확인하고, 메시지에 대한 인증을 위한 코드
3) 입력 : 메시지, 공유하는 키 / 출력 : 고정 비트 길이의 코드