JP2002082609A - Arithmetic unit using requested calculation, and recording medium - Google Patents

Arithmetic unit using requested calculation, and recording medium

Info

Publication number
JP2002082609A
JP2002082609A JP2000270367A JP2000270367A JP2002082609A JP 2002082609 A JP2002082609 A JP 2002082609A JP 2000270367 A JP2000270367 A JP 2000270367A JP 2000270367 A JP2000270367 A JP 2000270367A JP 2002082609 A JP2002082609 A JP 2002082609A
Authority
JP
Japan
Prior art keywords
value
calculation
secret information
external device
requesting
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
JP2000270367A
Other languages
Japanese (ja)
Other versions
JP4706811B2 (en
Inventor
Kazushige Maeno
一茂 前野
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 JP2000270367A priority Critical patent/JP4706811B2/en
Publication of JP2002082609A publication Critical patent/JP2002082609A/en
Application granted granted Critical
Publication of JP4706811B2 publication Critical patent/JP4706811B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide an arithmetic unit for which security is ensured when a fast arithmetic operation is performed by using a requested calculation. SOLUTION: When obtaining an inverse element of secret information, an element of a finite field, a personal box 102 multiplies the secret information by a random number and requests a personal computer 101 to calculate the inverse element of the multiplication result. The personal box receives the calculation result from the computer 101, and then it calculates the inverse element of the secret information by multiplying the calculation result by the random number.

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は、暗号化や復号化、
或いはデジタル(電子)署名などを、依頼計算を用いて
実現するための演算装置に関する。
[0001] The present invention relates to encryption and decryption,
Alternatively, the present invention relates to an arithmetic device for realizing a digital (electronic) signature or the like using a request calculation.

【0002】[0002]

【従来の技術】近年、情報のデジタル化によって様々な
サービスが提供され、快適な生活環境が整備されつつあ
る。例えば、グローバルな情報インフラストラクチャで
あるインターネットの普及により、我々はそれに接続さ
れた世界中のサーバが提供するサービスの恩恵を受ける
ことができる。携帯電話機の普及は、必要なときに相手
とコミュニケーションをとることを可能とし、通話以外
の付加サービスの利用や所望の情報へのアクセスも随
時、行えるようにしている。クレジットカードやプリペ
イドカードなどは、現金のやりとりによる煩わしさを解
消してくれる。デジタル化された情報の広域ネットワー
ク化は、上述したような利便性を我々に提供してくれる
反面、不正利用による被害を受けやすくなってしまう。
すなわち盗聴によるプライバシーの侵害や個人情報の流
出、複写、改竄、なりすまし、などによるシステムの不
正利用などがそれである。そのような不正利用を回避す
る解決策として暗号技術が注目されている。なかでも、
有限体や楕円曲線上の演算を利用した暗号技術の研究開
発が盛んに行われている。例えば、個人情報が格納され
たICカードを用いた電子決済などが注目されている
が、電子決済には電子認証や電子署名といった技術が重
要となってくる。一般に、ICカードは高セキュリティ
な電子認証、電子署名の機能を有しているものの、IC
カードは、その大きさや、電源といったものによる制約
から搭載可能なCPUの演算能力が非力であり、高セキ
ュリティのための暗号化、復号化、或いは電子署名に関
する膨大な演算には非常に時間がかかっていた。そこ
で、従来から、依頼計算を行うことで演算に要する時間
の短縮を図ることが行われている。なお、ここでの依頼
計算とは、演算能力の優れた別の装置に演算を依頼し、
演算結果を得ることで演算時間の短縮を図るものであ
る。ここで、ICカードが行う電子署名の一例として、
楕円DSAアルゴリズムを用いた場合について説明する
と、署名“r”と“t”は次の式(1)、(2)、
(3)のように求められる。但し、“k”は署名者が作
る乱数、“G”はベースポイント、“(x,y)”は座
標、“n”はベースポイントGの位数、“e”は署名を
したいデータのハッシュ値、“s”は署名者の秘密鍵で
あるとする。
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 proliferation of the Internet, a global information infrastructure, we can benefit from the services provided by servers connected to it around the world. 2. Description of the Related Art The spread of mobile phones has made it possible to communicate with other parties when necessary, and to use additional services other than telephone calls and to access desired information at any time. Credit cards and prepaid cards eliminate the hassle of exchanging cash. The wide-area networking of digitized information provides us with the above-mentioned convenience, but also makes it more susceptible to unauthorized use.
In other words, privacy infringement due to eavesdropping and unauthorized use of the system due to leakage, copying, falsification, spoofing of personal information, and the like. Cryptographic technology has attracted attention as a solution to avoid such unauthorized use. Above all,
Research and development of cryptographic techniques using operations on finite fields and elliptic curves have been actively conducted. For example, electronic payment using an IC card in which personal information is stored has attracted attention, but techniques such as electronic authentication and electronic signature have become important for electronic payment. Generally, IC cards have high-security electronic authentication and electronic signature functions,
Due to the size and power supply limitations of the card, the computational power of the CPU that can be installed is weak, and the huge amount of computation related to encryption, decryption, or digital signature for high security takes a very long time. I was Therefore, conventionally, it has been attempted to reduce the time required for the calculation by performing the request calculation. In addition, the request calculation here is a request to another device with a high calculation capability for calculation,
It is intended to shorten the calculation time by obtaining the calculation result. Here, as an example of an electronic signature performed by an IC card,
Explaining the case where the elliptical DSA algorithm is used, the signatures “r” and “t” are expressed by the following equations (1), (2),
It is required as in (3). Here, “k” is a random number created by the signer, “G” is a base point, “(x, y)” is a coordinate, “n” is an order of the base point G, and “e” is a hash of data to be signed. The value "s" is assumed to be the signer's private key.

【0003】 (x,y)=[k]G ・・・・・(1) r=x mod n ・・・・・(2) t=k-1×(e+s×r) mod n ・・・・・(3) つまり、上述の式(1)は、楕円曲線上の点の集合のベ
ースポイントGを、署名者が作る乱数kの数だけ加算し
て求めた点を、座標(x,y)として表す。以下、
[k]Gのような計算を整数倍算という。式(2)は、
前記座標のxの値を、ベースポイントGの位数nで除算
して剰余rを求める。そして、式(3)は、前記剰余r
と署名者の秘密鍵sを乗算したものに、署名をしたいデ
ータのハッシュ値eを加算し、これに署名者が作る乱数
kの逆元k-1を乗算した値を、ベースポイントGの位数
nで除算して剰余tを求める。このようにして求めた
“r”と“t”により、電子署名値“r”“t”を生成
するのである。この一連の演算において特に多大な処理
時間を要する箇所として、[k-1]を求める有限体上の
逆元計算部分と、「[k]G」を求める楕円曲線上の点
の整数倍算部分が挙げられる。
(X, y) = [k] G (1) r = x mod n (2) t = k -1 × (e + s × r) mod n (3) In other words, the above equation (1) calculates a point obtained by adding the base point G of a set of points on the elliptic curve by the number of random numbers k created by the signer at coordinates (x, y). ). Less than,
[K] A calculation like G is called integer multiplication. Equation (2) is
The value of x at the coordinates is divided by the order n of the base point G to obtain a remainder r. Then, equation (3) is obtained by calculating the remainder r
And to those obtained by multiplying the secret key s of the signer, by adding the hash value e of the data that you want to sign, to which the value obtained by multiplying the inverse element k -1 of the random number k the signer make, position of the base point G The remainder t is obtained by dividing by the number n. The digital signature values "r" and "t" are generated from "r" and "t" obtained in this manner. In this series of operations, a portion requiring a particularly long processing time is an inverse element calculation part on a finite field for obtaining [k -1 ] and an integer multiplication part for a point on an elliptic curve for obtaining “[k] G”. Is mentioned.

【0004】以下に、逆元計算と整数倍算について説明
する。まず、逆元計算を、有限体の一つであるガロア体
GF(p)を例にとって説明する。ガロア体は周知のも
のであることから、詳細な説明は省略するが、pを素数
とするガロア体GF(p)はp個の元からなる集合であ
り、通常は0以上p未満の整数を代表とする。そのガロ
ア体GF(p)上では2種類の演算、即ち加算と乗算が
定義される。ガロア体GF(p)上の二つの元a、bの
ガロア体GF(p)上における乗算は、元a、bを整数
上で乗算した後に、素数pで除算して剰余を求めること
で実施される。即ちcを乗算結果とすると、 c = a・b mod p と記述できる。逆元計算とは、ガロア体GF(p)上の
元aにおいて、 1 = a・b mod p となる元bを求める計算で、一般には指数計算法が用い
られる。それは b=a-1 mod p で表される。上記ガロア体GF(p)を例にとって説明
すると、逆元は a-1 = ap-2mod p で求めることができる。しかし、素数pは安全を確保す
るために非常に大きな数となっているため、多大な処理
時間を要することは周知の通りである。次に、整数倍算
を、群の一つである楕円曲線上の有理点群を例にとって
説明する。なお、楕円曲線上の有理点群は周知のもので
あることから詳細な説明は省略するが、演算として加算
が定義される。この加算を用いて、減算や整数倍算が実
現される。つまり、楕円曲線上の有理点をP,Q,Rと
し、kを整数とすれば、加算、減算、整数倍算は次のよ
うに表現される。 Q=P+P ・・・・・加算 Q=P+(−R) ・・・・・減算 Q=[k]P ・・・・・整数倍算 但し、P+(−R)=0であり、この場合の0は加法単
位元である。このように、整数倍算は、Q=[k]Pの
ように表され、それは Q=P+P+・・・・・+P (k個のPを加算) を意味している。但し、Q、Pは有限体上に定義された
楕円曲線上の有理点であり、kはベースポイントGの位
数未満の整数である。kのビット数をnとすると、kは k=kn-1・2n-1+・・・+k1・2+k0 と表される。その2進表現は、例えば k=(10100101・・・0101) である。このことから、整数倍算の一般的な方法である
バイナリーメソッド(binary method)を用いて、従
来、Qは以下のようにして求めていた。図5に示すフロ
ーチャートを参照して具体的に説明する。
[0004] In the following, inverse element calculation and integer multiplication will be described. First, the inverse element calculation will be described using a Galois field GF (p), which is one of the finite fields, as an example. Since the Galois field is well known, a detailed description is omitted, but a Galois field GF (p) having p as a prime number is a set of p elements, and is usually an integer of 0 or more and less than p. Be the representative. On the Galois field GF (p), two types of operations are defined, namely, addition and multiplication. The multiplication of the two elements a and b on the Galois field GF (p) on the Galois field GF (p) is performed by multiplying the elements a and b on integers and then dividing by the prime number p to obtain the remainder. Is done. That is, if c is a multiplication result, it can be described as c = abmod p. The inverse element calculation is a calculation for obtaining an element b that satisfies 1 = abmod p in an element a on a Galois field GF (p). In general, an exponential calculation method is used. It is represented by b = a -1 mod p. Taking the Galois field GF (p) as an example, the inverse can be obtained by a −1 = ap −2 mod p. However, it is well known that the prime number p requires a very long processing time because it is a very large number for ensuring safety. Next, integer multiplication will be described using a rational point group on an elliptic curve which is one of the groups as an example. Note that the rational point group on the elliptic curve is well-known, and therefore detailed description is omitted, but addition is defined as an operation. Using this addition, subtraction and integer multiplication are realized. That is, if rational points on an elliptic curve are P, Q, and R, and k is an integer, addition, subtraction, and integer multiplication are expressed as follows. Q = P + P ········ Addition Q = P + (− R) ······ Subtraction Q = [k] P ······ Integer multiplication However, P + (− R) = 0, in this case 0 is an additive unit element. Thus, integer multiplication is represented as Q = [k] P, which means Q = P + P +... + P (k Ps are added). Here, Q and P are rational points on an elliptic curve defined on a finite field, and k is an integer less than the order of the base point G. When k number of bits of the n, k is expressed as k = k n-1 · 2 n-1 + ··· + k 1 · 2 + k 0. The binary representation is, for example, k = (10100101... 0101). From this, conventionally, Q was determined as follows using a binary method which is a general method of integer multiplication. This will be specifically described with reference to the flowchart shown in FIG.

【0005】先ず、ステップ501では、Q(変数)に
単位元0を代入する。続くステップ502では、変数i
に、nから1を引いた値(=n−1)を代入する。その
後はステップ503に移行する。ステップ503では、
変数iの値が0より小さいか否か判定する。その値が0
より小さい場合、判定はYESとなり、一連の処理を終
了してQを返す(Qの値を確定させる)。そうでない場
合には、判定はNOとなり、ステップ504に移行す
る。ステップ504では、kの変数iの値で指定される
ビットであるkiの値が1か否か判定する。そのkiの値
が1でなかった場合、判定はNOとなり、ステップ50
5でQに、それまでの値にその値を加算した値(=Q+
Q)を代入し、更にステップ506で変数iの値をデク
リメントした後、上記ステップ503に戻る。そうでな
い場合には、判定はYESとなり、ステップ507でQ
に、それまでの値にPの値を加算した値(=Q+P)を
代入した後、ステップ505に移行する。このようにし
て、変数iの値を順次、デクリメントしながら、その変
数iの値で指定されるビットkiの値が1であればQの
値にPの値を足し込みを行い、Qの値にその値を足し込
む操作を最上位ビット(kn-1)から最下位ビット
(k0)まで繰り返し行う。それにより、最終的なQの
値を求めていた。しかし、上述したような整数倍算は、
演算量が多いため、逆元を求める場合と同様に、多大の
処理時間を要することは周知の通りである。上記整数倍
算や逆元計算は、上述の依頼計算を行うことで演算を高
速に行うことができる。
First, in step 501, a unit element 0 is substituted for Q (variable). In the following step 502, the variable i
Is substituted by a value obtained by subtracting 1 from n (= n-1). After that, it moves to step 503. In step 503,
It is determined whether the value of the variable i is smaller than 0. Its value is 0
If it is smaller, the determination is YES, a series of processing is completed, and Q is returned (the value of Q is determined). Otherwise, the determination is no and the process moves to step 504. In step 504, the value of a bit specified by the value of the variable i k k i determines whether 1. If the value of k i is not 1, the determination is NO, and step 50
5, the value obtained by adding the value to the previous value to Q (= Q +
Q) is substituted, and the value of the variable i is decremented in step 506, and the process returns to step 503. Otherwise, the determination is yes and Q
Then, the value (= Q + P) obtained by adding the value of P to the previous value is substituted for the value, and the process proceeds to step 505. In this manner, sequentially the value of the variable i, while decrementing the value of the bit k i specified by the value of the variable i is performed summation the value of P to a value of Q 1, then the Q The operation of adding the value to the value is repeated from the most significant bit (k n-1 ) to the least significant bit (k 0 ). Thereby, the final value of Q was obtained. However, integer multiplication as described above
It is well known that a large amount of calculation requires a large amount of processing time as in the case of obtaining the inverse. The above-described integer multiplication and inverse element calculation can be performed at high speed by performing the above-described request calculation.

【0006】[0006]

【発明が解決しようとする課題】しかしながら、暗号技
術において、普通、上記a、kは漏洩を防ぐべき秘密情
報である。このため、単に依頼計算を行うと、その秘密
情報が漏洩する危険性がある。これは、安全性が低下す
ることを意味し、非常に望ましくない。本発明は、依頼
計算を用いて演算を高速に行う際の安全性を確保した演
算装置を提供することを目的とする。
However, in the encryption technology, a and k are usually secret information to be prevented from leaking. Therefore, if the request calculation is simply performed, the confidential information may be leaked. This means that security is reduced and is very undesirable. SUMMARY OF THE INVENTION It is an object of the present invention to provide an arithmetic device that ensures safety when performing an operation at high speed using a request calculation.

【0007】[0007]

【課題を解決するための手段】本発明の第1〜第3の態
様の依頼計算を用いた演算装置は、共に、外部装置と通
信可能なデータ処理装置に搭載され、該外部装置に計算
を依頼し、該依頼した計算結果を用いて演算を行うこと
を前提とし、以下の手段を具備する。第1の態様の演算
装置は、有限体上の元である秘密情報の逆元を算出する
場合に、該秘密情報に操作を施し、該操作を施して得ら
れる算出値の逆元の計算を外部装置に対して依頼する計
算依頼手段と、計算依頼手段が依頼することによって外
部装置から送信されてくる計算結果に、秘密情報に施し
た操作に応じた操作を行うことにより、該秘密情報の逆
元を算出する逆元算出手段と、を具備する。なお、上記
の構成において、計算依頼手段は、有限体上の乱数を生
成して秘密情報に乗算する操作を行い、逆元算出手段
は、外部装置からの計算結果に乱数を掛ける操作を行う
ことにより、秘密情報の逆数を算出する、ことが望まし
い。また、秘密情報に逆元算出手段が算出した逆元を掛
けた値が1になるか否か確認することにより検算を行
う、ことが望ましい。第2の態様の演算装置は、秘密情
報と所定値との整数倍算を行う場合に、外部装置に対し
て、該秘密情報の値として取りうる最大値以上の数値の
ビット数を複数に分割し、該分割したビット数別に、該
分割したビット数で表現できる数値毎に該値との整数倍
算を依頼する計算依頼手段と、計算依頼手段が依頼する
ことで外部装置から分割したビット数別に送信されてく
る整数倍算結果のなかから、秘密情報の値を基に必要な
整数倍算結果を選別し、該選別した整数倍算結果を加算
していくことにより、秘密情報と所定値との整数倍算結
果を算出する整数倍算結果算出手段と、を具備する。第
3の態様の演算装置は、秘密情報と所定値との整数倍算
を行う場合に、外部装置に対して、該秘密情報の値とし
て取りうる最大値以上の数値のビット数で表現できる数
値毎に該値との整数倍算を依頼する計算依頼手段と、計
算依頼手段が依頼することで外部装置から送信されてく
る整数倍算結果のなかから、秘密情報の値を基に必要な
整数倍算結果を選別することにより、秘密情報と所定値
との整数倍算結果を求める整数倍算結果算出手段と、を
具備する。なお、上記第2、或いは第3の態様の構成で
は、外部装置に対する計算の依頼を行って、秘密情報の
符号を逆にした値と所定値の整数倍算した値を求め、該
求めた値と整数倍算結果算出手段が算出した整数倍算結
果を加算した値が加法単位元である0となるか否か確認
することにより検算を行う、ことが望ましい。
The arithmetic devices using the request calculation according to the first to third aspects of the present invention are both mounted on a data processing device capable of communicating with an external device, and the calculation is performed by the external device. It is assumed that a request is made and an operation is performed using the requested calculation result, and the following means are provided. When calculating the inverse of secret information that is an element on a finite field, the arithmetic device of the first aspect performs an operation on the secret information, and calculates the inverse of a calculated value obtained by performing the operation. A calculation request unit for requesting the external device; and a calculation result transmitted from the external device as requested by the calculation request unit, performing an operation according to an operation performed on the secret information, thereby obtaining the secret information. Inverse element calculating means for calculating an inverse element. In the above configuration, the calculation request unit performs an operation of generating a random number on a finite field and multiplying the secret information, and the inverse calculation unit performs an operation of multiplying the calculation result from the external device by the random number. It is desirable to calculate the reciprocal of the secret information. Further, it is desirable to perform the verification by confirming whether or not a value obtained by multiplying the secret information by the inverse element calculated by the inverse element calculation means becomes 1. The arithmetic device according to the second aspect, when performing integer multiplication of the secret information and the predetermined value, divides the number of bits of a numerical value equal to or larger than the maximum value that can be taken as the value of the secret information into an external device into a plurality of pieces. A calculation request unit for requesting an integer multiplication with the value for each numerical value that can be represented by the divided bit number for each of the divided bit numbers, and a bit number divided from an external device by requesting the calculation request unit. The required integer multiplication result is selected from the separately transmitted integer multiplication results based on the value of the secret information, and the selected integer multiplication result is added. And an integer multiplication result calculating means for calculating an integer multiplication result of the above. The arithmetic device according to the third aspect, when performing integer multiplication of the secret information and the predetermined value, provides a numerical value that can be represented by an external device with the number of bits of a numerical value equal to or larger than the maximum value that can be taken as the value of the secret information. Calculation request means for requesting an integer multiplication with the value for each time, and an integer required based on the value of the secret information from among the integer multiplication results transmitted from the external device when requested by the calculation request means. An integer multiplication result calculating means for selecting the multiplication result to obtain an integer multiplication result between the secret information and the predetermined value. In the configuration of the second or third aspect, a request for calculation is made to an external device, and a value obtained by multiplying a value obtained by reversing the sign of the secret information and a predetermined value by an integer is obtained. It is preferable to perform verification by confirming whether a value obtained by adding the integer multiplication result calculated by the integer multiplication result calculation means and the integer multiplication result becomes 0 which is an additive unit element.

【0008】第1〜第3の態様において、上記秘密情報
は、暗号化、該暗号化された情報の復号化、或いはデジ
タル署名に用いられるデータであることが望ましい。本
発明の第1〜第3の態様の記録媒体は、共に、外部装置
と通信可能なデータ処理装置が読み取り可能なものであ
り、以下のようなプログラムを記録している。第1の態
様の記録媒体は、有限体上の元である秘密情報の逆元を
算出する場合に、該秘密情報に操作を施し、該操作を施
して得られる算出値の逆元の計算を外部装置に対して依
頼する機能と、依頼する機能により依頼することによっ
て外部装置から送信されてくる計算結果に、秘密情報に
施した操作に応じた操作を行うことにより、該秘密情報
の逆元を算出する機能と、を実現させるプログラムを記
録している。第2の態様の記録媒体は、秘密情報と所定
値との整数倍算を行う場合に、外部装置に対して、該秘
密情報の値として取りうる最大値以上の数値のビット数
を複数に分割し、該分割したビット数別に、該分割した
ビット数で表現できる数値毎に該値との整数倍算を依頼
する機能と、依頼する機能により依頼することで外部装
置から分割したビット数別に送信されてくる整数倍算結
果のなかから、秘密情報の値を基に必要な整数倍算結果
を選別し、該選別した整数倍算結果を加算していくこと
により、秘密情報と所定値との整数倍算結果を算出する
機能と、を実現させるプログラムを記録している。第3
の態様の記録媒体は、秘密情報に所定値の整数倍算を行
う場合に、外部装置に対して、該秘密情報の値として取
りうる最大値以上の数値のビット数で表現できる数値毎
に該値との整数倍算を依頼する機能と、依頼する機能に
より依頼することで外部装置から送信されてくる整数倍
算結果のなかから、秘密情報の値を基に必要な計算結果
を選別することにより、秘密情報と所定値との整数倍算
結果を求める機能と、を実現させるプログラムを記録し
ている。本発明では、有限体上の元である秘密情報の逆
元を算出する場合に、該秘密情報に操作を施し、該操作
を施して得られる算出値の逆元の計算を外部装置に対し
て依頼し、その外部装置から送信されてくる計算結果
に、秘密情報に施した操作に応じた操作を行うことによ
り、該秘密情報の逆元を算出する。秘密情報に操作を行
い、その操作を行って得られる算出値の逆元の計算を依
頼することにより、外部装置、或いはそれにアクセス可
能な装置では、その算出値から秘密情報を特定できなく
なる。この結果、依頼計算を用いて演算を高速に行う場
合において、安全性を確保することが可能となる。
In the first to third aspects, it is desirable that the secret information is data used for encryption, decryption of the encrypted information, or digital signature. Each of the recording media according to the first to third aspects of the present invention is readable by a data processing device capable of communicating with an external device, and stores the following programs. When calculating the inverse of secret information that is an element on a finite field, the recording medium of the first aspect performs an operation on the secret information and calculates the inverse of a calculated value obtained by performing the operation. A function for requesting an external device and an operation corresponding to the operation performed on the secret information are performed on the calculation result transmitted from the external device by requesting the function using the requesting function, so that the inverse of the secret information is obtained. And a program for realizing the function. The recording medium according to the second aspect divides the number of bits of a numerical value equal to or larger than the maximum value that can be taken as a value of the secret information into an external device when performing an integral multiplication of the secret information and a predetermined value. Then, for each of the divided bits, a function for requesting an integer multiplication with the value for each numerical value that can be represented by the divided bit number, and for each of the divided bits transmitted from an external device by requesting by the request function From the obtained integer multiplication results, the necessary integer multiplication results are selected based on the value of the secret information, and the selected integer multiplication results are added, so that the secret information and the predetermined value are compared. A function for calculating an integer multiplication result and a program for realizing the function are recorded. Third
The recording medium according to the aspect, when performing an integral multiplication of a predetermined value on the secret information, provides the external device with each of the numerical values that can be expressed by the number of bits of a numerical value equal to or larger than the maximum value that can be taken as the value of the secret information. Select the required calculation result based on the value of the secret information from the function of requesting the integer multiplication with the value and the result of the integer multiplication transmitted from the external device by requesting by the requesting function. Thus, a program for realizing a function of obtaining an integer multiplication result of secret information and a predetermined value is recorded. In the present invention, when calculating the inverse of secret information that is an element on a finite field, an operation is performed on the secret information, and the calculation of the inverse of the calculated value obtained by performing the operation is performed on an external device. A request is made and an operation corresponding to the operation performed on the secret information is performed on the calculation result transmitted from the external device, thereby calculating the inverse of the secret information. By performing an operation on the secret information and requesting the calculation of the inverse of the calculated value obtained by performing the operation, the external device or a device capable of accessing the external device cannot identify the secret information from the calculated value. As a result, safety can be ensured when performing calculations at high speed using request calculations.

【0009】本発明では、秘密情報と所定値との整数倍
算を行う場合に、外部装置に対して、該秘密情報の値と
して取りうる最大値以上の数値のビット数を複数に分割
し、該分割したビット数別に、該分割したビット数で表
現できる数値毎に該値との整数倍算を依頼し、その外部
装置から分割したビット数別に送信されてくる整数倍算
結果のなかから、秘密情報の値を基に必要な整数倍算結
果を選別し、該選別した整数倍算結果を加算していくこ
とにより、秘密情報と所定値との整数倍算結果を算出す
る。本発明では、秘密情報と所定値を整数倍算する演算
を行う場合に、外部装置に対して、該秘密情報の値とし
て取りうる最大値以上の数値のビット数で表現できる数
値毎に該値との整数倍算を依頼し、その外部装置から送
信されてくる計算結果のなかから、秘密情報の値を基に
必要な計算結果を選別することにより、秘密情報と所定
値を整数倍算した結果を求める。上述したようにして、
望む整数倍算結果が得られる計算を含め、複数の計算結
果を求める計算を外部装置に依頼することにより、外部
装置、或いはそれにアクセス可能な装置では、計算を依
頼した側がどの計算結果を必要としているのか特定でき
なくなる。この結果、依頼計算を用いて演算を高速に行
う場合にあっても安全性を確保することが可能となる。
According to the present invention, when performing integer multiplication of secret information and a predetermined value, the number of bits of a numerical value equal to or larger than the maximum value that can be taken as the value of the secret information is divided into a plurality of values for an external device. For each of the divided bits, request integer multiplication with the value for each numerical value that can be represented by the divided bits, and from the integer multiplication results transmitted by the divided bits from the external device, A required integer multiplication result is selected based on the value of the secret information, and the selected integer multiplication result is added to calculate an integer multiplication result between the secret information and a predetermined value. According to the present invention, when performing an operation of multiplying the secret information by a predetermined value by an integer, an external device is provided with the value for each numerical value that can be expressed by the number of bits of a numerical value equal to or greater than the maximum value that can be taken as the value of the secret information. The secret information is multiplied by a predetermined value by selecting the necessary calculation result based on the value of the secret information from the calculation results transmitted from the external device. Find the result. As mentioned above,
By requesting an external device to calculate a plurality of calculation results, including a calculation to obtain a desired integer multiplication result, in the external device or a device that can access it, the calculation requester needs any calculation result. Cannot be identified. As a result, security can be ensured even when performing calculations at high speed using the request calculation.

【0010】[0010]

【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。図1は、本実
施の形態による依頼計算が行われるシステムの構成を説
明する図である。そのシステム101は、図1に示すよ
うに、サーバーとして働くパーソナルコンピュータ(以
降、PCと略記する)101と、そのPC101とケー
ブル103により接続された個人用ボックス102と、
から構成されている。その個人用ボックス102は、1
個のデータ処理装置であり、本実施の形態による依頼計
算を用いた演算装置(以降、演算装置と略記する)はそ
の個人用ボックス102に搭載されている。その演算装
置は、個人用ボックス102に搭載されたCPUが、例
えばROMに格納されたプログラムを実行することで実
現されている。なお、本実施の形態による演算装置を搭
載する対象は、個人用ボックス102に限定されるもの
ではなく、CPUを持つICカードなどのデータ処理装
置に搭載しても良い。個人用ボックス102は、PC1
01と通信を行うためのインターフェースを備え、CP
Uはそのインターフェースを介してPC101との通信
を行う。他方のPC101も個人用ボックス102と通
信を行うためのインターフェースを備え、それに搭載さ
れた特には図示しないCPUは、そのインターフェース
を介して個人用ボックス102との通信を行う。なお、
個人用ボックス102、及びPC101にそれぞれ搭載
されたインターフェースは、特別なものである必要はな
く、周知のもので良い。
Embodiments of the present invention will be described below in detail with reference to the drawings. FIG. 1 is a diagram illustrating a configuration of a system in which a request calculation according to the present embodiment is performed. As shown in FIG. 1, the system 101 includes a personal computer (hereinafter abbreviated as a PC) 101 serving as a server, a personal box 102 connected to the PC 101 by a cable 103,
It is composed of The personal box 102
An arithmetic device using the request calculation according to the present embodiment (hereinafter, abbreviated as an arithmetic device) is mounted in the personal box 102. The arithmetic device is realized by a CPU mounted on the personal box 102 executing a program stored in, for example, a ROM. The object on which the arithmetic device according to the present embodiment is mounted is not limited to the personal box 102, but may be mounted on a data processing device such as an IC card having a CPU. The personal box 102 is a PC1
01 and an interface for communicating with the
U communicates with the PC 101 via the interface. The other PC 101 also has an interface for communicating with the personal box 102, and a CPU (not shown) mounted thereon communicates with the personal box 102 via the interface. In addition,
The interface mounted on each of the personal box 102 and the PC 101 does not need to be special, and may be a known interface.

【0011】以上の構成において、動作を説明する。先
ず、始めに、楕円曲線暗号系で用いられる楕円曲線上の
点の加算を例にとって説明する。なお、通常の楕円曲線
上の点の加算に関する原理は、IEEE P1363、
ANSI Working Draft X9.62−
199Xなどに詳細に説明されているため、詳細は省略
する。有限体上の逆元計算は演算量が非常に多く、処理
に時間がかかることから、通常、楕円曲線上の点の演算
には逆元計算を用いない、projective座標で
の演算が行われるが、座標点表現が複雑(データ量が多
い)であるため、多くのメモリ容量を必要とする。しか
し、依頼計算を用いて逆元計算を行う場合にあっては、
処理時間は充分高速化され、特に小型化が要求されるI
Cカードなどにおいては、メモリ容量が少なくて済むと
いうこともあって、特に適している。ガロア体GF(2
m)上に定義された楕円曲線(y2+x・y=x3+a・
2+b)上の任意の点をP0=(x0,y0)、P1
(x1,y1)とする。Affine座標での点の加算、
つまりP2=P0+P1は、本実施の形態では以下のアル
ゴリズムで算出する。 step1 If P0=(0,0) then P2=P1 and stop step2 If P1=(0,0) then P2=P0 and stop step3 If x0≠x1then step3.1 v=y0+y1 step3.2 w=x0+x1 step3.3 r∈GF(2m) 但し、rは乱数 step3.4 t=w・r step3.5 tをPC101に渡し、その逆元t-1を計算させて得る step3.6 w-1=t-1・r step3.7 l=v・w-1 step3.8 goto step7 step4 If y0≠y1then output P2=(0,0) and stop step5 If x1=0 then output P2=(0,0) and stop step6 set step6.1 r∈GF(2m) 但し、rは乱数 step6.2 t=r・x1 step6.3 tをPC101に渡し、その逆元t-1を計算させて得る step6.4 x1 -1=t-1・r step6.5 l=y1・x-1+x1 step6.6 x2=a+l2+l step7 y2=(x1+x2)・l+x2+y1 step8 P2=(x2,y2) 上記アルゴリズムでは、step3.5、或いは6.3
でtの逆元計算に対する依頼計算を行っている。そのt
は、秘密情報であるwに乱数rを掛けたものである。そ
れにより、その乱数rを秘密情報wに掛ける操作を行っ
て得られるtをPC101(個人用ボックス102から
見て、計算能力は優れているが信頼できない外部装置で
ある)に渡しても、PC101側ではそのtから秘密情
報wを特定することができないようにしている。その乱
数rは、依頼計算を行う度に生成している。このため、
依頼計算を繰り返したとしても、PC101側では、計
算が依頼される度に送られてくるtから秘密情報wを特
定することはできない。このようにして、秘密情報の漏
洩、即ち安全性の低下を回避させている。なお、秘密情
報wへの操作は、乱数rを掛ける以外のことで行っても
良い。PC101から送信されたt-1の検算は、それに
乱数rを掛けて秘密情報wの逆元w-1(=t-1・r=
(w-1・r-1)・r)を求め、それを秘密情報wと掛け
た値が1か否か確認することで行うことができる。
The operation of the above configuration will be described. First, the addition of points on an elliptic curve used in an elliptic curve cryptosystem will be described as an example. The principle of addition of points on a normal elliptic curve is described in IEEE P1363,
ANSI Working Draft X9.62-
Since it is described in detail in 199X or the like, details are omitted. Inverse calculation on a finite field requires an extremely large amount of calculation and takes a long time to process. Therefore, calculation of a point on an elliptic curve is usually performed using projective coordinates without using the inverse calculation. Since the coordinate point representation is complicated (has a large amount of data), a large memory capacity is required. However, when performing the inverse calculation using the request calculation,
The processing time can be sufficiently shortened, and in particular I
The C card is particularly suitable because the memory capacity is small. Galois body GF (2
m ) The elliptic curve defined above (y 2 + x · y = x 3 + a ·
An arbitrary point on x 2 + b) is defined as P 0 = (x 0 , y 0 ) and P 1 =
(X 1 , y 1 ). Addition of points in Affine coordinates,
That is, P 2 = P 0 + P 1 is calculated by the following algorithm in the present embodiment. step 1 If P 0 = (0,0) then P 2 = P 1 and stop step 2 If P 1 = (0,0) then P 2 = P 0 and stop step 3 If x 0 ≠ x 1 then step 3.1 v = y 0 + y 1 step 3.2 w = x 0 + x 1 step 3.3 r∈GF (2 m ) where r is a random number step 3.4 t = w · r step 3.5 t is passed to the PC 101 and its inverse element t −1 Step 3.6 w −1 = t −1 · r step 3.7 l = v · w −1 step 3.8 goto step 7 Step 4 If y 0 ≠ y 1 then output P 2 = (0,0) and stop step5 If x 1 = 0 then output P 2 = (0,0) and stop step6 set step6.1 r∈GF (2 m) However, r is Number step6.2 t = r · x 1 step6.3 t me PC 101, the inverse element t -1 may by calculated step6.4 x 1 -1 = t -1 · r step6.5 l = y 1 X -1 + x 1 step 6.6 x 2 = a + l 2 + l step 7 y 2 = (x 1 + x 2 ) l + x 2 + y 1 step 8 P 2 = (x 2 , y 2 ) In the above algorithm, step 3.5 or 6.3
Performs a request calculation for the inverse calculation of t. That t
Is obtained by multiplying w, which is secret information, by a random number r. As a result, even if t obtained by performing an operation of multiplying the random number r by the secret information w is passed to the PC 101 (an external device that has high computational power but is unreliable when viewed from the personal box 102), On the side, the secret information w cannot be specified from the t. The random number r is generated each time the request calculation is performed. For this reason,
Even if the request calculation is repeated, the PC 101 cannot specify the secret information w from t sent each time the calculation is requested. In this way, leakage of secret information, that is, reduction in security is avoided. The operation on the secret information w may be performed by other than multiplying the random number r. The check of t -1 transmitted from the PC 101 is multiplied by a random number r, and the inverse of the secret information w −1 (= t −1 · r =
(W -1 · r -1 ) · r), and it can be determined by checking whether the value obtained by multiplying it by the secret information w is 1 or not.

【0012】次に、楕円曲線上の整数倍算の依頼計算を
行う場合を例にとって説明する。楕円曲線暗号や楕円D
SA(Digital Signature Algorithm)で行われる演算
のうち、整数倍算にかかる演算量の占める割合が非常に
大きいことが判っている。よって、この整数倍算に依頼
計算を適用することは、個人用ボックス102における
演算量削減の観点から非常に有効である。楕円曲線上の
点の整数倍算は、 Q=[r]P 但し、Q、Pは楕円曲線上の点、rは楕円曲線上の点の
部分群のベースポイントの位数未満の整数(秘密情報) のように表される。本実施の形態では、この楕円曲線上
の整数倍算(Q=[r]Pを求める演算)を以下のよう
にして行っている。図2に示すフローチャートを参照し
て詳細に説明する。その図2において、rのビット数は
n、そのrはr=rn-1・2n-1+・・・+r1・2+r0
として扱っている。i(変数)は、整数倍算の依頼計算
を分割して行うために用意したものであり、その値は2
uである。uは、u・N≧nの関係を満たす整数である
(Nは2以上の整数)。先ず、ステップ201では、Q
(変数)に単位元0=(0,0)を代入する。続くステ
ップ202では、変数jに0を代入する。その後は、ス
テップ203でP、及び変数jをPC(サーバー)10
1に送信して計算を依頼した後、ステップ205に移行
する。
Next, an example will be described in which a request calculation for integer multiplication on an elliptic curve is performed. Elliptic curve cryptography and ellipse D
It has been found that, among the operations performed by SA (Digital Signature Algorithm), the ratio of the operation amount related to integer multiplication is very large. Therefore, applying the request calculation to the integer multiplication is very effective from the viewpoint of reducing the amount of calculation in the personal box 102. The integer multiplication of a point on an elliptic curve is: Q = [r] P where Q and P are points on the elliptic curve, and r is an integer less than the order of the base point of the subgroup of points on the elliptic curve (secret Information). In the present embodiment, the integral multiplication (operation for obtaining Q = [r] P) on the elliptic curve is performed as follows. This will be described in detail with reference to the flowchart shown in FIG. In the figure 2, the number of bits of r is n, the r is r = r n-1 · 2 n-1 + ··· + r 1 · 2 + r 0
Is treated as. i (variable) is prepared to divide the request calculation of the integral multiple by dividing it, and its value is 2
u . u is an integer satisfying the relationship u · N ≧ n (N is an integer of 2 or more). First, in step 201, Q
The unit element 0 = (0,0) is substituted for (variable). In the following step 202, 0 is substituted for a variable j. Thereafter, in step 203, P and the variable j are set to the PC (server) 10
Then, the process proceeds to step 205 after requesting the calculation by sending the request to S.1.

【0013】他方のPC101では、ステップ221で
個人用ボックス102から送信されたP、及び変数j受
信し、1から変数iの値より1を引いた値までの各値毎
に、2juを掛けた値とPを整数倍算した値を計算し、依
頼計算の計算結果tjとして、各計算(乗算)値を個人
用ボックス102に送信する。それにより、個人用ボッ
クス102には、tj=([1・2ju]P,[2・
ju]P,[3・2ju]P,・・・,[(i−1)・2
ju]P)がPC101から送られることになる。なお、
その計算を行ううえで用いるuの値は、個人用ボックス
102がPC101にその値を送信することで指定して
も良く、或いは共有すべき情報として予め定めておいて
も良い。上記uの値が5であれば、変数jの値が0のと
きには、下位5ビットで表現される各値とPの整数倍算
値が計算結果tjとして個人用ボックス102に送信さ
れる。変数jの値が1のときには、下位6〜10ビット
で表現される各値(0000100000,00010
00000,0001100000,・・・・,111
1100000)とPの整数倍算値が計算結果tjとし
て個人用ボックス102に送信される。このようにし
て、本実施の形態では、下位のほうから5ビットずつ区
切って、その5ビットで表現される各値とPの整数倍算
をPC101に依頼している。そのように、秘密情報r
のビット数をより小さいビット数に分割して依頼計算を
行うと、Pと整数倍算する値のビット数を最小限に抑え
られることから、5ビットで表現できる数値を160ビ
ットで表現するようなことを回避できる。この結果、P
C101から計算結果tjとして送信される整数倍算値
のビット数を抑えることができ、PC101と個人用ボ
ックス102間の通信をより迅速に行える、個人用ボッ
クス102では計算結果tjの格納に要するメモリ量が
小さくて済む、という利点もある。
On the other hand, the PC 101 receives the P and the variable j transmitted from the personal box 102 in step 221 and multiplies by 2 ju for each value from 1 to a value obtained by subtracting 1 from the value of the variable i. Then, a value obtained by multiplying the calculated value and P by an integer is calculated, and each calculated (multiplied) value is transmitted to the personal box 102 as a calculation result t j of the request calculation. As a result, t j = ([1.2 ju ] P, [2 ·
2 ju ] P, [ 3.2 ju ] P, ..., [(i-1) · 2
ju ] P) is sent from the PC 101. In addition,
The value of u used in performing the calculation may be specified by the personal box 102 transmitting the value to the PC 101, or may be determined in advance as information to be shared. If the value of u is 5, and the value of variable j is 0, an integer multiple of each value represented by the lower 5 bits and P is transmitted to the personal box 102 as the calculation result t j . When the value of the variable j is 1, each value represented by the lower 6 to 10 bits (0000100000000010)
00000,00011000000, ..., 111
1100000) and an integer multiple of P are transmitted to the personal box 102 as the calculation result t j . As described above, in the present embodiment, the PC 101 is divided into 5 bits from the lower order, and requests the PC 101 to perform integral multiplication of each value represented by the 5 bits and P. As such, secret information r
When the request calculation is performed by dividing the number of bits into smaller bits, the number of bits of the value to be multiplied by an integer with P can be minimized. Therefore, a value that can be represented by 5 bits is represented by 160 bits. Can be avoided. As a result, P
C101 calculation result t j bits integer multiplication value to be transmitted can be suppressed as from the communication between the PC101 and personal box 102 more rapidly performed, to store personal box 102, the calculation result t j There is also an advantage that the required memory amount can be small.

【0014】個人用ボックス102は、PC101から
送信された計算結果tjをステップ204で受信する。
その後はステップ205に移行して、秘密情報rのなか
で変数jの値によって指定される部分のビット数(uの
値に等しいビット数)が表現する値を算出して変数dに
代入する。その値の算出は、秘密情報rを2進表現する
各ビットをrL(Lはビットの位を示す整数(初期値を
0にして、最下位のビットから数えて何ビット目にあた
るかを示す整数)。最下位のビットは0である)で表す
と、d=ruj・2uj+ruj+1・2uj+1+ruj+2・2uj+2
+・・・+ruj +u-1・2uj+u-1により行う。その値を算
出して変数dに代入した後はステップ206に移行す
る。ステップ206では、変数dの値が0より大きいか
否か判定する。秘密情報rのなかで変数jの値によって
指定される部分のビットの全てが0であった場合、判定
はNOとなり、ステップ207で変数jの値をインクリ
メントした後、ステップ209に移行する。そうでない
場合には、判定はYESとなり、ステップ208で計算
結果tjのなかから[d]Pを示す値を抽出し、その抽
出した値をQに足し込んだ後、即ちそれまでの値に抽出
した値を加算した値をQに代入した後、そのステップ2
07に移行して変数jの値のインクリメントを行う。ス
テップ209では、変数jの値がnをuで割った値以下
か否か判定する。変数jの値がnをuで割った値より大
きい場合、判定はNOとなり、一連の処理を終了する。
そうでない場合には、判定はYESとなり、上記ステッ
プ203に戻ってそれ以降の処理を同様に実行する。
The personal box 102 receives the calculation result t j transmitted from the PC 101 in step 204.
Thereafter, the process proceeds to step 205, in which the value represented by the number of bits (the number of bits equal to the value of u) of the portion designated by the value of the variable j in the secret information r is calculated and substituted for the variable d. To calculate the value, each bit expressing the secret information r in binary is represented by r L (L is an integer indicating the bit position (the initial value is set to 0, and the number of the bit counted from the least significant bit is indicated. Integer). The least significant bit is 0), and d = ruj u2uj + ruj + 12uj + 1 + ruj + 22uj + 2
+... + R uj + u−1 · 2 uj + u−1 After calculating the value and assigning it to the variable d, the process proceeds to step 206. In step 206, it is determined whether the value of the variable d is larger than 0. If all the bits of the portion designated by the value of the variable j in the secret information r are 0, the determination is NO, and the process proceeds to step 209 after incrementing the value of the variable j in step 207. Otherwise, the determination is YES, and in step 208, a value indicating [d] P is extracted from the calculation result t j , and the extracted value is added to Q, that is, After substituting the value obtained by adding the extracted value into Q, the step 2
In step 07, the value of the variable j is incremented. In step 209, it is determined whether or not the value of the variable j is equal to or smaller than a value obtained by dividing n by u. If the value of the variable j is larger than the value obtained by dividing n by u, the determination is NO, and the series of processing ends.
Otherwise, the determination is YES and the process returns to step 203 to execute the subsequent processing in the same manner.

【0015】図2に示すフローチャートは、例えばサブ
ルーチン処理、或いは関数として実行される。このた
め、その一連の処理を終了すると、Qの値はその実行を
指示した(コールした)プログラムに渡される。上記ス
テップ203〜209は処理ループを形成しており、ス
テップ209の判定がNOとなるまでの間、繰り返し実
行される。例えばuが5であり、nが156〜160の
間であれば、n/uの値は最大で32(=160/5)
になることから、変数jの値が33となるまで繰り返し
実行される。これは、PC101は、秘密情報rの取り
うる値の最大値以上の数のビット数で表現できる各数値
とPの整数倍算を行うことを意味する。それにより、個
人用ボックス102側では、PC101から送られる依
頼計算の計算結果tjを用いてQを求めることができる
ようになっている。上述したようにPC101に計算を
依頼し、その計算結果tjのなかから必要なものを抽出
して求めたい値を求めるようにすると、PC101に秘
密情報(ここでは秘密情報r)を提供するようなことは
なくなる。また、その秘密情報の特定に使える情報を提
供することもない。このため、計算能力は優れているが
信用できないPC101に対して依頼計算を行っても、
秘密情報の漏洩は回避することができ、安全性を維持す
ることができる。PC101から送信された計算結果t
jにより得たQの検算は、秘密情報rの符号を逆にし
て、上記と同様の処理を行うことで−Q=[−r]Pを
求め、その値とQを加算した値が単位元0=(0,0)
か否か確認することで行うことができる。なお、本実施
の形態では、連続する複数のビット毎に分けて依頼計算
を行っているが、櫛形テーブルを用いて、離れたビット
からなる複数のビット毎に分けて依頼計算を行うように
しても良い。そのようにした場合には、足し算と比較し
て2倍算はより軽い負荷で行えるために、サーバー(こ
こではPC101)の依頼計算による負荷を抑えられる
ようになる。上述したような依頼計算を用いた逆元計
算、或いは整数倍算演算は、暗号化や復号化、或いはデ
ジタル署名などに幅広く適用することができる。以降
は、それを適用して行う暗号化された情報の復号化、及
びデジタル署名について、図3、及び図4に示す各フロ
ーチャートを参照して詳細に説明する。
The flowchart shown in FIG. 2 is executed, for example, as a subroutine process or a function. Therefore, when the series of processes is completed, the value of Q is passed to the program that instructed (called) the execution. Steps 203 to 209 form a processing loop, and are repeatedly executed until the determination in step 209 becomes NO. For example, if u is 5 and n is between 156 and 160, the value of n / u is at most 32 (= 160/5)
Is repeated until the value of the variable j becomes 33. This means that the PC 101 performs integer multiplication of each numerical value that can be expressed by the number of bits equal to or greater than the maximum value of the possible values of the secret information r and P. This allows the personal box 102 to obtain Q using the calculation result t j of the request calculation sent from the PC 101. As described above, a request is made to the PC 101 for calculation, and a necessary value is extracted from the calculation result t j to obtain a desired value, so that the PC 101 is provided with secret information (here, secret information r). Nothing is gone. Also, no information that can be used to specify the secret information is provided. For this reason, even if the request calculation is performed for the PC 101 which has an excellent calculation capability but cannot be trusted,
Leakage of secret information can be avoided, and security can be maintained. Calculation result t transmitted from PC 101
The check of Q obtained by j is performed by reversing the sign of the secret information r and performing the same processing as above to obtain -Q = [-r] P, and the value obtained by adding the value to Q is a unit element. 0 = (0,0)
It can be done by checking whether or not. In the present embodiment, the request calculation is performed separately for each of a plurality of consecutive bits. However, the request calculation is performed for each of a plurality of bits including distant bits using a comb table. Is also good. In such a case, since the doubling can be performed with a lighter load than the addition, the load due to the request calculation of the server (here, the PC 101) can be suppressed. The inverse element calculation using the above-described request calculation or the integer multiplication operation can be widely applied to encryption, decryption, digital signature, and the like. Hereinafter, the decryption of the encrypted information and the digital signature performed by applying it will be described in detail with reference to the flowcharts shown in FIGS.

【0016】図3は、依頼計算を用いた楕円エルガマル
(ElGamal)の復号アルゴリズムを実現する処理
を示すフローチャートである。始めに、図3を参照し
て、その処理について詳細に説明する。周知のように、
楕円エルガマルでは、ベースポイントG、乱数k、復号
者の公開鍵Vを用いて、平文Mを暗号化し、暗号文
1、C2を生成する。復号化は、その暗号文C1、C2
復号者の秘密鍵sを用いて行うようになっている。個人
用ボックス102は、その暗号文C1、C2をPC101
から取得してその復号化を行う。先ず、ステップ301
では、秘密鍵sの値を特定できないように依頼計算を用
いて[s]C1を求め、その求めた結果を変数Tに代入
(格納)する。これは、図2に示す処理と同様に行われ
る処理である。ステップ301に続くステップ302で
は、暗号文C2から変数Tの値を減算し、その減算結果
を平文Mとして復号する。その後に一連の処理を終了し
て、その結果(平文M)をコールしたプログラムに返
す。図4は、依頼計算を用いた楕円DSAの署名生成ア
ルゴリズムを実現する処理のフローチャートである。次
に、図4を参照して、その処理について詳細に説明す
る。既に述べたように、楕円DSAでは、ベースポイン
トG、乱数k、メッセージe、署名者の秘密鍵sを用い
て、メッセージeに対する署名r、tを生成する。ベー
スポイントGの位数はnとする。ここでの秘密情報は、
秘密鍵s、及び乱数kである。先ず、ステップ401で
は、乱数kの値を特定できないように、図2と同様にし
て、依頼計算を用いて[k]G を求め、その求めた結
果を(x,y)(x、yは変数)に代入する。続くステ
ップ402では、そのxをnで割った余り(=x mo
d n)を変数rに代入する。その後はステップ403
に移行する。ステップ403では、上述した逆元計算と
同様に、依頼計算を用いて乱数kの逆元を求め、その求
めた結果を変数tmpに格納(代入)する。その後に移
行するステップ404では、秘密鍵sの値に変数rの値
を乗算し、その乗算結果にメッセージeの値を加算した
値を変数tmpの値に乗算し、その乗算結果をnで割っ
た余りを変数tに代入する。その後、一連の処理を終了
して、その結果(変数r、t)をコールしたプログラム
に返す。
FIG. 3 is a flowchart showing a process for implementing an elliptical ElGamal decoding algorithm using request calculation. First, the processing will be described in detail with reference to FIG. As we all know,
In the elliptic elgamal, the plaintext M is encrypted by using the base point G, the random number k, and the public key V of the decryptor to generate the ciphertexts C 1 and C 2 . Decryption is based on the ciphertexts C 1 , C 2 ,
The decryption is performed using the secret key s of the decryptor. The personal box 102 transmits the ciphertexts C 1 and C 2 to the PC 101.
And decrypts it. First, step 301
Then, [s] C 1 is obtained by using a request calculation so that the value of the secret key s cannot be specified, and the obtained result is substituted (stored) in a variable T. This is a process performed in the same manner as the process shown in FIG. In the subsequent step 301 step 302, it subtracts the value of variable T from the ciphertext C 2, decodes the result of the subtraction as the plaintext M. Thereafter, a series of processing is completed, and the result (plaintext M) is returned to the calling program. FIG. 4 is a flowchart of a process for realizing the signature generation algorithm of the elliptical DSA using the request calculation. Next, the processing will be described in detail with reference to FIG. As described above, in the elliptical DSA, signatures r and t for the message e are generated using the base point G, the random number k, the message e, and the signer's private key s. The order of the base point G is n. The secret information here is
A secret key s and a random number k. First, in step 401, [k] G is obtained using request calculation in the same manner as in FIG. 2 so that the value of the random number k cannot be specified, and the obtained result is expressed as (x, y) (x, y Variable). In the subsequent step 402, the remainder obtained by dividing x by n (= x mo
dn) is assigned to a variable r. After that, step 403
Move to In step 403, similarly to the above-described inverse element calculation, the inverse element of the random number k is obtained by using the request calculation, and the obtained result is stored (substituted) in the variable tmp. Thereafter, in step 404, the value of the secret key s is multiplied by the value of the variable r, the value obtained by adding the value of the message e to the multiplication result is multiplied by the value of the variable tmp, and the multiplication result is divided by n. The remainder is substituted for a variable t. Thereafter, a series of processing is completed, and the result (variable r, t) is returned to the calling program.

【0017】なお、本実施の形態では、個人用ボックス
102と比較して計算能力が著しく高いPC101に対
して依頼計算を行っているが、そのPC101は、自身
で処理するのではなく、それと接続された他のPCやサ
ーバーなどに対して依頼計算を行っても良い。このこと
から明らかなように、依頼計算の対象は一つの外部装置
でなくとも良い。上述したような個人用ボックス10
2、或いはその変形例の動作を実現させるようなプログ
ラムは、CD−ROM、フロッピー(登録商標)ディス
ク、或いは光磁気ディスク等の記録媒体に記録させて配
布しても良い。或いは、公衆網等の伝送媒体を用いて、
そのプログラムの一部、若しくは全部を配信するように
しても良い。そのようにした場合には、ユーザはプログ
ラムを取得してデータ処理装置にロード(インストー
ル)することにより、そのデータ処理装置に本発明を適
用させることができる。このことから、記録媒体は、プ
ログラムを配信する装置がアクセスできるものであって
も良い。
In the present embodiment, the request calculation is performed for the PC 101 having a remarkably high calculation ability as compared with the personal box 102. However, the PC 101 does not perform the processing itself but connects to the PC 101. The request calculation may be performed on another PC or server that has been performed. As is clear from this, the target of the request calculation need not be one external device. Personal box 10 as described above
A program that realizes the operation of the second or modified example may be recorded on a recording medium such as a CD-ROM, a floppy (registered trademark) disk, or a magneto-optical disk and distributed. Alternatively, using a transmission medium such as a public network,
A part or all of the program may be distributed. In such a case, the user can apply the present invention to the data processing device by acquiring and loading (installing) the program into the data processing device. For this reason, the recording medium may be one that can be accessed by an apparatus that distributes the program.

【0018】[0018]

【発明の効果】以上、説明したように本発明は、有限体
上の元である秘密情報の逆元を算出する場合に、該秘密
情報に操作を施し、該操作を施して得られる算出値の逆
元の計算を外部装置に対して依頼し、その外部装置から
送信されてくる計算結果に、秘密情報に施した操作に応
じた操作を行うことにより、該秘密情報の逆元を算出す
る。秘密情報に操作を行い、その操作を行って得られる
算出値の逆元の計算を依頼することにより、外部装置、
或いはそれにアクセス可能な装置では、その算出値から
秘密情報を特定できなくなる。このため、依頼計算を用
いて演算を高速に行う場合において、安全性を確保する
ことができる。本発明は、秘密情報と所定値との整数倍
算を行う場合に、外部装置に対して、該秘密情報の値と
して取りうる最大値以上の数値のビット数を複数に分割
し、該分割したビット数別に、該分割したビット数で表
現できる数値毎に該値との整数倍算を依頼し、その外部
装置から分割したビット数別に送信されてくる整数倍算
結果のなかから、秘密情報の値を基に必要な整数倍算結
果を選別し、該選別した整数倍算結果を加算していくこ
とにより、秘密情報と所定値との整数倍算結果を算出す
る。本発明は、秘密情報と所定値を整数倍算する演算を
行う場合に、外部装置に対して、該秘密情報の値として
取りうる最大値以上の数値のビット数で表現できる数値
毎に該値との整数倍算を依頼し、その外部装置から送信
されてくる計算結果のなかから、秘密情報の値を基に必
要な計算結果を選別することにより、秘密情報と所定値
を整数倍算した結果を求める。上述したようにして、望
む整数倍数が得られる計算を含め、複数の計算結果を求
める計算を外部装置に依頼することにより、外部装置、
或いはそれにアクセス可能な装置では、計算を依頼した
側がどの計算結果を必要としているのか特定できなくな
る。このため、依頼計算を用いて演算を高速に行う場合
にあっても安全性を確保することができる。
As described above, according to the present invention, when calculating the inverse of secret information which is an element on a finite field, the secret information is operated, and the calculated value obtained by performing the operation is calculated. Requesting the external device to calculate the inverse of the secret information, and performing an operation according to the operation performed on the secret information on the calculation result transmitted from the external device to calculate the inverse of the secret information . By operating on confidential information and requesting the inverse calculation of the calculated value obtained by performing the operation, external devices,
Alternatively, in a device that can access the secret information, the secret information cannot be specified from the calculated value. Therefore, safety can be ensured when performing calculations at high speed using the request calculation. The present invention divides the number of bits of a numerical value equal to or larger than the maximum value that can be taken as a value of the secret information into an external device when performing integral multiplication of the secret information and a predetermined value, and performs the division. For each number of bits, a request is made for integer multiplication with the value for each numerical value that can be represented by the divided number of bits, and from the results of the integer multiplication transmitted for each divided number of bits from the external device, A required integer multiplication result is selected based on the value, and the selected integer multiplication result is added to calculate an integer multiplication result between the secret information and a predetermined value. In the present invention, when performing an operation of multiplying secret information and a predetermined value by an integer, an external device is provided with a value for each numerical value that can be represented by the number of bits of a numerical value greater than or equal to a maximum value that can be taken as a value of the secret information. The secret information is multiplied by a predetermined value by selecting the necessary calculation result based on the value of the secret information from the calculation results transmitted from the external device. Find the result. As described above, by requesting a calculation to obtain a plurality of calculation results to an external device, including a calculation to obtain a desired integer multiple, an external device,
Or, in a device that can access it, it becomes impossible for the side requesting the calculation to specify which calculation result is needed. Therefore, safety can be ensured even when the calculation is performed at high speed using the request calculation.

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

【図1】本実施の形態による依頼計算が行われるシステ
ムの構成を示す図である。
FIG. 1 is a diagram showing a configuration of a system in which a request calculation according to an embodiment is performed.

【図2】依頼計算を用いてQ=[r]Pを求める処理を
示すフローチャートである。
FIG. 2 is a flowchart showing a process for obtaining Q = [r] P using request calculation.

【図3】依頼計算を用いた楕円エルガマルの復号アルゴ
リズムを実現する処理を示すフローチャートである。
FIG. 3 is a flowchart illustrating a process for implementing an elliptic ElGamal decoding algorithm using request calculation.

【図4】依頼計算を用いた楕円DSAの署名生成アルゴ
リズムを実現する処理を示すフローチャートである。
FIG. 4 is a flowchart illustrating a process for realizing a signature generation algorithm for an elliptical DSA using request calculation.

【図5】従来のQ=[k]Pを求める処理を示すフロー
チャートである。
FIG. 5 is a flowchart showing a conventional process for obtaining Q = [k] P.

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

101 パーソナルコンピュータ 102 個人用ボックス 101 Personal computer 102 Personal box

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 外部装置と通信可能なデータ処理装置に
搭載され、該外部装置に計算を依頼し、該依頼した計算
結果を用いて演算を行う装置であって、 有限体上の元である秘密情報の逆元を算出する場合に、
該秘密情報に操作を施し、該操作を施して得られる算出
値の逆元の計算を前記外部装置に対して依頼する計算依
頼手段と、 前記計算依頼手段が依頼することによって前記外部装置
から送信されてくる計算結果に、前記秘密情報に施した
操作に応じた操作を行うことにより、該秘密情報の逆元
を算出する逆元算出手段と、 を具備することを特徴とする依頼計算を用いた演算装
置。
1. A device mounted on a data processing device capable of communicating with an external device, requesting the external device to perform a calculation, and performing an operation using the requested calculation result, which is an element on a finite field. When calculating the inverse of confidential information,
A calculation requesting means for performing an operation on the secret information and requesting the external device to calculate the inverse of a calculated value obtained by performing the operation; and transmitting the request from the external device by requesting the calculation requesting means An inverse calculation means for calculating an inverse of the secret information by performing an operation in accordance with the operation performed on the secret information on the calculation result obtained, and a request calculation characterized by comprising: Computing device.
【請求項2】 前記計算依頼手段は、前記有限体上の乱
数を生成して前記秘密情報に乗算する操作を行い、 前記逆元算出手段は、前記外部装置からの計算結果に前
記乱数を掛ける操作を行うことにより、前記秘密情報の
逆数を算出する、 ことを特徴とする請求項1記載の依頼計算を用いた演算
装置。
2. The calculation requesting means performs an operation of generating a random number on the finite field and multiplying the secret information, and the inverse calculating means multiplies a calculation result from the external device by the random number. The operation device according to claim 1, wherein the reciprocal of the secret information is calculated by performing an operation.
【請求項3】 前記秘密情報に前記逆元算出手段が算出
した逆元を掛けた値が1になるか否か確認することによ
り検算を行う、 ことを特徴とする請求項1、または2記載の依頼計算を
用いた演算装置。
3. The verification is performed by confirming whether or not a value obtained by multiplying the secret information by the inverse calculated by the inverse calculating means becomes 1 or not. Computing device using the calculation of the request.
【請求項4】 外部装置と通信可能なデータ処理装置に
搭載され、該外部装置に計算を依頼し、該依頼した計算
結果を用いて演算を行う装置であって、 秘密情報と所定値との整数倍算を行う場合に、前記外部
装置に対して、該秘密情報の値として取りうる最大値以
上の数値のビット数を複数に分割し、該分割したビット
数別に、該分割したビット数で表現できる数値毎に該値
との整数倍算を依頼する計算依頼手段と、 前記計算依頼手段が依頼することで前記外部装置から前
記分割したビット数別に送信されてくる整数倍算結果の
なかから、前記秘密情報の値を基に必要な整数倍算結果
を選別し、該選別した整数倍算結果を加算していくこと
により、前記秘密情報と前記所定値との整数倍算結果を
算出する整数倍算結果算出手段と、 を具備することを特徴とする依頼計算を用いた演算装
置。
4. A device mounted on a data processing device capable of communicating with an external device, requesting the external device to perform a calculation, and performing an operation using the requested calculation result. When performing integer multiplication, for the external device, the number of bits of a numerical value equal to or greater than the maximum value that can be taken as the value of the secret information is divided into a plurality of bits, and for each of the divided bits, the number of divided bits is used. A calculation requesting unit for requesting an integer multiplication with the value for each representable numerical value; and from an integer multiplication result transmitted from the external device for each of the divided bits by requesting the calculation requesting unit. Selecting the required integer multiplication result based on the value of the secret information, and adding the selected integer multiplication result to calculate an integer multiplication result of the secret information and the predetermined value. And an integer multiplication result calculation means. An arithmetic unit using request calculation, characterized in that:
【請求項5】 外部装置と通信可能なデータ処理装置に
搭載され、該外部装置に計算を依頼し、該依頼した計算
結果を用いて演算を行う装置であって、 秘密情報と所定値との整数倍算を行う場合に、前記外部
装置に対して、該秘密情報の値として取りうる最大値以
上の数値のビット数で表現できる数値毎に該値との整数
倍算を依頼する計算依頼手段と、 前記計算依頼手段が依頼することで前記外部装置から送
信されてくる整数倍算結果のなかから、前記秘密情報の
値を基に必要な整数倍算結果を選別することにより、前
記秘密情報と前記所定値との整数倍算結果を求める整数
倍算結果算出手段と、 を具備することを特徴とする依頼計算を用いた演算装
置。
5. A device mounted on a data processing device capable of communicating with an external device, requesting the external device to perform a calculation, and performing an operation using the requested calculation result. A calculation requesting unit that requests the external device to perform an integer multiplication with the value for each numerical value that can be represented by the number of bits of a numerical value greater than or equal to a maximum value that can be taken as the value of the secret information when performing the integer multiplication By selecting a required integer multiplication result based on the value of the secret information from the integer multiplication results transmitted from the external device at the request of the calculation request unit, the secret information is obtained. And an integer multiplication result calculation means for obtaining an integer multiplication result of the predetermined value and the predetermined value.
【請求項6】 前記外部装置に対する計算の依頼を行っ
て、前記秘密情報の符号を逆にした値と前記所定値の整
数倍算した値を求め、該求めた値と前記整数倍算結果算
出手段が算出した整数倍算結果を加算した値が加法単位
元である0となるか否か確認することにより検算を行
う、 ことを特徴とする請求項4、または5記載の依頼計算を
用いた演算装置。
6. Requesting a calculation to the external device to obtain a value obtained by multiplying a value obtained by inverting the sign of the secret information and the predetermined value by an integer, and calculating the obtained value and the integer multiplication result The request calculation according to claim 4 or 5, wherein the verification is performed by confirming whether or not the value obtained by adding the integer multiplication result calculated by the means becomes 0 which is an additive unit element. Arithmetic unit.
【請求項7】 前記秘密情報は、暗号化、該暗号化され
た情報の復号化、或いはデジタル署名に用いられるデー
タである、 ことを特徴とする請求項1〜6の何れか1項に記載の依
頼計算を用いた演算装置。
7. The apparatus according to claim 1, wherein the secret information is data used for encryption, decryption of the encrypted information, or digital signature. Computing device using the calculation of the request.
【請求項8】 外部装置と通信可能なデータ処理装置が
読み取り可能な記録媒体であって、 有限体上の元である秘密情報の逆元を算出する場合に、
該秘密情報に操作を施し、該操作を施して得られる算出
値の逆元の計算を前記外部装置に対して依頼する機能
と、 前記依頼する機能により依頼することによって前記外部
装置から送信されてくる計算結果に対し、前記秘密情報
に施した操作を基に該秘密情報の逆元を算出する機能
と、 を実現させるプログラムを記録した記録媒体。
8. A storage medium that can be read by a data processing device capable of communicating with an external device, wherein the inverse of secret information that is an element on a finite field is calculated.
An operation is performed on the secret information, and a function of requesting the external device to calculate the inverse of a calculated value obtained by performing the operation is transmitted from the external device by requesting the request by the requesting function. And a function of calculating the inverse of the secret information based on an operation performed on the secret information with respect to a calculation result that comes from the storage medium, and a program for realizing:
【請求項9】 外部装置と通信可能なデータ処理装置が
読み取り可能な記録媒体であって、 秘密情報と所定値との整数倍算を行う場合に、前記外部
装置に対して、該秘密情報の値として取りうる最大値以
上の数値のビット数を複数に分割し、該分割したビット
数別に、該分割したビット数で表現できる数値毎に該値
との整数倍算を依頼する機能と、 前記依頼する機能により依頼することで前記外部装置か
ら前記分割したビット数別に送信されてくる整数倍算結
果のなかから、前記秘密情報の値を基に必要な整数倍算
結果を選別し、該選別した整数倍算結果を加算していく
ことにより、前記秘密情報と前記所定値との整数倍算結
果を算出する機能と、 を実現させるプログラムを記録した記録媒体。
9. A recording medium readable by a data processing device capable of communicating with an external device, wherein when performing an integral multiplication of secret information and a predetermined value, the external device sends the secret information to the external device. A function of dividing the number of bits of a numerical value equal to or larger than the maximum value that can be taken as a value into a plurality of values, and requesting an integer multiplication with the value for each numerical value that can be represented by the divided bit number for each of the divided bits; From the integer multiplication results transmitted by the number of divided bits from the external device by requesting by the request function, a necessary integer multiplication result is selected based on the value of the secret information, and the selection is performed. A function of calculating an integer multiplication result of the secret information and the predetermined value by adding the obtained integer multiplication result, and a program for realizing the following.
【請求項10】 外部装置と通信可能なデータ処理装置
が読み取り可能な記録媒体であって、 秘密情報に所定値の整数倍算を行う場合に、前記外部装
置に対して、該秘密情報の値として取りうる最大値以上
の数値のビット数で表現できる数値毎に該値との整数倍
算を依頼する機能と、 前記依頼する機能により依頼することで前記外部装置か
ら送信されてくる整数倍算結果のなかから、前記秘密情
報の値を基に必要な計算結果を選別することにより、前
記秘密情報と前記所定値との整数倍算結果を求める機能
と、 を実現させるプログラムを記録した記録媒体。
10. A storage medium readable by a data processing device capable of communicating with an external device, wherein when performing an integral multiple of a predetermined value on the secret information, the secret information value is transmitted to the external device. A function for requesting an integer multiplication with a numerical value that can be represented by the number of bits of a numerical value greater than or equal to the maximum value that can be taken, and an integer multiplication transmitted from the external device by requesting by the requesting function A function of selecting a necessary calculation result based on the value of the secret information from among the results to obtain an integer multiplication result of the secret information and the predetermined value; and a recording medium recording a program for realizing .
JP2000270367A 2000-09-06 2000-09-06 Arithmetic device and recording medium using request calculation Expired - Fee Related JP4706811B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000270367A JP4706811B2 (en) 2000-09-06 2000-09-06 Arithmetic device and recording medium using request calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000270367A JP4706811B2 (en) 2000-09-06 2000-09-06 Arithmetic device and recording medium using request calculation

Publications (2)

Publication Number Publication Date
JP2002082609A true JP2002082609A (en) 2002-03-22
JP4706811B2 JP4706811B2 (en) 2011-06-22

Family

ID=18756822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000270367A Expired - Fee Related JP4706811B2 (en) 2000-09-06 2000-09-06 Arithmetic device and recording medium using request calculation

Country Status (1)

Country Link
JP (1) JP4706811B2 (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005532715A (en) * 2002-05-16 2005-10-27 ギーゼッケ ウント デフリエント ゲーエムベーハー Inverse calculation protected against spying
JP2011053607A (en) * 2009-09-04 2011-03-17 Nippon Telegr & Teleph Corp <Ntt> Proxy calculation request device, proxy calculation request method, proxy calculation request program, and recording medium
WO2011086992A1 (en) * 2010-01-12 2011-07-21 日本電信電話株式会社 Representative calculation system, method, request device, program and recording medium
JP2012070054A (en) * 2010-09-21 2012-04-05 Nippon Telegr & Teleph Corp <Ntt> Decryption system, general-purpose terminal, highly-reliable terminal, key generation device, decryption method, and program
JP2012078446A (en) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> Irregularity detection method, secret computation system, computing device and computation program
JP2019154007A (en) * 2018-03-06 2019-09-12 日本電気株式会社 Data processing system and encryption key sharing method
JP2020502896A (en) * 2016-12-16 2020-01-23 アマゾン・テクノロジーズ、インコーポレイテッド Secure distribution of sensitive data over content distribution networks
CN112154495A (en) * 2018-05-25 2020-12-29 日本电信电话株式会社 Secret batch approximation system, secret calculation device, secret batch approximation method, and program
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (en) * 1998-08-20 2000-03-03 Toshiba Corp Encryption and decryption apparatus, encryption and decryption method and their program memory medium

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000066585A (en) * 1998-08-20 2000-03-03 Toshiba Corp Encryption and decryption apparatus, encryption and decryption method and their program memory medium

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005532715A (en) * 2002-05-16 2005-10-27 ギーゼッケ ウント デフリエント ゲーエムベーハー Inverse calculation protected against spying
JP4717437B2 (en) * 2002-05-16 2011-07-06 ギーゼッケ ウント デフリエント ゲーエムベーハー Inverse calculation protected against spying
JP2011053607A (en) * 2009-09-04 2011-03-17 Nippon Telegr & Teleph Corp <Ntt> Proxy calculation request device, proxy calculation request method, proxy calculation request program, and recording medium
KR101344352B1 (en) 2010-01-12 2013-12-24 니뽄 덴신 덴와 가부시키가이샤 Proxy calculation system, proxy calculation method, proxy calculation requesting apparatus, and proxy calculation program and recording medium therefor
WO2011086992A1 (en) * 2010-01-12 2011-07-21 日本電信電話株式会社 Representative calculation system, method, request device, program and recording medium
JP5379869B2 (en) * 2010-01-12 2013-12-25 日本電信電話株式会社 Proxy calculation system, method, request apparatus, program, and recording medium thereof
JP2012070054A (en) * 2010-09-21 2012-04-05 Nippon Telegr & Teleph Corp <Ntt> Decryption system, general-purpose terminal, highly-reliable terminal, key generation device, decryption method, and program
JP2012078446A (en) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> Irregularity detection method, secret computation system, computing device and computation program
JP2020502896A (en) * 2016-12-16 2020-01-23 アマゾン・テクノロジーズ、インコーポレイテッド Secure distribution of sensitive data over content distribution networks
US10887291B2 (en) 2016-12-16 2021-01-05 Amazon Technologies, Inc. Secure data distribution of sensitive data across content delivery networks
JP7036494B2 (en) 2016-12-16 2022-03-15 アマゾン・テクノロジーズ、インコーポレイテッド Secure data distribution of sensitive data over content delivery networks
JP2019154007A (en) * 2018-03-06 2019-09-12 日本電気株式会社 Data processing system and encryption key sharing method
US11159498B1 (en) 2018-03-21 2021-10-26 Amazon Technologies, Inc. Information security proxy service
CN112154495A (en) * 2018-05-25 2020-12-29 日本电信电话株式会社 Secret batch approximation system, secret calculation device, secret batch approximation method, and program
US10979403B1 (en) 2018-06-08 2021-04-13 Amazon Technologies, Inc. Cryptographic configuration enforcement

Also Published As

Publication number Publication date
JP4706811B2 (en) 2011-06-22

Similar Documents

Publication Publication Date Title
JP4855940B2 (en) Efficient management of cryptographic key generation
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
JP4782343B2 (en) How to authenticate anonymous users while reducing the possibility of “middleman” fraud
JP2001511912A (en) Circular polynomial structure of discrete logarithmic cryptosystem over finite field
US11323255B2 (en) Methods and systems for encryption and homomorphic encryption systems using Geometric Algebra and Hensel codes
Liu et al. An efficient privacy-preserving outsourced computation over public data
US20060251247A1 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program and method therefor
US7434898B2 (en) Computer system, computer program, and addition method
Gu et al. New public key cryptosystems based on non‐Abelian factorization problems
US20190044697A1 (en) Methods and systems for enhanced data-centric homomorphic encryption searching using geometric algebra
US20180294951A1 (en) Methods and systems for enhanced data-centric scalar multiplicative homomorphic encryption systems using geometric algebra
CN109905229B (en) Anti-quantum computing Elgamal encryption and decryption method and system based on group asymmetric key pool
CN115549891B (en) Homomorphic encryption method, homomorphic decryption method, homomorphic calculation method and equipment
JP2001202010A (en) Public and non-exchangeable message coding method and ciphering method
JP4706811B2 (en) Arithmetic device and recording medium using request calculation
Liu et al. Traceable multiauthority attribute-based encryption with outsourced decryption and hidden policy for CIoT
Lin et al. Efficient access control and key management schemes for mobile agents
Son et al. A new outsourcing conditional proxy re‐encryption suitable for mobile cloud environment
CN117134906A (en) Multiparty privacy exchange method and related device
Fugkeaw et al. Secure and Lightweight Blockchain-enabled Access Control for Fog-Assisted IoT Cloud based Electronic Medical Records Sharing
JP6397921B2 (en) Operator lifting in cryptographic algorithms
CN113824713B (en) Key generation method, system and storage medium
Hwang et al. An SKP-ABE scheme for secure and efficient data sharing in cloud environments
CN116318636A (en) SM 2-based threshold signature method
Singelée et al. Secure e-commerce using mobile agents on untrusted hosts

Legal Events

Date Code Title Description
A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20070905

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20071221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110301

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

Free format text: PAYMENT UNTIL: 20140325

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20140325

Year of fee payment: 3

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