Network

암호화/복호화, 암호 알고리즘

__bo0o_ 2018. 12. 25. 07:44


암호 공부 중에 이해한 것을 바탕으로

요약 정리하여 포스팅 해보도록 하겠습니다!


암호화/복호화


암호화(encryption)은

누군가가 읽어볼 수 없도록

알고리즘을 이용하여 정보(평문)를 전달하는 과정이고


이를 복호화(decryption)함으로써

암호화된 정보를 다시 읽을 수 있다.


즉 암호는 개인정보 보호와

악의적인 공격자의 공격으로 인하여

데이터가 누출되었을 때

중요한 자료들을 바로 가져갈 수 없도록 처리하는 역할을 한다.



암호 알고리즘

데이터를 암호화를 하기 위해서

암호 알고리즘이 쓰이고

암호는 크게

대칭형 암호와 비대칭형 암호 2가지로 나눌 수 있다.


대칭형 암호는

암호화할 때 사용하는 키와

복호화할 때 사용하는 키가 동일한 암호화 기법이다.

예를 들어

만약 HELLO라는 문자열을

ABCDE로 암호화했다면 복호화도 반드시 ABCDE로 해야한다.

ex) AES


그런데

대칭형 암호에는 키 배송에 관한 문제가 있다.


송신 측에서는 문장을 암호화한 후에

수신 측에 어떻게든 암호 키(ABCDE)를 전해야하고,

전달하는 과정에서

이 암호 키가 털리면 속절없이 평문이 털리게 된다는 것이고,

이 키 배송 문제를 해결한 방식이 비대칭형 암호이다.


비대칭형 암호는

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

상대방의 공개키로 암호화를 하면

(a, b) 하나의 키 쌍이 생기고

이 두 키는 수학적으로 밀접한 관계를 가지고 있다.


예를 들어

클라이언트가 S의 공개키

평문을 암호화한 후에 서버에게 보내면,


서버는 자신의 S 비밀키를 가지고

클라이언트가 암호화하여 보낸 암호문을 복호화한다. 


따라서 자신의 비밀키로 복호화하기 때문에

공개키가 중간에 탈취되어도,

공개해도 역시 상관이 없다.


하지만 비대칭형 암호는 암/복호화가 대칭형 암호에 비해

현저하게 느리다는 문제가 있기 때문에


현실적으로는

대칭형 암호의 키(ex) ABCDE)를

비대칭형 암호 방식인 상대방의 공개키로 암호화해서 전달하고,


실제 암호문은 대칭형 암호를 사용하는 식으로

상호보완적으로 이용하는 것이 일반적이다.

이렇게 하면 대칭형 암호의 키(ABCDE)를 모르기 때문에 복호화를 할 수 없지만

비대칭형 암호도 중간자 공격에는 취약하다.



참고의 마지막 사이트에는

비대칭형 암호일 때

개인키와 공개키를 만드는

수학적 원리가 자세하게 설명되어있습니다!!! 참고하시길!


참고

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

https://namu.wiki/w/%EC%95%94%ED%98%B8%20%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

중간자공격

http://rhammer.tistory.com/24


'Network' 카테고리의 다른 글

Wireshark filter 정리  (0) 2022.07.26
pypcap을 이용한 sniffer 만들기  (0) 2019.05.08
Form 태그, GET, POST 방식  (0) 2018.12.25