암호화 알고리즘(Cryptography algorithm)
- 정보처리기술사/보안
- 2016. 10. 27.
암호화(Cryptography) 란?
암호화의 특성
- 인증(Authentication) : PKI 사용자에 대한 신원확인 기능 수행
- 기밀성(Confidentiality) : 송수신자 이외에는 송신내용의 인지 불가능
- 무결성(Integrity) : 정보의 조작 및 변경 여부를 확인
- 부인봉쇄(non-repudiation) : 송수신자의 송수신 사실 부인을 봉쇄함
- 가용성(Availability) : 정합한 요구 시 서비스 제공
암호화의 설계 원칙
암호화 설계의 원칙이란, 한마디로 암호화가 깨지지 않게하기 위한 방법이란 말과 동일하다. 암호화가 쉽게 깨지면 사실상 암호화 알고리즘으로서 생명을 읽는거나 마찬가지이기 때문에 암호화의 설계 원칙을 따른 암호화 알고리즘은 무엇보다 중요할 것이다.
암호화의 설계원칙으로 암호학자이자 컴퓨터 과학자인 샤넌의 혼돈(Confusion)과 확산(Diffusion)이 존재한다.
혼돈이란, 평문과 암호문과의 상관관계를 은닉하는 원칙으로서, 한마디로 혼돈스럽게 만들어서 암호를 유추하기 힘들게 만드는 것을 뜻한다. 확산은 평문의 통계적 특성을 암호문 전반에 확산하는 것으로 알고리즘의 패턴 추론을 어렵게 만드는 것이다.
Claude Elwood Shannon (April 30, 1916 – February 24, 2001)
좀 더 쉽게 설명하면, 혼돈은 원문의 내용을 짐작하지 못하게 만드는 것이고, 확산은 암호화의 알고리즘을 추론하지 못하게 만드는 것이다. 위 2가지를 기본으로, 추가적인 알고리즘이 적용이 되는 것이 암호화 알고리즘이다.
암호화의 안정성을 위한 방안
암호는 무차별의 공격(Brute Force Attack)에 의해 언젠가는 깨질 수 밖에 없다. 이러한 사실을 인지하고, 암호화의 안정성을 끌어올리는 방법은 키의 길이를 길게 하는 방법과 키를 주기적으로 자주 교체를 해야 하는 것이다. 사실 암호화나 우리가 사이트에서 사용하는 비밀번호 역시 무차별 공격으로 뚫릴 수 밖에 없다.
비밀번호를 해킹당하지 않게 하기 위해서 어떻게 해야 하는지, 생각을 한다면 암호화의 안정성을 위한 방안 역시 쉽게 이해갈 수 있을 것이다.
비밀번호를 해킹당하지 않기 위한 방법은, 무의미한 난수의 값과 글자수 증가, 그리고 잦은 패스워드의 교체이다. 비밀번호를 자주 교체하고, 난수의 값으로 써야 해커들의 먹잇감이 되지 않는다는 사실을 깨달으면, 당연히 암호화의 안정성을 위해서는 알고리즘이 무너져도, 키 자체를 뚫기 힘들면 결국 안정적인 암호화가 이루어지는 것이다.
암호화 개념도
암호화는 평문을 암호하 알고리즘과 암호화 키를 이용하여, 암호문을 만들고, 복호화를 수행해야 하는 경우는 암호문을 복호화 알고리즘 + 복호화 키를 이용하여, 평문으로 만드는 방식이다.
암호화 구성요소
- 평문(Plain-text) : 암호화를 하고자 하는 문자, 내용
- 암호문(Cipher-text) : 평문을 암호화 알고리즘과 키를 이용하여 암호화한 문장
- 암호화(Encryption) : 평문을 암호화 키를 이용하여 암호문으로 변화시키는 과정
- 복호화(Decryption) : 복호화 키를 이용하여 원래의 평문으로 변화시키는 과정
암호화 기술과 알고리즘 유형
가. 암호화 기술
나. 암호화 알고리즘 유형
- 대체(Substitution) : 문자 대체표를 이용하여 해당 문자를 대체
- 블록화(Blocking) : 열과 행을 바꾸어 표현한 후 블록 구성
- 치환(Transposition) : 문자열의 위치를 서로 바꾸어 표현
- 확장(Expansion) : 무의미한 문자를 삽입하여 문자열을 확장
- 압축(Compaction) : 문자열에서 일부 문자를 삭제하여 압축문과 삭제문을 분리
'정보처리기술사 > 보안' 카테고리의 다른 글
시큐어 코딩(Secure Coding) (1) | 2017.05.02 |
---|---|
보안운영체제(Secure OS, 시큐어 OS), 신뢰성 운영체제(Trusted OS) (0) | 2016.10.28 |
내부 네트워크의 접근을 통제하는 NAC(Network Access Control) (1) | 2016.10.26 |
악의적인 목적의 코드, 악성코드(Malicious Code) (2) | 2016.10.22 |
실시간 방어를 위한 솔루션, 침입차단시스템(IPS, Intrusion Prevention System) (0) | 2016.10.04 |