CN102412961A - 生成消息摘要的方法及系统 - Google Patents

生成消息摘要的方法及系统 Download PDF

Info

Publication number
CN102412961A
CN102412961A CN201010292393XA CN201010292393A CN102412961A CN 102412961 A CN102412961 A CN 102412961A CN 201010292393X A CN201010292393X A CN 201010292393XA CN 201010292393 A CN201010292393 A CN 201010292393A CN 102412961 A CN102412961 A CN 102412961A
Authority
CN
China
Prior art keywords
shift register
feedback shift
message
variable
register lfsr
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201010292393XA
Other languages
English (en)
Other versions
CN102412961B (zh
Inventor
孔令斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Li Ke Semiconductor Technology Co., Ltd.
Original Assignee
Leadcore Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Leadcore Technology Co Ltd filed Critical Leadcore Technology Co Ltd
Priority to CN201010292393.XA priority Critical patent/CN102412961B/zh
Publication of CN102412961A publication Critical patent/CN102412961A/zh
Application granted granted Critical
Publication of CN102412961B publication Critical patent/CN102412961B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据处理技术,公开了一种生成消息摘要的方法及系统,所述方法包括:对消息进行填充和划分,生成多个消息块;设置一个由16个消息调度表元素w0,w1,...,w15构成的第一线性反馈移位寄存器LFSRW、一个由变量构成的第二线性反馈移位寄存器LFSRV、以及一个由散列值构成的第三线性反馈移位寄存器LFSRH;将初始散列值H(0)作为初始值,对LFSRH进行赋值;对生成的多个消息块顺序进行迭代散列计算,在迭代过程中,同时进行反馈移位及相加的操作得到散列值,从而大大减少了所需的运算单元及存储空间。

Description

生成消息摘要的方法及系统
技术领域
本发明涉及数据处理技术,具体涉及一种生成消息摘要的方法及系统。
背景技术
目前,长期演进(Long Term Evolution,LTE)技术为了实现用户和网络之间的相互认证和确保数据传输的机密性与完整性,需要在用户设备(UserEquipment,UE)和网络节点之间实现密钥共享。LTE通过持久密钥推导出UE和多个网络实体之间共享的密钥,为接入层(Access Stratum,AS)和非接入层(Non Access Stratum,NAS)提供安全性保护。
LTE的密钥推导机制通过安全散列算法(Secure Hash Algorithm,SHA)构建的基于密钥的散列消息认证码(keyed-Hash Message Authentication Code,HMAC)方式,对持久密钥K和属性参数S进行操作,派生出不同接入层面所需的密钥。HMAC-SHA(K,S)首先将K与内部填充值ipad进行异或(用符号表示),并将异或值与S进行串联(用符号″||″表示),构成第1次SHA输入消息M1再将K与外部填充值opad进行异或操作,并将异或值与M1的散列值SHA(M1)进行串联,构成第2次SHA输入消息M2
Figure BSA00000284607400013
Figure BSA00000284607400014
对M2进行SHA散列计算得到输出参数KD,即HMAC-SHA算法派生出的密钥。
SHA是一种可迭代的单向散列函数,它可以将不同长度的消息进行压缩表示,生成固定长度的消息摘要。不同消息生成同一消息摘要是计算不可行的,通过消息摘要逆向推导消息原值也是计算不可行的。根据消息处理能力和消息摘要大小的需求,SHA划分为SHA-1、SHA-224、SHA-256、SHA-384、SHA-512等5种类型,每种SHA都可以分为预处理和散列计算两个过程。预处理过程对消息进行填充,将消息划分为散列计算处理的数据块,并设置初始散列值。散列计算过程生成消息调度表,并将消息调度表与函数、常数、字操作进行迭代运算,生成散列值,最后通过散列值串联获取消息摘要。
目前,由于硬件实现在速度方面相对软件有很大优势,近年来具有将SHA硬件实现而使安全处理快速化的趋势。但在现有SHA实现方式中,需要存储80个消息调度表元素(SHA-224、SHA-256需要存储64个),并且在计算每个消息调度表元素时都需要大量的加法运算或异或运算。同时,在计算散列值时,需要8个加法器将变量和散列值相加(SHA-1需要5个),这对于LTE移动终端等要求使用尽可能小的面积实现SHA功能的设备是不可行的。因此,需要对上述SHA实现方式进行优化,减小算法实现过程所需的存储空间和运算单元。
发明内容
本发明实施例针对上述现有技术存在的缺点,提供一种安全散列方法及系统,以节省存储空间,减少运算单元。
为此,本发明实施例提供如下技术方案:
一种生成消息摘要的方法,包括:
对消息进行填充和划分,生成多个消息块;
设置一个由16个消息调度表元素w0,w1,...,w15构成的第一线性反馈移位寄存器LFSRW、一个由变量构成的第二线性反馈移位寄存器LFSRV、以及一个由散列值构成的第三线性反馈移位寄存器LFSRH
将初始散列值H(0)作为初始值,对LFSRH进行赋值;
对生成的多个消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在循环处理的每个周期内,通过消息调度表元素计算第一临时变量w,将第一临时变量w作为第一线性反馈移位寄存器LFSRW的反馈输入,对第一线性反馈移位寄存器LFSRW进行移位赋值;同时,通过w0和第一临时变量w计算第二临时变量v,将第二临时变量v作为第二线性反馈移位寄存器LFSRV的反馈输入,对第二线性反馈移位寄存器LFSRV进行移位赋值;
在循环处理的第一预定周期至最后一个周期内,通过第二临时变量v和散列值计算第三临时变量h,将第三临时变量h作为第三线性反馈移位寄存器LFSRH的反馈输入,对第三线性反馈移位寄存器LFSRH进行移位赋值;
重复上述过程,在所有消息块处理完毕之后,将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要。
一种生成消息摘要的系统,包括:
消息块生成单元,用于对消息进行填充和划分,生成多个消息块;
寄存器器组,包括:一个由16个消息调度表元素w0,w1,...,w15构成的第一线性反馈移位寄存器LFSRW、一个由变量构成的第二线性反馈移位寄存器LFSRV、以及一个由散列值构成的第三线性反馈移位寄存器LFSRH
初始化单元,用于将初始散列值H(0)作为初始值,对LFSRH进行赋值;
迭代散列控制单元,用于对生成的多个消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在循环处理的每个周期内,通过消息调度表元素计算第一临时变量w,将第一临时变量w作为第一线性反馈移位寄存器LFSRW的反馈输入,对第一线性反馈移位寄存器LFSRW进行移位赋值;同时,通过w0和第一临时变量w计算第二临时变量v,将第二临时变量v作为第二线性反馈移位寄存器LFSRV的反馈输入,对第二线性反馈移位寄存器LFSRV进行移位赋值;
在循环处理的第一预定周期至最后一个周期内,通过第二临时变量v和散列值计算第三临时变量h,将第三临时变量h作为第三线性反馈移位寄存器LFSRH的反馈输入,对第三线性反馈移位寄存器LFSRH进行移位赋值;
消息摘要输出单元,用于在所述迭代散列控制单元处理完所有消息块之后,将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要。
与现有技术相比,本发明实施例生成消息摘要的方法及系统具有以下有益效果:
1.现有技术需要存储80个消息调度表元素(SHA-224、SHA-256需要存储64个),本发明实施例只需要存储16个LFSRW的寄存器值。因此,大大降低了所需的存储空间。
2.现有技术在生成消息调度表元素和更新变量时,需要选择逻辑选择参与计算的消息调度表元素,或为每个消息调度表元素设置加法逻辑或异或逻辑。本发明实施例只使用固定位置的消息调度表元素计算LFSRW和LFSRV的输入数据,通过反馈移位更新消息调度表和变量。现有技术在计算散列值时,需要8个加法逻辑(SHA-1需要5个)对变量和散列值计算。本发明实施例只使用2个加法逻辑(SHA-1需要1个)对临时变量和散列值计算,通过反馈移位获取散列值。因此,大大减少了实现过程中所需的运算单元。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本发明实施例生成消息摘要的方法的流程图;
图2是本发明实施例中针对SHA-1类型生成消息摘要的各线性反馈移位寄存器的结构示意图;
图3是本发明实施例中针对SHA-1类型生成消息摘要的实现流程图;
图4是图2所示实施例中函数ht(v)的结构示意图;
图5是本发明实施例中针对SHA-256和SHA-224类型生成消息摘要的各线性反馈移位寄存器的结构示意图;
图6是本发明实施例生成消息摘要的系统的一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明实施例作进一步的详细说明。
如图1所示,是本发明实施例生成消息摘要的方法的流程图,包括以下步骤:
步骤101,对消息进行填充和划分,生成多个消息块。
步骤102,设置一个由16个消息调度表元素w0,w1,...,w15构成的第一线性反馈移位寄存器LFSRW、一个由变量构成的第二线性反馈移位寄存器LFSRV、以及一个由散列值构成的第三线性反馈移位寄存器LFSRH;并将初始散列值H(0)作为初始值,对LFSRH进行赋值。
步骤103,对生成的多个消息块顺序进行迭代散列计算,在迭代过程中,同时进行反馈移位及相加的操作得到散列值。
具体过程如下:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在循环处理的每个周期内,通过消息调度表元素计算第一临时变量w,将第一临时变量w作为第一线性反馈移位寄存器LFSRW的反馈输入,对第一线性反馈移位寄存器LFSRW进行移位赋值;同时,通过w0和第一临时变量w计算第二临时变量v,将第二临时变量v作为第二线性反馈移位寄存器LFSRV的反馈输入,对第二线性反馈移位寄存器LFSRV进行移位赋值;
在循环处理的第一预定周期至最后一个周期内,通过第二临时变量v和散列值计算第三临时变量h,将第三临时变量h作为第三线性反馈移位寄存器LFSRH的反馈输入,对第三线性反馈移位寄存器LFSRH进行移位赋值;
步骤104,在所有消息块处理完毕之后,将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要。
与现有技术相比,本发明实施例生成消息摘要的方法,只需要存储16个LFSRW的寄存器值。与现有技术需要存储80个LFSRW的寄存器值相比,大大降低了所需要的存储空间。另外,现有技术在生成消息调度表元素和更新变量时,需要选择逻辑选择参与计算的消息调度表元素,或为每个消息调度表元素设置加法逻辑或异或逻辑;而本发明实施例的方法只使用固定位置的消息调度表元素计算LFSRW和LFSRV的输入数据,通过反馈移位更新消息调度表元素和变量。现有技术在计算散列值时,需要8个加法逻辑(SHA-1需要5个)对变量和散列值计算。本发明实施例的方法只使用2个加法逻辑(SHA-1需要1个)对临时变量和散列值计算,通过反馈移位获取散列值。因此,大大减少了实现过程中所需要的运算单元。
由于SHA不同算法类型定义的LFSR不同,因此,下在针对不同的SHA类型,对本发明实施例生成消息摘要的方法做进一步的详细说明。
●针对SHA-1
如图2所示,是本发明实施例中针对SHA-1类型生成消息摘要的各线性反馈移位寄存器的结构示意图;
图3是本发明实施例中针对SHA-1类型生成消息摘要的实现流程图,包括以下步骤:
步骤301,获取待散列消息M。
步骤302,对消息进行填充。
具体地,对小于264比特的消息进行填充,确保填充之后的消息长度为512比特的整数倍。定义64比特的l为消息M的长度,在M之后填充1个″1″比特和k个″0″比特,满足(l+1+k)mod 512≡448,0≤k<512。将l附加在填充比特之后,构成总长度为length=l+1+k+64比特的待处理消息。
步骤303,消息划分,将填充后的消息划分为N个消息块。
具体地,将待处理消息划分为N个512比特的消息块M(1),M(2),...,M(N),N=length/512,并将M(i)(1≤i≤N)划分为16个32位字M0 (i),M1 (i),...,M15 (i),即M(i)=M0 (i)||M1 (i)|...||M15 (i)
步骤304,定义LFSRW、LFSRV、LFSRH,并设置LFSRH的初始值H(0)
具体地,定义一个由16个32位消息调度表元素构成的LFSRW,以及一个由5个32位的变量a,b,c,d,e构成的LFSRV和一个由5个32位散列值H0,H1,...,H4构成的LFSRH,并按照公式(1)对LFSRH赋初始值:
Hn=Hn (0),0≤n<5                            (1)
然后,按照M(1),M(2),...,M(N)的顺序,对M(i)(1≤i≤N)进行迭代散列计算,具体过程如下:
步骤305,对于当前消息块Mi,按照公式(2)对LFSRW的消息调度表元素赋初始值:
wn=Mn (i),0≤n<16                           (2)
并对LFSRV的变量字段赋初始值,如式(3)所示:
a=H0 (i-1)
b=H1 (i-1)
c=H2 (i-1)
                                (3)
d=H3 (i-1)
e=H4 (i-1)
步骤306,判断是否t<80;如果是,则执行步骤307;如果否,则执行步骤310。
步骤307,对LFSRW和LFSRV进行移位赋值,具体如下:
按照式(4)对LFSRW进行移位赋值。
w = ROT L 1 ( w 13 ⊕ w 8 ⊕ w 2 ⊕ w 0 )
w0=w1  w1=w2  w2=w3   w3=w4   w4=w5   w5=w6   w6=w7   w7=w8  (4)
w8=w8  w9=w10 w10=w11 w11=w12 w12=w13 w13=w14 w14=w15 w15=w
其中,ROTLn表示循环左移n位。
按照式(5)对LFSRV进行移位赋值。
v=ROTL5(a)+ft(b,c,d)+e+Kt+w0
e=d
d=c
c=ROTL30(b)                            (5)
b=a
a=v
其中,ft、Kt为标准规定的常数。
步骤308,判断是否t≥75;如果是,则执行步骤309;否则返回步骤306。
步骤309,对LFSRH进行移位赋值,具体地,按照式(6)对LFSRH进行移位赋值。其中函数ht(v)如式(7)所示,其结构示意图如图4所示。
h=ht(v)+H4
H4=H3
H3=H2
                                    (6)
H2=H1
H1=H0
H0=h
h t ( v ) = ROTL 30 ( v ) 75 &le; t < 78 v 78 &le; t < 80 - - - ( 7 )
步骤310,判断是否i≤N,则返回步骤305;否则执行步骤311。
步骤311,在消息块M(N)处理完毕之后,将LFSRH的散列值H0,H1,...,H4进行串联,得到消息摘要,即MD=H0||H1||H2||H3||H4
本发明实施例,针对SHA-1类型,将80×32位消息调度表简化为16×32位LFSRW,在循环处理的每个周期更新消息调度表,并且固定使用w0计算LFSRV的反馈输入,不需要选择消息调度表元素,不占用额外的存储空间和运算单元。同时,仅使用一个加法器对函数ht(v)的输出和H4相加,通过反馈移位更新LFSRH,获取SHA-1的消息摘要。因此,能够减小SHA-1实现所需要的存储空间和运算单元。
●针对SHA-256和SHA-224
如图5所示,是本发明实施例中针对SHA-256和SHA-224类型生成消息摘要的各线性反馈移位寄存器的结构示意图。
生成消息摘要的具体过程如下:
1.按照SHA-256标准规定,对于小于264比特的消息进行消息填充,具体与前面步骤302相同。
2.按照SHA-256标准规定,将待处理消息进行消息划分,具体与前面步骤303相同。
3.定义一个由16个32位消息调度表元素构成的LFSRW,以及一个由8个32位的变量a,b,c,d,e,f,g,h构成的LFSRV和一个由8个32位散列值H0,H1,...,H7构成的LFSRH
4.按照式(8)对LFSRH赋初始值。
Hn=Hb (0),0≤n<8                    (8)
5.按照M(1),M(2),...,M(N)的顺序,对M(i)(1≤i≤N)进行迭代散列计算,包括:
i)按照前面公式(2)对LFSRW的消息调度表字段赋初始值。
ii)对LFSRV的变量字段赋初始值,如式(3)所示。
iii)在0≤t<64的循环处理中:
按照式(9)对LFSRW进行移位赋值;
w=σ1 {256}(w14)+w90 {256}(w1)+w0
w0=w1  w1=w2  w2=w3   w3=w4   w4=w5   w5=w6   w6=w7   w7=w8 (9)
w8=w9  w9=w10 w10=w11 w11=w12 w12=w13 w13=w14 w14=w15 w15=w
按照式(10)对LFSRV进行移位赋值;
v=∑1 {256}(e)+Ch(e,f,g)+h+Kt {256}+w0
v1=∑0 {256}(a)+Maj(a,b,c)+v
v2=d+v
                                            (10)
h=g  g=f  f=e  e=v2
d=c  c=b  b=a  a=v1
其中,公式(9)中σ0 {256}、σ1 {256}、以及公式(10)中的∑0 {256}、∑1 {256}、Ch、Maj、Kt {256}为标准规定的函数或常数。
当60≤t<64时,按照式(11)对LFSRH进行4次移位赋值。
h1=H3+v1
h2=H7+v2
H7=H6  H6=H5  H5=H4  H4=h2            (11)
H3=H2  H2=H1  H1=H0  H0=h1
6.在M(N)处理完毕之后,将LFSRH的散列值H0,H1,...,H7进行串联,得到消息摘要,即MD{256}=H0||H1||H2||H3||H4||H5||H6||H7
需要说明的是,SHA-224和SHA-256的实现步骤相同,在生成224位消息摘要时,将LFSRH的散列值H0,H1,...,H6进行串联,即MD{224}=H0||H1||H2||H3||H4||H5||H6
本发明实施例,针对SHA-256和SHA-224类型,将64×32位消息调度表简化为16×32位LFSRW,不占用额外的存储空间和运算单元。同时,使用两个加法器对v1和H3、v2和H7相加,通过反馈移位更新LFSRH,获取SHA-256和SHA-224的消息摘要。因此,能够减小SHA-256和SHA-224实现所需要的存储空间和运算单元。
●针对SHA-512和SHA-384
SHA-512和SHA-256的算法步骤相同,结构图与图2类似,不同之处在于:LFSRW、LFSRV、LFSRH均为64位;在80次循环处理中,使用SHA-512标准规定的函数计算64位临时变量w和v1、v2;当76≤t<80时对LFSRH进行4次移位赋值。
SHA-384和SHA-512的算法步骤相同,在生成384位消息摘要时,将LFSRH的散列值H0,H1,...,H5进行串联,即MD{384}=H0||H1||H2||H3||H4||H5
可见,本发明实施例针对SHA-512和SHA-384类型,将80×64位消息调度表简化为16×64位LFSRW,使用两个加法器的输出更新LFSRH,获取消息摘要。因此,能够减小SHA-512和SHA-384实现所需要的存储空间和运算单元。
需要说明的是,本发明并不限于上述几种具体实施方式,还可以进行各种变形。例如,SHA-1的ht函数的输入可以是变量a,此时需要在76≤t<80以及80次循环处理结束后的一个周期时,对LFSRH进行5次移位赋值。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
相应地,本发明实施例还提供一种生成消息摘要的系统,如图6所示,是该系统的一种结构示意图。
在该实施例中,所述系统包括:
消息块生成单元601,用于对消息进行填充和划分,生成多个消息块;
寄存器器组602,包括:一个由16个消息调度表元素w0,w1,...,w15构成的第一线性反馈移位寄存器LFSRW、一个由变量构成的第二线性反馈移位寄存器LFSRV、以及一个由散列值构成的第三线性反馈移位寄存器LFSRH
初始化单元603,用于将初始散列值H(0)作为初始值,对LFSRH进行赋值;
迭代散列控制单元604,用于对生成的多个消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在循环处理的每个周期内,通过消息调度表元素计算第一临时变量w,将第一临时变量w作为第一线性反馈移位寄存器LFSRW的反馈输入,对第一线性反馈移位寄存器LFSRW进行移位赋值;同时,通过w0和第一临时变量w计算第二临时变量v,将第二临时变量v作为第二线性反馈移位寄存器LFSRV的反馈输入,对第二线性反馈移位寄存器LFSRV进行移位赋值;
在循环处理的第一预定周期至最后一个周期内,通过第二临时变量v和散列值计算第三临时变量h,将第三临时变量h作为第三线性反馈移位寄存器LFSRH的反馈输入,对第三线性反馈移位寄存器LFSRH进行移位赋值;
消息摘要输出单元605,用于在所述迭代散列控制单元处理完所有消息块之后,将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要。
利用本发明实施例的系统,可以生成针对SHA-1类型的消息摘要,相应地,所述消息调度表元素为32位的消息调度表元素w0,w1,...,w15,所述变量为5个32位变量a,b,c,d,e,所述散列值为5个32位散列值H0,H1,...,H4;所述迭代散列控制单元,具体用于对生成的512位消息块顺序进行迭代散列计算;所述消息摘要输出单元,具体用于将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H4进行串联,得到160位消息摘要。具体实现过程可参照前面的描述,在此不再赘述。
利用本发明实施例的系统,还可以生成针对SHA-256和SHA-224类型的消息摘要,相应地,所述消息调度表元素为32位的消息调度表元素w0,w1,...,w15,所述变量为8个32位变量a,b,c,d,e,f,g,h,所述散列值为8个32位散列值H0,H1,...,H7;所述迭代散列控制单元,具体用于对生成的512位消息块顺序进行迭代散列计算;所述消息摘要输出单元,具体用于将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H7进行串联,得到256位消息摘要;或者将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H6进行串联,得到224位消息摘要。具体实现过程可参照前面的描述,在此不再赘述。
利用本发明实施例的系统,还可以生成针对SHA-512和SHA-384类型的消息摘要,相应地,所述消息调度表元素为64位的消息调度表元素w0,w1,...,w15,所述变量为8个64位变量a,b,c,d,e,f,g,h,所述散列值为8个64位散列值H0,H1,...,H7;所述迭代散列控制单元,具体用于对生成的1024位消息块顺序进行迭代散列计算;所述消息摘要输出单元,具体用于将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H7进行串联,得到512位消息摘要;或者将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H5进行串联,得到384位消息摘要。具体实现过程可参照前面的描述,在此不再赘述。
与现有技术相比,本发明实施例生成消息摘要的系统,只需要存储16个LFSRW的寄存器值。与现有技术需要存储80个LFSRW的寄存器值相比,大大降低了所需要的存储空间。另外,现有技术在生成消息调度表元素和更新变量时,需要选择逻辑选择参与计算的消息调度表元素,或为每个消息调度表元素设置加法逻辑或异或逻辑;而本发明实施例的方法只使用固定位置的消息调度表元素计算LFSRW和LFSRV的输入数据,通过反馈移位更新消息调度表元素和变量。现有技术在计算散列值时,需要8个加法逻辑(SHA-1需要5个)对变量和散列值计算。本发明实施例的方法只使用2个加法逻辑(SHA-1需要1个)对临时变量和散列值计算,通过反馈移位获取散列值。因此,大大减少了实现过程中所需要的运算单元。
本发明实施例生成消息摘要的方法及系统,可以广泛地应用于数字签名、消息认证码生成与验证技术等领域。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明实施例进行了详细介绍,本文中应用了具体实施方式对本发明进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及设备;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种生成消息摘要的方法,其特征在于,包括:
对消息进行填充和划分,生成多个消息块;
设置一个由16个消息调度表元素w0,w1,...,w15构成的第一线性反馈移位寄存器LFSRW、一个由变量构成的第二线性反馈移位寄存器LFSRV、以及一个由散列值构成的第三线性反馈移位寄存器LFSRH
将初始散列值H(0)作为初始值,对LFSRH进行赋值;
对生成的多个消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在循环处理的每个周期内,通过消息调度表元素计算第一临时变量w,将第一临时变量w作为第一线性反馈移位寄存器LFSRW的反馈输入,对第一线性反馈移位寄存器LFSRW进行移位赋值;同时,通过w0和第一临时变量w计算第二临时变量v,将第二临时变量v作为第二线性反馈移位寄存器LFSRV的反馈输入,对第二线性反馈移位寄存器LFSRV进行移位赋值;
在循环处理的第一预定周期至最后一个周期内,通过第二临时变量v和散列值计算第三临时变量h,将第三临时变量h作为第三线性反馈移位寄存器LFSRH的反馈输入,对第三线性反馈移位寄存器LFSRH进行移位赋值;
重复上述过程,在所有消息块处理完毕之后,将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要。
2.根据权利要求1所述的方法,其特征在于,
所述消息调度表元素为32位的消息调度表元素w0,w1,...,w15,所述变量为5个32位变量a,b,c,d,e,所述散列值为5个32位散列值H0,H1,...,H4
对生成的512位消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在80次循环处理中,通过第一线性反馈移位寄存器LFSRW的消息调度表元素w0、w2、w8、w13计算32位第一临时变量w,将第一临时变量w作为输入数据,对第一线性反馈移位寄存器LFSRW进行80次移位赋值操作;
在80次循环处理中,通过第二线性反馈移位寄存器LFSRV的变量a,b,c,d,e和第一线性反馈移位寄存器LFSRW的消息调度表元素w0以及常数Kt,计算32位第二临时变量v,将第二临时变量v作为输入数据,对第二线性反馈移位寄存器LFSRV进行80次移位赋值操作;
在第76至80次循环处理中,通过第二临时变量v和第三线性反馈移位寄存器LFSRH的散列值H4,计算32位第三临时变量h,将第三临时变量h作为输入数据,对第三线性反馈移位寄存器LFSRH进行5次移位赋值操作;
所述将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要包括:
将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H4进行串联,得到160位消息摘要。
3.根据权利要求1所述的方法,其特征在于,
所述消息调度表元素为32位的消息调度表元素w0,w1,...,w15,所述变量为8个32位变量a,b,c,d,e,f,g,h,所述散列值为8个32位散列值H0,H1,...,H7
对生成的512位消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在64次循环处理中,通过第一线性反馈移位寄存器LFSRW的消息调度表元素w0、w1、w9、w14计算32位第一临时变量w,将第一临时变量w作为输入数据,对第一线性反馈移位寄存器LFSRW进行64次移位赋值操作;
在64次循环处理中,通过第二线性反馈移位寄存器LFSRV的变量e,f,g,h和第一线性反馈移位寄存器LFSRW的消息调度表元素w0以及常数Kt,计算32位第二临时变量v,通过第二线性反馈移位寄存器LFSRV的变量a,b,c和第二临时变量v计算32位第一临时子变量v1,通过第二线性反馈移位寄存器LFSRV的变量d和第二临时变量v计算32位第二临时子变量v2,将第一临时子变量v1和第二临时子变量v2作为输入数据,对第二线性反馈移位寄存器LFSRV进行64次移位赋值操作;
在第61至64次循环处理中,通过第一临时子变量v1和第三线性反馈移位寄存器LFSRH的散列值H3,计算32位第一散列子变量h1,通过第二临时子变量v2和第三线性反馈移位寄存器LFSRH的散列值H7,计算32位第二散列子变量h2,将第一散列子变量h1和第二散列子变量h2作为输入数据,对第三线性反馈移位寄存器LFSRH进行4次移位赋值操作;
所述将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要包括:
将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H7进行串联,得到256位消息摘要。
4.根据权利要求3所述的方法,其特征在于,所述将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要还包括:
将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H6进行串联,得到224位消息摘要。
5.根据权利要求1所述的方法,其特征在于,
所述消息调度表元素为64位的消息调度表元素w0,w1,...,w15,所述变量为8个64位变量a,b,c,d,e,f,g,h,所述散列值为8个64位散列值H0,H1,...,H7
对生成的1024位消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在80次循环处理中,通过第一线性反馈移位寄存器LFSRW的消息调度表元素w0、w1、w9、w14计算64位第一临时变量w,将第一临时变量w作为输入数据,对第一线性反馈移位寄存器LFSRW进行80次移位赋值操作。
在80次循环处理中,通过第二线性反馈移位寄存器LFSRV的变量e,f,g,h和第一线性反馈移位寄存器LFSRW的消息调度表元素w0以及常数Kt,计算64位第二临时变量v,通过第二线性反馈移位寄存器LFSRV的变量a,b,c和临时变量v计算64位第一临时子变量v1,通过第二线性反馈移位寄存器LFSRV的变量d和第一临时变量v计算64位第二临时子变量v2,将第一临时子变量v1和第二临时子变量v2作为输入数据,对第二线性反馈移位寄存器LFSRV进行80次移位赋值操作。
在第77至80次循环处理中,通过第一临时子变量v1和第三线性反馈移位寄存器LFSRH的散列值H3,计算64位第一散列子变量h1,通过第二临时子变量v2和第三线性反馈移位寄存器LFSRH的散列值H7,计算64位第二散列子变量h2,将第一散列子变量h1和第二散列子变量h2作为输入数据,对第三线性反馈移位寄存器LFSRH进行4次移位赋值操作;
所述将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要包括:
将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H7进行串联,得到512位消息摘要。
6.根据权利要求5所述的方法,其特征在于,所述将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要还包括:
将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H5进行串联,得到384位消息摘要。
7.一种生成消息摘要的系统,其特征在于,包括:
消息块生成单元,用于对消息进行填充和划分,生成多个消息块;
寄存器器组,包括:一个由16个消息调度表元素w0,w1,...,w15构成的第一线性反馈移位寄存器LFSRW、一个由变量构成的第二线性反馈移位寄存器LFSRV、以及一个由散列值构成的第三线性反馈移位寄存器LFSRH
初始化单元,用于将初始散列值H(0)作为初始值,对LFSRH进行赋值;
迭代散列控制单元,用于对生成的多个消息块顺序进行如下迭代散列计算:
将当前消息块作为初始值,对第一线性反馈移位寄存器LFSRW进行赋值;将前一次计算的中间散列值作为初始值,对第二线性反馈移位寄存器LFSRV
在循环处理的每个周期内,通过消息调度表元素计算第一临时变量w,将第一临时变量w作为第一线性反馈移位寄存器LFSRW的反馈输入,对第一线性反馈移位寄存器LFSRW进行移位赋值;同时,通过w0和第一临时变量w计算第二临时变量v,将第二临时变量v作为第二线性反馈移位寄存器LFSRV的反馈输入,对第二线性反馈移位寄存器LFSRV进行移位赋值;
在循环处理的第一预定周期至最后一个周期内,通过第二临时变量v和散列值计算第三临时变量h,将第三临时变量h作为第三线性反馈移位寄存器LFSRH的反馈输入,对第三线性反馈移位寄存器LFSRH进行移位赋值;
消息摘要输出单元,用于在所述迭代散列控制单元处理完所有消息块之后,将第三线性反馈移位寄存器LFSRH中的散列值进行串联,得到消息摘要。
8.根据权利要求7所述的系统,其特征在于,
所述消息调度表元素为32位的消息调度表元素w0,w1,...,w15,所述变量为5个32位变量a,b,c,d,e,所述散列值为5个32位散列值H0,H1,...,H4
所述迭代散列控制单元,具体用于对生成的512位消息块顺序进行迭代散列计算;
所述消息摘要输出单元,具体用于将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H4进行串联,得到160位消息摘要。
9.根据权利要求7所述的系统,其特征在于,
所述消息调度表元素为32位的消息调度表元素w0,w1,...,w15,所述变量为8个32位变量a,b,c,d,e,f,g,h,所述散列值为8个32位散列值H0,H1,...,H7
所述迭代散列控制单元,具体用于对生成的512位消息块顺序进行迭代散列计算;
所述消息摘要输出单元,具体用于将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H7进行串联,得到256位消息摘要;或者将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H6进行串联,得到224位消息摘要。
10.根据权利要求7所述的系统,其特征在于,
所述消息调度表元素为64位的消息调度表元素w0,w1,...,w15,所述变量为8个64位变量a,b,c,d,e,f,g,h,所述散列值为8个64位散列值H0,H1,...,H7
所述迭代散列控制单元,具体用于对生成的1024位消息块顺序进行迭代散列计算;
所述消息摘要输出单元,具体用于将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H7进行串联,得到512位消息摘要;或者将第三线性反馈移位寄存器LFSRH的散列值H0,H1,...,H5进行串联,得到384位消息摘要。
CN201010292393.XA 2010-09-19 2010-09-19 生成消息摘要的方法及系统 Active CN102412961B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010292393.XA CN102412961B (zh) 2010-09-19 2010-09-19 生成消息摘要的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010292393.XA CN102412961B (zh) 2010-09-19 2010-09-19 生成消息摘要的方法及系统

Publications (2)

Publication Number Publication Date
CN102412961A true CN102412961A (zh) 2012-04-11
CN102412961B CN102412961B (zh) 2014-02-05

Family

ID=45914826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010292393.XA Active CN102412961B (zh) 2010-09-19 2010-09-19 生成消息摘要的方法及系统

Country Status (1)

Country Link
CN (1) CN102412961B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103559458A (zh) * 2013-10-09 2014-02-05 广州华迅网络科技有限公司 数据散列获取方法及其系统
CN104219039A (zh) * 2013-06-04 2014-12-17 晨星半导体股份有限公司 密码装置以及密钥保护方法
CN106100790A (zh) * 2016-06-16 2016-11-09 北京极维客科技有限公司 一种数据传输方法及系统
CN106301764A (zh) * 2016-10-09 2017-01-04 上海泥娃通信科技有限公司 基于路径散列的消息摘要方法和系统
CN115037514A (zh) * 2022-04-29 2022-09-09 清图数据科技(南京)有限公司 一种基于Hash算法的数据完整性高效校验方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080012972A1 (en) * 2006-07-13 2008-01-17 Canon Kabushiki Kaisha Image sensing apparatus
US20080159528A1 (en) * 2006-12-28 2008-07-03 Intel Corporation Method for Processing Multiple Operations
CN101399667A (zh) * 2007-09-29 2009-04-01 索尼(中国)有限公司 产生快速安全哈希函数的步函数装置和消息扩展方法
CN101483519A (zh) * 2008-01-11 2009-07-15 索尼(中国)有限公司 产生哈希函数的压缩函数装置以及哈希函数系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080012972A1 (en) * 2006-07-13 2008-01-17 Canon Kabushiki Kaisha Image sensing apparatus
US20080159528A1 (en) * 2006-12-28 2008-07-03 Intel Corporation Method for Processing Multiple Operations
CN101399667A (zh) * 2007-09-29 2009-04-01 索尼(中国)有限公司 产生快速安全哈希函数的步函数装置和消息扩展方法
CN101483519A (zh) * 2008-01-11 2009-07-15 索尼(中国)有限公司 产生哈希函数的压缩函数装置以及哈希函数系统及方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219039A (zh) * 2013-06-04 2014-12-17 晨星半导体股份有限公司 密码装置以及密钥保护方法
CN103559458A (zh) * 2013-10-09 2014-02-05 广州华迅网络科技有限公司 数据散列获取方法及其系统
CN103559458B (zh) * 2013-10-09 2016-08-17 广州华迅网络科技有限公司 数据散列获取方法及其系统
CN106100790A (zh) * 2016-06-16 2016-11-09 北京极维客科技有限公司 一种数据传输方法及系统
CN106100790B (zh) * 2016-06-16 2019-06-18 武汉六为科技有限公司 一种数据传输方法及系统
CN106301764A (zh) * 2016-10-09 2017-01-04 上海泥娃通信科技有限公司 基于路径散列的消息摘要方法和系统
CN106301764B (zh) * 2016-10-09 2020-09-25 上海泥娃通信科技有限公司 基于路径散列的消息摘要方法和系统
CN115037514A (zh) * 2022-04-29 2022-09-09 清图数据科技(南京)有限公司 一种基于Hash算法的数据完整性高效校验方法
CN115037514B (zh) * 2022-04-29 2024-03-29 清图数据科技(南京)有限公司 一种基于Hash算法的数据完整性高效校验方法

Also Published As

Publication number Publication date
CN102412961B (zh) 2014-02-05

Similar Documents

Publication Publication Date Title
US10944751B2 (en) Generating cryptographic function parameters from compact source code
Aumasson et al. The hash function BLAKE
CN101073220B (zh) 用于提高密码处理的速度的方法和装置
US8340295B2 (en) High-speed cryptographic system using chaotic sequences
US7451310B2 (en) Parallelizable authentication tree for random access storage
TWI386005B (zh) 資料變換器、資料安全性元件、產生資料變換之方法及增強資料之安全性之方法
CN102412961B (zh) 生成消息摘要的方法及系统
US20100054457A1 (en) SHARING A SECRET USING HYPERPLANES OVER GF(q)
US20170063536A1 (en) Generating Cryptographic Function Parameters Based on an Observed Astronomical Event
JP4668428B2 (ja) 効果的なキー長制御方法及び装置
CN109274484B (zh) 一种对数据进行保密增强的方法及量子密钥分发终端
JP2003208097A (ja) サイドチャネルアタック耐性を有する暗号演算装置及び方法
US20100054474A1 (en) SHARING A SECRET USING HYPERPLANES OVER GF(2m)
CA2983164A1 (en) Generating cryptographic function parameters from a puzzle
CA3161664A1 (en) Method and system for digital signatures utilizing multiplicative semigroups
CN112184441A (zh) 数据处理方法、装置、节点设备及存储介质
CN103310158B (zh) 文件处理方法及装置
CN112217629B (zh) 一种云存储公开审计方法
CN114861203A (zh) 基于不经意伪随机函数的隐匿求交方法
EP3419212B1 (en) Computer implemented method, computer system and computer readable computer program product
Sagar Cryptographic Hashing Functions-MD5
CN101202618A (zh) 利用环迭代结构生成消息摘要的方法和装置
CN110266500A (zh) 一种哈希值的安全加固生成方法及系统
CN114124354B (zh) 确定性鉴别加解密装置及方法
CN113761561B (zh) 一种基于褶积优化的sha1加密方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170418

Address after: 201206 China (Shanghai) free trade zone, the moon Road, No. 3, building fourth, room B412, level 1258

Patentee after: Shanghai Li Ke Semiconductor Technology Co., Ltd.

Address before: 200233 Shanghai, Jiang Road, No. 41, building 4, building 333

Patentee before: Leadcore Technology Co., Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 201203 1st, 6th and 7th floors, building 2, No. 1761, Zhangdong Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201203

Patentee after: Shanghai Li Ke Semiconductor Technology Co.,Ltd.

Address before: Room b412, 4th floor, building 3, 1258 Mingyue Road, China (Shanghai) pilot Free Trade Zone

Patentee before: Shanghai Li Ke Semiconductor Technology Co.,Ltd.