JP2001066988A - Arithmetic unit - Google Patents

Arithmetic unit

Info

Publication number
JP2001066988A
JP2001066988A JP23855699A JP23855699A JP2001066988A JP 2001066988 A JP2001066988 A JP 2001066988A JP 23855699 A JP23855699 A JP 23855699A JP 23855699 A JP23855699 A JP 23855699A JP 2001066988 A JP2001066988 A JP 2001066988A
Authority
JP
Japan
Prior art keywords
vector data
vector
input
elements
unit
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.)
Granted
Application number
JP23855699A
Other languages
Japanese (ja)
Other versions
JP3534004B2 (en
Inventor
Kaoru Kurosawa
馨 黒澤
Koichi Sugimoto
浩一 杉本
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.)
Toyo Communication Equipment Co Ltd
Original Assignee
Toyo Communication Equipment Co Ltd
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 Toyo Communication Equipment Co Ltd filed Critical Toyo Communication Equipment Co Ltd
Priority to JP23855699A priority Critical patent/JP3534004B2/en
Publication of JP2001066988A publication Critical patent/JP2001066988A/en
Application granted granted Critical
Publication of JP3534004B2 publication Critical patent/JP3534004B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

PROBLEM TO BE SOLVED: To speed up arithmetic processing itself and also reduce a circuit scale of an arithmetic circuit, by providing an arithmetic unit with plural vector data input parts, a vector data output part, plural vector multiplying parts, and a vector adding part, and configuring the unit so as to eliminate the need for divisions and remainders calculation using polynominals. SOLUTION: An arithmetic unit 100 comprises 1st to 3rd vector data input parts 101-103, a vector output part 104, 1st and 2nd vector multiplying parts 105, 106, and a vector adding part 107. 1st input to the vector adding part 107 corresponds to upper m-pieces of components in vector data having (m+n) components inputted from the 3rd vector data input part 103, and the 2nd input is an vector data output having m-pieces of components outputted by the 2nd vector multiplying part 106. Moreover, the vector data output part 104 outputs the vector data having m-pieces of components outputted from the vector adding part 107. This configuration eliminates the need for divisions and remainder calculations by polynominals.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、演算装置に係り、
より詳しくは、暗号化や復号化等を実現するセキュリテ
ィー技術、または、誤り訂正符号等の符号化器や復号化
器で用いられる数値演算を実現するための演算装置に関
する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an arithmetic device,
More specifically, the present invention relates to a security technology for realizing encryption and decryption, and an arithmetic device for realizing a numerical operation used in an encoder and a decoder such as an error correction code.

【0002】[0002]

【従来技術】近年,情報のディジタル化によって,様々
なサービスが提供され,快適な生活環境が整備されつつ
ある。例えば,インターネットの普及により,我々は,
ネットワークに接続された世界中のサーバの提供するサ
ービスの恩恵を受けることができる。ディジタル携帯電
話の普及により,必要なときにすぐにコミュニケーショ
ンをとることが可能になり,通話以外の付加サービスが
利用できたりする。クレジットカードやプリペイトカー
ドは,現金のやりとりによる煩わしさを解消してくれ
る。情報のディジタル化は,我々に利便性を提供してく
れる反面,不正利用による被害を受けやすいという欠点
を有する。盗聴によるプライバシーの侵害や個人情報の
流出,複写・改ざん・なりすましによるシステムの不正
利用などがそれである。それら問題の解決策として暗号
技術が注目されており、中でも、環・体等の代数演算を
利用した暗号技術の研究開発が盛んに行われている。環
・体については、厳密な定義や性質は、一般の代数の参
考書に詳細に記載されているので、詳細は説明せず、本
発明に必要な最小限の説明にとどめる。整数の集合を とし、 に対して、通常の整数演算が定義されているものとす
る。このとき を有理整数環と呼ぶ。有理整数環上の2整数 に対して、nを正整数として、 であるとき、aとbは互いにnを法として互いに合同で
あると呼び、 と表す。また、aを含み、aと互いに合同である元の集
合即ち、 と書き、aを含む剰余類と呼ぶ。剰余類に対して、加法
+、乗法・を以下のように定義する。 以上の加法、乗法を有する集合 による剰余環と呼ぶ。
2. Description of the Related Art In recent years, various services have been provided by digitization of information, and a comfortable living environment has been improved. For example, with the spread of the Internet,
You can benefit from the services provided by servers all over the world connected to the network. With the widespread use of digital mobile phones, it is possible to immediately communicate when needed, and additional services other than telephone calls can be used. Credit cards and prepaid cards eliminate the hassle of exchanging cash. The digitization of information offers us convenience, but has the disadvantage of being susceptible to unauthorized use. This includes invasion of privacy due to eavesdropping, leakage of personal information, and unauthorized use of the system due to copying, falsification, and impersonation. Cryptographic techniques have attracted attention as a solution to these problems. Above all, research and development of cryptographic techniques using algebraic operations such as rings and fields have been actively conducted. The exact definitions and properties of rings / fields are described in detail in general algebra reference books, and thus will not be described in detail, and will be described only in the minimum necessary for the present invention. A set of integers age, It is assumed that a normal integer operation is defined for. At this time Is called a rational integer ring. 2 integers on a rational integer ring For n as a positive integer, A and b are said to be congruent to each other modulo n, It expresses. Also, an original set that contains a and is congruent with a, ie, To And called a coset containing a. Addition + and multiplication are defined for cosets as follows. A set with the above addition and multiplication To of Called the remainder ring.

【0003】剰余環 における通常の計算では、計算に都合のよいように、元 をaをnで割った余りrで代表することが多い。即ち、 とみなす。この場合、剰余環 上の2元a、bにおける加法+、乗法・を以下のように
実現する。 ここで、 とはaをnで割った余りを算出することを示す。 剰余環 に関して、nを素数pとするとき、剰余環 は、素体GF(p)となる。上述のように、剰余環 (素体GF(p)を含む)の演算を実行するには、nに
よる剰余演算 を実行しなければならない。一般に剰余演算は乗算に比
較してハードウェア構造が複雑であり、そのため、演算
速度も数倍遅いため、剰余演算を乗算やシフト演算によ
って置きかえる方法が幾つか提案されている。その一つ
にモンゴメリ・リダクションがある。
[0003] Remainder ring In the usual calculation at, the element Is often represented by the remainder r obtained by dividing a by n. That is, Consider In this case, the remainder ring The addition + and the multiplication in the above binary a and b are realized as follows. here, Means that the remainder of dividing a by n is calculated. Remainder ring , When n is a prime number p, the remainder ring Is the prime field GF (p). As mentioned above, the remainder ring To execute an operation (including the prime field GF (p)), a remainder operation by n Must be performed. Generally, the remainder operation has a complicated hardware structure as compared with the multiplication, and the operation speed is several times slower. Therefore, some methods for replacing the remainder operation by multiplication or shift operation have been proposed. One of them is Montgomery Reduction.

【0004】モンゴメリ・リダクションは、Nと互いに
素である基数R(>n)を定め、 なるTに対して、 を算出する手法である。ここで、R-1は、 を満たす正整数である。この手法は、Rによる除算およ
び剰余算が容易で比較的高速に実施できる場合に、効果
を発揮する。より詳しくは、Peter L. Montgomeryによ
る論文、"Modular Multiplication Without Trial Divi
sion," Mathematics of Computation Vol.44, No.170,p
p.519-521, 1985に記載されている。上記Montgomeryの
論文によると、モンゴメリ・リダクションを算出するア
ルゴリズムREDCは以下となる。 function REDC(T) なお、上記アルゴリズムにおけるN′は、 なる正整数である。 Montgomeryが提案するように、Rを
プロセッサのワードサイズや、その冪となるように選択
すれば、Rによる除算および剰余算が単なるワードの切
り出しによって実施できるため、上記アルゴリズムは除
算を必要とせず、効率よく計算できる。 モンゴメリ・リダクションを用いて剰余環 上の演算を実施するには、次のようにすればよい。ま
ず、剰余環 の演算域に対し、モンゴメリ演算域を導入する(図
5)。剰余環 上の元はモンゴメリ演算域の元に対応づけられ、実際の
演算はモンゴメリ演算域で計算されることになる。剰余
上の元をモンゴメリ演算域の元に対応づける操作をモン
ゴメリ変換、モンゴメリ演算域の元を剰余環 上の元に対応づける操作をモンゴメリ逆変換と呼ぶこと
にする。すると、剰余環 上の一連の演算を実施するには、 モンゴメリ変換 モンゴメリ演算域での一連の演算 モンゴメリ逆変換の手順を踏むことになる。
[0004] Montgomery reduction defines a base R (> n) that is relatively prime to N, For T Is a method of calculating. Where R -1 is Is a positive integer that satisfies This method is effective when division and remainder calculation by R are easy and can be performed at relatively high speed. For more information, see a paper by Peter L. Montgomery, "Modular Multiplication Without Trial Divi
sion, "Mathematics of Computation Vol.44, No.170, p
p.519-521, 1985. According to the Montgomery paper, the algorithm REDC for calculating Montgomery reduction is as follows. function REDC (T) Note that N ′ in the above algorithm is Is a positive integer. As suggested by Montgomery, if R is selected to be the word size of the processor or its power, the division and remainder by R can be performed by simply extracting words, so the above algorithm does not require division, Can be calculated efficiently. Remainder ring using Montgomery reduction The above operation may be performed as follows. First, the remainder ring A Montgomery operation area is introduced for the operation area (FIG. 5). Remainder ring The upper element is associated with the element of the Montgomery operation area, and the actual operation is calculated in the Montgomery operation area. Remainder ring Montgomery transformation for the operation of associating the above element with the element of the Montgomery operation area, and the remainder ring for the element of the Montgomery operation area The operation of associating with the above element is called Montgomery inverse transformation. Then the remainder ring In order to perform the above series of operations, a series of operations in the Montgomery transform Montgomery operation area is performed by the procedure of inverse Montgomery transformation.

【0005】モンゴメリ変換は、剰余環 上の元をaをモンゴメリ演算域の元Aへ次のように対応
づける(n=Nとする)。 上記モンゴメリ変換は、 を事前計算しておくことにより、モンゴメリ・リダクシ
ョンを用いて、 により実現できる。一方、モンゴメリ逆変換は、モンゴ
メリ演算域の元Aを剰余環 上の元aへ次のように対応づける。 上記モンゴメリ逆変換は、モンゴメリ・リダクションを
用いて、 により実現できる。また、剰余環 上の元、a、bに対して、対応するモンゴメリ演算域の
元をそれぞれ、A、Bとすれば、 上の乗算、 はモンゴメリ演算域では、 と計算できる。 上の加算 はモンゴメリ演算域では、 と計算できる。上記 はNを高々1回減じることで実現できるので、剰余演算
を行う必要はない。例えば、 を計算する手順は次のようになる。 上述のように、剰余環 上の演算は、Nによる除算および剰余演算を行うことな
く実施できる。
[0005] The Montgomery transformation is The upper element is associated with the element A in the Montgomery operation area as follows (assuming n = N). The Montgomery transformation is By calculating in advance, using Montgomery reduction, Can be realized by: On the other hand, the Montgomery inverse transformation is based on The above element a is associated as follows. The Montgomery inverse transformation uses Montgomery reduction, Can be realized by: Also, the remainder ring If the elements of the Montgomery operation area corresponding to the above elements a and b are A and B, respectively, Multiplication on, Is in the Montgomery arithmetic domain, Can be calculated. Addition on Is in the Montgomery arithmetic domain, Can be calculated. the above Can be realized by reducing N at most once, so that there is no need to perform a remainder operation. For example, The procedure for calculating is as follows. As mentioned above, the remainder ring The above operation can be performed without performing division and remainder operations by N.

【0006】[0006]

【発明が解決しようとする課題】しかるに、上述したモ
ンゴメリ・リダクションは、正整数nによる剰余環 や、素体GF(p)上の演算を効率的に計算するもので
あり、有限可換環Rを係数とする多項式や、ガロア体G
F(q) を係数とする多項式や、GF(qm)上の演算は、実現
できなかった。このため、有限可換環Rを係数とする多
項式や、ガロア体GF(q) を係数とする多項式や、GF(qm)上の演算を実現す
るには、除算および剰余算が必要となり、従って、演算
処理のステップ数が多くなって、多大な演算時間を要
し、計算速度が遅くなると共に、除算回路の回路規模が
大きくなると行った問題があった。本発明は、上述した
従来の課題を解決するためになされたものであって、有
限可換環Rを係数とする多項式や、ガロア体GF(q) を係数とする多項式や、GF(qm)上の演算量を少な
くして演算処理自体を高速化すると共に、演算回路の回
路規模を小さくすることができる演算装置を提供するこ
とを目的とする。
However, the above-mentioned Montgomery reduction uses a remainder ring with a positive integer n. And efficiently computes operations on the prime field GF (p), such as a polynomial with a finite commutative ring R as a coefficient, and a Galois field G
F (q) And a calculation on GF (q m ) cannot be realized. Therefore, a polynomial having a finite commutative ring R as a coefficient, a Galois field GF (q) In order to realize a polynomial with a coefficient of and a calculation on GF (q m ), division and remainder calculation are required. Therefore, the number of steps of the calculation process is increased, which requires a large calculation time, and There is a problem that the speed is reduced and the circuit scale of the division circuit is increased. The present invention has been made in order to solve the above-mentioned conventional problems, and has been made to solve the above-mentioned problems, and to provide a polynomial having a finite commutative ring R as a coefficient, a Galois field GF (q) It is an object of the present invention to provide a polynomial using a coefficient as a coefficient and an arithmetic device capable of reducing the amount of operation on GF (q m ) to speed up the arithmetic processing itself and to reduce the circuit scale of the arithmetic circuit. .

【0007】[0007]

【課題を解決するための手段】上記目的を達成するため
に、請求項1の発明は、各要素が有限可換環Rの元であ
るm+1要素数のベクトルデータを入力するための第1
のベクトルデータ入力部と、m−1以上の正整数nにお
いて、各要素が上記有限可換環Rの元であるn要素数の
ベクトルデータを入力するための第2のベクトルデータ
入力部と、各要素が前記有限可換環Rの元であるm+n
要素数のベクトルデータを入力するための第3のベクト
ルデータ入力部と、各要素が前記有限可換環Rの元であ
るm要素数のベクトルデータを出力するためのベクトル
データ出力部と、各要素が前記有限可換環Rの元である
2つのn要素数のベクトルデータを入力して、乗算し、
乗算結果の下位n要素分をベクトルデータとして出力す
る第1のベクトル乗算部と、各要素が前記有限可換環R
の元であるn要素数のベクトルデータとm+1要素数の
ベクトルデータを互いに入力して、乗算し、乗算結果の
上位m要素分をベクトルデータとして出力する第2のベ
クトル乗算部と、各要素が前記有限可換環Rの元である
2つのm要素数のベクトルデータを互いに入力して、加
算し、加算結果であるm要素数のベクトルデータを出力
するベクトル加算部と、を有し、前記第1のベクトル乗
算部の1つ目の入力は、前記第3のベクトルデータ入力
部から入力されたm+n要素数のベクトルデータにおけ
る下位n要素分であり、前記第1のベクトル乗算部の2
つ目の入力は、前記第2のベクトルデータ入力部から入
力されたn要素数のベクトルデータであり、前記第2の
ベクトル乗算部の1つ目の入力は、前記第1のベクトル
乗算部の出力するn要素数のベクトルデータ出力であ
り、前記第2のベクトル乗算部の2つ目の入力は、前記
第1のベクトルデータ入力部から入力されたm+1要素
数のベクトルデータであり、前記ベクトル加算部の1つ
目の入力は、前記第3のベクトルデータ入力部から入力
されたm+n要素数のベクトルデータにおける上位m要
素分であり、前記ベクトル加算部の2つ目の入力は、前
記第2のベクトル乗算部の出力するm要素数のベクトル
データ出力であり、前記ベクトルデータ出力部からは、
前記ベクトル加算部の出力するm要素数のベクトルデー
タが出力されることを特徴とする。請求項2の発明は、
請求項1記載の前記有限可換環R上の乗法単位元を1と
表記し、上記有限可換環R上で定義されたn次のモニッ
ク単項式xnと互いに素であるような上記有限可換環R上
のm次のモニック多項式を とし、前記有限可換環R上のn次未満の多項式 および前記有限可換環R上の多項式g*(x)を、前記有
限可換環R上において、 となるように定めた場合において、請求項1記載の前記
第1のベクトルデータ入力部に前記f(x)における係
数を要素とするm+1要素数のベクトルデータ をu0を最下位要素、u1を最下位から2番目の要素、・
・・、umを最上位要素として入力し、請求項1記載の
前記第2のベクトルデータ入力部に前記f*(x)にお
ける係数を要素とするn要素数のベクトルデータ をv0を最下位要素、v1を最下位から2番目の要素、・
・・、vn-1を最上位要素として入力することを特徴と
する。
In order to achieve the above object, according to the first aspect of the present invention, there is provided a first method for inputting vector data of m + 1 elements, each element being an element of a finite commutative ring R.
A second vector data input unit for inputting vector data of n elements, each element of which is an element of the finite commutative ring R in a positive integer n of m-1 or more, M + n whose elements are elements of the finite commutative ring R
A third vector data input unit for inputting vector data of the number of elements, a vector data output unit for outputting vector data of m elements in which each element is an element of the finite commutative ring R, Inputs and multiplies the vector data of two n elements, which are the elements of the finite commutative ring R,
A first vector multiplication unit that outputs the lower n elements of the multiplication result as vector data, and each element is a finite commutative ring R
A second vector multiplication unit that inputs and multiplies the vector data of the number of n elements and the vector data of the number of m + 1 elements, which are the elements of the above, and outputs the upper m elements of the multiplication result as vector data; A vector adder that inputs two pieces of vector data of m elements, which are elements of the finite commutative ring R, adds and outputs vector data of m elements as an addition result, The first input of the first vector multiplication unit is the lower n elements in the vector data of m + n elements input from the third vector data input unit.
The first input is n-element vector data input from the second vector data input unit, and the first input of the second vector multiplier is the first input of the first vector multiplier. The second input of the second vector multiplication unit is the vector data of the number of m + 1 elements input from the first vector data input unit. The first input of the addition unit is the upper m elements in the vector data of m + n elements input from the third vector data input unit, and the second input of the vector addition unit is 2 is a vector data output of m elements output by the vector multiplication unit of 2, and from the vector data output unit,
The m-element vector data output by the vector adder is output. The invention of claim 2 is
The claim 1 wherein the finite-friendly commutative rings R on the multiplicative unit element according denoted as 1, the finite-friendly commutative rings R of order n defined on monic monomial x n and the finite-friendly commutative rings R such that disjoint The above m-order monic polynomial is And a polynomial of degree less than n on the finite commutative ring R And the polynomial g * (x) on the finite commutative ring R on the finite commutative ring R: 2. The vector data of m + 1 elements having a coefficient at f (x) as an element in the first vector data input unit according to claim 1, wherein U 0 is the lowest element, u 1 is the second lowest element,
..., type u m as a top-level element, the f * n number of elements of the vector data to the coefficient elements in (x) in the second vector data input unit according to claim 1, wherein A v 0 the least significant element, v 2-th element 1 from the lowest, -
.., V n-1 are input as the top element.

【0008】請求項3の発明は、各要素がガロア体GF
(q)の元であるm+1要素数のベクトルデータを入力
するための第1のベクトルデータ入力部と、m−1以上
の正整数nにおいて、各要素が上記GF(q)の元であ
るn要素数のベクトルデータを入力するための第2のベ
クトルデータ入力部と、各要素が前記GF(q)の元で
あるm+n要素数のベクトルデータを入力するための第
3のベクトルデータ入力部と、各要素が前記GF(q)
の元であるm要素数のベクトルデータを出力するための
ベクトルデータ出力部と、各要素が前記GF(q)の元
である2つのn要素数のベクトルデータを入力して、乗
算し、乗算結果の下位n要素分をベクトルデータとして
出力する第1のベクトル乗算部と、各要素が前記GF
(q)の元であるn要素数のベクトルデータとm+1要
素数のベクトルデータを互いに入力して、乗算し、乗算
結果の上位m要素分をベクトルデータとして出力する第
2のベクトル乗算部と、各要素が前記GF(q)の元で
ある2つのm要素数のベクトルデータを互いに入力し
て、加算し、加算結果であるm要素数のベクトルデータ
を出力するベクトル加算部と、を有し、前記第1のベク
トル乗算部の1つ目の入力は、前記第3のベクトルデー
タ入力部から入力されたm+n要素数のベクトルデータ
における下位n要素分であり、前記第1のベクトル乗算
部の2つ目の入力は、前記第2のベクトルデータ入力部
から入力されたn要素数のベクトルデータであり、前記
第2のベクトル乗算部の1つ目の入力は、前記第1のベ
クトル乗算部の出力するn要素数のベクトルデータ出力
であり、前記第2のベクトル乗算部の2つ目の入力は、
前記第1のベクトルデータ入力部から入力されたm+1
要素数のベクトルデータであり、前記ベクトル加算部の
1つ目の入力は、前記第3のベクトルデータ入力部から
入力されたm+n要素数のベクトルデータにおける上位
m要素分であり、前記ベクトル加算部の2つ目の入力
は、前記第2のベクトル乗算部の出力するm要素数のベ
クトルデータ出力であり、前記ベクトルデータ出力部か
らは、前記ベクトル加算部の出力するm要素数のベクト
ルデータが出力されることを特徴とする。請求項4の発
明は、請求項3記載の前記ガロア体GF(q)上の乗法
単位元を1と表記し、上記GF(q)上で定義されたn
次のモニック単項式xnと互いに素であるような上記G
F(q)上のm次のモニック多項式を とし、前記GF(q)上のn次未満の多項式 および前記GF(q)上の多項式g*(x)を、前記G
F(q)上において、 となるように定めた場合において、請求項3記載の前記
第1のベクトルデータ入力部に前記f(x)における係
数を要素とするm+1要素数のベクトルデータ をu0を最下位要素、u1を最下位から2番目の要素、・
・・、umを最上位要素として入力し、請求項3記載の
前記第2のベクトルデータ入力部に前記f*(x)にお
ける係数を要素とするn要素数のベクトルデータ をv0を最下位要素、v1を最下位から2番目の要素、・
・・、vn-1を最上位要素として入力することを特徴と
する。
According to a third aspect of the present invention, each element is a Galois field GF
In a first vector data input unit for inputting vector data of m + 1 elements, which is an element of (q), and in a positive integer n of m-1 or more, each element is an element of the GF (q). A second vector data input unit for inputting vector data of the number of elements, and a third vector data input unit for inputting vector data of m + n elements each of which is an element of the GF (q). , Each element is the GF (q)
And a vector data output unit for outputting vector data of m elements, which is an element of GF (q), and a vector data output unit for outputting vector data of two n elements, each element being an element of the GF (q). A first vector multiplication unit that outputs the lower n elements of the result as vector data,
A second vector multiplication unit that inputs and multiplies the vector data of the number of n elements and the vector data of the number of m + 1 elements, which are elements of (q), and outputs the upper m elements of the multiplication result as vector data; A vector adder that inputs and adds two m-element vector data, each element being an element of the GF (q), and outputs m-element vector data as an addition result; , The first input of the first vector multiplication unit is the lower n elements in the vector data of m + n elements input from the third vector data input unit, and the first input of the first vector multiplication unit is The second input is n-element vector data input from the second vector data input unit. The first input of the second vector multiplication unit is the first vector multiplication unit. Output That n is an element number vector data output, the second input of the second vector multiplication section,
M + 1 input from the first vector data input unit
The first input of the vector addition unit is the upper m elements in the vector data of m + n elements input from the third vector data input unit, and the first input of the vector addition unit is Is a vector data output of the number of m elements output from the second vector multiplication unit. The vector data output unit outputs vector data of the number of m elements output from the vector addition unit. It is output. According to a fourth aspect of the present invention, the multiplicative unit on the Galois field GF (q) according to the third aspect is expressed as 1, and n defined on the GF (q)
The above G which is relatively prime to the following monic monomial xn
M-order monic polynomial on F (q) And a polynomial of degree less than n on the GF (q) And the polynomial g * (x) on the GF (q)
On F (q), 4. The vector data of the number of (m + 1) elements having a coefficient at f (x) as an element in the first vector data input unit according to claim 3, wherein U 0 is the lowest element, u 1 is the second lowest element,
· The u m input as top-level elements, the f * n number of elements of the vector data to the coefficient elements in (x) in the second vector data input unit according to claim 3, wherein A v 0 the least significant element, v 2-th element 1 from the lowest, -
.., V n-1 are input as the top element.

【0009】請求項5の発明は、請求項3記載の前記ガ
ロア体GF(q)上の乗法単位元を1と表記し、上記G
F(q)上のm次既約多項式を とし、前記GF(q)上のn次未満の多項式 および前記GF(q)上の多項式g*(x)を、前記G
F(q)上において、 となるように定めた場合において、請求項3記載の前記
第1のベクトルデータ入力部に前記f(x)における係
数を要素とするm+1要素数のベクトルデータ をu0を最下位要素、u1を最下位から2番目の要素、・
・・、umを最上位要素として入力し、請求項3記載の
前記第2のベクトルデータ入力部に前記f*(x)にお
ける係数を要素とするn要素数のベクトルデータ をv0を最下位要素、v1を最下位から2番目の要素、・
・・、vn-1を最上位要素として入力することを特徴と
する。請求項6の発明は、m+1ビットで表されるベク
トルデータを入力するための第1のベクトルデータ入力
部と、m−1以上の正整数nにおいて、nビットで表さ
れるベクトルデータを入力するための第2のベクトルデ
ータ入力部と、m+nビットで表されるベクトルデータ
を入力するための第3のベクトルデータ入力部と、mビ
ットで表されるベクトルデータを出力するためのベクト
ルデータ出力部と、2つのnビットのベクトルデータを
入力して、乗算し、乗算結果の下位nビットを出力する
第1のベクトル乗算部と、nビットのベクトルデータと
m+1ビットベクトルのデータを互いに入力して、乗算
し、乗算結果の上位mビットを出力する第2のベクトル
乗算部と、2つのmビットのベクトルデータを互いに入
力して、加算し、加算結果であるmビットのベクトルデ
ータを出力するベクトル加算部と、を有し、前記第1の
ベクトル乗算部の1つ目の入力は、前記第3のベクトル
データ入力部から入力されたm+nビットのベクトルデ
ータにおける下位nビットであり、前記第1のベクトル
乗算部の2つ目の入力は、前記第2のデータ入力部から
入力されたnビットのベクトルデータであり、前記第2
のベクトル乗算部の1つ目の入力は、前記第1のベクト
ル乗算部の出力するnビットのベクトルデータ出力であ
り、前記第2のベクトル乗算部の2つ目の入力は、前記
第1のベクトルデータ入力部から入力されたm+1ビッ
トのベクトルデータであり、前記ベクトル加算部の1つ
目の入力は、前記第3のベクトルデータ入力部から入力
されたm+nビットのベクトルにおける上位mビットで
あり、前記ベクトル加算部の2つ目の入力は、前記第2
のベクトル乗算部の出力するmビットのベクトルデータ
出力であり、前記ベクトルデータ出力部からは、前記ベ
クトル加算部の出力するmビットのベクトルが出力され
ることを特徴とする演算装置。請求項7の発明は、ガロ
ア体GF(2)上の乗法単位元を1と表記し、上記GF
(2)上で定義されたn次単項式xnと互いに素である
ようなGF(2)上のm次多項式を とし、GF(2)上のn次未満の多項式 およびGF(2)上の多項式g*(x)を、GF(2)
上において、 となるように定めた場合において、請求項6記載の前記
第1のベクトルデータ入力部に前記f(x)における係
数を要素とするm+1ビットのベクトルデータ をu0を最下位ビット、u1を最下位から2番目のビッ
ト、・・・、umを最上位ビットとして入力し、請求項
6記載の前記第2のベクトルデータ入力部に前記f
*(x)における係数を要素とするnビットのベクトル
データ をv0を最下位ビット、v1を最下位から2番目のビッ
ト、・・・、vn-1を最上位ビットとして入力すること
を特徴とする。
According to a fifth aspect of the present invention, there is provided the electronic device according to the third aspect.
The multiplicative identity on the lower field GF (q) is expressed as 1, and the above G
M-order irreducible polynomial on F (q)And a polynomial of degree less than n on the GF (q)And the polynomial g on the GF (q)*(X)
On F (q),In the case where it is determined that
A first vector data input unit is provided with a function of f (x).
Vector data of m + 1 elements with numbers as elementsU0Is the lowest element, u1Is the second element from the bottom,
・ ・ 、 UmIs input as a top-level element.
The f is input to the second vector data input unit.*(X)
Data of n number of elements with the coefficientV0Is the lowest element, v1Is the second element from the bottom,
.., vn-1Is input as the top element.
I do. According to a sixth aspect of the present invention, a vector represented by m + 1 bits
First vector data input for inputting torque data
And n bits in a positive integer n equal to or greater than m-1
Vector data for inputting vector data
Data input section and vector data represented by m + n bits
A third vector data input unit for inputting
Vector for outputting vector data expressed in bits
Data output unit and two n-bit vector data
Input, multiply, and output lower n bits of multiplication result
A first vector multiplication unit, and n-bit vector data
multiply by inputting m + 1 bit vector data to each other
And a second vector that outputs the upper m bits of the multiplication result
Multiplier and two m-bit vector data
, Add, and add m-bit vector
A vector adder that outputs data.
The first input of the vector multiplier is the third vector
M + n-bit vector data input from the data input unit
Lower n bits in the first vector
The second input of the multiplication unit is from the second data input unit
The input n-bit vector data,
The first input of the vector multiplication unit is the first vector
N-bit vector data output from the
The second input of the second vector multiplication unit is
M + 1 bits input from the first vector data input unit
Vector data, and one of the vector adders
Eye input is from the third vector data input unit
The upper m bits in the resulting m + n bit vector
And the second input of the vector adder is the second input
M-bit vector data output by the vector multiplication unit
Output from the vector data output unit.
M-bit vector output by the vector adder is output
An arithmetic unit characterized by the following. According to a seventh aspect of the present invention,
A multiplicative identity on the field GF (2) is expressed as 1, and the above GF
(2) n-th order monomial expression x defined abovenIs relatively prime with
M-degree polynomial on GF (2)And a polynomial of degree less than n on GF (2)And the polynomial g on GF (2)*(X) is replaced by GF (2)
In the above,In the case where it is determined so that
A first vector data input unit is provided with a function of f (x).
M + 1-bit vector data with numbers as elementsU0Is the least significant bit, u1To the second lowest bit
U, umAs the most significant bit
6. The f vector is input to the second vector data input unit described in 6.
*N-bit vector whose elements are the coefficients in (x)
data V0Is the least significant bit, v1To the second lowest bit
G, ..., vn-1As the most significant bit
It is characterized by.

【0010】請求項8の発明は、ガロア体GF(2)上
の乗法単位元を1と表記し、上記GF(2)上のm次既
約多項式を とし、GF(2)上のn次未満の多項式 およびGF(2)上の多項式g*(x)を、GF(2)
上において、 となるように定めた場合において、請求項6記載の前記
第1のベクトルデータ入力部に前記f(x)における係
数を要素とするm+1ビットのベクトルデータ をu0を最下位ビット、u1を最下位から2番目のビッ
ト、・・・、umを最上位ビットとして入力し、請求項
6記載の前記第2のベクトルデータ入力部に前記f
*(x)における係数を要素とするnビットのベクトル
データ をv0を最下位ビット、v1を最下位から2番目のビッ
ト、・・・、vn-1を最上位ビットとして入力すること
を特徴とする。我々は、上記発明に先立って、上記発明
に関わる、Polynomial Montgomery Reductionなる原理
を発見した。そこで、以下では、まず、Polynomial Mon
tgomeryReductionについて説明する。有限可換環R上の
モニック多項式f(x)を定め、f(x)による剰余類
を考える。また、R上で、f(x)と互いに素なモニッ
ク多項式g(x)を、 となるように定め、g*(x),f*(x)を、 を満たすようにする。ここで、 はf(x)のxに関する次数を示す。また、R上の乗法
単位元は1と表記することにする。 とすれば、上3式より、 がいえる。Polynomial Montgomery Reductionは、 なるR上の多項式h(x)に対し、 を算出するものである。ここで、 とは、 をf(x)で除算した剰余を示す。
[0010] The invention according to claim 8 is based on the Galois body GF (2).
Is expressed as 1 and the m-th order element on GF (2)
About polynomialAnd a polynomial of degree less than n on GF (2)And the polynomial g on GF (2)*(X) is replaced by GF (2)
In the above,In the case where it is determined so that
A first vector data input unit is provided with a function of f (x).
M + 1-bit vector data with numbers as elementsU0Is the least significant bit, u1To the second lowest bit
U, umAs the most significant bit
6. The f vector is input to the second vector data input unit described in 6.
*N-bit vector whose elements are the coefficients in (x)
data V0Is the least significant bit, v1To the second lowest bit
G, ..., vn-1As the most significant bit
It is characterized by. Prior to the above invention, we
Principle of Polynomial Montgomery Reduction
Was found. Therefore, below, first, Polynomial Mon
The tgomeryReduction will be described. On a finite commutative ring R
Define a monic polynomial f (x) and cosets by f (x)
think of. Also, on R, a monitor that is disjoint from f (x)
G polynomial g (x)G*(X), f*(X)To satisfy. here, Denotes the order of f (x) with respect to x. Also, multiplication on R
The unit element is expressed as 1.Then, from the above three equations,Can be said. Polynomial Montgomery Reduction isFor a polynomial h (x) on RIs calculated. here, IsIs divided by f (x).

【0011】Polynomial Montgomery Reductionを計算
するアルゴリズムを、POLYREDCとして以下に示す。 上記アルゴリズムが正常に動作する根拠を以下に示す。
まず、 であるから、step2における はg(x)で割り切れる。また、 より、step3で出力されるt(x)は、 である。さらに、 より、 である。したがって、POLYREDCで出力される多項式の次
数は 未満である。なお、 なる条件は、POLYREDCの出力した多項式同士の積を再び
POLYREDCに入力できるようにするために付加されたもの
である。本発明は、前記アルゴリズムPOLYREDCを、 として計算する装置である。これにより、除算/g
(x)や、剰余演算 が切り出しやシフト演算によって代替されるため、除算
および剰余演算は不必要となる。即ち、有限可換環Rを
係数とする多項式上の演算量を少なくして演算処理自体
を高速化すると共に、演算回路の回路規模を小さくする
ことができる。
An algorithm for calculating Polynomial Montgomery Reduction is shown below as POLYREDC. The grounds on which the above algorithm operates normally are shown below.
First, Therefore, in step 2 Is divisible by g (x). Also, Thus, t (x) output in step 3 is It is. further, Than, It is. Therefore, the degree of the polynomial output by POLYREDC is Is less than. In addition, Is the product of the polynomials output by POLYREDC again.
It has been added to enable input to POLYREDC. The present invention provides the algorithm POLYREDC, Is a device that calculates as This gives the division / g
(X) and remainder operation Are replaced by cutout and shift operations, so that division and remainder operations are unnecessary. That is, it is possible to reduce the amount of calculation on the polynomial using the finite commutative ring R as a coefficient to speed up the calculation processing itself and to reduce the circuit scale of the calculation circuit.

【0012】上記説明においては、有限可換環Rを係数
とする多項式を説明のため使用したが、本発明における
演算装置内のデータとしては多項式そのものを用いる訳
ではなく、実際は、多項式の係数部分を取り出し、各要
素を有限可換環Rの元とするベクトルデータとして取り
扱う。このとき、多項式の高次の項の係数をベクトルの
上位要素、低次の項の係数をベクトルの下位要素と呼ぶ
ことにする。上述した、多項式を用いて表現する方法と
ベクトルを用いて表現する方法は、表現の方法は異なる
ものの、同じ元を表すものである。多項式を用いて元を
表現する方法を、元の多項式表現、ベクトルを用いて元
を表現する方法を、元のベクトル表現と呼ぶ。詳細には
本発明の実施の形態3において説明するが、本発明を利
用すれば、有限可換環Rを係数とする多項式f(x)に
よる剰余類の演算をf(x)による剰余を計算すること
なく実現できる。ここで、上記有限可換環R をガロア体
GF(q)に限定し、さらに、f(x)が既約多項式で
あるとすると、上記剰余類はf(x)を生成多項式とす
るガロア体GF(qm)を形成する。このとき、本発明
における演算装置内のベクトルデータは、GF(qm
の元を多項式基底を用いて表現したものとなる。この場
合、本発明における演算装置を用いて、ガロア体GF
(qm)上の演算装置を構成できる。従って、本発明に
よる、請求項1および請求項2記載の演算装置は、上記
有限可換環Rを係数とする多項式上の演算に対して有効
な演算装置であり、請求項3および請求項4記載の演算
装置は、前記有限可換環Rをガロア体GF(q)に限定
した場合であって、GF(q)を係数とする多項式上の
演算に対して有効な演算装置であり、請求項5記載の演
算装置は、前記有限可換環Rをガロア体GF(q)に限
定した場合であって、該GF(q)上の前記m次多項式
f(x)が既約であるため、ガロア体GF(qm)上の
演算に対して有効な演算装置であり、請求項6および請
求項7記載の演算装置は、前記有限可換環Rをガロア体
GF(2)に限定した場合であって、GF(2)を係数
とする多項式上の演算に対して有効な演算装置であり、
請求項8記載の演算装置は、前記有限可換環Rをガロア
体GF(2)に限定した場合であって、該GF(2)上
の前記m次多項式f(x)が既約であるため、ガロア体
GF(2m)上の演算に対して有効な演算装置となる。
以上説明してきたように、本発明では、多項式による除
算や剰余算が不必要となるため、演算量を少なくして演
算処理自体を高速化すると共に、演算回路の回路規模を
小さくすることができる。
In the above description, a polynomial having a finite commutative ring R as a coefficient is used for explanation. However, the data in the arithmetic unit in the present invention is not used as the polynomial itself. Take out and treat each element as vector data based on the finite commutative ring R. At this time, the coefficient of the higher-order term of the polynomial is called the upper element of the vector, and the coefficient of the lower-order term is called the lower element of the vector. The above-described method of expressing using a polynomial and the method of expressing using a vector represent the same element, although the expression method is different. A method of expressing an element using a polynomial is called an original polynomial expression, and a method of expressing an element using a vector is called an original vector expression. As will be described in detail in Embodiment 3 of the present invention, if the present invention is used, the operation of the remainder class by the polynomial f (x) using the finite commutative ring R as a coefficient is calculated as the remainder by f (x). It can be realized without. Here, if the finite commutative ring R is limited to a Galois field GF (q), and if f (x) is an irreducible polynomial, the remainder class is a Galois field GF where f (x) is a generator polynomial. (Q m ). At this time, the vector data in the arithmetic device according to the present invention is GF (q m )
Is expressed using a polynomial basis. In this case, the Galois field GF
The arithmetic unit on (q m ) can be configured. Therefore, the arithmetic unit according to claim 1 and claim 2 according to the present invention is an arithmetic unit effective for an operation on a polynomial using the finite commutative ring R as a coefficient, and according to claims 3 and 4. Is a case where the finite commutative ring R is limited to a Galois field GF (q), and is an operation device effective for an operation on a polynomial using GF (q) as a coefficient. The arithmetic device described above is a case where the finite commutative ring R is limited to a Galois field GF (q), and the m-th order polynomial f (x) on the GF (q) is irreducible. The arithmetic unit is effective for an operation on GF (q m ). The arithmetic unit according to claim 6 or claim 7 is a case where the finite commutative ring R is limited to a Galois field GF (2). , GF (2) is an effective arithmetic unit for operations on polynomials with coefficients,
The arithmetic unit according to claim 8, wherein the finite commutative ring R is limited to a Galois field GF (2), and the m-th order polynomial f (x) on the GF (2) is irreducible. , An effective arithmetic unit for operations on the Galois field GF (2 m ).
As described above, in the present invention, since division and remainder calculation by a polynomial are not required, the amount of calculation can be reduced, the calculation processing itself can be sped up, and the circuit scale of the calculation circuit can be reduced. .

【0013】[0013]

【発明の実施の形態】以下、本発明の実施の形態につい
て述べる。 (実施の形態1)本実施の形態1では、本発明に係る演
算装置の構成例を示す。図1に示す演算装置100は、各
要素が有限可換環Rの元であるm+1要素数のベクトル
データを入力するための第1のベクトルデータ入力部10
1と、m−1以上の正整数nにおいて、各要素が上記有
限可換環Rの元であるn要素数のベクトルデータを入力
するための第2のベクトルデータ入力部102と、各要素
が前記有限可換環Rの元であるm+n要素数のベクトル
データを入力するための第3のベクトルデータ入力部10
3と、各要素が前記有限可換環Rの元であるm要素数のベ
クトルデータを出力するためのベクトルデータ出力部10
4と、各要素が前記有限可換環Rの元である2つのn要素
数のベクトルデータを入力して、乗算し、乗算結果の下
位n要素分をベクトルデータとして出力する第1のベク
トル乗算部105と、各要素が前記有限可換環Rの元である
n要素数のベクトルデータとm+1要素数のベクトルデ
ータを互いに入力して、乗算し、乗算結果の上位m要素
分をベクトルデータとして出力する第2のベクトル乗算
部106と、各要素が前記有限可換環Rの元である2つのm
要素数のベクトルデータを互いに入力して、加算し、加
算結果であるm要素数のベクトルデータを出力するベク
トル加算部107から構成される。また、第1のベクトル
乗算部105の1つ目の入力は、第3のベクトルデータ入
力部103から入力されたm+n要素数のベクトルデータ
における下位n要素分であり、2つ目の入力は、第2の
ベクトルデータ入力部102から入力されたn要素数のベ
クトルデータであり、第2のベクトル乗算部106の1つ
目の入力は、第1のベクトル乗算部105の出力するn要
素数のベクトルデータ出力であり、2つ目の入力は、第
1のベクトルデータ入力部101から入力されたm+1要
素数のベクトルデータであり、ベクトル加算部107の1
つ目の入力は、第3のベクトルデータ入力部103から入
力されたm+n要素数のベクトルデータにおける上位m
要素分であり、2つ目の入力は、第2のベクトル乗算部
106の出力するm要素数のベクトルデータ出力であり、
ベクトルデータ出力部104からは、ベクトル加算部107の
出力するm要素数のベクトルデータが出力されるように
なっている。
Embodiments of the present invention will be described below. (Embodiment 1) In Embodiment 1, an example of the configuration of an arithmetic unit according to the present invention will be described. The arithmetic device 100 shown in FIG. 1 includes a first vector data input unit 10 for inputting vector data of m + 1 elements, each element being an element of a finite commutative ring R.
1 and a second vector data input unit 102 for inputting vector data of n elements, each element of which is an element of the finite commutative ring R, in a positive integer n of m-1 or more; A third vector data input unit 10 for inputting vector data of m + n elements, which is an element of the finite commutative ring R
3 and a vector data output unit 10 for outputting vector data of m elements in which each element is an element of the finite commutative ring R.
4 and a first vector multiplication unit that inputs and multiplies vector data of two n elements, each element being an element of the finite commutative ring R, and outputs lower n elements of the multiplication result as vector data 105, and n-element vector data and m + 1-element vector data, each element of which is an element of the finite commutative ring R, are input to each other, multiplied, and the upper m elements of the multiplication result are output as vector data. A second vector multiplication unit 106 and two m's each element of which is an element of the finite commutative ring R
It comprises a vector adder 107 that inputs and adds vector data of the number of elements to each other and outputs vector data of the number of m elements as a result of the addition. The first input of the first vector multiplication unit 105 is the lower n elements in the vector data of m + n elements input from the third vector data input unit 103, and the second input is The first input of the second vector multiplication unit 106 is the number of n-elements output from the first vector multiplication unit 105, which is n-element vector data input from the second vector data input unit 102. The second input is vector data of m + 1 elements input from the first vector data input unit 101.
The third input is the upper m in the vector data of m + n elements input from the third vector data input unit 103.
The second input is a second vector multiplication unit
This is vector data output of m elements output by 106,
The vector data output unit 104 outputs vector data of m elements output from the vector addition unit 107.

【0014】本演算装置100は、前記有限可換環R上の乗
法単位元を1と表記し、上記有限可換環R上で定義され
たn次のモニック単項式xnと互いに素であるような上
記有限可換環R上のm次のモニック多項式を とし、前記有限可換環R上のn次未満の多項式 および前記有限可換環R上の多項式g*(x)を、前記有
限可換環R上において、 となるように定めた場合において、第1のベクトルデー
タ入力部101に前記f(x)における係数を要素とする
m+1要素数のベクトルデータ をu0を最下位要素、u1を最下位から2番目の要素、・
・・、umを最上位要素として入力し、第2のベクトル
データ入力部102に前記f*(x)における係数を要素と
するn要素数のベクトルデータ をv0を最下位要素、v1を最下位から2番目の要素、・
・・、vn-1を最上位要素として入力し、第3のベクト
ルデータ入力部103に前記有限可換環R上のm+n次未満
の多項式 の係数を要素とするm+n要素数のベクトルデータ をh0を最下位要素、h1を最下位から2番目の要素、・
・・、hm+n-1を最上位要素として入力した場合、ベク
トルデータ出力部104に、 によって決定される、t0を最下位要素、t1を最下位か
ら2番目の要素、・・・、tm-1を最上位要素とするベ
クトルデータ を出力する。ここに、各要素が有限可換環Rの元である
の2つのベクトルデータ を加算するとは、加算結果を、 とすると、 とすることである。ここで、上式は、aiとbiを上記有
限可換環R上で加算し、ciとすることを示す。従って、
前記演算装置100におけるベクトル加算部107は上述のよ
うに、ベクトルデータの加算を行う部分であり、その一
例をベクトル加算器200として図2に示す。つまり、ベ
クトル加算器200は、各要素が有限可換環Rの元であるN
要素数のベクトルデータを入力するための2つのベクト
ルデータ入力部AおよびBと、有限可換環Rの元であるN要
素数のベクトルデータを出力するためのベクトルデータ
出力部Cと、N個の有限可換環R上の加算器を備え、ベク
トルデータ入力部AとBから入力されるN要素数のベクト
ルデータを要素毎にR上で加算し、結果であるN要素数の
ベクトルデータをベクトルデータ出力部Cへ出力する。
2つのm要素数からなるベクトルデータを加算し、m要
素数からなるベクトルデータを出力する、前記ベクトル
加算部107を上記ベクトル加算器を用いて構成する際、
特に、N>mである場合は、ベクトルデータ入力部およ
び出力部のN−m要素分は使用しなければよい。また、
N<mである場合は、本ベクトル加算器200を必要個数
並列に並べてベクトル加算部を構成すればよい。
[0014] The computing device 100, the finite-friendly commutative rings R on the multiplicative identity element is denoted by 1, said such that relatively prime to the defined order n monic monomial x n on the finite-friendly commutative rings R M-order monic polynomial on a finite commutative ring R And a polynomial of degree less than n on the finite commutative ring R And the polynomial g * (x) on the finite commutative ring R on the finite commutative ring R: In the case where is determined to be, the first vector data input unit 101 inputs the vector data of m + 1 elements having the coefficient of f (x) as an element. U 0 is the lowest element, u 1 is the second lowest element,
.., U m are input as the most significant element, and the second vector data input unit 102 has n elements of vector data with the coefficient at f * (x) as the element. A v 0 the least significant element, v 2-th element 1 from the lowest, -
.., V n-1 are input as the most significant element, and a polynomial of degree m + n or less on the finite commutative ring R is input to the third vector data input unit 103 Data of m + n number of elements with the coefficient of Is h 0 , the lowest element, h 1 is the second lowest element,
.. When hm + n-1 is input as the top-level element, the vector data output unit 104 Vector data with t 0 being the lowest element, t 1 being the second lowest element,..., T m-1 being the highest element Is output. Here, two vector data in which each element is an element of the finite commutative ring R Is to add the result of Then It is to be. Here, the above equation indicates that a i and b i are added on the finite commutative ring R to obtain c i . Therefore,
As described above, the vector addition unit 107 in the arithmetic unit 100 is a unit for adding vector data, and an example thereof is shown as a vector adder 200 in FIG. That is, the vector adder 200 determines that each element is an element of the finite commutative ring R
Two vector data input units A and B for inputting vector data of the number of elements, a vector data output unit C for outputting vector data of the number of N elements which are elements of the finite commutative ring R, and N Equipped with an adder on the finite commutative ring R, adds the vector data of the number of N elements input from the vector data input units A and B on R for each element, and converts the resulting vector data of the number of N elements into vector data. Output to output section C.
When the vector adder 107 is configured using the vector adder, the vector adder 107 adds two vector data consisting of m elements and outputs vector data consisting of m elements.
In particular, when N> m, Nm elements of the vector data input unit and the output unit need not be used. Also,
If N <m, the required number of vector adders 200 may be arranged in parallel to form a vector adder.

【0015】また、各要素が有限可換環Rの元であるN要
素数からなるベクトルデータ とM要素数からなるベクトルデータ を乗算するとは、乗算結果を、 とすると、 とすることである。ここで、上式は、aiとbjを上記有
限可換環R上で乗算し、i+j=kを満たす乗算結果同
士を全て上記有限可換環R上で加算し、dkとすることを
示す。従って、前記演算装置100におけるベクトル乗算
部105および106は上述のように、ベクトルデータの乗算
を行うベクトル乗算器から構成されており、該ベクトル
乗算器の一例を300として図3に示す。つまり、図3に
示すベクトル乗算器300は、各要素が有限可換環Rの元で
あるN要素数のベクトルデータを入力するためのベクト
ルデータ入力部Aおよび各要素が有限可換環Rの元である
M要素数のベクトルデータを入力するためのベクトルデ
ータ入力部Bと、各要素が有限可換環Rの元であるM+N
−1要素数のベクトルデータを出力するためのベクトル
データ出力部Cと、MN個の有限可換環R上の乗算器と、
(M−1)(N−1)個の有限可換環R上の加算器とを
備える。従って、前記演算装置100における第1のベク
トル乗算部105は、本ベクトル乗算器300をM=N=nと
して構成し、ベクトルデータ出力部Cの下位からn要素
を出力するようにすればよい。また、前記演算装置100
における第2のベクトル乗算部106は、本ベクトル乗算
器をM=m+1,N=nとして構成し、ベクトルデータ
出力部Cの上位からm要素を出力するようにすればよ
い。特に、入力するベクトルデータの要素数がMまたはN
に満たないときは、ベクトルデータ入力部AまたはBの上
位要素には、R上の零元を入力すればよい。また、入力
するベクトルデータの要素数がMまたはNを超える場合
は、本ベクトル乗算器300および前記ベクトル加算器200
を組み合わせて、ベクトル乗算部105および106を実現す
ることができる。
Further, vector data consisting of the number of N elements in which each element is an element of a finite commutative ring R And vector data consisting of M elements Multiplying is the result of multiplying Then It is to be. Here, the above equation shows that the a i and b j multiplied on the finite-friendly commutative rings R, all the multiplication results together to meet the i + j = k by adding on the finite-friendly commutative rings R, and d k . Therefore, the vector multipliers 105 and 106 in the arithmetic unit 100 are composed of the vector multipliers for multiplying the vector data as described above, and an example of the vector multiplier is shown in FIG. That is, the vector multiplier 300 shown in FIG. 3 includes a vector data input unit A for inputting vector data of N elements in which each element is an element of the finite commutative ring R, and each element is an element of the finite commutative ring R. is there
A vector data input unit B for inputting vector data of M elements, and M + N where each element is an element of a finite commutative ring R
A vector data output unit C for outputting vector data of −1 elements, multipliers on MN finite commutative rings R,
(M-1) (N-1) adders on the finite commutative ring R. Therefore, the first vector multiplier 105 in the arithmetic unit 100 may configure the vector multiplier 300 as M = N = n and output n elements from the lower order of the vector data output unit C. Further, the arithmetic unit 100
In the second vector multiplication unit 106, the vector multiplier may be configured as M = m + 1, N = n, and may output m elements from the upper part of the vector data output unit C. In particular, if the number of elements of the input vector data is M or N
, The zero element on R may be input to the upper element of the vector data input unit A or B. If the number of elements of the input vector data exceeds M or N, the vector multiplier 300 and the vector adder 200
Can be combined to implement the vector multiplication units 105 and 106.

【0016】(実施の形態2)本実施の形態2では、前
記演算装置100が処理するベクトルデータの各要素がG
F(2)である場合、即ち、前記有限可換環RをGF
(2)に限定した場合のベクトル乗算器300およびベク
トル加算器200の回路構成の一例を述べる。図4に示す
ベクトル乗算器400は、MビットとNビットのデータを乗
算し、M+N−1ビットのデータを出力する。GF
(2)上の加算回路は排他的論理和回路、乗算回路は論
理積回路で実現可能であるため、前記有限可換環RをG
F(2)に限定した場合の本ベクトル乗算器400は、前
記ベクトル乗算器300における乗算器を論理積回路、加
算器を排他的論理和回路とすることにより得られる。ま
た、前記有限可換環RをGF(2)に限定した場合のベ
クトル加算器は、ベクトル加算器200における加算器を
排他的論理和回路とすればよい。
(Embodiment 2) In Embodiment 2, each element of the vector data processed by the arithmetic unit 100 is G
F (2), that is, the finite commutative ring R is GF
An example of a circuit configuration of the vector multiplier 300 and the vector adder 200 in the case of limiting to (2) will be described. The vector multiplier 400 shown in FIG. 4 multiplies data of M bits and N bits, and outputs data of M + N-1 bits. GF
(2) Since the above adder circuit can be realized by an exclusive OR circuit and the multiplier circuit can be realized by an AND circuit, the finite commutative ring R is represented by G
The present vector multiplier 400 when limited to F (2) can be obtained by using a multiplier in the vector multiplier 300 as an AND circuit and an adder as an exclusive OR circuit. When the finite commutative ring R is limited to GF (2), the adder in the vector adder 200 may be an exclusive OR circuit.

【0017】(実施の形態3)本実施の形態3では、前
記実施の形態1で示した演算装置100を用いて実施され
る演算の一例を実際の数値を用いて詳細に説明する。ま
ず、モンゴメリ・リダクションに対してモンゴメリ演算
域を導入したように、本発明の基本原理であるPolynomi
al Montgomery Reductionに対して、拡張モンゴメリ演
算域を定義し、導入する(図6)。有限可換環Rを係数
とする多項式f(x)による剰余類の元は拡張モンゴメ
リ演算域の元に対応づけられ、実際の演算は拡張モンゴ
メリ演算域で計算されることになる。上記f(x)によ
る剰余類、即ちf(x)剰余系の元を拡張モンゴメリ演
算域の元に対応づける操作を拡張モンゴメリ変換、拡張
モンゴメリ演算域の元をf(x)剰余系の元に対応づけ
る操作を拡張モンゴメリ逆変換と呼ぶことにする。する
と、f(x)剰余系における一連の演算を実施するに
は、 拡張モンゴメリ変換 拡張モンゴメリ演算域での一連の演算 拡張モンゴメリ逆変換の手順を踏むことになる。ま
ず、有限可換環R上のモニック多項式f(x)と互いに
素なモニック多項式g(x)を、 となるように定め、g*(x),f*(x)を、 を満たすようにする。拡張モンゴメリ変換は、f(x)
剰余系の元a(x)を拡張モンゴメリ演算域の元A
(x)へ次のように対応づける。 上記拡張モンゴメリ変換は、 を事前計算しておくことにより、Polynomial Montgomer
y Reductionを計算するアルゴリズムPOLYREDCを用い
て、 により実現できる。
(Embodiment 3) In Embodiment 3, an example of an operation performed using the arithmetic unit 100 shown in Embodiment 1 will be described in detail using actual numerical values. First, like the introduction of the Montgomery arithmetic domain to Montgomery reduction, the basic principle of the present invention, Polynomi
An extended Montgomery calculation area is defined and introduced for al Montgomery Reduction (Fig. 6). The element of the coset by the polynomial f (x) having the finite commutative ring R as a coefficient is associated with the element of the extended Montgomery operation area, and the actual operation is calculated in the extended Montgomery operation area. The operation of associating the coset by f (x), that is, the element of the f (x) coset with the element of the extended Montgomery operation area is an extended Montgomery transformation, and the element of the extended Montgomery operation area is set to the element of the f (x) coset. The associating operation is called an extended Montgomery inverse transformation. Then, in order to perform a series of operations in the f (x) residue system, a series of operations in the extended Montgomery transformation extended Montgomery operation area is performed by the procedure of the extended Montgomery inverse transformation. First, a monic polynomial g (x) which is relatively prime to the monic polynomial f (x) on the finite commutative ring R is G * (x) and f * (x) are defined as To satisfy. The extended Montgomery transform is f (x)
The element a (x) of the remainder system is replaced with the element A of the extended Montgomery operation area.
(X) is associated as follows. The extended Montgomery transformation is By calculating in advance, the Polynomial Montgomer
Using the POLYREDC algorithm to calculate y Reduction, Can be realized by:

【0018】一方、拡張モンゴメリ逆変換は、拡張モン
ゴメリ演算域の元A(x)をf(x)による剰余類の元
a(x)へ次のように対応づける。 上記拡張モンゴメリ逆変換は、POLYREDCを用いて、 により実現できる。また、f(x)剰余系の元、a
(x)、b(x)に対して、対応する拡張モンゴメリ演
算域の元をそれぞれ、A(x)、B(x)とすれば、f
(x)剰余系での乗算、 は拡張モンゴメリ演算域では、 と計算できる。 f(x)剰余系での加算 は拡張モンゴメリ演算域では、 と計算できる。ここで、A(x)、B(x)は、f
(x)より低次であるので、上記演算は剰余演算を行う
ことなく実施できる。
On the other hand, the extended Montgomery inverse transformation associates the element A (x) of the extended Montgomery operation area with the element a (x) of the coset by f (x) as follows. The extended Montgomery inverse transform uses POLYREDC, Can be realized by: Also, the element of the f (x) remainder system, a
For (x) and b (x), if the elements of the corresponding extended Montgomery operation area are A (x) and B (x), respectively, f
(X) multiplication in the remainder system, Is in the extended Montgomery domain, Can be calculated. Addition in f (x) remainder system Is in the extended Montgomery domain, Can be calculated. Here, A (x) and B (x) are f
Since the order is lower than (x), the above operation can be performed without performing the remainder operation.

【0019】準備が整ったところで、GF(5)上の既
約多項式 によって生成されるGF(5)上の演算を計算する場合
を考える。f(x)がGF(5)上既約であるので、 なる に対して、 なるf*(x)およびg*(x)は必ず存在する。特に、
n=4とすれば、 となる。いま、GF(55)上の元、 に対し、 を計算する例を示す。ここに、a、b、cを多項式表現
したものをa(x)、b(x)、c(x)とおけば、 である。まず、 とすると、a(x)、b(x)、c(x)をそれぞれ拡
張モンゴメリ変換した、拡張モンゴメリ演算域の元A
(x)、B(x)、C(x)は、 により計算される。上記POLYLREDCは演算装置100によっ
て計算される。まず、A(x)を演算装置100によって
算出する過程を示す。GF(5)上では、 となるので、演算装置100における第3のベクトルデー
タ入力部103には、m+n=5+4=9要素数のH=
(0,3,3,0,0,2,2,0,0)なるベクトル
データを入力する。また、第1のベクトルデータ入力部
101には、前記f(x)の係数を要素とする6要素数の
ベクトルデータU=(1,1,1,1,1,4)を入力
し、第2のベクトルデータ入力部102には、前記f
(x)の係数を要素とする4要素数のベクトルデータV
=(4,2,1,1)を入力する。第1のベクトル乗算
部105に入力される1つ目のベクトルデータは、第3の
ベクトルデータ入力部103から入力されたベクトルデー
タH=(0,3,3,0,0,2,2,0,0)の下位
4要素(2,2,0,0)であり、2つ目のベクトルデ
ータは、第2のベクトルデータ入力部102から入力され
たベクトルデータV=(4,2,1,1)である。GF
(p)の元を各要素とするM要素数とN要素数のベクトル
データ の積を計算するベクトル乗算器の出力を、 とすると、 となるから、前記第1のベクトル乗算部105は、(3,
2,1,4,2,0,0)なるベクトルデータの下位4
要素からなるベクトルデータ(4,2,0,0)を出力
する。
When ready, the irreducible polynomial on GF (5) Consider the case of calculating the operation on GF (5) generated by Since f (x) is irreducible on GF (5), Become Against F * (x) and g * (x) always exist. In particular,
If n = 4, Becomes Now, the element on GF (5 5 ) Against Here is an example of calculating. Here, a (x), b (x), and c (x) denote a, b, and c as polynomial expressions, respectively. It is. First, Then, an element A in the extended Montgomery operation area obtained by performing extended Montgomery transformation on a (x), b (x), and c (x) respectively
(X), B (x), C (x) Is calculated by The POLYLREDC is calculated by the arithmetic unit 100. First, a process of calculating A (x) by the arithmetic device 100 will be described. On GF (5), Therefore, in the third vector data input unit 103 of the arithmetic unit 100, m + n = 5 + 4 = 9 elements H =
The vector data (0, 3, 3, 0, 0, 2, 2, 0, 0) is input. A first vector data input unit;
A vector data U = (1,1,1,1,1,4) of six elements having the coefficient of f (x) as an element is input to 101, and a second vector data input unit 102 , Said f
Vector data V of 4 elements, with coefficients of (x) as elements
= (4, 2, 1, 1). The first vector data input to the first vector multiplication unit 105 is the vector data H = (0, 3, 3, 0, 0, 2, 2, 2) input from the third vector data input unit 103. 0, 0), and the second vector data is the vector data V = (4, 2, 1) input from the second vector data input unit 102. , 1). GF
Vector data of the number of M elements and the number of N elements where each element is the element of (p) The output of the vector multiplier that calculates the product of Then Thus, the first vector multiplication unit 105 calculates (3,
2,4,0,0)
The vector data (4, 2, 0, 0) including the elements is output.

【0020】また、第2のベクトル乗算部106に入力さ
れる1つ目のベクトルデータは、上記4要素からなるベ
クトルデータ(4,2,0,0)であり、2つ目のベク
トルデータは、第1のベクトルデータ入力部101に入力
される前記ベクトルデータU=(1,1,1,1,1,
4)であるから、上記第2のベクトル乗算部は、(4,
1,1,1,1,3,3,0,0)なるベクトルデータ
の上位5要素からなるベクトルデータ(4,1,1,
1,1)を出力する。従って、ベクトル加算部107に入
力されるベクトルデータは、上記5要素からなるベクト
ルデータ(4,1,1,1,1)および前記第3のベク
トルデータ入力部103に入力されたベクトルデータH=
(0,3,3,0,0,2,2,0,0)の上位5要素
からなるベクトルデータ(0,3,3,0,0)とな
る。 GF(p)の元を各要素とする2つのN要素数のベクト
ルデータ の和を計算するベクトル加算器の出力を、 とすると、 となるから、前記のベクトル加算部107は、5要素から
なるベクトルデータ(4,4,4,1,1)を出力す
る。従って、演算装置100は上記ベクトル加算部107の出
力である上記5要素からなるベクトルデータ(4,4,
4,1,1)を出力する。ゆえに、演算装置100は、 を計算したことになる。同様に、 となるから、演算装置100における第3のベクトルデー
タ入力部103に、上記多項式の係数を要素とするベクト
ルデータH=(0,4,0,3,4,1,3,0,0)
を入力し、第1のベクトルデータ入力部101に、前記f
(x)の係数を要素とする6要素数のベクトルデータU
=(1,1,1,1,1,4)を入力し、第2のベクト
ルデータ入力部102に、前記f*(x)の係数を要素とす
る4要素数のベクトルデータV=(4,2,1,1)を
入力し、ベクトルデータ出力部104から、(4,1,
2,0,1)を得る。したがって、 となる。また、同様に、 となるから、演算装置100における第3のベクトルデー
タ入力部103に、上記多項式の係数を要素とするベクト
ルデータH=(0,2,1,1,1,1,4,0,0)
を入力し、第1のベクトルデータ入力部101に、前記f
(x)の係数を要素とする6要素数のベクトルデータU
=(1,1,1,1,1,4)を入力し、第2のベクト
ルデータ入力部102に、前記f*(x)の係数を要素とす
る4要素数のベクトルデータV=(4,2,1,1)を
入力し、ベクトルデータ出力部104から、(0,1,
0,0,0)を得る。したがって、 となる。
The first vector data input to the second vector multiplication unit 106 is vector data (4, 2, 0, 0) composed of the above four elements, and the second vector data is , The vector data U = (1,1,1,1,1,1,
4), the second vector multiplication unit calculates (4, 4)
Vector data (4,1,1,1) consisting of the upper five elements of the vector data of 1,1,1,1,3,3,0,0)
1, 1) is output. Therefore, the vector data input to the vector addition unit 107 includes the vector data (4, 1, 1, 1, 1) composed of the above five elements and the vector data H =
Vector data (0,3,3,0,0) consisting of the upper five elements of (0,3,3,0,0,2,2,0,0). Vector data of two N elements with each element being the element of GF (p) The output of the vector adder that calculates the sum of Then Therefore, the vector adding unit 107 outputs vector data (4, 4, 4, 1, 1) composed of five elements. Therefore, the arithmetic unit 100 outputs the vector data (4, 4, 4,
4, 1, 1) is output. Therefore, the arithmetic unit 100 Is calculated. Similarly, Therefore, the vector data H = (0,4,0,3,4,1,3,0,0) having the coefficients of the polynomial as elements are input to the third vector data input unit 103 of the arithmetic device 100.
Is input to the first vector data input unit 101.
6-element vector data U having coefficients of (x) as elements
= (1,1,1,1,1,4) to enter, the second vector data input unit 102, the f * (x) the number of four elements that coefficient elements of the vector data V = (4 , 2, 1, 1) and (4, 1, 1) from the vector data output unit 104.
2,0,1). Therefore, Becomes Similarly, Thus, the vector data H = (0, 2, 1, 1, 1, 1, 1, 4, 0, 0) having the coefficients of the polynomial as elements are input to the third vector data input unit 103 of the arithmetic device 100.
Is input to the first vector data input unit 101.
6-element vector data U having coefficients of (x) as elements
= (1,1,1,1,1,4) to enter, the second vector data input unit 102, the f * (x) the number of four elements that coefficient elements of the vector data V = (4 , 2, 1, 1) and (0, 1, 1) from the vector data output unit 104.
0,0,0). Therefore, Becomes

【0021】GF(55)で前記z=(ab+c)2を計
算するには、拡張モンゴメリ領域では、 を計算することになる。上式は なる手続きによって計算できる。
In order to calculate the above z = (ab + c) 2 with GF (5 5 ), in the extended Montgomery region, Will be calculated. The above formula is It can be calculated by the following procedure.

【0022】既に計算したように、 であるから、step1では、 となる。したがって、step2によるPOLYREDCは、演算装
置100における第3のベクトルデータ入力部103に、上記
多項式の係数を要素とするベクトルデータH=(1,
0,3,1,2,2,1,1,1)を入力し、第1のベ
クトルデータ入力部101に、前記f(x)の係数を要素
とする6要素数のベクトルデータU=(1,1,1,
1,1,4)を入力し、第2のベクトルデータ入力部10
2に、前記f*(x)の係数を要素とする4要素数のベク
トルデータV=(4,2,1,1)を入力すれば、ベク
トルデータ出力部104から、(0,3,3,2,3)を
得るから、 と計算される。step3では上記Z(x)と、既に計算済
みである、C(x)=x3を加算し、 が得られる。step4では上記W(x)を2乗し、 が得られる。したがって、step5によるPOLYREDCは、演
算装置100における第3のベクトルデータ入力部103に、
上記多項式の係数を要素とするベクトルデータH=
(0,0,1,4,0,1,2,2,4)を入力し、第
1のベクトルデータ入力部101に、前記f(x)の係数
を要素とする6要素数のベクトルデータU=(1,1,
1,1,1,4)を入力し、第2のベクトルデータ入力
部102に、前記f*(x)の係数を要素とする4要素数の
ベクトルデータV=(4,2,1,1)を入力すれば、
ベクトルデータ出力部104から、(3,0,2,4,
0)を得るから、 と計算される。上記Z(x)を拡張モンゴメリ逆変換す
ることにより、演算結果を得ることができる。即ち、演
算装置100における第3のベクトルデータ入力部103に、
上記多項式の係数を要素とするベクトルデータH=
(0,0,0,0,3,0,2,4,0)を入力し、第
1のベクトルデータ入力部101に、前記f(x)の係数
を要素とする6要素数のベクトルデータU=(1,1,
1,1,1,4)を入力し、第2のベクトルデータ入力
部102に、前記f*(x)の係数を要素とする4要素数の
ベクトルデータV=(4,2,1,1)を入力すれば、
ベクトルデータ出力部104から、z=(ab+c)2の演
算結果である(0,1,0,0,3)を得る。上記演算
結果を多項式表現すれば、x3+3となり、これは、 としたときの、 に一致する。
As already calculated, So, in step1, Becomes Therefore, the POLYREDC in step 2 is input to the third vector data input unit 103 of the arithmetic device 100 by using the vector data H = (1,
0, 3, 1, 2, 2, 1, 1, 1) is input to the first vector data input unit 101, and vector data U = (6 elements) having the coefficient of f (x) as an element 1,1,1,
1, 1, 4) and the second vector data input unit 10
If the vector data V = (4,2,1,1) of four elements having the coefficient of f * (x) as an element is input to 2, the vector data output unit 104 outputs (0,3,3). , 2,3) Is calculated. In step 3, Z (x) is added to C (x) = x 3 which has already been calculated, Is obtained. In step 4, the above W (x) is squared, Is obtained. Therefore, POLYREDC in step 5 is input to the third vector data input unit 103 in the arithmetic device 100.
Vector data H =
(0,0,1,4,0,1,2,2,4) is input to the first vector data input unit 101, the vector data of 6 elements having the coefficient of f (x) as an element. U = (1,1,
1, 1, 1, 4), and input to the second vector data input unit 102, the vector data V = (4,2,1,1) of four elements having the coefficient of f * (x) as an element. ),
From the vector data output unit 104, (3, 0, 2, 4,
0) Is calculated. An arithmetic result can be obtained by performing the extended Montgomery inverse transform on the Z (x). That is, the third vector data input unit 103 in the arithmetic device 100
Vector data H =
(0,0,0,0,3,0,2,4,0) is input to the first vector data input unit 101, the vector data of 6 elements having the coefficient of f (x) as an element. U = (1,1,
1, 1, 1, 4), and input to the second vector data input unit 102, the vector data V = (4,2,1,1) of four elements having the coefficient of f * (x) as an element. ),
From the vector data output unit 104, (0, 1, 0, 0, 3) which is the operation result of z = (ab + c) 2 is obtained. If the above operation result is represented by a polynomial expression, x 3 +3 is obtained. And when Matches.

【0023】以上、本実施の形態3においては、有限可
換環RをGF(5)として説明したが、本発明では有限
可換環RはGF(5)に限定されず、どのようなもので
あってもよい。また、本実施の形態3では、GF
(55)上の演算の具体例について述べたが、本発明で
は、有限可換環Rを係数とする多項式の演算によって代
替されるどのような演算であっても実現できる。なお、
本明細書中では、数式及び記号がイタリック(斜体)で
書いてある部分とブロック体で書いてある部分とがある
が、その意味するところは同じである。
In the third embodiment, the finite commutative ring R has been described as GF (5). However, the present invention is not limited to the finite commutative ring R but GF (5). You may. In the third embodiment, GF
(5 5) has been described a specific example of operations on, in the present invention can be implemented whatever the operation to be replaced by a calculation of the polynomial coefficient finite friendly commutative rings R. In addition,
In this specification, there are a part in which mathematical formulas and symbols are written in italic (italic) and a part in block form, but the meanings are the same.

【0024】[0024]

【発明の効果】以上説明してきたように、本発明では、
多項式による除算や剰余算が不必要となるため、有限可
換環Rを係数とする多項式や、ガロア体GF(q) を係数とする多項式や、GF(qm)上の演算量を少な
くして演算処理自体を高速化すると共に、演算回路の回
路規模を小さくすることができる演算装置を提供するこ
とができた。
As described above, according to the present invention,
Since division and remainder calculation by a polynomial are unnecessary, a polynomial having a finite commutative ring R as a coefficient or a Galois field GF (q) And a computing device that can reduce the amount of computation on GF (q m ) to speed up the computation itself and reduce the circuit scale of the computation circuit.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の実施の形態1に係る演算装置の概略構
成を示した図である。
FIG. 1 is a diagram showing a schematic configuration of an arithmetic unit according to Embodiment 1 of the present invention.

【図2】本発明の実施の形態1に係るベクトル加算器の
概略構成を示した図である。
FIG. 2 is a diagram showing a schematic configuration of a vector adder according to Embodiment 1 of the present invention.

【図3】本発明の実施の形態1に係るベクトル乗算器の
概略構成を示した図である。
FIG. 3 is a diagram showing a schematic configuration of a vector multiplier according to Embodiment 1 of the present invention.

【図4】本発明の実施の形態2に係るベクトル乗算器の
概略構成を示した図である。
FIG. 4 is a diagram showing a schematic configuration of a vector multiplier according to Embodiment 2 of the present invention.

【図5】従来の演算方法を示した図である。FIG. 5 is a diagram showing a conventional calculation method.

【図6】本発明の実施の形態3に係る演算方法を示した
図である。
FIG. 6 is a diagram showing a calculation method according to a third embodiment of the present invention.

【符号の説明】[Explanation of symbols]

100 演算装置 101 第1のベクトルデータ入力部 102 第2のベクトルデータ入力部 103 第3のベクトルデータ入力部 104 ベクトルデータ出力部 105 第1のベクトル乗算部 106 第2のベクトル乗算部 107 ベクトル加算部 200 ベクトル加算器 300 ベクトル乗算器 400 ベクトル乗算器 REFERENCE SIGNS LIST 100 arithmetic unit 101 first vector data input unit 102 second vector data input unit 103 third vector data input unit 104 vector data output unit 105 first vector multiplication unit 106 second vector multiplication unit 107 vector addition unit 200 vector adder 300 vector multiplier 400 vector multiplier

───────────────────────────────────────────────────── フロントページの続き (72)発明者 杉本 浩一 神奈川県高座郡寒川町小谷二丁目1番1号 東洋通信機株式会社内 Fターム(参考) 5B056 AA01 BB42 BB74 FF01 FF02 HH00 5J104 AA25 JA24 NA16  ────────────────────────────────────────────────── ─── Continuing on the front page (72) Inventor Koichi Sugimoto 2-1-1 Kotani, Samukawa-cho, Koza-gun, Kanagawa F-term in Toyo Tsushinki Co., Ltd. (Reference) 5B056 AA01 BB42 BB74 FF01 FF02 HH00 5J104 AA25 JA24 NA16

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】 各要素が有限可換環Rの元であるm+1
要素数のベクトルデータを入力するための第1のベクト
ルデータ入力部と、 m−1以上の正整数nにおいて、各要素が上記有限可換
環Rの元であるn要素数のベクトルデータを入力するた
めの第2のベクトルデータ入力部と、 各要素が前記有限可換環Rの元であるm+n要素数のベ
クトルデータを入力するための第3のベクトルデータ入
力部と、 各要素が前記有限可換環Rの元であるm要素数のベクト
ルデータを出力するためのベクトルデータ出力部と、 各要素が前記有限可換環Rの元である2つのn要素数の
ベクトルデータを入力して、乗算し、乗算結果の下位n
要素分をベクトルデータとして出力する第1のベクトル
乗算部と、 各要素が前記有限可換環Rの元であるn要素数のベクト
ルデータとm+1要素数のベクトルデータを互いに入力
して、乗算し、乗算結果の上位m要素分をベクトルデー
タとして出力する第2のベクトル乗算部と、 各要素が前記有限可換環Rの元である2つのm要素数の
ベクトルデータを互いに入力して、加算し、加算結果で
あるm要素数のベクトルデータを出力するベクトル加算
部と、 を有し、 前記第1のベクトル乗算部の1つ目の入力は、前記第3
のベクトルデータ入力部から入力されたm+n要素数の
ベクトルデータにおける下位n要素分であり、 前記第1のベクトル乗算部の2つ目の入力は、前記第2
のベクトルデータ入力部から入力されたn要素数のベク
トルデータであり、 前記第2のベクトル乗算部の1つ目の入力は、前記第1
のベクトル乗算部の出力するn要素数のベクトルデータ
出力であり、 前記第2のベクトル乗算部の2つ目の入力は、前記第1
のベクトルデータ入力部から入力されたm+1要素数の
ベクトルデータであり、 前記ベクトル加算部の1つ目の入力は、前記第3のベク
トルデータ入力部から入力されたm+n要素数のベクト
ルデータにおける上位m要素分であり、 前記ベクトル加算部の2つ目の入力は、前記第2のベク
トル乗算部の出力するm要素数のベクトルデータ出力で
あり、 前記ベクトルデータ出力部からは、前記ベクトル加算部
の出力するm要素数のベクトルデータが出力されること
を特徴とする演算装置。
(1) m + 1 in which each element is an element of a finite commutative ring R
A first vector data input unit for inputting vector data of the number of elements, and inputting vector data of the number of n elements in which each element is an element of the finite commutative ring R in a positive integer n of m-1 or more. A second vector data input unit for inputting vector data of m + n elements, each element being an element of the finite commutative ring R, and a second vector data input unit for inputting A vector data output unit for outputting vector data of m elements as elements of R, and inputting and multiplying vector data of two n elements, each element of which is an element of the finite commutative ring R, Lower n of multiplication result
A first vector multiplication unit that outputs the elements as vector data, and inputs and multiplies vector data of n elements and vector data of m + 1 elements, where each element is an element of the finite commutative ring R, A second vector multiplication unit that outputs the higher-order m elements of the multiplication result as vector data, and inputs and adds two m-element vector data, each element being an element of the finite commutative ring R, A vector adder that outputs vector data of m elements as the addition result, wherein a first input of the first vector multiplier is the third input.
Are the lower n elements in the vector data of the number of m + n elements input from the vector data input unit of the second type, and the second input of the first vector multiplication unit is the second input
The first input of the second vector multiplication unit is the first input of the second vector multiplication unit.
And the second input of the second vector multiplier is the first input of the first vector multiplier.
The first input of the vector addition unit is a high-order vector data of the number of m + n elements input from the third vector data input unit. The second input of the vector addition unit is a vector data output of m elements output from the second vector multiplication unit. The vector data output unit outputs the vector addition unit An arithmetic device characterized in that vector data of m elements output by the above is output.
【請求項2】 請求項1記載の前記有限可換環R上の乗
法単位元を1と表記し、 上記有限可換環R上で定義されたn次のモニック単項式
nと互いに素であるような上記有限可換環R上のm次の
モニック多項式を とし、 前記有限可換環R上のn次未満の多項式 および前記有限可換環R上の多項式g*(x)を、前記有
限可換環R上において、 となるように定めた場合において、 請求項1記載の前記第1のベクトルデータ入力部に前記
f(x)における係数を要素とするm+1要素数のベク
トルデータ をu0を最下位要素、u1を最下位から2番目の要素、・
・・、umを最上位要素として入力し、 請求項1記載の前記第2のベクトルデータ入力部に前記
*(x)における係数を要素とするn要素数のベクト
ルデータ をv0を最下位要素、v1を最下位から2番目の要素、・
・・、vn-1を最上位要素として入力することを特徴と
する請求項1記載の演算装置。
2. A notation claim 1 wherein the finite-friendly commutative rings R on the multiplicative identity element according 1, such that relatively prime to the defined order n monic monomial x n on the finite-friendly commutative rings R The m-order monic polynomial on the finite commutative ring R is And a polynomial of degree less than n on the finite commutative ring R And the polynomial g * (x) on the finite commutative ring R on the finite commutative ring R: The vector data of the number of (m + 1) elements having a coefficient in the f (x) as an element in the first vector data input unit according to claim 1, U 0 is the lowest element, u 1 is the second lowest element,
···, u m is input as the highest-order element, and the second vector data input unit according to claim 1 is an n-element vector data having a coefficient at f * (x) as an element. A v 0 the least significant element, v 2-th element 1 from the lowest, -
.., V n-1 are input as the highest-order element.
【請求項3】 各要素がガロア体GF(q)の元である
m+1要素数のベクトルデータを入力するための第1の
ベクトルデータ入力部と、 m−1以上の正整数nにおいて、各要素が上記GF
(q)の元であるn要素数のベクトルデータを入力する
ための第2のベクトルデータ入力部と、 各要素が前記GF(q)の元であるm+n要素数のベク
トルデータを入力するための第3のベクトルデータ入力
部と、 各要素が前記GF(q)の元であるm要素数のベクトル
データを出力するためのベクトルデータ出力部と、 各要素が前記GF(q)の元である2つのn要素数のベ
クトルデータを入力して、乗算し、乗算結果の下位n要
素分をベクトルデータとして出力する第1のベクトル乗
算部と、 各要素が前記GF(q)の元であるn要素数のベクトル
データとm+1要素数のベクトルデータを互いに入力し
て、乗算し、乗算結果の上位m要素分をベクトルデータ
として出力する第2のベクトル乗算部と、 各要素が前記GF(q)の元である2つのm要素数のベ
クトルデータを互いに入力して、加算し、加算結果であ
るm要素数のベクトルデータを出力するベクトル加算部
と、 を有し、 前記第1のベクトル乗算部の1つ目の入力は、前記第3
のベクトルデータ入力部から入力されたm+n要素数の
ベクトルデータにおける下位n要素分であり、 前記第1のベクトル乗算部の2つ目の入力は、前記第2
のベクトルデータ入力部から入力されたn要素数のベク
トルデータであり、 前記第2のベクトル乗算部の1つ目の入力は、前記第1
のベクトル乗算部の出力するn要素数のベクトルデータ
出力であり、 前記第2のベクトル乗算部の2つ目の入力は、前記第1
のベクトルデータ入力部から入力されたm+1要素数の
ベクトルデータであり、 前記ベクトル加算部の1つ目の入力は、前記第3のベク
トルデータ入力部から入力されたm+n要素数のベクト
ルデータにおける上位m要素分であり、 前記ベクトル加算部の2つ目の入力は、前記第2のベク
トル乗算部の出力するm要素数のベクトルデータ出力で
あり、 前記ベクトルデータ出力部からは、前記ベクトル加算部
の出力するm要素数のベクトルデータが出力されること
を特徴とする演算装置。
3. A first vector data input unit for inputting vector data of m + 1 elements, each element being an element of a Galois field GF (q), and each element in a positive integer n of m-1 or more. Is the above GF
A second vector data input unit for inputting vector data of n elements as an element of (q); and a second vector data input unit for inputting vector data of m + n elements as each element of the GF (q). A third vector data input unit; a vector data output unit for outputting vector data of m elements, each element being an element of the GF (q); and each element being an element of the GF (q) A first vector multiplication unit for inputting and multiplying two vector data of n elements and outputting the lower n elements of the multiplication result as vector data; and n in which each element is an element of the GF (q) A second vector multiplication unit that inputs and multiplies the vector data of the number of elements and the vector data of the number of m + 1 elements to each other, and outputs the high-order m elements of the multiplication result as vector data; Under And a vector adder that inputs and adds two m-element vector data to each other and outputs m-element vector data as a result of the addition, and one of the first vector multiplication sections Eye input is the third
Are the lower n elements in the vector data of the number of m + n elements input from the vector data input unit of the second type, and the second input of the first vector multiplication unit is the second input
The first input of the second vector multiplication unit is the first input of the second vector multiplication unit.
And the second input of the second vector multiplier is the first input of the first vector multiplier.
The first input of the vector addition unit is a high-order vector data of the number of m + n elements input from the third vector data input unit. The second input of the vector addition unit is a vector data output of m elements output from the second vector multiplication unit. The vector data output unit outputs the vector addition unit An arithmetic device characterized in that vector data of m elements output by the above is output.
【請求項4】 請求項3記載の前記ガロア体GF(q)
上の乗法単位元を1と表記し、 上記GF(q)上で定義されたn次のモニック単項式x
nと互いに素であるような上記GF(q)上のm次のモ
ニック多項式を とし、前記GF(q)上のn次未満の多項式 および前記GF(q)上の多項式g*(x)を、前記G
F(q)上において、 となるように定めた場合において、 請求項3記載の前記第1のベクトルデータ入力部に前記
f(x)における係数を要素とするm+1要素数のベク
トルデータ をu0を最下位要素、u1を最下位から2番目の要素、・
・・、umを最上位要素として入力し、 請求項3記載の前記第2のベクトルデータ入力部に前記
*(x)における係数を要素とするn要素数のベクト
ルデータ をv0を最下位要素、v1を最下位から2番目の要素、・
・・、vn-1を最上位要素として入力することを特徴と
する請求項3記載の演算装置。
4. The Galois field GF (q) according to claim 3,
The above multiplicative unit is expressed as 1, and the n-th order monic monomial x defined on the above GF (q)
An m-order monic polynomial on GF (q) that is relatively prime to n is And a polynomial of degree less than n on the GF (q) And the polynomial g * (x) on the GF (q)
On F (q), The vector data of the number of (m + 1) elements having a coefficient in the f (x) as an element in the first vector data input unit according to claim 3. U 0 is the lowest element, u 1 is the second lowest element,
· The u m input as top-level elements, the f * n number of elements of the vector data to the coefficient elements in (x) in the second vector data input unit according to claim 3, wherein A v 0 the least significant element, v 2-th element 1 from the lowest, -
.., V n-1 is input as the highest-order element.
【請求項5】 請求項3記載の前記ガロア体GF(q)
上の乗法単位元を1と表記し、 上記GF(q)上のm次既約多項式を とし、 前記GF(q)上のn次未満の多項式 および前記GF(q)上の多項式g*(x)を、前記G
F(q)上において、 となるように定めた場合において、 請求項3記載の前記第1のベクトルデータ入力部に前記
f(x)における係数を要素とするm+1要素数のベク
トルデータ をu0を最下位要素、u1を最下位から2番目の要素、・
・・、umを最上位要素として入力し、 請求項3記載の前記第2のベクトルデータ入力部に前記
*(x)における係数を要素とするn要素数のベクト
ルデータ をv0を最下位要素、v1を最下位から2番目の要素、・
・・、vn-1を最上位要素として入力することを特徴と
する請求項3記載の演算装置。
5. The Galois field GF (q) according to claim 3,
The above multiplicative unit is expressed as 1, and the m-th irreducible polynomial on GF (q) is And a polynomial of degree less than n on GF (q) And the polynomial g * (x) on the GF (q)
On F (q), The vector data of the number of (m + 1) elements having a coefficient in the f (x) as an element in the first vector data input unit according to claim 3. U 0 is the lowest element, u 1 is the second lowest element,
· The u m input as top-level elements, the f * n number of elements of the vector data to the coefficient elements in (x) in the second vector data input unit according to claim 3, wherein A v 0 the least significant element, v 2-th element 1 from the lowest, -
.., V n-1 is input as the highest-order element.
【請求項6】 m+1ビットで表されるベクトルデータ
を入力するための第1のベクトルデータ入力部と、 m−1以上の正整数nにおいて、nビットで表されるベ
クトルデータを入力するための第2のベクトルデータ入
力部と、 m+nビットで表されるベクトルデータを入力するため
の第3のベクトルデータ入力部と、 mビットで表されるベクトルデータを出力するためのベ
クトルデータ出力部と、 2つのnビットのベクトルデータを入力して、乗算し、
乗算結果の下位nビットを出力する第1のベクトル乗算
部と、 nビットのベクトルデータとm+1ビットベクトルのデ
ータを互いに入力して、乗算し、乗算結果の上位mビッ
トを出力する第2のベクトル乗算部と、 2つのmビットのベクトルデータを互いに入力して、加
算し、加算結果であるmビットのベクトルデータを出力
するベクトル加算部と、を有し、 前記第1のベクトル乗算部の1つ目の入力は、前記第3
のベクトルデータ入力部から入力されたm+nビットの
ベクトルデータにおける下位nビットであり、 前記第1のベクトル乗算部の2つ目の入力は、前記第2
のデータ入力部から入力されたnビットのベクトルデー
タであり、 前記第2のベクトル乗算部の1つ目の入力は、前記第1
のベクトル乗算部の出力するnビットのベクトルデータ
出力であり、 前記第2のベクトル乗算部の2つ目の入力は、前記第1
のベクトルデータ入力部から入力されたm+1ビットの
ベクトルデータであり、 前記ベクトル加算部の1つ目の入力は、前記第3のベク
トルデータ入力部から入力されたm+nビットのベクト
ルにおける上位mビットであり、 前記ベクトル加算部の2つ目の入力は、前記第2のベク
トル乗算部の出力するmビットのベクトルデータ出力で
あり、 前記ベクトルデータ出力部からは、前記ベクトル加算部
の出力するmビットのベクトルが出力されることを特徴
とする演算装置。
6. A first vector data input section for inputting vector data represented by m + 1 bits, and a vector data input section for inputting vector data represented by n bits in a positive integer n of m-1 or more. A second vector data input unit, a third vector data input unit for inputting vector data represented by m + n bits, a vector data output unit for outputting vector data represented by m bits, Input and multiply two n-bit vector data,
A first vector multiplication unit that outputs the lower n bits of the multiplication result; and a second vector that inputs and multiplies the n-bit vector data and the m + 1-bit vector data and outputs the upper m bits of the multiplication result. A multiplication unit, and a vector addition unit that inputs and adds two m-bit vector data to each other and outputs m-bit vector data as a result of the addition. The third input is the third input
Are the lower n bits in the m + n-bit vector data input from the vector data input unit, and the second input of the first vector multiplication unit is the second input
The first input of the second vector multiplication unit is the first input of the first vector multiplication unit.
The second input of the second vector multiplication unit is the first input of the first vector multiplication unit.
The first input of the vector addition unit is the upper m bits in the m + n bit vector input from the third vector data input unit. The second input of the vector addition unit is an m-bit vector data output output from the second vector multiplication unit. The vector data output unit outputs m-bit output from the vector addition unit. An arithmetic unit characterized by outputting a vector of
【請求項7】 ガロア体GF(2)上の乗法単位元を1
と表記し、上記GF(2)上で定義されたn次単項式x
nと互いに素であるようなGF(2)上のm次多項式を とし、 GF(2)上のn次未満の多項式 およびGF(2)上の多項式g*(x)を、GF(2)
上において、 となるように定めた場合において、 請求項6記載の前記第1のベクトルデータ入力部に前記
f(x)における係数を要素とするm+1ビットのベク
トルデータ をu0を最下位ビット、u1を最下位から2番目のビッ
ト、・・・、umを最上位ビットとして入力し、 請求項6記載の前記第2のベクトルデータ入力部に前記
*(x)における係数を要素とするnビットのベクト
ルデータ をv0を最下位ビット、v1を最下位から2番目のビッ
ト、・・・、vn-1を最上位ビットとして入力すること
を特徴とする請求項6記載の演算装置。
7. A multiplicative identity on a Galois field GF (2) is 1
And the n-th order monomial x defined on the GF (2)
An m-order polynomial on GF (2) that is relatively prime to n is And a polynomial of degree less than n on GF (2) And the polynomial g * (x) on GF (2)
In the above, 7. An (m + 1) -bit vector data having a coefficient at f (x) as an element in the first vector data input unit according to claim 6. The second bit least significant bit u 0, the u 1 from the lowest, ..., a u m input as the most significant bits, the said second vector data input unit according to claim 6, wherein f * N-bit vector data having the coefficient in (x) as an element The v 0 the least significant bit, the second bit from the least significant v 1, · · ·, v arithmetic apparatus according to claim 6, wherein the n-1, characterized in that input as the most significant bit.
【請求項8】 ガロア体GF(2)上の乗法単位元を1
と表記し、 上記GF(2)上のm次既約多項式を とし、 GF(2)上のn次未満の多項式 およびGF(2)上の多項式g*(x)を、GF(2)
上において、 となるように定めた場合において、 請求項6記載の前記第1のベクトルデータ入力部に前記
f(x)における係数を要素とするm+1ビットのベク
トルデータ をu0を最下位ビット、u1を最下位から2番目のビッ
ト、・・・、umを最上位ビットとして入力し、 請求項6記載の前記第2のベクトルデータ入力部に前記
*(x)における係数を要素とするnビットのベクト
ルデータ をv0を最下位ビット、v1を最下位から2番目のビッ
ト、・・・、vn-1を最上位ビットとして入力すること
を特徴とする請求項6記載の演算装置。
8. The multiplicative identity on the Galois field GF (2) is 1
And the m-order irreducible polynomial on GF (2) is And a polynomial of degree less than n on GF (2) And the polynomial g * (x) on GF (2)
In the above, 7. An (m + 1) -bit vector data having a coefficient at f (x) as an element in the first vector data input unit according to claim 6. The second bit least significant bit u 0, the u 1 from the lowest, ..., a u m input as the most significant bits, the said second vector data input unit according to claim 6, wherein f * N-bit vector data having the coefficient in (x) as an element The v 0 the least significant bit, the second bit from the least significant v 1, · · ·, v arithmetic apparatus according to claim 6, wherein the n-1, characterized in that input as the most significant bit.
JP23855699A 1999-08-25 1999-08-25 Arithmetic unit Expired - Fee Related JP3534004B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23855699A JP3534004B2 (en) 1999-08-25 1999-08-25 Arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23855699A JP3534004B2 (en) 1999-08-25 1999-08-25 Arithmetic unit

Publications (2)

Publication Number Publication Date
JP2001066988A true JP2001066988A (en) 2001-03-16
JP3534004B2 JP3534004B2 (en) 2004-06-07

Family

ID=17032006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23855699A Expired - Fee Related JP3534004B2 (en) 1999-08-25 1999-08-25 Arithmetic unit

Country Status (1)

Country Link
JP (1) JP3534004B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146052A (en) * 2001-11-30 2011-07-28 Analog Devices Inc Galois field multiply/multiply-add/multiply-accumulate operation device
JP2015210725A (en) * 2014-04-28 2015-11-24 日本電信電話株式会社 Matrix operation circuit and matrix operation method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011146052A (en) * 2001-11-30 2011-07-28 Analog Devices Inc Galois field multiply/multiply-add/multiply-accumulate operation device
JP2015210725A (en) * 2014-04-28 2015-11-24 日本電信電話株式会社 Matrix operation circuit and matrix operation method

Also Published As

Publication number Publication date
JP3534004B2 (en) 2004-06-07

Similar Documents

Publication Publication Date Title
Liu et al. Hybrid privacy-preserving clinical decision support system in fog–cloud computing
JP3784156B2 (en) Modular multiplication method
US7962540B2 (en) Mixed radix number generator with chosen statistical artifacts
US8862651B2 (en) Method and apparatus for modulus reduction
WO2006054559A1 (en) Encryption computing device
US8352529B2 (en) Modular multiplication calculation apparatus used for montgomery method
KR100442218B1 (en) Power-residue calculating unit using montgomery algorithm
US8280938B2 (en) Semi-sequential Galois Field multiplier and the method for performing the same
Chen et al. Efficient modulo $2^{n}+ 1$ multipliers
KR100459732B1 (en) Montgomery modular multiplier by 4 to 2 compressor and multiplication method thereof
JP2000010479A (en) Montgomery reduction apparatus and recording medium
KR20040067779A (en) Information processing means
US10057064B2 (en) Computational method, computational device and computer software product for montgomery domain
JP2001051832A (en) Multiplication residue arithmetic method and multiplication residue circuit
KR100670780B1 (en) Apparatus for hybrid multiplier in GF2^m and Method for multiplying
JP4616169B2 (en) Apparatus, method and program for calculating conversion parameter in Montgomery modular multiplication
JP3534004B2 (en) Arithmetic unit
EP3226120B1 (en) Non-modular multiplier, method for non-modular multiplication and computational device
KR100974624B1 (en) Method and Apparatus of elliptic curve cryptography processing in sensor mote and Recording medium using it
JP2006201641A (en) Nonlinear arithmetic unit, encryption processor, nonlinear arithmetic method, and nonlinear arithmetic program
JP4348463B2 (en) A device that realizes operations on Galois field GF (p)
KR100395511B1 (en) Method of construction of parallel In-Output multiplier over Galois Field
JP2001194996A (en) Division device for polynomial
CA2129203A1 (en) Public key cryptography utilizing elliptic curves
JP4484002B2 (en) Arithmetic processor

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: 20040216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040301

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080319

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090319

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090319

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100319

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100319

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110319

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 10

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees