Gentle Breeze

[CISSP] Domain 6. 암호학 (II) 본문

⑨ 직무역량강화/CISSP

[CISSP] Domain 6. 암호학 (II)

재령 2012. 1. 11. 17:26
▶ 대칭키 암호 시스템
  - 대칭키 암호의 분류


▲ 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(타원곡선암호) : 기존보다 작은 키 크기로 더 빠르게 암호 연산 수행 가능
Comments