PGP
PGP (Pretty Good Privacy)
대칭 및 비대칭 암호화를 결합하여 이메일, 파일, 데이터의 기밀성, 인증, 무결성을 분산형 신뢰 웹 모델 기반으로 제공하는 암호화 시스템입니다.
기술 세부사항
PGP는 하이브리드 암호화 모드로 작동합니다: 랜덤 대칭 세션 키(AES-256)가 데이터를 암호화한 후, 수신자의 RSA/ECDH 공개 키가 세션 키를 암호화합니다. 디지털 서명은 발신자의 개인 키를 사용하여 메시지의 해시에 서명합니다. OpenPGP 표준(RFC 4880, RFC 9580으로 업데이트)은 오픈소스 대안인 GnuPG(GPG)로 구현됩니다. 키 관리는 중앙 인증 기관 대신 신뢰 웹 모델(사용자가 서로의 키를 보증)을 사용합니다. keys.openpgp.org 같은 키서버가 공개 키를 배포합니다. PGP는 이메일 암호화, 파일 암호화, 소프트웨어 패키지 서명, Git 커밋 서명에 일반적으로 사용됩니다.
예시
```javascript
// AES-256-GCM encryption (Web Crypto API)
const key = await crypto.subtle.generateKey(
{ name: 'AES-GCM', length: 256 }, true, ['encrypt', 'decrypt']
);
const iv = crypto.getRandomValues(new Uint8Array(12));
const ciphertext = await crypto.subtle.encrypt(
{ name: 'AES-GCM', iv },
key,
new TextEncoder().encode('secret message')
);
```