JP6057725B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP6057725B2
JP6057725B2 JP2013004280A JP2013004280A JP6057725B2 JP 6057725 B2 JP6057725 B2 JP 6057725B2 JP 2013004280 A JP2013004280 A JP 2013004280A JP 2013004280 A JP2013004280 A JP 2013004280A JP 6057725 B2 JP6057725 B2 JP 6057725B2
Authority
JP
Japan
Prior art keywords
parallel
computer
purpose computer
general
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013004280A
Other languages
English (en)
Other versions
JP2014138194A (ja
Inventor
晃由 山口
晃由 山口
佐藤 恒夫
恒夫 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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/ja
Publication of JP2014138194A publication Critical patent/JP2014138194A/ja
Application granted granted Critical
Publication of JP6057725B2 publication Critical patent/JP6057725B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、楕円スカラー倍算及びペアリング演算を伴う、内積述語暗号や関数型暗号を実行する情報処理装置に関する。
現在、新しい暗号として研究が進んでいる内積述語暗号(特許文献1)や関数型暗号(特許文献2)では、1つの暗号文を生成する際に、複数回の楕円スカラー倍算を行う必要がある。また、1つの暗号文を復号する際も、複数回のペアリング演算を行う必要がある。通常、「楕円スカラー倍算」や「ペアリング演算」は重い処理であり、暗号文が増加するとその分だけ演算コストがかかる。また、内積述語暗号や関数型暗号では、述語や関数の複雑さが増加すると、暗号文1つあたりの楕円スカラー倍算・ペアリング演算の回数も増加し、演算コストが上がる。複雑な述語や関数の行うメッセージを大量に暗号化、復号する場合、これらの処理の高速化が求められる。
一方、大量のデータを低コストで処理するために、グラフィックプロセッサ(GPU)を用いて暗号処理を行う装置が提案されている(例えば、特許文献3、非特許文献1、2、非特許文献3)。
特開2010−273317号公報 特開2011−232475号公報 特開2007−233381号公報
Jawad Masood,「gKryptを使用して瞬時にデータを保護する:第1回」、[online]、IBMホームページ、[平成25年1月8日検索]、インターネット<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−> 村上智祐、他5名、「GPGPUでの暗号化アルゴリズムの実装と評価」、情報処理学会創立50周年記念(第72回)全国大会、p1−57〜1−58
特許文献1、非特許文献1、2及び非特許文献3によれば、GPUを用いて、共通鍵暗号やハッシュ関数を高速化する方式については記されているが、内積述語暗号や関数型暗号を高速化する方法については記されていない。
この発明は上記のような問題点を解決するためになされたもので、内積述語暗号や関数型暗号を高速に実行する情報処理装置の提供を目的とする。
この発明の情報処理装置は、
汎用計算機と並列処理を実行する並列計算機とを備える情報処理装置において、
前記汎用計算機は、
前記並列計算機で使用する入力データを生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記入力データに基づいて、楕円スカラー倍算とペアリング演算との少なくともいずれかを、前記並列処理によって並列に計算することを特徴とする。
この発明により、楕円スカラー倍算やペアリング演算を伴う、内積述語暗号や関数型暗号を高速に実行する情報処理装置を提供できる。
実施の形態1の暗号処理装置1000の構成を示すブロック図。 実施の形態1で説明する内積述語暗号の暗号化のフローを示す図。 図2のS201で汎用計算機200が生成する属性ベクトルテーブルVT及び乱数テーブルRTを示す図。 図2のS203における並列計算機100によるアクセス制御メッセージの生成法を示す図。 実施の形態1で説明する内積述語暗号の復号のフローを示す図。 図5のS501におけるセッション鍵生成法を示す図。 実施の形態2の2次拡大体上の1つ目の乗算の流れを示すフロー。 実施の形態2の2次拡大体上の2つ目の乗算の流れを示すフロー。
実施の形態1.
図1は、実施の形態1における暗号処理装置1000(情報処理装置)の構成を示すブロック図である。暗号処理装置1000は、以下に述べる並列計算機100として一般的に入手可能なGPU(Graphics Processing Unit)を用いて実現することも可能である。また、以下の実施の形態では、特許文献1に示す内積述語暗号について記すが、以下に説明する実施の形態の要諦は、同様の構成を取る関数型暗号にも適用可能である。内積述語暗号の詳細は(特許文献1)に譲り、以下の実施の形態では、並列計算機(例えば、上記GPUを搭載したグラフィックカード)を用いた暗号化と復号との実装について説明する。
暗号処理装置1000は、複数のプロセッサ111を用いて並列処理を実行する並列計算機100と、汎用計算機200とを備える。並列計算機100と汎用計算機200とは、通信ポート130、通信ポート230によって接続されている。通信ポートはEthernet(登録商標)のようなシリアル形式でも、PCIexpressのようなバス形式でもよい。
(並列計算機100)
並列計算機100は、並列計算部110、メモリ120、通信ポート130を搭載し、それらがバス140で接続されている。また、並列計算部110は、複数のプロセッサ111、命令デコーダ112及びレジスタ113を含んでいる。
(汎用計算機200)
汎用計算機200は、汎用計算部210、メモリ220、通信ポート230を搭載し、それらがバス240で接続されている。汎用計算機200としては、例えばPC(Personal Computer)がある。汎用計算機200の汎用計算部210は、例えばCPU(Central Processing Unit)である。
図2は、内積述語暗号の暗号化のフローを示す。初めに、S201において、特許文献1により生成された属性ベクトルを、属性ベクトルテーブルVT(単にVTと記す場合もある)にマッピングする(埋め込み属性テーブルの生成)。また、乱数を生成し、乱数テーブルRT(単にRTと記す場合もある)を生成する(S201)。次に、S202において、データの暗号化に用いるセッション鍵を生成し、前記セッション鍵を用いて所望のデータを暗号化する。データ暗号化には共通鍵暗号を用いてもよい。さらに、CCM等のメッセージ検証可能な利用モードによる暗号化を行ってもよい(S202)。最後に、S203において、埋め込み属性テーブルVTと乱数テーブルRTの値を用いて、(1)多倍長乗算剰余、(2)楕円スカラー倍算、(3)楕円点加算を行い、アクセス制御メッセージA(以下、単に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)である。
(S201の処理内容)
図3は、S201で汎用計算機200が生成する属性ベクトルテーブルVT及び、乱数テーブルRTを示す。S201は、汎用計算機200が実行する処理である。属性ベクトルテーブルVT及び乱数テーブルRTは、図4でさらに後述するが、汎用計算機200が生成する、並列計算機100のための入力データである。汎用計算機200は、これらの入力データを生成して、並列計算機100へ送信する。以下、図3を説明する。
メッセージ数を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]
には、乗法単位元を設定する。
汎用計算機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]が設定されている。
汎用計算機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]との多倍長乗算剰余の計算結果は可換だからである。
RT[i][n+1]は、特許文献1のパラメータρとして、S202のセッション鍵生成に使用する。
(S203の処理内容)
図4はS203におけるアクセス制御メッセージの生成法を示す。図4はS203の処理の全てを並列計算機100が行う例を示すが、上記の第3形態で述べたように、少なくとも楕円スカラー倍算を並列計算機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行目である。
(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は複数のメッセージに対しても並列に実行する。
(3.楕円スカラー倍算)
並列計算機100は、B[n+2]とM[i][j]とから楕円スカラー倍算ECS(m,B)を実行し、結果をS[m][n+2][n+2]に格納する。S[i][j][k]に格納する楕円スカラー倍ECS(m,B)は、下記の数式で決定する。
Figure 0006057725
楕円スカラー倍算は、図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)」個の楕円スカラー倍算)を並列処理によって並列に計算する。さらに、異なるメッセージに対しても並列に実行する。
(4.楕円点加算)
並列計算機100は、楕円スカラー倍算の結果に対し、楕円点加算を実行し、結果をアクセス制御メッセージA[m][n+2]に格納する。
A[i][j](1≦i≦m,1≦j≦n+2)
は下記の数式で計算する。
Figure 0006057725
楕円点加算は1メッセージ当たり、(n+1)回の加算を(n+2)個実行する。1メッセージ当たりの(n+2)個の加算は独立して計算できる。このため、並列計算機100は、(n+2)個の楕円点加算を並列実行する。具体的には、並列計算機100は複数のプロセッサ111等を用いて、図4に枠の中に「+」を記載して示すそれぞれの「計算803」(1メッセージ当たり(n+2)個の楕円点加算)を並列処理によって並列に計算する。さらに、異なるメッセージに対しても並列に実行する。
最後に、Aを汎用計算機に出力する。
図5は、内積述語暗号の復号のフローを示す。内積述語暗号の復号では、アクセス制御メッセージA[m][n+2]からセッション鍵を生成する。
(1)まず、アクセス制御メッセージA(暗号文の一例)と、あらかじめ生成した秘密鍵とのペアリングを計算し、計算したペアリング値を拡大体上乗算して、セッション鍵を得る(S501)。
(2)次に、前記セッション鍵を用いて、暗号化されたデータを復号する(S502)。
図6はS501におけるセッション鍵生成法を示す。図6はS501の処理の全てを並列計算機100で行う例を示すが、並列計算機100は演算負荷の高いぺリング演算だけを並列実行しても良い。
(1.データ入力)
並列計算機100は、図6のように、アクセス制御メッセージA[m][n+2]と、あらかじめ生成された固定長の秘密鍵である秘密鍵ベクトルSK[n+2](汎用計算機200が生成)を入力する。
(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)個のペアリング演算)を並列処理によって並列に計算する。さらに、複数のメッセージに対しても並列に実行する。
(3.拡大体上乗算)
並列計算機100は、セッション鍵K[m]を下記の式で計算し、Kを汎用計算機に出力する。
Figure 0006057725
E[i][j]の乗算は拡大体上で行う。拡大体上の乗算は、セッション鍵ごとに独立して行える。このため、並列計算機100は、拡大体上の乗算をセッション鍵ごとに並列に実行する。具体的には、並列計算機100は複数のプロセッサ111等を用いて、図6に枠の中に「×」を記載して示すそれぞれの「計算902」(1セッション鍵当たり(n+1)個の拡大体上の乗算)を並列処理によって並列に計算する。
効果について説明する。以上に説明した実施の形態1では、計算に時間のかかる楕円スカラー倍算(図4の計算802)やペアリング演算(図6の計算901)を並列計算機を用いて並列実行する。これによって、高速に内積述語暗号の暗号化処理や復号処理を行うことができる。
実施の形態1のもう1つの効果として以下の効果がある。暗号化の際に属性値を埋め込まない場合に、VT[i][j](特定セル)に乗法単位元を設定し、対応するRT[i][j](対応セル)に巡回群位数を設定した。あるいはVT[i][j](特定セル)に巡回群位数を設定し、対応するRT[i][j](対応セル)に乗法単位元を設定した。これにより、属性値を埋め込まない場合でも、属性値を埋め込んだ場合と同じように計算を行うことができ、属性値を埋め込むか否かの条件判定を削減することができる。巡回群位数を埋め込むことにより、楕円スカラー倍算の結果は無限遠点になるため、その後の楕円点加算において、楕円スカラー倍算の結果をそのまま足しても、楕円点加算の結果に影響を与えない。
実施の形態2.
本実施の形態2は、実施の形態1の図6に示したペアリング演算(計算901)において、2次拡大体上の2つの乗算を並列に実行する方法について記す。ペアリング演算(計算901)であるので、並列計算機100が並列に計算する。
図7は、2次拡大体上の1つ目の乗算の流れを示すフローである。図7のグループ1とグループ2は、ペアリング演算における各計算901において実行される。図7において、グループ1とグループ2の各Step(各スレッド)は同時に実行され、入出力データは各Stepごとに完全に同期するものとする。各ステップでは入力の異なる同じ多倍長整数演算を実行する。また、Step3の結果に対する乗算(Step4)は片一方のグループで実行し、その間、他方のグループは演算を行わない。
図8は2次拡大体上の2つ目の乗算の流れを示すフロー図である。図7と同様に、図8のグループ1とグループ2は、ペアリング演算における各計算901において実行される。図8において、グループ1とグループ2の各Step(各スレッド)は、同時に実行され、入出力データはStepごとに完全に同期するものとする。各ステップでは入力の異なる同じ演算を実行する。また、Step3の結果に乗算は片一方のグループで実行し、その間、他方のグループは演算を行わない。さらに、グループ1のStep2では、Step1の結果の大小関係で演算対象が異なるが、同じ多倍長加算を行う。
効果について説明する。本実施の形態2によれば、実施の形態1の効果に加え、内積述語暗号の復号操作におけるペアリング演算をさらに高速化することができる。また、各ステップでは同じ演算を実行するため、多倍長演算前のオペランド設定のみを分岐処理することができ、多倍長演算処理の直列化によるスループットの低下を抑制することができる。
実施の形態2は、並列計算機100が、2次拡大体上の演算を、多倍長演算を行う複数のステップ(スレッド)から構成される2個のグループの各ステップを同時に並列に動かすことでペアリング演算を実行する方式を説明したが、この2次拡大体上の演算はn次拡大体上の演算(nは3以上の整数)でも、上記の2次拡大体上の演算と同様に処理できる。つまり、記並列計算機100は、ペアリング演算を実行する際に、n次拡大体上の演算(nは2以上の整数)を、多倍長演算を行う複数のステップ(スレッド)から構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する。
また、並列計算機100は、上記で述べたn次拡大体上の演算と同様に、n次ツイスト曲線上の演算を実行してもよい。つまり、並列計算機100は、n次ツイスト曲線上の演算(nは2以上の整数)を、多倍長演算を行う複数のステップ(スレッド)から構成されるn個のグループの各ステップを同時に並列に動かすことでペアリング演算を実行する方式を採用しても構わない。
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機と並列計算機とを備える暗号処理装置であって、
前記汎用計算機は、
前記並列計算機で使用する入力データを前記汎用計算機で多量に生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送られてきた多量の前記入力データを並列に計算し、計算結果を汎用計算機に送付する暗号処理装置。
以上の実施の形態では以下の暗号処理装置を説明した。
前記並列計算機は、
楕円スカラー倍算もしくはペアリング演算を行う暗号処理装置。
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機と並列計算機とを備え、内積述語暗号を実行する暗号処理装置であって、
前記汎用計算機は、
属性ベクトルと乱数とを多量に生成し、それぞれをそれぞれのテーブルに格納し、前記属性ベクトルと乱数とを格納した各テーブルを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された属性ベクトルテーブルと乱数テーブルとをもとに、多倍長乗算剰余、楕円スカラー倍算、楕円点加算を計算し、計算結果を前記汎用計算機に送付する暗号処理装置。
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機と並列計算機とを備え、内積述語暗号を実行する暗号処理装置であって、
前記汎用計算機は、
多量の暗号文と、固定長の秘密鍵を前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記暗号文と前記秘密鍵とをもとに、ペアリング演算、拡大体上乗算を計算し、計算結果を前記汎用計算機に送付する暗号処理装置。
以上の実施の形態では以下の暗号処理装置を説明した。
前記汎用計算機は、
属性ベクトルテーブルのうちの予め定められた箇所のセルであって属性ベクトルの埋め込みを行わない特定セルと、乱数テーブルの各セルのうち予め定められたセルであって前記属性ベクトルテーブルの前記特定セルに対応すると共に乱数を埋め込まないセルである対応セルとに対して、多倍長乗算剰余の結果が巡回群位数となる値を設定する情報処理装置。
以上の実施の形態では以下の暗号処理装置を説明した。
汎用計算機は、
属性ベクトルの埋め込みを行わない場合に、属性ベクトルを格納する属性ベクトルテーブルの当該位置に乗法単位元を設定し、乱数値を格納するテーブルの当該位置に巡回群位数を設定すること、または、属性ベクトルの埋め込みを行わない場合に、属性ベクトルテーブルの当該位置に巡回群位数を設定し、乱数値を格納するテーブルの当該位置に乗法単位元を設定する暗号処理装置。
以上の実施の形態では以下の暗号処理装置を説明した。
並列計算機100は、ペアリング演算を実行する際に、n次拡大体上の演算およびn次ツイスト曲線上の演算を、多倍長演算を行う複数のスレッドから構成されるn個のグループを同時並列に動かすことで処理を行う暗号処理装置。
100 並列計算機、110 並列計算部、111 プロセッサ、112 命令デコーダ、113 レジスタ、120 メモリ、130 通信ポート、140 バス、200 汎用計算機、210 汎用計算部、220 メモリ、230 通信ポート、240 バス、1000 暗号処理装置。

Claims (5)

  1. 汎用計算機と並列処理を実行する並列計算機とを備える情報処理装置において、
    前記汎用計算機は、
    前記並列計算機で使用する入力データを生成し、生成した前記入力データを前記並列計算機に送信し、
    前記並列計算機は、
    前記汎用計算機から送信された前記入力データに基づいて、楕円スカラー倍算とペアリング演算との少なくともいずれかを、前記並列処理によって並列に計算し、
    前記情報処理装置は、
    内積述語暗号の暗号化を実行する暗号処理装置であり、
    前記汎用計算機は、
    前記入力データとして、属性ベクトルが格納された属性ベクトルテーブルと、乱数が格納された乱数テーブルとを生成し、
    前記並列計算機は、
    前記属性ベクトルテーブルと前記乱数テーブルとに基づいて多倍長乗算剰余を前記並列処理によって並列に計算し、多倍長乗算剰余の並列計算の結果に基づいて楕円スカラー倍算を前記並列処理によって並列に計算し、楕円スカラー倍算の並列計算の結果に基づいて楕円点加算を前記並列処理によって並列に計算し、
    前記汎用計算機は、
    前記属性ベクトルテーブルの各セルのうち予め定められたセルであって属性ベクトルを埋め込まないセルである特定セルと、前記乱数テーブルの各セルのうち予め定められたセルであって前記属性ベクトルテーブルの前記特定セルに対応すると共に乱数を埋め込まないセルである対応セルとに対して、多倍長乗算剰余の結果が巡回群位数となる値を設定することを特徴する情報処理装置。
  2. 前記汎用計算機は、
    前記属性ベクトルテーブルの前記特定セルに乗法単位元を設定する共に前記乱数テーブルの前記対応セルに巡回群位数を設定する第1の設定と、
    前記属性ベクトルテーブルの前記特定セルに巡回群位数を設定する共に前記乱数テーブルの前記対応セルに乗法単位元を設定する第2の設定との、
    いずれかの設定を実行することを特徴とする請求項1に記載の情報処理装置。
  3. 前記汎用計算機は、
    暗号文と、固定長の秘密鍵とを前記並列計算機に送信し、
    前記並列計算機は、
    前記汎用計算機から送信された前記暗号文と前記秘密鍵とに基づいて、
    ペアリング演算を前記並列処理によって並列に計算すると共に拡大体上乗算を前記並列処理によって並列に計算することを特徴とする請求項1または請求項2に記載の情報処理装置。
  4. 前記並列計算機は、
    前記汎用計算機から送信された前記暗号文と前記秘密鍵とに基づいてペアリング演算を前記並列処理によって並列に計算し、ペアリング演算の並列計算の結果に基づいて拡大体上乗算を前記並列処理によって並列に計算することを特徴とする請求項3に記載の情報処理装置。
  5. 前記並列計算機は、
    ペアリング演算を実行する際に、
    n次拡大体上の演算(nは2以上の整数)を、多倍長演算を行う複数のスレッドから構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する方式と、
    n次ツイスト曲線上の演算を、多倍長演算を行う複数のスレッドから構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する方式と
    の少なくともいずれかの方式を用いることを特徴とする請求項または請求項4に記載の情報処理装置。
JP2013004280A 2013-01-15 2013-01-15 情報処理装置 Expired - Fee Related JP6057725B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013004280A JP6057725B2 (ja) 2013-01-15 2013-01-15 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013004280A JP6057725B2 (ja) 2013-01-15 2013-01-15 情報処理装置

Publications (2)

Publication Number Publication Date
JP2014138194A JP2014138194A (ja) 2014-07-28
JP6057725B2 true JP6057725B2 (ja) 2017-01-11

Family

ID=51415509

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013004280A Expired - Fee Related JP6057725B2 (ja) 2013-01-15 2013-01-15 情報処理装置

Country Status (1)

Country Link
JP (1) JP6057725B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6471456B2 (ja) * 2014-10-23 2019-02-20 日本電気株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP6754319B2 (ja) * 2017-05-25 2020-09-09 日本電信電話株式会社 ブロックチェーン更新システム、サーバ装置、クライアント装置、ブロックチェーン更新方法、およびプログラム
KR101925614B1 (ko) * 2017-11-08 2018-12-05 부산대학교 산학협력단 타원곡선 암호화 시스템에서의 스칼라 곱셈 처리 방법 및 타원곡선 암호화 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4202701B2 (ja) * 2002-09-11 2008-12-24 株式会社東芝 多項式剰余系演算装置、方法及びプログラム
WO2010123151A2 (ja) * 2009-04-21 2010-10-28 国立大学法人岡山大学 ペアリング演算装置、ペアリング演算方法、及びぺアリング演算プログラムを記録した記録媒体
JP5349261B2 (ja) * 2009-04-23 2013-11-20 三菱電機株式会社 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム

Also Published As

Publication number Publication date
JP2014138194A (ja) 2014-07-28

Similar Documents

Publication Publication Date Title
US20200177366A1 (en) Homomorphic data encryption method and apparatus for implementing privacy protection
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
EP3965360A1 (en) State synchronization for post-quantum signing facilities
EP4020881A1 (en) Post-quantum secure remote attestation for autonomous systems
EP2712115A1 (en) Order-preserving encryption system, device, method, and program
US11418334B2 (en) Protecting modular inversion operation from external monitoring attacks
Mahajan et al. Analysis of RSA algorithm using GPU programming
JP6057725B2 (ja) 情報処理装置
WO2023107776A1 (en) Efficient hybridization of classical and post-quantum signatures
CN115840936A (zh) 数论变换的低开销侧信道保护
Wu et al. A fast GPU-based implementation for MD5 hash reverse
US10333699B1 (en) Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
EP4311158A1 (en) Efficient low-overhead side-channel protection for polynomial multiplication in post-quantum encryption
Keliris et al. Investigating large integer arithmetic on Intel Xeon Phi SIMD extensions
US20220123949A1 (en) Side channel protection for xmss signature function
Yudheksha et al. A study of AES and RSA algorithms based on GPUs
Patchappen et al. Batch processing of multi-variant AES cipher with GPU
Tanaka et al. Efficient implementation for QUAD stream cipher with GPUs
Kimsanova et al. Comparative analysis of integer factorization algorithms using CPU and GPU
NL2015955B1 (en) Calculating device and method.
US20240007266A1 (en) Reconfigurable side-channel resistant double-throughput aes accelerator
JP7383949B2 (ja) 情報処理装置及びプログラム
US20240031127A1 (en) Lightweight side-channel protection for polynomial multiplication in post-quantum signatures
Chong et al. Accelerating elGamal partial homomorphic encryption with GPU platform for industrial Internet of Things
Mahajan et al. Efficient Algorithm for RSA Text Encryption using CUDA-C

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