(57)【要約】【課題】平文データ、および暗号文データを一時記憶するバッファの共用化を図ることでハードウェア量を削減するとともに、暗号化チェーンの切れ目により発生するデータの不正な上書きなどの不都合を防止する。【解決手段】供給元からの平文データを、所定のブロック数を転送単位とする転送手順に従ったデータサイズで転送するステップと、平文データを、ブロック数Ｍのバッファサイズを有したバッファに格納するステップと、バッファに格納された平文データをブロック単位で読み出し、暗号文データを生成するステップと、生成した暗号文データをバッファに書き込むステップと、暗号文データを、供給先に転送するステップとを有し、平文データは、ブロック数Ｍのバッファサイズよりも少ないブロック数を転送単位とする転送を含む転送手順で、バッファに転送される。【選択図】図２
2006330126.tif 000002
【特許請求の範囲】
【請求項１】
先頭ブロックを先頭に複数のブロックにより暗号化のためにチェーン化されて、供給元から供給される平文データを、暗号化し、暗号化されたデータを暗号文データとして供給先に供給する暗号化処理方法であって、
前記平文データを、供給元から、所定のブロック数を転送単位とする転送手順に従ったデータサイズで転送するステップと、
前記転送単位で転送された平文データを、ブロック数Ｍのデータが格納可能なバッファサイズを有したバッファに格納するステップと、
バッファに格納された平文データをブロック単位で読み出し、前記読み出した平文データのブロックがチェーンの先頭ブロックであるとき、初期データと読み出した平文データとの演算を含む演算処理により暗号文データを生成し、前記読み出した平文データのブロックがチェーンの先頭ブロック以外のとき、１ブロック前に生成した暗号文データと読み出した平文データとの演算を含む演算処理により暗号文データを生成するステップと、
前記生成した暗号文データをブロック単位で前記バッファに書き込むステップと、
前記バッファに格納された各ブロックの平文データに対応する暗号文データがそれぞれ前記バッファに書き込まれると、前記暗号文データを、供給先に転送するステップとを有し、
前記平文データは、前記バッファのバッファサイズであるブロック数Ｍよりも少ないブロック数を転送単位とする転送を含む前記転送手順で、前記バッファに転送されることを特徴とする暗号化処理方法。
【請求項２】
前記バッファに空きブロック領域を設け、
前記バッファのバッファサイズであるブロック数Ｍよりも少ないブロック数を転送単位として前記平文データを転送するときには、前記平文データを、空きブロック領域以外の領域に転送し、前記生成した暗号文データを、前記バッファの空きブロック領域から前記平文データが格納されたブロック領域へと順番に、ブロック単位で前記バッファに書き込むことを特徴とする請求項１記載の暗号化処理方法。
【請求項３】
前記バッファには、１ブロック分のデータを格納することができる前記空き領域を設けたことを特徴とする請求項２記載の暗号化処理方法。
【請求項４】
前記平文データを前記バッファに転送する転送手順は、
前記平文データの転送を開始するとき、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数を転送単位として、前記空きブロック領域以外の領域に転送し、前記生成した暗号文データを、前記バッファの空きブロック領域から前記平文データが格納されたブロック領域へと順番に、前記バッファのバッファサイズであるブロック数Ｍよりも２ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも２ブロック分少ないブロック数の前記暗号文データがバッファに書き込まれると、前記暗号文データを、供給先に転送し、
前記平文データの転送の開始以外のとき、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数を転送単位として、前記空きブロック領域以外の領域に転送し、前記生成した暗号文データを、前記バッファの空きブロック領域から前記平文データが格納されたブロック領域へと順番に、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数の前記暗号文データがバッファに書き込まれると、前記暗号文データを、供給先に転送することを特徴とする請求項３記載の暗号化処理方法。
【請求項５】
前記ブロック数ＭのＭは、３以上の整数であることを特徴とする請求項４記載の暗号化処理方法。
【請求項６】
前記平文データを前記バッファに転送する転送手順は、
前記平文データの転送を開始するとき、前記バッファのバッファサイズであるブロック数Ｍを転送単位として、前記バッファの各領域に転送し、前記生成した暗号文データを、前記平文データが格納された各ブロック領域に、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数の前記暗号文データがバッファに書き込まれると、前記暗号文データを、供給先に転送し、
前記平文データの転送の開始以外のとき、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数を転送単位として、前記空きブロック領域以外の領域に転送し、前記生成した暗号文データを、前記バッファの空きブロック領域から前記平文データが格納されたブロック領域へと順番に、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数の前記暗号文データがバッファに書き込まれると、前記暗号文データを、供給先に転送することを特徴とする請求項３記載の暗号化処理方法。
【請求項７】
前記ブロック数ＭのＭは、２以上の整数であることを特徴とする請求項６記載の暗号化処理方法。
【請求項８】
先頭ブロックを先頭に複数のブロックにより暗号化のためにチェーン化されて、供給元から供給される暗号文データを、復号化し、復号化されたデータを平文データとして供給先に供給する復号化処理方法であって、
前記暗号文データを、供給元から、所定のブロック数を転送単位とする転送手順に従ったデータサイズで転送するステップと、
前記転送単位で転送された暗号文データを、ブロック数Ｍのデータが格納可能なバッファサイズを有したバッファに格納するステップと、
バッファに格納された暗号文データをブロック単位で読み出し、前記読み出した暗号文データのブロックがチェーンの先頭ブロックであるとき、初期データと読み出した暗号文データを復号化したデータとの演算を含む演算処理により平文データを復元し、前記読み出した暗号文データのブロックがチェーンの先頭ブロック以外のとき、１ブロック前に読み出した暗号文データと読み出した暗号文データを復号化したデータとの演算を含む演算処理により平文データを復元するステップと、
前記復元した平文データをブロック単位で前記バッファに書き込むステップと、
前記バッファに格納された各ブロックの暗号文データに対応する平文データがそれぞれ前記バッファに書き込まれると、前記平文データを、供給先に転送するステップとを有し、
前記暗号文データは、前記バッファのバッファサイズであるブロック数Ｍよりも少ないブロック数を転送単位とする転送を含む前記転送手順で、前記バッファに転送されることを特徴とする復号化処理方法。
【請求項９】
前記バッファに空きブロック領域を設け、
前記バッファのバッファサイズであるブロック数Ｍよりも少ないブロック数を転送単位として前記暗号文データを転送するときには、前記暗号文データを、空きブロック領域以外の領域に転送し、前記生成した平文データを、前記バッファの空きブロック領域から前記暗号文データが格納されたブロック領域へと順番に、ブロック単位で前記バッファに書き込むことを特徴とする請求項８記載の復号化処理方法。
【請求項１０】
前記バッファには、１ブロック分のデータを格納することができる前記空き領域を設けたことを特徴とする請求項９記載の復号化処理方法。
【請求項１１】
前記暗号文データを前記バッファに転送する転送手順は、
前記暗号文データの転送を開始するとき、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数を転送単位として、前記空きブロック領域以外の領域に転送し、前記復元した平文データを、前記バッファの空きブロック領域から前記暗号文データが格納されたブロック領域へと順番に、前記バッファのバッファサイズであるブロック数Ｍよりも２ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも２ブロック分少ないブロック数の前記平文データがバッファに書き込まれると、前記平文データを、供給先に転送し、
前記暗号文データの転送の開始以外のとき、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数を転送単位として、前記空きブロック領域以外の領域に転送し、前記復元した平文データを、前記バッファの空きブロック領域から前記暗号文データが格納されたブロック領域へと順番に、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数の前記平文データがバッファに書き込まれると、前記平文データを、供給先に転送することを特徴とする請求項１０記載の復号化処理方法。
【請求項１２】
前記ブロック数ＭのＭは、３以上の整数であることを特徴とする請求項１１記載の復号化処理方法。
【請求項１３】
前記暗号文データを前記バッファに転送する転送手順は、
前記暗号文データの転送を開始するとき、前記バッファのバッファサイズであるブロック数Ｍを転送単位として、前記バッファの各領域に転送し、前記復元した平文データを、前記暗号文データが格納された各ブロック領域に、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数の前記平文データがバッファに書き込まれると、前記平文データを、供給先に転送し、
前記暗号文データの転送の開始以外のとき、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数を転送単位として、前記空きブロック領域以外の領域に転送し、前記復元した平文データを、前記バッファの空きブロック領域から前記平文データが格納されたブロック領域へと順番に、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数をバッファに書き込み、前記バッファのバッファサイズであるブロック数Ｍよりも１ブロック分少ないブロック数の前記平文データがバッファに書き込まれると、前記平文データを、供給先に転送することを特徴とする請求項１０記載の復号化処理方法。
【請求項１４】
前記ブロック数ＭのＭは、２以上の整数であることを特徴とする請求項１３記載の復号化処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗復号化回路の暗復号化処理方法に関し、特に、データを一時記憶するバッファを介して暗復号化処理を行なう暗復号化回路の暗復号化処理方法に関する。
【背景技術】
【０００２】
近年、マルチメディア関連の技術の進展により、画像データ、音声データ、あるいはこれらのデータを圧縮符号化したストリーム信号などのデジタルデータを処理する装置や方法に関する技術が急速に進展している。とりわけ、情報機器等において利用される記録媒体としてのハードディスク、光ディスク、あるいはメモリカードなど、これら記録媒体の大容量化がめざましく、映像や音声信号をデジタル形式で記録する民生用の映像機器分野においても、ビデオデータのような大容量データを一般家庭で記録して扱うことが可能となっている。一方、これら記録媒体を利用することで、例えば、デジタル動画像を高画質で長時間記録できるため、不正コピーなどの防止を目的とした著作権保護に関する技術が提案されている。また、著作権保護に関する技術の一つとして、記録や通信における情報を秘匿するため、情報を暗号化して記録や通信を行なう暗号化に関する技術がある。このような暗号化技術に関する一例としては、例えば、米国における暗号化標準方式であるＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式などがある。
【０００３】
また、記録媒体に関する著作権保護技術の一例として、例えば、光ディスクの一種であるＤＶＤ、あるいはメモリカードの一種であるＳＤメモリカードでは、ＣＰＲＭ（Ｃｏｎｔｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ  ｆｏｒ  Ｒｅｃｏｒｄａｂｌｅ  Ｍｅｄｉａ）と呼ばれる著作権保護技術に基づいて、記録する映像や音声などのコンテンツ保護が図られている。このＣＰＲＭと呼ばれる技術では、コンテンツの暗号化、鍵管理、コピー制御などに関した要素技術が規定されており、コンテンツの暗号化に関しては、Ｃ２（Ｃｒｙｐｔｏｍｅｒｉａ  Ｃｉｐｈｅｒ）方式と呼ばれる暗号化技術が採用されている。
【０００４】
上述のＤＥＳ方式やＣ２方式は、このような暗号化技術として、６４ビットなど所定のデータ長を１ブロックとしたブロック暗号化アルゴリズムが利用されており、暗号化処理方法に応じて、ＥＣＢ（Ｅｌｅｃｔｒｉｃ  Ｃｏｄｅｂｏｏｋ）モード、ＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）モード、ＯＦＢ（Ｏｕｔｐｕｔ  Ｆｅｅｄｂａｃｋ）モード、ＣＦＢ（Ｃｉｐｈｅｒ  Ｆｅｅｄｂａｃｋ）モードと呼ばれる４つのモードが知られている。また、このようなブロック暗号化アルゴリズムを実現するため、ブロック暗号回路やブロック暗号化方法に関する技術が提案されている（例えば、特許文献１参照）。
【０００５】
図８は、従来のＣＢＣモードに対応したブロック暗号回路のブロック図である。図８において、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９４０は、ブロック暗号回路を利用するマイクロコンピュータなどであり、ＣＰＵ９４０の指示に応じて、供給元メモリ９５０に記憶された平文データが暗号化され、暗号化されたデータである暗号文データが供給先メモリ９６０に転送され、記録される。供給元メモリ９５０に記憶された平文データは、所定のデータ長を単位とするブロックで区分されており、さらに複数のブロックを一つの転送単位として、共通バス９４１を介して、バッファ９３２に転送される。図８では、４つのブロックを転送単位として平文データがバッファ９３２に格納される一例を示している。
【０００６】
バッファ９３２に格納された平文データは、暗号制御部９３１の制御に従い、ブロック単位で暗号化処理部９１０に供給される。暗号化処理部９１０は、供給された平文データに対して、ＣＢＣモードに基づき、暗号化チェーンとする所定のブロック長のデータ毎に、ブロック連鎖暗号化処理を行ない、ブロック単位の暗号文データを生成する。すなわち、暗号化処理部９１０は、ＣＢＣモードに基づき、平文データが先頭ブロックであるとき、エクスクルーシブオア回路９１１が平文データと初期値データとの排他的論理和演算を実行し、平文データが先頭ブロック以外のとき、エクスクルーシブオア回路９１１が平文データとレジスタ９１３に記憶した一つ前の暗号文データとの排他的論理和演算を実行する。排他的論理和演算結果のデータは、暗号部９１２により暗号化され、レジスタ９１３に記憶される。レジスタ９１３に記憶された暗号文データは、次の排他的論理和演算に利用されるとともに、バッファ９３２に供給される。
【０００７】
暗号化処理部９１０から供給された暗号文データは、暗号制御部９３１の制御に従い、バッファ９３２に、元の平文データと置換するようにして格納される。バッファ９３２に格納された全ブロックの平文データが暗号文データへと置換されると、暗号制御部９３１は、転送単位分のブロックで構成される暗号文データを、共通バス９４１を介して、供給先メモリ９６０に転送するよう制御する。このようにして、供給先メモリ９６０に暗号文データが記録される。
【０００８】
図９は、従来のブロック暗号回路の動作タイミングを示すタイミングチャートである。以下、図９を用いて従来のブロック暗号回路の動作について説明する。図９では、供給元メモリ９５０からは、Ｒ１、Ｒ２、Ｒ３と、図９に示すようなブロック単位の順番で、Ｒ１からＲ８までのように８ブロックを一つの暗号化チェーンとし、Ｒ１からＲ４までのように４ブロックを一つの転送単位として、平文データがバッファ９３２に供給される一例を挙げている。
【０００９】
ブロック暗号回路による処理が開始されると、暗号制御部９３１は、図９に示すような手順で暗号化処理の制御を行なう。すなわち、処理が開始されると、暗号制御部９３１の制御により、転送単位の平文データＲ１からＲ４までが、供給元メモリ９５０からバッファ９３２に書き込まれる。バッファ９３２に平文データＲ１からＲ４までが書き込まれると、暗号化処理部９１０は、Ｒ１、Ｒ２、Ｒ３、Ｒ４と順番にブロック単位で暗号化処理を実行する。また、暗号化処理部９１０で生成された暗号文データは、既に格納されている平文データを上書きするようにブロック単位でバッファ９３２に格納される。バッファ９３２に所定のブロック数の暗号文データが格納されると、バッファ９３２に格納された暗号文データの読み出し処理が実行され、読み出された暗号文データは供給先メモリ９６０に転送される。このようにして、転送単位の暗号化処理が実行される。
【００１０】
暗号化処理部９１０は、転送単位毎に次に説明するような動作を実行する。すなわち、ブロック暗号回路による処理が開始された後、暗号化処理に先立ち、図９に示すように、時刻Ｔ００から時刻Ｔ０１までにおいて、平文データＲ１、Ｒ２、Ｒ３、Ｒ４が、領域ＢＬ１、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ９３２のそれぞれの領域に格納される。時刻Ｔ０１において、暗号制御部９３１の制御により、バッファ９３２では領域ＢＬ１の領域が選択され、暗号化処理部９１０は、まず、この領域ＢＬ１に格納された平文データＲ１を読み込む。このとき、平文データＲ１は、暗号化チェーンにおける先頭ブロックであるため、エクスクルーシブオア回路９１１により、平文データＲ１と初期値データＩＶとの排他的論理和演算Ｒ１＊ＩＶが行なわれ、さらに、暗号部９１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ１が生成される。さらに、この暗号文データＥ１は、時刻Ｔ０２においてＲＥＧで示すレジスタ９１３に記憶される。そして、レジスタ９１３に記憶された暗号文データＥ１は、暗号化処理により生成した暗号文データＷ１としてバッファ９３２へと送出される。これにより、バッファ９３２では、選択されている領域ＢＬ１において、読み出した平文データＲ１を暗号文データＷ１で置換するように、送出された暗号文データＷ１が書き込まれる。
【００１１】
次に、時刻Ｔ０３において、暗号制御部９３１の制御により、バッファ９３２では領域ＢＬ２の領域が選択され、暗号化処理部９１０は、この領域ＢＬ２に格納された平文データＲ２を読み込む。さらに、暗号化処理部９１０は、エクスクルーシブオア回路９１１により、読み込んだ平文データＲ２とレジスタ９１３に記憶した暗号文データＥ１との排他的論理和演算Ｒ２＊Ｅ１を実行し、暗号部９１２により排他的論理和演算結果に対して暗号化処理を施して、暗号文データＥ２を生成する。さらに、この暗号文データＥ２は、時刻Ｔ０４においてＲＥＧで示すレジスタ９１３に記憶される。そして、レジスタ９１３に記憶された暗号文データＥ２は、暗号化処理により生成した暗号文データＷ２としてバッファ９３２へと送出される。これにより、バッファ９３２では、選択されている領域ＢＬ２において、読み出した平文データＲ２を暗号文データＷ２で置換するように、送出された暗号文データＷ２が書き込まれる。
【００１２】
以下、同様に、バッファ９３２での領域ＢＬ３のブロックが選択されると、平文データＲ３に対応した暗号文データＥ３が生成されるとともに、バッファ９３２の領域ＢＬ３には、暗号文データＥ３が暗号化処理により生成した暗号文データＷ３として、バッファ９３２の領域ＢＬ３に書き込まれ、次に、バッファ９３２での領域ＢＬ４のブロックが選択されると、平文データＲ４に対応した暗号文データＥ４が生成されるとともに、バッファ９３２の領域ＢＬ４には、レジスタ９１３に記憶した暗号文データＥ４が、暗号文データＷ４として、バッファ９３２の領域ＢＬ４に書き込まれる。
【００１３】
このようにして、供給元メモリ９５０からの転送単位の平文データＲ１からＲ４までに対する暗号化処理が実行され、時刻Ｔ０９において、暗号化処理により生成された暗号文データＷ１からＷ４までがバッファ９３２に格納される。バッファ９３２に格納された暗号文データＷ１からＷ４までは、暗号制御部９３１の制御により、バッファ９３２から読み出され、共通バス９４１を介して、供給先メモリ９６０に転送され、供給先メモリ９６０に暗号文データが記録される。なお、このとき、平文データＲ４に対応した暗号文データＥ４は、次の転送単位の暗号化処理まで、レジスタ９１３に記憶される。また、以上のような一連の処理により、一つの転送単位におけるブロック暗号回路の処理が行なわれる。
【００１４】
次に、図９に示す時刻Ｔ１０から、次の転送単位におけるブロック暗号回路の処理が行なわれる。すなわち、時刻Ｔ１０から時刻Ｔ１１までにおいて、次の転送単位の平文データＲ５、Ｒ６、Ｒ７、Ｒ８が、領域ＢＬ１、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ９３２のそれぞれの領域に格納される。時刻Ｔ１１において、暗号制御部９３１の制御により、バッファ９３２では領域ＢＬ１のブロックが選択され、暗号化処理部９１０は、まず、この領域ＢＬ１に格納された平文データＲ５を読み込む。平文データＲ５は、暗号化チェーンの途中のブロックであるため、エクスクルーシブオア回路９１１により、平文データＲ５は、前回の暗号化処理でレジスタ９１３に記憶した暗号文データＥ４との排他的論理和演算Ｒ５＊Ｅ４が行なわれる。さらに、暗号部９１２によって、排他的論理和演算結果に対しての暗号化処理が施されて、暗号文データＥ５が生成される。この暗号文データＥ５は、時刻Ｔ１２においてＲＥＧで示すレジスタ９１３に記憶される。そして、暗号化処理部９１０は、レジスタ９１３に記憶した暗号文データＥ５を、暗号化処理により生成した暗号文データＷ５としてバッファ９３２へと送出する。これにより、バッファ９３２では、選択されている領域ＢＬ１において、読み出した平文データＲ５を暗号文データＷ５で置換するように、送出された暗号文データＷ５が書き込まれる。このようにして、時刻Ｔ１２において、バッファ９３２の領域ＢＬ１には、暗号化処理部９１０での暗号化処理により生成した暗号文データＷ５が一時記憶される。また、時刻Ｔ１２において、暗号部９１２により生成された暗号文データＥ５がレジスタ９１３に記憶される。以下、同様にして、バッファ９３２での領域ＢＬ１、ＢＬ２、ＢＬ３、ＢＬ４には、それぞれの平文データＲ５、Ｒ６、Ｒ７、Ｒ８を置換するように、暗号文データＷ５、Ｗ６、Ｗ７、Ｗ８が書き込まれる。
【００１５】
以上のようにして、供給元メモリ９５０からの次の転送単位の平文データＲ５からＲ８までに対する暗号化処理が実行され、時刻Ｔ１９において、暗号化処理により生成された暗号文データＷ５からＷ８までがバッファ９３２に格納される。バッファ９３２に格納された暗号文データＷ５からＷ８までは、暗号制御部９３１の制御により、バッファ９３２から読み出され、共通バス９４１を介して、供給先メモリ９６０に転送され、供給先メモリ９６０に暗号文データが記録される。
【００１６】
以上のような転送単位毎の暗号化処理を繰り返すことにより、供給元メモリ９５０に記憶した平文データを暗号化処理し、暗号化処理されたデータである暗号文データを供給先メモリ９６０へと格納することができる。
【特許文献１】特開２００４−１２６３２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
しかしながら、上述した従来例の場合、供給元メモリ９５０からバッファ９３２に転送する転送単位のブロック数の整数倍のブロック数で暗号化チェーンを構成する一例であったが、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合には、暗号化処理部９１０が、バッファ９３２に供給した平文データを読み込む前に生成した暗号文データを上書きするような動作となるなどの不都合が生じるという課題があった。
【００１８】
図１０は、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の一例を示したタイミングチャートである。図１０では、供給元メモリ９５０からバッファ９３２に転送する転送単位としては、図９の場合と同様に４つのブロックで一つの転送単位とするが、暗号化チェーンに関しては、５つのブロックで一つの暗号化チェーンを構成するような一例を示している。すなわち、図１０に示すように、平文データＲ１からＲ５までを一つ目の暗号化チェーン、平文データＲ６からＲ１０までを次の暗号化チェーンとする平文データに対して、４つのブロックを一転送単位とする平文データＲ１からＲ４まで、次の平文データＲ５からＲ８までというように、供給元メモリ９５０からバッファ９３２に平文データが転送され、バッファ９３２に書き込まれる。暗号化処理部９１０は、バッファ９３２に書き込まれた４つのブロックの平文データに対して、図１０に示すようなタイミングで暗号化処理を実行する。
【００１９】
なお、図９で説明した場合は、ブロックの終端に格納されているデータが暗復号処理の切れ目であるため、暗復号化演算の終了後、レジスタ９１３、およびバッファ９３２に演算結果のデータが格納される。ここで、暗復号処理の切れ目とは、暗号化チェーンの終端、あるいは８バイトを単位とするような暗復号化単位の切れ目を意味する。一方、ブロックの終端に格納されているデータが暗復号処理の切れ目ではない場合には、図１０に示すように、暗復号化演算の終了後は、レジスタ９１３に演算結果のデータが保持されたままとなるため、次のデータの演算終了後、バッファ９３２に演算結果が格納される。すなわち、最初の平文データＲ１からＲ４までの書き込みのとき、図９の場合では、時刻Ｔ０２から暗号文データＥ１がレジスタ９１３に記憶されるとともに、バッファ９３２に書き込まれ、このようにして処理が開始される。これに対して、最初の平文データＲ１からＲ４までの書き込みのとき、図１０の場合では、時刻Ｔ０２から暗号文データＥ１がレジスタ９１３に記憶され、一つのブロックサイクル分遅れた時刻Ｔ０４から暗号文データＥ１がバッファ９３２に書き込まれる。このように、最初の平文データＲ１からＲ４までの書き込みのとき、図１０の場合は、図９の場合に比べて、一つのブロックサイクル分遅れて処理が実行される。
【００２０】
この後、図１０に示すように、時刻Ｔ１０から時刻Ｔ１１までにおいて、次の転送単位の平文データＲ５、Ｒ６、Ｒ７、Ｒ８が、領域ＢＬ１、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ９３２のそれぞれの領域に格納される。時刻Ｔ１１において、暗号制御部９３１の制御により、バッファ９３２では領域ＢＬ１のブロックが選択され、暗号化処理部９１０は、まず、この領域ＢＬ１に格納された平文データＲ５を読み込む。平文データＲ５は、暗号化チェーンの途中のブロックであるため、エクスクルーシブオア回路９１１により、平文データＲ５は、前回の暗号化処理でレジスタ９１３に記憶した暗号文データＥ４との排他的論理和演算Ｒ５＊Ｅ４が行なわれる。さらに、暗号部９１２によって、排他的論理和演算結果に対しての暗号化処理が施されて、暗号文データＥ５が生成される。さらに、この暗号文データＥ５は、時刻Ｔ１２においてＲＥＧで示すレジスタ９１３に記憶される。そして、暗号化処理部９１０は、この暗号文データＥ５の生成処理に並行して、レジスタ９１３に前回から記憶し続けた暗号文データＥ４を、暗号化処理により生成した暗号文データＷ４としてバッファ９３２へと送出する。これにより、バッファ９３２では、選択されている領域ＢＬ１に送出された暗号文データＷ４が書き込まれる。
【００２１】
次に、時刻Ｔ１３において、暗号制御部９３１の制御により、バッファ９３２では領域ＢＬ２の領域が選択され、暗号化処理部９１０は、この領域ＢＬ２に格納された平文データＲ６を読み込もうとする。しかし、先に領域ＢＬ１から読み込んだ平文データＲ５は、暗号化チェーンの最終端のブロックであるため、時刻Ｔ１２において、平文データＲ５に対応する暗号文データＥ５が、暗号文データＷ５としてバッファ９３２の領域ＢＬ２に書き込まれる。すなわち、時刻Ｔ１３において、暗号化処理部９１０は、この領域ＢＬ２に格納された暗号化チェーンの先頭ブロックである平文データＲ６を読み込もうとするが、暗号化チェーンの最終端のブロックに対応した暗号文データＷ５が先に書き込まれるため、平文データＲ６を読み込むことができなくなる。この結果、平文データＲ６に対する暗号化処理ができなくなるとともに、平文データＲ６以降の平文データに対しても正しくブロック連鎖暗号化処理を行なうことができなくなる。
【００２２】
以上説明したように、転送単位のブロックの途中に暗号化チェーンの切れ目が発生するような場合、暗号化処理部９１０が、バッファ９３２に供給した平文データを読み込む前に生成した暗号文データを上書きするような動作となるなどの不都合が生じるという課題があった。
【００２３】
本発明は、上記課題を解決するためになされたもので、平文データ、および暗号文データを一時記憶するバッファの共用化を図ることでバッファサイズを抑制しハードウェア量を削減するとともに、暗号化チェーンの切れ目により発生するデータの不正な上書きなどの不都合を防止した暗号化処理方法、および復号化処理方法を提供することを目的とする。
【課題を解決するための手段】
【００２４】
上述したような課題を解決するために、本発明の暗号化処理方法は、先頭ブロックを先頭に複数のブロックにより暗号化のためにチェーン化されて、供給元から供給される平文データを、暗号化し、暗号化されたデータを暗号文データとして供給先に供給する暗号化処理方法であって、平文データを、供給元から、所定のブロック数を転送単位とする転送手順に従ったデータサイズで転送するステップと、転送単位で転送された平文データを、ブロック数Ｍのデータが格納可能なバッファサイズを有したバッファに格納するステップと、バッファに格納された平文データをブロック単位で読み出し、読み出した平文データのブロックがチェーンの先頭ブロックであるとき、初期データと読み出した平文データとの演算を含む演算処理により暗号文データを生成し、読み出した平文データのブロックがチェーンの先頭ブロック以外のとき、１ブロック前に生成した暗号文データと読み出した平文データとの演算を含む演算処理により暗号文データを生成するステップと、生成した暗号文データをブロック単位でバッファに書き込むステップと、バッファに格納された各ブロックの平文データに対応する暗号文データがそれぞれバッファに書き込まれると、暗号文データを、供給先に転送するステップとを有し、平文データは、バッファのバッファサイズであるブロック数Ｍよりも少ないブロック数を転送単位とする転送を含む転送手順で、バッファに転送する。
【００２５】
また、本発明の復号化処理方法は、先頭ブロックを先頭に複数のブロックにより暗号化のためにチェーン化されて、供給元から供給される暗号文データを、復号化し、復号化されたデータを平文データとして供給先に供給する復号化処理方法であって、暗号文データを、供給元から、所定のブロック数を転送単位とする転送手順に従ったデータサイズで転送するステップと、転送単位で転送された暗号文データを、ブロック数Ｍのデータが格納可能なバッファサイズを有したバッファに格納するステップと、バッファに格納された暗号文データをブロック単位で読み出し、読み出した暗号文データのブロックがチェーンの先頭ブロックであるとき、初期データと読み出した暗号文データを復号化したデータとの演算を含む演算処理により平文データを復元し、読み出した暗号文データのブロックがチェーンの先頭ブロック以外のとき、１ブロック前に読み出した暗号文データと読み出した暗号文データを復号化したデータとの演算を含む演算処理により平文データを復元するステップと、復元した平文データをブロック単位でバッファに書き込むステップと、バッファに格納された各ブロックの暗号文データに対応する平文データがそれぞれバッファに書き込まれると、平文データを、供給先に転送するステップとを有し、暗号文データは、バッファのバッファサイズであるブロック数Ｍよりも少ないブロック数を転送単位とする転送を含む転送手順で、バッファに転送する。
【発明の効果】
【００２６】
本発明の暗号化処理方法、および復号化処理方法によれば、平文データをバッファに転送するとき、バッファのバッファサイズであるブロック数Ｍよりも少ないブロック数を転送単位とする転送を含む転送手順で平文データをバッファに転送するため、バッファにはバッファサイズよりも少ないブロック数の平文データが格納される。このため、上述したような、転送単位のブロックの途中に暗号化チェーンの切れ目が発生するような場合であっても、生成した暗号文データを空き領域から書き込むことにより、読み出しタイミングと書き込みタイミング間の余裕時間を設けることが可能となり、これによって、平文データ、および暗号文データを一時記憶するバッファの共用化によるハードウェア量が削減できるとともに、暗号化チェーンの切れ目により発生するデータの不正な上書きなどの不都合をも防止することが可能となる。
【発明を実施するための最良の形態】
【００２７】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００２８】
（実施の形態１）
図１は、本発明の実施の形態１におけるブロック暗復号回路の暗号化処理方法、および復号化処理方法を利用した暗復号装置の一例を示す概略図である。図１では、本発明のブロック暗復号回路が、各種処理を制御するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）４０とともに、集積回路であるＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）１００に集積された一例を挙げている。図１に示すように、ハードディスクドライブ（以下、ＨＤＤと呼ぶ）５０に記録されたデジタル動画像データなどのコンテンツデータは、ＬＳＩ１００に含まれるブロック暗復号回路で暗号化処理され、暗号化処理されたデータがＳＤカードなどの外部メモリ６０に記録されたり、ＨＤＤ５０に記録された暗号化されたコンテンツデータが、ＬＳＩ１００に含まれるブロック暗復号回路で復号化処理され、復号化処理されたデータが外部メモリ６０に記録されたり、あるいは、逆に、外部メモリ６０に記録されたデジタル動画像データなどのコンテンツデータが、ＬＳＩ１００に含まれるブロック暗復号回路で暗号化処理され、暗号化処理されたデータがＨＤＤ５０に記録されたり、外部メモリ６０に記録された暗号化されたコンテンツデータが、ＬＳＩ１００に含まれるブロック暗復号回路で復号化処理され、復号化処理されたデータがＨＤＤ５０に記録されたりし、このようにして、一方の記録媒体に記憶された平文データが暗号化処理されて他方の記録媒体に暗号文データとして記録されたり、一方の記録媒体に記憶された暗号文データが復号化処理されて他方の記録媒体に平文データとして記録される。また、ＨＤＤ５０に記録されたデータが、暗号化処理、あるいは復号化処理されて、そのＨＤＤ５０に記録されたり、あるいは、外部メモリ６０に記録されたデータが、暗号化処理、あるいは復号化処理されて、その外部メモリ６０に記録されたりする形態であってもよい。
【００２９】
本実施の形態１におけるブロック暗復号回路は、ブロック単位の暗復号化処理により暗号化、あるいは復号化されたデータを生成する暗復号化処理部１０と、ＨＤＤ５０あるいは外部メモリ６０から転送される暗復号化処理を行なうためデータを一時記憶するとともに、暗復号化処理部１０での暗復号化処理により生成したデータをも一時記憶するバッファ３２とを含む構成である。また、暗復号化処理部１０は、内部に、暗復号化処理により生成したデータを一時記憶するレジスタ１３を有している。このような基本構成により、ＨＤＤ５０あるいは外部メモリ６０から、複数のブロックを転送単位とするデータが、バッファ３２にＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）転送され、次に、バッファ３２からブロック単位でデータが暗復号化処理部１０にＤＭＡ転送され、暗復号化処理部１０によりブロック単位の暗復号化処理が実行される。暗復号化処理部１０によるブロック単位の暗復号化処理で生成されたデータは、ブロック毎にバッファ３２に書き込まれ、バッファ３２に所定のブロック数の生成されたデータが書き込まれると、バッファ３２からは、所定のブロック数の生成されたデータが転送先であるＨＤＤ５０あるいは外部メモリ６０へとＤＭＡ転送される。このようにして、例えば、ＨＤＤ５０に記録されたデジタル動画像データなどのコンテンツデータが、ＬＳＩ１００に含まれるブロック暗復号回路で暗号化処理され、暗号化処理されたデータがＳＤカードなどの外部メモリ６０に記録される。
【００３０】
より具体的な一例として、ブロック暗復号回路は、著作権保護技術として提案されているＣＰＲＭ（Ｃｏｎｔｅｎｔ  Ｐｒｏｔｅｃｔｉｏｎ  ｆｏｒ  ＲｅｃｏｒｄａｂｌｅＭｅｄｉａ）に基づいたＣ２（Ｃｒｙｐｔｏｍｅｒｉａ  Ｃｉｐｈｅｒ）方式と呼ばれる暗復号化方式に対応した暗復号化処理を実行する暗復号化処理部１０を有し、暗復号化処理部１０は、このＣ２方式に基づき５１２バイトをブロック単位として、このブロック単位毎に暗復号化処理を実行する。また、バッファ３２は、例えば、４ブロック分のバイト数である２キロバイトの記憶容量を有する。このような構成に対して、本実施の形態１のブロック暗復号回路では、次のような暗復号化処理方法に基づいた暗復号化処理が実行される。
【００３１】
すなわち、例えば、ＨＤＤ５０に記憶したコンテンツデータを暗号化して外部メモリ６０に記録する場合、ＨＤＤ５０からは、まず、所定のブロック数を転送単位としてコンテンツデータがバッファ３２にＤＭＡ転送される。転送されたコンテンツデータは、バッファ３２に一時記憶されるとともに、バッファ３２から５１２バイトのブロック単位でコンテンツデータが暗復号化処理部１０にＤＭＡ転送される。暗復号化処理部１０は、転送された５１２バイトのコンテンツデータに対して暗号化処理を実行する。このとき、暗復号化処理部１０のレジスタ１３には、暗号化処理により生成した５１２バイトの暗号化コンテンツデータが次の暗号化処理のために一時記憶される。また、暗号化処理により生成した５１２バイトの暗号化コンテンツデータは、１ブロック分の暗号化コンテンツデータとして、バッファ３２に書き込まれる。ＨＤＤ５０からバッファ３２に転送されたすべてのコンテンツデータに対して、このような暗号化処理が終了すると、バッファ３２に一時記憶された暗号化コンテンツデータが外部メモリ６０へとＤＭＡ転送される。以上のような処理を、例えば、動画像データなど、一つの番組分のコンテンツデータに対して行なうことで、不正コピーなどの防止が図られた状態、すなわち、暗号化されたコンテンツデータの状態で、著作権保護の対象となるような動画像データがＳＤカードなどの外部メモリ６０に記録される。
【００３２】
特に、本実施の形態１におけるブロック暗復号回路の暗復号化処理方法では、例えば、ＨＤＤ５０からバッファ３２にコンテンツデータを転送する場合、バッファ３２の記憶容量よりも少ないブロック数を転送単位として転送することを特徴としており、これにより、ＨＤＤ５０から転送されるコンテンツデータの暗号化チェーンの切れ目であっても円滑な暗復号化処理を可能としている。
【００３３】
図２、および図３は、本発明の実施の形態１におけるブロック暗復号回路のより詳細な構成を示すブロック図である。図２では、暗号化処理におけるＣＢＣモードに対応したブロック暗復号回路の一例を挙げている。また、図３では、復号化処理におけるＣＢＣモードに対応したブロック暗復号回路の一例を挙げている。以下、まず、図２を参照しながら、暗号化処理に対応した本実施の形態１におけるブロック暗復号回路の構成について説明する。
【００３４】
図２において、ＣＰＵ４０は、ブロック暗復号回路を利用するマイクロコンピュータなどであり、ＣＰＵ４０の指示に応じて、供給元の記録媒体に記憶された暗号化されていない平文データが暗号化され、暗号化されたデータである暗号文データが供給先の記録媒体に記録される。図２では、図１と同様に、記録媒体としてＨＤＤ５０、および外部メモリ６０とした一例を挙げている。以下、ＨＤＤ５０に記憶した平文データを暗号化して外部メモリ６０に記録する場合を例に挙げて説明するが、外部メモリ６０に記憶した平文データを暗号化してＨＤＤ５０に記録するような形態であってもよく、また、平文データの供給元として、記録媒体以外の例えば、テレビジョン受信器で受信したコンテンツデータを供給するような形態であってもよい。
【００３５】
図２に示すように、共通バス４１に接続されたＣＰＵ４０を中心として、ＨＤＤ５０が、データ等の受け渡しを行なうためのインタフェースであるＩ／Ｆ部５１を介して共通バス４１に接続され、また、外部メモリ６０も同様に、データ等の受け渡しを行なうためのインタフェースであるＩ／Ｆ部６１を介して共通バス４１に接続されている。さらに、共通バス４１には、ブロック単位の暗復号化処理により暗号化、あるいは復号化されたデータを生成する暗復号化処理部１０と、ＨＤＤ５０あるいは外部メモリ６０から転送されるデータを一時記憶するとともに、暗復号化処理部１０での暗復号化処理により生成したデータをも一時記憶するバッファ３２と、本発明の暗復号化処理方法に基づいた暗復号化処理を実行するように暗復号化処理部１０、およびバッファ３２を制御する暗復号制御部３１とが接続されている。暗復号化処理部１０、バッファ３２、および暗復号制御部３１により本実施の形態１におけるブロック暗復号回路が構成され、例えば、ＨＤＤ５０から共通バス４１を介してＤＭＡ転送された平文データが本ブロック暗復号回路で暗号化され、暗号化されたデータである暗号文データが共通バス４１を介して外部メモリ６０へとＤＭＡ転送される。
【００３６】
ＨＤＤ５０に記憶された平文データは、例えば、５１２バイトのように所定のデータ長を単位とするブロックで区分されており、さらに複数のブロックを一つの転送単位として、共通バス４１を介して、バッファ３２に転送される。図２では、バッファ３２が、４つのブロック分に相当するデータを格納可能な記憶容量を有した一例を示している。すなわち、バッファ３２は、領域ＢＬ１、ＢＬ２、ＢＬ３、およびＢＬ４で区分されるような記憶領域を有しており、各領域には、１ブロック分のデータ長のデータを格納することができる。
【００３７】
バッファに格納された平文データは、暗復号制御部３１の制御に従い、ブロック単位で暗復号化処理部１０に供給される。図２では、暗復号化処理部１０が、ＣＢＣモードに基づき、暗号化処理を行なう場合の構成例を示している。暗復号化処理部１０は、供給された平文データに対して、ＣＢＣモードに基づき、暗号化チェーンとする所定のブロック長のデータ毎に、ブロック連鎖暗号化処理を行ない、ブロック単位毎の暗号文データを生成する。このようなブロック連鎖暗号化処理を行なうため、暗復号化処理部１０は、供給されたデータに対して暗号化を行ない暗号文データを生成する暗号部１２、暗号部１２により生成した暗号文データを一時記憶するレジスタ１３、暗号化処理を実行するための初期値データを記憶した初期値レジスタ１４、初期値レジスタ１４からのデータとレジスタ１３からのデータとを選択するマルチプレクサ回路１５、および供給された平文データとマルチプレクサ回路１５からのデータとの排他的論理和演算を行なうエクスクルーシブオア回路１１を有した構成である。
【００３８】
暗復号化処理部１０は、このような構成により、ＣＢＣモードに応じたブロック連鎖暗号化処理を実行する。ＣＢＣモードは、一つ前の暗号文データと平文データとをブロック単位で排他的論理和演算し、その演算結果であるデータに対して暗号化する処理を基本としており、暗号化チェーンとする所定のブロック長の平文データ毎に、このようなブロック連鎖処理を施す。図２の暗復号化処理部１０において、初期値レジスタ１４には、暗号化チェーンの先頭ブロックに対する排他的論理和演算を実行するための初期値データが記憶されている。また、レジスタ１３は、暗号部１２で暗号化された一つ前の暗号文データが記憶されている。これら初期値レジスタ１４の初期値データ、およびレジスタ１３の暗号文データは、マルチプレクサ回路１５に供給される。マルチプレクサ回路１５は、暗復号制御部３１の指示に応じて、初期値データ、または暗号文データのいずれか一方のデータを選択する。選択されたデータは、エクスクルーシブオア回路１１に供給される。エクスクルーシブオア回路１１は、暗復号化処理部１０に供給された平文データとマルチプレクサ回路１５からのデータとの排他的論理和演算を実行する。すなわち、暗復号化処理部１０に平文データが供給されると、供給された平文データが暗号化チェーンの先頭ブロックの場合、エクスクルーシブオア回路１１は、平文データと初期値データとの排他的論理和演算を実行し、暗号部１２は、その排他的論理和演算結果であるデータに対して暗号化を行なうことで暗号文データを生成する。さらに、生成された暗号文データは、レジスタ１３に記憶される。また、暗復号化処理部１０に次のブロックの平文データが供給されると、エクスクルーシブオア回路１１は、平文データとレジスタ１３に記憶した一つ前の暗号文データとの排他的論理和演算を実行する。暗号部１２は、その排他的論理和演算結果であるデータに対して暗号化を行なうことで、次の暗号文データを生成する。さらに、生成された暗号文データは、レジスタ１３に記憶される。このようにして、暗復号化処理部１０は、暗号化チェーンとする所定のブロック長の平文データに対してブロック連鎖暗号化処理を実行する。
【００３９】
また、レジスタ１３に記憶された暗号文データは、次の排他的論理和演算に利用されるとともに、バッファ３２に供給される。バッファ３２は、暗復号化処理部１０から供給された暗号文データを、ブロック単位で格納する。バッファ３２に、所定のブロック数の暗号文データが格納されると、暗復号制御部３１は、所定のブロック数で構成される暗号文データを、共通バス４１を介して、供給先である外部メモリ６０に転送するよう制御する。このようにして、ＨＤＤ５０からの平文データが暗号化され、暗号化されたデータである暗号文データが外部メモリ６０に記録される。
【００４０】
次に、図３を参照しながら、復号化処理に対応した本実施の形態１におけるブロック暗復号回路の構成について説明する。本実施の形態１におけるブロック暗復号回路において、復号化処理を実行するため、暗復号化処理部１０は、図３に示すような復号化処理を実行するための構成をも有する。すなわち、暗復号化処理部１０は、供給された暗号文データに対して、ＣＢＣモードに基づき、暗号化チェーンとする所定のブロック長のデータ毎に、ブロック連鎖復号化処理を行ない、ブロック単位毎の平文データを生成する。このようなブロック連鎖復号化処理を行なうため、暗復号化処理部１０は、供給された暗号文データに対して復号化を行ない元の平文データを復元する復号部２２、供給された暗号文データを一時記憶するレジスタ２３、復号化処理を実行するための初期値データを記憶した初期値レジスタ２４、初期値レジスタ２４からのデータとレジスタ２３からのデータとを選択するマルチプレクサ回路２５、および復号部２２で復元された平文データとマルチプレクサ回路２５からのデータとの排他的論理和演算を行なうエクスクルーシブオア回路２１を有した構成である。
【００４１】
図３において、復号化を行なうための暗号文データは、バッファ３２に供給され、バッファ３２からブロック単位の暗号文データが暗復号化処理部１０に供給される。また、暗復号化処理部１０において、初期値レジスタ２４には、暗号化チェーンの先頭ブロックに対する排他的論理和演算を実行するための初期値データが記憶されている。また、レジスタ２３は、供給された一つ前の暗号文データが記憶されている。これら初期値レジスタ２４の初期値データ、およびレジスタ２３の暗号文データは、マルチプレクサ回路２５に供給される。マルチプレクサ回路２５は、暗復号制御部３１の指示に応じて、初期値データ、または暗号文データのいずれか一方のデータを選択する。選択されたデータは、エクスクルーシブオア回路２１に供給される。一方、暗復号化処理部１０に供給された暗号文データは、復号部２２に供給されて、暗号化されたデータの復号化処理が実行される。復号部２２により復号化されたデータは、エクスクルーシブオア回路２１に供給される。エクスクルーシブオア回路２１は、復号部２２により復号化されたデータとマルチプレクサ回路２５からのデータとの排他的論理和演算を実行する。すなわち、暗復号化処理部１０に暗号文データが供給されると、供給された暗号文データが暗号化チェーンの先頭ブロックの場合、エクスクルーシブオア回路２１は、復号部２２により復号化したデータと初期値データとの排他的論理和演算を実行し、その排他的論理和演算結果であるデータを元の平文データとすることで平文データを復元する。また、暗復号化処理部１０に次のブロックの暗号文データが供給されると、エクスクルーシブオア回路２１は、復号部２２により復号化されたデータとレジスタ２３に記憶した一つ前の暗号文データとの排他的論理和演算を実行する。この排他的論理和演算結果であるデータを平文データとすることで、次の平文データの復元を行なう。このようにして、暗復号化処理部１０は、暗号化チェーンとする所定のブロック長の暗号文データに対してブロック連鎖復号化処理を実行する。
【００４２】
また、復元された平文データは、バッファ３２に供給される。バッファ３２は、暗復号化処理部１０から供給された平文データを、ブロック単位で格納する。バッファ３２に、所定のブロック数の平文データが格納されると、暗復号制御部３１は、所定のブロック数で構成される平文データを、共通バス４１を介して、供給先である外部メモリ６０に転送するよう制御する。このようにして、ＨＤＤ５０からの暗号文データが復元され、復元されたデータである平文データが外部メモリ６０に記録される。
【００４３】
図４は、本発明の実施の形態１のブロック暗復号回路の動作タイミングを示すタイミングチャートである。以下、図４を用いて本実施の形態１のブロック暗復号回路の動作について説明する。図４では、ＨＤＤ５０から平文データが、Ｒ１、Ｒ２、Ｒ３とするようなブロック単位の順番で、Ｒ１からＲ６までのように６ブロックを一つの暗号化チェーンとし、Ｒ１からＲ３までのように３ブロックを一つの転送単位として、ブロック暗復号回路に供給され、本実施の形態１のブロック暗復号回路により平文データから暗号文データが生成される一例を挙げている。
【００４４】
ＣＰＵ４０からの指示により、ブロック暗復号回路における暗号化処理が開始されると、暗復号制御部３１は、図４に示すような手順で暗号化処理の制御を行なう。すなわち、処理が開始されると、暗復号制御部３１の制御により、転送単位の平文データＲ１からＲ３までが、ＨＤＤ５０からバッファ３２に転送され、バッファ３２に書き込まれる。このとき、バッファ３２の記憶容量が４ブロック分であるのに対して転送される平文データは３ブロックであるため、バッファ３２には一つのブロックを空けた状態で平文データＲ１からＲ３までが書き込まれる。すなわち、図４に示すように、バッファ３２の領域ＢＬ１は空けた状態として、平文データＲ１が領域ＢＬ２に、平文データＲ２が領域ＢＬ３に、平文データＲ３が領域ＢＬ４に書き込まれる。
【００４５】
バッファ３２に平文データＲ１からＲ３までが書き込まれると、暗復号化処理部１０は、Ｒ１、Ｒ２、Ｒ３と順番にブロック単位で暗号化処理を実行する。また、暗復号化処理部１０で生成された暗号文データは、上述したように、ブロック単位でバッファ３２に格納され、バッファ３２に所定のブロック数の暗号文データが格納されると、バッファ３２に格納された暗号文データの読み出し処理が実行され、読み出された暗号文データは供給先である外部メモリ６０に転送される。このようにして、転送単位の暗号化処理が実行される。
【００４６】
暗復号化処理部１０は、転送単位毎に次に説明するような動作を実行する。すなわち、ブロック暗復号回路の処理が開始された後、暗号化処理に先立ち、図４に示すように、時刻Ｔ００から時刻Ｔ０１までにおいて、平文データＲ１、Ｒ２、Ｒ３が、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ３２のそれぞれの領域に格納される。その後、時刻Ｔ０３において、暗復号制御部３１の制御により、バッファ３２では領域ＢＬ２の領域が選択され、暗復号化処理部１０は、まず、この領域ＢＬ２に格納された平文データＲ１を読み込む。このとき、平文データＲ１は、暗号化チェーンにおける先頭ブロックであるため、エクスクルーシブオア回路１１により、平文データＲ１と初期値データＩＶとの排他的論理和演算Ｒ１＊ＩＶが行なわれ、さらに、暗号部１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ１が生成される。さらに、この暗号文データＥ１は、時刻Ｔ０４においてＲＥＧで示すレジスタ１３に記憶される。
【００４７】
次に、時刻Ｔ０５において、暗復号制御部３１の制御により、バッファ３２では領域ＢＬ３の領域が選択され、暗復号化処理部１０は、この領域ＢＬ３に格納された平文データＲ２を読み込む。さらに、暗復号化処理部１０は、エクスクルーシブオア回路１１により、読み込んだ平文データＲ２とレジスタ１３に記憶した暗号文データＥ１との排他的論理和演算Ｒ２＊Ｅ１を実行し、暗号部１２により排他的論理和演算結果に対して暗号化処理を施して、暗号文データＥ２を生成する。一方、暗復号化処理部１０は、この暗号文データＥ２の生成処理に並行して、レジスタ１３に記憶した暗号文データＥ１を、暗号化処理により生成した暗号文データＷ１としてバッファ３２へと送出する。このとき、暗号文データを書き込む領域として、先頭領域に対応した領域ＢＬ１が選択され、その結果、領域ＢＬ１に暗号文データＷ１が書き込まれる。このようにして、時刻Ｔ０６において、バッファ３２の領域ＢＬ１には、暗復号化処理部１０での暗号化処理により生成した暗号文データＷ１が一時記憶される。また、時刻Ｔ０６において、暗号部１２により生成された暗号文データＥ２がレジスタ１３に記憶される。
【００４８】
以下、同様に、バッファ３２での領域ＢＬ４の領域が選択されると、平文データＲ３に対応した暗号文データＥ３が生成されるとともに、バッファ３２の領域ＢＬ２には、レジスタ１３に記憶した暗号文データＥ２が暗号文データＷ２として、バッファ３２の領域ＢＬ２に書き込まれる。
【００４９】
このようにして、ＨＤＤ５０からの転送単位の平文データＲ１からＲ３までに対する暗号化処理が実行され、時刻Ｔ０９において、暗号化処理により生成された暗号文データＷ１、およびＷ２がバッファ３２に格納される。バッファ３２に格納された暗号文データＷ１、およびＷ２は、暗復号制御部３１の制御により、バッファ３２から読み出され、共通バス４１を介して、供給先の外部メモリ６０に転送され、外部メモリ６０に暗号文データが記録される。なお、このとき、平文データＲ３に対応した暗号文データＥ３は、次の転送単位の暗号化処理まで、レジスタ１３に記憶される。
【００５０】
また、先頭ブロックを含む暗号文データＷ１、およびＷ２がバッファ３２から読み出され、外部メモリ６０にこの暗号文データＷ１、およびＷ２が記録されると、次に、暗復号制御部３１の制御により、転送単位の平文データＲ４からＲ６までが、ＨＤＤ５０からバッファ３２に転送され、バッファ３２に書き込まれる。すなわち、図４に示すように、時刻Ｔ１０から時刻Ｔ１１までにおいて、平文データＲ４、Ｒ５、Ｒ６が、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ３２のそれぞれの領域に格納される。その後、時刻Ｔ１３において、バッファ３２では領域ＢＬ２の領域が選択され、暗復号化処理部１０は、まず、この領域ＢＬ２に格納された平文データＲ４を読み込む。このとき、平文データＲ４は、暗号化チェーンにおける先頭ブロックではないため、エクスクルーシブオア回路１１により、平文データＲ４とレジスタ１３に記憶される前回の処理で生成した暗号文データＥ３との排他的論理和演算Ｒ４＊Ｅ３が実行され、さらに、暗号部１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ４が生成される。この暗号文データＥ４は、時刻Ｔ１４においてレジスタ１３に記憶されるとともに、暗復号化処理部１０は、この暗号文データＥ４の生成処理に並行して、レジスタ１３に記憶した暗号文データＥ３を、暗号化処理により生成した暗号文データＷ３としてバッファ３２へと送出する。このとき、暗号文データを書き込む領域として、先頭領域に対応した領域ＢＬ１が選択され、その結果、領域ＢＬ１に暗号文データＷ３が書き込まれる。
【００５１】
以上のような処理をバッファ３２に一時記憶した平文データＲ４、Ｒ５、Ｒ６に対して実行することにより、時刻Ｔ１９において、暗号化処理により生成された暗号文データＷ３からＷ５までがバッファ３２に格納される。
【００５２】
なお、上述したように、ブロックの終端に格納されているデータが暗復号処理の切れ目であるときは、暗復号化演算の終了後、レジスタ１３、およびバッファ３２に演算結果のデータが格納される。一方、ブロックの終端に格納されているデータが暗復号処理の切れ目ではない場合には、暗復号化演算の終了後は、レジスタ１３に演算結果のデータが保持されたままとなり、次のデータの演算終了後、バッファ３２に演算結果が格納される。また、暗復号処理の切れ目は、暗号化チェーンの終端、あるいは８バイトを単位とするような暗号化単位の切れ目を意味する。すなわち、図４において、平文データＲ６は、暗号化チェーンの終端であるため、図４の時刻Ｔ１９において、平文データＲ６の演算結果である暗号文データＥ６が、レジスタ１３、およびバッファ３２の双方に格納される。
【００５３】
図４において、バッファ３２に格納された暗号文データＷ３からＷ６までは、暗復号制御部３１の制御により、バッファ３２から読み出され、共通バス４１を介して、供給先の外部メモリ６０に転送され、外部メモリ６０に暗号文データが記録される。
【００５４】
本実施の形態１のブロック暗復号回路が以上のような動作を繰り返すことにより、ＨＤＤ５０に記憶された平文データが、暗号化され、暗号化されたデータである暗号文データが外部メモリ６０に記録される。
【００５５】
次に、本実施の形態１のブロック暗復号回路において、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の動作について説明する。図５は、本発明の実施の形態１のブロック暗復号回路において、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の一例を示したタイミングチャートである。
【００５６】
図５では、ＨＤＤ５０からバッファ３２に転送する転送単位としては、図４の場合と同様に３つのブロックで一つの転送単位とするが、暗号化チェーンに関しては、５つのブロックで一つの暗号化チェーンを構成するような一例を示している。すなわち、図５に示すように、平文データＲ１からＲ５までを一つ目の暗号化チェーン、平文データＲ６からＲ１０までを次の暗号化チェーンとする平文データに対して、３つのブロックを一転送単位とする平文データＲ１からＲ３まで、次の平文データＲ４からＲ６までというように、ＨＤＤ５０からバッファ３２に平文データが転送され、バッファ３２に書き込まれる。暗復号化処理部１０は、バッファ３２に書き込まれた３つのブロックの平文データに対して、図５に示すようなタイミングで暗号化処理を実行する。
【００５７】
図５において、時刻Ｔ００から時刻Ｔ０９までは、図４の場合と同様に、先頭ブロックの平文データＲ１を含む一転送単位の暗号化処理が実行される。この後、時刻Ｔ１０から、次の転送単位における暗号化処理が行なわれる。すなわち、図５に示すように、時刻Ｔ１０から時刻Ｔ１１までにおいて、次の転送単位の平文データＲ４、Ｒ５、Ｒ６が、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ３２のそれぞれの領域に格納される。
【００５８】
その後、時刻Ｔ１３において、暗復号制御部３１の制御により、バッファ３２では領域ＢＬ２の領域が選択され、暗復号化処理部１０は、まず、この領域ＢＬ２に格納された平文データＲ４を読み込む。平文データＲ４は、暗号化チェーンの途中のブロックであるため、エクスクルーシブオア回路１１により、平文データＲ４は、前回の暗号化処理でレジスタ１３に記憶した暗号文データＥ３との排他的論理和演算Ｒ４＊Ｅ３が行なわれる。さらに、暗号部１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ４が生成される。さらに、この暗号文データＥ４は、時刻Ｔ１４においてレジスタ１３に記憶されるとともに、暗復号化処理部１０は、この暗号文データＥ４の生成処理に並行して、レジスタ１３に記憶した暗号文データＥ３を、暗号化処理により生成した暗号文データＷ３としてバッファ３２へと送出する。このとき、暗号文データを書き込む領域として、先頭領域に対応した領域ＢＬ１が選択され、その結果、領域ＢＬ１に暗号文データＷ３が書き込まれる。
【００５９】
次に、時刻Ｔ１５において、暗復号制御部３１の制御により、バッファ３２では領域ＢＬ３の領域が選択され、暗復号化処理部１０は、この領域ＢＬ３に格納された平文データＲ５を読み込む。次に、エクスクルーシブオア回路１１により、平文データＲ５と、前回の暗号化処理でレジスタ１３に記憶した暗号文データＥ４との排他的論理和演算Ｒ５＊Ｅ４が行なわれる。さらに、暗号部１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ５が生成され、この暗号文データＥ５は、時刻Ｔ１６においてレジスタ１３に記憶されるとともに、暗復号化処理部１０は、この暗号文データＥ５の生成処理に並行して、レジスタ１３に記憶した暗号文データＥ４を、暗号化処理により生成した暗号文データＷ４としてバッファ３２へと送出する。このとき、暗号文データを書き込む領域として、先頭領域に対応した領域ＢＬ２が選択され、領域ＢＬ２に暗号文データＷ４が書き込まれる。
【００６０】
さらに、時刻Ｔ１６においては、領域ＢＬ２に暗号文データＷ４が書き込まれるとともに、先に領域ＢＬ３から読み込んだ平文データＲ５は、暗号化チェーンの最終端のブロックであり、暗復号処理の切れ目となるため暗号文データＥ５が、レジスタ１３、およびバッファ３２の双方に格納される。このため、平文データＲ５に対応する暗号文データＥ５が、暗号文データＷ５としてバッファ３２の領域ＢＬ３に書き込まれる。
【００６１】
すなわち、図５に示すように、バッファ３２の領域ＢＬ３に一時記憶した平文データＲ５は、時刻Ｔ１５から時刻Ｔ１６までの期間で読み込まれ、時刻Ｔ１６において、領域ＢＬ３に暗号文データＷ５が書き込まれることとなる。このため、領域ＢＬ３から読み込んだ平文データＲ５のように、暗号化チェーンの最終端のブロックであっても、平文データを読み込む前に生成した暗号文データを上書きするような動作となるなどの不都合はなく暗号化処理を継続することができる。このように、ＨＤＤ５０から転送される平文データの暗号化チェーンの切れ目であっても、暗号文データが平文データを上書きするような不都合が生じることなく、円滑な暗復号化処理を可能としている。
【００６２】
（実施の形態２）
図６は、本発明の実施の形態２におけるブロック暗復号回路の暗復号化処理方法に基づいた動作タイミングを示すタイミングチャートである。なお、本実施の形態２において、ブロック暗復号回路の構成は実施の形態１と同様であるため詳細な説明は省略する。
【００６３】
以下、図６を用いて本実施の形態２における暗復号化処理方法に基づくブロック暗復号回路の動作について説明する。図６に示したタイミングに基づく暗復号化処理方法では、ＨＤＤ５０からは、Ｒ１、Ｒ２、Ｒ３とするようなブロック単位の順番で、Ｒ１からＲ７までのように７ブロックを一つの暗号化チェーンとし、暗号化チェーンの先頭のときは、Ｒ１からＲ４までと、バッファ３２のブロック数に等しい４ブロックを一つの転送単位とし、暗号化チェーンの先頭以外のときは、例えばＲ５からＲ７までと、バッファ３２のブロック数よりも１ブロック少ない３ブロックを一つの転送単位として、平文データがブロック暗復号回路に供給され、本実施の形態２のブロック暗復号回路により平文データから暗号文データが生成される一例を挙げている。
【００６４】
ＣＰＵ４０からの指示により、ブロック暗復号回路における暗号化処理が開始されると、暗復号制御部３１は、図６に示すような手順で暗号化処理の制御を行なう。すなわち、処理が開始されると、暗復号制御部３１の制御により、暗号化チェーンの先頭における転送単位の平文データＲ１からＲ４までが、ＨＤＤ５０からバッファ３２に転送され、バッファ３２に書き込まれる。このとき、バッファ３２の記憶容量と転送される平文データとは、どちらも４ブロックであるため、図６に示すように、平文データＲ１が領域ＢＬ１に、平文データＲ２が領域ＢＬ２に、平文データＲ３が領域ＢＬ３に、平文データＲ４が領域ＢＬ４に書き込まれる。
【００６５】
バッファ３２に平文データＲ１からＲ４までが書き込まれると、暗復号化処理部１０は、Ｒ１、Ｒ２、Ｒ３、Ｒ４と順番にブロック単位で暗号化処理を実行する。また、暗復号化処理部１０で生成された暗号文データは、上述したように、ブロック単位でバッファ３２に格納され、バッファ３２に所定のブロック数の暗号文データが格納されると、バッファ３２に格納された暗号文データの読み出し処理が実行され、読み出された暗号文データは供給先である外部メモリ６０に転送される。このようにして、転送単位の暗号化処理が実行される。
【００６６】
暗復号化処理部１０は、転送単位毎に次に説明するような動作を実行する。すなわち、ブロック暗復号回路の処理が開始された後、暗号化処理に先立ち、図６に示すように、時刻Ｔ００から時刻Ｔ０１までにおいて、平文データＲ１、Ｒ２、Ｒ３、Ｒ４が、ＢＬ１、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ３２のそれぞれの領域に格納される。次に、時刻Ｔ０１において、暗復号制御部３１の制御により、バッファ３２では領域ＢＬ１の領域が選択され、暗復号化処理部１０は、まず、この領域ＢＬ１に格納された平文データＲ１を読み込む。このとき、平文データＲ１は、暗号化チェーンにおける先頭ブロックであるため、エクスクルーシブオア回路１１により、平文データＲ１と初期値データＩＶとの排他的論理和演算Ｒ１＊ＩＶが行なわれ、さらに、暗号部１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ１が生成される。さらに、この暗号文データＥ１は、時刻Ｔ０２においてレジスタ１３に記憶される。
【００６７】
次に、時刻Ｔ０３において、暗復号制御部３１の制御により、バッファ３２では領域ＢＬ２の領域が選択され、暗復号化処理部１０は、この領域ＢＬ２に格納された平文データＲ２を読み込む。さらに、暗復号化処理部１０は、エクスクルーシブオア回路１１により、読み込んだ平文データＲ２とレジスタ１３に記憶した暗号文データＥ１との排他的論理和演算Ｒ２＊Ｅ１を実行し、暗号部１２により排他的論理和演算結果に対して暗号化処理を施して、暗号文データＥ２を生成する。一方、暗復号化処理部１０は、この暗号文データＥ２の生成処理に並行して、レジスタ１３に記憶した暗号文データＥ１を、暗号化処理により生成した暗号文データＷ１としてバッファ３２へと送出する。このとき、暗号文データを書き込む領域として、先頭領域に対応した領域ＢＬ１が選択され、その結果、領域ＢＬ１に暗号文データＷ１が書き込まれる。このようにして、時刻Ｔ０４において、バッファ３２の領域ＢＬ１には、暗復号化処理部１０での暗号化処理により生成した暗号文データＷ１が一時記憶される。また、時刻Ｔ０４において、暗号部１２により生成された暗号文データＥ２がレジスタ１３に記憶される。
【００６８】
以下、同様にして、ＨＤＤ５０からの転送単位の平文データＲ１からＲ４までに対する暗号化処理が実行され、時刻Ｔ０９において、暗号化処理により生成された暗号文データＷ１、Ｗ２、およびＷ３がバッファ３２に格納される。バッファ３２に格納された暗号文データＷ１、Ｗ２、およびＷ３は、暗復号制御部３１の制御により、バッファ３２から読み出され、共通バス４１を介して、供給先の外部メモリ６０に転送され、外部メモリ６０に暗号文データが記録される。なお、このとき、平文データＲ４に対応した暗号文データＥ４は、次の転送単位の暗号化処理まで、レジスタ１３に記憶される。
【００６９】
また、先頭ブロックを含む暗号文データＷ１からＷ３までがバッファ３２から読み出され、外部メモリ６０に記録されると、次に、暗復号制御部３１の制御により、先頭ブロックではない場合の転送単位の平文データＲ５からＲ７までが、ＨＤＤ５０からバッファ３２に転送され、バッファ３２に書き込まれる。すなわち、図６に示すように、時刻Ｔ１０から時刻Ｔ１１までにおいて、平文データＲ５、Ｒ６、Ｒ７が、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ３２のそれぞれの領域に格納される。その後、時刻Ｔ１３において、バッファ３２では領域ＢＬ２の領域が選択され、暗復号化処理部１０は、まず、この領域ＢＬ２に格納された平文データＲ５を読み込む。このとき、平文データＲ５は、暗号化チェーンにおける先頭ブロックではないため、エクスクルーシブオア回路１１により、平文データＲ５とレジスタ１３に記憶される前回の処理で生成した暗号文データＥ４との排他的論理和演算Ｒ５＊Ｅ４が実行され、さらに、暗号部１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ５が生成される。この暗号文データＥ５は、時刻Ｔ１４においてレジスタ１３に記憶されるとともに、暗復号化処理部１０は、この暗号文データＥ５の生成処理に並行して、レジスタ１３に記憶した暗号文データＥ４を、暗号化処理により生成した暗号文データＷ４としてバッファ３２へと送出する。このとき、暗号文データを書き込む領域として、先頭領域に対応した領域ＢＬ１が選択され、その結果、領域ＢＬ１に暗号文データＷ４が書き込まれる。
【００７０】
以上のような処理をバッファ３２に一時記憶した平文データＲ５、Ｒ６、Ｒ７に対して実行することにより、時刻Ｔ１９において、暗号化処理により生成された暗号文データＷ４からＷ７までがバッファ３２に格納される。なお、平文データＲ７は暗号化チェーンの終端であるため、暗号文データＷ７もこのように、時刻Ｔ１９において、バッファ３２に格納される。バッファ３２に格納された暗号文データＷ４からＷ７までは、暗復号制御部３１の制御により、バッファ３２から読み出され、共通バス４１を介して、供給先の外部メモリ６０に転送され、外部メモリ６０に暗号文データが記録される。
【００７１】
ブロック暗復号回路は、以上のような本実施の形態２における暗復号化処理方法に従った動作を繰り返すことにより、ＨＤＤ５０に記憶された平文データが、暗号化され、暗号化されたデータである暗号文データが外部メモリ６０に記録される。
【００７２】
次に、本実施の形態２のブロック暗復号回路において、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の動作について説明する。図７は、本発明の実施の形態２のブロック暗復号回路において、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の一例を示したタイミングチャートである。
【００７３】
図７では、ＨＤＤ５０からバッファ３２に転送する転送単位としては、図６の場合と同様に、暗号化チェーンの先頭のときは、Ｒ１からＲ４までと、バッファ３２のブロック数に等しい４ブロックを一つの転送単位とし、暗号化チェーンの先頭以外のときは、例えばＲ５からＲ７までと、バッファ３２のブロック数よりも少ない３ブロックを一つの転送単位とするが、暗号化チェーンに関しては、５つのブロックで一つの暗号化チェーンを構成するような一例を示している。すなわち、図７に示すように、平文データＲ１からＲ５までを一つ目の暗号化チェーン、平文データＲ６からＲ１０までを次の暗号化チェーンとする平文データに対して、暗号化チェーンの先頭のときは、４つのブロックを一転送単位とする平文データＲ１からＲ４まで、暗号化チェーンの先頭以外のときは、平文データＲ５からＲ７までというように、ＨＤＤ５０からバッファ３２に平文データが転送され、バッファ３２に書き込まれる。暗復号化処理部１０は、バッファ３２に書き込まれたブロック単位の平文データに対して、図７に示すようなタイミングで暗号化処理を実行する。
【００７４】
図７において、時刻Ｔ００から時刻Ｔ０９までは、図６の場合と同様に、先頭ブロックの平文データＲ１を含む転送単位の暗号化処理が実行される。この後、時刻Ｔ１０から、次の転送単位における暗号化処理が行なわれる。すなわち、図７に示すように、時刻Ｔ１０から時刻Ｔ１１までにおいて、次の転送単位の平文データＲ５、Ｒ６、Ｒ７が、ＢＬ２、ＢＬ３、ＢＬ４で示すバッファ３２のそれぞれの領域に格納される。
【００７５】
その後、時刻Ｔ１３において、暗復号制御部３１の制御により、バッファ３２では領域ＢＬ２の領域が選択され、暗復号化処理部１０は、まず、この領域ＢＬ２に格納された平文データＲ５を読み込む。さらに、平文データＲ５とレジスタ１３に記憶し続けた暗号文データＥ４との排他的論理和演算Ｒ５＊Ｅ４が行なわれ、さらに、暗号部１２により排他的論理和演算結果に対して暗号化処理が施されて、暗号文データＥ５が生成される。この暗号文データＥ５は、時刻Ｔ１４においてレジスタ１３に記憶される。これと並行して、レジスタ１３に前回から記憶し続けた暗号文データＥ４も、時刻Ｔ１４において、バッファ３２に転送され、領域ＢＬ１に格納される。さらに、上述のレジスタ１３に記憶した暗号文データＥ５は、暗号化チェーンの終端の平文データＲ５に対する暗号文データであるため、この暗号文データＥ５が、時刻Ｔ１４においてレジスタ１３に記憶されるとともに、この暗号文データＥ５は、暗号文データＷ５としてバッファ３２へと送出され、領域ＢＬ２にも書き込まれる。
【００７６】
このように、平文データＲ６が暗復号化処理部１０に供給される前に暗号文データＷ５がバッファ３２に書き込まれることとなるが、図７に示すように、平文データＲ６はバッファ３２のＢＬ３に記憶されており、一方、暗号文データＷ５はバッファ３２のＢＬ２に書き込まれる。このため、領域ＢＬ２から読み込んだ平文データＲ５のように、暗号化チェーンの最終端のブロックであっても、平文データを読み込む前に生成した暗号文データを上書きするような動作となるなどの不都合はなく暗号化処理を継続することができる。このように、ＨＤＤ５０から転送される平文データの暗号化チェーンの切れ目であっても、暗号文データが平文データを上書きするような不都合が生じることなく、円滑な暗復号化処理を可能としている。
【産業上の利用可能性】
【００７７】
本発明は、例えば、光ディスクの一種であるＤＶＤ、あるいはメモリカードの一種であるＳＤメモリカードなど著作権保護に基づいて、映像や音声などのコンテンツデータを記録するときの暗号化装置や、あるいは映像や音声などの暗号化されたデータを復元するときの復号化装置などに利用することが可能である。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施の形態１におけるブロック暗復号回路の暗復号化処理方法を利用した暗復号装置の一例を示す概略図
【図２】本発明の実施の形態１におけるブロック暗復号回路の暗号化処理に対応した構成を示すブロック図
【図３】本発明の実施の形態１におけるブロック暗復号回路の復号化処理に対応した構成を示すブロック図
【図４】本発明の実施の形態１のブロック暗復号回路の動作タイミングを示すタイミングチャート
【図５】本発明の実施の形態１のブロック暗復号回路において、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の一例を示したタイミングチャート
【図６】本発明の実施の形態２におけるブロック暗復号回路の暗復号化処理方法に基づいた動作タイミングを示すタイミングチャート
【図７】本発明の実施の形態２のブロック暗復号回路において、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の一例を示したタイミングチャート
【図８】従来のＣＢＣモードに対応したブロック暗号回路のブロック図
【図９】従来のブロック暗号回路の動作タイミングを示すタイミングチャート
【図１０】従来のブロック暗号回路において、転送単位のブロック数と暗号化チェーンを構成するブロック数との比が整数倍関係とはならない場合の一例を示したタイミングチャート
【符号の説明】
【００７９】
１０    暗復号化処理部
１１，２１，９１１    エクスクルーシブオア回路
１２，９１２    暗号部
１３，２３，９１３    レジスタ
１４，２４    初期値レジスタ
１５，２５    マルチプレクサ回路
２２    復号部
３１    暗復号制御部
３２，９３２    バッファ
４０，９４０    ＣＰＵ
４１，９４１    共通バス
５０    ＨＤＤ
５１，６１    Ｉ／Ｆ部
６０    外部メモリ
１００    ＬＳＩ
９１０    暗号化処理部
９３１    暗号制御部
９５０    供給元メモリ
９６０    供給先メモリ
【図１】
2006330126.tif 000003
【図２】
2006330126.tif 000004
【図３】
2006330126.tif 000005
【図４】
2006330126.tif 000006
【図５】
2006330126.tif 000007
【図６】
2006330126.tif 000008
【図７】
2006330126.tif 000009
【図８】
2006330126.tif 000010
【図９】
2006330126.tif 000011
【図１０】
2006330126.tif 000012