ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 대칭키, 비대칭키란?
    프로그래밍 기초 공부 2022. 12. 2. 10:46

    대칭키

    • 어떤 정보를 암호화, 복호화 할 때 사용하는 키가 동일한 경우
    • 즉, 암호화 할 때 필요한 키값과, 해당 정보를 복호화 할 때 필요한 키값이 동일한 경우
    • 어떠한 정보가 대칭키를 통해 암호화 되었다면, 똑같은 키를 갖고 있는 사용자가 아니면 해당 정보를 확인 불가
    • 암호화 된 정보를 전달하고 확인하기 위해 송,수신자 모두 똑같은 키를 가지고 있어야 함

     

    대표적인 알고리즘

    • DES, 3DES, AES, SEED, ARIA

     

    장점

    • 공개키 암호화 방식에 비해 속도가 빠름
    • 대용량 Data 암호화에 적합

     

    단점

    • 키를 교환해야한다는 문제 (키 배송 문제)
    • 관리해야 할 키가 방대하게 많아짐
      • 키를 교환하는 중 키가 탈취될 수 있음, 사람이 증가할수록 정부 따로따로 키교환을 해야함
    • 기밀성을 제공하나, 무결성/인증/부인방지를 보장하지 못함

     

    대칭키로 암호화 하는 경우

    • 데이터 정보가 대칭키를 통해 암호화 되었다면, 데이터를 받는 사람은 똑같은 키를 가지고 있어야한 정보확인 가능
    • 데이터 정보를 보낼때 데이터를 복호화 할 수 있는 키값을 같이 전달해야함
    • 전달하는 과정에서 누군가 가져갈 위험이 있음
    • 키를 안전하게 전달하는 것이 핵심

     

     

    비대칭키

    • 대칭키의 키교환 문제를 해결하기 위해 등장한 것이 공개키 암호화 방식
    • 키가 공개되어있기 때문에 키를 교환할 필요가 없어짐
    • 어떠한 정보를 암호화, 복호화 할 때 사용하는 키가 서로 다른 경우
    • 대칭키와 다르게 비대칭키를 활용한 암호화에는 공개키와 개인키가 사용됨
      • 공개키 : 모든 사람이 접근 가능한 키
      • 개인키 : 각 사용자만이 가지고 있는 키

    장점

    • 키를 분배할 필요 없음
    • 기밀성/인증/부인방지 기능을 제공

     

    단점

    • 속도가 느림
    • 공개키와 개인키는 키 길이가 굉장히 김

     

    공개키로 암호화 하는 경우

    • 상대방의 공개키로 데이터를 암호화하면 개인키로 복호화 가능
    • 데이터의 보안을 주된 목적
    • ex) 공인인증서

     

    개인키로 암호화 하는 경우

    • 상대방이 아닌 나의 개인키로 데이터를 암호화하면 상대방은 나의 공개키로 복호화 가능
    • 데이터 보호의 목적보다는 공개키가 데이터 제공자의 신원을 보장해주기 때문
    • 암호화된 데이터가 공개키로 복호화된다는 것
      • -> 공개키와 한 쌍을 이루는 개인키에 의하여 암호화 됨
      • -> 데이터의 제공자의 신원 확인이 보장
    • ex) 전자서명

     

    비대칭키 암호화 알고리즘

    DSA

    • Digital Signature Algorithm
    • 이산대수 문제의 어려움에 기반으로 하고 있는 알고리즘
    • 공개키를 이용한 표준 디지털 서명 방식의 알고리즘
    • RSA에 비해서 키를 생성하는 속도가 더 빠름
    • RSA보다는 암호화 속도가 느리지만 복호화 능력이 빠름
      • -> 뛰어난 해동 기능으로 인한 디지털 서명이 필요한 경우 DSA를 사용

     

    RSA

    • Rivest Shamir Adleman
    • 공개키 알고리즘 중에서 가장 많이 사용된 알고리즘
    • 암호화뿐 아니라 전자서명 시에도 이용되는 알고리즘
    • 전자서명은 우리가 보통 공동인증서를 사용할 때 이 알고리즘을 사용
    • RSA 암호체계의 안정성
      • 큰 숫자를 소인수 분해하는 것이 어렵다는 것을 기반
      • RSA-2048사용
      • 2048은 키의 길이를 뜻함
    • 더 긴 키 길이도 있지만 키 길이가 늘어날수록 계산이 느려지는 단점
    • 큰 숫자를 소인수 분해하는 좋은 방법이나 컴퓨터가 등장한다면 RSA 알고리즘은 사용 할 수 없을 것

     

    ECC

    • Eliptic Curve Cyptography
    • 타원곡선 암호 알고리즘
    • 수학적인 타원곡선 이론에 기반한 공개키 암호 알고리즘
    • RSA에 비해서 키의 길이가 짦지만 안정성은 비슷한 수준을 유지
    • 배경 이론이 복잡하고 실제 구현하기 위해서는 전문 지식이 필요하기 때문에 널리 사용은 안되고 있음

    '프로그래밍 기초 공부' 카테고리의 다른 글

    해시란  (0) 2022.12.04
    인증과 인가란?  (0) 2022.12.02
    람다식이란?  (0) 2022.11.26
    Serverless란?  (0) 2022.11.26
    Microservice Architecture와 Monolithic Architecture이란?  (0) 2022.11.26
Designed by Tistory.