암호화 양방향, 단방향, 공개키(비댕칭키), 비공개키(대칭키) 개념/분류 알고리즘 정리
- JAVA/프로그래밍 이론
- 2018. 5. 8. 01:27
암호화 양방향, 단방향, 대칭키(비공개키), 비대칭키(공개키) 개념/분류 알고리즘 정리
양방향 단방향 알고리즘
우선, 가장먼저 분류되는 방식은 양방향, 단방향 알고리즘이다. 간단하게 말해서 양방향 알고리즘은 암호화된 암호문을 복호화 할 수 있는 알고리즘을 의미한다. 반대로 단방향 알고리즘은 암호화는 수행하지만 절대로 복호화가 불가능한 알고리즘을 말한다. 양방향 알고리즘은 대표적으로 대킹키(비공개키) 방식과 비대칭키(공개키) 방식으로 나눠지며, 단방향은 Hash방식이 대표적이다.
- 양방향 알고리즘 : 암호화, 복호화 가능
- 단방향 알고리즘 : 암화화 가능, 복호화 불가
대칭키(비공개키) 비대칭키(공개키) 방식
- 대칭키(비공개키) 방식
- 특징 : 암복호화에 서로 동일한 키가 사용되는 암호화 방식. 그래서 키를 비공개한다.
- 장점 : 속도가 빠르다.
- 단점 : 키 배송 위험성 존재하여 송신 측에서 수신측에 암호 키를 전달하는 과정에서 노출우려가 있다.
- 대표 : DES, AES
- 비대칭키(공개키) 방식
- 특징 : 암복호화에 서로 다른 키가 사용되는 암호화 방식. 하나의 키는 공개키로 사용.
- 장점 : 키 배송의 문제를 근본적으로 차단하여 안전성이 높다.
- 단점 : 대칭키(비공개키)방식에 비해서 느리다.
- 대표 : RSA
비대칭키(공개키)
비대칭형 암호는 이름 그대로 암호화 키와 복호화 키가 다르다. 암호화를 하면 하나의 키쌍이 생기고 이 두개의 키는 수학적으로 밀접한 관계를 가지고 있다. 두개의 키를 각각 키A, 키B라고 했을 때 키A로 암호화한 암호문은 키B로만 복호화 할수 있고 키B로 암호화한 암호문은 키A로만 복호화 할수 있다. 따라서 이중 하나의 키만 비밀로 보호하고(이를 '비밀키', '개인키'라고 한다) 다른 하나의 키는 공중에게 공개해도 관계가 없다(이를 '공개키'라고 부른다). 이렇게 둘 중 하나의 키는 반드시 공개되어야 통상적인 사용이 가능함으로 공개키 암호라고도 불린다. 공개키로 암호화한 암호문은 어차피 개인키를 가진 사람만이 풀어볼 수 있으므로 상호간에 공개키만 교환하고 상대의 공개키로 암호화를 해서 데이터를 교환하면 상대는 자신의 개인키로 복호화를 한다. 따라서 키 배송 문제는 근본적으로 발생하지 않는 것.
하지만 비대칭형 암호는 암복호화가 대칭형 암호에 비해 현저하게 느리다는 문제점이 있다. 따라서 현실적으로는 비대칭형 암호를 이용해서 대칭형 암호의 키를 배송하고 실제 암호문은 대칭형 암호를 사용하는 식으로 상호보완적으로 이용하는 것이 일반적이다. 그리고 비대칭형 암호라고 약점이 없는 것은 아니어서 중간자 공격(MITM : Man In The Middle Attack)에는 취약하다. 해커가 중간에서 통신을 가로채어 수신자에게는 송신자인 척하고 송신자에게는 수신자인 척 해서 양쪽의 공개키와 실제 암호화에 사용되는 대칭키를 모두 얻어내는 기법.
또한 개인키-공개키 관계를 역이용해서 전자서명에 활용하기도 하는데, 특정한 문서를 개인키로 암호화해서 발송하면 이 문서는 해당 발신자의 공개키로만 복호화가 가능하다. 공개키이므로 아무나 열어볼 수는 있지만 해당 발신자의 공개키로만 열린다는 사실에서 이 문서가 해당 발신자에게서 온 것이라는 사실을 인증할 수 있는 것.
단방향 암호화 방식
암호화 총정리
출처 :
'JAVA > 프로그래밍 이론' 카테고리의 다른 글
EJB CMT 방식의 2PC XADatasource처리방식 (0) | 2018.05.15 |
---|---|
TCP 연결부터 종료 과정 3-way Handshaking, 4-way Handshaking (0) | 2018.05.04 |
AtomicInterger 완전정복 - CAS알고리즘(compareAndSet) (0) | 2018.05.03 |
JAVA 접근제한자 public protected default private (0) | 2018.05.01 |
HTTP 응답코드 메소드 정리 GET, POST, PUT, PATCH, DELETE, TRACE, OPTIONS (1) | 2018.05.01 |
이 글을 공유하기