Cryptographic key derivation is a process used to generate one or more specific keys generally utilizing one or more Key Derivation Functions (KDFs). There are symmetric key derivation functions wherein one cryptographic key is generated and used to both encrypt and decrypt data with. There are also asymmetric key derivation functions, such as RSA and ECC, wherein two cryptographic keys, i.e., a cryptographic key pair, are generated: a first, public, key which is used to encrypt data with and a second, private, key which is utilized to decrypt previously encrypted data with.
There exists application programming interfaces (APIs), i.e., a set of programming instructions, that are employed in some security contexts of a computing device and execute as a KDF to provide, or otherwise support, functionality to generate an asymmetric cryptographic key pair. In these security contexts input is not utilized or otherwise associated with the generation of the cryptographic key pair and there is no reliance or expectation that the same key pair will be reproduced, or regenerated, upon subsequent execution of the same KDF, whether or not a same input is introduced. By the implicit randomness of the nature of these KDFs in these security contexts they will generate different key results upon subsequent executions, even if attempted to be initiated with the same initial, e.g., seed value, input parameter(s).
There further exists APIs that are employed in some other security contexts and execute as a KDF to provide, or otherwise support, functionality to generate a cryptographic key, or keys, also referred to herein simply as a key, directly from the system entropy, i.e., a seed value that is a random or pseudo-random number generated for system usage. In these security contexts the same key(s) can be repeatedly reliably reproduced, or regenerated, utilizing the same system entropy. In at least some of these other security contexts the same key is expected, and is relied upon, to be reproduced in order for the system cryptography to function properly.