From 3c56059046e429367300891beb5fbed458c8de60 Mon Sep 17 00:00:00 2001 From: Emil Lundberg Date: Thu, 4 Apr 2024 15:42:04 +0200 Subject: [PATCH 1/2] Add note about deterministic key generation --- draft-bradleylundberg-cfrg-arkg.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/draft-bradleylundberg-cfrg-arkg.md b/draft-bradleylundberg-cfrg-arkg.md index a121b40..6cf75c0 100644 --- a/draft-bradleylundberg-cfrg-arkg.md +++ b/draft-bradleylundberg-cfrg-arkg.md @@ -379,6 +379,22 @@ ARKG-Generate-Seed() -> (pk, sk) sk = (sk_kem, sk_bl) ~~~ +### Deterministic key generation + +Although the above definition expresses the key generation as opaque, +likely sampling random key distributions, +implementations MAY choose to implement the functions `BL-Generate-Keypair()`, +`KEM-Generate-Keypair()` and `ARKG-Generate-Seed()` +as deriving keys deterministically from some given input key material. +This can be thought of as defining a single-use ARKG instance where these functions return a constant result. +This use case is beyond the scope of this document +since the implementation of `ARKG-Generate-Seed` is internal to the delegating party, +even if applications choose to distribute the delegating party across multiple processing entities. + +For example, one entity may randomly sample `pk_bl`, derive `pk_kem` deterministically from `pk_bl` +and submit only `pk_bl` to a separate service that uses the same procedure to also derive the same `pk_kem`. +This document considers both of these entities as parts of the same logical delegating party. + ## The function ARKG-Derive-Public-Key From 68a88bba764f0e4096065a8d6b50b3d885b7bc7d Mon Sep 17 00:00:00 2001 From: Emil Lundberg Date: Mon, 8 Apr 2024 14:19:47 +0200 Subject: [PATCH 2/2] Address review comments --- draft-bradleylundberg-cfrg-arkg.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/draft-bradleylundberg-cfrg-arkg.md b/draft-bradleylundberg-cfrg-arkg.md index 6cf75c0..717fe4b 100644 --- a/draft-bradleylundberg-cfrg-arkg.md +++ b/draft-bradleylundberg-cfrg-arkg.md @@ -382,11 +382,11 @@ ARKG-Generate-Seed() -> (pk, sk) ### Deterministic key generation Although the above definition expresses the key generation as opaque, -likely sampling random key distributions, +likely sampling uniformly random key distributions, implementations MAY choose to implement the functions `BL-Generate-Keypair()`, `KEM-Generate-Keypair()` and `ARKG-Generate-Seed()` -as deriving keys deterministically from some given input key material. -This can be thought of as defining a single-use ARKG instance where these functions return a constant result. +as deterministic functions of some out-of-band input. +This can be thought of as defining a single-use ARKG instance where these function outputs are static. This use case is beyond the scope of this document since the implementation of `ARKG-Generate-Seed` is internal to the delegating party, even if applications choose to distribute the delegating party across multiple processing entities.