티스토리 뷰
[ 목차 ]
난수
① 난수는 암호기술 중에서 대단히 중요한 역할을 담당한다. 예를 들어 다음과 같은 곳에 사용된다.
⊙ 키의 생성 : 대칭키 암호나 메시지 인증 코드에서 사용한다.
⊙ 키쌍의 생성 : 공개키 암호나 전자서명에서 사용한다.
⊙ 초기화 벡터(Ⅳ)의 생성 : 블록 암호 모드인 CBC, CFB, OFB에서 각각 사용한다.
⊙ 비표(nonce)의 생성 : 재전송 공격방지나 블록 암호의 CTR 모드 등에서 사용한다.
⊙ 솔트의 생성 : 패스워드를 기초로 한 암호화(PBE) 등에서 사용한다.
⊙ 일회용 패드 : 패딩에 사용되는 열을 생성하는데 사용한다.
난수의 성질
(가) 난수의 성질 분류
① 난수의 성질을 다음 3가지로 분류한다.
⊙ 무작위성 : 통계적인 편중 없이 수열이 무작위로 되어 있는 성질
⊙ 예측 불가능성 : 과거의 수열로부터 다음 수를 예측할 수 없다는 성질
⊙ 재현 불가능성 : 같은 수열을 재현할 수 없다는 성질, 재현하기 위해서는 수열 그 자체를 보존해두는 수밖에 없다.
의사난수 생성기
(가) 개요
① 하드웨어로 난수를 생성할 경우, 열이나 음의 변화처럼 예측이나 재현이 사실상 불가능한 자연 현상을 센서로 감지
해서 그 결과를 기초로 난수열을 생성한다. 이와 같은 하드웨를 난수생성기(RNG, random number generator)라 부
른다.
② 난수(실제로는 의사난수)를 생성하는 소프트웨어를 의사난수 생성기(PRNG, pseudo random number generator)라
부른다. 소프트웨어만으로는 진정한 난수를 생성할 수 없기 때문에 『의사』난수 생성기라 부른다.
(나) 의사난수 생성기의 구조
① 의사난수 생성기는 『내부상태』를 가지며, 외부에서 주어진 『종자(seed)』를 기초로 의사 난수열을 생성한다. 내부상
태라고 하는 것은 요컨대 의사난수 생성기가 관리하고 있는 메모리값을 말한다.