全网唯一标准王
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210549949.1 (22)申请日 2022.05.20 (71)申请人 山东大学 地址 264209 山 东省威海市文化西路180号 (72)发明人 宋昱 程杰 宋修臻  (74)专利代理 机构 济南圣达知识产权代理有限 公司 372 21 专利代理师 黄海丽 (51)Int.Cl. G06F 21/62(2013.01) G06F 21/60(2013.01) (54)发明名称 基于密文挪用的文件透明加解密方法及系 统 (57)摘要 本发明公开了基于密文挪用的文件透明加 解密方法及系统, 其中方法包括: 进程有写入特 定的扩展名(比如txt, docx)文件 的倾向时自动 加密文件。 授权进程想要读取密文文件时 自动解 密, 修改文件时 自动加密, 非授权进程不解密, 显 示密文, 且不允许修改密文。 在非缓冲写操作加 密文件时, 块密码使用密文挪用的方式, 将倒数 第二个块加密 的密文挪用给最后一个块的明文 使用, 来完成填充过程, 不需要 额外的填充, 保证 了加密后的密文和原始文件的大小一致, 不需要 增加文件大小。 与一般的透明加解密方法相比较 而言, 本发 明的方式在不改变文件 大小的前提下 加密文件, 对文件系统的影 响小, 代码逻辑简单, 不需要单独适配 应用程序。 权利要求书2页 说明书8页 附图7页 CN 115203733 A 2022.10.18 CN 115203733 A 1.基于密文挪用的文件透明加解密方法, 其特 征是, 包括: 获取待处 理文件; 判断待处 理文件是否为目标扩展 文件, 如果否就结束; 如果是就进入下一 步; 判断文件是否已经加密, 如果是就进入下一 步; 如果否, 就对写操作进行加密; 判断待处理文件的进程是否为授权进程, 如果是, 就对写操作进行加密处理, 对读操作 进行解密处 理; 如果否, 就 不对读操作进行解密处 理, 不允许写操作执 行。 2.如权利要求1所述的基于密文挪用的文件透 明加解密方法, 其特征是, 所述对写操作 进行加密处 理; 具体包括: 待处理文件所占磁盘空间的大小是否小于块密码算法所规定的块大小; 如果是, 就采 用其他流式算法对待处 理文件进行加密, 结束处 理; 如果否则进入下一 步; 如果待处理文件最后两个明文块不相邻, 判断当前写操作是否以倒数第 二个明文块为 结尾; 如果是, 就处 理倒数第二次写操作, 结束处 理; 如果否, 就进入下一 步; 判断待处理文件大小大于块大小, 且当前写操作的写入数据占内存空间的大小小于块 大小是否成立, 若成立, 则处 理倒数第一次写操作, 结束处 理, 如果不成立, 就进入下一 步; 判断当前写操作的写入数据大小是否与块大小对齐, 若是, 则采用块密码算法对待处 理文件加密, 结束处 理; 若否, 则采用密文挪用的方式对待处 理文件进行加密, 结束处 理。 3.如权利要求2所述的基于密文挪用的文件透 明加解密方法, 其特征是, 所述处理倒数 第二次写操作, 具体步骤 包括: 如果倒数第 二次的写操作的数据大小等于一个扇区的大小, 则将倒数第 二次的写操作 的数据保存在流上下文Stream  Context中, 并在流上下文Stream  Context中记录这块数据 的写偏移和写操作数据的大小, 直接拦截I/O数据请求包IRP并返回成功, 返回值 IoStatus.I nformati on设置为未修改之前的I/O数据请求包中的写操作数据大小; 如果倒数第 二次的写操作的数据大小大于一个扇区的大小, 将倒数第 二次写操作的数 据大小减掉一个扇区大小的数据, 将这块减掉的数据保存在Stream  Context中, 并在 Stream Context中记录这块减掉的数据的写偏移和大小; 把剩下的数据使用块密码算法进 行加密, 修改I/O数据请求包中的写操作的数据大小, 并允许将I/O数据请求包I RP发送到文 件系统驱动; 在文件系统驱动完成写操作并返 回到minifilter时, 将返 回值IoStatus.Infor mation 恢复为未修改之前的I/O数据请求包中的写操作数据大小。 4.如权利要求2所述的基于密文挪用的文件透 明加解密方法, 其特征是, 所述处理倒数 第一次写操作, 具体步骤 包括: 在倒数第一次的写操作的数据之前加上保存在Stream  Context的一个扇区大小的数 据, 使待处理文件的最后两个明文块相邻, 使用密文挪用的方式对拼接后的数据进行加密; 从Stream  Context取出保存的写偏移和写操作数据的大小, 把I/O数据请求包中的写 偏移和写操作数据的大小修改为当前 的写偏移和写操作数据的大小, 并允许I/O数据请求 包发送到文件系统驱动; 在文件系统驱动完成写操作并返 回到minifilter时, 将返 回值IoStatus.Infor mation 恢复为未修改之前的I/O数据请求包中的写操作数据大小。 5.如权利要求1所述的基于密文挪用的文件透 明加解密方法, 其特征是, 所述对读操作权 利 要 求 书 1/2 页 2 CN 115203733 A 2进行解密处 理, 具体包括: 待处理文件所占磁盘空间的大小是否小于块密码算法所规定的块大小; 如果是, 就采 用其他流式算法对待处 理文件进行解密, 结束处 理; 如果否则进入下一 步; 如果待处理文件最后两个密文块不相邻, 判断当前读操作是否以倒数第 二个密文块为 结尾; 如果是, 就处 理倒数第二次读 操作, 结束处 理; 如果否, 就进入下一 步; 判断待处理文件大小大于块大小, 且当前读操作的文件占磁盘空间大小小于块大小是 否成立, 若成立, 则处 理倒数第一次读 操作, 结束处 理, 如果不成立, 就进入下一 步; 判断当前读操作的数据大小是否与块大小对齐, 若是, 则采用块密码算法对待处理文 件解密, 结束处 理; 若否, 则采用密文挪用的方式对待处 理文件进行解密, 结束处 理。 6.如权利要求5所述的基于密文挪用的文件透 明加解密方法, 其特征是, 所述处理倒数 第二次读 操作; 具体包括: 使用非重入的非缓冲读操作, 将文件最后一个不对齐的密文数据块从磁盘中读出, 重 新申请一块内存, 将倒数第二次读操作的密文和单独读出 的密文拼接成一块数据, 使用密 文挪用的方式对拼接后的数据进行解密; 将与倒数第二次读操作的偏移和数据大小均相同的明文拷贝回读操作的请求者分配 的内存中。 7.如权利要求5所述的基于密文挪用的文件透 明加解密方法, 其特征是, 所述处理倒数 第一次读 操作; 具体包括: 使用非重入的非缓冲读操作, 将倒数第二次读操作的密文数据读出, 重新申请一块内 存, 将单独读出 的密文和倒数第一次读操作的密文拼接成一块数据, 使用密文挪用的方式 对拼接后的数据进行解密; 将与倒数第一次读操作的偏移和数据大小均相同的明文拷贝回读操作的请求者分配 的内存中。 8.如权利要求1所述的基于密文挪用的文件透 明加解密方法, 其特征是, 判断待处理文 件是否为目标扩展文件, 其中, 目标扩展文件, 是指: 在minifilter 中设置的一类具有设定 文件扩展名的文件。 9.如权利要求1所述的基于密文挪用的文件透 明加解密方法, 其特征是, 判断待处理文 件的进程是否为授权进程, 其中, 授权进程, 是指: 在minifilter 中设置的允许对已加密文 件进行解密的进程。 10.基于密文挪用的文件透明加解密系统, 其特 征是, 包括: 获取模块, 其被 配置为: 获取待处 理文件; 第一判断模块, 其被配置为: 判断待处理文件是否为目标扩展文件, 如果否就结束; 如 果是就进入下一 步; 第二判断模块, 其被配置为: 判断文件是否已经加密, 如果是就进入下一步; 如果否, 就 对写操作进行加密; 第三判断模块, 其被配置为: 判断待处理文件的进程是否为授权进程, 如果是, 就对写 操作进行加密处理, 对读操作进行解密处理; 如果否, 就不对读操作进行解密处理, 不允许 写操作执 行。权 利 要 求 书 2/2 页 3 CN 115203733 A 3

PDF文档 专利 基于密文挪用的文件透明加解密方法及系统

文档预览
中文文档 18 页 50 下载 1000 浏览 0 评论 0 收藏 3.0分
温馨提示:本文档共18页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 基于密文挪用的文件透明加解密方法及系统 第 1 页 专利 基于密文挪用的文件透明加解密方法及系统 第 2 页 专利 基于密文挪用的文件透明加解密方法及系统 第 3 页
下载文档到电脑,方便使用
本文档由 SC 于 2024-02-07 12:39:07上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。