本发明涉及抗量子密码和量子密码,具体涉及基于量子随机数和抗量子数字签名算法的身份验证方法及应用,本发明主要应用于验证区块链中的用户身份。
背景技术:
1、随着量子计算的不断发展,传统计算机无法解决的数学问题有可能在短时间内被量子计算机解决,因此传统的数字签名算法在量子计算机的攻击下面临严峻的安全性挑战。sphincs+算法是一种基于哈希函数和merkle树结构的无状态的抗量子数字签名算法,通过使用哈希函数对信息进行处理,并使用私钥对哈希值进行签名,从而生成数字签名,以保护通信和数据在量子计算的攻击手段下的完整性和认证性。与此同时,量子随机数是基于量子理论生成的真随机数,能够抵抗潜在的量子攻击。结合量子随机数和抗量子数字签名算法设计新型身份验证方法,能够进一步提高身份验证在后量子的攻击手段下的安全性。
2、基于背景同时基于杭州电子科技大学启动基金(kys275623071)及浙江省自然科学基金探索青年项目(q24a050008)。发明人设计了一种基于量子随机数和抗量子数字签名算法的身份验证方法,主要应用于验证区块链中的用户身份,以确保只有合法的用户才能参与到区块链网络中。
技术实现思路
1、本发明的目的是针对后量子攻击下现有密码协议的不足,设计一种基于量子随机数和抗量子数字签名算法的身份验证方法,具体包括签名阶段与验证阶段;
2、所述的签名阶段实现如下:
3、利用量子随机数生成器件随机生成多个私钥池;
4、将每个私钥池中的每个私钥元素分别经过哈希函数,得到每个私钥池对应的公钥池;
5、身份信息经过哈希函数后输出并均匀分块,对每个分块标记下标,每个分块输出的下标和值用于挑选私钥池中私钥元素,并将所有私钥池中挑选出的所有私钥元素,作为身份信息的签名;
6、将验证阶段所需身份信息、公钥池、签名公布;
7、所述的验证阶段实现如下:
8、接收需要验证的身份信息、公钥池、签名;
9、将身份信息经过哈希函数得到输出并分块,每块输出的下标和值用于挑选公钥池中元素,产生公钥;
10、身份信息经过哈希函数后输出并均匀分块,对每个分块标记下标,每个分块输出的下标和值用于挑选公钥池中的公钥元素,并将所有公钥池中挑选出的所有公钥元素作为公钥集合ⅰ;
11、将签名中的每个私钥元素分别经过哈希函数得到相应公钥元素,组成公钥集合ⅱ;
12、将签名得到的公钥集合ⅱ与公钥集合ⅰ中的公钥元素按顺序进行逐一对比,如果全部相等则验证为真,否则为假。
13、一种身份验证设备,该设备内置有一种基于量子随机数和抗量子数字签名算法的身份验证方法。
14、本发明有益效果如下:
15、本发明中,哈希函数被广泛应用于生成签名和验证签名的过程中。哈希函数的特点是将任意长度的输入数据映射为固定长度的输出,且输出的结果是不可逆的。因为量子计算机在短时间内无法破解哈希函数的不可逆性,这使得本发明能够抵抗量子计算机的攻击。
16、本发明中使用了merkle树结构来存储公钥和签名的信息。merkle树是一种二叉树结构,通过将数据分块并对每个块进行哈希运算,然后将哈希值逐层组合生成树状结构。这种结构使得验证签名的过程可以高效地进行,同时也增加了攻击者破解签名的难度。
17、本发明使用了一种无状态的哈希数字签名算法,不需要保存任何状态信息。这意味着签名和验证过程中不需要存储任何中间结果,从而减少了存储开销。
18、本发明使用了一种称为fors(full domain hash)的技术,可以在较短的时间内生成和验证签名。
19、本发明签名长度可以根据需求进行调节。通过调整参数,可以在安全性和签名长度之间进行权衡,以满足不同应用场景的需求。
20、本发明采用了一些抗量子攻击的技术,可以防止攻击者通过后量子攻击手段分析签名和验证过程中的侧信道信息来获取秘密密钥。
21、本发明结合量子随机数和抗量子的数字签名算法,可以防止攻击者通过量子攻击手段对私钥池进行分析来获取身份信息。
1.基于量子随机数和抗量子数字签名算法的身份验证方法,具体包括签名阶段与验证阶段,其特征在于,
2.根据权利要求1所述的基于量子随机数和抗量子数字签名算法的身份验证方法,其特征在于量子随机数生成器件随机生成k个私钥池,每个私钥池包含t个长度为l的私钥元素,私钥池
3.根据权利要求2所述的基于量子随机数和抗量子数字签名算法的身份验证方法,其特征在于每个私钥池中的每个私钥元素分别通过哈希函数,得到对应的公钥池
4.根据权利要求3所述的基于量子随机数和抗量子数字签名算法的身份验证方法,其特征在于身份信息m经过哈希函数得到输出h=hash(m),并将输出h均分为k个分块(h1,h2,……,hk),其中每个分块的值可表示0到t-1之间的数,选出对应私钥池中对应的私钥元素作为签名(s'1,s'2,……,s'k)。
5.根据权利要求4所述的基于量子随机数和抗量子数字签名算法的身份验证方法,其特征在于输出h的分块hi下标决定对应第i个私钥池,输出h的分块hi的值b决定对应第i个私钥池中的第b+1私钥元素。
6.根据权利要求1所述的基于量子随机数和抗量子数字签名算法的身份验证方法,其特征在于验证阶段需要对接收的身份信息m经过哈希函数得到输出h=hash(m),并将输出h均分为k个分块(h1,h2,……,hk),其中每个分块的值可表示0到t-1之间的数。
7.根据权利要求6所述的基于量子随机数和抗量子数字签名算法的身份验证方法,其特征在于输出h的分块hi的下标决定对应第i个公钥池,输出h的分块hi的值b决定对应第i个公钥池中的第b+1公钥元素;从接收的公钥池中找出对应公钥元素的公钥集合。
8.一种身份验证设备,其特征在于该设备内置有一种如权利要求1-7所述的基于量子随机数和抗量子数字签名算法的身份验证方法。