Notice
Recent Posts
Recent Comments
Gentle Breeze
[CISSP] Domain 6. 암호학 (II) 본문
▶ 대칭키 암호 시스템
- 대칭키 암호의 분류
▲ Click to Enlarge ▲
- 대칭키 암호의 분류
▲ Click to Enlarge ▲
- SPN 사이퍼 : AES, Rijndael
- Feistel 사이퍼 : DES
- 스트림 사이퍼
- one-time pad : 랜덤하지 않은 평문이 랜덤한 키 열과 더해져 랜덤한 암호문을 생성
한 번 사용한 키는 폐기
평문의 길이 = 키의 길이 = 암호문의 길이
대량의 데이터는 암호화가 불가능
Exclusive-OR 알고리즘을 통해 암 복호화
COA로 평문을 알아내는 것은 키를 알아내는 작업과 동일
수학적으로 절대 깨지지 않음
비 실용적 - 키 전달 및 키 동조의 문제
- 하드웨어 구현에 적합
- 블록 사이퍼보다 빠른 연산속도
- 종종 알고리즘을 비공개로 하고 하드웨어로만 구현(SW 구현 시 비효율적)
- 종류 : RC4, A5, SEAL(IBM)
- 블록 사이퍼
- DES : Data Encryption Standard
블록사이퍼의 원조격
64비트의 평문, 64비트의 암호문 (64비트의 블록을 나누어 암호화)
16라운드로 구성(1라운드 = 혼합과 확산을 한 번 하는 것)
각 라운드마다 대치와 치환 시행
56비트의 키 사이즈 + 8비트의 패리티 = 64비트
키 사이즈가 너무 작음 (56비트에 불과함)
트랩도어가 존재하지만 현재까지 발견되지 않음
취약키 4개, 준취약키 12개가 존재 - 암호화를 두 번 수행하면 평문으로 복원됨
S-Box는 혼합을 구현하는 가능을 가짐
- Triple DES : Double DES의 실패 극복 대안
암호화 : DES E-D-E
복호화 : DES D-E-D
Meet-in-the-middle 공격에 견딜 수 있음(Double DES 는 취약)
연산 속도가 느림
- Rijndael 알고리즘 : SPN 구조를 사용
- AES : Advanced Encryption Standard
미국 NIST 에서 DES 대체 용도로 공모
Rijndael Algorithm을 선정
- Feistel : 라운드 함수를 반복적으로 적용(CBC, Cipher Block Chaining)
이전 블록 암호문과 평문을 XOR(Exclusive-OR) 한 형태
- SPN : Substitution-Permutation Network (대치-치환망 구조)
전치와 치환을 이용해서 관용 암호방식의 문제 해결
세션키를 교환
128비트 키를 4X4 행렬로 나타내어 행렬을 이용한 암호화
각 열은 4바이트(32비트) = Word
- 블록 사이퍼의 운용모드
- 패딩(padding) : 블록의 길이를 일괄되게 맞춤 (0으로 채움)
- 모드(mode) : 기본 암호 연산 단위를 결합하여 큰 길이의 평문을 처리
ECB, CBC, CFB, OFB
인증용(MAC)으로 사용할 수 있는 것은 CBC, CFB
암호화, 인증 용도로는 CBC, CFB가 사용 가능함
- ECB : Electronic Code Block
항상 동일한 키로 블록단위 암호화
- CBC : Cipher Block Chaining
평문에 초기 벡터(키와는 별개)를 가지고 평문에 XOR 연산을 한 후 키를 가지고 암호화(DES)
이 암호문이 다음 블록의 평문을 XOR 연산을 처리를 하기 위한 벡터값이 됨
블록간 상호 의존성을 가짐, 에러 전파
- CFB : Cipher Feedback
초기 벡터를 암호화(DES) 한 후 평문에 XOR 연산을 해 암호문을 만들어 냄
이 암호문을 다시 암호화(DES) 해서 다음 평문과 XOR 연산을 해서 암호문을 만들어 냄
- OFB : Output Feedback
초기 벡터를 암호화(DES) 한 후 평문과 XOR 연산을 해 암호문을 만들어 냄
초기 벡터를 암호화 한 값을 다시 암호화(DES) 해 다음 평문과 XOR 연산을 해 암호문을 만들어 냄
성능이 떨어짐, 에러 전파 안됨
- 기타 주요 블록사이퍼
- RC2, RC5, RC6, IDEA, SKIPJACK, Blowfish
▶ 공개키 암호 시스템
- 공개키 암호의 배경 이론 : 트랩도어 일방향 함수, 수학적으로 어려운 계산
큰 수의 소인수 분해 문제
유한체에서의 이산대수 문제
거듭제 곱근 문제
- 공개키 암호의 활용 : 비밀 키 분배, 부인봉쇄(전자서명), 암호화(키 암호화)
- 하이브리드 암호 시스템 : 대용량 데이터 암호화에 대칭키 암호 사용
키를 안전하게 나누어 가지기 위해 공개키로 키를 암호화
일반적으로 가장 많이 사용(SSL)
- 주요 알고리즘
- RSA Series : 암호화, 서명, 키 교환(분배)
- DSA : 서명
- Diffie-Hellman : 키 교환
- ElGamal : 암호화, 서명
- KCDSA : 국내 알고리즘
- ECC(Elliptic Curve Cryptography) : 타원 곡선 암호 시스템, 기존의 공개키 암호를 새롭게 구현하는 방법
- RSA
- 가장 널리 쓰이는 공개키
- 소인수분해 문제에 기반
- DES 에 비해 약 100~1000배 느림(공개키 암호화가 속도가 빠름)
- 대용량 암호화에 사용하지 않음
- 안전을 위해 n이 최소 268비트, 권장 2048비트 이상을 사용하지만 실제 1024 ~4096비트가 쓰임
- 기타 주요 공개키 암호 알고리즘
- Diffie-Hellman
- DSA : 해시함수 SHA-1 과 함께 사용됨 (HSS)
유한체에서의 이산대수 문제에 근거
서명 생성 속도가 빠르고 서명 검증 속도가 느림
- Rabin
- ElGamal : 유한체에서의 이산대수 문제에 근거
특허가 없어 연구개발 모델로 많이 활용
- KCDSA
- ECC(타원곡선암호) : 기존보다 작은 키 크기로 더 빠르게 암호 연산 수행 가능
- Feistel 사이퍼 : DES
- 스트림 사이퍼
- one-time pad : 랜덤하지 않은 평문이 랜덤한 키 열과 더해져 랜덤한 암호문을 생성
한 번 사용한 키는 폐기
평문의 길이 = 키의 길이 = 암호문의 길이
대량의 데이터는 암호화가 불가능
Exclusive-OR 알고리즘을 통해 암 복호화
COA로 평문을 알아내는 것은 키를 알아내는 작업과 동일
수학적으로 절대 깨지지 않음
비 실용적 - 키 전달 및 키 동조의 문제
- 하드웨어 구현에 적합
- 블록 사이퍼보다 빠른 연산속도
- 종종 알고리즘을 비공개로 하고 하드웨어로만 구현(SW 구현 시 비효율적)
- 종류 : RC4, A5, SEAL(IBM)
- 블록 사이퍼
- DES : Data Encryption Standard
블록사이퍼의 원조격
64비트의 평문, 64비트의 암호문 (64비트의 블록을 나누어 암호화)
16라운드로 구성(1라운드 = 혼합과 확산을 한 번 하는 것)
각 라운드마다 대치와 치환 시행
56비트의 키 사이즈 + 8비트의 패리티 = 64비트
키 사이즈가 너무 작음 (56비트에 불과함)
트랩도어가 존재하지만 현재까지 발견되지 않음
취약키 4개, 준취약키 12개가 존재 - 암호화를 두 번 수행하면 평문으로 복원됨
S-Box는 혼합을 구현하는 가능을 가짐
- Triple DES : Double DES의 실패 극복 대안
암호화 : DES E-D-E
복호화 : DES D-E-D
Meet-in-the-middle 공격에 견딜 수 있음(Double DES 는 취약)
연산 속도가 느림
- Rijndael 알고리즘 : SPN 구조를 사용
- AES : Advanced Encryption Standard
미국 NIST 에서 DES 대체 용도로 공모
Rijndael Algorithm을 선정
- Feistel : 라운드 함수를 반복적으로 적용(CBC, Cipher Block Chaining)
이전 블록 암호문과 평문을 XOR(Exclusive-OR) 한 형태
- SPN : Substitution-Permutation Network (대치-치환망 구조)
전치와 치환을 이용해서 관용 암호방식의 문제 해결
세션키를 교환
128비트 키를 4X4 행렬로 나타내어 행렬을 이용한 암호화
각 열은 4바이트(32비트) = Word
- 블록 사이퍼의 운용모드
- 패딩(padding) : 블록의 길이를 일괄되게 맞춤 (0으로 채움)
- 모드(mode) : 기본 암호 연산 단위를 결합하여 큰 길이의 평문을 처리
ECB, CBC, CFB, OFB
인증용(MAC)으로 사용할 수 있는 것은 CBC, CFB
암호화, 인증 용도로는 CBC, CFB가 사용 가능함
- ECB : Electronic Code Block
항상 동일한 키로 블록단위 암호화
- CBC : Cipher Block Chaining
평문에 초기 벡터(키와는 별개)를 가지고 평문에 XOR 연산을 한 후 키를 가지고 암호화(DES)
이 암호문이 다음 블록의 평문을 XOR 연산을 처리를 하기 위한 벡터값이 됨
블록간 상호 의존성을 가짐, 에러 전파
- CFB : Cipher Feedback
초기 벡터를 암호화(DES) 한 후 평문에 XOR 연산을 해 암호문을 만들어 냄
이 암호문을 다시 암호화(DES) 해서 다음 평문과 XOR 연산을 해서 암호문을 만들어 냄
- OFB : Output Feedback
초기 벡터를 암호화(DES) 한 후 평문과 XOR 연산을 해 암호문을 만들어 냄
초기 벡터를 암호화 한 값을 다시 암호화(DES) 해 다음 평문과 XOR 연산을 해 암호문을 만들어 냄
성능이 떨어짐, 에러 전파 안됨
- 기타 주요 블록사이퍼
- RC2, RC5, RC6, IDEA, SKIPJACK, Blowfish
▶ 공개키 암호 시스템
- 공개키 암호의 배경 이론 : 트랩도어 일방향 함수, 수학적으로 어려운 계산
큰 수의 소인수 분해 문제
유한체에서의 이산대수 문제
거듭제 곱근 문제
- 공개키 암호의 활용 : 비밀 키 분배, 부인봉쇄(전자서명), 암호화(키 암호화)
- 하이브리드 암호 시스템 : 대용량 데이터 암호화에 대칭키 암호 사용
키를 안전하게 나누어 가지기 위해 공개키로 키를 암호화
일반적으로 가장 많이 사용(SSL)
- 주요 알고리즘
- RSA Series : 암호화, 서명, 키 교환(분배)
- DSA : 서명
- Diffie-Hellman : 키 교환
- ElGamal : 암호화, 서명
- KCDSA : 국내 알고리즘
- ECC(Elliptic Curve Cryptography) : 타원 곡선 암호 시스템, 기존의 공개키 암호를 새롭게 구현하는 방법
- RSA
- 가장 널리 쓰이는 공개키
- 소인수분해 문제에 기반
- DES 에 비해 약 100~1000배 느림(공개키 암호화가 속도가 빠름)
- 대용량 암호화에 사용하지 않음
- 안전을 위해 n이 최소 268비트, 권장 2048비트 이상을 사용하지만 실제 1024 ~4096비트가 쓰임
- 기타 주요 공개키 암호 알고리즘
- Diffie-Hellman
- DSA : 해시함수 SHA-1 과 함께 사용됨 (HSS)
유한체에서의 이산대수 문제에 근거
서명 생성 속도가 빠르고 서명 검증 속도가 느림
- Rabin
- ElGamal : 유한체에서의 이산대수 문제에 근거
특허가 없어 연구개발 모델로 많이 활용
- KCDSA
- ECC(타원곡선암호) : 기존보다 작은 키 크기로 더 빠르게 암호 연산 수행 가능
'⑨ 직무역량강화 > CISSP' 카테고리의 다른 글
[CISSP] Domain 7. 보안 아키텍처 모델 (0) | 2012.01.12 |
---|---|
[CISSP] Domain 6. 암호학 (III) (0) | 2012.01.12 |
[CISSP] Domain 6. 암호학 (I) (0) | 2012.01.11 |
[CISSP] Domain 5. 시스템 운영 보안 (0) | 2012.01.11 |
[CISSP] Domain 4. 응용 시스템 및 시스템 개발 보안 (0) | 2012.01.11 |
Comments