More Related Content
Similar to クラウドを支えるこれからの暗号技術 (20)
More from MITSUNARI Shigeo (20)
クラウドを支えるこれからの暗号技術
- 7. 移動中のデータ(Data in Motion)
TLS, IPsec, VPN, ... : 公開鍵暗号
保管データ(Data at Rest)
AES, HMAC, ... : 共通鍵暗号、ハッシュ関数
利用中のデータ(Data in Use)
あまりない
今回は主にData in Useで使えそうな暗号技術の紹介
データの状態に応じた分類
7/36
- 18. 鍵生成
Aさんの秘密鍵 𝑎
Aさんの公開鍵 𝐾𝐴 = 𝑎𝑃
メッセージ𝑀の暗号化
乱数𝑟を使って𝐸𝑛𝑐 𝐾𝐴, 𝑀 ≔ 𝑟𝑃, 𝑀 + 𝑟𝐾𝐴
復号
𝑐1, 𝑐2 ≔ (𝑟𝑃, 𝑀 + 𝑟𝐾𝐴)に対して
𝑐2 − 𝑎𝑐1 = 𝑀 + 𝑟𝐾𝐴 − 𝑎(𝑟𝑃) = 𝑀 + 𝑟𝑎𝑃 − 𝑎𝑟𝑃 = 𝑀
楕円曲線暗号
𝑀 𝑟𝑃, 𝑀 + 𝑟𝐾𝐴
𝐾𝐴
18/36
- 25. 初期化
𝑎 : 秘密鍵, 𝐾𝑎 ≔ 𝑎𝑃 : 公開鍵 ; ユーザごと
暗号化
𝐸𝑛𝑐 𝑀 ≔ (𝑟𝐾𝑎, 𝑀 + 𝑟𝑃′), 𝑟は乱数
通常の復号
𝑒 𝑟𝐾𝑎, 𝑃 = 𝑒 𝑟𝑎𝑃, 𝑃 = 𝑟𝑎𝑃′
𝑀 + 𝑟𝑃′ − 1/𝑎 𝑟𝑎𝑃′ = 𝑀
変換鍵 𝑟𝐴→𝐵 ≔ 1
𝑎 𝐾𝑏 = 𝑏
𝑎 𝑃
再暗号化
𝑅𝑒𝐸𝑛𝑐 𝑟𝐾𝑎 ≔ 𝑒 𝑟𝐾𝑎, 𝑟𝐴→𝐵
= 𝑒 𝑟𝑎𝑃, 𝑏
𝑎 𝑃 = 𝑟𝑏𝑃′
= 𝑟𝐾𝑏
′
代理人暗号の構成(2/2)
25/36
- 29. 秘密分散とペアリングの組み合わせ
秘密分散
一つのデータを複数人でシェア𝑠 = 𝑟1 + 𝑟2
とても複雑なので省略
論文と実装例
Software implimation of an Attribute-Based Encryption
scheme(共著),IEEE Transactions on Computers, 2014
http://sandia.cs.cinvestav.mx/index.php?n=Site.CPABE
https://github.com/herumi/ate-pairing/
属性ベース暗号の仕組み
29/36
- 31. 準同型 = 暗号化したまま演算する
準同型暗号(HE : Homomorphic Encryption)
123
𝑚1 = 123
𝑚2 = 654
654
777
クラウド上で
暗号化したまま足し算
777
暗号化して
クラウドに委譲
計算結果を取得して復号
31/36
- 32. 暗号化(再掲)
𝐸𝑛𝑐 𝑀 = 𝑟𝑃, 𝑀 + 𝑟𝐾𝐴 ; 𝐾𝐴はAの公開鍵 𝑟は乱数
二つのメッセージ𝑀1, 𝑀2を暗号化
𝐸𝑛𝑐 𝑀1 = 𝑟1 𝑃, 𝑀1 + 𝑟1 𝐾 𝐴
𝐸𝑛𝑐 𝑀2 = (𝑟2 𝑃, 𝑀2 + 𝑟2 𝐾 𝐴)
暗号文を足してみると
𝑟1 𝑃 + 𝑟2 𝑃, 𝑀1 + 𝑟1 𝐾𝐴 + 𝑀2 + 𝑟2 𝐾𝐴
= 𝑟1 + 𝑟2 𝑃, 𝑀1 + 𝑀2 + 𝑟1 + 𝑟2 𝐾𝐴
= 𝑟′ 𝑃, 𝑀1 + 𝑀2 + 𝑟′ 𝐾𝐴 , 𝑟′ ≔ 𝑟1 + 𝑟2
= 𝐸𝑛𝑐(𝑀1 + 𝑀2)
楕円曲線暗号によるHEの実現
32/36
- 34. 投票
𝑚𝑖 = 0 𝑜𝑟 1
𝐸𝑛𝑐 𝑚1 + ⋯ + 𝐸𝑛𝑐 𝑚 𝑛 = 𝐸𝑛𝑐 𝑚1 + ⋯ + 𝑚 𝑛
統計計算
平均、分散、相関など
∑𝑥𝑖, ∑ 𝑥𝑖 − 𝑚 2, ∑𝑥𝑖 𝑦𝑖などは複数回の足し算と1回の掛け算
秘匿したままマッチングや検索
指紋、DNAなどの生体情報
加法HE : (産総研)範囲指定型問い合わせに対する
効率的なデータベース秘匿検索プロトコル
CSS2014最優秀デモンストレーション賞
HEの利用例
34/36