(57)【要約】【課題】面積の増加を抑制しつつ、複数のストリームに暗号演算を行う。【解決手段】本発明に係る機密情報処理装置２００は、コンテキスト２７７を保持し、暗号演算を行う暗号演算回路２７３と、コンテキスト２７８を保持する擬似暗号演算回路２７４と、暗号演算回路２７３及び擬似暗号演算回路２７４に対する暗号演算の要求を調停する調停回路２６０と、コンテキスト２３２を保持するコンテキスト格納部２３０と、コンテキスト格納部２３０と暗号演算回路２７３及び擬似暗号演算回路２７４との間におけるコンテキストの退避及び復帰を行う制御回路２４０とを備え、調停回路２６０は、暗号演算回路２７３に対して暗号演算の要求があった場合に、暗号演算回路２７３に、コンテキスト２７７を用いた暗号演算を行わせ、擬似暗号演算回路２７４に対して暗号演算の要求があった場合に、暗号演算回路２７３に、コンテキスト２７８を用いた暗号演算を行わせる。【選択図】図３
2009044677.tif 000002
【特許請求の範囲】
【請求項１】
第１入力データと、第２入力データとに暗号演算を行う機密情報処理装置であって、
第１暗号演算回路と、
第１擬似暗号演算回路と、
前記第１暗号演算回路及び前記第１擬似暗号演算回路に対する暗号演算の要求を調停する第１調停回路とを備え、
前記第１暗号演算回路は、
前記第１入力データの暗号演算に必要となる第１情報を保持する第１レジスタと、
暗号演算を行う第１暗号演算部とを備え、
前記第１擬似暗号演算回路は、
前記第２入力データの暗号演算に必要となる第２情報を保持する第２レジスタを備え、
前記機密情報処理装置は、さらに、
前記第１情報及び前記第２情報を保持する第１記憶部と、
前記第１記憶部に保持される前記第１情報及び前記第２情報を前記第１レジスタ及び前記第２レジスタに書き込み、かつ前記第１レジスタ及び前記第２レジスタに保持される前記第１情報及び前記第２情報を前記第１記憶部に退避させる制御回路とを備え、
前記第１調停回路は、前記第１暗号演算回路に対して前記第１入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせ、前記第１擬似暗号演算回路に対して前記第２入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせる
ことを特徴とする機密情報処理装置。
【請求項２】
前記第１情報は、前記第１入力データの暗号演算に用いられる鍵、初期値及び演算途中の中間情報のうち１以上を含み、
前記第２情報は、前記第２入力データの暗号演算に用いられる鍵、初期値及び演算途中の中間情報のうち１以上を含む
ことを特徴とする請求項１記載の機密情報処理装置。
【請求項３】
前記制御回路は、前記第１暗号演算回路に対して前記第１入力データに対する暗号演算の要求があった場合、かつ前記第１レジスタが前記第１情報を保持していない場合に、前記第１レジスタに保持される情報を前記第１記憶部に退避させ、かつ前記第１記憶部に保持される前記第１情報を前記第１レジスタに書き込み、前記第１擬似暗号演算回路に対して前記第２入力データに対する暗号演算の要求があった場合、かつ前記第２レジスタが前記第２情報を保持していない場合に、前記第２レジスタに保持される情報を前記第１記憶部に退避させ、かつ前記第１記憶部に保持される前記第２情報を前記第２レジスタに書き込む
ことを特徴とする請求項１又は２記載の機密情報処理装置。
【請求項４】
前記機密情報処理装置は、さらに、
第１ストリームから前記第１入力データを抽出し、かつ前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データを前記第１ストリームに組み込む第１解析回路と、
第２ストリームから前記第２入力データを抽出し、かつ前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを前記第２ストリームに組み込む第２解析回路とを備え、
前記第１暗号演算部は、前記第１レジスタに保持される前記第１情報を用いて、前記第１解析回路により抽出された前記第１入力データの暗号演算を行い、かつ前記第２レジスタに保持される前記第２情報を用いて、前記第２解析回路により抽出された前記第２入力データの暗号演算を行う
ことを特徴とする請求項１、２又は３記載の機密情報処理装置。
【請求項５】
前記第２入力データは、前記第１入力データが前記第１暗号演算部により暗号演算されたデータであり、
前記第１調停回路は、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせた後に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせる
ことを特徴とする請求項１、２又は３記載の機密情報処理装置。
【請求項６】
前記機密情報処理装置は、さらに、
第１ストリームから前記第１入力データを抽出し、かつ前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データを前記第１ストリームに組み込む第１解析回路と、
前記第１解析回路により前記第１出力データが組み込まれた前記第１ストリームから前記第２入力データを抽出し、かつ前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを前記第１ストリームに組み込む第２解析回路とを備える
ことを特徴とする請求項５記載の機密情報処理装置。
【請求項７】
前記第１調停回路は、前記第１暗号演算回路に対する暗号演算の要求と、前記第１擬似暗号演算回路に対する暗号演算の要求とを受信した場合、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせる
ことを特徴とする請求項５又は６記載の機密情報処理装置。
【請求項８】
前記機密情報処理装置は、さらに、第３入力データに暗号演算を行い、
前記機密情報処理装置は、さらに、
第２暗号演算回路を備え、
前記第２暗号演算回路は、
前記第３データの暗号演算に必要となる第３情報を保持する第３レジスタと、
前記第１暗号演算部による暗号演算と異なるアルゴリズムの暗号演算を行う第２暗号演算部とを備え、
前記機密情報処理装置は、さらに、
前記第１暗号演算回路、前記第１擬似暗号演算回路及び前記第２暗号演算回路に対する暗号演算の要求を調停し、かつ前記第１暗号演算回路及び前記第１擬似暗号演算回路に対する暗号演算の要求を前記第１調停回路に送信する第２調停回路を備え、
前記第１調停回路は、前記第１暗号演算回路に対する前記第１入力データに対する暗号演算の要求が前記第２調停回路から送信された場合に、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせ、前記第１擬似暗号演算回路に対する前記第２入力データに対する暗号演算の要求が前記第２調停回路から送信された場合に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせる
ことを特徴とする請求項１〜７のいずれか１項に記載の機密情報処理装置。
【請求項９】
前記機密情報処理装置は、さらに、第４入力データに暗号演算を行い、
前記機密情報処理装置は、さらに、
第２擬似暗号演算回路と、
前記第２暗号演算回路及び前記第２擬似暗号演算回路に対する暗号演算の要求を調停する第３調停回路とを備え、
前記第２擬似暗号演算回路は、
前記第４データの暗号演算に必要となる第４情報を保持する第４レジスタを備え、
前記第３調停回路は、前記第２暗号演算回路に対して前記第３データに対する暗号演算の要求があった場合に、前記第２暗号演算部に、前記第３レジスタに保持される前記第３情報を用いた前記第３データの暗号演算を行わせ、前記第２擬似暗号演算回路に対して前記第４データに対する暗号演算の要求があった場合に、前記第２暗号演算部に、前記第４レジスタに保持される前記第４情報を用いた前記第４データの暗号演算を行わせる
ことを特徴とする請求項８記載の機密情報処理装置。
【請求項１０】
前記暗号演算は、秘密鍵暗号アルゴリズムによる暗号演算である
ことを特徴とする請求項１〜９のいずれか１項に記載の機密情報処理装置。
【請求項１１】
外部機器から送信される第１入力データ及び第２入力データを受信する受信部と、
前記第１入力データと、前記第２入力データとに暗号演算を行う請求項１〜１０のいずれか１項に記載の機密情報処理装置と、
前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データ、及び前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを表示する表示部とを備える
ことを特徴とする機密情報処理機器。
【請求項１２】
請求項１〜１０のいずれか１項に記載の機密情報処理装置と、
前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データ、及び前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを外部機器に送信する送信部とを備える
ことを特徴とする機密情報処理機器。
【請求項１３】
第１入力データと、第２入力データとに暗号演算を行う機密情報処理装置における機密情報処理方法であって、
前記機密情報処理装置は、
第１暗号演算回路と、
第１擬似暗号演算回路と、
前記第１暗号演算回路及び前記第１擬似暗号演算回路に対する暗号演算の要求を調停する第１調停回路とを備え、
前記第１暗号演算回路は、
前記第１入力データの暗号演算に必要となる第１情報を保持する第１レジスタと、
暗号演算を行う第１暗号演算部とを備え、
前記第１擬似暗号演算回路は、
前記第２入力データの暗号演算に必要となる第２情報を保持する第２レジスタを備え、
前記機密情報処理装置は、さらに、
前記第１情報及び前記第２情報を保持する第１記憶部と、
前記第１記憶部に保持される前記第１情報及び前記第２情報を前記第１レジスタ及び前記第２レジスタに書き込み、かつ前記第１レジスタ及び前記第２レジスタに保持される前記第１情報及び前記第２情報を前記第１記憶部に退避させる制御回路とを備え、
前記第１調停回路が、前記第１暗号演算回路に対して前記第１入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせ、前記第１擬似暗号演算回路に対して前記第２入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせる
ことを特徴とする機密情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密情報処理装置、機密情報処理機器、及び機密情報処理方法に関し、特に、複数のデータに暗号演算を行う機密情報処理装置に関する。
【背景技術】
【０００２】
近年、携帯電話、デジタルテレビ、セットトップボックス（ＳＴＢ）及びパーソナルコンピュータ（ＰＣ）間では、無線又はネットワーク等を用いて、動画像データ又はオーディオデータ等を含むストリームの送信及び受信が行われている。このデータの送信及び受信において、セキュリティの強化のために、送信するデータを暗号化する技術が用いられている。すなわち、携帯電話、デジタルテレビ、ＳＴＢ及びＰＣは、ストリームに含まれる暗号化されたデータ（以下、「暗号化データ」と呼ぶ。）を復号化する、又はストリームに含まれる平文データを暗号化する（以下、復号化及び暗号化の少なくとも１以上を称して「暗号演算」と呼ぶ。）機密情報処理装置を備える。
【０００３】
このような機密情報処理装置において、複数のストリームが輻輳して入力される場合がある。例えば、デジタルテレビ等において、２つの番組を同時に表示する場合、及び１つの番組を表示しながら、他の番組を録画する場合等には、機密情報処理装置に、複数のストリームが輻輳して入力される。複数のストリームが輻輳して入力される場合、機密情報処理装置は、複数のストリームに含まれるそれぞれのデータを切り替えながら並列に暗号演算を行う必要がある。
【０００４】
これに対して、１つの暗号演算回路で、複数のストリームに対して暗号演算を行う第１の機密情報処理装置が知られている（例えば、特許文献１参照）。
【０００５】
図１６は、特許文献１記載の従来の第１の機密情報処理装置の構成を示す図である。
特許文献１記載の第１の機密情報処理装置は、暗号化装置であり、セレクタ５４と、暗号化ユニット５２と、メモリ５５とを備える。暗号化ユニット５２は、排他的論理和回路５８と、暗号鍵Ｋを用いて暗号化を行う暗号化モジュール５１とを備える。
【０００６】
セレクタ５４、排他的論理和回路５８、及び暗号化モジュール５１は、フィードバックライン６５、フィードバックライン６６及びフィードバックライン６７によりフィードバックループを構成する。暗号化モジュール５１により暗号化された暗号文ブロックデータＣｉは、フィードバックループにより再び排他的論理和回路５８に入力され、排他的論理和回路５８でモジュール入力データＳｉが生成される。そして、生成されたモジュール入力データＳｉは、暗号化モジュール５１に供給される。
【０００７】
メモリ５５は、フィードバックライン６５と並列に設けられている。メモリ５５は、レジスタ５６と、スイッチ５７とを備える。スイッチ５７は、暗号化モジュール５１の出力をレジスタ５６に入力させるか無視するかを切り替える。レジスタ５６は、Ｅを経由してきた暗号文ブロックデータＣｉを記憶する。レジスタ５６に記憶された暗号文ブロックデータＣｉは、セレクタ５４に出力される。
【０００８】
以上の構成により、特許文献１記載の第１の機密情報処理装置は、第１のデータの処理中に、処理するデータを第２のデータに切り替える際に、レジスタ５６に第１のデータの連鎖値（暗号文ブロックデータＣｉ）を保存する。特許文献１記載の第１の機密情報処理装置は、第１のデータの処理を再開する場合には、レジスタ５６に保存される連鎖値を使用する。これにより、特許文献１記載の第１の機密情報処理装置は、データを切り替えながら暗号演算を行うことを可能としている。
【０００９】
更に、特許文献１記載の第１の機密情報処理装置は、第１のデータの処理結果を第２のデータとしてフィードバックして再入力することにより、同一アルゴリズムによる暗号演算をブロックごとに連続して行える。
【００１０】
また、近年、１つのデータに２回の暗号演算が行われることがある。例えば、１つのデータに２回の暗号化が行われる場合、及び１つのデータに復号化が行われた後に暗号化が行われる場合がある。
【００１１】
これに対して、特許文献１には、１つのデータに対して秘匿処理と、完全性保証処理とを行う第２の機密情報処理装置が開示されている。従来の第２の機密情報処理装置は、１つの暗号演算回路により、秘匿処理及び完全性保証処理を行う。従来の第２の機密情報処理装置は、第１の機密情報処理装置と同様に、連鎖値を退避しておくレジスタを備える。従来の第２の機密情報処理装置は、秘匿処理の開始時に、レジスタに保持される秘匿処理の連鎖値を読み出し、秘匿処理の終了時に、当該秘匿処理により生成された連鎖値をレジスタに保持する。また、従来の第２の機密情報処理装置は、完全性保証処理の開始時に、レジスタに保持される完全性保証処理の連鎖値を読み出し、完全性保証処理の終了時に、当該完全性保証処理により生成された連鎖値をレジスタに保持する。これにより、従来の第２の機密情報処理装置は、１つの暗号演算回路により、１つのデータに２回の暗号演算を行える。
【特許文献１】国際公開第０１／０５２４７２号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【００１２】
しかしながら、特許文献１記載の第１の機密情報処理装置は、レジスタの数によって切り替えられるデータの数が限定されてしまう。同様に、特許文献１記載の第２の機密情報処理装置は、レジスタの数によって１つのデータに対して実行できる暗号演算の数が限定されてしまう。すなわち、従来の機密情報処理装置は、切り替えられるデータの数、及び１つのデータに対して実行できる暗号演算の数を増加させることで、回路面積が増加するという問題がある。
【００１３】
そこで、本発明は、回路面積の増加を抑制しつつ、複数のデータに暗号演算を行え、かつ１つのデータに対して複数の暗号演算を行える機密情報処理装置、機密情報処理機器及び機密情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するために、本発明に係る機密情報処理装置は、第１入力データと、第２入力データとに暗号演算を行う機密情報処理装置であって、第１暗号演算回路と、第１擬似暗号演算回路と、前記第１暗号演算回路及び前記第１擬似暗号演算回路に対する暗号演算の要求を調停する第１調停回路とを備え、前記第１暗号演算回路は、前記第１入力データの暗号演算に必要となる第１情報を保持する第１レジスタと、暗号演算を行う第１暗号演算部とを備え、前記第１擬似暗号演算回路は、前記第２入力データの暗号演算に必要となる第２情報を保持する第２レジスタを備え、前記機密情報処理装置は、さらに、前記第１情報及び前記第２情報を保持する第１記憶部と、前記第１記憶部に保持される前記第１情報及び前記第２情報を前記第１レジスタ及び前記第２レジスタに書き込み、かつ前記第１レジスタ及び前記第２レジスタに保持される前記第１情報及び前記第２情報を前記第１記憶部に退避させる制御回路とを備え、前記第１調停回路は、前記第１暗号演算回路に対して前記第１入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせ、前記第１擬似暗号演算回路に対して前記第２入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせる。
【００１５】
この構成によれば、第１記憶部に複数の暗号演算にそれぞれ必要となる情報が保持される。また、制御回路により、第１レジスタ及び第２レジスタに保持される情報を、第１記憶部に退避及び復帰できる。これにより、第１レジスタ及び第２レジスタは、少なくとも１つの入力データの暗号演算に必要となる情報のみを保持すればよい。すなわち、本発明に係る機密情報処理装置は、切り替えられるデータの数、及び１つのデータに実行できる暗号演算の数を増加させても、レジスタの数を増加させる必要がない。よって、本発明に係る機密情報処理装置は、レジスタの回路面積を増加させることなく、暗号演算を切り替えられるデータの数、及び１つのデータに対して実行できる暗号演算の数を増加させることができる。すなわち、本発明に係る機密情報処理装置は、回路面積の増加を抑制しつつ、複数のデータに暗号演算を行え、かつ１つのデータに対して複数の暗号演算を行える。
【００１６】
さらに、第１暗号演算部は、第１レジスタ又は第２レジスタに保持される情報を用いて、暗号演算を行う。これにより、第１入力データ及び第２入力データに対する暗号演算を切り替えながら行う場合に、第１記憶部と、第１レジスタ又は第２レジスタとの間の情報の退避及び復帰を、暗号演算を行うデータを切り替える毎に行わなくてもよい。よって、情報の退避及び復帰を行う回数を低減できる。これにより、本発明に係る機密情報処理装置は、高速に暗号演算を行える。
【００１７】
また、前記第１情報は、前記第１入力データの暗号演算に用いられる鍵、初期値及び演算途中の中間情報のうち１以上を含み、前記第２情報は、前記第２入力データの暗号演算に用いられる鍵、初期値及び演算途中の中間情報のうち１以上を含んでもよい。
【００１８】
この構成によれば、本発明に係る機密情報処理装置は、暗号演算に用いられる鍵、初期値及び演算途中の中間情報のうち１以上を切り替えながら、複数のデータに対して暗号演算を行える。また、本発明に係る機密情報処理装置は、暗号演算に用いられる鍵、初期値及び演算途中の中間情報のうち１以上を切り替えながら、１つのデータに対して複数回の暗号演算を行える。
【００１９】
また、前記制御回路は、前記第１暗号演算回路に対して前記第１入力データに対する暗号演算の要求があった場合、かつ前記第１レジスタが前記第１情報を保持していない場合に、前記第１レジスタに保持される情報を前記第１記憶部に退避させ、かつ前記第１記憶部に保持される前記第１情報を前記第１レジスタに書き込み、前記第１擬似暗号演算回路に対して前記第２入力データに対する暗号演算の要求があった場合、かつ前記第２レジスタが前記第２情報を保持していない場合に、前記第２レジスタに保持される情報を前記第１記憶部に退避させ、かつ前記第１記憶部に保持される前記第２情報を前記第２レジスタに書き込んでもよい。
【００２０】
この構成によれば、入力データに対応する暗号演算に必要となる情報が第１レジスタ又は第２レジスタに保持されていない場合に、制御回路は、第１レジスタ又は第２レジスタに保持される情報を第１記憶部に退避し、第１記憶部に保持される情報を第１レジスタ又は第２レジスタに復帰する。これにより、入力データに対応した情報が、第１レジスタ又は第２レジスタに保持されるので、第１１暗号演算部は、第１レジスタ又は第２レジスタに保持される情報を用いて、複数の入力データに対して暗号演算を行うことができる。
【００２１】
また、前記機密情報処理装置は、さらに、第１ストリームから前記第１入力データを抽出し、かつ前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データを前記第１ストリームに組み込む第１解析回路と、第２ストリームから前記第２入力データを抽出し、かつ前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを前記第２ストリームに組み込む第２解析回路とを備え、前記第１暗号演算部は、前記第１レジスタに保持される前記第１情報を用いて、前記第１解析回路により抽出された前記第１入力データの暗号演算を行い、かつ前記第２レジスタに保持される前記第２情報を用いて、前記第２解析回路により抽出された前記第２入力データの暗号演算を行ってもよい。
【００２２】
この構成によれば、本発明に係る機密情報処理装置は、ストリームに含まれる任意の領域のデータを抽出し、暗号演算を行える。すなわち、本発明に係る機密情報処理装置は、多種の暗号方式に容易に対応できる。
【００２３】
また、前記第２入力データは、前記第１入力データが前記第１暗号演算部により暗号演算されたデータであり、前記第１調停回路は、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせた後に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせてもよい。
【００２４】
この構成によれば、本発明に係る機密情報処理装置は、１つのデータに対して２回の暗号演算を行える。さらに、第１暗号演算部は、第１レジスタ又は第２レジスタに保持される情報をそれぞれ用いて、２回の暗号演算を行う。よって、第１記憶部と、第１レジスタ又は第２レジスタとの間での情報の退避及び復帰を行う回数を低減できる。これにより、本発明に係る機密情報処理装置は、１つのデータに対して高速に２回の暗号演算を行える。
【００２５】
また、前記機密情報処理装置は、さらに、第１ストリームから前記第１入力データを抽出し、かつ前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データを前記第１ストリームに組み込む第１解析回路と、前記第１解析回路により前記第１出力データが組み込まれた前記第１ストリームから前記第２入力データを抽出し、かつ前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを前記第１ストリームに組み込む第２解析回路とを備えてもよい。
【００２６】
この構成によれば、本発明に係る機密情報処理装置は、２回の暗号演算の１回目と２回目とでストリームに含まれる異なる領域のデータに対して暗号演算を行える。すなわち、本発明に係る機密情報処理装置は、１つのデータに対する多種の暗号方式による複数回の暗号演算に容易に対応できる。
【００２７】
また、前記第１調停回路は、前記第１暗号演算回路に対する暗号演算の要求と、前記第１擬似暗号演算回路に対する暗号演算の要求とを受信した場合、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせてもよい。
【００２８】
この構成によれば、２回の暗号演算のうち２回目の暗号演算が優先的に行われる。これにより、２回の暗号演算が終了したデータを順次出力できるので、内部に保持する２回目の暗号演算前のデータ（１回目の暗号演算が終了したデータ）の量を削減できる。
【００２９】
また、前記機密情報処理装置は、さらに、第３入力データに暗号演算を行い、前記機密情報処理装置は、さらに、第２暗号演算回路を備え、前記第２暗号演算回路は、前記第３データの暗号演算に必要となる第３情報を保持する第３レジスタと、前記第１暗号演算部による暗号演算と異なるアルゴリズムの暗号演算を行う第２暗号演算部とを備え、前記機密情報処理装置は、さらに、前記第１暗号演算回路、前記第１擬似暗号演算回路及び前記第２暗号演算回路に対する暗号演算の要求を調停し、かつ前記第１暗号演算回路及び前記第１擬似暗号演算回路に対する暗号演算の要求を前記第１調停回路に送信する第２調停回路を備え、前記第１調停回路は、前記第１暗号演算回路に対する前記第１入力データに対する暗号演算の要求が前記第２調停回路から送信された場合に、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせ、前記第１擬似暗号演算回路に対する前記第２入力データに対する暗号演算の要求が前記第２調停回路から送信された場合に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせてもよい。
【００３０】
この構成によれば、本発明に係る機密情報処理装置は、複数の異なる暗号アルゴリズムに対応する暗号演算を行える。また、複数の異なる暗号アルゴリズムに対応する機密情報処理装置に対して、第１調停回路を更に加える構成とすることで、第１擬似暗号演算回路を通常の暗号演算回路（第１暗号演算回路及び第２暗号演算回路）と同様に扱い制御できる。すなわち、本発明は、複数の異なる暗号アルゴリズムに対応する機密情報処理装置に対して制御系の大きな変更を行うことなく、情報の退避及び復帰を行う回数の削減を実現できる。
【００３１】
また、前記機密情報処理装置は、さらに、第４入力データに暗号演算を行い、前記機密情報処理装置は、さらに、第２擬似暗号演算回路と、前記第２暗号演算回路及び前記第２擬似暗号演算回路に対する暗号演算の要求を調停する第３調停回路とを備え、前記第２擬似暗号演算回路は、前記第４データの暗号演算に必要となる第４情報を保持する第４レジスタを備え、前記第３調停回路は、前記第２暗号演算回路に対して前記第３データに対する暗号演算の要求があった場合に、前記第２暗号演算部に、前記第３レジスタに保持される前記第３情報を用いた前記第３データの暗号演算を行わせ、前記第２擬似暗号演算回路に対して前記第４データに対する暗号演算の要求があった場合に、前記第２暗号演算部に、前記第４レジスタに保持される前記第４情報を用いた前記第４データの暗号演算を行わせてもよい。
【００３２】
この構成によれば、複数の暗号アルゴリズムに対して、暗号演算に用いられる情報の退避及び復帰を行う回数を低減できる。これにより、本発明に係る機密情報処理装置は、高速に暗号演算を行える。
【００３３】
また、前記暗号演算は、秘密鍵暗号アルゴリズムによる暗号演算であってもよい。
この構成によれば、本発明に係る機密情報処理装置は、回路面積の増加を抑制しつつ、複数のデータに秘密鍵暗号アルゴリズムに対応した暗号演算を行え、かつ１つのデータに対して複数の秘密鍵暗号アルゴリズムに対応した暗号演算を行える。また、秘密鍵暗号アルゴリズムに対応した暗号演算に用いられる情報の退避及び復帰を行う回数を低減できる。これにより、本発明に係る機密情報処理装置は、高速に暗号演算を行える。
【００３４】
また、本発明に係る機密情報処理機器は、外部機器から送信される第１入力データ及び第２入力データを受信する受信部と、前記第１入力データと、前記第２入力データとに暗号演算を行う前記機密情報処理装置と、前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データ、及び前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを表示する表示部とを備える。
【００３５】
この構成によれば、暗号化されたデータを受信して再生及び表示する機密情報処理装置において、回路面積の増加を抑制しつつ、複数のデータに暗号演算を行え、かつ１つのデータに対して複数の暗号演算を行える。また、本発明に係る機密情報処理機器は、暗号演算に用いられる情報の退避及び復帰を行う回数を低減することにより、高速に暗号演算を行える。
【００３６】
また、本発明に係る機密情報処理機器は、前記機密情報処理装置と、前記第１暗号演算部により前記第１入力データが暗号演算されたデータである第１出力データ、及び前記第１暗号演算部により前記第２入力データが暗号演算されたデータである第２出力データを外部機器に送信する送信部とを備える。
【００３７】
この構成によれば、平文データを暗号化して外部の機器に送信する機密情報処理装置において、回路面積の増加を抑制しつつ、複数のデータに暗号演算を行え、かつ１つのデータに対して複数の暗号演算を行える。また、本発明に係る機密情報処理機器は、暗号演算に用いられる情報の退避及び復帰を行う回数を低減することにより、高速に暗号演算を行える。
【００３８】
また、本発明に係る機密情報処理方法は、第１入力データと、第２入力データとに暗号演算を行う機密情報処理装置における機密情報処理方法であって、前記機密情報処理装置は、第１暗号演算回路と、第１擬似暗号演算回路と、前記第１暗号演算回路及び前記第１擬似暗号演算回路に対する暗号演算の要求を調停する第１調停回路とを備え、前記第１暗号演算回路は、前記第１入力データの暗号演算に必要となる第１情報を保持する第１レジスタと、暗号演算を行う第１暗号演算部とを備え、前記第１擬似暗号演算回路は、前記第２入力データの暗号演算に必要となる第２情報を保持する第２レジスタを備え、前記機密情報処理装置は、さらに、前記第１情報及び前記第２情報を保持する第１記憶部と、前記第１記憶部に保持される前記第１情報及び前記第２情報を前記第１レジスタ及び前記第２レジスタに書き込み、かつ前記第１レジスタ及び前記第２レジスタに保持される前記第１情報及び前記第２情報を前記第１記憶部に退避させる制御回路とを備え、前記第１調停回路が、前記第１暗号演算回路に対して前記第１入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第１レジスタに保持される前記第１情報を用いた前記第１入力データの暗号演算を行わせ、前記第１擬似暗号演算回路に対して前記第２入力データに対する暗号演算の要求があった場合に、前記第１暗号演算部に、前記第２レジスタに保持される前記第２情報を用いた前記第２入力データの暗号演算を行わせる。
【００３９】
これによれば、第１暗号演算部は、第１レジスタ又は第２レジスタに保持される情報を用いて、暗号演算を行う。これにより、第１入力データ及び第２入力データに対する暗号演算を切り替えながら行う場合に、第１記憶部と、第１レジスタ又は第２レジスタとの間の情報の退避及び復帰を、暗号演算を行うデータを切り替える毎に行わなくてもよい。よって、情報の退避及び復帰を行う回数を低減できる。これにより、本発明に係る機密情報処理方法は、高速に暗号演算を行える。
【発明の効果】
【００４０】
以上より、本発明は、回路面積の増加を抑制しつつ、複数のデータに暗号演算を行え、かつ１つのデータに対して複数の暗号演算を行える機密情報処理装置、機密情報処理機器及び機密情報処理方法を提供できる。
【発明を実施するための最良の形態】
【００４１】
以下、本発明に係る機密情報処理装置の実施の形態について、図面を参照しながら詳細に説明する。
【００４２】
まず、本発明の実施の形態に係る機密情報処理装置を備える機密情報処理機器の構成を説明する。
【００４３】
図１は、本発明の実施の形態に係る機密情報処理装置を備える機密情報処理機器の外観の一例を示す図である。図１に示すように、機密情報処理機器１００は、例えば、携帯電話機器である。
【００４４】
図２は、機密情報処理機器１００の構成を示すブロック図である。図２に示す機密情報処理機器１００は、アンテナ１０１と、受信部１０２と、送信部１０３と、表示部１０４と、記憶部１０５と、機密情報処理装置２００とを備える。
【００４５】
アンテナ１０１は、送信又は受信に用いられるアンテナである。
受信部１０２は、外部の機器から送信された動画像ストリーム又は音声ストリーム等のストリームを、アンテナ１０１を用いて受信する。
【００４６】
記憶部１０５は、受信部１０２により受信されたストリームを記憶する。また、記憶部１０５は、機密情報処理機器１００により生成された動画像データ等を記憶する。例えば、記憶部１０５は、機密情報処理機器１００が有するカメラ（図示せず）により撮影された動画像データを記憶する。例えば、記憶部１０５は、ＲＡＭ、ハードディスク又は不揮発性メモリ等である。
【００４７】
機密情報処理装置２００は、本発明の実施の形態に係る機密情報処理装置である。機密情報処理装置２００は、受信部１０２により受信されたストリームに含まれる暗号化されたデータを復号化する。また、機密情報処理装置２００は、受信部１０２により受信されたストリームに含まれる平文データ、及び記憶部１０５に保持される動画像データ等を暗号化する。
【００４８】
送信部１０３は、機密情報処理装置２００により暗号化されたストリームを、アンテナ１０１を用いて外部の機器に送信する。
【００４９】
表示部１０４は、機密情報処理装置２００により復号化されたストリームを表示する。
なお、機密情報処理装置２００は、記録メディア（ＳＤメモリ等）に記録されるデータに対して暗号演算を行ってもよい。また、機密情報処理装置２００は、ネットワークを介して接続された外部の機器との間で送信及び受信されるデータに対して暗号演算を行ってもよい。
【００５０】
また、受信部１０２及び送信部１０３の機能は、専用の回路により実現されてもよいし、ＣＰＵ等がプログラムを実行することにより実現されてもよい。
【００５１】
次に機密情報処理装置２００の構成を説明する。
図３は、本発明の実施の形態に係る機密情報処理装置２００の構成を示すブロック図である。
【００５２】
機密情報処理装置２００は、輻輳する複数のストリームに対して暗号演算を行うことができる。また、機密情報処理装置２００は、１つのストリームに対して複数回の暗号演算を行うことができる。機密情報処理装置２００は、ストリーム制御回路２１０と、３つのストリーム解析回路２２１、２２２及び２２３と、コンテキスト格納部２３０と、コンテキスト制御回路２４０と、調停回路２５０と、調停回路２６０と、３つの暗号演算回路２７１、２７２及び２７３と、擬似暗号演算回路２７４とを備える。
【００５３】
ストリーム制御回路２１０は、コンテキスト対応テーブル２１１を格納する。コンテキスト対応テーブル２１１は、入力されたストリームに対して、暗号演算の実施回数と、それぞれの暗号演算で使用するコンテキストの種別（コンテキストＩＤ）との対応を示すテーブルである。ストリーム制御回路２１０は、受信部１０２により受信されたストリームを、コンテキスト対応テーブル２１１に従って、ストリーム解析回路２２１、２２２及び２２３のうちいずれかに出力する。
【００５４】
また、ストリーム制御回路２１０は、コンテキスト対応テーブル２１１に従って、ストリーム解析回路２２１、２２２及び２２３から出力されるストリームを送信部１０３等の外部の機器、又は別のストリーム解析回路２２１、２２２又は２２３に出力する。
【００５５】
図４は、コンテキスト対応テーブル２１１の構成の一例を示す図である。図４に示すように、コンテキスト対応テーブル２１１は、ストリーム識別子に対して、実行する暗号演算のコンテキストＩＤ（コンテキストの識別子）が記載されたテーブルである。コンテキスト対応テーブル２１１において、ストリーム識別子ごとに、１回目の暗号演算に対応するコンテキストＩＤと、２回目の暗号演算に対応するコンテキストＩＤとが記載される。コンテキスト対応テーブル２１１において、ストリームに対して「２回目の処理」のコンテキストＩＤが指定されている場合、ストリームに対して連続した二回の暗号演算が行われる。例えば、図４に示す例では、ストリーム識別子「ストリーム１」に対しては、コンテキストＩＤ「コンテキスト１」の暗号演算が行われた後、コンテキストＩＤ「コンテキスト２」の暗号演算が行われる。また、ストリーム識別子「ストリーム２」に対しては、コンテキストＩＤ「コンテキスト３」に対応する暗号演算のみが行われ、２回目の暗号演算は行われない。
【００５６】
ストリーム解析回路２２１、２２２及び２２３は、それぞれ第１コンテキスト２２４、２２５及び２２６を保持する。ここで、第１コンテキスト２２４、２２５及び２２６とは、ストリーム解析を行うために必要な情報であり、例えば、フォーマットの種類、ヘッダ長、フレーム長及びフッタ長等である。また、第１コンテキスト２２４、２２５及び２２６のそれぞれは、当該第１コンテキスト２２４、２２５及び２２６のコンテキストＩＤを含む。
【００５７】
ストリーム解析回路２２１、２２２及び２２３は、自身が保持する第１コンテキスト２２４、２２５又は２２６を用いて、入力されたストリームの解析を行う。具体的には、ストリーム解析回路２２１、２２２及び２２３は、自身が保持する第１コンテキスト２２４、２２５又は２２６を用いて、入力されたストリームに含まれるデータのうち暗号演算（暗号化又は復号化）の対象となるデータ（以下、「入力データ」と呼ぶ。）を抽出する。ストリーム解析回路２２１、２２２及び２２３は、調停回路２５０に、暗号演算の要求である入力リクエストと、抽出した入力データとを出力する。
【００５８】
また、ストリーム解析回路２２１、２２２及び２２３は、指定されたコンテキストＩＤが、現在保持しているコンテキストＩＤと等しいか否かに応じて、自身が保持する第１コンテキスト２２４、２２５又は２２６の退避及び復帰を行う。具体的には、ストリーム解析回路２２１、２２２及び２２３は、指定されたコンテキストＩＤが、現在保持しているコンテキストＩＤと等しければ、自身が保持する第１コンテキスト２２４、２２５又は２２６を使用して入力されたストリームの解析を行う。また、指定されたコンテキストＩＤが、現在保持しているコンテキストＩＤと異なる場合、コンテキスト制御回路２４０にコンテキスト退避及び復帰のリクエストを行う。リクエストを受けたコンテキスト制御回路２４０は、ストリーム解析回路２２１、２２２又は２２３に現在保持される第１コンテキスト２２４、２２５又は２２６をコンテキスト格納部２３０に退避し、かつコンテキスト格納部２３０に保存される指定されたコンテキストＩＤの第１コンテキスト２３１をストリーム解析回路２２１、２２２又は２２３に設定する。ストリーム解析回路２２１、２２２及び２２３は、新たに設定された第１コンテキストを用いて、入力されたストリームのうち暗号演算（暗号化又は復号化）の対象となるデータを抽出する。
【００５９】
また、ストリーム解析回路２２１、２２２及び２２３は、暗号演算回路２７１、２７２又は２７３により暗号演算されたデータ（以下、「出力データ」と呼ぶ。）を元のストリームに組み込みストリーム制御回路２１０に出力する。
【００６０】
コンテキスト格納部２３０は、複数の第１コンテキスト２３１と、複数の第２コンテキスト２３２とを格納する。ここで、第１コンテキスト２３１は、ストリーム解析回路２２１、２２２及び２２３によりストリーム解析を行うために必要な情報であり、例えば、フォーマットの種類、ヘッダ長、フレーム長及びフッタ長等である。また、第２コンテキスト２３２とは、暗号演算に必要となる情報である。具体的には、第２コンテキスト２３２は、情報暗号演算における鍵、中間値、初期値及び連鎖値のうち１以上を含む情報である。また、第１コンテキスト２３１及び第２コンテキスト２３２は、コンテキストＩＤを含む。
【００６１】
コンテキスト格納部２３０は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）により構成される。なお、コンテキスト格納部２３０は、対応する第１コンテキスト２３１と第２コンテキスト２３２とをコンテキストＩＤに対応させた１つのコンテキストとして格納してもよい。
【００６２】
コンテキスト制御回路２４０は、ストリーム解析回路２２１、２２２及び２２３からのコンテキスト退避のリクエストに応じて、ストリーム解析回路２２１、２２２及び２２３に保持される第１コンテキスト２２４、２２５及び２２６をコンテキスト格納部２３０に退避させる。また、コンテキスト制御回路２４０は、ストリーム解析回路２２１、２２２及び２２３からのコンテキスト復帰のリクエストに応じて、コンテキスト格納部２３０が保持する第１コンテキスト２３１を、ストリーム解析回路２２１、２２２及び２２３に復帰させる。
【００６３】
また、コンテキスト制御回路２４０は、暗号演算回路２７１、２７２、２７３及び擬似暗号演算回路２７４からのコンテキスト退避のリクエストに応じて、暗号演算回路２７１、２７２、２７３及び擬似暗号演算回路２７４に保持される第２コンテキスト２７５、２７６、２７７及び２７８をコンテキスト格納部２３０に書き込むことで退避させる。また、コンテキスト制御回路２４０は、暗号演算回路２７１、２７２、２７３及び擬似暗号演算回路２７４からのコンテキスト復帰のリクエストに応じて、コンテキスト格納部２３０が保持する第２コンテキスト２３２を、暗号演算回路２７１、２７２、２７３及び擬似暗号演算回路２７４に書き込むことで復帰させる。
【００６４】
また、コンテキスト制御回路２４０は、暗号アルゴリズム対応テーブル２４１を格納する。暗号アルゴリズム対応テーブル２４１は、暗号演算で使用されるコンテキストＩＤと、暗号アルゴリズムとの対応を示すテーブルである。
【００６５】
図５は、暗号アルゴリズム対応テーブル２４１の構成の一例を示す図である。図５に示すように、暗号アルゴリズム対応テーブル２４１には、コンテキストＩＤに対応する暗号アルゴリズムが記載される。
【００６６】
なお、コンテキスト対応テーブル２１１と、暗号アルゴリズム対応テーブル２４１と、第１コンテキスト２３１と、第２コンテキスト２３２に含まれる鍵及び初期値とは、機密情報処理装置２００又は機密情報処理機器１００が備えるＣＰＵ（図示せず）等により、暗号演算の開始前に設定される。
【００６７】
暗号演算回路２７１、２７２及び２７３は、それぞれ異なる暗号アルゴリズムに対応した暗号演算を行う。本実施の形態では、暗号演算回路２７１は、Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（以下、ＤＥＳ）に対応した暗号演算を行う。暗号演算回路２７２は、Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ（以下、ＳＨＡ）に対応した暗号演算を行う。暗号演算回路２７３は、Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ（以下、ＡＥＳ）に対応した暗号演算を行う。ここで、ＤＥＳ及びＡＥＳの暗号アルゴリズムは、秘密鍵暗号アルゴリズムである。また、ＳＨＡは、ハッシュ演算を含む暗号アルゴリズムである。
【００６８】
また、暗号演算回路２７１、２７２及び２７３は、それぞれ第２コンテキスト２７５、２７６及び２７７を保持する。
【００６９】
擬似暗号演算回路２７４は、擬似的な暗号演算回路であり、実際の暗号演算は行わない。また、擬似暗号演算回路２７４は、暗号演算回路２７３に対応する。また、擬似暗号演算回路２７４は、第２コンテキスト２７８を保持する。
【００７０】
また、図５に示す前記暗号アルゴリズム対応テーブル２４１において、ＡＥＳによる連続した二回の暗号演算を行う場合、二回目の処理で利用する暗号アルゴリズムを“ＡＥＳ−ＤＵＭＭＹ”とする。ＡＥＳ−ＤＵＭＭＹは、擬似暗号演算回路２７４が実施する暗号アルゴリズムとして扱われる。従って、あるストリームに対して連続した二回のＡＥＳによる暗号演算を行う場合、一回目の処理に対応したコンテキストに対しては暗号アルゴリズムＡＥＳを、二回目の処理に対応したコンテキストに対しては、暗号アルゴリズムＡＥＳ−ＤＵＭＭＹを指定することにより、擬似暗号演算回路２７４を用いた暗号演算が可能となる。
【００７１】
調停回路２５０は、ストリーム解析回路２２１、２２２及び２２３により出力された入力リクエストを調停する。具体的には、調停回路２５０は、同時に複数のストリーム解析回路２２１、２２２及び２２３から同一の暗号アルゴリズムで処理すべき入力リクエストが入力された場合に、どのストリーム解析回路２２１、２２２及び２２３からの入力リクエストを処理するかを決定する。例えば、調停回路２５０は、ストリーム解析回路２２１、２２２及び２２３に設定された優先順位に従い処理する入力リクエストを決定する。なお、調停回路２５０は、ラウンドロビン方式など他のアルゴリズムを用いて、処理する入力リクエストを決定してもよい。また、ここで言う同一の暗号アルゴリズムとは、暗号アルゴリズム対応テーブル２４１によって指定された暗号アルゴリズムである。例えば、本実施例の場合、後述するＡＥＳとＡＥＳ−ＤＵＭＭＹとは別のアルゴリズムとして認識される。
【００７２】
調停回路２５０は、ストリーム解析回路２２１、２２２及び２２３からの入力リクエストを受信した場合、暗号アルゴリズム対応テーブル２４１に従い、処理する暗号アルゴリズムを決定する。調停回路２５０は、決定した暗号アルゴリズムに対応した暗号演算回路２７１、２７２、２７３又は擬似暗号演算回路２７４へ入力データを出力すると共に、暗号演算回路２７１、２７２、擬似暗号演算回路２７４、又は調停回路２６０に入力リクエストを出力する。
【００７３】
具体的には、調停回路２５０は、ＤＥＳによる暗号演算の入力リクエストを受信した場合、暗号演算回路２７１に入力データと、入力リクエストとを出力する。調停回路２５０は、ＳＨＡによる暗号演算の入力リクエストを受信した場合、暗号演算回路２７２に入力データと、入力リクエストとを出力する。調停回路２５０は、ＡＥＳによる入力リクエストを受信した場合、暗号演算回路２７３に入力データを出力し、かつ調停回路２６０に入力リクエストを出力する。調停回路２５０は、ＡＤＳ−ＤＵＭＭＹによる入力リクエストを受信した場合、擬似暗号演算回路２７４に入力データと、入力リクエストとを出力する。また、擬似暗号演算回路２７４に出力された入力リクエストは、擬似暗号演算回路２７４を介して、調停回路２６０に出力される。
【００７４】
また、調停回路２５０は、暗号演算回路２７１、２７２、２７３及び擬似暗号演算回路２７４から送信される出力データを、入力リクエストを送ってきたストリーム解析回路２２１、２２２又は２２３に出力する。
【００７５】
調停回路２６０は、調停回路２５０からの暗号演算回路２７３に対する入力リクエストと、擬似暗号演算回路２７４からの擬似暗号演算回路２７４に対する入力リクエストとを調停する。すなわち、調停回路２６０は、暗号演算回路２７３及び擬似暗号演算回路２７４に対する暗号演算の要求を調停する。具体的には、調停回路２６０は、暗号演算回路２７３に対する入力リクエストを受信した場合、当該入力リクエストを暗号演算回路２７３に出力することで、暗号演算回路２７３に、第２コンテキスト２７７を用いた暗号演算を行わせる。また、調停回路２６０は、擬似暗号演算回路２７４に対する入力リクエストを受信した場合、当該入力リクエストを暗号演算回路２７３に出力することで、暗号演算回路２７３に、第２コンテキスト２７８を用いた暗号演算を行わせる。
【００７６】
また、調停回路２６０は、暗号演算回路２７３に対する入力リクエストと、擬似暗号演算回路２７４に対する入力リクエストとを同時に受信した場合、擬似暗号演算回路２７４に対する入力リクエストを優先する。すなわち、調停回路２６０は、暗号演算回路２７３に対する入力リクエストと、擬似暗号演算回路２７４に対する入力リクエストとを同時に受信した場合、擬似暗号演算回路２７４に対する入力リクエストを暗号演算回路２７３に出力することで、暗号演算回路２７３に、第２コンテキスト２７８を用いた暗号演算を行わせる。
【００７７】
次に、暗号演算回路２７１、２７２、２７３及び擬似暗号演算回路２７４の詳細な構成を説明する。
【００７８】
図６は、暗号演算回路２７３及び擬似暗号演算回路２７４の詳細な構成を示すブロック図である。
【００７９】
暗号演算回路２７３は、入力レジスタ３０１と、コンテキストレジスタ３０２と、暗号演算コア３０３と、セレクタ３０４、３０５、３０６及び３０７と、制御部３０８とを備える。
【００８０】
セレクタ３０４は、調停回路２５０から出力される入力データ、及びコンテキスト制御回路２４０から出力される入力データのうち一方を選択する。
【００８１】
入力レジスタ３０１は、セレクタ３０４により選択された入力データを保持する。
セレクタ３０５は、暗号演算コア３０３により出力される第２コンテキスト、及びコンテキスト制御回路２４０から出力される第２コンテキストのうち一方を選択する。
【００８２】
コンテキストレジスタ３０２は、セレクタ３０５により選択された第２コンテキスト２７７を保持する。ここで、第２コンテキスト２７７とは、暗号演算に必要となる情報であり、暗号演算における鍵、中間値、初期値及び連鎖値のうち１以上を含む情報である。
【００８３】
セレクタ３０６は、コンテキストレジスタ３０２に保持される第２コンテキスト２７７、及び擬似暗号演算回路２７４が備えるコンテキストレジスタ３１２に保持される第２コンテキスト２７８のうち一方を選択する。
【００８４】
セレクタ３０７は、入力レジスタ３０１に保持される入力データ、及び擬似暗号演算回路２７４が備える入力レジスタ３１１に保持される入力データのうち一方を選択する。
【００８５】
暗号演算コア３０３は、セレクタ３０６により選択された第２コンテキストを用いて、セレクタ３０７により選択された入力データに暗号演算を行う。本実施例では、暗号演算コア３０３は、ＡＥＳに対応する暗号演算を行う。暗号演算コア３０３は、暗号演算が行われた出力データ、及び第２コンテキストを出力する。ここで、暗号演算コア３０３が出力する第２コンテキストは、暗号演算により生成された中間値又は連鎖値等を含む。
【００８６】
制御部３０８は、調停回路２６０からの入力リクエスト及び第２コンテキストの退避及び復帰を行うか否かに基づき、セレクタ３０４、３０５、３０６及び３０７を制御する。具体的には、制御部３０８は、調停回路２６０からの入力リクエストが、暗号演算回路２７３に対する入力リクエストである場合、セレクタ３０６にコンテキストレジスタ３０２に保持される第２コンテキスト２７７を選択させ、セレクタ３０７に入力レジスタ３０１に保持される入力データを選択させる。制御部３０８は、調停回路２６０からの入力リクエストが、擬似暗号演算回路２７４に対する入力リクエストである場合、セレクタ３０６にコンテキストレジスタ３１２に保持される第２コンテキスト２７７を選択させ、セレクタ３０７に入力レジスタ３１１に保持される入力データを選択させる。
【００８７】
また、制御部３０８は、第２コンテキストの復帰を行う場合に、セレクタ３０５にコンテキスト制御回路２４０により出力される第２コンテキストを選択させる。また、第２コンテキストの復帰を行わない場合には、制御部３０８は、セレクタ３０４に調停回路２５０により出力されるデータを選択させ、セレクタ３０５に暗号演算コア３０３により出力される第２コンテキストを選択させる。また、コンテキスト制御回路２４０は、暗号演算を中断し退避を行う場合等に、入力レジスタ３０１に保持される入力データをコンテキスト格納部２３０に退避する。また、入力データの復帰時に、制御部３０８は、セレクタ３０４にコンテキスト制御回路２４０からの入力データを選択させる。
【００８８】
また、制御部３０８は、暗号演算コア３０３による暗号演算が終了した後、出力データをストリーム制御回路２１０に出力する要求である出力リクエストを調停回路２６０に出力する。
【００８９】
擬似暗号演算回路２７４は、入力レジスタ３１１と、コンテキストレジスタ３１２と、出力レジスタ３１３と、セレクタ３１４及び３１５と、制御部３１８とを備える。
【００９０】
セレクタ３１４は、調停回路２５０から出力される入力データ、及びコンテキスト制御回路２４０から出力される入力データのうち一方を選択する。
【００９１】
入力レジスタ３１１は、セレクタ３１４により選択された入力データを保持する。
セレクタ３１５は、暗号演算コア３０３により出力される第２コンテキスト、及びコンテキスト制御回路２４０から出力される第２コンテキストのうち一方を選択する。
【００９２】
コンテキストレジスタ３１２は、セレクタ３１５により選択された第２コンテキスト２７８を保持する。ここで、第２コンテキスト２７８とは、暗号演算に必要となる情報であり、暗号演算における鍵、中間値、初期値及び連鎖値のうち１以上を含む。
【００９３】
出力レジスタ３１３は、暗号演算コア３０３により暗号演算された出力データを保持する。また、出力レジスタ３１３は、保持する出力データを調停回路２５０に出力する。
【００９４】
制御部３１８は、調停回路２５０からの入力リクエストを受信した場合、該入力リクエストを調停回路２６０に出力する。
【００９５】
また、制御部３１８は、第２コンテキストの復帰を行うか否かに基づき、セレクタ３１４及び３１５を制御する。制御部３１８は、セレクタ３１５にコンテキスト制御回路２４０により出力される第２コンテキストを選択させる。また、第２コンテキストの復帰を行わない場合には、制御部３１８は、セレクタ３１４に調停回路２５０により出力されるデータを選択させ、セレクタ３１５に暗号演算コア３０３により出力される第２コンテキストを選択させる。また、コンテキスト制御回路２４０は、暗号演算を中断し退避を行う場合等に、入力レジスタ３１１に保持される入力データをコンテキスト格納部２３０に退避する。また、入力データの復帰時に、制御部３１８は、セレクタ３１４にコンテキスト制御回路２４０からの入力データを選択させる。
【００９６】
また、制御部３１８は、暗号演算コア３０３により暗号演算されたデータが出力レジスタ３１３に保持された後、出力リクエストを調停回路２５０に出力する。
【００９７】
図７は、暗号演算回路２７１の詳細な構成を示すブロック図である。
暗号演算回路２７１は、入力レジスタ３２１と、コンテキストレジスタ３２２と、暗号演算コア３２３と、セレクタ３２４及び３２５と、制御部３２８とを備える。
【００９８】
セレクタ３２４は、調停回路２５０から出力される入力データ、及びコンテキスト制御回路２４０から出力される入力データのうち一方を選択する。
【００９９】
入力レジスタ３２１は、セレクタ３２４により選択された入力データを保持する。
セレクタ３２５は、暗号演算コア３２３により出力される第２コンテキスト、及びコンテキスト制御回路２４０から出力される第２コンテキストのうち一方を選択する。
【０１００】
コンテキストレジスタ３２２は、セレクタ３２５により選択された第２コンテキスト２７５を保持する。
【０１０１】
暗号演算コア３２３は、コンテキストレジスタ３２２に保持される第２コンテキスト２７５を用いて、入力レジスタ３２１に保持される入力データに暗号演算を行う。本実施例では、暗号演算コア３２３は、ＤＥＳに対応する暗号演算を行う。暗号演算コア３２３は、暗号演算が行われた出力データ、及び第２コンテキストを出力する。ここで、暗号演算コア３２３が出力する第２コンテキストは、暗号演算により生成された中間値又は連鎖値等を含む。
【０１０２】
制御部３２８は、第２コンテキストの復帰を行うか否かに基づき、セレクタ３２４及び３２５を制御する。制御部３２８は、第２コンテキストの復帰を行う場合に、セレクタ３２５にコンテキスト制御回路２４０により出力される第２コンテキストを選択させる。また、第２コンテキストの復帰を行わない場合には、制御部３２８は、セレクタ３２４に調停回路２５０により出力されるデータを選択させ、セレクタ３２５に暗号演算コア３２３により出力される第２コンテキストを選択させる。また、コンテキスト制御回路２４０は、暗号演算を中断し退避を行う場合等に、入力レジスタ３２１に保持される入力データをコンテキスト格納部２３０に退避する。また、入力データの復帰時に、制御部３２８は、セレクタ３２４にコンテキスト制御回路２４０からの入力データを選択させる。
【０１０３】
また、制御部３２８は、暗号演算コア３２３による暗号演算が終了した後、出力リクエストを調停回路２５０に出力する。
【０１０４】
なお、暗号演算回路２７２の構成は、暗号演算コア３２３がＳＨＡに対応する暗号演算を行う点以外は、暗号演算回路２７１と同様である。
【０１０５】
次に、機密情報処理装置２００の動作を説明する。一例として、図４に示すストリーム識別子が「ストリーム１」のストリームに対する機密情報処理装置２００による暗号演算の動作を説明する。すなわち、１つのストリームに対して２回のＡＥＳに対応した暗号演算が行われる場合の、機密情報処理装置２００の動作を説明する。例えば、この動作は、ＩＰＳｅｃ（Ｓｅｃｕｒｉｔｙ  Ａｒｃｈｉｔｅｃｔｕｒｅ  ｆｏｒ  Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）などおける、ＡＥＳで暗号化されたストリームに対して同じくＡＥＳを用いたＭＡＣ（Ｍｅｓｓａｇｅ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｃｏｄｅ）処理を行う場合の動作である。
【０１０６】
図８は、機密情報処理装置２００による暗号演算の流れを示すフローチャートである。図９は、１つのストリームに対して２回のＡＥＳに対応した暗号演算が行われる場合のデータの流れを示す図である。
【０１０７】
図８に示すように、まず、ストリーム制御回路２１０は、入力されたストリーム（以下、「第１ストリーム」と呼ぶ。）の識別を行う（Ｓ１０１）。具体的には、ストリーム制御回路２１０は、コンテキスト対応テーブル２１１を参照し、第１ストリームのストリーム識別子に対する暗号演算の実施回数と、それぞれの暗号演算で使用するコンテキストＩＤとを判定する。第１ストリームのストリーム識別子は「ストリーム１」なので、ストリーム制御回路２１０は、１回目の処理として「コンテキスト１」に対応する暗号演算を行い、２回目の処理として「コンテキスト２」に対応する暗号演算を行うと判定する。その後、ストリーム制御回路２１０は、入力されたストリームを、例えば、ストリーム解析回路２２２に出力する。
【０１０８】
次に、ストリーム解析回路２２２は、「コンテキスト１」に対応する第１コンテキスト２２５に基づき、ストリーム制御回路２１０により出力された第１ストリームから処理対象となるデータ（以下、「第１入力データ」と呼ぶ。）を抽出する（Ｓ１０２）。ここでは、「コンテキスト１」に対応する第１コンテキストをストリーム解析回路２２２が保持しているとする。なお、「コンテキスト１」に対応する第１コンテキストをストリーム解析回路２２２が保持していない場合には、ストリーム解析回路２２２は、第１コンテキストの退避及び復帰のリクエストをコンテキスト制御回路２４０に送信することで、第１コンテキストの退避及び復帰を行う。これにより、「コンテキスト１」に対応する第１コンテキストがストリーム解析回路２２２に保持される。
【０１０９】
ストリーム解析回路２２２は、抽出した第１入力データと、入力リクエストとを調停回路２５０に出力する。ここで、入力リクエストには、暗号演算に対応するコンテキストの情報（「コンテキスト１」を示す情報。例えば、コンテキストＩＤ。）が含まれる。
【０１１０】
次に、調停回路２５０は、暗号アルゴリズム対応テーブル２４１を参照し、ストリーム解析回路２２２により出力された入力リクエストに対応する暗号アルゴリズムを判定する（Ｓ１０３）。調停回路２５０は、暗号アルゴリズム対応テーブル２４１を参照し、「コンテキスト１」に対応する暗号アルゴリズムが「ＡＥＳ」であると判定する。調停回路２５０は、暗号アルゴリズム「ＡＥＳ」に対応する暗号演算回路２７３に対する入力リクエストを調停回路２６０に出力する。また、調停回路２５０は、ストリーム解析回路２２２により抽出された第１入力データを暗号演算回路２７３に出力する。
【０１１１】
また、調停回路２５０は、同時に複数のストリーム解析回路２２１、２２２及び２２３から同一の暗号アルゴリズムで処理すべき入力リクエストが入力された場合に、どのストリーム解析回路２２１、２２２及び２２３からの入力リクエストを処理するかを決定する。
【０１１２】
調停回路２６０は、調停回路２５０により出力された暗号演算回路２７３に対する入力リクエストを暗号演算回路２７３に出力する。
【０１１３】
ここで、調停回路２６０により出力される入力リクエストは、暗号演算回路２７３に対する入力リクエストなので（Ｓ１０４でＮｏ）、暗号演算回路２７３は、コンテキストレジスタ３０２に保持される第２コンテキスト２７７を用いて、調停回路２５０により出力された第１入力データの暗号演算を行う（Ｓ１０６）。暗号演算回路２７３は、暗号演算を行ったデータ（以下、「第１出力データ」と呼ぶ。）を調停回路２５０に出力する。また、暗号演算回路２７３は、出力リクエストを調停回路２６０に出力する。
【０１１４】
調停回路２６０は、暗号演算回路２７３により出力された出力リクエストを調停回路２５０に出力する。
【０１１５】
調停回路２５０は、調停回路２６０からの出力リクエストに応じて、暗号演算回路２７３により出力された第１出力データを、入力リクエストの送信元であるストリーム解析回路２２２に出力する。
【０１１６】
ストリーム解析回路２２２は、調停回路２５０により出力された第１出力データを元の第１ストリームに組み込みストリーム制御回路２１０に出力する（Ｓ１０７）。
【０１１７】
以上の処理により、１回目の暗号演算が完了する。
入力されたストリームに対する全ての暗号演算が終了していないので（Ｓ１０８でＮｏ）、次に、ストリーム制御回路２１０は、１回目の暗号演算が完了したストリーム（以下、「第２ストリーム」と呼ぶ。）を、例えば、ストリーム解析回路２２３に出力する。
【０１１８】
次に、ストリーム解析回路２２３は、「コンテキスト２」に対応する第１コンテキスト２２６に基づき、ストリーム制御回路２１０により出力された第２ストリームから処理対象となるデータ（以下、「第２入力データ」と呼ぶ。）を抽出する（Ｓ１０２）。ここで、ストリーム解析回路２２３は、１回目の処理においてストリーム解析回路２２２が用いた第１コンテキスト２２５と異なる第１コンテキスト２２６を用いて入力データの抽出を行う。つまり、ストリーム解析回路２２３は、第１ストリームにおける第１入力データの領域と、異なる領域の第２入力データを抽出する。また、ここでは、「コンテキスト２」に対応する第１コンテキストをストリーム解析回路２２３が保持しているとする。ストリーム解析回路２２３は、抽出した第２入力データと、入力リクエストとを調停回路２５０に出力する。
【０１１９】
次に、調停回路２５０は、暗号アルゴリズム対応テーブル２４１を参照し、ストリーム解析回路２２３により出力された入力リクエストに対応する暗号アルゴリズムを判定する（Ｓ１０３）。例えば、調停回路２５０は、「コンテキスト２」に対応する暗号アルゴリズムが「ＡＥＳ−ＤＵＭＭＹ」であると判定する。調停回路２５０は、暗号アルゴリズム「ＡＥＳ−ＤＵＭＭＹ」に対応する擬似暗号演算回路２７４に対する入力リクエストを擬似暗号演算回路２７４に出力する。また、調停回路２５０は、ストリーム解析回路２２３により抽出された第２入力データを擬似暗号演算回路２７４に出力する。
【０１２０】
擬似暗号演算回路２７４は、調停回路２５０により出力された入力リクエストを調停回路２６０に出力する。
【０１２１】
調停回路２６０は、擬似暗号演算回路２７４により出力された擬似暗号演算回路２７４に対する入力リクエストを暗号演算回路２７３に出力する。
【０１２２】
ここで、調停回路２６０により出力される入力リクエストは、擬似暗号演算回路２７４に対する入力リクエストなので（Ｓ１０４でＹｅｓ）、暗号演算回路２７３は、コンテキストレジスタ３１２に保持される第２コンテキスト２７８を用いて、擬似暗号演算回路２７４により出力された第２入力データの暗号演算を行う（Ｓ１０６）。暗号演算回路２７３は、暗号演算を行ったデータ（以下、「第２出力データ」と呼ぶ。）を擬似暗号演算回路２７４に出力する。また、暗号演算回路２７３は、調停回路２６０に出力リクエストを出力する。
【０１２３】
調停回路２６０は、暗号演算回路２７３により出力された出力リクエストに応じて、擬似暗号演算回路に出力リクエストを出力する。
【０１２４】
擬似暗号演算回路２７４は、暗号演算回路２７３により出力された第２出力データ、及び出力リクエストを調停回路２５０に出力する。
【０１２５】
調停回路２５０は、擬似暗号演算回路２７４からの出力リクエストに応じて、擬似暗号演算回路２７４により出力された第２出力データを、入力リクエストの送信元であるストリーム解析回路２２３に出力する。
【０１２６】
ストリーム解析回路２２３は、調停回路２５０により出力された第２出力データを元の第２ストリームに組み込みストリーム制御回路２１０に出力する（Ｓ１０７）。
【０１２７】
以上の処理により、２回目の暗号演算が完了する。
入力されたストリームに対する全ての暗号演算が終了したので（Ｓ１０８でＹｅｓ）、次に、ストリーム制御回路２１０は、２回目の暗号演算が完了したストリームを、外部に出力する（Ｓ１０９）。
【０１２８】
以上により、ストリームに対してＡＥＳに対応した２回の暗号演算が行われる。
次に、調停回路２６０、暗号演算回路２７３及び擬似暗号演算回路２７４の詳細な動作を個別に説明する。
【０１２９】
まず、図８に示すステップＳ１０４、Ｓ１０５及びＳ１０６における調停回路２６０の詳細な動作を説明する。
【０１３０】
図１０は、調停回路２６０の処理の流れを示すフローチャートである。
調停回路２６０は、まず、暗号演算回路２７３が入力可能な状態であるか否かを判定する（Ｓ２０１）。つまり、調停回路２６０は、暗号演算回路２７３が暗号演算可能な状態であるか否かを判定する。調停回路２６０は、暗号演算回路２７３が暗号演算中であり、入力不可の状態の場合（Ｓ２０１でＮｏ）、暗号演算回路２７３が入力可能な状態になるまで待機する。
【０１３１】
暗号演算回路２７３が入力可能な場合（Ｓ２０１でＹｅｓ）、次に、調停回路２６０は、擬似暗号演算回路２７４からの入力リクエスト（擬似暗号演算回路２７４に対する入力リクエスト）を受けているか否かを判定する（Ｓ２０２）。
【０１３２】
擬似暗号演算回路２７４からの入力リクエストを受けている場合（Ｓ２０２でＹｅｓ）、調停回路２６０は、擬似暗号演算回路２７４から出力される入力データを受け付けるように暗号演算回路２７３に指示する（Ｓ２０３）。例えば、調停回路２６０は、暗号演算回路２７３に、擬似暗号演算回路２７４に対する入力リクエストを送信することで、当該指示を行う。
【０１３３】
一方、擬似暗号演算回路２７４からの入力リクエストを受けていない場合（Ｓ２０２でＮｏ）、調停回路２６０は、調停回路２５０からの入力リクエスト（暗号演算回路２７３に対する入力リクエスト）を受けているか否かを判定する（Ｓ２０４）。
【０１３４】
調停回路２５０からの入力リクエストを受けていない場合（Ｓ２０４でＮｏ）、調停回路２６０は、所定の時間後に、再度、擬似暗号演算回路２７４からの入力リクエストを受けているか否かを判定する（Ｓ２０２）。
【０１３５】
調停回路２５０からの入力リクエストを受けている場合（Ｓ２０４でＹｅｓ）、調停回路２６０は、調停回路２５０からの入力を受け付けるように暗号演算回路２７３に指示する（Ｓ２０５）。例えば、調停回路２６０は、暗号演算回路２７３に、暗号演算回路２７３に対する入力リクエストを送信することで、当該指示を行う。
【０１３６】
つまり、調停回路２６０は、暗号演算回路２７３が入力可能な状態である場合には、擬似暗号演算回路２７４からの入力リクエストを受け付ける。また、調停回路２６０は、暗号演算回路２７３が入力可能な状態であり、かつ擬似暗号演算回路２７４からの入力リクエストが無い場合、調停回路２５０からの入力リクエストを受けつける。
【０１３７】
すなわち、調停回路２６０は、擬似暗号演算回路２７４からの入力リクエストを、調停回路２５０からの入力リクエストより優先して受け付ける。
【０１３８】
ステップＳ２０３又はＳ２０５において、暗号演算回路２７３に指示及び入力リクエストを送信した後、調停回路２６０は、暗号演算回路２７３からの出力リクエストを受信したか否かを所定の時間毎に判定する（Ｓ２０６）。すなわち、調停回路２６０は、暗号演算回路２７３による暗号演算が完了し、出力リクエストが出力されるのを待つ。
【０１３９】
暗号演算回路２７３から出力リクエストが出力されると（Ｓ２０６でＹｅｓ）、調停回路２６０は、調停回路２５０からの入力リクエストを処理したか否かを判定する（Ｓ２０７）。すなわち、調停回路２６０は、調停回路２５０からの入力リクエスト、及び擬似暗号演算回路２７４からの入力リクエストのうちいずれを処理したかを判定する。
【０１４０】
調停回路２５０からの入力リクエストを処理した場合（Ｓ２０７でＹｅｓ）、調停回路２６０は、調停回路２５０に出力リクエストを送信する（Ｓ２０８）。一方、擬似暗号演算回路２７４からの入力リクエストを処理した場合（Ｓ２０７でＮｏ）、調停回路２６０は、擬似暗号演算回路２７４に出力リクエストを送信する（Ｓ２０９）。
【０１４１】
以上の動作により、調停回路２６０は、調停回路２５０及び擬似暗号演算回路２７４から送信された暗号演算回路２７３又は擬似暗号演算回路２７４に対する入力リクエストに基づき、暗号演算回路２７３に第２コンテキスト２７７及び２７８のうちいずれを用いた暗号演算を行わせるか指示することができる。また、調停回路２６０は、暗号演算回路２７３に調停回路２５０及び擬似暗号演算回路２７４から送信される入力データのうちいずれに対して暗号演算を行わせるか指示することができる。
【０１４２】
また、調停回路２６０は、出力リクエスト、及び暗号演算回路２７３により暗号演算された出力データを、調停回路２５０及び擬似暗号演算回路２７４のうち入力リクエストの送信元に送信することができる。
【０１４３】
次に、図８に示すステップＳ１０５及びＳ１０６における暗号演算回路２７３の詳細な動作を説明する。
【０１４４】
図１１は、暗号演算回路２７３の処理の流れを示すフローチャートである。
まず、暗号演算回路２７３は、調停回路２６０から入力リクエストを受信したか否かを判定する（Ｓ３０１）。入力リクエストを受信した場合（Ｓ３０１でＹｅｓ）、制御部３０８は、調停回路２６０から、調停回路２５０からの入力データを受け付けるように指示されているか否かを判定する（Ｓ３０２）。
【０１４５】
調停回路２６０から、調停回路２５０からの入力データを受け付けるように指示されている場合（Ｓ３０２でＹｅｓ）、つまり暗号演算回路２７３に対する入力リクエストの場合、制御部３０８は、第２コンテキスト２７７の切り替え（退避及び復帰）の必要があるか否かを判定する（Ｓ３０３）。つまり、制御部３０８は、入力データに対応する第２コンテキストがコンテキストレジスタ３０２に保持されているか否かを判定する。具体的には、入力リクエストに含まれるコンテキストＩＤと、コンテキストレジスタ３０２に保持される第２コンテキスト２７７のコンテキストＩＤとが一致する場合に、制御部３０８は、第２コンテキストの切り替えは不要であると判定し、一致しない場合に、制御部３０８は、第２コンテキストの切り替えが必要であると判定する。
【０１４６】
コンテキスト切り替えが必要な場合（Ｓ３０３でＹｅｓ）、制御部３０８は、コンテキスト切り替えを行う（Ｓ３０４）。具体的には、制御部３０８は、セレクタ３０５にコンテキスト制御回路２４０により出力される第２コンテキストを選択させる。また、制御部３０８は、コンテキスト制御回路２４０に、コンテキスト退避及び復帰のリクエストを送信する。
【０１４７】
コンテキスト退避及び復帰のリクエストを受信したコンテキスト制御回路２４０は、コンテキストレジスタ３０２に保持されている第２コンテキスト２７７をコンテキスト格納部２３０に退避する。すなわち、コンテキスト制御回路２４０は、コンテキストレジスタ３０２に保持されている第２コンテキストを読み出し、コンテキスト格納部２３０に格納する。
【０１４８】
その後、コンテキスト制御回路２４０は、コンテキスト格納部２３０に格納されている入力リクエストのコンテキストＩＤに対応する第２コンテキストをコンテキストレジスタ３０２に復帰する。すなわち、コンテキスト制御回路２４０は、コンテキスト格納部２３０に格納されている入力リクエストのコンテキストＩＤに対応する第２コンテキスト２３２を読み出し、コンテキストレジスタ３０２に格納する。
【０１４９】
コンテキスト切り替えが不要な場合（Ｓ３０３でＮｏ）、及びコンテキスト切り替え（Ｓ３０４）後、制御部３０８は、セレクタ３０４に調停回路２５０により出力される入力データを選択させる。これにより、入力レジスタ３０１に調停回路２５０により出力された入力データが格納される。なお、入力レジスタ３０１への入力データの格納は、ステップＳ３０３及びＳ３０４の前、又は同時に行ってもよい。
【０１５０】
また、制御部３０８は、セレクタ３０６にコンテキストレジスタ３０２に保持される第２コンテキストを選択させ、セレクタ３０７に入力レジスタ３０１に保持される入力データを選択させる。これにより、入力レジスタ３０１に保持される入力データ及びコンテキストレジスタ３０２に保持される第２コンテキスト２７７が、暗号演算コア３０３に入力される。
【０１５１】
暗号演算コア３０３は、コンテキストレジスタ３０２に保持される第２コンテキストを用いて、入力レジスタ３０１に保持される入力データに暗号演算を行う（Ｓ３０５）。また、制御部３０８は、セレクタ３０５に暗号演算コア３０３により出力される第２コンテキストを選択させる。これにより、当該暗号演算により生成された第２コンテキストが、コンテキストレジスタ３０２に格納される。
【０１５２】
暗号演算コア３０３により暗号演算された出力データは、調停回路２５０に出力される。また、制御部３０８は、調停回路２６０に出力リクエストを出力する（Ｓ３０７）。
【０１５３】
暗号演算回路２７３は、調停回路２６０への出力データの出力が完了した後（Ｓ３０８でＹｅｓ）、ステップＳ３０１で受信した入力リクエストに対する暗号演算処理を終了する。
【０１５４】
一方、ステップＳ３０２において、調停回路２６０から、擬似暗号演算回路２７４からのデータを受け付けるように指示されている場合（Ｓ３０２でＮｏ）、つまり擬似暗号演算回路２７４に対する入力リクエストの場合、制御部３０８は、セレクタ３０６にコンテキストレジスタ３１２に保持される第２コンテキストを選択させ、セレクタ３０７に入力レジスタ３１１に保持されるデータを選択させる。これにより、入力レジスタ３１１に保持される入力データ及びコンテキストレジスタ３１２に保持される第２コンテキスト２７８が、暗号演算コア３０３に入力される。
【０１５５】
暗号演算コア３０３は、コンテキストレジスタ３１２に保持される第２コンテキスト２７８を用いて、入力レジスタ３１１に保持される入力データに暗号演算を行う（Ｓ３０６）。また、暗号演算コア３０３は、暗号演算された出力データ、及び当該暗号演算により生成された第２コンテキストを擬似暗号演算回路２７４に出力する。また、制御部３０８は、調停回路２６０に出力リクエストを出力する（Ｓ３０７）。
【０１５６】
暗号演算回路２７３は、擬似暗号演算回路２７４への出力データの出力が完了した後（Ｓ３０８でＹｅｓ）、ステップＳ３０１で受信した入力リクエストに対する暗号演算処理を終了する。
【０１５７】
以上の動作により、暗号演算回路２７３は、調停回路２６０からの指示に基づき、調停回路２５０から送信された入力データに対して第２コンテキスト２７７を用いた暗号演算、又は、擬似暗号演算回路２７４から送信された入力データに対して第２コンテキスト２７８を用いた暗号演算を行うことができる。
【０１５８】
また、暗号演算回路２７３は、暗号演算した出力データを調停回路２５０又は擬似暗号演算回路２７４に出力することができる。
【０１５９】
また、暗号演算回路２７３は、入力リクエストに対応する第２コンテキストを保持していない場合には、第２コンテキストの退避及び復帰を行うことができる。
【０１６０】
次に、図８に示すステップＳ１０５及びＳ１０６における擬似暗号演算回路２７４の詳細な動作を説明する。
【０１６１】
図１２は、擬似暗号演算回路２７４の処理の流れを示すフローチャートである。
まず、擬似暗号演算回路２７４は、調停回路２５０から入力リクエストを受信したか否かを判定する（Ｓ４０１）。入力リクエストを受信した場合（Ｓ４０１でＹｅｓ）、制御部３１８は、コンテキスト切り替えの必要があるか否かを判定する（Ｓ４０２）。つまり、制御部３１８は、入力データに対応する第２コンテキストがコンテキストレジスタ３１２に保持されているか否かを判定する。具体的には、入力リクエストに含まれるコンテキストＩＤと、コンテキストレジスタ３１２に保持される第２コンテキスト２７８のコンテキストＩＤとが一致する場合に、制御部３１８は、第２コンテキストの切り替えは不要であると判定し、一致しない場合に、制御部３１８は、第２コンテキストの切り替えが必要であると判定する。
【０１６２】
コンテキスト切り替えが必要な場合（Ｓ４０２でＹｅｓ）、制御部３１８は、コンテキスト切り替えを行う（Ｓ４０３）。具体的には、制御部３１８は、セレクタ３１５にコンテキスト制御回路２４０により出力される第２コンテキストを選択させる。また、制御部３１８は、コンテキスト制御回路２４０に、コンテキスト退避及び復帰のリクエストを送信する。
【０１６３】
コンテキスト退避及び復帰のリクエストを受信したコンテキスト制御回路２４０は、コンテキストレジスタ３１２に保持されている第２コンテキスト２７８をコンテキスト格納部２３０に退避する。すなわち、コンテキスト制御回路２４０は、コンテキストレジスタ３１２に保持されている第２コンテキストを読み出し、コンテキスト格納部２３０に格納する。
【０１６４】
その後、コンテキスト制御回路２４０は、コンテキスト格納部２３０に格納されている入力リクエストのコンテキストＩＤに対応する第２コンテキストをコンテキストレジスタ３１２に復帰する。すなわち、コンテキスト制御回路２４０は、コンテキスト格納部２３０に格納されている入力リクエストのコンテキストＩＤに対応する第２コンテキストを読み出し、コンテキストレジスタ３１２に格納する。
【０１６５】
コンテキスト切り替えが不要な場合（Ｓ４０２でＮｏ）、及びコンテキスト切り替え（Ｓ４０３）後、制御部３１８は、セレクタ３０４に調停回路２５０により出力される入力データを選択させる。これにより、入力レジスタ３０１に調停回路２５０により出力された入力データが格納される。なお、入力レジスタ３０１への入力データの格納は、ステップＳ４０２及びＳ４０３の前、又は同時に行ってもよい。
【０１６６】
次に、制御部３１８は、調停回路２６０に入力リクエストを送信する（Ｓ４０４）。なお、調停回路２６０への入力リクエストの送信（Ｓ４０４）は、ステップＳ４０２及びＳ４０３の前、又は同時に行ってもよい。
【０１６７】
調停回路２６０は、制御部３１８からの入力リクエストを暗号演算回路２７３に送信する。これにより、暗号演算回路２７３は、擬似暗号演算回路２７４の入力レジスタ３１１に保持される入力データを、第２コンテキスト２７８を用いて暗号演算する。
【０１６８】
暗号演算コア３０３による暗号演算の終了後、制御部３１８は、コンテキストレジスタ３１２に保持される第２コンテキスト２７８の更新が必要であるか否かを判定する（Ｓ４０５）。つまり、暗号演算コア３０３による暗号演算により第２コンテキストに含まれる中間値又は連鎖値等が更新されたか否かを判定する。更新が必要な場合（Ｓ４０５でＹｅｓ）、制御部３１８は、セレクタ３１５に暗号演算コア３０３により出力される第２コンテキストを選択させる。これにより、コンテキストレジスタ３１２に保持される第２コンテキストが、暗号演算コア３０３により出力された第２コンテキストに更新される（Ｓ４０６）。
【０１６９】
更新が不要の場合（Ｓ４０５でＮｏ）、又は更新（Ｓ４０６）の後、制御部３１８は、調停回路２６０からの出力リクエストを受信したか否かを所定の時間毎に判定する（Ｓ４０７）。すなわち、制御部３１８は、調停回路２６０から出力リクエストが出力されるまで待機する。
【０１７０】
調停回路２６０からの出力リクエストを受信した場合（Ｓ４０７でＹｅｓ）、制御部３１８は、暗号演算コア３０３により暗号演算された出力データを受け付け、出力レジスタ３１３に格納する（Ｓ４０８）。
【０１７１】
次に、制御部３１８は、調停回路２５０に出力リクエストを送信する（Ｓ４０９）。
また、出力レジスタ３１３は、格納する出力データを、調停回路２５０に出力する。擬似暗号演算回路２７４は、調停回路２５０への出力データの出力が完了した後（Ｓ４１０でＹｅｓ）、ステップＳ４０１で受信した入力リクエストに対する暗号演算処理を終了する。
【０１７２】
以上の動作により、擬似暗号演算回路２７４は、出力リクエスト、及び暗号演算回路２７３により暗号演算された出力データを調停回路２５０に出力することができる。
【０１７３】
また、擬似暗号演算回路２７４は、入力リクエストに対応する第２コンテキストを保持していない場合には、第２コンテキストの退避及び復帰を行うことができる。
【０１７４】
以上より、本発明の実施の形態に係る機密情報処理装置２００は、コンテキスト格納部２３０に複数の暗号演算にそれぞれ必要となる第２コンテキストを格納する。また、コンテキスト制御回路２４０により、暗号演算回路２７１、２７２、２７３及び擬似暗号演算回路２７４に保持される第２コンテキスト２７５〜２７８を、コンテキスト格納部２３０に退避及び復帰できる。これにより、コンテキストレジスタ３０２、３１２及び３２２は、少なくとも１つの第２コンテキストのみを保持すればよい。すなわち、機密情報処理装置２００は、切り替えられるデータの数、及び１つのデータに実行できる暗号演算の数を増加させても、コンテキストレジスタの数を増加させる必要がない。よって、機密情報処理装置２００は、レジスタの回路面積を増加させることなく、暗号演算を切り替えられるデータの数、及び１つのデータに実行できる暗号演算の数を増加させることができる。すなわち、機密情報処理装置２００は、回路面積の増加を抑制しつつ、複数のデータに暗号演算を行え、かつ１つのデータに対して複数の暗号演算を行える。
【０１７５】
ここで、コンテキストレジスタの数は、機密情報処理装置の設計の前段階に決定する必要があり、レジスタの数の変更は容易ではない。一方、本発明に係る機密情報処理装置２００では、ＲＡＭにより構成されるコンテキスト格納部２３０に複数の第２コンテキストを格納するので、設計の後段階で変更することができる。例えば、ソフトウェア制御によりＲＡＭの記憶容量のうち第２コンテキスト２３２を格納する領域を変更するだけでよい。
【０１７６】
また、本発明の実施の形態に係る機密情報処理装置２００は、複数のストリーム解析回路２２１、２２２及び２２３を備える。また、各ストリーム解析回路２２１はそれぞれ異なる第１コンテキストに対応した解析を行う。これにより、機密情報処理装置２００は、１回目の暗号演算と、２回目の暗号演算とで、暗号化を行う対象データが異なる場合でも、第１コンテキストの切り替えを行うことなく解析を行うことができる。よって、処理を高速化でき、かつ制御を容易化することができる。これにより、機密情報処理装置２００は、多種の暗号モードに対応することができる。例えば、特許文献１記載の機密情報処理装置では、出力結果を直接フィードバックし、かつその値を連鎖値として使用しているため、演算可能なモードがＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎ）などに限られる。
【０１７７】
また、機密情報処理装置２００は、２回の暗号演算のうち２回目の暗号演算を優先的に行う。これにより、２回の暗号演算が終了したデータを外部に順次出力できるので、内部に保持する２回目の暗号演算前のデータ（１回目の暗号演算が終了したデータ）の量を削減できる。
【０１７８】
なお、上記説明では、１つのストリームにＡＥＳに対応した２回の暗号演算を行う例を説明したが、本発明に係る機密情報処理装置２００は、１つのストリームにＡＥＳによる１回の暗号演算を行うこともできる。この場合の動作は、上記説明の１回目又は２回目の各動作と同様であり、説明は省略する。
【０１７９】
また、機密情報処理装置２００は、１つのストリームにＤＥＳ又はＳＨＡに対応した暗号演算を行うこともできる。この場合の動作は、暗号演算を行う暗号演算回路が変更される点及び調停回路２６０を介した入力リクエスト及び出力リクエストの送信が行われない点が異なる。それ以外は、ＡＥＳに対応した暗号演算が行われる場合と同様である。
【０１８０】
具体的には、ステップＳ１０３において、調停回路２５０は、暗号アルゴリズム対応テーブル２４１を参照し、暗号アルゴリズムをＤＥＳ又はＳＨＡと判定する。調停回路２５０は、ストリーム解析回路２２１、２２２又は２２３により抽出されたデータ及び入力リクエストを暗号演算回路２７１又は２７２に出力する。
【０１８１】
ここで、調停回路２５０により出力される入力リクエストは、暗号演算回路２７１又は２７２に対する入力リクエストなので（Ｓ１０４でＮｏ）、暗号演算回路２７１又は２７２は、コンテキストレジスタ３２２に保持される第２コンテキスト２７５を用いて、調停回路２５０により出力されたデータの暗号演算を行う（Ｓ１０６）。暗号演算回路２７３は、暗号演算を行ったデータ及び出力リクエストを調停回路２５０に出力する。
【０１８２】
調停回路２５０は、暗号演算回路２７１又は２７２からの出力リクエストに応じて、暗号演算回路２７１又は２７２により出力されたデータを、入力リクエストの送信元であるストリーム解析回路２２１、２２２又は２２３に出力する。
【０１８３】
ストリーム解析回路２２１、２２２又は２２３は、調停回路２５０により出力されたデータを元のストリームに組み込みストリーム制御回路２１０に出力する（Ｓ１０７）。
【０１８４】
また、機密情報処理装置２００は、１つのストリームにＡＥＳ、ＤＥＳ及びＳＨＡのうちの異なる２つのそれぞれ対応した２回の暗号演算を行うこともできる。この場合の動作は、暗号演算を行う暗号演算回路が変更される点以外は、ＡＥＳに対応した２回の暗号演算が行われる場合と同様である。
【０１８５】
また、機密情報処理装置２００においては、暗号演算回路２７３は、コンテキストレジスタ３０２又は３１２に保持される第２コンテキスト２７７又は２７８を用いて、暗号演算を行う。これにより、１回目の暗号処理と２回目の暗号処理とを切り替えながら行う場合に、コンテキスト格納部２３０と、コンテキストレジスタ３０２又は３１２との間の第２コンテキスト２７７又は２７８の退避及び復帰を、暗号演算を行う入力データを切り替える毎に行わなくてもよい。よって、情報の退避及び復帰を行う回数を低減できる。これにより、機密情報処理装置２００は、高速に暗号演算を行える。
【０１８６】
以下に具体例を示す。
図１３は、１回目の暗号アルゴリズムをＡＥＳとし、二回目のアルゴリズムをＡＥＳ−ＤＵＭＭＹとしたＡＥＳによる同一ストリームへの連続した２回の暗号演算における暗号演算回路２７３の動作状態を示す図である。
【０１８７】
図１３に示すように、まず、暗号演算回路２７３は、１回目の暗号演算に対応した第２コンテキストにコンテキスト切り替えを行う（Ｓ５０１）。次に、暗号演算回路２７３は、入力されたストリームの１ブロック目のデータに対して１回目の暗号演算（ＡＥＳ）を行う（Ｓ５０２）。暗号演算回路２７３は、ステップＳ５０２で暗号演算された１ブロック目のデータを出力する（Ｓ５０３）。次に、暗号演算回路２７３は、２ブロック目のデータに対して１回目の暗号演算を行い（Ｓ５０４）、暗号演算されたデータを出力する（Ｓ５０５）。次に、暗号演算回路２７３は、ステップＳ５０３で出力された１ブロック目のデータに対して２回目の暗号演算を行い（Ｓ５０６）、暗号演算されたデータを出力する（Ｓ５０７）。次に、暗号演算回路２７３は、ステップＳ５０５で出力された２ブロック目のデータに対して２回目の暗号演算を行い（Ｓ５０８）、暗号演算されたデータを出力する（Ｓ５０９）。次に、暗号演算回路２７３は、３ブロック目のデータに対して１回目の暗号演算を行い（Ｓ５１０）、暗号演算されたデータを出力する。暗号演算回路２７３は、以降のブロックに対して同様の処理を繰り返す。
【０１８８】
図１４は、機密情報処理装置が擬似暗号演算回路２７４及び調停回路２６０を備えない場合の暗号演算回路２７３の動作状態を示す図である。
【０１８９】
図１４に示すように、まず、暗号演算回路２７３は、１回目の暗号演算に対応した第２コンテキストにコンテキスト切り替えを行う（Ｓ６０１）。次に、暗号演算回路２７３入力されたストリームの１ブロック目のデータに対して１回目の暗号演算を行い（Ｓ６０２）、暗号演算されたデータを出力する（Ｓ６０３）。次に、暗号演算回路２７３は、２ブロック目のデータに対して１回目の暗号演算を行い（Ｓ６０４）、暗号演算されたデータを出力する（Ｓ６０５）。次に、暗号演算回路２７３は、２回目の暗号演算に対応した第２コンテキストにコンテキスト切り替えを行う（Ｓ６０６）。次に、暗号演算回路２７３は、ステップＳ６０３で出力された１ブロック目のデータに対して２回目の暗号演算を行い（Ｓ６０７）、暗号演算されたデータを出力する（Ｓ６０８）。次に、暗号演算回路２７３は、再度、１回目の暗号演算に対応した第２コンテキストにコンテキスト切り替えを行う（Ｓ６０９）。次に、暗号演算回路２７３は、３ブロック目のデータに対して１回目の暗号演算を行い（Ｓ６１０）、暗号演算されたデータを出力する（Ｓ６１１）。暗号演算回路２７３は、以降のブロックに対して同様の処理を繰り返す。
【０１９０】
図１４に示すように、機密情報処理装置が擬似暗号演算回路２７４及び調停回路２６０を備えない場合には、コンテキスト切り替えが多発する。一方、図１３に示すように、本発明の実施の形態に係る機密情報処理装置２００では、コンテキスト切り替えの発生頻度を削減できる。
【０１９１】
なお、コンテキスト切り替えの発生頻度を削減するために、同一暗号アルゴリズムを処理する複数の暗号演算回路を備える方法が考えられる。しかしながら、暗号演算回路に含まれる暗号演算コアは回路規模が大きいために、同一暗号アルゴリズムに対応した暗号演算回路を複数備えた場合、機密情報処理装置の面積が増大するという別の問題が発生する。
【０１９２】
一方、機密情報処理装置２００において、擬似暗号演算回路２７４は、暗号演算を行う暗号演算コアを備えない。すなわち、本発明に係る機密情報処理装置２００は、回路面積の増加を抑制しつつ、コンテキスト切り替えの発生頻度を削減できる。
【０１９３】
また、上記説明では、１つのストリームが入力される場合の動作について説明したが、本発明に係る機密情報処理装置２００は、複数のストリームが輻輳して入力される場合に、データを切り替えながら暗号演算を行うこともできる。
【０１９４】
さらに、輻輳して入力されるストリームが、共にＡＥＳに対応し、かつ異なるコンテキストを用いた暗号演算の場合は、上述した１つのストリームに２回のＡＥＳを行う場合と同様の効果をえることができる。例えば、第１のストリームと第２のストリームとが輻輳して入力される場合、上記説明における「１回目の暗号演算」を「第１のストリーム」と置き換え、「２回目の暗号演算」を「第２のストリーム」と置き換えればよい。つまり、機密情報処理装置２００は、２つのストリームに対する同一の暗号アルゴリズムによる暗号演算を切り替えながら行う場合の、コンテキスト切り替えの発生頻度を削減できる。
【０１９５】
以上、本発明の実施の形態に係る機密情報処理装置について説明したが、本発明は、この実施の形態に限定されるものではない。
【０１９６】
例えば、上記説明では、機密情報処理装置２００が、３つの暗号演算回路２７１、２７２及び２７３を備える例について説明したが、暗号演算回路の数はこれに限定されるものではない。例えば、機密情報処理装置２００は、暗号演算回路２７３のみを備えてもよし、２個又は４個以上の暗号演算回路を備えてもよい。
【０１９７】
また、上記説明では、機密情報処理装置２００は、擬似暗号演算回路２７４を一つ備えるとしたが、同一の暗号アルゴリズムに対応した擬似暗号演算回路を複数備えてもよい。これにより同一のストリームに対して所定の暗号アルゴリズムによる３回以上の暗号演算を行うことができる。ｎ（ｎは任意の自然数）回の暗号演算を行う場合、所定の暗号アルゴリズムに対応したｎ−１個の擬似暗号演算回路を備えることが望ましい。この場合、調停回路２６０は、暗号演算回路２７３と、暗号演算回路２７３に対応するｎ−１個の擬似暗号演算回路とに対する入力リクエストを調停する。
【０１９８】
また、上記説明では、擬似暗号演算回路２７４に対応した暗号演算回路２７３の暗号アルゴリズムをＡＥＳとしているが、これは一例であり、他の暗号アルゴリズムでもよい。
【０１９９】
また、上記説明では、機密情報処理装置２００は、暗号演算回路２７３に対する擬似暗号演算回路２７４のみを備えるとしたが、暗号演算回路２７１及び２７２の１以上に対応する擬似暗号演算回路と、当該暗号演算回路及び擬似暗号演算回路に対する入力リクエストを調停する調停回路２６０と同様の構成の調停回路とを備えてもよい。
【０２００】
また、上記説明では、暗号演算回路の対応している暗号アルゴリズムをＡＥＳ、ＤＥＳ及びＳＨＡとしているが、Ｍｕｌｔｉ２やＣａｍｅｌｌｉａ、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）などの他の暗号アルゴリズムであってもよい。
【０２０１】
また、各暗号演算回路で行う暗号演算のモードは、ＣＢＣ、ＥＣＢ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｄｅ  Ｂｌｏｃｋ）、Ｘ−ＣＢＣ−ＭＡＣ、ＯＦＢ（Ｏｕｔｐｕｔ  Ｆｅｅｄｂａｃｋ）、ＣＴＲ（Ｃｏｕｎｔｅｒ）など任意のものでよい。
【０２０２】
また、上記説明では、機密情報処理装置２００は、３個のストリーム解析回路２２１、２２２、２２３を備えるが、１個、２個又は４個以上のストリーム解析回路を備えてもよい。
【０２０３】
また、上記説明では、暗号演算を擬似暗号演算回路２７４へ割当てるか暗号演算回路２７３に割当てるかを指定された暗号アルゴリズムの違い（ＡＥＳとＡＥＳ−ＤＵＭＭＹ）によって決定しているが、調停回路２５０によって自動的に割り当てを行うようにしてもよい。
【０２０４】
また、上記説明では、ストリーム制御回路２１０がコンテキスト対応テーブル２１１を格納するとしたが、コンテキスト格納部２３０等がコンテキスト対応テーブル２１１を格納してもよい。この場合、ストリーム制御回路２１０は、コンテキスト格納部２３０に格納されるコンテキスト対応テーブル２１１を参照して、上述した処理を行う。
【０２０５】
また、上記説明では、コンテキスト制御回路２４０が暗号アルゴリズム対応テーブル２４１を格納するとしたが、コンテキスト格納部２３０が暗号アルゴリズム対応テーブル２４１を格納してもよい。この場合、コンテキスト格納部２３０は、対応する第１コンテキスト２３１と、第２コンテキスト２３２と、暗号アルゴリズム対応テーブル２４１に含まれる情報とをコンテキストＩＤに対応させた１つのコンテキストとして格納してもよい。
【０２０６】
また、上記説明では、機密情報処理装置２００は、暗号化及び復号化を行うとしたが、暗号化及び復号化のいずれか一方のみを行ってもよい。
【０２０７】
また、上記説明では、本発明に係る機密情報処理装置２００を携帯電話機器に適応した例について述べたが、デジタルテレビ、ＳＴＢ、ＤＶＤレコーダ、ＤＶＤプレーヤ、ＨＤレコーダ、ＰＣ、及び携帯情報端末（ＰＤＡ）等に適用してもよい。
【０２０８】
図１５は、本発明の実施の形態に係る機密情報処理機器１００の変形例の構成を示す図である。図１５に示すように、機密情報処理機器１００は、外部機器１０９によりデジタル放送等により送信される暗号化データに対して、復号化を行い表示部１０４に表示してもよい。また、機密情報処理機器１００は、記憶媒体（ＣＤ、ＤＶＤ、メモリカード及びＵＳＢメモリ等）１０６に格納される暗号化データに対して復号化を行ってもよい。また、機密情報処理機器１００は、機密情報処理装置２００により暗号化されたデータを、記録媒体１０６に格納してもよい。また、機密情報処理機器１００は、外部機器１０８により、ネットワーク１０７を介して送信された暗号化データに対して復号化を行ってもよい。また、機密情報処理機器１００は、機密情報処理装置２００により暗号化されたデータを、ネットワーク１０７を介して外部機器１０８に送信してもよい。
【産業上の利用可能性】
【０２０９】
本発明は、機密情報処理装置に適用でき、特に、暗号化通信を必要とするネットワークに接続された機密情報処理機器、及び著作権保護されたストリームを処理する機密情報処理機器に適用できる。例えば、本発明は、携帯電話機器、デジタルテレビ、ＳＴＢ、ＤＶＤレコーダ、ＤＶＤプレーヤ、ＨＤレコーダ、ＰＣ、及びＰＤＡ等に適用できる。
【図面の簡単な説明】
【０２１０】
【図１】本発明の実施の形態に係る機密情報処理機器の外観を示す図である。
【図２】本発明の実施の形態に係る機密情報処理機器の構成を示すブロック図である。
【図３】本発明の実施の形態に係る機密情報処理装置の構成を示すブロック図である。
【図４】本発明の実施の形態に係るコンテキスト対応テーブルの構成を示す図である。
【図５】本発明の実施の形態に係る暗号アルゴリズム対応テーブルの構成を示す図である。
【図６】本発明の実施の形態に係る擬似暗号演算回路と、擬似暗号演算回路に対応する暗号演算回路との構成を示すブロック図である。
【図７】本発明の実施の形態に係る暗号演算回路の構成を示すブロック図である。
【図８】本発明の実施の形態に係る機密情報処理装置の処理の流れを示すフローチャートである。
【図９】本発明の実施の形態に係る機密情報処理装置の処理におけるデータの流れを示す図である。
【図１０】本発明の実施の形態に係る調停回路の処理の流れを示すフローチャートである。
【図１１】本発明の実施の形態に係る暗号演算回路の処理の流れを示すフローチャートである。
【図１２】本発明の実施の形態に係る擬似暗号演算回路の処理の流れを示すフローチャートである。
【図１３】本発明の実施の形態に係る暗号演算回路の動作状態を示す図である。
【図１４】従来の暗号演算回路の動作状態を示す図である。
【図１５】本発明の実施の形態に係る機密情報処理機器の変形例の構成を示すブロック図である。
【図１６】従来の機密情報処理装置の構成を示す図である。
【符号の説明】
【０２１１】
５１  暗号化モジュール
５２  暗号化ユニット
５４  セレクタ
５５  メモリ
５６  レジスタ
５７  スイッチ
５８  排他的論理和回路
６５、６６、６７  フィードバックライン
１００  機密情報処理機器
１０１  アンテナ
１０２  受信部
１０３  送信部
１０４  表示部
１０５  記憶部
１０６  記録媒体
１０７  ネットワーク
１０８  外部機器
１０９  外部機器
２００  機密情報処理装置
２１０  ストリーム制御回路
２１１  コンテキスト対応テーブル
２２１、２２２、２２３  ストリーム解析回路
２２４、２２５、２２６、２３１  第１コンテキスト
２３０  コンテキスト格納部
２３２、２７５、２７６、２７７、２７８  第２コンテキスト
２４０  コンテキスト制御回路
２４１  暗号アルゴリズム対応テーブル
２５０、２６０  調停回路
２７１、２７２、２７３  暗号演算回路
２７４  擬似暗号演算回路
３０１、３１１、３２１  入力レジスタ
３０２、３１２、３２２  コンテキストレジスタ
３０３、３２３  暗号演算コア
３０４、３０５、３０６、３０７、３１４、３１５、３２４、３２５  セレクタ
３０８、３１８、３２８  制御部
３１３  出力レジスタ
【図１】
2009044677.tif 000003
【図２】
2009044677.tif 000004
【図３】
2009044677.tif 000005
【図４】
2009044677.tif 000006
【図５】
2009044677.tif 000007
【図６】
2009044677.tif 000008
【図７】
2009044677.tif 000009
【図８】
2009044677.tif 000010
【図９】
2009044677.tif 000011
【図１０】
2009044677.tif 000012
【図１１】
2009044677.tif 000013
【図１２】
2009044677.tif 000014
【図１３】
2009044677.tif 000015
【図１４】
2009044677.tif 000016
【図１５】
2009044677.tif 000017
【図１６】
2009044677.tif 000018