"暗号通信を行う暗号処理装置であって、暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、前記情報群を暗号化及び復号化する暗号処理手段と、前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、前記情報群を保持する第二の記憶手段を有し、前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には、前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納することを特徴とする暗号処理装置。前記暗号通信の確立に必要な情報群がセキュリティアソシエーションSAであることを特徴とする請求項1に記載の暗号処理装置。前記暗号手段によって暗号化する対象を前記情報群の一部とすることを特徴とする請求項1に記載の暗号処理装置。複数の接続先とのアクセスがランダムに発生している場合には、キャッシュミスが頻発しキャッシュの効果は限定的である。また、常にキャッシュヒットするように大容量化することも考えられるが、組み込みシステムではキャッシュはチップ内にSRAMとして実装されるため、チップコストの上昇を招く。さらにはキャッシュ容量には現実的な限界が存在するため、最大接続数がキャッシュ容量に依存してしまう。上記課題を解決するために、高速なSRAMの代わりに大容量なシステム共有メモリにSAを配置すると、第三者からの不正なアクセスによりSAを変更または盗難されてしまうという脅威も存在する。これに対して、特許文献1では、大容量なシステム共有メモリに配置する際にはSAを暗号化し、利用する際に復号化する事によってこの課題を解決している。しかしながら、SAを暗号化及び復号化する際には、CPUや暗号処理装置のリソースを占有してしまうため、通常のIPパケット処理を遅滞させ、結果的に暗号処理全体の性能低下を引き起こしてしまう。本発明は、第三者にSAを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にする暗号処理実装技術を提供することを主たる目的とする。本発明の暗号処理装置は、暗号通信を行う暗号処理装置であって、暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、前記情報群を暗号化及び復号化する暗号処理手段と、前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、前記情報群を保持する第二の記憶手段を有し、前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には格納前に前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納することを特徴とする。本発明によれば、第三者にSAを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にすることができる。[第一の実施形態]図1は、本発明を実施するための暗号処理装置101を示したものである。暗号処理装置101は内部に少なくとも後述する102から107を具備している。102はパケット入出力部であり、暗号化の対象となる平文のIPパケット、あるいは復号の対象となる暗号化されたIPパケットを入力し、暗号化済みもしくは復号化済みのIPパケットを出力する。103は暗号処理部であり、パケット入出力部102から取得したIPパケットやSAに対して暗号化処理と認証処理、もしくは復号処理と認証処理を行う。例えば、暗号処理部103はハードウェアとして実装され、MPUマイクロプロセッシングユニットが暗号処理を行うよりも高速に処理する事ができるが、代わりにMPU106が暗号処理を行う事もある。104は第一の記憶部であり、第二の記憶部105と比較して、小規模かつ高コストの記憶装置である。例えば、典型的な第一の記憶部104の実装形態としてSRAMが挙げられる。また、SRAMは一般的に暗号処理装置からのみアクセス可能である。105は第二の記憶部であり、第一の記憶部104と比較して、大規模かつ低コストの記憶装置である。例えば典型的な第二の記憶部105の実装形態としてDRAMが挙げられる。また、DRAMは一般的に暗号処理装置以外のシステムからも共有される。第一の記憶部104と第二の記憶部105は、暗号通信の確立に必要な情報群であるSAセキュリティアソシエーションを保持するために用いられる。尚、第一の記憶部104に記憶されたSAは、第二の記憶部105に記憶されたSAに比べ、高速に読み出すことができる。ただし、第一の記憶部104に記憶できるSAの数は、第二の記憶部105に記憶できるSAの数より少ない。106はMPUであり、暗号処理装置全体の制御を行う。107はSA管理部であり、暗号通信接続ごとに受信、または更新されるSAを管理し、SA登録時に当該SAを2つの記憶部のどちらに格納するかを選択する。また、利用時には当該SAが格納されている記憶部がどちらに格納されているかを判断する。さらに、SA管理部107はSA登録時に、当該SAの格納先が第二の記憶部105であった場合、暗号処理部103を用いて前記SAを暗号化してから第二の記憶部105へ格納する。MPU106によって定められた当該SAの格納先が第一の記憶部104であった場合には、暗号化せずそのまま格納する。また、SA管理部107の役割はMPU106が代わりに行う事もある。次に、暗号処理装置101の動作フローを説明する。SAは暗号通信接続ごとに受信、または更新される。受信、または更新されるSAを、第一の記憶部104か、第二の記憶部105のどちらの記憶部に格納するかを選択するのがSA登録処理フローである。また、既に登録されているSAを利用して通信接続を行う場合には、当該通信接続に必要なSAを記憶部から読み込む必要がある。このSAを読み込む処理がSA利用処理フローである。まず、暗号処理装置101のSA登録処理の動作を説明する。図2はSA登録処理フローを示す図である。図2AはSA登録処理時のフローチャートである。以下は、図2の説明である。SA登録処理が開始されると、S201にて、MPU106が第一の記憶部104に当該SAが格納できる容量が余っているかをチェックする。第一の記憶部104に当該SAを格納できる程の容量が余ってない場合には大容量である第二の記憶部105に当該SAを格納する事になりS202の処理に移行する。第二の記憶部105に前記SAを格納する場合には第三者からの不正なアクセスを防止するため、S202にて暗号処理部103を用いて前記SAを暗号化する。S202では、MPU106は当該SAをSA管理部107へ送り、SA管理部107は格納先を第二の記憶部105と判定し、前記SAを暗号処理部103へ送り、前記SAを暗号化する。前記SAを暗号化する際には、SA全体を暗号化するのではなく、SAの一部暗号鍵等のとりわけ重要な情報のみを暗号化する事によって暗号処理性能の低下を最小限に抑えることができる。SAの暗号化終了後S203にて、暗号化されたSAを第二の記憶部105に配置して、SA登録処理を終了する。S201にて、第一の記憶部104に空き容量があると判定された場合には、S204で、前記SAを第一の記憶部104に格納して、SA登録処理を終了する。S204では、MPU106が当該SAをSA管理部107へ送り、SA管理部107は格納先を第一の記憶部104と判定し、前記SAを暗号化せずに、第一の記憶部104へ格納する。第一の記憶部104は一般的に暗号処理装置101以外のシステムからはアクセスできないので、SAを第一の記憶部104に格納する場合には暗号化は行わない。次に、本暗号処理装置のSA利用処理の動作を説明する。図3はSA利用処理フローを示す図である。図3はSA利用処理時のフローチャートである。まず、SA利用処理が開始されると、S301にて、MPU106が、当該SAが第一の記憶部104に登録されているかをチェックする。第一の記憶部104に当該SAが登録されていない場合には、S302にて第二の記憶部105から前記SAを読み込み、暗号処理部103を用いて復号化する。これは、SA登録処理時において、第二の記憶部105に格納されているSAが暗号化された状態で保持されているためである。また、SAを復号化する際には、SA登録処理における暗号化箇所がSAの一部であるため、SA全体を復号化した場合と比較して暗号処理性能の低下を抑えることが出来る。S302では、MPU106が前記SA読み込み命令信号をSA管理部107送り、SA管理部107が前記命令信号を受け、第二の記憶部105から前記SAを読み込み、暗号処理部103によって前記SAを復号化する。前記SAの復号化が終了した後S303にて、復号化されたSAをMPU106によって利用する。S301にて、当該SAが第一の記憶部104に登録されている場合には、S304にて当該SAを第一の記憶部104から読み込み、SA利用処理を終了する。S304では、MPU106が前記SA読み込み命令信号をSA管理部107へ送り、SA管理部107が、格納先が第一の記憶部104であるため、前記SAを復号化せずMPU106へ送られ、MPU106によって利用される。以上のような処理を行うことで、暗号処理装置101は、第二の記憶部105に格納されるSAを暗号化させ、第三者からの不正なアクセスを防止する事が出来る。また、暗号化する対象をSAの一部のみとする事により暗号処理性能の低下を最低限に抑えることが出来る。以上、説明したように、本実施形態では、通信の発生と終了の特性を考慮してSAを高速なSRAM第一の記憶部と大容量なシステム共有メモリ第二の記憶部に適応的に配置する手法を活用した。その結果、第三者にSAを盗聴される事なく暗号通信の高速化と最大接続数の増加を可能にした。[第二の実施形態]第一の実施形態において、第二の記憶部105に格納されているSAの復号化は、SA利用処理時にのみ行われていた。本発明はこれに限定されるものではなく、以下に説明する第二の実施形態のように、暗号処理部103が待機状態中に投機的に復号化を行い、第一の記憶部104に配置しておいても良い。その他の構成要件、処理フローは第一の実施形態と同様である。図4にパケット送信時における、SAの復号化を投機的に行った場合のタイミングチャートを示す。図4Aは、投機的に復号化を行ったSAが、次のIPパケット処理時のSAと一致しなかった場合のタイミングチャートである。図4Bは、投機的に復号化を行ったSAが、次のIPパケット処理時のSAと一致した場合のタイミングチャートである。図4A,B共に、N1番目のIPパケット処理時のSAは、N番目のIPパケット処理終了時には第二の記憶部105に格納されている事を前提としている。以下は図4Aのタイミングチャートの説明である。暗号処理部103がN番目のIPパケット処理を実行するタイミングT401では、まずSA利用処理が実行される。このSA利用処理フローは第一の実施形態におけるSA利用処理フローと同じである。この例のタイミングチャートでは、当該SAは第二の記憶部105に格納されている場合を示しており、前記SAの暗号処理部103による復号化が行われる。その後、暗号処理部103は暗号化の対象となる平文のIPパケットを前記復号化されたSAを用いて暗号化する。前記暗号化されたIPパケットはパケット入出力部102を用いて出力され、N番目のIPパケット処理を終了する。第二の実施形態においては、IPパケット処理が終了した後、N1番目のIPパケット処理が開始するまでの待機状態のタイミングT402の間に、SAの復号化を投機的に実行する。この時復号化するSAの選択に関しては特に制限を設けない。前記復号化されたSAは第一の記憶部104に格納する。第一の記憶部104に前記SAを格納する容量が空いていない場合には、既に第一の記憶部104に格納されているSAの一つを第二の記憶部105に移行させる。移行させるSAの選択に関しては特に制限を設けない。その後、N1番目のIPパケット処理が実行されるタイミングT403では、T401と同様の処理を行う。この例では、T403でのSAは、T402にて投機的に復号化されたSAと一致せず、第一の記憶部104には格納されていない。このため、N1番目のIPパケット処理時には再度SAを復号化する必要があるが、投機的実行は暗号処理部103が待機状態中に行われているため、時間的なロスは発生しない。以下は図4Bのタイミングチャートの説明である。暗号処理部103がN番目のIPパケット処理を実行するタイミングT404と待機状態のタイミングT405での処理は図4Aと同様である。その後、N1番目のIPパケット処理が実行されるタイミングT406では、T404と同様の処理を行う。この例では、T406でのSAは、T405にて投機的に復号化されたSAと一致しており、第一の記憶部104には格納されている。このため、N1番目のIPパケット処理時にはSAを第一の記憶部104から高速に読み込む事が出来、SAの復号化にかかる時間分が高速化される。以上のような処理を行うことで、暗号処理装置101は、投機的に復号化を実行したSAが、以降のIPパケット処理時に第一の記憶部104に格納されている場合に処理を高速化できる。"