JP4851077B2 - Data conversion apparatus and method - Google Patents

Data conversion apparatus and method Download PDF

Info

Publication number
JP4851077B2
JP4851077B2 JP2004274103A JP2004274103A JP4851077B2 JP 4851077 B2 JP4851077 B2 JP 4851077B2 JP 2004274103 A JP2004274103 A JP 2004274103A JP 2004274103 A JP2004274103 A JP 2004274103A JP 4851077 B2 JP4851077 B2 JP 4851077B2
Authority
JP
Japan
Prior art keywords
data
finite field
multiplication
polynomial
input data
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.)
Expired - Fee Related
Application number
JP2004274103A
Other languages
Japanese (ja)
Other versions
JP2005141198A5 (en
JP2005141198A (en
Inventor
薫 横田
基司 大森
将人 山道
誠 館林
誠 臼井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2004274103A priority Critical patent/JP4851077B2/en
Publication of JP2005141198A publication Critical patent/JP2005141198A/en
Publication of JP2005141198A5 publication Critical patent/JP2005141198A5/ja
Application granted granted Critical
Publication of JP4851077B2 publication Critical patent/JP4851077B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、認証方式などに使用されるデータ変換方式を実現するデータ変換装置およびその方法に関し、特に小さな実装規模で実現でき、かつ高いデータ撹乱性能有するデータ変換装置およびその方法に関する。   The present invention relates to a data conversion device and method for realizing a data conversion method used for an authentication method and the like, and more particularly to a data conversion device and method that can be realized with a small mounting scale and have high data disturbance performance.

通信相手の正当性を確認する手段の一つであるチャレンジ−レスポンス認証方式などでは、認証側および被認証側において秘密の変換方式が必要となる。秘密の変換方式に望まれる要件としては、高いデータ撹乱性能(アバランシェ性能)のみならず、その方式を低コストで機器に実装できることが望まれる。   In a challenge-response authentication method that is one of means for confirming the authenticity of a communication partner, a secret conversion method is required on the authenticating side and the authenticated side. As a requirement desired for the secret conversion method, it is desired that not only high data disturbance performance (avalanche performance) but also that method can be implemented in equipment at low cost.

データ変換方式の従来例として、秘密鍵暗号方式を用いる方式がある。例えば、56ビット鍵長DES(Data Encryption Standard)暗号方式(DES暗号方式の詳細は、非特許文献1参照)を用いたデータ変換方式によってチャレンジ−レスポンス認証方式を実現する場合には、DES暗号方式の56ビット鍵を認証用鍵として認証側、被認証側の双方で秘密に保持する。また、DES暗号方式の平文および暗号文をそれぞれデータ変換方式の入力および出力とする。これにより、DES暗号方式を、認証用の秘密のデータ変換方式として使用することができる(認証方式の詳細は、非特許文献1参照)。
岡本龍明、山本博資「現代暗号」(産業図書)、1997年
As a conventional example of the data conversion method, there is a method using a secret key encryption method. For example, when the challenge-response authentication method is realized by a data conversion method using a 56-bit key length DES (Data Encryption Standard) encryption method (refer to Non-Patent Document 1 for details of the DES encryption method), the DES encryption method is used. The 56-bit key is secretly held on both the authenticating side and the authenticated side as an authentication key. Also, the plaintext and ciphertext of the DES encryption method are used as the input and output of the data conversion method, respectively. As a result, the DES encryption method can be used as a secret data conversion method for authentication (see Non-Patent Document 1 for details of the authentication method).
Tatsuaki Okamoto, Hiroshi Yamamoto "Contemporary Cryptography" (Industry Books), 1997

しかしながら、DES暗号方式などの秘密鍵暗号方式は、暗号回路とともに機器内で実装される他の回路との回路共有化を考慮したような方式とはなっておらず、このため、他の回路とは独立の回路として実装する必要がある。従って、従来例の秘密鍵暗号方式を用いたデータ変換方式においては、機器内に実装される他の回路とは全く独立して暗号回路を実装することになり、機器全体として回路規模が大きくなる。つまり、一般に機器を低コストで実現するためには、機器に実装される回路の総規模は極力小さくすることが要求されるので、機器に実装する暗号回路としては、他の回路と共有化できる方が望ましいが、前記従来の構成では、それが実現されていないという課題を有している。   However, a secret key cryptosystem such as the DES cryptosystem is not a scheme that considers circuit sharing with other circuits mounted in the device together with the cryptographic circuit. Must be implemented as an independent circuit. Therefore, in the data conversion method using the secret key encryption method of the conventional example, the encryption circuit is mounted completely independent of other circuits mounted in the device, and the circuit scale of the entire device increases. . In other words, in general, in order to realize a device at low cost, the total scale of circuits mounted on the device is required to be as small as possible. Therefore, the encryption circuit mounted on the device can be shared with other circuits. Although it is more desirable, the conventional configuration has a problem that it is not realized.

本発明は、上述の課題を解決するためになされたものであり、機器内の総実装規模を削減することが可能なデータ変換装置を提供することを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to provide a data conversion apparatus capable of reducing the total mounting scale in a device.

本発明のデータ変換装置は、入力データを複数のデータに分割する分割手段と、前記複数のデータの各々に対して、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における所定のべき数によるべき乗演算に基づく変換を行うべき乗手段と、前記べき乗手段で変換された後の前記複数のデータに基づいて出力データを生成する出力データ生成手段とを備え、前記所定のべき数は3以上であり、かつ2m(mは1以上の整数)以外の値であることを特徴とする。 The data conversion apparatus according to the present invention includes a dividing unit that divides input data into a plurality of data, and a value on a finite field GF (2 n ) (n is a natural number) for each of the plurality of data Power means for performing conversion based on a power operation with a predetermined power on a polynomial remainder ring, and output data generation means for generating output data based on the plurality of data after being converted by the power means, The predetermined power number is 3 or more and a value other than 2 m (m is an integer of 1 or more).

この構成によると、べき乗ステップにおいて、多項式剰余環上の乗算が行なわれる。多項式剰余環上の演算を行なうと、後述するように入力データの一部でも変更されると、その影響が出力データのあらゆるビットに及ぶことになる。このため、データ撹乱性を向上させることができる。また、2つ以上の変数の乗算を行なった場合には、いずれか1つの変数が0の場合には、その他の変数がどのような値であっても乗算結果が0となり、良好なデータ撹乱性能を示さないが、入力データのべき乗の場合には、このような問題が生じず、データの撹乱性を向上させることができる。さらに、べき乗ステップでは、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における演算を行なっている。Reed−Solomon符号や、BCH(Bose-Chaudhuri-Hocqenghem)符号などの誤り訂正符号化回路で使用される有限体GF(2n)上の演算回路との回路共有が可能となる。このため、機器全体としての実装規模が削減でき、コンパクトな回路規模での機器実装が実現される。 According to this configuration, multiplication on the polynomial remainder ring is performed in the power step. When an operation is performed on the polynomial remainder ring, if any part of the input data is changed as will be described later, the influence is exerted on all bits of the output data. For this reason, data disturbance property can be improved. In addition, when multiplication of two or more variables is performed, if any one of the variables is 0, the multiplication result becomes 0 regardless of the value of the other variables, and good data disturbance Although the performance is not shown, such a problem does not occur when the input data is a power, and the disturbance of the data can be improved. Further, in the power step, an operation is performed on a polynomial remainder ring having a value on the finite field GF (2 n ) (n is a natural number) as a coefficient. Circuit sharing with an arithmetic circuit on a finite field GF (2 n ) used in an error correction encoding circuit such as a Reed-Solomon code or a BCH (Bose-Chaudhuri-Hocqenghem) code becomes possible. For this reason, the mounting scale as the whole equipment can be reduced, and equipment mounting with a compact circuit scale is realized.

以下本発明の実施の形態について、図面を参照しながら説明する。
(データ変換装置を利用した認証システムの構成)
図1は、本発明の実施の形態に係る認証システムの構成を示すブロック図である。この認証システムは、認証装置3が被認証装置4をチャレンジ−レスポンス認証方式によって認証する。本認証システムとしては、例えば認証装置3を自動車のドアの開錠および施錠を制御する車載機とし、被認証装置4をユーザが自動車のドアの開錠および施錠のために携帯する携帯端末とする自動車のキーレスエントリシステムなどが具体的に考えられる。
Embodiments of the present invention will be described below with reference to the drawings.
(Configuration of authentication system using data converter)
FIG. 1 is a block diagram showing a configuration of an authentication system according to an embodiment of the present invention. In this authentication system, the authentication device 3 authenticates the device to be authenticated 4 by a challenge-response authentication method. In this authentication system, for example, the authentication device 3 is an in-vehicle device that controls unlocking and locking of a car door, and the authenticated device 4 is a portable terminal that is carried by the user for unlocking and locking the door of the car. A car keyless entry system can be specifically considered.

認証装置3は、乱数生成器5において64ビットの乱数データを生成し、これをチャレンジデータとして被認証装置4に送付する。被認証装置4は、受信したチャレンジデータに対してデータ変換装置2においてデータ変換処理を行ない、変換結果である64ビット変換データをレスポンスデータとして認証装置3に送付する。認証装置3は、被認証装置4が上述の処理を行っている間に前記乱数データに対してデータ変換装置1においてデータ変換処理を行ない、変換結果である64ビット変換データを作成する。そして、認証装置3は、被認証装置4から受信した前記レスポンスデータと前記の変換データとをデータ比較器6において比較し、両者が一致する場合に限り被認証装置4を正当なものであるとして認証する。ここで、認証装置3内部のデータ変換装置1および被認証装置4内部のデータ変換装置2は同一の変換処理を行ない、その処理内容は認証装置3および被認証装置4の間で秘密に共有化されている。   The authentication device 3 generates 64-bit random number data in the random number generator 5 and sends this to the device to be authenticated 4 as challenge data. The device to be authenticated 4 performs data conversion processing in the data conversion device 2 on the received challenge data, and sends 64-bit conversion data as a conversion result to the authentication device 3 as response data. The authentication device 3 performs data conversion processing on the random number data in the data conversion device 1 while the device to be authenticated 4 performs the above-described processing, and creates 64-bit conversion data as a conversion result. Then, the authentication device 3 compares the response data received from the device to be authenticated 4 with the converted data in the data comparator 6, and assumes that the device to be authenticated 4 is valid only if they match. Certify. Here, the data conversion device 1 in the authentication device 3 and the data conversion device 2 in the device to be authenticated 4 perform the same conversion process, and the processing contents are secretly shared between the authentication device 3 and the device to be authenticated 4. Has been.

(データ変換装置1、2の構成)
データ変換装置1、2は同一の構成であるから、以下ではデータ変換装置1の内部構成のみについて説明する。
(Configuration of data converters 1 and 2)
Since the data converters 1 and 2 have the same configuration, only the internal configuration of the data converter 1 will be described below.

図2は、データ変換装置1の内部構成を示した図である。データ変換装置1は、64ビットの入力データに対して所定の秘密変換処理を行ない64ビットの出力データを生成する処理装置であり、有限体多項式3乗部10と、データ融合部11a〜11d、12および13と、第1変換部14と、第2変換部15と、データ分割部16と、データ結合部17とからなる。以下、64ビットの入力データが入力されたときの内部動作について説明する。   FIG. 2 is a diagram showing an internal configuration of the data conversion apparatus 1. The data conversion device 1 is a processing device that performs a predetermined secret conversion process on 64-bit input data and generates 64-bit output data, and includes a finite field polynomial cube unit 10 and data fusion units 11a to 11d, 12 and 13, a first conversion unit 14, a second conversion unit 15, a data division unit 16, and a data combination unit 17. The internal operation when 64-bit input data is input will be described below.

まず、データ分割部16が、前記入力データを上位から32ビットずつ2つのデータに分割する。ここでは2つのデータを、上位からデータA、データBとする。データAはデータ融合部11aおよび11cに、データBはデータ融合部11bおよび11dにそれぞれ入力される。データ融合部11aおよび11cは、入力された32ビットデータAに対して、固定の32ビットデータK1およびK3とのビット毎の排他的論理和演算(XOR)をそれぞれ行ない、32ビットデータA0およびA1をそれぞれ出力する。また、データ融合部11bおよび11dは、入力された32ビットデータBに対して、固定の32ビットデータK2およびK4とのビット毎の排他的論理和演算(XOR)をそれぞれ行ない、32ビットデータB0およびB1をそれぞれ出力する。ここで、32ビットデータK1〜K4は、予め所定の値に定められた固定値である。   First, the data dividing unit 16 divides the input data into two pieces of data from the upper 32 bits. Here, the two data are data A and data B from the top. Data A is input to data fusion units 11a and 11c, and data B is input to data fusion units 11b and 11d, respectively. The data fusion units 11a and 11c perform bitwise exclusive OR (XOR) with the fixed 32-bit data K1 and K3 on the input 32-bit data A, respectively, and the 32-bit data A0 and A1. Are output respectively. Further, the data fusion units 11b and 11d perform an exclusive OR operation (XOR) for each bit with the fixed 32-bit data K2 and K4 on the input 32-bit data B, respectively, and the 32-bit data B0 And B1 are output respectively. Here, the 32-bit data K1 to K4 are fixed values set in advance to predetermined values.

次に、有限体多項式3乗部10は、上記32ビットデータA0、B0、A1およびB1のそれぞれに対して、後で述べる有限体GF(28)上の値を係数とする多項式剰余環上の3乗算を行ない、それぞれ32ビットデータ(A0)3、(B0)3、(A1)3、(B1)3を算出する。有限体多項式3乗部10の処理の詳細については後に説明する。 Next, the finite field polynomial cube unit 10 applies a value on a polynomial remainder ring whose coefficient is a value on a finite field GF (2 8 ) described later to each of the 32-bit data A0, B0, A1, and B1. Are multiplied by 3 to calculate 32-bit data (A0) 3 , (B0) 3 , (A1) 3 , and (B1) 3 , respectively. Details of the processing of the finite field polynomial cube section 10 will be described later.

次に、32ビットデータ(A0)3および(B0)3は、データ融合部12に入力され、32ビットデータ(A1)3および(B1)3は、データ融合部13に入力される。 Next, the 32-bit data (A0) 3 and (B0) 3 are input to the data fusion unit 12, and the 32-bit data (A1) 3 and (B1) 3 are input to the data fusion unit 13.

データ融合部12およびデータ融合部13は、入力されたそれぞれ2つの32ビットデータに対してビット毎の排他的論理和演算を行ない、32ビットデータ(A0)3(+)(B0)3および(A1)3(+)(B1)3をそれぞれ出力する。ここで、「X(+)Y」はXとYとのビット毎の排他的論理和演算(XOR)を意味する。 The data merging unit 12 and the data merging unit 13 perform an exclusive OR operation for each two bits of the input 32-bit data to obtain 32-bit data (A0) 3 (+) (B0) 3 and ( A1) 3 (+) (B1) 3 is output. Here, “X (+) Y” means a bitwise exclusive OR operation (XOR) of X and Y.

次に第1変換部14は、32ビットデータ(A0)3(+)(B0)3に対して後で説明する有限体GF(28)上の演算に基づく所定の変換を行ない、32ビットデータG0を出力する。また、第2変換部15は、前記(A1)3(+)(B1)3に対して後で説明する有限体GF(28)上の演算に基づく所定の変換を行ない、32ビットデータG1を出力する。 Next, the first conversion unit 14 performs a predetermined conversion on the 32-bit data (A0) 3 (+) (B0) 3 based on an operation on the finite field GF (2 8 ) described later, and generates the 32-bit data Data G0 is output. Further, the second conversion unit 15 performs predetermined conversion on the (A1) 3 (+) (B1) 3 based on an operation on a finite field GF (2 8 ) described later, and generates 32-bit data G1. Is output.

以上の処理の後、データ結合部17は、前記32ビットデータG0を上位32ビット、前記32ビットデータG1を下位32ビットとしてデータ連結し、その結果を64ビットデータとして出力する。この64ビットデータが、データ変換装置1の出力データとなる。次に、有限体多項式3乗部10の内部構成と動作について説明する。   After the above processing, the data combiner 17 concatenates the 32-bit data G0 as the upper 32 bits and the 32-bit data G1 as the lower 32 bits, and outputs the result as 64-bit data. This 64-bit data becomes the output data of the data converter 1. Next, the internal configuration and operation of the finite field polynomial cube unit 10 will be described.

(有限体多項式3乗部10の内部構成)
図3は、有限体多項式3乗部10の内部構成の一例を示した図である。有限体多項式3乗部10は、有限体GF(28)上の値を係数とする多項式剰余環上の3乗算を行なう処理部であり、入力制御部101と、有限体多項式乗算部100と、出力制御部102とからなる。
(Internal configuration of the finite field polynomial cube 10)
FIG. 3 is a diagram showing an example of the internal configuration of the finite field polynomial cube section 10. The finite field polynomial cube unit 10 is a processing unit that performs three multiplications on a polynomial remainder ring having a value on the finite field GF (2 8 ) as a coefficient. The input control unit 101, the finite field polynomial multiplication unit 100, And the output control unit 102.

入力制御部101は、二つの入力データのうちどちらか一方を出力するような制御を行なう。有限体多項式乗算部100は、二つの入力データに対して有限体GF(28)上の値を係数とする多項式剰余環上の乗算を行なう。出力制御部102は、入力データを二つの出力先のうちどちらか一方に出力するような制御を行なう。 The input control unit 101 performs control to output either one of the two input data. The finite field polynomial multiplication unit 100 performs multiplication on a polynomial remainder ring using the values on the finite field GF (2 8 ) as coefficients for the two input data. The output control unit 102 performs control so that input data is output to one of two output destinations.

以下、有限体多項式3乗部10に、32ビットの入力データXが入力された場合の内部動作について説明する。入力データXは、入力制御部101および有限体多項式乗算部100に入力される。入力制御部101は、前記入力データXをそのまま有限体多項式乗算部100に入力する。有限体多項式乗算部100は、外部より入力された32ビットデータXと入力制御部101より入力された32ビットデータXとの有限体GF(28)上の値を係数とする多項式剰余環上の乗算(詳細は後で説明する)を行ない、乗算結果X2を出力し、出力制御部102に入力する。有限体多項式乗算部100の処理の詳細については後で説明する。 The internal operation when 32-bit input data X is input to the finite field polynomial cube section 10 will be described below. The input data X is input to the input control unit 101 and the finite field polynomial multiplication unit 100. The input control unit 101 inputs the input data X as it is to the finite field polynomial multiplication unit 100. The finite field polynomial multiplication unit 100 is on a polynomial remainder ring whose coefficient is a value on the finite field GF (2 8 ) between the 32-bit data X input from the outside and the 32-bit data X input from the input control unit 101. And the multiplication result X 2 is output and input to the output control unit 102. Details of the processing of the finite field polynomial multiplier 100 will be described later.

出力制御部102は、入力データX2をそのまま入力制御部101に入力する。そして、入力制御部101は、入力データX2を有限体多項式乗算部100に入力する。 The output control unit 102 inputs the input data X 2 to the input control unit 101 as it is. Then, the input control unit 101 inputs the input data X 2 to the finite field polynomial multiplication unit 100.

有限体多項式乗算部100は、前記入力データX2と、入力データXとの乗算を行ない、乗算結果X3を出力制御部102に入力する。このときの乗算は既に述べた通り多項式剰余環上の乗算である。 The finite field polynomial multiplication unit 100 performs multiplication of the input data X 2 and the input data X, and inputs the multiplication result X 3 to the output control unit 102. The multiplication at this time is multiplication on a polynomial remainder ring as already described.

出力制御部102は、前記入力データX3を有限体多項式3乗部10の出力データとして出力する。次に、有限体多項式乗算部100の内部構成と動作について説明する。 The output control unit 102 outputs the input data X 3 as output data of the finite field polynomial cube unit 10. Next, the internal configuration and operation of the finite field polynomial multiplier 100 will be described.

(有限体多項式乗算部100の内部構成)
図4は、有限体多項式乗算部100の内部構成の一例を示した図である。有限体多項式乗算部100は、32ビットの第1入力データXと32ビットの第2入力データYとの有限体GF(28)上の値を係数とする多項式剰余環上の乗算を行ない、32ビットの出力データDを出力する。このときの多項式剰余環の剰余多項式はL(X)=X4−1とし、有限体GF(28)の原始多項式m(x)はm(x)=x8+x4+x3+x+1とする。有限体多項式乗算部100の動作説明の前に、有限体GF(28)上の演算および多項式剰余環上の演算について簡単に説明する。
(Internal configuration of finite field polynomial multiplier 100)
FIG. 4 is a diagram illustrating an example of an internal configuration of the finite field polynomial multiplication unit 100. The finite field polynomial multiplication unit 100 performs multiplication on a polynomial remainder ring using a value on a finite field GF (2 8 ) of the 32-bit first input data X and the 32-bit second input data Y as a coefficient, 32-bit output data D is output. The remainder polynomial of the polynomial remainder ring at this time is L (X) = X 4 −1, and the primitive polynomial m (x) of the finite field GF (2 8 ) is m (x) = x 8 + x 4 + x 3 + x + 1. . Before describing the operation of the finite field polynomial multiplication unit 100, operations on the finite field GF (2 8 ) and operations on the polynomial remainder ring will be briefly described.

まず、有限体GF(28)上の演算について説明する。有限体GF(28)上の演算では、8ビットデータAの各ビットの値を上位からa7、a6、・・・、a0としたとき、7次の多項式a(x)=a7×x7+a6×x6+・・・+a1×x+a0と対応づけて考える。同様に8ビットデータBの各ビットを上位からb7、b6、・・・、b0として、7次の多項式b(x)=b7×x7+b6+x6+・・・+b1×x+b0と対応づける。このとき、有限体GF(28)上におけるAとBの加算結果Cは、c(x)=a(x)+b(x)を有限体GF(2)上で計算した結果のc(x)を上で説明した7次多項式と8ビットデータとの対応付けによって8ビットデータに変換した結果になる。即ち、c(x)=c7×x7+c6+x6+・・・+c1×x+c0としたとき、
c7=a7+b7
c6=a6+b6
・・・ ・・・ ・・・
c1=a1+b1
c0=a0+b0
として求められる。ここで上記の1ビットデータどうしの加算「+」は全て有限体GF(2)上で行われる。即ち、0+0=1+1=0であり0+1=1+0=1として計算される。
First, the calculation on the finite field GF (2 8 ) will be described. In the calculation on the finite field GF (2 8 ), when the value of each bit of the 8-bit data A is a7, a6,..., A0 from the top, the seventh-order polynomial a (x) = a7 × x 7 Consider + a6 × x 6 +... + A1 × x + a0. Similarly, each bit of the 8-bit data B is b7, b6,..., B0 from the top, and is associated with a seventh-order polynomial b (x) = b7 × x 7 + b6 + x 6 +... + B1 × x + b0. At this time, the addition result C of A and B on the finite field GF (2 8 ) is c (x) as a result of calculating c (x) = a (x) + b (x) on the finite field GF (2). ) Is converted into 8-bit data by associating the 7th-order polynomial described above with 8-bit data. That is, when c (x) = c7 × x 7 + c6 + x 6 +... + C1 × x + c0,
c7 = a7 + b7
c6 = a6 + b6
... ... ...
c1 = a1 + b1
c0 = a0 + b0
As required. Here, all the additions “+” between the 1-bit data are performed on the finite field GF (2). That is, 0 + 0 = 1 + 1 = 0 and 0 + 1 = 1 + 0 = 1 are calculated.

上記のことから有限体GF(28)上の加算は、ビットごとの排他的論理和演算をしていることに他ならない。即ち、A、Bに対する加算結果Cは、C=A(+)Bである。 From the above, the addition on the finite field GF (2 8 ) is nothing but an exclusive OR operation for each bit. That is, the addition result C for A and B is C = A (+) B.

次に、有限体GF(28)上の乗算について説明する。8ビットデータA、B、Cを前述のように、7次多項式a(x)、b(x)、c(x)とした時、8ビットデータA、Bの乗算結果Cは、それぞれに対応する7次多項式a(x)、b(x)、c(x)による以下の計算で求められる。 Next, multiplication on the finite field GF (2 8 ) will be described. As described above, when the 8-bit data A, B, and C are set to the seventh order polynomials a (x), b (x), and c (x), the multiplication results C of the 8-bit data A and B correspond to the respective values. Is calculated by the following calculation using a 7th order polynomial a (x), b (x), c (x).

c(x)=a(x)×b(x) mod m(x)
ここで、「f(x) mod g(x)」は、g(x)を法とするf(x)の剰余計算結果であり、m(x)は、前にも述べた通り有限体GF(28)上の原始多項式m(x)=x8+x4+x3+x+1である。また、このときの多項式乗算、剰余算における係数の加算、乗算は有限体GF(2)上で行なう。有限体GF(2)上の加算は既に述べたとおりであり、乗算は0×0=0×1=1×0=0、1×1=1として計算される。
c (x) = a (x) × b (x) mod m (x)
Here, “f (x) mod g (x)” is a remainder calculation result of f (x) modulo g (x), and m (x) is a finite field GF as described above. The primitive polynomial m (x) on (2 8 ) = x 8 + x 4 + x 3 + x + 1. Further, the polynomial multiplication and the addition and multiplication of the coefficients in the remainder are performed on the finite field GF (2). The addition over the finite field GF (2) is as described above, and the multiplication is calculated as 0 × 0 = 0 × 1 = 1 × 0 = 0, 1 × 1 = 1.

上記の乗算の例を挙げる。A=57(16進数)、B=83(16進数)としたとき、a(x)=x6+x4+x2+x+1、b(x)=x7+x+1である。これより、a(x)×b(x)=x13+x11+x9+x8+x6+x5+x4+x3+1となり、a(x)×b(x) mod m(x)=x7+x6+1となるので、A、Bの乗算結果Cは16進数でC1となる。 An example of the above multiplication is given. When A = 57 (hexadecimal number) and B = 83 (hexadecimal number), a (x) = x 6 + x 4 + x 2 + x + 1, b (x) = x 7 + x + 1. From this, a (x) × b (x) = x 13 + x 11 + x 9 + x 8 + x 6 + x 5 + x 4 + x 3 +1 and a (x) × b (x) mod m (x) = x 7 + x Since 6 + 1, the multiplication result C of A and B is C1 in hexadecimal.

次に有限体GF(28)上の値を係数とする多項式剰余環上の演算について説明する。多項式剰余環上の演算では、32ビットデータAの各バイトを上位バイトからA0、A1、A2、A3としたとき、1バイトデータA0〜A3を3次の多項式A(X)=A0+A1×X+A2×X2+A3×X3と対応づけて考える。同様に32ビットデータB、Cの各バイトを上位バイトからB0、B1、B2、B3およびC0、C1、C2、C3としたとき、1バイトデータB0〜B3およびC0〜C3を3次の多項式B(X)=B0+B1×X+B2×X2+B3×X3およびC(X)=C0+C1×X+C2×X2+C3×X3とそれぞれ対応づけて考える。このとき、多項式剰余環上の加算はC(X)=A(X)+B(X)として求められる。このときの多項式係数の加算は先ほど説明した有限体GF(28)上の加算である。上記のことから言い換えると、32ビットデータAとBとの加算は、単にビット毎の排他的論理和演算を行えば良いことになる。 Next, an operation on a polynomial remainder ring using a value on the finite field GF (2 8 ) as a coefficient will be described. In the operation on the polynomial remainder ring, when each byte of the 32-bit data A is A0, A1, A2, A3 from the upper byte, the 1-byte data A0 to A3 is converted to a third-order polynomial A (X) = A0 + A1 × X + A2 × Consider it in association with X 2 + A3 × X 3 . Similarly, when each byte of 32-bit data B and C is changed to B0, B1, B2, B3 and C0, C1, C2, and C3 from the upper byte, 1-byte data B0 to B3 and C0 to C3 are converted to a third-order polynomial B. Consider (X) = B0 + B1 × X + B2 × X 2 + B3 × X 3 and C (X) = C0 + C1 × X + C2 × X 2 + C3 × X 3 respectively. At this time, the addition on the polynomial remainder ring is obtained as C (X) = A (X) + B (X). The addition of the polynomial coefficient at this time is the addition on the finite field GF (2 8 ) described above. In other words, the addition of the 32-bit data A and B is performed simply by performing an exclusive OR operation for each bit.

次に、多項式剰余環上の乗算について説明する。32ビットデータAおよびBの乗算結果を32ビットデータCとし、上記のように各データを3次の多項式A(X)、B(X)およびC(X)と対応づけたとき、多項式剰余環上の乗算は、以下のような多項式演算で示される。   Next, multiplication on the polynomial remainder ring will be described. When the multiplication result of the 32-bit data A and B is 32-bit data C and each data is associated with the cubic polynomial A (X), B (X), and C (X) as described above, the polynomial remainder ring The above multiplication is represented by the following polynomial operation.

C(X)=A(X)×B(X) mod L(X)
ここで、L(X)は既に説明した通り、剰余多項式L(X)=X4−1であり、上記の多項式係数の加算、乗算は有限体GF(28)上で行われる。このため、上式は、以下のように計算される。
C (X) = A (X) × B (X) mod L (X)
Here, as already described, L (X) is the remainder polynomial L (X) = X 4 −1, and the addition and multiplication of the above polynomial coefficients are performed on the finite field GF (2 8 ). For this reason, the above equation is calculated as follows.

C(X)= A0×B0
+(A0×B1+A1×B0)×X
+(A0×B2+A2×B0+A1×B1)×X2
+(A0×B3+A1×B2+A2×B1+A3×B0)×X3
+(A1×B3+A3×B1+A2×B2)×X4
+(A2×B3+A3×B2)×X5
+(A3×B3)×X6 (mod X4−1)
このとき、X4 = 1(mod X4−1)であることから、上記の式はさらに、以下のように変形できる。
C (X) = A0 × B0
+ (A0 × B1 + A1 × B0) × X
+ (A0 × B2 + A2 × B0 + A1 × B1) × X 2
+ (A0 × B3 + A1 × B2 + A2 × B1 + A3 × B0) × X 3
+ (A1 × B3 + A3 × B1 + A2 × B2) × X 4
+ (A2 × B3 + A3 × B2) × X 5
+ (A3 × B3) × X 6 (mod X 4 −1)
At this time, since X4 = 1 (mod X 4 −1), the above equation can be further modified as follows.

C(X)= (A0×B0+A3×B1+A2×B2+A1×B3)
+(A1×B0+A0×B1+A3×B2+A2×B3)×X
+(A2×B0+A1×B1+A0×B2+A3×B3)×X2
+(A3×B0+A2×B1+A1×B2+A0×B3)×X3
このことより、
C0=A0×B0+A3×B1+A2×B2+A1×B3
C1=A1×B0+A0×B1+A3×B2+A2×B3
C2=A2×B0+A1×B1+A0×B2+A3×B3
C3=A3×B0+A2×B1+A1×B2+A0×B3
としてCは計算できることが分かる。このとき上記の加算「+」、乗算「×」は有限体GF(28)上で行われる。
C (X) = (A0 × B0 + A3 × B1 + A2 × B2 + A1 × B3)
+ (A1 × B0 + A0 × B1 + A3 × B2 + A2 × B3) × X
+ (A2 × B0 + A1 × B1 + A0 × B2 + A3 × B3) × X 2
+ (A3 × B0 + A2 × B1 + A1 × B2 + A0 × B3) × X 3
From this,
C0 = A0 × B0 + A3 × B1 + A2 × B2 + A1 × B3
C1 = A1 × B0 + A0 × B1 + A3 × B2 + A2 × B3
C2 = A2 × B0 + A1 × B1 + A0 × B2 + A3 × B3
C3 = A3 × B0 + A2 × B1 + A1 × B2 + A0 × B3
As can be seen, C can be calculated. At this time, the above addition “+” and multiplication “×” are performed on the finite field GF (2 8 ).

以上で有限体GF(28)上の演算および多項式剰余環上の演算について説明が終わったので、有限体多項式乗算部100の動作説明を行なう。 This completes the description of the operation on the finite field GF (2 8 ) and the operation on the polynomial remainder ring, so the operation of the finite field polynomial multiplication unit 100 will be described.

有限体多項式乗算部100は、二つの入力データに対して有限体GF(28)上の値を係数とする多項式剰余環上の乗算を行なう処理部であり、有限体乗算部110と、データ分割部111〜112と、データ加算部113〜115と、データ結合部116と、演算制御部117とからなる。 The finite field polynomial multiplication unit 100 is a processing unit that performs multiplication on a polynomial remainder ring using the values on the finite field GF (2 8 ) as coefficients for the two input data. The division unit 111 to 112, the data addition unit 113 to 115, the data combination unit 116, and the calculation control unit 117 are included.

有限体乗算部110は、有限体GF(28)上の乗算を行なう。データ分割部111〜112の各々は、32ビットの入力データを4個の8ビットのデータに分割する。データ加算部113〜115の各々は、2つの入力データに対して有限体GF(28)上の加算を行なう。データ結合部116は、4個の8ビットデータを結合して32ビットデータとして出力する。演算制御部117は、データ分割部111およびデータ分割部112から有限体乗算部110へ入力される被乗数および乗数の入力制御および有限体乗算部110から出力されるデータの出力先制御を行なう。以下、有限体多項式乗算部100の動作について説明する。 The finite field multiplier 110 performs multiplication on the finite field GF (2 8 ). Each of the data division units 111 to 112 divides 32-bit input data into four 8-bit data. Each of the data addition units 113 to 115 performs addition on the finite field GF (2 8 ) for the two input data. The data combining unit 116 combines four 8-bit data and outputs it as 32-bit data. The arithmetic control unit 117 performs input control of multiplicands and multipliers input from the data dividing unit 111 and the data dividing unit 112 to the finite field multiplication unit 110 and output destination control of data output from the finite field multiplication unit 110. Hereinafter, the operation of the finite field polynomial multiplier 100 will be described.

データ分割部111は、32ビットの第1入力データを上位から8ビットずつ4つのデータに分割する。ここでは、4つのデータを上位からデータX0、X1、X2およびX3とする。データ分割部112も同様に、32ビットの第2入力データを上位から8ビットずつ4つのデータに分割する。ここでは、4つのデータを上位からデータY0、Y1、Y2およびY3とする。以下、有限体乗算部110およびデータ加算部113〜115は、演算制御部117によりその入出力データが適宜制御されて、次式(1)〜(4)に従い、8ビットデータD0、D1、D2およびD3の値を計算する。   The data dividing unit 111 divides the 32-bit first input data into four pieces of data of 8 bits from the top. Here, the four data are designated as data X0, X1, X2, and X3 from the top. Similarly, the data dividing unit 112 divides the 32-bit second input data into four pieces of data of 8 bits from the top. Here, the four data are designated as data Y0, Y1, Y2, and Y3 from the top. Hereinafter, the input / output data of the finite field multiplication unit 110 and the data addition units 113 to 115 are appropriately controlled by the arithmetic control unit 117, and the 8-bit data D0, D1, and D2 according to the following equations (1) to (4). And calculate the value of D3.

D0=X0×Y0+X3×Y1+X2×Y2+X1×Y3 ・・・(1)
D1=X1×Y0+X0×Y1+X3×Y2+X2×Y3 ・・・(2)
D2=X2×Y0+X1×Y1+X0×Y2+X3×Y3 ・・・(3)
D3=X3×Y0+X2×Y1+X1×Y2+X0×Y3 ・・・(4)
但し、上記の乗算「×」、加算「+」は全て有限体GF(28)上で行われる。上記の式がデータXおよびデータYの積を示している理由については既に説明した通りである。
D0 = X0 * Y0 + X3 * Y1 + X2 * Y2 + X1 * Y3 (1)
D1 = X1 * Y0 + X0 * Y1 + X3 * Y2 + X2 * Y3 (2)
D2 = X2 * Y0 + X1 * Y1 + X0 * Y2 + X3 * Y3 (3)
D3 = X3 * Y0 + X2 * Y1 + X1 * Y2 + X0 * Y3 (4)
However, the above multiplication “×” and addition “+” are all performed on the finite field GF (2 8 ). The reason why the above formula indicates the product of data X and data Y is as described above.

上記4つの式のうち、データD0の計算を行なう際の有限多項式乗算部100の動作についてのみ説明する。データD1〜D3については、これと同様の動作によって計算される。   Of the above four equations, only the operation of the finite polynomial multiplier 100 when calculating the data D0 will be described. The data D1 to D3 are calculated by the same operation.

演算制御部117は、有限体乗算部110への入力として、8ビットデータX0〜X3のうちからデータX0を、8ビットデータY0〜Y3のうちからデータY0をそれぞれ選択する。有限体乗算部110は、データX0およびデータY0に対して有限体GF(28)上の乗算を行ない、乗算結果をデータZ0として出力する。即ち、
Z0=X0×Y0
を計算する。
The arithmetic control unit 117 selects data X0 from the 8-bit data X0 to X3 and data Y0 from the 8-bit data Y0 to Y3 as inputs to the finite field multiplication unit 110, respectively. The finite field multiplication unit 110 performs multiplication on the data X0 and the data Y0 on the finite field GF (2 8 ), and outputs the multiplication result as data Z0. That is,
Z0 = X0 × Y0
Calculate

次に同様な動作により、有限体乗算部110は、データX3とY1に対して有限体GF(28)上の乗算を行ない、データZ1として出力する。即ち、
Z1=X3×Y1
を計算する。同様にして
Z2=X2×Y2
Z3=X1×Y3
を計算する。
Next, by a similar operation, the finite field multiplication unit 110 performs multiplication on the data X3 and Y1 on the finite field GF (2 8 ) and outputs the result as data Z1. That is,
Z1 = X3 × Y1
Calculate Similarly, Z2 = X2 × Y2
Z3 = X1 × Y3
Calculate

上記Z0〜Z3の出力が完了後、データ加算部113〜115は、上記データZ0〜Z3に対して、有限体GF(28)上の加算を行なう。即ち、
D0=Z0+Z1+Z2+Z3
を計算する。但し有限体GF(28)上の加算はビット毎の排他的論理和演算に他ならない。このため、上記の計算はデータZ0〜Z3に対してビット毎の排他的論理和演算を行なうことになる。同様にして、データ加算部113〜115は、
D1=X1×Y0+X0×Y1+X3×Y2+X2×Y3
D2=X2×Y0+X1×Y1+X0×Y2+X3×Y3
D3=X3×Y0+X2×Y1+X1×Y2+X0×Y3
を計算する。データ結合部116は、上位からデータD0、D1、D2およびD3を連結して32ビットデータDを有限体多項式乗算部100の出力データとして出力する。
After the output of Z0 to Z3 is completed, the data adders 113 to 115 perform addition on the finite field GF (2 8 ) to the data Z0 to Z3. That is,
D0 = Z0 + Z1 + Z2 + Z3
Calculate However, addition on the finite field GF (2 8 ) is nothing but an exclusive OR operation for each bit. For this reason, the above calculation performs a bitwise exclusive OR operation on the data Z0 to Z3. Similarly, the data adding units 113 to 115
D1 = X1 * Y0 + X0 * Y1 + X3 * Y2 + X2 * Y3
D2 = X2 * Y0 + X1 * Y1 + X0 * Y2 + X3 * Y3
D3 = X3 * Y0 + X2 * Y1 + X1 * Y2 + X0 * Y3
Calculate The data combining unit 116 concatenates the data D0, D1, D2, and D3 from the higher order and outputs 32-bit data D as output data of the finite field polynomial multiplication unit 100.

次に、第1変換部14の内部構成と動作について説明する。
(第1変換部14の内部構成)
図5は、第1変換部14の内部構成の一例を示した図である。
Next, the internal configuration and operation of the first conversion unit 14 will be described.
(Internal configuration of the first converter 14)
FIG. 5 is a diagram illustrating an example of the internal configuration of the first conversion unit 14.

第1変換部14は、32ビットの入力データXに対して、有限体GF(28)上の演算を用いた所定の変換を行ない、32ビットの出力データYを出力する処理部であり、データ分割部20と、データ結合部21と、定数記憶部22と、有限体乗算部210とからなる。データ分割部20は、32ビット入力データを4つの8ビットデータに分割する。データ結合部21は、4つの8ビットデータを結合して32ビットデータとして出力する。定数記憶部22は、4つの8ビット定数C1〜C4を記憶する。有限体乗算部210は、2つの8ビット入力データに対して、有限体GF(28)上の乗算を行って8ビットの出力データを出力する。以下、第1変換部14の動作について説明する。 The first conversion unit 14 is a processing unit that performs a predetermined conversion using an operation on a finite field GF (2 8 ) on the 32-bit input data X and outputs 32-bit output data Y. The data division unit 20, the data combination unit 21, the constant storage unit 22, and the finite field multiplication unit 210 are included. The data dividing unit 20 divides 32-bit input data into four 8-bit data. The data combining unit 21 combines four 8-bit data and outputs it as 32-bit data. The constant storage unit 22 stores four 8-bit constants C1 to C4. The finite field multiplier 210 multiplies the two 8-bit input data on the finite field GF (2 8 ) and outputs 8-bit output data. Hereinafter, the operation of the first conversion unit 14 will be described.

データ分割部20は、32ビットの入力データXを上位から8ビットずつ分割する。ここでは、分割後の8ビットデータを上位からデータX0、X1、X2およびX3とする。有限体乗算部210は、データX0と、定数記憶部22に記憶されている8ビット定数C1との有限体GF(28)上の乗算を行ない、出力データY0として出力する。同様に、有限体乗算部210は、データX1と定数C2との乗算を行ないデータY1として出力し、データX2と定数C3との乗算を行ないデータY2として出力し、データX3と定数C4との乗算を行ないデータY3として出力する。上記一連の動作により
Y0=C1×X0
Y1=C2×X1
Y2=C3×X2
Y3=C4×X3
が計算される。但し、上記の乗算「×」は全て有限体GF(28)上で行われる。
The data dividing unit 20 divides the 32-bit input data X by 8 bits from the top. Here, the divided 8-bit data is set as data X0, X1, X2, and X3 from the top. The finite field multiplication unit 210 performs multiplication on the finite field GF (2 8 ) between the data X0 and the 8-bit constant C1 stored in the constant storage unit 22, and outputs the result as output data Y0. Similarly, the finite field multiplier 210 multiplies the data X1 and the constant C2 and outputs the result as data Y1, multiplies the data X2 and the constant C3 and outputs the data Y2, and multiplies the data X3 and the constant C4. And output as data Y3. Y0 = C1 × X0 by the above series of operations
Y1 = C2 × X1
Y2 = C3 × X2
Y3 = C4 × X3
Is calculated. However, all the multiplications “×” are performed on the finite field GF (2 8 ).

上記処理の後、データ結合部21は、上位からデータY0、Y1、Y2およびY3を結合して32ビットデータYを第1変換部14の出力データとして出力する。   After the above processing, the data combination unit 21 combines the data Y0, Y1, Y2, and Y3 from the higher order and outputs 32-bit data Y as output data of the first conversion unit 14.

(第2変換部15の内部構成)
第2変換部15の内部構成は図6に示す通り、第1変換部14の構成において、定数記憶部32に記憶される定数がC1、C2、C3およびC4からC5、C6、C7およびC8にそれぞれに変わるだけであり、その他の内部構成および動作は第1変換部14と同一である。このため、その詳細な説明はここでは繰り返さない。
(Internal configuration of second converter 15)
As shown in FIG. 6, the internal configuration of the second conversion unit 15 is such that the constants stored in the constant storage unit 32 are changed from C1, C2, C3 and C4 to C5, C6, C7 and C8 in the configuration of the first conversion unit 14. The other internal configurations and operations are the same as those of the first converter 14. Therefore, detailed description thereof will not be repeated here.

次に、図7を参照して、有限体乗算部110、210および310の内部構成と動作とについて説明する。   Next, the internal configuration and operation of the finite field multipliers 110, 210 and 310 will be described with reference to FIG.

(有限体乗算部110、210および310の内部構成)
有限体乗算部110、210および310は、いずれも同一の内部構成を有し、同一の動作を行なう。このため、ここでは、有限体乗算部110の動作についてのみ説明する。有限体GF(28)上の乗算方法については、既に述べた通りであるが、ここでは、その計算をコンパクトな回路で実現した場合の構成を説明する。
(Internal configuration of finite field multipliers 110, 210 and 310)
The finite field multipliers 110, 210, and 310 all have the same internal configuration and perform the same operation. For this reason, only operation | movement of the finite field multiplication part 110 is demonstrated here. The multiplication method on the finite field GF (2 8 ) has already been described, but here, the configuration when the calculation is realized by a compact circuit will be described.

有限体乗算部110は、8ビットの第1入力データXと第2入力データYに対して、有限体GF(28)上の乗算を行ない、8ビットの出力データZを出力する処理部であり、第1入力制御部411と、第2入力制御部414と、出力制御部412と、有限体2倍算部410と、データ融合部413と、データ分割部415とからなる。 The finite field multiplication unit 110 is a processing unit that multiplies the 8-bit first input data X and the second input data Y over the finite field GF (2 8 ) and outputs 8-bit output data Z. A first input control unit 411, a second input control unit 414, an output control unit 412, a finite field doubling unit 410, a data fusion unit 413, and a data dividing unit 415.

第1入力制御部411および第2入力制御部414の各々は、2つの入力データのうちのどちらか一方を選択して、出力するよう制御を行なう。有限体2倍算部410は、入力データに対して有限体GF(28)上の2倍算を行なう。データ融合部413は、2つの入力データを融合させる。データ分割部415は、入力データを複数のデータに分割する。以下、有限体乗算部110の動作について説明する。 Each of the first input control unit 411 and the second input control unit 414 performs control to select and output one of the two input data. The finite field doubling unit 410 performs doubling on the finite field GF (2 8 ) for the input data. The data fusion unit 413 fuses two input data. The data dividing unit 415 divides input data into a plurality of data. Hereinafter, the operation of the finite field multiplier 110 will be described.

まず、データ分割部415は、8ビットの第2入力データYを上位から1ビットずつに分割して、それぞれ値Y7、Y6、・・・、Y0とする。次に、i=7、6、5、4、3、2、1、0の順に以下の(1)から(5)の処理を繰り返し実行する。   First, the data dividing unit 415 divides the 8-bit second input data Y into one bit from the higher order to obtain values Y7, Y6,. Next, the following processes (1) to (5) are repeatedly executed in the order of i = 7, 6, 5, 4, 3, 2, 1, 0.

(1)第1入力制御部411は、i=7のときは8ビットの初期値=0を、i≠7のときは出力制御部412から出力される8ビットデータを有限体2倍算部410に入力する。   (1) The first input control unit 411 sets the 8-bit initial value = 0 when i = 7, and the 8-bit data output from the output control unit 412 when i ≠ 7. Input to 410.

(2)有限体2倍算部410は、第1入力制御部411から入力される8ビットデータに対して有限体GF(28)上の2倍算を行ない、結果の8ビットデータをデータ融合部413に入力する。 (2) The finite field doubling unit 410 performs doubling on the finite field GF (2 8 ) with respect to the 8-bit data input from the first input control unit 411, and uses the resulting 8-bit data as data. Input to the fusion unit 413.

(3)第2入力制御部414は、Yi(i=7、6、・・・、0)が0の場合は8ビット定数0を、それ以外の場合は第1入力データXをデータ融合部413に入力する。   (3) The second input control unit 414 is a data fusion unit that uses 8-bit constant 0 when Yi (i = 7, 6,..., 0) is 0, and first input data X otherwise. Input to 413.

(4)データ融合部413は、有限体2倍算部410から入力される8ビットデータと、第2入力制御部414から入力される8ビットデータとに対してビット毎の排他的論理和演算を行ない、演算結果の8ビットデータを出力制御部412に入力する。   (4) The data fusion unit 413 performs an exclusive OR operation for each bit on the 8-bit data input from the finite field doubling unit 410 and the 8-bit data input from the second input control unit 414. The 8-bit data of the calculation result is input to the output control unit 412.

(5)i≠0の場合は、出力制御部412は、データ融合部413から入力される8ビットデータを第1入力制御部411に入力する。その後、iの値が1だけ減らされ、(1)から処理が再度開始される。i=0の場合は、出力制御部412は、データ融合部413から入力される8ビットデータを有限体乗算部110の出力データとして出力する。その後、一連の処理が終了する。   (5) When i ≠ 0, the output control unit 412 inputs the 8-bit data input from the data fusion unit 413 to the first input control unit 411. Thereafter, the value of i is decreased by 1, and the processing is restarted from (1). When i = 0, the output control unit 412 outputs the 8-bit data input from the data fusion unit 413 as output data of the finite field multiplication unit 110. Thereafter, a series of processing ends.

上記の処理によって第1入力データXと第2入力データYとの乗算結果が計算できる理由について簡単に説明する。   The reason why the multiplication result of the first input data X and the second input data Y can be calculated by the above processing will be briefly described.

第2入力データは、各ビットの値Y7、Y6、・・・、Y0を用いると
Y=Y7×27+Y6×26+・・・+Yi×2i+・・・+Y0
と表せるので、
X×Y=X×(Y7×27+Y6×26+・・・+Yi×2i+・・・+Y0)
=(・・・(((((0+X×Y7)×2+X×Y6)×2+X×Y5)×2+X×Y4)×2+X×Y3)・・・)×2+X×Y0
と表すことができる。この計算式を元にした処理を上記で行っている。
The second input data is Y = Y7 × 2 7 + Y6 × 2 6 +... + Yi × 2 i +... + Y0 using the values Y7, Y6,.
It can be expressed as
X × Y = X × (Y7 × 2 7 + Y6 × 2 6 +... + Yi × 2 i +... + Y0)
= (... ((((((0 + X * Y7) * 2 + X * Y6) * 2 + X * Y5) * 2 + X * Y4) * 2 + X * Y3) ...) * 2 + X * Y0
It can be expressed as. The processing based on this calculation formula is performed as described above.

次に、有限体2倍算部410の内部構成および動作について説明する。
(有限体2倍算部410の内部構成)
図8は、有限体2倍算部410の内部構成を示した図である。
Next, the internal configuration and operation of the finite field doubling unit 410 will be described.
(Internal configuration of finite field doubling unit 410)
FIG. 8 is a diagram illustrating an internal configuration of the finite field doubling unit 410.

有限体2倍算部410は、入力される8ビットデータXに対して有限体GF(28)上の2倍算を行ない、その結果の8ビットデータYを出力する処理部であり、データ分割部511と、データ結合部512と、データ融合部513〜515とからなる。 The finite field doubling unit 410 is a processing unit that performs doubling on the finite field GF (2 8 ) for the input 8-bit data X and outputs the resulting 8-bit data Y. The dividing unit 511, the data combining unit 512, and the data fusion units 513 to 515 are included.

データ分割部511は、入力データを1ビットずつのデータに分割する。データ結合部512は、複数個の入力データを結合して1つのデータとして出力する。データ融合部513〜515の各々は、2つの入力データを融合する。以下、有限体2倍算部410の動作について説明する。   The data dividing unit 511 divides input data into 1-bit data. The data combination unit 512 combines a plurality of input data and outputs the combined data. Each of the data fusion units 513 to 515 fuses two input data. Hereinafter, the operation of the finite field doubling unit 410 will be described.

まず、データ分割部511は、8ビット入力データXを上位から1ビットずつ分割して、上位からデータX7、X6、・・・、X0として出力する。次に、データ融合部513は、データX7とデータX3との排他的論理和演算を行ないデータY4として出力する。データ融合部514は、データX7とデータX2との排他的論理和演算を行ないデータY3として出力する。データ融合部515は、データX7とデータX0との排他的論理和演算を行ないデータY1として出力する。また、データX6、X5、X4、X1およびX7はそれぞれデータY7、Y6、Y5、Y2およびY0とされる。データ結合部512は、データY7、Y6、Y5、・・・、Y0を上位からこの順序で結合した8ビットデータを、有限体2倍算部410の出力データとして出力する。   First, the data division unit 511 divides the 8-bit input data X bit by bit from the upper order and outputs the data as data X7, X6,. Next, the data fusion unit 513 performs an exclusive OR operation between the data X7 and the data X3 and outputs the result as data Y4. The data fusion unit 514 performs an exclusive OR operation between the data X7 and the data X2, and outputs the result as data Y3. The data fusion unit 515 performs an exclusive OR operation on the data X7 and the data X0 and outputs the result as data Y1. Data X6, X5, X4, X1 and X7 are data Y7, Y6, Y5, Y2 and Y0, respectively. The data combining unit 512 outputs, as output data of the finite field doubling unit 410, 8-bit data obtained by combining the data Y7, Y6, Y5,.

有限体2倍算部410は、8ビット入力データXの各ビットX7、X6、・・・、X0に対して、
Y7=X6
Y6=X5
Y5=X4
Y4=X3(+)X7
Y3=X2(+)X7
Y2=X1
Y1=X0(+)X7
Y0=X7
として、8ビット出力データYの各ビットY7、Y6、・・・、Y0の値を算出している。このとき出力データYは、入力データXに対して有限体GF(28)上の2倍算を行った結果になっている。このことを簡単に説明する。
The finite field doubling unit 410 applies the respective bits X7, X6,..., X0 of the 8-bit input data X to
Y7 = X6
Y6 = X5
Y5 = X4
Y4 = X3 (+) X7
Y3 = X2 (+) X7
Y2 = X1
Y1 = X0 (+) X7
Y0 = X7
As a result, the value of each bit Y7, Y6,..., Y0 of the 8-bit output data Y is calculated. At this time, the output data Y is the result of doubling the input data X over the finite field GF (2 8 ). This will be explained briefly.

入力データXは、係数が有限体GF(2)の値である以下のようなαの多項式によって表せる。   The input data X can be expressed by the following α polynomial whose coefficient is the value of the finite field GF (2).

X7×α7+X6×α6+・・・+X1×α+X0
このとき、有限体GF(28)上で2倍算を行なうということは、上の多項式にαを掛け算することであるから、
X7×α8+X6×α7+・・・+X1×α2+X0×α
となる。ここで、原始多項式がx8+x4+x3+x+1であることから、α8=α4+α3+α+1 が成り立つ。このため、上記の多項式は、
X6×α7+X5×α6+X4×α5+(X3+X7)×α4+(X2+X7)×α3+X1×α+(X0+X7)
と書き直される。これが
Y7×α7+Y5×α6+・・・+Y1×α+Y0
に対応することから、上述の有限体2倍算部410のような処理を行なう理由が説明できる。
X7 × α 7 + X6 × α 6 +... + X1 × α + X0
At this time, doubling over the finite field GF (2 8 ) means multiplying the above polynomial by α.
X7 × α 8 + X6 × α 7 +... + X1 × α 2 + X0 × α
It becomes. Here, since the primitive polynomial is x 8 + x 4 + x 3 + x + 1, α 8 = α 4 + α 3 + α + 1 holds. For this reason, the above polynomial is
X6 × α 7 + X5 × α 6 + X4 × α 5 + (X3 + X7) × α 4 + (X2 + X7) × α 3 + X1 × α + (X0 + X7)
Rewritten. This is Y7 × α 7 + Y5 × α 6 +... + Y1 × α + Y0
The reason why the process like the finite field doubling unit 410 is performed can be explained.

データ変換装置1および2は、64ビットの入力データXに対して以下の処理を行っていることになる。   The data conversion apparatuses 1 and 2 perform the following processing on the 64-bit input data X.

(1)入力データXを上位32ビット、下位32ビットに分割してデータX0およびX1とする。   (1) The input data X is divided into upper 32 bits and lower 32 bits to obtain data X0 and X1.

(2)T0=(X0+K1)3+(X1+K2)3 および T1=(X0+K3)3+(X1+K4)3 を計算する。但し、ここでの加算、乗算は全て有限体GF(28)上の値を係数とする多項式剰余環上で行なう。 (2) Calculate T0 = (X0 + K1) 3 + (X1 + K2) 3 and T1 = (X0 + K3) 3 + (X1 + K4) 3 . However, all the additions and multiplications here are performed on a polynomial remainder ring having values on the finite field GF (2 8 ) as coefficients.

(3)32ビットのデータT0を上位から8ビットずつに分割して、データa0、a1、a2およびa3とし、32ビットのデータT1を上位から8ビットずつに分割して、データb0、b1、b2およびb3とする。   (3) The 32-bit data T0 is divided into 8 bits from the upper part to obtain data a0, a1, a2, and a3, and the 32-bit data T1 is divided into 8 bits from the upper part to obtain data b0, b1, Let b2 and b3.

(4)G0=C1×a0‖C2×a1‖C3×a2‖C4×a3 および G1=C5×b0‖C6×b1‖C7×b2‖C8×b3を計算し、G0‖G1を出力データとして出力する。但し、「‖」はデータ連結を表し、上記の乗算は全て有限体GF(28)上で行なわれる。 (4) Calculate G0 = C1 × a0‖C2 × a1‖C3 × a2‖C4 × a3 and G1 = C5 × b0‖C6 × b1‖C7 × b2‖C8 × b3, and output G0‖G1 as output data To do. However, “‖” represents data connection, and all the above multiplications are performed on the finite field GF (2 8 ).

有限体GF(28)上の値を係数とする多項式剰余環上の乗算は式(1)〜式(4)から分かるように、入力データの一部でも変更されると、その変更の影響が出力データの全てに及ぶことになる。例えば、式(1)〜式(4)においてデータX0の値が変更されるものとする。データX0は式(1)〜式(4)の全ての計算に使用されている。このため、出力データD0〜D3の全てに影響が及ぶことになる。他の値(X1〜X3、Y0〜Y3)についても同様のことが言える。このことにより、本実施の形態では、変換処理に上記の乗算を用いることで高いデータ撹乱性能を実現することができる。次に、本実施の形態では、二つ以上の変数の乗算(例えば、X×Y、X×Y×Z)ではなく、べき乗算を用いているが、これは、二つ以上の変数の乗算の場合、それらの変数のうちいずれか一つでも0の場合、その他の変数がどのような値であっても乗算結果は常に0となり、演算結果の値が0になる入力変数値の組み合わせが多数存在することになり、良好なデータ撹乱性能を示さないからである。一方、べき乗算を用いた場合には、入力変数値が0の時にしか演算結果が0とならないので、上記のようなデータ撹乱性能を低下させる問題がなくなり、高いデータ撹乱性能が保証される。 As can be seen from the equations (1) to (4), the multiplication on the polynomial remainder ring using the value on the finite field GF (2 8 ) as a coefficient changes the influence of the change when a part of the input data is changed. Will cover all of the output data. For example, it is assumed that the value of the data X0 is changed in the equations (1) to (4). Data X0 is used for all calculations of Equations (1) to (4). For this reason, all of the output data D0 to D3 are affected. The same can be said for other values (X1 to X3, Y0 to Y3). Thus, in the present embodiment, high data disturbance performance can be realized by using the above multiplication for the conversion process. Next, in this embodiment, power multiplication is used instead of multiplication of two or more variables (for example, X × Y, X × Y × Z), but this is the multiplication of two or more variables. If any one of these variables is 0, the multiplication result is always 0 regardless of the values of the other variables, and there are combinations of input variable values for which the operation result value is 0. This is because many exist and do not show good data disturbance performance. On the other hand, when exponentiation is used, the calculation result becomes 0 only when the input variable value is 0. Therefore, there is no problem of reducing the data disturbance performance as described above, and high data disturbance performance is guaranteed.

また、本実施の形態では、3乗のべき乗算を用いているが、これは以下の理由による。まず2乗算を用いて、Y=X2のような変換を考えたとき、入力値αに対する出力値は、α2である。次に、入力値αに差分Δが加わったときの出力値は、(α+Δ)2=α2+α×Δ+Δ×α+Δ2であり、α×Δ=Δ×αかつα×Δ+α×Δ=0(いずれも、有限体GF(28)上の計算方法から明らか)であることから、(α+Δ)2=α2+Δ2となる。従って、差分Δを入力値に加えることによる出力値の変化分は、Δ2である。即ち、出力値の変化分は、入力値αによらず一定の出力差分Δ2となってしまい、データ撹乱という観点からは好ましい性質とはいえない。これにより、少なくとも3乗以上のべき乗算を用いる必要があるが、べき数が大きいほどべき乗処理が多くなり変換処理負荷が高くなるため、本実施の形態では3乗のべき乗算を用いている。このとき、
(α+Δ)3=(α+Δ)×(α+Δ)×(α+Δ)
=(α2+α×Δ+Δ×α+Δ2)×(α+Δ)
=(α2+Δ2)×(α+Δ)
=α3+Δ×α2+Δ2×α+Δ3
となるので、3乗のべき乗算の場合には、2乗のべき乗算のように出力差分が入力値αによらず一定になることはない。なお、べき乗算のべき数NをN=2k (kは1以上の整数)とした場合には、べき乗算XNをデータ変換処理として入力値αに入力差分Δを与えたときの出力値(α+Δ)^(2k)=α^(2k)+Δ^(2k)となり、入力値によらず一定になることが以下のようにして分かる。ここで、「X^α」はXのα乗を意味する。
In the present embodiment, the power of the third power is used. This is for the following reason. First, when a conversion such as Y = X 2 is considered using the multiplication by two , the output value for the input value α is α 2 . Next, the output value when the difference Δ is added to the input value α is (α + Δ) 2 = α 2 + α × Δ + Δ × α + Δ 2 , where α × Δ = Δ × α and α × Δ + α × Δ = 0 ( Since both are apparent from the calculation method on the finite field GF (2 8 ), (α + Δ) 2 = α 2 + Δ 2 . Therefore, the change in the output value by adding the difference Δ to the input value is Δ 2 . That is, the change in the output value becomes a constant output difference Δ 2 regardless of the input value α, which is not a desirable property from the viewpoint of data disturbance. As a result, it is necessary to use a power multiplication of at least the third power. However, as the power number is larger, the power processing increases and the conversion processing load increases. Therefore, in this embodiment, the power multiplication of the third power is used. At this time,
(Α + Δ) 3 = (α + Δ) × (α + Δ) × (α + Δ)
= (Α 2 + α × Δ + Δ × α + Δ 2 ) × (α + Δ)
= (Α 2 + Δ 2 ) × (α + Δ)
= Α 3 + Δ × α 2 + Δ 2 × α + Δ 3
Therefore, in the case of the power multiplication of the third power, the output difference does not become constant regardless of the input value α unlike the power multiplication of the second power. When the power multiplication number N is N = 2 k (k is an integer equal to or greater than 1), the output value obtained when the power multiplication X N is used as a data conversion process and an input difference Δ is given to the input value α. (Α + Δ) ^ (2 k ) = α ^ (2 k ) + Δ ^ (2 k ), and it is understood as follows regardless of the input value. Here, “X ^ α” means X to the power of α.

k=1の場合、べき数=2であるから、上記説明から出力値は(α+Δ)2=α2+Δ2である。次にk=m、即ちべき数=2mのときに(α+Δ)^(2m)=α^(2m)+Δ^(2m)が成り立つとしたとき、(α+Δ)^(2m+1)={(α+Δ)^(2m)}2={α^(2m)+Δ^(2m)}2=α^(2m+1)+Δ^(2m+1)が成り立つのでk=m+1の時にも上記のことは成り立つ。従って、数学的帰納法より1以上の任意の整数kに対して(α+Δ)^(2k)=α^(2k)+Δ^(2k)、となることが示される。従って、べき数としては2k(kは1以上の整数)以外の値であれば良いことが分かる。即ち、本実施の形態ではべき数として3を用いているが、これは、データ変換装置での処理時間に多少の時間がかかっても良いのであれば、2k(kは1以上の整数)以外である3以上の値であれば何でも良い。 When k = 1, since the power number = 2, the output value is (α + Δ) 2 = α 2 + Δ 2 from the above description. Next, when k = m, that is, when power number = 2 m , (α + Δ) ^ (2 m ) = α ^ (2 m ) + Δ ^ (2 m ) holds, (α + Δ) ^ (2 m + 1 ) = {(α + Δ) ^ (2 m )} 2 = {α ^ (2 m ) + Δ ^ (2 m )} 2 = α ^ (2 m + 1 ) + Δ ^ (2 m + 1 ) The above holds even when k = m + 1. Therefore, the mathematical induction shows that (α + Δ) ^ (2 k ) = α ^ (2 k ) + Δ ^ (2 k ) for any integer k greater than or equal to 1. Therefore, it is understood that the power number may be a value other than 2 k (k is an integer of 1 or more). That is, although 3 is used as the power in this embodiment, this is 2 k (k is an integer of 1 or more) if the processing time in the data converter may take some time. Any value is acceptable as long as the value is 3 or more.

また、本実施の形態では、(X+K)3のようにべき乗算の前に、定数Kによる加算(排他的論理和演算)を行っているが、この定数Kを変更することによって、データ変換装置の変換処理に多くのバリエーションを与えることができる。例えば、この定数Kを認証する相手ごとに使い分けることで、認証相手ごとに認証に用いる変換処理の使い分けができることになる。 In this embodiment, addition (exclusive OR operation) using a constant K is performed before power multiplication such as (X + K) 3. By changing this constant K, the data conversion device Many variations can be given to the conversion process. For example, by using this constant K for each authentication partner, the conversion process used for authentication can be used for each authentication partner.

このとき、(X+K)3の値が0になるのは、X=Kの時だけであるから、先に述べたようなべき乗演算を用いることにより、高いデータ撹乱性能が保障できるというメリットは損なわれない。 At this time, since the value of (X + K) 3 becomes 0 only when X = K, the advantage that high data disturbance performance can be ensured by using the power calculation as described above is lost. I can't.

また、本実施の形態では、4つのデータA0〜A3に対して同一のべき数3によるべき乗算を行っているが、これは同一のべき数である必要はなく、それぞれ異なるべき数であってもよい。   In the present embodiment, power multiplication by the same power number 3 is performed on the four pieces of data A0 to A3. However, this need not be the same power number, and should be different from each other. Also good.

さらに、本実施の形態のデータ変換装置では、データ撹乱のコアとなる処理に有限体GF(28)上の演算処理を用いている。このため、Reed−Solomon符号や、BCH(Bose-Chaudhuri-Hocqenghem)符号などの誤り訂正符号化回路で使用される有限体GF(28)上の演算回路との回路共有が可能となる。このため、機器全体としての実装規模が削減でき、コンパクトな回路規模での機器実装が実現される。 Further, in the data conversion apparatus of the present embodiment, arithmetic processing on the finite field GF (2 8 ) is used for processing that becomes the core of data disturbance. For this reason, circuit sharing with an arithmetic circuit on a finite field GF (2 8 ) used in an error correction encoding circuit such as a Reed-Solomon code or a BCH (Bose-Chaudhuri-Hocqenghem) code becomes possible. For this reason, the mounting scale as the whole equipment can be reduced, and equipment mounting with a compact circuit scale is realized.

なお、本実施の形態の各データサイズはあくまでも一例であって、ここで述べたデータサイズ以外であってもかまわない。また、本実施の形態の原始多項式、剰余多項式もあくまでも一例であって、これに限られるものではない。   Note that the data sizes in the present embodiment are merely examples, and may be other than the data sizes described here. Further, the primitive polynomial and the remainder polynomial according to the present embodiment are merely examples, and are not limited thereto.

また、本実施の形態ではデータ変換装置を認証システムに用いた場合について述べているが、秘密のデータ変換を使用するようなものであれば何でも、本実施の形態のデータ変換装置が使用できる。データ変換装置の他の応用例としては、例えば図9に示すようなコンテンツ配信システムへの適用が考えられる。コンテンツ配信システムは、コンテンツを暗号化された状態で放送またはネットワークを介して配信するコンテンツ配信機器7と、前記配信される暗号化コンテンツを受信して復号化して再生する再生機器8とからなる。コンテンツ配信機器7は、データ変換装置70において鍵シードデータ(コンテンツ鍵を生成するためのシードとなるデータ)にデータ変換処理を行ない、コンテンツ鍵を生成する。そして、コンテンツ暗号化装置71において、平文のコンテンツデータに対して暗号化を行ない暗号化コンテンツデータを生成する。上記の処理の後、コンテンツ配信機器7は、鍵シードデータと暗号化コンテンツデータとを再生機器8に送付する。前記データを受信した再生機器8は、まずデータ変換装置80において、鍵シードデータに対して変換処理を行ない、コンテンツ鍵を生成する。そして、コンテンツ復号化装置81において、暗号化コンテンツデータを復号化し平文のコンテンツを得る。コンテンツの再生を認められた再生機器のみがコンテンツ配信機器が有するものと同じデータ変換装置を搭載することによって、不正規再生機器による配信コンテンツの再生を阻止することができる。   In this embodiment, the case where the data conversion apparatus is used in the authentication system is described. However, any data conversion apparatus according to this embodiment can be used as long as it uses secret data conversion. As another application example of the data conversion apparatus, for example, application to a content distribution system as shown in FIG. 9 can be considered. The content distribution system includes a content distribution device 7 that distributes content in an encrypted state via broadcast or a network, and a playback device 8 that receives the decrypted encrypted content, decrypts it, and reproduces it. The content distribution device 7 performs data conversion processing on key seed data (data serving as a seed for generating a content key) in the data conversion device 70 to generate a content key. Then, the content encryption device 71 encrypts plaintext content data to generate encrypted content data. After the above processing, the content distribution device 7 sends the key seed data and the encrypted content data to the playback device 8. The playback device 8 that has received the data first converts the key seed data in the data converter 80 to generate a content key. Then, the content decrypting device 81 decrypts the encrypted content data to obtain plain text content. By mounting the same data conversion device as that of the content distribution device only on the reproduction device that is permitted to reproduce the content, it is possible to prevent the reproduction of the distribution content by the unauthorized reproduction device.

また、本実施の形態ではデータ融合部11a〜11dにおいてデータ融合を行なう固定値K1〜K4を予め定められた固定値としているが、これらの固定値をデータ変換装置外部から入力するようにして、使用者が自由に設定できるようにしてもよい。さらに、定数記憶部22に記憶される定数C1〜C4も予め設定された固定値としているが、これらも、データ変換装置外部から入力するようにして、使用者が自由に設定できるようにしてもよい。   In the present embodiment, the fixed values K1 to K4 for performing data fusion in the data fusion units 11a to 11d are set as predetermined fixed values. However, these fixed values are input from the outside of the data converter. The user may be able to set freely. Further, the constants C1 to C4 stored in the constant storage unit 22 are also fixed values set in advance, but these are also input from the outside of the data converter so that the user can freely set them. Good.

また、本実施の形態では、有限体として有限体GF(28)を用いたが、それ以外の有限体であっても良く、例えば、有限体GF(2n)(nは自然数)であってもよい。 In the present embodiment, the finite field GF (2 8 ) is used as the finite field, but other finite fields may be used. For example, the finite field GF (2 n ) (n is a natural number). May be.

なお、ブロック図(図2など)の各機能ブロックは典型的には集積回路であるLSIとして実現される。これらは個別に1チップ化されても良いし、一部又は全てを含むように1チップ化されても良い。   Each functional block in the block diagram (such as FIG. 2) is typically realized as an LSI which is an integrated circuit. These may be individually made into one chip, or may be made into one chip so as to include a part or all of them.

図10は、図2に示したデータ変換装置と同様の機能を有するデータ変換装置を含む誤り訂正・データ変換装置のLSIの外観図を示している。図11は、誤り訂正・データ変換装置のLSIの構成を示す機能ブロック図である。   FIG. 10 shows an external view of an LSI of an error correction / data conversion apparatus including a data conversion apparatus having the same function as the data conversion apparatus shown in FIG. FIG. 11 is a functional block diagram showing the configuration of the LSI of the error correction / data conversion apparatus.

図11に示すように、誤り訂正・データ変換装置600は、データに対して誤り訂正符号化を行なった後、データ変換を行なう装置であり、リードソロモン誤り訂正符号化部601と、データ変換装置604とを備えている。   As shown in FIG. 11, error correction / data conversion apparatus 600 is an apparatus for performing data conversion after performing error correction coding on data. Reed-Solomon error correction coding section 601 and data conversion apparatus 604.

リードソロモン誤り訂正符号化部601は、入力されたデータに対してReed−Solomon誤り訂正符号化を行ない、符号化されたデータを出力する処理部であり、データ受信部602と、符号化部603とを備えている。データ受信部602は、外部より入力されるデータを受信する処理部である。符号化部603は、データ受信部602で受信されたデータに対し、有限体GF(2n)上の乗算を行なうことにより、Reed−Solomon誤り訂正符号化を行なう処理部である。符号化部603は、有限体GF(2n)上の乗算を行なう有限体乗算部110を備えている。有限体乗算部110の構成は上述したとおりである。 The Reed-Solomon error correction encoding unit 601 is a processing unit that performs Reed-Solomon error correction encoding on input data and outputs the encoded data. The data receiving unit 602 and the encoding unit 603 And. The data receiving unit 602 is a processing unit that receives data input from the outside. The encoding unit 603 is a processing unit that performs Reed-Solomon error correction encoding by multiplying the data received by the data receiving unit 602 on a finite field GF (2 n ). The encoding unit 603 includes a finite field multiplication unit 110 that performs multiplication on a finite field GF (2 n ). The configuration of the finite field multiplier 110 is as described above.

データ変換装置604は、上述のデータ変換装置1(2)と同様の構成を有するが、有限体多項式乗算部100の代わりに有限体多項式乗算部605を用い、第1変換部14の代わりに第1変換部606を用い、第2変換部15の代わりに第2変換部607を用いている。有限体多項式乗算部605は、符号化部603に設けられた有限体乗算部110を用いて有限体GF(2n)上の乗算を行なう点が有限体多項式乗算部100と異なり、その他の構成は有限体多項式乗算部100と同様である。第1変換部606は、符号化部603に設けられた有限体乗算部110を用いて有限体GF(2n)上の乗算を行なう点が第1変換部14と異なり、その他の構成は第1変換部14と同様である。第2変換部607は、符号化部603に設けられた有限体乗算部110を用いて有限体GF(2n)上の乗算を行なう点が第2変換部15と異なり、その他の構成は第2変換部15と同様である。 The data converter 604 has the same configuration as that of the data converter 1 (2) described above, but uses a finite field polynomial multiplier 605 instead of the finite field polynomial multiplier 100, and uses the first converter 14 instead of the first converter 14. One conversion unit 606 is used, and a second conversion unit 607 is used instead of the second conversion unit 15. The finite field polynomial multiplication unit 605 is different from the finite field polynomial multiplication unit 100 in that the finite field multiplication unit 110 provided in the encoding unit 603 is used to perform multiplication on the finite field GF (2 n ). Is the same as that of the finite field polynomial multiplier 100. The first conversion unit 606 is different from the first conversion unit 14 in that the first conversion unit 606 performs multiplication on the finite field GF (2 n ) using the finite field multiplication unit 110 provided in the encoding unit 603. This is the same as the one converting unit 14. The second conversion unit 607 is different from the second conversion unit 15 in that the finite field multiplication unit 110 provided in the encoding unit 603 is used to perform multiplication on the finite field GF (2 n ). This is the same as the 2 conversion unit 15.

このように、リードソロモン誤り訂正符号化部601とデータ変換装置604とで有限体乗算部110を共有化することができる。このため、LSIの回路規模を削減することができる。   As described above, the Reed-Solomon error correction encoding unit 601 and the data conversion device 604 can share the finite field multiplication unit 110. For this reason, the circuit scale of LSI can be reduced.

ここでは、LSIにより誤り訂正・データ変換装置600を実現したが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。   Here, the error correction / data conversion apparatus 600 is realized by an LSI, but may be called an IC, a system LSI, a super LSI, or an ultra LSI depending on the degree of integration.

また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。   Further, the method of circuit integration is not limited to LSI, and implementation with a dedicated circuit or a general-purpose processor is also possible. An FPGA (Field Programmable Gate Array) that can be programmed after manufacturing the LSI or a reconfigurable processor that can reconfigure the connection and setting of circuit cells inside the LSI may be used.

さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。別技術としてバイオ技術等が可能性としてありえる。   Further, if integrated circuit technology comes out to replace LSI's as a result of the advancement of semiconductor technology or a derivative other technology, it is naturally also possible to carry out function block integration using this technology. Biotechnology etc. are possible as another technology.

本発明にかかるデータ変換装置は、誤り訂正符号化回路とデータ変換回路の共有化を図ることにより、データ変換装置を含む回路全体の規模削減が可能であるという効果を有するので、例えば通信路を介して相手認証をする機能を有する機器などに有用である。また、この例に限られず、何らかのデータ変換回路の実装が必要な機器であればどのような機器であっても適用が可能である。   The data conversion apparatus according to the present invention has an effect that the scale of the entire circuit including the data conversion apparatus can be reduced by sharing the error correction coding circuit and the data conversion circuit. This is useful for a device having a function of authenticating the other party. In addition, the present invention is not limited to this example, and any device can be applied as long as it is a device that needs to implement some data conversion circuit.

本発明の実施の形態に係る認証システムの構成を示すブロック図である。It is a block diagram which shows the structure of the authentication system which concerns on embodiment of this invention. 本発明の実施の形態に係るデータ変換装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the data converter which concerns on embodiment of this invention. 本発明の実施の形態に係る有限体多項式3乗部の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the finite field polynomial cube part which concerns on embodiment of this invention. 本発明の実施の形態に係る有限体多項式乗算部の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the finite field polynomial multiplication part which concerns on embodiment of this invention. 本発明の実施の形態に係る第1変換部の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the 1st conversion part which concerns on embodiment of this invention. 本発明の実施の形態に係る第2変換部の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the 2nd conversion part which concerns on embodiment of this invention. 本発明の実施の形態に係る有限体乗算部の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the finite field multiplication part which concerns on embodiment of this invention. 本発明の実施の形態に係る有限体2倍算部の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of the finite field doubling part which concerns on embodiment of this invention. 本発明の変換装置をコンテンツ配信システムに適用した場合のシステム構成の一例を示すブロック図である。It is a block diagram which shows an example of a system structure at the time of applying the converter of this invention to a content delivery system. 誤り訂正・データ変換装置のLSIの外観図である。It is an external view of LSI of an error correction / data conversion apparatus. 誤り訂正・データ変換装置の構成の一例を示すブロック図である。It is a block diagram which shows an example of a structure of an error correction and data converter.

符号の説明Explanation of symbols

1,2,70,80 データ変換装置
3 認証装置
4 被認証装置
5 乱数生成器
6 データ比較器
7 コンテンツ配信機器
8 再生機器
10 有限体多項式3乗部
11a,11b,11c,11d,12,13,413,513,514,515 データ融合部
14 第1変換部
15 第2変換部
16,20,30,111,112,415,511 データ分割部
17,21,31,116,512 データ結合部
22,32 定数記憶部
71 コンテンツ暗号化装置
81 コンテンツ復号化装置
100 有限体多項式乗算部
101 入力制御部
102,412 出力制御部
110,210,310 有限体乗算部
113,114,115 データ加算部
410 有限体2倍算部
411 第1入力制御部
414 第2入力制御部

1, 2, 70, 80 Data conversion device 3 Authentication device 4 Device to be authenticated 5 Random number generator 6 Data comparator 7 Content distribution device 8 Playback device 10 Finite field polynomial cube 11a, 11b, 11c, 11d, 12, 13 , 413, 513, 514, 515 Data fusion unit 14 First conversion unit 15 Second conversion unit 16, 20, 30, 111, 112, 415, 511 Data division unit 17, 21, 31, 116, 512 Data combination unit 22 , 32 Constant storage unit 71 Content encryption device 81 Content decryption device 100 Finite field polynomial multiplication unit 101 Input control unit 102, 412 Output control unit 110, 210, 310 Finite field multiplication unit 113, 114, 115 Data addition unit 410 Finite Field doubling unit 411 first input control unit 414 second input control unit

Claims (6)

有限体GF(2n)上の乗算を行なう有限体乗算手段と、
複数のデータを取得する取得手段と、
前記有限体乗算手段を利用して前記複数のデータの各々に対して、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における所定のべき数による、べき乗演算に基づく変換を行うべき乗手段と、
前記べき乗手段で変換された後の前記複数のデータに基づいて出力データを生成する出力データ生成手段とを備え、
前記所定のべき数は3以上であり、かつ2m(mは1以上の整数)以外の値であり、
前記べき乗手段は、第1入力データと第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の乗算を行う有限体多項式乗算部を有し、前記複数のデータの各々について、当該データを前記第1入力データとし、初回の多項式剰余環上の乗算では当該データを前記第2入力データとし、2回目以降の多項式剰余環上の乗算では直近の多項式剰余環上の乗算結果を前記第2入力データとして、前記有限体多項式乗算部により前記第1入力データと前記第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の乗算を、(前記所定のべき数−1)回繰り返した乗算結果を変換後の値とすることにより、前記複数のデータの各々に対して、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における所定のべき数による、べき乗演算に基づく変換を行い、
前記有限体多項式乗算部は、前記第1入力データをnビットずつ分割した複数の第1分割データの各々と、前記第2入力データをnビットずつ分割した複数の第2分割データの各々とを前記有限体乗算手段の入力とすることにより得られる有限体GF(2n)上の乗算結果を加算器を用いて加算し、加算結果を結合することにより、前記第1入力データと前記第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の結果を得る
ことを特徴とするデータ変換装置。
A finite field multiplication means for performing multiplication on a finite field GF (2 n );
An acquisition means for acquiring a plurality of data;
Using each of the plurality of data using the finite field multiplication means, a power of a predetermined power on a polynomial remainder ring whose coefficient is a value on a finite field GF (2 n ) (n is a natural number) A power means to perform a conversion based on an operation;
Output data generating means for generating output data based on the plurality of data after being converted by the power means;
The predetermined power is 3 or more and a value other than 2 m (m is an integer of 1 or more);
The power means includes a finite field polynomial multiplication unit that performs multiplication on a polynomial remainder ring using a value on a finite field GF (2 n ) of the first input data and the second input data as a coefficient. For each piece of data, the data is the first input data, the first multiplication on the polynomial remainder ring is the second input data, and the second and subsequent multiplications on the polynomial remainder ring are the nearest polynomial remainder rings. Using the above multiplication result as the second input data, the finite field polynomial multiplication unit uses a polynomial remainder ring having a value on the finite field GF (2 n ) of the first input data and the second input data as a coefficient. The multiplication result obtained by repeating the multiplication of (predetermined power-1) times is used as the converted value, so that for each of the plurality of data, a finite field GF (2 n ) (n is a natural number) Polynomial remainder with above value as coefficient Perform a transformation based on a power operation with a predetermined power on the ring,
The finite field polynomial multiplying unit includes: a plurality of first divided data obtained by dividing the first input data by n bits; and a plurality of second divided data obtained by dividing the second input data by n bits. The multiplication results on the finite field GF (2 n ) obtained by using the input of the finite field multiplication means are added using an adder, and the addition results are combined, whereby the first input data and the second input data are combined. A data conversion device characterized by obtaining a result on a polynomial remainder ring having a coefficient on a value on a finite field GF (2 n ) with input data.
前記出力データ生成手段は、
前記べき乗手段で変換された後の前記複数のデータ同士で、前記多項式剰余環上の加算を行なう加算部と、
前記加算部の加算結果に対して所定の定数との前記有限体GF(2n)上の乗算を行なう乗算部とを有する
ことを特徴とする請求項1に記載のデータ変換装置。
The output data generation means includes
An adder for performing addition on the polynomial remainder ring between the plurality of data after being converted by the power means;
The data conversion apparatus according to claim 1, further comprising: a multiplication unit that performs multiplication on the addition result of the addition unit on the finite field GF (2 n ) with a predetermined constant.
有限体乗算手段、取得手段、べき乗手段および出力データ生成手段を備えるデータ変換装置が実行するデータ変換方法であって、
前記べき乗手段は、有限体多項式乗算部を有し、
前記データ変換方法は、
前記取得手段が、複数のデータを取得する取得ステップと、
前記べき乗手段が、前記複数のデータの各々に対して、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における所定のべき数による、べき乗演算に基づく変換を行なうべき乗ステップと、
前記出力データ生成手段が、前記べき乗ステップで変換された後の前記複数のデータに基づいて出力データを生成する出力データ生成ステップとを含み、
前記所定のべき数は3以上であり、かつ2m(mは1以上の整数)以外の値であり、
前記べき乗ステップでは、前記べき乗手段が、第1入力データと第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の乗算を行う前記有限体多項式乗算部を用いて、前記複数のデータの各々について、当該データを前記第1入力データとし、初回の多項式剰余環上の乗算では当該データを前記第2入力データとし、2回目以降の多項式剰余環上の乗算では直近の多項式剰余環上の乗算結果を前記第2入力データとして、前記有限体多項式乗算部により前記第1入力データと前記第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の乗算を、(前記所定のべき数−1)回繰り返した乗算結果を変換後の値とすることにより、前記複数のデータの各々に対して、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における所定のべき数による、べき乗演算に基づく変換を行い、
前記有限体多項式乗算部は、前記第1入力データをnビットずつ分割した複数の第1分割データの各々と、前記第2入力データをnビットずつ分割した複数の第2分割データの各々とを、有限体GF(2n)上の乗算を行なう前記有限体乗算手段の入力とすることにより得られる有限体GF(2n)上の乗算結果を加算器を用いて加算し、加算結果を結合することにより、前記第1入力データと前記第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の結果を得る
ことを特徴とするデータ変換方法。
A data conversion method executed by a data conversion apparatus including a finite field multiplication unit, an acquisition unit, a power unit, and an output data generation unit,
The power means includes a finite field polynomial multiplier,
The data conversion method includes:
The obtaining means for obtaining a plurality of data;
The power means transforms each of the plurality of data based on a power operation by a predetermined power on a polynomial remainder ring having a value on a finite field GF (2 n ) (n is a natural number) as a coefficient. A power step to perform,
The output data generation means includes an output data generation step of generating output data based on the plurality of data after being converted in the power step;
The predetermined power is 3 or more and a value other than 2 m (m is an integer of 1 or more);
In the power step, the power means, said finite field polynomial multiplying unit for multiplying the polynomial residue ring to finite field GF (2 n) values on the coefficient of the first input data and second input data For each of the plurality of data, the data is used as the first input data, and in the first multiplication on the polynomial remainder ring, the data is used as the second input data. Then, the multiplication result on the nearest polynomial remainder ring is used as the second input data, and the value on the finite field GF (2 n ) of the first input data and the second input data is set as a coefficient by the finite field polynomial multiplication unit. The multiplication result obtained by repeating the multiplication on the polynomial remainder ring (the predetermined power-1) times is used as the converted value, so that for each of the plurality of data, a finite field GF (2 n ) (N is a natural number ) Perform a transformation based on a power operation with a predetermined power on the polynomial remainder ring with the above values as coefficients,
The finite field polynomial multiplying unit includes: a plurality of first divided data obtained by dividing the first input data by n bits; and a plurality of second divided data obtained by dividing the second input data by n bits. the multiplication result of the finite field GF (2 n) finite obtained by the input of the finite field multiplying unit for performing multiplication on GF (2 n) is added with an adder, coupled to the addition result By doing so, a result on a polynomial remainder ring having a value on a finite field GF (2 n ) of the first input data and the second input data as a coefficient is obtained.
前記出力データ生成手段は加算部と乗算部とを含み、
前記出力データ生成ステップは、
前記加算部が、前記べき乗ステップで変換された後の前記複数のデータ同士で、前記多項式剰余環上の加算を行なう加算サブステップと、
前記乗算部が、前記加算サブステップの加算結果に対して所定の定数との前記有限体GF(2n)上の乗算を行なう乗算サブステップとを含む
ことを特徴とする請求項に記載のデータ変換方法。
The output data generation means includes an adder and a multiplier.
The output data generation step includes
An addition sub-step for performing addition on the polynomial remainder ring between the plurality of data after the addition unit is converted in the power step;
The multiplication unit, according to claim 3, characterized in that it comprises a multiplication substep on the addition result of the adding sub-step performing the finite field GF (2 n) on the multiplication of the predetermined constant Data conversion method.
有限体GF(2n)(nは自然数)上の乗算を行なう有限体乗算手段と、
複数のデータを取得する取得手段と、
前記有限体乗算手段を利用して前記複数のデータの各々に対して、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における所定のべき数による、べき乗演算に基づく変換を行なうべき乗手段と、
前記べき乗手段で変換された後の前記複数のデータに基づいて出力データを生成する出力データ生成手段とを備え、
前記所定のべき数は3以上であり、かつ2m(mは1以上の整数)以外の値であり、
前記べき乗手段は、第1入力データと第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の乗算を行う有限体多項式乗算部を有し、前記複数のデータの各々について、当該データを前記第1入力データとし、初回の多項式剰余環上の乗算では当該データを前記第2入力データとし、2回目以降の多項式剰余環上の乗算では直近の多項式剰余環上の乗算結果を前記第2入力データとして、前記有限体多項式乗算部により前記第1入力データと前記第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の乗算を、(前記所定のべき数−1)回繰り返した乗算結果を変換後の値とすることにより、前記複数のデータの各々に対して、有限体GF(2n)(nは自然数)上の値を係数とする多項式剰余環上における所定のべき数による、べき乗演算に基づく変換を行い、
前記有限体多項式乗算部は、前記第1入力データをnビットずつ分割した複数の第1分割データの各々と、前記第2入力データをnビットずつ分割した複数の第2分割データの各々とを前記有限体乗算手段の入力とすることにより得られる有限体GF(2n)上の乗算結果を加算器を用いて加算し、加算結果を結合することにより、前記第1入力データと前記第2入力データとの有限体GF(2)上の値を係数とする多項式剰余環上の結果を得る
ことを特徴とする集積回路。
Finite field multiplication means for performing multiplication on a finite field GF (2 n ) (n is a natural number);
An acquisition means for acquiring a plurality of data;
Using each of the plurality of data using the finite field multiplication means, a power of a predetermined power on a polynomial remainder ring whose coefficient is a value on a finite field GF (2 n ) (n is a natural number) A power means to perform a conversion based on an operation;
Output data generating means for generating output data based on the plurality of data after being converted by the power means;
The predetermined power is 3 or more and a value other than 2 m (m is an integer of 1 or more);
The power means includes a finite field polynomial multiplication unit that performs multiplication on a polynomial remainder ring using a value on a finite field GF (2 n ) of the first input data and the second input data as a coefficient. For each piece of data, the data is the first input data, the first multiplication on the polynomial remainder ring is the second input data, and the second and subsequent multiplications on the polynomial remainder ring are the nearest polynomial remainder rings. Using the above multiplication result as the second input data, the finite field polynomial multiplication unit uses a polynomial remainder ring having a value on the finite field GF (2 n ) of the first input data and the second input data as a coefficient. The multiplication result obtained by repeating the multiplication of (predetermined power-1) times is used as the converted value, so that for each of the plurality of data, a finite field GF (2 n ) (n is a natural number) Polynomial remainder with above value as coefficient Perform a transformation based on a power operation with a predetermined power on the ring,
The finite field polynomial multiplying unit includes: a plurality of first divided data obtained by dividing the first input data by n bits; and a plurality of second divided data obtained by dividing the second input data by n bits. The multiplication results on the finite field GF (2 n ) obtained by using the input of the finite field multiplication means are added using an adder, and the addition results are combined, whereby the first input data and the second input data are combined. An integrated circuit characterized by obtaining a result on a polynomial remainder ring whose coefficient is a value on a finite field GF (2 n ) with input data.
コンピュータを、請求項1または請求項2に記載のデータ変換装置として機能させるためのプログラム。 The program for functioning a computer as a data converter of Claim 1 or Claim 2 .
JP2004274103A 2003-10-14 2004-09-21 Data conversion apparatus and method Expired - Fee Related JP4851077B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004274103A JP4851077B2 (en) 2003-10-14 2004-09-21 Data conversion apparatus and method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003353439 2003-10-14
JP2003353439 2003-10-14
JP2004274103A JP4851077B2 (en) 2003-10-14 2004-09-21 Data conversion apparatus and method

Publications (3)

Publication Number Publication Date
JP2005141198A JP2005141198A (en) 2005-06-02
JP2005141198A5 JP2005141198A5 (en) 2007-08-30
JP4851077B2 true JP4851077B2 (en) 2012-01-11

Family

ID=34702806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004274103A Expired - Fee Related JP4851077B2 (en) 2003-10-14 2004-09-21 Data conversion apparatus and method

Country Status (1)

Country Link
JP (1) JP4851077B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007013835A (en) * 2005-07-04 2007-01-18 Nippon Telegr & Teleph Corp <Ntt> Encoded data decoding device and its method
JP5354914B2 (en) * 2008-01-18 2013-11-27 三菱電機株式会社 Encryption processing device, decryption processing device, and program
JP4612698B2 (en) * 2008-02-28 2011-01-12 日本電信電話株式会社 Polynomial multiplier, polynomial multiplication method and program

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09185518A (en) * 1995-12-28 1997-07-15 Toshiba Corp System and device for generating power of source element alpha
JPH1152854A (en) * 1997-07-31 1999-02-26 Nippon Telegr & Teleph Corp <Ntt> Arithmetic unit device on finite field and group computing device on elliptic curve
JP2000321979A (en) * 1999-05-14 2000-11-24 Matsushita Electric Ind Co Ltd Polynomial arithmetic device, device for calculating order of elliptic curve, device for generating elliptic curve, and cryptographic system for elliptic curve
EP1217750A2 (en) * 2000-12-15 2002-06-26 Alcatel USA Sourcing, L.P. Optimized parallel in parallel out GF(2M) squarer for FEC decoder
JP4676071B2 (en) * 2001-02-13 2011-04-27 富士通株式会社 Power-residue calculation method, reciprocal calculation method and apparatus
JP3732450B2 (en) * 2002-03-19 2006-01-05 沖電気工業株式会社 Remainder calculator
JP2004164383A (en) * 2002-11-14 2004-06-10 Sony Corp Circuit constitution method, method and program

Also Published As

Publication number Publication date
JP2005141198A (en) 2005-06-02

Similar Documents

Publication Publication Date Title
EP1673690B1 (en) Data converter
JP4127472B2 (en) Data conversion apparatus, data conversion method and program for data conversion apparatus, and computer-readable recording medium
JP3992742B2 (en) Encryption method and apparatus for nonlinearly combining data blocks and keys
JP3225440B2 (en) Digital signal block conversion device and method of using the same
US8892908B2 (en) Cryptography module for use with fragmented key and methods for use therewith
JP4820821B2 (en) Transpose data conversion for security enhancement
EP1081889A2 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
Gutub et al. Hybrid crypto hardware utilizing symmetric-key and public-key cryptosystems
JP2005215688A (en) Hardware encryption/decryption apparatus using s-box operation, and method for the same
TW200828936A (en) Encryption processor, encryption processing method, and computer program
WO2008049046A2 (en) Method for securely extending key stream to encrypt high-entropy data
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
EP0996250A2 (en) Efficient block cipher method
JP4851077B2 (en) Data conversion apparatus and method
US8484471B2 (en) Multi-party distributed multiplication device, multi-party distributed multiplication system and method
Leon et al. Performance analysis of the confidentiality security service in the IEEE 802.11 using WEP, AES-CCM, and ECC
Ramya et al. Implementation and Analysis of Feistel and SPN Structured Ciphers-CLEFIA and PRESENT
JP3473171B2 (en) Sequential encryption
WO2001039417A2 (en) Methods and apparatus for keystream generation
JP2008009051A (en) Decryption device, decryption method, decryption program, and key generating device
JP4141773B2 (en) Decryption processing device
KR100679627B1 (en) Ciphering and Deciphering Method
CN116366251A (en) Grating public key data encryption and decryption method and key packaging method based on vector decoding
JP4015608B2 (en) Public key cryptosystem and decryption device
JP2021047371A (en) Information processing device, information processing method and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070718

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070718

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110105

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110705

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110808

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111020

R150 Certificate of patent or registration of utility model

Ref document number: 4851077

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees