一种通过硬件加密联系人的方法及系统转让专利

申请号 : CN202010631068.5

文献号 : CN111866868B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 钟芹盛

申请人 : 上海世麦智能科技有限公司

摘要 :

本发明涉及智能设备联系人加密技术领域,提供了一种通过硬件加密联系人的方法及系统,其方法包括加密存储和解密显示两个过程方法。加密存储,通过包括压缩、局部加密、Hash运算在内的步骤,将智能设备上的联系人转化成密联系人,并将所述密联系人存储在包括EMMC、flash在内的存储器上。解密显示,当所述智能设备开机时,通过包括Hash验证、局部解密、解压在内的步骤,将所述密联系人转化成明联系人,存储于内存虚拟的虚拟分区上,提供给所述智能设备的应用使用。通过使用硬件加密的方式,比普通的软件加密安全性更高,并且将明文数据库存储在内存虚拟的分区内,不管出现任何异常,都不会有明文的数据库残留在存储器上。

权利要求 :

1.一种通过硬件加密联系人的方法,其特征在于,包括加密存储和解密显示两个过程方法;

所述加密存储,通过包括压缩、局部加密、Hash运算在内的步骤,将智能设备上的联系人转化成密联系人,并将所述密联系人存储在包括EMMC、flash在内的存储器上,具体包括以下步骤:

S11:将所述智能设备上的联系人对应的数据库文件进行zip压缩,生成后缀名为.zip的zip压缩文件;

S12:针对所述zip压缩文件进行局部加密,选取所述zip压缩文件的文件头部的部分字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,加密后形成已加密数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件;

S13:通过国密杂凑算法sm3对所述sec加密文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位Hash值,将所述加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名为.zip.hash.sec的Hash加密文件,将所述Hash加密文件存储于所述存储器上;

所述解密显示,当所述智能设备开机时,通过包括Hash验证、局部解密、解压在内的步骤,将所述密联系人转化成明联系人,存储于内存虚拟的虚拟分区上,提供给所述智能设备的应用使用,其中,所述虚拟分区为通过linuxtmpfs虚拟内存文件系统,从内存中分配的一个分区,具体包括以下步骤:

S21:从所述Hash加密文件的尾部,截取所述加密后的32位Hash值,通过所述加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的Hash值;通过所述国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将计算结果与所述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾部的32位,生成后缀名为.zip.sec的所述sec加密文件,否则退出解密过程;

S22:针对所述sec加密文件进行局部解密,获取所述sec加密文件中所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密文件中对应的原始数据,生成后缀名为.zip的所述zip压缩文件;

S23:解压所述zip压缩文件,将解压后的文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使用;

针对所述zip压缩文件进行局部加密,具体为:选取所述zip压缩文件的文件头部从第129至144字节的16个字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,加密后形成16个字节的加密数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件。

2.根据权利要求1所述的通过硬件加密联系人的方法,其特征在于,还包括:通过所述linuxtmpfs虚拟内存文件系统,从内存中分配出一个分区,作为所述虚拟分区,用于存储所述明联系人,具体执行的命令为:mount‑ttmpfs‑osize=100mtmpfs/mnt/vd;

其中,mount命令用来挂载文件系统,‑t代表挂载的文件系统的类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的size=100M,表示划分的分区大小为100M,tmpfs/mnt/vd代表挂载路径。

3.根据权利要求2所述的通过硬件加密联系人的方法,其特征在于,针对所述sec加密文件进行局部解密,具体为:

获取所述sec加密文件的文件头部从第129至144字节的16个字节作为所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密文件中对应的原始数据,生成后缀名为.zip的所述zip压缩文件。

4.一种通过硬件加密联系人的系统,其特征在于,包括加密存储模块和解密显示模块;

所述加密存储模块,用于通过包括压缩、局部加密、Hash运算在内的步骤,将智能设备上的联系人转化成密联系人,并将所述密联系人存储在包括EMMC、flash在内的存储器上,进一步包括:

压缩单元,用于将所述智能设备上的联系人对应的数据库文件进行zip压缩,生成后缀名为.zip的zip压缩文件;

局部加密单元,用于针对所述zip压缩文件进行局部加密,选取所述zip压缩文件的文件头部的部分字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,加密后形成已加密数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件;

Hash运算单元,用于通过国密杂凑算法sm3对所述sec加密文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位Hash值,将所述加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名为.zip.hash.sec的Hash加密文件,将所述Hash加密文件存储于所述存储器上;

所述解密显示模块,用于当所述智能设备开机时,通过包括Hash验证、局部界面、解压在内的步骤,将所述密联系人转化成明联系人,存储于内存虚拟的虚拟分区上,提供给所述智能设备的应用使用,其中,所述虚拟分区为通过linuxtmpfs虚拟内存文件系统,从内存中分配的一个分区,进一步包括:

Hash验证单元,用于从所述Hash加密文件的尾部,截取所述加密后的32位Hash值,通过所述加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的Hash值;通过所述国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将计算结果与所述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾部的

32位,生成后缀名为.zip.sec的所述sec加密文件,否则退出解密过程;

局部解密单元,用于针对所述sec加密文件进行局部解密,获取所述sec加密文件中所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密文件中对应的原始数据,生成后缀名为.zip的所述zip压缩文件;

解压单元,用于解压所述zip压缩文件,将解压后的文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使用。

5.根据权利要求4所述的通过硬件加密联系人的系统,其特征在于,还包括:虚拟分区模块,用于通过所述linuxtmpfs虚拟内存文件系统,从内存中分配出一个分区,作为所述虚拟分区,用于存储所述明联系人,具体执行的命令为:mount‑ttmpfs‑osize=100mtmpfs/mnt/vd;其中,mount命令用来挂载文件系统,‑t代表挂载的文件系统的类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的size=100M,表示划分的分区大小为100M,tmpfs/mnt/vd代表挂载路径。

说明书 :

一种通过硬件加密联系人的方法及系统

技术领域

[0001] 本发明涉及智能设备联系人加密的技术领域,尤其涉及一种通过硬件加密联系人的方法及系统。

背景技术

[0002] 随着智能设备的普及,智能设备中敏感信息的保护变得越来越重要。联系人、通话记录信息就是其中一种。现有的智能设备用户数据加密主要集中在对用户分区的全盘加
密,这种加密方式仅针对整个用户数据分区加密,且采用开源的软加密算法。
[0003] 进一步地,在现有的技术中,由于应用不能读写加密后的联系人数据,只能访问明文形式数据库,一般的加解密方案会在开机时将数据库解密,然后将明文的数据库存放在
存储器的某个路径下提供给应用使用,在手机关机时再删掉明文的数据库,以达到存储器
里不存储明文数据的目的。但这种方案有其明显的缺陷,攻击者如果在手机开机状态下直
接断电,或者让手机异常关机,则存储在某个路径下的明文数据就保留在了存储器里,达不
到数据加密的原始目的。

发明内容

[0004] 针对上述问题,本发明的目的在于提供一种通过硬件加密联系人的方法及系统,联系人数据库经过压缩算法,加密T卡加密,并计算hash值后,存储在设备存储器(EMMC,
flash等)上,系统启动时从存储器上读取加密后的数据库,经过解密、解压、验证完整性后,
导入到内存虚拟出的存储区域后使用。
[0005] 本发明的上述发明目的是通过以下技术方案得以实现的:
[0006] 一种通过硬件加密联系人的方法,包括加密存储和解密显示两个过程方法;
[0007] 所述加密存储,通过包括压缩、局部加密、Hash运算在内的步骤,将智能设备上的联系人转化成密联系人,并将所述密联系人存储在包括EMMC、flash在内的存储器上,具体
包括以下步骤:
[0008] S11:将所述智能设备上的联系人对应的数据库文件进行zip压缩,生成后缀名为.zip的zip压缩文件;
[0009] S12:针对所述zip压缩文件进行局部加密,选取所述zip压缩文件的文件头部的部分字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,加密后形成已加密
数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件;
[0010] S13:通过国密杂凑算法sm3对所述sec加密文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位Hash值,将所述
加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名为.zip.hash.sec
的Hash加密文件,将所述Hash加密文件存储于所述存储器上;
[0011] 所述解密显示,当所述智能设备开机时,通过包括Hash验证、局部解密、解压在内的步骤,将所述密联系人转化成明联系人,存储于内存虚拟的虚拟分区上,提供给所述智能
设备的应用使用,其中,所述虚拟分区为通过linux tmpfs虚拟内存文件系统,从内存中分
配的一个分区,具体包括以下步骤:
[0012] S21:从所述Hash加密文件的尾部,截取所述加密后的32位Hash值,通过所述加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的Hash值;通过所述国密杂凑算法
sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将计算结果与所
述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾部的32位,生成
后缀名为.zip.sec的所述sec加密文件,否则退出解密过程;
[0013] S22:针对所述sec加密文件进行局部解密,获取所述sec加密文件中所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密文件中对应的原
始数据,生成后缀名为.zip的所述zip压缩文件;
[0014] S23:解压所述zip压缩文件,将解压后的文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使用。
[0015] 进一步地,通过硬件加密联系人的方法,还包括:
[0016] 通过所述linux tmpfs虚拟内存文件系统,从内存中分配出一个分区,作为所述虚拟分区,用于存储所述明联系人,具体执行的命令为:
[0017] mount‑t tmpfs‑o size=100m tmpfs/mnt/vd;
[0018] 其中,mount命令用来挂载文件系统,‑t代表挂载的文件系统的类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的size=100M,表示划分的分
区大小为100M,tmpfs/mnt/vd代表挂载路径。
[0019] 进一步地,针对所述zip压缩文件进行局部加密,具体为:
[0020] 选取所述zip压缩文件的文件头部从第129至144字节的16个字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,加密后形成16个字节的加密数据,替换
掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件。
[0021] 进一步地,针对所述sec加密文件进行局部解密,具体为:
[0022] 获取所述sec加密文件的文件头部从第129至144字节的16个字节作为所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密文件中对应的
原始数据,生成后缀名为.zip的所述zip压缩文件。
[0023] 一种通过硬件加密联系人的系统,包括加密存储模块和解密显示模块;
[0024] 所述加密存储模块,用于通过包括压缩、局部加密、Hash运算在内的步骤,将智能设备上的联系人转化成密联系人,并将所述密联系人存储在包括EMMC、flash在内的存储器
上,进一步包括:
[0025] 压缩单元,用于将所述智能设备上的联系人对应的数据库文件进行zip压缩,生成后缀名为.zip的zip压缩文件;
[0026] 局部加密单元,用于针对所述zip压缩文件进行局部加密,选取所述zip压缩文件的文件头部的部分字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,加
密后形成已加密数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec
的sec加密文件;
[0027] Hash运算单元,用于通过国密杂凑算法sm3对所述sec加密文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位
Hash值,将所述加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名
为.zip.hash.sec的Hash加密文件,将所述Hash加密文件存储于所述存储器上;
[0028] 所述解密显示模块,用于当所述智能设备开机时,通过包括Hash验证、局部界面、解压在内的步骤,将所述密联系人转化成明联系人,存储于内存虚拟的虚拟分区上,提供给
所述智能设备的应用使用,其中,所述虚拟分区为通过linux tmpfs虚拟内存文件系统,从
内存中分配的一个分区,进一步包括:
[0029] Hash验证单元,用于从所述Hash加密文件的尾部,截取所述加密后的32位Hash值,通过所述加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的Hash值;通过所述
国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将
计算结果与所述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾
部的32位,生成后缀名为.zip.sec的所述sec加密文件,否则退出解密过程
[0030] 局部解密单元,用于针对所述sec加密文件进行局部解密,获取所述sec加密文件中所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密
文件中对应的原始数据,生成后缀名为.zip的所述zip压缩文件;
[0031] 解压单元,用于解压所述zip压缩文件,将解压后的文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使用。
[0032] 进一步的,通过硬件加密联系人的系统,其特征在于,还包括:
[0033] 虚拟分区模块,用于通过所述linux tmpfs虚拟内存文件系统,从内存中分配出一个分区,作为所述虚拟分区,用于存储所述明联系人,具体执行的命令为:mount‑t tmpfs‑o 
size=100m tmpfs/mnt/vd;其中,mount命令用来挂载文件系统,‑t代表挂载的文件系统的
类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的size=
100M,表示划分的分区大小为100M,tmpfs/mnt/vd代表挂载路径。
[0034] 一种通过硬件加密联系人的方法,包括加密存储和解密显示两个过程方法:
[0035] 所述加密存储的过程为:将智能设备上的联系人对应的数据库文件,通过加密T卡进行硬件加密,将加密后的密联系人文件存储于存储器上;
[0036] 所述解密显示的过程为:通过所述加密T卡对所述密联系人文件进行硬件解密,并加解密后的所述数据库文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使
用。
[0037] 进一步地,通过硬件加密联系人的方法,还包括:
[0038] 在通过所述加密T卡进行硬件加密时,截取所述数据库文件的文件头部部分字节作为待加密数据,通过所述加密T卡对所述待加密文件进行硬件加密,加密后形成已加密数
据,替换掉所述数据库文件中对应的原始数据,生成加密后的所述密联系人文件存储于所
述存储器上。
[0039] 进一步地,在将所述密联系人文件存储于所述存储器上之前,还包括:
[0040] 通过国密杂凑算法sm3对所述密联系人文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位Hash值,将所述加密后
的32位Hash值增加到所述密联系人文件的尾部。
[0041] 进一步地,在将智能设备上的联系人对应的所述数据库文件,通过所述加密T卡进行硬件加密之前,还包括:
[0042] 将所述数据库文件进行zip压缩,将压缩后的所述数据文件,通过所述加密T卡进行硬件加密。
[0043] 与现有技术相比,本发明包括以下至少一种有益效果是:
[0044] (1)通过使用加密T卡对待加密数据进行硬件加密的方式,比普通的软件加密安全性更高。
[0045] (2)通过将解压后的文件存入内存虚拟的虚拟分区上,提供给智能设备使用,明文数据库存储在内存虚拟的分区里(虚拟硬盘),不管出现任何异常(掉电、死机、强制重启
等),都不会有明文数据库残留在存储器上,极大的加强了安全性。
[0046] (3)采用虚拟分区存储明联系人的方式,只需要启动时解密一次,后续应用读取的都是内存里的明联系人数据库,因此访问效率不受任何影响,与普通未加密数据库联系人
没有任何效率上的差异。
[0047] (4)不对数据库全部数据进行加密,而是压缩后仅加密头部字段,由于压缩后的数据有任何变化都无法解压,因此既保证了安全性,又保证了效率。与普通的全数据加密相
比,加解密速度基本不受数据库大小影响。
[0048] (5)由于采用虚拟分区存储明联系人的方式,对于上层应用来说与普通联系人数据库没有任何区别,因此该方案可以很好的兼容各种市面上开放的联系人应用,联系人应
用也不用专门定制。
[0049] (6)基于将明联系人存储于内存的虚拟分区中,并且仅对压缩后的头部字段进行加密,该密联系人加密方案效率基本上不受联系人数量的影响,因此极其适合现在用户联
系人数量庞大的场景。
[0050] (7)对加密后的数据库通过国密杂凑算法sm3进行Hash运算,并对Hash值通过加密T卡进一步加密,进一步保证了数据的完整性。

附图说明

[0051] 图1为本发明联系加解密服务的整体结构图;
[0052] 图2为本发明联系人数据库加密的整体流程图;
[0053] 图3为本发明智能设备最小硬件组成结构图;
[0054] 图4为本发明加密前的zip压缩文件的头部的示意图;
[0055] 图5为本发明加密后的sec加密文件的头部的示意图;
[0056] 图6为本发明增加Hash值之前的文件的尾部的示意图;
[0057] 图7为本发明增加Hash值之后的文件的尾部的示意图;
[0058] 图8为本发明联系人数据库解密的整体流程图;
[0059] 图9为本发明一种通过硬件加密联系人的系统的整体结构图。

具体实施方式

[0060] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0061] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措
辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加
一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
[0062] 本发明的密联系人存储在存储器上,应用层使用的明联系人存储在内存虚拟的虚拟分区上,具体设计方案为:
[0063] 联系人数据在智能设备上通常以数据库形式保存,一般存放在存储器(emmc或flash)的用于数据区域,比如说:/data/data/com.android.providers.contacts/
databases/contacts.db。
[0064] 由于应用不能读写加密后的联系人数据,只能访问明文形式数据库,一般的加解密方案会在开机时将数据库解密,然后将明文的数据库放在存储器的某个路径下提供给应
用使用,在手机关机时再删除掉明文的数据库,以达到存储器里不存储明文数据库的目的。
但这种方案有明显的缺陷,攻击者如果在手机开机状态下直接断电,或者让手机异常关机,
则存储在某个路径下的明文数据就保留在了存储器里,达不到数据加密的原始目的。为了
解决这个问题,我们在init.rc里通过linux tmpfs虚拟内存文件系统,分配出一部分的内
存挂载成虚拟盘,并配置相应的权限,命令如下:
[0065] mkdir/mnt/vd 0777system system
[0066] mount–t tmpfs–o size=300m tmpfs/mnt/vd
[0067] chmod 0777/mnt/vd
[0068] chown system system/mnt/vd
[0069] 这样,解密后的明文数据库存放在虚拟盘里提供给上层应用使用,即使手机异常掉电或者关机的情况下,也不会有明文的数据残留在存储器里。
[0070] 基于以上方案,将加密的后的数据存储在存储器中,如:/data/data/com.android.providers.contacts/databases/contacts.db
[0071] 将明文的数据库及相关中间文件存储在虚拟盘里面。
[0072] 第一实施例
[0073] 本实施例为一种通过硬件加密联系人的方法的具体举例,如图1所示,通过联系人加解密服务对联系人数据库进行处理,将加密后的数据库存储于存储器中,将解密后的明
文数据库存储于内存的虚拟分区中,提供给联系人应用使用。其方法包括加密存储和解密
显示两个过程方法。
[0074] 如图2所示,所述加密存储,通过包括压缩、局部加密、Hash运算在内的步骤,将智能设备上的联系人转化成密联系人,并将所述密联系人存储在包括EMMC、flash在内的存储
器上,具体包括以下步骤:
[0075] S11:将所述智能设备上的联系人对应的数据库文件进行zip压缩,生成后缀名为.zip的zip压缩文件。
[0076] 具体地,在新建完联系人,并且将联系人对应的数据库文件保存于虚拟文件系统之后,需要通过加密T卡进行加密,其中,增加了加密T卡的智能设备的系统的最小硬件组成
结构如图3所示。由于加密T卡的理论数据加解密速率在2MBit/s左右,1MByte的数据库数据
如果要全部加、解密则需要4s左右,如果联系人数据库数量增大,则加解密所需要的时间也
会线性增加,因此在对数据库加密时,我们先对数据库进行压缩,压缩后生成后缀名为.zip
的zip压缩文件。
[0077] S12:针对所述zip压缩文件进行局部加密,选取所述zip压缩文件的文件头部的部分字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,加密后形成已加密
数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件。
[0078] 具体地,在本实施例中,任何字节的改变都会导致zip文件无法解压,因此,我们对zip压缩文件进行局部加密,即尽可能保证数据的安全性,也能保证数据加密的效率。考虑
到zip文件头部有部分信息是头文件信息,为了保证加密的有效性,选取zip压缩文件的文
件头部从第129至144字节的16个字节作为待加密数据,通过加密T卡对所述待加密数据进
行硬件加密,加密后形成16个字节的加密数据,替换掉所述zip压缩文件中对应的原始数
据,生成后缀名为.zip.sec的sec加密文件。
[0079] 举个例子来说,加密前的zip压缩文件的头部如图4所示,加密后的sec加密文件的头部如图5所示。对zip压缩文件的文件头部从第129至144字节的16个字节“F3 BD DF F7 
7B 7F DF 3D 73 DF A9 72CB D4 2F D4”进行加密得到加密后的16个字节的加密数据“92 
34 DC E4 43 07 35 4B 2E F4 6D B6 AD 5C E7 75”。替换掉所述zip压缩文件中对应的原
始数据,生成头部如图5所示的,后缀名为.zip.sec的sec加密文件。
[0080] S13:通过国密杂凑算法sm3对所述sec加密文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位Hash值,将所述
加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名为.zip.hash.sec
的Hash加密文件,将所述Hash加密文件存储于所述存储器上。
[0081] 举个例子来说,增加Hash值之前的文件的尾部如图6所示,增加Hash值之后的文件的尾部如图7所示。通过国密杂凑算法sm3对所述sec加密文件进行Hash运算,得到32位的
Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位Hash值“49 
CD CF D2 86 2C B1 FB 3F 7C 70 6B DE FB A0 9F 5C 6E 11 F4 C6 ED 90 0D D9 43 AE 
8C 49 B5 06 29”。将加密后的32位Hash值增加到所述sec加密文件的尾部,得到文件尾部
如图7所示的最终的后缀名为.zip.hash.sec的Hash加密文件,将所述Hash加密文件存储于
所述存储器上。
[0082] 如图8所示,所述解密显示,为加密存储的逆向过程,当所述智能设备开机时,通过包括Hash验证、局部解密、解压在内的步骤,将所述密联系人转化成明联系人,存储于内存
虚拟的虚拟分区上,提供给所述智能设备的应用使用,其中,所述虚拟分区为通过linux 
tmpfs虚拟内存文件系统,从内存中分配的一个分区,具体包括以下步骤:
[0083] S21:从所述Hash加密文件的尾部,截取所述加密后的32位Hash值,通过所述加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的Hash值;通过所述国密杂凑算法
sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将计算结果与所
述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾部的32位,生成
后缀名为.zip.sec的所述sec加密文件,否则退出解密过程。
[0084] 举个例子来说,截取如图7所示的Hash加密文件的尾部的加密后的32位Hash值“49 CD CF D2 86 2C B1 FB 3F 7C 70 6B DE FB A0 9F 5C 6E 11 F4 C6 ED 90 0D D9 43 AE 
8C 49 B5 06 29”。通过加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的
Hash值。再次通过国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的
部分进行计算,将计算结果与所述32位的Hash值进行对比,若相同则验证通过,说明文件正
确。去掉所述Hash加密文件的尾部的32位,生成后缀名为.zip.sec的所述sec加密文件,否
则退出解密过程。
[0085] S22:针对所述sec加密文件进行局部解密,获取所述sec加密文件中所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密文件中对应的原
始数据,生成后缀名为.zip的所述zip压缩文件。
[0086] 获取所述sec加密文件的文件头部从第129至144字节的16个字节作为所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加密文件中对应的
原始数据,生成后缀名为.zip的所述zip压缩文件。
[0087] 具体地,如图5所示的加密后的sec加密文件的头部。读取第129至144字节的16个字节“92 34 DC E4 43 07 35 4B 2E F4 6D B6 AD 5C E7 75”作为所述已加密数据,通过
加密T卡进行解密,解密后形成解密数据“F3 BD DF F7 7B 7F DF 3D 73 DF A9 72 CB D4 
2F D4”。替换掉所述sec加密文件中对应的原始数据,恢复成头部如图4所示的,后缀名为
.zip的所述zip压缩文件。
[0088] S23:解压所述zip压缩文件,将解压后的文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使用。
[0089] 进一步地,通过硬件加密联系人的方法,还包括:
[0090] 通过所述linux tmpfs虚拟内存文件系统,从内存中分配出一个分区,作为所述虚拟分区,用于存储所述明联系人,具体执行的命令为:
[0091] mount‑t tmpfs‑o size=100m tmpfs/mnt/vd;
[0092] 其中,mount命令用来挂载文件系统,‑t代表挂载的文件系统的类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的size=100M,表示划分的分
区大小为100M,tmpfs/mnt/vd代表挂载路径。
[0093] 第二实施例
[0094] 如图9所示,本实施例提供了一种通过硬件加密联系人的系统,包括加密存储模块1和解密显示模块2;
[0095] 所述加密存储模块1,用于通过包括压缩、局部加密、Hash运算在内的步骤,将智能设备上的联系人转化成密联系人,并将所述密联系人存储在包括EMMC、flash在内的存储器
上,进一步包括:
[0096] 压缩单元11,用于将所述智能设备上的联系人对应的数据库文件进行zip压缩,生成后缀名为.zip的zip压缩文件;
[0097] 局部加密单元12,用于针对所述zip压缩文件进行局部加密,选取所述zip压缩文件的文件头部的部分字节作为待加密数据,通过加密T卡对所述待加密数据进行硬件加密,
加密后形成已加密数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为
.zip.sec的sec加密文件;
[0098] Hash运算单元13,用于通过国密杂凑算法sm3对所述sec加密文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位
Hash值,将所述加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名
为.zip.hash.sec的Hash加密文件,将所述Hash加密文件存储于所述存储器上;
[0099] 所述解密显示模块2,用于当所述智能设备开机时,通过包括Hash验证、局部界面、解压在内的步骤,将所述密联系人转化成明联系人,存储于内存虚拟的虚拟分区上,提供给
所述智能设备的应用使用,其中,所述虚拟分区为通过linux tmpfs虚拟内存文件系统,从
内存中分配的一个分区,进一步包括:
[0100] Hash验证单元21,用于从所述Hash加密文件的尾部,截取所述加密后的32位Hash值,通过所述加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的Hash值;通过
所述国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计
算,将计算结果与所述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件
的尾部的32位,生成后缀名为.zip.sec的所述sec加密文件,否则退出解密过程
[0101] 局部解密单元22,用于针对所述sec加密文件进行局部解密,获取所述sec加密文件中所述已加密数据,通过所述加密T卡进行解密,解密后形成解密数据,替换掉所述sec加
密文件中对应的原始数据,生成后缀名为.zip的所述zip压缩文件;
[0102] 解压单元23,用于解压所述zip压缩文件,将解压后的文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使用。
[0103] 进一步地,系统还包括:
[0104] 虚拟分区模块3,用于通过所述linux tmpfs虚拟内存文件系统,从内存中分配出一个分区,作为所述虚拟分区,用于存储所述明联系人,具体执行的命令为:mount‑t 
tmpfs‑o size=100m tmpfs/mnt/vd;其中,mount命令用来挂载文件系统,‑t代表挂载的文
件系统的类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的
size=100M,表示划分的分区大小为100M,tmpfs/mnt/vd代表挂载路径。
[0105] 第三实施例
[0106] 本实例例还提供了一种通过硬件加密联系人的方法,包括加密存储和解密显示两个过程方法:
[0107] 所述加密存储的过程为:将智能设备上的联系人对应的数据库文件,通过加密T卡进行硬件加密,将加密后的密联系人文件存储于存储器上;
[0108] 所述解密显示的过程为:通过所述加密T卡对所述密联系人文件进行硬件解密,并加解密后的所述数据库文件存入内存虚拟的虚拟分区上,提供给所述智能设备的应用使
用。
[0109] 进一步地,通过硬件加密联系人的方法,还包括:在通过所述加密T卡进行硬件加密时,截取所述数据库文件的文件头部部分字节作为待加密数据,通过所述加密T卡对所述
待加密文件进行硬件加密,加密后形成已加密数据,替换掉所述数据库文件中对应的原始
数据,生成加密后的所述密联系人文件存储于所述存储器上。
[0110] 进一步地,在将所述密联系人文件存储于所述存储器上之前,还包括:
[0111] 通过国密杂凑算法sm3对所述密联系人文件进行Hash运算,得到32位的Hash值,并通过所述加密T卡对所述32位的Hash值进行加密,得到加密后的32位Hash值,将所述加密后
的32位Hash值增加到所述密联系人文件的尾部。
[0112] 进一步地,在将智能设备上的联系人对应的所述数据库文件,通过所述加密T卡进行硬件加密之前,还包括:
[0113] 将所述数据库文件进行zip压缩,将压缩后的所述数据文件,通过所述加密T卡进行硬件加密。
[0114] 需要说明的是,与第一实施例相似,本实施例在进行解密时会通过与加密的细分步骤相对应的解密步骤进行解密,本实施例不再赘述。
[0115] 以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域
的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也
应视为本发明的保护范围。
[0116] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存
在矛盾,都应当认为是本说明书记载的范围。
[0117] 应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提
下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。