True Random Number Generator with comprehensive statistical tests


xiphera-tile

Application Summary

Xiphera’s FPGA-based TRNG consists of an independent entropy source, online health tests and a standard compliant AES-CBC-MAC -based entropy extractor. The design complies with NIST SP 800-90B. More information can be found on Xiphera’s TRNG product description.

In AWS platform TRNG can be evaluated for free for 14 days by collecting random data and analyzing it with provided free statistical tools. TRNG can also be added to an existing design to provide required randomness.

Vendor Modified Size Container Version
Xiphera November 25, 2020 202 MB xiphera_trng_aws_f1:beta

Deployment Options

This application is containerized and can be easily run in a few minutes in the cloud, or on-premises.

Cloud Services
AWS
  • Xilinx Rumtime: 2019.2
  • AWS AMI:  FPGA Developer AMI - 1.8.1
  • Target Platform: f1.2xlarge
Nimbix Coming Soon
On Premises
Alveo U50/U200/U250 Coming Soon

Obtain an Access Key for Evaluation or Purchase

Obtain an Access Key for Evaluation

Begin your free trial and run the code sample below.

View and purchase available pricing plans for this application.

 


Start Evaluation

Follow the instructions based on your deployment method.

AWS

1.

Obtain Evaluation Access Key

An access key "cred.json" may be obtained through the Xilinx Acceleration Application Store.


1.1 Login to the Xilinx Acceleration Application Store

  • Create and account if you do not already have one.
  • Order “Xilinx AppStore Free Eval Plan” 

1.2 Create Access Key and Download it as “cred.json” File


2.

Setup AWS

2.1 Sign-up for Amazon Web Services (AWS)


2.2 On EC2 console launch an F1 instance of your choice (f1.2xlarge recommended) with FPGA Developer AMI - 1.8.1


2.3 Copy (scp) your “cred.json” file to the home directory of the instance and SSH into the instance.

    scp -I $AWS_ACCESS_KEY cred.json centos@$AWS_PUBLIC_IPV4
ssh -i "~/key.pem" centos@$AWS_PUBLIC_IPV4


2.4 Install Docker by following the steps for Amazon Linux (1). (If not installed)


2.5 Setup Xilinx FPGA tools:

    git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git
source Xilinx_Base_Runtime/utilities/xilinx_aws_docker_setup.sh


3.

Install AWS FPGA SDK

    git clone https://github.com/aws/aws-fpga.git /home/centos/aws-fpga
source /home/centos/aws-fpga/sdk_setup.sh

4.

Application Execution

4.1 Pull the application docker from dockerhub.

    sudo docker pull hubxilinx/xiphera_trng_aws_f1:beta

4.2 Program the Xiphera TRNG to AWS Xilinx xcvu9p

    sudo fpga-load-local-image -S 0 -I agfi-03230dd76853a942b
source aws-fpga/sdk_setup.sh

4.3 Run the application docker to collect random data from Xiphera TRNG

    sudo docker run -it -v /home/centos/cred.json:/cred.json -v ~/:/random/ $XILINX_AWS_DOCKER_DEVICES hubxilinx/xiphera_trng_aws_f1:beta
  • -v /home/centos/cred.json:/cred.json - Map the Access Key “cred.json” to docker volume
  • -v ~/:/random/ - Map the volume where random binary data file is saved, ~/ can be changed
  • $XILINX_AWS_DOCKER_DEVICES – Passes the FPGA device to docker

5.

Results

On the CLI output you can monitor the random data collection. CLI shows the amount of random data written to a file and in addition the average byterate of the TRNG and the elapsed time in seconds.

The application stops automatically when one gibibyte (1 GiB) is collected in the binary file xip8001b.bin.

This file can be transferred to local machine for analysing or it can be done also in the cloud. Xiphera recommended test suites are Practrand, gjrand and TestU01. Xiphera provides instructions and scripts for using these randomness assessment suites. You can access these instructions and scripts from Xiphera’s GitHub.