JP7289709B2 - Information processing device, information processing method and program - Google Patents
Information processing device, information processing method and program Download PDFInfo
- Publication number
- JP7289709B2 JP7289709B2 JP2019077125A JP2019077125A JP7289709B2 JP 7289709 B2 JP7289709 B2 JP 7289709B2 JP 2019077125 A JP2019077125 A JP 2019077125A JP 2019077125 A JP2019077125 A JP 2019077125A JP 7289709 B2 JP7289709 B2 JP 7289709B2
- Authority
- JP
- Japan
- Prior art keywords
- header
- data output
- memory area
- packet
- information processing
- 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.)
- Active
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本発明は、暗号化されたパケットを復号する情報処理装置、情報処理方法及びプログラムに関する。 The present invention relates to an information processing device, an information processing method, and a program for decrypting encrypted packets.
インターネット上のデータを暗号化し、セキュアに伝送するためのプロトコルが広く使用されている。代表的なものに、非特許文献1で開示されているSSL(Secure Socket Layer)や、その後継の非特許文献2で開示されているTLS(Transport Layer Security)がある。
Protocols are widely used to encrypt and securely transmit data on the Internet. Typical examples include SSL (Secure Socket Layer) disclosed in
インターネット通信におけるセキュア通信の占める割合は増加している一方で、プロトコルの脆弱性をついた攻撃手法も増加している。例えば、非特許文献3で開示されているPOODLE(Padding Oracle On Downgraded Legacy Encryption)と呼ばれる攻撃手法がある。この攻撃手法では、攻撃者が、脆弱性のあるSSL3.0にバージョンを落とし、通信させることが可能である。 While the proportion of secure communications in Internet communications is increasing, the number of attack methods that exploit protocol vulnerabilities is also increasing. For example, there is an attack method called POODLE (Padding Oracle On Downgraded Legacy Encryption) disclosed in Non-Patent Document 3. In this attack technique, an attacker can drop the version to vulnerable SSL 3.0 and cause communication.
こうしたプロトコルの脆弱性をついた攻撃手法の増加に対応するために、非特許文献4で開示されているTLS1.3においては、通信のセキュリティ性を向上させるための規格変更が加えられた。TLS1.3のレコードレイヤープロトコルにおいては、2つの大きな変更点がある。 In order to deal with the increasing number of attack methods exploiting the vulnerability of such protocols, TLS 1.3 disclosed in Non-Patent Document 4 has been modified to improve communication security. There are two major changes in the TLS 1.3 record layer protocol.
1つ目の変更点は、パケットの種別を示すTypeフィールドが、暗号化されることである。レコードレイヤーパケットのHeaderには、パケットの種別にかかわらず、常に固定値“23”がOpaqueTypeとして設定される。実際のパケットの種別を示すTypeフィールドは、暗号化されたCiphertextFragmentに含まれる。これにより、実際のパケットの種別は、暗号化されたCiphertextFragmentを復号しなければ知ることができない。 The first change is that the Type field, which indicates the type of packet, is encrypted. A fixed value “23” is always set as OpaqueType in the Header of the record layer packet regardless of the packet type. A Type field indicating the actual packet type is included in the encrypted CiphertextFragment. As a result, the actual packet type cannot be known unless the encrypted CiphertextFragment is decrypted.
2つ目の変更点は、Paddingの変更である。実際のContentのサイズを秘匿するために、最大のPaddingサイズが(214-1)バイトに拡張され、かつPaddingサイズはランダム値をとることが可能である。さらに、パケット内からPaddingサイズを示すフィールドが削除され、レコードレイヤーパケットのHeaderには、Paddingを含むCiphertextFragmentのサイズが設定される。このため、暗号化されたCiphertextFragmentをすべて復号しなければ、実際のContentのサイズを知ることができない。 The second change is the change of padding. To hide the actual Content size, the maximum Padding size is extended to (2 14 −1) bytes, and the Padding size can take random values. Furthermore, the field indicating the padding size is deleted from the packet, and the size of the CiphertextFragment including the padding is set in the Header of the record layer packet. Therefore, the actual Content size cannot be known unless all encrypted CiphertextFragments are decrypted.
TLS1.3においては、レコードレイヤーパケットのHeaderのOpaqueTypeは、実際のパケットの種別を示しておらず、CiphertextFragmentを復号した後に得られるTypeで上書きする必要がある。また、HeaderのCiphertextFragmentのサイズは、Paddingを含んだサイズであるため、CiphertextFragmentを復号してPaddingを除去した後に得られるContentサイズで上書きする必要がある。これらの上書きの処理をCPUにより実行した場合にはメモリコピーに時間がかかる。 In TLS 1.3, the OpaqueType in the Header of the record layer packet does not indicate the actual packet type, and must be overwritten with the Type obtained after decoding the CiphertextFragment. In addition, since the size of the CiphertextFragment of the Header is the size including padding, it is necessary to overwrite with the Content size obtained after decoding the CiphertextFragment and removing the padding. When these overwriting processes are executed by the CPU, memory copying takes time.
本発明は、このような事情に鑑みてなされたものであり、暗号化されたパケットを復号して得られる情報でパケットのHeaderを上書きする場合に、Headerの上書きに要する処理時間を削減することを目的とする。 SUMMARY OF THE INVENTION The present invention has been made in view of such circumstances. With the goal.
本発明に係る情報処理装置は、暗号化されたパケットを読み込む入力手段と、前記入力手段により読み込まれた前記暗号化されたパケットを復号する復号手段と、前記入力手段により読み込まれた前記暗号化されたパケットが有する第1のヘッダ及び前記復号手段より出力されたデータを、指定されるメモリ領域に出力する出力手段と、前記復号手段より出力されたデータを用いて該パケットに係る第2のヘッダを生成する制御手段とを有し、前記出力手段は、前記第1のヘッダ及び前記復号手段より出力されたデータを前記メモリ領域に出力した後に、生成された前記第2のヘッダで前記メモリ領域の前記第1のヘッダを上書きすることを特徴とする。 An information processing apparatus according to the present invention includes input means for reading an encrypted packet, decryption means for decrypting the encrypted packet read by the input means, and the encrypted packet read by the input means. output means for outputting the first header of the received packet and the data output from the decoding means to a specified memory area; and a control means for generating a second header, wherein the output means generates the generated second header after outputting the data output from the first header and the decoding means to the memory area. to overwrite the first header in the memory area.
本発明によれば、暗号化されたパケットを復号して得られる情報でパケットのHeaderを上書きする処理時間を削減することができる。 According to the present invention, it is possible to reduce processing time for overwriting a header of a packet with information obtained by decrypting an encrypted packet.
以下、本発明の実施形態を図面に基づいて説明する。なお、以下に説明する実施形態はあくまで例示であり、本発明の範囲を限定する趣旨のものではない。 BEST MODE FOR CARRYING OUT THE INVENTION An embodiment of the present invention will be described below with reference to the drawings. It should be noted that the embodiments described below are merely examples, and are not intended to limit the scope of the present invention.
図1は、本発明の一実施形態における通信処理用の集積回路のシステム構成例を示すブロック図である。通信処理用の集積回路100は、CPU101、暗号復号処理部102、DRAMコントローラ103、通信処理部104、SRAM105、DRAM107、及びネットワークインタフェース部108を有する。
FIG. 1 is a block diagram showing a system configuration example of an integrated circuit for communication processing in one embodiment of the present invention. A communication processing integrated
CPU101、暗号復号処理部102、DRAMコントローラ103、通信処理部104、及びSRAM105は、システムバス106に接続され、システムバス106を介して相互にデータ転送を行う。DRAMコントローラ103は、DRAM107に対するデータの書き込みやデータの読み出しを行う。通信処理部104は、ネットワークインタフェース部108を介してインターネット等の通信ネットワークに接続され、外部機器との間でパケットの送受信等を行う。この構成は、System―On―A―Chip(SoC)とよばれる集積回路で代表的な構成である。
The
図2は、本実施形態における暗号復号処理部102の構成例を示すブロック図である。暗号復号処理部102は、データ入力部201、暗号処理部202、パディング処理部203、データ出力部204、及び全体制御部205を有する。暗号復号処理部102は、パケットに対する暗号化処理及び復号処理を行うことが可能な情報処理部であるが、以下では主に復号処理について説明する。
FIG. 2 is a block diagram showing a configuration example of the encryption/
暗号復号処理部102におけるレコードレイヤーパケットの典型的な復号処理の流れを説明する。以下の説明では、TLS(Transport Layer Security)1.3の規格に準拠したレコードレイヤーパケットを一例に説明するが、これに限定されるものではない。例えば、暗号化されたパケットを復号することでヘッダに格納すべき実際の情報が取得されるパケットを通信するシステムに対して本実施形態は適用可能である。
A typical decryption processing flow of a record layer packet in the encryption/
全体制御部205は、CPU101から、暗号処理か復号処理かを示すモードや、暗号処理やMAC処理で使用するアルゴリズムや、TLSのVersion情報や、入力データや出力データの転送アドレス等の設定値が設定される。TLS1.3の場合、Version情報は固定値“1.3”となる。全体制御部205は、CPU101から設定された各種設定値を、データ入力部201、暗号処理部202、パディング処理部203、及びデータ出力部204に転送する。その後、全体制御部205は、CPU101から処理の開始要求を受けて、各モジュールに対して処理の開始を指示する。
The
処理の開始指示を受けて、データ入力部201は、全体制御部205から指示された入力データの転送元アドレスが示すSRAM105又はDRAM107等のメモリ領域から、システムバス106を経由して暗号化されたレコードレイヤーパケットを読み込む。ここでは、データ入力部201は、暗号化されたTLS1.3のレコードレイヤーパケットを分割して読み込む。
In response to the instruction to start processing, the
図3は、TLS1.3のレコードレイヤーパケットのフォーマットを示す図である。レコードレイヤーパケットは、5バイトのHeader(310)、及び“CiphertextLength”バイトのCiphertextFragment(320)を有する。 FIG. 3 is a diagram showing the format of a TLS1.3 record layer packet. A record layer packet has a Header (310) of 5 bytes and a CiphertextFragment (320) of "CiphertextLength" bytes.
Header(310)は、1バイトのOpaqueType(311)、2バイトのLegacy Record Version(312)、及び2バイトのCiphertextLength(313)を有する。OpaqueType(311)は、実際のパケットの種別(Type)によらず、常に固定値“23”である。また、Legacy Record Version(312)は、実際のTLSバージョンによらず、常に固定値“3.1”である。CiphertextLength(313)は、CiphertextFragment(320)のサイズを示す。 Header (310) has 1-byte OpaqueType (311), 2-byte Legacy Record Version (312), and 2-byte CiphertextLength (313). OpaqueType (311) is always a fixed value "23" regardless of the actual packet type (Type). Also, Legacy Record Version (312) is always a fixed value "3.1" regardless of the actual TLS version. CiphertextLength (313) indicates the size of CiphertextFragment (320).
CiphertextFragment(320)は、暗号化された領域である。CiphertextFragment(320)は、“MSGLEN”バイトのContent(321)、及び1バイトのType(322)を有する。さらに、CiphertextFragment(320)は、“Cpadlength”バイトのPadding(323)、及び“MACLEN”バイトのMAC(324)を有する。 CiphertextFragment (320) is the encrypted area. CiphertextFragment (320) has Content (321) of "MSGLEN" bytes and Type (322) of 1 byte. In addition, CiphertextFragment (320) has Padding (323) of "Cpadlength" bytes and MAC (324) of "MACLEN" bytes.
Content(321)は、暗号化通信で転送される実データである。Type(322)は、転送されるレコードレイヤーパケットの種別を示し、パケットの種別に応じた非“0”の値をとる。Padding(323)は、固定値“0”で、(214-1)バイト以下の任意のランダムなサイズである。MAC(324)は、CiphertextFragment(320)のMAC(Message Authentication Code)値である。詳細には、MAC(324)は、Content(321)とType(322)とPadding(323)とに格納された暗号化前のデータを基に得られるMAC値である。 Content (321) is actual data transferred by encrypted communication. Type (322) indicates the type of record layer packet to be transferred, and takes a non-“0” value according to the packet type. Padding (323) is a fixed value “0” and an arbitrary random size of (2 14 −1) bytes or less. MAC (324) is the MAC (Message Authentication Code) value of CiphertextFragment (320). Specifically, MAC (324) is a MAC value obtained based on the data before encryption stored in Content (321), Type (322), and Padding (323).
データ入力部201は、任意の処理単位で、レコードレイヤーパケットを分割して受信する。データ入力部201は、まずレコードレイヤーパケットのHeaderを受信して、全体制御部205に送信する。その後、データ入力部201は、レコードレイヤーパケットのCiphertextFragmentを処理単位で分割して受信し、暗号処理部202に送信する。
The
全体制御部205は、データ入力部201から受信したHeaderをデータ出力部204に送信する。データ出力部204は、全体制御部205から受信したHeaderを、システムバス106を経由して、全体制御部205から指示された出力データの転送先アドレスが示すSRAM105又はDRAM107等のメモリ領域に出力する。
暗号処理部202は、データ入力部201から入力されたCiphertextFragmentの暗号処理や復号処理を行う。また、暗号処理部202は、MAC処理に係る演算等を行う。暗号処理、復号処理、及びMAC処理で使用するアルゴリズムは、全体制御部205により指定されたアルゴリズムを使用する。暗号処理部202は、復号されたCiphertextFragmentのうち、MACを除く復号データを、パディング処理部203に出力する。また、暗号処理部202は、復号されたMACと、MAC処理で生成されたMACとを比較することで改竄検知を行う。暗号処理部202は、MACエラーが発生したか否かを全体制御部205に通知する。
The
パディング処理部203は、暗号処理部202から入力される復号された分割データに対し、そのデータがContentであるか、Typeであるか、Paddingであるかの判断を行うとともに、“MSGLEN”を取得するためのカウントを行う。パディング処理部203においてContentと判断されたデータは、データ出力部204から、システムバス106を経由してSRAM105又はDRAM107等に出力される。また、パディング処理部203においてPaddingと判断されたデータは、不要なデータであるのでパディング処理部203で破棄される。また、パディング処理部203においてTypeと判断されたデータ及び“MSGLEN”は、全体制御部205に出力される。
The
全体制御部205は、Typeと判断されたデータ、“MSGLEN”の値、及びCPU101から設定されたTLSのVersion情報を基に、パケットのヘッダを再生成する。図4は、全体制御部205により再生成されるHeaderの例を示す図である。再生成されたHeader(410)は、パケットの実際の種別を示す1バイトのType(411)、CPU101から設定された2バイトの固定値“1.3”であるVersion(412)、及び2バイトのMSGLEN(413)を有する。
The
暗号処理部202におけるMAC処理の結果がMACエラーでなければ、再生成されたHeaderで元のHeaderを上書きするために、全体制御部205は、データ出力部204にデータ出力先のアドレスを元の出力データの転送先アドレスに再設定する。その後、全体制御部205は、再生成したHeaderをデータ出力部204に送信する。データ出力部204は、再設定された出力データの転送先アドレスに基づいて、再生成されたHeaderを先に出力したHeaderと同じ領域に出力し、Headerを再生成されたHeaderで上書きする。全体制御部205は、再生成されたHeaderをデータ出力部204がSRAM105又はDRAM107等に転送完了した後に、CPU101に処理完了を割り込みで通知する。
If the result of the MAC processing in the
図5は、本実施形態における暗号復号処理部102の動作を説明するフローチャートである。図5には、暗号復号処理部102の全体制御部205の動作例を示している。なお、図5に示す処理は、1パケットに係る処理である。
FIG. 5 is a flow chart for explaining the operation of the encryption/
ステップS501では、全体制御部205は、CPU101から、処理に必要な設定値を受信する。処理に必要な設定値には、前述したように暗号処理か復号処理かを示すモードや、暗号処理やMAC処理で使用するアルゴリズムや、TLSのVersion情報や、入力データや出力データの転送アドレス等が含まれる。
In step S<b>501 , the
ステップS501において設定値の受信が完了した後、ステップS502では、全体制御部205は、CPU101から設定された各種設定値を、データ入力部201、暗号処理部202、パディング処理部203、及びデータ出力部204に転送する。
After receiving the setting values in step S501, in step S502, the
次に、ステップS503では、全体制御部205は、CPU101から、処理の開始要求を受信する。続いて、ステップS504では、全体制御部205は、データ入力部201、暗号処理部202、パディング処理部203、及びデータ出力部204に、処理の開始を指示する。
Next, in step S<b>503 , the
次に、ステップS505では、全体制御部205は、データ入力部201が受信したレコードレイヤーパケットのHeaderを、データ入力部201から受信する。続いて、ステップS506では、全体制御部205は、データ入力部201から受信したHeaderをSRAM105又はDRAM107に転送するために、データ出力部204に送信する。
Next, in step S<b>505 , the
次に、ステップS507では、全体制御部205は、暗号化されたパケットを復号処理して得られた、Typeと判断されたデータと“MSGLEN”の値をパディング処理部203から受信する。続いて、ステップS508では、全体制御部205は、ステップS507において受信したTypeと判断されたデータ、“MSGLEN”の値、及びCPU101から設定されたVersion情報を基に、パケットのHeaderを再生成する。
Next, in step S507, the
次に、ステップS509では、全体制御部205は、CPU101からの設定に応じてHeader上書きモードであるか否かの判定を行う。ここで、Header上書きモードは、先に出力したHeaderを、再生成されたHeaderで上書きする処理を行うモードである。全体制御部205が、Header上書きモードであると判定した場合には(Yes)、処理はステップS510へ進み、Header上書きモードでないと判定した場合には(No)、処理はステップS514へ進む。
Next, in step S<b>509 , the
Header上書きモードであると全体制御部205が判定した場合に進むステップS510では、全体制御部205は、暗号処理部202でのMAC処理の結果がMACエラーであるか否かの判定を行う。全体制御部205が、MACエラーがないと判定した場合には(No)、処理はステップS511に進み、MACエラーと判断した場合には(Yes)、処理はステップS511をスキップしてステップS512へ進む。
In step S510 to which the
ステップS511では、全体制御部205は、先に出力された元のHeaderを再生成したHeaderで上書きするために、データ出力部204の転送先のアドレスを、出力データの転送先アドレス(開始アドレス)で再設定する。ステップS511の処理後、処理はステップS512へ進む。
In step S511, the
ステップS512では、全体制御部205は、再生成したHeaderをデータ出力部204に出力する。続いて、ステップS513では、全体制御部205は、データ出力部204が再生成されたHeaderの転送を完了するまで待つ。ステップS513において、再生成されたHeaderの転送が完了したと全体制御部205が判定した後、ステップS515では、全体制御部205は、CPU101に処理完了を割り込みで通知して処理を完了する。
In step S<b>512 , the
ステップS509においてHeader上書きモードでないと全体制御部205が判定した場合に進むステップS514では、全体制御部205は、再生成したHeaderを内部のレジスタに保持する。続いて、ステップS515では、全体制御部205は、CPU101に処理完了を割り込みで通知して処理を完了する。
In step S514, to which the
図6は、本実施形態におけるデータ出力部204の動作例を示すフローチャートである。なお、図6に示す処理は、1パケットに係るデータ出力部204での処理である。パケットに係る処理を開始する際、ステップS601では、データ出力部204は、転送先のメモリ領域を示すアドレス(Address)を、全体制御部205から指定された転送先アドレス(Start Address)で初期化する。ここで、指定された転送先アドレス(Start Address)で示されるメモリ領域は、SRAM105又はDRAM107の領域である。
FIG. 6 is a flow chart showing an operation example of the
次に、ステップS602では、データ出力部204は、全体制御部205から受信したHeaderを転送先アドレス(Start Address)が示すメモリ領域に転送する。このステップS602において転送されるHeaderは、データ入力部201が受信した復号処理される前のレコードレイヤーパケットのHeaderである。続いて、ステップS603では、データ出力部204は、転送先のアドレス(Address)をHeaderのサイズである5バイト分だけ加算する。
Next, in step S602, the
次に、ステップS604では、データ出力部204は、全データペイロードの処理が完了したか否かを判定する。全データペイロードの処理が完了したか否かは、全体制御部205より通知される。データ出力部204は、この全体制御部205からの通知に基づいて、全データペイロードの処理が完了したか否かを判定する。データ出力部204が、全データペイロードの処理が完了していないと判定した場合には(No)、処理はステップS605へ進み、全データペイロードの処理が完了したと判定した場合には(Yes)、処理はステップS608へ進む。
Next, in step S604, the
全データペイロードの処理が完了していないとデータ出力部204が判定した場合に進むステップS605では、データ出力部204は、パディング処理部203より単位データペイロードを受信する。続いて、ステップS606では、データ出力部204は、受信した単位データペイロードを転送先のアドレス(Address)が示すメモリ領域に転送する。
In step S<b>605 to which the
続いて、ステップS607では、データ出力部204は、転送先のアドレス(Address)に単位データペイロードのサイズのバイト数を加算する。その後、ステップS604に戻り、データ出力部204は、後続のデータペイロードがあるか否かの判定を再び行う。
Subsequently, in step S607, the
ステップS604において全データペイロードの処理が完了したとデータ出力部204が判定した場合に進むステップS608では、データ出力部204は、MACエラーが発生したか否かの判定を行う。MACエラーが発生したか否かは、暗号処理部202におけるMAC処理の結果を受けて、全体制御部205より通知される。データ出力部204は、この全体制御部205からの通知に基づいて、MACエラーが発生したか否かを判定する。データ出力部204が、MACエラーが発生していないと判定した場合には(No)、処理はステップS609へ進み、MACエラーが発生したと判定した場合には(Yes)、処理はステップS609をスキップしてステップS610へ進む。
In step S608, to which the
ステップS609では、データ出力部204は、転送先のアドレス(Address)を全体制御部205から指定された転送先アドレス(Start Address)で再度初期化する。続いて、ステップS610では、データ出力部204は、全体制御部205において再生成されたHeaderを転送先のアドレス(Address)が示すメモリ領域に転送する。これにより、先に出力されている元のレコードレイヤーパケットのHeaderを再生成後のHeaderで上書きすることができる。元のレコードレイヤーパケットのHeaderを再生成されたHeaderで上書きするか否かは、CPU101からの設定に応じて切り替えるようにしてもよい。例えば、その切り替え動作は、CPU101から設定される、パケットを暗号化する規格に基づいて切り替えてもよい。例えば、CPU101から設定されるTLSのVersion情報によってTLS1.3であるならば上書きを行い、それ以外であるならば上書きを行わないように切り替えてもよい。
In step S<b>609 , the
ステップS608においてMACエラーが発生したとデータ出力部204が判定した場合、ステップS610では、データ出力部204は、全体制御部205により再生成されたHeaderを転送先のアドレス(Address)が示すメモリ領域に転送する。これにより、再生成されたHeaderは、既に転送済みのデータペイロードに続くメモリ領域に転送される。MACエラーが発生した場合、パケットに対して何らかの改ざんが加えられた可能性もある。この場合には、再生成されたHeaderで元のHeaderを上書きしないことで、MACエラーの原因の解析に役立てることができる。本実施形態では、MACエラーが発生したとデータ出力部204が判定した場合、再生成されたHeaderを転送済みのデータペイロードに続くメモリ領域に転送しているが、別途CPU101から指定された所定のメモリ領域に転送するようにしてもよい。
If the
図7を参照して、本実施形態における暗号復号処理の処理サイクル数について説明する。図7(a)には、従来例による処理サイクル数の例を示しており、図7(b)には、本実施形態における処理サイクル数の例を示している。図7(a)及び図7(b)において、OHは受信した(復号処理される前の)レコードレイヤーパケットのHeaderを示し、D0~D3はContentを示し、P0、P1はパディングデータを示し、MHは再生成されたHeaderを示している。 The number of processing cycles for the encryption/decryption processing in this embodiment will be described with reference to FIG. FIG. 7A shows an example of the number of processing cycles according to the conventional example, and FIG. 7B shows an example of the number of processing cycles in this embodiment. In FIGS. 7(a) and 7(b), OH indicates the Header of the received record layer packet (before decoding processing), D0 to D3 indicate Content, P0 and P1 indicate padding data, MH indicates a regenerated Header.
図7(a)に示すように従来例では、t0でHeader(OH)を読み込み、t1で読み込んだOHを出力する。続いて、t1で入力データD0を読み込み、t2でデータD0の復号処理を行う。t1以降、入力データD0~D3、P0、P1を順次読み込んで復号処理を行う。全パケット処理がt7で完了すると、t8でHeader(MH)が再生成されてレジスタに格納され、t9で処理の完了がCPU101に割り込みINTで通知される。CPU101は、処理の完了の通知を受けて、レジスタに格納されている再生成されたHeader(MH)をOHの領域にメモリコピーする。この処理によって、無駄なメモリコピーが発生してしまう。
As shown in FIG. 7A, in the conventional example, the Header (OH) is read at t0, and the read OH is output at t1. Subsequently, the input data D0 is read at t1, and the data D0 is decoded at t2. After t1, the input data D0 to D3, P0 and P1 are sequentially read and decoded. When all packet processing is completed at t7, the Header (MH) is regenerated and stored in the register at t8, and the completion of processing is notified to the
それに対して、図7(b)に示すように、本実施形態では、全パケット処理がt7で完了した後、t8において再生成されたHeader(MH)がOHの領域に転送される。これによって、CPU101によるメモリコピーを削減することができる。通常、CPU101によるメモリコピーは、専用のハードウェアによるメモリコピーに対して時間がかかる。ハードウェアによって、再生成されたHeaderが自動でコピーされることで、本実施形態では、Headerの上書きに要する処理時間を削減することが可能である。また、再生成されたHeaderを格納するレジスタを設ける必要もないので、Headerの上書きに要するハードウェア資源を削減することもできる。
On the other hand, as shown in FIG. 7B, in this embodiment, after all packet processing is completed at t7, the regenerated Header (MH) is transferred to the OH area at t8. As a result, memory copying by the
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Another embodiment of the present invention)
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in the computer of the system or apparatus reads and executes the program. It can also be realized by processing to It can also be implemented by a circuit (for example, ASIC) that implements one or more functions.
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 It should be noted that the above-described embodiments are merely examples of specific implementations of the present invention, and the technical scope of the present invention should not be construed to be limited by these. That is, the present invention can be embodied in various forms without departing from its technical concept or main features.
100:CPU 102:暗号復号処理部 103:DRAMコントローラ 104:通信処理部 105:SRAM 106:システムバス 107:DRAM 108:ネットワークインタフェース 201:データ入力部 202:暗号処理部 203:パディング処理部 204:データ出力部 205:全体制御部 100: CPU 102: Encryption/decryption processing unit 103: DRAM controller 104: Communication processing unit 105: SRAM 106: System bus 107: DRAM 108: Network interface 201: Data input unit 202: Encryption processing unit 203: Padding processing unit 204: Data Output unit 205: overall control unit
Claims (10)
前記入力手段により読み込まれた前記暗号化されたパケットを復号する復号手段と、
前記入力手段により読み込まれた前記暗号化されたパケットが有する第1のヘッダ及び前記復号手段より出力されたデータを、指定されるメモリ領域に出力する出力手段と、
前記復号手段より出力されたデータを用いて該パケットに係る第2のヘッダを生成する制御手段とを有し、
前記出力手段は、前記第1のヘッダ及び前記復号手段より出力されたデータを前記メモリ領域に出力した後に、生成された前記第2のヘッダで前記メモリ領域の前記第1のヘッダを上書きすることを特徴とする情報処理装置。 input means for reading encrypted packets;
decryption means for decrypting the encrypted packet read by the input means;
output means for outputting the first header of the encrypted packet read by the input means and the data output from the decryption means to a designated memory area;
a control means for generating a second header related to the packet using the data output from the decoding means ;
The output means overwrites the first header in the memory area with the generated second header after outputting the first header and the data output from the decoding means to the memory area. An information processing device characterized by:
前記入力工程にて読み込まれた前記暗号化されたパケットを復号手段により復号する復号工程と、
前記入力工程にて読み込まれた前記暗号化されたパケットが有する第1のヘッダ及び前記復号手段より出力されたデータを、指定されるメモリ領域に出力する出力工程と、
前記復号手段より出力されたデータを用いて該パケットに係る第2のヘッダを生成する制御工程とを有し、
前記出力工程では、前記第1のヘッダ及び前記復号手段より出力されたデータを前記メモリ領域に出力した後に、生成された前記第2のヘッダで前記メモリ領域の前記第1のヘッダを上書きすることを特徴とする情報処理方法。 an input step of reading the encrypted packet;
a decryption step of decrypting the encrypted packet read in the input step by decryption means;
an output step of outputting the first header of the encrypted packet read in the input step and the data output from the decryption means to a designated memory area;
a control step of generating a second header related to the packet using the data output from the decoding means ;
In the output step, after outputting the first header and the data output from the decoding means to the memory area, overwriting the first header in the memory area with the generated second header. An information processing method characterized by:
前記入力ステップにて読み込まれた前記暗号化されたパケットを復号手段により復号する復号ステップと、
前記入力ステップにて読み込まれた前記暗号化されたパケットが有する第1のヘッダ及び前記復号手段より出力されたデータを、指定されるメモリ領域に出力する出力ステップと、
前記復号手段より出力されたデータを用いて該パケットに係る第2のヘッダを生成する制御ステップとをコンピュータに実行させ、
かつ前記出力ステップでは、前記第1のヘッダ及び前記復号手段より出力されたデータを前記メモリ領域に出力した後に、生成された前記第2のヘッダで前記メモリ領域の前記第1のヘッダを上書きする処理をコンピュータに実行させるためのプログラム。 an input step of reading the encrypted packet;
a decryption step of decrypting the encrypted packet read in the input step by decryption means;
an output step of outputting the first header of the encrypted packet read in the input step and the data output from the decryption means to a designated memory area;
causing a computer to execute a control step of generating a second header related to the packet using the data output from the decoding means ;
and in the output step, after outputting the first header and the data output from the decoding means to the memory area, the generated second header overwrites the first header in the memory area. A program that causes a computer to execute a process.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019077125A JP7289709B2 (en) | 2019-04-15 | 2019-04-15 | Information processing device, information processing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019077125A JP7289709B2 (en) | 2019-04-15 | 2019-04-15 | Information processing device, information processing method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020178169A JP2020178169A (en) | 2020-10-29 |
JP7289709B2 true JP7289709B2 (en) | 2023-06-12 |
Family
ID=72936317
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019077125A Active JP7289709B2 (en) | 2019-04-15 | 2019-04-15 | Information processing device, information processing method and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7289709B2 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064137A1 (en) | 2008-09-05 | 2010-03-11 | Cisco Technology, Inc. | Inspection and rewriting of cryptographically protected data from group VPNs |
JP2013143641A (en) | 2012-01-10 | 2013-07-22 | Ricoh Co Ltd | Network communication device |
JP2018007200A (en) | 2016-07-08 | 2018-01-11 | パナソニックIpマネジメント株式会社 | Content decryption device, content decryption method, receiver, and program |
JP2018182400A (en) | 2017-04-04 | 2018-11-15 | キヤノン株式会社 | Information processing device, information processing method and computer program |
-
2019
- 2019-04-15 JP JP2019077125A patent/JP7289709B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100064137A1 (en) | 2008-09-05 | 2010-03-11 | Cisco Technology, Inc. | Inspection and rewriting of cryptographically protected data from group VPNs |
JP2013143641A (en) | 2012-01-10 | 2013-07-22 | Ricoh Co Ltd | Network communication device |
JP2018007200A (en) | 2016-07-08 | 2018-01-11 | パナソニックIpマネジメント株式会社 | Content decryption device, content decryption method, receiver, and program |
JP2018182400A (en) | 2017-04-04 | 2018-11-15 | キヤノン株式会社 | Information processing device, information processing method and computer program |
Also Published As
Publication number | Publication date |
---|---|
JP2020178169A (en) | 2020-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7392399B2 (en) | Methods and systems for efficiently integrating a cryptographic co-processor | |
US10135739B2 (en) | Network-based computational accelerator | |
US7885405B1 (en) | Multi-gigabit per second concurrent encryption in block cipher modes | |
JP5074558B2 (en) | Network processing using IPSec | |
US7941662B2 (en) | Data transfer efficiency in a cryptography accelerator system | |
US7961882B2 (en) | Methods and apparatus for initialization vector pressing | |
JP2018529271A (en) | Key generation method and apparatus using double encryption | |
US11658803B2 (en) | Method and apparatus for decrypting and authenticating a data record | |
JP6600241B2 (en) | Arithmetic apparatus, arithmetic method, and communication apparatus | |
US20210216665A1 (en) | Memory-efficient hardware cryptographic engine | |
US11722467B2 (en) | Secured communication from within non-volatile memory device | |
KR100560658B1 (en) | Apparatus and method for high performance offset codebook mode with block-level operation | |
US6980649B1 (en) | Hardware-based encryption/decryption employing dual ported memory and fast table initialization | |
US7603549B1 (en) | Network security protocol processor and method thereof | |
JP7289709B2 (en) | Information processing device, information processing method and program | |
JP4408648B2 (en) | Encryption / authentication processing apparatus, data communication apparatus, and encryption / authentication processing method | |
JP2010011122A (en) | Encrypted packet processing system | |
JP2006041684A (en) | Encryption processing apparatus and encryption processing method | |
JP6818618B2 (en) | Information processing equipment, information processing methods and computer programs | |
KR101653956B1 (en) | Method for monitoring encoded traffic and apparatus using the same | |
JP2010057123A (en) | Encryption processing device, encryption processing method and program | |
JP2018205505A (en) | Encryption processing device and control method thereof | |
JP2019145889A (en) | Switching hub and control communication network system | |
JP2010268293A (en) | Communications apparatus and communication processing method | |
CN118138275A (en) | Remote direct memory access method, device, equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220411 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230403 |
|
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: 20230502 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230531 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7289709 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |