一种通过硬件加密联系人的方法及系统转让专利
申请号 : CN202010631068.5
文献号 : CN111866868B
文献日 : 2021-07-27
发明人 : 钟芹盛
申请人 : 上海世麦智能科技有限公司
摘要 :
权利要求 :
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代表挂载路径。
说明书 :
一种通过硬件加密联系人的方法及系统
技术领域
背景技术
密,这种加密方式仅针对整个用户数据分区加密,且采用开源的软加密算法。
存储器的某个路径下提供给应用使用,在手机关机时再删掉明文的数据库,以达到存储器
里不存储明文数据的目的。但这种方案有其明显的缺陷,攻击者如果在手机开机状态下直
接断电,或者让手机异常关机,则存储在某个路径下的明文数据就保留在了存储器里,达不
到数据加密的原始目的。
发明内容
flash等)上,系统启动时从存储器上读取加密后的数据库,经过解密、解压、验证完整性后,
导入到内存虚拟出的存储区域后使用。
包括以下步骤:
数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件;
加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名为.zip.hash.sec
的Hash加密文件,将所述Hash加密文件存储于所述存储器上;
设备的应用使用,其中,所述虚拟分区为通过linux tmpfs虚拟内存文件系统,从内存中分
配的一个分区,具体包括以下步骤:
sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将计算结果与所
述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾部的32位,生成
后缀名为.zip.sec的所述sec加密文件,否则退出解密过程;
始数据,生成后缀名为.zip的所述zip压缩文件;
区大小为100M,tmpfs/mnt/vd代表挂载路径。
掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件。
原始数据,生成后缀名为.zip的所述zip压缩文件。
上,进一步包括:
密后形成已加密数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec
的sec加密文件;
Hash值,将所述加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名
为.zip.hash.sec的Hash加密文件,将所述Hash加密文件存储于所述存储器上;
所述智能设备的应用使用,其中,所述虚拟分区为通过linux tmpfs虚拟内存文件系统,从
内存中分配的一个分区,进一步包括:
国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将
计算结果与所述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾
部的32位,生成后缀名为.zip.sec的所述sec加密文件,否则退出解密过程
文件中对应的原始数据,生成后缀名为.zip的所述zip压缩文件;
size=100m tmpfs/mnt/vd;其中,mount命令用来挂载文件系统,‑t代表挂载的文件系统的
类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的size=
100M,表示划分的分区大小为100M,tmpfs/mnt/vd代表挂载路径。
用。
据,替换掉所述数据库文件中对应的原始数据,生成加密后的所述密联系人文件存储于所
述存储器上。
的32位Hash值增加到所述密联系人文件的尾部。
等),都不会有明文数据库残留在存储器上,极大的加强了安全性。
没有任何效率上的差异。
比,加解密速度基本不受数据库大小影响。
用也不用专门定制。
系人数量庞大的场景。
附图说明
具体实施方式
本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员
在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加
一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
databases/contacts.db。
用使用,在手机关机时再删除掉明文的数据库,以达到存储器里不存储明文数据库的目的。
但这种方案有明显的缺陷,攻击者如果在手机开机状态下直接断电,或者让手机异常关机,
则存储在某个路径下的明文数据就保留在了存储器里,达不到数据加密的原始目的。为了
解决这个问题,我们在init.rc里通过linux tmpfs虚拟内存文件系统,分配出一部分的内
存挂载成虚拟盘,并配置相应的权限,命令如下:
文数据库存储于内存的虚拟分区中,提供给联系人应用使用。其方法包括加密存储和解密
显示两个过程方法。
器上,具体包括以下步骤:
结构如图3所示。由于加密T卡的理论数据加解密速率在2MBit/s左右,1MByte的数据库数据
如果要全部加、解密则需要4s左右,如果联系人数据库数量增大,则加解密所需要的时间也
会线性增加,因此在对数据库加密时,我们先对数据库进行压缩,压缩后生成后缀名为.zip
的zip压缩文件。
数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为.zip.sec的sec加密文件。
到zip文件头部有部分信息是头文件信息,为了保证加密的有效性,选取zip压缩文件的文
件头部从第129至144字节的16个字节作为待加密数据,通过加密T卡对所述待加密数据进
行硬件加密,加密后形成16个字节的加密数据,替换掉所述zip压缩文件中对应的原始数
据,生成后缀名为.zip.sec的sec加密文件。
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加密文件。
加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名为.zip.hash.sec
的Hash加密文件,将所述Hash加密文件存储于所述存储器上。
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加密文件存储于
所述存储器上。
虚拟的虚拟分区上,提供给所述智能设备的应用使用,其中,所述虚拟分区为通过linux
tmpfs虚拟内存文件系统,从内存中分配的一个分区,具体包括以下步骤:
sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计算,将计算结果与所
述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件的尾部的32位,生成
后缀名为.zip.sec的所述sec加密文件,否则退出解密过程。
8C 49 B5 06 29”。通过加密T卡对所述加密后的32位Hash值进行解密,得到所述32位的
Hash值。再次通过国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的
部分进行计算,将计算结果与所述32位的Hash值进行对比,若相同则验证通过,说明文件正
确。去掉所述Hash加密文件的尾部的32位,生成后缀名为.zip.sec的所述sec加密文件,否
则退出解密过程。
始数据,生成后缀名为.zip的所述zip压缩文件。
原始数据,生成后缀名为.zip的所述zip压缩文件。
加密T卡进行解密,解密后形成解密数据“F3 BD DF F7 7B 7F DF 3D 73 DF A9 72 CB D4
2F D4”。替换掉所述sec加密文件中对应的原始数据,恢复成头部如图4所示的,后缀名为
.zip的所述zip压缩文件。
区大小为100M,tmpfs/mnt/vd代表挂载路径。
上,进一步包括:
加密后形成已加密数据,替换掉所述zip压缩文件中对应的原始数据,生成后缀名为
.zip.sec的sec加密文件;
Hash值,将所述加密后的32位Hash值增加到所述sec加密文件的尾部,得到最终的后缀名
为.zip.hash.sec的Hash加密文件,将所述Hash加密文件存储于所述存储器上;
所述智能设备的应用使用,其中,所述虚拟分区为通过linux tmpfs虚拟内存文件系统,从
内存中分配的一个分区,进一步包括:
所述国密杂凑算法sm3对所述Hash加密文件去掉所述加密后的32位Hash值的部分进行计
算,将计算结果与所述32位的Hash值进行对比,若相同则验证通过,去掉所述Hash加密文件
的尾部的32位,生成后缀名为.zip.sec的所述sec加密文件,否则退出解密过程
密文件中对应的原始数据,生成后缀名为.zip的所述zip压缩文件;
tmpfs‑o size=100m tmpfs/mnt/vd;其中,mount命令用来挂载文件系统,‑t代表挂载的文
件系统的类型,tmpfs代表挂载的文件系统是tmpfs类型,‑o代表选项,size代表选项里面的
size=100M,表示划分的分区大小为100M,tmpfs/mnt/vd代表挂载路径。
用。
待加密文件进行硬件加密,加密后形成已加密数据,替换掉所述数据库文件中对应的原始
数据,生成加密后的所述密联系人文件存储于所述存储器上。
的32位Hash值增加到所述密联系人文件的尾部。
的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也
应视为本发明的保护范围。
在矛盾,都应当认为是本说明书记载的范围。
下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。