📑 Table of Contents

低密度奇偶檢查碼(Low-density parity-check code,LDPC code),是線性分組碼(linear block code)的一種,用於更正傳輸過程中發生錯誤的編碼方式。

歷史

编辑

在1962年,低密度奇偶檢查碼(LDPC code)即被羅伯特·加拉格提出[1],並被證明其錯誤校正能力非常接近理論最大值,香農極限。但受限於當時技術,低密度奇偶檢查碼並無法實作。近年,低密度奇偶檢查碼被重新發現[2],並隨著積體電路的技術演進,低密度奇偶檢查碼的實作逐漸可行,而成為各種先進通訊系統信道編碼標準。

運作

编辑

低密度奇偶檢查碼是基於具有稀疏矩陣性質的奇偶檢驗矩陣建構而成。對(n, k)的低密度奇偶檢查碼而言,每k位元資料會使用n位元的碼字(codeword)編碼。以下是一個被(16, 8)的低密度奇偶檢查碼使用的奇偶檢驗矩陣H。當中可以見得矩陣內的元素1數量遠少於元素0數量,所以具有稀疏矩陣性質,也就是低密度的由來。

 

解碼

编辑

低密度奇偶檢查碼的解碼,可對應成二分圖(bipartite graph)作表示。下方的二分圖是依照上述奇偶檢驗矩陣H建置,其中H的行(row)對應至check node,而H的列(column)對應至bit node。check node和bit node之間的連線,由H內的元素1決定;好比H中第一行(row)和第一列(column)的元素1,使check node和bit node兩者各自最左侧的第一個彼此連接。


 

低密度奇偶檢查碼的解碼演算法,主要基於有疊代性(iterative)的置信傳播(belief propagation);整個解碼流程如下方所示:

 

  1. 當接收資料R從通訊頻道(channel)進入低密度奇偶檢查碼的解碼器,解碼器會對訊息作初始化(initialization)。
  2. check node根據互相連接的多個bit node內的資料做更新運算(update)。
  3. bit node對相連接的多個check node內的資料做更新運算。
  4. 觀察終止(termination)條件,來決定是否繼續疊代計算。

詳細的解碼演算法,常見有兩種:總和-乘積演算法(Sum-Product Algorithm)[3][4]和最小值-總和演算法(Min-Sum Algorithm)[5][6]。總和-乘積演算法具有較佳的錯誤更正能力,卻具較高的計算複雜度;反之,最小值-總和演算法在稍微減低的錯誤更正能力下,換取較低的計算複雜度。

總和-乘積演算法

编辑

假設在一通訊系統的頻道有AWGN屬性,而傳送訊號為 ,接收訊號是 bit noden個,check nodem個。而總和-乘積演算法在解碼流程如下:

  • 初始化:假設AWGN的方差(variance)是 
    • bit node n會被初始化成:
 
    • check node m會被初始化成:
 
  • check node更新:
    • check node m更新為:
 
其中 是連接到check node m的bit node組合,但不包含第n個bit node。
  • bit node更新:
    • bit node n更新為:
 
其中 是連接到bit node n的check node組合,但不包含第m個check node。
  • 終止:
    • 解碼位元計算:假設解碼後訊號為 。Hard-decision解碼位元可由下列兩式求出:
 
 
    • 只要解碼後的碼字 在恆等式 成立,即終止疊代計算。

最小值-總和演算法

编辑

最小值-總和演算,大至和總和-乘積演算法類似,除了於「check node更新」做不一樣的計算方式。而改變的計算式如下:

 
 
 


參考文獻

编辑
  1. ^ R. Gallager, “Low-Density Parity-Check Codes,” IRE Trans. Inf. Theory, vol. 7, pp. 21–28, Jan. 1962.
  2. ^ David J.C. MacKay and Radford M. Neal, "Near Shannon Limit Performance of Low Density Parity Check Codes," Electronics Letters, July 1996
  3. ^ R. M. Tanner, “A Recursive Approach to Low Complexity Codes,” IEEE Trans. Inform. Theory, Vol. IT-27, no. 5, pp. 399–431, Sep. 1981.
  4. ^ F. R. Kschischang, B. J. Frey and H. A. Loeliger, “Factor Graphs and the Sum-Product Algorithm,” IEEE Trans. Info. Theory, Vol. 47, pp. 498–519, Feb. 2001.
  5. ^ M. P. C. Fossorier, M. Mihaljevic, and H. Imai, “Reduced Complexity Iterative Decoding of Low-density Parity Check Codes Based on Belief Propagation,” IEEE Trans. Commun., vol. 47, no. 5, pp. 673–680, May, 1999.
  6. ^ J. Chen, A. Dholakia, E. Eleftheriou, M. P. C. Fossorier, and X. Y. Hu, “Reduced-complexity Decoding of LDPC Codes,” IEEE Trans. Commun., vol. 53, no. 8, pp. 1288–1299, Aug. 2005.

📚 Artikel Terkait di Wikipedia

密碼學主題列表

differential cryptanalysis) Integral(英语:Integral cryptanalysis) Linear(英语:Linear cryptanalysis) 中途相遇攻擊 Mod-n(英语:Mod-n cryptanalysis) Related-key attack(英语:Related-key

线性码

ISBN 9780521642989. (原始内容存档 (PDF)于2012-09-15). In a linear block code, the extra N − K {\displaystyle N-K} bits are linear functions of the original K {\displaystyle

編解碼器列表

PCM 和 LPCM 都被笼统的称作 PCM,但实际上它们相似却不相同。 线性脉冲编码调制(Linear pulse-code modulation,简称LPCM)是一种非压缩的音频编码格式。这是一个 PCM 的变种。 脉冲密度调制(Pulse-density

错误检测与纠正

codes(英语:Turbo code)和喷泉码。 Compute parameters of linear codes (页面存档备份,存于互联网档案馆) – 用于生成和计算参数的在线接口(例如线性误差校正码(英语:Linear code)的最小距离、覆盖半径(英语:covering

EFF DES破解机

[2016-11-01]. (原始内容存档 (PDF)于2012-04-07).  Blondeau, Céline. Lecture 3: Block Ciphers (PDF). CS-E4320 Cryptography and Data Security. [2018-04-10]. (原始内容存档

RC6

The RC6 Block Cipher (PDF). v1.1. 1998-08-20 [2015-08-02]. (原始内容存档 (PDF)于2015-10-10).  Beuchat, Jean-Luc. FPGA Implementations of the RC6 Block Cipher

差分密码分析

differential cryptanalysis) 回力镖攻击(英语:Boomerang attack) 密码学 线性密码分析(英语:Linear_cryptanalysis) 密文不可区分性(英语:Ciphertext_indistinguishability) Biham and Shamir

RC5

在密码学中,RC5是一种因简洁著称的对称分组加密算法。由罗纳德·李维斯特于1994年设计,“RC”代表“Rivest Cipher”,或者“Ron's Code”(相较于RC2和RC4)。RC6算法是基于RC5的。 和许多加密方法不同,RC5支持可变的块大小(32、64或128位元),密钥长度(0至204