专利名称:防窃听和防污染的网络编码方法
技术领域:
本发明涉及网络安全,具体地说是一种能防窃听和防污染的网络编码 方法,可用于对秘密文件的传输。
技术背景业内周知,网络编码在提高了网络的吞吐量和可靠性的同时也带来了 不可忽视的安全问题。首先,网络中传输的消息可能被窃听;其次,由恶 意结点生成的污染信息包与网络中其它信息包编码后,将会生成另一个污 染信息包传输到其它结点,使污染扩散造成信宿节点不能解码出信源消息 的结果。对于窃听问题,由于在实际应用中对安全性的要求并不一定要像 信息论安全那样高,所以对网络编码的安全性针对"弱安全"来考虑。美 国学者K. Bhattad和K. R. Narayanan在他们2005年发表在"7T e ,j>W Won^s力o/ 07 A""『。i^ Cb力'77g 7"/ eozT朋〃 ^c^/catio/zs" 上的论文 "Weakly secure network coding" 中首次定义了这样一个弱安全模型, 但他们的编码方法不能使随机网络编码以概率l达到安全性的要求。对于污 染问题,美国学者M. N. Krohn、 M. J. Freedman和D. Mazieres在他们 2004年发表在5y/z p 5"ecwriz^ /Piracy"上的论文"On-the-fly verification of rateless erasure codes for efficient content distribution"中提出的同态签名算法解决了此类问题,但是由于需要传 输的签名值即Hash值,要与被传输文件的大小成正比,因此,不仅通信开 销大,而且其计算复杂度高。中国学者Qiming、 Dah-Ming Chiu和John C. S. Lui针X寸此问题于2006年在"iE5^ i/7Z^277<3"^7a〗C0/7/ere/7ce Afez^orA 尸rc^occ^51 ,,上发表论文"On the practical and security issues ofbatch content distribution via network coding。,,虽然他们提出的分 块文件传输的验证方法可以降低通信开销和计算复杂度,但是此方法又存 在三方面的不足 一是偏离了经典的网络编码体制无法实现网络的最大 流,并且会在信宿引起延迟;二是污染信息包可能通过交换而不经验证就 被传输,以致污染被扩散。三是编码向量的传输会带来很大的通信开销。 发明的内容本发明目的在于避免上述已有技术的不足,提出一种可防窃听和防污 染的网络编码方法,以实现低通信开销的安全网络编码。实现本发明目的的技术方案是通过对信源和信宿的简单编码设计一 种能防窃听和防污染的安全的网络编码。当攻击者能窃听到的信道的数目 小于网络的最大流m,并能污染一定数量的信道和节点时,通过在原始信 源消息中加入少量冗余使得的随机网络编码能防窃听的概率为1,并且使每 个节点能够以较低的计算复杂度来验证所收消息的完整性。具体过程如 下(1) 通过信源节点选取随机数生成器和Hash函数的参数,分发到网络 中的所有节点;(2) 通过信源节点选择一组随机数,并通过原始信源消息X和所选的 随机数得到新的信源消息X";(3) 由信源节点取定Hash函数中的一些公开参数作为所述新信源消息 X"的每个信息包的Hash值;(4) 信源节点用Hash函数中的秘密参数计算出一组数值作为冗余加入 到新信源消息X"中,得到传输的信源消息文;(5) 网络中的每个节点选取生成局部编码向量的种子,生成局部编码 向量q,...,q,并将选取的种子分发到该节点所有的下行节点;(6) 网络中的每个节点用所述的局部编码向量对所收到的信息包进行 编码,并将编码后的消息包U传输给邻近的下行节点;(7) 所述邻近的下行节点对收到的编码后消息包U进行验证,对通过 验证的编码后消息包U由该节点继续编码并向其邻近下行节点传输,对未 通过验证的编码后消息包U则丢弃;(8) 由信宿节点解码出原始信源消息X。 本发明具有如下优点(1) 由于本发明选取公开参数作为Hash值,和采用所有节点共享的随 机数生成器生成编码向量,无需分发Hash值,也无需分发编码向量,因而 通信开销相对很低;(2) 由于本发明对原始信源消息采用先编码再传输的过程,因此可使 防窃听的概率为l;(3) 由于本发明在每个节点都能验证信息包是否被污染,因此有效的 防止了污染的扩散。以下结合附图对本发明目的、方案作进一步说明。
图l是网络中节点的编码次序示意图; 图2是本发明的编码过程示意图; 图3是本发明的验证过程示意图。
具体实施方式
一、本发明所应用的数学理论及技术术语说明1、 Hash函数Hash函数就是把任意长的输入信息包变化成固定长的输出包的一种 函数,这个输出包称为该信息包的Hash值。 一个安全的Hash函数应该至 少满足以下几个条件;①输入长度是任意的;②输出长度是固定的, 一般至少取128bitS长,以便抵抗生日攻击;③对每一个给定的输入,可很容易的计算其输出,即Hash值; 给定Hash函数的描述,找到两个不同的输入信 息包Hash到同一个值是计算上不可行的,或给定Hash函数的描述和一个随 机选择的信息包,找到另一个与该信息包不同的信息包,使得它们Hash到同 一个值是计算上不可行的。Hash函数主要用于完整性校验和提高数字签名 的有效性,目前已有很多方案。本发明所用的Hash函数为一同态Hash函 数,即任意两个信息包Hash值的乘积等于这两个信息包和的Hash值。2、 随机数生成器本发明中,随机数生成器是一个用来输出随机向量的函数。输出的随机 向量的长度可由输入的数值即种子,来控制。如非线性移位寄存器生成序 列的时候,寄存器内的状态是不停的变化的,这时非线性寄存器就可以看 成一个随机数生成器,而寄存器的初始状态可看为所述种子。3、 有关技术术语图l是一个有向无环网络,本发明的有关技术术语可通过图l中编码次 序说明如下(1) 节点"为"信源",信源是消息的发布者,即上载者。(2) 节点/,g为"信宿",信宿是消息的接收者,即最终用户。(3) 节点6,c,《e为中间节点,它们只对收到的消息进行编码并传输, 不是最终用户。(4) 扮为网络中的一个有向信道,其中6称为s的邻近下行节点, a称为6的邻近上行节点;同样对于信道仏d和仏力,则^n席卩为6的邻 近下行节点。(5) A /S^都称为a的下行节点。图l中所有节点都为节点a的下行节 点,同样,所有节点都为节点-Bg的上行节点。(6) 本发明中的节点按从上行节点到下行节点的次序依次进行编码。二、本发明的编码过程 参照图2,本发明的具体过程如下步骤一、通过信源节点选取随机数生成器和Hash函数的参数,分发到网络中的所有节点。1、 选取一个用来生成编码向量的随机数生成器,并将其分发到网络中的所有节点;2、 选取一个有限域Fp和Hash函数中的参数《,g, o(g) = p,这里o(g)为 参数g在有限域《上的阶数,Fp为F《的一个子域;3、 在有限域^内随机选取一组数;4、 计算另一组数g。,gp…,g^, g,-g"'mod《((^"" + l),这里g。,g,,…,C 和A《是Hash函数的公开参数,iv^,…,^+,和g为Hash函数的秘密参数;5、 将Hash函数的公开参数A仏g。,gp…,g。+,分发到网络中的所有节点, 秘密参数仅为信源所知。步骤二、通过信源节点选择一组随机数,并通过原始信源消息X和所选 的随机数得到新的信源消息X"。1、选择一组随机数n,...人,并用所述随机数生成一个范德蒙行列式P:<formula>formula see original document page 10</formula>2、 对原始信源消息X左乘所述行列式P得原始信源消息的线性变换X'<formula>formula see original document page 10</formula>
3、 将随机数^..二作为冗余加入到所述^的每个信息包中得到新信源 消息X":<formula>formula see original document page 10</formula><formula>formula see original document page 0</formula>步骤三、由信源节点取定Hash函数中的一些公开参数,作为所述新信 源消息X"的每个信息包的Hash值。1、 列出Hash函数的公开参数/7,《,g。,g,,…u2、 从公开参数^&,...,^|中选取&,...,&;3、 将gp…,&作为新信源消息X"的每个信息包的Hash值。步骤四、信源节点用Hash函数中的秘密参数计算出一组数值作为冗余 加入到新信源消息X"中,得到传输的信源消息文。1、 列出Hash函数的秘密参数"。,"p…,u;2、 用Hash函数的秘密参数"。,^…,"^计算新信源消息X"的冗余<formula>formula see original document page 0</formula>《"w 式中,p为Hash函数的公开参数,、(lS"附,lq^)为新信源消息 X〃中的元素,"l&、m)为选择的随机数,m为原始信源消息信息包的个数,"为原始信源消息中信息包的维数;3、 把11。,...,^。加入到所述新信源消息^的每个信息包中,得到传输的信源消息X:<formula>formula see original document page 0</formula>该新信源消息i的每个信息包的Hash值为所取的Hash函数的公开参 数&,…丄。步骤五、网络中的每个节点选取生成局部编码向量的种子,生成局部 编码向量Ci,…,q,并将选取的种子分发到该节点所有的下行节点。1、 根据网络中的每个节点所收到的信息包的数目选取一个用以生成局 部编码向量的种子,并将其分发到该节点的所有下行节点;2、 用所选择的种子在随机数生成器中生成局部编码向量q,…,q,该局部编码向量的长度与每个节点所收到的信息包的数目相同。步骤六、网络中的每个节点用所述的局部编码向量对所收到的信息包进行编码,并将编码后的消息包u传输给邻近的下行节点。1、 网络中的每个节点根据局部编码向量c,,…,q对所收到的信息包进编码<formula>formula see original document page 12</formula>式中,A为网络中节点所收到的信息包的数目,w,,.,.,^为网络中每个节点所收到的A个信息包;2、 网络中的每个节点将其编码后的消息包u和选取的种子c传输给 本节点的邻近下行节点。步骤七、所述的邻近下行节点对收到的编码后消息包u进行验证。 参照图3,本发明对收到的编码后消息包u进行验证过程如下1、 用种子c在随机数生成器中生成局部编码向量c,,...,q;2、 根据收到的种子,邻近下行节点计算编码后的信息包u对应的全局 编码向量<formula>formula see original document page 12</formula>式中,向量^,...,1(^""为信息包、(1^^)对应的全局编码向量3、 根据Hash函数的公开参数,计算编码后消息包u的第一个Hash值式中,g。,…,g"+,,《为Hash函数的公开参数,w。,…,气,r为编码后信息包U中的元素;4、 根据全局编码向量^…, 计算编码后消息包u的第二个Hash值 式中,g,,...,g",w为Hash函数的公开参数;5、 验证第一个Hash值巧与第二Hash值A是否相等,若//,=//2则信 息包完整,若//^//2则证明信息包被污染;6、 对完整的信息包由所述的邻近下行节点继续编码并向其邻近下行 节点传输,对污染的信息包则丢弃。步骤八、由信宿节点解码出原始信源消息X。1、 由信宿节点解码出信源编码后的所述传输信源消息i,并得到选择 的随机数。,...,。2、 由随机数^...,^计算出范德蒙行列式?;3、 由原始信源消息的线性变换X^PX左乘范德蒙行列式P的逆矩阵 P',得到原始信源消息X,即:X=P"X'。三、本发明防窃听者的安全性可通过以下理论证明进一步说明 由于信源传输的是被编码后的传输信源消息文,因此窃听者能窃听到 的消息是A,i。只要窃听者得不到信源开始选的随机数^…人,他便不能得到关于原始信源消息X的全局编码向量,进而也就得不到关于X的任何有 意义的信息,也就是说只要窃听者对他所得到的消息作线性变换得不到开始选择的随机数。,...,^ ,即.*式中,6,是有限域Fm上的一个)t,xm矩阵,/是一个mxm单位矩阵。由于窃听者能窃听到的信道的数目小于网络的最大流m,所以无论取 什么样的编码向量,条件6,A,i^7i (V6,,/)都可以满足,也就是说应用随机网络编码时能防窃听的概率为1,说明本发明具有很好的安全性。
权利要求
1. 一种防窃听和防污染的网络编码方法,包括如下过程(1)通过信源节点选取随机数生成器和Hash函数的参数,分发到网络中的所有节点;(2)通过信源节点选择一组随机数,并通过原始信源消息X和所选的随机数得到新的信源消息X″;(3)由信源节点取定Hash函数中的一些公开参数,作为所述新信源消息X″的每个信息包的Hash值;(4)信源节点用Hash函数中的秘密参数计算出一组数值作为冗余加入到新信源消息X″中,得到传输的信源消息id="icf0001" file="S200810018104XC00011.gif" wi="6" he="6" top= "125" left = "119" img-content="drawing" img-format="tif" orientation="portrait" inline="no"/>(5)网络中的每个节点选取生成局部编码向量的种子,生成局部编码向量c1,...,ck,并将选取的种子分发到该节点的所有下行节点;(6)网络中的每个节点用所述的局部编码向量对所收到的信息包进行编码,并将编码后的消息包u传输给邻近的下行节点;(7)所述邻近的下行节点对收到的编码后消息包u进行验证,对通过验证的编码后消息包u由该节点继续编码并向其邻近下行节点传输,对未通过验证的编码后消息包u则丢弃;(8)由信宿节点解码出原始信源消息X。
2. 根据权利要求l所述的防窃听和防污染的网络编码方法,其中步骤(2),按如下过程进行(2a)选择一组随机数t...人,并用所述随机数生成范德蒙行列式P:<formula>formula see original document page 2</formula>(2b)对原始信源消息X左乘所述行列式P,得到原始信源消息的线<formula>formula see original document page 3</formula>(2c)将随机数^...,^作为冗余加入到所述^的每个信息包中,得至l」新信源消息X":<formula>formula see original document page 3</formula>
3. 根据权利要求l所述的防窃听和防污染的网络编码方法,其中步 骤(3),按如下过程进行(3a)列出Hash函数的公开参数M,g0,g,,..《+I;(3b)从公开参数^&,..《+1中选取&,...,^;(3c)将g,,…,^作为新信源消息X"的每个信息包的Hash值。
4. 根据权利要求l所述的防窃听和防污染的网络编码方法,其中步 骤(4),按如下过程进行(4a)列出Hash函数的秘密参数"。,",,…,u ;(4b)用Hash函数的秘密参数"。,^...,""+,计算新信源消息X"的冗余<formula>formula see original document page 3</formula>附 式中,p为Hash函数的公开参数,〈(BKm,Bj^n)为新信源消 息X"中的元素,"l^、m)为选择的随机数,m为原始信源消息中信息包 的个数,《为原始信源消息中信息包的维数;(4c)将x,. 信源消息X:^。加入到新信源消息X"的每个信息包中,得到传输的信源消息X:<formula>formula see original document page 4</formula>该传输的信源消息文的每个信息包的Hash值为所取的Hash函数的 公开参数gp...,^。
5. 根据权利要求l所述的防窃听和防污染的网络编码方法,其中步 骤(5),按如下过程进行(5a)根据网络中的每个节点所收到的信息包的数目选取一个用以生 成局部编码向量的种子,并将其分发到该节点的所有下行节点;(5b)用所选择的种子在随机数生成器中生成局部编码向量c,,...,q,该局部编码向量的长度与每个节点所收到的信息包的数目相同。
6. 根据权利要求l所述的防窃听和防污染的网络编码方法,其中步 骤(6),按如下过程进行.-(6a)网络中的每个节点根据局部编码向量A,...,q对所收到的信息包进行编码<formula>formula see original document page 4</formula>式中,u为编码后的信息包,A为网络中每个节点所收到的信息包的 数目,Wl,...,w4为网络中每个节点所收到的A个信息包;(6b)网络中的每个节点将其编码后的消息包u和选取的种子c传输 给自己的邻近下行节点。
7. 根据权利要求l所述的防窃听和防污染的网络编码方法,其中步 骤(7)所述的邻近下行节点对收到的编码后消息包u进行完整性验证, 按如下过程进行(7a)用种子c在随机数生成器中生成所述局部编码向量q,...,c,;(7b)根据收到的种子,所述的邻近下行节点计算收到的信息包u对应的全局编码向量<formula>formula see original document page 5</formula>式中,向量 ,…,、(l"^)为信息包w,(l^W)对应的全局编码向量; (7c)根据所选Hash函数的公开参数,计算编码后消息包u的第一个 Hash值^=(flg'w'd)mod9 式中,为Hash函数的公开参数,w。,…,气,r为编码后信息包U中的元素;(7d)根据全局编码向量^…,^计算编码后消息包u的第二个Hash值式中,gp...,gj为Hash函数的公开参数;(7e)验证第一个Hash值巧与第二Hash值A是否相等,若//1=//2则信 息包完整,若//一//2则信息包被污染。
8.根据权利要求l所述的防窃听和防污染的网络编码方法,其中步 骤(8),按如下过程进行(8a)由信宿节点解码出所述传输信源消息i,并得到选择的随机数(8b)由随机数。,…,^计算出范德蒙行列式P;(8c)由原始信源消息的线性变换X'-PX左乘范德蒙行列式P的逆矩 阵P",得到原始信源消息X,即X=P—'X'。
全文摘要
本发明公开了一种防窃听和防污染的网络编码方法。其具体过程为通过原始信源消息X和所选的随机数得到新的信源消息X″;取定Hash函数中的公开参数作为所述的新信源消息X″的每个信息包的Hash值;用Hash函数中的秘密参数计算出一组数值作为冗余加入到新信源消息X″中,得到传输的信源消息X;通过网络中的每个节点选取一个用以生成局部编码向量的种子,在随机数生成器中生成局部编码向量,并用该局部编码向量对所收到的信息包进行编码;将编码后的消息包u传输给邻近的下行节点进行验证,通过验证则继续编码并向其邻近下行节点传输,未通过验证则丢弃;由信宿节点解码出原始信源消息X。本发明具有安全性能好,通信开销低的优点,可用于对秘密文件的传输。
文档编号H04L9/32GK101267277SQ20081001810
公开日2008年9月17日 申请日期2008年4月30日 优先权日2008年4月30日
发明者周业军, 晖 李, 马建峰 申请人:西安电子科技大学