JP2004247810A - Encrypting apparatus, communication apparatus, decoder, encrypting method, decoding method, encryption program, and decoding program - Google Patents

Encrypting apparatus, communication apparatus, decoder, encrypting method, decoding method, encryption program, and decoding program Download PDF

Info

Publication number
JP2004247810A
JP2004247810A JP2003033342A JP2003033342A JP2004247810A JP 2004247810 A JP2004247810 A JP 2004247810A JP 2003033342 A JP2003033342 A JP 2003033342A JP 2003033342 A JP2003033342 A JP 2003033342A JP 2004247810 A JP2004247810 A JP 2004247810A
Authority
JP
Japan
Prior art keywords
key
authentication
packet
database
encryption
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.)
Pending
Application number
JP2003033342A
Other languages
Japanese (ja)
Inventor
Seishi Takeuchi
清史 竹内
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2003033342A priority Critical patent/JP2004247810A/en
Publication of JP2004247810A publication Critical patent/JP2004247810A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide an encrypting apparatus, a decrypting apparatus and a method therefor which improve the throughput of a VPN apparatus. <P>SOLUTION: In a VPN apparatus 30 for processing IPSEC authentication by an HMAC process, an encrypting apparatus 20 involved in the VPN apparatus 30 comprises a key processor 12 for first executing only a hash process of authentication key data, the hashed result (intermediate keys a, b) is stored in a database B(SAD) 8 instead of an authentication key. As a substitute for the hash process of the authentication key data repeatedly made by the HMAC process, data of the hash results (intermediate keys a, b) stored in the database B(SAD) 8 are read and used to decrease the hash process of the authentication key data to once which needed to be executed every packet to be processed for the IPSEC authentication. <P>COPYRIGHT: (C)2004,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、パケットを認証処理する暗号化装置及び復号装置に関する。
【0002】
【従来の技術】
パケットのIPSEC(IP SECURITY)処理方式はIETF(INTERNET ENGINEERING TASK FORCE)による仕様書RFC(REQUEST FOR COMMENTS)2402にて「IP認証ヘッダ(AH)」、RFC2406にて「IP暗号ペイロード(ESP)」について記述されている。
【0003】
IPSECを通信装置に実装する上でサポートしなければならない認証処理方式はHMAC(KEYED−HASHING FOR MESSAGE AUTHENTICATION)であり、HMAC処理中のハッシュ関数に使用される認証アルゴリズムは、MD5もしくはSHA1である。
【0004】
従来のHMAC処理の流れについて説明する。
まず、認証鍵Kに0をパディングし、使用するハッシュ関数のブロックサイズに合わせ、これとipadの排他的論理和を行いIK1を生成する(ステップ1)。
次にIK1の後ろにHMAC処理対象データPを付加し、さらにパディングデータ PAD DATA、データ長Lを付加し、ハッシュ関数のブロックサイズの倍数となるハッシュ処理対象データIP1を生成する(ステップ2)。
次に、ハッシュ関数HによるIP1のハッシュ処理を行い、ダイジェストD1を生成する(ステップ3)。
次に、ステップ1と同様、認証鍵Kに0をパディングし、使用するハッシュ関数のブロックサイズにあわせ、これとopadの排他的論理和を行い、IK2を生成する(ステップ4)。
次に、IK2の後ろにステップ3の結果得られたダイジェストD1を付加し、さらにパディングデータPAD DATA、データ長Lを追加し、ハッシュ関数の2ブロックサイズになるハッシュ処理対象データIP2を生成する(ステップ5)。
次に、ハッシュ関数HによるIP2のハッシュ処理を行い、ダイジェストD2を生成する。最終的にD2の上位96bitがIPSECパケットの認証ダイジェストとして付加される(ステップ6)。
【0005】
次に、上記ステップ3のハッシュ処理の詳細を説明する。
ハッシュ処理はハッシュ初期値、ハッシュ処理対象データを用いて1ブロックずつ行う。
まず、ハッシュ初期値はハッシュ関数MD5、ハッシュ関数SHA1で定義されているハッシュ初期値H0を用い、被ハッシュデータをIK1として1ブロックサイズのハッシュ処理を行い、MK1を生成する(鍵ブロックのハッシュ処理1)。
次に、ハッシュ初期値としてMK1を用い、被ハッシュデータをIP1におけるIK1の後ろの1ブロック分IP1(1)として1ブロックサイズのハッシュ処理を行い、MP1(1)を生成する(平文ブロックのハッシュ処理1)。
次に、ハッシュ処理対象データ分の処理が完了したかどうか判定し、未処理のハッシュ処理対象データがある場合は上述した「平文ブロックのハッシュ処理1」を繰り返し行う。ここで「平文ブロックのハッシュ処理1」におけるハッシュ初期値は前回の「平文ブロックのハッシュ処理1」の結果MP1(N−1)とする。
ハッシュ処理対象データ分の処理が完了されたと判断した場合は最終的に得たMP1(N)をD1として終了する。
【0006】
次に、上記ステップ6のハッシュ処理の詳細を説明する。
上記ステップ3のハッシュ処理と同様、ハッシュ初期値はハッシュ関数MD5、SHA1で定義されているハッシュ初期値H0を用い、被ハッシュデータをIK2として1ブロックサイズのハッシュ処理を行いMK2を生成する(鍵ブロックのハッシュ処理2)。
次に、ハッシュ初期値としてMK2を用い、被ハッシュデータをIP2(1)として1ブロックサイズのハッシュ処理を行い、この結果をD2とする(平文ブロックのハッシュ処理2)。
【0007】
上のハッシュ処理において時間を要するのはステップ3、ステップ6であり、その処理時間はハッシュ処理対象データのブロックサイズに比例して増加する。
【0008】
次にハッシュ処理のデータ長について述べる。SHA1、MD5共に1ブロック=512bitである。あるデータに対してハッシュ処理を行う場合、このハッシュ処理対象データの後ろにパディングデータ(1〜512bit)、データ長(64bit)が付加される。
パディングデータは、ハッシュ処理対象データ、パディングデータ、データ長を合わせたデータサイズを512bitの倍数に合わせるためのものであり、データ長はパディングビット付加前のハッシュ処理対象データ長を示す。
【0009】
次にハッシュ処理時間について述べる。ハッシュ処理に要する時間は、パディングデータ、データ長付加前のハッシュ処理対象データ長が1bit〜447bitの場合1ブロック分、448bit〜959(447+512)bitの場合2ブロック分、以後512bit刻みにつき1ブロック分ずつ増えていくことになる。
これによりHMAC処理中の認証アルゴリズムによるハッシュ処理のステップ3とステップ6の処理時間は、ハッシュ処理対象データ長のブロックサイズに比例して増加する。
【0010】
短パケットを例にしてHMAC処理時間について述べる。
短パケットに対しIPSEC認証処理する場合、HMAC処理適用範囲はESPで448bit、AHで624bitである。
これについてHMAC処理を行った場合、パケットのHMAC処理適用範囲のハッシュ処理(平文ブロックのハッシュ処理1)で2ブロック分、認証鍵のハッシュ処理(鍵ブロックのハッシュ処理1、鍵ブロックのハッシュ処理2)で2ブロック分、最終的に認証ダイジェストを求めるハッシュ処理(平文ブロックのハッシュ処理2)で1ブロック分の合計5ブロック分を必要とする。
【0011】
一般的に考えられるVPN(VIRTUAL PRIVATE NETWORK)装置の暗号側の構成を説明する。
暗号側のVPN装置は、ユーザインタフェースと、自局端末としての機能を実現し、自局端末宛のパケットを振分部より受け取り、自局端末発のパケットを送信制御部に渡し、ユーザインタフェースより設定されたVPNの設定情報をSP・SA生成部に渡す自局制御部と、VPNの設定情報、他VPN装置と相互通信して受け取った情報を自局制御部より受け取り、これらの情報からSP(SECURITY POLICY)データ、SA(SECURITY ASSOCIATION)データを生成して、SPデータを精査部に、SAデータを振分部7に渡すSP・SA生成部と、パケットを受信する受信部と、SPデータをSPD 6(SECURITY POLICY DATABASE)に登録し、パケットの精査を行う精査部と、SPデータを保存するデータベースであるSPDと、SAデータをSAD(SECURITY ASSOCIATION DATABASE)に登録し、自局宛パケットを自局制御部に、IPSEC対象外パケットを送信制御部に、IPSEC処理対象パケットを暗号・認証処理部に、またこのときSADよりSAデータを読み出して暗号・認証処理部に渡す振分部と、SAデータを保存するデータベースであるSADと、パケットのIPSEC処理を行う暗号・認証処理部と、自局制御部、暗号・認証処理部、振分部より受け取った送信パケットの宛先を制御する送信制御部と、パケットを送信する送信部とから構成される。
【0012】
次にこの一般的なVPN装置における暗号側の処理の流れを説明する。
パケット処理の前準備として、まずはSPデータ、SAデータを生成して、それぞれSPD、SADに登録し、その後パケットのIPSEC処理を行う。
【0013】
まずSPデータ、SAデータを生成するために、VPN管理者がVPN装置自局端末のユーザインタフェースを介してVPN装置の設定を行い、自局制御部はユーザインタフェースから受け取った情報をSP・SA生成部に渡し、SP・SA生成部はSPデータを生成後、これを精査部に渡し、精査部はSPデータをSPDに登録する。
【0014】
次に、装置間でVPNを構築するため、装置間で相互通信を行いSAデータを生成する。SP・SA生成部は、SAデータを決定するための他VPN装置宛のデータを自局制御部に渡し、自局制御部はこれをパケット化して送信制御部に渡し、送信制御部は送信部に渡し、送信部はこれを装置外に送信する。受信部は他VPN装置からのSAデータを決定するための情報を持つ受信パケットを精査部に渡し、精査部は振分部に渡し、振分部は自局宛と判断し、このパケットを自局制御部に渡し、自局制御部はこれをSP・SA生成部に渡す。
以上の通信によりSAデータを決定したら、SP・SA生成部はSAデータを振分部に渡し、振分部はこれをSADに登録する。
【0015】
次に受信部はIPSEC処理対象パケットを受信し、精査部に渡す。精査部は、パケットヘッダの発信元アドレス、宛先アドレス、プロトコル、ポート番号を元に、このパケットはIPSEC処理対象であると判断し、SPDよりこのパケットに対応するSPI(SECURITY PARAMETER INDEX)を読み出し、これとパケットを振分部に渡す。振分部はSPIを元にSADを参照して、暗号アルゴリズム、認証アルゴリズム、暗号鍵、認証鍵といったSAデータを暗号・認証処理部に渡す。
暗号・認証処理部はSAデータに含まれる処理情報を元にパケットのIPSEC処理を行い、処理後のパケットを送信制御部に渡す。ここで、SAデータで示された処理が認証処理を含む場合、暗号・認証処理部はパケットのHMAC処理を行う。送信制御部は、暗号・認証処理部から受け取ったパケットが他VPN装置宛であると判断し、これを送信部に渡す。送信部はパケットを装置の外へ送信する(例えば、特許文献1参照)。
【0016】
【特許文献1】
特開平11−8620号公報
【0017】
【発明が解決しようとする課題】
上記のようなVPN装置構成の場合、HMAC処理を全て暗号・認証処理部で行うことになる。HMAC処理には、パケットデータを必要とせず、認証鍵データを必要とするハッシュ処理部分が存在する(鍵ブロックのハッシュ処理1、鍵ブロックのハッシュ処理2)。これをHMAC鍵処理とする。
同一の認証鍵を使用するパケットが複数存在した場合、HMAC鍵処理がパケットごとに実行されるので時間がかかり非効率であるという問題があった。
【0018】
本発明は、VPN装置のスループットを向上させる暗号化装置及び復号装置及びその方法を提供することを目的とする。
【0019】
【課題を解決するための手段】
本発明に係る暗号化装置は、
鍵に関する所定のデータから中間鍵を生成する鍵処理部と、
上記鍵処理部が生成した中間鍵を記憶するデータベースと、
パケットに含まれるメッセージを暗号化するとともに上記データベースに記憶した中間鍵を認証鍵として使用して暗号化したメッセージを認証する暗号・認証処理部とを備える。
【0020】
【発明の実施の形態】
実施の形態1.
実施の形態1について説明する。
図1は、本実施の形態1の発明を示したVPN装置30のシステム構成図である。VPN装置30は、本発明の暗号化装置20に通信機能及びインタフェース機能を付加した通信装置の一例である。
図1において、自局制御部2は、自局端末としての機能を実現し、自局端末宛のパケットを振分部7より受け取り、自局端末発のパケットを送信制御部10に渡し、ユーザインタフェース1より設定されたVPNの設定情報をSP・SA生成部3に渡す部である。
SP・SA生成部3は、VPNの設定情報、他VPN装置と相互通信して受け取った情報を自局制御部2より受け取り、これらの情報からSPデータ,SAデータを生成して、SPデータを精査部5に、SAデータの認証鍵を鍵処理部12に渡し、鍵処理部12から受け取ったHMAC鍵処理後のデータをSAデータの一部として、SAデータを振分部7に渡す部である。以下、鍵処理部12から受け取ったHMAC鍵処理後のデータを中間鍵という。HMAC鍵処理については後述する。
【0021】
受信部4はパケットを受信し、精査部5はSPデータのデータベースA(SPD)6への登録及び受信部4によって受信されたパケットの精査を行う。したがって、データベースA(SPD)6は、SPデータを保存する。
振分部7は、SAデータをデータベースB(SAD)8に登録し、自局宛パケットを自局制御部2に、IPSEC対象外パケットを送信制御部10に、IPSEC処理対象パケットを暗号・認証処理部9に、またこのときデータベースB(SAD)8よりSAデータを読み出して暗号・認証処理部9に渡す部である。したがって、データベースB(SAD)8は、SAデータを保存するデータベースであり、下記に示す鍵処理部が生成した中間鍵を記憶するデータベースの一例である。
暗号・認証処理部9は、パケットのIPSEC処理を行い、パケットに含まれるメッセージを暗号化するとともに上記データベースに記憶した中間鍵を認証鍵として使用して暗号化したメッセージを認証する。
送信制御部10は自局制御部2、暗号・認証処理部9、振分部7より受け取った送信パケットの宛先を制御し、送信部11はパケットを送信する部である。
鍵処理部12はSP・SA生成部3から受け取った認証鍵のHMAC鍵処理を行い、中間鍵を生成して、これをSP・SA生成部に渡す部である。すなわち、鍵処理部12は、鍵に関する所定のデータ(SP・SA生成部3から受け取った認証鍵)から中間鍵を生成する。
暗号化装置20は、上記鍵処理部12と暗号・認証処理部9によって構成され、データベースB(SAD)8を内部に記憶していても外部に記憶していてもよい。
【0022】
次に、本実施の形態における発明のVPN装置30の処理の流れを図2に添って説明する。パケット処理の前準備として、まずはSPデータ、SAデータの登録を行い、その後パケットのIPSEC処理を行う。
【0023】
まず、SPデータ、SAデータを生成するために、VPN管理者がVPN装置自局端末のユーザインタフェース1を介してVPN装置30の設定を行い、自局制御部2はユーザインタフェース1から受け取った情報をSP・SA生成部3に渡し、SP・SA生成部3はVPN装置30の設定データであるSPデータを生成後(T1)、これを精査部5に渡し、精査部5はSPデータをデータベースA(SPD)6に登録する(T2)。
【0024】
次にVPN装置間でVPNを構築するため、VPN装置間で他のVPN装置と相互通信を行いSAデータを生成する。SP・SA生成部3は、SAデータを決定するための他VPN装置宛のデータを自局制御部2に渡し、自局制御部2はこれをパケット化して送信制御部10に渡し、送信制御部10は送信部11に渡し、送信部11はこれを装置外に送信する。
受信部4は他VPN装置からのSAデータを決定するための情報を持つ受信パケットを精査部5に渡し、精査部5は振分部7に渡し、振分部7は本装置宛と判断し、このパケットをSP・SA生成部3に渡す。以上の通信によりSAデータを生成、決定(T3)したら、SP・SA生成部3はSAデータの認証鍵を鍵処理部12に渡し、鍵処理部12はHMAC鍵処理(図2では鍵(Y1)のハッシュ処理1:T4,鍵(Z1)のハッシュ処理2:T5で示す)を行い、これにより得た中間鍵をSP・SA生成部3に渡す。
SP・SA生成部3はSAデータを振分部7に渡し、振分部7はこれをデータベースB(SAD)8に登録する(T6)。
【0025】
受信部4は、IPSEC処理対象パケットを受信し(T7)、精査部5に渡す。
精査部5は、このパケットはIPSEC処理対象であると判断し、データベースA(SPD)6よりこのパケットに対応するSPIを読み出し、これとパケットを振分部7に渡す。振分部7はSPI(SECURITY PARAMETERS INDEX)を元にデータベースB(SAD)8からSAデータを読み出し、これとパケットを暗号・認証処理部9に渡す。
暗号・認証処理部9はSAデータに含まれる処理情報を元にパケットのIPSEC処理を行い、処理後のパケットを送信制御部10に渡す。
ここで、SAデータで示された処理が認証処理を含む場合、暗号・認証処理部9はパケットに含まれるメッセージのHMAC処理を行う((図2ではメッセージ(Y2)のハッシュ処理1:T8、メッセージ(Z2)のハッシュ処理2:T9で示す)。
送信制御部10は、暗号・認証処理部9から受け取ったパケットが他VPN装置宛であると判断し、これを送信部11に渡す。送信部11はパケットを装置の外へ送信する。
【0026】
次に、図2のT4で示す鍵(Y1)のハッシュ処理1(HMAC鍵処理)について図3を用いて説明する。
まず、鍵処理部12は、認証鍵Kに0をパディングし、使用するハッシュ関数のブロックサイズに合わせ、これとipadの排他的論理和を行いIK1を生成する(Y0)。
次に、鍵処理部12は、中間鍵aであるMK1を生成する。ハッシュ初期値はハッシュ関数MD5、ハッシュ関数SHA1で定義されているハッシュ初期値H0を用い、被ハッシュデータは上記Y0で生成したIK1を用いて、これらのデータに1ブロックサイズのハッシュ処理を行い、MK1(中間鍵a)を生成する(Y1)。
【0027】
次に、上記T5で示す鍵(Z1)のハッシュ処理2(HMAC鍵処理)について図4を用いて説明する。
Z0では、鍵処理部12は、Y0と同様、認証鍵Kに0をパディングし、使用するハッシュ関数のブロックサイズにあわせ、これとopadの排他的論理和を行い、IK2を生成する。
次に、上記鍵(Y1)のハッシュ処理1と同様、鍵処理部12は、中間鍵bであるMK2を生成する。ハッシュ初期値はハッシュ関数MD5、SHA1で定義されているハッシュ初期値H0を用い、被ハッシュデータをIK2として1ブロックサイズのハッシュ処理を行い、MK2(中間鍵b)を生成する。
【0028】
本実施の形態の発明のVPN装置30の暗号側におけるデータベースA(SPD)6とデータベースB(SAD)8の構造を図5に示す。
HMAC鍵処理において、鍵処理部12は、Y1の処理後のデータ(MK1)を中間鍵a、鍵(Z1)のハッシュ処理2後のデータ(MK2)を中間鍵bとし、この中間鍵a、中間鍵bは、振分部7によって認証鍵としてデータベースB(SAD)8に登録される。中間鍵a、中間鍵bは、従来の認証鍵の代わりに登録される鍵である。
【0029】
次に、図2で示されるT8の処理について説明する。
図6にメッセージ(Y2)のハッシュ処理1(T8)で行われる処理を示す。まず、暗号・認証処理部9は、Y20にてIK1の後ろにHMAC処理対象データPを付加し、さらにパディングデータ PAD DATA、データ長Lを付加し、ハッシュ関数のブロックサイズの倍数となるハッシュ処理対象データIP1を生成する。
次に、暗号・認証処理部9は、ハッシュ初期値としてMK1(中間鍵a)を用い、被ハッシュデータをIP1におけるIK1の後ろの1ブロック分IP1(1)として1ブロックサイズのハッシュ処理を行いMP1(1)を生成する。次に、ハッシュ処理対象データ分の処理が完了したかどうか判定し(Y24)、未処理のハッシュ処理対象データがある場合は上述したY22の処理を繰り返し行う。ここでY22におけるハッシュ初期値は前回のY22の結果MP1(N−1)とする。
ハッシュ処理対象データ分の処理が完了されたと判断した場合は(Y24)、最終的に得たMP1(N)をD1として終了する。
【0030】
次に、図2で示されるT9の処理について説明する。
図7にメッセージ(Z2)のハッシュ処理2(T9)で行われる処理を示す。まず、暗号・認証処理部9は、Z20にてIK2の後ろにT8の結果得られたダイジェストD1を付加し、さらにパディングデータPAD DATA、データ長Lを追加し、ハッシュ関数の2ブロックサイズになるハッシュ処理対象データIP2を生成する。
次に、暗号・認証処理部9は、Z22にて、ハッシュ初期値としてMK2(中間鍵b)を用い、被ハッシュデータをIP2(1)として1ブロックサイズのハッシュ処理を行い、この結果をダイジェストD2とする。
最終的にダイジェストD2の上位96bitがIPSECパケットの認証ダイジェストとして付加される。
【0031】
以上、暗号化装置20によってHMAC処理によりIPSEC認証処理を行うVPN装置30において、認証鍵データに対するハッシュ処理のみを先に実行する鍵処理部12を設け、ハッシュした結果(中間鍵a、中間鍵b)を認証鍵の代わりにデータベースB(SAD)8に記憶し、HMAC処理にて繰り返し認証鍵データのハッシュ処理を行う代わりに、データベースB(SAD)8に記憶してあるハッシュ結果のデータ(中間鍵a、中間鍵b)を読み出して使うことにより、IPSEC認証処理対象パケットごとに実行することが必要であった認証鍵データのハッシュ処理を1回で済むようにすることにより、HMAC処理を高速に行えるようにしたことで、IPSEC認証処理を高速に行えるようにしたことを特徴とするVPN装置について説明した。
【0032】
このように、VPN装置30に含まれる暗号化装置20は、鍵に関する所定のデータから中間鍵を生成する鍵処理部12と、鍵処理部12が生成した中間鍵を記憶するデータベース(データベースB(SAD)8)と、パケットに含まれるメッセージを暗号化するとともにデータベース(データベースB(SAD)8)に記憶した中間鍵を認証鍵として使用して、上記中間鍵をハッシュ関数に代入することにより暗号化したメッセージを認証する暗号・認証処理部9とを備えている。
【0033】
そして、暗号化装置20は、上記暗号・認証処理部9が認証したメッセージを含むパケットの通信をIPSECプロトコル(IP SECURITY PROTOCOL)に準拠して行うことでVPN(VIRTUAL PRIVATE NETWORK)によるパケット通信を行う。
【0034】
また、本実施の形態の通信装置(VPN装置30)は、上記暗号化装置20の鍵処理部12による中間鍵生成と、鍵処理部12が生成した中間鍵を記憶するデータベース(データベースB(SAD)8)と、パケットに含まれるメッセージを暗号化するとともにデータベース(データベースB(SAD)8)に記憶した中間鍵を認証鍵として使用して暗号化したメッセージを認証する暗号・認証処理部9と、上記暗号・認証処理部9によって認証されたメッセージを含むパケットを送信する送信部11を備える。
【0035】
このように構成されたVPN装置では、HMAC鍵処理については、SAデータ登録時に鍵処理部12で行われるため、暗号・認証処理部9で行う必要はない。
上述したHMAC鍵処理は図2の鍵(Y1)のハッシュ処理1(T4)及び鍵(Z1)のハッシュ処理2(T5)に相当し、計2ブロック分の時間を要する。従来の認証鍵の代わりにHMAC鍵処理部で生成された中間鍵(中間鍵a、中間鍵b)をSAデータの一部とし、SP・SA生成部3はSAデータを振分部7に渡し、振分部7はこれをデータベースB(SAD)8に登録する。暗号・認証処理部9では、この中間鍵を用いることで1つのパケット認証処理ごとに2ブロック分減らすことができる。
【0036】
実施の形態2.
実施の形態1では鍵処理部12を設けているが、図8のようにデータベースB(SAD)8へのアクセスを振分部7から暗号・認証処理部9に移し、SAデータ登録時に振分部7はSAデータを暗号・認証処理部9に渡し、暗号・認証処理部9はHMAC鍵処理を行い、その後に暗号・認証処理部は中間鍵を含むSAデータをデータベースB(SAD)8に登録することで、鍵処理部12を設けずに本発明を実現することも可能である。
【0037】
このように、本実施の形態では、図8のようにシステムを構成することによって、データベースB(SAD)8への登録時に認証鍵データに対するハッシュ処理のみを先に実行し、ハッシュした結果(中間鍵a、中間鍵b)を認証鍵の代わりにデータベースB(SAD)8に記憶し、HMAC処理にて繰り返し認証鍵データのハッシュ処理を行う代わりに、データベースB(SAD)8に記憶してあるハッシュ結果のデータ(中間鍵a、中間鍵b)を読み出して使うことにより、IPSEC認証処理対象パケットごとに実行することが必要であった認証鍵データのハッシュ処理を1回で済むようにすることにより、HMAC処理を高速に行えるようにしたことで、IPSEC認証処理を高速に行えるVPN装置を構築することができる。
【0038】
このように、本実施の形態のVPN装置30に含まれる暗号化装置20は、鍵に関する情報を記憶するデータベース(データベースB(SAD)8)と、鍵に関する所定のデータから中間鍵を生成し、生成した中間鍵を上記データベース(データベースB(SAD)8)に記憶し、パケットに含まれるメッセージを暗号化するとともに上記データベース(データベースB(SAD)8)に記憶した中間鍵を認証鍵として繰り返し使用してメッセージを認証する暗号・認証処理部9とを備える。
【0039】
実施の形態3.
他の実施の形態として、暗号・認証処理部9に中間鍵を保存する領域を設けることが考えられる。
本実施の形態を図9に示す。暗号・認証処理部9は中間鍵メモリ15を内部に持ち、ある認証鍵における最初のパケット認証処理時に中間鍵を中間鍵メモリ15に保存し、以降同鍵を使用するパケット認証処理時はこの中間鍵を中間鍵メモリ15より読み出して使用することで実施の形態1、実施の形態2と同等の効果が得られる。
【0040】
このように、本実施の形態では、図9のようにシステムを構成することによって、認証鍵データに対するハッシュ処理の結果(中間鍵a、中間鍵b)を保存する領域(中間鍵メモリ15)を設け、ある認証鍵での最初のパケット認証時に中間鍵メモリ15に保存し、以降のパケット認証処理時に中間鍵メモリ15に保存された中間鍵(中間鍵a、中間鍵b)読み出して使うことにより、IPSEC認証処理対象パケットごとに実行することが必要であった認証鍵データのハッシュ処理を、1回で済むようにすることにより、HMAC処理を高速に行えるようにしたことで、IPSEC認証処理を高速に行えるようにしたVPN装置を構築することができる。
【0041】
このように、本実施の形態のVPN装置30に含まれる暗号化装置20は、鍵に関する所定のデータから中間鍵を生成し、複数のパケットの第1のパケットに含まれるメッセージを暗号化し、生成した中間鍵を使用して暗号化したメッセージを認証するとともに生成した中間鍵を中間鍵メモリ15に記憶し、上記複数のパケットの第1のパケット以外のパケットに含まれるメッセージを暗号化するとともに中間鍵メモリ15に記憶した中間鍵を繰り返し使用して認証する暗号・認証処理部9を備える。
【0042】
上述した全ての実施の形態で得られる効果について説明する。
図10は、短パケットに対しIPSEC認証処理する場合の、一般的なVPN装置と上記すべての実施の形態に係る発明のVPN装置におけるHMAC処理時間の比較を図10に示す。
図10の通り、あるSAデータによる1個目のパケット処理完了までに要する時間は従来の方法とほぼ同じである。しかし2個目以降は各パケットに付き2ブロック分の処理時間短縮となり、N個処理した場合は2(N−1)ブロック分の時間短縮となる。図10は短パケットのときを例としているが、それ以外の長さのパケットを処理した場合も効果は同等である。
【0043】
上記すべての実施の形態の暗号側のVPN装置は、復号側のVPN装置にも適用することができる。復号側のVPN装置ではIPSEC処理のうち、認証処理手順は暗号側と同じなので、同様の効果が実現可能である。
【0044】
すなわち、IPSEC処理の流れとして、暗号化装置の中では暗号処理部の後に認証処理部があり、暗号処理後のデータを認証処理部で認証処理を行う。一方、復号装置の中では認証処理部の後に復号処理部があり、認証処理部で認証処理を行った後で復号処理を行う。ここで暗号側、復号側の認証処理部は同一のものであるため、復号側においても上記すべての実施の形態の発明による認証処理手順を用いることができ、また、認証処理対象データ、認証鍵についても同一であるため、復号装置でも暗号化装置と同様の効果が実現可能である。
【0045】
また、上記すべての実施の形態の発明はHMAC内で使用される認証アルゴリズムに依存することなく、SHA1、MD5の両方で適用可能であり、また他のブロックサイズの認証アルゴリズムにも適用可能である。
【0046】
また、上記すべての実施の形態における発明では、通信装置の例としてVPN装置を挙げているが、ソフトウェアによって実装する場合においても本発明は有効である。
【0047】
図11は、上記すべての実施の形態における通信装置のコンピュータ基本構成図である。
図11において、プログラムを実行するCPU40は、バス38を介してモニタ41、キーボード42、マウス43、通信ポート44、磁気ディスク装置46等と接続されている。
磁気ディスク装置46には、OS47、プログラム群49、ファイル群50が記憶されている。ただし、プログラム群49、ファイル群50が一体となってオブジェクト指向のプログラム群49を形成する形態も一実施の形態として考えられる。
上記鍵処理部12や上記暗号・認証処理部9等が行う動作は、プログラムとして記述することができる。これらのプログラム群49が磁気ディスク装置46に記憶され、OS47を使用してCPU40により実行されることにより、上記鍵処理部12や上記暗号・認証処理部9等が行う動作はソフトウェアによって実装することができる。
上記各実施の形態では、通信装置は、通信ポート44の機能を使用して、他の通信装置と通信を行う。
【0048】
以上に記載した「登録する」、「記憶する」という用語は、記録媒体に保存することを意味する。
【0049】
すべての実施の形態では、各構成要素の各動作はお互いに関連しており、各構成要素の動作は、上記に示された動作の関連を考慮しながら、一連の動作として置き換えることができる。そして、このように置き換えることにより、方法の発明の実施形態とすることができる。
また、上記各構成要素の動作を、各構成要素の処理と置き換えることにより、プログラムの実施の形態とすることができる。
また、プログラムを、プログラムを記録したコンピュータ読み取り可能な記録媒体に記憶させることで、プログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態とすることができる。
【0050】
プログラムの実施の形態及びプログラムに記録したコンピュータ読み取り可能な記録媒体の実施の形態は、すべてコンピュータで動作可能なプログラムにより構成することができる。
プログラムの実施の形態およびプログラムを記録したコンピュータ読み取り可能な記録媒体の実施の形態における各処理はプログラムで実行されるが、このプログラムは、記録装置に記録されていて、記録装置から中央処理装置(CPU)に読み込まれ、中央処理装置によって、各フローチャートが実行されることになる。
また、各実施の形態のソフトウェアやプログラムは、ROM(READ ONLY MEMORY)に記憶されたファームウェアで実現されていても構わない。あるいは、ソフトウェアとファームウェアとハードウェアとの組み合わせで前述したプログラムの各機能を実現しても構わない。
【0051】
【発明の効果】
以上のように本発明によれば、IPSEC認証処理において装置全体の処理時間が短縮され、スループットの向上が測られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1におけるVPN装置のブロック構成図である。
【図2】本発明の実施の形態1のVPN装置におけるIPSEC認証処理フローである。
【図3】MK1(中間鍵a)生成フロー図である。
【図4】MK2(中間鍵b)生成フロー図である。
【図5】各データベースの構造図である。
【図6】HMAC処理の流れを示したフロー図である。
【図7】HMAC処理の流れを示したフロー図である。
【図8】本発明の実施の形態2におけるVPN装置のブロック構成図である。
【図9】本発明の実施の形態3におけるVPN装置のブロック構成図である。
【図10】一般的なVPN装置とすべての実施の形態に係る発明のVPN装置におけるHMAC処理の効果の差を示した図である。
【図11】通信装置のコンピュータ基本構成図である。
【符号の説明】
1 ユーザインタフェース、2 自局制御部、3 SP・SA生成部、4 受信部、5 精査部、6 データベースA(SPD)、7 振分部、8 データベースB(SAD)、9 暗号・認証処理部、10 送信制御部、11 送信部、12 鍵処理部、15 中間鍵メモリ、38 バス、40 CPU、41 モニタ、42 キーボード、43 マウス、44 通信ポート、46 磁気ディスク装置、47 OS、49 プログラム群、50 ファイル群。
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an encryption device and a decryption device that authenticate a packet.
[0002]
[Prior art]
The IPSEC (IP SECURITY) processing method of the packet is “IP authentication header (AH)” in RFC (REQUEST FOR COMMENTS) 2402 according to IETF (INTERNET ENGINEERING TASK FORCE), and “IP encryption payload (ESP)” in RFC 2406. It has been described.
[0003]
An authentication processing method that must be supported when the IPSEC is implemented in the communication device is HMAC (KEYED-HASHING FOR MESSAGE AUTHENTICATION), and the authentication algorithm used for the hash function during the HMAC processing is MD5 or SHA1.
[0004]
The flow of the conventional HMAC process will be described.
First, the authentication key K is padded with 0, and is adjusted to the block size of the hash function to be used, and an exclusive OR of this and ipad is performed to generate IK1 (step 1).
Next, HMAC processing target data P is added after IK1, padding data PAD DATA and data length L are further added, and hash processing target data IP1 which is a multiple of the block size of the hash function is generated (step 2).
Next, IP1 hash processing is performed by the hash function H to generate a digest D1 (step 3).
Next, as in step 1, the authentication key K is padded with 0, the block size of the hash function to be used is used, and the pad is subjected to an exclusive OR operation with opad to generate IK2 (step 4).
Next, the digest D1 obtained as a result of step 3 is added after IK2, padding data PAD DATA and data length L are added, and hash processing target data IP2 having a size of 2 blocks of the hash function is generated ( Step 5).
Next, IP2 hash processing is performed by the hash function H to generate a digest D2. Finally, the upper 96 bits of D2 are added as an authentication digest of the IPSEC packet (step 6).
[0005]
Next, the details of the hash processing in step 3 will be described.
The hash processing is performed one block at a time using the hash initial value and the hash processing target data.
First, the hash initial value H0 defined by the hash function MD5 and the hash function SHA1 is used as the hash initial value, and a hash process of one block size is performed using the hashed data as IK1 to generate MK1 (the hash process of the key block). 1).
Next, using MK1 as a hash initial value and performing hash processing of one block size as IP1 (1) for one block behind IK1 in IP1 to generate MP1 (1) (Hash of plaintext block) Processing 1).
Next, it is determined whether or not the processing for the hash processing target data has been completed, and if there is unprocessed hash processing target data, the above-described “plain text block hash processing 1” is repeated. Here, the hash initial value in “plaintext block hash processing 1” is the result MP1 (N−1) of the previous “plaintext block hash processing 1”.
If it is determined that the processing for the data to be subjected to hash processing has been completed, MP1 (N) finally obtained is set as D1, and the processing ends.
[0006]
Next, the details of the hash processing in step 6 will be described.
Similarly to the hash processing in step 3, the hash initial value H0 defined by the hash functions MD5 and SHA1 is used as the hash initial value, and the hashed data of one block size is generated using the hashed data as IK2 to generate MK2 (key Block hash processing 2).
Next, MK2 is used as a hash initial value, hash processing of one block size is performed with the hashed data as IP2 (1), and the result is set to D2 (plaintext block hash processing 2).
[0007]
Steps 3 and 6 take time in the above hash processing, and the processing time increases in proportion to the block size of the data to be hashed.
[0008]
Next, the data length of the hash processing will be described. One block = 512 bits for both SHA1 and MD5. When hash processing is performed on certain data, padding data (1 to 512 bits) and a data length (64 bits) are added after the data to be hashed.
The padding data is for adjusting the data size obtained by combining the hash processing target data, the padding data, and the data length to a multiple of 512 bits, and the data length indicates the length of the hash processing target data before padding bits are added.
[0009]
Next, the hash processing time will be described. The time required for the hash processing is one block when the padding data and the data length of the hash processing target before adding the data length are 1 bit to 447 bits, two blocks when the data length is 448 bits to 959 (447 + 512) bits, and one block for every 512 bits thereafter. It will increase gradually.
As a result, the processing time of steps 3 and 6 of the hash processing by the authentication algorithm during the HMAC processing increases in proportion to the block size of the data length of the hash processing target.
[0010]
The HMAC processing time will be described using a short packet as an example.
When performing IPSEC authentication processing on short packets, the applicable range of HMAC processing is 448 bits for ESP and 624 bits for AH.
When HMAC processing is performed on this, two blocks are used for hash processing (Hash processing 1 for plaintext blocks) in the HMAC processing application range of the packet, and hash processing for authentication keys (Hash processing 1 for key blocks, Hash processing 2 for key blocks) ) Requires a total of 5 blocks for 2 blocks, and 1 block for hash processing for finally obtaining an authentication digest (hash processing 2 for plaintext blocks).
[0011]
The configuration on the encryption side of a generally considered VPN (VIRTUAL PRIVATE NETWORK) device will be described.
The VPN device on the encryption side realizes a user interface and a function as a local station terminal, receives a packet addressed to the local station terminal from the distribution unit, passes a packet from the local station terminal to the transmission control unit, and receives a packet from the user interface. The own station control unit that passes the set VPN setting information to the SP / SA generation unit, and the VPN setting information and the information received through mutual communication with another VPN device are received from the own station control unit. (SECURITY POLICY) data, SA (SECURITY ASSOCIATION) data, and an SP / SA generation unit that passes SP data to the reconciliation unit and SA data to the distribution unit 7; a reception unit that receives a packet; Is registered in SPD 6 (SECURITY POLICY DATABASE), and a scrutiny unit for scrutinizing the packet and SP The SPD, which is a database for storing data, and the SA data are registered in SAD (SECURITY ASSOCIATION DATABASE), packets addressed to the own station are sent to the own station control unit, packets not subject to IPSEC are sent to the transmission control unit, and packets subject to IPSEC processing are sent to A distributing unit that reads out SA data from the SAD to the encryption / authentication processing unit and passes it to the encryption / authentication processing unit, a SAD that is a database that stores the SA data, and an encryption / authentication process that performs IPSEC processing of packets A transmission control unit that controls the destination of the transmission packet received from the local station control unit, the encryption / authentication processing unit, the distribution unit, and a transmission unit that transmits the packet.
[0012]
Next, the flow of processing on the encryption side in this general VPN device will be described.
As preparation for packet processing, first, SP data and SA data are generated and registered in SPD and SAD, respectively, and then IPSEC processing of the packet is performed.
[0013]
First, in order to generate SP data and SA data, the VPN administrator sets the VPN device via the user interface of the VPN device own station terminal, and the own station control unit generates the SP / SA information received from the user interface. After the SP / SA generation unit generates the SP data, the SP / SA generation unit passes the SP data to the inspection unit, and the inspection unit registers the SP data in the SPD.
[0014]
Next, in order to construct a VPN between the devices, the devices communicate with each other to generate SA data. The SP / SA generation unit passes the data addressed to the other VPN device for determining the SA data to the own station control unit, and the own station control unit packetizes this and sends it to the transmission control unit. And the transmitting unit transmits this to the outside of the device. The receiving unit passes a received packet having information for determining SA data from another VPN device to the reconciliation unit, which passes the received packet to the distribution unit, and the distribution unit determines that the packet is addressed to the own station. The self-station control unit passes this to the SP / SA generation unit.
When the SA data is determined by the above communication, the SP / SA generation unit passes the SA data to the distribution unit, and the distribution unit registers this in the SAD.
[0015]
Next, the receiving unit receives the IPSEC processing target packet and passes it to the scrutinizing unit. The inspection unit determines that the packet is to be subjected to the IPSEC process based on the source address, the destination address, the protocol, and the port number of the packet header, and reads out the SPI (SECURITY PARAMETER INDEX) corresponding to the packet from the SPD, This and the packet are passed to the distribution unit. The distribution unit refers to the SAD based on the SPI and passes SA data such as an encryption algorithm, an authentication algorithm, an encryption key, and an authentication key to the encryption / authentication processing unit.
The encryption / authentication processing unit performs IPSEC processing of the packet based on the processing information included in the SA data, and passes the processed packet to the transmission control unit. Here, when the process indicated by the SA data includes an authentication process, the encryption / authentication processing unit performs the HMAC process on the packet. The transmission control unit determines that the packet received from the encryption / authentication processing unit is addressed to another VPN device, and passes the packet to the transmission unit. The transmitting unit transmits the packet out of the device (for example, see Patent Document 1).
[0016]
[Patent Document 1]
JP-A-11-8620
[0017]
[Problems to be solved by the invention]
In the case of the VPN device configuration as described above, all the HMAC processing is performed by the encryption / authentication processing unit. In the HMAC processing, there is a hash processing part that does not require packet data but requires authentication key data (key block hash processing 1 and key block hash processing 2). This is HMAC key processing.
When there are a plurality of packets using the same authentication key, the HMAC key processing is executed for each packet, so that there is a problem that it takes time and is inefficient.
[0018]
An object of the present invention is to provide an encryption device, a decryption device, and a method for improving the throughput of a VPN device.
[0019]
[Means for Solving the Problems]
The encryption device according to the present invention comprises:
A key processing unit that generates an intermediate key from predetermined data related to the key,
A database for storing an intermediate key generated by the key processing unit,
An encryption / authentication processing unit that encrypts a message included in the packet and authenticates the encrypted message using the intermediate key stored in the database as an authentication key.
[0020]
BEST MODE FOR CARRYING OUT THE INVENTION
Embodiment 1 FIG.
Embodiment 1 will be described.
FIG. 1 is a system configuration diagram of a VPN device 30 showing the invention of the first embodiment. The VPN device 30 is an example of a communication device in which a communication function and an interface function are added to the encryption device 20 of the present invention.
In FIG. 1, a local station control unit 2 realizes a function as a local station terminal, receives a packet addressed to the local station terminal from a distribution unit 7, passes a packet from the local station terminal to a transmission control unit 10, and This is a unit that passes the VPN setting information set from the interface 1 to the SP / SA generating unit 3.
The SP / SA generation unit 3 receives from the own station control unit 2 the VPN setting information and the information received through mutual communication with other VPN devices, generates SP data and SA data from these information, and converts the SP data. A unit that passes the authentication key of the SA data to the key processing unit 12 and passes the data after the HMAC key processing received from the key processing unit 12 to the reconciliation unit 5 as a part of the SA data. is there. Hereinafter, the data after the HMAC key processing received from the key processing unit 12 is referred to as an intermediate key. The HMAC key processing will be described later.
[0021]
The receiving unit 4 receives the packet, and the scrutinizing unit 5 registers the SP data in the database A (SPD) 6 and scrutinizes the packet received by the receiving unit 4. Therefore, the database A (SPD) 6 stores the SP data.
The distribution unit 7 registers the SA data in the database B (SAD) 8, encrypts and authenticates a packet addressed to the own station to the own station control unit 2, a packet not subject to IPSEC to the transmission control unit 10, and a packet subject to IPSEC processing. The SA unit reads the SA data from the database B (SAD) 8 and passes it to the encryption / authentication processing unit 9 at this time. Therefore, the database B (SAD) 8 is a database that stores SA data, and is an example of a database that stores an intermediate key generated by a key processing unit described below.
The encryption / authentication processing unit 9 performs IPSEC processing on the packet, encrypts the message included in the packet, and authenticates the encrypted message using the intermediate key stored in the database as an authentication key.
The transmission control unit 10 controls the destination of the transmission packet received from the own station control unit 2, the encryption / authentication processing unit 9, and the distribution unit 7, and the transmission unit 11 is a unit that transmits the packet.
The key processing unit 12 is a unit that performs HMAC key processing of the authentication key received from the SP / SA generation unit 3, generates an intermediate key, and transfers this to the SP / SA generation unit. That is, the key processing unit 12 generates an intermediate key from predetermined data related to the key (the authentication key received from the SP / SA generation unit 3).
The encryption device 20 includes the key processing unit 12 and the encryption / authentication processing unit 9, and may store the database B (SAD) 8 internally or externally.
[0022]
Next, a processing flow of the VPN device 30 of the present invention in the present embodiment will be described with reference to FIG. As preparation for packet processing, first, SP data and SA data are registered, and then IPSEC processing of the packet is performed.
[0023]
First, in order to generate SP data and SA data, the VPN administrator sets the VPN device 30 through the user interface 1 of the VPN device own station terminal, and the own station control unit 2 transmits the information received from the user interface 1 Is passed to the SP / SA generating unit 3, which generates SP data which is setting data of the VPN device 30 (T 1), and then passes it to the scrutinizing unit 5, which parses the SP data into a database. A (SPD) 6 is registered (T2).
[0024]
Next, in order to construct a VPN between the VPN devices, the VPN devices mutually communicate with other VPN devices to generate SA data. The SP / SA generation unit 3 passes data addressed to another VPN device for determining SA data to the own station control unit 2, and the own station control unit 2 packetizes the data and passes it to the transmission control unit 10, and performs transmission control. The unit 10 passes it to the transmission unit 11, which transmits this to the outside of the device.
The receiving unit 4 passes a received packet having information for determining SA data from another VPN device to the scrutinizing unit 5, and the scrutinizing unit 5 passes the packet to the allocating unit 7. This packet is passed to the SP / SA generation unit 3. When the SA data is generated and determined (T3) by the above communication, the SP / SA generating unit 3 passes the authentication key of the SA data to the key processing unit 12, and the key processing unit 12 performs the HMAC key processing (the key (Y1 in FIG. 2) ) Hash processing 1: T4, hash processing of the key (Z1) 2: indicated by T5), and the obtained intermediate key is passed to the SP / SA generation unit 3.
The SP / SA generation unit 3 passes the SA data to the distribution unit 7, and the distribution unit 7 registers this in the database B (SAD) 8 (T6).
[0025]
The receiving unit 4 receives the packet to be subjected to the IPSEC processing (T7) and passes the packet to the scrutinizing unit 5.
The scrutinizing unit 5 determines that this packet is to be subjected to IPSEC processing, reads out the SPI corresponding to this packet from the database A (SPD) 6, and passes this and the packet to the distribution unit 7. The distribution unit 7 reads out SA data from the database B (SAD) 8 based on the SPI (SECURITY PARAMETERS INDEX), and passes this and the packet to the encryption / authentication processing unit 9.
The encryption / authentication processing unit 9 performs IPSEC processing of the packet based on the processing information included in the SA data, and passes the processed packet to the transmission control unit 10.
Here, if the process indicated by the SA data includes an authentication process, the encryption / authentication processing unit 9 performs the HMAC process on the message included in the packet ((in FIG. 2, hash process 1: T8 of message (Y2), Message (Z2) hash processing 2: indicated by T9).
The transmission control unit 10 determines that the packet received from the encryption / authentication processing unit 9 is addressed to another VPN device, and passes the packet to the transmission unit 11. The transmitting unit 11 transmits the packet to outside the device.
[0026]
Next, hash processing 1 (HMAC key processing) of the key (Y1) indicated by T4 in FIG. 2 will be described with reference to FIG.
First, the key processing unit 12 pads the authentication key K with 0, matches the block size of the hash function to be used, and performs an exclusive OR of this and ipad to generate IK1 (Y0).
Next, the key processing unit 12 generates MK1 that is the intermediate key a. The hash initial value H0 defined by the hash function MD5 and the hash function SHA1 is used as the hash initial value, and the data to be hashed is subjected to the hash processing of one block size using the IK1 generated at the above Y0, MK1 (intermediate key a) is generated (Y1).
[0027]
Next, hash processing 2 (HMAC key processing) of the key (Z1) indicated by T5 will be described with reference to FIG.
In Z0, the key processing unit 12 performs padding of the authentication key K with 0 in the same manner as in Y0, performs an exclusive OR operation of the padding with the block size of the hash function to be used and opad, and generates IK2.
Next, the key processing unit 12 generates the MK2 that is the intermediate key b, as in the hash processing 1 of the key (Y1). The hash initial value H0 defined by the hash functions MD5 and SHA1 is used as the hash initial value, and hash processing of one block size is performed using the hashed data as IK2 to generate MK2 (intermediate key b).
[0028]
FIG. 5 shows the structure of the database A (SPD) 6 and the database B (SAD) 8 on the encryption side of the VPN device 30 according to the present embodiment.
In the HMAC key processing, the key processing unit 12 uses the data (MK1) after the processing of Y1 as the intermediate key a and the data (MK2) after the hash processing 2 of the key (Z1) as the intermediate key b, and uses the intermediate keys a, The intermediate key b is registered in the database B (SAD) 8 as an authentication key by the distribution unit 7. The intermediate key a and the intermediate key b are keys registered instead of the conventional authentication key.
[0029]
Next, the process of T8 shown in FIG. 2 will be described.
FIG. 6 shows the processing performed in the hash processing 1 (T8) of the message (Y2). First, the encryption / authentication processing unit 9 adds HMAC processing target data P after IK1 at Y20, further adds padding data PAD DATA and data length L, and performs hash processing that is a multiple of the block size of the hash function. The target data IP1 is generated.
Next, the encryption / authentication processing unit 9 performs hash processing of one block size by using MK1 (intermediate key a) as a hash initial value and using the data to be hashed as IP1 (1) for one block behind IK1 in IP1. Generate MP1 (1). Next, it is determined whether or not the processing for the hash processing target data has been completed (Y24). If there is unprocessed hash processing target data, the above-described processing of Y22 is repeated. Here, the hash initial value in Y22 is the result MP1 (N-1) of the previous Y22.
If it is determined that the processing for the hash processing target data has been completed (Y24), the process ends with the finally obtained MP1 (N) as D1.
[0030]
Next, the process of T9 shown in FIG. 2 will be described.
FIG. 7 shows a process performed in the hash process 2 (T9) of the message (Z2). First, the encryption / authentication processing unit 9 adds the digest D1 obtained as a result of T8 after IK2 in Z20, further adds padding data PAD DATA and data length L, and the size becomes two blocks of the hash function. Generate the hash processing target data IP2.
Next, in Z22, the encryption / authentication processing unit 9 performs hash processing of one block size using MK2 (intermediate key b) as a hash initial value and IP2 (1) as hashed data, and digests the result. D2.
Finally, the upper 96 bits of the digest D2 are added as an authentication digest of the IPSEC packet.
[0031]
As described above, in the VPN device 30 that performs the IPSEC authentication process by the HMAC process by the encryption device 20, the key processing unit 12 that first executes only the hash process for the authentication key data is provided, and the hashed result (intermediate key a, intermediate key b ) Is stored in the database B (SAD) 8 instead of the authentication key, and the hash result data (intermediate data) stored in the database B (SAD) 8 is used instead of repeatedly performing the hash processing of the authentication key data in the HMAC processing. By reading and using the key a and the intermediate key b), the HMAC process can be performed at a high speed by performing the hash process of the authentication key data, which had to be executed for each packet to be subjected to the IPSEC authentication process, only once. A VPN device characterized in that IPSEC authentication processing can be performed at high speed by being able to perform And it describes.
[0032]
As described above, the encryption device 20 included in the VPN device 30 includes a key processing unit 12 that generates an intermediate key from predetermined data related to a key, and a database (database B (database B) that stores the intermediate key generated by the key processing unit 12. SAD) 8), encrypts the message contained in the packet, and uses the intermediate key stored in the database (database B (SAD) 8) as an authentication key, and substitutes the intermediate key into a hash function to encrypt the message. And an encryption / authentication processing unit 9 for authenticating the encrypted message.
[0033]
Then, the encryption device 20 performs packet communication by VPN (VIRTUAL PRIVATE NETWORK) by performing communication of a packet including the message authenticated by the encryption / authentication processing unit 9 in accordance with the IPSEC protocol (IP SECURITY PROTOCOL). .
[0034]
The communication device (VPN device 30) of the present embodiment generates an intermediate key by the key processing unit 12 of the encryption device 20 and a database (database B (SAD) that stores the intermediate key generated by the key processing unit 12). 8) and an encryption / authentication processing unit 9 for encrypting the message included in the packet and authenticating the encrypted message using the intermediate key stored in the database (database B (SAD) 8) as an authentication key. And a transmission unit 11 for transmitting a packet including a message authenticated by the encryption / authentication processing unit 9.
[0035]
In the VPN device configured as described above, the HMAC key processing is performed by the key processing unit 12 at the time of SA data registration, and therefore does not need to be performed by the encryption / authentication processing unit 9.
The above-described HMAC key processing corresponds to the hash processing 1 (T4) of the key (Y1) and the hash processing 2 (T5) of the key (Z1) in FIG. 2, and requires a total of two blocks. The intermediate key (intermediate key a, intermediate key b) generated by the HMAC key processing unit instead of the conventional authentication key is used as a part of the SA data, and the SP / SA generation unit 3 passes the SA data to the distribution unit 7. , The distribution unit 7 registers this in the database B (SAD) 8. By using the intermediate key, the encryption / authentication processing unit 9 can reduce the number of blocks by two for each packet authentication process.
[0036]
Embodiment 2 FIG.
Although the key processing unit 12 is provided in the first embodiment, access to the database B (SAD) 8 is transferred from the distribution unit 7 to the encryption / authentication processing unit 9 as shown in FIG. The unit 7 passes the SA data to the encryption / authentication processing unit 9, and the encryption / authentication processing unit 9 performs HMAC key processing. After that, the encryption / authentication processing unit sends the SA data including the intermediate key to the database B (SAD) 8. By registering, it is also possible to realize the present invention without providing the key processing unit 12.
[0037]
As described above, in the present embodiment, by configuring the system as shown in FIG. 8, only the hash processing for the authentication key data is performed first at the time of registration in the database B (SAD) 8, and the hashed result (intermediate The key a and the intermediate key b) are stored in the database B (SAD) 8 instead of the authentication key, and are stored in the database B (SAD) 8 instead of repeatedly performing the hash processing of the authentication key data in the HMAC processing. By reading and using the data of the hash result (intermediate key a and intermediate key b), the hash processing of the authentication key data, which had to be executed for each packet to be subjected to the IPSEC authentication processing, can be performed only once. As a result, the HMAC process can be performed at a high speed, so that a VPN device that can perform the IPSEC authentication process at a high speed can be constructed.
[0038]
As described above, the encryption device 20 included in the VPN device 30 according to the present embodiment generates an intermediate key from a database (database B (SAD) 8) that stores information about keys and predetermined data about keys. The generated intermediate key is stored in the database (database B (SAD) 8), a message included in the packet is encrypted, and the intermediate key stored in the database (database B (SAD) 8) is repeatedly used as an authentication key. And an encryption / authentication processing unit 9 for authenticating the message.
[0039]
Embodiment 3 FIG.
As another embodiment, it is conceivable to provide an area for storing an intermediate key in the encryption / authentication processing unit 9.
FIG. 9 shows this embodiment. The encryption / authentication processing unit 9 has an intermediate key memory 15 therein, stores the intermediate key in the intermediate key memory 15 at the time of the first packet authentication processing for a certain authentication key, and thereafter stores the intermediate key in the packet authentication processing using the same key. By reading the key from the intermediate key memory 15 and using it, the same effect as in the first and second embodiments can be obtained.
[0040]
As described above, in the present embodiment, by configuring the system as shown in FIG. 9, the area (intermediate key memory 15) for storing the hash processing result (intermediate key a and intermediate key b) for the authentication key data is provided. The intermediate key (the intermediate key a and the intermediate key b) stored in the intermediate key memory 15 during the first packet authentication with a certain authentication key and read and used during the subsequent packet authentication processing. The HMAC process can be performed at a high speed by performing the hash process of the authentication key data, which has to be performed for each packet to be subjected to the IPSEC authentication process, only once. A high-speed VPN device can be constructed.
[0041]
As described above, the encryption device 20 included in the VPN device 30 of the present embodiment generates an intermediate key from predetermined data related to the key, encrypts the message included in the first packet of the plurality of packets, and generates the intermediate key. Authenticates the message encrypted using the intermediate key and stores the generated intermediate key in the intermediate key memory 15, encrypts the message included in the packets other than the first packet of the plurality of packets, An encryption / authentication processing unit 9 for performing authentication by repeatedly using the intermediate key stored in the key memory 15 is provided.
[0042]
Effects obtained in all the above-described embodiments will be described.
FIG. 10 shows a comparison of the HMAC processing time between the general VPN device and the VPN device of the invention according to all the above-described embodiments when performing the IPSEC authentication process on the short packet.
As shown in FIG. 10, the time required for completing the first packet processing based on certain SA data is almost the same as that of the conventional method. However, for the second and subsequent packets, the processing time is reduced by two blocks for each packet, and when N packets are processed, the time is reduced by 2 (N-1) blocks. FIG. 10 shows a case of a short packet as an example, but the effect is the same when a packet of other length is processed.
[0043]
The encryption-side VPN devices in all of the above embodiments can be applied to the decryption-side VPN device. In the decryption-side VPN device, of the IPSEC process, the authentication processing procedure is the same as that of the encryption-side, so that the same effect can be realized.
[0044]
That is, in the flow of the IPSEC process, an authentication processing unit is provided after the encryption processing unit in the encryption apparatus, and the authentication processing unit performs authentication processing on the data after the encryption processing. On the other hand, in the decryption device, there is a decryption processing unit after the authentication processing unit, and the decryption processing is performed after the authentication processing unit performs the authentication processing. Here, since the authentication processing units on the encryption side and the decryption side are the same, the authentication processing procedure according to the inventions of all the above embodiments can be used on the decryption side. Are the same, the same effect as the encryption device can be realized in the decryption device.
[0045]
In addition, the inventions of all the above embodiments can be applied to both SHA1 and MD5 without depending on the authentication algorithm used in the HMAC, and can also be applied to authentication algorithms of other block sizes. .
[0046]
Further, in the inventions in all of the above embodiments, a VPN device is given as an example of a communication device, but the present invention is also effective when implemented by software.
[0047]
FIG. 11 is a computer basic configuration diagram of the communication device in all of the above embodiments.
In FIG. 11, a CPU 40 that executes a program is connected to a monitor 41, a keyboard 42, a mouse 43, a communication port 44, a magnetic disk device 46, and the like via a bus 38.
The magnetic disk device 46 stores an OS 47, a program group 49, and a file group 50. However, an embodiment in which the program group 49 and the file group 50 are integrated to form the object-oriented program group 49 is also considered as one embodiment.
The operations performed by the key processing unit 12, the encryption / authentication processing unit 9, and the like can be described as a program. When these programs 49 are stored in the magnetic disk device 46 and executed by the CPU 40 using the OS 47, the operations performed by the key processing unit 12, the encryption / authentication processing unit 9, and the like can be implemented by software. Can be.
In each of the above embodiments, the communication device communicates with another communication device using the function of the communication port 44.
[0048]
The terms “register” and “store” described above mean that the information is stored in a recording medium.
[0049]
In all embodiments, each operation of each component is related to each other, and the operation of each component can be replaced as a series of operations while taking into account the relation of the operations described above. Then, by substituting in this way, an embodiment of the method invention can be obtained.
Further, by replacing the operation of each of the above components with the processing of each of the components, an embodiment of a program can be realized.
In addition, by storing the program on a computer-readable recording medium on which the program is recorded, an embodiment of a computer-readable recording medium on which the program is recorded can be provided.
[0050]
The embodiment of the program and the embodiment of the computer-readable recording medium recorded in the program can all be configured by a computer-operable program.
Each process in the embodiment of the program and the embodiment of the computer-readable recording medium on which the program is recorded is executed by the program, and the program is recorded in the recording device, and is transmitted from the recording device to the central processing unit ( CPU) and each flowchart is executed by the central processing unit.
Also, the software and programs of each embodiment may be implemented by firmware stored in a ROM (READ ONLY MEMORY). Alternatively, each function of the above-described program may be realized by a combination of software, firmware, and hardware.
[0051]
【The invention's effect】
As described above, according to the present invention, the processing time of the entire apparatus in the IPSEC authentication processing is reduced, and the improvement of the throughput is measured.
[Brief description of the drawings]
FIG. 1 is a block diagram of a VPN device according to a first embodiment of the present invention.
FIG. 2 is an IPSEC authentication processing flow in the VPN device according to the first embodiment of the present invention.
FIG. 3 is a flowchart of MK1 (intermediate key a) generation.
FIG. 4 is a flowchart of MK2 (intermediate key b) generation.
FIG. 5 is a structural diagram of each database.
FIG. 6 is a flowchart showing a flow of an HMAC process.
FIG. 7 is a flowchart showing a flow of an HMAC process.
FIG. 8 is a block diagram of a VPN device according to a second embodiment of the present invention.
FIG. 9 is a block diagram of a VPN device according to a third embodiment of the present invention.
FIG. 10 is a diagram showing a difference between the effects of the HMAC process in a general VPN device and the VPN devices of the invention according to all the embodiments.
FIG. 11 is a basic configuration diagram of a computer of the communication device.
[Explanation of symbols]
1 user interface, 2 own station control unit, 3 SP / SA generation unit, 4 reception unit, 5 scrutiny unit, 6 database A (SPD), 7 distribution unit, 8 database B (SAD), 9 encryption / authentication processing unit , 10 transmission control section, 11 transmission section, 12 key processing section, 15 intermediate key memory, 38 bus, 40 CPU, 41 monitor, 42 keyboard, 43 mouse, 44 communication port, 46 magnetic disk drive, 47 OS, 49 program group , 50 files.

Claims (12)

鍵に関する所定のデータから中間鍵を生成する鍵処理部と、
上記鍵処理部が生成した中間鍵を記憶するデータベースと、
パケットに含まれるメッセージを暗号化するとともに上記データベースに記憶した中間鍵を認証鍵として使用して暗号化したメッセージを認証する暗号・認証処理部とを備えた暗号化装置。
A key processing unit that generates an intermediate key from predetermined data related to the key,
A database for storing an intermediate key generated by the key processing unit,
An encryption device comprising: an encryption / authentication processing unit that encrypts a message included in a packet and authenticates the encrypted message using an intermediate key stored in the database as an authentication key.
鍵に関する情報を記憶するデータベースと、
鍵に関する所定のデータから中間鍵を生成し、生成した中間鍵を上記データベースに記憶し、パケットに含まれるメッセージを暗号化するとともに上記データベースに記憶した中間鍵を認証鍵として繰り返し使用してメッセージを認証する暗号・認証処理部とを備えた暗号化装置。
A database for storing information about the key;
An intermediate key is generated from predetermined data related to the key, the generated intermediate key is stored in the database, the message included in the packet is encrypted, and the message is repeatedly used by using the intermediate key stored in the database as an authentication key. An encryption device including an encryption / authentication processing unit for performing authentication.
上記暗号・認証処理部は、上記データベースに記憶した中間鍵を繰り返し使用して複数のパケットに含まれるメッセージを認証する請求項1または請求項2のいずれかに記載された暗号化装置。3. The encryption device according to claim 1, wherein the encryption / authentication processing unit authenticates a message included in a plurality of packets by repeatedly using the intermediate key stored in the database. 鍵に関する所定のデータから中間鍵を生成し、複数のパケットの第1のパケットに含まれるメッセージを暗号化し、生成した中間鍵を使用して暗号化したメッセージを認証するとともに生成した中間鍵を中間鍵メモリに記憶し、上記複数のパケットの第1のパケット以外のパケットに含まれるメッセージを暗号化するとともに中間鍵メモリに記憶した中間鍵を繰り返し使用して認証する暗号・認証処理部を備えた暗号化装置。Generating an intermediate key from predetermined data relating to the key; encrypting a message included in the first packet of the plurality of packets; authenticating the encrypted message using the generated intermediate key; An encryption / authentication processing unit for storing in a key memory, encrypting a message included in a packet other than the first packet of the plurality of packets, and performing authentication by repeatedly using the intermediate key stored in the intermediate key memory; Encryption device. 上記暗号・認証処理部は、上記中間鍵をハッシュ関数に代入することによりメッセージを認証する請求項1または請求項2または請求項4のいずれかに記載された暗号化装置。The encryption device according to claim 1, wherein the encryption / authentication processing unit authenticates a message by substituting the intermediate key into a hash function. 上記暗号化装置は、上記暗号・認証処理部が認証したメッセージを含むパケットの通信をIPSECプロトコル(IP SECURITY PROTOCOL)に準拠して行うことでVPN(VIRTUAL PRIVATE NETWORK)によるパケット通信を行う請求項1または請求項2または請求項4のいずれかに記載された暗号化装置。2. The packet communication device according to claim 1, wherein the encryption device performs packet communication by VPN (VIRTUAL PRIVATE NETWORK) by performing communication of a packet including the message authenticated by the encryption / authentication processing unit in accordance with an IPSEC protocol (IP SECURITY PROTOCOL). Alternatively, the encryption device according to claim 2 or 4. 鍵に関する所定のデータから中間鍵を生成する鍵処理部と、
上記鍵処理部が生成した中間鍵を記憶するデータベースと、
パケットに含まれるメッセージを暗号化するとともに上記データベースに記憶した中間鍵を認証鍵として使用して暗号化したメッセージを認証する暗号・認証処理部と、
上記暗号・認証処理部によって認証されたメッセージを含むパケットを送信する送信部を備えた通信装置。
A key processing unit that generates an intermediate key from predetermined data related to the key,
A database for storing an intermediate key generated by the key processing unit,
An encryption / authentication processing unit that encrypts the message included in the packet and authenticates the encrypted message using the intermediate key stored in the database as an authentication key;
A communication device comprising: a transmission unit that transmits a packet including a message authenticated by the encryption / authentication processing unit.
鍵に関する所定のデータから中間鍵を生成する鍵処理部と、
上記鍵処理部が生成した中間鍵を記憶するデータベースと、
パケットに含まれるメッセージを復号するとともに上記データベースに記憶した中間鍵を認証鍵として繰り返し使用して復号したメッセージを認証する復号・認証処理部とを備えた復号装置。
A key processing unit that generates an intermediate key from predetermined data related to the key,
A database for storing an intermediate key generated by the key processing unit,
A decryption device comprising: a decryption / authentication processing unit that decrypts a message included in a packet and repeatedly authenticates the decrypted message by repeatedly using the intermediate key stored in the database as an authentication key.
鍵に関する所定のデータから中間鍵を生成し、
上記生成した中間鍵をデータベースに記憶し、
パケットに含まれるメッセージを暗号化するとともに上記データベースに記憶した中間鍵を認証鍵として使用して暗号化したメッセージを認証する暗号化方法。
Generate an intermediate key from predetermined data on the key,
The generated intermediate key is stored in a database,
An encryption method for encrypting a message included in a packet and authenticating the encrypted message using an intermediate key stored in the database as an authentication key.
鍵に関する所定のデータから中間鍵を生成し、
上記生成した中間鍵をデータベースに記憶し、
パケットに含まれるメッセージを復号するとともに上記データベースに記憶した中間鍵を認証鍵として繰り返し使用して復号したメッセージを認証する復号方法。
Generate an intermediate key from predetermined data on the key,
The generated intermediate key is stored in a database,
A decryption method for decrypting a message included in a packet and authenticating the decrypted message by repeatedly using the intermediate key stored in the database as an authentication key.
鍵に関する所定のデータから中間鍵を生成する処理と、
上記生成した中間鍵をデータベースに記憶する処理と、
パケットに含まれるメッセージを暗号化するとともに上記データベースに記憶した中間鍵を認証鍵として使用して暗号化したメッセージを認証する処理とをコンピュータに実行させる暗号化プログラム。
A process of generating an intermediate key from predetermined data related to the key;
Processing for storing the generated intermediate key in a database;
An encryption program for encrypting a message included in the packet and authenticating the encrypted message using the intermediate key stored in the database as an authentication key.
鍵に関する所定のデータから中間鍵を生成する処理と、、
上記生成した中間鍵をデータベースに記憶する処理と、
パケットに含まれるメッセージを復号するとともに上記データベースに記憶した中間鍵を認証鍵として繰り返し使用して復号したメッセージを認証する処理とをコンピュータに実行させる復号プログラム。
Generating an intermediate key from predetermined data related to the key;
Processing for storing the generated intermediate key in a database;
A decryption program for causing a computer to execute a process of decrypting a message included in a packet and repeatedly using the intermediate key stored in the database as an authentication key to authenticate the decrypted message.
JP2003033342A 2003-02-12 2003-02-12 Encrypting apparatus, communication apparatus, decoder, encrypting method, decoding method, encryption program, and decoding program Pending JP2004247810A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003033342A JP2004247810A (en) 2003-02-12 2003-02-12 Encrypting apparatus, communication apparatus, decoder, encrypting method, decoding method, encryption program, and decoding program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003033342A JP2004247810A (en) 2003-02-12 2003-02-12 Encrypting apparatus, communication apparatus, decoder, encrypting method, decoding method, encryption program, and decoding program

Publications (1)

Publication Number Publication Date
JP2004247810A true JP2004247810A (en) 2004-09-02

Family

ID=33019345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003033342A Pending JP2004247810A (en) 2003-02-12 2003-02-12 Encrypting apparatus, communication apparatus, decoder, encrypting method, decoding method, encryption program, and decoding program

Country Status (1)

Country Link
JP (1) JP2004247810A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166279A (en) * 2005-12-14 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> IPsec CIRCUIT AND IPsec PROCESSING METHOD
CN102780625A (en) * 2012-07-30 2012-11-14 成都卫士通信息产业股份有限公司 Method and device for realizing internet protocol security (IPSEC) virtual private network (VPN) encryption and decryption processing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166279A (en) * 2005-12-14 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> IPsec CIRCUIT AND IPsec PROCESSING METHOD
JP4647479B2 (en) * 2005-12-14 2011-03-09 日本電信電話株式会社 IPsec circuit and IPsec processing method
CN102780625A (en) * 2012-07-30 2012-11-14 成都卫士通信息产业股份有限公司 Method and device for realizing internet protocol security (IPSEC) virtual private network (VPN) encryption and decryption processing
CN102780625B (en) * 2012-07-30 2014-12-17 成都卫士通信息产业股份有限公司 Method and device for realizing internet protocol security (IPSEC) virtual private network (VPN) encryption and decryption processing

Similar Documents

Publication Publication Date Title
US10652015B2 (en) Confidential communication management
US8458461B2 (en) Methods and apparatus for performing authentication and decryption
US7134014B2 (en) Methods and apparatus for accelerating secure session processing
US7376826B2 (en) Methods and apparatus for performing encryption and authentication
US7392390B2 (en) Method and system for binding kerberos-style authenticators to single clients
US7941662B2 (en) Data transfer efficiency in a cryptography accelerator system
US8732461B2 (en) Client apparatus, server apparatus, and program using entity authentication and biometric authentication
US7734913B2 (en) Content transmission control device, content distribution device and content receiving device
US7979707B2 (en) Secure seed generation protocol
KR101265873B1 (en) Distributed single sign-on service
US8130961B2 (en) Method and system for client-server mutual authentication using event-based OTP
US8281122B2 (en) Generation and/or reception, at least in part, of packet including encrypted payload
WO2018202109A1 (en) Certificate request message sending method and receiving method and apparatus
JP7059282B6 (en) Network devices and trusted third-party devices
JP2004247810A (en) Encrypting apparatus, communication apparatus, decoder, encrypting method, decoding method, encryption program, and decoding program
JP2004157164A (en) Message digest generating circuit and padding circuit
Gerdes et al. RFC 9202: Datagram Transport Layer Security (DTLS) Profile for Authentication and Authorization for Constrained Environments (ACE)
CN113726507A (en) Data transmission method, system, device and storage medium
JP2010268293A (en) Communications apparatus and communication processing method
Leu et al. A handover security mechanism employing diffie-Hellman PKDS for IEEE802. 16e wireless networks
Gajek et al. Whitestein Series in Software Agent Technologies, 141-157 2008 Birkhäuser Verlag Basel/Switzerland

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040519

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041026

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091104