대칭키(Symmetric Key Cryptography)
: 암호화와 복호화에 동일한 키를 사용하는 방식
- 장단점
- 암호화 속도가 빠르고 구현이 간단하지만, 키를 교환하는 과정에서 탈취 위험이 존재
- 또한 통신 대상이 많아질수록 각 쌍마다 고유의 키가 필요해 키 관리가 복잡해질 수 있다.
- 대표 알고리즘
- AES (Advanced Encryption Standard)
- DES (Data Encryption Standard)
비대칭키 암호화 (Asymmetric Key Cryptography)
: 암호화와 복호화에 서로 다른 키를 사용하는 방식
- 공개키와 개인키로 구성되며, 일반적으로 공개키로 암호화하면 개인키로 복호화한다.
- 장단점
- 비대칭키는 키 교환의 보안성을 높이지만, 대칭키 방식에 비해 속도가 느리다.
- 이를 보완하기 위해 두 방식을 혼합한 하이브리드 암호화 방식이 자주 사용된다 (예: HTTPS).
- 대표 알고리즘
- RSA
- ECC (Elliptic Curve Cryptography)
3. 디지털 서명 (Digital Signature)
: 비대칭키 암호화를 활용하여 송신자의 신원과 데이터의 무결성을 검증하는 기술
- 주요 목적
- 송신자 신원 확인 (인증)
- 데이터 위변조 방지 (무결성)
- 일반적인 암호화와는 반대로, 송신자가 개인키로 서명하고 수신자가 공개키로 검증한다.
- 서명 과정
- 송신자가 데이터를 해싱하여 해시값을 생성
- 해시값을 개인키로 암호화 → 디지털 서명
- 원본 데이터와 서명을 함께 전달
- 검증 과정
- 수신자가 공개키로 서명을 복호화 → 해시값1
- 받은 원본 데이터를 다시 해싱 → 해시값2
- 해시값1과 해시값2가 일치하면 서명 유효
4. 실무 활용 예시
- 전자서명: 법률 문서, 공공기관 문서 등에 사용
- 사용자는 개인키로 서명, 수신자는 공개키로 진위 여부 검증
- JWT(RS256) : 사용자 인증 및 권한 부여를 위해 사용하는 토큰 기반 인증 방식
- RS256은 비대칭키 기반 서명 알고리즘 (RSA 기반)
- 서버가 개인키로 서명한 토큰을, 클라이언트 또는 다른 서버가 공개키로 검증
- 코드 서명 인증서
- 소프트웨어 개발자가 프로그램 배포 전에 개인키로 서명
- 사용자의 운영체제는 **공개키(인증서 포함)**로 해당 프로그램이 신뢰된 개발자로부터 왔는지 확인
'IT > CS 공부' 카테고리의 다른 글
| [CS] 트랜잭셔널 아웃박스 패턴 (Transactional Outbox Pattern) (0) | 2025.06.17 |
|---|---|
| [CS] CSRF(Cross-Site Request Forgery) 공격 (1) | 2025.06.17 |
| [CS] 테스트 주도 개발(Test Driven Development, TDD) (0) | 2025.06.09 |
| [CS] 자바의 GC(Garbage Collection) (2) | 2025.06.09 |
| [CS] 시스템 콜(System Call) (0) | 2025.05.29 |