만족

[정보보안] 암호의 이해 본문

[정보보안] 암호의 이해

기타 CS 이론/IT Security Satisfaction 2021. 12. 13. 07:53

암호화를 통해 복호화 키를 가지지 않은 사람은 메시지의 원문을 확인하지 못하게 할 수 있다.

 

대칭키 암호화

대칭키 암호화는 암호화 키와 복호화 키가 같은 암호화 방식을 발한다.

 

대칭키 암호화는 대표적으로 DES 암호화가 있다.

 

https://yjshin.tistory.com/entry/%EC%95%94%ED%98%B8%ED%95%99-%EB%8C%80%EC%B9%AD%ED%82%A4-%EC%95%94%ED%98%B8-DESData-Encryption-Standard

 

[암호학] 대칭키 암호 - DES(Data Encryption Standard)

데이터 암호화 표준 DES(Data Encryption standard) 1. 개요 DES는 대칭형 암호(비밀키 암호)이다. 즉, 암호화 및 복호화 키가 동일하다. 비대칭형 암호에 비해 암호 및 복호 속도가 빠르다. 미국 정부의 상

yjshin.tistory.com

DES암호화는 블럭 암호의 일종으로 메시지를 블록 단위로 쪼갠 뒤

S-box(알려진 값)을 이용해 혼돈과 확산을 유발한다.

 

이후 P-box의 값을 참조하여 S-box에 넣고 돌린 결과를 셔플한다.

 

DES는 이미 깨져버린 암호화 방식으로 1988년 미국 정부에서 사용을 중단했다.

 

대칭키 암호화: 트리플 DES

DES 암호화가 깨진 후, 대체할 암호화 방식이 아직 나오지 않았을 때 사용했던 방법이다.

 

2개의 키를 이용해 암복호화 시 3번의 DES를 사용한다.

 

2개의 키 K1, K2(키의 크기는 56 bit)를 이용해

평문을 암호화할 때 암호화(K1), 복호화(K2), 암호화(K1)을 하고

다시 복호화할 떄는 복호화(K1), 암호화(K2), 복호화(K2)를 한다.

 

왜 더블 DES는 없는가?

 

사용하는 키를 k1, k2라 하면

평문을 암호문으로 바꿀 때 암호문 C= D(E(P, k1), k2)이다.

 

그런데 D(C,k2)=E(P, k1)임을 알 수 있다.

 

따라서 모든 키의 경우의 수에 대해 E(P, k1), D(C, k2)를 연산하면

E(P, k1)= D(C, k2)가 성립하는 k1, k2쌍이 반드시 존재한다.

 

따라서 k1, k2의 경우의 수는 2*2^56= 2^57로, 

그렇게 많은 시도횟수 없이도 2^57번의 시도에 무조건 키값을 구해낼 수 있다.

 

대칭키 알고리즘의 특징

알고리즘이 쉽고, 구현이 간단하므로 연산이 빠르다.

 

그러나 키 분배가 어렵고, 사용자가 늘어날 수록 비밀키의 개수도 증가한다.

 

비대칭 암호화 방식

암복호화에 사용하는 키가 서로 다른 암호화 방식을 말한다.

 

대표적으로 RSA암호화가 있으며, 이는 소인수분해 문제의 어려움을 이용한다.

 

비대칭 암호화 방식: RSA 

 

https://ko.wikipedia.org/wiki/RSA_%EC%95%94%ED%98%B8

 

RSA 암호 - 위키백과, 우리 모두의 백과사전

RSA 암호는 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한

ko.wikipedia.org

 

두 소수 p,q에 대해 n=p*q를 생성한다.

(p-1)(q-1)에 서로소(공약수가 1)인 e를 생성한다.

=> n, e를 공개키로 사용한다.

 

ed 1 mod (p-1)(q-1) 을 만족하는 d를 생성한다. 

여기서 p,q,e를 알고있는 소유자는 d를 빠르게 구할 수 있지만, 모르는 사람은 그렇지 않다.

=> d를 개인키로 한다.

 

암호화할 때는 메시지 M을 C≡ M^e mod n 으로 하고

복호화할 때는 M≡ C^d mod n 으로 한다.

 

비대칭 암호화 방식: RSA 예제

p=3, q=17이라고 하면 n= 3*17= 51 이다.

 

결정한 e는 3(2*16=32에 서로소인 값)이라고 하자.

 

d를 결정하기 위해 3d 1 mod 2*16 을 만족하는 값을 찾으면

d= 11을 선택할 수 있다.

 

따라서 p=3, q=17, n=51, e=3, d= 11이므로

M=2를 암호화할 때 C= 2^3 mod 51= 8이 암호화된 값이고

다시 8을 복호화할 때 8^11 mod 51= 2로 복호화할 수 있다.

 

공개키 알고리즘의 특징

보안 강도가 높고 키 분배, 관리가 매우 효율적이다.

(N명이 통신할 때 모두가 각자의 키를 가지고 있을 필요가 없다)

 

그러나 연산이 복잡하고 느리며, 공개키의 주인을 검증할 수 없다.

=> 진짜 이 공개키가 A의 것이 맞는지?

 

 

 

 



Comments