著录项信息
专利名称 | 一种用于移动智能终端的文件加密方法和系统 |
申请号 | CN201110182211.8 | 申请日期 | 2011-06-30 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2012-02-15 | 公开/公告号 | CN102355350A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L9/06 | IPC分类号 | H;0;4;L;9;/;0;6;;;H;0;4;L;9;/;0;8查看分类表>
|
申请人 | 北京邮电大学 | 申请人地址 | 北京市海淀区西土城路10号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京邮电大学 | 当前权利人 | 北京邮电大学 |
发明人 | 卞佳丽;张峻明;邝坚;鲁琲 |
代理机构 | 北京聿宏知识产权代理有限公司 | 代理人 | 吴大建;刘华联 |
摘要
本发明公开了一种应用于移动终端领域的文件加密方法和系统,所述方法包括以下步骤:密钥生成步骤,生成对应所述保护等级的加密密钥;文件加密步骤,根据所述加密密钥对所述待加密文件进行加密得到已加密文件;密钥加密步骤,根据所述用户口令对所述加密密钥进行加密;写入步骤,将加密后的加密密钥写入所述已加密文件的指定位置。根据本发明的方法,可以省去用户读取文件时需要查询密钥的时间,很好的保证了加密密钥的安全,使文件的安全性得到了提高。
一种用于移动智能终端的文件加密方法和系统\n技术领域\n[0001] 本发明涉及一种文件加密技术,尤其涉及一种用于移动智能终端的分等级的文件加密方法和系统。\n背景技术\n[0002] 文件加密是一种根据要求在操作系统层自动地对写入存储介质的数据进行加密的技术,通过对文件进行加密以防止文件信息被窃取。随着移动智能终端的广泛应用,越来越多的黑客瞄准了移动智能终端用户,用户的文件信息被窃取的现象越来越多,因此,对移动智能终端中用户的文件信息进行有效的加密便显得尤为重要。\n[0003] Android(商标)操作系统是Google公司于2007年11月5日发布的基于Linux平台的开源移动智能终端操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。\n[0004] 现有的Android操作系统上的加密方法都是采用应用层JAVA语言所提供的加密接口,使用DES或者AES算法,DES算法不仅效率低而且不能抵御差分攻击,而且密钥长度也只有56位,AES算法虽然有128位的密钥长度,但是运算速度却很缓慢。\n[0005] 现有的Android操作系统上存储密钥的主要方式是直接把密钥存储在数据库里,但是Android自身的数据库却没有良好的保护措施,这使得一旦数据库泄露,大量密钥将被攻击者获取,造成用户重要数据大量泄漏。\n[0006] BLOWFISH加密算法是由Bruce Schneier设计的一种对称分组密码,具有很强的抗差分分析攻击的能力,具有高效,安全性、密钥长度可变等特点,具有32到448位可选择的密钥长度。但是该算法也存在一种安全隐患,即在产生子密钥后为了提高加密速度,而将子密钥保存在Cache中,这样使得如果Cache内容被攻击者窃取,便会造成全部加密子密钥泄露。\n[0007] 消息摘要算法第五版(MD5)是由Ronal L.Rivest开发的,由MD2、MD3和MD4发展而来,它的作用是对消息生成消息摘要信息,如果消息在传播中被修改,那么在接收端重新计算该消息摘要值与原摘要值作对比时,就可以看出摘要值的不同,从而得出消息发生了修改。\n发明内容\n[0008] 本发明目的在于提供一种用于移动智能终端的文件加密方法和文件加密系统,旨在解决现有技术中,由于对安全性的忽略或对效率的忽略,而造成的移动终端文件不安全的存储或者加密效率过慢的问题。\n[0009] 为了解决上述技术问题,本发明提供了一种用于移动智能终端的文件加密方法,其特征在于,包括:密钥生成步骤,生成对应所述保护等级的加密密钥;文件加密步骤,根据所述加密密钥对所述待加密文件进行加密得到已加密文件;密钥加密步骤,根据所述用户口令对所述加密密钥进行加密;写入步骤,将加密后的加密密钥写入所述已加密文件的指定位置。\n[0010] 进一步,该方法还包括:在所述密钥生成步骤中,选择待加密文件的保护等级,根据所述保护等级不同,对应的所述加密密钥的长度不同。\n[0011] 进一步,该方法还包括:所述密钥加密步骤中,使用摘要消息算法MD5处理所述用户口令得到所述用户口令的摘要信息,使用所述摘要信息来加密所述加密密钥。\n[0012] 进一步,该方法还包括:在所述文件加密步骤之前,先将所述待加密文件与一个变换矩阵进行异或运算,在所述文件加密步骤中将异或后的待加密数据进行加密;将所述变化矩阵根据所述用户口令进行加密,在所述写入步骤中将加密后的变换矩阵与加密后的加密密钥一并写入所述已加密文件的指定位置。\n[0013] 进一步,该方法还包括:所述变换矩阵为一个由随机数组成的矩阵,通过系统时间和一个随机值来生成。\n[0014] 进一步,该方法还包括:所述变换矩阵为64位随机数组成的矩阵,所述待加密文件中读出的各个64位数据分别与所述64位随机数进行异或运算。\n[0015] 本发明还提供了一种文件加密系统,其特征在于,包括以下单元:密钥生成单元,其生成对应所述保护等级的加密密钥;文件加密单元,其根据所述加密密钥对所述待加密文件进行加密得到已加密文件;密钥加密单元,其根据所述用户口令对所述加密密钥进行加密;写入单元,其将加密后的加密密钥写入所述已加密文件的指定位置。\n[0016] 进一步,本系统还包括:所述密钥生成单元选择待加密文件的保护等级,根据所述保护等级不同,对应的所述加密密钥的长度不同\n[0017] 进一步,本系统还包括:异或运算单元,其生成变换矩阵,将所述待加密文件与该变换矩阵进行异或运算。变换矩阵加密单元,其根据所述用户口令对所述变换矩阵进行加密;所述写入单元被配置为用于将加密后的变化矩阵与加密后的加密密钥一并写入已加密文件的指定位置。\n[0018] 进一步,本系统还包括:使用摘要消息算法MD5处理所述用户口令得到所述用户口令的摘要信息,在所述密钥加密单元使用所述摘要信息来加密所述加密密钥,在所述变换矩阵加密单元中使用所述摘要信息来加密所述变换矩阵。\n[0019] 与现有技术相比,本发明具有以下优点:\n[0020] 本发明文件加密方法和文件加密系统,把用户口令用MD5获得摘要后加密文件加密密钥,并把加密后的密钥存入源文件的指定位置。这样用户需要读取密钥时可以直接从文件的指定位置读出固定位数,不仅可以省去用户读取文件时需要查询密钥的时间,而且很好的保证了加密密钥的安全,即如果用户的口令不丢失,那么窃取文件加密密钥是十分困难的。\n[0021] 进一步,用户可以根据自己对文件安全性的定义选择不同的保护等级,对于低安全等级的文件可以使用低等级的保护,这样有利于得到很快的加密速度,对于高安全等级的文件可以选择高等级的保护,虽然说在时间上会相对慢一些,但是对于文件的重要性来说时间上的牺牲是可以接受的。文件分级保护的方法避免了对所有文件按统一保护方式处理的情况,对一些安全性不高的文件就采取低等级的保护,使用户不会因为需要保护一个重要性一般的文件而花费和保护重要性较高文件一样的时间,也不会使安全性较高的文件得不到高安全等级的保护,从而在保证安全等级的同时,提高了运行效率。\n[0022] 进一步,本发明还提供了一种可应用于BLOWFISH算法中的文件加密方法,即在对数据加密前先将数据进行一个异或变换,然后将这个参与变换的矩阵与文件加密密钥一起加密后存入文件的指定位置,在这种方法下,即使攻击者盗取了全部加密子密钥,在攻击者没有获得变换矩阵的情况下,仍然无法获取用户文件的内容。这种方法能够有效地改进BLOWFISH的安全性。\n[0023] 进一步,通过以系统时间和随机值作为种子来生成随机数,用于与待加密文件进行异或运算,可以保证在快速运算时生成的随机数均不相同,进一步增强了加密方法的安全性。\n[0024] 本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。\n附图说明\n[0025] 附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:\n[0026] 图1是根据本发明实施例一的文件加密方法的流程图;\n[0027] 图2是根据本发明实施例二的文件加密方法的流程图;\n[0028] 图3是根据本发明实施例三的文件加密系统的结构图;\n[0029] 图4是根据本发明实施例四的文件加密系统的结构图。\n具体实施方式\n[0030] 以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。\n[0031] 另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。\n[0032] 实施例一\n[0033] 图1是根据本发明实施例一的文件加密方法的流程图,下面结合图1详细说明该方法的各步骤:\n[0034] 步骤S110(以下省略“步骤”二字),生成对应保护等级的加密密钥。\n[0035] 在本步骤中,首先选择所需加密的文件(称为待加密文件),然后用户根据所选择文件的重要程度,对其加密的保护等级进行选择。\n[0036] 优选的,在提示用户选择文件保护等级的时候,本步骤可以根据用户实际所需的保护等级,选择待加密文件的保护等级,生成不同长度的文件加密密钥,由于加密系统的安全性很大一部分是由密钥长度决定的,但是长密钥必然导致在加密过程中文件加密缓慢的结果。所以本步骤给用户提供一个定性的可供选择保护等级的保护接口,用户可以根据自己对文件的要求来选择保护的等级。\n[0037] S120,根据加密密钥对待加密文件进行加密得到已加密文件。\n[0038] 在本步骤中,通过加密密钥对待加密文件通过预先设定的加密算法进行加密,得到已加密文件。\n[0039] S130,根据用户口令对加密密钥进行加密。\n[0040] 本步骤的目的是为了增强加密密钥的安全性,使其不易被窃取。通过用户口令对加密密钥进行加密,能够保证在用户口令不丢失或泄漏的情况下,加密密钥是较为安全的。\n[0041] 优选的,使用MD5散列函数处理用户口令,得到用户口令的摘要信息。该摘要信息为128位的摘要信息,使用这128位摘要信息作为新的密钥加密密钥进行加密。\n[0042] S140,将加密后的加密密钥写入已加密文件的指定位置。\n[0043] 将在S130中得到的加密后的密钥写入文件的指定位置,该指定位置是预先设定的。由于写入的经过加密的加密密钥的位数一定,这样就可以保证需要读取文件的加密密钥时,根据预先设定的指定位置和加密密钥的位数正确定位经过加密的加密密钥的位置,从而得出加密密钥。优选的,该指定位置为已加密文件的末尾或距离末尾指定位数的位置。\n[0044] 实施例二\n[0045] 图2是根据本发明实施例二的文件加密方法的流程图,实施例二是在实施例一的基础上,进一步改进的加密方法,下面结合图2详细说明该方法的各步骤:\n[0046] S210,生成对应保护等级的加密密钥。\n[0047] 此步骤与实施例一S110相同。在此不作详述。\n[0048] S215,生成变换矩阵,将待加密文件与该变换矩阵进行异或运算。\n[0049] 在对待加密文件进行加密前,先将其与一个变换矩阵进行异或运算,能够在加密密钥泄漏的情况下,仍能够保证文件的安全。优选的,该变换矩阵可以为由系统生成的随机数组成的矩阵,该矩阵是以系统时间加上一个随机值作为种子来生成的,可以保证在快速运算时生成的种子均不相同。优选的,该随机数为64位随机数,与从待加密文件中依次读出的64位数据进行异或运算。\n[0050] S220,根据加密密钥对经过异或运算的待加密文件进行加密得到已加密文件。\n[0051] 此步骤与实施例一S120相同。在此不作详述。\n[0052] S230,根据用户口令对变换矩阵和加密密钥进行加密。\n[0053] 本步骤根据用户口令对变换矩阵进行加密与实施例一中步骤S130对加密密钥进行加密相同,优选的,使用MD5散列函数处理用户口令,得到用户口令的摘要信息,通过该摘要信息(128位)对变换矩阵和加密密钥进行加密。\n[0054] S240,将加密后的变化矩阵与加密后的加密密钥一起写入已加密文件的指定位置。\n[0055] 本步骤与实施例一步骤S140类似,该指定位置是预先设定的。优选的,该指定位置为已加密文件的末尾或距离末尾指定位数的位置。\n[0056] 本实施例的方法可以用于BLOWFISH算法中,用于改进其安全性。\n[0057] 实施例三\n[0058] 图3是根据本发明实施例三的文件加密系统的结构框图,下面结合图3详细说明该文件加密系统的组成。\n[0059] 该文件加密系统与实施例一的文件加密方法相对应,包括以下单元:\n[0060] 密钥生成单元,其生成对应保护等级的加密密钥。\n[0061] 在本单元中,首先选择所需加密的文件(称为待加密文件),然后用户根据所选择文件的重要程度,对其加密的保护等级进行选择。\n[0062] 优选的,在提示用户选择文件保护等级的时候,本单元可以根据用户实际所需的保护等级,选择待加密文件的保护等级,生成不同长度的文件加密密钥,由于加密系统的安全性很大一部分是由密钥长度决定的,但是长密钥必然导致在加密过程中文件加密缓慢的结果。所以本单元给用户提供一个定性的可供选择保护等级的保护接口,用户可以根据自己对文件的要求来选择保护的等级。\n[0063] 文件加密单元,其根据该加密密钥对该待加密文件进行加密得到已加密文件。\n[0064] 在本单元中,通过加密密钥对待加密文件通过预先设定的加密算法进行加密,得到已加密文件。\n[0065] 密钥加密单元,其根据用户口令对加密密钥进行加密。\n[0066] 本单元的作用是为了增强加密密钥的安全性,使其不易被窃取。通过用户口令对加密密钥进行加密,能够保证在用户口令不丢失或泄漏的情况下,加密密钥是较为安全的。\n[0067] 优选的,使用MD5散列函数处理用户口令,得到用户口令的摘要信息。该摘要信息为128位的摘要信息,使用这128位摘要信息作为新的密钥对加密密钥进行加密。\n[0068] 写入单元,其将加密后的加密密钥写入已加密文件的指定位置。\n[0069] 将在密钥加密单元中得到的加密后的密钥写入文件的指定位置,该指定位置是预先设定的。由于写入的经过加密的加密密钥的位数一定,这样就可以保证需要读取文件的加密密钥时,根据预先设定的指定位置和加密密钥的位数正确定位经过加密的加密密钥的位置,从而得出加密密钥。优选的,该指定位置为已加密文件的末尾或距离末尾指定位数的位置。\n[0070] 实施例四\n[0071] 图4是根据本发明实施例四的文件加密方法的流程图,实施例四是在实施例三的基础上,进一步改进的加密系统,与实施例三的文件加密方法相对应,下面结合图2详细说明该方法的各单元。\n[0072] 该文件机密系统包括以下单元:\n[0073] 密钥生成单元,其生成对应保护等级的加密密钥。\n[0074] 此单元与实施例二相同。在此不作详述。\n[0075] 异或运算单元,其生成变换矩阵,将待加密文件与该变换矩阵进行异或运算。\n[0076] 在对待加密文件进行加密前,先将其与一个变换矩阵进行异或运算,能够在加密密钥泄漏的情况下,仍能够保证文件的安全。优选的,该变换矩阵可以为由系统生成的随机数组成的矩阵,该随机数是以系统时间加上一个随机值作为种子来生成的,可以保证在快速运算时生成的种子均不相同。优选的,该矩阵由为64位随机数组成的矩阵,与从待加密文件中依次读出的64位数据进行异或运算。\n[0077] 文件加密单元,其根据加密密钥对经过异或运算的待加密文件进行加密得到已加密文件。\n[0078] 此单元与实施例三相同。在此不作详述。\n[0079] 变换矩阵加密单元,其根据用户口令对变换矩阵和加密密钥进行加密。\n[0080] 本单元根据用户口令对变换矩阵进行加密与实施例一中单元S130对加密密钥进行加密相同,优选的,使用MD5散列函数处理用户口令,得到用户口令的摘要信息,通过该摘要信息(128位)对变换矩阵和加密密钥进行加密。\n[0081] 写入单元,其将加密后的变化矩阵与加密后的加密密钥一起写入已加密文件的指定位置。\n[0082] 本单元与实施例三的写入单元相类似,该指定位置是预先设定的。优选的,该指定位置为已加密文件的末尾或距离末尾指定位数的位置。\n[0083] 优选的,与加密后的变换矩阵一起写入指定位置的是通过用户口令进行加密后的加密密钥(通过密钥加密单元实现,未在图4中示出),其加密方式与变换矩阵相同。\n[0084] 本发明的文件加密方法和文件加密系统具有较高的效率。使在32bit微处理器,可以达到每18个时钟周期加密1Byte数据的速度,时间约是DES及AES的十分之一,很大程度上提高了加密的效率。\n[0085] 本发明提供的文件加密方法和文件加密系统可以应用于计算机装置和移动智能终端中,能够根据用户选择安全等级来配置密钥,在保证安全性的同时,提高了加密效率。\n通过用户口令对文件的加密密钥进行加密,进一步提高文件加密的可靠性和安全性。通过在加密前对文件进行异或运算,为文件提供了进一步的安全保障,避免了由于密钥泄漏而带来的损失。\n[0086] 本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。\n[0087] 虽然本发明所揭露的实施方式如上,但所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上及细节上作任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |