(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024098478
(43)【公開日】2024-07-23
(54)【発明の名称】信頼ノードを含むQKDに基づく量子デジタル署名方法およびシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20240716BHJP
H04L 9/12 20060101ALI20240716BHJP
【FI】
H04L9/32 200A
H04L9/12
【審査請求】有
【請求項の数】17
【出願形態】OL
(21)【出願番号】P 2023100525
(22)【出願日】2023-06-20
(31)【優先権主張番号】10-2023-0003408
(32)【優先日】2023-01-10
(33)【優先権主張国・地域又は機関】KR
【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 2022年度 韓国通信学会 夏季総合学術発表会
(71)【出願人】
【識別番号】523235541
【氏名又は名称】コリア インスティテュート オブ サイエンス アンド テクノロジー インフォメーション
(74)【代理人】
【識別番号】110000671
【氏名又は名称】IBC一番町弁理士法人
(72)【発明者】
【氏名】ソン,イル グォン
(72)【発明者】
【氏名】ペ,グァン イル
(72)【発明者】
【氏名】イ,ウン ジュ
(72)【発明者】
【氏名】イ,ウォン ヒョク
(57)【要約】 (修正有)
【課題】信頼ノードを含むQKDに基づく量子デジタル署名方法及びシステムを提供する。
【解決手段】信頼ノードを含むQKDに基づく量子デジタル署名方法は、信頼ノードによって行われる方法であって、メッセージ送信ノードと第1秘密鍵を共有する段階、メッセージ受信ノードと第2秘密鍵を共有する段階、前記メッセージ送信ノードとpartial QKD(Quantum Key Distribution)を行うことによって第1信頼ノード署名を生成する段階、前記メッセージ受信ノードとpartial QKDを行うことによって第2信頼ノード署名を生成する段階並びに前記共有された第1秘密鍵、前記共有された第2秘密鍵、前記第1信頼ノード署名および前記第2信頼ノード署名を用いて第1メッセージの検証を行う段階を含む。
【選択図】
図9
【特許請求の範囲】
【請求項1】
信頼ノードによって行われる方法であって、
メッセージ送信ノードと第1秘密鍵を共有する段階;
メッセージ受信ノードと第2秘密鍵を共有する段階;
前記メッセージ送信ノードとpartial QKD(Quantum Key Distribution)を行うことによって第1信頼ノード署名を生成する段階;
前記メッセージ受信ノードとpartial QKDを行うことによって第2信頼ノード署名を生成する段階;および
前記共有された第1秘密鍵、前記共有された第2秘密鍵、前記第1信頼ノード署名および前記第2信頼ノード署名を用いて第1メッセージの検証を行う段階を含む、信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項2】
前記メッセージ送信ノードと第1秘密鍵を共有する段階は、
前記メッセージ送信ノードとQKD方式で第3長のビット列を共有する段階を含み、
前記メッセージ受信ノードと第2秘密鍵を共有する段階は、
前記メッセージ受信ノードとQKD方式で第4長のビット列を共有する段階を含み、
前記第1秘密鍵は前記第3長のビット列から抽出されて生成されたものであり、
前記第2秘密鍵は前記第4長のビット列から抽出されて生成されたものである、請求項1に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項3】
前記第3長のビット列および前記第4長のビット列は前記メッセージ送信ノードとの量子チャネルの損失率に基づいて決定される、請求項2に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項4】
前記第3長のビット列のうち第3-1長のビット列を公開し、前記第4長のビット列のうち第4-1長のビット列を公開する段階をさらに含み、
前記第3-1長のビット列および前記第4-1長のビット列は互いに同じ長さを有する、請求項2に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項5】
前記公開された第3-1長のビット列を用いて前記メッセージ送信ノードとの前記partial QKDによる第1誤り率を確認し、前記公開された第4-1長のビット列を用いて前記メッセージ受信ノードとの前記partial QKDによる第2誤り率を確認する段階をさらに含む、請求項4に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項6】
前記第1信頼ノード署名を生成する段階は、
第1長の信頼ノードビット列を生成する段階を含み、
前記第2信頼ノード署名は第2長の信頼ノードビット列であり、
前記第1長と前記第2長の差(difference)は前記メッセージ送信ノードとの量子チャネルの損失率に基づいて決定される、請求項1に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項7】
前記第1信頼ノード署名を生成する段階は、
前記第1長の信頼ノードビット列に基づいて第1-1長の信頼ノードビット列をランダムに抽出して前記第1信頼ノード署名を生成する段階を含む、請求項6に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項8】
前記第2信頼ノード署名を生成する段階は、
前記第1長の信頼ノードビット列から前記第1-1長の信頼ノードビット列が抽出され、残った第1-2長の信頼ノードビット列を用いて前記メッセージ受信ノードとの前記partial QKDを行うための光子の符号化を行う段階をさらに含む、請求項7に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項9】
前記第1メッセージの検証を行う段階は、
前記メッセージ送信ノードから前記第1メッセージおよび前記第1長のメッセージ送信ノードビット列を前記共有された第1秘密鍵で暗号化して生成された暗号化された第1メッセージを受信する段階;
前記共有された第1秘密鍵を用いて前記受信された暗号化された第1メッセージを復号化して、復号化された第1メッセージおよび復号化された第1長のメッセージ送信ノードビット列を抽出する段階;
前記復号化された第1長のメッセージ送信ノードビット列と前記第1-1長の信頼ノードビット列を比較して前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認する段階;
前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものである場合、前記復号化された第1メッセージおよび前記第2長の信頼ノードビット列を前記共有された第2秘密鍵で暗号化した2次暗号化された第1メッセージを前記メッセージ受信ノードに伝送する段階;
前記メッセージ受信ノードから公開された第2長のメッセージ受信ノードビット列および前記復号化された第1長のメッセージ送信ノードビット列に基づいて前記メッセージ受信ノードに前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名が有効であることを宣言する段階を含む、請求項1に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項10】
前記公開された第2長のメッセージ受信ノードビット列は、
前記メッセージ受信ノードによって前記復号化された第2長の信頼ノードビット列および前記第2長のメッセージ受信ノードビット列に基づいて前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認された後に前記メッセージ受信ノードによって公開ボード(public board)に公開されたものである、請求項9に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項11】
前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認されることは、
前記メッセージ受信ノードによって前記復号化された第2長の信頼ノードビット列と前記第2長のメッセージ受信ノードビット列を比較して不一致ビット数が第2誤り率値より少ない場合、前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものと確認されることである、請求項10に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項12】
前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認する段階は、
前記復号化された第1長のメッセージ送信ノードビット列と前記第1-1長の信頼ノードビット列を比較して不一致ビット数が第1誤り率値より少ない場合、前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものと確認する段階を含む、請求項9に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項13】
前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名が有効であることを宣言する段階は、
前記公開された第2長のメッセージ受信ノードビット列および前記復号化された第1長のメッセージ送信ノードビット列を比較して不一致ビット数が第1誤り率値と第2誤り率値を加えた値より少ない場合、前記メッセージ受信ノードに前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名に該当する前記第1長のメッセージ送信ノードビット列および前記第2長の信頼ノードビット列が有効であることを宣言する段階を含む、請求項9に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項14】
信頼ノードによって行われる方法であって、
メッセージ送信ノードとpartial QKD(Quantum Key Distribution)を行うことによって第1信頼ノード署名を生成する段階;および
メッセージ受信ノードとpartial QKDを行うことによって第2信頼ノード署名を生成する段階を含み、
前記第1信頼ノード署名と前記第2信頼ノード署名のビット列の長さの差(difference)は前記メッセージ送信ノードとの量子チャネルの損失率に基づいて決定される、
信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項15】
前記第1信頼ノード署名を生成する段階は、
第1長の信頼ノードビット列を生成する段階を含み、
前記第2信頼ノード署名を生成する段階は、
前記第1長の信頼ノードビット列から第1-1長の信頼ノードビット列が抽出されて前記第1信頼ノード署名を生成する段階;および
前記第1-1長の信頼ノードビット列が抽出された後の残った第1-2長の信頼ノードビット列を用いて前記メッセージ受信ノードと前記partial QKDを行うための光子の符号化を行う段階をさらに含む、請求項14に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【請求項16】
信頼ノードによって行われる方法であって、
メッセージ送信ノードから第1メッセージおよび第1長のメッセージ送信ノードビット列を第1秘密鍵で暗号化して生成された暗号化された第1メッセージを受信する段階;
前記第1秘密鍵を用いて前記受信された暗号化された第1メッセージを復号化して、復号化された第1メッセージおよび復号化された第1長のメッセージ送信ノードビット列を抽出する段階;
前記復号化された第1長のメッセージ送信ノードビット列と第1-1長の信頼ノードビット列を比較して前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認する段階;
前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものである場合、前記復号化された第1メッセージおよび第2長の信頼ノードビット列を第2秘密鍵で暗号化した2次暗号化された第1メッセージをメッセージ受信ノードに伝送する段階;および
前記メッセージ受信ノードから公開された第2長のメッセージ受信ノードビット列および前記復号化された第1長のメッセージ送信ノードビット列に基づいて前記メッセージ受信ノードに前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名が有効であることを宣言する段階を含み、
前記第1秘密鍵は前記メッセージ送信ノードと共有されたものである、
信頼ノードを含むQKDに基づく量子デジタル署名検証方法。
【請求項17】
前記公開された第2長のメッセージ受信ノードビット列は、
前記メッセージ受信ノードによって前記復号化された第2長の信頼ノードビット列および前記第2長のメッセージ受信ノードビット列に基づいて前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認された後に前記メッセージ受信ノードによって公開ボード(public board)に公開されたものである、請求項16に記載の信頼ノードを含むQKDに基づく量子デジタル署名方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は信頼ノードを含む3者間QKD(Quantum Key Distribution)に基づく量子デジタル署名方法およびシステムに関する。
【背景技術】
【0002】
量子デジタル署名技術は安全な情報伝送のために量子物理学の原理を用いてメッセージの送信者と受信者が署名を分配して送信者の身元を証明する技術である。
【0003】
量子デジタル署名は二つの方法が活用される。第一に、QKD(Quantum Key Distribution)に基づく量子デジタル署名方法があり、第二に、信頼ノードに基づく量子もつれを用いる量子デジタル署名方法がある。
【0004】
第一の方法であるQKDに基づく量子デジタル署名方法の場合、既存のQKD装備を用いることができるが、メッセージを受信および検証するノードと追加検証するノードの間に直接的な通信が必要である。一般的な状況ではネットワークが論理的にはFull-mesh形態であり得るが、実質的な回線構成はツリー、リングなど多様な形態を有するため、特定のノード間の直接通信で上位ノードまたは近接ノードを経ることになるので、盗聴および変調が可能であるという問題がある。
【0005】
図1は従来技術による例示的なQKDを用いる量子デジタル署名方法を説明するための図である。
【0006】
図1を参照すると、例示的なQKDを用いる量子デジタル署名システム60はAlice(受信者)61、Bob(第1送信者)62およびCharlie(第2送信者)63を含むことができる。
【0007】
先にAlice61とBob62の間のQKDを行うものの、後処理であるinformation reconciliationおよびprivacy amplificationを省略したpartial QKDを行って不完全な暗号鍵を生成して署名を生成し、同様にAlice61とCharlie63の間のpartial QKDを行って不完全な暗号鍵を生成して署名を生成する。
【0008】
その後、メッセージの署名に対する検証方法として、先にAlice61はBob62にメッセージと署名を伝送し、Bob62は自身の鍵と受信した署名を比較して不一致値の数を記録する。この時、Bob62は比較結果による不一致値の数が臨界値より少ないとメッセージを受諾した後にCharlie63に伝達し、そうでない場合はメッセージを拒否してプロトコルを中断することができる。Charlie63はBob62と同じ方式で伝達されたメッセージを確認することができる。Charlie63は自身の鍵と署名を比較して不一致値の数が臨界値より少ないとメッセージを受諾する。ここで、Charlie63はAlice61の否認防止のためにBob62が用いた臨界値と異なる臨界値を用いることができる。
【0009】
図1の不完全な暗号鍵を署名として用いる具体的な方法については文献「Optics Letters, Vol. 41, No.21 4883-4886(2016)」などに記載されている。
【0010】
上記のようなQKDを用いる量子デジタル署名方法の場合、上位ノードの信頼性に対する検証が不要なQKD方式を用いてもメッセージを受信するノードと検証するノードの間の直接通信の場合は上位ノードまたは近接ノードで盗聴および変調が可能であるためセキュリティ性を証明することが不完全であるという問題がある。すなわち、QKDに基づく量子デジタル署名方法は特定のノード間の直接通信ではセキュリティ性を証明するために実際の網構成がFull-Mesh構造でなければならないという制約がある。
【0011】
第二の方法である信頼ノードに基づく量子デジタル署名方法の場合、上記のような問題は存在しないが、量子もつれを用いなければならないので、現在の技術では実現がかなり難しく、QKDとは別のシステムを追加で構築しなければならないという問題もある。したがって、現在多様に構築されているQKDネットワークを活用するためにはQKDに基づくQDS技法が必要である。
【0012】
図2は従来技術による例示的な信頼ノードに基づく量子デジタル署名方法を説明するための図である。
【0013】
図2を参照すると、信頼ノードに基づく量子署名構造70は、署名者71、TC(Trust Center)72および多数の検証者73,74,75,76,77を含むことができる。
【0014】
署名者71はメッセージに対するハッシュ(hash)および任意ビット列を生成し、これに基づいてPauli演算子および任意回転演算子を生成する。署名者71は量子もつれにPauli演算子および任意回転演算子を適用する方式で署名を生成してTC72に伝送する。
【0015】
TC72は受信した署名に任意回転演算子を逆演算した後にベル状態測定(Bell State Measurements)を行ってPauli演算子を抽出する。
【0016】
TC72は受信メッセージからハッシュ(hash)計算および任意ビット列を抽出し、任意ビット列を一部公開することにより署名を検証し得る。
【0017】
次に、前記のような署名者71とTC72の間の署名検証過程を応用する方式で、TC72と多数の検証者73,74,75,76,77の間の署名検証過程が行われ、これにより各検証者の署名検証とメッセージを受信したか否かを判断することができる。
【0018】
図2の信頼ノードに基づく量子デジタル署名の具体的な方法については文献「Quantum Inf Process Vol.19, No.18 (2020)」などに記載されている。
【0019】
上記記載をまとめると、第一の方法であるQKDに基づく量子デジタル署名方法は、実際の網構成がFull-Mesh構造でなければならないという問題があり、第二の方法である信頼ノードに基づく量子デジタル署名方法は、量子もつれを用いなければならないため、現在の技術では実現が難しく、別のシステムを追加で構築しなければならない問題がある。
【0020】
したがって、量子暗号通信ネットワークの使用性を向上して既存のQKD装備を用いることができ、網構成がFull-meshでない場合にも適用できるように現在の実質的なネットワーク構造を反映した量子デジタル署名方法が求められる。
【発明の概要】
【発明が解決しようとする課題】
【0021】
本発明が解決しようとする技術的課題は、量子鍵分配方法を用いて量子デジタル署名を行う方法およびシステムを提供することにある。
【0022】
本発明が解決しようとする他の技術的課題は、信頼ノードを用いるツリーネットワーク構造における量子デジタル署名方法およびシステムを提供することにある。
【0023】
本発明が解決しようとするまた他の技術的課題は、いくつかのノードが連結されていないPartial Mesh網でも利用可能な量子デジタル署名方法およびシステムを提供することにある。
【0024】
本発明が解決しようとするまた他の技術的課題は、量子もつれ特性を用いない量子デジタル署名方法を提供することにある。
【0025】
本発明の技術的課題は、以上で言及した技術的課題に制限されず、言及されていないまた他の技術的課題は以下の記載から本発明の技術分野での通常の技術者に明確に理解されるものである。
【課題を解決するための手段】
【0026】
前記技術的課題を解決するための本発明の一実施形態による信頼ノードを含むQKDに基づく量子デジタル署名方法は、信頼ノードによって行われる方法であって、メッセージ送信ノードと第1秘密鍵を共有する段階、メッセージ受信ノードと第2秘密鍵を共有する段階、前記メッセージ送信ノードとpartial QKD(Quantum Key Distribution)を行うことによって第1信頼ノード署名を生成する段階、前記メッセージ受信ノードとpartial QKDを行うことによって第2信頼ノード署名を生成する段階および前記共有された第1秘密鍵、前記共有された第2秘密鍵、前記第1信頼ノード署名および前記第2信頼ノード署名を用いて第1メッセージの検証を行う段階を含み得る。
【0027】
いくつかの実施形態で、前記メッセージ送信ノードと第1秘密鍵を共有する段階は、前記メッセージ送信ノードとQKD方式で第3長のビット列を共有する段階を含み、前記メッセージ受信ノードと第2秘密鍵を共有する段階は、前記メッセージ受信ノードとQKD方式で第4長のビット列を共有する段階を含み、前記第1秘密鍵は前記第3長のビット列から抽出されて生成されたものであり、前記第2秘密鍵は前記第4長のビット列から抽出されて生成されたものであり得る。ここで、前記第3長のビット列および前記第4長のビット列は前記メッセージ送信ノードとの量子チャネルの損失率に基づいて決定され得る。また、前記第3長のビット列のうち第3-1長のビット列を公開し、前記第4長のビット列のうち第4-1長のビット列を公開する段階をさらに含み、前記第3-1長のビット列および前記第4-1長のビット列は互いに同じ長さを有し得る。
【0028】
いくつかの実施形態で、前記公開された第3-1長のビット列を用いて前記メッセージ送信ノードとの前記partial QKDによる第1誤り率を確認し、前記公開された第4-1長のビット列を用いて前記メッセージ受信ノードとの前記partial QKDによる第2誤り率を確認する段階をさらに含み得る。
【0029】
いくつかの実施形態で、前記第1信頼ノード署名を生成する段階は、第1長の信頼ノードビット列を生成する段階を含み、前記第2信頼ノード署名は第2長の信頼ノードビット列であり、前記第1長と前記第2長の差(difference)は前記メッセージ送信ノードとの量子チャネルの損失率に基づいて決定され得る。ここで、前記第1信頼ノード署名を生成する段階は、前記第1長の信頼ノードビット列に基づいて第1-1長の信頼ノードビット列をランダムに抽出して前記第1信頼ノード署名を生成する段階を含み得る。また、前記第2信頼ノード署名を生成する段階は、前記第1長の信頼ノードビット列から前記第1-1長の信頼ノードビット列が抽出され、残った第1-2長の信頼ノードビット列を用いて前記メッセージ受信ノードとの前記partial QKDを行うための光子の符号化を行う段階をさらに含み得る。
【0030】
いくつかの実施形態で、前記第1メッセージの検証を行う段階は、前記メッセージ送信ノードから前記第1メッセージおよび前記第1長のメッセージ送信ノードビット列を前記共有された第1秘密鍵で暗号化して生成された暗号化された第1メッセージを受信する段階、前記共有された第1秘密鍵を用いて前記受信された暗号化された第1メッセージを復号化して、復号化第1メッセージおよび復号化第1長のメッセージ送信ノードビット列を抽出する段階、前記復号化第1長のメッセージ送信ノードビット列と前記第1-1長の信頼ノードビット列を比較して前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認する段階、前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものである場合、前記復号化第1メッセージおよび前記第2長の信頼ノードビット列を前記共有された第2秘密鍵で暗号化した2次暗号化された第1メッセージを前記メッセージ受信ノードに伝送する段階、前記メッセージ受信ノードから公開された第2長のメッセージ受信ノードビット列および前記復号化第1長のメッセージ送信ノードビット列に基づいて前記メッセージ受信ノードに前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名が有効であることを宣言する段階を含み得る。
【0031】
いくつかの実施形態で、前記公開された第2長のメッセージ受信ノードビット列は、前記メッセージ受信ノードによって前記復号化第2長の信頼ノードビット列および前記第2長のメッセージ受信ノードビット列に基づいて前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認された後に前記メッセージ受信ノードによってpublic boardに公開されたものであり得る。ここで、前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認されることは、前記メッセージ受信ノードによって前記復号化第2長の信頼ノードビット列と前記第2長のメッセージ受信ノードビット列を比較して不一致ビット数が第2誤り率値より少ない場合、前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものと確認されることであり得る。
【0032】
いくつかの実施形態で、前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認する段階は、前記復号化第1長のメッセージ送信ノードビット列と前記第1-1長の信頼ノードビット列を比較して不一致ビット数が第1誤り率値より少ない場合、前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものと確認する段階を含み得る。
【0033】
いくつかの実施形態で、前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名が有効であることを宣言する段階は、前記公開された第2長のメッセージ受信ノードビット列および前記復号化第1長のメッセージ送信ノードビット列を比較して不一致ビット数が第1誤り率値と第2誤り率値を加えた値より少ない場合、前記メッセージ受信ノードに前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名に該当する前記第1長のメッセージ送信ノードビット列および前記第2長の信頼ノードビット列が有効であることを宣言する段階を含み得る。
【0034】
本発明の他の実施形態による信頼ノードを含むQKDに基づく量子デジタル署名方法は、信頼ノードによって行われる方法であって、メッセージ送信ノードとpartial QKD(Quantum Key Distribution)を行うことによって第1信頼ノード署名を生成する段階およびメッセージ受信ノードとpartial QKDを行うことによって第2信頼ノード署名を生成する段階を含み、前記第1信頼ノード署名と前記第2信頼ノード署名のビット列の長さの差(difference)は前記メッセージ送信ノードとの量子チャネルの損失率に基づいて決定され得る。ここで、前記第1信頼ノード署名を生成する段階は、第1長の信頼ノードビット列を生成する段階を含み、前記第2信頼ノード署名を生成する段階は、前記第1長の信頼ノードビット列から第1-1長の信頼ノードビット列が抽出されて前記第1信頼ノード署名を生成する段階;および前記第1-1長の信頼ノードビット列が抽出された後の残った第1-2長の信頼ノードビット列を用いて前記メッセージ受信ノードと前記partial QKDを行うための光子の符号化を行う段階をさらに含み得る。
【0035】
本発明のまた他の実施形態による信頼ノードを含むQKDに基づく量子デジタル署名検証方法は、信頼ノードによって行われる方法であって、メッセージ送信ノードから第1メッセージおよび第1長のメッセージ送信ノードビット列を第1秘密鍵で暗号化して生成された暗号化された第1メッセージを受信する段階、前記第1秘密鍵を用いて前記受信された暗号化された第1メッセージを復号化して、復号化第1メッセージおよび復号化第1長のメッセージ送信ノードビット列を抽出する段階、前記復号化第1長のメッセージ送信ノードビット列と前記第1-1長の信頼ノードビット列を比較して前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認する段階、前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものである場合、前記復号化第1メッセージおよび前記第2長の信頼ノードビット列を第2秘密鍵で暗号化した2次暗号化された第1メッセージをメッセージ受信ノードに伝送する段階、前記メッセージ受信ノードから公開された第2長のメッセージ受信ノードビット列および前記復号化第1長のメッセージ送信ノードビット列に基づいて前記メッセージ受信ノードに前記メッセージ送信ノードが正当な送信ノードであり、前記第1メッセージのための署名が有効であることを宣言する段階を含み、前記第1秘密鍵は前記メッセージ送信ノードと共有されたものであり得る。ここで、前記公開された第2長のメッセージ受信ノードビット列は、前記メッセージ受信ノードによって前記復号化第2長の信頼ノードビット列および前記第2長のメッセージ受信ノードビット列に基づいて前記受信された2次暗号化された第1メッセージが正当な送信ノードから送信されたものであるか確認された後に前記メッセージ受信ノードによってpublic boardに公開されたものであり得る。
【図面の簡単な説明】
【0036】
【
図1】従来技術による例示的なQKDを用いる量子デジタル署名方法を説明するための図である。
【
図2】従来技術による例示的な信頼ノードに基づく量子デジタル署名方法を説明するための図である。
【
図3】本発明の一実施形態による信頼ノードを含むQKDに基づく量子デジタル署名システムの構成図である。
【
図4】本発明の他の実施形態による信頼ノードを含むQKDに基づく量子デジタル署名方法のフローチャートである。
【
図5】
図4を参照して説明したメッセージ送信ノードと第1秘密鍵を共有する方法を詳細に説明するための詳細フローチャートである。
【
図6】
図4を参照して説明したメッセージ受信ノードと第2秘密鍵を共有する方法を詳細に説明するための詳細フローチャートである。
【
図7】
図4を参照して説明したメッセージ送信ノードとpartial QKDを行う方法の一実施形態を詳細に説明するための詳細フローチャートである。
【
図8】
図4を参照して説明したメッセージ受信ノードとpartial QKDを行う方法の一実施形態を詳細に説明するための詳細フローチャートである。
【
図9】本発明のまた他の実施形態によるQKDに基づく量子デジタル署名検証方法を説明するためのフローチャートである。
【
図10】
図9を参照して説明した暗号化された第1メッセージを検証する方法を詳細に説明するための詳細フローチャートである。
【
図11】
図9を参照して説明したメッセージ受信ノードによって2次暗号化された第1メッセージが検証される方法を詳細に説明するための詳細フローチャートである。
【
図12】
図9を参照して説明した第1メッセージに対する最終検証方法を詳細に説明するための詳細フローチャートである。
【
図13】本発明のいくつかの実施形態によるコンピューティングシステムのハードウェア構成図である。
【発明を実施するための形態】
【0037】
以下、添付する図面を参照して本発明の好ましい実施形態について詳細に説明する。本発明の利点および特徴、並びにこれらを達成する方法は添付する図面と共に詳細に後述している実施形態を参照すると明確になる。しかし、本発明の技術的思想は以下の実施形態に限定されるものではなく、互いに異なる多様な形態で実現することができ、以下の実施形態は単に本発明の技術的思想を完全なようにし、本発明が属する技術分野で通常の知識を有する者に本発明の範疇を完全に知らせるために提供するものであり、本発明の技術的思想は請求項の範疇によってのみ定義される。
【0038】
本発明を説明するにあたり、関連する公知の構成または機能に係る具体的な説明が本発明の要旨を曖昧にすると判断される場合はその詳細な説明を省略する。
【0039】
以下、図面を参照して本発明のいくつかの実施形態を説明する。
【0040】
図3は本発明の一実施形態による信頼ノードを含むQKDに基づく量子デジタル署名システムの構成図である。
【0041】
図3を参照すると、本実施形態による信頼ノードを含むQKDに基づく量子デジタル署名システムは、メッセージ送信ノード10、信頼ノード20、メッセージ受信ノード30、第1量子チャネル40および第2量子チャネル50を含むことができる。
【0042】
メッセージ送信ノード10は第1メッセージを暗号化してメッセージ受信ノード30に伝達し、第1メッセージは伝達過程で信頼ノード20を経て伝達し得る。
【0043】
メッセージ受信ノード30はメッセージ送信ノード10から送信された第1メッセージを信頼ノード20を経て伝達され得る。この過程で、メッセージ受信ノード30は信頼ノード20から伝達された第1メッセージの署名を検証することができる。
【0044】
信頼ノード20はメッセージ送信ノード10から第1メッセージを受信して、メッセージ受信ノード30に伝達する役割をする。ここで、信頼ノード20は、量子通信(quantum communication)のために構築されたネットワークノードであって、ノードの信頼性が保障されると仮定したノードであり得る。
【0045】
信頼ノード20はメッセージ送信ノード10およびメッセージ受信ノード30との関係で鍵および署名を生成できる。
【0046】
一実施形態によれば、信頼ノード20はメッセージ送信ノード10とQKDを行い得る。メッセージ送信ノード10とQKDを行うことによって指定された長さのビット列をメッセージ送信ノード10と共有することができる。例えば、信頼ノード20がメッセージ送信ノード10とn*L+k+1長のビット列を共有するQKDを行う場合、メッセージ送信ノード10はn*L+k+1長のビット列を生成し、これと同時に信頼ノード20もn*L+k+1長のビット列を生成できる。ここで、n、Lおよびkは1以上の正の整数を意味し、以下、本発明の他の部分においても同様に理解される。
【0047】
同様の方法により、信頼ノード20はメッセージ受信ノード30とQKDを行うことができる。メッセージ受信ノード30とQKDを行うことによって指定された長さのビット列をメッセージ受信ノード30と共有することができる。例えば信頼ノード20がメッセージ受信ノード30とL+k+1長のビット列を共有するQKDを行う場合、メッセージ受信ノード30はL+k+1長のビット列を生成し、これと同時に信頼ノード20もL+k+1長のビット列を生成できる。
【0048】
ここで、信頼ノード20とメッセージ送信ノード10の間のQKDの実行は第1量子チャネル40を介して行われ得る。また、信頼ノード20とメッセージ受信ノード30の間のQKDの実行は第2量子チャネル50を介して行われ得る。すなわち、QKDは量子物理の特性を用いて暗号鍵を交換する技術であって、既存の通信ネットワークとは別の量子チャネル(Quantum channel)が用いられる。
【0049】
一実施形態によれば、信頼ノード20はメッセージ送信ノード10とのQKD過程で生成されたn*L+k+1長のビット列のうちk長のビット列を公開して第1量子チャネル40の誤り率(Sa)を算定し、メッセージ受信ノード30とのQKD過程で生成されたL+k+1長のビット列のうちk長のビット列を公開して第2量子チャネル50の誤り率(Sb)を算定することができる。
【0050】
一実施形態によれば、信頼ノード20はメッセージ送信ノード10とのQKD過程で第1量子チャネル40の損失率を算定し、メッセージ受信ノード30とのQKD過程で第2量子チャネル50の損失率を算定することができる。
【0051】
一実施形態によれば、信頼ノード20はメッセージ送信ノード10と対称鍵を交換することができる。前記対称鍵の交換方法は、従来より知られている多様なアルゴリズムが活用され得るのはもちろんであり、上述した第1量子チャネル40を介してQKDを行って特定の長さのビット列を共有する方式を活用できる。
【0052】
上述した実施形態によれば、信頼ノード20がメッセージ送信ノード10およびメッセージ受信ノード30とQKDを行うことによって、秘密鍵を共有することができ、それぞれの量子チャネル40,50の損失率を算定することができる。さらに、信頼ノード20はメッセージ送信ノード10およびメッセージ受信ノード30とQKDを行って共有されたビット列のうち一部を公開することによって各量子チャネル40,50の誤り率を算定することができる。
【0053】
一実施形態によれば、信頼ノード20は第1メッセージを暗号化した第1暗号化メッセージをメッセージ送信ノード10から受信して復号化した後、前記第1メッセージを再び2次的に暗号化した第2暗号化メッセージをメッセージ受信ノード30に送信し得る。ここで、第1暗号化メッセージと第2暗号化メッセージの送受信はパブリックチャンネル(Public channel)を用いて行われ得る。ここで、パブリックチャンネルは、例えば、従来より知られているTCP/IPプロトコルを活用できる。
【0054】
一実施形態によれば、信頼ノード20は暗号化された第1メッセージの検証のための署名を生成できる。ここで、署名生成方法としてはpartial QKDを活用できる。
【0055】
例えば、信頼ノード20はメッセージ送信ノード10と後処理過程が含まれないpartial QKDを行うことによってn*L長のビット列を交換(共有)できる。ここで、メッセージ送信ノード10はn*L長のビット列を第1メッセージ送信ノード署名として活用できる。あるいは、メッセージ送信ノード10はn*L長のビット列のうち一部のみを第1メッセージ送信ノード署名として活用できる。信頼ノード20も生成されたn*L長のビット列を第1信頼ノード署名として活用するか、n*L長のビット列のうちL長のビット列のみをランダムに抽出して第1信頼ノード署名として活用できる。
【0056】
信頼ノード20は前記メッセージ送信ノード10とpartial QKDを行った後、メッセージ受信ノード30とpartial QKDを行ってL長のビット列を共有し得る。ここで、メッセージ受信ノード30はL長のビット列を第1メッセージ受信ノード署名として活用できる。あるいは、メッセージ受信ノード30はL長のビット列のうち一部のみを第1メッセージ受信ノード署名として活用できる。信頼ノード20も生成されたL長のビット列を第2信頼ノード署名として活用するか、L長のビット列のうち一部のみを第2信頼ノード署名として活用できる。
【0057】
一実施形態によれば、信頼ノード20はメッセージ送信ノード10とのpartial QKD過程で生成されたn*L長のビット列のうち(n-1)*L長のビット列をメッセージ受信ノード30とのpartial QKDを行うために用いることができる。ここで、(n-1)*L長のビット列はメッセージ受信ノード30とのpartial QKD過程で光子の符号化をするためのビット列として活用できる。
【0058】
信頼ノード20はメッセージ送信ノード10およびメッセージ受信ノード30との関係で生成された署名を検証し得る。
【0059】
一実施形態によれば、信頼ノード20はメッセージ送信ノード10から暗号化された第1メッセージを受信し得る。ここで、暗号化された第1メッセージは、メッセージ送信ノード10が第1メッセージおよび第1メッセージ送信ノード署名を共有された第1秘密鍵で暗号化したメッセージであり得る。ここで、第1メッセージ送信ノード署名は第1長のメッセージ送信ノードビット列であり得、共有された第1秘密鍵はQKD方式で共有された第3長のビット列から抽出されて生成されたものであり得る。
【0060】
一実施形態によれば、信頼ノード20は共有された第1秘密鍵を用いて暗号化された第1メッセージを復号化し得る。ここで、共有された第1秘密鍵は前述のようにQKD方式で共有された第3長のビット列から抽出されて生成されたものであり得る。
【0061】
一実施形態によれば、信頼ノード20は保管中の第1信頼ノード署名を用いてメッセージ送信ノード10から受信した暗号化された第1メッセージを検証することができる。ここで、第1信頼ノード署名は生成されたn*L長のビット列のうちランダムに抽出して保管されたL長のビット列であり得る。
【0062】
一実施形態によれば、信頼ノード20は受信された暗号化された第1メッセージが検証された場合、暗号化された第1メッセージを復号化して復号化された第1メッセージおよび第2長の信頼ノードビット列を共有された第2秘密鍵で2次暗号化し、2次暗号化された第1メッセージをメッセージ受信ノード30に伝送することができる。
【0063】
一実施形態によれば、信頼ノード20はメッセージ受信ノード30から公開された第2長のメッセージ受信ノードビット列および復号化された第1長のメッセージ送信ノードビット列に基づいてメッセージ受信ノード30に前記メッセージ送信ノード10が正当な送信ノードであり、前記第1メッセージのための署名が有効であることを最終的に宣言することができる。
【0064】
上述した実施形態によれば、partial QKD方法を用いて信頼ノードにより3者間デジタル署名を生成することによって、量子もつれの概念を活用せず、暗号通信ネットワークがFull-mesh構造でない場合にも量子デジタル署名方法を用いることができる。
【0065】
信頼ノードを含むQKDに基づく量子デジタル署名システムのそれぞれの構成要素は機能的に区分される機能要素を示したものであり、実際の物理的環境では複数の構成要素が互いに統合される形態で実現できることに留意されたい。例えば、信頼ノード20の少なくとも一部は一つの物理的なコンピューティング装置内で互いに異なるロジック(logic)の形態で実現することができる。
【0066】
また、実際の物理的環境で前記それぞれの構成要素は複数の細部機能要素に分離される形態で実現されることもできる。例えば、信頼ノード20の第1機能は第1コンピューティング装置で実施され、第2機能は第2コンピューティング装置で 実施されることもできる。
【0067】
また、
図1に示すように、メッセージ送信ノード10およびメッセージ受信ノード30と信頼ノード20はネットワークを通じて通信することができる。ここで、前記ネットワークはローカルエリアネットワーク(Local Area Network;LAN)、ワイドエリアネットワーク(Wide Area Network;WAN)、移動通信網(mobile radio communication network)、Wibro(Wireless Broadband Internet)などのようなすべての種類の有線/無線ネットワークとして実現されることができる。
【0068】
これまで
図3を参照して本発明の一実施形態による信頼ノードを含むQKDに基づく量子デジタル署名システムとネットワーク環境について説明した。以下では、本発明の多様な実施形態による信頼ノードを含むQKDに基づく量子デジタル署名方法について詳細に説明する。理解の便宜を提供するために、
図3に示す環境を仮定して引き続き前記方法に係る説明をするが、当該技術分野の当業者であれば、信頼ノードを含むQKDに基づく量子デジタル署名システムの環境はいくらでも変形できることを理解できるであろう。
【0069】
以下に後述する方法の各段階はコンピューティング装置によって行われることができる。言い換えれば、前記方法の各段階は、コンピューティング装置のプロセッサによって実行される一つ以上のインストラクションとして実現されることができる。前記方法に含まれるすべての段階は一つの物理的なコンピューティング装置によって実行されることもできるが、前記方法の第1段階は第1コンピューティング装置によって行われ、前記方法の第2段階は第2コンピューティング装置によって行われることもできる。すなわち、前記方法の各段階はコンピューティングシステムによって行われることができる。以下では、他に言及がない限り、前記方法の各段階が信頼ノード20により行われることを仮定して引き続き説明する。ただし、説明の便宜上、前記方法に含まれる各段階の動作の主体はその記載を省略することもある。また、後述する方法は必要に応じて論理的に実行順序を変更できる範囲内で各動作の実行順序を変更できるのはもちろんである。
【0070】
図4は本発明の他の実施形態による信頼ノードを含むQKDに基づく量子デジタル署名方法のフローチャートである。
【0071】
S100段階で、信頼ノード20とメッセージ送信ノード10の間の第1秘密鍵が共有される。ここで、第1秘密鍵は対称鍵を意味する。また、第1秘密鍵はQKD方法で共有された第3長のビット列から抽出されて生成されたものであり得る。
【0072】
一実施形態によれば、信頼ノード20とメッセージ送信ノード10の間のQKD方法を用いて前記第1秘密鍵が共有される。
【0073】
以下、
図5を参照して、信頼ノード20とメッセージ送信ノード10の間の第1秘密鍵を共有する一実施形態を説明する。
【0074】
図5を参照すると、先に信頼ノード20およびメッセージ送信ノード10がn*L+k+1ビット列を共有し(S110)、共有されたn*L+k+1ビット列は共有された第3長のビット列を意味する。
【0075】
S120段階で、信頼ノード20は共有されたn*L+k+1ビット列のうちkビット列を公開する。
【0076】
S130段階で、信頼ノード20は公開されたkビット列を用いてメッセージ送信ノード10との第1誤り率(Sa)を算定する。ここで、第1誤り率(Sa)は信頼ノード20とメッセージ送信ノード10の間の第1量子チャネル40の誤り率を意味する。
【0077】
一実施形態によれば、n*L+k+1ビット列から抽出されたn*L長のビット列はメッセージ送信ノード10と信頼ノード20の間の第1秘密鍵であり得る。ここで第1秘密鍵は対称鍵を意味する。
【0078】
一実施形態によれば、n*L+k+1ビット列でのn値は第1量子チャネル40の損失率を考慮した値であり得る。ここで、第1量子チャネル40の損失率は信頼ノード20とメッセージ送信ノード10の間のQKD過程で算定された値であり得る。
【0079】
再び
図4を参照すると、S200段階で、信頼ノード20とメッセージ受信ノード30の間の第2秘密鍵が共有される。ここで、第2秘密鍵は対称鍵を意味する。ここで、第2秘密鍵は信頼ノード20とメッセージ受信ノード30の間のQKD方法を行って共有された第4長のビット列から抽出されて生成されたものであり得る。
【0080】
一実施形態によれば、信頼ノード20とメッセージ受信ノード30の間のQKD方法を用いて前記第2秘密鍵が共有される。
【0081】
以下、
図6を参照して、信頼ノード20とメッセージ受信ノード30の間の第2秘密鍵を共有する一実施形態について説明する。
【0082】
図6を参照すると、先に信頼ノード20およびメッセージ受信ノード30がL+k+1ビット列を共有し(S210)、共有されたL+k+1ビット列は共有された第4長のビット列であり得る。
【0083】
S220段階で、信頼ノード20は共有されたL+k+1ビット列のうちkビット列を公開する。
【0084】
S230段階で、信頼ノード20は公開されたkビット列を用いてメッセージ受信ノード30との第2誤り率(Sb)を算定する。ここで、第2誤り率(Sb)は信頼ノード20とメッセージ受信ノード30の間の第2量子チャネル50の誤り率を意味する。
【0085】
一実施形態で共有されたL+k+1ビット列のうちLビット列はメッセージ受信ノード30と信頼ノード20の間の共有された第2秘密鍵であり得る。ここで第2秘密鍵は対称鍵を意味する。
【0086】
一実施形態によれば、信頼ノード20とメッセージ送信ノード10の間の共有されたn*L+k+1ビット列、および信頼ノード20とメッセージ受信ノード30の間の共有されたL+k+1ビット列は第1量子チャネル40の損失率に基づいて決定される。
【0087】
一実施形態によれば、S120段階で公開されたkビット列およびS220段階で公開されたkビット列は互いに同じ長さを有する別個のビット列であり得る。
【0088】
上述した実施形態によれば、信頼ノード20がメッセージ送信ノード10およびメッセージ受信ノード30と後処理過程を含むQKDを行うことによって、秘密鍵を共有でき、それぞれの量子チャネル40,50の損失率を算定することができる。さらに、信頼ノード20はメッセージ送信ノード10およびメッセージ受信ノード30とQKDを行って共有されたビット列のうち一部を公開することによって各量子チャネル40,50の誤り率を算定することができる。
【0089】
再び
図4を参照すると、S300段階で信頼ノード20とメッセージ送信ノード10の間のpartial QKDが行われ得る。
【0090】
一実施形態によれば、信頼ノード20とメッセージ送信ノード10の間のpartial QKDを行うことによって信頼ノード20は第1信頼ノード署名を生成し、メッセージ送信ノード10は第1メッセージ送信ノード署名を生成できる。
【0091】
一実施形態によれば、信頼ノード20とメッセージ送信ノード10の間のn*Lビット列の長さだけのpartial QKDを行うことによって信頼ノード20はn*Lビット列を生成でき、メッセージ送信ノード10も同様にn*Lビット列を生成できる。
【0092】
ここで、信頼ノード20に生成されたn*Lビット列は第1長の信頼ノードビット列であり得、メッセージ送信ノード10に生成されたn*Lビット列は第1長のメッセージ送信ノードビット列であり得る。
【0093】
一実施形態によれば、第1長の信頼ノードビット列は第1信頼ノード署名であり得、第1長のメッセージ送信ノードビット列は第1メッセージ送信ノード署名であり得る。
【0094】
以下、
図7を参照して、信頼ノード20とメッセージ送信ノード10の間のpartial QKDを行う方法の一実施形態について説明する。
【0095】
先に、S310段階で、信頼ノード20はメッセージ送信ノード10とのpartial QKDを行うことによってn*L長のビット列を生成する。
【0096】
S320段階で、生成されたn*L長のビット列のうちL長のビット列がランダムに抽出される。
【0097】
一実施形態によれば、抽出されたL長のビット列は第1信頼ノード署名であり得る。
【0098】
一実施形態によれば、n*L長のビット列のうちL長のビット列が抽出され、残った(n-1)*L長のビット列はメッセージ受信ノード30とのpartial QKD過程に用いられ、これについては以下で
図8を参照して再び説明する。
【0099】
再び
図4を参照すると、S400段階で信頼ノード20とメッセージ受信ノード30の間のpartial QKDが行われ得る。
【0100】
一実施形態によれば、信頼ノード20とメッセージ受信ノード30の間のpartial QKDを行うことによって、信頼ノード20は第2信頼ノード署名を生成し、メッセージ受信ノード30は第1メッセージ受信ノード署名を生成できる。
【0101】
一実施形態によれば、信頼ノード20とメッセージ受信ノード30の間のLビット列の長さだけのpartial QKDを行うことによって、信頼ノード20はLビット列を生成でき、メッセージ受信ノード30も同様にL長のビット列を生成できる。
【0102】
ここで、信頼ノード20に生成されたL長のビット列は第2長の信頼ノードビット列であり得、メッセージ受信ノード30に生成されたL長のビット列は第2長のメッセージ受信ノードビット列であり得る。
【0103】
一実施形態によれば、第2長の信頼ノードビット列は第2信頼ノード署名であり得、第2長のメッセージ受信ノードビット列は第1メッセージ受信ノード署名であり得る。
【0104】
一実施形態によれば、S300段階での第1長およびS400段階での第2長の差(difference)は第1量子チャネル40の損失率に基づいて決定される。
【0105】
以下、
図8を参照して、信頼ノード20とメッセージ受信ノード30の間のpartial QKDを行う方法の一実施形態を説明する。
【0106】
先に、S410段階で、信頼ノード20はn*L長のビット列のうちL長のビット列が抽出され、残った(n-1)*L長のビット列をメッセージ受信ノード30とのpartial QKD過程に用いる。ここで、前記(n-1)*L長のビット列はメッセージ受信ノード30とのpartial QKDを行うための光子の符号化を行うのに用いる。
【0107】
S420段階で、信頼ノード20はメッセージ受信ノード30とのpartial QKDを行うことによってL長のビット列を生成する。また、メッセージ受信ノード30もL長のビット列を生成できる。
【0108】
ここで、メッセージ受信ノード30とのpartial QKD過程で前述したように信頼ノード20で保管中の(n-1)*L長のビット列が光子の符号化を行うのに用いられる。
【0109】
上述した実施形態によれば、信頼ノード20はメッセージ送信ノード10とpartial QKDを行って共有されたビット列を活用して、第1信頼ノード署名を生成すると同時にメッセージ受信ノード30とのpartial QKDをするにおいて光子の符号化を行うためのビット列を確保することができる。
【0110】
図9は本発明のまた他の実施形態によるQKDに基づく量子デジタル署名の検証方法を説明するためのフローチャートである。
【0111】
図9を参照すると、S500段階で、信頼ノード20はメッセージ送信ノード10から暗号化された第1メッセージを受信する。
【0112】
一実施形態によれば、暗号化された第1メッセージはメッセージ送信ノード10により第1メッセージおよび第1長のメッセージ送信ノードビット列を共有された第1秘密鍵で暗号化して生成されたものであり得る。
【0113】
ここで、第1長のメッセージ送信ノードビット列はメッセージ送信ノード10と信頼ノード20の間のpartial QKDを行って生成されたn*L長のビット列であり得、第1長のメッセージ送信ノードビット列は第1メッセージ送信ノード署名であり得る。
【0114】
ここで、共有された第1秘密鍵は信頼ノード20とメッセージ送信ノード10の間のQKDを行って共有されたn*L+k+1長のビット列のうち抽出されたn*L長のビット列であり得る。
【0115】
一実施形態によれば、前記共有された第1秘密鍵は共有された対称鍵を意味する。ここで、信頼ノード20およびメッセージ送信ノード10は従来より知られている多様なアルゴリズムを活用した対称鍵を共有することができる。
【0116】
S600段階で、信頼ノード20は暗号化された第1メッセージを検証する。
【0117】
一実施形態によれば、先に信頼ノード20は共有された第1秘密鍵を用いて受信された暗号化された第1メッセージを復号化でき、復号化の結果として復号化された第1メッセージおよび復号化された第1長のメッセージ送信ノードビット列を抽出することができる。
【0118】
ここで、復号化された第1メッセージはメッセージ送信ノード10により暗号化された第1メッセージを生成するために用いられた第1メッセージと同じメッセージであり得、復号化された第1長のメッセージ送信ノードビット列は暗号化された第1メッセージを生成するために用いられた第1長のメッセージ送信ノードビット列と同じビット列であり得る。
【0119】
一実施形態によれば、信頼ノード20は暗号化された第1メッセージを復号化した後に前記復号化された第1長のメッセージ送信ノードビット列と前記第1-1長の信頼ノードビット列を比較して前記受信された暗号化された第1メッセージが正当な送信ノードから送信されたものであるかを検証することができる。
【0120】
ここで、第1-1長の信頼ノードビット列は第1長の信頼ノードビット列に基づいてランダムに抽出された第1信頼ノード署名であり得、第1-1長はL長のビット列であり得、第1長はn*L長のビット列であり得る。
【0121】
以下、
図10を参照して、暗号化された第1メッセージを検証する方法の一実施形態について説明する。
【0122】
S610段階で、信頼ノード20は第1メッセージ送信ノード署名と第1信頼ノード署名の間の不一致ビット数が第1誤り率(Sa)値未満であるかを判定する。
【0123】
ここで、第1メッセージ送信ノード署名は、メッセージ送信ノード10が信頼ノード20とpartial QKDを行って生成された第1長の送信ノードビット列であり得、ここで、第1長の送信ノードビット列はn*L長のビット列であり得る。
【0124】
また、第1信頼ノード署名は、信頼ノード20がメッセージ送信ノード10とpartial QKDを行って生成された第1長の信頼ノードビット列から抽出された第1-1長の信頼ノードビット列であり得、ここで、第1長の信頼ノードビット列はn*L長のビット列であり得、第1-1長の信頼ノードビット列はL長のビット列であり得る。
【0125】
また、第1誤り率(Sa)は信頼ノード20とメッセージ送信ノード10の間の第1量子チャネル40の誤り率であり得る。
【0126】
第1メッセージ送信ノード署名と第1信頼ノード署名の間の不一致ビット数が第1誤り率(Sa)以上であると判断された場合、S630段階で第1メッセージが信頼できないものと確認される。
【0127】
第1メッセージが信頼できないことは、第三者の盗聴およびハッキングなどによって第1メッセージが信頼できなくなったことを意味する。
【0128】
第1メッセージ送信ノード署名と第1信頼ノード署名の間の不一致ビット数が第1誤り率(Sa)未満であると判断された場合、S620段階で第1メッセージが信頼できると判断することができる。ここで、第1メッセージが信頼できることは、第1メッセージが正当な送信者から送信されたものと確認されることを意味する。
【0129】
再び
図9を参照すると、S700段階で、受信された暗号化された第1メッセージが検証された場合、復号化された第1メッセージおよび第2長の信頼ノードビット列を共有された第2秘密鍵で2次暗号化し、2次暗号化された第1メッセージをメッセージ受信ノード30に伝送する。
【0130】
ここで、復号化された第1メッセージはメッセージ送信ノード10により暗号化された第1メッセージを生成するために用いられた第1メッセージと同じメッセージであり得る。
【0131】
また、第2長の信頼ノードビット列は信頼ノード20がメッセージ受信ノード30とpartial QKDを行って生成されたL長のビット列であり得る。
【0132】
また、共有された第2秘密鍵は信頼ノード20とメッセージ受信ノード30の間のQKD方法で共有された第4長のビット列から抽出されて生成されたものであり得、L長のビット列であり得る。
【0133】
S800段階で、メッセージ受信ノード30により受信された2次暗号化された第1メッセージが正当な送信者から送信されたものであるかを検証する。
【0134】
以下、
図11を参照して、2次暗号化された第1メッセージを検証する方法の一実施形態について説明する。
【0135】
S810段階で、メッセージ受信ノード30は第1メッセージ受信ノード署名と第2信頼ノード署名の間の不一致ビット数が第2誤り率(Sb)値未満であるかを判定する。
【0136】
ここで、第1メッセージ受信ノード署名はメッセージ受信ノード30が信頼ノード20とpartial QKDを行って生成された第2長の受信ノードビット列であり得、ここで、第2長の受信ノードビット列はL長のビット列であり得る。
【0137】
また、第2信頼ノード署名は、信頼ノード20がメッセージ受信ノード30とpartial QKDを行って生成された第2長の信頼ノードビット列であり得、ここで、第2長の信頼ノードビット列はL長のビット列であり得る。
【0138】
また、第2誤り率(Sb)は信頼ノード20とメッセージ受信ノード30の間の第2量子チャネル50の誤り率であり得る。
【0139】
第1メッセージ受信ノード署名と第2信頼ノード署名の間の不一致ビット数が第2誤り率(Sb)以上であると判断された場合、S840段階で第1メッセージが信頼できないものと確認される。
【0140】
第1メッセージが信頼できないことは、第三者の盗聴およびハッキングなどによって第1メッセージが信頼できなくなったことを意味する。
【0141】
第1メッセージ受信ノード署名と第2信頼ノード署名の間の不一致ビット数が第2誤り率(Sb)未満であると判断された場合、S820段階で第1メッセージが信頼できると判断することができる。ここで、第1メッセージが信頼できることは、第1メッセージが正当な送信者から送信されたものと確認されることを意味する。
【0142】
S830段階で、メッセージ受信ノード30が第1メッセージ受信ノード署名を公開ボード(public board)に公開する。
【0143】
ここで、公開ボード(public board)には、各ノードが公開を所望する情報が誰でも見ることができるように公開され、公開された情報は変調できない情報であり得る。公開ボードの実現は、メッセージ認証コードとエンティティ認証方法などを用いる既に公知された多様な方法で実現することができる。
【0144】
例えば、本発明での第1メッセージが公開ボードに公開された場合、第1メッセージは秘密情報でない誰でも見ることができる情報となり、変調できない情報になる。すなわち、第1メッセージが労働契約書のような秘密保持を必要としない情報である場合、公開ボードに公開できる。
【0145】
再び
図9を参照すると、S900段階で、信頼ノード20によって第1メッセージに対する最終検証が行われる。
【0146】
以下、
図12を参照して、第1メッセージに対する最終検証方法の一実施形態を説明する。
【0147】
図12を参照すると、S910段階で、信頼ノード20はメッセージ受信ノード30から公開された第1メッセージ受信ノード署名と第1メッセージ送信ノード署名の間の不一致ビット数が第1誤り率(Sa)値と第2誤り率(Sb)値を合計した値未満であるかをどうかを判定することができる。
【0148】
ここで、メッセージ受信ノード30から公開された第1メッセージ受信ノード署名は第2長のメッセージ受信ノードビット列であり得、ここで、第2長のメッセージ受信ノードビット列はL長のビット列であり得る。
【0149】
S930段階で、メッセージ受信ノード30から公開された第1メッセージ受信ノード署名と第1メッセージ送信ノード署名の間の不一致ビット数が第1誤り率(Sa)と第2誤り率(Sb)を合計した値以上であると判定された場合、第1メッセージに対する署名が有効でないと宣言される。
【0150】
ここで、第1メッセージに対する署名が有効でないことが宣言されるのは、信頼ノード20が第1メッセージに対する第1メッセージ送信ノード署名または第1メッセージ受信ノード署名が有効でないことを宣言することであり得る。
【0151】
S920段階で、メッセージ受信ノード30から公開された第1メッセージ受信ノード署名と第1メッセージ送信ノード署名の間の不一致ビット数が第1誤り率(Sa)と第2誤り率(Sb)を合計した値未満であると判定された場合、第1メッセージに対する署名が有効であると最終的に宣言される。
【0152】
ここで、第1メッセージに対する署名が有効であることが最終的に宣言されるのは、信頼ノード20が第1メッセージに対する第1メッセージ送信ノード署名および第1メッセージ受信ノード署名が有効であることをメッセージ受信ノード30に最終的に宣言することであり得る。
【0153】
上述した実施形態によれば、partial QKD方法を用いて信頼ノードを介して3者間デジタル署名を生成することによって、量子もつれ概念を用いることなく暗号通信ネットワークがFull-mesh構造でない場合にも既存のQKDシステムを活用してソフトウェアによって量子デジタル署名方法を実現することができる。
【0154】
一方、本発明の前記実施形態による信頼ノードを含むQKDに基づく量子デジタル署名方法は、有線および無線インフラストラクチャ保護技術、認証接続技術、および量子暗号ネットワーク装備など量子暗号を用いる多様なセキュリティー通信分野に適用することができる。特に、信頼ノードを含むQKDに基づく量子デジタル署名方法は、例えば電子メール、契約書、あるいは複雑な暗号化プロトコルにより送受信されるデータなどのような多様なの種類のメッセージに対する認証機能のために使用できる。また、出処が明確な認証された文書であるかをを確認するために用いることができ、署名者の身元を保障するために用いることができる。また、多様なプログラムでセキュリティーの水準が高い証明書を使用してデジタル署名を行うために用いることができる。
【0155】
図13は本発明のいくつかの実施形態によるコンピューティングシステムのハードウェア構成図である。
図13に示すコンピューティングシステム1000は、例えば
図3を参照して説明した信頼ノード20を含むコンピューティングシステムを指すものであり得、メッセージ送信ノード10またはメッセージ受信ノード30を含むコンピューティングシステムを指すものであり得る。コンピューティングシステム1000は一つ以上のプロセッサ1100、システムバス1600、通信インターフェース1200、プロセッサ1100によって行われるコンピュータープログラム1500をロード(load)するメモリ1400と、コンピュータープログラム1500を保存するストレージ1300を含むことができる。
【0156】
プロセッサ1100はコンピューティングシステム1000の各構成の全般的な動作を制御する。プロセッサ1100は本発明の多様な実施形態による方法/動作を実行するための少なくとも一つのアプリケーションまたはプログラムに対する演算を行う。メモリ1400は各種データ、命令および/または情報を保存する。メモリ1400は本発明の多様な実施形態による方法/動作を実行するためにストレージ1300から一つ以上のコンピュータープログラム1500をロード(load)する。バス1600はコンピューティングシステム1000の構成要素間の通信機能を提供する。通信インターフェース1200はコンピューティングシステム1000のインターネット通信を支援する。ストレージ1300は一つ以上のコンピュータープログラム1500を非一時的に保存する。コンピュータープログラム1500は本発明の多様な実施形態による方法/動作が実装された一つ以上のインストラクション(instructions)を含むことができる。コンピュータープログラム1500がメモリ1400にロードされれば、プロセッサ1100は前記一つ以上のインストラクションを実行させることによって本発明の多様な実施形態による方法/動作を行い得る。
【0157】
いくつかの実施形態で、コンピュータープログラム1500は、例えば信頼ノードによって行われる方法であって、メッセージ送信ノードと第1秘密鍵を共有する動作、メッセージ受信ノードと第2秘密鍵を共有する動作、前記メッセージ送信ノードとpartial QKD(Quantum Key Distribution)を行うことによって第1信頼ノード署名を生成する動作、前記メッセージ受信ノードとpartial QKDを行うことによって第2信頼ノード署名を生成する動作および前記共有された第1秘密鍵、前記共有された第2秘密鍵、前記第1信頼ノード署名および前記第2信頼ノード署名を用いて第1メッセージの検証を行う動作を行い得る。
【0158】
これまで
図1ないし
図13を参照して本発明の多様な実施形態およびその実施形態による効果を言及した。本発明の技術的思想による効果は以上で言及した効果に制限されず、言及されていないまた他の効果は以下の記載から通常の技術者に明確に理解されるものである。
【0159】
これまで説明された本発明の技術的思想はコンピュータ読み取り可能な媒体上にコンピュータ読み取り可能なコードとして実現されることができる。前記コンピュータ読み取り可能な記録媒体に記録された前記コンピュータープログラムは、インターネットなどのネットワークを通じて他のコンピューティング装置に転送されて前記他のコンピューティング装置に実装することができ、これにより前記他のコンピューティング装置で使用できる。
【0160】
図面において動作は特定の順序で示されるが、これは、所望の結果を達成するために、そのような動作が示される特定の順序または連続した順序で実行されること、又は全ての示される動作が実行されることを必要とするものとして理解されるべきではない。特定の状況では、マルチタスクおよび並列処理が有利である場合もある。以上、添付する図面を参照して本発明の実施形態について説明したが、本発明が属する技術分野における通常の知識を有する者は、その技術的思想や必須の特徴を変更せず、本発明が他の具体的な形態でも実施できることを理解することができる。したがって、上記一実施形態はすべての面で例示的なものであり、限定的なものではないと理解しなければならない。本発明の保護範囲は以下の特許請求の範囲によって解析されるべきであり、それと同等の範囲内にあるすべての技術思想は、本発明によって定義される技術的思想の権利範囲に含まれると解釈されるべきである。