3.6.3 Context Specification for Key Operations

The context input for Key operations is used to specify the properties of a key and enables the explicit differentiation of keys that have distinct purposes. Under no circumstance must the same context be used on the same device for keys with different properties or purposes.

For Get Key operations, the combination of the intrinsic PUF key and the context uniquely defines the key that is output. If the same context is used, the same key is produced.

For Wrap and Wrap Generated Random operations, the combination of the intrinsic PUF key and context uniquely determines which keys are used to protect the wrapped data. Each key code is still unique, even when the same data and context are used.

The context is built by the PUF module combining the user context, the scope, and the destination.

The scope can be used to limit the accepted destinations of the key in the Enrolled and Started states. This can be used when a key must be shared with an application, but in the field the key may not be exposed to the microcontroller.

The user context can be used to differentiate between keys that have the same length and scope. For example, user_context_0 could be used to indicate which cryptographic algorithm the key is intended for, while user_context_1 provides an index for when multiple keys must be available for the same cryptographic algorithm.

For security reasons, user context bits that are not required for the intended application also should not be available to other parties. Therefore, it is recommended to limit the number of bits that can be used in the user context fields as much as possible. This can be done with the DRV_PUF_RestrictContext function in the PUF driver.

Table 3-3. Fields in the User Context for Key Operations
Word IndexBit RangeValueDescription
0[31:0]Any

User context for key derivation; available bits are restricted by the value set in the PUF driver through DRV_PUF_RestrictContext function in context 0.

Bit [3:0]: key index (optional).
1[31:0]AnyUser context for key derivation; available bits are restricted by the value set in the PUF driver through DRV_PUF_RestrictContext function in context 1.