본문으로 건너뛰기
HexaTransfer
블로그로 돌아가기
암호화 및 보안

대칭 vs 비대칭 암호화: 핵심 차이점 설명

대칭 암호화와 비대칭 암호화를 쉬운 말로 비교합니다. 각각의 작동 원리와 현대 파일 전송에서의 조합 방법.

대칭 암호화는 암호화와 복호화에 하나의 키를 사용합니다 — 파일 전송 중 파일을 보호하는 AES-256-GCM이 대표적입니다. 비대칭 암호화는 키 쌍을 사용합니다: 누구나 볼 수 있는 공개 키와 본인만 보유하는 개인 키, RSA-4096과 Curve25519 같은 알고리즘이 여기에 해당합니다. 대칭은 빠르지만(현대 CPU에서 초당 기가바이트) 양측이 같은 비밀을 공유해야 합니다. 비대칭은 키 교환 문제를 해결하지만 1,000배 느립니다. HexaTransfer, Tresorit, Proton Drive, SwissTransfer 같은 현대 파일 전송 서비스는 모두 두 가지를 함께 사용합니다: 비대칭으로 대칭 키를 교환하고, 대칭으로 실제 파일을 암호화합니다.

단일 키의 세계: 대칭 암호화

대칭 암호는 양방향에 같은 키를 사용합니다. 키 K로 파일을 암호화하면 상대방도 키 K가 있어야 복호화할 수 있습니다. 현재 사용 중인 주요 대칭 알고리즘은 다음과 같습니다.

  • AES(Rijndael): 128, 192, 256비트 키, FIPS 197로 표준화.
  • ChaCha20: 256비트 키, AES-NI 하드웨어 가속이 없는 기기에서 선호.
  • 3DES: 2023년 NIST가 폐기, 사용 금지.

처리량이 큰 장점입니다. AES-256-GCM은 Intel AES-NI에서 코어당 약 3~5 GB/s, ChaCha20-Poly1305는 ARM 스마트폰에서 1.5~3 GB/s로 실행됩니다. 10 GB 파일 암호화가 수 초 안에 완료됩니다.

문제점: 상대방에게 키를 어떻게 전달할까요? 이메일로 보내면 목적이 무의미해집니다. 이것이 키 배포 문제이며, 비대칭 암호화가 존재하는 이유입니다.

두 키의 세계: 비대칭 암호화

1976년 Diffie와 Hellman이 발명하고, 1977년 Rivest, Shamir, Adleman이 RSA로 구현했습니다. 각 사용자는 키 쌍을 갖습니다: 공개적으로 배포하는 공개 키와 비밀로 유지하는 개인 키. 공개 키로 암호화된 것은 개인 키로만 복호화할 수 있고, 그 반대도 마찬가지입니다.

비밀 파일을 전송하려면 수신자의 공개 키로 암호화하면 됩니다. 수신자의 개인 키만이 열 수 있으며, 발신자는 어떤 비밀도 미리 공유할 필요가 없습니다. 키 배포 문제가 해결됩니다.

현재 비대칭 알고리즘:

  • RSA-2048 또는 RSA-4096: 느리지만 범용 지원, TLS 인증서에 사용.
  • 타원 곡선(ECDH, ECDSA): P-256, P-384, Curve25519 곡선 사용. 256비트 EC 키가 3072비트 RSA 키와 동등한 보안성.
  • Ed25519: 서명의 현대 기본값, SSH와 Signal이 사용.

비대칭 암호화가 파일에 너무 느린 이유

비대칭 수학 연산은 비쌉니다. RSA-4096 암호화는 현대 CPU에서 초당 약 100~500회 연산을 처리합니다. 각 연산은 약 470바이트(RSA 블록 크기에서 패딩 제외)를 처리합니다. 이는 초당 약 200 KB — AES-256-GCM보다 약 50,000배 느립니다. 10 GB 파일을 RSA로 암호화하려면 약 14시간이 걸립니다. AES-256-GCM으로는 약 3초면 됩니다.

하이브리드 암호화: 실제 세계의 접근법

속도와 보안이 모두 필요한 모든 프로토콜은 두 가지를 결합합니다. TLS 1.3, PGP, Signal, Age, 그리고 모든 신뢰할 수 있는 파일 전송 서비스가 이 패턴을 사용합니다.

  1. 발신자가 무작위 256비트 AES 키("세션 키" 또는 "파일 키")를 생성합니다.
  2. 파일을 해당 키로 AES-256-GCM 암호화합니다.
  3. AES 키 자체를 수신자의 공개 키로 암호화합니다(RSA-OAEP 또는 ECIES).
  4. 암호문과 암호화된 키 모두 수신자에게 전달됩니다.
  5. 수신자가 개인 키로 AES 키를 복호화한 뒤 파일을 복호화합니다.

비대칭 비용은 수신자당 한 번, 256비트 키에 대해서만 지불합니다. 대용량 파일은 전속력으로 대칭 처리됩니다.

파일 전송 서비스의 차이점

브라우저 기반 전송 서비스는 수신자가 키 쌍이 없을 수 있다는 문제가 있습니다. 세 가지 패턴이 이를 처리합니다.

  • 공유 링크 대칭만 사용: SwissTransfer, HexaTransfer, Firefox Send 계승자. 발신자 브라우저에서 무작위 AES-256 키를 생성하여 URL fragment에 삽입하고, 수신자 브라우저가 fragment에서 읽습니다. 비대칭 암호화 불필요 — fragment가 채널입니다.
  • 계정 간 비대칭: Tresorit, Proton Drive. 가입 시 사용자에게 RSA 또는 ECC 키 쌍을 생성합니다. 특정 수신자에게 공유되는 파일은 수신자의 공개 키로 래핑됩니다.
  • 패스워드를 이용한 하이브리드: 많은 서비스. URL fragment에 솔트가 포함되고, 사용자가 패스워드를 입력하면 PBKDF2 또는 Argon2id가 대칭 키를 파생합니다.

공유 링크 방식은 가장 단순하고 계정 없는 수신자에게도 작동합니다. 계정 기반 비대칭은 링크를 잃어도 키가 유출되지 않으므로 더 강력합니다.

디지털 서명: 비대칭 암호화의 또 다른 역할

비대칭 암호화는 대칭이 할 수 없는 것을 합니다: 작성자 증명. 개인 키로 파일에 서명하면 공개 키를 가진 누구나 서명을 검증할 수 있으며, 서명 이후 변조되지 않았음을 알 수 있습니다.

사용 중인 서명 알고리즘:

  • RSA-PSS with SHA-256: 레거시이지만 광범위하게 지원.
  • ECDSA on P-256 or P-384: NIST 승인, 미국 연방 시스템에 사용.
  • Ed25519: 빠르고 결정론적, 불량 RNG에 저항. 현대적 선택.

키 크기와 보안 수준

고전 컴퓨터에 대한 동등 보안 수준 변환표:

  • 128비트 대칭 = 3072비트 RSA = 256비트 EC(P-256 또는 Curve25519)
  • 192비트 대칭 = 7680비트 RSA = 384비트 EC(P-384)
  • 256비트 대칭 = 15360비트 RSA = 512비트 EC(P-521)

미래 양자 컴퓨터에 대해 대칭 키는 Grover 알고리즘으로 강도가 절반으로 감소하지만, RSA와 ECC는 Shor 알고리즘으로 완전히 깨집니다. NIST는 2024년 FIPS 203~205에서 후양자 대안(ML-KEM, ML-DSA)을 표준화했습니다.

언제 어떤 것을 사용할까

실용적인 결정 가이드:

  • 개인 파일 암호화(백업, 보관): Argon2id를 통한 강력한 패스워드의 대칭 AES-256-GCM. 비대칭 불필요.
  • 알려진 수신자에게 파일 전송: 하이브리드 — 파일에 AES-256-GCM, 세션 키 래핑에 공개 키.
  • 다수의 수신자에게 전송: 파일을 AES로 한 번 암호화하고, 각 수신자의 공개 키로 키를 별도 래핑.
  • 발신자 증명: 암호문에 대한 Ed25519 서명.
  • 링크를 통한 일회성 공유: URL fragment에 키가 있는 대칭.

hexatransfer.com에서 사용해 보세요 — 무료, 계정 불필요, 최대 10GB.

엔드투엔드 암호화로 대용량 파일을 안전하게 전송

엔드투엔드 암호화로 최대 10GB의 파일을 무료로 전송하세요. 계정이 필요하지 않습니다. 업로드 전에 브라우저에서 파일이 암호화되어 다른 사람은 읽을 수 없습니다.

파일 보내기