[암호화] 양방향과 단방향 쉽게 이해하기

0

암호화의 종류는?

암호화의 종류는 단방향과 양방향 두가지로 나뉩니다.

1. 단방향 암호화

Untitled

단방향 암호는 암호화한 데이터가 다시 복원할 필요가 없을때 사용됩니다.

단순하게 데이터가 변조되었는지 확인하는것이죠.

일반적으로 MD5와 SHA가 많이 사용되는데, signingReport를 했을떄 많이 본적이 있습니다.

2. 양방향 암호화

양방향 암호는 암호문 복호화가 필요할때 사용됩니다.
어떠한 방식으로 암호화가 되기 때문에 암호를 알아야만 풀수 있습니다.
이러한 암호는 구현방식의 이해라던지 키를 알아야 풀수 있겠죠?

(1) 대칭키

Untitled

대칭키는 하나의 키로 암호화 하는것을 말합니다. 쉽죠??

동일한 키로 암복호화를 하기 때문에 상대적으로 알고리즘 내부가 단순하고, 속도가 빠른것으로 알려져 있습니다.

하지만 양쪽에서 같은 키를 공유해야 한다는 문제가 있기때문에 유출이 된다면 바로 뜷릴 위험이 있습니다.

대칭키로는 DES와 RSA가 있습니다.

(2) 비대칭키

Untitled

비대칭키는 한쌍의 암호키를 만드는 것입니다.

예를들어 은행 계좌번호를 생각해보세요!
송금자는 비밀번호 없이 계좌번호(공개키)를 가지고, 해당계좌로 돈을 보낼수 있죠.
수신자는 자신의 비밀번호(개인 키)로 돈을 꺼내는 방식입니다.

공개키로 암호화하면 해당 공개키로 복호화가 불가능하며, 반드시 개인키로 복호화가 가능합니다.

반면에 개인키로 암호화하면 공개키로만 복호화가 가능하겠죠.

비대칭키로는 RSA가 있습니다.

대칭 키와 비대칭 키 어떤게 좋을까?

대칭키 알고리즘은 암호를 어떻게 보관하느냐가 핵심입니다.
암호화를 하기위해서는 암호가 필요하고, 여는데 같은 암호가 필요하기 때문입니다.

대칭키의 관리 문제 때문에 비대칭키의 암호화가 많이 쓰일수도 있지만, 알고리즘이 상대적으로 복잡하기 때문에 시간이 많이 걸린다고 합니다.

단방향 암호화는 잘 안사용하는걸까?

암호화의 문제점은 암호화를 실행할때 길이가 길어지는것에 문제가 있습니다.

또한 복호화가 필요없는데, 양방향은 시간이 오래걸리는것도 그렇죠.
단방향은 Hash를 이용하기 때문에 문자가 아무리 길더라도 일정한 크기를 유지하게 됩니다.

이로 인해 무결성 검증에서 쉽게 사용할 수 있는것이죠.


참조

RAON CTF - WEB Essential

무조건 이해 시켜드립니다. 대칭키와 비대칭키에 대하여

profile
쉽게 가르칠수 있도록 노력하자

0개의 댓글