本公开的实施例提供了一种对称加密方法、装置、设备和存储介质。所述加密方法包括获取待加密明文二进制数组input;使用密钥二进制数组key对所述待加密明文二进制数组input进行异或加密,生成密文二进制数组output;根据所述待加密明文二进制数组input得到随机数b;根据所述随机数b对所述密文二进制数组output进行奇偶性随机混合,得到奇偶性随机混合加密结果二进制数组output′。以此方式,利用了大容量密钥、异或数据加密和基于异或奇偶性的数据乱序算法,能够在保证数据安全性的前提下,提高加解密运算速度。
A symmetric encryption method, device, device and storage medium
【技术实现步骤摘要】
一种对称加密方法、装置、设备和存储介质
本公开的实施例一般涉及对称加密领域,并且更具体地,涉及一种对称加密方法、装置、设备和存储介质。
技术介绍
目前市面上常用的对称加密算法有以下几种:名称密钥长度(bit)运算速度安全性资源消耗DES56较快低中3DES112/168慢中高AES128、192、256位快高低使用AES或相关对称加密算法,这些算法主要的目标是基于安全性的而不是效率。现有技术在绝大部分场景下都可以满足需求,但是在对性能特别敏感的设备上有性能问题,如IOT设备,带有操作系统的网络通信设备等。在这些设备中,数据加密往往会影响其数据通信速度,而降低密钥长度,又会影响安全性。
技术实现思路
根据本公开的实施例,提供了一种对称加解密方案。在本公开的第一方面,公开了一种对称加密方法。所述方法包括获取待加密明文二进制数组input;使用密钥二进制数组key对所述待加密明文二进制数组input进行异或加密,生成密文二进制数组output;根据所述待加密明文二进制数组input得到随机数b;根据所述随机数b对所述密文二进制数组output进行奇偶性随机混合,得到奇偶性随机混合加密结果二进制数组output′。在本公开的第二方面,公开了一种对称解密方法。所述方法包括接收奇偶性随机混合加密结果二进制数组output′;根据所述奇偶性随机混合加密结果二进制数组output′与密钥二进制数组key,得到随机数b;根据所述二进制数组output′、密钥二进制数组key和所述随机数b进行异或,得到明文二进制数据input。在本公开的第三方面,公开了一种对称加密装置。所述装置包括获取模块,用于获取待加密明文二进制数组input;异或加密模块,用于使用密钥二进制数组key对所述待加密明文二进制数组input进行异或加密,生成密文二进制数组output;随机数获取模块,用于根据所述待加密明文二进制数组input得到随机数b;奇偶性随机混合模块,用于根据所述随机数b对所述密文二进制数组output进行奇偶性随机混合,得到奇偶性随机混合加密结果二进制数组output′。在本公开的第四方面,公开了一种对称解密装置。所述装置包括接收模块,用于接收奇偶性随机混合加密结果二进制数组output′;随机数获取模块,用于根据所述奇偶性随机混合加密结果二进制数组output′与密钥二进制数组key,得到随机数b;解密模块,用于根据所述二进制数组output′、密钥二进制数组key和所述随机数b进行异或,得到明文二进制数据input。在本公开的第五方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。在本公开的第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开如上所述的方法。应当理解,
技术实现思路
部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。附图说明结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:图1示出了根据本公开的实施例的对称加密方法的流程图;图2示出了根据本公开的实施例的对称加密方法中得到随机数b的流程图;图3示出了根据本公开的实施例的对称解密方法的流程图;图4示出了根据本公开的实施例的对称解密方法中得到随机数b的流程图;图5示出了根据本公开的实施例的对称加密装置的方框图;图6示出了根据本公开的实施例的对称解密装置的方框图;图7示出了根据本公开的实施例的对称加密/解密设备的方框图。具体实施方式为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。本公开中,该方法利用了大容量密钥、异或数据加密和基于异或奇偶性的数据乱序算法等设计思想,能够在保证数据安全性的前提下,实现几十倍于传统AES的加解密性能。异或(XOR),符号为⊕,对两个位b1和b2,进行异或操作有以下四种情况:b1b2b1⊕b2000011101110即两个位相同时取0,不同时取1。以上是位操作,当扩展到字节时,即8个位时,由于各个位独立,所以同样满足以上计算规则。定义求1函数One(b),表示字节b中1的个数。定义奇偶函数Parity(b)用于求数的奇偶性,定义PO(b)=Parity(One(b)),用于求字节b中1的个数的奇偶性,称之为字节的超奇偶性。根据以上定义,有一个重要超奇偶性结论:若a⊕b=c,那么PO(a)⊕PO(b)=PO(c),即两个字节的异或结果与他们的超奇偶性的异或结果一致。图1示出了根据本公开的实施例的对称加密方法100的流程图。如图1所示,所述对称加密方法具体包括如下步骤:在框110,获取待加密明文二进制数组input;在一些实施例中,所述待加密明文可以是任意类型文件,如字符串、图片、视频对应的二进制数组。若所述待加密明文为非二进制数组格式,则对所述待加密明文进行预处理,转换为二进制数组格式。以所述待加密明文原字符串为“Hello,密码学”为例,其对应的ASCII码十进制数组为[72,101,108,108,111,44,229,175,134,231,160,129,229,173,166],字节长度为15。在框120,使用密钥二进制数组key对所述待加密明文二进制数组input进行异或加密,生成密文二进制数组output;在一些实施例中,所述密钥可以是从任意类型文件中获取并设定的,若所述预设加密算法的密钥为非二进制数组,将所述密钥转换为二进制数组进行处理。本文档来自技高网...
【技术保护点】
1.一种对称加密方法,其特征在于,包括:/n获取待加密明文二进制数组input;/n使用密钥二进制数组key对所述待加密明文二进制数组input进行异或加密,生成密文二进制数组output;/n根据所述待加密明文二进制数组input得到随机数b;/n根据所述随机数b对所述密文二进制数组output进行奇偶性随机混合,得到奇偶性随机混合加密结果二进制数组output′。/n
【技术特征摘要】
1.一种对称加密方法,其特征在于,包括:
获取待加密明文二进制数组input;
使用密钥二进制数组key对所述待加密明文二进制数组input进行异或加密,生成密文二进制数组output;
根据所述待加密明文二进制数组input得到随机数b;
根据所述随机数b对所述密文二进制数组output进行奇偶性随机混合,得到奇偶性随机混合加密结果二进制数组output′。
2.根据权利要求1所述的对称加密方法,其特征在于,所述使用密钥二进制数组key对所述待加密明文二进制数组input进行异或加密包括:
若所述密钥二进制数组key的长度大于/等于待加密明文二进制数组input的长度;则output[i]=input[i]⊕key[i];
若所述密钥的长度小于待加密的明文长度;则output[i]=input[i]⊕key[i%length(key)];
其中,i表示第i个元素,i∈[0,length(input)),函数length()表示输入的字节长度。
3.根据权利要求2所述的对称加密方法,其特征在于,根据所述待加密明文二进制数组input得到随机数b包括:
按照预设规则获取二进制数组input的N个字节的超奇偶性,生成二进制数并转换为十进制数;N为大于等于1的正整数;
根据所述十进制数的值对所述二进制数组input的字节长度取余,根据余数定位二进制数组input中的字节,从该定位字节连续取8个字节,根据所取的8个字节的超奇偶性,生成二进制数并转换为十进制数,作为所述随机数b。
4.根据权利要求3所述的对称加密方法,其特征在于,若所述随机数b的超奇偶性取值为奇数,则通过预设算法对其进行变化,使其超奇偶性取值为偶数。
5.一种对称解密方法,其特征在于,包括:
接收奇偶性随机混合加密结果二进制数组output′;
根据所述奇偶性随机混合加密结果二进制数组output′与密钥二进制数组ke...
【专利技术属性】
技术研发人员:沈传宝,郝伟,
申请(专利权)人:北京华云安信息技术有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。