发新帖我要提问
12
返回列表
打印
[STM32F7]

NUCLEO-F722ZE+随机数生成器的NIST测试

[复制链接]
楼主: zhanzr21
手机看帖
扫描二维码
随时随地手机跟帖
21
ileonli| | 2017-8-25 15:04 | 只看该作者 回帖奖励 |倒序浏览
还有,测试套件里没有Readme.txt文件啊。。。

使用特权

评论回复
22
zhanzr21|  楼主 | 2017-8-25 23:26 | 只看该作者
ileonli 发表于 2017-8-25 15:04
还有,测试套件里没有Readme.txt文件啊。。。

不好意思 我记错了 要看NIST的另外的文档
在这里:
http://csrc.nist.gov/groups/ST/t ... nts/nissc-paper.pdf

使用特权

评论回复
23
shanan| | 2018-10-15 17:32 | 只看该作者
最近想研究一下TRNG,这篇帖子对我非常有用。目前有很多芯片都带有TRNG,例如STM32F407,ESP32,CC2531,PIC24FJ128GB202等。而对于没有TRNG的单片机,我们还能用雪崩二极管的噪声来实现,参考http://onerng.info/。伪随机很好理解,那么什么样才是真随机,这篇帖子介绍的方法就很有意义了。
我的操作心得:
1.为了运行测试套件,需要安装Cygwin,如果要编译测试套件,要安装gcc环境,可以参考:https://www.cnblogs.com/hchacha/p/7147603.html,但是我没有编译成功;
2.下载楼主的压缩包,解压到一个目录,例如G盘根目录,目录如下:
G:\STS-2.1.2_包含样本_测试程序
│  assess.exe
│  assess__exe_from_ST
│  makefile
│  test_f722_random.bin
│  test_newlib.bin
│  
├─data
│      BBS.dat
│      data.bad_rng
│      data.e
│      data.pi
│      data.sha1
│      data.sqrt2
│      data.sqrt3
│      
├─experiments
│  │  create-dir-script
│  │  
│  ├─AlgorithmTesting_F722
│  │  │  finalAnalysisReport.txt
│  │  │  freq.txt
│  │  │  
│  │  ├─ApproximateEntropy
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─BlockFrequency
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─CumulativeSums
│  │  │      data1.txt
│  │  │      data2.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─FFT
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Frequency
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─LinearComplexity
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─LongestRun
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─NonOverlappingTemplate
│  │  │      data1.txt
│  │  │      data10.txt
│  │  │      data100.txt
│  │  │      data101.txt
│  │  │      data102.txt
│  │  │      data103.txt
│  │  │      data104.txt
│  │  │      data105.txt
│  │  │      data106.txt
│  │  │      data107.txt
│  │  │      data108.txt
│  │  │      data109.txt
│  │  │      data11.txt
│  │  │      data110.txt
│  │  │      data111.txt
│  │  │      data112.txt
│  │  │      data113.txt
│  │  │      data114.txt
│  │  │      data115.txt
│  │  │      data116.txt
│  │  │      data117.txt
│  │  │      data118.txt
│  │  │      data119.txt
│  │  │      data12.txt
│  │  │      data120.txt
│  │  │      data121.txt
│  │  │      data122.txt
│  │  │      data123.txt
│  │  │      data124.txt
│  │  │      data125.txt
│  │  │      data126.txt
│  │  │      data127.txt
│  │  │      data128.txt
│  │  │      data129.txt
│  │  │      data13.txt
│  │  │      data130.txt
│  │  │      data131.txt
│  │  │      data132.txt
│  │  │      data133.txt
│  │  │      data134.txt
│  │  │      data135.txt
│  │  │      data136.txt
│  │  │      data137.txt
│  │  │      data138.txt
│  │  │      data139.txt
│  │  │      data14.txt
│  │  │      data140.txt
│  │  │      data141.txt
│  │  │      data142.txt
│  │  │      data143.txt
│  │  │      data144.txt
│  │  │      data145.txt
│  │  │      data146.txt
│  │  │      data147.txt
│  │  │      data148.txt
│  │  │      data15.txt
│  │  │      data16.txt
│  │  │      data17.txt
│  │  │      data18.txt
│  │  │      data19.txt
│  │  │      data2.txt
│  │  │      data20.txt
│  │  │      data21.txt
│  │  │      data22.txt
│  │  │      data23.txt
│  │  │      data24.txt
│  │  │      data25.txt
│  │  │      data26.txt
│  │  │      data27.txt
│  │  │      data28.txt
│  │  │      data29.txt
│  │  │      data3.txt
│  │  │      data30.txt
│  │  │      data31.txt
│  │  │      data32.txt
│  │  │      data33.txt
│  │  │      data34.txt
│  │  │      data35.txt
│  │  │      data36.txt
│  │  │      data37.txt
│  │  │      data38.txt
│  │  │      data39.txt
│  │  │      data4.txt
│  │  │      data40.txt
│  │  │      data41.txt
│  │  │      data42.txt
│  │  │      data43.txt
│  │  │      data44.txt
│  │  │      data45.txt
│  │  │      data46.txt
│  │  │      data47.txt
│  │  │      data48.txt
│  │  │      data49.txt
│  │  │      data5.txt
│  │  │      data50.txt
│  │  │      data51.txt
│  │  │      data52.txt
│  │  │      data53.txt
│  │  │      data54.txt
│  │  │      data55.txt
│  │  │      data56.txt
│  │  │      data57.txt
│  │  │      data58.txt
│  │  │      data59.txt
│  │  │      data6.txt
│  │  │      data60.txt
│  │  │      data61.txt
│  │  │      data62.txt
│  │  │      data63.txt
│  │  │      data64.txt
│  │  │      data65.txt
│  │  │      data66.txt
│  │  │      data67.txt
│  │  │      data68.txt
│  │  │      data69.txt
│  │  │      data7.txt
│  │  │      data70.txt
│  │  │      data71.txt
│  │  │      data72.txt
│  │  │      data73.txt
│  │  │      data74.txt
│  │  │      data75.txt
│  │  │      data76.txt
│  │  │      data77.txt
│  │  │      data78.txt
│  │  │      data79.txt
│  │  │      data8.txt
│  │  │      data80.txt
│  │  │      data81.txt
│  │  │      data82.txt
│  │  │      data83.txt
│  │  │      data84.txt
│  │  │      data85.txt
│  │  │      data86.txt
│  │  │      data87.txt
│  │  │      data88.txt
│  │  │      data89.txt
│  │  │      data9.txt
│  │  │      data90.txt
│  │  │      data91.txt
│  │  │      data92.txt
│  │  │      data93.txt
│  │  │      data94.txt
│  │  │      data95.txt
│  │  │      data96.txt
│  │  │      data97.txt
│  │  │      data98.txt
│  │  │      data99.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─OverlappingTemplate
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─RandomExcursions
│  │  │      data1.txt
│  │  │      data2.txt
│  │  │      data3.txt
│  │  │      data4.txt
│  │  │      data5.txt
│  │  │      data6.txt
│  │  │      data7.txt
│  │  │      data8.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─RandomExcursionsVariant
│  │  │      data1.txt
│  │  │      data10.txt
│  │  │      data11.txt
│  │  │      data12.txt
│  │  │      data13.txt
│  │  │      data14.txt
│  │  │      data15.txt
│  │  │      data16.txt
│  │  │      data17.txt
│  │  │      data18.txt
│  │  │      data2.txt
│  │  │      data3.txt
│  │  │      data4.txt
│  │  │      data5.txt
│  │  │      data6.txt
│  │  │      data7.txt
│  │  │      data8.txt
│  │  │      data9.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Rank
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Runs
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Serial
│  │  │      data1.txt
│  │  │      data2.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  └─Universal
│  │          results.txt
│  │          stats.txt
│  │         
│  ├─AlgorithmTesting_NewLib
│  │  │  finalAnalysisReport.txt
│  │  │  freq.txt
│  │  │  
│  │  ├─ApproximateEntropy
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─BlockFrequency
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─CumulativeSums
│  │  │      data1.txt
│  │  │      data2.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─FFT
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Frequency
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─LinearComplexity
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─LongestRun
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─NonOverlappingTemplate
│  │  │      data1.txt
│  │  │      data10.txt
│  │  │      data100.txt
│  │  │      data101.txt
│  │  │      data102.txt
│  │  │      data103.txt
│  │  │      data104.txt
│  │  │      data105.txt
│  │  │      data106.txt
│  │  │      data107.txt
│  │  │      data108.txt
│  │  │      data109.txt
│  │  │      data11.txt
│  │  │      data110.txt
│  │  │      data111.txt
│  │  │      data112.txt
│  │  │      data113.txt
│  │  │      data114.txt
│  │  │      data115.txt
│  │  │      data116.txt
│  │  │      data117.txt
│  │  │      data118.txt
│  │  │      data119.txt
│  │  │      data12.txt
│  │  │      data120.txt
│  │  │      data121.txt
│  │  │      data122.txt
│  │  │      data123.txt
│  │  │      data124.txt
│  │  │      data125.txt
│  │  │      data126.txt
│  │  │      data127.txt
│  │  │      data128.txt
│  │  │      data129.txt
│  │  │      data13.txt
│  │  │      data130.txt
│  │  │      data131.txt
│  │  │      data132.txt
│  │  │      data133.txt
│  │  │      data134.txt
│  │  │      data135.txt
│  │  │      data136.txt
│  │  │      data137.txt
│  │  │      data138.txt
│  │  │      data139.txt
│  │  │      data14.txt
│  │  │      data140.txt
│  │  │      data141.txt
│  │  │      data142.txt
│  │  │      data143.txt
│  │  │      data144.txt
│  │  │      data145.txt
│  │  │      data146.txt
│  │  │      data147.txt
│  │  │      data148.txt
│  │  │      data15.txt
│  │  │      data16.txt
│  │  │      data17.txt
│  │  │      data18.txt
│  │  │      data19.txt
│  │  │      data2.txt
│  │  │      data20.txt
│  │  │      data21.txt
│  │  │      data22.txt
│  │  │      data23.txt
│  │  │      data24.txt
│  │  │      data25.txt
│  │  │      data26.txt
│  │  │      data27.txt
│  │  │      data28.txt
│  │  │      data29.txt
│  │  │      data3.txt
│  │  │      data30.txt
│  │  │      data31.txt
│  │  │      data32.txt
│  │  │      data33.txt
│  │  │      data34.txt
│  │  │      data35.txt
│  │  │      data36.txt
│  │  │      data37.txt
│  │  │      data38.txt
│  │  │      data39.txt
│  │  │      data4.txt
│  │  │      data40.txt
│  │  │      data41.txt
│  │  │      data42.txt
│  │  │      data43.txt
│  │  │      data44.txt
│  │  │      data45.txt
│  │  │      data46.txt
│  │  │      data47.txt
│  │  │      data48.txt
│  │  │      data49.txt
│  │  │      data5.txt
│  │  │      data50.txt
│  │  │      data51.txt
│  │  │      data52.txt
│  │  │      data53.txt
│  │  │      data54.txt
│  │  │      data55.txt
│  │  │      data56.txt
│  │  │      data57.txt
│  │  │      data58.txt
│  │  │      data59.txt
│  │  │      data6.txt
│  │  │      data60.txt
│  │  │      data61.txt
│  │  │      data62.txt
│  │  │      data63.txt
│  │  │      data64.txt
│  │  │      data65.txt
│  │  │      data66.txt
│  │  │      data67.txt
│  │  │      data68.txt
│  │  │      data69.txt
│  │  │      data7.txt
│  │  │      data70.txt
│  │  │      data71.txt
│  │  │      data72.txt
│  │  │      data73.txt
│  │  │      data74.txt
│  │  │      data75.txt
│  │  │      data76.txt
│  │  │      data77.txt
│  │  │      data78.txt
│  │  │      data79.txt
│  │  │      data8.txt
│  │  │      data80.txt
│  │  │      data81.txt
│  │  │      data82.txt
│  │  │      data83.txt
│  │  │      data84.txt
│  │  │      data85.txt
│  │  │      data86.txt
│  │  │      data87.txt
│  │  │      data88.txt
│  │  │      data89.txt
│  │  │      data9.txt
│  │  │      data90.txt
│  │  │      data91.txt
│  │  │      data92.txt
│  │  │      data93.txt
│  │  │      data94.txt
│  │  │      data95.txt
│  │  │      data96.txt
│  │  │      data97.txt
│  │  │      data98.txt
│  │  │      data99.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─OverlappingTemplate
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─RandomExcursions
│  │  │      data1.txt
│  │  │      data2.txt
│  │  │      data3.txt
│  │  │      data4.txt
│  │  │      data5.txt
│  │  │      data6.txt
│  │  │      data7.txt
│  │  │      data8.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─RandomExcursionsVariant
│  │  │      data1.txt
│  │  │      data10.txt
│  │  │      data11.txt
│  │  │      data12.txt
│  │  │      data13.txt
│  │  │      data14.txt
│  │  │      data15.txt
│  │  │      data16.txt
│  │  │      data17.txt
│  │  │      data18.txt
│  │  │      data2.txt
│  │  │      data3.txt
│  │  │      data4.txt
│  │  │      data5.txt
│  │  │      data6.txt
│  │  │      data7.txt
│  │  │      data8.txt
│  │  │      data9.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Rank
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Runs
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  ├─Serial
│  │  │      data1.txt
│  │  │      data2.txt
│  │  │      results.txt
│  │  │      stats.txt
│  │  │      
│  │  └─Universal
│  │          results.txt
│  │          stats.txt
│  │         
│  ├─BBS
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  ├─CCG
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  ├─G-SHA1
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  ├─LCG
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  ├─MODEXP
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  ├─MS
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  ├─QCG1
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  ├─QCG2
│  │  ├─ApproximateEntropy
│  │  ├─BlockFrequency
│  │  ├─CumulativeSums
│  │  ├─FFT
│  │  ├─Frequency
│  │  ├─LinearComplexity
│  │  ├─LongestRun
│  │  ├─NonOverlappingTemplate
│  │  ├─OverlappingTemplate
│  │  ├─RandomExcursions
│  │  ├─RandomExcursionsVariant
│  │  ├─Rank
│  │  ├─Runs
│  │  ├─Serial
│  │  └─Universal
│  └─XOR
│      ├─ApproximateEntropy
│      ├─BlockFrequency
│      ├─CumulativeSums
│      ├─FFT
│      ├─Frequency
│      ├─LinearComplexity
│      ├─LongestRun
│      ├─NonOverlappingTemplate
│      ├─OverlappingTemplate
│      ├─RandomExcursions
│      ├─RandomExcursionsVariant
│      ├─Rank
│      ├─Runs
│      ├─Serial
│      └─Universal
├─include
│      cephes.h
│      config.h
│      decls.h
│      defs.h
│      externs.h
│      generators.h
│      genutils.h
│      matrix.h
│      stat_fncs.h
│      utilities.h
│      
├─obj
│      approximateEntropy.o
│      assess.o
│      blockFrequency.o
│      cephes.o
│      cusum.o
│      dfft.o
│      discreteFourierTransform.o
│      frequency.o
│      generators.o
│      genutils.o
│      linearComplexity.o
│      longestRunOfOnes.o
│      matrix.o
│      nonOverlappingTemplateMatchings.o
│      overlappingTemplateMatchings.o
│      randomExcursions.o
│      randomExcursionsVariant.o
│      rank.o
│      runs.o
│      serial.o
│      universal.o
│      utilities.o
│      
├─src
│      approximateEntropy.c
│      assess.c
│      blockFrequency.c
│      cephes.c
│      cusum.c
│      dfft.c
│      discreteFourierTransform.c
│      frequency.c
│      generators.c
│      genutils.c
│      linearComplexity.c
│      longestRunOfOnes.c
│      matrix.c
│      nonOverlappingTemplateMatchings.c
│      overlappingTemplateMatchings.c
│      randomExcursions.c
│      randomExcursionsVariant.c
│      rank.c
│      runs.c
│      serial.c
│      universal.c
│      utilities.c
│      
└─templates
        dataInfo
        template10
        template11
        template12
        template13
        template14
        template15
        template16
        template17.Z
        template18.Z
        template19.Z
        template2
        template20.Z
        template21.Z
        template3
        template4
        template5
        template6
        template7
        template8
        template9
        
3.将“G:\sts-2.1.2_包含样本_测试程序\experiments\AlgorithmTesting_F722”改名为“G:\sts-2.1.2_包含样本_测试程序\experiments\AlgorithmTesting”;
4.打开Cygwin,切换目录,输入“$ cd G:/sts-2.1.2_包含样本_测试程序”,按Enter;
5.输入“$ ./assess 51200”,按Enter;
6.输入0,按回车,提示选择文件,输入“test_f722_random.bin”,按回车,接着输入1,回车,输入0,回车,输入10,回车,输入1,回车,然后等待程序输出结果,结果保存在:
“G:\sts-2.1.2_包含样本_测试程序\experiments\AlgorithmTesting\finalAnalysisReport.txt”中。

使用特权

评论回复
24
351357741| | 2019-6-25 14:56 | 只看该作者
最近也在搞随机数的生成,因为没有RNG模块,所以通过ADC来做种子。不知道楼主对生成真随机数方法有没有研究。我生成的随机数某些测试项的某一部分会failure。
我看ST给出的nist报告中也不是所有的测试项全部都pass。没看到有关nist测试结果中,对于整体pass 或者 failure的说明哇。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则