わふうの人が書いてます。

iOSアプリケーション開発、BLEのファームウェアとハードウェア試作のフリーランスエンジニア。

日本の接触確認のキー情報をモニタしてみる

日本の接触確認のキー情報をモニタしてみようと思います。

このキー情報というのは、テンポラリキーです。Apple/Googleが提供する曝露通知の仕組みは、暗号化された識別子を送信し、お互いに記録するものです。陽性判定された方がアプリケーションにそれを登録すると、アプリケーションは、その識別子を生成する元になっているテンポラリキーのリストを、端末に記録されている過去14日分を、サーバーに送ります。それぞれのアプリケーションは、そのテンポラリキーと端末に保存された識別子を照合して、接触していたかの有無を判定します。

テンポラリキーは、各人の端末で1日1つ生成されます。ですから、もしもアプリケーションを使用開始してから14日以上が経過した方が、陽性判定でそのデータを送れば、14個のテンポラリキーがサーバに送られます。2日しか使っていなければ、多分キーは2つだけでしょう。

毎日深夜に、その日に新たに生成されたキーの数を数えれば、多分それは陽性判定の新規登録者数です。プライバシー保護のために、ダミーデータが混じっているかもしれませんが、大まかな傾向としては間違いではないでしょう。

その日に登録されたキーの数をカウントするスクリプトを作って見ました。処理の詳細は、Gistのコードをみてください。Python3で書いています。macOSのターミナルで動作を確認しています。

ソースコード :
https://gist.github.com/reinforce-lab/7810b3edc4aee5a72c41c928d4d89076

使い方は、まずコードをローカルに展開します。zipで落とすだけでいいのではないでしょうか。そして次のコマンドで、キー情報が見られます。

% pip3 install protobuf
% python3 covid19radar_detail.py

これで、実行した日付に登録されたキーの総数を表示します。夜に定時実行させておけばいいと思います。
多分、7月16日の登録者数は8人くらいなのでしょう。