반응형



파일 암호화 구조는 실무에서는 거의 항상:
대칭키(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 |
댓글