PRF(의사 난수 함수)

PRF (의사 난수 함수) 프리미티브를 사용하면 지정된 입력에 대해 안정적인 임의 길이의 의사 난수 출력을 생성할 수 있습니다.

Tink는 키 세트에서 작동하므로 이 프리미티브는 단일 PRF 대신 상응하는 PRF 세트를 노출합니다. PRF는 32비트 키 ID로 색인이 생성됩니다. 이는 이전 연결을 잃지 않고 정보를 수정하는 데 사용되는 키를 순환하는 데 사용할 수 있습니다.

PRF에는 다음과 같은 속성이 있습니다.

  • 확정적: 지정된 입력에 대해 PRF를 계산하면 항상 동일한 출력이 생성됩니다.
  • 무작위성: PRF의 출력과 임의의 바이트를 구분할 수 없습니다.

키 유형 선택

대부분의 경우 HMAC_SHA256_PRF를 사용하는 것이 좋지만 다른 옵션도 있습니다.

일반적으로 다음과 같은 사항이 적용됩니다.

  • HMAC_SHA512_PRF는 입력 크기와 사용하는 하드웨어의 사양에 따라 더 빠를 수도 있고 그렇지 않을 수도 있습니다.
  • HMAC_SHA512_PRF는 사실상 무제한의 메시지에 사용할 수 있는 가장 보수적인 모드입니다.
  • AES_CMAC_PRFAES-NI 하드웨어 가속을 지원하는 시스템에서 가장 빠릅니다.

최소한의 보안 보장

  • 키를 알지 못하면 PRF는 임의의 함수와 구별할 수 없습니다.
  • 멀티 사용자 시나리오에서도 최소 128비트 보안 (공격자가 특정 키를 타겟팅하는 것이 아니라 최대 232개의 키 모음 중 하나를 타겟팅하는 경우)
  • 16바이트 이상의 출력 사용 가능

사용 사례 예시

PRF의 사용 사례로는 개인 식별 정보 (PII)의 확정적 수정, 키 해시 함수, 키를 모르는 상태에서 원래 데이터 세트와 조인할 수 없는 하위 ID 생성 등이 있습니다.

PRF를 사용하여 메시지의 신뢰성을 증명할 수 있지만, 이 사용 사례에는 MAC 프리미티브를 사용하는 것이 좋습니다. MAC 프리미티브는 인증을 지원하고 인증 중에 자주 발생하는 보안 문제를 피하며 키 순환을 자동으로 지원하기 때문입니다. 또한 비결정적 알고리즘을 허용합니다.