Decoding and error correction method |
|||||||
申请号 | JP2003550369 | 申请日 | 2002-11-29 | 公开(公告)号 | JP4074252B2 | 公开(公告)日 | 2008-04-09 |
申请人 | エスティ マイクロエレクトロニクス エス.エイ.ST Microelectronics S.A.; | 发明人 | ユベルト デグワラ; ルワ パルリエ; | ||||
摘要 | |||||||
权利要求 | 誤り訂正ステップと、 前記誤り訂正ステップの前に実行され、復号化関数(A −1 )を保護された符号ワード(X3)に適用して、符号化された誤り(E*A −1 )を有する保護された復号化ワード(X4')を得る復号化ステップと、 前記復号化ステップと同時に実行される前記符号化された誤りベクター(EV1')を決定するステップとを有することを特徴とする、初期の保護された符号ワード(X2)に対して誤りを有する可能性のある保護された符号ワード(X3)に適用可能な復号および誤り訂正方法。 前記誤り訂正ステップが、符号化された誤りベクター(EV1')を保護された復号化ワード(X4')に適用するステップを有することを特徴とする請求項1に記載の方法。 前記符号化された誤りベクター(EV1')を決定するステップは、保護された符号ワードが復号化される前に訂正される場合、保護された符号ワード(X3)に適用することのできる符号化されていない誤りベクター(EV1)を前記復号化関数(A −1 )により変換するステップを有することを特徴とする請求項2に記載の方法。 前記誤りベクターを決定するステップは、 シンドローム算出関数(H)を前記保護された符号ワード(X3)に適用することによりシンドロームを決定するステップと、 シンドロームと符号化された誤りベクターとの直接対応表により、前記シンドロームから前記符号化された誤りベクター(EV1')を直接生成するステップとを有することを特徴とする請求項3に記載の方法。 前記初期の保護された符号ワード(X2)は、 符号化関数(A)により、初期ワード(X0)を符号ワード(X1)に変換し、機密化関数(G)により前記符号ワード(X1)を変換することにより得られることを特徴とする請求項1から請求項4までの何れか一項に記載の方法。 前記初期の保護された符号ワード(X2)は、 初期ワード(X0)に、符号化関数(A)と機密化関数(G)を組み合わせた(A*G)結果である符号化および機密化関数を適用することにより得られることを特徴とする請求項1から請求項4までの何れか一項に記載の方法。 配線論理回路により実施されることを特徴とする請求項1から請求項6までの何れか一項に記載の方法。 復号および誤り訂正回路(RD3)において、 保護された符号ワード(X3)を受け取る1つの入力部(IN2)と、訂正された復号化ワード(X5)を送り出す1つの出力部(OUT2)とを有したデータパスと、 前記データパスに沿って配置され、入力部を有し、復号化関数(A −1 )を前記入力部にあるワードに適用する復号化ブロック(B5)と、 前記データパスに沿って配置され、訂正するワードを受け取る第一入力部(E1)と、誤りベクター(EV1')を受け取る第二入力部(E2)とを有する誤り訂正ブロック(B2)と、 前記データパスの前記入力部(IN2)に接続した1つの入力部を有するシンドローム(SYN)決定ブロック(B3)と、 前記シンドローム決定ブロック(B3)の1つの出力部に接続した1つの入力部と前記誤り訂正ブロック(B2)の前記第二入力部(E2)に接続した1つの出力部を有する符号化された誤りベクター(EV1')を決定する手段(B4')とを備え、 前記復号化ブロック(B5)が、前記誤り訂正ブロック(B2)の上流の前記データパス上に配置され、前記誤り訂正ブロックの前記第一入力部(E1)に、符号化された誤り(E*A −1 )を有する保護された復号化ワード(X4')を送り出すことを特徴とする復号および誤り訂正回路(RD3)。 前記符号化された誤りベクター(EV1')を決定する手段(B4')は 、シンドローム(SYN)から、前記シンドロームに対応する符号化されていない誤りベクター(EV1)を前記復号化関数(A−1)により変換したものと等しい、符号化された誤りベクター(EV1')を送り出すことを特徴とする請求項8に記載の回路。 前記符号化された誤りベクターを決定する手段は、シンドロームと符号化された誤りベクターとの直接対応表により変換を実行する1つのブロック(B4')を有することを特徴とする請求項9に記載の回路。 前記復号化ブロック、前記誤り訂正ブロック、前記シンドローム決定ブロック、および前記符号化された誤りベクターを決定する手段は、配線論理回路であることを特徴とする請求項8から請求項10の何れか一項に記載の回路。 データ符号化/復号化および機密化/訂正装置(ECC3)において、 保護された符号ワード(X3)を訂正された復号化ワード(X5)に変換する、請求項8から請求項11までの何れか一項に記載の復号および誤り訂正回路(RD3)と、 初期ワード(X0)を保護された符号ワード(X2)に変換する符号化および機密化回路(WR3)と、を備えたことを特徴とするデータ符号化/復号化および機密化/訂正装置(ECC3)。 前記符号化および機密化回路(WR3)が、符号化関数(A)を初期ワード(X0)に適用し、機密化関数(G)を符号ワードに適用する手段(B1')を備えたことを特徴とする請求項12に記載の装置。 前記符号化および機密化回路(WR3)が、 前記符号化関数(A)と前記機密化関数(G)の組み合わせ(A*G)を初期ワード(X0)に適用するように配置された1つの符号化および機密化ブロック(B1')を備えたことを特徴とする請求項13に記載の装置。 |
||||||
说明书全文 | 本発明は保護された符号ワードに適用可能な復号および誤り訂正方法に関する。 本発明はまた、保護された符号ワードを訂正され復号されたワードに変換可能な復号および誤り訂正回路に関する。 メモリ、特にEEPROMまたはFLASH EEPROM型の電気的に消去およびプログラム可能なメモリにデータを書き込むためにデータ機密化(securisation)/訂正装置が広く使用されている。 データはメモリに保存される際に機密化ビットが追加されて保護され、機密化ビットにより読み出される際に訂正される。 さらに、古典的には、特定のレベルの秘密性が必要とされる場合、データがメモリに保存される前にデータを符号化し、メモリが読み出される際にこれらのデータを復号してきた。 「符号化」とは、バイナリワードをスクランブル関数(scrambling function)により符号化して符号ワードを得ることを意味する。 したがって、初期データから「保護された符号化データエントリ」、すなわち、符号化処理と機密化処理の2回の処理を経たバイナリワードを得るため、符号化関数と機密化関数(security function)を一つの装置に組み合わせることが必要になることがしばしばある。 本発明は、一般的には、符号化/復号関数をデータ機密化/訂正装置に統合することに関し、特に、ハミングアルゴリズムに基づいた装置、データ符号化/復号化および機密化/訂正装置を得ることに関する。 図1には、従来のデータ機密化/訂正装置ECC1のブロック図が示されている。 この装置ECC1は、データ機密化回路WR1とデータ訂正回路RD1とから構成されている。 回路WR1は、バイナリワードX1を受け取る1つの入力部IN1と、保護された符号ワードX2を送り出す1つの出力部OUT1とを有している。 回路RD1は、誤りEを含む保護されたワードX3を受け取る1つの入力部IN2と、訂正されたワードX4を送り出す1つの出力部OUT2とを有している。 回路WR1は、関数GをワードX1に行い、保護されたワードX2を送り出すブロックB1から構成される。 関数Gは、(2 K )行(2 K +J)列の行列で表すことができる機密化ビット生成関数である。 バイナリワードX1を2 Kビットのベクトルで表すことにより、こうして得られた保護されたワードX2は以下の関係式で表されることになる。 関数Gは、初期ワードX1のデータビットを変更しないため、ワードDATA(X2)は、初期ワードX1のデータビットと同様のデータビットを有する。 したがって、以下のように表すことができる。 一例として、8ビットのワードでただ1つのビットを、ハミングアルゴリズムにより検出して訂正することを仮定する。 このアルゴリズムによると、機密化ビットの数JはK+1と等しく、2 Kビットのワードの1つの誤りビットのみを検出して訂正する。 したがって、この例では、K=3、J=K+1=4で、ワードX1、X2は付録の項目1に記載のように書かれる。 関数Gは、(2 K )行(2 K +K+1)列の行列、すなわち、ここでは付録の項目2に記載の8行12列の行列となる。 行列Gは、付録の項目3に記載のように、4つの機密化ビットp0、p1、p2、p3、またはパリティビットを生成する。 次に、保護されたワードX2がメモリMEMに保存され、そのメモリから読み出されることを仮定する。 書き込まれてから、読み出されるまでの間に、ワードは変化して、誤りを有することがある。 統計的に、EEPROMまたはFLASH EEPROM型の電気的に消去およびプログラム可能なメモリでは、そのような誤りが発生することが多々ある。 それは、一般的に、メモリセルの浮遊ゲートトランジスタに影響を与える不良(例えば、そのしきい値電圧の変動など)、ビットラインまたはワードラインの接続不良、などに起因する。 誤りがないと考えられる、初期の保護されたワードX2から読み出されるワードと区別するため、メモリから読み出されるワードをX3と呼び、ワードX2と誤りEの合計と等しいとみなす。 X3と誤りEは以下のように表すことができる。 理解を容易にするため、上述の例(2 K =8、J=4)を使用すると、ワードE、ERR1、ERR2、DATA(X2)、DATA(X3)は、付録の項目4に記載のようになる。 (ゼロの可能性もある)誤りEを含むワードX3の訂正が、誤り訂正ブロックB2、シンドローム生成ブロックB3、誤りベクター生成ブロックB4を備えた回路RD1で実行される。 ブロックB2は、それぞれが2 Kビットの2つの入力部E1、E2と、2 Kビットの一つの出力部を有している。 入力部E1は、ワードX3のデータビット、すなわち、ワードDATA(X3)を受け取る。 入力部E2は、ブロックB4から送られる誤りベクターEVを受け取る。 ブロックB2は、初期ワードX1と等しい訂正されたワードX4を送り出す(誤りのビット数が、検出され訂正されることのできる最大ビット数以下とした場合)。 ワードX4は、ワードDATA(X3)とベクトルEVを論理的に連結することにより得られる。 一般的に、この論理的な連結は排他的論理和関数(xor関数、記号Θ)により実行される。 ブロックB3はワードX3を入力側から受け取り、関数HをワードX3に実行し、以下のようなシンドロームSYNを送り出す。 ここで、関数Gおよび関数Hは直交関数で、その積G*Hは0である。 ハミングアルゴリズムで、関数Hは、Gと直交する(2 K +K+1)行(K+1)列の行列である。 理解を容易にするため、K=3でJ=4の場合の行列Hを付録の項目5に記載した。 この行列Hは、ワードごとに1つの誤りを検出し、訂正することができるS0、S1、S2、S3の4ビットのシンドロームSYNを生成する。 ビットS0からビットS4の論理値もまた、付録の項目6に記載している。 シンドロームSYNは、シンドローム/ベクター変換関数EV = f(SYN)を実行し、適当なベクターEVを送り出すブロックB4に送られる。 このシンドローム/ベクター変換関数は、所定の対応表に従う。 理解を容易にするため、K=3でJ=4の場合のシンドローム/ベクター対応表を付録の項目7に記載した。 理論的には、各誤差ベクターEVは一部EV1と一部EV2を有し、以下のように記すことができる。 ブロックB2が排他的論理和関数を実行する場合、誤りベクターEVは、誤りE自体と等しくなることに注意する。 図2は、さらに符号化復号化手段を備え、データ符号化/復号化および機密化/訂正装置を構成する、装置ECC1とは異なる装置ECC2を示している。 装置ECC2は、データ符号化および機密化回路WR2とデータ復号化および訂正回路RD2とから構成されている。 回路WR2は、バイナリワードX0を受け取る1つの入力部IN1と、保護された符号ワードX2を送り出す1つの出力部OUT1とを有している。 回路RD2は、(ゼロの可能性もある)誤りEを含む保護された符号ワードX3を受け取る1つの入力部IN2と、訂正された復号化ワードX5を送り出す1つの出力部OUT2とを有している。 回路WR2は、直列に接続された1つのブロックB0と上述のブロックB1を有している。 ブロックB0は入力部で入力としてワードX0を受け取り、符号化関数「A」をワードX0に実行して、符号ワードX1をブロックB1の入力部に送り出す。 ブロックB1はワードX1に上述の関数Gを実行し、ワードX2を回路WR2の出力部OUT1に送り出す。 2 K行2 K列の行列で、K=3の場合の符号化関数Aの一例を付録の項目8に記載する。 ワードX2はメモリMEMに保存され、メモリから続けて読み出されるワードをX3とすると、X3は、誤りEが付加されたワードX2と等しい。 誤りEの訂正およびワードX3の復号が回路RD2により実行される。 回路RD2は、復号化ブロックB5がブロックB2の出力側と出力部OUT2の間に配置されている点で装置ECC1の回路RD1とは異なる。 ブロックB5は、関数Aの逆関数である復号化関数A −1をその入力部で受け取ったデータに実行する。 復号化関数A −1が付録の項目8に記載した行列Aの逆行列であるとした、復号化関数A −1の一例を、付録の項目9に記載する。 したがって、装置ECC2の動作は以下の通りである。 ブロックB1、B3、およびB4は、装置ECC1のそれらと同様であり、ワードX1が符号ワードであることは、このワードの機密化および訂正に影響を与えない。 上述の回路ECC1およびECC2は、従来、配線論理ブロックとして製造された。 ワードX1をワードX2に変換(機密化)する時間、およびワードX3をワードX4に変換(訂正)する時間は、入力部IN1と出力部OUT1の間、および入力部IN2と出力部OUT2の間のデータバスに沿って存在する論理ゲートのデータ伝搬時間により直接的に変化する。 装置ECC2は、ブロックB0とブロックB5をデータパスに沿って追加したために、データ転送処理が遅くなるという課題がある。 ブロックB0とブロックB5は、ブロックB1からB4と同様に、論理ゲートを使用して製造されており、所定のデータ転送時間を要する。 事実、ブロックB0とブロックB5を追加することにより、装置ECC2の入力部と出力部の間のデータ転送時間が、装置ECC1と比較して、30%から50%増加した。 本発明は、この問題を解決することを目的としている。 より詳細には、本発明の目的は、データ処理時間を加速することができる復号および誤り訂正方法を提供することにある。 本発明の第一の対応する目的は、上述の従来の回路よりもデータ転送時間の短い復号および誤り訂正回路を提供することにある。 本発明のもう一つの目的は、上述の従来の回路よりもデータ転送時間の短い符号化および機密化回路を提供することにある。 この目的のため、本発明は、誤り訂正ステップと、 前記誤り訂正ステップの前に実行され、復号化関数(A −1 )を保護された符号ワードに適用して、符号化された誤りを有する保護された復号化ワードを得る復号化ステップと、前記復号化ステップと同時に実行される前記符号化された誤りベクターを決定するステップとを有することを特徴とする、初期の保護された符号ワードに対して誤りを有する可能性のある保護された符号ワードに適用可能な復号および誤り訂正方法を提供する。 一つの実施の形態によれば、前記誤り訂正ステップは、符号化された誤りベクターを保護された復号化ワードに適用するステップを有する。 一つの実施の形態によれば、前記符号化された誤りベクターを決定するステップは、保護された符号ワードが復号化される前に訂正される場合、保護された符号ワードに適用することのできる符号化されていない誤りベクターを前記復号化関数により変換するステップを有する。 一つの実施の形態によれば、前記誤りベクターを決定するステップは、シンドローム算出関数を前記保護された符号ワードに適用することによりシンドロームを決定するステップと、シンドロームと符号化された誤りベクターとの直接対応表により、前記シンドロームから前記符号化された誤りベクターを直接生成するステップとを有する。 一つの実施の形態によれば、前記初期の保護された符号ワードは、符号化関数により、初期ワードを符号ワードに変換し、機密化関数により前記符号ワードを変換することにより得られる。 一つの実施の形態によれば、前記初期の保護された符号ワードは、初期ワードに、符号化関数と機密化関数を組み合わせた結果である符号化および機密化関数を適用することにより得られる。 一つの実施の形態によれば、本方法は、配線論理回路により実施される。 さらに、本発明は、復号および誤り訂正回路に関し、前記復号および誤り訂正回路において、保護された符号ワードを受け取る1つの入力部と、訂正された復号化ワードを送り出す1つの出力部とを有したデータパスと、前記データパスに沿って配置され、入力部を有し、復号化関数を前記入力部にあるワードに適用する復号化ブロックと、前記データパスに沿って配置され、訂正するワードを受け取る第一入力部と、誤りベクターを受け取る第二入力部とを有する誤り訂正ブロックと、前記データパスの前記入力部に接続した1つの入力部を有するシンドローム決定ブロックと、前記シンドローム決定ブロックの1つの出力部に接続した1つの入力部と前記誤り訂正ブロックの前記第二入力部に接続した1つの出力部を有する符号化された誤りベクターを決定する手段とを備え、前記復号化ブロックが 、前記誤り訂正ブロックの上流の前記データパス上に配置され、前記誤り訂正ブロックの前記第一入力部に、符号化された誤りを有する保護された復号化ワードを送り出すことを特徴とする。 一つの実施の形態によれば、前記符号化された誤りベクターを決定する手段は、シンドロームから、前記シンドロームに対応する符号化されていない誤りベクターを前記復号化関数により変換したものと等しい、符号化された誤りベクターを送り出す。 一つの実施の形態によれば、前記符号化された誤りベクターを決定する手段は、シンドロームと符号化された誤りベクターとの直接対応表により変換を実行する1つのブロックを有する。 一つの実施の形態によれば、前記復号化ブロック、前記誤り訂正ブロック、前記シンドローム決定ブロック、および前記符号化された誤りベクターを決定する手段は、配線論理回路である。 さらに、本発明は、データ符号化/復号化および機密化/訂正装置に関し、前記データ符号化/復号化および機密化/訂正装置は、保護された符号ワードを訂正された復号化ワードに変換する、本発明に係る復号および誤り訂正回路と、初期ワードを保護された符号ワードに変換する符号化および機密化回路とを備えたことを特徴とする。 一つの実施の形態によれば、前記符号化および機密化回路は、符号化関数を初期ワードに適用し、機密化関数を符号ワードに適用する手段を備える。 一つの実施の形態によれば、前記符号化および機密化回路は、前記符号化関数と前記機密化関数の組み合わせを初期ワードに適用するように配置された1つの符号化および機密化ブロックを備える。 図3は、本発明に係るデータ符号化/復号化および機密化/訂正装置ECC3を表している。 装置ECC3は、データ符号化および機密化回路WR3とデータ復号化および訂正回路RD3を備えている。 回路WR3は、バイナリワードX0を受け取る1つの入力部IN1と、保護された符号ワードX2を送り出す1つの出力部OUT1とを有している。 回路RD3は、(ゼロの可能性もある)誤りEを含む保護されたワードX3を受け取る1つの入力部IN2と、訂正され復号化されたワードX5を送り出す1つの出力部OUT2とを有している。 本発明によると、回路WR3は、符号化および機密化関数A*GをワードX0に実行し、保護された符号ワードX2を出力部OUT1に送り出すブロックB1'を有している。 関数A*Gは、従来の符号化関数Aと従来の機密化関数Gの積である。 一例として、8ビットのワードでただ1つのビットを、ハミングアルゴリズムにより検出して訂正することを仮定する。 ここで、すでに前段で説明したパラメータKおよびJについては3および4に等しいとする。 この場合、関数Gは、付録の項目2に記載の8行12列の行列となる。 関数Aは、例えば、付録の項目8に記載の8行8列とする。 本発明に係る対応する関数A*Gは、この場合、付録の項目10に記載のAとGの行列積となる。 一般的に、ブロックB1'のデータの移動時間は、前段で説明した従来のブロックB0またはブロックB1の一つのデータの移動時間とほぼ等しい。 したがって、ワードX0から保護された符号ワードX2への変換時間は、本発明では半分と大幅に短縮される。 ワードX2はメモリMEMに保存され、メモリから続けて読み出されるワードをX3とすると、X3は、誤りEが付加されたワードX2と等しい。 誤りEの訂正およびワードX3の復号化は回路RD3により実行される。 回路RD3は、誤り訂正ブロックB2、シンドローム生成ブロックB3、誤りベクターEV'生成ブロックB4'、および復号化ブロックB5を有している。 ブロックB2、B3、B5は、前段で説明した従来の回路ECC2の対応するブロックと同一である。 ブロックB4'は、以下の種の誤りベクターEV'の有用な部分を形成する、データの誤りに対応する2 Kビットの誤りベクターEV1'を送り出す。 本発明によると、入力部で受け取ったデータに復号化関数数A −1を実行する復号化ブロックB5は、回路RD3の入力部IN2と対応するブロックB2の入力部E1の間に配設されている。 換言すると、ブロックB2はその入力部E1で訂正されていない復号化データを受け取る。 上述の説明から理解できるように、回路RD3の入力部IN2に送られるワードX3は、以下のように記すことができる。 ワードX3と誤りEは以下の式で表すことができる。 この結果、以下のようになる。 したがって、訂正回路B2の入力部に送られるワードX4'は、前の実施の例のように保護された符号ワードではなく、符号化された誤りを有する復号化ワードである。 復号化ワードは、ワードX0で、符号化された誤りはERR1*A -1 、すなわち、復号化関数A -1により誤りERR1を変換したものとなる(逆関数Aにより符号化されていない要素に適用すると、復号化関数A -1は符号化関数に相当する)。 符号化された誤りERR1*A -1を訂正するためにブロックB2の入力部E2に入力する必要のある誤りベクターEV1 'が次に決定される。 ワードX3がシンドローム生成ブロックH全体に適用されるため、結果は以下のようになる。 関数Hと関数Gの積はゼロであるため、シンドロームSYNは以下のようになる。 さらに、従来の誤りベクターEV1は符号化されていない誤りERR1と同一で、誤りベクターEV1'は、従来の誤りベクターEV1から以下のように表すことができる。 したがって、本発明に係る誤りベクターEV1は、関数A -1により従来の誤りベクターEV1を変換したものと等しくなる。 したがって、実施の例では、ブロックB4'は、従来のブロックB4と関数A -1を実行するブロックとを直列に配列することにより生成することできる。 本発明によると、何よりも、各シンドローム値に対してベクターEV1'を与える、直接対応表を決定することが好ましい。 直接対応表の各ベクターEV1'は、 理解を容易にするため、本発明に係る対応表を付録の項目11に記載する。 この対応表(表2)は、逆関数A −1を、項目7に記載の対応表(表1)のベクターEVに適用して得ることができる。 装置ECC3の動作は以下の通りである。 本発明に係る復号化および訂正回路RD3は、ブロックB3とブロックB4'によりシンドロームと誤りベクターEV1'を決定している間、同時に、ブロックB5によりワードX3の復号化を実行するという並列構成の利点を有している。 したがって、復号化ブロックB5が訂正ブロックの後段に配置された従来の回路ECC2の場合の復号化動作によりデータ転送時間が遅くなるということは発生しない。 理解を容易にするため、付録に記載された関数A、G、Hを使用した本発明に係る復号化および訂正方法を実施する例について説明する。 ここで、以下に示すワードX1がメモリMEMに書き込まれ、読み出されるものとする。 本発明に係るデータ符号化/復号化および機密化/訂正装置は、当業者には様々な実施の形態および応用が可能であることは明かである。 特に、応用として、メモリを備えた複数の集積回路において、本発明に係る装置をメモリの入力部と出力部の間に挿入することもできる。 特に、これらはスマートカード、マイクロコントローラ、・・・、EPROM、EEPROM、FLASH EEPROM、メモリなどの統合メモリ、などの集積回路である。 もう一つの応用の例として、回線による障害または送信問題による誤りが発生することがあるため、受信したデータを復号化および訂正するため、符号化および機密化回路WR3をデータ送信回線の一方の端部に配置し、復号化および訂正回路RD3を回線の他方の端部に配置することもできる。 明細書と一体の付録 項目1. ワードX1とワードX2 項目2.1つの誤りビットのみを訂正する場合で、K=3、J=4とした時にハミングアルゴリズムにより機密化ビットを生成する行列 項目3. 行列Gにより生成される機密化ビット 項目4. ワードE, ERR1, ERR2, X3, DATA(X3), CODE(X3) 項目5. K=3、J=4とした時のハミング行列H 項目6. K=3、J=4とした時に行列Hにより生成されるシンドロームSYNの値 項目7. K=3、J=4とした時の従来の対応表の例 項目8. K=3とした時の符号化関数Aの例 項目9. K=3とした時の復号化関数A -1の例 項目10. K=3とした時の符号化および機密化関数A*Gの例 項目11. K=3、J=4とした時の本発明に係る対応表の例 |