JP6057725B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- 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
Links
Images
Description
汎用計算機と並列処理を実行する並列計算機とを備える情報処理装置において、
前記汎用計算機は、
前記並列計算機で使用する入力データを生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記入力データに基づいて、楕円スカラー倍算とペアリング演算との少なくともいずれかを、前記並列処理によって並列に計算することを特徴とする。
図1は、実施の形態1における暗号処理装置1000(情報処理装置)の構成を示すブロック図である。暗号処理装置1000は、以下に述べる並列計算機100として一般的に入手可能なGPU(Graphics Processing Unit)を用いて実現することも可能である。また、以下の実施の形態では、特許文献1に示す内積述語暗号について記すが、以下に説明する実施の形態の要諦は、同様の構成を取る関数型暗号にも適用可能である。内積述語暗号の詳細は(特許文献1)に譲り、以下の実施の形態では、並列計算機(例えば、上記GPUを搭載したグラフィックカード)を用いた暗号化と復号との実装について説明する。
並列計算機100は、並列計算部110、メモリ120、通信ポート130を搭載し、それらがバス140で接続されている。また、並列計算部110は、複数のプロセッサ111、命令デコーダ112及びレジスタ113を含んでいる。
汎用計算機200は、汎用計算部210、メモリ220、通信ポート230を搭載し、それらがバス240で接続されている。汎用計算機200としては、例えばPC(Personal Computer)がある。汎用計算機200の汎用計算部210は、例えばCPU(Central Processing Unit)である。
(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)である。
図3は、S201で汎用計算機200が生成する属性ベクトルテーブルVT及び、乱数テーブルRTを示す。S201は、汎用計算機200が実行する処理である。属性ベクトルテーブルVT及び乱数テーブルRTは、図4でさらに後述するが、汎用計算機200が生成する、並列計算機100のための入力データである。汎用計算機200は、これらの入力データを生成して、並列計算機100へ送信する。以下、図3を説明する。
汎用計算機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]
には、乗法単位元を設定する。
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]が設定されている。
図4はS203におけるアクセス制御メッセージの生成法を示す。図4はS203の処理の全てを並列計算機100が行う例を示すが、上記の第3形態で述べたように、少なくとも楕円スカラー倍算を並列計算機100によって並列計算すればよい。
(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行目である。
並列計算機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は複数のメッセージに対しても並列に実行する。
並列計算機100は、B[n+2]とM[i][j]とから楕円スカラー倍算ECS(m,B)を実行し、結果をS[m][n+2][n+2]に格納する。S[i][j][k]に格納する楕円スカラー倍ECS(m,B)は、下記の数式で決定する。
並列計算機100は、楕円スカラー倍算の結果に対し、楕円点加算を実行し、結果をアクセス制御メッセージA[m][n+2]に格納する。
A[i][j](1≦i≦m,1≦j≦n+2)
は下記の数式で計算する。
最後に、Aを汎用計算機に出力する。
(1)まず、アクセス制御メッセージA(暗号文の一例)と、あらかじめ生成した秘密鍵とのペアリングを計算し、計算したペアリング値を拡大体上乗算して、セッション鍵を得る(S501)。
(2)次に、前記セッション鍵を用いて、暗号化されたデータを復号する(S502)。
並列計算機100は、図6のように、アクセス制御メッセージA[m][n+2]と、あらかじめ生成された固定長の秘密鍵である秘密鍵ベクトルSK[n+2](汎用計算機200が生成)を入力する。
並列計算機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)個のペアリング演算)を並列処理によって並列に計算する。さらに、複数のメッセージに対しても並列に実行する。
並列計算機100は、セッション鍵K[m]を下記の式で計算し、Kを汎用計算機に出力する。
本実施の形態2は、実施の形態1の図6に示したペアリング演算(計算901)において、2次拡大体上の2つの乗算を並列に実行する方法について記す。ペアリング演算(計算901)であるので、並列計算機100が並列に計算する。
汎用計算機と並列計算機とを備える暗号処理装置であって、
前記汎用計算機は、
前記並列計算機で使用する入力データを前記汎用計算機で多量に生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送られてきた多量の前記入力データを並列に計算し、計算結果を汎用計算機に送付する暗号処理装置。
前記並列計算機は、
楕円スカラー倍算もしくはペアリング演算を行う暗号処理装置。
汎用計算機と並列計算機とを備え、内積述語暗号を実行する暗号処理装置であって、
前記汎用計算機は、
属性ベクトルと乱数とを多量に生成し、それぞれをそれぞれのテーブルに格納し、前記属性ベクトルと乱数とを格納した各テーブルを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された属性ベクトルテーブルと乱数テーブルとをもとに、多倍長乗算剰余、楕円スカラー倍算、楕円点加算を計算し、計算結果を前記汎用計算機に送付する暗号処理装置。
汎用計算機と並列計算機とを備え、内積述語暗号を実行する暗号処理装置であって、
前記汎用計算機は、
多量の暗号文と、固定長の秘密鍵を前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記暗号文と前記秘密鍵とをもとに、ペアリング演算、拡大体上乗算を計算し、計算結果を前記汎用計算機に送付する暗号処理装置。
前記汎用計算機は、
属性ベクトルテーブルのうちの予め定められた箇所のセルであって属性ベクトルの埋め込みを行わない特定セルと、乱数テーブルの各セルのうち予め定められたセルであって前記属性ベクトルテーブルの前記特定セルに対応すると共に乱数を埋め込まないセルである対応セルとに対して、多倍長乗算剰余の結果が巡回群位数となる値を設定する情報処理装置。
汎用計算機は、
属性ベクトルの埋め込みを行わない場合に、属性ベクトルを格納する属性ベクトルテーブルの当該位置に乗法単位元を設定し、乱数値を格納するテーブルの当該位置に巡回群位数を設定すること、または、属性ベクトルの埋め込みを行わない場合に、属性ベクトルテーブルの当該位置に巡回群位数を設定し、乱数値を格納するテーブルの当該位置に乗法単位元を設定する暗号処理装置。
並列計算機100は、ペアリング演算を実行する際に、n次拡大体上の演算およびn次ツイスト曲線上の演算を、多倍長演算を行う複数のスレッドから構成されるn個のグループを同時並列に動かすことで処理を行う暗号処理装置。
Claims (5)
- 汎用計算機と並列処理を実行する並列計算機とを備える情報処理装置において、
前記汎用計算機は、
前記並列計算機で使用する入力データを生成し、生成した前記入力データを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記入力データに基づいて、楕円スカラー倍算とペアリング演算との少なくともいずれかを、前記並列処理によって並列に計算し、
前記情報処理装置は、
内積述語暗号の暗号化を実行する暗号処理装置であり、
前記汎用計算機は、
前記入力データとして、属性ベクトルが格納された属性ベクトルテーブルと、乱数が格納された乱数テーブルとを生成し、
前記並列計算機は、
前記属性ベクトルテーブルと前記乱数テーブルとに基づいて多倍長乗算剰余を前記並列処理によって並列に計算し、多倍長乗算剰余の並列計算の結果に基づいて楕円スカラー倍算を前記並列処理によって並列に計算し、楕円スカラー倍算の並列計算の結果に基づいて楕円点加算を前記並列処理によって並列に計算し、
前記汎用計算機は、
前記属性ベクトルテーブルの各セルのうち予め定められたセルであって属性ベクトルを埋め込まないセルである特定セルと、前記乱数テーブルの各セルのうち予め定められたセルであって前記属性ベクトルテーブルの前記特定セルに対応すると共に乱数を埋め込まないセルである対応セルとに対して、多倍長乗算剰余の結果が巡回群位数となる値を設定することを特徴する情報処理装置。 - 前記汎用計算機は、
前記属性ベクトルテーブルの前記特定セルに乗法単位元を設定する共に前記乱数テーブルの前記対応セルに巡回群位数を設定する第1の設定と、
前記属性ベクトルテーブルの前記特定セルに巡回群位数を設定する共に前記乱数テーブルの前記対応セルに乗法単位元を設定する第2の設定との、
いずれかの設定を実行することを特徴とする請求項1に記載の情報処理装置。 - 前記汎用計算機は、
暗号文と、固定長の秘密鍵とを前記並列計算機に送信し、
前記並列計算機は、
前記汎用計算機から送信された前記暗号文と前記秘密鍵とに基づいて、
ペアリング演算を前記並列処理によって並列に計算すると共に拡大体上乗算を前記並列処理によって並列に計算することを特徴とする請求項1または請求項2に記載の情報処理装置。 - 前記並列計算機は、
前記汎用計算機から送信された前記暗号文と前記秘密鍵とに基づいてペアリング演算を前記並列処理によって並列に計算し、ペアリング演算の並列計算の結果に基づいて拡大体上乗算を前記並列処理によって並列に計算することを特徴とする請求項3に記載の情報処理装置。 - 前記並列計算機は、
ペアリング演算を実行する際に、
n次拡大体上の演算(nは2以上の整数)を、多倍長演算を行う複数のスレッドから構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する方式と、
n次ツイスト曲線上の演算を、多倍長演算を行う複数のスレッドから構成されるn個のグループの各スレッドを同時に並列に動かすことでペアリング演算を実行する方式と
の少なくともいずれかの方式を用いることを特徴とする請求項3または請求項4に記載の情報処理装置。
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)
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)
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 | 三菱電機株式会社 | 暗号処理システム、鍵生成装置、鍵委譲装置、暗号化装置、復号装置、暗号処理方法及び暗号処理プログラム |
-
2013
- 2013-01-15 JP JP2013004280A patent/JP6057725B2/ja not_active Expired - Fee Related
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 |