JP2019161389A - 暗号化装置、暗号化システム、及び暗号化方法 - Google Patents

暗号化装置、暗号化システム、及び暗号化方法 Download PDF

Info

Publication number
JP2019161389A
JP2019161389A JP2018044143A JP2018044143A JP2019161389A JP 2019161389 A JP2019161389 A JP 2019161389A JP 2018044143 A JP2018044143 A JP 2018044143A JP 2018044143 A JP2018044143 A JP 2018044143A JP 2019161389 A JP2019161389 A JP 2019161389A
Authority
JP
Japan
Prior art keywords
encryption
signal
memory
cpu
address
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.)
Granted
Application number
JP2018044143A
Other languages
English (en)
Other versions
JP7101500B2 (ja
Inventor
公則 篠崎
Kiminori Shinozaki
公則 篠崎
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.)
Shinozaki Yoneko
Original Assignee
Shinozaki Yoneko
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 Shinozaki Yoneko filed Critical Shinozaki Yoneko
Priority to JP2018044143A priority Critical patent/JP7101500B2/ja
Publication of JP2019161389A publication Critical patent/JP2019161389A/ja
Application granted granted Critical
Publication of JP7101500B2 publication Critical patent/JP7101500B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】CPUの実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る暗号化装置を提供する。【解決手段】メモリ20に書き込む信号を暗号化する暗号化装置10であって、記録媒体40から出力された、CPU30が実行する命令を含むプログラムを、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する暗号化部11と、メモリ20から読み出された信号を、前記メモリのアドレス単位で、第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部12と、を備える。【選択図】図2

Description

本発明は、メモリに書き込む信号を暗号化する暗号化装置、暗号化システム、及び暗号化方法に関する。
従来、プログラムを暗号化する暗号化技術が知られている。例えば、特許文献1には、対象とするプログラムに対して新たなジャンプ命令を挿入し、ジャンプ命令挿入後のプログラムに対して暗号ブロック連鎖モードによる暗号化を行う暗号化技術が記載されている。
特開2009−211292号公報
CPU(Central Processing Unit)の実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまうと、そのCPUは、その悪意のあるプログラムを実行してしまうことがある。
そこで、本発明は、CPUの実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る暗号化装置、暗号化システム、及び暗号化方法を提供することを目的とする。
本発明の一態様に係る暗号化装置は、メモリに書き込む信号を暗号化する暗号化装置であって、記録媒体から出力された、CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する暗号化部と、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を備える。
また、本発明の一態様に係る暗号化システムは、CPUと、メモリと、記録媒体と、前記メモリに書き込む信号を暗号化する暗号化装置とを備え、前記暗号化装置は、前記記録媒体から出力された、前記CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化部と、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を含む。
また、本発明の一態様に係る暗号化方法は、メモリに書き込む信号を暗号化する暗号化方法であって、記録媒体から出力された、CPUが実行する命令を少なくとも含むプログラムを、前記メモリの単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化ステップと、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化ステップと、を含む。
本発明によれば、CPUの実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る。
図1は、実施の形態1に係る暗号化システムの構成を示すブロック図である。 図2は、実施の形態1に係る暗号化装置構成を示すブロック図である。 図3Aは、第1暗号化方式における、暗号文と平文との関係を示す模式図である。 図3Bは、第2暗号化方式における、暗号文と平文との関係を示す模式図である。 図4Aは、第1復号化方式における、暗号文と平文との関係を示す模式図である。 図4Bは、第2復号化方式における、暗号文と平文との関係を示す模式図である。 図5は、ケース1における暗号化システム1の動作を示す模式図である。 図6は、ケース2における暗号化システム1の動作を示す模式図である。 図7は、ケース3における暗号化システム1の動作を示す模式図である。 図8は、ケース4における暗号化システム1の動作を示す模式図である。 図9は、ケース5における暗号化システム1の動作を示す模式図である。 図10は、ケース6における暗号化システム1の動作を示す模式図である。
(本発明の一態様を得るに至った経緯)
発明者は、CPUの実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る方法について検討した。その結果、発明者は、上記抑止には、CPUの実行対象となるプログラムを、一旦、直接CPUが実行できない形式の信号に変換(例えば、暗号化)してからメモリに記憶させておき、CPUがプログラムを実行する際には、その信号を逆変換(例えば、復号化)してCPUが実行できる形式のプログラムに戻してからそのプログラムをCPUに実行させることが有効である知見を得た。そして、発明者は、その知見に基づいて、本発明の一態様に係る暗号化装置に想到した。
すなわち、発明者が想到した本発明の一態様に係る暗号化装置は、メモリに書き込む信号を暗号化する暗号化装置であって、記録媒体から出力された、CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する暗号化部と、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を備える。
上記暗号化装置によると、メモリに悪意のあるプログラムが書き込まれてしまったとしても、上記暗号化装置は、メモリから読み出された悪意のあるプログラムに対して、第1復号化方式で復号化する。このため、CPUが、メモリから読み出された悪意のあるプログラムに対して第1復号化方式で復号化された信号を実行しようとしても、悪意のあるプログラムとして実行されることはない。
従って、上記暗号化装置によると、CPUの実行対象とするプログラムを記憶するメモリに、悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る。
また、上記暗号化装置は、例えば、特許文献1に記載された従来のプログラムを暗号化する暗号化技術に比べて、より平易な方法で、プログラムに対する暗号化を行う。
このため、上記暗号化装置によると、従来の暗号化技術を利用する場合よりも、より回路規模が少ない暗号化装置を実現し得る。
以下、本発明の一態様に係る暗号化装置の具体例について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
(実施の形態)
[1.構成]
図1は、本実施の形態に係る暗号化装置10を含む、本実施の形態に係る暗号化システム1の構成を示すブロック図である。
図1に示されるように、暗号化システム1は、暗号化装置10と、メモリ20と、CPU30と、記録媒体40とを含んで構成される。
CPU30は、いわゆるプロセッサと呼ばれる情報処理装置であって、例えば、半導体集積回路によって実現される。CPU30は、例えば、CPUコアとキャッシュメモリとを含んで構成されてもよい。
記録媒体40は、CPU30によって利用されるプログラム、データ等を記録する記録媒体である。記録媒体40は、CPU30によって利用されるプログラム、データ等を記録することができれば、どのような記録媒体であってもよい。記録媒体40は、例えば、ハードディスクドライブ(HDD:Hard Disk Drive)であってもよいし、ブルーレイディスク(登録商標)であってもよい。ここでは、記録媒体40が記憶するプログラムには、CPU30が実行する命令が、少なくとも1つ含まれている。
メモリ20は、CPU30のメインメモリとして利用されるメモリである。メモリ20は、例えば、半導体集積回路によって実現される。メモリ20は、CPU30のメインメモリとして利用されるものであれば、どのようなメモリであってもよい。メモリ20は、例えば、DRAM(Dynamic Random Access Memory)であってもよいし、SRAM(Static Random Access Memory)であってもよい。
メモリ20は、例えば、記録媒体40に記録されているプログラムがロードされるプログラム記憶領域として機能する。また、メモリ20は、例えば、CPUが一時的に利用するデータのワークエリアとして機能する。また、メモリ20は、例えば、記録媒体40に記録されているデータのディスクキャッシュとして機能する。
暗号化装置10は、メモリ20に書き込む信号を暗号化し、メモリ20から読み出された信号を復号化する。暗号化装置10は、例えば、専用ハードウエアからなる半導体集積回路によって実現されてもよいし、プロセッサとメモリとを含み、メモリに記憶されるプログラムをプロセッサが実行することによって実現されてもよい。
以下、暗号化装置10について、図面を用いて詳細に説明する。
図2は、暗号化装置10の構成を示すブロック図である。
図2に示されるように、暗号化装置10は、暗号化部11と、復号化部12と、フラグ記憶部13と、フラグ更新部14と、暗号化方式設定部15とを含んで構成される。
暗号化部11は、記録媒体40から出力された信号を、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する。
図3Aは、第1暗号化方式における、暗号文と平文との関係を示す模式図である。
ここでは、第1暗号化方式は、メモリ20のアドレス単位の循環シフト(ローテート)であるとする。しかしながら、第1暗号化方式は、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する暗号化方式であれば、必ずしも、循環シフトである構成に限定される必要はない。例えば、奇数ビットとその1ビット上位ビット側の偶数ビットとがそれぞれ置換される暗号化方式であってもよい。また、ここでは、メモリ20のワード長が32ビットである場合の例となっているが、メモリ20のワード長は、必ずしも32ビットに限定される必要はない。例えば、メモリ20のワード長が16ビットである例もあり得る。
図3Aに示されるように、ここでは、第1暗号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、左2ビットの循環シフトとなっている。
以下では、説明をわかりやすくするために、第1暗号化前の信号である32ビットの値をXとした場合における、第1暗号化後の信号である32ビットの値をF(X)として表現する。
また、暗号化部11は、CPU30から出力された信号を、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する、第1暗号化方式とは異なる第2暗号化方式で暗号化する。
図3Bは、第2暗号化方式における、暗号文と平文との関係を示す模式図である。
ここでは、第2暗号化方式は、メモリ20のアドレス単位の循環シフト(ローテート)であるとする。しかしながら、第2暗号化方式は、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する、第1暗号化方式とは異なる暗号化方式であれば、必ずしも、循環シフトである構成に限定される必要はない。例えば、ビットの並び順を反転させる暗号化方式であってもよい。また、ここでは、メモリ20のワード長が32ビットである場合の例となっているが、メモリ20のワード長は、必ずしも32ビットに限定される必要はない。例えば、メモリ20のワード長が16ビットである例もあり得る。
図3Bに示されるように、ここでは、第2暗号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、左3ビットの循環シフトとなっている。
以下では、説明をわかりやすくするために、第2暗号化前の信号である32ビットの値をYとした場合における、第2暗号化後の信号である32ビットの値をG(Y)として表現する。
フラグ記憶部13は、メモリ20の各アドレスに対応する、1ビットからなる第1フラグと、1ビットからなる第2フラグとを記憶する。ここでは、第1フラグの論理値が1のときに第1フラグは活性状態であり、第1フラグの論理値が0のときに第1フラグは非活性状態であるとするが、この逆、すなわち、第1フラグの論理値が0のときに第1フラグは活性状態であり、第1フラグの論理値が1のときに第1フラグは非活性状態であるとしてもよい。また、同様に、ここでは、第2フラグの論理値が1のときに第2フラグは活性状態であり、第2フラグの論理値が0のときに第2フラグは非活性状態であるとするが、この逆、すなわち、第2フラグの論理値が0のときに第2フラグは活性状態であり、第2フラグの論理値が1のときに第2フラグは非活性状態であるとしてもよい。
ここでは、第1フラグ及び第2フラグは、初期状態において非活性状態であるとする。
なお、ここでは、フラグ記憶部13は、暗号化装置10の内部に含まれるとして説明するが、必ずしも暗号化装置10の内部に含まれる構成に限定される必要はない。例えば、フラグ記憶部13は、メモリ20の記憶領域の一部として実現されてもよい。
フラグ更新部14は、メモリ20の各アドレスに対応する第1フラグと第2フラグとを更新する。
より具体的には、フラグ更新部14は、(1)記録媒体40から出力されたプログラムの、第1暗号化方式による暗号文がメモリ20に書き込まれる場合に、書き込まれるアドレスに対応する第1フラグを活性状態とする。また、フラグ更新部14は、(2)CPU30から出力された信号の、第2暗号化方式による暗号文がメモリ20に書き込まれる場合に、書き込まれるアドレスに対応する第2フラグを活性状態とする。また、フラグ更新部14は、(3)第2フラグが活性状態である場合において、記録媒体40から出力されたプログラムの、第1暗号化方式による暗号文がメモリ20に書き込まれるときに、書き込まれるアドレスに対応する第2フラグを非活性状態とする。そして、フラグ更新部14は、(4)第2フラグが活性状態である場合において、CPU30から出力された信号の、第2暗号化方式による暗号文がメモリ20に書き込まれるときに、書き込まれるアドレスに対応する第1フラグを非活性状態とする。
復号化部12は、メモリ20から出力された信号を、メモリ20のアドレス単位で、第1暗号化方式の逆変換である第1復号化方式、又は第2暗号化方式の逆変換である第2復号化方式で復号化する。
図4Aは、第1復号化方式における、暗号文と平文との関係を示す模式図である。
上述したように、第1復号化方式は、第1暗号化方式の逆変換である。このため、ここでは、第1復号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、右2ビットの循環シフトとなっている。
以下では、説明をわかりやすくするために、第1復号化前の信号である32ビットの値をXとした場合における、第1復号化後の信号である32ビットの値をF−1(X)として表現することもある。
また、第1復号化方式は、第1暗号化方式の逆変換であることから、
−1{F(X)} = X
となる。
図4Bは、第2復号化方式における、暗号文と平文との関係を示す模式図である。
上述したように、第2復号化方式は、第2暗号化方式の逆変換である。このため、ここでは、第2復号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、右3ビットの循環シフトとなっている。
以下では、説明をわかりやすくするために、第2復号化前の信号である32ビットの値をYとした場合における、第2復号化後の信号である32ビットの値をG−1(Y)として表現することもある。
また、第2復号化方式は、第2暗号化方式の逆変換であることから、
−1{G(Y)} = Y
となる。
より具体的には、復号化部12は、(1)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが非活性状態であるときに、当該信号を、第1復号化方式で復号化する。また、復号化部12は、(2)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号の読み出し先がCPU30であれば、当該信号を第1復号化方式で復号化し、当該信号の読み出し先が記録媒体40であれば、当該信号を第2復号化方式で復号化する。そして、復号化部12は、(3)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが非活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号を、第2復号化方式で復号化する。
暗号化方式設定部15は、外部からの操作を受け付け、受け付けた操作に応じて、第1暗号化方式及び第1復号化方式、又は、第2暗号化方式及び第2復号化方式を設定する。
暗号化方式設定部15は、例えば、タッチパネルを含み、暗号化装置10を利用するユーザからのタッチ操作を受け付けることで外部からの操作を受け付けるとしてもよい。また、暗号化方式設定部15は、例えば、外部機器(例えば、スマートフォン)と通信可能な通信回路を含み、外部機器による操作信号を受信することで外部からの操作を受け付けるとしてもよい。また、暗号化方式設定部15は、例えば、ディップスイッチを含み、暗号化装置10を利用するユーザからのスイッチ切り替え操作を受け付けることで外部からの操作を受け付けるとしてもよい。
但し、暗号化方式設定部15が受け付ける操作には、CPU30による操作が含まれないことが望ましい。これは、CPU30による悪意のある操作を受け付けてしまうことにより発生し得る、暗号化システム1におけるセキュリティホールを未然に防止するためである。
以下、上記構成の暗号化システム1が行う動作について、図面を参照しながら説明する。
[2.動作]
まず、記録媒体40からメモリ20にロードされたプログラムを、CPU30が実行しようとする場合(以下、「ケース1」と呼ぶ。)における暗号化システム1の動作について説明する。
図5は、ケース1における暗号化システム1の動作を示す模式図である。
図5に示されるように、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスA」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスAに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、CPU30によって利用されるために、メモリ20のアドレスAから、値がF(X)となる信号が読み出されると、復号化部12は、アドレスAに対応する第1フラグ、第2フラグが(1、0)であるため、その信号に対して、第1復号化方式による復号化を行い、値がF−1{F(X)}、すなわち、Xとなる信号を生成する。このため、CPU30は、元々記録媒体40に記録されていた状態に復元された信号(プログラム)を利用することとなる。
このように、ケース1において、CPU30は、記録媒体40からメモリ20にロードされたプログラムを、正しく実行することができる。
次に、記録媒体40からメモリ20のディスクキャッシュ領域に書き込まれたデータを、値を更新することなく、記録媒体40へライトバックしようとする場合(以下、「ケース2」呼ぶ。)における暗号化システム1の動作について説明する。
図6は、ケース2における暗号化システム1の動作を示す模式図である。
図6に示されるように、記録媒体40から値がXとなる信号(データ)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスB」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスBに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、記録媒体40にライトバックするために、メモリ20のアドレスAから、値がF(X)となる信号が読み出されると、復号化部12は、アドレスAに対応する第1フラグ、第2フラグが(1、0)であるため、その信号に対して、第1復号化方式による復号化を行い、値がF−1{F(X)}、すなわち、Xとなる信号を生成する。これにより、記録媒体40は、元々記録媒体40に記録されていた状態に復元された信号(データ)がライトバックされることとなる。
このように、ケース2において、記録媒体40は、正しくライトバックされることとなる。
次に、記録媒体40からメモリ20のディスクキャッシュ領域に書き込まれたデータを、CPU30が値を更新した後に、記録媒体40へライトバックしようとする場合(以下、「ケース3」呼ぶ。)における暗号化システム1の動作について説明する。
図7は、ケース3における暗号化システム1の動作を示す模式図である。
図7に示されるように、記録媒体40から値がXとなる信号(データ)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスC」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、CPU30から値がYとなる信号(データ)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、アドレスCに、値がG(Y)となる信号が書き込まれる。すなわち、値がG(Y)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
その後、記録媒体40にライトバックするために、メモリ20のアドレスCから、値がG(Y)となる信号が読み出されると、復号化部12は、アドレスCに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先が記録媒体40であるため、その信号に対して、第2復号化方式による復号化を行い、値がG−1{G(Y)}、すなわち、Yとなる信号を生成する。これにより、記録媒体40は、元々CPU30から出力された状態に復元された信号(データ)がライトバックされることとなる。
このように、ケース3において、記録媒体40は、正しくライトバックされることとなる。
次に、記録媒体40からメモリ20にロードされたプログラムを、CPU30が不正なプログラムに書き換えた後に、CPU30がその不正なプログラムを実行しようとする場合(以下、「ケース4」と呼ぶ。)における暗号化システム1の動作について説明する。
図8は、ケース4における暗号化システム1の動作を示す模式図である。
図8に示されるように、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスD」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、CPU30から値がYとなる信号(不正なプログラム)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、アドレスDに、値がG(Y)となる信号が書き込まれる。すなわち、値がG(Y)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
その後、CPU30によって利用されるために、メモリ20のアドレスDから、値がG(Y)となる信号が読み出されると、復号化部12は、アドレスDに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF−1{G(Y)}となる信号を生成する。
このF−1{G(Y)}となる信号は、値がYとなる不正なプログラムとは異なる信号である。これにより、CPU30は、値がYとなる不正なプログラムを実行しない。
このように、ケース4において、CPU30は、不正なプログラムを実行しない。
なお、このとき、値がF−1{G(Y)}となる信号が、CPU30によって実行されることのない信号であることが望ましい。すなわち、CPU30の命令セットと第1暗号化方式と第2暗号化方式との関係は、CPU30によって実行可能な任意のプログラムが、第2暗号化方式によって暗号化された後に第1復号化方式によって復号化された場合に、復号化された信号が、CPU30によって実行不能な信号となる関係であることが望ましい。
次に、CPU30がメモリ20に不正なプログラムを書き込んだ後に、その不正なプログラムを記録媒体40からメモリ20にロードされたプログラムで更新し、さらにその後、CPU30がその更新されたプログラムを実行しようとする場合(以下、「ケース5」と呼ぶ。)における暗号化システム1の動作について説明する。
図9は、ケース5における暗号化システム1の動作を示す模式図である。
図9に示されるように、CPU30から値がYとなる信号(不正なプログラム)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスE」と呼ぶ。)に、値がG(Y)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(0、1)に更新する。
その後、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、アドレスEに、値がF(X)となる信号が書き込まれる。すなわち、値がF(X)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを(0、1)から(1、0)に更新する。
その後、CPU30によって利用されるために、メモリ20のアドレスEから、値がF(X)となる信号が読み出されると、復号化部12は、アドレスEに対応する第1フラグ、第2フラグが(1、0)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF−1{F(X)}、すなわち、Xとなる信号を生成する。
このように、ケース5において、CPU30は、記録媒体40からメモリ20にロードされたプログラムを、正しく実行することができる。
次に、記録媒体40からメモリ20にロードされたプログラムを、CPU30が初期化した後に、CPU30によって、ワークエリアとしてデータが書き込まれ、さらにその後、CPU30によってそのデータ利用しようとする場合(以下、「ケース6」と呼ぶ。)における暗号化システム1の動作について説明する。
図10は、ケース6における暗号化システム1の動作を示す模式図である。
図10に示されるように、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスF」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、CPU30から値がYとなる信号(初期化データ)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、アドレスFに、値がG(Y)となる信号が書き込まれる。すなわち、値がG(Y)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
その後、CPU30から値がZとなる信号(ワークデータ)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Z)となる信号を生成する。そして、アドレスFに、値がG(Z)となる信号が書き込まれる。すなわち、値がG(Z)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、1)から(0、1)に更新する。
その後、CPU30によって利用されるために、メモリ20のアドレスFから、値がG(Z)となる信号が読み出されると、復号化部12は、アドレスFに対応する第1フラグ、第2フラグが(0、1)であり、読み出し先がCPU30であるため、その信号に対して、第2復号化方式による復号化を行い、値がG−1{G(Z)}、すなわち、Zとなる信号を生成する。
このように、ケース6において、CPU30は、ワークエリアとして書き込まれたデータを、正しく利用することができる。
[3.効果]
上記構成の暗号化装置10によると、ケース4、ケース5に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれてしまったとしても、そのCPUに30よるその悪意のあるプログラムの実行を抑止し得る。
また、上記構成の暗号化装置10によると、ケース1、ケース2、ケース3、ケース6に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれない場合には、CPU30は、正常な動作を行う。
(補足)
以上のように、本出願において開示する技術の例示として、実施の形態について説明した。しかしながら本発明による技術は、これらに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。
以下に、本発明における変形例の一例について説明する。
実施の形態では、暗号化部11は、CPU30から出力された信号を、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する、第1暗号化方式とは異なる第2暗号化方式で暗号化する構成の例であるとして説明した。
これに対して、本変形例では、変形例に係る暗号化部は、CPU30から出力された信号に対して、何も変換を行わない構成の例となっている。言い換えれば、変形例に係る暗号化部は、第2暗号化方式として、暗号文と平文とが等しくなる変換を行う構成の例となっている。
ここでは、第2暗号化方式は、暗号文と平文とが等しいため、第2暗号化前の信号である32ビットの値をYとした場合における、第2暗号化後の信号である32ビットの値をG(Y)として表現すると、
G(Y) = Y
となる。
また、ここでは、第2復号化方式は、第2暗号化方式の逆変換であるため、第2復号化前の信号である32ビットの値をYとした場合における、第2復号化後の信号である32ビットの値をG−1(Y)として表現すると
−1(Y) = Y
となる。
すなわち、本変形例では、変形例に係る復号化部は、(1)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが非活性状態であるときに、当該信号を、第1復号化方式で復号化する。また、変形例に係る復号化部は、(2)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号の読み出し先がCPU30であれば、当該信号を第1復号化方式で復号化し、当該信号の読み出し先が記録媒体40であれば、当該信号に対して何も変換しない。そして、実施の形態に係る復号化部は、(3)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが非活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号に対して何も変換しない。
暗号化部11の替わりに上記変形例に係る暗号化部を備え、復号化部12の替わりに上記変形例に係る復号化部を備える変形例に係る暗号化装置によると、暗号化装置10と同様に、ケース4、ケース5に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれてしまったとしても、そのCPUに30よるその悪意のあるプログラムの実行を抑止し得る。
また、この変形例に係る暗号化装置によると、暗号化装置10と同様に、ケース1、ケース2、ケース3、ケース6に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれない場合には、CPU30は、正常な動作を行う。
以下、ケース1〜ケース6のそれぞれについて、暗号化装置10の替わりに上記変形例に係る暗号化装置を備える、変形例に係る暗号化システムの行う動作について説明する。
ケース1、ケース2の場合には、第2暗号化方式による暗号化、及び第2復号化方式による復号化は行われない。このため、変形例に係る暗号化システムは、暗号化システム1と同様の動作を行う。
ケース3の場合には、記録媒体40から値がXとなる信号(データ)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレスCに、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、CPU30から値がYとなる信号(データ)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、アドレスCに、値がYとなる信号が書き込まれる。すなわち、値がYとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
その後、記録媒体40にライトバックするために、メモリ20のアドレスCから、値がYとなる信号が読み出されると、変形例に係る復号化部は、アドレスCに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先が記録媒体40であるため、その信号に対して、復号化を行わない。これにより、記録媒体40は、元々CPU30から出力された値がYとなる信号(データ)がライトバックされることとなる。
このように、ケース3において、記録媒体40は、正しくライトバックされることとなる。
ケース4の場合には、記録媒体40から値がXとなる信号(プログラム)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレスDに、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、CPU30から値がYとなる信号(不正なプログラム)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、アドレスDに、値がYとなる信号が書き込まれる。すなわち、値がYとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
その後、CPU30によって利用されるために、メモリ20のアドレスDから、値がYとなる信号が読み出されると、変形例に係る復号化部は、アドレスDに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF−1(Y)となる信号を生成する。
このF−1(Y)となる信号は、値がYとなる不正なプログラムとは異なる信号である。これにより、CPU30は、値がYとなる不正なプログラムを実行しない。
このように、ケース4において、CPU30は、不正なプログラムを実行しない。
なお、このとき、値がF−1(Y)となる信号が、CPU30によって実行されることのない信号であることが望ましい。すなわち、CPU30の命令セットと第1暗号化方式との関係は、CPU30によって実行可能な任意のプログラムが、第1復号化方式によって復号化された場合に、復号化された信号が、CPU30によって実行不能な信号となる関係であることが望ましい。
ケース5の場合には、CPU30から値がYとなる信号(不正なプログラム)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、メモリ20の書き込みアドレスEに、値がYとなる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(0、1)に更新する。
その後、記録媒体40から値がXとなる信号(プログラム)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、アドレスEに、値がF(X)となる信号が書き込まれる。すなわち、値がF(X)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを(0、1)から(1、0)に更新する。
その後、CPU30によって利用されるために、メモリ20のアドレスEから、値がF(X)となる信号が読み出されると、変形例に係る復号化部は、アドレスEに対応する第1フラグ、第2フラグが(1、0)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF−1{F(X)}、すなわち、Xとなる信号を生成する。
このように、ケース5において、CPU30は、記録媒体40からメモリ20にロードされたプログラムを、正しく実行することができる。
ケース6の場合には、記録媒体40から値がXとなる信号(プログラム)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレスFに、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
その後、CPU30から値がYとなる信号(初期化データ)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、アドレスFに、値がYとなる信号が書き込まれる。すなわち、値がYとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
その後、CPU30から値がZとなる信号(ワークデータ)が出力されると、変形例に係る暗号化部11は、暗号化を行わない。そして、アドレスFに、値がZとなる信号が書き込まれる。すなわち、値がZとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、1)から(0、1)に更新する。
その後、CPU30によって利用されるために、メモリ20のアドレスFから、値がZとなる信号が読み出されると、復号化部12は、アドレスFに対応する第1フラグ、第2フラグが(0、1)であり、読み出し先がCPU30であるため、復号化を行わない。
このように、ケース6において、CPU30は、ワークエリアとして書き込まれたデータを、正しく利用することができる。
本発明は、メモリに書き込む信号を暗号化する暗号化装置、暗号化システム、及び暗号化方法に広く利用可能である。
1 暗号化システム
10 暗号化装置
11 暗号化部
12 復号化部
13 フラグ記憶部
14 フラグ更新部
15 暗号化方式設定部
20 メモリ
30 CPU
40 記録媒体

Claims (10)

  1. メモリに書き込む信号を暗号化する暗号化装置であって、
    記録媒体から出力された、CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する暗号化部と、
    前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を備える
    暗号化装置。
  2. 前記第1暗号化方式は、前記アドレス単位の循環シフトである
    請求項1に記載の暗号化装置。
  3. 前記CPUの命令セットと前記第1暗号化方式との関係は、前記CPUによって実行可能な任意の前記プログラムが、前記第1復号化方式によって復号化された場合に、復号化された信号が、前記CPUによって実行不能な信号となる関係である
    請求項1又は2に記載の暗号化装置。
  4. さらに、前記メモリの各アドレスに対応する第1フラグと第2フラグとを更新するフラグ更新部とを備え、
    前記暗号化部は、さらに、CPUから出力された信号を、前記メモリのアドレス単位で、暗号文と平文とが可逆的に1対1に対応する、前記第1暗号化方式とは異なる第2暗号化方式で暗号化し、
    前記フラグ更新部は、(1)前記記録媒体から出力された前記プログラムの、前記第1暗号化方式による暗号文が前記メモリに書き込まれる場合に、書き込まれるアドレスに対応する前記第1フラグを活性状態とし、(2)前記CPUから出力された信号の、前記第2暗号化方式による暗号文が前記メモリに書き込まれる場合に、書き込まれるアドレスに対応する前記第2フラグを活性状態とし(3)前記第2フラグが活性状態である場合において、前記記録媒体から出力された前記プログラムの、前記第1暗号化方式による暗号文が前記メモリに書き込まれるときに、書き込まれるアドレスに対応する前記第2フラグを非活性状態とし、(4)前記第2フラグが活性状態である場合において、前記CPUから出力された信号の、前記第2暗号化方式による暗号文が前記メモリに書き込まれるときに、書き込まれるアドレスに対応する前記第1フラグを非活性状態とし、
    前記復号化部は、(1)前記メモリから信号が読み出された場合において、当該信号のアドレスに対応する前記第1フラグが活性状態で、かつ、当該アドレスに対応する前記第2フラグが非活性状態であるときに、当該信号を、前記第1復号化方式で復号化し、(2)前記メモリから信号が読み出された場合において、当該信号のアドレスに対応する前記第1フラグが活性状態で、かつ、当該アドレスに対応する前記第2フラグが活性状態であるときに、当該信号の読み出し先が前記CPUであれば、当該信号を第1復号化方式で復号化し、当該信号の読み出し先が前記記録媒体であれば、当該信号を、前記第2暗号化方式の逆変換である第2復号化方式で復号化し、(3)前記メモリから信号が読み出された場合において、当該信号のアドレスに対応する前記第1フラグが非活性状態で、かつ、当該アドレスに対応する前記第2フラグが活性状態であるときに、当該信号を、前記第2復号化方式で復号化する
    請求項1又は2に記載の暗号化装置。
  5. 前記第2暗号化方式は、前記アドレス単位の循環シフトである
    請求項4に記載の暗号化装置。
  6. 前記CPUの命令セットと前記第1暗号化方式と前記第2暗号化方式との関係は、前記CPUによって実行可能な任意の前記プログラムが、前記第2暗号化方式によって暗号化された後に前記第1復号化方式によって復号化された場合に、復号化された信号が、前記CPUによって実行不能な信号となる関係である
    請求項4又は5に記載の暗号化装置。
  7. さらに、外部からの操作を受け付け、当該操作に応じて、前記第1暗号化方式及び前記第1復号化方式、又は、前記第2暗号化方式及び前記第2復号化方式を設定する暗号化方式設定部を備える
    請求項4〜6のいずれか1項に記載の暗号化装置。
  8. 前記暗号化方式設定部が受け付ける操作には、前記CPUによる操作が含まれない
    請求項7に記載の暗号化装置。
  9. CPUと、メモリと、記録媒体と、前記メモリに書き込む信号を暗号化する暗号化装置とを備え、
    前記暗号化装置は、
    前記記録媒体から出力された、前記CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化部と、
    前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を含む
    暗号化システム。
  10. メモリに書き込む信号を暗号化する暗号化方法であって、
    記録媒体から出力された、CPUが実行する命令を少なくとも含むプログラムを、前記メモリの単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化ステップと、
    前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化ステップと、を含む
    暗号化方法。
JP2018044143A 2018-03-12 2018-03-12 暗号化装置、暗号化システム、及び暗号化方法 Active JP7101500B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018044143A JP7101500B2 (ja) 2018-03-12 2018-03-12 暗号化装置、暗号化システム、及び暗号化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018044143A JP7101500B2 (ja) 2018-03-12 2018-03-12 暗号化装置、暗号化システム、及び暗号化方法

Publications (2)

Publication Number Publication Date
JP2019161389A true JP2019161389A (ja) 2019-09-19
JP7101500B2 JP7101500B2 (ja) 2022-07-15

Family

ID=67994982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018044143A Active JP7101500B2 (ja) 2018-03-12 2018-03-12 暗号化装置、暗号化システム、及び暗号化方法

Country Status (1)

Country Link
JP (1) JP7101500B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039576A (ja) * 2008-07-31 2010-02-18 Mutsumi Ogawa メモリ管理方法
JP2010193341A (ja) * 2009-02-20 2010-09-02 Fujitsu Semiconductor Ltd 情報処理装置及び改竄無効化回路
JP2012004661A (ja) * 2010-06-14 2012-01-05 Fujitsu Semiconductor Ltd プロセッサ及びプロセッサシステム
JP2012234362A (ja) * 2011-04-28 2012-11-29 Fujitsu Ltd 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
US20170364688A1 (en) * 2016-06-20 2017-12-21 Intel Corporation Technologies for trusted i/o protection of i/o data with header information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010039576A (ja) * 2008-07-31 2010-02-18 Mutsumi Ogawa メモリ管理方法
JP2010193341A (ja) * 2009-02-20 2010-09-02 Fujitsu Semiconductor Ltd 情報処理装置及び改竄無効化回路
JP2012004661A (ja) * 2010-06-14 2012-01-05 Fujitsu Semiconductor Ltd プロセッサ及びプロセッサシステム
JP2012234362A (ja) * 2011-04-28 2012-11-29 Fujitsu Ltd 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム
US20170364688A1 (en) * 2016-06-20 2017-12-21 Intel Corporation Technologies for trusted i/o protection of i/o data with header information

Also Published As

Publication number Publication date
JP7101500B2 (ja) 2022-07-15

Similar Documents

Publication Publication Date Title
JP4551802B2 (ja) プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
JP4500306B2 (ja) 解読待ち時間が削減されたメモリ暗号化のための装置及び方法
JP6345237B2 (ja) 平文データを暗号化するための方法および装置
US7929692B2 (en) Firmware encrypting and decrypting method and an apparatus using the same
JP4767985B2 (ja) 複数モードでのaes暗号化または復号の単一命令での実行
JP4327865B2 (ja) コンテンツ処理装置、暗号処理方法及びプログラム
WO2019109967A1 (en) Storage apparatus and method for address scrambling
JP4758904B2 (ja) 機密情報処理方法
JP2023510311A (ja) メモリ・ベースの暗号化
WO2019120293A1 (en) Off-chip memory address scrambling apparatus and method for system on chip
US9218296B2 (en) Low-latency, low-overhead hybrid encryption scheme
JP7101500B2 (ja) 暗号化装置、暗号化システム、及び暗号化方法
CN102385679A (zh) 装置、方法和程序
KR100694061B1 (ko) 데이터를 안전하게 저장하는 장치 및 방법
KR20080096054A (ko) 데이터의 암호화 저장 방법 및 암호화된 데이터의 판독방법
JP2006330126A (ja) 暗号化処理方法、および復号化処理方法
CN109902492B (zh) 集成电路外部存储器中写加密信息集合的方法和集成电路
JP6811625B2 (ja) ファイル中継装置及びファイル中継プログラム
JP4867935B2 (ja) 暗号化データ記憶装置、暗号化データ管理方法、データ暗号化装置、及び暗号化データ管理制御プログラム
JP2005172866A (ja) 暗号化/復号化システム
JP6077421B2 (ja) 記憶装置、記憶システムおよびプログラム
JP7063628B2 (ja) 暗号化装置、暗号化方法およびプログラム
JP2014060618A (ja) 制御機器、制御システム、データ格納方法及びプログラム
JP4887668B2 (ja) 暗号化復号処理回路および暗号化復号システム
JP4939305B2 (ja) 暗号/復号装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210212

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20210212

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20210212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211214

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220202

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

R150 Certificate of patent or registration of utility model

Ref document number: 7101500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150