一种基于门限密码技术的电子文件审批方法及系统与流程

文档序号:24558034发布日期:2021-04-06 12:08阅读:50来源:国知局

本发明涉及一种电子文件审批方法及系统,尤其涉及一种基于门限密码技术的电子文件审批方法及系统。



背景技术:

电子文件审批服务是政府、企业内部办公系统中不可或缺的一个环节。近些年,数据签名在电子文件的审批中应用广泛,单人签名很常见,但随着社会发展,需要把签名的权力由一人分散到多个人甚至多个部门或多个层级,这就对文件的保密、审批进行的效率提出了更高的要求。

传统的电子文件审批服务中往往存在以下弊端:第一,审批行为通过流程控制,在不依赖第三方设备的情况下,很难做到真正的审批留痕,单纯数据库中的审批记录比较容易被篡改或伪造;第二,很难做到一份文件仅需加密一次即能控制多个目标对象的解密权限,以保证即使无关人员触碰到文件,也无法完成解密;第三,在不依赖流程控制的情况下,难以适应人员签批权限的多样性,比方说很难可靠的实现“60%的人审批通过即表示审批通过”等场景。



技术实现要素:

发明目的:本发明旨在提供一种基于门限密码技术的安全、高效、多部门、多目标的电子文件审批方法及系统,以解决上述技术问题。

技术方案:本发明的基于门限密码技术的电子文件审批方法,公司至少一个层级,每级有n个部门d1,d2,…,dn,每个部门di中有ni个参与者每个部门di需要nk个参与者完成签批,nk≤ni;

该方法包括以下步骤:

(1)审批发起人将文件m上传,选择需要的层级、部门,利用随机算法生成加密密钥k1和签名密钥k2,签名密钥生成系统公钥mpk,并对文件加密;

(2)利用密钥分发算法将加密密钥k1分为n个子密钥,将签名密钥分为n个签名子密钥;再次利用密钥分发算法将签名子密钥和系统公钥分为n个部门签名子密钥,签名子密钥生成部门公钥mpki;

(3)将上述密钥及加密的文件发送至需要签名的部门;

(4)部门根据解密算法对文件解密,并发送给参与者进行签名,签名完成后将该部门的所有参与者签名δi存储并合成;其他部门重复该步骤,完成全部参与者签名{δ1,δ2,…,δn};

(5)部门签名合成后,通过签名验证算法进行验证;

(6)验证正确后,将所有部门签名合成为δ并存储;

(7)通过签名验证算法再次进行验证,验证正确后将签名与文件合成并存储。

所述步骤(2)密钥分发算法为门限结构,具体包括以下步骤:

(21)对加密密钥k1计算得到:

(k1,(1,n))→(k1,1,k1,2,…,k1,n)

其中,算法参数表(1,n)示门限结构,k1,1表示d1部门的解密子密钥,k1,2表示d2部门的解密子密钥,k1,n表示dn部门的解密子密钥;

(22)对签名密钥k2计算得到:

(k2,(n,n))→(mpk,k2,1,k2,2,…,k2,n)

其中,算法参数表(n,n)示门限结构,k2,1表示d1部门的签名子密钥,k2,2表示d2部门的签名子密钥,k2,n表示dn部门的签名子密钥;

(23)对签名子密钥计算得到:

其中,算法参数(ki,ni)表示门限结构,计算结果mpki表示部门签名公钥,计算结果分别表示部门签名子密钥;

(24)将上述结果组合得到

所述步骤(1)具体包括以下步骤:

(11)使用加密密钥k1对文件m加密:(k1,m)→ct,其中,ct为电子文件m的密文;

(12)为审批生成任务编号为task1,匹配编号task1、文件m、参与审批的部门d1,d2,…,dn并存储于系统中;

(13)将其他关联信息与(12)中的数据匹配并存储与系统中;

所述其他关联信息包括参与者身份信息、部门与参与者的关联关系、部门的负责人信息。

所述步骤(4)具体包括以下步骤:

(41)需要签名的部门收到密文ct、解密子密钥,先对解密子密钥解密得到k1;

(42)利用(42)得到的k1对密文ct解密,得到原文m;

(43)参与者收到m和组合后的子密钥:

对m进行哈希计算得到m0,运行部分签名算法得到文件参与者部分签名值;

(44)其他参与者重复(41)~(43),最终得到所有该部门参与者的签名(δi,1,δi,2,…,δi,n);

(45)将(44)的签名合成为本部门签名δi。

所述步骤(44)得到的结果保存在数据库中,与任务编号task1一一对应关联。

所述步骤(5)具体包括以下步骤:

(51)部门签名合成之后,系统对文件原文进行哈希计算得到m0,并从数据库中取出mpki;

(52)对部门签名运行签名验证算法:

(mpki,δi,m0)→0/1

如果此算法输出1,表示部门签名正确,将部门签名存入数据库,与任务编号task1一一对应关联;如果此算法输出0,表示签名错误,重复步骤(4),直到验证签名正确。

所述步骤(6)具体包括以下步骤:

(61)各部门签名{δ1,δ2,…,δn}合成为签名δ;

(62)系统对文件原文m进行哈希计算得到m0,并从数据库中取出mpk;

(63)对签名运行签名验证算法:

(mpk,δ,m)→0/1

如果此算法输出1,表示签名正确,将最终签名值δ存入数据库,与任务编号task1一一对应关联;如果此算法输出0,表示签名错误,从数据库中分别取出各部门签名{δ1,δ2,…,δn},分别运行签名验证算法,得出签名错误的部门,该部门需步骤(4)重新完成签名。

所述层级为两个及以上时,记为w个层级,步骤(2)中对加密密钥k1采用密钥分发算法分为n个签名子密钥;再利用密钥分发算法进行w次处理,将签名子密钥和系统公钥分为wn个签名子密钥和第一公钥、第二公钥……第w公钥,其中wn为所有层级部门总数;

步骤(5)~(7)中,对签名进行w次合成和验证,并将最终验证正确的签名与文件合成并存储。

本发明的基于门限密码技术的电子文件审批系统,包括:

文件加密模块,根据内置的随机算法生成加密密钥k1和签名密钥k2,签名密钥生成系统公钥mpk,并用于对审批人上传的文件进行加密;

密钥分发模块,内置有密钥分发算法,将加密密钥k1分为n个子密钥,将签名密钥分为n个签名子密钥;再利用密钥分发算法进行w次处理,将签名子密钥和系统公钥分为wn个签名子密钥和第一公钥、第二公钥……第w公钥,其中wn为所有层级部门总数;

第一签名模块,设于部门最底级的参与者端,用于根据解密算法对文件解密,并提供参与者进行签名,参与者签名完成后将该部门的所有参与者签名合成并存储,其他部门重复该步骤,完成全部参与者签名,并将签名传输至第一验证模块;所述第一签名模块的数量与全部部门数量相等;

第一验证模块,用于根据签名验证算法对合成的签名进行验证,验证正确后,合成将该层级的全部部门签名并存储,同时将合成的签名传输至第w签名模块;

第w签名模块,w为层级数,w=1,2,3……,与第一签名模块相同,最终的到所有层级的合成签名,并将签名传输至第w验证模块;

第w验证模块,用于根据签名验证算法对全部层级的合成签名进行验证,验证正确后,合成签名与文件并存储。

有益效果:与现有技术相比,本发明具有如下显著优点:

(1)本发明无需第三方设备介入,即可通过对电子文件进行数字签名来实现对审批过程的留痕,最终结果能体现在电子文件上,全称记录签名数据,防止签名或文件被篡改,每个步骤都具备追溯的功能;

(2)本发明利用门限密码子密钥分发算法实现一对多文件加密,仅需一次加密,便可满足多个目标对象的解密,目标对象自由控制,充分保护文件内容安全;同时,能够实现多层级的文件加密与签名。

(3)利用门限密码签名密钥分发算法实现多方签名结果可验证、可合成,以此达到审批人员权限的灵活控制。

具体实施方式

本实施例以部门层级为1为例,即该公司审批发起人之下仅有同一级别的部门,部门内包含若干参与者。

系统预设:有需要签名的n个部门d1,d2,…,dn,每个部门di中有ni个参与者。每个部门di需要nk个参与者完成签批,nk≤ni。

(1)审批发起人将一份电子文件m上传至系统,选择审批此电子文件的部门d1,d2,…,dn,使用随机算法生成加密密钥k1,签名密钥k2,签名密钥生成系统公钥mpk,使用加密密钥k1对文件m进行加密得到:(k1,m)→ct,ct为电子文件m的密文。并为此次审批生成全局唯一的任务编号task1,并将task1、文件m、参与审批的部门d1,d2,…,dn一一对应记录在数据中。将其他关联信息与上述数据匹配并存储与系统中,上述信息包括部门名称,参与者身份信息以及部门与参与者的关联关系都记入系统数据库中。

(2)利用密钥分发算法将加密密钥k1分为n个子密钥,将签名密钥分为n个签名子密钥;再次利用密钥分发算法将签名子密钥和系统公钥分为n个部门签名子密钥和部门公钥mpki,两次运用门限结构,能够使系统在运行速度较高,内存占用较低的情况下,保证整个加密签名过程的安全性,适用于多个参与者的共同签名。具体包括以下步骤,

系统使用子密钥分发算法对加密密钥k1计算得到:(k1,(1,n))→(k1,1,k1,2,…,k1,n),其中,算法参数(1,n)表示门限结构。计算结果k1,1表示d1部门的解密子密钥,k1,2表示d2部门的解密子密钥,k1,n表示dn部门的解密子密钥。算法参数中的n表示把加密密钥k1分为n个解密子密钥,即将有n个部门得到该解密子密钥。

系统使用签名密钥分发算法对签名密钥k2进行计算得到:(k2,(n,n))→(mpk,k2,1,k2,2,…,k2,n)。其中,mpk代表系统公钥,k2,1表示d1部门的签名子密钥,k2,2表示d2部门的签名子密钥,k2,n表示dn部门的签名子密钥。

系统使用签名密钥分发算法分别对每个部门di的签名子密钥进行计算得到:其中算法参数(ki,ni)表示门限结构,计算结果mpki表示部门签名公钥,计算结果分别表示部门参与者的签名子密钥。

将上述结果组合得到

(3)将上述密钥及加密的文件发送给参与者。

将上述步骤中得到的mpk,mpki存入数据库,与任务编号task1一一对应关联,将电子文件密文ct和各参与者子密钥分别发送给参与者

(4)部门根据解密算法对文件解密,参与者进行签名,签名完成后将该部门的所有参与者签名存储并合成。在该步骤中,解密子密钥和签名子密钥相互独立,能够更为高效的运行,防止文件被无关人员解密,更加保障了签名过程的安全。

(41)该部门收到密文ct、解密子密钥以及本部门签名子密钥,先对解密子密钥解密得到k1;

(42)利用(42)得到的k1对密文ct解密,得到原文m;

(43)参与者对m进行哈希计算得到m0,运行部分签名算法得到文件参与者部分签名值;

(44)其他参与者重复(41)~(43),最终得到所有该部门参与者的签名(δi,1,δi,2,…,δi,n),并各自将结果保存在数据库中,与任务编号task1一一对应关联。当参与者达到门限结构中要求的ki个参与者的数量时,参与者签名完成。该次记录,提供可追查至具体单个参与者的途径,防止参与者泄密。

(45)将(44)的签名合成为本部门签名δi。

系统从数据库中取出参与者部分签名(δi,1,δi,2,…,δi,n),运行签名合成算法(δ)→δi,其中δ={δi,1,δi,2,…,δi,n},δi为部门di的合成签名。

(5)部门签名合成后,通过签名验证算法进行验证。

部门签名合成之后,系统运行哈希算法对文件原文进行哈希计算h(m)→m0,并从数据库中取出mpki,与(4)步骤中得到的δi运行签名验证算法(mpki,δi,m0)→0/1,如果此算法输出1,表示部门签名正确,将签名值δi存入数据库,与任务编号task1一一对应关联。进入其他部门签名环节,其他部门重复3.1~3.5步骤,产生各自的部门签名值{δ1,δ2,…,δn},并分别验证通过。如果此算法输出0,表示签名错误,重复(4)步骤,直到签名正确。

(6)验证正确后,将所有部门签名合成并存储。

当所有的部门完成签名后,系统根据task1从数据库取出各部门签名值{δ1,δ2,…,δn},运行签名合成算法(δ)→δ,其中δ={δ1,δ2,…,δn},δ为合成签名。

(7)通过签名验证算法再次进行验证,验证正确后将签名与文件合成并存储。

系统运行哈希算法对文件原文进行哈希计算h(m)→m0,并从数据库中取出mpk,与得到的δ运行签名验证算法(mpk,δ,m)→0/1,如果此算法输出1,表示签名正确,将最终签名值δ存入数据库,与任务编号task1一一对应关联。如果此算法输出0,表示签名错误,从数据库中分别取出各部门签名{δ1,δ2,…,δn},分别运行签名验证算法,得出签名错误的部门,该部门需根据(4)步骤重新完成签名。

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