암호학 개요

암호학의 기본 개념

  1. 암호학의 기본 개념
    • 암호학(Cryptology)의 정의
      • 암호학이란 평문을 다른 사람이 알아볼 수 없는 형태의 암호문으로 만들고 특정한 비밀키를 알고 있는 사람만이 다시 평문으로 복원시킬 수 있도록 하는 암호기술(cryptography)과 이를 제 3자(도청자)가 해독하는 방법을 분석하는 암호해독(cryptanalysis)에 관하여 연구하는 학문이다.
  2. 암호에서 사용하는 이름
    • 엘리스와 밥 : 엘리스는 메시지를 전송하고 밥이 수신하는 모델에 사용된다.
    • 이브 : 영어로 도청자(eavesdropper)는 소극적 공격자를 의미한다.
    • 맬로리 : 영어로 악의를 가진(malicious) 공격자를 의미한다.
    • 트렌드 : 영어로 신뢰할 수 있는 중재자(trusted arbitrator)이며, 중립적인 위치에 있는 제 3자이다.
    • 빅터 : 영어로 verifier이며 의도된 거래나 통신이 실제로 발생했음을 검증할 떄 등장한다.
  3. 송신자, 수신자, 도청자
    • 송신자 : 어떤 사람이 다른 사람에게 정보를 보낼 떄, 보내는 사람을 송신자(sender)라고 한다.
    • 수신자 : 송신자가 보낸 메시지를 받는 사람을 수신자(receiver)라고 한다.
    • 도청자 : 반드시 사람만을 의미하는 것이 아니라 통신 기기에 장치된 도청용 기계일 수도 있고 메일 소프트웨어나 메일 서버에 설치된 프로그램일 수도 있다.
    • 적극적 공격자는 전송 중인 메시지를 갈취하여 변조한뒤 수신자에게 보낼 수 있다.
  4. 암호화와 복호화
    • 암호화(encrypt) : 송신자는 평문(plaintext)을 비밀키를 사용하여 암호문(cipertext)으로 암호화한다.
    • 복호화(decrypt) : 수신자는 암호문을 비밀키를 사용하여 평문으로 복호화한다.
    • 암호라는 기술을 사용하여 기실멍을 유지한다.
  5. 암호화와 복호화의 기호적 표현
    • 평문은 주로 M 이나 P, 암호문은 C 암호 알고리즘은 E, 복호화 알고리즘은 D 그리고 키는 K로 나타낸다.
      • C = E(K,P), P = D(K,C)
  6. 암호 알고리즘과 키의 분리
    • 암호 알고리즘 안에는 변경가능한 부분이 반드시 포함되어 있는데, 이 부분이 키에 해당된다.
    • 암호 알고리즘과 키를 구분하여 생각함으로써 암호 알고리즘을 반복적으로 사용하는데 발생하는 문제를 키를 사용함으로써 상쇄시킨다.
  7. 암호화 보안 상식
    • 비밀 암호알고리즘을 사용하지 말 것
      • 숨기는 것에 의한 보안(security by obscurity)는 암호 알고리즘의 구조가 폭로되어 버리면 기밀성을 유지할 수 없다.
    • 약한 암호는 암호화하지 않는 것보다 위험하다.
      • 약한 암호도 암호이기 때문에 관리에 소홀해 질 수 있다.
    • 어떤 암호라도 언젠가는 해독된다.
      • 어떤 알고리즘을 사용하여 만든 암호문도 모든 키를 대입하여 해독할 수 있다. 따라서 암호문이 해독되기 전까지 들어가는 시간과 암호를 사용하여 지키고 싶은 평문의 가치와의 밸런스(trade-off)가 중요하다.
    • 암호는 보안의 아주 작은 부분이다.
      • 피싱(Phishing), 트로이목마(Trojan horse) 또는 키로거(Keylogger)과 같은 ㅅ사회공학 공격에서는 가장 약한 링크가 암호가 아니라 사람이다.
        • 피싱 : 개인정보(private data)를 낚는다(fishing)의 합성어
        • 트로이목마 : 정상적인 프로그램으로 가장하여 실행되는 악성 프로그램
        • 키로거 : 컴퓨터 사용자의 키보드 움직임을 탐지하여 개인정보를 뺴 냄

암호기법의 분류

  1. 치환 암호화 전치 암호

    • 치환 암호(대치 암호, Substitution Cipher)
      • 평문의 문자를 다른 문자로 교환하는 규칙이다. 일대일 대응이 아니어도 상관없다.
    • 전치 암호(Transposition Cipher)
      • 원문을 다른 문자로 대체하지는 않지만 문자 집합 내부에서 자리를 바꾸는 규칙이다. 원문과 암호문에 사용된 문자 사이에 일대일 대응 규칙을 갖는다.
  2. 블록 암호화 스트림 암호

    • 블록 암호(Block cipher)

      • 특정 비트 수의 블록을 한 번에 처리하는 암호 알고리즘으로 블록의 비트 수를 블록의 길이라고 한다.
      • 평문을 일정한 크기로 잘라낸 후 암호화 알고리즘을 적용하기에 블록의 크기는 일반적으로 8비트(ASCII) 또는 16비트(Unicode)에 비례한다.
      • 스트림 암호화와는 다르게 Round를 사용하고 반복적인 암호화 과정으로 암호화 강도를 높일 수 있다.
    • 스트림 암호(Stream cipher)

      • 데이터 흐름(스트림)을 순차적으로 처리해나가는 암호 알고리즘으로 평문과 키를 XOR하여 생성한다.
      • 블록 암호화 방식보다 빠르지만 암호화 강도가 약하다. 주로 실시간성이 중요한 스트리밍 전송 및 무선 암호화방식에 사용된다.
      • 스트림 암호는 데이터의 흐름을 순차적으로 처리해가기 떄문에 내부 상태를 가지고 있다.
      구분 스트림 암호 블록 암호
      장점 암호화 속도가 빠름, 에러 전파현상이 없음 높은 확산, 기밀성, 해시함수 등 다양
      단점 낮은 확산, 부당한 삽입과 변형에 대한 민감성 느린 암호화, 에러 전달
      사례 LFSR, MUX generator DES, IDEA, SEED, RC5, AES
      암호화 단위 비트 블록
      주요 대상 음성, 오디오/비디오 스트리밍 일반 데이터 전송, 스토리지 저장
  3. 위치에 따른 암호화의 구분

    • 링크 암호화(Link Encryption)

      • 링크는 양쪽 끝단에 암호화 장치가 구비되어 있어 모든 통신 링크상의 모든 트래픽이 안전하다. 높은 수준의 보안을 제공한다.
      • 스위치가 프레임 경로를 지정하기 위해 프레임 헤더 속의 주소를 읽어야하기 때문에 메시지가 매번 프레임에 들어갈 떄마다 복호화되어야 한다.
      • 물리 계층과 데이터링크 계층에서 암호화가 이루어진다.
    • 종단간 암호화(End-to-End Encryption)

      • 암호화 프로세스가 두 종단 시스템에서 수행된다. 네트워크 링크 또는 스위치상에서의 공격에 대응한 방법이나 약한 부분이 있다.
      • 어플리케이션 계층에서 암호화가 이루어진다.
      구분 링크 암호화 종단간 암호화
      특징 ISP나 통신업자가 암호화 사용자가 암호화
        헤더를 포함한 모든 데이터를 암호화 헤더(라우팅정보)는 암호화하지 않음
        해당 노드가 공격당하면 전체가 위험 중간노드의 공격에도 영향이 없음
        유저가 알고리즘 통제 불가 알고리즘에 대한 통제는 사용자가 함
      장점 User-transparent하게 암호화되므로 운영이 간단 사용자 인증 등 높은 수준의 보안 서비스를 제공 가능
        트래픽 분석을 어렵게 함 중간노드에서도 데이터가 암호문으로 전제
        온라인으로 암호화  
      단점 중간 노드에서 데이터가 평문으로 노출 트래픽분석이 취약
        다양한 보안서비스를 제공하는데 한계 오프라인으로 암호화
        모든 노드가 암호화 장비를 갖추어야하므로 네트워크가 커지면 비용 과다  
  4. 하드웨어와 소프트웨어 암호시스템

    • 하드웨어 암호화시스템
      • 컴퓨터와 통신기기의 내부버스와 외부 인터페이스에 전용 암호처리용 하드웨어를 설치하여 데이터를 암호화
      • 키를 암호장치에서 추출하지 않고 암호화를 실행하는 것이 가능하기 때문에 키 누출의 위험성을 최소화
      • 전용 하드웨어로 암호화함으로 컴퓨터 CPU에 부담을 주지 않는 방식으로 보안성 확보에 바람직하다.
    • 소프트웨어 암호시스템
      • 암호처리용 소프트웨어를 사용한 데이터 암호화
      • 저렴한 비용으로 실현 가능하며 허용 범위 내에서 적당한 안정성과 처리속도를 얻는 것이 가능하다면 효과적
      • 개인용 컴퓨터의 CPU가 빨라져 소프트웨어에 의한 암호화를 행해도 처리 속도가 문제가 되지않기 떄문에 소프트웨어 암호화시스템이 주류를 이루고 있다.

주요 암호기술들에 대한 개괄

  1. 대칭키 암호화 비대칭키 암호

    • 대칭키 암호(symmetric cryptography)는 암호화할 떄 사용하는 키와 복호화할 때 사용하는 키가 동일한 암호 알고리즘 방식
    • 비대칭키 암호(asymmetric cryptography)는 암호화할 떄 사용하는 키와 복호화할 떄 사용하는 키가 서로 다른 암호 알고리즘 방식
    • 비대칭키 암호 알고리즘을 사용하기 위해서는 송수신자 모두 한 쌍의 키를 가지고 있어야 한다.
  2. 하이브리드 시스템

    • 대칭키 암호화 공개키 암호를 조합한 암호방식
  3. 일방향 해시함수

    • 정보나 소프트웨어를 제공할 떄 변경되지 않았음을 확신할 수 있도록 프로그램 제공자가 프로그램의 해시값을 공개한다.
    • 해시값은 일방향 함수(one-way hash function)을 사용해서 계산한다.
  4. 메시지 인증코드

    • 메시지가 전송 도중에 변경되지 않았다는 것과 메시지를 송신한 상대가 맞는지 확인하기 위하여 메시지 인증코드(message authentication code)라는 기술을 사용
    • 무결성, 인증을 제공
  5. 전자서명

    • 거짓행세(spoofing), 변경, 부인이라는 위협을 방지하는 기술로 온라인 상의 서명, 날인의 개념
    • 무결성, 인증, 부인방지를 제공
  6. 의사난수 생성기

    • 의사난수 생성기(PRNG, pseudo random number generator)는 난수열을 생성하는 알고리즘
    • 난수는 키 생성(key generator)이라는 매우 중요한 역할을 담당
  7. 기타 암호 기술들

    • 스테가노그래피(Steganography)

      • 스테가노그래피는 전달하려는 기밀 정보를 이미지 파일이나 MP3 파일 등에 암호화 해 숨기는 심층암호 기술이다.
      • 암호화가 비밀을 기록하는 것인 반면에, 스테가노그래피는 감추어진 기록을 의미한다.
    • 핑거프린팅(Fingerprinting)

      • 디지털 콘텐츠에 구매자의 정보를 삽입하여 불법 배포 발견 시 최초의 배포자를 추척할 수 있게하는 기술
      항목 스테가노그래피 워터마크 핑거프린트
      은닉정보 메시지 판매자 정보 구매자 추적정보
      관심 은닉메시지 검출 저작권 표시 구매자 추적
      트래킹 불가 가능 가능
      불법예방 효과
      저작권증명 효과
      공격 강인성 상대적 약함 상대적 강함 공모공격에 강함
    • 디지털 저작권 관리(DRM, Digital rights management)

      • 불법 또는 비인가된 사용을 제한하기 위하여 저작권 소유자나 판권 소유자가 이용하는 정보 보호 기술의 일종인 접근 제어 기술
      • 저작권 보호 관리에는 암호 기술, 키 관리 기술, 워터마킹 등 다양한 정보 보호 기술들이 활용 된다.

암호분석의 분류

  1. Kerckhoff의 원리
    • 공격에 대한 암호의 안전성은 키의 비밀성에만 기반을 두어야 한다. 키를 추측하는 것이 매우 어려워서 암호/복호 알고리즘을 비공개로 할 필요가 없어야 한다.
  2. 암호 해독(Cryptanalysis)의 개념
    • 암호 해독 기술은 암호 시스템이 얼마나 취약한지 측정하는데 사용되어 더 안전한 코드를 작성하는데 도움을 준다.
  3. 암호 분석의 분류
    • 암호문 단독 공격(COA, Ciphertext Only Attack)
      • 공격자가 단지 어떤 암호문을 얻어서 대응되는 평문과 키를 찾는 공격 방법이다.
    • 기지 평문 공격(KPA, Known Plaintext Attack)
      • 공격자는 해독하려는 암호문 외에 추가로 여러 개의 평문/암호 쌍을 이용하여 공격하는 방법이다.
    • 선택 평문 공격(CPA, Chosen Plaintext Attack)
      • 공격자는 자신이 선택한 평문/암호문 쌍을 사용하여 키를 찾는 공격하는 방법이다.
    • 선택 암호문 공격(CCA, Chosen Ciphertext Attack)
      • 공격자는 선택 평문 공격과 비슷하게 암호문/평문 쌍을 사용하여 키를 찾는 공격하는 방법이다.

암호 알고리즘의 안전성 평가

  1. 안전성개념
    • 암호시스템을 공격하기 위해 필요한 계산량이 매우 커 현실적으로 공격할 수 없는 경우를 계산적으로 안전하다고 한다.
    • 무한한 계산능력이 있어도 공격할 수 없는 경우를 무조건적으로 안전하다고 한다.
    • 즉, 암호 알고리즘은 암호 해독비용이 암호화된 정보의 가치를 초과하거나 암호 해독 시간이 정보의 유효 기간을 초과하도록 개발되어야 한다.
  2. 암호제품 평가체계
    • CC(Common Criteria)기반의 정보보호제품 평가를 통해 암호알고리즘과 이를 구현한 암호모듈에 대한 평가를 제외하고 평가한다.
    • 암호모듈에 대한 안전성평가는 미국의 NIST가 수행하는 CMVP(Cryptographic Module Validation Program)가 있다.
  3. 암호기술 평가
    • 평가 종류
      • 암호알고리즘 평가
        • 암호알고리즘에 대한 독립적인 평가가 가능하며, 알고리즘 자체의 이론적 안전성만을 평가한다.
      • 암호모듈 평가
        • 암호알고리즘을 이용하여 제공되는 암호서비스(기밀성, 무결성)에 대한 안전성 평가
      • 정보보호제품 평가
        • 암호모듈을 탑재한 정보보호 제품(침입차단시스템, 침입탐지시스템)에 대한 안전성 평가
      • 응용시스템 평가
        • 각 제품을 상호 연동하여 구성되는 시스템에 대한 안전성 평가
    • 평가 과정
      • 암호알고리즘에 대한 이론적 안전성 평가 -> 검증된 암호모듈을 탑재한 정보 보호 제품의 안전성 평가 -> 각각의 제품으로 구성된 응용시스템의 안전성 평가
  4. 암호모듈의 안전성 평가(CMVP)
    • 미국 NIST와 캐나다 주정부의 CSE(Communications Security Establishment)가 공동으로 개발한 암호 모듈의 안전성 검증을 위한 프로그램이다.
    • 암호기술의 구현 적합성
    • 암호키 운용 및 관리
    • 물리적 보안