PRF를 사용하여 PRG를 구성하는 방법에 대한 질문

Dec 21 2020

F를 128 비트 키와 256 비트 블록 길이를 가진 안전한 의사 난수 함수로 지정합니다. 다음 함수 G는 보안 의사 난수 생성기입니다. (해당되는 모든 것들을 고르세요.)

ㅏ. $G(x)=F_x(0...0)$, 어디 $x$ 이다 $128$-비트 입력.

비. $G(x)=F_x(0...0)|| F_x(0...0)$, 어디 $x$ 이다 $128$-비트 입력.

씨. $G(x)=F_x(0...0)||F_x(1...1)$, 어디 $x$ 이다 $128$-비트 입력.

디. $G(x)=F_{0...0}(x)|| F_{1...1}(x)$, 어디 $x$ 이다 $256$-비트 입력.

우리 선생님이 주신 대답은 $A,D$. 하지만 이해가 안 돼요. 그리고 왜 C가 틀렸습니까?

답변

1 SAIPeregrinus Dec 23 2020 at 03:33

우리는 숙제 질문에 직접 답하지는 않지만 힌트를 줄 것입니다.

공격자는 비밀이 아닌 모든 입력을 제어하는 ​​것으로 간주됩니다. 열쇠는 비밀이고 블록은 아닙니다. 이 답변 은 PRG에 대한 좋은 정의를 가지고 있습니다. 간단히 말해서 PRG는 고정 길이 비밀 입력 시드 비트 문자열을 취하고 무시할 수없는 확률로 임의의 비트 문자열과 구별 할 수없는 더 긴 비트 문자열을 출력하는 함수입니다.

ㅏ. $G(x)=F_{x}(0...0)$, 여기서 x는 128 비트 입력 키입니다.

공격자가 입력을 제어합니까? 공격자는 무시할 수없는 확률로 무작위 함수의 출력과 출력을 구별 할 수 있습니까 (즉, 출력에 관찰 가능한 패턴이 있습니까)? 출력이 입력보다 길습니까?

유일한 입력 변수는 비밀 키입니다. 출력에 추가 패턴이 추가되지 않습니다. 출력은 얼마나 걸립니까?

비. $G(x)=F_{x}(0...0)||F_{x}(0...0)$, 여기서 x는 128 비트 입력 키입니다.

같은 질문입니다.

유일한 입력 변수는 비밀 키입니다. 출력은 일부 시퀀스를 두 번 반복합니다. 출력은 얼마나 걸립니까?

씨. $G(x)=F_{x}(0...0)||F_{x}(1...1)$, 여기서 x는 128 비트 입력 키입니다.

같은 질문입니다.

유일한 입력 변수는 비밀 키입니다. 출력에 추가 패턴이 있습니까? 출력은 얼마나 걸립니까?

디. $G(x)=F_{0...0}(x)||F_{1...1}(x)$, 여기서 x는 256 비트 입력 데이터 블록입니다.

같은 질문입니다.

유일한 입력 변수는 공용 데이터 블록입니다. 출력에 추가 패턴이 있습니까? 출력은 얼마나 걸립니까?

패턴을 계속하는 누락 된 옵션이 있습니다. E. $G(x)=F_{0...0}(x)||F_{0...0}(x)$, 여기서 x는 공용 256 비트 데이터 블록입니다.

AD에 답할 수 있다면 E는 사소한 것입니다.