코딩공작소

암호화/복호화 본문

강의정리/정보보호론

암호화/복호화

안잡아모찌 2018. 11. 23. 16:52

1. 기본 개념


1) 상징 

p : plain text ( p1, p2, ... )

c : cipher text ( c1, c2 , ... )

enc : 암호화 알고리즘

dec : 복호화 알고리즘

e : 암호화 키

d : 복호화 키


c = enc ( p , e ) // 암호화 과정 e는 암화화 키.

p = dec ( c , d ) // 복호화 과정 d는 복호화 키.


Symmetric ( 대칭 키 )

Asymmetrci ( 비대칭 키 )



2) 기본 암호화 기술

shift cipher (시저 방법 ) 

subtitution



2. 대칭 키 알고리즘


대칭 키 알고리즘에서, 암호화 키는 복호화 키와 같거나 거의 비슷하다.

가깝게 연관되어 있는 하나의 키로 나머지 키를 쉽게 계산할 수 있다.

DES기법이 이에 속한다.


**대칭키 알고리즘의 문제점 : 

 - 빠르고 이용하고 쉽지만 brute-force 어택에 무너질 수 있다.

 - 키 분배의 문제. G마켓으로 신용카드 번호를 보내고 싶을 때, DES를 사용하면 G마켓과 너는 

    같은 64비트 키를 공유 해야 한다. 키를 바꿀 때도 그 키를 상대방에게 알게 해주기 위한 것이 힘들다.



3. 비대칭 키 알고리즘 (public key 알고리즘)


암호화 키는 복호화 키와 다르다.

2가지의 키 (public key, private key를 가지고 있다.)

하나의 키를 기반으로 다른 하나의 키를 알아내는것이 거의 불가능 하다.

RSA기법이 이에 속한다.



4.RSA


1) 기본 개념

relative prime : 두개의 숫자의 GCD가 1 이면 이것을 relative prime이라고 한다. 21,10 은 relative prime이다.

phi function : phi(N)은 [1, ... , N-1] 안에 있는 숫자중 N과  relative prime을 이루는 수의 개수 이다.

ex) phi(8) = 4 because {1,3,5,7}


만약 N이 prime number이면 phi(N) = N-1이고 , phi(P*Q) = (P-1)*(Q-1) ,if P , Q are prime numbers.

ex) phi(15) = phi(3*5) = 2*4 = 8 //{1,2,4,7,8,11,13,14}


알고리즘은 RSA글에 따로 정리


2) RSA의 보안성

n,e가 알려져 있고, n으로 부터 d를 계산하는 것은 거의 불가능하다. n의 비트의 숫자가 RSA키의 길이이다.

1024 비트가 medium security라고 여겨진다.

(n,e) : public key

(n,d) : private key




5.public key system의 사용


1) 전자서명

(M, enc(H(M),d_A) 

M : document

H(M) : hash value of M

enc( H(M) , d_A ) : private key A를 이용해 H(M)을 암호화 한것.


수신자는 H(M)과 hash value를 비교함으로써 M의 타당성을 체크 할 수있다.

H(M)은 enc( H(M) , d_A )를 해독함으로 얻어낼 수 있다. e_A는 공개키이다.

만약 누군가가 M을 바꾸면, H(M)이랑 불일치한다. 



2)public key certificate (X.509)

CA ( Certificate Authority ) : 디지털 시그니쳐를 증명서에 제공한다.

사람이나 단체가 다른 CA들로 부터 certificate을 얻을 수 있다. CA는 certificate안에 있는 정보들을 검증하고 

그것에 디지털 시그니쳐를 붙인다. 

X509는 무슨 정보가 certificate에 제공되어야 하는 지를 명시화한다.


인증서 구조

X.509 v3 디지털 인증서의 구조

  • Certificate
    • Version 인증서의 버전을 나타냄
    • Serial Number CA가 할당한 정수로 된 고유 번호
    • Signature 서명 알고리즘 식별자
    • Issuer 발행자
    • Validity 유효기간
      • Not Before 유효기간 시작 날짜
      • Not After 유효기간 끝나는 날짜
    • Subject 소유자
    • Subject Public Key Info 소유자 공개 키 정보
      • Public Key Algorithm 공개 키 알고리즘
      • Subject Public Key
    • Issuer Unique Identifier (Optional) 발행자 고유 식별자
    • Subject Unique Identifier (Optional) 소유자 고유 식별자
    • Extensions (Optional) 확장
      • ...
  • Certificate Signature Algorithm
  • Certificate Signature


인증서 파일 확장자

  • .CER - CER 암호화 된 인증서. 복수의 인증서도 가능.
  • .DER - DER 암호화 된 인증서.
  • .PEM - (Privacy Enhanced MailBase64로 인코딩 된 인증서. "-----BEGIN CERTIFICATE-----"와 "-----END CERTIFICATE-----" 가운데에 들어간다.
  • .P7B - .p7c 참조.
  • .P7C - PKCS#7 서명 자료 구조(자료는 제외), 인증서이거나 CRL(복수도 가능).
  • .PFX - .p12 참조.
  • .P12 - PKCS#12, 공개 인증서와 암호로 보호되는 개인 키를 가질 수 있다(복수도 가능).




'강의정리 > 정보보호론' 카테고리의 다른 글

암호학과 전자서명  (0) 2018.12.06
RSA알고리즘  (0) 2018.12.06
DES알고리즘  (0) 2018.11.23
버퍼오버플로우  (0) 2018.09.30
레지스터  (0) 2018.09.29