基于公共非对称密钥池的抗量子计算的签章方法和签章系统与流程

文档序号:17298502发布日期:2019-04-03 04:40阅读:166来源:国知局
基于公共非对称密钥池的抗量子计算的签章方法和签章系统与流程

本发明涉及安全通信领域,尤其是一种使用密钥卡实现抗量子计算的电子印章方法。



背景技术:

电子印章,也叫做数字印章,是数字签名的一种可视化的表现形式,亦可以理解为传统的印章及手写签名的电子化,它的功能类似于使用在纸质文档上的传统印章或手写签名。需要加盖电子印章的对象是电子文档,这些电子文档也要在网络环境中传输,这使得电子印章应用系统变得相对复杂。因此,电子印章并不等同于简单的电子印章图片,它必须具备易用性、安全性、扩展性等三种基本特性。

电子印章系统主要用于保障在开放的网络环境下,系统中流转的公文的真实有效、不被篡改。系统以密码学为理论基础,为依托,结合数字水印技术、数据库技术、组件技术等,实现电子文档的盖章效果,文档验证、打印控制、权限控制、证书管理等功能。同时,电子印章系统解决了当下传统印章所遇到的最大问题,就是传统印鉴技术与现代无纸化办公之间的矛盾。在一个信息自动化的环境下,所有的公文都以数字文档的形式存在,传统的盖章或签名的确认方式在这种环境下将无法继续使用。另外,在网络技术如此发达的今天,很多文件却必须靠邮寄的方式来传递,这对于一个跨地域、多部门的工作来说,也会严重影响其效率和成本。

目前,用户对电子印章及其相关产品的需求也越来越迫切,很多政府机关和企业已经明确提出希望能够使用电子印章,从而促进办公电子化,提高现有系统的安全性,增加效率。政府和专家也对电子签名、电子印章技术相当重视,可靠的电子签名与手写签名或者盖章具有同等的法律效力。并指出,安全电子印章是我国印章史上的一场革命。中国安全电子印章管理应用系统将世界上先进的数字认证技术应用于印章治安管理中,强化对电子印章的制作和应用各个环节的管理,确保电子印章持有者身份真实可靠。相信不远的将来电子印章一定会在办公自动化、企业信息化、电子商务和电子政务等许多领域广泛应用。

量子计算机在密码破解上有着巨大潜力。当今主流的非对称(公钥)加密算法,如rsa加密算法,大多数都是基于大整数的因式分解或者有限域上的离散对数的计算这两个数学难题。它们的破解难度也就依赖于解决这些问题的效率。传统计算机上,要求解这两个数学难题,花费时间为指数时间(即破解时间随着公钥长度的增长以指数级增长),这在实际应用中是无法接受的。而为量子计算机量身定做的秀尔算法可以在多项式时间内(即破解时间随着公钥长度的增长以k次方的速度增长,其中k为与公钥长度无关的常数)进行整数因式分解或者离散对数计算,从而为rsa、离散对数加密算法的破解提供可能。

现有技术存在的问题:

1.现有技术中,由于量子计算机能快速通过公钥得到对应的私钥,因此基于公私钥的数字签名方法被量子计算机破解,导致基于数字签名技术的电子印章也被量子计算机破解。

2.现有技术中,基于公私钥的数字签名的输入和输出均可被他方所知,在量子计算机存在的情况下,可能被推导出私钥,导致电子印章被量子计算机破解。



技术实现要素:

为了进一步提高签章的安全性,本发明提供一种利用电子印章进行签章的方法。

一种基于公共非对称密钥池的抗量子计算的签章方法,包括:

分别向印章服务器以及各客户端预颁发密钥卡,其中客户端的密钥卡内存储有印章图片和非对称密钥池;

印章服务器密钥卡内存储有电子印章和非对称密钥池,且各密钥卡中均配置有随机数发生器以及相同的非对称密钥池;

签章方的客户端利用密钥卡内的印章图片对文件进行预签章,并将预签章后的文件发送至印章服务器请求进行签章;

印章服务器响应于客户端的请求对文件进行签章生成带有电子签章的文件发送给验章方的客户端;

所述电子签章中至少包括由印章公钥参与生成的印章签名,以及用于在非对称密钥池中提取印章公钥的印章公钥指针随机数;

验章方的客户端利用印章公钥指针随机数从非对称密钥池中提取印章公钥,并利用印章公钥对印章签名进行验证。

以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。

可选的,所述印章公钥指针随机数与印章公钥的对应关系为:

印章服务器的密钥卡的随机数发生器生成印章公钥指针随机数;

利用公钥指针函数作用于印章公钥指针随机数,生成公钥指针;

该公钥指针指向印章服务器的密钥卡内的非对称密钥池得到指定位置,该指定位置内容即对应印章公钥。

可选的,签章方的客户端进行所述预签章包括:

利用私钥对插入印章图片的文件进行签名得到认证签名;

用匹配的密钥卡中的随机数发生器生成认证随机数,利用该认证随机数加密认证签名生成认证签名密文;

利用私钥对该随机数进行加密生成认证密钥密文;

认证密钥密文和认证签名密文共同构成认证文件签名;

将客户端id、文件和认证文件签名均发送给印章服务器请求进行签章;所述印章服务器对接收到的认证文件签名进行签名验证,通过后再进行签章。

可选的,所述印章签名的生成方式包括:

印章服务器用私钥对电子印章的至少包含印章公钥的相关部分进行签名得到第一签名;

印章服务器产生第一随机数,并利用该第一随机数对第一签名进行加密形成第一签名密文;

印章服务器用私钥对第一随机数进行加密生成第一密钥密文;

第一密钥密文和第一签名密文共同构成印章签名。

可选的,密钥卡内还存储有印章服务器的公钥,所述印章签名的验证方式包括:

验章方的客户端利用匹配的密钥卡以及印章公钥指针随机数采用相应的方式获得印章公钥;

用印章服务器公钥对印章签名中的第一密钥密文部分进行解密,得到第一随机数,再用第一随机数对第一签名密文进行解密得到第一签名;

用印章服务器公钥解密第一签名,并对该第一签名进行验证。

可选的,所述电子签章中还包括签章签名,验章时还包括对签章签名的验证;所述签章签名的生成方式包括:

印章服务器用私钥对电子签章中的相关部分进行签名得到第二签名;

印章服务器的密钥卡的随机数发生器生成第二随机数,并用第二随机数对第二签名进行加密形成第二签名密文;

印章服务器用私钥对第二随机数进行加密生成第二密钥密文;

第二密钥密文和第二签名密文共同构成签章签名。

可选的,所述签章签名的验证方式包括:

验章方的客户端用印章服务器的公钥对签章签名中的第二密钥密文部分进行解密,得到第二随机数;

用第二随机数对签章签名中的第二签名密文进行解密得到第二签名,并对该第二签名进行验证。

可选的,所述电子签章中还包括文件签名,验章时还包括对文件签名的验证;所述文件签名的生成方式包括:

印章服务器用私钥对文件进行签名得到第三签名;

该第三随机数对第三签名进行加密形成第三签名密文;

印章服务器用私钥对第三随机数进行加密生成第三密钥密文;

第三密钥密文和第三签名密文共同构成文件签名;

所述文件签名的验证方式包括:

验章方的客户端用印章服务器的公钥对文件签名中的第三密钥密文部分进行解密,得到第三随机数;

用第三随机数对文件签名中的第三签名密文进行解密得到第三签名,并对该第三签名进行验证。

本发明还提供一种基于公共非对称密钥池的抗量子计算的签章系统,包括印章服务器以及分别作为签章方和验章方的客户端,印章服务器以及各客户端分别配置有密钥卡,其中客户端的密钥卡内存储有印章图片和非对称密钥池;

印章服务器密钥卡内存储有电子印章和非对称密钥池,且各密钥卡中均配置有随机数发生器以及相同的非对称密钥池;

签章方的客户端利用密钥卡内的印章图片对文件进行预签章,并将预签章后的文件发送至印章服务器请求进行签章;

印章服务器响应于客户端的请求对文件进行签章生成带有电子签章的文件发送给验章方的客户端;

所述电子签章中至少包括由印章公钥参与生成的印章签名,以及用于在非对称密钥池中提取印章公钥的印章公钥指针随机数;

验章方的客户端利用印章公钥指针随机数从非对称密钥池中提取印章公钥,并利用印章公钥对印章签名进行验证。

本发明中,使用密钥卡存储公钥、私钥和电子印章图片;且对外发布的只是公钥的指针随机数,并不是原始的公钥本身。密钥卡是独立的硬件隔离设备,被恶意软件或恶意操作窃取密钥或电子印章图片的可能性大大降低。由于量子计算机无法得到明文公钥,于是也无法得到对应的私钥,因此该方案的电子印章不容易被量子计算机破解。

本发明中,基于公私钥的数字签名被随机数密钥进一步加密,而随机数密钥被私钥加密,形成加密的数字签名。即使在量子计算机存在的情况下,也难以被推导出私钥。因此该方案的电子印章不容易被量子计算机破解。

附图说明

图1为本发明中使用的不同密钥卡关系图;

图2为本发明中服务器密钥卡内部结构图;

图3为本发明中使用的客户端密钥卡内部结构图;

图4为本发明中的电子印章和电子签章的关系图;

图5为本发明中的电子印章的公开部分内部结构图;

图6为本发明中的电子签章内部结构图;

图7为本发明中的公钥加密为抗量子计算公钥的流程图;

图8为签名方生成数字签名的流程图;

图9为验证方验证数字签名的流程图;

图10为本发明中签章的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了更好地描述和说明本申请的实施例,可参考一幅或多幅附图,但用于描述附图的附加细节或示例不应当被认为是对本申请的发明创造、目前所描述的实施例或优选方式中任何一者的范围的限制。

参见图1~图10,本实施例基于对称密钥池的抗量子电子印章方法过程如下。

1.印章服务器颁发密钥卡:

1.1本发明中,印章服务器负责颁发服务器密钥卡和客户端密钥卡,并且拥有属于自己的公私钥。

印章服务器还处理来自客户端的请求,对客户端发来的文件进行签章。

本发明中电子印章客户端可为移动终端或者固定终端,终端均配备有密钥卡。

属于一个客户端群组的各个客户端所匹配的密钥卡和服务器端密钥卡颁发方均为印章服务器,该服务器即密钥卡的主管方,一般属于某企业或事业单位的管理部门。

客户端密钥卡被颁发方为密钥卡的主管方所管理的成员,一般为某企业或事业单位的各级员工,其使用电子印章客户端进行签章或者验章的准备工作,客户端按照角色又可分为签章方和验章方。

客户端首先到密钥卡的主管方申请开户。当客户端进行注册登录获批后,将得到密钥卡(具有唯一的id)。

各密钥卡中配置有随机数发生器。

密钥卡是类似usbkey、sdkey、主机密钥板卡的独立的硬件隔离设备,内部分为多个区域。

客户端密钥卡存储有客户端的公钥和私钥、印章服务器的公钥、印章图片和非对称密钥池。

服务器密钥卡存储有印章服务器公钥和私钥、电子印章的公开部分、电子印章的隐私部分和非对称密钥池。

由于服务器密钥卡存储有与多个客户端分别相应的电子印章,因此也可视为电子印章池。

同一群组成员(例如本文中提及的签章方、验章方以及印章服务器)所拥有的密钥卡中,非对称密钥池相同,密钥卡内也存储相同的函数或算法等,用于进行相应的运算。

因密钥卡的硬件隔离属性,存储在其中的密钥或电子印章图片被恶意软件或恶意操作窃取的可能性大大降低。

电子印章是包含数字签名的数据结构,它使用计算机技术模拟传统实物印章,其加盖的电子文件具有与实物印章加盖的纸张文件相同的外观、相同的有效性和相似的使用方式。电子印章包括公开部分和隐私部分,分别存储在密钥卡的不同区域。

电子印章的隐私部分就是电子印章的私钥,这部分是不能为人所知的部分。

电子印章的公开部分包括印章基本信息、印章图片、印章公钥和印章签名。

印章基本信息是由电子印章签发者、电子印章用户、电子印章唯一项(相当于id这种标识符)、电子印章签发时间、电子印章名称、签名算法、电子印章生效日期、电子印章失效日期和扩展项等组成。

其中,印章签名的生成方式包括:

印章服务器用私钥(与印章服务器公钥相应)对印章基本信息、印章图片hash值和印章公钥进行签名得到第一签名;

印章服务器产生第一随机数,并利用该第一随机数对第一签名进行加密形成第一签名密文;

印章服务器用私钥对第一随机数进行加密生成第一密钥密文;

第一密钥密文和第一签名密文共同构成印章签名。

此处的印章签名以及后续提及的签章签名,文件签名等均可视为数字签名,就生成数字签名本身而言,可采用现有原理实施,签名操作(例如生成第一签名时)以及验证(例如验证第一签名时)的过程如下:

参见图8,签名方将要进行签名的原文作单向散列函数运算得到消息摘要,用私钥对消息摘要进行算法加密,将得到的签名和原文一起发送给验证方。

参见图9,验证方将获得原文和签名分开,同样对原文进行单向散列函数运算得到新的消息摘要;用对应的公钥对数字签名进行算法解密,得到原来的消息摘要并与新的消息摘要进行比较,如果完全一致则说明原文的发送方是可靠的,并且传输的过程原文没有被篡改。

1.2用户进行注册登记获批后,得到印章服务器颁发的密钥卡,用于签章或者验章。

2.客户端进行签章前的准备工作并发送请求给印章服务器。

客户端(签章客户端)接入密钥卡由于密钥卡与客户端之间可以进行安全的数据交互,因此涉及的具体步骤既可以在密钥卡中进行,也可以在客户端内进行,后续的签章和验章同理。

签章方利用所匹配的密钥卡,在需要进行签章的文件上插入印章图片并进行签名(即预签章)后发送给印章服务器请求进行签章。

在需要进行签章的文件上插入印章图片并进行签名的方式包括:

签章方利用私钥对插入印章图片的文件进行签名得到认证签名;

签章方用匹配的密钥卡中的随机数发生器生成认证随机数,利用该认证随机数加密认证签名生成认证签名密文;

签章方利用私钥对该随机数进行加密生成认证密钥密文;

认证密钥密文和认证签名密文共同构成认证文件签名;

签章方将客户端id、文件和认证文件签名均发送给印章服务器请求进行签章。

3.印章服务器对文件进行签章。

3.1印章服务器首先对接收到的认证文件签名进行签名验证。

3.1.1先用签章方对应的公钥对认证文件签名中的认证密钥密文部分进行解密,得到认证随机数,再用认证随机数对认证签名密文进行解密得到原始的认证签名;

然后再用签章方对应的公钥解密该认证签名,得到原始的散列值。

3.1.2用相同的散列函数对文件进行计算得到结果。

3.1.3将3.1.2中得到的结果跟与3.1.1中算出来的原始的散列值进行比较,如果相同则说明文件是来源于正确的客户端,且未被篡改,即可以实施进一步的签章。

3.2印章服务器对文件进行签章。

服务器端将密钥卡插入移动终端或者固定终端接口,利用用密钥卡内的电子印章公开部分和隐藏部分对需要进行签章的文件在文件中图片插入地点进行签章。

电子签章是利用电子印章实现的一种电子签名表现形式,利用图像处理技术将电子签名操作转化为与纸质文件签名、盖章操作相同的可视效果,同时利用电子签名技术保障电子信息的真实性和完整性以及签名人的不可否认性。

电子签章包括印章基本信息、印章图片hash值、印章公钥指针随机数、印章签名、文件签名、签章设备信息、签章时间戳和签章签名等。

其中签章设备信息是记录签章当前硬件设备的信息,例如主机型号、ip地址、mac地址等。电子签章可以写入文档中,也可以形成独立的签章文件,一般情况下默认是前者。

相对于电子印章的公开部分(印章基本信息、印章图片、印章公钥和印章签名),电子签章中主要变化为:

印章图片转换为印章图片hash值;

印章公钥转换为印章公钥指针随机数;

生成了文件签名、签章设备信息、签章时间戳和签章签名;

以下针对印章公钥指针随机数、文件签名和签章签名做进一步描述。

其中电子印章、电子签章和文件均可以验证是否被篡改,在后续的步骤中另有逐一说明。

为了提高安全性,在利用电子印章对文件进行签章得到电子签章时,印章公钥都不公开,即并不直接显示于电子签章,公开使用的都是跟密钥卡内密钥池中存储的印章公钥的位置有关的印章公钥指针随机数。

该印章公钥指针随机数与印章公钥的对应关系为:

密钥卡中的随机数发生器生成印章公钥指针随机数rk(本发明中所提及的各随机数都优选量子随机数);

公钥指针函数frkp作用于印章公钥指针随机数rk,生成公钥指针rkp;

该公钥指针rkp指向对应的密钥卡内的非对称密钥池得到指定位置,该指定位置内容即对应印章公钥krk。

将印章公钥指针随机数rk在电子签章中作为抗量子计算公钥公开,验章时可通过印章公钥指针随机数rk在己方的非对称密钥池获得相应的印章公钥用于参与对电子印章来源的验证。

印章公钥的内容在预颁发密钥卡时,已经由印章服务器生成并存储在密钥卡中指定的地址中了,存储是也是利用相应的印章公钥指针随机数在密钥卡内找到一个位置,然后把印章公钥存储在这个指定的位置。相应的,在验章时,可利用印章公钥指针随机数在对应的地址中提取印章公钥。

因为非对称密钥池在密钥卡内,想要得到真正原始的印章公钥,只有在密钥卡内把抗量子计算公钥和非对称密钥池结合起来操作才可以得到原始的印章公钥,所以印章公钥被泄露被破解的可能性大大降低,极大程度上的提高了安全性。

电子签章中签章签名的生成方法包括:

印章服务器用私钥对印章基本信息、印章图片hash值、加密的印章公钥、印章签名、文件签名、签章设备信息、签章时间戳进行签名得到第二签名;

印章服务器匹配的密钥卡产生第二随机数,并利用该第二随机数对第二签名进行加密形成第二签名密文;

印章服务器用私钥对第二随机数进行加密生成第二密钥密文;

第二密钥密文和第二签名密文共同构成签章签名。

电子签章中文件签名的生成方法包括:

印章服务器用私钥对文件进行签名得到第三签名;

印章服务器匹配的密钥卡产生第第三随机数,并利用该第三随机数对第三签名进行加密形成第三签名密文;

印章服务器用私钥对第三随机数进行加密生成第三密钥密文;

第三密钥密文和第三签名密文共同构成文件签名。

电子签章中其他部分信息可参照现有技术生成或直接从电子印章中获得。

3.3印章服务器将签章后的文件发送给验章方,即签章过程完成。

验章方在获得步骤2的签章后文件,以任意次序执行步骤4、5、6进行验章。

4.利用签章后文件中的电子签章对电子印章来源进行验证。

4.1客户端(验章客户端)需要取出电子签章的印章基本信息、印章图片hash值、印章公钥指针随机数、印章签名。

4.2客户端利用匹配的密钥卡以及印章公钥指针随机数采用相应的方式获得印章公钥。

4.3客户端先用印章服务器公钥对4.1中取出的印章签名中的第一密钥密文部分进行解密,得到第一随机数,再用第一随机数对第一签名密文进行解密得到第一签名;

然后再用印章服务器公钥解密第一签名,得到原始的第一散列值(可视为消息摘要)。

4.4用与生成第一签名时相同的散列函数对步骤4.1中取出的印章基本信息、印章图片hash值和步骤4.2中计算得到的原始的印章公钥进行计算得到,得到第二散列值(可视为消息摘要)。

4.5将第一散列值和第二散列值进行比较,如果相同则说明电子印章是来源于印章服务器,且未被篡改。

5.对签章后文件中的电子签章进行验证。

5.1客户端(验章方)取出电子签章的印章基本信息、印章图片hash、印章公钥指针随机数、印章签名、文件签名、签章设备信息、签章时间戳和签章签名。

5.2先用签章方的公钥对步骤5.1中取出的签章签名中的第二密钥密文部分进行解密,得到第二随机数;

再用第二随机数对签章签名中的第二签名密文进行解密得到第二签名,然后再用签章者的公钥解密第二签名,得到原始的散列值。

5.3用与生成第二签名时相同的散列函数对步骤5.1中取出的印章基本信息、印章图片hash、印章公钥指针随机数、印章签名、文件签名、签章设备信息、签章时间戳进行计算得到结果。

5.4将步骤5.3中得到的结果跟与步骤5.2中算出来的原始的散列值进行比较,如果相同则说明电子签章是来源于签章者,且未被篡改。

6.利用签章后文件中的电子签章对文件进行验证,和验证电子签章的方法同理。

6.1客户端(验章方)在签章后文件中提取文件。

6.2先用签章方的公钥对步骤6.1中取出的文件签名中的第三密钥密文部分进行解密,得到第三随机数;

再用第三随机数对文件签名中的第三签名密文进行解密得到第三签名,然后再用签章者的公钥解密第三签名,得到原始的散列值。

6.3用与生成第三签名时相同的散列函数对步骤6.1中取出的文件进行计算得到结果。

6.4将步骤6.3中得到的结果跟与步骤6.2中算出来的原始的散列值进行比较,如果相同则说明文件源于签章者,且并未被篡改。

以上公开的仅为本发明的实施例,但是本发明并非局限于此,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。显然这些改动和变型均应属于本发明要求的保护范围保护内。此外,尽管本说明书中使用了一些特定的术语,但这些术语只是为了方便说明,并不对本发明构成任何特殊限制。

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