JP4490192B2 - マルチタスク実行システム - Google Patents

マルチタスク実行システム Download PDF

Info

Publication number
JP4490192B2
JP4490192B2 JP2004197157A JP2004197157A JP4490192B2 JP 4490192 B2 JP4490192 B2 JP 4490192B2 JP 2004197157 A JP2004197157 A JP 2004197157A JP 2004197157 A JP2004197157 A JP 2004197157A JP 4490192 B2 JP4490192 B2 JP 4490192B2
Authority
JP
Japan
Prior art keywords
task
key
data
function
execution system
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.)
Expired - Lifetime
Application number
JP2004197157A
Other languages
English (en)
Other versions
JP2006018685A (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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2004197157A priority Critical patent/JP4490192B2/ja
Priority to US11/171,290 priority patent/US7577851B2/en
Priority to CNB2005100804649A priority patent/CN100388245C/zh
Priority to EP05014390A priority patent/EP1612671B1/en
Priority to DE602005013611T priority patent/DE602005013611D1/de
Publication of JP2006018685A publication Critical patent/JP2006018685A/ja
Application granted granted Critical
Publication of JP4490192B2 publication Critical patent/JP4490192B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明は、複数のタスクを並列に実行するマルチタスク実行システムに関する。
近年、個人の使用するパーソナルコンピュータ(PC)から、電子商取引(EC)等のサービスを提供するサーバコンピュータ、さらにはスーパーコンピュータまで、事実上、あらゆる計算機が、マルチタスク環境を提供するものとなっている。ここで、マルチタスク環境とは、計算機が扱う処理の単位である『タスク』を複数個同時に実行させることを可能とする環境である。
近い将来には、携帯電話のような資源の限られたプラットフォームにおいても、かかるマルチタスク環境が実現されることが期待されている。
一般に、オペレーティングシステムは、仮想アドレッシングと呼ばれる技術を用いて、各タスクに対して独立したメモリ空間(各タスク用メモリ空間)を割り当てることで、タスク間の干渉を防ぐという機能を提供する。
しかしながら、プログラムのデバッグ等のように、あるタスクが他のタスク用メモリ空間にアクセスすることが必要となる場合が存在するため、各タスクは、完全に独立しているわけではない。
そのため、タスクを管理するために必要となるデータ等の重要情報は、各タスク用メモリ空間ではなく、オペレーティングシステムが自らのために割り当てたメモリ空間(オペレーティングシステム用メモリ空間)に置かれるのが一般的である。
しかしながら、オペレーティングシステム用メモリ空間は、各タスク用メモリ空間と比較すると、ページング(メモリ空間上のデータをハードディスク等の二次記憶装置に一時的に退避させることで、実装メモリ容量以上の大きさのメモリ空間を利用可能とする技術)を行うことが困難である等の柔軟性に欠けたものであり、そのような性質を持つオペレーティングシステム用メモリ領域に多くの情報を置くことは性能的な影響をもたらすことにも繋がりかねない。
かかる問題点を解決するために、安全に上述の重要情報を各タスク用メモリ空間に置く方法として現在最も有望とされている手法は、当該重要情報を暗号化することで、他のタスクからのアクセスを防止するというものである。
かかる手法の1つとして、例えば、特許文献1には、外部記憶及びメモリ上において、データ及びコードを暗号化した形で保存し、かかるデータ及びコードを中央演算装置(CPU)内の物理的に安全な領域に置かれたキャッシュ領域に読み込む際に復号することで、他のタスクからの不正なアクセスを排除する技術が開示されている。
かかる技術では、暗号化されたデータ及びコードを復号するための鍵も同じく物理的に安全な領域内に置くことによって、他のタスクからの不正なアクセスを排除する。
また、かかる技術では、復号された平文データが、物理的に安全な領域に位置するキャッシュ領域のみに置かれており、CPUのキャッシュ・ライトバックによりメモリに書き戻される際に、自動的に暗号化されることで、機密性が確保される。
また、かかる手法の1つとして、特許文献2には、メモリ上のデータをキャッシュに読み出す際に復号処理を行い、キャッシュに書き込む際に暗号化処理を行うことに加えて、「コンテクスト切り替え」と呼ばれるオペレーティングシステムの一機能の実施時に、実行レジスタ等のタスクの固有情報をも暗号化することで、デバッガを利用した攻撃をも未然に防ぐ技術が開示されている。
しかしながら、上述の従来技術は、基本的に、タスク毎に異なる暗号化鍵を用いて暗号化処理を行う必要があるため、同時に稼動し得るタスク数と同じ個数の鍵を保持するメモリ領域が必要となる。
さらに、上述の従来技術では、暗号化アルゴリズムとして、高速実行可能な共通鍵暗号化アルゴリズムが用いられるが、共通鍵暗号化アルゴリズムとして一般的な「CBC(Cipher Block Chaining)モード」を利用する場合、「IV(Initialization Vector)」と呼ばれるデータが必要となる。
しかしながら、暗号技術における最近の研究の結果、「IV」というデータにも予測不能性が求められることが指摘されているため(例えば、非特許文献1参照)、このような暗号化アルゴリズムを安全に利用するには、さらに多くのメモリ領域が要求される。
このようなメモリに対する要求は、昨今のPCやサーバコンピュータやスーパーコンピュータ等のように十分なメモリ資源を持つプラットフォームでは問題ないとしても、PDAや携帯電話等のようにメモリ資源の限定されたプラットフォームでは大きな問題となり得る。
かかる問題点を解決するために、特許文献3には、マイクロプロセッサのリセット処理時に乱数データとして生成される単一の鍵を用いて、コンテキストデータの暗号化処理を行うことで、当該コンテキストデータを保護するという技術が開示されている。
米国特許第5,224,166号明細書 特開2001-318787号公報 特開2001-51819号公報 「SP 800-38A Recommendation for Block Cipher Modes of Operation − Methods and Technique」、米商務省技術標準局、2001年12月
しかしながら、特許文献3に開示されている技術のように、個々のタスク中の重要情報を保護する手段として、単純に単一鍵を用いて暗号化処理を行うという方式には、次に述べるような欠点があり、一般的なマルチタスク環境では安全ではあり得ないという問題点があった。
すなわち、単一鍵を用いた暗号化処理によってタスク上の重要情報を保護した場合、図11(a)及び(b)に示すように、攻撃者は、2つのタスクB及びCを用いて、以下のような操作を行うことで、攻撃対象のタスクAの重要情報を読み出すことができる。
第1に、実行中であるタスクBは、オペレーティングシステムが提供するインターフェースによって、タスクA及びタスクCの実行を停止する。
第2に、タスクBは、タスクAの重要情報を記憶している保護領域(この時点では、オペレーティングシステムにより暗号化処理済みである)を、タスクCの保護領域(同じく、この時点では、オペレーティングシステムにより暗号化処理済みである)に複写する(図11(a)参照)。
第3に、タスクBは、タスクCの実行を再開して、タスクC自身に保護領域に記憶されている重要情報を出力させる(図11(b)参照)。かかる操作は、タスクCの下で実行されるため、保護領域に記憶されている重要情報は、オペレーティングシステムにより復号され、結果として、タスクAの重要情報が出力されることになる。
そこで、本発明は、以上の点に鑑みてなされたもので、マルチタスク環境を提供する現代的なオペレーティングシステムにおいて、各タスクの重要情報を、少ないメモリ資源で効率的に保護することができるマルチタスク実行システムを提供することを目的とする。
本発明の第1の特徴は、複数のタスクを並列に実行するマルチタスク実行システムであって、前記複数のタスクよりも少ない数の鍵データと、各タスクを識別するためのタスクIDと、値が減少することなく増加し続けるように構成された単調増加カウンタからの各タスクの生成時の出力値とを用いて、各タスクにユニークな鍵ストリームを生成して、生成した該鍵ストリームを用いて、各タスク用メモリ空間内の保護領域に記憶されるデータを暗号化する暗号化処理機能を具備することを要旨とする。
かかる発明によれば、複数のタスクよりも少ない数の鍵データを用いて、各タスクにユニークな鍵ストリームを生成することができるため、特定のタスクの重要情報が他のタスクに複写されたとしても、複写先のタスク上では、かかる重要情報が正しく復号されず、各タスクの重要情報を少ないメモリ資源で効率的に保護することができる。
本発明の第1の特徴において、前記暗号化機能が、前記タスクIDと前記出力値とを含むカウンタ値を、前記鍵データを用いた所定の暗号化方式で暗号化することによって前記鍵ストリームを生成する鍵ストリーム生成機能と、前記保護領域に記憶されるデータを所定ブロックに分割するブロック化機能と、生成した前記鍵ストリームのビット列と分割した前記所定ブロックのビット列との間で排他的論理和を算出し、算出した該排他的論理和を前記保護領域に格納する排他的論理和算出機能とを具備するように構成されていてもよい。
本発明の第1の特徴において、所定のタイミングで、前記保護領域に記憶されるデータを、前記鍵ストリームを用いて復号する復号処理機能を具備し、前記暗号化処理機能が、前記復号処理機能によって復号された前記保護領域に記憶されるデータを、更新した前記鍵データを用いて生成された前記鍵ストリームを用いて暗号化するように構成されていてもよい。
本発明の第1の特徴において、前記復号処理機能が、有効期間を経過した前記鍵データを用いて生成された鍵ストリームを用いて、前記保護領域に記憶されるデータを復号し、前記暗号化処理機能が、有効期間を経過した前記鍵データとは別の鍵データを用いて生成された前記鍵ストリームを用いて、前記復号処理機能によって復号された前記保護領域に記憶されるデータを暗号化するように構成されていてもよい。
本発明の第1の特徴において、前記単調増加カウンタからの出力値が、オペレーティングシステムによって提供される時刻値であり、前記オペレーティングシステムにおいて、前記時刻値を過去に戻すような操作が禁止されるように構成されていてもよい。
本発明の第1の特徴において、前記単調増加カウンタが、ハードウエアとして提供されていてもよい。
以上説明したように、本発明によれば、マルチタスク環境を提供する現代的なオペレーティングシステムにおいて、各タスクの重要情報を、少ないメモリ資源で効率的に保護することができるマルチタスク実行システムを提供することができる。
(本発明の第1の実施形態に係るマルチタスク実行システム)
図1乃至図5を参照して、本発明の第1の実施形態に係るマルチタスク実行システムについて説明する。
本実施形態に係るマルチタスク実行システムは、複数のタスクを並列に実行することができる現代的なオペレーティングシステム(OS)において実装されるものであり、メモリ資源の限定された計算環境においても、各タスクの重要情報に対する保護を提供可能とするように構成されている。
図1は、本実施形態に係るマルチタスク実行システムが、オペレーティングシステム用メモリ空間にロードされた状態を示す。
図1に示すように、本実施形態に係るマルチタスク実行システムは、鍵生成機能201と、鍵記憶機能202と、単調増加カウンタ機能203と、タスク情報記憶機能204と、暗号化/復号処理機能205とを具備している。
鍵生成機能201は、各タスクの保護領域内に記憶されるデータ(重要情報)を暗号化するための単一の鍵データを生成するものである。
例えば、鍵生成機能201は、ハードウエア的な乱数発生器等の安全な擬似乱数生成機能を用いて、攻撃者によって予測できない鍵データ(利用アルゴリズムによって異なるが、一般的には128ビット〜256ビット程度)を生成する。
また、鍵生成機能201は、所定のタイミングで(例えば、システム起動時や鍵データ生成時から所定期間経過後等に)、上述の鍵データを更新するように構成されている。
鍵記憶機能202は、鍵生成機能201によって生成された単一の鍵データを保持して利用状況を管理するものである。
単調増加カウンタ機能203は、値が減少されることなく増加し続けるように設定されたカウンタである。
また、単調増加カウンタ機能203からの出力値が、オペレーティングシステムによって提供される時刻値であるように構成されていてもよい。かかる場合、オペレーティングシステムの時刻合わせ機能において、かかる時刻値を過去に戻すような操作が禁止されるように構成されていることが必要である。
したがって、オペレーティングシステムの時刻合わせ機能において、時刻値を過去に戻す方向に時刻合わせを行う必要がある場合は、時刻値そのものを変更するのではなく、時刻間隔を調整することで、漸近的に時刻合わせを行うような仕組みを取る必要がある。
また、単調増加カウンタ機能203は、オペレーティングシステム内に実装されるものに限らず、ハードウエアとして提供されるように構成されていてもよい。
なお、単調増加カウンタ機能203における単調増加カウンタ値の増加間隔は、後述のように、攻撃者による攻撃が成功しない条件を満たすように維持される。
タスク情報記憶機能204は、各タスクを識別するためのタスクIDと、各タスクの生成時の単調増加カウンタ機能203からの出力値(単調増加カウンタ値)とを関連付けて記録するものである。
暗号化/復号処理機能205は、適切なタイミングで、同時に稼働している複数のタスクよりも少ない数の鍵データと、タスクIDと、各タスクの生成時の単調増加カウンタ値とを用いて、各タスクにユニークな鍵ストリームを生成して、生成した当該鍵ストリームを用いて、各タスク用メモリ空間内の保護領域に記憶されるデータを暗号化するものである。
本実施形態において、暗号化/復号処理機能205は、1つのタスク用メモリ空間内の保護領域内に暗号化されて記憶されている重要情報が他のタスク用メモリ空間内の保護領域に複写された場合に、両保護領域における暗号化処理に利用される鍵データが同一であったとしても、複写先のタスクによって正しく復号されないという性質を実現するために、暗号化方式として、上述の非特許文献1等で開示されているブロック暗号のCTR(Counter)モードを利用している。
かかるCTRモードは、近年になって提唱されているブロック暗号の操作モードの一種である。図2を参照して、かかるCTRモードについて簡単に説明する。
図2に示すように、第1に、CTRモードでは、決して同一の値を取らないように維持されるカウンタ値301が、利用する暗号化アルゴリズムに応じた暗号化処理器302に入力される。
第2に、暗号化処理器302によって暗号化された各カウンタ値(鍵ストリーム)の各ビットと、平文データを構成する各ブロックの各ビットとの間の排他的論理和を算出することによって、当該平文データの暗号化が行われる。
なお、CTRモードでは、鍵ストリームの各ビットと、暗号文データを構成する各ブロックの各ビットとの間の排他的論理和を算出することによって、当該暗号化データを復号することができる。
図2の例では、カウンタ値301の上位部分を固定値とし、カウンタ値301の下位部分を変動値Xとしている。なお、変動値Xは、各ブロックに対応して、0から順番に1ずつ増加するような値である。
ここで、カウンタ値301は、対応するブロック毎に重複しないことが保証されるのであれば、下位部分に関してはどのような変動値を用いてもよい。
なお、利用する暗号化アルゴリズムが十分安全なものであり、カウンタ値301を暗号化した鍵ストリームがランダムとみなせるならば、CTRモードによる暗号化結果は、同じ鍵データを利用した場合であっても、カウンタ値の初期値が完全に一致していない限り、全く異なったものとなる。
かかるCTRモードを利用した暗号化/復号処理機能205の構成を、図3に示す。図3に示すように、かかる暗号化/復号処理機能205は、鍵ストリーム生成機能205aと、ブロック化機能205bと、XOR算出機能205cとを具備している。
鍵ストリーム生成機能205aは、タスクIDと当該タスク生成時の単調増加カウンタ値とを含むカウンタ値301を、鍵データを用いた所定の暗号化方式で暗号化することによって鍵ストリームを生成するものである。
具体的には、鍵ストリーム生成機能205aは、上述のCTRモードのカウンタ値301における固定値として、タスクID及び当該タスク生成時の単調増加カウンタ値を用いる。
ここで用いられる固定値が、システムで生成される可能性のある全てのタスクに関して異なる値となるように運用できるのであれば、特定のタスク用メモリ空間内の保護領域内に暗号化されて記憶されている重要情報を、他のタスク用メモリ空間内の保護領域に複写しても、他のタスクが当該重要情報を正しく復号することは不可能とすることができる。
上述のように運用することができる条件は、複数のタスクに関して、タスクID及び当該タスク生成時の単調増加カウンタ値の両方が、一致することはないということである。
一般に、タスクIDとしては、固定サイズの値が用いられるため、多数のタスクの生成及び消滅が繰り返されて行くうちに、特定のタスクIDは、異なるタスクに使い回されるという性質を持つ。
したがって、上述の条件を満たすには、単調増加カウンタ値が同じ値を示している間に、同一のタスクIDが2回以上使われることがないようになっていれば良いことが分かる。
例えば、UNIX(登録商標)系オペレーティングシステムとしての一般的な構成である「15ビット整数(最大32768)のタスクID」及び「10ミリ秒毎に更新される時刻値である単調増加カウンタ値」を仮定した場合、攻撃者が、システムに対して同一のCTRモードのカウンタ値における固定値を、複数のタスクに対して割り当てるように仕向けるためには、単調増加カウンタ値が同一の値を維持している10ミリ秒の間に、30,000個程度のタスクを生成又は消滅させる必要がある。
すなわち、かかる条件を満たさない限り、攻撃者による攻撃は成功しないことを意味している。
一般に、タスクの生成及び消滅には、オペレーティングシステムの介在が必要とされるため、十分な回数のタスク生成処理及び消滅処理をそのように高速に実行することは、現在の一般的なハードウエア環境ではほぼ不可能である。
ブロック化機能205bは、保護領域に記憶されるデータ(平文データ又は暗号化文データ)を所定ブロックに分割するものである。
XOR算出機能205cは、生成した鍵ストリームのビット列と分割した所定ブロックのビット列との間で排他的論理和(XOR)を算出し、算出した当該排他的論理和を保護領域に格納するものである。
また、暗号化/復号処理機能205は、所定のタイミングで(例えば、鍵データが更新された場合等に)、全てのタスク用メモリ空間内の保護領域に記憶されているデータを、上述の鍵ストリームを用いて復号するように構成されている。
かかる場合、暗号化/復号処理機能205は、上述のように復号された保護領域に記憶されるデータを、更新された鍵データを用いて生成された鍵ストリームを用いて再び暗号化するように構成されている。
次に、図4及び図5を参照して、本実施形態に係るマルチタスク実行システムの動作について説明する。
第1に、図4を参照して、本実施形態に係るマルチタスク実行システムにおいて、各タスク用メモリ空間内の保護領域に記憶されるデータを暗号化する動作について説明する。
図4に示すように、ステップS101において、オペレーティングシステムが、新しいタスクを生成して、当該タスクに対してタスク用メモリ空間を割り当てる。ここで、タスク情報記憶機能204は、当該タスク用メモリ空間内の保護領域に係る情報や、タスクIDや、当該タスク生成時の単調増加カウンタ機能203からの出力値(単調増加カウンタ値)を記憶する。
ステップS102において、暗号化/復号処理機能205の鍵ストリーム生成機能205aは、タスク情報記憶機能204に記憶されているタスクIDと当該タスク生成時の単調増加カウンタ値と変動値Xとから構成されるカウンタ値301を生成する。
そして、鍵ストリーム生成機能205aは、鍵記憶機能202に記憶されている鍵データを用いて、所定の暗号化方式で、カウンタ値301を暗号化することによって、鍵ストリームを生成する。
ここで、鍵ストリーム生成機能205aは、変動値Xを0から順番に1ずつ増加させることによって、上述の保護領域に記憶されるデータ(平文データ)を分割した所定のブロックの数に対応する長さの鍵ストリームを生成する。
ステップS103において、XOR算出機能205cは、鍵ストリームのビット列と平文データのビット列との間で排他的論理和を算出して、算出した排他的論理和を暗号化データとして保護領域に格納する。
第2に、図5を参照して、本実施形態に係るマルチタスク実行システムにおいて、鍵データを更新する動作について説明する。
一般的に、比較的短期間(1日以内程度)でシステムの再起動が行なわれるような運用環境では、単一鍵が更新されること無く利用され続けていても安全性は損なわれない。
かかる場合、鍵記憶機能202は、システム立ち上げ時や最初に鍵データが必要となった時点で、鍵生成機能201によって生成される鍵データを記憶するという機能のみを持てばよい。
しかしながら、サーバコンピュータのように長期間連続運転が行われる運用環境では、単一鍵が更新されること無く利用され続けることは、著しい安全性の低下をもたらす可能性があるため、適切なタイミングで、利用する鍵データの更新処理を行うことが必要となる。
したがって、ステップS201において、暗号化/復号処理機能205は、適切なタイミングで、暗号化されている全ての保護領域内のデータを、現在利用されている鍵データを用いて生成された鍵ストリームを用いて復号する。
ステップS202において、鍵生成機能201が、利用する鍵データを更新し、鍵記憶機能202が、更新された鍵データを記憶する。
ステップS203において、暗号化/復号処理機能205は、更新された鍵データを用いて生成した鍵ストリームを用いて、全ての保護領域内のデータを暗号化する。
本実施形態に係るマルチタスク実行システムによれば、単一の鍵データを用いて、各タスクにユニークな鍵ストリームを生成することができるため、特定のタスクの重要情報が他のタスクに複写されたとしても、複写先のタスク上では、かかる重要情報が正しく復号されず、各タスクの重要情報を少ないメモリ資源で効率的に保護することができる。
すなわち、本実施形態に係るマルチタスク実行システムによれば、オペレーティングシステム用メモリ空間に置かなければならないデータを単一の鍵データ等の最小限のものとすることができるため、PDAや携帯電話等のようにメモリ資源の限定されたプラットフォームにおいても、各タスクの重要情報を保護可能なマルチタスク環境を実現することができる。
(本発明の第2の実施形態に係るマルチタスク実行システム)
図6乃至図8を参照して、本発明の第2の実施形態に係るマルチタスク実行システムについて説明する。以下、本実施形態に係るマルチタスク実行システムについて、上述の第1の実施形態に係るマルチタスク実行システムとの相違点を主として説明する。
一般的に、各タスクが多数の重要情報を持っている場合、かかる重要情報の一部は、ハードディスク等の二次記憶装置に退避されている可能性がある。
したがって、本実施形態に係るマルチタスク実行システムは、かかる場合であっても、効率的な鍵更新の実現を可能とすることを目的とするものである。
本実施形態では、図6に示すように、鍵記憶機能202が、複数の鍵データを記憶している。具体的には、鍵記憶機能202は、各鍵データに関して、当該鍵データを識別するための鍵番号と、当該鍵データと、当該鍵データの生成日時と、現行フラグと、参照数とを関連付けて記憶している。
ここで、現行フラグは、当該鍵データが現行鍵データであるか否かを示すフラグである。複数の鍵データのうちの1つだけが、新たな暗号化処理を行うために用いられる現行鍵データであるように設定される。その他の鍵データは、「未使用」又は「過去に当該鍵データを用いて暗号化したデータが現存する」というどちらかの属性を持つ。
また、参照数は、現行鍵データ及び「過去に当該鍵データを用いて暗号化したデータが現存する」という属性の鍵データに対して、当該鍵データがいくつの保護領域を暗号化するのに用いられたかについて示すものである。
ここで、過去に当該鍵データを用いて暗号化したデータが現存する」という属性の鍵データは、当該鍵データによって保護領域に記憶されている重要情報を復号した結果、参照数が0となった時に未使用状態となる。
また、現行鍵データは、生成時から所定時間(例えば、1時間)が経過した時点で無効となる。そして、次に、重要情報の暗号化処理が必要となった時には、鍵記憶機能202は、鍵生成機能201によって生成される新しい鍵データを現行鍵データとして設定する。
また、本実施形態では、タスク情報記憶機能204は、図7に示すように、各保護領域に関して、当該保護領域を識別する保護領域番号と、当該保護領域の各タスク用アドレス空間内の開始アドレスと、当該保護領域のサイズと、当該保護領域内に記憶されているデータ(重要情報)が暗号文であるか平文であるかについて示す状態情報と、当該保護領域内のデータ(重要情報)の暗号化処理に用いた鍵データを識別する利用鍵データ番号とを関連付けて記憶している。
ここで、図8を参照して、本実施形態に係るマルチタスク実行システムにおいて、鍵データを更新する動作について説明する。
ステップS301において、暗号化/復号処理機能205は、現在利用している鍵データの有効期間が経過したか否かについて判断する。
有効期間が経過したと判断した場合、ステップS302において、暗号化/復号処理機能205は、有効期間を経過した鍵データを用いて生成された鍵ストリームを用いて、暗号化されている全ての保護領域に記憶されるデータを復号する。
ステップS303において、鍵記憶機能202は、鍵生成機能201によって生成された鍵データの中から、利用する鍵データを現行鍵データとして設定して記憶する。
ステップS304において、暗号化/復号処理機能205は、有効期間を経過した鍵データとは別の鍵データ(すなわち、現行鍵データとして設定された鍵データ)を用いて生成された鍵ストリームを用いて、全ての保護領域に記憶されるデータを暗号化する。
本実施形態に係るマルチタスク実行システムによれば、複数の鍵データを鍵記憶機能202に保持しておくことにより、鍵データの更新時に必要となる処理を最小限とすることができる。
(変更例1)
図9を参照して、本発明の変更例1について説明する。
図9に示すように、本変更例では、オペレーティングシステムは、コンテキストスイッチにより休止させられるタスク用メモリ空間702-1〜702-Nに記憶されている重要情報を、オペレーティングシステム用メモリ空間700に置かれた単一の暗号化鍵(鍵データ)701を用いて暗号化する。
一方、本変更例では、オペレーティングシステムは、コンテキストスイッチにより実行を再開させられるタスク用メモリ空間703に記憶されている重要情報を、オペレーティングシステム用メモリ空間700に置かれた単一の暗号化鍵(鍵データ)701を用いて復号する。
本変更例に係るマルチタスク実行システムによれば、暗号化方式として、タスクID及び当該タスク生成時の単調増加カウンタ値に基づくCTRモードを用いることで、単一の暗号化鍵701による複数のタスクの重要情報の暗号化による保護が安全に実現されている。
なお、本変更例に係るマルチタスク実行システムは、比較的頻繁に停止や起動を繰り返すような運用形態のシステムに向いたものである。
(変更例2)
図10を参照して、本発明の変更例2について説明する。本変更例では、上述の変更例1の場合と異なり、単一の暗号化鍵ではなく、全タスクの数より少ない数の暗号化鍵が用いられる。
図10に示すように、本変更例では、オペレーティングシステムは、コンテキストスイッチにより休止させられるタスク用メモリ空間802-2〜802-Nに記憶されている重要情報を、オペレーティングシステム用メモリ空間800に置かれた複数の暗号化鍵のうち、現行の暗号化鍵(現行鍵データ)801-3を用いて暗号化する。
ここで、休止中タスク802-1は、現行の暗号化鍵が有効になる前に、暗号化されたままの状態で実行を中断させられているため、オペレーティングシステムは、タスク802-1の実行再開時には、過去の暗号化鍵801-1を用いて、当該タスク802-1用メモリ空間に記憶されているデータを復号されなければならない。
本変更例に係るマルチタスク実行システムは、暗号化鍵の更新処理を比較的低コストで実現することが可能であるため、長期間起動状態に置かれるような運用環境にも適用可能である。
本発明の第1の実施形態に係るマルチタスク実行システムの機能ブロック図である。 ブロック暗号アルゴリズムの一種であるCTRモードの概念を説明するための図である。 本発明の第1の実施形態に係るマルチタスク実行システムの暗号化/復号処理機能を説明するための図である。 本発明の第1の実施形態に係るマルチタスク実行システムにおいて、保護領域に記憶されるデータを暗号化する動作を説明するためのフローチャートである。 本発明の第1の実施形態に係るマルチタスク実行システムにおいて、鍵データを更新する動作を説明するためのフローチャートである。 本発明の第2の実施形態に係るマルチタスク実行システムの暗号化/復号処理機能における管理内容の一例を示す図である。 本発明の第2の実施形態に係るマルチタスク実行システムのタスク情報記憶機能における管理内容の一例を示す図である。 本発明の第2の実施形態に係るマルチタスク実行システムにおいて、鍵データを更新する動作を説明するためのフローチャートである。 本発明の変更例1に係るマルチタスク実行システムを説明するための図である。 本発明の変更例2に係るマルチタスク実行システムを説明するための図である。 従来技術に係るマルチタスク実行システムの問題点を説明するための図である。
符号の説明
201…鍵生成機能
202…鍵記憶機能
203…単調増加カウンタ機能
204…タスク情報記憶機能
205…暗号化/復号処理機能
205a…鍵ストリーム生成機能
205b…ブロック化機能
205c…XOR算出機能

Claims (6)

  1. 複数のタスクを並列に実行するマルチタスク実行システムであって、
    前記複数のタスクよりも少ない数の鍵データと、各タスクを識別するためのタスクIDと、値が減少することなく増加し続けるように構成された単調増加カウンタからの各タスクの生成時の出力値とを用いて、各タスクにユニークな鍵ストリームを生成して、生成した該鍵ストリームを用いて、各タスク用メモリ空間内の保護領域に記憶されるデータを暗号化する暗号化処理機能を具備することを特徴とするマルチタスク実行システム。
  2. 前記暗号化機能は、
    前記タスクIDと前記出力値とを含むカウンタ値を、前記鍵データを用いた所定の暗号化方式で暗号化することによって前記鍵ストリームを生成する鍵ストリーム生成機能と、
    前記保護領域に記憶されるデータを所定ブロックに分割するブロック化機能と、
    生成した前記鍵ストリームのビット列と分割した前記所定ブロックのビット列との間で排他的論理和を算出し、算出した該排他的論理和を前記保護領域に格納する排他的論理和算出機能とを具備することを特徴とする請求項1に記載のマルチタスク実行システム。
  3. 所定のタイミングで、前記保護領域に記憶されるデータを、前記鍵ストリームを用いて復号する復号処理機能を具備し、
    前記暗号化処理機能は、前記復号処理機能によって復号された前記保護領域に記憶されるデータを、更新した前記鍵データを用いて生成された前記鍵ストリームを用いて暗号化することを特徴とする請求項1に記載のマルチタスク実行システム。
  4. 前記復号処理機能は、有効期間を経過した前記鍵データを用いて生成された鍵ストリームを用いて、前記保護領域に記憶されるデータを復号し、
    前記暗号化処理機能は、有効期間を経過した前記鍵データとは別の鍵データを用いて生成された前記鍵ストリームを用いて、前記復号処理機能によって復号された前記保護領域に記憶されるデータを暗号化することを特徴とする請求項3に記載のマルチタスク実行システム。
  5. 前記単調増加カウンタからの出力値は、オペレーティングシステムによって提供される時刻値であり、
    前記オペレーティングシステムにおいて、前記時刻値を過去に戻すような操作が禁止されるように構成されることを特徴とする請求項1に記載のマルチタスク実行システム。
  6. 前記単調増加カウンタは、ハードウエアとして提供されることを特徴とする請求項1に記載のマルチタスク実行システム。

JP2004197157A 2004-07-02 2004-07-02 マルチタスク実行システム Expired - Lifetime JP4490192B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2004197157A JP4490192B2 (ja) 2004-07-02 2004-07-02 マルチタスク実行システム
US11/171,290 US7577851B2 (en) 2004-07-02 2005-07-01 Multitask execution apparatus and multitask execution method
CNB2005100804649A CN100388245C (zh) 2004-07-02 2005-07-01 多重任务执行系统
EP05014390A EP1612671B1 (en) 2004-07-02 2005-07-01 Multitasking computer with encrypted data in shared memory
DE602005013611T DE602005013611D1 (de) 2004-07-02 2005-07-01 Multitasking-Computer mit verschlüsselten Daten in gemeinsamem Speicherbereich

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004197157A JP4490192B2 (ja) 2004-07-02 2004-07-02 マルチタスク実行システム

Publications (2)

Publication Number Publication Date
JP2006018685A JP2006018685A (ja) 2006-01-19
JP4490192B2 true JP4490192B2 (ja) 2010-06-23

Family

ID=35058881

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004197157A Expired - Lifetime JP4490192B2 (ja) 2004-07-02 2004-07-02 マルチタスク実行システム

Country Status (5)

Country Link
US (1) US7577851B2 (ja)
EP (1) EP1612671B1 (ja)
JP (1) JP4490192B2 (ja)
CN (1) CN100388245C (ja)
DE (1) DE602005013611D1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4469783B2 (ja) 2005-11-28 2010-05-26 株式会社東芝 メモリ保護装置、メモリ保護システムおよびメモリ保護方法
JP4498295B2 (ja) * 2005-11-30 2010-07-07 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法
US7681050B2 (en) * 2005-12-01 2010-03-16 Telefonaktiebolaget L M Ericsson (Publ) Secure and replay protected memory storage
JP4643479B2 (ja) * 2006-03-22 2011-03-02 株式会社東芝 アクセス制御装置、アクセス制御システム、プロセッサ、アクセス制御方法およびメモリアクセス制御方法
WO2008015496A1 (en) * 2006-08-03 2008-02-07 Freescale Semiconductor, Inc. Method for monotonically counting and a device having monotonic counting capabilities
KR101369748B1 (ko) * 2006-12-04 2014-03-06 삼성전자주식회사 데이터 암호화 방법 및 그 장치
US8370644B2 (en) * 2008-05-30 2013-02-05 Spansion Llc Instant hardware erase for content reset and pseudo-random number generation
US8379846B2 (en) * 2009-05-21 2013-02-19 Freescale Semiconductor, Inc. Encryption apparatus and method therefor
US8184812B2 (en) * 2009-06-03 2012-05-22 Freescale Semiconductor, Inc. Secure computing device with monotonic counter and method therefor
JP5167374B2 (ja) * 2011-01-21 2013-03-21 シャープ株式会社 データ暗号化装置、及び、メモリカード
WO2012172391A1 (en) * 2011-06-15 2012-12-20 Nokia Corporation Method and apparatus for implementing memory segment access control in a distributed memory environment
US9053233B2 (en) * 2011-08-15 2015-06-09 Freescale Semiconductor, Inc. Method and device for controlling debug event resources
US9164924B2 (en) 2011-09-13 2015-10-20 Facebook, Inc. Software cryptoprocessor
ES2837801T3 (es) 2012-08-07 2021-07-01 Nokia Technologies Oy Control de acceso para memoria inalámbrica
KR101458479B1 (ko) * 2012-10-12 2014-11-07 한국전자통신연구원 세션상태정보의 암호화 및 복호화 방법
US9477603B2 (en) 2013-09-05 2016-10-25 Facebook, Inc. System and method for partitioning of memory units into non-conflicting sets
US9983894B2 (en) 2013-09-25 2018-05-29 Facebook, Inc. Method and system for providing secure system execution on hardware supporting secure application execution
US10049048B1 (en) 2013-10-01 2018-08-14 Facebook, Inc. Method and system for using processor enclaves and cache partitioning to assist a software cryptoprocessor
US9747450B2 (en) 2014-02-10 2017-08-29 Facebook, Inc. Attestation using a combined measurement and its constituent measurements
US9734092B2 (en) 2014-03-19 2017-08-15 Facebook, Inc. Secure support for I/O in software cryptoprocessor
US10305689B2 (en) * 2014-12-04 2019-05-28 Nec Corporation Encryption apparatus, decryption apparatus, cryptography processing system, encryption method, decryption method, encryption program, and decryption program
US9904807B2 (en) * 2015-01-09 2018-02-27 Toshiba Memory Corporation Memory system and information processing system
US9715462B2 (en) 2015-04-02 2017-07-25 International Business Machines Corporation Protecting contents of storage
US9798678B2 (en) 2015-04-02 2017-10-24 International Business Machines Corporation Protecting storage from unauthorized access
JP2018205817A (ja) * 2017-05-30 2018-12-27 富士通株式会社 情報処理装置、および管理プログラム
CN111431888B (zh) * 2020-03-19 2020-11-27 深圳市道旅旅游科技股份有限公司 关键信息屏蔽的方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2002305517A (ja) * 2000-03-09 2002-10-18 Hitachi Ltd 共通鍵暗号装置と共通鍵暗号の復号装置
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP2003108442A (ja) * 2001-09-28 2003-04-11 Toshiba Corp マイクロプロセッサ

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5940508A (en) * 1997-04-07 1999-08-17 Motorola, Inc. Method and apparatus for seamless crypto rekey system
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
GB2319102B (en) * 1998-01-30 1998-12-23 Ibm A security system for a transaction processing system
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
US6966002B1 (en) * 1999-04-30 2005-11-15 Trymedia Systems, Inc. Methods and apparatus for secure distribution of software
US7360252B1 (en) * 1999-04-30 2008-04-15 Macrovision Corporation Method and apparatus for secure distribution of software
JP4280366B2 (ja) 1999-08-12 2009-06-17 キヤノン株式会社 画像制御装置および画像制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US7270193B2 (en) * 2000-02-14 2007-09-18 Kabushiki Kaisha Toshiba Method and system for distributing programs using tamper resistant processor
US6980659B1 (en) * 2000-06-02 2005-12-27 Brig Barnum Elliott Methods and systems for supplying encryption keys
US6889378B2 (en) * 2000-07-24 2005-05-03 Sony Corporation Information processing method, inter-task communication method, and computer-executable program for the same
US6978375B1 (en) * 2000-09-08 2005-12-20 International Business Machines Corporation System and method for secure authentication of external software modules provided by third parties
US6981077B2 (en) * 2000-12-22 2005-12-27 Nortel Networks Limited Global access bus architecture
US6665755B2 (en) * 2000-12-22 2003-12-16 Nortel Networks Limited External memory engine selectable pipeline architecture
EP1292109A1 (en) * 2001-08-27 2003-03-12 Ricoh Company, Ltd. Information processing system
JP3866597B2 (ja) * 2002-03-20 2007-01-10 株式会社東芝 内部メモリ型耐タンパプロセッサおよび秘密保護方法
JP4115759B2 (ja) 2002-07-01 2008-07-09 株式会社東芝 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
JP3880933B2 (ja) * 2003-01-21 2007-02-14 株式会社東芝 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
US8005710B2 (en) * 2004-09-28 2011-08-23 Microsoft Corporation Methods and systems for caching and synchronizing project data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002305517A (ja) * 2000-03-09 2002-10-18 Hitachi Ltd 共通鍵暗号装置と共通鍵暗号の復号装置
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP2003108442A (ja) * 2001-09-28 2003-04-11 Toshiba Corp マイクロプロセッサ

Also Published As

Publication number Publication date
CN1716220A (zh) 2006-01-04
JP2006018685A (ja) 2006-01-19
EP1612671B1 (en) 2009-04-01
US7577851B2 (en) 2009-08-18
DE602005013611D1 (de) 2009-05-14
EP1612671A2 (en) 2006-01-04
CN100388245C (zh) 2008-05-14
US20060020941A1 (en) 2006-01-26
EP1612671A3 (en) 2008-04-09

Similar Documents

Publication Publication Date Title
JP4490192B2 (ja) マルチタスク実行システム
KR101565223B1 (ko) 인플레이스 암호화 시스템 및 방법
KR100823374B1 (ko) 휴면 보호
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
JP3880933B2 (ja) 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
KR101054981B1 (ko) 프로그램의 콘텍스트를 보안적으로 저장하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101081118B1 (ko) 보안되는 프로그램을 복원하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체
US20150294123A1 (en) System and method for sharing data securely
CN110825672A (zh) 用于联机加密处理的高性能自主硬件引擎
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
CN107563226B (zh) 一种存储器控制器、处理器模块及密钥更新方法
US10169251B1 (en) Limted execution of software on a processor
JP3982531B2 (ja) ソフトウェアの保護機能付き情報処理装置およびソフトウェアの保護機能付き情報処理方法
JP2010217975A (ja) 情報処理装置、アプリケーションプログラム、及びアプリケーションプログラムの実行方法
CN110598403A (zh) 一种进程数据保护方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070330

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100401

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4490192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140409

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250