(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-07
(45)【発行日】2022-07-15
(54)【発明の名称】暗号化装置、暗号化システム、及び暗号化方法
(51)【国際特許分類】
H04L 9/16 20060101AFI20220708BHJP
G06F 21/12 20130101ALI20220708BHJP
G06F 21/14 20130101ALI20220708BHJP
G06F 21/60 20130101ALI20220708BHJP
【FI】
H04L9/16
G06F21/12 310
G06F21/14
G06F21/60 320
(21)【出願番号】P 2018044143
(22)【出願日】2018-03-12
【審査請求日】2021-02-12
(73)【特許権者】
【識別番号】521065827
【氏名又は名称】岸本 珠子
(74)【代理人】
【識別番号】100109210
【氏名又は名称】新居 広守
(72)【発明者】
【氏名】篠崎 公則
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2012-234362(JP,A)
【文献】特開2010-039576(JP,A)
【文献】特開2012-004661(JP,A)
【文献】特開2010-193341(JP,A)
【文献】米国特許出願公開第2017/0364688(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/16
G06F 21/60
G06F 21/12
G06F 21/14
(57)【特許請求の範囲】
【請求項1】
メモリに書き込む
プログラムを暗号化する暗号化装置であって、
記録媒体から出力された、CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する暗号化部と、
前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を備え
、
さらに、前記メモリの各アドレスに対応する第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復号化方式で復号化する
暗号化装置。
【請求項2】
前記第1暗号化方式は、前記アドレス単位の循環シフトである
請求項1に記載の暗号化装置。
【請求項3】
前記CPUの命令セットと前記第1暗号化方式との関係は、前記CPUによって実行可能な
、前記命令セットに準拠する任意の前記プログラムが、
前記第1暗号化方式の逆変換である前記第1復号化方式によって復号化された場合に、復号化された信号が、前記CPUによって実行不能な信号となる関係である
請求項1又は2に記載の暗号化装置。
【請求項4】
前記第2暗号化方式は、前記アドレス単位の循環シフトである
請求項
1に記載の暗号化装置。
【請求項5】
前記CPUの命令セットと前記第1暗号化方式と前記第2暗号化方式との関係は、前記CPUによって実行可能な
、前記命令セットに準拠する任意の前記プログラムが、前記第2暗号化方式によって暗号化された後に
前記第1暗号化方式の逆変換である前記第1復号化方式によって復号化された場合に、復号化された信号が、前記CPUによって実行不能な信号となる関係である
請求項
1又は
4に記載の暗号化装置。
【請求項6】
さらに、外部からの操作を受け付け、当該操作に応じて、前記第1暗号化方式及び前記第1復号化方式、又は、前記第2暗号化方式及び前記第2復号化方式を設定する暗号化方式設定部を備える
請求項
1、4~5のいずれか1項に記載の暗号化装置。
【請求項7】
前記暗号化方式設定部が受け付ける操作には、前記CPUによる操作が含まれない
請求項
6に記載の暗号化装置。
【請求項8】
CPUと、メモリと、記録媒体と、前記メモリに書き込む
プログラムを暗号化する暗号化装置とを備え、
前記暗号化装置は、
前記記録媒体から出力された、前記CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化部と、
前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を含
み、
さらに、前記メモリの各アドレスに対応する第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復号化方式で復号化する
暗号化システム。
【請求項9】
メモリに書き込む
プログラムを暗号化する暗号化方法であって、
記録媒体から出力された、CPUが実行する命令を少なくとも含むプログラムを、前記メモリの
アドレス単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化ステップと、
前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化ステップと、を含
み、
さらに、前記メモリの各アドレスに対応する第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復号化方式で復号化する
暗号化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリに書き込む信号を暗号化する暗号化装置、暗号化システム、及び暗号化方法に関する。
【背景技術】
【0002】
従来、プログラムを暗号化する暗号化技術が知られている。例えば、特許文献1には、対象とするプログラムに対して新たなジャンプ命令を挿入し、ジャンプ命令挿入後のプログラムに対して暗号ブロック連鎖モードによる暗号化を行う暗号化技術が記載されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
CPU(Central Processing Unit)の実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまうと、そのCPUは、その悪意のあるプログラムを実行してしまうことがある。
【0005】
そこで、本発明は、CPUの実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る暗号化装置、暗号化システム、及び暗号化方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る暗号化装置は、メモリに書き込む信号を暗号化する暗号化装置であって、記録媒体から出力された、CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する暗号化部と、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を備える。
【0007】
また、本発明の一態様に係る暗号化システムは、CPUと、メモリと、記録媒体と、前記メモリに書き込む信号を暗号化する暗号化装置とを備え、前記暗号化装置は、前記記録媒体から出力された、前記CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化部と、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を含む。
【0008】
また、本発明の一態様に係る暗号化方法は、メモリに書き込む信号を暗号化する暗号化方法であって、記録媒体から出力された、CPUが実行する命令を少なくとも含むプログラムを、前記メモリの単位で、暗号文と平文とが1対1に対応する第1暗号化方式で暗号化する暗号化ステップと、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化ステップと、を含む。
【発明の効果】
【0009】
本発明によれば、CPUの実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る。
【図面の簡単な説明】
【0010】
【
図1】
図1は、実施の形態1に係る暗号化システムの構成を示すブロック図である。
【
図2】
図2は、実施の形態1に係る暗号化装置構成を示すブロック図である。
【
図3A】
図3Aは、第1暗号化方式における、暗号文と平文との関係を示す模式図である。
【
図3B】
図3Bは、第2暗号化方式における、暗号文と平文との関係を示す模式図である。
【
図4A】
図4Aは、第1復号化方式における、暗号文と平文との関係を示す模式図である。
【
図4B】
図4Bは、第2復号化方式における、暗号文と平文との関係を示す模式図である。
【
図5】
図5は、ケース1における暗号化システム1の動作を示す模式図である。
【
図6】
図6は、ケース2における暗号化システム1の動作を示す模式図である。
【
図7】
図7は、ケース3における暗号化システム1の動作を示す模式図である。
【
図8】
図8は、ケース4における暗号化システム1の動作を示す模式図である。
【
図9】
図9は、ケース5における暗号化システム1の動作を示す模式図である。
【
図10】
図10は、ケース6における暗号化システム1の動作を示す模式図である。
【発明を実施するための形態】
【0011】
(本発明の一態様を得るに至った経緯)
発明者は、CPUの実行対象とするプログラムを記憶するメモリに悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る方法について検討した。その結果、発明者は、上記抑止には、CPUの実行対象となるプログラムを、一旦、直接CPUが実行できない形式の信号に変換(例えば、暗号化)してからメモリに記憶させておき、CPUがプログラムを実行する際には、その信号を逆変換(例えば、復号化)してCPUが実行できる形式のプログラムに戻してからそのプログラムをCPUに実行させることが有効である知見を得た。そして、発明者は、その知見に基づいて、本発明の一態様に係る暗号化装置に想到した。
【0012】
すなわち、発明者が想到した本発明の一態様に係る暗号化装置は、メモリに書き込む信号を暗号化する暗号化装置であって、記録媒体から出力された、CPUが実行する命令を含むプログラムを、前記メモリのアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する暗号化部と、前記メモリから読み出された信号を、前記メモリのアドレス単位で、前記第1暗号化方式の逆変換である第1復号化方式で復号化する復号化部と、を備える。
【0013】
上記暗号化装置によると、メモリに悪意のあるプログラムが書き込まれてしまったとしても、上記暗号化装置は、メモリから読み出された悪意のあるプログラムに対して、第1復号化方式で復号化する。このため、CPUが、メモリから読み出された悪意のあるプログラムに対して第1復号化方式で復号化された信号を実行しようとしても、悪意のあるプログラムとして実行されることはない。
【0014】
従って、上記暗号化装置によると、CPUの実行対象とするプログラムを記憶するメモリに、悪意のあるプログラムが書き込まれてしまったとしても、そのCPUによるその悪意のあるプログラムの実行を抑止し得る。
【0015】
また、上記暗号化装置は、例えば、特許文献1に記載された従来のプログラムを暗号化する暗号化技術に比べて、より平易な方法で、プログラムに対する暗号化を行う。
【0016】
このため、上記暗号化装置によると、従来の暗号化技術を利用する場合よりも、より回路規模が少ない暗号化装置を実現し得る。
【0017】
以下、本発明の一態様に係る暗号化装置の具体例について、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、形状、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【0018】
(実施の形態)
[1.構成]
図1は、本実施の形態に係る暗号化装置10を含む、本実施の形態に係る暗号化システム1の構成を示すブロック図である。
【0019】
図1に示されるように、暗号化システム1は、暗号化装置10と、メモリ20と、CPU30と、記録媒体40とを含んで構成される。
【0020】
CPU30は、いわゆるプロセッサと呼ばれる情報処理装置であって、例えば、半導体集積回路によって実現される。CPU30は、例えば、CPUコアとキャッシュメモリとを含んで構成されてもよい。
【0021】
記録媒体40は、CPU30によって利用されるプログラム、データ等を記録する記録媒体である。記録媒体40は、CPU30によって利用されるプログラム、データ等を記録することができれば、どのような記録媒体であってもよい。記録媒体40は、例えば、ハードディスクドライブ(HDD:Hard Disk Drive)であってもよいし、ブルーレイディスク(登録商標)であってもよい。ここでは、記録媒体40が記憶するプログラムには、CPU30が実行する命令が、少なくとも1つ含まれている。
【0022】
メモリ20は、CPU30のメインメモリとして利用されるメモリである。メモリ20は、例えば、半導体集積回路によって実現される。メモリ20は、CPU30のメインメモリとして利用されるものであれば、どのようなメモリであってもよい。メモリ20は、例えば、DRAM(Dynamic Random Access Memory)であってもよいし、SRAM(Static Random Access Memory)であってもよい。
【0023】
メモリ20は、例えば、記録媒体40に記録されているプログラムがロードされるプログラム記憶領域として機能する。また、メモリ20は、例えば、CPUが一時的に利用するデータのワークエリアとして機能する。また、メモリ20は、例えば、記録媒体40に記録されているデータのディスクキャッシュとして機能する。
【0024】
暗号化装置10は、メモリ20に書き込む信号を暗号化し、メモリ20から読み出された信号を復号化する。暗号化装置10は、例えば、専用ハードウエアからなる半導体集積回路によって実現されてもよいし、プロセッサとメモリとを含み、メモリに記憶されるプログラムをプロセッサが実行することによって実現されてもよい。
【0025】
以下、暗号化装置10について、図面を用いて詳細に説明する。
【0026】
図2は、暗号化装置10の構成を示すブロック図である。
【0027】
図2に示されるように、暗号化装置10は、暗号化部11と、復号化部12と、フラグ記憶部13と、フラグ更新部14と、暗号化方式設定部15とを含んで構成される。
【0028】
暗号化部11は、記録媒体40から出力された信号を、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する第1暗号化方式で暗号化する。
【0029】
図3Aは、第1暗号化方式における、暗号文と平文との関係を示す模式図である。
【0030】
ここでは、第1暗号化方式は、メモリ20のアドレス単位の循環シフト(ローテート)であるとする。しかしながら、第1暗号化方式は、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する暗号化方式であれば、必ずしも、循環シフトである構成に限定される必要はない。例えば、奇数ビットとその1ビット上位ビット側の偶数ビットとがそれぞれ置換される暗号化方式であってもよい。また、ここでは、メモリ20のワード長が32ビットである場合の例となっているが、メモリ20のワード長は、必ずしも32ビットに限定される必要はない。例えば、メモリ20のワード長が16ビットである例もあり得る。
【0031】
図3Aに示されるように、ここでは、第1暗号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、左2ビットの循環シフトとなっている。
【0032】
以下では、説明をわかりやすくするために、第1暗号化前の信号である32ビットの値をXとした場合における、第1暗号化後の信号である32ビットの値をF(X)として表現する。
【0033】
また、暗号化部11は、CPU30から出力された信号を、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する、第1暗号化方式とは異なる第2暗号化方式で暗号化する。
【0034】
図3Bは、第2暗号化方式における、暗号文と平文との関係を示す模式図である。
【0035】
ここでは、第2暗号化方式は、メモリ20のアドレス単位の循環シフト(ローテート)であるとする。しかしながら、第2暗号化方式は、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する、第1暗号化方式とは異なる暗号化方式であれば、必ずしも、循環シフトである構成に限定される必要はない。例えば、ビットの並び順を反転させる暗号化方式であってもよい。また、ここでは、メモリ20のワード長が32ビットである場合の例となっているが、メモリ20のワード長は、必ずしも32ビットに限定される必要はない。例えば、メモリ20のワード長が16ビットである例もあり得る。
【0036】
図3Bに示されるように、ここでは、第2暗号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、左3ビットの循環シフトとなっている。
【0037】
以下では、説明をわかりやすくするために、第2暗号化前の信号である32ビットの値をYとした場合における、第2暗号化後の信号である32ビットの値をG(Y)として表現する。
【0038】
フラグ記憶部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フラグは非活性状態であるとしてもよい。
【0039】
ここでは、第1フラグ及び第2フラグは、初期状態において非活性状態であるとする。
【0040】
なお、ここでは、フラグ記憶部13は、暗号化装置10の内部に含まれるとして説明するが、必ずしも暗号化装置10の内部に含まれる構成に限定される必要はない。例えば、フラグ記憶部13は、メモリ20の記憶領域の一部として実現されてもよい。
【0041】
フラグ更新部14は、メモリ20の各アドレスに対応する第1フラグと第2フラグとを更新する。
【0042】
より具体的には、フラグ更新部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フラグを非活性状態とする。
【0043】
復号化部12は、メモリ20から出力された信号を、メモリ20のアドレス単位で、第1暗号化方式の逆変換である第1復号化方式、又は第2暗号化方式の逆変換である第2復号化方式で復号化する。
【0044】
図4Aは、第1復号化方式における、暗号文と平文との関係を示す模式図である。
【0045】
上述したように、第1復号化方式は、第1暗号化方式の逆変換である。このため、ここでは、第1復号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、右2ビットの循環シフトとなっている。
【0046】
以下では、説明をわかりやすくするために、第1復号化前の信号である32ビットの値をXとした場合における、第1復号化後の信号である32ビットの値をF-1(X)として表現することもある。
【0047】
また、第1復号化方式は、第1暗号化方式の逆変換であることから、
F-1{F(X)} = X
となる。
【0048】
図4Bは、第2復号化方式における、暗号文と平文との関係を示す模式図である。
【0049】
上述したように、第2復号化方式は、第2暗号化方式の逆変換である。このため、ここでは、第2復号化方式は、メモリ20のアドレス単位である32ビット単位で行われる、右3ビットの循環シフトとなっている。
【0050】
以下では、説明をわかりやすくするために、第2復号化前の信号である32ビットの値をYとした場合における、第2復号化後の信号である32ビットの値をG-1(Y)として表現することもある。
【0051】
また、第2復号化方式は、第2暗号化方式の逆変換であることから、
G-1{G(Y)} = Y
となる。
【0052】
より具体的には、復号化部12は、(1)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが非活性状態であるときに、当該信号を、第1復号化方式で復号化する。また、復号化部12は、(2)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号の読み出し先がCPU30であれば、当該信号を第1復号化方式で復号化し、当該信号の読み出し先が記録媒体40であれば、当該信号を第2復号化方式で復号化する。そして、復号化部12は、(3)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが非活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号を、第2復号化方式で復号化する。
【0053】
暗号化方式設定部15は、外部からの操作を受け付け、受け付けた操作に応じて、第1暗号化方式及び第1復号化方式、又は、第2暗号化方式及び第2復号化方式を設定する。
【0054】
暗号化方式設定部15は、例えば、タッチパネルを含み、暗号化装置10を利用するユーザからのタッチ操作を受け付けることで外部からの操作を受け付けるとしてもよい。また、暗号化方式設定部15は、例えば、外部機器(例えば、スマートフォン)と通信可能な通信回路を含み、外部機器による操作信号を受信することで外部からの操作を受け付けるとしてもよい。また、暗号化方式設定部15は、例えば、ディップスイッチを含み、暗号化装置10を利用するユーザからのスイッチ切り替え操作を受け付けることで外部からの操作を受け付けるとしてもよい。
【0055】
但し、暗号化方式設定部15が受け付ける操作には、CPU30による操作が含まれないことが望ましい。これは、CPU30による悪意のある操作を受け付けてしまうことにより発生し得る、暗号化システム1におけるセキュリティホールを未然に防止するためである。
【0056】
以下、上記構成の暗号化システム1が行う動作について、図面を参照しながら説明する。
【0057】
[2.動作]
まず、記録媒体40からメモリ20にロードされたプログラムを、CPU30が実行しようとする場合(以下、「ケース1」と呼ぶ。)における暗号化システム1の動作について説明する。
【0058】
図5は、ケース1における暗号化システム1の動作を示す模式図である。
【0059】
図5に示されるように、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスA」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスAに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0060】
その後、CPU30によって利用されるために、メモリ20のアドレスAから、値がF(X)となる信号が読み出されると、復号化部12は、アドレスAに対応する第1フラグ、第2フラグが(1、0)であるため、その信号に対して、第1復号化方式による復号化を行い、値がF-1{F(X)}、すなわち、Xとなる信号を生成する。このため、CPU30は、元々記録媒体40に記録されていた状態に復元された信号(プログラム)を利用することとなる。
【0061】
このように、ケース1において、CPU30は、記録媒体40からメモリ20にロードされたプログラムを、正しく実行することができる。
【0062】
次に、記録媒体40からメモリ20のディスクキャッシュ領域に書き込まれたデータを、値を更新することなく、記録媒体40へライトバックしようとする場合(以下、「ケース2」呼ぶ。)における暗号化システム1の動作について説明する。
【0063】
図6は、ケース2における暗号化システム1の動作を示す模式図である。
【0064】
図6に示されるように、記録媒体40から値がXとなる信号(データ)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスB」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスBに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0065】
その後、記録媒体40にライトバックするために、メモリ20のアドレスAから、値がF(X)となる信号が読み出されると、復号化部12は、アドレスAに対応する第1フラグ、第2フラグが(1、0)であるため、その信号に対して、第1復号化方式による復号化を行い、値がF-1{F(X)}、すなわち、Xとなる信号を生成する。これにより、記録媒体40は、元々記録媒体40に記録されていた状態に復元された信号(データ)がライトバックされることとなる。
【0066】
このように、ケース2において、記録媒体40は、正しくライトバックされることとなる。
【0067】
次に、記録媒体40からメモリ20のディスクキャッシュ領域に書き込まれたデータを、CPU30が値を更新した後に、記録媒体40へライトバックしようとする場合(以下、「ケース3」呼ぶ。)における暗号化システム1の動作について説明する。
【0068】
図7は、ケース3における暗号化システム1の動作を示す模式図である。
【0069】
図7に示されるように、記録媒体40から値がXとなる信号(データ)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスC」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0070】
その後、CPU30から値がYとなる信号(データ)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、アドレスCに、値がG(Y)となる信号が書き込まれる。すなわち、値がG(Y)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
【0071】
その後、記録媒体40にライトバックするために、メモリ20のアドレスCから、値がG(Y)となる信号が読み出されると、復号化部12は、アドレスCに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先が記録媒体40であるため、その信号に対して、第2復号化方式による復号化を行い、値がG-1{G(Y)}、すなわち、Yとなる信号を生成する。これにより、記録媒体40は、元々CPU30から出力された状態に復元された信号(データ)がライトバックされることとなる。
【0072】
このように、ケース3において、記録媒体40は、正しくライトバックされることとなる。
【0073】
次に、記録媒体40からメモリ20にロードされたプログラムを、CPU30が不正なプログラムに書き換えた後に、CPU30がその不正なプログラムを実行しようとする場合(以下、「ケース4」と呼ぶ。)における暗号化システム1の動作について説明する。
【0074】
図8は、ケース4における暗号化システム1の動作を示す模式図である。
【0075】
図8に示されるように、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスD」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0076】
その後、CPU30から値がYとなる信号(不正なプログラム)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、アドレスDに、値がG(Y)となる信号が書き込まれる。すなわち、値がG(Y)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
【0077】
その後、CPU30によって利用されるために、メモリ20のアドレスDから、値がG(Y)となる信号が読み出されると、復号化部12は、アドレスDに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF-1{G(Y)}となる信号を生成する。
【0078】
このF-1{G(Y)}となる信号は、値がYとなる不正なプログラムとは異なる信号である。これにより、CPU30は、値がYとなる不正なプログラムを実行しない。
【0079】
このように、ケース4において、CPU30は、不正なプログラムを実行しない。
【0080】
なお、このとき、値がF-1{G(Y)}となる信号が、CPU30によって実行されることのない信号であることが望ましい。すなわち、CPU30の命令セットと第1暗号化方式と第2暗号化方式との関係は、CPU30によって実行可能な任意のプログラムが、第2暗号化方式によって暗号化された後に第1復号化方式によって復号化された場合に、復号化された信号が、CPU30によって実行不能な信号となる関係であることが望ましい。
【0081】
次に、CPU30がメモリ20に不正なプログラムを書き込んだ後に、その不正なプログラムを記録媒体40からメモリ20にロードされたプログラムで更新し、さらにその後、CPU30がその更新されたプログラムを実行しようとする場合(以下、「ケース5」と呼ぶ。)における暗号化システム1の動作について説明する。
【0082】
図9は、ケース5における暗号化システム1の動作を示す模式図である。
【0083】
図9に示されるように、CPU30から値がYとなる信号(不正なプログラム)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスE」と呼ぶ。)に、値がG(Y)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(0、1)に更新する。
【0084】
その後、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、アドレスEに、値がF(X)となる信号が書き込まれる。すなわち、値がF(X)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを(0、1)から(1、0)に更新する。
【0085】
その後、CPU30によって利用されるために、メモリ20のアドレスEから、値がF(X)となる信号が読み出されると、復号化部12は、アドレスEに対応する第1フラグ、第2フラグが(1、0)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF-1{F(X)}、すなわち、Xとなる信号を生成する。
【0086】
このように、ケース5において、CPU30は、記録媒体40からメモリ20にロードされたプログラムを、正しく実行することができる。
【0087】
次に、記録媒体40からメモリ20にロードされたプログラムを、CPU30が初期化した後に、CPU30によって、ワークエリアとしてデータが書き込まれ、さらにその後、CPU30によってそのデータ利用しようとする場合(以下、「ケース6」と呼ぶ。)における暗号化システム1の動作について説明する。
【0088】
図10は、ケース6における暗号化システム1の動作を示す模式図である。
【0089】
図10に示されるように、記録媒体40から値がXとなる信号(プログラム)が出力されると、暗号化部11は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレス(以下、「アドレスF」と呼ぶ。)に、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0090】
その後、CPU30から値がYとなる信号(初期化データ)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Y)となる信号を生成する。そして、アドレスFに、値がG(Y)となる信号が書き込まれる。すなわち、値がG(Y)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
【0091】
その後、CPU30から値がZとなる信号(ワークデータ)が出力されると、暗号化部11は、その信号に対して第2暗号化方式による暗号化を行い、値がG(Z)となる信号を生成する。そして、アドレスFに、値がG(Z)となる信号が書き込まれる。すなわち、値がG(Z)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、1)から(0、1)に更新する。
【0092】
その後、CPU30によって利用されるために、メモリ20のアドレスFから、値がG(Z)となる信号が読み出されると、復号化部12は、アドレスFに対応する第1フラグ、第2フラグが(0、1)であり、読み出し先がCPU30であるため、その信号に対して、第2復号化方式による復号化を行い、値がG-1{G(Z)}、すなわち、Zとなる信号を生成する。
【0093】
このように、ケース6において、CPU30は、ワークエリアとして書き込まれたデータを、正しく利用することができる。
【0094】
[3.効果]
上記構成の暗号化装置10によると、ケース4、ケース5に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれてしまったとしても、そのCPUに30よるその悪意のあるプログラムの実行を抑止し得る。
【0095】
また、上記構成の暗号化装置10によると、ケース1、ケース2、ケース3、ケース6に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれない場合には、CPU30は、正常な動作を行う。
【0096】
(補足)
以上のように、本出願において開示する技術の例示として、実施の形態について説明した。しかしながら本発明による技術は、これらに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。
【0097】
以下に、本発明における変形例の一例について説明する。
【0098】
実施の形態では、暗号化部11は、CPU30から出力された信号を、メモリ20のアドレス単位で、暗号文と平文とが可逆的に1対1に対応する、第1暗号化方式とは異なる第2暗号化方式で暗号化する構成の例であるとして説明した。
【0099】
これに対して、本変形例では、変形例に係る暗号化部は、CPU30から出力された信号に対して、何も変換を行わない構成の例となっている。言い換えれば、変形例に係る暗号化部は、第2暗号化方式として、暗号文と平文とが等しくなる変換を行う構成の例となっている。
【0100】
ここでは、第2暗号化方式は、暗号文と平文とが等しいため、第2暗号化前の信号である32ビットの値をYとした場合における、第2暗号化後の信号である32ビットの値をG(Y)として表現すると、
G(Y) = Y
となる。
【0101】
また、ここでは、第2復号化方式は、第2暗号化方式の逆変換であるため、第2復号化前の信号である32ビットの値をYとした場合における、第2復号化後の信号である32ビットの値をG-1(Y)として表現すると
G-1(Y) = Y
となる。
【0102】
すなわち、本変形例では、変形例に係る復号化部は、(1)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが非活性状態であるときに、当該信号を、第1復号化方式で復号化する。また、変形例に係る復号化部は、(2)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号の読み出し先がCPU30であれば、当該信号を第1復号化方式で復号化し、当該信号の読み出し先が記録媒体40であれば、当該信号に対して何も変換しない。そして、実施の形態に係る復号化部は、(3)メモリ20から信号が読み出された場合において、当該信号のアドレスに対応する第1フラグが非活性状態で、かつ、当該アドレスに対応する第2フラグが活性状態であるときに、当該信号に対して何も変換しない。
【0103】
暗号化部11の替わりに上記変形例に係る暗号化部を備え、復号化部12の替わりに上記変形例に係る復号化部を備える変形例に係る暗号化装置によると、暗号化装置10と同様に、ケース4、ケース5に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれてしまったとしても、そのCPUに30よるその悪意のあるプログラムの実行を抑止し得る。
【0104】
また、この変形例に係る暗号化装置によると、暗号化装置10と同様に、ケース1、ケース2、ケース3、ケース6に示されるように、CPU30の実行対象とするプログラムを記憶するメモリ20に悪意のあるプログラムが書き込まれない場合には、CPU30は、正常な動作を行う。
【0105】
以下、ケース1~ケース6のそれぞれについて、暗号化装置10の替わりに上記変形例に係る暗号化装置を備える、変形例に係る暗号化システムの行う動作について説明する。
【0106】
ケース1、ケース2の場合には、第2暗号化方式による暗号化、及び第2復号化方式による復号化は行われない。このため、変形例に係る暗号化システムは、暗号化システム1と同様の動作を行う。
【0107】
ケース3の場合には、記録媒体40から値がXとなる信号(データ)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレスCに、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0108】
その後、CPU30から値がYとなる信号(データ)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、アドレスCに、値がYとなる信号が書き込まれる。すなわち、値がYとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスCに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
【0109】
その後、記録媒体40にライトバックするために、メモリ20のアドレスCから、値がYとなる信号が読み出されると、変形例に係る復号化部は、アドレスCに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先が記録媒体40であるため、その信号に対して、復号化を行わない。これにより、記録媒体40は、元々CPU30から出力された値がYとなる信号(データ)がライトバックされることとなる。
【0110】
このように、ケース3において、記録媒体40は、正しくライトバックされることとなる。
【0111】
ケース4の場合には、記録媒体40から値がXとなる信号(プログラム)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレスDに、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0112】
その後、CPU30から値がYとなる信号(不正なプログラム)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、アドレスDに、値がYとなる信号が書き込まれる。すなわち、値がYとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスDに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
【0113】
その後、CPU30によって利用されるために、メモリ20のアドレスDから、値がYとなる信号が読み出されると、変形例に係る復号化部は、アドレスDに対応する第1フラグ、第2フラグが(1、1)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF-1(Y)となる信号を生成する。
【0114】
このF-1(Y)となる信号は、値がYとなる不正なプログラムとは異なる信号である。これにより、CPU30は、値がYとなる不正なプログラムを実行しない。
【0115】
このように、ケース4において、CPU30は、不正なプログラムを実行しない。
【0116】
なお、このとき、値がF-1(Y)となる信号が、CPU30によって実行されることのない信号であることが望ましい。すなわち、CPU30の命令セットと第1暗号化方式との関係は、CPU30によって実行可能な任意のプログラムが、第1復号化方式によって復号化された場合に、復号化された信号が、CPU30によって実行不能な信号となる関係であることが望ましい。
【0117】
ケース5の場合には、CPU30から値がYとなる信号(不正なプログラム)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、メモリ20の書き込みアドレスEに、値がYとなる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(0、1)に更新する。
【0118】
その後、記録媒体40から値がXとなる信号(プログラム)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、アドレスEに、値がF(X)となる信号が書き込まれる。すなわち、値がF(X)となる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスEに対応する第1フラグ、第2フラグを(0、1)から(1、0)に更新する。
【0119】
その後、CPU30によって利用されるために、メモリ20のアドレスEから、値がF(X)となる信号が読み出されると、変形例に係る復号化部は、アドレスEに対応する第1フラグ、第2フラグが(1、0)であり、読み出し先がCPU30であるため、その信号に対して、第1復号化方式による復号化を行い、値がF-1{F(X)}、すなわち、Xとなる信号を生成する。
【0120】
このように、ケース5において、CPU30は、記録媒体40からメモリ20にロードされたプログラムを、正しく実行することができる。
【0121】
ケース6の場合には、記録媒体40から値がXとなる信号(プログラム)が出力されると、変形例に係る暗号化部は、その信号に対して第1暗号化方式による暗号化を行い、値がF(X)となる信号を生成する。そして、メモリ20の書き込みアドレスFに、値がF(X)となる信号が書き込まれる。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを、初期状態である(0、0)から(1、0)に更新する。
【0122】
その後、CPU30から値がYとなる信号(初期化データ)が出力されると、変形例に係る暗号化部は、暗号化を行わない。そして、アドレスFに、値がYとなる信号が書き込まれる。すなわち、値がYとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、0)から(1、1)に更新する。
【0123】
その後、CPU30から値がZとなる信号(ワークデータ)が出力されると、変形例に係る暗号化部11は、暗号化を行わない。そして、アドレスFに、値がZとなる信号が書き込まれる。すなわち、値がZとなる信号で上書き更新される。一方で、フラグ更新部14は、そのアドレスFに対応する第1フラグ、第2フラグを(1、1)から(0、1)に更新する。
【0124】
その後、CPU30によって利用されるために、メモリ20のアドレスFから、値がZとなる信号が読み出されると、復号化部12は、アドレスFに対応する第1フラグ、第2フラグが(0、1)であり、読み出し先がCPU30であるため、復号化を行わない。
【0125】
このように、ケース6において、CPU30は、ワークエリアとして書き込まれたデータを、正しく利用することができる。
【産業上の利用可能性】
【0126】
本発明は、メモリに書き込む信号を暗号化する暗号化装置、暗号化システム、及び暗号化方法に広く利用可能である。
【符号の説明】
【0127】
1 暗号化システム
10 暗号化装置
11 暗号化部
12 復号化部
13 フラグ記憶部
14 フラグ更新部
15 暗号化方式設定部
20 メモリ
30 CPU
40 記録媒体