Address
:
[go:
up one dir
,
main page
]
Include Form
Remove Scripts
Accept Cookies
Show Images
Show Referer
Rotate13
Base64
Strip Meta
Strip Title
Session Cookies
More Web Proxy on the site http://driver.im/
Submit Search
暗号文のままで計算しよう - 準同型暗号入門 -
•
98 likes
•
44,461 views
MITSUNARI Shigeo
Follow
introduction to homomorphic encryption
Read less
Read more
1 of 39
Download now
Downloaded 248 times
More Related Content
暗号文のままで計算しよう - 準同型暗号入門 -
1.
暗号文のままで計算しよう 準同型暗号入門 第6回プログラマのための数学勉強会 2016/3/19 光成滋生
2.
• 準同型暗号とは何か • 加法準同型暗号のデモ •
楕円ElGamal暗号 • 完全準同型暗号 • その原理の雰囲気の紹介 • 『クラウドを支えるこれからの暗号技術』 • 公開鍵暗号の最先端応用技術・理論 • 準同型暗号が載ってる和書は現時点で本書のみ • 数学成分高め • https://herumi.github.io/ango/ 概要 2/39
3.
• 光成滋生(@herumi) • @IT連載記事「クラウド時代の暗号化技術論」 •
http://www.atmarkit.co.jp/ait/series/1990/ • CODE BLUE2015 • Excelのパスワード暗号化にあったバグの話 • http://www.slideshare.net/herumi/ms-office-54510219 • 属性ベース暗号の実装でIEEE trans. on Computers 2014採録 • 『パターン認識と機械学習の学習』(PRML副読本) • Toypcryptの解読で経産省の情報化月間推進会議議長表彰 • IPA未踏スーパークリエータ • 午後のこ~だ 自己紹介 3/39
4.
• cybozu.com • グループウェアのクラウドサービス(
1万3000社以上) • 自前インフラ • We are hiring! • アーキテクチャ刷新プロジェクト「Neco」の紹介 • http://blog.cybozu.io/entry/2016/03/11/080000 • チームワークあふれる社会を創る • http://cybozu.co.jp/company/job/recruitment/ • 3/30 第5期サイボウズ・ラボユース成果報告会 • 学生のオープンソースソフトウェアの開発をサポート • https://atnd.org/events/75830 会社の紹介 4/39
5.
• 準同型暗号の動機 • 準同型暗号とは何か •
加法準同型暗号のデモ 目次 5/39
6.
• 暗号文から平文の情報が得られない • ごちゃごちゃにかき混ぜる •
ホワイトノイズと区別できない • 圧縮もできない • 何もできない 暗号化 秘密の文章 暗号化 6/39
7.
• クライアントで暗号化すると • クラウドは単なるデータ置き場 •
検索も計算も何もできない • クラウドのCPUパワーを活かせない • 暗号化したまま処理したい! クラウドにおけるモチベーション 7/39
8.
• 暗号化したまま計算できる暗号方式 • ひっくり返したコップの中のボールが移動する テーブルマジックみたいなの 準同型暗号(Homomorphic
Encryption) 8/39
9.
• 暗号化された身長・体重の平均値をクラウド上で計算 • 暗号化された2個のベクトルの近さ(内積)を計算 •
マッチング, 集合演算, ロジスティック回帰 etc. • 各社・組織注力してるジャンル • http://www.hitachi.co.jp/rd/portal/contents/story/searchable_encryption/ • http://www.nict.go.jp/press/2016/01/14-1.html • http://pr.fujitsu.com/jp/news/2016/02/15.html 準同型暗号があると 9/39
10.
楕円ElGamalを用いた加法準同型暗号の デモ 10/39
11.
• 楕円ElGamalを用いた加法準同型暗号 • ここの「楕円」は「楕円曲線」 言葉の説明 11/39
12.
• 楕円 • 曲線 楕円曲線とは ではない でもない 12/39
13.
• 浮輪の表面(トーラス) • 複素数的な意味で曲線(1次元)なので実数的には2次元 •
この上で計算(足し算)する • どうやって? 楕円曲線とは 13/39
14.
• 長方形になる 楕円曲線を切り開くと 14/39
15.
• 長方形上の2個のベクトルを足す • 𝑂,
𝑃, 𝑄, 𝑃 + 𝑄が平行四辺形になる • 足してはみ出たら反対側に回り込む 楕円曲線上の足し算 𝑃 𝑂 𝑄 𝑃 + 𝑄 𝑃 + 𝑄 15/39
16.
• ベクトルの向きを反対にしたら−𝑃 楕円曲線上の引き算 𝑃 𝑂 −𝑃 −𝑃 16/39
17.
• 一歩が𝑃のベクトルを延ばし続ける • 端に来ても反対側から出て延ばし続ける 点を何倍にもする 𝑃 𝑂 2𝑃 3𝑃 4𝑃5𝑃
10100 𝑃 4𝑃 17/39
18.
• 点𝑃を𝑛倍するのは簡単だが、 𝑛倍された点𝑛𝑃から𝑛を求めるのは難しい • 楕円離散対数問題(ECDLP)が困難であるという 楕円曲線の重要な性質 𝑥,
𝑃 𝑄 = 𝑥𝑃 容易 困難 18/39
19.
• パラメータ設定 • 楕円曲線上の点𝑃と秘密の整数𝑥をとり𝑄
= 𝑥𝑃とする • 秘密鍵 : 𝑥 • 公開鍵 : (𝑃, 𝑄) • 他人は𝑃と𝑄から𝑥は求められない(ECDLPが困難) 楕円ElGamal暗号(1/3) 19/39
20.
• 暗号化 • メッセージ𝑀(楕円曲線の点)に対して乱数𝑟を選ぶ •
公開鍵 𝑃, 𝑄 に対して 𝐸𝑛𝑐 𝑀 = 𝑟𝑃, 𝑀 + 𝑟𝑄 • 他人は𝑟𝑃から𝑟を求められない 楕円ElGamal暗号(2/3) 20/39
21.
• 復号 • 暗号文𝑐
= (𝐶1, 𝐶2)に対して秘密鍵𝑥を使って 𝐷𝑒𝑐 𝑐 = 𝐶2 − 𝑥𝐶1 • 元に戻ることの確認 • 𝑄 = 𝑥𝑃 • 𝐸𝑛𝑐 𝑀 = 𝐶1, 𝐶2 = (𝑟𝑃, 𝑀 + 𝑟𝑄)なので 𝐷𝑒𝑐 𝐸𝑛𝑐 𝑀 = 𝑀 + 𝑟𝑄 − 𝑥 𝑟𝑃 = 𝑀 + 𝑟𝑥𝑃 − 𝑥𝑟𝑃 = 𝑀 楕円ElGamal暗号(3/3) 21/39
22.
• 楕円曲線って「𝑦2 =
𝑥3 + 𝑎𝑥 + 𝑏」じゃないの? • トーラスと𝑦2 = 𝑥3 + 𝑎𝑥 + 𝑏には深遠な関係がある • 楕円曲線入門「トーラスと楕円曲線のつながり」 • http://www.slideshare.net/herumi/ss-58815597 • https://twitter.com/herumi/status/703839001107533824 補足 𝑃 𝑄 𝑃 + 𝑄 22/39
23.
• 楕円ElGamal暗号を用いた加法準同型暗号 • 残りは「加法準同型暗号」 •
暗号化したまま足し算ができる暗号 • どうやって? ここまで 23/39
24.
• 二つの暗号文を用意する • 𝐸𝑛𝑐
𝑀1 = 𝑟1 𝑃, 𝑀1 + 𝑟1 𝑄 • 𝐸𝑛𝑐 𝑀2 = (𝑟2 𝑃, 𝑀2 + 𝑟2 𝑄) • 成分ごとに足してみる • 𝐸𝑛𝑐 𝑀1 + 𝐸𝑛𝑐 𝑀2 = ( 𝑟1 + 𝑟2 𝑃, 𝑀1 + 𝑀2 + 𝑟1 + 𝑟2 𝑄) • 𝑟′ = 𝑟1 + 𝑟2とすると • 𝐸𝑛𝑐 𝑀1 + 𝐸𝑛𝑐 𝑀2 = (𝑟′ 𝑃, 𝑀1 + 𝑀2 + 𝑟′ 𝑄) • 𝑀1 + 𝑀2を暗号化したものと同じ形! • 𝐸𝑛𝑐 𝑀1 + 𝐸𝑛𝑐 𝑀2 = 𝐸𝑛𝑐(𝑀1 + 𝑀2) • この性質を加法準同型という 暗号文を足してみる 24/39
25.
• 楕円曲線ライブラリ(開発中) • https://github.com/herumi/mcl •
先ほどのデモのコード • https://github.com/herumi/add_he 実装 25/39
26.
• かなり頑張ってます(for Win/Linux/Mac) •
Xbyak(C++による自作x86/x64 JITアセンブラ)による最適化 • https://github.com/herumi/xbyak • 注意)C++のコードであってinlineアセンブラではない • ペアリング暗号の世界最速実装 • https://github.com/herumi/ate-pairing 実装 26/39
27.
• x64以外はLLVM IR(LLVMのアセンブラ)で記述 •
32/64ビットARMでも動く(はず) • 単純なコードは手書きアセンブラの速度に匹敵 • 複雑なcarry演算を伴うものはまだ手書きが強い LLVM 27/39
28.
• 完全準同型暗号とは何か • 完全準同型暗号の原理の雰囲気 •
ブートストラップ 目次 28/39
29.
• 何が完全? • 数学には同型という言葉があるがそれとは違う •
「準同型」は数学用語 • 「完全」は暗号?用語 • 数学用語なら環準同型 • 足し算だけ、掛け算だけができる暗号は 2000年までに構成されていた • 足し算と掛け算の両方ができる暗号が長年の夢 • 2009年Gentryが達成 • ただし当初は1bitの平文の暗号文が1GBぐらい • 現在さかんに改良されている 完全準同型暗号(Fully HE) 29/39
30.
• 0と1の世界で足し算はxor, 掛け算はandに相当 •
足し算(xor) • 掛け算(and) • 両方できると任意の関数を構成できる(完全) • 関数𝑓に対して𝑓 𝐸𝑛𝑐 𝑚 = 𝐸𝑛𝑐(𝑓 𝑚 ) 0と1 + 0 1 0 0 1 1 1 0 × 0 1 0 0 0 1 0 1 30/39
31.
• 𝑛 ×
𝑚行列𝐴, 𝑚次元ベクトル𝑏が与えられたときに 𝐴𝑠 = 𝑏となる𝑛次元ベクトル𝑠を求めよ • これは容易 ざっくりとした原理の説明 𝑛 𝐴𝑚 𝑠 = 𝑏𝑛 𝑚 31/39
32.
• 小さい値のノイズ𝑒が入ると • 𝐴,
𝑏が与えられたときに𝐴𝑠 + 𝑒 = 𝑏となる𝑠, 𝑒を求めよ • とても難しい • 秘密の値を知ってる人は𝑒を除去できるが 他人はできない LWE(Learning with Errors)問題 𝑛 𝐴𝑚 𝑠 = 𝑏𝑛 𝑚+ 𝑒 32/39
33.
• 暗号文は「平文𝑚の情報」+「小さいノイズ」の形 • 「平文𝑚の情報」は𝑚そのものではないが詳細は略 •
楕円曲線は使わない • 秘密鍵を知っている人は𝑚を取り出せるが他人は無理 • LWE問題が根拠 • ノイズを除去する方法も今回は省略 • 2個の暗号文を考える • 𝑐1 = 𝑚1 + 𝑒1, 𝑐2 = 𝑚2 + 𝑒2 準同型の雰囲気(注意:原理ではない) 𝑚1 𝑒1 𝑚2 𝑒2 33/39
34.
• 2個の暗号文を足してみる • 𝑐1
= 𝑚1 + 𝑒1, 𝑐2 = 𝑚2 + 𝑒2 • 足すと: 𝑐1 + 𝑐2 = 𝑚1 + 𝑚2 + (𝑒1 + 𝑒2) • これは「𝑚1 + 𝑚2の情報」+「ノイズ」の形 • 暗号文から𝑚1 + 𝑚2を取り出せる • 加法準同型! 加法準同型 𝑚1 𝑚2 𝑒1 + 𝑒2 34/39
35.
• 2個の暗号文を掛けてみる • 𝑐1
= 𝑚1 + 𝑒1, 𝑐2 = 𝑚2 + 𝑒2 • 𝑐1 𝑐2 = 𝑚1 + 𝑒1 𝑚2 + 𝑒2 = 𝑚1 𝑚2 + 𝑚1 𝑒2 + 𝑚2 𝑒1 + 𝑒1 𝑒2 = 𝑚1 𝑚2 + 𝑒′ • 𝑒1, 𝑒2が𝑚1, 𝑚2に比べて十分小さければ 𝑒′ = 𝑚1 𝑒2 + 𝑚2 𝑒1 + 𝑒1 𝑒2は𝑚1 𝑚2に比べて小さい • 𝑐1 𝑐2は「𝑚1 𝑚2の情報」+「ノイズ」の形 • 暗号文から𝑚1 𝑚2を取り出せる • 乗法準同型! • 加法と乗法の両方ができるので完全準同型暗号 乗法準同型 35/39
36.
• これって何度もやってるとノイズが増えない? • yes •
「小さいノイズ」ではなくなって復号に失敗する • 演算回数に上限がある • 特に掛け算が辛い • Somewhat HE(ちょっとだけ完全準同型?)と言う • ただしSHEでも十分役に立つケースは多い • 例:ベクトルの内積𝑎1 𝑏1 + 𝑎2 𝑏2 + ⋯ + 𝑎 𝑛 𝑏 𝑛 • 掛け算一度だけの後、足すだけなのでノイズは増えにくい 疑問 36/39 𝑒 範囲を越えると 復号できない 𝑚
37.
• SHEからFHEへ • 回数制限のないHEの構成手法 •
ノイズのある暗号文を 「暗号化したまま復号する回路」に入れて きれいな暗号文にする • おまえは何を言っているんだ • http://people.csail.mit.edu/shaih/pubs/3.FHE.pdf p.7より引用 ブートストラップ(1/2) 𝐸𝑛𝑐 𝑚 + 𝑒 𝐸𝑛𝑐 𝑚 37/39
38.
• ノイズが増えてきた暗号文をc =
𝐸𝑛𝑐 𝑚 + 𝑒とする • 秘密鍵𝑠を使って復号すると𝐷𝑒𝑐 𝑠, 𝑐 = 𝑚 • ここで𝑓𝑐 𝑥 = 𝐷𝑒𝑐(𝑥, 𝑐)としてみる • 𝑓𝑐は𝑠を入れると𝑚がでる関数 : 𝑓𝑐 𝑠 = 𝐷𝑒𝑐 𝑠, 𝑐 = 𝑚 • 𝑓𝑐をSHEを使って実装する:𝑓𝑐 • 𝑓𝑐は「暗号化したまま復号する」関数 • 𝑓𝑐に「秘密鍵𝑠の暗号文」𝐸𝑛𝑐(𝑠)を入れると 𝑓𝑐 𝐸𝑛𝑐 𝑠 = 𝐸𝑛𝑐 𝑓𝑐 𝑠 = 𝐸𝑛𝑐(𝑚) • ノイズが無くなった! • ブートストラップで回数制限を取り除ける→完全準同型へ • 暗号化したままAESを計算する実装もある • おまえは何を(略 ブートストラップ(2/2) 38/39
39.
• 準同型暗号を使うと暗号化したまま計算できる • 加法準同型暗号の一つに楕円ElGamal暗号があり 十分実用的 •
完全準同型は現在活発に研究されている • 一部制限のあるSHEの様々な応用が提案されている まとめ 39/39
Download