CN102571357A - 一种签名的实现方法和装置 - Google Patents
一种签名的实现方法和装置 Download PDFInfo
- Publication number
- CN102571357A CN102571357A CN2012100439043A CN201210043904A CN102571357A CN 102571357 A CN102571357 A CN 102571357A CN 2012100439043 A CN2012100439043 A CN 2012100439043A CN 201210043904 A CN201210043904 A CN 201210043904A CN 102571357 A CN102571357 A CN 102571357A
- Authority
- CN
- China
- Prior art keywords
- data
- signature
- preset
- value
- length
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000006243 chemical reaction Methods 0.000 claims description 38
- 238000007689 inspection Methods 0.000 claims description 10
- 241001269238 Data Species 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 abstract description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Document Processing Apparatus (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种签名的实现方法和装置,该方法包括:接收主机发送的签名请求指令,并对其按照预设规则进行解析;根据首部预设长度数据检测待签名数据的类型,如是待签名原文数据,则根据解析得到的数据域确定签名密钥的存储位置、签名标识和待签名原文数据,根据签名标识对应的算法对待签名原文数据和数据域中的用户标识长度和用户标识值进行预处理,生成待签名数据;如是预处理后的数据,则当签名请求指令的数据域长度值与预设值相符时,根据数据域确定签名密钥的存储位置和待签名数据;对待签名数据进行签名生成签名结果并将其按照第一预设格式发送给主机。本发明的实现方案由于签名公钥和用户标识的参与,提高了签名的安全性和可识别性。
Description
技术领域
本发明属于信息安全领域,尤其涉及一种签名的实现方法和装置。
背景技术
目前,随着网络技术的飞速发展,信息安全性已成为亟待解决的问题。公钥密码体制中,解密和加密过程使用的密钥不同,解密和加密可分离,通信双方无须事先交换密钥就可建立起保密通信,较好地解决了传统密码体制在网络通信中出现的问题。另外,随着电子商务的发展,网络上资金的电子交易日益频繁,如何防止信息的伪造和欺骗也成为非常重要的问题。
数字签名可以起到身份认证,核准数据完整性的作用。目前关于数字签名的研究主要集中基于公钥密码体制的数字签名。公钥密码体制的特点是:为每个用户产生一对密钥即公钥和私钥;公钥是公开的,私钥是保密的;但是从公钥推出私钥是很困难的;A、B双方通信时,A通过任何途径取得B的公钥,用B的公钥加密信息。加密后的信息可通过任何不安全信道发送。B收到密文信息后,用自己私钥解密恢复出明文。
但是,目前公钥体制签名存在运算量较大,占用内存空间较高,并且可识别性不高的缺点。
发明内容
针对现有技术的不足,本发明提供了一种签名的实现方法和装置,以解决目前公钥体制签名的所存在运算量比较大,占用内存空间较高,并且可识别性不高的缺点。
本发明提供一种签名的实现方法,包括:
步骤A:接收主机发送的签名请求指令,并对所述签名请求指令按照预设规则进行解析,确定首部预设长度数据、数据域长度值和数据域;
步骤B:判断所述首部预设长度数据是否与第一预设字符串相符,是则执行步骤C,否则判断所述首部预设长度数据是否与第二预设字符串相符,是则执行步骤E,如果所述首部预设长度数据与第一预设字符串和第二预设字符串都不相符,则给主机返回错误提示信息;
步骤C:根据所述数据域确定签名密钥的存储位置、签名标识和待签名原文数据;
步骤D:根据所述签名标识对应的算法对所述待签名原文数据和所述数据域中的用户标识长度和用户标识值进行预处理,生成待签名数据,顺序执行步骤G;
步骤E:检查所述签名请求指令的数据域长度值是否与预设值相符,是则执行步骤F,否则给主机返回错误提示信息;
步骤F:根据所述数据域确定签名密钥的存储位置和待签名数据,顺序执行步骤G;
步骤G:对所述待签名数据进行签名操作生成签名结果,并将所述签名结果按照第一预设格式发送给主机。
其中,在接收到签名请求指令和对所述签名请求指令进行解析之间,还包括:
判断所述签名请求指令能否按照第二预设格式进行解析,能则并对所述签名请求指令按照预设规则进行解析,否则给主机返回错误提示信息。
其中,所述判断所述签名请求指令能否按照第二预设格式进行解析,具体包括:
步骤A1:判断所述签名请求指令的总长度是否达到预设长度,是则继续,否则给主机返回错误提示信息;和/或
步骤A2:从所述签名请求指令的预设位置提取数据域长度并确定数据域长度值,检查所述签名请求指令中预设位置之后的数据所占字节数是否与所述数据域长度值相符,是则继续;否则给主机返回错误提示信息;和/或
步骤A3:检查所述签名请求指令的最后三个字节是否全为0x00,是则继续,否则给主机返回错误提示信息。
其中,所述步骤A中确定数据域的过程包括:
从所述签名请求指令的预设位置提取数据域长度数据,对所述数据域长度数据进行处理生成数据域长度值,从所述签名请求指令中的数据域长度数据之后的剩余数据中提取所述数据域长度值的数据作为数据域。
其中,所述步骤C中确定签名密钥的存储位置的过程包括:
步骤C10:根据所述数据域中的前两个字节数据,检索应用对象,并判断是否检索到,是则执行步骤C11,否则给主机返回错误提示信息;
步骤C11:根据所述数据域中的第三和第四字节检索容器对象,并判断是否检索到,是则执行步骤C12,否则给主机返回错误提示信息;
步骤C12:根据所述应用对象和所述容器对象检索对应的存储位置,并判断所述存储位置中是否存在与预设类型相符的签名密钥,是则继续后续操作,否则给主机返回错误提示信息;
所述步骤C中确定签名标识的过程包括:
步骤C20:根据所述数据域的第五到第八字节确定签名标识的长度;
步骤C21:从所述数据域的第九字节开始提取相应长度的数据作为签名标识;
所述步骤C中确定待签名原文数据的过程包括:
取所述数据域的所述签名标识之后的数据为所述待签名原文数据。
其中,所述步骤D包括:
步骤D1:获取第一参数、第二参数、第三参数和第四参数,根据所述存储位置获取所述签名密钥的签名公钥;所述第一参数、所述第二参数和第四参数为一维数据,所述签名公钥和所述第三参数为二维数据;
步骤D2:将所述数据域中的用户标识长度转化为两个字节的二进制数生成第一转化值;
步骤D3:将所述第一转化值、所述数据域中的用户标识值、所述第一参数、所述第二参数、所述第三参数的横坐标、第三参数的纵坐标、所述签名公钥的横坐标、签名公钥的纵坐标依顺序串联拼接,得到第一拼接值;
步骤D4:根据预设算法对所述第一拼接值进行计算,生成第一数据;
步骤D5:将所述第一数据和所述待签名原文数据进行串联拼接,生成待签名数据。
其中,当所述首部预设长度数据与第一预设字符串相符时,步骤G包括:
步骤G1:对所述待签名数据按照第一预设算法进行计算,生成第二数据,将所述第二数据转化为十进制数生成第二转化值;
步骤G2:生成第一随机数,根据所述第一随机数和第三参数生成第一临时参数,所述第一临时参数为二维数据;
步骤G3:将所述第一临时参数的横坐标转化为十进制数得到第一点值,根据所述第二转化值和所述第一点值生成第一取模值;根据所述第四参数和第一随机数生成第三数据;
步骤G4:判断所述第一取模值是否等于0或者所述第三数据,是则返回步骤G2,否则执行步骤G5;
步骤G5:根据所述存储位置获取所述签名密钥的签名私钥,对所述签名私钥按照第二预设算法进行计算,生成第一运算值;根据所述签名私钥和所述第一取模值进行计算,生成第二运算值;对所述第一运算值和第二运算值进行计算生成第二取模值;
步骤G6:判断所述第二取模值是否为0,是则返回步骤G2,否则执行步骤G7;
步骤G7:分别将所述第一取模值和所述第二取模值转化为二进制数,并将两者的转化结果分别作为签名结果的横坐标和纵坐标;
步骤G8:将所述签名结果按照第一预设格式发送给主机。
其中,所述步骤F中确定签名密钥的存储位置的过程包括:
步骤F10:根据所述数据域中的前两个字节数据,检索应用对象,并判断是否检索到,是则执行步骤F11,否则给主机返回错误提示信息;
步骤F11:根据所述数据域中的第三和第四字节检索容器对象,并判断是否检索到,是则执行步骤F12,否则给主机返回错误提示信息;
步骤F12:根据所述应用对象和所述容器对象检索对应的存储位置,并判断所述存储位置中是否存在与预设类型相符的签名密钥,是则继续后续操作,否则给主机返回错误提示信息;
所述步骤F中确定待签名数据的过程包括:
取所述数据域的第四字节之后的数据为所述待签名数据。
其中,当所述首部预设长度数据与第二预设字符串相符时,所述步骤G包括:
步骤G1:获取第三参数和第五参数,并将所述第五参数转化为二进制数生成第三转化值;
步骤G2:对所述待签名数据按照第一预设算法进行计算,生成第一计算结果,将所述第一计算结果转化为十进制数生成第四转化值;
步骤G3:生成第二随机数,根据所述第二随机数和所述第三参数生成第二临时参数,将所述第二临时参数的横坐标转化为十进制数生成第二点值;
步骤G4:根据所述第四转化值和所述第二点值生成第三取模值,根据所述第三转化值和所述第二随机数生成第四数据;
步骤G5:判断所述第三取模值是否等于0或者所述第四数据,是则返回步骤G3,否则执行步骤G6;
步骤G6:根据所述存储位置获取所述签名密钥的签名私钥,对所述签名私钥按照第二预设算法进行计算,生成第三运算值;根据所述签名私钥和所述第三取模值生成第四运算值;对所述第三运算值和所述第四运算值进行计算生成第四取模值;
步骤G7:判断所述第四取模值是否为0,是则返回步骤G3,否则执行步骤G8;
步骤G8:分别将所述第三取模值和第四取模值转化为二进制数,并将两者的转化结果分别作为签名结果的横坐标和纵坐标;
步骤G9:将所述签名结果按照第一预设格式发送给主机。
本发明又提供一种签名的实现装置,包括:
通讯模块,用于接收主机发送的签名请求指令,用于给所述主机返回错误提示信息和符合第一预设格式的签名结果;
解析模块,用于对所述签名请求指令按照第二预设规则进行解析,确定首部预设长度数据、数据域长度值和数据域;
第一判断模块,用于判断所述首部预设长度数据是否与第一预设字符串相符,还用于判断所述首部预设长度数据是否与第二预设字符串相符;
获取模块,当所述待签名数据的类型为待签名原文数据时,用于根据所述数据域确定签名密钥的存储位置、签名标识和待签名原文数据;当所述待签名数据的类型为预处理后的数据时,用于根据所述数据域确定签名密钥的存储位置和待签名数据;
预处理模块:用于当所述待签名数据的类型为待签名原文数据时,根据预设算法对所述待签名原文数据和所述数据域中的用户标识长度和用户标识值进行预处理,生成待签名数据;
检查模块:用于当所述待签名数据的类型为预处理后的数据时,检查所述签名请求指令的数据域长度值是否与预设值相符;
签名模块:用于对所述待签名数据进行签名操作生成签名结果。
其中,所述装置还包括:
第二判断模块:用于判断所述签名请求指令能否按照第二预设格式进行解析。
其中,所述第二判断模块具体包括:
第一判断单元,用于判断所述签名请求指令的总长度是否达到预设长度;
确定单元:用于从所述签名请求指令的预设位置提取数据域长度并确定数据域长度值;
第一检查单元,用于检查所述签名请求指令的数据域长度之后的剩余数据长度是否与所述数据域长度值相符;
第三检查单元,用于检查签名请求指令的最后三个字节是否全为0x00。
本发明的有益效果是:本申请的实现方案相对现有技术的签名方法具有速度快、安全性能高、内存资源要求低的特点;同时在签名过程由于公钥和用户标识的参与,又提高了签名的安全性和可识别性。
附图说明
图1是本实施例2提供的一种签名的实现方法流程图;
图2是本实施例3提供的对待签名原文数据进行预处理和签名的流程图;
图3是本实施例4提供的对预处理后的数据进行签名的流程图;
图4是本实施例5提供的一种签名的实现装置的方框图。
具体实施方式
以下实施例为本发明所介绍的详细实现过程,下面结合附图对优选的实施例进行详细说明。
本发明提供的实施例中,实现签名操作的主体为签名装置,主机和签名装置中所有的数据都是以二进制比特串的形式存在的,在签名装置中进行的所有操作都是对二进制比特串的操作。为了便于说明本实施例中所有提供的方法,将实施例中所有除整数类型之外的数据均以十六进制的形式进行表示。
实施例1
本实施例1提供了一种签名的实现方法,包括如下步骤:
步骤A:接收主机发送的签名请求指令,并对所述签名请求指令按照预设规则进行解析,确定首部预设长度数据、数据域长度值和数据域;
本实施例中,在进行解析之前还包括:判断所述签名请求指令能否按照第二预设格式进行解析,能则并对所述签名请求指令按照预设规则进行解析,否则给主机返回错误提示信息。
步骤B:判断所述首部预设长度数据是否与第一预设字符串相符,是则执行步骤C,否则判断所述首部预设长度数据是否与第二预设字符串相符,是则执行步骤E,如果所述首部预设长度数据与第一预设字符串和第二预设字符串都不相符,则给主机返回错误提示信息;
在本实施例中,如果所述首部预设长度数据与第一预设字符串和第二预设字符串都不相符,则为其他指令,对其他指令如何响应不在本专利范围内,但本专利的范围不应限于“对签名请求指令之外的指令不做响应”或“对签名请求指令之外的指令做特定的响应”,本实施例中是给主机返回错误提示信息;
步骤C:根据所述数据域确定签名密钥的存储位置、签名标识和待签名原文数据;
本实施例中,确定存储位置、签名标识和待签名原文数据的过程在实施例二中进行详述。
步骤D:根据所述签名标识对应的算法对所述待签名原文数据和所述数据域中的用户标识长度和用户标识值进行预处理,生成待签名数据,顺序执行步骤G;
步骤E:检查所述签名请求指令的数据域长度值是否与预设值相符,是则执行步骤F,否则给主机返回错误提示信息;
步骤F:根据所述数据域确定签名密钥的存储位置和待签名数据,顺序执行步骤G;
具体的,在本实施例中,该步骤的确定签名密钥的存储位置和待签名数据与步骤D中确定签名密钥的存储位置和待签名原文数据的方法相同。
步骤G:对所述待签名数据进行签名操作生成签名结果,并将所述签名结果按照第一预设格式发送给主机。
本实施例中,可以通过解析签名指令,获取待签名数据的类型以及根据不同的待签名数据类型来获取所需的各个参数,在对待签名数据进行签名的过程中由于签名公钥的参与,增强了该签名的安全性,由于用户标识的参与,使得该签名具备了可识别性,且本发明提供的签名的实现方法运算量小,操作更方便。
实施例2
参见图1,为本实施例2提供的一种签名的实现方法的流程图;具体包括如下步骤:
步骤100:接收主机发送的签名请求指令,判断签名请求指令能否按照第二预设格式进行解析,是则执行步骤101,否则停止操作;
优选地,在本实施例中,所述停止操作具体为:向主机发送预先约定的错误代码,给主机返回错误提示信息。
停止操作后,如果从主机接收到新的指令,则继续对其进行相应操作。
所述判断签名请求指令能否按照第二预设格式进行解析的方法具体为:
步骤2’-1:判断所述签名请求指令的数据长度是否达到预设长度;如果是,则继续执行下一步;如果否,则停止操作;
本实施例中的预设长度为不小于4的整数。优选的,本实施例中预设长度为整数10。
步骤2’-2:从所述签名请求指令的预设位置提取数据域长度并确定数据域长度值;
具体地,所述预设位置为签名请求指令的第六和第七字节。
需要说明的是,在本实施例中,还进行如下判断:如果第五字节的数据不为预先设定的0x00,则签名请求指令不完整。
本实施例中,确定数据域长度值的实现过程具体为:将第六字节的数据作为数据域长度值的高字节,将第七字节数据作为数据域长度值的低字节,将高字节和低字节串联拼接后得到数据域长度值。
例如,本实施例中,第六字节为0x00,第七字节为0x1C,则串联拼接后得到的数据域长度值为0x001C(即十进制数28)。
步骤2’-3:检查所述签名请求指令的剩余数据的长度是否与所述数据域长度值相符,是则继续执行后续步骤;否则停止操作。
所述剩余数据长度指的是所述签名请求除上述数据之外的剩余部分的字节长度,即第七字节之后的剩余部分的字节长度。具体地,本实施例中如果剩余数据的长度比所述数据域长度值多3字节,则二者相符,否则不相符。
步骤2’-4:检查签名请求指令的最后三个字节是否全为0x00,如果是,则签名请求指令完整,继续执行后续步骤;如果否,则签名请求指令不完整,停止操作。
在本实施例中,步骤2’-1、步骤2’-3和步骤2’-4的判断过程没有先后顺序,可以先执行任意一个判断过程,当判断为是时继续执行后续步骤。
步骤101:对所述签名请求指令进行解析;
本实施例中,若接收到的请求指令是以密文的形式存在,在执行相应操作之前,先将请求指令解析成为可以识别的二进制比特串形式的数据;若接收到的指令是未进行加密的,则可直接识别该请求指令;
步骤102:根据预先约定的格式获得待签名的数据类型;
判断的方法具体为:
如果所述接收到的请求指令的首部预设长度的数据与第一预设字符串相符,则待签名的数据类型为待签名原文数据,顺序执行步骤103;如果首部预设长度的数据与第二预设字符串相符,则待签名的数据类型为预处理后的数据,顺序执行步骤105;
具体的,在本实施例中,预设的长度为4个字节,第一预设字符串以十六进制表示为:80 74 01 00;第二预设字符串以十六进制表示为:80 74 02 00;
如果所述接收到的请求指令的首部预设长度的数据与上述第一、第二预设字符串都不符,则所述接收到的请求指令不是签名请求指令,其处理方式不在本发明范围之内,在此不做具体说明。
在本实施例中,在步骤103和步骤105之前还包括对使用者的身份进行验证的操作,优选地,对使用者的身份进行验证的操作在步骤102和步骤103之间或步骤102和步骤105之间进行,具体包括:
所述签名装置通过主机或通过自带的显示屏或发声装置,提示用户输入密码,并验证用户输入的密码是否正确,是则继续,否则给主机返回错误提示信息,报错。
步骤103:根据签名请求指令的数据域确定签名参数,即签名密钥的存储位置、待签名原文数据和签名标识。
具体地,在本实施例中,所述数据域是指所述签名请求指令中除了前七个字节和最后三个字节之外的数据。
具体的,本实施例中,确定签名密钥的存储位置的方法具体为:
步骤4-1:根据数据域中的前两个字节数据,检索应用对象,并判断是否检索到;如果检索到,则执行步骤4-2;如果未检索到,返回错误提示信息,停止操作;
具体的,根据数据域的前两个字节数据从自身存储的应用对象列表中检索相应的应用对象;例如,本实施例中代表应用对象的字节数据为0001。
步骤4-2:根据数据域中的第三和第四字节检索容器对象,并判断是否检索到;如果检索到,则继续执行步骤4-3;如果未检索到,返回错误提示信息,停止操作;
具体的,根据数据域中的第三和第四字节从步骤4-1所检索到的应用对象对应的容器对象列表中检索对应的容器对象;例如,本实施例中代表密钥对象的字节数据为0002。
步骤4-3:根据所述应用对象和所述容器对象检索对应的存储位置,并判断该存储位置中是否存在与预设类型相符的签名密钥,如果是,继续,否则,停止操作;
本实施例中,获取签名标识的方法具体为:
步骤5-1:根据数据域的第五到第八字节的数据确定签名标识的长度。
具体方法为:将第五字节作为签名标识的长度的最高字节,将第八字节作为签名标识的长度的最低字节,将第五字节数据到第八字节数据顺序串联拼接后的结果作为签名标识的长度的值。
例如,第五到第八字节的数据为00 01 00 02,则签名标识的长度的值为0x10002(即十进制数65538)。
步骤5-2:从所述数据域的第九字节开始提取相应长度的数据作为签名标识;
如果所述数据域中第八字节之后的数据的长度不大于所述签名标识的长度值,则停止操作。
本实施例中,获取待签名原文数据的方法具体为:
将数据域中除了前述已提取的数据之外的部分作为待签名原文数据。
获取待签名原文数据之后,在本实施例中,还包括:
检查所述待签名原文数据的长度是否与预设值相同,如果是,则继续执行后续步骤;否则,停止操作。
优选地,在本实施例中,所述预设值为32。
步骤104:根据签名标识对应的预设算法对所述待签名原文数据进行预处理,生成待签名数据,顺序执行步骤107;
具体的,本实施例中的预处理过程在实施例3中进行详细说明。
步骤105:检查所述签名请求指令的数据域长度值是否与预设值相符,如果是,则执行步骤106;否则,停止操作。
本实施例中步骤105具体为:判断所述签名请求指令的所述数据域长度值是否比所述预设值多4字节,如果是,则相符;否则,不相符。
步骤106:根据数据域确定签名参数,即签名密钥的存储位置和待签名数据,顺序执行步骤107;
该步骤中确定签名密钥的存储位置与步骤103的方法相同,在此不再赘述;确定待签名数据的方法具体为:将所述签名请求指令中的数据域的第四字节之后的数据作为待签名数据。
步骤107:使用所述签名密钥对所述待签名数据计算签名,并将签名结果按照预设格式发送给主机;
具体地,在本实施例中,所述预设格式为:前4个字节是所述签名密钥的位长度,后续相应长度的数据是所述签名结果,最后是2字节结果代码。
实施例3
本发明实施例3是在实施例2的基础上,以待签名的数据类型为待签名原文数据为例,详细介绍进行预处理和签名的实现过程,如图2所示,包括:
以解析得到的主机发送的签名请求指令数据为如下具体数据为例对本实施例进行详细说明:80740100 00001C 0001 0002 00000006 313233343536 6D65737361676520 64696765 7374 000000;
步骤201:获取第一参数、第二参数、第三参数以及第四参数,同时根据容器对象获取签名公钥,并将上述数值均转换为预设长度的字节类型数据;
其中,第一参数、第二参数和第四参数分别为一维数组;第三参数分别为二维数组;预设长度为256比特;
例如,本实施例中转换后的第一参数a以十六进制表示为:a=787968B4FA32C3FD 2417842E 73BBFEFF 2F3C848B 6831D7E0 EC65228B 3937E498:
第二参数b以十六进制表示为:b=63E4C6D3 B23B0C84 9CF84241484BFE48 F61D59A5 B16BA06E 6E12D1DA 27C5249A;
第三参数G以十六进制表示为:Gx=421DEBD6 1B62EAB6 746434EBC3CC315E 32220B3B ADD50BDC 4C4E6C14 7FEDD43D;Gy=0680512BCBB42C07 D47349D2 153B70C4 E5D7FDFC BFA36EA1 A85841B9E46E09A2;
第四参数n以十六进制表示为:n=8542D69E 4C044F18 E8B92435BF6FF7DD 29772063 0485628D 5AE74EE7 C32E79B7;
本实施例中,签名公钥为二维数组,转换后的签名公钥P以十六进制表示为:Px=0AE4C779 8AA0F119 471BEE11 825BE462 02BB79E2 A5844495E97C04FF 4DF2548A;Py=7C0240F8 8F1CD4E1 6352A73C 17B7F16F 07353E53A176D684 A9FE0C6B B798E857;
步骤202:从请求指令中获取用户标识长度和用户标识值,并将用户标识长度转换为长度为两个字节的第一转化值,此时记用户标识长度为L1;
具体的,在本实施例中,获取的用户标识长度L1为:00000006;获取的用户标识值为:313233343536。
步骤203:将用户标识长度L1、用户标识值、第一参数、第二参数、第三参数横坐标Gx值、第三参数纵坐标Gy值、签名公钥横坐标Px值和签名公钥纵坐标Py值依次按序将串联拼接,得到第一拼接值;
步骤204:根据第一预设算法对第一拼接值进行计算,生成预设长度的第一数据;
本实施例中的预设长度为256比特;生成的第一数据Z以十六进制表示为:Z=F4A38489 E32B45B6 F876E3AC 2168CA39 2362DC8F 23459C1D 1146FC3DBFB7BC9A;
本实施例步骤204中,第一预设算法具体为hash算法。
步骤205:将第一数据和待签名原文数据进行拼接,生成待签名数据;
第一数据和待签名原文数据进行拼接的方式为按序串联拼接;
步骤205中得到的待签名数据M以十六进制表示为:M=F4A38489E32B45B6 F876E3AC 2168CA39 2362DC8F 23459C1D 1146FC3D BFB7BC9A6D657373 61676520 64696765 7374;
步骤206:对待签名数据按照第一预设算法进行计算,得到预设长度的第二数据,并将所述第二数据的数据类型转换为整数类型生成第二转化值;
本实施例中,预设长度为256比特;得到的第二数据E以十六进制表示为:E=B524F552 CD82B8B0 28476E00 5C377FB1 9A87E6FC 682D48BB5D42E3D9 B9EFFE76;
步骤207:生成第一随机数K1;
本实施例中,产生的第一随机数K1可以为真随机数也可以为以真随机数为种子产生的伪随机数;且第一随机数K1取值范围为1到第四参数减1之间;
第一随机数K1以十六进制表示为:K=6CB28D99 385C175C 94F94E934817663F C176D925 DD72B727 260DBAAE 1FB2F96F;
步骤208:根据第一随机数和第三参数生成临时参数,并将该临时参数的横坐标的数据类型转换为整数类型,记为第一点值;
本实施例中,临时参数Q为一个二维数组,其值为第一随机数与第三参数的乘积,临时参数Q的值以十六进制表示为:Qx=110107FCDA5 7615705D5E7B9324 AC4B856D 23E6D918 8B2AE477 59514657 CE25D112;Qy=1C65D68A 4A08601D F24B431E 0CAB4EBE 084772B3 817E85811A8510B2 DF7ECA1A;
步骤209:根据第二转化值和第一点值生成第一取模值,并判断第一取模值是否为所需值;如果是,则执行步骤210;如果否,则返回步骤207;
本实施例中,签名装置计算生成第一取模值具体为:对第二转化值和第一点值执行模数为n的加法运算,并记取模结果为第一取模值;
签名装置判断第一取模值是否为所需值具体为:判断第一取模值是否等于0或等于第四参数与第一随机数的差;是则第一取模值不为所需值,返回步骤207;否则第一取模值为所需值,并将第一取模值作为签名结果第一部分,执行步骤210;
在步骤209中,参与运算的数据的数据类型均为整数类型。
步骤210:根据签名私钥、第一取模值和第一随机数生成第二取模值,并判断第二取模值是否为所需值;如果是,则执行步骤211;如果否,则返回执行步骤207;
本实施例中计算生成第二取模值的过程具体为:
步骤210-1:根据容器对象和存储位置获取签名私钥,并将签名私钥的值加1,并对相加结果取倒数,将该倒数值记为第一运算值;
步骤210-2:将第一取模值与签名私钥的值做乘积,并以第一随机数为被减数减去上述乘积结果,得到第二运算值;
步骤210-3:对第一运算值和第二运算值执行模数为n的乘法运算,并记取模结果为第二取模值;
具体的,签名私钥为一维数组,本实施例中将签名私钥D以十六进制表示为:D=128B2FA8 BD433C6C 068C8D80 3DFF7979 2A519A55 171B1B650C23661D 15897263;
签名装置判断第二取模值是否为所需值具体为:判断第二取模值是否为0;是则第二取模值不为所需值,返回步骤207;否则第二取模值为所需值,并将第二取模值作为签名结果的第二部分,执行步骤210;
在本实施例的步骤210中,参与运算的数据的数据类型均为整数类型。
步骤211:根据第一取模值和第二取模值生成第一签名结果,并将该第一签名结果按照预设格式返回给主机;
具体的,将签名装置将签名结果的第一部分(即第一取模值)和签名结果的第二部分(即第二取模值)分别转换为长度为256比特的字节类型,得到第一字节串和第二字节串,生成第一签名结果;
第一字节串R以十六进制表示为:R=40F1EC59 F793D9F4 9E09DCEF49130D41 94F79FB1 EED2CAA5 5BACDB49 C4E755D1;
第二字节串S以十六进制表示为:S=6FC6DAC3 2C5D5CF1 0C77DFB20F7C2EB6 67A45787 2FB09EC5 6327A67E C7DEEBE7;
第一签名结果为一个二维数组(R,S),具体为:(40F1EC59 F793D9F49E09DCEF 49130D41 94F79FB 1EED2CAA5 5BACDB49 C4E755D1,6FC6DAC3 2C5D5CF1 0C77DFB2 0F7C2EB6 67A45787 2FB09EC5 6327A67EC7DEEBE7);
签名装置将第一签名结果和待签名数据一起返回给主机后用于验证端进行验证签名操作。
本实施例中,根据待签名数据的类型为待签名原文数据来获取所需的各个参数,进行预处理和签名的过程中由于签名公钥的参与,提高了该签名的安全性,还由于用户标识的参与,使得该签名具备了可识别性,并且本发明提供的签名实现方法运算量小,操作更方便。
实施例4
本发明实施例4是在实施例2的基础上,以待签名数据的类型为预处理后的数据为例,详细介绍对待签名数据进行签名的具体过程,如图3所示,包括:
本实施中进行签名操作的主体为签名装置,以解析得到的主机发送的签名请求指令数据为如下具体数据为例对本实施例进行说明:80740200 00002E 00010002 F4A38489 E32B45B6 F876E3AC 2168CA39 2362DC8F 23459C1D1146FC3D BFB7BC9A 6D657373 61676520 64696765 7374 000000;
步骤301:签名装置获取第三参数和第五参数,并将其转换为预设长度的第三转化值;
本实施例中,第三转化值n以十六进制表示为:n=8542D69E 4C044F18E8B92435 BF6FF7DD 29772063 0485628D 5AE74EE7 C32E79B7;
步骤302:根据第一预设算法对待签名数据进行计算,生成预设长度的第一计算结果,并将第一计算结果的数据类型转换为整数类型得到第四转化值;
本实施例中的第四转化值E以十六进制表示为:E=B524F552 CD82B8B028476E00 5C377FB1 9A87E6FC 682D48BB 5D42E3D9 B9EFFE76;
步骤303:生成第二随机数K2;
本实施例中,产生的第二随机数K2可以为真随机数也可以为以真随机数为种子产生的伪随机数;且第一随机数K2取值在在1和第四参数减1之间;
第二随机数K2用字节类型表示为:K=6CB28D99 385C175C 94F94E934817663F C176D925 DD72B727 260DBAAE 1FB2F96F;
步骤304:根据第二随机数和第三参数生成一个临时参数,并将该参数的横坐标值的数据类型转换为整数类型得到第二点值;
本实施例中,临时参数Q为一个二为数组,其值为第一随机数与第三参数的乘积,临时参数Q的值以十六进制表示为:Qx=110FCDA5 7615705D 5E7B9324AC4B856D 23E6D918 8B2AE477 59514657 CE25D112;Qy=1C65D68A4A08601D F24B431E 0CAB4EBE 084772B3 817E8581 1A8510B2DF7ECA1A;
步骤305:根据第四转化值和第二点值生成第一取模值,并判断第一取模值是否为所需值;如果是,则执行步骤306;如果否,则执行步骤303;
签名装置计算生成第一取模值具体为:对第四转化值和第二点值执行模数为n的加法运算,并记取模结果为第一取模值。
签名装置判断第一取模值是否为所需值具体为:判断第一取模值是否等于0或等于第五参数与第一随机数的差;是则第一取模值不为所需值,返回步骤303;否则第一取模值为所需值,并将第一取模值作为签名结果的第一部分,执行步骤306;
在本实施例的步骤305中,参与运算的数据的数据类型均为整数类型。
步骤306:根据签名私钥、第一取模值和第二随机数生成第二取模值,并判断第二取模值是否为所需值;如果是,则执行步骤307;如果否,则执行步骤303;
签名装置计算生成第二取模值的过程具体为:
步骤306-1:根据容器对象和存储位置获取签名私钥,并将签名私钥的值加1,并对相加结果取倒数,将该倒数值记为第三运算值;
步骤306-2:将第一取模值与签名私钥值做乘积,并以第二随机数K2为被减数减去上述乘积结果,得到第四运算值;
步骤306-3:对第三运算值和第四运算值执行模数为n的乘法运算,并记取模结果为第二取模值;
具体的,本实施例中签名私钥为一维数组,将签名私钥D以十六进制表示为:D=128B2FA8 BD433C6C 068C8D80 3DFF7979 2A519A55 171B1B650C23661D 15897263;
签名装置判断第二取模值是否为所需值具体为:判断第二取模值是否为0;是则第二取模值不为所需值;返回步骤303;否则第二取模值为所需值,并将第二取模值作为签名结果的第二部分,执行步骤307;
在本实施例的步骤306中,参与运算的数据的数据类型均为整数类型。
步骤307:根据第一取模值和第二取模值生成第一签名结果,并将第一签名结果按照预设格式返回给主机;
具体的,将签名装置将签名结果的第一部分(即第一取模值)和签名结果的第二部分(即第二取模值)分别转换为长度为256比特的字节类型,得到第一字节串和第二字节串,生成第一签名结果;
第一字节串R以十六进制表示为:R=40F1EC59 F793D9F4 9E09DCEF49130D41 94F79FB1 EED2CAA5 5BACDB49 C4E755D1;
第二字节串S以十六进制表示为:S=6FC6DAC3 2C5D5CF1 0C77DFB20F7C2EB6 67A45787 2FB09EC5 6327A67E C7DEEBE7;
签名结果为一个二维数组(R,S),具体为:(40F1EC59 F793D9F4 9E09DCEF49130D41 94F79FB1 EED2CAA5 5BACDB49 C4E755D1,6FC6DAC32C5D5CF1 0C77DFB2 0F7C2EB6 67A45787 2FB09EC5 6327A67EC7DEEBE7);
签名装置将第一签名结果和待签名数据一起返回给主机后用于验证端进行验证签名操作。
本实施例4中,待签名数据的类型为签名原文数据经过预设算法之后的数据,该待签名数据是由用户自行生成的;用户生成待签名数据所需要的第一参数、第二参数、签名公钥、第三参数、用户标识长度L和用户标识值都是事先已经公开的。
本实施例中,根据待签名数据的类型为处理后的数据来获取所需的各个参数,对待签名数据进行签名的过程中由于签名公钥的参与,提高了该签名的安全性,由于用户标识的参与,使得该签名具备了可识别性,又由于带签名数据为处理后的数据,减少了签名过程中的运算量,提高了操作速率。
实施例5
参见图4,为本发明实施例5提供的一种签名的实现装置图,具体包括:
通讯模块41,用于接收主机发送的签名请求指令,用于给所述主机返回错误提示信息和符合第一预设格式的签名结果;
解析模块42,用于对所述签名请求指令按照第二预设规则进行解析,确定首部预设长度数据、数据域长度值和数据域;
第一判断模块43,用于判断所述首部预设长度数据是否与第一预设字符串相符,还用于判断所述首部预设长度数据是否与第二预设字符串相符;
获取模块44,当所述待签名数据的类型为待签名原文数据时,用于根据所述数据域确定签名密钥的存储位置、签名标识和待签名原文数据;当所述待签名数据的类型为预处理后的数据时,用于根据所述数据域确定签名密钥的存储位置和待签名数据;
预处理模块45:用于当所述待签名数据的类型为待签名原文数据时,根据预设算法对所述待签名原文数据和所述数据域中的用户标识长度和用户标识值进行预处理,生成待签名数据;
检查模块46:用于当所述待签名数据的类型为预处理后的数据时,检查所述签名请求指令的数据域长度值是否与预设值相符;
签名模块47:用于对所述待签名数据进行签名操作生成签名结果;
本实施例中,为使签名过程更简单方便,所述装置还包括第二判断模块48,用于判断所述签名请求指令能否按照第二预设格式进行解析,是则解析模块42开始工作,否则通讯模块41给主机返回错误提示信息;
本实施例中,第二判断模块48具体包括:
第一判断单元,用于判断所述签名请求指令的总长度是否达到预设长度;
确定单元:用于从所述签名请求指令的预设位置提取数据域长度并确定数据域长度值;
第一检查单元,用于检查所述签名请求指令的数据域长度之后的剩余数据长度是否与所述数据域长度值相符;
第三检查单元,用于检查签名请求指令的最后三个字节是否全为0x00。
本发明的实施例,通过解析签名指令,获取待签名数据的类型以及根据不同的待签名数据类型来获取所需的各个参数,对待签名数据进行签名的过程中由于签名公钥的参与,增强了该签名的安全性,由于用户标识的参与,使得该签名具备了可识别性,并且本发明提供的签名实现方法运算量小,操作更方便。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种签名的实现方法,其特征在于,包括:
步骤A:接收主机发送的签名请求指令,并对所述签名请求指令按照预设规则进行解析,确定首部预设长度数据、数据域长度值和数据域;
步骤B:判断所述首部预设长度数据是否与第一预设字符串相符,是则执行步骤C,否则判断所述首部预设长度数据是否与第二预设字符串相符,是则执行步骤E,如果所述首部预设长度数据与第一预设字符串和第二预设字符串都不相符,则给主机返回错误提示信息;
步骤C:根据所述数据域确定签名密钥的存储位置、签名标识和待签名原文数据;
步骤D:根据所述签名标识对应的算法对所述待签名原文数据和所述数据域中的用户标识长度和用户标识值进行预处理,生成待签名数据,顺序执行步骤G;
步骤E:检查所述签名请求指令的数据域长度值是否与预设值相符,是则执行步骤F,否则给主机返回错误提示信息;
步骤F:根据所述数据域确定签名密钥的存储位置和待签名数据,顺序执行步骤G;
步骤G:对所述待签名数据进行签名操作生成签名结果,并将所述签名结果按照第一预设格式发送给主机。
2.如权利要求1所述的方法,其特征在于,在接收到签名请求指令和对所述签名请求指令进行解析之间,还包括:
判断所述签名请求指令能否按照第二预设格式进行解析,能则并对所述签名请求指令按照预设规则进行解析,否则给主机返回错误提示信息。
3.如权利要求2所述的方法,其特征在于,所述判断所述签名请求指令能否按照第二预设格式进行解析,具体包括:
步骤A1:判断所述签名请求指令的总长度是否达到预设长度,是则继续,否则给主机返回错误提示信息;和/或
步骤A2:从所述签名请求指令的预设位置提取数据域长度并确定数据域长度值,检查所述签名请求指令中预设位置之后的数据所占字节数是否与所述数据域长度值相符,是则继续;否则给主机返回错误提示信息;和/或
步骤A3:检查所述签名请求指令的最后三个字节是否全为0x00,是则继续,否则给主机返回错误提示信息。
4.如权利要求1-3任一项所述的方法,其特征在于,所述步骤A中确定数据域的过程包括:
从所述签名请求指令中的数据域长度数据之后的剩余数据中提取所述数据域长度值的数据作为数据域。
5.如权利要求4所述的方法,其特征在于,所述步骤C中确定签名密钥的存储位置的过程包括:
步骤C10:根据所述数据域中的前两个字节数据,检索应用对象,并判断是否检索到,是则执行步骤C11,否则给主机返回错误提示信息;
步骤C11:根据所述数据域中的第三和第四字节检索容器对象,并判断是否检索到,是则执行步骤C12,否则给主机返回错误提示信息;
步骤C12:根据所述应用对象和所述容器对象检索对应的存储位置,并判断所述存储位置中是否存在与预设类型相符的签名密钥,是则继续后续操作,否则给主机返回错误提示信息;
所述步骤C中确定签名标识的过程包括:
步骤C20:根据所述数据域的第五到第八字节确定签名标识的长度;
步骤C21:从所述数据域的第九字节开始提取相应长度的数据作为签名标识;
所述步骤C中确定待签名原文数据的过程包括:
取所述数据域的所述签名标识之后的数据为所述待签名原文数据。
6.如权利要求5所述的方法,其特征在于,所述步骤D包括:
步骤D1:获取第一参数、第二参数、第三参数和第四参数,根据所述存储位置获取所述签名密钥的签名公钥;所述第一参数、所述第二参数和第四参数为一维数据,所述签名公钥和所述第三参数为二维数据;
步骤D2:将所述数据域中的用户标识长度转化为两个字节的二进制数生成第一转化值;
步骤D3:将所述第一转化值、所述数据域中的用户标识值、所述第一参数、所述第二参数、所述第三参数的横坐标、第三参数的纵坐标、所述签名公钥的横坐标、签名公钥的纵坐标依顺序串联拼接,得到第一拼接值;
步骤D4:根据预设算法对所述第一拼接值进行计算,生成第一数据;
步骤D5:将所述第一数据和所述待签名原文数据进行串联拼接,生成待签名数据。
7.如权利要求6所述的方法,其特征在于,当所述首部预设长度数据与第一预设字符串相符时,步骤G包括:
步骤G1:对所述待签名数据按照第一预设算法进行计算,生成第二数据,将所述第二数据转化为十进制数生成第二转化值;
步骤G2:生成第一随机数,根据所述第一随机数和第三参数生成第一临时参数,所述第一临时参数为二维数据;
步骤G3:将所述第一临时参数的横坐标转化为十进制数得到第一点值,根据所述第二转化值和所述第一点值生成第一取模值;根据所述第四参数和第一随机数生成第三数据;
步骤G4:判断所述第一取模值是否等于0或者所述第三数据,是则返回步骤G2,否则执行步骤G5;
步骤G5:根据所述存储位置获取所述签名密钥的签名私钥,对所述签名私钥按照第二预设算法进行计算,生成第一运算值;根据所述签名私钥和所述第一取模值进行计算,生成第二运算值;对所述第一运算值和第二运算值进行计算生成第二取模值;
步骤G6:判断所述第二取模值是否为0,是则返回步骤G2,否则执行步骤G7;
步骤G7:分别将所述第一取模值和所述第二取模值转化为二进制数,并将两者的转化结果分别作为签名结果的横坐标和纵坐标;
步骤G8:将所述签名结果按照第一预设格式发送给主机。
8.如权利要求4所述的方法,其特征在于,所述步骤F中确定签名密钥的存储位置的过程包括:
步骤F10:根据所述数据域中的前两个字节数据,检索应用对象,并判断是否检索到,是则执行步骤F11,否则给主机返回错误提示信息;
步骤F11:根据所述数据域中的第三和第四字节检索容器对象,并判断是否检索到,是则执行步骤F12,否则给主机返回错误提示信息;
步骤F12:根据所述应用对象和所述容器对象检索对应的存储位置,并判断所述存储位置中是否存在与预设类型相符的签名密钥,是则继续后续操作,否则给主机返回错误提示信息;
所述步骤F中确定待签名数据的过程包括:
取所述数据域的第四字节之后的数据为所述待签名数据。
9.如权利要求8所述的方法,其特征在于,当所述首部预设长度数据与第二预设字符串相符时,所述步骤G包括:
步骤G1:获取第三参数和第五参数,并将所述第五参数转化为二进制数生成第三转化值;
步骤G2:对所述待签名数据按照第一预设算法进行计算,生成第一计算结果,将所述第一计算结果转化为十进制数生成第四转化值;
步骤G3:生成第二随机数,根据所述第二随机数和所述第三参数生成第二临时参数,将所述第二临时参数的横坐标转化为十进制数生成第二点值;
步骤G4:根据所述第四转化值和所述第二点值生成第三取模值,根据所述第三转化值和所述第二随机数生成第四数据;
步骤G5:判断所述第三取模值是否等于0或者所述第四数据,是则返回步骤G3,否则执行步骤G6;
步骤G6:根据所述存储位置获取所述签名密钥的签名私钥,对所述签名私钥按照第二预设算法进行计算,生成第三运算值;根据所述签名私钥和所述第三取模值生成第四运算值;对所述第三运算值和所述第四运算值进行计算生成第四取模值;
步骤G7:判断所述第四取模值是否为0,是则返回步骤G3,否则执行步骤G8;
步骤G8:分别将所述第三取模值和第四取模值转化为二进制数,并将两者的转化结果分别作为签名结果的横坐标和纵坐标;
步骤G9:将所述签名结果按照第一预设格式发送给主机。
10.一种签名的实现装置,其特征在于,包括:
通讯模块,用于接收主机发送的签名请求指令,用于给所述主机返回错误提示信息和符合第一预设格式的签名结果;
解析模块,用于对所述签名请求指令按照第二预设规则进行解析,确定首部预设长度数据、数据域长度值和数据域;
第一判断模块,用于判断所述首部预设长度数据是否与第一预设字符串相符,还用于判断所述首部预设长度数据是否与第二预设字符串相符;
获取模块,当所述待签名数据的类型为待签名原文数据时,用于根据所述数据域确定签名密钥的存储位置、签名标识和待签名原文数据;当所述待签名数据的类型为预处理后的数据时,用于根据所述数据域确定签名密钥的存储位置和待签名数据;
预处理模块:用于当所述待签名数据的类型为待签名原文数据时,根据预设算法对所述待签名原文数据和所述数据域中的用户标识长度和用户标识值进行预处理,生成待签名数据;
检查模块:用于当所述待签名数据的类型为预处理后的数据时,检查所述签名请求指令的数据域长度值是否与预设值相符;
签名模块:用于对所述待签名数据进行签名操作生成签名结果。
11.如权利要求10所述的装置,其特征在于,还包括:
第二判断模块:用于判断所述签名请求指令能否按照第二预设格式进行解析。
12.如权利要求11所述的装置,其特征在于,所述第二判断模块具体包括:
第一判断单元,用于判断所述签名请求指令的总长度是否达到预设长度;
确定单元:用于从所述签名请求指令的预设位置提取数据域长度并确定数据域长度值;
第一检查单元,用于检查所述签名请求指令的数据域长度之后的剩余数据长度是否与所述数据域长度值相符;
第三检查单元,用于检查签名请求指令的最后三个字节是否全为0x00。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210043904.3A CN102571357B (zh) | 2012-02-24 | 2012-02-24 | 一种签名的实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210043904.3A CN102571357B (zh) | 2012-02-24 | 2012-02-24 | 一种签名的实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102571357A true CN102571357A (zh) | 2012-07-11 |
CN102571357B CN102571357B (zh) | 2014-03-26 |
Family
ID=46415898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210043904.3A Active CN102571357B (zh) | 2012-02-24 | 2012-02-24 | 一种签名的实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102571357B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833073A (zh) * | 2012-08-31 | 2012-12-19 | 成都卫士通信息产业股份有限公司 | 一种增强密钥分发安全性的数据传输格式及其封装方法 |
CN102970145A (zh) * | 2012-12-21 | 2013-03-13 | 飞天诚信科技股份有限公司 | 一种签名方法及装置 |
CN103490894A (zh) * | 2013-09-09 | 2014-01-01 | 飞天诚信科技股份有限公司 | 一种确定智能密钥设备生命周期的实现方法及装置 |
CN103516511A (zh) * | 2013-09-11 | 2014-01-15 | 国家电网公司 | 一种对加密算法与密钥进行检测的方法及装置 |
CN104331657A (zh) * | 2014-09-29 | 2015-02-04 | 飞天诚信科技股份有限公司 | 一种支持数据签名的java卡实现方法 |
CN105939198A (zh) * | 2016-06-24 | 2016-09-14 | 西安电子科技大学 | 在时间约束下基于位置的数字签名方法 |
CN107026874A (zh) * | 2017-06-02 | 2017-08-08 | 李维刚 | 一种指令签名与验证方法及系统 |
CN107124407A (zh) * | 2017-04-21 | 2017-09-01 | 东软集团股份有限公司 | 数据传输方法、装置、可读存储介质、电子设备及系统 |
CN107154854A (zh) * | 2017-05-19 | 2017-09-12 | 李维刚 | 一种无人机指令加固与鉴别方法及系统 |
CN111756750A (zh) * | 2020-06-24 | 2020-10-09 | 中国建设银行股份有限公司 | 安全访问方法、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111193595B (zh) * | 2019-11-28 | 2023-05-09 | 腾讯云计算(北京)有限责任公司 | 电子签名的错误检测方法、装置、设备和存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060400A (zh) * | 2006-04-18 | 2007-10-24 | 佳能株式会社 | 数据生成装置、数据分析装置、控制方法和数据处理系统 |
-
2012
- 2012-02-24 CN CN201210043904.3A patent/CN102571357B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060400A (zh) * | 2006-04-18 | 2007-10-24 | 佳能株式会社 | 数据生成装置、数据分析装置、控制方法和数据处理系统 |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102833073B (zh) * | 2012-08-31 | 2014-12-17 | 成都卫士通信息产业股份有限公司 | 一种增强密钥分发安全性的数据传输格式及其封装方法 |
CN102833073A (zh) * | 2012-08-31 | 2012-12-19 | 成都卫士通信息产业股份有限公司 | 一种增强密钥分发安全性的数据传输格式及其封装方法 |
CN102970145A (zh) * | 2012-12-21 | 2013-03-13 | 飞天诚信科技股份有限公司 | 一种签名方法及装置 |
CN102970145B (zh) * | 2012-12-21 | 2015-01-14 | 飞天诚信科技股份有限公司 | 一种签名方法及装置 |
CN103490894A (zh) * | 2013-09-09 | 2014-01-01 | 飞天诚信科技股份有限公司 | 一种确定智能密钥设备生命周期的实现方法及装置 |
CN103516511A (zh) * | 2013-09-11 | 2014-01-15 | 国家电网公司 | 一种对加密算法与密钥进行检测的方法及装置 |
CN103516511B (zh) * | 2013-09-11 | 2016-05-04 | 国家电网公司 | 一种对加密算法与密钥进行检测的方法及装置 |
CN104331657B (zh) * | 2014-09-29 | 2017-03-22 | 飞天诚信科技股份有限公司 | 一种支持数据签名的java卡实现方法 |
CN104331657A (zh) * | 2014-09-29 | 2015-02-04 | 飞天诚信科技股份有限公司 | 一种支持数据签名的java卡实现方法 |
CN105939198A (zh) * | 2016-06-24 | 2016-09-14 | 西安电子科技大学 | 在时间约束下基于位置的数字签名方法 |
CN105939198B (zh) * | 2016-06-24 | 2019-04-23 | 西安电子科技大学 | 在时间约束下基于位置的数字签名方法 |
CN107124407A (zh) * | 2017-04-21 | 2017-09-01 | 东软集团股份有限公司 | 数据传输方法、装置、可读存储介质、电子设备及系统 |
CN107124407B (zh) * | 2017-04-21 | 2019-09-13 | 东软集团股份有限公司 | 数据传输方法、装置、可读存储介质、电子设备及系统 |
CN107154854A (zh) * | 2017-05-19 | 2017-09-12 | 李维刚 | 一种无人机指令加固与鉴别方法及系统 |
CN107026874A (zh) * | 2017-06-02 | 2017-08-08 | 李维刚 | 一种指令签名与验证方法及系统 |
CN111756750A (zh) * | 2020-06-24 | 2020-10-09 | 中国建设银行股份有限公司 | 安全访问方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102571357B (zh) | 2014-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102571357B (zh) | 一种签名的实现方法和装置 | |
CN109495465B (zh) | 基于智能合约的隐私集合交集方法 | |
CN103714642B (zh) | 密钥下载方法、管理方法、下载管理方法及装置和系统 | |
US8712041B2 (en) | Content protection apparatus and content encryption and decryption apparatus using white-box encryption table | |
CN102572314B (zh) | 图像传感器以及支付认证方法 | |
CN110601853A (zh) | 一种区块链私钥生成方法以及设备 | |
CN101241572B (zh) | 一种电子签名工具的操作方法及电子签名工具 | |
CN109617675B (zh) | 一种充放电设施与用户端间的双方标识认证方法及系统 | |
CN106327723B (zh) | 一种基于智能平台的mPOS交易系统 | |
CN110149209A (zh) | 物联网设备及其提高数据传输安全性的方法和装置 | |
CN113255007B (zh) | 一种安全隐匿三要素查询方法 | |
CN107871081A (zh) | 一种计算机信息安全系统 | |
CN107135408A (zh) | 一种视频流地址的鉴权方法及装置 | |
TWI835300B (zh) | 一種資料匹配方法、裝置、設備及介質 | |
CN106060073B (zh) | 信道密钥协商方法 | |
CN110474908A (zh) | 交易监管方法与装置、存储介质及计算机设备 | |
CN108805574B (zh) | 基于隐私保护的交易方法和系统 | |
US20100005519A1 (en) | System and method for authenticating one-time virtual secret information | |
CN110635900B (zh) | 一种适用于物联网系统的密钥管理方法及系统 | |
CN112398861B (zh) | web组态化系统中敏感数据的加密系统及方法 | |
CN108933659A (zh) | 一种智能电网的身份验证系统及验证方法 | |
CN117294429B (zh) | 基于区块链的公共资源交易数据加解密方法、系统及介质 | |
CN1599313A (zh) | 一种公开加密方式的口令动态加密输入方法 | |
CN109768969A (zh) | 权限控制方法及物联网终端、电子设备 | |
CN109784918A (zh) | 基于区块链的信息监督方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 17th floor, building B, Huizhi building, No.9, Xueqing Road, Haidian District, Beijing 100085 Patentee after: Feitian Technologies Co.,Ltd. Country or region after: China Address before: 100085 17th floor, block B, Huizhi building, No.9 Xueqing Road, Haidian District, Beijing Patentee before: Feitian Technologies Co.,Ltd. Country or region before: China |