一種基于ldpc變碼技術的糾錯加密方法
【專利摘要】發明提出了一種基于LDPC變碼技術的糾錯加密方法,將AES加密體制、LDPC變碼技術以及加噪技術相結合,在保證糾錯能力的同時提升數據的安全性。本發明所提的方法首先對數據首先按照AES體制進行加密,然后對其進行LDPC編碼,而且對每一幀數據采用不同的LDPC碼(即LDPC變碼),最后對LDPC碼編碼后的數據進行加噪,使其發生少量誤碼。由于在編碼時人為加入了誤碼,因此不論信道好壞,接收端接收的數據里肯定存在誤碼。接收端只有同時知道AES密鑰與LDPC碼具體參數時才能得到正確的原始數據并且獲得編碼增益。
【專利說明】
一種基于LDPC變碼技術的糾錯加密方法
技術領域
[0001] 本發明屬于通信領域,具體涉及一種糾錯加密方法。
【背景技術】
[0002] 無線通信技術近年來在軍事、民用等各方面得到了廣泛應用,在給人們帶來便利 的同時,無線信道的開放性也使得信息安全問題變得越來越突出,信息在傳輸過程中的安 全性問題越來越受到人們的關注。傳統的有線通信通常使用數據加密等方法來保障通信安 全,盡管這些方法在無線通信中仍然可行,但傳統的上層加密解決方案逐漸受限于竊聽方 計算能力的日益增強和Ad-hoc等無中心網絡密鑰管理和分配等因素,它們都沒有完全彌補 由無線信道的開放性所造成的安全漏洞。如何在物理層利用無線通信系統自身的特點來解 決通信信息的安全傳輸成為信息安全研究領域新的熱點。
[0003] 另一方面,自二^^一世紀以來,低密度奇偶校驗(LDPC,low-density parity-check) 碼由于其較高的編碼增益以及可高速編譯碼等特點 ,已經在廣播電視、通信、存儲等 領域得到了廣泛的應用。如何將具有高編碼增益的LDPC碼用在信息安全領域,使系統同時 具有高的安全性和高的抗差錯性是近年來的研究熱點。例如在文獻1《認知系統AES-LDPC糾 錯加密器的設計與性能分析》(系統工程與電子技術,2010年第32卷第1期)與文獻2 《Multilevel/AES-LDPCC-CPFSK with channel equalization over WSSUS multipath environment))(AEU-International Journal of Electronics and Communications,2011 年第65卷第12期)中,提出將LDPC碼與AES加密(Advanced Encryption Standard,高級加密 標準)體制進行級聯,從而使系統同時獲得LDPC碼的編碼增益以及AES加密體制帶來的安全 性,但是文中所提供的方法使用的是固定的LDPC碼,沒有敘述如何變換LDPC碼字,LDPC碼對 系統的安全性的貢獻較低。而且文獻1中使用的LDPC碼采用隨機的方法進行構造校驗矩陣, 但是使用生成矩陣來進行編碼,生成矩陣會非常復雜,實用性不強。
[0004] 本發明提出了一種基于LDPC變碼技術的糾錯加密方法,將AES加密體制、LDPC變碼 技術以及加噪技術相結合,通過變換LDPC碼提升系統的安全性。而且本發明使用的LDPC碼 采用基于雙對角矩陣的方式進行構造,使用校驗矩陣進行編碼,復雜度低,實用性好。
【發明內容】
[0005] 本發明的目的在于提出一種基于LDPC變碼技術的糾錯加密方法,該方法用于通信 系統中對數據進行糾錯與加密。
[0006] 本發明所提的糾錯加密方法將AES加密體制、LDPC變碼技術以及加噪技術相結合, 在保證糾錯能力的同時提升數據的安全性。AES體制主要用于將原始數據進行擴散與非線 性化,保障數據的安全性;LDPC碼主要用于對數據進行保護,提升數據的抗差錯能力;LDPC 變碼技術指在數據傳輸過程中針對不同幀的待編碼數據實時變換LDPC碼字(LDPC碼校驗矩 陣)的技術,用于提升數據的安全性;加噪技術主要用于使數據產生誤碼,用于提升數據的 安全性。通過將AES加密體制、LDPC變碼技術以及加噪技術相結合,使得接收端只有在同時 知道AES密鑰與LDPC碼具體參數的情況下才能解析出正確的數據并且獲得編碼增益。
[0007] 本發明中使用的LDPC碼采用基于雙對角矩陣的方式進行構造。基于雙對角矩陣的 方式進行構造的校驗矩陣Η由兩部分組成,一部分為雙對角矩陣,記為H p,另一部分由若干 循環子矩陣構成,記為Hd。一般地,若LDPC碼的碼長記為N,信息位長度記為M,則H p的大小為 (N-M)X(N-M),Hd的大小為(N-M)XM,若構成Hd的循環子矩陣大小為aXa,則H d的每一個列 塊有(N_M)/a個子矩陣,記為i,每一個行塊有M/a個子矩陣,記為j,顯然,HdSiXj個大小為 aXa的循環子矩陣構成。由于循環子矩陣是由單位陣按照預定的偏移量循環移位生成的, 因此,對于一個給定了碼長和信息位長度的LDPC碼,通過改變H d中循環子矩陣的大小和偏 移量便能改變LDPC碼校驗矩陣,本發明中使用off set(i,j)表示這些子矩陣的偏移量,其 中,0彡offset(i,j)彡a_l,l彡i彡(N_M)/a,l彡 j彡M/a,顯然,(N_M)/a與M/a為整數。
[0008] 圖1給出了一個具有雙對角矩陣形式的校驗矩陣的示例^。出所表示的LDPC碼字的 長度N為24比特,信息位長度Μ為12比特。出由町和_兩部分構成,分別如圖2和圖3所示。從 圖3可以看出,< 的循環子矩陣的大小為3X3,巧'的每一個行塊有(N-M)/a = 4個循環子矩 陣塊,的每一個列塊有M/a = 4個循環子矩陣塊。從圖3可以看出,中的構成第一個循 環子矩陣行塊的循環子矩陣的偏移量分別為0,1,2,1。
[0009] 對于一個給定碼長為N,信息位長度為Μ的LDPC碼,本發明采用LDPC碼變碼技術,在 編碼過程中實時生成校驗矩陣,使得每一次編碼采用不同的校驗矩陣,即每一次編碼使用 不同的LDPC碼,達到"一次一碼"的效果。變換LDPC碼的具體方式為改變校驗矩陣中的循環 子矩陣大小和/或循環子矩陣的偏移量。
[0010] 圖4給出了一個將Η沖循環子矩陣的偏移量進行改變,得到新的LDPC碼的校驗矩 陣出的一個示例。從圖4可以看出,H2的第一個循環子矩陣行塊的循環子矩陣的偏移量分別 為2,0,2,1。而出的第一個循環子矩陣行塊的循環子矩陣的偏移量分別為0,1,2,1。顯然,通 過變換循環子矩陣的偏移量實現了 LDPC碼校驗矩陣的變換。
[0011] 圖5給出了一個將Η沖循環子矩陣的大小進行改變,得到新的LDPC碼的校驗矩陣H3 的一個示例。從圖5可以看出,H3中的循環子矩陣大小為4X4,H3共包含有9個循環子矩陣。顯 然,通過變換循環子矩陣的大小同樣實現了 LDPC碼校驗矩陣的變換。
[0012] 本發明所提的糾錯加密方法中的加噪技術用于給數據添加噪聲,使數據產生誤 碼,使得不論信道好壞,接收端總是收到帶誤碼的數據。
[0013] 本發明提供的一種糾錯加密方法,其具體操作步驟包括:
[0014] 步驟1:根據通信系統對信道編碼信息位長度與校驗位長度的要求,構造出LDPC碼 校驗矩陣的基本結構,計算校驗矩陣中的循環子矩陣尺寸參數a的有效取值范圍;
[0015] 步驟2:對原始數據按照AES體制進行加密;
[0016]步驟3:生成LDPC碼校驗矩陣中循環子矩陣的偏移量參數offSet(i,j),確定當次 編碼使用的校驗矩陣;
[0017]步驟4:根據該校驗矩陣對數據進行LDPC編碼;
[0018]步驟5:對編碼后的數據對數據進行加噪處理;
[0019]重復步驟2到步驟5,完成對數據流的連續處理
[0020]本發明提供的糾錯加密方法的具體操作步驟如圖6所示。
[0021]所述步驟1中,a的取值需要滿足以下兩個條件:1. a小于Μ與N-M,且能被Μ與N-M整 除;2. a的取值通常在31到1024之間;
[0022]所述步驟2中采用AES體制對數據進行加密時密鑰長度可以是128比特、192比特或 256比特;
[0023]所述步驟3中循環子矩陣偏移量參數〇fTSet(i,j)根據用戶的設定可每次編碼都 進行更改,即采取"一次一碼",也可以不更改,即采用固定的LDPC碼。
[0024] 綜上所述,本發明所提的方法首先對數據按照AES體制進行加密,然后對其進行 LDPC編碼,而且對每一幀數據采用不同的LDPC碼,最后對LDPC碼編碼后的數據進行加噪,使 其發生少量誤碼。由于在編碼時人為加入了誤碼,因此不論信道好壞,接收端接收的數據里 肯定存在誤碼,如果接收端知道編碼端所用的LDPC碼的相關參數,在LDPC譯碼時便能對數 據進行正確的譯碼,從而獲取編碼增益,通過AES解密過程便能獲得正確的原始數據。如果 接收端不知道編碼端所用的LDPC碼的相關參數,在LDPC譯碼時便無法對數據進行正確的譯 碼,無法對誤碼進行糾正,通過AES解密過程后無法獲得正確的原始數據。
【附圖說明】
[0025] 圖1為本發明所涉及的雙對角形式的校驗矩陣的一個示例。
[0026] 圖2為圖1中校驗矩陣中的雙對角矩陣。
[0027] 圖3為圖1中校驗矩陣的準循環矩陣。
[0028] 圖4為將校驗矩陣中準循環矩陣子矩陣的偏移量改變得到新校驗矩陣的一個示 例。
[0029] 圖5為將校驗矩陣中準循環矩陣子矩陣的大小改變得到新校驗矩陣的一個示例。
[0030] 圖6為本發明所涉及的加密糾錯算法的流程圖。
[0031]圖7為本發明所涉及的采用(4096,3328)LDPC碼對數據進行糾錯加密的流程示意 圖。
[0032]圖8為本發明所涉及的(4096,3328)LDPC碼的校驗矩陣示意圖。
【具體實施方式】
[0033]本發明所提供的通信糾錯加密方法,主要包括一簇LDPC碼的構造、AES加密、LDPC 編碼與加噪這四個步驟,下面具體說明這四步驟。
[0034] 首先說明一簇LDPC碼的構造方法。設LDPC碼的碼長為N、信息位長度為Μ,則其校驗 位長度為Ν-Μ,本發明中LDPC碼的校驗矩陣由循環子矩陣參數a和循環子矩陣的偏移量參數 offset(i,j)決定。(CKoffset(i,jXa_l,(N_M)/a,K j<M/a)
[0035] 根據LDPC編碼對校驗矩陣的循環子矩陣參數a的取值要求,a需要小于M與N-M,且 能被兩者整除,而且取值范圍在31與1024之間。通過求取Μ與N-M的最大公約數,再對最大公 約數進行因數分解轉換成兩個數乘積的形式,取出其中在31與1024之間的數即是a的有效 取值。a的有效取值可能為多個,依據本領域內公識常識,隨著a的值的增大,LDPC碼進行編 譯碼時復雜度會下降低,糾錯性能也會下降,因此用戶可以根據實現復雜度與糾錯性能的 需求選擇a的值。
[0036] a的值確定后,LDPC碼校驗矩陣的基本結構便被確定,校驗矩陣的循環子矩陣部分 包含M/a個子矩陣列塊與(N-M)/a個子矩陣行塊,共M(N-M)/a2個循環子矩陣,因此,循環子 矩陣的偏移量參數〇ffset(i,j)的數目為M(N_M)/a2個,offset(i,j)的取值范圍為0彡 offset(i,jXa_l。在構造校驗矩陣及編碼過程中,用戶只需要生成M(N_M)/a2個取值范圍 為0到a-Ι的數,便能唯一確定LDPC碼,并且,只要改變任何一個偏移量,便能得到新的LDPC 碼。
[0037]下面描述對數據采用AES體制進行加密的過程。
[0038] 本發明中采用標準的AES體制對數據進行加密。密鑰長度可設為128、192和256比 特。標準的AES加密體制包括S盒變換、行移位、列變換、子密鑰擴展四個步驟,詳細過程可參 考相關資料,此處不作詳述。本發明中加密模塊每次讀入與密鑰長度相等的原始數據(明 文),然后對其進行按照S盒變換、行移位、列變換、子密鑰擴展四個步驟進行加密處理。經過 AES加密模塊處理過的數據稱為密文。
[0039] 下面描述對密文數據進行LDPC編碼的過程。
[0040] 本發明中構造的LDPC碼為雙對角形式的LDPC碼,這類LDPC碼可采用校驗矩陣進行 編碼,復雜度較低,便于實現。LDPC碼編碼器對數據進行編碼前,首先讀入校驗矩陣的參數a 與所有的循環子矩陣偏移量〇ffset(i,j)。然后讀入與LDPC碼信息位長度Μ相等的密文,對 其進行編碼,編碼完成后得到Ν比特的數據。值得指出的是,在對下一幀Μ比特數據進行LDPC 編碼時,用戶可以通過改變a或循環子矩陣偏移量ofTSet(i,j)來改變所使用的LDPC碼,從 而實現數據傳輸過程中"一次一碼"。
[0041] 下面描述對LDPC編碼后的數據進行加噪的過程。
[0042]本發明所提方法需要對LDPC編碼后的數據進行加噪處理。首先產生一個隨機數T, 的值為LDPC編碼后數據發生誤碼的比特數目,也可以根據具體的編碼設計而改 變。然后生成T個隨機數,這些隨機數的范圍在0到Μ之間,這些隨機數代表了LDPC碼信息位 發生錯誤的位置。加噪器根據這T個數,將LDPC碼相應位置的信息位取反,達到使LDPC編碼 后數據發生錯誤的加噪目的。
[0043] 實施例1:
[0044] 本實施例說明了通過改變LDPC碼校驗矩陣中循環子矩陣偏移量實現"一次一碼" 的糾錯加密方法。在該示例中,用戶需要使用128比特長度的密鑰進行AES加密,并使用碼長 N為4096、信息位長Μ為3328的LDPC碼對數據進行保護。
[0045] 步驟1:首先,確定LDPC碼校驗矩陣的基本結構形式。
[0046]由于LDPC碼的碼長N為4096、信息位長Μ為3328,因此其校驗位長度N-M為768,根據 前述的LDPC碼構造方法中的校驗矩陣循環子矩陣參數a的取值要求,a需要小于768,且能被 768與3328整除,且大于31。由于768與3328的最大公約數為256,將256進行因數分解,取出 其中大于31的數,可得到a的有效取值為32、64、128與256。本實施例中將a設定為128。此時, LDPC碼校驗矩陣的循環子矩陣部分包含有768/128 = 6個子矩陣行塊,3328/128 = 26個子矩 陣列塊,共6X26 = 156個循環子矩陣。其結構示意圖如圖8所示。圖中offset(l,1)表示位于 第一個子矩陣行塊和第一個子矩陣列塊的循環子矩陣的偏移量, 〇fTSet(l,2)表示位于第 一個子矩陣行塊和第二個子矩陣列塊的循環子矩陣的偏移量,其余依次類推。
[0047]步驟2 :AES加密模塊對原始信息按照AES體制進行加密處理,由于本實施例中用戶 設定的AES密鑰長度為128比特,所以AES加密模塊每次對128比特原始信息進行處理,可得 到128比特密文信息。由于LDPC碼的信息位長度為3328比特,為密鑰長度的26倍,因此,AES 加密模塊工作26次后,便能完成對3328比特原始信息的加密處理,得到3328比特的密文;
[0048] 步驟3:LDPC編碼器讀入校驗矩陣的偏移量信息,得到當次編碼所需的校驗矩陣。 本實施例中LDPC碼的校驗矩陣共包含156個循環子矩陣,即LDPC編碼器需要讀入156個循環 子矩陣的偏移量參數。這些參數可以通過用戶設定或者采用現有的產生偽隨機數的方法生 成;
[0049] 步驟4:LDPC編碼器對AES加密后的密文信息進行LDPC編碼。本發明中采用的LDPC 碼為雙對角形式的LDPC碼,可使用校驗矩陣進行編碼,結構簡單,便于實現。LDPC編碼器對 3328比特的密文信息進行編碼后得到4096比特數據。
[0050] 步驟5:加噪模塊對LDPC編碼器輸出的數據進行加噪處理,使數據產生誤碼。本實 施例中假定生成的隨機數T的值為5,然后生成5個隨機數,假定這5個數分別為4,132,268, 578,693。加噪模塊依次對LDPC編碼器輸出數據的第4位,第132位,第268位,578位和693位 進行取反,完成對數據的加噪過程。
[0051] 至此,采用本發明所提供的方法完成了對3328比特數據的處理。重復步驟2到步驟 5,并改變LDPC編碼器中的校驗矩陣中的循環子矩陣大小和/或的偏移量,完成對數據流的 連續處理。
[0052] 實施例2:
[0053]本實施例說明了通過改變LDPC碼校驗矩陣中循環子矩陣大小和偏移量實現"一次 一碼"的糾錯加密方法。在該示例中,用戶需要使用128比特長度的密鑰進行AES加密,并使 用碼長N為4096、信息位長Μ為3328的LDPC碼對數據進行保護。與實施例1相比,本實施例中 僅在步驟1與步驟3有所不同,現將不同點描述如下:
[0054]步驟1:首先,確定LDPC碼校驗矩陣的基本結構形式。
[0055] 根據實施例1所述,a的有效取值為32、64、128與256。當a為128時,LDPC碼校驗矩陣 的循環子矩陣部分包含156個循環子矩陣。按照相似的方法,可計算出a為32、64和256時, LDPC碼校驗矩陣的循環子矩陣部分分別包含2496、624與39個循環子矩陣。
[0056] 步驟3: LDPC編碼器讀入循環子矩陣的尺寸參數a以及與a相對應的數量的偏移量 信息,得到當次編碼所需的校驗矩陣。例如,如果讀入的尺寸參數a為256,則需要讀入39個 循環子矩陣的偏移量參數;如果讀入的尺寸參數a為64,則需要讀入624個循環子矩陣的偏 移量參數。
[0057]此外,本實施例的其它步驟與實施例1相同,可參照實施,此處不再贅述。
【主權項】
1. 一種基于LDPC變碼技術的糾錯加密方法,其特征在于: 所述的糾錯加密方法將AES加密體制、LDPC變碼技術以及加噪技術相結合,對數據進行 加密與糾錯編碼, AES體制用于將原始數據進行擴散與非線性化加密,保障數據的安全性; LDPC碼用于對數據進行保護,提升數據的抗差錯能力; LDPC變碼技術指在數據傳輸過程中實時變換LDPC碼字的技術,用于提升數據的安全 性; 加噪技術用于使數據產生誤碼,用于提升數據的安全性, 通過將AES加密體制、LDPC變碼技術以及加噪技術相結合,使得接收端只有在同時知道 AES密鑰與LDPC碼具體參數的情況下才能解析出正確的數據。2. 根據權利要求1所述的一種基于LDPC變碼技術的糾錯加密方法,且特征在于:其LDPC 碼采用基于雙對角矩陣的方式進行構造,其校驗矩陣由兩部分組成,一部分為雙對角矩陣, 另一部分由若干循環子矩陣構成。3. 根據權利要求2所述的一種基于LDPC變碼技術的糾錯加密方法,且特征在于:所使用 的LDPC碼在編碼過程中能進行變換,使得每一次編碼使用不同的LDPC碼,達到"一次一碼" 的效果;變換LDPC碼的具體方式為改變校驗矩陣中的循環子矩陣大小或循環子矩陣的偏移 量。4. 根據權利要求3所述的改變校驗矩陣中的循環子矩陣大小,其特征在于循環子矩陣 大小按如下方法確定:假定LDPC碼的碼長為N、信息位長度為M,則其校驗位長度為N-M,校驗 矩陣循環子矩陣參數a需要小于M與N-M,且能被兩者整除,而且取值范圍在31與1024之間, 通過求取M與N-M的最大公約數,再對最大公約數進行因數分解轉換成兩個數乘積的形 式,取出其中在31與1024之間的數即是a的有效取值。5. 根據權利要求1至4中任意一項所述的一種基于LDPC變碼技術的糾錯加密方法,其特 征在于:對LDPC編碼后的數據進行加噪處理,具體方法如下,首先產生一個隨機數T, 20,Τ的值為LDPC編碼后數據發生誤碼的比特數目;然后生成T個隨機數,這些隨機數的范圍 在0到M之間,這些隨機數代表了LDPC碼信息位發生錯誤的位置;加噪器根據這T個數,將 LDPC碼相應位置的信息位取反,實現加噪。6. 根據權利要求1至5中任意一項所述的一種基于LDPC變碼技術的糾錯加密方法,分為 以下步驟: 步驟1:根據通信系統的對信道編碼信息位長度與校驗位長度的要求,構造出LDPC碼校 驗矩陣的基本結構,計算校驗矩陣中的循環子矩陣尺寸參數a的有效取值范圍; 步驟2:對原始數據按照AES體制進行加密; 步驟3:生成LDPC碼校驗矩陣中循環子矩陣的偏移量參數offset(i,j),確定當次編碼 使用的校驗矩陣; 步驟4:根據該校驗矩陣對數據進行LDPC編碼; 步驟5:對編碼后的數據對數據進行加噪處理, 重復步驟2到步驟5,對數據流進行連續處理, 其中: 所述步驟1中,a的取值需要滿足以下兩個條件:1. a小于M與N-M,且能被M與N-M整除; 2.a的取值在31到1024之間; 所述步驟2中,采用AES體制對數據進行加密時密鑰長度可以是128比特、192比特或256 比特; 所述步驟3中,循環子矩陣偏移量參數〇fTSet(i,j)根據用戶的設定可每次編碼都進行 更改,即采取"一次一碼",也可以不更改,即采用固定的LDPC碼。7.根據權利要求1至6中任意一項所述的一種基于LDPC變碼技術的糾錯加密方法,是使 用128比特密鑰,使用碼長N為4096、信息位長M為3328的LDPC碼的具體方法,其特征在于: 所使用的LDPC碼校驗矩陣中循環子矩陣的尺寸參數a為128,LDPC碼校驗矩陣的循環子 矩陣部分包含有6個子矩陣行塊,26個子矩陣列塊,共156個循環子矩陣;在LDPC編碼過程 中,通過改變156個循環子矩陣的偏移量參數來實現LDPC碼的變換。
【文檔編號】H04L1/00GK105933107SQ201610258147
【公開日】2016年9月7日
【申請日】2016年4月22日
【發明人】趙嶺, 李眾, 彭皓, 劉榮科
【申請人】北京航空航天大學