(一)技术领域
消息摘要方法(也称为单向散列算法或杂凑算法,英文拼写为hash)属于密码技术和计算机技术领域,是数字签名、身份认证、电子商务、电子金融、电子政务的核心技术之一。
(二)
背景技术:
数字签名是身份认证技术的基础。目前,常用的数字签名方案有rsa、elgamal和ecc等,其中,ecc是elgamal方案在椭圆曲线上的模拟实现。
对一个消息(message)进行数字签名时,为了提高签名速度,人们往往用256个比特以下的消息摘要(messagedigest,md)来取代消息。消息摘要应该能够唯一地代表该消息(相当于该消息的比特指纹),并且,对于任意两个不同的消息,消息摘要几乎是不同的。这对消息摘要提取方法提出了很高要求。
目前,普遍使用的消息摘要提取方法有md5、sha-1、sha-256等(参见《应用密码学》,美国bruceschneier著,吴世忠、祝世雄等译,机械工业出版社,2000年01月,第307-320页)。这些方法均是外国人发明的。
md5、sha-1、sha-256等摘要提取方法均不能抗生日攻击,这限制了它们的使用场合。随着指数级安全的轻量级数字签名方案的出现,我们需要设计与之配套的抗生日攻击的消息摘要提取方法。
(三)
技术实现要素:
本发明用于消息摘要的提取,它是数字签名技术的基础,可广泛应用于身份认证、病毒程序防范、钓鱼网站防范、票据防伪、证书防伪、食品药品防伪等方面。
本发明希望我们国家在消息摘要提取方法(即单向散列方法)领域能够拥有自己的核心技术,以确保国家的网络信息安全、金融安全和经济安全。
本节内容略去了对有关性质和结论的证明,如果需要补上,我们将呈交。
注意:在本文中,序列{a1,...,an}有时简写成{ai},序列{c1,...,cn}有时简写成{ci},杠杆函数
贯穿全文,“xy”代表某两个数的乘法运算,“mod”代表模运算,“←”代表把右边表达式值赋给左边的变量,“≡”表示模等于,
3.1几个基本概念
3.1.1互素序列的定义与性质
定义1:假设a1,...,an>1是n个两两不同的整数,且
性质1:如果从{a1,...,an}中随机选取m∈[1,n]个元素,构造一个子序列(即一个有序子集){ax1,...,axm},那么,子集积
被唯一地确定,即从g到{ax1,...,axm}的映射是一对一的。
证明略。
3.1.2杠杆函数
定义2:对于一个模数为m的非对称密码方案或消息摘要提取方案,钥匙变换式中的秘密参数
①
②i和
③当试图从公开信息提取私有信息时,任何敌手不得不考虑ω中元素的所有排列;
④当从密文恢复明文时,私有信息的拥有者只需考虑ω中元素的累加和。
显然,
性质2(
①当
②当
满足
证明略。
3.1.3比特影子
设消息的二进制表示为b1...bn,其长度为n个比特。
定义3:令b1...bn≠0是一比特串,按以下规则生成的
例如,若b1...b12=010000101110,则
不难理解,有
性质3:令{a1,...,an}为一个互素序列,
证明略。
3.1.4比特长影子
定义4:令
根据定义4,不难理解对于每个
例如,令b1...b8=01010100,则
性质4:令
3.1.5非范子集积难题
设b1...bn为一个消息,{c1,...,cn}为一个非互素序列。
定义5:给定{c1,...,cn}和
性质5:aspp在计算难度上至少等价于同一素域中的离散对数难题(dlp)。
证明略。
需要进一步说明的是,目前,人们还没有找到aspp的亚指数时间解。
3.2本发明的技术方案
本发明是一种基于非范子集积难题的消息摘要提取方法,简称juna+单向散列方法。消息摘要类似于消息的比特指纹,被用于数字签名体制中。
由于该方法可以把比特长度不大于4096的消息转化为比特长度在80至232之间的消息摘要,因此,它被说成是轻量级的。
消息摘要提取方法(即单向散列方法)一般需要满足下面几个性质:
①单向性:给定消息
②弱无碰撞性:给定消息
③强无碰撞性:要寻找任意两个不同的消息
有时,第③个性质对于用户来说是可选的。
根据该方法,可制造初值生成芯片和消息摘要提取芯片,或者开发初值生成软件和消息摘要提取软件等。因此,本发明是一种制造消息摘要提取产品所必须遵循的基本原理与技术方案,而不是物理产品本身。
本技术方案,由初值生成和消息摘要提取等两部分组成。
3.2.1参数说明
设n为消息b1...bn的比特长度,m为消息摘要
令λ和ω是两个正整数集合。它们的长度范围分别为
ca(certificateauthority)中心代表第三方权威机构,它负责生成有关消息摘要提取方法的初值,且私有值不对外公布。
3.2.2初值生成部分
初值生成部分供ca中心使用,可以仅用一次,用来产生一个非互素序列,其实现方法是:
输入:模数或消息摘要的比特长度m附带80≤m≤232,
序列的长度n附带80≤m≤n≤4096,
最大素数
集合ω的长度
(1)令集合
随机产生互素序列{a1,...,an}且每个ai∈λ;
(2)寻找一个素数m附带
或(m-1)/2的最小素因子大于
(3)任选w∈[1,m-1]使得w是一个生成元,
任选δ、μ∈[1,m-1]使得gcd(δ,m-1)=1和gcd(μ,m-1)=1;
(4)令集合
随机选取
(5)对于i=1,...,n,计算
输出:初值({c1,...,cn}、m)。
私有值{ai}、
定义6:给定({c1,...,cn}、m),寻找相关的{ai}、
性质6:mpp在计算难度上至少等价于同一素域中的离散对数难题(dlp)。
证明略。
3.2.3摘要提取部分
摘要提取部分既供数字签名方使用,也供签名码验证方使用,其实现方法是:
输入:一个初值({c1,...,cn}、m)附带
一个n比特的消息b1...bn≠0;
①置k←0,i←1;
②若bi=0则做k←k+1、
否则做
③令i←i+1;
④若i≤n,转至②;
⑤计算
⑥计算
其中
输出:消息摘要
3.3优点和积极效果
3.3.1安全性高
性质5保证了
特别需要指出的是,由于δ∈[1,m-1]是非常大的值,因此,企图利用连分式方法从
3.3.2摘要长度较短
当消息的比特长度不大于4096时,消息摘要的比特长度m在80和232之间,其安全强度为o(2m),因此,在同等安全强度下,本消息摘要可以有更短的比特长度。
3.3.3运算速度较快
本方法的初值只需要生成一次,且不是实时的,因此,初值生成部分的时间复杂性可以不考虑。
本方法的消息提取操作只需做o(n)个模乘运算,与n(≤4096)是线性相关的,相对来说,还是比较快的。
3.3.4技术可以公开
本发明的实现技术完全可以公开,消息摘要提取方法的初值也可以完全向外界公开发放。只要私有值不泄密,就可以基本保证消息摘要的弱无碰撞性和强无碰撞性。
(四)具体实施方式
一种抗生日攻击的非迭代型消息摘要提取方法包括初值生成和摘要提取两个部分,其特点是它能够产生一个公开的初值,且从该初值推导不出私有值。该初值能保证消息摘要是抗生日攻击的、消息摘要本身的构成能保证摘要是无碰撞的。更为重要的是,该方法输出的摘要长度非常短,但同时又满足安全性需求。
每个用户可以到指定的第三方权威机构——ca中心取得一个初值。ca中心是对用户进行登记、管理,并对初值进行产生和分发的一个机构。它利用初值生成方法输出一个用于消息摘要提取的非互素序列。
本消息摘要提取方法可以用逻辑电路芯片或程序语言来实现,它包括两部分:①根据3.2.2节的初值生成方法开发出相应的芯片或软件模块,供ca中心使用;②根据3.2.3节的摘要提取方法开发出相应的芯片或软件模块,供数字签名方和签名码验证方使用。