CN117240434A - 一种数据加密方法、装置、电子设备及存储介质 - Google Patents

一种数据加密方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117240434A
CN117240434A CN202311434478.0A CN202311434478A CN117240434A CN 117240434 A CN117240434 A CN 117240434A CN 202311434478 A CN202311434478 A CN 202311434478A CN 117240434 A CN117240434 A CN 117240434A
Authority
CN
China
Prior art keywords
data
value
encrypted
chaotic
preset number
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
Application number
CN202311434478.0A
Other languages
English (en)
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.)
BOE Technology Group Co Ltd
Beijing BOE Technology Development Co Ltd
Original Assignee
BOE Technology Group Co Ltd
Beijing BOE Technology Development 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 BOE Technology Group Co Ltd, Beijing BOE Technology Development Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN202311434478.0A priority Critical patent/CN117240434A/zh
Publication of CN117240434A publication Critical patent/CN117240434A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请实施例提供了一种数据加密方法、装置、电子设备及存储介质,获取混沌系统控制参数集合,基于混沌系统控制参数集合,计算混沌系统控制参数集合处于混沌状态时的离散轨迹值,基于离散轨迹值得到混沌序列,获取预设素数,并计算预设素数为上界的生成元,计算生成元对应的离散对数矩阵,基于混沌序列、离散对数对待加密数据进行置换,得到加密后的数据,通过配合使用离散对数,使置乱过程比单纯使用混沌序列更难以分析破解提高数据的安全性。

Description

一种数据加密方法、装置、电子设备及存储介质
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据加密方法、装置、电子设备及存储介质。
背景技术
随着计算机和互联网技术的快速发展,多媒体信息的总体数量和传输速度得到了巨大的提升,大大便利的网络用户的日常生活,然而由于互联网的开放性,用户通信过程中产生的大量多媒体信息的安全性难以保证。
发明内容
本申请实施例的目的在于提供一种数据加密方法、装置、电子设备及存储介质。具体技术方案如下:
本申请实施例提供了一种数据加密方法,所述方法包括:
获取混沌系统控制参数集合;
基于所述混沌系统控制参数集合,计算所述混沌系统控制参数集合处于混沌状态时的离散轨迹值;
基于所述离散轨迹值得到混沌序列;
获取预设素数,并计算所述预设素数为上界的生成元;
计算所述生成元对应的离散对数矩阵;
基于所述混沌序列、离散对数矩阵对待加密数据进行置换,得到加密后的数据。
在一种可能的实施方式中,所述基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到加密后的数据,包括:
对所述待加密数据进行压缩,得到预处理明文数据;
基于所述混沌序列、离散对数矩阵对所述预处理明文数据进行置换,得到加密后的数据。
在一种可能的实施方式中,所述基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到加密后的数据,包括:
基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到第一中间密文;
对所述第一中间密文进行目标操作,得到加密后的数据;所述目标操作包括正向扩散、逆向扩散、置换中的至少一项。
在一种可能的实施方式中,所述对所述第一中间密文进行目标操作,得到加密后的数据,包括:
对所述第一中间密文进行正向扩散,得到第二中间密文;
对所述第二中间密文进行逆向扩散,得到第三中间密文;
对所述第三中间密文进行至少一次的置换,得到加密后的数据。
在一种可能的实施方式中,所述获取混沌系统控制参数集合,包括:
获取待加密数据的散列值;
将所述待加密数据的散列值划分为第一预设数量个比特块,得到第一目标比特块;所述第一预设数量为所述待加密数据的散列值的约数;
获取混沌系统维数;
针对每一维所对应的比特块,从所述第一目标比特块中确定该维所对应的第二预设数量个比特块,得到第二目标比特块;其中,该维所对应的第二目标比特块与其他维所对应的第二目标比特块不同;所述第二预设数量小于所述第一预设数量;
针对每一维所对应的比特块,从所述第二目标比特块选择第三预设数量个比特块,并将所述第三预设数量个比特块两两异或,得到异或结果;将各所述异或结果相加,得到第一值;所述第三预设数量小于所述第二预设数量;
将第二预设数量个比特块中除第三预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各所述异或结果相加,得到第二值;
将所述第一值与所述第二值进行异或,得到第三值;
对所述第三值进行取模运算,得到该维对应的控制参数。
在一种可能的实施方式中,所述基于所述离散轨迹值得到混沌序列,包括:
获取待加密数据的大小,将所述混沌系统控制参数集合代入所述混沌系统;
基于预设数值迭代算法计算出所述混沌系统控制参数集合处于混沌状态时的预设数量段离散轨迹值;
将各个所述离散轨迹值取模待加密数据的大小,得到混沌序列。
在一种可能的实施方式中,所述基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到加密后的数据,包括:
计算生成元对应的生成元索引值;
针对待加密数据的每一个待处理元素,基于混沌序列、所述生成元索引值确定该元素对应的对换元素;
从离散对数矩阵中确定将待处理元素和对换对象对应的离散对数;
将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据。
在一种可能的实施方式中,所述计算生成元对应的生成元索引值,包括:
获取待加密数据的散列值;
将所述待加密数据的散列值划分为第四预设数量个比特块,得到第四目标比特块;所述第四预设数量为所述待加密数据的散列值的约数;
从所述第四目标比特块中确定该维所对应的第五预设数量个比特块,得到第五目标比特块;所述第五预设数量小于所述第四预设数量;
从所述第五目标比特块选择第六预设数量个比特块,并将所述第六预设数量个比特块两两异或,得到异或结果;将各所述异或结果相加,得到第四值;所述第六预设数量小于所述第五预设数量;
将第五预设数量个比特块中除第六预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各所述异或结果相加,得到第五值;
将所述第五值与所述第四值进行异或,得到第六值;
对所述第六值进行取模第二取模数量运算,得到生成元索引值,其中,所述第二取模数量为所述生成元的个数。
在一种可能的实施方式中,所述针对待加密数据的每一个待处理元素,基于混沌序列、所述生成元索引值确定该元素对应的对换元素,包括:
针对待处理元素x,从混沌序列Seqo中确定待处理元素x对应的混沌序列值Seqo(i);其中,不同的待处理元素x对应的混沌序列值不同;
针对待处理元素x,根据以下公式确定该元素对应的对换元素:
u=(Seqo(i)+logs(gx,Seq0(i)))mod l
其中,u为待处理元素x对应的对换元素,gx为所述生成元索引值,Seqo(i)为第o个混沌序列中与待处理元素x对应的混沌序列值,l为待加密数据向量的长度;其中,o∈{1,…,p},p为混沌序列的总个数;logs为所述生成元对应的离散对数矩阵;logs(gx,Seq0(i))为根据所述生成元索引值从离散对数矩阵中确定将待处理元素和对换元素对应的离散对数;
所述将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据,包括:
根据以下公式将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据;
imgv(x)′=(imgv(u)+logs(gx,Seq0(i)))mod SL
imgv(u)′=(imgv(x)-logs(gx,Seq0(i)))mod SL
其中,imgv(x)为待处理元素x的数据,imgv(u)为待处理元素x对应的对换元素的数据;imgv(x)′为计算后待处理元素x的数据,imgv(u)′为计算后待处理元素x对应的对换元素的数据;SL为待加密数据的亮度值的最大值。
本申请实施例还提供了一种数据加密装置,所述装置包括:
获取模块,用于获取混沌系统控制参数集合;
第一计算模块,用于基于所述混沌系统控制参数集合,计算所述混沌系统控制参数集合处于混沌状态时的离散轨迹值;
确定模块,用于基于所述离散轨迹值得到混沌序列;
第二计算模块,用于获取预设素数,并计算所述预设素数为上界的生成元;
第三计算模块,用于计算所述生成元对应的离散对数矩阵;
处理模块,用于基于所述混沌序列、离散对数矩阵对待加密数据进行置换,得到加密后的数据。
在一种可能的实施方式中,所述处理模块具体用于:
对所述待加密数据进行压缩,得到预处理明文数据;
基于所述混沌序列、离散对数矩阵对所述预处理明文数据进行置换,得到加密后的数据。
在一种可能的实施方式中,所述处理模块具体用于:
基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到第一中间密文;
对所述第一中间密文进行目标操作,得到加密后的数据;所述目标操作包括正向扩散、逆向扩散、置换中的至少一项。
在一种可能的实施方式中,所述处理模块具体用于:
对所述第一中间密文进行正向扩散,得到第二中间密文;
对所述第二中间密文进行逆向扩散,得到第三中间密文;
对所述第三中间密文进行至少一次的置换,得到加密后的数据。
在一种可能的实施方式中,所述获取模块具体用于:
获取待加密数据的散列值;
将所述待加密数据的散列值划分为第一预设数量个比特块,得到第一目标比特块;所述第一预设数量为所述待加密数据的散列值的约数;
获取混沌系统维数;
针对每一维所对应的比特块,从所述第一目标比特块中确定该维所对应的第二预设数量个比特块,得到第二目标比特块;其中,该维所对应的第二目标比特块与其他维所对应的第二目标比特块不同;所述第二预设数量小于所述第一预设数量;
针对每一维所对应的比特块,从所述第二目标比特块选择第三预设数量个比特块,并将所述第三预设数量个比特块两两异或,得到异或结果;将各所述异或结果相加,得到第一值;
将第二预设数量个比特块中除第三预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各所述异或结果相加,得到第二值;所述第三预设数量小于所述第二预设数量;
将所述第一值与所述第二值进行异或,得到第三值;
对所述第三值进行取模运算,得到该维对应的控制参数。
在一种可能的实施方式中,所述确定模块具体用于:
获取待加密数据的大小,将所述混沌系统控制参数集合代入所述混沌系统;
基于预设数值迭代算法计算出所述混沌系统控制参数集合处于混沌状态时的预设数量段离散轨迹值;
将各个所述离散轨迹值取模待加密数据的大小,得到混沌序列。
在一种可能的实施方式中,所述处理模块具体用于:
计算生成元对应的生成元索引值;
针对待加密数据的每一个待处理元素,基于混沌序列、所述生成元索引值确定该元素对应的对换元素;
从离散对数矩阵中确定将待处理元素和对换对象对应的离散对数;
将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据。
在一种可能的实施方式中,所述处理模块具体用于:
所述计算生成元对应的生成元索引值,包括:
获取待加密数据的散列值;
将所述待加密数据的散列值划分为第四预设数量个比特块,得到第四目标比特块;所述第四预设数量为所述待加密数据的散列值的约数;
从所述第四目标比特块中确定该维所对应的第五预设数量个比特块,得到第五目标比特块;所述第五预设数量小于所述第四预设数量;
从所述第五目标比特块选择第六预设数量个比特块,并将所述第六预设数量个比特块两两异或,得到异或结果;将各所述异或结果相加,得到第四值;所述第六预设数量小于所述第五预设数量;
将第五预设数量个比特块中除第六预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各所述异或结果相加,得到第五值;
将所述第五值与所述第四值进行异或,得到第六值;
对所述第六值进行取模第二取模数量运算,得到生成元索引值,其中,所述第二取模数量为所述生成元的个数。
在一种可能的实施方式中,所述处理模块具体用于:
针对待处理元素x,从混沌序列Seqo中确定待处理元素x对应的混沌序列值Seqo(i);其中,不同的待处理元素x对应的混沌序列值不同;
针对待处理元素x,根据以下公式确定该元素对应的对换元素:
u=(Seqo(i)+logs(gx,Seq0(i)))mod l
其中,u为待处理元素x对应的对换元素,gx为所述生成元索引值,Seqo(i)为第o个混沌序列中与待处理元素x对应的混沌序列值,l为待加密数据向量的长度;其中,o∈{1,…,p},p为混沌序列的总个数;logs为所述生成元对应的离散对数矩阵;logs(gx,Seq0(i))为根据所述生成元索引值从离散对数矩阵中确定将待处理元素和对换元素对应的离散对数;
根据以下公式将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据;
imgv(x)′=(imgv(u)+logs(gx,Seq0(i)))mod SL
imgv(u)′=(imgv(x)-logs(gx,Seq0(i)))mod SL
其中,imgv(x)为待处理元素x的数据,imgv(u)为待处理元素x对应的对换元素的数据;imgv(x)′为计算后待处理元素x的数据,imgv(u)′为计算后待处理元素x对应的对换元素的数据;SL为待加密数据的亮度值的最大值。
本申请实施例还提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,所述处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现上述任一所述的数据加密方法。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的数据加密方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的数据加密方法。
本申请实施例有益效果:
本申请实施例提供的数据加密方法、装置、电子设备及存储介质,获取混沌系统控制参数集合,基于混沌系统控制参数集合,计算混沌系统控制参数集合处于混沌状态时的离散轨迹值,基于离散轨迹值得到混沌序列,获取预设素数,并计算预设素数为上界的生成元,计算生成元对应的离散对数矩阵,基于混沌序列、离散对数对待加密数据进行置换,得到加密后的数据,通过配合使用离散对数,使置乱过程比单纯使用混沌序列更难以分析破解提高数据的安全性。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1a为本申请实施例提供的数据加密方法的第一种流程示意图;
图1b为本申请实施例提供的数据加密方法的第二种流程示意图;
图2为本申请实施例提供的数据加密装置的一种结构示意图;
图3为本申请实施例提供的电子设备的一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请所有实施例中涉及的术语进行说明:
混沌系统:
混沌系统是指存在貌似随机的不规则行为的确定性非线性系统。其动力学特征包括初值敏感性、轨迹长期不可预测性、自相似性、有界性、遍历性。
混沌序列:
混沌系统轨迹的离散点的集合。
生成元:
群中元素可以由最小数目个群元的乘积生成,这组群元称为该群的生成元。
离散对数:
如果对于一个整数b和质数p的一个原根a,可以找到一个唯一的指数i,使得:b=ai(mod p),其中0≤i≤p-1成立,那么指数i称为b的以a为基数的模p的离散对数。
为了实现对数据的加密,本申请实施例提供了数据加密方法、装置、电子设备、计算机可读存储介质及包含指令的计算机程序产品。
在本申请实施例中,本方案可以应用于任一可以提供数据加密服务的电子设备,例如,计算机,手机,平板、游戏控制台、便携式可穿戴设备等。本申请实施例所提供的数据加密方法可以被设置于电子设备中的软件、硬件电路和逻辑电路中的至少一种实现。
如图1a所示,图1a为本申请实施例提供的数据加密方法的第一种流程示意图,该方法包括:
S110,获取混沌系统控制参数集合;
S120,基于上述混沌系统控制参数集合,计算上述混沌系统控制参数集合处于混沌状态时的离散轨迹值;
S130,基于上述离散轨迹值得到混沌序列;
S140,获取预设素数,并计算上述预设素数为上界的生成元;
S150,计算上述生成元对应的离散对数矩阵;
S160,基于上述混沌序列、离散对数矩阵对待加密数据进行置换,得到加密后的数据。
待加密数据可以为图像也可以为文字,例如聊天记录、医学影像、商业秘密文件等各类民用领域图像及文本。本申请采用的是混沌加密算法,混沌作为一种非线性动力学过程,对初始状态具有高度敏感性,在确定了用于对待加密数据进行加密的混沌系统之后,需要确定混沌系统的初值,其中,混沌系统的初值也称为混沌系统控制参数集合。混沌系统控制参数集合根据所选用混沌系统的维数进行确定,混沌系统控制参数集中的元素个数与混沌系统的维数相等。其中,混沌系统确定之后,混沌系统的维数就是确定的。
用于数据加密的混沌系统控制参数集合可以通过以下四种途径进行获取:途径一、直接对用于数据加密的混沌系统进行前期调试,在混沌系统维持在混沌状态的情况下,得到混沌系统控制参数集合。也就是说,以确保所选的控制参数集合能使混沌系统维持在混沌状态。途径二、在确定了用于数据加密的混沌系统之后,通过另选的更为复杂的高维或高维超混沌系统,基于超混沌系统计算出的混沌序列,对混沌序列进行筛选得到混沌系统控制参数集合。途径三、获取待处理加密数据,根据待处理加密数据的散列值通过一系列计算及验证后得到混沌系统控制参数集合。途径四、基于前三种的计算结果,对前三种的计算结果进行加权计算,从而获取混沌系统控制参数集合。为了方案清楚以及布局清晰,下文结合另一实施例进行详细说明获取混沌系统控制参数集合的实现方式。
在获取了混沌系统控制参数集合之后,将混沌系统控制参数集合代入混沌系统,通过数值迭代算法进行多次的迭代计算,以计算出其处于混沌状态时的一段或多段的离散轨迹值。其中,数值迭代算法可以为四阶龙格库塔算法或其他同等或更高精度的算法,在此不作限定。为了确保不将过渡值引入混沌序列,减少暂态过程的影响,从而破坏混沌序列安全性,计算是可以按不同的混沌系统特性舍去前期预设次数的迭代值,其中预设次数可以根据实际情况进行设定,例如,舍去前300~500左右的迭代周期。
在获取了离散轨迹值之后,离散轨迹值可以组成初始的混沌序列,将初始的混沌序列中的每个离散值均取模运算,得到所需的混沌序列。例如,当待加密数据为图像时,因为图像的像素点是从0~255,一共256个值,可以将初始的混沌序列(离散轨迹值)中的各个值取模256,各个离散轨迹值取模后的结果组成所需的混沌序列,并记为Sep。
另外,本申请也可以获取多段离散轨迹值,多段离散轨迹值可以组成多个初始的混沌序列,针对每一个初始的混沌序列,将初始的混沌序列中的每个离散值均取模运算,得到各个所需的混沌序列,并记为Seqo,其中o∈{1,…,p},Seqo表示第i个混沌序列,p为得到的混沌序列的总个数。
素数为质数,素数在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。预设素数可以基于情况,一个例子中,本申请中的预设素数为大于三位数的数。
获取了预设素数之后,可以根据有限乘法群定理计算出以预设素数为上界的生成元。例如,确定,预设素数为a,根据有限乘法群定理计算出以a为上界的b个生成元。其中,b<a。
例如:选定素数为257的话,以257作为上界,对应有限乘法群在1至257(取闭区间)范围内可计算出128个生成元。
在获取生成元之后,可以基于生成元生成生成元底数。一个例子中,基于散列函数获取待加密数据的散列值,其中,散列函数可以为SHA-256、SHA-512。将散列值分为x个比特块,例如,16比特块、32比特块、64比特块等。x为待加密数据的散列值的约数。然后从x个比特块任选y个比特块作为生成元比特块,其中y<x。从y个生成元比特块选择y-k个中间生成元比特块,并将y-k个中间生成元两两异或,并将异或结果相加,得到第四值,将生成元比特块余下的k个比特块两两异或,并将异或结果相加,得到第五值,将第五值和第四值进行异或得到第六值,将第六值取模b,得到生成元底数生成元索引值。其中,k≥1。
例如,待加密数据为图像,图像的大小为256,素数为257,生成元的个数为128。将待加密数据散列值分为64个比特块,然后从64个比特块中任取32个生成元比特块作为生成元比特块,从32个生成元比特块中选择31个比特块两两异或,并将异或结果相加,得到第四值,然后将第一值和剩余的1个比特块进行异或得到第六值,将第六值取模128得到生成元索引值。
针对每一个生成元,根据离散对数定义计算生成元对应的离散对数,然后存为离散对数矩阵。
在获取混沌序列、离散对数,对待加密数据进行置换,得到加密后的数据,以消除加密数据之间的关联性。
基于混沌系统控制参数集合,计算混沌系统控制参数集合处于混沌状态时的离散轨迹值,基于离散轨迹值得到混沌序列,获取预设素数,并计算预设素数为上界的生成元,计算生成元对应的离散对数矩阵,基于混沌序列、离散对数对待加密数据进行置换,得到加密后的数据,通过配合使用离散对数,使置乱过程比单纯使用混沌序列更难以分析破解提高数据的安全性。
在一种可能的实施方式中,上述基于上述混沌序列、离散对数对上述待加密数据进行置换,得到加密后的数据,包括:
对上述待加密数据进行压缩,得到预处理明文数据;
基于上述混沌序列、离散对数对上述预处理明文数据进行置换,得到加密后的数据。
对待加密数据可以先进行压缩,得到预处理明文数据,压缩比率可按实际应用需求进行调整,在此不作限定。当待加密数据为图像时,压缩方法采用的是图像类压缩方法。当待加密数据为文本时,压缩方法须采用兼容或针对文本的压缩方法。在此不作限定。
对压缩后的所述进行加密操作可以提升后续加解密速度,及节省计算资源和必要的传输带宽。
在一种可能的实施方式中,上述基于上述混沌序列、离散对数对上述待加密数据进行置换,得到加密后的数据,包括:
基于上述混沌序列、离散对数对上述待加密数据进行置换,得到第一中间密文;
对上述第一中间密文进行目标操作,得到加密后的数据;上述目标操作包括正向扩散、逆向扩散、置换中的至少一项。
基于混沌序列、离散对数对待加密数据进行置换,得到第一中间密文,然后对第一中间密文进行正向扩散、逆向扩散、置换中的至少一项。
正向扩散可以为数据添加噪声。以待加密数据为图像为例,针对对待加密图像中每一个像素,替换为含该像素值在内与其前一个及后一个像素值之和的平均值,也可以前n个及后n个像素值之和的平均值,n的值具体可以根据实际情况进行设定,在此不作限定。针对待加密图像imgv中的每一个像素,若对该像素进行正向扩散,可以基于以下公式得到该像素处理后的信息
其中,imgv(x)为待加密图像imgv中的第x个像素的像素值,imgv(x)′为对第x个像素进行正向扩散后的像素值。若遇边界值,则边界以外的值取0,并从分母中扣除取0的个数即可。重复该过程直至遍历完待加密图像imgv中所有像素值信息,以此完成正向扩散。
逆向扩散可以去除数据中的噪声。以数据为图像为例,针对对待加密图像中每一个像素,逆向过程参见以下等式:
上式中,索引x为从imgv中第一个像素值信息的索引开始递增,索引y为从imgv中最后一个像素值信息的索引开始递减。其中x+y=n+1,其中,n为像素的总个数。重复该过程直至遍历完待加密图像imgv中所有像素值信息,以此完成逆向扩散。
若遇边界值,则边界以外的值取0,并从分母中扣除取0的个数即可重复该过程直至遍历完imgv中所有像素值信息。以此完成逆向扩散。
对中间加密密文进行置换操作时,确定不同于第一轮置换的混沌序列,基于新的混沌序列对中间加密数据进行置换,以得到加密后的数据。
例如,可以先对第一中间密文进行正向扩散,得到第二中间密文,然后对第二中间密文进行逆向扩散,得到第三中间密文,然后针对第三中间密文,可以对第三中间密文进行如上述实施例所示的至少一次置换操作,得到加密后的数据。
或者,可以先对第一中间密文进行逆向扩散,得到第二中间密文,然后对第二中间密文进行正向扩散,得到第三中间密文,然后针对第三中间密文,可以对第三中间密文进行如上述实施例所示的至少一次置换操作,得到加密后的数据。其中,针对每轮置换操作。该轮置换操作与其他轮置换操作对应的混沌序列不同。
此外,本申请也可以进行多次正向扩散、多次逆向扩散、多次置换操作,正向扩散、逆向扩散、置换操作的执行顺序可随意组合,各过程循环次数亦可根据实际需求规定,在此不作限定。
本方案配合使用离散对数,使置乱过程比单纯使用混沌序列更难以分析破解,降低选择明文攻击的成功率,而且扩散过程使用经典线性算法,大大简化了计算复杂度及潜在的大数计算溢出可能性。也就是说,利用了混沌系统与离散对数相组合的方式对加密过程中的置换混淆过程进行干预,在尽可能简化计算复杂度的前提下尽可能提高该加密系统的安全性及可实用性。
在一种可能的实施方式中,上述获取混沌系统控制参数集合,包括:
获取待加密数据的散列值;
将上述待加密数据的散列值划分为第一预设数量个比特块,得到第一目标比特块;上述第一预设数量为上述待加密数据的散列值的约数;
获取混沌系统维数;
针对每一维所对应的比特块,从上述第一目标比特块中确定该维所对应的第二预设数量个比特块,得到第二目标比特块;其中,该维所对应的第二目标比特块与其他维所对应的第二目标比特块不同;上述第二预设数量小于上述第一预设数量;
针对每一维所对应的比特块,从上述第二目标比特块选择第三预设数量个比特块,并将上述第三预设数量个比特块两两异或,得到异或结果;将各上述异或结果相加,得到第一值;上述第三预设数量小于上述第二预设数量;
将第二预设数量个比特块中除第三预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各上述异或结果相加,得到第二值;
将上述第一值与上述第二值进行异或,得到第三值;
对上述第三值进行取模运算,得到该维对应的控制参数。
先将所得的待加密数据的散列值划分为若干比特块,划分的比特块的数量可以按照实际应用进行划分。第一预设数量为上述待加密数据的散列值的约数;例如,待加密数据的散列值为256,则可以将待加密数据的散列值划分为:16比特块、32比特块、64比特块等。
例如,此处选用64比特块划分方法做说明,当选用64比特块划分方法时,每个比特块包含4比特,并对每个比特块以b1、b2、…、b64标记。然后根据所用混沌系统维数确定初始值,为简单起见,此处以一维虫口模型:
xn+1=rxn(1-xn)
r作为混沌映射的密钥参量。当参量r确定后,只有单一变量x存在,且该系统包含了混沌系统所需研究的应有的特征,不影响后续混沌序列的质量,并且不影响相应方法论向高维混沌系统的扩展。因此,对于上述模型的初值x0,选取上述比特块中的任意块数,但为使后续混沌序列的生成与待加密数据的关联性尽可能大,应使用尽可能多的比特块,同时为引入待加密数据明文关联的随机性,不宜使用全部比特块。
例如,混沌系统为一维,待加密数据为图像,图像的大小为256为例。则以使用64块中随机选择的32块比特块为例进行说明。
具体的,将待加密数据散列值分为64个比特块,然后从64个比特块中任取32个比特块,从32个比特块中选择31个比特块两两异或,并将异或结果相加,得到第一值,然后将第一值和剩余的1个比特块进行异或得到第三值,将第三值取模256得到混沌系统的初值。具体可以参见以下公式:
x0为混沌系统的初值,bi表示31个比特块中的第i个比特块,bremains为32个比特块中除31个比特块之外的其他比特块。
当混沌系统为高维时,将会有多个初值需要取得,则用于取得各初值的比特块不宜相同,但比特块序列大小须相同,例如:混沌系统的维数有a、b、c三个维度,则a维的初值a取了比特块1~15,对应比特块序列大小为15,则b和c宜从16~64中各选取15个不同比特块作为其初值生成序列。
例如,a维的初值a取了比特块1~15,b维的初值b取了比特块21~35,c维的初值c取了比特块41~55,
基于比特块生成混沌系统初值时,可以取15个不同比特块中的任意14个比特块两两异或,并将异或结果相加,对该加和与剩下的比特块进行异或,然后取模256即为求初值,即:
其中,bi表示第i个比特块。xa为a维的初值,xb为b维的初值,xc为c维的初值。
在一种可能的实施方式中,上述计算上述生成元对应的离散对数矩阵,包括:
获取待加密数据的散列值,根据离散对数算法对每一个生成元进行计算,得到生成元对应的离散对数矩阵。
例如,待加密数据的大小为256,生成元的数量为128,根据离散对数算法对每一个生成元进行计算,可以得到128×256的矩阵。可以记为logs。
在获取生成元之后,可以基于生成元生成生成元底数。一个例子中,基于散列函数获取待加密数据的散列值,其中,散列函数可以为SHA-256、SHA-512。将散列值分为x个比特块,例如,16比特块、32比特块、64比特块等。x为待加密数据的散列值的约数。然后从x个比特块任选y个比特块作为生成元比特块,其中y<x。从y个生成元比特块选择y-k个中间生成元比特块,并将y-k个中间生成元两两异或,并将异或结果相加,得到第四值,将生成元比特块余下的k个比特块两两异或,并将异或结果相加,得到第五值,将第五值和第四值进行异或得到第六值,将第六值取模b,得到生成元底数生成元索引值。其中,k≥1。
例如,待加密数据为图像,图像的大小为256,素数为257,生成元的个数为128。将待加密数据散列值分为64个比特块,然后从64个比特块中任取32个生成元比特块作为生成元比特块,从32个生成元比特块中选择31个比特块两两异或,并将异或结果相加,得到第一值,然后将第一值和剩余的1个比特块进行异或得到第三值,将第三值取模128得到生成元的索引。
gx可以作为logs查找表的行序号。
在一种可能的实施方式中,上述基于上述混沌序列、离散对数对上述待加密数据进行置换,得到加密后的数据,包括:
计算生成元对应的生成元索引值;
针对待加密数据的每一个待处理元素,基于混沌序列、上述生成元索引值确定该元素对应的对换元素;
并从离散对数矩阵中确定将待处理元素和对换对象对应的离散对数;
将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据。
待加密数据的待处理元素可以为待加密数据的全部元素,也可以是待加密数据的部分元素,具体可以基于实际进行确定。例如,确定待加密数据的待处理元素的待处理个数k,然后从待加密数据的所有元素中任意选择k个元素。或者,按照预设选取规则从待加密数据的所有元素中选择k个元素,预设选取规则可以是按照从前至后的顺序,待加密数据的所有元素中前k个元素,或者按照从前至后的顺序,待加密数据的所有元素中后k个元素,或者按照从前至后的顺序,待加密数据的所有元素中位于中间的k个元素,预设选取规则具体可以基于实际情况进行设定,在此不作限定。
针对每一个待处理元素,确定基于混沌序列、上述生成元索引值确定该元素对应的对换元素。例如,针对每一个待处理元素x,从混沌序列Seqo中确定待处理元素x对应的混沌序列值Seqo(i);其中,不同的待处理元素x对应的混沌序列值不同;基于生成元索引值,待处理元素x对应的混沌序列值Seqo(i),确定离散对数矩阵中确定将待处理元素和对换对象对应的离散对数,将待处理元素和对换对象的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,具体的,可以将对换对象的数据与离散对数进行数学运算,其中,数学运算可以为线性运算,也可以为非线性运算,例如,将对换对象的数据加离散对数,或者将对换对象的数据减去离散对数,以得到加密后的数据。
示例性的,以待加密数据为图像为例,所谓置换即对原明文图像中的像素点进行换位,换位越无规律越佳。简单来讲,比如在原明文图像中的某一像素点具有坐标值(x,y),通过置换后,该坐标原有的像素值信息便于遵循某一规则下的对应坐标(u,v)处的像素信息进行了对换。此处因使用了单一变量的混沌系统,为便于说明,我们也将图像由二维矩阵变换为一维向量记为imgv(图像向量的大小为l),因此二维坐标便退化为单值索引x及u。先给出带离散对数的置换规则参考如下:
u=(Seqo(i)+logs(gx,Seq0(i)))mod l
imgv(x)′=(imgv(u)+logs(gx,Seq0(i)))mod SL
imgv(u)′=(imgv(x)-logs(gx,Seq0(i)))mod SL
其中,其中,u为待处理元素x对应的对换元素,gx为上述生成元索引值,Seqo(i)为第o个混沌序列中与待处理元素x对应的混沌序列值,l为待加密数据向量的长度;其中,o∈{1,…,p},p为混沌序列的总个数;logs为上述生成元对应的离散对数矩阵;logs(gx,Seq0(i))为根据所述生成元索引值从离散对数矩阵中确定的待处理元素和对换元素对应的离散对数;
即先基于公式u=(Seqo(i)+logs(gx,Seq0(i)))mod l确定第一个对换目标像素值索引u,然后将x与u的像素值对换并分别加/减一个离散对数。重复该过程直至imgv中所有的像素值均恰被对换过一次。须注意的是,对每轮对换,混沌序列宜取不同值。以此完成第一轮置换/混淆。
在一种可能的实施方式中,上述计算生成元对应的生成元索引值,包括:
获取待加密数据的散列值;
将上述待加密数据的散列值划分为第四预设数量个比特块,得到第四目标比特块;上述第四预设数量为上述待加密数据的散列值的约数;
从上述第四目标比特块中确定该维所对应的第五预设数量个比特块,得到第五目标比特块;上述第五预设数量小于上述第四预设数量;
从上述第五目标比特块选择第六预设数量个比特块,并将上述第六预设数量个比特块两两异或,得到异或结果;将各上述异或结果相加,得到第四值;上述第六预设数量小于上述第五预设数量;
将第五预设数量个比特块中除第六预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各上述异或结果相加,得到第五值;
将上述第五值与上述第四值进行异或,得到第六值;
对上述第六值进行取模第二取模数量运算,得到生成元索引值,其中,上述第二取模数量为上述生成元的个数。
在一种可能的实施方式中,上述针对待加密数据的每一个待处理元素,基于混沌序列、上述生成元索引值确定该元素对应的对换元素,包括:
针对待处理元素x,从混沌序列Seqo中确定待处理元素x对应的混沌序列值Seqo(i);其中,不同的待处理元素x对应的混沌序列值不同;
针对待处理元素x,根据以下公式确定该元素对应的对换元素:
u=(Seqo(i)+logs(gx,Seq0(i)))mod l
其中,u为待处理元素x对应的对换元素,gx为上述生成元索引值,Seqo(i)为第o个混沌序列中与待处理元素x对应的混沌序列值,l为待加密数据向量的长度;其中,o∈{1,…,p},p为混沌序列的总个数;logs为上述生成元对应的离散对数矩阵;logs(gx,Seq0(i))为根据所述生成元索引值从离散对数矩阵中确定将待处理元素和对换元素对应的离散对数;
上述将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据,包括:
根据以下公式将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据;
imgv(x)′=(imgv(u)+logs(gx,Seq0(i)))mod SL
imgv(u)′=(imgv(x)-logs(gx,Seq0(i)))mod SL
其中,imgv(x)为待处理元素x的数据,imgv(u)为待处理元素x对应的对换元素的数据;imgv(x)′为计算后待处理元素x的数据,imgv(u)′为计算后待处理元素x对应的对换元素的数据;SL为待加密数据的亮度值的最大值。
在一种可能的实施方式中,上述基于上述离散轨迹值得到混沌序列,包括:
获取待加密数据的大小,将上述混沌系统控制参数集合代入上述混沌系统;
基于预设数值迭代算法计算出上述混沌系统控制参数集合处于混沌状态时的预设数量段离散轨迹值;
将各个上述离散轨迹值取模待加密数据的大小,得到混沌序列。
在获取了混沌系统控制参数集合之后,将混沌系统控制参数集合代入混沌系统,通过数值迭代算法进行多次的迭代计算,以计算出其处于混沌状态时的一段或多段的离散轨迹值。其中,数值迭代算法可以为四阶龙格库塔算法或其他同等或更高精度的算法,在此不作限定。为了确保不将过渡值引入混沌序列,减少暂态过程的影响,从而破坏混沌序列安全性,计算是可以按不同的混沌系统特性舍去前期预设次数的迭代值,其中预设次数可以根据实际情况进行设定,例如,舍去前300~500左右的迭代周期。
在获取了离散轨迹值之后,将每个离散值取模运算,例如,待加密数据为图像,图像的大小为256位,此处可以取模256,每个取出的离散轨道值序列即所需混沌序列。取模的大小可以为待加密数据的比特位数。
基于上述实施例,如图1b所示,图1b为本申请实施例提供的数据加密方法的第二种流程示意图,对待加密数据进行加密的流程如下:
获取秘密密钥和待加密数据;
其中,秘密密钥中可以包括用于生成生成元的素数,用于生成混沌系统的相关参数等以及加密的相关规则。
例如,当混沌系统的控制参数集合是通过以下途径进行获取:途径一、直接对用于数据加密的混沌系统进行前期调试,在混沌系统维持在混沌状态的情况下,得到混沌系统控制参数集合。也就是说,以确保所选的控制参数集合能使混沌系统维持在混沌状态。途径二、在确定了用于数据加密的混沌系统之后,通过另选的更为复杂的高维或高维超混沌系统,基于超混沌系统计算出的混沌序列,对混沌序列进行筛选得到混沌系统控制参数集合。的情况下,秘密密钥可以包括用于生成混沌系统的相关参数。然后加密方基于秘密密钥可以对待加密数据进行加密,解密方基于秘密密钥可以对加密数据进行解密。
例如,当混沌系统的控制参数集合是通过以下途径进行获取:途径三、获取待处理加密数据,根据待处理加密数据的散列值通过一系列计算及验证后得到混沌系统控制参数集合的情况下,秘密密钥中可以仅包括生成生成元的素数。
秘密密钥中包括的参数可以基于实际情况进行设定。在此不作限定。
对待加密数据进行适度压缩;
然后基于待加密数据,计算获取混沌系统控制参数集合;基于混沌系统控制参数集合,计算混沌系统控制参数集合处于混沌状态时的离散轨迹值;基于离散轨迹值得到第一混沌序列(混沌序列1);
基于根据有限乘法群定理计算上述预设素数为上界的生成元;计算生成元对应的离散对数矩阵,基于混沌序列1、离散对数矩阵对待加密数据进行非线性置换;得到第一中间密文;
对第一中间密文进行线性正扩散,得到第二中间密文;
对第二中间密文进行线性逆扩散,得到第三中间密文;
然后基于待加密数据,计算获取混沌系统控制参数集合;基于混沌系统控制参数集合,计算混沌系统控制参数集合处于混沌状态时的离散轨迹值;基于离散轨迹值得到第2混沌序列(混沌序列2),基于混沌序列2、离散对数矩阵对第三中间密文进行置换,得到加密后的数据。其中,第一混沌序列(混沌序列1)和第二混沌序列(混沌序列2)不同。
获取加密后的数据之后,使用加密过程的逆过程对加密后的数据进行解密,在此不再赘述。
本申请实施例还提供了一种数据加密装置,如图2所示,该装置包括:
获取模块210,用于获取混沌系统控制参数集合;
第一计算模块220,用于基于上述混沌系统控制参数集合,计算上述混沌系统控制参数集合处于混沌状态时的离散轨迹值;
确定模块230,用于基于上述离散轨迹值得到混沌序列;
第二计算模块240,用于获取预设素数,并计算上述预设素数为上界的生成元;
第三计算模块250,用于计算上述生成元对应的离散对数矩阵;
处理模块260,用于基于上述混沌序列、离散对数矩阵对待加密数据进行置换,得到加密后的数据。
在一种可能的实施方式中,上述处理模块具体用于:
对上述待加密数据进行压缩,得到预处理明文数据;
基于上述混沌序列、离散对数矩阵对上述预处理明文数据进行置换,得到加密后的数据。
在一种可能的实施方式中,上述处理模块具体用于:
基于上述混沌序列、离散对数矩阵对上述待加密数据进行置换,得到第一中间密文;
对上述第一中间密文进行目标操作,得到加密后的数据;上述目标操作包括正向扩散、逆向扩散、置换中的至少一项。
在一种可能的实施方式中,上述处理模块具体用于:
对上述第一中间密文进行正向扩散,得到第二中间密文;
对上述第二中间密文进行逆向扩散,得到第三中间密文;
对上述第三中间密文进行至少一次的置换,得到加密后的数据。
在一种可能的实施方式中,上述获取模块具体用于:
获取待加密数据的散列值;
将上述待加密数据的散列值划分为第一预设数量个比特块,得到第一目标比特块;上述第一预设数量为上述待加密数据的散列值的约数;
获取混沌系统维数;
针对每一维所对应的比特块,从上述第一目标比特块中确定该维所对应的第二预设数量个比特块,得到第二目标比特块;其中,该维所对应的第二目标比特块与其他维所对应的第二目标比特块不同;上述第二预设数量小于上述第一预设数量;
针对每一维所对应的比特块,从上述第二目标比特块选择第三预设数量个比特块,并将上述第三预设数量个比特块两两异或,得到异或结果;将各上述异或结果相加,得到第一值;上述第三预设数量小于上述第二预设数量;
将第二预设数量个比特块中除第三预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各上述异或结果相加,得到第二值;
将上述第一值与上述第二值进行异或,得到第三值;
对上述第三值进行取模运算,得到该维对应的控制参数。
在一种可能的实施方式中,上述确定模块具体用于:
获取待加密数据的大小,将上述混沌系统控制参数集合代入上述混沌系统;
基于预设数值迭代算法计算出上述混沌系统控制参数集合处于混沌状态时的预设数量段离散轨迹值;
将各个上述离散轨迹值取模待加密数据的大小,得到混沌序列。
在一种可能的实施方式中,上述处理模块具体用于:
计算生成元对应的生成元索引值;
针对待加密数据的每一个待处理元素,基于混沌序列、上述生成元索引值确定该元素对应的对换元素;
从离散对数矩阵中确定将待处理元素和对换对象对应的离散对数;
将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据。
在一种可能的实施方式中,上述处理模块具体用于:
上述计算生成元对应的生成元索引值,包括:
获取待加密数据的散列值;
将上述待加密数据的散列值划分为第四预设数量个比特块,得到第四目标比特块;上述第四预设数量为上述待加密数据的散列值的约数;
从上述第四目标比特块中确定该维所对应的第五预设数量个比特块,得到第五目标比特块;上述第五预设数量小于上述第四预设数量;
从上述第五目标比特块选择第六预设数量个比特块,并将上述第六预设数量个比特块两两异或,得到异或结果;将各上述异或结果相加,得到第四值;上述第六预设数量小于上述第五预设数量;
将第五预设数量个比特块中除第六预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各上述异或结果相加,得到第五值;
将上述第五值与上述第四值进行异或,得到第六值;
对上述第六值进行取模第二取模数量运算,得到生成元索引值,其中,上述第二取模数量为上述生成元的个数。
在一种可能的实施方式中,上述处理模块具体用于:
针对待处理元素x,从混沌序列Seqo中确定待处理元素x对应的混沌序列值Seqo(i);其中,不同的待处理元素x对应的混沌序列值不同;
针对待处理元素x,根据以下公式确定该元素对应的对换元素:
u=(Seqo(i)+logs(gx,Seq0(i)))mod l
其中,u为待处理元素x对应的对换元素,gx为上述生成元索引值,Seqo(i)为第o个混沌序列中与待处理元素x对应的混沌序列值,l为待加密数据向量的长度;其中,o∈{1,…,p},p为混沌序列的总个数;logs为上述生成元对应的离散对数矩阵;logs(gx,Seq0(i))为根据所述生成元索引值从离散对数矩阵中确定将待处理元素和对换元素对应的离散对数;
根据以下公式将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据;
imgv(x)′=(imgv(u)+logs(gx,Seq0(i)))mod SL
imgv(u)′=(imgv(x)-logs(gx,Seq0(i)))mod SL
其中,imgv(x)为待处理元素x的数据,imgv(u)为待处理元素x对应的对换元素的数据;imgv(x)′为计算后待处理元素x的数据,imgv(u)′为计算后待处理元素x对应的对换元素的数据;SL为待加密数据的亮度值的最大值。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例还提供了一种电子设备,如图3所示,包括处理器301、通信接口302、存储器303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信,
存储器303,用于存放计算机程序;
处理器301,用于执行存储器303上所存放的程序时,实现如下步骤:
获取混沌系统控制参数集合;
基于上述混沌系统控制参数集合,计算上述混沌系统控制参数集合处于混沌状态时的离散轨迹值;
基于上述离散轨迹值得到混沌序列;
获取预设素数,并计算所述预设素数为上界的生成元;
计算所述生成元对应的离散对数矩阵;
基于所述混沌序列、离散对数对待加密数据进行置换,得到加密后的数据。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据加密方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据加密方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质及包含指令的计算机程序产品而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (12)

1.一种数据加密方法,其特征在于,所述方法包括:
获取混沌系统控制参数集合;
基于所述混沌系统控制参数集合,计算所述混沌系统控制参数集合处于混沌状态时的离散轨迹值;
基于所述离散轨迹值得到混沌序列;
获取预设素数,并计算所述预设素数为上界的生成元;
计算所述生成元对应的离散对数矩阵;
基于所述混沌序列、离散对数矩阵对待加密数据进行置换,得到加密后的数据。
2.根据权利要求1所述的方法,其特征在于,所述基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到加密后的数据,包括:
对所述待加密数据进行压缩,得到预处理明文数据;
基于所述混沌序列、离散对数矩阵对所述预处理明文数据进行置换,得到加密后的数据。
3.根据权利要求1所述的方法,其特征在于,所述基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到加密后的数据,包括:
基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到第一中间密文;
对所述第一中间密文进行目标操作,得到加密后的数据;所述目标操作包括正向扩散、逆向扩散、置换中的至少一项。
4.根据权利要求3所述的方法,其特征在于,所述对所述第一中间密文进行目标操作,得到加密后的数据,包括:
对所述第一中间密文进行正向扩散,得到第二中间密文;
对所述第二中间密文进行逆向扩散,得到第三中间密文;
对所述第三中间密文进行至少一次的置换,得到加密后的数据。
5.根据权利要求1所述的方法,其特征在于,所述获取混沌系统控制参数集合,包括:
获取待加密数据的散列值;
将所述待加密数据的散列值划分为第一预设数量个比特块,得到第一目标比特块;所述第一预设数量为所述待加密数据的散列值的约数;
获取混沌系统维数;
针对每一维所对应的比特块,从所述第一目标比特块中确定该维所对应的第二预设数量个比特块,得到第二目标比特块;其中,该维所对应的第二目标比特块与其他维所对应的第二目标比特块不同;所述第二预设数量小于所述第一预设数量;
针对每一维所对应的比特块,从所述第二目标比特块选择第三预设数量个比特块,并将所述第三预设数量个比特块两两异或,得到异或结果;将各所述异或结果相加,得到第一值;所述第三预设数量小于所述第二预设数量;
将第二预设数量个比特块中除第三预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各所述异或结果相加,得到第二值;
将所述第一值与所述第二值进行异或,得到第三值;
对所述第三值进行取模运算,得到该维对应的控制参数。
6.根据权利要求1所述的方法,其特征在于,所述基于所述离散轨迹值得到混沌序列,包括:
获取待加密数据的大小,将所述混沌系统控制参数集合代入所述混沌系统;
基于预设数值迭代算法计算出所述混沌系统控制参数集合处于混沌状态时的预设数量段离散轨迹值;
将各个所述离散轨迹值取模待加密数据的大小,得到混沌序列。
7.根据权利要求1所述的方法,其特征在于,所述基于所述混沌序列、离散对数矩阵对所述待加密数据进行置换,得到加密后的数据,包括:
计算生成元对应的生成元索引值;
针对待加密数据的每一个待处理元素,基于混沌序列、所述生成元索引值确定该元素对应的对换元素;
从离散对数矩阵中确定将待处理元素和对换元素对应的离散对数;
将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据。
8.根据权利要求7所述的方法,其特征在于,所述计算生成元对应的生成元索引值,包括:
获取待加密数据的散列值;
将所述待加密数据的散列值划分为第四预设数量个比特块,得到第四目标比特块;所述第四预设数量为所述待加密数据的散列值的约数;
从所述第四目标比特块中确定该维所对应的第五预设数量个比特块,得到第五目标比特块;所述第五预设数量小于所述第四预设数量;
从所述第五目标比特块选择第六预设数量个比特块,并将所述第六预设数量个比特块两两异或,得到异或结果;将各所述异或结果相加,得到第四值;所述第六预设数量小于所述第五预设数量;
将第五预设数量个比特块中除第六预设数量个比特块之外的其他比特块两两异或,得到异或结果;将各所述异或结果相加,得到第五值;
将所述第五值与所述第四值进行异或,得到第六值;
对所述第六值进行取模第二取模数量运算,得到生成元索引值,其中,所述第二取模数量为所述生成元的个数。
9.根据权利要求8所述的方法,其特征在于,所述针对待加密数据的每一个待处理元素,基于混沌序列、所述生成元索引值确定该元素对应的对换元素,包括:
针对待处理元素x,从混沌序列Seqo中确定待处理元素x对应的混沌序列值Seqo(i);其中,不同的待处理元素x对应的混沌序列值不同;
针对待处理元素x,根据以下公式确定该元素对应的对换元素:
u=(Seqo(i)+logs(gx,Seq0(i)))mod l
其中,u为待处理元素x对应的对换元素,gx为所述生成元索引值,Seqo(i)为第o个混沌序列中与待处理元素x对应的混沌序列值,l为待加密数据向量的长度;其中,o∈{1,...,p},p为混沌序列的总个数;logs为所述生成元对应的离散对数矩阵;logs(gx,Seq0(i))为根据所述生成元索引值从离散对数矩阵中确定将待处理元素和对换元素对应的离散对数;
所述将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据,包括:
根据以下公式将待处理元素和对换元素的数据进行对换,并基于确定得到的离散对数对对换后的元素的数据进行计算,以得到加密后的数据;
imgv(x)′=(imgv(u)+logs(gx,Seq0(i)))mod SL
imgv(u)′=(imgv(x)-logs(gx,Seq0(i)))mod SL
其中,imgv(x)为待处理元素x的数据,imgv(u)为待处理元素x对应的对换元素的数据;imgv(x)′为计算后待处理元素x的数据,imgv(u)′为计算后待处理元素x对应的对换元素的数据;SL为待加密数据的亮度值的最大值。
10.一种数据加密装置,其特征在于,所述装置包括:
获取模块,用于获取混沌系统控制参数集合;
第一计算模块,用于基于所述混沌系统控制参数集合,计算所述混沌系统控制参数集合处于混沌状态时的离散轨迹值;
确定模块,用于基于所述离散轨迹值得到混沌序列;
第二计算模块,用于获取预设素数,并计算所述预设素数为上界的生成元;
第三计算模块,用于计算所述生成元对应的离散对数矩阵;
处理模块,用于基于所述混沌序列、离散对数矩阵对待加密数据进行置换,得到加密后的数据。
11.一种电子设备,其特征在于,包括:
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9任一所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一所述的方法。
CN202311434478.0A 2023-10-31 2023-10-31 一种数据加密方法、装置、电子设备及存储介质 Pending CN117240434A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311434478.0A CN117240434A (zh) 2023-10-31 2023-10-31 一种数据加密方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311434478.0A CN117240434A (zh) 2023-10-31 2023-10-31 一种数据加密方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117240434A true CN117240434A (zh) 2023-12-15

Family

ID=89091399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311434478.0A Pending CN117240434A (zh) 2023-10-31 2023-10-31 一种数据加密方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117240434A (zh)

Similar Documents

Publication Publication Date Title
Ye et al. An efficient symmetric image encryption algorithm based on an intertwining logistic map
Gao et al. A 3D model encryption scheme based on a cascaded chaotic system
CN110086601B (zh) 基于像素值关联的约瑟夫遍历和超混沌系统图像加密方法
Ahmad et al. An image encryption algorithm based on new generalized fusion fractal structure
Hanis et al. Double image compression and encryption scheme using logistic mapped convolution and cellular automata
Kumar et al. IEHC: An efficient image encryption technique using hybrid chaotic map
Rohith et al. Image encryption and decryption using chaotic key sequence generated by sequence of logistic map and sequence of states of Linear Feedback Shift Register
Mandal et al. Symmetric key image encryption using chaotic Rossler system
US20090296928A1 (en) Pseudorandom number generating system, encryption system, and decryption system
Ghebleh et al. A novel image encryption algorithm based on piecewise linear chaotic maps and least squares approximation
CN107330338B (zh) 基于双混沌交叉扩散的彩色图像加密和解密方法及系统
CN108199828B (zh) 一种彩色图片加密方法及装置
CN110086600B (zh) 一种基于超混沌系统和变步长约瑟夫问题的图像加密方法
CN112202545B (zh) 基于y型填充曲线和变步长约瑟夫遍历的图像加密方法
CN109361830B (zh) 一种基于明文的图像加密方法
Du et al. IWT and RSA based asymmetric image encryption algorithm
Ye et al. Asymmetric image encryption scheme based on the Quantum logistic map and cyclic modulo diffusion
Kang et al. Fast image encryption algorithm based on (n, m, k)-PCMLCA
Murugan et al. A hybrid image encryption algorithm using chaos and Conway's game‐of‐life cellular automata
Wen et al. Triple-image bit-level encryption algorithm based on double cross 2D hyperchaotic map
Ma et al. Fast quantum image encryption scheme based on multilayer short memory fractional order Lotka-Volterra system and dual-scale triangular map
SundaraKrishnan et al. A symmetric key multiple color image cipher based on cellular automata, chaos theory and image mixing
CN112272082B (zh) 图像加密/解密的方法及装置、电子设备、存储介质
Abutaha et al. Design of a pseudo-chaotic number generator as a random number generator
Reyad et al. Pseudo-random sequence generation from elliptic curves over a finite field of characteristic 2

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