説明

データ処理装置、およびデータ処理方法

【課題】小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理(または復号化処理)が可能なデータ処理装置を提供する
【解決手段】各入力チャネルごとに設けられた入力バッファ121〜123に、入力されたデータをそれぞれ格納する。演算チャネル制御部130は、入力データセレクタ140を制御して、入力バッファ121〜123に格納されているデータを、時分割して演算回路110に対してブロック単位で入力する。演算回路110は、暗号鍵セレクタ150から与えられた暗号鍵で入力されたデータを暗号化(または復号化)して出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ブロック暗号方式による暗号化や復号化を行うデータ処理装置、およびデータ処理方法に関するものである。
【背景技術】
【0002】
近年、インターネットの普及に代表されるネットワーク化の進展に伴い、様々な情報がデジタル化する中で、情報の漏洩や改竄の防止、およびコンテンツの著作権保護の重要性が高まっている。その対策として暗号化技術は、必要不可欠なものとなっている。
【0003】
暗号化技術としては、ブロック暗号方式であるDES(Data Encryption Standard)やAES(Advanced Encryption Standard)が広く知られている。ブロック暗号方式は、平文をある一定のブロックに分割して、ブロック単位で暗号化または復号化を行うことを特徴としている。
【0004】
これらの暗号方式は暗号文から平文を推測するのは十分に困難であり強固な暗号方式とされるが、同一の暗号鍵と平文で暗号化すると同じ暗号文となるため、平文内の同一パターンによって示される統計的性質により暗号強度が低下することが懸念される。
【0005】
このようなブロック暗号方式の暗号強度を確保する方法として、ISO10116では、ECB(Electric Code Book、電子辞書)モード、CBC(Cipher Block Chaining、暗号ブロック連鎖)モード、CFB(Cipher Feed Back、暗号フィードバック)モード、OFB(Output Feed Back、出力フィードバック)モードの4つの暗号利用モードが標準化されている。
【0006】
ECBモードを除くCBC、CFB、OFBの各モードは、ブロック単位に分割したデータの暗号演算結果、または処理過程で得られる情報をフィードバックして、連鎖的に暗号化を行うことで暗号強度を高めるモードである。
【0007】
このような暗号化や復号化を行うデータ処理装置では、複数チャネル(回線)のストリームデータに対しての演算処理(暗号処理や復号処理)が求められる場合がある。複数チャネルのストリームデータに対して、例えば暗号化を行う装置としては、入力バッファ、演算回路(ブロック単位で暗号化または復号化を行う回路)、出力バッファ(例えばFIFOバッファ)を各チャネルごとに設けて、チャネル上の多重化データをタイムスロットで分けて暗号化するデータ処理装置が知られている(例えば特許文献1を参照)。
【特許文献1】特開平11―88320号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、上記のデータ処理装置では、複数のチャネル上を流れるAVストリームデータなどのリアルタイムデータを暗号化するには、そのリアルタイム性を確保するためにチャネル数分の暗号処理手段を必要とするため、回路規模が増大するという問題を有していた。
【0009】
また、上記のデータ処理装置では、データをタイムスロットで分けて暗号化するために、1タイムスロット分以上の容量をもつ入力バッファを各演算回路ごとに設ける必要があるので、やはり回路規模が増大するという問題を有していた。
【0010】
本発明は、前記の問題に着目してなされたものであり、小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理(または復号化処理)が可能なデータ処理装置を提供することを目的としている。
【課題を解決するための手段】
【0011】
前記の課題を解決するため、請求項1の発明は、
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理装置であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路と、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータを一時的に保存する入力バッファと、
前記演算処理を行う入力チャネルを時分割で選択し、選択した入力チャネルを示すチャネル情報を出力する演算チャネル制御部と、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵セレクタと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に対して出力する入力データセレクタと、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータに対して行われた前記演算処理の結果を一時的に保存する出力バッファと、
前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理結果を出力する出力先セレクタと、
を備えたことを特徴とする。
【0012】
これにより、演算回路が時分割で共用されるので、小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理(または復号化処理)が可能になる。
【0013】
また、請求項2の発明は、
請求項1のデータ処理装置であって、
暗号化を行う演算モード、および復号化を行う演算モードのなかから各入力チャネルごとに予め設定された演算モードを、前記チャネル情報に応じて前記演算回路に通知する演算モードセレクタをさらに備え、
前記演算回路は、前記演算モードセレクタから通知された演算モードに応じた前記演算処理を行うように構成されていることを特徴とする。
【0014】
これにより、異なる演算モードが必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置を提供することができる。
【0015】
また、請求項3の発明は、
請求項1、および請求項2のうちの何れか1項のデータ処理装置であって、
前記演算回路は、前記演算処理を複数種類のブロック単位で行えるように構成されていることを特徴とする。
【0016】
また、請求項4の発明は、
請求項3のデータ処理装置であって、
各入力チャネルごとに予め定められた前記ブロック単位を、前記チャネル情報に応じて前記演算回路に通知するブロック単位セレクタをさらに備え、
前記演算回路は、前記ブロック単位セレクタから通知されたブロック単位に応じ、前記演算処理を行うように構成されていることを特徴とする。
【0017】
これらにより、一つの演算回路で異なるブロック単位の暗号化または復号化を時分割して行うことができるので、異なるブロック単位の暗号化や復号化が必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置とすることができる。
【0018】
また、請求項5の発明は、
請求項1から請求項4のうちの何れか1項のデータ処理装置であって、さらに
各入力チャネルごとに設けられ、前記演算処理結果を一時的に保存する帰還用データバッファと、
前記チャネル情報が示す入力チャネルに対応した帰還用データバッファに保存されている演算処理結果、または与えられた初期値を前記演算回路に対して出力する帰還データセレクタと、
前記チャネル情報に応じた値の前記初期値を前記帰還データセレクタに出力する初期値セレクタとを備え、
前記演算回路は、前記帰還データセレクタの出力、および与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を行うように構成されていることを特徴とする。
【0019】
また、請求項6の発明は、
請求項5のデータ処理装置であって、
前記演算回路は、複数種類の暗号利用モードの機能を有していることを特徴とする。
【0020】
また、請求項7の発明は、
請求項6のデータ処理装置であって、
入力チャネルごとに予め設定された暗号利用モードを、前記チャネル情報に応じて前記演算回路に通知する暗号利用モードセレクタをさらに備え、
前記演算回路は、前記暗号利用モードセレクタから通知された暗号利用モードに応じ、前記演算処理を行うように構成されていることを特徴とする。
【0021】
これらにより、ブロック暗号方式の暗号強度を確保することが可能になる。
【0022】
また、請求項8の発明は、
請求項1のデータ処理装置であって、
前記演算チャネル制御部は、前記ブロック単位分のデータが保存された入力バッファに対応する入力チャネルから順番に、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とする。
【0023】
これにより、入力バッファに前記ブロック単位分のデータが保存された順に暗号化または復号化が行われる。
【0024】
また、請求項9の発明は、
請求項1のデータ処理装置であって、
前記演算チャネル制御部は、入力チャネルごとに任意に設定された優先度に応じ、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とする。
【0025】
これにより、予め入力チャネル事に定められた優先度に応じて、暗号化または復号化が行われる。
【0026】
また、請求項10の発明は、
請求項1のデータ処理装置であって、
前記演算チャネル制御部は、前記入力バッファの保存データ量に基づく優先度に応じ、前記演算処理を行う入力チャネルを選択するように構成されていることを特徴とする。
【0027】
これにより、入力バッファの保存データ量に応じて、暗号化または復号化が行われる。
【0028】
また、請求項11の発明は、
請求項1のデータ処理装置であって、
さらに、前記演算回路における演算クロックの周波数を制御する演算クロック制御部を備えたことを特徴とする。
【0029】
また、請求項12の発明は、
請求項11のデータ処理装置であって、
さらに、前記複数の入力チャネルのうちの有効な入力チャネルの数を検出し、検出したチャネル数に応じて、前記演算回路における演算クロックを選定して、前記演算クロック制御部に通知するチャネル監視部を備え、
前記演算クロック制御部は、前記チャネル監視部の通知に応じ、前記演算回路における演算クロックを切り換えるように構成されていることを特徴とする。
【0030】
これらにより、演算回路で使用される演算クロックを変更できるので、例えば、有効な入力チャネル数や帯域に応じた演算クロックを設定することで演算回路での消費電力を細かく制御することができる。
【0031】
また、請求項13の発明は、
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理方法であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路で、前記演算処理を行う演算ステップと、
各入力チャネルごとに設けられた入力バッファに、対応した入力チャネルから入力されたデータを一時的に保存する入力ステップと、
前記ブロック単位分のデータが前記入力バッファに保存されたのを検出する検出ステップと、
前記検出ステップにおいて、前記ブロック単位分のデータが入力バッファに保存されたのが検出された場合に、前記演算回路に対する演算要求を発行する演算要求発行ステップと、
前記演算要求を演算要求バッファに格納する演算要求格納ステップと、
前記演算要求バッファに格納されている演算要求のなかから1つの演算要求を時分割で選択し、選択した演算要求に対応した入力チャネルを示すチャネル情報を出力する演算チャネル制御ステップと、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵出力ステップと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に出力する入力データ選択ステップと、
各入力チャネルごとに設けられた出力バッファのなかから、前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理の結果を出力する出力ステップと、
終了した演算処理と対応した演算要求を前記演算要求バッファから削除する演算要求削除ステップと、
を有することを特徴とする。
【0032】
これにより、演算回路が時分割で共用される。したがって、小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理(または復号化処理)が可能なデータ処理装置を構成することが可能になる。
【発明の効果】
【0033】
本発明によれば、より小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理(または復号化処理)ができる。
【発明を実施するための最良の形態】
【0034】
以下、本発明の実施形態について図面を参照しながら説明する。
【0035】
《発明の実施形態1》
図1は、本発明の実施形態1に係るデータ処理装置100の構成を示すブロック図である。データ処理装置100は、図1に示すように、演算回路110、入力バッファ121〜123、演算チャネル制御部130、入力データセレクタ140、暗号鍵セレクタ150、出力バッファ161〜163、および出力先セレクタ170を備えて構成されている。
【0036】
演算回路110は、与えられた暗号鍵を用いて、入力されたデータに対して暗号化(または復号化)の演算をブロック単位で行い、演算結果を出力するようになっている。
【0037】
入力バッファ121〜123は、各チャネルごとに設けられ、(チャネル1〜チャネルn)、対応するチャネルから入力された入力データ(チャネル1入力データ〜チャネルn入力データ)を保持するようになっている。入力バッファ121〜123は、演算回路110における暗号化(または復号化)のブロック単位分のデータを保持できるだけの容量を有している。また、入力バッファ121〜123は、前記ブロック単位分のデータを保持した際には、暗号化(または復号化)の要求を演算要求(S31〜S33)として、演算チャネル制御部130に出力するようになっている。
【0038】
演算チャネル制御部130は、図2に示すように、演算要求FIFO131を備えて構成され、演算要求(S31〜S33)に応じ、入力データを処理すべきチャネルを選択し、選択したチャネル番号をチャネル情報S1として出力するようになっている。より詳しくは、演算チャネル制御部130は、演算要求(S31〜S33)を検出した場合には、検出した順番で演算要求FIFO131に演算要求を格納する。そして、演算チャネル制御部130は、所定の時間間隔で(すなわち時分割で)、演算要求FIFO131に格納されている最も古い演算要求を発行したチャネルを選択し、選択したチャネル番号をチャネル情報S1として出力する。
【0039】
入力データセレクタ140は、演算チャネル制御部130が出力したチャネル情報S1が示すチャネルに対応した入力バッファ(入力バッファ121〜123のうちの何れか)に保持されている入力データを演算回路110に出力するようになっている。
【0040】
暗号鍵セレクタ150は、演算チャネル制御部130が出力したチャネル情報S1に応じ、チャネルごとに予め設定された暗号鍵(チャネル1暗号鍵〜チャネルn暗号鍵)から該当するチャネルの暗号鍵を選択して演算回路110に出力するようになっている。
【0041】
出力バッファ161〜163は、各チャネルごとに設けられ、対応するチャネルの入力データが暗号化(または復号化)された結果(演算結果)を保持するようになっている。
【0042】
出力先セレクタ170は、チャネル情報S1が示すチャネルに対応した出力バッファ(出力バッファ161〜163のうちの何れか)を選択して、演算回路110による演算結果を出力するようになっている。
【0043】
上記のデータ処理装置100について、図3に示すフローチャートを用いて、動作を説明する。
【0044】
複数のチャネル(チャネル1〜チャネルn)から入力データ(チャネル1入力データ〜チャネルn入力データ)が入力されると、それぞれの入力データは、チャネルごとに対応して準備された入力バッファ121〜123に逐次保存される(ST101)。
【0045】
入力バッファ121〜123は、前記ブロック単位分のデータが保存されたかどうかを判定し(ST102)、前記ブロック単位分のデータが保存された場合には、演算要求(S31〜S33の何れか)を演算チャネル制御部130に発行する(ST103)。
【0046】
演算チャネル制御部130は、演算要求(S31〜S33の何れか)を検出すると、検出した順番で演算要求FIFO131に演算要求を格納する(ST104)。また、演算チャネル制御部130は、演算要求FIFO131をチェックして(ST105)、演算要求FIFO131に演算要求が格納されていれば、格納されている最も古い演算要求を発行したチャネルのチャネル番号をチャネル情報S1として出力する(ST106)。
【0047】
暗号鍵セレクタ150は、チャネル情報S1に応じ、チャネル1暗号鍵〜チャネルn暗号鍵のなかから該当するチャネルの暗号鍵を選択して演算回路110に出力する。また、入力データセレクタ140は、チャネル情報S1に応じ、該当するチャネルに対応した入力バッファ(入力バッファ121〜123のうちの何れか)の入力データを選択して演算回路110に出力する(ST107)。
【0048】
演算回路110は、暗号鍵セレクタ150から入力された暗号鍵を使って、入力データセレクタ140を介して入力された入力データに対して、ブロック暗号方式の暗号化演算(または復号化演算)を行い、演算結果を出力先セレクタ170に出力する(ST108)。
【0049】
出力先セレクタ170は、チャネル情報S1に応じて、該当するチャネルの出力バッファ(出力バッファ161〜163のうちの何れか)に前記演算結果を出力する(ST109)。
【0050】
前記演算が終了すると、演算チャネル制御部130は、演算を終了したチャネルに対応した演算要求(最も古い演算要求)を演算要求FIFO131から削除(ST110)し、ST105に処理を移行する。
【0051】
上記のようにデータ処理装置100は、暗号化演算(または復号化演算)のブロック単位でチャネルを切り換えて暗号処理(または復号処理)を行うので、各チャネル間で演算回路を共用することができる。すなわち、より小さな回路規模で複数チャネルからの入力データを暗号処理(または復号処理)できる。
【0052】
また、各チャネルにおける演算の処理単位が前記ブロック単位なので、入力バッファは、タイムスロットなどの入力データのデータ長に依存しないバッファ容量とすることができる。すなわち、入力バッファの規模を小さくすることができる。
【0053】
なお、演算回路110は、暗号化演算の機能、および復号化演算機能の両方の機能を有していてもよいし、何れか一方の機能のみを有していてもよい。例えば、演算回路110が暗号化演算の機能のみ有する場合は、複数チャネルのデータを暗号処理可能なデータ処理装置として機能し、この場合は、復号化演算機能に必要な回路分を削減できる。また、演算回路110が復号化演算機能のみ有する場合は、複数チャネルのデータを復号処理可能なデータ処理装置として機能し、この場合は、暗号化演算機能に必要な回路分を削減できる。
【0054】
《発明の実施形態2》
図4は、本発明の実施形態2に係るデータ処理装置200の構成を示すブロック図である。データ処理装置200は、図4に示すように、データ処理装置100に対して演算モードセレクタ220が追加されるとともに、演算回路110に代えて演算回路210を備えて構成されている。
【0055】
なお、以下に説明する各実施形態や変形例において、前記実施形態1等と同様の機能を有する構成要素については、同一の符号を付して説明を省略する。
【0056】
演算回路210は、暗号化演算機能と復号化演算機能を有した演算回路であり、演算モード(暗号化演算を行うモードと復号化演算を行うモード)が演算モードセレクタ220の出力した演算モード信号S2(後述)に応じて、切り換わるようになっている。演算回路210における、演算(暗号化演算または復号化演算)は、暗号鍵セレクタ150を介して与えられた暗号鍵を用いて行われ、暗号化演算または復号化演算の単位は、ブロック単位である。
【0057】
演算モードセレクタ220は、演算チャネル制御部130からのチャネル情報S1に応じ、チャネルごとに予め設定された演算モード(チャネル1演算モード〜チャネルn演算モード)から該当するチャネルの演算モードを選択し、演算モード信号S2として演算回路210に出力するようになっている。
【0058】
上記のデータ処理装置200では、一つの演算回路210で暗号化演算処理(または復号化演算処理)を時分割して行うことができるので、異なる演算モードが必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置を提供することができる。
【0059】
《発明の実施形態3》
図5は、本発明の実施形態3に係るデータ処理装置300の構成を示すブロック図である。データ処理装置300は、図5に示すように、実施形態1のデータ処理装置100に対してブロック単位セレクタ320が追加されるとともに、演算回路110に代えて演算回路310を備えて構成されている。
【0060】
演算回路310は、複数種類のブロック単位(暗号鍵長)で、暗号化演算または復号化演算が可能な演算回路である。演算のブロック単位は、ブロック単位セレクタ320が出力したブロック単位信号S3(後述)で切り換えるようになっている。ブロック単位は、ブロック暗号方式によって規定されている。例えばAESでは、128ビット、192ビット、256ビットのブロック単位が仕様として存在する。
【0061】
ブロック単位セレクタ320は、演算チャネル制御部130が出力したチャネル情報S1に従って、チャネルごとに予め設定されたブロック単位(チャネル1ブロック単位〜チャネルnブロック単位)から該当するチャネルのブロック単位を選択し、ブロック単位信号S3として演算回路310に出力するようになっている。
【0062】
上記のデータ処理装置300では、一つの演算回路310で異なるブロック単位の暗号化演算処理または復号化演算処理を時分割して行うことができるので、異なるブロック単位の暗号化や復号化が必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置とすることができる。
【0063】
《発明の実施形態4》
図6は、本発明の実施形態4に係るデータ処理装置400の構成を示すブロック図である。データ処理装置400は、図6に示すように、データ処理装置100における演算回路110に代えて演算回路410、また演算チャネル制御部130に代えて演算チャネル制御部420を備え、さらに、初期値セレクタ430、帰還用データバッファ441〜443、出力先セレクタ450、および帰還データセレクタ460が追加されて構成されている。
【0064】
演算回路410は、ブロック単位の暗号化または復号化が既に行われた場合には、暗号化(または復号化)の結果、または暗号化や復号化の処理過程で得られる情報が帰還され、暗号化または復号化がまだ行われていない場合には、所定の初期値が帰還され、帰還データと与えられた暗号鍵とを用いて、入力データを暗号化または復号化するようになっている。
【0065】
図7は、例えばブロック暗号方式のCBCモードの暗号化演算処理に対応した演算回路として、演算回路410を構成した例を示している。この例において、演算回路410は、図7に示すように、排他的論理和回路411と演算アルゴリズム部412とを備えて構成されている。
【0066】
排他的論理和回路411は、前記帰還データと入力データとの排他的論理和を求めて、演算アルゴリズム部412に出力するようになっている。
【0067】
演算アルゴリズム部412は、例えばDESやAESなどのブロック暗号方式のアルゴリズムに従って暗号化演算を行う回路部であり、暗号鍵セレクタ150から入力された暗号鍵を用いて、排他的論理和回路411の出力を暗号化して出力するようになっている。
【0068】
また、図8は、例えばCBCモードの復号化演算処理に対応した演算回路として演算回路410を構成した例を示している。この例において、演算回路410は、図8に示すように、演算アルゴリズム部413と排他的論理和回路414とを備えて構成されている。
【0069】
演算アルゴリズム部413は、暗号鍵セレクタ150を介して入力された暗号鍵を用いて、入力データセレクタ140を介して入力された入力データを復号化して出力するようになっている。
【0070】
排他的論理和回路414は、演算アルゴリズム部413の出力と、前記帰還データとの排他的論理和を求めて出力するようになっている。
【0071】
上記のように、ブロック暗号方式の暗号利用モードは、演算アルゴリズム部に排他的論理和回路やセレクタなどの簡単な回路を組み合わせることで実現できる。そのため、一つの演算回路内に複数の暗号利用モードの機能を有することも可能である。
【0072】
演算チャネル制御部420は、入力データを処理すべきチャネルを選択し、選択したチャネル番号をチャネル情報S1として出力するとともに、該当チャネルのデータが連鎖的な暗号化処理または復号処理の先頭のデータであれば、IVイネーブル信号S4を有効にして、帰還データセレクタ460に出力するようになっている。
【0073】
初期値セレクタ430は、チャネル情報S1に応じ、チャネルごとに予め設定されたIV(Initial Vector、初期値)を選択して、帰還データセレクタ460に出力するようになっている。
【0074】
帰還用データバッファ441〜443は、各チャネルごとに設けられ、対応するチャネルの暗号化(または復号化)の結果、または暗号化や復号化の処理過程で得られる情報を保持するようになっている。
【0075】
出力先セレクタ450は、チャネル情報S1が示すチャネルに対応した出力バッファ(出力バッファ161〜163のうちの何れか)に、演算回路410での処理結果を出力するようになっている。さらに出力先セレクタ450は、処理中のチャネルにおける次の演算(暗号化演算または復号化演算)のためにフィードバックするデータを、チャネル情報S1が示すチャネルに対応した帰還用データバッファ(帰還用データバッファ441〜443のうちの何れか)に保存する。
【0076】
帰還データセレクタ460は、IVイネーブル信号S4が有効であれば、初期値セレクタ430が出力したIVを選択して前記帰還データとして演算回路410に出力し、IVイネーブル信号S4が有効でなければ、チャネル情報S1に応じ、帰還用データバッファ441〜443から該当するチャネルの帰還用データを選択して前記帰還データとして演算回路410に出力するようになっている。
【0077】
上記のように構成されたデータ処理装置400では、まず、一連のストリームデータ(暗号化処理を行う場合には平文、復号化処理を行う場合には暗号文)の先頭データが入力される。入力バッファ121〜123に、暗号化演算のブロック単位分のデータが保存されると、入力バッファ121〜123は、それぞれ演算要求(S31〜S33)を演算チャネル制御部420に発行する。
【0078】
演算チャネル制御部420は、入力バッファ121〜123のうちの何れかからの演算要求を検出すると、演算要求のあったチャネルの中から暗号化演算するチャネルを選択してチャネル情報S1を出力する。さらに演算チャネル制御部420は、該当チャネルのデータが連鎖的な暗号処理における先頭であることを検出すると、IVイネーブル信号S4を有効にして帰還データセレクタ460に出力する。初期値セレクタ430は、チャネル情報S1に応じ、該当チャネルのIVを選択して帰還データセレクタ460に出力する。帰還データセレクタ460は、IVイネーブル信号S4が有効であることを検出すると、初期値セレクタ430から入力されたIVを選択して、帰還データとして演算回路410に出力する。
【0079】
演算回路410は、帰還データセレクタ460を介して入力された帰還データ(この場合はIV)と、暗号鍵セレクタ150から入力された暗号鍵とを用いて、入力データセレクタ140から入力された入力データに対して、暗号化演算処理、または復号化演算処理を行う。
【0080】
例えば、図7に示すように構成された演算回路410で暗号化演算処理を行う場合には、具体的には、入力データと帰還データとの排他的論理和を排他的論理和回路411で求め、排他的論理和回路411の出力に対して、演算アルゴリズム部412で暗号化演算を行い出力先セレクタ450に出力する。
【0081】
また、例えば、図8に示すように構成された演算回路410で復号化演算処理を行う場合には、暗号鍵を用いて入力データに対して、演算アルゴリズム部413で復号化演算を行い、演算アルゴリズム部413の出力と帰還データとの排他的論理和を排他的論理和回路414で求めて復号化結果として出力先セレクタ450に出力する。
【0082】
演算回路410での演算が終了すると、出力先セレクタ450は、チャネル情報S1が示すチャネルに対応した出力バッファ(出力バッファ161〜163のうちの何れか)に演算回路410での処理結果を保存するとともに、処理中のチャネルにおける次の演算(暗号化演算または復号化演算)のためにフィードバックするデータを、チャネル情報S1が示すチャネルに対応した帰還用データバッファ(帰還用データバッファ441〜443のうちの何れか)に保存する。
【0083】
その後、同じチャネルに、次のブロック単位分のデータが入力されると、演算チャネル制御部420は、チャネル情報S1を出力する。また、演算チャネル制御部420は、該当チャネルのデータが連鎖的な暗号処理の先頭ではないので、IVイネーブル信号S4を無効にして帰還データセレクタ460に出力する。
【0084】
帰還データセレクタ460はIVイネーブル信号S4が無効なので、チャネル情報S1に応じて、処理中のチャネル対応した帰還用データバッファに格納されている帰還用データを選択して、前記帰還データとして演算回路410に出力する。
【0085】
再び演算回路410は、帰還データセレクタ460を介して入力された帰還データ(この場合は、処理中のチャネル対応した帰還用データバッファに格納されている帰還用データ)と、暗号鍵セレクタ150から入力された暗号鍵とを用いて、入力データセレクタ140から入力された入力データに対して演算処理(暗号化演算処理、または復号化演算処理)を行う。以降は、一連のストリームデータの最後まで、上記の処理が繰り返し行われることで、CBCモードの暗号化処理または復号化処理が実現される。
【0086】
以上のように、実施形態4に係るデータ処理装置400によれば、より小さな回路規模で、複数チャネルからの入力データに対して、連鎖的に暗号化や復号化を行って暗号強度を高めることの可能な装置を実現できる。
【0087】
《発明の実施形態5》
図9は、本発明の実施形態5に係るデータ処理装置500の構成を示すブロック図である。データ処理装置500は、データ処理装置400の演算回路410に代えて演算回路510を備え、さらに暗号利用モードセレクタ520が追加されて構成されている。
【0088】
演算回路510は、複数の暗号利用モードの機能を有した演算回路であり、入力された暗号利用モード信号S5(後述)に応じて、演算処理に使用する暗号利用モードを切り換えるようになっている。
【0089】
暗号利用モードセレクタ520は、各チャネル(チャネル1〜チャネルn)ごとに予め設定された暗号利用モードを示す情報(チャネル1暗号利用モード〜チャネルn暗号利用モード)が入力され、演算チャネル制御部420が出力したチャネル情報S1に応じて、処理中のチャネルに対応した暗号利用モードを選択し、暗号利用モード信号S5として演算回路510に出力するようになっている。
【0090】
上記のデータ処理装置500では、一つの演算回路で異なる暗号利用モードの暗号処理または復号処理を時分割して行うことができるので、それぞれの暗号利用モードが異なる複数のチャネルを収容可能できる多機能なデータ処理装置を小回路規模で実現することができる。
【0091】
《発明の実施形態6》
図10は、本発明の実施形態6に係るデータ処理装置600の構成を示すブロック図である。データ処理装置600は、データ処理装置100に対して演算クロック設定レジスタ610と演算クロック制御部630とが追加され、さらに演算回路110に代えて演算回路620が設けられて構成されている。
【0092】
演算クロック設定レジスタ610は、演算回路620が暗号処理または復号処理に使用するクロック信号(演算クロック)の周波数が設定されるレジスタであり、設定されたクロック周波数に応じたクロック情報S6を演算クロック制御部630に出力するようになっている。演算クロック設定レジスタ610には、演算回路620に要求される処理能力(例えば有効なチャネル数と各チャネルの帯域から導き出される処理能力)を満足するクロック周波数を設定する。なお、クロック周波数の設定は、演算クロック設定レジスタ610に予め用意された、複数のクロック周波数設定候補の中から選択して行うようにしてもよい。
【0093】
演算回路620は、入力された制御信号に応じた周波数の前記演算クロックを用いて、暗号処理または復号処理を行うようになっている。
【0094】
演算クロック制御部630は、クロック情報S6に応じて、所定周波数のクロック信号を演算回路620に対して入力するようになっている。
【0095】
上記の構成によれば、一つの演算回路で複数チャネルの暗号処理または復号処理を行えるとともに、有効なチャネル数および帯域に応じた演算クロックを設定することで演算回路での消費電力を細かく制御することができる。
【0096】
《発明の実施形態7》
図11は、本発明の実施形態7に係るデータ処理装置700の構成を示すブロック図である。データ処理装置700は、データ処理装置600の演算クロック設定レジスタ610に代えてチャネル監視部710を備えて構成されている。
【0097】
チャネル監視部710は、収容可能な複数チャネルのうち有効なチャネルを検出し、有効なチャネル数と各チャネルの帯域から演算回路620に要求されるクロック周波数を計算し、そのクロック周波数に応じたクロック情報S6を演算クロック制御部630に出力するようになっている。
【0098】
上記の構成によれば、一つの演算回路で複数チャネルの暗号処理または復号処理を行えるとともに、有効なチャネル数および帯域に応じ、自動的に演算クロックを切り換えることができる。すなわち、演算回路での消費電力を細かく制御することができる。
【0099】
《演算チャネル制御部の変形例》
上記の各実施形態における演算チャネル制御部は、各チャネルごとに予め設定された優先度に応じて、演算処理の順序を決定するように構成してもよい。図12は、演算チャネル制御部810の構成を示すブロック図であり、演算チャネル制御部810は、演算要求FIFO131と優先制御部811とを備えて構成されている。
【0100】
優先制御部811は、演算要求S31〜S33のうちの何れかを検出すると、検出した演算要求を、チャネルごとに予め設定された優先度に応じて、演算要求FIFO131に格納するようになっている。詳しくは、優先制御部811にはチャネルごとに予め設定された優先度を示す情報(チャネル1優先度〜チャネルn優先度)が入力され、入力された情報に基づいて、演算要求のあったチャネルの優先度を選択し、演算要求FIFO131に演算要求のあったチャネルよりも優先度の低いチャネルの演算要求があれば、その前に要求を割り込ませるようになっている。
【0101】
上記の構成によれば、例えば、帯域が広いチャネルの優先度は上げ、帯域が狭いチャネルの優先度は下げるなどすることで、異なる帯域のデータを扱う複数のチャネルを収容可能なデータ処理装置とすることができる。
【0102】
《演算チャネル制御部のその他の変形例》
また、上記の各実施形態における演算チャネル制御部は、入力バッファの保存データ量に応じて、演算処理の順序を決定するように構成してもよい。図13は、演算チャネル制御部920の構成を示すブロック図である。演算チャネル制御部920は、演算要求FIFO131と優先制御部921とを備えて構成されている。また、この場合は、図13に示すように入力バッファ121〜123に代えて入力バッファ911〜913を用いる。
【0103】
入力バッファ911〜913は、前記の演算要求S31〜S33を出力するとともに、それぞれの保存データ量を示す信号(保存データ量信号S34〜S36)を演算チャネル制御部920内の優先制御部921に出力するようになっている。
【0104】
優先制御部921は、演算要求S31〜S33のうちの何れかを検出すると、保存データ量信号S34〜S36によって、入力バッファ911〜913の保存データ量を確認し、保存データ量が所定の設定値を超えている場合は、当該チャネルの優先度を上げて、演算要求FIFO131に当該チャネルより優先度の低い要求があればその前に要求を割り込ませるようになっている。
【0105】
上記の構成によれば、入力バッファの保存データ量に応じて、自動的に演算処理の優先度を調整するようにできるので、入力バッファのオーバーフローを防ぐことができる。
【産業上の利用可能性】
【0106】
本発明に係るデータ処理装置は、より小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理(または復号化処理)ができるという効果を有し、ブロック暗号方式による暗号化や復号化を行うデータ処理装置等として有用である。
【図面の簡単な説明】
【0107】
【図1】実施形態1に係るデータ処理装置の構成を示すブロック図である。
【図2】実施形態1に係る演算チャネル制御部の構成を示すブロック図である。
【図3】実施形態1に係るデータ処理装置の動作を示すフローチャートである。
【図4】実施形態2に係るデータ処理装置の構成を示すブロック図である。
【図5】実施形態3に係るデータ処理装置の構成を示すブロック図である。
【図6】実施形態4に係るデータ処理装置の構成を示すブロック図である。
【図7】演算回路をCBCモードの暗号化演算処理に対応するように構成したデータ処理装置の構成を示すブロック図である。
【図8】演算回路をCBCモードの復号化演算処理に対応するように構成したデータ処理装置の構成を示すブロック図である。
【図9】実施形態5に係るデータ処理装置の構成を示すブロック図である。
【図10】実施形態6に係るデータ処理装置の構成を示すブロック図である。
【図11】実施形態7に係るデータ処理装置の構成を示すブロック図である。
【図12】演算チャネル制御部の変形例を示すブロック図である。
【図13】演算チャネル制御部のその他の変形例を示すブロック図である。
【符号の説明】
【0108】
100 データ処理装置
110 演算回路
121〜123 入力バッファ
130 演算チャネル制御部
131 演算要求FIFO
140 入力データセレクタ
150 暗号鍵セレクタ
161〜163 出力バッファ
170 出力先セレクタ
200 データ処理装置
210 演算回路
220 演算モードセレクタ
300 データ処理装置
310 演算回路
320 ブロック単位セレクタ
400 データ処理装置
410 演算回路
411 排他的論理和回路
412 演算アルゴリズム部
413 演算アルゴリズム部
414 排他的論理和回路
420 演算チャネル制御部
430 初期値セレクタ
441〜443 帰還用データバッファ
450 出力先セレクタ
460 帰還データセレクタ
500 データ処理装置
510 演算回路
520 暗号利用モードセレクタ
600 データ処理装置
610 演算クロック設定レジスタ
620 演算回路
630 演算クロック制御部
700 データ処理装置
710 チャネル監視部
810 演算チャネル制御部
811 優先制御部
911〜913 入力バッファ
920 演算チャネル制御部
921 優先制御部

【特許請求の範囲】
【請求項1】
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理装置であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路と、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータを一時的に保存する入力バッファと、
前記演算処理を行う入力チャネルを時分割で選択し、選択した入力チャネルを示すチャネル情報を出力する演算チャネル制御部と、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵セレクタと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に対して出力する入力データセレクタと、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータに対して行われた前記演算処理の結果を一時的に保存する出力バッファと、
前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理結果を出力する出力先セレクタと、
を備えたことを特徴とするデータ処理装置。
【請求項2】
請求項1のデータ処理装置であって、
暗号化を行う演算モード、および復号化を行う演算モードのなかから各入力チャネルごとに予め設定された演算モードを、前記チャネル情報に応じて前記演算回路に通知する演算モードセレクタをさらに備え、
前記演算回路は、前記演算モードセレクタから通知された演算モードに応じた前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項3】
請求項1、および請求項2のうちの何れか1項のデータ処理装置であって、
前記演算回路は、前記演算処理を複数種類のブロック単位で行えるように構成されていることを特徴とするデータ処理装置。
【請求項4】
請求項3のデータ処理装置であって、
各入力チャネルごとに予め定められた前記ブロック単位を、前記チャネル情報に応じて前記演算回路に通知するブロック単位セレクタをさらに備え、
前記演算回路は、前記ブロック単位セレクタから通知されたブロック単位に応じ、前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項5】
請求項1から請求項4のうちの何れか1項のデータ処理装置であって、さらに
各入力チャネルごとに設けられ、前記演算処理結果を一時的に保存する帰還用データバッファと、
前記チャネル情報が示す入力チャネルに対応した帰還用データバッファに保存されている演算処理結果、または与えられた初期値を前記演算回路に対して出力する帰還データセレクタと、
前記チャネル情報に応じた値の前記初期値を前記帰還データセレクタに出力する初期値セレクタとを備え、
前記演算回路は、前記帰還データセレクタの出力、および与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項6】
請求項5のデータ処理装置であって、
前記演算回路は、複数種類の暗号利用モードの機能を有していることを特徴とするデータ処理装置。
【請求項7】
請求項6のデータ処理装置であって、
入力チャネルごとに予め設定された暗号利用モードを、前記チャネル情報に応じて前記演算回路に通知する暗号利用モードセレクタをさらに備え、
前記演算回路は、前記暗号利用モードセレクタから通知された暗号利用モードに応じ、前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項8】
請求項1のデータ処理装置であって、
前記演算チャネル制御部は、前記ブロック単位分のデータが保存された入力バッファに対応する入力チャネルから順番に、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とするデータ処理装置。
【請求項9】
請求項1のデータ処理装置であって、
前記演算チャネル制御部は、入力チャネルごとに任意に設定された優先度に応じ、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とするデータ処理装置。
【請求項10】
請求項1のデータ処理装置であって、
前記演算チャネル制御部は、前記入力バッファの保存データ量に基づく優先度に応じ、前記演算処理を行う入力チャネルを選択するように構成されていることを特徴とするデータ処理装置。
【請求項11】
請求項1のデータ処理装置であって、
さらに、前記演算回路における演算クロックの周波数を制御する演算クロック制御部を備えたことを特徴とするデータ処理装置。
【請求項12】
請求項11のデータ処理装置であって、
さらに、前記複数の入力チャネルのうちの有効な入力チャネルの数を検出し、検出したチャネル数に応じて、前記演算回路における演算クロックを選定して、前記演算クロック制御部に通知するチャネル監視部を備え、
前記演算クロック制御部は、前記チャネル監視部の通知に応じ、前記演算回路における演算クロックを切り換えるように構成されていることを特徴とするデータ処理装置。
【請求項13】
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理方法であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路で、前記演算処理を行う演算ステップと、
各入力チャネルごとに設けられた入力バッファに、対応した入力チャネルから入力されたデータを一時的に保存する入力ステップと、
前記ブロック単位分のデータが前記入力バッファに保存されたのを検出する検出ステップと、
前記検出ステップにおいて、前記ブロック単位分のデータが入力バッファに保存されたのが検出された場合に、前記演算回路に対する演算要求を発行する演算要求発行ステップと、
前記演算要求を演算要求バッファに格納する演算要求格納ステップと、
前記演算要求バッファに格納されている演算要求のなかから1つの演算要求を時分割で選択し、選択した演算要求に対応した入力チャネルを示すチャネル情報を出力する演算チャネル制御ステップと、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵出力ステップと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に出力する入力データ選択ステップと、
各入力チャネルごとに設けられた出力バッファのなかから、前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理の結果を出力する出力ステップと、
終了した演算処理と対応した演算要求を前記演算要求バッファから削除する演算要求削除ステップと、
を有することを特徴とするデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate