メッセージを特定個人に盗聴される恐れがある際の現実的な対策手法を考える

近況ですが、AliceとBobがメッセージをやりとりしている内容をAliceの妹Eve*1がAliceが寝ている間に端末の指紋認証を突破し盗み見てスクリーンショットを撮りAliceに直接送りつける嫌がらせをしていることが判明しました。*2 この状況のとき、各人が行える現実的なメッセージの難読化、あるいは暗号化の手法を考えたい。

私は研究をしていないと過去言われているのできっと研究をしていないのですが、配属された研究室の中には暗号理論に関わるものがいたり、私は符号理論に関わっていたりするので、そのあたりの知識を利用して考察していく。

共通鍵暗号を用いる

共通鍵暗号を用いればメッセージを比較的簡単に暗号化、あるいは復号化できる。

文字列を符号なし8ビットのバッファーに変換し、鍵文字列を用いて何らかの計算を適用しそれを再度文字列に戻すなどの方法が妥当な手法だと思われる。

しかし今回の場合は端末のほぼフルアクセスを得られるため復号化ツールもEveに利用されてしまうケースが想定できる。また、そもそもの共通鍵自体がAliceの端末から漏洩してしまう可能性が高いためあまり綺麗な手法ではない。

公開鍵暗号を用いる

公開鍵暗号を用いる場合送信メッセージの暗号化の鍵と受信メッセージの復号化の鍵の利用が想定できる。

公開鍵暗号とは言いつつもそもそも鍵自体は公開しておく必要はなく、それぞれの鍵に対応する復号鍵を計算することはほぼ不可能なので各々秘密鍵と公開鍵を所持しているだけなのでメッセージの全てがEveに復号化されるケースはなくなる。

しかしEveの目的は嫌がらせなので、この手法を用いても片側のメッセージは盗み出されてしまうためあまり効果がないという欠点が残ってしまう。

比較的単純な符号化を用いる

ハフマン符号化のように、ハフマンテーブルさえわかれば符号を復号出来るような符号化を考える。

この場合、符号は語頭符号であれば何でもよく、情報ビットたる元メッセージを符号化するルール自体は各メッセージごとに変更できるため鍵が盗まれたらメッセージが複合できるという様なパターンを避けることができる。

また、今回のケースでは送信した情報が誤って受信されるケースを想定しなくて良い為、符号化の際には符号語同士の距離*3を考慮する必要がないため、符号化のバリエーションはおそらく可算無限個程度あると想定できる。

複数の符号化を用いて難読化をすることで、正しい復号化手法をそれぞれにわからない形で伝えることができればほぼメッセージの盗聴は防げるはずである。

しかし現実的にそんな面倒なことをしていたらメッセージの伝送効率が悪すぎる為とてもじゃないが採用するのは難しそうだ。

Eveをなんとかする

これはソーシャルハックなんですが、Eveを社会的に破壊できれば問題ないというのがある。

グッと生命を絶たせたりだとか、一般社会から隔絶するとか、ブタ箱にぶち込むとか方法は様々だが、それをなんとかしてやろうと思うと割に合わないコストがかかったりするので現実的ではない。

これが実行できればかなり心の平穏が保たれるのだが、AliceがEveの親族であるので非常に面倒そうである。

人類を滅ぼす

人一人の手では不可能だが人類が滅びればメッセージの伝達そのものが不要になるので問題が消える。

第三次世界大戦…ッ!頼む!!!!!!!!!!

*1:よくある暗号理論の文脈ではそんな設定は無い

*2:悪意は無いらしいとの弁明はあったがそもそも不正アクセス禁止法に抵触します

*3:距離関数の意味で