JP4671034B2 - Dma転送回路及びdmaコントローラ - Google Patents

Dma転送回路及びdmaコントローラ Download PDF

Info

Publication number
JP4671034B2
JP4671034B2 JP2005291249A JP2005291249A JP4671034B2 JP 4671034 B2 JP4671034 B2 JP 4671034B2 JP 2005291249 A JP2005291249 A JP 2005291249A JP 2005291249 A JP2005291249 A JP 2005291249A JP 4671034 B2 JP4671034 B2 JP 4671034B2
Authority
JP
Japan
Prior art keywords
data
encryption
address
transfer
circuit
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
Application number
JP2005291249A
Other languages
English (en)
Other versions
JP2007102468A (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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2005291249A priority Critical patent/JP4671034B2/ja
Publication of JP2007102468A publication Critical patent/JP2007102468A/ja
Application granted granted Critical
Publication of JP4671034B2 publication Critical patent/JP4671034B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Bus Control (AREA)

Description

本発明は、DMA転送回路及びDMAコントローラに関する。
最近では機密保護のためデータを暗号化して記憶部に記憶させることが多い。記憶部に対してDMA転送を行う場合、暗号化処理を行ってから記憶部にDMA転送を行ったり、記憶部に転送する前にDMA転送を行ったりする。
特開2001−318768号
しかしそれでは、暗号化して転送する処理に暗号化−転送の2ステップが必要となる。また復号化時には逆に転送−復号化の2ステップが必要となり、DMAのチャネルを複数占領してしまうという問題点があった。
本発明は以上のような問題点に鑑みてなされたものであり、その目的とするところは、暗号化処理とデータ転送を効率よく行うことができるDMA転送回路及びDMAコントローラの提供を目的とする。
本発明のひとつは、DMA転送を行うためのDMA転送回路であって、第1の記憶装置における記憶領域の所定の位置を指定する値である第1のアドレスを保持する転送元アドレスレジスタと、第2の記憶装置における記憶領域の所定の位置を指定する値である第2のアドレスを保持する転送先アドレスレジスタと、データバッファに格納された第1のデータに対し所与の暗号化パラメータに基づく暗号処理を行い、第2のデータを生成する処理部と、DMA転送時に、前記データバッファを介して、前記第1のアドレスから前記第1のデータを読み出す制御及び前記第2のアドレスに前記第2のデータを格納するための転送制御を行う制御部と、を含み、前記処理部は、前記DMA転送回路が暗号化モードに設定されている場合のDMA転送、又は指定された所定のチャネルにおけるDMA転送において暗号処理を行うことを特徴とする。
上述した本発明にかかるDMA転送回路おいて、前記処理部は、前記所与の暗号化パラメータに基づく暗号処理または所与の復号化パラメータに基づく復号処理を行い、前記暗号処理を行うときは、前記第2のアドレスに基づき前記所与の暗号化パラメータを生成し、前記復号処理を行う時には、前記第1のアドレスに基づき前記所与の復号化パラメータを生成することが好ましい。
上述した本発明にかかるDMA転送回路おいて、前記処理部は、前記所与の暗号化パラメータ、又は前記所与の復号化パラメータと前記第1のデータとの排他的論理和をとる排他的論理和回路を含むことが好ましい。
上述した本発明にかかるDMA転送回路おいて、前記処理部は、前記第1のアドレス若しくは前記第2のアドレスが設定される開始アドレスレジスタと、前記開始アドレスレジスタの値に基づき暗号化又は複合化に用いる所与のパラメータを生成するパラメータ生成部と、前記所与のパラメータと前記第1のデータとの排他的論理和をとる排他的論理和回路と、を含むことが好ましい。
上述した本発明にかかるDMA転送回路おいて、前記処理部の行う処理が、前記暗号処理であるか又は前記復号処理であるかを示す値が記憶される動作モードレジスタを含み、前記処理部は、前記動作モードレジスタの値に基づいて暗号処理又は復号処理を行うことが好ましい。
また、本発明にかかるひとつのDMAコントローラは、上述した本発明にかかるDMA転送回路を含むことが好ましい。
(1)本発明は、
DMA転送を行うためのDMA転送回路であって、
データバッファと、
転送先アドレスレジスタと、
転送元アドレスレジスタと、
転送元アドレスレジスタ値が示すアドレスから転送データを読み出して一旦データバッ
ファに保持し、データバッファから読み出したデータを転送先アドレスレジスタ値が示す
アドレスに書き込むための制御を行う制御部と、
所与の暗号化パラメータに基づき前記転送データの暗号化をおこなう暗号処理部とを含
み、
前記制御部は、
暗号化後のデータを転送先アドレスレジスタ値が示すアドレスに書き込むための制御を
行うことを特徴とする。
転送元アドレスから読み出したデータを暗号化してからバッファに格納するように制御してもよいし、バッファに格納されているデータを暗号化して転送先アドレスに送信するようにしてもよい。
また第1のバッファと第2のバッファの2つのバッファを持たせ、第1のバッファのデータを暗号化して第2のバッファに書き込むようにしてもよい。
本発明によればDMA転送回路自体が内部に暗号化処理部を有するので、データのDMA転送を行う際に暗号化もあわせて行うことができるので、暗号処理とデータ転送を効率よく行うことができるDMA転送回路を提供することができる。
(2)本発明のDMA転送回路は、
転送元データアドレス値が示すアドレスから読みだした転送データを、転送元データアドレス値に関連して得られる復号化パラメータに基づき、転送元アドレスレジスタから読み出した転送データの復号化を行う復号処理部を含むことを特徴とする。
暗号化データを復号するための復号化パラメータは、暗号化方式と暗号化パラメータに応じて定まるものであり、例えば元データに対して暗号化パラメータで排他的論理和を取って暗号化データを作成する暗号化方式の場合、復号化パラメータは暗号化パラメータと同じ構成で実現できる。
従って暗号化データと用いた暗号化パラメータの対応付けができるようにしておくことが必要である。
例えば暗号化する際の転送先データ(復号化する場合には転送元データ)と使用した暗号化パラメータを内部テーブルとして持たせて、復号化する際に転送元データをキーとして内部テーブルから対応する暗号化パラメータを読み出して、復号化パラメータを特定するようにしても良い。
また例えば暗号化する際に転送先データ(復号化する場合には転送元データ)に基づき一義的に暗号化パラメータを生成するように構成すれば、復号化する際に転送元データに基づき暗号化パラメータを特定することができる。
また転送元アドレスから読み出したデータを復号化してからバッファに格納するように制御してもよいし、バッファに格納されているデータを復号化して転送先アドレスに送信するようにしてもよい。
また第1のバッファと第2のバッファの2つのバッファを持たせ、第1のバッファのデータを復号化して第2のバッファに書き込むようにしてもよい。
本発明によればDMA転送回路自体が内部に復号処理部を有するので、データのDMA転送を行う際に復号化もあわせて行うことができるので、復号処理とデータ転送を効率よく行うことができるDMA転送回路を提供することができる。
(3)本発明のDMA転送回路は、
前記暗号処理部は、
転送先アドレスに基づき一義的に暗号化パラメータを生成する回路を含み、
生成された暗号化パラメータに基づき転送データの暗号化を行うことを特徴とする。
(4)本発明のDMA転送回路は、
前記復号処理部は、
転送元データアドレスに基づき復号化パラメータを生成し、転送元アドレスレジスタから読み出した転送データの復号化を行うことを特徴とする。
(5)本発明のDMA転送回路は、
前記暗号処理部は、
転送先アドレスに基づき一義的に生成された暗号化パラメータと、転送データの排他的論理和をとる排他的論理和回路を含み、排他的論理和回路を用いて暗号化を行うことを特徴とする。
排他的論理和回路を用いて暗号を行うとは、排他的論理和回路の出力そのものを暗号化データとする場合も含む。
(6)本発明のDMA転送回路は、
前記復号処理部は、
転送元アドレスに基づき一義的に生成された復号化パラメータと、転送元アドレスレジスタから読み出した転送データの排他的論理和をとる排他的論理和回路を含み、排他的論理和回路を用いて復号化を行うことを特徴とする。
(7)本発明のDMA転送回路は、
所与のパラメータに基づき転送元アドレスレジスタ値が示すアドレスから読み出した転送データの暗号化と復号化をおこなうことが可能な暗号/復号処理部を含み、
前記暗号/復号処理部は、
バスを介して設定された転送元アドレス又は転送先アドレスのいずれかの値がセットされる開始アドレスレジスタと、
暗号化又は復号化に用いるパラメータを、開始アドレスレジスタの値に基づき一義的に生成するパラメータ生成回路と、
パラメータ生成回路によって生成されたパラメータと転送データの排他的論理和をとる排他的論理和回路を含み、
前記制御部は、
暗号化を行う際には前記開始アドレスレジスタに転送先アドレスの値がセットされるように制御し、
復号化を行う際には前記開始アドレスレジスタに転送元アドレスの値がセットされるように制御することを特徴とする。
本発明によれば暗号化/復号化回路は、暗号化または復号化を転送データと暗号化または復号化パラメータとの排他的論理和をとることにより実現しているので、暗号化と復号化の回路構成が同じとなり1つの回路で復号化の両方を実現することができる。
(8)本発明のDMA転送回路は、
暗号処理または復号処理を行うか否かを制御するための値が記憶される動作モードレジスタを含み、
前記制御部は、
動作モードレジスタの値が暗号処理または復号処理を行うことを示す値である場合に暗号処理または復号処理を行うように制御することを特徴とする。
(9)本発明は、
上記のいずれかに記載のDMA転送回路を含むことを特徴とするDMAコントローラである。
(10)本発明は、
上記のいずれかに記載のDMA転送回路を含む複数のDMA転送回路を含むDMAコントローラであって、
各チャネル毎にDMA転送を行うためのDMA転送回路が割り当てられ、
暗号及び復号の少なくとも一方を行うためのチャネルに対しては、請求項1乃至9のいずれかに記載のDMA転送回路が割り当てられていることを特徴とする。
以下、本発明の好適な実施形態について図面を用いて詳細に説明する。
図1は、本実施の形態のDMAコントローラ(DMA転送回路)の構成について説明するための図である。なお、本実施形態のDMAコントローラ100は、図1の構成要素(各部)を全て含む必要はなく、その一部を省略した構成としてもよい。
本実施の形態のDMAコントローラ100は、データバッファ120、暗号キーレジスタ150、転送先アドレスレジスタ160、転送元アドレスレジスタ170、暗号化回路130、転送先アドレス計算回路162、転送元アドレス計算回路172、乱数発生器140、制御部110、出力データセレクタ180、出力アドレスセレクタ190を含む。
80はデータバスであり、90はアドレスバスである。
1は入力データ、2はDMA転送データ、3は乱数値、4は暗号キー値出力、5はアドレスバス90への出力アドレス、6は転送先アドレス出力、7は暗号処理データ出力、8は転送先ネクストアドレス、9は入力アドレス、10は転送元アドレス出力、11はデータバッファ制御信号、12は乱数発生器制御信号、13は暗号化回路制御信号、14は暗号キーレジスタ制御信号、15は転送先アドレスレジスタ制御信号、16は転送先アドレス計算回路制御信号、17は転送元アドレスレジスタ制御信号、18は転送元アドレス計算回路制御信号、19はデータバス80への出力データ、20は制御部レジスタリードデータ、21は転送元ネクストアドレスである。
暗号化回路130は、図示しない開始アドレスレジスタ(図4の132)を含む。ここでDMAコントローラに転送の設定が行われる際には、例えばCPUによって転送先アドレス、転送元アドレス、がデータバス80を介して転送先アドレスレジスタ160,転送元アドレスレジスタ170に設定される。
暗号化を行う場合(例えば暗号化モードが設定されている場合や暗号化を行うチャネルに割り当てられている場合)にはデータバスを介して入力された開始アドレス(暗号化の場合には転送先アドレス、復号化の場合には転送元アドレス)が暗号化回路130の図示しない開始アドレスレジスタ(図4の132)に設定される。
データバッファ120は、データバス80からの入力データ信号1及び制御部からのデータバッファ制御信号11を受け取り、暗号化回路に対しDMA転送データ2を出力する。
乱数発生器140は制御部110から乱数発生器制御信号12を受け取り、暗号化回路130に乱数値を出力する。乱数発生器140は、同じパラメータであれば同じ乱数値が発生するもの(パラメータから一義的に乱数値が導き出せるもの)を使用する。
暗号キーレジスタ131は例えば32ビットのレジスタであり、制御部110からの暗号キーレジスタ制御信号12と暗号化回路130から出力される暗号処理後の転送データ7を入力とし、暗号化回路130に暗号キー値4を出力する。
転送先アドレスレジスタ160は、例えば32ビットのレジスタであり、制御部110からの転送先アドレスレジスタ制御信号15とデータバスからの入力される転送先アドレス(DMA設定のさいに入力データ1としてデータバスを介してうけとる)と転送先アドレス計算回路162が演算する転送先ネクストアドレス8を入力として、自身のレジスタに格納された転送先アドレス値を出力アドレスセレクタ190に出力する。
転送先アドレス計算回路162は制御部110からの転送先アドレス計算回路制御信号16、転送先アドレスレジスタの出力値を受け取り、転送先ネクストアドレス8を演算して転送先アドレスレジスタ160に対し出力する。
転送元アドレスレジスタ170は、例えば32ビットのレジスタであり、制御部110からの転送元アドレスレジスタ制御信号17とデータバスからの入力される転送元アドレス(DMA設定のさいに入力データ1としてデータバスを介してうけとる)と転送元アドレス計算回路172が演算する転送元ネクストアドレス21を入力として、自身のレジスタに格納された転送元アドレス値を出力アドレスセレクタ190に出力する。
転送元アドレス計算回路172は制御部110からの転送元アドレス計算回路制御信号18、転送元アドレスレジスタの出力値を受け取り、転送元ネクストアドレス21を演算して転送元アドレスレジスタ170に対し出力する。
暗号化回路130は、データバッファから出力されるDMA転送データ2、乱数発生器140から出力される乱数値3、制御部110が出力する暗号化回路制御信号13、暗号キーレジスタ131が出力する暗号キー値4、データバスから入力される転送元アドレスまたは転送先アドレス(DMA設定のさいに入力データ1としてデータバスを介してうけとる)を入力し、暗号化された転送データ7を出力データセレクタ180及び暗号キーレジスタ150に出力する。
出力データセレクタ180は、暗号化回路の出力する暗号化された転送データ7及び制御部レジスタリードデータ20を入力とし、いずれかを選択してデータバスに出力する。データを暗号化(または復号化)してDMA転送する場合には暗号化回路の出力する暗号化された転送データ7を選択してデータバス80に出力し、データを暗号化(または復号化)せずにDMA転送する場合には制御部レジスタリードデータ20をデータバス80に出力する。
出力アドレスセレクタ190は、転送先アドレスレジスタ160の出力する転送先アドレス値6及び転送元アドレスレジスタ170の出力する転送元アドレス値10を入力とし、いずれかを選択してアドレスバス90に出力する。
制御部110は、データバス80からの入力データ1、アドレスバス90からの入力アドレス9を入力し、出力データセレクタ18に対し制御部レジスタリードデータ20、その他の各種制御信号11,12、14、15、16、17、18を該当部署に対し出力する。
制御部110は、転送元アドレスレジスタ160値が示すアドレスから転送データを読み出して一旦データバッファ120に保持し、データバッファ120から読み出したデータを転送先アドレスレジスタ170値が示すアドレスに書き込むための制御を行う。転送データに対して暗号化を行う場合には、暗号化後のデータを転送先アドレスレジスタ値が示すアドレスに書き込むための制御を行う。
CPUがDMA設定(転送先アドレス、転送元アドレス、転送サイズ等)を行うと、DMAコントローラ100はデータバスを介して入力データとして、転送先アドレス、転送元アドレスを受け取り、それぞれ転送先アドレスレジスタ160、転送元アドレスレジスタ170に設定されるとともに、暗号化を行う場合(例えば暗号化モードが設定されている場合や暗号化を行うチャネルに割り当てられている場合)にはデータバスを介して入力された転送先アドレスが、復号化の場合には転送元アドレスが暗号化回路130の図示しない開始アドレスレジスタ(図4の132)に設定される。
そしてDMAコントローラ100は、転送元データアドレスレジスタ170に格納された転送元データアドレス値6をアドレスバス90に出力して転送元データアドレスからデータバス80を介して入力データ1を読み出してデータバッファ120に格納する。
そしてデータバッファに格納されたDMA転送データ2を暗号化回路130で暗号化してデータバス80に出力するとともに、転送先アドレスレジスタに格納された転送先アドレス値をアドレスバス90に出力する。
乱数発生器140、暗号キーレジスタ150、暗号化回路130は、所与の暗号化パラメータに基づき前記転送データの暗号化をおこなう暗号処理部として機能する。
また乱数発生器140、暗号キーレジスタ150、暗号化回路130を、転送元データアドレス値が示すアドレスから読みだした転送データを、転送元データアドレス値に関連して得られる復号化パラメータに基づき、転送元アドレスレジスタから読み出した転送データの復号化を行う復号処理部として機能させるようにしてもよい。
図2は、比較例のDMAコントローラの構成について説明するための図である。
比較例のDMAコントローラ200は、データバッファ220、転送先アドレスレジスタ260、転送元アドレスレジスタ270、転送先アドレス計算回路262、転送元アドレス計算回路272、制御部210、出力データセレクタ280、出力アドレスセレクタ290を含む。
80’はデータバスであり、90’はアドレスバスである。
301は入力データ、302はDMA転送データ、305はアドレスバス90への出力アドレス、306は転送先アドレス出力、308は転送先ネクストアドレス、309は入力アドレス、310は転送元アドレス出力、311はデータバッファ制御信号、315は転送先アドレスレジスタ制御信号、316は転送先アドレス計算回路制御信号、317は転送元アドレスレジスタ制御信号、318は転送元アドレス計算回路制御信号、319はデータバス80’への出力データ、320は制御部レジスタリードデータ、321は転送元ネクストアドレスである。
比較例のDMAコントローラ200は、転送元データアドレスレジスタ270に格納された転送元データアドレス値3をアドレスバス90’に出力して転送元データアドレスからデータバス80’を介して入力データ301を読み出してデータバッファ220に格納する。そしてデータバッファに格納されDMA転送データ302をデータバス80’に出力するとともに、転送先アドレスレジスタに格納された転送先アドレス値をアドレスバス90’に出力し、転送元アドレスのデータを転送先アドレスにDMA転送を行う。
図3は本実施の形態のDMAコントローラを含む情報処理装置(IC)の一例である。
本実施の形態の情報処理装置(IC)400は、CPU420,DMAコントローラ430、周辺装置440、入出力制御部470、480、内部バス410を含む。周辺装置440は例えばGPIO(General Purpos Input/Output)USBC(USBコントローラー)、LANC(ネットワークコントローラー)、HDC(HDDコントローラー)、CFC(CompactFlashコントローラー)等でもよい。 データ保存装置460は、情報処理装置(IC)400の外部に置かれ入出力部410を介して情報処理装置(IC)400と接続されている。
また周辺機器440は入出力装置440を介してHD(ハードディスク)等の外部メモリに接続されているとする。
ここで例えばデータ保存装置460のデータを暗号化して外部メモリ490に書き込む場合には、以下のようにして実現することができる。
CPU420は、DMAコントローラ430にたいし、暗号化モードの指定又は暗号化を行うチャネルの指定を行い、転送元アドレス(メモリ上のアドレス)、転送先のアドレス(HD477のアドレス)、転送サイズ等を指定する。するとDMAC430は、転送元アドレスに基づき読み出すアドレスを生成し、内部バス(アドレスバス)410に出力して、データ保存装置460のデータ内部バス(データバス)410を介してDMAコントローラ430の内部バッファ434に書き込み、暗号化処理部532は内部バッファ434のデータを暗号化する。そしてDMAC430は、転送先アドレスに基づき書き込みアドレスを生成し、内部バス(アドレスバス)410に出力しするとともに、暗号化されたデータを内部バス(データバス)410に出力して、外部のメモリ490に書き込む。
図4は暗号化/復号化回路の構成の一例である。
暗号化回路(復号化回路)は、開始アドレスレジスタ132、セレクタ138、排他的論理和回路134−1〜134−4、136−1〜136−4を含む。
図4の暗号化/復号化回路130は、暗号化または復号化を転送データと暗号化または復号化パラメータとの排他的論理和をとることにより実現しているので、暗号化と復号化の回路構成が同じとなり1つの回路で暗号化と復号化の両方を実現することができる。
開始アドレスレジスタ132は、DMAの設定の時に書き込まれる転送元または転送先アドレスを格納するレジスタである。
暗号化を行う場合(例えば暗号化モードが設定されている場合や暗号化を行うチャネルに割り当てられている場合)にはデータバスを介して入力された転送先アドレスが設定され、復号化を行う場合(例えば復号化モードが設定されている場合や復号化を行うチャネルに割り当てられている場合)にはデータバスを介して入力された転送元アドレスが設定される。
セレクタは開始アドレスレジスタ値及び暗号キーレジスタ150(図1の150と同じ)の値(暗号処理後のデータ7)を入力し、図示しないセレクト信号に基づきいずれかを出力する。すなわち一連のデータの暗号化を行う際の最初の32ビット分については、開始アドレスレジスタ値を出力し、それ以降は暗号処理後のデータ7を出力する。
排他的論理和回路134−1、134−2、134−3、134−4は、それぞれセレクタの出力(31:24)、(23:16)、(15:8)、(7:0)と乱数値8ビット(図1の乱数発生器の出力値)とを入力して排他的論理和をとり、排他的論理和回路136−1、136−2、136−3、136−4に出力する。
排他的論理和回路136−1、136−2、136−3、136−4は、それぞれ排他的論理和回路134−1、134−2、134−3、134−4の出力値とバッファに格納されている転送データ値の出力(31:24)、(23:16)、(15:8)、(7:0)とを入力して排他的論理和をとる。
乱数値は、最小幅を8ビットとする。図4には乱数値データ幅の記述がないが、32ビットの場合は、対応するキーデータに対してビット毎に排他的論理和の演算を行い、8ビットの場合は各バイトの対応するビットに対して排他的論理和の演算を行う。
暗号キーレジスタ150、開始アドレスレジスタ132、セレクタ138、図1の乱数発生器140は、転送先アドレスに基づき一義的に暗号化パラメータを生成する回路として機能し、排他的論理和回路134−1、134−2、134−3、134−4の出力90−1,90−2,90−3,90−4が暗号化パラメータである。
暗号化パラメータ90−1,90−2,90−3,90−4は、転送先アドレスに基づき一義的に生成された暗号化パラメータであり、排他的論理和回路136−1、136−2、136−3、136−4は、転送先アドレスに基づき一義的に生成された暗号化パラメータ90−1,90−2,90−3,90−4と、転送データ2の排他的論理和をとる排他的論理和回路である。
また暗号キーレジスタ150、開始アドレスレジスタ132、セレクタ138、図1の乱数発生器140は、転送元アドレスに基づき一義的に復号化パラメータを生成する回路として機能し、排他的論理和回路134−1、134−2、134−3、134−4の出力90−1,90−2,90−3,90−4が復号化パラメータである。
復号化パラメータ90−1,90−2,90−3,90−4は、転送元アドレスに基づき一義的に生成された暗号化パラメータであり、排他的論理和回路136−1、136−2、136−3、136−4は、転送先アドレスに基づき一義的に生成された暗号化パラメータ90−1,90−2,90−3,90−4と、転送データ2の排他的論理和をとる排他的論理和回路である。
図4の暗号化/復号化回路130は所与のパラメータに基づき転送元アドレスレジスタ値が示すアドレスから読み出した転送データの暗号化と復号化をおこなうことが可能な暗号/復号処理部として機能する。
暗号化/復号化回路130は、バスを介して設定された転送元アドレス又は転送先アドレスのいずれかの値がセットされる開始アドレスレジスタ132と、暗号化又は復号化に用いるパラメータ90−1,90−2,90−3、90−4を、開始アドレスレジスタ132の値に基づき一義的に生成するパラメータ生成回路(150、132、138、140)と、パラメータ生成回路によって生成されたパラメータ90−1,90−2,90−3、90−4と転送データ2の排他的論理和をとる排他的論理和回路136−1、136−2、136−3、136−4を含み、前記制御部(図1の110)は、暗号化を行う際には前記開始アドレスレジスタ132に転送先アドレスの値がセットされるように制御し、復号化を行う際には前記開始アドレスレジスタ132に転送元アドレスの値がセットされるように制御する。
図5は本実施の形態の暗号化方式の一例について説明するための図である。
本実施の形態の暗号化方式として例えば内部同期式ストリーム暗号を使用することができる。これは同じ値で2回排他的論理和を行うと元値に戻るという事を利用したものである。
キーの初期値610は、DMAコントローラーに設定したアドレス(暗号化の場合は転送先アドレス、復号化の場合には転送元アドレス)と乱数から生成する。
その後は暗号処理住みのデータ630と乱数から生成する。
乱数の発生は、あるパラメーターから同じ値が発生するものとする。これをソフトで管理することで復号時に同じ乱数値を発生させ、復号可能となる。
内部同期に対して外部同期式があるが、これは暗号処理部の外部から乱数値を与えるもので、この外部同期式の場合も本発明の範囲内である。この場合にはDMAC外部、もしくはシステム外部から与えるようにしてもよい。
ストリーム転送とは、平文620や暗号文630の系列に依存した形で乱数列を生成させる形のものである。
本実施の形態では32ビット単位で処理をするのでシフトレジスタではなく32ビットの暗号キーレジスタ(図4の131参照)が次の32ビットのデータに更新される形を取っている。
暗号化されたデータ自体が暗号キーレジスタに格納され、次のキーを生成する要素となる。
図6はDMA設定時のフローチャートである。
まず、CPUはDMAコントローラを暗号処理モードに設定する(ステップS10)。具体的には暗号処理を実施するかしないか、暗号/復号の区別を指示するパラメータ(CPON、POU)の設定を行う。
次に乱数コードの設定を行う(ステップS20)。乱数コード(CRNC)を設定する。この乱数コード(CRNC)を変えることで同じアドレスでも異なる初期キーを生成することができる。
転送元アドレス(SADR)の設定を行う(ステップS30)。復号処理を行う場合、暗号/復号処理回路の開始アドレスレジスタに同時に書き込まれる。
次に転送先アドレス(TADR)の設定を行う(ステップS40)。暗号処理を行う場合、暗号/復号化回路のレジスタに同時に書き込まれる。
転送データ数(TDNC)の設定を行う(ステップS50)。
なおDMA設定のパラメーターは以下のとおりである。
CPON;暗号処理モード 1:暗号処理を行う、0:暗号処理を行わない。
POU ;暗号/復号切替え CPON=1 の時に意味を持つ。
1:暗号処理。キーの生成に転送先アドレスを使用する。
0:復号処理。キーの生成に転送元アドレスを使用する。
SADR;転送元アドレス。
TADR;転送先アドレス。
TDNC;データ転送数。
TIFN;終了通知モード
1:割込、0:割込みなし。
CRNC;乱数設定コード。このレジスタは制御部に持つ。
CPON;暗号処理モード1:暗号処理を行0:暗号処理を行わない。
POU ;暗号/復号切替え。 CPON=1 の時に意味を持つ。
1:暗号処理。キーの生成に転送先アドレスを使用する。
図7は、DMA転送時のフローチャートである。
本実施の形態ではDMAコントローラーの設定を行い、起動をかけることで自動的に暗号/復号化処理が行われる。
まず図6に示したようなDMA設定処理を行う(ステップS110)。
次にDMA起動を行う(ステップS120)。
DMA転送が終了したら処理を終了する(ステップS130)。
暗号、復号ともに同じフローとなる。暗号時は送信先アドレスが暗号化回路の入力に、復号時は送信元アドレスが暗号/復号化回路のキー作成の為の入力になる。
乱数コードは、送信先アドレスと対で管理テーブルによりソフトウエアが管理するようにしてもよい。
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
本実施の形態のDMAコントローラ(DMA転送回路)の構成図。 比較例のDMAコントローラの構成図。 本実施の形態のDMAコントローラを含むシステム(情報処理装置)の一例。 暗号化/復号化回路の構成の一例である。 本実施の形態の暗号化方式の一例について説明するための図。 DMA設定時のフローチャートである。 DMA転送時のフローチャートである。
符号の説明
80 データバス、90 アドレスバス、100 DMAコントローラ(DMA転送回路)、110 制御部、120 データバッファ、130 暗号化回路、暗号化回路(復号化回路)は、132 開始アドレスレジスタ、138 セレクタ、134−1〜134−4 排他的論理和回路、136−1〜136−4 排他的論理和回路、140 乱数発生器、150 暗号キーレジスタ、160 転送先アドレスレジスタ、162 転送先アドレス計算回路、170 転送元アドレスレジスタ、172 転送元アドレス計算回路、180 出力データセレクタ、190 出力アドレスセレクタ

Claims (6)

  1. DMA転送を行うためのDMA転送回路であって、
    第1の記憶装置における記憶領域の所定の位置を指定する値である第1のアドレスを保持する転送元アドレスレジスタと、
    第2の記憶装置における記憶領域の所定の位置を指定する値である第2のアドレスを保持する転送先アドレスレジスタと、
    データバッファに格納された第1のデータに対し所与の暗号化パラメータに基づく暗号処理を行い、第2のデータを生成する処理部と、
    DMA転送時に、前記データバッファを介して、前記第1のアドレスから前記第1のデータを読み出す制御及び前記第2のアドレスに前記第2のデータを格納するための転送制御を行う制御部と、を含み、
    前記処理部は、
    前記DMA転送回路が暗号化モードに設定されている場合のDMA転送、又は指定された所定のチャネルにおけるDMA転送において暗号処理を行うことを特徴とするDMA転送回路。
  2. 請求項1において、
    前記処理部は、
    前記所与の暗号化パラメータに基づく暗号処理または所与の復号化パラメータに基づく復号処理を行い、
    前記暗号処理を行うときは、前記第2のアドレスに基づき前記所与の暗号化パラメータを生成し、
    前記復号処理を行う時には、前記第1のアドレスに基づき前記所与の復号化パラメータを生成することを特徴するDMA転送回路。
  3. 請求項1又は2において、
    前記処理部は、
    前記所与の暗号化パラメータ、又は前記所与の復号化パラメータと前記第1のデータとの排他的論理和をとる排他的論理和回路を含むことを特徴とするDMA転送回路。
  4. 請求項1又は2において、
    前記処理部は、
    前記第1のアドレス若しくは前記第2のアドレスが設定される開始アドレスレジスタと、
    前記開始アドレスレジスタの値に基づき暗号化又は複合化に用いる所与のパラメータを生成するパラメータ生成部と、
    前記所与のパラメータと前記第1のデータとの排他的論理和をとる排他的論理和回路と、を含むことを特徴とするDMA転送回路。
  5. 請求項1乃至4のいずれかにおいて、
    前記処理部の行う処理が、前記暗号処理であるか又は前記復号処理であるかを示す値が記憶される動作モードレジスタを含み、
    前記処理部は、
    前記動作モードレジスタの値に基づいて暗号処理又は復号処理を行うことを特徴とするDMA転送回路。
  6. 請求項1乃至のいずれかに記載のDMA転送回路を含むことを特徴とするDMAコントローラ。
JP2005291249A 2005-10-04 2005-10-04 Dma転送回路及びdmaコントローラ Expired - Fee Related JP4671034B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005291249A JP4671034B2 (ja) 2005-10-04 2005-10-04 Dma転送回路及びdmaコントローラ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005291249A JP4671034B2 (ja) 2005-10-04 2005-10-04 Dma転送回路及びdmaコントローラ

Publications (2)

Publication Number Publication Date
JP2007102468A JP2007102468A (ja) 2007-04-19
JP4671034B2 true JP4671034B2 (ja) 2011-04-13

Family

ID=38029355

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005291249A Expired - Fee Related JP4671034B2 (ja) 2005-10-04 2005-10-04 Dma転送回路及びdmaコントローラ

Country Status (1)

Country Link
JP (1) JP4671034B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009223357A (ja) * 2008-03-13 2009-10-01 Omron Corp 機器およびそのパラメータ設定方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06291954A (ja) * 1992-02-13 1994-10-18 Matsushita Graphic Commun Syst Inc 画像処理装置
JP2000152010A (ja) * 1998-08-31 2000-05-30 Ricoh Co Ltd 画像処理装置
JP2005523519A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06291954A (ja) * 1992-02-13 1994-10-18 Matsushita Graphic Commun Syst Inc 画像処理装置
JP2000152010A (ja) * 1998-08-31 2000-05-30 Ricoh Co Ltd 画像処理装置
JP2005523519A (ja) * 2002-04-18 2005-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 要求元マスタidおよびデータ・アドレスを用いて統合システム内でのデータ・アクセスを限定する制御機能

Also Published As

Publication number Publication date
JP2007102468A (ja) 2007-04-19

Similar Documents

Publication Publication Date Title
JP4551802B2 (ja) プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
US10560259B2 (en) Architecture and instruction set for implementing advanced encryption standard (AES)
TWI286689B (en) Cryptographic apparatus for supporting multiple modes
JP2004226969A (ja) 暗号システム及び多様なモードを支援する方法
JP2008085986A (ja) データ変換装置と電子装置とデータ変換方法
TW200903254A (en) Performing AES encryption or decryption in multiple modes with a single instruction
JP4758904B2 (ja) 機密情報処理方法
US7529366B2 (en) Block encoding/decoding method, circuit, and device
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2010252305A (ja) 半導体集積回路及びその制御方法
WO2006118101A1 (ja) 機密情報処理用ホスト機器および機密情報処理方法
JP4671034B2 (ja) Dma転送回路及びdmaコントローラ
JP2007336446A (ja) データ暗号化装置
JP2006330126A (ja) 暗号化処理方法、および復号化処理方法
WO2006115213A1 (ja) 回路更新システム
JP4853026B2 (ja) 情報処理装置及びプログラム
JP2008181375A (ja) 半導体記憶装置
JP2005172866A (ja) 暗号化/復号化システム
JP7063628B2 (ja) 暗号化装置、暗号化方法およびプログラム
JP7032926B2 (ja) 半導体装置及び暗号鍵の制御方法
JP4307232B2 (ja) ディジタル情報管理装置
JP2009075474A (ja) 暗号処理装置
JP2008048268A (ja) データ処理装置およびデータ転送システム
JP2006292958A (ja) 暗号化装置及び復号化装置
JP2006246541A (ja) ディジタル情報管理装置

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080627

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080911

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101129

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees