基于Knuth碼的聯(lián)合信道與安全編譯碼設(shè)計(jì)方法
【專利摘要】本發(fā)明是基于Knuth碼的聯(lián)合信道與安全編譯碼設(shè)計(jì)方法,針對(duì)常規(guī)Knuth編碼碼流不具備加密功能的問(wèn)題,設(shè)計(jì)了一種基于密鑰控制的隨機(jī)Knuth編碼方法,該方法將隨機(jī)二進(jìn)制數(shù)和經(jīng)典Knuth編碼器相關(guān)聯(lián)。首先,采用密鑰Key產(chǎn)生一個(gè)隨機(jī)二進(jìn)制數(shù)b=f(Key),其中f(·)為產(chǎn)生隨機(jī)二進(jìn)制數(shù)函數(shù);其次,對(duì)輸入的待編碼矢量u和二進(jìn)制數(shù)b,用b確定搜索最小平衡位置j的方向(b=0,前向搜索;b=1,后向搜索),輸出最小平衡位置索引j和部分取反操作向量u(j),即u(j)=v(u,b),其中v(,·,)為部分取反操作函數(shù);最后,在u(j)后面加上位置索引j的平衡編碼序列j2,得到輸出碼流符號(hào)表示兩個(gè)二進(jìn)制序列的結(jié)連。解碼時(shí),接收端采用與編碼端相同的Key和隨機(jī)函數(shù)f(·),產(chǎn)生隨機(jī)二進(jìn)制數(shù)b,然后將收到序列分割為數(shù)據(jù)序列u(j)和校驗(yàn)序列j2,再通過(guò)查表獲得最小平衡位置點(diǎn)j,最后進(jìn)行部分反轉(zhuǎn)操作獲得正確的比特序列u。
【專利說(shuō)明】基于Knuth碼的聯(lián)合信道與安全編譯碼設(shè)計(jì)方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及Knuth碼,也稱為平衡碼(Balanced Codes)編碼碼流的一種聯(lián)合信道與安全編解碼器設(shè)計(jì)方法,主要涉及具有碼流檢錯(cuò)和加密功能的隨機(jī)Knuth碼設(shè)計(jì)方法。
【背景技術(shù)】
[0002]為了在有噪信道上進(jìn)行可靠傳輸,需要克服信道中的噪聲和干擾。信道編碼(Channel Coding)或稱前向糾錯(cuò)編碼(Forward Error Correction, FEC),根據(jù)一定的準(zhǔn)則在待發(fā)送的信息碼元中加入必要的校驗(yàn)碼元,接收端利用校驗(yàn)碼元與信息碼元之間的編碼準(zhǔn)則,檢測(cè)和糾正差錯(cuò),提高信息碼元傳輸?shù)目煽啃?。研究信道編碼的目標(biāo)是利用最少的校驗(yàn)碼元,獲得較高的可靠性傳輸,即在保證傳輸可靠性的前提下,盡量提高編碼效率。Knuth碼是斯坦福大學(xué)著名學(xué)者Donald Ε.Knuth于1986年在文章《Efficient Balanced Codes))中提出的一種具有檢錯(cuò)功能的信道編碼方案。該碼要求碼字中符號(hào)“I”和符號(hào)“O”的個(gè)數(shù)相同,因此,也稱為平衡碼(Balanced Codes)。
[0003]該碼的主要參數(shù)為:信息比特?cái)?shù)為k,檢驗(yàn)比特?cái)?shù)為r,碼長(zhǎng)n = k+r,共有2k個(gè)碼字,每個(gè)碼字中符號(hào)“I”的個(gè)數(shù)(或稱Hamming重量)為L(zhǎng)^2」,其中L.」為下取整函數(shù)。Knuth碼編碼簡(jiǎn)單,且結(jié)構(gòu)特性良好,具有廣泛的應(yīng)用??捎糜跈z測(cè)所有的單向錯(cuò)誤(符號(hào)“I”錯(cuò)為符號(hào)“0”,或 反過(guò)來(lái)),對(duì)延時(shí)不敏感異步空間通信,超大規(guī)模集成電路(Very LargeScale Integration, VLSI)系統(tǒng)降噪,光盤數(shù)據(jù)存儲(chǔ)等。傳統(tǒng)Knuth碼編碼器框圖如圖1所
/Jn ο
[0004]在Knuth的開(kāi)創(chuàng)性文章中,提出了一種簡(jiǎn)單的并行編碼方案(Parallel CodingScheme)。設(shè)輸入信息向量為u,其長(zhǎng)度為k, u(j) = v(u)表示向量u前j比特取反后的向量,v(.)為部分反轉(zhuǎn)操作函數(shù),其中j = 1,2,..., ko Knuth證明了對(duì)所有輸入向量u,至少存在一個(gè)平衡位置點(diǎn)」,使1^_)的Hamming重量為μ/2」,ΒΡιι?)是平衡的。為傳輸和編碼方便,選擇最小值j作為u的平衡位置點(diǎn)。為了對(duì)位置索引j進(jìn)行平衡編碼,Knuth編碼方案需要在索引j與r比特的平衡序列j2之間建立一一映射關(guān)系表(j = 0,1,…,k-1)。獲得最小值j后,通過(guò)查表得到對(duì)應(yīng)的r比特平衡序列j2。最后輸出信息向量u的Knuth編碼C = A,符號(hào)?表示兩個(gè)二進(jìn)制序列的結(jié)連。解碼時(shí),解碼器將接收矢量c分割為k比特?cái)?shù)據(jù)向量ιι?)和r比特檢驗(yàn)向量j2,采用查表方式獲得最小平衡位置點(diǎn)j,然后取反11(1的前j比特,則可獲得發(fā)送信息向量U。
[0005]例如,設(shè)信息長(zhǎng)度k = 10,校驗(yàn)比特?cái)?shù)r = 6,u = 0111010110,則u(3)=1001010110,平衡位置點(diǎn)有3個(gè),分別為j = 3,5,7,選擇最小值j = 3進(jìn)行編碼。設(shè)索引3對(duì)應(yīng)的6比特平衡序列為j2 = 011001,最后輸出編碼碼流為c = =勵(lì)1010110011001。在接收端,解碼器首先從接收向量中分別提取10比特?cái)?shù)據(jù)向量u(3) = 1001010110和6比特校驗(yàn)向量j2 = 011001,然后查表獲得該校驗(yàn)向量對(duì)應(yīng)的最小平衡位置為3,最后將u(3)=1001010110的前3位取反,獲得原輸入信息向量u = 0111010110。
[0006]從編碼器框圖1可以看出,Knuth編碼主要由四個(gè)部件組成,該碼流不具備加密功能,在信道(特別是無(wú)線信道)上傳輸容易泄密。為獲得加密碼流,本發(fā)明基于Knuth碼具有良好結(jié)構(gòu)的特點(diǎn),對(duì)傳統(tǒng)Knuth碼編碼器的最小位置平衡點(diǎn)的搜索方向進(jìn)行隨機(jī)化處理,如圖2所示,從而獲得加密碼流。
【發(fā)明內(nèi)容】
[0007]為了解決經(jīng)典Knuth碼流不具備加密功能的問(wèn)題,本發(fā)明設(shè)計(jì)了一種基于密鑰控制的隨機(jī)編碼方法,實(shí)現(xiàn)了 Knuth碼流的檢錯(cuò)和加密功能。
[0008]本發(fā)明解決技術(shù)問(wèn)題所采用的技術(shù)方案是:以密鑰Key為種子,產(chǎn)生一個(gè)隨機(jī)二進(jìn)制數(shù)b。該二進(jìn)數(shù)用于控制Knuth編碼器的平衡位置點(diǎn)搜索方向:若b = 0,與經(jīng)典Knuth編碼器搜索方向相同,即前向搜索輸入信息序列的平衡位置點(diǎn);反之,若b = 1,與經(jīng)典Knuth編碼器搜索方向相反,即后向搜索輸入信息序列的平衡位置點(diǎn)。經(jīng)過(guò)新設(shè)計(jì)的編碼器編碼后,輸出碼流具有加密功能。
[0009]在接收端,解碼器首先從接收矢量中分割出k比特?cái)?shù)據(jù)向量uu)和r比特檢驗(yàn)向量戈,通過(guò)查表方式獲得最小平衡位置點(diǎn)j ;然后,采用與編碼端相同的密鑰Key產(chǎn)生隨機(jī)二進(jìn)制數(shù)b,確定正確的取反方向;最后,將數(shù)據(jù)向量!!^進(jìn)行部分取反獲得正確信息序列。
[0010]有益效果是,本發(fā)明設(shè)計(jì)的隨機(jī)Knuth編碼器,輸出碼流實(shí)現(xiàn)了檢錯(cuò)和加密功能,將信道編碼和數(shù)據(jù)加密融合成一個(gè)聯(lián)合信道安全編碼器,降低了分離的信道編碼器和加密器的編碼復(fù)雜度。進(jìn)一步,若通過(guò)密鑰Key為種子產(chǎn)生長(zhǎng)度為N的隨機(jī)二進(jìn)制序列,將輸入信息序列分為N組,每組長(zhǎng)度為k,采用上述聯(lián)合信道安全編碼方法,可得到長(zhǎng)度為NXn的加密Knuth碼流,增強(qiáng)了數(shù)據(jù)的保密性。
【專利附圖】
【附圖說(shuō)明】
[0011]圖1經(jīng)典Knuth編碼器模型
[0012]圖中:1.最小平衡位置搜索器,2.位置索引編碼器,3.二進(jìn)制序列結(jié)連器,u為輸入待編碼的長(zhǎng)度為k比特的信息序列,j為輸入信息序列的最小平衡位置點(diǎn),u(J)為k比特的平衡序列,J2為與j對(duì)應(yīng)的r比特平衡序列,c為n = k+r比特的輸出平衡序列。
[0013]圖2修改后的隨機(jī)Knuth編碼器模型
[0014]圖中:4.隨機(jī)二進(jìn)制數(shù)發(fā)生器,Key為輸入密鑰,b為模塊4輸出的隨機(jī)二進(jìn)制數(shù)。【具體實(shí)施方式】
[0015]本發(fā)明基于Knuth碼的聯(lián)合信道安全編解碼器設(shè)計(jì)方法,主要分為編碼碼流的隨機(jī)化和接收碼流的解碼,實(shí)現(xiàn)碼流的檢錯(cuò)、加密和解密功能。
[0016]1.隨機(jī)Knuth編碼器設(shè)計(jì)方法
[0017]分析經(jīng)典Knut h編碼器可知:如果編碼器在搜索平衡點(diǎn)位置時(shí),搜索方向是隨機(jī)的,在傳輸時(shí)即使碼流被截獲,竊聽(tīng)者由于不能獲得正確的搜索方向,從而不能獲得正確的部分取反結(jié)果,進(jìn)而實(shí)現(xiàn)了編碼碼流的保密性,本發(fā)明的隨機(jī)Knuth編碼器如圖2所示。該編碼系統(tǒng)由隨機(jī)二進(jìn)制數(shù)發(fā)生器和經(jīng)典Knuth編碼器組成,其輸入為編碼序列,輸出為加密序列。本發(fā)明設(shè)計(jì)的隨機(jī)Knuth編碼器的具體實(shí)施方案如下。
[0018]首先輸入密鑰Key,由隨機(jī)二進(jìn)制數(shù)發(fā)生器模塊4產(chǎn)生一個(gè)隨機(jī)二進(jìn)制數(shù)b。[0019]其次,將k比特信息序列U輸入最小平衡位置搜索器模塊1,模塊I根據(jù)二進(jìn)制數(shù)b確定的搜索方向,搜索序列u的最小平衡位置點(diǎn)j,輸出最小值j和部分取反序列ιιω,將索引值j輸入位置索引編碼器模塊2和ιιω輸入二進(jìn)制序列連接器模塊3。
[0020]再次,模塊2對(duì)索引j進(jìn)行編碼,輸出r比特二進(jìn)制平衡序列j2,并輸入模塊3。
[0021]最后,模塊3將序列ιιω和j2結(jié)連成一個(gè)編碼序列c = --)十Λ輸出,其中φ表示兩個(gè)二進(jìn)制序列的結(jié)連。經(jīng)過(guò)隨機(jī)Knuth器輸出的編碼序列c具有檢錯(cuò)和加密功能。 [0022]例如,設(shè)k = 10, r = 6,則n = k+r = 16。輸入密鑰Key產(chǎn)生的隨機(jī)二進(jìn)制數(shù)b=1,輸入信息序列U = 0111010110。根據(jù)我們?cè)O(shè)計(jì)的隨機(jī)Knuth編碼器,后向搜索輸出最小平衡位置點(diǎn)j = 3和部分取反序列u(3) = 0111010001,位置索引j = 3對(duì)應(yīng)的平衡序列為J2 = 011001。最后,二進(jìn)制序列結(jié)連器輸出的Knuth碼為C = Ww^z2=Oiiioioooioiiooi,這是長(zhǎng)度為16比特的平衡碼,這個(gè)編碼序列與前面經(jīng)典Knuth編碼器輸出序列不同。
[0023]2.碼流解碼方法設(shè)計(jì)
[0024]在通信系統(tǒng)的接收端收到序列后,經(jīng)過(guò)下面四個(gè)步驟進(jìn)行解碼:首先,對(duì)接收序列進(jìn)行分割,獲得k比特?cái)?shù)據(jù)序列Uu)和r比特校驗(yàn)序列j2 ;其次,使用與編碼端相同的密鑰,產(chǎn)生隨機(jī)二進(jìn)制數(shù)b (與編碼端的b相同);再次,由j2查表獲得最小平衡位置點(diǎn)j ;最后,根據(jù)位置索引j和b確定的取反方向,對(duì)Uw部分取反獲得信息序列U。
[0025]例如,設(shè)k = 10, r = 6,則n = k+r = 16。輸入密鑰Key產(chǎn)生的隨機(jī)二進(jìn)制數(shù)b =1,收到的數(shù)據(jù)序列為 C = 0111010001011001,分割得到 u(3) = 0111010001 和 j2 = 011001。查表得最小平衡位置點(diǎn)j = 3,對(duì)u(3) = 0111010001的后3位取反得正確信息序列u =0111010110。
[0026]另一方面,按照經(jīng)典Knuth解碼方案:對(duì)接收序列c = 0111010001011001進(jìn)行分割得 u(3) = 0111010001 和 J2 = 011001。查表得最小平衡位置點(diǎn) j = 3,對(duì)u(3) = 0111010001
的前3位取反得錯(cuò)誤信息序列U = 1001010001。說(shuō)明沒(méi)有正確的密鑰,不能獲得正確解碼序列,從而實(shí)現(xiàn)了碼流的保密性。
【權(quán)利要求】
1.一種基于密鑰控制的隨機(jī)Knuth編解碼設(shè)計(jì)方法,其特征是數(shù)據(jù)經(jīng)過(guò)編碼后,利用隨機(jī)二進(jìn)制數(shù)控制經(jīng)典Knuth編碼器,實(shí)現(xiàn)編碼碼流的檢錯(cuò)和加密功能。
2.根據(jù)權(quán)利要求1所述的基于密鑰控制的Knuth編解碼器設(shè)計(jì)方法,其特征是:編碼器與密鑰控制的隨機(jī)二進(jìn)制數(shù)相關(guān),采用密鑰產(chǎn)生一個(gè)隨機(jī)二進(jìn)制數(shù),將該數(shù)用于控制編碼器輸出,獲得加密碼流。
3.根據(jù)權(quán)利要求1所述的基于密鑰控制的Knuth編解碼器設(shè)計(jì)方法,其特征是:對(duì)解碼端收到的碼流,在解碼時(shí),由與編碼端相同的密鑰產(chǎn)生隨機(jī)二進(jìn)制數(shù),然后根據(jù)該數(shù)值輸出正確解碼序列。
【文檔編號(hào)】H03M7/12GK103944577SQ201310021196
【公開(kāi)日】2014年7月23日 申請(qǐng)日期:2013年1月22日 優(yōu)先權(quán)日:2013年1月22日
【發(fā)明者】陳德元, 凃國(guó)防 申請(qǐng)人:中國(guó)科學(xué)院大學(xué)