随机数检测(五)

随机数检测(五)- 检测工具

1 检测规范

随机数检测应遵循GM/T 0005-2021和GM/T 0062-2018两个标准。
首先根据产品实际情况确定产品类型。
0062划分产品类型
随机数检测量和检测项目可参考GM/T 0062-2018对不同类型产品的要求。不同检测项目的检测方法符合GM/T 0005-2021。
如果商用密码产品认证中遇到问题,欢迎加微信symmrz沟通。

2 检测量

GM/T 0062规定不同类型产品对检测量的要求。

def getGMT0062TestParam(productType, testType):
    
    if productType == 'A类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return {'fileno':1000, 'filelen': 128*1024*8}
        elif testType == '出厂检测':
            #出厂检测要求1000组,每组10^6bit
            return {'fileno':1000, 'filelen': 1000000}
        elif testType == '上电检测':
            return {'fileno':0, 'filelen': 0}
        elif testType == '周期检测':
            return {'fileno':0, 'filelen': 0}
        elif testType == '单次检测':
            return {'fileno':0, 'filelen': 0}
    elif productType == 'B类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return {'fileno':1000, 'filelen': 128*1024*8}
        elif testType == '出厂检测':
            #出厂检测要求不低于128bit
            return {'fileno':1, 'filelen': 128}
        elif testType == '上电检测':
            return {'fileno':0, 'filelen': 0}
        elif testType == '周期检测':
            return {'fileno':0, 'filelen': 0}
        elif testType == '单次检测':
            #单次检测要求不低于128bit
            return {'fileno':1, 'filelen': 128}
    elif productType == 'C类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return {'fileno':1000, 'filelen': 128*1024*8}
        elif testType == '出厂检测':
            #出厂检测要求不低于256bit
            return {'fileno':1, 'filelen': 256}
        elif testType == '上电检测':
            #上电检测要求不低于256bit
            return {'fileno':1, 'filelen': 256}
        elif testType == '周期检测':
            return {'fileno':0, 'filelen': 0}
        elif testType == '单次检测':
            #单次检测要求不低于256bit
            return {'fileno':1, 'filelen': 256}
    elif productType == 'D类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return {'fileno':1000, 'filelen': 128*1024*8}
        elif testType == '出厂检测':
            #出厂检测要求不低于256bit
            return {'fileno':1, 'filelen': 256}
        elif testType == '上电检测':
            #上电检测要求不低于10^4bit
            return {'fileno':20, 'filelen': 10000}
        elif testType == '周期检测':
            #周期检测要求不低于10^4bit
            return {'fileno':5, 'filelen': 10000}
        elif testType == '单次检测':
            #单次检测要求不低于256bit
            return {'fileno':1, 'filelen': 256}
    elif productType == 'E类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return {'fileno':1000, 'filelen': 128*1024*8}
        elif testType == '出厂检测':
            #出厂检测要求不低于10^6bit
            return {'fileno':50, 'filelen': 1000000}
        elif testType == '上电检测':
            #上电检测要求不低于10^6bit
            return {'fileno':20, 'filelen': 1000000}
        elif testType == '周期检测':
            #周期检测要求不低于2*10^4bit
            return {'fileno':20, 'filelen': 20000}
        elif testType == '单次检测':
            #单次检测要求不低于256bit
            return {'fileno':1, 'filelen': 256}
        
    return {'fileno':0, 'filelen': 0}

3 检测项目

def getGMT0062TestItems(productType, testType):
    
    if productType == 'A类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return getGMT0005TestItems(128*1024*8)
        elif testType == '出厂检测':
            #出厂检测要求1000组,每组10^6bit
            return getGMT0005TestItems(1000000)
        elif testType == '上电检测':
            return []
        elif testType == '周期检测':
            return []
        elif testType == '单次检测':
            return []
    elif productType == 'B类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return getGMT0005TestItems(128*1024*8)
        elif testType == '出厂检测':
            #出厂检测要求不低于128bit
            return [{'function':monobitFrequency}, {'function':poker, 'param1':2}]
        elif testType == '上电检测':
            return []
        elif testType == '周期检测':
            return []
        elif testType == '单次检测':
            #单次检测要求不低于128bit
            return [{'function':poker, 'param1':2}]
    elif productType == 'C类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return getGMT0005TestItems(128*1024*8)
        elif testType == '出厂检测':
            #出厂检测要求不低于256bit
            return [{'function':monobitFrequency}, {'function':poker, 'param1':2}]
        elif testType == '上电检测':
            #上电检测要求不低于256bit
            return [{'function':poker, 'param1':2}]
        elif testType == '周期检测':
            return []
        elif testType == '单次检测':
            #单次检测要求不低于256bit
            return [{'function':poker, 'param1':2}]
    elif productType == 'D类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return getGMT0005TestItems(128*1024*8)
        elif testType == '出厂检测':
            #出厂检测要求不低于256bit
            return [{'function':monobitFrequency}, {'function':poker, 'param1':2}]
        elif testType == '上电检测':
            #上电检测要求不低于10^4bit
            return [{'function':poker, 'param1':2}]
        elif testType == '周期检测':
            #周期检测要求不低于10^4bit
            return [{'function':poker, 'param1':2}]
        elif testType == '单次检测':
            #单次检测要求不低于256bit
            return [{'function':poker, 'param1':2}]
    elif productType == 'E类产品':
        if testType == '送样检测':
            #送样检测要求1000个文件,每个128KB
            return getGMT0005TestItems(128*1024*8)
        elif testType == '出厂检测':
            #出厂检测要求不低于10^6bit
            return getGMT0005TestItems(1000000)
        elif testType == '上电检测':
            #上电检测要求不低于10^6bit
            return getGMT0005TestItems(1000000)
        elif testType == '周期检测':
            #周期检测要求不低于2*10^4bit
            return getGMT0005TestItems(20000)
        elif testType == '单次检测':
            #单次检测要求不低于256bit
            return [{'function':poker, 'param1':2}]
        
    return []

4 检测工具

符合GM/T 0062和GM/T 0005规范的随机数检测工具可以参考随机数检测工具

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值