본문 바로가기
system_fundamentals/security_cryptography

파일 암호화 구조

by 죄니안죄니 2026. 5. 14.
반응형
파일 암호화 구조
파일 암호화 구조

 

파일 암호화 구조
파일 암호화 구조
파일 암호화 구조
파일 암호화 구조
 

파일 암호화 구조는 실무에서는 거의 항상:

대칭키(AES)로 파일 암호화
+
공개키(RSA/ECC)로 AES 키 보호
 

구조를 사용한다.

왜냐면:

  • 파일 자체는 용량이 큼 → AES 필요
  • 키 전달은 안전해야 함 → 공개키 필요

하기 때문이다.


가장 기본 구조

전체 흐름은 보통 이렇다.

파일
↓
AES 랜덤키 생성
↓
파일 AES 암호화
↓
AES 키를 RSA 공개키로 암호화
↓
둘 다 저장
 

왜 AES를 사용할까?

파일은 보통 크다.

예:

  • 10MB
  • 1GB
  • 100GB

RSA 같은 공개키 암호로 이런 걸 직접 암호화하면:

속도가 너무 느림
 

이다.

그래서 실제 파일 내용은 AES로 처리한다.


실제 파일 암호화 과정

STEP 1 — 랜덤 AES 키 생성

예:

AES-256 key 생성
 

보통:

  • 256bit 랜덤값
  • SecureRandom 사용

한다.


STEP 2 — IV/Nonce 생성

AES-GCM 기준:

Nonce 생성
 

이건 암호화 시작용 랜덤값이다.


STEP 3 — 파일 데이터 AES 암호화

보통:

AES-GCM
 

사용한다.

즉:

  • 기밀성
  • 무결성
  • 위변조 검증

까지 함께 처리한다.


결과물

암호화 결과:

[암호문]
[Nonce]
[Authentication Tag]
 

가 생성된다.


STEP 4 — AES 키 보호

문제:

AES 키를 어떻게 안전하게 전달?
 

이다.

여기서 공개키 암호 등장.


공개키로 AES 키 암호화

예:

AES Key
↓
RSA Public Key로 암호화
↓
Encrypted AES Key
 

왜 이렇게 할까?

RSA는 느리지만:

작은 데이터 암호화
 

에는 적합하다.

AES 키는:

32byte 정도
 

밖에 안 되므로 RSA로 충분하다.


최종 저장 구조

실제 파일 포맷은 보통 이런 느낌이다.

[Header]
[Encrypted AES Key]
[Nonce]
[Ciphertext]
[Auth Tag]
 

복호화 과정

반대로 복호화는:

STEP 1

RSA 개인키로:

Encrypted AES Key
→
AES Key 복원
 

STEP 2

복원한 AES 키로:

파일 복호화
 

한다.


왜 이 구조가 좋은가?

이걸 Hybrid Encryption(하이브리드 암호화)라고 한다.

장점:

역할담당
대용량 암호화 AES
안전한 키 전달 RSA/ECC

즉 서로 장점만 사용한다.


실제 사용 예시

HTTPS

실제로 HTTPS도 비슷하다.

RSA/ECDHE
→ 세션키 교환
↓
AES-GCM 통신
 

ZIP/압축 암호화

  • 7z
  • ZIP AES

도 내부적으로 AES 사용한다.


클라우드 저장소

  • Google Drive
  • Microsoft OneDrive
  • Apple iCloud

도 대부분:

파일 AES 암호화
+
키 관리 서버
 

구조다.


디스크 암호화는 조금 다름

예:

  • BitLocker
  • FileVault
  • LUKS

는 보통:

디스크 전체를 AES-XTS
 

같은 방식으로 암호화한다.


왜 파일마다 키를 다르게 할까?

매우 중요하다.

만약:

모든 파일 동일 AES 키
 

면 하나 유출 시 끝난다.

그래서 보통:

파일별 랜덤 키
 

생성한다.


GCM이 중요한 이유

예전 CBC 시절엔:

암호화 성공
≠
데이터 정상
 

이었다.

하지만 AES-GCM은:

태그 검증 실패
→ 위변조 즉시 감지
 

가능하다.

그래서 현재 표준급이다.


실무에서 가장 중요한 포인트

1. 키 관리가 핵심

암호 알고리즘보다:

키 유출 여부
 

가 훨씬 중요하다.


2. nonce 재사용 금지

AES-GCM에서:

같은 키 + 같은 nonce
 

재사용은 치명적이다.


3. 직접 구현 위험

실무에서는:

  • OpenSSL
  • libsodium
  • JCE(Java)
  • BouncyCastle

같은 검증된 라이브러리 사용한다.


핵심 요약

현대 파일 암호화 구조는:

파일은 AES로 빠르게 암호화하고,
AES 키는 RSA/ECC 공개키로 안전하게 보호하는
하이브리드 구조
 

를 사용한다.

반응형

'system_fundamentals > security_cryptography' 카테고리의 다른 글

DB 컬럼 암호화 방식  (0) 2026.05.14
용어정리  (0) 2026.05.14
스트림 암호 vs 블록 암호  (0) 2026.05.14
IV는 왜 필요한가  (0) 2026.05.14
CBC/GCM 차이  (1) 2026.05.14

댓글