[12]发明专利申请公布说明书
[21]申请号200910190903.X
[51]Int.CI.
H04L 9/08 (2006.01)H04L 9/32 (2006.01)
[43]公开日2010年3月10日[22]申请日2009.09.18[21]申请号200910190903.X
[71]申请人重庆邮电大学
地址400065重庆市南岸区黄桷垭崇文路2号[72]发明人李方伟 孙逊 张鑫 张海波
[11]公开号CN 101667913A
[74]专利代理机构重庆市恒信知识产权代理有限公司
代理人刘小红
权利要求书 3 页 说明书 8 页 附图 1 页
[54]发明名称
基于对称加密的认证加密方法及加密系统
[57]摘要
本发明请求保护一种认证加密方法和系统,涉及通信安全领域。结合消息可恢复签名和对称加密技术,利用只有指定消息接收端能够计算出的承诺值作为会话密钥加密消息,消息接收端通过可恢复签名验证消息的有效性,从而在一个逻辑步骤里同时实现了加密和认证。发送端密钥生成单元生成发送端会话密钥,加密单元对要发送的消息进行加密,接收端生成接收端会话密钥,解密单元利用接收端会话密钥对加密消息进行解密,根据解密出的消息生成认证确认信息验证消息的有效性。当发生纠纷时,消息接收端可以将认证加密的消息签名转换为普通的签名,让第三方公开验证签名的有效性。本发明具有安全性高、计算量和传输代价小等优点。
200910190903.X
权 利 要 求 书
第1/3页
1.一种认证加密方法,其特征在于,所述方法包括以下步骤:
步骤A:发送端和接收端密钥生成单元根据随机选择的私钥生成相应公钥,将公钥、各自对应的身份标识和签名发送给服务器;
步骤B:发送端通过服务器收到接收端公钥,发送端密钥生成单元根据接收端公钥和选取的随机数生成发送端会话密钥,加密单元利用发送端会话密钥K对要发送的消息进行加密,并根据所要发送的消息以及自己的私钥生成认证信息,把加密消息和认证信息通过服务器发送给接收端;
步骤C:接收端接收到加密消息和认证信息后,接收端密钥生成单元根据自己的公、私钥、发送端的公钥以及认证信息生成接收端会话密钥,解密单元利用接收端会话密钥对加密消息进行解密,根据解密出的消息生成认证确认信息,比较单元对认证确认信息和收到的认证信息进行比较,验证消息的有效性。
2.根据权利要求1所述的认证加密方法,其特征在于,所述步骤A进一步包括,发送端、接收端参数选择单元选取大素数p、q,满足q整除p-1,在乘法群Zp中选取一个q阶生成元g,并分别选取随机数xa、xb作为各自的私钥;密钥生成单元分别调用公式
进行模指数运算,
分别确定发送端、接收端公钥ya、yb;签名单元利用私钥xa、xb对发送端和接收端消息串ya‖IDA、yb‖IDB分别进行签名,得到发送端签名
和接
收端签名
用户身份和其公钥。
3.根据权利要求1所述的认证加密方法,其特征在于,所述步骤B进一步包括,发送端选取随机数k,密钥生成单元根据接收端的公钥yb和随机数k,输入双重模指数运算单元,调用公式K=((yb)(mod p))(mod q)获得用于加密消息的发送端会话密钥K,加密单元利用K对称加密消息m。
4.根据权利要求1所述的认证加密方法,其特征在于,所述步骤B进一步包括,将随机数k、发送端的私钥xa及所要发送的消息m输入双重模指数运
2
k
*
将注册信息、公钥和签名写入注册用户列表L,绑定
200910190903.X权 利 要 求 书 第2/3页
m+k
算单元,调用公式r=(gs。
(mod p))(mod q)和s=k(r+xa)(mod q)计算认证信息r和
5.根据权利要求1所述的认证加密方法,其特征在于,所述步骤C进一步包括,接收端密钥恢复单元将自己的公、私钥yb和xb、发送端的公钥ya以及收到的认证信息r和s,输入双重模指数运算单元,调用公式:
恢复接收端会话密钥。
6.根据权利要求1所述的认证加密方法,其特征在于,接收端算法模块将消息m、认证信息r和s、q阶生成元g、发送端公钥输入双重模指数运算单元,调用公式r′≡(g(gya)(mod p))(mod q)计算接收端认证确认信息r′,比较单元将认证确认信息r′与收到的认证信息r进行比较,如果相等则解密出的消息m是有效的。
7.根据权利要求1-6其中之一所述的认证加密方法,其特征在于,当发生纠纷时,接收端将认证加密的消息签名转换为普通的签名,第三方验证单元根据接收端或发送端提供的消息m,认证信息r和s,输入双重模指数运算单元,算法模块调用公式:r′=(g(gya)(mod p))(mod q),r″=(g
m
r
s
k+m
m
r
s
(mod p))(mod q)分
别计算验证信息r′和r″,如果r′=r″,则(c,r,s)是发送端对消息m的有效签名。 8.一种认证加密系统,其特征在于,发送端和接收端密钥生成单元根据随机选择的私钥生成相应公钥,将公钥和各自对应的身份标识发送给服务器;发送端通过服务器收到接收端公钥,发送端密钥生成单元根据接收端公钥和选取的随机数生成发送端会话密钥,加密单元利用发送端会话密钥对要发送的消息进行加密,并根据所要发送的消息以及自己的私钥生成认证信息,把加密消息和认证信息通过服务器发送给接收端;接收端接收到加密消息和认证信息后,接收端密钥生成单元根据自己的公、私钥、发送端的公钥以及认证信息生成接收端会话密钥,解密单元采用会话密钥对加密消息进行解密,根据解密出的消息生成认证确认信息,比较单元对认证确认信息和收到的认证信息进行比较,验证消息的有效性。
9.根据权利要求8所述的认证加密系统,其特征在于,发送端选取随机
3
200910190903.X权 利 要 求 书 第3/3页
数k,密钥生成单元根据接收端的公钥yb和随机数k,输入双重模指数运算单元,调用公式K=((yb)(mod p))(mod q)获得用于加密消息的发送端会话密钥K,加密单元利用K对称加密消息m;将随机数k、发送端的私钥xa及所要发送的消息m输入双重模指数运算单元,调用公式r=(gs=k/(r+xa)(mod q)计算认证信息r和s。
10.根据权利要求8所述的认证加密系统,其特征在于,接收端密钥恢复单元将自己的公、私钥yb和xb、发送端的公钥ya以及收到的认证信息r和s,输入双重模指数运算单元,调用公式:
恢
复
接
收
端
会
m+k
k
(mod p))(mod q)和
话密钥;接收端算法模块将消息m、认证信息r和s、q阶生成元g、发送端公钥输入双重模指数运算单元,调用公式r′≡(g(gya)(mod p))(mod q)计算接收端验证信息r′,比较单元将验证信息r′与收到的认证信息r进行比较,如果相等则解密出的消息m是有效的。
m
r
s
4
200910190903.X
说 明 书
基于对称加密的认证加密方法及加密系统
第1/8页
技术领域
本发明涉及通信安全领域,具体涉及通信过程中的认证加密方法。背景技术
随着计算机与通信技术的发展,人们越来越多的使用网络来传递秘密信息,这些秘密消息的传递往往同时需要保密和认证。传统上同时实现认证和保密的方法是将加密和签名组合,采用“先签名再加密”的方法,这种组合的计算、传输代价是签名和加密的总和,且这种传统方法使用的是公钥加密,计算速度慢,代价高。利用消息可恢复签名技术能够以较低的传输代价同时实现认证和加密功能,国内外许多学者相继设计了许多基于消息可恢复签名技术的认证加密方案。诸如在2006年的《电子学报》第34卷5期874-877页,张串绒,尹忠海,肖国镇的《不使用Hash和Redundancy函数的认证加密方案》一文中提出了基于消息可恢复签名技术的认证加密方案。该方案首次将消息可恢复签名和对称加密有机结合,用签名中恢复的消息与对称解密得到的消息相比较,实现消息有效性的验证,改变了传统上使用杂凑函数或冗余函数的验证方法。但该方案的安全性不高,无法抵抗消息接收者的伪造攻击,而且发生纠纷后,无法让第三方公开验证签名。发明内容
本发明针对现有技术的上述不足,旨在设计一种计算量和传输代价小,安全性高的认证加密方案。由此提出了一种基于对称加密和消息可恢复签名技术的认证加密方法和系统。
本发明解决上述技术问题的技术方案是提出一种认证加密方法,该方法包括以下步骤:
发送端和接收端分别生成公、私钥对,分别将公钥和各自对应的身份标识发送给服务器。生成公、私钥对,和身份标识的步骤具体包括,发送端、接收端参数选择单元选取大素数p、q、确定q阶生成元g,并分别选取随机
5
200910190903.X说 明 书 第2/8页
数xa、xb作为各自的私钥;发送端、接收端密钥生成单元调用模指数运算公式
分别确定发送端、接收
端公钥ya、yb;签名单元将
发送端、接收端私钥xa、xb对发送端和接收端消息串ya||IDA、yb||IDB分别进行签名,得到发送端签名
等身份标识;
发送端通过服务器收到接收端公钥,根据接收端公钥和选取的随机数生成发送端会话密钥,利用发送端会话密钥对要发送的消息进行加密,并利用选取的随机数、所要发送的消息以及自己的私钥生成认证信息,把加密后的发送消息和认证信息通过服务器发送给接收端。
发送端选取随机数k,密钥生成单元根据接收端的公钥yb和随机数k,输入双重模指数运算单元,调用公式K=((yb)(modp))(modq)获得用于加密消息的发送端会话密钥K,加密单元利用K对称加密消息m。将随机数k、发送端的私钥xr=(g
a
k
和接收端签名
及所要发送的消息m输入双重模指数运算单元,调用公式(modp))(modq)和s=k/(r+xa)(modq)计算认证信息r和s;
m+k
接收端通过服务器接收到发送端的加密消息和认证信息后,根据接收端自己的公、私钥、发送端的公钥以及认证信息生成接收端会话密钥,并对加密消息进行解密,根据解密出的消息生成验证信息,对生成的验证信息和收到的认证信息进行比较,验证消息的有效性。
接收端密钥恢复单元将自己的公、私钥yb和xb、发送端的公钥ya以及收到的认证信息r和s,输入双重模指数运算单元,调用公式:
恢复接收端会话密钥。接
收端算法模块将消息m、认
证信息r和s、q阶生成元g、发送端公钥输入双重模指数运算单元,调用公式r′≡(g(gya)(modp))(modq)计算接收端验证信息r′,比较单元将验证信息r′与收到的认证信息r进行比较,如果相等则解密出的消息m是有效的。 当发生纠纷时,接收端可以将认证加密的消息签名转换为普通的签名,让第三方公开验证签名的有效性。
本发明还设计了一种认证加密系统,具体为,一种认证加密系统,发送端和接收端密钥生成单元根据随机选择的私钥生成相应公钥,将公钥和各自
6
m
r
s
200910190903.X说 明 书 第3/8页
对应的身份标识发送给服务器;发送端通过服务器收到接收端公钥,发送端密钥生成单元根据接收端公钥和选取的随机数生成发送端会话密钥,加密单元利用发送端会话密钥对要发送的消息进行加密,并根据所要发送的消息以及自己的私钥生成认证信息,把加密消息和认证信息通过服务器发送给接收端;接收端接收到加密消息和认证信息后,接收端密钥生成单元根据自己的公、私钥、发送端的公钥以及认证信息生成接收端会话密钥,解密单元采用会话密钥对加密消息进行解密,根据解密出的消息生成认证确认信息(验证信息),比较单元对认证确认信息和收到的认证信息进行比较,验证消息的有效性。
使用本发明的认证加密技术,不仅可以在一个逻辑步骤内实现认证和加密,同时在安全性、计算量、传输代价等方面都有所改进。
(1)将消息可恢复签名与对称加密相结合,不需要杂凑函数和冗余函数,避免了使用这些函数所要面临的相应安全威胁。
(2)因为发送端每次都是随机选择的参数k,真正做到了一次一密,具有前向安全性,即使密钥泄漏,攻击者也无法解密出以前的消息。 (3)能够确保消息的可靠性和完整性,接收端可以利用认证信息对解密出的消息进行有效性验证。
(4)消息的保密性强,任何攻击者想通过计算求解得到消息将会面临离散对数难题或者双重模难题。
(5)利用对称密钥加密消息,计算量较小,并且收发端、服务器三者之间交互传输信息的传输代价较小。附图说明
图1所示为认证加密方法流程图 具体实施方式
本发明提出了一种基于对称加密和消息可恢复签名技术的认证加密方法和系统。具体包括如下步骤。
步骤A:发送端和接收端自动生成公、私钥,将公钥和各自对应的身份
7
200910190903.X说 明 书 第4/8页
标识发送给服务器;
步骤B:发送端通过服务器收到接收端公钥,发送端密钥生成单元根据接收端公钥和选取的随机数生成发送端会话密钥,加密单元利用发送端会话密钥对要发送的消息进行加密,并利用选取的随机数、所要发送的消息以及自己的私钥生成认证信息,发送单元把加密消息和认证信息通过服务器发送给接收端;
步骤C:接收端通过服务器接收到发送端的加密消息和认证信息后,接收端密钥生成单元根据接收端自己的公、私钥、发送端的公钥以及认证信息生成接收端会话密钥,解密单元对接收到的加密消息进行解密,根据解密出的消息生成认证信息,比较单元对接收端生成的认证信息和收到的认证信息进行比较,验证消息的有效性。
步骤D:当发生纠纷时,接收端可以将收到的来自发送端的加密消息和认证信息转换为普通的签名,让第三方公开验证签名的有效性。 该发明依次通过初始化、发送、接收和验证共四个阶段来实现通信的认证加密。如图1所示为本发明认证加密方法流程图。该流程图具体步骤如下: 初始化:根据系统的安全性和效率选取大素数p和q,通常可选p的长度小于等于512比特,q的长度等于160比特,且要求满足q整除p-1;然后在乘法群Zp中选取一个q阶生成元g;建立注册用户列表L。
步骤101:发送端A参数选择单元选取随机数xa∈Zq(自然数)作为自己的私钥,发送端密钥生成单元将发送端私钥、q阶生成元g输入模指数运算单元,算法模块调用公式端A的身份
标识IDA(参数选择单元可在有限域Zq中选取一个固定长度的随机数IDA作为发送端A的身份标识),
签名单元将发送端私钥随机数xa作为签名私钥,对由公钥ya和身份标识IDA组成的消息串ya||IDA进行签名,得到关于消息串ya||IDA的签名
选择秘密随机数k,送入模指数运算单元,调用公式
a=gmodp,
b=(H(ya||IDA)-xr)kmod(p-1)确定签名信息,确定(a||b)为对消息串ya||IDA的
8
-1
k
*
计算对应的公钥ya。设置发送
200910190903.X说 明 书 第5/8页
签名
然后发送端发送模块将发送端的身份标识IDA、发送端公钥ya和签名
作为发送端A的注册信息一起发送给服务器S,服务器验证单元
利用发送端的公钥ya对发送端签名
的有效性进行验证,
将签名信
息送入指数运算单元和模指数运算单元分别计算,验证单元对计算结果进行判断,如两次计算的结果相等,即若等式
成立,则说明签名有效。如果签名有效则接受发送端A为合法的注册用户,并将注册信息IDA、ya和签名写入注册用户列表L,对用户身份和其公钥实现绑定。
接收端B参数选择单元选取随机数xb∈Zq作为自己的私钥,接收端密钥生成单元将接收端私钥、q阶生成元g输入模指数运算单元,算法模块调用公式
根据接收端私钥xb通过对大素数p进行模指数运算求得对应的
公钥yb,设置接收端B的身份标识。可在有限域Zq中选取一个固定长度(如32比特)的随机数IDB作为接收端B的身份标识,签名单元将xb作为签名私钥对由公钥yb和身份标识IDB组成的消息串yb||IDB进行签名,得到关于消息串yb||IDB的签名等身份信息,签名的具体方式与发送端相同,然后
将接收端的身份标识IDB、公钥yb和签名
作为接收端B的
注册信
息一起发送给服务器S,服务器验证单元利用接收端的公钥yb对签名
的有效性进行验证,验证方式如发送端,如果有效则接受接收端
B为合法的注册用户,并将注册信息IDB、yb和
写入注册
用户列表
L,对用户身份和其公钥实现绑定。否则拒绝接受接收端B为合法用户。 发送阶段:
步骤102:发送端A向服务器S发送身份标识IDA和IDB作为请求信息,请求获取接收端B的公钥yb。
步骤103:服务器S收到发送端A的请求后,查询单元在注册用户列表中查找发送端A和接收端B是否为合法的注册用户,如何能够在注册用户列表中查找到发送端A和接收端B的注册信息,则说明送端A和接收端B是合法的注册用户,发送单元将接收端B的公钥yb和关于消息串yb||IDB的签名
9
200910190903.X说 明 书 第6/8页
发送给发送端A。
步骤104:发送端A收到接收端B的公钥yb后,验证单元首先利用接收端B的公钥yb来验证签名份标识为
IDB的接收端B的公钥的确为yb,然后选取随机数k∈Zq,密钥生成单元调用双重模指数运算单元,进行以接收端的公钥yb为底,发送端选取的随机数k为幂的双重模指数运算,将接收端公钥yb和k输入双重模指数运算单元,调用公式K=((yb)(modp))(modq)获得发送端和接收端用于加密传输消息的对称密钥(即会话密钥),并且只有指定的接收端才能够正确的恢复出该会话密钥来解密消息。加密单元利用会话密钥K对称加密消息m,从而生成密文c=EK(m),具体可以采用DES数据加密算法。
然后,将随机数k和消息m送入加法器,相加操作后确定指数的幂,认证单元将发送端选取的随机数k、发送端的私钥xa及所要发送的消息m输入双重模指数运算单元及混合运算单元,调用公式r=(g
m+k
k
的有效性,如果有效则说明身
(modp))(modq)和
s=k/(r+xa)(modq)分别计算认证信息r和s,把c、r和s作为签名信息(c,r,s)发送给服务器S。 接收阶段:
步骤105:当接收端B登陆系统后,服务器S发送模块将IDA,ya,
c,r和s发送给接收端B。
步骤106:接收端B收到服务器的所有信息后,根据发送端签名
验证发送端A的公钥ya的有效性。如果有效接收端密钥
恢复单元
将自己的公、私钥yb和xb、发送端的公钥ya以及收到的认证信息r和s,送入双重模指数运算单元,以公钥为底,认证信息、发送端私钥为幂,调用公式:
恢复出会话密钥,该会话
密钥只有接收端B才能够唯
一的恢复出来。接收端B利用恢复出的会话密钥K对称解密密文c,得到消息m。即利用会话密钥K对称解密密文c,从而得到明文m=DK(c)。可采用如发送端A一样的如DES算法进行解密。 验证阶段:
10
200910190903.X说 明 书 第7/8页
步骤107:对消息的有效性进行验证,验证模块判断通过双重模指数运算单元获得的认证确认信息(验证信息)与收到的认证信息是否成立,如果等式成立,则消息是有效的,否则无效。
接收端B解密出消息明文m后,必须要验证消息的有效性。接收端根据上述接收的信息,算法模块利用该消息和收到的认证信息r和s通过双重模指数运算,以g、ya为底,m、r、s为幂,调用等式r′≡(g(gya)(modp))(modq)计算接收端认证确认信息r′,验证单元将认证确认信息r′与收到的认证信息进行比较,二者如果相等则说明解密出的消息m是有效的。
如果发生纠纷时,接收端或者发送端发送模块可以公布对称解密密文c、认证信息r和s组成的签名信息(c,r,s)以及消息m,将发送端对消息m的认证加密转化为一般的签名,则任何验证者都可以验证。第三方验证单元根据接收端或发送端提供的消息m,认证信息r和s,算法模块调用公式:r′=(g(gya)(modp))(modq),r″=(g验证单
元比较上述两式是否相等,如果上述两式相等,验证等式成立,即r′=r″,则可以证明(c,r,s)是发送端对消息m的有效签名。 本发明的交互过程可以具体表示如下:
初始化:发送端和接收端分别向服务器发送各自的公钥和签名。
发送:服务器向发送端发送接收端的公钥和数字签名,发送端计算密文、认证相关信息并发送到服务器端。 A→S:IDA,IDB
A→S:c,r,s
接收:服务器向接收端发送发送端的身份信息、密文及认证相关信息。
验证:根据公开的密文、相关认证信息等可对接收到的信息是否正确进
11
m
r
s
k+m
m
r
s
(modp))(mod q)计算验证信息r′、r″,
200910190903.X说 明 书 第8/8页
行验证,根据下述公式是否成立判断。
本发明为安全通信提供了一种安全、简单的认证加密方法,并具有以下技术特点:利用对称密钥加密消息,计算量较小,并且收发端、服务器三者之间交互传输信息的传输代价较小。具有前向安全性,一次一密,能够确保消息的可靠性和完整性,接收端可以利用认证信息对解密出的消息进行有效性验证。
以上所述,仅为本发明的较佳实施方式,但本发明的保护范畴并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可以轻易想到的交换和替换,都应包含在本发明的保护范围内。因此,本发明的保护范围应以权利要求的保护范围为准。
12
200910190903.X
说 明 书 附 图
第1/1页
13
图1
因篇幅问题不能全部显示,请点此查看更多更全内容