CN117459221A - 数据加密方法及装置、数据解密方法及装置、电子设备 - Google Patents
数据加密方法及装置、数据解密方法及装置、电子设备 Download PDFInfo
- Publication number
- CN117459221A CN117459221A CN202311300975.1A CN202311300975A CN117459221A CN 117459221 A CN117459221 A CN 117459221A CN 202311300975 A CN202311300975 A CN 202311300975A CN 117459221 A CN117459221 A CN 117459221A
- Authority
- CN
- China
- Prior art keywords
- data
- encrypted
- salt value
- preset
- packet
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 150000003839 salts Chemical class 0.000 claims abstract description 143
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 59
- 238000006243 chemical reaction Methods 0.000 claims abstract description 32
- 239000012634 fragment Substances 0.000 claims description 27
- 230000009466 transformation Effects 0.000 claims description 25
- 238000003860 storage Methods 0.000 claims description 17
- 238000005520 cutting process Methods 0.000 claims description 15
- 230000001502 supplementing effect Effects 0.000 claims description 6
- 230000002349 favourable effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 34
- 238000012545 processing Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000006835 compression Effects 0.000 description 9
- 238000007906 compression Methods 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000013507 mapping Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000011426 transformation method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006837 decompression Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000000243 solution Substances 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- OPTASPLRGRRNAP-UHFFFAOYSA-N cytosine Chemical compound NC=1C=CNC(=O)N=1 OPTASPLRGRRNAP-UHFFFAOYSA-N 0.000 description 2
- UYTPUPDQBNUYGX-UHFFFAOYSA-N guanine Chemical compound O=C1NC(N)=NC2=C1N=CN2 UYTPUPDQBNUYGX-UHFFFAOYSA-N 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- RWQNBRDOKXIBIV-UHFFFAOYSA-N thymine Chemical compound CC1=CNC(=O)NC1=O RWQNBRDOKXIBIV-UHFFFAOYSA-N 0.000 description 2
- 229930024421 Adenine Natural products 0.000 description 1
- GFFGJBXGBJISGV-UHFFFAOYSA-N Adenine Chemical compound NC1=NC=NC2=C1N=CN2 GFFGJBXGBJISGV-UHFFFAOYSA-N 0.000 description 1
- 229960000643 adenine Drugs 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 229940104302 cytosine Drugs 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000012266 salt solution Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 229940113082 thymine Drugs 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
- H04L1/0008—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length by supplementing frame payload, e.g. with padding bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种数据加密方法及装置、数据解密方法及装置、电子设备,该方法包括:获取待加密数据并进行分组,得到多个待加密数据分组;获取外部密钥和各个待加密数据分组对应的盐值,并利用外部密钥和盐值分别对各个待加密数据分组进行加密,得到第一加密后数据;根据第一加密后数据和盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据;利用预设编码算法对第二加密后数据进行编码;根据编码数据和预设编码转换关系输出目标加密后数据。本申请采用数据分组的方式有利于多线程并行运行,提高了数据加密效率;采用外部密钥和盐值组合加密的方式,增强了加密的安全性和随机性;通过对盐值进行隐藏,保证随机性的同时,保护了随机密钥。
Description
技术领域
本申请涉及数据加解密技术领域,尤其涉及一种数据加密方法及装置、数据解密方法及装置、电子设备。
背景技术
随着移动互联网的蓬勃发展,利用网络传输数据越来越普遍,例如为了采集用户详细信息,通常会要求用户通过移动客户端程序拍摄并上传一些涉及用户隐私的多媒体信息,如身份证、社保卡、驾驶证等照片,或者是用于用户身份识别的个人肖像或录音录像等资料,这些流数据通常在传输前被转换成Base64编码格式,和其它通信参数一起被包裹进工作报文中经过网络传输。
为了保证信息在传输过程中的安全性,通常会对报文进行加密处理,当前的数据加密方式主要是基于数据特征码的加密方式,传统的实现方案是直接将文件转换为Base64编码格式,相应的优化方案是对已经转换为Base64编码的内容进行加密,但Base64作为一种编码格式,安全性无法保证,对其加密时又存在速度过慢的问题,在部分操作系统下由于处理时间过长甚至无法对内容进行有效加密,导致业务使用性降低。
一些其他现有的数据加密方案也大都使用了复杂的加密算法,导致极耗性能,加解密时间长,效率低下,这无疑对人们最常使用的移动设备的性能与续航造成了压力。
发明内容
本申请实施例提供了一种数据加密方法及装置、数据解密方法及装置、电子设备,以提高数据加密的效率和安全性。
本申请实施例采用下述技术方案:
第一方面,本申请实施例提供一种数据加密方法,所述数据加密方法包括:
获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组;
获取外部密钥和各个待加密数据分组对应的盐值,并利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据;
根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据;
利用预设编码算法对所述第二加密后数据进行编码,得到编码数据;
根据所述编码数据和预设编码转换关系输出目标加密后数据。
可选地,所述获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组包括:
获取待加密数据和对应的基础信息,所述基础信息包括源数据格式和源数据大小;
根据所述待加密数据和对应的基础信息构建信息头前缀数据,所述信息头前缀数据包括信息头总长度数据、待加密数据的基础信息数据和补位数据;
将所述信息头前缀数据和所述待加密数据进行拼接,得到拼接后的待加密数据;
对所述拼接后的待加密数据进行分组,得到多个待加密数据分组。
可选地,所述利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据包括:
对所述盐值进行哈希运算,得到第一哈希值,以及对所述外部密钥进行哈希运算,得到第二哈希值;
对所述第一哈希值和所述第二哈希值进行异或运算,得到组合加密密钥;
利用所述组合加密密钥分别对各个待加密数据分组进行加密,得到所述第一加密后数据。
可选地,所述利用所述组合加密密钥分别对各个待加密数据分组进行加密,得到所述第一加密后数据包括:
按照预设字节长度分别对各个待加密数据分组依次进行组内切割,得到各个待加密数据分组的组内切割数据;
利用所述组合加密密钥对各个待加密数据分组的组内切割数据,按照第一分组顺序依次循环进行异或运算,得到所述第一加密后数据。
可选地,所述根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据包括:
根据所述第一加密后数据和所述盐值,利用所述预设盐值隐藏算法生成盐值隐藏信息;
利用所述盐值隐藏信息替换所述第一加密后数据中的目标字节数据,得到所述第二加密后数据。
可选地,所述利用预设编码算法对所述第二加密后数据进行编码,得到编码数据包括:
对所述第二加密后数据进行分组,得到多个第二加密后数据分组;
利用预设分组变换策略分别对各个第二加密后数据分组进行分组变换,得到多个变换后的第二加密后数据分组;
利用DNA编码算法分别对各个变换后的第二加密后数据分组进行编码,得到多个DNA片段数据;
根据多个DNA片段数据确定所述编码数据。
可选地,所述预设编码转换关系包括预定义码表,所述根据所述编码数据和预设编码转换关系输出目标加密后数据包括:
利用所述预定义码表对所述编码数据进行转换,得到编码转换数据;
根据所述编码转换数据和预设数据输出条件输出所述目标加密后数据。
第二方面,本申请实施例还提供一种数据解密方法,所述数据解密方法包括:
获取待解密数据,并利用预设编码转换关系对所述待解密数据进行转换,得到转换后的待解密数据;
对所述转换后的待解密数据进行分组,得到多个待解密数据分组;
利用预设解码算法分别对各个待解密数据分组进行解码,得到多个解码数据分组;
根据多个解码数据分组确定对应的盐值隐藏信息,并根据所述盐值隐藏信息,利用预设盐值解密算法求解出各个解码数据分组对应的盐值;
获取外部密钥,并根据所述盐值和所述外部密钥分别对多个解码数据分组进行解密,得到目标解密后数据。
第三方面,本申请实施例还提供一种数据加密装置,所述数据加密装置包括:
第一分组单元,用于获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组;
第一加密单元,用于获取外部密钥和各个待加密数据分组对应的盐值,并利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据;
第二加密单元,用于根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据;
编码单元,用于利用预设编码算法对所述第二加密后数据进行编码,得到编码数据;
输出单元,用于根据所述编码数据和预设编码转换关系输出目标加密后数据。
第四方面,本申请实施例还提供一种数据解密装置,所述数据解密装置包括:
转换单元,用于获取待解密数据,并利用预设编码转换关系对所述待解密数据进行转换,得到转换后的待解密数据;
第二分组单元,用于对所述转换后的待解密数据进行分组,得到多个待解密数据分组;
解码单元,用于利用预设解码算法分别对各个待解密数据分组进行解码,得到多个解码数据分组;
第一解密单元,用于根据多个解码数据分组确定对应的盐值隐藏信息,并根据所述盐值隐藏信息,利用预设盐值解密算法求解出各个解码数据分组对应的盐值;
第二解密单元,用于获取外部密钥,并根据所述盐值和所述外部密钥分别对多个解码数据分组进行解密,得到目标解密后数据。
第五方面,本申请实施例还提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行前述之任一所述数据加密方法,或者执行前述之任一所述数据解密方法。
第六方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行前述之任一所述数据加密方法,或者执行前述之任一所述数据解密方法。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本申请实施例的数据加密方法,先获取待加密数据,并对待加密数据进行分组,得到多个待加密数据分组;然后获取用于加密的盐值和外部密钥,并利用盐值和外部密钥分别对多个待加密数据分组进行加密,得到第一加密后数据;之后根据第一加密后数据和盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据;再利用预设编码算法对第二加密后数据进行编码,得到编码数据;最后根据编码数据和预设编码转换关系输出目标加密后数据。本申请实施例的数据加密方法采用数据分组的方式有利于多线程并行运行,提高了数据加密效率;采用外部密钥和盐值组合加密的方式,增强了数据加密的安全性和随机性;通过对盐值进行隐藏,在最大限度保证随机性的同时,保护了随机密钥,进一步增强了数据加密的安全性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例中一种数据加密方法的流程示意图;
图2为本申请实施例中一种完整的数据结构示意图;
图3为本申请实施例中一种加密阶段的循环异或运算的流程示意图;
图4为本申请实施例中第一种字符变换方式示意图;
图5为本申请实施例中第二种字符变换方式示意图;
图6为本申请实施例中第三种字符变换方式示意图;
图7为本申请实施例中第四种字符变换方式示意图;
图8为本申请实施例中一种字符分组示意图;
图9为本申请实施例中一种字符对与DNA碱基对的映射关系示意图;
图10为本申请实施例中一种预定义码表的对应关系示意图;
图11为本申请实施例中一种二进制数据平铺示意图;
图12为本申请实施例中一种数据加密流程示意图;
图13为本申请实施例中一种数据解密方法的流程示意图;
图14为本申请实施例中一种数据解密流程示意图;
图15为本申请实施例中一种原始的二进制数据与变换后的二进制数据的映射关系示意图;
图16为本申请实施例中一种解密阶段的循环异或运算的流程示意图;
图17为本申请实施例中一种数据加密装置的结构示意图;
图18为本申请实施例中一种数据解密装置的结构示意图;
图19为本申请实施例中一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
为了便于对本申请各实施例的理解,首先介绍本申请各实施例涉及到的主要技术术语:
1)盐值:一定长度的随机数值,用于数据加解密;
2)异或:异或(xor)是一个数学运算符,应用于逻辑运算,异或的数学符号为“⊕”,计算机符号为“xor”,其运算法则相当于不带进位的二进制加法,如果“⊕”前后的两个值不相同,则异或结果为1,如果前后的两个值相同,异或结果为0;
3)DNA编码:一种将二进制数据转换为用DNA碱基对表示的字符的编码算法;
4)DNA片段:一种将二进制数据经过DNA编码后的字符集合;
5)DNA解码:一种将DNA片段转换为二进制数据的解码方法。
具体地,本申请实施例提供了一种数据加密方法,如图1所示,提供了本申请实施例中一种数据加密方法的流程示意图,所述数据加密方法至少包括如下的步骤S110至步骤S150:
步骤S110,获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组。
在进行数据加密时,需要先获取源数据即待加密数据,例如可以是二进制流数据,将获取到的待加密数据按照一定分组规则进行分组,例如可以按照设定的数据大小分成多个待加密数据分组,再针对每个分组的待加密数据分别进行后续的处理。
分组的目的是为了提高整体的数据加密效率,例如可以利用多线程技术创建线程池,开辟当前运算设备核心数+1的线程数量对分组加密任务进行并行处理,待全部加密任务完成后再汇总合并,从而提高整体加密效率。
步骤S120,获取外部密钥和各个待加密数据分组对应的盐值,并利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据。
本申请实施例采用的加密密钥包括两部分,一部分是外部密钥,即允许用户输入外部密钥信息,另一部分是随机生成的盐值,即利用加盐技术生成一定长度的随机数值,采用外部密钥和随机数值进行组合加密的方式,能够大大增强数据加密的安全性和随机性。
需要说明的是,上述用于加密的盐值可以是在执行各个分组的加密任务时,分别针对各个分组的待加密数据生成的盐值,当然也可以是针对所有分组的待加密数据统一生成的盐值。
步骤S130,根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据。
考虑到一些加密方案中虽采用了混合随机数的方案进行加密,但对随机数的保护以及存储方式相对单一,还有一些方案直接明文存储随机数信息,导致随机数泄露的风险极高,进而导致源数据的安全风险较高。
基于此,本申请实施例进一步设计了盐值隐藏算法,用于根据前述步骤得到的加密后数据和生成的盐值进行盐值隐藏,隐藏后的盐值需要基于本申请定义的求解算法才能求解得到,在最大限度的保证盐值随机性的同时,保护了随机数自身的安全性,且相同的数据每次加密后输出均不同,进一步隐藏了数据特征,增强了数据的安全保护等级。
步骤S140,利用预设编码算法对所述第二加密后数据进行编码,得到编码数据。
为了进一步提高数据安全性,本申请实施例需要进一步利用预设编码算法对上述步骤得到的第二加密后数据进行编码处理,从而得到编码后的数据。这里的预设编码算法例如可以采用DNA编码规则,当然,本领域技术人员也可以根据实际需求灵活定义其他形式的编码规则,在此不作具体限定。
步骤S150,根据所述编码数据和预设编码转换关系输出目标加密后数据。
最后,还需要按照事先定义好的编码转换关系将上述步骤到的编码数据转换为符合数据输出要求的形式,从而得到最终的加密后数据。具体的编码转换关系与前述步骤具体采取的编码算法相关,同样可以根据实际需求灵活定义,在此不作具体限定。
本申请实施例的数据加密方法采用数据分组的方式有利于多线程并行运行,提高了数据加密效率;采用外部密钥和盐值组合加密的方式,增强了数据加密的安全性和随机性;通过对盐值进行隐藏,在最大限度保证随机性的同时,保护了随机密钥,进一步增强了数据加密的安全性。
在本申请的一些实施例中,所述获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组包括:获取待加密数据和对应的基础信息,所述基础信息包括源数据格式和源数据大小;根据所述待加密数据和对应的基础信息构建信息头前缀数据,所述信息头前缀数据包括信息头总长度数据、待加密数据的基础信息数据和补位数据;将所述信息头前缀数据和所述待加密数据进行拼接,得到拼接后的待加密数据;对所述拼接后的待加密数据进行分组,得到多个待加密数据分组。
本申请实施例在获取待加密数据时,还可以同时获取待加密数据的一些基础信息,例如可以包括源数据格式和源数据大小,基于这些基础信息对待加密数据进行预处理,使预处理后的数据能够便于后续的加密处理。
本申请实施例采取的一种预处理方式是构建信息头前缀数据,本申请实施例定义的信息头前缀可以包括三个部分,第一部分固定长度2字节,用来存储信息头的长度数据;第二部分不定长,将获取到的待加密数据的源数据格式和长度等基础信息转换为JSON数据格式,再进一步转换为二进制数据存储在第二部分中;第三部分的信息存储为补位字符,具体补位的规则与后续采取的编码算法有关。如图2所示,提供了本申请实施例中一种完整的数据结构示意图,这里需要说明的是,源数据的末尾处还设置有盐值隐藏信息,作为加解密的依据之一,其也可以定义为固定长度,如2字节。
为了便于对本申请实施例的补位规则的理解,以DNA编码算法为例进行说明,DNA编码算法的编码过程需要对以3字节为一组的数据进行处理,要求整体数据长度必须为3的倍数,因此在二进制数据的总长度不满足3的倍数的情况下,需要填充字符用以补足位数。
因此,这里的补位长度的计算公式可以表示为如下形式:
TL=4+HDL+DL, (1)
CL=TL MOD(3), (2)
其中,TL表示二进制数据的总长度,HDL表示信息头第二部分长度,DL表示获取到的源数据长度,CL表示补位长度。
在基于上述公式计算出需要补位的字节数CL后,可以使用空格字符完成补位填充。当然,需要说明的是,上述补位规则仅仅为本申请一种示例性描述,若采取其他形式的编码算法,可以定义其他相应的补位规则,在此不作具体限定。
在完成上述预处理后,将得到完整的待加密数据结构,再利用本申请实施例的分组规则进行分组,例如可以每12KB为一组,最后一组如果不满足12KB也被允许,当然这里的分组大小可以根据实际需求灵活设置。之后通过多线程并行运行的方式对各个分组数据进行后续的加密处理,从而提高整体数据加密效率。
在本申请的一些实施例中,所述利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据包括:对所述盐值进行哈希运算,得到第一哈希值,以及对所述外部密钥进行哈希运算,得到第二哈希值;对所述第一哈希值和所述第二哈希值进行异或运算,得到组合加密密钥;利用所述组合加密密钥分别对各个待加密数据分组进行加密,得到所述第一加密后数据。
由于盐值和用户输入的外部密钥的数据格式可能不统一,不同用户输入的外部密钥的格式也可能不一致,因此本申请实施例在利用盐值和外部密钥对待加密数据分组进行加密时,可以先分别对盐值和外部密钥进行哈希运算,从而得到格式统一的第一哈希值H1和第二哈希值H2。
对上述第一哈希值H1和第二哈希值H2进行组合,例如可以采用异或运算的方式对第一哈希值H1和第二哈希值H2进行异或运算,生成组合密钥K,利用组合密钥K对待加密数据分组进行加密,从而得到第一加密后数据。
在本申请的一些实施例中,所述利用所述组合加密密钥分别对各个待加密数据分组进行加密,得到所述第一加密后数据包括:按照预设字节长度分别对各个待加密数据分组依次进行组内切割,得到各个待加密数据分组的组内切割数据;利用所述组合加密密钥对各个待加密数据分组的组内切割数据,按照第一分组顺序依次循环进行异或运算,得到所述第一加密后数据。
本申请实施例在对各个待加密数据分组进行加密时,可以在原始的数据分组按照K长度(如3字节)进行组内切割,再使用组合加密密钥K对组内切割后的数据进行循环异或运算,也即在12KB的数据分组内,再按照每3字节的数据片段为单位进行循环异或运算,从而得到新的二进制数据。
如图3所示,提供了本申请实施例中一种加密阶段的循环异或运算的流程示意图。举例说明,假设有M组待加密数据分组,每个待加密数据分组又按照3字节的长度进行组内切割,分别得到N组组内切割数据,先将组合加密密钥K与第一组待加密数据分组中的第一组组内切割数据进行异或运算,得到异或运算结果1,再将异或运算结果1与第一组待加密数据分组中的第二组组内切割数据进行异或运算,得到异或运算结果2,以此类推,当第一组待加密数据分组中的数据全部处理完成后,再依次处理第二组、第三组,……,第M组待加密数据分组内的数据,直至M组待加密数据分组均处理完成,输出最终的二进制数据。
在本申请的一些实施例中,所述根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据包括:根据所述第一加密后数据和所述盐值,利用所述预设盐值隐藏算法生成盐值隐藏信息;利用所述盐值隐藏信息替换所述第一加密后数据中的目标字节数据,得到所述第二加密后数据。
本申请实施例可以先根据前述实施例得到的第一加密后数据和盐值,利用预设盐值隐藏算法生成盐值隐藏信息,这里的预设盐值隐藏算法例如可以表示为如下形式:
其中,C为自定义常量值,大小为1字节,X表示第一加密后数据中的开始2字节的原始内容,r表示盐值,y表示第一加密后数据中的开始2字节的最终显示内容。
利用公式(3)的方式生成的新字符替换第一加密后数据中的开始2字节的原始内容,这样基于盐值加密生成的第一加密后数据即发生变化,实现了对盐值的隐藏,进而提高了数据的安全性。当然,具体替换哪些字节,本领域技术人员可以根据实际需求灵活设置,在此不作具体限定。
为了使相关用户能够基于此规则进行解密,本申请实施例还可以在上述新生成的第一加密后数据的末尾处补充盐值隐藏信息,记作y’,长度为2字节,具体可以表示为如下形式:
后续数据解密阶段,可通过联立公式(3)和(4)构建盐值求解方式组,从而求解出被隐藏的盐值r。
在本申请的一些实施例中,所述利用预设编码算法对所述第二加密后数据进行编码,得到编码数据包括:对所述第二加密后数据进行分组,得到多个第二加密后数据分组;利用预设分组变换策略分别对各个第二加密后数据分组进行分组变换,得到多个变换后的第二加密后数据分组;利用DNA编码算法分别对各个变换后的第二加密后数据分组进行编码,得到多个DNA片段数据;根据多个DNA片段数据确定所述编码数据。
对完成上述步骤后的数据重新进行分组,分组规则例如可以是每24个二进制字符为一组,再对组内数据分别进行多次变换,具体变换过程如下:
第一次变换:先将24个字符分成3行排列,得到一个3X8的矩阵,如图4所示,提供了本申请实施例中第一种字符变换方式示意图。
第二次变换:左侧4列数据不动,将右侧4列数据移动至左侧4列数据的下侧,得到一个6X4的矩阵,如图5所示,提供了本申请实施例中第二种字符变换方式示意图。
第三次变换:将最后一行数据与第一行数据进行交换,得到一个新的6X4的矩阵,如图6所示,提供了本申请实施例中第三种字符变换方式示意图。
第四次变换:将右侧2列数据,移动至左侧2列数据下侧,得到一个12X2的矩阵,如图7所示,提供了本申请实施例中第三种字符变换方式示意图。
需要说明的是,上述变换规则参考了AES加密的列变换和行移位,主要目的是为了形成一个混乱顺序的码表,其为本申请实施例基于DNA编码算法设计的一种优选实施方式,本领域技术人员可以根据实际需求灵活设置其他变换方式,例如随机变换的方式,在此不作具体限定。
对四次变换后得到的12X2的矩阵,模拟DNA双链螺旋结构进行交叉连线,之后再次进行分组,分组规则为每条链上的两个相邻字符分为一组,即连续的左上和右下为一组,右上和左下为一组,如图8所示,提供了本申请实施例中一种字符分组示意图。
经过分组后,得到12组由0和1组成的字符对,由于两位二进制数可表示四种可能,即00、01、10、11,将四种可能分别以DNA的四种碱基对来表示,具体转换关系例如可以为,以00表示的腺嘌呤(A)、以01表示的鸟嘌呤(G)、以10表示的胞嘧啶(C)和以11表示的胸腺嘧啶(T),如图9所示,提供了本申请实施例中一种字符对与DNA碱基对的映射关系示意图。
因此,原有的24位二进制字符,经过DNA编码后可得到12位以AGCT四个字符所表示的新编码数据,即本申请实施例的DNA片段数据。
在本申请的一些实施例中,对多个DNA片段数据进行压缩,得到多个压缩后的DNA片段数据,作为所述编码数据。
上述步骤完成后,得到的DNA片段可能会在一定程度上存在重复的可能性,例如DNA片段AGCAGCAGCAGC,显而易见,AGC三个字符在该片段中重复出现了4次;又比如片段AGAGAGAGAGAG,AG两个字符在该片段中重复出现了6次;比如片段AAAAAAAAAAAA,字符A在该片段中重复出现了12次。
基于以上可能出现的场景,本申请实施例进一步提出了一种DNA编码压缩方案,例如,以V、W、X、Y、Z以上5位字符分别表示为取该字符前2位、前3位、前4位、前5位、前6位字符,后续追加一个重复次数,以字符M、N分别表示为十进制数字10和11,当仅重复一次时可不接数字。因此,如原DNA片段AGCAGCAGCAGC,经过该规则压缩后重新编码可得到AGCW3,其含义为取W字符前的3个字符,即AGC,再额外重复3次;同理,原DNA片段AGAGAGAGAGAG,经过压缩后可得到AGV5,其含义为取V字符前的两个字符,即AG,再额外重复5次;原DNA片段为AAAAAAAAAAAA,经过压缩后可得到AN,其含义为字符A,再额外重复11次。通过此种压缩方式可以大大缩小数据占用的空间。
需要说明的是,上述压缩规则是基于DNA编码的特点设计的,具体如何进行压缩,本领域技术人员可以根据实际需求灵活设置,在此不作具体限定。
在本申请的一些实施例中,所述预设编码转换关系包括预定义码表,所述根据所述编码数据和预设编码转换关系输出目标加密后数据包括:利用所述预定义码表对所述编码数据进行转换,得到编码转换数据;根据所述编码转换数据和预设数据输出条件输出所述目标加密后数据。
在上述所有步骤完成后,可得到经过压缩后的DNA片段数据集合,集合内,共可能存在19种可打印字符,可以事先对这19种字符定义码表,如图10所示,提供了一种本申请实施例中一种预定义码表的对应关系示意图。
基于上述预定义码表,可将前述实施例得到的编码进行转换,经过编码转换后的单一字符编码为5位的二进制数,可以将5位二进制数平铺成8比特位的字节流,对不满足8比特位的字节进行补零,最终输出目标加密后数据,如图11所示,提供了一种本申请实施例中一种二进制数据平铺示意图。
为了便于对本申请上述各实施例的理解,如图12所示,提供了本申请实施例中一种数据加密流程示意图。首先,输入文件并读取文件中的待加密数据及待加密数据的格式类型和大小等基础信息,将读取出来的信息记录并存储为待加密数据的信息头前缀,对不满足后续计算的数据进行补位,补位完成后对完整的数据进行分组。然后,利用加盐技术结合外部密钥生成组合加密密钥,对每个分组内的数据使用组合加密密钥循环进行异或运算,并将盐值通过隐匿方式存储起来。之后,对处理后的数据进行DNA编码处理,得到多个DNA片段。再之后,对多个DNA片段进行压缩处理,将压缩后的编码按照预定义码表进行转换,得到编码转换数据。最后,将编码转换数据按照一定格式输出。
与前述各实施例中的数据加密方法相对应地,本申请实施例还提供了一种数据解密方法,如图13所示,提供了本申请实施例中一种数据解密方法的流程示意图,所述数据解密方法至少包括如下的步骤S1310至步骤S1350:
步骤S1310,获取待解密数据,并利用预设编码转换关系对所述待解密数据进行转换,得到转换后的待解密数据;
步骤S1320,对所述转换后的待解密数据进行分组,得到多个待解密数据分组。
同加密阶段的分组过程,对已完成上述步骤后的二进制数据进行分组,分组规则为每12KB为一组,最后一组如果不满足12KB也被允许,后续处理过程将针对一组数据分别进行解密处理,可选地利用多线程技术,创建线程池,开辟当前运算设备核心数+1的线程数量对分组解密任务进行计算,待全部解密任务完成后再汇总合并,以提高整体数据解密效率。
步骤S1330,利用预设解码算法分别对各个待解密数据分组进行解码,得到多个解码数据分组。
步骤S1340,根据多个解码数据分组确定对应的盐值隐藏信息,并根据所述盐值隐藏信息,利用预设盐值解密算法求解出各个解码数据分组对应的盐值。
步骤S1350,获取外部密钥,并根据所述盐值和所述外部密钥分别对多个解码数据分组进行解密,得到目标解密后数据。
本申请实施例的数据解密方法主要用于对基于前述实施例的数据加密方法加密得到的数据进行解密,其主要流程可以看作是前述实施例中的数据加密方法的逆向过程。
为了便于对本申请实施例的理解,如图14所示,提供了本申请实施例中一种数据解密流程示意图。首先,读取待解密数据,将待解密数据按照预设编码转换关系进行转换,得到转换后的待解密数据。然后,根据数据加密阶段采取的压缩规则对转换后的待解密数据进行解压缩操作,得到解压缩后的DNA编码数据。之后,对DNA编码数据进行分组,对每个分组内的数据进行DNA解码操作,得到解码后的二进制数据,根据解码后的二进制数据中的盐值隐藏信息求解用于解密的盐值和不包含盐值隐藏信息的二进制数据。再之后,使用解密出的盐值结合外部密钥计算出组合解密密钥,利用组合解密密钥对分组数据进行解密操作,得到解密后数据,读取出解密后数据的信息头前缀信息,最后根据信息头前缀信息中的源数据格式还原出源数据。
在本申请的一些实施例中,所述对所述转换后的待解密数据进行分组,得到多个待解密数据分组包括:对所述转换后的待解密数据进行解压缩,得到解压缩后的待解密数据;对所述解压缩后的待解密数据进行分组,得到多个待解密数据分组。
按照前述实施例的数据加密方法所阐述的压缩规则,本申请设计了一种相对应的解压缩方案,即对压缩后的字符串执行压缩的逆运算,具体规则可以为,以V、W、X、Y、Z以上5位字符分别表示为取该字符前2位、前3位、前4位、前5位、前6位字符,当读取到以上字符时,说明后段内容存在压缩表达,按照以上特殊字符出现的规则,截取前N位字符串,并根据特殊字符后面的数字,重复还原其内容,以字符M、N分别表示为十进制数字10和11,当仅重复一次时可不接数字。
举例说明,如压缩后的DNA片段内容为A2C2Z,其含义为重复字符A2次,重复字符C2次,对此还原后,重复字符Z出现时前6位字符1次,因此解压后可得到完整的DNA片段为AAACCCAAACCC;又如压缩后的DNA片段内容为ACGGTXA2,其含义为重复字符X出现时前4位字符1次,重复字符A2次,解压后可得到完整的DNA片段为ACGGTCGGTAAA。
在本申请的一些实施例中,所述利用预设解码算法分别对各个待解密数据分组进行解码,得到多个解码数据分组包括:利用DNA解码算法分别对各个待解密数据分组进行解码,得到各个待解密数据分组的解码数据;利用预设分组变换策略分别对各个待解密数据分组进行变换还原,得到各个待解密数据分组的还原后解码数据。
首先,根据DNA碱基对与二进制字符的映射表,将各个待解密数据分组的DNA碱基对数据还原出24位二进制字符,然后,根据本申请实施例所阐述的DNA编码规则,可以得到如图15所示的原始的二进制数据与变换后的二进制数据的映射关系示意图。最后,根据图15所示的映射关系,可将乱序后的24位二进制字符集合还原变换前的原始顺序,得到正序的二进制字符集合。
在本申请的一些实施例中,所述根据所述盐值和所述外部密钥分别对多个解码数据分组进行解密,得到目标解密后数据包括:对所述盐值进行哈希运算,得到第一哈希值,以及对所述外部密钥进行哈希运算,得到第二哈希值;对所述第一哈希值和所述第二哈希值进行异或运算,得到组合解密密钥;利用所述组合解密密钥分别对多个解码数据分组进行解密,得到目标解密后数据。
在本申请的一些实施例中,所述利用所述组合解密密钥分别对多个解码数据分组进行解密,得到目标解密后数据包括:按照预设字节长度分别对各个解码数据分组依次进行组内切割,得到各个解码分组的组内切割数据;利用所述组合解密密钥对各个待加密数据分组的组内切割数据,按照第二分组顺序依次循环进行异或运算,得到所述目标解密后数据,所述第二分组顺序与所述第一分组顺序相反。
在解密阶段,同样需要对求解出的盐值和外部密钥进行哈希运算,分别得到两个定长的哈希值H1和H2,对H1和H2进行异或运算,得到组合解密密钥K,对原始分组内的数据按照组合解密密钥K长度进行组内切割,使用组合解密密钥K对组内切割后的数据进行循环异或运算。注意这里区别于前述实施例的数据加密方法中的循环异或运算步骤,由于加密时,后段内容受前段加密结果的影响,因此在解密阶段,对各个分组的数据进行异或运算时采用逆序处理,从而得到新的二进制数据。如图16所示,提供了本申请实施例中一种解密阶段的循环异或运算的流程示意图。
在完成以上所有步骤操作后,将得到明文的二进制字符串,读取该二进制字符串的开始2个字节,可获取前缀信息中信息头的长度,之后再按照该字节数读取信息头中的JSON格式数据,从而获得源数据的格式和长度等信息。
上述得到的明文二进制字符串除去前缀信息,剩下的部分即为源文件的二进制数据,结合源数据的格式和长度等信息,即可还原得到最终的源数据。
本申请实施例还提供了一种数据加密装置1700,如图17所示,提供了本申请实施例中一种数据加密装置的结构示意图,所述数据加密装置1700包括:第一分组单元1710、第一加密单元1720、第二加密单元1730、编码单元1740以及输出单元1750,其中:
第一分组单元1710,用于获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组;
第一加密单元1720,用于获取外部密钥和各个待加密数据分组对应的盐值,并利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据;
第二加密单元1730,用于根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据;
编码单元1740,用于利用预设编码算法对所述第二加密后数据进行编码,得到编码数据;
输出单元1750,用于根据所述编码数据和预设编码转换关系输出目标加密后数据。
在本申请的一些实施例中,所述第一分组单元1710具体用于:获取待加密数据和对应的基础信息,所述基础信息包括源数据格式和源数据大小;根据所述待加密数据和对应的基础信息构建信息头前缀数据,所述信息头前缀数据包括信息头总长度数据、待加密数据的基础信息数据和补位数据;将所述信息头前缀数据和所述待加密数据进行拼接,得到拼接后的待加密数据;对所述拼接后的待加密数据进行分组,得到多个待加密数据分组。
在本申请的一些实施例中,所述第一加密单元1720具体用于:对所述盐值进行哈希运算,得到第一哈希值,以及对所述外部密钥进行哈希运算,得到第二哈希值;对所述第一哈希值和所述第二哈希值进行异或运算,得到组合加密密钥;利用所述组合加密密钥分别对各个待加密数据分组进行加密,得到所述第一加密后数据。
在本申请的一些实施例中,所述第一加密单元1720具体用于:按照预设字节长度分别对各个待加密数据分组依次进行组内切割,得到各个待加密数据分组的组内切割数据;利用所述组合加密密钥对各个待加密数据分组的组内切割数据,按照第一分组顺序依次循环进行异或运算,得到所述第一加密后数据。
在本申请的一些实施例中,所述第二加密单元1730具体用于:根据所述第一加密后数据和所述盐值,利用所述预设盐值隐藏算法生成盐值隐藏信息;利用所述盐值隐藏信息替换所述第一加密后数据中的目标字节数据,得到所述第二加密后数据。
在本申请的一些实施例中,所述编码单元1740具体用于:对所述第二加密后数据进行分组,得到多个第二加密后数据分组;利用预设分组变换策略分别对各个第二加密后数据分组进行分组变换,得到多个变换后的第二加密后数据分组;利用DNA编码算法分别对各个变换后的第二加密后数据分组进行编码,得到多个DNA片段数据;根据多个DNA片段数据确定所述编码数据。
在本申请的一些实施例中,所述预设编码转换关系包括预定义码表,所述输出单元1750具体用于:利用所述预定义码表对所述编码数据进行转换,得到编码转换数据;根据所述编码转换数据和预设数据输出条件输出所述目标加密后数据。
能够理解,上述数据加密装置,能够实现前述实施例中提供的数据加密方法的各个步骤,关于数据加密方法的相关阐释均适用于数据加密装置,此处不再赘述。
本申请实施例还提供了一种数据解密装置1800,如图18所示,提供了本申请实施例中一种数据解密装置的结构示意图,所述数据解密装置1800包括:转换单元1810、第二分组单元1820、解码单元1830、第一解密单元1840以及第二解密单元1850,其中:
转换单元1810,用于获取待解密数据,并利用预设编码转换关系对所述待解密数据进行转换,得到转换后的待解密数据;
第二分组单元1820,用于对所述转换后的待解密数据进行分组,得到多个待解密数据分组;
解码单元1830,用于利用预设解码算法分别对各个待解密数据分组进行解码,得到多个解码数据分组;
第一解密单元1840,用于根据多个解码数据分组确定对应的盐值隐藏信息,并根据所述盐值隐藏信息,利用预设盐值解密算法求解出各个解码数据分组对应的盐值;
第二解密单元1850,用于获取外部密钥,并根据所述盐值和所述外部密钥分别对多个解码数据分组进行解密,得到目标解密后数据。
能够理解,上述数据解密装置,能够实现前述实施例中提供的数据解密方法的各个步骤,关于数据解密方法的相关阐释均适用于数据解密装置,此处不再赘述。
图19是本申请的一个实施例电子设备的结构示意图。请参考图19,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图19中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成数据加密装置或数据解密装置。处理器,执行存储器所存放的程序。
上述如本申请图1所示实施例揭示的数据加密装置或图13所示实施例揭示的数据解密装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的电子设备执行时,能够使该电子设备执行图1所示实施例中数据加密装置执行的方法,或者图13所示实施例中数据解密装置执行的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种数据加密方法,其特征在于,所述数据加密方法包括:
获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组;
获取外部密钥和各个待加密数据分组对应的盐值,并利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据;
根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据;
利用预设编码算法对所述第二加密后数据进行编码,得到编码数据;
根据所述编码数据和预设编码转换关系输出目标加密后数据。
2.根据权利要求1所述数据加密方法,其特征在于,所述获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组包括:
获取待加密数据和对应的基础信息,所述基础信息包括源数据格式和源数据大小;
根据所述待加密数据和对应的基础信息构建信息头前缀数据,所述信息头前缀数据包括信息头总长度数据、待加密数据的基础信息数据和补位数据;
将所述信息头前缀数据和所述待加密数据进行拼接,得到拼接后的待加密数据;
对所述拼接后的待加密数据进行分组,得到多个待加密数据分组。
3.根据权利要求1所述数据加密方法,其特征在于,所述利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据包括:
对所述盐值进行哈希运算,得到第一哈希值,以及对所述外部密钥进行哈希运算,得到第二哈希值;
对所述第一哈希值和所述第二哈希值进行异或运算,得到组合加密密钥;
利用所述组合加密密钥分别对各个待加密数据分组进行加密,得到所述第一加密后数据。
4.根据权利要求3所述数据加密方法,其特征在于,所述利用所述组合加密密钥分别对各个待加密数据分组进行加密,得到所述第一加密后数据包括:
按照预设字节长度分别对各个待加密数据分组依次进行组内切割,得到各个待加密数据分组的组内切割数据;
利用所述组合加密密钥对各个待加密数据分组的组内切割数据,按照第一分组顺序依次循环进行异或运算,得到所述第一加密后数据。
5.根据权利要求1所述数据加密方法,其特征在于,所述根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据包括:
根据所述第一加密后数据和所述盐值,利用所述预设盐值隐藏算法生成盐值隐藏信息;
利用所述盐值隐藏信息替换所述第一加密后数据中的目标字节数据,得到所述第二加密后数据。
6.根据权利要求1所述数据加密方法,其特征在于,所述利用预设编码算法对所述第二加密后数据进行编码,得到编码数据包括:
对所述第二加密后数据进行分组,得到多个第二加密后数据分组;
利用预设分组变换策略分别对各个第二加密后数据分组进行分组变换,得到多个变换后的第二加密后数据分组;
利用DNA编码算法分别对各个变换后的第二加密后数据分组进行编码,得到多个DNA片段数据;
根据多个DNA片段数据确定所述编码数据。
7.根据权利要求1所述数据加密方法,其特征在于,所述预设编码转换关系包括预定义码表,所述根据所述编码数据和预设编码转换关系输出目标加密后数据包括:
利用所述预定义码表对所述编码数据进行转换,得到编码转换数据;
根据所述编码转换数据和预设数据输出条件输出所述目标加密后数据。
8.一种数据解密方法,其特征在于,所述数据解密方法包括:
获取待解密数据,并利用预设编码转换关系对所述待解密数据进行转换,得到转换后的待解密数据;
对所述转换后的待解密数据进行分组,得到多个待解密数据分组;
利用预设解码算法分别对各个待解密数据分组进行解码,得到多个解码数据分组;
根据多个解码数据分组确定对应的盐值隐藏信息,并根据所述盐值隐藏信息,利用预设盐值解密算法求解出各个解码数据分组对应的盐值;
获取外部密钥,并根据所述盐值和所述外部密钥分别对多个解码数据分组进行解密,得到目标解密后数据。
9.一种数据加密装置,其特征在于,所述数据加密装置包括:
第一分组单元,用于获取待加密数据,并对所述待加密数据进行分组,得到多个待加密数据分组;
第一加密单元,用于获取外部密钥和各个待加密数据分组对应的盐值,并利用所述外部密钥和各个待加密数据分组对应的盐值分别对各个待加密数据分组进行加密,得到第一加密后数据;
第二加密单元,用于根据所述第一加密后数据和所述盐值,利用预设盐值隐藏算法进行盐值隐藏,得到第二加密后数据;
编码单元,用于利用预设编码算法对所述第二加密后数据进行编码,得到编码数据;
输出单元,用于根据所述编码数据和预设编码转换关系输出目标加密后数据。
10.一种数据解密装置,其特征在于,所述数据解密装置包括:
转换单元,用于获取待解密数据,并利用预设编码转换关系对所述待解密数据进行转换,得到转换后的待解密数据;
第二分组单元,用于对所述转换后的待解密数据进行分组,得到多个待解密数据分组;
解码单元,用于利用预设解码算法分别对各个待解密数据分组进行解码,得到多个解码数据分组;
第一解密单元,用于根据多个解码数据分组确定对应的盐值隐藏信息,并根据所述盐值隐藏信息,利用预设盐值解密算法求解出各个解码数据分组对应的盐值;
第二解密单元,用于获取外部密钥,并根据所述盐值和所述外部密钥分别对多个解码数据分组进行解密,得到目标解密后数据。
11.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行权利要求1~7之任一所述数据加密方法,或者执行权利要求8所述数据解密方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行权利要求1~7之任一所述数据加密方法,或者执行权利要求8所述数据解密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311300975.1A CN117459221A (zh) | 2023-10-09 | 2023-10-09 | 数据加密方法及装置、数据解密方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311300975.1A CN117459221A (zh) | 2023-10-09 | 2023-10-09 | 数据加密方法及装置、数据解密方法及装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117459221A true CN117459221A (zh) | 2024-01-26 |
Family
ID=89582585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311300975.1A Pending CN117459221A (zh) | 2023-10-09 | 2023-10-09 | 数据加密方法及装置、数据解密方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117459221A (zh) |
-
2023
- 2023-10-09 CN CN202311300975.1A patent/CN117459221A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110768785B (zh) | 一种编、解码方法、相关装置及计算机设备 | |
CN112202984B (zh) | 一种基于纠错冗余的密文域可逆信息隐藏方法 | |
CN115659409B (zh) | 一种金融资产交易数据安全存储方法 | |
EP3447963A1 (en) | Method for protecting data | |
CN111866018A (zh) | 数据信息加密发送方法、装置、计算机设备及存储介质 | |
CN116418481A (zh) | 一种文本隐私数据双重加密保护方法、装置及设备 | |
CN112769545B (zh) | 基于相邻像素约瑟夫变换和Mealy状态机的图像加密方法 | |
JP6273226B2 (ja) | 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法 | |
JP2008099243A (ja) | 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム | |
CN116582314A (zh) | 一种最优隐藏的双重保护文本方法 | |
CN116566597A (zh) | 基于比特币地址混淆密文的可控安全等级隐蔽通信方法 | |
CN117459221A (zh) | 数据加密方法及装置、数据解密方法及装置、电子设备 | |
US11038668B2 (en) | Transposition encryption alphabet method (TEAM) | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
Brindhashree et al. | Data security based on cryptography steganography combined with OTP algorithm and Huffman coding in the cloud environment | |
EP3654576B1 (en) | Computer-implemented method for error-correction-encoding and encrypting of a file | |
CN116484407B (zh) | 一种数据安全保护方法、装置、电子设备及存储介质 | |
CN116880778B (zh) | 一种基于再生编码及分布式存储的用户隐私保护方法 | |
Jirjees et al. | IMGTXT: Image to Text Encryption Based on Encoding Pixel Contrasts. | |
US11664976B2 (en) | Method and devices for creating redundancy and encryption using Mojette Transform | |
CN115834163B (zh) | 加密数据的秘钥生成方法、装置、设备及存储介质 | |
Manikandan et al. | Design of tri-layer image encryption scheme using Calendar Month Vowel Count (CMVC) approach | |
CN117708847A (zh) | 基于数据压缩与加密的3c产品租赁平台数据处理方法 | |
Dahiya et al. | Comparative study of popular cryptographic techniques | |
Jirjees et al. | Mathematical Modelling of Engineering Problems |
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 |