基于GPU的PDF加密文档快速解密方法、设备及介质技术

技术编号:32136464 阅读:30 留言:0更新日期:2022-01-29 19:46
本发明专利技术公开了一种基于GPU的PDF加密文档快速解密方法、设备及介质,其中解密方法包括以下步骤:S1.解析PDF加密文档,提取加密特征数据:PDF文档由多个不同的数据对象组成,其中与加密相关的数据存储在加密字典中,通过对PDF加密文档进行二进制搜索,得到加密特征数据;S2.基于GPU平台破译PDF加密文档的解密密钥:基于GPU平台对PDF加密文档的解密密钥进行搜索;S3.解密还原出对应的明文文档:步骤S2中破译出正确的解密密钥后,利用该解密密钥和文档密文数据存储结构信息解密还原出明文文档。本发明专利技术的解密方法与文档加密口令的复杂度无关,避免了现有文档破解方法中复杂口令无法破解的缺点。解的缺点。解的缺点。

【技术实现步骤摘要】
基于GPU的PDF加密文档快速解密方法、设备及介质


[0001]本专利技术涉及文档解密
,尤其涉及一种基于GPU的PDF加密文档快速解密方法、设备及介质。

技术介绍

[0002]PDF全称是Portable Document Format,它是Adobe公司开发的一种电子文档格式。PDF文档具备良好的可移植性、跨平台性、可加密且适用于多种输出目标已成为目前文档传播的通用格式和国际标准,得到了广泛的使用。
[0003]PDF编辑软件对PDF文档提供了加密保护功能,用户可以设置两种类型的文档保护口令,一种是用户口令,另一种是所有者口令。用户输入了正确的用户口令就能浏览文档内容,而所有者口令决定了用户是否具备修改文档的权限。文档打开后,即使不输入文档修改口令也是可以查看文档内容的,因此文档打开口令更为重要。
[0004]实际中,用户对设置的文档打开口令时常有遗忘的情况发生,一旦重要的文档无法打开,将会给个人或公司带来比较严重的损失。另外,在司法电子取证场景中也常常面临解密PDF加密文档的需求。因此研究PDF加密文档的解密具有重要的实际价值。
[0005]要解密PDF加密文档,如果破解了文档的打开口令,则可以直接输入口令完成文件内容的自动解密。因此,通过破解口令来解密文档是比较直接的方法。事实上,目前对PDF加密文档的解密还原也是通过恢复文档口令来实现的。针对PDF的口令恢复,市面上主要有两个知名的口令恢复工具,包括Elcomsoft公司的Advanced PDF Password Recovery和Passware公司的Passware Kit Forensic。这两种工具都提供了对PDF加密文档的口令破解功能,破解方式包括三种:字典攻击、掩码攻击、暴力攻击。字典攻击是通过依次尝试口令字典里的每个口令来找出正确的文档口令,口令恢复的成功与否取决于字典里是否存在用户口令。掩码攻击是在知道目标用户的部分口令信息时,对尝试的口令事先设定某些位置的字符,这从理论上缩小了口令搜索的范围,但实际中这些部分口令信息也基本上是靠猜测来决定,如生日、姓名缩写等。暴力攻击一般是在前两种口令破解方式失败后采用穷举模式来搜索口令空间,若用户设置的口令较长或是口令复杂度较高,则暴力攻击常常不能奏效。因此,依靠对口令空间进行搜索的破解方式通常情况下口令恢复率不高,而且恢复的时间不能确定。
[0006]图像处理器GPU(Graphic Process Unit)的高性能数据处理能力的发展,为PDF加密文档口令的高速破解的提供了新的解决途径。GPU则将大量的晶体管用作ALU计算单元,适合高计算强度的应用。GPU在高性能运算方面具有三个突出优点:第一,数据的并行数据处理能力强大,NVIDIA公司目前的NVIDIA最新的GPU A100峰值浮点运算能力超过9TFLOPS,几乎和一个小型CPU集群相当;第二,GPU拥有出色的高密集运算能力,A100的带宽超过1.5TB/s;第三,GPU拥有良好的可编程性,支持多种高级语言编程,NVIDIA开发的CUDA架构支持C/C++和Fortran。在口令破解领域,相对传统的CPU破解,基于GPU的口令破解的加速比一般在20倍以上,如果构建高密度多GPU卡系统,其加速比会更加可观。但是由于口令空间
的巨大性和口令设置的复杂性,基于GPU的口令破解在破解时间方面仍然不理想。另一方面,目前的口令恢复工具已大都能支持GPU,例如Passware公司的Passware Kit Forensic能够支持GPU,但是Elcomsoft公司的Advanced PDF Password Recovery尚不能支持GPU。
[0007]综合看来,当前对PDF加密文档的解密还原基本还是依靠破解口令的方式,虽然采用口令字典或者掩码破解或者基于GPU平台能够一定程度上提升破解的成功率,但还存在以下主要问题:
[0008](1)复杂口令难以破解成功。若目标用户的口令长度较长或设置的口令采用了多种字符类型的混合模式,此时尝试的口令空间很大,难以进行成功破解。
[0009](2)密文文档的口令恢复时间较长,不能满足实际时效需求。实际中密文文档的口令破解时间越短越有实用价值,有时甚至要求对文档进行实时解密。现有方法的口令破解速度难以满足这样的实际需求。
[0010](3)密文文档口令破解的成功率不高。通过对现有破解工具的测试发现口令破解的成功率并不高,不能保证能对目标密文文档进行成功破解。
[0011](4)由于PDF格式的开放性,存在多种编辑软件,其中部分软件在加密时所用方法与标准方法有所不同,导致其加密特征值与标准不同,使得已有的口令恢复软件无法进行破解。

技术实现思路

[0012]为了解决上述问题,本专利技术提出一种基于GPU的PDF加密文档快速解密方法、设备及介质,可用于1.1

1.3版本的PDF加密文档的解密还原。
[0013]本专利技术采用的技术方案如下:
[0014]一种基于GPU的PDF加密文档快速解密方法,包括以下步骤:
[0015]S1.解析PDF加密文档,提取加密特征数据:PDF文档由多个不同的数据对象组成,其中与加密相关的数据存储在加密字典中,通过对PDF加密文档进行二进制搜索,得到加密特征数据;
[0016]S2.基于GPU平台破译PDF加密文档的解密密钥:基于GPU平台对PDF加密文档的解密密钥进行搜索;
[0017]S3.解密还原出对应的明文文档:步骤S2中破译出正确的解密密钥后,利用该解密密钥和文档密文数据存储结构信息解密还原出明文文档。
[0018]进一步地,步骤S1包括以下子步骤:
[0019]S101.二进制读取文件到流buff;
[0020]S102.判断是否是pdf文件:读取buff前5个字节,检查是否是%PDF

,若是则为pdf文件,执行步骤S103;否则,结束;
[0021]S103.判断是否加密:在buff中搜索字符串/Encrypt,如果搜索到,则说明是加密的,读取/Encrypt后面字符串直到第一个R,将这段字符串记为obj_EN,并将字符串obj_EN后缀R替换为obj,再执行步骤S104;否则未加密,退出;
[0022]S104.定位到加密字典并搜索特征值:在buff中搜索字符串obj_EN,搜索到obj_EN之后搜索字符串“/U(”;搜索到“/U(”之后,读取在“/U(”和下一个“)/”之间的32字节值,记为U。
[0023]进一步地,假设一共有n张GPU卡,每张GPU卡有m个计算核心,则步骤S2包括以下子步骤:
[0024]S201.将32个字节的常数赋值给buffer;
[0025]S202.将密钥空间平均分为n份:总空间为K,空间大小为240;n个空间分别为K1,K2,

,Kn,每个空间的大小为240/n;
[0026]S203.将密钥空间Ki传输到第i张GPU卡,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于GPU的PDF加密文档快速解密方法,其特征在于,包括以下步骤:S1.解析PDF加密文档,提取加密特征数据:PDF文档由多个不同的数据对象组成,其中与加密相关的数据存储在加密字典中,通过对PDF加密文档进行二进制搜索,得到加密特征数据;S2.基于GPU平台破译PDF加密文档的解密密钥:基于GPU平台对PDF加密文档的解密密钥进行搜索;S3.解密还原出对应的明文文档:步骤S2中破译出正确的解密密钥后,利用该解密密钥和文档密文数据存储结构信息解密还原出明文文档。2.根据权利要求1所述的基于GPU的PDF加密文档快速解密方法,其特征在于,步骤S1包括以下子步骤:S101.二进制读取文件到流buff;S102.判断是否是pdf文件:读取buff前5个字节,检查是否是%PDF

,若是则为pdf文件,执行步骤S103;否则,结束;S103.判断是否加密:在buff中搜索字符串/Encrypt,如果搜索到,则说明是加密的,读取/Encrypt后面字符串直到第一个R,将这段字符串记为obj_EN,并将字符串obj_EN后缀R替换为obj,再执行步骤S104;否则未加密,退出;S104.定位到加密字典并搜索特征值:在buff中搜索字符串obj_EN,搜索到obj_EN之后搜索字符串“/U(”;搜索到“/U(”之后,读取在“/U(”和下一个“)/”之间的32字节值,记为U。3.根据权利要求2所述的基于GPU的PDF加密文档快速解密方法,其特征在于,假设一共有n张GPU卡,每张GPU卡有m个计算核心,则步骤S2包括以下子步骤:S201.将32个字节的常数赋值给buffer;S202.将密钥空间平均分为n份:总空间为K,空间大小为240;n个空间分别为K1,K2,

,Kn,每个空间的大小为240/n;S203.将密钥空间Ki传输到第i张GPU卡,其中1≤i≤n;S204.在GPU上搜索正确的密钥:对于第i张GPU卡,收到的密钥空间为Ki,将Ki平均分为m份,第s份记为K
i,s
...

【专利技术属性】
技术研发人员:于飞张文政尹浩刘成徐德飞
申请(专利权)人:中国电子科技集团公司第三十研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1