数据的签名方法、装置及系统制造方法及图纸

技术编号:15441384 阅读:129 留言:0更新日期:2017-05-26 06:33
本发明专利技术公开了一种数据的签名方法、装置及系统。其中,该方法包括:获取待签名的数据;判断待签名的数据是否满足预设条件;如果待签名的数据满足预设条件,则确定待签名的数据为认证数据,并对认证数据进行签名,得到第一签名结果;如果待签名的数据不满足预设条件,则确定待签名的数据为交易报文,并对交易报文进行签名,得到第二签名结果。本发明专利技术解决了现有技术中通过椭圆曲线算法对数据进行签名,无法判断数据是认证数据还是交易报文数据的技术问题。

Data signing method, device and system

The invention discloses a signature method, a device and a system for data. Among them, the method includes: acquiring the data to be signed; to determine whether to sign the data meets the preset conditions; if the signature data meets the preset conditions, it is determined to be the signature data for authentication data, and sign the authentication data, get the first signature to be signed; if the data does not meet the preset conditions are to determine the signature data for the transaction message, and sign the transaction message, get second signature result. The invention solves the technical problem that the data is signed by the elliptic curve algorithm in the prior art and can not judge whether the data is the authentication data or the transaction message data.

【技术实现步骤摘要】
数据的签名方法、装置及系统
本专利技术涉及信息安全领域,具体而言,涉及一种数据的签名方法、装置及系统。
技术介绍
网上银行系统中所使用的显示型USBKey,主要完成两种签名操作,一种是在SSL(安全套接层协议,SecuritySocketLayer的简写)双向认证时,利用私钥对认证服务器发过来的认证数据进行签名;另外一种是在转账交易时,对交易报文进行签名,为了到达所见即所签的目的,在使用显示型USBKey进行转账交易时,交易报文一般采用XML(可扩展标记语言,ExtensibleMarkupLanguage的简写)的格式,如下所示,USBKey在处理这些交易报文时,一方面将转入账号、转账金额等关键交易信息显示在显示屏上,供用户确认;另一方面,对交易报文的所有数据进行HASH(哈希)运算,当用户按下USBKey的确认按键时,利用私钥对交易报文的HASH结果进行签名,交易报文和签名结果一并发到银行服务器中,银行服务器验证无误后再进行实际的转账。为了防止黑客利用SSL签名伪造交易签名,USBKey需提供一种区分这两种签名的机制,在RSA体系中,业内的通常做法是:对于SSL签名,中间件利用SHA1算法(安全哈希算法,SecureHashAlgorithm的简写)对待签明文进行HASH运算,HASH结果发送给USBKey进行签名,对于交易签名,USBKey内部利用SHA256算法对交易报文进行HASH运算,再对HASH结果进行签名。在SM2(椭圆曲线算法)体系中,与签名配套使用的HASH算法只有SM3(密码杂凑算法),无法采用RSA体系中通过不同的HASH算法区分SSL签名和交易签名的方法。为了达到区分SSL签名和交易签名,目前通用的做法是:在USBKey中下载两张证书,一张为RSA证书,另一张为SM2证书,SSL签名时使用RSA证书所关联的RSA私钥,交易签名时采用SM2证书所关联的SM2私钥。针对现有技术中通过椭圆曲线算法对数据进行签名,无法判断数据是认证数据还是交易报文数据的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种数据的签名方法、装置及系统,以至少解决现有技术中通过椭圆曲线算法对数据进行签名,无法判断数据是认证数据还是交易报文数据的技术问题。根据本专利技术实施例的一个方面,提供了一种数据的签名方法,包括:获取待签名的数据;判断待签名的数据是否满足预设条件;如果待签名的数据满足预设条件,则确定待签名的数据为认证数据,并对认证数据进行签名,得到第一签名结果;如果待签名的数据不满足预设条件,则确定待签名的数据为交易报文,并对交易报文进行签名,得到第二签名结果。进一步地,判断待签名的数据是否满足预设条件包括:判断待签名的数据是否包含交易报文的报文头;如果待签名的数据不包含交易报文的报文头,则确定待签名的数据满足预设条件;如果待签名的数据包含交易报文的报文头,则确定待签名的数据不满足预设条件。进一步地,判断待签名的数据是否包含交易报文的报文头包括:获取待签名的数据中从第一个字符开始的预设个数的字符;判断预设个数的字符与交易报文的报文头是否相同;如果预设个数的字符与交易报文的报文头相同,则确定待签名的数据包含交易报文的报文头;如果预设个数的字符与交易报文的报文头不同,则确定待签名的数据不包含交易报文的报文头。进一步地,对认证数据进行签名,得到第一签名结果包括:基于密码杂凑算法,计算认证数据的哈希值,得到第一哈希值;基于椭圆曲线算法,对第一哈希值进行签名,得到第一签名结果。进一步地,对交易报文进行签名,得到第二签名结果包括:显示交易报文中的关键交易信息;在接收到确认信息之后,基于密码杂凑算法,计算交易报文的哈希值,得到第二哈希值,其中,确认信息用于表征关键交易信息正确;基于椭圆曲线算法,对第二哈希值进行签名,得到第二签名结果。进一步地,获取待签名的数据包括:接收中间件发送的待签名的数据。进一步地,在对认证数据进行签名,得到第一签名结果,或对交易报文进行签名,得到第二签名结果之后,上述方法还包括:将第一签名结果或第二签名结果返回至中间件。根据本专利技术实施例的另一方面,还提供了一种数据的签名装置,包括:获取单元,用于获取待签名的数据;第一判断单元,用于判断待签名的数据是否满足预设条件;第一签名单元,用于如果待签名的数据满足预设条件,则确定待签名的数据为认证数据,并对认证数据进行签名,得到第一签名结果;第二签名单元,用于如果待签名的数据不满足预设条件,则确定待签名的数据为交易报文,并对交易报文进行签名,得到第二签名结果。进一步地,第一判断单元包括:判断模块,用于判断待签名的数据是否包含交易报文的报文头;第一确定模块,用于如果待签名的数据不包含交易报文的报文头,则确定待签名的数据满足预设条件;第二确定模块,用于如果待签名的数据包含交易报文的报文头,则确定待签名的数据不满足预设条件。进一步地,判断模块包括:获取子模块,用于获取待签名的数据中从第一个字符开始的预设个数的字符;判断子模块,用于判断预设个数的字符与交易报文的报文头是否相同;第一确定子模块,用于如果预设个数的字符与交易报文的报文头相同,则确定待签名的数据包含交易报文的报文头;第二确定子模块,用于如果预设个数的字符与交易报文的报文头不同,则确定待签名的数据不包含交易报文的报文头。进一步地,第一签名单元包括:第一计算模块,用于基于密码杂凑算法,计算认证数据的哈希值,得到第一哈希值;第一签名模块,用于基于椭圆曲线算法,对第一哈希值进行签名,得到第一签名结果。进一步地,第二签名单元包括:显示模块,用于显示交易报文中的关键交易信息;第二计算模块,用于在接收到确认信息之后,基于密码杂凑算法,计算交易报文的哈希值,得到第二哈希值,其中,确认信息用于表征关键交易信息正确;第二签名模块,用于基于椭圆曲线算法,对第二哈希值进行签名,得到第二签名结果。进一步地,获取单元包括:接收模块,用于接收中间件发送的待签名的数据。进一步地,上述装置还包括:返回模块,用于将第一签名结果或第二签名结果返回至中间件。根据本专利技术实施例的另一方面,还提供了一种数据的签名系统,包括:中间件,用于发送待签名的数据;签名装置,与中间件具有通信关系,用于判断待签名的数据是否满足预设条件,如果待签名的数据满足预设条件,则确定待签名的数据为认证数据,并对认证数据进行签名,得到第一签名结果,如果待签名的数据不满足预设条件,则确定待签名的数据为交易报文,并对交易报文进行签名,得到第二签名结果。进一步地,签名装置还用于发送第一签名结果或第二签名结果至中间件。在本专利技术实施例中,获取待签名的数据,判断待签名的数据是否满足预设条件,如果待签名的数据满足预设条件,则确定待签名的数据为认证数据,并对认证数据进行签名,得到第一签名结果,如果待签名的数据不满足预设条件,则确定待签名的数据为交易报文,并对交易报文进行签名,得到第二签名结果,从而实现通过SM2算法对数据进行签名。容易注意到的是,在获取到待签名的数据之后,可以判断待签名的数据是否满足预设条件,从而确定待签名的数据是认证数据还是交易报文,实现了通过SM2算法对数据进行签名的过程中区分SSL签名和交易签名,解决了现有技术中通过椭圆曲线算法对数据进行签名,无本文档来自技高网
...
数据的签名方法、装置及系统

【技术保护点】
一种数据的签名方法,其特征在于,包括:获取待签名的数据;判断所述待签名的数据是否满足预设条件;如果所述待签名的数据满足所述预设条件,则确定所述待签名的数据为认证数据,并对所述认证数据进行签名,得到第一签名结果;如果所述待签名的数据不满足所述预设条件,则确定所述待签名的数据为交易报文,并对所述交易报文进行签名,得到第二签名结果。

【技术特征摘要】
1.一种数据的签名方法,其特征在于,包括:获取待签名的数据;判断所述待签名的数据是否满足预设条件;如果所述待签名的数据满足所述预设条件,则确定所述待签名的数据为认证数据,并对所述认证数据进行签名,得到第一签名结果;如果所述待签名的数据不满足所述预设条件,则确定所述待签名的数据为交易报文,并对所述交易报文进行签名,得到第二签名结果。2.根据权利要求1所述的方法,其特征在于,判断所述待签名的数据是否满足预设条件包括:判断所述待签名的数据是否包含所述交易报文的报文头;如果所述待签名的数据不包含所述交易报文的报文头,则确定所述待签名的数据满足所述预设条件;如果所述待签名的数据包含所述交易报文的报文头,则确定所述待签名的数据不满足所述预设条件。3.根据权利要求2所述的方法,其特征在于,判断所述待签名的数据是否包含所述交易报文的报文头包括:获取所述待签名的数据中从第一个字符开始的预设个数的字符;判断所述预设个数的字符与所述交易报文的报文头是否相同;如果所述预设个数的字符与所述交易报文的报文头相同,则确定所述待签名的数据包含所述交易报文的报文头;如果所述预设个数的字符与所述交易报文的报文头不同,则确定所述待签名的数据不包含所述交易报文的报文头。4.根据权利要求1所述的方法,其特征在于,对所述认证数据进行签名,得到第一签名结果包括:基于密码杂凑算法,计算所述认证数据的哈希值,得到第一哈希值;基于椭圆曲线算法,对所述第一哈希值进行签名,得到所述第一签名结果。5.根据权利要求1所述的方法,其特征在于,对所述交易报文进行签名,得到第二签名结果包括:显示所述交易报文中的关键交易信息;在接收到确认信息之后,基于密码杂凑算法,计算所述交易报文的哈希值,得到第二哈希值,其中,所述确认信息用于表征所述关键交易信息正确;基于椭圆曲线算法,对所述第二哈希值进行签名,得到所述第二签名结果。6.根据权利要求1至5中任意一项所述的方法,其特征在于,获取待签名的数据包括:接收中间件发送的所述待签名的数据。7.根据权利要求6所述的方法,其特征在于,在对所述认证数据进行签名,得到第一签名结果,或对所述交易报文进行签名,得到第二签名结果之后,所述方法还包括:将所述第一签名结果或所述第二签名结果返回至所述中间件。8.一种数据的签名装置,其特征在于,包括:获取单元,用于获取待签名的数据;第一判断单元,用于判断所述待签名的数据是否满足预设条件;第一签名单元,用于如果所述待签名的数据满足所述预设条件,则确定所述待签名的数据为认证数据,并对所述认证数据进行签名,得到第一签名结果;第二签名单元,用于如果所述待签名的数据不满足所...

【专利技术属性】
技术研发人员:胡伯良管延军蒋红宇
申请(专利权)人:北京海泰方圆科技股份有限公司
类型:发明
国别省市:北京,11

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

1