0Pricing
Security+ Academy · 강의

비대칭 암호화와 키 쌍

RSA와 타원 곡선 암호를 이해하고, 공개 키와 개인 키의 쌍이 비밀을 공유하지 않고도 안전한 통신을 가능하게 하는 방식을 학습합니다.

비대칭 암호화와 키 쌍은(는) CoddyKit의 무료 Security+ Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Security+ Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Security+ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

비대칭 Encryption 작동 방식

비대칭 Encryption(공개 key 암호학이라고도 함)은 수학적으로 연결된 Key 쌍을 사용합니다. 누구에게나 배포할 수 있는 공개 key와 비밀로 유지해야 하는 개인 key입니다. 공개 key로 암호화한 데이터는 대응하는 개인 key로만 Decrypt할 수 있으며, 그 반대도 마찬가지입니다. 이 정교한 설계는 대칭 Encryption의 key 배포 문제를 해결합니다. 공개 key를 자유롭게 공유해도 보안이 손상되지 않는데, 나에게 보낸 메시지를 Decrypt할 수 있는 것은 나의 개인 key뿐이기 때문입니다.

RSA: 가장 널리 사용되는 알고리즘

RSA(Rivest-Shamir-Adleman)는 1977년에 발명된 가장 널리 배포된 비대칭 Encryption 알고리즘입니다. RSA의 보안성은 두 큰 소수의 곱을 소인수분해하는 수학적 어려움에 기반합니다. RSA는 1024, 2048, 4096비트 key 길이를 지원합니다. 2048비트 RSA가 현재 최소 권장 사항이며, 장기적인 보안을 위해서는 4096비트를 사용합니다. RSA는 TLS의 key 교환(ECDHE로 점차 대체되고 있음), 인증서의 디지털 서명, S/MIME 이메일 Encryption에 사용됩니다.

# Generate an RSA 2048-bit key pair
openssl genrsa -out private.pem 2048

# Extract the public key
openssl rsa -in private.pem -pubout -out public.pem

# Encrypt with public key (only private key can decrypt)
openssl rsautl -encrypt -inkey public.pem -pubin -in message.txt -out encrypted.bin

# Decrypt with private key
openssl rsautl -decrypt -inkey private.pem -in encrypted.bin

타원 곡선 암호학(ECC)

타원 곡선 암호학(ECC)은 RSA보다 훨씬 짧은 key 길이로 동등한 수준의 보안을 제공합니다. 256비트 ECC key는 3072비트 RSA key와 비슷한 보안성을 제공합니다. 이러한 효율성 덕분에 ECC는 모바일 기기, IoT 하드웨어, 성능이 중요한 TLS 연결과 같은 자원 제약 환경에 적합합니다. ECC는 타원 곡선 이산 로그 문제의 수학적 어려움에 기반합니다. 일반적인 ECC 알고리즘에는 ECDSA(타원 곡선 디지털 서명 알고리즘)와 ECDH(key 교환)가 있습니다. TLS 1.3은 ECC 기반 key 교환을 요구합니다.

# Generate an ECC key pair using the P-256 (secp256r1) curve
openssl ecparam -name prime256v1 -genkey -noout -out ec_private.pem

# Extract public key
openssl ec -in ec_private.pem -pubout -out ec_public.pem

# ECC 256-bit ~ RSA 3072-bit in security strength
# Much faster operations, smaller keys = faster TLS handshakes

공개 Key 사용: Encryption 방향

Security+ 시험에서는 key를 사용하는 방향을 이해하는 것이 중요합니다. key의 역할이 반대가 되는 두 가지 사용 사례가 있습니다. 기밀성을 위한 Encryption에서는 발신자가 수신자의 공개 key로 암호화하고, 수신자만 자신의 개인 key로 Decrypt할 수 있습니다. 인증을 위한 디지털 서명에서는 서명자가 자신의 개인 key로 해시를 암호화하고, 누구나 서명자의 공개 key를 사용하여 Verify할 수 있습니다. 이 방향을 거꾸로 이해하는 것은 시험에서 흔한 실수입니다. 공개 key는 암호화하고 개인 key는 Decrypt하며, 개인 key는 서명하고 공개 key는 Verify한다는 점을 기억하십시오.

비대칭 Key를 사용한 디지털 서명

디지털 서명은 비대칭 암호학을 사용하여 인증, 무결성, 부인 방지를 제공합니다. 과정은 다음과 같습니다. (1) 발신자가 메시지의 해시를 계산하고, (2) 개인 key로 해시를 암호화하여 서명을 만들고, (3) 메시지와 서명을 함께 보냅니다. 수신자는 (4) 발신자의 공개 key를 사용하여 서명을 Decrypt해 해시를 복원하고, (5) 수신한 메시지를 독립적으로 해시한 다음, (6) 두 해시를 비교합니다. 두 값이 일치하면 메시지가 올바른 발신자가 보낸 것이며 변경되지 않았음을 증명합니다.

# Sign a document with ECDSA private key
openssl dgst -sha256 -sign ec_private.pem -out document.sig document.txt

# Verify the signature with the public key
openssl dgst -sha256 -verify ec_public.pem -signature document.sig document.txt
# Output: Verified OK (or Verification Failure)

비대칭 Encryption은 왜 느린가

비대칭 Encryption은 대칭 Encryption보다 계산 비용이 많이 들며 일반적으로 100~1,000배 느립니다. 비대칭 알고리즘은 큰 수에 대해 복잡한 수학 연산(RSA의 모듈러 지수 연산, ECC의 곡선 위 점 곱셈)을 수행하기 때문입니다. 따라서 비대칭 Encryption은 대량 데이터를 직접 암호화하는 데 절대 사용하지 않습니다. 대신 작은 대칭 세션 key를 안전하게 교환하는 데 사용하고, 이후 대칭 key로 실제 데이터를 암호화합니다. 이 하이브리드 방식은 두 방식의 보안상 이점을 결합합니다.

Key 쌍 생성 및 저장

올바른 Key 쌍 관리는 필수적입니다. 개인 key는 하드웨어 보안 모듈(HSM)에서 생성하거나 암호화된 key 저장소에 보관해야 하며, 보호되지 않은 일반 텍스트 파일로 저장해서는 안 됩니다. Key 쌍에는 제한된 유효 기간이 있으므로, 기간이 지나면 다시 생성해야 합니다. 인증서 기반 Key 쌍의 경우 개인 key는 생성된 기기나 HSM 밖으로 절대 나가서는 안 됩니다. 개인 key가 유출되면 공격자가 key 소유자를 사칭하고 해당 공개 key로 암호화된 모든 메시지를 Decrypt할 수 있습니다.

공개 Key 기반 구조의 맥락

비대칭 Key 쌍은 공개 key가 실제로 여러분이 생각하는 대상의 것이라는 점을 신뢰할 수 있을 때만 보안을 제공합니다. 신뢰 메커니즘이 없으면 공격자가 의도한 수신자의 key 대신 자신의 공개 key를 제시할 수 있습니다. 이는 전형적인 중간자 공격입니다. 공개 Key 기반 구조(PKI)는 신뢰할 수 있는 인증 기관(CA)이 공개 key와 검증된 신원을 연결하는 인증서에 디지털 서명하도록 하여 이 문제를 해결합니다. HTTPS 웹사이트를 방문하면 브라우저는 신뢰하는 CA를 기준으로 서버의 인증서를 Verify하여 공개 key가 정당한지 확인합니다.

RSA와 ECC 비교

RSA와 ECC 중에서 선택할 때는 세 가지 요소를 고려하십시오. Key 크기 효율성: ECC 256비트는 보안성에서 RSA 3072비트와 같습니다. 성능: 특히 모바일 및 IoT 기기에서 ECC가 훨씬 빠릅니다. 채택 정도: RSA는 기존 시스템과의 호환성이 더 넓고, ECC는 TLS 1.3에서 요구되며 최신 보안 표준에서 점점 더 의무화되고 있습니다. 현재 권장되는 key 크기로 올바르게 구현한다면 두 알고리즘 모두 여전히 안전한 것으로 간주됩니다. Security+ 시험에서는 이러한 절충점과 각 알고리즘이 적합한 상황을 이해해야 합니다.

비대칭 암호화에 대한 양자 컴퓨팅의 위협

비대칭 암호화는 양자 컴퓨터로 인해 장기적인 위협에 직면해 있습니다. 충분히 강력한 양자 컴퓨터에서 Shor 알고리즘을 실행하면 소인수분해 문제(RSA를 무력화)와 이산 로그 문제(ECC를 무력화)를 다항 시간 안에 풀 수 있어 현재 안전한 키 길이도 해독할 수 있게 됩니다. NIST는 이미 RSA와 ECC를 대체할 양자 내성 암호 알고리즘으로 CRYSTALS-Kyber(키 캡슐화)와 CRYSTALS-Dilithium(디지털 서명) 등을 선정했습니다. 장기간 민감하게 보호해야 하는 데이터를 처리하는 조직은 지금부터 양자 내성 암호로의 전환을 계획해야 합니다.

비대칭 암호화의 사용 사례

비대칭 암호화는 매일 사용하는 여러 보안 메커니즘의 기반입니다. HTTPS: TLS 핸드셰이크에서 RSA 또는 ECC를 사용해 세션 키를 교환합니다. SSH: 공개 키 인증을 사용하면 비밀번호 대신 키 쌍을 사용할 수 있습니다. 코드 서명: 소프트웨어 공급업체가 Private 키로 코드를 서명하고, 사용자의 OS가 Public 키로 이를 Verify합니다. S/MIME 이메일: 수신자의 Public 키로 이메일을 암호화하고 자신의 Private 키로 서명합니다. Bitcoin/블록체인: 트랜잭션은 ECDSA Private 키로 서명됩니다. 이러한 메커니즘이 실제로 어디에 사용되는지 이해하면 시험 문제의 맥락을 파악하는 데 도움이 됩니다.

# SSH public key authentication
# Generate ED25519 key pair (modern, faster than RSA)
ssh-keygen -t ed25519 -C 'alice@company.com'
# ED25519 is based on elliptic curves - fast and secure
# Public key goes to server: ~/.ssh/authorized_keys
# Private key stays local: ~/.ssh/id_ed25519 (protect with passphrase)

빠른 확인

이 lesson에서 다룬 CompTIA Security+ (SY0-701) 개념에 대한 이해도를 확인해 보십시오.

lesson 요약

이 lesson에서는 다음을 배웠습니다. 비대칭 암호화는 수학적으로 연결된 키 쌍을 사용합니다. RSA와 ECC가 대표적인 알고리즘이며(ECC는 더 짧은 키로 더 빠르게 동작합니다), 기밀성을 위해 Public 키로 암호화하고 인증을 위해 Private 키로 서명합니다. 또한 비대칭 암호화는 느리지만 키 분배 문제를 해결합니다. 다음에서는 Hash와 데이터 무결성을 살펴봅니다.

자주 묻는 질문

“비대칭 암호화와 키 쌍” 강의는 무료인가요?

네 — “비대칭 암호화와 키 쌍” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Security+ Academy 강의 전체를 잠금 해제할 수 있습니다. Security+ Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“비대칭 암호화와 키 쌍”에서 뭘 배우나요?

RSA와 타원 곡선 암호를 이해하고, 공개 키와 개인 키의 쌍이 비밀을 공유하지 않고도 안전한 통신을 가능하게 하는 방식을 학습합니다. 브라우저에서 직접 실행하는 실습 코드로 Security+ Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Security+ Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Security+ Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“비대칭 암호화와 키 쌍” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Security+ Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Security+ Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 대칭 암호화 알고리즘
  2. 비대칭 암호화와 키 쌍
  3. 해싱과 데이터 무결성
  4. 키 교환과 하이브리드 암호화
← Security+ Academy(으)로 돌아가기