Silex Insight

真随机数发生器 (TRNG) – Silex Insight

真随机数生成器是一款重要的数字 IP 核,目标是加密安全的应用。它是一种数字熵源,符合 NIST-800-90B 和 AIS31 标准。该 IP 核成功通过了 NIST-800-22、90B 和 AIS31 的熵源测试套件,符合 FIPS-140-2 验证。随机数生成对于任何安全设备而言都非常重要。随机数主要用于密钥生成、密钥交换、数字签名和加密等。IPsec、MACsec、TLS/SSL 或无线等典型安全协议在身份验证/密钥交换和数据传输阶段使用它们。

特性:

  • 符合 NIST 800-90B
  • AIS-31 启动和在线测试(可选)
  • 通过 NIST 800-22、90B 和 AIS31 测试套件
  • 符合 FIPS 140-2
  • 针对 FIPS 140-3 准备就绪
  • Linux 驱动程序(从 /dev/random 访问)
  • AMBA APB 接口
  • 纯数字

供应商: Silex Insight

更新日期: 2021 年 6 月 30 日

大小: 1.122 GB

容器版本: 1.0

试用或购买

获得评估或购买此产品的权利。


您可免费试用以下示例应用。

查看和购买此应用的可用定价计划。


部署选项

该应用是容器化的,可以在几分钟内轻松地在云中或本地运行。

本地
Alveo U50
查看 & 购买产品
  • Xilinx 运行时:2020.2
  • 目标平台: xilinx_u50_gen3x16_xdma_201920_3
Alveo U200
查看 & 购买产品
  • Xilinx Runtime: 2020.2
  • 目标平台: xdma_u200_201830_2
Alveo U250
查看 & 购买产品
  • Xilinx Runtime: 2020.2
  • 目标平台: xilinx_u250_gen3x16_xdma-3.1_202020_3

 


开始评估

请按照部署方法进行操作。

Alveo U200

1.

获取账户访问密钥

需要一个访问密钥来对用户进行身份验证,并根据其权限授予用户应用访问权。要获取您的帐户访问密钥,请按以下步骤操作:

  • 登录 Xilinx 应用商城门户网站
  • 点击 "Manage Account" 按钮,查看应享权限。
  • 点击左侧菜单上的 "Access Key" 链接
  • 点击 "Create an Access Key" 按钮。
  • 将生成的文件 "cred.json" 下载到 ABC 位置

注:生成的访问密钥将启用您帐户中的所有权限。如果您还没有从以上 "TRY OR BUY" 部分获取授权,请先获取授权,然后按照以下步骤生成访问密钥。


2.

主机设置

Ubuntu 16.04 /18.04 和 CentOS 7.x. 支持 Xilinx 运行时 (XRT) 主机应用(注意:此应用假定只有一张 Alveo 卡,并安装在插槽“0”中。) 支持 sudo 访问,使用以下命令下载并运行安装脚本:


2.1 为 Xilinx Base Runtime 克隆 GitHub 版本库

    git clone https://github.com/Xilinx/Xilinx_Base_Runtime.git

2.2 运行主机设置脚本

    cd Xilinx_Base_Runtime
./host_setup.sh -v 2020.2 -p alveo-u50
./host_setup.sh -v 2020.2 -p alveo-u200
./host_setup.sh -v 2020.2 -p alveo-u250

  • 请等待安装完成。在此期间,您可能需要按 [Y],才能继续执行主机安装。
  • 如果选择闪存 FPGA,则需要在安装完成后冷重启本地机,才能在 FPGA 上加载新映像。
  • 用于主机设置的脚本可用于设置其它版本的 XRT 和 shell。请查看 https://github.com/Xilinx/Xilinx_Base_Runtime,了解更多详情。

安装 Docker(如果尚未安装)

在允许 sudo 访问的情况下,请使用以下命令运行实用程序脚本来安装 docker。


2.3 转向 XXilinx_Base_Runtime 实用程序目录

    cd Xilinx_Base_Runtime/utilities

2.4 运行 Docker 安装脚本

    ./docker_install.sh

3.

应用执行

在终端窗口中输入以下命令以运行该应用程序:

3.1 通过 Xilinx_Base_Runtime 脚本设置环境变量

    source Xilinx_Base_Runtime/utilities/xilinx_docker_setup.sh

3.2 获取 Docker 映像

Alveo U50

    docker pull hubxilinx/silex_ba431_u50

Alveo U200

    docker pull hubxilinx/silex_ba431_u200

Alveo U250

    docker pull hubxilinx/silex_ba431_u250

3.3 运行 Docker 映像

Alveo U50

    docker run -v ${PWD}/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES hubxilinx/silex_ba431_u50 1000

命令参数描述:

  • $XILINX_DOCKER_DEVICES - 由主机设置脚本设置的变量
  • -v ${PWD}/cred.json:/cred.json - 将下载的 cred.json 映射至容器。
  • -v /dev/shm:/data — 将 container /data 目录映射至 host /dev/shm 目录。这个 /data 目录包含 random.txt 文本文件,其中包含所生成的所有 32 位随机数。
  • hubxilinx/silex_ba431_u50 – docker 存储库名称
  • 1000– 用户定义变量,指定要生成的 32 位随机数数量

Alveo U200

    docker run -v ${PWD}/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES hubxilinx/silex_ba431_u200 1000

命令参数描述:

  • $XILINX_DOCKER_DEVICES - 由主机设置脚本设置的变量
  • -v ${PWD}/cred.json:/cred.json - 将下载的 cred.json 映射至容器。
  • -v /dev/shm:/data — 将 container /data 目录映射至 host /dev/shm 目录。这个 /data 目录包含 random.txt 文本文件,其中包含所生成的所有 32 位随机数。
  • hubxilinx/silex_ba431_u50 – docker 存储库名称
  • 1000– 用户定义变量,指定要生成的 32 位随机数数量

Alveo U250

    docker run -v ${PWD}/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES hubxilinx/silex_ba431_u250 1000

命令参数描述:

  • $XILINX_DOCKER_DEVICES - 由主机设置脚本设置的变量
  • -v ${PWD}/cred.json:/cred.json - 将下载的 cred.json 映射至容器。
  • -v /dev/shm:/data — 将 container /data 目录映射至 host /dev/shm 目录。这个 /data 目录包含 random.txt 文本文件,其中包含所生成的所有 32 位随机数。
  • hubxilinx/silex_ba431_u50 – docker 存储库名称
  • 1000– 用户定义变量,指定要生成的 32 位随机数数量

4.

结果

这是生成 1024 个 32 位随机数的结果。输出文件(random.txt)位于 /dev/shm 目录中。

Alveo U50

    root@5a4b0b93569c:/app/ docker run -v ${PWD}/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES hubxilinx/silex_ba431_u50 1024

[DRMLIB] Start Session ...
[  info  ] 1     , DRM session DE4BB4555F464ED6 created.
[TRNG] : resetting ...
[TRNG] : reset done
[TRNG] : enabling TRNG ...
[TRNG] : TRNG enabled
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 28 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 20 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 5 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 27 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 40 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 27 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 30 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 40 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 1024 32-bit random numbers were generated 
[TRNG] Writing down the 32-bit random numbers in a text file ...
[TRNG] random.txt file was successfully created 
[DRMLIB] Stop Session ...
[  info  ] 1     , DRM session DE4BB4555F464ED6 stopped.

Alveo U200

    root@5a4b0b93569c:/app/ docker run -v ${PWD}/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES hubxilinx/silex_ba431_u200 1024

[DRMLIB] Start Session ...
[  info  ] 1     , DRM session DE4BB4555F464ED6 created.
[TRNG] : resetting ...
[TRNG] : reset done
[TRNG] : enabling TRNG ...
[TRNG] : TRNG enabled
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 28 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 20 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 5 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 27 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 40 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 27 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 30 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 40 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 1024 32-bit random numbers were generated 
[TRNG] Writing down the 32-bit random numbers in a text file ...
[TRNG] random.txt file was successfully created 
[DRMLIB] Stop Session ...
[  info  ] 1     , DRM session DE4BB4555F464ED6 stopped.

Alveo U250

    root@5a4b0b93569c:/app/ docker run -v ${PWD}/cred.json:/cred.json -v /dev/shm:/data $XILINX_DOCKER_DEVICES hubxilinx/silex_ba431_u250 1024

[DRMLIB] Start Session ...
[  info  ] 1     , DRM session DE4BB4555F464ED6 created.
[TRNG] : resetting ...
[TRNG] : reset done
[TRNG] : enabling TRNG ...
[TRNG] : TRNG enabled
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 28 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 20 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 5 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 27 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 40 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 27 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 30 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 36 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 32 32-bit random numbers detected 
[TRNG] Waiting for 32-bit random numbers to be generated. 
[TRNG] 40 32-bit random numbers detected 
[TRNG] 64 32-bit random numbers detected 
[TRNG] 1024 32-bit random numbers were generated 
[TRNG] Writing down the 32-bit random numbers in a text file ...
[TRNG] random.txt file was successfully created 
[DRMLIB] Stop Session ...
[  info  ] 1     , DRM session DE4BB4555F464ED6 stopped.