(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132694
(43)【公開日】2024-10-01
(54)【発明の名称】通信システム、通信端末及び通信方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240920BHJP
H04L 9/08 20060101ALI20240920BHJP
【FI】
H04L9/32 200A
H04L9/32 200E
H04L9/08 D
H04L9/08 E
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023043567
(22)【出願日】2023-03-17
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和3年度 総務省「グローバル量子暗号通信網構築のための研究開発」委託研究、産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(71)【出願人】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】鶴丸 豊広
(72)【発明者】
【氏名】藤原 幹生
(72)【発明者】
【氏名】加藤 豪
(72)【発明者】
【氏名】佐々木 雅英
(57)【要約】
【課題】メッセージ認証1回当たりの認証鍵の消費量を削減可能にする。
【解決手段】第1端末が、第2端末との間で通信したメッセージmと鍵k
comとを入力として関数hにより得られる関数値と、暗号化乱数r
*’
1として受信された暗号化乱数r
1を復号して得られた乱数r’とから認証タグtを生成する。第1端末が、認証タグtを前記第2端末に送信する。第2端末が、認証タグtを認証タグt’として受信する。第2端末が、第1端末との間で通信したメッセージm’と鍵k
comとを入力として関数hにより得られる関数値と、暗号化乱数r
*’
2として受信された暗号化乱数r
2を復号して得られた乱数r’’とから認証タグt’が生成されるか否かを判定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
認証装置と第1端末と第2端末とを備える通信システムであり、
前記認証装置は、
前記第1端末との間で共有された暗号化鍵k1を用いて乱数rが暗号化された暗号化乱数r*
1を前記第1端末に送信するとともに、前記第2端末との間で共有された暗号化鍵k2を用いて前記乱数rが暗号化された暗号化乱数r*
2を前記第2端末に送信する乱数送信部
を備え、
前記第1端末は、
前記第2端末との間で通信したメッセージmと鍵kcomとを入力として関数hにより得られる関数値fと、暗号化乱数r*’1として受信された前記暗号化乱数r*
1を復号して得られた乱数r’とから認証タグtを生成する認証タグ生成部と、
前記認証タグtを前記第2端末に送信する認証タグ送信部と
を備え、
前記第2端末は、
前記認証タグ送信部によって送信された前記認証タグtを認証タグt’として受信する認証タグ受信部と、
前記第1端末との間で通信したメッセージm’と前記鍵kcomとを入力として関数hにより得られる関数値f’と、暗号化乱数r*’2として受信された前記暗号化乱数r*
2を復号して得られた乱数r’’とから前記認証タグt’が生成されるか否かを判定する判定部と
を備える通信システム。
【請求項2】
前記関数hは、ハッシュ関数であり、
前記認証タグ生成部は、前記関数値fと、前記乱数r’との排他的論理和を前記認証タグtとする
請求項1に記載の通信システム。
【請求項3】
前記乱数送信部は、前記暗号化鍵k1を用いて前記鍵kcomが暗号化された暗号化鍵kcom1を前記第1端末に送信するとともに、前記暗号化鍵k2を用いて前記鍵kcomが暗号化された暗号化鍵kcom2を前記第2端末に送信し、
前記認証タグ生成部は、暗号化鍵k’com1として受信された前記暗号化鍵kcom1を復号して得られた鍵k’comを前記鍵kcomとして用い、
前記判定部は、暗号化鍵k’com2として受信された前記暗号化鍵kcom2を復号して得られた鍵k’’comを前記鍵kcomとして用いる
請求項1に記載の通信システム。
【請求項4】
前記第1端末と前記第2端末との間で、2以上の整数Lに関して、i=1,...,Lの各整数iについてのメッセージmiが通信され、
前記認証タグ生成部は、前記各整数iについてのメッセージmiをまとめたデータを前記メッセージmとして、前記認証タグtを生成し、
前記判定部は、前記各整数iについてのメッセージmiをまとめたデータを前記メッセージm’として、前記認証タグt’が生成されるか否かを判定する
請求項1に記載の通信システム。
【請求項5】
認証装置との間で共有された暗号化鍵k2を用いて乱数rが暗号化された暗号化乱数r*
2を前記認証装置から受信する乱数受信部と、
メッセージmと、通信相手の端末である相手端末との間で共有された鍵kcomとを入力として関数hにより得られる関数値fと、前記相手端末と前記認証装置との間で共有された暗号化鍵k1を用いて乱数rが暗号化された暗号化乱数r*
1が前記相手端末によって前記認証装置から取得され復号されて得られた乱数r’とから生成された認証タグtを認証タグt’として、前記相手端末から受信する認証タグ受信部と、
前記相手端末との間で通信したメッセージm’と前記鍵kcomとを入力として関数hにより得られる関数値f’と、暗号化乱数r*’2として受信された前記暗号化乱数r*
2を復号して得られた乱数r’’とから前記認証タグt’が生成されるか否かを判定する判定部と
を備える通信端末。
【請求項6】
認証装置が、第1端末との間で共有された暗号化鍵k1を用いて乱数rが暗号化された暗号化乱数r*
1を前記第1端末に送信するとともに、第2端末との間で共有された暗号化鍵k2を用いて前記乱数rが暗号化された暗号化乱数r*
2を前記第2端末に送信し、
前記第1端末が、前記第2端末との間で通信したメッセージmと鍵kcomとを入力として関数hにより得られる関数値fと、暗号化乱数r*’1として受信された前記暗号化乱数r*
1を復号して得られた乱数r’とから認証タグtを生成し、
前記第1端末が、前記認証タグtを前記第2端末に送信し、
前記第2端末が、前記認証タグtを認証タグt’として受信し、
前記第2端末が、前記第1端末との間で通信したメッセージm’と前記鍵kcomとを入力として関数hにより得られる関数値f’と、暗号化乱数r*’2として受信された前記暗号化乱数r*
2を復号して得られた乱数r’’とから前記認証タグt’が生成されるか否かを判定する通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、メッセージ認証技術に関する。
【背景技術】
【0002】
量子鍵配送(以下、QKDと呼ぶ)は、遠隔2地点のユーザ対が、情報理論的に安全な秘密鍵を無尽蔵に共有できる技術である。QKDは、Quantum Key Distributionの略である。
但し、QKDを実施するためには、当該ユーザ対は「認証鍵」と呼ばれる短い秘密鍵を共有しておく必要がある。短いとは、通常百ビット以下である。つまり、QKDは飽くまで「予め短い秘密鍵(=認証鍵)を共有しているユーザ対に限って、認証鍵を利用して秘密鍵を無尽蔵に共有できる技術」である。すなわち、予め何も共有していないユーザ対が秘密鍵を共有できる技術ではない。この意味で、QKDを量子鍵拡張と呼ぶ文献もある。
【0003】
認証鍵は、その名の通りメッセージ認証に使われる。より正確には、QKDでは量子通信路と古典公開通信路との両方が用いられるが、古典公開通信路での通信については第三者による改竄を検知可能とする必要がある。さもないと、最終的に生成される秘密鍵が安全でなくなる。この改竄検知機能を実現するために、情報理論的安全なメッセージ認証符号が用いられ、そのために認証鍵が消費される。情報理論的安全なメッセージ認証符号は、IT-MACと呼ばれる。IT-MACは、Information Theoretic Message Authentication Codeの略である。IT-MACは、非特許文献1の4.6節に記載がある。
【0004】
QKDをネットワーク上に組んだ場合も状況は同じである。ネットワーク上の任意の2ユーザがQKDを実行したい場合、両者は予め認証鍵を共有しておく必要がある。
任意の2ユーザが予め認証鍵を共有する状況を実現する最もストレートな方法は、認証鍵を全ユーザ対に事前に共有しておくことである。しかし、この場合、ユーザ数がNであるとすると、(N・(N-1))/2対の認証鍵が必要になる。つまり、各ユーザに配布する認証鍵の総量が、全ユーザ数の2乗に比例してしまい、非常に膨大になる。例えばネットワークの規模が倍になる度に、各ユーザに配布する認証鍵の量が倍になる。しかも、通常各ユーザが他のユーザの一部とだけ通信するので、共有された認証鍵の大半は使用されずに終わる。
【0005】
特許文献1には、事前共有する秘密鍵の量を削減した技術が記載されている。特許文献1では、以下の3つのアイデアを組み合わせることにより、事前共有する秘密鍵の量を削減している。
(1)新たに「鍵管理局」を導入する。
(2)初期段階ではユーザ同士は鍵を共有しない。かわりに鍵管理局だけが、各ユーザと「事前鍵」を共有する。
(3)QKDを行う必要が生じたユーザ対のみが、鍵管理局から認証鍵の配布を受ける。つまり、メッセージ認証を行う必要が生じたユーザ対のみが、鍵管理局から認証鍵の配布を受ける。なお、認証鍵の配布に際しては、認証鍵はユーザと共有された事前鍵で暗号化(例えばワンタイムパッド暗号化方式により)される。例えば、ユーザ1とユーザ2とがQKDを行う場合には、ユーザ1には、ユーザ1と鍵管理局との間で共有した事前鍵で暗号化された認証鍵が鍵管理局から配布される。ユーザ2には、ユーザ2と鍵管理局との間で共有した事前鍵で暗号化された認証鍵が鍵管理局から配布される。
【先行技術文献】
【特許文献】
【0006】
【非特許文献】
【0007】
【非特許文献1】J. Katz and Y. Lindell, Introduction to Modern Cryptography: Third Edition, (CRC Press, December 21, 2020).
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1では、メッセージ認証を行う度に、認証鍵が更新される。そのため、メッセージ認証1回当たりの認証鍵の消費量が依然として多い。その結果、鍵管理局と各ユーザとが共有すべき事前鍵が依然として多く必要である。
より正確にいうと、特許文献1の方式を用いて、第三者による改竄成功確率をpforge以下に抑えたい場合、メッセージ認証1回当たり2log2(1/pforge)ビット以上の認証鍵を消費する必要がある(非特許文献1のTheorem4.26参照)。
本開示は、メッセージ認証1回当たりの認証鍵の消費量を削減することを目的とする。
【課題を解決するための手段】
【0009】
本開示に係る通信システムは、
認証装置と第1端末と第2端末とを備える通信システムであり、
前記認証装置は、
前記第1端末との間で共有された暗号化鍵k1を用いて乱数rが暗号化された暗号化乱数r*
1を前記第1端末に送信するとともに、前記第2端末との間で共有された暗号化鍵k2を用いて前記乱数rが暗号化された暗号化乱数r*
2を前記第2端末に送信する乱数送信部
を備え、
前記第1端末は、
前記第2端末との間で通信したメッセージmと鍵kcomとを入力として関数hにより得られる関数値fと、暗号化乱数r*’1として受信された前記暗号化乱数r*
1を復号して得られた乱数r’とから認証タグtを生成する認証タグ生成部と、
前記認証タグtを前記第2端末に送信する認証タグ送信部と
を備え、
前記第2端末は、
前記認証タグ送信部によって送信された前記認証タグtを認証タグt’として受信する認証タグ受信部と、
前記第1端末との間で通信したメッセージm’と前記鍵kcomとを入力として関数hにより得られる関数値f’と、暗号化乱数r*’2として受信された前記暗号化乱数r*
2を復号して得られた乱数r’’とから前記認証タグt’が生成されるか否かを判定する判定部と
を備える。
【発明の効果】
【0010】
本開示では、認証装置から送信される乱数rだけでなく、鍵kcomを用いて認証タグを生成する。これにより、メッセージ認証1回当たりの認証鍵の消費量を削減できる。
【図面の簡単な説明】
【0011】
【
図1】実施の形態1に係る通信システム100の構成図。
【
図4】実施の形態1に係る通信システム100の処理のフローチャート。
【
図5】実施の形態1に係る通信システム100の処理の説明図。
【
図6】実施の形態2に係る通信システム100の処理の説明図。
【
図7】実施の形態3に係る通信システム100の処理のフローチャート。
【
図8】実施の形態3に係る通信システム100の処理の説明図。
【発明を実施するための形態】
【0012】
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係る通信システム100の構成を説明する。
通信システム100は、認証装置10と、複数の通信端末20とを備える。認証装置10と複数の通信端末20とは、ネットワーク90を介して接続されている。
図1では、通信システム100は、i∈{1,...,N}の各整数iについての通信端末20-iを備える。Nは、2以上の整数である。通信端末20-iは、ユーザiによって使用されることが想定されている。
【0013】
図2を参照して、実施の形態1に係る認証装置10の構成を説明する。
認証装置10は、コンピュータである。
認証装置10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0014】
認証装置10は、機能構成要素として、要求受信部111と、乱数生成部112と、乱数送信部113とを備える。認証装置10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、認証装置10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、認証装置10の各機能構成要素の機能が実現される。
【0015】
図3を参照して、実施の形態1に係る通信端末20の構成を説明する。
通信端末20は、コンピュータである。
通信端末20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0016】
通信端末20は、機能構成要素として、要求送信部211と、乱数受信部212と、認証タグ生成部213と、認証タグ送信部214と、認証タグ受信部215と、判定部216とを備える。通信端末20の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ23には、通信端末20の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、通信端末20の各機能構成要素の機能が実現される。
【0017】
プロセッサ11,21は、プロセッシングを行うICである。ICはIntegrated Circuitの略である。プロセッサ11,21は、具体例としては、CPU、DSP、GPUである。CPUは、Central Processing Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。
【0018】
メモリ12,22は、データを一時的に記憶する記憶装置である。メモリ12,22は、具体例としては、SRAM、DRAMである。SRAMは、Static Random Access Memoryの略である。DRAMは、Dynamic Random Access Memoryの略である。
【0019】
ストレージ13,23は、データを保管する記憶装置である。ストレージ13,23は、具体例としては、HDDである。HDDは、Hard Disk Driveの略である。また、ストレージ13,23は、SD(登録商標)メモリカード、CompactFlash(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、Blu-ray(登録商標)ディスク、DVDといった可搬記録媒体であってもよい。SDは、Secure Digitalの略である。DVDは、Digital Versatile Diskの略である。
【0020】
通信インタフェース14,24は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24は、具体例としては、Ethernet(登録商標)、USB、HDMI(登録商標)のポートである。USBは、Universal Serial Busの略である。HDMIは、High-Definition Multimedia Interfaceの略である。
【0021】
図2では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。同様に、
図3では、プロセッサ21は、1つだけ示されていた。しかし、プロセッサ21は、複数であってもよく、複数のプロセッサ21が、各機能を実現するプログラムを連携して実行してもよい。
【0022】
***動作の説明***
実施の形態1に係る通信システム100の動作を説明する。
実施の形態1に係る通信システム100の動作手順は、実施の形態1に係る通信方法に相当する。また、実施の形態1に係る通信システム100の動作を実現するプログラムは、実施の形態1に係る通信プログラムに相当する。
【0023】
**前提**
<鍵>
初期段階で、認証装置10と各整数iについての通信端末20-iとは、第三者に開示されていない事前鍵piを共有している。事前鍵piは、共通事前鍵kcomと、暗号化鍵kiという2つの部分からなる。つまり、pi=(kcom,ki)である。暗号化鍵は、データを秘匿する機能を有する暗号方式(例えばワンタイムパッド暗号化方式)における鍵である。
ここで、共通事前鍵kcomは、全通信端末20で共通の値である。一方、暗号化鍵kiは、通信端末20毎(つまりユーザ毎)に独立の値である。つまり、暗号化鍵kiは、通信端末20毎に異なる値となり得る。
【0024】
以下の説明において、認証装置10からいずれかの通信端末20-iにむけて暗号通信を行う場面がある。その際は、暗号化鍵kiから未使用の部分が切り出して使用されるとする。
【0025】
<状況>
i,j∈{1,...,N}の整数i,jについての通信端末20-iと通信端末20-jとがQKDプロトコルを実行しており、そのなかで古典公開通信路を通じて通信端末20-iが通信端末20-jにメッセージmを送ったとする。古典公開通信路は、第三者によって改竄される可能性があるので、メッセージmが通信端末20-jにそのまま正しく伝わるとは限らない。つまり、通信端末20-jが(mのつもりで)受信するメッセージをm’とおいたとき、m=m’が成り立つとは限らない。
【0026】
<実現する機能>
送信側の通信端末20-iが送ったメッセージmが、正しく受信側の通信端末20-jに届いたということを、受信側の通信端末20-jが確認できるようにする。より正確には、受信側の通信端末20-jが「改竄なし」と結論付けて、なおかつm≠m’が成り立つ確率がε以下になるようにする。
【0027】
**処理の流れ**
図4及び
図5を参照して、実施の形態1に係る通信システム100の処理を説明する。
通信端末20-iと通信端末20-jとがQKDプロトコルを実行中であるとする。ここでは、i=1,j=2として、通信端末20-1を第1端末と呼び、通信端末20-2を第2端末と呼ぶ。そして、第1端末が第2端末にメッセージmを送信する状況を想定する。なお、一般の通信端末20-iから通信端末20-jにメッセージmを送信する場合は、添え字1をiと置き換え,添え字2をjと置き換えて、通信端末20-iを第1端末、通信端末20-jを第2端末とすればよい。
【0028】
(
図4のステップS11:要求送信処理(
図5の(1)に対応))
第1端末の要求送信部211は、認証装置10に対して第2端末に送信したメッセージを認証したい旨の要求を送信する。これは、乱数rの共有を要求することに相当する。すると、認証装置10の要求受信部111は、要求を受信する。
なお、第2端末の要求送信部211から、乱数rの共有が要求されてもよい。
【0029】
(
図4のステップS12:乱数生成処理(
図5の(2)に対応))
認証装置10の乱数生成部112は、乱数rを生成する。
【0030】
(
図4のステップS13:乱数送信処理(
図5の(3)に対応))
認証装置10の乱数送信部113は、暗号化鍵k
1を用いて、ステップS12で生成された乱数rを暗号化した暗号化乱数r
*
1を生成する。乱数送信部113は、暗号化乱数r
*
1を第1端末に送信する。暗号化鍵k
1は、認証装置10と第1端末との間で共有された事前鍵p
1に含まれる。
すると、第1端末の乱数受信部212は、暗号化乱数r
*
1を暗号化乱数r
*’
1として受信する。乱数受信部212は、暗号化鍵k
1を用いて暗号化乱数r
*’
1を復号して、乱数r’を生成する。
【0031】
また、認証装置10の乱数送信部113は、暗号化鍵k2を用いてステップS12で生成された乱数rを暗号化して暗号化乱数r*
2を生成する。乱数送信部113は、暗号化乱数r*
2を第2端末に送信する。暗号化鍵k2は、認証装置10と第2端末との間で共有された事前鍵p2に含まれる。
すると、第2端末の乱数受信部212は、暗号化乱数r*
2を暗号化乱数r*’2として受信する。乱数受信部212は、暗号化鍵k2を用いて暗号化乱数r*’2を復号して、乱数r’’を生成する。
【0032】
(
図4のステップS14:認証タグ生成処理(
図5の(4)に対応))
第1端末の認証タグ生成部213は、第2端末との間で通信したメッセージmと共通事前鍵k
comとを入力として関数hにより関数値fを得る。認証タグ生成部213は、関数値fと、暗号化乱数r
*’
1を復号して得られた乱数r’とから認証タグtを生成する。そして、第1端末の認証タグ送信部214は、認証タグtを第2端末に送信する。
メッセージmは、ステップS11で送信した要求の認証対象である。ここでは、メッセージmは、既に第1端末から第2端末に送信済であるとする。共通事前鍵k
comは、認証装置10と第1端末との間で共有された事前鍵p
1に含まれる。関数hは、ハッシュ関数である。実施の形態1では、関数hは、ε-概ユニバーサルハッシュ関数である。ε-概ユニバーサルハッシュ関数については、非特許文献2“D.R. Stinson, “Universal Hashing and Authentication Codes,” Designs, Codes and Cryptography 4, 369-380 (1994).”に記載されている。
実施の形態1では、認証タグ生成部213は、t=h(k
com,m)+r’により、認証タグtを生成する。ここで、演算“+”は、排他的論理和である。つまり、認証タグ生成部213は、関数hにより得られた関数値fと、乱数r’との排他的論理和を、認証タグtとする。
【0033】
(
図4のステップS15:判定処理(
図5の(5)に対応))
第2端末の認証タグ受信部215は、ステップS14で送信された認証タグtを認証タグt’として受信する。第2端末の判定部216は、第1端末との間で通信したメッセージm’と共通事前鍵k
comとを入力として関数hにより関数値f’を得る。判定部216は、関数値f’と、暗号化乱数r
*’
2を復号して得られた乱数r’’とから認証タグt’が生成されるか否かを判定する。判定部216は、認証タグt’が生成された場合には、メッセージm’は改竄されていないと判定する。つまり、メッセージm=メッセージm’と判定される。
メッセージm’は、第1端末から第2端末に送信されたメッセージmを第2端末が受信したものである。共通事前鍵k
comは、認証装置10と第2端末との間で共有された事前鍵p
2に含まれる。
実施の形態1では、判定部216は、t’=h(k
com,m’)+r’’が成立するか否かを判定する。成立する場合には、認証タグt’が生成されたことになる。
【0034】
なお、通信途中に第三者による改竄がされていない場合には、m=m’だけでなく、r=r’=r’’と、t=t’とが成立する。
【0035】
***実施の形態1の効果***
以上のように、実施の形態1に係る通信システム100は、認証装置から送信される乱数rだけでなく、共通事前鍵kcomを用いて認証タグを生成する。これにより、メッセージ認証1回当たりの認証鍵の消費量を削減可能にできる。
【0036】
特許文献1に記載された方式では、メッセージ認証に使う認証鍵の全ての部分を毎回更新していた。これは、実施の形態1において、認証装置10が、乱数rのみならず共通事前鍵kcomも毎回新しいものを生成し、共有する状況に相当する。実施の形態1では、共通事前鍵kcomは更新せず毎回同じものを使い回される。そのため、メッセージ認証1回当たりの認証鍵の消量を削減できる。その結果、認証装置10と各通信端末20とが共有すべき事前鍵も削減できる。
【0037】
より正確には、メッセージ認証の安全性を同一に保ったまま、認証鍵の消費量を特許文献1の半分以下に削減できる。その詳細は以下のとおりである。
まず関数hとしてε-概ユニバーサルハッシュ関数を用いた場合、第三者による改竄成功確率pforgeはmax(ε,2-|r|)以下になることを理論的に証明できる。ここで、|r|は乱数rのビット数を表す。その証明は非特許文献3“M.N. Wegman and J.L. Carter, “New Hash Functions and Their Use in Authentication and Set Equality,” Journal of Computer and System Sciences 22, 265-279 (1981).”の第4節のTheoremと同様に行うことができる。特に、パラメータεを2-|r|以下に選ぶ場合、pforge≦2-|r|が成り立つ。パラメータεを2-|r|以下に選ぶ場合とは、ε-概ユニバーサルハッシュ関数になるように関数hを設計することである。これは非特許文献2のTheorem 5.2の構成を用いれば可能である。つまり、第三者による改竄成功確率をpforgeに抑えつつ、毎回消費される認証鍵である乱数rの長さを|r|=log2(1/pforge)にすることができる。
一方で、特許文献1では2log2(1/pforge)ビット以上の認証鍵を消費する必要があった。したがって、実施の形態1に係る通信システム100は、特許文献1に記載された方式に比べ、認証鍵の消費量を約半分に削減できる。
【0038】
***他の構成***
<変形例1>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
【0039】
各機能構成要素がハードウェアで実現される場合には、認証装置10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
【0040】
各機能構成要素がハードウェアで実現される場合には、通信端末20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
【0041】
電子回路としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAが想定される。GAは、Gate Arrayの略である。ASICは、Application Specific Integrated Circuitの略である。FPGAは、Field-Programmable Gate Arrayの略である。
各機能構成要素を1つの電子回路で実現してもよいし、各機能構成要素を複数の電子回路に分散させて実現してもよい。
【0042】
<変形例2>
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【0043】
プロセッサ11とメモリ12とストレージ13と電子回路とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【0044】
また、以上の説明における「部」を、「回路」、「工程」、「手順」、「処理」又は「処理回路」に読み替えてもよい。
【0045】
実施の形態2.
実施の形態2は、事前鍵piが共通事前鍵kcomを含まず暗号化鍵kiだけを含んでいる点が実施の形態1と異なる。実施の形態2では、この異なる点を説明し、同一の点については説明を省略する。
【0046】
事前鍵piが共通事前鍵kcomを含まないということは、共通事前鍵kcomは、メッセージmを通信する通信端末20間で事前に共有されていないということである。実施の形態2では、共通事前鍵kcomは、メッセージを認証したい旨の要求が通信端末20からされてから、通信端末20間で共有される。
【0047】
***動作の説明***
図4及び
図6を参照して、実施の形態2に係る通信システム100の処理を説明する。
ステップS13の処理以外の処理は、実施の形態1と同じである。
【0048】
(
図4のステップS13:乱数送信処理(
図6の(3)に対応))
実施の形態1と同様に、認証装置10の乱数送信部113は、暗号化乱数r
*
1を生成して、暗号化乱数r
*
1を第1端末に送信する。そして、第1端末の乱数受信部212は、暗号化乱数r
*
1を暗号化乱数r
*’
1として受信して、乱数r’を生成する。同様に、認証装置10の乱数送信部113は、暗号化乱数r
*
2を生成して、暗号化乱数r
*
2を第2端末に送信する。そして、第2端末の乱数受信部212は、暗号化乱数r
*
2を暗号化乱数r
*’
2として受信して、乱数r’’を生成する。
【0049】
認証装置10の乱数送信部113は、暗号化鍵k1を用いて、共通事前鍵kcomを暗号化した暗号化共通事前鍵kcom1を生成する。乱数送信部113は、暗号化共通事前鍵kcom1を第1端末に送信する。すると、第1端末の乱数受信部212は、暗号化共通事前鍵kcom1を暗号化共通事前鍵k’com1として受信する。乱数受信部212は、暗号化鍵k1を用いて暗号化共通事前鍵k’com1を復号して、共通事前鍵k’comを生成する。
認証装置10の乱数送信部113は、暗号化鍵k2を用いて、共通事前鍵kcomを暗号化した暗号化共通事前鍵kcom2を生成する。乱数送信部113は、暗号化共通事前鍵kcom2を第2端末に送信する。すると、第2端末の乱数受信部212は、暗号化共通事前鍵kcom2を暗号化共通事前鍵k’com2として受信する。乱数受信部212は、暗号化鍵k2を用いて暗号化共通事前鍵k’com2を復号して、共通事前鍵k’’comを生成する。
【0050】
ステップS14では、第1端末の認証タグ生成部213は、共通事前鍵k’comを共通事前鍵kcomとして用いる。また、ステップS15では、第2端末の判定部216は、共通事前鍵k’’comを共通事前鍵kcomとして用いる。
【0051】
***実施の形態2の効果***
以上のように、実施の形態2に係る通信システム100は、メッセージを認証したい旨の要求が通信端末20からされた後に、認証装置10から対象の通信端末20に対して共通事前鍵kcomが送信される。これにより、認証を行わない通信端末20が共通事前鍵kcomを保有する状態にならない。その結果、共通事前鍵kcomが漏洩する可能性を低くすることができる。
【0052】
実施の形態1では、全ての通信端末20が事前に共通事前鍵kcomを保有していた。そのため、1つの通信端末20でも共通事前鍵kcomを漏洩してしまうと、全ての通信端末20についての認証の安全性が損なわれてしまった。
これに比べて、実施の形態2では、認証を行わない通信端末20には共通事前鍵kcomが配布されない。そのため、共通事前鍵kcomが漏洩する可能性が低くなり、通信の安全性を保持し易くなる。
【0053】
実施の形態3.
実施の形態3は、複数のメッセージをまとめて認証する点が実施の形態1,2と異なる。実施の形態3では、この異なる点を説明して、同一の点については説明を省略する。
実施の形態3では、実施の形態1を変更した場合について説明する。しかし、実施の形態2を変更することも可能である。
【0054】
実施の形態1では、通信端末20-iから通信端末20-jに、又は、通信端末20-jから通信端末20-iにメッセージを送信する度に、そのメッセージが認証された。実施の形態3では、複数のメッセージを送信しあった後に、複数のメッセージをまとめて1度に認証する。
つまり、QKDプロトコルの実行中に、通信端末20-iと通信端末20-jとのいずれかが古典認証通信路を通じて複数のメッセージm1,m2,...,mLを送信したとする。メッセージm1,m2,...,mLは、通信端末20-iから通信端末20-jに送信された可能性もあれば、逆に通信端末20-jから通信端末20-iに送信された可能性もある。メッセージm1,m2,...,mLについてまとめて1度に認証することで、受信側の通信端末20が正しく受信できたことを確認できるようにする。
【0055】
***動作の説明***
**基本アイデア**
メッセージm1,m2,...,mLをまとめたデータを全メッセージm=(m1,m2,...,mL)と呼ぶ。第1端末が全メッセージmのつもりで保存しているデータをm’とし、第2端末が全メッセージmのつもりで保存しているデータをm’’とする。
このとき、以下の(A)と(B)とが同じであることが分かる。
(A)m’=m’’であることをユーザ1,2双方が確認する。
(B)メッセージm1,m2,...,mLそれぞれについて、送信者(第1端末又は第2端末)が、メッセージが受信側(第2端末又は第1端末)に正しく届いたことを確認する。
そこで(B)を直接確認する代わりに、(A)を確認する。これにより、メッセージ認証の回数減らし、認証鍵の消費量を減らす。
【0056】
**処理の流れ**
図7及び
図8を参照して、実施の形態3に係る通信システム100の処理を説明する。
通信端末20-iと通信端末20-jとがQKDプロトコルを実行中であるとする。ここでは、i=1,j=2として、通信端末20-1を第1端末と呼び、通信端末20-2を第2端末と呼ぶ。そして、第1端末と第2端末との間でメッセージm
1,...,m
Lを送受信する状況を想定する。なお、一般の通信端末20-iと通信端末20-jとで通信する場合は、添え字1をiと置き換え,添え字2をjと置き換えて、通信端末20-iを第1端末、通信端末20-jを第2端末とすればよい。
【0057】
(
図7のステップS21:要求送信処理(
図8の(1)に対応))
第1端末の要求送信部211は、認証装置10に対して第2端末に送信したメッセージを認証したい旨の要求を送信する。これは、乱数rを要求することに相当する。すると、認証装置10の要求受信部111は、要求を受信する。
なお、第2端末の要求送信部211が、認証装置10に対して第2端末に送信したメッセージを認証したい旨の要求を送信してもよい。
【0058】
(
図7のステップS22:乱数生成処理(
図8の(2)に対応))
認証装置10の乱数生成部112は、乱数r
1及び乱数r
2を生成する。
【0059】
(
図7のステップS23:乱数送信処理(
図8の(3)に対応))
認証装置10の乱数送信部113は、暗号化鍵k
1を用いて、ステップS22で生成された乱数r
1及び乱数r
2を暗号化した暗号化乱数r
*
1を生成する。乱数送信部113は、暗号化乱数r
*
1を第1端末に送信する。
すると、第1端末の乱数受信部212は、暗号化乱数r
*
1を暗号化乱数r
*’
1として受信する。乱数受信部212は、暗号化鍵k
1を用いて暗号化乱数r
*’
1を復号して、乱数r’
1及び乱数r’
2を生成する。
【0060】
認証装置10の乱数送信部113は、暗号化鍵k2を用いて、ステップS22で生成された乱数r1及び乱数r2を暗号化した暗号化乱数r*
2を生成する。乱数送信部113は、暗号化乱数r*
2を第2端末に送信する。
すると、第2端末の乱数受信部212は、暗号化乱数r*
2を暗号化乱数r*’2として受信する。乱数受信部212は、暗号化鍵k2を用いて暗号化乱数r*’2を復号して、乱数r’’1及び乱数r’’2を生成する。
【0061】
(
図7のステップS24:認証タグ生成処理(
図8の(4)に対応))
第1端末の認証タグ生成部213は、第2端末との間で通信した全メッセージm’と共通事前鍵k
comとを入力として関数hにより関数値fを得る。認証タグ生成部213は、関数値fと乱数r’
1とから認証タグt
1を生成する。そして、第1端末の認証タグ送信部214は、認証タグt
1を第2端末に送信する。
つまり、認証タグ生成部213は、各整数iについてのメッセージm
iをまとめたデータである全メッセージm’を実施の形態1におけるメッセージmとして、認証タグt
1を生成する。
【0062】
(
図7のステップS25:第1判定処理(
図8の(5)に対応))
第2端末の認証タグ受信部215は、ステップS24で送信された認証タグt
1を認証タグt’
1として受信する。第2端末の判定部216は、第1端末との間で通信した全メッセージm’’と共通事前鍵k
comとを入力として関数hにより関数値f’を得る。判定部216は、関数値f’と乱数r’’
1とから認証タグt’
1が生成されるか否かを判定する。判定部216は、認証タグt’
1が生成された場合には、全メッセージm’’は改竄されていないと判定する。つまり、全メッセージm=全メッセージm’’と判定される。
実施の形態3では、判定部216は、t’
1=h(k
com,m’’)+r’’
1が成立するか否かを判定する。成立する場合には、認証タグt’
1が生成されたことになる。
【0063】
判定部216は、認証タグt’1が生成された場合には、処理をステップS26に進める。つまり、判定部216は、改竄がなかった場合には、処理をステップS26に進める。一方、判定部216は、認証タグt’1が生成されなかった場合には、処理をステップS27に進める。つまり、判定部216は、改竄があった場合には、処理をステップS27に進める。
【0064】
(
図7のステップS26:第1返送処理(
図8の(6)に対応))
第2端末の認証タグ生成部213は、第1端末との間で通信した全メッセージm’’と共通事前鍵k
comとを入力として関数hにより関数値f’を得る。認証タグ生成部213は、関数値f’と乱数r’’
2とから認証タグt
2を生成する。そして、第2端末の認証タグ送信部214は、認証タグt
2を第1端末に送信する。
【0065】
(
図7のステップS27:第2返送処理(
図8の(7)に対応))
第2端末の認証タグ生成部213は、失敗を意味する“fail”と共通事前鍵k
comとを入力として関数hにより関数値f’’を得る。認証タグ生成部213は、関数値f’’と乱数r’’
2とから認証タグt
2を生成する。そして、第2端末の認証タグ送信部214は、認証タグt
2を第1端末に送信する。
【0066】
(
図7のステップS28:第2判定処理(
図8の(8)に対応))
第1端末の認証タグ受信部215は、ステップS26又はステップS27で送信された認証タグt
2を認証タグt’
2として受信する。第1端末の判定部216は、第2端末との間で通信した全メッセージm’と共通事前鍵k
comとを入力として関数hにより関数値f’’を得る。判定部216は、関数値f’’と乱数r’
2とから認証タグt’
2が生成されるか否かを判定する。判定部216は、認証タグt’
2が生成された場合には、全メッセージm’は改竄されていないと判定する。つまり、全メッセージm=全メッセージm’と判定される。
実施の形態3では、判定部216は、t’
2=h(k
com,m’)+r’
2が成立するか否かを判定する。成立する場合には、認証タグt’
2が生成されたことになる。
【0067】
***実施の形態3の効果***
以上のように、実施の形態3に係る通信システム100は、複数のメッセージをまとめて認証する。これにより、メッセージ認証の回数が減り、認証鍵の消費量を削減できる。
【0068】
以下、本開示の諸態様を付記としてまとめて記載する。
(付記1)
認証装置と第1端末と第2端末とを備える通信システムであり、
前記認証装置は、
前記第1端末との間で共有された暗号化鍵k1を用いて乱数rが暗号化された暗号化乱数r*
1を前記第1端末に送信するとともに、前記第2端末との間で共有された暗号化鍵k2を用いて前記乱数rが暗号化された暗号化乱数r*
2を前記第2端末に送信する乱数送信部
を備え、
前記第1端末は、
前記第2端末との間で通信したメッセージmと鍵kcomとを入力として関数hにより得られる関数値と、暗号化乱数r*’1として受信された前記暗号化乱数r*
1を復号して得られた乱数r’とから認証タグtを生成する認証タグ生成部と、
前記認証タグtを前記第2端末に送信する認証タグ送信部と
を備え、
前記第2端末は、
前記認証タグ送信部によって送信された前記認証タグtを認証タグt’として受信する認証タグ受信部と、
前記第1端末との間で通信したメッセージm’と前記鍵kcomとを入力として関数hにより得られる関数値と、暗号化乱数r*’2として受信された前記暗号化乱数r*
2を復号して得られた乱数r’’とから前記認証タグt’が生成されるか否かを判定する判定部と
を備える通信システム。
(付記2)
前記関数hは、ハッシュ関数であり、
前記認証タグ生成部は、前記関数値と、前記乱数r’との排他的論理和を前記認証タグtとする
付記1に記載の通信システム。
(付記3)
前記認証装置は、さらに、
前記暗号化鍵k1を用いて前記鍵kcomが暗号化された暗号化鍵kcom1を前記第1端末に送信するとともに、前記暗号化鍵k2を用いて前記鍵kcomが暗号化された暗号化鍵kcom2を前記第2端末に送信する鍵送信部
を備え、
前記認証タグ生成部は、暗号化鍵k’com1として受信された前記暗号化鍵kcom1を復号して得られた鍵kcomを用い、
前記判定部は、暗号化鍵k’com2として受信された前記暗号化鍵kcom2を復号して得られた鍵kcomを用いる
付記1又は2に記載の通信システム。
(付記4)
前記第1端末と前記第2端末との間で、2以上の整数Lに関して、i=1,...,Lの各整数iについてのメッセージmiが通信され、
前記認証タグ生成部は、前記各整数iについてのメッセージmiをまとめたデータを前記メッセージmとして、前記認証タグtを生成し、
前記判定部は、前記各整数iについてのメッセージmiをまとめたデータを前記メッセージm’として、前記認証タグt’が生成されるか否かを判定する
付記1から3までのいずれか1項に記載の通信システム。
(付記5)
認証装置との間で共有された暗号化鍵k2を用いて乱数rが暗号化された暗号化乱数r*
2を認証装置から受信する乱数受信部と、
メッセージmと、通信相手の端末である相手端末との間で共有された鍵kcomとを入力として関数hにより得られる関数値と、前記相手端末と前記認証装置との間で共有された暗号化鍵k1を用いて乱数rが暗号化された暗号化乱数r*
1が前記相手端末によって前記認証装置から取得され復号されて得られた乱数r’とから生成された認証タグtを認証タグt’として、前記相手端末から受信する認証タグ受信部と、
前記相手端末との間で通信したメッセージm’と前記鍵kcomとを入力として関数hにより得られる関数値と、暗号化乱数r*’2として受信された前記暗号化乱数r*
2を復号して得られた乱数r’’とから前記認証タグt’が生成されるか否かを判定する判定部と
を備える通信端末。
(付記6)
認証装置が、第1端末との間で共有された暗号化鍵k1を用いて乱数rが暗号化された暗号化乱数r*
1を前記第1端末に送信するとともに、第2端末との間で共有された暗号化鍵k2を用いて前記乱数rが暗号化された暗号化乱数r*
2を前記第2端末に送信し、
前記第1端末が、前記第2端末との間で通信したメッセージmと鍵kcomとを入力として関数hにより得られる関数値と、暗号化乱数r*’1として受信された前記暗号化乱数r*
1を復号して得られた乱数r’とから認証タグtを生成し、
前記第1端末が、前記認証タグtを前記第2端末に送信し、
前記第2端末が、前記認証タグtを認証タグt’として受信し、
前記第2端末が、前記第1端末との間で通信したメッセージm’と前記鍵kcomとを入力として関数hにより得られる関数値と、暗号化乱数r*’2として受信された前記暗号化乱数r*
2を復号して得られた乱数r’’とから前記認証タグt’が生成されるか否かを判定する通信方法。
【0069】
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【0070】
100 通信システム、10 認証装置、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、111 要求受信部、112 乱数生成部、113 乱数送信部、20 通信端末、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、211 要求送信部、212 乱数受信部、213 認証タグ生成部、214 認証タグ送信部、215 認証タグ受信部、216 判定部、90 ネットワーク。