AT32讲堂 | 雅特力AT32 MCU的随机数生成

2024-09-29 AT32 MCU 雅特力科技公众号
32位微控制器,MCU,AT32403A,AT32403A AT-START 32位微控制器,MCU,AT32403A,AT32403A AT-START 32位微控制器,MCU,AT32403A,AT32403A AT-START 32位微控制器,MCU,AT32403A,AT32403A AT-START

概  述


产品和生态系统安全性的需求比以往任何时候都更加重要。真随机数是所有安全系统的核心,其质量会影响设计的安全性。


因此在没有内置硬件TRNG的AT32的微控制器系列中,如何提高随机数的有效,来符合应用的需求。底下提供两种方法:


提高乱度的方法之一,使用ADC的误差。AT32的微控制器内置最多三个高级12位片上SAR模拟数字转换器(ADC)并提供自校准功能,保证12位ADC静态准确度(accuracy)可达10位以上。这误差可以拿来计算随机数的来源。


提高乱度的方法之二,使用上电时SRAM内容的不确定性。SRAM不保证上电时的内容值,每次上电后,内容也是不容易预测的。我们可以利用这个特性,拿来增加随机数的乱度。


利用ADC的误差来源产生随机数的方法


本章介绍了使用软件触发方式触发ADC,配置普通信道和DMA。根据随机数需要的位数来配置信道数,一次转换最多到16信道,将16信道转换的数值可组合计算成一个32位的随机数。底下是DMA和ADC的配置代码。


 ● DMA配置函数代码


●ADC配置函数代码


可以看到,代码中并没有对ADC做自校准,转换时间也使用最短的,这种情况下,ADC的准确度会是最差的,有助于乱度的提升。


●ADC随机数取得代码


利用上电时SRAM的内容来计算随机数的方式


这范例只是简单的利用累加来获得一个随机数


●SRAM配置函数代码


随机生成应用指南


以上两种方式建议应用在上电后执行,因为SRAM内容在运行后会初始化,ADC也会有其他应用上的需求,上电后执行并获得一个随机数,将这个随机数当成Seed,之后可以利用标准C函式库中提供的随机数生成器,产生后续的随机数。


SRAM的方式限定在POR后使用。如果只是一般的reset,SRAM会维持内容,造成产生的随机数都是相同。


ADC的方式则没有限制,但是因为使用ADC外设的资源,推荐放在开机时执行,不会影响后续的ADC应用。


范例运行和分析


本篇应用笔记适用于AT32各系列MCU,只要有ADC外设皆可适用。范例固件AN0175_SourceCode_V2.0.0运行在AT32403A AT-START版上,透过 PuTTY(免费开源终端仿真器)等终端仿真应用程序,将数据存储在工作站上。在工作站上编译NIST统计测试集程序包,以生成可执行程序。接下来运行NIST统计测试集程序分析数据以及统计测试。


以下是使用范例固件AN0175_SourceCode_V2.0.0在上电后会产生的一个随机数,在收集约319万笔随机数后,进行NIST统计测试。


图1. 环境配置

图片


硬件资源

1.AT32403A AT-START

1) 串口(PA9)

2.具有串口的计算机,运行 Linux 系统


软件资源

1.下载到AT32403A AT-START版运行

    1) AN0175_SourceCode_V2.0.0


2.计算机端运行

    1) 终端仿真器如PuTTY

    2) 统计测试集源程序

    https://csrc.nist.gov/CSRC/media/Projects/Random-Bit-Generation/documents/sts-2_1_2.zip

    https://github.com/usnistgov/SP800-90B_EntropyAssessment


NIST SP800-22b统计测试集


基于NIST统计测试集:April 27, 2010: NIST SP 800-22rev1a (dated April 2010), A Statistical Test Suite for the Validation of Random Number Generators and Pseudo Random Number Generators for Cryptographic Applications, that describes the test suite.


统计测试集源程序下载:https://csrc.nist.gov/CSRC/media/Projects/Random-Bit-Generation/documents/sts-2_1_2.zip


统计测试集结果:



NIST SP800-90b统计测试集


基于NIST统计测试集:November 21, 2014: NIST requests comments on the latest revision of NIST SP 800-90A, Recommendation for Random Number Generation Using Deterministic Random Bit Generators, which is dated November 2014.


统计测试集源程序下载:

https://github.com/usnistgov/SP800-90B_EntropyAssessment


统计测试集结果:需先转换成符合2-bit-wide symbols数据输入格式。


./ea_non_iid 0421_2.bin 2 -i -a -v


Opening file: '0421_2.bin'


Loaded 50888144 samples of 4 distinct 2-bit-wide symbols


Number of Binary Symbols: 101776288Running non-IID tests...


Running Most Common Value Estimate...


Bitstring MCV Estimate: mode = 50891714, p-hat = 0.50003507693265448, p_u = 0.50016273956095891

   

    Most Common Value Estimate (bit string) = 0.999531 / 1 bit(s)Literal MCV Estimate: mode = 12725005, p-hat = 0.25005834364876817, p_u = 0.25021470996034195


    Most Common Value Estimate = 1.998761 / 2 bit(s)


Running Entropic Statistic Estimates (bit strings only)...


Bitstring Collision Estimate: X-bar = 2.5000060058338387, sigma-hat = 0.50000000610486417, p = 0.50989562404154842

    Collision Test Estimate (bit string) = 0.971726 / 1 bit(s)


Bitstring Markov Estimate: P_0 = 0.49996492306734552, P_1 = 0.50003507693265448, P_0,0 = 0.4999425562646943, P_0,1 = 0.5000574437353057, P_1,0 = 0.49998729655651403, P_1,1 = 0.50001270344348603, p_max = 2.9554800761609014e-39


    Markov Test Estimate (bit string) = 0.999936 / 1 bit(s)Bitstring Compression Estimate: X-bar = 5.2176714331187366, sigma-hat = 1.0152961906603262, p = 0.019654761320726077


    Compression Test Estimate (bit string) = 0.944830 / 1 bit(s)


Running Tuple Estimates...


Bitstring t-Tuple Estimate: t = 23, p-hat_max = 0.52357011476148263, p_u = 0.52369763546518522


Bitstring LRS Estimate: u = 24, v = 50, p-hat = 0.50053161737274598, p_u = 0.50065927992920534


    T-Tuple Test Estimate (bit string) = 0.933194 / 1 bit(s)

Literal t-Tuple Estimate: t = 11, p-hat_max = 0.27527598152543398, p_u = 0.27543726106146299


Literal LRS Estimate: u = 12, v = 24, p-hat = 0.25086994374062016, p_u = 0.25102647882990431


    T-Tuple Test Estimate = 1.860204 / 2 bit(s)


    LRS Test Estimate (bit string) = 0.998099 / 1 bit(s)


    LRS Test Estimate = 1.994089 / 2 bit(s)


Running Predictor Estimates...


Bitstring MultiMCW Prediction Estimate: N = 101776225, Pglobal' = 0.50008960368099831 (C = 50884239) Plocal can't affect result (r = 26)


    Multi Most Common in Window (MultiMCW) Prediction Test Estimate (bit string) = 0.999741 / 1 bit(s)


Literal MultiMCW Prediction Estimate: N = 50888081, PgloLRS Test Estimate = 1.994089 / 2 bit(s)bal' = 0.25014573559900838 (C = 12721480) Plocal can't affect result (r = 12)


    Multi Most Common in Window (MultiMCW) Prediction Test Estimate = 1.999159 / 2 bit(s)


Bitstring Lag Prediction Estimate: N = 101776287, Pglobal' = 0.50019269251081444 (C = 50894762) Plocal can't affect result (r = 25)


    Lag Prediction Test Estimate (bit string) = 0.999444 / 1 bit(s)


Literal Lag Prediction Estimate: N = 50888143, Pglobal' = 0.25015172047634626 (C = 12721800) Plocal can't affect result (r = 13)


    Lag Prediction Test Estimate = 1.999125 / 2 bit(s)


Bitstring MultiMMC Prediction Estimate: N = 101776286, Pglobal' = 0.50008456811129076 (C = 50883757) Plocal can't affect result (r = 27)


    Multi Markov Model with Counting (MultiMMC) Prediction Test Estimate (bit string) = 0.999756 / 1 bit(s)


Literal MultiMMC Prediction Estimate: N = 50888142, Pglobal' = 0.2502104743048289 (C = 12724789) Plocal can't affect result (r = 13)Multi Markov Model with Counting (MultiMMC) Prediction Test Estimate = 1.998786 / 2 bit(s)


Bitstring LZ78Y Prediction Estimate: N = 101776271, Pglobal' = 0.50008006313488451 (C = 50883291) Plocal can't affect result (r = 26)


    LZ78Y Prediction Test Estimate (bit string) = 0.999769 / 1 bit(s)Literal LZ78Y Prediction Estimate: N = 50888127, Pglobal' = 0.25021764352136133 (C = 12725150) Plocal can't affect result (r = 13)


    LZ78Y Prediction Test Estimate = 1.998745 / 2 bit(s)


H_original: 1.860204


H_bitstring: 0.933194


min(H_original, 2 X H_bitstring): 1.860204


关于雅特力


雅特力科技于2016年成立,是一家致力于推动全球市场32位微控制器(MCU)创新趋势的芯片设计公司,拥有领先高端芯片研发技术、完整的硅智财库及专业灵活的整合经验,分別在重庆、深圳、苏州、上海、台湾设有研发、销售及技术支持分部。


雅特力坚持自主研发,以科技创新引领智慧未来,专注于ARM® Cortex®-M4/M0+的32位微控制器研发与创新,提供高效能、高可靠性且具有竞争力的产品。全系列产品采用55nm先进工艺,通过ISO 9001质量管理体系认证,缔造M4业界最高主频288MHz运算效能。自2018年正式对外销售至今,累积了相当多元的终端产品成功案例,广泛地覆盖工控、电机、车载、消费、商务、5G、物联网、新能源等领域,助力客户实现产业升级。


授权代理商:世强先进(深圳)科技股份有限公司
技术资料,数据手册,3D模型库,原理图,PCB封装文件,选型指南来源平台:世强硬创平台www.sekorm.com
现货商城,价格查询,交期查询,订货,现货采购,在线购买,样品申请渠道:世强硬创平台电子商城www.sekorm.com/supply/
概念,方案,设计,选型,BOM优化,FAE技术支持,样品,加工定制,测试,量产供应服务提供:世强硬创平台www.sekorm.com
集成电路,电子元件,电子材料,电气自动化,电机,仪器全品类供应:世强硬创平台www.sekorm.com
  • +1 赞 0
  • 收藏
  • 评论 0

本文由Ray转载自AT32 MCU 雅特力科技公众号,原文标题为:AT32讲堂086 | 雅特力AT32 MCU的随机数生成,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关研发服务和供应服务

评论

   |   

提交评论

全部评论(0

暂无评论

相关推荐

【经验】雅特力32位MCU AT32F421 GPIO的使用指南

本文中雅特力将为大家分享32位微控制器AT32F421 GPIO的使用指南。

2022-10-13 -  设计经验 代理服务 技术支持 现货查询 批量订货

AT32讲堂 | 雅特力AT32F402/F405时钟配置

时钟是芯片正确高效运行的基础,正确的时钟配置是芯片能正确运行的必要条件,其重要性不言而喻。AT32各系列产品的时钟配置部分可能存在细微的差异和需要注意的事项,本文档就着重针对各系列的情况来详细介绍如何结合雅特力提供的V2.x.x的板级支持包(BSP)来配置时钟。

2024-10-01 -  设计经验 代理服务 技术支持 现货查询 批量订货

【经验】雅特力MCU AT32F403ARCT7的IIC控制器做主设备时需要注意哪些事项?

雅特力科技推出的AT32F403ARCT7是一颗高性能MCU,搭载32位ARM Cortex-M4内核,主频最高可以跑到240MHz。内建的单精度浮点运算单元(FPU)及数字信号处理器(DSP),还提供了丰富的外设控制器,在工业、医疗、消费等各个行业有着广泛的应用。

2023-08-01 -  设计经验 代理服务 技术支持 现货查询 批量订货

【IC】雅特力发布AT32M412/M416电机控制专用MCU,180MHz主频打造高效能电机应用

近日,雅特力科技宣布推出AT32M412/M416首款高性能电机控制专用MCU,采用高性能ARM®Cortex®-M4内核,高达180MHz的CPU运算速度,内建单精度浮点运算单元(FPU)与数字信号处理器(DSP)。为出行工具、家电及工业控制等应用提供理想选择。

2024-10-28 -  产品 代理服务 技术支持 现货查询 批量订货

【应用】基于车载DAB调谐芯片和解码芯片SI47902+SI4614搭配RA4M1 MCU的小体积车载DAB接收盒子方案

采用了Silicon Labs公司推出的车载DAB调谐芯片和解码芯片SI47902+SI4614,以及瑞萨的RA系列的MCU RA4M1。采用了USB和主机通信并进行音频的传输,不仅避免蓝牙模块和FM发射模块对有用信号的干扰,还可以较小体积,让设计更美观。

2020-08-11 -  应用方案 代理服务 技术支持 现货查询 批量订货

如何使用雅特力32位Cortex® -M4微控制器AT32F425?

搭建AT32开发环境一、调试工具及开发板目前AT32F425开发板都自带AT-Link-EZ调试工具,AT-Link-EZ如下图左边红框所示,它也可拆开后单独搭配其他电路板使用,支持IDE在线调试、在线烧录、USB转串口等功能。

2023-11-24 -  设计经验 代理服务 技术支持 现货查询 批量订货

基于雅特力AT32 MCU的洗衣机电机控制驱动方案,解锁智能家居新体验

随着人工智能、物联网等技术的发展,传统家电逐渐向智能家电转型。洗衣机作为家庭生活中不可或缺的电器之一,其智能化升级对于提升生活品质具有重要意义。MCU作为电机控制系统的核心“大脑”,肩负着多样化的控制使命。雅特力AT32 MCU以其卓越的性能和完善的电机开发生态,为洗衣机、电动两轮车和电摩等电机应用产品提供高效电机控制驱动方案,并已实现规模量产。

2024-09-30 -  应用方案 代理服务 技术支持 现货查询 批量订货

雅特力携多款AT32 MCU新品与应用方案亮相2024慕尼黑上海电子展

7月8日,2024慕尼黑上海电子展electronica China在上海新国际博览中心拉开序幕,作为全球电子行业的盛会,汇聚了国内外众多优质电子企业。雅特力携高性能AT32 MCU与应用方案齐亮相,呈现了多款电机控制、工业控制、汽车电子、智能家居、消费、商务,及新能源等应用方案。现场人流攒动、氛围热烈!

2024-07-17 -  原厂动态 代理服务 技术支持 现货查询 批量订货

AT32讲堂 | 雅特力AT32 IDE快速入门指南

雅特力AT32 IDE快速入门指南介绍。AT32 ID提供支持雅特力MCU的C语言项目模板,方便用户快速创建项目。这里以AT32F403AVGT7为例,项目名称输入AT32F403AVGT7。

2024-09-30 -  设计经验 代理服务 技术支持 现货查询 批量订货

雅特力携高性能AT32 MCU亮相2024慕尼黑上海电子展,进行一系列创新成果展示

7月8-10日,慕尼黑上海电子展(electronica China)将在上海新国际博览中心盛大开幕。雅特力将携高性能AT32 MCU亮相此次活动,进行一系列创新成果展示,包括电机控制、汽车电子、工业控制、智能家居、消费、商务,及新能源等诸多热门领域的产品应用与解决方案。诚挚邀请您莅临活动现场参观交流!

2024-07-01 -  原厂动态 代理服务 技术支持 现货查询 批量订货

灵动MM32SPIN⸺专注电机控制的MCU和SOC

型号- SPIN080G,MM32SPIN030C,SPIN360C,MM32SPIN06NT,SPIN033A,SPIN590G,MM32SPIN560C,MM32SPIN05PT,MM32SPIN580C,MM32SPIN05TW,SPIN0260,MM32SPIN27PF,MM32SPINEBK,MM32SPIN0230B3NV,MM32SPIN080GN,MM32SPIN06PF,SPIN02XX,MM32SPIN07,MM32SPIN0280,MM32SPIN160C,SPIN533A,MM32SPIN,MM32SPIN560CM,SPIN27,MM32SPIN023C,MM32SPIN06,MM32SPIN05,MM32SPIN0230B1NV,MM32SPIN422C,MM32SPIN0280D4PV,MM32SPIN0280D6PV,SPIN060G,SPIN0250,SPIN080C,SPIN222C,SPIN0290,SPIN040C,MM32SPIN080CN,MM32SPIN0230,MM32SPIN060G,MM32SPIN080C,SPIN0230,MM32SPIN040C,SPIN56XX,MM32SPIN37,MM32SPIN05NW,SPIN580C,SPIN160C,SPIN023C,MM32SPIN05NT,MM32SPIN06PT,MM32SPIN0280D6QV,MM32SPIN360C,SPIN0280,SPIN495C,MM32SPIN030CN,MM32SPIN27NF,SPIN560C,SPIN05XX,MM32SPIN07PF,SPIN07,SPIN06,MM32SPIN05PF,MM32SPIN27PQ,MM32SPIN0230B3TV,SPIN5630,MM32SPIN05PFOP,MM32SPIN27PS,MM32SPIN27PT,MM32SPIN0230B1TV,MM32SPIN37PSD,SPIN05,MM32SPIN533A,MM32SPIN033A,MM32SPIN27,MM32SPIN0280D7PV,MM32SPIN222C,SPIN080X,SPIN422C,MM32SPIN0280DAPV,SPIN030C,MM32SPIN080G

2024/4/30  - MINDMOTION  - 商品及供应商介绍 代理服务 技术支持 现货查询 批量订货

【经验】解析雅特力AT32 MCU SDRAM控制器的使用

本文中将为大家解析雅特力AT32 MCU SDRAM控制器的使用。

2022-12-22 -  设计经验 代理服务 技术支持 现货查询 批量订货

2024年版国民技术N32 MCU选型,全面覆盖新能源、工控、汽车、消费、医疗、物联网等各主流应用场景

N32系列MCU是国民技术基于安全SoC技术平台架构,采用32位Arm® Cortex®-M处理器内核,创新打造的以高性能、高集成度、安全、低功耗、高可靠性为特色的MCU产品。产品内置嵌入式高速加密闪存、低功耗电源管理,集成数模混合电路,以及多种密码算法硬件加速引擎和安全单元,全面覆盖新能源、工控、汽车、消费、医疗、物联网等各主流应用场景。

2024-05-16 -  器件选型 代理服务 技术支持 现货查询 批量订货
展开更多

电子商城

查看更多

品牌:雅特力

品类:32位通用MCU

价格:¥4.2360

现货: 23,058

品牌:雅特力

品类:32位MCU

价格:¥17.3130

现货: 11,929

品牌:雅特力

品类:32位MCU

价格:¥14.6240

现货: 8,734

品牌:雅特力

品类:32位MCU

价格:¥13.3420

现货: 8,628

品牌:雅特力

品类:32位MCU

价格:¥10.8480

现货: 6,906

品牌:雅特力

品类:32位MCU

价格:¥16.2950

现货: 5,771

品牌:雅特力

品类:32位MCU

价格:¥12.1770

现货: 4,875

品牌:雅特力

品类:32位MCU

价格:¥19.0120

现货: 2,536

品牌:雅特力

品类:32位MCU

价格:¥6.8360

现货: 2,523

品牌:雅特力

品类:32位MCU

价格:¥7.0480

现货: 1,760

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

现货市场

查看更多

品牌:RENESAS

品类:16-BIT MCU

价格:¥5.5190

现货:910,635

品牌:RENESAS

品类:MCU

价格:¥5.1500

现货:200,000

品牌:恒烁

品类:MCU

价格:¥1.0800

现货:154,600

品牌:Advanced Digital Chips

品类:MCU

价格:¥6.6000

现货:100,000

品牌:RENESAS

品类:MCU

价格:¥5.8041

现货:86,925

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥7.3800

现货:76,715

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥15.3000

现货:75,000

品牌:Advanced Digital Chips

品类:MCU

价格:¥9.0000

现货:64,841

品牌:ST

品类:MCU

价格:¥15.5600

现货:58,800

品牌:RENESAS

品类:32-BIT GENERAL MCU

价格:¥257.6400

现货:58,799

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

品牌:

品类:

价格:

现货:

服务

查看更多

是德测试测量仪器维修

提供是德(Keysight)网络分析仪、信号发生器、频谱分析仪、信号分析仪、电源等仪器维修,支持一台仪器即可维修。具备十年以上维修经验工程师,维修后测试合格率达98%,维修保修期长达三个月。

提交需求>

IC烧录代工及IC自动化烧录

拥有IC烧录机20余款,100余台设备,可以烧录各种封装的IC;可烧录MCU、FLASH、EMMC、NAND FLASH、EPROM等各类型芯片,支持WIFI/BT模组PCBA烧录、测试。

最小起订量: 1 提交需求>

查看更多

授权代理品牌:接插件及结构件

查看更多

授权代理品牌:部件、组件及配件

查看更多

授权代理品牌:电源及模块

查看更多

授权代理品牌:电子材料

查看更多

授权代理品牌:仪器仪表及测试配组件

查看更多

授权代理品牌:电工工具及材料

查看更多

授权代理品牌:机械电子元件

查看更多

授权代理品牌:加工与定制

世强和原厂的技术专家将在一个工作日内解答,帮助您快速完成研发及采购。
我要提问

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

研发客服
商务客服
服务热线

联系我们

954668/400-830-1766(工作日 9:00-18:00)

service@sekorm.com

投诉与建议

E-mail:claim@sekorm.com

商务合作

E-mail:contact@sekorm.com

收藏
收藏当前页面