Reference Manual

Table Of Contents
RS9116 n-Link Linux and Android Technical Reference Manual
Version 2.0
August 2019
107
19 PUF [ Physical Unclonable Functions ]
19.1 Introduction
PUF, is a technology which provides a secure method for storing a key, withstanding today’s attack and even
protecting against future potential attack. The purpose of PUF is to provide secure key storage without storing the
key. Instead of storing the key a Key Code is generated which in combination with SRAM startup behavior is used to
reconstruct keys.
19.2 Configuration
This feature is default disabled in Host Driver. To use this feature, ensure that driver is compiled with below define
enabled in Makefile
EXTRA_CFLAGS += -DONEBOX_CONFIG_PUF
19.3 PUF Operations and IOCTL Usage
19.3.1 PUF Enroll
This operation enrolls PUF. After successful operation Activation code will be either saved in flash or it will be sent
to host. The stored activation code shall be used for every further start operation on PUF.
./onebox_util rpine0 puf_req 0 1
19.3.2 PUF Start
This operation is used to start PUF. Once valid activation code is available PUF will be started. Start operation is
must for any further operation with PUF.
./onebox_util rpine0 puf_req 1 1 puf_ac.txt
19.3.3 PUF Set Key
This operation is used for generating Key Code for the given key input.
./onebox_util rpine0 puf_req 2 0 0 abcdefghijklmnop
19.3.4 PUF Set Intrinsic Key
This operation is used for generating Key Code for internally generated intrinsic key.
./onebox_util rpine0 puf_req 3 0 0
19.3.5 PUF Get Key
This operation is used for generating key for the given key code input.