rfc9497v6.txt   rfc9497.txt 
Internet Research Task Force (IRTF) A. Davidson Internet Research Task Force (IRTF) A. Davidson
Request for Comments: 9497 Brave Software Request for Comments: 9497 Brave Software
Category: Informational A. Faz-Hernandez Category: Informational A. Faz-Hernandez
ISSN: 2070-1721 N. Sullivan ISSN: 2070-1721 N. Sullivan
C. A. Wood C. A. Wood
Cloudflare, Inc. Cloudflare, Inc.
October 2023 December 2023
Oblivious Pseudorandom Functions (OPRFs) Using Prime-Order Groups Oblivious Pseudorandom Functions (OPRFs) Using Prime-Order Groups
Abstract Abstract
An Oblivious Pseudorandom Function (OPRF) is a two-party protocol An Oblivious Pseudorandom Function (OPRF) is a two-party protocol
between a client and a server for computing the output of a between a client and a server for computing the output of a
Pseudorandom Function (PRF). The server provides the PRF private Pseudorandom Function (PRF). The server provides the PRF private
key, and the client provides the PRF input. At the end of the key, and the client provides the PRF input. At the end of the
protocol, the client learns the PRF output without learning anything protocol, the client learns the PRF output without learning anything
skipping to change at line 729 skipping to change at line 729
contextString = CreateContextString(modePOPRF, identifier) contextString = CreateContextString(modePOPRF, identifier)
return POPRFServerContext(contextString, skS) return POPRFServerContext(contextString, skS)
def SetupPOPRFClient(identifier, pkS): def SetupPOPRFClient(identifier, pkS):
contextString = CreateContextString(modePOPRF, identifier) contextString = CreateContextString(modePOPRF, identifier)
return POPRFClientContext(contextString, pkS) return POPRFClientContext(contextString, pkS)
3.2.1. Deterministic Key Generation 3.2.1. Deterministic Key Generation
This section describes a deterministic key generation function, This section describes a deterministic key generation function,
DeriveKeyPair. It accepts a seed of Ns bytes generated from a DeriveKeyPair. It accepts a seed of 32 bytes generated from a
cryptographically secure random number generator and an optional cryptographically secure random number generator and an optional
(possibly empty) info string. The constant Ns corresponds to the (possibly empty) info string. Note that, by design, knowledge of
size in bytes of a serialized Scalar and is defined in Section 2.1. seed and info is necessary to compute this function, which means that
Note that, by design, knowledge of seed and info is necessary to the secrecy of the output private key (skS) depends on the secrecy of
compute this function, which means that the secrecy of the output seed (since the info string is public).
private key (skS) depends on the secrecy of seed (since the info
string is public).
Input: Input:
opaque seed[Ns] opaque seed[32]
PublicInput info PublicInput info
Output: Output:
Scalar skS Scalar skS
Element pkS Element pkS
Parameters: Parameters:
Group G Group G
skipping to change at line 1827 skipping to change at line 1825
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC9380] Faz-Hernandez, A., Scott, S., Sullivan, N., Wahby, R. S., [RFC9380] Faz-Hernandez, A., Scott, S., Sullivan, N., Wahby, R. S.,
and C. A. Wood, "Hashing to Elliptic Curves", RFC 9380, and C. A. Wood, "Hashing to Elliptic Curves", RFC 9380,
DOI 10.17487/RFC9380, August 2023, DOI 10.17487/RFC9380, August 2023,
<https://www.rfc-editor.org/info/rfc9380>. <https://www.rfc-editor.org/info/rfc9380>.
[RFC9496] de Valence, H., Grigg, J., Hamburg, M., Lovecruft, I., [RFC9496] de Valence, H., Grigg, J., Hamburg, M., Lovecruft, I.,
Tankersley, G., and F. Valsorda, "The ristretto255 and Tankersley, G., and F. Valsorda, "The ristretto255 and
decaf448 Groups", RFC 9496, DOI 10.17487/RFC9496, October decaf448 Groups", RFC 9496, DOI 10.17487/RFC9496, December
2023, <https://www.rfc-editor.org/info/rfc9496>. 2023, <https://www.rfc-editor.org/info/rfc9496>.
8.2. Informative References 8.2. Informative References
[BG04] Brown, D. and R. Gallant, "The Static Diffie-Hellman [BG04] Brown, D. and R. Gallant, "The Static Diffie-Hellman
Problem", November 2004, Problem", November 2004,
<https://eprint.iacr.org/2004/306>. <https://eprint.iacr.org/2004/306>.
[ChaumPedersen] [ChaumPedersen]
Chaum, D. and T. Pedersen, "Wallet Databases with Chaum, D. and T. Pedersen, "Wallet Databases with
skipping to change at line 1881 skipping to change at line 1879
<https://doi.org/10.1109/eurosp.2016.30>. <https://doi.org/10.1109/eurosp.2016.30>.
[NISTCurves] [NISTCurves]
National Institute of Standards and Technology (NIST), National Institute of Standards and Technology (NIST),
"Digital Signature Standard (DSS)", FIPS PUB 186-5, "Digital Signature Standard (DSS)", FIPS PUB 186-5,
DOI 10.6028/NIST.FIPS.186-5, February 2023, DOI 10.6028/NIST.FIPS.186-5, February 2023,
<https://doi.org/10.6028/NIST.FIPS.186-5>. <https://doi.org/10.6028/NIST.FIPS.186-5>.
[OPAQUE] Bourdrez, D., Krawczyk, H., Lewi, K., and C. A. Wood, "The [OPAQUE] Bourdrez, D., Krawczyk, H., Lewi, K., and C. A. Wood, "The
OPAQUE Asymmetric PAKE Protocol", Work in Progress, OPAQUE Asymmetric PAKE Protocol", Work in Progress,
Internet-Draft, draft-irtf-cfrg-opaque-12, 5 October 2023, Internet-Draft, draft-irtf-cfrg-opaque-13, 18 December
<https://datatracker.ietf.org/doc/html/draft-irtf-cfrg- 2023, <https://datatracker.ietf.org/doc/html/draft-irtf-
opaque-12>. cfrg-opaque-13>.
[PRIVACY-PASS] [PRIVACY-PASS]
Celi, S., Davidson, A., Valdez, S., and C. A. Wood, Celi, S., Davidson, A., Valdez, S., and C. A. Wood,
"Privacy Pass Issuance Protocol", Work in Progress, "Privacy Pass Issuance Protocol", Work in Progress,
Internet-Draft, draft-ietf-privacypass-protocol-16, 3 Internet-Draft, draft-ietf-privacypass-protocol-16, 3
October 2023, <https://datatracker.ietf.org/doc/html/ October 2023, <https://datatracker.ietf.org/doc/html/
draft-ietf-privacypass-protocol-16>. draft-ietf-privacypass-protocol-16>.
[PrivacyPass] [PrivacyPass]
"Privacy Pass", commit 085380a, March 2018, "Privacy Pass", commit 085380a, March 2018,
skipping to change at line 2894 skipping to change at line 2892
Authors' Addresses Authors' Addresses
Alex Davidson Alex Davidson
Brave Software Brave Software
Email: alex.davidson92@gmail.com Email: alex.davidson92@gmail.com
Armando Faz-Hernandez Armando Faz-Hernandez
Cloudflare, Inc. Cloudflare, Inc.
101 Townsend St 101 Townsend St
San Francisco, San Francisco, CA
United States of America United States of America
Email: armfazh@cloudflare.com Email: armfazh@cloudflare.com
Nick Sullivan Nick Sullivan
Cloudflare, Inc. Cloudflare, Inc.
101 Townsend St 101 Townsend St
San Francisco, San Francisco, CA
United States of America United States of America
Email: nick@cloudflare.com Email: nicholas.sullivan+ietf@gmail.com
Christopher A. Wood Christopher A. Wood
Cloudflare, Inc. Cloudflare, Inc.
101 Townsend St 101 Townsend St
San Francisco, San Francisco, CA
United States of America United States of America
Email: caw@heapingbits.net Email: caw@heapingbits.net
 End of changes. 10 change blocks. 
17 lines changed or deleted 15 lines changed or added

This html diff was produced by rfcdiff 1.48.