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

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

Info

Publication number
WO2016181978A1
WO2016181978A1 PCT/JP2016/063955 JP2016063955W WO2016181978A1 WO 2016181978 A1 WO2016181978 A1 WO 2016181978A1 JP 2016063955 W JP2016063955 W JP 2016063955W WO 2016181978 A1 WO2016181978 A1 WO 2016181978A1
Authority
WO
WIPO (PCT)
Prior art keywords
polynomial
vector
order
matrix
value
Prior art date
Application number
PCT/JP2016/063955
Other languages
English (en)
French (fr)
Inventor
大 五十嵐
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to EP16792703.7A priority Critical patent/EP3297170B1/en
Priority to CN201680027025.8A priority patent/CN107534450B/zh
Priority to US15/567,812 priority patent/US10120837B2/en
Publication of WO2016181978A1 publication Critical patent/WO2016181978A1/ja

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

Definitions

  • the present invention relates to an encoding technique, and more particularly to a technique for efficiently performing an encoding process.
  • Reed-Solomon code (Reed-Solomon ⁇ Codes) as a conventional error correction code technology.
  • the Reed-Solomon code is described in Non-Patent Document 1, for example.
  • the encoding process of the error correction code can be expressed by Expression (1) as a process of multiplying the plaintext input vector a by a linear transformation (that is, a matrix) A to obtain the output vector b. That is, the i-th row of the matrix A represents a coefficient by which each element of the input vector a is multiplied to generate the i-th element b i of the output vector b.
  • a ′ and b ′ can be expressed by Expression (2) as a matrix or vector in which only rows corresponding to k elements used for decoding are extracted from A and b.
  • the input vector a is assumed to be a k-th order vector represented by Expression (4).
  • k is an integer of 2 or more.
  • n an integer greater than or equal to 2
  • n> 2k-1.
  • the van der Monde matrix is a specially configured matrix in which each term of a geometric sequence is arranged in turn in a matrix element of a row or a column.
  • the matrix A is an n-by-k matrix as shown in Equation (7).
  • the elements b 0 , ..., b k-1 up to the k-th of the output vector b match the elements a 0 , ..., a k-1 of the input vector a To do.
  • an element that matches the element of the input vector a is called data share, and the other elements are called parity share.
  • the conventional error correction code technology has a problem that the processing amount is large. In particular, the amount of field multiplication performed in the encoding process is large.
  • An object of the present invention is to provide a matrix operation technique that can reduce the amount of field multiplication in the encoding technique in view of such points.
  • x is an element X of an irreducible polynomial f [X] that generates an extension field GF (x q ), and q is an extension.
  • d is the degree of the highest order term of the polynomial f ′ obtained by removing the highest order term from the irreducible polynomial f [X]
  • k is an integer of 2 or more
  • m is 1 (M-1) (k-1) ⁇ qd
  • a is a k- th order vector whose elements are a 0 ,..., a k-1 ⁇ GF (x q )
  • b is b 0 ,..., b m-1 ⁇ GF (x q ) is an m-order vector
  • A is an m-by-k van der Monde matrix
  • the vector a is multiplied by the matrix A.
  • a polynomial multiplication unit for calculating a value b i according to the following equation:
  • x is an element X of an irreducible polynomial f [X] that generates an extension field GF (x q ), and q is an extension degree of the extension field GF (x q ).
  • i ⁇ ⁇ 0, ..., m- 1 ⁇ for, using a polynomial h i obtained by dividing the q following more portions of the value b i in X q, and a polynomial g i is a part of q less than the following values b i
  • the amount of field multiplication in the encoding technique can be reduced.
  • FIG. 1 is a diagram illustrating a functional configuration of the matrix operation device according to the first embodiment.
  • FIG. 2 is a diagram illustrating a processing flow of the matrix operation method according to the first embodiment.
  • FIG. 3 is a diagram illustrating a functional configuration of the matrix operation device according to the second embodiment.
  • FIG. 4 is a diagram illustrating a processing flow of the matrix operation method according to the second embodiment.
  • x is 2 when expressed as an integer.
  • GF (2 64 ) is a set of remainders obtained by dividing a polynomial by a 64-th order polynomial f [X] whose coefficient is a mod 2 integer (division as a polynomial). It is a body and can perform four arithmetic operations. You can think of it as a 64-bit vector of bits with special operations.
  • Equation (10) The multiplication of a, b ⁇ GF (2 64 ) is an operation of multiplying two 63th order polynomials a, b (formula (8)) and then dividing by the 64th order polynomial f (formula (9)). At this time, the coefficient of the ⁇ -order term is expressed by Equation (10).
  • equation (9) the process of changing the 126th order polynomial to a 63th order polynomial is called reduction. Reduction is processed using the equivalence relation of equation (11).
  • Equation (13) the terms of the 64th and higher terms can all be reduced to the 60th order.
  • the 126th order polynomial can be expressed as shown in Expression (14) using a 63th order polynomial g and a 62nd order polynomial h.
  • x n a is equivalent to 2 n times in an integer representation or n-bit left shift because each term of a is an n-th order higher term. Therefore, it can be expressed as in equation (16).
  • Equation (17) Becomes a polynomial of order 64 or higher, and it is necessary to lower the order again.
  • the 64th and higher order parts are as shown in Equation (17).
  • equation (18) may be calculated.
  • a parity share is generated using a van der Monde matrix.
  • k inputs are a 0 ,..., a k ⁇ 1 ⁇ GF (x q )
  • the parity share is calculated by Equation (20).
  • GF (x q ) is an extension field generated by an irreducible polynomial f [X] and having an extension order q.
  • the efficiency can be improved.
  • the polynomial excluding the highest order term is defined as f ′.
  • d be the order of the highest order term of the polynomial f ′.
  • the order is equal to or higher than the qth order
  • the remainder by f is obtained using f ⁇ 0 ⁇ X q ⁇ f ′. That, g portions of less than q next of aX i, if the q following more portions put polynomial h divided by X q, denoted aX i ⁇ g-hf '.
  • order reduction is usually repeated until g ⁇ hf ′ becomes q ⁇ 1 order.
  • i is less than or equal to qd
  • the order of aX i is at most q-1 + qd ⁇ 2q-d-1
  • the order of h is at most qd-1. Since f ′ is a d-order polynomial, the order of hf ′ is at most q ⁇ 1, and the order reduction is only one time.
  • the matrix operation device 1 includes a vector input unit 10, a matrix generation unit 11, a polynomial multiplication unit 12, an order reduction unit 13, and a vector output unit 14.
  • the matrix operation device 1 performs the process of each step illustrated in FIG. 2 to realize the matrix operation method of the first embodiment.
  • the matrix operating device 1 is a special processing unit configured by loading a special program into a known or dedicated computer having a central processing unit (CPU: Central Processing Unit), a main storage device (RAM: Random Access Memory), and the like. Device. For example, the matrix operating device 1 executes each process under the control of the central processing unit. The data input to the matrix operating device 1 and the data obtained in each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out to the central processing unit as necessary. Used for other processing. At least a part of each processing unit of the matrix operating device 1 may be configured by hardware such as an integrated circuit.
  • the vector a is sent to the polynomial multiplier 12.
  • Vector a is defined by equation (23).
  • step S11 the matrix generation unit 11 generates a van der Monde matrix A having m rows and k columns.
  • m and k are values that satisfy (m ⁇ 1) (k ⁇ 1) ⁇ q-d.
  • the matrix A is sent to the polynomial multiplier 12.
  • the matrix A is defined by equation (24).
  • the matrix A is an m-by-k matrix as shown in Equation (25).
  • step S12 the polynomial multiplication unit 12 calculates a value b i for i ⁇ ⁇ 0,..., M ⁇ 1 ⁇ according to Expression (26).
  • the values b 0 ,..., B m ⁇ 1 are sent to the order reduction unit 13.
  • step S ⁇ b> 13 the order reduction unit 13, for i ⁇ ⁇ 0,..., M ⁇ 1 ⁇ , a polynomial h i obtained by dividing a q-order part or more of the value b i by X q and less than the q-order of the value b i.
  • a polynomial g i that is a part of is generated.
  • g i -h i f ′ is calculated, and the value b i is updated.
  • the updated values b 0 ,..., B m ⁇ 1 are sent to the vector output unit 14.
  • Steps S12 and S13 are performed for i ⁇ ⁇ 0,..., M ⁇ 1 ⁇ , respectively.
  • the values b 0 ,..., B m ⁇ 1 are calculated. Processing for each i can be performed in parallel.
  • the expansion is performed so as to reduce the amount of field multiplication even when (m ⁇ 1) (k ⁇ 1) ⁇ qd is not satisfied.
  • the matrix operation device 2 includes a vector input unit 10, a matrix generation unit 11, a polynomial multiplication unit 12, an order reduction unit 13, and a vector output unit 14 as compared with the first embodiment. Similarly, a vector duplication unit 15 and a vector update unit 16 are further included.
  • the matrix action device 2 performs the process of each step illustrated in FIG. 4 to realize the matrix action method of the second embodiment.
  • step S11 the matrix generation unit 11 generates a van der Monde matrix A having m rows and k columns.
  • m and k may not satisfy (m ⁇ 1) (k ⁇ 1) ⁇ q ⁇ d.
  • the matrix A is sent to the polynomial multiplier 12.
  • step S12 the polynomial multiplication unit 12 calculates a value b i according to Expression (27) for i ⁇ ⁇ 0,..., M ⁇ 1 ⁇ .
  • the values b 0 ,..., B m ⁇ 1 are sent to the order reduction unit 13.
  • is a positive integer less than or equal to qd.
  • the amount of processing cannot be reduced as much as in the first embodiment, but if the number of updates in the vector update unit 16 is low (that is, if an appropriate ⁇ is set), it is effective for sufficiently increasing the speed. .
  • the present invention is effective because the x of the right side ax of the multiplication is fixed to a simple range in the van der Monde matrix. Even if one term of a j X j in polynomial multiplication exceeds the 2q-d-1 order, the order reduction does not fit in one time, and the fact that x ij polynomial multiplication requires bit shift is an element of the Vandermonde matrix Is all powers of x.
  • the program describing the processing contents can be recorded on a computer-readable recording medium.
  • a computer-readable recording medium for example, any recording medium such as a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory may be used.
  • this program is distributed, for example, by selling, transferring, or lending a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Furthermore, the program may be distributed by storing the program in a storage device of the server computer and transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device.
  • the computer reads a program stored in its own recording medium and executes a process according to the read program.
  • the computer may directly read the program from a portable recording medium and execute processing according to the program, and the program is transferred from the server computer to the computer.
  • the processing according to the received program may be executed sequentially.
  • the program is not transferred from the server computer to the computer, and the above processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition. It is good.
  • ASP Application Service Provider
  • the program in this embodiment includes information that is used for processing by an electronic computer and that conforms to the program (data that is not a direct command to the computer but has a property that defines the processing of the computer).
  • the present apparatus is configured by executing a predetermined program on a computer.
  • a predetermined program on a computer.
  • at least a part of these processing contents may be realized by hardware.

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とする。

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 JPOXMLDOC01-appb-M000005
 出力ベクトルbは式(5)で表されるn次のベクトルとする。ただし、nは2以上の整数であり、n≧2k-1である。
Figure JPOXMLDOC01-appb-M000006
 行列Aは、式(6)で表されるk行k列の単位行列とm行k列のファンデルモンデ行列(Vandermonde matrix)を縦に連結した行列である。ただし、m=n-kである。ファンデルモンデ行列とは、行または列の行列要素に等比数列の各項が順番にならんでいる特別な構成の行列である。
Figure JPOXMLDOC01-appb-M000007
 つまり、行列Aは式(7)のようなn行k列の行列である。
Figure JPOXMLDOC01-appb-M000008
 行列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 JPOXMLDOC01-appb-M000009
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 JPOXMLDOC01-appb-M000010
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 JPOXMLDOC01-appb-M000011
 式(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 JPOXMLDOC01-appb-M000012
 また、xnaはaの各項がn次高い項となるので、整数表現における2n倍、もしくはnビット左シフトと等価である。したがって、式(16)のように表すことができる。
Figure JPOXMLDOC01-appb-M000013
 hは62次多項式であるため、式(16)の
Figure JPOXMLDOC01-appb-M000014
は64次以上の多項式となり、再度次数を下げる必要がある。64次以上の部分は式(17)のようになる。
Figure JPOXMLDOC01-appb-M000015
 64ビット整数内では64ビットを超えたビットは切り捨てられることを考慮すると、式(18)を計算すればよい。
Figure JPOXMLDOC01-appb-M000016
 乗算の際、片方が61ビット以内のとき(より正確には両方のビット数を足して125以下のとき)、式(19)が成り立つため、リダクションを効率化できる。
Figure JPOXMLDOC01-appb-M000017
 したがって、リダクションまで含めて考えると、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 JPOXMLDOC01-appb-M000018
 このとき、体がサイズの大きな拡大体のときには効率化ができる。既約多項式fのうち、最高次項を除いた多項式をf'とする。多項式f'の最高次項の次数をdとする。すると、(m-1)(k-1)≦q-dを満たすとき、乗算が以下のように通常よりも簡単になる。
 iがq未満のとき、xi=Xiである。入力aを式(21)とすると、多項式乗算の結果は、式(22)となる。
Figure JPOXMLDOC01-appb-M000019
 ここで次数が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 JPOXMLDOC01-appb-M000020
 ステップS11において、行列生成部11は、m行k列のファンデルモンデ行列Aを生成する。ここで、m, kは(m-1)(k-1)≦q-dが成り立つ値とする。行列Aは多項式乗算部12へ送られる。行列Aは式(24)で定義される。
Figure JPOXMLDOC01-appb-M000021
 つまり、行列Aは式(25)のようなm行k列の行列である。
Figure JPOXMLDOC01-appb-M000022
 ステップS12において、多項式乗算部12は、i∈{0, …, m-1}について、式(26)により値biを計算する。値b0, …, bm-1は次数削減部13へ送られる。
Figure JPOXMLDOC01-appb-M000023
 ステップ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 JPOXMLDOC01-appb-M000024
 ステップ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)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

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 JPOXMLDOC01-appb-M000001

     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 JPOXMLDOC01-appb-M000002

     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 JPOXMLDOC01-appb-M000003

     次数削減部が、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 JPOXMLDOC01-appb-M000004

     次数削減部が、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に記載の行列作用装置としてコンピュータを機能させるためのプログラム。
PCT/JP2016/063955 2015-05-12 2016-05-11 行列作用装置、行列作用方法、およびプログラム WO2016181978A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP16792703.7A EP3297170B1 (en) 2015-05-12 2016-05-11 Efficient reed-solomon encoding
CN201680027025.8A CN107534450B (zh) 2015-05-12 2016-05-11 矩阵应用装置、矩阵应用方法、以及存储介质
US15/567,812 US10120837B2 (en) 2015-05-12 2016-05-11 Matrix application apparatus, matrix application method and program

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
WO2016181978A1 true WO2016181978A1 (ja) 2016-11-17

Family

ID=56089772

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/063955 WO2016181978A1 (ja) 2015-05-12 2016-05-11 行列作用装置、行列作用方法、およびプログラム

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
US20050138533A1 (en) * 2003-09-29 2005-06-23 Canon Kabushiki Kaisha Encoding/decoding device using a reed-solomon encoder/decoder
JP2006033233A (ja) * 2004-07-14 2006-02-02 Sony Corp リード・ソロモン復号方法及び装置

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
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
JP5184527B2 (ja) * 2006-07-25 2013-04-17 トムソン ライセンシング スタガーキャスティング及びクロスパケット前方誤り訂正を用いたインターネットプロトコル型無線ネットワークでのバーストパケット損失からの回復
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
US20050138533A1 (en) * 2003-09-29 2005-06-23 Canon Kabushiki Kaisha Encoding/decoding device using a reed-solomon encoder/decoder
JP2006033233A (ja) * 2004-07-14 2006-02-02 Sony Corp リード・ソロモン復号方法及び装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
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., March 2008 (2008-03-01), pages 261 - 266, XP055329135 *
See also references of EP3297170A4 *
YUTA SASAKI ET AL.: "etaT Pairing ni Taisuru Vandermonde Gyoretsu o Mochiita Kosoku Josanho", 2009 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY SCIS 2009, 23 January 2009 (2009-01-23), pages 1 - 6, XP009507437 *

Also Published As

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

Similar Documents

Publication Publication Date Title
JP5957120B1 (ja) 秘密分散方法、秘密分散システム、分散装置、およびプログラム
JP4602406B2 (ja) データをエンコード及びデコードするための方法並びに装置
US9928037B2 (en) Modulo calculation using polynomials
JP5333233B2 (ja) 復号装置、データ蓄積装置、データ通信システム、および復号方法
WO2016181992A1 (ja) 復号装置、復号方法、およびプログラム
WO2016181978A1 (ja) 行列作用装置、行列作用方法、およびプログラム
JP5269936B2 (ja) 符号化器及び記憶装置
JP5148586B2 (ja) 復号装置および復号方法
CN114389752A (zh) 循环冗余校验码生成方法、装置、设备、介质和程序产品
US8739006B2 (en) Reduced circuit implementation of encoder and syndrome generator
US11463113B2 (en) Apparatus and method for multi-code distributed storage
KR101923116B1 (ko) 분산 저장 시스템에서 부분접속 복구 부호를 이용하는 부호화/복호화 장치 및 방법
JP2014021237A (ja) 縮約装置、縮約方法、およびプログラム
US20150254130A1 (en) Error correction decoder
TWI523437B (zh) Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法
KR101791637B1 (ko) 디코더 및 이를 포함하는 메모리 컨트롤러
KR20140034579A (ko) 채널 복호화 장치
US9471281B2 (en) Vectorized Galois field multiplication
Zhang et al. A Method for Reducing the Complexity of Meggitt Decoder
JP5131379B2 (ja) Raid装置及びガロア体の積演算処理方法
JP2008197625A (ja) 有限体演算方法および有限体演算装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16792703

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15567812

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE