【技术实现步骤摘要】
证明用于加密的素整数
[0001]本公开的实施例涉及密码协议的计算,并且更具体地涉及用于加密的素整数的计算。
技术介绍
[0002]公钥算法可以基于各种问题的计算难度,诸如双素数(two-prime)合成整数的整数分解和计算离散对数的难度。许多密码系统可能围绕素整数被构建,诸如被用于基于因式分解、有限域或椭圆曲线密码学中的素整数。
技术实现思路
[0003]根据一些实现,一种方法可以包括:由设备接收与要被用于密码协议中的整数相关联的素数信息;处理该素数信息以标识潜在素整数列表,其中该潜在素整数列表中所包括的潜在素整数指示与该潜在素整数相关联的生成器以及被用于生成潜在素整数的素数数量;基于经过证明的素整数集合和被用于生成潜在素整数列表中所包括的潜在素整数的素数数量来使用素性测试或查找操作,确定潜在素整数列表中所包括的潜在素整数是否是素数;基于使用素性测试或查找操作确定潜在素整数列表中所包括的每个潜在素整数是否是素数,确定用于密码协议的整数的素数验证状态;以及由设备在整数的素数验证状态指示整数是经过验证的素整数时 ...
【技术保护点】
【技术特征摘要】
1.一种方法,包括:由设备接收与要被用于密码协议中的整数相关联的素数信息;处理所述素数信息以标识潜在素整数列表,其中所述潜在素整数列表中所包括的潜在素整数指示与所述潜在素整数相关联的生成器以及被用于生成所述潜在素整数的素数数量;基于经过证明的素整数集合和被用于生成所述潜在素整数列表中所包括的所述潜在素整数的素数数量来使用素性测试或查找操作,确定所述潜在素整数列表中所包括的所述潜在素整数是否是素数;基于使用所述素性测试或所述查找操作确定所述潜在素整数列表中所包括的每个潜在素整数是否是素数,确定用于所述密码协议的所述整数的素数验证状态;以及由所述设备在所述整数的所述素数验证状态指示所述整数是经过验证的素整数时,使用所述密码协议中的所述整数。2.根据权利要求1所述的方法,其中接收与用于所述密码协议的所述整数相关联的所述素数信息包括:标识与所述素数信息相关联的素数信息链接列表,所述素数信息指示与使用可证明的素数生成技术生成所述整数相关联的整数,其中所述素数信息链接列表被排序,使得被用于在所述素数信息链接列表中生成特定素数的每个素数在所述素数信息链接列表中的所述特定素数之前被列出。3.根据权利要求1所述的方法,其中所述素性测试包括Pocklington素性测试。4.根据权利要求1所述的方法,其中确定用于所述密码协议的所述整数的所述素数验证状态包括:确定所述整数是素整数;确定与所述整数相关联的子组的子组大小满足阈值;确定与所述整数相关联的所述子组的顺序是素数;以及确定与所述整数相关联的生成器具有与关联于所述整数的所述子组相同的顺序。5.根据权利要求1所述的方法,其中使用所述素性测试或所述查找操作来确定所述潜在素整数列表中所包括的所述潜在素整数是否是素数包括:确定被用于生成所述潜在素整数列表中所包括的第一潜在素整数的素数数量是零;在存储的素整数集合中执行所述查找操作,以在所述存储的素整数集合中标识所述第一潜在素整数;基于执行所述查找操作,确定所述第一潜在素整数是素整数;将所述第一潜在素整数添加到所述经过证明的素整数集合;以及从所述潜在素整数列表中移除所述第一潜在素整数。6.根据权利要求1所述的方法,其中使用所述素性测试来确定所述潜在素整数列表中所包括的所述潜在素整数是否是素数包括:确定被用于生成所述潜在素整数列表中所包括的下一潜在素整数的素数数量;从所述经过证明的素整数集合中移除一个或多个素数,其中来自所述经过证明的素整数集合的所述一个或多个素数的数量与被用于生成所述下一潜在素整数的所述素数数量相同;
使用来自所述经过证明的素整数集合的所述一个或多个素数,确定所述下一潜在素整数满足所述素性测试;将所述下一潜在素整数添加到所述经过证明的素整数集合;以及从所述潜在素整数列表中移除所述下一潜在素整数。7.根据权利要求1所述的方法,其中确定用于所述密码协议的所述整数的所述验证状态包括:确定用于所述密码协议的所述整数的所述验证状态是:经过验证的,这是基于在所述潜在素整数列表中不存在剩余的潜在素整数并且只有用于所述密码协议的所述整数被包括在所述经过证明的素整数集合中的确定,未经过验证的,这是基于使用所述素性测试或所述查找操作的对所述潜在素整数列表中所包括的潜在素整数不是素数的确定,或失败的,这是基于所述设备无法使用所述素性测试或所述查找操作确定所述潜在素整数列表中所包括的潜在素整数是否是素数的确定。8.根据权利要求1所述的方法,其中所述密码协议是基于离散对数的公钥密码协议。9.一种设备,包括:一个或多个存储器;以及一个或多个处理器,用以:接收与整数相关联的密码参数集合,其中所述密码参数集合包括按顺序被用于生成所述整数的潜在素整数链接列表;基于经过证明的素整数集合使用素性测试或查找操作,迭代地并且按所述顺序确定所述潜在素整数链接列表中所包括的每个潜在素整数是否是素整数;基于确定所述潜在素整数链接列表中所包括的每个潜在素整数是否是素整数,确定所述整数是否是经过证明的素整数;以及当所述整数是经过证明的素整数时,授权所述整数以供用于密码协议中。10.根据权利要求9所述的设备,其中所述顺序基于以下确定:所述潜在素整数链接列表中所包括的一个或多个素整数需要被证明,以确定所述潜在素整数链接列表中所包括的另一潜在素整数是否是素整数。11.根据权利要求9所述的设备,其中当确定所述整数是否是经过证明的素整数时,所述一个或多个处理器将用以:使用所述素性测试或所述查找操作确定所述整数是素整数;确定与所述整数相关联的子组的子组大小满足阈值;确定与所述整数相关联的所述子组的顺序是素数;以及确定与所述整数相关联的生成器具有与关联于所述整数的所述子组相同的顺序。12.根据权利要求9所述的设备,其中当使用所述素性测试或所述查找操作确定所述潜在素整数链接列表中所包括的每个潜在素整数是否是素整数时,所述一个或多个处理器将用以:确定被用于生成所述潜在素整数链接列表中所包括的第一潜在素整数的素数数量是零;在已知素整数集合中执行所述查找操作,以确定所述第一潜在素整数是否被包括在所
述已知素整数集合中;基于执行所述查找操作,确定所述第一潜在素整数是素整...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。