技术领域
[0001] 本
发明涉及加密算法领域,特别涉及一种基于3DES算法的数据加密方法和装置。
背景技术
[0002] 在金融支付领域,除了使用传统的口令进行金融业务交易之外,
生物识别越来越多的被应用于支付业务中,如指纹识别。传统的口令存在容易被窃取的隐患,此外输入口令较为费时,用户体验不佳。而指纹识别具有唯一性,还具有更安全和更加便利的优点。
[0003] 使用指纹识别进行支付,首先需要将指纹
数据采集到后台,通常需要采集(并加密)多张未经过压缩的指纹图像数据到后台,为了保证指纹图像数据的安全,需要由终端对指纹图像数据进行加密,将加密数据送到后台,加密密钥由后台和终端协商得出;加密算法通常使用的是3DES算法,对于大小约为50万字节的数据进行加密,如果使用标准的3DES算法进行加密,1024字节计算3DES,大约需要20ms,总的加密时间大约需要10s,这使得用户体验极差。
发明内容
[0004] 为此,需要提供一种新的以3DES算法进行快速加密的方案。
[0005] 为实现上述目的,
发明人提供了一种基于3DES算法的数据加密方法,包括如下步骤:
[0006] 对密钥做每个字节按位展开运算或变换运算,并保存展开运算结果或变换运算结果,当再度需要使用展开运算结果或变换运算结果时,从已保存的展开运算结果或变换运算结果中获取。
[0007] 进一步地,所述的基于3DES算法的数据加密方法中,需要对固定数据做矩阵转换运算或移位运算时,从预设的矩阵转换运算表或移位运算表中获取运算结果。
[0008] 进一步地,所述的基于3DES算法的数据加密方法中,所述的预设的矩阵转换运算表或移位运算表由一在先步骤获得,所述在先步骤具体为:对所有可能出现的固定数据进行矩阵转换运算或移位运算,并获得矩阵转换运算表或移位运算表。
[0009] 进一步地,所述的基于3DES算法的数据加密方法中,还包括步骤:进行3DES运算并保存当前输入密钥和输入数据的所有中间结果;
[0010] 再度进行3DES运算时,判断密钥值或输入数据值是否与上次相同,如是则直接使用已保存的中间结果,否则进行运算。
[0011] 进一步地,所述的基于3DES算法的数据加密方法中,进行若干次3DES运算并保存输入密钥和输入数据的所有中间结果;
[0012] 再度进行3DES运算时,判断密钥值或输入数据值是否与已保存的若干次3DES运算相同,如是则直接使用已保存的中间结果,否则进行运算。
[0013] 发明人同时还披露了一种基于3DES算法的数据加密装置,包括展开单元、变换单元、存储单元和调用单元;
[0014] 所述展开单元用于对密钥做每个字节按位展开运算;所述变换单元用于对密钥做变换运算,所述存储单元用于保存展开运算结果或变换运算结果;当再度需要使用展开运算结果或变换运算结果时,所述调用单元用于从存储单元中保存的展开运算结果或变换运算结果中获取。
[0015] 进一步地,所述的基于3DES算法的数据加密装置中,需要对固定数据做矩阵转换运算或移位运算时,所述调用单元从保存于存储单元中的预设的矩阵转换运算表或移位运算表中获取运算结果。
[0016] 进一步地,所述的基于3DES算法的数据加密装置中,还包括矩阵转换单元和移位单元,用于对所有可能出现的固定数据进行矩阵转换运算或移位运算,获得矩阵转换运算表或移位运算表并保存于存储单元。
[0017] 进一步地,所述的基于3DES算法的数据加密装置中,还包括判断单元;
[0018] 进行3DES运算时存储单元保存当前输入密钥和输入数据的所有中间结果;
[0019] 再度进行3DES运算时,判断单元判断密钥值或输入数据值是否与上次相同,如是则调用单元从存储单元中调用已保存的中间结果,否则进行运算。
[0020] 进一步地,所述的基于3DES算法的数据加密装置中,还包括判断单元;
[0021] 进行若干次3DES运算时存储单元保存输入密钥和输入数据的所有中间结果;
[0022] 再度进行3DES运算时,判断单元判断密钥值或输入数据值是否与已保存的若干次3DES运算相同,如是调用单元从存储单元中调用已保存的中间结果,否则进行运算。
[0023] 区别于
现有技术,上述技术方案能极大的缩短
大数据进行3DES加密计算时间;不需要对图像数据做任何预处理,适合普通数据的大数据量进行加密优化。
附图说明
[0024] 图1为本发明一实施方式所述的基于3DES算法的数据加密方法的
流程图;
[0025] 图2为本发明一实施方式所述的基于3DES算法的数据加密装置的结构示意图。
[0026] 附图标记说明:
[0027] 1-展开单元
[0028] 2-变换单元
[0029] 3-存储单元
[0030] 4-调用单元
[0031] 5-矩阵转换单元
[0032] 6-移位单元
[0033] 7-判断单元
具体实施方式
[0034] 为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体
实施例并配合附图详予说明。
[0035] 请参阅图1,为本发明一实施方式所述的基于3DES算法的数据加密方法的流程图;所述方法包括如下步骤:
[0036] 对密钥做每个字节按位展开运算或变换运算,并保存展开运算结果或变换运算结果,当再度需要使用展开运算结果或变换运算结果时,从已保存的展开运算结果或变换运算结果中获取。
[0037] 进一步地,本实施方式所述的基于3DES算法的数据加密方法中,还包括步骤:
[0038] 对所有可能出现的固定数据进行矩阵转换运算或移位运算,并获得矩阵转换运算表或移位运算表;
[0039] 需要对固定数据做矩阵转换运算或移位运算时,从预设的矩阵转换运算表或移位运算表中获取运算结果。当然,在其他实施方式中,也可以用其他途径获取可能的固定数据的矩阵转换运算表或移位运算表。
[0040] 进一步地,本实施方式所述的基于3DES算法的数据加密方法中,还包括步骤:进行3DES运算并保存当前输入密钥和输入数据的所有中间结果;再度进行3DES运算时,判断密钥值或输入数据值是否与上次相同,如是则直接使用已保存的中间结果,否则进行运算。在另外一些实施方式中,也可以进行若干次3DES运算并保存输入密钥和输入数据的所有中间结果;并且在再度进行3DES运算时,判断密钥值或输入数据值是否与已保存的若干次3DES运算相同,如是则直接使用已保存的中间结果,否则进行运算。
[0041] 本实施方式的技术方案是通过发明人对3DES算法进行复杂度分析研究所得。3DES算法是指使用双长度(16字节)K=(KL||KR)将8字节明文数据进行3次DES加密/解密;3DES算法计算复杂度分析如下:
[0042] (1)将密钥每个字节按位展开运算;
[0043] (2)将64位密钥分散成16个48位子密钥运算;
[0044] (3)对密钥、待加密数据进行矩阵置换、多次移位运算;
[0045] (4)对代加密数据进行多次循环加密计算。
[0046] 由此,发明人提出了两点优化思路:
[0047] (1)涉及对固定值的反转、移位等步骤,使用查表得到运算结果;
[0048] (2)加密算法涉及重复运算的,通过保存中间计算结果,避免重复计算。
[0049] 请参阅下表展示的加密耗时对比:
[0050] 正常3DES加密 新算法加密
200000字节 3.9s 780ms
500000字节 9.8s 1.9s
[0051] 可见使用新的算法加密,可以极大降低加密时间,新的方案的加密耗时时间;随着数据量的增大,对应的耗时也随之增大;方案适用于普通的大数据量进行3DES加密,和数据本身没有关系,更具有通用性;此外方案性能优化,可能减少80%的计算复杂度。
[0052] 请参阅图2,为本发明一实施方式所述的基于3DES算法的数据加密装置的结构示意图;所述装置包括展开单元1、变换单元2、存储单元3和调用单元4;
[0053] 所述展开单元1用于对密钥做每个字节按位展开运算;所述变换单元2用于对密钥做变换运算,所述存储单元3用于保存展开运算结果或变换运算结果;当再度需要使用展开运算结果或变换运算结果时,所述调用单元4用于从存储单元中保存的展开运算结果或变换运算结果中获取。
[0054] 进一步地,所述的基于3DES算法的数据加密装置中,需要对固定数据做矩阵转换运算或移位运算时,所述调用单元4还用于从保存于存储单元3中的预设的矩阵转换运算表或移位运算表中获取运算结果。所述的存储单元3中的预设的矩阵转换运算表或移位运算表来自于矩阵转换单元5和移位单元6对所有可能出现的固定数据进行矩阵转换运算或移位运算所获得。
[0055] 进一步地,所述的基于3DES算法的数据加密装置中,还包括判断单元7;进行3DES运算时存储单元3保存当前输入密钥和输入数据的所有中间结果;再度进行3DES运算时,判断单元7判断密钥值或输入数据值是否与上次相同,如是则调用单元4从存储单元3中调用已保存的中间结果,否则进行运算。另外一些实施方式中,还可以进行若干次3DES运算并由存储单元3保存输入密钥和输入数据的所有中间结果;再度进行3DES运算时,判断单元7判断密钥值或输入数据值是否与已保存的若干次3DES运算相同,如是调用单元4从存储单元3中调用已保存的中间结果,否则进行运算。
[0056] 本实施方式的技术方案是通过发明人对3DES算法进行复杂度分析研究所得。3DES算法是指使用双长度(16字节)K=(KL||KR)将8字节明文数据进行3次DES加密/解密;3DES算法计算复杂度分析如下:
[0057] (1)将密钥每个字节按位展开运算;
[0058] (2)将64位密钥分散成16个48位子密钥运算;
[0059] (3)对密钥、待加密数据进行矩阵置换、多次移位运算;
[0060] (4)对代加密数据进行多次循环加密计算。
[0061] 由此,发明人提出了两点优化思路:
[0062] (1)涉及对固定值的反转、移位等步骤,使用查表得到运算结果;
[0063] (2)加密算法涉及重复运算的,通过保存中间计算结果,避免重复计算。
[0064] 请参阅表1展示的加密耗时对比:
[0065] 正常3DES加密 新算法加密
200000字节 3.9s 780ms
500000字节 9.8s 1.9s
[0066] 可见使用新的算法加密,可以极大降低加密时间,新的方案的加密耗时时间;随着数据量的增大,对应的耗时也随之增大;方案适用于普通的大数据量进行3DES加密,和数据本身没有关系,更具有通用性;此外方案性能优化,可能减少80%的计算复杂度。
[0067] 由此可见,区别于现有技术,本发明技术技术方案能极大的缩短大数据进行3DES加密计算时间;不需要对图像数据做任何预处理,适合普通数据的大数据量进行加密优化。
[0068] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
[0069] 本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或
计算机程序产品。这些实施例可采用完全
硬件实施例、完全
软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、
服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动
硬盘、存储卡、记忆棒、网络服务器存储、网络
云存储等。
[0070] 上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方
框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中
指定的功能的装置。
[0071] 这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读
存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0072] 这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0073] 尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和
修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的
专利保护范围,凡是利用本发明
说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。