(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025024582
(43)【公開日】2025-02-20
(54)【発明の名称】電子情報記憶媒体、ICチップ、署名検証処理方法、及びプログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20250213BHJP
H04L 9/14 20060101ALI20250213BHJP
【FI】
H04L9/32 200B
H04L9/14
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023128788
(22)【出願日】2023-08-07
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】福永 正剛
(72)【発明者】
【氏名】工藤 隆史
(72)【発明者】
【氏名】高橋 憲介
(72)【発明者】
【氏名】嘉瀬 悠太
(57)【要約】
【課題】ハイブリッド証明書に付加された署名の検証を実施し、その検証結果に応じて安全な処理を行うことが可能な電子情報記憶媒体、ICチップ、署名検証処理方法、及びプログラムを提供する。
【解決手段】セキュアデバイス1は、外部端末2からハイブリッド証明書を含むコマンドを受信した場合に、非PQC公開鍵とPQC公開鍵とのうち少なくとも何れか一方により、ハイブリッド証明書に付加された少なくとも何れか一方の署名を検証し、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との双方が成功した場合と、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との何れか一方が成功した場合とで異なる設定を行う。
【選択図】
図3
【特許請求の範囲】
【請求項1】
暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能な電子情報記憶媒体であって、
第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶する記憶手段と、
前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証する検証手段と、
前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行う設定手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
前記設定手段は、さらに、前記第1の公開鍵による前記第1の署名の検証が成功した場合と、前記第2の公開鍵による前記第2の署名の検証が成功した場合とで異なる設定を行うことを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項3】
前記記憶手段に前記第1の公開鍵と前記第2の公開鍵とが記憶されている場合、前記検証手段は、前記第2の公開鍵により前記証明書データに付加された前記第2の署名を検証し、当該第2の署名の検証が失敗した場合に、前記第1の公開鍵により前記証明書データに付加された前記第1の署名を検証することを特徴とする請求項1または2に記載の電子情報記憶媒体。
【請求項4】
前記記憶手段に前記第1の公開鍵と前記第2の公開鍵とが記憶されている場合、前記検証手段は、前記第2の公開鍵により前記証明書データに付加された前記第2の署名を検証し、当該第2の署名の検証が成功した場合であって、前記第1の公開鍵を用いた署名検証が必要であると判定した場合に、前記第1の公開鍵により前記証明書データに付加された前記第1の署名を検証することを特徴とする請求項1または2に記載の電子情報記憶媒体。
【請求項5】
暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能なICチップであって、
第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶する記憶手段と、
前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証する検証手段と、
前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行う設定手段と、
を備えることを特徴とするICチップ。
【請求項6】
暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能な電子情報記憶媒体により実行される署名検証処理方法であって、
第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶手段に記憶するステップと、
前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証するステップと、
前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行うステップと、
を含むことを特徴とする署名検証処理方法。
【請求項7】
暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能な電子情報記憶媒体に含まれるコンピュータに、
第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶手段に記憶するステップと、
前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証するステップと、
前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行うステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、署名検証を行うことが可能なセキュアデバイス等の技術分野に関する。
【背景技術】
【0002】
近年、十分な規模の量子コンピュータが実用化されても安全性を保つことができる暗号(つまり、量子コンピュータに耐性のある暗号)として、耐量子計算機暗号(以下、「PQC(Post-Quantum Cryptography)」という)が知られている。しかし、PQCを用いた暗号アルゴリズムは計算のためのリソースが多く必要となる。そのため、署名(デジタル署名)及び署名検証が必要とされるシステムにおいて、PQCを用いた暗号アルゴリズム(例えば、CRYSTALS-Dilithium)と、非PQC(例えば、RSA(Rivest-Shamir-Adleman cryptosystem))を用いた暗号アルゴリズムとが並行して利用(稼働)される可能性がある。これに関連する技術として、特許文献1には、量子脆弱暗号システムから耐量子暗号システムへの移行中に、量子脆弱暗号システムと耐量子暗号システムとのハイブリッドデジタル証明書を使用することができる技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したように、PQCを用いた暗号アルゴリズムと、非PQCを用いた暗号アルゴリズムとが並行して利用されることを考慮すると、それぞれの暗号アルゴリズムによる署名が付加されたハイブリッド証明書がセキュアデバイス(セキュリティデバイス)により利用されることが想定される。
【0005】
そこで、本発明は、このような点などに鑑みてなされたものであり、ハイブリッド証明書に付加された署名の検証を実施し、その検証結果に応じて安全な処理を行うことが可能な電子情報記憶媒体、ICチップ、署名検証処理方法、及びプログラムを提供することを課題の一例とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能な電子情報記憶媒体であって、第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶する記憶手段と、前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証する検証手段と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行う設定手段と、を備えることを特徴とする。
【0007】
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記設定手段は、さらに、前記第1の公開鍵による前記第1の署名の検証が成功した場合と、前記第2の公開鍵による前記第2の署名の検証が成功した場合とで異なる設定を行うことを特徴とする。
【0008】
請求項3に記載の発明は、請求項1または2に記載の電子情報記憶媒体において、前記記憶手段に前記第1の公開鍵と前記第2の公開鍵とが記憶されている場合、前記検証手段は、前記第2の公開鍵により前記証明書データに付加された前記第2の署名を検証し、当該第2の署名の検証が失敗した場合に、前記第1の公開鍵により前記証明書データに付加された前記第1の署名を検証することを特徴とする。
【0009】
請求項4に記載の発明は、請求項1または2に記載の電子情報記憶媒体において、前記記憶手段に前記第1の公開鍵と前記第2の公開鍵とが記憶されている場合、前記検証手段は、前記第2の公開鍵により前記証明書データに付加された前記第2の署名を検証し、当該第2の署名の検証が成功した場合であって、前記第1の公開鍵を用いた署名検証が必要であると判定した場合に、前記第1の公開鍵により前記証明書データに付加された前記第1の署名を検証することを特徴とする。
【0010】
請求項5に記載の発明は、暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能なICチップであって、第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶する記憶手段と、前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証する検証手段と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行う設定手段と、を備えることを特徴とする。
【0011】
請求項6に記載の発明は、暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能な電子情報記憶媒体により実行される署名検証処理方法であって、第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶手段に記憶するステップと、前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証するステップと、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行うステップと、を含むことを特徴とする。
【0012】
請求項7に記載の発明は、暗号強度が異なる複数種類の暗号アルゴリズムのそれぞれにより暗号演算を行うことが可能な電子情報記憶媒体に含まれるコンピュータに、第1の暗号アルゴリズムで用いられる第1の公開鍵と、前記第1の暗号アルゴリズムよりも暗号強度が高い第2の暗号アルゴリズムで用いられる第2の公開鍵とのうち少なくとも何れか一方を記憶手段に記憶するステップと、前記第1の暗号アルゴリズムで用いられる第1の秘密鍵による第1の署名と、前記第2の暗号アルゴリズムで用いられる第2の秘密鍵による第2の署名とが付加された証明書データを含むコマンドを外部端末から受信した場合に、前記第1の公開鍵と前記第2の公開鍵とのうち少なくとも何れか一方により、前記証明書データに付加された少なくとも何れか一方の前記署名を検証するステップと、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との双方が成功した場合と、前記第1の公開鍵による前記第1の署名の検証と前記第2の公開鍵による前記第2の署名の検証との何れか一方が成功した場合とで異なる設定を行うステップと、を実行させることを特徴とする。
【発明の効果】
【0013】
本発明によれば、ハイブリッド証明書に付加された署名の検証を実施し、その検証結果に応じて安全な処理を行うことができる。
【図面の簡単な説明】
【0014】
【
図1】セキュアデバイス1のハードウェア構成例を示す図である。
【
図2】セキュアデバイス1と外部端末2との間のやり取りを示すシーケンス図である。
【
図3】セキュアデバイス1により実行される署名検証処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0015】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【0016】
[1.セキュアデバイス1の構成及び機能]
先ず、
図1を参照して、本実施形態に係るセキュアデバイス(セキュリティデバイス)1の構成及び機能について説明する。セキュアデバイス1は、本発明の電子情報記憶媒体の一例である。セキュアデバイス1の例として、ICチップ(Integrated Circuit)やHSM(Hardware Security Module)などが挙げられる。ICチップは、例えば、クレジットカード、キャッシュカード、またはマイナンバーカードなどのICカード、または、スマートフォンなどのモバイルデバイスに搭載される。スマートフォンなどのモバイルデバイスの場合、ICチップは、モバイルデバイスに着脱可能な小型ICカードに搭載されてもよいし、eUICC(Embedded Universal Integrated Circuit Card)としてモバイルデバイスから容易に取り外しや取り換えができないように組み込み基板上に搭載されてもよい。eUICCは、eSE(Embedded Secure Element)の一種である。
【0017】
図1は、セキュアデバイス1のハードウェア構成例を示す図である。セキュアデバイス1は、耐タンパ性を有しており、
図1に示すように、I/O回路11、RAM(Random Access Memory)12、NVM(Nonvolatile Memory)13、ROM(Read Only Memory)14、及びCPU(Central Processing Unit)15(コンピュータの一例)等を備える。セキュアデバイス1の耐タンパ性により、外部からの攻撃から鍵の機密性、完全性が守られ、鍵が不正に漏洩されてしまったり改ざんされてしまったりといったことを防ぐことができる。なお、セキュアデバイス1は、CPU15からの命令を受けて暗号演算を実行するコプロセッサを備えてもよい。I/O回路11は、外部端末2との間のインターフェースを担う。セキュアデバイス1と外部端末2との間の通信は、非接触通信であってもよいし、接触通信であってもよい。非接触通信の場合、例えばICカードまたはモバイルデバイスに搭載されたアンテナ(図示せず)を介してセキュアデバイス1と外部端末2との通信が行われる。外部端末2は、例えば認証機能を有する端末(例えば、決済端末)である。外部端末2の他の例として、スマートフォン等のモバイルデバイス、建物や車両のドアに設置された端末、施設や改札等のゲートに設置された端末、ETC(Electronic Toll Collection System)で利用されるETC端末などが挙げられる。なお、外部端末2は、セキュアデバイス1と同じモバイルデバイス内に搭載されたコントローラ(制御部)であってもよい。
【0018】
NVM13(記憶手段の一例)には、例えばフラッシュメモリが適用される。なお、NVM13は、「Electrically Erasable Programmable Read-Only Memory」であってもよい。NVM13には、複数のレコード領域が設けられる。NVM13のレコード領域には、アプリケーションにより読み出し可能なデータを含むファイル(例えば、EF(Elementary File))が格納される。かかるデータの例として、通信パラメータ、暗号化通信に用いられる設定データ、認証に用いられる鍵やPIN、個人情報等のデータが挙げられる。各ファイルには、固有の識別子(例えば、SFI(Short File Identifier))が付与される。
【0019】
また、NVM13またはROM14には、OS(Operating System)、及びアプリケーション等の各種プログラム(本発明のプログラムを含む)が記憶される。アプリケーションには、例えば、決済用アプリケーションや認証用アプリケーションが含まれる。さらに、アプリケーションには、非PQC(例えば、RSA)を用いた暗号アルゴリズム(第1の暗号アルゴリズムの一例、以下、「非PQCアルゴリズム」という)を規定する暗号演算用アプリケーションと、PQCを用いた暗号アルゴリズム(第2の暗号アルゴリズムの一例、以下、「PQCアルゴリズム」という)を規定する暗号演算用アプリケーションとが含まれる。
【0020】
ここで、PQCアルゴリズムは、非PQCアルゴリズムよりも暗号強度が高い。PQCアルゴリズムは、例えばRSAが利用している素因数分解問題とは異なり、量子コンピュータでも解くことが難しい格子問題(格子内の短いベクトルの検出の難しさに基づく)を利用したアルゴリズムである。また、NVM13のレコード領域には、非PQCアルゴリズム(例えば、RSA)で用いられる公開鍵(第1の公開鍵の一例、以下、「非PQC公開鍵」という)と、PQCアルゴリズム(例えば、CRYSTALS-Dilithium)で用いられる公開鍵(第2の公開鍵の一例、以下、「PQC公開鍵」という)とのうち少なくとも何れか一方を含むファイルが格納される。なお、非PQC公開鍵及びPQC公開鍵は、それぞれ、例えば外部端末2に固有の公開鍵である。
【0021】
CPU15は、本発明のプログラムにしたがって本発明における検証手段及び設定手段等として機能する。CPU15は、外部端末2からI/O回路11を介してハイブリッド証明書を含むコマンドを受信する。かかるコマンドは、例えば、VERIFY HYBRIDコマンドであり、CLA、INS、P1及びP2からなるヘッダ部と、Lc、Data、及びLeからなるボディ部とを含むコマンドAPDU(Application Protocol Data Unit)により構成される。ここで、Dataには、ハイブリッド証明書等がセットされる。ハイブリッド証明書は、非PQCアルゴリズムで用いられる秘密鍵(第1の秘密鍵の一例、以下、「非PQC秘密鍵」という)による署名A(第1の署名の一例)と、PQCアルゴリズムで用いられる秘密鍵(第2の秘密鍵の一例、以下、「PQC秘密鍵」という)による署名B(第2の署名の一例)とが付加された(換言すると、添付された)証明書データである。ここで、署名とは、例えば署名対象データ(例えば、平文や乱数)が秘密鍵により生成(例えば、暗号化された)データであり、当該署名は当該秘密鍵と鍵ペアをなす公開鍵により抽出(例えば、復号)することができる。
【0022】
CPU15は、外部端末2からハイブリッド証明書を含むコマンドを受信した場合に、非PQC公開鍵とPQC公開鍵とのうち少なくとも何れか一方により、ハイブリッド証明書に付加された少なくとも何れか一方の署名を検証する。例えば、NVM13に非PQC公開鍵とPQC公開鍵とが記憶されている場合、CPU15は、PQC公開鍵によりハイブリッド証明書に付加された署名Bを検証し、当該署名Bの検証が失敗した場合に、非PQC公開鍵によりハイブリッド証明書に付加された署名Aを検証する。ここで、検証が失敗した場合には、例えば、生成された署名対象データの抽出(例えば、復号)が失敗した場合、または抽出されたデータが署名対象データと一致しない場合が該当する。或いは、NVM13に非PQC公開鍵とPQC公開鍵とが記憶されている場合、CPU15は、PQC公開鍵によりハイブリッド証明書に付加された署名Bを検証し、当該署名Bの検証が成功した場合であって、且つ非PQC公開鍵による署名検証が必要であると判定した場合に、非PQC公開鍵によりハイブリッド証明書に付加された署名Aを検証する。或いは、NVM13に非PQC公開鍵のみが記憶されている場合、CPU15は、非PQC公開鍵によりハイブリッド証明書に付加された署名Aを検証する。或いは、NVM13にPQC公開鍵のみが記憶されている場合、CPU15は、PQC公開鍵によりハイブリッド証明書に付加された署名Bを検証する。
【0023】
CPU15は、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との双方が成功(署名A及びBの検証成功)した場合と、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との何れか一方が成功(署名A又はBのみ検証成功)した場合とで異なる設定を行う。CPU15は、さらに、非PQC公開鍵による署名Aの検証が成功した場合と、PQC公開鍵による署名Bの検証が成功した場合とで異なる設定を行ってもよい。ここで、異なる設定対象の例として、検証成功後のファイルへのアクセス権限や、検証成功後の通信暗号化レベルなどが挙げられる。
【0024】
ファイルへのアクセス権限は、例えば以降の通信(セキュアデバイス1と外部端末2との通信)において、NVM13のレコード領域に格納された複数のファイルのうちアクセスが許可(例えば、データの読み出しが許可)されるファイルの範囲を示す。例えば、署名A及びBの検証成功の場合はアクセス権限が“1”に設定され、これは、以降の通信においてアクセスが許可されるファイルの範囲はファイル01,02,03(つまり、3ファイル)を示す。一方、署名Bのみ検証成功の場合はアクセス権限が“2”に設定され、これは、以降の通信においてファイル01,02(つまり、2ファイル)へのアクセスが許可される。一方、署名Aのみ検証成功の場合はアクセス権限が“3”に設定され、これは、以降の通信においてファイル01のみへのアクセスが許可される。
【0025】
通信暗号化レベルは、例えば、セキュリティ強度を示す。セキュリティ強度とは、例えば、暗号アルゴリズムに対して最も効果的な攻撃が与えられた場合に、どの程度の計算量であれば解読可能であるかについての指標を示す。例えば、署名A及びBの検証成功の場合はセキュリティ強度が“128”に設定され、これは、以降の暗号化通信において利用される共通鍵暗号方式として“AES-128bit”を示す。これにより、署名A及びBの検証成功の場合、署名Aのみまたは署名Bのみ検証成功の場合よりもセキュリティ強度を下げることで、暗号処理に要する時間を短縮し、署名Aのみまたは署名Bのみ検証成功の場合よりも高速通信を実現することができる。一方、署名Bのみ検証成功の場合はセキュリティ強度が“192”に設定され、これは、以降の暗号化通信において利用される共通鍵暗号方式として“AES-192bit”を示す。これにより、署名Bのみ検証成功の場合、署名Aのみ検証成功の場合よりもセキュリティ強度を下げることで、暗号処理に要する時間を短縮し、署名Aのみ検証成功の場合よりも高速通信を実現することができる。一方、署名Aのみ検証成功の場合はセキュリティ強度が“256”に設定され、これは、以降の暗号化通信において利用される共通鍵暗号方式として“AES-256bit”を示す。これにより、署名Aのみ検証成功の場合、署名A及びBの検証成功の場合等よりも暗号処理に時間がかかり低速通信となるが、一定以上のセキュリティを担保することができる。
【0026】
なお、通信暗号化レベルは、セキュアデバイス1と外部端末2との間で共通のセッション鍵を用いた暗号通信の実施要否を示してもよい。例えば、署名A及びBの検証成功の場合または署名Bのみ検証成功の場合は暗号通信の実施否に設定される。一方、署名Aのみ検証成功の場合は暗号通信の実施要に設定され、以降の相互認証シーケンスにおいて例えばECDH(Elliptic curve Diffie-Hellman key exchange)による鍵交換、及びECDSA(Elliptic Curve Digital Signature Algorithm)による署名生成と署名検証により互いに共通するセッション鍵が生成される。また、署名Aまたは署名Bのみ検証成功の場合、必要なセキュリティレベルに応じて、署名A及びBの検証成功の場合と同様の設定がなされてもよい。
【0027】
[2.セキュアデバイス1の動作]
次に、
図2を参照して、本実施形態に係るセキュアデバイス1の動作について説明する。
図2は、セキュアデバイス1と外部端末2との間のやり取りを示すシーケンス図である。
図3は、セキュアデバイス1により実行される署名検証処理の一例を示すフローチャートである。なお、外部端末2は、例えば、署名対象データを外部端末2に固有の非PQC秘密鍵により署名Aを生成し、且つ署名対象データを外部端末2に固有のPQC秘密鍵により署名Bを生成し、生成した署名A及び署名Bが付加されたハイブリッド証明書を事前に生成しているものとする。
【0028】
図2において、外部端末2は、セキュアデバイス1との通信が開始され、初期化シーケンスが実施された後、署名対象データ及びハイブリッド証明書を含むVERIFY HYBRIDコマンドをセキュアデバイス1へ送信する(ステップS1)。セキュアデバイス1は、外部端末2からのVERIFY HYBRIDコマンドを受信すると、
図3に示す署名検証処理を実行する(ステップS2)。
図3に示す署名検証処理において、セキュアデバイス1は、NVM13に非PQC公開鍵とPQC公開鍵とが記憶されているか否かを判定する(ステップS21)。非PQC公開鍵とPQC公開鍵とが記憶されていると判定された場合(ステップS21:YES)、処理はステップS22へ進む。一方、非PQC公開鍵とPQC公開鍵とが記憶されていないと判定された場合(ステップS21:NO)、処理はステップS32へ進む。
【0029】
ステップS22では、セキュアデバイス1は、VERIFY HYBRIDコマンドに含まれるハイブリッド証明書に付加された署名BをPQC公開鍵により検証する。次いで、セキュアデバイス1は、PQC公開鍵による署名Bの検証が成功したか否かを判定する(ステップS23)。例えば、CPU15(またはコプロセッサ)は、VERIFY HYBRIDコマンドに含まれるハイブリッド証明書に付加された署名BをPQC公開鍵により抽出された署名対象データと、VERIFY HYBRIDコマンドに含まれる署名対象データとが一致する場合に署名Bの検証が成功したと判定する。PQC公開鍵による署名Bの検証が成功したと判定された場合(ステップS23:YES)、処理はステップS24へ進む。一方、PQC公開鍵による署名Bの検証が成功しないと判定された場合(ステップS23:NO)、処理はステップS29へ進む。
【0030】
ステップS24では、セキュアデバイス1は、非PQC公開鍵による署名検証が必要であるか否かを判定する。例えば、セキュリティ向上のため、非PQC公開鍵による署名検証が必要であることを示す情報がVERIFY HYBRIDコマンドに含まれている場合、非PQC公開鍵による署名検証が必要であると判定される。或いは、セキュリティ向上のため、セキュアデバイス1内に署名検証が必要であることを示す情報が設定(格納)されている場合、非PQC公開鍵による署名検証が必要であると判定される。非PQC公開鍵による署名検証が必要であると判定された場合(ステップS24:YES)、処理はステップS25へ進む。一方、非PQC公開鍵による署名検証が必要でないと判定された場合(ステップS24:NO)、処理はステップS27へ進む。
【0031】
ステップS25では、セキュアデバイス1は、VERIFY HYBRIDコマンドに含まれるハイブリッド証明書に付加された署名Aを非PQC公開鍵により検証する。次いで、セキュアデバイス1は、非PQC公開鍵による署名Aの検証が成功したか否かを判定する(ステップS26)。例えば、CPU15(またはコプロセッサ)は、VERIFY HYBRIDコマンドに含まれるハイブリッド証明書に付加された署名Aを非PQC公開鍵により抽出された署名対象データと、VERIFY HYBRIDコマンドに含まれる署名対象データとが一致する場合に署名Aの検証が成功したと判定する。非PQC公開鍵による署名Aの検証が成功したと判定された場合(ステップS26:YES)、処理はステップS27へ進む。一方、非PQC公開鍵による署名Aの検証が成功しないと判定された場合(ステップS26:NO)、処理はステップS28へ進む。
【0032】
ステップS27では、セキュアデバイス1は、署名A及びBの検証成功時に応じた処理を実行する。署名A及びBの検証成功時に応じた処理において、例えば、ファイルへのアクセス権限が“1”に設定され、正常終了(検証成功)を示すレスポンスAPDUが生成される。かかるレスポンスAPDUには、署名A及びBの検証成功を示す情報が含まれてもよい。一方、ステップS28では、セキュアデバイス1は、署名Bのみ検証成功時に応じた処理を実行する。署名Bのみ検証成功時に応じた処理において、例えば、ファイルへのアクセス権限が“2”に設定され、正常終了を示すレスポンスAPDUが生成される。かかるレスポンスAPDUには、署名Bのみ検証成功を示す情報が含まれてもよい。
【0033】
一方、ステップS29では、セキュアデバイス1は、VERIFY HYBRIDコマンドに含まれるハイブリッド証明書に付加された署名Aを非PQC公開鍵により検証する。次いで、セキュアデバイス1は、非PQC公開鍵による署名Aの検証が成功したか否かを判定する(ステップS30)。非PQC公開鍵による署名Aの検証が成功したと判定された場合(ステップS30:YES)、処理はステップS31へ進む。一方、非PQC公開鍵による署名Aの検証が成功しないと判定された場合(ステップS31:NO)、処理はステップS37へ進む。
【0034】
ステップS31では、セキュアデバイス1は、署名Aのみ検証成功時に応じた処理を実行する。署名Aのみ検証成功時に応じた処理において、例えば、ファイルへのアクセス権限が“3”に設定され、正常終了を示すレスポンスAPDUが生成される。かかるレスポンスAPDUには、署名Aのみ検証成功を示す情報が含まれてもよい。
【0035】
ステップS32では、セキュアデバイス1は、NVM13に非PQC公開鍵のみが記憶されているか否かを判定する。NVM13に非PQC公開鍵のみが記憶されていない(つまり、PQC公開鍵のみが記憶されている)と判定された場合(ステップS32:NO)、処理はステップS33へ進む。一方、NVM13に非PQC公開鍵のみが記憶されていると判定された場合(ステップS32:YES)、処理はステップS35へ進む。
【0036】
ステップS33では、セキュアデバイス1は、VERIFY HYBRIDコマンドに含まれるハイブリッド証明書に付加された署名BをPQC公開鍵により検証する。次いで、セキュアデバイス1は、PQC公開鍵による署名Bの検証が成功したか否かを判定する(ステップS34)。PQC公開鍵による署名Bの検証が成功したと判定された場合(ステップS34:YES)、上記と同様、署名Bのみ検証成功時に応じた処理が実行される(ステップS28)。一方、PQC公開鍵による署名Bの検証が成功しないと判定された場合(ステップS34:NO)、処理はステップS37へ進む。
【0037】
ステップS35では、セキュアデバイス1は、VERIFY HYBRIDコマンドに含まれるハイブリッド証明書に付加された署名Aを非PQC公開鍵により検証する。次いで、セキュアデバイス1は、非PQC公開鍵による署名Aの検証が成功したか否かを判定する(ステップS36)。非PQC公開鍵による署名Aの検証が成功したと判定された場合(ステップS36:YES)、上記と同様、署名Aのみ検証成功時に応じた処理が実行される(ステップS31)。一方、非PQC公開鍵による署名Aの検証が成功しないと判定された場合(ステップS36:NO)、処理はステップS37へ進む。ステップS37では、セキュアデバイス1は、エラー(検証失敗)を示すレスポンスAPDUを生成する。
【0038】
図2に戻り、セキュアデバイス1は、署名検証処理において生成されたレスポンスAPDUを外部端末2へ送信する(ステップS3)。外部端末2は、セキュアデバイス1からのレスポンスAPDUが検証成功を示す場合、所定のコマンド(例えば、SELECTコマンド、READ RECORDコマンドなど)をセキュアデバイス1へ送信する(ステップS4)。そして、セキュアデバイス1は、外部端末2からのコマンドを受信すると、署名検証処理における設定(例えば、署名A及びBの検証成功時の設定)にしたがって処理(例えば、レコードの読み出し処理)を実行する(ステップS5)。
【0039】
以上説明したように、上記実施形態によれば、セキュアデバイス1は、外部端末2からハイブリッド証明書を含むコマンドを受信した場合に、非PQC公開鍵とPQC公開鍵とのうち少なくとも何れか一方により、ハイブリッド証明書に付加された少なくとも何れか一方の署名を検証し、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との双方が成功した場合と、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との何れか一方が成功した場合とで異なる設定を行うように構成したので、セキュアデバイス1から鍵を出力することなく(セキュアデバイス1の内部で署名検証を実施しているため)、ハイブリッド証明書に付加された署名の検証の結果に応じて安全な処理を行うことができる。なお、上記実施形態において、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との双方が成功した場合に限り、セキュアデバイス1は、特定のデータを変更することが可能になるように設定を行ってもよい。また、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との双方が成功した場合に限り、セキュアデバイス1は、特定のデータに署名生成することが可能になるように設定を行ってもよい。或いは、非PQC公開鍵による署名Aの検証とPQC公開鍵による署名Bの検証との双方が成功した場合に限り、セキュアデバイス1は、セキュアデバイス1内の特定の機能を変更することが可能になるように設定を行ってもよい。
【符号の説明】
【0040】
1 セキュアデバイス
2 外部端末
11 I/O回路
12 RAM(
13 NVM
14 ROM
15 CPU