(57)【要約】【課題】中断／再開機能を効率的に行うことが可能な暗号処理装置および暗号処理方法を提供する。【解決手段】ＤＭＡＣ１４がデータ格納メモリ１２から処理すべき転送データを指示する情報となるＤＭＡディスクリプタに、ＤＥＳやＡＥＳといった共通鍵暗号の暗号アルゴリズムを指示するフィールドと、ＥＣＢモードやＣＢＣモードやCounter Modeといった暗号処理モードを指示するフィールドとを有するディスクリプタフォーマットになっている。また、ＤＭＡＣ１４がデータ格納メモリ１２から処理すべき転送データを指示する情報となるＤＭＡディスクリプタに、ＭＤ５やＳＨＡ−１といったハッシュアルゴリズムを指定するフィールドと、ハッシュ処理の中断の指示するフィールドと、ハッシュ処理の再開を指示するフィールドとを有するディスクリプタフォーマットになっている。【選択図】      図１
2006039000.tif 000002
【特許請求の範囲】
【請求項１】
暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、
処理対象データを格納するデータ格納メモリと、
転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、
上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックへのデータ転送を制御するメモリアクセスコントローラと、を有し、
上記メモリアクセスコントローラが上記データ格納メモリから処理すべき転送データを指示するディスクリプタに、共通鍵暗号における暗号アルゴリズムの指示と、暗号処理モードの指示が選択可能なディスクリプタフォーマットを含む
暗号処理装置。
【請求項２】
上記共通鍵暗号ブロックは、各種暗号処理モードでの処理時に使用されるデータをセットする記憶手段と、次のブロック処理時に使用されることになるデータを自動生成して保持する記憶手段を有する
請求項１記載の暗号処理装置。
【請求項３】
処理すべきデータが中断処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、中断処理の指示を指定する
請求項１記載の暗号処理装置。
【請求項４】
処理すべきデータが暗号化の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、暗号化の指示を指定する
請求項１記載の暗号処理装置。
【請求項５】
処理すべきデータが再開処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、再開処理の指示を指定する
請求項１記載の暗号処理装置。
【請求項６】
暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、
処理対象データを格納するデータ格納メモリと、
転送された処理対象データのハッシュ処理を行うハッシュブロックと、
上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラと、を有し、
上記メモリアクセスコントローラが上記データ格納メモリから処理すべき転送データを指示するディスクリプタに、ハッシュ演算におけるハッシュアルゴリズムの指示と、ハッシュ処理の中断の指示と、ハッシュ処理の再開の指示が選択可能なディスクリプタフォーマットを含む
暗号処理装置。
【請求項７】
上記ハッシュブロックは、ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段を有する
請求項６記載の暗号処理装置。
【請求項８】
処理すべきデータを中断も再開も行わずに一括で処理する場合、上記ディスクリプタでは中断無し、再開無しを指定する
請求項６記載の暗号処理装置。
【請求項９】
処理すべきデータがハッシュ演算の最初で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開無しを指示する
請求項６記載の暗号処理装置。
【請求項１０】
処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開有りを指示する
請求項６記載の暗号処理装置。
【請求項１１】
処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算の最後のデータとなる場合、上記ディスクリプタでは中断無し、再開有りを指示する
請求項６記載の暗号処理装置。
【請求項１２】
暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、
処理対象データを格納するデータ格納メモリと、
転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、
転送された処理対象データのハッシュ処理を行うハッシュブロックと、
上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックおよび上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラと、を有し、
上記メモリアクセスコントローラが上記データ格納メモリから上記共通鍵暗号ブロックに処理すべき転送データを指示するディスクリプタに、共通鍵暗号における暗号アルゴリズムの指示と、暗号処理モードの指示が選択可能なディスクリプタフォーマットを含み、上記メモリアクセスコントローラが上記データ格納メモリから上記ハッシュブロックに処理すべき転送データを指示するディスクリプタに、ハッシュ演算におけるハッシュアルゴリズムの指示と、ハッシュ処理の中断の指示と、ハッシュ処理の再開の指示が選択可能なディスクリプタフォーマットを含む
暗号処理装置。
【請求項１３】
ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、
上記ディスクリプタに、共通鍵暗号における暗号アルゴリズムの指示と、暗号処理モードの指示が選択可能なディスクリプタフォーマットを含む
暗号処理方法。
【請求項１４】
ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、
上記ディスクリプタに、ハッシュ演算におけるハッシュアルゴリズムの指示と、ハッシュ処理の中断の指示と、ハッシュ処理の再開の指示が選択可能なディスクリプタフォーマットを含む
暗号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハッシュアルゴリズムによる認証処理と共通鍵暗号による暗号化処理において、処理の中断／再開機能を備えた暗号処理装置および暗号処理方法に関するものである。
【背景技術】
【０００２】
各種暗号処理の用途としてはメディアに格納されたコンテンツの復号や、ネットワークを介して送受信されるデータの暗号化／復号など、用途としては様々である（たとえば特許文献１参照）。
【０００３】
たとえば、ネットワークで配信されるデータは一定の通信速度を保証するＱｏＳ(Quality Of Service)を実現するため、優先順位の高いパケットを先に処理して送信しなければならない場合がある。
【特許文献１】特開２００３−２７３３８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、暗号処理を伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する場合、各種暗号アルゴリズムの違いや、暗号処理モードの違いにより、中断／再開方法は様々であるため、その条件判定等のためにソフトウエアの介入が頻繁になるようでは、中断／再開機能が逆にＱｏＳ実現の妨げになるという点で問題があった。
【０００５】
本発明の目的は、各種暗号処理の中断／再開機能に関して、各種暗号アルゴリズムの違いや、暗号処理モードの違いによることなく、中断／再開機能を効率的に行うことが可能な暗号処理装置および暗号処理方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の第１の観点は、暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、処理対象データを格納するデータ格納メモリと、転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックへのデータ転送を制御するメモリアクセスコントローラとを有し、上記メモリアクセスコントローラが上記データ格納メモリから処理すべき転送データを指示するディスクリプタに、共通鍵暗号における暗号アルゴリズムの指示と、暗号処理モードの指示が選択可能なディスクリプタフォーマットを含む。
【０００７】
好適には、上記共通鍵暗号ブロックは、各種暗号処理モードでの処理時に使用されるデータをセットする記憶手段と、次のブロック処理時に使用されることになるデータを自動生成して保持する記憶手段を有する。
【０００８】
好適には、処理すべきデータが中断処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、中断処理の指示を指定する。
【０００９】
好適には、処理すべきデータが暗号化の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、暗号化の指示を指定する。
【００１０】
好適には、処理すべきデータが再開処理の対象となる場合、上記ディスクリプタでは転送開始位置と転送サイズの指定に加えて、再開処理の指示を指定する。
【００１１】
本発明の第２の観点は、暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、処理対象データを格納するデータ格納メモリと、転送された処理対象データのハッシュ処理を行うハッシュブロックと、上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラとを有し、上記メモリアクセスコントローラが上記データ格納メモリから処理すべき転送データを指示するディスクリプタに、ハッシュ演算におけるハッシュアルゴリズムの指示と、ハッシュ処理の中断の指示と、ハッシュ処理の再開の指示が選択可能なディスクリプタフォーマットを含む。
【００１２】
好適には、上記ハッシュブロックは、ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段を有する。
【００１３】
好適には、処理すべきデータを中断も再開も行わずに一括で処理する場合、上記ディスクリプタでは中断無し、再開無しを指定する。
【００１４】
好適には、処理すべきデータがハッシュ演算の最初で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開無しを指示する。
【００１５】
好適には、処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算を途中で中断する場合、上記ディスクリプタでは中断有り、再開有りを指示する。
【００１６】
好適には、処理すべきデータがハッシュ演算の途中で処理されかつハッシュ演算の最後のデータとなる場合、上記ディスクリプタでは中断無し、再開有りを指示する。
【００１７】
本発明の第３の観点は、暗号処理の中断、再開機能を有し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理装置であって、処理対象データを格納するデータ格納メモリと、転送された処理対象データに対して共通鍵暗号により暗号化処理を行う共通鍵暗号ブロックと、転送された処理対象データのハッシュ処理を行うハッシュブロックと、上記データ格納メモリから処理すべき転送データを指示する情報であるディスクリプタに基づいて、上記データ格納メモリから上記共通鍵暗号ブロックおよび上記ハッシュブロックへのデータ転送を制御するメモリアクセスコントローラとを有し、上記メモリアクセスコントローラが上記データ格納メモリから上記共通鍵暗号ブロックに処理すべき転送データを指示するディスクリプタに、共通鍵暗号における暗号アルゴリズムの指示と、暗号処理モードの指示が選択可能なディスクリプタフォーマットを含み、上記メモリアクセスコントローラが上記データ格納メモリから上記ハッシュブロックに処理すべき転送データを指示するディスクリプタに、ハッシュ演算におけるハッシュアルゴリズムの指示と、ハッシュ処理の中断の指示と、ハッシュ処理の再開の指示が選択可能なディスクリプタフォーマットを含む。
【００１８】
本発明の第４の観点は、ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、上記ディスクリプタに、共通鍵暗号における暗号アルゴリズムの指示と、暗号処理モードの指示が選択可能なディスクリプタフォーマットを含む。
【００１９】
本発明の第５の観点は、ディスクリプタに基づいてデータ格納メモリから処理すべき転送データを指示し、暗号処理に伴うパケット処理を一時中断して優先順位の高いパケットを先に処理する暗号処理方法であって、上記ディスクリプタに、ハッシュ演算におけるハッシュアルゴリズムの指示と、ハッシュ処理の中断の指示と、ハッシュ処理の再開の指示が選択可能なディスクリプタフォーマットを含む。
【００２０】
本発明によれば、メモリアクセスコントローラがデータ格納メモリから処理すべき転送データを指示する情報となるディスクリプタに、共通鍵暗号の暗号アルゴリズムを指示するフィールドと、暗号処理モードを指示するフィールドを有するディスクリプタフォーマットになっている。
このようなフォーマットを設けることにより、データ格納メモリに格納された全ての処理対象データのうち、たとえばDES-CBCモードで処理を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとDESとCBCモードの指示を、またたとえば、AES-Counter Modeで処理を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとAESとCounter Modeの指示を、それぞれの処理対象データに対して指示する。
また、次のブロック処理時に使用されるデータが自動生成されて保持されるため、処理の中断時はそのデータストアし、処理の再開時はストアしたデータをセットすることにより処理の再開が容易に行われる。
【００２１】
また、本発明によれば、メモリアクセスコントローラがデータ格納メモリから処理すべき転送データを指示する情報となるディスクリプタに、ハッシュアルゴリズムを指定するフィールドと、ハッシュ処理の中断の指示するフィールドと、ハッシュ処理の再開を指示するフィールドを有するディスクリプタフォーマットになっている。
このようなフォーマットを設けることにより、データ格納メモリに格納された全ての処理対象データのうち、たとえばＭＤ５で処理の中断を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとＭＤ５と中断の指示を、またたとえば、ＳＨＡ−１で処理の再開を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとＳＨＡ−１と再開の指示をする。
また、ハッシュ処理の演算途中結果が保持されるため、処理の中断時はその途中結果となるデータをストアし、処理の再開時はストアしたデータをセットすることにより処理の再開が容易に行われる。
【発明の効果】
【００２２】
本発明によれば、各種暗号処理の中断／再開機能に関して、各種暗号アルゴリズムの違いや、暗号処理モードの違いによることなく、条件判定等をハードウェアで効率的に行なうことを可能とし、ソフトウエアでは中断／再開時には、演算途中データのストア処理／ロード処理のみ行うことにより、中断／再開機能を効率的に行うことを可能となる利点がある。
【発明を実施するための最良の形態】
【００２３】
以下に、本発明の一実施の形態について、図面に関連付けて説明する。
【００２４】
図１は、本発明に係る暗号処理装置の一実施形態を示すブロック図である。
【００２５】
本実施形態に係る暗号処理装置１０は、図１に示すように、ＣＰＵ１１、データ格納メモリ１２、データバス１３、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ；Direct Memory Access Controlle）１４、セレクタ回路１５、初期値（ＩＶ；Initial Value ）レジスタ１６、共通鍵暗号ブロック１７、ハッシュブロック１８、ＩＶレジスタ１９、およびセレクタ回路２０を有する。
本実施形態においては、データバス１３に対して、ＣＰＵ１１、データ格納メモリ１２、ＤＭＡＣ１４、ＩＶレジスタ１６、およびＩＶレジスタ１９が接続されている。
【００２６】
本実施形態の暗号処理装置１０は、以下の特徴を有している。
ＤＭＡＣ１４がデータ格納メモリ１２から処理すべき転送データを指示する情報となるＤＭＡディスクリプタに、ＤＥＳ（Data Encryption Standard）やＡＥＳ（Advanced Encryption Standard）といった共通鍵暗号の暗号アルゴリズムを指示するフィールドと、ＥＣＢ（Electronic Code Book）モードやＣＢＣ（Cipher Block Chaining ）モードやカウンタモード（Counter Mode）といった暗号処理モードを指示するフィールドとを有するディスクリプタフォーマットになっている。
これにより、データ格納メモリ１２に格納された全ての処理対象データのうち、たとえばDES-CBCモードで処理を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとＤＥＳとＣＢＣモードの指示を、またたとえば、AES-Counter Modeで処理を行う必要がある処理対象データに対しては、転送データ位置と転送データサイズとＡＥＳとCounter Modeの指示を、それぞれの処理対象データに対して指示可能としている。
そして、共通鍵暗号ブロック１７は、ＩＶレジスタ１６に接続されており、各種暗号処理モード(CBCモード、Counter Mode)での処理時に使用されるＩＶをセットする記憶手段と、次のブロック処理時に使用されることになるＩＶを自動生成して保持する記憶手段としての機能を有する。
これにより、次のブロック処理時に使用されるＩＶが自動生成されて保持されるため、処理の中断時はそのＩＶをストアし、処理の再開時はストアしたＩＶをセットすることにより処理の再開を容易としている。
【００２７】
また、本実施形態の暗号処理装置１０は、以下の特徴も有する。
ＤＭＡＣ１４がデータ格納メモリ１２から処理すべき転送データを指示する情報となるＤＭＡディスクリプタに、ＭＤ５（Message Digest #5 ）やＳＨＡ−１（Secure Hash Algorithm ）といったハッシュアルゴリズムを指定するフィールドと、ハッシュ処理の中断の指示するフィールドと、ハッシュ処理の再開を指示するフィールドと、を有するディスクリプタフォーマットになっている。
これにより、データ格納メモリ１２に格納された全ての処理対象データのうち、たとえばＭＤ５で処理の中断を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとＭＤ５と中断の指示を、またたとえば、ＳＨＡ−１で処理の再開を行なう必要がある処理対象データに対しては、転送データ位置と転送データサイズとＳＨＡ−１と再開を指示可能としている。
そして、ハッシュブロック１８は、ＩＶレジスタ１９に接続されており、ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段としての機能を有する。
これにより、ハッシュ処理の演算途中結果が保持されるため、処理の中断時はその途中結果となるＩＶをストアし、処理の再開時はストアしたＩＶをセットすることにより処理の再開を容易としている。
【００２８】
本実施形態の暗号処理装置１０においては、データ格納メモリ１２が、データバス１３に接続され、同じくデータバス１３に接続されたＣＰＵ１１からの指示により、暗号化／復号処理又はハッシュ処理を行うための処理対象データと、処理対象データの格納先と処理方法を指示するＤＭＡディスクリプタが、データ格納メモリ１２に格納される。
また、同じくデータバス１３に接続されたＤＭＡＣ１４は、データ格納メモリ１２に格納された処理すべき対象データの転送を行う。
【００２９】
共通鍵暗号ブロック１７はセレクタ回路１５に接続され、ＤＭＡＣ１４により転送される処理対象データの処理を行う。
さらに、共通鍵暗号ブロック１７はＩＶレジスタ１６に接続され、暗号処理モードがＣＢＣやCounter Modeの場合にＩＶレジスタ１６に格納されたデータを用いて演算を行い、また、次のブロック処理時に使用されるＩＶを自動生成して保持する。
さらに、ＩＶレジスタ１６はデータバス１３に接続され、ＣＰＵ１１もしくはＤＭＡＣ１４のいずれかの指示に従い、データ格納メモリ１２との間でＩＶデータのストア／ロードを行う。共通鍵暗号ブロック１７はセレクタ回路２０に接続され、処理済みのデータがＤＭＡＣ１４によりデータ格納メモリ１２に格納される。
【００３０】
ハッシュブロック１８はセレクタ回路１５に接続され、ＤＭＡＣ１４により転送される処理対象データの処理を行う。
さらに、ハッシュブロック１８はＩＶレジスタ１９に接続され、ハッシュ演算の再開の場合にＩＶレジスタ１９に格納されたデータを用いて演算を行い、また、ハッシュ演算の中断の場合はＩＶレジスタ１９に演算途中データを自動生成して保持する。
さらに、ＩＶレジスタ１９はデータバス１３に接続され、ＣＰＵ１１もしくはＤＭＡＣ１４のいずれかの指示に従い、データ格納メモリ１２との間でＩＶデータのストア／ロードを行う。ハッシュブロック１８はセレクタ回路２０に接続され、処理済みのデータがＤＭＡＣ１４によりデータ格納メモリ１２に格納される。
【００３１】
以下に、各部の構成および機能、並びに暗号化／復号処理、およびハッシュ処理における具体的な中断／再開処理について追って説明する。
【００３２】
図２は、一般的なＤＭＡディスクリプタのリンクの様子と、暗号アルゴリズム、暗号処理モード、ハッシュアルゴリズム、ハッシュ中断処理、ハッシュ再開処理を指示する場合に必要となる情報を格納する方法を示す図である。
ここで示す例は一般的にはスキャッタ・ギャザ方式と呼ばれ、メモリ上に散在するデータを取り込むためにＤＭＡディスクリプタを用い、ＤＭＡディスクリプタの内容に従い、取り込むべきデータを処理するものである。
【００３３】
図２のＤＭＡディスクリプタＡ１には、処理すべきデータＡ４の情報が格納されている。ここでは例として、第１ワード目が処理すべきデータＡ４の先頭アドレス、第２ワード目が処理すべきデータＡ４の長さ、第４ワード目が次に処理すべきＤＭＡディスクリプタＡ２の先頭アドレスを示す構成例となっている。
同様に、ＤＭＡディスクリプタＡ２は処理すべきデータＡ５に対応し、ＤＭＡディスクリプタＡ３は処理すべきデータＡ６に対応している。
ここでは、ＤＭＡディスクリプタＡ１，Ａ２，Ａ３の第３ワード目は他の処理情報とは重なってはいない。このため、その第３ワード目に、暗号アルゴリズム、暗号処理モード、ハッシュアルゴリズム、ハッシュ中断処理、ハッシュ再開処理を指示する指示情報を格納する領域として割り当てる。
【００３４】
処理すべきデータが、Ａ４で示されるＭＤ５での中断処理の対象となる領域の場合、ＤＭＡディスクリプタでは転送開始位置と転送サイズの指定に加えてＭＤ５の中断処理の指示を指定する。
処理すべきデータが、Ａ５で示されるDES-CBC暗号化の対象となる領域の場合、ＤＭＡディスクリプタでは転送開始位置と転送サイズの指定に加えてDES-CBC暗号化の指示を指定する。
処理すべきデータが、Ａ６で示されるＭＤ５での再開処理の対象となる領域の場合、ＤＭＡディスクリプタでは転送開始位置と転送サイズの指定に加えてＭＤ５での再開処理の指示を指定する。
【００３５】
図３は、図１の暗号処理装置１０における共通鍵暗号ブロック１７の構成例を示すブロック図である。
【００３６】
図３の共通鍵暗号ブロック１７は、入力データバッファＢ１、入力ＩＶレジスタＢ２、出力ＩＶレジスタＢ３、セレクタ回路Ｂ４、ＥｘＯＲ回路Ｂ５、セレクタ回路Ｂ６、インクリメント回路Ｂ７、共通鍵暗号コア(DES, AES)Ｂ８、ＥｘＯＲ回路Ｂ９、ＥｘＯＲ回路Ｂ１０、セレクタ回路Ｂ１１、および出力データバッファＢ１２を有する。
【００３７】
入力データバッファＢ１は、図１のセレクタ回路１５からの出力データを取り込み、共通鍵暗号ブロック１７内に処理対象データを供給する。
入力ＩＶレジスタＢ２は、図１のＩＶレジスタ１６からの出力データを取り込み、共通鍵暗号ブロック１７内にＩＶデータを供給する。
出力ＩＶレジスタＢ３は、共通鍵暗号ブロック１７内で自動生成したＩＶデータを図１のＩＶレジスタ１６に供給する。
出力データバッファＢ１２は、処理済のデータを図１のセレクタ回路２０に供給する。
【００３８】
共通鍵暗号コア(DES,AES)Ｂ８への入力データは、入力データバッファＢ１の出力、もしくは、入力データバッファＢ１と入力ＩＶレジスタＢ２をエクスクルーシブＯＲ（排他的論理和）した出力、もしくは、入力ＩＶレジスタＢ２のいずれかをセレクタ回路Ｂ６で選択して入力される。
出力データバッファＢ１２への入力データは、共通鍵暗号コア(DES,AES)Ｂ８の出力、もしくは、共通鍵暗号コア(DES,AES)Ｂ８の出力と入力データバッファＢ１をエクスクルーシブＯＲした出力、もしくは、共通鍵暗号コア(DES,AES)Ｂ８の出力と入力ＩＶレジスタＢ２をエクスクルーシブＯＲした出力のいずれかをセレクタ回路Ｂ１１で選択して入力される。
【００３９】
出力ＩＶレジスタＢ３への入力データは、入力データバッファＢ１の出力、もしくは、セレクタ回路Ｂ１１の出力、もしくは、入力ＩＶレジスタＢ２を＋１インクリメントするインクリメント回路Ｂ７の出力のいずれかをセレクタ回路Ｂ４で選択して入力される。
【００４０】
図４は、図３のブロック図において、ＥＣＢモード暗号化／復号の場合のデータ経路を示す図である。
【００４１】
図３のブロック図で示したブロック構成において、ＤＭＡディスクリプタにてＥＣＢモード暗号化、もしくは、ＥＣＢモード復号を指示した場合に、選択されるデータ経路を図４に実線で示す。
ＥＣＢモードはＩＶを使用しないモードのため、この場合はＩＶレジスタへの経路は寸断される。
【００４２】
図５は、図３のブロック図において、ＣＢＣ暗号化の場合のデータ経路を示す図である。
【００４３】
図３のブロック図で示したブロック構成において、ＤＭＡディスクリプタにてＣＢＣモード暗号化を指示した場合に、選択されるデータ経路を図５に実線で示す。
ＣＢＣモード暗号化の場合は、共通鍵暗号コアＢ８への入力は、処理対象データとＩＶが順次エクスクルーシブＯＲされたデータが入力されるように動作させ、暗号化データとしての出力は、共通鍵暗号コアＢ８の出力をそのまま処理済みのデータとして出力させる。
また、次のブロック処理時に使用されるＩＶは、暗号化後のデータを用いることになるため、暗号化データを出力ＩＶレジスタＢ３に保持させるよう動作させる。
【００４４】
図６は、図３のブロック図において、ＣＢＣ復号の場合のデータ経路を示す図である。
【００４５】
図３のブロック図で示したブロック構成において、ディスクリプタにてＣＢＣモード復号を指示した場合に、選択されるデータ経路を図６に実線で示す。
ＣＢＣモード復号の場合は、共通鍵暗号コアＢ８への入力は、処理対象データをそのまま入力させ、暗号化データとしての出力は、共通鍵暗号コアＢ８の出力とＩＶを順次エクスクルーシブＯＲしたデータを処理済みのデータとして出力させる。
また、次のブロック処理時に使用されるＩＶは、暗号化前のデータを用いることになるため、暗号化前データ（処理対象データ）を出力ＩＶレジスタＢ３に保持させるよう動作させる。
【００４６】
図７は、図３のブロック図において、カウンタモード（Counter Mode）暗号化／復号の場合のデータ経路を示す図である。
【００４７】
図３のブロック図で示したブロック構成において、ディスクリプタにてCounter Mode暗号化、もしくは、Counter Mode復号を指示した場合に、選択されるのデータ経路を図７に実線で示す。
Counter Modeの場合は暗号化と復号では同じ経路となる。共通鍵暗号コアＢ８への入力にはＩＶを入力させ、暗号化データとしての出力は、共通鍵暗号コアＢ８の出力と処理対象データを順次エクスクルーシブＯＲしたデータを処理済みのデータとして出力させる。また、次のブロック処理時に使用されるＩＶは、ＩＶを＋１インクリメントしたデータを出力ＩＶレジスタＢ３に保持させるよう動作させる。
【００４８】
これにより、様々な暗号処理モード（ＥＣＢモード、ＣＢＣモード、Counter Mode）であったとしても、ＩＶレジスタ（図１のＩＶレジスタ１６）の値をＣＰＵ１１もしくはＤＭＡＣ１４がストア／ロードするだけで、暗号処理の中断／再開が容易に可能となる。
【００４９】
次に、ハッシュ処理のおける中断／再開処理について、図８〜図１３に関連付けて説明する。
【００５０】
ハッシュアルゴリズムは、アルゴリズムの特性上、処理終了時は、アルゴリズムで規定されている固定のＩＶデータとの加算処理を行わなければならないが、処理を中断する場合は、その加算処理をバイパスする必要があるため、ディスクリプタにて中断を指示した場合は、加算処理をバイパスする経路を用意する。
また同様に、アルゴリズムの特性上、処理の開始時は、アルゴリズムで規定されている固定のＩＶデータを最初に演算させなければならないが、処理を再開する場合は、固定のＩＶデータのかわりに計算途中データをＩＶとして使用する必要があるため、ディスクリプタにて再開を指示した場合は、計算途中データのＩＶを使用する経路を用意する。
【００５１】
図８（Ａ），（Ｂ）は、ハッシュ演算処理の中断／再開を行う場合、中断を指示する必要がある処理データ領域と中断を指示する必要がない処理データ領域、また、再開を指示する必要がある処理データ領域と再開を指示する必要がない処理データ領域について説明するための図である。
【００５２】
図８（Ａ）における（１）は、ハッシュ演算対象となるすべての処理対象データを示す。（１）のデータに対して、中断も再開も行わずに一括で処理する場合は、ＤＭＡディスクリプタでは、中断無し、再開無しを指定する。
図８（Ｂ）における（２）〜（４）は、図８（Ａ）における（１）の処理対象データを３分割して処理する場合、それぞれのデータに対して、中断／再開の指示方法を示した図である。
（２）は、ハッシュ演算の最初でかつハッシュ演算を途中で中断することになるため、ＤＭＡディスクリプタでは、中断有り、再開無しを指示することになる。
（３）は、ハッシュ演算の途中でかつハッシュ演算を途中で中断することになるため、ＤＭＡディスクリプタでは、中断有り、再開有りを指示することになる。
（４）は、ハッシュ演算の途中でかつハッシュ演算の最後のデータとなるため、ＤＭＡディスクリプタでは、中断無し、再開有りを指示することになる。
【００５３】
図９は、図１の暗号処理装置１０におけるハッシュブロック１８の構成例を示すブロック図である。
【００５４】
図９のハッシュブロック１８は、入力データバッファＣ１、入力ＩＶレジスタＣ２、出力ＩＶレジスタＣ３、初期ＩＶ固定データ（出力部）Ｃ４、セレクタ回路Ｃ５、ハッシュ演算コア(MD5,SHA-1)Ｃ６、初期ＩＶ固定データ（出力部）Ｃ７、加算回路Ｃ８、および出力データバッファＣ９を有している。
【００５５】
入力データバッファＣ１は、図１のセレクタ回路１５からの出力データを取り込み、ハッシュブロック内に処理対象データを供給する。
入力ＩＶレジスタＣ２は、図１のＩＶレジスタ１９からの出力データを取り込み、ハッシュブロック内にＩＶデータとして供給する。
出力ＩＶレジスタＣ３は、ハッシュブロック内の計算途中結果となるデータを図１のＩＶレジスタ１９に供給する。
出力データバッファＣ９は、処理済のデータを図１のセレクタ回路２０に供給する。
【００５６】
ハッシュ演算コア(MD5,SHA1)Ｃ６への入力データは、入力データバッファＣ１の出力と、セレクタ回路Ｃ５の出力が、それぞれ入力される。
セレクタ回路Ｃ５は、ＤＭＡディスクリプタにて再開無しが指示された場合は初期ＩＶ固定データＣ４の出力を選択し、再開有りが指示された場合は入力ＩＶレジスタＣ３の出力を選択する。
出力データバッファＣ９への入力データは、ハッシュ演算コア(MD5,SHA-1)Ｃ６の出力データと初期ＩＶ固定データＣ７を加算回路Ｃ８で演算した結果を入力する。
出力ＩＶレジスタＣ３への入力データは、ハッシュ演算コア(MD5,SHA-1)Ｃ６の出力データが入力される。初期ＩＶ固定データＣ７と加算する前のデータ（ハッシュの処理単位である５１２バイト毎に順次出力されるデータ）が、計算途中結果となり、その計算途中データをＩＶとして保持する。
【００５７】
図１０は、図９における、中断無し、再開無しの場合のデータ経路を示す図である。
【００５８】
図９のブロック図で示したブロック構成において、ディスクリプタにて中断無し、再開無しを指示した場合、選択されるデータ経路を図１０に実線で示す。
この場合、ハッシュ演算コア(MD5,SHA-1)Ｃ６に入力されるＩＶデータとしては初期ＩＶ固定データＣ４を選択し、出力データバッファＣ９に演算結果が格納されるよう動作させる。
【００５９】
図１１は、図９における、中断有り、再開無しの場合のデータ経路を示す図である。
【００６０】
図９のブロック図で示したブロック構成において、ディスクリプタにて中断有り、再開無しを指示した場合、選択されるデータ経路を図１１に実線で示す。この場合、ハッシュ演算コア(MD5,SHA-1)Ｃ６に入力されるＩＶデータとしては初期ＩＶ固定データＣ４を選択し、計算途中結果が出力ＩＶレジスタＣ３に格納されるよう動作させる。
【００６１】
図１２は、図９における、中断有り、再開有りの場合のデータ経路を示す図である。
【００６２】
図９のブロック図で示したブロック構成において、ディスクリプタにて中断有り、再開有りを指示した場合、選択されるデータ経路を図１２に実線で示す。
この場合、ハッシュ演算コア(MD5,SHA-1)Ｃ６に入力されるＩＶデータとしては入力ＩＶレジスタＣ２を選択し、計算途中結果が出力ＩＶレジスタＣ３に格納されるよう動作させる。
【００６３】
図１３は、図９における、中断無し、再開有りの場合のデータ経路を示す図である。
【００６４】
図９のブロック図で示したブロック構成において、ディスクリプタにて中断無し、再開有りを指示した場合、選択されるデータ経路を図１３に実線で示す。
この場合、ハッシュ演算コア(MD5,SHA-1)Ｃ６に入力されるＩＶデータとしては入力ＩＶレジスタＣ２を選択し、出力データバッファＣ９に演算結果が格納されるよう動作させる。
【００６５】
これにより、ハッシュ処理であっても、共通鍵暗号における暗号処理の中断／再開の動作と同様に、ＩＶレジスタ（図１のＩＶレジスタ６）の値をＣＰＵもしくはＤＭＡＣがストア／ロードするだけで、ハッシュ処理の中断／再開が容易に可能となる。
【００６６】
以上説明したように、本実施形態によれば、ＤＭＡＣ１４がデータ格納メモリ１２から処理すべき転送データを指示する情報となるＤＭＡディスクリプタに、ＤＥＳやＡＥＳといった共通鍵暗号の暗号アルゴリズムを指示するフィールドと、ＥＣＢモードやＣＢＣモードやカウンタモード（Counter Mode）といった暗号処理モードを指示するフィールドを有するディスクリプタフォーマットになっているため、データ格納メモリに格納された処理対象データに対して、対応する処理内容、たとえばDES-CBC暗号化やAES-Counter Mode暗号化などと転送データ位置および転送サイズをそれぞれ指定することが可能となる。
これにより、処理対象データのサイズと処理モードが確定した時点でＣＰＵはディスクリプタを生成してＤＭＡ処理を依頼するだけとなるため、効率的に暗号化処理を行うことができる。
【００６７】
各種暗号処理モード(CBCモード、Counter Mode)での処理時に使用されるＩＶをセットする記憶手段と、次のブロック処理時に使用されることになるＩＶを自動生成する手段と、それを保持する記憶手段として機能する共通鍵暗号ブロックを有しているため、ＣＰＵ１１は処理の中断時はそのＩＶをストアし、処理の再開時はストアしたＩＶをセットすることにより容易に処理の再開が容易となる。
また、ＩＶのストア／ロードもＤＭＡに処理依頼することにより、さらにＣＰＵ１１の介入が押さえられる。
また、処理の中断／再開が可能となるため、優先順位の高い処理対象データを先に処理させることも可能となりQoS実現の効果が見込まれる。
また、分割して処理を行うことが可能となるため、バス仕様効率の向上や擬似並列処理による処理の効率化も見込まれる。
【００６８】
また、本実施形態によれば、ＤＭＡＣ１４がデータ格納メモリ１２から処理すべき転送データを指示する情報となるＤＭＡディスクリプタに、ＭＤ５やＳＨＡ−１といったハッシュアルゴリズムを指定するフィールドと、ハッシュ処理の中断の指示するフィールドと、ハッシュ処理の再開を指示するフィールドを有するディスクリプタフォーマットになっているため、データ格納メモリに格納された処理対象データに対して、対応する処理内容たとえばＭＤ５の中断処理やＳＨＡ−１の再開処理などと転送データ位置及び転送サイズをそれぞれ指定することが可能となる。
これにより、処理対象データのサイズと処理モードが確定した時点でＣＰＵ１１はＤＭＡディスクリプタを生成してＤＭＡ処理を依頼するだけとなるため、暗号化処理と同様にハッシュ処理に関しても効率的に処理を行うことができる。
【００６９】
ハッシュ処理の中断処理時に演算途中結果を保持する記憶手段と、ハッシュ処理の再開処理時に演算途中結果をセットできる記憶手段として機能するハッシュブロックを有しているため、ＣＰＵ１１は処理の中断時はそのＩＶをストアし、処理の再開時はストアしたＩＶをセットすることにより容易に処理の再開が容易となる。
また、ＩＶのストア／ロードもＤＭＡに処理依頼することにより、さらにＣＰＵ１１の介入が押さえられる。
また、処理の中断／再開が可能となるため、優先順位の高い処理対象データを先に処理させることも可能となりQoS実現の効果が見込まれる。
また、分割して処理を行うことが可能となるため、バス仕様効率の向上や擬似並列処理による処理の効率化も見込まれる。
【図面の簡単な説明】
【００７０】
【図１】本発明に係る暗号処理装置の一実施形態を示すブロック図である。
【図２】一般的なＤＭＡディスクリプタのリンクの様子と、暗号化モード指定／ハッシュモード指定を行うために必要な情報を格納する方法を説明するための図である。
【図３】図１の共通鍵暗号ブロックの構成例を示すブロック図である。
【図４】ＥＣＢモード暗号化／復号の場合のデータ経路を示すブロック図である。
【図５】ＣＢＣモード暗号化の場合のデータ経路を示すブロック図である。
【図６】ＣＢＣモード復号の場合のデータ経路を示すブロック図である。
【図７】ＣｏｕｎｔｅｒＭｏｄｅ暗号化／復号の場合のデータ経路を示すブロック図である。
【図８】ハッシュ演算処理の中断／再開を図示した説明図である。
【図９】ハッシュブロックの構成例を示すブロック図である。
【図１０】ハッシュ演算の、中断無し、再開無しの場合のデータ経路を示すブロック図である。
【図１１】ハッシュ演算の、中断有り、再開無しの場合のデータ経路を示すブロック図である。
【図１２】ハッシュ演算の、中断有り、再開有りの場合のデータ経路を示すブロック図である。
【図１３】ハッシュ演算の、中断無し、再開有りの場合のデータ経路を示すブロック図である。
【符号の説明】
【００７１】
１０…暗号処理装置、１１…ＣＰＵ、１２…データ格納メモリ、１３…データバス、１４…ＤＭＡＣ、１５…セレクタ回路、１６…ＩＶレジスタ、１７…共通鍵暗号ブロック、１８…ハッシュブロック、１９…ＩＶレジスタ、２０…セレクタ回路、Ｂ１…入力データバッファ、Ｂ２…入力ＩＶレジスタ、Ｂ３…出力ＩＶレジスタ、Ｂ４…セレクタ回路、Ｂ５…ＥｘＯＲ回路、Ｂ６…セレクタ回路、Ｂ７…インクリメント回路、Ｂ８…共通鍵暗号コア(DES, AES)、Ｂ９…ＥｘＯＲ回路、Ｂ１０…ＥｘＯＲ回路、Ｂ１１…セレクタ回路、Ｂ１２…出力データバッファ、Ｃ１…入力データバッファ、Ｃ２…入力ＩＶレジスタ、Ｃ３…出力ＩＶレジスタ、Ｃ４…初期ＩＶ固定データ、Ｃ５…セレクタ回路、Ｃ６…ハッシュ演算コア(MD5,SHA-1)、Ｃ７…初期ＩＶ固定データ、Ｃ８…加算回路、Ｃ９…出力データバッファ。
【図１】
2006039000.tif 000003
【図２】
2006039000.tif 000004
【図３】
2006039000.tif 000005
【図４】
2006039000.tif 000006
【図５】
2006039000.tif 000007
【図６】
2006039000.tif 000008
【図７】
2006039000.tif 000009
【図８】
2006039000.tif 000010
【図９】
2006039000.tif 000011
【図１０】
2006039000.tif 000012
【図１１】
2006039000.tif 000013
【図１２】
2006039000.tif 000014
【図１３】
2006039000.tif 000015