一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种共享式文件透明加密方法及系统与流程

2023-01-05 02:16:32 来源:中国专利 TAG:

技术特征:
1.一种共享式文件透明加密系统,其特征在于:包括有若干用户终端、若干用户usb-key、加解密辅助模块、钩子程序和证书管理平台;所述证书管理平台用于保存授权用户的证书列表,每一张证书分别包含有一个用户usb-key公钥;每个用户usb-key分别包含有一个用户usb-key私钥,每个用户usb-key公钥和相应用户usb-key私钥互相配合构成用户usb-key公/私钥对;所述证书管理平台还设置有密钥管理功能模块,所述密钥管理功能模块用于生成用户usb-key公/私钥对;每个所述用户终端分别设置有钩子程序、应用程序、操作系统、加解密辅助模块和存储辅助模块;所述钩子程序用于监控用户终端的应用程序执行动作,并在应用程序执行保存和/或读取动作时将其暂停,从而优先处理钩子程序的执行动作;钩子程序的执行动作包括通过用户usb-key进行公钥查询、证书查询、公钥非对称加密和私钥非对称解密、对称加密、对称解密;所述钩子程序还用于通过加解密辅助模块对文档的对称密钥进行非对称加解密,并通过对称密钥对原文档进行sm4对称加解密;所述应用程序用于创作、保存和/或读取原文档;所述操作系统用于支持用户终端常规运行;所述存储辅助模块用于存储操作系统函数;每个所述用户usb-key设置有非对称加密接口、非对称解密接口、对称加密接口、对称解密接口、随机数发生器和usb-key容器,所述非对称加密接口用于非对称加密,所述非对称解密接口用于非对称解密,所述对称加密接口用于对称加密,所述对称解密接口用于对称解密,所述随机数发生器用于产生随机数,所述usb-key容器用于存储用户usb-key公/私钥对和用户ca证书。2.根据权利要求1所述共享式文件透明加密系统,其特征在于:所述用户usb-key为硬件u盾。3.根据权利要求1所述共享式文件透明加密系统,其特征在于:所述钩子程序为api hook 钩子程序。4.一种使用权利要求1~3之一所述共享式文件透明加密系统的共享式文件透明加密方法,其特征在于:包括有以下步骤:s01,制作用户usb-key;s02,第一作者通过其用户端的应用程序创作原文档,用户端的操作系统收到应用程序的保存消息时,钩子程序暂停应用程序,并先对需要保存的原文档进行预加密,生成sm4对称加解密密钥;s03,对原文档的对sm4对称加解密密钥进行二次加密;s031,钩子程序获取证书管理平台的用户usb-key公钥;s0311,钩子程序向证书管理平台获取待授权用户的用户证书列表;s0312,钩子弹出对话框界面展示用户证书列表,通过复选框单元或者多选,第一作者在列表界面上勾选n授权用户证书,n为大于等于1的正整数;勾选完之后,钩子从证书管理平台获取对应的用户证书,从而获得相应用户usb-key公钥;
s032,钩子程序依次通过每个用户usb-key公钥调用第一作者用户端上的加解密辅助模块,通过第一作者的用户usb-key的非对称加密接口进行非对称加密;将每个用户证书的用户usb-key公钥传进非对称加密接口中,对称密钥也传进非对称加密接口中,非对称加密接口中拿到每个用户usb-key公钥之后,分别对sm4对称加解密密钥进行sm2非对称加密,生成与每个用户usb-key相对应的sm2非对称加密密文;s033,sm2非对称加密密文存储;钩子程序将sm2非对称加密密文作为附加信息存储在存储文件的前n行;s034,钩子程序在存储文件的第n 1行位置设置分隔线;钩子程序使用sm4对称加解密密钥对原文档进行sm4对称加密为密文,密文存储于存储文件的第n 2行以下的位置;s035,钩子程序释放应用程序,返回继续执行保存流程,保存二次加密后的存储文件;s04,用户端解密存储文件;s041,在用户端插入用户usb-key;s042,用户端的操作系统收到应用程序的读取存储文件消息时,钩子程序暂停应用程序,通过加解密辅助模块在存储文件的附加信息中查找与当前用户usb-key的用户证书相对应的sm2非对称加密密文;s043,钩子程序通过加解密辅助模块调用当前用户usb-key中的用户usb-key私钥,进行非对称解密,获得对称密钥明文;s044,钩子程序对密文进行sm4对称解密,得到原文档明文;s045,钩子程序将原文档明文写入应用程序的内存;并释放应用程序,返回继续执行读取流程。5.根据权利要求4所述共享式文件透明加密方法,其特征在于:所述步骤s01中包括以下操作内容:s011, 证书管理平台管理员接收用户usb-key制作信息;s012,证书管理平台管理员确认用户usb-key制作信息;s013,证书管理平台管理员在证书管理平台制作用户usb-key,为每个用户usb-key分别生成公/私钥对;s014,证书平台管理员在密钥管理平台密钥管理功能模块中取出用户usb-key公钥向ca申请证书;s015,证书平台管理员在证书管理平台将证书写入用户usb-key中;s016,证书平台管理员将用户usb-key分发至相应用户;s017,用户收到用户usb-key,并检查用户usb-key是否有效。6.根据权利要求4所述共享式文件透明加密方法,其特征在于:所述步骤s02中包括以下操作内容:s021,当前用户端插入相应用户usb-key,通过操作系统和应用程序进行原文档创作;s022,原文档创作完成后,点击保存按钮,当前用户端的应用程序调用操作系统的存储辅助模块的操作系统函数;s023,当前用户端的操作系统接收应用程序的保存消息时,钩子程序先钩住保存消息勾住,即暂停应用程序,钩子程序优先处理自已的保存流程,为原文档生成随机的sm4对称加解密密钥。
7.根据权利要求4所述共享式文件透明加密方法,其特征在于:所述步骤s032中包括以下操作内容:s0321,钩子程序通过加解密辅助模块调取用户usb-key的随机数发生器,产生随机数k;s0322,加解密辅助模块计算椭圆曲线点c1,将c1的数据类型转换为比特串;s0323,加解密辅助模块计算椭圆曲线点s;s0324,加解密辅助模块计算椭圆曲线点[k]pb=(x2,y2),将坐标x2、y2 的 数据类型转换为比特串;x2和y2是用户公钥的实际坐标点值;s0325,加解密辅助模块计算变量t ;s0326,加解密辅助模块计算椭圆曲线点c2;s0327,加解密辅助模块计算椭圆曲线点c3;s0328,加解密辅助模块计算得到sm2非对称加密密文c,并将计算结果通知钩子程序,完成非对称加密,生成与每个用户usb-key相对应的sm2非对称加密密文。8.根据权利要求4所述共享式文件透明加密方法,其特征在于:所述步骤s034中包括以下操作内容:s0341,对原文档进行分组;每个组的长度为 128 bit,sm4对称密钥长度也为 128 bit;将原文档拆分为多个长度为128bit的组;s0342,取第一组128bit的数据,将其按位拆分成4个32bit的数据x0,x1,x2,x3;s0343,迭代运算32次;当i=0时为第一次轮变换,一直进行到i=31结束,将xi 1,xi 2,xi 3和轮密钥rki 异或得到一个32bit的数据,即sbox-input=xi 1

xi 2

xi 3

rki,

符号代表异或运算;s0344,进行反序变换;对最后一轮数据进行反序变换并得到密文,将sbox_input拆分成4个8bit数据,分别进行盒变换,之后再将4个8bit输出合并成一个32bit的sbox_output变量;s0345,计算得到密文;将上一步获得的 sbox_output分别循环左移2,10,18,24位,得到4个32bit的结果,记移位结果为y2,y10,y18,y24与盒变换输出的sbox_output和xi异或,得到xi 4,即xi 4=sbox_output

y2

y10

y18

y24

xi,xi 4即得到对称加密的密文;s0346,加解密辅助模块得到usb-key的结果回馈之后,将对称加密的密文通知钩子程序。9.根据权利要求4所述共享式文件透明加密方法,其特征在于:所述步骤s043的非对称解密包括以下操作内容:a1,通过输入当前用户usb-key的pin码核验用户身份,调取当前用户usb-key中的用户usb-key私钥值,获得sm2非对称加密密文c;a2,加解密辅助模块对sm2非对称加密密文c进行拆分,从sm2非对称加密密文c中提取椭圆曲线点c1;a3,加解密辅助模块计算椭圆曲线点s;a4,加解密辅助模块将变量[db]c1换为比特串;
a5,加解密辅助模块计算获得变量t;a6,加解密辅助模块通过比特串计算获得sm4对称加解密密钥的明文m

;a7,加解密辅助模块将明文m

通知钩子程序,完成非对称解密,得到对称密钥明文。10.根据权利要求4所述共享式文件透明加密方法,其特征在于:所述步骤s044中对存储文档中的分隔线之后的密文进行sm4对称解密,sm4对称解密包括以下操作内容:m1,输入原始密钥key,并按位拆分为4个32bit的数据 k0,k1,k2,k3;m2,加解密辅助模块计算循环密钥,将初始密钥 k0,k1,k2,k3分别异或固定参数fk0,fk1,fk2,fk3,得到用于循环的密钥 k0,k1,k2,k3,即 k0=k0

fk0,k1=k1

fk1,k2=k2

fk2,k3=k3

fk3;m3,加解密辅助模块生成轮密钥,当i=0 时为第一次轮变换,一直进行到i=31结束,将ki 1,ki 2,ki 3和固定参数cki异或得到一个32bit数据,即sbox_input=ki 1

ki 2

ki 3

cki,将sbox_input拆分成4个8bit数据,分别进行盒变换,之后再将4个8bit数据输出合并成一个32bit的sbox_output变量;m4,加解密辅助模块计算解密后的rki,将sbox_output变量分别循环左移13,23位,得到2个32bit的移位结果,记2个移位结果为 y13,y23,将移位的结果y13,y23与盒变换输出sbox_output和 ki异或,得到ki 4,即rki=ki 4=sbox_output

y13

y23

ki,运算执行32轮,同时使用32个不同的cki,cki为固定参数,执行完 32 轮后,获得解密的rki;m5,加解密辅助模块做轮密钥逆序运算,运算步骤为rk

i=rk31

i;m6,加解密辅助模块计算出sm4对称解密之后的明文,将密文 x35,x34,x33,x32 赋值为 x

0,x

1,x

2,x

3, 把x

0,x

1,x

2,x

3 和 rk

i 做逆序 x

4=x35

t(x34

x33

x32

rk31)=x31

t(

)

t(

)=x31,得出 x

i=x35

i;m7,加解密辅助模块计算32轮函数,得到sm4对称解密之后的原文档,并通知钩子程序,完成sm4对称解密。

技术总结
本发明公开了一种共享式文件透明加密方法及系统,在文件共享基础上,将加解密密钥进行了安全性的设计,杜绝在网络上传输对称密钥,加解密密钥的对称加解密和非对称加解密都依赖本地硬件用户USB-KEY中的私钥执行,用户USB-KEY即插即用,若拨出用户USB-KEY则无法解密,即避免了在网络传输对称密钥的隐患,也解决了跨终端透明访问的问题。决了跨终端透明访问的问题。决了跨终端透明访问的问题。


技术研发人员:杨旻
受保护的技术使用者:卓望数码技术(深圳)有限公司
技术研发日:2022.11.21
技术公布日:2022/12/30
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献