APP下载

多重数字签名在高校办公系统中的应用研究

2013-09-20郭改文

中州大学学报 2013年3期
关键词:数字签名私钥公钥

郭改文

(河南教育学院信息技术系,郑州450046)

1 .引言

随着高校数字化校园建设的逐步推进,高校网上办公系统在异地办公中发挥着重要的作用。而基于密码学的数字签名[1]技术可以提供身份认证服务、权限控制服务、信息保密服务、数据完整性服务和不可否认服务,将其应用于高校网上办公系统,能够解决收发双方引发的争端,确保敏感信息不被他人侵犯、破坏及干扰。在高校网上办公系统中,有时也需要多个部门批阅同一份文件,这就用到多重数字签名。

2 .多重数字签名在高校办公系统中的安全需求

2.1 多重数字签名

多重签名技术就是同一文档必须经过多人的签名才有效。自1983年Itakura和Nakamura[2]设计出了第一个多重数字签名方案以来,引起了密码应用界和计算机网络界的普遍关注,密码学研究者根据应用环境的要求,先后设计了多种数字签名方案。根据签名过程[3]的不同,将多重数字签名方案分为顺序结构的多重数字签名方案[4]和广播结构的多重数字签名方案,以及顺序、广播混合结构的多重数字签名方案。[5]根据签名方案所基于数学难题的不同,将多重数字签名方案分为基于大素数因子分解难题的多重数字签名方案、基于椭圆曲线离散对数难题的多重数字签名方案以及基于两个数学难题的多重数字签名方案。[6]

2.2 常用多重数字签名方案

在高校网上办公系统中,公文的流转过程不同,签名的过程也不一样。例如,现实工作过程中公文处理的过程,一般来说是按书记(或校长)→主管副书记(或主管副校长)→主管办理部门的领导→涉及的相关部门领导等顺序来处理公文。在办理这些事情时,主管办理部门首先要看上级领导所签署的处理意见,然后按领导的指导思想来负责公文的实施。因此,顺序对主管办理部门来说非常重要。又如,在期末考试结束后,任课教师给学生评定考试成绩,也是按顺序来处理:任课教师首先为学生评定成绩,然后交由教研室主任签字,再交主管教学主任签字,最后交到教务处教务科进行归档处理。这个处理顺序也是不能改变的,教学秘书、主管教学的主任不能在任课教师给学生评定考试成绩前签名。上述实例的签名过程实际上是按照严格规定的顺序执行签名,也就是串行签名,在网上办公系统中可由顺序结构的串行多重数字签名方案解决。

下面是一个对签名顺序无要求的例子,如一个将要毕业离校的学生办理离校手续的处理程序是凭有关手续到学生处申请,学生处审批通过后,给该学生一张程序单,这张程序单列出了与该生离校相关的所有部门,学生需拿着这张单子到相关部门去办理离校手续。该学生根据自己的具体情况,可以先到后勤处、校医院、图书馆还是先到别的什么部门,这个顺序都没关系,只要最后把所有部门签字的程序单交到学生处,学生处就可以办正式的离校手续,颁发毕业证书。此实例的签名过程实际上是签名前后顺序没有要求,只要该签名的部门签过名了就能通过,也就是并行签名,在网上办公系统中可由广播结构的并行多重数字签名方案解决。

目前提出的多重数字签名方案,一般情况,要么采用单一的顺序串行方式,要么采用单一的广播并行方式,采用两种方式相结合的多重数字签名方案较少。随着高校网上办公系统的深入推进,数字签名用户的需求复杂多样,因此更一般的情况是属于顺序结构和广播结构组合的混合结构,也就是可以看成是由串行和并行两种基本签名结构组合起来的混合多重数字签名。图1展示了三层结构的多重数字签名,该签名结构最基本的结构看成是由签名者组成的顺序串行签名结构,这是第一层,然后在这个基本的顺序结构上派生第二层。如对某顺序成员可以看成由若干个广播型签名者组成,他们可以同时进行签名,不必遵循先后次序,可以看做并行结构,这作为第二层。同样的,第二层的某广播型成员也可以看成由若干个顺序成员组成,他们之间必须按照签名规定的先后顺序进行签名,可以看做串行结构,这属于第三层。

图1 三层结构的多重签名

3 .公文流转的安全架构

3.1 高校PKI信任中心CA的建立

公钥基础设施简称PKI,是一种把公钥密码和对称密码结合起来实现密钥自动管理的平台,是一种利用公钥技术来实施安全服务的具有普适性的安全基础设施,目的是保证网上数据的机密性、完整性和不可否认性,从而保证信息的安全传输,其包括数据加密、数字签名、数字信封、数据完整性机制等。一个典型、完整、有效的PKI系统必须有数字证书认证中心CA、数字证书库、证书作废系统、密钥备份及恢复系统、应用程序接口API等基本部分。将PKI技术应用到高校网上办公系统中,可以满足网上办公系统的安全需求。

高校的管理机制比较适合建立PKI层次信任模型,但考虑到多重数字签名的三层复杂结构,学校的党政中心是学校的领导核心,是PKI体系结构的第一层;学校的管理机构,如教务管理、学籍管理、科研管理、图书管理、人事管理、党政机关日常事务、后勤管理等不同管理部门可能也需要建立各自的PKI体系结构,而这些不同管理部门的PKI在实际工作中又是相互联系的,是PKI体系结构的第二层;学校各个院系,是PKI体系结构的第三层。因此,高校网上办公系统CA的信任模型适合层次信任和交叉信任两种模式的混合信任模型,如图2所示。

图2 办公系统的PKI信任模型

从图2可以看出,在此PKI层次信任模型中,为了增加信息的安全性,以党政中心为根CA信任中心建立整个学校的层次信任模型,党政中心的CA称之为根CA,也称之为校级CA。在学校各主要管理部门建立一级CA,称之为管理级CA,由于学院管理机构之间经常有公文需要传递,为了减少学院根CA(校级)的负载,它们之间实行交叉信任,也称之为大交叉。在学校各系部建立二级CA,从安全的角度考虑,只有存在信任需求的部门再建立信任关系,二级CA之间实行小范围的交叉,也称之为小交叉。

3.2 公文流转的总体架构

高校网上办公系统中,公文网上流转的总体架构如图3所示。此处的CA认证中心包括以党政中心为根CA信任中心的整个学校的CA层次信任模型,主要有对用户的数字证书进行认证、发放数字证、密钥备份及恢复、证书作废等功能。

CA认证中心包括证书服务器和目录服务器。证书服务器负责根据具体的证书策略审核申请人身份,由审核结果决定是否给用户颁发证书。证书服务器进行如下的处理:发布证书和列表、证书撤销请求(由于各种原因导致证书失效)、将证书撤销列表发送到目录服务器等。目录服务器进行如下的操作:提供用户身份信息和证书查询、保留最新的证书撤销列表等。

公文流转客户端主要功能是进行公文的上传和下载。为了保证公文流转的安全,公文流转客户端还具备如下的功能:产生密钥对,并上传公钥到CA中心;下载经CA认证中心数字签名的数字证书;维护本地证书列表并与CA认证中心的证书列表同步。公文流转服务器主要负责发送公文、转发公文、接收公文以及对用户和公文进行管理。

图3 公文流转的总体架构

图4 公文发送和接收的过程

3.3 公文发送和接收过程

在图4中展示了公文通过CA认证中心发送和接受的整个过程。公文发送方通过CA认证中心的双向认证通信机制,再上传公文到公文流转服务器;公文接收方通过CA认证中心的双向认证通信机制,再从公文流转服务器下载公文。这种双向认证机制下,不管是公文接收方还是公文发送方,都必须首先向CA认证中心申请数字证书ID。

公文发送方A发送公文的过程如下:

第1步发送方A首先申请登录CA认证中心,并同时把他的数字证书ID_A和用他的私钥PRI_A对ID的数字签名ID_SIGN_A发送到CA认证中心。当CA认证中心收到A的数字证书ID_A和A对其ID的数字签名ID_SIGN_A时,首先通过A的ID_A在数据库服务器中查找A的公钥PUB_A,然后利用公钥PUB_A验证A的签名ID_A_SIGN。如果CA认证中心验证A的签名ID_A_SIGN通过,则向发送方A返回登录成功的信息。

第2步当发送方A收到CA认证中心发回的成功登录提示信息后,把接收方B的ID_B和用A的私钥PRI_A对B的ID_B_SIGN_A的签名发送到CA认证中心。CA认证中心收到ID_B_SIGN_A后,用A的公钥PUB_A成功验证后,把接受方B的公钥PUB_B和CA对其公钥的签名PUB_B_SIGN_CA发送给A。

第3步发送方A接收CA对B的公钥的签名PUB_B_SIGN_CA后,并验证是否CA发送。验证通过后,发送方A将公文明文的摘要FILE_SUMMARY和利用A的私钥PRI_A对摘要的数字签名FILE_SUMMARY_A发送到CA认证中心。CA在对公文的摘要FILE_SUMMARY成功备份后,返回消息摘要的编号FILE_SUMMARY_ID及其签名FILE_SUMMARY_ID_SIGN_CA。

第4步发送方A收到FILE_SUMMARY_ID_SIGN_CA时,使用接收方B的公钥PUB_B对公文明文进行加密FILE_PUB_B,连同消息摘要的编号FILE_SUMMARY_ID_SIGN_CA一起发送到接收方B所在的公文流转服务器。至此,整个公文发送过程结束。

公文接受方B接受公文的过程如下:

第1步接收方B首先成功登录自己的公文流转服务器,并下载发送给自己的公文FILE_PUB_B和消息摘要编号FILE_SUMMARY_ID_SIGN_CA。

第2步接收方B在解读收到的加密公文时,首先利用CA认证中心的公钥验证消息摘要编号FILE_SUMMARY_ID_SIGN_CA。若验证失败,则把失败信息返回给CA认证中心;若验证成功,则使用B的私钥PRI_B解密公文,并把解密成功标志返回给CA认证中心。

第3步CA认证中心在接收到B解密公文成功的信息后,对该信息进行签名,然后发送给B并同时做好相应的日志记录工作。接收方B利用自己的私钥PRI_A验证发送方A发送的公文,只有在签名验证通过后才能得到发送方A所发送的公文明文,否则将拒绝接收公文。至此,整个公文接受过程结束。

4 .多重数字签名的实现

4.1 顺序多重数字签名方案

在高校网上办公系统中,由公文发送方首先确定公文流转的顺序,在流转过程中,每一个接收者收到公文后,用上一位接受者的公钥验证其发送方的签名文件,验证成功后,用自己的私钥产生签名文件,然后再发送给下一位签名者,直到所有的签名者都签名,签名过程结束。由此形成了一个串行顺序结构的多重数字签名方案,下文给出了此方案具体实施过程。

假定有一份文件FILE,现在需要A、B、C、D四人按顺序签署,其操作顺序如下:

第一步 A用他的私钥PRI_A加密FILE,加密的消息命名为FILE_SIGN_A,A用上述的发送过程将FILE和FILE_SIGN_A发送给B。

第二步B用上述的接受过程收到FILE和FILE_SIGN_A,B用A的公钥PUB_A解密FILE_SIGN_A来验证FILE_SIGN_A是否是用A的私钥PRI_A加密产生的。验证成功后,B用他自己的私钥PRI_B加密FILE和FILE_SIGN_A,加密后的消息称为FILE_SIGN_A_B。B用上述的发送过程发送FILE、FILE_SIGN_A和FILE_SIGN_A_B给C。

第三步 C用上述的接受过程收到FILE、FILE_SIGN_A和FILE_SIGN_A_B后,他用B的公钥PUB_B解密FILE_SIGN_A_B来验证FILE_SIGN_A_B是否是B的私钥PRI_B生成的。然后C用A的公钥PUB_A解密FILE_SIGN_A来验证FILE_SIGN_A是否为A的私钥PRI_A产生的。验证成功后,C用他自己的私钥加密FILE、FILE_SIGN_A和FILE_SIGN_A_B,加密后的消息称为FILE_SIGN_A_B_C。

第四步C用上述的发送过程发送FILE、FILE_SIGN_A、FILE_SIGN_A_B、FILE_SIGN_A_B_C 给 D。

在网上办公系统中,上述公文流转过程都使用单一数字签名算法完成顺序多重数字签名功能,好处是没有使用复杂的数学算法。附加的工作就是合并各个不同的签名,如上文提到的FILE、FILE_SIGN_A、FILE_SIGN_A_B和FILE_SIGN_A_B_C。因此,这种签名方案适合在工作流系统中需要顺序多重数字签名的场合。

4.2 广播多重数字签名方案

在高校网上办公系统中,如果对文档的签名顺序没有要求,公文发送者作为数字签名验证中心,用上述的公文发送过程,通过公文客户端向每一个公文接受方并行发送用自己的私钥数字签名的文档,每个公文接受者用上述的接受过程接受公文,并用发送者的公钥对接受的签名文档进行验证。如果验证通过,每个公文接受者将用自己的私钥对接受的公文进行数字签名,并将签名后的文档用上述的公文发送过程发送给公文数字签名验证中心。当公文发送者接受到每个数字签名者发回的数字签名文档时,就用他们的公钥一一进行验证,全部验证通过后,对数字签名的文档进行存档归类。由此形成了一个组合的广播并行结构的多重签名方案。

4.3 混合结构多重数字签名方案

对于复杂的混合的多重数字签名方案,公文发送方可按签名流程进行分解:由签名验证中心先按顺序结构实施顺序多重数字签名方案;遇到并行结构的多重签名结点,签名验证中心实施广播多重数字签名方案;如果并行结构的某一结点是顺序结构再实施顺序多重数字签名方案。

[1]Diffie W,Hellman M E.New directions in cryptography[J].IEEE Transactions on Information Theory,1976,IT-22(6):644-654.

[2]Itakura K,Nakamura K.A public-key cryptosystem suitable for digital multisignature[J].NEC Research & Development,1983,(71):1 -8.

[3]Harn L,Lin C Y,Wu T C.Structured multisignature algorithms[J].IEE Proceedings:Computers and Digital Techniques,2004,51(3):231 -234.

[4]马俊春,李新社,张磊,等.基于椭圆曲线的有序多重数字签名方案的研究[J].网络安全技术与应用,2008(5):93-94.

[5]袁勇.混合结构的数字多重签名算法[J].计算机应用,2010,30(6):1498 -1451.

[6]李斌,赵泽茂,龚少麟.新的有序多重数字签名方案[J].计算机工程与设计,2006,26(1):112 -115.

猜你喜欢

数字签名私钥公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于正交拉丁方理论的数字签名分组批量验证
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
交通运输行业数字签名系统的设计与实现分析
浅析计算机安全防护中数字签名技术的应用
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案
国密SM2密码算法的C语言实现