(57)【要約】【課題】各種アルゴリズムに容易に対応可能で、かつ暗号化・復号化処理のアルゴリズムの切り替えが高速な、安価な暗号化・復号化方法およびその装置を得る。【解決手段】回路構成を動的に変更可能な回路デバイスを用いて、所定の処理毎に異なる回路構成で暗号化・復号化を行う方法において、第１の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを用いて前記回路デバイスの回路を構成するステップと、第２の処理の開始タイミングを予測する予測ステップと、前記予測ステップの結果に基づき、前記第２の処理が開始すると予測されるタイミングに先立ち、前記第２の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを用いて、前記回路デバイスの回路を構成する回路構成ステップとを有することを特徴とする。【選択図】図１
2007300175.tif 000002
【特許請求の範囲】
【請求項１】
回路構成を動的に変更可能な回路デバイスを用いて、所定の処理毎に異なる回路構成で暗号化・復号化を行う方法において、
第１の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを用いて前記回路デバイスの回路を構成するステップと、
第２の処理の開始タイミングを予測する予測ステップと、
前記予測ステップの結果に基づき、前記第２の処理が開始すると予測されるタイミングに先立ち、前記第２の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを用いて、前記回路デバイスの回路を構成する回路構成ステップと
を有することを特徴とする暗号化・復号化方法。
【請求項２】
前記予測ステップにおいては、
前記第１の処理のうち現在実行中の処理以降の処理内容を、当該処理実行前に事前に読み込んでおき、
事前に読み込んだ処理内容に、前記第１の処理の終了処理の内容が含まれる場合には、
当該事前読み込み時点から、前記第１の処理終了までに要する標準時間が経過した時点が、前記第２の処理の開始タイミングであると予測することを特徴とする請求項１に記載の暗号化・復号化方法。
【請求項３】
前記予測ステップにおいて前記第２の処理が開始するものと予測したタイミングから、前記回路構成ステップに要する時間を差し引いたタイミングに、前記回路構成ステップの実行を開始することを特徴とする請求項２に記載の暗号化・復号化方法。
【請求項４】
前記予測ステップにおける予測結果と、前記第２の処理の実際の開始タイミングとを所定数格納する記憶手段を設け、
両者のタイミングの差が小さくなるように、前記予測ステップの次回予測結果を修正する学習ステップを有することを特徴とする請求項１ないし請求項３のいずれかに記載の暗号化・復号化方法。
【請求項５】
前記学習ステップにおいては、
前記記憶手段に格納された、前記予測結果と前記実際の開始タイミングとの差の二乗和を求め、当該二乗和が最小となるように、前記予測ステップの次回予測結果を修正することを特徴とする請求項４に記載の暗号化・復号化方法。
【請求項６】
前記学習ステップにおいては、所定の余裕時間を付加して次回予測結果を決定し、
前記学習ステップを繰り返す毎に、前記余裕時間を増減することを特徴とする請求項４又は請求項５に記載の暗号化・復号化方法。
【請求項７】
前記第２の処理を所定回数実行するまでは、
前記予測ステップ及び前記学習ステップをスキップし、前記第１の処理が完了した後に前記回路構成ステップを開始することを特徴とする請求項４ないし請求項６のいずれかに記載の暗号化・復号化方法。
【請求項８】
前記回路構成データを、ネットワークを介して取得するステップを有することを特徴とする請求項１ないし請求項７のいずれかに記載の暗号化・復号化方法。
【請求項９】
制御手段と、
回路構成を動的に変更可能な回路デバイスを備え、前記制御手段の指示に基づき、前記回路デバイスを用いて、前記制御手段が実行する所定の処理毎に異なる回路構成で暗号化・復号化処理を行う暗号化・復号化手段と、
複数種類の前記回路構成データを格納する記憶手段と
を有し、
前記制御手段は、
前記記憶手段より、第１の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを読み込んで前記回路デバイスの回路を構成し、
第２の処理の開始タイミングを予測し、
前記予測結果に基づき、
前記第２の処理が開始すると予測されるタイミングに先立ち、前記記憶手段より、前記第２の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを読み込んで、前記回路デバイスの回路を構成することを特徴とする暗号化・復号化装置。
【請求項１０】
前記制御手段は、
前記第２の処理の開始タイミングを予測する際には、前記第１の処理のうち現在実行中の処理以降の処理内容を、当該処理実行前に事前に読み込んでおき、
事前に読み込んだ処理内容に、前記第１の処理の終了処理の内容が含まれる場合には、
当該事前読み込み時点から、前記第１の処理終了までに要する標準時間が経過した時点が、前記第２の処理の開始タイミングであると予測することを特徴とする請求項９に記載の暗号化・復号化装置。
【請求項１１】
前記制御手段は、
前記第２の処理が開始するものと予測したタイミングから、前記第２の処理を行う際に用いる回路構成に要する時間を差し引いたタイミングに、
当該回路構成を開始することを特徴とする請求項１０に記載の暗号化・復号化装置。
【請求項１２】
前記記憶手段は、
前記第２の処理の開始タイミングの予測結果と、前記第２の処理の実際の開始タイミングとの差を所定数格納し、
前記制御手段は、
両者のタイミングの差が小さくなるように前記第２の処理の開始タイミングの、次回予測結果を修正することを特徴とする請求項９ないし請求項１１のいずれかに記載の暗号化・復号化装置。
【請求項１３】
前記制御手段は、
前記第２の処理の開始タイミングを予測する際には、
前記記憶手段に格納された、前記予測結果と前記実際の開始タイミングとの差の二乗和を求め、当該二乗和が最小となるように、次回予測結果を修正することを特徴とする請求項１２に記載の暗号化・復号化装置。
【請求項１４】
前記制御手段は、
前記第２の処理の開始タイミングを予測する際には、所定の余裕時間を付加して次回予測結果を決定し、
次回予測結果の修正を繰り返す毎に、前記余裕時間を増減することを特徴とする請求項１２又は請求項１３に記載の暗号化・復号化装置。
【請求項１５】
前記制御手段は、
前記第２の処理を所定回数実行するまでは、
前記第２の処理の開始タイミングをスキップし、前記第１の処理が完了した後に、前記第２の処理を行う際に用いる回路構成を開始することを特徴とする請求項１２ないし請求項１４のいずれかに記載の暗号化・復号化装置。
【請求項１６】
前記回路構成データを、ネットワークを介して取得する通信手段を有することを特徴とする請求項９ないし請求項１５のいずれかに記載の暗号化・復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各種アルゴリズムに容易に対応可能で、かつアルゴリズムの切り替えが高速な暗号化・復号化方法およびその装置に関するものである。
【背景技術】
【０００２】
暗号化・復号化処理は一般に高負荷のかかる処理であるため、暗号通信に用いられる機器には、処理の高速化を目的としてハードウェアの暗号処理部を搭載することが広く行われているが、そのため、従来は、予め定められたアルゴリズムのみに対応可能であり、種々のアルゴリズムに対応することは困難であった。
【０００３】
このような課題を解決するために、パケット送信時の宛先や、パケット受信時の送信元の情報に応じて暗号アルゴリズムを決定し、リコンフィギャラブル回路を構成することによって各種暗号アルゴリズムに対応する試みや、暗号アルゴリズムに対応する回路構成データを送受信して、そのデータをリコンフィギャラブル回路に設定することによって各種アルゴリズムへの対応を行う試み（例えば特許文献１参照）などがなされている。
【特許文献１】特開２００３−１９８５３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の暗号化・復号化方法やその装置においては、送受信パケットから得られる情報により暗号アルゴリズムを決定し、その時点からリコンフィギャラブル回路の再構成を行ったり、回路構成データそのものを送受信して得、そのデータを設定することによって回路の再構成を行ったりするので、アルゴリズムの切り替えに時間がかかるという課題があった。
また、リコンフィギャラブル回路を複数搭載して、未実行中の回路を予め再構成し、必要になった時点で実行するように切り替える構成とすれば、異なるアルゴリズムへの切り替え時間の短縮をはかることが可能となるが、リコンフィギャラブル回路が複数必要となるため、コスト高となるという課題があった。
【０００５】
本発明は、上記のような課題を解決するためになされたものであり、各種アルゴリズムに容易に対応可能で、かつ暗号化・復号化処理のアルゴリズムの切り替えが高速な、安価な暗号化・復号化方法およびその装置を得ることを目的としている。
【課題を解決するための手段】
【０００６】
本発明に係る暗号化・復号化方法は、
回路構成を動的に変更可能な回路デバイスを用いて、所定の処理毎に異なる回路構成で暗号化・復号化を行う方法において、
第１の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを用いて前記回路デバイスの回路を構成するステップと、
第２の処理の開始タイミングを予測する予測ステップと、
前記予測ステップの結果に基づき、前記第２の処理が開始すると予測されるタイミングに先立ち、前記第２の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを用いて、前記回路デバイスの回路を構成する回路構成ステップと
を有することを特徴とする。
【０００７】
また、本発明に係る暗号化・復号化装置は、
制御手段と、
回路構成を動的に変更可能な回路デバイスを備え、前記制御手段の指示に基づき、前記回路デバイスを用いて、前記制御手段が実行する所定の処理毎に異なる回路構成で暗号化・復号化処理を行う暗号化・復号化手段と、
複数種類の前記回路構成データを格納する記憶手段と
を有し、
前記制御手段は、
前記記憶手段より、第１の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを読み込んで前記回路デバイスの回路を構成し、
第２の処理の開始タイミングを予測し、
前記予測結果に基づき、
前記第２の処理が開始すると予測されるタイミングに先立ち、前記記憶手段より、前記第２の処理を行う際に用いる暗号化・復号化処理を行うための回路構成データを読み込んで、前記回路デバイスの回路を構成することを特徴とする。
【発明の効果】
【０００８】
本発明に係る暗号化・復号化方法およびその装置によれば、
今後の処理内容とその処理が実行されるタイミングとを予測して、その予測結果に基づいて制御手段によって暗号化・復号化実行部の回路構成データを書き換えるので、処理の進行に応じた最適な回路構成データがタイミングよく設定され、アルゴリズムの切り替え処理の高速化をはかることができる。
また、回路構成データを書き換え可能な暗号化・復号化手段を複数持つ必要が無いので、安価な構成とすることができる。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、本発明の実施の形態１に係る暗号化・復号化方法を実現する暗号化・復号化装置の全体構成図である。
図１において、実線枠はハードウェアを、破線枠はソフトウェアまたはデータを示している。一点鎖線は暗号化・復号化装置全体を示す。
暗号化・復号化装置１００は、マイコン１０１、暗号化・復号化実行部１０２、メモリＢ１０３を有する。
暗号化・復号化実行部１０２には、回路構成データを格納するメモリＡ１１０及びメモリＣ１０８と、メモリＣ１０８が格納している回路構成データを元に回路を構成する演算処理部１１２とがハードウェアとして内包されている。
メモリＣ１０８には、暗号化・復号化実行部１０２の現在の動作を行うための回路構成データ１０９が格納されている。
メモリＡ１１０には、暗号化・復号化実行部１０２が第１の動作を行うための回路構成データＡ１１１が格納されている。
演算処理部１１２は、回路構成を動的に変更可能な回路デバイスであり、例えばＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等の回路デバイスで実現することができる。
メモリＢ１０３には、暗号化・復号化実行部１０２が第２の動作を行うための回路構成データＢ１０４と、ソフトウェアＭ１０５とが格納されている。
ソフトウェアＭ１０５は、マイコン１０１の動作を規定するものであり、マイコン１０１によって読み込まれ、その処理内容が実行される。ソフトウェアＭ１０５には、処理予測モジュール１０６、制御モジュール１０７が含まれる。
マイコン１０１とメモリＣ１０８とは、制御線１１３で接続されている。
マイコン１０１とメモリＢ１０３とは、制御線１１４で接続されている。
マイコン１０１と演算処理部１１２とは、制御線１１５で接続されている。
メモリＡ１１０とメモリＣ１０８とは、制御線１１６で接続されている。
演算処理部１１２とメモリＣ１０８とは、制御線１１７で接続されている。
演算処理部１１２とメモリＡ１１０とは、制御線１１８で接続されている。
また、暗号化・復号化装置１００の外部には、外部機器２００が存在し、両者は通信路２０１で接続されている。
【００１０】
本発明における「制御手段」は、図１のマイコン１０１に相当する。
また、「記憶手段」は、図１のメモリＡ１１０、メモリＣ１０８、メモリＢ１０３に相当する。
「暗号化・復号化手段」は、図１の暗号化・復号化実行部１０２に相当する。
【００１１】
暗号化・復号化実行部１０２の動作は、メモリＣ１０８に設定された回路構成データＣ１０９の内容によって規定される。すなわち、回路構成データＣ１０９の内容を変更することによって再構成され、動作が変化する。
これは、演算処理部１１２が、メモリＣ１０８に設定された回路構成データＣ１０９の内容を基にして、回路構成を動的に変更するためである。
【００１２】
図２は、マイコン１０１の処理内容に応じて、メモリＣ１０８に格納されている回路構成データが変更される様子を説明するものである。
（１）
初期状態では、メモリＢ１０３、メモリＣ１０８、メモリＡ１１０には、図１に示すような回路構成データが格納されている。
（２）
マイコン１０１は、ある処理（以後、第１の処理と呼び、請求項１の「第１の処理」に相当）を行う際には、これに対応した暗号化・復号化処理を暗号化・復号化実行部１０２に実行させる。
このとき、マイコン１０１は、ソフトウェアＭ１０５に含まれる制御モジュール１０７を読み込み、制御線１１５を利用して暗号化・復号化実行部１０２の演算処理部１１２に回路構成データＡ１１１をメモリＣ１０８にロードするための制御信号を送信する。
前記制御信号を受けた演算処理部１１２は、メモリＡ１１０に格納されている回路構成データＡ１１１をメモリＣ１０８にロードし、回路構成データＣ１０９を回路構成データＡ１１１と置き換える。
その後、演算処理部１１２はメモリＣ１０８に設定された回路構成データに従って動作する。
このようにして、暗号化・復号化実行部１０２は、マイコン１０１の第１の処理に対応した暗号化・復号化処理を行うようになる。
（３）
次に、マイコン１０１が、第１の処理に続いて別の処理（以後、第２の処理と呼び、請求項１の「第２の処理」に相当）を行う際には、これに対応した暗号化・復号化処理を暗号化・復号化実行部１０２に実行させる。
このとき、マイコン１０１は、ソフトウェアＭ１０５に含まれる制御モジュール１０７を読み込み、メモリＢ１０３に格納された回路構成データＢ１０４を、マイコン１０１を介して暗号化・復号化実行部１０２のメモリＣ１０８にロードし、回路構成データＣ１０９を回路構成データＢ１０４に置き換える。
その後、演算処理部１１２はメモリＣ１０８に設定された回路構成データＢ１０４に従って動作する。
このようにして、暗号化・復号化実行部１０２は、マイコン１０１の第２の処理に対応した暗号化・復号化処理を行なうようになる。
【００１３】
図３は、演算処理部１１２の回路構成を動的に変更する必要がある場合の具体例として、暗号化通信を例に説明するものである。
一般に、暗号化通信により通信内容の秘匿性を保ちたい場合には、より強度な暗号方式を用いて通信内容を暗号化することが望ましい。例えば、公開鍵暗号方式を用いて通信内容を暗号化すれば、秘密鍵暗号方式を用いる場合よりも、暗号の強度が増す。
しかし、公開鍵暗号方式を用いて暗号化・復号化処理を行うには、比較的大きな演算能力を必要とするため、演算装置の処理能力に限りがあるような場合には、両者を組み合わせた方式を用いることがある。
（１）
まず、通信内容の送信側では、秘密鍵を公開鍵暗号方式により暗号化し、暗号化された秘密鍵を受信側に予め送信しておく。
図３の上図において、公開鍵暗号回路３０１は、暗号化前の秘密暗号鍵Ｐ１、公開鍵ｅ及び法ｍを入力として受け取り、暗号化後の秘密暗号鍵ｃ１を出力する。
秘密暗号鍵ｃ１は、通信内容の受信側に予め送信され（図示せず）、受信側では秘密暗号鍵ｃ１を復号しておく。
（２）
次に、通信内容を送信する際には、ステップ（１）で受信側に送信した秘密鍵に対応する秘密鍵を用いて、通信内容を暗号化した後に、受信側に送信する。
図３の下図において、秘密鍵暗号回路３０２は、暗号化前の送信文Ｐ２を入力として受け取り、暗号化後の送信文ｃ２を出力する。
受信側では、ステップ（１）で受け取った秘密暗号鍵ｃ１を利用して、通信内容を復号化する。
【００１４】
このように、１の通信処理において、異なる暗号化方式を用いることがあり、これは通信に限ったものではなく、暗号化を行う種々の処理においても同様のケースが存在する。
図３に示すように、それぞれの暗号化方式で異なる回路を用いると、コスト等の面で不利であるため、単一の回路で双方の暗号化方式に対応できることが望ましい。
また、単に双方の暗号化・復号化アルゴリズムを実装した回路を用いると、回路デバイスのゲート数制限等により、デバイスサイズが大きくなってしまう場合がある。
そこで、本発明に係る暗号化・復号化装置は、暗号方式の切換えが必要となるタイミングを先読みして回路構成をあらかじめ切換えておくことにより、単一の回路デバイスで、回路構成の切換え待ち時間を発生させずに、複数の暗号化方式をサポートするものである。
【００１５】
次に、図１の暗号化・復号化装置１００が、通信路２０１を介して外部機器２００と暗号化通信を行う場合の動作について説明する。
暗号化・復号化装置１００は暗号通信を行う相手である外部機器２００と通信路２０１によって接続されている。この通信路２０１は論理的な通信路であり、有線、無線いずれの形態であるかは問わない。
また、暗号化・復号化装置１００の内部には外部機器との通信に供する外部機器通信部を備える（図示せず）。外部機器通信部はマイコンとは別の部品として構成されていてもよいし、マイコンに内蔵されていてもよい。
なおここでは、暗号化・復号化実行部１０２の第１の動作を行うための回路構成データＡ１１１を、通信のハンドシェイクプロトコル用の暗号化・復号化動作を行うための回路構成データとする。
また、第２の動作を行うための回路構成データＢ１０４を、通信のアプリケーションデータ用の暗号化・復号化動作を行うための回路構成データとする。
通信の手順は必ず通信相手との通信路の確立のためにハンドシェイクを行ってからアプリケーションデータの送受信を行うものとし、ハンドシェイク、アプリケーションデータの送受信、それぞれのフェーズで異なる暗号アルゴリズムが使用されるものとする。
【００１６】
図４は、図１の暗号化・復号化装置１００が、通信路２０１を介して外部機器２００と暗号化通信を行う場合の動作フローチャートを説明するものである。以下、各ステップについて説明する。
【００１７】
（Ｓ４０１）
通信を行うにあたっては、必ず最初にハンドシェイクが行われることから、暗号化・復号化実行部１０２はまず最初にハンドシェイクプロトコル用の暗号アルゴリズムが動作するようになっている必要がある。
そのため、まず最初にはハンドシェイクプロトコル用の動作を行う回路構成データをメモリＣ１０８にセットする。すなわち、マイコン１０１は、制御モジュール１０７の指示内容に基づき、回路構成データＡ１１１をメモリＣ１０８にロードする。
（Ｓ４０２）
通信が開始され、ハンドシェイクが開始されると、マイコン１０１は、処理予測モジュール１０６の指示内容に基づき、マイコンの実行ソフトウェアＭ１０５の次の処理ブロックを先読みし、その命令パターンを一時記憶する。
（Ｓ４０３）
マイコン１０１は、予め記憶されたハンドシェイク完了時の命令パターンと、一時記憶された先読みした命令パターンとの比較により、先読みした命令パターンがハンドシェイク完了パターンか否かを判定する。これは、ハンドシェイク処理の終了が近づいているか否かを判断することを意味している。
（Ｓ４０４）
マイコン１０１は、ステップＳ４０２で先読みした命令パターンが、ハンドシェイク完了パターンではない場合には、さらに通信のハンドシェイク処理の進行に伴ってソフトウェアＭ１０５の処理の先読みを継続する。
ハンドシェイク完了パターンであると判定された場合には、その時点からの経過時間の計時を開始する。
（Ｓ４０５）
マイコン１０１は、アルゴリズム切替開始予測時間が経過するのを待つ。
ここで、アルゴリズム切替開始予測時間は、「ハンドシェイク完了の命令パターンを先読みしてから実際のハンドシェイク処理の完了までの標準時間」−「アルゴリズム切替に要する時間（＝回路構成データＢ１０４をメモリＣ１０８にロードするのに要する時間）」によって求めた値とする。
（Ｓ４０６）
マイコン１０１は、アルゴリズム切替開始予測時間の経過を確認したらアプリケーションデータ用の動作を行う回路構成データをメモリＣ１０８にセットする。すなわち、マイコン１０１は、制御モジュール１０７の指示内容に基づき、回路構成データＢ１０４をメモリＣ１０８にロードする。
この後は、アプリケーションデータ用の暗号アルゴリズムが動作する暗号化・復号化実行部１０２を用いて、アプリケーションデータの暗号通信を行うこととなる。
【００１８】
図５は、図４の示すフローチャートと、実際の通信処理における経過時間との関係を、縦軸に経過時間軸を設定して説明するシーケンス図である。
図５の右半面に示すフローチャートは、図４のフローチャートそのものである。
マイコン１０１は、図１の暗号化・復号化装置１００が、外部機器２００と暗号化通信を行う際に、全体の動作制御を行う。以下、ステップＳ５０１〜Ｓ５０３と、経過時間との関係について説明する。
（Ｓ５０１）
マイコン１０１は、ステップＳ４０１において、ハンドシェイク処理用の回路構成データがメモリＣ１０８にセットされた後に、外部機器２００とのハンドシェイクを開始する。
（Ｓ５０２）
外部機器２００とのハンドシェイクが完了するまでに、ハンドシェイク完了後のアプリケーションデータ送信に用いる暗号化処理を実施できるように準備しておく必要がある。
即ち、ステップＳ４０６に要する時間を考慮して、前もって回路構成データをメモリＣ１０８にセットしておく必要がある。
（Ｓ５０３）
マイコン１０１は、ハンドシェイク完了後、アプリケーションデータを送信する処理を開始する。即ち、前処理としてのハンドシェイク完了後、通信データ本体を送信するステップに移行する。
このとき外部機器に送信されるデータは、ステップＳ４０６でメモリＣ１０８にセットされた回路構成データを用いて暗号化処理が行われた後のものとなる。
【００１９】
なお、本実施の形態１においては、メモリＢ１０３はマイコンの外付けとして説明をしたが、マイコン内蔵のメモリで実現してもよい。また、メモリＢ１０３内に格納されたデータＢ１０４、ソフトウェアＭ１０５は、図１に例示したように物理的には同じメモリの、異なるアドレス範囲の領域に格納されるものであってもよいし、それぞれが物理的に異なるメモリ上に配置されていてもよい。
特に後者の構成とすると、メモリがＦＬＡＳＨメモリであっても、ソフトウェアＭ１０５をマイコン１０１で実行中でもデータＢ１０４の書き換えが可能になり、より自由に動的に暗号化・復号化実行部１０２の処理内容を変更することが可能となるというメリットもある。
また、メモリＡ１１０とメモリＣ１０８は、物理的に異なるメモリとして説明したが、物理的には同じメモリの、異なるアドレス範囲の領域であってもよい。
さらに、ここでは暗号化・復号化実行部１０２は２つの異なるアルゴリズムを切り替えて実現する形態を説明したが、３つ以上のアルゴリズムを切り替えて実現する形態であってもよい。
その際、メモリＡ１１０、メモリＢ１０３、メモリＣ１０８のそれぞれの容量や、どのメモリのどの領域にどのアルゴリズムを実現する回路構成データを格納するかは自由であり、システムに合わせて最適な設計を行えばよい。加えて、予測方法も、ここで示した方法は一例に過ぎず、他の予測方法を用いても良い。
【００２０】
以上のように、本実施の形態１によれば、
回路構成データを切換えるべきタイミングを予測し、必要となる回路構成データを予めメモリ中に読み込んでおくので、
処理の進行に応じた最適な回路構成データがタイミングよく設定され、アルゴリズムの切り替え処理の高速化をはかることができる。
また、再構成可能な暗号化・復号化実行部１０２が１つで充分な高速性能が得られるので、これを複数用意しなければならない構成と比較して安価に実現することが可能となる。
【００２１】
また、第１の処理のうち現在実行している処理以降の処理内容を、当該処理実行前に事前に読み込んでおき、事前に読み込んだ処理内容に、第１の処理の終了処理の内容が含まれる場合には、当該事前読み込み時点から、第１の処理終了までに要する標準時間が経過した時点が、第２の処理の開始タイミングであると予測するので、
適切なタイミングで最適な回路構成データを設定することができる。
【００２２】
また、第２の処理が開始するものと予測したタイミングから、第２の処理を行う際に用いる回路構成に要する時間を差し引いたタイミングに、第２の処理を行う際に必要となる回路の構成を開始するので、
回路構成の切換え中に第１の処理が終了してしまい、待ち時間が発生するという事態を回避し、アルゴリズムの切換えを含む全体処理を効率的に行うことができる。
【００２３】
実施の形態２．
図６は、本発明の実施の形態２に係る暗号化・復号化方法を実現する暗号化・復号化装置の全体構成図である。
本実施の形態２においては、マイコン１０１の動作を規定するソフトウェアＭ１０５に学習モジュール１２０を設ける。
学習モジュール１２０は、回路構成データの切換えタイミングをメモリに所定回数もしくは所定時間記録し、その内容に基づき、次回以降の切換えタイミングを修正する、学習処理を規定するものである。マイコン１０１は、学習モジュール１２０の指示内容に基づき、上記学習処理を行う。
その他の構成は、実施の形態１における図１と同様であるため、説明を省略する。
【００２４】
次に、学習モジュール１２０に基づく、マイコン１０１の学習処理について説明する。
（１）
マイコン１０１は、学習モジュール１２０の指示内容に基づき、アルゴリズム切替開始予測時間の誤差の二乗和、すなわち、アルゴリズムの切り替えが必要になる毎の「アルゴリズム切替開始予測時間」−「実際に切替が必要になった時間」の二乗和を求める。
（２）
マイコン１０１は、学習モジュール１２０の指示内容に基づき、ある単位時間または単位回数を設けて、ステップ（１）で求めた二乗和を、その間継続して積算する。
（３）
マイコン１０１は、学習モジュール１２０の指示内容に基づき、ステップ（２）で求めた積算値が最小となるように、「ハンドシェイク完了の命令パターンを先読みしてから実際のハンドシェイク処理の完了までの標準時間」の調整を行うなどして、アルゴリズム切替開始予測時間の調整を動的に行う。
【００２５】
マイコン１０１のアルゴリズム切換えタイミングの学習過程は、例えば図６におけるメモリＢ１０３に所定の記憶領域を設けて格納しておくようにすればよい。
メモリＡ１１０やメモリＣ１０８に格納してもよいが、学習処理はマイコン１０１に関するものであるため、ソフトウェアＭ１０５を格納しているメモリＢ１０３に格納する方が、処理上の都合がよい。
【００２６】
なお、アルゴリズムの切り替え、すなわち回路構成データの書き換え開始のタイミングの誤りを可能な限り防止するため、学習開始当初は時間に余裕を持たせて書き換えを開始するようにして、学習により徐々に最適なタイミングで書き換えを開始するようにしていっても良い。
この場合、学習開始当初は、処理予測モジュール１０６により予測されたアルゴリズム切替開始予測時間に対し、例えばある一定の時間を加えた時間を改めてアルゴリズム切替開始予測時間とみなすようにしておき、例えばある一定の回数学習を行うなど、学習が進んだ所で学習結果を用いてアルゴリズム切替開始予測時間の調整を行うようにすることでこれを実現することが可能となる。
【００２７】
また、同様にアルゴリズムの切り替え、すなわち回路構成データの書き換え開始のタイミングの誤りを可能な限り防止するために、現在処理中のアルゴリズムの処理完了通知を暗号化・復号化実行部１０２からマイコン１０１に制御線１１５を通じて通知するようにして、学習開始当初は処理予測手段がその処理完了通知を受け取ることをトリガとしてアルゴリズムの切り替え、すなわち回路構成データの書き換えを開始するようにしておき、学習が進んだ所で学習結果を用いてアルゴリズム切替開始予測時間の調整を行うようにしてもよい。
【００２８】
このように、アルゴリズムの切り替えタイミング、すなわち回路構成データの書き換え開始のタイミングを学習して動的に調整することが可能となるため、通信環境や通信相手、およびそれらの時間的変化に追随して、常に最適な回路構成データ変更タイミングを維持することが可能となる。
なお、学習手段の学習方法は、ここで示した方法は一例に過ぎず、他の学習方法を用いても良い。
【００２９】
以上のように、本実施の形態２によれば、
第２の処理の開始タイミングの予測結果と、第２の処理の実際の開始タイミングとの差をメモリ中に所定数格納し、
両者のタイミングの差が小さくなるように、第２の処理の開始タイミングの次回予測結果を修正するので、
通信環境や通信相手、およびそれらの時間的変化に追随して、常に最適な回路構成データ変更タイミングを維持することが可能となる。
【００３０】
また、第２の処理の開始タイミングを予測する際には、
メモリ中に格納された、第２の処理の開始タイミング予測結果と、実際の開始タイミングとの差の二乗和を求め、当該二乗和が最小となるように、次回予測結果を修正するので、
最小二乗法のような一般的に確立された最適化手法を用いることができ、回路構成を切換えるべきタイミングの予測精度が向上する。
【００３１】
また、第２の処理の開始タイミングを予測する際には、所定の余裕時間を付加して次回予測結果を決定し、
次回予測結果の修正を繰り返す毎に、前記余裕時間を増減するので、
アルゴリズムの切り替え、すなわち回路構成データの書き換え開始のタイミングの誤りが発生する可能性を低減することができる。
【００３２】
また、第２の処理を所定回数実行するまでは、
第２の処理の開始タイミングをスキップし、第１の処理が完了した後に、第２の処理を行う際に用いる回路の構成を開始するので、
学習の初期段階における不正確な予測タイミングを用いて、誤ったタイミングでアルゴリズムの切り替え、すなわち回路構成データの書き換えをしてしまうことを防ぐことができる。
【００３３】
実施の形態３．
図７は、本発明の実施の形態３に係る暗号化・復号化方法を実現する暗号化・復号化装置の全体構成図である。
図７の暗号化・復号化装置１００は、メモリＢ１０３、メモリＤ１１９を有する。
メモリＢ１０３には、暗号化・復号化実行部１０２が第２の動作を行うための回路構成データＢ１０４が格納されている。
メモリＤ１１９には、マイコン１０１の動作を規定するソフトウェアＭ１０５が格納されている。
ソフトウェアＭ１０５には、処理予測モジュール１０６、制御モジュール１０７、通信モジュール１２２が含まれる。
通信モジュール１２２は、マイコン１０１が暗号化・複合化装置１００の外部のデバイス、例えば図１における外部機器２００等とデータの授受を行う機能を実現するソフトウェアである。
演算処理部１１２とメモリＤ１１９とは、制御線１２１で接続されている。
また、通常、外部機器との通信に供する外部機器通信部（図示せず）を備えるのは、実施の形態１と同様である。
その他の構成は、実施の形態１における図１と同様であるため、説明を省略する。
【００３４】
マイコン１０１は、通信モジュール１２２の指示内容に従い、外部デバイスから暗号化・復号化実行部１０２の回路構成データを取得し、その回路構成データを、回路構成データＢ１０４をメモリＣ１０８に設定する際と同様の処理により、メモリＣ１０８に設定する。
これにより、暗号化・復号化実行部１０２を、現在暗号化・復号化装置１００が保持していない新しいアルゴリズムで動作させることが可能となる。
なお、通信モジュール１２２の指示内容にしたがって外部デバイスから取得した回路構成データは、ダイレクトにメモリＣ１０８へロードしてもよいし、一旦メモリＢ１０３あるいは他のメモリ領域などに格納してもよい。
また、外部デバイスから通信を通じてコマンドを受信する等により要求を受け付け、暗号化・復号化実行部１０２の回路構成データの書き換えを行い、機能変更を行うことも可能である。
【００３５】
なお、図７においては、図１や図６に示す構成と異なり、回路構成データＢ１０４を格納するメモリＢ１０３と、マイコン１０１の動作を規定するソフトウェアＭ１０５を格納するメモリＤ１１９とを分離した構成としている。
これは、メモリＢ１０３、メモリＤ１１９が、書き込み処理中には読み込み動作のできない種類のＦＬＡＳＨメモリのようなデバイスを利用して構成されていてもソフトウェアＭ１０５の実行中にデータＢ１０４の書き換えを可能とするための一例である。
本実施の形態３におけるメモリの構成はこれに限られるものではなく、図１と同様に物理的に同一メモリ上に格納する形態であってもよい。
【００３６】
ここまで、全て暗号化・復号化装置を対象として説明を行ってきたが、それぞれで実現されている暗号化・復号化方法についても同様である。さらに、実施の形態１、２、３について説明したが、これらは各々単独で用いても任意の形態を組み合わせて用いてもよく、適用対象に応じて最も効果的な構成を構築すればよい。
【００３７】
以上のように、本実施の形態３によれば、
回路構成データを、ネットワークを介して取得する通信手段を有するので、
より多種のアルゴリズムに、動的に機能変更を行うことが可能となる。また、外部との通信に広域系の通信を適用すれば、遠隔地からの暗号化・復号化実行部の機能変更等も可能となる。さらには、外部から回路構成データを書き換え可能としたので、回路構成データ書き換えの柔軟性が増し、予測したタイミング以外での書き換えが可能となる。
【図面の簡単な説明】
【００３８】
【図１】実施の形態１に係る暗号化・復号化方法を実現する暗号化・復号化装置の全体構成図である。
【図２】マイコン１０１の処理内容に応じて、メモリＣ１０８に格納されている回路構成データが変更される様子を説明するものである。
【図３】演算処理部１１２の回路構成を動的に変更する必要がある場合の具体例として、暗号化通信を例に説明するものである。
【図４】図１の暗号化・復号化装置１００が、通信路２０１を介して外部機器２００と暗号化通信を行う場合の動作フローチャートを説明するものである。
【図５】図４の示すフローチャートと、実際の通信処理における経過時間との関係を、縦軸に経過時間軸を設定して説明するシーケンス図である。
【図６】実施の形態２に係る暗号化・復号化方法を実現する暗号化・復号化装置の全体構成図である。
【図７】実施の形態３に係る暗号化・復号化方法を実現する暗号化・復号化装置の全体構成図である。
【符号の説明】
【００３９】
１００  暗号化・復号化装置、１０１  マイコン、１０２  暗号化・復号化実行部、１０３  メモリＢ、１０４  回路構成データＢ、１０５  ソフトウェアＭ、１０６  処理予測モジュール、１０７  制御モジュール、１０８  メモリＣ、１０９  回路構成データ、１１０  メモリＡ、１１１  回路構成データＡ、１１２  演算処理部、１１３  制御線、１１４  制御線、１１５  制御線、１１６  制御線、１１７  制御線、１１８  制御線、１１９  メモリＤ、１２０  学習モジュール、１２１  制御線、１２２  通信モジュール、２００  外部機器、２０１  通信路、３０１  公開鍵暗号回路、３０２  秘密鍵暗号回路。
【図１】
2007300175.tif 000003
【図２】
2007300175.tif 000004
【図３】
2007300175.tif 000005
【図４】
2007300175.tif 000006
【図５】
2007300175.tif 000007
【図６】
2007300175.tif 000008
【図７】
2007300175.tif 000009