数据签名方法及系统、数据验签方法及装置与流程

文档序号:11657225阅读:807来源:国知局
数据签名方法及系统、数据验签方法及装置与流程

本发明涉及数据安全领域,特别涉及一种数据签名方法及系统、数据验签方法及装置。



背景技术:

对数据进行数字签名是数据安全领域常用的一种安全验证手段。通常采用一对非对称密钥中的私钥对目标数据进行数字签名,得到一串只有私钥拥有者才能生成的无法伪造的数字串,非对称密钥对中的公钥可对该数字串进行解密,以此验证目标数据的真实性,以及验证目标数据确实由该私钥拥有者发出。

随着互联网大规模分布式系统的发展,现有的数字签名方案逐渐出现了问题。一方面,用于生成非对称密钥的单个加密硬件设备的工作能力有限,使得现有签名方案无法适应扩容的需要;另一方面,日益严重的密钥泄漏情况也威胁着数字签名的有效性。



技术实现要素:

有鉴于此,本发明提出了一种数据签名及验签方法/系统,以应对扩容的需求和密钥泄漏的威胁。

本发明的数据签名方法包括:s1、从密钥设备获得第一非对称密钥对及其过期时间t,第一非对称密钥对由第一私钥a1和第一公钥a2组成;s2、使用第一私钥a1对待签名数据进行签名得到签名数据,并为签名数据加上签名时间信息;s3、将所述签名数据与第一公钥a2和过期时间t一同输出。

本发明的数据验签方法包括:获取通过上述数据签名方法输出的所述签名数据、第一公钥a2和过期时间t;当所述签名时间晚于所述过期时间t时,判定所述签名数据无效。

本发明的数据签名系统包括密钥设备和签名装置,所述密钥设备配置为生成第一非对称密钥及其过期时间t,第一非对称密钥对由第一私钥a1和第一公钥a2组成,所述签名装置包括:获取单元,配置为从密钥设备获得第一非对称密钥对及其过期时间t;处理单元,配置为使用第一私钥a1对待签名数据进行签名得到签名数据,并为签名数据加上签名时间信息;输出单元,配置为将所述签名数据与第一公钥a2和过期时间t一同输出。

本发明的数据验签装置包括;获取模块,配置为获取通过上述数据签名系统输出的所述签名数据、第一公钥a2和过期时间t;判定模块,配置为当检测到所述签名时间晚于所述过期时间t时,判定所述签名数据无效。

通过本发明的数据签名、验签方法及系统,能够在解决互联网大规模分布式系统对密钥设备的扩容需求的同时,有效地对抗密钥泄漏带来的数据安全风险。

附图说明

图1为本发明的数据签名方法的实施例一的示意性流程图;

图2为本发明的数据签名方法的实施例二的示意性流程图;

图3为本发明的数据签名方法的实施例三的示意性流程图;

图4为本发明的数据签名方法的实施例四的示意性流程图;

图5为本发明的数据验签方法的一个实施例的示意性流程图;

图6为本发明的数据签名系统的实施例一的示意性框图;

图7为本发明的数据签名系统的实施例二的示意性框图;

图8为本发明的数据验签装置的一个实施例的示意性框图。

具体实施方式

下面参照附图对本发明的多个实施例进行详细说明。

图1为本发明的数据签名方法的实施例一的示意性流程图。如图1所示,实施例一包括:

s1、从密钥设备获得第一非对称密钥对及其过期时间t,第一非对称密钥对由第一私钥a1和第一公钥a2组成;

s1步骤中,可以由具有密钥管理服务模块的签名装置从密钥设备获得第一非对称密钥对及其过期时间t后对获得的数据进行缓存。密钥管理服务模块具备对数据进行数字签名的功能。密钥设备例如可以为加密锁或加密卡,或者也可以为安装有加密锁或加密卡的计算机设备。密钥设备可通过运行硬件内部算法来生成第一非对称密钥对。硬件内部算法可采用符合行业标准的通用算法,例如在s1中生成第一非对称密钥对时采用的非对称算法可以是ecc、rsa、sm2等算法。

此外,本发明实施例的s1步骤中过期时间t只能由密钥设备生成,不能由密钥管理服务模块自行任意设定。可通过使用控制硬件修改密钥设备的硬件配置参数来设定过期时间t的生成机制。本发明实施例对过期时间t的具体数值的选定没有限制,只要在考虑防止第一非对称密钥对的泄漏和避免频繁访问密钥设备这两个因素之间权衡后选定即可。

当密钥设备为加密锁或加密卡时,密钥设备通过物理接口连接到签名装置,签名装置通过该物理接口从密钥设备获得第一非对称密钥对及其过期时间t。当密钥设备为连接有加密卡或加密锁的计算机设备时,可通过有线或无线通信网络或直接物理连接的方式与签名装置连接,以便签名装置从密钥设备获得第一非对称密钥对及其过期时间t。

在本发明一个实施例中,签名装置访问密钥设备时需要给出正确的访问密码才能从密钥设备获得第一非对称密钥对及其过期时间t。

s2、使用第一私钥a1对待签名数据进行签名得到签名数据,并为签名数据加上签名时间信息;

待签名数据可以为应用数据或应用数据的哈希值,数据需要签名的情况可包括例如需要验证数据是否完整或需要验证数据来源等情况。

在本发明一个实施例中,可通过请求来自第三方(即数据签名方和数据验签方之外的第三方)的时间戳服务来为签名数据添加可信的签名时间信息。

s3、将所述签名数据与第一公钥a2和过期时间t一同输出。

签名完成后,签名装置输出签名数据、第一公钥a2和过期时间t,这三者可以同时或先后输出至同一接收方,也可以同时或先后分别输出至不同接收方。

本实施例中通过为第一非对称密钥对设置过期时间t,能够确保第一非对称密钥对作为临时密钥对只能在过期时间t规定的期限内有效,能够有力地对抗密钥泄漏的风险。通过设定适当短的过期时间t,例如24小时后,甚至能使得密钥泄漏造成的损失可忽略不计。

在本发明各实施例中,密钥设备与签名装置之间可以为一对一或一对多的关系,例如多个签名装置从同一个密钥设备获取第一非对称密钥对及其过期时间t。或者密钥设备与签名装置之间可以为少量对大量的数量关系,例如几十个签名装置可选地从几个密钥设备中的一个密钥设备获取第一非对称密钥对及其过期时间t。本发明实施例通过使用少量密钥设备同时为大量签名装置提供密钥对,不但满足了签名装置的需求,同时还能极大地降低密钥设备的工作负荷,从而能够便利地实现数字签名系统的扩容。此外,在互联网大规模分布式系统中,密钥设备与签名装置通常处于网络中不同位置,以便少量的密钥设备同时为大量签名装置提供密钥对。

图2为本发明的数据签名方法的实施例二的示意性流程图。

如图2所示,本发明实施例二在图1所示实施例的基础上,进一步包括对过期时间t进行监控的步骤,在距离在用的第一非对称密钥对的过期时间t的剩余时间达到预定阈值时,再次执行s1步骤以从密钥设备获得新的第一非对称密钥对及其过期时间t。如果当前时间与过期时间t相距的时间未达到预定阈值,则继续使用当前的第一非对称密钥对进行签名处理。

在本发明实施例中,每当距离过期时间t的剩余时间达到预定阈值时,即当前时间接近过期时间t时,签名装置可再次向密钥设备请求新的第一非对称密钥对及其过期时间t。签名装置的密钥管理服务模块中可设置一个独立的子模块用于监视剩余时间是否达到预定阈值,并在剩余时间达到预定阈值时自动访问密钥设备请求新的第一非对称密钥对及其过期时间t。所请求的新的第一非对称密钥对将从当前在用的第一非对称密钥对的过期时间t时开始使用。

本发明实施例能够确保一直有能用的第一非对称密钥对存在,且签名操作和访问密钥设备的操作可分别由不同的子模块执行,从而确保了签名操作的顺畅进行。

同时,本发明实施例具备应对高并发的签名处理的能力,并能根据需要对由密钥设备和签名装置构成的数字签名系统进行弹性扩容。具体而言,例如在密钥设备中将过期时间t设定为12小时,在签名装置中设定预定阈值为2小时的情况下,当签名装置每小时需要执行1万次数字签名时,在这12小时内签名装置只需访问两次密钥装置,且此后的每12小时只需访问一次密钥装置,总体的平均访问率为1次/12小时,即0.08次/小时。又例如,在密钥设备中将过期时间t设定为24小时,在签名装置中设定预定阈值为4小时的情况下,当签名装置每小时需要执行1万次数字签名时,在这24小时内签名装置只需访问两次密钥装置,且此后的每24小时只需访问一次密钥装置,总体的平均访问率为1次/24小时,即0.04次/小时。相比之下,现有技术的方案需要签名装置每次执行数字签名时均访问密钥设备获得密钥,其访问率高达1万次/小时。可见本发明实施例的方案能够将对密钥设备的访问请求减少若干数量级。

图3为本发明的数据签名方法的实施例三的示意性流程图。

如图3所示,本发明实施例三中包括如下的s11和s12步骤以及如图1所示的s2-s3步骤,

s11、从密钥设备获得第一私钥a1的密文、第一公钥a2、过期时间t以及随机对称密钥;

s12、使用所述随机对称密钥解密第一私钥a1的密文获得第一私钥a1。

本发明实施例三中,签名装置可从密钥设备获得私钥a1的密文和用于对私钥a1加密的随机对称密钥。密钥设备可通过运行硬件内部算法来生成随机对称密钥。硬件内部算法可采用符合行业标准的通用算法,例如在s11中生成随机对称密钥时采用的对称算法可以是aes、sm4等算法。本发明实施例三可避免第一私钥a1的明文暴露在传输过程中,从而提高安全性。

在本发明一个实施例中,在图3所示的s2步骤中,在得到所述签名数据后可将第一私钥a1删除。本实施例中,私钥明文仅在签名运算的瞬间出现,能够有效地减少第一私钥a1的明文泄漏的风险。

图4为本发明的数据签名方法的实施例四的示意性流程图。

在本发明一种实施方式中,各实施例的s1步骤中,还可以包括从密钥设备获得密钥设备利用预定私钥对包括过期时间t在内的数据进行签名后得到的签名结果,即需要由密钥设备对包括过期时间t在内的数据用预定私钥签名。预定私钥例如可以为预先固化存储于密钥设备中的受信任的一对非对称密钥对中的私钥,可对密钥设备进行配置以使得只在用于签名运算时允许读取该预定私钥,否则无法读取或取出。

如图4所示,本发明实施例四中上述用预定私钥签名的包括过期时间t在内的数据还可包括第一公钥a2,即,在s1步骤中,从密钥设备获得第一非对称密钥对及其过期时间t,以及密钥设备对过期时间t和第一公钥a2的签名结果。相应地,在s1步骤之后可以包括,使用与预定私钥对应的公钥对签名结果进行验签的步骤,在验签成功后可允许执行s2步骤,如果验签不成功,则可以重新执行s1步骤从密钥设备重新获取第一非对称密钥对及其过期时间t,以及密钥设备对过期时间t和第一公钥a2的签名结果。

此外,在图3所示的实施例三中,在s1步骤中,除了可以从密钥设备获得第一非对称密钥对及其过期时间t,还可以从密钥设备获得密钥设备利用预定私钥对包括过期时间t在内的数据进行签名后得到的签名结果,这里包括过期时间t在内的数据还可以包括第一公钥a2和/或密钥设备生成的随机对称密钥。

本发明上述各实施例通过在从密钥设备获得第一非对称密钥对及其过期时间t的同时从密钥设备获得密钥设备利用预定私钥对包括过期时间t在内的数据进行签名后的签名结果,能够进一步提高密钥设备与签名装置之间的传输效率。

图5为本发明的数据验签方法的一个实施例的示意性流程图。

如图所示,本发明的数据验签方法的实施例可以包括:

s4、获取签名数据、第一公钥a2和过期时间t;

s5、当签名数据的签名时间晚于过期时间t时,判定签名数据无效。

s4步骤中的签名数据、第一公钥a2和过期时间t可以是通过上述任一实施例的数据签名方法输出的签名数据、第一公钥a2和过期时间t。在本发明实施例中,可通过查看签名数据的时间戳来验证签名数据的签名时间。需要对签名数据进行验签的一方可以使用与签名数据关联的应用程序或设备进行验签。

本发明实施例通过比较签名数据的签名时间与第一密钥对的过期时间t,能够有效地验证签名数据的合法性。通过本发明实施例的验签方法,即使出现第一私钥a1泄漏的情况,如果该密钥对的过期时间t已经过去,则该密钥对中的第一公钥a2也无法完成对签名数据的成功验签。只有在尚未到达过期时间t时,才能用正确的第一公钥a2完成对用第一私钥a1签名得到的签名数据的验签,从而在很大程度上实现了对签名数据的真实性和有效性的验证。

图6为本发明的数据签名系统的实施例一的示意性框图。

如图所示,本实施例中数据签名系统包括密钥设备10和签名装置20。

密钥设备10可以配置为生成第一非对称密钥及其过期时间t,第一非对称密钥对由第一私钥a1和第一公钥a2组成。

签名装置20可包括获取单元21、处理单元22和输出单元23。

获取单元21可以配置为从密钥设备10获得第一非对称密钥对及其过期时间t。过期时间t只能由密钥设备10生成,不能由签名装置20自行任意设定。可通过使用控制硬件修改密钥设备10的硬件配置参数来设定过期时间t的生成机制。本发明实施例对过期时间t的具体数值的选定没有限制,只要在考虑防止第一非对称密钥对的泄漏和避免频繁访问密钥设备这两个因素之间权衡后选定即可。

处理单元22可以配置为使用第一私钥a1对待签名数据进行签名得到包括签名时间的签名数据。输出单元23可以配置为将签名数据与第一公钥a2和过期时间t一同输出。

签名装置20的获取单元21从密钥设备10获得第一非对称密钥对及其过期时间t后对获得的数据进行缓存。密钥设备20例如可以为加密锁或加密卡,或者也可以为安装有加密锁或加密卡的计算机设备。密钥设备20可通过运行硬件内部算法来生成第一非对称密钥对。硬件内部算法可采用符合行业标准的通用算法。

当密钥设备10为加密锁或加密卡时,密钥设备10通过物理接口连接到签名装置20,签名装置20通过该物理接口从密钥设备10获得第一非对称密钥对及其过期时间t。当密钥设备10为连接有加密卡或加密锁的计算机设备时,可通过有线或无线通信网络或直接物理连接的方式与签名装20置连接,以便签名装置20从密钥设备10获得第一非对称密钥对及其过期时间t。

在本发明一个实施例中,签名装置20访问密钥设备10时需要给出正确的访问密码才能从密钥设备10获得第一非对称密钥对及其过期时间t。

在本发明一个实施例中,签名装置20可通过请求来自第三方(即数据签名方和数据验签方之外的第三方)的时间戳服务来为签名数据添加可信的签名时间信息。

本实施例中通过为第一非对称密钥对设置过期时间t,能够确保第一非对称密钥对作为临时密钥对只能在过期时间t规定的期限内有效,能够有力地对抗密钥泄漏的风险。本发明实施例还能够实现使用少量密钥设备同时为大量签名装置提供密钥对,不但满足了签名装置的需求,同时还能将对密钥设备的访问请求减少若干数量级,极大地降低了密钥设备的工作负荷,从而能够便利地实现数字签名系统的扩容。

图7为本发明的数据签名系统的实施例二的示意性框图。

如图所示,图6所示的数据签名系统中的签名装置20还可以包括剩余时间检测单元24,其配置为检测距离在用的第一非对称密钥对的过期时间t的剩余时间是否达到预定阈值。同时,本实施例中的获取单元21进一步配置为当剩余时间检测单元24检测到剩余时间达到预定阈值时,从密钥设备10获得新的第一非对称密钥对及其过期时间t。

本发明实施例能够确保一直有能用的第一非对称密钥对存在,且签名操作和访问密钥设备的操作可分别由不同的模块执行,从而确保了签名操作的顺畅进行。

在本发明一个实施例中,密钥设备10可以配置为生成第一非对称密钥对及其过期时间t、随机对称密钥,并配置为使用所述随机对称密钥对所述第一私钥a1加密生成第一私钥a1的密文。获取单元21可以配置为从密钥设备10获得第一私钥a1的密文、第一公钥a2、过期时间t以及随机对称密钥,处理单元22可以进一步配置为使用该随机对称密钥解密第一私钥a1的密文获得第一私钥a1。本发明实施例可避免第一私钥a1的明文暴露在传输过程中,从而提高安全性。进一步地,处理单元22还可以配置为在进行签名得到签名数据后将作为明文的第一私钥a1删除,使得私钥明文仅在签名运算的瞬间出现,能够有效地减少第一私钥a1的明文泄漏的风险。

在本发明的一种实施方式中,密钥设备10可以进一步配置为利用预定私钥对包括过期时间t在内的数据进行签名后得到签名结果,且获取单元21进一步配置为从密钥设备10获得该签名结果。预定私钥例如可以为预先固化存储于密钥设备中的受信任的一对非对称密钥对中的私钥,可对密钥设备进行配置以使得只在用于签名运算时允许读取该预定私钥,否则无法读取或取出。在本发明其他实施例中,上述包括过期时间t在内的数据还可以包括第一公钥a2或上述的随机对称密钥或其组合。

相应地,处理单元22可以配置为使用与预定私钥对应的公钥对从密钥设备10获得的签名结果进行验签,并在验签成功后才进行数据签名。

本发明上述各实施例通过在从密钥设备获得第一非对称密钥对及其过期时间t的同时从密钥设备获得密钥设备利用预定私钥对包括过期时间t在内的数据进行签名后的签名结果,能够进一步提高密钥设备与签名装置之间的传输效率。

图8为本发明的数据验签装置的一个实施例的示意性框图。

如图所示,本发明实施例的数据验签装置30可以包括获取模块31和判定模块32。

获取模块31可以配置为获取上述任一实施例的数据签名系统输出的签名数据、第一公钥a2和过期时间t。

判定模块32可以配置为当检测到数据签名的签名时间晚于过期时间t时,判定签名数据无效。

在本发明实施例中,可通过查看签名数据的时间戳来验证签名数据的签名时间。

本发明实施例的验签装置30通过比较签名数据的签名时间与第一密钥对的过期时间t,能够有效地验证签名数据的合法性。如此,即使出现第一私钥a1泄漏的情况,如果该密钥对的过期时间t已经过去,则该密钥对中的第一公钥a2也无法完成对签名数据的成功验签。只有在尚未到达过期时间t时才能用正确的第一公钥a2完成对用第一私钥a1签名得到的签名数据的验签,从而在很大程度上实现了对签名数据的真实性和有效性的验证。

以上对本发明的一些实施例进行了说明,然而,本发明不限于这些具体实施例,本领域技术人员在不脱离本发明构思的情况下,能够对本发明实施例进行多种修改和变型,这些修改和变型都应落入本发明要求保护的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1