-
대칭키, 비대칭키란?프로그래밍 기초 공부 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