Linux 분류
정보보안 기사 필기 (2)
컨텐츠 정보
- 10,573 조회
- 0 추천
- 목록
본문
> 이글을 유지보수 중입니다.
> PDF Viewer가 서버에 무리를 주어 Markdown으로 convertin 합니다.
# 정보보안 기사 필기
## PART 01. 정보보호 개요
### 01. 정보보호관리의 개념 (출제빈도 1.3%)
[정보보호(Information Security)]
•정의
- 정보의 수집, 가공, 저장, 검색, 송신, 수신 중에 발생하는 정보의 훼손, 변조, 유출 등을 방지하기 위한 관리적, 기술적 수단, 또는 그러한 수단으로 이루어지는 행위
- 기밀성, 무결성, 가용성, 인증성, 부인방지를 보장하기 위해 기술적 ∙ 물리적 ∙ 관리적 보호대책을 강구하는 것
•3대 목표 + 속성(서비스)
1. 기밀성(Confidentiality) : 오직 인가된 사람 ∙ 프로세스 ∙ 시스템만이 알 필요성(Need-to-know)에 근거하여 시스템에 접근 할 수 있어야 한다.
2. 무결성(Integrity) : 정보의 내용이 무단으로 생성 또는 변경되거나 삭제되지 않도록 보호되어야 한다.
3. 가용성(Availability) : 시스템이 지체 없이 동작하고, 자원이 필요할 때 권한이 있는 사용자가 이용할 수 있어야한다.
4. 인증(Authentication) : 통신 대상에 대한 인증, 데이터의 출처에 대한 인증
5. 부인방지(Non-repudiation) : 전송이나 수신한 사실을 부인하지 못하도록 하는 것
6. 접근제어(Access Control)
### [보안 공격(Security Attack)]
| Attack |Passive/Active | Threatening |
| ------------ | ------------ | ------------ |
|Snooping 트래픽 분석(Traffic Analysis) |Passive(소극적 공격) | Confidentiality |
| Modification(변경) Masquerading(가장) Replaying(재연, 재전송)Repudiation(부인) | Active(적극적 공격) | Integrity |
| Denial of Servic | Active | Availability |
# PART 02. 암호학
# 02. 암호학 개요 (출제빈도 2.1%)
[암호화와 복호화]
* 평문(Message, Plain-text) : M, P
* 암호문(Cypher-text) : C
* 암호화(Encryption) 알고리즘 : E
* 복호화(Decryption) 알고리즘 : D
* 키(Key) : K
•암호화, 복호화의 기호적 표현
- 암호화 : C = E(K,P) / C = ??(P)
- 복호화 : P = D(K,C) / P = ??(C)
[치환 암호와 전치 암호]
•치환 암호(대치 암호, Substitution Cipher) : 평문의 문자를 다른 문자로 교환(대체)하는 암호기법
•전치 암호(Transposition) : 문자 집합 내부에서 자리를 바꾸는(재배열) 암호기법. 평문의 문자 집합과 암호문의 문자 집합이 일
대일 대응 규칙을 갖는다.
[블록 암호와 스트림 암호]
•블록 암호(Block Cipher) : 평문을 특정 비트의 블록으로 잘라낸 후 암호화 알고리즘을 적용하여 암호화. ex) DES, AES
•스트림 암호(Stream Cipher)
- 데이터 흐름(스트림)을 순차적으로 처리해가는 암호 알고리즘. ex) LFSR
- 데이터 흐름을 순차적으로 처리하기 때문에 내부 상태를 가지고 있다.
- 긴 주기와 높은 선형 복잡도가 요구된다.
- 속도는 블록 암호화 방식보다 빠르지만 암호화 강도가 약하므로 이동 통신 등의 무선 데이터 보호에 적합.
[위치에 따른 암호화 구분]
•링크 암호화(Link Encryption) : 통신 링크 양쪽 끝단에 암호화 장치를 놓는 것. 대형 네트워크에서 사용하면 필요한 암호화 장
치 수가 많아지고, 중간 노드에서 데이터가 평문으로 노출된다는 단점이 있다.
•종단간 암호화(End-to-End Encryption) : 두 종단 시스템에서 수행됨. 트래픽 분석에는 취약하지만 링크 암호화 방식보다 높은
수준의 보안 서비스를 제공한다.
[주요 암호 기술]
•대칭키 암호와 비대칭키 암호
- 대칭키 암호(Symmetric Cryptography) : ’암호화키 = 복호화키‘인 암호 알고리즘 방식
- 비대칭키 암호(Asymmetric Cryptography) : ’암호화키 ≠ 복호화키’인 암호 알고리즘 방식
•하이브리드 암호 시스템 : 대칭키 암호 + 비대칭키 암호
•일방향 해시함수(one-way hash function)
•메시지 인증 코드(MAC, Message Authentication Code) : 무결성과 인증을 제공
•전자서명 : 무결성을 확인하고, 인증과 부인방지를 제공
•의사난수 생성기(PRNG, Pseudo Random Number Generator) : 키 생성의 역할
## 02. 암호학 개요
[암호 분석(암호 해독) 분류]
•암호문 단독 공격(COA, Cipher-text Only Attack) : 암호문 C만을 갖고 평문 P나 키 K를 찾아내는 방법.
•기지 평문 공격(KPA, Known Plain-text Attack) : 일정량의 평문 P에 대응하는 암호문 C를 알고 있는 상태에서 해독하는 방법.
암호문 C와 평문 P의 관계로부터 키 K나 평문 P를 추정하여 해독하는 방법
•선택 평문 공격(CPA, Chosen Plain-text Attack) : 송신자(암호기)에 접근이 가능하여 평문 P를 선택하면 그 평문 P에 대한 암호
문 C를 얻어내 해독하는 방법.
•선택 암호문 공격(CCA, Chosen Cypher-text Attack) : 수신자(복호기)에 접근이 가능하여 암호문 C를 선택하면 그 암호문 C에
대한 평문 P를 얻어내 암호를 해독하는 방법
•COA → KPA → CPA, CCA 순서로 공격자의 능력이 향상. 따라서 높은 단계의 공격자에게 안전한 암호 방식을 설계하는 것이 일반
적인 암호 설계 방향이다.
[암호 알고리즘의 안정성 평가]
- CC(Common Criteria) : 정보보호시스템에 대한 공통 평가 기준
- CMVP(Cryptographic Module Validation Program) : 미국 NIST와 캐나다 CSE가 개발한 암호 모듈의 안전성 검증을 위한 프로그
램. 암호기술의 구현 적합성 평가, 암호키 운용 및 관리, 물리적 보안으로 크게 나뉘어 평가를 수행
[디지털 저작권 관리]
•스테가노그래피(Steganography) : 메시지 내용이 아닌 메시지 자체를 은폐하는 기법
•워터마크(Watermark) : 원본의 내용을 왜곡하지 않는 선에서 저작권 정보를 디지털 콘텐츠에 삽입하는 기법
- 강한(강성) 워터마킹 : 공격을 받아도 쉽게 파괴되거나 손상을 입지 않음
- 약한(연성) 워터마킹 : 공격을 받으면 쉽게 파괴되거나 손상을 입음
•핑거프린팅(Fingerprinting)
- 디지털 콘텐츠를 구매할 때 구매자의 정보를 삽입하는 기법
- 불법 배포 발견 시 최초의 배포자를 추적하기 위한 기술
•디지털 저작권 관리(DRM, Digital Rights Management)
- 디지털 콘텐츠 소유자가 자신의 콘텐츠에 대한 접근을 자신 또는 자신의 위임자가 지정하는 다양한 방식으로 제어할 수 있게
하는 기술적인 방법
- 구성 요소
1. 메타데이터(Metadata) : 콘텐츠 생명주기 범위 내에서 관리되어야 할 각종 데이터의 구조 및 정보
2. 패키저(Packager) : 보호 대상인 콘텐츠를 메타데이터와 함께 Secure Container 포맷으로 패키징 하는 모듈
3. 시큐어 컨테이너(Secure Container) : DRM의 보호 범위 내에서 유통되는 콘텐츠의 배포 단위
4. 식별자(Identifier) : 콘텐츠를 식별하기 위한 식별자
5. DRM 제어기(DRM Controller) : 콘텐츠를 이용하는 사용자의 PC 또는 디바이스 플랫폼에서 콘텐츠가 라이선스에 명시된 범
위 내에서 지속적으로 보호될 수 있도록 프로세스를 제어
- DRM이 적용된 기술
(1) PKI 기반의 불법복제 방지 기술 : 콘텐츠를 소비자의 암호화 키를 이용하여 패키징 함으로써 이를 다른 사람들이 이용할
수 없도록 하는 방식. 콘텐츠 배포 서버의 부담이 크다는 단점이 있어 디지털 콘텐츠 유통에 적합하지 않음
(2) DOI(Digital Object Identifier) 기반의 저작권 보호 기술 : 저작권 관리 정보를 바탕으로 저작권 인증을 부여하는 기술. 불
법복제 및 불법사용 방지 기능이 제공되지 않아 적극적인 저작권 보호가 불가능
# 03. 대칭키 암호 (출제빈도 3.3%)
•대칭키 암호 = 관용 암호 = 공통키 암호 = 비밀키 암호
[블록 암호]
•확산과 혼돈
- Shannon이 정의한 개념
- 확산(diffusion) : 암호문 C와 평문 P 사이의 관계를 숨기는 것. C ↔ P
- 혼돈(confusion) : 암호문 C와 키 K의 관계를 숨기는 것. C ↔ K
•P-box (전치 장치, Permutation box) ← 확산 제공
- 단순 P-box : n 비트를 입력 받아 n 비트를 출력, 유일하게 역함수가 존재
- 축소 P-box : n 비트를 입력 받아 m 비트를 출력 (n > m)
- 확장 P-box : n 비트를 입력 받아 m 비트를 출력 (n < m)
•S-box (치환 장치, Substitution box) ← 혼돈 제공
- 역함수가 존재하는 S-box : 입력 비트 = 출력 비트
- 역함수가 존재하지 않는 S-box : 입력 비트 ≠ 출력 비트
•Feistel 암호 구조
- 암호 강도를 결정짓는 요소 : 평문 M 의 길이, 키 K의 길이, 라운드의 수
- 암호화 과정 = 복호화 과정
•SPN 암호 구조
- Substitution-Permutation Network
- S-box, P-box 반복적으로 사용하는 구조
## 03. 대칭키 암호
[블록암호에 대한 공격]
•차분 분석 : 평문의 한 비트를 변경하면 암호문은 전혀 다른 비트 패턴으로 변화하므로, 이 변화 형태를 분석하는 공격
•선형 분석 : 평문 비트와 암호문 비트를 일부 XOR하는 과정으로 근사적 선형 관계를 찾는 방법.
•전수 공격 : 가능한 모든 경우에 대해 공격하는 방법. 경우의 수가 적은 경우 효율적인 방법
•통계적 분석 : 통계적인 자료를 통해 해독하는 방법
•수학적 분석 : 통계적 분석을 포함하여 수학적 이론을 이용하여 해독하는 방법
[스트림 암호]
•동기식 스트림 암호
- 키 스트림은 평문 or 암호문 스트림과 독립적이다.
- 암호화, 복호화에서 상호 동기화가 필수적이며, 전송도중 변조되어도 후속 암호문에 오류의 영향이 없다.
- One-Time Pad
1) 암호화를 수행할 때마다 랜덤하게 선택된 키 스트림을 사용
2) 이론적으로 해독이 불가능하다는 것이 Shannon에 의해 증명됨.
- 귀환 시프트 레지스터 (Feedback Shift Register, FSR)
- 선형 귀환 시프트 레지스터 (Linear Feedback Shift Register, LFSR) : 많은 스트림 암호가 이를 이용하며, 선형성 때문에 공격
에 취약
- 비선형 귀환 시프트 레지스터 (Non-Linear Feedback Shift Register, NLFSR)
•비동기식(자기 동기식) 스트림 암호
- 키 스트림은 평문 or 암호문 스트림에 종속적이다.
- 암호문이 전송도중 변경되어도 자기 동기화가 가능
- 변조된 암호문이 후속 암호문 복호화에 사용되지 않아 후속 암호문에 오류의 영향이 없다.
[DES(Data Encryption Standard)]
•평문 = 64bits / 키 = 56bit (오류검출비트 8bit 제외) / 라운드 횟수 = 16회
•두 개의 P-box와 16개의 Feistel 라운드 함수로 구성
•키 생성기에 의해 48bit의 라운드 키가 생성
•DES 구조
•DES 함수 : 확장 P-box → 라운드 키와 XOR 연산 → 8개의 S-box → 단순 P-box로 구성되어 있다.
- S-Box는 비선형 함수이며, 혼돈을 제공
•DES의 취약점 : 56bits의 작은 키
[3DES(3중 DES)]
•H/W에서 효율적이지만 S/W에서 비효율적
•처리 속도가 느리다.
•두 개의 키를 갖는 3DES
- 암호화 - 복호화 - 암호화 과정을 거쳐서 암호문이 만들어진다.
•세 개의 키를 갖는 3DES
- 두 개의 키를 갖는 3DES에 대한 기지평문공격(KPA) 가능성 때문에 사용
•3DES에서 모든 키를 동일하게 하면, 보통의 DES가 된다.
[AES(Advanced Encryption Standard)]
•NIST(미국 국립기술표준원)에서 공모한 암호 알고리즘으로, 라인달(Rijndael)이 채택되었다.
•non-Feistel 알고리즘, SPN 구조.
•키의 길이에 따라 라운드가 바뀐다.
Key Size
128bits
192bits
256bits
Round
10
12
14
•AES 단계
0) 평문을 byte 단위로 나눔
1) SubBytes (바이트 치환) : 바이트 단위로 치환
2) ShiftRows (행의 이동) : 행 단위로 순환 시프트 수행
3) MixColums (열의 혼합) : 열 단위로 혼합(Mixing). 높은 확산을 제공. 마지막 라운드에서 수행 X
4) AddRoundKey : 라운드 키와 XOR 연산
### [기타 대칭키 암호 알고리즘]
•IDEA (International Data Encryption Algorithm)
- DES를 대체하기 위한 알고리즘
- K = 128bits, M = 64bits, 블록암호 구조
- 8라운드. 마지막에 한 번 더 키를 적용시킴.
- DES보다 안전하며, PGP(Pretty Good Privacy)의 암호 알고리즘으로 사용되고 있다.
•RC5
- 미국에서 개발, RSA의 Rivest가 개발. (Feistel 구조)
- 비교적 간단한 연산으로 빠른 암호화와 복호화 기능을 제공.
- 모든 H/W에 적합
•Skipjack
- 음성을 암호화하는데 주로 사용
•SEED
- 한국에서 개발된 암호 알고리즘 (Feistel 구조)
- K = 128bits, M = 128bits, Round = 16
- 2009년에 키가 256bits로 확장되어 더 강력한 암호화 기능 제공 (SEED-256)
•ARIA
- NSRI(국가보안기술연구소, 한국) 주도로 개발된 알고리즘 (SPN 구조)
- K = 128/192/256bits, M = 128bits
•HIGHT
- 저전력, 경량화를 요구하는 컴퓨팅 환경에서 기밀성을 제공하기 위해 개발된 알고리즘
- M = 64bits
•LEA
- 128bits 경량 고속 블록 암호 알고리즘
- 다양한 정보보호 서비스에서 대용량 데이터를 빠르게 처리하거나 스마트폰 보안, 사물 인터넷(IoT) 등 저전력 암호화에 사용
가능
•Feistel 구조와 SPN 구조 알고리즘 분류
(1) Feistel 구조
- DES, RC5, SEED, LOKI, CAST, Blowfish, MISTY, Twofish, Mars 등
(2) SPN 구조
- Rijndael(AES), ARIA, CRYPTON. SAFER, SHARK, Square 등
## [블록 암호 사용 방식]
이름
특징
암호모드
ECB모드
(Electric CodeBook)
∙ 가장 간단하고 빠르며, 병렬 처리 가능
∙ 평문 M의 크기가 블록 크기의 배수가 아니라면, padding이 필요.
∙ ?? = ?? 이면 ?? = ?? 이다.
블록암호
(권장X)
CBC모드
(Cipher Block Chaining)
∙ 복호화 시 병렬처리가 가능하지만 암호화 시에는 병렬처리 불가능
∙ 첫 번째 평문 블록 암호화시 이전 암호문이 없으므로, 초기 벡터(IV, Initialization
Vector)가 사용된다.
∙ 암호화 할 때 하나의 평문 에러 발생 시, 이후의 모든 암호문에 에러가 발생한다.
∙ 복호화 할 때 하나의 암호문 에러 발생 시, 두 개의 평문에 에러가 발생한다.
블록암호
(Practice
Crypto-
graphy 권장)
CFB모드
(Cipher FeedBack)
∙ 어떤 블록 암호도 스트림 암호(비동기식)로 바꿀 수 있다. → padding이 필요 없다.
∙ 복호화 시에도 암호화 함수 사용.
∙ 암호화, 복호화 시 블록 암호의 암호화 함수를 이용
스트림암호
(비동기식)
OFB모드
(Output Feedback)
∙ 암호문 C에서 비트 손실이 발생하면 그 다음에 오는 평문은 모두 에러가 발생하기
때문에 동기를 새로 맞추어야 한다.
∙ IV가 바뀌면 암호문이 모두 바뀜
∙ 잡음이 있는 채널상의 스트림암호에 많이 사용한다.
∙ 복호화 시에도 암호화 함수 사용.
스트림암호
(동기식)
CTR모드
(CounTeR)
∙ ECB모드처럼 독립적으로 암호화/복호화를 수행한다.
∙ 복호화 시에도 암호화 함수 사용.
∙ ATM 보안, IPsec 보안에 사용
스트림암호
(Practice
Crypto-
graphy 권장)
## 04. 비대칭키 암호 (출제빈도 3.6%)
[대칭키 암호의 키 배송 문제 해결 방법]
### 1. 키 사전 공유
- 키 관리기관(Trusted Authority, TA)이 사전에 사용자들에게 비밀 경로를 통하여 키를 전달
- 많은 키가 필요. (각 사용자별로 n-1개, TA는
?(?−1)
2
개)
### 2. 온라인 키 분배
- 암호 통신이 필요할 때마다 키 배포 센터(Key Distribution Center, KDC = TA)에서 키를 전달
- KDC에서 통신하는 사용자의 키로 세션키 K를 암호화해서 전달. 각 사용자는 자신의 키로 복호화해서 세션키 K를 얻어 메시지
/암호문을 암호화/복호화한다.
- 암호 통신이 끝난 후, 사용한 세션키 K를 삭제
- KDC는 n개의 키, 각 사용자들은 자신의 키 1개만 가진다.
### 3. Diffie-Hellman 키 교환
- 유한체상의 이산대수 문제(Discrete Logarithm Problem, DLP)를 풀기 어렵다는 사실에 기반
- 키 교환(계산) 절차 (송신자:A/수신자:B)
1) A와 B는 매우 큰 소수 p와 q를 선택한다. (p, q : 공개 / x, y : 비밀 / ?1 , ?2 은 노출돼도 상관없음)
2) A는 임의의 큰 수 x를 0 ≤ x ≤ p − 1 범위 내에서 선택하고, ?1 = ?? mod p 를 계산.
3) B는 임의의 큰 수 y를 0 ≤ y ≤ p − 1 범위 내에서 선택하고, ?2 = ?? mod p 를 계산.
4) A와 B는 서로에게 ?1 , ?2를 전달한다.
5) A는 K = (?2)? mod p 를 계산해서 K를 얻는다.
6) B는 K = (?1)? mod p 를 계산해서 K를 얻는다.
- 공격 기법
1) 이산대수 공격 : ?1 , ?2 를 도청자가 가로채 x, y를 구하게 되면 K를 알아 낼 수 있다.
2) 중간자 공격(Man-In-The-Middle Attack, MITM) : 인증단계가 없어서 이 공격에 취약.
→ 전자서명과 공개키 인증서를 이용해서 막을 수 있다.
→ 국-대-국(STS, Station-To-Station) 프로토콜 : DH에 기반. 세션키를 만들기 위해 공개키 인증서를 이용한 전자서명을 사
용하여 MITM 공격을 방지
3) DoS 공격 : DH의 계산이 복잡한 것을 이용하여 공격 대상 서버에 IP 스푸핑 등을 통해 위조한 키 생성 요청을 동시에 다수
요청하여 키 생성 시간으로 인해 서버를 마비시키는 공격
→ 키 생성 요청자를 확인하기 위한 쿠키(cookie)를 사용함으로써 방지
### 4. 공개키 암호 사용으로 해결
[공개키 암호]
•대칭키 암호 : 평문을 복잡한 형태로 변환하여 기밀성 유지
•공개키 암호 : 수학적으로 해결하기 곤란한 문제를 기반으로 기밀성 유지
•대칭키 암호 vs 공개키 암호에서 어떤 것이 더 안전하다고 말할 수 없다.
•공개키 암호에서는 암호화키와 복호화키가 분리되어 있다.
•두 개의 키는 서로 수학적 관계이기 때문에 각각 별개로 만들 수 없다.
## [RSA(Rivest-Shamir-Adleman) 암호시스템]
•공개키 암호 알고리즘, 세계적으로 널리 인정되는 표준이다.
•인수분해 문제(Prime factorization)에 근거.
•암호화뿐만 아니라 전자서명의 용도로 사용된다.
•암호화/복호화
- e : 공개 / d : 비밀
- 암호화 : C = M? mod n
- 복호화 : M = C? mod n
•키 생성 알고리즘 (공개 : e, n / 비밀 : p, q, d, Φ(n))
1. 서로 다른 소수 p와 q를 선택
2. N = p × q 계산
3. Φ(N) = (p − 1)(q − 1) 계산
4. Φ(N) 보다 작고, Φ(N)과 서로소인 정수 e를 찾는다.
5. de ≡ 1 (mod Φ(N)) 을 만족하는 정수 d를 구한다.
→ 공개키 : (e, n) / 비밀키 : (d, n)
•p, q, e, d 조건
- p와 q는 거의 같은 크기이고 최소 512bits가 되어야 한다. -> N은 최소 1024bits
- p − 1과 q − 1은 큰 소인수를 갖는다.
- p − 1과 q − 1의 최대공약수는 작은 수이다.
- d와 n은 거의 같은 크기이다.
•RSA 알고리즘의 안정성은 p와 q를 구해 내는 것에 달려있다.
•최적 비대칭키 암호 패딩 (OAEP, Optimal Asymmetric Encryption Padding)
- RSA에서 짧은 메시지는 짧은 메시지 공격에 의해 암호문을 위험에 빠뜨리게 된다.
- 의미 없는 padding을 메시지에 붙여 공격 작업을 어렵게 한다.
•공격 기법
- 수학적 공격(소인수 분해 공격) : 두 개의 소수 곱을 인수분해 하려는 시도
- 타이밍 공격(시간 공격) : 복호화 알고리즘 실행 시간에 의존
- 선택 암호문 공격(CCA) : 임의의 데이터 송신 시 그것을 암호문으로 간주하고 회신해주는 것을 이용한 공격. OAEP로 방지할 수
있다.
[Rabin 암호시스템]
•합성수 모듈러에 관하여 제곱근을 찾기 어렵다는 사실로부터 안정성을 얻는다. (인수분해 문제)
•암호화 과정은 오직 한 번의 곱셈으로 매우 빨리 수행된다.
•Rabin 암호시스템의 복잡도는 큰 수 n을 두 개의 소수의 곱으로 소인수분해하는 수준의 복잡도와 같다.
•p와 q의 크기가 충분히 크다면 RSA만큼 안전하다.
## [ElGamal 암호시스템]
•이산대수 문제에 근거.
•암호화과정에서 암호문의 길이는 평문의 약 2배가 됨.
•때문에, 많은 메모리 공간이 필요, 전송 속도도 느려짐.
## [타원 곡선 암호(ECC, Elliptic Curve Cryptosystem)]
•타원 곡선(Elliptic Curve)이라는 이론에 근거 (타원곡선 군에서의 이산대수 문제)
•RSA보다 키의 길이를 줄이면서도 동일한 성능을 제공하여 전자상거래의 핵심 기술로 주목받고 있음
•H/W와 S/W로 구현하기가 용이
•메모리와 처리능력이 제한된 응용분야(스마트카드, 무선통신 단말기 등)에 효율적
## [하이브리드 암호시스템]
•대칭키 암호의 기밀성 + 공개키 암호로 키 배송 문제 해결
•공개키 암호 문제점 2가지
1) 대칭키 암호에 비해 처리속도가 많이 느리다. → 하이브리드 암호시스템
2) MITM 공격에 약하다. → 공개키에 대한 ‘인증’이 필요
## [인수분해/이산대수 근거 암호시스템 분류]
•인수분해 문제 : RSA, Rabin
•이산대수 문제 : Diffie-Hellman, ElGamal, ECC, DSS
# 05. 해시함수와 응용 (출제빈도 1.6%)
## [일방향 해시함수]
•해시함수 : 임의의 길이 m을 갖는 메시지 M을 입력으로 해서 고정된 길이 n을 갖는 해시 값 또는 해시 코드라 불리는 값을 출
력하는 함수
•충돌이 존재. 해시 값 한 개에 여러 메시지를 가질 수 있다.
•일방향 해시함수 = 메시지 다이제스트 함수 = 암호학적 해시 함수
•출력되는 해시 값 = 메시지 다이제스트 = 핑거프린트
•특징
- 임의 길이의 메시지로부터 고정 길이의 해시 값을 계산
- 해시 값을 고속으로 계산할 수 있다.
- 일방향성을 갖는다. : 해시 값으로부터 메시지를 구할 수 없다.
- 메시지가 다르면 해시 값도 다르다.
•충돌을 발견하는 것이 어려운 성질을 충돌 내성(collision resistance)이라고 부른다.
•랜덤 오라클 모델(Random Oracle Model)
- 해시함수에 대한 이상적인 수학적 모델
- 임의의 길이를 갖는 메시지에 오라클은 난수로 생성된 고정된 길이의 메시지 다이제스트를 생성, 제공
- 이미 다이제스트가 존재하는 메시지가 주어지면 오라클은 저장되어 있던 다이제스트 제공
- 새로운 메시지에 대해서는 이미 생성한 다이제스트와는 다른 다이제스트를 생성
•공격 기법
- 무차별 공격 : 약한 충돌 내성을 깨고자 하는 공격
- 일치블록 연쇄공격 : 사전에 해시 값을 다양하게 생성 후 공격하고자 하는 메시지의 해시 값과 같은 것을 찾는 공격
- 중간자 연쇄공격 : 전체 해시 값이 아닌 해시 중간 결과에 대한 충돌 쌍을 찾는다.
- 고정점 연쇄공격 : 메시지 블록과 연쇄변수 쌍을 얻어 연쇄변수가 발생하는 특정한 점에 임의의 동등한 블록들을 메시지 중간
에 삽입해도 전체 해시 값이 변하지 않는다.
- 차분 연쇄공격 : 압축함수의 입출력 차이를 조사하여 0의 충돌쌍을 찾아내는 공격
## [해시함수의 보안 요구사항]
•역상 저항성 (= 약 일방향성)
- y = h(M)을 만족하는 입력 값 M을 찾는 것이 매우 힘들어야 된다.
- 안전성, 역함수 계산 방지
•두 번째 역상 저항성 (= 약한 충돌 내성 = 강 일방향성)
- y = h(M) = h(M′), M ≠ M′ 을 만족하는 다른 입력 값 M′을 찾는 것이 매우 힘들어야 한다.
- 안전성, 역함수 계산 방지
•충돌 저항성 (= 강한 충돌 내성 = 충돌 회피성)
- y = h(M) = h(M′)을 만족하는 임의의 두 입력 값 M, M′을 찾는 것이 매우 힘들어야 한다.
- 안전성, 내부부정 방지
- 충돌 저항성은 두 번째 역상 저항성을 보장
## [키가 없는 해시함수]
•메시지 다이제스트(Message Digest)
- MD2 → MD4 → MD5
- MD5는 메시지를 512bits로 된 블록으로 나누고 128bits 다이제스트를 출력한다. 라운드 수는 64(14 * 4R)
- 128bits 메시지 다이제스트는 충돌 공격에 내성을 갖기에는 길이가 너무 짧다고 알려진다.
- 내부 구조에 대한 약점이 발견되고, 생일 공격에 노출되었다.
•SHA(Secure Hash Algorithm)
- MD4 해시함수에 기초해서 만들어짐. MD5보다 느리지만 조금 더 안전.
- SHA-160 (SHA-1) : 메시지를 512bits 블록으로 나누고 160bits의 다이제스트를 출력한다. 라운드 수는 80(20 * 4R)
- SHA-512 (SHA-2) : 메시지를 1024bits 블록으로 나누고 512bits의 다이제스트를 출력한다. 메시지의 길이는 2128bits를 넘지
않는다.
•RIPEMD-160 : 메시지를 512bits 블록으로 나누고 160bits의 다이제스트를 출력한다.
•Tiger : 64bits 시스템에서 해시 함수를 수행하기 위해 설계. MD5, SHA-1보다 속도가 빠르다.
•HAVAL : 메시지를 1024bits 블록으로 나누고 128/160/192/224/256bits의 다이제스트를 출력한다.
•HAS160 : 메시지를 512bits 블록으로 나누고 160bits의 다이제스트를 출력. 한국형 전자서명 표준에 사용할 목적으로 개발됨.
•변경 감지 코드(MDC, Modification Detection Code)
- 메시지의 무결성을 보장하는 메시지 다이제스트
- 수신자는 메시지로부터 새로운 MDC를 생성하고, 송신자에게 받은 MDC와 비교하여 해당 메시지가 변경되지 않았다는 것을 보
장해준다.
[키를 사용하는 해시함수, MAC]
•무결성을 확인하고, 메시지에 대한 인증을 하는 기술
•대칭키 암호 사용. (MAC 알고리즘으로 블록 암호나 해시 함수에 기반을 둠)
•대칭키 암호를 사용함으로써, 키 배송 문제가 생긴다.
•축소 MAC : 해시 과정이 두 단계로 이루어져 있음. (키도 두 번 사용)
•HMAC : 앞의 H는 해시함수를 의미하며, SHA-1과 같은 일방향 해시함수를 이용하여 MAC를 구성
•CBC-MAC : 블록 암호 모드인 CBC모드와 유사한 방법
•CMAC : CBC-MAC와 같은 종류의 데이터 인증과 무결성을 제공하지만, 조금 더 안전
•CCM(Counter with CBC-MAC) : CTR 모드와 CBC-MAC을 통합. AES 암호 알고리즘, CTR 모드, CBC-MAC 인증 알고리즘으로 구성
•GCM mode : CTR 모드에 인증 기능을 추가한 모드
•재전송 공격
- MAC 값을 도청해서 저장해둔 뒤 저장해둔 MAC 값을 반복해서 송신하는 공격
- 보안 대책으로 순서 번호, 타임스탬프, 비표(nonce), 시도/응답이 있다.
•MAC가 해결하지 못하는 문제
- 제 3자에 대한 증명 : 두 사람 사이에서는 상대방이 MAC를 계산하였다고 말할 수 있지만, 제 3자에게 MAC 값을 누가 계산
했는지 증명할 방법이 없다. → 전자서명으로 증명 가능
- 부인 방지 → 역시 전자서명으로 부인 방지가 가능해진다.
관련자료
-
첨부
댓글 0
등록된 댓글이 없습니다.