certificate

최근글


새댓글


Hot Deal


Linux 분류

정보보안 기사 필기 (2)

컨텐츠 정보

본문

이글을 유지보수 중입니다.
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
등록된 댓글이 없습니다.
전체 33 / 1 페이지
RSS
번호
제목
이름