0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

全志R128应用开发案例—获取真随机数

冬至子 来源:丨budboool 作者:丨budboool 2023-10-24 17:49 次阅读

获取真随机数

R128 内置了TRNG,一个真随机数发生器,随机源是 8 路独立的环形振荡器,由模拟器件电源噪声产生频率抖动,用低频始终重采样,然后进行弹性抽取和熵提取处理,最终输出128bit真随机数。

载入方案

我们使用的开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择r128s2_module_c906

$ source envsetup.sh 
$ lunch_rtos 1

image-20230802110150203 (5).png

设置 TRNG驱动

运行 mrtos_menuconfig 进入配置页面。前往下列地址找到 TRNG Devices

Drivers Options  --- >
    soc related device drivers  --- >
            TRNG Devices --- >
            -*- enable trng driver

image-20230804153240015.png

编写程序

打开你喜欢的编辑器,修改文件:lichee/rtos/projects/r128s2/module_c906/src/main.c

image-20230803112142315 (2).png

引入头文件

#include < sunxi_hal_trng.h >

image-20230804153100526.png

初始化 TRNG 读取数据模块

image-20230804153618920.png

uint32_t random[4] = {0};

HAL_TRNG_Extract(0, random); // 读取 CRC 模式
printf("trng CRC result: 0x%08x 0x%08x 0x%08x 0x%08xn", random[0], random[1], random[2], random[3]);

HAL_TRNG_Extract(1, random); // 读取 XOR 模式
printf("trng XOR result: 0x%08x 0x%08x 0x%08x 0x%08xn", random[0], random[1], random[2], random[3]);

结果

编译固件后烧录,可以看到随机数输出。

image-20230804154607898.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    51

    文章

    6784

    浏览量

    141473
  • 环形振荡器
    +关注

    关注

    1

    文章

    10

    浏览量

    8600
  • 电源噪声
    +关注

    关注

    2

    文章

    92

    浏览量

    17234
  • 随机数发生器

    关注

    0

    文章

    12

    浏览量

    10906
  • 全志科技
    +关注

    关注

    4

    文章

    77

    浏览量

    15733
收藏 人收藏

    评论

    相关推荐

    Arm随机数发生器(TRNG)表征应用说明

    随机数生成器(TRNG)及其特性。 ARM®
    发表于 08-29 07:19

    R128芯片应用开发案例——驱动 WS2812 流水灯

    获取、问题讨论可以到志在线开发者社区进行:https://www.aw-ol.com
    发表于 10-10 14:08

    R128芯片应用开发案例——按键输入

    获取、问题讨论可以到志在线开发者社区进行:https://www.aw-ol.com
    发表于 10-10 14:34

    R128芯片应用开发案例——ADC驱动烟雾传感器

    开发板是 R128-Devkit,需要
    发表于 10-16 11:34

    R128应用开发案例——获取随机数

    获取随机数 本文案例代码 下载地址
    发表于 10-24 17:05

    随机数的产生

    在做一个项目,需要用ATmega329产生-12.5~12.5的随机数,有人做过吗?方法越简单越好。敬候指点
    发表于 10-24 08:49

    【LinkIt 7687试用体验】8.加密算法中随机数的产生方法

    随机数的产生方法,该方法是通过硬件层面进行的随机数产生,而不像是使用软件进行运算,这样得到的随机数更具有不确定性,我们给每一个加密的数据用不一样的序列解密,更大程度上的保护了密码
    发表于 12-17 11:11

    关于STM32随机数算法的问题

    随机数随机数配合定时器time()计算产生随机数,但是如果我想上电初始化的时候要产生一个随机数怎么做,单片机每次上电时间都是一样的,怎么产生这个
    发表于 11-13 10:12

    想要在STM32每次上电初始化时产生随机数,该如何设置?

    随机数随机数配合定时器time()计算产生随机数,但是如果我想上电初始化的时候要产生一个随机数怎么做,单片机每次上电时间都是一样的,怎么产生这个
    发表于 11-28 15:24

    什么是随机数

    开发的工程师们应该或多或少都接触过随机数,可能认为它就是一个随机生成的数字嘛,使用时也很简单,只要调用开发语言提供的函数即可。但实际上随机数后面还是有着比较复杂但也有趣的知识点的。根据一般定义
    发表于 07-22 09:42

    随机数发生器的容差分析

    随机数发生器的工作电路和精度要求较高的电压参考电路的温度漂移进行分析,给出了仿真得到的温度曲线;分析了工艺中可能存在的问题和温度的影响与运放的
    发表于 06-10 15:53 26次下载
    <b>真</b><b>随机数</b>发生器的容差分析

    DApp的随机数为什么会被黑客破解

    随机数可以分为随机数和伪随机数随机数需要同时满足随机性、不可预测性、不可重现性,而伪随机数只需要满足随机性,或者是随机性和不可预测性即可。
    发表于 10-18 10:59 1983次阅读

    FPGA的伪随机数发生器学习介绍

    随机试验的结果,产生随机数有多种不同的方法。这些方法被称为随机数生成器。随机数最重要的特性是它在产生时后面的那个数与前面的那个数毫无关系。随机数分为三类,分别是伪随机数、密码学安全的伪随机数以及随机数。 本次设计为基于FPGA生成
    的头像 发表于 09-12 09:13 160次阅读

    R128应用开发案例—点亮一颗LED灯

    开发板是 R128-Devkit,需要开发 C906 核心的应用程序,所以载入方案选择`r128s2_module_c906`
    发表于 10-09 16:46 63次阅读
    <b>全</b><b>志</b><b>R128</b>应用<b>开发案</b>例—点亮一颗LED灯

    R128适配ST7789v LCD

    R128 平台提供了 SPI DBI 的 SPI TFT 接口,具有如下特点
    的头像 发表于 10-23 11:26 179次阅读
    <b>全</b><b>志</b><b>R128</b>适配ST7789v LCD