一种基于加权概率模型的自适应对称编码方法以及系统与流程

文档序号:28429854发布日期:2022-01-12 00:59阅读:127来源:国知局
一种基于加权概率模型的自适应对称编码方法以及系统与流程

1.本发明涉及数据编码技术领域,特别涉及一种基于加权概率模型的自适应对称编码方法以及系统。


背景技术:

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


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题。为此,本发明提出一种基于加权概率模型的自适应对称编码方法以及系统,即实现了无损压缩又具备高强度的对称加密,能保障信息安全,有效降低硬件资源和运算要求,而且还实现了以字节为单位的流编码模式,提升压缩比,可有效的适应于物联网终端的小数据和互联网的大数据加密和压缩。
5.本发明的第一方面,提供了一种基于加权概率模型的自适应对称编码方法,包括如下步骤:
6.获取包括信源序列的第一二进制序列以及由m2个随机整数组成的二维表;
7.对所述第一二进制序列进行分段交换,得到包含m段子序列的第二二进制序列;
8.通过如下方式分别对所述第二二进制序列中每段子序列进行编码,得到每段子序列对应的编码结果:
9.从所述二维表中获取与当前子序列中第i位符号xi对应的比特值,基于所述比特值计算非线性轮函数r(i);
10.计算所述符号xi的加权概率和其中,其中,所述r表示权系数,且所述p(0)表示所述当前子序列中符号0的概率,所述p(1)表示所述当前子序列中符号1的概率,所述n表示所述当前子序列中符号总数,所述l表示预设的编码长度,所述c0表示编码所述符号xi之前所述当前子序列中已经编码的总符号数中的符号0的个数,所述c0的初始值为1,所述c1表示编码所述符号xi之前
所述当前子序列中已经编码的总符号数中的符号1的个数,所述c1的初始值为1,所述t表示编码所述符号xi之前所述当前子序列中已经编码的总符号数,所述t的初始值为2;
11.编码所述符号xi:若xi=0,则c0=c0+1且t=t+1;若xi=1,则c1=c1+1且t=t+1;其中,所述ri、r
i-1
、li以及l
i-1
为编码变量,r0=1,l0=0;
12.将所述每段子序列对应的编码结果合并,得到最终的编码结果。
13.本发明的第二方面,提供了一种基于加权概率模型的自适应对称编码系统,包括:
14.数据获取单元,用于获取包括信源序列的第一二进制序列以及由m2个随机整数组成的二维表;
15.第一编码单元,用于对所述第一二进制序列进行分段交换,得到包含m段子序列的第二二进制序列;
16.第二编码单元,用于通过如下方式分别对所述第二二进制序列中每段子序列进行编码,得到每段子序列对应的编码结果:
17.从所述二维表中获取与当前子序列中第i位符号xi对应的比特值,基于所述比特值计算非线性轮函数r(i);
18.计算所述符号xi的加权概率和其中,其中,所述r表示权系数,且所述p(0)表示所述当前子序列中符号0的概率,所述p(1)表示所述当前子序列中符号1的概率,所述n表示所述当前子序列中符号总数,所述l表示预设的编码长度,所述c0表示编码所述符号xi之前所述当前子序列中已经编码的总符号数中的符号0的个数,所述c0的初始值为1,所述c1表示编码所述符号xi之前所述当前子序列中已经编码的总符号数中的符号1的个数,所述c1的初始值为1,所述t表示编码所述符号xi之前所述当前子序列中已经编码的总符号数,所述t的初始值为2;
19.编码所述符号xi:若xi=0,则c0=c0+1且t=t+1;若xi=1,则c1=c1+1且t=t+1;其中,所述ri、r
i-1
、li以及l
i-1
为编码变量,r0=1,l0=0;
20.数据合并单元,用于将所述每段子序列对应的编码结果合并,得到最终的编码结果。
21.本发明的第三方面,提供了一种电子设备,包括至少一个控制处理器和用于与所述至少一个控制处理器通信连接的存储器;所述存储器存储有可被所述至少一个控制处理器执行的指令,所述指令被所述至少一个控制处理器执行,以使所述至少一个控制处理器能够执行上述的基于加权概率模型的自适应对称编码方法。
22.本发明的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行上述的基于加权概率模型的自适应对称编码方法。
23.根据本技术的实施例,至少具有如下技术效果:
24.本方法兼具对称加密和无损压缩双重功能。首先通过对第一二进制序列进行分段交换,得到第二二进制序列,并构建加权系数的非线性轮函数r(i),最后基于加权概率模型
进行编码,实现了对数据的无损压缩和对称加密,能够抵御线性攻击和差分攻击。因分段交换不会改变数据中各符号的概率,使得数据的信息熵不会改变,相较于目前主流的熵编码和对称加密算法,本方法实施例无损压缩可达信息熵,兼具高强度的对称加密,能有效降低硬件资源和运算能耗。
25.本方法每个符号编码所使用的加权系数r因非线性轮函数r(i)变化,使得加权概率模型编码后的长度具有随机性,未来可广泛应用于信息安全、数据存储和传输领域,具有极高的安全性。
26.本方法提出了一种适用于“流”编码模式的计算方式,相较于相关专利中r是一个固定的值,本方法能使加权系数r随着二进制序列的局部特征变化,从而实现自适应调整,而且经过实验证明,编码后的编码结果的压缩比相较于相关方案提升了2%至6%。
27.可以理解的是,上述第二方面至第四方面与相关技术相比存在的有益效果与上述第一方面与相关技术相比存在的有益效果相同,可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
28.本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
29.图1为本发明提供的加权概率模型的编码运算过程示意图;
30.图2为本发明一个实施例提供的一种二维表的示意图;
31.图3为本发明一个实施例提供的执行一种基于加权概率模型的自适应对称编码方法的系统架构示意图;
32.图4为本发明一个实施例提供的一种基于加权概率模型的自适应对称编码方法的流程示意图。
具体实施方式
33.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
34.在介绍本技术实施例之前,先对本技术的原理进行说明,主要包括自适应加权概率模型编码、信息熵和碰撞极限分析以及非线性的分段交换运算和加权系数的轮函数:
35.第一、自适应加权概率模型编码;
36.令信源序列x=(x1,x2,...,xi,...,xn)是有限个值或可数个可能值的离散序列,xi∈a={0,1,2,...,k}。于是对于a中一切数值有概率空间:
[0037][0038]
由于随机过程必须转移到某个符号,所以在任意时刻有:
[0039]
[0040]
于是,任意符号xi的分布函数为:
[0041][0042]
其中,p(0)≤f(x)≤1,s∈a。
[0043]
定义1:设离散随机变量x,x∈a={0,1,...,k},p{x=a}=p(a)(a∈a),加权概率质量函数为p(a)为的概率质量函数,0≤p(a)≤1,r为权系数(根据相关方案,也称为加权系数),且:
[0044]
f(a)=∑
i≤a
p(i)
ꢀꢀꢀꢀꢀꢀ
(2)
[0045]
若f(a,r)满足f(a,r)=rf(a),则称f(a,r)为加权累积分布函数,简称加权分布函数。显然,所有符号的加权概率之和为
[0046]
令离散信源序列x=(x1,x2,...,xn),xi∈a,且令f(x
i-1)=f(xi)-p(xi),序列x的加权分布函数记为f(x,r)。当n=1时:
[0047]
f(x,r)=rf(x
1-1)+rp(x1)
[0048]
当n=2时:
[0049]
f(x,r)=rf(x
1-1)+r2f(x
2-1)p(x1)+r2p(x1)p(x2)
[0050]
当n=3时:
[0051]
f(x,r)=rf(x
1-1)+r2f(x
2-1)p(x1)+r3f(x
3-1)p(x1)p(x2)+r3p(x1)p(x2)p(x3)
[0052]
令类推得:
[0053][0054]
将满足式(3)的加权分布函数的集合定义为加权概率模型,简称加权模型,记为{f(x,r)}。若xi∈a={0,1},则称{f(x,r)}为二元加权模型。令:
[0055]hn
=f(x,r)
ꢀꢀꢀꢀꢀꢀꢀ
(4)
[0056][0057]
ln=h
n-rnꢀꢀꢀꢀꢀꢀꢀ
(6)
[0058]
其中xi∈a,n=1,2,...。当r=1时:
[0059][0060]
由式(4)(5)(6)可得hn=f(x,1),即区间编码(算术编码)是基于r=1时加权分布函数的无损编码方法。
[0061]
因xi必须取a中的值,所以p(xi)》0。显然式(4)(5)(6)为区间列,[li,hi)是信源序列x在时刻i(i=0,1,2,...,n)变量xi对应的区间上下标,ri=h
i-li是区间的长度。根据式(4)(5)(6),设i=0时r0=h0=1,l0=0,于是i=1,2,...,n时加权概率模型编码运算式为:
[0062][0063]
需要注意的是,式(8)包含上述三个公式,通过式(8)对信源序列x进行加权概率模型编码运算,ln为实数,是加权概率模型编码结果。ln通过进制转换得到二进制序列。以二进
制序列为例,令0《r≤1且序列x从i+1位置开始的3个符号为0,1,0。根据式(8)加权概率模型的编码运算过程如图1所示。
[0064]
根据图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
,hi+ri)与符号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
)∈[li,hi),可无损译码。
[0065]
需要注意的是,上述原理部分为本领域的公知常识(可参考“杰林码”的相关原理介绍)。以下是本技术基于加权概率模型提出能够适用于“流”编码(加密)模式的计算方式:
[0066]
令符号x(x∈a)的计数值c
x
的初始值为1,即c
x
=1。
[0067]
令t为集合a中所有符号的计数值的总和,即:
[0068][0069]
于是t的初始值为s+1。设第i个待编码的符号为xi,且xi=a(a∈a)。则编码时符号a的概率为:
[0070][0071][0072]
然后根据上述定义1有:
[0073][0074][0075]
因所以有:
[0076][0077]
编码第i个符号xi后,更新和t,即t=t+1。将式(14)转化为迭代式如:
[0078][0079]
需要注意的是,上述式(15)包含三个公式。
[0080]
第二、信息熵和碰撞极限分析;
[0081]
1、加权概率模型的信息熵:
[0082]
设离散无记忆信源序列x=(x1,x2,...,xn)(xi∈a,a={0,1,2,...,k}),当r=1时,由香农信息熵定义,x的熵为:
[0083]
[0084]
当r≠1时,定义具有概率的随机变量xi的自信息量为:
[0085]
i(xi)=-log
k+1
p(xi)
ꢀꢀꢀꢀꢀꢀ
(17)
[0086]
设集合{xi=a}(i=1,2,...,n,a∈a)中有ca个a。当r的值确定,信源序列x的总信息量为:
[0087][0088]
于是平均每个符号的信息量为:
[0089][0090]
定义2:令h(x,r)为:
[0091][0092]
根据定义2,在r的值确定时,通过加权概率模型编码后的二进制长度为nh(x,r),单位为比特(bit)。最简单的信源序列为二进制序列,设二进制信源序列x的比特长度为n,x中符号0和符号1有概率p(0)和p(1),且经加权概率模型编码后得到长度为l(bit)的序列。当k=1时由式(18)可得:
[0093]-nlog2r+nh(x)=l
ꢀꢀꢀꢀꢀꢀꢀ
(19)
[0094]
其中h(x)序列x的信息熵,即h(x)=-p(0)log2p(0)-p(1)log2p(1),化简式(19)得:
[0095][0096]
根据无失真编码定理,h(x)是离散无记忆信源序列x的无失真编码极限,所以当h(x,r)≥h(x)时加权模型函数f(x,r)可无失真还原信源序列x。当h(x,r)《h(x)时,加权模型函数f(x,r)无法还原信源x,即当l《nh(x)时编码结果ln无法还原信源x。
[0097]
第三、非线性的分段交换运算和加权系数的轮函数;
[0098]
根据式(20)可得序列x的权系数r。若r不随i(i=1,2,...,m2)变化,则称r为静态加权系数;若r随i变化,则称r为动态加权系数,记为r(i)。根据“杰林码”,当0《r≤1时,加权概率模型可无损编译码,又根据上述定义2可得当r

1时,-log r

0,于是h(x,r)

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

1时加权概率模型编码方法可达信息熵。由于r(i)与当前符号的序号i有关,且与每个符号的编码运算相关,符合秘钥的定义。因动态加权系数r(i)适合构造非线性轮函数。基于动态权系数r(i)的加权分布函数为:
[0099][0100]
因0《r(i)《1且0≤p(xj)≤1,不难得出0≤f(x,r)《1,编码后得到唯一的实数ln,ln对应的二进制序列为编码结果。于是:
[0101][0102]
第三、非线性的分段交换运算和加权系数的轮函数;
[0103]
1、序列x的分段交换;
[0104]
令序列x的比特长度为n,将序列x线性地分割为m段子序列。令j=0,1,...,m-1,j为每段子序列的编号。交换编码是保持序列x的统计特征前提下进行段与段之间互换后再进行加权概率模型编码。因为互换后二进制序列中符号0和符号1的概率不变,于是信息熵不变,使得加权概率模型编码具有压缩作用。假设m=16,随机生成m个0到15不重复的数字,存储于列表q中,如:
[0105]
q=(7,13,14,5,9,8,2,1,6,10,15,3,12,11,4,0)
[0106]
j作为q的下标可得值f(j),则将第j段与第j(j)段数据互换,例如j=5,f(j)=8,则第5段与第8段数据互换。
[0107]
2、加权系数的非线性轮函数;
[0108]
随机生成m2个0到255的整数存于16*16的二维表中,二维表如图2所示,其中x和y为行列下标,x和y的计算式为:
[0109]
x=(i-xi)mod m,y=((i/m)-xi)mod m
ꢀꢀꢀꢀꢀꢀꢀ
(23)
[0110]
经坐标(x,y)查二维表可得比特值g(x,y),r(i)的非线性轮函数定义为:
[0111][0112]
式(24)中s可取值大于3的整数,实际值根据计算机的运算精度而定,在实验时,选择s=5。s越大,则r(i)越趋近于1,于是加权概率模型编码方法可接近信息熵,且具备高强度的对称加密作用。显然,上述列表q和二维表可由编码端和译码端共同约定,这里的编码端为进行编码操作的终端,译码端为进行译码操作的终端。
[0113]
3、密码序列的非线性异或运算;
[0114]
令输入的密码序列共l个字节,将密码序列线性地等分成m段。然后根据式(24)遍历并获取密码序列的第f(j)段第(i mod l)个字节值b,b与表1中对应的值g(x,y)进行异或运算代入式(24)可得:
[0115][0116]
4、随机数;
[0117]
加权概率模型编码是线性编码,已知明文(信源序列)和密文(编码结果)的情形下,基于计算过程,有一定几率分析出r(i)的具体值(虽然这个过程及其复杂),若g(x,y)和s已知,所以容易得到b,从而得出整个密码序列。于是,编码序列x前,预先编码u位随机产生的二进制序列y。u为编译码端已知且确定的正整数,译码时丢弃u位比特。因每次编码序列y不相同,则编码结果不同。在实验中u取128。
[0118]
本技术一个实施例提供的基于加权概率模型的自适应对称编码方法可以在电子设备中执行。终端/设备可以为移动电子设备,也可以为非移动电子设备。移动电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机、上网本、个人数字助理等;非移动电子设备可以为个人计算机、电视机、柜员机或者自助机等;本技术实施方案不作具体限定。
[0119]
电子设备可以包括处理器,外部存储器接口,内部存储器,通用串行总线(universal serial bus,usb)接口,充电管理模块,电源管理模块,电池,天线,移动通信模块,无线通信模块,音频模块,扬声器,受话器,麦克风,耳机接口,传感器模块,按键,马达,
指示器,摄像头,显示屏,以及用户标识模块(subscr iber identification module,sim)卡接口等。
[0120]
下面结合附图,对本技术实施例作进一步阐述。
[0121]
参照图3,是本技术一个实施例提供的用于执行一种基于加权概率模型的自适应对称编码方法的系统架构示意图,主要包括但不限于相互电连接的数据获取单元100、第一编码单元200、第二编码单元300以及数据合并单元400,其中:
[0122]
数据获取单元100用于获取包括信源序列的第一二进制序列以及由m2个随机整数组成的二维表。
[0123]
第一编码单元200用于对第一二进制序列进行分段交换,得到包含m段子序列的第二二进制序列。
[0124]
第二编码单元300用于通过如下方式分别对第二二进制序列中每段子序列进行编码,得到每段子序列对应的编码结果。
[0125]
从二维表中获取与当前子序列中第i位符号xi对应的比特值,基于比特值计算非线性轮函数r(i);
[0126]
计算符号xi的加权概率和其中,r表示权系数,且p(0)表示当前子序列中符号0的概率,p(1)表示当前子序列中符号1的概率,n表示当前子序列中符号总数,l表示预设的编码长度,c0表示编码符号xi之前当前子序列中已经编码的总符号数中的符号0的个数,c0的初始值为1,c1表示编码符号xi之前当前子序列中已经编码的总符号数中的符号1的个数,c1的初始值为1,t表示编码符号xi之前当前子序列中已经编码的总符号数,t的初始值为2;
[0127]
编码符号xi:若xi=0,则c0=c0+1且t=t+1;若xi=1,则c1=c1+1且t=t+1;其中,ri、r
i-1
、li以及l
i-1
为编码变量,r0=1,l0=0;
[0128]
数据合并单元400用于将每段子序列对应的编码结果合并,得到最终的编码结果。
[0129]
本技术实施例描述的系统架构以及应用场景是为了更加清楚的说明本技术实施例的技术方案,并不构成对于本技术实施例提供的技术方案的限定,本领域技术人员可知,随着系统架构的演变和新应用场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
[0130]
本领域技术人员可以理解的是,图3中示出的系统架构并不构成对本技术实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0131]
在图3所示的系统架构中,各个单元可以分别调用其储存的程序,以执行基于加权概率模型的自适应对称编码方法。
[0132]
基于上述系统架构,提出本技术实施例的基于加权概率模型的自适应对称编码方法的各个实施例。
[0133]
参照图4,本发明的一个实施例,提供了一种基于加权概率模型的自适应对称编码方法,用于编码端,本技术实施例对编码端不进行限制,这里以终端计算机为例,本方法包括如下步骤:
[0134]
步骤s100、获取包括信源序列的第一二进制序列以及由m2个随机整数组成的二维表。
[0135]
在本步骤s100中,第一二进制序列可以仅由信源序列构成。但在一些实施例中,第一二进制序列是包括由信源序列和与信源序列串联的二进制随机数,假设信源序列为序列x,二进制随机数为序列y,序列y的长度为n,u的值为随机设置,则由序列y串联序列x之后,得到第一二进制序列。相较于第一二进制序列仅由信源序列构成,本实施例提供的第一二进制序列是包括由信源序列和与信源序列串联的二进制随机数,因为加权概率模型是线性编码,在通过在信源序列之前增加随机数,能够极大的增强编码的安全性,可参见上述“4、随机数”的介绍。在本实施例中,二维表具体由m2个0至255的随机整数组成,如图2所示,其中x表示横坐标,y表示列坐标。
[0136]
步骤s200、对第一二进制序列进行分段交换,得到包含m段子序列的第二二进制序列。
[0137]
在一些实施例中,步骤s200具体包括如下步骤:
[0138]
步骤s210、将第一二进制序列线性地分割为按序依次排列m段子序列。
[0139]
步骤s220、为排列好的每一段子序列随机设置编号。
[0140]
步骤s230、将第j段子序列与第f(j)段子序列进行交换,得到第二二进制序列;其中,f(j)表示第j段子序列对应的编号,第f(j)段子序列表示第j段子序列对应的编号所对应的子序列。
[0141]
可参见上述“1、序列x的分段交换”的说明,这里不再细述。步骤s200中的分段交换的目的是为了消除线性相关性,由于分段交换不改变数据中各符号的概率,所以信息熵并不会改变。
[0142]
步骤s300、通过如下方式分别对第二二进制序列中每段子序列进行编码,得到每段子序列对应的编码结果:
[0143]
步骤s310、从二维表中获取与当前子序列中第i位符号xi对应的比特值,基于比特值计算非线性轮函数r(i)。
[0144]
在一些实施例中,步骤s310具体包括如下过程:
[0145]
步骤s3111、获取符号xi。
[0146]
步骤s3112、计算x=(i-xi)mod m,y=((i/m)-xi)mod m,其中,mod为取模运算。
[0147]
步骤s3113、从二维表中查找与坐标(x,y)对应的比特值g(x,y)。
[0148]
步骤s3114、通过如下公式进行计算轮函数r(i):
[0149][0150]
其中,s表示大于3的整数。
[0151]
本技术构建加权系数的非线性轮函数主要用于抵御差分攻击,使后续编码具备高强度的对称加密作用。
[0152]
在另一些实施例中,步骤s310具体包括如下过程:
[0153]
步骤s3121、获取符号xi和密码b。
[0154]
步骤s3122、计算x=(i-xi)mod m,y=((i/m)-xi)mod m,其中,mod为取模运算。
[0155]
步骤s3123、从二维表中查找与坐标(x,y)对应的比特值g(x,y)。
[0156]
步骤s3124、通过如下公式进行计算轮函数r(i):
[0157][0158]
其中,s表示大于3的整数,表示异或运算。
[0159]
相较于上述步骤s3111至步骤s3114,本实施例步骤s3121至步骤s3124在构建加权系数的非线性轮函数时,增添了预设的密码b,显著提高抵御线性攻击和差分攻击的能力,提高对称加密的安全性。
[0160]
基于上述实施例,通过如下方式计算密码b:
[0161]
(1)获取密码序列,设密码序列的字节长度为l;
[0162]
(2)将密码序列线性进行分段交换,得到m段子密码序列;
[0163]
(3)从m段子密码序列中获取与当前子序列对应的当前子密码序列;
[0164]
(4)从当前子密码序列中,获取i mod h个字节作为密码b,其中,mod为取模运算,
[0165]
步骤s320、计算符号xi的加权概率和其中,其中,r表示权系数,且p(0)表示当前子序列中符号0的概率,p(1)表示当前子序列中符号1的概率,n表示当前子序列中符号总数,l表示预设的编码长度(需要注意的是,这里l与上述的密码序列的字节长度l代表着不同的意义,请注意区分),c0表示编码符号xi之前当前子序列中已经编码的总符号数中的符号0的个数,c0的初始值为1,c1表示编码符号xi之前当前子序列中已经编码的总符号数中的符号1的个数,c1的初始值为1,t表示编码符号xi之前当前子序列中已经编码的总符号数,t的初始值为2。
[0166]
步骤s330、编码符号xi:若xi=0,则c0=c0+1且t=t+1;若xi=1,则c1=c1+1且t=t+1;其中,ri、r
i-1
、li以及l
i-1
为编码变量,r0=1,l0=0。
[0167]
相较于相关方案,例如目前已经公开的“杰林码”的相关技术方案,其直接先统计概率,比如1000个比特,首先统计1000个比特中所有的符号0和符号1的概率,然后基于统计的概率通过加权编码模型进行线性编码。本技术步骤s310至s330基于加权概率模型提出能够适用于“流”编码模式的计算方式,计算符号xi的加权概率和和其中,c0、c1和t都是统计的当前子序列中已经编码的符号;例如以“101
…”
为例的子序列,默认t的初始值为2,c0的初始值为1,c1的初始值为1,初始时:当编码第一个符号“1”时:编码完成之后,更新t和c1,即t=t+1=3,c1=c1+1=2;当编码第二个符号“0”时:编码完成之后,更新t和c0,依次类推,此处不再穷举。本技术实施例适用于以字节为单位的流编码。
[0168]
而且相较于相关专利,例如目前已经公开的“杰林码”的相关专利文献,其计算的加权系数r是一个固定的值,所以在编码的时候,加权系数r不能随着二进制序列的局部特
征变化。而本技术提出了一种适用于“流”编码模式的计算方式,能够使加权系数r能随着二进制序列的局部特征变化而变化,这是因为r的计算公式虽然不变,但由于统计的概率p(0)和p(1)发生了变化(p(0)以及p(1)由c0、c1、t决定,而c0、c1、t是由当前子序列中已经编码的符号统计而来),所以加权系数r能随着二进制序列的局部特征变化,从而实现自适应调整,而且经过实验证明,编码后的编码结果的压缩比相较于相关方案提升了2%至6%。
[0169]
步骤s400、将每段子序列对应的编码结果合并,得到最终的编码结果。
[0170]
由于在上述步骤中,每一段的子序列会得到对应的编码结果,因此本步骤将每一段子序列得到对应的编码结果进行合并,得到最终的编码结果。
[0171]
相较于相关方案,本方法实施例具备如下有益效果:
[0172]
本方法实施例兼具对称加密和无损压缩双重功能。首先通过对第一二进制序列进行分段交换,得到第二二进制序列,并构建加权系数的非线性轮函数r(i),最后基于加权概率模型进行编码,实现了对数据的无损压缩和对称加密,能够抵御线性攻击和差分攻击。因分段交换不会改变数据中各符号的概率,使得数据的信息熵不会改变,相较于目前主流的熵编码和对称加密算法,本方法实施例无损压缩可达信息熵,兼具高强度的对称加密,能有效降低硬件资源和运算能耗。
[0173]
本方法实施例每个符号编码所使用的加权系数r因非线性轮函数r(i)变化,使得加权概率模型编码后的长度具有随机性,未来可广泛应用于信息安全、数据存储和传输领域,具有极高的安全性。
[0174]
本方法实施例提出了一种适用于“流”编码模式的计算方式,相较于相关专利中r是一个固定的值,本技术能使加权系数r随着二进制序列的局部特征变化,从而实现自适应调整,而且经过实验证明,编码后的编码结果的压缩比相较于相关方案提升了2%至6%。
[0175]
本方法实施例在编码信源序列时,将信源序列和二进制随机数进行串联,提高了编码的安全性。
[0176]
本方法实施例利用步骤s3121至步骤s3124在构建加权系数r的非线性轮函数r(i)时,增添了预设的密码b,显著提高抵御线性攻击和差分攻击的能力。
[0177]
本技术的一个最佳实施例,提供了一种基于加权概率模型的自适应对称编码方法,包括如下步骤:
[0178]
假设输入的密码序列共l个字节,本方法对长度为n的二进制序列x(信源序列)编码步骤如下:
[0179]
第1步、初始化参数,l0=0,h0=r0=1,i=j=k=h=0,m=16,s=5,t=2,c0=c1=1。其中,l0、h0、r0为加权概率模型中编码变量li、hi、ri的初始值;i、j、k、h表示变量;m表示分段的数量;s为预设的值,由编码端计算机的处理能力决定,c表示二进制序列x(信源序列)中符号0的个数,p表示二进制序列x(信源序列)中符号0的概率,x,y分别表示二维表中的横纵坐标,表示符号0的加权概率,表示符号1的加权概率,t,c0,c1表示流编码时的变量(可参见后续说明)。
[0180]
第2步、随机生成长度为u=128的二进制序列y。
[0181]
第3步、串联二进制序列y和二进制序列x得到二进制序列z。
[0182]
将二进制序列y和二进制序列x进行串联得到二进制序列z,能够提高安全性。
[0183]
第4步、n=n+u。
[0184]
串联之后得到的二进制序列z的长度就是二进制序列x的长度n与二进制序列y的长度u之和。
[0185]
第5步、将二进制序列z和密码序列分别线性地等分成m段。
[0186]
这里可参见上述分段交换或上述实施例的介绍,此处不再赘述。
[0187]
第6步、根据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。
[0188]
这里的j,f(j),列表q可参见上述实施例和上述原理部分的介绍,此处不再赘述。
[0189]
第7步、获取二进制序列z第f(j)段的第i个符号xi。
[0190]
第8步、计算x和y,x=(i-xi)mod m,y=((i/m)-xi)mod m。
[0191]
这里x和y表示二维表上的横纵坐标。
[0192]
第9步、获取密码序列第f(j)段第(i mod h)个字节值b。
[0193]
第10步、根据坐标(x,y)查二维表,获取二维表上的比特值g(x,y)。
[0194]
这里的二维表可参见上述实施例和上述原理部分的介绍,此处不再赘述。
[0195]
第11步、计算
[0196]
第12步、计算加权概率和和
[0197]
第13步、若xi=0,c0=c0+1且t=t+1;否则c1=c1+1且t=t+1。
[0198]
第14步、i=i+1,若i《k,重复第7至第14步,否则i=0,j=j+1,j《m时重复第6步到第14步。
[0199]
第15步、输出ln,n和c,结束编码。这里的c表示二进制序列x(信源序列)中符号0的个数。
[0200]
值得注意的是,第15步得到的ln是编码完二进制序列z最后一位符号输出的值。
[0201]
相较于相关方案,本方法实施例具备如下有益效果:
[0202]
本方法实施例兼具对称加密和无损压缩双重功能。首先通过对第一二进制序列进行分段交换,得到第二二进制序列,并构建加权系数的非线性轮函数r(i),最后基于加权概率模型进行编码,实现了对数据的无损压缩和对称加密,能够抵御线性攻击和差分攻击。因分段交换不会改变数据中各符号的概率,使得数据的信息熵不会改变,相较于目前主流的熵编码和对称加密算法,本方法实施例无损压缩可达信息熵,兼具高强度的对称加密,能有效降低硬件资源和运算能耗。
[0203]
本方法实施例每个符号编码所使用的加权系数r因非线性轮函数r(i)变化,使得加权概率模型编码后的长度具有随机性,未来可广泛应用于信息安全、数据存储和传输领域,具有极高的安全性。
[0204]
本方法实施例提出了一种适用于“流”编码模式的计算方式,相较于相关专利中r是一个固定的值,本技术能使加权系数r随着二进制序列的局部特征变化,从而实现自适应调整,而且经过实验证明,编码后的编码结果的压缩比相较于相关方案提升了2%至6%。
[0205]
本方法实施例在编码信源序列时,将信源序列和二进制随机数进行串联,提高了
编码的安全性。
[0206]
本方法实施例在构建加权系数r的非线性轮函数r(i)时,增添了预设的密码b,显著提高抵御线性攻击和差分攻击的能力。
[0207]
基于上述实施例,还提供一种基于加权概率模型的自适应对称译码方法,本译码方法是上述一种基于加权概率模型的自适应对称编码方法的逆过程,主要应用于译码端,本技术实施例对译码端不进行限制,这里以计算机为例,基于上述第1步至第15步,本方法包括如下步骤:
[0208]
基于上述式(15),编码当前子序列中的第i个符号xi。
[0209]
当xi=0时f(0-1,r)=rf(-1),因所以f(-1)=0:
[0210][0211]
当xi=1时:
[0212][0213]
根据“杰林码”,无损译码条件为ln∈[ln,hn)∧ln∈[l
n-1
,h
n-1
)∧...∧ln∈[l1,h1),区间[li,hi)与符号xi一一映射。于是:若时xi=0;若时xi=1。译码xi时,令:
[0214][0215]
则ln《h时xi=0,否则xi=1。设输入的密码序列共m个字节,译码端获取ln,n和c,采用译码出二进制序列x(信源序列)步骤如下:
[0216]
第1步、初始化参数,l0=0,r0=1,h=1,i=j=k=h=0,m=16,s=5,t=2,c0=c1=1。
[0217]
第2步、n=n+u。
[0218]
第3步、根据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。
[0219]
第4步、计算x和y,x=(i-xi)mod m,y=((i/m)-xi)mod m。
[0220]
第5步、获取密码序列第f(j)段第(i mod h)个字节值b。
[0221]
第6步、根据坐标(x,y)查二维表获取g(x,y)。
[0222]
第7步、计算
[0223]
第8步、计算加权概率和和
[0224]
第9步、计算加权分布函数h,
[0225]
第10步、若ln《h,则第f(j)段第i个符号为0,c0=c0+1且t=t+1,否则为1,c1=c1+1且t=t+1;
[0226]
第11步、i=i+1,若i《k,重复第5步到第12步,否则i=0,j=j+1,当j《m时重复第4步到第12步。
[0227]
第12步、去除前u个比特,结束译码。
[0228]
以下提供上述编码方法实施例和上述译码方法实施例的安全性分析,具体如下:
[0229]
已知明文(即信源序列)和密文(即编码结果)时,密码序列与二维表中坐标(x,y)
值异或后作用于加权系数,因xi=0和xi=1,则坐标(x,y)已知,但密码序列未知则m未知,于是密码序列中第j段第(i mod h)个字节值b未知,所以未知。显然,编码xi时r(i)存在256种可能值,可得准确译码第j段二进制序列的概率为(k为每段序列的比特数)。可得,已知明文和密文,m=l时准确推测出密码序列的第j段h个字节的概率为因序列y为二进制随机序列,失去了参考对象,无法得出密码序列,能有效抵御量子计算密码攻击。
[0230]
本实施例的译码过程是上述编码过程的逆过程,此处不再赘述。
[0231]
本技术一个实施例,提供了一种电子设备;该电子设备可以是任意类型的智能终端,例如手机、平板电脑、个人计算机等。具体地,该电子设备包括:一个或多个控制处理器和存储器,本实例以一个控制处理器为例。控制处理器和存储器可以通过总线或者其他方式连接,本实例以通过总线连接为例。
[0232]
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及模块,如本发明实施例中的电子设备对应的程序指令/模块;控制处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而实现上述方法实施例的基于加权概率模型的自适应对称编码方法。存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于控制处理器远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。所述一个或者多个模块存储在所述存储器中,当被所述一个或者多个控制处理器执行时,执行上述方法实施例中的基于加权概率模型的自适应对称编码方法。
[0233]
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,例如,可使得上述一个或多个控制处理器执行上述方法实施例中的基于加权概率模型的自适应对称编码方法。
[0234]
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现。本领域技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(readonly memory,rom)或随机存储记忆体(random access memory,ram)等。
[0235]
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1