[정보보호기술] 2강. 암호 (Cryptography)

암호 (Cryptography)


암호개요

암호학 (Cryptology)


암호 (Cryptography)


암호화 기술


암호 프로토콜 기술


암호해독 (Cryptanalysis)


암호 복호화 과정(Cryptosystem)


평문 (M) => 암호화 (E(M) => C) => 암호문 (C) => 복호화 (D(C) => M) => 평문 (M)


암호 용어

용어 의미
평문 (Plain Text : M or P) 암호화가 되지 않은 평범한 data 또는 메시지
암호문 (Cipher Text : C) 암호화된 형태의 data나 메시지
암호화 (Encryption : E) 평문을 암호문으로 변환하는 과정
복호화 (Decryption : D) 암호화의 역조작, 암호문을 본래의 평문으로 복원하는 과정
암호화 키 Ke 암호화 과정에서 사용하는 파라미터
복호화 키 kd 복호화 과정에서 사용하는 파라미터
암호 알고리즘 (Cryptographic Algorithm) 암포화와 복호화에 사용되는 수학적인 함수(과정)이며, 암호화 알고리즘과 복호화 알고리즘이 있음
암호해독 (Cryptanalysis) 키를 갖지 않고 본래의 평문이나 키를 얻는 과정


암호시스템 설계요건


암호 방식 : 암호화, 복호화 키에 따라 분류됨

대칭키(비밀키) 암호

비대칭(공개키) 암호


암호의 역사


고전 암호



구분 1세대 (고전암호) 2세대 (근대암호) 3세대 (현대암호)
시대 고대~19세기후반 20세기 초~1940년대 후반 1940년대 말~현재
알고리즘 * 시저암호
* 비게네르 암호
* 뷰포트 암호
* FNIIGMA
* 무라사끼
* M-209
* DES, AES, ARIA
* RSA, ECC
특징 * 암호화 과정이 단순히 문자를 전치하거나 대치하는 방법 * Roter Machine과 같은 복잡한 기계를 사용하여 암호화 * 비밀키 암호알고리즘
* 공개키 암호알고리즘
* Shannon의 정보이론을 시작으로 복잡도가 높은 암호 알고리즘 사용


대칭키 암호

블록 암호 (Block Cipher)

고정된 크기 블록 평문 P   =>   [암호 알고리즘]   =>   고정된 크기 암호문 C


스트림 암호 (Stream Cipher)


초기값, 키 -> 암호 알고리즘 -> 키 스트림(이진수열) ->
평문(이진수열) XOR 키 스트림(이진수열) -> 암호문


블록 암호 알고리즘

DES (Data Encryption Standard)


AES (Advanced Encryption Standard)


SEED


ARIA


공개키 암호

공개키 암호

Symmetic - Key Public - Key
암호화 키 = 복호화 키 암호화 키(공개키) != 복호화 키(비밀키)
암호화 키와 복호화 키 모두 비밀유지 암호화 키는 공개함
n명 참가시 n(n-1)/2개의 Key Pair 저장 n개의 Key Pair 저장
Key Size: Short Key Size: Long


대칭키 암호와 공개키 암호의 장단점

Symmetic - Key Public - Key
계산이 간단하고 속도가 빠름 계산이 ㅂ고잡하고 속도가 느림
키 분배가 불편함 키 분배 용이 (DH)
관리해야 할 키가 상당히 많음 키 관리 부담이 적음
키 변화 빈도가 많음 키 변화 빈도가 적음
비밀키를 아는 자만이 암복호화 가능 비밀키를 몰라도 암호화 가능
난수발생기, 해시함수에 사용가능 전자서명, 키 분배등 응용가능


암호 방식


수학적 어려운 문제에 기반하여 구성

수학적 배경 인수분해문제 이산대수문제 타원곡선 이산대수문제
암호 RSA(78), Rabin(79) Diffie-Hellman(76), DSA, ElGamal(84) 타원곡선암호 (ECC), ECDSA
키크기 2048bit 이상 2048bit 이상 224bit 이상
연산 Zn에서의 연산(정수의 모듈러연산) 유한체 연산 유한체 연산 및 타원곡선연산

모듈러 연산 알아보기


공개키 암호 시스템

RSA 암호


RSA 암호 - Setup

  1. 큰 소수 p, q를 선택함
  2. n = pq를 계산함 (φ(n) = φ(pq) = (p-1)(q-1)) : 오일러 함수 (서로소 갯수 구하는 공식)
  3. 자연수 e를 선택함, Gcd(e, (p-1)(q-1)) = 1
  4. 자연수 d를 선택함, (단 ed = 1 mod (p-1)(p-1))
  5. 공개키 (n,e), 비밀키 (p,q,d)


타원 곡선 암호 (Elliptic Curve Cryptosystem)


암호시스템을 설계할 때 고려해야할 사항이 아닌 것은

  1. 암호시스템의 안전성은 키에만 의존해야 한다.
  2. 암호시스템에 사용되는 알고리즘은 공개해야 한다.
  3. 암호시스템을 손쉽게 사용해야 한다.
  4. 암호화는 쉽게 복호화는 어렵게 계산되어야 한다.

정답 4, 암호 시스템 설계 시 암호화, 복호화 모두 효과적으로 이루어져야 한다.


다음 공개키 알고리즘 중에서 이산대수문제를 기반으로 설계된 것이 아닌 것은?

  1. ElGamal
  2. RSA
  3. DSA
  4. XTR

정답 2, Rabin과 RSA 암호는 인수분해의 어려움에 기반을 둔 공개키 암호이다.