哈希游戏- 哈希游戏平台- 哈希游戏官方网站
2、57)摘要 本申请提供一种应用于数字签名的哈希处 理方法、 装置、 设备及存储介质。 涉及信息安全技 术领域。 该方法包括: 采用哈希函数将输入字符 串压缩为一个定长短字符串; 将定长短字符串输 入伪随机生成器, 得到伪随机序列; 对单汉明重 量集合进行扩展, 得到多汉明重量集合; 根据伪 随机序列的伪随机性, 在多汉明重量集合上均匀 采样, 输出目标挑战向量; 或者, 根据伪随机序列 的伪随机性, 在多汉明重量集合上非均匀采样, 输出目标挑战向量; 根据目标挑战向量生成数字 签名。 通过得到并利用伪随机序列的伪随机性, 在多汉明重量的集合上进行均匀采样或非均匀 采样, 在不会降低签名算法的量。
3、子安全强度的前 提下, 使签名算法的平均循环次数减小, 提高了 签名算法效率。 权利要求书3页 说明书15页 附图2页 CN 115733619 A 2023.03.03 CN 115733619 A 1.一种应用于数字签名的哈希处理方法, 其特征在于, 包括: 采用哈希函数将输入字符串压缩为一个定长短字符串; 将所述定长短字符串输入伪随机生成器, 得到伪随机序列; 对单汉明重量集合进行扩展, 得到多汉明重量集合; 根据所述伪随机序列的伪随机性, 在所述多汉明重量集合上进行均匀采样, 输出目标 挑战向量; 或者, 根据所述伪随机序列的伪随机性, 在所述多汉明重量集合上进行非均匀采 样, 输出目。
4、标挑战向量; 根据所述目标挑战向量生成数字签名。 2.根据权利要求1所述的方法, 其特征在于, 所述对单汉明重量集合进行扩展, 得到多 汉明重量集合, 包括: 将单汉明重量集合进行扩展, 得到多汉明重量集合; 其中, 所述单汉明重量集合表示为:表示长为k且恰有 个非零元的0, 1向量所 组成的集合; 所述多汉明重量集合表示为 : B , 为汉明重量集合的并集 , 表示为 式中, k t1。 3.根据权利要求2所述的方法, 其特征在于, 所述根据所述伪随机序列的伪随机性, 在 所述多汉明重量集合上进行均匀采样, 输出目标挑战向量, 包括: 取定集合 t, ., 上的概率分布将概率分布赋值给预设的。
5、汉明重量i, 使得预 设的汉明重量i的取值满足如下公式: 式中, k, 和t是预定义值, t是最小汉明重量, 是最大汉明重量, 满足k t1; 表示预设汉明重量为i的概率, 其中 ti , 初始化一个前ki个分量为0、 后i个分量为1的k维向量(c1, ., cki, cki+1, ., ck)T (0, ., 0, 1, .1)T, 对cmcki+1, ., ck依次执行如下循环操作: 根据所述伪随机序列的伪随机性, 均匀随机给cm赋正负号, 并均匀随机在对应集合 c1, ., cm中取cj, 将cj与cm交换; 最终输出目标挑战向量c(c1, ., ck)T, 其中,即c属于多汉明 重量集。
6、合。 4.根据权利要求2所述的方法, 其特征在于, 所述根据所述伪随机序列的伪随机性, 在 所述多汉明重量集合上进行均匀采样, 输出目标挑战向量, 包括: 在每个长为t、 汉明重量为h的0, 列向量集合中, 分别取定一个向量xh(x1, x2, ., xt)T作为代表元; 根据所述伪随机序列的伪随机性, 均匀随机取一个恰有 个非零向量的(k+t)维0, 权利要求书 1/3 页 2 CN 115733619 A 2 1向量c(c1, ., ck+t)T; 将所述向量c(c1, ., ck+t)T按照t元集所对应的位置拆分为t维向 量x 和k维向量c , 其中x (x 1, x2, ., xt) 。
7、T, c (c 1 , ., ck ) T, 具体的, 从(c 1, ., ck+t)T中取指标在I中的t个元素, 按原来顺序排成向量x , 而指标不在I中的剩下k个元素, 按原来顺序排成向量c ; 根据t维向量x 的汉明重量h, 判断t维向量x 与所述代表元xh是否相等; 若不相等, 则从头开始, 重新根据所述伪随机序列的伪随机性, 均匀随机取一个恰有 个非零向量的(k+t)维0, 1向量c(c1, ., ck+t)T, 继续进行上述操作; 若相等, 则输出目标挑战向量cc (c1 , ., ck )T, 其中,即c 属于多汉明重量集合。 5.根据权利要求2所述的方法, 其特征在于, 所述根。
8、据所述伪随机序列的伪随机性, 在 所述多汉明重量集合上进行非均匀采样, 输出目标挑战向量, 包括: 初始化一个前k+t 位为0, 后 位为1的k+t维向量(c1, ., ck+t , ck+t +1, ., ck+t)T; 对ik+t +1, ., k+t依次执行如下操作: 根据所述伪随机序列的伪随机性, 在集合1, ., i上按均匀分布取值, 赋值给j, 并均 匀随机给ci赋正负号; 对换ci的值与cj的值; 输出目标挑战向量c(c1, ., ck)T, 其中,即c属于多汉明重量集 合; 其中, 目标挑战向量c满足: 对 ti , 若则 式中, k, 和t是预定义值, t是最小汉明重量, 是。
9、最大汉明重量, 满足k t1; 表示得到目标挑战向量c的概率, i是c的汉明重量, 满足0it, 6.根据权利要求1所述的方法, 其特征在于, 还包括: 根据所述伪随机序列的伪随机性, 在所述单汉明重量集合上进行均匀采样, 输出目标 挑战向量。 7.根据权利要求6所述的方法, 其特征在于, 所述根据所述伪随机序列的伪随机性, 在 所述单汉明重量集合上进行均匀采样, 输出目标挑战向量, 包括: 取定一个置换 取一个s维初始向量c(c1, .cs ., cs), 其中初始向量c的前s 维分量为0, 后 维 分量为1, s 1; 依次取i (1), ., ( ), 在初始向量c上执行 轮循环, 其中。
10、根据置换 的不同取法, 轮循环的执行顺序是任意的, 具体包括: 对于i (1), ., ( ), 依次在集合1, ., i+s 中, 根据所述伪随机序列的伪随机 权利要求书 2/3 页 3 CN 115733619 A 3 性, 按照均匀分布取值, 并赋值给j; 将ci+s 的值与cj的值对换; 再依次取m1, ., s, 在变换后的向量c上执行s轮循环, 具体包括: 根据所述伪随机序列的伪随机性, 均匀随机设定非零元ci的正负号; 最终输出目标挑战向量c(c1, ., cs)T, 其中,即c属于单汉明重量集合。 8.根据权利要求17任一项所述的方法, 其特征在于, 所述根据所述目标挑战向量生。
11、成 数字签名, 包括: 根据所述目标挑战向量, 利用公私钥将所述目标挑战向量生成数字签名。 9.一种应用于数字签名的哈希处理装置, 其特征在于, 包括: 压缩模块, 用于采用哈希函数将输入字符串压缩为一个定长短字符串; 输入模块, 用于将所述定长短字符串输入伪随机生成器, 得到伪随机序列; 扩展模块, 用于对单汉明重量集合进行扩展, 得到多汉明重量集合; 均匀采样模块, 用于根据所述伪随机序列的伪随机性, 在所述多汉明重量集合上进行 均匀采样, 输出挑战向量; 或者, 非均匀采样模块, 用于根据所述伪随机序列的伪随机性, 在所述多汉明重量集合上进 行非均匀采样, 输出挑战向量; 生成模块, 用。
12、于根据所述挑战向量生成数字签名。 10.一种电子设备, 其特征在于, 包括: 处理器, 以及与所述处理器通信连接的存储器; 所述存储器存储计算机执行指令; 所述处理器执行所述存储器存储的计算机执行指令, 以实现如权利要求18中任一项 所述的方法。 11.一种计算机可读存储介质, 其特征在于, 所述计算机可读存储介质中存储有计算机 执行指令, 所述计算机执行指令被处理器执行时用于实现如权利要求18中任一项所述的 方法。 12.一种计算机程序产品, 其特征在于, 包括计算机程序, 该计算机程序被处理器执行 时实现权利要求18中任一项所述的方法。 权利要求书 3/3 页 4 CN 115733619。
13、 A 4 应用于数字签名的哈希处理方法、 装置、 设备及存储介质 技术领域 0001 本申请涉信息安全技术领域, 尤其涉及一种应用于数字签名的哈希处理方法、 装 置、 设备及存储介质。 背景技术 0002 随着量子计算技术的不断发展, 需要设计能够抵御量子攻击的密码技术。 其中, 基 于格理论的密码技术(简称, 格基密码技术), 越来越受到广泛关注。 特别地, 标准格 (Standard Lattice)是具有最一般化代数结构的格, 基于标准格的密码技术较其他类别的 格基密码技术往往更为安全, 因此受到广泛关注。 而, 数字签名是密码技术的重要组成元 件, 是保障网络信息安全的重要手段, 对数。
14、字签名技术的安全性和算法效率进行研究具有 重要意义。 0003 当前, 可以通过多种范式设计基于格理论的数字签名技术。 目前, 所有的基于标准 格且使用FiatShamir转换设计范式的数字签名技术中, 所有的签名算法中都会使用到一 个哈希模块的哈希处理, 以实现从0, 1到某个事先指定的有限集合上的映射; 称 它的输出为挑战(Challenge), 常用c来表示; 当将哈希模块的输入视为随机变量时, 用 表 示随机变量c所服从的集合B上的分布。 一般而言, 该哈希模块的实现包括两个阶段: 首先, 使用某个哈希函数(如: SHA3256, SHA3384), 将输入字符串压缩为一个定长的短字符。
15、串 (称为种子); 然后, 将该种子作为伪随机生成器(Pseudorandom Generator,PRG)的输入, 据 此在集合B上按均匀分布进行采样并输出。 0004在量子安全方面, 为了达到理想的量子安全强度, 随机分布的熵不能 太小; 然而若的熵增大, 则哈希模块的哈希处理过程中, 签名算法的平均循环次 数有增大的可能, 使得签名算法的效率变低。 0005 因此, 亟需一种在保证签名算法的量子安全强度不变的前提下, 如何提高签名算 法效率的数字签名的处理方法。 发明内容 0006 本申请提供一种应用于数字签名的哈希处理方法、 装置、 设备及存储介质, 用以在 不降低签名算法的量子安全强。
16、度的前提下, 达到提高签名算法效率的目的。 0007 第一方面, 本申请提供一种应用于数字签名的哈希处理方法, 包括: 0008 采用哈希函数将输入字符串压缩为一个定长短字符串; 0009 将所述定长短字符串输入伪随机生成器, 得到伪随机序列; 0010 对单汉明重量集合进行扩展, 得到多汉明重量集合; 0011 根据所述伪随机序列的伪随机性, 在所述多汉明重量集合上进行均匀采样, 输出 挑战向量; 或者, 根据所述伪随机序列的伪随机性, 在所述多汉明重量集合上进行非均匀采 样, 输出挑战向量; 说明书 1/15 页 5 CN 115733619 A 5 0012 根据所述挑战向量生成数字签名。
17、。 0013 第二方面, 本申请提供一种应用于数字签名的哈希处理装置, 包括: 0014 压缩模块, 用于采用哈希函数将输入字符串压缩为一个定长短字符串; 0015 输入模块, 用于将所述定长短字符串输入伪随机生成器, 得到伪随机序列; 0016 扩展模块, 用于对单汉明重量集合进行扩展, 得到多汉明重量集合; 0017 均匀采样模块, 用于根据所述伪随机序列的伪随机性, 在所述多汉明重量集合上 进行均匀采样, 输出挑战向量; 或者, 0018 非均匀采样模块, 用于根据所述伪随机序列的伪随机性, 在所述多汉明重量集合 上进行非均匀采样, 输出挑战向量; 0019 生成模块, 用于根据所述挑战。
18、向量生成数字签名。 0020 本申请提供的应用于数字签名的哈希处理方法、 装置、 设备及存储介质, 通过将输 入字符串压缩后输入伪随机生成器, 得到伪随机序列, 进一步利用伪随机序列的伪随机性, 在多汉明重量的集合上进行均匀采样或非均匀采样, 通过在更大的范围之内选择适当的多 汉明重量的集合B, 以及在更大的范围之内选择多汉明重量的集合B上的可高效实现的分布 , 达到在不会降低签名算法的量子安全强度的前提下, 使得签名算法的平均循环次数减 小, 从而提高了签名算法效率。 附图说明 0021 此处的附图被并入说明书中并构成本说明书的一部分, 示出了符合本申请的实施 例, 并与说明书一起用于解释本。
19、申请的原理。 0022 图1为本申请实施例提供的应用于数字签名的哈希处理方法的流程图一; 0023 图2为本申请实施例提供的应用于数字签名的哈希处理方法的流程图二; 0024 图3为本申请实施例提供的应用于数字签名的哈希处理装置的结构示意图; 0025 图4为本申请实施例提供的电子设备的结构示意图。 0026 通过上述附图, 已示出本申请明确的实施例, 后文中将有更详细的描述。 这些附图 和文字描述并不是为了通过任何方式限制本申请构思的范围, 而是通过参考特定实施例为 本领域技术人员说明本申请的概念。 具体实施方式 0027 这里将详细地对示例性实施例进行说明, 其示例表示在附图中。 下面的描。
20、述涉及 附图时, 除非另有表示, 不同附图中的相同数字表示相同或相似的要素。 以下示例性实施例 中所描述的实施方式并不代表与本申请相一致的所有实施方式。 相反, 它们仅是与如所附 权利要求书中所详述的、 本申请的一些方面相一致的装置和方法的例子。 0028 术语解释: 0029 熵(Entropy): 对于任意一个(离散的)随机变量X, 它的熵定义如下: 0030 H(X)xPr(x)log2 Pr(x), 0031 其中Pr(x)表示X的概率质量函数(Probability Mass Function)。 0032 q: 令q表示一个奇素数(q3)。 0033环定义为模q剩余类环, 取定代表。
22、的 一个组成部分。 实现从0, 1到某个事先指定的有限集合上的映射; 它的输出被称 为挑战(Challenge), 常用向量c来表示; 当将c视为(被哈希模块输入所决定的)随机变量 时, 常用 表示随机变量c所服从的集合B上的分布。 0041 伪随机生成器(Pseudorandom Generator,PRG): 一个将定长n的短字符串s(称为 种子)映射为某一给定的更长长度ll(n)的 “伪随机” 字符串的高效、 确定性算法G。 具体 地, G满足以下两点: 0042 1.(扩展性)l(n)n 0043 2.(伪随机性)对于任意的一个多项式时间概率算法D, 有 0044 PrD(G(s)1。
23、PrD(r)1negl(n) 0045 其中, negl(n)是一个取值比任意关于n的多项式函数的倒数还要小的函数。 也就 是说, D难以区分输出的字符串与等长的线均匀分布令表示给定集合B上的均匀分布。 0047集合令表示长为k且 恰有 个非零元的0, 1向量全体组成的集合, 这个集合中有个元素。 0048 : 用于标征某个安全方案的量子安全强度; 例如, 当 128时, 表示安全方案达到 128量子比特的安全强度。 0049 数字签名是密码技术的重要组成元件, 是保障网络信息安全的重要手段, 对数字 签名技术的安全性和算法效率进行研究具有重要意义。 当前, 可以通过多。
24、种范式设计基于 格理论的数字签名技术。 目前, 所有的基于标准格且使用FiatShamir转换设计范式的数字 签名技术中, 所有的签名算法中都会使用到一个哈希模块的哈希处理, 以实现从0, 1到 某个事先指定的有限集合上的映射; 称它的输出为挑战(Challenge), 常用c来表 示; 当将哈希模块的输入视为随机变量时, 用x表示随机变量c所服从的集合上的分布。 一般 说明书 3/15 页 7 CN 115733619 A 7 而言, 该哈希模块的实现包括两个阶段: 首先, 使用某个哈希函数(如: SHA3256, SHA3 384), 将输入字符串压缩为一个定长的短字符串(称为种子); 然。
25、后, 将该种子作为伪随机生 成器(Pseudorandom Generator,PRG)的输入, 据此在集合B上按均匀分布进行 采样并输出。 0050 以Dilithium的标准格版本为例, 在量子安全强度方面, 为达到事先指定的量子安 全强度等级, 须保证随机分布的熵不能太小。 然而若的熵增大, 则哈 希模块的哈希处理过程中, 签名算法的平均循环次数有增大的可能, 使得签名算法的效率 变低。 在效率方面, 常用Dilithium的签名算法的平均循环次数来衡量其签名算法的 效率, 这里 被定义为Ec无穷范数在最差情况下的上界; 其中, E代表中的随机元素, 它 的每个分量独立地服从上的均匀分布。
26、, c是哈希模块的输出, 可以认为它 服从上的均匀分布。 一般地, 可定义 表示Ec无穷范数的上界(在忽略2 概率 意义下), 即 0051 0052不难看出且与 值正相关, 因此减小 值有利于提高方案的效率。 0053 针对上述技术问题, 本申请提出如下技术构思: 在改进哈希模块时, 通过扩大集合 B及其上分布 的选择范围, 可以保证在方案的量子安全强度不减的前提下, 提升签名算法 的效率。 0054 本申请适用于所有基于标准格且使用FiatShamir转换所得到的数字签名方案 (如: Lyu12, BG14, TESLA, Dilithium的标准格版本)。 这类方案的签名算法中, 都会用。
27、到一个 哈希模块。 在哈希模块的实现中, 需要选择适当的集合B以及B上适当的分布 , 以达到方案 在安全性和效率上的平衡。 在具体选择方面, 它们都类似于Dilithium的标准格版本: 一方 面, 选择集合其中,是由在中系数向量属于0, 1K, 且汉明重量为 的全部 元素组成的集合; 另一方面, 选择 为B上的均匀分布 0055 从实用性的角度出发, 在设计后量子数字签名方案时, 一般需均衡考虑方案的量 子安全强度和效率; 其中, 签名算法的效率是方案效率的重要指标之一。 下面, 以Dilithium 的标准格版本为例, 从量子安全强度和签名算法效率角度出发, 分析哈希模块的实现对方 案的影。
28、响, 由此得出关于哈希模块的一类改进方法。 0056 在量子安全性方面, 为达到事先指定的量子安全强度 , 随机分布 0057的熵不能太小。 因此增大 值有利于提高方案的量子安全 强度。 0058在签名算法效率方面, 常用平均循环次数来衡量其签名算法的效率。 其中, 值的大小直接影响签名算法的平均循环次数: 越大, 则签名算法的平均循环次数越大, 签 名算法效率越低。 在Dilithium的标准格版本中, 被定义为Ec的无穷范数在最差情况下的 上界, 即 , 其中,是上的mk维随机矩阵, 它的每个分量独立地服从 说明书 4/15 页 8 CN 115733619 A 8 上的均匀分布; c是哈。
29、希模块的输出, 可以认为它服从上的均匀 分布。 因此减小 值有利于提高方案的效率。 0059 由以上分析可知, 为了达到安全性和效率的平衡, 在哈希模块的实现中, 需选取适 当的集合B以及B上适当的分布 。 在已知所有基于标准格且使用FiatShamir转换所得到的 数字签名方案的哈希模块的实现中, 取B为中汉明重量相同的一些元素所组成的集合, 取 为B上的均匀分布基于此, 本申请提出一种应用于数字签名的哈希处理方法, 在 保证签名算法的量子安全强度不变的前提下, 若适当扩大集合B的选择范围以及B上分布 的选择范围, 有利于提高签名算法的效率。 0060 具体地, 通过在更大的范围之内选择适当。
30、的集合B, 以及在更大的范围之内选择B 上的可高效实现的分布(即: 不一定是均匀分布), 例如, 在多汉明重量的集合 上均匀采样; 或者在多汉明重量的集合 上按某种可高效实现的非均匀分布进行采样。 此外, 作为上述 两种采样方法的补充, 还可以在上进行一般化的高效均匀采样。 0061 接下来, 通过实例定量地说明本申请的优势。 0062 示例性地, 以Dilithium的标准格版本达到128量子安全强度等级的推荐参数k 256, 49, 4为例(此时 196), 可以采用以下两组选择, 来替换原有的B和 的选 择: 0063(1)取取 为B上的均匀分布(此时可取 193); 0064(2)取取。
31、 (此时可取 193), 其中分布 满足: 0065 0066 对于上述B和 的两组选择, 从量子安全性的角度分析, 它们都可以提高熵(其中 (1)提高了0.16; (2)提高了0.11), 从而保证量子安全强度不减; 从效率的角度分析, 它们显 然都降低了 值, 从而提高了签名算法的效率。 0067 可以理解的是, 本申请提出的应用于数字签名的哈希处理方法适用于所有基于标 准格且使用FiatShamir转换所得到的格基数字签名方案, 如: Lyu12, BG14, TESLA, Dilithium的标准格版本。 0068 下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述 。
32、技术问题进行详细说明。 下面这几个具体的实施例可以相互结合, 对于相同或相似的概念 或过程可能在某些实施例中不再赘述。 下面将结合附图, 对本申请的实施例进行描述。 0069 本申请实施例提供一种应用于数字签名的哈希处理方法, 本实施例的方法的执行 主体可以是服务器。 图1为本申请实施例提供的应用于数字签名的哈希处理方法的流程图 一。 如图1所示, 该方法包括: 0070 S101、 采用哈希函数将输入字符串压缩为一个定长短字符串。 说明书 5/15 页 9 CN 115733619 A 9 0071 本实施例中, 哈希函数又叫散列函数, 哈希函数就是把任意长的输入字符串变化 成固定长的输出字。
33、符串的一种函数。 输出字符串的长度称为哈希函数的位数。 0072 哈希函数把消息或数据压缩成摘要, 使得数据量变小, 将数据的格式固定下来, 比 如我们自定义密码的存储。 0073 示例性地, 哈希函数可以为SHA3256或SHA3384。 0074 S102、 将定长短字符串输入伪随机生成器, 得到伪随机序列。 0075 本实施例中, 伪随机生成器指的是可以生成随机数的软件, 可以根据外部输入的 定长短字符串(称为 “种子” )来生成伪随机数列, 利用的是伪随机算法, 例如, 将根据内部状 态计算伪随机数的方法和改变内部状态方法组合起来, 即伪随机算法。 具体的, 当伪随机生 成器接收到 “。
34、种子” 时, 伪随机生成器会根据内存中的数值(内部状态)进行计算, 并将计算 结果作为伪随机数输出, 进一步的, 在伪随机生成器接收下一个 “种子” 时, 伪随机生成器会 改变自己的内部状态。 0076 可选的, 伪随机生成器中可以包括压缩功能, 即利用哈希函数压缩输入字符串, 得 到 “种子” 的功能, 本申请实施例对此不作具体限定。 0077 生成的伪随机序列具有(伪)随机性, 是步骤S104和S105中在多汉明重量集合上进 行均匀采样和非均匀采样阶段随机性的唯一来源。 0078 S103、 对单汉明重量集合进行扩展, 得到多汉明重量集合。 0079在本申请的一个实施例中, 单汉明重量集合。
35、表示为:表示长为k且恰有 个非 零元的0, 1向量所组成的集合; 这个集合中有个元素。 0080由中分量属于0, 1, 且汉明重量为 的k维列向量组成, 即 0081 0082向量c(c1, ., ck)T的汉明重量与无穷范数分别定义为与c maxici。 0083多汉明重量集合表示为 : B , 为汉明重量集合的并集 , 表示为 式中, k t1。 0084 S104、 根据伪随机序列的伪随机性, 在多汉明重量集合上进行均匀采样, 输出挑战 向量。 0085 在本申请的一个实施例中, 根据伪随机序列的伪随机性, 在多汉明重量集合上进 行均匀采样, 输出目标挑战向量(记为算法A1), 。
36、包括: 0086取定集合 t, ., 上的概率分布将概率分布赋值给预设的汉明重量i, 使 得预设的汉明重量i的取值满足如下公式: 0087 0088 式中, k, 和t是预定义值, t是最小汉明重量, 是最大汉明重量, 满足k t 1;表示预设汉明重量为i的概率, 其中 ti , 说明书 6/15 页 10 CN 115733619 A 10 0089 初始化一个前ki个分量为0、 后i个分量为1的k维向量(c1, ., cki, cki+1, ., ck)T(0, ., 0, 1, .1)T, 对cmcki+1, ., ck依次执行如下循环操作: 0090 根据伪随机序列的伪随机性, 均匀随。
37、机给cm赋正负号, 并均匀随机在对应集合 c1, ., cm中取cj, 将cj与cm交换; 0091最终输出目标挑战向量c(c1, ., ck)T, 其中,即c属于多 汉明重量集合。 0092 通过实例分析本申请实施例的有益效果如下: 给定参数(k, , t), 其中k t 1。 设是上的均匀分布;是上的 均匀分布, 则 1的熵E( 1)不小于 的熵 0093 证明: 由熵的定义, 可知: 0094 0095 所以由 0096 0097得出结论有: 若是上的均匀分 布;是上的均匀分布, 则 1的熵E( 1)不小于 的熵 0098 需要说明的是, 由上述实施例可知, 由于 1的熵E( 1)不小于。
38、Dilithium标准格版本 哈希模块中的随机分布的熵所以本申请提供的方法的量子安全强度没 有减小。 0099 效率方面, 示例性地, 以Dilithium的标准格版本推荐参数k256, 49, 4为 例, 此时有 196; 在本申请中, 取t1时, 有 193, 所以采用本申请签名算法的实现效率 优于Dilithium标准格版本。 0100 给定参数(k, , t), 其中kt1, 则上述算法A1的输出目标挑战向量c (c1, ., ck)T服从多汉明重量集合上的均匀分布, 证明如下: 0101 任取cB, 记hc1。 则算法A1输出c的概率为 说明书 7/15 页 11 CN 1157。
39、33619 A 11 0102 0103所以得出结论: 上述签名算法A1的输出服从上均匀分布 0104 在本申请的一个实施例中, 根据伪随机序列的伪随机性, 在多汉明重量集合上进 行均匀采样, 输出目标挑战向量(记为算法A2), 包括: 0105在每个长为t、 汉明重量为h的0, 1列向量集合中, 分别取定一个向量xh (x1, x2, ., xt)T作为代表元; 0106 根据伪随机序列的伪随机性, 均匀随机取一个恰有 个非零向量的(k+t)维0, 1向量c(c1, ., ck+t)T; 0107将向量c(c1, ., ck+t)T按照t元集所对应的位置拆分为t维 向量x 和k维向量c , 。
40、其中x (x 1, x2, ., xt) T和c (c 1 , ., ck ) T, 具体的, 从 (c1, ., ck+t)T中取指标在I中的t个元素, 按原来顺序排成向量x , 而指标不在I中的剩下k 个元素, 按原来顺序排成向量c ; 0108 根据t维向量x 的汉明重量h, 判断t维向量x 与代表元xh是否相等; 0109 若不相等, 则从头开始, 重新根据伪随机序列的伪随机性, 均匀随机取一个恰有 个非零向量的(k+t)维0, 1向量c(c1, ., ck+t)T; 0110 若相等, 则输出目标挑战向量cc (c1 , ., ck )T。 0111 通过实例分析本申请实施例的有益效。
41、果如下: 0112 量子安全强度: 以Dilithium的标准格版本推荐参数k256, 49, 4为例, 在 对应的哈希模块中, 随机分布的熵为在本申请中, 取t 1, 随机分布 2的熵为E( 2)225.46。 所以使用本申请的方法不会降低签名方案的量子安全 强度。 熵越大, 表示系统越稳定, 即方案越安全。 0113 效率: 以Dilithium标准格版本推荐参数k256, 49, 4为例, 此时有 196; 在本申请中, 取t1时, 有 193, 所以采用本申请的方法实现效率优于Dilithium标准格 版本。 0114 给定参数(k, , t), 其中k t1, 则算法A2输出目标挑战。
42、向量c(c1, ., ck)T 服从多汉明重量集合上的均匀分布, 证明如下: 0115 因为: 说明书 8/15 页 12 CN 115733619 A 12 0116 0117 又 0118 0119 所以任取cB, 输出c的概率为: 0120 0121所以得出结论: 上述签名算法A2的输出服从上均匀分布 0122 S105、 根据伪随机序列, 在多汉明重量集合上进行非均匀采样, 输出挑战向量。 0123 在本申请的一个实施例中, 根据伪随机序列的伪随机性, 在多汉明重量集合上进 行非均匀采样, 输出目标挑战向量(记为算法B), 包括: 0124 初始化一个前k+t 位为0, 后 位为1的k。
43、+t维向量(c1, ., ck+t, ck+t +1, ., ck+t)T; 0125 对ik+t +1, ., k+t依次执行如下操作: 0126 根据伪随机序列的伪随机性, 在集合1, ., i上按均匀分布取值, 赋值给j; 0127 再次根据伪随机序列的伪随机性, 均匀随机给ci赋正负号; 0128 对换ci的值与cj的值; 0129最终输出目标挑战向量c(c1, ., ck)T, 其中,即c属于多 汉明重量集合; 0130 其中, 目标挑战向量c满足: 0131对 ti , 若则 0132 式中, k, 和t是预定义值, t是最小汉明重量, 是最大汉明重量, 满足k t 1;表示得到目。
44、标挑战向量c的概率, i是c的汉明重量, 满足0it, 说明书 9/15 页 13 CN 115733619 A 13 0133 通过实例分析本申请实施例的有益效果如下: 0134 给定参数(k, , t), 其中k t1, 则算法B输出目标挑战向量c(c1, ., ck)T 服从上的分布 2, 满足: 对 ti , 若 则 0135证明如下: 0136任取输出c的概率为: 0137 0138所以得出结论: 上述签名算法B的输出服从上均匀分布 0139 S106、 根据挑战向量生成数字签名。 0140 本申请的一个实施例中, 根据目标挑战向量, 利用公私钥将目标挑战向量生成数 字签名。 014。
45、1 本申请提出的应用于数字签名的哈希处理方法适用于所有基于标准格且使用 FiatShamir转换所得到的格基数字签名方案, 如: Lyu12, BG14, TESLA, Dilithium的标准格 版本。 0142 综上, 本实施例提供的应用于数字签名的哈希处理方法, 通过将输入字符串压缩 后输入伪随机生成器, 得到伪随机序列, 进一步利用伪随机序列的伪随机性, 在多汉明重量 的集合上进行均匀采样或非均匀采样, 通过在更大的范围之内选择适当的多汉明重量的集 合B, 以及在更大的范围之内选择多汉明重量的集合B上的可高效实现的分布 , 达到在不会 降低签名算法的量子安全强度的前提下, 使得签名算法。
46、的平均循环次数减小的目的, 从而 提高了签名算法效率。 0143 图2为本申请实施例提供的应用于数字签名的哈希处理方法的流程图二。 如图2所 示, 该应用于数字签名的哈希处理方法, 包括如下步骤: 0144 S201、 采用哈希函数将输入字符串压缩为一个定长短字符串。 0145 该步骤与步骤S101相同, 在此不再赘述。 0146 S202、 将定长短字符串输入伪随机生成器, 得到伪随机序列。 0147 该步骤与步骤S102相同, 在此不再赘述。 0148 S203、 根据伪随机序列的伪随机性, 在单汉明重量集合上进行均匀采样, 输出目标 挑战向量。 0149 在本申请的一个实施例中, 根据伪。
47、随机序列的伪随机性, 在单汉明重量集合上进 行均匀采样, 输出目标挑战向量(记为算法C), 具体包括: 0150取定一个置换 0151 取一个s维初始向量c(c1, .cs ., cs), 其中初始向量c的前s 维分量为0, 后 维分量为1, s 1; 0152 依次取i (1), ., ( ), 在初始向量c上执行 轮循环, 其中根据置换 的不同取 说明书 10/15 页 14 CN 115733619 A 14 法, 轮循环的执行顺序是任意的, 具体包括: 0153 对于i (1), ., ( ), 在集合1, ., i+s 中, 根据伪随机序列的伪随机性, 按照均匀分布取值, 并赋值给j。
48、; 0154 将ci+s 的值与cj的值对换; 0155 再依次取m1, ., s, 在变换后的向量c上执行s轮循环, 具体包括: 0156 根据伪随机序列的伪随机性, 均匀随机设定非零元ci的正负号; 0157最终输出目标挑战向量c(c1, ., cs)T, 其中,即c属于单汉明重量集合。 0158 通过实例分析本申请实施例的有益效果如下: 0159 给定参数(s, ), 其中s 1, 则上述算法C输出目标挑战向量c(c1, ., cs)T服 从上的均匀分布 0160证明: 令表示长为s且恰有 个非零元的0, 1向量全体组成的集合, 这个集合中有个元素。 0161对于1, ., 上给定的一个。
49、置换记其对应的 步采样算法为 算法 。 且若算法 与算法 的输出服从相同分布, 简记为算法 算法 。 先证明对于 简化后的算法C2(与算法C相比, 唯一的区别在于没有第二个均匀随机赋正负号的循环), 其 服从上的均匀分布下文引理的证明中所涉及的算法, 也指的是简化后的算法 C2。 0162 下面先证明一个引理。 0163 向后对换引理: 对于1, ., 上的任意一个置换 , 若存在k1, 1, 使得 (k) (即)。 0164令那么, 算法 与算法 的输 出服从相同分布。 0165 因为在前(k1)步与后( k1)步循环中, 两个算法的具体操作完全相同, 下面主 要分析经过第k步和第(k+1)。