プロセッサ
【課題】通常のプロセッサ構成を使用して高度のセキュリティを有するプロセッサを実現する。
【解決手段】コマンド信号およびアドレス信号を出力すると共に、データ信号を入出力する外部バスモジュール14を含むプロセッサユニット10と、共通鍵およびアドレス信号を使用する暗号方式CTRで、外部バスモジュールに入出力するデータを暗号化および復号する暗号処理回路21と、を備え、プロセッサユニット10および暗号処理回路21は、同一チップに収容されている。
【解決手段】コマンド信号およびアドレス信号を出力すると共に、データ信号を入出力する外部バスモジュール14を含むプロセッサユニット10と、共通鍵およびアドレス信号を使用する暗号方式CTRで、外部バスモジュールに入出力するデータを暗号化および復号する暗号処理回路21と、を備え、プロセッサユニット10および暗号処理回路21は、同一チップに収容されている。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部メモリとの間で入出力するデータを暗号化するプロセッサとに関する。
【背景技術】
【0002】
近年、コンピュータや携帯情報端末の普及が高まるにつれ、それらの機器で実行されるプログラムに関するセキュリティの重要性が高まっている。
【0003】
高性能を要求される機器は、プロセッサを用いて実現されるのが一般的である。高性能のプロセッサは、回路規模が大きく、動作には大容量のメモリが必要になる。そのため、高性能のプロセッサを使用して機器を形成する場合は、大容量の外部メモリが別チップにて実装される。
【0004】
高いセキュリティが要求される機器は、プロセッサの外側で扱われるデータには暗号化を施し、内側にはアクセス保護を施すことで、データを直接読み取ることを不可能とするセキュアプロセッサを用いて実現される。セキュアプロセッサにおける、内部処理は暗号化されていない通常データを使用して行われる。
【0005】
セキュアプロセッサに大容量の外部メモリを接続して使用する場合、セキュアプロセッサは出力するデータを、例えば上記のCTRモードで暗号化し、入力するデータをCTRモードで復号化する。暗号化および復号化処理のために、メモリアクセス時間が大幅に増加する。このように、メモリインタフェースを暗号化することは、メモリアクセス時間の大幅増を伴うため、実際には断念されているのが現状であり、メモリアクセス時間の短縮が求められている。
【0006】
メモリアクセス時間増加の問題を解決するために、プロセッサのワーキングメモリとして動作する外部メモリとの間で入出力されるデータは暗号化せず、通信回線を介して通信されるデータやHDDなどのほかのデータのみを暗号化することも行われている。外部メモリは直接のアクセスが難しい配置とする。暗号化されたデータは、ソフトウェアによる処理によって復号して外部メモリに記憶する。プロセッサは、ワーキングメモリとして動作する外部メモリ上で高速な処理実行する。しかし、この方法は、アクセスが難しい位置であっても外部メモリ上に復号済みデータが存在することになり、セキュリティの面からは不十分である。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−526173号公報
【特許文献2】特開2006−18528公報
【特許文献3】特開2008−210225号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
セキュアプロセッサは、高いセキュリティを実現する上で有効であるが、入手可能な種類に限りがあり、機器を実現するのに適当なプロセッサの性能およびセキュリティ性を有するセキュアプロセッサを入手するのが難しいという問題があった。
【0009】
近年、各種回路要素がソフトウェア・ライブラリィの形で提供され、それらを組み合わせて1チップに搭載して所望の半導体装置を実現することが行われている。プロセッサもこのような形で提供され、1チップの半導体装置に組み込むことが可能である。また、1個のパッケージに、ベアチップの形で提供されたプロセッサと、ほかの回路要素のベアチップとを搭載して、1チップの半導体装置を実現することも行われている。
【0010】
上記のような形態でセキュアプロセッサでない通常のプロセッサを組み込んで1チップのプロセッサやシステム・オン・チップ(SoC)などの半導体装置を実現する場合に、高いセキュリティのプロセッサシステムを実現することが要望されている。
【0011】
また、セキュアプロセッサを使用する場合に限らず、上記のような場合も、メモリアクセスの安全性と高速性を実現することが有効である。
【課題を解決するための手段】
【0012】
実施形態のプロセッサは、コマンド信号およびアドレス信号を出力すると共に、データ信号を入出力する外部バスモジュールを含むプロセッサユニットに、共通鍵およびアドレス信号を使用する暗号方式で外部バスモジュールに入出力するデータを暗号化および復号する暗号処理回路を付加し、プロセッサユニットおよび暗号処理回路を同一チップに収容することにより、高度のセキュリティを有するプロセッサを実現する。
【発明の効果】
【0013】
実施形態によれば、選択の自由度が高い通常のプロセッサ構成を使用する場合でも、高度のセキュリティを有するプロセッサが実現できる。
【図面の簡単な説明】
【0014】
【図1】図1は、CTRモードの共通鍵暗号処理方式を説明する図である。
【図2】図2は、プロセッサに外部メモリを接続した通常のシステムと、セキュアプロセッサに外部メモリを接続したシステムの概略構成を示す図である。
【図3】図3は、通常のシステムにおける外部バスモジュールと、メモリコントローラと、外部メモリの間の接続を説明する図である。
【図4】図4は、第1実施形態のプロセッサの構成を示す図である。
【図5】図5は、第1実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【図6】図6は、第1実施形態におけるメモリライト処理の動作例を示すタイムチャートである。
【図7】図7は、第1実施形態におけるメモリリード処理の動作例を示すタイムチャートである。
【図8】図8は、第1実施形態のプロセッサの暗号/復号処理回路における回路構成をより詳細に示した図である。
【図9】図9は、第2実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【図10】図10は、第2実施形態におけるメモリリード処理の動作例を示すタイムチャートである。
【図11】図11は、第3実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【図12】図12は、第3実施形態におけるメモリライト処理の動作例を示すタイムチャートである。
【図13】図13は、第3実施形態におけるメモリリード処理の動作例を示すタイムチャートである。
【図14】図14は、第4実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【発明を実施するための形態】
【0015】
実施形態を説明する前に、メモリアクセスに使用できる共通鍵暗号処理について説明する。
【0016】
共通鍵暗号処理には、ECBモード、CBCモード、CFBモード、OFBモード、CTRモードの5つの代表的動作モードが知られている。これらのうち、プロセッサによる一般的なメモリアクセス、すなわちランダムアクセスとの親和性が高い方式は、ECBモード、およびCTR(カウンタ)モードの2つである。ECBモードは、暗号化を一つの鍵で行い、平文と暗号文の関係は常に同じ(1対1対応)となるという特徴を有する。ECBモードは、暗号化/復号化処理が簡単である。しかし、ECBモードは、その特徴から、プロセッサで出現頻度が高い情報(00やFFなど)のパターン解析により、暗号強度(耐解析性)が相対的に弱くなるため、ランダムアクセスメモリに対する暗号化処理は多くの場合CTRモードが使用される。
【0017】
図1は、CTR(カウンタ)モード暗号処理の基本的な処理の流れを示す図である。
【0018】
外部メモリに出力データを書き込む処理は、次のように行われる。CTR1は、メモリアクセスアドレスおよび任意のアドレスからなるCTRアドレスを発生する。Enc2は、共通鍵を記憶しており、CTRアドレスおよび共通鍵に基づいて、暗号化演算結果を発生する。XOR3は、暗号化されていない(平文)の入力データとEnc2の発生した暗号化演算結果の排他的論理和(XOR)を演算して暗号化データを生成する。この暗号化データが外部メモリに記憶される。
【0019】
外部メモリから入力データを読み込む処理は、次のように行われる。CTR4およびEnc5の処理は、CTR1およびEnc2の処理と同じであり、CTR1とCTR4およびEnc2とEnc5は一般的には共通化されている。外部メモリから読み出された暗号化された入力データは、XOR6により、Enc5の発生した暗号化演算結果と排他的論理和(XOR)演算されて、暗号化されていない(平文)の入力データに変換されてプロセッサに取り込まれる。
【0020】
図2は、プロセッサに外部メモリを接続したプロセッサの従来例を示す図であり、(A)が暗号機能の無い外部メモリインタフェースの例であり、(B)は内部に暗号/復号処理部を有するセキュアプロセッサの例である。
【0021】
図2の(A)に示すように、暗号機能の無いプロセッサは、同一チップ内に実装されている、プロセッサコア11、内部メモリ12、内部バス13、外部バスモジュール14、メモリコントローラ16などを有する。メモリコントローラ16には、外部メモリ17が接続される。
【0022】
図3は、図2の(A)に示した要素のうち、外部バスモジュール14と、メモリコントローラ16と、外部メモリ17との間の接続をより詳細に示す図である。外部バスモジュール14とメモリコントローラ16は、アドレス信号A1、バス制御信号CB1、出力データDout1、入力データDin1に対応したバスで接続されている。メモリコントローラ16は、これらの信号を、外部バスモジュール14からの要求に応じて外部メモリ17宛の制御信号に変換し、アドレス信号A2、メモリ制御信号CM2、出力データDout2、入力データDin2を用いてメモリアクセスを行う。ここでは、チップの外部ピンPの左側のアドレス信号A2、メモリ制御信号CM2、出力データDout2、入力データDin2は、それぞれ外部ピンPの右側のアドレスA3、メモリ制御信号CM3、データD3に対応する。参照番号18は出力データDout2の出力バッファを、19は入力データDin2の入力バッファを示す。出力バッファ18および入力バッファ19は、メモリ制御信号CM2のリード/ライト信号により制御される。
【0023】
図2の(A)および図3に示した外部メモリインタフェースは、広く知られているのでこれ以上の説明は省略する。
【0024】
図2の(B)に示すように、セキュアプロセッサは、図2の(A)の構成に加えて、内部バス13に接続される暗号/復号処理部15を有する。暗号/復号処理部15は、外部に出力するデータを暗号化した後外部バスモジュール14を介して出力し、外部バスモジュール14から入力されるデータを復号化した後内部バス13に出力する。図2の(B)における外部バスモジュール14と、メモリコントローラ16と、外部メモリ17との間の接続は、図2の(A)および図3と同じである。しかし、図2の(B)において、外部バスモジュール14より外側の部分に存在するデータは、暗号化されたデータである。
【0025】
図4は、第1実施形態のプロセッサ20の構成を示す図であり、外部メモリ17を接続した状態を示す。図4に示すように、第1実施形態のプロセッサ20は、同一チップ内に実装されている、プロセッサコア11と、内部メモリ12と、内部バス13と、外部バスモジュール14と、メモリコントローラ16と、暗号/復号処理回路21と、を有する。言い換えれば、図2の(A)の構成において、外部バスモジュール14とメモリコントローラ16の間に暗号/復号処理回路21を設けた構成を有する。
【0026】
図5は、第1実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【0027】
図5に示すように、第1実施形態の暗号/復号処理回路は、バス制御回路BCTと、アドレス保持レジスタRDAと、アドレス上位レジスタRUAと、鍵レジスタRKと、共通鍵暗号処理制御部CECと、AES演算器ACALと、演算結果保持レジスタRESと、出力データ保持レジスタRODと、出力データ用XOR演算器OXORと、入力データ保持レジスタRIDと、入力データ用XOR演算器IXORと、を有する。
【0028】
バス制御回路BCTは、バス制御信号CB1AおよびCB1Bに基づいて、アドレスラッチ信号(1)、出力データラッチ信号(2)および入力データラッチ信号(3)を生成する。さらに、バス制御回路BCTは、暗号処理結果が確定したのち、メモリコントローラ16に対し、保持したバス制御信号CB1BおよびアドレスA1Bを送出する。アドレス保持レジスタRDAは、アドレスラッチ信号に応じてアドレスA1Aを保持し、アドレス値の暗号処理を実行し結果が確定するまで制御信号とアドレスを保持する。
【0029】
アドレス上位レジスタRUAおよび鍵レジスタRKの値は、レジスタ専用バスを介して、事前にソフトウェアにより設定される。アドレス上位レジスタRUAに設定される値は、任意の数値である。鍵レジスタRKに設定される値は、CTRモードの暗号鍵である。共通鍵暗号処理制御部CECは、共通鍵CTRモードで暗号処理を行う。CTRのカウンタ要素は、上位にアドレス上位レジスタRUAに設定された任意の数値、下位にはアドレスレジスタRDAに保持されたメモリアクセスのアドレス値を組み合わせて用いる。CTRモードの暗号鍵は、鍵レジスタRKの値を用いる。共通鍵制御部CECは、アドレス(RUA,RDA)値を入力とし、暗号鍵RKを鍵とした共通鍵暗号化処理を、AES(Advanced Encryption Standard)演算器ACALを利用して行い、その演算結果を演算結果保持レジスタRESに格納する。
【0030】
出力データ保持レジスタRODは、書込(ライト)時に、出力データラッチ信号に応じて出力データDout1Aを保持する。出力データ用XOR演算器OXORは、出力データ保持レジスタRODに保持された出力データDout1Aの値を暗号処理結果とXOR演算した値を暗号化ライトデータDout1Bとして出力する。入力データ保持レジスタRIDは、読込(リード)時に、入力データラッチ信号に応じて入力データDin1Bを保持する。入力データ用XOR演算器IXORは、入力データ保持レジスタRIDに保持された出力データDin1Bの値を暗号処理結果とXOR演算した値を復号リードデータDin1Aとして出力する。
【0031】
図6は、図5の暗号/復号処理回路にて、メモリライト処理の暗号化を実施した場合の動作例を示すタイムチャートであり、縦線は動作サイクルを示す。バス制御回路BCTは、コマンドCB1Aを保持すると同時に判定によりライトと判断する。アドレス保持レジスタRDAは、アドレスラッチ信号に応じてアドレスA1Aを保持し、保持したアドレスA1Aを共通鍵暗号処理制御部CECに入力する。共通鍵暗号処理制御部CECは、アドレスA1Aを用いて暗号(AES)処理を開始する。AES処理が完了して暗号処理結果(AES結果)が得られるまでには時間を要する。アドレス保持レジスタRDAは、AES結果が得られるまでアドレスA1Aを保持する。出力データ保持レジスタRODは、出力データラッチ信号に応じてAES処理が開始される時に、処理前のライトデータDout1Aを保持する。CECでの処理完了と同時に、演算結果保持レジスタRESはAES結果を保持する。これと同時に、バス制御回路BCTは保持したコマンドとアドレスをそれぞれCB1B、A1Bとして出力し、OXORはAES結果とDout1AのXORを演算してDout1Bとして出力する。
【0032】
図7は、図5の暗号/復号処理回路にて、メモリリード処理の復号化を実施した場合の動作例を示すタイムチャートであり、縦線は動作サイクルを示す。バス制御回路BCTは、コマンドCB1Aを保持すると同時に判定によりリードと判断する。アドレス保持レジスタRDAは、アドレスラッチ信号に応じてアドレスA1Aを保持し、保持したアドレスA1Aを共通鍵暗号処理制御部CECに入力する。アドレス保持レジスタRDAは、AES結果が得られるまでアドレスA1Aを保持する。共通鍵暗号処理制御部CECは、アドレスA1Aを用いて暗号(AES)処理を開始する。AES処理完了と同時に、バス制御回路BCTは、保持したコマンドとアドレスをそれぞれCB1B、A1Bとして出力する。これに応じてリードコマンドの応答が返ると同時に、入力データ保持レジスタRIDは、演算結果保持レジスタRESに保持したAES結果とDout1BのXORを演算してDout1Aとして出力する。
【0033】
図8は、図5のバス制御回路BCTおよび共通鍵暗号処理制御部CECにおいて、図6および図7の処理を行うための構成をより詳細に示した図である。バス制御信号CB1A、CB1Bを、それぞれ方向ごとの単体のバスに対応したバス制御信号CB1AC、CB1BC、リプライバス制御信号CB1AR、CB1BRに分割して示している。バス制御回路BCTは、コマンド判定部E1およびそれに接続されるD型FF(Flip Flop)およびORゲートと、コマンド保持レジスタE2と、コマンド発行判定部E3とおよびそれに接続されるANDゲートと、リプライ判定部E5とそれに接続されるD型FFと、を有する。共通鍵暗号処理制御部CECおよびAES演算器ACALは、ORゲートに接続されるD型FFと、AES演算器ACALと、AES演算完了フラグE4と、を有する。
【0034】
まずバス制御信号CB1ACが入力されると、コマンド判定部E1およびその付随回路は、リードコマンド、ライトコマンドの判定および、両者をOR演算したアドレスラッチ信号(1)の生成を行う。また、また、これらの回路は、ライトコマンドの判定に基づいて出力データラッチ信号(2)を生成する。ORゲートに接続されるD型FFは、共通鍵(AES)演算開始信号(4)も生成する。また、コマンド保持レジスタE2にコマンドを保持し、バス制御信号CB1BCとして後で出力するために使用する。
【0035】
AES演算器ACALは、AES演算開始信号(4)により、カウンタ(RUA,RDA)値、暗号鍵RKを取り込み、演算を開始する。演算終了時に、演算データと共に演算完了信号を出力する。この演算完了信号を用いて、演算データを演算結果保持レジスタRESに保持すると同時に、AES演算完了フラグE4をセットする。E4の出力は、AES演算完了フラグ(A)である。コマンド発行判定部E3は、AES演算完了フラグ(A)に応じて起動し、前述のE2、RDAで保持したデータをCB1BC、A1Bに出力する。
【0036】
コマンド、アドレスの出力後は、ライトの場合はRESの出力を出力データ保持レジスタRODの値とXOR演算したデータを出力して終了する。リードの場合は、リプライ判定部E5が、リプライバス制御信号CB1BRへの応答を判定し、入力データラッチ信号(3)を出力する。保持レジスタRIDは、入力データラッチ信号(3)により入力データを保持し、RESの出力とXORしたデータをDin1Aとして出力して終了する。
【0037】
第1実施形態では、ライト処理およびリード処理とも、共通鍵の処理分だけ遅延する。次に説明する第2実施形態では、リード処理の場合のみ、高速化を図る。
【0038】
図9は、第2実施形態のプロセッサの暗号/復号処理回路の構成を示す図であり、図8に対応する図である。また、図10は、第2実施形態におけるリード処理を示すタイムチャートである。
【0039】
第2実施形態のプロセッサは、リードデータ到着フラグRDFと、リプライ保持レジスタRPEPの出力を制御するANDゲートA1と、を有すること、およびコマンド発行判定部E3の構成が異なる以外は、第1実施形態のプロセッサに類似した構成を有する。
【0040】
第2実施形態では、第1実施形態とは異なり、共通鍵処理を開始すると同時にリードコマンドを先行して発行する。具体的には、コマンド発行判定E3は、コマンド判定部E1からのリードコマンド判定信号を受け、リードコマンドであれば、暗号処理(AES処理)完了を待たずにバス制御信号CB1Bをメモリコントローラ16に対し発行する。リードアクセスとAES処理は、メモリの設定や性能に応じて、どちらが早く終わるかは分からない。そこで、リードデータ到着フラグRDFがリードアクセスの完了を検出し、リードデータ到着フラグ(B)を出力する。コマンド発行判定部E3は、リードデータ到着フラグ(B)と、共通鍵処理の終了信号(A)の両方が終わったことを確認し、ANDゲートA1を制御する。ANDゲートA1は、リプライ保持レジスタRREPの出力をリプライバス制御信号CB1ARとして出力する。それと同時に、入力データ保持レジスタRIDの出力と、共通鍵演算結果保持レジスタRESの出力をXOR演算し、Din1Aとして出力する。
【0041】
第1実施形態では、暗号処理が終了した後メモリリードアクセスを開始した。リード処理の場合、暗号処理の演算結果は、外部メモリから読み出したリードデータに対して使用されるので、メモリリードアクセスは暗号処理の演算結果と関係しない。そこで、第2実施形態では、暗号処理とメモリリードアクセスを並行して行うことにより、処理時間が短縮される。第2実施形態では、メモリリードアクセスまたは暗号処理のどちらか遅い方に収束するものの、従来例より高速に処理を実行できる。
【0042】
図11は、第3実施形態のプロセッサの暗号/復号処理回路の構成を示す図であり、図8および図9に対応する図である。図12は、第3実施形態におけるライト処理を示すタイムチャートであり、図13は、第3実施形態におけるリード処理を示すタイムチャートである。
【0043】
第3実施形態のプロセッサは、アドレス保持レジスタRESAと、アドレス比較器CMPAと、ANDゲートA2と、ORゲートOR1と、を有すること以外は、第2実施形態のプロセッサに類似した構成を有する。
【0044】
アドレス保持レジスタRESAは、演算結果保持レジスタRESに保持された演算結果を生成した演算を起動する要因となったアドレスを保持する。アドレス比較器CMPAは、コマンドのアドレスとアドレス保持レジスタRESAに保持されたアドレスとを比較して、演算結果保持レジスタRESに保持された演算結果がそのまま使用できるコマンドのアドレスであるか判定する。ANDゲートA2は、演算結果が使用可能である場合には、CMPAの出力によりAES演算開始信号(4)をマスクする。ORゲートOR1は、演算結果が使用可能である場合には、CMPAの出力により演算完了フラグE4のセット信号を生成する。演算完了フラグE4は、セット信号により演算が完了していること、すなわち演算が不要であることを示す。
【0045】
第3実施形態では、コマンドのアドレスがRESAのものと一致した場合、暗号処理演算が起動されず、かつ演算完了の状態を示すため、図12に示すようにライトコマンドの場合、暗号処理の無い場合に比べて1サイクル増加するだけである。また、図13に示すようにリードの場合は2サイクル増加するだけである。このように、第3実施形態では、リード処理およびライト処理の両方でサイクル数を大幅に低減できる。また、共通鍵の暗号化ブロック単位(通常16〜32バイト)に対し、プロセッサのプログラムアクセス単位(通常1〜4バイト)が小さいことから、従来の例に比べ共通鍵の演算起動回数を1/4から1/32程度に抑えることが可能となる。
【0046】
図14は、第4実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【0047】
第4実施形態のプロセッサは、アドレス保持レジスタRESAおよび演算結果保持レジスタRESを組として複数実装したこと、およびセレクタSELAを有すること以外は、第3実施形態のプロセッサに類似した構成を有する。セレクタSELAは、アドレス比較器CMPAの出力により、複数組の中からRESの出力を選択する。
【0048】
第4実施形態では、RESAおよびRESが複数組設けられているので、その分コマンドのアドレスがRESAに保持されている確率が高まる。これにより、演算量を抑え高速処理が可能となる。
【0049】
なお、第4実施形態の変形例として、複数組のアドレス保持レジスタRESAおよび演算結果保持レジスタRESを、プロセッサのほかの部分(プロセッサユニット)よりアクセスできるレジスタとし、予め演算結果を書き込むことが出来るようにする。これにより、予め暗号処理対象アドレスが限定されている場合に、暗号処理を起動する回数を減らすことが可能となる。
【0050】
以上、実施形態を説明したが、開示の技術は、記載した実施形態に限定されるものでなく、各種の変形例が可能であることは、当業者には容易に理解されることである。
【符号の説明】
【0051】
10 プロセッサユニット
14 外部バスモジュール
16 メモリコントローラ
17 外部メモリ
20 プロセッサ
21 暗号/複号処理回路
BCT バス制御回路
PDA アドレス保持レジスタ
RUA アドレス上位レジスタ
RK 鍵レジスタ
CEC 共通鍵暗号処理制御部
RES 演算結果保持レジスタ
ACAL AES演算器
ROD 出力データ保持レジスタ
RID 入力データ保持レジスタ
OXOR 出力XOR回路
IXOR 入力XOR回路
【技術分野】
【0001】
本発明は、外部メモリとの間で入出力するデータを暗号化するプロセッサとに関する。
【背景技術】
【0002】
近年、コンピュータや携帯情報端末の普及が高まるにつれ、それらの機器で実行されるプログラムに関するセキュリティの重要性が高まっている。
【0003】
高性能を要求される機器は、プロセッサを用いて実現されるのが一般的である。高性能のプロセッサは、回路規模が大きく、動作には大容量のメモリが必要になる。そのため、高性能のプロセッサを使用して機器を形成する場合は、大容量の外部メモリが別チップにて実装される。
【0004】
高いセキュリティが要求される機器は、プロセッサの外側で扱われるデータには暗号化を施し、内側にはアクセス保護を施すことで、データを直接読み取ることを不可能とするセキュアプロセッサを用いて実現される。セキュアプロセッサにおける、内部処理は暗号化されていない通常データを使用して行われる。
【0005】
セキュアプロセッサに大容量の外部メモリを接続して使用する場合、セキュアプロセッサは出力するデータを、例えば上記のCTRモードで暗号化し、入力するデータをCTRモードで復号化する。暗号化および復号化処理のために、メモリアクセス時間が大幅に増加する。このように、メモリインタフェースを暗号化することは、メモリアクセス時間の大幅増を伴うため、実際には断念されているのが現状であり、メモリアクセス時間の短縮が求められている。
【0006】
メモリアクセス時間増加の問題を解決するために、プロセッサのワーキングメモリとして動作する外部メモリとの間で入出力されるデータは暗号化せず、通信回線を介して通信されるデータやHDDなどのほかのデータのみを暗号化することも行われている。外部メモリは直接のアクセスが難しい配置とする。暗号化されたデータは、ソフトウェアによる処理によって復号して外部メモリに記憶する。プロセッサは、ワーキングメモリとして動作する外部メモリ上で高速な処理実行する。しかし、この方法は、アクセスが難しい位置であっても外部メモリ上に復号済みデータが存在することになり、セキュリティの面からは不十分である。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2006−526173号公報
【特許文献2】特開2006−18528公報
【特許文献3】特開2008−210225号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
セキュアプロセッサは、高いセキュリティを実現する上で有効であるが、入手可能な種類に限りがあり、機器を実現するのに適当なプロセッサの性能およびセキュリティ性を有するセキュアプロセッサを入手するのが難しいという問題があった。
【0009】
近年、各種回路要素がソフトウェア・ライブラリィの形で提供され、それらを組み合わせて1チップに搭載して所望の半導体装置を実現することが行われている。プロセッサもこのような形で提供され、1チップの半導体装置に組み込むことが可能である。また、1個のパッケージに、ベアチップの形で提供されたプロセッサと、ほかの回路要素のベアチップとを搭載して、1チップの半導体装置を実現することも行われている。
【0010】
上記のような形態でセキュアプロセッサでない通常のプロセッサを組み込んで1チップのプロセッサやシステム・オン・チップ(SoC)などの半導体装置を実現する場合に、高いセキュリティのプロセッサシステムを実現することが要望されている。
【0011】
また、セキュアプロセッサを使用する場合に限らず、上記のような場合も、メモリアクセスの安全性と高速性を実現することが有効である。
【課題を解決するための手段】
【0012】
実施形態のプロセッサは、コマンド信号およびアドレス信号を出力すると共に、データ信号を入出力する外部バスモジュールを含むプロセッサユニットに、共通鍵およびアドレス信号を使用する暗号方式で外部バスモジュールに入出力するデータを暗号化および復号する暗号処理回路を付加し、プロセッサユニットおよび暗号処理回路を同一チップに収容することにより、高度のセキュリティを有するプロセッサを実現する。
【発明の効果】
【0013】
実施形態によれば、選択の自由度が高い通常のプロセッサ構成を使用する場合でも、高度のセキュリティを有するプロセッサが実現できる。
【図面の簡単な説明】
【0014】
【図1】図1は、CTRモードの共通鍵暗号処理方式を説明する図である。
【図2】図2は、プロセッサに外部メモリを接続した通常のシステムと、セキュアプロセッサに外部メモリを接続したシステムの概略構成を示す図である。
【図3】図3は、通常のシステムにおける外部バスモジュールと、メモリコントローラと、外部メモリの間の接続を説明する図である。
【図4】図4は、第1実施形態のプロセッサの構成を示す図である。
【図5】図5は、第1実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【図6】図6は、第1実施形態におけるメモリライト処理の動作例を示すタイムチャートである。
【図7】図7は、第1実施形態におけるメモリリード処理の動作例を示すタイムチャートである。
【図8】図8は、第1実施形態のプロセッサの暗号/復号処理回路における回路構成をより詳細に示した図である。
【図9】図9は、第2実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【図10】図10は、第2実施形態におけるメモリリード処理の動作例を示すタイムチャートである。
【図11】図11は、第3実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【図12】図12は、第3実施形態におけるメモリライト処理の動作例を示すタイムチャートである。
【図13】図13は、第3実施形態におけるメモリリード処理の動作例を示すタイムチャートである。
【図14】図14は、第4実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【発明を実施するための形態】
【0015】
実施形態を説明する前に、メモリアクセスに使用できる共通鍵暗号処理について説明する。
【0016】
共通鍵暗号処理には、ECBモード、CBCモード、CFBモード、OFBモード、CTRモードの5つの代表的動作モードが知られている。これらのうち、プロセッサによる一般的なメモリアクセス、すなわちランダムアクセスとの親和性が高い方式は、ECBモード、およびCTR(カウンタ)モードの2つである。ECBモードは、暗号化を一つの鍵で行い、平文と暗号文の関係は常に同じ(1対1対応)となるという特徴を有する。ECBモードは、暗号化/復号化処理が簡単である。しかし、ECBモードは、その特徴から、プロセッサで出現頻度が高い情報(00やFFなど)のパターン解析により、暗号強度(耐解析性)が相対的に弱くなるため、ランダムアクセスメモリに対する暗号化処理は多くの場合CTRモードが使用される。
【0017】
図1は、CTR(カウンタ)モード暗号処理の基本的な処理の流れを示す図である。
【0018】
外部メモリに出力データを書き込む処理は、次のように行われる。CTR1は、メモリアクセスアドレスおよび任意のアドレスからなるCTRアドレスを発生する。Enc2は、共通鍵を記憶しており、CTRアドレスおよび共通鍵に基づいて、暗号化演算結果を発生する。XOR3は、暗号化されていない(平文)の入力データとEnc2の発生した暗号化演算結果の排他的論理和(XOR)を演算して暗号化データを生成する。この暗号化データが外部メモリに記憶される。
【0019】
外部メモリから入力データを読み込む処理は、次のように行われる。CTR4およびEnc5の処理は、CTR1およびEnc2の処理と同じであり、CTR1とCTR4およびEnc2とEnc5は一般的には共通化されている。外部メモリから読み出された暗号化された入力データは、XOR6により、Enc5の発生した暗号化演算結果と排他的論理和(XOR)演算されて、暗号化されていない(平文)の入力データに変換されてプロセッサに取り込まれる。
【0020】
図2は、プロセッサに外部メモリを接続したプロセッサの従来例を示す図であり、(A)が暗号機能の無い外部メモリインタフェースの例であり、(B)は内部に暗号/復号処理部を有するセキュアプロセッサの例である。
【0021】
図2の(A)に示すように、暗号機能の無いプロセッサは、同一チップ内に実装されている、プロセッサコア11、内部メモリ12、内部バス13、外部バスモジュール14、メモリコントローラ16などを有する。メモリコントローラ16には、外部メモリ17が接続される。
【0022】
図3は、図2の(A)に示した要素のうち、外部バスモジュール14と、メモリコントローラ16と、外部メモリ17との間の接続をより詳細に示す図である。外部バスモジュール14とメモリコントローラ16は、アドレス信号A1、バス制御信号CB1、出力データDout1、入力データDin1に対応したバスで接続されている。メモリコントローラ16は、これらの信号を、外部バスモジュール14からの要求に応じて外部メモリ17宛の制御信号に変換し、アドレス信号A2、メモリ制御信号CM2、出力データDout2、入力データDin2を用いてメモリアクセスを行う。ここでは、チップの外部ピンPの左側のアドレス信号A2、メモリ制御信号CM2、出力データDout2、入力データDin2は、それぞれ外部ピンPの右側のアドレスA3、メモリ制御信号CM3、データD3に対応する。参照番号18は出力データDout2の出力バッファを、19は入力データDin2の入力バッファを示す。出力バッファ18および入力バッファ19は、メモリ制御信号CM2のリード/ライト信号により制御される。
【0023】
図2の(A)および図3に示した外部メモリインタフェースは、広く知られているのでこれ以上の説明は省略する。
【0024】
図2の(B)に示すように、セキュアプロセッサは、図2の(A)の構成に加えて、内部バス13に接続される暗号/復号処理部15を有する。暗号/復号処理部15は、外部に出力するデータを暗号化した後外部バスモジュール14を介して出力し、外部バスモジュール14から入力されるデータを復号化した後内部バス13に出力する。図2の(B)における外部バスモジュール14と、メモリコントローラ16と、外部メモリ17との間の接続は、図2の(A)および図3と同じである。しかし、図2の(B)において、外部バスモジュール14より外側の部分に存在するデータは、暗号化されたデータである。
【0025】
図4は、第1実施形態のプロセッサ20の構成を示す図であり、外部メモリ17を接続した状態を示す。図4に示すように、第1実施形態のプロセッサ20は、同一チップ内に実装されている、プロセッサコア11と、内部メモリ12と、内部バス13と、外部バスモジュール14と、メモリコントローラ16と、暗号/復号処理回路21と、を有する。言い換えれば、図2の(A)の構成において、外部バスモジュール14とメモリコントローラ16の間に暗号/復号処理回路21を設けた構成を有する。
【0026】
図5は、第1実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【0027】
図5に示すように、第1実施形態の暗号/復号処理回路は、バス制御回路BCTと、アドレス保持レジスタRDAと、アドレス上位レジスタRUAと、鍵レジスタRKと、共通鍵暗号処理制御部CECと、AES演算器ACALと、演算結果保持レジスタRESと、出力データ保持レジスタRODと、出力データ用XOR演算器OXORと、入力データ保持レジスタRIDと、入力データ用XOR演算器IXORと、を有する。
【0028】
バス制御回路BCTは、バス制御信号CB1AおよびCB1Bに基づいて、アドレスラッチ信号(1)、出力データラッチ信号(2)および入力データラッチ信号(3)を生成する。さらに、バス制御回路BCTは、暗号処理結果が確定したのち、メモリコントローラ16に対し、保持したバス制御信号CB1BおよびアドレスA1Bを送出する。アドレス保持レジスタRDAは、アドレスラッチ信号に応じてアドレスA1Aを保持し、アドレス値の暗号処理を実行し結果が確定するまで制御信号とアドレスを保持する。
【0029】
アドレス上位レジスタRUAおよび鍵レジスタRKの値は、レジスタ専用バスを介して、事前にソフトウェアにより設定される。アドレス上位レジスタRUAに設定される値は、任意の数値である。鍵レジスタRKに設定される値は、CTRモードの暗号鍵である。共通鍵暗号処理制御部CECは、共通鍵CTRモードで暗号処理を行う。CTRのカウンタ要素は、上位にアドレス上位レジスタRUAに設定された任意の数値、下位にはアドレスレジスタRDAに保持されたメモリアクセスのアドレス値を組み合わせて用いる。CTRモードの暗号鍵は、鍵レジスタRKの値を用いる。共通鍵制御部CECは、アドレス(RUA,RDA)値を入力とし、暗号鍵RKを鍵とした共通鍵暗号化処理を、AES(Advanced Encryption Standard)演算器ACALを利用して行い、その演算結果を演算結果保持レジスタRESに格納する。
【0030】
出力データ保持レジスタRODは、書込(ライト)時に、出力データラッチ信号に応じて出力データDout1Aを保持する。出力データ用XOR演算器OXORは、出力データ保持レジスタRODに保持された出力データDout1Aの値を暗号処理結果とXOR演算した値を暗号化ライトデータDout1Bとして出力する。入力データ保持レジスタRIDは、読込(リード)時に、入力データラッチ信号に応じて入力データDin1Bを保持する。入力データ用XOR演算器IXORは、入力データ保持レジスタRIDに保持された出力データDin1Bの値を暗号処理結果とXOR演算した値を復号リードデータDin1Aとして出力する。
【0031】
図6は、図5の暗号/復号処理回路にて、メモリライト処理の暗号化を実施した場合の動作例を示すタイムチャートであり、縦線は動作サイクルを示す。バス制御回路BCTは、コマンドCB1Aを保持すると同時に判定によりライトと判断する。アドレス保持レジスタRDAは、アドレスラッチ信号に応じてアドレスA1Aを保持し、保持したアドレスA1Aを共通鍵暗号処理制御部CECに入力する。共通鍵暗号処理制御部CECは、アドレスA1Aを用いて暗号(AES)処理を開始する。AES処理が完了して暗号処理結果(AES結果)が得られるまでには時間を要する。アドレス保持レジスタRDAは、AES結果が得られるまでアドレスA1Aを保持する。出力データ保持レジスタRODは、出力データラッチ信号に応じてAES処理が開始される時に、処理前のライトデータDout1Aを保持する。CECでの処理完了と同時に、演算結果保持レジスタRESはAES結果を保持する。これと同時に、バス制御回路BCTは保持したコマンドとアドレスをそれぞれCB1B、A1Bとして出力し、OXORはAES結果とDout1AのXORを演算してDout1Bとして出力する。
【0032】
図7は、図5の暗号/復号処理回路にて、メモリリード処理の復号化を実施した場合の動作例を示すタイムチャートであり、縦線は動作サイクルを示す。バス制御回路BCTは、コマンドCB1Aを保持すると同時に判定によりリードと判断する。アドレス保持レジスタRDAは、アドレスラッチ信号に応じてアドレスA1Aを保持し、保持したアドレスA1Aを共通鍵暗号処理制御部CECに入力する。アドレス保持レジスタRDAは、AES結果が得られるまでアドレスA1Aを保持する。共通鍵暗号処理制御部CECは、アドレスA1Aを用いて暗号(AES)処理を開始する。AES処理完了と同時に、バス制御回路BCTは、保持したコマンドとアドレスをそれぞれCB1B、A1Bとして出力する。これに応じてリードコマンドの応答が返ると同時に、入力データ保持レジスタRIDは、演算結果保持レジスタRESに保持したAES結果とDout1BのXORを演算してDout1Aとして出力する。
【0033】
図8は、図5のバス制御回路BCTおよび共通鍵暗号処理制御部CECにおいて、図6および図7の処理を行うための構成をより詳細に示した図である。バス制御信号CB1A、CB1Bを、それぞれ方向ごとの単体のバスに対応したバス制御信号CB1AC、CB1BC、リプライバス制御信号CB1AR、CB1BRに分割して示している。バス制御回路BCTは、コマンド判定部E1およびそれに接続されるD型FF(Flip Flop)およびORゲートと、コマンド保持レジスタE2と、コマンド発行判定部E3とおよびそれに接続されるANDゲートと、リプライ判定部E5とそれに接続されるD型FFと、を有する。共通鍵暗号処理制御部CECおよびAES演算器ACALは、ORゲートに接続されるD型FFと、AES演算器ACALと、AES演算完了フラグE4と、を有する。
【0034】
まずバス制御信号CB1ACが入力されると、コマンド判定部E1およびその付随回路は、リードコマンド、ライトコマンドの判定および、両者をOR演算したアドレスラッチ信号(1)の生成を行う。また、また、これらの回路は、ライトコマンドの判定に基づいて出力データラッチ信号(2)を生成する。ORゲートに接続されるD型FFは、共通鍵(AES)演算開始信号(4)も生成する。また、コマンド保持レジスタE2にコマンドを保持し、バス制御信号CB1BCとして後で出力するために使用する。
【0035】
AES演算器ACALは、AES演算開始信号(4)により、カウンタ(RUA,RDA)値、暗号鍵RKを取り込み、演算を開始する。演算終了時に、演算データと共に演算完了信号を出力する。この演算完了信号を用いて、演算データを演算結果保持レジスタRESに保持すると同時に、AES演算完了フラグE4をセットする。E4の出力は、AES演算完了フラグ(A)である。コマンド発行判定部E3は、AES演算完了フラグ(A)に応じて起動し、前述のE2、RDAで保持したデータをCB1BC、A1Bに出力する。
【0036】
コマンド、アドレスの出力後は、ライトの場合はRESの出力を出力データ保持レジスタRODの値とXOR演算したデータを出力して終了する。リードの場合は、リプライ判定部E5が、リプライバス制御信号CB1BRへの応答を判定し、入力データラッチ信号(3)を出力する。保持レジスタRIDは、入力データラッチ信号(3)により入力データを保持し、RESの出力とXORしたデータをDin1Aとして出力して終了する。
【0037】
第1実施形態では、ライト処理およびリード処理とも、共通鍵の処理分だけ遅延する。次に説明する第2実施形態では、リード処理の場合のみ、高速化を図る。
【0038】
図9は、第2実施形態のプロセッサの暗号/復号処理回路の構成を示す図であり、図8に対応する図である。また、図10は、第2実施形態におけるリード処理を示すタイムチャートである。
【0039】
第2実施形態のプロセッサは、リードデータ到着フラグRDFと、リプライ保持レジスタRPEPの出力を制御するANDゲートA1と、を有すること、およびコマンド発行判定部E3の構成が異なる以外は、第1実施形態のプロセッサに類似した構成を有する。
【0040】
第2実施形態では、第1実施形態とは異なり、共通鍵処理を開始すると同時にリードコマンドを先行して発行する。具体的には、コマンド発行判定E3は、コマンド判定部E1からのリードコマンド判定信号を受け、リードコマンドであれば、暗号処理(AES処理)完了を待たずにバス制御信号CB1Bをメモリコントローラ16に対し発行する。リードアクセスとAES処理は、メモリの設定や性能に応じて、どちらが早く終わるかは分からない。そこで、リードデータ到着フラグRDFがリードアクセスの完了を検出し、リードデータ到着フラグ(B)を出力する。コマンド発行判定部E3は、リードデータ到着フラグ(B)と、共通鍵処理の終了信号(A)の両方が終わったことを確認し、ANDゲートA1を制御する。ANDゲートA1は、リプライ保持レジスタRREPの出力をリプライバス制御信号CB1ARとして出力する。それと同時に、入力データ保持レジスタRIDの出力と、共通鍵演算結果保持レジスタRESの出力をXOR演算し、Din1Aとして出力する。
【0041】
第1実施形態では、暗号処理が終了した後メモリリードアクセスを開始した。リード処理の場合、暗号処理の演算結果は、外部メモリから読み出したリードデータに対して使用されるので、メモリリードアクセスは暗号処理の演算結果と関係しない。そこで、第2実施形態では、暗号処理とメモリリードアクセスを並行して行うことにより、処理時間が短縮される。第2実施形態では、メモリリードアクセスまたは暗号処理のどちらか遅い方に収束するものの、従来例より高速に処理を実行できる。
【0042】
図11は、第3実施形態のプロセッサの暗号/復号処理回路の構成を示す図であり、図8および図9に対応する図である。図12は、第3実施形態におけるライト処理を示すタイムチャートであり、図13は、第3実施形態におけるリード処理を示すタイムチャートである。
【0043】
第3実施形態のプロセッサは、アドレス保持レジスタRESAと、アドレス比較器CMPAと、ANDゲートA2と、ORゲートOR1と、を有すること以外は、第2実施形態のプロセッサに類似した構成を有する。
【0044】
アドレス保持レジスタRESAは、演算結果保持レジスタRESに保持された演算結果を生成した演算を起動する要因となったアドレスを保持する。アドレス比較器CMPAは、コマンドのアドレスとアドレス保持レジスタRESAに保持されたアドレスとを比較して、演算結果保持レジスタRESに保持された演算結果がそのまま使用できるコマンドのアドレスであるか判定する。ANDゲートA2は、演算結果が使用可能である場合には、CMPAの出力によりAES演算開始信号(4)をマスクする。ORゲートOR1は、演算結果が使用可能である場合には、CMPAの出力により演算完了フラグE4のセット信号を生成する。演算完了フラグE4は、セット信号により演算が完了していること、すなわち演算が不要であることを示す。
【0045】
第3実施形態では、コマンドのアドレスがRESAのものと一致した場合、暗号処理演算が起動されず、かつ演算完了の状態を示すため、図12に示すようにライトコマンドの場合、暗号処理の無い場合に比べて1サイクル増加するだけである。また、図13に示すようにリードの場合は2サイクル増加するだけである。このように、第3実施形態では、リード処理およびライト処理の両方でサイクル数を大幅に低減できる。また、共通鍵の暗号化ブロック単位(通常16〜32バイト)に対し、プロセッサのプログラムアクセス単位(通常1〜4バイト)が小さいことから、従来の例に比べ共通鍵の演算起動回数を1/4から1/32程度に抑えることが可能となる。
【0046】
図14は、第4実施形態のプロセッサの暗号/復号処理回路の構成を示す図である。
【0047】
第4実施形態のプロセッサは、アドレス保持レジスタRESAおよび演算結果保持レジスタRESを組として複数実装したこと、およびセレクタSELAを有すること以外は、第3実施形態のプロセッサに類似した構成を有する。セレクタSELAは、アドレス比較器CMPAの出力により、複数組の中からRESの出力を選択する。
【0048】
第4実施形態では、RESAおよびRESが複数組設けられているので、その分コマンドのアドレスがRESAに保持されている確率が高まる。これにより、演算量を抑え高速処理が可能となる。
【0049】
なお、第4実施形態の変形例として、複数組のアドレス保持レジスタRESAおよび演算結果保持レジスタRESを、プロセッサのほかの部分(プロセッサユニット)よりアクセスできるレジスタとし、予め演算結果を書き込むことが出来るようにする。これにより、予め暗号処理対象アドレスが限定されている場合に、暗号処理を起動する回数を減らすことが可能となる。
【0050】
以上、実施形態を説明したが、開示の技術は、記載した実施形態に限定されるものでなく、各種の変形例が可能であることは、当業者には容易に理解されることである。
【符号の説明】
【0051】
10 プロセッサユニット
14 外部バスモジュール
16 メモリコントローラ
17 外部メモリ
20 プロセッサ
21 暗号/複号処理回路
BCT バス制御回路
PDA アドレス保持レジスタ
RUA アドレス上位レジスタ
RK 鍵レジスタ
CEC 共通鍵暗号処理制御部
RES 演算結果保持レジスタ
ACAL AES演算器
ROD 出力データ保持レジスタ
RID 入力データ保持レジスタ
OXOR 出力XOR回路
IXOR 入力XOR回路
【特許請求の範囲】
【請求項1】
コマンド信号およびアドレス信号を出力すると共に、データ信号を入出力する外部バスモジュールを含むプロセッサユニットと、
共通鍵および前記アドレス信号を使用する暗号方式で、前記外部バスモジュールに入出力するデータを暗号化および復号する暗号処理回路と、を備え、
前記プロセッサユニットおよび前記暗号処理回路は、同一チップに収容されていることを特徴とするプロセッサ。
【請求項2】
前記暗号処理回路は、
前記共通鍵および前記アドレス信号に基づいて共通鍵暗号処理を行う共通鍵暗号処理回路と、
前記共通鍵暗号処理回路の暗号処理結果に基づいて、出力データを暗号化し、入力データを復号する暗号/復号回路と、を備えることを特徴とする請求項1に記載のプロセッサ。
【請求項3】
前記暗号処理回路は、
前記コマンド信号がリードコマンドであるかライトコマンドであるかを検出するコマンド判定回路と、
前記コマンド信号がリードコマンドである時には、前記アドレス信号をただちに出力し、前記コマンド信号がライトコマンドである時には、前記共通鍵暗号処理回路の暗号処理が完了した後、前記アドレス信号を、前記共通鍵暗号処理回路の暗号処理結果で暗号化したライトデータと共に出力することを特徴とする請求項2に記載のプロセッサ。
【請求項4】
前記暗号処理回路は、
前記コマンド信号がリードコマンドである時に出力した前記アドレス信号に応答して入力されるリードデータの到着を検出するリードデータ到着検出回路を備え、
リードデータの到着し且つ前記共通鍵暗号処理回路の暗号処理が終了した後、前記リードデータを暗号処理結果で暗号化した後出力することを特徴とする請求項3に記載のプロセッサ。
【請求項5】
前記暗号処理回路は、
前記共通鍵暗号処理回路の暗号処理結果を保持する結果保持レジスタと、
前記結果保持レジスタに保持された暗号処理結果を発生させたコマンド信号のアドレスを保持するアドレスレジスタと、
コマンド信号のアドレスが、前記アドレスレジスタに保持されたアドレスであるかを判定する比較回路と、を備え、
コマンド信号のアドレスが、前記アドレスレジスタに保持されたアドレスである時には、前記共通鍵暗号処理を行わずに前記結果保持レジスタに保持された暗号処理結果を使用することを特徴とする請求項2に記載のプロセッサ。
【請求項6】
前記結果保持レジスタおよび前記アドレスレジスタの組を複数組備え、
コマンド信号のアドレスが保持された前記アドレスレジスタに対応する前記結果保持レジスタに保持された暗号処理結果を使用することを特徴とする請求項5に記載のプロセッサ。
【請求項7】
前記結果保持レジスタおよび前記アドレスレジスタは、当該プロセッサから保持する値を設定可能であることを特徴とする請求項5に記載のプロセッサ。
【請求項1】
コマンド信号およびアドレス信号を出力すると共に、データ信号を入出力する外部バスモジュールを含むプロセッサユニットと、
共通鍵および前記アドレス信号を使用する暗号方式で、前記外部バスモジュールに入出力するデータを暗号化および復号する暗号処理回路と、を備え、
前記プロセッサユニットおよび前記暗号処理回路は、同一チップに収容されていることを特徴とするプロセッサ。
【請求項2】
前記暗号処理回路は、
前記共通鍵および前記アドレス信号に基づいて共通鍵暗号処理を行う共通鍵暗号処理回路と、
前記共通鍵暗号処理回路の暗号処理結果に基づいて、出力データを暗号化し、入力データを復号する暗号/復号回路と、を備えることを特徴とする請求項1に記載のプロセッサ。
【請求項3】
前記暗号処理回路は、
前記コマンド信号がリードコマンドであるかライトコマンドであるかを検出するコマンド判定回路と、
前記コマンド信号がリードコマンドである時には、前記アドレス信号をただちに出力し、前記コマンド信号がライトコマンドである時には、前記共通鍵暗号処理回路の暗号処理が完了した後、前記アドレス信号を、前記共通鍵暗号処理回路の暗号処理結果で暗号化したライトデータと共に出力することを特徴とする請求項2に記載のプロセッサ。
【請求項4】
前記暗号処理回路は、
前記コマンド信号がリードコマンドである時に出力した前記アドレス信号に応答して入力されるリードデータの到着を検出するリードデータ到着検出回路を備え、
リードデータの到着し且つ前記共通鍵暗号処理回路の暗号処理が終了した後、前記リードデータを暗号処理結果で暗号化した後出力することを特徴とする請求項3に記載のプロセッサ。
【請求項5】
前記暗号処理回路は、
前記共通鍵暗号処理回路の暗号処理結果を保持する結果保持レジスタと、
前記結果保持レジスタに保持された暗号処理結果を発生させたコマンド信号のアドレスを保持するアドレスレジスタと、
コマンド信号のアドレスが、前記アドレスレジスタに保持されたアドレスであるかを判定する比較回路と、を備え、
コマンド信号のアドレスが、前記アドレスレジスタに保持されたアドレスである時には、前記共通鍵暗号処理を行わずに前記結果保持レジスタに保持された暗号処理結果を使用することを特徴とする請求項2に記載のプロセッサ。
【請求項6】
前記結果保持レジスタおよび前記アドレスレジスタの組を複数組備え、
コマンド信号のアドレスが保持された前記アドレスレジスタに対応する前記結果保持レジスタに保持された暗号処理結果を使用することを特徴とする請求項5に記載のプロセッサ。
【請求項7】
前記結果保持レジスタおよび前記アドレスレジスタは、当該プロセッサから保持する値を設定可能であることを特徴とする請求項5に記載のプロセッサ。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−170495(P2010−170495A)
【公開日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願番号】特願2009−14660(P2009−14660)
【出願日】平成21年1月26日(2009.1.26)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成22年8月5日(2010.8.5)
【国際特許分類】
【出願日】平成21年1月26日(2009.1.26)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]