10장-기타 공개키 암호 시스템

2025. 5. 27. 14:37·컴퓨터 보안

Applications for Public-Key Cryptosystems

공개키 암호 시스템의 3가지 주요 응용 분야

  1. 암호화/복호화 (Encryption/Decryption)
    • 송신자는 수신자의 공개키로 메시지를 암호화한다.
    • 수신자는 자신의 비밀키로 복호화한다.
  2. 디지털 서명 (Digital Signature)
    • 송신자는 자신의 비밀키로 서명하여 메시지의 무결성과 발신자를 인증한다.
  3. 키 교환 (Key Exchange)
    • 두 참가자가 안전하게 세션 키를 교환한다 (예: 디피-헬만).

Discrete Logarithm (이산 로그 문제)

  • 모듈로 19의 거듭제곱 결과를 보여주는 테이블 
  • 각 행은 밑수(a), 각 열은 지수(i), 값은 a^i mod 19다.
  • 예: 2^3 mod 19 = 8
  • 이 테이블은 이산 로그 문제의 어려움을 시각적으로 보여준다. (예: 8 = 2^3 mod 19 이지만, 3 = log₂(8) mod 19를 계산하는 이산 로그 문제는 어렵다.)

Diffie-Hellman Key Exchange

  • 최초 공개된 공개키 알고리즘 (1976년 발표)
  • 기밀한 세션 키를 안전하게 교환 가능.
  • 이 알고리즘은 대칭키 암호와 결합해 사용됨.
  • 보안성은 이산 로그 문제의 어려움에 기반.

Figure 10.1: Diffie-Hellman 키 교환 과정

  • 두 사람이 소수 q, 원시근 α를 공유함.
  • Alice:
    • 비밀키 X_A로 생성 -> Y_A = α^X_A mod q
  • Bob:
    • 비밀키 X_B로 생성 -> Y_B = α^X_B mod q
  • 서로의 공개키 Y 값을 교환하고,
    • Alice: K = Y_B^X_A mod q
    • Bob: K = Y_A^X_B mod q
  • 결과적으로 공통의 비밀 키 K를 공유하게 됨.

RSA vs DH: Forward Secrecy 비교

🟠 개념 설명:

세션이란?

  • 두 사용자가 통신을 주고받는 하나의 암호화된 대화 단위
  • 예: 우리가 메신저에서 보안 채팅을 하면, 그 한 번의 대화를 “세션”이라 부름

-> 그래서 "세션 키"란 그 한 번의 대화를 암호화하는 데 쓰는 임시 키를 말합니다.

 

Forward Secrecy란?

  • 어떤 세션의 키가 유출되어도, 다른 이전/미래 세션의 보안에는 영향이 없어야 한다는 보안 성질.

 

🔹RSA

  • 고정된 개인키(d)를 사용해 매 세션마다 새로운 세션 키(K₁, K₂)를 복호화
  • 각 세션 키는 공개키로 암호화되어 전송됨

📌 문제점

  • 개인키가 유출되면 이전 모든 세션의 키도 복호화 가능
  • Forward Secrecy 제공 안됨

🔹Diffie–Hellman (DH)

  • 매 세션마다 새로운 비밀값(X_A, X_B)을 생성
  • 각 세션이 끝나면 비밀값은 폐기(discard)
  • 서로의 공개키를 이용해 공통의 세션 키(K) 생성

📌 장점

  • 세션 키 유출되어도 이전 세션은 안전
  • Forward Secrecy 제공

🔹 비교 요약표

항목 RSA DH
세션마다 키 생성 ❌ 고정된 개인키 사용 ✅ 매 세션마다 새 비밀값 생성
Forward Secrecy ❌ 없음 ✅ 있음
키 유출 시 영향 모든 과거 세션 위험 해당 세션만 위험
비밀값 폐기 여부 ✖ 폐기 안 함 ✔ 폐기함 (Discard X_A, X_B)

 

💡 Forward Secrecy가 중요한 이유

한 번의 공격으로 과거 모든 대화 내용이 해독되는 것을 방지할 수 있음 -> 장기 보안을 위해 필수 기능


Figure 10.2: 중간자 공격 (Man-in-the-Middle)

🔹공격 시나리오

  • 공격자 Darth가 Alice와 Bob 사이에 몰래 개입하여,
    • Alice에겐 자신(Darth)의 공개키를 Bob의 것처럼 전달하고,
    • Bob에겐 자신(Darth)의 또 다른 공개키를 Alice의 것처럼 전달함.
  • Alice는 Darth와 공유된 비밀키 K₂를 사용하고,
  • Bob은 Darth와 공유된 또 다른 키 K₁를 사용함.
  • 결과적으로 Alice와 Bob은 서로 다른 키를 가지며,
  • 통신은 Darth를 통해 모두 중간에서 가로채지고 해독될 수 있음.

 

❗ 왜 위험한가?

  • Alice와 Bob은 암호화된 통신이라고 믿지만,
  • 실제로는 모든 메시지를 Darth가 복호화/조작 가능.
  • 즉, 암호화는 되어 있지만, 상대가 누구인지 검증이 안 되었기 때문.

 

🔹해결책: 인증 (Authentication)

  • 공개키를 검증할 수 있는 방법이 반드시 필요:
    • 인증서 (Certificate)
    • 디지털 서명
    • 공인된 공개키 디렉토리 등

👉 이를 통해 공개키가 진짜 소유자의 것인지 확인할 수 있음.

 

 

요약

항목 설명
공격 방법 공격자가 두 당사자와 각각 키 교환을 함
문제점 서로 다른 키를 공유 -> 제3자가 모든 메시지를 복호화 가능
해결책 인증 (공개키에 대한 신뢰 확보)

Figure 10.3: ElGamal Cryptosystem

🔹기본 개념

  • Diffie–Hellman을 기반으로 하는 공개키 암호 시스템
  • 이산 로그 문제(DLP)의 어려움에 기반한 보안성

🔹공개키 구성

  • q: 큰 소수
  • α: q의 원시근 (primitive root)
  • X_A: Alice의 비밀키
  • Y_A = α^X_A mod q: Alice의 공개키
  • 공개키: (q, α, Y_A)

🔐 암호화 (Bob -> Alice)

  • 메시지: M
  • Bob이 임의의 정수 k를 선택 (매 암호화마다 무작위)
  • 계산:
    • K = Y_A^k mod q -> 일종의 일회용 비밀키
    • C₁ = α^k mod q -> Bob이 선택한 k에 해당하는 임시 공개키 계산값
    • C₂ = M * K mod q -> M을 K로 암호화 
  • 암호문: (C₁, C₂)

📌 C₁만 있으면 Alice는 동일한 K를 구할 수 있음

 

🔓 복호화 (Alice)

  • 받은 암호문 (C₁, C₂)
  • Alice는 자신의 비밀키 X_A로 K = C₁^X_A mod q 계산
  • 복호화: M = C₂ / K mod q

⚠ 여기서 /는 곱셈 역원 연산(modular inverse)

 

🔹장점

  • 무작위성 도입 -> 동일한 메시지도 암호화할 때마다 다른 결과 => foward secrecy 만족 
  • DLP 기반의 강력한 보안

🔹한계 및 주의점

  • 암호문 크기: 2배 (C₁, C₂) -> RSA보다 큼
  • 복호화를 위해 modular inverse 연산 필요
  • 속도 측면에서는 ECC/비대칭 암호에 비해 조금 무거울 수 있음

요약

단계 내용
키 생성 Y_A = α^X_A mod q
암호화 C₁ = α^k mod q, C₂ = M * Y_A^k mod q
복호화 M = C₂ / C₁^X_A mod q
보안성 DLP (이산 로그 문제) 기반

Elliptic Curve Cryptography (ECC)

  • ECC에서의 덧셈 연산은 RSA의 모듈러 곱셈과 유사한 역할을 한다.
  • 점 곱셈 (scalar multiplication) = 여러 번 덧셈 -> RSA의 지수승과 유사

🔹ECDLP (Elliptic Curve Discrete Logarithm Problem)

  • 수식: Q = k × P (Q, P는 타원 곡선 위의 점, k는 정수)
    • Q는 쉽게 계산 가능 (P와 k를 알고 있을 때)
    • 그러나 Q와 P로부터 k를 찾는 것은 매우 어려움
      ->이 문제를 ECDLP라고 부름

🔹점 곱셈 예시 (binary method)

Q ← O  (무효점에서 시작)
for i ← l to 0:
    Q ← 2Q
    if k_i == 1:
        Q ← Q + P
return Q

Elliptic Curve Arithmetic (타원 곡선 연산)

  • RSA보다 작은 키로 동등한 보안성을 제공.
  • ECC (Elliptic Curve Cryptography):
    • IEEE P1363, IEEE 1609 등의 표준에서 사용.
  • 계산 비용이 낮아 모바일, IoT 환경에 적합.

Comparable Security Strengths (보안 강도 비교)

  • 다양한 암호 방식에 대한 보안 강도 비교 (NIST 기준)
  • 예:
    • RSA 2048bit ≈ ECC 224–255bit
    • RSA 3072bit ≈ ECC 256–383bit
  • ECC가 훨씬 작은 키 길이로 같은 보안 수준을 제공.

Review: Abelian Groups (아벨 군)

  • 아벨 군은 다음 조건을 만족하는 이진 연산 집합:
    • Closure, Associative, Identity, Inverse, Commutative
  • 교환법칙(Commutativity)이 있는 군 -> 아벨 군.
  • 암호학에서는 이런 군 구조가 핵심 기반.

Review: Cyclic Group (순환 군)

  • 그룹의 모든 원소가 하나의 원소 a의 거듭제곱으로 표현 가능.
  • G = ⟨a⟩
  • a는 생성자 (generator) 역할을 한다.
  • 순환군은 항상 아벨 군이기도 함.
  • DH, ElGamal 등은 순환군 구조 활용.

Figure 10.4: 타원 곡선 예시

  • 타원 곡선: y^2 = x^3 + ax + b
  • 곡선 위의 점들로 구성된 군 구조 사용.
  • 점 덧셈(Point Addition)과 배수 연산(Scalar Multiplication)이 핵심.
  • ECC의 기반이 되는 수학적 구조.

 

Figure 10.7 - ECC Diffie–Hellman Key Exchange

🔹공개 파라미터

  • E(a, b) : 타원 곡선
  • G : 타원 곡선 위의 기준점
  • n : 기준점 G의 순환 수

🔹사용자 A의 키 생성

  • 비밀키: n_A < n
  • 공개키: P_A = n_A × G

🔹사용자 B의 키 생성

  • 비밀키: n_B < n
  • 공개키: P_B = n_B × G

🔹비밀 키 계산 (공통 키 공유)

  • 사용자 A: K = n_A × P_B
  • 사용자 B: K = n_B × P_A
  • 결과: 같은 점 K를 공유함 (공통 비밀 키)

Security of Elliptic Curve Cryptography

  • ECC의 보안은 ECDLP의 난이도에 기반한다.
  • 현재까지 가장 빠른 공격은 Pollard rho method지만 여전히 어려움
  • ECC는 같은 보안 수준에서도 훨씬 작은 키 길이를 사용할 수 있다:
    • 예: 256비트 ECC ≈ 3072비트 RSA
  • 따라서 ECC는:
    • 계산량이 적고,
    • 전력 소모도 낮아,
    • 모바일/임베디드/IoT 환경에 적합하다.

요약

항목 설명
Diffie–Hellman 키 교환 비밀키 없이 공개키 교환으로 공통 키 생성보안은 이산 로그 문제(DLP)에 기반
ElGamal 암호 DH 기반 공개키 암호화무작위성 추가 -> 비결정적 암호화
순환군 하나의 원소로 모든 원소 생성 가능 (G = ⟨a⟩)암호학에서 생성자 사용
이산 로그 문제 (DLP) a^k mod p = x는 쉬우나, 역으로 k를 구하기는 어려움
ECC (타원 곡선 암호) 작은 키로 동일한 보안 제공 (256bit ECC ≈ 3072bit RSA)점 덧셈과 점 곱셈 사용
ECDLP 타원 곡선 위에서 Q = kP일 때 k를 찾는 문제는 어려움ECC 보안의 핵심 기반
ECC-DH 키 교환 K = n_A × P_B = n_B × P_A로 공통 비밀키 공유
ECC 장점 짧은 키, 빠른 연산, 낮은 전력소모 -> IoT, 모바일에 적합

'컴퓨터 보안' 카테고리의 다른 글

Topic 04. Blockchain  (1) 2025.06.06
13장-Digital Signature  (0) 2025.05.30
9장-공개키 암호 & RSA  (0) 2025.05.13
12장-MAC  (0) 2025.05.11
11장-암호학 해시함수  (0) 2025.05.11
'컴퓨터 보안' 카테고리의 다른 글
  • Topic 04. Blockchain
  • 13장-Digital Signature
  • 9장-공개키 암호 & RSA
  • 12장-MAC
samsam031
samsam031
samsam031 님의 블로그 입니다.
  • samsam031
    samsam031 님의 블로그
    samsam031
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 디지털포렌식
      • 드림핵 문제풀이
      • 대외활동
      • 개발 실습
      • 컴퓨터 보안
      • 클라우드
      • 자격증
      • 자연어처리
      • 백엔드
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
samsam031
10장-기타 공개키 암호 시스템
상단으로

티스토리툴바