CN107038383B - 一种数据处理的方法和设备 - Google Patents

一种数据处理的方法和设备 Download PDF

Info

Publication number
CN107038383B
CN107038383B CN201610078041.1A CN201610078041A CN107038383B CN 107038383 B CN107038383 B CN 107038383B CN 201610078041 A CN201610078041 A CN 201610078041A CN 107038383 B CN107038383 B CN 107038383B
Authority
CN
China
Prior art keywords
hash
key
data
length
moment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610078041.1A
Other languages
English (en)
Other versions
CN107038383A (zh
Inventor
欧锻灏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201610078041.1A priority Critical patent/CN107038383B/zh
Publication of CN107038383A publication Critical patent/CN107038383A/zh
Application granted granted Critical
Publication of CN107038383B publication Critical patent/CN107038383B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Abstract

本发明实施例中提供了一种数据处理的方法和设备,获取第一时刻进行加密所使用的对称密钥和第一时刻使用的哈希密钥,利用预设的对称加密算法和对称密钥对第一明文数据进行加密得到第一加密数据,利用预设的带密钥哈希算法和第一时刻使用的哈希密钥对在第一时刻获取的随机数进行加密得到第一哈希结果,对第一加密数据和第一哈希结果进行异或运算获得第一密文数据,对第一密文数据和第一时刻获取的随机数进行存储,即使在同一周期中对相同明文数据进行加密,由于随机数不同,最后的密文数据也不相同,攻击者不能简单通过匹配相同的密文数据来跟踪和获取同一周期内的敏感信息,有效防止密文数据泄露,提高加密数据的安全性。

Description

一种数据处理的方法和设备
技术领域
本发明涉及数据处理领域,特别涉及一种数据处理的方法和设备。
背景技术
在大数据场景,为了防止个人敏感数据(手机号码,地址,身份证号,护照号和银行帐号)等被非法访问,需要对个人敏感数据进行加密存储,攻击者可以根据用户行为分析得到用户号码对应的密文,然后通过匹配密文来跟踪特定用户的行为,如果时间足够长,攻击者还可以通过字典攻击、频率分析等密码分析方法将密钥完全破解出来。
为了防止攻击者通过行为分析或者密码分析方法获取敏感数据,加密敏感数据所采用的密钥必须定期进行更新,即按周期定期更新加密密钥,并保持以往周期的旧密文数据和旧密钥不变。
为了降低系统的性能消耗同时保护新数据,上述方法在密钥更新时只需要更新最新周期的密钥即可,无需解密和重新加密旧数据。但是,在同一个周期中,采用的密钥不变,即对同样的明文数据进行加密后得到的密文数据也是相同的,这时攻击者可以通过匹配相同的密文数据来跟踪和获取同一周期内的敏感信息,仍会有敏感信息数据发生泄露的风险。
发明内容
有鉴于此,本发明实施例提供了一种数据处理的方法和设备。
一方面,本发明实施例中提供加密方法,所述方法包括:
获取第一时刻进行加密所使用的密钥向量,所述密钥向量包括对称密钥和所述第一时刻使用的哈希密钥,利用预设的对称加密算法和所述对称密钥对第一明文数据进行加密得到第一加密数据,利用预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对在所述第一时刻获取的随机数进行加密得到第一哈希结果,对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据,对所述第一密文数据和所述第一时刻获取的随机数进行存储,即使在同一周期中对相同明文数据进行加密,由于随机数不同,最后的密文数据也不相同,攻击者不能简单通过匹配相同的密文数据来跟踪和获取同一周期内的敏感信息,有效防止密文数据泄露,提高加密数据的安全性。
在一种可能的设计中,对称密钥不同时刻保持不变,所述哈希密钥按照预设的周期进行更新;所述获取第一时刻进行加密所使用的密钥向量,具体包括:获取所述第一时刻所处的周期对应的哈希密钥,获取所述对称密钥。需要说明的是,对称密钥和周期更新的哈希密钥都是存储在安全空间中的,对外是保密的。对称密码保持不变,哈希密钥周期更新可以在保证不同周期的密钥向量不同,同时也避免了对安全空间造成过大的存储负担。
为了使得顺利进行异或运算,需要对两个异或运算的对象进行处理,使得两者长度相同,具体的作为可以是以所述第一加密数据的长度为准对所述第一哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度与所述第一加密数据的长度相同,在进行截断或补零操作后,对于对第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据具体包括:对所述第一加密数据和截断或补零后的第一哈希结果进行异或运算得到所述第一密文数据。
在一种可能的设计中,所述获取第一时刻进行加密所使用的密钥向量之后,所述方法还包括:
利用预设的哈希算法对所述第一时刻使用的哈希密钥进行加密得到第二哈希结果;
在所述对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据之前,所述方法还包括:
以所述第一加密数据的长度为准对所述第一哈希结果的长度和所述第二哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度和截断或补零后的第二哈希结果的长度与所述第一加密数据的长度相同;
所述对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据具体包括对所述第一加密数据、截断或补零后的第一哈希结果及截断或补零后的第二哈希结果进行异或运算得到所述第一密文数据,通过增加对哈希密钥的加密,然后再进行异或,可以有效防止在内存中出现敏感信息,提高数据的安全性。
一种可能的设计中,对应前面介绍到加密方法,本发明实施例中还提供了一种解密方法,具体地说,该解密方法包括:获取第一密文数据和第一时刻获取的随机数并确定第一时刻位于第一周期内,获取第一周期对应的哈希密钥和对称密钥,利用预设的带密钥哈希算法和第一周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到第一解密结果,以第一密文数据的长度为准对第一解密结果的长度进行截断或补零,以使得截断或补零后的第一解密结果的长度与第一密文数据的长度相同,对第一密文数据和截断或补零后的第一解密结果进行异或运算获得第一解密数据,利用预设的对称加密算法和对称密钥对所述第一解密数据进行解密,解密方法中,由于只需要一个对称解密操作、一个单向加密操作和一个异或运算,使得系统运算量减小,降低对系统性能的占用,同时节省解压时间。
一种可能的设计中,本发明实施例中涉及第二时刻的加密操作,具体的,所述方法还包括获取第二时刻进行加密所使用的密钥向量,第二时刻进行加密所使用的密钥向量包括对称密钥和第二时刻使用的哈希密钥,利用预设的对称加密算法和对称密钥对第二明文数据进行加密得到第二加密数据,利用预设的带密钥哈希算法和第二时刻使用的哈希密钥对在第二时刻获取的随机数进行加密得到第三哈希结果,以第二加密数据的长度为准对第三哈希结果的长度进行截断或补零,以使得截断或补零后的第三哈希结果的长度与第二加密数据的长度相同,对第二加密数据和第三哈希结果进行异或运算获得第二密文数据,对第二密文数据和第二时刻获取的随机数进行存储,在加密过程中采用了随机数,使得即便同一周期内的相同明文数据进行加密后得到密文数据也不相同,提高破译难度,保证数据的安全性。
一种可能的设计中,本发明实施例中还提供了一种归一化的方法,具体而言,归一化算法指的是将不同时刻的密文数据归一化到相同的密文形态。所述方法还包括:
获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻所处的周期对应的哈希密钥和第二时刻所处的周期对应的哈希密钥,利用所述预设的带密钥哈希算法和所述第一时刻所处的周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到所述第四哈希结果,利用所述预设的带密钥哈希算法和所述第二时刻所处的周期对应的哈希密钥对所述第二时刻获取的随机数进行加密得到所述第五哈希结果,以所述第一密文数据的长度为准对所述第四哈希结果及所述第五哈希结果进行截断或补零,以使得截断或补零后的第四哈希结果及第五哈希结果的长度与所述第一密文数据的长度相同,对所述第一密文数据和所述截断或补零后第四哈希结果进行异或运算,对所述第二密文数据和截断或补零后第五哈希结果进行异或运算,以完成所述第一密文数据由第一时刻向第二时刻进行归一化操作,在进行归一化操作时候,不需要对密文数据进行解密,避免明文数据出现在内存中,提高数据的安全性,另外,由于不需要对每个密文数据进行解密,使得归一化操作用时缩短,降低对系统性能的影响。
在一种可能的设计中,为了防止在进行归一化过程中加密数据被析出,本发明实施例中还提供了一种实施例,所述方法包括获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻所处的周期对应的哈希密钥和第二时刻所处的周期对应的哈希密钥,利用所述预设的带密钥哈希算法和所述第一时刻所处的周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到所述第七哈希结果,利用所述哈希算法对所述第一时刻所处的周期对应的哈希密钥进行哈希计算得到第八哈希结果,利用所述预设的带密钥哈希算法和所述第二时刻所处的周期对应的哈希密钥对所述第二时刻获取的随机数进行加密得到所述第九哈希结果,利用所述哈希算法对所述第二时刻所处的周期对应的哈希密钥进行哈希计算得到第十哈希结果,以所述第一密文数据的长度为准对所述第七哈希结果、所述第八哈希结果的长度、所述第九哈希结果和所述十哈希结果进行截断或补零,以使得截断或补零后的第七哈希结果的长度、截断或补零后的第八哈希结果的长度、截断或补零后的第九哈希结果的长度和截断或补零后的第十哈希结果的长度与所述第一密文数据的长度相同,依次对所述第一密文数据、所述第十哈希结果、所述第八哈希结果以及所述第七哈希结果进行异或运算,对所述第二密文数据和所述第九哈希结果进行异或运算,以完成所述第一密文数据由第一时刻向第二时刻进行归一化操作,再进行异或运算时候,按照顺序进行异或运算,避免加密数据被析出,提高数据的安全性。
第二方面,本发明实施例提供了一种数据处理的设备,该数据处理的设备具有实现上述第一方面中数据处理设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,数据处理的设备的结构中包括处理器和存储器,所述存储器用于存储支持数据处理的设备执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述数据处理设备还可以包括通信接口,用于数据处理设备与其他设备或通信网络通信。
第三方面,本发明实施例提供了一种计算机存储介质,用于储存为上述数据处理的设备所用的计算机软件指令,其包含用于执行上述方面为数据处理的设备所设计的程序。
相较于现有技术,本发明提供的方案在不同时刻对相同明文数据进行加密,由于随机数不同,最后的密文数据也不相同,攻击者不能简单通过匹配相同的密文数据来跟踪和获取敏感信息,有效防止密文数据泄露,提高加密数据的安全性。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1是本发明实施例中的数据处理的方法所应用的网络架构的结构示意图;
图2是本发明一实施例提供的计算机设备示意图;
图3-a是本发明一实施例提供的一种数据处理的方法中加密操作的流程示意图;
图3-b是本发明一实施例提供的一种数据处理的方法中解密操作的流程示意图;
图4-a是本发明一实施例提供的另一种数据处理的方法中加密操作的的流程示意图;
图4-b是本发明一实施例提供的另一种数据处理的方法中解密操作的流程示意图;
图5是本发明一实施例提供的另一种数据处理的方法中加密操作的流程示意图;
图6是本发明一实施例提供的一种数据处理的方法中归一化操作的流程示意图;
图7是本发明一实施例提供的另一种数据处理的方法中归一化操作的的流程示意图;
图8是本发明实施例中的数据处理的设备的一种结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本发明实施例所提出的方案可以应用于大数据场景中对密钥的更新,也可以适用于其他场景,本发明实施例中对加密方法的具体应用场景不做限定。所提出的方案可以在无需解密的情况快速更新密钥和识别跨周期相同的明文目标。
在大数据的应用场景,希望在无需解密以前密文的情况下快速更新密钥以防止密钥被分析破解,同时希望可以快速归一化跨周期的密文数据以识别跨周期相同的明文目标。
结合图1所示,本发明的方法可以应用于以下系统架构中,系统架构包括数据处理的设备100以及密钥管理中心110,密钥管理中心110用于负责生成、存储、删除、查询和修改用于加密数据的密钥;数据处理的设备100根据业务需求向密钥管理中心请求服务,数据处理的设备100用于对敏感数据进行加密、解密、密钥更新和/或归一化等操作,数据处理的设备100具体功能下面进行简单介绍:
加密,用于负责对敏感数据进行加密,加密方法是基于所采用的对称加密算法和带密钥哈希算法。
解密,用于负责恢复敏感明文以供授权业务使用,解密方法是加密方法的逆过程。
密钥更新,用于负责从密钥管理中心获取的对称密钥K和哈希密钥Ki生成加解密的密钥向量<K,Ki>,不同周期的对称密钥K是相同的,密钥更新模块只要第一次更新时获取对称密钥K即可,后续更新过程中只需要获取哈希密钥Ki,因为每一个周期哈希密钥Ki是随机生成的,因此不会相同。
归一化:采用每隔周期T更新密钥,在更新密钥时,从密钥管理中心生成最新周期Tn的密钥Kn,并跟以往周期T0,T1,…,Tn-1采用的旧密钥K0,K1,…,Kn-1一起存储。在后续加密新周期Tn的数据时,采用新密钥Kn对周期Tn中的敏感数据进行加密。由于不同周期所采用的密钥是不相同的,所以跨周期相同明文的密文形态也是不尽相同的。为了能够识别不同周期内相同的明文目标,将相同的明文目标归一化到相同的密文形态,方便统计使用。
需要说明的是,上述的密钥管理中心可以是存在网络中的独立于数据处理的设备100的一个部件,也可以是作为数据处理的设备100的一部分的功能部件,本发明对此不作限定。如图2所示,图1中的数据处理的设备可以以图2中的计算机设备(或系统)的方式来实现。
图2所示为本发明实施例提供的计算机设备示意图。计算机设备200包括至少一个处理器201,通信总线202,存储器203以及至少一个通信接口204。
处理器201可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线202可包括一通路,在上述组件之间传送信息。所述通信接口204,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器203用于存储执行本发明方案的程序代码,并由处理器201来控制执行。所述处理器201用于执行所述存储器203中存储的程序代码。
在具体实现中,作为一种实施例,处理器201可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备200可以包括多个处理器,例如图2中的处理器201和处理器208。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备200还可以包括输出设备205和输入设备206。输出设备205和处理器201通信,可以以多种方式来显示信息。例如,输出设备205可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备206和处理器201通信,可以以多种方式接受用户的输入。例如,输入设备206可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的计算机设备200可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,计算机设备200可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图5中类似结构的设备。本发明实施例不限定计算机设备200的类型。
如图1中的数据处理的设备可以为图2所示的设备,数据处理的设备的存储器中存储了一个或多个软件模块(例如:交互模块、处理模块等)。数据处理的设备可以通过处理器以及存储器中的程序代码来实现软件模块,实现对数据的加密、解密以及归一化等数据处理功能。
结合图3-a所示,是本发明一实施例提供的一种数据处理的方法中加密操作的流程示意图,所述方法包括:
S301、获取第一时刻进行加密所使用的密钥向量,所述密钥向量包括对称密钥和所述第一时刻使用的哈希密钥。
获取第一时刻进行加密所使用的密钥向量,具体包括获取第一时刻所处的周期对应的哈希密钥以及获取对称密钥,本发明中采用周期更新密钥的方式对明文数据进行加密,其中,对称密钥在不同时刻保持不变,哈希密钥按照预设的周期进行更新,在不同的周期中对应的密钥向量不相同。
对于提到的周期,可以根据需要预先设置密钥的更新周期,更新周期可以根据需要进行设置,例如在第一周期的哈希密钥K1,在第二周期中哈希密钥K2,对称密钥K保持不变,这样在第一周期中任何时刻的密钥向量都可以表示为(K,K1),而在第二周期中任何时刻的密钥向量都可以表示为(K,K2)。哈希密钥由密钥管理中心生成,密钥管理中心在每个周期生成的哈希密钥会不同,在第N时周期生成哈希密钥为Kn,而对称密钥始终为K,则在第N周期的密钥向量为(K,Kn),将生成的密钥向量存储在密钥管理中心,可以理解的是,对于密钥向量的配置可以在加密过程之前完成,在进行加密操作直接利用密钥向量即可,对此不做限定。
需要说明的是,在密钥更新的过程中,保持旧的密钥和旧密文数据不变,将新密钥和旧密钥一起保存起来,并且无需对旧密文数据进行解密和重新加密,所以无需耗费系统性能去进行输入输出、加密和解密操作,不影响系统性能,由于不同周期使用的密钥向量不同,也可以避免敏感数据的大面积泄露。
S302、利用预设的对称加密算法和所述对称密钥对第一明文数据进行加密得到第一加密数据。
对称加密算法中采用的对称密钥在不同周期中始终保持不变,第一明文数据为用户不能外泄的机密资料,也是进行加密要保护的对象,对于对称加密算法(例如,DES算法,3DES算法,TDEA算法)本领域普通技术人员应当了解,此处不进行赘述。
S303、利用预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对在所述第一时刻获取的随机数进行加密得到第一哈希结果。
对称密钥用来对明文数据进行加密,哈希密钥用来对随机数进行加密,需要说明的是,随机数即为带密钥哈希算法中的盐值,由随机数生成器生成,使得每次进行加密操作时候所采用的随机数不相同。
S304、对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据。
对于异或运算的方法本领域普通技术人员应当了解,具体不做介绍,需要说明的是,在进行异或运算之前需要使得第一加密数据的长度和第一哈希结果的长度相同,对于长度的处理方式可以采用循环异或或截断补零等操作以使得两个异或对象的长度相同,需要指出的是在进行异或运算之前,以第一加密数据的长度为准,对第一哈希结果进行处理,当采用截断或补零的方式对第一哈希结果进行长度调整时,可以为,以第一加密数据的长度为准,对第一哈希结果的长度进行截断或补零,即当第一哈希结果的长度大于第一加密数据的长度时将第一哈希结果超出的部分进行截断,若小于,则对第一哈希结果的长度进行补零,保证第一哈希结果的长度和第一加密数据的长度相同,使得截断或补零后的第一哈希结果的长度与所述第一加密数据的长度相同,再进行异或对第一加密数据和截断或补零后的第一哈希结果进行异或运算得到第一密文数据,当然,本领域普通技术人员也可以选择其他长度处理方式,此处不做限定。
在同一周期中两个相同明文数据虽然加密使用相同的密钥向量,但是由于随机数不相同,加密后得到的密文数据的形式也不相同,使得攻击者不能简单通过匹配相同的密文数据来跟踪和获取同一周期内的敏感信息,这样可以进一步地防止密文数据泄露,提高加密数据的安全性。
S305、对第一密文数据和第一时刻获取的随机数进行存储。
对于得到的第一密文数据即是加密后的密文数据,为了在解密时顺利进行,第一密文数据和对应的第一时刻获取的随机数一同进行保存。
通过引入随机数,使得即使相同周期内的相同明文,经过加密后的密文数据也不尽相同,有利于抵抗密文分析。
本发明针对所述第一密文数据和第一时刻获取的随机数进行存储还提供了几种实现方式,分别为:
1、将第一时刻获取的随机数和第一密文数据分开进行存储,具体地说,为第一时刻获取的随机数和第一密文数据分别创建一个独立的字段用于存储,然后在归一化或解密的时候再分开读取;或
2、将第一时刻获取的随机数和所述第一密文数据合并连接后再存储,具体地说,第一密文数据的长度是固定的,则可以将第一时刻获取的随机数直接连接在第一密文数据的末端,一起存储在密文字段。例如,用户号码是的长度通常固定的,而且其加密后的密文也是固定的,可以将生成的第一时刻获取的随机数连接在号码密文串之后再一起存储到密文字段中,在归一化或解密时,可以根据用户号码密文串的长度快速截取密文第一密文数据和第一时刻获取的随机数;或
3、将第一时刻获取的随机数和第一密文数据分别采用Base64进行编码分别得到第一编码结果和第二编码结果,将所述第一编码结果和所述第二编码结果利用间隔符连接符连接后存储,具体地说,如果直接将第一时刻获取的随机数附在密文第一密文数据后面,由于第一密文数据的长度是可变的,分割的时候无法判定分割点,为了能够无歧义地分割出第一时刻获取的随机数和第一密文数据,需要先将第一密文数据和第一时刻获取的随机数进行Base64编码,然后再将编码结果用一个非Base64编码字符进行连接,编码字符可以为‘!’,得到“Base64(第一密文数据)!Base64(第一时刻获取的随机数)”的形式,在归一化或解密的时,可以根据非Base64编码字符快速分割出第一密文数据和第一时刻获取的随机数的Base64编码字符串,通过Base64解码得到原始的第一密文数据和第一时刻获取的随机数。
由于本发明的加密方法,在进行加密过程中只需要需要一个对称加密操作、一个或两个单向加密操作和一个异或运算操作,所以总的加密时间可以表示为TEnc=TEncAlg+TKeyHash+Thash(+Thash)+TXOR,其中TEncAlg是对称加密算法的运行时间,TKeyHash是带密钥哈希算法的运行时间,Thash是哈希计算的时间,TXOR是异或运算的运行时间,不需要对之前的密文数据进行解密和重新加密,减少加密时间,从另一方面也能降低对系统性能的影响。
本发明实施例的数据处理的方法中,通过引入随机生成的随机数对明文数据进行加密,每一时刻进行加密操作时的随机数都不相同,使得每一时刻加密得到的密文数据也不相同,使得即便是位于同一周期内的相同明文数据在进行加密后也会得到不同的密文数据,这样使得攻击者不能简单通过匹配相同的密文数据来跟踪和获取同一周期内的敏感信息,这样可以进一步地防止密文数据泄露,提高加密数据的安全性,另外,由于在进行密钥更新时不需要对之前的密文数据进行解密和重新加密,可以节省大量的运算时间,提高系统性能。
结合图3-b所示,在图3-a所述数据处理方法中针对加密操作后得到的密文数据,下面提出对应的解密操作方法,解密方法是加密过程的逆过程,本发明实施例中提供了与图3-a所述实施例介绍的数据处理方法相对应的解密操作,该解密操作方法包括:
S306、获取所述第一密文数据和所述第一时刻获取的随机数并确定所述第一时刻位于第一周期内。
需要说明的是,图3-a所述实施例步骤305对密文数据和随机数进行存储时,会记录随机数生成的时刻,也就是说数据处理的设备存储的密文数据和随机数都具有时间信息。
在一种可能的设计中,数据处理的设备获取第一时刻对应的第一密文数据和第一时刻获取的随机数。根据第一时刻这个具体的时间信息可以得到第一时刻所在的周期,即第一周期,确定所在周期的方法本发明不做限定,例如可以是通过查表的方法:数据处理的设备可以维护一个数据表,数据表中记录了每一个周期以及对应的开始时刻和结束时刻。当获取一个时间信息时,只需查询该数据表即可确定该时间信息所在的周期。
S307、获取所述第一周期对应的哈希密钥和所述对称密钥。
由于每个周期采用的密钥向量已经预先配置存储好,根据加密时对应的周期可以获得该周期使用的密钥向量,第一周期内的密钥向量包括对称密钥和第一哈希密钥。
S308、利用所述预设的带密钥哈希算法和所述第一周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到第一解密结果。
S309、以所述第一密文数据的长度为准对所述第一解密结果的长度进行截断或补零,以使得截断或补零后的第一解密结果的长度与所述第一密文数据的长度相同。
在第一密文数据和第一解密结果进行异或运算之前需要将两者的长度进行处理,具体进行长度处理时是以第一密文数据的长度,具体可以参见前面实施例步骤S304,此处不进行赘述。
S310、对所述第一密文数据和所述截断或补零后的第一解密结果进行异或运算获得第一解密数据。
S311、利用所述预设的对称加密算法和所述对称密钥对所述第一解密数据进行解密。
因为每个周期中对称密钥保持不变,通过异或运算得到的第一解密结果可以利用对称密钥进行解密得到明文数据。
本发明实施例中提供的解密方法,是前面实施例中加密过程的逆过程,通过利用密文数据和第一时刻加密所使用的随机数对密文数据进行解密,解密花费时间短,不影响系统性能,保证解密的安全性。
结合图-a所示,是本发明一实施例提供的另一种数据处理的方法中加密操作的的流程示意图,所述方法包括:
S401、获取第一时刻进行加密所使用的密钥向量,所述密钥向量包括对称密钥和第一时刻生成的第一时刻使用的哈希密钥。
步骤401与上一实施例中步骤S301相类似,此处不作赘述。
S402、利用所述对称密钥对明文数据进行加密得到第一加密数据。
步骤402与上一实施例中步骤S302相类似,此处不作赘述。
S403、利用带密钥哈希算法和所述第一时刻使用的哈希密钥对在第一时刻获取第一时刻获取的随机数进行单向加密得到第一哈希结果。
步骤403与上一实施例中步骤S303相类似,此处不作赘述。
S404、利用预设的哈希算法对所述第一时刻使用的哈希密钥进行加密得到第二哈希结果。
S405、对所述第一加密数据、截断或补零后的第一哈希结果及截断或补零后的第二哈希结果进行异或运算得到所述第一密文数据。
与上一实施例中相类似,在进行异或运算时候需要对三个异或对象进行长度处理,具体的处理过程可以是以第一加密数据的长度为准对所述第一哈希结果的长度和所述第二哈希结果的长度进行截断或补零,使得截断或补零后的第一哈希结果的长度和截断或补零后的第二哈希结果的长度与所述第一加密数据的长度相同。
与图3-a所述实施例不同的是,本发明实施例第一密文数据由所述第一加密数据、截断或补零后的第一哈希结果及截断或补零后的第二哈希结果进行异或运算获得。由于在内存中出现敏感数据(如第一加密数据),将会存在被非法用户窃取的可能。非法用户窃取敏感数据后,通过统计分析等技术手段,就可能分析出对称密钥,从而影响用户数据的安全性。本发明实施例中通过额外抑或一个第二哈希结果,这样可以有效的防止在后续的归一化操作时,在内存中出现敏感数据,提高数据的安全性。
需要说明的是,本实施例中对于这三个参数异或运算的顺序不做限定,但是异或的顺序对后续的归一化操作的顺序有制约,相关描述在下面归一化操作部分描述。为便于说明,本发明实施例中,假设所述第一密文数据依次由所述第一加密数据、截断或补零后的第一哈希结果及截断或补零后的第二哈希结果进行异或运算得到。
S406、对所述第一密文数据和第一时刻获取的随机数进行存储。
步骤406与上一实施例中步骤S305相类似,此处不作赘述。
在本实施例中,通过增加对哈希密钥进行单向哈希运算进行加密得到第二哈希结果,对第一加密数据、第一哈希结果以及第二哈希结果进行异或运算,在保证不同时刻对加密后得到的密文数据不相同的同时,还可以避免后续在归一化过程中敏感数据在内存中被解析出,提高了数据的安全性。
结合图4-b所示,本发明实施例中提供了与图4-a所述实施例介绍的数据处理方法相对应的解密操作,该解密操作方法包括:
S407、获取所述第一密文数据和所述第一时刻获取的随机数并确定所述第一时刻位于第一周期内。
S408、获取所述第一周期对应的哈希密钥和所述对称密钥。
S409、利用所述预设的带密钥哈希算法和所述第一周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到第一解密结果。
S410、利用所述预设的哈希算法对所述第一周期对应的哈希密钥进行加密得到第二解密结果。
S411、对所述第一密文数据、截断或补零后的第一解密结果及截断或补零后的第二解密结果进行异或运算得到所述第一解密数据。
S6412、利用所述预设的对称加密算法和所述对称密钥对所述第一解密数据进行解密。
需要说明的是,本发明实施例与图3-b所述实施例相同的步骤参阅图3-b中相关的描述,这里不再赘述。
由于归一化操作是针对两个时刻的密文数据进行处理,在介绍归一化操作之前,结合图5所示,本发明实施例还涉及第二时刻的加密操作,所述方法包括:
S501、获取第二时刻进行加密所使用的密钥向量,所述第二时刻进行加密所使用的密钥向量包括对称密钥和第二时刻使用的哈希密钥。
S502、利用所述预设的对称加密算法和所述对称密钥对第二明文数据进行加密得到第二加密数据。
S503、利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对在所述第二时刻获取的随机数进行加密得到第三哈希结果。
S504、以所述第二加密数据的长度为准对所述第三哈希结果的长度进行截断或补零,以使得截断或补零后的第三哈希结果的长度与所述第二加密数据的长度相同。
S505、对所述第二加密数据和所述第三哈希结果进行异或运算获得第二密文数据。
S506、对所述第二密文数据和所述第二时刻获取的随机数进行存储。
需要说明的是,在第一时刻和第二时刻对明文数据的加密过程相类似,相关步骤分别参阅图3-a所述实施例相关步骤的描述,此处不进行赘述,第二时刻的密钥向量可能与第一时刻的密钥向量不相同,如果第一时刻和第二时刻位于同一周期内,则第一时刻和第二时刻所使用的密钥向量相同,但采用的随机数不相同,所以加密得到的密文数据也不相同,而当第一时刻和第二时刻处于不同周期时则第一时刻和第二时刻所使用的密钥向量则明显不相同,因为不同周期的哈希密钥不相同。
另外,对于第二时刻加密过程中防止内存中出现敏感数据的方法与第一时刻加密过程相类似,相关描述可以参阅图4-a所述的实施例,此处不进行赘述。
归一化算法指的是将不同时刻的密文数据归一化到相同的密文形态,尤其是相同明文数据对应的密文数据。由于采用了随机数加入到加密过程中,在不同时刻,即使同样的明文数据加密得到的密文数据都不相同。将相同的明文数据归一化到相同的密文形态,以便识别不同时刻相同的明文目标。
为了识别不同时刻相同的明文目标,需要对不同时刻的密文数据进行归一化处理。针对两个时刻的加密操作后得到的不同密文数据进行归一化操作,下面提出具体的归一化操作方法,由于第一时刻加密过程在图3-a和图4-a所述实施例介绍的数据处理方法中已经进行介绍,对于第二时刻的加密过程在图5所述实施例介绍的数据处理方法中已经进行介绍,在此对两个加密过程不进行重复介绍。
如图6所示,本发明实施例中提供了一种针对图3-a所述实施例对应的归一化操作方法,该归一化操作方法包括:
S601、获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和第二时刻使用的哈希密钥。
本发明中涉及的第一时刻和第二时刻是为了区别两个时间点进行的描述,第一时刻和第二时刻可以相邻,也可以间隔一段时间,并且第一时刻和第二时刻可以位于同一个周期内,也可以位于不同周期内,当然,若第一时刻和第二时刻处于同一个周期内时,在加密时所采用的密钥向量相同,即对应的哈希密钥也相同,本领域普通技术人员应当了解,此处不进行赘述。
第一密文数据和第一时刻获取的随机数在加密完成后已进行存储,在使用时可以读取得到,第二密文数据和第二时刻获取的随机数在加密完成后已进行存储,在使用时可以读取得到。根据第一时刻的时间点可以得出第一时刻所处于的密钥更新周期,可以得到这一周期加密采用的密钥向量,进而可以得到这一周期加密采用的哈希密钥,同样道理,可以根据第二时刻所在的第二周期获取第二周期的密钥向量,进而第二时刻所使用的哈希密钥。
S602、利用所述预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对所述第一时刻获取的随机数进行加密得到所述第四哈希结果。
利用带密钥哈希算法和哈希密钥对随机数进行加密的方法在前面实施例中有介绍,并且加密得到的哈希结果也相同,这里为了区分以不同名字进行命名,此处不进行赘述。
S603、利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对所述第二时刻获取的随机数进行加密得到所述第五哈希结果。
S604、以所述第一密文数据的长度为准对所述第四哈希结果及第五哈希结果的长度进行截断或补零,以使得截断或补零后的第四哈希结果及截断或补零后的第五哈希结果的长度与所述第一密文数据的长度相同。
S605、对所述第一密文数据和所述截断或补零后第四哈希结果进行异或运算,对所述第二密文数据和截断或补零后第五哈希结果进行异或运算。
对所述第一密文数据和所述截断或补零后第四哈希结果进行异或运算,可以得到第一密文数据进行归一化操作的目标密文形态,即第一归一化数据,对第二密文数据和截断或补零后第五哈希结果进行异或运算,可以得到第二密文数据进行第一时刻向第二时刻进行归一化操作的目标密文形态,即第二归一化数据。上述第一归一化数据和第二归一化数据实际上分别对应第一加密数据(利用预设的对称加密算法和对称密钥对第一明文数据进行加密)和第二加密数据(利用预设的对称加密算法和对称密钥对第二明文数据进行加密)。由于不同时刻都采用了相同的对称加密算法和对称密钥,所以只要明文相同,则对应的归一化数据显然也是相同的,从而便于对密文数据的跟踪分析。然而在本发明实施例中由于归一化操作中会析出敏感数据(如第一归一化数据和第二归一化数据),非法用户可以窃取这些敏感数据,并进行分析获取对称密钥,从而对数据的安全性会有一定影响。
结合图7所示本发明实施例中还提供了一种针对图4-a所述实施例对应的归一化操作的方法,所述归一化操作方法包括:
S701、获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和第二时刻使用的哈希密钥。
步骤S701与上一实施例中步骤S601相类似,此处不进行赘述。
S702、利用所述预设的带密钥哈希算法和所述第一时刻所处的周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到所述第七哈希结果。
为了便于与上一实施例中的结果相区别,这里采用第七哈希结果进行区别,后面也有类似操作,不进行赘述。
S703、利用所述哈希算法对所述第一时刻使用的哈希密钥进行哈希计算得到第八哈希结果。
S704、利用所述预设的带密钥哈希算法和所述第二时刻所处的周期对应的哈希密钥对所述第二时刻获取的随机数进行加密得到所述第九哈希结果。
S705、利用所述哈希算法对所述第二时刻使用的哈希密钥进行哈希计算得到第十哈希结果。
当第一时刻和第二时刻处于同一个周期中时,由于所对应的哈希密钥相同,则进行加密的结果第八哈希结果和第十哈希结果是相同的,反之,当第一时刻和第二时刻不处于同一个周期中时,由于所对应的哈希密钥不同,则进行加密的结果第八哈希结果和第十哈希结果是不同的。
S706、以所述第一密文数据的长度为准对所述第七哈希结果、所述第八哈希结果的长度、所述第九哈希结果和所述十哈希结果进行截断或补零,以使得截断或补零后的第七哈希结果的长度、截断或补零后的第八哈希结果的长度、截断或补零后的第九哈希结果的长度和截断或补零后的第十哈希结果的长度与所述第一密文数据的长度相同。
S707、依次对所述第一密文数据、所述第十哈希结果、所述第八哈希结果以及所述第七哈希结果进行异或运算,对所述第二密文数据和所述第九哈希结果进行异或运算。
为了防止敏感数据(例如,对称加密算法加密的第一加密数据)被解析出来,对第一密文数据进行归一化,进行异或运算时需要按照顺序进行计算,提高数据的安全性。
在进行归一化操作时候,不需要对密文数据进行解密(使用对称加密算法和对称密钥进行运算),避免明文数据出现在内存中,提高数据的安全性,另外,由于不需要对每个密文数据进行解密,使得归一化操作用时缩短,降低对系统性能的影响。
下面提供一个实验数据对归一化的效能进行说明:
归一化操作过程仅涉及到3个简单的异或运算和3个低复杂度的哈希运算,归一化所需时间可以表示为T归一化=3*TKeyHash+3*TXOR,其中,TKeyHash表示哈希运算的时间代价,TXOR表示异或操作的时间代价。为了与现有技术作比较,首先通过计算机计算各种运算所需要的运行时间,如表1所示。现有技术采用的加密算法为AES128,本发明采用的带密钥哈希算法为HMAC。现有技术的归一化过程所需要的时间为2*TAES=0.08ms,而本发明归一化所需要的时间为3*TKeyHash+3*TXOR=0.009+2*TXOR≈0.009ms,其中,TAES是对称加密算法的运行时间代价,TKeyHash是带密钥哈希算法的运行时间,TKeyHash是哈希计算的时间,TXOR是异或运算的运行时间。
Figure BDA0000921843860000191
表格1RSA、AES、HMAC和XOR的运行时间代价。
上述表1表征了不同的算法操作运行的时间代价,根据该表格1以及上述的归一化时间的公式可以知道,采用本发明实施例的方法,可以有效的提高归一化的效率。
因此,本发明的归一化算法不但内存中不会出现敏感明文,而且可以获得较优的归一化性能。
结合图8所示,本发明实施例还描述了上述方法实施例属于同一发明构思下的一种数据处理的设备结构示意图。所述数据处理的设备包括:
获取单元801,用于获取第一时刻进行加密使用的密钥向量,所述密钥向量包括对称密钥和第一时刻使用的哈希密钥;
处理单元802,用于利用预设的对称加密算法和所述对称密钥对第一明文数据进行加密得到第一加密数据;
所述处理单元802,还用于利用预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对在所述第一时刻获取的随机数进行加密得到第一哈希结果;
所述处理单元802,还用于对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据;
存储单元803,用于对所述第一密文数据和所述第一时刻获取的随机数进行存储。
可选地,所述对称密钥不同时刻保持不变,所述哈希密钥按照预设的周期进行更新,获取单元801用于获取第一时刻进行加密使用的密钥向量,具体为:
获取所述第一时刻所处的周期对应的哈希密钥;
获取所述对称密钥。
可选地,所述处理单元802,还用于以所述第一加密数据的长度为准对所述第一哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度与所述第一加密数据的长度相同;
所述处理单元802,用于所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据,具体为:对所述第一加密数据和截断或补零后的第一哈希结果进行异或运算得到所述第一密文数据。
可选地,所述处理单元802,还用于利用预设的哈希算法对所述第一时刻使用的哈希密钥进行加密得到第二哈希结果;
以所述第一加密数据的长度为准对所述第一哈希结果的长度和所述第二哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度和截断或补零后的第二哈希结果的长度与所述第一加密数据的长度相同;
其中,所述处理单元,用于对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据,具体包括:对所述第一加密数据、截断或补零后的第一哈希结果及截断或补零后的第二哈希结果进行异或运算得到所述第一密文数据。
可选地,所述获取单元801,还用于获取所述第一密文数据和所述第一时刻获取的随机数并确定所述第一时刻位于第一周期内;获取所述第一周期对应的哈希密钥和所述对称密钥;
所述处理单元802,还用于利用所述预设的带密钥哈希算法和所述第一周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到第一解密结果;
以所述第一密文数据的长度为准对所述第一解密结果的长度进行截断或补零,以使得截断或补零后的第一解密结果的长度与所述第一密文数据的长度相同;
对所述第一密文数据和所述截断或补零后的第一解密结果进行异或运算获得第一解密数据;
利用所述预设的对称加密算法和所述对称密钥对所述第一解密数据进行解密。
可选地,所述获取单元801,还用于获取第二时刻进行加密所使用的密钥向量,所述第二时刻进行加密所使用的密钥向量包括对称密钥和第二时刻使用的哈希密钥;
所述处理单元801,还用于利用所述预设的对称加密算法和所述对称密钥对第二明文数据进行加密得到第二加密数据;
利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对在所述第二时刻获取的随机数进行加密得到第三哈希结果;
以所述第二加密数据的长度为准对所述第三哈希结果的长度进行截断或补零,以使得截断或补零后的第三哈希结果的长度与所述第二加密数据的长度相同;以及
对所述第二加密数据和所述第三哈希结果进行异或运算获得第二密文数据;
所述存储单元803,还用于对所述第二密文数据和所述第二时刻获取的随机数进行存储。
可选地,所述获取单元,还用于获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和第二时刻使用的哈希密钥;
所述处理单元802,还用于利用所述预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对所述第一时刻获取的随机数进行加密得到所述第四哈希结果;利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对所述第二时刻获取的随机数进行加密得到所述第五哈希结果;
以所述第一密文数据的长度为准对所述第四哈希结果第五哈希结果的长度进行截断或补零,以使得截断或补零后的第四哈希结果的长度及截断或补零后的第五哈希结果的长度与所述第一密文数据的长度相同;
对所述第一密文数据和所述截断或补零后的第四哈希结果进行异或运算,对所述第二密文数据和所述截断或补零后的第五哈希结果进行异或运算。
可选地,所述获取单元801,还用于获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和所述第二时刻使用的哈希密钥;
所述处理单元802,还用于利用所述预设的带密钥哈希算法和所述第一时刻所处的周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到所述第七哈希结果;
利用所述哈希算法对所述第一时刻使用的哈希密钥进行哈希计算得到第八哈希结果;
利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对所述第二时刻获取的随机数进行加密得到所述第九哈希结果;
利用所述哈希算法对所述第二时刻使用的哈希密钥进行哈希计算得到第十哈希结果;
以所述第一密文数据的长度为准对所述第七哈希结果、所述第八哈希结果的长度、所述第九哈希结果和所述十哈希结果进行截断或补零,以使得截断或补零后的第七哈希结果的长度、截断或补零后的第八哈希结果的长度、截断或补零后的第九哈希结果的长度和截断或补零后的第十哈希结果的长度与所述第一密文数据的长度相同;
依次对所述第一密文数据、所述截断或补零后的第十哈希结果、所述截断或补零后的第八哈希结果以及所述截断或补零后的第七哈希结果进行异或运算,对所述第二密文数据和所述截断或补零后的第九哈希结果进行异或运算。在本实施例中,数据处理的设备800是以功能单元的形式来呈现。这里的“单元”可以指特定应用集成电路(application-specific integrated circuit,ASIC),电路,执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到数据处理的设备800可以采用图2所示的形式。获取单元801,处理单元802和存储单元803可以通过图2的处理器和存储器来实现,具体的,获取单元801可以通过由处理器来执行交互模块来实现,处理单元802和存储单元803可以通过由处理器来执行处理模块来实现。
本发明实施例还提供了一种计算机存储介质,用于储存实现上述图8所示的数据处理的设备的计算机软件指令,其包含用于执行上述方法实施例所设计的程序。通过执行存储的程序,可以实现对数据的安全处理。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (17)

1.一种数据处理的方法,其特征在于,所述方法包括:
获取第一时刻进行加密所使用的密钥向量,所述密钥向量包括对称密钥和所述第一时刻使用的哈希密钥;
利用预设的对称加密算法和所述对称密钥对第一明文数据进行加密得到第一加密数据;
利用预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对在所述第一时刻获取的随机数进行加密得到第一哈希结果,所述随机数是在第一时刻通过随机数生成器生成的;
对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据;
对所述第一密文数据和所述第一时刻获取的随机数进行存储。
2.根据权利要求1所述的方法,其特征在于,所述对称密钥不同时刻保持不变;所述哈希密钥按照预设的周期进行更新;所述获取第一时刻进行加密所使用的密钥向量,具体包括:
获取所述第一时刻所处的周期对应的哈希密钥;
获取所述对称密钥。
3.根据权利要求1或2所述的方法,其特征在于,在所述对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据之前,所述方法还包括:
以所述第一加密数据的长度为准对所述第一哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度与所述第一加密数据的长度相同;
所述对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据具体包括:
对所述第一加密数据和所述截断或补零后的第一哈希结果进行异或运算得到所述第一密文数据。
4.根据权利要求1或2所述的方法,其特征在于,所述获取第一时刻进行加密所使用的密钥向量之后,所述方法还包括:
利用预设的哈希算法对所述第一时刻使用的哈希密钥进行加密得到第二哈希结果;
在所述对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据之前,所述方法还包括:
以所述第一加密数据的长度为准对所述第一哈希结果的长度和所述第二哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度和截断或补零后的第二哈希结果的长度与所述第一加密数据的长度相同;
所述对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据具体包括:
对所述第一加密数据、所述截断或补零后的第一哈希结果及所述截断或补零后的第二哈希结果进行异或运算得到所述第一密文数据。
5.根据权利要求3所述的方法,其特征在于,在所述对所述第一密文数据和所述第一时刻获取的随机数进行存储之后,所述方法还包括:
获取所述第一密文数据和所述第一时刻获取的随机数并确定所述第一时刻位于第一周期内;
获取所述第一周期对应的哈希密钥和所述对称密钥;
利用所述预设的带密钥哈希算法和所述第一周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到第一解密结果;
以所述第一密文数据的长度为准对所述第一解密结果的长度进行截断或补零,以使得截断或补零后的第一解密结果的长度与所述第一密文数据的长度相同;
对所述第一密文数据和所述截断或补零后的第一解密结果进行异或运算获得第一解密数据;
利用所述预设的对称加密算法和所述对称密钥对所述第一解密数据进行解密。
6.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取第二时刻进行加密所使用的密钥向量,所述第二时刻进行加密所使用的密钥向量包括所述对称密钥和第二时刻使用的哈希密钥;
利用所述预设的对称加密算法和所述对称密钥对第二明文数据进行加密得到第二加密数据;
利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对在所述第二时刻获取的随机数进行加密得到第三哈希结果;
以所述第二加密数据的长度为准对所述第三哈希结果的长度进行截断或补零,以使得截断或补零后的第三哈希结果的长度与所述第二加密数据的长度相同;
对所述第二加密数据和所述第三哈希结果进行异或运算获得第二密文数据;
对所述第二密文数据和所述第二时刻获取的随机数进行存储。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述第一密文数据、所述第一时刻获取的随机数、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和所述第二时刻使用的哈希密钥;
利用所述预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对所述第一时刻获取的随机数进行加密得到第四哈希结果;
利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对所述第二时刻获取的随机数进行加密得到第五哈希结果;
以所述第一密文数据的长度为准对所述第四哈希结果及所述第五哈希结果进行截断或补零,以使得截断或补零后的第四哈希结果的长度及截断或补零后的第五哈希结果的长度与所述第一密文数据的长度相同;
对所述第一密文数据和所述截断或补零后的第四哈希结果进行异或运算,对所述第二密文数据和所述截断或补零后的第五哈希结果进行异或运算。
8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和所述第二时刻使用的哈希密钥;
利用所述预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对所述第一时刻获取的随机数进行加密得到第七哈希结果;
利用所述哈希算法对所述第一时刻使用的哈希密钥进行哈希计算得到第八哈希结果;
利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对所述第二时刻获取的随机数进行加密得到第九哈希结果;
利用所述哈希算法对所述第二时刻使用的哈希密钥进行哈希计算得到第十哈希结果;
以所述第一密文数据的长度为准对所述第七哈希结果、所述第八哈希结果的长度、所述第九哈希结果和所述第十哈希结果进行截断或补零,以使得截断或补零后的第七哈希结果的长度、截断或补零后的第八哈希结果的长度、截断或补零后的第九哈希结果的长度和截断或补零后的第十哈希结果的长度与所述第一密文数据的长度相同;
依次对所述第一密文数据、所述截断或补零后的第十哈希结果、所述截断或补零后的第八哈希结果以及所述截断或补零后的第七哈希结果进行异或运算,对所述第二密文数据和所述截断或补零后的第九哈希结果进行异或运算。
9.一种数据处理的设备,其特征在于,所述设备包括:
获取单元,用于获取第一时刻进行加密使用的密钥向量,所述密钥向量包括对称密钥和第一时刻使用的哈希密钥;
处理单元,用于利用预设的对称加密算法和所述对称密钥对第一明文数据进行加密得到第一加密数据;
所述处理单元,还用于利用预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对在所述第一时刻获取的随机数进行加密得到第一哈希结果,所述随机数是在第一时刻通过随机数生成器生成的;
所述处理单元,还用于对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据;
存储单元,用于对所述第一密文数据和所述第一时刻获取的随机数进行存储。
10.根据权利要求9所述的数据处理的设备,其特征在于,所述对称密钥不同时刻保持不变,所述哈希密钥按照预设的周期进行更新,获取单元用于获取第一时刻进行加密使用的密钥向量,具体为:
获取所述第一时刻所处的周期对应的哈希密钥;
获取所述对称密钥。
11.根据权利要求9或10所述的数据处理的设备,其特征在于,所述处理单元,还用于以所述第一加密数据的长度为准对所述第一哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度与所述第一加密数据的长度相同;
所述处理单元,用于所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据,具体为:对所述第一加密数据和截断或补零后的第一哈希结果进行异或运算得到所述第一密文数据。
12.根据权利要求9或10所述的数据处理的设备,其特征在于,所述处理单元,还用于利用预设的哈希算法对所述第一时刻使用的哈希密钥进行加密得到第二哈希结果;
以所述第一加密数据的长度为准对所述第一哈希结果的长度和所述第二哈希结果的长度进行截断或补零,以使得截断或补零后的第一哈希结果的长度和截断或补零后的第二哈希结果的长度与所述第一加密数据的长度相同;
其中,所述处理单元,用于对所述第一加密数据和所述第一哈希结果进行异或运算获得第一密文数据,具体包括:对所述第一加密数据、截断或补零后的第一哈希结果及截断或补零后的第二哈希结果进行异或运算得到所述第一密文数据。
13.根据权利要求11所述的数据处理的设备,其特征在于,
所述获取单元,还用于获取所述第一密文数据和所述第一时刻获取的随机数并确定所述第一时刻位于第一周期内;获取所述第一周期对应的哈希密钥和所述对称密钥;
所述处理单元,还用于利用所述预设的带密钥哈希算法和所述第一周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到第一解密结果;
以所述第一密文数据的长度为准对所述第一解密结果的长度进行截断或补零,以使得截断或补零后的第一解密结果的长度与所述第一密文数据的长度相同;
对所述第一密文数据和所述截断或补零后的第一解密结果进行异或运算获得第一解密数据;
利用所述预设的对称加密算法和所述对称密钥对所述第一解密数据进行解密。
14.根据权利要求11所述的数据处理的设备,其特征在于,
所述获取单元,还用于获取第二时刻进行加密所使用的密钥向量,所述第二时刻进行加密所使用的密钥向量包括对称密钥和第二时刻使用的哈希密钥;
所述处理单元,还用于利用所述预设的对称加密算法和所述对称密钥对第二明文数据进行加密得到第二加密数据;
利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对在所述第二时刻获取的随机数进行加密得到第三哈希结果;
以所述第二加密数据的长度为准对所述第三哈希结果的长度进行截断或补零,以使得截断或补零后的第三哈希结果的长度与所述第二加密数据的长度相同;以及
对所述第二加密数据和所述第三哈希结果进行异或运算获得第二密文数据;
所述存储单元,还用于对所述第二密文数据和所述第二时刻获取的随机数进行存储。
15.根据权利要求14所述的数据处理的设备,其特征在于,
所述获取单元,还用于获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和第二时刻使用的哈希密钥;
所述处理单元,还用于利用所述预设的带密钥哈希算法和所述第一时刻使用的哈希密钥对所述第一时刻获取的随机数进行加密得到第四哈希结果;利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对所述第二时刻获取的随机数进行加密得到第五哈希结果;
以所述第一密文数据的长度为准对所述第四哈希结果第五哈希结果的长度进行截断或补零,以使得截断或补零后的第四哈希结果的长度及截断或补零后的第五哈希结果的长度与所述第一密文数据的长度相同;
对所述第一密文数据和所述截断或补零后的第四哈希结果进行异或运算,对所述第二密文数据和所述截断或补零后的第五哈希结果进行异或运算。
16.根据权利要求14所述的数据处理的设备,其特征在于,
所述获取单元,还用于获取所述第一密文数据、所述第一时刻获取的随机数、所述第二密文数据、所述第二时刻获取的随机数、所述第一时刻使用的哈希密钥和所述第二时刻使用的哈希密钥;
所述处理单元,还用于利用所述预设的带密钥哈希算法和所述第一时刻所处的周期对应的哈希密钥对所述第一时刻获取的随机数进行加密得到第七哈希结果;
利用所述哈希算法对所述第一时刻使用的哈希密钥进行哈希计算得到第八哈希结果;
利用所述预设的带密钥哈希算法和所述第二时刻使用的哈希密钥对所述第二时刻获取的随机数进行加密得到第九哈希结果;
利用所述哈希算法对所述第二时刻使用的哈希密钥进行哈希计算得到第十哈希结果;
以所述第一密文数据的长度为准对所述第七哈希结果、所述第八哈希结果的长度、所述第九哈希结果和所述第十哈希结果进行截断或补零,以使得截断或补零后的第七哈希结果的长度、截断或补零后的第八哈希结果的长度、截断或补零后的第九哈希结果的长度和截断或补零后的第十哈希结果的长度与所述第一密文数据的长度相同;
依次对所述第一密文数据、所述截断或补零后的第十哈希结果、所述截断或补零后的第八哈希结果以及所述截断或补零后的第七哈希结果进行异或运算,对所述第二密文数据和所述截断或补零后的第九哈希结果进行异或运算。
17.一种数据处理的设备,其特征在于,包括:处理器和存储器,其中,
所述存储器中存有计算机可读程序;
所述处理器通过运行所述存储器中的程序,以用于完成上述权利要求1至8所述的方法。
CN201610078041.1A 2016-02-03 2016-02-03 一种数据处理的方法和设备 Active CN107038383B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610078041.1A CN107038383B (zh) 2016-02-03 2016-02-03 一种数据处理的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610078041.1A CN107038383B (zh) 2016-02-03 2016-02-03 一种数据处理的方法和设备

Publications (2)

Publication Number Publication Date
CN107038383A CN107038383A (zh) 2017-08-11
CN107038383B true CN107038383B (zh) 2020-08-25

Family

ID=59532555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610078041.1A Active CN107038383B (zh) 2016-02-03 2016-02-03 一种数据处理的方法和设备

Country Status (1)

Country Link
CN (1) CN107038383B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109462468B (zh) * 2017-09-06 2021-05-28 深圳光启智能光子技术有限公司 数据处理方法和装置
CN107819572B (zh) 2017-09-29 2021-01-22 北京比特大陆科技有限公司 命令传输方法、装置及电子设备
CN108549818A (zh) * 2018-03-06 2018-09-18 福建省天奕网络科技有限公司 一种手机游戏数据加密解密的方法及系统
CN108491184B (zh) * 2018-03-16 2021-04-27 数安时代科技股份有限公司 随机数发生器的熵源采集方法、计算机设备及存储介质
CN108667598B (zh) * 2018-04-28 2021-10-15 克洛斯比尔有限公司 用于实现安全密钥交换的设备和方法及安全密钥交换方法
CN109271798A (zh) * 2018-09-13 2019-01-25 深圳萨摩耶互联网金融服务有限公司 敏感数据处理方法及系统
CN109086594A (zh) * 2018-09-21 2018-12-25 郑州云海信息技术有限公司 一种实现滑动型验证码验证的方法、装置及系统
CN109510818B (zh) * 2018-10-29 2021-08-17 梁伟 区块链的数据传输系统、方法、装置、设备及存储介质
CN109510703B (zh) * 2018-11-23 2020-02-11 北京海泰方圆科技股份有限公司 一种数据加解密方法及装置
CN110176986A (zh) * 2019-05-30 2019-08-27 杭州奇治信息技术股份有限公司 一种多重加密的数据加密方法、装置及移动终端
CN110855423A (zh) * 2019-09-23 2020-02-28 深圳市智讯互动体育科技有限公司 加密解密有序数值串的方法、装置及存储介质
CN110708164B (zh) * 2019-09-25 2022-03-04 青岛海尔科技有限公司 一种物联网设备的控制方法、装置、存储介质及电子装置
CN111124453B (zh) * 2019-12-25 2023-03-31 哈尔滨新中新电子股份有限公司 一种终端设备固件程序升级方法
CN112291060A (zh) * 2020-08-08 2021-01-29 北京天润海图科技有限公司 安全通信方法及发送端、接收端
CN112434322B (zh) * 2020-12-03 2024-05-07 深圳市欢太科技有限公司 数据加密方法、装置、计算机设备及计算机可读存储介质
CN112866237B (zh) * 2021-01-15 2023-02-03 广州Tcl互联网小额贷款有限公司 数据通讯方法、装置、设备和存储介质
CN112887077B (zh) * 2021-01-20 2023-04-21 深圳安捷丽新技术有限公司 一种ssd主控芯片随机缓存保密方法和电路
CN113761570B (zh) * 2021-08-16 2024-01-30 高语澈 一种面向隐私求交的数据交互方法
CN114338090A (zh) * 2021-12-08 2022-04-12 北京达佳互联信息技术有限公司 数据安全性检测方法、装置及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633070A (zh) * 2004-10-29 2005-06-29 徐子杰 一种数据加密解密方法及加密解密装置
CN102238001A (zh) * 2010-05-07 2011-11-09 腾讯数码(深圳)有限公司 一种提高数据安全性的方法和装置
CN104410616A (zh) * 2014-11-20 2015-03-11 广州日滨科技发展有限公司 数据加密、解密、传输方法和系统
CN104683359A (zh) * 2015-03-27 2015-06-03 成都三零瑞通移动通信有限公司 一种安全通道建立方法及其数据保护方法和安全通道秘钥更新方法
CN104868996A (zh) * 2014-02-25 2015-08-26 中兴通讯股份有限公司 一种数据加密解密方法、装置以及终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080235521A1 (en) * 2007-03-20 2008-09-25 Les Technologies Deltacrypt Method and encryption tool for securing electronic data storage devices

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1633070A (zh) * 2004-10-29 2005-06-29 徐子杰 一种数据加密解密方法及加密解密装置
CN102238001A (zh) * 2010-05-07 2011-11-09 腾讯数码(深圳)有限公司 一种提高数据安全性的方法和装置
CN104868996A (zh) * 2014-02-25 2015-08-26 中兴通讯股份有限公司 一种数据加密解密方法、装置以及终端
CN104410616A (zh) * 2014-11-20 2015-03-11 广州日滨科技发展有限公司 数据加密、解密、传输方法和系统
CN104683359A (zh) * 2015-03-27 2015-06-03 成都三零瑞通移动通信有限公司 一种安全通道建立方法及其数据保护方法和安全通道秘钥更新方法

Also Published As

Publication number Publication date
CN107038383A (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
CN107038383B (zh) 一种数据处理的方法和设备
CN107689869B (zh) 用户口令管理的方法和服务器
US9892211B2 (en) Searchable code processing system and method
US8751809B2 (en) Method and device for securely sharing images across untrusted channels
CN114036565B (zh) 隐私信息检索系统及隐私信息检索方法
US8635465B1 (en) Counter-based encryption of stored data blocks
CN109672521B (zh) 基于国密加密引擎实现的安全存储系统和方法
CN106452770B (zh) 一种数据加密方法、解密方法、装置和系统
CN105577379A (zh) 一种信息处理方法及装置
US8904195B1 (en) Methods and systems for secure communications between client applications and secure elements in mobile devices
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
KR101729960B1 (ko) 신뢰 보안 플랫폼 모듈을 이용한 보안 애플리케이션 인증 및 관리 방법 및 장치
US20160197729A1 (en) Location aware cryptography
US20230325516A1 (en) Method for file encryption, terminal, electronic device and computer-readable storage medium
CN109936546B (zh) 数据加密存储方法和装置以及计算设备
CN110312054B (zh) 图像的加解密方法、及相关装置、存储介质
KR101697868B1 (ko) 공유 또는 검색을 위한 데이터 암호화 방법 및 이를 수행하는 장치
US11128455B2 (en) Data encryption method and system using device authentication key
WO2019120038A1 (zh) 数据加密存储
CN108768642B (zh) 一种数据聚合方法、装置、计算机设备及存储介质
CN113329004B (zh) 一种认证方法、系统及装置
CN114417073A (zh) 一种加密图的邻居节点查询方法及装置、电子设备
US11133926B2 (en) Attribute-based key management system
KR101812311B1 (ko) 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법
CN115361198A (zh) 解密方法、加密方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant