量子鍵配送の話

※この記事は, Boushitsu Advent Calendar 2020 9日目の記事です. 

 

 こんにちは. もう2020年が終わりますね. 最近では, 筋トレをそれなりに真面目にやるようになり, 調整が効く昼食で, タンパク質を意識的に取ったり取らなかったりしています. 

 さて, 本記事は初めに示した通り, アドベントカレンダーの記事なのですが, 初めの方に投稿された様な面白い話は, 残念ながら私にはできません. しかしながら, 何かしらの投稿はしたい. そこで, 自分の所属する研究室の取り扱う分野の内, 某室でもある程度受けの良さそうな量子暗号の話をしようと思います. この記事を読んで, 少しでも量子情報に興味を持っていただけたら幸いです. ただし, 部分的に曖昧だったり, 論理が詰め切れていない部分があるかと思いますが, ご了承ください. 

 

 まず初めに, 量子暗号と言われて何を思い浮かべるでしょうか? 少し考えてみてください. 

 

そうですね, 量子鍵配送(QKD : Quantum Key Distribution)や, OTU暗号(岡本-田中-内山による量子公開鍵暗号), KKNY暗号(河内-小柴-西村-山上による量子公開鍵暗号)と言ったものが思いつくかと思います. 今回はその中でも, QKDについて書くことにします(OTU暗号やKKNY暗号については全く分からないので). (余談ですが, 量子ディジタル署名などもあります)

 秘密鍵

  QKDの説明の前に, 初めに, AliceとBobの2者間で秘匿通信を行うことを考えます. この時, 第三者Eveに内容を盗聴されない, 秘匿通信路を用いることができればよいのですが, その秘匿性を保証することは困難です(不便なうえにコストが高い). すると, 盗聴されることを前提とした有線/無線の通信路を用いて, 秘匿通信を行うことが考えられます. そのためには秘密鍵が必要となります. この秘密鍵はAliceとBobの間で共有された, Eveの知らないランダムなビット列となります. この秘密鍵とEveによる盗聴や改竄などを前提とした公開通信路を用いることで秘匿通信を行うことが可能となります. 

QKDの概要

 QKDは, 量子通信路*1で量子状態をやり取りすることで, 秘匿通信を行おうとするAliceとBobとの間で, 秘密鍵を配送する仕組みです. ここで, QKDが提供するのは, Eveの盗聴に対する対策のみなので, 公開通信路について, Eveは通信内容はすべて知ることができるが, その改竄は全くできないという性質を持つ古典通信路を想定することとします. 

 QKDは, 量子力学の基本的な性質の一つである, 系に対する測定行為と被測定系の状態の変化が切り離せないことを用いています. すなわち, どれだけ高い技術で測定装置を作っても, ある物理量(例えば, その物体の位置や運動量など)を測定すると被測定系の状態がどうしても不可逆に変化します. 量子通信に対するEveの盗聴行為は送受信される量子系を測定することによって実現されることから, 送信する量子状態をうまく選べばEveにどの程度盗聴されたのか, その痕跡が量子状態の変化として残ります. すると, 量子状態の送受信によってAliceからBobにランダムなビット列を伝えると同時に, Bobへ届いた量子状態の変化を監視しておくことで状態の変化の度合いから盗聴行為の程度を推定することができます. 結果, 共有したビット列について, Eveが最大でどれだけの情報を持っているかが分かります. この情報から, 公開通信路を用いた通信によってEveにほとんど漏洩していない秘密鍵を作成することは難しくありません. 

 上記のような原理や方法を用いてQKDは実現されます. 実は, QKDには様々なプロトコルがあるのですが, 大まかにまとめると以下のような手順からなります: 

  1.  量子通信による通信
     Aliceは乱数と量子系(光パルスなど)を適当な状態に準備し, 光ファイバなどの量子通信路を通して量子系をBobへ送信します. それに対してBobは乱数を発生させ, それに従い測定方法を決定し測定を行います. この時, Alice, Bobの両者でこの乱数と測定結果を記録しておき, この操作を複数回繰り返すことでデータを蓄積します.
  2. パラメータ推定
     1. で蓄積したデータから, 互いにランダムにいくつかのセット(乱数と測定結果のセット)を選びます. 選んだセットを公開通信路ですべて公開します. AliceとBobは公開された, 互いのデータを比較することで, 量子通信路での量子状態の変化を表す一連のパラメータ(ビット誤り率など)を推定します. なおこの時点で, 量子状態の変化が激しすぎて, 秘密鍵の作成が不可能となる場合があります. その場合にはすべてのデータを破棄し, 1. の量子通信からやり直します.
  3. シフト鍵の決定
     パラメータ推定で使用したセットを除いた, 残りのデータから, 秘密鍵を作成するために, 明らかに無意味なセットを振るい落とします. 残ったデータのセットについて, AliceとBobそれぞれが自分の持つデータからビット値を決めます. 結果得られたビット値を並べたビット列を, シフト鍵と呼びます.
  4. 誤り訂正
     Eveの攻撃や量子通信路, 検出装置の不完全性によって, 一般にはAliceとBobの作成したシフト鍵は一致しません. シフト鍵の長さに対して, 一致しないビットの数の割合を(量子)ビット誤り率と呼びます. シフト鍵の値は公開されない(してしまうと, Eveにシフト鍵の情報が漏洩する)ため, ビット誤り率の正確な値は分かりませんが2. でのパラメータ推定によって好きな精度で推定することが可能です. 推定したビット誤り率に応じて公開通信路での通信により誤り訂正を行うことで, AliceとBobとで一致した訂正済み鍵を作成します.
  5. 秘匿性増幅
     訂正済み鍵は, Eveに情報が漏洩している可能性があります. そこで, 推定されたパラメータから不完全性(どれだけEveに情報が漏洩しているのかや量子通信路の不完全性など)の度合いを見積もります. この不完全性の度合いから, 公開通信路でのやり取りにより訂正済み鍵をより短いビット列である最終鍵に変換することで, Eveの持つ情報と鍵との相関を減らします. この手続きを秘匿性増幅と呼びます.

 以上をまとめた概略図を以下に示します.

 

f:id:engkoba:20201208165119j:plain

QKDの概略図

 以上のような手続きにより, AliceとBobの間に第三者Eveと相関のほとんどない秘密鍵を配送することができます. なお先にも示した通り, QKDには, BB84やB92, E91, BBM92など様々なプロトコルが存在し, そのそれぞれで準備する状態や状態を準備する人(概略図では, Aliceがその役割を担っていました)などの詳細が異なります. 

 さて, 秘密鍵の配送ができることは示しましたが, これだけでは古典との違い, メリットデメリットまでは分かりません. そこで, 次にこれらについて軽く説明します. 古典では, RSA暗号楕円曲線暗号がありますが, これらは素因数分解問題や離散対数問題の解決困難性(既存のコンピュータとアルゴリズムによっても準指数時間かかる)ことを安全性の根拠としており, このような安全性を計算量的安全性と言います. 一方, QKDは情報理論的安全性を根拠としており, これはどのような計算機を用いても原理的に解読が不可能であることを意味します. しかし, QKDには二者間に配送可能な距離が長くないことが特徴として挙げられます. このため, 鍵リレーや量子中継などを用いることで配送可能な距離を延ばす必要があります. また, 配送速度にも問題があります. 詳しくは, 「量子鍵配送 鍵リレー」などとして調べてみてください.

 

最後に

 ちょっとした余談ですが, 本来ならこの部分の下の方により詳細なことを書こうと思っていました. ですが, 時間が思いのほかなかったので書けませんでした. なのでちょっとした追記をします.

 ここまでで, QKDのメリット, デメリットなどを説明してきましたが, 情報理論的安全性を持つならそれを実用化することが一番では? と思うかもしれません. 確かに中国などでは盛んに量子暗号の研究が行われており, 量子中継などを行うことで2000kmという規模のネットワークを構築した, みたいな話を聞くこともあります. 一方で, 最近では耐量子暗号というものも盛んに研究されています. これには, 格子暗号や多変数暗号と言ったものが含まれますが, この暗号は古典, 量子問わずに解決が困難であるような数理暗号を指します. なぜ耐量子暗号を盛んに研究するかと言えば, 飽くまで私見ですが, 古典の資源の方が量子よりもコストが低いこと, QKDとは異なり実用化までにかかる時間が短いと見込まれている(ような気がします. 実際, NISTが2017年ごろに募集をかけ, その採択も結構進んでいるとかなんとか)(NICTによれば, 2030年頃には, RSA-2048を破ることができる量子コンピュータが完成する可能性があるとか)ことが挙げられると思います. 量子に限らず, 暗号理論は難しいと個人的にも思いますが, 興味がある方がいれば, ぜひ勉強会なり議論なりしましょう.

 以上でQKDの概要の説明は終了となります. ガバガバな部分が多くあったかと思いますが, ここまで読んでくださりありがとうございました. 繰り返しますが, この記事で量子情報へ少しでも興味を持っていただけたら幸いです.

参考文献

・小芦雅斗,小柴健史. (2008). 『SGCライブラリ 67 量子暗号理論の展開』. サイエンス社.

・藤原幹生,佐々木雅英. (2017). 「3 量子光ネットワーク技術 3-1 量子鍵配送ネットワーク研究開発の現状」. 国立研究開発法人 情報通信研究機構. <https://www.nict.go.jp/publication/shuppan/kihou-journal/houkoku-vol63-1/K2017Q-03-01.pdf>.

・太田和夫. (2019). 「暗号技術評価委員会活動報告」. <https://www.cryptrec.go.jp/symposium/2019_cryptrec-eval.pdf>.

*1:量子系を直接送受信できる通信路のこと. ここで, 量子系とは, 量子論で記述された, 考察などの対象となる, 注目している部分のことを指します