암호화 알고리즘(Cryptography algorithm)

    암호화(Cryptography) 란?


    - 메세지의 내용이 불명확하도록 평문(Plain-text)를 재구성하여 암호화된 문장(Cipher-text)으로 만드는 과정
    - 무결성 및 기밀성 확보를 위하여 정보를 쉽게 해독되지 않는 형태로 변환하는 기술
    - 평문(Plain text)을 암호문(cipher text)으로 만드는 과정


    영화, 이미테이션이라는 영화를 보면 독일과의 세계대전을 장면이 나오는데 독일의 암호를 해독하기 위해서 앨런 튜링이 고민을 하다가, 결국엔 "하이 히틀러~" 라는 나치 구호를 토대로 암호문을 해독하게 된다. 사실 암호화와 복호화라는 것이 컴퓨터로 수행되어 진다고, 어려워 할 필요는 없다.

    좀 더 쉬운 예제를 뽑자면, 영화나 소설등에서 성경에 있는 몇장 몇절에 몇번째 단어들을 조합해서, 하나의 문구를 뽑아내고, 그것을 토대로 비밀을 풀어내는 것 역시 암호화라고 볼 수 있다. 여기서 성경이라는 매개체는 암호화 알고리즘에서 사용되는 "암호키" 혹은 "복호키"가 되는 것이고, 몇장 몇절은 단순히, 이 암호화의 알고리즘에 해당이 될 수 있다.

    이렇듯, 암호화라는 것은 정답이 있는 것은 아니나 일반적으로 사용하는 방법은, 데이터를 몇번 섞느냐, 그리고 몇문장씩 만드느냐등으로 암호화를 수행한다. 


    암호화의 특성


    • 인증(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) : 문자열에서 일부 문자를 삭제하여 압축문과 삭제문을 분리


    댓글

    Designed by JB FACTORY