JP6340935B2 - Icチップ、異常検知処理方法、及びプログラム - Google Patents

Icチップ、異常検知処理方法、及びプログラム Download PDF

Info

Publication number
JP6340935B2
JP6340935B2 JP2014123546A JP2014123546A JP6340935B2 JP 6340935 B2 JP6340935 B2 JP 6340935B2 JP 2014123546 A JP2014123546 A JP 2014123546A JP 2014123546 A JP2014123546 A JP 2014123546A JP 6340935 B2 JP6340935 B2 JP 6340935B2
Authority
JP
Japan
Prior art keywords
abnormality detection
abnormality
value
chip
detection counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014123546A
Other languages
English (en)
Other versions
JP2016004371A (ja
Inventor
正剛 福永
正剛 福永
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2014123546A priority Critical patent/JP6340935B2/ja
Publication of JP2016004371A publication Critical patent/JP2016004371A/ja
Application granted granted Critical
Publication of JP6340935B2 publication Critical patent/JP6340935B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、外部からの攻撃等による異常を検知可能なICカードの技術に関する。
セキュリティ性が重要視されるICカードでは、外部からの攻撃などによる不正動作に対する防止手段を備えていなければならない。外部からの攻撃とは、ICカードに搭載されたICチップに誤動作を起こさせるための方法であり、代表的な攻撃方法としてDFA(Differential Fault Analysis)が知られている。この攻撃方法では、例えば、ICチップに対してレーザ照射を行って出力された誤演算結果を、正しい演算結果と比較して解析することにより、攻撃者はICチップ内部の情報を得ることが可能である。特許文献1には、レーザ照射により誤動作が発生する前に、確実にレーザ照射を検知して攻撃を回避する技術が開示されている。
特開2010−279003号公報
しかしながら、従来の技術では、攻撃を検知することはできても、システムリセットなどを実行して以降の動作を停止することしかできなかった。この場合、以降の動作を打ち切ることができるものの、再び最初から動作させてしまえば何度でも攻撃が実施できてしまうという問題がある。
本発明は、このような問題等を鑑みてなされたものであり、攻撃者が何度も攻撃を実施できないように以降の動作を制限することが可能なICチップ、異常検知処理方法、及びプログラムを提供することを目的とする。
上記課題を解決するために、請求項1に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタと、正常終了用カウンタとを備えるICチップであって、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新し、前記コマンド処理が正常終了した場合に、前記正常終了用カウンタの値を更新する制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、を備え、前記制御手段は、前記正常終了用カウンタの値が第2の閾値になった場合に、前記異常検知用カウンタの値をクリアすることを特徴とする。
請求項2に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、を備え、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。
請求項3に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、を備え、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。
請求項4に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、を備え、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。
請求項5に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、を備え、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。
請求項6に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタと、正常終了用カウンタとを備えるICチップにより行われる異常検知方法であって、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新し、前記コマンド処理が正常終了した場合に、前記正常終了用カウンタの値を更新するステップと、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、前記正常終了用カウンタの値が第2の閾値になった場合に、前記異常検知用カウンタの値をクリアするステップと、を含むことを特徴とする。
請求項7に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新するステップと、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、を含むことを特徴とする。
請求項8に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新するステップと、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、を含むことを特徴とする。
請求項9に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新するステップと、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻すステップと、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、を含むことを特徴とする。
請求項10に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新するステップと、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻すステップと、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、を含むことを特徴とする。請求項11に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタと、正常終了用カウンタとを備えるICチップに含まれるコンピュータを、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新し、前記コマンド処理が正常終了した場合に、前記正常終了用カウンタの値を更新する制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、前記制御手段は、前記正常終了用カウンタの値が第2の閾値になった場合に、前記異常検知用カウンタの値をクリアすることを特徴とする。請求項12に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。請求項13に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。請求項14に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。請求項15に記載の発明は、異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とする。
本発明によれば、攻撃者が何度も繰り返し攻撃を実施することを防ぎ、以降の動作を制限することができる。
ICカード1の概要構成例を示す図である。 実施例1において、コマンドが受信されたときの処理を示すフローチャートである。 (A)は、コマンドの重要度に応じて異常検知用カウンタの更新値を変化させる場合のコマンドと更新値との対応付け情報の一例を示す図である。(B)は、コマンドの重要度に応じて異常検知用カウンタの更新値を変化させる場合の異常検知用カウンタの更新処理の一例を示すフローチャートである。 (A)は、コマンド処理の対象データの種類の重要度に応じて異常検知用カウンタの更新値を変化させる場合の対象データの種類と更新値との対応付け情報の一例を示す図である。(B)は、コマンド処理の対象データの種類の重要度に応じて異常検知用カウンタの更新値を変化させる場合の異常検知用カウンタの更新処理の一例を示すフローチャートである。 実施例2において、コマンドが受信されたときの処理を示すフローチャートである。
以下、図面を参照して本発明の実施形態について詳細に説明する。
先ず、図1を参照して、ICカード1の概要構成及び機能について説明する。図1は、ICカード1の概要構成例を示す図である。なお、ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。なお、ICチップ1aは、通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
図1に示すように、ICカード1に搭載されるICチップ1aは、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、不揮発性メモリ13、及びI/O回路14を備えて構成される。不揮発性メモリ13としては、例えば、フラッシュメモリが適用される。或いは「Electrically Erasable Programmable Read-Only Memory」が適用されてもよい。I/O回路14は、外部端末2とのインターフェイスを担う。接触式のICチップ1aの場合、I/O回路14には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末との間で通信を行うための端子である。一方、非接触式のICチップ1aの場合、I/O回路14には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末2の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップ1aが通信機器に組み込まれる場合、外部端末2には通信機器の機能を担う制御部が該当する。
ROM11または不揮発性メモリ13には、複数の命令コードから構成されるプログラム、及び各種データが記憶されている。このプログラムには、例えば、OS、本発明のプログラム、アプリケーションプログラムが含まれる。また、各種データは、例えばISO/IEC7816−4によって定められたMF(Master File)、DF(Dedicated File)、及びEF(Elementary File)などから構成される階層構造を有する複数のファイルに格納される。MFは、ファイル構成において最上位に位置し、MFの下位階層にはDF及びEFが位置する。DFは、例えばアプリケーションプログラムごとに設けられる。EFは、例えば、DFに格納されるアプリケーションプログラムで使用される複数のデータを格納するレコードファイルである。また、EFは、IEF(内部基礎ファイル)とWEF(作業用基礎ファイル)に分けられる。IEFには、例えば、セキュリティのためのキー(鍵)データが格納される。WEFには、例えば、カード識別データなどの一般的なデータが格納される。
CPU10は、外部端末2から送信されたコマンドを受信すると、上記プログラムに従って当該コマンドに応じたコマンド処理(つまり、コマンドの処理)を実行する。ここで、コマンドは、例えば、APDU(Application Protocol Data Unit)として外部端末2から送信される。APDUとして送られるコマンドは、CLA部、INS部、P1部、P2部、Lc部、Data部、Le部から構成される。CLA部及びINS部は、コマンドの種類を示す情報を格納する。P1部及びP2部は、コマンド処理におけるパラメータを格納する。上記コマンド処理において、本発明の異常検知手段、制御手段、及び停止手段として機能する。具体的には、CPU10は、外部端末2からのコマンドに応じたコマンド処理の実行中に、異常を検知するための異常検知処理を行う。例えば、CPU10は、CRC(Cyclic Redundancy Check)のチェック、不揮発性メモリ13におけるアクセス先のアドレスのチェック、暗号演算結果のチェック等を行うことで外部からの攻撃などによる異常を検知する。なお、異常検知処理については公知の様々な技術を適用できるので詳しい説明を省略する。
CPU10は、異常が検知された場合に、異常検知用カウンタの値を更新(例えば、異常検知用カウンタの値に“1”を加算)し、ICチップ1aの動作を停止、またはICチップ1aにおいて起動中の特定のプログラム(例えば、当該コマンド処理に係る決済処理用のアプリケーションプログラム)の動作を停止する。ここで、異常検知用カウンタは、例えば不揮発性メモリ13に設けられ、異常が検知される度に更新される値(言い換えれば、異常検知回数)を保持する。また、CPU10は、異常検知用カウンタの値が、予め設定された第1の閾値になったか否かを所定のタイミングで判別しており、異常検知用カウンタの値が第1の閾値になった場合(つまり、閾値に到達した場合)に、ICチップ1aの動作を停止、またはICチップ1aにおいて起動中の特定のプログラムの動作を停止する。異常が検知された場合にのみ、異常検知用カウンタの値を更新するように構成すれば、カウンタの更新が最低限で済むため、高速に動作することができる。
一方、CPU10は、コマンド処理が正常終了した場合に、ダミーカウンタ(正常終了用カウンタの一例)の値を更新(例えば、ダミーカウンタの値に“1”を加算)するように構成してもよい。ここで、ダミーカウンタは、例えば不揮発性メモリ13に設けられ、正常終了される度に更新される値を保持する。ダミーカウンタは、異常検知用カウンタのダミーのカウンタである。これにより、例えば、外部からの攻撃による異常の検知または非検知に関わらず、不揮発性メモリ13への書き込みが発生するため、攻撃者が外部から電力などを解析したとしてもカウンタの更新タイミングが図りにくくなる。
なお、上記の例では、CPU10は、異常が検知された後に異常検知用カウンタの値を更新する例を示したが、異常が検知される前に異常検知用カウンタの値を更新するように構成してもよい。この場合、CPU10は、上記コマンド処理の実行前に、異常検知用カウンタの値を更新し、異常が検知されることなくコマンド処理が正常終了した場合に、異常検知用カウンタの値を更新前の値に戻す。このように構成すれば、例えば外部からの攻撃による異常が検知された際、確実にカウンタを更新することができる。
次に、ICチップ1aの動作について、実施例1と実施例2とに分けて説明する。
(実施例1)
先ず、実施例1において、ICチップ1aが外部端末2からコマンドを受信したときの処理について、図2を参照して説明する。図2は、実施例1において、コマンドが受信されたときの処理を示すフローチャートである。図2に示す処理は、外部端末2からコマンドが受信された場合に開始される。先ず、CPU10は、ICチップ1aの初期化を行う(ステップS1)。この初期化において、CPU10は、RAM12を特定の値でクリアし、不揮発性メモリ13に格納されているデータの完全性をチェックする。また、この初期化において、CPU10は、異常検知用カウンタ、及びダミーカウンタの値が壊れていないことを確認する。また、必要に応じて、CPU10は、ICチップ1a内で利用するタイマの動作を開始する。
次いで、CPU10は、異常検知用カウンタの値が、予め設定された第1の閾値であるか否かを判定する(ステップS2)。CPU10は、異常検知用カウンタの値が第1の閾値(例えば、5)である(つまり、第1の閾値に到達した)と判定した場合(ステップS2:YES)、エラー処理を行う(ステップS9)。このエラー処理において、CPU10は、ICチップ1aの動作を停止、またはICチップ1aにおいて起動中の特定のプログラムの動作を停止する。或いは、このエラー処理において、CPU10は、外部端末2へエラー応答を送信する。エラー応答は、ICチップ1a内でエラーが発生したことを示す。なお、CPU10は、ICチップ1aまたは上記特定のプログラムの動作を停止すると共に、外部端末2へエラー応答を送信してもよい。
一方、ステップS2において、CPU10は、異常検知用カウンタの値が第1の閾値でない(つまり、第1の閾値に達していない)と判定した場合(ステップS2:NO)、受信されたコマンドに応じたコマンド処理を開始する(ステップS3)。こうして開始されたコマンド処理の実行中に、CPU10は、異常が検知されたか否かを判定する(ステップS4)。異常が検知された場合(ステップS4:YES)、CPU10は、異常検知用カウンタの更新処理(ステップS5)を行った後、上述したエラー処理を行う(ステップS9)。一方、異常が検知されない場合(ステップS4:NO)、CPU10は、コマンド処理を終了する(ステップS6)。こうしてコマンド処理が正常終了すると、CPU10は、ダミーカウンタの値を更新(例えば、ダミーカウンタの値に“1”を加算)し(ステップS7)、外部端末2へレスポンスを送信(例えば、コマンド処理の結果を応答)する(ステップS8)。この後、図2に示す処理が終了され、次のコマンド受信の待機状態となる。なお、CPU10は、コマンド処理が正常終了した場合、ダミーカウンタの値を更新せずに、外部端末2へレスポンスを送信してもよい。
ところで、上記ステップS5における異常検知用カウンタの更新処理では、例えば、CPU10は、異常検知用カウンタの値に“1”を加算(カウントアップ)する。或いは、異常検知用カウンタの更新処理において、CPU10は、異常が検知されたときのコマンド処理に対応するコマンド(コマンドの種類でもよい)の重要度に応じて、異常検知用カウンタの更新値を変化させるように構成すると効果的である。或いは、異常検知用カウンタの更新処理において、CPU10は、異常が検知されたときのコマンド処理の対象データの種類の重要度に応じて、異常検知用カウンタの更新値を変化させるように構成しても効果的である。
図3(A)は、コマンドの重要度に応じて異常検知用カウンタの更新値を変化させる場合のコマンドと更新値との対応付け情報の一例を示す図である。この対応付け情報は、例えばテーブルとして不揮発性メモリ13に予め記憶されるか、或いはプログラム中に予め規定される。図3(A)に示す例では、コマンドの重要度に応じて更新値(この例では、加算値)が大きくなるように設定されている。例えば、“SELECT”コマンドの処理では、基本的には重要な情報を扱わないため、重要度は低く設定され、加算値は“1”に設定されている。また、“READ RECORD”コマンドの処理は、データを読み出す処理であり、時として重要なデータを扱うこともあるため、“SELECT”コマンドと比較すると重要度が高く設定され、加算値は“2”に設定されている。また、“VERIFY”コマンドは、認証に利用するコマンドであるため、コマンドの中では最も重要度が高く設定され、加算値は“5”に設定されている。また、上記以外のコマンドの処理は、重要な処理が存在しないと判断できるため、コマンドの中では最も重要度が低く設定され、加算値は“0”(すなわち、異常が検知されても異常検知用カウンタの値は加算されない)に設定されている。
図3(B)は、コマンドの重要度に応じて異常検知用カウンタの更新値を変化させる場合の異常検知用カウンタの更新処理の一例を示すフローチャートである。図3(B)に示すステップS51では、CPU10は、実行されたコマンド処理に対応するコマンド(つまり、受信されたコマンド)が、“SELECT”コマンドであるか否かを判定する。CPU10は、“SELECT”コマンドであると判定した場合(ステップS51:YES)、図3(A)に示す対応付け情報に従って、異常検知用カウンタの値に“1”を加算し(ステップS52)、ステップS9へ進む。一方、CPU10は、“SELECT”コマンドでないと判定した場合(ステップS51:NO)、ステップS53へ進む。
ステップS53では、CPU10は、実行されたコマンド処理に対応するコマンドが、“READ RECORD”コマンドであるか否かを判定する。CPU10は、“READ RECORD”コマンドであると判定した場合(ステップS53:YES)、図3(A)に示す対応付け情報に従って、異常検知用カウンタの値に“2”を加算し(ステップS54)、ステップS9へ進む。一方、CPU10は、“READ RECORD”コマンドでないと判定した場合(ステップS53:NO)、ステップS55へ進む。
ステップS55では、CPU10は、実行されたコマンド処理に対応するコマンドが、“VERIFY”コマンドであるか否かを判定する。CPU10は、“VERIFY”コマンドであると判定した場合(ステップS55:YES)、図3(A)に示す対応付け情報に従って、異常検知用カウンタの値に“5”を加算し(ステップS56)、ステップS9へ進む。一方、CPU10は、“VERIFY”コマンドでないと判定した場合(ステップS55:NO)、ステップS9へ進む。
図4(A)は、コマンド処理の対象データの種類の重要度に応じて異常検知用カウンタの更新値を変化させる場合の対象データの種類と更新値との対応付け情報の一例を示す図である。この対応付け情報は、例えばテーブルとして不揮発性メモリ13に予め記憶されるか、或いはプログラム中に予め規定される。図4(A)に示す例では、対象データの種類の重要度に応じて更新値(この例では、加算値)が大きくなるように設定されている。WEFは、認証なしでも読み出せるデータであるため、重要度は低く設定され、加算値は“1”に設定されている。また、IEFは、最も重要な情報であるため、重要度が最も高く設定され、加算値は“5”に設定されている。制御情報は、鍵ほどではないが重要な情報を含むため、WEFと比較すると重要度が高く設定され、加算値は“2”に設定されている。また、上記以外の動作に影響しないような情報は、重要ではないと判断できるため、コマンドの中では最も重要度が低く設定され、加算値は“0”に設定されている。
図4(B)は、コマンド処理の対象データの種類の重要度に応じて異常検知用カウンタの更新値を変化させる場合の異常検知用カウンタの更新処理の一例を示すフローチャートである。図4(B)に示すステップS61では、CPU10は、対象データがWEFであるか否かを判定する。CPU10は、WEFであると判定した場合(ステップS61:YES)、図4(A)に示す対応付け情報に従って、異常検知用カウンタの値に“1”を加算し(ステップS62)、ステップS9へ進む。一方、CPU10は、WEFでないと判定した場合(ステップS61:NO)、ステップS63へ進む。
ステップS63では、CPU10は、対象データが制御情報であるか否かを判定する。CPU10は、制御情報であると判定した場合(ステップS63:YES)、図4(A)に示す対応付け情報に従って、異常検知用カウンタの値に“2”を加算し(ステップS64)、ステップS9へ進む。一方、CPU10は、制御情報でないと判定した場合(ステップS63:NO)、ステップS65へ進む。
ステップS65では、CPU10は、対象データがIEFであるか否かを判定する。CPU10は、IEFであると判定した場合(ステップS65:YES)、図4(A)に示す対応付け情報に従って、異常検知用カウンタの値に“5”を加算し(ステップS66)、ステップS9へ進む。一方、CPU10は、IEFでないと判定した場合(ステップS65:NO)、ステップS9へ進む。
以上のように、異常検知用カウンタの更新値を動的に変化させることで、危険な改ざんを検知した場合は即座に停止させたり、誤動作の可能性が考えられる場合はある程度の回数を許容させたりと、柔軟な判断をさせることが可能となる。
なお、CPU10は、ダミーカウンタの値が、予め設定された第2の閾値になったか否かを所定のタイミング(例えば、ステップS2の直前又は直後のタイミング)で判定するように構成してもよい。この場合、CPU10は、ダミーカウンタの値が第2の閾値になった場合(つまり、第2の閾値に到達した場合)に、異常検知用カウンタの値を初期値(例えば、“0”)にクリアする。これにより、静電気や温度等のなど偶然の因子で、異常検知用カウンタが更新されてしまった場合でも、正しい利用が繰り返されることで、意図しないICチップ1aの停止を防止することが可能となる。例えば、ダミーカウンタ=1、異常検知用カウンタ=3であるとする。この場合、例えば以下(a)〜(e)に示すように、ダミーカウンタが“5”の倍数にカウントアップされた場合に、異常検知用カウンタが初期値“0”にクリアされる。
(a)正常終了1回目:ダミーカウンタ=1,異常検知用のカウンタ=3
(b)正常終了2回目:ダミーカウンタ=2,異常検知用のカウンタ=3
(c)正常終了3回目:ダミーカウンタ=3,異常検知用のカウンタ=3
(d)正常終了4回目:ダミーカウンタ=4,異常検知用のカウンタ=3
(e)正常終了5回目:ダミーカウンタ=5,異常検知用のカウンタ=0
以上説明したように、上記実施例1によれば、ICチップ1aは、外部からのコマンドに応じたコマンド処理の実行中に、異常を検知した場合に、異常検知用カウンタの値を更新し、ICチップ1aの動作を停止、またはICチップ1aにおいて起動中の特定のプログラムの動作を停止するように構成したので、攻撃者が何度繰り返し攻撃を実施することを防ぎ、以降の動作を制限することができる。そのため、ICチップ1aのセキュリティ性を高めることができる。
(実施例2)
次に、実施例2において、ICチップ1aが外部端末2からコマンドを受信したときの処理について、図5を参照して説明する。図5は、実施例2において、コマンドが受信されたときの処理を示すフローチャートである。図5に示す処理は、外部端末2からコマンドが受信された場合に開始される。先ず、CPU10は、ICチップ1aの初期化を行う(ステップS11)。
次いで、CPU10は、異常検知用カウンタの値が、予め設定された第1の閾値であるか否かを判定する(ステップS12)。CPU10は、異常検知用カウンタの値が第1の閾値であると判定した場合(ステップS12:YES)、実施例1と同様、上述したエラー処理を行う(ステップS19)。
一方、ステップS12において、CPU10は、異常検知用カウンタの値が第1の閾値でないと判定した場合(ステップS12:NO)、異常検知用カウンタの更新処理(ステップS13)を行った後、上記コマンドに応じたコマンド処理を開始する(ステップS14)。ここで、上記ステップS13における異常検知用カウンタの更新処理では、例えば、CPU10は、異常検知用カウンタの値に“1”を加算する。或いは、実施例1と同様、異常検知用カウンタの更新処理において、CPU10は、異常が検知されたときのコマンド処理に対応するコマンドの重要度に応じて、異常検知用カウンタの更新値を変化させるように構成すると効果的である。或いは、異常検知用カウンタの更新処理において、CPU10は、異常が検知されたときのコマンド処理の対象データの種類の重要度に応じて、異常検知用カウンタの更新値を変化させるように構成しても効果的である。
そして、コマンド処理の実行中に、CPU10は、異常が検知されたか否かを判定する(ステップS15)。異常が検知された場合(ステップS15:YES)、CPU10は、上述したエラー処理を行う(ステップS19)。一方、異常が検知されない場合(ステップS15:NO)、CPU10は、コマンド処理を終了する(ステップS16)。こうしてコマンド処理が正常終了すると、CPU10は、異常検知用カウンタの値を更新前の値に戻す(ステップS17)。例えば、ステップS13において、異常検知用カウンタの値が“1”から“6”に更新されたとすると、ステップS17において、異常検知用カウンタの値が“6”から“1”に復元される。そして、CPU10は、外部端末2へレスポンスを送信する(ステップS18)。この後、図5に示す処理が終了され、次のコマンド受信の待機状態となる。
以上説明したように、上記実施例2によれば、ICチップ1aは、コマンド処理の実行前に、異常検知用カウンタの値を更新し、異常が検知されることなくコマンド処理が正常終了した場合に、異常検知用カウンタの値を更新前の値に戻すように構成したので、攻撃者が何度繰り返し攻撃を実施することを防ぎ、以降の動作を制限することができるとともに、異常が検知された際に確実に異常検知用カウンタの値を更新することができる。そのため、ICチップ1aのセキュリティ性を高めることができる。
1 ICカード
2 外部端末
1a ICチップ
10 CPU
11 ROM
12 RAM
13 不揮発性メモリ
14 I/O回路

Claims (15)

  1. 異常を検知する異常検知手段と、異常検知用カウンタと、正常終了用カウンタとを備えるICチップであって、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新し、前記コマンド処理が正常終了した場合に、前記正常終了用カウンタの値を更新する制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、
    を備え
    前記制御手段は、前記正常終了用カウンタの値が第2の閾値になった場合に、前記異常検知用カウンタの値をクリアすることを特徴とするICチップ。
  2. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、
    を備え、
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするICチップ。
  3. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、
    を備え、
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするICチップ。
  4. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、
    外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、
    を備え
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするICチップ。
  5. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップであって、
    外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段と、
    を備え、
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするICチップ。
  6. 異常を検知する異常検知手段と、異常検知用カウンタと、正常終了用カウンタとを備えるICチップにより行われる異常検知方法であって、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新し、前記コマンド処理が正常終了した場合に、前記正常終了用カウンタの値を更新するステップと、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、
    前記正常終了用カウンタの値が第2の閾値になった場合に、前記異常検知用カウンタの値をクリアするステップと、
    を含むことを特徴とする異常検知処理方法。
  7. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新するステップと、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、
    前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、
    を含むことを特徴とする異常検知処理方法。
  8. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新するステップと、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、
    前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、
    を含むことを特徴とする異常検知処理方法。
  9. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、
    外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新するステップと、
    前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻すステップと、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、
    前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、
    を含むことを特徴とする異常検知処理方法。
  10. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップにより行われる異常検知方法であって、
    外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新するステップと、
    前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻すステップと、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止するステップと、
    前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させるステップと、
    を含むことを特徴とする異常検知処理方法。
  11. 異常を検知する異常検知手段と、異常検知用カウンタと、正常終了用カウンタとを備えるICチップに含まれるコンピュータを、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新し、前記コマンド処理が正常終了した場合に、前記正常終了用カウンタの値を更新する制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ
    前記制御手段は、前記正常終了用カウンタの値が第2の閾値になった場合に、前記異常検知用カウンタの値をクリアすることを特徴とするプログラム。
  12. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするプログラム。
  13. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、
    外部からのコマンドに応じたコマンド処理の実行中に前記異常検知手段により異常が検知された場合に、前記異常検知用カウンタの値を更新する制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするプログラム。
  14. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、
    外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理に対応する前記コマンドの重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするプログラム。
  15. 異常を検知する異常検知手段と、異常検知用カウンタとを備えるICチップに含まれるコンピュータを、
    外部からのコマンドに応じたコマンド処理の実行前に、前記異常検知用カウンタの値を更新し、前記異常検知手段により前記異常が検知されることなく前記コマンド処理が正常終了した場合に、前記異常検知用カウンタの値を更新前の値に戻す制御手段と、
    前記異常検知用カウンタの値が第1の閾値になった場合に、前記ICチップの動作を停止、または当該ICチップにおいて起動中の特定のプログラムの動作を停止する停止手段として機能させ、
    前記制御手段は、前記異常検知手段により異常が検知されたときの前記コマンド処理の対象データの種類の重要度に応じて、前記異常検知用カウンタの更新値を変化させることを特徴とするプログラム。
JP2014123546A 2014-06-16 2014-06-16 Icチップ、異常検知処理方法、及びプログラム Active JP6340935B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014123546A JP6340935B2 (ja) 2014-06-16 2014-06-16 Icチップ、異常検知処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014123546A JP6340935B2 (ja) 2014-06-16 2014-06-16 Icチップ、異常検知処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016004371A JP2016004371A (ja) 2016-01-12
JP6340935B2 true JP6340935B2 (ja) 2018-06-13

Family

ID=55223617

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014123546A Active JP6340935B2 (ja) 2014-06-16 2014-06-16 Icチップ、異常検知処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6340935B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3839750A1 (en) 2019-12-18 2021-06-23 Thales Dis France Sa Method for secure executing of a security related process

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61151793A (ja) * 1984-12-26 1986-07-10 Hitachi Ltd Icカ−ド機密保持方式
JP4748929B2 (ja) * 2003-08-28 2011-08-17 パナソニック株式会社 保護回路および半導体装置
JP2006099616A (ja) * 2004-09-30 2006-04-13 Toshiba Corp 携帯可能電子装置及び携帯可能電子装置の制御方法
EP1659515A1 (fr) * 2004-11-19 2006-05-24 Proton World International N.V. Protection d'un microcontrôleur
JP2008198700A (ja) * 2007-02-09 2008-08-28 Renesas Technology Corp 半導体集積回路装置
FR2935823B1 (fr) * 2008-09-11 2010-10-01 Oberthur Technologies Procede et dispositif de protection d'un microcircuit contre les attaques.
JP5776927B2 (ja) * 2011-03-28 2015-09-09 ソニー株式会社 情報処理装置及び方法、並びにプログラム

Also Published As

Publication number Publication date
JP2016004371A (ja) 2016-01-12

Similar Documents

Publication Publication Date Title
JP5200664B2 (ja) メモリの内容を改竄する故障攻撃の検知方法、セキュリティデバイス及びコンピュータプログラム
KR101783526B1 (ko) Ic 카드, 전자 장치 및 휴대 가능 전자 장치
JP6340935B2 (ja) Icチップ、異常検知処理方法、及びプログラム
JP2009259126A (ja) 故障攻撃の検知方法、及び、セキュリティデバイス
US9912471B2 (en) Method for operating a portable data carrier, and such a portable data carrier
JP6182940B2 (ja) Icカード、ステータスワード出力方法、及びステータスワード出力処理プログラム
JP6828548B2 (ja) 電子情報記憶媒体、icカード、改竄チェック方法及び改竄チェック用プログラム
CN101925906A (zh) 屏蔽电子设备终止活动转变的方法,以及包括相应控制模块的设备
JP5695037B2 (ja) 時間制限使用の自動開始アプリケーションを含む機器
JP2007087120A (ja) 複数のosを実装したicカード、および、発行委任方法
JP2009289104A (ja) 故障攻撃を検知する機能を備えたセキュリティデバイス
EP3023925B1 (en) Secure element with applications
JP6326835B2 (ja) 情報処理装置、icカード、コマンド処理方法、及びコマンド処理プログラム
JP2016126696A (ja) 電子情報記憶媒体、異常検知方法、及びプログラム
US7806319B2 (en) System and method for protection of data contained in an integrated circuit
JP2020013249A (ja) Icチップ及びicカード
JP6439408B2 (ja) 表示機能付きicカードおよび制御方法
JP6493672B2 (ja) 電子情報記憶媒体、異常検知方法、異常検知プログラム、及びicカード
CN103455445A (zh) 智能卡系统抵抗故障攻击的方法
JP7247638B2 (ja) 電子情報記憶媒体、icカード、改竄チェック方法、及びプログラム
JP6119345B2 (ja) Icチップ、icカード、検証処理方法、及び検証処理プログラム
JP6387767B2 (ja) 電子情報記録媒体、icカード、チェック方法、及び処理プログラム
JP6281302B2 (ja) 情報処理装置、icカード、及びデータ処理方法
JP6610002B2 (ja) 演算装置、演算方法、及び演算処理プログラム
JP2006172271A (ja) マルチアプリケーションicカード及びicカード用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170425

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180417

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180430

R150 Certificate of patent or registration of utility model

Ref document number: 6340935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150