(57)【要約】【課題】  第三者にＳＡを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にする暗号処理実装技術を提供する。【解決手段】  暗号処理装置は、暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、前記情報群を暗号化及び復号化する暗号処理手段と、前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、前記情報群を保持する第二の記憶手段を有し、前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には格納前に前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納する。【選択図】  図１
2013074526.tif 000002
【特許請求の範囲】
【請求項１】
暗号通信を行う暗号処理装置であって、
暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、
前記情報群を暗号化及び復号化する暗号処理手段と、
前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、
前記情報群を保持する第二の記憶手段を有し、
前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には、前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納することを特徴とする暗号処理装置。
【請求項２】
前記暗号通信の確立に必要な情報群がセキュリティ・アソシエーション（ＳＡ）であることを特徴とする請求項１に記載の暗号処理装置。
【請求項３】
前記暗号手段によって暗号化する対象を前記情報群の一部とすることを特徴とする請求項１に記載の暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の暗号通信接続を同時並行的に設立し、暗号処理を行う暗号処理技術に関する。
【背景技術】
【０００２】
近年、通信ネットワークは以前にもまして重要なインフラストラクチャとなりつつある。多様なサービスがネットワーク上のサービスとして提供されるようになり、各通信装置は複数のサイトやサービスに対して同時並行的に通信コネクションを設立し、高度かつ複雑なサービスを提供ができるようになった。一方で、不正アクセスの問題や情報漏洩問題が増加しており、通信の暗号化が必須の技術となっている。以上から、暗号処理装置には従来以上に多くの接続を高速に処理することが求められている。
【０００３】
多数の暗号通信コネクションを高速に処理する手法として、例えば暗号処理回路を複数個並列に構成し、同時に複数本のコネクションを並列に処理することが考えられる。しかしながら、接続数に応じて暗号処理回路を増加させることは、回路面積や消費電力の観点から現実的な解決策とは言えない。そのため、一つの暗号処理回路で複数のコネクションに対するパケットを時分割多重で処理することが一般的である。
【０００４】
ところで、ＩＰＳｅｃプロトコルを用いた暗号通信の接続においては、送信側と受信側で暗号アルゴリズムや、暗号カギを共有しなければならない。これらの情報は、セキュリティ・アソシエーション（以下ＳＡとする）と呼ばれており、暗号アルゴリズムや暗号カギの他に、イニシャルベクタなどの情報を含むデータコンテクストとして送信端及び受信端の装置で管理されている。ＳＡのコンテクストはＩＰＳｅｃのＲＦＣとして標準化されており、暗号処理装置は送信端と受信端で共有されたＳＡをパケット毎に参照しながら暗号化及び復号化を行う。
【０００５】
暗号処理を時分割多重で実行した場合に、パケット単位に異なるＳＡを何らかの記憶領域から読み出す必要がある。このＳＡの読み出し速度が低速である場合には、暗号処理全体のボトルネックになってしまう。特にＳＡをシステム全体で共有する共有メモリに配置した場合には、ＳＡを読み出すための遅延時間が大きくなり暗号処理の処理性能が低下するという課題がある。
【０００６】
この課題を解決する一手段として、ＳＡを高速な読み出しが可能な専用メモリ領域に配置することが考えられる。例えば、暗号処理装置がＣＰＵ及び専用ハードウェア装置で構成される場合には、何れもが高速に読み出し可能なキャッシュメモリに配置する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−７３４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
複数の接続先とのアクセスがランダムに発生している場合には、キャッシュミスが頻発しキャッシュの効果は限定的である。また、常にキャッシュヒットするように大容量化することも考えられるが、組み込みシステムではキャッシュはチップ内にＳＲＡＭとして実装されるため、チップコストの上昇を招く。さらにはキャッシュ容量には現実的な限界が存在するため、最大接続数がキャッシュ容量に依存してしまう。
【０００９】
上記課題を解決するために、高速なＳＲＡＭの代わりに大容量なシステム共有メモリにＳＡを配置すると、第三者からの不正なアクセスによりＳＡを変更または盗難されてしまうという脅威も存在する。これに対して、特許文献１では、大容量なシステム共有メモリに配置する際にはＳＡを暗号化し、利用する際に復号化する事によってこの課題を解決している。しかしながら、ＳＡを暗号化及び復号化する際には、ＣＰＵや暗号処理装置のリソースを占有してしまうため、通常のＩＰパケット処理を遅滞させ、結果的に暗号処理全体の性能低下を引き起こしてしまう。
【００１０】
本発明は、第三者にＳＡを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にする暗号処理実装技術を提供することを主たる目的とする。
【課題を解決するための手段】
【００１１】
本発明の暗号処理装置は、暗号通信を行う暗号処理装置であって、暗号通信の確立に必要な情報群を受信、又は更新する管理手段と、前記情報群を暗号化及び復号化する暗号処理手段と、前記暗号処理装置からのみアクセス可能で、かつ、前記情報群を保持する第一の記憶手段と、前記情報群を保持する第二の記憶手段を有し、前記管理手段は、前記情報群を、前記第二の記憶手段に格納する場合には格納前に前記暗号処理手段を用いて暗号化させて、前記第二の記憶手段に格納することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、第三者にＳＡを盗聴される可能性を軽減し、暗号通信の高速化と最大接続数の増加を可能にすることができる。
【図面の簡単な説明】
【００１３】
【図１】第一の実施形態による暗号処理装置の構成図。
【図２】第一の実施形態によるＳＡ登録処理フロー。
【図３】第一の実施形態によるＳＡ利用処理フロー。
【図４】第二の実施形態によるＳＡ復号タイミングチャート。
【発明を実施するための形態】
【００１４】
［第一の実施形態］
図１は、本発明を実施するための暗号処理装置１０１を示したものである。暗号処理装置１０１は内部に少なくとも後述する１０２から１０７を具備している。１０２はパケット入出力部であり、暗号化の対象となる平文のＩＰパケット、あるいは復号の対象となる暗号化されたＩＰパケットを入力し、暗号化済みもしくは復号化済みのＩＰパケットを出力する。１０３は暗号処理部であり、パケット入出力部１０２から取得したＩＰパケットやＳＡに対して暗号化処理と認証処理、もしくは復号処理と認証処理を行う。例えば、暗号処理部１０３はハードウェアとして実装され、ＭＰＵ（マイクロ・プロセッシング・ユニット）が暗号処理を行うよりも高速に処理する事ができるが、代わりにＭＰＵ１０６が暗号処理を行う事もある。１０４は第一の記憶部であり、第二の記憶部１０５と比較して、小規模かつ高コストの記憶装置である。例えば、典型的な第一の記憶部１０４の実装形態としてＳＲＡＭが挙げられる。また、ＳＲＡＭは一般的に暗号処理装置からのみアクセス可能である。１０５は第二の記憶部であり、第一の記憶部１０４と比較して、大規模かつ低コストの記憶装置である。例えば典型的な第二の記憶部１０５の実装形態としてＤＲＡＭが挙げられる。また、ＤＲＡＭは一般的に暗号処理装置以外のシステムからも共有される。第一の記憶部１０４と第二の記憶部１０５は、暗号通信の確立に必要な情報群であるＳＡ（セキュリティ・アソシエーション）を保持するために用いられる。尚、第一の記憶部１０４に記憶されたＳＡは、第二の記憶部１０５に記憶されたＳＡに比べ、高速に読み出すことができる。ただし、第一の記憶部１０４に記憶できるＳＡの数は、第二の記憶部１０５に記憶できるＳＡの数より少ない。１０６はＭＰＵであり、暗号処理装置全体の制御を行う。１０７はＳＡ管理部であり、暗号通信接続ごとに受信、または更新されるＳＡを管理し、ＳＡ登録時に当該ＳＡを２つの記憶部のどちらに格納するかを選択する。また、利用時には当該ＳＡが格納されている記憶部がどちらに格納されているかを判断する。さらに、ＳＡ管理部１０７はＳＡ登録時に、当該ＳＡの格納先が第二の記憶部１０５であった場合、暗号処理部１０３を用いて前記ＳＡを暗号化してから第二の記憶部１０５へ格納する。ＭＰＵ１０６によって定められた当該ＳＡの格納先が第一の記憶部１０４であった場合には、暗号化せずそのまま格納する。また、ＳＡ管理部１０７の役割はＭＰＵ１０６が代わりに行う事もある。
【００１５】
次に、暗号処理装置１０１の動作フローを説明する。ＳＡは暗号通信接続ごとに受信、または更新される。受信、または更新されるＳＡを、第一の記憶部１０４か、第二の記憶部１０５のどちらの記憶部に格納するかを選択するのがＳＡ登録処理フローである。また、既に登録されているＳＡを利用して通信接続を行う場合には、当該通信接続に必要なＳＡを記憶部から読み込む必要がある。このＳＡを読み込む処理がＳＡ利用処理フローである。
【００１６】
まず、暗号処理装置１０１のＳＡ登録処理の動作を説明する。図２はＳＡ登録処理フローを示す図である。図２（Ａ）はＳＡ登録処理時のフローチャートである。
【００１７】
以下は、図２の説明である。ＳＡ登録処理が開始されると、Ｓ２０１にて、ＭＰＵ１０６が第一の記憶部１０４に当該ＳＡが格納できる容量が余っているかをチェックする。第一の記憶部１０４に当該ＳＡを格納できる程の容量が余ってない場合には大容量である第二の記憶部１０５に当該ＳＡを格納する事になりＳ２０２の処理に移行する。第二の記憶部１０５に前記ＳＡを格納する場合には第三者からの不正なアクセスを防止するため、Ｓ２０２にて暗号処理部１０３を用いて前記ＳＡを暗号化する。
【００１８】
Ｓ２０２では、ＭＰＵ１０６は当該ＳＡをＳＡ管理部１０７へ送り、ＳＡ管理部１０７は格納先を第二の記憶部１０５と判定し、前記ＳＡを暗号処理部１０３へ送り、前記ＳＡを暗号化する。前記ＳＡを暗号化する際には、ＳＡ全体を暗号化するのではなく、ＳＡの一部（暗号鍵等のとりわけ重要な情報）のみを暗号化する事によって暗号処理性能の低下を最小限に抑えることができる。ＳＡの暗号化終了後Ｓ２０３にて、暗号化されたＳＡを第二の記憶部１０５に配置して、ＳＡ登録処理を終了する。
【００１９】
Ｓ２０１にて、第一の記憶部１０４に空き容量があると判定された場合には、Ｓ２０４で、前記ＳＡを第一の記憶部１０４に格納して、ＳＡ登録処理を終了する。Ｓ２０４では、ＭＰＵ１０６が当該ＳＡをＳＡ管理部１０７へ送り、ＳＡ管理部１０７は格納先を第一の記憶部１０４と判定し、前記ＳＡを暗号化せずに、第一の記憶部１０４へ格納する。第一の記憶部１０４は一般的に暗号処理装置１０１以外のシステムからはアクセスできないので、ＳＡを第一の記憶部１０４に格納する場合には暗号化は行わない。
【００２０】
次に、本暗号処理装置のＳＡ利用処理の動作を説明する。図３はＳＡ利用処理フローを示す図である。図３はＳＡ利用処理時のフローチャートである。
【００２１】
まず、ＳＡ利用処理が開始されると、Ｓ３０１にて、ＭＰＵ１０６が、当該ＳＡが第一の記憶部１０４に登録されているかをチェックする。第一の記憶部１０４に当該ＳＡが登録されていない場合には、Ｓ３０２にて第二の記憶部１０５から前記ＳＡを読み込み、暗号処理部１０３を用いて復号化する。これは、ＳＡ登録処理時において、第二の記憶部１０５に格納されているＳＡが暗号化された状態で保持されているためである。また、ＳＡを復号化する際には、ＳＡ登録処理における暗号化箇所がＳＡの一部であるため、ＳＡ全体を復号化した場合と比較して暗号処理性能の低下を抑えることが出来る。
【００２２】
Ｓ３０２では、ＭＰＵ１０６が前記ＳＡ読み込み命令信号をＳＡ管理部１０７送り、ＳＡ管理部１０７が前記命令信号を受け、第二の記憶部１０５から前記ＳＡを読み込み、暗号処理部１０３によって前記ＳＡを復号化する。前記ＳＡの復号化が終了した後Ｓ３０３にて、復号化されたＳＡをＭＰＵ１０６によって利用する。Ｓ３０１にて、当該ＳＡが第一の記憶部１０４に登録されている場合には、Ｓ３０４にて当該ＳＡを第一の記憶部１０４から読み込み、ＳＡ利用処理を終了する。Ｓ３０４では、ＭＰＵ１０６が前記ＳＡ読み込み命令信号をＳＡ管理部１０７へ送り、ＳＡ管理部１０７が、格納先が第一の記憶部１０４であるため、前記ＳＡを復号化せずＭＰＵ１０６へ送られ、ＭＰＵ１０６によって利用される。
【００２３】
以上のような処理を行うことで、暗号処理装置１０１は、第二の記憶部１０５に格納されるＳＡを暗号化させ、第三者からの不正なアクセスを防止する事が出来る。また、暗号化する対象をＳＡの一部のみとする事により暗号処理性能の低下を最低限に抑えることが出来る。
【００２４】
以上、説明したように、本実施形態では、通信の発生と終了の特性を考慮してＳＡを高速なＳＲＡＭ（第一の記憶部）と大容量なシステム共有メモリ（第二の記憶部）に適応的に配置する手法を活用した。その結果、第三者にＳＡを盗聴される事なく暗号通信の高速化と最大接続数の増加を可能にした。
【００２５】
［第二の実施形態］
第一の実施形態において、第二の記憶部１０５に格納されているＳＡの復号化は、ＳＡ利用処理時にのみ行われていた。本発明はこれに限定されるものではなく、以下に説明する第二の実施形態のように、暗号処理部１０３が待機状態中に投機的に復号化を行い、第一の記憶部１０４に配置しておいても良い。その他の構成要件、処理フローは第一の実施形態と同様である。
【００２６】
図４にパケット送信時における、ＳＡの復号化を投機的に行った場合のタイミングチャートを示す。図４（Ａ）は、投機的に復号化を行ったＳＡが、次のＩＰパケット処理時のＳＡと一致しなかった場合のタイミングチャートである。図４（Ｂ）は、投機的に復号化を行ったＳＡが、次のＩＰパケット処理時のＳＡと一致した場合のタイミングチャートである。図４（Ａ），（Ｂ）共に、（Ｎ＋１）番目のＩＰパケット処理時のＳＡは、Ｎ番目のＩＰパケット処理終了時には第二の記憶部１０５に格納されている事を前提としている。
【００２７】
以下は図４（Ａ）のタイミングチャートの説明である。暗号処理部１０３がＮ番目のＩＰパケット処理を実行するタイミングＴ４０１では、まずＳＡ利用処理が実行される。このＳＡ利用処理フローは第一の実施形態におけるＳＡ利用処理フローと同じである。この例のタイミングチャートでは、当該ＳＡは第二の記憶部１０５に格納されている場合を示しており、前記ＳＡの暗号処理部１０３による復号化が行われる。その後、暗号処理部１０３は暗号化の対象となる平文のＩＰパケットを前記復号化されたＳＡを用いて暗号化する。前記暗号化されたＩＰパケットはパケット入出力部１０２を用いて出力され、Ｎ番目のＩＰパケット処理を終了する。第二の実施形態においては、ＩＰパケット処理が終了した後、（Ｎ＋１）番目のＩＰパケット処理が開始するまでの待機状態のタイミングＴ４０２の間に、ＳＡの復号化を投機的に実行する。この時復号化するＳＡの選択に関しては特に制限を設けない。前記復号化されたＳＡは第一の記憶部１０４に格納する。第一の記憶部１０４に前記ＳＡを格納する容量が空いていない場合には、既に第一の記憶部１０４に格納されているＳＡの一つを第二の記憶部１０５に移行させる。移行させるＳＡの選択に関しては特に制限を設けない。その後、（Ｎ＋１）番目のＩＰパケット処理が実行されるタイミングＴ４０３では、Ｔ４０１と同様の処理を行う。この例では、Ｔ４０３でのＳＡは、Ｔ４０２にて投機的に復号化されたＳＡと一致せず、第一の記憶部１０４には格納されていない。このため、（Ｎ＋１）番目のＩＰパケット処理時には再度ＳＡを復号化する必要があるが、投機的実行は暗号処理部１０３が待機状態中に行われているため、時間的なロスは発生しない。
【００２８】
以下は図４（Ｂ）のタイミングチャートの説明である。暗号処理部１０３がＮ番目のＩＰパケット処理を実行するタイミングＴ４０４と待機状態のタイミングＴ４０５での処理は図４（Ａ）と同様である。その後、（Ｎ＋１）番目のＩＰパケット処理が実行されるタイミングＴ４０６では、Ｔ４０４と同様の処理を行う。この例では、Ｔ４０６でのＳＡは、Ｔ４０５にて投機的に復号化されたＳＡと一致しており、第一の記憶部１０４には格納されている。このため、（Ｎ＋１）番目のＩＰパケット処理時にはＳＡを第一の記憶部１０４から高速に読み込む事が出来、ＳＡの復号化にかかる時間分が高速化される。
【００２９】
以上のような処理を行うことで、暗号処理装置１０１は、投機的に復号化を実行したＳＡが、以降のＩＰパケット処理時に第一の記憶部１０４に格納されている場合に処理を高速化できる。
【図１】
2013074526.tif 000003
【図２】
2013074526.tif 000004
【図３】
2013074526.tif 000005
【図４】
2013074526.tif 000006