본문 바로가기
Security/Cissp

Domain 3. Security Engineering(1)-2



6. 암호화 종류 및 방식

- 대칭키 : Secect key, Shared Key , Session Key
- 공개키 : Public Key(Secrect Key) and Private Key
=> Secrect Key 로 암호화 해서 Secrect Key 로 복호화시 대칭키, Secrect Key 로 암호화 해서 Private Key 로 암호화 하면 공개키

1. 대칭키 암호화 (Symmetric Cyryptography) 개요
1) 특징
- 공개키에 비하여 암호화 속도가 빠름 ( =>Key 의 길이가 짧고, 단순한 알고리즘 이기때문에)
- 기밀성(=비밀성)  서비스 제공
- 키의 길이가 길수록 Brute force attack 에 대해 안전

- 대칭키의 단점
a. 키배포(교환) 문제 (가장 큰 이슈)
b. 확장성의 문제
c. 제한적 보안 서비스

- 키 배포를 위한 out of band(추가적 채널)
a. 디지털 봉투(Digital Envelope)
b. D/H
c. kerberos
d. KDC(key distribute center)
e. 양자키교환원리

- 각 쌍의 사용자들은 독특한(uniq) 쌍의 키가 필요 하고 , 따라서 키의 숫자는 기하 급수적
- 암호화/복호화 키가 동일하기 때문에 키가 오픈될 확률이 공개키에 비해 높다 -> 키를 자주 바꾸어 주어야 한다 .
- Hybrid Cryptosystem : 대칭키와 비대칭키를 같이 사용
- 종류 : DES(56bit+ 8bit parity),3DES, AES, IDEA, Blowfish, RC4,RC5,RC6

-. 대칭 암호화에서의 키관리 문제
- n 명으로 구성된 시스템에서 n(n-1)/2 개의 서로 다른 키가 요구됨
ex) 50명 : 50(50-1)/2 = 1225

- stream 
a. 1bit 씩 암호화
b. Confusion(혼돈) 적용
c. XOR 연산
d. Pseudo random number : RC4( 길이의 제한이 있다 .)
    True random number : OTPad(길이의 제한이 없다 .)

- block
a. 1block 씩 암호화 (각각 block 사이즈가 다름)
b. confusion,diffusion (혼돈.확산) 적용
c. s-box(substitution),p-box(permutation)
d. feistel 구조 : DES,3DES
    SPN 구조: AES
    기타 : IDEA


2. 대칭키의 종류
1) DES (Data Encryption Standard) ☆☆☆☆☆☆☆☆
- 목적 : Data encrytion standard
- 방식 : S-box(substitution) + P-box(Permutation)
- 사례 : Kerberos
- Round : 16 round
- Crack 이유 : 짧은 키 사이즈
- Key 사이즈 : 전체 64bit(유효 :56bit 8bit parity)
- 예제 문제  :wep 의 key 길이 40bit를 crack 하는데 1시간이 소요 되었다면 , 동일한 조건의 DES crack 시간은 ?(work factor를 묻는 문제)
=> 2의 40승 : 1h  = 2의 56승 : x = 2의 56 승/2의 40승= 2의 16승 = 65535 ( 이지만 문제 나오면 그냥 큰수로 찍어라)
- 구조 : Feistel
- 64bit 의 block 사이즈에 64bit의 키 길이(유효 56bit)로 16 round 진행 하여 64bit 로 암호화 
- 각 회전은 단순 하고 안전성은 s-box 에 의존 
*DSE 는 SnowBall effect(=Avalanche Effect) : 눈사태와 같이 반복/연속적 수행으로 원상태를 숨김

- DES를 강력하게 하기 위해 2DES가 나왔지만 Meet in the middle Attack 으로 깨짐

2) Triple-DES(TDES)
- TDES 장점 : work-factor 의 증가. Meet in the middele attack 을 견딤
- TDES 단점 : 시간 자원소모가 크다 => AES 사용으로 해결
- TDES 2개의 키 사용 : DES-EEE2(암호화-암호화-암호화),DES-EDE2(암호화-복호화-암호화), 128(120)bit의 key size , 48 round
- TDES 3개의 키 사용:  DES-EEE3(암호화-암호화-암호화),DES-EDE3(암호화-복호화-암호화), 192(168)bit의 key size , 48 round
*2개의 키로 EDE를 진행 하는 이유는 ? =?single DES호환성, 112비트면 안전성을 위해 충분 하다 .

3) AES (Advanced Encryption Standard)
- rjindael 알고리즘이 차세대 알고리즘으로 체택되어 AES로 사용 
- Key size: 128/192/256 bit
- AES선정 기준 : security, robustness(견고성) ,speed
- 어떤 플랫폼에서도 sw hw 에 구현이 용이
- 사례 : 스마트 카드 적용 (데이터 암호화 용도)
- 구조 : SPN구조

4) IDEA(International Data Encryption Algorithm)
- 64bit 의 블록 사이즈에 128 bit 의 키
- Round : 8 round
- PGP(email) 암호화 소프트웨어에 사용 

5) 그외 대칭키 암호화 종류 : Blowfish,RC6

3. 대칭키 알고리즘의 .스트림 암호화 블록 암호화
1) 블록암호(Block Cipher)
- 평문과 암호문을 블로그로 작업
- confusion, diffusion 을 사용 
- 한번 암호화 되는 메시지 단위가 일정길이의 블록 

2) 스트림암호(Stream-Base Cipher)
- 1Bit 씩 암호화 (Cissp 시험에서 bit 단위 뭍는 문제가 자주 나옴)
- 블록 암호화 보다 속도가 빠르다 .
- 하드웨어 구현에 적합 하며 주로 무선암호화 방식에 사용 
- 스트림 암호의 단점  : Initialzation Vector 의 이슈로 WEP(RC4) 와 같은 알고리즘에서 취약점 발견, 
상당한 비용/자원 소모 (=> 키의 길이가 길어 질 수 있기 때문에)
- Confusion 만 사용 

3) One-Time pad encription
- 패드의 사이즈는 메시지의 사이즈와 동일 하다 
- project VENONA

4) 블록암호의 모드 (Basic block Cipher modes)
- Electronic codebook(ECB)
*Input block 과 output block 의 사이즈가 같다 .
*단순하다
*각 block 별로 독립적 -> 병렬처리 가능,속도가 빠름, 오류 전파가 안됨
*알려진 평문 공격(Known plaintext Attack =KPA) 에 매우 취약
*문장이 짧고 반복되는 단어를 사용 하지 않는다면 KPA 에 대비 하여 사용 가능 
Q) 두사용자간의 암호화 데이터를 도청 하는데 SMTP 를 암호화 하는 것을 발견 하였다 .잘알려진(알고있는 )평문으로 추측 => 패턴 노출=>알려진평문공격

- Cipher-block chaining(CBC)
*block 을 체인처럼 연결
*복잡하다.
*각 block 이 독립적이지 않다 =>병렬처리 불가능,속도느림, 오류전파됨
*알려진 평문 공격을 방지
=> ECB 에 비하여 안전 하지만 ECB의 장점의 반대 

5) 블록암호의 모드( Stream mode)
=> 블록암호에서 사용 하는 stream mode 
- Cipher feedback(CFB)
- Output feedback(OFB) 
- Counter(CTR) : 병렬적 연산 가능 

4.비대칭 암호화(Asymmetric Cryptiography)
- 공개키 사용 원칙
1) 암호화키와 복호화 키는 같은 사람의 키쌍이어야 한다.
2) 키는 암/복호화 중 한번만 사용
3) 타인의 개인키는 사용 할 수 없다 .

- 비대칭키 암호화 방법
1) 송신자가 암호화시 송신자의 개인키로 암호화 수신자가 송신자의 공개키로 복호화 => 부인방지, (메시지)인증
2) 송신가자 암호화시 송신자의 공개키로 암호화 수신자가 수신자의 개인키로 복호화 => 기밀성(대칭키의 기밀성과 성질이 다름- >대칭키는 서로 암/복호화 가능, 공개키는 수신자만 복호화 가능 )

- 키관리, 키전송 문제를 해결=> 전자투표, 전자 서명, 전자 화폐등 사용  

- Digital Envelope(디지털 봉투) 
=> 공개키 기반 암호화 기법에서 비밀키를 수신자의 공개키로 암호화 하여 수신자만이 비밀키를 알아 낼 수 있도록 암호화
=> 공개키 중간자 공격에 취약 (대응책 :PKI )

- 공개키 시스템 종류
1) 이산대수 : DH, DSA, Elgmal
2) 인수분해: RSA, Rabin
3) 타원곡선: ECC
*DH는 오직 키교환 용도로만 사용, DSA 는 서명 전용 기술
*타원 곡선의 키길이 : 160bit 이상
*이산대수, 인수분해의 키길이 : 1024~2048 bit 이상 

- 공개키 시스템의 특징 
1) 하나의 쌍으로 된 키를 사용 (키의 갯수 2n개)
Q) n개의 키쌍의 갯수는 ?=> nro

2) 비밀키(대칭키) 에 비해 1000배정도 빠름
3) 키분배 문제 해결
4) 대칭키보다 더 좋은 확장성 
5) 기밀성, 부인방지, 인증 서비스 제공

- 공개키 종류
1) RSA
- 세계적인 사실상의(de facto)표준)
- ssl 프로토콜을 가진 많은 웹브라우저에서 사용
- 이산대수를 이용 

2) ECC: 강력한 암호화를 요구하는 컴퓨터들의 네트워크에서 잘 작동 
- 비트당 더많은 보안을 제공
(ECC 1bit 가 RSA 1bit 보다 보안의 수준이 높다 )
- 적은 키의 사이즈로 동일한 보안 수준 제공 
(ECC 16bit 의 키의 길이와 RSA 1024 bit와 보안 수준이 동일)
- 짧은 키를 가지는 전자서명, 인증 시스템의 구성 가능 
- 효율적
- 스마트 카드의에서 사용 되며, 인증 및 서명에 사용 
- 타원곡선을 이용

* Smart Card 의 암호화
.  ECC : 서명 및 인증 용도 
.  AES : 암/복호화 용도

- ECC 알고리즘 key : 짧다, 빠르다, 효율적이다 .

3.암호 시스템 비교 

                               대칭키                              비대칭키
-  키의 상호관계      암호화키=복호화키     암호화키=/=복호화키
-  안전한 키 길이     128bit 이상                2048bit 이상
-  구성                      비밀키                         공개키,개인키
-  키 갯수                 n(n-1)/2                    2n (*시험상 n2로 나올수 있음)
-  사례                    DES,3DES,AES          RSA,ECC
-  제공서비스         기밀성                           기밀성,부인방지,인증
-  목적                    데이터 암/복호화          Key교환
-  단점                    key교환 원리 없음          공개키 중간자 공격에 취약
-  속도                    빠름                              느림

*사용자 5명이 넘어가면 대칭키 방식의 최대 키 개수는 비대칭키의 최대 키 개수를 초과 하기 시작


반응형