説明

暗号処理装置

【課題】 第三者にSAを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にする暗号処理実装技術を提供する。
【解決手段】 暗号処理装置は、暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、前記情報群を暗号化及び復号化する暗号処理手段と、前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、前記情報群を保持する第二の記憶手段を有し、前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には格納前に前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の暗号通信接続を同時並行的に設立し、暗号処理を行う暗号処理技術に関する。
【背景技術】
【0002】
近年、通信ネットワークは以前にもまして重要なインフラストラクチャとなりつつある。多様なサービスがネットワーク上のサービスとして提供されるようになり、各通信装置は複数のサイトやサービスに対して同時並行的に通信コネクションを設立し、高度かつ複雑なサービスを提供ができるようになった。一方で、不正アクセスの問題や情報漏洩問題が増加しており、通信の暗号化が必須の技術となっている。以上から、暗号処理装置には従来以上に多くの接続を高速に処理することが求められている。
【0003】
多数の暗号通信コネクションを高速に処理する手法として、例えば暗号処理回路を複数個並列に構成し、同時に複数本のコネクションを並列に処理することが考えられる。しかしながら、接続数に応じて暗号処理回路を増加させることは、回路面積や消費電力の観点から現実的な解決策とは言えない。そのため、一つの暗号処理回路で複数のコネクションに対するパケットを時分割多重で処理することが一般的である。
【0004】
ところで、IPSecプロトコルを用いた暗号通信の接続においては、送信側と受信側で暗号アルゴリズムや、暗号カギを共有しなければならない。これらの情報は、セキュリティ・アソシエーション(以下SAとする)と呼ばれており、暗号アルゴリズムや暗号カギの他に、イニシャルベクタなどの情報を含むデータコンテクストとして送信端及び受信端の装置で管理されている。SAのコンテクストはIPSecのRFCとして標準化されており、暗号処理装置は送信端と受信端で共有されたSAをパケット毎に参照しながら暗号化及び復号化を行う。
【0005】
暗号処理を時分割多重で実行した場合に、パケット単位に異なるSAを何らかの記憶領域から読み出す必要がある。このSAの読み出し速度が低速である場合には、暗号処理全体のボトルネックになってしまう。特にSAをシステム全体で共有する共有メモリに配置した場合には、SAを読み出すための遅延時間が大きくなり暗号処理の処理性能が低下するという課題がある。
【0006】
この課題を解決する一手段として、SAを高速な読み出しが可能な専用メモリ領域に配置することが考えられる。例えば、暗号処理装置がCPU及び専用ハードウェア装置で構成される場合には、何れもが高速に読み出し可能なキャッシュメモリに配置する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平9−73415号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
複数の接続先とのアクセスがランダムに発生している場合には、キャッシュミスが頻発しキャッシュの効果は限定的である。また、常にキャッシュヒットするように大容量化することも考えられるが、組み込みシステムではキャッシュはチップ内にSRAMとして実装されるため、チップコストの上昇を招く。さらにはキャッシュ容量には現実的な限界が存在するため、最大接続数がキャッシュ容量に依存してしまう。
【0009】
上記課題を解決するために、高速なSRAMの代わりに大容量なシステム共有メモリにSAを配置すると、第三者からの不正なアクセスによりSAを変更または盗難されてしまうという脅威も存在する。これに対して、特許文献1では、大容量なシステム共有メモリに配置する際にはSAを暗号化し、利用する際に復号化する事によってこの課題を解決している。しかしながら、SAを暗号化及び復号化する際には、CPUや暗号処理装置のリソースを占有してしまうため、通常のIPパケット処理を遅滞させ、結果的に暗号処理全体の性能低下を引き起こしてしまう。
【0010】
本発明は、第三者にSAを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にする暗号処理実装技術を提供することを主たる目的とする。
【課題を解決するための手段】
【0011】
本発明の暗号処理装置は、暗号通信を行う暗号処理装置であって、暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、前記情報群を暗号化及び復号化する暗号処理手段と、前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、前記情報群を保持する第二の記憶手段を有し、前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には格納前に前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納することを特徴とする。
【発明の効果】
【0012】
本発明によれば、第三者にSAを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にすることができる。
【図面の簡単な説明】
【0013】
【図1】第一の実施形態による暗号処理装置の構成図。
【図2】第一の実施形態によるSA登録処理フロー。
【図3】第一の実施形態によるSA利用処理フロー。
【図4】第二の実施形態によるSA復号タイミングチャート。
【発明を実施するための形態】
【0014】
[第一の実施形態]
図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が代わりに行う事もある。
【0015】
次に、暗号処理装置101の動作フローを説明する。SAは暗号通信接続ごとに受信、または更新される。受信、または更新されるSAを、第一の記憶部104か、第二の記憶部105のどちらの記憶部に格納するかを選択するのがSA登録処理フローである。また、既に登録されているSAを利用して通信接続を行う場合には、当該通信接続に必要なSAを記憶部から読み込む必要がある。このSAを読み込む処理がSA利用処理フローである。
【0016】
まず、暗号処理装置101のSA登録処理の動作を説明する。図2はSA登録処理フローを示す図である。図2(A)はSA登録処理時のフローチャートである。
【0017】
以下は、図2の説明である。SA登録処理が開始されると、S201にて、MPU106が第一の記憶部104に当該SAが格納できる容量が余っているかをチェックする。第一の記憶部104に当該SAを格納できる程の容量が余ってない場合には大容量である第二の記憶部105に当該SAを格納する事になりS202の処理に移行する。第二の記憶部105に前記SAを格納する場合には第三者からの不正なアクセスを防止するため、S202にて暗号処理部103を用いて前記SAを暗号化する。
【0018】
S202では、MPU106は当該SAをSA管理部107へ送り、SA管理部107は格納先を第二の記憶部105と判定し、前記SAを暗号処理部103へ送り、前記SAを暗号化する。前記SAを暗号化する際には、SA全体を暗号化するのではなく、SAの一部(暗号鍵等のとりわけ重要な情報)のみを暗号化する事によって暗号処理性能の低下を最小限に抑えることができる。SAの暗号化終了後S203にて、暗号化されたSAを第二の記憶部105に配置して、SA登録処理を終了する。
【0019】
S201にて、第一の記憶部104に空き容量があると判定された場合には、S204で、前記SAを第一の記憶部104に格納して、SA登録処理を終了する。S204では、MPU106が当該SAをSA管理部107へ送り、SA管理部107は格納先を第一の記憶部104と判定し、前記SAを暗号化せずに、第一の記憶部104へ格納する。第一の記憶部104は一般的に暗号処理装置101以外のシステムからはアクセスできないので、SAを第一の記憶部104に格納する場合には暗号化は行わない。
【0020】
次に、本暗号処理装置のSA利用処理の動作を説明する。図3はSA利用処理フローを示す図である。図3はSA利用処理時のフローチャートである。
【0021】
まず、SA利用処理が開始されると、S301にて、MPU106が、当該SAが第一の記憶部104に登録されているかをチェックする。第一の記憶部104に当該SAが登録されていない場合には、S302にて第二の記憶部105から前記SAを読み込み、暗号処理部103を用いて復号化する。これは、SA登録処理時において、第二の記憶部105に格納されているSAが暗号化された状態で保持されているためである。また、SAを復号化する際には、SA登録処理における暗号化箇所がSAの一部であるため、SA全体を復号化した場合と比較して暗号処理性能の低下を抑えることが出来る。
【0022】
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によって利用される。
【0023】
以上のような処理を行うことで、暗号処理装置101は、第二の記憶部105に格納されるSAを暗号化させ、第三者からの不正なアクセスを防止する事が出来る。また、暗号化する対象をSAの一部のみとする事により暗号処理性能の低下を最低限に抑えることが出来る。
【0024】
以上、説明したように、本実施形態では、通信の発生と終了の特性を考慮してSAを高速なSRAM(第一の記憶部)と大容量なシステム共有メモリ(第二の記憶部)に適応的に配置する手法を活用した。その結果、第三者にSAを盗聴される事なく暗号通信の高速化と最大接続数の増加を可能にした。
【0025】
[第二の実施形態]
第一の実施形態において、第二の記憶部105に格納されているSAの復号化は、SA利用処理時にのみ行われていた。本発明はこれに限定されるものではなく、以下に説明する第二の実施形態のように、暗号処理部103が待機状態中に投機的に復号化を行い、第一の記憶部104に配置しておいても良い。その他の構成要件、処理フローは第一の実施形態と同様である。
【0026】
図4にパケット送信時における、SAの復号化を投機的に行った場合のタイミングチャートを示す。図4(A)は、投機的に復号化を行ったSAが、次のIPパケット処理時のSAと一致しなかった場合のタイミングチャートである。図4(B)は、投機的に復号化を行ったSAが、次のIPパケット処理時のSAと一致した場合のタイミングチャートである。図4(A),(B)共に、(N+1)番目のIPパケット処理時のSAは、N番目のIPパケット処理終了時には第二の記憶部105に格納されている事を前提としている。
【0027】
以下は図4(A)のタイミングチャートの説明である。暗号処理部103がN番目のIPパケット処理を実行するタイミングT401では、まずSA利用処理が実行される。このSA利用処理フローは第一の実施形態におけるSA利用処理フローと同じである。この例のタイミングチャートでは、当該SAは第二の記憶部105に格納されている場合を示しており、前記SAの暗号処理部103による復号化が行われる。その後、暗号処理部103は暗号化の対象となる平文のIPパケットを前記復号化されたSAを用いて暗号化する。前記暗号化されたIPパケットはパケット入出力部102を用いて出力され、N番目のIPパケット処理を終了する。第二の実施形態においては、IPパケット処理が終了した後、(N+1)番目のIPパケット処理が開始するまでの待機状態のタイミングT402の間に、SAの復号化を投機的に実行する。この時復号化するSAの選択に関しては特に制限を設けない。前記復号化されたSAは第一の記憶部104に格納する。第一の記憶部104に前記SAを格納する容量が空いていない場合には、既に第一の記憶部104に格納されているSAの一つを第二の記憶部105に移行させる。移行させるSAの選択に関しては特に制限を設けない。その後、(N+1)番目のIPパケット処理が実行されるタイミングT403では、T401と同様の処理を行う。この例では、T403でのSAは、T402にて投機的に復号化されたSAと一致せず、第一の記憶部104には格納されていない。このため、(N+1)番目のIPパケット処理時には再度SAを復号化する必要があるが、投機的実行は暗号処理部103が待機状態中に行われているため、時間的なロスは発生しない。
【0028】
以下は図4(B)のタイミングチャートの説明である。暗号処理部103がN番目のIPパケット処理を実行するタイミングT404と待機状態のタイミングT405での処理は図4(A)と同様である。その後、(N+1)番目のIPパケット処理が実行されるタイミングT406では、T404と同様の処理を行う。この例では、T406でのSAは、T405にて投機的に復号化されたSAと一致しており、第一の記憶部104には格納されている。このため、(N+1)番目のIPパケット処理時にはSAを第一の記憶部104から高速に読み込む事が出来、SAの復号化にかかる時間分が高速化される。
【0029】
以上のような処理を行うことで、暗号処理装置101は、投機的に復号化を実行したSAが、以降のIPパケット処理時に第一の記憶部104に格納されている場合に処理を高速化できる。

【特許請求の範囲】
【請求項1】
暗号通信を行う暗号処理装置であって、
暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、
前記情報群を暗号化及び復号化する暗号処理手段と、
前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、
前記情報群を保持する第二の記憶手段を有し、
前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には、前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納することを特徴とする暗号処理装置。
【請求項2】
前記暗号通信の確立に必要な情報群がセキュリティ・アソシエーション(SA)であることを特徴とする請求項1に記載の暗号処理装置。
【請求項3】
前記暗号手段によって暗号化する対象を前記情報群の一部とすることを特徴とする請求項1に記載の暗号処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate