1. 키
1-1. 특징
- 평문과 같은 가치를 지님
- 키 공간의 크기가 클수록 무차별 공격에 강함
1-2. 키의 종류
세션키 | 한 번만 사용되는 키 (통신할 때마다 재생성) |
마스터키 | 반복적으로 사용되는 키 |
CEK (Contents Encrypting Key) |
정보를 암호화하는 키 주로 세션키를 사용함 |
KEK (Key Encrypting Key) |
키를 암호화하는 키 주로 마스터키 사용 |
1-3. 패스워드를 기초로 한 암호
- 솔트
- 의사난수 생성기에서 만들어져, KEK을 만들 때 패스워드와 함께 해시함수에 입력됨
- 사전공격 또는 레인보우 테이블을 이용한 공격을 방어
- PBKDF (Password-Based Key Derivation Function)
- 비밀번호, 반복횟수, 생성할 키의 길이를 입력으로 비밀키 출력
- 암호키 저장 방법
- 서버 또는 하드웨어 토큰(보안 토큰)에 저장 가능
2. 난수
2-1. 난수의 용도
- 키, IV, 비표 (nonce), 솔트, 일회용 패드 생성에 사용됨
2-2. 난수의 성질
- 무작위성: 통계적 편중 없이 수열이 무작위여야 함
- 예측 불가능성: 과거의 수열로부터 다음 수를 예측할 수 없어야 함
- 재현 불가능성: 같은 수열을 재현할 수 없어야 함 (진난수 조건)
2-3. 의사난수 생성기 (PRNG)
- 난수 생성기 (RNG)
- 자연 현상을 하드웨어(센서)로 감지해 난수열 생성
- 의사난수 생성기 (PRNG)
- 소프트웨어로 의사난수를 생성하는 시스템
- 내부 상태를 지니며, 외부값인 종자(seed)를 기초로 난수열을 생성함