Pairingとは?

Download Report

Transcript Pairingとは?

情報学類4年 計算機システム主専攻
200411217 張一凡
指導教官:岡本栄司、岡本健
1

Pairingとは
研究背景

数学的準備

◦ 体
◦ 有限体
◦ 楕円曲線


比較考察
◦ パフォーマンス
◦ 考察

今後の課題
研究内容
◦ 研究目標
◦ 実装内容
2

Pairingとは?
◦ 2入力1出力の一方向性関数
e( P, Q)   P,Q楕円曲線の点、 有限体の元
◦ 双線形性
後述
後述
e(aP, bQ)  e(aP, Q)b  e( P, bQ)a  e( P, Q)ab

Pairingの利点・需要
◦ Bonehらの「ショート署名方式」や
Sakaiらの「IDベース暗号」などの暗号化スキームで
用いられている
3
Pairing暗号の普及
現状1
現状2
Java言語での
有限体演算ライブラリ
が乏しい
既存ライブラリの
OS依存性
Java言語でのPairing
ライブラリが乏しい
PCでしかPairingを
実行できず
可能性を狭める
現状3
解読、変更が容易な
ライブラリの必要性
プロトコル等の
実装や実験が
困難
4
Java言語でのPairingライブラリ
有限体 F2m を使う
F2m 特有の性質を
利用した高速な有限体
計算アルゴリズムが多い
理
由
F2m 上のペアリングの
効率的な計算
アルゴリズムが複数存在
研究としても実装
されていない
Java言語の解読容易性から
解読、変更が容易
利
点
有限体演算は
他の処理にも流用可能
携帯等のJava組み込み家電で
動作可能
5

群
◦ 結合則、単位元の存在、逆元の存在を満たす数の集合
◦ アーベル群:可換則を持つ群

体
◦ 二つの演算「加法」「乗法」が定義される
◦ 加法に関してアーベル群、乗法に関して群、
加法と乗法に関して分配則を満たす数の集合
◦ 有限体:元の数が有限である体
 Pairingの演算はすべてこの有限体上において行われる
6

F2 m
◦ この研究では F2 m を有限体として用いる
◦ F2 m の元は0,1で表現できる
F2m  {am1am2 a1a0 : ai {0,1}}
同一視
計算機のビット表現に対応
◦ 演算はビット演算を用いる
7

以下の式が表わす曲線
y 2  a1xy  a3 y  x3  a2 x2  a4 x  a6 ai  Fq

曲線上の点に対して
加法、スカラー倍が定義できる
8

Pairingのライブラリを作成
◦ 時間のかかるPairing計算をできるだけ高速化する
◦ Pairingの高速化のため有限体演算も最適化する
◦ Pairingの実装種類を増やし選択肢を広げる

有限体 F2m を用いたPairing間での性能評価
◦ 現在提案されているTate、 T 、超楕円 T 等
Pairing間で計算時間にどれくらい差が出るかを測定する
9

F2mの有限体演算を実装
◦ 有限体 F2m , F2mk の元の表現
 mビットの元格納にJavaの標準クラス「BigInteger」を使用
◦ 有限体演算
 加算、乗算、逆元計算、平方計算、平方根計算

Pairing実装
◦ 楕円曲線において
Tate Pairing、 T Pairing、Modified Tate Pairing
を実装
◦ 超楕円曲線において超楕円T Pairingを実装
10
Input:P,Q
Output:e(P,Q)
1:r=(rm-1…r0)2,f=1,V=P
2:for(i=m-1 downto 0){
3:
f=f*f*lv,v(Q)
4:
V=2V
5:
if(ri=1){
6:
f=f*lv,p(Q)
7:
V=V+P
8:
}
9:}
10:return f



r:Pの位数のビット列
f: 下記のPairingの出
力の f P (Q) 部分
la,b(Q):楕円の二点a,b
を通る直線に (Q ) を代
入して得られる答え
e ( P , Q )  f p (Q )
q k 1
r
11

本研究でのライブラリによる計算時間[msec]
Tate
ηT
ModifiedTate
Hyperelliptic ηT
メインループ
342
87
86
106
最終べき
108
111
110
1246
Pairing
451
198
196
1357
安全性 964bit

1236bit
振り分け
◦ メインループ
◦ 最終べき
Pairing計算式 e( P, Q )  f p (Q )
q k 1
r
CPU
Core2Duo T7400
メモリ
DDR2-SDRAM 2GB
OS
Windows Vista
言語
Java1.6.0_03
12

本研究の結果は期待していた実行速度[約10msec]
より十数倍遅い
◦ BigInteger依存のためによる冗長な処理時間による影響と
有限体演算高速化手法の適応不可だったためと考えられる

超楕円T は最終べきを高速化すれば楕円より
パフォーマンスが良いと考えられる
13

Pairingライブラリの性能向上
◦ 本研究でのライブラリでのBigInteger依存をはずし、
32ビットintから構成できる高速化手法を検討

Pairingのアルゴリズムの高速化
◦ T Pairing,Modified Tate等のアルゴリズムの
計算量的な高速化を行い、ライブラリに組み込む
◦ 最終べきの高速化手法を検討

ライブラリの充実化
◦ ライブラリ上で未実装のPairingをライブラリ組み込む
14
ご清聴ありがとうございました
15