IT이론 정리노트/IT보안(CISSP)

CISSP IT보안이론 요약: 암호화 기법과 대칭키 알고리즘

G. Hong 2022. 2. 7. 15:00
728x90
반응형

1. 암호화 기법의 역사

시저암호

  • 줄리어스 시저가 사용한 암호체계
  • 알파벳을 3칸 이동시키는 치환암호

 

미국 남북전쟁

  • 단어치환과 자리바꿈의 조합
  • 알버트 마이어의 깃발신호

 

울트라와 에니그마 (2차대전 기간)

  • 에니그마: 독인 군수업체의 상용 암호화 기계. 3~6개의 회전자로 구성된 복잡한 치환 암호법.
  • 울트라: 에니그마 코드를 해독하는 기밀작전
  • 보라기계: 일본의 유사한 암호화 기계

 

2. 암호학 기초

암호화의 목적

- 기밀성

  • 데이타가 유휴상태(디스크 등)나 전송상태에서 데이터의 비밀을 유지하는 것

- 무결성

  • 인증 없이는 데이터가 변경되지 않음을 보장
  • 거짓 정보 삽입이나 전송 과정의 오류 등으로 부터 데이터를 보호
  • 메시지 무결성은 디지털 서명으로 유지. 공개키/비밀키 시스템에서도 사용

- 인증

  • 시스템 사용자의 신원을 검증
    서버 <-- 1. 신원 전달 <-- 클라이언트
    --> 2. 암호화된 증명요청 -->
    <-- 3. 증명 <--
    --> 4. 신원검증 -->

- 부인방지

  • 메시지를 송신자가 만든 것임을 보장
  • 송신자가 송신행위를 부인하는 것을 방지
  • 공개키, 비대칭키 암호화로 제공(비밀키, 대칭키는 불가)

 

3. 암호학의 개념

암호수학

- 암호화 기법은 수학에 기본을 둠.
 

불리언 수학

- 2진법 계산
 

논리연산자

- 데이터를 다루기 위한 논리 함수

  • AND(^)
  • OR()
  • NOT(~ 또는 !)
  • XOR(⊕)

 

모듈로 함수(mod)

  • 나눗셈의 나머지

 

일방향 함수

  • 해시함수
  • 이론적으로는 향후 무력화 될 수 있다

 

Nonce

  • 난수, 임시변수 역할
  • 예: IV(초기화 벡터)

 

제로 지식 증명

  • 사실에 대한 증명을 할 때, 그 사실 자체는 공개할 필요가 없음.

 

지식 분리

  • 작업수행을 위한 정보나 권한을 여러 사용자에게 나누는 것.

 

작업함수

  • 암호 시스템의 작업 강도를 작업함수를 사용해서 비용/시간 단위로 측정할 수 있음
  • 대입공격을 수행하는데 요구되는 시간과 노력

 

암호

코드와 암호

  • 코드: 단어/구를 표현하는 심볼 암호화 시스템.
  • 암호: 본 의미를 숨김. 다양한 기법으로 기밀성을 얻음.

 

전치암호

  • 문자를 재배열하는 암호화 알고리즘

 

치환암호

  • 각 문자나 비트를 다른 문자로 대체하는 암호화 알고리즘
  • 시저암호, 복식치환(Vigenere)
  • 주기분석법으로 부터 보호 할 수 있지만, 2차 주기분석(기간분석)에는 취약함

 

일회용 암호(OTP)

  • 암호화를 할 때 마다 다른 치환 알파벳을 사용
  • 장점: 바른 방법으로 사용된 경우 깨질 수 없는 암호화 기법
  • 요구사항
    • 암호키는 반드시 랜덤으로 생성 되어야함
    • 암호키는 반드시 물리적으로 보호 되어야함
    • 각 OTP는 오직 한번 만 사용 돼야 함
    • 키의 길이는 암호화된 메시지의 길이와 같아야 함

 

러닝 키 암호

  • 암호화키의 제한된 길이에 의한 취약점과 OTP의 키의 물리적 교환에 의한 문제를 해결한 방법
  • 암호화키가 메시지 만큼 길고 일반적인 책에서 선택된다.

 

블록암호와 스트림암호

  • 블록암호
    • 암호화 알고리즘을 블록 단위로 적용.
    • 예: 전치암호
  • 스트림암호
    • 한 번에 한 문자 또는 한 비트에 적용.
    • 예: 시저, OTP
    • 블록암호의 함수로 적용 될 수 있음.

 

혼돈과 확산

  • 혼돈 : 평문과 키 사이의 관계가 복잡해져서 공격자가 분석하는 것이 힘들어 진다.
  • 확산 : 평문의 변화가 복수의 변화를 야기해 암호문 전체에 퍼짐.

 

4. 현대 암호화

- 계산적으로 복잡한 알고리즘과 긴 암호화키를 사용해 암호화 목적을 달성
 

암호화 키

암호화의 초창기

  • 모호함을 통한 보안(알고리즘 비밀성)

현대 암호 시스템

  • 암호화키의 비밀성
  • 키의 길이가 길수록 암호시스템을 무력화 시키기 어렵다.

 

대칭키 알고리즘

- 공유된 비밀키를 사용
- 약점

  • 비밀키를 교환할 안전한 방법을 가지고 있어야 한다.
  • 비밀키로 누구든 메시지를 암복호화 가능 => 부인방지 기능 없음.
  • 비밀키 공유 문제로 큰 그룹이 사용하기 힘들다.
  • 참여자가 바뀔 때 마다 키가 재생성 되어야 한다.

- 장점

  • 동작 속도가 빠르다.
  • HW 구현이 가능하다.
대칭키 알고리즘

 

비대칭키 알고리즘 (공개키)

- 모든 사용자가 공유된 공개키와 개인만 소유하는 개인키를 가진다.
- 장점

  • 새로운 사용자가 생겨도 한 쌍의 개인-공개키만 생성되면 된다.
  • 키 폐지 과정으로 쉽게 사용자 제거가 가능.
  • 개인키가 노출 되었을 때만 재생성이 필요함.
  • 무결성, 인증성, 부인방지 제공
  • 새로운 사용자는 자신의 공개키만 생성하면 된다.
  • 통신을 시작하는 순간부터 안전한 통신 가능

- 단점

  • 작업 속도가 느리다.
비대칭키 알고리즘

 

대칭키 vs 비대칭키

 대칭키비대칭키
키 개수단일공유키키 쌍집합
키 교환다른 채널을 통한 교환채널 내 교환
확장성확장 불가능확장 가능
처리속도빠름느림
주 사용처대규모 암호화데이터, 디지털서명, 디지털봉투, 디지털 인증서의 작은 블록
제공기능기밀성기밀성, 무결성, 인증, 부인방지

 

해시 알고리즘

  • 공개키 암호시스템이 메시지 다이제스트와 함께 사용되게 되면 디지털 서명기능을 제공
    * 메시지 다이제스트: 해시 알고리즘에 의해 생성되는 내용.
  • MD2, MD3, SHA-0, SHA-1, SHA-2, HMAC

 

5. 대칭 암호화

DES (데이터 암호화 표준)

  • 64비트 블록 암호화
  • 유효키 길이 56비트 (총 64비트)
  • XOR연산으로 16라운드 암호화 수행

ECB (전자 코드북) 모드

  • 가장 간단한 최소한의 보안을 제공
  • 충분한 블록이 수집 될 경우 해독가능
  • 짧은 전송에만 사용

CBC (암호화 블록 체이닝) 모드

  • 각 블럭을 바로 앞의 암호화된 블록과 XOR연산 후 암호화
  • 첫 블록은 IV를 구현 후 XOR 함
  • 한 블록이 손상되면 다음 블록도 손상되어 복호화 불가능

CFB (암호화 피드백) 모드

  • CBC의 스트리밍 암호화 버젼
  • 메시지를 블록으로 나누는 대신 블록 크기의 메모리 버퍼를 사용

OFB (출력 피드백) 모드

  • CFB와 거의 같은 방식
  • 암호화된 이전 블록을 XOR하는 대신 평문 시드값과 XOR함
  • 첫 블록에는 IV와 시드값이 사용됨. 다음 시드 값은 이전 시드값에 DES 알고리즘을 적용.
  • 장점: 체이닝 함수가 없음. 전송에러가 전송되지 않음.

CTR (카운터) 모드

  • CFB, OFB와 같은 스트림 암호화
  • 시드값에 카운터를 사용함
  • 에러가 전파되지 않음

 

3DES (3중 DES)

  • 64비트 블록암호화가 안전하지 않아서 더욱 진보된 암호화

DES-EEE3

  • 3개의 다른키(K1,K2, K3)을 사용해 3번 암호화
  • E(K1,E(K2,E(K3,P)))
  • 168비트 유효키 길이(총 192비트)

DES-EDE3

  • 2번째 동작을 복호화로 대체
  • E(K1,D(K2,E(K3,P)))

DES-EEE2

  • 2개의 키만 사용
  • E(K1,E(K2,E(K1,P)))
  • 112비트의 유효키 길이(총 128비트)

DES-EDE2

  • 2개의 키를 사용하며 2번째 동작을 복호화로 대체
  • E(K1,D(K2,E(K1,P)))

=> 이론적으로는 모두 같은 안정성을 제공한다.
 

IDEA (국제 데이터 암호화 알고리즘, International Data Encryption Algorithm)

  • 64비트 평문/암호문 블록에 대해 동작
  • 키 길이 128비트
  • PGP에서 구현

 

블로피시 (Blowfish)

  • 64비트 블록에서 동작
  • 가변 키 길이 32비트~448비트
  • 키 길이가 길면 소비시간이 길어지지만, IDEA나 DES보다 빠름

 

스킵잭 (Skipjack)

  • FIPS 185, EES(날인된 암호화 표준)에 사용되기 위해 승인
  • 64비트 블록에서 동작
  • 키 길이 80비트
  • 혼돈 추가: 암호키들은 날인을 지원

 

AES (Advanced Encryption Standard)

  • FIPS 197: AES 또는 라인돌을 사용
  • 128비트 블록처리 지원
  • 키 길이: 128, 192, 256 비트
  • 128비트 키는 10라운드 암호화
  • 192비트 키는 12라운드 암호화
  • 256비트 키는 14라운드 암호화

 

*대칭 암호화 방법표

이름블록크기키 길이
AES128128, 192, 256
라인돌 (Rijndeal)Variable128, 192, 256
블로피시(SSH에 사용)Variable1 - 448
DES6456
IDEA (PGP에 사용)64128
RC264128
RC4Streaming128
RC532, 64, 1280 - 2040
스킵잭6480
3DES64112, 168
투피시1281 - 256

 

대칭키의 관리

- 비밀키의 생성, 배포, 저장, 폐기, 복구, 날인 과정의 보호
 

대칭키의 생성과 배포

  • 오프라인 배포
    • 키 관련 자료를 물리적으로 교환하는 것
    • 가로채임, 도청, 분실 가능성
  • 공개키 암호화
    • 초기통신을 공개키로 설정한 뒤 공개키 링크를 통해 비밀키를 교환
  • 디피-헬만
    • 위의 두 방법이 충분하지 않을 경우 키 교환 알고리즘을 통해 교환. 
    • 1<g<p 조건의 정수 g와 소수 p를 사용

 

대칭키의 저장과 폐기 

  • 저장 요령
    • 암호화 키와 암호화 데이터를 같은 장소에 보관하지 말 것.
    • 민감한 키는 2명의 개인에게 키의 반쪽씩 제공.
  • 사용자가 조직에서 벗어나거나 접근권한이 없어질 경우 키가 변경되어야 하고, 모든 암호화된 자료들은 재암호화 되어야 한다.

 

키 에스크로와 복구

  • 공평한 암호 시스템
    • 비밀키가 2개 이상 조각으로 나눠져서 독립된 제 3자에게 주어진다.
      키 접근을 위한 정부의 승인을 받으면 법정명령을 제 3자에게 제공하고 키를 제조합 한다.
  • 에스크로 암호화 표준: 암호문을 복호화 할 수 있는 기술적 도구를 정부에 제공.
    예: 스킵잭 알고리즘

=> 법적, 프라이버시 문제를 해결하기 힘들 것으로 예상되고, 대중이 정부의 잠재적인 침입을 허용하지 않을 것.
 

6. 암호화 생명주기

- 암호화 알고리즘을 선택 할 때, 암호화 생명주기를 반드시 숙지 해야함.

  • 조직에서 사용 가능한 암호화 알고리즘 선택.
    예: AES, 3DES, RSA 등
  • 정보의 민감성에 따라 알고리즘에 사용될 키 길이를 인지.
  • 사용 가능한 안전전송 프로토콜을 나열.
    예: TLS, SSL
728x90
반응형