一种多比特纠错编码解码方法与流程

文档序号:16244920发布日期:2018-12-11 23:29阅读:310来源:国知局

本发明涉及纠错编码解码技术,在网络保密通讯领域具有重要应用。

背景技术

纠错编码解码是技术是用于解决如下问题:两个用户alice和bob各自有一个秘密,发送方alice得到一个秘密数据σ1∈zq,接受方bob得到一个秘密数据σ2∈zq。这些秘密数据在保密通讯中是利用交换格上的带噪音学习问题实例进行相应计算得到的。但是,σ1∈zq和σ2∈zq并不相等,因此并不可以作为密钥进行保密通讯。但是它们的距离比较近,发明方法是解决如何从了两个距离比较近的秘密数据中计算出一个相同的密钥,用于保密通讯。



技术实现要素:

运行发明方法的发送方alice得到σ1∈zq和公共参数params,将σ1∈zq和params作为输入运行con(σ1,params)得到k1∈zk和v∈zt,保密存储k1,并公开传输v给运行发明方法的接收方bob。bob得到σ2∈zq,v∈zt和公共参数params,其中σ2与σ1满足|σ2-σ1|q≤d,将σ2,v和params作为输入运行rec(σ2,v,params),得到k2∈zk。若σ2与σ1的距离d满足一定的限制条件,则正确性成立,即k2=k1,双方纠错成功,生成共同的密钥k2=k1。该技术在网络保密通讯领域具有重要应用。

本发明给出一种高效的多比特纠错编码解码方法;其中,{…}表示一个信息或者数值的集合;这里公共参数params={q,k,g,aux},其中q,k,g均为整数;aux包含运行发明方法的可为空的其它辅助公共参数的集合;对于两个整数i,j,其中i≤j,[i,j]表示整数集{i,i+1,…,j};对于任意正整数a,定义za为z/az,za表示为za=[0,a-1]或者其中,对于任意实数b,表示小于或者等于b的最大整数;

运行发明方法的发送方运行一个编码算法con(·),算法输入包含σ1∈zq和公共参数params,算法对σ1∈zq基于params进行编码操作,输出包含(k1,v),其中k1∈zk,v∈zt,k和t为整数且其中之一大于2或小于-2;这意味着,k1和v其中之一必为多比特(即:无法用一个0-1比特来表示)。在实际的实现中,可以对σ1∈zq做任何可求逆的变换,比如对其平移一定的量(即:加或减去一个数等),此时rec对σ2∈zq做相应的逆变换。

运行发明方法的发送方运行con(σ1,params)得到k1∈zk和v∈zt后,可另外使用一层纠错码加密算法encode加密f(k1)得到encode(f(k1)),其中,f是关于k1的函数,然后计算v'=f′(encode(f(k1)),k1),其中,f′是关于f(k1),k1的函数,并公开传输v,v'给运行发明方法的接收方bob。

运行发明方法的接受者有一个保密输入σ2∈zq,收到发送方发送过来的v∈zt,检查v∈zt,若v∈zt则运行一个解码算法,算法输入包含σ2∈zq,v∈zt和公共参数params,其中|σ2-σ1|q≤d,对于任意整数a,|a|q定义为min{amodq,q-amodq},其中,对于任意整数a和正整数b,amodb表示在欧几里得除法中a除以b的唯一的落在[0,…,b-1]中的余数,min{·}定义为取最小值;d=fd(q,k,g),fd是关于q,k,g的函数;算法对σ2∈zq,v∈zt基于params进行解码,输出包含k2,其中k2∈zk,满足k2=k1。

运行发明方法的接收方bob运行rec(σ2,v,params),得到k2∈zk。若σ2与σ1的距离d满足一定的限制条件,则正确性成立,即k2=k1,双方纠错成功,生成k2=k1。即便σ2与σ1的距离超出d或传输过程引入的噪音缘故,接收方仍可使用纠错码解密算法decode解密f″(k2,v')得到decode(f″(k2,v'))=f(k1),其中,f″是关于k2,v'的函数,双方纠错成功,生成共同的密钥f(k1)。

具体实施方式

本发明给出一种高效的纠错编码解码方法;其中,{…}表示一个信息或者数值的集合;这里公共参数params={q,k,g,aux},其中q,k,g均为整数;辅助参数aux是包含{q′,α,β}的集合的可为空的子集合,其中q′=f1(q,k,g),α=f2(q,k,g),β=f3(q,k,g),f1,f2,f3是关于q,k,g的函数;假定公共参数params是固定的并被运行发明方法的用户事先获知;或者,在发明方法运行之前交换和协商这些参数并达成一致。在基于lwe的密钥协商协议当中,这些参数主要是由lwe问题来决定。对于两个整数i,j,其中i≤j,[i,j]表示整数集{i,i+1,…,j};对于任意正整数a,定义za为z/az,在本发明所在的技术领域,za表示为za=[0,a-1]或者其中,对于任意实数b,表示小于或者等于b的最大整数,「b」表示与b最接近的整数,且

运行发明方法的发送方运行一个编码算法con(·),算法输入包含σ1∈zq和公共参数params,输出包含(k1,v),其中k1∈zk,v∈zt,t=f(β,g),f是关于β,g的函数;算法运行如下:

⑴计算σa∈zq′;

⑵计算k1∈zk以及

⑶计算v∈zt;

运行发明方法的发送方运行con(σ1,params)得到k1∈zk和v∈zt后,可另外使用一层纠错码加密算法encode加密f(k1)得到encode(f(k1)),其中,f是关于k1的函数,然后计算v'=f′(encode(f(k1)),k1),其中,f′是关于f(k1),k1的函数,并公开传输v,v'给运行发明方法的接收方bob。

运行发明方法的接受者有一个保密输入σ2∈zq,收到发送方发送过来的v∈zt,检查v∈zt,若v∈zt则运行一个解码算法,算法输入包含σ2∈zq,v∈zt和公共参数params,其中|σ2-σ1|q≤d,对于任意整数a,|a|q定义为min{amodq,q-amodq},其中,对于任意整数a和正整数b,amodb表示在欧几里得除法中a除以b的唯一的落在[0,…,b-1]中的余数,min{·}定义为取最小值;d=fd(q,k,g),fd是关于q,k,g的函数;输出包含k2,其中k2∈zk,满足k2=k1。

运行发明方法的接收方bob运行rec(σ2,v,params),得到k2∈zk。若σ2与σ1的距离d满足一定的限制条件,则正确性成立,即k2=k1,双方纠错成功,生成k2=k1。即便σ2与σ1的距离超出d或传输过程引入的噪音缘故,接收方仍可使用纠错码解密算法decode解密f″(k2,v')得到decode(f″(k2,v'))=f(k1),其中,f″是关于k2,v'的函数,双方纠错成功,生成共同的密钥f(k1)。

如上所述的方法,其中,q,k,g为正整数,和/或,q′=lcm(q,k)是q和k的最小公倍数,和/或,α=q′/q,和/或,β=q′/k,和/或,β≥g均为正整数。当然,在发明方法的实际应用中,q’、α、β、t还可以是q、k、g的其它函数和变换,比如:q’是lcm(q,k)的一个函数或变换,α是q’/q的一个函数或变换,β是q’/k的一个函数或变换。

如上所述的方法,其中,σa是zq′上的随机分布或均匀分布,或者σa可以有效地转换为zq′上的均匀分布。

如上所述的方法,其中,σa的计算方法包括:从集合[0,α-1]或集合中均匀随机地选取元素e;计算σa=ασ1+e∈zq′。

如上所述的方法,其中,σa=ασ1+e∈zq′的计算方法包括:

⑴σa=ασ1+emodq′,或

⑵σa=ασ1+emod±q′,其中,对于任意整数a和正整数b,amod±b表示在欧几里得除法中a除以b的唯一的落在中的余数。

如上所述的方法,其中,k1=h1(σa,α,β,k),h1,h2是关于σa,α,β,k的函数。一般而言,h1输出的是σa关于公共参数的高位信息,而h2输出的是σa关于公共参数的低位信息,或者二者的输出相反。

如上所述的方法,其中,k1∈zk计算方法包括:或者k1=「σa/β」mod±k;和/或,的计算方法包括:或者

如上所述的方法,其中,k1∈zk=[0,k-1]的计算方法包括:

⑴若σa∈zq′=[0,q′-1],则令

⑵若σa∈zq′=[0,q′-1],则当σa-σamod±β=kβ时,令k1=0;否则,令k1=「σa/β」;

⑶若则当σa<0时,令否则,令

⑷若则当σa≥-β/2时,令k1=「σa/β」;否则,令k1=「σa/β」+k。

如上所述的方法,其中,h是关于g,β的函数。一般而言,v是σa关于公共参数的低位信息。

如上所述的方法,其中,v∈zt的计算方法包括:

如上所述的方法,其中,v∈zt中t的取值包含:t=g或t=g+1。一般而言,t是g的一个函数(比如,对g做平移操作)。

如上所述的方法,其中,解码算法rec(σ2,v,params)=hr(σ2,v,q,k,g),hr是关于σ2,v,q,k,g的可有效计算的函数。

如上所述的方法,其中,rec(σ2,v,params)的计算方法包括:

⑴k2=「ασ2/β-v/g」modk,或

⑵k2=「ασ2/β-(v+1/2)/g」modk,或

⑶k2=「ασ2/β-(v+r)/g」modk,其中r是一个实数。

如上所述的方法,其中,d满足的关系式包含:

⑴(2d+1)k<q(1-1/g),或

⑵(2d+2)k<q(1-1/g),或

⑶(2d+1)k<q(1-2γ/g),其中γ定义为max{|r|,|1-r|},对于任意实数a,|a|表示取a的绝对值,max{·}定义为取最大值。

⑷(d+1)k<q(1/2-γ/g)。

如上所述的方法,其中,实数r∈[0,1]。

如上所述的方法,其中,k,g的取值包含:其中κ1,κ2是正整数;q的取值包含:q是素数,或其中κ3是正整数,或q=kg。

在发明方法的实际应用中,示例的con和rec具体实施方式如下:示例实施方式一:

con(σ1,params):

1.从集合中均匀随机地选取元素e;

2.计算σa=ασ1+emodq′;

3.当σa-σamod±β=kβ时,令k1=0;否则,令k1=「σa/β」;

4.计算

5.计算

6.保密存储k1,公开传输v;

rec(σ1,v,params):

1.k2=「ασ2/β-v/g」modk;

2.保密存储k2。

其中,示例的参数取值包括:

⑴β,g取偶数且g≤β≤2g。

⑵β,g取奇数。

示例实施方式二:

con(σ1,params):

1.从集合中均匀随机地选取元素e;

2.计算σa=ασ1+emodq′;

3.当σa-σamod±β=kβ时,令k1=0;否则,令k1=「σa/β」;

4.计算

5.计算

6.保密存储k1,公开传输v;

rec(σ1,v,params):

1.k2=「ασ2/β-(v+1/2)/g」modk;

2.保密存储k2。

其中,示例的参数取值包括:

⑴β取偶数,g取奇数,且g≤β≤2g。

⑵β取奇数,g取偶数。当β是素数时,这是较佳的实施方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1