JP2014138194A - Information processing device - Google Patents

Information processing device Download PDF

Info

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
Application number
JP2013004280A
Other languages
Japanese (ja)
Other versions
JP6057725B2 (en
Inventor
Akiyoshi Yamaguchi
晃由 山口
Tsuneo Sato
恒夫 佐藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013004280A priority Critical patent/JP6057725B2/en
Publication of JP2014138194A publication Critical patent/JP2014138194A/en
Application granted granted Critical
Publication of JP6057725B2 publication Critical patent/JP6057725B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device that performs at high speed inner product predicative cipher and function type cipher involving elliptic scalar multiplication and pairing arithmetic.SOLUTION: An encryption processing device 1000 comprises a general purpose computer 200 and a parallel computer 100 for performing parallel processing. The general purpose computer 200 generates input data used by the parallel computer 100 and transmits the generated input data to the parallel computer 100 via communication ports 230 and 130. The parallel computer 100 calculates at least one of elliptic scalar multiplication and pairing arithmetic in parallel by parallel processing using a plurality of processors 111 on the basis of the input data transmitted by the general purpose computer 200.

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, Patent Document 3, Non-Patent Documents 1 and 2, Non-Patent Document 3). ).

特開2010−273317号公報JP 2010-273317 A 特開2011−232475号公報JP 2011-232475 A 特開2007−233381号公報JP 2007-233381 A

Jawad Masood,「gKryptを使用して瞬時にデータを保護する:第1回」、[online]、IBMホームページ、[平成25年1月8日検索]、インターネット<http://www.ibm.com/developerworks/jp/linux/library/l−gkryptdataencrypt1/>Java Masood, “Protect data instantly using gKrypt: 1st”, [online], IBM homepage, [January 8, 2013 search], Internet <http: // www. ibm. com / developerworks / jp / linux / library / l-gkryptdataencrypt1 /> Jawad Masood,「gKryptを使用して瞬時にデータを保護する:第2回」、[online]、IBMホームページ、[平成25年1月8日検索]、インターネット<http://www.ibm.com/developerworks/jp/linux/library/l−gkryptdataencrypt2/index.html?ca=drs−>Java Masood, “Protect data instantly with gKrypt: 2nd”, [online], IBM homepage, [search January 8, 2013], Internet <http: // www. ibm. com / developerworks / jp / linux / library / l-gkryptdataencrypt2 / index. html? ca = drs-> 村上智祐、他5名、「GPGPUでの暗号化アルゴリズムの実装と評価」、情報処理学会創立50周年記念(第72回)全国大会、p1−57〜1−58Chisuke Murakami and five others, “Implementation and Evaluation of Encryption Algorithms in GPGPU”, 50th Anniversary of the Information Processing Society of Japan (72nd) National Convention, p1-57 to 1-58

特許文献1、非特許文献1、2及び非特許文献3によれば、GPUを用いて、共通鍵暗号やハッシュ関数を高速化する方式については記されているが、内積述語暗号や関数型暗号を高速化する方法については記されていない。   According to Patent Document 1, Non-Patent Documents 1 and 2, and Non-Patent Document 3, although a method for speeding up a common key cipher and a hash function using a GPU is described, an inner product predicate cipher and a functional cipher There is no description on how to increase the speed.

この発明は上記のような問題点を解決するためになされたもので、内積述語暗号や関数型暗号を高速に実行する情報処理装置の提供を目的とする。   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の暗号処理装置1000の構成を示すブロック図。FIG. 2 is a block diagram showing a configuration of a cryptographic processing apparatus 1000 according to the first embodiment. 実施の形態1で説明する内積述語暗号の暗号化のフローを示す図。FIG. 5 is a diagram showing an encryption flow of inner product predicate encryption described in the first embodiment. 図2のS201で汎用計算機200が生成する属性ベクトルテーブルVT及び乱数テーブルRTを示す図。The figure which shows the attribute vector table VT and random number table RT which the general purpose computer 200 produces | generates by S201 of FIG. 図2のS203における並列計算機100によるアクセス制御メッセージの生成法を示す図。The figure which shows the production | generation method of the access control message by the parallel computer 100 in S203 of FIG. 実施の形態1で説明する内積述語暗号の復号のフローを示す図。FIG. 5 is a diagram showing a flow of decryption of the inner product predicate encryption described in the first embodiment. 図5のS501におけるセッション鍵生成法を示す図。The figure which shows the session key generation method in S501 of FIG. 実施の形態2の2次拡大体上の1つ目の乗算の流れを示すフロー。9 is a flow showing a first multiplication flow on the secondary extension field of the second embodiment. 実施の形態2の2次拡大体上の2つ目の乗算の流れを示すフロー。9 is a flow showing a flow of second multiplication on the secondary extension field of the second embodiment.

実施の形態1.
図1は、実施の形態1における暗号処理装置1000(情報処理装置)の構成を示すブロック図である。暗号処理装置1000は、以下に述べる並列計算機100として一般的に入手可能なGPU(Graphics Processing Unit)を用いて実現することも可能である。また、以下の実施の形態では、特許文献1に示す内積述語暗号について記すが、以下に説明する実施の形態の要諦は、同様の構成を取る関数型暗号にも適用可能である。内積述語暗号の詳細は(特許文献1)に譲り、以下の実施の形態では、並列計算機(例えば、上記GPUを搭載したグラフィックカード)を用いた暗号化と復号との実装について説明する。
Embodiment 1 FIG.
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 parallel computer 100 described below. In the following embodiment, the inner product predicate encryption shown in Patent Document 1 will be described, but the gist of the embodiment described below can be applied to a functional encryption having the same configuration. Details of the inner product predicate encryption are given in (Patent Document 1), and in the following embodiments, implementation of encryption and decryption using a parallel computer (for example, a graphic card equipped with the GPU) will be described.

暗号処理装置1000は、複数のプロセッサ111を用いて並列処理を実行する並列計算機100と、汎用計算機200とを備える。並列計算機100と汎用計算機200とは、通信ポート130、通信ポート230によって接続されている。通信ポートはEthernet(登録商標)のようなシリアル形式でも、PCIexpressのようなバス形式でもよい。   The cryptographic processing apparatus 1000 includes a parallel computer 100 that executes parallel processing using a plurality of processors 111 and a general-purpose computer 200. The parallel computer 100 and the general-purpose computer 200 are connected by a communication port 130 and a communication port 230. The communication port may be a serial format such as Ethernet (registered trademark) or a bus format such as PCI express.

(並列計算機100)
並列計算機100は、並列計算部110、メモリ120、通信ポート130を搭載し、それらがバス140で接続されている。また、並列計算部110は、複数のプロセッサ111、命令デコーダ112及びレジスタ113を含んでいる。
(Parallel computer 100)
The parallel computer 100 includes a parallel computing unit 110, a memory 120, and a communication port 130, which are connected by a bus 140. The parallel computing unit 110 includes a plurality of processors 111, an instruction decoder 112, and a register 113.

(汎用計算機200)
汎用計算機200は、汎用計算部210、メモリ220、通信ポート230を搭載し、それらがバス240で接続されている。汎用計算機200としては、例えばPC(Personal Computer)がある。汎用計算機200の汎用計算部210は、例えばCPU(Central Processing Unit)である。
(General purpose computer 200)
The general-purpose computer 200 includes a general-purpose calculation unit 210, a memory 220, and a communication port 230, which are connected by a bus 240. An example of the general-purpose computer 200 is a PC (Personal Computer). The general-purpose calculation unit 210 of the general-purpose computer 200 is, for example, a CPU (Central Processing Unit).

図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 Patent Document 1 is mapped to the attribute vector table VT (also simply referred to as VT) (embedded attribute table generation). Further, random numbers are generated, and a random number table RT (which may be simply referred to as RT) is generated (S201). Next, in S202, a session key used for data encryption is generated, and desired data is encrypted using the session key. Common key encryption may be used for data encryption. Further, encryption may be performed in a usage mode that allows message verification, such as CCM (S202). Finally, in S203, (1) multiple-precision multiplication remainder, (2) elliptic scalar multiplication, and (3) elliptic point addition are performed using the values of the embedding attribute table VT and random number table RT, and the access control message A (Hereinafter sometimes simply referred to as A).

(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-purpose computer 200, and S203 is executed by the parallel computer 100 (referred to as a first embodiment).
(2) Or as a form different from the first form, in addition to the case of the first form, the data encryption in step 2 of S202 may be executed by the parallel computer 100 (referred to as the second form).
(3) Alternatively, Steps 1 and 3 of S203 may be executed by a general-purpose computer (referred to as the third form) for the first form. In other words, in the case of FIG. 2, at least the elliptic scalar multiplication in step 2 of S203 is processed in parallel by the parallel computer 100.
(4) Data communication between the parallel computer 100 and the general-purpose computer 200 is performed via each communication port. The parallel computer 100 receives the input data generated by the general-purpose computer 200 from the general-purpose computer 200, performs parallel calculation based on the input data, and returns the calculation result to the general-purpose computer 200.
(5) Note that S201 and the like are executed by each processor 111 of the parallel computing unit 110 if the parallel computer 100 is the execution subject, and by the general purpose computation unit 210 (CPU) if the general purpose computer 200 is the execution subject. is there.

(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-purpose computer 200 in S201. S201 is a process executed by the general-purpose computer 200. The attribute vector table VT and the random number table RT are input data for the parallel computer 100 generated by the general-purpose computer 200, as will be described later with reference to FIG. The general purpose computer 200 generates these input data and transmits them to the parallel computer 100. Hereinafter, FIG. 3 will be described.

メッセージ数を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-purpose computer 200 is
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-purpose computer 200 is
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-purpose computer 200 uses a predetermined constant (cyclic group number) for a cell (corresponding cell) of the random number table RT [i] [j] corresponding to a cell in which no attribute vector is embedded (cell of j = 5 in FIG. 3). ) Is set. By setting a unit element in a specific cell of the attribute vector table VT and setting a cyclic group number as a predetermined constant in a corresponding cell of the random number table RT corresponding to the specific cell (first setting), multiple multiplication The result of the remainder becomes the cyclic group number (see calculation 801 in FIG. 4 described later). Note that the cyclic group number may be set in a specific cell of the attribute vector table VT [i] [j], and a multiplicative unit element may be set in the corresponding cell of the random number table RT [i] [j]. 2 setting). As can be seen from the calculation 801 in FIG. 4 to be described later, the calculation result of the multiple-precision multiplication remainder between the corresponding components VT [i] [j] and RT [i] [j] is commutative. is there.

RT[i][n+1]は、特許文献1のパラメータρとして、S202のセッション鍵生成に使用する。   RT [i] [n + 1] is used as a parameter ρ of Patent Document 1 for generating a session key in S202.

(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 parallel computer 100 performs all of the processing of S203. As described in the third embodiment, at least elliptic scalar multiplication may be performed in parallel by the parallel computer 100.

以下に図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 parallel computer 100 inputs VT [m] [n + 2], RT [m] [n + 2], and a basis vector B [n + 2] [n + 2] generated beforehand (an example of input data generated by the general-purpose computer 200). . VT [1] [1] to VT [1] [n + 2] and VT [2] [1] to VT [2] [n + 2] in the input of FIG. 4 are one row of the attribute vector table VT of FIG. The second line. The first and second lines correspond to the first message (m = 1) and the second message (m = 2). Similarly, RT [1] [1] to RT [1] [n + 2] and RT [2] [1] to RT [2] [n + 2] in the input in FIG. 4 are 1 in the random number table RT in FIG. The second and second lines.

(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 parallel computer 100
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 parallel computer 100 executes multiple-precision multiplication remainder calculations in parallel. Specifically, the parallel computer 100 uses a plurality of processors 111 and the like, and each “calculation 801” ((n + 2) multiples per message) indicated by “x” in the frame in FIG. The long multiplication remainder is calculated in parallel by parallel processing. Furthermore, the parallel computer 100 also executes a plurality of messages in parallel.

(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 parallel computer 100 executes elliptic scalar multiplication ECS (m, B) from B [n + 2] and M [i] [j], and stores the result in S [m] [n + 2] [n + 2]. The elliptic scalar multiplication ECS (m, B) stored in S [i] [j] [k] is determined by the following equation.

Figure 2014138194
楕円スカラー倍算は、図4に示すように1メッセージ当たり(n+2)×(n+2)回行う。具体的には例えば図4のM[1][1]は、B[1」〜B[n+2]に対して(n+2)回計算し、これをM[1][1]〜M[1][n+2]について計算するので、上記のように1メッセージ当たり(n+2)×(n+2)回行うことになる。これら(n+2)×(n+2)回の計算は独立に計算できる。このため、並列計算機100は、楕円スカラー倍の計算を並列実行する。具体的には、並列計算機100は複数のプロセッサ111等を用いて、図4に枠の中をハッチングで示すそれぞれの「計算802」(1メッセージ当たり「(n+2)×(n+2)」個の楕円スカラー倍算)を並列処理によって並列に計算する。さらに、異なるメッセージに対しても並列に実行する。
Figure 2014138194
The elliptic scalar multiplication is performed (n + 2) × (n + 2) times per message as shown in FIG. Specifically, for example, M [1] [1] in FIG. 4 is calculated (n + 2) times for B [1] to B [n + 2], and this is calculated for M [1] [1] to M [1]. Since [n + 2] is calculated, it is performed (n + 2) × (n + 2) times per message as described above. These (n + 2) × (n + 2) times can be calculated independently. For this reason, the parallel computer 100 executes calculations of elliptic scalar multiplication in parallel. Specifically, the parallel computer 100 uses a plurality of processors 111 and the like, and each “calculation 802” (“(n + 2) × (n + 2)” ellipses per message) shown in FIG. (Scalar multiplication) is calculated in parallel by parallel processing. In addition, different messages are executed in parallel.

(4.楕円点加算)
並列計算機100は、楕円スカラー倍算の結果に対し、楕円点加算を実行し、結果をアクセス制御メッセージA[m][n+2]に格納する。
A[i][j](1≦i≦m,1≦j≦n+2)
は下記の数式で計算する。
(4. Ellipse point addition)
The parallel computer 100 performs elliptic point addition on the result of the elliptic scalar multiplication and stores the result in the access control message A [m] [n + 2].
A [i] [j] (1 ≦ i ≦ m, 1 ≦ j ≦ n + 2)
Is calculated by the following formula.

Figure 2014138194
楕円点加算は1メッセージ当たり、(n+1)回の加算を(n+2)個実行する。1メッセージ当たりの(n+2)個の加算は独立して計算できる。このため、並列計算機100は、(n+2)個の楕円点加算を並列実行する。具体的には、並列計算機100は複数のプロセッサ111等を用いて、図4に枠の中に「+」を記載して示すそれぞれの「計算803」(1メッセージ当たり(n+2)個の楕円点加算)を並列処理によって並列に計算する。さらに、異なるメッセージに対しても並列に実行する。
最後に、Aを汎用計算機に出力する。
Figure 2014138194
Ellipse point addition performs (n + 1) additions (n + 1) times per message. (N + 2) additions per message can be calculated independently. For this reason, the parallel computer 100 executes (n + 2) ellipse point addition in parallel. Specifically, the parallel computer 100 uses a plurality of processors 111 and the like, and each “calculation 803” ((n + 2) ellipse points per message) indicated by “+” in the frame in FIG. (Addition) is calculated in parallel by parallel processing. In addition, different messages are executed in parallel.
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 parallel computer 100, but the parallel computer 100 may execute only the perling operation with a high operation load in parallel.

(1.データ入力)
並列計算機100は、図6のように、アクセス制御メッセージA[m][n+2]と、あらかじめ生成された固定長の秘密鍵である秘密鍵ベクトルSK[n+2](汎用計算機200が生成)を入力する。
(1. Data input)
As shown in FIG. 6, the parallel computer 100 inputs the access control message A [m] [n + 2] and a secret key vector SK [n + 2] (generated by the general-purpose computer 200), which is a fixed-length secret key generated in advance. To do.

(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 parallel computer 100
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 parallel computer 100 executes pairing operations in parallel. Specifically, the parallel computer 100 uses a plurality of processors 111 and the like to perform parallel processing of “calculations 901” ((n + 2) pairing operations per message) indicated by hatching in the frame in FIG. To calculate in parallel. Further, it is executed in parallel for a plurality of messages.

(3.拡大体上乗算)
並列計算機100は、セッション鍵K[m]を下記の式で計算し、Kを汎用計算機に出力する。
(3. Multiply on expansion field)
The parallel computer 100 calculates the session key K [m] by the following formula and outputs K to the general-purpose computer.

Figure 2014138194
E[i][j]の乗算は拡大体上で行う。拡大体上の乗算は、セッション鍵ごとに独立して行える。このため、並列計算機100は、拡大体上の乗算をセッション鍵ごとに並列に実行する。具体的には、並列計算機100は複数のプロセッサ111等を用いて、図6に枠の中に「×」を記載して示すそれぞれの「計算902」(1セッション鍵当たり(n+1)個の拡大体上の乗算)を並列処理によって並列に計算する。
Figure 2014138194
The multiplication of E [i] [j] is performed on the extension field. Multiplication on the extension field can be performed independently for each session key. For this reason, the parallel computer 100 executes multiplication on the extension field in parallel for each session key. Specifically, the parallel computer 100 uses a plurality of processors 111 and the like, and each “calculation 902” (“n + 1” expansion per session key) indicated by “x” in the frame in FIG. (Multiplication over the field) is calculated in parallel by parallel processing.

効果について説明する。以上に説明した実施の形態1では、計算に時間のかかる楕円スカラー倍算(図4の計算802)やペアリング演算(図6の計算901)を並列計算機を用いて並列実行する。これによって、高速に内積述語暗号の暗号化処理や復号処理を行うことができる。   The effect will be described. In the first embodiment described above, elliptic scalar multiplication (calculation 802 in FIG. 4) and pairing calculation (calculation 901 in FIG. 6), which take time to calculate, are executed in parallel using a parallel computer. As a result, encryption processing and decryption processing of inner product predicate encryption can be performed at high speed.

実施の形態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が並列に計算する。
Embodiment 2. FIG.
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 parallel computer 100 calculates in parallel.

図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. Group 1 and group 2 in FIG. 7 are executed in each calculation 901 in the pairing operation. In FIG. 7, each step (each thread) of group 1 and group 2 is executed simultaneously, and input / output data is completely synchronized every step. In each step, the same multiple-length integer operation with different inputs is executed. Further, the multiplication (Step 4) for the result of Step 3 is executed in one group, and the other group does not perform the operation during that time.

図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, group 1 and group 2 in FIG. 8 are executed in each calculation 901 in the pairing operation. In FIG. 8, each step (each thread) of group 1 and group 2 is executed at the same time, and input / output data is completely synchronized for each step. In each step, the same operation with different inputs is executed. In addition, the result of Step 3 is multiplied by one group, and during that time, the other group is not operated. Further, in Step 2 of Group 1, the same multiple length addition is performed, although the calculation target is different depending on the magnitude relation of the result of Step 1.

効果について説明する。本実施の形態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 parallel computer 100 moves the steps of the two groups composed of a plurality of steps (threads) that perform multiple-length operations simultaneously in parallel on the secondary extension field. Although the method for executing the pairing operation has been described, the operation on the secondary extension field is the same on the n-order extension field (n is an integer of 3 or more) as in the above-described operation on the secondary extension field. It can be processed. That is, the parallel computer 100 is configured by a plurality of steps (threads) for performing a multiple-length operation on an operation on the n-order extension field (n is an integer of 2 or more) when executing a pairing operation. The pairing operation is executed by moving each thread of the n groups in parallel at the same time.

また、並列計算機100は、上記で述べたn次拡大体上の演算と同様に、n次ツイスト曲線上の演算を実行してもよい。つまり、並列計算機100は、n次ツイスト曲線上の演算(nは2以上の整数)を、多倍長演算を行う複数のステップ(スレッド)から構成されるn個のグループの各ステップを同時に並列に動かすことでペアリング演算を実行する方式を採用しても構わない。   Further, the parallel computer 100 may execute an operation on the n-th order twist curve similarly to the operation on the n-th order extension field described above. In other words, the parallel computer 100 simultaneously performs the operations on the n-order twist curve (n is an integer equal to or greater than 2), and simultaneously performs the steps of n groups composed of a plurality of steps (threads) that perform multiple-length operations. It is also possible to adopt a method of executing pairing calculation by moving 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 parallel computer 100 executes the pairing operation, the parallel computer 100 simultaneously performs operations on the n-th order extension field and operations on the n-order twist curve for n groups composed of a plurality of threads that perform multiple length operations. A cryptographic processing device that performs processing by moving them in parallel.

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.
JP2013004280A 2013-01-15 2013-01-15 Information processing device Expired - Fee Related JP6057725B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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