(57)【要約】【課題】小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理（または復号化処理）が可能なデータ処理装置を提供する【解決手段】各入力チャネルごとに設けられた入力バッファ１２１〜１２３に、入力されたデータをそれぞれ格納する。演算チャネル制御部１３０は、入力データセレクタ１４０を制御して、入力バッファ１２１〜１２３に格納されているデータを、時分割して演算回路１１０に対してブロック単位で入力する。演算回路１１０は、暗号鍵セレクタ１５０から与えられた暗号鍵で入力されたデータを暗号化（または復号化）して出力する。【選択図】図１
2007114404.tif 000002
【特許請求の範囲】
【請求項１】
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理装置であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路と、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータを一時的に保存する入力バッファと、
前記演算処理を行う入力チャネルを時分割で選択し、選択した入力チャネルを示すチャネル情報を出力する演算チャネル制御部と、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵セレクタと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に対して出力する入力データセレクタと、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータに対して行われた前記演算処理の結果を一時的に保存する出力バッファと、
前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理結果を出力する出力先セレクタと、
を備えたことを特徴とするデータ処理装置。
【請求項２】
請求項１のデータ処理装置であって、
暗号化を行う演算モード、および復号化を行う演算モードのなかから各入力チャネルごとに予め設定された演算モードを、前記チャネル情報に応じて前記演算回路に通知する演算モードセレクタをさらに備え、
前記演算回路は、前記演算モードセレクタから通知された演算モードに応じた前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項３】
請求項１、および請求項２のうちの何れか１項のデータ処理装置であって、
前記演算回路は、前記演算処理を複数種類のブロック単位で行えるように構成されていることを特徴とするデータ処理装置。
【請求項４】
請求項３のデータ処理装置であって、
各入力チャネルごとに予め定められた前記ブロック単位を、前記チャネル情報に応じて前記演算回路に通知するブロック単位セレクタをさらに備え、
前記演算回路は、前記ブロック単位セレクタから通知されたブロック単位に応じ、前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項５】
請求項１から請求項４のうちの何れか１項のデータ処理装置であって、さらに
各入力チャネルごとに設けられ、前記演算処理結果を一時的に保存する帰還用データバッファと、
前記チャネル情報が示す入力チャネルに対応した帰還用データバッファに保存されている演算処理結果、または与えられた初期値を前記演算回路に対して出力する帰還データセレクタと、
前記チャネル情報に応じた値の前記初期値を前記帰還データセレクタに出力する初期値セレクタとを備え、
前記演算回路は、前記帰還データセレクタの出力、および与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項６】
請求項５のデータ処理装置であって、
前記演算回路は、複数種類の暗号利用モードの機能を有していることを特徴とするデータ処理装置。
【請求項７】
請求項６のデータ処理装置であって、
入力チャネルごとに予め設定された暗号利用モードを、前記チャネル情報に応じて前記演算回路に通知する暗号利用モードセレクタをさらに備え、
前記演算回路は、前記暗号利用モードセレクタから通知された暗号利用モードに応じ、前記演算処理を行うように構成されていることを特徴とするデータ処理装置。
【請求項８】
請求項１のデータ処理装置であって、
前記演算チャネル制御部は、前記ブロック単位分のデータが保存された入力バッファに対応する入力チャネルから順番に、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とするデータ処理装置。
【請求項９】
請求項１のデータ処理装置であって、
前記演算チャネル制御部は、入力チャネルごとに任意に設定された優先度に応じ、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とするデータ処理装置。
【請求項１０】
請求項１のデータ処理装置であって、
前記演算チャネル制御部は、前記入力バッファの保存データ量に基づく優先度に応じ、前記演算処理を行う入力チャネルを選択するように構成されていることを特徴とするデータ処理装置。
【請求項１１】
請求項１のデータ処理装置であって、
さらに、前記演算回路における演算クロックの周波数を制御する演算クロック制御部を備えたことを特徴とするデータ処理装置。
【請求項１２】
請求項１１のデータ処理装置であって、
さらに、前記複数の入力チャネルのうちの有効な入力チャネルの数を検出し、検出したチャネル数に応じて、前記演算回路における演算クロックを選定して、前記演算クロック制御部に通知するチャネル監視部を備え、
前記演算クロック制御部は、前記チャネル監視部の通知に応じ、前記演算回路における演算クロックを切り換えるように構成されていることを特徴とするデータ処理装置。
【請求項１３】
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理方法であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路で、前記演算処理を行う演算ステップと、
各入力チャネルごとに設けられた入力バッファに、対応した入力チャネルから入力されたデータを一時的に保存する入力ステップと、
前記ブロック単位分のデータが前記入力バッファに保存されたのを検出する検出ステップと、
前記検出ステップにおいて、前記ブロック単位分のデータが入力バッファに保存されたのが検出された場合に、前記演算回路に対する演算要求を発行する演算要求発行ステップと、
前記演算要求を演算要求バッファに格納する演算要求格納ステップと、
前記演算要求バッファに格納されている演算要求のなかから１つの演算要求を時分割で選択し、選択した演算要求に対応した入力チャネルを示すチャネル情報を出力する演算チャネル制御ステップと、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵出力ステップと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に出力する入力データ選択ステップと、
各入力チャネルごとに設けられた出力バッファのなかから、前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理の結果を出力する出力ステップと、
終了した演算処理と対応した演算要求を前記演算要求バッファから削除する演算要求削除ステップと、
を有することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック暗号方式による暗号化や復号化を行うデータ処理装置、およびデータ処理方法に関するものである。
【背景技術】
【０００２】
近年、インターネットの普及に代表されるネットワーク化の進展に伴い、様々な情報がデジタル化する中で、情報の漏洩や改竄の防止、およびコンテンツの著作権保護の重要性が高まっている。その対策として暗号化技術は、必要不可欠なものとなっている。
【０００３】
暗号化技術としては、ブロック暗号方式であるＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）やＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）が広く知られている。ブロック暗号方式は、平文をある一定のブロックに分割して、ブロック単位で暗号化または復号化を行うことを特徴としている。
【０００４】
これらの暗号方式は暗号文から平文を推測するのは十分に困難であり強固な暗号方式とされるが、同一の暗号鍵と平文で暗号化すると同じ暗号文となるため、平文内の同一パターンによって示される統計的性質により暗号強度が低下することが懸念される。
【０００５】
このようなブロック暗号方式の暗号強度を確保する方法として、ＩＳＯ１０１１６では、ＥＣＢ（Ｅｌｅｃｔｒｉｃ  Ｃｏｄｅ  Ｂｏｏｋ、電子辞書）モード、ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ、暗号ブロック連鎖）モード、ＣＦＢ（Ｃｉｐｈｅｒ  Ｆｅｅｄ  Ｂａｃｋ、暗号フィードバック）モード、ＯＦＢ（Ｏｕｔｐｕｔ  Ｆｅｅｄ  Ｂａｃｋ、出力フィードバック）モードの４つの暗号利用モードが標準化されている。
【０００６】
ＥＣＢモードを除くＣＢＣ、ＣＦＢ、ＯＦＢの各モードは、ブロック単位に分割したデータの暗号演算結果、または処理過程で得られる情報をフィードバックして、連鎖的に暗号化を行うことで暗号強度を高めるモードである。
【０００７】
このような暗号化や復号化を行うデータ処理装置では、複数チャネル（回線）のストリームデータに対しての演算処理（暗号処理や復号処理）が求められる場合がある。複数チャネルのストリームデータに対して、例えば暗号化を行う装置としては、入力バッファ、演算回路（ブロック単位で暗号化または復号化を行う回路）、出力バッファ（例えばＦＩＦＯバッファ）を各チャネルごとに設けて、チャネル上の多重化データをタイムスロットで分けて暗号化するデータ処理装置が知られている（例えば特許文献１を参照）。
【特許文献１】特開平１１―８８３２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記のデータ処理装置では、複数のチャネル上を流れるＡＶストリームデータなどのリアルタイムデータを暗号化するには、そのリアルタイム性を確保するためにチャネル数分の暗号処理手段を必要とするため、回路規模が増大するという問題を有していた。
【０００９】
また、上記のデータ処理装置では、データをタイムスロットで分けて暗号化するために、１タイムスロット分以上の容量をもつ入力バッファを各演算回路ごとに設ける必要があるので、やはり回路規模が増大するという問題を有していた。
【００１０】
本発明は、前記の問題に着目してなされたものであり、小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理（または復号化処理）が可能なデータ処理装置を提供することを目的としている。
【課題を解決するための手段】
【００１１】
前記の課題を解決するため、請求項１の発明は、
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理装置であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路と、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータを一時的に保存する入力バッファと、
前記演算処理を行う入力チャネルを時分割で選択し、選択した入力チャネルを示すチャネル情報を出力する演算チャネル制御部と、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵セレクタと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に対して出力する入力データセレクタと、
各入力チャネルごとに設けられ、対応した入力チャネルから入力されたデータに対して行われた前記演算処理の結果を一時的に保存する出力バッファと、
前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理結果を出力する出力先セレクタと、
を備えたことを特徴とする。
【００１２】
これにより、演算回路が時分割で共用されるので、小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理（または復号化処理）が可能になる。
【００１３】
また、請求項２の発明は、
請求項１のデータ処理装置であって、
暗号化を行う演算モード、および復号化を行う演算モードのなかから各入力チャネルごとに予め設定された演算モードを、前記チャネル情報に応じて前記演算回路に通知する演算モードセレクタをさらに備え、
前記演算回路は、前記演算モードセレクタから通知された演算モードに応じた前記演算処理を行うように構成されていることを特徴とする。
【００１４】
これにより、異なる演算モードが必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置を提供することができる。
【００１５】
また、請求項３の発明は、
請求項１、および請求項２のうちの何れか１項のデータ処理装置であって、
前記演算回路は、前記演算処理を複数種類のブロック単位で行えるように構成されていることを特徴とする。
【００１６】
また、請求項４の発明は、
請求項３のデータ処理装置であって、
各入力チャネルごとに予め定められた前記ブロック単位を、前記チャネル情報に応じて前記演算回路に通知するブロック単位セレクタをさらに備え、
前記演算回路は、前記ブロック単位セレクタから通知されたブロック単位に応じ、前記演算処理を行うように構成されていることを特徴とする。
【００１７】
これらにより、一つの演算回路で異なるブロック単位の暗号化または復号化を時分割して行うことができるので、異なるブロック単位の暗号化や復号化が必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置とすることができる。
【００１８】
また、請求項５の発明は、
請求項１から請求項４のうちの何れか１項のデータ処理装置であって、さらに
各入力チャネルごとに設けられ、前記演算処理結果を一時的に保存する帰還用データバッファと、
前記チャネル情報が示す入力チャネルに対応した帰還用データバッファに保存されている演算処理結果、または与えられた初期値を前記演算回路に対して出力する帰還データセレクタと、
前記チャネル情報に応じた値の前記初期値を前記帰還データセレクタに出力する初期値セレクタとを備え、
前記演算回路は、前記帰還データセレクタの出力、および与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を行うように構成されていることを特徴とする。
【００１９】
また、請求項６の発明は、
請求項５のデータ処理装置であって、
前記演算回路は、複数種類の暗号利用モードの機能を有していることを特徴とする。
【００２０】
また、請求項７の発明は、
請求項６のデータ処理装置であって、
入力チャネルごとに予め設定された暗号利用モードを、前記チャネル情報に応じて前記演算回路に通知する暗号利用モードセレクタをさらに備え、
前記演算回路は、前記暗号利用モードセレクタから通知された暗号利用モードに応じ、前記演算処理を行うように構成されていることを特徴とする。
【００２１】
これらにより、ブロック暗号方式の暗号強度を確保することが可能になる。
【００２２】
また、請求項８の発明は、
請求項１のデータ処理装置であって、
前記演算チャネル制御部は、前記ブロック単位分のデータが保存された入力バッファに対応する入力チャネルから順番に、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とする。
【００２３】
これにより、入力バッファに前記ブロック単位分のデータが保存された順に暗号化または復号化が行われる。
【００２４】
また、請求項９の発明は、
請求項１のデータ処理装置であって、
前記演算チャネル制御部は、入力チャネルごとに任意に設定された優先度に応じ、前記演算処理を行う入力チャネルとして選択するように構成されていることを特徴とする。
【００２５】
これにより、予め入力チャネル事に定められた優先度に応じて、暗号化または復号化が行われる。
【００２６】
また、請求項１０の発明は、
請求項１のデータ処理装置であって、
前記演算チャネル制御部は、前記入力バッファの保存データ量に基づく優先度に応じ、前記演算処理を行う入力チャネルを選択するように構成されていることを特徴とする。
【００２７】
これにより、入力バッファの保存データ量に応じて、暗号化または復号化が行われる。
【００２８】
また、請求項１１の発明は、
請求項１のデータ処理装置であって、
さらに、前記演算回路における演算クロックの周波数を制御する演算クロック制御部を備えたことを特徴とする。
【００２９】
また、請求項１２の発明は、
請求項１１のデータ処理装置であって、
さらに、前記複数の入力チャネルのうちの有効な入力チャネルの数を検出し、検出したチャネル数に応じて、前記演算回路における演算クロックを選定して、前記演算クロック制御部に通知するチャネル監視部を備え、
前記演算クロック制御部は、前記チャネル監視部の通知に応じ、前記演算回路における演算クロックを切り換えるように構成されていることを特徴とする。
【００３０】
これらにより、演算回路で使用される演算クロックを変更できるので、例えば、有効な入力チャネル数や帯域に応じた演算クロックを設定することで演算回路での消費電力を細かく制御することができる。
【００３１】
また、請求項１３の発明は、
複数の入力チャネルから入力されたそれぞれのデータに対して、暗号化および復号化のうちの少なくとも一方の演算処理を行うデータ処理方法であって、
与えられた暗号鍵を用いて、与えられたデータに対して、前記演算処理を所定サイズのブロック単位で行う演算回路で、前記演算処理を行う演算ステップと、
各入力チャネルごとに設けられた入力バッファに、対応した入力チャネルから入力されたデータを一時的に保存する入力ステップと、
前記ブロック単位分のデータが前記入力バッファに保存されたのを検出する検出ステップと、
前記検出ステップにおいて、前記ブロック単位分のデータが入力バッファに保存されたのが検出された場合に、前記演算回路に対する演算要求を発行する演算要求発行ステップと、
前記演算要求を演算要求バッファに格納する演算要求格納ステップと、
前記演算要求バッファに格納されている演算要求のなかから１つの演算要求を時分割で選択し、選択した演算要求に対応した入力チャネルを示すチャネル情報を出力する演算チャネル制御ステップと、
前記チャネル情報に応じた暗号鍵を前記演算回路に出力する暗号鍵出力ステップと、
前記チャネル情報が示す入力チャネルに対応した入力バッファを選択するとともに、選択した入力バッファに保存されているデータを前記演算回路に出力する入力データ選択ステップと、
各入力チャネルごとに設けられた出力バッファのなかから、前記チャネル情報が示す入力チャネルに対応した出力バッファを選択するとともに、選択した出力バッファに対して前記演算処理の結果を出力する出力ステップと、
終了した演算処理と対応した演算要求を前記演算要求バッファから削除する演算要求削除ステップと、
を有することを特徴とする。
【００３２】
これにより、演算回路が時分割で共用される。したがって、小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理（または復号化処理）が可能なデータ処理装置を構成することが可能になる。
【発明の効果】
【００３３】
本発明によれば、より小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理（または復号化処理）ができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施形態について図面を参照しながら説明する。
【００３５】
《発明の実施形態１》
図１は、本発明の実施形態１に係るデータ処理装置１００の構成を示すブロック図である。データ処理装置１００は、図１に示すように、演算回路１１０、入力バッファ１２１〜１２３、演算チャネル制御部１３０、入力データセレクタ１４０、暗号鍵セレクタ１５０、出力バッファ１６１〜１６３、および出力先セレクタ１７０を備えて構成されている。
【００３６】
演算回路１１０は、与えられた暗号鍵を用いて、入力されたデータに対して暗号化（または復号化）の演算をブロック単位で行い、演算結果を出力するようになっている。
【００３７】
入力バッファ１２１〜１２３は、各チャネルごとに設けられ、（チャネル１〜チャネルｎ）、対応するチャネルから入力された入力データ（チャネル１入力データ〜チャネルｎ入力データ）を保持するようになっている。入力バッファ１２１〜１２３は、演算回路１１０における暗号化（または復号化）のブロック単位分のデータを保持できるだけの容量を有している。また、入力バッファ１２１〜１２３は、前記ブロック単位分のデータを保持した際には、暗号化（または復号化）の要求を演算要求（Ｓ３１〜Ｓ３３）として、演算チャネル制御部１３０に出力するようになっている。
【００３８】
演算チャネル制御部１３０は、図２に示すように、演算要求ＦＩＦＯ１３１を備えて構成され、演算要求（Ｓ３１〜Ｓ３３）に応じ、入力データを処理すべきチャネルを選択し、選択したチャネル番号をチャネル情報Ｓ１として出力するようになっている。より詳しくは、演算チャネル制御部１３０は、演算要求（Ｓ３１〜Ｓ３３）を検出した場合には、検出した順番で演算要求ＦＩＦＯ１３１に演算要求を格納する。そして、演算チャネル制御部１３０は、所定の時間間隔で（すなわち時分割で）、演算要求ＦＩＦＯ１３１に格納されている最も古い演算要求を発行したチャネルを選択し、選択したチャネル番号をチャネル情報Ｓ１として出力する。
【００３９】
入力データセレクタ１４０は、演算チャネル制御部１３０が出力したチャネル情報Ｓ１が示すチャネルに対応した入力バッファ（入力バッファ１２１〜１２３のうちの何れか）に保持されている入力データを演算回路１１０に出力するようになっている。
【００４０】
暗号鍵セレクタ１５０は、演算チャネル制御部１３０が出力したチャネル情報Ｓ１に応じ、チャネルごとに予め設定された暗号鍵（チャネル１暗号鍵〜チャネルｎ暗号鍵）から該当するチャネルの暗号鍵を選択して演算回路１１０に出力するようになっている。
【００４１】
出力バッファ１６１〜１６３は、各チャネルごとに設けられ、対応するチャネルの入力データが暗号化（または復号化）された結果（演算結果）を保持するようになっている。
【００４２】
出力先セレクタ１７０は、チャネル情報Ｓ１が示すチャネルに対応した出力バッファ（出力バッファ１６１〜１６３のうちの何れか）を選択して、演算回路１１０による演算結果を出力するようになっている。
【００４３】
上記のデータ処理装置１００について、図３に示すフローチャートを用いて、動作を説明する。
【００４４】
複数のチャネル（チャネル１〜チャネルｎ）から入力データ（チャネル１入力データ〜チャネルｎ入力データ）が入力されると、それぞれの入力データは、チャネルごとに対応して準備された入力バッファ１２１〜１２３に逐次保存される（ＳＴ１０１）。
【００４５】
入力バッファ１２１〜１２３は、前記ブロック単位分のデータが保存されたかどうかを判定し（ＳＴ１０２）、前記ブロック単位分のデータが保存された場合には、演算要求（Ｓ３１〜Ｓ３３の何れか）を演算チャネル制御部１３０に発行する（ＳＴ１０３）。
【００４６】
演算チャネル制御部１３０は、演算要求（Ｓ３１〜Ｓ３３の何れか）を検出すると、検出した順番で演算要求ＦＩＦＯ１３１に演算要求を格納する（ＳＴ１０４）。また、演算チャネル制御部１３０は、演算要求ＦＩＦＯ１３１をチェックして（ＳＴ１０５）、演算要求ＦＩＦＯ１３１に演算要求が格納されていれば、格納されている最も古い演算要求を発行したチャネルのチャネル番号をチャネル情報Ｓ１として出力する（ＳＴ１０６）。
【００４７】
暗号鍵セレクタ１５０は、チャネル情報Ｓ１に応じ、チャネル１暗号鍵〜チャネルｎ暗号鍵のなかから該当するチャネルの暗号鍵を選択して演算回路１１０に出力する。また、入力データセレクタ１４０は、チャネル情報Ｓ１に応じ、該当するチャネルに対応した入力バッファ（入力バッファ１２１〜１２３のうちの何れか）の入力データを選択して演算回路１１０に出力する（ＳＴ１０７）。
【００４８】
演算回路１１０は、暗号鍵セレクタ１５０から入力された暗号鍵を使って、入力データセレクタ１４０を介して入力された入力データに対して、ブロック暗号方式の暗号化演算（または復号化演算）を行い、演算結果を出力先セレクタ１７０に出力する（ＳＴ１０８）。
【００４９】
出力先セレクタ１７０は、チャネル情報Ｓ１に応じて、該当するチャネルの出力バッファ（出力バッファ１６１〜１６３のうちの何れか）に前記演算結果を出力する（ＳＴ１０９）。
【００５０】
前記演算が終了すると、演算チャネル制御部１３０は、演算を終了したチャネルに対応した演算要求（最も古い演算要求）を演算要求ＦＩＦＯ１３１から削除（ＳＴ１１０）し、ＳＴ１０５に処理を移行する。
【００５１】
上記のようにデータ処理装置１００は、暗号化演算（または復号化演算）のブロック単位でチャネルを切り換えて暗号処理（または復号処理）を行うので、各チャネル間で演算回路を共用することができる。すなわち、より小さな回路規模で複数チャネルからの入力データを暗号処理（または復号処理）できる。
【００５２】
また、各チャネルにおける演算の処理単位が前記ブロック単位なので、入力バッファは、タイムスロットなどの入力データのデータ長に依存しないバッファ容量とすることができる。すなわち、入力バッファの規模を小さくすることができる。
【００５３】
なお、演算回路１１０は、暗号化演算の機能、および復号化演算機能の両方の機能を有していてもよいし、何れか一方の機能のみを有していてもよい。例えば、演算回路１１０が暗号化演算の機能のみ有する場合は、複数チャネルのデータを暗号処理可能なデータ処理装置として機能し、この場合は、復号化演算機能に必要な回路分を削減できる。また、演算回路１１０が復号化演算機能のみ有する場合は、複数チャネルのデータを復号処理可能なデータ処理装置として機能し、この場合は、暗号化演算機能に必要な回路分を削減できる。
【００５４】
《発明の実施形態２》
図４は、本発明の実施形態２に係るデータ処理装置２００の構成を示すブロック図である。データ処理装置２００は、図４に示すように、データ処理装置１００に対して演算モードセレクタ２２０が追加されるとともに、演算回路１１０に代えて演算回路２１０を備えて構成されている。
【００５５】
なお、以下に説明する各実施形態や変形例において、前記実施形態１等と同様の機能を有する構成要素については、同一の符号を付して説明を省略する。
【００５６】
演算回路２１０は、暗号化演算機能と復号化演算機能を有した演算回路であり、演算モード（暗号化演算を行うモードと復号化演算を行うモード）が演算モードセレクタ２２０の出力した演算モード信号Ｓ２（後述）に応じて、切り換わるようになっている。演算回路２１０における、演算（暗号化演算または復号化演算）は、暗号鍵セレクタ１５０を介して与えられた暗号鍵を用いて行われ、暗号化演算または復号化演算の単位は、ブロック単位である。
【００５７】
演算モードセレクタ２２０は、演算チャネル制御部１３０からのチャネル情報Ｓ１に応じ、チャネルごとに予め設定された演算モード（チャネル１演算モード〜チャネルｎ演算モード）から該当するチャネルの演算モードを選択し、演算モード信号Ｓ２として演算回路２１０に出力するようになっている。
【００５８】
上記のデータ処理装置２００では、一つの演算回路２１０で暗号化演算処理（または復号化演算処理）を時分割して行うことができるので、異なる演算モードが必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置を提供することができる。
【００５９】
《発明の実施形態３》
図５は、本発明の実施形態３に係るデータ処理装置３００の構成を示すブロック図である。データ処理装置３００は、図５に示すように、実施形態1のデータ処理装置1００に対してブロック単位セレクタ３２０が追加されるとともに、演算回路１１０に代えて演算回路３１０を備えて構成されている。
【００６０】
演算回路３１０は、複数種類のブロック単位（暗号鍵長）で、暗号化演算または復号化演算が可能な演算回路である。演算のブロック単位は、ブロック単位セレクタ３２０が出力したブロック単位信号Ｓ３（後述）で切り換えるようになっている。ブロック単位は、ブロック暗号方式によって規定されている。例えばＡＥＳでは、１２８ビット、１９２ビット、２５６ビットのブロック単位が仕様として存在する。
【００６１】
ブロック単位セレクタ３２０は、演算チャネル制御部１３０が出力したチャネル情報Ｓ１に従って、チャネルごとに予め設定されたブロック単位（チャネル１ブロック単位〜チャネルｎブロック単位）から該当するチャネルのブロック単位を選択し、ブロック単位信号Ｓ３として演算回路３１０に出力するようになっている。
【００６２】
上記のデータ処理装置３００では、一つの演算回路３１０で異なるブロック単位の暗号化演算処理または復号化演算処理を時分割して行うことができるので、異なるブロック単位の暗号化や復号化が必要な複数のチャネルを収容可能、かつ小回路規模で多機能なデータ処理装置とすることができる。
【００６３】
《発明の実施形態４》
図６は、本発明の実施形態４に係るデータ処理装置４００の構成を示すブロック図である。データ処理装置４００は、図６に示すように、データ処理装置１００における演算回路１１０に代えて演算回路４１０、また演算チャネル制御部１３０に代えて演算チャネル制御部４２０を備え、さらに、初期値セレクタ４３０、帰還用データバッファ４４１〜４４３、出力先セレクタ４５０、および帰還データセレクタ４６０が追加されて構成されている。
【００６４】
演算回路４１０は、ブロック単位の暗号化または復号化が既に行われた場合には、暗号化（または復号化）の結果、または暗号化や復号化の処理過程で得られる情報が帰還され、暗号化または復号化がまだ行われていない場合には、所定の初期値が帰還され、帰還データと与えられた暗号鍵とを用いて、入力データを暗号化または復号化するようになっている。
【００６５】
図７は、例えばブロック暗号方式のＣＢＣモードの暗号化演算処理に対応した演算回路として、演算回路４１０を構成した例を示している。この例において、演算回路４１０は、図７に示すように、排他的論理和回路４１１と演算アルゴリズム部４１２とを備えて構成されている。
【００６６】
排他的論理和回路４１１は、前記帰還データと入力データとの排他的論理和を求めて、演算アルゴリズム部４１２に出力するようになっている。
【００６７】
演算アルゴリズム部４１２は、例えばＤＥＳやＡＥＳなどのブロック暗号方式のアルゴリズムに従って暗号化演算を行う回路部であり、暗号鍵セレクタ１５０から入力された暗号鍵を用いて、排他的論理和回路４１１の出力を暗号化して出力するようになっている。
【００６８】
また、図８は、例えばＣＢＣモードの復号化演算処理に対応した演算回路として演算回路４１０を構成した例を示している。この例において、演算回路４１０は、図８に示すように、演算アルゴリズム部４１３と排他的論理和回路４１４とを備えて構成されている。
【００６９】
演算アルゴリズム部４１３は、暗号鍵セレクタ１５０を介して入力された暗号鍵を用いて、入力データセレクタ１４０を介して入力された入力データを復号化して出力するようになっている。
【００７０】
排他的論理和回路４１４は、演算アルゴリズム部４１３の出力と、前記帰還データとの排他的論理和を求めて出力するようになっている。
【００７１】
上記のように、ブロック暗号方式の暗号利用モードは、演算アルゴリズム部に排他的論理和回路やセレクタなどの簡単な回路を組み合わせることで実現できる。そのため、一つの演算回路内に複数の暗号利用モードの機能を有することも可能である。
【００７２】
演算チャネル制御部４２０は、入力データを処理すべきチャネルを選択し、選択したチャネル番号をチャネル情報Ｓ１として出力するとともに、該当チャネルのデータが連鎖的な暗号化処理または復号処理の先頭のデータであれば、ＩＶイネーブル信号Ｓ４を有効にして、帰還データセレクタ４６０に出力するようになっている。
【００７３】
初期値セレクタ４３０は、チャネル情報Ｓ１に応じ、チャネルごとに予め設定されたＩＶ（Ｉｎｉｔｉａｌ  Ｖｅｃｔｏｒ、初期値）を選択して、帰還データセレクタ４６０に出力するようになっている。
【００７４】
帰還用データバッファ４４１〜４４３は、各チャネルごとに設けられ、対応するチャネルの暗号化（または復号化）の結果、または暗号化や復号化の処理過程で得られる情報を保持するようになっている。
【００７５】
出力先セレクタ４５０は、チャネル情報Ｓ１が示すチャネルに対応した出力バッファ（出力バッファ１６１〜１６３のうちの何れか）に、演算回路４１０での処理結果を出力するようになっている。さらに出力先セレクタ４５０は、処理中のチャネルにおける次の演算（暗号化演算または復号化演算）のためにフィードバックするデータを、チャネル情報Ｓ１が示すチャネルに対応した帰還用データバッファ（帰還用データバッファ４４１〜４４３のうちの何れか）に保存する。
【００７６】
帰還データセレクタ４６０は、ＩＶイネーブル信号Ｓ４が有効であれば、初期値セレクタ４３０が出力したＩＶを選択して前記帰還データとして演算回路４１０に出力し、ＩＶイネーブル信号Ｓ４が有効でなければ、チャネル情報Ｓ１に応じ、帰還用データバッファ４４１〜４４３から該当するチャネルの帰還用データを選択して前記帰還データとして演算回路４１０に出力するようになっている。
【００７７】
上記のように構成されたデータ処理装置４００では、まず、一連のストリームデータ（暗号化処理を行う場合には平文、復号化処理を行う場合には暗号文）の先頭データが入力される。入力バッファ１２１〜１２３に、暗号化演算のブロック単位分のデータが保存されると、入力バッファ１２１〜１２３は、それぞれ演算要求（Ｓ３１〜Ｓ３３）を演算チャネル制御部４２０に発行する。
【００７８】
演算チャネル制御部４２０は、入力バッファ１２１〜１２３のうちの何れかからの演算要求を検出すると、演算要求のあったチャネルの中から暗号化演算するチャネルを選択してチャネル情報Ｓ１を出力する。さらに演算チャネル制御部４２０は、該当チャネルのデータが連鎖的な暗号処理における先頭であることを検出すると、ＩＶイネーブル信号Ｓ４を有効にして帰還データセレクタ４６０に出力する。初期値セレクタ４３０は、チャネル情報Ｓ１に応じ、該当チャネルのＩＶを選択して帰還データセレクタ４６０に出力する。帰還データセレクタ４６０は、ＩＶイネーブル信号Ｓ４が有効であることを検出すると、初期値セレクタ４３０から入力されたＩＶを選択して、帰還データとして演算回路４１０に出力する。
【００７９】
演算回路４１０は、帰還データセレクタ４６０を介して入力された帰還データ（この場合はＩＶ）と、暗号鍵セレクタ１５０から入力された暗号鍵とを用いて、入力データセレクタ１４０から入力された入力データに対して、暗号化演算処理、または復号化演算処理を行う。
【００８０】
例えば、図７に示すように構成された演算回路４１０で暗号化演算処理を行う場合には、具体的には、入力データと帰還データとの排他的論理和を排他的論理和回路４１１で求め、排他的論理和回路４１１の出力に対して、演算アルゴリズム部４１２で暗号化演算を行い出力先セレクタ４５０に出力する。
【００８１】
また、例えば、図８に示すように構成された演算回路４１０で復号化演算処理を行う場合には、暗号鍵を用いて入力データに対して、演算アルゴリズム部４１３で復号化演算を行い、演算アルゴリズム部４１３の出力と帰還データとの排他的論理和を排他的論理和回路４１４で求めて復号化結果として出力先セレクタ４５０に出力する。
【００８２】
演算回路４１０での演算が終了すると、出力先セレクタ４５０は、チャネル情報Ｓ１が示すチャネルに対応した出力バッファ（出力バッファ１６１〜１６３のうちの何れか）に演算回路４１０での処理結果を保存するとともに、処理中のチャネルにおける次の演算（暗号化演算または復号化演算）のためにフィードバックするデータを、チャネル情報Ｓ１が示すチャネルに対応した帰還用データバッファ（帰還用データバッファ４４１〜４４３のうちの何れか）に保存する。
【００８３】
その後、同じチャネルに、次のブロック単位分のデータが入力されると、演算チャネル制御部４２０は、チャネル情報Ｓ１を出力する。また、演算チャネル制御部４２０は、該当チャネルのデータが連鎖的な暗号処理の先頭ではないので、ＩＶイネーブル信号Ｓ４を無効にして帰還データセレクタ４６０に出力する。
【００８４】
帰還データセレクタ４６０はＩＶイネーブル信号Ｓ４が無効なので、チャネル情報Ｓ１に応じて、処理中のチャネル対応した帰還用データバッファに格納されている帰還用データを選択して、前記帰還データとして演算回路４１０に出力する。
【００８５】
再び演算回路４１０は、帰還データセレクタ４６０を介して入力された帰還データ（この場合は、処理中のチャネル対応した帰還用データバッファに格納されている帰還用データ）と、暗号鍵セレクタ１５０から入力された暗号鍵とを用いて、入力データセレクタ１４０から入力された入力データに対して演算処理（暗号化演算処理、または復号化演算処理）を行う。以降は、一連のストリームデータの最後まで、上記の処理が繰り返し行われることで、ＣＢＣモードの暗号化処理または復号化処理が実現される。
【００８６】
以上のように、実施形態４に係るデータ処理装置４００によれば、より小さな回路規模で、複数チャネルからの入力データに対して、連鎖的に暗号化や復号化を行って暗号強度を高めることの可能な装置を実現できる。
【００８７】
《発明の実施形態５》
図９は、本発明の実施形態５に係るデータ処理装置５００の構成を示すブロック図である。データ処理装置５００は、データ処理装置４００の演算回路４１０に代えて演算回路５１０を備え、さらに暗号利用モードセレクタ５２０が追加されて構成されている。
【００８８】
演算回路５１０は、複数の暗号利用モードの機能を有した演算回路であり、入力された暗号利用モード信号Ｓ５（後述）に応じて、演算処理に使用する暗号利用モードを切り換えるようになっている。
【００８９】
暗号利用モードセレクタ５２０は、各チャネル（チャネル１〜チャネルｎ）ごとに予め設定された暗号利用モードを示す情報（チャネル１暗号利用モード〜チャネルｎ暗号利用モード）が入力され、演算チャネル制御部４２０が出力したチャネル情報Ｓ１に応じて、処理中のチャネルに対応した暗号利用モードを選択し、暗号利用モード信号Ｓ５として演算回路５１０に出力するようになっている。
【００９０】
上記のデータ処理装置５００では、一つの演算回路で異なる暗号利用モードの暗号処理または復号処理を時分割して行うことができるので、それぞれの暗号利用モードが異なる複数のチャネルを収容可能できる多機能なデータ処理装置を小回路規模で実現することができる。
【００９１】
《発明の実施形態６》
図１０は、本発明の実施形態６に係るデータ処理装置６００の構成を示すブロック図である。データ処理装置６００は、データ処理装置１００に対して演算クロック設定レジスタ６１０と演算クロック制御部６３０とが追加され、さらに演算回路１１０に代えて演算回路６２０が設けられて構成されている。
【００９２】
演算クロック設定レジスタ６１０は、演算回路６２０が暗号処理または復号処理に使用するクロック信号（演算クロック）の周波数が設定されるレジスタであり、設定されたクロック周波数に応じたクロック情報Ｓ６を演算クロック制御部６３０に出力するようになっている。演算クロック設定レジスタ６１０には、演算回路６２０に要求される処理能力（例えば有効なチャネル数と各チャネルの帯域から導き出される処理能力）を満足するクロック周波数を設定する。なお、クロック周波数の設定は、演算クロック設定レジスタ６１０に予め用意された、複数のクロック周波数設定候補の中から選択して行うようにしてもよい。
【００９３】
演算回路６２０は、入力された制御信号に応じた周波数の前記演算クロックを用いて、暗号処理または復号処理を行うようになっている。
【００９４】
演算クロック制御部６３０は、クロック情報Ｓ６に応じて、所定周波数のクロック信号を演算回路６２０に対して入力するようになっている。
【００９５】
上記の構成によれば、一つの演算回路で複数チャネルの暗号処理または復号処理を行えるとともに、有効なチャネル数および帯域に応じた演算クロックを設定することで演算回路での消費電力を細かく制御することができる。
【００９６】
《発明の実施形態７》
図１１は、本発明の実施形態７に係るデータ処理装置７００の構成を示すブロック図である。データ処理装置７００は、データ処理装置６００の演算クロック設定レジスタ６１０に代えてチャネル監視部７１０を備えて構成されている。
【００９７】
チャネル監視部７１０は、収容可能な複数チャネルのうち有効なチャネルを検出し、有効なチャネル数と各チャネルの帯域から演算回路６２０に要求されるクロック周波数を計算し、そのクロック周波数に応じたクロック情報Ｓ６を演算クロック制御部６３０に出力するようになっている。
【００９８】
上記の構成によれば、一つの演算回路で複数チャネルの暗号処理または復号処理を行えるとともに、有効なチャネル数および帯域に応じ、自動的に演算クロックを切り換えることができる。すなわち、演算回路での消費電力を細かく制御することができる。
【００９９】
《演算チャネル制御部の変形例》
上記の各実施形態における演算チャネル制御部は、各チャネルごとに予め設定された優先度に応じて、演算処理の順序を決定するように構成してもよい。図１２は、演算チャネル制御部８１０の構成を示すブロック図であり、演算チャネル制御部８１０は、演算要求ＦＩＦＯ１３１と優先制御部８１１とを備えて構成されている。
【０１００】
優先制御部８１１は、演算要求Ｓ３１〜Ｓ３３のうちの何れかを検出すると、検出した演算要求を、チャネルごとに予め設定された優先度に応じて、演算要求ＦＩＦＯ１３１に格納するようになっている。詳しくは、優先制御部８１１にはチャネルごとに予め設定された優先度を示す情報（チャネル１優先度〜チャネルｎ優先度）が入力され、入力された情報に基づいて、演算要求のあったチャネルの優先度を選択し、演算要求ＦＩＦＯ１３１に演算要求のあったチャネルよりも優先度の低いチャネルの演算要求があれば、その前に要求を割り込ませるようになっている。
【０１０１】
上記の構成によれば、例えば、帯域が広いチャネルの優先度は上げ、帯域が狭いチャネルの優先度は下げるなどすることで、異なる帯域のデータを扱う複数のチャネルを収容可能なデータ処理装置とすることができる。
【０１０２】
《演算チャネル制御部のその他の変形例》
また、上記の各実施形態における演算チャネル制御部は、入力バッファの保存データ量に応じて、演算処理の順序を決定するように構成してもよい。図１３は、演算チャネル制御部９２０の構成を示すブロック図である。演算チャネル制御部９２０は、演算要求ＦＩＦＯ１３１と優先制御部９２１とを備えて構成されている。また、この場合は、図１３に示すように入力バッファ１２１〜１２３に代えて入力バッファ９１１〜９１３を用いる。
【０１０３】
入力バッファ９１１〜９１３は、前記の演算要求Ｓ３１〜Ｓ３３を出力するとともに、それぞれの保存データ量を示す信号（保存データ量信号Ｓ３４〜Ｓ３６）を演算チャネル制御部９２０内の優先制御部９２１に出力するようになっている。
【０１０４】
優先制御部９２１は、演算要求Ｓ３１〜Ｓ３３のうちの何れかを検出すると、保存データ量信号Ｓ３４〜Ｓ３６によって、入力バッファ９１１〜９１３の保存データ量を確認し、保存データ量が所定の設定値を超えている場合は、当該チャネルの優先度を上げて、演算要求ＦＩＦＯ１３１に当該チャネルより優先度の低い要求があればその前に要求を割り込ませるようになっている。
【０１０５】
上記の構成によれば、入力バッファの保存データ量に応じて、自動的に演算処理の優先度を調整するようにできるので、入力バッファのオーバーフローを防ぐことができる。
【産業上の利用可能性】
【０１０６】
本発明に係るデータ処理装置は、より小さな回路規模で、複数チャネルのリアルタイムデータの暗号化処理（または復号化処理）ができるという効果を有し、ブロック暗号方式による暗号化や復号化を行うデータ処理装置等として有用である。
【図面の簡単な説明】
【０１０７】
【図１】実施形態１に係るデータ処理装置の構成を示すブロック図である。
【図２】実施形態１に係る演算チャネル制御部の構成を示すブロック図である。
【図３】実施形態１に係るデータ処理装置の動作を示すフローチャートである。
【図４】実施形態２に係るデータ処理装置の構成を示すブロック図である。
【図５】実施形態３に係るデータ処理装置の構成を示すブロック図である。
【図６】実施形態４に係るデータ処理装置の構成を示すブロック図である。
【図７】演算回路をＣＢＣモードの暗号化演算処理に対応するように構成したデータ処理装置の構成を示すブロック図である。
【図８】演算回路をＣＢＣモードの復号化演算処理に対応するように構成したデータ処理装置の構成を示すブロック図である。
【図９】実施形態５に係るデータ処理装置の構成を示すブロック図である。
【図１０】実施形態６に係るデータ処理装置の構成を示すブロック図である。
【図１１】実施形態７に係るデータ処理装置の構成を示すブロック図である。
【図１２】演算チャネル制御部の変形例を示すブロック図である。
【図１３】演算チャネル制御部のその他の変形例を示すブロック図である。
【符号の説明】
【０１０８】
１００      データ処理装置
１１０      演算回路
１２１〜１２３    入力バッファ
１３０      演算チャネル制御部
１３１      演算要求ＦＩＦＯ
１４０      入力データセレクタ
１５０      暗号鍵セレクタ
１６１〜１６３    出力バッファ
１７０      出力先セレクタ
２００      データ処理装置
２１０      演算回路
２２０      演算モードセレクタ
３００      データ処理装置
３１０      演算回路
３２０      ブロック単位セレクタ
４００      データ処理装置
４１０      演算回路
４１１      排他的論理和回路
４１２      演算アルゴリズム部
４１３      演算アルゴリズム部
４１４      排他的論理和回路
４２０      演算チャネル制御部
４３０      初期値セレクタ
４４１〜４４３    帰還用データバッファ
４５０      出力先セレクタ
４６０      帰還データセレクタ
５００      データ処理装置
５１０      演算回路
５２０      暗号利用モードセレクタ
６００      データ処理装置
６１０      演算クロック設定レジスタ
６２０      演算回路
６３０      演算クロック制御部
７００      データ処理装置
７１０      チャネル監視部
８１０      演算チャネル制御部
８１１      優先制御部
９１１〜９１３    入力バッファ
９２０      演算チャネル制御部
９２１      優先制御部
【図１】
2007114404.tif 000003
【図２】
2007114404.tif 000004
【図３】
2007114404.tif 000005
【図４】
2007114404.tif 000006
【図５】
2007114404.tif 000007
【図６】
2007114404.tif 000008
【図７】
2007114404.tif 000009
【図８】
2007114404.tif 000010
【図９】
2007114404.tif 000011
【図１０】
2007114404.tif 000012
【図１１】
2007114404.tif 000013
【図１２】
2007114404.tif 000014
【図１３】
2007114404.tif 000015