A computer program product in a non-transitory computer readable medium for use in a data processing system to secure information in a compute environment having an accelerator configured as an array of Resistive Processing Units (RPUs), the accelerator being configured to perform a computation associated with an application, the computer program product holding computer program instructions executed in the data processing system and configured to:
- provide a first input to the RPU array, wherein the first input comprises a first stochastic pulse train;
- detect a first output from the RPU array, and wherein the first output represents a first state of the RPU array induced by the first stochastic pulse train;
- with the RPU array in the first state, provide a second input to the RPU array, the second input comprises a second stochastic pulse train;
- detect a second output from the RPU array;
- concatenate the first and second outputs generated by the RPU array into a data string, the data string being cryptographic keying material that is derived from the RPU array serving as a physically unclonable function (PUF);
- and
- use the data string to secure information in the compute environment;
- wherein the data string is generated by the RPU array in association with the computation by the RPU array.