2.3 랜덤넘버와 의사랜덤넘버
제2장. 대칭 암호와 메시지 기밀성
목포해양대해양컴퓨터공학과
1
목포해양대해양컴퓨터공학과
랜덤넘버
•
랜덤넘버
(random number)의 역할
• 다양한 네트워크 응용에서 암호화를 할 때 중요한 역할
•
랜덤넘버 활용도
• RSA 암호 알고리즘 및 공개키 알고리즘 키 생성
• 대칭 스트림 암호 스트림 키 생성
• 임시 세션키 생성
• Kerberos에서 키 배포시 랜덤넘버를 사용하여 재전송 공격을
방어를 위한 핸드셰이킹에 사용
목포해양대해양컴퓨터공학과
3
랜덤넘버 특성
•
무작위성
(randomness)• 균등분포(Uniform distribution)
• 수열의 분포가 균등해야 함 (0, 1이 나오는 빈도가 거의 비슷해야)
• 테스트 가능
• 독립성(Independence)
• 어떠한 부분수열도 다른 수열로부터 추론할 수 없어야 함
• 일반적 테스트 없음 (대신 여러 개의 독립성에 대한 테스트를 통한 증명)
•
예측불가능성
(Unpredictability)• 진성 랜덤넘버(true random number)
• 수열에 나타나는 모든 수가 통계적으로 수열 안의 다른 수와
목포해양대해양컴퓨터공학과
4
TRNG, PRNG, PRF (1)
•
진성 랜덤넘버생성기(TRNG: true random number generator)
•
의사 랜덤넘버
(pseudorandom number)• 알고리즘에 의한 값 생성
• 입력 값을 알면 출력 값을 정확히 알 수 있음
• 그러나 생성된 수열은 여러가지 무작위성 테스트를 통과할 수 있음
• 종자(seed) 값이 같으면 출력값이 같은 결정적 알고리즘 사용
•
의사 랜덤넘버 생성기
(PRNG: Pseudorandom number generator)•
의사 랜덤 함수(PRF: Pseudorandom function)
목포해양대해양컴퓨터공학과
5
TRNG, PRNG, PRF (2)
목포해양대해양컴퓨터공학과
알고리즘 설계
•
알고리즘 설계
• 특정목적 알고리즘:
• 의사랜덤 비트 스트림을 생성하기 위해서 특정하게 그 목적만을 위해 설계
• 스트림 암호용 (RC-4)
• 기존 암호 알고리즘을 이용한 알고리즘:
• 암호를 이용해서 의사랜덤비트 생성
• 세 가지 방법
• 대칭 블록 암호
• 비대칭 암호
• 해시함수와 메시지 인증 코드 목포해양대
해양컴퓨터공학과
7