Header

  1. View current page

    tadoli님의 노트

Profile_img_60x60_01
14

Part 3. 공개키 암호화

Chapter 9. 공개키의 탄생

  • 공개된 라인을 통한 키 교환
  • 비밀키 배달 문제

    • 비밀키/시리얼 번호 쌍 데이터베이스 만들기
    • 암호화된 비밀키/시리얼 번호 쌍 데이터베이스 만들기

암호시스템의 분류

암호시스템

  • 공개키 암호 시스템

    • 인수분해 문제(Integer Factorization Problems; IFP)

      • RSA
      • Rabin
      • Goldwasser-Micali
    • 이산대수 문제(Discrete Logarithm Problems; DLP)

      • DH(Diffie-Hellman)
      • ECC

        • ECDLP(DLP over EC group)에 기반
      • DSS
    • 타원곡선 이산대수문제(Elliptic Curve Discrete Logarithm Problem; ECDLP)

      • Elliptic Curve ElGamal(Elliptic Curve Diffie Hellman)
  • 대칭키 암호 시스템

    • DES
    • IDEA
    • RC5
    • 기타 등등...

공개키 암호

  • Diffie-Hellman: 1976, New Directions in Cryptography
  • Rivest, Shamir, Adleman: RSA
  • ElGamal, Rabin algorithm: 암호화, 전자서명
  • 실제로는 혼합형(hybrid) 암호시스템 사용

 

Diffie-Hellman 키 교환법

  • 새로운 해결책 : Diffie-Hellman 키 교환법

    • 해커가 비밀키를 알기 위해 더 많은  시간이 걸리도록 수학을 기반으로 만듬
    • 처음 개발된 이 공개키 암호 시스템(DH)은 SSL, IPSec에서 사용
    • 공개된 라인에서도 비밀키를 교환할 수 있게 됨
  • 교환 방법

    • Diffie-Hellman.gif
      • diffie-hellman-ex.gif 

 

DH 방법의 문제점

  • 인증(Authentication) 기능이 불가능
  • 비밀키 교환을 하는데 있어서 불편

    • RSA 방법이 인증 문제, 키 교환 문제 모두 해결

 

Chapter 10. 공개키를 사용하면서 얻는 기밀성

  • 기밀성 보장(Confidentiality)

    • 공개키로 암호화된 메시지는 공개키에 관계된 개인키로만 복호화
    • 해커는 공개키로 복호화하는 것이 불가능하며, 개인키를 알아내기도 어렵다.

공개키 분배

  • 공개키가 알려지더라도 상관없게 설계됨(오히려 적극적으로 알림)
  • 공개키 분배가 비밀키보다 쉽다.(전자게시판 등에 광고)

양방향 기밀성 유지

  • 메시지를 공개키로 암호화
  • 공개키로 암호화된 메시지는 개인키로만 복호화

 

Chapter 11. 공개키를 만드는 수학적 트릭

  • 모듈라 인버스

    • 곱셈에 대한 인버스: 인버스 관계가 있는 두 수를 곱했을 때 1이 되는 경우
    • 예) 8 과 1/8

모듈라 수학(Modular Math)

  • 대부분의 공개키 암호 시스템(RSA도 포함)은 나머지 연산을 사용하는 모듈라 수학을 사용
  • 나누는 수 :  Modulus
  • 나머지 : Residue (몫은 중요하지 않음)
  • 모듈라 수학을 사용하면 숫자가 줄어듬

 

공개키를 만들기 위해 모듈라 인버스 만들기

  • 예) 메시지가 4라고 가정

    • 모듈러스 10에 대한 인버스 쌍(7과 3)
      4 * 7 mod 10 = 8 (암호화)
      8 * 3 mod 10 = 4 (복호화)
  • 대부분의 공개키 암호 시스템은 역으로 계산하는 것이 어렵다는 것을 이용하여 보안성 강화

공개키 알고리즘의 수학적 기반

  • 인수분해 문제(Integer Factorization Problem)

    • 큰 수(768비트 이상)를 인수 분해하는 시간이 많이 필요
    • 대표적인 알고리즘 : RSA
    • 복호화할 때 빠름(암호화할 때 연산량이 많기 때문)
  • 이산 대수 문제(Discrete Logarithm Problem)

    • 대표적인 알고리즘 : DSA, KCDSA, Diff-Hellman
  • 타원곡선 이산 대수 문제(Elliptic Curve Discrete Logarithm Problem)

    • 대표적인 알고리즘 : ECC(ECDSA, ECKCDSA)
    • 암호화할 때 빠름(복호화할 때 연산량이 많기 때문)

RSA(Rivest-Shamir-Adleman)

RSA.gif RSA-ex.gif

 

Chapter 12. 개인키를 사용하여 전자 서명하기

  • 옛날: 종이에 자신임을 나타낼 수 있는 서명
  • 요즘: 기밀성 유지보다 인증이란 방법에 더 관심
  • 개인키(Private Key)로 인증과 무결성 제공

    • 전자서명 : 개인키로 암호화하는 것

 

공개키 암호시스템

  • 공개키로 암호화 / 개인키로 복호화

    • 기밀성 제공
  • 개인키 암호화 (서명하기) / 공개키 복호화(서명 확인)

    • 개인키를 사용한 인증 - 전자서명
    • 전자서명 - 인증, 데이터 무결성, 부인방지 제공

개인키 인증 방법

  • RSA

    • Rivest, Shamir, Adleman이 만든 공개키 알고리즘
    • 널리 사용되고 있는 독보적인 공개키 암호화 알고리즘
    • 개인키나 공개키로 암호화하는 것에 모두 수학적으로 안전
    • 컴퓨터의 처리량이 많아지게 되면 더 큰 소수 요구
    • 공개적으로 알고리즘을 깨도록 허락
    • 기밀성 서비스 - 공개키로 암호화
    • 전자인증 - 개인키로 암호화
    • RSA의 서명 및 서명확인(검증) 과정
    • RSA-signing(1).gif 
  • DSA(Digital Signature Algorithm)

    • DSA는 전자서명을 통해 인증, 무결성, 부인 방지 제공
    • 기밀성 유지에는 사용되지 않음
    • 1990년대에 NIST에 의해 제안, US FIPS에 의해 채택
    • FIPS Pub 186-1에 의해 DSS(Digital Signature Standard)라고 명명 - 미국표준 서명 알고리즘
  • RSA와 DSA의 차이

    • RSA는 전자 서명시에 원래 메시지가 필요
    • RSA는 원문을 개인키로 암호화해야 서명이 가능하나 DSA는 그렇지 않다
    • DSA는 전자서명 여부에 따라 예, 아니오로 간단하게 사용
    • 속도 : RSA가 DSA보다 빠르지만, 미리 계산된 값이 있다면 DSA가 RSA보다 빠르다
  • KCDSA - 대한민국 표준 서명 알고리즘
  • ECDSA / ECKCDSA - DSA / KCDSA에 ECC 적용

 

 공개키(또는 개인키로) 인증

  • 부인 방지

    • 개인키로 서명하고, 다른 사람들이 서명한 사람의 공개키로 서명을 확인
  • 양방향 인증
  • 공개키, 개인키

    • 모든 공개키 암호 알고리즘 방법은 공개키와 개인키를 가진다
    • 개인키는 항상 비밀로서 유지, 공유 불가
  • 서명하기 전에 메시지 압축

    • 서명하는 것은 너무 느리기 때문에, 메시지암호화 하기전에 줄일 필요

      • MD(Message Digest)

        • 해시함수 형태

History

Last edited on 04/14/2008 03:25 by tadoli

Comments (0)

You must log in to leave a comment. Please sign in.