アプリケーションサーバ側はデモ用のコードをそのまま利用したが,ブラウザ側はexperiment.htmlを読み込んで計測を行った.(デモ用のコードはindex.html)
- WebServer/experiment.html : 実験用のhtmlファイル.染色体番号を隠さず各染色体に対してBeacon検索を行い,最後に染色体番号を隠してBeacon検索を行う.各検索ごとに,暗号化にかかった時間,復号化にかかった時間,検索にかかった総時間,送受信した暗号文の個数を出力するようになっている.
- WebServer/experiment.js : 実験用のjsファイル.基本的にデモ用のコード(crypt-beacon.js)と中身は同じだが,一回検索が終わったら次の検索を自動で実行するようになっているのと,余分な出力を無くしているところが異なっている.
- 人工データ
- ApplicationServer/data/ex_bed/makeSampleBED.py を用いてbedファイルを生成した.
- 総塩基数に対してどのくらいの割合で置換を発生させるかを指定し,ランダムでbedファイルを生成した.
- bed2list.pyを用いてposファイルに変換し実験を行った.
- 実データ
- 4種類の実データのbedファイルをbed2list.pyを用いてそれぞれposファイルに変換し,実験を行った.
-
Webサーバ,アプリケーションサーバ (同一マシンで2種類のサーバを走らせた)
- OS : Ubuntu 18.04
- CPU : Intel(R) Xeon(R) CPU E5-2643 v3 @ 3.40GHz × 2
- RAM : 128GB
- 遅延 : 15ms (tcコマンド使用)
-
ブラウザ側 (2パターン実験を行った)
- iPhone7
- ブラウザ : safari
- DELL xps13
- OS : Windows10
- ブラウザ : Google Chrome
- CPU : Intel(R) Core(TM) i5-7Y54 CPU @ 1.20GHz
- RAM : 8GB
- iPhone7
- 2乗根の場合
- PCでおよそ3秒,iphoneでも5秒程度(ゼロ知識証明なしの場合)と比較的短い時間で暗号化が終わるように,送信する暗号文の個数を10000個に固定した.
- 3乗根の場合
- ゼロ知識証明がない場合に最も通信量が少なくなる値にした.