JP2002244925A - 半導体回路およびデータ処理方法 - Google Patents
半導体回路およびデータ処理方法Info
- Publication number
- JP2002244925A JP2002244925A JP2001042446A JP2001042446A JP2002244925A JP 2002244925 A JP2002244925 A JP 2002244925A JP 2001042446 A JP2001042446 A JP 2001042446A JP 2001042446 A JP2001042446 A JP 2001042446A JP 2002244925 A JP2002244925 A JP 2002244925A
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- address
- semiconductor memory
- bus
- 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.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
(57)【要約】
【課題】 秘匿性の高いデータを外部バスを介して半導
体回路と半導体記憶回路との間で伝送する場合でも、当
該データの秘匿性を保つことができる半導体回路を提供
する。 【解決手段】 SAMチップ408は、バス409を介
して外部メモリ407に書き込むデータを所定のデータ
長を単位としてスクランブル鍵で暗号化し、バス409
を介して外部メモリ407から読み出したデータをスク
ランブル鍵で復号し、バス409のバス幅をNbとし、
前記データ長をNcとし、Nc/Nb=nとし、n以上
の最も小さい整数をmとした場合に、バス409を介し
たデータ入出力トランザクションを、m回のデータ入出
力トランザクションを単位として行う。
体回路と半導体記憶回路との間で伝送する場合でも、当
該データの秘匿性を保つことができる半導体回路を提供
する。 【解決手段】 SAMチップ408は、バス409を介
して外部メモリ407に書き込むデータを所定のデータ
長を単位としてスクランブル鍵で暗号化し、バス409
を介して外部メモリ407から読み出したデータをスク
ランブル鍵で復号し、バス409のバス幅をNbとし、
前記データ長をNcとし、Nc/Nb=nとし、n以上
の最も小さい整数をmとした場合に、バス409を介し
たデータ入出力トランザクションを、m回のデータ入出
力トランザクションを単位として行う。
Description
【0001】
【発明の属する技術分野】本発明は、CPU(Central P
rocessing Unit) と外部メモリとの間のデータ伝送をセ
キュアに行うことが可能な半導体回路およびデータ処理
方法に関する。
rocessing Unit) と外部メモリとの間のデータ伝送をセ
キュアに行うことが可能な半導体回路およびデータ処理
方法に関する。
【0002】
【従来の技術】CPUが内蔵されたLSIチップでは、
CPUがLSIチップの外部のメモリにアクセスを行う
場合がある。このような場合に、LSIチップと外部メ
モリとの間に設けられたバス上をデータが流れるため、
バスをプローブすることによって、当該データを見るこ
とができる。
CPUがLSIチップの外部のメモリにアクセスを行う
場合がある。このような場合に、LSIチップと外部メ
モリとの間に設けられたバス上をデータが流れるため、
バスをプローブすることによって、当該データを見るこ
とができる。
【0003】
【発明が解決しようとする課題】しかしながら、上述し
たLSIチップが、電子商取引や個人認証などの秘匿性
の高い処理を行う場合には、上述したようにデータがプ
ローブされるとセキュリティ上の問題がある。
たLSIチップが、電子商取引や個人認証などの秘匿性
の高い処理を行う場合には、上述したようにデータがプ
ローブされるとセキュリティ上の問題がある。
【0004】本発明は、上述した従来技術に鑑みてなさ
れたものであり、秘匿性の高いデータを外部バスを介し
て半導体回路と半導体記憶回路との間で伝送する場合で
も、当該データの秘匿性を保つことができる半導体回路
およびデータ処理方法を提供することを目的とする。
れたものであり、秘匿性の高いデータを外部バスを介し
て半導体回路と半導体記憶回路との間で伝送する場合で
も、当該データの秘匿性を保つことができる半導体回路
およびデータ処理方法を提供することを目的とする。
【0005】
【課題を解決するための手段】上述した目的を達成する
ために、本発明の半導体回路は、データ処理回路および
データ入出力処理回路を有する半導体回路であって、前
記データ処理回路は、当該半導体回路の外部のバスとの
間で、前記データ入出力処理回路を介してデータを入出
力し、前記データ入出力回路は、前記データ処理回路か
ら入力したデータを、所定のデータ長を単位として暗号
化して前記バスに出力し、前記バスから入力したデータ
を復号して前記データ処理回路に出力し、前記バスのバ
ス幅をNbとし、前記データ長をNcとし、Nc/Nb
=nとし、n以上の最も小さい整数をmとした場合に、
前記外部バスを介したデータ入出力トランザクション
を、m回のデータ入出力トランザクションを単位として
行う。
ために、本発明の半導体回路は、データ処理回路および
データ入出力処理回路を有する半導体回路であって、前
記データ処理回路は、当該半導体回路の外部のバスとの
間で、前記データ入出力処理回路を介してデータを入出
力し、前記データ入出力回路は、前記データ処理回路か
ら入力したデータを、所定のデータ長を単位として暗号
化して前記バスに出力し、前記バスから入力したデータ
を復号して前記データ処理回路に出力し、前記バスのバ
ス幅をNbとし、前記データ長をNcとし、Nc/Nb
=nとし、n以上の最も小さい整数をmとした場合に、
前記外部バスを介したデータ入出力トランザクション
を、m回のデータ入出力トランザクションを単位として
行う。
【0006】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、前記データ処理回路から
入力した第1のアドレスに基づいて、前記バスを介して
半導体記憶回路にアクセスを行う場合に、Ncのデータ
が記憶される記憶領域を単位として前記半導体記憶回路
にアクセスを行うように、前記第1のアドレスを第2の
アドレスに変換し、当該第2のアドレスを用いて前記半
導体記憶回路にアクセスを行う。
は、前記データ入出力回路は、前記データ処理回路から
入力した第1のアドレスに基づいて、前記バスを介して
半導体記憶回路にアクセスを行う場合に、Ncのデータ
が記憶される記憶領域を単位として前記半導体記憶回路
にアクセスを行うように、前記第1のアドレスを第2の
アドレスに変換し、当該第2のアドレスを用いて前記半
導体記憶回路にアクセスを行う。
【0007】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、第1のアドレスに第1の
データを書き込む指示を前記データ処理回路が受けた場
合に、前記第1のアドレスを前記第2のアドレスに変換
し、前記第2のアドレスを用いて、前記第1のアドレス
を含む所定のアドレス範囲のデータを前記半導体記憶回
路から読み出し、当該読み出したデータを復号し、前記
復号したデータのうち、前記第1のアドレスに対応する
データを書き換え、前記書き換えられたデータを含む前
記所定のアドレス範囲のデータを暗号化し、前記暗号化
したデータを、前記第2のアドレスを用いて前記半導体
記憶回路に書き込む。
は、前記データ入出力回路は、第1のアドレスに第1の
データを書き込む指示を前記データ処理回路が受けた場
合に、前記第1のアドレスを前記第2のアドレスに変換
し、前記第2のアドレスを用いて、前記第1のアドレス
を含む所定のアドレス範囲のデータを前記半導体記憶回
路から読み出し、当該読み出したデータを復号し、前記
復号したデータのうち、前記第1のアドレスに対応する
データを書き換え、前記書き換えられたデータを含む前
記所定のアドレス範囲のデータを暗号化し、前記暗号化
したデータを、前記第2のアドレスを用いて前記半導体
記憶回路に書き込む。
【0008】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、第1のアドレスからデー
タを読み出す指示を前記データ処理回路から受けた場合
に、前記第1のアドレスを前記第2のアドレスに変換
し、前記第2のアドレスを用いて、前記第1のアドレス
を含む所定のアドレス範囲のデータを前記半導体記憶回
路から読み出し、当該読み出したデータを復号し、当該
復号したデータのうち、前記第1のアドレスに対応する
データを取り出して前記データ処理回路に出力する。
は、前記データ入出力回路は、第1のアドレスからデー
タを読み出す指示を前記データ処理回路から受けた場合
に、前記第1のアドレスを前記第2のアドレスに変換
し、前記第2のアドレスを用いて、前記第1のアドレス
を含む所定のアドレス範囲のデータを前記半導体記憶回
路から読み出し、当該読み出したデータを復号し、当該
復号したデータのうち、前記第1のアドレスに対応する
データを取り出して前記データ処理回路に出力する。
【0009】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、前記暗号化および復号に
用いる鍵データを、データを前記半導体記憶回路に書き
込むために暗号化するときに用いる鍵データと、当該デ
ータを前記半導体記憶回路から読み出して復号するとき
に用いる鍵データとが同じになることを条件に、適宜切
り換える。
は、前記データ入出力回路は、前記暗号化および復号に
用いる鍵データを、データを前記半導体記憶回路に書き
込むために暗号化するときに用いる鍵データと、当該デ
ータを前記半導体記憶回路から読み出して復号するとき
に用いる鍵データとが同じになることを条件に、適宜切
り換える。
【0010】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、複数の前記鍵を記憶して
おり、前記複数の鍵を適宜切り換えて使用する。
は、前記データ入出力回路は、複数の前記鍵を記憶して
おり、前記複数の鍵を適宜切り換えて使用する。
【0011】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、前記半導体記憶回路にア
クセスを行うアドレスを用いて演算を行って前記鍵を生
成する。
は、前記データ入出力回路は、前記半導体記憶回路にア
クセスを行うアドレスを用いて演算を行って前記鍵を生
成する。
【0012】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、前記半導体記憶回路に書
き込むデータからパリティデータを生成し、当該データ
に対応付けて前記パリティデータを前記半導体記憶回路
に書き込み、当該データの読み出しと共に対応するパリ
ティデータを読み出し、当該パリティデータに基づい
て、当該読み出したデータの正当性を検証する。
は、前記データ入出力回路は、前記半導体記憶回路に書
き込むデータからパリティデータを生成し、当該データ
に対応付けて前記パリティデータを前記半導体記憶回路
に書き込み、当該データの読み出しと共に対応するパリ
ティデータを読み出し、当該パリティデータに基づい
て、当該読み出したデータの正当性を検証する。
【0013】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、前記半導体記憶回路にデ
ータを書き込む処理、または前記半導体記憶回路からデ
ータを読み出す処理の少なくとも一方を、複数の処理に
分割し、当該分割した処理を単位としてパイプライン処
理を実行する。
は、前記データ入出力回路は、前記半導体記憶回路にデ
ータを書き込む処理、または前記半導体記憶回路からデ
ータを読み出す処理の少なくとも一方を、複数の処理に
分割し、当該分割した処理を単位としてパイプライン処
理を実行する。
【0014】また、本発明の半導体回路は、好ましく
は、前記データ入出力回路は、前記データ処理回路から
入力したアドレスをスクランブルして前記第2のアドレ
スを生成する。
は、前記データ入出力回路は、前記データ処理回路から
入力したアドレスをスクランブルして前記第2のアドレ
スを生成する。
【0015】また、本発明のデータ処理方法は、バスを
介して半導体回路と半導体記憶回路とが接続されている
場合に、前記半導体記憶回路にアクセスを行うときに半
導体回路が行うデータ処理方法であって、前記半導体記
憶回路に書き込むデータを所定のデータ長を単位として
暗号化して前記バスに出力し、前記バスから入力したデ
ータを復号し、前記バスのバス幅をNbとし、前記デー
タ長をNcとし、Nc/Nb=nとし、n以上の最も小
さい整数をmとした場合に、前記外部バスを介したデー
タ入出力トランザクションを、m回のデータ入出力トラ
ンザクションを単位として行う。
介して半導体回路と半導体記憶回路とが接続されている
場合に、前記半導体記憶回路にアクセスを行うときに半
導体回路が行うデータ処理方法であって、前記半導体記
憶回路に書き込むデータを所定のデータ長を単位として
暗号化して前記バスに出力し、前記バスから入力したデ
ータを復号し、前記バスのバス幅をNbとし、前記デー
タ長をNcとし、Nc/Nb=nとし、n以上の最も小
さい整数をmとした場合に、前記外部バスを介したデー
タ入出力トランザクションを、m回のデータ入出力トラ
ンザクションを単位として行う。
【0016】
【発明の実施の形態】以下、本発明の実施の形態を添付
図面を参照して説明する。図1は、本実施形態の通信シ
ステム401の全体構成図である。図1に示すように、
通信システム401は、サーバ装置402、ICカード
403、カードリーダ・ライタ404、パーソナルコン
ピュータ405、ASP(Application Service Provide
r)サーバ装置406、SAM(Secure ApplicationModul
e) ユニット409、パーソナルコンピュータ416_
1,416_2,416_3、並びに認証用ユニット4
17_1,417_2,417_3を用いて、インター
ネット410を介して通信を行ってICカード403を
用いた決済処理などの手続き処理を行う。SAMユニッ
ト409は、外部メモリ407およびSAMチップ40
8を有する。SAMチップ408は、図2に示すような
ソフトウェア構成を有している。図2に示すように、S
AMチップ408は、下層から上層に向けて、HW(Har
dware)層、OS層、下位ハンドラ層、上位ハンドラ層お
よびAP層を順に有している。下位ハンドラ層には、ド
ライバ層が含まれる。ここで、AP層には、図1に示す
クレジットカード会社などの事業者415_1,415
_2,415_3によるICカード403を用いた手続
きを規定したアプリケーションプログラムAP_1,A
P_2,AP_3がある。AP層では、アプリケーショ
ンプログラムAP_1,AP_2,AP_3相互間、並
びに上位ハンドラ層との間にファイアウォールFWが設
けられている。
図面を参照して説明する。図1は、本実施形態の通信シ
ステム401の全体構成図である。図1に示すように、
通信システム401は、サーバ装置402、ICカード
403、カードリーダ・ライタ404、パーソナルコン
ピュータ405、ASP(Application Service Provide
r)サーバ装置406、SAM(Secure ApplicationModul
e) ユニット409、パーソナルコンピュータ416_
1,416_2,416_3、並びに認証用ユニット4
17_1,417_2,417_3を用いて、インター
ネット410を介して通信を行ってICカード403を
用いた決済処理などの手続き処理を行う。SAMユニッ
ト409は、外部メモリ407およびSAMチップ40
8を有する。SAMチップ408は、図2に示すような
ソフトウェア構成を有している。図2に示すように、S
AMチップ408は、下層から上層に向けて、HW(Har
dware)層、OS層、下位ハンドラ層、上位ハンドラ層お
よびAP層を順に有している。下位ハンドラ層には、ド
ライバ層が含まれる。ここで、AP層には、図1に示す
クレジットカード会社などの事業者415_1,415
_2,415_3によるICカード403を用いた手続
きを規定したアプリケーションプログラムAP_1,A
P_2,AP_3がある。AP層では、アプリケーショ
ンプログラムAP_1,AP_2,AP_3相互間、並
びに上位ハンドラ層との間にファイアウォールFWが設
けられている。
【0017】SAMチップ408は、SCSIまたはE
thernetなどを採用したバス419を介してAS
Pサーバ装置406に接続される。ASPサーバ装置4
06は、インターネット410を介して、エンドユーザ
のパーソナルコンピュータ405、事業者415_1,
415_2,415_3のパーソナルコンピュータ41
6_1,416_2,416_3を含む複数の端末装置
に接続される。パーソナルコンピュータ405は、例え
ば、シリアルまたはUSBを介してDumb型のカード
リーダ・ライタ4に接続されている。カードリーダ・ラ
イタ4が、ICカード403との間で物理レベルに相当
する例えば無線通信を実現する。ICカード403への
操作コマンドおよびICカード403からのリスポンス
パケットは、SAMユニット409側で生成および解読
される。よって、その中間に介在するカードリーダ・ラ
イタ4、パーソナルコンピュータ405およびASPサ
ーバ装置406は、コマンドやリスポンス内容をデータ
ペイロード部分に格納して中継する役割を果たすのみ
で、ICカード403内のデータの暗号化や復号および
認証などの実操作には関与しない。
thernetなどを採用したバス419を介してAS
Pサーバ装置406に接続される。ASPサーバ装置4
06は、インターネット410を介して、エンドユーザ
のパーソナルコンピュータ405、事業者415_1,
415_2,415_3のパーソナルコンピュータ41
6_1,416_2,416_3を含む複数の端末装置
に接続される。パーソナルコンピュータ405は、例え
ば、シリアルまたはUSBを介してDumb型のカード
リーダ・ライタ4に接続されている。カードリーダ・ラ
イタ4が、ICカード403との間で物理レベルに相当
する例えば無線通信を実現する。ICカード403への
操作コマンドおよびICカード403からのリスポンス
パケットは、SAMユニット409側で生成および解読
される。よって、その中間に介在するカードリーダ・ラ
イタ4、パーソナルコンピュータ405およびASPサ
ーバ装置406は、コマンドやリスポンス内容をデータ
ペイロード部分に格納して中継する役割を果たすのみ
で、ICカード403内のデータの暗号化や復号および
認証などの実操作には関与しない。
【0018】事業者415_1,415_2,415_
3は、パーソナルコンピュータ416_1,416_
2,416_3を用いてアプリケーションプログラムA
P_1,AP_2,AP_3を作成し、それぞれ認証用
ユニット417_1,417_2,417_3を介し
て、当該作成したアプリケーションプログラムをSAM
チップ408を介して外部メモリ407内の予め割り当
てられた記憶領域にダウンロードする。このとき、事業
者415_1,415_2,415_3は相互に無関係
の者であるため、アプリケーションプログラムAP_
1,AP_2,AP_3をダウンロードできる外部メモ
リ407内の記憶領域は予め決められており、当該記憶
領域へのダウンロードを行う権限を有するか否かがSA
Mチップ408によって検証される。また、アプリケー
ションプログラムAP_1,AP_2,AP_3相互間
では、ファイアウォールFWによって、データの授受お
よび参照が制限されている。認証用ユニット417_
1,417_2,417_3は、後述するように、アプ
リケーションプログラムAP_1,AP_2,AP_3
をSAMチップ408にダウンロードする際に、SAM
チップ408との間で相互認証を行い、ダウンロード用
署名検証鍵情報の作成などを行う。
3は、パーソナルコンピュータ416_1,416_
2,416_3を用いてアプリケーションプログラムA
P_1,AP_2,AP_3を作成し、それぞれ認証用
ユニット417_1,417_2,417_3を介し
て、当該作成したアプリケーションプログラムをSAM
チップ408を介して外部メモリ407内の予め割り当
てられた記憶領域にダウンロードする。このとき、事業
者415_1,415_2,415_3は相互に無関係
の者であるため、アプリケーションプログラムAP_
1,AP_2,AP_3をダウンロードできる外部メモ
リ407内の記憶領域は予め決められており、当該記憶
領域へのダウンロードを行う権限を有するか否かがSA
Mチップ408によって検証される。また、アプリケー
ションプログラムAP_1,AP_2,AP_3相互間
では、ファイアウォールFWによって、データの授受お
よび参照が制限されている。認証用ユニット417_
1,417_2,417_3は、後述するように、アプ
リケーションプログラムAP_1,AP_2,AP_3
をSAMチップ408にダウンロードする際に、SAM
チップ408との間で相互認証を行い、ダウンロード用
署名検証鍵情報の作成などを行う。
【0019】以下、図1に示すSAMユニット409に
ついて詳細に説明する。外部メモリ407 図3は、外部メモリ407の記憶領域を説明するための
図である。図3に示すように、外部メモリ407の記憶
領域には、事業者415_1のアプリケーションプログ
ラムAP_1が記憶されるAP記憶領域420_1、事
業者415_2のアプリケーションプログラムAP_2
が記憶されるAP記憶領域420_2、事業者415_
3のアプリケーションプログラムAP_3が記憶される
AP記憶領域420_3、並びにSAMチップ408の
管理者が使用するAP管理用記憶領域421がある。
ついて詳細に説明する。外部メモリ407 図3は、外部メモリ407の記憶領域を説明するための
図である。図3に示すように、外部メモリ407の記憶
領域には、事業者415_1のアプリケーションプログ
ラムAP_1が記憶されるAP記憶領域420_1、事
業者415_2のアプリケーションプログラムAP_2
が記憶されるAP記憶領域420_2、事業者415_
3のアプリケーションプログラムAP_3が記憶される
AP記憶領域420_3、並びにSAMチップ408の
管理者が使用するAP管理用記憶領域421がある。
【0020】AP記憶領域420_1に記憶されている
アプリケーションプログラムAP_1は、複数のプログ
ラムモジュールによって構成されている。AP記憶領域
420_1へのアクセスは、ファイアウォールFW_1
によって制限されている。AP記憶領域420_2に記
憶されているアプリケーションプログラムAP_2は、
複数のプログラムモジュールによって構成されている。
AP記憶領域420_2へのアクセスは、ファイアウォ
ールFW_2によって制限されている。AP記憶領域4
20_3に記憶されているアプリケーションプログラム
AP_3は、複数のプログラムモジュールによって構成
されている。AP記憶領域420_3へのアクセスは、
ファイアウォールFW_3によって制限されている。本
実施形態では、上記プログラムモジュールは、例えば、
SAMユニット9の外部から外部メモリ407にダウン
ロードされる最小単位である。各アプリケーションプロ
グラムを構成するプログラムモジュールの数は、対応す
る事業者が任意に決定できる。
アプリケーションプログラムAP_1は、複数のプログ
ラムモジュールによって構成されている。AP記憶領域
420_1へのアクセスは、ファイアウォールFW_1
によって制限されている。AP記憶領域420_2に記
憶されているアプリケーションプログラムAP_2は、
複数のプログラムモジュールによって構成されている。
AP記憶領域420_2へのアクセスは、ファイアウォ
ールFW_2によって制限されている。AP記憶領域4
20_3に記憶されているアプリケーションプログラム
AP_3は、複数のプログラムモジュールによって構成
されている。AP記憶領域420_3へのアクセスは、
ファイアウォールFW_3によって制限されている。本
実施形態では、上記プログラムモジュールは、例えば、
SAMユニット9の外部から外部メモリ407にダウン
ロードされる最小単位である。各アプリケーションプロ
グラムを構成するプログラムモジュールの数は、対応す
る事業者が任意に決定できる。
【0021】アプリケーションプログラムAP_1,A
P_2,AP_3は、例えば、それぞれ図1に示すパー
ソナルコンピュータ416_1,416_2,416_
3を用いて、事業者415_1,415_2,415_
3によって作成され、SAMチップ408を介して外部
メモリ407にダウンロードされる。
P_2,AP_3は、例えば、それぞれ図1に示すパー
ソナルコンピュータ416_1,416_2,416_
3を用いて、事業者415_1,415_2,415_
3によって作成され、SAMチップ408を介して外部
メモリ407にダウンロードされる。
【0022】AP管理用記憶領域421へのアクセス
は、ファイアウォールFW_4によって、SAMチップ
408の管理者にのみ許可される。なお、ファイアウォ
ールFW_1,FW_2,FW_3,FW_4は、図2
に示すファイアウォールFWに対応している。AP管理
用記憶領域421には、図3に示すように、AP管理用
データ421が記憶されている。ここで、AP管理用デ
ータ421は、SAMチップ408が、アプリケーショ
ンプログラムAP_1,AP_2,AP_3の実行など
を管理するために用いられる。
は、ファイアウォールFW_4によって、SAMチップ
408の管理者にのみ許可される。なお、ファイアウォ
ールFW_1,FW_2,FW_3,FW_4は、図2
に示すファイアウォールFWに対応している。AP管理
用記憶領域421には、図3に示すように、AP管理用
データ421が記憶されている。ここで、AP管理用デ
ータ421は、SAMチップ408が、アプリケーショ
ンプログラムAP_1,AP_2,AP_3の実行など
を管理するために用いられる。
【0023】本実施形態では、外部メモリ407に記憶
されたアプリケーションプログラムAP_1,AP_
2,AP_3およびAP管理用データ421は、後述す
るように、SAMチップ408内のバススクランブル部
461によってスクランブル鍵Kを用いてスクランブル
されており、SAMチップ408に読み込まれたときに
スクランブル鍵Kを用いてデスクランブルされる。
されたアプリケーションプログラムAP_1,AP_
2,AP_3およびAP管理用データ421は、後述す
るように、SAMチップ408内のバススクランブル部
461によってスクランブル鍵Kを用いてスクランブル
されており、SAMチップ408に読み込まれたときに
スクランブル鍵Kを用いてデスクランブルされる。
【0024】SAMチップ408 図4は、図1に示すSAMチップ408の機能ブロック
図である。図4に示すように、SAMチップ408は、
ASPS通信インタフェース部460、バススクランブ
ル部461、署名処理部462、認証処理部463、暗
号・復号部464、記憶部465、CPU466を有す
る。SAMチップ408は、耐タンパ性のモジュールで
ある。ここで、CPU466が本発明のデータ処理回路
に対応し、バススクランブル部461が本発明のデータ
入出力回路に対応している。また、SAMチップ408
が本発明の半導体回路に対応し、外部メモリ407が本
発明の半導体記憶回路に対応している。
図である。図4に示すように、SAMチップ408は、
ASPS通信インタフェース部460、バススクランブ
ル部461、署名処理部462、認証処理部463、暗
号・復号部464、記憶部465、CPU466を有す
る。SAMチップ408は、耐タンパ性のモジュールで
ある。ここで、CPU466が本発明のデータ処理回路
に対応し、バススクランブル部461が本発明のデータ
入出力回路に対応している。また、SAMチップ408
が本発明の半導体回路に対応し、外部メモリ407が本
発明の半導体記憶回路に対応している。
【0025】ASPS通信インタフェース部460は、
図1に示すASPサーバ装置406との間のデータ入出
力に用いられるインタフェースである。バススクランブ
ル部461は、外部メモリ407に書き込むデータをス
クランブルし、外部メモリ407から読み出したデータ
をデスクランブルする。すなわち、外部メモリ407に
は、スクランブルされた状態でデータが記憶される。バ
ススクランブル部461の処理について後に詳細に説明
する。
図1に示すASPサーバ装置406との間のデータ入出
力に用いられるインタフェースである。バススクランブ
ル部461は、外部メモリ407に書き込むデータをス
クランブルし、外部メモリ407から読み出したデータ
をデスクランブルする。すなわち、外部メモリ407に
は、スクランブルされた状態でデータが記憶される。バ
ススクランブル部461の処理について後に詳細に説明
する。
【0026】署名処理部462は、後述するようにイン
ターネット410を介してアプリケーションプログラム
を外部メモリ407にダウンロードするとき、並びにア
プリケーションプログラムを実行するときに署名作成お
よび署名検証を行う。認証処理部463は、後述するよ
うにインターネット410を介してアプリケーションプ
ログラムを外部メモリ407にダウンロードするときな
どに、相手先と相互認証を行う。暗号・復号部464
は、データの暗号化、並びに暗号化されたデータの復号
を行う。記憶部465は、CPU467の処理に必要な
データを記憶する。CPU466は、バススクランブル
部461を介して外部メモリ407にアクセスを行いな
がら、アプリケーションプログラムAP_1,AP_
2,AP_3を実行し、SAMチップ408のサービス
に対応した様々な処理を行う。
ターネット410を介してアプリケーションプログラム
を外部メモリ407にダウンロードするとき、並びにア
プリケーションプログラムを実行するときに署名作成お
よび署名検証を行う。認証処理部463は、後述するよ
うにインターネット410を介してアプリケーションプ
ログラムを外部メモリ407にダウンロードするときな
どに、相手先と相互認証を行う。暗号・復号部464
は、データの暗号化、並びに暗号化されたデータの復号
を行う。記憶部465は、CPU467の処理に必要な
データを記憶する。CPU466は、バススクランブル
部461を介して外部メモリ407にアクセスを行いな
がら、アプリケーションプログラムAP_1,AP_
2,AP_3を実行し、SAMチップ408のサービス
に対応した様々な処理を行う。
【0027】以下、バススクランブル部461の処理に
ついて詳細に説明する。なお、本実施形態では、バスス
クランブル部461を、外部メモリ407へのアクセス
時に使用する場合を例示するが、バススクランブル部4
61はその他のSAMチップ408がI/Oバスなどを
介して外部との間でデータ入出力を行う場合にも適用で
きる。
ついて詳細に説明する。なお、本実施形態では、バスス
クランブル部461を、外部メモリ407へのアクセス
時に使用する場合を例示するが、バススクランブル部4
61はその他のSAMチップ408がI/Oバスなどを
介して外部との間でデータ入出力を行う場合にも適用で
きる。
【0028】バススクランブル部461は、CPU46
6から入力したデータを、所定のスクランブル鍵Kを用
いて暗号化した後に、バス409を介して外部メモリ4
07に書き込む。また、バススクランブル部461は、
バス409を介して外部メモリ407から読み出したデ
ータを、スクランブル鍵Kを用いて復号してCPU46
6に出力する。
6から入力したデータを、所定のスクランブル鍵Kを用
いて暗号化した後に、バス409を介して外部メモリ4
07に書き込む。また、バススクランブル部461は、
バス409を介して外部メモリ407から読み出したデ
ータを、スクランブル鍵Kを用いて復号してCPU46
6に出力する。
【0029】〔アドレス空間〕バススクランブル部46
1で使用される暗号アルゴリズムの暗号ブロック長をN
cとし、バス409のデータバス幅をNbとする。以下
の例では、NcがNbの整数倍、すなわち、n(=Nc
/Nb)が整数の場合を考える。なお、CPU466の
アドレス空間(SAMチップ408内でのアドレス空
間)と、バススクランブル部461が外部メモリ407
にアクセスを行うときに用いるアドレス空間(以下、外
部メモリアドレス空間とも記す)とは、パリティの付加
やアドレスのスクランブルにより異なる。そのため、バ
ススクランブル部461は、図5に示すように、CPU
466から入力したアドレスCPU_ADR(本発明の
第1のアドレス)を、予め規定した写像f(アドレス変
換アルゴリズム)を用いて、外部メモリアドレス空間の
アドレスMEM_ADR(本発明の第2のアドレス)に
変換する。バススクランブル部461は、アドレスME
M_ADRを用いて外部メモリ407にアクセスを行
う。
1で使用される暗号アルゴリズムの暗号ブロック長をN
cとし、バス409のデータバス幅をNbとする。以下
の例では、NcがNbの整数倍、すなわち、n(=Nc
/Nb)が整数の場合を考える。なお、CPU466の
アドレス空間(SAMチップ408内でのアドレス空
間)と、バススクランブル部461が外部メモリ407
にアクセスを行うときに用いるアドレス空間(以下、外
部メモリアドレス空間とも記す)とは、パリティの付加
やアドレスのスクランブルにより異なる。そのため、バ
ススクランブル部461は、図5に示すように、CPU
466から入力したアドレスCPU_ADR(本発明の
第1のアドレス)を、予め規定した写像f(アドレス変
換アルゴリズム)を用いて、外部メモリアドレス空間の
アドレスMEM_ADR(本発明の第2のアドレス)に
変換する。バススクランブル部461は、アドレスME
M_ADRを用いて外部メモリ407にアクセスを行
う。
【0030】この写像fは、例えば、図6に示すよう
に、アドレスCPU_ADRであるアドレスa1が「a
1 mod Nc/ Nb=0」である場合にのみ定義さ
れ、それ以外のアドレスa2は、外部メモリ407には
f(a2−(a2 mod Nc/ Nb))でアクセスさ
れる。ここで、「x mod y」は、xをyで割った
余りである。
に、アドレスCPU_ADRであるアドレスa1が「a
1 mod Nc/ Nb=0」である場合にのみ定義さ
れ、それ以外のアドレスa2は、外部メモリ407には
f(a2−(a2 mod Nc/ Nb))でアクセスさ
れる。ここで、「x mod y」は、xをyで割った
余りである。
【0031】すなわち、バススクランブル部461は、
暗号ブロック長Ncを単位として、外部メモリ407に
対してデータの読み書きを行う。ここで、Nc/Nb=
nとし、n以上の最も小さい整数をmとした場合に、バ
ススクランブル部461は、バス419を介した外部メ
モリ407へのアクセスのトランザクション(本発明の
データ入出力トランザクション)を、m回のトランザク
ションを1単位として行う。
暗号ブロック長Ncを単位として、外部メモリ407に
対してデータの読み書きを行う。ここで、Nc/Nb=
nとし、n以上の最も小さい整数をmとした場合に、バ
ススクランブル部461は、バス419を介した外部メ
モリ407へのアクセスのトランザクション(本発明の
データ入出力トランザクション)を、m回のトランザク
ションを1単位として行う。
【0032】〔バススクランブル部461の構成〕図7
は、バススクランブル部461の機能ブロック図であ
る。図7に示すように、バススクランブル部461は、
暗号化部431、復号部432、アドレス管理部43
3、スクランブル鍵管理部434、パリティ処理部43
5、パイプライン処理制御部436、作業用メモリ43
7および制御部438を有する。
は、バススクランブル部461の機能ブロック図であ
る。図7に示すように、バススクランブル部461は、
暗号化部431、復号部432、アドレス管理部43
3、スクランブル鍵管理部434、パリティ処理部43
5、パイプライン処理制御部436、作業用メモリ43
7および制御部438を有する。
【0033】暗号化部431は、CPU466から入力
したデータを、所定のスクランブル鍵Kを用いて暗号化
する。復号部432は、外部メモリ407から読み出し
たデータを、所定のスクランブル鍵Kを用いて復号す
る。アドレス管理部433は、CPU466から入力し
たアドレスCPU_ADRを、前述したようにアドレス
MEM_ADRに変換する。スクランブル鍵管理部43
4は、暗号化部431および復号部432で用いるスク
ランブル鍵Kを管理し、スクランブル鍵Kを適宜切り換
える。パリティ処理部435は、外部メモリ407に書
き込むデータにパリティデーダを付加すると共に、外部
メモリ407から読み出したデータに付加されたパリテ
ィデータを検証する。パイプライン処理制御部436
は、バススクランブル部461の処理を複数のステージ
に分割し、各ステージを単位としてパイプライン処理を
行うように制御する。作業用メモリ437は、バススク
ランブル部461の処理に用いられる。制御部438
は、バススクランブル部461の処理を統括的に制御す
る。
したデータを、所定のスクランブル鍵Kを用いて暗号化
する。復号部432は、外部メモリ407から読み出し
たデータを、所定のスクランブル鍵Kを用いて復号す
る。アドレス管理部433は、CPU466から入力し
たアドレスCPU_ADRを、前述したようにアドレス
MEM_ADRに変換する。スクランブル鍵管理部43
4は、暗号化部431および復号部432で用いるスク
ランブル鍵Kを管理し、スクランブル鍵Kを適宜切り換
える。パリティ処理部435は、外部メモリ407に書
き込むデータにパリティデーダを付加すると共に、外部
メモリ407から読み出したデータに付加されたパリテ
ィデータを検証する。パイプライン処理制御部436
は、バススクランブル部461の処理を複数のステージ
に分割し、各ステージを単位としてパイプライン処理を
行うように制御する。作業用メモリ437は、バススク
ランブル部461の処理に用いられる。制御部438
は、バススクランブル部461の処理を統括的に制御す
る。
【0034】〔外部メモリ407への書き込み動作〕図
8は、図4に示すCPU466が外部メモリ407にデ
ータを書き込む場合のバススクランブル部461の動作
を説明するための図である。図9は、図8に示す動作を
説明するためのフローチャートである。 ステップST401:CPU466からバススクランブ
ル部461に、書き込むデータDATAである「d3
2」、並びにアドレスCPU_ADRである「a3」が
出力される。当該データ「d32」は、バススクランブ
ル部461の図7に示す作業用メモリ447に書き込ま
れる。
8は、図4に示すCPU466が外部メモリ407にデ
ータを書き込む場合のバススクランブル部461の動作
を説明するための図である。図9は、図8に示す動作を
説明するためのフローチャートである。 ステップST401:CPU466からバススクランブ
ル部461に、書き込むデータDATAである「d3
2」、並びにアドレスCPU_ADRである「a3」が
出力される。当該データ「d32」は、バススクランブ
ル部461の図7に示す作業用メモリ447に書き込ま
れる。
【0035】ステップST402:Nc>Nbである場
合は、図7に示すアドレス管理部433において、アド
レス「a3」を用いて写像f(a3−(a3 mod
Nc/ Nb))すなわち写像f(a3−1)が求めら
れ、当該写像f(a3−1)が、外部メモリアドレス空
間のアドレスMEM_ADRとされる。
合は、図7に示すアドレス管理部433において、アド
レス「a3」を用いて写像f(a3−(a3 mod
Nc/ Nb))すなわち写像f(a3−1)が求めら
れ、当該写像f(a3−1)が、外部メモリアドレス空
間のアドレスMEM_ADRとされる。
【0036】ステップST403:図7に示す制御部4
38によって、ステップST402で得られたアドレス
MEM_ADRであるf(a3−1)を用いて、外部メ
モリ407から暗号化されたデータブロックe({X
1,X2})が読み出され、これが作業用メモリ437
に書き込まれる。
38によって、ステップST402で得られたアドレス
MEM_ADRであるf(a3−1)を用いて、外部メ
モリ407から暗号化されたデータブロックe({X
1,X2})が読み出され、これが作業用メモリ437
に書き込まれる。
【0037】ステップST404:図7に示す復号部4
32によって、作業用メモリ437から読み出したデー
タブロックe({X1,X2})が復号されてデータブ
ロック{X1,X2}が生成される。そして、パリティ
処理部435において、データブロックe({X1,X
2})に付加されているパリティデータを用いてパリテ
ィ処理が行われた後に、データブロック{X1,X2}
が再び作業用メモリ437に書き込まれる。
32によって、作業用メモリ437から読み出したデー
タブロックe({X1,X2})が復号されてデータブ
ロック{X1,X2}が生成される。そして、パリティ
処理部435において、データブロックe({X1,X
2})に付加されているパリティデータを用いてパリテ
ィ処理が行われた後に、データブロック{X1,X2}
が再び作業用メモリ437に書き込まれる。
【0038】スクランブル405:制御部438によっ
て、作業用メモリ437から読み出した既に復号された
データブロック{X1,X2}内のアドレス「a3」に
対応する「X2」が、書き込みデータである「d32」
に書き換えられ、データブロック{X1,d32}が生
成され、これが作業用メモリ437に書き込まれる。
て、作業用メモリ437から読み出した既に復号された
データブロック{X1,X2}内のアドレス「a3」に
対応する「X2」が、書き込みデータである「d32」
に書き換えられ、データブロック{X1,d32}が生
成され、これが作業用メモリ437に書き込まれる。
【0039】ステップST406:パリティ処理部43
5によって、データブロック{X1,d32}のパリテ
ィデータが生成される。
5によって、データブロック{X1,d32}のパリテ
ィデータが生成される。
【0040】スクランブル407:暗号化部431によ
って、作業用メモリ437から読み出したデータブロッ
ク{X1,d32}が、スクランブル鍵Kを用いて暗号
化される。
って、作業用メモリ437から読み出したデータブロッ
ク{X1,d32}が、スクランブル鍵Kを用いて暗号
化される。
【0041】スクランブル408:制御部438によっ
て、外部メモリ407内のアドレスMEM_ADRであ
るf(a3−1)にデータブロック{X1,d32}が
書き込まれ、さらにステップST406で生成したパリ
ティデータが外部メモリ407の所定の領域に書き込ま
れる。
て、外部メモリ407内のアドレスMEM_ADRであ
るf(a3−1)にデータブロック{X1,d32}が
書き込まれ、さらにステップST406で生成したパリ
ティデータが外部メモリ407の所定の領域に書き込ま
れる。
【0042】なお、制御部438は、ステップST40
7においてデータブロックを暗号化する前に、次にCP
U466から入力されるアドレスが「a3−1」である
か否かを判断し、「a3−1」であれば、データブロク
のX1を、書き込みデータで書き換えた後に暗号化を行
い、外部メモリ407に書き込む。これにより、連続し
たアドレスに書き込むが行われる場合のステップ数を少
なくできる。
7においてデータブロックを暗号化する前に、次にCP
U466から入力されるアドレスが「a3−1」である
か否かを判断し、「a3−1」であれば、データブロク
のX1を、書き込みデータで書き換えた後に暗号化を行
い、外部メモリ407に書き込む。これにより、連続し
たアドレスに書き込むが行われる場合のステップ数を少
なくできる。
【0043】また、制御部438は、例えば、データ長
がNbのデータを外部メモリ407に書き込む場合で
も、当該データを(Nc−Nb)のデータでパディング
してデータ長Ncのデータにしてから暗号化を行い、外
部メモリ407に書き込む。すなわち、データ長Nbの
データに対しても外部メモリ407内のデータ長Ncの
記憶領域を割り当てる。
がNbのデータを外部メモリ407に書き込む場合で
も、当該データを(Nc−Nb)のデータでパディング
してデータ長Ncのデータにしてから暗号化を行い、外
部メモリ407に書き込む。すなわち、データ長Nbの
データに対しても外部メモリ407内のデータ長Ncの
記憶領域を割り当てる。
【0044】〔外部メモリ407からの読み出し〕図1
0は、外部メモリ407からバススクランブル部461
への読み出し動作を説明するための図である。図11
は、当該読み出し動作を説明するためのフローチャート
である。 ステップST411:CPU466からバススクランブ
ル部461に、読み出しを行うアドレスCPU_ADR
である「a3」が出力される。
0は、外部メモリ407からバススクランブル部461
への読み出し動作を説明するための図である。図11
は、当該読み出し動作を説明するためのフローチャート
である。 ステップST411:CPU466からバススクランブ
ル部461に、読み出しを行うアドレスCPU_ADR
である「a3」が出力される。
【0045】ステップST412:Nc>Nbである場
合は、図7に示すアドレス管理部433において、アド
レス「a3」を用いて写像f(a3−(a3 mod
Nc/ Nb))すなわち写像f(a3−1)が求めら
れ、当該写像f(a3−1)が、外部メモリアドレス空
間のアドレスMEM_ADRとされる。
合は、図7に示すアドレス管理部433において、アド
レス「a3」を用いて写像f(a3−(a3 mod
Nc/ Nb))すなわち写像f(a3−1)が求めら
れ、当該写像f(a3−1)が、外部メモリアドレス空
間のアドレスMEM_ADRとされる。
【0046】ステップST413:図7に示すCPU4
66によって、ステップST402で得られたアドレス
MEM_ADRであるf(a3−1)を用いて、外部メ
モリ407から暗号化(スクランブル)されたデータブ
ロックe({d31,d32})が読み出され、これが
作業用メモリ437に書き込まれる。
66によって、ステップST402で得られたアドレス
MEM_ADRであるf(a3−1)を用いて、外部メ
モリ407から暗号化(スクランブル)されたデータブ
ロックe({d31,d32})が読み出され、これが
作業用メモリ437に書き込まれる。
【0047】ステップST414:図7に示す復号部4
32によって、作業用メモリ437から読み出したデー
タブロックe({d31,d32})が復号されて{d
31,d32}が生成される。そして、パリティ処理部
435において、データブロックe({d31,d3
2})に付加されているパリティデータを用いてパリテ
ィ処理が行われた後に、データブロック{d31,d3
2}が再び作業用メモリ437に書き込まれる。
32によって、作業用メモリ437から読み出したデー
タブロックe({d31,d32})が復号されて{d
31,d32}が生成される。そして、パリティ処理部
435において、データブロックe({d31,d3
2})に付加されているパリティデータを用いてパリテ
ィ処理が行われた後に、データブロック{d31,d3
2}が再び作業用メモリ437に書き込まれる。
【0048】スクランブル415:制御部438によっ
て、作業用メモリ437から読み出した既に復号された
データブロック{d31,d32}内の、CPU_AD
R「a3」に対応するデータ「d32」が取り出され、
これがCPU466に出力される。すなわち、データブ
ロック内の「(a3 mod Nc/ Nb)+1」番目
のデータが取り出されてCPU466に出力される。
て、作業用メモリ437から読み出した既に復号された
データブロック{d31,d32}内の、CPU_AD
R「a3」に対応するデータ「d32」が取り出され、
これがCPU466に出力される。すなわち、データブ
ロック内の「(a3 mod Nc/ Nb)+1」番目
のデータが取り出されてCPU466に出力される。
【0049】〔スクランブル鍵の管理〕図7に示すスク
ランブル鍵管理部434は、以下に示すようにして、暗
号化部431および復号部432で用いるスクランブル
鍵を管理する。スクランブル鍵管理部434は、外部メ
モリ407上のアドレス毎に異なるものを使用すること
も可能である。そのためには複数のスクランブル鍵を保
持しておく必要があるが、その方法の一例を以下に示
す。スクランブル鍵管理部434は、図12に示すよう
に、複数のスクランブル鍵K1,K2,K3を記憶して
おり、CPU466からのアドレスによって、使用する
鍵を切り替えて暗号化部431および復号部432に出
力する。具体的には、アドレス「a1」にアクセスする
場合にはスクランブル鍵K1を用い、アドレス「a2」
にアクセスする場合にはスクランブル鍵K2を用い、ア
ドレス「a3」にアクセスする場合にはスクランブル鍵
K3を用いる。
ランブル鍵管理部434は、以下に示すようにして、暗
号化部431および復号部432で用いるスクランブル
鍵を管理する。スクランブル鍵管理部434は、外部メ
モリ407上のアドレス毎に異なるものを使用すること
も可能である。そのためには複数のスクランブル鍵を保
持しておく必要があるが、その方法の一例を以下に示
す。スクランブル鍵管理部434は、図12に示すよう
に、複数のスクランブル鍵K1,K2,K3を記憶して
おり、CPU466からのアドレスによって、使用する
鍵を切り替えて暗号化部431および復号部432に出
力する。具体的には、アドレス「a1」にアクセスする
場合にはスクランブル鍵K1を用い、アドレス「a2」
にアクセスする場合にはスクランブル鍵K2を用い、ア
ドレス「a3」にアクセスする場合にはスクランブル鍵
K3を用いる。
【0050】また、図13に示すように、スクランブル
鍵管理部434内の演算回路434aによって、種とな
る鍵Ksと、CPU466から入力したアドレスとを用
いて演算を行って、その演算結果をスクランブル鍵Kと
して暗号化部431および復号部432に出力する。当
該演算としては、パディングしたアドレス番地をKsで
暗号化または復号化したり、a1とKsとの排他的論理
和(XOR)を求めるなどの演算がある。
鍵管理部434内の演算回路434aによって、種とな
る鍵Ksと、CPU466から入力したアドレスとを用
いて演算を行って、その演算結果をスクランブル鍵Kと
して暗号化部431および復号部432に出力する。当
該演算としては、パディングしたアドレス番地をKsで
暗号化または復号化したり、a1とKsとの排他的論理
和(XOR)を求めるなどの演算がある。
【0051】また、バススクランブル部461は、バス
上の所定の場所にスクランブル鍵を保持しておき、CP
U466が発したアドレスに対応するスクランブル鍵を
当該バスを介して入力するようにしてもよい。この場合
に、スクランブル鍵を送信するためのデータバスをCP
U−バススクランブラのバスと共有するために、メモリ
コントローラによる制御が必要になる。当該スクランブ
ル鍵を保持する場所は、SAMチップ408の内外どち
らでも構わないが、チップ外である場合はチップまでの
経路の安全確保のために、運搬用鍵で暗号化しておき、
バススクランブル部461に到着した時点で復号する。
バススクランブル部461は、予め運搬用鍵をハードウ
ェアもしくはソフトウェアの形で保持している。
上の所定の場所にスクランブル鍵を保持しておき、CP
U466が発したアドレスに対応するスクランブル鍵を
当該バスを介して入力するようにしてもよい。この場合
に、スクランブル鍵を送信するためのデータバスをCP
U−バススクランブラのバスと共有するために、メモリ
コントローラによる制御が必要になる。当該スクランブ
ル鍵を保持する場所は、SAMチップ408の内外どち
らでも構わないが、チップ外である場合はチップまでの
経路の安全確保のために、運搬用鍵で暗号化しておき、
バススクランブル部461に到着した時点で復号する。
バススクランブル部461は、予め運搬用鍵をハードウ
ェアもしくはソフトウェアの形で保持している。
【0052】ところで、バススクランブル部461は、
CPU466から入力したアドレスごとにスクランブル
鍵を変えていても、あるアドレスに対して常にアクセス
を行うと、時間をかけることによって、そのアドレス領
域のスクランブルが解かれる可能性が高まる。従って、
スクランブル鍵は一定のものではなく、例えば、以下に
示すような手法で可変にする。
CPU466から入力したアドレスごとにスクランブル
鍵を変えていても、あるアドレスに対して常にアクセス
を行うと、時間をかけることによって、そのアドレス領
域のスクランブルが解かれる可能性が高まる。従って、
スクランブル鍵は一定のものではなく、例えば、以下に
示すような手法で可変にする。
【0053】スクランブル鍵管理部434は、例えば、
SAMチップ408などの電源投入時に乱数を発生させ
てスクランブル鍵を発生する。スクランブル鍵は、基本
的にバススクランブラのみが知っていればいいので、鍵
配送・同期等の問題は起こらない。また、スクランブル
鍵管理部434は、外部メモリ407へのアクセスごと
にスクランブル鍵を切り換えて使用する。この場合、既
に外部メモリ407にあるデータを暗号化した鍵と、現
在保持している鍵が同一でなくてはならない。
SAMチップ408などの電源投入時に乱数を発生させ
てスクランブル鍵を発生する。スクランブル鍵は、基本
的にバススクランブラのみが知っていればいいので、鍵
配送・同期等の問題は起こらない。また、スクランブル
鍵管理部434は、外部メモリ407へのアクセスごと
にスクランブル鍵を切り換えて使用する。この場合、既
に外部メモリ407にあるデータを暗号化した鍵と、現
在保持している鍵が同一でなくてはならない。
【0054】そのため、例えば、図14および図15に
示すように、スクランブル鍵の更新が行われる。 :暗号化部431がCPU466からデータ「d3」
を入力し、バススクランブル部461がCPU466か
らアドレス「a1」を入力する。。 :バススクランブル部461が、外部メモリ407の
アドレス「f(a1)」にアクセスを行う。 :外部メモリ407のアドレス「f(a1)」から復
号部4321に、データ「e({d1,d2})」が読
み出される。 :復号部432がデータ「e({d1,d2})」を
復号してデータ「{d1,d2}」を生成する。このと
き、スクランブル鍵管理部434は、スクランブル鍵K
1を選択しており、復号部432は、スクランブル鍵K
1を用いて復号を行う。そして、データ「d3」によっ
て書き換えが行われ、データ「{d3,d2}」が生成
される。 :バススクランブル部461は、スクランブル鍵をK
1からK2に変更する。当該スクランブル鍵K1,K2
は、タイマの値、アドレスに格納されていた値、乱数発
生などの手法で生成される。 :暗号化部431が、書き換えられたデータ「{d
3,d2}」を、変更後のスクランブルK2を用いて暗
号化してデータ「e({d3,d2})」を生成する。 データ「e({d3,d2})」が、外部メモリ40
7のアドレス「f(a1)」に書き込まれる。
示すように、スクランブル鍵の更新が行われる。 :暗号化部431がCPU466からデータ「d3」
を入力し、バススクランブル部461がCPU466か
らアドレス「a1」を入力する。。 :バススクランブル部461が、外部メモリ407の
アドレス「f(a1)」にアクセスを行う。 :外部メモリ407のアドレス「f(a1)」から復
号部4321に、データ「e({d1,d2})」が読
み出される。 :復号部432がデータ「e({d1,d2})」を
復号してデータ「{d1,d2}」を生成する。このと
き、スクランブル鍵管理部434は、スクランブル鍵K
1を選択しており、復号部432は、スクランブル鍵K
1を用いて復号を行う。そして、データ「d3」によっ
て書き換えが行われ、データ「{d3,d2}」が生成
される。 :バススクランブル部461は、スクランブル鍵をK
1からK2に変更する。当該スクランブル鍵K1,K2
は、タイマの値、アドレスに格納されていた値、乱数発
生などの手法で生成される。 :暗号化部431が、書き換えられたデータ「{d
3,d2}」を、変更後のスクランブルK2を用いて暗
号化してデータ「e({d3,d2})」を生成する。 データ「e({d3,d2})」が、外部メモリ40
7のアドレス「f(a1)」に書き込まれる。
【0055】〔パリティ処理部435によるパリティ処
理〕パリティ処理部435は、外部メモリ407にデー
タを書き込むとき、暗号化前のデータのパリティデータ
をあらかじめ計算しておき、暗号化されたデータととも
に当該パリティデータを外部メモリ407に書き込む。
これにより、外部メモリ407上で何らかの物理的トラ
ブルや、データの改竄などが生じた場合に、読み出し時
にそのことを検出でき、よりセキュアなプログラムの実
行が可能になる。また、パリティデータの付加により、
平文の長さと暗号文の長さが同一であっても、CPU4
66のアドレス空間と外部メモリ407のアドレス空間
は、完全に一致することはない。例えば、アドレス「a
1」にデータ「d1」を書き込む場合は、f(a1)に
Nc分書き込むのと同時に、データ「d1」のパリティ
「p1」(サイズNp)を外部メモリ407のどこかに
書き込む必要があるからである。パリティデータを外部
メモリ407内のいずれの記憶領域に記憶するかは例え
ば以下に示す場合がある。
理〕パリティ処理部435は、外部メモリ407にデー
タを書き込むとき、暗号化前のデータのパリティデータ
をあらかじめ計算しておき、暗号化されたデータととも
に当該パリティデータを外部メモリ407に書き込む。
これにより、外部メモリ407上で何らかの物理的トラ
ブルや、データの改竄などが生じた場合に、読み出し時
にそのことを検出でき、よりセキュアなプログラムの実
行が可能になる。また、パリティデータの付加により、
平文の長さと暗号文の長さが同一であっても、CPU4
66のアドレス空間と外部メモリ407のアドレス空間
は、完全に一致することはない。例えば、アドレス「a
1」にデータ「d1」を書き込む場合は、f(a1)に
Nc分書き込むのと同時に、データ「d1」のパリティ
「p1」(サイズNp)を外部メモリ407のどこかに
書き込む必要があるからである。パリティデータを外部
メモリ407内のいずれの記憶領域に記憶するかは例え
ば以下に示す場合がある。
【0056】パリティデータを、それに対応する平文を
暗号化したデータのすぐそばに置く。この場合、バスス
クランブル部461が、外部メモリ407のアドレス
「f(a1)」からデータ「e(d1)」を読み出した
後に、続いてアドレス「f(a1)+Nc/Nb」から
パリティデータ「p1」を読み出す。この場合には、バ
ススクランブル部461において、アドレスの写像f以
外には特別な計算を行う必要が無い。
暗号化したデータのすぐそばに置く。この場合、バスス
クランブル部461が、外部メモリ407のアドレス
「f(a1)」からデータ「e(d1)」を読み出した
後に、続いてアドレス「f(a1)+Nc/Nb」から
パリティデータ「p1」を読み出す。この場合には、バ
ススクランブル部461において、アドレスの写像f以
外には特別な計算を行う必要が無い。
【0057】また、それ以外に、外部メモリ407内に
パリティデータの専用記憶領域を予め確保し、当該専用
記憶領域にパリティデータ「p1」を書き込む。この場
合には、バススクランブル部461は、パリティ用アド
レス写像fpに基づいて処理を行う必要があり、パリテ
ィデータ「p1」は、外部メモリ407上のアドレス
「fp(a1)」に書き込まれる。
パリティデータの専用記憶領域を予め確保し、当該専用
記憶領域にパリティデータ「p1」を書き込む。この場
合には、バススクランブル部461は、パリティ用アド
レス写像fpに基づいて処理を行う必要があり、パリテ
ィデータ「p1」は、外部メモリ407上のアドレス
「fp(a1)」に書き込まれる。
【0058】パリティ処理部435において、パリティ
エラーが検出されたときは、CPU466の処理を停止
させるなどして、不正なデータやプログラムの処理を防
止する。なお、パリティ処理の内容は特に限定されな
い。
エラーが検出されたときは、CPU466の処理を停止
させるなどして、不正なデータやプログラムの処理を防
止する。なお、パリティ処理の内容は特に限定されな
い。
【0059】〔パイプライン処理制御部436によるパ
イプライン処理〕本実施形態では、例えば、パイプライ
ン処理制御部436の制御によって、例えば、バススク
ランブル部461の処理を複数のステージに分割し、各
ステージを単位としてパイプライン化することで、CP
U466から見た外部メモリ407へのアクセス時間を
短縮できる。すなわち、パイプライン化しない場合、C
PU466から外部メモリ407への1回のメモリのア
クセスに対して必ず1暗号ブロックの処理に要する時間
が少なくとも必要となる。例えば、CPU466が出し
たアドレス「a1 」のデータの読み出し指示に対して、
当該読み出し指示に応じてバススクランブル部461が
行う処理をパイプライン化すると、例えば、CPU46
6がプログラムコードなどでアドレス「a1 」から連続
的に上位アドレスのデータを要求した場合に、バススク
ランブル部461が、アドレス「f(a1)」の次にア
ドレス「f(a1+Nc/ Nb) 」のデータを先読みし
ておけば、暗号処理および復号処理のオーバーヘッドを
無くすことができる。
イプライン処理〕本実施形態では、例えば、パイプライ
ン処理制御部436の制御によって、例えば、バススク
ランブル部461の処理を複数のステージに分割し、各
ステージを単位としてパイプライン化することで、CP
U466から見た外部メモリ407へのアクセス時間を
短縮できる。すなわち、パイプライン化しない場合、C
PU466から外部メモリ407への1回のメモリのア
クセスに対して必ず1暗号ブロックの処理に要する時間
が少なくとも必要となる。例えば、CPU466が出し
たアドレス「a1 」のデータの読み出し指示に対して、
当該読み出し指示に応じてバススクランブル部461が
行う処理をパイプライン化すると、例えば、CPU46
6がプログラムコードなどでアドレス「a1 」から連続
的に上位アドレスのデータを要求した場合に、バススク
ランブル部461が、アドレス「f(a1)」の次にア
ドレス「f(a1+Nc/ Nb) 」のデータを先読みし
ておけば、暗号処理および復号処理のオーバーヘッドを
無くすことができる。
【0060】例えば、メモリアクセスの時間は無視し、
トリプルDESなどのように、各データについて3ラウ
ンド(回)の暗号化が行われており、1ラウンドの暗号
化を復号するのに1クロック必要であり、Nc/Nb=
1である場合に、CPU466がアドレス「a1」,
「a1+1」,「a1+2」を指定して外部メモリ40
7から連続してデータを読み出す指示を出した場合を考
える。このとき、3ラウンドの復号が必要になり、各デ
ータの復号に3クロックを要する。パイプライン処理を
行わないと、図16(A)に示すように、CPU466
が最初の読み出し指示を出してから、3クロック後に、
アドレス「a1」を用いて外部メモリ407から読み出
されたデータ「e3(d1)」が3回復号されてデータ
「d1」となりCPU466に入力される。その後、さ
らに3クロック後に、アドレス「a1+1」を用いて外
部メモリ407から読み出されたデータ「e3(d
2)」が3回復号されてデータ「d2」となりCPU4
66に入力される。その後、さらに3クロック後に、ア
ドレス「a1+2」を用いて外部メモリ407から読み
出されたデータ「e3(d3)」が3回復号されてデー
タ「d3」となりCPU466に入力される。すなわ
ち、CPU466が最初の読み出し指示を出してから、
9クロック後に、全てのデータ「d1」,「d2」,
「d3」がCPU466に入力される。
トリプルDESなどのように、各データについて3ラウ
ンド(回)の暗号化が行われており、1ラウンドの暗号
化を復号するのに1クロック必要であり、Nc/Nb=
1である場合に、CPU466がアドレス「a1」,
「a1+1」,「a1+2」を指定して外部メモリ40
7から連続してデータを読み出す指示を出した場合を考
える。このとき、3ラウンドの復号が必要になり、各デ
ータの復号に3クロックを要する。パイプライン処理を
行わないと、図16(A)に示すように、CPU466
が最初の読み出し指示を出してから、3クロック後に、
アドレス「a1」を用いて外部メモリ407から読み出
されたデータ「e3(d1)」が3回復号されてデータ
「d1」となりCPU466に入力される。その後、さ
らに3クロック後に、アドレス「a1+1」を用いて外
部メモリ407から読み出されたデータ「e3(d
2)」が3回復号されてデータ「d2」となりCPU4
66に入力される。その後、さらに3クロック後に、ア
ドレス「a1+2」を用いて外部メモリ407から読み
出されたデータ「e3(d3)」が3回復号されてデー
タ「d3」となりCPU466に入力される。すなわ
ち、CPU466が最初の読み出し指示を出してから、
9クロック後に、全てのデータ「d1」,「d2」,
「d3」がCPU466に入力される。
【0061】これに対して、本実施形態では、パイプラ
イン処理制御部436によって、復号部432の復号処
理を、各ラウンドを1段階として図16(B)に示すよ
うに3段階(ステージ)でパイプライン処理する。これ
により、一方、CPU466が、最初に読み出し指示を
出してからアドレス「a1」に対応するデータがCPU
466に入力されるのには3クロックを要するが、その
後、アドレス「a1+1」,「a1+2」に対応するデ
ータが1クロック毎に順次CPU466に入力される。
これにより、CPU466が最初に読み出し指示を出し
てから、5クロック後に、全てのデータ「d1」,「d
2」,「d3」がCPU466に入力される。
イン処理制御部436によって、復号部432の復号処
理を、各ラウンドを1段階として図16(B)に示すよ
うに3段階(ステージ)でパイプライン処理する。これ
により、一方、CPU466が、最初に読み出し指示を
出してからアドレス「a1」に対応するデータがCPU
466に入力されるのには3クロックを要するが、その
後、アドレス「a1+1」,「a1+2」に対応するデ
ータが1クロック毎に順次CPU466に入力される。
これにより、CPU466が最初に読み出し指示を出し
てから、5クロック後に、全てのデータ「d1」,「d
2」,「d3」がCPU466に入力される。
【0062】なお、CPU466が、アドレス「a1」
の次に、「a1」からは遠く離れたアドレス「a2」の
データを要求した場合は、パイプライン上のデータは破
棄して、アドレス「a2」,「a2+1」・・・のデー
タをパイプラインに詰めていく。
の次に、「a1」からは遠く離れたアドレス「a2」の
データを要求した場合は、パイプライン上のデータは破
棄して、アドレス「a2」,「a2+1」・・・のデー
タをパイプラインに詰めていく。
【0063】〔アドレス管理部433によるアドレスス
クランブル〕SAMチップ408が外部メモリ407上
の特定の連続したアドレス領域に何度も繰り返しアクセ
スする場合、それはサブルーチンか配列かといったよう
にある程度予測が可能になる。配列などのデータであれ
ば、そこを集中的に攻撃することによって攻撃者にとっ
て有益な( 運営側にとってクリティカルな) データを得
やすくなってしまう。これを回避するために、本実施形
態では、CPU466とSAMチップ408との間のア
ドレスバスをバススクランブル部461を経由させ、ア
ドレス管理部433によって、アドレスにもスクランブ
ルをかけることで、外部メモリ407上の連続した領域
へのアクセスを防ぐことが出来る。このスクランブルが
前述の写像fに相当する。アドレススクランブルを行わ
ない場合、写像fはパリティデータのための領域確保の
みの写像となる。例えば「∀a ∈[ CPUアドレス空
間],f(a)=(1+p)a」となる。ここでpはパリ
ティデータのアラインメントサイズである。
クランブル〕SAMチップ408が外部メモリ407上
の特定の連続したアドレス領域に何度も繰り返しアクセ
スする場合、それはサブルーチンか配列かといったよう
にある程度予測が可能になる。配列などのデータであれ
ば、そこを集中的に攻撃することによって攻撃者にとっ
て有益な( 運営側にとってクリティカルな) データを得
やすくなってしまう。これを回避するために、本実施形
態では、CPU466とSAMチップ408との間のア
ドレスバスをバススクランブル部461を経由させ、ア
ドレス管理部433によって、アドレスにもスクランブ
ルをかけることで、外部メモリ407上の連続した領域
へのアクセスを防ぐことが出来る。このスクランブルが
前述の写像fに相当する。アドレススクランブルを行わ
ない場合、写像fはパリティデータのための領域確保の
みの写像となる。例えば「∀a ∈[ CPUアドレス空
間],f(a)=(1+p)a」となる。ここでpはパリ
ティデータのアラインメントサイズである。
【0064】以下、図1に示す通信システム401の全
体動作について説明する。図17は、図1に示す通信シ
ステム401の全体動作を説明するための図である。 ステップST431:事業者415_1〜415_3あ
るいはこれら事業者の依頼を受けた者が、当該事業者が
ICカード403を用いて行う取り引きについての処理
を行うためのアプリケーションプログラムAP_1,A
P_2,AP_3を、図1に示すパーソナルコンピュー
タ416_1,416_2,416_3上で作成する。
また、SAMチップ408の管理者が、AP管理用デー
タ421を生成し、スクランブルして外部メモリ407
に格納する。
体動作について説明する。図17は、図1に示す通信シ
ステム401の全体動作を説明するための図である。 ステップST431:事業者415_1〜415_3あ
るいはこれら事業者の依頼を受けた者が、当該事業者が
ICカード403を用いて行う取り引きについての処理
を行うためのアプリケーションプログラムAP_1,A
P_2,AP_3を、図1に示すパーソナルコンピュー
タ416_1,416_2,416_3上で作成する。
また、SAMチップ408の管理者が、AP管理用デー
タ421を生成し、スクランブルして外部メモリ407
に格納する。
【0065】ステップST432:アプリケーションプ
ログラムAP_1,AP_2,AP_3を、認証用ユニ
ット417_1,417_2,417_3を介して、パ
ーソナルコンピュータ416_1,416_2,416
_3からSAMチップ408にダウンロードする。
ログラムAP_1,AP_2,AP_3を、認証用ユニ
ット417_1,417_2,417_3を介して、パ
ーソナルコンピュータ416_1,416_2,416
_3からSAMチップ408にダウンロードする。
【0066】ステップST433:ユーザにICカード
403が発行される。ICカード403のICには、ユ
ーザが契約を行った事業者との取り引きに用いられる鍵
情報が記憶されている。なお、ユーザと事業者との間の
契約は、ICカード403の発行後に、インターネット
410などを介して行ってもよい。
403が発行される。ICカード403のICには、ユ
ーザが契約を行った事業者との取り引きに用いられる鍵
情報が記憶されている。なお、ユーザと事業者との間の
契約は、ICカード403の発行後に、インターネット
410などを介して行ってもよい。
【0067】ステップST434:例えば、ユーザがパ
ーソナルコンピュータ405を用いてインターネット4
10を介してサーバ装置402にアクセスを行い、商品
を購入しようとした場合に、サーバ装置402がインタ
ーネット410を介してASPサーバ装置406に処理
要求を出す。ASPサーバ装置406は、サーバ装置4
02から処理要求を受けると、インターネット410を
介してパーソナルコンピュータ405にアクセスを行
う。そして、カードリーダ・ライタ404が出したIC
カード403についての処理要求が、パーソナルコンピ
ュータ405、インターネット410およびASPサー
バ装置406を介してSAMチップ408に送信され
る。
ーソナルコンピュータ405を用いてインターネット4
10を介してサーバ装置402にアクセスを行い、商品
を購入しようとした場合に、サーバ装置402がインタ
ーネット410を介してASPサーバ装置406に処理
要求を出す。ASPサーバ装置406は、サーバ装置4
02から処理要求を受けると、インターネット410を
介してパーソナルコンピュータ405にアクセスを行
う。そして、カードリーダ・ライタ404が出したIC
カード403についての処理要求が、パーソナルコンピ
ュータ405、インターネット410およびASPサー
バ装置406を介してSAMチップ408に送信され
る。
【0068】ステップST435:SAMチップ408
が、ステップST434で受信した処理要求に応じて、
アプリケーションプログラムを選択し、当該選択された
アプリケーションプログラムを実行する。当該アプリケ
ーションプログラムの実行において、SAMチップ40
8と外部メモリ407との間の通信は、前述したバスス
クランブル部461の処理に基づいて行われる。
が、ステップST434で受信した処理要求に応じて、
アプリケーションプログラムを選択し、当該選択された
アプリケーションプログラムを実行する。当該アプリケ
ーションプログラムの実行において、SAMチップ40
8と外部メモリ407との間の通信は、前述したバスス
クランブル部461の処理に基づいて行われる。
【0069】ステップST436:SAMチップ408
は、アプリケーションプログラムの実行結果をASPサ
ーバ装置406に出力する。
は、アプリケーションプログラムの実行結果をASPサ
ーバ装置406に出力する。
【0070】図18は、図4に示すSAMチップ408
の機能ブロックをより具体的にした機能ブロック図であ
る。図18に示すように、SAMチップ408は、内部
バス90を介して、カードI/F部91、ASP通信用
インタフェース部460、バススクランブル部461、
暗号・復号部465、記憶部463およびCPU466
が接続されている。図4に示す署名処理部462および
認証処理部463は、例えば、CPU466によってそ
の一部の機能が実現される。
の機能ブロックをより具体的にした機能ブロック図であ
る。図18に示すように、SAMチップ408は、内部
バス90を介して、カードI/F部91、ASP通信用
インタフェース部460、バススクランブル部461、
暗号・復号部465、記憶部463およびCPU466
が接続されている。図4に示す署名処理部462および
認証処理部463は、例えば、CPU466によってそ
の一部の機能が実現される。
【0071】図18に示すSAMチップ408では、例
えば図19に示すように、内部バス90に接続されたカ
ードI/F部91を、SAMチップ408の外部のRF
送受信部92に接続し、RF送受信部92のアンテナ9
2aを介して、ICカード203との間で非接触方式で
データを送受信してもよい。
えば図19に示すように、内部バス90に接続されたカ
ードI/F部91を、SAMチップ408の外部のRF
送受信部92に接続し、RF送受信部92のアンテナ9
2aを介して、ICカード203との間で非接触方式で
データを送受信してもよい。
【0072】以上説明したように、通信システム401
によれば、SAMチップ408内のバススクランブル部
461に前述した機能を持たせることで、以下に示す効
果が得られる。すなわち、通信システム401によれ
ば、秘匿性のある例えばICカード403を用いた処理
に係わるデータを外部メモリ407にセキュアな状態で
記憶できる。また、通信システム401によれば、バス
スクランブル部461の処理をパイプライン化すること
で、SAMチップ408が外部メモリ407に高速にア
クセスできる。また、通信システム401によれば、バ
ススクランブル部461にパリティ機能を持たせること
で、外部メモリ407から読み出したデータの信頼性を
高めることができる。
によれば、SAMチップ408内のバススクランブル部
461に前述した機能を持たせることで、以下に示す効
果が得られる。すなわち、通信システム401によれ
ば、秘匿性のある例えばICカード403を用いた処理
に係わるデータを外部メモリ407にセキュアな状態で
記憶できる。また、通信システム401によれば、バス
スクランブル部461の処理をパイプライン化すること
で、SAMチップ408が外部メモリ407に高速にア
クセスできる。また、通信システム401によれば、バ
ススクランブル部461にパリティ機能を持たせること
で、外部メモリ407から読み出したデータの信頼性を
高めることができる。
【0073】
【発明の効果】以上説明したように、本発明によれば、
秘匿性の高いデータを外部バスを介して半導体回路と半
導体記憶回路との間で伝送する場合でも、当該データの
秘匿性を保つことができる半導体回路およびデータ処理
方法を提供することができる。
秘匿性の高いデータを外部バスを介して半導体回路と半
導体記憶回路との間で伝送する場合でも、当該データの
秘匿性を保つことができる半導体回路およびデータ処理
方法を提供することができる。
【図1】図1は、本発明の実施形態の通信システムの全
体構成図である。
体構成図である。
【図2】図2は、図1に示すSAMチップのソフトウェ
ア構成を説明するための図である。
ア構成を説明するための図である。
【図3】図3は、図1に示すSAMユニットの外部メモ
リを説明するための図である。
リを説明するための図である。
【図4】図4は、図1に示すSAMチップの機能ブロッ
ク図である。
ク図である。
【図5】図5は、図3に示すCPU、バススクランブル
部および外部メモリの関係を説明するための図である。
部および外部メモリの関係を説明するための図である。
【図6】図6は、図5に示すCPUと外部メモリとのア
ドレス空間を説明するための図である。
ドレス空間を説明するための図である。
【図7】図7は、図4に示すバススクランブル部の機能
ブロック図である。
ブロック図である。
【図8】図8は、図4に示すバススクランブル部による
外部メモリの書き込み動作を説明するための図である。
外部メモリの書き込み動作を説明するための図である。
【図9】図9は、図8に示す動作のフローチャートであ
る。
る。
【図10】図10は、図4に示すバススクランブル部に
よる外部メモリの読み出し動作を説明するための図であ
る。
よる外部メモリの読み出し動作を説明するための図であ
る。
【図11】図11は、図10に示す動作のフローチャー
トである。
トである。
【図12】図12は、図7に示すスクランブル鍵管理部
におけるスクランブル鍵の切り換え処理を説明するため
の図である。
におけるスクランブル鍵の切り換え処理を説明するため
の図である。
【図13】図13は、図7に示すスクランブル鍵管理部
におけるスクランブル鍵の切り換え処理を説明するため
の図である。
におけるスクランブル鍵の切り換え処理を説明するため
の図である。
【図14】図14は、図7に示すスクランブル鍵管理部
におけるスクランブル鍵の切り換えタイミングをを説明
するための図である。
におけるスクランブル鍵の切り換えタイミングをを説明
するための図である。
【図15】図15は、図7に示すスクランブル鍵管理部
におけるスクランブル鍵の切り換えタイミングをを説明
するための図である。
におけるスクランブル鍵の切り換えタイミングをを説明
するための図である。
【図16】図16は、図7に示すパイプライン処理制御
部によるパイプライン処理を説明するための図である。
部によるパイプライン処理を説明するための図である。
【図17】図17は、図1に示す通信システムの全体動
作を説明するための図である。
作を説明するための図である。
【図18】図18は、図4に示すSAMチップの機能ブ
ロックをより具体的にした機能ブロック図である。
ロックをより具体的にした機能ブロック図である。
【図19】図19は、SAMチップのその他の使用形態
を説明するための図である。
を説明するための図である。
401…通信システム、402…サーバ装置、403…
ICカード、404…カードリーダ・ライタ、405…
パーソナルコンピュータ、406…ASPサーバ装置、
407…外部メモリ、408…SAMチップ、409…
SAMユニット、410…インターネット、415_
1,415_2,415_3…クレジットカード事業
者、416_1,416_2,416_3…パーソナル
コンピュータ、417_1,417_2,417_3…
認証用ユニット
ICカード、404…カードリーダ・ライタ、405…
パーソナルコンピュータ、406…ASPサーバ装置、
407…外部メモリ、408…SAMチップ、409…
SAMユニット、410…インターネット、415_
1,415_2,415_3…クレジットカード事業
者、416_1,416_2,416_3…パーソナル
コンピュータ、417_1,417_2,417_3…
認証用ユニット
フロントページの続き (72)発明者 舘野 啓 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 5B017 AA03 BA07 CA00 5B018 GA01 HA12 QA16 RA01 5J104 AA16 EA04 EA26 NA02 NA35 NA37 NA42 PA07 PA10
Claims (19)
- 【請求項1】データ処理回路およびデータ入出力処理回
路を有する半導体回路であって、 前記データ処理回路は、 当該半導体回路の外部のバスとの間で、前記データ入出
力処理回路を介してデータを入出力し、 前記データ入出力回路は、 前記データ処理回路から入力したデータを、所定のデー
タ長を単位として暗号化して前記バスに出力し、 前記バスから入力したデータを復号して前記データ処理
回路に出力し、 前記バスのバス幅をNbとし、前記データ長をNcと
し、Nc/Nb=nとし、n以上の最も小さい整数をm
とした場合に、前記外部バスを介したデータ入出力トラ
ンザクションを、m回のデータ入出力トランザクション
を単位として行う半導体回路。 - 【請求項2】前記データ入出力回路は、 前記データ処理回路から入力した第1のアドレスに基づ
いて、前記バスを介して半導体記憶回路にアクセスを行
う場合に、 Ncのデータが記憶される記憶領域を単位として前記半
導体記憶回路にアクセスを行うように、前記第1のアド
レスを第2のアドレスに変換し、当該第2のアドレスを
用いて前記半導体記憶回路にアクセスを行う請求項1に
記載の半導体回路。 - 【請求項3】前記データ入出力回路は、 第1のアドレスに第1のデータを書き込む指示を前記デ
ータ処理回路が受けた場合に、 前記第1のアドレスを前記第2のアドレスに変換し、 前記第2のアドレスを用いて、前記第1のアドレスを含
む所定のアドレス範囲のデータを前記半導体記憶回路か
ら読み出し、 当該読み出したデータを復号し、 前記復号したデータのうち、前記第1のアドレスに対応
するデータを書き換え、 前記書き換えられたデータを含む前記所定のアドレス範
囲のデータを暗号化し、 前記暗号化したデータを、前記第2のアドレスを用いて
前記半導体記憶回路に書き込む請求項2に記載の半導体
回路。 - 【請求項4】前記データ入出力回路は、 第1のアドレスからデータを読み出す指示を前記データ
処理回路から受けた場合に、 前記第1のアドレスを前記第2のアドレスに変換し、 前記第2のアドレスを用いて、前記第1のアドレスを含
む所定のアドレス範囲のデータを前記半導体記憶回路か
ら読み出し、 当該読み出したデータを復号し、 当該復号したデータのうち、前記第1のアドレスに対応
するデータを取り出して前記データ処理回路に出力する
請求項2に記載の半導体回路。 - 【請求項5】前記データ入出力回路は、 前記暗号化および復号に用いる鍵データを、データを前
記半導体記憶回路に書き込むために暗号化するときに用
いる鍵データと、当該データを前記半導体記憶回路から
読み出して復号するときに用いる鍵データとが同じにな
ることを条件に、適宜切り換える請求項1に記載の半導
体回路。 - 【請求項6】前記データ入出力回路は、複数の前記鍵を
記憶しており、 前記複数の鍵を適宜切り換えて使用する請求項5に記載
の半導体回路。 - 【請求項7】前記データ入出力回路は、前記半導体記憶
回路にアクセスを行うアドレスを用いて演算を行って前
記鍵を生成する請求項5に記載の半導体回路。 - 【請求項8】前記データ入出力回路は、前記半導体記憶
回路に書き込むデータからパリティデータを生成し、当
該データに対応付けて前記パリティデータを前記半導体
記憶回路に書き込み、当該データの読み出しと共に対応
するパリティデータを読み出し、当該パリティデータに
基づいて、当該読み出したデータの正当性を検証する請
求項1に記載の半導体回路。 - 【請求項9】前記データ入出力回路は、前記半導体記憶
回路にデータを書き込む処理、または前記半導体記憶回
路からデータを読み出す処理の少なくとも一方を、複数
の処理に分割し、当該分割した処理を単位としてパイプ
ライン処理を実行する請求項1に記載の半導体回路。 - 【請求項10】前記データ入出力回路は、前記データ処
理回路から入力したアドレスをスクランブルして前記第
2のアドレスを生成する請求項2に記載の半導体回路。 - 【請求項11】バスを介して半導体回路と半導体記憶回
路とが接続されている場合に、前記半導体記憶回路にア
クセスを行うときに半導体回路が行うデータ処理方法で
あって、 前記半導体記憶回路に書き込むデータを所定のデータ長
を単位として暗号化して前記バスに出力し、 前記バスから入力したデータを復号し、 前記バスのバス幅をNbとし、前記データ長をNcと
し、Nc/Nb=nとし、n以上の最も小さい整数をm
とした場合に、前記外部バスを介したデータ入出力トラ
ンザクションを、m回のデータ入出力トランザクション
を単位として行うデータ処理方法。 - 【請求項12】Ncのデータが記憶される記憶領域を単
位として前記半導体記憶回路にアクセスを行うように、
前記半導体記憶回路にアクセスを行う際に用いるアドレ
スを生成する請求項11に記載のデータ処理方法。 - 【請求項13】前記生成したアドレスを用いて所定のア
ドレス範囲のデータを前記半導体記憶回路から読み出
し、 当該読み出したデータを復号し、 前記復号したデータのうち、必要なデータを書き換え、 前記書き換えられたデータを含む前記所定のアドレス範
囲のデータを暗号化し、 前記暗号化したデータを、前記生成したアドレスを用い
て前記半導体記憶回路に書き込む請求項12に記載のデ
ータ処理方法。 - 【請求項14】前記生成したアドレスを用いて所定のア
ドレス範囲のデータを前記半導体記憶回路から読み出
し、 当該読み出したデータを復号し、 当該復号したデータのうち、必要なデータを取り出して
処理を行う請求項12に記載のデータ処理方法。 - 【請求項15】前記暗号化および復号に用いる鍵データ
を、データを前記半導体記憶回路に書き込むために暗号
化するときに用いる鍵データと、当該データを前記半導
体記憶回路から読み出して復号するときに用いる鍵デー
タとが同じになることを条件に、適宜切り換える請求項
11に記載のデータ処理方法。 - 【請求項16】複数の前記鍵を記憶しており、 前記複数の鍵を適宜切り換えて使用する請求項15に記
載のデータ処理方法。 - 【請求項17】前記半導体記憶回路にアクセスを行うア
ドレスを用いて演算を行って前記鍵を生成する請求項1
5に記載のデータ処理方法。 - 【請求項18】前記半導体記憶回路に書き込むデータか
らパリティデータを生成し、当該データに対応付けて前
記パリティデータを前記半導体記憶回路に書き込み、当
該データの読み出しと共に対応するパリティデータを読
み出し、当該パリティデータに基づいて、当該読み出し
たデータの正当性を検証する請求項11に記載のデータ
処理方法。 - 【請求項19】前記半導体記憶回路にデータを書き込む
処理、または前記半導体記憶回路からデータを読み出す
処理の少なくとも一方を、複数の処理に分割し、当該分
割した処理を単位としてパイプライン処理を実行する請
求項11に記載のデータ処理方法。
Priority Applications (16)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001042446A JP2002244925A (ja) | 2001-02-19 | 2001-02-19 | 半導体回路およびデータ処理方法 |
SG200505138-8A SG143976A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
SG200505139-6A SG160187A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
SG200505137-0A SG140467A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
SG200505135-4A SG132507A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
CN200910004389.6A CN101526982B (zh) | 2001-02-16 | 2002-02-15 | 数据处理方法及其设备 |
US10/257,472 US7240345B2 (en) | 2001-02-16 | 2002-02-15 | Data processing apparatus and associated method |
SG200505136-2A SG143064A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
EP02700588A EP1361511A4 (en) | 2001-02-16 | 2002-02-15 | DATA PROCESSING METHOD AND CORRESPONDING APPARATUS |
CN02801052.3A CN1261870C (zh) | 2001-02-16 | 2002-02-15 | 数据处理方法及其设备 |
PCT/JP2002/001324 WO2002065287A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
SG200505142-0A SG154320A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
SG200505141-2A SG143065A1 (en) | 2001-02-16 | 2002-02-15 | Data processing method and its apparatus |
HK04104630A HK1062722A1 (en) | 2001-02-16 | 2004-06-28 | Data processing method and its apparatus |
US11/688,439 US8141057B2 (en) | 2001-02-16 | 2007-03-20 | Data processing apparatus and associated method |
HK07105179.5A HK1098849A1 (en) | 2001-02-16 | 2007-05-16 | Data processing method and its apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001042446A JP2002244925A (ja) | 2001-02-19 | 2001-02-19 | 半導体回路およびデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002244925A true JP2002244925A (ja) | 2002-08-30 |
Family
ID=18904739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001042446A Pending JP2002244925A (ja) | 2001-02-16 | 2001-02-19 | 半導体回路およびデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002244925A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007183834A (ja) * | 2006-01-06 | 2007-07-19 | Sharp Corp | データ転送システム |
JP2009044481A (ja) * | 2007-08-09 | 2009-02-26 | Ricoh Co Ltd | データ処理装置及び画像形成装置 |
US7539859B2 (en) | 2003-07-31 | 2009-05-26 | Sony Corporation | Pipeline processing system and information processing apparatus |
US7689103B2 (en) | 2003-08-29 | 2010-03-30 | Sony Corporation | Pipeline processing system and information processing apparatus |
JP4789048B2 (ja) * | 2006-06-27 | 2011-10-05 | インテル・コーポレーション | システムオンチップデバイスにおけるデータパスセキュリティのためのシステムおよび技術 |
-
2001
- 2001-02-19 JP JP2001042446A patent/JP2002244925A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7539859B2 (en) | 2003-07-31 | 2009-05-26 | Sony Corporation | Pipeline processing system and information processing apparatus |
US7689103B2 (en) | 2003-08-29 | 2010-03-30 | Sony Corporation | Pipeline processing system and information processing apparatus |
JP2007183834A (ja) * | 2006-01-06 | 2007-07-19 | Sharp Corp | データ転送システム |
JP4789048B2 (ja) * | 2006-06-27 | 2011-10-05 | インテル・コーポレーション | システムオンチップデバイスにおけるデータパスセキュリティのためのシステムおよび技術 |
US8560863B2 (en) | 2006-06-27 | 2013-10-15 | Intel Corporation | Systems and techniques for datapath security in a system-on-a-chip device |
JP2009044481A (ja) * | 2007-08-09 | 2009-02-26 | Ricoh Co Ltd | データ処理装置及び画像形成装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI715619B (zh) | 用於硬體強制單向密碼學的處理器、方法及系統 | |
US7636858B2 (en) | Management of a trusted cryptographic processor | |
US9954826B2 (en) | Scalable and secure key management for cryptographic data processing | |
US9043615B2 (en) | Method and apparatus for a trust processor | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
US6871192B2 (en) | System and method for preventing unauthorized use of protected software utilizing a portable security device | |
US7657754B2 (en) | Methods and apparatus for the secure handling of data in a microcontroller | |
US8392727B2 (en) | System and method for transparent disk encryption | |
US7313828B2 (en) | Method and apparatus for protecting software against unauthorized use | |
CN101996154B (zh) | 支持可重组安全设计的通用处理器 | |
US8301905B2 (en) | System and method for encrypting data | |
CN101103628B (zh) | 主机装置、便携式存储装置以及用于更新元信息的方法 | |
EP0583140A1 (en) | System for seamless processing of encrypted and non-encrypted data and instructions | |
US20050182952A1 (en) | Information processing apparatus and method and computer program | |
US20090282254A1 (en) | Trusted mobile platform architecture | |
US20050108532A1 (en) | Method and system to provide a trusted channel within a computer system for a SIM device | |
WO2002065287A1 (en) | Data processing method and its apparatus | |
CN101996155B (zh) | 支持多种指令体系的处理器 | |
CN101140610B (zh) | 使用drm卡的内容解密方法 | |
US7716477B2 (en) | Data processing method, program of the same, and device of the same | |
US7657034B2 (en) | Data encryption in a symmetric multiprocessor electronic apparatus | |
JP2002244925A (ja) | 半導体回路およびデータ処理方法 | |
JP2002244756A (ja) | データ処理方法、半導体回路および認証用装置 | |
CN116186727A (zh) | 一种数据加密方法、解密方法及其相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110215 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110719 |