本发明专利技术提供一种数据加密方法及数据加密系统,该方法包括掩盖数组生成步骤:选取混沌系统的函数,并根据混沌系统的函数生成混沌序列,应用混沌序列生成掩盖数组;数据分块步骤:对需要加密的数据划分为多个数据块;加密步骤:应用掩盖数组与每一数据块进行逻辑运算。该系统包括掩盖数组生成单元,用于选取混沌系统的函数,并根据混沌系统的函数生成混沌序列,并应用混沌序列生成掩盖数组;数据分块单元,用于对需要加密的数据划分为多个数据块;加密单元,应用掩盖数组与多个数据块进行逻辑运算。本发明专利技术能方便地对被加密数据的一部分数据进行解密,且提高数据加密的效率,增加被加密数据破解的难度,提高被加密数据的安全性。
【技术实现步骤摘要】
本专利技术涉及数据处理领域,尤其涉及一种应用混沌系统对数据进行加密的方法及系统。
技术介绍
随着计算机技术的发展,人们普遍使用计算机进行数据的存储、传输。但不少存储、传输的数据具有保密要求,因此需要对存储、传输的数据进行加密处理,以避免存储、传输的数据被非法获取、阅读。现有的数据加密方法中有使用混沌系统对数据进行加密的,使用混沌系统对数据进行加密时,首先选取一个混沌系统的函数,并选取该函数的初始值以及系统参数,对初始值及系统参数对该函数进行验证,确保使用该初始值及系统参数的该函数能够使混沌系统进入混沌状态。然后,应用选取的初始值、系统参数代入函数中,计算一个一维数组构成的混沌序列,使用混沌序列计算生成掩盖数组。应用混沌序列计算掩盖数组的方法多种多样, 例如取混沌序列中每一数据的特定几位数字作为掩盖数组的对应数据,或者对混沌序列的每一数据进行逻辑运算,获得掩盖数组对应数据等。通常,掩盖数组的每一数据均为一个字节大小的数据,应用掩盖数组与需要加密的数据进行逻辑运算,例如将掩盖数组的一个字节的数据与需要加密数据的一个字节的数据进行加法运算、减法运算、异或运算、同或运算等,即可得到加密后的数据。这种加密方法是对需要加密的数据进行整体地加密,当需要解密并获取其中一部分数据时,则需要对所有的数据解密后才能获得相应的数据,导致在嵌入式系统中数据解密的效率低下。此外,由于使用混沌序列对需要加密的数据进行整体加密,因此,需要对混沌系统的函数进行多次迭代运算以计算数据量较多的混沌序列,造成嵌入式系统的运算量较大,导致数据加密效率低下。并且,使用单一的混沌系统生成掩盖数组,容易导致掩盖数组出现周期性,降低加密数据被破解的难度,影响被加密数据的安全性,且掩盖数组与被加密数据的逻辑运算方法单一,也降低被加密数据破解的难度。而现有一些图像加密方法中也应用混沌系统进行加密,该加密方法是将需要加密的图像分成多个子图像块,然后应用混沌系统生成混沌序列,并应用混沌序列生成一个主遍历矩阵,应用主遍历矩阵对多个子图像块进行置乱加密。但是,上述方法仅能针对图像进行加密处理,且是通过对子图像块进行置乱实现加密,被破解难度较小,也不适用于普通文本数据的加密,应用领域较窄。
技术实现思路
本专利技术的主要目的是提供一种方便对被加密数据的部分数据进行解密的数据加密方法。本专利技术的另一目的是提供一种增加被加密数据破解难度的数据加密方法。本专利技术的再一目的上提供一种对数据加密效率较高的数据加密系统。为了实现上述的主要目的,本专利技术提供的数据加密方法包括掩盖数组生成步骤 选取混沌系统的函数,并根据混沌系统的函数生成混沌序列,应用混沌序列生成掩盖数组; 数据分块步骤对需要加密的数据划分为多个数据块;加密步骤应用掩盖数组与每一数据块进行逻辑运算。由上述方案可见,对需要加密的数据划分成多个数据块并分别对每一数据块进行加密处理,需要对被加密数据的某一部分数据进行解密时,仅需要对该数据块进行单独地解密即可,无需对所有的被加密数据进行解密,方便对被加密数据的部分数据进行解密操作。并且,将需要加密的数据进行分块,可减少生成的混沌序列的长度,从而减少嵌入式系统的运算量,提高数据加密的效率。一个优选的方案是,生成混沌序列的步骤包括选取混沌系统的函数后,选取确保混沌系统能够进入混沌状态的多个可选系统参数,确定一个密钥数据,根据密钥数据选取函数的初始值及系统参数,被选取的系统参数为多个可选系统参数中的至少一个,应用所选取的系统参数及初始值迭代运算生成混沌序列。由此可见,通过密钥选取初始值及系统参数,能够增加初始值及系统参数的随机性,从而可灵活方便地改变混沌序列以及掩盖数组的数据,增加被加密数据破解的难度。进一步的方案是,生成掩盖数组后,对掩盖数组进行周期性检测,判断掩盖数组是否出现周期,若出现周期,重新选取函数的初始值和/或系统参数,重新生成掩盖数组后再次进行周期性检测,直至判断所生成的掩盖数组不再出现周期。可见,对生成的掩盖数组进行周期性检测,能够避免掩盖数组出现周期性,从而增加被加密数据被破解的难度。为实现上述的再一目的,本专利技术提供的数据加密系统包括掩盖数组生成单元,用于选取混沌系统的函数,并根据混沌系统的函数生成混沌序列,并应用混沌序列生成掩盖数组;数据分块单元,用于对需要加密的数据划分为多个数据块;加密单元,应用掩盖数组与多个数据块进行逻辑运算。由上述方案可见,对需要加密的数据进行分块,能够方便地对被加密数据的一部分数据进行解密,并且对数据分块后,每一数据块的长度较短,所需的混沌序列也较短,嵌入式系统生成的混沌序列的效率较高,提高了数据加密的效率。一个优选的方案是,所述掩盖数组生成单元包括有可选系统参数计算模块,用于计算确保混沌系统能够进入混沌状态的多个可选系统参数;密钥计算模块,用于计算并确定一个密钥数据;混沌序列生成模块,根据密钥数据选取函数的初始值及系统参数,被选取的系统参数为多个可选系统参数中的至少一个,应用取的系统参数及初始值迭代运算生成混沌序列;掩盖数组生成模块,根据混沌序列计算生成掩盖数组。由此可见,数据加密系统通过密钥数据选取混沌系统的系统参数及初始值,能够增加系统参数及初始值的随机性,使生成的混沌序列具有随机性,增加被加密数据的破解难度,从而提高被加密数据的安全性。附图说明图1是本专利技术数据加密系统实施例的框图。图2是本专利技术数据加密方法实施例的流程图。以下结合附图及实施例对本专利技术作进一步说明。具体实施例方式本专利技术的数据加密方法以及数据加密系统应用在嵌入式系统中,用于对文本、音频、视频、图像等各种数据进行加密。被加密的数据通常由多个字节组成,每一字节由十六位二进制数组成。参见图1,数据加密系统由掩盖数组生成单元10、数据分块单元20以及加密单元 30组成,其中掩盖数生成单元10用于应用混沌系统生成掩盖数组,其具有可选系统参数生成模块11、密钥计算模块12、混沌序列生成模块13、掩盖数组生成模块14以及周期性检测模块15,下面结合数据加密方法对数据加密系统的各个单元、模块的功能进行描述。参见图2,对需要加密的数据进行加密前,首先由掩盖数组生成单元生成一个掩盖数组,掩盖数组用于与需要加密的数据进行逻辑运算,也就是对需要加密的数据进行“掩盖”,防止需要加密的数据被识别出。本实施例的掩盖数组是应用混沌系统生成的混沌序列来生成的,由于混沌序列具有不规则性、随机性的特点,使用混沌序列生成掩盖数组能够增加被加密数据破解的难度, 保障被加密数据的安全性。生成掩盖数组首先需要执行步骤Si,选取混沌系统的函数,本实施例中,选取的函数是混沌系统最常见的函数y = k χ χ χ (l - χ)(式 1)其中k是混沌系统的系统参数,χ是变量,y是混沌系统的输出值,每计算一次后,将计算出的输出值y代入式1中作为新的变量χ,不断迭代计算出一系列的输出值,从而形成一个混沌序列。对于混沌系统的函数,并不是选取任意的系统参数都可以使混沌系统进入混沌状态,因此,需要由可选系统参数生成模块选取合适的系统参数及初始值,确保混沌系统能够进入混沌状态。例如,式1中,选取初始值X为0. 1,经过计算,当系统参数k取3. 792393时能够使混沌系统进入混沌状态,则3. 792393为一个可选的系统参数。本文档来自技高网...
【技术保护点】
1.数据加密方法,包括掩盖数组生成步骤:选取混沌系统的函数,并根据所述混沌系统的函数生成混沌序列,应用所述混沌序列生成掩盖数组;其特征在于:数据分块步骤:对需要加密的数据划分为多个数据块;加密步骤:应用所述掩盖数组与每一所述数据块进行逻辑运算。
【技术特征摘要】
【专利技术属性】
技术研发人员:陈文君,
申请(专利权)人:深圳芯智汇科技有限公司,
类型:发明
国别省市:94
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。