哈希游戏- 哈希游戏平台- 哈希游戏官方网站
本发明公开了一种哈希值计算方法,包括构建基于分组粗粒化玻色采样的哈希函数的模型,包括构建生成算法、分组粗粒化玻色采样算法和洗牌算法;输入通过生成算法生成一系列符合玻色采样的输入;将结果分别输入到分组粗粒化玻色采样算法模型中得到一系列最大概率标签;使用洗牌算法对得到的结果进行打乱得到哈希值。本发明还公开了一种包括所述哈希值计算方法的字签名方法。本发明生成了一种基于物理系统的量子特性的密码学单向函数,安全高效地确认了数字签名的准确性和安全性,而且不会受到外界的攻击。
(19)国家知识产权局 (12)发明专利 (10)授权公告号 CN 112926098 B (45)授权公告日 2022.06.17 (21)申请号 3.8 G06F 17/18 (2006.01) G06F 17/16 (2006.01) (22)申请日 2021.03.12 审查员 郭小峰 (65)同一申请的已公布的文献号 申请公布号 CN 112926098 A (43)申请公布日 2021.06.08 (73)专利权人 中南大学 地址 410083 湖南省长沙市岳麓区麓山南 路932号 (72)发明人 石金晶陆玉虎冯艳艳陈淑慧 施荣华 (74)专利代理机构 长沙永星专利商标事务所 (普通合伙) 43001 专利代理师 周咏米中业 (51)Int.Cl. G06F 21/64 (2013.01) 权利要求书3页 说明书8页 附图3页 (54)发明名称 哈希值计算方法及其数字签名方法 (57)摘要 本发明公开了一种哈希值计算方法,包括构 建基于分组粗粒化玻色采样的哈希函数的模型, 包括构建生成算法、分组粗粒化玻色采样算法和 洗牌算法;输入通过生成算法生成一系列符合玻 色采样的输入;将结果分别输入到分组粗粒化玻 色采样算法模型中得到一系列最大概率标签;使 用洗牌算法对得到的结果进行打乱得到哈希值。 本发明还公开了一种包括所述哈希值计算方法 的字签名方法。本发明生成了一种基于物理系统 的量子特性的密码学单向函数,安全高效地确认 了数字签名的准确性和安全性,而且不会受到外 界的攻击。 B 8 9 0 6 2 9 2 1 1 N C CN 112926098 B 权利要求书 1/3页 1.一种数字签名方法,其特征在于包括如下步骤: 1)将要签名的数据转换成二进制值x; 2)将步骤1)得到的二进制值x作为输入数据,输入到哈希值计算方法中,得到最终的哈 希值计算结果; 3)将步骤2)得到的哈希值计算结果作为固定的数字签名,完成最终的数字签名; 其中,所述的哈希值计算方法,包括如下步骤: S1.构建基于分组粗粒化玻色采样的哈希函数的模型,包括构建生成算法g、分组粗粒 化玻色采样算法和洗牌算法G; 所述的分组粗粒化玻色采样算法,具体为求出最大概率标签,最大概率标签μ对应着一 1 种连续粗粒化玻色采样方案,最大概率标签μ对应着一种间隔粗粒化玻色采样方案;其中, 2 μ和μ中的一个被选中为单光子情况下的实际最大概率标签;对于多光子情况,其中最大概 1 2 率标签v是多光子情况下出现的标签;求出最大概率标签包括如下步骤: A.定义将N个不可区分的光子送入M个端口的输入配置和输出配置;具体为将N个不可 区分的光子送入M个端口中,定义输入配置和输出配置为: 输入配置为, 输出配置为, 其中S=s ,s ,...,s 、T=t ,t ,...,t并满足 1 2 M 1 2 M 其中 s 表示输入中占据第m个端口的光子数,t 表示输 m m 出中占据第m个端口的光子数,N为光子的数量,M为端口的数量; B.求测量线性光学网络输出状态的玻色采样概率分布集;具体为测量输出状态
后 得到采样概率分布,该采样概率分布如下所示: 其中 其中T是输出,是输出状态,U为均匀M×M线性光学网络酉矩阵,s 表示输入中占据第m M 个端口的光子数,t 表示输出中占据第M个端口的光子数,N为光子的数量,M为端口的数量, M Per是矩阵积和式; C.将玻色采样概率分布集分组为单光子分布集合和多光子分布集;具体方法为: 根据玻色采样是否在个N端口检测到光子,将玻色采样概率分布集分为单光子分布集 2 2 CN 112926098 B 权利要求书 2/3页 和多光子分布集 其中 D.对单光子分布集和多光子分布集分别进行粗粒化,得到单光子和多光子分布集的最 大概率标签;具体方法为: (1)对于单光子分布集,使用两种粗粒化方式计算单光子分布集的最大概率标签;第一种使 用连续粗粒化玻色采样方案,将单光子分布集 划分为d个不相交的子集 其中, 第j个标签对应的概率表示为 对应的最大概率标签μ满足条件 1 第二种使用间隔粗粒化玻色采样方案,将单光 子分布集 划分为d个不相交的子集 其中, 第j个标签对应的概率表示为 对应的最大概率标签μ满足条件 2 最终,两种方案得到的最大概率标签μ和μ中的 1 2 一个作为单光子最大概率标签μ; (2)对于多光子分布集,使用一种相交的粗粒化方式计算多光子分布集的最大概率标 签;将多光子分布集 划分为M个相交的子集 其中, 第j个标签对应的概率表示为 对应的最大概率标签v满足条件 所述的生成算法g,具体为输入数据x到生成算法g中,生成算法g经过处理后输出若干 1 2 k 0 个数据{x ,x ,…,x };玻色采样的输入x =x时,依次计算 (0) 其中x =x, 0jk,k为算法g迭代次数,初始j=1,N为光子的数量,M为端口的数量,为 3 3 CN 112926098 B 权利要求书 3/3页 输入的配置,求出满足玻色采样的生成算法g, 1 2 k S2.输入数据x到生成算法g中,生成算法g经过处理后输出若干个数据{x ,x ,…,x }; S3.将步骤S2产生的结果分别输入到分组粗粒化玻色采样算法中,得到一系列最大概 (j) 率标签;具体为:给定固定值k,将步骤S2得到的输出x ,作为分组粗粒化玻色采样算法的 输入,将会得到这个输入对应的单光子的最大概率标签 和 以及多光子的最大概率标 j 签v ;重复步骤S3共L次,得到的最大概率标签处理方法如下: a.若L次得到的 都相同,此时 b.若L次得到的 不完全相同且N次得到的 都相同,此时 c.若L次得到的 不完全相同且N次得到的 也不完全相同,此时令j=j‑1,并重新步 骤S2的计算; j j d.若L次得到的v都相同,此时v=v ; j e.若L次得到的v不完全相同,此时v=(μ×j)%M; 1 2 k 1 2 k f.若j=k,则输出{μ,μ,...,μ}和{v ,v ,...,v},否则重复步骤S3; S4.使用洗牌算法G对S3得到的结果进行打乱,得到哈希值;具体为洗牌算法G包括一个 range串和若干个scratch串,range串为分组粗粒化玻色采样的单光子最大概率标签, scratch串为分组粗粒化玻色采样的多光子最大概率标签;步骤S4具体为,根据步骤S3得到 1 2 k 1 2 k 1 2 k 1 的输出{μ,μ,...,μ}和{v ,v ,...,v },令{μ,μ,...,μ}为洗牌算法G的range串,{v , 2 k v ,...,v }为洗牌算法G的scratch串;将range串和scratch串进行打乱;最终得到打乱之后 的数据作为哈希值。 4 4 CN 112926098 B 说明书 1/8页 哈希值计算方法及其数字签名方法 技术领域 [0001] 本发明具体涉及一种哈希值计算方法及其数字签名方法。 背景技术 [0002] 当前社会的发展更加趋向于无纸化办公和数字化办公。无纸化办公对于现在的环 境保护和办公效率的提高都具有重要的作用。在无纸化办公和数字化办公中,为了保证数 据和隐私的安全性,需要频繁进行签名确认。但是,在签名确认这一流程中,容易出现泄漏 签名、被别人代签等问题,因此需要采用数字签名的方法。数字签名是信息的发送者才能产 生的、别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性 的一个有效证明。同时,数字签名也是一种类似写在纸上的、普通的物理签名,同时还是使 用了公钥加密领域的技术来实现的、用于鉴别数字信息的方法。一套数字签名通常定义两 种互补的运算,一个用于签名,另一个用于验证,从而可以真实准确地验证信息。数字签名 是非对称密钥加密技术与数字摘要技术的应用。 [0003] 在现在的加密技术中,哈希函数作为密码学的重要组成部分,在数字签名、密码保 护和密钥共享等多种应用发挥了重要作用。现在经典的哈希函数在安全性方面主要分为两 类,一种基于复杂性理论,一种基于Merkle‑Damgard结构。前者结构安全但效率不高,后者 的哈希函数在实践中得到了广泛的应用,如MD4、MD5、SHA‑0、SHA‑1、SHA‑2、SHA‑3、HAVAL‑ 128和RIPEMD等。然而,上述的哈希函数均可能会受到各种潜在的攻击,产生的密码和函数 不具备单一性和安全性,从而导致数据的泄露或盗取的问题。 发明内容 [0004] 本发明的目的之一在于提供一种哈希值计算方法,该方法通过将玻色采样的输出 分布分组粗粒化,然后生成哈希值,而且安全准确,可靠性高。 [0005] 本发明的目的之二在于提供一种基于所述哈希值计算方法的数字签名方法,将哈 希值作为高效准确的数字签名。 [0006] 本发明提供的这种哈希值计算方法,包括如下步骤: [0007] S1.构建基于分组粗粒化玻色采样的哈希函数的模型,包括构建生成算法g、分组 粗粒化玻色采样算法和洗牌算法G; [0008] 1 2 S2.输入数据x到生成算法g中,生成算法g经过处理后输出若干个数据{x ,x ,…, k x }; [0009] S3.将步骤S2产生的结果分别输入到分组粗粒化玻色采样算法中,得到一系列最 大概率标签; [0010] S4.使用洗牌算法G对S3得到的结果进行打乱,得到哈希值。 [0011] 步骤S1所述的分组粗粒化玻色采样算法,具体为求出最大概率标签,对于单光子 情况,最大概率标签μ对应着一种连续粗粒化玻色采样方案,最大概率标签μ对应着一种间 1 2 隔粗粒化玻色采样方案,μ和μ中的一个被选中为单光子情况下的实际最大概率标签;对于 1 2 5 5 CN 112926098 B 说明书 2/8页 多光子情况,其中最大概率标签v是多光子情况下出现的标签。 [0012] 求出最大概率标签包括如下步骤: [0013] A.定义将N个不可区分的光子送入M个端口的输入配置和输出配置; [0014] B.求测量线性光学网络输出状态的玻色采样概率分布集; [0015] C.将玻色采样概率分布集分组为单光子分布集合多光子分布集。 [0016] D.对单光子分布集和多光子分布集分别进行粗粒化,得到单光子和多光子分布集 的最大概率标签。 [0017] 步骤A所述的定义将N个无区分的光子送入M个端口的输入配置和输出配置,具体 为将N个不可区分的光子送入M个端口中,定义输入配置和输出配置为: [0018] 输入配置为, [0019] 输出配置为, [0020] 其中S=s ,s ,...,s 、T=t ,t ,...,t并满足 1 2 M 1 2 M [0021] 其中 s 表示输入中占据第m个端口的光子数,t 表 m m 示输出中占据第m个端口的光子数,N为光子的数量,M为端口的数量。 [0022] 步骤B所述的求测量线性光学网络输出状态的玻色采样概率分布集,具体为测量 输出状态
后得到采样概率分布,该采样概率分布如下所示: [0023] [0024] 其中 [0025] 其中T是输出,是输出状态,U为均匀M×M线性光学网络酉矩阵,s 表示输入中占 M 据第m个端口的光子数,t 表示输出中占据第M个端口的光子数,N为光子的数量,M为端口的 M 数量,Per是矩阵积和式。 [0026] 步骤C所述的将玻色采样概率分布集分组为单光子分布集合多光子分布集,具体 方法为: [0027] (1)根据玻色采样是否在个N端口检测到光子,将玻色采样概率分布集分为单光子 分布集 和多光子分布集 其中 [0028] (2)对于单光子分布集,使用两种粗粒化方式计算单光子分布集的最大概率标签。 第一种使用连续粗粒化玻色采样方案,将单光子分布集 划分为d个不相交的子集 6 6 CN 112926098 B 说明书 3/8页 其中, (图3),第j个标签对应 的概率表示为 对应的最大概率标签μ满足条件 1 第二种使用间隔粗粒化玻色采样方案,将单光 子分布集 划分为d个不相交的子集 其中, (图4),第j个标签对应的概率表示为 对应的最大概率标签μ满足条件 2 最终,两种方案得到的最大概率标签μ和μ中 1 2 的一个作为单光子最大概率标签μ。 [0029] 对于多光子分布集,使用一种相交的粗粒化方式计算多光子分布集的最大概率标 签。将多光子分布集 划分为M个相交的子集 其中, 第j个标签对应的概率表示为 对应的最大概率标签v满足条件 [0030] 步骤S1所述的生成算法g,具体为输入数据x到生成算法g中,生成算法g经过处理 1 2 k 0 后输出若干个数据{x ,x ,...,x};玻色采样的输入x =x时,依次计算 [0031] (0) 其中x =x, k为算法g迭代次数,初始j=1,N为光子的数量,M为端口的数量, 为输入的配置,求出满足玻色采样的生成算法g, [0032] 步骤S3所述的将步骤S2产生的结果分别输入到分组粗粒化玻色采样算法中,得到 (j) 一系列最大概率标签,具体为:给定固定值k,将步骤S2得到的输出x ,作为分组粗粒化玻 色采样算法的输入,将会得到这个输入对应的单光子的最大概率标签 和 以及多光子 j 的最大概率标签v ;重复步骤S3共L次,得到的最大概率标签处理方法如下: [0033] a.若L次得到的 都相同,此时 [0034] b.若L次得到的 不完全相同且N次得到的 都相同,此时 [0035] c.若L次得到的 不完全相同且N次得到的 也不完全相同,此时令j=j‑1,并重 新步骤S2的计算; 7 7 CN 112926098 B 说明书 4/8页 [0036] j j d.若L次得到的v都相同,此时v=v ; [0037] j e.若L次得到的v不完全相同,此时v=(μ×j)%M; [0038] 1 2 k 1 2 k f.若j=k,则输出{μ,μ,...,μ}和{v ,v ,...,v},否则重复步骤S3。 [0039] 步骤S4使用洗牌算法G对步骤S3得到的结果进行打乱,将得到的哈希值作为数字 签名,具体为洗牌算法G包括一个range串和若干个scratch串,range串为分组粗粒化玻色 采样的单光子最大概率标签,scratch串为分组粗粒化玻色采样的多光子最大概率标签;步 1 2 k 1 2 k 1 2 k 骤S4具体为,根据步骤S3得到的输出{μ,μ,...,μ}和{v ,v ,...,v },令{μ,μ,...,μ}为 1 2 k 洗牌算法G的range串,{v ,v ,...,v }为洗牌算法G的scratch串;将range串和scratch串进 行打乱,range串为分组粗粒化玻色采样的单光子最大概率标签,scratch串为分组粗粒化 玻色采样的多光子最大概率标签;最终得到打乱之后的数据作为哈希值。 [0040] 一种基于上述哈希值计算方法的数字签名方法,包括如下步骤: [0041] 1)将要签名的数据转换成二进制值x; [0042] 2)将步骤1)得到的二进制值x作为输入数据,输入到上述哈希值计算方法中,得到 最终的哈希值计算结果; [0043] 3)将步骤2)得到的哈希值计算结果作为固定的数字签名,完成最终的数字签名。 [0044] 本发明提供的这种哈希值计算方法及其数字签名方法,生成了一种基于物理系统 的量子特性的密码学单向函数,安全高效地确认了数字签名的准确性和安全性,而且不会 受到外界的攻击。 附图说明 [0045] 图1为本发明的哈希值计算方法流程示意图。 [0046] 图2为本发明的基于分组粗粒化玻色采样的哈希函数的模型结构示意图。 [0047] 图3为本发明的一种连续粗粒化玻色采样方案示意图。 [0048] 图4为本发明的一种间隔粗粒化玻色采样方案示意图。 [0049] 图5为本发明的基于所述哈希值计算方法的数字签名方法流程示意图。 具体实施方式 [0050] 如图1为本发明的哈希值计算方法流程示意图。一种基于分组粗粒化玻色采样的 哈希函数及其数字签名方法,该方法包括如下步骤: [0051] S1.构建基于分组粗粒化玻色采样的哈希函数的模型,包括构建生成算法g、分组 粗粒化玻色采样算法和洗牌算法G; [0052] 1 2 S2.输入数据x到生成算法g中,生成算法g经过处理后输出若干个数据{x ,x ,…, k x }; [0053] S3.将S2步骤产生的结果分别输入到分组粗粒化玻色采样算法中,得到一系列最 大概率标签; [0054] S4.使用洗牌算法G对S3得到的结果进行打乱,得到哈希值。 [0055] 如图2为本发明的基于分组粗粒化玻色采样的哈希函数的模型结构示意图。哈希 值计算方法包括生成算法g、玻色采样方法、分组粗粒化方法和洗牌算法G。输入数据x到生 1 2 k 成算法g中,生成算法g经过处理后输出若干个数据{x ,x ,…,x },输出的若干个数据依次 8 8 CN 112926098 B 说明书 5/8页 经过玻色采样和分组粗粒化后输出数据 和 输出的 数据经过洗牌算法G后生成最后的哈希值y,哈希值作为最后的数字签名数据。 [0056] 如图3为本发明的一种连续粗粒化玻色采样方案示意图。图3的分布是一个标签的 连续分布,标签bin0、标签bin1和标签bin2均为连续分布。 [0057] 如图4为本发明的一种间隔粗粒化玻色采样方案示意图。一种间隔粗粒化玻色采 样方案,具体为每d分配给一个标签bin0、标签bin1或标签bin2,d为概率分成的个数;一个 简单的粗粒化方法是将概率分为d个不相干子集 其中 为标签, [0058] 步骤S1所述的分组粗粒化玻色采样算法,包括如下步骤: [0059] A.定义将N个不可区分的光子送入M个端口的输入和输出; [0060] B.求测量输出状态时的玻色采样概率分布集; [0061] C.将玻色采样概率分布集分组为单光子分布集合多光子分布集; [0062] D.对单光子分布集和多光子分布集分别进行粗粒化,得到单光子和多光子分布集 的最大概率标签。 [0063] 进一步地,步骤A所述的定义将N个无区分的光子送入M个端口的输入和输出,具体 为将N个无区分的光子送入M个端口中,玻色采样作为提出的哈希函数的关键步骤,关系到 算法的性能。考虑在非稀释条件下的玻色采样,在合理的复杂性理论假设下,模拟输出端的 光子分布样本对于经典计算机来说是很难计算的。那么定义输入和输出为:S=s , 1 s ,...,s 、T=t ,t ,...,t,并满足 2 M 1 2 M [0064] 其中 s 表示输入中占据第m个端口的光子数,t 表 m m 示输出中占据第m个端口的光子数,N为光子的数量,M为端口的数量。需要注意的是,由于玻 色采样的输入是单光子Fock态,那么s 的范围是0或1。 m [0065] 因此,输入的配置为, [0066] 输出的配置为, [0067] 为了模拟玻色采样,将线性光学网络描述为一个均匀(Haar)的M×M的酉矩阵U。对 于给定的S,输出状态为 [0068] [0069] 因此,步骤B所述的求测量线性光学网络输出状态的玻色采样概率分布集,具体为 测量输出状态
后得到采样概率分布,该概率分布如下所示: 9 9 CN 112926098 B 说明书 6/8页 [0070] [0071] 其中T是输出,是输出状态,U为均匀M×M线性光学网络酉矩阵,s 表示输入的光 M 子数占据第m个端口,t 表示输出的光子数占据第M个端口,N为光子的数量,M为端口的数 M 量,Per是矩阵积和式。 [0072] 进一步地,步骤C所述的将玻色采样概率分布集分组为单光子分布集合多光子分 布集,具体方法为: [0073] 对玻色采样概率分布集分成两种类型, 其中 是单光 子Fock态的情况, 是多光子Fock态的情况;在分组粗粒化玻色采样中, 单光子和多光子的区分并不是光子探测器检测到了多少光子,而是是否在N个端口中检测 到了光子。单光子情况下占据N个不同端口,而多光子情况下占据的端口模式数小于N,N为 光子的数量。因此,不需要检测一个端口中有多少光子,而是用光子探测器测量每个t 在玻 i 色采样中是否为零或非零。 [0074] 步骤D所述的对单光子分布集和多光子分布集分别进行粗粒化,得到单光子和多 光子分布集的最大概率标签,具体方法为: [0075] 粗粒化玻色采样作为提出的哈希函数的关键步骤,必须具有不可逆的特性,即给 定线性光学网络酉矩阵U和最大概率标签μ,如果要计算输入配置S,有两个难点解决。首 先,输出状态
的计算依赖于计算积和式Per(S,T),已知计算积和式是#P‑完全问题, 难以计算。那么在给定输出配置T和线性光学网络酉矩阵U的情况下,无法计算输入配置。 第二,最大概率标签μ是最可能的粗粒化分布,那么用最大概率标签μ来反推输出配置T比 较困难。然而,玻色采样的实验依赖于大规模的采样次数,多光子输出的检测比较困难。为 了减少样本量和利用多光子的情况,因此采用了分组粗粒化玻色采样。 [0076] (1)对于单光子分布集,使用两种粗粒化方式计算单光子分布集的最大概率标签。 第一种使用连续粗粒化玻色采样方案,将单光子分布集 划分为d个不相交的子集 其中, (图3),第j个标签对应 的概率表示为 对应的最大概率标签μ满足条件 1 第二种使用间隔粗粒化玻色采样方案,将单光 子分布集 划分为d个不相交的子集 其中, (图4),第j个标签对应的概率表示为 对应的最大概率标签μ满足条件 2 最终,两种方案得到的最大概率标签μ和μ中 1 2 10 10 CN 112926098 B 说明书 7/8页 的一个作为单光子最大概率标签μ。 [0077] (2)对于多光子分布集,使用一种相交的粗粒化方式计算多光子分布集的最大概 率标签。将多光子分布集 划分为M个相交的子集 其中, 第j个标签对应的概率表示为 对应的最大概率标签v满足条件 [0078] 需要注意的是,μ和v是最大概率标签的理论值,在实验中,如果两个或两个以上的 标签的概率差距较小,而其中一个是真正的最大概率标签,那么最大概率标签是不确定的。 [0079] 步骤S1所述的洗牌算法G,具体为使用Fisher‑yates shuffle(FYS)算法进行洗 牌,洗牌算法G包括一个range串和若干个scratch串,每次从range串中取出第scratch串, 直到所有的range串取完为止;在经典洗牌算法中,scratch是随机生成的;但是在本算法 中,range串为分组粗粒化玻色采样的单光子最大概率标签,scratch串为分组粗粒化玻色 采样的多光子最大概率标签。 [0080] 步骤S1所述的生成算法g,具体为输入数据x到生成算法g中,生成算法g经过处理 1 2 k 0 后输出若干个数据{x ,x ,…,x };玻色采样的输入x =x时,依次计算 (0) 其中x =x, k为算法g迭代次数,初始j=1,N为光子的数量,M为端口的数量, 为输入的配置,求出满足玻色采样的生成算法g, [0081] 步骤S3所述的将步骤S2产生的结果分别输入到分组粗粒化玻色采样算法中,得到 (j) 一系列最大概率标签,具体为:给定固定值k,将S2步骤得到的输出x ,作为分组粗粒化玻 色采样算法的输入,将会得到这个输入对应的单光子的最大概率标签 和 以及多光子 j 的最大概率标签v ;重复S3步骤L次,由于玻色采样过程中的采样的误差,得到的每次得到 的最大概率标签不完全一样,处理方法如下: [0082] a.若L次得到的 都相同,此时 [0083] b.若L次得到的 不完全相同且N次得到的 都相同,此时 [0084] c.若L次得到的 不完全相同且N次得到的 也不完全相同,此时令j=j‑1,重新 步骤S2计算; [0085] j j d.若L次得到的v都相同,此时v=v ; [0086] j e.若L次得到的v不完全相同,此时v=(μ×j)%M; [0087] 1 2 k 1 2 k f.若j=k,则输出{μ,μ,...,μ}和{v ,v ,...,v},否则重复步骤S3。 [0088] 步骤S4使用洗牌算法G对步骤S3得到的结果进行打乱,将得到的哈希值作为数字 11 11 CN 112926098 B 说明书 8/8页 1 2 k 1 2 k 1 2 k 签名,具体为,根据步骤S3得到的输出{μ,μ,...,μ}和{v ,v ,...,v },{μ,μ,...,μ}为 1 2 k 洗牌算法G的range串,{v ,v ,...,v }为洗牌算法G的scratch串;将range串和scratch串进 行打乱,range串为分组粗粒化玻色采样的单光子最大概率标签,scratch串为分组粗粒化 玻色采样的多光子最大概率标签;最终得到打乱之后的数据作为哈希值; [0089] 如图5为本发明的基于所述哈希值计算方法的数字签名方法流程示意图。该方法 包括如下步骤: [0090] 1)将要签名的数据转换成二进制值x; [0091] 2)构建基于分组粗粒化玻色采样的哈希函数的模型:包括生成算法g、分组粗粒化 玻色采样算法和洗牌算法G; [0092] 3)将x通过生成算法g生成一系列符合玻色采样的输入; [0093] 4)将步骤3)产生的结果分别输入到分组粗粒化玻色采样算法中,得到一系列最大 概率标签; [0094] 5)使用洗牌算法G对步骤4)得到的结果进行打乱,其中得到的哈希值则为固定的 数字签名。 [0095] 同时,本哈希值计算方法可以应用到除数字签名领域的密码学的其他领域,用于 给数据加密。 12 12 CN 112926098 B 说明书附图 1/3页 图1 13 13 CN 112926098 B 说明书附图 2/3页 图2 图3 图4 14 14 CN 112926098 B 说明书附图 3/3页 图5 15 15