(57)【要約】【課題】複数の暗号化アルゴリズムを搭載している暗号ユニットを使用して任意のデータを暗号化する際、ドライバが複数の暗号チップが処理可能な状態と動的に判断した場合に、アプリケーションから指定されたデータをドライバ内部でブロックに分割し、それらを並行に処理することで高速化を図る。【解決手段】平文データをブロック単位に分割し暗号化する暗号処理装置において、複数の暗号アルゴリズムを処理できる暗号チップを複数個持ち、指定された前記暗号アルゴリズムと前記暗号チップの個々の処理状況から、並行処理に使用する前記暗号チップ数を動的に判断し、１つのデータの暗号化処理を複数の暗号チップで行い処理を高速化する、ことを特徴とする暗号処理装置。【選択図】        図１
2006292921.tif 000002
【特許請求の範囲】
【請求項１】
平文データをブロック単位に分割し暗号化する暗号処理装置において、
複数の暗号アルゴリズムを処理できる暗号チップを複数個持ち、
指定された前記暗号アルゴリズムと前記暗号チップの個々の処理状況から、並行処理に使用する前記暗号チップ数を動的に判断し、１つのデータの暗号化処理を複数の暗号チップで行い処理を高速化する、
ことを特徴とする暗号処理装置。
【請求項２】
平文データをブロック単位に分割し暗号化する暗号処理装置において、
複数の暗号アルゴリズムを処理できる暗号チップを複数個持ち、
指定された前記暗号アルゴリズムと前記暗号チップの個々の処理状況から、並行処理に使用する前記暗号チップ数を動的に判断し、１つのデータの復号化処理を複数の暗号チップで行い処理を高速化する、
ことを特徴とする暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号処理装置に関し、画像等の大量データを高速に暗号化／復号化するための処理方法に関する。
【背景技術】
【０００２】
近年、個人情報漏洩などへの意識が社会的に高まってきており、ＨＤＤに保存するデータや、画像処理中の中間データに対しても暗号化を施している。
【０００３】
このデータの暗号の方式としてＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）と呼ばれる秘密キー暗号システムがある。このアルゴリズムは公開されており、秘密キー暗号システムとして広く普及している。ＤＥＳは、データを６４ｂｉｔ単位に区切って暗号化および復号化処理を行う暗号システムである。ＤＥＳアルゴリズムでは暗号化と復号化は対称であり、受信した暗号文を同じキーを使ってもう一度変換すれば元の文章が復元できる。ＤＥＳでは、簡単なビット位置転置とＸＯＲ演算の組み合わせ論理を１６回繰り返している。内部的にはデータのフィードバックや条件判断部分がなく、処理が逐次的なので、パイプライン化すれば高速に処理することができる。もともとＬＳＩ化することを前提にして決められたアルゴリズムであり、ＤＥＳチップも多く作られている。このＤＥＳアルゴリズムには暗号ブロックの扱いによりいくつかの方式があり、その一つにＥＣＢ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｄｅ  Ｂｌｏｃｋ）モードがある。これは、平文のビット列を固定長に区切った平文ブロックを暗号化して暗号文ブロックを生成するものである。平文ブロックが  Ｍ１  Ｍ２  Ｍ３  Ｍ４  Ｍ５  とあるとき、各ブロックを別々に暗号化して、暗号文ブロック  Ｃ１  Ｃ２  Ｃ３  Ｃ４  Ｃ５  が得られる。
【０００４】
暗号化を高速に行う技術としては、特許文献１に記載されているように、ＤＥＳのＣＢＣモードにおいて、平文ブロックを暗号する際にブロック番号と初期値（ＩＶ）からスクランブルデータを予め算出し、暗号文ブロックの連鎖をやめ並列に処理を行えるようにすることで、処理の高速化を行っている。
【特許文献１】特開平５−２４９８９１号公報
【非特許文献１】アスキーデジタル用語辞典
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記にあるように、処理を高速に行う手段として複数ブロックを並列に処理することが行われている。一方で、一つのチップが複数のアルゴリズムやモードをサポートしている場合、予め並列処理用に複数のチップを確保してしまうと、並列処理できない他の処理が使用できるチップが限られてしまう。また、反対に並列処理できない他の処理が何種類か動作しているときには、並列処理用に複数の暗号チップが確保できないことも考えられる。そこで、複数の暗号化アルゴリズムを搭載している暗号ユニットを使用して暗号を行う際に、ドライバが複数の暗号チップが処理可能な状態かどうかを動的に判断し、その結果複数の暗号チップが使用可能なときには、指定されたデータをドライバ内部で分割し並行処理を行うことで高速化を図る。
【課題を解決するための手段】
【０００６】
上記課題を解決するため本発明の請求項１の暗号処理装置は、平文データをブロック単位に分割し暗号化する暗号処理装置において、複数の暗号アルゴリズムを処理できる暗号チップを複数個持ち、指定された前記暗号アルゴリズムと前記暗号チップの個々の処理状況から、並行処理に使用する前記暗号チップ数を動的に判断し、１つのデータの暗号化処理を複数の暗号チップで行い処理を高速化することを特徴とする。
【０００７】
また、本発明の請求項２の暗号処理装置では、平文データをブロック単位に分割し暗号化する暗号処理装置において、複数の暗号アルゴリズムを処理できる暗号チップを複数個持ち、指定された前記暗号アルゴリズムと前記暗号チップの個々の処理状況から、並行処理に使用する前記暗号チップ数を動的に判断し、１つのデータの復号化処理を複数の暗号チップで行い処理を高速化することを特徴とする。
【発明の効果】
【０００８】
以上の説明にあるように、本発明によれば大量のデータを高速に暗号／復号化するのに有効な暗号処理装置を実現できるという顕著な効果を奏するものである。またドライバ内部で個々の暗号チップの使用状況を判断し並行処理を行うことで、ユーザは並列処理を意識することなく使用できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を図面に基づいて詳説する。
【００１０】
図１は本発明に係る電子部品としてのコントローラ部が搭載された画像入出力装置（データ処理装置）の一実施の形態を示すブロック構成図であって、該画像入出力装置１は、イーサネット(登録商標)等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）４００にてのホストコンピュータ（本実施の形態では第一、第二のホストコンピュータ３，４）に接続されている。
【００１１】
即ち、上記画像入出力システム（装置）１は、画像データの読取処理を行うリーダ部２と、画像データの出力処理を行うプリンタ部６と、画像データの入出力操作を行うキーボード、及び画像データや各種機能の表示などを行う液晶パネルを備えた操作部７と、制御プログラムや画像データ等が予め書き込まれたハードディスクドライブ８と、ファックスの入出力処理を行うＦＡＸ部９０とを装着し、これら各構成要素に接続されて該構成要素に接続されて該構成要素を制御する単一の電子部品からなるコントローラ部１１０とから構成されている。
【００１２】
さらにリーダ部２は原稿用紙を搬送する原稿給紙ユニット（部）１０と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナ部１１とを有し、プリンタ部６は記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット（部）１２と画像データを記録用紙に転写、定着するマーキングユニット（部）１３と印字された記録用紙にソート処理やステイプル処理を施して、外部に排出する排紙ユニット（部）１４とを有している。
【００１３】
図２はモノクロＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ：マルチファンクション周辺機器）の構成である。
【００１４】
モノクロＭＦＰは、スキャナ部２０１、レーザ露光部２０２、感光ドラム２０３、作像部２０４、定着部２０５、給紙／搬送部２０６及び、これらを制御する不図示のプリンタ制御部から構成される。
【００１５】
スキャナ部２０１は、原稿台に置かれた原稿に対して、照明を当てて原稿画像を光学的に読み取り、その像を電気信号に変換して画像データを作成する工程である。
【００１６】
レーザ露光部２０２は、前記画像データに応じて変調されたレーザ光などの光線を等角速度で回転する回転多面鏡（ポリゴンミラー２１０）に入射させ、反射走査光として感光ドラム２０３に照射する。
【００１７】
作像部２０４は、感光ドラム２０３を回転駆動し、帯電器によって帯電させ、前記レーザ露光部２０２によって感光ドラム２０３上に形成された潜像に対し、トナーによって現像化し、そのトナー像をシートに転写し、その際に転写されずに感光ドラム上に残った微小トナーを回収する、一連の電子写真プロセスを実行する。
【００１８】
定着部２０５は、ローラやベルトの組み合わせによって構成され、ハロゲンヒータなどの熱源を内蔵し、前記作像部２０４によってトナー像が転写されたシート上のトナーを、熱と圧力によって溶解、定着させる。
【００１９】
給紙／搬送部２０６は、シートカセットやペーパーデッキに代表されるシート収納庫を一つ以上持っており、前記プリンタ制御部の指示に応じてシート収納庫に収納された複数のシートの中から一枚分離し、作像部２０４・定着部２０５へ搬送する。シートの両面に画像形成する場合は、定着部２０５を通過したシートを再度作像部へ搬送する搬送経路を通るように制御する。
【００２０】
プリンタ制御部は、ＭＦＰ全体を制御するＭＦＰ制御部と通信して、その指示に応じて制御を実行すると共に、前述のスキャナ２０１、レーザ露光２０２、作像２０４、定着２０５、給紙／搬送２０６の各部の状態を管理しながら、全体が調和を保って円滑に動作できるよう指示を行う。
【００２１】
図３はコントローラ部１１０の詳細を示すブロック図である。
【００２２】
すなわち、メインコントローラ３２は、ＣＰＵ３３とバスコントローラ３４と後述する各種コントローラ回路を含む機能ブロックとを内蔵すると共に、ＲＯＭＩ／Ｆ３５を介してＲＯＭ３６と接続され、ＤＲＡＭＩ／Ｆ３７を介してＤＲＡＭ３８と接続され、コーデックＩ／Ｆ３９を介してコーデック４０と接続され、また、ネットワークＩ／Ｆ４１を介してネットワークコントローラ４２と接続されている。
【００２３】
ＲＯＭ３６は、メインコントローラ３２のＣＰＵ３３で実行される各種制御プログラムや演算データが格納されている。ＤＲＡＭ３８は、ＣＰＵ３３が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック４０はＤＲＡＭ３８に蓄積されたラスターイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長する。また、コーデック４０にはＳＲＡＭ４３が接続されており、該ＳＲＡＭ４３は前記コーデック４０の一時的な作業領域として使用される。
【００２４】
ネットワークコントローラ４２は、ネットワークコネクタ４４を介してＬＡＮ２との間で所定の制御動作を行う。
【００２５】
また、前記メインコントローラ３２はスキャナバス４５を介してスキャナＩ／Ｆ４６に接続され、プリンタバス４７を介してプリンタＩ／Ｆ４８に接続され、さらにＰＣＩバス等の汎用高速バス４９を介して拡張ボードを接続するための拡張コネクタ５０及び入出力制御部（Ｉ／Ｏ制御部）５１に接続されている。
【００２６】
Ｉ／Ｏ制御部５１はリーダ部２やプリンタ部６との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ５２が２チャンネル装備されており、該シリアル通信コントローラ５２はＩ／Ｏバス５３を介してスキャナＩ／Ｆ４６及びプリンタＩ／Ｆ４８に接続されている。
【００２７】
スキャナＩ／Ｆ４６は、第一の調歩同期シリアルＩ／Ｆ５４及び第一のビデオＩ／Ｆ５５を介してスキャナコネクタ５６に接続され、さらに該スキャナコネクタ５６はリーダ部２のスキャナユニット１１に接続されている。そして、スキャナＩ／Ｆ４６はスキャナ部１１から受信した画像データに対し所望の２値化処理や、主走査方向及び／又は副走査方向の変倍処理を行い、またスキャナ部１１から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス４５を介してメインコントローラ３２に転送する。
【００２８】
また、プリンタＩ／Ｆ４８は、第２の調歩同期シリアルＩ／Ｆ５７及び第２のビデオＩ／Ｆ５８を介してプリンタコネクタ５９に接続され、さらに該プリンタコネクタ５９はプリンタ部６のマーキングユニット１３に接続されている。そして、プリンタＩ／Ｆ４８はメインコントローラ３２から出力された画像データにスムージング処理を施して該画像データをマーキングユニット１３に出力し、さらにマーキングユニット１３から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス４７に出力する。
【００２９】
そして、ＣＰＵ３３は、ＲＯＭ３６からＲＯＭＩ／Ｆ３５を介して読み込まれた制御プログラムに基づいて動作し、例えば、第１及び第２のホストコンピュータ３、４から受信したＰＤＬ（ページ記述言語）データを解釈し、ラスターイメージデータに展開処理を行う。
【００３０】
また、バスコントローラ３４は、スキャナＩ／Ｆ４６プリンタＩ／Ｆ４８、その他拡張コネクタ５０等に接続された外部機器から入出力されるデータ転送を制御するものであり、バス競合時のアービトレーション（調停）やＤＭＡデータ転送の制御を行う。即ち、例えば、上述したＤＲＡＭ３８とコーデック４０との間のデータ転送や、スキャナ部５からＤＲＡＭ３８へのデータ転送、ＤＲＡＭ３８からマーキングユニット１３へのデータ転送等は、バスコントローラ３４によって制御され、ＤＭＡ転送される。
【００３１】
また、Ｉ／Ｏ制御部５１は、ＬＣＤコントローラ６０などを介してパネルＩ／Ｆ６２に接続されている。また、前記Ｉ／Ｏ制御部５１は不揮発性メモリとしてのＥＥＰＲＯＭに接続され、またＥ−ＩＤＥコネクタ６３を介してハードディスクドライブ８に接続され、さらに、機器内で管理する日付と時刻を更新／保存するリアルタイムクロックモジュール６４に接続されている。尚、リアルタイムクロックモジュール６４はバックアップ用電池６５に接続されて該バックアップ用電池６５によりバックアップされている。
【００３２】
図４はメインコントローラ３２の内部詳細を示すブロック構成図である。
【００３３】
バスコントローラ３４は、４×４の６４ビットクロスバススイッチで構成され、６４ビットのプロセッサバス（Ｐバス）６７を介してＣＰＵ３３に接続され、またメモリ専用のローカルバス（Ｍバス）を介してキャッシュメモリを備えたメモリコントローラ６９に接続されている。尚、メモリコントローラ６９はＲＯＭ３６やＤＲＡＭ３８などのメモリ類と接続され、これらのメモリ類の動作を制御する。
【００３４】
さらに、該バスコントローラ３４はグラフィックスバス（Ｇバス）７０を介してＧバスアービタ７１及びスキャン・プリンタコントローラ７２と接続され、また入出力バス（Ｂバス）７３を介して、Ｂバスアービター７４、Ｇバスアービタ７１、インタラプトコントローラ、及び各種機能ブロック（電力管理ユニット７６、ＵＡＲＴなどのシリアルＩ／Ｆコントローラ７７、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）コントローラ７８、ＩＥＥＥ１２８４等のパラレルＩ／Ｆコントローラ７９、ＬＡＮコントローラ８０汎用入出力コントローラ８１、Ｂバス７３と外部バスであるＰＣＩバスとの間でＩ／Ｆ動作を司るＰＣＩバスＩ／Ｆ８２、及びスキャナ・プリンタコントローラ７２）と接続されている。
【００３５】
Ｂバスアービタ７４はＢバス７３を協調制御するアービトレーションであり、Ｂバス７３のバス使用要求を受け付け、調停の後、使用許可が選択された一つのマスタに与えられ、これにより同時に２つ以上のマスタがバスアクセスを行うのを禁止している。尚、アービトレーション方式は３段階の優先権を有し、それぞれの優先権に複数のマスタが割り当てられる。
【００３６】
インタラプトコントローラ７５は、上述した各機能ブロック及びコントローラユニット１１０の外部からインタラプトを集積し、ＣＰＵ３３がサポートするコントローラ類７２、７７−８２及びノンマスカブルインタラプト（ＮＭＩ）に再配分する。
【００３７】
電力管理ユニット７６は機能ブロック毎に電力を管理し、さらに１チップで構成されている電子部品としてコントローラユニット１１０の消費電力量の監視を行う。すなわち、コントローラユニット１１０は、ＣＰＵ３３を内蔵した大規模なＡＳＩＣ（特定用途向けＩＣ）で構成されており、このため全ての機能ブロックが同時に動作すると大量の熱を発生して、コントローラ部１１０自体が破壊されてしまうおそれがある。
【００３８】
そこで、このような事態を防止するために各に機能ブロック毎に消費電力を管理し、各機能ブロックの消費電力量はパワーマネージメントレベルとして電力管理ユニット７６に集積される。そして、該電力管理ユニット７６では各機能ブロックの消費電力量を合計し、該消費電力量が限界消費電力を超えないように各機能ブロックの消費電力量を一括して、監視する。
【００３９】
Ｇバスアービタ７１は中央アービトレーション方式によりＧバス７０を協調制御しており、各バスマスタに対して専用の要求信号と許可信号とを有する。尚、バスマスタへの優先権の付与方式として、全てのバスマスタを同じ優先権として、公平にバス権を付与する公平アービトレーションモードといずれか一つのバスマスタに対して優先的にバスを使用させる優先アービトレーションモードのいずれかを指定することができる。
【００４０】
図５は本発明を実施するにあたっての全体の流れを概念的に示した図である。アプリケーション層には、暗号化する任意のサイズのデータ（５０１）があるとする。このデータを暗号化する際には、ドライバ層では暗号チップの仕様である暗号ブロックサイズに分割され暗号ユニット（５０３）に転送される。暗号ユニットで暗号化されたデータは、再び任意のデータ領域（５０４）に転送される。このとき平文データ領域（５０２）と暗号化後のデータ領域（５０４）は同一でも構わない。そして、暗号ブロックサイズごと平文データ（５０２）のすべての領域が暗号化されるまで処理を順次行う。
【００４１】
図６は暗号処理を並列で行うことによる処理の高速化を示す模式図である。
【００４２】
図の横軸は時間を表し、四角い枠で囲われた部分（６０１−６０４）が暗号処理にかかる時間である。その四角い枠の前後にある線はデータをメモリから暗号チップに転送する時間である。図の例では処理を行うバスが転送を順次行っている様子を表す。
【００４３】
図７は暗号ユニットの詳細を示すブロック図である。
【００４４】
ＰＣＩインターフェース７０１はＰＣＩバスとの接点であり、データをやり取りする上でのバス権の獲得などを行うハードウェアである。クリプトチャネル７０１、７０２、７０３は、メインメモリ上のデータを暗号ユニット上の暗号チップにＤＭＡ転送するためのハードウェアである。コントールチップ７０２は、クリプトチャネルと後述の暗号チップ（７２１−７２５）を結ぶためのハードウェアである。クリプトチャネル数と暗号チップ数は異なるため、どのクリプトチャネルとどの暗号チップとを組み合わせるかは動的に決める。暗号処理の際には、クリプトチャネル１つと暗号チップ１つが必ずペアになって処理を行うため、暗号チップが空いた状態でもクリプトチャネルがすべて使用中であれば、暗号処理を開始することができない。図の７２１、７２２、７２３はＤＥＳで暗号化を行うためのハードウェアである。また、７２４，７２５はＡＲＣ４で暗号化を行うためのハードウェアである。これらのハードウェアには入力ＦＩＦＯと出力ＦＩＦＯがそれぞれに存在する。クリプトチャネルを介してＤＭＡ転送されるデータは、まず入力ＦＩＦＯに蓄積される。入力ＦＩＦＯのデータを暗号化した後のデータは出力ＦＩＦＯに蓄積される。そしてクリプトチャネルを介してメインメモリにＤＭＡ転送される。
【００４５】
図８はＤＭＡチャネル（クリプトチャネル）を動的に確保する手順を表すフローチャートである。
まず、最初のＤＭＡチャネルを見る（Ｓ８０１）。そのＤＭＡチャネルが空いているか（使用されていないか）どうかを確認（Ｓ８０２）する。ＤＭＡチャネルが空いていない（使用中である）場合はＳ８０５に移る。空いている場合は、そのＤＭＡチャネルを確保（Ｓ８０３）する。既に確保したＤＭＡチャネルが、アルゴリズムと暗号チップ（ＤＥＳ、ＡＲＣ４）の空き具合で決まる使用可能な暗号チップの数以上になった場合（Ｓ８０４）はＳ８０６に移る。そうでない場合、次の（他の）ＤＭＡチャネルが存在するかどうかを確認（Ｓ８０５）し、存在する場合はＳ８０２に戻る。存在しない場合は、今までにＤＭＡチャネルが確保できたかどうかを確認（Ｓ８０６）する。確保できていない場合は処理を終了する。確保できた場合は図９に示す暗号／復号を行う。
【００４６】
図９は暗号化／復号化する際の手順を表すフローチャートである。
【００４７】
まず、暗号ユニット上のフェッチレジスタに暗号条件などを示したディスクリプタ中で最初のディスクリプタのアドレスを書き込む（Ｓ９０１）。次にＤＭＡを起動し、暗号チップの入力ＦＩＦＯに暗号キー、暗号／復号対象データなどが読み込まれる（Ｓ９０２）。入力ＦＩＦＯの暗号キーと対象データを読み込み、暗号／復号処理を行い出力ＦＩＦＯに書き込む（Ｓ９０３）。再びＤＭＡを起動し、出力ＦＩＦＯの処理後のデータをメインメモリに書き戻す（Ｓ９０４）。次のディスクリプタがある場合はＳ９０２に戻り、無い場合は処理を終了する。
【図面の簡単な説明】
【００４８】
【図１】画像入出力システムのブロック構成図
【図２】画像入出力装置の断面図
【図３】コントローラ部のブロック構成図
【図４】メインコントローラの詳細を示すブロック構成図
【図５】本発明を実施する際の全体概念図
【図６】並列処理による処理の高速化を示す模式図
【図７】暗号ユニットを示すブロック図
【図８】ＤＭＡチャネル確保フローチャート
【図９】暗号／復号フローチャート
【符号の説明】
【００４９】
１  画像入出力システム（装置）
２  リーダ部
３，４  ホストコンピュータ
６  プリンタ部
７  操作部
８  ハードディスクドライブ
１０  原稿給紙ユニット（部）
１１  スキャナ部
１２  給紙ユニット（部）
１３  マーキングユニット（部）
１４  排紙ユニット（部）
９０  ＦＡＸ部
１１０  コントローラ部
４００  ＬＡＮ
２０１  スキャナ部
２０２  レーザ露光部
２０３  感光ドラム
２０４  作像部
２０５  定着部
２０６  給紙／搬送部
２１０  ポリゴンミラー
【図１】
2006292921.tif 000003
【図３】
2006292921.tif 000004
【図４】
2006292921.tif 000005
【図５】
2006292921.tif 000006
【図６】
2006292921.tif 000007
【図７】
2006292921.tif 000008
【図８】
2006292921.tif 000009
【図９】
2006292921.tif 000010
【図２】
2006292921.tif 000011