JP5927323B1 - 行列作用装置、行列作用方法、およびプログラム - Google Patents

行列作用装置、行列作用方法、およびプログラム Download PDF

Info

Publication number
JP5927323B1
JP5927323B1 JP2015097277A JP2015097277A JP5927323B1 JP 5927323 B1 JP5927323 B1 JP 5927323B1 JP 2015097277 A JP2015097277 A JP 2015097277A JP 2015097277 A JP2015097277 A JP 2015097277A JP 5927323 B1 JP5927323 B1 JP 5927323B1
Authority
JP
Japan
Prior art keywords
polynomial
vector
matrix
order
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015097277A
Other languages
English (en)
Other versions
JP2016213731A (ja
Inventor
大 五十嵐
大 五十嵐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2015097277A priority Critical patent/JP5927323B1/ja
Priority to PCT/JP2016/063955 priority patent/WO2016181978A1/ja
Priority to CN201680027025.8A priority patent/CN107534450B/zh
Priority to EP16792703.7A priority patent/EP3297170B1/en
Priority to US15/567,812 priority patent/US10120837B2/en
Application granted granted Critical
Publication of JP5927323B1 publication Critical patent/JP5927323B1/ja
Publication of JP2016213731A publication Critical patent/JP2016213731A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Error Detection And Correction (AREA)
  • Complex Calculations (AREA)

Abstract

【課題】体乗算の処理量を低減する。【解決手段】行列作用装置1は、aはa0, …, ak-1∈GF(xq)を要素とするk次ベクトルであり、bはb0, …, bm-1∈GF(xq)を要素とするm次ベクトルであり、Aはm行k列のファンデルモンデ行列であり、ベクトルaと行列Aとを乗算してベクトルbを計算する。多項式乗算部12は、値biを計算する。次数削減部13は、値biのq次以上の部分をXqで割った多項式hiと、値biのq次未満の部分である多項式giとを用いて、gi-hif'を値biとする。【選択図】図1

Description

この発明は、符号化技術に関し、特に、符号化処理を効率的に行う技術に関する。
従来の誤り訂正符号技術にリード・ソロモン符号(Reed-Solomon Codes)がある。リード・ソロモン符号については、例えば非特許文献1に記載されている。
誤り訂正符号の符号化処理は、平文の入力ベクトルaに線形変換(つまり行列)Aを乗じて出力ベクトルbを得る処理として、式(1)により表現できる。すなわち、行列Aのi番目の行は、出力ベクトルbのi番目の要素biを生成するために入力ベクトルaの各要素に乗じる係数を表す。
b = Aa …(1)
誤り訂正符号の復号処理も線形変換と見ることができる。A', b'をA, bのうち復号に利用するk個の要素に対応する行だけを抜き出した行列もしくはベクトルとして、式(2)により表現できる。
b' = A'a …(2)
したがって、行列Aに逆行列が存在すれば、式(3)により復号できる。
a = A'-1b' …(3)
誤り訂正符号の符号化では、入力ベクトルaは式(4)で表されるk次のベクトルとする。ただし、kは2以上の整数である。
Figure 0005927323
出力ベクトルbは式(5)で表されるn次のベクトルとする。ただし、nは2以上の整数であり、n≧2k-1である。
Figure 0005927323
行列Aは、式(6)で表されるk行k列の単位行列とm行k列のファンデルモンデ行列(Vandermonde matrix)を縦に連結した行列である。ただし、m=n-kである。ファンデルモンデ行列とは、行または列の行列要素に等比数列の各項が順番にならんでいる特別な構成の行列である。
Figure 0005927323
つまり、行列Aは式(7)のようなn行k列の行列である。
Figure 0005927323
行列Aは、k行目までは単位行列であるため、出力ベクトルbのk番目までの要素b0, …, bk-1は入力ベクトルaの要素a0, …, ak-1と一致する。出力ベクトルbにおいて入力ベクトルaの要素と一致する要素をデータシェアと呼び、それ以外の要素をパリティシェアと呼ぶ。
バァナード・スカラー著、「ディジタル通信 基本と応用」、ピアソン・エデュケーション、2006年
従来の誤り訂正符号技術では処理量が大きいという課題がある。特に、符号化処理において行われる体乗算の処理量が大きい。
この発明の目的は、このような点を鑑みて、符号化技術における体乗算の処理量を低減することができる行列作用技術を提供することである。
上記の課題を解決するために、この発明の第一の態様の行列作用装置は、xは拡大体GF(xq)を生成する既約多項式f[X]の元Xであり、qは拡大体GF(xq)の拡大次数であり、dは既約多項式f[X]から最高次項を除いた多項式f'の最高次項の次数であり、kは2以上の整数であり、mは1以上の整数であり、(m-1)(k-1)≦q-dであり、aはa0, …, ak-1∈GF(xq)を要素とするk次ベクトルであり、bはb0, …, bm-1∈GF(xq)を要素とするm次ベクトルであり、Aはm行k列のファンデルモンデ行列であり、ベクトルaと行列Aとを乗算してベクトルbを計算する行列作用装置であって、i∈{0, …, m-1}について、次式により値biを計算する多項式乗算部と、
Figure 0005927323
i∈{0, …, m-1}について、値biのq次以上の部分をXqで割った多項式hiと、値biのq次未満の部分である多項式giとを用いて、gi-hif'を上記値biとする次数削減部と、を含む。
この発明の第二の態様の行列作用装置は、xは拡大体GF(xq)を生成する既約多項式f[X]の元Xであり、qは拡大体GF(xq)の拡大次数であり、dは既約多項式f[X]から最高次項を除いた多項式f'の最高次項の次数であり、kは2以上の整数であり、mは1以上の整数であり、aはa0, …, ak-1∈GF(xq)を要素とするk次ベクトルであり、bはb0, …, bm-1∈GF(xq)を要素とするm次ベクトルであり、Aはm行k列のファンデルモンデ行列であり、αはq-d以下の正の整数であり、ベクトルaと行列Aとを乗算してベクトルbを計算する行列作用装置であって、j∈{0, …, k-1}について、a'j=aj, dj=0とするベクトル複製部と、i∈{0, …, m-1}について、次式により値biを計算する多項式乗算部と、
Figure 0005927323
i∈{0, …, m-1}について、値biのq次以上の部分をXqで割った多項式hiと、値biのq次未満の部分である多項式giとを用いて、gi-hif'を値biとする次数削減部と、i∈{0, …, m-1}, j∈{0, …, k-1}について、i≠m-1、かつ、(i+1)j-d≧q-dであれば、a'j:=a'jxα, dj:=dj+αと更新するベクトル更新部と、を含む。
この発明によれば、符号化技術における体乗算の処理量を低減することができる。
図1は第一実施形態に係る行列作用装置の機能構成を例示する図である。 図2は第一実施形態に係る行列作用方法の処理フローを例示する図である。 図3は第二実施形態に係る行列作用装置の機能構成を例示する図である。 図4は第二実施形態に係る行列作用方法の処理フローを例示する図である。
実施形態の説明に先立ち、この発明の原理について説明する。
前提として、以下の説明では、xは既約多項式をf[X]=X64+X4+X3+X2+X+1とする拡大体GF(264)の元Xである。xを整数表現すると2である。
GF(264)は多項式を、mod 2整数を係数とする64次多項式f[X]で割った(多項式としての割り算)余りの集合である。体であり四則演算を行うことができる。特殊な演算をもつビットの64次ベクトルと考えてもよい。GF(264)は64ビット整数で表現でき、項xiを2iで表現する。例えば、1+x+x3は、20+21+23=11と表現できる。
a, b∈GF(264)の乗算は、2つの63次多項式a, b(式(8))を掛けてから64次多項式fで割る操作である(式(9))。このとき、λ次の項の係数は式(10)となる。
Figure 0005927323
式(9)において、126次多項式をmod fして63次多項式にする処理をリダクションと呼ぶ。リダクションは、式(11)の同値関係を用いて処理する。
f=x64+x4+x3+x+1=0 mod f …(11)
式(11)を変形すると、式(12)に示すように64次項を4次式に落とす関係となる。
x64=x4+x3+x+1 mod f …(12)
式(13)に示すように、64次以上の項もすべて60次次数を下げられる。
x64+n=xn(x4+x3+x+1) mod f …(13)
126次多項式を、63次多項式gと62次多項式hを用いて、式(14)のように表すことができる。
g+x64h=g+(x4+x3+x+1)h mod f …(14)
ある任意の要素aとx+1との乗算(x+1)aは、式(15)で表すことができる。
Figure 0005927323
また、xnaはaの各項がn次高い項となるので、整数表現における2n倍、もしくはnビット左シフトと等価である。したがって、式(16)のように表すことができる。
Figure 0005927323
hは62次多項式であるため、式(16)の
Figure 0005927323
は64次以上の多項式となり、再度次数を下げる必要がある。64次以上の部分は式(17)のようになる。
Figure 0005927323
64ビット整数内では64ビットを超えたビットは切り捨てられることを考慮すると、式(18)を計算すればよい。
Figure 0005927323
乗算の際、片方が61ビット以内のとき(より正確には両方のビット数を足して125以下のとき)、式(19)が成り立つため、リダクションを効率化できる。
Figure 0005927323
したがって、リダクションまで含めて考えると、61ビット数で1ビットだけが立っている数、つまり0≦i≦60の範囲での2iとの乗算は高速である。
従来の誤り訂正符号では、ファンデルモンデ行列を用いてパリティシェアを生成する。k個の入力をa0, …, ak-1∈GF(xq)とし、パリティシェアを式(20)により計算する。ただし、GF(xq)は既約多項式f[X]により生成され、拡大次数をqとする拡大体である。xは既約多項式f[X]の元であり、f[X]=Xである。
Figure 0005927323
このとき、体がサイズの大きな拡大体のときには効率化ができる。既約多項式fのうち、最高次項を除いた多項式をf'とする。多項式f'の最高次項の次数をdとする。すると、(m-1)(k-1)≦q-dを満たすとき、乗算が以下のように通常よりも簡単になる。
iがq未満のとき、xi=Xiである。入力aを式(21)とすると、多項式乗算の結果は、式(22)となる。
Figure 0005927323
ここで次数がq次以上となるので、f≡0⇔Xq≡-f'を用いて、fによる剰余をとる。つまり、aXiのうちq次未満の部分をg、q次以上の部分をXqで割った多項式hとおくと、aXi≡g-hf'と表される。拡大体乗算では通常、このような次数削減をg-hf'がq-1次となるまで繰り返す。このときiがq-d以下だと、aXiの次数はたかだかq-1+q-d≡2q-d-1であり、hの次数はたかだかq-d-1となる。f'がd次多項式なので、hf'の次数はたかだかq-1となり、次数削減が1回で済む。
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
[第一実施形態]
第一実施形態の行列作用装置1は、図1に例示するように、ベクトル入力部10、行列生成部11、多項式乗算部12、次数削減部13、およびベクトル出力部14を含む。この行列作用装置1が、図2に例示する各ステップの処理を行うことにより第一実施形態の行列作用方法が実現される。
行列作用装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。行列作用装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。行列作用装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。行列作用装置1の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
図2を参照して、第一実施形態の行列作用方法の処理手続きを説明する。
ステップS10において、ベクトル入力部10へ、値a0, …, ak-1∈GF(xq)を要素とするk次ベクトルa=(a0, …, ak-1)が入力される。ベクトルaは多項式乗算部12へ送られる。ベクトルaは式(23)で定義される。
Figure 0005927323
ステップS11において、行列生成部11は、m行k列のファンデルモンデ行列Aを生成する。ここで、m, kは(m-1)(k-1)≦q-dが成り立つ値とする。行列Aは多項式乗算部12へ送られる。行列Aは式(24)で定義される。
Figure 0005927323
つまり、行列Aは式(25)のようなm行k列の行列である。
Figure 0005927323
ステップS12において、多項式乗算部12は、i∈{0, …, m-1}について、式(26)により値biを計算する。値b0, …, bm-1は次数削減部13へ送られる。
Figure 0005927323
ステップS13において、次数削減部13は、i∈{0, …, m-1}について、値biのq次以上の部分をXqで割った多項式hiと、値biのq次未満の部分である多項式giとを生成する。この多項式hiと多項式giとを用いて、gi-hif'を計算し、値biを更新する。更新された値b0, …, bm-1はベクトル出力部14へ送られる。
ステップS12とステップS13の処理は、i∈{0, …, m-1}についてそれぞれ行う。これにより値b0, …, bm-1が計算される。各iに対する処理は並列に行うことができる。
ステップS14において、ベクトル出力部14は、値b0, …, bm-1を要素とするm次ベクトルb=(b0, …, bm-1)を出力する。
第一実施形態の行列作用方法では、(m-1)(k-1)≦q-dが成り立つため、すべての体乗算においてリダクションが1回で済むようになっている。そのため、リダクションを含めた乗算の処理量が低減する。
[第二実施形態]
第二実施形態では、(m-1)(k-1)≦q-dを満たさない場合でも体乗算の処理量を低減するように拡張する。
第二実施形態の行列作用装置2は、図3に例示するように、ベクトル入力部10、行列生成部11、多項式乗算部12、次数削減部13、およびベクトル出力部14を第一実施形態と同様に含み、ベクトル複製部15およびベクトル更新部16をさらに含む。この行列作用装置2が、図4に例示する各ステップの処理を行うことにより第二実施形態の行列作用方法が実現される。
図4を参照して、第二実施形態の行列作用方法の処理手続きを説明する。以下では、上述の第一実施形態との相違点を中心に説明する。
ステップS15において、ベクトル複製部15は、j∈{0, …, k-1}について、a'j=ajとする。また、dj=0とする。ベクトルa'=(a'0, …, a'k-1)および値d0, …, dk-1は多項式乗算部12へ送られる。
ステップS11において、行列生成部11は、m行k列のファンデルモンデ行列Aを生成する。ただし、第一実施形態とは異なり、m, kは(m-1)(k-1)≦q-dが成り立たなくともよい。行列Aは多項式乗算部12へ送られる。
ステップS12において、多項式乗算部12は、i∈{0, …, m-1}について、式(27)により値biを計算する。値b0, …, bm-1は次数削減部13へ送られる。
Figure 0005927323
ステップS16において、ベクトル更新部16は、j∈{0, …, k-1}について、i≠m-1、かつ、(i+1)j-d≧q-dであれば、a'j:=a'jxα, dj:=dj+αと更新する。ここで、αはq-d以下の正の整数である。更新されたベクトルa'=(a'0, …, a'k-1)および値d0, …, dk-1は多項式乗算部12へ送られる。
第二実施形態では、第一実施形態ほどには処理量の削減はできないが、ベクトル更新部16における更新回数が低ければ(すなわち、適切なαを設定すれば)、十分高速化に有効である。
[第三実施形態]
上記の実施形態において、拡大体の位数が2べきの場合は、加算は単に排他的論理和演算(XOR)となる。さらに、多項式乗算(ajxij)は、Xが整数表現で2となるため、単にijビットシフトとなる。したがって、コンピュータで処理するにあたって、特に効率的となる。
この発明は、ファンデルモンデ行列では乗算の右側axのxが単純な範囲に固定されていることにより有効となっている。多項式乗算におけるajXjのうち1項でも2q-d-1次を超えると次数削減が1回では収まらず、また、xijの多項式乗算がビットシフトで済むのはファンデルモンデ行列の要素がすべてxのべき乗であるからである。
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 行列作用装置
10 ベクトル入力部
11 行列生成部
12 多項式乗算部
13 次数削減部
14 ベクトル出力部
15 ベクトル複製部
16 ベクトル更新部

Claims (5)

  1. xは拡大体GF(xq)を生成する既約多項式f[X]の元Xであり、qは拡大体GF(xq)の拡大次数であり、dは既約多項式f[X]から最高次項を除いた多項式f'の最高次項の次数であり、kは2以上の整数であり、mは1以上の整数であり、(m-1)(k-1)≦q-dであり、aはa0, …, ak-1∈GF(xq)を要素とするk次ベクトルであり、bはb0, …, bm-1∈GF(xq)を要素とするm次ベクトルであり、Aはm行k列のファンデルモンデ行列であり、
    ベクトルaと行列Aとを乗算してベクトルbを計算する行列作用装置であって、
    i∈{0, …, m-1}について、次式により値biを計算する多項式乗算部と、
    Figure 0005927323

    i∈{0, …, m-1}について、上記値biのq次以上の部分をXqで割った多項式hiと、上記値biのq次未満の部分である多項式giとを用いて、gi-hif'を上記値biとする次数削減部と、
    を含む行列作用装置。
  2. xは拡大体GF(xq)を生成する既約多項式f[X]の元Xであり、qは拡大体GF(xq)の拡大次数であり、dは既約多項式f[X]から最高次項を除いた多項式f'の最高次項の次数であり、kは2以上の整数であり、mは1以上の整数であり、aはa0, …, ak-1∈GF(xq)を要素とするk次ベクトルであり、bはb0, …, bm-1∈GF(xq)を要素とするm次ベクトルであり、Aはm行k列のファンデルモンデ行列であり、αはq-d以下の正の整数であり、
    ベクトルaと行列Aとを乗算してベクトルbを計算する行列作用装置であって、
    j∈{0, …, k-1}について、a'j=aj, dj=0とするベクトル複製部と、
    i∈{0, …, m-1}について、次式により値biを計算する多項式乗算部と、
    Figure 0005927323

    i∈{0, …, m-1}について、上記値biのq次以上の部分をXqで割った多項式hiと、上記値biのq次未満の部分である多項式giとを用いて、gi-hif'を上記値biとする次数削減部と、
    i∈{0, …, m-1}, j∈{0, …, k-1}について、i≠m-1、かつ、(i+1)j-d≧q-dであれば、a'j:=a'jxα, dj:=dj+αと更新するベクトル更新部と、
    を含む行列作用装置。
  3. xは拡大体GF(xq)を生成する既約多項式f[X]の元Xであり、qは拡大体GF(xq)の拡大次数であり、dは既約多項式f[X]から最高次項を除いた多項式f'の最高次項の次数であり、kは2以上の整数であり、mは1以上の整数であり、(m-1)(k-1)≦q-dであり、aはa0, …, ak-1∈GF(xq)を要素とするk次ベクトルであり、bはb0, …, bm-1∈GF(xq)を要素とするm次ベクトルであり、Aはm行k列のファンデルモンデ行列であり、
    ベクトルaと行列Aとを乗算してベクトルbを計算する行列作用方法であって、
    多項式乗算部が、i∈{0, …, m-1}について、次式により値biを計算する多項式乗算ステップと、
    Figure 0005927323

    次数削減部が、i∈{0, …, m-1}について、上記値biのq次以上の部分をXqで割った多項式hiと、上記値biのq次未満の部分である多項式giとを用いて、gi-hif'を上記値biとする次数削減ステップと、
    を含む行列作用方法。
  4. xは拡大体GF(xq)を生成する既約多項式f[X]の元Xであり、qは拡大体GF(xq)の拡大次数であり、dは既約多項式f[X]から最高次項を除いた多項式f'の最高次項の次数であり、kは2以上の整数であり、mは1以上の整数であり、aはa0, …, ak-1∈GF(xq)を要素とするk次ベクトルであり、bはb0, …, bm-1∈GF(xq)を要素とするm次ベクトルであり、Aはm行k列のファンデルモンデ行列であり、αはq-d以下の正の整数であり、
    ベクトルaと行列Aとを乗算してベクトルbを計算する行列作用方法であって、
    ベクトル複製部が、j∈{0, …, k-1}について、a'j=aj, dj=0とするベクトル複製ステップと、
    多項式乗算部が、i∈{0, …, m-1}について、次式により値biを計算する多項式乗算ステップと、
    Figure 0005927323

    次数削減部が、i∈{0, …, m-1}について、上記値biのq次以上の部分をXqで割った多項式hiと、上記値biのq次未満の部分である多項式giとを用いて、gi-hif'を上記値biとする次数削減ステップと、
    ベクトル更新部が、i∈{0, …, m-1}, j∈{0, …, k-1}について、i≠m-1、かつ、(i+1)j-d≧q-dであれば、a'j:=a'jxα, dj:=dj+αと更新するベクトル更新ステップと、
    を含む行列作用方法。
  5. 請求項1または2に記載の行列作用装置としてコンピュータを機能させるためのプログラム。
JP2015097277A 2015-05-12 2015-05-12 行列作用装置、行列作用方法、およびプログラム Active JP5927323B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2015097277A JP5927323B1 (ja) 2015-05-12 2015-05-12 行列作用装置、行列作用方法、およびプログラム
PCT/JP2016/063955 WO2016181978A1 (ja) 2015-05-12 2016-05-11 行列作用装置、行列作用方法、およびプログラム
CN201680027025.8A CN107534450B (zh) 2015-05-12 2016-05-11 矩阵应用装置、矩阵应用方法、以及存储介质
EP16792703.7A EP3297170B1 (en) 2015-05-12 2016-05-11 Efficient reed-solomon encoding
US15/567,812 US10120837B2 (en) 2015-05-12 2016-05-11 Matrix application apparatus, matrix application method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015097277A JP5927323B1 (ja) 2015-05-12 2015-05-12 行列作用装置、行列作用方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP5927323B1 true JP5927323B1 (ja) 2016-06-01
JP2016213731A JP2016213731A (ja) 2016-12-15

Family

ID=56089772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015097277A Active JP5927323B1 (ja) 2015-05-12 2015-05-12 行列作用装置、行列作用方法、およびプログラム

Country Status (5)

Country Link
US (1) US10120837B2 (ja)
EP (1) EP3297170B1 (ja)
JP (1) JP5927323B1 (ja)
CN (1) CN107534450B (ja)
WO (1) WO2016181978A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5918884B1 (ja) * 2015-05-12 2016-05-18 日本電信電話株式会社 復号装置、復号方法、およびプログラム
KR102252311B1 (ko) * 2018-07-30 2021-05-14 부산대학교 산학협력단 저전력 디바이스 환경상에서 대용량 암호화 행렬 연산 최적화 처리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006033233A (ja) * 2004-07-14 2006-02-02 Sony Corp リード・ソロモン復号方法及び装置
JP2009545228A (ja) * 2006-07-25 2009-12-17 トムソン ライセンシング スタガーキャスティング及びクロスパケット前方誤り訂正を用いたインターネットプロトコル型無線ネットワークでのバーストパケット損失からの回復

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6598201B1 (en) * 1999-03-15 2003-07-22 Texas Instruments Incorporated Error coding structure and method
US6766344B2 (en) * 2001-05-08 2004-07-20 International Business Machines Corporation Processing Galois Field arithmetic
US7581156B2 (en) * 2002-12-16 2009-08-25 Microsoft Corporation Systems and methods for providing improved encoding and reconstruction of data
FR2860360B1 (fr) * 2003-09-29 2005-12-09 Canon Kk Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
DE102006013989A1 (de) * 2006-03-22 2007-09-27 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Verfahren zur Reduktion eines Polynoms in einem binären finiten Feld
JP4756489B2 (ja) * 2006-09-12 2011-08-24 学校法人玉川学園 誤り訂正符号化装置、誤り訂正符号化方法及びプログラム
US8201060B2 (en) * 2007-07-11 2012-06-12 Ternarylocig LLC Methods and systems for rapid error correction of Reed-Solomon codes
CN101621299B (zh) * 2008-07-04 2013-01-30 华为技术有限公司 一种突发纠错的方法、设备和装置
CN101431340B (zh) * 2008-12-12 2011-07-20 东南大学 一种里德-所罗门码的快速自适应置信度传播译码方法
CN102801501B (zh) * 2012-08-21 2015-03-11 中国电子科技集团公司第三十六研究所 一种bch缩短码的编码参数的识别方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006033233A (ja) * 2004-07-14 2006-02-02 Sony Corp リード・ソロモン復号方法及び装置
JP2009545228A (ja) * 2006-07-25 2009-12-17 トムソン ライセンシング スタガーキャスティング及びクロスパケット前方誤り訂正を用いたインターネットプロトコル型無線ネットワークでのバーストパケット損失からの回復

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JPN6016013511; 白勢 政明 MASAAKI SHIRASE: 'MICAzへのVandermonde行列乗算法の適用について' 情報処理学会研究報告 Vol.2012-CSEC-56, No.33, 20120415, pp.1-7, 一般社団法人情報処理学会 *
JPN6016013512; 佐々木 勇太 他: 'etaTペアリングに対するファンデルモンド行列を用いた高速乗算法' 2009年 暗号と情報セキュリティシンポジウム SCIS2009 , 20090120, pp.1-6 *
JPN6016013513; Ali A. Al-Shaikhi et al.: 'Packet Oriented Error Correcting Codes Using Vandermonde Matrices and Shift Operators' Wireless Communications and Networking Conference, 2008. WCNC 2008. IEEE , 20080403, pp.261-266 *
JPN6016013514; Ernst M. Gabidulin et al.: 'On the rank of LDPC matrices constructed by Vandermonde matrices and RS codes' Information Theory, 2006 IEEE International Symposium on , 20060714, pp.861-865 *

Also Published As

Publication number Publication date
EP3297170A1 (en) 2018-03-21
WO2016181978A1 (ja) 2016-11-17
JP2016213731A (ja) 2016-12-15
EP3297170A4 (en) 2018-12-26
EP3297170B1 (en) 2022-03-02
US10120837B2 (en) 2018-11-06
CN107534450B (zh) 2021-03-02
CN107534450A (zh) 2018-01-02
US20180107629A1 (en) 2018-04-19

Similar Documents

Publication Publication Date Title
JP5957120B1 (ja) 秘密分散方法、秘密分散システム、分散装置、およびプログラム
KR101264061B1 (ko) 플래시 메모리를 위한 오류 정정 메커니즘
US9928037B2 (en) Modulo calculation using polynomials
JP2008510379A (ja) データをエンコード及びデコードするための方法並びに装置
US8261176B2 (en) Polynomial division
JP5918884B1 (ja) 復号装置、復号方法、およびプログラム
JP5333233B2 (ja) 復号装置、データ蓄積装置、データ通信システム、および復号方法
WO2016050323A1 (en) Method and device for calculating a crc code in parallel
JP5927323B1 (ja) 行列作用装置、行列作用方法、およびプログラム
JP5269936B2 (ja) 符号化器及び記憶装置
CN114389752A (zh) 循环冗余校验码生成方法、装置、设备、介质和程序产品
JP5148586B2 (ja) 復号装置および復号方法
KR20190003315A (ko) 일반화된 텐서곱(gtp) 코드의 효율적인 인코딩 방법 및 그 장치
KR101923116B1 (ko) 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법
JP5840086B2 (ja) 縮約装置、縮約方法、およびプログラム
KR100954843B1 (ko) 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
KR101791637B1 (ko) 디코더 및 이를 포함하는 메모리 컨트롤러
KR20140034579A (ko) 채널 복호화 장치
JP5131379B2 (ja) Raid装置及びガロア体の積演算処理方法
JP5755609B2 (ja) 演算装置、その方法およびプログラム
JP2008197625A (ja) 有限体演算方法および有限体演算装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160412

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160425

R150 Certificate of patent or registration of utility model

Ref document number: 5927323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150