Computer Science/Programming

암호화

by Donghwan 2022. 9. 15.

암호화는 비밀을 다루는 방법이라고 볼 수 있습니다. 암호화는 인류가 기록을 시작한 이래로 다양한 유형으로 존재해 왔습니다. 고대 그리스인들은 '스키테일'이라는 도구를 사용해 메시지를 암호화했고, 제2차 세계대전에서는 독일이 그 유명한 '에니그마' 장비를 사용해 군사적/외교적 통신을 보호 했습니다.

특징

  • 기밀성(Confidentiality) : 암호화된 내용을 알 수 없어야 합니다.
  • 무결성(Integrity) : 내용이 원본과 같다는 것을 확신할 수 있습니다.
  • 가용성(Availability) : 권한이 있는 사람(허가 받은 사람)만 정보에 접근할 수 있어야 합니다.

암호화는 단순히 볼 수 없다고 완성되지 않습니다. 위와 같은 3가지의 기밀을 지키기 위한 요소를 가지고 있어야 합니다.

보호되지 않은 데이터를 평문(plain text), 암호화된 데이터를 암호문(cipher text)라고 합니다. 여기서 평문을 암호문으로 만드는 과정을 암호화(encryption), 암호문을 평문으로 만드는 과정을 복호화(decryption)이라고 합니다.

암호화는 암호 알고리즘과 키를 사용하여 위의 특징을 지키면서 데이터를 해독할 수 없도록 의미없는 문자열로 변환하는 것이라고 할 수 있습니다.

 

고전 암호화 vs 현대 암호화

과거의 암호화는 혼돈과 확산이라는 개념으로 알고리즘을 추론하기 어렵게 만드는 알고리즘 방식이었습니다. 하지만 컴퓨터의 등장과 발전으로 급상승한 계산 능력 앞에 고전 암호는 무용지물이 되었습니다. 따라서 암호화 알고리즘을 알아내면 암호문을 해독할 수 있다는 문제가 있었습니다.

하지만 현재 암호화 기술의 핵심은 임의의 문자열 값인 ‘암호화 키’입니다. 현대의 암호는 알고리즘을 공개해서 검증을 받습니다. 대신 암호를 만들고 풀 때, 비밀 정보를 섞어서 암복호화에 이용하는데 이것이 바로 ‘암호화 키’라고 입니다.

 

암호화 방식

  • 단방향 암호화 방식
  • 양방향 암호화 방식

 

단방향 암호화 방식

  • 복호화 되지 않는 암호법
  • 대표적으로 MD5, SHA-1, SHA-256, SHA-512 등이 존재합니다.
  • 다른 의미로 Hash라고 불립니다. 어떤 데이터를 Hash하게 되면 원래대로 되돌릴 수 없습니다.
  • Hash를 이용하는 이유는 데이터의 무결성과 관련이 있습니다. 어떠한 정보가 원본으로부터 훼손 되었거나 조작 되지 않았는지 파악하는데 Hash만큼 유용한 수단이 없습니다.
  • 간단한 예로 A라는 파일을 원본과 다운받은 파일을 각각 MD5로 암호화 했을 때, 두 값이 일치한다면 다운받은 파일이 위조 또는 변조 되지 않았다고 판단할 수 있습니다.
  • Hash를 사용하는 예시
    • 무결성
    • 전자서명
    • 파일의 식별자
    • 비밀번호 서버에 안전하게 저장할 때

 

양방향 암호화 방식

  • 암호화하면 가장 대표적인 암호법입니다.
  • 암호화와 복호화를 모두 할 수 있는 방식입니다.
  • 정보를 감추는데 중점을 두고 있는 방식입니다.
  • 대칭키 방식과 비대칭키 방식으로 나눌 수 있습니다.

 

대칭키

  • 대표적으로 AES 알고리즘이 가장 대표적입니다.
  • 대칭키 방식은 암호화, 복호화에 모두 동일한 키를 사용하는 것을 말합니다.
  • 대칭키 방식의 단점은 키와 암호문을 인터넷을 통해 동시에 전달하기 때문에 타인이 탈취하여 정보를 확인할 수 있습니다.대칭키 방식

 

비대칭키

  • 공개키 방식이라고도 불립니다.
  • 공개키와 비공개키를 가집니다. (키페어라고도 불립니다.)
  • 대표적으로 RSA 알고리즘이 가장 대표적입니다.
  • 공개키로 암호화를 했다면, 페어인 비공개키로만 복호화를 할 수 있습니다.
  • 비공개키로 암호화를 했다면, 페어인 공개키로만 복호화를 할 수 있습니다.
  • 4번째에 작성한 특징을 이용하여 비대칭키는 대칭키의 단점을 해소할 수 있습니다.
  • 그림과 같이 공개키와 비공개키를 생성하여 공개키를 오픈하고 데이터를 보낼 사람은 그 공개키로 평문을 암호화 합니다. 그리고 다시 비공개키를 가진 상대에게 전송한다면 중간에서 탈취 당하더라도 비공개키가 없기 때문에 복호화를 할 수 없습니다.

 


참고자료

728x90
반응형

댓글