SlideShare a Scribd company logo
1 of 21
Download to read offline
ペアリングベースの
効率的なレベル2準同型暗号
SCIS 2018
Nuttapong Attrapadung*1, 花岡 悟一郎*1,
○光成 滋生*2, 坂井 祐介*1, 清水 佳奈*3, 照屋 唯紀*1
*1 産総研, *2サイボウズ・ラボ, *3 早稲田大学
本研究の一部はJST CREST JPMJCR1688 の支援を受けている
• 背景
• Lifted-ElGamal暗号ベースのL2準同型暗号の提案
• 安全性
• 既存方式との比較
• 実装
• まとめ
概要
2 / 21
• 準同型暗号は暗号文から別の暗号文を計算できる
• 秘匿計算、クラウドへの移譲など応用範囲は広い
• 準同型暗号の種類
• 加法準同型(ex. 岡本・内山, Paillier, Lifted-ElGamal)
• 𝐸𝑛𝑐 𝑚 + 𝐸𝑛𝑐 𝑚′ = 𝐸𝑛𝑐 𝑚 + 𝑚′
• 乗法準同型(ex. RSA, ElGamal)
• 𝐸𝑛𝑐 𝑚 × 𝐸𝑛𝑐 𝑚′ = 𝐸𝑛𝑐 𝑚𝑚′
• 完全準同型(ex. Gentry, 格子ベース)
• 加法と乗法の両方が可能
背景
3 / 21
• 加法・乗法準同型暗号
• 速いが用途が限定される
• 完全準同型暗号
• 任意の演算が可能だが遅い、暗号文が大きい
• (従来の群に比べて)安全評価が研究途上
• レベル準同型暗号
• 乗算回数に制約がある完全準同型暗号
• 加法準同型暗号と完全準同型暗号の間
利点と欠点
加法準同型 レベル準同型 完全準同型
速度・サイズ ◎ ○ △
機能性 △ ○ ◎
4 / 21
• 乗算が一度だけ可能な加法準同型暗号
• 「レベル2」は2次多項式を計算できることを指す
• 2個のベクトル
𝑥 = 𝑥1, 𝑥2, … , 𝑦 = 𝑦1, 𝑦2, …
の暗号文 𝐸𝑛𝑐 𝑥𝑖 , 𝐸𝑛𝑐 𝑦𝑖 の内積を計算可能
෍
𝑖
𝐸𝑛𝑐 𝑥𝑖 𝐸𝑛𝑐 𝑦𝑖 = 𝐸𝑛𝑐(෍
𝑖
𝑥𝑖 𝑦𝑖)
平均、分散、回帰、相関などが可能
レベル2準同型暗号
5 / 21
• Boneh, Goh, Nissim(TCC2005)
• 合成数位数ペアリングを利用
• 合成数位数ペアリングは素数位数ペアリングに比べて重たい
• Freeman(EUROCRYPTO2010)
• 合成数位数ペアリングを素数位数ペアリングで代用する
フレームワークの提案とBGN方式への適用
• Herold, Hesse, Hofheinz, Rafols, Rupp(CRYPTO2014)
• Freeman方式の改良・一般化
• 対称ペアリング(非対称ペアリングでの効率は未調査)
• Catalano, Fiore(SIGSAC2015)
• レベルdをレベル2dに変換する一般方式
• 乗算後の復号/加算が非効率
• 注意
• どれも復号にはDLPを解く必要があり平文空間が制限される
ペアリングベースのL2HEの既存方式
6 / 21
• Lifted-ElGamal暗号と非対称ペアリングの組み合わせ
• 非対称ペアリング(Type3)
• 巡回群𝐺1, 𝐺2, 𝐺 𝑇に対する双線形写像 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇
• 𝑒 𝑎𝑃, 𝑏𝑄 = 𝑒 𝑃, 𝑄 𝑎𝑏 for 𝑎, 𝑏 ∈ ℤ, 𝑃 ∈ 𝐺1, 𝑄 ∈ 𝐺2
• 𝐺1 ≠ 𝐺2かつ𝐺1から𝐺2への効率的な準同型写像が無い
提案方式の概要
7 / 21
• セットアップ
• 位数𝑝の楕円曲線𝐺 = ⟨𝑃⟩
• 鍵生成
• 𝑠 ∈ 𝔽 𝑝を秘密鍵(乱数), 𝑠𝑃が公開鍵
• 暗号化
• 平文𝑚に対して乱数𝑟をとり𝐸𝑛𝑐 𝑚 = (𝑚𝑃 + 𝑟𝑠𝑃, 𝑟𝑃)
• 復号
• 𝑐 = (𝑆, 𝑇)に対して
𝑆 − 𝑠𝑇 = 𝑚𝑃 + 𝑟𝑠𝑃 − 𝑠 𝑟𝑃 = 𝑚𝑃
を計算しDLPを解いて𝑚を得る
Lifted-ElGamal暗号
8 / 21
• 2個の平文𝑚1, 𝑚2に対して暗号文の各成分を足す
𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2
= 𝑚1 𝑃 + 𝑟1 𝑠𝑃, 𝑟1 𝑃 + 𝑚2 𝑃 + 𝑟2 𝑠𝑃, 𝑟2 𝑃
= 𝑚1 + 𝑚2 𝑃, 𝑟1 + 𝑟2 𝑠𝑃, 𝑟1 + 𝑟2 𝑃
= 𝐸𝑛𝑐(𝑚1 + 𝑚2)
Lifted-ElGamal暗号の加法準同型性
9 / 21
• 𝐺1, 𝐺2に対するLifted-ElGamal暗号文を
ペアリング𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇を用いて「乗算」する
• 𝐺𝑖 = 𝑃𝑖 , 𝑠𝑖 ; 秘密鍵, 𝑠𝑖 𝑃𝑖 ; 公開鍵
• 𝐶1 = 𝐸𝑛𝑐 𝐺1
𝑚 = 𝑚𝑃1 + 𝑟𝑠1 𝑃1, 𝑟𝑃𝑖 = 𝑆1, 𝑇1 ∈ 𝐺1
2
• 𝐶2 = 𝐸𝑛𝑐 𝐺2
𝑚′ = 𝑚′ 𝑃2 + 𝑟′ 𝑠2 𝑃2, 𝑟′ 𝑃2 = 𝑆2, 𝑇2 ∈ 𝐺2
2
• 𝐶1 × 𝐶2 ≔ 𝑒 𝑆1, 𝑆2 , 𝑒 𝑆1, 𝑇2 , 𝑒 𝑇1, 𝑆2 , 𝑒 𝑇1, 𝑇2 ∈ 𝐺 𝑇
4
• ペアリングを用いた𝐶1, 𝐶2の各要素に対する「テンソル積」
提案方式の暗号文の乗算
10 / 21
• 再掲
• 𝐶1 = 𝐸𝑛𝑐 𝐺1
𝑚 = 𝑚𝑃1 + 𝑟𝑠1 𝑃1, 𝑟𝑃1 = 𝑆1, 𝑇1 ∈ 𝐺1
2
• 𝐶2 = 𝐸𝑛𝑐 𝐺2
𝑚′
= 𝑚′
𝑃2 + 𝑟′
𝑠2 𝑃2, 𝑟′
𝑃2 = 𝑆2, 𝑇2 ∈ 𝐺2
2
• 𝐶1 × 𝐶2 ≔ 𝑒 𝑆1, 𝑆2 , 𝑒 𝑆1, 𝑇2 , 𝑒 𝑇1, 𝑆2 , 𝑒 𝑇1, 𝑇2 ∈ 𝐺 𝑇
4
• 乗算暗号文 𝑐1, 𝑐2, 𝑐3, 𝑐4 ∈ 𝐺 𝑇
4
の復号
𝑑𝑒𝑐 c1, c2, 𝑐3, 𝑐4 ≔
𝑐1 𝑐4
𝑠1 𝑠2
𝑐2
𝑠2
𝑐3
𝑠1
=
𝑒 𝑆1, 𝑆2 𝑒 𝑠1 𝑇1, 𝑠2 𝑇2
𝑒 𝑆1, 𝑠2 𝑇2 𝑒(𝑠1 𝑇1, 𝑆2)
= 𝑒 𝑆1 − 𝑠1 𝑇1, 𝑆2 − 𝑠2 𝑇2
= 𝑒 𝑚𝑃1 , 𝑚′ 𝑃2 = 𝑒 𝑃1, 𝑃2
𝑚𝑚′
• DLPを解いて𝑚𝑚′を得る
乗算暗号文の復号
Lifted-ElGamal暗号
の復号手順
11 / 21
• 𝑥 = (𝑥𝑖), 𝑦 = (𝑦𝑖)の内積を取るだけの場合
𝐸𝑛𝑐 𝐺1
(𝑥𝑖)と𝐸𝑛𝑐 𝐺2
(𝑦𝑖)のみを利用すればよい
• 𝐸𝑛𝑐 𝐺1
𝑥𝑖
2
なども計算する必要があるなら暗号文は
𝐸𝑛𝑐 𝑚 ≔ 𝐸𝑛𝑐 𝐺1
𝑚 , 𝐸𝑛𝑐 𝐺2
𝑚
というペアの形で利用する
暗号文
12 / 21
• SXDH(Symmetric eXeternal DH)仮定
• 𝑃𝑖を𝐺𝑖の生成元とするとき
(𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑎𝑏𝑃𝑖)と(𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑐𝑃𝑖)の区別がつかない
• ペアリングパラメータ𝑔𝑘を生成する𝒢(1 𝑛)がSXDH困難とは
任意の確率的多項式アルゴリズム𝒜に対してアドバンデージ
Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖
𝛼
, 𝑔𝑖
𝛽
, 𝑔𝑖
𝛼𝛽
: 𝑏 = 1
− Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽, 𝛾 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖
𝛼
, 𝑔𝑖
𝛽
, 𝑔𝑖
𝛾
: 𝑏 = 1
が𝑖 = 1,2について𝑛に対して無視できること
𝑝𝑝:公開パラメータ
• 提案方式はSXDH仮定の元でIND-CPA安全
• 証明は予稿集参照
安全性
13 / 21
• 与えられた暗号文が直接作られたものか、
何かの演算操作によって作られたものか
判別できないこと
• 𝐸𝑛𝑐 𝐺 𝑖
(𝑚)と𝐸𝑛𝑐 𝐺 𝑖
𝑚 + 𝐸𝑛𝑐 𝐺 𝑖
(𝑚′)の判別
• 𝐸𝑛𝑐 𝐺1
𝑚 × 𝐸𝑛𝑐 𝐺2
𝑚′
と𝐸𝑛𝑐 𝐺 𝑇
(𝑚𝑚′
)の判別
• (注意)群が異なるのでどの種類の暗号文かは判別可能
• 再暗号化
• 𝑅𝑒𝑅𝑎𝑛𝑑 𝐺 𝑖
𝑐𝑖 : = 𝑐𝑖 + 𝐸𝑛𝑐 𝐺 𝑖
(0)
• 暗号文に𝐸𝑛𝑐 𝐺 𝑖
(0)を足したものが
元の暗号文と同じか判別できない
回路安全性(circuit privacy)
14 / 21
• 𝑒 ≔ 𝑒(𝑃1, 𝑃2)とし公開鍵𝑠1 𝑃1, 𝑠2 𝑃2から
z1, z2, z3, z4 ≔ (𝑒, 𝑒 𝑠2, 𝑒 𝑠1, 𝑒 𝑠1 𝑠2)を計算しておく
• 𝐹 𝜌, 𝜎, 𝜏 ≔ (𝑧4
𝜏
, 𝑧3
𝜎
, 𝑧2
𝜌
, 𝑧1
𝜌+𝜎−𝜏
)とすると
𝑑𝑒𝑐 𝐹 𝜌, 𝜎, 𝜏 =
𝑧4
𝜏
z1
𝜌+𝜎−𝜏 s1s2
z3
𝜏 𝑠2 𝑧2
𝜌 𝑠1
= 𝑒 𝑠1 𝑠2 𝜏+ 𝜌+𝜎−𝜏 𝑠1 𝑠2−𝑠1 𝜏s2−s2 𝜌𝑠1 = 1
• 𝐸𝑛𝑐 𝐺 𝑇
0 = 𝐹(𝜌, 𝜎, 𝜏)
• これを掛けると全ての項が乱数と区別できない
𝐸𝑛𝑐 𝐺 𝑇
(𝑚)のランダム化
15 / 21
• Freeman10(optimized version ; not published)
• http://theory.stanford.edu/~dfreeman/papers/subgroups.pdf
• 秘密鍵 : (𝑥𝑖, 𝑦𝑖, 𝑧𝑖) for 𝑖 = 1, 2
• 公開鍵 : 𝑥𝑖 𝑃𝑖, 𝑦𝑖 𝑃𝑖, 𝑧𝑖 𝑃𝑖 ∈ 𝐺𝑖
3
• 暗号文 : 𝐸𝑛𝑐 𝐺 𝑖
𝑚 = 𝑚𝑦𝑖 𝑃𝑖 + 𝑟𝑖 𝑃𝑖, 𝑚𝑧𝑖 𝑃𝑖 + 𝑟𝑖 𝑥𝑖 𝑃𝑖 ∈ 𝐺𝑖
2
• 乗算暗号文は同じ方法で∈ 𝐺 𝑇
4
• Herold14(対称ペアリング版)
• 秘密鍵 : 𝑠, 公開鍵 : s𝑃
• 暗号文 : 𝐸𝑛𝑐 𝑚 = 𝑚 − 𝑠𝑟0 𝑃, 𝑟0 − 𝑠𝑟1 𝑃, 𝑟1 𝑃 ∈ 𝐺1
3
• 乗算暗号文
𝐶0, 𝐶1, 𝐶2 × 𝐶0
′
, 𝐶1
′
, 𝐶2
′
≔ Π𝑗=0
𝑘
𝑒 𝐶𝑗, 𝐶 𝑘−𝑗
′
, 𝑘 = 0, . . , 4 ∈ 𝐺 𝑇
5
• ナイーブにはペアリング9回
他方式との比較(1/2)
16 / 21
• サイズ比較
• Heroldの対称ペアリングを非対称にしたときの評価は未調査
• DLPの効率
• Freeman方式はDLPの底が秘密鍵ごとに異なるのに対して
我々の提案方式はシステム固定
• DLPを解くにはテーブルを用意する必要があるので
テーブルがシステム固定だと効率がよい
他方式との比較(2/2)
ペアリング 秘密鍵
公開鍵
L1暗号文 L2暗号文
ペアリング
Freeman 非対称 8/6 4 4
Freeman-opt 非対称 6 4 4
Herold-opt 対称 1 3 5(最適化後)
Ours 非対称 2 4 4
17 / 21
• 例)暗号文𝑐が𝐸𝑛𝑐(0)か𝐸𝑛𝑐(1)のどちらかを検証する
• 賛成か反対の電子投票では𝑚 = 0か1としたい
• 化合物の秘匿検索では入力ベクトルがビットベクトル
(0 or 1のベクトル)であることを検証したい
• ゼロ知識証明を使う
• Lifted-ElGamal暗号に対してはSakai2013らによる効率的な方
法が提案されている
• 我々の手法はLifted-ElGamal暗号なので既存手法を適用可能
• (注意)(𝐸𝑛𝑐 𝐺1
𝑚 , 𝐸𝑛𝑐 𝐺2
𝑚 )を暗号文とする場合は𝐺1, 𝐺2と
で同じ平文を暗号化していることを確認する必要がある
平文空間の制限
18 / 21
• ペアリング暗号ライブラリmclを用いて実装
• https://github.com/herumi/mcl ; C++版
• https://github.com/herumi/she-wasm ; ブラウザ/Node.js版
• Windows, Linux, OS X, Androidなどに対応
• x64/ARM64などに向けた最適化
• WebAssembly(JavaScriptを補完する仮想マシンコード)対応
• 2017年夏以降のモダンブラウザ
(Microsoft Edge, Firefox, Chrome, Safari)で
プラグイン無しで動作
• iPhone, Androidなどでも動作
• https://herumi.github.io/she-wasm/she-demo.html
実装
19 / 21
• 暗号化・復号にかかった時間(msec)
• BN254(G1 : 256ビット, 100ビットセキュリティ)
• decは20ビットテーブル(8MiB)範囲内の復号時間
ベンチマーク
native JavaScritpt(WASM)
x64 Linux on
Core i7-7700
Firefox on
Core i7-7700
Safari on
iPhone 7
encG1 0.017 0.16 0.74
encG2 0.045 0.44 0.98
addG1 0.00045 0.02 0.02
addG2 0.0013 0.02 0.04
mul 1.097 9.1 13.9
dec 0.616 4.8 7.5
20 / 21
• Lifted-ElGamal暗号同士を非対称ペアリングを用いて
「掛ける」ことでレベル2準同型暗号を構成した
• Lifted-ElGamal暗号ベースなので従来のLifted-ElGamal
暗号に対する機能追加(例:平文空間の制限)が容易
• C++/asm/WebAssemblyによる高速な実装
まとめ
21 / 21

More Related Content

What's hot

『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
MITSUNARI Shigeo
 

What's hot (20)

暗認本読書会11
暗認本読書会11暗認本読書会11
暗認本読書会11
 
zk-SNARKsの仕組みについて
zk-SNARKsの仕組みについてzk-SNARKsの仕組みについて
zk-SNARKsの仕組みについて
 
『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算『データ解析におけるプライバシー保護』勉強会 秘密計算
『データ解析におけるプライバシー保護』勉強会 秘密計算
 
指数時間アルゴリズム入門
指数時間アルゴリズム入門指数時間アルゴリズム入門
指数時間アルゴリズム入門
 
集約署名
集約署名集約署名
集約署名
 
最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く最小カットを使って「燃やす埋める問題」を解く
最小カットを使って「燃やす埋める問題」を解く
 
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
katagaitai workshop #7 crypto ナップサック暗号と低密度攻撃
 
図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』図と実装で理解する『木構造入門』
図と実装で理解する『木構造入門』
 
Rolling Hashを殺す話
Rolling Hashを殺す話Rolling Hashを殺す話
Rolling Hashを殺す話
 
【暗号通貨輪読会#14】confidential transaction
【暗号通貨輪読会#14】confidential transaction【暗号通貨輪読会#14】confidential transaction
【暗号通貨輪読会#14】confidential transaction
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
 
バンディット問題について
バンディット問題についてバンディット問題について
バンディット問題について
 
直交領域探索
直交領域探索直交領域探索
直交領域探索
 
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
区間分割の仕方を最適化する動的計画法 (JOI 2021 夏季セミナー)
 
新しい暗号技術
新しい暗号技術新しい暗号技術
新しい暗号技術
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~プログラミングコンテストでのデータ構造 2 ~動的木編~
プログラミングコンテストでのデータ構造 2 ~動的木編~
 
楕円曲線入門 トーラスと楕円曲線のつながり
楕円曲線入門トーラスと楕円曲線のつながり楕円曲線入門トーラスと楕円曲線のつながり
楕円曲線入門 トーラスと楕円曲線のつながり
 
BLS署名の実装とその応用
BLS署名の実装とその応用BLS署名の実装とその応用
BLS署名の実装とその応用
 

Similar to ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)

レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
MITSUNARI Shigeo
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
MITSUNARI Shigeo
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
Takuya Akiba
 
第9章 ネットワーク上の他の確率過程
第9章 ネットワーク上の他の確率過程第9章 ネットワーク上の他の確率過程
第9章 ネットワーク上の他の確率過程
Ohsawa Goodfellow
 

Similar to ペアリングベースの効率的なレベル2準同型暗号(SCIS2018) (19)

レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
レベル2準同型暗号の平文バイナリ制約を与えるコンパクトな非対話ゼロ知識証明
 
暗号技術の実装と数学
暗号技術の実装と数学暗号技術の実装と数学
暗号技術の実装と数学
 
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
ElGamal型暗号文に対する任意関数演算・再暗号化の二者間秘密計算プロトコルとその応用
 
RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介RSA鍵生成脆弱性ROCAの紹介
RSA鍵生成脆弱性ROCAの紹介
 
範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル範囲証明つき準同型暗号とその対話的プロトコル
範囲証明つき準同型暗号とその対話的プロトコル
 
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
AI2: Safety and Robustness Certification of Neural Networks with Abstract Int...
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 
Oshasta em
Oshasta emOshasta em
Oshasta em
 
バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案バックドア耐性のあるパスワード暗号化の提案
バックドア耐性のあるパスワード暗号化の提案
 
プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
第9章 ネットワーク上の他の確率過程
第9章 ネットワーク上の他の確率過程第9章 ネットワーク上の他の確率過程
第9章 ネットワーク上の他の確率過程
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
 
Clojure
ClojureClojure
Clojure
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
transformer解説~Chat-GPTの源流~
transformer解説~Chat-GPTの源流~transformer解説~Chat-GPTの源流~
transformer解説~Chat-GPTの源流~
 
Javascript で暗号化
Javascript で暗号化Javascript で暗号化
Javascript で暗号化
 
Clojure programming-chapter-2
Clojure programming-chapter-2Clojure programming-chapter-2
Clojure programming-chapter-2
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
 
Sized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアルSized Linear Algebra Package のチュートリアル
Sized Linear Algebra Package のチュートリアル
 

More from MITSUNARI Shigeo

More from MITSUNARI Shigeo (20)

暗認本読書会12
暗認本読書会12暗認本読書会12
暗認本読書会12
 
暗認本読書会10
暗認本読書会10暗認本読書会10
暗認本読書会10
 
暗認本読書会9
暗認本読書会9暗認本読書会9
暗認本読書会9
 
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgenIntel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
Intel AVX-512/富岳SVE用SIMDコード生成ライブラリsimdgen
 
暗認本読書会8
暗認本読書会8暗認本読書会8
暗認本読書会8
 
暗認本読書会7
暗認本読書会7暗認本読書会7
暗認本読書会7
 
暗認本読書会6
暗認本読書会6暗認本読書会6
暗認本読書会6
 
暗認本読書会5
暗認本読書会5暗認本読書会5
暗認本読書会5
 
暗認本読書会4
暗認本読書会4暗認本読書会4
暗認本読書会4
 
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
深層学習フレームワークにおけるIntel CPU/富岳向け最適化法
 
私とOSSの25年
私とOSSの25年私とOSSの25年
私とOSSの25年
 
WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装WebAssembly向け多倍長演算の実装
WebAssembly向け多倍長演算の実装
 
HPC Phys-20201203
HPC Phys-20201203HPC Phys-20201203
HPC Phys-20201203
 
LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介LazyFP vulnerabilityの紹介
LazyFP vulnerabilityの紹介
 
Intro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみたIntro to SVE 富岳のA64FXを触ってみた
Intro to SVE 富岳のA64FXを触ってみた
 
ゆるバグ
ゆるバグゆるバグ
ゆるバグ
 
自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介自作ペアリング/BLS署名ライブラリの紹介
自作ペアリング/BLS署名ライブラリの紹介
 
A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...A compact zero knowledge proof to restrict message space in homomorphic encry...
A compact zero knowledge proof to restrict message space in homomorphic encry...
 
Spectre/Meltdownとその派生
Spectre/Meltdownとその派生Spectre/Meltdownとその派生
Spectre/Meltdownとその派生
 
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear GroupsPractical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
Practical Two-level Homomorphic Encryption in Prime-order Bilinear Groups
 

Recently uploaded

Recently uploaded (12)

Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

ペアリングベースの効率的なレベル2準同型暗号(SCIS2018)

  • 1. ペアリングベースの 効率的なレベル2準同型暗号 SCIS 2018 Nuttapong Attrapadung*1, 花岡 悟一郎*1, ○光成 滋生*2, 坂井 祐介*1, 清水 佳奈*3, 照屋 唯紀*1 *1 産総研, *2サイボウズ・ラボ, *3 早稲田大学 本研究の一部はJST CREST JPMJCR1688 の支援を受けている
  • 2. • 背景 • Lifted-ElGamal暗号ベースのL2準同型暗号の提案 • 安全性 • 既存方式との比較 • 実装 • まとめ 概要 2 / 21
  • 3. • 準同型暗号は暗号文から別の暗号文を計算できる • 秘匿計算、クラウドへの移譲など応用範囲は広い • 準同型暗号の種類 • 加法準同型(ex. 岡本・内山, Paillier, Lifted-ElGamal) • 𝐸𝑛𝑐 𝑚 + 𝐸𝑛𝑐 𝑚′ = 𝐸𝑛𝑐 𝑚 + 𝑚′ • 乗法準同型(ex. RSA, ElGamal) • 𝐸𝑛𝑐 𝑚 × 𝐸𝑛𝑐 𝑚′ = 𝐸𝑛𝑐 𝑚𝑚′ • 完全準同型(ex. Gentry, 格子ベース) • 加法と乗法の両方が可能 背景 3 / 21
  • 4. • 加法・乗法準同型暗号 • 速いが用途が限定される • 完全準同型暗号 • 任意の演算が可能だが遅い、暗号文が大きい • (従来の群に比べて)安全評価が研究途上 • レベル準同型暗号 • 乗算回数に制約がある完全準同型暗号 • 加法準同型暗号と完全準同型暗号の間 利点と欠点 加法準同型 レベル準同型 完全準同型 速度・サイズ ◎ ○ △ 機能性 △ ○ ◎ 4 / 21
  • 5. • 乗算が一度だけ可能な加法準同型暗号 • 「レベル2」は2次多項式を計算できることを指す • 2個のベクトル 𝑥 = 𝑥1, 𝑥2, … , 𝑦 = 𝑦1, 𝑦2, … の暗号文 𝐸𝑛𝑐 𝑥𝑖 , 𝐸𝑛𝑐 𝑦𝑖 の内積を計算可能 ෍ 𝑖 𝐸𝑛𝑐 𝑥𝑖 𝐸𝑛𝑐 𝑦𝑖 = 𝐸𝑛𝑐(෍ 𝑖 𝑥𝑖 𝑦𝑖) 平均、分散、回帰、相関などが可能 レベル2準同型暗号 5 / 21
  • 6. • Boneh, Goh, Nissim(TCC2005) • 合成数位数ペアリングを利用 • 合成数位数ペアリングは素数位数ペアリングに比べて重たい • Freeman(EUROCRYPTO2010) • 合成数位数ペアリングを素数位数ペアリングで代用する フレームワークの提案とBGN方式への適用 • Herold, Hesse, Hofheinz, Rafols, Rupp(CRYPTO2014) • Freeman方式の改良・一般化 • 対称ペアリング(非対称ペアリングでの効率は未調査) • Catalano, Fiore(SIGSAC2015) • レベルdをレベル2dに変換する一般方式 • 乗算後の復号/加算が非効率 • 注意 • どれも復号にはDLPを解く必要があり平文空間が制限される ペアリングベースのL2HEの既存方式 6 / 21
  • 7. • Lifted-ElGamal暗号と非対称ペアリングの組み合わせ • 非対称ペアリング(Type3) • 巡回群𝐺1, 𝐺2, 𝐺 𝑇に対する双線形写像 𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇 • 𝑒 𝑎𝑃, 𝑏𝑄 = 𝑒 𝑃, 𝑄 𝑎𝑏 for 𝑎, 𝑏 ∈ ℤ, 𝑃 ∈ 𝐺1, 𝑄 ∈ 𝐺2 • 𝐺1 ≠ 𝐺2かつ𝐺1から𝐺2への効率的な準同型写像が無い 提案方式の概要 7 / 21
  • 8. • セットアップ • 位数𝑝の楕円曲線𝐺 = ⟨𝑃⟩ • 鍵生成 • 𝑠 ∈ 𝔽 𝑝を秘密鍵(乱数), 𝑠𝑃が公開鍵 • 暗号化 • 平文𝑚に対して乱数𝑟をとり𝐸𝑛𝑐 𝑚 = (𝑚𝑃 + 𝑟𝑠𝑃, 𝑟𝑃) • 復号 • 𝑐 = (𝑆, 𝑇)に対して 𝑆 − 𝑠𝑇 = 𝑚𝑃 + 𝑟𝑠𝑃 − 𝑠 𝑟𝑃 = 𝑚𝑃 を計算しDLPを解いて𝑚を得る Lifted-ElGamal暗号 8 / 21
  • 9. • 2個の平文𝑚1, 𝑚2に対して暗号文の各成分を足す 𝐸𝑛𝑐 𝑚1 + 𝐸𝑛𝑐 𝑚2 = 𝑚1 𝑃 + 𝑟1 𝑠𝑃, 𝑟1 𝑃 + 𝑚2 𝑃 + 𝑟2 𝑠𝑃, 𝑟2 𝑃 = 𝑚1 + 𝑚2 𝑃, 𝑟1 + 𝑟2 𝑠𝑃, 𝑟1 + 𝑟2 𝑃 = 𝐸𝑛𝑐(𝑚1 + 𝑚2) Lifted-ElGamal暗号の加法準同型性 9 / 21
  • 10. • 𝐺1, 𝐺2に対するLifted-ElGamal暗号文を ペアリング𝑒: 𝐺1 × 𝐺2 → 𝐺 𝑇を用いて「乗算」する • 𝐺𝑖 = 𝑃𝑖 , 𝑠𝑖 ; 秘密鍵, 𝑠𝑖 𝑃𝑖 ; 公開鍵 • 𝐶1 = 𝐸𝑛𝑐 𝐺1 𝑚 = 𝑚𝑃1 + 𝑟𝑠1 𝑃1, 𝑟𝑃𝑖 = 𝑆1, 𝑇1 ∈ 𝐺1 2 • 𝐶2 = 𝐸𝑛𝑐 𝐺2 𝑚′ = 𝑚′ 𝑃2 + 𝑟′ 𝑠2 𝑃2, 𝑟′ 𝑃2 = 𝑆2, 𝑇2 ∈ 𝐺2 2 • 𝐶1 × 𝐶2 ≔ 𝑒 𝑆1, 𝑆2 , 𝑒 𝑆1, 𝑇2 , 𝑒 𝑇1, 𝑆2 , 𝑒 𝑇1, 𝑇2 ∈ 𝐺 𝑇 4 • ペアリングを用いた𝐶1, 𝐶2の各要素に対する「テンソル積」 提案方式の暗号文の乗算 10 / 21
  • 11. • 再掲 • 𝐶1 = 𝐸𝑛𝑐 𝐺1 𝑚 = 𝑚𝑃1 + 𝑟𝑠1 𝑃1, 𝑟𝑃1 = 𝑆1, 𝑇1 ∈ 𝐺1 2 • 𝐶2 = 𝐸𝑛𝑐 𝐺2 𝑚′ = 𝑚′ 𝑃2 + 𝑟′ 𝑠2 𝑃2, 𝑟′ 𝑃2 = 𝑆2, 𝑇2 ∈ 𝐺2 2 • 𝐶1 × 𝐶2 ≔ 𝑒 𝑆1, 𝑆2 , 𝑒 𝑆1, 𝑇2 , 𝑒 𝑇1, 𝑆2 , 𝑒 𝑇1, 𝑇2 ∈ 𝐺 𝑇 4 • 乗算暗号文 𝑐1, 𝑐2, 𝑐3, 𝑐4 ∈ 𝐺 𝑇 4 の復号 𝑑𝑒𝑐 c1, c2, 𝑐3, 𝑐4 ≔ 𝑐1 𝑐4 𝑠1 𝑠2 𝑐2 𝑠2 𝑐3 𝑠1 = 𝑒 𝑆1, 𝑆2 𝑒 𝑠1 𝑇1, 𝑠2 𝑇2 𝑒 𝑆1, 𝑠2 𝑇2 𝑒(𝑠1 𝑇1, 𝑆2) = 𝑒 𝑆1 − 𝑠1 𝑇1, 𝑆2 − 𝑠2 𝑇2 = 𝑒 𝑚𝑃1 , 𝑚′ 𝑃2 = 𝑒 𝑃1, 𝑃2 𝑚𝑚′ • DLPを解いて𝑚𝑚′を得る 乗算暗号文の復号 Lifted-ElGamal暗号 の復号手順 11 / 21
  • 12. • 𝑥 = (𝑥𝑖), 𝑦 = (𝑦𝑖)の内積を取るだけの場合 𝐸𝑛𝑐 𝐺1 (𝑥𝑖)と𝐸𝑛𝑐 𝐺2 (𝑦𝑖)のみを利用すればよい • 𝐸𝑛𝑐 𝐺1 𝑥𝑖 2 なども計算する必要があるなら暗号文は 𝐸𝑛𝑐 𝑚 ≔ 𝐸𝑛𝑐 𝐺1 𝑚 , 𝐸𝑛𝑐 𝐺2 𝑚 というペアの形で利用する 暗号文 12 / 21
  • 13. • SXDH(Symmetric eXeternal DH)仮定 • 𝑃𝑖を𝐺𝑖の生成元とするとき (𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑎𝑏𝑃𝑖)と(𝑎𝑃𝑖, 𝑏𝑃𝑖, 𝑐𝑃𝑖)の区別がつかない • ペアリングパラメータ𝑔𝑘を生成する𝒢(1 𝑛)がSXDH困難とは 任意の確率的多項式アルゴリズム𝒜に対してアドバンデージ Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖 𝛼 , 𝑔𝑖 𝛽 , 𝑔𝑖 𝛼𝛽 : 𝑏 = 1 − Pr[𝑔𝑘 ← 𝒢 1 𝑛 ; 𝛼, 𝛽, 𝛾 ← ℤ 𝑝; 𝑏 ← 𝒜 𝑝𝑝, 𝑔𝑖 𝛼 , 𝑔𝑖 𝛽 , 𝑔𝑖 𝛾 : 𝑏 = 1 が𝑖 = 1,2について𝑛に対して無視できること 𝑝𝑝:公開パラメータ • 提案方式はSXDH仮定の元でIND-CPA安全 • 証明は予稿集参照 安全性 13 / 21
  • 14. • 与えられた暗号文が直接作られたものか、 何かの演算操作によって作られたものか 判別できないこと • 𝐸𝑛𝑐 𝐺 𝑖 (𝑚)と𝐸𝑛𝑐 𝐺 𝑖 𝑚 + 𝐸𝑛𝑐 𝐺 𝑖 (𝑚′)の判別 • 𝐸𝑛𝑐 𝐺1 𝑚 × 𝐸𝑛𝑐 𝐺2 𝑚′ と𝐸𝑛𝑐 𝐺 𝑇 (𝑚𝑚′ )の判別 • (注意)群が異なるのでどの種類の暗号文かは判別可能 • 再暗号化 • 𝑅𝑒𝑅𝑎𝑛𝑑 𝐺 𝑖 𝑐𝑖 : = 𝑐𝑖 + 𝐸𝑛𝑐 𝐺 𝑖 (0) • 暗号文に𝐸𝑛𝑐 𝐺 𝑖 (0)を足したものが 元の暗号文と同じか判別できない 回路安全性(circuit privacy) 14 / 21
  • 15. • 𝑒 ≔ 𝑒(𝑃1, 𝑃2)とし公開鍵𝑠1 𝑃1, 𝑠2 𝑃2から z1, z2, z3, z4 ≔ (𝑒, 𝑒 𝑠2, 𝑒 𝑠1, 𝑒 𝑠1 𝑠2)を計算しておく • 𝐹 𝜌, 𝜎, 𝜏 ≔ (𝑧4 𝜏 , 𝑧3 𝜎 , 𝑧2 𝜌 , 𝑧1 𝜌+𝜎−𝜏 )とすると 𝑑𝑒𝑐 𝐹 𝜌, 𝜎, 𝜏 = 𝑧4 𝜏 z1 𝜌+𝜎−𝜏 s1s2 z3 𝜏 𝑠2 𝑧2 𝜌 𝑠1 = 𝑒 𝑠1 𝑠2 𝜏+ 𝜌+𝜎−𝜏 𝑠1 𝑠2−𝑠1 𝜏s2−s2 𝜌𝑠1 = 1 • 𝐸𝑛𝑐 𝐺 𝑇 0 = 𝐹(𝜌, 𝜎, 𝜏) • これを掛けると全ての項が乱数と区別できない 𝐸𝑛𝑐 𝐺 𝑇 (𝑚)のランダム化 15 / 21
  • 16. • Freeman10(optimized version ; not published) • http://theory.stanford.edu/~dfreeman/papers/subgroups.pdf • 秘密鍵 : (𝑥𝑖, 𝑦𝑖, 𝑧𝑖) for 𝑖 = 1, 2 • 公開鍵 : 𝑥𝑖 𝑃𝑖, 𝑦𝑖 𝑃𝑖, 𝑧𝑖 𝑃𝑖 ∈ 𝐺𝑖 3 • 暗号文 : 𝐸𝑛𝑐 𝐺 𝑖 𝑚 = 𝑚𝑦𝑖 𝑃𝑖 + 𝑟𝑖 𝑃𝑖, 𝑚𝑧𝑖 𝑃𝑖 + 𝑟𝑖 𝑥𝑖 𝑃𝑖 ∈ 𝐺𝑖 2 • 乗算暗号文は同じ方法で∈ 𝐺 𝑇 4 • Herold14(対称ペアリング版) • 秘密鍵 : 𝑠, 公開鍵 : s𝑃 • 暗号文 : 𝐸𝑛𝑐 𝑚 = 𝑚 − 𝑠𝑟0 𝑃, 𝑟0 − 𝑠𝑟1 𝑃, 𝑟1 𝑃 ∈ 𝐺1 3 • 乗算暗号文 𝐶0, 𝐶1, 𝐶2 × 𝐶0 ′ , 𝐶1 ′ , 𝐶2 ′ ≔ Π𝑗=0 𝑘 𝑒 𝐶𝑗, 𝐶 𝑘−𝑗 ′ , 𝑘 = 0, . . , 4 ∈ 𝐺 𝑇 5 • ナイーブにはペアリング9回 他方式との比較(1/2) 16 / 21
  • 17. • サイズ比較 • Heroldの対称ペアリングを非対称にしたときの評価は未調査 • DLPの効率 • Freeman方式はDLPの底が秘密鍵ごとに異なるのに対して 我々の提案方式はシステム固定 • DLPを解くにはテーブルを用意する必要があるので テーブルがシステム固定だと効率がよい 他方式との比較(2/2) ペアリング 秘密鍵 公開鍵 L1暗号文 L2暗号文 ペアリング Freeman 非対称 8/6 4 4 Freeman-opt 非対称 6 4 4 Herold-opt 対称 1 3 5(最適化後) Ours 非対称 2 4 4 17 / 21
  • 18. • 例)暗号文𝑐が𝐸𝑛𝑐(0)か𝐸𝑛𝑐(1)のどちらかを検証する • 賛成か反対の電子投票では𝑚 = 0か1としたい • 化合物の秘匿検索では入力ベクトルがビットベクトル (0 or 1のベクトル)であることを検証したい • ゼロ知識証明を使う • Lifted-ElGamal暗号に対してはSakai2013らによる効率的な方 法が提案されている • 我々の手法はLifted-ElGamal暗号なので既存手法を適用可能 • (注意)(𝐸𝑛𝑐 𝐺1 𝑚 , 𝐸𝑛𝑐 𝐺2 𝑚 )を暗号文とする場合は𝐺1, 𝐺2と で同じ平文を暗号化していることを確認する必要がある 平文空間の制限 18 / 21
  • 19. • ペアリング暗号ライブラリmclを用いて実装 • https://github.com/herumi/mcl ; C++版 • https://github.com/herumi/she-wasm ; ブラウザ/Node.js版 • Windows, Linux, OS X, Androidなどに対応 • x64/ARM64などに向けた最適化 • WebAssembly(JavaScriptを補完する仮想マシンコード)対応 • 2017年夏以降のモダンブラウザ (Microsoft Edge, Firefox, Chrome, Safari)で プラグイン無しで動作 • iPhone, Androidなどでも動作 • https://herumi.github.io/she-wasm/she-demo.html 実装 19 / 21
  • 20. • 暗号化・復号にかかった時間(msec) • BN254(G1 : 256ビット, 100ビットセキュリティ) • decは20ビットテーブル(8MiB)範囲内の復号時間 ベンチマーク native JavaScritpt(WASM) x64 Linux on Core i7-7700 Firefox on Core i7-7700 Safari on iPhone 7 encG1 0.017 0.16 0.74 encG2 0.045 0.44 0.98 addG1 0.00045 0.02 0.02 addG2 0.0013 0.02 0.04 mul 1.097 9.1 13.9 dec 0.616 4.8 7.5 20 / 21