암호화
암호화(encryption)란 일상적인 문자로 쓰이는 평문을 암호키를 소유하지 않은 사람이 알아볼 수 없도록 암호문으로 변환하는 것이다.
개요
암호화는 알고리즘을 이용하여 누구든 읽어볼 수 있는 평문으로 저장된 정보를 암호 인증키를 가진 사람만이 볼 수 있도록 암호문으로 변환하는 것을 말한다. 이러한 과정을 통해 암호화된 형태로 정보를 저장하거나 전송할 경우 제3자의 공격에 의해 데이터가 손실 및 변조되는 것을 예방할 수 있다. 또한 인증키를 소유하지 않은 사람은 데이터에 접근할 수 없기 때문에 일종의 사용자 인증 기법으로서 데이터를 안전하게 보호할 수 있게 된다. 암호화 체계는 복호화 키와 암호화 키의 일치 여부에 따라 크게 대칭키 암호화 기법, 비대칭형 공개키 암호화 기법으로 나뉘며 그 외에도 일방향 암호화 기법인 해시 암호화 기법이 있다.[1]
특징
암호화 키
고전 암호의 한계는 암호화 알고리즘을 알아내면 암호문을 해독이 가능하다는 것이며, 컴퓨터의 등장과 발전으로 급상승한 계산 능력 앞에 고전 암호는 무용지물이 되었다. 따라서 현재 암호화 기술의 핵심은 임의의 문자열 값인 '암호화 키'이다. 암호화 키는 난수이다. 정확한 의미로의 난수는 아닌 의사난수지만, 암호학에서 사용하는 통계학 입각 기준에 따라 일정 수준 이상의 의사난수를 난수로 가정한다. 적절한 암호화 키를 사용한다면 암호화 알고리즘이 노출되더라도 키 없이는 해독할 수 없다. 한시적이긴 하나 잠정적으로는 완벽한 현재 암호화 기술의 명세는, 어떤 키를 사용해 메시지 내용을 감추느냐, 즉 키의 성질을 바탕으로 이루어진다. 암호화 키의 동작은 수리 논리학의 '배타적 논리합' 연산에 따라 이루어진다. 이진법으로 표현한 수의 각 비트에 대한 가감산 결과를 비트간 배타적 논리합이라 한다. 비트간 배타적 논리합은 특정 비트의 반전이므로, 반복하면 원래값이 된다. 즉, P 라는 원문을 K 라는 키값을 이용해 연산하면 P + K 라는 암호문이 되는 방식이라고 할 수 있다. 이 암호문을 K 키값을 이용해 연산하면, (P + K) + K = P 원문 P 로 복호화할 수 있다. 예를 들어, 원문 0011 은 키값 0110 을 이용해 연산하면 암호문 0101 이 되고 이는 다시, 0101 + 0110 = 0011 재연산을 거쳐 원문으로 복호화되는 방식이다. 암호화 키의 길이, 키 사용 회수 등에 제한이 없다면 완벽한 암호화를 이룰 수 있다. 하지만 보안이란 보안에 드는 비용이 보안 대상의 가치보다 적을 때 유효하다. 따라서 암호화에 있어 가장 중요한 요소인 암호화 키의 규격에 대한 일정한 표준이 존재한다. 현재 암호화 규격은 양자연산 등 완전히 새로운 컴퓨팅 방식의 등장 이전까지는 안전하다고 볼 수 있다.[2]
암호화 시스템
암호화 기술의 비범함 기준은 비즈니스라고 할 수 있는데, 비즈니스 요건에 따라 암호화를 수행하는 위치나 데이터의 특성이 달라진다. 그러므로 암호화 기술은 시스템과 비즈니스 전반에 걸친 이해가 필수적이다. 사업적 필요에 따른 여러 환경에서의 암호학 원론의 기술적 적용을 암호화라고 할 수 있고, 암호화의 예로는 최근 설계하고 구축된 모바일 메신저 애플리케이션을 들 수 있다. 최초 요구는 메신저로 통신한 대화 내용이 저장되는 DBMS의 데이터 암호화였다. 하지만 보안 침해 사고의 일반적 행태에 비추어 보면 위 구성으로는 충분한 보안성을 이룰 수 없다. 실제 필요한 웹 애플리케이션 암호화의 요구사항은 아래와 같다.
Client | WAS | DBMS |
---|---|---|
사용자 인증 암호화 | 사용자 인증 암호화 | 사용자 인증 암호화 |
주요 파일 암호화 | · | · |
전송 구간 암호화 | 전송 구간 암호화 | · |
· | 메시지(대화) 암호화 | 메시지(대화) 암호화 |
· | 주요 파일 암호화 | · |
· | · | 개인정보 암호화 |
· | · | 암호화 데이터 접근제어 |
암호화 키 안전한 관리 (저장 및 접근제어) |
암호화 키 안전한 관리 (저장 및 접근제어) |
암호화 키 안전한 관리 (저장 및 접근제어) |
사용자 인증 암호화, 구간 암호화, 메시지 암호화, 파일 암호화 그리고 키 관리가 포함된 구성이다. 모든 종류의 보안 시스템 구성은 안전한 IT 시스템 설계 원칙을 따른다. 따라서, 완벽한 암호화 기술 적용을 위해서는 시스템의 모든 계층과 모든 영역을 고려해야 한다. 애플리케이션 – 시스템 – 네트워크, 3개 계층 모두 적절한 암호화가 적용되고, 안전한 키 관리와 권한 관리 및 접근 제어를 통해 완벽한 암호화를 이룰 수 있다.
종류
- 대칭키 암호화
- 대칭키 암호 알고리즘을 사용하여 전송하고자 하는 평문을 암호화하고 복호화하는데 동일한 키를 사용하는 방식이다. 대칭키 암호화 방식은 공개키 암호화 방식에 비해 빠른 처리속도를 제공하고, 암호키의 길이가 공개키 암호화 방식보다 상대적으로 작아서 일반적인 정보의 기밀성을 보장하기 위한 용도로 사용되고 있다. 반면에 정보 교환 당사자가 동일한 키를 공유해야 하므로 여러 사람과의 정보 교환 시 많은 키를 유지 및 관리해야 하는 어려움이 있다. 대표적인 대칭키 암호 알고리즘은 국내의 SEED, ARIA, LEA, HIGHT 국외의 AES, 블로피시(Blowfish), 카멜리아(Camellia) 등이 있다.[3]
- 공개키 암호화
- 공개키 암호 알고리즘을 사용하여 암호화하며 공개키와 개인키의 키 쌍이 존재하여 평문을 암·복호화 하는데 서로 다른 키를 사용하는 방식으로 비대칭키 암호화 방식이라고도 불린다. 공개키 암호화 방식은 데이터 암호화 속도가 대칭키 암호화 방식에 비해 느리기 때문에 일반적으로 대칭키 암호화 방식의 키 분배나 전자서명 또는 카드번호와 같은 작은 크기의 데이터 암호화에 많이 사용되고 있다. 대표적인 공개키 암호 알고리즘으로는 국외의 RSA, 엘가멜(ELGamal), ECC 등이 있다.[3]
- 일방향 암호화
- 해시함수를 이용하여 암호화된 값을 생성하며 복호화 되지 않는 방식이다. 해시함수는 임의의 길이를 갖는 메시지를 입력으로 하여 고정된 길이의 해시값 또는 해시 코드라 불리는 값을 생성하며, 동일한 입력 메시지에 대해 항상 동일한 값을 생성하지만 해시값만으로 입력 메시지를 유추할 수 없어 비밀번호와 같이 복호화 없이 입력 값의 정확성 검증이 필요한 경우 등에 사용되고 있다. 대표적인 해시함수로는 국외의 SHA-2(224/256/384/512), SHA-3, RIPEMD-160, 월풀(Whirlpool) 등이 있다.[3]
각주
- ↑ 이스트시큐리티 공식 홈페이지 - https://www.estsecurity.com/public/product/alyac
- ↑ 펜타시큐리티시스템(주) 공식 홈페이지 - http://a.to/19KXhOn
- ↑ 3.0 3.1 3.2 〈개인정보의 암호화 조치 안내서〉, 《한국인터넷진흥원》, 2017-01
참고자료
- 이스트시큐리티 공식 홈페이지 - https://www.estsecurity.com/public/product/alyac
- 〈개인정보의 암호화 조치 안내서〉, 《한국인터넷진흥원》, 2017-01
- 펜타시큐리티시스템(주) 공식 홈페이지 - http://a.to/19KXhOn
같이 보기