핵심 Point
키 배송 문제 해결 방법 4가지
대칭키 vs 비대칭키
DH 알고리즘 키교환 절차, 비밀키 공동키 계산 방법
인수분해 문제: RSA, Robin
이산대수 문제: Deffie-Hellman, ElGamal, ECC, DSS
알고리즘 | 암호/복호 | 디지털서명 | 키 교환 |
RSA | Yes | Yes | Yes |
Diffie-Hellman | No | No | Yes |
타원 곡선 | Yes | Yes | Yes |
DSS | No | Yes | No |
1. 대칭키의 키 배송 문제
- 수신자에게 키를 보내지 않으면 수신자는 수신한 암호문을 복호화 할 수 없다.
- 키를 보내기 위해서는 다른 사용자들이 키의 내용을 알아서는 안된다.
1) 키의 사전 공유
- 키 관리기관(Trusted Authority, TA)이 사전에 사용자들에게 비밀 경로를 통하여 키를 전달
- TA는 n(n−1)/2개, 사용자들은 n-1개의 키를 관리해야 하므로 복잡하고 관리비용이 많이든다.
2) 온라인 키 분배
- 암호 통신이 필요할 때마다 키 배포 센터(Key Distribution Center, KDC = TA)에서 키를 전달한다.
- TA가 네트워크상의 모든 사용자와 필요할 때마다 키를 공유하는 방법이다.
- KDC는 n개의 키, 각 사용자들은 자신의 키 1를 갖게 된다.
3) Diffie-Hellman 키 교환
유한체상의 이산대수 문제를 풀기 어렵다는 사실에 기반 (매우 큰 소수)
공개키 암호를 활용하여 비밀 세션키를 계산하는 방식이다.
3.1)키 교환(계산) 절차 (송신자:Alice / 수신자:Bob)
① Alice는 충분히 큰 소수 p 와 g를 하나씩 정한다.
② Alice는 무작위로 정수 a를 하나 고른다.
③ Alice는 A = g^a mod p를 구한다.
④ Alice는 p, g, A를 Bob에게 전달한다.
⑤ Alice는 무작위로 정수 b를 하나 고른다.
⑥ Bob은 B = g^b mod p를 구한다.
⑦ Bob은 Alice에게 B를 전달한다.
3.2) DH를 통한 비밀키 계산
Alice의 키: B^a mod p
Bob의 키: A^b mod p
Alice, Bob의 공동 키: g^ab mod p
공동키 계산 공식 실습
g^a mod p 수식을 통한 Alice와 Bob의 공통키 값을 구하려고한다.
각각의 값은 Alice: g=3, p=7, a=2 / Bob: g=3, p=7, a=3 이다.
공동 키 구하는 공식은 g^ab mod p이다.
3^2*3 mod 7
= ((3^2 mod 7) * (3^2 mod 7) * (3^2 mod 7)) mod 7 //3^2 mod 7 = 2
= (2*2*2) mod 7 //8 mod 7 = 1
결과: 1
3.3) DH 공격기법
이산대수 공격: A와 B를 도청해서 a, b 값을 구하게 되면 키를 알아낼 수 있다.
서비스 거부 공격: 계산이 복잡하여 비밀키 생성에 큰 지연시간이 발생하므로 제 3자가 Dos 공격이 가능하다.
중간자 공격: 인증단계가 없기 때문에 MIMT 공격이 가능하다. 전자서명과 공개키 인증서를 통해 보호한다.
재전송 공격 공격자가 패킷을 중간에서 가로챈 뒤 그 패킷을 재전송 할 수 있다. 전자서명과 공개키 인증서를 통해 보호한다.
그이외에도 기밀성공격에도 취약하다.
4) KDC
키 교환에 따른 위험을 감소할 목적으로 설계된 암호 시스템이다.
대칭키 암호에 필요한 키 교환을 위해 운영되는 키 분배 방식이다.
사용자들은 사전에 KDC와 마스터 키를 공유 해야한다.
모든 가입자는 중앙 관리 기관과 개별키를 공유하며 중앙 관리 기관은 가입자들 사이의 암호 통신에 필요한 일회용 세션키 생성을 위한 티켓을 발행한다.
키교환 프로토콜으로는 needham-schroeder 가 있다.
5) 공개키 암호화 사용
- 암호화 키와 복호화 키가 분리되어 있어서 송신자는 암호화키를 통해 암호화 수신자는 복호화 키를 통해 복호화한다.
- 두 개의 키는 서로 수학적 관계이기 때문에 각각 별개로 만들 수 없다.
2. RSA 암호 시스템
- 공개키 암호 알고리즘이며 셰게적으로 사실상의 표준이다.
- 소인수분해 (하나의 정수를 소인수로 분해) 해결의 높은 난이도를 이용한 공개키 알고리즘이다.
- 공개키 인증을 위해서 PKI가 사용된다.
- 전자서명, SSL, PGP 등에 사용된다.
1) RSA 암호화 복호화 (e: 공개 키 / d: 비밀 키)
암호화: C = M^e mod n
복호화: M = C^d mon n
2) RSA 키 생성 알고리즘
p와 q는 같지 않지만 거의 같은 크기의 자릿수여야하고 p-1과 q-1는 커다란 소인수를 각각 가져야 한다.
①서로 다른 큰 소수 p와 q를 선택한다. → p=3, q=5 선택
②n = p*q를 계산한다. → n= 3*5= 15
③ φ(n) = (p-1)(q-1)를 계산한다. → φ(n)= (3-1)(5-1)= 8
④ φ(n)보다 작고 φ(n)과 서로소인 임의의 자연수 e를 선택한다. → e= 1 선택
⑤ 확장 유클리드 호제법을 이용하여 e mod φ(n)에 대한 곱의 역원, 즉 de mod φ(n)=1인 d를 구한다.
→ d*3 mod 8 = 1 → d = 3
3) RSA 공격 기법
수학적, 타이밍, CCA, 전사적 공격이 존재한다.
3.1) 수학적 공격 (소인수분해 공격)
- 두개의 소수 곱을 인수분해 하려는 시도이다.
- 키의 길이를 늘리면 해결된다.
3.2) 타이밍 공격(부 채널 공격)
- 복호화 알고리즘의 처리 시간이용하여 대입을 통해 키 길이를 추측한다.
- 랜덤 지체 방법을 사용하여 해결한다.
3.3) CCA 공격
- 임의의 데이터를 송신하면 암호문이라고 간주하고 오류를 회신하는 서비스를 이용하여 공격한다.
- 최적 비대칭 암호화 패딩(Hash 값, 인증정보 삽입)을 사용하여 평문을 수정하면 해결된다.
3.4) 전사적 공격
- 모든 가능한 개인키를 조사하여 개인키를 알아낸다.
3. Rabin 암호 시스템
- 소인수 분해를 통해 만들어졌고 소인수분해 문제로 부터 안전하다.
- 암호화가 한번의 곱셈으로 처리되어서 연산이 빨리 수행된다.
- 성능이 낮은 플랫폼에서 활용된다. (스마트 카드)
- p와 q의 크기가 충분히 크다면 RSA만큼 안전하다.
4. ElGmal 암호 시스템
- 이산대수 문제에 근거해서 만든 시스템
- 디지털 서명, 암호화, 키교환에 사용된다.
- 암호화 과정에서 암호문의 길이는 평문의 약 2배가 되어서 성능이 낮다.
5. 타원 곡선 암호 (ECC)
- 타원 곡선 이라는 이론에 근거 (이산대수 문제)
- RSA보다 비트 수를 적게 하면서도 동일한 성능을 제공한다. (160bit = 1024bit)
- 무선통신 단말기, 스마트카드, 전자상거래에서 사용된다.
6. 하이브리드 암호시스템
- 암호화가 빠른 대칭키를 통해 암호화 한 후 해당 메시지를 암호화할 때 사용한 대칭키 암호키를 공개키로 암호화한다.
- 공개키 암호호의 늦은 처리속도를 대칭키 암호로 해결하고 키 배송 문제를 공개키 암호로 해결한다.
- PGP, SSL/TLS에서 주로 사용된다.
- MITM 공격에 취약하므로 인증이 필요하다.
7. 대칭키와 비 대칭키 비교
항목 | 대칭키 | 공개키 |
키의 상호관계 | 암호화키 = 복호화키 | 암호화키 ≠ 복호화키 |
키 개수 | N(N-1) / 2 | 2N |
암호화 속도 | 높다 | 낮다 |
제공 서비스 | 기밀성 | 기밀성, 부인 방지, 무결성 |
목적 | 데이터 암, 복호화 | 대칭키 교환 |
전자서명 | 복잡 | 간단 |
단점 | 키 교환 원리가 없다 | MITM 공격에 취약하다. |
참조
DH 알고리즘 설명:https://tramamte.github.io/2018/07/20/diffie-hellman/
'Certification Study > 정보보안기사' 카테고리의 다른 글
[정보보안기사] 6.전자서명과 PKI (Public Key Infrastructure) (출제율: 3.9%) (0) | 2020.02.02 |
---|---|
[정보보안기사] 5. 해시 함수와 응용 (출제율: 1.9%) (0) | 2020.02.01 |
[정보보안기사] 3. 대칭키 (Block, Stream 암호화)개념 (출제율: 3.0%)] (0) | 2020.01.30 |
[정보보안기사] 2. 암호학 개요 (출제율: 2.0%) (0) | 2020.01.16 |
[정보보안기사] 1. 정보보호 관리의 개념 (2) | 2020.01.16 |
공부&일상 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 질문은 언제나 환영입니다😊