具有对称加密和无损压缩的编码方法、装置、设备及介质与流程

文档序号:26840703发布日期:2021-10-08 22:31阅读:179来源:国知局
具有对称加密和无损压缩的编码方法、装置、设备及介质与流程

1.本发明涉及数据编码技术领域,特别涉及一种具有对称加密和无损压缩的编码方法、装置、设备及介质。


背景技术:

2.无损压缩算法(熵编码)已经被广泛应用于通信、存储等技术领域,常见的无损压缩算法有行程编码,字典编码,哈夫曼编码以及算术编码(区间编码)等。对称加密算法作为信息安全的核心工具,也被广泛应用于通信、交易、支付以及数据脱敏等领域,常见的对称加密算法有des(data encryption standard,数据加密标准),aes(advanced encryption standard,高级加密标准),blowfish(一个对称加密块算法)等。
3.在系统应用中,无损压缩算法无法实现高强度对称加密,对称加密算法无法实现良好的压缩效果,对称加密和无损压缩均为信源编码,这类算法一般采用独立级联应用,因数据需通过先后两种算法的编译码,所以需两种算法的硬件资源和运算能耗。大数据环境下,对称加密和无损压缩采用算法内联可减少硬件资源和运算能耗。基于算术编码加密方法是一种算法内联方法,然而该方法编码数据中某一符号时通过混沌映射成另一符号,因映射方法确定,所以必然改变了原有数据的信息熵,使得压缩效果无法确定。


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题。为此,本发明提出一种具有对称加密和无损压缩的编码方法、装置、设备及介质,无损压缩可达信息熵,具备高强度的对称加密,既能保障信息安全,又能有效降低硬件资源和运算要求。
5.本发明的第一方面,提供了一种具有对称加密和无损压缩的编码方法,包括以下步骤:
6.获取第一二进制序列,所述第一二进制序列至少包括原始明文;
7.对所述第一二进制序列进行分段交换,得到第二二进制序列;
8.随机生成二进制二维表,从所述二进制二维表中查找与所述第二二进制序列中第i位符号x
i
对应的比特值,基于所述比特值构建非线性轮函数r(i);
9.构建以所述r(i)、和作为编码参数的加权概率模型,根据所述加权概率模型按照编码公式和对所述第二二进制序列进行编码,直至编码完所述第二二进制序列中所有符号,并将编码完所述第二二进制序列中最后一位符号得到的值,作为编码结果;其中,所述所述c表示所述第二二进制序列中符号0的个数,所述n表示所述第二二进制序列的序列长度,所述表示符号0的加权概率质量函数,所述表示符号1的加权概率质量函数,所述l
i
和所述r
i
表示编码变量,所述l
i
和所述r
i
的初始值分别为0和1,所述表示所述第二二进制序
列中第i位符号x
i
的加权概率质量函数。
10.本发明的第二方面,提供了一种具有对称加密和无损压缩的编码装置,包括:
11.数据获取单元,用于获取第一二进制序列,所述第一二进制序列至少包括原始明文;
12.分段交换单元,用于对所述第一二进制序列进行分段交换,得到第二二进制序列;
13.轮函数生成单元,用于随机生成二进制二维表,从所述二进制二维表中查找与所述第二二进制序列中第i位符号x
i
对应的比特值,基于所述比特值构建非线性轮函数r(i);
14.数据编码单元,用于构建以所述r(i)、和作为编码参数的加权概率模型,根据所述加权概率模型按照编码公式l
i
=l
i
‑1+和对所述第二二进制序列进行编码,直至编码完所述第二二进制序列中所有符号,并将编码完所述第二二进制序列中最后一位符号得到的值,作为编码结果;其中,所述所述c表示所述第二二进制序列中符号0的个数,所述n表示所述第二二进制序列的序列长度,所述表示符号0的加权概率质量函数,所述表示符号1的加权概率质量函数,所述l
i
和所述r
i
表示编码变量,所述l
i
和所述r
i
的初始值分别为0和1,所述表示所述第二二进制序列中第i位符号x
i
的加权概率质量函数。
15.本发明的第三方面,提供了一种具有对称加密和无损压缩的编码设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行本发明的第一方面所述的具有对称加密和无损压缩的编码方法。
16.本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本发明的第一方面所述的具有对称加密和无损压缩的编码方法。
17.根据本发明的实施例,至少具有如下技术效果:
18.本发明实施例兼具对称加密和无损压缩双重功能,通过对二进制序列进行分段交换编码(分段交换之后再基于加权概率模型进行编码)并构建非线性轮函数作为加权概率模型的加权系数,然后基于加权概率模型进行编码,实现了对数据的无损压缩和对称加密,从数学模型上实现算法的内联,而且消除了线性相关性,能够抵御线性攻击和差分攻击。因分段交换编码不会改变数据中各符号的概率,加权系数为编码时的计算变量同样不改变数据中各符号的概率,使得数据的信息熵不会改变,相较于目前主流的熵编码和对称加密算法,本发明实施例无损压缩可达信息熵,兼具高强度的对称加密,能有效降低硬件资源和运算能耗。而且本发明实施例每个符号编码所使用的加权系数因非线性轮函数变化,使得加权概率模型编码后的长度具有随机性,未来可广泛应用于信息安全、数据存储和传输领域。
19.本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
20.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
21.图1为本发明提供的二元加权模型的编码运算过程的示意图;
22.图2为本发明一个实施例提供的一种二进制二维表的示意图;
23.图3为本发明一个实施例提供的一种具有对称加密和无损压缩的编码方法的流程示意图;
24.图4为本发明一个实施例提供的一种具有对称加密和无损压缩的编码装置的结构示意图。
具体实施方式
25.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
26.原理部分;
27.在介绍本发明实施例之前,先对本发明的原理进行介绍:
28.第一、加权概率模型;
29.令信源序列x=(x1,x2,

,x
i
,

,x
n
)是有限个值或可数个可能值的离散序列,x
i
∈a={0,1,2,

,k}。于是对于a中一切数值有概率空间:
[0030][0031]
由于随机过程必须转移到某个符号,所以在任意时刻有:
[0032][0033]
于是,任意符号x
i
的分布函数为:
[0034][0035]
其中,p(0)≤f(x)≤1,s∈a。
[0036]
定义1:设离散随机变量x,x∈a={0,1,

,k},p{x=a}=p(a)(a∈a),加权概率质量函数为p(a)为的概率质量函数,0≤p(a)≤1,r为权系数,且:
[0037]
f(a)=∑
i≤a
p(i)
ꢀꢀ
(2)
[0038]
若f(a,r)满足f(a,r)=rf(a),则称f(a,r)为加权累积分布函数,简称加权分布函数。显然,所有符号的加权概率之和为
[0039]
令离散信源序列x=(x1,x2,

,x
n
),x
i
∈a,且令f(x
i

1)=f(x
i
)

p(x
i
),序列x的加权分布函数记为f(x,r)。当n=1时:
[0040]
f(x,r)=rf(x1‑
1)+rp(x1)
[0041]
当n=2时:
[0042]
f(x,r)=rf(x1‑
1)+r2f(x2‑
1)p(x1)+r2p(x1)p(x2)
[0043]
当n=3时:
[0044]
f(x,r)=rf(x1‑
1)+r2f(x2‑
1)p(x1)+r3f(x3‑
1)p(x1)p(x2)
[0045]
+r3p(x1)p(x2)p(x3)
[0046]
令类推得:
[0047][0048]
将满足式(3)的加权分布函数的集合定义为加权概率模型,简称加权模型,记为{f(x,r)}。若x
i
∈a={0,1},则称{f(x,r)}为二元加权模型。令:
[0049]
h
n
=f(x,r)
ꢀꢀ
(4)
[0050][0051]
l
n
=h
n

r
n
ꢀꢀ
(6)
[0052]
其中x
i
∈a,n=1,2,

。当r=1时:
[0053][0054]
由式(4)(5)(6)可得h
n
=f(x,1),即区间编码(算术编码)是基于r=1时加权分布函数的无损编码方法。
[0055]
因x
i
必须取a中的值,所以p(x
i
)>0。显然式(4)(5)(6)为区间列,[l
i
,h
i
)是信源序列x在时刻i(i=0,1,2,

,n)变量x
i
对应的区间上下标,r
i
=h
i

l
i
是区间的长度。根据式(4)(5)(6),设i=0时r0=h0=1,l0=0,于是i=1,2,

,n时加权概率模型编码运算式为:
[0056][0057]
通过式(8)(需要注意的是,式(8)包含上述三个公式)对信源序列x进行加权概率模型编码运算,l
n
为实数,是加权概率模型编码结果。l
n
通过进制转换得到二进制序列。以二进制序列为例,令0<r≤1且序列x从i+1位置开始的3个符号为0,1,0。根据式(8)加权模型的编码运算过程如图1所示。
[0058]
根据图1,若h
i+3
>h
i+1
,因区间[h
i+1
,h
i+3
)∈[h
i+1
,h
i+1
+r
i+1
),且[h
i+1
,h
i
+r
i
)与符号1对应,所以第i+1个符号0可能被错误译码为符号1。若h
i+3
≤h
i+1
,则[l
i+3
,h
i+3
)∈[l
i+1
,h
i+1
)。如图1中[l
i+1
,h
i+1
)与符号0唯一对应,所以i+1位置上的符号0被l
i+3
正确译码,且i+2和i+3位置上的符号1和符号0也能正确译码。当0<r≤1时,任意时刻都有[l
i+1
,h
i+1
)∈[l
i
,h
i
),可无损译码。
[0059]
第二、无损译码证明;
[0060]
定理2:加权模型满足:
[0061]
1、l
n
<h
n
∧l
n
<h
n
‑1∧...∧l
n
<h1,通过l
n
可完整还原序列q;2、lim
n


(h
n

l
n
)=0,即收敛性;3、lim
n


h
n
=l
n
,即唯一性。
[0062]
证明1、根据式(8),l
n
为单调不减函数,当且仅当l
n
∈[l
n
,h
n
)∧l
n
∈[l
n
‑1,h
n
‑1)∧...∧l
n
∈[l1,h1)时,因[l
i
,h
i
)(i=1,2,

,n)与变量x
i
为唯一映射关系,所以当l
n
∈[l
i
,h
i
)(i=1,2,

,n)时得出唯一的符号x
i
,从而完整得出信源序列x,于是l
n
<h
n
∧l
n
<h
n
‑1∧...
∧l
n
<h1。证明2、根据式(5),0<r≤1且0≤p(x
i
)≤1,当信源序列x={x
i
=a}且r=1时p(a)=1,r
n
=1,l
b

f(a,r)=h
n
,于是h
n

l
n

0。当0<p(x
i
)<1且0<r≤1时0<rp(x
i
)<1,r
n

0,因h
n

l
n
=r
n
,所以h
n

l
n

0。所以n

∞时lim
l


(h
l

l
l
)=lim
l


r
l
=0,加权概率模型是收敛的。证明3、{l
n
}是严格单调不减且有上界的数列,由单调有界定理,设lim
n


l
n
=ξ,且ξ≥l
n
。因为lim
n


(h
n

l
n
)=0,所以lim
n


l
n
=lim
n


h
n
=ξ,所以以ξ=l
n
,lim
n


h
n
=ξ=l
n
,且l
n
是唯一的。
[0063]
第三、加权概率模型信息熵;
[0064]
设离散无记忆信源序列x=(x1,x2,

,x
n
)(x
i
∈a,a={0,1,2,

,k}),当r=1时,由香农信息熵定义,x的熵为:
[0065][0066]
当r≠1时,定义具有概率的随机变量x
i
的自信息量为:
[0067]
i(x
i
)=

log
k+1
p(x
i
)
ꢀꢀ
(10)
[0068]
设集合{x
i
=a}(i=1,2,

,n,a∈a)中有c
a
个a。当r的值确定,信源序列x的总信息量为:
[0069][0070]
于是平均每个符号的信息量为:
[0071][0072]
定义3:令h(x,r)为:
[0073][0074]
第四:非线性的分段交换运算和加权系数的轮函数;
[0075]
根据式(8)可得序列x的权系数r。若r不随i(i=1,2,

,m2)变化,则称r为静态加权系数;若r随i变化,则称r为动态加权系数,记为r(i)。根据定理2可得当0<r≤1时加权概率模型可无损编译码,又根据定义3可得当r

1时,

logr

0,于是h(x,r)

h(x)。显然,基于动态加权系数r(i),当0<r(i)≤1且r(i)

1时加权概率模型编码方法可达信息熵。由于r(i)与当前符号的序号i有关,且与每个符号的编码运算相关,符合秘钥的定义。因动态加权系数r(i)适合构造非线性轮函数,于是定义r(i)为加权概率模型的对称加密秘钥。
[0076]
基于动态权系数r(i)的加权分布函数为:
[0077][0078]
因0<r(i)<1且0≤p(x
j
)≤1,不难得出0≤f(x,r)<1,编码后得到唯一的实数l
n
,l
n
对应的二进制序列为编码结果。于是:
[0079]
[0080]
相较于常见des,aes,blowfish对称加密算法采用s盒,本发明采用分段交换编码和基于非线性轮函数的加权系数来消除线性相关性,而且构造非线性轮函数的加权系数也能够抵御差分攻击。
[0081]
针对现有技术存在的缺陷,本发明提出如下实施例。
[0082]
实施例部分;
[0083]
本发明的第一实施例,提供一种具有对称加密和无损压缩的编码系统,系统包括编码端和译码端,本实施例对编码端和译码端不进行任何限制,编码端和译码端可以为电脑、服务器等任意终端,编码端执行一种具有对称加密和无损压缩的编码方法。译码端执行一种具有对称加密和无损压缩的译码方法,译码方法为编码方法的逆过程。为了便于理解,介绍本方法之前,先介绍本方法中所使用的分段交换、加权系数的非线性轮函数、密码信息的非线性异或运算以及增添随机数。
[0084]
第一、分段交换;
[0085]
令原始明文x的比特长度为n,将序列x线性地分割为m段子序列。令j=0,1,

,m

1,j为每段子序列的编号。交换编码是保持序列x的统计特征前提下进行段与段之间互换后再进行加权概率模型编码(本方法后续需要通过加权概率模型进行编码)。因为互换后二进制序列中符号0和符号1的概率不变,于是信息熵不变,使得加权概率模型编码具有压缩作用。假设m=16,随机生成m个0到15不重复的数字,存储于列表q中,如:
[0086]
q=(7,13,14,5,9,8,2,1,6,10,15,3,12,11,4,0)
[0087]
j作为q的下标可得值f(j),则将第j段与第f(j)段数据互换,例如j=5,f(j)=8,则第5段与第8段数据互换。
[0088]
第二、加权系数的非线性轮函数;
[0089]
随机生成m2个0到255的整数存于16*16的二进制二维表中,二进制二维表如图2所示,其中x和y为行列下标,x和y的计算式为:
[0090]
x=(i

x
i
)mod m,y=((i/m)

x
i
)mod m
ꢀꢀ
(14)
[0091]
经查,二进制二维表可得值g(x,y),r(i)的非线性轮函数定义为:
[0092][0093]
式(15)中s可取值大于3的整数,实际值根据计算机的运算精度而定,本文实验中s=5。s越大,则r(i)越趋近于1,于是加权概率模型编码方法可接近信息熵,且具备高强度的对称加密作用。显然,q和二进制二维表中可由编码端和译码端共同约定。
[0094]
第三、密码信息的非线性异或运算;
[0095]
令输入的密码信息共l个字节,将密码信息线性地等分成m段。然后根据式(14)遍历并获取密码信息的第f(j)段第(i mod l)个字节值b,b与表1中对应的值g(x,y)进行异或运算代入式(15)可得:
[0096][0097]
第四、增添随机数;
[0098]
基于式(13)的加权概率模型编码算法,是线性编码。已知明文和密文的情形下,基于计算过程,有一定几率分析出r(i)的具体值(虽然这个过程及其复杂),若g(x,y)和s已
知,所以容易得到b,从而得出整个密码信息。于是,编码序列x前,预先编码u位随机产生的二进制序列y。u为编译码端已知且确定的正整数,译码时丢弃u位比特。因每次编码序列y不相同,则编码结果不同。本实施例中u=128。
[0099]
编码端执行一种具有对称加密和无损压缩的编码方法,该方法包括以下步骤:
[0100]
第1步、假设原始明文为序列x,初始化参数,l0=0,h0=r0=1,i=j=k=h=0,m=16,s=5,
[0101]
其中,l0、h0、r0为加权概率模型中编码变量l
i
、h
i
、r
i
的初始值。
[0102]
第2步、统计序列x符号0的个数c,
[0103]
其中,n表示序列x中的序列长度,p表示符号0的概率。
[0104]
第3步、随机生成长度为u=128的二进制序列y;
[0105]
生成序列y的目的是为了在序列x中增添随机数,因为加权概率模型编码是线性编码,如果在编码序列x前,先编码u位随机产生的序列y,那么将极大的提高安全性,具体原理可参见上述的“增添随机数”部分,此处不再赘述。
[0106]
第4步、串联y和x得到二进制序列z;
[0107]
串联之后得到的序列z的长度就是n与u之和。
[0108]
第5步、n=n+u;
[0109]
第6步、将序列z和密码信息线性地等分成m段;
[0110]
第7步、根据j查列表q得到f(j),若f(j)<m

1则k=n/m,h=l/m,若f(j)=m

1则k=n

n(m

1)/m,h=l

l(m

1)/m;
[0111]
分段以及分段交换的过程,可参见上述的“分段交换”部分,此处不再赘述。
[0112]
第8步、获取序列z第f(j)段的第i个符号x
i

[0113]
第9步、计算x和y,x=(i

x
i
)mod m,y=((i/m)

x
i
)mod m;
[0114]
第10步、获取密码信息第f(j)段第(i mod h)个字节值b;
[0115]
第11步、根据坐标(x,y)查表1获取g(x,y);
[0116]
第12步、计算
[0117]
在第8步至第12步中,先随机生成m2个0到255的整数存于16*16的二进制二维表中;后输入随机的二进制密码,计算第f(j)段第(i mod h)个字节值b;后查表得到与符号x
i
对应的比特值g(x,y);最后根据b和g(x,y)构建非线性轮函数r(i)。
[0118]
第13步、计算加权概率和和
[0119]
在第12步得到非线性轮函数r(i)之后,基于该r(i)构建加权概率模型,其中该编码模型的编码公式是:和其中和
[0120]
第14步、若x
i
=0,否则否则
[0121]
第15步、i=i+1,若i<k,重复(8)到(15),否则i=0,j=j+1,j<m时重复第7步到第15步;
[0122]
第16步、输出l
n
,n和c,结束编码。
[0123]
值得注意的是,第16步得到的l
n
是编码完序列z最后一位符号输出的值。
[0124]
本实施例兼具对称加密和无损压缩双重功能,通过对二进制序列进行分段交换编码(分段交换之后再基于加权概率模型进行编码)并构建非线性轮函数作为加权概率模型的加权系数r(i),然后基于加权概率模型进行编码,实现了对数据的无损压缩和对称加密,从数学模型上实现算法的内联,能够抵御线性攻击和差分攻击。因分段交换编码不会改变数据中各符号的概率,加权系数为编码时的计算变量同样不改变数据中各符号的概率,使得数据的信息熵不会改变,相较于目前主流的熵编码和对称加密算法,本发明实施例无损压缩可达信息熵,兼具高强度的对称加密,能有效降低硬件资源和运算能耗。而且本发明实施例每个符号编码所使用的加权系数因非线性轮函数变化,使得加权概率模型编码后的长度具有随机性,未来可广泛应用于信息安全、数据存储和传输领域,具有极高的安全性。
[0125]
本方法还通过在原始明文之前增添二进制序列y,因为加权概率模型是线性编码,因此在编码原始明文之前,通过预先编码u位随机二进制序列y,使得相同的数据和密码信息可编码出2
i
种可能结果,极大的增强了安全性。
[0126]
本方法还通过在非线性轮函数r(i)中增添密码信息b,并且通过密码信息b与非线性轮函数r(i)之间进行异或运算,进一步提高了消除线性相关性的程度。
[0127]
译码端执行一种具有对称加密和无损压缩的译码方法,包括以下步骤:
[0128]
基于上述的编码方法中第8步,编码二进制序列x第i个符号x
i

[0129]
当x
i
=0时f(0

1,r)=rf(

1),因所以f(

1)=0:
[0130]
l
i
=l
i
‑1,
[0131]
当x
i
=1时:
[0132][0133]
根据定理2,无损译码条件为l
n
∈[l
n
,h
n
)∧l
n
∈[l
n
‑1,h
n
‑1)∧...∧l
n
∈[l1,h1),区间[l
i
,h
i
)与符号x
i
一一映射。于是:若时x
i
=0;若时x
i
=1。译码x
i
时,令
[0134][0135]
则l
n
<h时x
i
=0,否则x
i
=1。设输入的密码信息共m个字节,译码端获取l
n
,n和c,采用加权概率模型译码二进制信源序列x(原始明文)步骤如下:
[0136]
第1步、初始化参数,l0=0,r0=1,h=1,i=j=k=h=0,m=16,s=5,
[0137]
第2步、计算符号0的概率,
[0138]
第3步、n=n+u;
[0139]
第4步、根据j查列表q得到f(j),若f(j)<m

1则k=n/m,h=l/m,若f(j)=m

1则k=n

n(m

1)/m,h=l

l(m

1)/m;
[0140]
第5步、计算x和y,x=(i

x
i
)mod m,y=((i/m)

x
i
)mod m;
[0141]
第6步、获取密码信息第f(j)段第(i mod h)个字节值b;
[0142]
第7步、根据坐标(x,y)查二进制二维表获取g(x,y);
[0143]
第8步、计算
[0144]
第9步、计算加权概率和和
[0145]
第10步、计算加权分布函数h,
[0146]
第11步、若l
n
<h,则第f(j)段第i个符号为0,否则为1;
[0147]
第12步、i=i+1,若i<k,重复第5步到第12步,否则i=0,j=j+1,当j<m时重复第4步到第12步;
[0148]
第13步、去除前u个比特,结束译码。
[0149]
以下提供一组实验数据,具体如下:
[0150]
(1)本实施例方法与常规des、aes算法的比较;
[0151]
aes采用128位秘钥的ecb(ecb,electronic codebook book)模式。密码设为12345678,仿真实验一使用lena.bmp(lena.bmp是检验和测试图像压缩的常用素材,786486字节24位真彩色),实验二随机生成符号等概率长度为5242880字节的数据(重复100次,得出编码后平均字节数),实验三为随机生成符号0的概率略等于p=0.1长度为5242880比特的二进制数据。得出实验数据如下:
[0152]
方法编码后的字节长度(字节)本实施例方法728624des786488aes1116048
[0153]
表1
[0154]
方法编码后的字节长度(字节)本实施例方法5242893des5242888aes7437296
[0155]
表2
[0156][0157][0158]
表3
[0159]
其中,表1为lena.bmp仿真结果;表2为随机字节数据仿真结果;表3为随机二进制数据仿真结果。实验中des和aes编码后文件均大于原始文件。通过本实施例方法编码随机数据可接近信息熵,编码lena.bmp和随机二进制数据时具有压缩效果。
[0160]
(2)本文方法与算术编码的比较;
[0161]
算术编码已经广泛应用于h264/h265视频压缩标准、图像及文档压缩领域。实验一使用lena.bmp,,实验二随机生成符号等概率长度为5242880字节数据(重复100次,得出编码后平均字节数),实验三为随机生成符号0的概率略等于p=0.1长度为5242880的二进制数据。密码信息以字节方式传递给算法程序,密码同上。
[0162]
方法编码后的字节长度(字节)本实施例方法727956算术编码727936
[0163]
表4
[0164]
方法编码后的字节长度(字节)本实施例方法5242892算术编码5242886
[0165]
表5
[0166]
方法编码后的字节长度(字节)本实施例方法9092算术编码9038
[0167]
表6
[0168]
其中,表4为lena.bmp仿真结果;表5为随机字节数据仿真结果;表6为随机二进制数据仿真结果。
[0169]
实验中,本实施例方法压缩比略低于算术编码,原因是r(i)<1。当r(i)=1时,加权概率模型编码方法为算术编码,压缩比相同。因s=5则r(i)

1,所以本文算法与算术编码压缩比接近。译码时,输入的密码信息正确则可无损译码二进制序列x,否则译码出错误的二进制序列。经统计,本实施例方法编码后的二进制序列中符号趋于均等。
[0170]
(3)数据结果分析;
[0171]
分段交换(或迭代)、异或运算和轮函数能够抵御线性攻击和差分攻击。本实施例方法根据具有非线性轮函数的加权系数异或运算和分段交换编码,一定程度上消除线性相关性。预先编码u位随机二进制序列y,使得相同的数据和密码信息可编码出2
u
种可能结果。又因每个符号编码所使用的加权系数因非线性轮函数变化,使得加权概率模型编码后的长度具有随机性。
[0172]
已知明文和密文时,密码信息与二进制二维表中坐标(x,y)值异或后作用于加权系数,因x
i
=0和x
i
=1,则二维坐标(x,y)已知,但密码信息未知则m未知,于是密码信息中第j段第(i mod h)个字节值b未知,所以未知。显然,编码x
i
时r(i)存在256种可能值,可得准确译码第j段二进制序列的概率为(k为每段序列的比特数)。可得,已知明文和密文,m=l时准确推测出密码信息的第j段h个字节的概率为因序列y为随机二进制序列,失去了参考对象,无法得出密码信息,能有效抵御量子计算密码攻击。
[0173]
参照图3,本发明的第二实施例,提供了一种具有对称加密和无损压缩的编码方法,包括以下步骤:
[0174]
s100、获取第一二进制序列,第一二进制序列至少包括原始明文。
[0175]
作为一种可选的实施方式,第一二进制序列还包括相互串联的二进制随机数和原始明文。本实施方式通过在原始明文之前增添二进制随机数,在后续通过加权概率模型编码时,通过预先编码二进制随机数,能够极大的增强安全性。
[0176]
s200、对第一二进制序列进行分段交换,得到第二二进制序列。
[0177]
作为一种可选的实施方式:步骤s200具体的分段交换的方式如下:
[0178]
s201、将第一二进制序列线性地分割为m段子序列,将m段子序列按序依次排列。
[0179]
s202、为排列好的每一段子序列随机设置编号。
[0180]
s203、将第j段子序列与第f(j)段子序列进行交换,得到第二二进制序列;其中,f(j)表示第j段子序列对应的编号,第f(j)段子序列表示第j段子序列对应的编号所对应的子序列。
[0181]
假设:令第一二进制序列的比特长度为n。
[0182]
则将序列线性地分割为16段子序列,令j=0,1,

,15,j为每段子序列的编号。
[0183]
随机生成16个0到15不重复的数字,存储于列表q中,如:
[0184]
q=(7,13,14,5,9,8,2,1,6,10,15,3,12,11,4,0)
[0185]
j作为q的下标可得值f(j),则将第j段与第f(j)段数据互换,例如j=5,f(j)=8,则第5段与第8段数据互换。
[0186]
s300、随机生成二进制二维表,从二进制二维表中查找与第二二进制序列中第i位符号x
i
对应的比特值,基于比特值构建非线性轮函数r(i)。
[0187]
随机生成二进制二维表,如附图2所示。
[0188]
作为一种实施方式,步骤s300中的从二进制二维表中查找与第二二进制序列中第i位符号x
i
对应的比特值,包括步骤:
[0189]
计算x=(i

x
i
)mod m,y=((i/m)

x
i
)mod m,其中,mod为取模运算;
[0190]
从二进制二维表中查找坐标(x,y)的值,将坐标(x,y)的值作为第二二进制序列中第i位符号x
i
对应的比特值g(x,y)。
[0191]
作为一种实施方式,非线性轮函数s表示大于3的整数。
[0192]
作为另外一种实施方式,非线性轮函数s表示大于3的整数,表示异或运算,b表示预设的二进制密码。相较于上一种实施方式,本实施方式通过在非线性轮函数r(i)中增添密码信息b,并且通过密码信息b与非线性轮函数r(i)之间进行异或运算,进一步提高了消除线性相关性的程度。
[0193]
需要说明的是:基于上述两种实施例,s的取值越大,则r(i)越趋近于1,s的取值由计算机的精度决定,于是加权概率模型编码方法可接近信息熵,且具备高强度的对称加密作用。
[0194]
s400、构建以r(i)、和作为编码参数的加权概率模型,根据加权概率模型按照编码公式和和对第二二进制序列进行编码,直至编码完第二二进制序列中所有符号,并将编码完第二二进制序列中最后一位符号得到的值,作为编码结果;其中,c表示第二二进制序列中符号0的个
数,n表示第二二进制序列的序列长度,表示符号0的加权概率质量函数,表示符号1的加权概率质量函数,l
i
和r
i
表示编码变量,l
i
和r
i
的初始值分别为0和1,表示第二二进制序列中第i位符号x
i
的加权概率质量函数。
[0195]
编码和解码过程请参见第一实施例,此处不再赘述。但值得注意的是,本实施例使用x表示第二二进制序列,第一实施例使用x表示原始明文,请注意区分。
[0196]
本实施例兼具对称加密和无损压缩双重功能,通过对二进制序列进行分段交换编码(分段交换之后再基于加权概率模型进行编码)并构建非线性轮函数作为加权概率模型的加权系数,然后基于加权概率模型进行编码,实现了对数据的无损压缩和对称加密,从数学模型上实现算法的内联,而且消除线性相关性,能够抵御线性攻击和差分攻击。因分段交换编码不会改变数据中各符号的概率,加权系数为编码时的计算变量同样不改变数据中各符号的概率,使得数据的信息熵不会改变,相较于目前主流的熵编码和对称加密算法,本发明实施例无损压缩可达信息熵,兼具高强度的对称加密,能有效降低硬件资源和运算能耗。而且本实施例每个符号编码所使用的加权系数因非线性轮函数变化,使得加权概率模型编码后的长度具有随机性,未来可广泛应用于信息安全、数据存储和传输领域。
[0197]
参照图4,本发明的第三实施例,提供了一种具有对称加密和无损压缩的编码装置,包括:数据获取单元100,分段交换单元200,轮函数生成单元300及数据编码单元400,其中:
[0198]
数据获取单元100用于获取第一二进制序列,第一二进制序列至少包括原始明文。
[0199]
分段交换单元200用于对第一二进制序列进行分段交换,得到第二二进制序列。
[0200]
轮函数生成单元300用于随机生成二进制二维表,根据第二二进制序列中第i位符号x
i
的所在位置,从二进制二维表中查找对应的比特值,基于比特值构建非线性轮函数r(i)。
[0201]
数据编码单元400用于构建以r(i)、和作为编码参数的加权概率模型,根据加权概率模型按照编码公式l
i
=l
i
‑1+和对第二二进制序列进行编码,直至编码完第二二进制序列中所有符号,并将编码完第二二进制序列中最后一位符号得到的值,作为编码结果;其中,c表示第二二进制序列中符号0的个数,n表示第二二进制序列的序列长度,表示符号0的加权概率质量函数,表示符号1的加权概率质量函数,l
i
和r
i
表示编码变量,l
i
和r
i
的初始值分别为0和1,表示第二二进制序列中第i位符号x
i
的加权概率质量函数。
[0202]
需要注意的是,本实施例与上述第二实施例之间具备相同的发明构思,因此上述第二实施例的相关内容同样适用于本装置实施例,此处不再赘述。
[0203]
本发明的第五实施例,提供了一种具有对称加密和无损压缩的编码设备;该具有对称加密和无损压缩的编码设备可以是任意类型的智能终端,例如手机、平板电脑、个人计算机等。具体地,该具有对称加密和无损压缩的编码设备包括:一个或多个控制处理器和存储器,本实例以一个控制处理器为例。控制处理器和存储器可以通过总线或者其他方式连接,本实例以通过总线连接为例。
[0204]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂
态性计算机可执行程序以及模块,如本发明实施例中的具有对称加密和无损压缩的编码设备对应的程序指令/模块;控制处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而实现上述方法实施例的具有对称加密和无损压缩的编码方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于控制处理器远程设置的存储器,这些远程存储器可以通过网络连接至该具有对称加密和无损压缩的编码设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个控制处理器执行时,执行上述方法实施例中的具有对称加密和无损压缩的编码方法。
[0205]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,可使得上述一个或多个控制处理器执行上述方法实施例中的具有对称加密和无损压缩的编码方法。
[0206]
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现。本领域技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(readon ly memory,rom)或随机存储记忆体(random access memory,ram)等。
[0207]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1