JP2014138194A - Information processing device - Google Patents
Information processing device Download PDFInfo
- Publication number
- JP2014138194A JP2014138194A JP2013004280A JP2013004280A JP2014138194A JP 2014138194 A JP2014138194 A JP 2014138194A JP 2013004280 A JP2013004280 A JP 2013004280A JP 2013004280 A JP2013004280 A JP 2013004280A JP 2014138194 A JP2014138194 A JP 2014138194A
- Authority
- JP
- Japan
- Prior art keywords
- parallel
- computer
- purpose computer
- processing apparatus
- general
- 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
Links
Images
Abstract
Description
本発明は、楕円スカラー倍算及びペアリング演算を伴う、内積述語暗号や関数型暗号を実行する情報処理装置に関する。 The present invention relates to an information processing apparatus that executes inner product predicate encryption and functional encryption accompanied by elliptic scalar multiplication and pairing operations.
現在、新しい暗号として研究が進んでいる内積述語暗号(特許文献1)や関数型暗号(特許文献2)では、1つの暗号文を生成する際に、複数回の楕円スカラー倍算を行う必要がある。また、1つの暗号文を復号する際も、複数回のペアリング演算を行う必要がある。通常、「楕円スカラー倍算」や「ペアリング演算」は重い処理であり、暗号文が増加するとその分だけ演算コストがかかる。また、内積述語暗号や関数型暗号では、述語や関数の複雑さが増加すると、暗号文1つあたりの楕円スカラー倍算・ペアリング演算の回数も増加し、演算コストが上がる。複雑な述語や関数の行うメッセージを大量に暗号化、復号する場合、これらの処理の高速化が求められる。 In the inner product predicate encryption (Patent Document 1) and functional encryption (Patent Document 2), which are currently being studied as new ciphers, it is necessary to perform multiple elliptic scalar multiplications when generating one ciphertext. is there. Also, when decrypting one ciphertext, it is necessary to perform a pairing operation a plurality of times. Normally, “elliptical scalar multiplication” and “pairing calculation” are heavy processing, and when the ciphertext increases, the calculation cost increases accordingly. In addition, in the inner product predicate encryption and the functional encryption, when the complexity of the predicate or function increases, the number of elliptic scalar multiplication / pairing operations per ciphertext also increases, and the operation cost increases. When encrypting and decrypting a large amount of messages with complicated predicates and functions, it is necessary to speed up these processes.
一方、大量のデータを低コストで処理するために、グラフィックプロセッサ(GPU)を用いて暗号処理を行う装置が提案されている(例えば、特許文献3、非特許文献1、2、非特許文献3)。
On the other hand, in order to process a large amount of data at low cost, an apparatus that performs cryptographic processing using a graphic processor (GPU) has been proposed (for example,
特許文献1、非特許文献1、2及び非特許文献3によれば、GPUを用いて、共通鍵暗号やハッシュ関数を高速化する方式については記されているが、内積述語暗号や関数型暗号を高速化する方法については記されていない。
According to
この発明は上記のような問題点を解決するためになされたもので、内積述語暗号や関数型暗号を高速に実行する情報処理装置の提供を目的とする。 The present invention has been made to solve the above problems, and an object of the present invention is to provide an information processing apparatus that executes inner product predicate encryption and functional encryption at high speed.
この発明の情報処理装置は、
汎用計算機と並列処理を実行する並列計算機とを備える情報処理装置において、
前記汎用計算機は、
前記並列計算機で使用する入力データを生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記入力データに基づいて、楕円スカラー倍算とペアリング演算との少なくともいずれかを、前記並列処理によって並列に計算することを特徴とする。
The information processing apparatus of the present invention
In an information processing apparatus comprising a general-purpose computer and a parallel computer that executes parallel processing,
The general purpose computer is:
Generating input data to be used in the parallel computer, sending the generated input data to the parallel computer;
The parallel computer is
Based on the input data transmitted from the general-purpose computer, at least one of elliptic scalar multiplication and pairing is calculated in parallel by the parallel processing.
この発明により、楕円スカラー倍算やペアリング演算を伴う、内積述語暗号や関数型暗号を高速に実行する情報処理装置を提供できる。 According to the present invention, it is possible to provide an information processing apparatus that executes inner product predicate encryption and functional encryption at high speed with elliptic scalar multiplication and pairing operation.
実施の形態1.
図1は、実施の形態1における暗号処理装置1000(情報処理装置)の構成を示すブロック図である。暗号処理装置1000は、以下に述べる並列計算機100として一般的に入手可能なGPU(Graphics Processing Unit)を用いて実現することも可能である。また、以下の実施の形態では、特許文献1に示す内積述語暗号について記すが、以下に説明する実施の形態の要諦は、同様の構成を取る関数型暗号にも適用可能である。内積述語暗号の詳細は(特許文献1)に譲り、以下の実施の形態では、並列計算機(例えば、上記GPUを搭載したグラフィックカード)を用いた暗号化と復号との実装について説明する。
FIG. 1 is a block diagram illustrating a configuration of a cryptographic processing apparatus 1000 (information processing apparatus) according to the first embodiment. The cryptographic processing apparatus 1000 can also be realized using a GPU (Graphics Processing Unit) generally available as the
暗号処理装置1000は、複数のプロセッサ111を用いて並列処理を実行する並列計算機100と、汎用計算機200とを備える。並列計算機100と汎用計算機200とは、通信ポート130、通信ポート230によって接続されている。通信ポートはEthernet(登録商標)のようなシリアル形式でも、PCIexpressのようなバス形式でもよい。
The cryptographic processing apparatus 1000 includes a
(並列計算機100)
並列計算機100は、並列計算部110、メモリ120、通信ポート130を搭載し、それらがバス140で接続されている。また、並列計算部110は、複数のプロセッサ111、命令デコーダ112及びレジスタ113を含んでいる。
(Parallel computer 100)
The
(汎用計算機200)
汎用計算機200は、汎用計算部210、メモリ220、通信ポート230を搭載し、それらがバス240で接続されている。汎用計算機200としては、例えばPC(Personal Computer)がある。汎用計算機200の汎用計算部210は、例えばCPU(Central Processing Unit)である。
(General purpose computer 200)
The general-
図2は、内積述語暗号の暗号化のフローを示す。初めに、S201において、特許文献1により生成された属性ベクトルを、属性ベクトルテーブルVT(単にVTと記す場合もある)にマッピングする(埋め込み属性テーブルの生成)。また、乱数を生成し、乱数テーブルRT(単にRTと記す場合もある)を生成する(S201)。次に、S202において、データの暗号化に用いるセッション鍵を生成し、前記セッション鍵を用いて所望のデータを暗号化する。データ暗号化には共通鍵暗号を用いてもよい。さらに、CCM等のメッセージ検証可能な利用モードによる暗号化を行ってもよい(S202)。最後に、S203において、埋め込み属性テーブルVTと乱数テーブルRTの値を用いて、(1)多倍長乗算剰余、(2)楕円スカラー倍算、(3)楕円点加算を行い、アクセス制御メッセージA(以下、単にAと記す場合もある)を生成する。
FIG. 2 shows an encryption flow of the inner product predicate encryption. First, in S201, the attribute vector generated according to
(1)本実施の形態1では、S201、S202を汎用計算機200で実行し、S203を並列計算機100で実行する(第1形態という)。
(2)あるいは第1の形態とは別の形態として、第1形態の場合に加え、S202のステップ2のデータ暗号化を並列計算機100で実行してもよい(第2形態という)。
(3)あるいは、第1形態に対して、S203のステップ1,3を汎用計算機で実行してもよい(第3形態という)。言い換えれば、図2の場合は、少なくともS203のステップ2の楕円スカラー倍算は並列計算機100で並列に処理する。
(4)なお並列計算機100〜汎用計算機200との間のデータ通信は、それぞれの通信ポートを経由して行う。並列計算機100は、汎用計算機200の生成した入力データを汎用計算機200から受信し、入力データに基づき並列計算し、その計算結果を汎用計算機200に返す。
(5)なお、S201等を実行するのは、並列計算機100が実行主体であれば並列計算部110の各プロセッサ111であり、汎用計算機200が実行主体であれば汎用計算部210(CPU)である。
(1) In the first embodiment, S201 and S202 are executed by the general-
(2) Or as a form different from the first form, in addition to the case of the first form, the data encryption in
(3) Alternatively,
(4) Data communication between the
(5) Note that S201 and the like are executed by each
(S201の処理内容)
図3は、S201で汎用計算機200が生成する属性ベクトルテーブルVT及び、乱数テーブルRTを示す。S201は、汎用計算機200が実行する処理である。属性ベクトルテーブルVT及び乱数テーブルRTは、図4でさらに後述するが、汎用計算機200が生成する、並列計算機100のための入力データである。汎用計算機200は、これらの入力データを生成して、並列計算機100へ送信する。以下、図3を説明する。
(Processing content of S201)
FIG. 3 shows the attribute vector table VT and the random number table RT generated by the general-
メッセージ数をm,mメッセージ当たりの最大属性ベクトル数をnとし、
汎用計算機200は、
属性ベクトルテーブルVT[m][n+2],乱数テーブルRT[m][n+2]
を準備する。
属性ベクトルテーブルVTでは、ある1行が1メッセージに相当する。
VT[i][j](1≦i≦m,1≦j≦n)
に属性ベクトルV1,V2,・・・,VLを設定する。
図3では、
V1[m][3],V2[m][1],・・・,VL[m][p](p<n−5)、
とした場合について記す。
属性ベクトルテーブルVTでは、属性ベクトルはメッセージ毎に決められた位置に決められた値を設定する。
属性ベクトルを埋め込まないセル(図3ではj=5の位置のセル(特定セル))は、
VT[i][j]に乗法単位元(図3の例では「1」)を設定する(第1の設定)。
また、VT[i][n+1],VT[i][n+2]
には、乗法単位元を設定する。
Let m be the number of messages, n be the maximum number of attribute vectors per m message,
The general-
Attribute vector table VT [m] [n + 2], random number table RT [m] [n + 2]
Prepare.
In the attribute vector table VT, one row corresponds to one message.
VT [i] [j] (1 ≦ i ≦ m, 1 ≦ j ≦ n)
, Attribute vectors V1, V2,..., VL are set.
In FIG.
V1 [m] [3], V2 [m] [1], ..., VL [m] [p] (p <n-5),
The case will be described.
In the attribute vector table VT, the attribute vector sets a value determined at a position determined for each message.
A cell that does not embed an attribute vector (a cell at a position of j = 5 in FIG.
A multiplicative unit element (“1” in the example of FIG. 3) is set to VT [i] [j] (first setting).
Also, VT [i] [n + 1], VT [i] [n + 2]
Is the multiplicative unit element.
汎用計算機200は、
RT[i][j](1≦i≦m,1≦j≦n+2)
には、乱数を設定する。同じ属性ベクトルを設定した位置に対応する乱数テーブルには同じ乱数を設定し、異なる属性ベクトルを設定した位置に対応する乱数テーブルには異なる乱数を設定する。図3のV1[1][1]〜V1[1][3]は同じ属性ベクトルであるので、RTのVTのセルに対応するセルには、同じ乱数R[1][1]が設定されている。また、V2[1][1]に対応するセルには乱数R[1][1]と異なる乱数R[1][2]が設定されている。
The general-
RT [i] [j] (1 ≦ i ≦ m, 1 ≦ j ≦ n + 2)
Is set to a random number. The same random number is set in the random number table corresponding to the position where the same attribute vector is set, and the different random number is set in the random number table corresponding to the position where the different attribute vector is set. Since V1 [1] [1] to V1 [1] [3] in FIG. 3 have the same attribute vector, the same random number R [1] [1] is set in the cell corresponding to the RT VT cell. ing. A random number R [1] [2] different from the random number R [1] [1] is set in the cell corresponding to V2 [1] [1].
汎用計算機200は、属性ベクトルを埋め込まないセル(図3ではj=5のセル)に対応する乱数テーブルRT[i][j]のセル(対応セル)には、所定の定数(巡回群位数)を設定する。属性ベクトルテーブルVTの特定セルに単位元を設定し、特定セルに対応する乱数テーブルRTの対応セルに所定の定数として巡回群位数を設定することで(第1の設定)、多倍長乗算剰余の結果が巡回群位数となる(後述の図4の計算801を参照)。なお、属性ベクトルテーブルVT[i][j]の特定セルに巡回群位数を設定し、乱数テーブルRT[i][j]の対応セルに乗法の単位元を設定しても構わない(第2の設定)。これは後述の図4の計算801からわかるように、対応する成分同士であるVT[i][j]とRT[i][j]との多倍長乗算剰余の計算結果は可換だからである。
The general-
RT[i][n+1]は、特許文献1のパラメータρとして、S202のセッション鍵生成に使用する。
RT [i] [n + 1] is used as a parameter ρ of
(S203の処理内容)
図4はS203におけるアクセス制御メッセージの生成法を示す。図4はS203の処理の全てを並列計算機100が行う例を示すが、上記の第3形態で述べたように、少なくとも楕円スカラー倍算を並列計算機100によって並列計算すればよい。
(Processing content of S203)
FIG. 4 shows a method for generating an access control message in S203. FIG. 4 shows an example in which the
以下に図4の詳細を説明する。
(1.データ入力)
並列計算機100は、VT[m][n+2],RT[m][n+2]、及び、あらかじめ生成した基底ベクトルB[n+2][n+2](汎用計算機200が生成、入力データの一例)を入力する。図4の入力におけるVT[1][1]〜VT[1][n+2]、及びVT[2][1]〜VT[2][n+2]は、図3の属性ベクトルテーブルVTの、1行目と2行目である。1行目、2行目は第1メッセージ(m=1)、第2メッセージ(m=2)に相当する。同様に図4の入力におけるRT[1][1]〜RT[1][n+2]、及びRT[2][1]〜RT[2][n+2]は、図3の乱数テーブルRTの、1行目と2行目である。
Details of FIG. 4 will be described below.
(1. Data input)
The
(2.多倍長乗算剰余)
並列計算機100は、
VT[i][j]とRT[i][j](1≦i≦m,1≦j≦n+2)との、多倍長乗算剰余を計算し、M[i][j]に格納する。多倍長乗算剰余は、図4のように1メッセージ当たりn+2回行い、これらは独立に計算できる。このため、並列計算機100は、多倍長乗算剰余の計算を並列実行する。具体的には、並列計算機100は複数のプロセッサ111等を用いて、図4に枠の中に「×」を記載して示すそれぞれの「計算801」(1メッセージ当たり(n+2)個の多倍長乗算剰余の計算)を並列処理によって並列に計算する。さらに、並列計算機100は複数のメッセージに対しても並列に実行する。
(2. Multiple-precision multiplication remainder)
The
A multiple-precision multiplication remainder between VT [i] [j] and RT [i] [j] (1 ≦ i ≦ m, 1 ≦ j ≦ n + 2) is calculated and stored in M [i] [j]. . The multiple-precision multiplication residue is performed n + 2 times per message as shown in FIG. 4, and these can be calculated independently. For this reason, the
(3.楕円スカラー倍算)
並列計算機100は、B[n+2]とM[i][j]とから楕円スカラー倍算ECS(m,B)を実行し、結果をS[m][n+2][n+2]に格納する。S[i][j][k]に格納する楕円スカラー倍ECS(m,B)は、下記の数式で決定する。
(3. Elliptical scalar multiplication)
The
(4.楕円点加算)
並列計算機100は、楕円スカラー倍算の結果に対し、楕円点加算を実行し、結果をアクセス制御メッセージA[m][n+2]に格納する。
A[i][j](1≦i≦m,1≦j≦n+2)
は下記の数式で計算する。
(4. Ellipse point addition)
The
A [i] [j] (1 ≦ i ≦ m, 1 ≦ j ≦ n + 2)
Is calculated by the following formula.
最後に、Aを汎用計算機に出力する。
Finally, A is output to the general purpose computer.
図5は、内積述語暗号の復号のフローを示す。内積述語暗号の復号では、アクセス制御メッセージA[m][n+2]からセッション鍵を生成する。
(1)まず、アクセス制御メッセージA(暗号文の一例)と、あらかじめ生成した秘密鍵とのペアリングを計算し、計算したペアリング値を拡大体上乗算して、セッション鍵を得る(S501)。
(2)次に、前記セッション鍵を用いて、暗号化されたデータを復号する(S502)。
FIG. 5 shows a flow of decryption of the inner product predicate encryption. In decryption of the inner product predicate encryption, a session key is generated from the access control message A [m] [n + 2].
(1) First, pairing between the access control message A (an example of ciphertext) and a secret key generated in advance is calculated, and the calculated pairing value is multiplied on the extension field to obtain a session key (S501). .
(2) Next, the encrypted data is decrypted using the session key (S502).
図6はS501におけるセッション鍵生成法を示す。図6はS501の処理の全てを並列計算機100で行う例を示すが、並列計算機100は演算負荷の高いぺリング演算だけを並列実行しても良い。
FIG. 6 shows a session key generation method in S501. FIG. 6 shows an example in which all of the processing of S501 is performed by the
(1.データ入力)
並列計算機100は、図6のように、アクセス制御メッセージA[m][n+2]と、あらかじめ生成された固定長の秘密鍵である秘密鍵ベクトルSK[n+2](汎用計算機200が生成)を入力する。
(1. Data input)
As shown in FIG. 6, the
(2.ペアリング演算)
並列計算機100は、
A[i][j](1≦i≦m,1≦j≦n+2)とSK[j](1≦j≦n+2)とのペアリングe(A[i][j],SK[j])を計算し、結果をE[i][j]に格納する。ペアリングは図6のように、1メッセージ当たり(n+2)回実施し、これらは独立に計算できる。このため、並列計算機100は、ペアリング演算を並列実行する。具体的には、並列計算機100は複数のプロセッサ111等を用いて、図6に枠の中をハッチングで示すそれぞれの「計算901」(1メッセージ当たり(n+2)個のペアリング演算)を並列処理によって並列に計算する。さらに、複数のメッセージに対しても並列に実行する。
(2. Pairing calculation)
The
Pairing e (A [i] [j], SK [j] between A [i] [j] (1 ≦ i ≦ m, 1 ≦ j ≦ n + 2) and SK [j] (1 ≦ j ≦ n + 2) ) And store the result in E [i] [j]. Pairing is performed (n + 2) times per message as shown in FIG. 6, and these can be calculated independently. For this reason, the
(3.拡大体上乗算)
並列計算機100は、セッション鍵K[m]を下記の式で計算し、Kを汎用計算機に出力する。
(3. Multiply on expansion field)
The
効果について説明する。以上に説明した実施の形態1では、計算に時間のかかる楕円スカラー倍算(図4の計算802)やペアリング演算(図6の計算901)を並列計算機を用いて並列実行する。これによって、高速に内積述語暗号の暗号化処理や復号処理を行うことができる。
The effect will be described. In the first embodiment described above, elliptic scalar multiplication (
実施の形態1のもう1つの効果として以下の効果がある。暗号化の際に属性値を埋め込まない場合に、VT[i][j](特定セル)に乗法単位元を設定し、対応するRT[i][j](対応セル)に巡回群位数を設定した。あるいはVT[i][j](特定セル)に巡回群位数を設定し、対応するRT[i][j](対応セル)に乗法単位元を設定した。これにより、属性値を埋め込まない場合でも、属性値を埋め込んだ場合と同じように計算を行うことができ、属性値を埋め込むか否かの条件判定を削減することができる。巡回群位数を埋め込むことにより、楕円スカラー倍算の結果は無限遠点になるため、その後の楕円点加算において、楕円スカラー倍算の結果をそのまま足しても、楕円点加算の結果に影響を与えない。 Another effect of the first embodiment is as follows. When an attribute value is not embedded at the time of encryption, a multiplicative unit element is set in VT [i] [j] (specific cell), and the cyclic group number is set in corresponding RT [i] [j] (corresponding cell) It was set. Alternatively, the cyclic group number is set to VT [i] [j] (specific cell), and the multiplicative unit element is set to corresponding RT [i] [j] (corresponding cell). Thereby, even when the attribute value is not embedded, the calculation can be performed in the same manner as when the attribute value is embedded, and the condition determination as to whether or not the attribute value is embedded can be reduced. Since the result of elliptic scalar multiplication becomes the point at infinity by embedding the cyclic group number, adding the result of elliptic scalar multiplication in the subsequent elliptic point addition will affect the result of elliptic point addition. Don't give.
実施の形態2.
本実施の形態2は、実施の形態1の図6に示したペアリング演算(計算901)において、2次拡大体上の2つの乗算を並列に実行する方法について記す。ペアリング演算(計算901)であるので、並列計算機100が並列に計算する。
In the second embodiment, a method of executing two multiplications on the secondary extension field in parallel in the pairing operation (calculation 901) shown in FIG. 6 of the first embodiment will be described. Since it is a pairing operation (calculation 901), the
図7は、2次拡大体上の1つ目の乗算の流れを示すフローである。図7のグループ1とグループ2は、ペアリング演算における各計算901において実行される。図7において、グループ1とグループ2の各Step(各スレッド)は同時に実行され、入出力データは各Stepごとに完全に同期するものとする。各ステップでは入力の異なる同じ多倍長整数演算を実行する。また、Step3の結果に対する乗算(Step4)は片一方のグループで実行し、その間、他方のグループは演算を行わない。
FIG. 7 is a flow showing the flow of the first multiplication on the secondary extension field.
図8は2次拡大体上の2つ目の乗算の流れを示すフロー図である。図7と同様に、図8のグループ1とグループ2は、ペアリング演算における各計算901において実行される。図8において、グループ1とグループ2の各Step(各スレッド)は、同時に実行され、入出力データはStepごとに完全に同期するものとする。各ステップでは入力の異なる同じ演算を実行する。また、Step3の結果に乗算は片一方のグループで実行し、その間、他方のグループは演算を行わない。さらに、グループ1のStep2では、Step1の結果の大小関係で演算対象が異なるが、同じ多倍長加算を行う。
FIG. 8 is a flowchart showing the flow of the second multiplication on the secondary extension field. Similar to FIG. 7,
効果について説明する。本実施の形態2によれば、実施の形態1の効果に加え、内積述語暗号の復号操作におけるペアリング演算をさらに高速化することができる。また、各ステップでは同じ演算を実行するため、多倍長演算前のオペランド設定のみを分岐処理することができ、多倍長演算処理の直列化によるスループットの低下を抑制することができる。 The effect will be described. According to the second embodiment, in addition to the effects of the first embodiment, the pairing operation in the decryption operation of the inner product predicate encryption can be further accelerated. In addition, since the same operation is executed in each step, only the operand setting before the multiple length calculation can be branched, and a decrease in throughput due to serialization of the multiple length calculation processing can be suppressed.
実施の形態2は、並列計算機100が、2次拡大体上の演算を、多倍長演算を行う複数のステップ(スレッド)から構成される2個のグループの各ステップを同時に並列に動かすことでペアリング演算を実行する方式を説明したが、この2次拡大体上の演算はn次拡大体上の演算(nは3以上の整数)でも、上記の2次拡大体上の演算と同様に処理できる。つまり、記並列計算機100は、ペアリング演算を実行する際に、n次拡大体上の演算(nは2以上の整数)を、多倍長演算を行う複数のステップ(スレッド)から構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する。
In the second embodiment, the
また、並列計算機100は、上記で述べたn次拡大体上の演算と同様に、n次ツイスト曲線上の演算を実行してもよい。つまり、並列計算機100は、n次ツイスト曲線上の演算(nは2以上の整数)を、多倍長演算を行う複数のステップ(スレッド)から構成されるn個のグループの各ステップを同時に並列に動かすことでペアリング演算を実行する方式を採用しても構わない。
Further, the
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機と並列計算機とを備える暗号処理装置であって、
前記汎用計算機は、
前記並列計算機で使用する入力データを前記汎用計算機で多量に生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送られてきた多量の前記入力データを並列に計算し、計算結果を汎用計算機に送付する暗号処理装置。
In the above embodiment, the following cryptographic processing apparatus has been described.
A cryptographic processing device comprising a general-purpose computer and a parallel computer,
The general purpose computer is:
A large amount of input data used by the parallel computer is generated by the general-purpose computer, and the generated input data is transmitted to the parallel computer.
The parallel computer is
A cryptographic processing device that calculates in parallel a large amount of the input data sent from the general-purpose computer and sends the calculation result to the general-purpose computer.
以上の実施の形態では以下の暗号処理装置を説明した。
前記並列計算機は、
楕円スカラー倍算もしくはペアリング演算を行う暗号処理装置。
In the above embodiment, the following cryptographic processing apparatus has been described.
The parallel computer is
A cryptographic processor that performs elliptic scalar multiplication or pairing.
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機と並列計算機とを備え、内積述語暗号を実行する暗号処理装置であって、
前記汎用計算機は、
属性ベクトルと乱数とを多量に生成し、それぞれをそれぞれのテーブルに格納し、前記属性ベクトルと乱数とを格納した各テーブルを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された属性ベクトルテーブルと乱数テーブルとをもとに、多倍長乗算剰余、楕円スカラー倍算、楕円点加算を計算し、計算結果を前記汎用計算機に送付する暗号処理装置。
In the above embodiment, the following cryptographic processing apparatus has been described.
A cryptographic processing device that includes a general-purpose computer and a parallel computer and executes inner product predicate encryption,
The general purpose computer is:
Generate a large amount of attribute vectors and random numbers, store each in a respective table, and send each table storing the attribute vector and random numbers to the parallel computer,
The parallel computer is
An encryption processing apparatus that calculates a multiple-precision multiplication remainder, an elliptic scalar multiplication, and an elliptic point addition based on an attribute vector table and a random number table transmitted from the general-purpose computer, and sends the calculation result to the general-purpose computer.
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機と並列計算機とを備え、内積述語暗号を実行する暗号処理装置であって、
前記汎用計算機は、
多量の暗号文と、固定長の秘密鍵を前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記暗号文と前記秘密鍵とをもとに、ペアリング演算、拡大体上乗算を計算し、計算結果を前記汎用計算機に送付する暗号処理装置。
In the above embodiment, the following cryptographic processing apparatus has been described.
A cryptographic processing device that includes a general-purpose computer and a parallel computer and executes inner product predicate encryption,
The general purpose computer is:
Send a large amount of ciphertext and a fixed-length secret key to the parallel computer,
The parallel computer is
A cryptographic processing device that calculates a pairing operation and multiplication on an extension field based on the ciphertext and the secret key transmitted from the general-purpose computer, and sends the calculation result to the general-purpose computer.
以上の実施の形態では以下の暗号処理装置を説明した。
前記汎用計算機は、
属性ベクトルテーブルのうちの予め定められた箇所のセルであって属性ベクトルの埋め込みを行わない特定セルと、乱数テーブルの各セルのうち予め定められたセルであって前記属性ベクトルテーブルの前記特定セルに対応すると共に乱数を埋め込まないセルである対応セルとに対して、多倍長乗算剰余の結果が巡回群位数となる値を設定する情報処理装置。
In the above embodiment, the following cryptographic processing apparatus has been described.
The general purpose computer is:
A specific cell in the attribute vector table that is a predetermined location that does not embed the attribute vector, and a predetermined cell in each cell of the random number table that is the specific cell in the attribute vector table An information processing apparatus that sets a value for which the result of the multiple-precision multiplication remainder becomes a cyclic group number for a corresponding cell that is a cell that corresponds to the above and does not embed a random number.
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機は、
属性ベクトルの埋め込みを行わない場合に、属性ベクトルを格納する属性ベクトルテーブルの当該位置に乗法単位元を設定し、乱数値を格納するテーブルの当該位置に巡回群位数を設定すること、または、属性ベクトルの埋め込みを行わない場合に、属性ベクトルテーブルの当該位置に巡回群位数を設定し、乱数値を格納するテーブルの当該位置に乗法単位元を設定する暗号処理装置。
In the above embodiment, the following cryptographic processing apparatus has been described.
General purpose computer
If the attribute vector is not embedded, the multiplicative unit element is set at the position of the attribute vector table storing the attribute vector, and the cyclic group number is set at the position of the table storing the random value, or An encryption processing apparatus that sets a cyclic group number at a corresponding position in an attribute vector table and sets a multiplicative unit element at the corresponding position in a table that stores random values when the attribute vector is not embedded.
以上の実施の形態では以下の暗号処理装置を説明した。
並列計算機100は、ペアリング演算を実行する際に、n次拡大体上の演算およびn次ツイスト曲線上の演算を、多倍長演算を行う複数のスレッドから構成されるn個のグループを同時並列に動かすことで処理を行う暗号処理装置。
In the above embodiment, the following cryptographic processing apparatus has been described.
When the
100 並列計算機、110 並列計算部、111 プロセッサ、112 命令デコーダ、113 レジスタ、120 メモリ、130 通信ポート、140 バス、200 汎用計算機、210 汎用計算部、220 メモリ、230 通信ポート、240 バス、1000 暗号処理装置。 100 parallel computer, 110 parallel computing unit, 111 processor, 112 instruction decoder, 113 register, 120 memory, 130 communication port, 140 bus, 200 general purpose computer, 210 general purpose computing unit, 220 memory, 230 communication port, 240 bus, 1000 encryption Processing equipment.
Claims (7)
前記汎用計算機は、
前記並列計算機で使用する入力データを生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記入力データに基づいて、楕円スカラー倍算とペアリング演算との少なくともいずれかを、前記並列処理によって並列に計算することを特徴とする情報処理装置。 In an information processing apparatus comprising a general-purpose computer and a parallel computer that executes parallel processing,
The general purpose computer is:
Generating input data to be used in the parallel computer, sending the generated input data to the parallel computer;
The parallel computer is
An information processing apparatus that calculates at least one of elliptic scalar multiplication and pairing operation in parallel by the parallel processing based on the input data transmitted from the general-purpose computer.
内積述語暗号の暗号化を実行する暗号処理装置であり、
前記汎用計算機は、
前記入力データとして、属性ベクトルが格納された属性ベクトルテーブルと、乱数が格納された乱数テーブルとを生成し、
前記並列計算機は、
前記属性ベクトルテーブルと前記乱数テーブルとに基づいて多倍長乗算剰余を前記並列処理によって並列に計算し、多倍長乗算剰余の並列計算の結果に基づいて楕円スカラー倍算を前記並列処理によって並列に計算し、楕円スカラー倍算の並列計算の結果に基づいて楕円点加算を前記並列処理によって並列に計算することを特徴とする請求項1記載の情報処理装置。 The information processing apparatus includes:
A cryptographic processing device that performs inner product predicate encryption,
The general purpose computer is:
As the input data, an attribute vector table storing attribute vectors and a random number table storing random numbers are generated,
The parallel computer is
Based on the attribute vector table and the random number table, multiple-precision multiplication remainder is calculated in parallel by the parallel processing, and elliptic scalar multiplication is parallelized by the parallel processing based on the parallel calculation result of the multiple-precision multiplication remainder. The information processing apparatus according to claim 1, wherein the elliptic point addition is calculated in parallel by the parallel processing based on a parallel calculation result of elliptic scalar multiplication.
前記属性ベクトルテーブルの各セルのうち予め定められたセルであって属性ベクトルを埋め込まないセルである特定セルと、前記乱数テーブルの各セルのうち予め定められたセルであって前記属性ベクトルテーブルの前記特定セルに対応すると共に乱数を埋め込まないセルである対応セルとに対して、多倍長乗算剰余の結果が巡回群位数となる値を設定することを特徴する請求項2に記載の情報処理装置。 The general purpose computer is:
A specific cell that is a predetermined cell among the cells of the attribute vector table and does not embed an attribute vector; and a predetermined cell of the cells of the random number table that is a predetermined cell of the attribute vector table. 3. The information according to claim 2, wherein a value corresponding to the result of the multiple-precision multiplication remainder becomes a cyclic group number is set for a corresponding cell that corresponds to the specific cell and does not embed a random number. Processing equipment.
前記属性ベクトルテーブルの前記特定セルに乗法単位元を設定する共に前記乱数テーブルの前記対応セルに巡回群位数を設定する第1の設定と、
前記属性ベクトルテーブルの前記特定セルに巡回群位数を設定する共に前記乱数テーブルの前記対応セルに乗法単位元を設定する第2の設定との、
いずれかの設定を実行することを特徴とする請求項3記載の情報処理装置。 The general purpose computer is:
A first setting for setting a multiplicative unit element in the specific cell of the attribute vector table and setting a cyclic group number in the corresponding cell of the random number table;
A second setting for setting a cyclic group number in the specific cell of the attribute vector table and setting a multiplicative unit element in the corresponding cell of the random number table;
4. The information processing apparatus according to claim 3, wherein any one of the settings is executed.
暗号文と、固定長の秘密鍵とを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記暗号文と前記秘密鍵とに基づいて、
ペアリング演算を前記並列処理によって並列に計算すると共に拡大体上乗算を前記並列処理によって並列に計算することを特徴とする請求項1〜4のいずれかに記載の情報処理装置。 The general purpose computer is:
Send the ciphertext and the fixed-length secret key to the parallel computer;
The parallel computer is
Based on the ciphertext and the secret key transmitted from the general-purpose computer,
5. The information processing apparatus according to claim 1, wherein a pairing operation is calculated in parallel by the parallel processing, and multiplication on an extension field is calculated in parallel by the parallel processing.
前記汎用計算機から送信された前記暗号文と前記秘密鍵とに基づいてペアリング演算を前記並列処理によって並列に計算し、ペアリング演算の並列計算の結果に基づいて拡大体上乗算を前記並列処理によって並列に計算することを特徴とする請求項5記載の情報処理装置。 The parallel computer is
Based on the ciphertext and the secret key transmitted from the general-purpose computer, a pairing operation is calculated in parallel by the parallel processing, and multiplication on an extension field is performed based on a parallel calculation result of the pairing operation. 6. The information processing apparatus according to claim 5, wherein the calculation is performed in parallel.
ペアリング演算を実行する際に、
n次拡大体上の演算(nは2以上の整数)を、多倍長演算を行う複数のスレッドから構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する方式と、
n次ツイスト曲線上の演算を、多倍長演算を行う複数のスレッドから構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する方式と
の少なくともいずれかの方式を用いることを特徴とする請求項5または6のいずれかに記載の情報処理装置。 The parallel computer is
When performing a pairing operation,
A pairing operation is performed by simultaneously moving each thread of n groups composed of a plurality of threads performing a multiple-precision operation on an n-order extension field (n is an integer of 2 or more). Method,
At least one of a method for executing a pairing operation by simultaneously moving each thread of n groups composed of a plurality of threads that perform a multiple-precision operation for an operation on an nth-order twist curve The information processing apparatus according to claim 5, wherein the information processing apparatus is used.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013004280A JP6057725B2 (en) | 2013-01-15 | 2013-01-15 | Information processing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013004280A JP6057725B2 (en) | 2013-01-15 | 2013-01-15 | Information processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014138194A true JP2014138194A (en) | 2014-07-28 |
JP6057725B2 JP6057725B2 (en) | 2017-01-11 |
Family
ID=51415509
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013004280A Expired - Fee Related JP6057725B2 (en) | 2013-01-15 | 2013-01-15 | Information processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6057725B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016085503A (en) * | 2014-10-23 | 2016-05-19 | 日本電気株式会社 | Information processing device, information processing method, and information processing program |
KR101925614B1 (en) * | 2017-11-08 | 2018-12-05 | 부산대학교 산학협력단 | Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem |
JP2018197832A (en) * | 2017-05-25 | 2018-12-13 | 日本電信電話株式会社 | Block chain update system, server device, client device, block chain update method, and program |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004102071A (en) * | 2002-09-11 | 2004-04-02 | Toshiba Corp | Polynomial remainder system arithmetic device, method, and program |
WO2010123151A2 (en) * | 2009-04-21 | 2010-10-28 | 国立大学法人岡山大学 | Pairing arithmetic device, pairing arithmetic method and recording medium having pairing arithmetic program recorded thereon |
JP2010273317A (en) * | 2009-04-23 | 2010-12-02 | Mitsubishi Electric Corp | Encryption processing system, key generator, key transfer device, encryption device, decoder, encryption processing method and encryption processing program |
-
2013
- 2013-01-15 JP JP2013004280A patent/JP6057725B2/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004102071A (en) * | 2002-09-11 | 2004-04-02 | Toshiba Corp | Polynomial remainder system arithmetic device, method, and program |
WO2010123151A2 (en) * | 2009-04-21 | 2010-10-28 | 国立大学法人岡山大学 | Pairing arithmetic device, pairing arithmetic method and recording medium having pairing arithmetic program recorded thereon |
JP2010273317A (en) * | 2009-04-23 | 2010-12-02 | Mitsubishi Electric Corp | Encryption processing system, key generator, key transfer device, encryption device, decoder, encryption processing method and encryption processing program |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016085503A (en) * | 2014-10-23 | 2016-05-19 | 日本電気株式会社 | Information processing device, information processing method, and information processing program |
JP2018197832A (en) * | 2017-05-25 | 2018-12-13 | 日本電信電話株式会社 | Block chain update system, server device, client device, block chain update method, and program |
KR101925614B1 (en) * | 2017-11-08 | 2018-12-05 | 부산대학교 산학협력단 | Method for processing scalar multiplication in elliptic curve cryptosystem, and elliptic curve cryptosystem |
Also Published As
Publication number | Publication date |
---|---|
JP6057725B2 (en) | 2017-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200177366A1 (en) | Homomorphic data encryption method and apparatus for implementing privacy protection | |
US11626970B2 (en) | Multiplicative masking for cryptographic operations | |
US10305689B2 (en) | Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program | |
US11722313B2 (en) | State synchronization for post-quantum signing facilities | |
EP2712115A1 (en) | Order-preserving encryption system, device, method, and program | |
Mahajan et al. | Analysis of RSA algorithm using GPU programming | |
Pachori et al. | Improved performance of advance encryption standard using parallel computing | |
JP6057725B2 (en) | Information processing device | |
WO2023107776A1 (en) | Efficient hybridization of classical and post-quantum signatures | |
Dong et al. | Towards high-performance X25519/448 key agreement in general purpose GPUs | |
US11418334B2 (en) | Protecting modular inversion operation from external monitoring attacks | |
Pu et al. | Fastplay-a parallelization model and implementation of smc on cuda based gpu cluster architecture | |
CN114579078A (en) | Accelerator, acceleration method and electronic equipment | |
US10333699B1 (en) | Generating a pseudorandom number based on a portion of shares used in a cryptographic operation | |
Keliris et al. | Investigating large integer arithmetic on Intel Xeon Phi SIMD extensions | |
WO2023107775A1 (en) | Computation of xmss signature with limited runtime storage | |
Patchappen et al. | Batch processing of multi-variant AES cipher with GPU | |
Yudheksha et al. | A study of AES and RSA algorithms based on GPUs | |
EP3391264B1 (en) | Calculating device and method | |
Kimsanova et al. | Comparative analysis of integer factorization algorithms using CPU and GPU | |
Tembhurne et al. | RSA public key acceleration on CUDA GPU | |
US20240007266A1 (en) | Reconfigurable side-channel resistant double-throughput aes accelerator | |
CN115934031B (en) | Computing engine, data processing method, device and storage medium | |
US20240031127A1 (en) | Lightweight side-channel protection for polynomial multiplication in post-quantum signatures | |
Xia et al. | Parallel Computing Mode in Homomorphic Encryption Using GPUs Acceleration in Cloud. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20151112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160920 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161013 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20161108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161206 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6057725 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |