JP4309726B2 - マイクロプロセッサ - Google Patents
マイクロプロセッサ Download PDFInfo
- Publication number
- JP4309726B2 JP4309726B2 JP2003309359A JP2003309359A JP4309726B2 JP 4309726 B2 JP4309726 B2 JP 4309726B2 JP 2003309359 A JP2003309359 A JP 2003309359A JP 2003309359 A JP2003309359 A JP 2003309359A JP 4309726 B2 JP4309726 B2 JP 4309726B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- encryption
- decryption
- data
- work
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 58
- 230000015654 memory Effects 0.000 claims description 52
- 230000008569 process Effects 0.000 claims description 48
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 101100206390 Caenorhabditis briggsae tag-125 gene Proteins 0.000 description 1
- 101100102886 Caenorhabditis elegans wdr-5.1 gene Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
プログラムPは、外部メモリ102上では所定の暗号鍵KxPで暗号化されている。この鍵は、プログラム供給者がプログラムごとに個別に設定できる。プログラムをECU(プロセス)として実行するときは、ECUID、及び、IDに対応する鍵テーブル232のエントリを1つ割り当てて管理する。
耐タンパプロセッサでは、データの暗号化処理も行う。以下の説明では、データ処理に使われる鍵をデータ鍵と呼ぶ。ECUID#1のデータ鍵はエントリ232−1−dに格納されている。
キャッシュライン125−xがフラッシュされ、書き戻されるとき、暗号化が行われる。
図1が本発明による耐タンパプロセッサの構成である。ここでは、図8と異なる部分のみを説明する。131はBIUであり、プロセッサ外部との入出力を行う。BIU131には、鍵テーブル132、セレクタ133、暗号/復号コントローラ134、暗号/復号作業用鍵生成器136が備えられている。鍵テーブル132は、132−0〜132−mのm+1個のエントリを持つ。各エントリは、ECUに対応して設けられており、それぞれのエントリにプログラム共通鍵K1x、暗号作業用データ鍵K1dEと復号作業用データ鍵K1dDの3つフィールドがある。セレクタ133では、命令キャッシュ122、データキャッシュ124、読み出し/書き込み信号126から鍵選択を実行する。暗号/復号コントローラ134は、内部に暗号/復号共通のハードウェアである暗号/復号共通モジュール135を持つ。暗号/復号コントローラ134では、読み出し/書き込み信号126から暗号、復号の選択を実行する。以下の説明では、暗号/復号共通のハードウェアを用いてデータの暗号処理するために必要となる鍵を暗号作業用データ鍵、暗号/復号共用のハードウェアを用いて暗号化データの復号化処理するために必要となる鍵を復号作業用データ鍵と呼ぶ。
本発明で利用する暗号作業用データ鍵、及び、復号作業用データ鍵は、あらかじめプログラム供給者が準備しておく場合と、プログラム供給者は暗号作業用データ鍵、あるいは、復号作業用データ鍵のどちらか一方だけを配り、プロセッサ内部にある暗号/復号作業用鍵生成器136によってもう一方を作成する場合がある。前者の方法の場合は、暗号化プロセス実行前に2つの鍵を登録する必要がある。後者の方法は、適用対象の暗号ハードを用いることによって、一方の作業用鍵からもう一方の作業用鍵を導き出すことができることに起因する。
暗号化されたプログラムからは、データの暗号化もハードウェアの支援を受けることができる。図3乃至図5は本発明の耐タンパプロセッサにおけるデータ処理を示す。ここでは、図10と比べて異なる部分であるBIU処理部のみを説明する。
アドレスXとキャッシュラインが競合するアドレスX+32*mへのアクセスがあったとき、キャッシュラインがフラッシュされる。そのとき、暗号処理が行われる。図5を用いて、本発明の耐タンパプロセッサにおける暗号処理の例を説明する。BIU131は、ECUID#1を用いて鍵テーブル132、及び、セレクタ133から、エントリ132−1−d−e内の暗号作業用データ鍵K1dEを獲得し、暗号/復号コントローラ134にキャッシュデータC’(X)の暗号化要求を行う(シーケンスS1002)。暗号/復号コントローラ134は、キャッシュデータC’(X)、暗号作業用データ鍵K1dEが設定されると、暗号/復号共通モジュール135を用いて暗号化を行う(シーケンスS1003)。
耐タンパプロセッサでは、データの暗号化/復号化だけでなく、コンテキストの暗号化/復号化を行う。以下の説明では、暗号/復号共通のハードウェアを用いてコンテキストの暗号化処理するために必要となる鍵を暗号作業用コンテキスト鍵、暗号/復号共用のハードウェアを用いて暗号化されたコンテキストの復号化処理するために必要となる鍵を復号作業用コンテキスト鍵と呼ぶ。
図6の耐タンパプロセッサで利用する暗号作業用コンテキスト鍵KcE、及び、復号作業用コンテキスト鍵KcDは、プログラム供給者が両方の鍵を準備しておく場合、プログラム供給者が片方の鍵を準備し、片方の鍵を暗号/復号作業用鍵生成器136によって作成する場合、両方の鍵をBIU1131にコンテキスト鍵生成器を加えた耐タンパプロセッサによって作成する場合がある。本実施例2では、プログラム配布者があらかじめ暗号作業用データ鍵KdE、暗号作業用コンテキスト鍵KcDのみを準備すると仮定する。この場合の作業用鍵の登録方法について、図7を用いて説明する。
プログラム実行中に割り込み処理が呼び出されるとき、耐タンパプロセッサでは、プロセッサコア111からコンテキスト保存要求が出される。そのとき、データとは異なる特殊なタグとコンテキストをキャッシュ上に書き出す。コンテキストが保存されたキャッシュラインがフラッシュされるとき、BIU1131は、特殊なタグを用いて鍵テーブル1132から暗号作業用のコンテキスト鍵を取り出し、暗号化を行う。暗号化の手順は、鍵の選択を除いて、実施例1のデータの暗号化と同じである。
102…外部メモリ
111…プロセッサコア
112…カレントタスクレジスタ(ECUIDレジスタ)
121…キャッシュコントローラ
122…命令キャッシュ(Iキャッシュ)
123,125…メモリ
124…データキャッシュ(Dキャッシュ)
123−1〜123−n,125−1〜125−n…キャッシュライン
125−x−t…キャッシュタグ
125−x−C…キャッシュ内容
125−x−d…状態ビット
126…読み出し/書き込み信号ライン
131,231,1131…バスインタフェースユニット(BIU)
132,232,1132…鍵テーブル
133,233…セレクタ
134,234…暗号/復号処理部
135…暗号/復号共通モジュール
136…暗号/復号作業用鍵生成器
141…ECU状態管理機能部
151…2次キャッシュ
161…公開鍵復号機能部
235…暗号モジュール
236…復号モジュール
301〜303,701〜704,1201〜1205…ステップ
S401〜S412,S501〜S503,S601〜S603,S901〜S903,S1001〜S1003…シーケンス
232−0〜232−m,232−1−x,232−1−d,132−1−d−d,132−1−d−e,1132−1−d−e,1132−1−d−d,1132−1−c−e,1132−1−c−d…エントリ
Kx,K1x,K2x…プログラム共通鍵
Kd,K1d,K2d〜Kmd…データ共通鍵
KdE,K1dE,K2dE〜KmdE…暗号作業用データ鍵
K1dD,K2dD〜KmdD…復号作業用データ鍵
KcE…暗号作業用コンテキスト鍵
KcD…復号作業用コンテキスト鍵
KxP…暗号鍵
P…プログラム
p…プロセス
X〜X+31…アドレス
C(X),C’(X)…キャッシュデータ
Claims (6)
- プロセッサコアと、該プロセッサコアに接続され、複数のキャッシュラインを有するキャッシュコントローラと、前記キャッシュコントローラと接続され、少なくともプロセスと対応付けられた鍵を含む鍵テーブルと暗号/復号コントローラとを有するバスインタフェースユニットとを備え、外部のメモリとデータの送受信を行なうマイクロプロセッサであって、
前記鍵テーブルは、前記外部のメモリとの間の読み書き可能なデータについての暗号作業用データ鍵、及び、復号作業用データ鍵を対にして保持し、
前記マイクロプロセッサは、
前記プロセスを一意に識別する識別子と前記データに対する読み出し/書き込み信号に基づいて前記暗号作業用データ鍵および前記復号作業用データ鍵を選択するセレクタである第1の手段と、
前記暗号/復号コントローラ内に保持され、暗号/復号共通のハードウェアで共通鍵暗号方式における暗号/復号処理を行う暗号/復号共通モジュールからなる第2の手段と、
前記外部のメモリから読み出したデータを、前記第1の手段により選択された鍵で復号して、前記キャッシュコントローラに通知する第3の手段と、
前記プロセスにより、前記キャッシュコントローラに通知し復号されたデータを前記第1の手段で選択された鍵で暗号化して前記外部のメモリへ出力する第4の手段とを備える
ことを特徴とするマイクロプロセッサ。 - 前記鍵テーブルは、前記外部のメモリとの間の読み書き可能なコンテキストについての暗号作業用コンテキスト鍵、及び、復号作業用コンテキスト鍵を対にして保持し、
第1の手段は、前記プロセスの識別子と前記コンテキストに対する読み出し/書き込み信号に基づいて前記暗号作業用コンテキスト鍵および前記復号作業用コンテキスト鍵を選択する
ことを特徴とする請求項1記載のマイクロプロセッサ。 - プロセッサコアと、該プロセッサコアに接続され、複数のキャッシュラインを有するキャッシュコントローラと、前記キャッシュコントローラと接続され、少なくともプロセスと対応付けられた鍵を含む鍵テーブルと暗号/復号コントローラとを有するバスインタフェースユニットとを備え、外部のメモリとデータの送受信を行なうマイクロプロセッサであって、
前記鍵テーブルは、前記外部のメモリとの間の読み書き可能なデータについての暗号作業用データ鍵、及び、復号作業用データ鍵を対にして保持し、
前記マイクロプロセッサは、
前記プロセスを一意に識別する識別子と前記データに対する読み出し/書き込み信号に基づいて前記暗号作業用データ鍵および前記復号作業用データ鍵を選択するセレクタである第1の手段と、
前記暗号/復号コントローラ内に保持され、暗号/復号共通のハードウェアで共通鍵暗号方式における暗号/復号処理を行う暗号/復号共通モジュールからなる第2の手段と、
前記外部のメモリから読み出したデータを、前記第1の手段により選択された鍵で復号して、前記キャッシュコントローラに通知する第3の手段と、
前記プロセスにより、前記キャッシュコントローラに通知し復号されたデータを前記第1の手段で選択された鍵で暗号化して前記外部のメモリへ出力する第4の手段と、
ソフトウェアが前記暗号作業用データ鍵を指定して、前記鍵テーブルへの鍵登録を前記マイクロプロセッサに指示した時、前記暗号/復号共通モジュールによって、前記暗号作業用データ鍵で暗号化された前記データを復号するための前記復号作業用データ鍵を生成し、前記暗号作業用データ鍵、及び、前記復号作業用データ鍵を対応する前記鍵テーブルに書き込む暗号/復号作業用鍵生成器からなる第5の手段と
を備えることを特徴とするマイクロプロセッサ。 - 前記第5の手段は、ソフトウェアが前記復号作業用データ鍵を指定して、前記鍵テーブルへの鍵登録を前記マイクロプロセッサに指示した時、前記暗号/復号共通モジュールによって、前記復号作業用データ鍵で復号された前記データを復号前の暗号化データにするための前記暗号作業用データ鍵を生成し、前記暗号作業用データ鍵、及び、前記復号作業用データ鍵を対応する前記鍵テーブルに書き込むことを特徴とする請求項3のマイクロプロセッサ。
- 前記鍵テーブルは、前記外部のメモリとの間の読み書き可能なコンテキストについての暗号作業用コンテキスト鍵、及び、復号作業用コンテキスト鍵を対にして保持し、
第1の手段は、前記プロセスの識別子と前記コンテキストに対する読み出し/書き込み信号に基づいて前記暗号作業用コンテキスト鍵および前記復号作業用コンテキスト鍵を選択し、
前記第5の手段は、ソフトウェアが前記鍵テーブルへの鍵登録を前記マイクロプロセッサに指示したとき、前記暗号/復号共通モジュールによって、前記暗号作業用コンテキスト鍵で暗号化された前記コンテキストを復号するための前記復号作業用コンテキスト鍵を生成し、前記暗号作業用コンテキスト鍵、及び、前記復号作業用コンテキスト鍵を対応する前記鍵テーブルに書き込むことを特徴とする請求項3記載のマイクロプロセッサ。 - 前記第5の手段は、ソフトウェアが前記鍵テーブルへの鍵登録を前記マイクロプロセッサに指示したとき、前記暗号/復号共通モジュールによって、前記復号作業用コンテキスト鍵で復号された前記コンテキストを復号前の暗号化されたコンテキストにするための前記暗号作業用コンテキスト鍵を生成し、前記暗号作業用コンテキスト鍵、及び、前記復号作業用コンテキスト鍵を対応する前記鍵テーブルに書き込むことを特徴とする請求項5記載のマイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003309359A JP4309726B2 (ja) | 2003-09-01 | 2003-09-01 | マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003309359A JP4309726B2 (ja) | 2003-09-01 | 2003-09-01 | マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005078459A JP2005078459A (ja) | 2005-03-24 |
JP4309726B2 true JP4309726B2 (ja) | 2009-08-05 |
Family
ID=34411547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003309359A Expired - Fee Related JP4309726B2 (ja) | 2003-09-01 | 2003-09-01 | マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4309726B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657754B2 (en) * | 2005-12-08 | 2010-02-02 | Agere Systems Inc | Methods and apparatus for the secure handling of data in a microcontroller |
JP4762752B2 (ja) | 2006-02-16 | 2011-08-31 | 富士通セミコンダクター株式会社 | 半導体メモリ |
JP2009278491A (ja) * | 2008-05-16 | 2009-11-26 | Casio Comput Co Ltd | マイクロプロセッサ及びマイクロプロセッサ応用装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4098478B2 (ja) * | 2001-01-31 | 2008-06-11 | 株式会社東芝 | マイクロプロセッサ |
JP2002334019A (ja) * | 2001-05-09 | 2002-11-22 | Matsushita Electric Ind Co Ltd | プログラマブル論理素子及びプログラマブル論理素子用データ書換システム |
JP4226816B2 (ja) * | 2001-09-28 | 2009-02-18 | 株式会社東芝 | マイクロプロセッサ |
-
2003
- 2003-09-01 JP JP2003309359A patent/JP4309726B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005078459A (ja) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7590869B2 (en) | On-chip multi-core type tamper resistant microprocessor | |
US7107459B2 (en) | Secure CPU and memory management unit with cryptographic extensions | |
US7568112B2 (en) | Data access control method for tamper resistant microprocessor using cache memory | |
US7136488B2 (en) | Microprocessor using asynchronous public key decryption processing | |
US8516271B2 (en) | Securing non-volatile memory regions | |
US9280675B2 (en) | Encrypting and storing confidential data | |
WO2019109967A1 (en) | Storage apparatus and method for address scrambling | |
US8170205B2 (en) | Processor apparatus | |
US8191155B2 (en) | Microprocessor | |
JP4738068B2 (ja) | プロセッサ及びシステム | |
US8745407B2 (en) | Virtual machine or hardware processor for IC-card portable electronic devices | |
US10019603B2 (en) | Secured memory system and method therefor | |
RU2005121915A (ru) | Команды для поддержки обработки шифрованного сообщения | |
US20190215160A1 (en) | Managing a set of cryptographic keys in an encrypted system | |
US11748493B2 (en) | Secure asset management system | |
JP4643702B2 (ja) | マイクロプロセッサ | |
JP4309726B2 (ja) | マイクロプロセッサ | |
JP3642533B2 (ja) | プログラムカード及びこれを用いた計算機 | |
JP4021810B2 (ja) | プロセッサ、プロセッサシステム及びキャッシュ一貫性制御方法 | |
JP2010055423A (ja) | マイクロプロセッサ | |
JP2006254099A (ja) | マイクロプロセッサ | |
WO2015157842A1 (en) | Secured memory system and method therefor | |
JP2007043345A (ja) | 通信装置およびそれにおける処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080812 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081014 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090203 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090323 |
|
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: 20090414 |
|
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: 20090508 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130515 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130515 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140515 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |