본문 바로가기
Information Technology

암호화(암호화의 발전사, 대칭, 비대칭, 해시) 요약

by JUNE LAB 2016. 8. 15.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

암호화 요약


암호화의 발전사

   메시지를 전달할 때 발신자와 수신자만 이해할 수 있게 해주는 암호는 초기에는 군사와 정치적인 목적으로만 사용되었다. 하지만 최근에는 인터넷 뱅킹에 사용하는 인증서나 열쇠를 대체하는 보안 키패드, 소프트웨어의 시리얼 키, 전자투표 등 일상생활에도 널리 쓰이고 있다. 하지만 암호의 방식이 모두 같은 것은 아니다. 근대에 접어들면서 암호 알고리즘이 표준화되고 있지만, 아직도 다양한 암호화 알고리즘이 만들어지고 사용된 후 사라진다. 암호의 역사와 함께 가장 기본적인 암호화와 복호화 알고리즘을 알아본다. 먼저 암호에 관련된 용어부터 간단히 살펴본다.
암호문(Cipher Text)은 비밀을 유지하기 위해 당사자끼리만 알 수 있도록 꾸민 약속 기호이다. 암호와 반대되는 말은 평문(Plain Text)으로, 누구나 알 수 있게 쓴 일반적인 글을 말한다. 예를 들어 ‘나는 홍길동입니다.’는 평문이고, ‘fdd@#frsfdsR#3r’은 암호문이다.
여기서 평문을 암호문으로 바꾸는 것을 암호화(Encryption), 암호문을 평문으로 바꾸는 것을 복호화(Decryption)이라 한다. 그리고 암호화를 수행하거나, 복호화를 수행할 때 양쪽이 서로 알고 있어야 할 수단을 암호화 알고리즘(Encryption Algorithm), 약속한 규칙을 암호화키(Encryption Key)라고 한다.


암호화

    • 암호문(Cipher Text): 비밀을 유지하기 위해 당사자끼리만 알 수 있도록 꾸민 약속 기호
    • 평문(Plan Text): 누구나 알 수 있게 쓴 일반적인 글


기본 암호화 방식

    • 전치법(Transposition): 단순히 메시지 안에 들어 있는 문자의 위치를 바꾸는 방법
    • 대체법(Substitution): 메시지의 글자를 다른 글자로 대체하여 암호문을 작성하는 방법
    • 단일 치환 암호(Monoalphabetic Substitution Cipher): 시저 암호, 모노 알파베틱 암호
    • 다중 치환 암호(Polygram Substitution): 비즈네르 암호, 플레이어페어 암호


대칭 암호화 방식(암호화 키와 복호화 키가 일치)

    • DES 알고리즘: 1977년 1월 NIST에 의해 암호화 표준으로 지정된 64비트의 블록 암호화 알고리즘으로 56비트 크기의 키로 암호화한다.
    • 트리플 DES 알고리즘: 두 개의 DES 키를 이용해 두 번의 암호화와 한 번의 복호화 또는 두 번째의 복호화의 한 번의 암호화를 수행한다.
    • AES 알고리즘: 128비트 암호화 블록, 다양한 키의 길이(128/192/256 비트)의 알고리즘으로 벨기에의 리즈맨(Rijman)과 대먼(Daemen)의 Rijndael 알고리즘이 2000년 10월 최종 AES 알고리즘으로 선정했다.
    • SEED 알고리즘: 1999년 2월 한국인터넷진흥원과 국내 암호전문가들이 순수 국내 기술로 개발한 128비트 블록의 암호 알고리즘이다.
    • ARIA 알고리즘: ARIA 알고리즘은 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발된 128비트 블록 암호 알고리즘으로 지난 2004년에 국가표준기본법에 의거, 지식경제부에 의해 국가표준(KS)으로  지정됬었다.
    • IDEA 알고리즘: 128비트의 키로 64비트 평문을 8라운드를 거쳐 64비트의 암호문을 생성한다. 모두 16비트 단위로 연산 되도록 하며 16비트 프로세서에서 구현이 용이하며 주로 키 교환에 사용된다.
    • RC5 알고리즘: 키, 라운드 수가 가변인 블록 알고리즘 RC(Ron’s Code 5)로 64비트의 키를 가진다. 속도는 DES 알고리즘의 10배이다.
    • Skipjack 알고리즘: 미국의 NSA에서 개발한 Clipper 칩에 내장되는 블록 알고리즘이다. 전화기와 같은 음성을 암호화하는 데 주로 사용되며 64비트 입출력에 80비트의 키, 총 32라운드를 가진다.

대칭 암호화의 형태

    블록 암호 알고리즘

    • 암호문을 만들기 위해 암호 키와 알고리즘이 데이터 블록 단위로 적용되는 암호화 방법. 평문의 동일 블록들이 하나의 메시지에서 동일한 암호문으로 되지 않도록 하기 위해 이전 암호 블록의 암호문을 다음 블록에 순서대로 적용하는 것이다. 같은 시간에 암호화된 동일 메시지들이 같은 암호문을 만들지 않도록 난수 발생기에 의한 초기화 벡터를 평문의 첫 블록에 조합함으로써 다음 블록들이 이전 암호 블록과 다른 암호문이 된다.

    스트림 암호 알고리즘

    • 선형 시프트 레지스터를 이용한 이진 수열 발생기로 평문을 일련의 비트열로 취급하여 한 번에 1비트씩(때로는 바이트 단위로) 암호화시키는 암호 시스템. 스트림 암호는 빠르게 디자인될 수 있고 실제로 어떠한 블록 암호보다도 빠르다. 블록 암호는 큰 블록 데이터를 사용하지만 스트림 암호는 일반적으로 평문의 작은 단위인 비트를 사용한다. 암호화는 일반적으로 비트 단위 배타적 논리합(XOR) 연산으로 평문과 키 스트림과의 결합에 의해서 생성된다.


비대칭 암호화 방식(암호화의 키와 복호화의 키가 하나의 쌍을 이룸)

    • 비대칭 암호화 방식의 발견: 위트필드 디피와 마틴 헬만이 비대칭 암호화 방식을 통한 키 교환 아이디어를 고안하면서 발견했다.
    • RSA 알고리즘: 1977년 MIT의 로널드 리베스트(Ronald Rivest), 아다 샤미르(Adi Shamir), 레오나르도 애들먼(Leonard Adleman)이 고안했다. 중요 정보를 2개의 소수로 표현한 후 그것의 곱을 힌트와 함께 전송해 암호로 사용한다. 오늘날 산업 표준으로 사용되는 RSA 알고리즘은 충분히 큰 두 소수의 곱을 보고 두 소수를 찾기 어려운 점을 이용한 것으로, RSA에 사용되는 소수는 250자리이다.
    • 비대칭 암호화의 기능
      • 기밀성 확보를 위한 암호화: 수신자의 공개키로 암호화하여 송신한다.
      • 부인 방지 확보를 위한 암호화: 발신자의 개인키로 암호화하여 송신한다.

해시

    • 해시의 특징
      • 해시는 정보를 숨기기 위한 암호와는 달리 정보의 위변조를 확인하기 위한 것으로, 보안에서 사용하는 목적은 무결성 확보이다.
      • 입력되는 평문의 길이가 달라도 결과값의 길이는 같다.
      • 입력되는 평문의 내용이 조금만 바뀌어도 해시값이 완전히 달라진다.
    • 해시의 종류
      • MD5 알고리즘: RSA와 함께 공개키 기반 구조(Public Key Infrastructure)를 만들기 위해 개발되었다. 32비트 컴퓨터에 최적화되어 있다.
      • SHA 알고리즘: 160비트 값을 생성하는 해시 함수로 데이터를 512비트의 블록으로 입력한다.

출처

    • 블록 암호 알고리즘: [네이버 지식백과] 블록 암호 [block cipher, -暗號] (IT용어사전, 한국정보통신기술협회), http://terms.naver.com/entry.nhn?docId=848471&cid=42346&categoryId=42346
    • 스트림 암호 알고리즘: [네이버 지식백과] 스트림 암호 [stream cipher, -暗號] (IT용어사전, 한국정보통신기술협회), http://terms.naver.com/entry.nhn?docId=853014&cid=42346&categoryId=42346
    • 정보보안 개론 한 권으로 배우는 보안 이론의 모든 것, 한빛 아카데미, 양대일


댓글