IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 大日本印刷株式会社の特許一覧

特開2024-141784電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラム
<>
  • 特開-電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラム 図1
  • 特開-電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラム 図2
  • 特開-電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラム 図3
  • 特開-電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラム 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024141784
(43)【公開日】2024-10-10
(54)【発明の名称】電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラム
(51)【国際特許分類】
   H04L 9/10 20060101AFI20241003BHJP
【FI】
H04L9/10 A
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023053618
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】000002897
【氏名又は名称】大日本印刷株式会社
(74)【代理人】
【識別番号】110000958
【氏名又は名称】弁理士法人インテクト国際特許事務所
(74)【代理人】
【識別番号】100120189
【弁理士】
【氏名又は名称】奥 和幸
(72)【発明者】
【氏名】乙田 早希
(57)【要約】
【課題】署名検証にかかる検証時間を低減することが可能な電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラムを提供する。
【解決手段】ICチップ1は、外部端末2から秘密鍵を保存させるための書き込みコマンドの受信に応じて、保存要否フラグを参照し当該保存要否フラグが保存要を示す場合、受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けてNVM13の所定の保存領域に保存させる一方、保存要否フラグが保存否を示す場合、公開鍵を保存させずに受信された秘密鍵をNVM13の所定の保存領域に保存させる。
【選択図】図3
【特許請求の範囲】
【請求項1】
公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶する電子情報記憶媒体であって、
外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記電子情報記憶媒体の所定の保存領域に保存させるためのコマンドを受信する受信手段と、
前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させる保存手段と、
を備えることを特徴とする電子情報記憶媒体。
【請求項2】
前記保存要否情報が保存要を示す場合、前記受信された秘密鍵に基づいて前記公開鍵を生成する生成手段を更に備え、
前記保存手段は、前記保存要否情報が保存要を示す場合、前記受信された秘密鍵と前記生成手段により生成された公開鍵とを対応付けて前記保存領域に保存させることを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項3】
前記受信手段は、前記秘密鍵とともに当該秘密鍵と鍵ペアをなす公開鍵を受信し、
前記保存手段は、前記保存要否情報が保存要を示す場合、前記受信された秘密鍵と前記受信された公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記受信された秘密鍵を前記保存領域に保存させ、且つ前記受信された公開鍵を保存させずに破棄することを特徴とする請求項1に記載の電子情報記憶媒体。
【請求項4】
前記保存要否情報は、鍵種別ごとに区別されて記憶されており、
前記受信された秘密鍵の鍵種別を判定する判定手段を更に備え、
前記保存手段は、前記判定手段により判定された鍵種別に対応する前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させることを特徴とする請求項1乃至3の何れか一項に記載の電子情報記憶媒体。
【請求項5】
前記鍵種別は、RSA(Rivest-Shamir-Adleman)暗号方式または楕円曲線暗号方式に基づく鍵種別であり、
前記RSA暗号方式に基づく前記鍵種別に対応する前記保存要否情報は保存否を示し、前記楕円曲線暗号方式に基づく前記鍵種別に対応する前記保存要否情報は保存要を示すことを特徴とする請求項4に記載の電子情報記憶媒体。
【請求項6】
前記保存要否情報は、鍵識別子ごとに区別されて記憶されており、
前記受信されたコマンドから鍵識別子を取得する取得手段を更に備え、
前記保存手段は、前記取得手段により取得された鍵識別子に対応する前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させることを特徴とする請求項1乃至3の何れか一項に記載の電子情報記憶媒体。
【請求項7】
公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶するICチップであって、
外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記ICチップの所定の保存領域に保存させるためのコマンドを受信する受信手段と、
前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させる保存手段と、
を備えることを特徴とするICチップ。
【請求項8】
公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶する電子情報記憶媒体により実行される鍵保存方法であって、
外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記電子情報記憶媒体の所定の保存領域に保存させるためのコマンドを受信するステップと、
前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させるステップと、
を含むこと特徴とする鍵保存方法。
【請求項9】
公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶する電子情報記憶媒体に含まれるコンピュータを、
外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記電子情報記憶媒体の所定の保存領域に保存させるためのコマンドを受信する受信手段と、
前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させる保存手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、公開鍵暗号方式による暗号演算で用いられる鍵(鍵データ)を保存するICチップ(Integrated Circuit)等の技術分野に関する。
【背景技術】
【0002】
近年、RSA(Rivest-Shamir-Adleman cryptosystem)暗号方式に代わる公開鍵暗号方式として、例えば特許文献1に開示されるような楕円曲線暗号方式(ECC(Elliptic Curve Cryptography)暗号方式)が注目されている。楕円曲線暗号方式による暗号演算で用いられる鍵(秘密鍵及び公開鍵)の鍵長は、RSA暗号方式による暗号演算で用いられる鍵の鍵長よりも短いため、特に、メモリ容量が制限されるICチップにおいてその利用が拡大している。楕円曲線暗号方式を利用するICチップにおいても、RSA暗号方式を利用するICチップと同様、サイドチャネル攻撃などへの対策は必要である。サイドチャネル攻撃とは、暗号演算時に消費される電力や発生する電磁波に代表される副次的なサイドチャネル情報を利用して演算内容を推定する攻撃手法である。例えば、サイドチャネル攻撃への対策として、ICチップ内の秘密鍵を用いた暗号演算により生成された署名をICチップが当該秘密鍵と鍵ペアをなす公開鍵を用いて逆演算することで検証する検証方法が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2000-181351号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、メモリ容量が制限されるICチップにおいては、公開鍵暗号方式による暗号演算で用いられる秘密鍵及び公開鍵のうち、秘密鍵のみがICチップ内の不揮発性メモリに保存される場合がある。かかる場合において、ICチップは、上述した検証方法を実施するためには、署名検証の度に秘密鍵から公開鍵を生成する必要があるため、当該検証に時間を要し、ICチップと外部装置とのやり取り自体にも時間を要してしまうという課題がある。
【0005】
そこで、本発明は、このような課題等に鑑みてなされたものであり、署名検証にかかる検証時間を低減することが可能な電子情報記憶媒体、ICチップ、鍵保存方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、請求項1に記載の発明は、公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶する電子情報記憶媒体であって、外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記電子情報記憶媒体の所定の保存領域に保存させるためのコマンドを受信する受信手段と、前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させる保存手段と、を備えることを特徴とする。
【0007】
請求項2に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記保存要否情報が保存要を示す場合、前記受信された秘密鍵に基づいて前記公開鍵を生成する生成手段を更に備え、前記保存手段は、前記保存要否情報が保存要を示す場合、前記受信された秘密鍵と前記生成手段により生成された公開鍵とを対応付けて前記保存領域に保存させることを特徴とする。
【0008】
請求項3に記載の発明は、請求項1に記載の電子情報記憶媒体において、前記受信手段は、前記秘密鍵とともに当該秘密鍵と鍵ペアをなす公開鍵を受信し、前記保存手段は、前記保存要否情報が保存要を示す場合、前記受信された秘密鍵と前記受信された公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記受信された秘密鍵を前記保存領域に保存させ、且つ前記受信された公開鍵を保存させずに破棄することを特徴とする。
【0009】
請求項4に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体において、前記保存要否情報は、鍵種別ごとに区別されて記憶されており、前記受信された秘密鍵の鍵種別を判定する判定手段を更に備え、前記保存手段は、前記判定手段により判定された鍵種別に対応する前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させることを特徴とする。
【0010】
請求項5に記載の発明は、請求項4に記載の電子情報記憶媒体において、前記鍵種別は、RSA(Rivest-Shamir-Adleman)暗号方式または楕円曲線暗号方式に基づく鍵種別であり、前記RSA暗号方式に基づく前記鍵種別に対応する前記保存要否情報は保存否を示し、前記楕円曲線暗号方式に基づく前記鍵種別に対応する前記保存要否情報は保存要を示すことを特徴とする。
【0011】
請求項6に記載の発明は、請求項1乃至3の何れか一項に記載の電子情報記憶媒体において、前記保存要否情報は、鍵識別子ごとに区別されて記憶されており、前記受信されたコマンドから鍵識別子を取得する取得手段を更に備え、前記保存手段は、前記取得手段により取得された鍵識別子に対応する前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させることを特徴とする。
【0012】
請求項7に記載の発明は、公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶するICチップであって、外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記ICチップの所定の保存領域に保存させるためのコマンドを受信する受信手段と、前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させる保存手段と、を備えることを特徴とする。
【0013】
請求項8に記載の発明は、公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶する電子情報記憶媒体により実行される鍵保存方法であって、外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記電子情報記憶媒体の所定の保存領域に保存させるためのコマンドを受信するステップと、前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させるステップと、を含むこと特徴とする。
【0014】
請求項9に記載の発明は、公開鍵暗号方式による暗号演算で用いられる公開鍵の保存要否情報を記憶する電子情報記憶媒体に含まれるコンピュータを、外部装置から、前記公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵を前記電子情報記憶媒体の所定の保存領域に保存させるためのコマンドを受信する受信手段と、前記コマンドの受信に応じて、前記保存要否情報を参照し当該保存要否情報が保存要を示す場合、前記受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて前記保存領域に保存させる一方、前記保存要否情報が保存否を示す場合、前記公開鍵を保存させずに前記受信された秘密鍵を前記保存領域に保存させる保存手段として機能させることを特徴とする。
【発明の効果】
【0015】
本発明によれば、署名検証にかかる検証時間を低減することができる。
【図面の簡単な説明】
【0016】
図1】ICチップ1の概要構成例を示す図である。
図2】秘密鍵と公開鍵との対応関係の一例を示す図である。
図3】実施例1に係るICチップ1の書き込み処理の一例を示すフローチャートである。
図4】実施例2に係るICチップ1の書き込み処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、ICチップに対して本発明を適用した場合の実施の形態である。
【0018】
[1.ICチップ1の構成及び機能]
先ず、図1を参照して、本実施形態に係るICチップ1の構成及び機能について説明する。ICチップ1は、本発明の電子情報記憶媒体の一例を示す図である。ICチップ1は、例えば、クレジットカードやキャッシュカードなどのICカード、または、スマートフォンなどのモバイルデバイスに搭載される。ICカードもまた、電子情報記憶媒体の一例である。スマートフォンなどのモバイルデバイスの場合、ICチップ1は、モバイルデバイスに着脱可能な小型ICカードに搭載されてもよいし、eUICC(Embedded Universal Integrated Circuit Card)としてモバイルデバイスから容易に取り外しや取り換えができないように組み込み基板上に搭載されてもよい。
【0019】
図1は、ICチップ1の概要構成例を示す図である。ICチップ1は、図1に示すように、I/O回路11、RAM(Random Access Memory)12、NVM(Nonvolatile Memory)13、ROM(Read Only Memory)14、及びCPU(Central Processing Unit)15(コンピュータの一例)等を備える。I/O回路11は、外部端末2(外部装置の一例)との間のインターフェースを担う。なお、ICチップ1と外部端末2との間の通信は、非接触通信であってもよいし、接触通信であってもよい。非接触通信の場合、例えばICカードに搭載されたアンテナ(図示せず)を介してICチップ1と外部端末2との通信が行われる。外部端末2は、例えば、ICチップ1の製造工場における発行装置である。ここで、発行装置とは、ICチップ1に鍵(鍵データ)を書き込む装置である。
【0020】
NVM13は、フラッシュメモリ、または、Electrically Erasable Programmable Read-Only Memoryなどの不揮発性メモリである。NVM13またはROM14には、オペレーティングシステム、及びアプリケーション等のプログラム(本発明のプログラムを含む)が記憶される。本発明のプログラムは、CPU15を、本発明における受信手段、保存手段、生成手段、判定手段、及び取得手段等として機能させる。アプリケーションには、公開鍵暗号方式による暗号演算用アプリケーションが含まれる。かかる暗号演算用アプリケーションは、各種認証処理において署名生成や署名検証に利用される。
【0021】
また、NVM13の所定の保存領域(セキュア領域)には、公開鍵暗号方式による暗号演算で用いられる秘密鍵が保存される。例えば、RSA暗号演算方式による暗号演算で用いられる秘密鍵(以下、「RSA秘密鍵」ともいう)と楕円曲線暗号演算方式による暗号演算で用いられる秘密鍵(以下、「ECC秘密鍵」ともいう)との双方または何れか一方が保存される。RSA秘密鍵とECC秘密鍵とは鍵種別が異なる。つまり、RSA秘密鍵の鍵種別は、RSA暗号方式に基づく鍵種別であり、ECC秘密鍵は、楕円曲線暗号方式に基づく鍵種別である。なお、RSA秘密鍵が用途別に複数保存される場合もあるし、ECC秘密鍵が用途別に複数保存される場合もある。それぞれの秘密鍵には、固有の鍵ID(鍵識別子)が付与されて管理される。
【0022】
さらに、上記秘密鍵と鍵ペア(対)をなす公開鍵が当該秘密鍵に対応付けられてNVM13の所定の保存領域に保存される場合がある。かかる公開鍵は、上記秘密鍵と同様、公開鍵暗号方式による暗号演算で用いられる。公開鍵が秘密鍵に対応付けられてNVM13に保存されるかどうかは、当該公開鍵の保存要否フラグ(保存要否情報の一例)で管理される。かかる保存要否フラグは、予めNVM13に記憶される。ここで、保存要否フラグは、例えば、“1”(保存要)または“0”(保存否)を示す。保存要否フラグが“0”を示す場合、公開鍵は保存されない(つまり、秘密鍵だけが保存される)。一方、保存要否フラグが“1”を示す場合、公開鍵が秘密鍵に対応付けられてNVM13の所定の保存領域に保存される。
【0023】
また、NVM13に複数の秘密鍵が保存される場合、1つの保存要否フラグにより、それぞれの秘密鍵と鍵ペアをなす公開鍵の保存要否が決定されてもよい。或いは、保存要否フラグは、例えば、鍵IDごとに区別されて予め記憶(つまり、複数記憶)されてもよい。この場合、保存される秘密鍵に付与された鍵IDに対応する保存要否フラグにより、当該秘密鍵と鍵ペアをなす公開鍵の保存要否が決定される。また、保存要否フラグは、鍵種別ごとに区別されて記憶されてもよい。例えば、RSA公開鍵に対応する保存要否フラグは“0”(保存否)を示し、ECC公開鍵に対応する保存要否フラグは“1”(保存要)を示すように設定される。これは、RSA公開鍵の鍵長がECC公開鍵の鍵長よりも長いため、NVM13の使用容量を低減する趣旨である。
【0024】
図2は、秘密鍵と公開鍵との対応関係の一例を示す図である。図2の例は、ペアAとペアBのそれぞれの秘密鍵と公開鍵の対応関係を示す。このような対応関係を示す管理テーブル(対応表)がNVM13に記憶される。かかる管理テーブルにおいて、例えば、秘密鍵の保存先アドレス(つまり、上記保存領域のアドレス)と、公開鍵の保存先アドレスとが対応付けられる。なお、図示しないが、ペアAに対応する鍵IDとペアBに対応する鍵IDとは互いに異なる。図2の例によれば、秘密鍵“Pri-Key_1”に基づいて生成された公開鍵は“Pub-Key_1”として登録されており、秘密鍵“Pri-Key_1”を用いて生成された署名を検証(つまり、署名の正当性を検証)する場合、公開鍵“Pub-Key_1”を用いて署名検証が行われる。
【0025】
保存要否フラグに応じて、公開鍵を秘密鍵に対応付けて保存する場合、署名検証の度に公開鍵を生成する必要がないので、署名検証にかかる検証時間を低減することができる。一方、保存要否フラグに応じて、公開鍵を保存しない場合、メモリ容量を低減することができる。なお、秘密鍵に対応付けられて保存される公開鍵は、ICチップ1により生成される場合と、ICチップ1以外の所定のサーバにより生成されICチップ1に提供される場合とがある。前者の場合、公開鍵の保存要否フラグは、公開鍵の生成要否フラグを兼ねる。
【0026】
CPU15は、外部端末2から、公開鍵暗号方式による暗号演算で用いられる秘密鍵とともに当該秘密鍵をICチップ1の所定の保存領域に保存させるための書き込みコマンドをI/O回路11を介して受信する。当該書き込みコマンドは、鍵発行のための発行コマンドとして利用されるものである。当該書き込みコマンドは、CLA(命令クラス)、INS(命令コード)、P1及びP2(パラメータ)からなるヘッダ部と、発行対象(保存対象)となる秘密鍵を有するボディ部(当該秘密鍵の鍵ID及びデータ長Lcを含む)とからなるAPDU(Application Protocol Data Unit)により構成される。ただし、外部端末2によっては、秘密鍵及び公開鍵の鍵ペアを含む書き込みコマンドを送信する場合もある。この場合、秘密鍵とともに当該秘密鍵と鍵ペアをなす公開鍵が受信される。そして、CPU15は、書き込みコマンドの受信に応じて、保存要否フラグを参照し当該保存要否フラグが“1”を示す場合、当該書き込みコマンドで受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けて上記保存領域に保存(つまり、書き込み処理により鍵ペアを保存)させる。一方、CPU15は、保存要否フラグが“0”を示す場合、公開鍵を保存させずに、当該書き込みコマンドで受信された秘密鍵を上記保存領域に保存させる。
【0027】
ここで、書き込みコマンドに秘密鍵と鍵ペアとなる公開鍵が含まれず、且つ当該公開鍵の保存要否フラグが“1”を示す場合、CPU15は、当該書き込みコマンドで受信された秘密鍵に基づいて、当該秘密鍵と鍵ペアとなる公開鍵を生成し、当該秘密鍵と当該生成された公開鍵とを対応付けて上記保存領域に保存させる。一方、書き込みコマンドに秘密鍵と鍵ペアとなる公開鍵が含まれず、且つ当該公開鍵の保存要否フラグが“0”を示す場合、CPU15は、当該秘密鍵と鍵ペアとなる公開鍵を生成することなく、当該秘密鍵を上記保存領域に保存させる。また、書き込みコマンドに秘密鍵と鍵ペアとなる公開鍵が含まれ、且つ当該公開鍵の保存要否フラグが“1”を示す場合、CPU15は、当該書き込みコマンドで受信された秘密鍵と当該受信された公開鍵とを対応付けて上記保存領域に保存させる。一方、書き込みコマンドに秘密鍵と鍵ペアとなる公開鍵が含まれ、且つ当該公開鍵の保存要否フラグが“0”を示す場合、CPU15は、当該受信された秘密鍵を上記保存領域に保存させ、且つ当該受信された公開鍵を保存させずに破棄する。
【0028】
以上のようにして公開鍵が秘密鍵に対応付けられて記憶された場合、ICチップ1内の秘密鍵を用いた暗号演算により生成された署名の検証は、当該秘密鍵に対応付けられて保存されている公開鍵が用いられることで行われる。かかる署名検証が失敗した場合、つまり、秘密鍵により生成された署名データを公開鍵により復号できなかった場合、サイドチャネル攻撃が行われたものとみなして、エラー処理(例えば、ICチップ1の動作停止など)が行われる。なお、公開鍵が秘密鍵に対応付けられて記憶されなかった場合、ICチップ内の秘密鍵を用いた暗号演算により生成された署名の検証の際に、当該秘密鍵から公開鍵が生成され、生成された公開鍵が用いられて署名検証が行われる。
【0029】
[2.ICチップ1の動作]
次に、ICチップ1の動作について実施例1と実施例2とに分けて説明する。
【0030】
(実施例1)
先ず、図3を参照して、実施例1に係るICチップ1の動作について説明する。実施例1では、ICチップ1の製造工場において外部端末2(発行装置)が秘密鍵を含み公開鍵を含まない書き込みコマンドをICチップ1へ送信する場合の実施例である。図3は、実施例1に係るICチップ1の書き込み処理の一例を示すフローチャートである。図3に示す処理は、外部端末2から書き込みコマンドが受信された場合に開始される。
【0031】
図3に示す処理が開始されると、ICチップ1(CPU15)は、書き込みコマンドの受信に応じて、保存要否フラグを参照し当該保存要否フラグが“0”または“1”を示すかを判定する(ステップS1)。ここで、保存要否フラグが鍵IDごとにNVM13に記憶されている場合、ICチップ1は、書き込みコマンドに含まれる鍵IDに対応する保存要否フラグをNVM13から特定し、当該保存要否フラグが“0”または“1”を示すかを判定してもよい。或いは、保存要否フラグが鍵種別ごとにNVM13に記憶されている場合、ICチップ1は、書き込みコマンドで受信された秘密鍵の鍵種別に対応する保存要否フラグをNVM13から特定し、当該保存要否フラグが“0”または“1”を示すかを判定してもよい。なお、鍵種別は、例えば、書き込みコマンドに含まれるデータ長Lcに基づいて判定されるとよい。
【0032】
ステップS1において、保存要否フラグが“0”を示すと判定された場合(ステップS1:“0”)、処理はステップS5へ進む。一方、保存要否フラグが“1”を示すと判定された場合(ステップS1:“1”)、処理はステップS2へ進む。ステップS2では、ICチップ1は、書き込みコマンドで受信された秘密鍵から当該秘密鍵と鍵ペアとなる公開鍵を生成する。なお、秘密鍵から公開鍵を生成する方法については公知であるので、詳しい説明を省略する。次いで、ICチップ1は、上記受信された秘密鍵と上記生成された公開鍵との対応関係を示す管理テーブルを生成(作成)する(ステップS3)。こうして生成された管理テーブルは、NVM13に記憶される。次いで、ICチップ1は、ステップS2で生成された公開鍵を、書き込み処理によりNVM13の所定の保存領域に保存させ(ステップS4)、処理をステップS5に進める。
【0033】
ステップS5では、書き込みコマンドで受信された秘密鍵を、書き込み処理によりNVM13の所定の保存領域に保存させる。次いで、ICチップ1は、正常終了を示すレスポンスを外部端末2へ送信し(ステップS6)、図3に示す処理を終了する。
【0034】
(実施例2)
次に、図4を参照して、実施例2に係るICチップ1の動作について説明する。実施例2では、ICチップ1の製造工場において外部端末2が秘密鍵及び公開鍵を含む書き込みコマンドをICチップ1へ送信する場合の実施例である。図4は、実施例2に係るICチップ1の書き込み処理の一例を示すフローチャートである。図4に示す処理は、外部端末2から書き込みコマンドが受信された場合に開始される。
【0035】
図4に示す処理が開始されると、ICチップ1は、書き込みコマンドの受信に応じて、保存要否フラグを参照し当該保存要否フラグが“0”または“1”を示すかを判定する(ステップS11)。かかる判定は、実施例1と同様、鍵IDまたは鍵種別に対応する保存要否フラグが参照されてもよい。ステップS11において、保存要否フラグが“0”を示すと判定された場合(ステップS11:“0”)、書き込みコマンドで受信された公開鍵が破棄され(ステップS12)、処理はステップS15へ進む。一方、保存要否フラグが“1”を示すと判定された場合(ステップS11:“1”)、処理はステップS13へ進む。
【0036】
ステップS13では、ICチップ1は、上記受信された秘密鍵と上記受信された公開鍵との対応関係を示す管理テーブルを生成する。次いで、ICチップ1は、書き込みコマンドで受信された公開鍵を、書き込み処理によりNVM13の所定の保存領域に保存させ(ステップS14)、処理をステップS15に進める。
【0037】
ステップS15では、書き込みコマンドで受信された秘密鍵を、書き込み処理によりNVM13の所定の保存領域に保存させる。次いで、ICチップ1は、正常終了を示すレスポンスを外部端末2へ送信し(ステップS16)、図3に示す処理を終了する。
【0038】
以上説明したように、上記実施形態によれば、ICチップ1は、外部端末2から秘密鍵を保存させるための書き込みコマンドの受信に応じて、保存要否フラグを参照し当該保存要否フラグが保存要を示す場合、受信された秘密鍵と当該秘密鍵と鍵ペアをなす公開鍵とを対応付けてNVM13の所定の保存領域に保存させる一方、保存要否フラグが保存否を示す場合、公開鍵を保存させずに受信された秘密鍵をNVM13の所定の保存領域に保存させるように構成したので、保存要否フラグに応じて、ICチップ1内の秘密鍵を用いた暗号演算により生成された署名について公開鍵による署名検証のために要する検証時間を低減することができる。また、上記実施形態において、鍵IDごと、または鍵種別ごとに設定された保存要否フラグを用いる構成によれば、それぞれの保存要否フラグに応じて、公開鍵による署名検証のために要する検証時間の低減を図りながらも、NVM13の使用容量の低減を図り、NVM13をより有効に活用することができる。
【0039】
なお、上記実施形態において、秘密鍵及び公開鍵の保存はOTA(Over The Air)機能を利用することで実施されてもよい。この場合、OTA用サーバから、秘密鍵とともに当該秘密鍵を保存させるための書き込みコマンドが例えばSMS(Short Message Service)により、ICチップ1を搭載するモバイルデバイスへ送信される。そして、モバイルデバイスの制御部により当該書き込みコマンドのプロトコル変換が行われることで生成された書き込みコマンド(APDU)がICチップ1へ送信され、図3または図4に示す処理が実行される。
【符号の説明】
【0040】
1 ICチップ
2 外部端末
11 I/O回路
12 RAM
13 NVM
14 ROM
15 CPU
図1
図2
図3
図4