본문 바로가기
Security

[Security] key 암호화와 복호화

by BTC_오은영석사 2024. 1. 31.

베하~ 안녕하세요! 금쪽상담소의 오은영석사와 금쪽이입니다.

새해가 밝았습니다~!

지난 년도 정말 수고 많으셨고 올해에는 더욱더 좋은 한해 많이 보내시길 바랍니다.

자 이번 시간에는 어떤 내용에 대해 배워볼까요?

key 암호화와 복호화 방식에 대해 알아보도록 하겠습니다!

 


 

암호화와 복호화란?

  • 암호화: 평문을 암호문으로 변환하는 과정
예시 : 평문(“123456”) -> 암호화 -> 암호문(“aEerwlrkn!”)
  • 복호화: 암호문을 평문으로 변환하는 과정
예: 암호문(“aQwqlen!”) -> 복호화 -> 평문(“123456”)

 

 

암호화의 종류

암호화 종류에는 단방향 암호화와 양방향 암호화가 있습니다.

 

단방향 암호화

  • 암호화 후 복호화를 할 수 없는 것이 특징
  • 사용자 비밀번호. 사용자가 입력한 비밀번호를 암호화하여 DB에 저장이 될 때, 모든 접근자(개발자 포함)는 암호화 된 코드를 다시 평문으로 볼 수 없습니다. 이러한 방식으로 해킹이 되어도 복호화가 매우 힘든것이 특징
  • 해시 방식이 대표적
  • 해시 함수: 해시함수는 임의의 길이의 데이터를 입력받아 일정한 길이의 비트열로 반환 시켜주는 함수로 입력값의 길이가 달라도 출력값은 언제나 고정된 길이로 반환되며 동일한 값이 입력되면 언제나 동일한 출력값을 보장하는 함수를 의미

양방향 암호화

  • 암호화와 복호화 모두 가능한 것이 특징
  • 이메일, 번호 또는 전자 서명. 이와 같이 재사용성이 있는 정보는 암호화, 복호화 모두 이루어져하기에 양방향 암호화를 사용
  • 대칭키, 비대칭키 방식이 대표적
양방향 알고리즘
대칭형(비밀키 암호): 암호화, 복호화 시 모두 동일한 키를 사용
비대칭형(공개키 암호): 암호화, 복호화에 서로 다른 키를 사용

 

 

 

대칭형(비공개키 암호) 알고리즘

  • 암호화, 복호화에 서로 동일한 키가 사용되는 암호화 방식으로 키를 비공개하는 것이 특징
  • 속도가 빠르다는 장점이 존재하지만 키 배송 위험성이 존재하여 송신 측에서 수신측에 암호키를 전달하는 과정에서 키가 노출될 우려가 있다는 단점 존재
  • 대표적으로는 AES가 있음

대칭키(비공개키)는 사용하는 키와 복호화 할때 사용하는 키가 동일한 암호화 기법으로, 대게 암호화 알고리즘이라 하면 위 알고리즘을 가리킵니다. 현재 가장 보편적으로 쓰이는 암호화 방식은 현 미국 표준 방식인 AES로 128~256비트 키를 적용할 수 있어 보안성이 뛰어나며 공개된 알고리즘이라 누구나 사용 가능합니다. 그 전에는 DES(Data Encrytion Standard)라는 알고리즘이 1975년부터 사용되고 있었으나 너무 오래되어 취약점이 발견됨에 따라 이를 대체 하기 위해 등장한 것이 AES라고 합니다.

 

대칭형 암호는 훌륭한 암호화 방식이긴 하지만 키 배송 관련으로 결정적인 문제가 존재합니다. 어떻게든 송신 측에는 수신 측에 암호키를 전달해야만 하고, 이 키가 배송과정에서 유출되면 아무리 뛰어난 암호화 알고리즘을 사용했더라도 속절없이 평문이 드러나게 됩니다. 안전하게 평문을 전달하기 위해 만든 것이 암호문인데, 정작 키는 안전하게 전달할 방법이 없다는 것이 가장 큰 단점입니다. 따라서 이 키 배송에 대한 방법이 여러가지 연구되었지만 결국 발상의 전환으로 키 배송 문제를 해결하기 위해 나타난 방식이 바로 비대칭형 암호 입니다.

 

 

 

비대칭형(공개키 암호) 알고리즘

  • 암호화, 복호화에 서로 다른 키가 사용되는 방식으로 하나의 키는 공개키로 사용하는 것이 특징
  • 키 배송의 문제를 근본적으로 차단하여 안정성이 높지만 대칭키 방식에 비해 속도가 느리다는 단점
  • 대표적으로는 RSA가 있음
RSA : 공개키 암호 시스템의 하나로 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 주로 적은양의 데이터나 전자서명에 사용합니다. 대칭키인 DES, AES보다 속도가 느리기 때문에 메시지 암호화에는 쓰이지 않고 주로 키를 암호화하는데에 사용됩니다.

 

비 대칭형 암호는 이름 그대로 암호화 키와 복호화 키가 다른 것 입니다. 암호화를 하면 하나의 키 쌍이 생기고 이 두개의 키는 수학적으로 밀접한 관계를 가지게 됩니다. 두개의 키를 각각 A키, B키 라고 했을 때 A키로 암호화 한 암호문은 B키로만 복호화 할 수 있고, B키로 암호화 한 암호문은 A키로만 복호화 할 수 있습니다. 따라서 이 중 하나의 키만 비밀로 하고(이를 비밀키, 개인키라고 합니다) 다른 하나의 키는 누구에게 공개해도(이를 공개키라고 합니다) 가능한 키가 됩니다.

 

이렇게 둘 중 하나의 키는 반드시 공개 되어야 통상적인 사용이 가능함으로 공개키 암호라고도 불립니다. 공개키로 암호화한 암호문은 어짜피 개인키를 가진 사람만이 풀어볼 수 있기 때문에 상호간에 공개키만 교환하고 상대의 공개키로 암호화를 해서 데이터를 교환하면 자신의 개인키로 복호화를 하게 됩니다. 따라서 키 배송 문제는 근본적으로 발생하지 않게 됩니다.

 

대표적인 예로 인터넷 뱅킹이 있습니다.

  1. 사용자가 인터넷 은행 사이트에 접속하게 되면 사용자 컴퓨터에는 공개키와 비밀키가 생성
  2. 사용자 컴퓨터에서 공개키가 은행으로 전송되면 은행에서는 중요한 정보를 공개키로 암호화하며 암호문을 사용자에게 전달
  3. 사용자는 비밀키로 암호문을 해독하여 중요한 정보를 은행과 공유하며 통신

이러한 공개키 방식은 공인인증서, 전자서명 등에서 사용하고 있는 것이 특징입니다.

하지만 비대칭형 암호는 암호화, 복호화가 대칭형 암호에 비해 현저하게 느리다는 문제점이 존재합니다. 따라서 현실적으로는 비대칭형 암호를 이용해 대칭형 암호의 키를 배송하고 실제 암호문은 대칭형 암호를 사용하는 식으로 상호 보완적으로 이용하는 것이 일반적입니다. 그리고 비대칭형 암호도 약점이 없는것은 아닙니다. 중간자 공격이 바로 그 예시 입니다.

중간자 공격 : 해커가 중간에서 통신을 가로채어 수신자에게는 송신자인 척하고 송신자에게는 수신자인 척 해서 양쪽의 공개키와 실제 암호화에 사용되는 대칭키를 모두 얻어내는 기법

 

 


 

 

이렇게 key 암호화와 복호화에 대해 알아봤습니다.

오늘도 유익한 시간이 되셨을까요?

그럼 다음시간에 만나요! 베빠!

 

출처 : https://www.zehye.kr/etc/2021/09/15/etc_encryt/

댓글