应用于数字签名的哈希处理方法、装置、设备及存储介质制造方法及图纸

技术编号:36747531 阅读:12 留言:0更新日期:2023-03-04 10:31
本申请提供一种应用于数字签名的哈希处理方法、装置、设备及存储介质。涉及信息安全技术领域。该方法包括:采用哈希函数将输入字符串压缩为一个定长短字符串;将定长短字符串输入伪随机生成器,得到伪随机序列;对单汉明重量集合进行扩展,得到多汉明重量集合;根据伪随机序列的伪随机性,在多汉明重量集合上均匀采样,输出目标挑战向量;或者,根据伪随机序列的伪随机性,在多汉明重量集合上非均匀采样,输出目标挑战向量;根据目标挑战向量生成数字签名。通过得到并利用伪随机序列的伪随机性,在多汉明重量的集合上进行均匀采样或非均匀采样,在不会降低签名算法的量子安全强度的前提下,使签名算法的平均循环次数减小,提高了签名算法效率。签名算法效率。签名算法效率。

【技术实现步骤摘要】
应用于数字签名的哈希处理方法、装置、设备及存储介质


[0001]本申请涉信息安全
,尤其涉及一种应用于数字签名的哈希处理方法、装置、设备及存储介质。

技术介绍

[0002]随着量子计算技术的不断发展,需要设计能够抵御量子攻击的密码技术。其中,基于格理论的密码技术(简称,格基密码技术),越来越受到广泛关注。特别地,标准格(Standard Lattice)是具有最一般化代数结构的格,基于标准格的密码技术较其他类别的格基密码技术往往更为安全,因此受到广泛关注。而,数字签名是密码技术的重要组成元件,是保障网络信息安全的重要手段,对数字签名技术的安全性和算法效率进行研究具有重要意义。
[0003]当前,可以通过多种范式设计基于格理论的数字签名技术。目前,所有的基于标准格且使用Fiat

Shamir转换设计范式的数字签名技术中,所有的签名算法中都会使用到一个哈希模块的哈希处理,以实现从{0,1}

到某个事先指定的有限集合上的映射;称它的输出为挑战(Challenge),常用c来表示;当将哈希模块的输入视为随机变量时,用χ表示随机变量c所服从的集合B上的分布。一般而言,该哈希模块的实现包括两个阶段:首先,使用某个哈希函数(如:SHA3

256,SHA3

384),将输入字符串压缩为一个定长的短字符串(称为种子);然后,将该种子作为伪随机生成器(Pseudorandom Generator,PRG)的输入,据此在集合B上按均匀分布进行采样并输出。
[0004]在量子安全方面,为了达到理想的量子安全强度,随机分布的熵不能太小;然而若的熵增大,则哈希模块的哈希处理过程中,签名算法的平均循环次数有增大的可能,使得签名算法的效率变低。
[0005]因此,亟需一种在保证签名算法的量子安全强度不变的前提下,如何提高签名算法效率的数字签名的处理方法。

技术实现思路

[0006]本申请提供一种应用于数字签名的哈希处理方法、装置、设备及存储介质,用以在不降低签名算法的量子安全强度的前提下,达到提高签名算法效率的目的。
[0007]第一方面,本申请提供一种应用于数字签名的哈希处理方法,包括:
[0008]采用哈希函数将输入字符串压缩为一个定长短字符串;
[0009]将所述定长短字符串输入伪随机生成器,得到伪随机序列;
[0010]对单汉明重量集合进行扩展,得到多汉明重量集合;
[0011]根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行均匀采样,输出挑战向量;或者,根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行非均匀采样,输出挑战向量;
[0012]根据所述挑战向量生成数字签名。
[0013]第二方面,本申请提供一种应用于数字签名的哈希处理装置,包括:
[0014]压缩模块,用于采用哈希函数将输入字符串压缩为一个定长短字符串;
[0015]输入模块,用于将所述定长短字符串输入伪随机生成器,得到伪随机序列;
[0016]扩展模块,用于对单汉明重量集合进行扩展,得到多汉明重量集合;
[0017]均匀采样模块,用于根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行均匀采样,输出挑战向量;或者,
[0018]非均匀采样模块,用于根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行非均匀采样,输出挑战向量;
[0019]生成模块,用于根据所述挑战向量生成数字签名。
[0020]本申请提供的应用于数字签名的哈希处理方法、装置、设备及存储介质,通过将输入字符串压缩后输入伪随机生成器,得到伪随机序列,进一步利用伪随机序列的伪随机性,在多汉明重量的集合上进行均匀采样或非均匀采样,通过在更大的范围之内选择适当的多汉明重量的集合B,以及在更大的范围之内选择多汉明重量的集合B上的可高效实现的分布χ,达到在不会降低签名算法的量子安全强度的前提下,使得签名算法的平均循环次数减小,从而提高了签名算法效率。
附图说明
[0021]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0022]图1为本申请实施例提供的应用于数字签名的哈希处理方法的流程图一;
[0023]图2为本申请实施例提供的应用于数字签名的哈希处理方法的流程图二;
[0024]图3为本申请实施例提供的应用于数字签名的哈希处理装置的结构示意图;
[0025]图4为本申请实施例提供的电子设备的结构示意图。
[0026]通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
[0027]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0028]术语解释:
[0029]熵(Entropy):对于任意一个(离散的)随机变量X,它的熵定义如下:
[0030]H(X)=


x
Pr(x)log
2 Pr(x),
[0031]其中Pr(x)表示X的概率质量函数(Probability Mass Function)。
[0032]q:令q表示一个奇素数(q≥3)。
[0033]环定义为模q剩余类环,取定代表元为
[0034]对于定义上的绝对值:
[0035][0036]向量c:令为一个定义在上的k维列向量,其中(c1,...,c
k
)
T
表示行向量(c1,...,c
k
)的转置。
[0037]矩阵A:令A表示一个每个分量都在中的矩阵。
[0038]汉明重量(Hamming Weight):中元素c=(c1,...,c
k
)
T
(其中(其中)的汉明重量定义为
[0039]无穷范数:同上,中元素c=(c1,...,c
k
)
T
的无穷范数定义为||c||

=max
i
|c
i
|。
[0040]哈希模块(Hash Module):基于Fiat

Shamir转换的数字签名方案的签名算法中的一个组成部分。实现从{0,1}

到某个事先指定的有限集合上的映射;它的输出被称为挑战(Challenge),常用向量c来表示;当将c视为(被哈希模块输入所决本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于数字签名的哈希处理方法,其特征在于,包括:采用哈希函数将输入字符串压缩为一个定长短字符串;将所述定长短字符串输入伪随机生成器,得到伪随机序列;对单汉明重量集合进行扩展,得到多汉明重量集合;根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行均匀采样,输出目标挑战向量;或者,根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行非均匀采样,输出目标挑战向量;根据所述目标挑战向量生成数字签名。2.根据权利要求1所述的方法,其特征在于,所述对单汉明重量集合进行扩展,得到多汉明重量集合,包括:将单汉明重量集合进行扩展,得到多汉明重量集合;其中,所述单汉明重量集合表示为:表示长为k且恰有τ个非零元的{0,
±
1}向量所组成的集合;所述多汉明重量集合表示为:B,为汉明重量集合的并集,表示为式中,k>τ>t≥1。3.根据权利要求2所述的方法,其特征在于,所述根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行均匀采样,输出目标挑战向量,包括:取定集合{τ

t,...,τ}上的概率分布将概率分布赋值给预设的汉明重量i,使得预设的汉明重量i的取值满足如下公式:式中,k,τ和t是预定义值,τ

t是最小汉明重量,τ是最大汉明重量,满足k>τ>t≥1;表示预设汉明重量为i的概率,其中τ

t≤i≤τ,初始化一个前k

i个分量为0、后i个分量为1的k维向量(c1,...,c
k

i
,c
k

i+1
,...,c
k
)
T
=(0,...,0,1,...1)
T
,对c
m
=c
k

i+1
,...,c
k
依次执行如下循环操作:根据所述伪随机序列的伪随机性,均匀随机给c
m
赋正负号,并均匀随机在对应集合{c1,...,c
m
}}中取c
j
,将c
j
与c
m
交换;最终输出目标挑战向量c=(c1,...,c
k
)
T
,其中,即c属于多汉明重量集合。4.根据权利要求2所述的方法,其特征在于,所述根据所述伪随机序列的伪随机性,在所述多汉明重量集合上进行均匀采样,输出目标挑战向量,包括:在每个长为t、汉明重量为h的{0,
±
}列向量集合中,分别取定一个向量x
h
=(x1,x2,...,x
t
)
T
作为代表元;根据所述伪随机序列的伪随机性,均匀随机取一个恰有τ个非零向量的(k+t)维{0,
±
1}向量c=(c1,...,c
k+t
)
T
;将所述向量c=(c1,...,c
k+t
)
T
按照t元集所对应的位置拆分为t维向量x

和k维向量c

,其中x

=(x
′1,x
′2,...,x

t
)
T
,c

=(c1′
,...,c
k

)
T
,具体的,从(c1,...,c
k+t
)
T
中取指标在I中的t个元素,按原来顺序排成向量x

,而指标不在I中的剩下k个元素,按原来顺序排成向量c

;根据t维向量x

的汉明重量h,判断t维向量x

与所述代表元x
h
是否相等;若不相等,则从头开始,重新根据所述伪随机序列的伪随机性,均匀随机取一个恰有τ个非零向量的(k+t)维{0,
±
1}向量c=(c1,...,c
k+t
)
T
...

【专利技术属性】
技术研发人员:潘源盛金易何笑鸥巩博儒吴磊
申请(专利权)人:建信金融科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1