JP4994741B2 - 通信暗号化処理装置 - Google Patents

通信暗号化処理装置 Download PDF

Info

Publication number
JP4994741B2
JP4994741B2 JP2006215965A JP2006215965A JP4994741B2 JP 4994741 B2 JP4994741 B2 JP 4994741B2 JP 2006215965 A JP2006215965 A JP 2006215965A JP 2006215965 A JP2006215965 A JP 2006215965A JP 4994741 B2 JP4994741 B2 JP 4994741B2
Authority
JP
Japan
Prior art keywords
encryption
key
key management
management module
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006215965A
Other languages
English (en)
Other versions
JP2008042655A (ja
Inventor
昭彦 熊取谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006215965A priority Critical patent/JP4994741B2/ja
Priority to US11/832,507 priority patent/US8081761B2/en
Publication of JP2008042655A publication Critical patent/JP2008042655A/ja
Application granted granted Critical
Publication of JP4994741B2 publication Critical patent/JP4994741B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、暗号処理、認証処理等を行う通信暗号化処理装置に関する。
近年、文書や画像、音声等様々な種類のデータがインターネットやイントラネット等の通信路を通して全世界で送受信されている。また、ADSLや光ファイバー等の普及により、より高速な通信に対する需要が高まっている。この送受信されているデータの中には、個人のプライバシーに関するデータや機密データ等、第三者には秘密にしたいデータも多く含まれている。そのため、SSL/TLSやIPsec等のようにデータを暗号化し、第三者には解読不能にして通信を行う通信暗号化技術が開発されてきた。
ここで、通信暗号化技術の例としてSSL/TLSについて簡単に説明する。SSL/TLSの主要なプロトコルはハンドシェイク・プロトコルとレコード・プロトコルである。ハンドシェイク・プロトコルでは、通信相手の認証及びレコード・プロトコルで使用する暗号アルゴリズムの選択や暗号アルゴリズムで使用する共通鍵の生成を行う。レコード・プロトコルでは、送受信するデータのメッセ維持認証コードの計算と暗号化・復号を行う。SSL/TLSでは通信相手の認証を行うことでなりすましを、送受信するデータのMDを計算することでデータの改竄を、送受信するデータを暗号化することで盗聴を防いでいる。
図11は従来のSSL/TLSを行うセキュリティ・チップ900の例である。
従来のセキュリティ・チップ900では、メインCPU10によってセキュリティ・チップ900内の制御が行われる。また、通信I/F11はネットワーク102を介して外部装置A12、外部装置B13、外部装置C14等とデータを送受信し、通信暗号処理装置901がSSl/TLSの処理を行う。メインCPU10、通信I/F11、通信暗号化処理装置901は共通バス101を介して接続している。通信暗号化処理装置901には、通信暗号化処理装置901内の全体の制御を行う制御プログラム910を搭載したCPU2、暗号化・復号処理モジュール906で処理を行う前のデータ及び処理を行った後のデータを一時保持するワークメモリ3が設けられている。
また、メインCPU10や通信I/F11から受信したデータをワークメモリ3に書き込んだり、ワークメモリ3からメインCPU10や通信I/F11へデータの送信を行う外部I/F4を有する。また、通信暗号化処理装置901において暗号化・復号処理に使われる鍵のライフサイクルを管理する鍵管理モジュール905を有する。また、鍵管理モジュール905より供給される鍵を使用してワークメモリ3から読み出したデータに対する暗号化処理又は復号処理を行ったり、メッセージ認証コードを生成したりするための暗号化・復号処理モジュール906を有する。また、暗号化・復号処理モジュール906が使用し、鍵管理モジュール905がそのライフサイクルを管理する鍵を格納しておくメモリ908が含まれている。このCPU2、ワークメモリ3、外部I/F4、鍵管理モジュール905、暗号化・復号処理モジュール906は共通バス100で接続している。
ここで、セキュリティ・チップ900の動作について簡単に説明する。
メインCPU10は外部装置A12からネットワーク102、通信I/F11を介してデータを受信すると、受信したデータを通信暗号化処理装置901に送信する。次に、外部I/F4を介してデータを受信した通信暗号化処理装置901では、受信したデータをワークメモリ3に一時保持する。次に、外部装置A12と共有した鍵を鍵管理モジュール905から暗号化・復号処理モジュール906に配送する。次に、暗号化・復号処理モジュール906はワークメモリ3に保持されているデータを読み込み暗号化・復号処理を行い、処理したデータを再びワークメモリ3に書き込む。最後に、暗号化・復号処理モジュール906が受信した全てのデータの処理を終えると、外部I/F4を介してメインCPU10にワークメモリ3に保持されているデータを送る。
図10は外部装置A12、外部装置B13、外部装置C14の3者と暗号通信を行う際の鍵管理モジュール905の鍵生成、鍵配送処理と暗号化・復号処理モジュール906が行う暗号化処理のタイミングを示した図である。
先ず、T101において外部装置A12との暗号通信に使用する鍵を生成し、T102で鍵管理モジュール905から暗号処理モジュールにT101で生成した鍵を配送している。
T103〜T105において暗号化・復号処理モジュール906は暗号化処理を行っている。このとき鍵管理モジュール905ではT104において外部装置B13との暗号通信に必要な鍵の生成を行っている。
暗号化処理が終了するとT106で鍵管理モジュール905はT104で生成した外部装置B13との暗号通信に必要な鍵の配送を行う。
続いて、T107で暗号化・復号処理モジュール906はT106で配送された鍵を使用して外部装置B13との暗号通信のための暗号化処理を行う。
T108で再び外部装置A12と暗号通信するために鍵管理モジュール905はT101で生成する。
その後、保持してあった外部装置A12用の鍵を暗号化・復号処理モジュール906へ配送し、T109〜T110で暗号化・復号処理モジュール906は外部装置A12との暗号通信のための暗号化処理を行う。
T110で鍵管理モジュール905は外部装置C14との暗号通信のための鍵生成を行い、T111で暗号化・復号処理モジュール906に配送する。
そして、T112において暗号化・復号処理モジュール906は外部装置C14との暗号通信のための暗号化処理を行う。
このようにして通信暗号化処理装置は外部装置A12、外部装置B13、外部装置C14の3者と暗号通信を行うことができる。
特開2006−191207号公報
しかしながら、上記従来例では暗号処理で使用する鍵を鍵管理モジュールからバスを介して配送する必要がある。このため、システム全体を制御しているCPU上の制御プログラムから鍵そのものが見えてしまい、万一制御プログラムがウイルス感染した場合等は鍵が外部に漏れてしまう危険性がある等安全性上の問題点がある。また、バス上には暗号化・復号処理モジュールとメモリ間で入出力データの送受信が行われており、鍵配送に使おうとすると転送効率が低下し、効率的に配送できないという問題点がある。
本発明に係る第1の通信暗号化処理装置は、前記通信暗号化処理装置の制御を行う制御プログラムを搭載したCPUと、前記通信暗号化処理装置の外部とデータの入出力を行うための外部インターフェースと、前記外部インターフェースからの入力データ又は外部インターフェースへの出力データを一時保持するための第一の記憶手段と、前記外部インターフェース又は前記第一の記憶手段に格納されているデータを読み出し、暗号化・復号処理又はメッセージ認証コードを生成し、処理結果を前記第一の記憶手段に格納する暗号化・復号処理モジュールと、前記暗号化・復号処理モジュールで使用する鍵を生成し、前記暗号化・復号処理モジュールへ配送するための鍵管理モジュールと、前記CPU、前記外部インターフェース、前記第一の記憶手段、前記鍵管理モジュール、前記暗号化・復号処理モジュールが接続されているバスと、前記鍵管理モジュールに接続され、前記暗号化・復号処理モジュールへ配送する鍵情報を保持しておくための第の記憶手段と、から構成され前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に前記バス以外に専用信号線を設け、前記鍵管理モジュールで生成され、前記暗号化・復号処理モジュールで使用する鍵は前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に設けられた前記専用信号線を通して配送され、前記第二の記憶手段は、前記バスとは接続されておらず、かつ、前記バスとは異なるメモリバスで前記鍵管理モジュールと接続されていることを特徴とする。
本発明に係る第2の通信暗号化処理装置は、前記通信暗号化処理装置の制御を行う制御プログラムを搭載したCPUと、前記通信暗号化処理装置の外部とデータの入出力を行うための外部インターフェースと、前記外部インターフェースからの入力データ又は外部インターフェースへの出力データを一時保持するための第一の記憶手段と、前記外部インターフェース又は前記第一の記憶手段に格納されているデータを読み出し、暗号化・復号処理又はメッセージ認証コードを生成し、処理結果を前記第一の記憶手段に格納する暗号化・復号処理モジュールと、前記暗号化・復号処理モジュールで使用する鍵を生成し、前記暗号化・復号処理モジュールへ配送するための鍵管理モジュールと、前記CPU、前記外部インターフェース、前記第一の記憶手段、前記鍵管理モジュール、前記暗号化・復号処理モジュールが接続されているバスと、前記鍵管理モジュールに接続され、前記暗号化・復号処理モジュールへ配送する鍵情報を保持しておくための第二の記憶手段と、から構成され、前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に前記バス以外に専用信号線を設け、前記鍵管理モジュール又は前記暗号化・復号処理モジュールのうちの一方のモジュールからもう一方のモジュールに対して前記専用信号線を使って特定の演算処理要求を送り、前記専用信号線を使って前記特定の演算処理結果を送り返し、前記第二の記憶手段は、前記バスとは接続されておらず、かつ、前記バスとは異なるメモリバスで前記鍵管理モジュールと接続されていることを特徴とする。
本発明によれば、鍵管理モジュールと暗号化・復号処理モジュールの間に専用通信チャネルを設け、鍵配送や鍵データのハッシュ値の取得を専用通信チャネルを介して行うことにより、バス上で生の鍵データを扱うことなく所望の処理を行うことができる。
(第1の実施例)
図1は本発明の第1の実施例における通信暗号化処理装置の内部構成を示した図である。図1を用いて第1の実施例における通信暗号化処理装置について説明する。
図1において1は通信暗号化処理SSL/TLSを行う通信暗号化処理装置、2は通信暗号化処理装置1全体の制御を行う制御プログラム301を搭載したCPUである。また、3は通信暗号化処理装置1内で暗号化・復号処理モジュール6で処理を行う前又は処理を行った後のデータを一時保持しておくためのワークメモリである。また、4はワークメモリ3へ通信暗号化処理装置1の外部からデータを入力したり、ワークメモリ3から外部へデータを出力したりするための外部インターフェースである。また、5は通信暗号化処理装置1において暗号化・復号処理に使われる鍵のライフサイクルを管理する鍵管理モジュールである。また、6は鍵管理モジュール5より供給される鍵を使用してワークメモリ3から読み出したデータに対する暗号化処理又は復号処理を行ったり、メッセージ認証コードを生成したりするための暗号化・復号処理モジュールである。また、7は通信暗号化処理SSL/TLSの相互認証で使用するX.509証明書等を保持する第1のメモリである。また、8は暗号化・復号処理モジュール6がSSL/TLSのレコード・プロトコルで使用し、鍵管理モジュール5がそのライフサイクルを管理する鍵を格納しておく第2のメモリである。また、100はCPU2、ワークメモリ3、外部インターフェース4、鍵管理モジュール5、暗号化・復号処理モジュール6等が接続するバス、101は外部インターフェース4と外部デバイスとを接続するためのバスである。また、204、205は鍵管理モジュール5と暗号化・復号処理モジュール6の間を接続する専用信号線である。また、301は鍵管理モジュール5や暗号化・復号処理モジュール6を制御し、かつメモリ8及びメモリ9に保持される鍵の指定を行う、CPU2に搭載された制御プログラムである。
図2は制御プログラム301が管理しているセッション情報の例を表す図である。図2を用いて、制御プログラム301が管理しているセッション情報の例について説明する。
識別子は暗号処理に使用するセッションを識別するための数値である。SSL/TLSの場合は暗号通信路を識別するセッションIDである。セッションIDは上述したSSL/TLSのハンドシェイク・プロトコルで決定される。
エントリ番号は制御プログラム301が識別子と1対1に対応させて割り当てた番号であり、制御プログラム301と鍵管理モジュール5、暗号化・復号モジュール6間の通信で鍵を識別するのに用いられる。この例では8つまで鍵を扱えるのでエントリ番号に0〜7の値を割り当てている。
活性化フラグはエントリ番号で識別された鍵の状態を示すフラグであり、エントリ番号で識別された鍵が第2のメモリに保持されていない初期化済みステータス、制御プログラム301が鍵管理モジュール5にエントリ番号で識別された鍵生成・登録要求を送信する。そして、鍵管理モジュール5から鍵生成・登録要求終了を受信するまでの間の登録中ステータス、エントリ番号で識別された鍵が第2のメモリに登録されている登録済みステータス、制御プログラム301が鍵管理モジュール5に鍵廃棄要求を送信する。鍵管理モジュール5から鍵廃棄終了を受信するまでの間の廃棄中ステータスの4つの状態を表す。
制御プログラム301は活性化フラグを見ることによって、各鍵の状態を知ることができる。先ず、初期化された状態では活性化フラグは初期化済みステータスとなっており、制御プログラム301が鍵生成・登録要求を送信するとそのエントリ番号の活性化フラグは登録中ステータスとなる。次に、制御プログラム301が鍵生成・登録終了信号を受信すると活性化フラグは登録済みステータスとなる。鍵の使用が終わって制御プログラム301が鍵廃棄要求を送信すると活性化フラグは廃棄中ステータスとなり、鍵廃棄終了信号を受信すると活性化フラグは初期化済みステータスとなる。
サイファー・スイートは暗号化・復号処理モジュール6で使用する暗号処理アルゴリズムであり、この場合SSL/TLSのレコード・プロトコルで使用する暗号処理アルゴリズムである。
図3は鍵管理モジュール5が管理している情報の例を表す図である。図3を用いて、鍵管理モジュール5が管理している情報の例について説明する。
エントリ番号は鍵を識別するための番号で制御プログラム301が管理しているエントリ番号と同一のものである。
メモリ・アドレスは各エントリ番号に対応する鍵が第2のメモリ8上で保持されているアドレスを示すものである。
サイファー・スイートは制御プログラム301が管理しているサイファー・スイートと同一のものであり、暗号化・復号処理モジュール6で使用する暗号処理アルゴリズムである。
図4は鍵管理モジュール5の内部構成を示す図である。
図4において21はバス100を介してデータの送受信を行うためのDMAコントローラ、22はコマンド制御部、23は乱数・鍵生成部、24は鍵管理制御部、206はDMAコントローラ21とコマンド制御部22間を接続するための信号線である。また、207,208はコマンド制御部22と鍵生成部23間を接続するための信号線、209は鍵生成部から鍵管理制御部への信号線、210、211はコマンド制御部と鍵管理制御部とを接続するための信号線である。
図5は暗号化・復号処理モジュール6の内部構成を示す図である。
図5において31はバス100を介してデータの送受信を行うためのDMAコントローラ、32はコマンド制御部、33は暗号化処理部、34はハッシュ処理部、306はDMAコントローラ31とコマンド制御部32間を接続するための信号線である。また、307,308はコマンド制御部32と暗号化処理部33間を接続するための信号線、309は鍵管理制御部35から暗号化処理部33への信号線である。また、310、311はコマンド制御部とハッシュ処理部とを接続するための信号線、312は鍵管理制御部35からハッシュ処理部34への信号線である。
図6は通信暗号化処理装置1でSSL/TLSの通信開始から通信終了までの制御プログラム301、鍵管理モジュール5、暗号化・復号処理モジュール6の間のデータ送受信を示したシーケンス図である。
図7は制御プログラム301、鍵管理モジュール5、暗号化・復号処理モジュール6の間で送受信するデータグラムのフォーマットを示したものである。
図7(a)はこのデータグラムの構成を示した図である。データグラムは1バイトのコマンドと各コマンドによって定められたビット長をもつデータから構成されている。
次に、図6及び図7を使ってデータ送受信シーケンスについて説明する。
ステップS101において制御プログラム301は鍵管理モジュール5に乱数生成要求を送信する。送信される乱数生成要求を示すデータグラムのフォーマットは図7(b)で示されるようになっており、コマンド部は乱数生成要求を示す1バイトのコードと乱数長を示すコードが連結した構成となっている。
次に、ステップS102において鍵管理モジュール5は乱数を生成する。鍵管理モジュール5は上述したように図6に示される構成になっており、DMAコントローラ21を介してステップS101において受信した乱数生成要求データグラムをコマンド制御部22へ送る。コマンド制御部22は受信したデータを解析し、信号線207により乱数・鍵生成部23へ乱数生成要求データグラムを送る。乱数・鍵生成部23は受信したデータグラムから乱数のビット長を取り出し、所望のビット長の乱数を生成する。そして、生成した乱数を信号線208によりコマンド制御部へ送る。
ステップS103において図7(c)に示すように鍵管理モジュール5内のコマンド制御部22は乱数生成終了を示すコマンドと生成された乱数を連結したデータグラムをDMAコントローラ22を介してバス100へ出力する。そして、制御プログラム301がこれを受信する。なお、生成した乱数の使用方法はSSL/TLSの規格書に記述されている通りである。
ステップS104において制御プログラム301は鍵管理モジュール5に証明書要求を送信する。証明書要求データグラムのフォーマットは図7(d)に示すように証明書要求を示すコマンドと識別子を示すデータが連結されて構成となっている。
ステップS105において鍵管理モジュール5内部では証明書要求データグラムが図6に示すDMAコントローラ21を介してコマンド制御部22へ送られ、コマンド制御部22は信号線210により鍵管理制御部24へ証明書要求データグラムを送る。鍵管理制御部24はメモリバス201を介して不揮発性メモリ7から証明書を読み出し、信号線211によりコマンド制御部22へ送る。
ステップ106でコマンド制御部22は証明書送信を示すコマンドと不揮発性メモリ7から読み出した証明書を連結した図7(e)に示すデータグラムを作成し、DMAコントローラ21、バス100を介して制御プログラム301へ送信する。
ステップS107において制御プログラム301は鍵管理モジュール5に鍵生成・登録要求を送信する。制御プログラム301は図2で示したセッション情報を保持しており、SSL/TLSのハンドシェイク・プロトコルで得られたセッションIDを識別子とし、セッション情報の活性化フラグが初期化済みステータスであるエントリ番号を抽出して結びつける。また、同様に、ハンドシェイク・プロトコルで決定した通信に使用する特定のサイファー・スイートを示すコードをセッション情報に保持する。なお、このとき、制御プログラム301は制御プログラムの仕様で定められた数以下の鍵生成要求しか発生させないので活性化フラグが初期化済みステータスであるエントリ番号が必ず存在するようになっている。そして、鍵生成要求をしたエントリ番号の活性化フラグを登録中ステータスに書き換える。
制御プログラム301はこのようにして決定した鍵管理テーブル1上の情報から鍵生成・登録要求データグラムを生成し、鍵管理モジュール5に送信する。なお、鍵生成・登録要求データグラムは、図7(f)に示したように、鍵生成・登録要求を示すコマンド、エントリ番号、サイファー・スイート、プレマスター・シークレット、クライアント・ランダム、サーバー・ランダムから構成される。鍵管理モジュール5では鍵生成・登録要求を受信し、コマンド制御部22に送る。
ステップS108では鍵管理モジュール5内でコマンド制御部22は信号線207により乱数・鍵生成部23へ鍵生成・登録要求データグラムを送る。乱数・鍵生成部23はSSL/TLSの規格に記載されている方法で鍵生成を行い、図7(g)に示したように鍵生成・登録終了信号とエントリ番号を連結したデータグラムを生成し信号線209によりに鍵管理制御部24へ送る。鍵管理制御部24は図3に示した鍵管理テーブル1を保持しており、乱数・鍵生成部から送られてきたエントリ番号、サイファー・スイートをメモリ8上の所定のアドレスに対応させて管理する。そして、送られてきた鍵をメモリバス202を介してエントリ番号と対応するメモリ8上のアドレスから書き込む。
ステップS109において鍵管理モジュール5内で鍵管理制御部24は図7(g)に示すように鍵生成・登録終了を示すコマンドとエントリ番号を連結したデータグラムを生成し、コマンド制御部22へ送る。コマンド制御部22はこのデータグラムを信号線206、DMAコントローラ21、バス100を介して制御プログラム301へ送信する。制御プログラム301は鍵管理モジュール5から暗号化・復号処理モジュール6への鍵配送のタイミングを管理している。
ステップS110において所望のタイミングで図7(h)に示すように鍵配送要求を示すコマンドと配送する鍵のエントリ番号を連結したデータグラムを生成し、鍵管理モジュール5に送信する。そして、鍵管理モジュール5内ではバス100、DMAコントローラ21、信号線206を介してコマンド制御部22がこのデータグラムを受信する。
ステップS111においてコマンド制御部22は信号線210を介してこのデータグラムを鍵管理制御部24へ送る。鍵管理制御部24は保持している鍵管理テーブル2から受信したエントリ番号の示すメモリ8上のアドレスを特定し、メモリバス202を介して所望の鍵データを読み出す。
ステップS112において鍵管理モジュール5内の鍵管理制御部24は、図7(i)に示されるデータグラムを生成し、専用信号線204へ送る。このとき、鍵管理制御部24は、受信したデータグラムと受信したデータグラム内のエントリ番号から鍵管理制御部24が保持している鍵管理テーブル2から割り出したサイファー・スイートとステップS111で読み出した鍵データからデータグラムを作成する。
ステップS113では専用信号線204により暗号化・復号処理モジュール6は図7(i)に示されるデータグラムを鍵管理モジュール4から受信し、鍵管理制御部35で保持する。
ステップS114では暗号化・復号処理モジュール6は鍵管理制御部35において図7(j)に示すように鍵配送終了を示すコマンドとエントリ番号から構成されるデータグラムを生成する。そして、専用信号線205を介して鍵管理モジュール4へ送信し、鍵管理制御部24がこのデータグラムを受信する。
ステップS115において鍵管理制御部24は図7(k)に示す鍵配送終了を示すコマンドとエントリ番号から構成されるデータグラムを生成し、コマンド制御部22へ送る。そして、信号線206、DMAコントローラ21、バス100を介して制御プログラム301に送信する。
制御プログラム301は暗号処理を行うタイミングを管理している。ステップS116においてステップS115で鍵配送終了信号を受信した後、データグラムを生成し、所望のタイミングで暗号化・復号処理モジュール6へ送信する。このデータグラムには、図7(l)に示すように、暗号処理要求を示すコマンドとエントリ番号及びワークメモリ3上に格納されている被処理データの先頭アドレス、被処理データのデータ長が含まれる。更に、暗号処理後のデータを書き込むワークメモリ3上の先頭アドレス、暗号処理後のデータのデータ長が含まれる。
ステップS117において暗号化・復号処理モジュール6ではバス100を介してDMAコントローラ31がこのデータグラムを受信し、このデータグラムを保持するとともにコマンド制御部32へ送る。また、このデータグラムからワークメモリ3上で被処理データの格納されているアドレスとデータ長を取り出し、ワークメモリ3から所定の被処理データを読み出し、コマンド制御部32へ送る。次に、コマンド制御部32は暗号化処理要求コマンドとエントリ番号を信号線34により鍵管理制御部35へ送り、鍵管理制御部35はエントリ番号と対応する暗号化に使用する鍵を信号線309を介して暗号化処理部33へ送る。エントリ番号に対応する鍵付きハッシュ処理に対応する鍵を信号線312によりハッシュ処理部34へ送る。また、コマンド制御部32は被処理データをまず信号線311によりハッシュ処理部34へ送り、演算結果を信号線313により受け取る。また、コマンド制御部32は被処理データにハッシュ処理部34での演算結果を付加したデータを信号線307によりブロック暗号処理部33へ送る。そして、得られた演算結果を信号線310により受け取る。こうして得られた暗号化されたデータをコマンド制御部32は信号線306を介してDMAコントローラ31に送る。そして、DMAコントローラ31は制御プログラム301から受信したデータグラムに示されているワークメモリ3上の所定のアドレスから所定長の暗号化されたデータを書き込む。
ステップS118において暗号化・復号処理モジュール6はコマンド制御部32が図7(m)に示されるように暗号処理終了を示すコマンドとエントリ番号から構成されるデータグラムを生成し、制御プログラム301へ送信する。
制御プログラム301は鍵を廃棄するタイミングを管理している。ステップS119において暗号通信終了後、鍵が不要になると制御プログラム301は鍵管理モジュール5に図7(n)に示すように鍵廃棄要求を示すコマンドとエントリ番号から構成されるデータグラムを生成し、鍵管理モジュール5へ送信する。鍵管理モジュール5はこのデータグラムを受信し、DMAコントローラ31、信号線306を介してコマンド制御部32に送る。
ステップS120において鍵管理モジュール5内でコマンド制御部32は信号線313により鍵管理制御部35へ鍵廃棄要求データグラムを送る。鍵管理制御部35は受け取ったデータグラムからエントリ番号を取り出し、図3に示した鍵管理テーブル2を参照してメモリ8上の対応するアドレスに保持されている鍵データを初期化する。
ステップS121において鍵管理モジュール5内の鍵制御管理部35は図7(o)に示すような鍵の廃棄終了を示すコマンドとエントリ番号から構成されるデータグラムを生成し、信号線314によりコマンド制御部32へ送る。コマンド制御部32は信号線306、DMAコントローラ31、バス100を介して鍵廃棄終了データグラムを制御プログラム301に送信する。
以上、本発明の第1の実施例において通信暗号化処理装置1が暗号通信を行う一連のシーケンスを説明したが、複数の通信相手と暗号通信を行う場合を図8のタイミングチャートを用いて説明する。
図8ではA、B、Cの3者と暗号通信を行っており、先ず、T1において乱数生成、T2において証明書送付、T3において鍵生成・登録と上述した一連のシーケンスを行っている。
T4においてはT3で生成・登録した鍵を鍵管理モジュール5から暗号化・復号処理モジュール6へ専用線204、205を使って配送する。また、並行してバス100経由で制御プログラム301からBとの暗号通信を行うために乱数生成要求を受信し、乱数生成を行っている。
T5では鍵管理モジュール5がBに送付する証明書を送付するとともに暗号化・復号処理モジュール6はAと通信するデータの暗号化を行っている。
T6では鍵管理モジュール5がBと暗号通信するための鍵生成・登録を行うとともに並行して暗号化・復号処理モジュール6は引き続きT7まで暗号化処理を行っている。
T8では暗号化・復号処理モジュール6がAへ送信するデータの暗号化が終了しているため、鍵管理モジュール5はすでに登録が済んでいるBとの暗号通信を行うための鍵を配送する。暗号化・復号処理モジュール6は暗号処理に使用する鍵をA用からB用に切り替える。
T9〜T11では鍵管理モジュール5はCとの暗号通信のため乱数生成、証明書送付、鍵生成・登録を行っており、暗号化・復号処理モジュール6はBとの暗号通信のための暗号化処理をT9〜T12まで行っている。
T13では暗号化・復号処理モジュール6がBへ送信するデータの暗号化が終了しているため、鍵管理モジュール5はすでに登録が済んでいるAとの暗号通信を行うための鍵を配送する。暗号化・復号処理モジュール6は暗号処理に使用する鍵を再びB用からA用に切り替える。
T14では暗号化・復号処理モジュール6はAとの暗号通信のための暗号化処理を行っている。
T15では暗号化・復号処理モジュール6がAへ送信するデータの暗号化が終了しているため、鍵管理モジュール5はすでに登録が済んでいるCとの暗号通信を行うための鍵を配送する。そして、暗号化・復号処理モジュール6は暗号処理に使用する鍵をA用からC用に切り替える。
T16では暗号化・復号処理モジュール6はCとの暗号通信のための暗号化処理を行っている。
以下、同様の手順で複数の相手との暗号通信を暗号通信のための準備の処理と暗号化処理とを並行して行うことができる。
以上、説明したように通信暗号化処理装置において1つのバスに接続した鍵管理モジュールと暗号化・復号処理モジュール間を専用信号線で接続し、暗号処理に使用する鍵を専用信号線を使って配送することにより、効率良く複数の相手と暗号通信ができる。また、CPU上の制御プログラムから隠蔽した専用信号線上で暗号化処理に使う鍵を配送することにより耐タンパー性を向上させることができる。
(第2の実施例)
図12は本発明の第2の実施例におけるCPU上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間で送受信されるデータグラムを示した図である。図12において図7の第1の実施例の場合と比べて(h)、(i)、(j)、(k)が異なる。
また、図13は本発明の第2の実施例におけるCPU上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間でのデータ送受信のシーケンスを示した図である。図13において図6の第1の実施例の場合と比べてステップS110’〜ステップS115’が異なる。
図12及び図13を用いて本実施例を説明する。
図13に示すステップS110’において図12(h)に示されるデータグラムを制御プログラム301が鍵管理モジュール5に送信する。このデータグラムのコマンド部分は鍵配送と鍵のハッシュ値を要求する内容になっている。
ステップS111’では第1の実施例のときと同様に鍵管理モジュール5の内部において鍵管理制御部24はエントリ番号に対応した鍵がメモリ8から読み出し、図12(i)に示されるデータグラムを生成する。
そして、ステップS112’において専用通信チャネル204により暗号化・復号処理モジュール6に送信する。このデータグラムで第1の実施例における鍵配送のときと異なる点はコマンド部分が鍵配送と鍵ハッシュ値を要求する内容になっている点のみである。
次に、暗号化・復号処理モジュール6はステップS113’において鍵管理制御部35は受信したデータグラムに含まれる鍵データを保持するとともにデータグラムを信号線312によりハッシュ処理部312に送る。ハッシュ処理部はデータグラムから鍵データ部分を取り出し、ハッシュ値を求める。そして図12(j)に示されるデータグラムを生成し、信号線313によりコマンド制御部32へ送る。コマンド制御部32はそのままデータグラムを信号線314により鍵管理制御部35に送る。
ステップS114’において鍵管理制御部35は専用通信チャネル205により鍵管理モジュール5へ図12(j)に示されるデータグラムを送信する。
ステップS115’において鍵管理モジュール5は鍵管理制御部24が個のデータグラムを受信し、信号線211によりコマンド制御部22へ送る。そして、第1の実施例と同様に鍵管理モジュール6から制御プログラム301へ図12(k)に示されるデータグラムを送信する。
このようにして制御プログラム301は鍵配送終了を認識するとともに、鍵配送した鍵データのハッシュ値を得ることができる。
図14は本発明の第2の実施形態において通信暗号化処理装置が複数の相手と暗号通信するタイミングを示した図である。
同図においてT1〜T3では外部装置Aとの暗号通信のために図13におけるステップS101〜ステップS109までのシーケンスを行う。
T4ではステップS110’〜S112’までのシーケンスを行う。
T5ではステップS113’を行う。
T6ではステップS114’、ステップS115’及びステップS116、ステップS117を並行して行う。
ステップS113’で得られた鍵のハッシュ値、鍵の配送終了を示すデータグラムを制御プログラム301に送信するとともにワークメモリ3上から被処理データを読み出し、暗号化・復号処理を行い、順次暗号化されたデータをワークメモリ3上に書き込む。
T7〜T9では外部装置Aとの暗号通信のための暗号化・復号処理を引き続き行いながら外部装置Bとの暗号通信のために図13におけるステップS101〜ステップS109までのシーケンスを行う。
T10では外部装置Bとの暗号通信のためにステップS110’〜S112’までのシーケンスである鍵配送を行いながら、引き続き外部装置Aとの暗号通信のための暗号化・復号処理を行う。
T11ではT5と同様に外部装置Bとの暗号通信のためにステップS113’を行う。
T12では外部装置Bに対する暗号通信のためにステップS114’、ステップS115’及びステップS116、ステップS117を並行して行う。
T13では外部装置Bとの暗号通信のための暗号化・復号処理を引き続き行う。
T14では外部装置Aとの暗号通信のためにステップS110’〜S112’までのシーケンスである鍵配送を行いながら、引き続き外部装置Bとの暗号通信のための暗号化・復号処理を行う。
T15ではT5と同様にステップS113’を行う。
T16ではT6と同様にステップS114’、ステップS115’及びステップS116、ステップS117を並行して行う。
T17〜T19では外部装置Aとの暗号通信のための暗号化・復号処理を引き続き行いながら外部装置Cとの暗号通信のために図13におけるステップS101〜ステップS109までのシーケンスを行う。
T20では外部装置Cとの暗号通信のためにステップS110’〜S112’までのシーケンスである鍵配送を行いながら、引き続き外部装置Aとの暗号通信のための暗号化・復号処理を行う。
T21ではT5と同様に外部装置Cとの暗号通信のためにステップS113’を行う。
T22では外部装置Cに対する暗号通信のためにステップS114’、ステップS115’及びステップS116、ステップS117を並行して行う。
T23では外部装置Cとの暗号通信のための暗号化・復号処理を引き続き行う。
また、暗号処理要求も同様に鍵のハッシュ値を要求するコマンドを用意することにより同様の手順で暗号処理の実行の際に使用した鍵のハッシュ値を制御プログラム301は入手することができる。そして、鍵配送と暗号処理時に得られた鍵のハッシュ値の一致を確認したり、他のエントリ番号の鍵とハッシュ値が異なることを確認することができる。また、直接鍵データそのものを扱うことなく鍵管理モジュール、暗号化・復号処理モジュールで所望の処理が行われていることを確認できる。
以上説明したように、鍵管理モジュールと暗号化・復号処理モジュール間の専用通信チャネルを使って暗号化・復号処理モジュールに鍵のハッシュ値を算出させ、CPU上の制御プログラムが読み出させるようにしている。このため、制御プログラムは鍵データ自体を扱うことなく、所望の処理が正しく行われているか調べることができる。
なお、本発明の実施形態は、例えばコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びプログラムプロダクトは、本発明の範疇に含まれる。
本発明を実施した通信暗号化処理装置のブロック構成を示した図である。 本発明の第1の実施形態においてCPU上の制御プログラムが管理しているセッション情報の例を表す図である。 本発明の第1の実施形態において鍵管理モジュールが管理している情報の例を表す図である。 本発明の第1の実施形態において鍵管理モジュールの内部構成を示した図である。 本発明の第1の実施形態において暗号化・復号処理モジュールの内部構成を示した図である。 本発明の第1の実施形態においてCPU上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間でのデータ送受信のシーケンスを示した図である。 本発明の第1の実施形態においてCPU上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間で送受信されるデータグラムを示した図である。 本発明の第1の実施形態において通信暗号化処理装置が複数の相手と暗号通信する詳細なタイミングを示した図である。 本発明の第1の実施形態において通信暗号化処理装置が複数の相手と暗号通信するタイミングの概略を示した図である。 従来技術において通信暗号化処理装置が複数の相手と暗号通信するタイミングの概略を示した図である。 従来の通信暗号化処理装置の内部構成と通信相手を示した概念図である。 本発明の第2の実施形態においてCPU上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間で送受信されるデータグラムを示した図である。 本発明の第2の実施形態においてCPU上の制御プログラム、鍵管理モジュール、暗号化・復号処理モジュールの間でのデータ送受信のシーケンスを示した図である。 本発明の第2の実施形態において通信暗号化処理装置が複数の相手と暗号通信するタイミングを示した図である。
符号の説明
1、901:通信暗号化処理装置、2:CPU、3:ワークメモリ、4:外部インターフェース、5、905:鍵管理モジュール、6、906:暗号化・復号処理モジュール、7:不揮発性メモリ、8、908:メモリ、21、31:DMAコントローラ、22、32:コマンド制御部、23:鍵生成部、24、35:鍵管理制御部、33:暗号化処理部、34:ハッシュ処理部、100、101:バス、102:ネットワーク、201〜203、206〜211、306〜314:信号線、204、205:専用信号線、301:制御プログラム、900:セキュリティ・チップ

Claims (3)

  1. 通信暗号化処理装置であって、
    前記通信暗号化処理装置の制御を行う制御プログラムを搭載したCPUと、
    前記通信暗号化処理装置の外部とデータの入出力を行うための外部インターフェースと、
    前記外部インターフェースからの入力データ又は外部インターフェースへの出力データを一時保持するための第一の記憶手段と、
    前記外部インターフェース又は前記第一の記憶手段に格納されているデータを読み出し、暗号化・復号処理又はメッセージ認証コードを生成し、処理結果を前記第一の記憶手段に格納する暗号化・復号処理モジュールと、
    前記暗号化・復号処理モジュールで使用する鍵を生成し、前記暗号化・復号処理モジュールへ配送するための鍵管理モジュールと、
    前記CPU、前記外部インターフェース、前記第一の記憶手段、前記鍵管理モジュール、前記暗号化・復号処理モジュールが接続されているバスと
    記鍵管理モジュールに接続され、前記暗号化・復号処理モジュールへ配送する鍵情報を保持しておくための第の記憶手段と、
    から構成され
    前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に前記バス以外に専用信号線を設け、前記鍵管理モジュールで生成され、前記暗号化・復号処理モジュールで使用する鍵は前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に設けられた前記専用信号線を通して配送され
    前記第二の記憶手段は、前記バスとは接続されておらず、かつ、前記バスとは異なるメモリバスで前記鍵管理モジュールと接続されていることを特徴とする通信暗号化処理装置。
  2. 前記鍵管理モジュールから前記暗号化・復号処理モジュールへ前記鍵を配送した後、前記鍵の配送が完了したことを示すデータグラムを前記暗号化・復号処理モジュールから前記鍵管理モジュールへ送信することを特徴とする請求項1に記載の通信暗号化処理装置。
  3. 通信暗号化処理装置であって、
    前記通信暗号化処理装置の制御を行う制御プログラムを搭載したCPUと、
    前記通信暗号化処理装置の外部とデータの入出力を行うための外部インターフェースと、
    前記外部インターフェースからの入力データ又は外部インターフェースへの出力データを一時保持するための第一の記憶手段と、
    前記外部インターフェース又は前記第一の記憶手段に格納されているデータを読み出し、暗号化・復号処理又はメッセージ認証コードを生成し、処理結果を前記第一の記憶手段に格納する暗号化・復号処理モジュールと、
    前記暗号化・復号処理モジュールで使用する鍵を生成し、前記暗号化・復号処理モジュールへ配送するための鍵管理モジュールと、
    前記CPU、前記外部インターフェース、前記第一の記憶手段、前記鍵管理モジュール、前記暗号化・復号処理モジュールが接続されているバスと
    記鍵管理モジュールに接続され、前記暗号化・復号処理モジュールへ配送する鍵情報を保持しておくための第の記憶手段と、
    から構成され、
    前記鍵管理モジュールと前記暗号化・復号処理モジュールとの間に前記バス以外に専用信号線を設け、前記鍵管理モジュール又は前記暗号化・復号処理モジュールのうちの一方のモジュールからもう一方のモジュールに対して前記専用信号線を使って特定の演算処理要求を送り、前記専用信号線を使って前記特定の演算処理結果を送り返し、
    前記第二の記憶手段は、前記バスとは接続されておらず、かつ、前記バスとは異なるメモリバスで前記鍵管理モジュールと接続されていることを特徴とする通信暗号化処理装置。
JP2006215965A 2006-08-08 2006-08-08 通信暗号化処理装置 Expired - Fee Related JP4994741B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006215965A JP4994741B2 (ja) 2006-08-08 2006-08-08 通信暗号化処理装置
US11/832,507 US8081761B2 (en) 2006-08-08 2007-08-01 Communication encryption processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006215965A JP4994741B2 (ja) 2006-08-08 2006-08-08 通信暗号化処理装置

Publications (2)

Publication Number Publication Date
JP2008042655A JP2008042655A (ja) 2008-02-21
JP4994741B2 true JP4994741B2 (ja) 2012-08-08

Family

ID=39177175

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006215965A Expired - Fee Related JP4994741B2 (ja) 2006-08-08 2006-08-08 通信暗号化処理装置

Country Status (2)

Country Link
US (1) US8081761B2 (ja)
JP (1) JP4994741B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8467527B2 (en) 2008-12-03 2013-06-18 Intel Corporation Efficient key derivation for end-to-end network security with traffic visibility
US7953881B1 (en) * 2008-06-12 2011-05-31 Juniper Networks, Inc. Network characteristic-based compression of network traffic
US8171306B2 (en) * 2008-11-05 2012-05-01 Microsoft Corporation Universal secure token for obfuscation and tamper resistance
US9998545B2 (en) * 2011-04-02 2018-06-12 Open Invention Network, Llc System and method for improved handshake protocol
US9176838B2 (en) * 2012-10-19 2015-11-03 Intel Corporation Encrypted data inspection in a network environment
KR102218715B1 (ko) 2014-06-19 2021-02-23 삼성전자주식회사 채널별로 데이터를 보호할 수 있는 반도체 장치

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3627384B2 (ja) * 1996-01-17 2005-03-09 富士ゼロックス株式会社 ソフトウェアの保護機能付き情報処理装置及びソフトウェアの保護機能付き情報処理方法
EP1000481A1 (en) * 1997-05-09 2000-05-17 Connotech Experts-Conseils Inc. Initial secret key establishment including facilities for verification of identity
EP1010323B1 (en) * 1997-08-01 2001-10-31 Scientific-Atlanta, Inc. Verification of the source of program of information in a conditional access system
JP3638770B2 (ja) * 1997-12-05 2005-04-13 東京エレクトロンデバイス株式会社 テスト機能を備える記憶装置
JPH11275068A (ja) * 1998-03-20 1999-10-08 Fujitsu Ltd 鍵管理サーバ、チャットシステムの端末装置、チャットシステム及び記録媒体
FR2834361B1 (fr) * 2001-12-28 2004-02-27 Bull Sa Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
JP4470373B2 (ja) * 2003-02-14 2010-06-02 ソニー株式会社 認証処理装置及びセキュリティ処理方法
FR2863076B1 (fr) * 2003-11-28 2006-02-03 Bull Sa Systeme cryptographique haut debit a architecture modulaire.
JP2006191207A (ja) 2004-12-28 2006-07-20 Matsushita Electric Works Ltd 通信装置
JP5032806B2 (ja) * 2006-08-04 2012-09-26 キヤノン株式会社 通信暗号化処理装置

Also Published As

Publication number Publication date
US20080260163A1 (en) 2008-10-23
US8081761B2 (en) 2011-12-20
JP2008042655A (ja) 2008-02-21

Similar Documents

Publication Publication Date Title
US8600063B2 (en) Key distribution system
TW564624B (en) Non-invasive SSL payload processing for IP packet using streaming SSL parsing
JP4599852B2 (ja) データ通信装置および方法、並びにプログラム
CN1270471C (zh) 秘密的新随机数的管理、获得与使用方法及服务器***
JP4545197B2 (ja) 無線ネットワークシステム及びこれを用いる通信方法
JP2009526322A5 (ja)
WO2021047012A1 (zh) 基于token令牌的身份校验方法及相关设备
JP4994741B2 (ja) 通信暗号化処理装置
CA2551113A1 (en) Authentication system for networked computer applications
KR20110140122A (ko) 인증서 및 키를 가지는 제품을 생산하기 위한 방법
CN111080299B (zh) 一种交易信息的防抵赖方法及客户端、服务器
JPWO2020072476A5 (ja)
CN105281902A (zh) 一种基于移动终端的Web***安全登录方法
GB2381717A (en) system and method , for secure data transmission, which includes generating a hash key using a character string and a private key
CN111192050B (zh) 一种数字资产私钥存储提取方法及装置
CN102668450A (zh) 基于身份的网络策略实现
CN110912685A (zh) 建立受保护通信信道
WO2017008556A1 (zh) 一种无线接入点和管理平台鉴权的方法和装置
US10938553B2 (en) Distribution and verification of transaction integrity keys
CN114050897B (zh) 一种基于sm9的异步密钥协商方法及装置
JP5032806B2 (ja) 通信暗号化処理装置
CN113688405B (zh) 一种基于区块链的双向认证混合加密方法
CN111404680B (zh) 口令管理方法和装置
CN110572257B (zh) 基于身份的数据来源鉴别方法和***
CN114978648B (zh) 一种云端和芯片间离线安全通信方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111121

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120501

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120509

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4994741

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150518

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees