10. 前提知識 - Cryptographic Tools
機密保持(Confidentiality)
ユーザの行動(広告のクリックなど)を秘密にしながら各ユーザに対する報酬の
支払いを計算するために加法準同型暗号を使用
本論文では楕円ElGamal暗号を使用
暗号関数
公開鍵 とメッセージ を入力して暗号文 を出力
復号関数
暗号文 と秘密鍵 を入力して復号されたメッセージ を出
力
署名関数
メッセージ と秘密鍵 を入力として当該メッセージに対する署名
を出力
pk M C = Enc(pk, M)
C sk M = Dec(sk, C)
M sk S =
Sign(sk, M)
12. 前提知識 - Cryptographic Tools
信頼の分配(Distribution of trust) <- マルチパーティ計算の話
ユーザの機密情報を暗号化するための公開鍵と秘密鍵のペアを広告キャンペーン
ごとに生成
THEMISでは分散鍵生成(DKG)プロトコルを利用
参加者のグループが鍵ペア を分散生成
この時各参加者は秘密鍵 を共有し完全な秘密鍵 の知識を得ることはない
結果として得られる鍵ペアは 閾値鍵ペア(threshold key-pair)であり鍵を分散
生成した 人の参加者のうち少なくとも 人が復号/署名プロトコル中に相互作用
する必要がある
これには同期型と非同期型の方式があるが同期型のスキームをベースに構築
参加者数が少なく鍵生成時に参加者がオンラインであることがインセンティ
ブとなるため
(pk
, sk
)
T T
sk
T,i sk
T
k − n
n k
13. 前提知識 - Cryptographic Tools
信頼の分配(Distribution of trust)
THEMISでは検証可能なランダム関数(VRF)を利用
VRFは公開鍵と秘密鍵のペア(VRF.pk, VRF.sk)を入力としてVRF.Randを乱数として
生成
正しく生成されたことを証明するゼロ知識証明 を併せて出力
where is a random seed
ΠVRF
(VRF.Rand, Π ) =
VRF VRF.RandGen(VRF.sk, ϵ)
ϵ
33. システム詳細 - PHASE 1. DEFINING AD REWARDS
1a
広告主はポリシー(広告ごとの報酬とか)をCFに送信する
CFと連携するのに必要
各広告主は広告キャンペーンごとに共通鍵 をCFと交換
広告主は対応する広告キャンペーンを暗号化
広告クリエイティブとともにCFに送信
CF
復号化してポリシーが合意通りであることを確認
広告主の暗号化されたポリシーを暗号化されたポリシーベクトルEnc
に統合
S
i
P
34. システム詳細 - PHASE 1. DEFINING AD REWARDS
1b
CFは広告カタログを2つのパブリックスマートコントラクトに展開
CFはすべての広告主の秘密鍵 を持つベクトル を作成
CFはEnc (PoAの各バリデータの公開鍵 で暗号化された )をPSCに格納
PoAバリデータが復号化してユーザの広告インタラクションベクトルに対応
するポリシーを適用できるように準備
ポリシーベクトルを共通鍵で暗号化しその共通鍵をバリデータの公開鍵で暗
号化するというプロセスはハイブリッド公開鍵暗号化と見なす
S
i S
S pk
V S
35. システム詳細 - PHASE 1. DEFINING AD REWARDS
1c
PSCの準備が終わると広告主はEnc がCFと合意したポリシーを暗号化してい
るかどうかを検証
広告主はPSCの公開ストレージからEnc ベクトルを取得
対応する共通鍵 を用いてポリシーEnc (Enc ) を復号
それが合意値であることを検証
広告主はFSCからエスクロー口座のアドレスを取得
広告主はエスクロー口座に資金を送金
必要な資金は広告ごとに必要なインプレッション数、合意されたポリシ
ー 、CFに支払う処理手数料によって決定
P
P
S
i P P[i]
p
i