跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
折叠
品牌标识

YunTu Forum

YTMicro.com
  1. 主页
  2. Discussion & Question
  3. YTM32B1H系列
  4. HA01 MCAL中使用TRNG模块获取随机数

HA01 MCAL中使用TRNG模块获取随机数

已定时 已固定 已锁定 已移动 未解决 YTM32B1H系列
18 帖子 3 发布者 88 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 沈宇恒沈 离线
    沈宇恒沈 离线
    沈宇恒
    编写于 最后由 沈宇恒 编辑
    #2
    此主題已被删除!
    1 条回复 最后回复
    0
    • DigaD 离线
      DigaD 离线
      Diga
      编写于 最后由 编辑
      #3

      你同一种配置,在不同轮次的结果不也不一样嘛,这不是符合随机性嘛。HA01 一次会生成 256-bit 的真随机数,当样本数够大时,里面出现 0-bit 与 1-bit 的个数应该是一样的。如果想自己测随机性,可以参考 NIST SP 800-22 测试方法,这个对随机性的测试是比较科学严谨的

      zhaiZ 1 条回复 最后回复
      0
      • 沈宇恒沈 离线
        沈宇恒沈 离线
        沈宇恒
        回复了zhai 最后由 沈宇恒 编辑
        #4

        问题2:Random_Generate_Length = 32 是软件输出缓冲长度,必须 ≤32、4 字节对齐,它决定的是你获取的随机数长度一次只能最多256bit,如果要生成更多那就得多生成几次;PrimitiveInfo 里的 32 是 Crypto 作业结构字段,跟 TRNG 采样无关,所以修改不修改都没有作用;

        zhaiZ 1 条回复 最后回复
        0
        • zhaiZ 离线
          zhaiZ 离线
          zhai
          回复了Diga 最后由 编辑
          #5

          Diga YT针对随机数这块有相应的测试数据报告吗

          1 条回复 最后回复
          0
          • DigaD 离线
            DigaD 离线
            Diga
            编写于 最后由 编辑
            #6

            有的,可以咨询 FAE

            1 条回复 最后回复
            0
            • zhaiZ 离线
              zhaiZ 离线
              zhai
              回复了沈宇恒 最后由 zhai 编辑
              #7

              沈宇恒 如果我想获得3字节的随机数并且想尽量缩短获取随机数的时间,samp_szie设置为0x20时,上面应该如何修改?我尝试修改为0x20后连续获取的随机数一直是一个值

              沈宇恒沈 1 条回复 最后回复
              0
              • 沈宇恒沈 离线
                沈宇恒沈 离线
                沈宇恒
                回复了zhai 最后由 编辑
                #8

                驱动校验要求长度是 4 的倍数,你如果要3字节的随机数生成出来自己扔掉就行,尽量缩短获取随机数的时间可以按 32 字节发一次作业存进池,每次请求从池里取 3 字节,池空了再触发下一次

                zhaiZ 1 条回复 最后回复
                0
                • zhaiZ 离线
                  zhaiZ 离线
                  zhai
                  回复了沈宇恒 最后由 zhai 编辑
                  #9

                  沈宇恒 目前就是这样操作的,上面结构体中的配置参数还是按照demo中的什么都不修改,samp_szie设置为0x20,ent_dly设置为0x200,调用CryptoTest_Asyn_SingleCall_Random接口去获取也是按照32字节去获取的,但是获得的随机数还是相同的
                  下图是连续两次获取的结果
                  73713a2a-5536-4879-a367-43cb8b60f470-image.png
                  826fabf6-52b8-48c0-8931-0bb63d2a27f3-image.png

                  沈宇恒沈 2 条回复 最后回复
                  0
                  • 沈宇恒沈 离线
                    沈宇恒沈 离线
                    沈宇恒
                    回复了zhai 最后由 编辑
                    #10

                    我刚刚试了一下并没有哦
                    dc142309-a30f-4ad0-9390-d04c19607912-img_v3_02156_7a637570-c762-45a6-ab18-c54a2ffe6cbg.jpg
                    d38429a4-e901-4133-9c6b-2218316a4d8f-img_v3_02156_704680e5-c40b-4589-bd7b-6d4a9659544g.jpg

                    1 条回复 最后回复
                    0
                    • 沈宇恒沈 离线
                      沈宇恒沈 离线
                      沈宇恒
                      回复了zhai 最后由 沈宇恒 编辑
                      #11

                      zhai 你用的是哪个版本的?以前的老版本不能32字节丢数据;而且你是不是改了内部代码,这个值是不能动的哦,samp_size你获取的字节不是改这个,是改Random_Generate_Length
                      c91b87a0-fe7c-4a3e-ba23-b4b19bec1a90-image.png

                      沈宇恒沈 1 条回复 最后回复
                      0
                      • zhaiZ 离线
                        zhaiZ 离线
                        zhai
                        编写于 最后由 zhai 编辑
                        #12

                        我使用的macl版本是2.0.3,我之前确实修改的是上图中的内部代码,要修改samp_size是修改Random_Generate_Length?Random_Generate_Length是单次获取的长度,samp_size是生成熵时所采集的样本总数,按照介绍获取随机数的最大时间根samp_size、ent_dly、slow_clk有关,如果我想尽量减少生成的时间,那不应该修改samp_size吗?
                        image.png

                        1 条回复 最后回复
                        0
                        • 沈宇恒沈 离线
                          沈宇恒沈 离线
                          沈宇恒
                          回复了沈宇恒 最后由 编辑
                          #13

                          原始采样总数0x200,256 个输出 bit 的熵不可能超过输入的原始采样数这是信息论下限,这个寄存器0x100已经是数学下限了,你改成0x20电路只能输出大量确定性内容,这个是TRNG 熵源的安全参数不能修改的哈,不要在这个上面挖时间,修改这个要重跑NIST SP800-22才能用

                          zhaiZ 1 条回复 最后回复
                          0
                          • zhaiZ 离线
                            zhaiZ 离线
                            zhai
                            回复了沈宇恒 最后由 编辑
                            #14

                            沈宇恒 好的,那如果要是想缩短单次获取的时间的话,就只能修改ent_dly或slow_bus_clk了对吧

                            沈宇恒沈 1 条回复 最后回复
                            0
                            • 沈宇恒沈 离线
                              沈宇恒沈 离线
                              沈宇恒
                              回复了zhai 最后由 编辑
                              #15

                              嗯嗯,32 字节缓存那个来实现其实也缩短了

                              zhaiZ 1 条回复 最后回复
                              0
                              • zhaiZ 离线
                                zhaiZ 离线
                                zhai
                                回复了沈宇恒 最后由 zhai 编辑
                                #16

                                沈宇恒 好的,32字节缓存是什么?我看其他帖子,如果实际要读取的长度<32字节,还是要按照32字节去读取的,上层字节从32字节中取相应长度的数据就行,参考的是这个帖子
                                https://forum.ytmicro.com/topic/257/trng-真随机数产生时间计算/4?_=1766039682973
                                ce4448b2-92f6-4c3e-99df-f0ae31fed27e-image.png

                                沈宇恒沈 zhaiZ 2 条回复 最后回复
                                0
                                • 沈宇恒沈 离线
                                  沈宇恒沈 离线
                                  沈宇恒
                                  回复了zhai 最后由 编辑
                                  #17

                                  zhai 如果实际要读取的长度<32字节,还是要按照32字节去读取的,上层字节从32字节中取相应长度的数据就行,就是这个意思

                                  1 条回复 最后回复
                                  0
                                  • zhaiZ 离线
                                    zhaiZ 离线
                                    zhai
                                    回复了zhai 最后由 编辑
                                    #18

                                    图中的修改samp size是不是不太对,其实是不能修改samp size的,我看其他用户修改samp size也是遇到类似的问题了

                                    1 条回复 最后回复
                                    0

                                  • 云途开发生态介绍

                                    快速上手云途开发生态

                                  • 云途论坛规则/Yuntu Forum Rules

                                    发帖前请查看

                                  • YT CONFIG TOOL调查问卷

                                    帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...

                                  • can
                                    28
                                    demo
                                    26
                                    uds
                                    14
                                    lin stack
                                    13
                                    fbl
                                    6
                                    md14
                                    6
                                    yt-link
                                    6
                                    adc模块
                                    4
                                    Online Users
                                    ocean_wuO
                                    ocean_wu
                                    FunchovyF
                                    Funchovy
                                    xiangyuX
                                    xiangyu
                                    gacknight0754G
                                    gacknight0754
                                    YTCQ_shejiwangY
                                    YTCQ_shejiwang
                                    Gavin2G
                                    Gavin2
                                    asd846145726A
                                    asd846145726
                                    • 登录

                                    • 登录或注册以进行搜索。
                                    • 第一个帖子
                                      最后一个帖子
                                    0
                                    • 版块
                                    • 最新
                                    • 标签
                                    • 热门