ブロックチェーンと秘密分散法を用いた情報ライフサイクル制御

  • 秘密計算 - データを暗号化した状態で計算

    • 秘密分散ベース
    • 準同型暗号による演算
      • 量子耐性
      • 格子暗号(LWE問題)
      • 理論的な研究と応用の研究がある
  • tl;dr

    • データのプライバシーを守る為の仕組みとして retroactive privacy な仕組みを考える
    • ブロックチェーン上で期限をすぎるとデータにアクセスできなくなるプロトコルを考案
  • retroactive privacy とは

    • データが一定期間経過すると当事者でさえデータにアクセスできなくなる性質
    • 昨今のサービスはデータを削除してもほんとうの意味の削除にはならない(サーバーに残り続ける etc)
    • 投稿した瞬間にデータの我々は制御を失う
    • 公権力によって情報を検閲されるさい不必要なデータを見られる恐れ
  • 目標: 達成される性質

    • retroactive privacy(時刻 で削除される)
    • 可用性
    • 送信者、受信者は常時オンラインである必要はない
    • セキュアなハードウェアや信頼できる第三者の期間を必要としない
  • 先行研究

    • 既存手法はどれもシビル攻撃(攻撃者が特定のノードサーバーに対して大量のデータを送って、最新のブロックを承認できないようにするなどの攻撃)に弱い
    • Ephemerizer
      • retroactive privacyを実現するため、信頼できる第三者の鍵管理機関に鍵を預ける
      • 検閲耐性のあるシステムにするには鍵管理機関は分散されている必要がある
    • Torのディレクトリサーバ
      • 9つのサーバーに分散している(半数以上汚染されなければ安全)
      • 鍵管理機関のリストを管理する主体が存在しないほうが望ましい
    • Vanish
      • データを複合する鍵を消すことによって実現
      • hopping攻撃(?)に弱い
    • EphPub
      • DNSキャッシュリゾルバを鍵管理機関として(??)シビル問題を解決
      • 復号鍵を鍵管理機関に送信する時に盗聴されていたら困る
  • 提案手法

    • ブロックチェーンと秘密分散を用いたプロトコル
    • 鍵管理機関としてブロックチェーンを利用する
      • -> 鍵管理機関への信用が必要なく、シビル攻撃への耐性もある
    • 500
  • プロトコル

    • 送信者 , 受信者 , ブロックチェーン
    • 送信者プロトコル
      • はランダムに共通鍵 , 乱数 , シェアの数 , 閾値 を選び、期限 を定める
      • メッセージ を共通鍵 で暗号化し、 を計算
      • ブロックチェーンの先頭 個から 個選び選んだブロックに書き込まれている公開鍵 とIPのペアの合計n個を とする.
      • 以上の変数を とする
      • 更に共通鍵 から の秘密分散法を用いてシェアの列 を計算する、そしてハッシュ関数 を用いて のハッシュ値 をキー、 を値として に安全な通信路を介して送る(公開鍵 使用)、 を送信
    • 受信者プロトコル
      • を使用.
      • Lの各要素のノードに対して通信を行い、キー を用いて値として鍵のシェア を受け取る
      • 受け取った の列から 個選び の秘密分散法を用いて を復元.
      • 共通鍵 を用い から 平文 を復元
    • ブロックチェーンプロトコル
      • 割愛(KVSとしての役割、期限が来たらキー削除)
  • 評価

    • ブルートフォース攻撃(retroactive privacy に対する攻撃)
      • 手当り次第にkeyをリクエストする
      • キー空間を大きくすれば良い
    • DOS攻撃(可用性に対する攻撃)
      • Piece Work と呼ばれるPoW
      • リクエストする際にパズルを解く必要がある
  • 実装(割愛, C++で実装)

    • なぜかプロトコル完了にかかる時間を計測している
  • 課題

    • シェアを受け取ったノードが第三者にシェアを渡さないような仕組みを考える必要がある
  • 参考文献