JPH0619393A - Request calculating device - Google Patents

Request calculating device

Info

Publication number
JPH0619393A
JPH0619393A JP5068866A JP6886693A JPH0619393A JP H0619393 A JPH0619393 A JP H0619393A JP 5068866 A JP5068866 A JP 5068866A JP 6886693 A JP6886693 A JP 6886693A JP H0619393 A JPH0619393 A JP H0619393A
Authority
JP
Japan
Prior art keywords
calculation
main device
conversion
client
predetermined
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.)
Pending
Application number
JP5068866A
Other languages
Japanese (ja)
Inventor
Shinichi Kawamura
信一 川村
Atsushi Shinpo
淳 新保
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP5068866A priority Critical patent/JPH0619393A/en
Publication of JPH0619393A publication Critical patent/JPH0619393A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To secure high safety and shorten the time required for arithmetic by making a value that an auxiliary device calculates not depend upon secret information that a main device holds. CONSTITUTION:The request calculating device performs power remainder calculation M<d>modn. the main device 1 has a power exponent (d) as the characteristic secret information and holds all coefficients di obtained by expanding the power exponent by (b)-array notation d=SIGMAdib<i> based upon a positive integer b larger than 2 as a cardinal number, and the auxiliary device 2 calculates plural values by raising M as a specific base to beta th power repeatedly and obtaining a remainder with (n) as a specific divisor as conversion which depends upon a specific integer beta exactly dividing the cardinal number and also depends on neither (d) nor the coefficients di. Then the calculation results are sent to the main device 1, which obtains a power residue calculation result by conversion which depends upon the coefficients di and (n) held in its device 1 by using the calculation values. The secrecy regarding the (d) never slips out of the main device 1.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は安全性の高い計算依頼が
可能で秘密に依存しない演算のみを補助装置に依頼する
依頼計算装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a requested calculation apparatus which can request a highly secure calculation and only request an operation which does not depend on a secret to an auxiliary apparatus.

【0002】[0002]

【従来の技術】一般に、通信情報処理システムの安全確
保の為に、公開鍵暗号が盛んに研究されている。RSA
暗号をはじめ多くの公開鍵暗号は次の(1)式で示され
るようなべき乗剰余計算を基本演算として構成されてい
る。
2. Description of the Related Art In general, public key cryptography has been actively studied in order to ensure the security of communication information processing systems. RSA
Many public key ciphers including ciphers are configured with a modular exponentiation calculation as a basic operation as shown in the following equation (1).

【0003】 C=Md mod n …(1) ここで暗号としての強度を確保するために通常、各変数
C,M,n,dは512 ビット程度以上の大きさの値を用
いる。そのため処理ステップ数が非常に大きくなり、処
理速度の比較的小さい装置でこれを演算しようとすると
多くの処理時間がかかるという問題が生じる。
C = M d mod n (1) Here, in order to secure the strength as a cipher, usually, each variable C, M, n, d uses a value having a size of about 512 bits or more. Therefore, the number of processing steps becomes very large, and it takes a lot of processing time to calculate this with a device having a relatively low processing speed.

【0004】さらに、RSA暗号の復号変換では(1)
式のべき指数dを秘密に保たなければならないので演算
を行うときのべき指数の扱いには特に注意が必要であ
る。暗号の鍵となるdやnをICカードの様なアクセス
制御機能のある記憶媒体にいれておくと安全で携帯に便
利である。しかし、ICカード以外の装置がべき乗を行
うのであれば、ICカードからべき乗計算装置に鍵d,
nを送らねばならず第3者にdが漏れる可能性が生ず
る。また、ICカード自身の持つ中央処理ユニット(C
PU)でべき乗計算を行うことも考えられるが、一般に
ICカードのCPUの数値計算能力はあまり大きくない
ので実用的な処理時間を達成するのは困難である。
Further, in the decryption conversion of RSA encryption, (1)
Since the exponent d in the formula must be kept secret, special care must be taken in handling the exponent when performing the operation. It is safe and convenient to carry if the encryption keys d and n are stored in a storage medium having an access control function such as an IC card. However, if a device other than the IC card performs exponentiation, the IC card transfers the key d,
Since n must be sent, there is a possibility that d will leak to a third party. In addition, the central processing unit (C
Although it is possible to perform power calculation with PU), it is difficult to achieve a practical processing time because the numerical calculation capability of the CPU of the IC card is not so large in general.

【0005】そこで、従来より、処理の高速化とべき指
数の秘密の確保をともに実現する方式として、安全に補
助装置に計算を依頼する方法が提案されており、これは
依頼計算法とよばれている。通常、依頼計算はクライア
ント、サーバおよび両者を結ぶ通信回線の3つの部分か
らなる装置によって実行される。この内、クライアント
は目的とする処理に関わる秘密情報を持つ装置でサーバ
と比べて演算能力が相対的に劣っている。また、サーバ
はクライアントから依頼された処理内容を実行し、結果
を通信回線を介してクライアントに返す。このような処
理において、第3者にクライアントの秘密情報を漏らさ
ずに、サーバの補助によって全体の処理時間を短縮する
のが依頼計算である。ちなみにRSA暗号の復号変換に
ついて依頼計算法を構成しようという場合、クライアン
トの秘密情報は(1)式のべき指数dである。
Therefore, conventionally, as a method for realizing both speeding up of processing and securing of the secret of an exponent, there has been proposed a method of safely requesting calculation to an auxiliary device, which is called a requested calculation method. ing. Normally, the request calculation is executed by a device including three parts, a client, a server, and a communication line connecting the two. Among them, the client is a device having secret information related to the target processing, and its computing power is relatively inferior to the server. Further, the server executes the processing content requested by the client and returns the result to the client via the communication line. In such processing, the request calculation is to reduce the entire processing time with the assistance of the server without leaking the confidential information of the client to the third party. By the way, when constructing the request calculation method for the decryption conversion of the RSA encryption, the secret information of the client is the power exponent d of the equation (1).

【0006】そして、これまでに提案されている、べき
乗計算の為の依頼計算の具体的なプロトコルの例とし
て、松本らの方式(文献:松本他、”Speeding,up,secr
et,computations,with,insecure,auxiliary,devices",,
Proc.,of,Crypto'88,,Springer,Lecture,Notes,in,Comp
uter,Science,,403,,pp.497-506,(1988))とその改良版
や変形版(文献:C.-S.,Laih, 他:"Two,efficient,serv
er-aided,secret,computation,protocols",,ASIACRYPT'
91アブストラクト集,,1991,92年出版予定)がある。
しかしこの2つのプロトコルでは、サーバの演算が秘密
指数dの値と完全には独立でないのでクライアント単独
で計算を行う場合に比べて安全性が劣化している。これ
に対し、これらの方式で起こっていた安全性の低下を防
止できる方式として、Quisquaterらはサーバの処理を秘
密指数dの値に依存しない様に構成する方式を提案して
いる(文献:J.J.Quisquater, 他:”Speeding,up,smar
t,card,RSA,computations,with,insecure,coprocessor
s",,SMART,CARD,2000講演論文集,1989年10
月)。しかしながら、Quisquaterらの方式は通信量やク
ライアント/サーバの処理量が大きく、より効率的な方
式の提案が望まれていた。
As an example of a concrete protocol for request calculation for exponentiation that has been proposed so far, the method of Matsumoto et al. (Reference: Matsumoto et al., "Speeding, up, secr
et, computations, with, insecure, auxiliary, devices ",,
Proc., Of, Crypto'88,, Springer, Lecture, Notes, in, Comp
uter, Science, 403,, pp.497-506, (1988)) and its improved and modified versions (literature: C.-S., Laih, et al .: "Two, efficient, serv
er-aided, secret, computation, protocols ",, ASIACRYPT '
91 Abstracts, 1991, scheduled to be published in 1992).
However, in these two protocols, the operation of the server is not completely independent of the value of the secret exponent d, and therefore the security is deteriorated as compared with the case where the calculation is performed by the client alone. On the other hand, Quisquater et al. Have proposed a method in which the processing of the server is configured not to depend on the value of the secret exponent d as a method that can prevent the decrease in security that occurs in these methods (Reference: JJQuisquater). , Others: "Speeding, up, smar
t, card, RSA, computations, with, insecure, coprocessor
s ",, SMART, CARD, 2000 Proceedings, 1989 10
Month). However, the method of Quisquater et al. Requires a large amount of communication and processing of the client / server, and thus a more efficient method has been desired.

【0007】なお、べき指数を秘密にするという前提を
置かない一般のべき乗計算を少ない乗算回数で実現する
方法については、これまで種々の方式が提案されてい
る。しかし、それらの方式は、依頼計算とは違って、べ
き乗をサーバとクライアントが分担し、しかもクライア
ント以外にはべき指数を漏らさないようにすることを目
的としていない。従ってそれらの方式をそのままの形で
依頼計算の目的を達成するために用いることは困難であ
る。
Various methods have been proposed so far as a method for realizing a general exponentiation calculation with a small number of multiplications without making the assumption that the exponent is kept secret. However, unlike the request calculation, those methods do not aim at sharing the exponentiation between the server and the client, and not leaking the exponent to other clients. Therefore, it is difficult to use these methods as they are to achieve the purpose of request calculation.

【0008】[0008]

【発明が解決しようとする課題】このように、従来の依
頼計算装置では、前記松本らの方式では安全性に乏しく
第3者に解読される危険性があり、Quisquaterらの方式
では、処理量が多く演算に長時間を要するという欠点が
あった。
As described above, in the conventional request calculation device, the method of Matsumoto et al. Is poor in security and may be decrypted by a third party, and the method of Quisquater et al. However, there was a drawback that many calculations required a long time.

【0009】この発明はこのような従来の課題を解決す
るためになされたもので、その目的とするところは、高
い安全性を確保し、かつ、演算に要する時間を短縮し得
る依頼計算装置を提供することにある。
The present invention has been made to solve such a conventional problem, and an object of the present invention is to provide a request calculation device capable of ensuring high safety and shortening the time required for calculation. To provide.

【0010】[0010]

【課題を解決するための手段】請求項1記載の本発明
は、演算手段を有する主装置と演算手段を有する1つな
いしは複数の補助装置から構成される依頼計算装置にお
いて、前記依頼計算装置はべき乗剰余計算: Md mod n を実行するものであり、前記主装置は固有の秘密情報で
あるべき指数dを有し、前記主装置は前記べき指数dを
2より大きな正整数bを基数としたb進数表現: d=Σ di i により展開した全ての係数di を保持し、前記補助装置
は、所定の底であるMと所定の法であるnと、前記基数
bを割り切る所定の整数βに依存し、前記d及び前記係
数di のいずれにも依存しない変換として、Mに対しβ
乗を繰り返しnで剰余をとった複数の値を計算し、これ
らの計算結果を主装置に送信し、主装置は補助装置から
受信した複数の計算値と、自装置内に保持する前記複数
の係数diと前記nに依存した変換により、べき乗剰余
計算結果を主装置内に得ることを特徴とする。
According to a first aspect of the present invention, there is provided a request calculation device comprising a main unit having a calculation unit and one or a plurality of auxiliary devices having the calculation unit. Is a modular exponentiation calculation: M d mod n is performed, the main device has an exponent d that should be unique secret information, and the main device has the exponent d as a radix b greater than 2 Retaining all the coefficients d i developed by b = adic Σ d i b i , the auxiliary device divides the radix b by M, which is a predetermined base, and n, which is a predetermined modulus. Β for M as a transformation that depends on a predetermined integer β and does not depend on either d or the coefficient d i
The power is repeated to calculate a plurality of values with the remainder taken by n, and these calculation results are transmitted to the main device, and the main device receives the plurality of calculated values received from the auxiliary device and the plurality of the values stored in the own device. It is characterized in that a power-residue calculation result is obtained in the main unit by a conversion depending on the coefficient d i and the n.

【0011】請求項2記載の本発明は、演算手段を有す
る主装置と演算手段を有する1つないしは複数の補助装
置から構成される依頼計算装置において、前記主装置は
固有の秘密情報を有し、前記秘密情報に依存した秘密計
算を実行するものであり、前記主装置は、乱数発生手段
を有し、前記秘密計算を実行していない時点において、
前記乱数発生手段により複数の乱数を発生し、前記複数
の乱数から所定の変換により得られる乱数依存データを
計算し、前記乱数と前記乱数依存データを保存し、秘密
計算実行時には、前記補助装置は前記秘密情報に依存し
ない所定の変換を実行して得られる第一の変換値を前記
主装置に送信し、前記主装置は前記第一の変換値に前記
乱数を作用させる所定の変換を実行して得られる第二の
変換値を前記補助装置に送信し、前記補助装置は所定の
変換により得られる第三の変換値を前記主装置に送信
し、前記主装置は第三の変換値と前記乱数依存データに
依存した所定の変換を実行して秘密計算の実行結果を自
装置内に得ることを特徴とする。
According to a second aspect of the present invention, in a request calculation device comprising a main device having a calculation means and one or a plurality of auxiliary devices having the calculation means, the main device has unique secret information. However, the secret calculation is performed depending on the secret information, the main device has a random number generating means, and at the time when the secret calculation is not executed,
A plurality of random numbers is generated by the random number generation means, random number dependent data obtained by predetermined conversion from the plurality of random numbers is calculated, and the random number and the random number dependent data are stored. A first conversion value obtained by executing a predetermined conversion that does not depend on the secret information is transmitted to the main device, and the main device executes a predetermined conversion that causes the random number to act on the first conversion value. The second conversion value obtained by transmitting the second conversion value to the auxiliary device, the auxiliary device transmits a third conversion value obtained by a predetermined conversion to the main device, the main device is the third conversion value and the It is characterized in that a predetermined conversion depending on the random number dependent data is executed to obtain the execution result of the secret calculation in the own device.

【0012】請求項3記載の本発明は、第1項記載のべ
き指数dを2より大きな正整数bを基数としたb進数表
現: d=Σ di i により展開した全ての係数di に対し、複数の整数から
なる2つの集合が規定され、前記係数di の全ては、前
記集合のうち第一の集合の一要素と前記集合のうち第二
の集合の一要素の積に対し基数bを法として合同な関係
を有し、主装置は個々の係数di に対応する第一の集合
の要素と第二の集合の要素をそれぞれ対にして保持し、
補助装置は、所定の底であるMと所定の法であるnと、
前記基数bを割り切る所定の整数βと、前記第二の集合
の個々の要素に依存した複数のべき乗剰余計算を実行
し、該計算結果を前記主装置に送信し、前記主装置は、
前記補助装置から受信した計算値と、自装置内に保持す
る前記複数の係数di に対応した第一の集合の各要素と
前記nに依存した変換により、べき乗剰余計算結果を主
装置内に得ることを特徴とする。
[0012] According to a third aspect of the invention, b-adic representation has a large positive integer b the power exponent d according paragraph 1 than 2 and radix: d = sigma d i b i all coefficients developed by d i On the other hand, two sets of integers are defined, and all of the coefficients d i are the product of one element of the first set of the sets and one element of the second set of the sets. It has a congruent relation modulo radix b, and the main unit holds the elements of the first set and the elements of the second set corresponding to the individual coefficients d i in pairs,
The auxiliary device has a predetermined base M and a predetermined modulus n,
A predetermined integer β that divides the radix b and a plurality of modular exponentiation calculations depending on the individual elements of the second set are executed, the calculation results are transmitted to the main device, and the main device is
The calculation result received from the auxiliary device, each element of the first set corresponding to the plurality of coefficients d i held in the own device, and the conversion depending on n are used to obtain the power-residue calculation result in the main device. It is characterized by obtaining.

【0013】[0013]

【作用】上述の如く構成すれば、補助装置が計算する値
は、主装置が保持する秘密情報dに依存していないので
これからdに関する秘密が主装置外に漏れることはな
い。このことは本発明の全てに対して成立する。
With the above arrangement, the value calculated by the auxiliary device does not depend on the secret information d held by the main device, so that the secret regarding d will not leak out of the main device. This holds for all of the inventions.

【0014】本願第一の発明では、補助装置が実行する
部分はM<bi mod n (i=0,1,2,…,1-1)(但し、1は
b進数表現による指数dのサイズ)である。秘密情報d
がどのような値であっても、補助装置が実行するこれら
の演算結果のほとんど全ては以降の主装置での計算に利
用される。すなわち、補助装置が計算し、送信するデー
タ数は必要最低限のものである。このことにより通信時
間および補助装置の計算時間が共に短縮され、べき乗剰
余結果を得るまでの時間が短縮される。
In the first aspect of the present invention, the part executed by the auxiliary device is M <b i mod n (i = 0,1,2, ..., 1-1) (where 1 is the exponent d in b-ary representation). Size). Confidential information d
Whatever the value of? Is, almost all of the results of these operations performed by the auxiliary device are used for subsequent calculations in the main device. That is, the number of data calculated and transmitted by the auxiliary device is the minimum necessary. As a result, both the communication time and the calculation time of the auxiliary device are shortened, and the time until obtaining the modular exponentiation result is shortened.

【0015】本願第二の発明では、主装置の空き時間に
乱数生成を行う。秘密情報dに依存したデータであって
も予め生成した乱数を作用させることにより、dに依存
しないデータに変換できる。すなわち、乱数を作用させ
ることにより、dに依存した所定の計算を、秘密が漏れ
ないように補助装置に依頼できる。このことにより補助
装置に依頼できる計算部分が拡大し、全体として計算時
間が短縮される。
In the second aspect of the present invention, the random number is generated during the idle time of the main device. Even data that depends on the secret information d can be converted to data that does not depend on d by applying a random number generated in advance. That is, by applying a random number, a predetermined calculation depending on d can be requested to the auxiliary device so that the secret is not leaked. This expands the calculation part that can be requested to the auxiliary device, and shortens the calculation time as a whole.

【0016】本願第三の発明では、べき指数dをb進数
展開した個々の係数di を2整数の積で表現する。但
し、2つの整数は予め定められた2つの集合に1つずつ
含まれる。一方の集合の全要素に依存して定まる計算を
補助装置が実行し、それ以外の部分を主装置が実行す
る。補助装置の計算するデータは、その全てが主装置の
演算に必要ではない。しかし、既知の2集合の積で表現
するため、例えば既知の集合の要素の和で表現する場合
に比べて、不要なデータの割合が少なくなり、補助装置
に必要な計算量と必要な通信量が減少する。
In the third invention of the present application, each coefficient d i obtained by expanding a power exponent d into a b-ary number is represented by a product of two integers. However, two integers are included in each of two predetermined sets. The auxiliary device executes the calculation that depends on all the elements of one set, and the main device executes the other part. Not all of the data calculated by the auxiliary device is necessary for the operation of the main device. However, since it is represented by the product of two known sets, the ratio of unnecessary data is smaller than that represented by the sum of the elements of the known set, and the amount of calculation required for the auxiliary device and the amount of communication required Is reduced.

【0017】[0017]

【実施例】以下、本発明の実施例を図面に基づいて説明
する。
Embodiments of the present invention will be described below with reference to the drawings.

【0018】演算手順の説明の前にまず本発明の適用が
最も有効である場合として、ICカードシステムを例に
とり、その典型的なハードウェア構成を図2を参照しな
がら説明する。
Prior to the description of the calculation procedure, as a case where the application of the present invention is most effective, an IC card system will be taken as an example and a typical hardware configuration thereof will be described with reference to FIG.

【0019】同図において、ICカード203とはCP
Uとメモリ、外部との通信端子を持つ名刺大のプラステ
ィック・カードである。秘密指数dと法nはICカード
203のメモリに記録されている。特に、dはカード外
に漏れることがないようにアクセス制御されている。
In the figure, the IC card 203 is a CP
It is a business card-sized plastic card that has a communication terminal for U, memory, and the outside. The secret index d and the modulus n are recorded in the memory of the IC card 203. In particular, d is access-controlled so as not to leak outside the card.

【0020】ICカード203は読み取り・書き込み用
のインタフェース装置すなわちリーダ・ライタ202を
介して端末201に接続される。端末201にはべき乗
を高速に行える演算能力の高いCPUがあってICカー
ド203のべき乗計算を補助する。ICカード203が
以下の説明における「クライアント」に相当し、端末が
「サーバ」に相当する。またリーダ・ライタ202を含
むICカード203と端末201が交換する情報の伝送
路が「通信回線」に相当する。
The IC card 203 is connected to the terminal 201 via a read / write interface device, that is, a reader / writer 202. The terminal 201 has a CPU with high computing capability that can perform exponentiation at high speed, and assists exponentiation calculation of the IC card 203. The IC card 203 corresponds to the “client” in the following description, and the terminal corresponds to the “server”. A transmission line of information exchanged between the IC card 203 including the reader / writer 202 and the terminal 201 corresponds to a “communication line”.

【0021】図1は、本発明が適用された依頼計算装置
の典型的な構成を示すブロック図である。なお、同図は
必ずしもICカードシステムに限定されない。クライア
ント1の代表的な機能ブロックとして、クライアントの
動作を制御する制御部11と、2つの整数値を乗じて結
果を法の値で割った余りを求める剰余乗算処理部12
と、秘密のべき指数を格納するべき指数レジスタ13
と、中間結果等を格納するメモリ14と、外部との通信
を行うための通信処理部16と、これらの間のデータの
授受を実現する為の内部バス15がある。クライアント
1は通信回線3を介してサーバ2とデータのやりとりが
できる。サーバの代表的な構成ブロックは、制御部21
と、剰余乗算処理部22と、メモリ23と、内部バス2
4、および通信処理部25で構成される。一般に、サー
バのべき乗処理能力はクライアントのべき乗処理能力に
比べて相当に高い。
FIG. 1 is a block diagram showing a typical configuration of a request calculation device to which the present invention is applied. The figure is not necessarily limited to the IC card system. As a representative functional block of the client 1, a control unit 11 that controls the operation of the client and a remainder multiplication processing unit 12 that multiplies two integer values and divides the result by a modulus value to obtain a remainder.
And an exponent register 13 for storing a secret exponent
There are a memory 14 for storing intermediate results and the like, a communication processing unit 16 for communicating with the outside, and an internal bus 15 for realizing data exchange between these. The client 1 can exchange data with the server 2 via the communication line 3. A typical configuration block of the server is the control unit 21.
, Remainder multiplication processing unit 22, memory 23, and internal bus 2
4 and the communication processing unit 25. Generally, the exponentiation processing capability of the server is considerably higher than that of the client.

【0022】次に、本発明に基づく第1実施例を図3に
示すフローチャートに基づいて説明する。クライアント
の処理の目的はべき指数dの秘密を保ちつつ、最終的に
C=Md mod nを得ることである。なお、以下に示す各
フローチャートでは、図中の1点鎖線の右側がサーバ側
の処理を示し、左側がクラアント側の処理を示す。
Next, a first embodiment according to the present invention will be described based on the flowchart shown in FIG. The purpose of the processing of the client is to finally obtain C = M d mod n while keeping the power exponent d secret. In each flow chart shown below, the right side of the one-dot chain line in the figure shows the processing on the server side, and the left side shows the processing on the client side.

【0023】[0023]

【外1】 のビット数をmとするとき、dのビット数も通常m程度
である。
[Outer 1] When the number of bits of m is m, the number of bits of d is usually about m.

【0024】[0024]

【数1】 但し、0≦dj ≦2k −1。このべき指数dはクライア
ント以外には秘密である。なお、以下の説明で記号「a
←b」は値bを変数aに代入することを表す。また、
(2)式における2kjが特許請求の範囲に示すb(j)
である。そして、クライアントとサーバは以下の各ステ
ップに従って処理を進める。図中の処理ステップ番号は
以下の手続きのそれと対応している。
[Equation 1] However, 0 ≦ d j ≦ 2 k −1. This exponent d is secret except for the client. In the following description, the symbol "a
"← b" represents substituting the value b for the variable a. Also,
2 kj in the equation (2) is b (j) shown in the claims.
Is. Then, the client and the server proceed according to the following steps. The processing step numbers in the figure correspond to those in the following procedure.

【0025】ステップST1:クライアントはM,nを
サーバに送る。
Step ST1: The client sends M, n to the server.

【0026】ステップST2:サーバは以下の(a)〜
(c)の処理を行う。
Step ST2: The server executes the following (a)-
The process of (c) is performed.

【0027】(a)初期設定。(A) Initial setting.

【0028】y0 ←MY 0 ← M

【外2】 j ←yj-1 ∧2k mod n(注意:記号a∧bはaのb
乗を表す)
[Outside 2] y j ← y j-1 ∧ 2 k mod n (Note: the symbol a ∧ b is b of a
Represents the square)

【外3】 次に、クライアントはサーバから逐次送られてくる、y
j (j=1,2,…,
[Outside 3] Next, the clients are sent sequentially from the server, y
j (j = 1, 2, ...,

【外4】 乗算して行く。[Outside 4] Multiply and go.

【0029】ステップST3:添え字i=1,2,…,
k −1について初期化する。
Step ST3: Subscripts i = 1, 2, ...,
Initialize for 2 k -1.

【0030】z(i)←1Z (i) ← 1

【外5】 但し、y0 =Mとし、dj =0についてはyj は掛けな
い。
[Outside 5] However, y 0 = M is set, and y j is not multiplied when d j = 0.

【0031】z(dj )←{z(dj )・yj }mod n そして、クライアントは以下の処理を行う。Z (d j ) ← {z (d j ) · y j } mod n Then, the client performs the following processing.

【0032】ステップST5:添え字i=2k −2,2
k −3,…,2,1についてこの順に、 z(i)←{z(i)・z(i+1)}mod n を計算する。
Step ST5: Subscript i = 2 k −2,2
z (i) ← {z (i) · z (i + 1)} mod n is calculated in this order for k− 3, ..., 2,1.

【0033】ステップST6:ステップST5をもう一
度繰り返す。
Step ST6: Step ST5 is repeated once again.

【0034】ステップST7:メモリz(1)の内容が
求める結果である。
Step ST7: The result of the contents of the memory z (1) is obtained.

【0035】以上の手順でz(1)にC=Md mod nが
得られる理由は以下の通りである。まず、yj は定義か
ら次のように表現される。
The reason why C = M d mod n is obtained in z (1) by the above procedure is as follows. First, y j is expressed as follows from the definition.

【0036】 yj ={M∧2k j }mod n …(3) ステップST3,ST4の結果、z(i)にはdj =i
を満たす任意の添え字jを持つyj が累積されている。
式で表現すると、次の(4)式となる。
Y j = {M∧2 kj } mod n (3) As a result of steps ST3 and ST4, d j = i for z (i)
Y j having an arbitrary subscript j that satisfies is accumulated.
When expressed by a formula, the following formula (4) is obtained.

【0037】[0037]

【数2】 ここで、[Equation 2] here,

【数3】 に(4)を代入して項の順序を入れ換えて、Mのべき指
数を添え字jの大きい順に並べると(5)式のMを底と
するべき指数はdに等しくなることがわかる。すなわち
(4)式と(5)式によってC=Md mod nが計算でき
る。ところで、ス
[Equation 3] By substituting (4) into the order of terms and arranging the exponents of M in descending order of the subscript j, it can be seen that the exponent whose base is M in Eq. (5) is equal to d. That is, C = M d mod n can be calculated by the equations (4) and (5). By the way

【外6】 計算している。従って以上の手続きによってクライアン
トは目的の演算結果を得ることができる。
[Outside 6] I'm calculating. Therefore, the client can obtain the desired calculation result by the above procedure.

【0038】さて、このような手順による依頼計算の性
能について考察する。
Now, let us consider the performance of request calculation by such a procedure.

【0039】べき指数の秘匿性:上記の手順によれば通
信回線を流れる情報や、サーバの処理は秘密のべき指数
dの値に依存していない。従ってdに関する情報は以上
の手順によってクライアント外に漏れることはない。
Concealment of exponent: According to the above procedure, the information flowing through the communication line and the processing of the server do not depend on the value of the secret exponent d. Therefore, the information regarding d will not be leaked outside the client by the above procedure.

【0040】サーバの処理量0 サーバの処理の内、最も
手間のかかる部分は通常ステップST2(b)のべき乗
剰余計算部分である。ステップST2(b)では(m−
k)回の剰余乗算を必要とする。
Processing amount of server 0 Among the processing of the server, the most troublesome part is the modular exponentiation calculation part of the normal step ST2 (b). In step ST2 (b), (m-
k) requires modular multiplication.

【0041】クライアントの処理量:クライアントの処
理の内、最も手間のかかるのは、ステップST4とステ
ップST5,ST6の剰余乗算である。それらのステッ
プで
Processing amount of the client: Among the processings of the client, the most troublesome one is the modular multiplication of steps ST4 and ST5, ST6. In those steps

【外7】 通信量:サーバとクライアントの間でやり取りされるメ
ッセージを、mビットのブロックを単位として数える。
ステップST1とステップST2(c)の通信
[Outside 7] Communication volume: The messages exchanged between the server and the client are counted in units of m-bit blocks.
Communication between step ST1 and step ST2 (c)

【外8】 メモリ量:演算に関わるメモリ量をmビットのブロック
を単位として概算すると、サーバはyi とM,nの3ブ
ロック、クライアントはM,yj ,z(i)、n、およ
びdの(2k +3)ブロックである。
[Outside 8] Memory amount: When the memory amount related to the operation is roughly estimated in units of m-bit blocks, the server has three blocks of y i and M, n, and the client has M, y j , z (i), n, and (2 k +3) blocks.

【0042】以上は他の方式の特性と共に表1にまとめ
る。また、暗号システムで用いられる典型的な法nのビ
ット数は512ビットなので、その場合の具体的性能を
表2にまとめる。他の方式との比較は後ほどまとめて行
う。
The above is summarized in Table 1 together with the characteristics of other systems. Further, since the typical number of bits of the modulus n used in the cryptographic system is 512 bits, Table 2 summarizes the specific performance in that case. The comparison with other methods will be summarized later.

【0043】なお、RSA暗号のべき乗計算を行う場合
には、法nは桁数がnの半分程度の2つの素数p,qの
積であり、クライアントは通常その値を知っている。整
数論の性質からnを法とする剰余乗算1回は、p,qを
法とする剰余乗算を各1回行い結果を中国剰余定理で合
成することでも実現できる。このことを利用してクライ
アントが行う剰余乗算を法p,法qに分けて実行するこ
とが可能である。その場合の利点としては、法p,法q
で考えると法nでべき乗を考える場合と比べてべき指数
の長さが約半分となるので、サーバがクライアントに送
るyj の数が第1実施例で示した数の約半分ですむ点で
ある。そのため通信量の削減と、サーバの演算量の削減
を達成できる。以下の実施例においても、クライアント
の剰余乗算を法pと法qに分けて行うことによって、第
1実施例の場合と全く同様に通信量とサーバの演算量の
削減を達成できる。
Note that when performing exponentiation calculation of RSA encryption, the modulus n is the product of two prime numbers p and q whose number of digits is about half of n, and the client usually knows the value. Due to the property of number theory, one modular multiplication with modulo n can also be realized by performing modular multiplication once with modulo p and q once and synthesizing the result with the Chinese modular theorem. Utilizing this fact, it is possible to divide the modular multiplication performed by the client into modulo p and modulo q and execute them. In that case, the advantage is that the modulus p and the modulus q are
Considering the above, the length of the exponent is about half compared to the case where the power is modulo n, so the number of y j sent to the client by the server is about half the number shown in the first embodiment. is there. Therefore, it is possible to reduce the communication amount and the calculation amount of the server. In the following embodiments as well, by dividing the modular multiplication of the client into modulo p and modulo q, it is possible to achieve the same reduction of the communication amount and the calculation amount of the server as in the first embodiment.

【0044】次に本発明に基づく第2実施例を図4に示
すフローチャートに基づいて説明する。まず、べき指数
dはmビットの2進数であるとし、そのビット位置を最
下位ビットから順に、ビット位置0、その隣をビット位
置1、と定義する。そして、
Next, a second embodiment according to the present invention will be described based on the flowchart shown in FIG. First, it is assumed that the power exponent d is an m-bit binary number, and its bit position is defined as a bit position 0 in order from the least significant bit and a bit position next to it is a bit position 1. And

【外9】 出されていてクライアントのみがそれを記憶している。[Outside 9] Issued and only the client remembers it.

【0045】ブロック切り出しは次の様に行う。2進表
現されたべき指数を最下位ビットから最上位ビットの方
向に走査し、ビット「1」が現れるまで走査を続ける。
ビット「1」が現れたら、そのビットから上位ビットに
むけて、そのビットを含むkビットを第1のブロックu
1 として切り出す。また、前記ビット「1」のビット位
置をw(1)と表す。以下同様にして、まだ切り出しの
行なわれていないビットを最上位ビットまで走査し、ビ
ット「1」が現れる度にブロックの切り出しを行う。こ
のときdは次の(6)式の様に表される。
Block cutting is performed as follows. The exponent represented in binary is scanned from the least significant bit to the most significant bit, and the scanning is continued until the bit "1" appears.
When the bit “1” appears, the k bits including the bit are moved from the bit to the upper bit in the first block u.
Cut out as 1 . Further, the bit position of the bit “1” is represented by w (1). Similarly, the bits that have not yet been cut out are scanned up to the most significant bit, and a block is cut out every time a bit "1" appears. At this time, d is represented by the following equation (6).

【0046】[0046]

【数4】 ブロックの切り出し方から、ur は奇数かつ1≦ur
k −1を満たす。以
[Equation 4] U r is an odd number and 1 ≦ u r ≦ depending on how the block is cut out
2 k −1 is satisfied. Since

【外10】 ある。[Outside 10] is there.

【0047】ステップST11:クライアントはM,n
をサーバに送る。
Step ST11: Client is M, n
To the server.

【0048】ステップST12:サーバは以下の(a)
〜(c)処理を行う。
Step ST12: The server executes the following (a)
~ (C) Processing is performed.

【0049】(a)初期設定。(A) Initial setting.

【0050】y0 ←M (b)添え字j=1,2,…,mについて2乗計算を繰
り返す。
Y 0 ← M (b) The square calculation is repeated for the subscripts j = 1, 2, ..., M.

【0051】yj ←(yj-1 ∧2)mod n (c)y1 ,y2 ,…,ym をクライアントに送る。Send y j ← (y j-1 ∧ 2) mod n (c) y 1 , y 2 , ..., Y m to the client.

【0052】次に、クライアントはサーバから逐次送ら
れてくる、yj (j=1,2,…,
Next, the clients are sequentially sent from the server, y j (j = 1, 2, ...,

【外11】 モリz(i)(i=1,2,…,2k-1 )に以下の様に
累積乗算して行く。但し、y0 =Mとする。
[Outside 11] The memory z (i) (i = 1, 2, ..., 2 k-1 ) is cumulatively multiplied as follows. However, y 0 = M.

【0053】ステップST13:添え字i=1,2,
…,2k-1 について初期化を行う。
Step ST13: Subscripts i = 1, 2,
..., initialization is performed for 2k-1 .

【0054】z(i)←1Z (i) ← 1

【外12】 z((ur +1)/2)←{z((ur +1)/2)・
w(r)}mod n そして、クライアントは以下の処理を行う。
[Outside 12] z ((u r +1) / 2) ← {z ((u r +1) / 2) ・
y w (r) } mod n Then, the client performs the following processing.

【0055】ステップST15:添え字i=2k-1
1,2k-1 −2,…,2,1についてこの順に、 z(i)←z(i)・z(i+1)mod n を計算する。
Step ST15: Subscript i = 2 k-1
Calculate z (i) ← z (i) · z (i + 1) mod n in this order for 1, 2, k−1 −2, ..., 2, 1.

【0056】ステップST16:w←z(1) ステップST17:ステップST15の処理を繰り返
す。
Step ST16: w ← z (1) Step ST17: The process of step ST15 is repeated.

【0057】 ステップST18:z(1)←w・z(1)2 mod n ステップST19:メモリz(1)の内容が求める結果
である。
Step ST18: z (1) ← w · z (1) 2 mod n Step ST19: The result of the contents of the memory z (1) is obtained.

【0058】以上の手順でz(1)にC=Md mod nが
得られる理由は第1実施例の場合とほぼ同様に説明でき
るが、本実施例ではべき指数を分解したブロックur
すべて奇数であることを利用してステップST15〜S
T18の処理を行うので、同じkを用いた場合、必要な
z(i)の数が第1実施例に比べて半分で済むこと、ま
たステップST15〜ST18の手数もほぼ半分で済む
点が異なっている。第2実施例についても性能を表1,
2に示す。第2実施例の特徴は後に方式の比較の項で明
らかにする。
The reason why C = M d mod n can be obtained in z (1) by the above procedure can be explained almost in the same way as in the first embodiment, but in this embodiment the block u r obtained by decomposing the exponent is Utilizing that all are odd, steps ST15 to S
Since the process of T18 is performed, when the same k is used, the required number of z (i) is half that in the first embodiment, and the steps ST15 to ST18 are also approximately half the number. ing. The performance is also shown in Table 1 for the second embodiment.
2 shows. The characteristics of the second embodiment will be clarified later in the section of system comparison.

【0059】次に本発明に基づく第3実施例を図5に示
すフローチャートに基づいて説明す
Next, a third embodiment according to the present invention will be described based on the flowchart shown in FIG.

【外13】 されていて、クライアントのみが各ブロックの値を知っ
ている。
[Outside 13] And only the client knows the value of each block.

【0060】ステップST21:クライアントはM,n
をサーバに送る。
Step ST21: Client is M, n
To the server.

【0061】次いで、サーバは次の処理を行う。Next, the server performs the following processing.

【0062】ステップST22:初期設定を行う。Step ST22: Initialization is performed.

【0063】r←1,y0 (1)←M,w←M ステップST23:添え字i=1,2,…,2k −1に
ついて剰余乗算を行う。 yi (r)←{yi-1 (r)・M}mod n ステップST24:r,y1 (r),y2 (r),…,
y−(2k −1)の内容をクライアントに送る。ここで
y−x は下付きの添字がx であることを表す。
R ← 1, y 0 (1) ← M, w ← M Step ST23: Modulo multiplication is performed for the subscripts i = 1, 2, ..., 2 k -1. y i (r) ← {y i-1 (r) · M} mod n Step ST24: r, y 1 (r), y 2 (r), ...,
Send the contents of y- (2 k -1) to the client. Here, y− x represents that the subscript is x.

【0064】[0064]

【外14】 ステップST28:r←r+1 ステップST29:次のようにy0 (r)を再設定して
ステップST23に戻る。
[Outside 14] Step ST28: r ← r + 1 Step ST29: Reset y 0 (r) as follows and return to step ST23.

【0065】w←(w∧2k )mod n y0 (r)←w そして、クライアントの処理は以下である。W ← (w∧2 k ) mod n y 0 (r) ← w Then, the process of the client is as follows.

【0066】ステップST25:ステップステップST
24でサーバから送られてくる、yi(r)(i=0,
1,2,…,2k −1)の値を、以下の規則で累積乗算
して行く。ただし、dr =0の場合には掛ける操作を行
なわない。
Step ST25: Step Step ST
Y i (r) (i = 0, sent from the server at 24)
The values 1, 2, ..., 2 k −1) are cumulatively multiplied according to the following rules. However, when d r = 0, no multiplication operation is performed.

【0067】z←(z・ydr (r))mod n ステップST26:r=1ならばステップST27に進
む。
Z ← (z · yd r (r)) mod n Step ST26: If r = 1, the process proceeds to step ST27.

【0068】ステップST27:メモリzの内容が求め
る結果である。
Step ST27: The result of the contents of the memory z is obtained.

【0069】この手順によってC=Md mod nが得られ
ることは明らかである。
It is clear that this procedure yields C = M d mod n.

【0070】次に本発明に基づく第4実施例を図6、図
7に示すフローチャートに基づいて
Next, a fourth embodiment according to the present invention will be described with reference to the flow charts shown in FIGS.

【外15】 れクライアントに記憶されているとする。[Outside 15] Stored in the client.

【0071】まず、クライアントはべき乗計算に先だっ
て以下の前処理を行う。
First, the client performs the following preprocessing prior to power calculation.

【0072】ステップST31:n未満の(2k −1)
個の乱数ri (i=1,2,…,2k−1)を生成す
る。
Step ST31: (2 k -1) less than n
A random number r i (i = 1, 2, ..., 2 k −1) is generated.

【0073】ステップST32:次の(7)式で定義さ
れるRを計算する。
Step ST32: R defined by the following equation (7) is calculated.

【0074】[0074]

【数5】 ステップ33:Rの法nにおける逆数R-1を計算する。
定義からRとR-1は次の(8)式を満たす。
[Equation 5] Step 33: Compute the reciprocal R −1 of modulo n of R.
From the definition, R and R -1 satisfy the following expression (8).

【0075】 (R・R-1)mod n=1 …(8) ステップST34:クライアントはM,nをサーバに送
る。
(R · R −1 ) mod n = 1 (8) Step ST34: The client sends M and n to the server.

【0076】そして、サーバは以下の処理を行う。Then, the server performs the following processing.

【0077】ステップST35:初期設定。Step ST35: Initial setting.

【0078】y0 ←MY 0 ← M

【外16】 j ←yj-1 ∧2k mod n(注意:記号a∧bはaのb
乗を表す)
[Outside 16] y j ← y j-1 ∧ 2 k mod n (Note: the symbol a ∧ b is b of a
Represents the square)

【外17】 次いで、クライアントはサーバから逐次送られてくる、
j (j=1,2,…
[Outside 17] Then the clients are sent in sequence from the server,
y j (j = 1, 2, ...

【外18】 積乗算して行く。但し、y0 =Mとし、また、dj =0
に対してはyj は掛けない。
[Outside 18] Multiply and multiply. However, y 0 = M, and d j = 0
Y j is not applied to.

【0079】ステップST38:添え字i=1,2,
…,2k −1について初期化する。
Step ST38: Subscripts i = 1, 2,
.., 2 k −1 is initialized.

【0080】z(i)←ri Z (i) ← r i

【外19】 [Outside 19] .

【0081】z(dj )←{z(dj )・yj }mod n ステップST40:z(i)(i=1,2,…,2k
1)をサーバに送る。
Z (d j ) ← {z (d j ) · y j } mod n Step ST40: z (i) (i = 1, 2, ..., 2 k −)
1) is sent to the server.

【0082】その後、サーバは送られたz(i)の値を
メモリw(i)にコピーし以下の処理を行う。
After that, the server copies the value of z (i) sent to the memory w (i) and performs the following processing.

【0083】ステップST41:添え字i=2k −2,
k −3,…,2,1についてこの順に、 w(i)←{w(i)・w(i+1)}mod n を計算する。
Step ST41: Subscript i = 2 k −2,
W (i) ← {w (i) · w (i + 1)} mod n is calculated in this order for 2 k -3, ..., 2, 1.

【0084】ステップST42:ステップST41のス
テップをもう一度繰り返す。
Step ST42: The step ST41 is repeated once again.

【0085】ステップST43:w(1)の内容をクラ
イアントに送る。
Step ST43: The contents of w (1) are sent to the client.

【0086】ステップST44:クライアントはサーバ
から受け取ったw(1)の値をz(1)にコピーし、 z(1)←{z(1)・R-1}mod n を計算し最終結果をz(1)に得る(ステップST4
5)。
Step ST44: The client copies the value of w (1) received from the server to z (1), calculates z (1) ← {z (1) · R −1 } mod n, and outputs the final result. get z (1) (step ST4)
5).

【0087】この手順は第1実施例を基本形としてい
る。両者の相違点は第1実施例ではクライアントが行っ
ているステップST5,ST6の処理を、本実施例では
ステップST41〜ST43においてサーバに行わせて
いる点である。但し、z(i)の値からべき指数に関す
る情報がサーバに漏れないように、ステップST38の
初期化に乱数を掛け込んでいる。またステップST43
を終了した段階でクライアントが受け取った値は最終結
果のR倍である。これを補正する為にステップST44
では受信結果にRの逆数R-1を掛けている。ステップS
T33でRの逆数R-1を予め計算してあるのでステップ
ST44の処理は剰余乗算1回の手間で完了する。
This procedure is based on the first embodiment. The difference between the two is that the processes of steps ST5 and ST6 performed by the client in the first embodiment are performed by the server in steps ST41 to ST43 in the present embodiment. However, a random number is multiplied in the initialization in step ST38 so that information regarding the exponent from the value of z (i) does not leak to the server. In addition, step ST43
The value received by the client at the end of is the R times the final result. To correct this, step ST44
Then, the reception result is multiplied by the reciprocal R −1 . Step S
Since the reciprocal R −1 of R is calculated in advance at T33, the process of step ST44 is completed with one labor of modular multiplication.

【0088】なお、本実施例のステップST31〜ST
33はMが定まる前に行えるので、クライアントのCP
Uの空き時間を利用して予め計算しておける。そこで、
事前には行えないステップST34以降にクライアント
が行う乗算回数を、第1実施例のクライアントの乗算回
数と比較すると、本実施例の計算量の方が減っている。
通信時間を無視し、サーバが十分高速であるという仮定
の下では、本実施例は第1実施例よりも処理時間を短縮
できる。
Incidentally, steps ST31 to ST of the present embodiment.
Since 33 can be done before M is decided, CP of the client
It can be calculated in advance using the free time of U. Therefore,
Comparing the number of multiplications performed by the client after step ST34, which cannot be performed in advance, with the number of multiplications performed by the client of the first embodiment, the calculation amount of the present embodiment is smaller.
This embodiment can reduce the processing time more than the first embodiment under the assumption that the communication time is ignored and the server is sufficiently fast.

【0089】さて、次に本発明に基づく第5実施例を図
8,図9に示すフローチャートに基づいて説明する。本
実施例は第2実施例を基本形としており、第4実施例と
同様の変形を加えている。本実施例によれば4つの実施
例の内最もクライアントの計算量を削減できる。ここで
ステップST51〜ST53の計算量は比較に含めてい
ないことに注意する必要がある。
Now, a fifth embodiment of the present invention will be described with reference to the flow charts shown in FIGS. The present embodiment is based on the second embodiment, and has the same modifications as the fourth embodiment. According to this embodiment, the calculation amount of the client can be reduced most among the four embodiments. It should be noted that the calculation amount of steps ST51 to ST53 is not included in the comparison.

【0090】[0090]

【外20】 出されていてクライアントのみがそれを記憶している。[Outside 20] Issued and only the client remembers it.

【0091】まず、クライアントはべき乗計算に先だっ
て以下の前処理を行う。
First, the client performs the following preprocessing prior to power calculation.

【0092】ステップST51:n未満の2k-1 個の乱
数ri (i=1,2,…,2k-1 )を生成する。
[0092] Step ST51: 2 k-1 random numbers less than n r i (i = 1,2, ..., 2 k-1) to generate a.

【0093】ステップST52:次式で定義されるRを
計算する。
Step ST52: R defined by the following equation is calculated.

【0094】[0094]

【数6】 ステップST53:(R・R-1)mod n=1を満たすR
-1を求める。
[Equation 6] Step ST53: R satisfying (R · R −1 ) mod n = 1
-1 is asked.

【0095】ステップST54:クライアントはM,n
をサーバに送る。
Step ST54: The client is M, n
To the server.

【0096】次いで、サーバは以下の処理を行う。Next, the server performs the following processing.

【0097】ステップST55:初期設定。Step ST55: Initial setting.

【0098】y0 ←M ステップST56:添え字j=1,2,…,mについて
2乗計算を繰り返す。
Y 0 ← M Step ST56: The square calculation is repeated for the subscripts j = 1, 2, ..., M.

【0099】yj ←(yj-1 ∧2)mod n ステップST57:y1 ,y2 ,…,ym をクライアン
トに送る。
Y j ← (y j-1 ∧ 2) mod n Step ST57: y 1 , y 2 , ..., Y m are sent to the client.

【0100】そして、クライアントはサーバから逐次送
られてくる、yj (j=1,2,…
Then, the clients are sequentially sent from the server, y j (j = 1, 2, ...).

【外21】 z(i)(i=1,2,…,2k-1 )に以下の様に累積
乗算して行く。但し、y0 =Mとする。
[Outside 21] z (i) (i = 1, 2, ..., 2 k-1 ) is cumulatively multiplied as follows. However, y 0 = M.

【0101】ステップST58:添え字i=1,2,
…,2k-1 についてz(i)の初期化を行う。
Step ST58: Subscripts i = 1, 2,
..., z (i) is initialized for 2 k-1 .

【0102】z(i)←ri Z (i) ← r i

【外22】 z((ur +1)/2)←{z((ur +1)/2)・
w(r)}mod n ステップST60:メモリz(i)(i=1,2,…,
k-1 )の値をサーバに送る。
[Outside 22] z ((u r +1) / 2) ← {z ((u r +1) / 2) ・
yw (r) } mod n Step ST60: Memory z (i) (i = 1, 2, ...,
2 k-1 ) value is sent to the server.

【0103】その後、サーバは受け取った値をメモリg
(i)(i=1,2,…,2k-1 )にコピーし、以下の
処理を行う。
After that, the server stores the received value in the memory g.
(I) (i = 1, 2, ..., 2 k-1 ) is copied, and the following processing is performed.

【0104】ステップST61:添え字i=2k-1
1,2k-1 −2,…,2,1についてこの順に、 g(i)←{g(i)・g(i+1)}mod n を計算する。
Step ST61: Subscript i = 2 k-1
Calculate g (i) ← {g (i) · g (i + 1)} mod n in this order for 1, 2, k−1 −2, ..., 2, 1.

【0105】ステップST62:v←g(1) ステップST63:ステップST61の処理を繰り返
す。
Step ST62: v ← g (1) Step ST63: The processing of step ST61 is repeated.

【0106】ステップST64:g(1)←(v・g
(1)2 )mod n ステップST65:g(1)の値をクライアントに送
る。
Step ST64: g (1) ← (v · g
(1) 2 ) mod n Step ST65: The value of g (1) is sent to the client.

【0107】ステップST66:クライアントはサーバ
から受け取ったg(1)の値をZ(1)にコピーし、 z(1)←{z(1)・R-1}mod n を計算し最終結果をz(1)に得る。
Step ST66: The client copies the value of g (1) received from the server to Z (1), calculates z (1) ← {z (1) · R −1 } mod n, and outputs the final result. Get to z (1).

【0108】次に、第1実施例から第7実施例における
処理量及びメモリ量に関する比較を以下の表1に示す。
但し、実施例6と実施例7では、H={1,−1,2,
−2},K=[b/3]の場合を取りあげた。
Next, Table 1 below shows a comparison between the processing amount and the memory amount in the first to seventh embodiments.
However, in Example 6 and Example 7, H = {1, -1, 2,
-2}, K = [b / 3] is taken up.

【0109】次に、本発明に基づく第6の実施例を図1
0に示すフローチャートに基づいて説明する。本実施例
においてはべき指数dの分解を以下のように行う。
Next, a sixth embodiment according to the present invention will be described with reference to FIG.
This will be described based on the flowchart shown in FIG. In the present embodiment, the power index d is decomposed as follows.

【0110】[0110]

【数7】 但し、hj ∈H={α1 ,α2 ,…,αt },0≦kj
kなる整数。すなわち個々のdj をdj =hj j mod
b なるhj とkj の積に分解して表す。このようなべき
指数の分解の一例は、文献:E.Brickell, 他:"Fast Ex
ponentiation with Precomputation",Proc.of EUROCRIP
T'92, pp.193-201" にて述べられている。具体的には、 (1) H={1,-1}, K=「(b-1)/2 」。尚、記号「a」は
a以上の最小整数を表わす。
[Equation 7] However, h j εH = {α 1 , α 2 , ..., α t }, 0 ≦ k j
An integer k. That is, the individual d j d j = h j k j mod
It is expressed as a product of h j and k j . An example of decomposition of such exponents is found in E. Brickell, et al .: "Fast Ex.
ponentiation with Precomputation ", Proc.of EUROCRIP
T'92, pp.193-201 ". Specifically, (1) H = {1, -1}, K =" (b-1) / 2 ". The symbol "a" represents a minimum integer of a or more.

【0111】(2) H={1,-1,2,-2},K=[b/3] 、但し、
bは奇数。尚、記号[a]はa以下の最大の整数を表わ
す。
(2) H = {1, -1,2, -2}, K = [b / 3], where
b is an odd number. The symbol [a] represents a maximum integer equal to or less than a.

【0112】はそのような分解の例である。Is an example of such a decomposition.

【0113】ステップST61:M,n の送信 クライアントはM.n をサーバに送る。Step ST61: The transmission client of M, n is M.n. sends n to the server.

【0114】ステップST62:サーバの演算 サーバは以下の式により表現される全てのyij(0≦ i≦
1-1, 1≦ j≦t )を計算し、結果をクライアントに送
る。
Step ST62: Computation of Server The server computes all y ij (0≤i≤) represented by the following equation.
1-1, 1 ≤ j ≤ t) is calculated and the result is sent to the client.

【0115】yij={M>(αj i )}mod n (0≦
i≦1-1, 1≦ j≦t ) ステップST63:クライアントの演算 クライアントはサーバから逐次送られてくるyij(0≦ i
≦1-1,1 ≦ j≦t )に対し、M>(hi i )mod n (0
≦ i≦1-1)の値を選択する。選択される値は、同じ第1
添え字 iをもつ t個のyijの中から高々1つであり、合
計でも高々1個である。第1添え字 iに対し、選択され
た値をyi*と書くことにする。
Y ij = {M> (α j b i )} mod n (0 ≦
i ≦ 1-1, 1 ≦ j ≦ t) Step ST63: Calculation of Client The client sequentially sends y ij (0 ≦ i
≦ 1-1,1 ≦ j ≦ t), M> (h i b i ) mod n (0
Select the value ≤ i ≤ 1-1). The values selected are the same first
There is at most one out of t y ij with a subscript i, and at most one at a total. For the first subscript i, write the selected value as y i * .

【0116】次に、以下の計算を実行して所望の値Sを
求める。
Next, the following calculation is executed to obtain the desired value S.

【0117】[0117]

【数8】 但し、[Equation 8] However,

【数9】 上記のz(u)はki =j であるyi*を全ての i(0≦ i
≦1-1)について累積した結果である。
[Equation 9] Additional z (u) is k i = a j y i * all i (0 ≦ i
The results are cumulative for ≦ 1-1).

【0118】z(j)(1≦ j≦k)の値を個別にメモリに格
納した後、べき乗積を実行する場合には、ステップST
63は以下のステップに分解される。
When the value of z (j) (1≤j≤k) is individually stored in the memory and then the power product is executed, step ST
63 is decomposed into the following steps.

【0119】(a) メモリz(j)(j=1,2,…,k) への累積 クライアントは添え字j=1,2,…, kについてメモリz
(j) を1に設定し、さらに添え字i=0,1,2,…, l-1につ
いて累積乗算を行う。
(A) Cumulative memory z (j) (j = 1,2, ..., k) The client is the memory z for the subscript j = 1,2, ..., k.
(j) is set to 1, and cumulative multiplication is performed for subscripts i = 0, 1, 2, ..., I-1.

【0120】 z( ki )={z( ki ) ・yi*・mod n (b) クライアントは添え字j=K-1, K-2, …,2,1につい
てこの順に、以下の計算を行う。
Z (k i ) = {z (k i ) .y i * .mod n (b) The client uses the subscripts j = K-1, K-2, ... Calculate.

【0121】z(j) ={z(j) ・z(j+1)}mod n (C) クライアントは(b) の計算をもう一度繰り返す。メ
モリz(1) の内容が求める結果である。
Z (j) = {z (j) z (j + 1)} mod n (C) The client repeats the calculation of (b) again. The result of the contents of the memory z (1) is obtained.

【0122】この第6の実施例では、サーバに依頼する
計算と通信量が第1の実施例および第2の実施例より多
く、第3の実施例よりも少ない。逆に、クライアントの
乗算回数は第1・第2の実施例よりも少なく、第3の実
施例よりも多い。このため、第1・第2の実施例と比較
して、サーバの処理能力と通信速度がより大きく、クラ
イアントの処理能力がより小さい場合に第6の実施例の
手順は有効となる。
In the sixth embodiment, the amount of calculation and the amount of communication requested to the server are larger than those in the first and second embodiments and smaller than those in the third embodiment. On the contrary, the number of multiplications by the client is smaller than that in the first and second embodiments and larger than that in the third embodiment. Therefore, as compared with the first and second embodiments, the procedure of the sixth embodiment is effective when the processing capacity and communication speed of the server are larger and the processing capacity of the client is smaller.

【0123】次に、前記第6の実施例のうち、クライア
ントがステップST63にて実行するべき乗積計算をサ
ーバに依頼する第7の実施例を説明する。図11にフロ
ーチャートを示した。クライアントのべき指数の分解は
第6の実施例と同様に行われているものとする。
Next, of the sixth embodiment, a seventh embodiment will be described in which the client requests the server to perform a power product calculation to be executed in step ST63. A flowchart is shown in FIG. It is assumed that the exponent of the client is decomposed as in the sixth embodiment.

【0124】 ステップST71:クライアントの事前処理 まず、クライアントはK個の乱数rj (1≦ j≦k)を発生
する。但し、乱数rjはn未満の整数である。さらに、
次式で定義される値RとR-1を求める。
Step ST71: Pre-Processing of Client First, the client generates K random numbers r j (1 ≦ j ≦ k). However, the random number r j is an integer less than n. further,
The values R and R -1 defined by the following expressions are obtained.

【0125】[0125]

【数10】 R・R-1=1 mod n 以上の処理はべき乗計算Md mod n を実行する以前に行
う。例えばクライアント内のCPU のアイドル時間を利用
してこの処理を行い、結果を幾つかクライアント内のメ
モリに保存しておく。
[Equation 10] R · R −1 = 1 mod n The above processing is performed before the power calculation M d mod n is executed. For example, this process is performed by using the idle time of the CPU in the client, and some results are saved in the memory in the client.

【0126】ステップST72:M,n の送信 クライアントはM,n をサーバに送る。Step ST72: Transmission of M, n The client sends M, n to the server.

【0127】ステップST73:サーバの演算 サーバは以下の式により表現される全てのyij(0≦ i≦
1-1, 1≦ j≦t)を計算し、結果をクライアントに送る。
Step ST73: Computation of Server The server computes all y ij (0≤i≤) represented by the following equation.
1-1, 1 ≤ j ≤ t) is calculated and the result is sent to the client.

【0128】yij={M>(αj i )}mod n (0≦ i
≦1-1, 1≦ j≦t) (1*t)個のデータであるyijの送信においては、クライ
アント側でデータの識別ができるように送信の順序を規
定しておく。
Y ij = {M> (α j b i )} mod n (0 ≦ i
≤1-1, 1 ≤ j ≤ t) In the transmission of (1 * t) pieces of data y ij , the transmission order is defined so that the client can identify the data.

【0129】 ステップST74:クライアントによる累積乗算 クライアントはサーバから逐次送られてくるyij(0≦ i
≦1-1, 1≦ j≦t)に対し、M>(hi i )mod n (0≦
i≦1-1)の値を抽出する。抽出される値は、同じ第1添
え字 iをもつ t個のyijの中から高々1つずつであり、
合計でも高々1個である。第1添え字 iに対し、選択さ
れた値をyi*と書く事にする。
Step ST74: Cumulative multiplication by the client The client sequentially sends y ij (0 ≦ i) from the server.
≦ 1-1, 1 ≦ j ≦ t), M> (h i b i ) mod n (0 ≦
The value of i ≦ 1-1) is extracted. The value to be extracted is at most one from t y ij having the same first subscript i,
The total is at most one. For the first subscript i, write the selected value as y i * .

【0130】クライアントは添え字j=1,2,…, Kについ
てメモリz(j) をrj に設定し、さらに添え字i=0,1,2,
…,1-1について以下の累積乗算を行う。
The client sets the memory z (j) to r j for the subscript j = 1,2, ..., K, and further subscripts i = 0,1,2,
The following cumulative multiplications are performed for 1-1.

【0131】z(ki )=z(ki )・yi* mod n 以上により得られたz(j) (1≦ j≦k)をサーバに送る。Z (k i ) = z (k i ) y i * mod n z (j) (1≤j≤k) obtained by the above is sent to the server.

【0132】 ステップST75:サーバによるべき乗積計算 サーバは以下のwを求め、クライアントに送る。Step ST75: Power Product Calculation by Server The server obtains the following w and sends it to the client.

【0133】[0133]

【数11】 ステップST76:クライアントによる後処理 クライアントは以下の計算により所望の値Sを求める。[Equation 11] Step ST76: Post-Processing by Client The client obtains a desired value S by the following calculation.

【0134】S=(wR-1)mod nS = (wR -1 ) mod n

【表1】 ただし、表1において、以下のように定義する。[Table 1] However, in Table 1, it is defined as follows.

【0135】(前処理1)=(2k-1 個の乱数生成)+
(剰余乗算(2k+1 −4回)+(逆数計算1回) (前処理2)=(2k-1 個の乱数生成)+(剰余乗算
(2k )回)+(逆数計算1回) (前処理3)=([b/3]個の乱数生成)+(剰余乗
算(2[b/3]−2)回)+(逆数計算1回) 記号[a]はa以上で最小の整数を表す。
(Preprocessing 1) = (2 k-1 random number generation) +
(Modulo multiplication (2 k + 1 −4 times) + (reciprocal number calculation once) (preprocessing 2) = (2 k−1 random number generation) + (modulo multiplication (2 k ) times) + (reciprocal number calculation 1) (Pre-processing 3) = ([b / 3] random number generation) + (residual multiplication (2 [b / 3] -2) times) + (one reciprocal calculation) Symbol [a] is a or greater than a Represents the smallest integer.

【0136】この表で使用されている記号の定義をまと
める。mはべき指数dのサイズである。すなわち、m=
[log2 d]+1 である。実施例1から5におけるkは2進
表現のべき指数を分割したブロックサイズ(ビット数)
である。実施例6と7におけるbはべき指数dを分割す
る基数(dをb進数表現する)であり、lはb進数表現
したときのdの桁数である。すなわち、l(エル)=[l
ogb d]+1 である。さらに、実施例6と7におけるExp
(b)はb乗剰余計算に必要な剰余乗算の回数を表し、Inv
は逆数計算に要する処理時間を剰余乗算1回に要する
処理時間で割った換算値を表す。
The definitions of the symbols used in this table are summarized. m is the size of the exponent d. That is, m =
It is [log 2 d] +1. In the first to fifth embodiments, k is a block size (number of bits) obtained by dividing the exponent of binary representation.
Is. B in Examples 6 and 7 is a radix for dividing the power exponent d (d is expressed in b-ary number), and l is the number of digits of d when expressed in b-ary number. That is, l = L
og b d] +1. Furthermore, Exp in Examples 6 and 7
(b) represents the number of modulo multiplications required to calculate the modulo b.
Represents a conversion value obtained by dividing the processing time required for the reciprocal calculation by the processing time required for one modular multiplication.

【0137】そして、表1において、乗算回数はdのビ
ットパターンに応じて若干変動するが、ここでは最悪値
を示している。
Then, in Table 1, the number of multiplications varies slightly according to the bit pattern of d, but here the worst value is shown.

【0138】表2にm=512の場合の具体的演算量・
メモリ量の比較を示す。ここでは簡単の為にk=5とし
て計算した。
Table 2 shows the concrete calculation amount when m = 512.
A memory amount comparison is shown. Here, for the sake of simplicity, calculation was performed with k = 5.

【0139】RSA暗号の秘密変換に提案の方式を利用
することを想定すると、m=512がよく用いられる。
各方式のパラメータk,bを最適に選ぶ必要があるが、
ここでは簡単のためにk=5,b=33とした場合の具
体値を表2に示す。但し、実施例6と7においてExp(b)
=6, Inv=10とした。
Assuming that the proposed method is used for the secret conversion of RSA encryption, m = 512 is often used.
It is necessary to optimally select the parameters k and b of each method,
Here, for simplification, Table 2 shows specific values when k = 5 and b = 33. However, in Examples 6 and 7, Exp (b)
= 6 and Inv = 10.

【0140】[0140]

【表2】 ただし、表2において以下のように定義する。[Table 2] However, in Table 2, it is defined as follows.

【0141】(前処理1)=(31個の乱数生成)+(剰
余乗算60回)+(逆数計算1回) (前処理2)=(16個の乱数生成)+(剰余乗算32回)
+(逆数計算1回) (前処理3)=(11個の乱数生成)+(剰余乗算20回)
+(逆数計算1回) 以上の実施例ではクライアントは演算結果C=Md mod
nを外部に出さないものとして説明してきた。そして、
そのとき以上の依頼計算手続きはクライアント以外には
dに関する情報を一切漏らしていない。ただし、以上述
べた手順だけではクライアントの得た結果が正しいか否
かのチェックはしていないので、不正なサーバが所定の
値以外をクライアントに返して演算を妨害する行為に対
しては無力である。何らかの手段で演算結果が正しいこ
とを確認できると好都合である。幸いRSA暗号の変換
についてはC=Md mod nの逆変換が簡単に行えるよう
にパラメータを選ぶことができるので、依頼計算を実行
した後に結果Cを逆変換して元のMに戻ればCが正しい
ことを確認できる。このような確認計算を検算と呼ぶ。
RSA暗号で利用できる具体的な検算式として(11)
式がある。
(Preprocessing 1) = (31 random number generation) + (modulo multiplication 60 times) + (reciprocal calculation 1 time) (preprocessing 2) = (16 random number generation) + (modulo multiplication 32 times)
+ (Reciprocal calculation 1 time) (Pre-processing 3) = (11 random number generation) + (Remainder multiplication 20 times)
+ (1 reciprocal calculation) In the above embodiment, the client calculates the calculation result C = M d mod.
It has been described that n is not output to the outside. And
At that time, the above request calculation procedure has not leaked any information about d except the client. However, since the above procedure alone does not check whether the result obtained by the client is correct or not, it is helpless for an illegal server to return a value other than the predetermined value to the client and interfere with the operation. is there. It is convenient to be able to confirm that the calculation result is correct by some means. Fortunately, for the RSA encryption conversion, the parameters can be selected so that the inverse conversion of C = M d mod n can be performed easily, so if the result C is inversely converted and returned to the original M after executing the requested calculation, Can be confirmed to be correct. Such confirmation calculation is called verification.
As a concrete verification formula that can be used in RSA encryption (11)
There is a formula.

【0142】 M=Ce mod n …(11) ここで重要なのは指数eをdに比べて十分小さく設定で
きるので(11)式は短時間で計算できる点である。
M = C e mod n (11) What is important here is that the exponent e can be set to be sufficiently smaller than d, so that the formula (11) can be calculated in a short time.

【0143】ところで、具体的な装置でクライアントが
ICカードの場合には、演算結果CはICカードから外
部に出力される場合が多いと考えられる。その場合にも
べき指数dの安全性を確保するには検算がかなり有効で
ある。しかし、dに関する情報をクライアント外部に漏
らさない目的に対しては、検算の効果は100%でな
い。そこで、検算を行って正しい結果でない場合には、
その回数を数えて記憶しておき一定回数以上誤った場合
には警報を鳴らして所有者に知らせるといった方法を併
用することが望ましい。
By the way, when the client is an IC card in a specific device, it is considered that the calculation result C is often output from the IC card to the outside. Even in that case, the verification is quite effective to secure the safety of the exponent d. However, the effectiveness of verification is not 100% for the purpose of not leaking information regarding d to the outside of the client. Therefore, if you do a correct check and the result is not correct,
It is desirable to also use a method of counting and storing the number of times and sounding an alarm to notify the owner when an error is made a certain number of times or more.

【0144】これまで依頼計算についてRSA暗号の復
号変換を念頭に置いて説明してきたが、本発明の適用は
必ずしもRSA暗号に限定されず、べき指数をクライア
ント以外に秘匿したい様々な応用に対して適用可能であ
る。RSA暗号以外の適用例としてDiffieとHelmanが提
案している鍵共有プロトコルが考えられる。なお、クラ
イアントの具体例としてはICカードが挙げられるが、
本発明の適用は必ずしもICカードに限定されるもので
もない。サーバや通信回線も本発明の主旨を越えない範
囲であれば、具体的実現法を限定するものではない。
Up to this point, the request calculation has been described with the RSA encryption decryption conversion in mind, but the application of the present invention is not necessarily limited to the RSA encryption, and for various applications where the exponent is desired to be concealed to other than the client. Applicable. As an application example other than the RSA encryption, the key agreement protocol proposed by Diffie and Helman can be considered. An IC card is a specific example of the client,
The application of the present invention is not necessarily limited to the IC card. The server and the communication line do not limit the specific implementation method as long as they are within the scope of the present invention.

【0145】[0145]

【発明の効果】以上説明したように、本発明では、べき
指数を秘密とするべき乗計算を、補助装置の助けを借り
つつ、しかもべき指数を補助装置など外部装置に漏らす
こと無く効率よく計算できるという効果が得られる。
As described above, according to the present invention, the exponentiation calculation in which the exponent is kept secret can be efficiently calculated with the help of the auxiliary device and without leaking the exponent to the external device such as the auxiliary device. The effect is obtained.

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

【図1】本発明が適用される依頼計算装置の構成を示す
ブロック図である。
FIG. 1 is a block diagram showing a configuration of a request calculation device to which the present invention is applied.

【図2】ICカード利用システムを示す構成図である。FIG. 2 is a configuration diagram showing an IC card utilization system.

【図3】本発明の第1実施例の動作を示すフローチャー
トである。
FIG. 3 is a flowchart showing the operation of the first embodiment of the present invention.

【図4】本発明の第2実施例の動作を示すフローチャー
トである。
FIG. 4 is a flowchart showing the operation of the second embodiment of the present invention.

【図5】本発明の第3実施例の動作を示すフローチャー
トである。
FIG. 5 is a flowchart showing the operation of the third embodiment of the present invention.

【図6】本発明の第4実施例の動作を示すフローチャー
トの第1の分図である。
FIG. 6 is a first partial diagram of a flowchart showing the operation of the fourth embodiment of the present invention.

【図7】本発明の第4実施例の動作を示すフローチャー
トの第2の分図である。
FIG. 7 is a second branch diagram of the flowchart showing the operation of the fourth embodiment of the present invention.

【図8】本発明の第5実施例の動作を示すフローチャー
トの第1の分図である。
FIG. 8 is a first partial diagram of the flowchart showing the operation of the fifth embodiment of the present invention.

【図9】本発明の第5実施例の動作を示すフローチャー
トの第2の分図である。
FIG. 9 is a second branch diagram of the flowchart showing the operation of the fifth embodiment of the present invention.

【図10】本発明の第6実施例の動作を示すフローチャ
ートである。
FIG. 10 is a flowchart showing the operation of the sixth embodiment of the present invention.

【図11】本発明の第7実施例の動作を示すフローチャ
ートである。
FIG. 11 is a flowchart showing the operation of the seventh embodiment of the present invention.

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

1 クライアント 2 サーバ 3 通信回路 201 端末 202 リーダ・ライタ 203 ICカード 1 Client 2 Server 3 Communication Circuit 201 Terminal 202 Reader / Writer 203 IC Card

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 演算手段を有する主装置と演算手段を有
する1つないしは複数の補助装置から構成される依頼計
算装置において、前記依頼計算装置はべき乗剰余計算: Md mod n を実行するものであり、 前記主装置は固有の秘密情報であるべき指数dを有し、
前記主装置は前記べき指数dを2より大きな正整数bを
基数としたb進数表現: d=Σ di i により展開した全ての係数di を保持し、 前記補助装置は、所定の底であるMと所定の法であるn
と、前記基数bを割り切る所定の整数βに依存し、前記
d及び前記係数di のいずれにも依存しない変換とし
て、Mに対しβ乗を繰り返しnで剰余をとった複数の値
を計算し、これらの計算結果を主装置に送信し、 主装置は補助装置から受信した複数の計算値と、自装置
内に保持する前記複数の係数di と前記nに依存した変
換により、べき乗剰余計算結果を主装置内に得ることを
特徴とする依頼計算装置。
1. A request calculation device comprising a main unit having a calculation unit and one or a plurality of auxiliary devices having a calculation unit, wherein the request calculation unit executes a modular exponentiation calculation: M d mod n. And the main device has an index d which should be unique secret information,
The main unit b adic representation was large positive integer b radix than two exponent d the should: holds d = sigma d i b i all the coefficients d i that developed by the auxiliary device, a predetermined bottom Is M and n is a predetermined modulus
Then, as a conversion that depends on a predetermined integer β that divides the radix b, and that does not depend on any of the d and the coefficient d i , multiple β values are repeated for M to calculate a plurality of values with a remainder n. , A calculation of the modular exponentiation by transmitting these calculation results to the main device, and the main device by the conversion depending on the plurality of calculated values received from the auxiliary device and the plurality of coefficients d i and n held in the own device. A request calculation device characterized by obtaining a result in a main device.
【請求項2】 演算手段を有する主装置と演算手段を有
する1つないしは複数の補助装置から構成される依頼計
算装置において、前記主装置は固有の秘密情報を有し、
前記秘密情報に依存した秘密計算を実行するものであ
り、 前記主装置は、乱数発生手段を有し、前記秘密計算を実
行していない時点において、前記乱数発生手段により複
数の乱数を発生し、前記複数の乱数から所定の変換によ
り得られる乱数依存データを計算し、前記乱数と前記乱
数依存データを保存し、 秘密計算実行時には、前記補助装置は前記秘密情報に依
存しない所定の変換を実行して得られる第一の変換値を
前記主装置に送信し、前記主装置は前記第一の変換値に
前記乱数を作用させる所定の変換を実行して得られる第
二の変換値を前記補助装置に送信し、前記補助装置は所
定の変換により得られる第三の変換値を前記主装置に送
信し、前記主装置は第三の変換値と前記乱数依存データ
に依存した所定の変換を実行して秘密計算の実行結果を
自装置内に得ることを特徴とする依頼計算装置。
2. A request calculation device comprising a main device having a calculating means and one or a plurality of auxiliary devices having a calculating means, wherein the main device has unique secret information,
In order to perform a secret calculation dependent on the secret information, the main device has a random number generation means, at the time when the secret calculation is not performed, generates a plurality of random numbers by the random number generation means, Random number dependent data obtained by predetermined conversion from the plurality of random numbers is calculated, the random number and the random number dependent data are stored, and when executing secret calculation, the auxiliary device performs predetermined conversion that does not depend on the secret information. The first conversion value obtained by transmitting the first conversion value to the main device, and the main device executes a predetermined conversion in which the random number acts on the first conversion value, and the second conversion value obtained by performing the predetermined conversion. The auxiliary device transmits a third conversion value obtained by a predetermined conversion to the main device, and the main device performs a predetermined conversion depending on the third conversion value and the random number dependent data. Secret calculation Requesting computing device, characterized in that to obtain a row results in the own device.
【請求項3】 第1項記載のべき指数dを2より大きな
正整数bを基数としたb進数表現: d=Σ di i により展開した全ての係数di に対し、 複数の整数からなる2つの集合が規定され、前記係数d
i の全ては、前記集合のうち第一の集合の一要素と前記
集合のうち第二の集合の一要素の積に対し基数bを法と
して合同な関係を有し、 主装置は個々の係数di に対応する第一の集合の要素と
第二の集合の要素をそれぞれ対にして保持し、 補助装置は、所定の底であるMと所定の法であるnと、
前記基数bを割り切る所定の整数βと、前記第二の集合
の個々の要素に依存した複数のべき乗剰余計算を実行
し、該計算結果を前記主装置に送信し、 前記主装置は、前記補助装置から受信した計算値と、自
装置内に保持する前記複数の係数di に対応した第一の
集合の各要素と前記nに依存した変換により、べき乗剰
余計算結果を主装置内に得ることを特徴とする依頼計算
装置。
3. A b-ary number expression in which the power exponent d described in claim 1 is a base number based on a positive integer b greater than 2, and for all coefficients d i expanded by d = Σ d i b i , from a plurality of integers Two sets are defined, and the coefficient d
All i have a congruent relation modulo radix b to the product of one element of the first set of the set and one element of the second set of the set, and The elements of the first set and the elements of the second set corresponding to d i are respectively held in pairs, and the auxiliary device has a predetermined base M and a predetermined modulus n.
A predetermined integer β that divides the radix b and a plurality of modular exponentiation calculations depending on the individual elements of the second set are executed, and the calculation results are transmitted to the main device, the main device Obtaining a modular exponentiation calculation result in the main device by the calculation value received from the device, each element of the first set corresponding to the plurality of coefficients d i held in the device itself, and the conversion depending on n. Request calculation device characterized by.
JP5068866A 1992-03-31 1993-03-26 Request calculating device Pending JPH0619393A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5068866A JPH0619393A (en) 1992-03-31 1993-03-26 Request calculating device

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP7788192 1992-03-31
JP4-77881 1992-03-31
JP5068866A JPH0619393A (en) 1992-03-31 1993-03-26 Request calculating device

Publications (1)

Publication Number Publication Date
JPH0619393A true JPH0619393A (en) 1994-01-28

Family

ID=26410054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5068866A Pending JPH0619393A (en) 1992-03-31 1993-03-26 Request calculating device

Country Status (1)

Country Link
JP (1) JPH0619393A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008519303A (en) * 2004-11-04 2008-06-05 フランス テレコム A secure delegation method for computing bilinear applications
JP2008520145A (en) * 2004-11-11 2008-06-12 サーティコム コーポレーション A secure interface for generic key derivation function support
JP2008523641A (en) * 2004-12-06 2008-07-03 三菱電機株式会社 Method and system for securely processing an input image sequence
JP2008177966A (en) * 2007-01-22 2008-07-31 Mitsubishi Electric Corp Information processor, and operation method
JP2008203581A (en) * 2007-02-21 2008-09-04 Matsushita Electric Works Ltd Network system
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
JP2011513787A (en) * 2008-03-05 2011-04-28 イルデト・コーポレート・ビー・ヴイ White box implementation
JP4786547B2 (en) * 2004-12-06 2011-10-05 三菱電機株式会社 How to safely process input images
JP2012078446A (en) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> Irregularity detection method, secret computation system, computing device and computation program
US8634562B2 (en) 2004-11-11 2014-01-21 Certicom Corp. Secure interface for versatile key derivation function support

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4740253B2 (en) * 2004-11-04 2011-08-03 フランス・テレコム A secure delegation method for computing bilinear applications
JP2008519303A (en) * 2004-11-04 2008-06-05 フランス テレコム A secure delegation method for computing bilinear applications
JP2008520145A (en) * 2004-11-11 2008-06-12 サーティコム コーポレーション A secure interface for generic key derivation function support
US8634562B2 (en) 2004-11-11 2014-01-21 Certicom Corp. Secure interface for versatile key derivation function support
JP2008523641A (en) * 2004-12-06 2008-07-03 三菱電機株式会社 Method and system for securely processing an input image sequence
JP4877788B2 (en) * 2004-12-06 2012-02-15 三菱電機株式会社 Method and system for securely processing an input image sequence
JP4786547B2 (en) * 2004-12-06 2011-10-05 三菱電機株式会社 How to safely process input images
JP2008177966A (en) * 2007-01-22 2008-07-31 Mitsubishi Electric Corp Information processor, and operation method
JP2008203581A (en) * 2007-02-21 2008-09-04 Matsushita Electric Works Ltd Network system
JP2011513787A (en) * 2008-03-05 2011-04-28 イルデト・コーポレート・ビー・ヴイ White box implementation
US8670559B2 (en) 2008-03-05 2014-03-11 Irdeto Corporate B.V. White-box implementation
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
JP2012078446A (en) * 2010-09-30 2012-04-19 Nippon Telegr & Teleph Corp <Ntt> Irregularity detection method, secret computation system, computing device and computation program

Similar Documents

Publication Publication Date Title
US5745571A (en) Cryptographic communications method and system
US7231040B1 (en) Multiprime RSA public key cryptosystem
EP0656709B1 (en) Encryption device and apparatus for encryption/decryption based on the Montgomery method using efficient modular multiplication
US5365589A (en) Method and apparatus for encryption, decryption and authentication using dynamical systems
Bosselaers et al. Integrity Primitives for Secure Information Systems: Final Ripe Report of Race Integrity Primitives Evaluation
US4736423A (en) Technique for reducing RSA Crypto variable storage
US7688973B2 (en) Encryption apparatus, decryption apparatus, key generation apparatus, program, and method
US20090245507A1 (en) Data processing system and data processing method
JP4137385B2 (en) Encryption method using public and private keys
JPH09230786A (en) Encoding method of data and device therefor
US5369708A (en) Fast server-aided computation system and method for modular exponentiation without revealing client&#39;s secret to auxiliary device
US6772942B2 (en) Arithmetic circuit to increase the speed of a modular multiplication for a public key system for encryption
EP0502441A2 (en) Key distribution system for distributing a cipher key between two subsystems by one-way communication
US6769062B1 (en) Method and system of using an insecure crypto-accelerator
JPH0619393A (en) Request calculating device
JP2001505325A (en) Method and apparatus for implementing a decoding mechanism by calculating a standardized modular exponentiation to thwart timing attacks
US6236729B1 (en) Key recovery method and system
JP2003177668A (en) Method for scrambling calculation with secret quantity
JPH10500502A (en) Public key encryption method based on discrete logarithm
JPH0548980B2 (en)
US5761310A (en) Communication system for messages enciphered according to an RSA-type procedure
JP2004054128A (en) Encrypting system
KR100340102B1 (en) High speed rsa public key cryptographic apparatus and method
US7382875B2 (en) Cryptographic method for distributing load among several entities and devices therefor
Niemi A new trapdoor in knapsacks