2024. 4. 10. 19:21ㆍLinux*security/Network
■ 대칭키
대칭키는 복호화와 암호화 key가 같다. 비밀키(secret key)라고도 한다.
대칭키 알고리즘은 단일 키를 사용하여 데이터를 암호화하고 복호화하는 방식으로 작동한다. 메시지를 보내기 전에 송신자는 메시지를 대칭키를 사용하여 암호화하고, 수신자는 동일한 키를 사용하여 메시지를 복호화한다.
대칭키 암호화는 많은 양의 데이터를 암호화 가능하고 처리 속도가 빠르고 키가 간단하며 효율적이지만 대칭키의 주요 문제점 중 하나는 키 분배에 관한 것이다.
■ 비대칭키
비대칭키는 복호화와 암호화 키가 다르다. (하나의 키는 공개하여 공개키라고도 한다.)
비대칭키 암호화 시스템에서는 공개키(public key)와 개인키(private key) 두 개의 키가 쌍(pair)으로 생성된다.
public key 는 다른 사람에게 공개되며, 이를 통해 메시지를 암호화할 수 있고 공개키로 암호화된 메시지는 해당 공개키의 개인키로만 복호화할 수 있다.
private key 개인키는 소유자만 각자만 알고 있으며, 암호화된 메시지를 복호화하는 데 사용된다. 개인키로 암호화된 메시지는 해당 공개키로만 복호화할 수 있다.
보안성은 좋지만 적은 데이터 암호화에 적절하고 속도가 느리고 키 길이가 길다.
- 비대칭키 알고리즘 종류
1. RSA(Rivest-Shamir-Adleman): RSA 알고리즘은 공개키 암호 시스템의 대표적인 예이다. 소인수 분해 문제를 기반으로 한다. RSA는 안전성과 성능 면에서 널리 사용되는 알고리즘 중 하나이다.
RSA 알고리즘은 다음과 같은 원리는
1. 키 생성:
- RSA 키 쌍은 공개키(public key)와 개인키(private key)로 구성된다.
- 먼저 두 개의 큰 소수 \( p \)와 \( q \)를 선택한다. 이 두 소수를 곱하여 \( n = p \times q \)를 계산한다.
- \( n \)은 모듈러 연산에서의 모듈러 값으로 사용되며, \( n \)을 구하는 것은 쉽지만 \( p \)와 \( q \)를 구하는 것은 어렵다.
- 다음으로 \( \phi(n) = (p-1) \times (q-1) \)을 계산한다. \( \phi(n) \)은 \( n \)과 서로소인 수의 개수를 나타낸다.
- 공개키 \( e \)는 \( \phi(n) \)과 서로소인 값으로 선택된다.
- 개인키 \( d \)는 \( e \times d \equiv 1 \pmod{\phi(n)} \)을 만족하는 \( d \) 값으로 계산된다.
2. 암호화:
- 암호화를 위해 평문 \( M \)을 공개키 \( (e, n) \)를 사용하여 \( C = M^e \mod n \)으로 변환한다.
- 여기서 \( C \)는 암호문이다.
3. 복호화:
- 복호화를 위해 암호문 \( C \)을 개인키 \( (d, n) \)를 사용하여 \( M = C^d \mod n \)으로 변환한다.
- 여기서 \( M \)은 평문이다.
RSA는 소인수분해 문제의 어려움을 기반으로 한다. 즉, 매우 큰 소수 \( p \)와 \( q \)를 곱한 \( n \)을 구하는 것은 쉽지만, \( p \)와 \( q \)를 찾는 것은 매우 어렵다는 원리를 이용한다.
2. DSA(Digital Signature Algorithm): DSA는 전자 서명을 생성하는 데 사용되는 비대칭키 알고리즘이다. 주로 디지털 서명 및 인증에 사용된다.
3. Diffie-Hellman Key Exchange: Diffie-Hellman은 키 교환을 위한 알고리즘으로, 두 개체 간에 비밀 대칭 키를 안전하게 교환할 수 있도록 한다.
4. ECC(Elliptic Curve Cryptography): ECC는 타원 곡선을 기반으로 하는 공개키 암호 시스템이다. RSA에 비해 키의 크기가 작아서 효율적이며, 같은 보안 수준을 유지하는 데 더 적은 자원을 사용한다.
5. ElGamal: ElGamal은 비대칭키 암호화 및 전자 서명을 위한 알고리즘이다. Diffie-Hellman 키 교환 프로토콜과 유사한 방식을 사용한다.
6. ECDSA(Elliptic Curve Digital Signature Algorithm): ECDSA는 타원 곡선을 기반으로 하는 디지털 서명 알고리즘이다. ECC와 함께 사용된다.
'Linux*security > Network' 카테고리의 다른 글
비밀키(대칭키), 공유키(비대칭, 공개키) (0) | 2024.06.26 |
---|---|
IPv6 (0) | 2024.06.07 |
NAT (Network Address Translation) (0) | 2024.06.07 |
IPv4 (0) | 2024.06.07 |
네트워트 장비 종류, 특징 (0) | 2024.06.07 |