JP6922329B2 - 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス - Google Patents

故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス Download PDF

Info

Publication number
JP6922329B2
JP6922329B2 JP2017065047A JP2017065047A JP6922329B2 JP 6922329 B2 JP6922329 B2 JP 6922329B2 JP 2017065047 A JP2017065047 A JP 2017065047A JP 2017065047 A JP2017065047 A JP 2017065047A JP 6922329 B2 JP6922329 B2 JP 6922329B2
Authority
JP
Japan
Prior art keywords
secret
executable code
memory
code
module
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
JP2017065047A
Other languages
English (en)
Other versions
JP2018169694A (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 JP2017065047A priority Critical patent/JP6922329B2/ja
Publication of JP2018169694A publication Critical patent/JP2018169694A/ja
Application granted granted Critical
Publication of JP6922329B2 publication Critical patent/JP6922329B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は,暗号鍵を用いた暗号演算など,秘密データを用いた秘匿演算処理を行う秘匿演算モジュールを実装したセキュリティデバイスに関し,更に詳しくは,故障利用攻撃に対する秘匿演算モジュールの耐タンパー性を高める技術に関する。
秘密鍵を用いた暗号演算など,外部に秘匿にする秘密データを用いる演算処理である秘匿演算処理を行うセキュリティデバイスは,暗号演算で用いる暗号鍵など,秘匿演算処理で用いる秘密データを秘匿に記憶する。通常,セキュリティデバイスに記憶された秘密データは外部から読み出せないが,セキュリティデバイスに記憶された秘密データを不正に読み出す様々な攻撃方法が提案されている。
非特許文献1に記載があるように,セキュリティデバイスに記憶された秘密データを不正に読み出す攻撃方法は,セキュリティデバイスに実装されたICチップ(Integrated Circuit)の破壊を必要とする破壊攻撃と,セキュリティデバイスに実装されたICチップの破壊を必要としない非破壊攻撃に分類でき,更に,非破壊攻撃は,外部から観測可能なセキュリティデバイスのサイドチャネルを観測するサイドチャネル攻撃と,意図的なエラーを暗号演算中に発生させる故障利用攻撃に分類できる。サイドチャネル攻撃は,セキュリティデバイスに対する重要な脅威の一つになるが,本発明では,非破壊攻撃の一つである故障利用攻撃を対象とする。
非破壊攻撃に一つである故障利用攻撃とは,通常はありえない外部刺激を加える操作を秘匿演算処理中のセキュリティデバイスに行うことで,意図的な演算エラーをセキュリティデバイスに発生させ,セキュリティデバイスに記憶された秘密データを不正に読み取ろうとする攻撃方法である。通常はありえない外部刺激としては,パルス状の電源ノイズ,周波数が定格外のクロック信号,電磁波およびレーザー照射などがある。
非破壊攻撃の一つである故障利用攻撃に対する対策として,特許文献1には,同一処理の二度以上の計算の実施や逆算による処理の検算が推奨されるとの記載があり,特許文献1に係る発明では,代表的な秘匿演算の一つである暗号演算の逆算を行って検算を行う場合,暗号演算の逆算において最終的に用いた暗号鍵が当初の演算で最初に用いた暗号鍵に一致するかを検証する。
特許第5483838号公報
しかしながら,上記の対策を実施したとしても,暗号演算などの秘匿演算を行うコンピュータプログラムが実装されているメモリ位置を特定し,特定したメモリ位置にレーザー光などを照射して,同一の誤動作を複数回誘発すれば,秘匿演算に用いる秘密データ(例えば,暗号鍵)を推定することは可能である。
そこで,本発明は,暗号演算などの秘匿演算を行うモジュールの実行可能コードを配置するメモリ位置が秘匿演算ごとに変わるように構成されたセキュリティデバイスを提供することを目的とする。
上述した課題を解決する本発明は, 秘密データを用いた秘匿演算処理を行う秘匿演算モジュールの実行可能コードを記憶した不揮発性メモリと,セキュリティ機能をユーザに提供する上位ソフトウェアから前記秘匿演算モジュールの実行可能コードの呼出しを受けると,データの読み書き可能なメモリの中から,前記秘匿演算モジュールの実行可能コードをロードする前記メモリをランダムに決定し,更に,ランダム決定した前記メモリの空き領域の中から,前記秘匿演算モジュールの実行可能コードに対応したサイズの領域をランダムに決定することで,前記秘匿演算モジュールの実行可能コードを配置するメモリ位置をランダムに決定し,不揮発性メモリに記憶された前記秘匿演算モジュールの実行可能コードを前記メモリ位置にロードした後,前記メモリ位置にロードした前記秘匿演算モジュールの実行可能コードを実行し,前記メモリ位置にロードした前記秘匿演算モジュールの実行可能コードの実行結果を前記上位ソフトウェアに引き渡す秘匿演算制御部を備えたことを特徴とするセキュリティデバイスである。
更に,第2の発明は,第1の発明に記載したセキュリティデバイスにおいて,前記秘匿演算モジュールが行う秘匿演算処理を,暗号鍵を前記秘密データとする暗号演算処理としたことを特徴とする。
更に,第3の発明は,第1の発明または第2の発明に記載したセキュリティデバイスにおいて,不揮発性メモリに記憶する前記秘匿演算モジュールの実行可能コードにチェックコードを付加し,前記秘匿演算制御部は,前記メモリ位置にロードした前記秘匿演算モジュールの実行可能コードから算出したチェックコードと,不揮発性メモリに記憶された前記秘匿演算モジュールの実行可能コードに付加されたチェックコードを照合し,チェックコードの照合に失敗すると,エラーコードを前記上位ソフトウェアに引き渡すことを特徴とする。
本発明に係るセキュリティデバイスによれば,セキュリティデバイスの秘匿演算制御部は秘匿演算モジュールの実行可能コードをロードするメモリ位置をランダムに決定するため,秘密データを用いた秘匿演算処理を行う秘匿演算モジュールの実行可能コードのメモリ位置は秘匿演算処理を行うごとに異なることになる。秘匿演算モジュールの実行可能コードのメモリ位置が秘匿演算ごとに異なれば,攻撃者は,秘匿演算モジュールのメモリ位置を特定して行う故障利用攻撃を実施できないため,暗号鍵などの秘密データがセキュリティデバイスの外部へ漏洩してしまうことを防止できる。
セキュリティデバイスの構成を説明する図。 セキュリティデバイスが備えるハードウェアを説明する図。 秘匿演算制御部の動作を説明する図。 セキュリティデバイスのメモリ状態を説明する図。 セキュリティデバイスの形態を説明する図。
ここから,本発明の好適な実施形態を記載する。なお,以下の記載は本発明の技術的範囲を束縛するものでなく,理解を助けるために記述するものである。
図1は,本実施形態に係るセキュリティデバイス1の構成を説明する図である。本実施形態に係るセキュリティデバイス1は,下位層から順に,ハードウェア12,オペレーティングシステム10(OS: Operating System)および上位ソフトウェア11を備える。
図2は,本実施形態に係るセキュリティデバイス1が備えるハードウェア12を説明する図である。図2で図示したように,本実施形態に係るセキュリティデバイス1は,ハードウェア12として,データの入出力を行うI/O125,各種演算を行うCPU120(Central Processing Unit),電気的に書き換え可能な揮発性メモリであるRAM121(Random Access Memory),電気的に書き換えできない不揮発性メモリであるROM122(Read-Only Memory),電気的に書き換え可能な不揮発性メモリであるNVM123(Non-volatile memory)に加え,コプロセッサとして,暗号演算機能に特化した暗号演算回路124を備える。
本実施形態に係るセキュリティデバイス1が備える上位ソフトウェア11は,秘密データを用いた秘匿演算処理を利用したセキュリティ機能をユーザに提供するためのコンピュータプログラムで,具体的には,アプリケーションやミドルウェアである。上位ソフトウェア11によってユーザに提供されるセキュリティ機能は任意でよい。例えば,暗号演算を利用したセキュリティ機能として,メッセージの暗号化・復号,デジタル署名の生成・認証およびユーザ認証などが考えられる。なお,本実施形態において,上位ソフトウェア11は,セキュリティデバイス1が有する不揮発性メモリ(ここでは,ROM122またはNVM123)に実装されている。
本実施形態に係るセキュリティデバイス1が備えるOS10は,セキュリティデバイス1の内部におけるコンピュータプログラムの実行を制御するソフトウェアである。本実施形態において,OS10は,秘密データを用いた秘匿演算処理を行う秘匿演算モジュールの実行可能コード100と,上位ソフトウェア11が秘匿演算モジュールの実行可能コード100を利用するための機能を提供する秘匿演算制御部101を有し,本実施形態において,OS10は,セキュリティデバイス1が有する不揮発性メモリの一つであるROM122に実装されている。
秘匿演算モジュールの実行可能コード100とは,CPU120が解釈実行可能なコードを意味し,本実施形態ではROM122にOS10を実装しているため,OS10が有する秘匿演算モジュールの実行可能コード100も,セキュリティデバイス1が有する不揮発性メモリの一つであるROM122に実装され,秘匿演算モジュールの実行可能コード100にはチェックコードを付加している。なお,秘匿演算モジュールの実行可能コード100は,ROM122ではなくNVM123に実装させることもできる。
秘匿演算モジュールの実行可能コード100が行う秘匿演算処理の内容は任意でよいが,本実施形態において,秘匿演算モジュールの実行可能コード100は,暗号演算回路124を利用して所定のアルゴリズムに従う暗号演算処理を実行する。なお,暗号アルゴリズムとしては,DES(Data Encryption Standard),AES(Advanced Encryption Standard)および公開鍵暗号などが挙げられる。
OS10が有する秘匿演算制御部101は,CPU120を動作させるコンピュータプログラムにより実現される機能で,秘匿演算モジュールの実行可能コード100を利用するためのAPI(Application Programming Interface)を上位ソフトウェア11に提供し,上位ソフトウェア11から秘匿演算モジュールの実行可能コード100の呼出しを受けると,故障利用攻撃に対する耐タンパー性が高まるように秘匿演算モジュールの実行可能コード100を実行する。
図3は,本実施形態に係る秘匿演算制御部101の動作を説明する図である。本実施形態に係る秘匿演算制御部101が提供しているAPIを利用して,上位ソフトウェア11から秘匿演算モジュールの実行可能コード100の呼出しを受けると(S1),秘匿演算制御部101は,セキュリティデバイス1が有するデータの読み書き可能なメモリの中から,秘匿演算モジュールの実行可能コード100をロードするメモリ位置をランダムに決定する処理を行う(S2)。図2で説明したように,本実施形態に係るセキュリティデバイス1は,データの読み書き可能なメモリとしてRAM121とNVM123を有しているため,本実施形態に係る秘匿演算制御部101は,秘匿演算モジュールの実行可能コード100をロードするメモリとしてRAM121またはNVM123のいずれか一つをランダムに決定し,更に,ランダム決定したメモリの空き領域の中から,秘匿演算モジュールの実行可能コード100に対応したサイズの領域をランダムに決定することで,秘匿演算モジュールの実行可能コード100をロードするメモリ位置をランダムに決定する。なお,メモリなどをランダムに決定する際,乱数を用いることが一般的である。
次に,本実施形態に係る秘匿演算制御部101は,S2において決定したメモリ位置に,秘匿演算モジュールの実行可能コード100(チェックコードは含まない)をロードする処理を実行する(S3)。本実施形態において,秘匿演算モジュールの実行可能コード100はROM122に記憶されているので,ROM122に記憶されている秘匿演算モジュールの実行可能コード100が,S2において決定したメモリ位置にロードされることになる。
次に,本実施形態に係る秘匿演算制御部101は,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100を実行する処理を実行する(S4)。例えば,秘匿演算制御部101は,S2において決定したメモリ位置の先頭アドレスを呼び出すことで,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100を実行する。
S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100の実行が終了すると,本実施形態に係る秘匿演算制御部101は,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100から算出したチェックコードと,不揮発性メモリ(ここでは,ROM122)に記憶されている秘匿演算モジュールの実行可能コード100に付加されたチェックコードを照合することで,実際に暗号演算を行った秘匿演算モジュールの実行可能コード100の正当性,すなわち,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100の正当性を検証する処理を実行する(S5)。S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100の正当性を検証することで,故障利用攻撃により,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100の内容に変更があったか否かを判定できる。正当性検証に失敗すると,エラーコードを上位ソフトウェア11に引き渡すことで,故障利用攻撃が行われても暗号演算結果が攻撃者に渡ることはない。なお,チェックコードは任意でよいが,例えば,チェックコードをチェックサムの場合,秘匿演算モジュールの実行可能コード100をデータ列とみなして各列の総和をから,秘匿演算モジュールの実行可能コード100のチェックサムを算出できる。
本実施形態に係る秘匿演算制御部101は,秘匿演算モジュールの実行可能コード100の正当性検証結果に基づいて処理を分岐する(S6)。秘匿演算モジュールの実行可能コード100の正当性検証に成功した場合,秘匿演算制御部101は,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100はROM122に記憶されたものと一致する,すなわち,故障利用攻撃は実行されていないと判断し,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100を実行することで得られた暗号演算結果を秘匿演算モジュールの実行可能コード100の実行結果にセットする(S7a)。また,秘匿演算モジュールの実行可能コード100に付加されているチェックコードの検証結果が失敗の場合,秘匿演算制御部101は,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100はROM122に記憶されたものと一致しない,すなわち,故障利用攻撃が実行された可能性があると判断し,秘匿演算モジュールの実行に失敗したことを示すエラーコードを秘匿演算モジュールの実行可能コード100の実行結果にセットする(S7b)。
次に,本実施形態に係る秘匿演算制御部101は,S2において決定したメモリ位置にロードした秘匿演算モジュールの実行可能コード100を消去する処理を実行した後(S8),秘匿演算モジュールの実行可能コード100の実行結果を上位ソフトウェア11へ引き渡して(S9),図3で図示した手順は終了する。
図4は,セキュリティデバイス1のメモリ状態を説明する図である。図4(a)では,秘匿演算モジュールの実行可能コード100の呼出しを受ける前におけるメモリの状態を示し,秘匿演算モジュールの実行可能コード100の呼出しを上位ソフトウェア11から受ける前,秘匿演算モジュールの実行可能コード100はROM122にのみ記憶された状態で,電気的に書き換え可能なメモリであるRAM121およびNVM123のいずれにも秘匿演算モジュールの実行可能コード100はロードされていない。図4(b)では,秘匿演算モジュールの実行可能コード100をロードするメモリにRAM121が決定されたときの状態を示し,秘匿演算制御部101が,秘匿演算モジュールの実行可能コード100をRAM121にロードすることで,秘匿演算モジュールの実行可能コード100は,ROM122に加え,RAM121にも記憶されている状態になる。なお,ROM122に記憶されている秘匿演算モジュールの実行可能コード100にはチェックコード(CC: Check Code)が付加されているが,RAM121に記憶された秘匿演算モジュールの実行可能コード100にはチェックコードが付加されていない。図4(c)では,秘匿演算モジュールの実行可能コード100をロードするメモリにNVM123が決定されたときの状態を示し,秘匿演算制御部101が,秘匿演算モジュールの実行可能コード100をNVM123に配置することで,秘匿演算モジュールの実行可能コード100は,ROM122に加え,NVM123にも記憶されている状態になる。なお,ROM122に記憶されている秘匿演算モジュールの実行可能コード100にはチェックコードが付加されているが,NVM123に記憶された秘匿演算モジュールの実行可能コード100にはチェックコードは付加されていない。図4(b)または図4(c)の状態で,秘匿演算モジュールが終了すると,RAM121またはNVM123にロードされた秘匿演算モジュールの実行可能コード100は,秘匿演算モジュールの実行可能コード100がロードされたメモリから削除され,図4(a)の状態に戻る。
本実施形態に係る秘匿演算制御部101が,図3で示した手順を実行することで,秘匿演算モジュールの実行可能コード100を配置するメモリ位置は秘匿演算ごとに異なることになる。実際に暗号演算を行う秘匿演算モジュールの実行可能コード100のメモリ位置が秘匿演算ごとに異なれば,攻撃者が秘匿演算モジュールの実行可能コード100のメモリ位置を特定できないため,故障利用攻撃を用いて同一の誤動作を繰り返し誘発できず,暗号演算に用いる暗号鍵がセキュリティデバイス1の外部へ漏洩してしまうことを防止できる。
最後に,本実施形態に係るセキュリティデバイス1の具体的な形態を説明する。図5は,セキュリティデバイス1の形態を説明する図である。本実施形態に係るセキュリティデバイス1の具体的な形態は任意で,例えば,本実施形態に係るセキュリティデバイス1は,図5(a)で図示したICカード1a,または,図5(b)で図示したインターネットバンク用のトークン1bにでき,更には,図5(c)で図示した大容量のメモリを有するUSBキー1cにも適用できる。
1 セキュリティデバイス
10 オペレーティングシステム
100 秘匿演算モジュールの実行可能コード
101 秘匿演算制御部
11 上位ソフトウェア
12 ハードウェア
121 RAM
122 ROM
123 NVM

Claims (3)

  1. 秘密データを用いた秘匿演算処理を行う秘匿演算モジュールの実行可能コードを記憶した不揮発性メモリと,
    セキュリティ機能をユーザに提供する上位ソフトウェアから前記秘匿演算モジュールの実行可能コードの呼出しを受けると,データの読み書き可能なメモリの中から,前記秘匿演算モジュールの実行可能コードをロードする前記メモリをランダムに決定し,更に,ランダム決定した前記メモリの空き領域の中から,前記秘匿演算モジュールの実行可能コードに対応したサイズの領域をランダムに決定することで,前記秘匿演算モジュールの実行可能コードを配置するメモリ位置をランダムに決定し,不揮発性メモリに記憶された前記秘匿演算モジュールの実行可能コードを前記メモリ位置にロードした後,前記メモリ位置にロードした前記秘匿演算モジュールの実行可能コードを実行し,前記メモリ位置にロードした前記秘匿演算モジュールの実行可能コードの実行結果を前記上位ソフトウェアに引き渡す秘匿演算制御部を,
    備えたことを特徴とするセキュリティデバイス。
  2. 前記秘匿演算モジュールが行う秘匿演算処理を,暗号鍵を前記秘密データとする暗号演算処理としたことを特徴とする,請求項1に記載したセキュリティデバイス。
  3. 不揮発性メモリに記憶する前記秘匿演算モジュールの実行可能コードにチェックコードを付加し,前記秘匿演算制御部は,前記メモリ位置にロードした前記秘匿演算モジュールの実行可能コードから算出したチェックコードと,不揮発性メモリに記憶された前記秘匿演算モジュールの実行可能コードに付加されたチェックコードを照合し,チェックコードの照合に失敗すると,エラーコードを前記上位ソフトウェアに引き渡すことを特徴とする,請求項1または請求項2に記載したセキュリティデバイス。
JP2017065047A 2017-03-29 2017-03-29 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス Active JP6922329B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017065047A JP6922329B2 (ja) 2017-03-29 2017-03-29 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017065047A JP6922329B2 (ja) 2017-03-29 2017-03-29 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス

Publications (2)

Publication Number Publication Date
JP2018169694A JP2018169694A (ja) 2018-11-01
JP6922329B2 true JP6922329B2 (ja) 2021-08-18

Family

ID=64020329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017065047A Active JP6922329B2 (ja) 2017-03-29 2017-03-29 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス

Country Status (1)

Country Link
JP (1) JP6922329B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020039612A (ja) * 2018-09-11 2020-03-19 株式会社三洋物産 遊技機
JP2020039614A (ja) * 2018-09-11 2020-03-19 株式会社三洋物産 遊技機
JP2020039611A (ja) * 2018-09-11 2020-03-19 株式会社三洋物産 遊技機
JP2020039615A (ja) * 2018-09-11 2020-03-19 株式会社三洋物産 遊技機

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223234A (ja) * 1994-08-10 2003-08-08 Fujitsu Ltd 情報格納方法、ソフトウェア再生装置
JP2005157502A (ja) * 2003-11-20 2005-06-16 Sony Corp 情報処理装置及び情報処理方法、並びにコンピュータ・プログラム
JPWO2014049830A1 (ja) * 2012-09-28 2016-08-22 富士通株式会社 情報処理装置および半導体装置

Also Published As

Publication number Publication date
JP2018169694A (ja) 2018-11-01

Similar Documents

Publication Publication Date Title
Smith et al. Building a high-performance, programmable secure coprocessor
CN111095213B (zh) 嵌入式程序的安全引导方法、装置、设备及存储介质
JP6922329B2 (ja) 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス
US11018847B2 (en) Device keys protection
Smith Trusted computing platforms: design and applications
EP2854066B1 (en) System and method for firmware integrity verification using multiple keys and OTP memory
US7500098B2 (en) Secure mode controlled memory
EP2634959B1 (en) Method and Apparatus for Incremental Code Signing
CN110990084B (zh) 芯片的安全启动方法、装置、存储介质和终端
CN107220547B (zh) 终端设备及其启动方法
JP5937109B2 (ja) 車両の防犯のための方法及び機関制御システム
CN111984962A (zh) 固件安全验证方法及装置
TW200832427A (en) Virtual secure on-chip one time programming
TW201319863A (zh) 用於防止惡意軟體執行的方法與系統
CN109445705A (zh) 固件认证方法及固态硬盘
KR102324328B1 (ko) 보안 요소
KR20130015007A (ko) 비휘발성 메모리의 메모리 블록의 검증 방법
Zhou et al. Smile: Secure memory introspection for live enclave
KR102519828B1 (ko) 회로 칩 및 그 동작 방법
Urien Innovative countermeasures to defeat cyber attacks against blockchain wallets
CN108270767B (zh) 数据验证方法
CN110619219B (zh) 应用程序源码保护方法、装置、计算机设备和存储介质
CA2958986C (en) System and method for protecting a device against attacks on processing flow using a code pointer complement
JP5949357B2 (ja) セキュリティトークン、データ改竄検知方法およびコンピュータプログラム
EP4195579A1 (en) Asynchronous code execution for enhanced performance and security measures protecting digital security devices

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201222

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210215

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: 20210629

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210712

R150 Certificate of patent or registration of utility model

Ref document number: 6922329

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150