JP2005167870A - Method and apparatus for processing data - Google Patents
Method and apparatus for processing data Download PDFInfo
- Publication number
- JP2005167870A JP2005167870A JP2003406900A JP2003406900A JP2005167870A JP 2005167870 A JP2005167870 A JP 2005167870A JP 2003406900 A JP2003406900 A JP 2003406900A JP 2003406900 A JP2003406900 A JP 2003406900A JP 2005167870 A JP2005167870 A JP 2005167870A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- data
- unit
- engine unit
- main system
- 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
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
Description
本発明は、ハードウェアで構成されたエンジン部において、メインシステムから転送された処理対象データに対して所定の処理を行ない、処理済みデータをメインシステムに転送するデータ処理方法およびデータ処理装置に関する。たとえば、通信プロトコルにおける、暗号化処理や復号化処理あるいは認証処理といったセキュリティ処理や通信プロトコル階層におけるチェックサム処理を行なう技術に関する。 The present invention relates to a data processing method and a data processing apparatus that perform predetermined processing on processing target data transferred from a main system and transfer processed data to the main system in an engine unit configured by hardware. For example, the present invention relates to a technique for performing security processing such as encryption processing, decryption processing, or authentication processing in a communication protocol and checksum processing in a communication protocol layer.
近年、計算機や通信技術の分野では、データを暗号化してデータ配布し、配布されたデータを復号化することで、配布されたデータ内容を得る情報の秘匿技術(機密保護技術/セキュリティ技術)が知られている。たとえば、ネットワークを用いたデータ通信では、データの機密性や完全性を確保するため、暗号化や復号化(纏めて秘匿化もしくは機密化ともいう)や、データの改竄に対する保護のためのデータ認証技術が用いられており、送信データを暗号化して送信し、受信データを復号化して受信内容を得るようにしている。 In recent years, in the field of computers and communication technology, there is an information concealment technology (security technology / security technology) that obtains distributed data content by encrypting data and distributing the data and decrypting the distributed data. Are known. For example, in data communication using a network, data authentication for protection against data tampering, encryption and decryption (collectively referred to as concealment or confidentiality) and data tampering to ensure data confidentiality and integrity. Technology is used, and transmission data is encrypted and transmitted, and reception data is decrypted to obtain reception contents.
また、この秘匿技術と併用して、暗号ペイロード部分や他の部分のデータの同一性を確認するための認証(完全性保証)を行なう認証技術も知られている。また、通信プロトコルによっては、プロトコルレイヤの階層に付加される、宛先や何のデータであるかなどの情報を書き込んだヘッダ(Header)も含めたデータの同一性を確認するためのチェックサム計算処理を行なうこともある。 In addition, an authentication technique for performing authentication (integrity guarantee) for confirming the identity of the data in the encrypted payload part and other parts is also known in combination with this secret technique. In addition, depending on the communication protocol, checksum calculation processing is performed to confirm the identity of data including headers (Headers) that include information such as destination and what data is added to the protocol layer hierarchy. May be performed.
以下、完全性保証を行なう認証処理とヘッダ及びデータの同一性を確認するチェックサム処理とを纏めて同一性確認処理ともいう。また、秘匿技術(セキュリティ技術)と同一性確認技術とを纏めて、情報セキュリティ技術ともいう。なお、暗号化または復号化あるいは認証といったセキュリティ技術(狭義のセキュリティ技術)と、ヘッダ及びデータの同一性を確認するチェックサム処理を含む情報セキュリティ技術(広義のセキュリティ技術)は、何れもデータの改竄に対する対応処理である点で共通するものである。 Hereinafter, the authentication process for ensuring the integrity and the checksum process for checking the identity of the header and the data are collectively referred to as an identity confirmation process. Further, the secret technology (security technology) and the identity confirmation technology are collectively referred to as information security technology. Note that both security technology (encryption security technology) such as encryption, decryption, or authentication and information security technology (broad security technology) including checksum processing for confirming the identity of the header and data are data tampering. This is common in that it is a corresponding process.
ここで、この種の情報セキュリティ技術では、従来、暗号化処理や復号化処理といった秘匿処理や、認証コードの作成や削除といった認証処理やヘッダおよびデータの同一性を確認するチェックサム処理を、ソフトウェアで行なう仕組みが採られていた。このソフトウェアで行なう仕組みは、並列処理や連続処理に柔軟に対処し得るものの、その処理が複雑になるに連れ、処理時間が長くなるため、処理速度の低下が問題となる。 Here, in this type of information security technology, conventionally, confidential processing such as encryption processing and decryption processing, authentication processing such as creation and deletion of an authentication code, and checksum processing for confirming the identity of the header and data are performed by software. The mechanism to do in was adopted. Although the mechanism performed by this software can flexibly cope with parallel processing and continuous processing, the processing time becomes longer as the processing becomes complicated, so that a reduction in processing speed becomes a problem.
この問題を改善する一手法として、たとえば特許文献1〜3に提案されているように、セキュリティ処理(秘匿処理や認証処理)を、ハードウェア処理回路で行なうことで高速化を図ったアクセラレータシステムの仕組みが考えられている。このアクセラレータシステムは、処理が複雑であっても、処理速度の低下を防ぐことができ、高いスループットを得ることができる。
As a technique for improving this problem, as proposed in, for example,
ここで、アクセラレータシステムでは、1つのデータに対してブロック暗号・認証の並列処理を行なう場合に、そのデータを暗号処理部、認証処理部それぞれに並列に転送して処理する。また、1つのデータに対してブロック暗号・認証の連続処理を行なう場合、先ずはデータを暗号処理部で処理し、その後、認証処理部に転送する。 Here, in the accelerator system, when parallel processing of block encryption / authentication is performed on one piece of data, the data is transferred in parallel to the encryption processing unit and the authentication processing unit for processing. In addition, when performing block cipher / authentication continuous processing on one piece of data, the data is first processed by the encryption processing unit and then transferred to the authentication processing unit.
ネットワークプロトコルとしては、たとえばIPSec(Internet Protocol Security)、またはSSL(Secure Sockets Layer)やSSLをベースに改良されたTLS(Transport Layer Security)(以下纏めてSSL/TLSとも記す)、またはTCP(Transmission Control Protocol )やUDP(User Datagram Protocol)(以下纏めてTCP/UDPとも記す)、あるいはIPv4(Internet Protocol Version4)やIPv6(Internet Protocol Version6)などがある。 As a network protocol, for example, IPSec (Internet Protocol Security), SSL (Secure Sockets Layer) or TLS (Transport Layer Security) improved based on SSL (hereinafter also referred to as SSL / TLS), or TCP (Transmission Control) Protocol) and UDP (User Datagram Protocol) (hereinafter collectively referred to as TCP / UDP), IPv4 (Internet Protocol Version 4), IPv6 (Internet Protocol Version 6), and the like.
一方、一連の処理を階層構造で考えて取り扱う概念がある。たとえば、ネットワークプロトコルにおいては、OSI(Open Systems Interconnection)の基本参照モデルやこれに対応した通信プロトコルモデルのように、プロトコルの階層構造の概念が導入されている。なお、OSI基本参照モデルや通信プロトコルモデルにおける1つのプロトコル階層内では、さらに複数の処理階層が含まれる場合もある。 On the other hand, there is a concept of handling a series of processes by considering them in a hierarchical structure. For example, in the network protocol, the concept of the hierarchical structure of the protocol is introduced like a basic reference model of OSI (Open Systems Interconnection) and a communication protocol model corresponding thereto. Note that a plurality of processing layers may be included in one protocol layer in the OSI basic reference model or the communication protocol model.
処理対象データに対する各々の処理を階層化した階層モデルで表し、処理階層ごとに独立して所定の処理を順次行なうことで一連の処理を実行する場合、たとえば通信処理時のデータの流れは、送信側では上位のプロトコル階層から下位のプロトコル階層に、また受信側では下位のプロトコル階層から上位のプロトコル階層に流れる。また、送信側の各プロトコル階層では、通信の制御に必要なデータをヘッダとして付加し、受信側では、そのヘッダを順に解釈していくことで通信を行なう。また、アプリケーションによっては、複数の処理対象データに対して並列処理させる場合もある。 In the case of executing a series of processes by sequentially performing a predetermined process independently for each processing hierarchy, for example, the flow of data at the time of communication processing is transmitted. From the upper protocol layer to the lower protocol layer, the receiving side flows from the lower protocol layer to the upper protocol layer. Further, in each protocol layer on the transmission side, data necessary for communication control is added as a header, and on the reception side, communication is performed by sequentially interpreting the header. Depending on the application, a plurality of pieces of processing target data may be processed in parallel.
処理階層モデルで表される一連の処理の一部を、単一デバイスで構成されたアクセラレータを使用して実行する場合、メインメモリ(主記憶部)に保持されている処理対象データをアクセラレータシステムに渡し、装置全体を制御するCPUやデータを記憶するメインメモリを含むメインシステム側からアクセラレータシステムに処理を移行させ、アクセラレータシステムにおいて処理が完了した段階で、処理済みデータをメインシステム側に渡す(戻す)。アプリケーションから複数の処理要求がほぼ同時期に発生した場合は、その複数の処理要求とそれに対応した処理対象データをアクセラレータシステムに渡すことになる。 When executing a part of a series of processes represented by the processing hierarchy model using an accelerator configured with a single device, the processing target data stored in the main memory (main memory) is stored in the accelerator system. The processing is transferred from the main system side including the CPU for controlling the entire apparatus and the main memory for storing data to the accelerator system, and when the processing is completed in the accelerator system, the processed data is transferred (returned) to the main system side. ). When a plurality of processing requests are generated from the application almost at the same time, the plurality of processing requests and the corresponding processing target data are passed to the accelerator system.
ここで、単一のアクセラレータが複数の処理要求をほぼ同時期に受け取った場合、1つのデータを処理している間、他の処理は待たされることになる。処理中のデータサイズが大きければその他の処理の待ち時間も大きくなる。この結果、本来であれば間隔を空けずに送信したいデータが、他の処理のデータサイズが大きければそれだけ処理に時間が掛かり、間隔が空き、データの送受信にゆらぎが発生してしまう問題が生じる。 Here, if a single accelerator receives a plurality of processing requests almost at the same time, the other processing is kept waiting while processing one data. If the data size during processing is large, the waiting time for other processing also increases. As a result, there is a problem in that data that is originally intended to be transmitted without a gap is longer if the data size of other processes is large, the process takes time, and there is a gap in the data transmission / reception. .
図19は、従来技術における、この問題点を説明する図である。図19では、処理要求はほぼ同時に発せられているものの、チェックサム計算→復号化→暗号化→認証処理の順で処理要求がアクセラレータドライバに届いている。このため、アクセラレータドライバが処理要求の到着順に処理する場合、先に到着した処理要求に対するデータ処理が終わるまでは、後で到着した処理要求に対するデータ処理については実行できず、長い時間待たされることになる。 FIG. 19 is a diagram for explaining this problem in the prior art. In FIG. 19, although the processing requests are issued almost simultaneously, the processing requests arrive at the accelerator driver in the order of checksum calculation → decryption → encryption → authentication processing. For this reason, when the accelerator driver processes the processing requests in the order of arrival, the data processing for the processing request that arrives later cannot be executed until the data processing for the processing request that has arrived earlier is completed, and it will wait for a long time. Become.
たとえば、チェックサム計算が完了するまでは、復号化、暗号化、および認証の各処理は待たされてしまう。また、この後に復号化を行なうと、復号化処理が完了するまでは、暗号化および認証の各処理は待たされてしまう。この結果、通信時に伝送のゆらぎが発生することになる。これは、たとえば、リアルタイムにストリームデータを送受信しなければならない通信システムにおいては問題となる。 For example, the decryption, encryption, and authentication processes are kept waiting until the checksum calculation is completed. If decryption is performed thereafter, the encryption and authentication processes are kept waiting until the decryption process is completed. As a result, transmission fluctuations occur during communication. This is a problem in a communication system that must transmit and receive stream data in real time, for example.
本発明は、上記事情に鑑みてなされたものであり、複数の処理要求がほぼ同時に発生した場合においても、効率的な処理をアクセラレータにて行なうことができる技術を提供することを目的とする。 The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a technique capable of performing efficient processing with an accelerator even when a plurality of processing requests are generated almost simultaneously.
本発明に係るデータ処理方法は、メインシステムからハードウェアで構成されたエンジン部に処理対象データを転送して所定の処理を行ない、処理済みデータをメインシステムに転送するデータ処理方法であって、エンジン部が担当するそれぞれ異なる処理内容の複数の処理について、先ず、複数の処理の各々で処理対象とされる処理対象データを所定サイズに分割し、処理内容に関する所定の基準に基づいて、分割された各分割データのエンジン部への転送順序を決定することとした。そして、この決定された転送順序に従って、各分割データをエンジン部へ順次転送し、エンジン部において、メインシステムから転送された分割データの処理内容に応じた処理を順次実行し、処理済みデータをメインシステムに転送することとした。こうすることで、複数の処理からなる一連の処理を完結する。 A data processing method according to the present invention is a data processing method for transferring processing target data to an engine unit configured by hardware from a main system, performing predetermined processing, and transferring processed data to the main system, For a plurality of processes with different processing contents handled by the engine unit, first, the processing target data to be processed in each of the plurality of processes is divided into a predetermined size and divided based on a predetermined criterion regarding the processing contents. In addition, the transfer order of each divided data to the engine unit is determined. Then, according to the determined transfer order, each divided data is sequentially transferred to the engine unit, and the engine unit sequentially executes processing according to the processing content of the divided data transferred from the main system, and the processed data is transferred to the main unit. We decided to transfer it to the system. In this way, a series of processes consisting of a plurality of processes is completed.
また、本発明に係るデータ処理装置は、上記本発明に係るデータ処理方法を実施するのに好適な装置であって、メインシステムに、複数の処理の各々で処理対象とされる処理対象データを所定サイズに分割し、所定の基準に基づいて、分割された各分割データのエンジン部への転送順序を決定する処理手順制御部を設けることとした。 A data processing apparatus according to the present invention is a suitable apparatus for carrying out the data processing method according to the present invention, and processing target data to be processed in each of a plurality of processes is stored in the main system. A processing procedure control unit that divides the data into a predetermined size and determines the transfer order of the divided data to the engine unit based on a predetermined standard is provided.
処理手順制御部により決定された転送順序で実際に分割データをエンジン部に転送する際には、メインシステム側がマスターとなってもよいし、あるいはDMA転送のように、エンジン部がマスターとなってもよい。また、ディスクリプタキューを利用した先入れ先出し法を利用するとよい。 When the divided data is actually transferred to the engine unit in the transfer order determined by the processing procedure control unit, the main system side may become the master, or the engine unit becomes the master as in DMA transfer. Also good. In addition, a first-in first-out method using a descriptor queue may be used.
また従属項に記載された発明は、本発明に係るデータ処理方法およびデータ処理装置のさらなる有利な具体例を規定する。 The invention described in the dependent claims defines further advantageous specific examples of the data processing method and the data processing apparatus according to the present invention.
たとえば、処理内容に関する所定の基準や分割サイズを、メインシステムが適用するアプリケーションに応じて決定するようにするとよい。こうすることで、アプリケーションに適合するように処理特性を制御することができる。 For example, it is preferable to determine a predetermined standard or division size related to the processing contents according to the application applied by the main system. In this way, the processing characteristics can be controlled so as to suit the application.
また、エンジン部は、それぞれ異なる処理内容として、通信プロトコルにおける、暗号化処理、復号化処理、あるいは認証処理などのセキュリティ処理を行なうセキュリティ処理部、あるいはチェックサム処理を行なうチェックサム処理部をそれぞれ独立したハードウェア回路として有しているものであるのがよい。 In addition, the engine unit has, as different processing contents, a security processing unit that performs security processing such as encryption processing, decryption processing, or authentication processing in a communication protocol, or a checksum processing unit that performs checksum processing. It is preferable to have a hardware circuit.
勿論、メインシステムとエンジン部との間で協調処理を行なう場合に、独立した複数の処理の一部の処理をハードウェアで構成されたエンジン部で行なうシステム構成であればよく、エンジン部が行なう処理内容は、通信プロトコルに関わる処理に限定されるものではない。 Of course, in the case of performing cooperative processing between the main system and the engine unit, any system configuration in which a part of a plurality of independent processes is performed by an engine unit configured by hardware may be used. The processing content is not limited to the processing related to the communication protocol.
なお、メインシステム側の処理手順制御部に関しては、電子計算機(コンピュータ)を用いてソフトウェアで実現することもでき、このためのプログラムやこのプログラムを格納した記録媒体を発明として抽出することも可能である。プログラムは、コンピュータ読取り可能な記憶媒体に格納されて提供されてもよいし、有線あるいは無線による通信手段を介して配信されてもよい。 The processing procedure control unit on the main system side can be realized by software using an electronic computer (computer), and a program for this purpose and a recording medium storing this program can be extracted as an invention. is there. The program may be provided by being stored in a computer-readable storage medium, or may be distributed via wired or wireless communication means.
本発明に依れば、複数の処理要求がほぼ同時に発生した場合に、複数の処理の各々で処理対象とされる処理対象データを所定サイズで分割するとともに、所定の基準に従った転送順序で分割データを順次エンジン部に転送して処理を実行するようにした。 According to the present invention, when a plurality of processing requests are generated almost simultaneously, the processing target data to be processed in each of the plurality of processing is divided by a predetermined size, and in a transfer order according to a predetermined standard. The divided data is sequentially transferred to the engine unit to execute processing.
このため、エンジン部においては、順次転送される各処理要求に応じた分割データに対して所要の処理を順次実行することができ、実質的に、複数の処理要求に対して並行処理を行なうことができる。この結果、複数の処理要求に対してほぼ同時期に処理でき、処理要求が待たされることや、通信時の伝送ゆらぎを低減させることや、通信帯域の保証が可能になる。 For this reason, the engine unit can sequentially execute the required processing on the divided data corresponding to each processing request transferred sequentially, and substantially performs parallel processing on a plurality of processing requests. Can do. As a result, it is possible to process a plurality of processing requests almost simultaneously, waiting for the processing requests, reducing transmission fluctuations during communication, and guaranteeing the communication band.
以下、図面を参照して本発明の実施形態について詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
<装置構成>
図1は、本発明に係るデータ処理装置の一実施形態を備えたコンピュータ装置の構成を示したブロック図である。
<Device configuration>
FIG. 1 is a block diagram showing a configuration of a computer apparatus including an embodiment of a data processing apparatus according to the present invention.
図示するように、コンピュータ装置1は、メインシステム100と、ハードウェアで構成された処理回路部分であるエンジン部200と、周辺デバイス300とを備えて構成されている。
As shown in the figure, the
メインシステム100は、コンピュータ装置1全体の動作制御やそのほかの演算や制御の各処理機能をなすCPU(Central Processing Unit )やMPU(Micro Processing Unit )などの中央演算制御処理部110と、不揮発性の記憶部の一例であるROM(Read Only Memory)122および書換可能な記憶部の一例でありメインメモリとして機能するRAM(Random Access Memory)124を有するメモリ部120とを備える。
The
またメインシステム100は、種々の周辺デバイス300やイントラネットあるいはインターネットなどの通信網との間のインタフェース(Inter Face)機能をなすインタフェース部150と、記録媒体400からデータを読み出したり書き込んだりするドライブ機能とインタフェース機能とを持つメディアIF部170と、各部を互いに接続するアドレスバスおよびデータバスを含む内部バス180とを備えている。処理データや制御データは、内部バス180を通じてコンピュータ装置1の各ハードウェア間をやり取りされる。
The
ROM122は、内部に、中央演算制御処理部110のCPUなどが各種処理を行なうための制御プログラムが格納されるプログラム記憶領域や、中央演算制御処理部110が各種処理を行なうために必要とするそのほかのデータ記憶領域を有する。さらに、プログラム記憶領域は、BIOS(Basic Input/Output System )やOS(Operating Systems ;基本ソフト)やGUI(Graphical User Interface)処理などのプログラムをも格納している。中央演算制御処理部110は、BIOSやOSやGUI処理を利用しつつ、ROM122内のプログラムを実行することによって、各種の処理を行なう各部の機能を実現する。
The
RAM124は、中央演算制御処理部110が各種処理を実行する際のワークメモリとして用いられる作業領域であって、外部から取り込んだデータを格納するデータ記憶領域、あるいはそのほかの処理対象データを格納する領域を含んでいる。
The
周辺デバイス300としては、CRT(Cathode Ray Tube;陰極線管)やLCD(Liquid Crystal Display;液晶)などの表示デバイスを有するディスプレイ部302、コンピュータ装置1を操作するためのタッチパネル304aや操作キー(たとえば押圧式のボタン)を持つキーボード304bやマウス304cなどの操作部304、処理結果を紙媒体などに印刷出力するためのプリンタ部306、画像を取り込むためのスキャナ部308、および記憶媒体の一例である外付けのハードディスク装置310を有する。周辺デバイス300は、それぞれに応じたIF(インタフェース)部151,152,154,156,158を介して内部バス180に接続されるようになっている。
The
記録媒体400は、コンピュータ装置1のハードウェア資源に備えられている読取装置に対して、プログラムの記述内容に応じて、磁気、光、電気などのエネルギの変化状態を引き起こして、および対応する信号の形式で、読取装置にプログラムの記述内容を伝達できるものである。
The
たとえば、コンピュータ装置1に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM122やハードディスク装置174、あるいは外付けのハードディスク装置310(404)などで構成されてもよい。あるいは、コンピュータ装置1とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている、ICカードやミニチュアカードなどの種々の方式の半導体メモリカードのようなフラッシュメモリなどの不揮発性の半導体メモリを用いた記録メディア402、磁気ディスク(フレキシブルディスク(FD)406を含む)、光ディスク(CD−ROM(Compact Disc-Read Only Memory )、DVD(Digital Versatile Disc)を含む)408、光磁気ディスク(MD(Mini Disc )を含む)などのパッケージメディア(可搬型の記憶媒体)により構成されてもよい。
For example, the program may be configured by a
上記構成によって、コンピュータ装置1は、それぞれ専用のハードウェアによりなされる処理機能を、その機能を実現するプログラムコードに基づきソフトウェア的に実現することができるようになっている。
With the above-described configuration, the
コンピュータ装置1に組み込まれるソフトウェアとしては、たとえば、複写アプリケーション、プリンタアプリケーション、ファクシミリ(FAX)アプリケーションあるいは他のアプリケーション用の処理プログラムなど、従来の各種装置におけるものと同様のものが組み込まれる。また、装置が、スキャナ部308で読み取った画像を処理したり、Webサイトへのアクセス要求に対してネットワークIF部158を介して外部とのデータを送受信したりするためのアクセス制御処理あるいは認証処理のためのプログラムも組み込まれる。
The software incorporated in the
たとえば、本発明に係るデータ処理を実施するためのハードウェア処理回路を制御する機能部分を、電子計算機(コンピュータ)を用いてソフトウェアで実現するために好適なプログラムあるいはこのプログラムを格納したコンピュータ読取可能な記憶媒体を発明として抽出することもできる。ソフトウェアにより実行させる仕組みとすることで、ハードウェアの変更を伴うことなく、処理手順などを容易に変更できる利点を享受できるようになる。 For example, a program suitable for realizing a functional part that controls a hardware processing circuit for performing data processing according to the present invention by software using an electronic computer (computer) or a computer-readable computer storing this program New storage media can also be extracted as an invention. By adopting a mechanism that is executed by software, it is possible to enjoy the advantage that the processing procedure and the like can be easily changed without changing hardware.
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ(組込マイコンなど)、あるいは、CPUやMPU、論理回路、記憶装置などの機能を1つのチップ上に搭載して所望のシステムを実現するSOC(System On a Chip:システムオンチップ)、または、各種プログラムをインストールすることで各種の機能を実行することが可能な汎用のパーソナルコンピュータなどに、記録媒体400からインストールされる。または、ソフトウェアを構成するプログラムが、ネットワークIF部158および有線あるいは無線などの通信網を介して提供されてもよい。
When a series of processing is executed by software, a program constituting the software is a computer (such as an embedded microcomputer) incorporated in dedicated hardware, or a CPU, MPU, logic circuit, storage device, etc. System on a chip (SOC) that implements a desired system by mounting functions on a single chip, or general-purpose personal that can execute various functions by installing various programs It is installed from the
たとえば、Webサーバへのアクセス制御処理や認証処理を行なう機能を実現するソフトウェアのプログラムコードを記録した記憶媒体400を、コンピュータ装置1に供給し、コンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、ハードウェアにて構成する場合と同様の効果は達成される。
For example, a
なお、記録媒体400から読み出されたプログラムコード自体がアクセス制御処理や認証処理の機能を実現することでもよいし、そのプログラムコードの指示に基づきコンピュータ上で稼働しているOSなどが実際の処理の一部または全部を行なうものであってもよい。また、一括のプログラムファイルとして提供されることに限らず、コンピュータで構成されるシステムのハードウェア構成に応じて、個別のプログラムモジュールとして提供されてもよい。
Note that the program code itself read from the
ここで、本実施形態のコンピュータ装置1においては、種々の制御処理機能をなす全ての処理をソフトウェアで行なうのではなく、これら機能部分の一部をハードウェアにて行なうための処理回路として、エンジン部200が設けられている。ハードウェアにて処理を行なうことで、ソフトウェア処理よりも処理の高速化を図ることができる。
Here, in the
具体的には、本実施形態のエンジン部200は、クリプトエンジン(Crypto Engine ;暗号エンジン)として機能するように構成されており、暗号化処理や復号化処理といった秘匿処理や認証処理やチェックサム処理を行なうデータ処理部240と、データ処理部240用の処理対象データをデータ処理部240に渡し処理済みのデータをメインシステム100に返す制御部260とを有している。データ処理部240と制御部260は、それぞれの処理を行なうための図示しない小容量のワークメモリ(レジスタ)を持つ。このクリプトエンジンとして機能するエンジン部200は、単一のハードウェアデバイスによって構成されるのがよい。
Specifically, the
これにより、コンピュータ装置1は、エンジン部200が、CPUなどを有する中央演算制御処理部110と、ROM122およびRAM124を有するメモリ部120とに接続されて構成されることで、本発明に係るデータ処理装置3が構成される。
Thus, the
データ処理装置3は、内部バス180並びにネットワークIF部158を介して、イントラネットやインターネットなどの通信網に接続され、他装置との間でデータの送受信を行なう。この際、通信データに対しては、所定のプロトコルに従って、たとえば、ハッシュ関数を利用した認証処理、共通鍵方式や公開鍵方式を利用した秘匿処理、あるいはチェックサム処理などがなされる。
The
データ処理装置3において、メインシステム100の中央演算制御処理部110は、本実施形態特有の機能部(ソフトウェアで構成される)として、データ解析部113と処理手順制御部115とを有するアクセラレータドライバ117を備えている。
In the
データ解析部113は、秘匿処理や認証処理やチェックサム処理などのデータ処理部240が処理を担当する複数の処理要求において、各処理要求の処理対象データ中に並行した処理を行なう部分が存在するか否かを判定する。
The
処理手順制御部115は、データ解析部113が並行した処理を行なう部分が存在すると判定したことを条件として、データ処理部240における複数の処理要求の処理手順を示す処理手順情報と、データ処理部240が取り扱う処理対象データの格納場所を示すデータ格納場所情報とを対応付けて所定のメモリの所定の記憶領域(データプール)に格納する。
The processing
また、処理手順制御部115は、エンジン部200が処理待ちになったときに、データプールに格納しておいた種々の情報を、エンジン部200に順次転送し、エンジン部200を起動する。
In addition, when the
ハードウェアで構成されるエンジン部200は、処理手順制御部115からの起動指示を受けたことを条件として、所定のデータプールに記憶されている処理手順情報とデータ格納場所情報に従って、要求された処理を順次行ない、処理済みのデータをメインシステム100に返す。
The
たとえば、中央制御部110の主要部をなすCPUは、予めROM122やハードディスク装置174内に格納されている制御プログラムに基づいて必要なGUI画面をディスプレイ部302に順次表示させるとともに、制御プログラムおよびタッチパネル304aを介して与えられるユーザ入力に基づいて、図示しないクライアント装置やWebサーバなどにアクセスして、ユーザの希望するコンテンツ(ここでは出力対象画像)をダウンロードし、プリンタ部306にて印刷出力させる。
For example, the CPU that forms the main part of the
この際、中央演算制御処理部110のCPUは、そのユーザがアカウントを所持している認証サーバに問い合わせることでユーザ認証を行なってから、そのユーザにコンピュータ装置1の使用を許可し、さらにWebサーバへのアクセスも制御する。これにより、ユーザは、そのアカウントを利用して、コンピュータ装置1の使用やWebサーバへのアクセスが可能となる。
At this time, the CPU of the central processing
次に、本発明に係るデータ処理装置3がなすデータ処理について詳しく説明する。
Next, data processing performed by the
<データ処理装置に対する処理手順の制御手法を実現する構成>
図2〜図4は、データ処理装置3を用いてデータ処理を行なうに当たってのデータ処理装置に対する処理手順制御機能を実現するためのシステムアーキテクチャの構成例を説明する図である。
<Configuration that realizes processing procedure control method for data processing apparatus>
2 to 4 are diagrams illustrating an example of a configuration of a system architecture for realizing a processing procedure control function for a data processing device when data processing is performed using the
メインシステム100は、データ処理装置3が行なう秘匿処理や認証処理を担当する複数の処理要求において各処理要求の処理対象データ中に並行した処理を行なう部分が存在する場合、データ処理装置3における前記複数の処理要求の処理手順を示す処理手順情報と、データ処理部が取り扱う処理対象データのメモリ部120における格納場所を示すデータ格納場所情報とを対応付けた情報を生成する。
When the
本実施形態特有の機能として、処理要求を階層モデルで取り扱い、エンジン部200が複数の処理階層を同時並行的に実行可能な場合は、メインシステム100は、エンジン部200が効率的に並行処理を実行できるように、複数の処理要求や対応する処理対象データのエンジン部200への通知手順を決め、この決定に従って、各処理要求された処理対象データをエンジン部200に転送してエンジン部200を起動する。
As a function unique to the present embodiment, when the processing request is handled in a hierarchical model and the
ここで、処理手順情報やデータ格納場所情報あるいは処理対象データをエンジン部200に転送する仕組みとしては、コンピュータアーキテクチャにおけるメモリ管理の手法と同様に、メモリから所要部分のデータを読み出す際の種々の手法を利用することができる。また、データの読出しに際しては、CPUがメモリ制御部として機能しバスマスターとなるプログラム転送の形態と、制御部260にDMA(Direct Memory Access)コントローラをメモリ制御部として設けることで、制御部260がバスマスターとなりDMA転送することで、メインシステム100の中央演算制御処理部110を介することなく、メモリ部120とエンジン部200との間でデータ転送を行なう形態の何れであってもよい。DMA転送にすれば、CPU負荷を軽減でき転送効率が高まる。
Here, as a mechanism for transferring the processing procedure information, the data storage location information, or the processing target data to the
また、データ転送における転送モードとしては、1回のアドレス指定で複数のデータを纏めて連続的に転送するバースト転送モードを用いることで、データ転送時に逐一アドレスを指定するサイクルを実行する手間を省き、データ転送速度を向上させるのがよい。この場合、データを、メモリ部120のRAM124における、連続したアドレスに格納するようにする。
In addition, as a transfer mode in data transfer, a burst transfer mode in which a plurality of data is transferred continuously with one address designation can be saved, thereby eliminating the trouble of executing a cycle for designating addresses one by one at the time of data transfer. It is better to improve the data transfer rate. In this case, the data is stored at consecutive addresses in the
何れにしても、中央演算制御処理部110とエンジン部200との間においては、エンジン部200に通知される情報に基づいて、ハッシュ関数を利用した認証処理、共通鍵方式や公開鍵方式を利用した秘匿処理、あるいはチェックサム処理などを、エンジン部200内のデータ処理部240において同時並行的に実行できるように、メモリへのデータの格納手法や読出し手法を取り込めておく。
In any case, between the central processing
たとえば、図2に示す第1の構成例は、DMAコントローラ232を制御部260内に設けることで、制御部260がメモリ部120に対してバスマスターとなって、メモリ部120からデータを自律的に読み出す形態の構成例を示している。ここで、第1の構成例では、中央演算制御処理部110は、処理手順情報とデータ格納場所情報を、制御部260内のレジスタ(メモリの一種)234に設定する。いわゆる、レジスタ方式を利用したものである。処理手順情報には、一連の処理における通知順序の情報も記述されるようにする。
For example, in the first configuration example shown in FIG. 2, by providing the
レジスタ268には、図2(B)に示すように、データ格納領域であるレジスタ(記憶部)として、中央演算制御処理部110の処理手順制御部115が設定した処理手順情報とデータ格納場所情報とを対応付けて格納する手順レジスタ(Descriptor Registers)268a、処理手順制御部115からの処理指示命令を格納する制御レジスタ(Control Registers )268b、手順レジスタ268aから順に読み出した処理コマンドを格納するコマンドレジスタ(Command Registers )268c、RAM124の処理データ格納領域125から取り込んだ処理対象データ(原データ;Source Data )や処理済みのデータを格納するデータレジスタ(Data Registers)268dが設けられている。情報の格納と読出しの形態としては、後述するキュー(Queue )構造を採る。
As shown in FIG. 2B, the
制御部260は、中央演算制御処理部110の処理手順制御部115から処理の開始指示を受けると、手順レジスタ268aに設定されている処理手順情報とデータ格納場所情報とを参照して、処理手順に従った順序で、メモリ部120内のRAM124における処理データ格納領域125から必要な部分の処理対象データを読み出して順に処理を実行する。
When the
図3に示す第2の構成例は、DMAコントローラ232を制御部260内に設けることで、制御部260がメモリ部120に対してバスマスターとなってメモリ部120からデータを読み出す形態の他の構成例を示している。
In the second configuration example shown in FIG. 3, the
ここで、第2の構成例は、ハードウェア構成はデータの格納と読出しの形態に特徴があり、処理手順情報とデータ格納場所情報とを対応付けたディスクリプタをキュー(Queue )構造としてメモリ部120内のRAM124におけるディスクリプタ領域127に格納し読み出す形態を採る。処理要求発生ごとの格納順と読出順とを対応付けておくので、処理手順情報には、一連の処理における処理順序の情報の記述は不要である。
Here, the second configuration example is characterized in the form of data storage and reading in the hardware configuration, and the
制御部260は、処理手順制御部115から起動指示を受けると、メモリ部120内のディスクリプタ領域127にキュー構造で設定されている処理手順情報とデータ格納場所情報とを参照して、メモリ部120内のRAM124における処理データ格納領域125から必要な部分の処理対象データを読み出して順に処理を実行する。
Upon receiving an activation instruction from the processing
図4に示す第3例の構成は、中央演算制御処理部110が、メモリ部120に対してバスマスターとなってメモリ部120から処理対象データを読み出して制御部260に渡す形態の一構成例を示している。CPU負荷が大きくなるが、DMAコントローラを要しないのでシステムがコンパクトになる。なお、この場合においても、図4(A)に示すように、各情報を中央演算制御処理部110内のレジスタ(記憶部)119に設定するレジスタ方式や、図4(B)に示すように、それぞれの位置をメモリ部120内のRAM124における処理データ格納領域125と対応するディスクリプタ領域127に設定するディスクリプタ方式を採り得る。また、データの格納と読出しの形態としては、キュー構造を採る。
The configuration of the third example shown in FIG. 4 is an example of a configuration in which the central processing
何れの場合でも、中央演算制御処理部110は、レジスタ119もしくはディスクリプタ領域127に設定されている処理内容の指示(コマンド)と、処理対象データの格納場所を示す情報とを参照して、メモリ部120内のRAM124における処理データ格納領域125から必要な部分のデータを読み出して、処理対象データを処理内容の指示(コマンド)とともに制御部260に転送する。
In any case, the central processing
制御部260は、中央演算制御処理部110から起動指示を受けると、順に受け取る処理対象データおよび処理内容の指示(コマンド)に基づき、処理対象データに対して、処理内容の指示(コマンド)に従って順に処理を実行する。
When receiving the activation instruction from the central processing
<ディスクリプタ>
図5は、手順レジスタ268aもしくはディスクリプタ領域127へのコマンドや処理対象データのアドレス情報の格納形態(コマンドディスクリプタ;Command Descriptor)B10と、格納される個々のコマンドである処理手順情報およびデータ格納場所情報の一例を示した図である。図5(A)に示すように、手順レジスタ268aやディスクリプタ領域127には、処理階層の処理要求ごとに、1ワード目には命令構造(Command Structure )1、…、Nワード目には命令構造Nというように、一連の命令構造が格納される。なお、処理内容によっては1つの命令構造だけで処理が実行される場合もある。
<Descriptor>
FIG. 5 shows a storage form (command descriptor) B10 of address information of commands and processing target data to the
ワード(命令構造)の順に拘らず、1回のアドレス指定で一連の処理を行なうためのコマンドを纏めて連続的に読み出すべく、バースト転送モードを採用できるように、メモリ上の連続したアドレスをデータ格納位置とするのがよい。 Regardless of the order of words (instruction structure), continuous addresses on the memory are used so that the burst transfer mode can be adopted so that commands for performing a series of processing can be read continuously in a single address designation. It should be the storage position.
データ処理のための命令構造を定義するために、1つの命令構造CS内には、暗号化や複合化あるいは認証の方式や、処理内容の他、暗号化や複合化あるいは認証の開始並びに終了位置などの情報が書き込まれる。 In order to define a command structure for data processing, within one command structure CS, encryption, decryption, or authentication method, processing contents, encryption, decryption, or authentication start and end positions Such information is written.
一例として、図5(B)においては、Cプログラミング言語を用いて提示されるものの場合を示しており、DMA転送時の制御状態コマンド(control status command)CS1として、セキュリティ処理などのオペレーションに必要なソースデータの格納アドレスを特定する起点アドレス(Starting source address)CS2、処理済みデータの格納アドレスを特定する起点アドレス(Starting destination address)CS3、転送データ量(Number of bytes to transfer)CS4、および次のコマンドを示す情報(Ptr to next command struct)CS5が、一連の命令として書き込まれる。 As an example, FIG. 5 (B) shows a case presented using the C programming language, which is necessary for operations such as security processing as a control status command CS1 during DMA transfer. Starting address CS2 for specifying the storage address of the source data, Starting destination address CS3 for specifying the storage address of the processed data, Number of bytes to transfer CS4, and the following Information indicating a command (Ptr to next command struct) CS5 is written as a series of instructions.
図6〜図9は、ディスクリプタの構造を説明する図である。ここで、図6は、キュー(Queue )の構造を示している。キューは、待ち行列のことで、キュー構造とは、複数のデータを一時的に格納しておくための、データが一列に並んだイメージのデータ構造である。キューを使うことで、データを一時的に格納するためのメモリ領域を確保することができ、データを取り出すことによってメモリ領域を自動的に開放することができる。データを取り出す際は、インデックスなどのデータを識別するための情報を使わなくても、データの格納した順番を基準にしてデータを取り出すことができる。 6 to 9 are diagrams illustrating the structure of the descriptor. Here, FIG. 6 shows the structure of a queue. The queue is a queue, and the queue structure is an image data structure in which data is arranged in a line for temporarily storing a plurality of data. By using the queue, a memory area for temporarily storing data can be secured, and the memory area can be automatically released by extracting the data. When retrieving data, it is possible to retrieve data based on the order in which the data is stored without using information such as an index to identify the data.
キュー構造の典型例は、図6に示すように、データを格納した順番でデータを取り出すようにしたもので、最初に取り出せるのは、最後に入れたデータである。このようなデータ構造は、一般に、先入れ先出し(FIFO;First In First Out)と呼ばれる。このようなメモリ構造を、以下キュー構造メモリともいう。 A typical example of the queue structure is such that data is extracted in the order in which the data is stored, as shown in FIG. 6, and the data that can be extracted first is the data that was input last. Such a data structure is generally called first-in first-out (FIFO). Such a memory structure is hereinafter also referred to as a queue structure memory.
本実施形態においてキュー構造メモリを採用する場合、処理対象データに対してのデータ処理装置3における一連の処理内容の指示と、処理対象データの格納場所を示す情報とが、纏めてディスクリプタキューに組み込まれる。また、複数の処理階層についてエンジン部200にて同時並行的に処理可能である場合には、複数の処理階層の処理対象データをそれぞれ所定サイズで分割し、分割した個々の処理対象データとこれに対する処理内容の指示とを所定の順序でエンジン部200に通知できるような順番で、ディスクリプタ領域127に格納する。
When the queue structure memory is employed in the present embodiment, a series of processing content instructions for the processing target data in the
処理手順制御部115から起動指示を受けた制御部260は、そのときに指示された、キュー構造で設定された処理手順情報とデータ格納場所情報を順に1つずつ読み出して、エンジン部200にての処理を順に行なうことができる。
Upon receiving the activation instruction from the processing
なお、キュー構造の実現に当たっては、データを格納したアドレスに拘らず、データを先入れ先出しの順で読み出すことができるようになっていればよく、配列を宣言することで、動作としては、FIFOによる処理を記述することで実現することができる。たとえば、図6(B)に示すように、纏まった処理命令ごとにメモリの記憶領域を区分けして格納し、下流側への処理のリンクを順次設定していくようにしてもよい。 In order to realize the queue structure, it is sufficient that the data can be read out in the first-in first-out order regardless of the address where the data is stored. This can be realized by writing For example, as shown in FIG. 6B, the storage area of the memory may be divided and stored for each collected processing instruction, and the processing link to the downstream side may be sequentially set.
なお、図7に示すように、キュー構造に代えて、スタック(stack )構造を採用することもできる。スタックは、ほし草や藁などの“山”のことで、同じ種類のデータを積み重ねた構造のことを指す用語として使われるものである。データを取り扱う場合、データを格納する領域のことをスタックエリアと呼び、データを格納した順番とは逆の順番で、データを取り出すようにする。つまり、前述のFIFOとは逆に、最初に格納したデータが一番下になり、その上に次々にデータが積み重ねられるイメージである。データを取り出すときは、最後に入れた一番上のデータから順に取り出す。このようなスタックの構造は、一般に、後入れ先出し方式(LIFO;Last In First Out)と呼ばれる。このようなメモリ構造を、以下スタック構造メモリともいう。 As shown in FIG. 7, a stack structure can be adopted instead of the queue structure. Stack is a term for “mountains” such as hay and straw, and is a term used to refer to a structure in which the same kind of data is stacked. When data is handled, an area for storing data is called a stack area, and data is taken out in the reverse order of data storage. That is, contrary to the above-described FIFO, the data stored first is at the bottom, and the data is stacked one after another. When retrieving the data, the data is retrieved in order from the topmost data entered last. Such a stack structure is generally called a last-in first-out (LIFO) method. Hereinafter, such a memory structure is also referred to as a stack structure memory.
スタック構造メモリとする場合、ある処理階層の複数のコマンドに従って処理を行なう場合、個々のコマンドごとにエンジン部200にて処理を行なうのではなく、ある処理階層の全コマンドを一気に読み出してエンジン部200のコマンドレジスタ268cにスタック構造で格納してからエンジン部200の処理を行なうようにするとよい。この場合、コマンドだけでなく、それに対応した処理対象データも一気に読み出してエンジン部200のデータレジスタ268dにスタック構造で格納するのがよい。こうすることで、内部バス180を早く開放できる利点がある。
When the stack structure memory is used, when processing is performed according to a plurality of commands in a certain processing hierarchy, the
なお、スタック構造の実現に当たっても、データを格納したアドレスに拘らず、データを後入れ先出しの順で読み出すことができるようになっていればよく、配列を宣言することで、動作としては、LIFOによる処理を記述することで実現することができる。 Even when the stack structure is realized, it is only necessary to be able to read data in the last-in first-out order regardless of the address where the data is stored. By declaring the array, the operation is LIFO. It can be realized by describing the processing by.
ここで、複数の処理階層において同時並行した処理が可能であるか否かに拘らず、複数の処理要求のそれぞれにおいてキュー構造もしくはスタック構造を採用するのがよい。また、本実施形態特有のメモリ構造として、OSIやTCP/IPの処理階層モデルにおいて、同一階層であるか異なる階層であるかを問わず、異なる処理階層の複数の処理要求がほぼ同時にエンジン部200に発せられ、エンジン部200にてこれに対応する場合、その対象となる複数の処理要求について、キュー構造もしくはスタック構造を採るようにする。何れの場合も、特に、キュー構造が好ましい。
Here, it is preferable to adopt a queue structure or a stack structure for each of a plurality of processing requests regardless of whether or not a plurality of processing hierarchies can be processed simultaneously in parallel. Further, as a memory structure unique to the present embodiment, in the OSI or TCP / IP processing hierarchy model, a plurality of processing requests in different processing hierarchies are almost simultaneously processed regardless of whether they are the same hierarchy or different hierarchies. When the
図8は、各処理階層の個々の処理要求B00についてキュー構造を採用したディスクリプタB10を構成した例を示している。参照モデルの階層に関わらず、各処理階層の処理要求ごとに処理内容と処理対象データとを対応付けたコマンドディスクリプタを生成するようにする。そして、これを処理階層に従って順次格納することで、コマンドディスクリプタキューB20を作る。 FIG. 8 shows an example in which a descriptor B10 adopting a queue structure is configured for each processing request B00 in each processing hierarchy. Regardless of the hierarchy of the reference model, a command descriptor that associates the processing content with the data to be processed is generated for each processing request of each processing hierarchy. Then, the command descriptor queue B20 is created by sequentially storing them according to the processing hierarchy.
また、図9は、複数の処理要求において、同時並行的にエンジン部200にて処理を行なう場合に、それら複数の処理要求もキュー構造を採用した場合のメモリ構造(以下ディスクリプタキューともいう)B20とする場合の一例を示している。この場合には、同時並行させる複数の処理階層の各処理対象データを所定の分割サイズで分割し、同時並行させる分をその分割単位ごとに処理順序に合わせて纏めるようにする。データ量を均等配分することにしているので、1つの分割サイズ内に割り当てられるワード数は、それぞれ異なっていてよい。
FIG. 9 shows a memory structure (hereinafter also referred to as a descriptor queue) B20 when a plurality of processing requests are processed in the
たとえば、複数の処理階層のコマンドディスクリプタB11,B12,…Bmに基づいてエンジン部200にて並列処理させる場合、それぞれを分割してコマンドディスクリプタB11−1,B11−2,…,B12−1,B12−2,…,Bm−1,Bm−2,…とし、その分割単位ごとに処理順序に合わせて、B11−1,B12−1,…,Bm−1,B11−2,B12−2,…,Bm−2,…と、順次ディスクリプタ領域127に格納することで、コマンドディスクリプタキューB20を作るとよい。
For example, when the
なお、本明細書における処理階層とは、OSI参照モデルやTCP/IPの通信プロトコルの階層とは異なる概念である。たとえば、図10(A)に示すように、セキュリティプロトコルとしてIPSecを採用しつつ、通信プロトコルとしてTCP/IP,IPv4を採用する場合、OSI参照モデルやTCP/IPのプロトコルにおける同一階層に位置していても、IPSec処理要求S12と、IPヘッダのチェックサム処理要求S14とは、異なる処理階層に位置する。 Note that the processing hierarchy in this specification is a concept different from the OSI reference model and the TCP / IP communication protocol hierarchy. For example, as shown in FIG. 10A, when IPSec is adopted as a security protocol and TCP / IP and IPv4 are adopted as communication protocols, they are located in the same layer in the OSI reference model and the TCP / IP protocol. However, the IPSec processing request S12 and the IP header checksum processing request S14 are located in different processing layers.
順次送受信するパケットに対して各処理階層の処理を順次実行する場合において、処理内容にエンジン部200が担当するものが含まれている場合、図10(B)に示すように、暗号化処理S12a、復号化処理S12b、認証処理S12c、およびチェックサム処理S10,S14の各要求がほぼ同時にエンジン部200に発せられるケースが起きる。
In the case where the processing of each processing layer is sequentially executed for packets that are sequentially transmitted and received, and the processing content includes what the
なお、ESPフォーマットの場合には、IPSec処理要求には、セキュリティ処理として、秘匿処理および認証処理の少なくとも一方を含み得るもので、その両者もしくは何れか一方のみの処理としてよい。一方、AHフォーマットの場合には、IPSec処理要求には、セキュリティ処理として、少なくとも認証処理を含み、必要に応じて秘匿処理を行なうようにしてもよく、秘匿処理はオプションである。 In the case of the ESP format, the IPSec processing request may include at least one of a concealment process and an authentication process as a security process, and may be a process of both or only one of them. On the other hand, in the case of the AH format, the IPSec processing request includes at least an authentication process as a security process, and the confidential process may be performed as necessary, and the confidential process is an option.
<データ処理装置の構成例>
図11は、図1に示したコンピュータ装置1に備えられているデータ処理装置3の詳細な構成例を示したブロック図である。なお、以下の説明において特段の断りのない限り、メインシステム100からエンジン部200へのデータ転送の形態として、中央演算制御処理部110が、メモリ部120に対してバスマスターとなって、メモリ部120から処理対象データを読み出して制御部260に渡す形態(図4(A)に示した第3の構成例)を用いることとする。
<Configuration example of data processing device>
FIG. 11 is a block diagram showing a detailed configuration example of the
図示するように、先ず、データ処理装置3の中央演算制御処理部110は、CPUからの処理要求を受け付け、必要な場合にデータ分割を行なった上でデータを受け渡す一次ドライバ130と、一次ドライバ130から渡されたデータのうちどのデータをエンジン部200で処理するかを選択しエンジン部200に処理要求を出す二次ドライバ140とを備えている。
As shown in the figure, first, the central processing
また、本実施形態では、メモリ部120は、内部バス180に接続されており、同じく内部バス180に接続された中央演算制御処理部110からの指示に基づいて、ハッシュ処理、共通鍵暗号処理や公開鍵暗号処理を利用した秘匿処理、あるいはチェックサム処理をエンジン部200にて実行するべく、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データを、メモリ部120のRAM124における所定の領域に格納する。
In the present embodiment, the
また、エンジン部200は、データ処理部240に、共通鍵暗号処理や公開鍵暗号処理を利用した暗号化処理や復号化処理を行なう秘匿処理部(Crypto Block)242、一方向性ハッシュ関数を利用した認証処理(完全性保証処理)を行なう認証処理部(Digest Block)244、チェックサム処理を行なうチェックサム処理部(CheckSum Block)246、並びに、セレクタ250,252を備えている。
Further, the
秘匿処理部242は、暗号化処理部242aと、復号化処理部242bとを有している。暗号化処理部242a、復号化処理部242b、認証処理部244、およびチェックサム処理部246は、独立した個別のハードウェア回路にて構成されている。秘匿処理部242と認証処理部244とによりセキュリティ処理部248が構成される。また、認証処理部244とチェックサム処理部246とにより同一性確認処理部249が構成される。
The concealment processing unit 242 includes an encryption processing unit 242a and a decryption processing unit 242b. The encryption processing unit 242a, the decryption processing unit 242b, the authentication processing unit 244, and the
認証処理部244は、ハッシュ関数(Hash Function ;かき混ぜ関数)を用いて、送信者がある任意の長さの通常のメッセージ(文字列が並んだ平文)を送信する際に、このメッセージを一定の固定長の文字列(ビット列)に圧縮した固定長のビット列からなるダイジェスト(要約;ハッシュ符号ともいう)を作成する。 The authentication processing unit 244 uses a hash function (Hash Function) to send a message of a certain length (plain text in which character strings are arranged) to a certain length. A digest (summary; also called a hash code) composed of a fixed-length bit string compressed into a fixed-length character string (bit string) is created.
たとえば、IPSecのESPフォーマットもしくはAHフォーマットにおいては、ICV(Integrity Check Value )を計算しておく。ICVは秘密対称鍵の一例であるHMAC−MD5−96やHMAC−SHA−1−96などの鍵付きハッシュ関数を使用して計算した、メッセージの完全性検査用認証値であり、得られた鍵付きハッシュ値から元のメッセージを知ることはできず、また秘密対称鍵を知らなければメッセージから鍵付きハッシュ値を計算することもできないようになっている。 For example, in IPSec ESP format or AH format, ICV (Integrity Check Value) is calculated in advance. ICV is an authentication value for message integrity check calculated using a keyed hash function such as HMAC-MD5-96 or HMAC-SHA-1-96, which is an example of a secret symmetric key. The original message cannot be known from the attached hash value, and the keyed hash value cannot be calculated from the message without knowing the secret symmetric key.
ここで、ESPフォーマットでは、認証(完全性保証)対象範囲は、ESPヘッダからESPトレーラまでの暗号ペイロードを含む部分になる。これに対して、AHフォーマットは、パケットのほぼ全体を認証(完全性保証)対象範囲とするICV(完全性保証用認証値)を付加することで、転送用外側IPヘッダまで含めたパケットほぼ全体の完全性を保証するようになっている。 Here, in the ESP format, the authentication (integrity guarantee) target range is a portion including the encryption payload from the ESP header to the ESP trailer. On the other hand, in the AH format, by adding an ICV (authentication value for integrity guarantee) in which almost the whole packet is subject to authentication (integrity guarantee), almost the entire packet including the outer IP header for transfer Is to guarantee the integrity of.
また、SSL/TLSにおいては、認証データとして、メッセージ認証コードMAC(Message Authentication Code )を利用する。このMAC値は、IPSecフォーマットの認証コードICVと、仕様や具体的な計算方法などは異なるが、基本的には同じ機能のもので、両方とも認証データになり、その差は、実施形態の適用に際して、影響を及ぼさない。 In SSL / TLS, a message authentication code MAC (Message Authentication Code) is used as authentication data. This MAC value differs from the IPSec format authentication code ICV in terms of specifications and specific calculation methods, but basically has the same function, both of which are authentication data, and the difference between them is the application of the embodiment. In doing so, it has no effect.
チェックサム処理部246は、対象の同一性を検証する。たとえば、TCP/IPでの通信時には、ヘッダ部とデータ部を処理対象範囲としてチェックサムを計算することで、データの信頼性を保証する。また、IPv4での通信時には、IPヘッダフォーマットに含まれるヘッダチェックサムを計算する。
The
制御部260は、バスIF部262、およびエンジン部200全体の動作を制御する指示制御部266を備えている。なお、エンジン部200の制御部260がバスマスターとなりDMA転送することで、メインシステム100の中央演算制御処理部110を介することなく、メモリ部120とエンジン部200との間でデータ転送を行なう形態(図4に示した第1や第2の構成例)を採用する場合には、図中点線で示すように、DMAコントローラ部264がバスIF部262と指示制御部266との間に設けられる。
The
指示制御部266は、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データを解析し、中央演算制御処理部110からの要求を実行するために、秘匿処理部242、認証処理部244、およびチェックサム処理部246の何れかについての選択指示CN2,CN3を対応するセレクタ250,252に対して与える。
The
なお、DMAコントローラ部264を設ける場合には、指示制御部266は、バスIF部262を介して内部バス180に接続されたDMAコントローラ部264に対してデータの読出指示CN1を与える。この場合、DMAコントローラ部264は、メモリ部120のRAM124に格納された処理対象データに対する処理内容の指示(コマンド)と、処理対象データの格納先を示す情報と、処理対象データの転送とを、指示制御部266に対して行なう。
When the
セレクタ250は、指示制御部266からの選択指示CN2に基づいて、秘匿処理部(CryptoD Block )242とハッシュ処理部(Digest Block)244とチェックサム処理部(Checksum Block)246の何れかを選択して指示制御部266の出力を入力する。
The
セレクタ252には秘匿処理部242と認証処理部244とチェックサム処理部246の各出力が入力されている。セレクタ252は、指示制御部266からの選択指示CN3に基づいて、それぞれの機能部(モジュール)242,244,246での演算結果の何れかを選択して、その選択出力を指示制御部266に入力する。
Each output of the concealment processing unit 242, the authentication processing unit 244, and the
図12は、アクセラレータドライバ117の一次ドライバ130および二次ドライバ140と、階層モデルで表された処理手順との関係を示した模式図である。中央演算制御処理部110(たとえばCPU)は、一連の処理を階層モデルで表された1つのプロセスで行なう。プロセスの中は、幾つかの階層に分けて処理階層ごとに独立して処理が行なわれる。
FIG. 12 is a schematic diagram illustrating the relationship between the
たとえば、図示するように、OSIモデルでのP11〜P17からなる一連のプロセスP10、TCP/IPモデルでのP21〜P24からなる一連のプロセスP20を事例にする。 For example, as illustrated, a series of processes P10 composed of P11 to P17 in the OSI model and a series of processes P20 composed of P21 to P24 in the TCP / IP model are taken as examples.
中央演算制御処理部110のCPUは、複数のプロセスを並列に処理する場合があるため、複数のプロセスの複数の階層から処理要求がエンジン部200に送られることが起こる場合がある。
Since the CPU of the central processing
一連のプロセス内のある階層からエンジン部200への暗号化や複合化あるいは認証などのセキュリティ処理やチェックサム処理などの種々の処理指示と、各処理に必要な処理対象データのエンジン部200への転送は、アクセラレータドライバ117を介して行なわれる。
Various processing instructions such as security processing and checksum processing such as encryption, decryption or authentication from a certain hierarchy in a series of processes to the
アクセラレータとして機能するエンジン部200は、処理した計算結果の他に、計算後の内部状態を出力でき、他の処理を行なう際に以前の計算と連続して行なうように指定があった場合は前回処理したデータと連結して処理を行なう。
The
ここで、アクセラレータドライバ117は、図11の説明で述べたように、CPUからの処理要求を受け付け、必要ならばデータ分割を行なった上で二次ドライバ140にデータを受け渡す一次ドライバ130と、一次ドライバ130から渡されたデータのうちどのデータをエンジン部200で処理するか選択しエンジン部200に処理要求を出す二次ドライバ140に分かれて構築されている。ここで、「必要ならば」とは、少なくとも、複数の処理階層の処理をエンジン部200にて同時並行的に行なわせる場合を含むものとする。
Here, as described in the explanation of FIG. 11, the
<一次ドライバの構成と作用>
図13は、一次ドライバ130の詳細構成例を説明するブロック図である。図示するように、一次ドライバ130は、アプリケーションAP10から渡されたデータを解析するデータ解析部113に対応したデータ解析部132と、データ解析部132の解析結果に基づいてデータ分割が必要か不要かを判断するデータ分割検討部134と、データ分割検討部134に対してデータ分割の際の条件を設定する分割条件設定部136と、データ分割検討部134の判断結果が分割が必要であると示していることを条件として処理データを分割する分割処理部138とを備えている。
<Configuration and operation of primary driver>
FIG. 13 is a block diagram illustrating a detailed configuration example of the
一次ドライバ130のデータ分割検討部134、分割条件設定部136、および分割処理部138と、二次ドライバ140とにより、処理手順制御部115が構成される。
The data
分割条件設定部136には、アプリケーションAP10から閾値情報が入力されるようになっている。分割条件設定部136は、アプリケーションAP10から閾値Th1を取得し、それをデータ分割検討部134に設定する。この閾値Th1は、システムのアプリケーション用途によって、中央演算制御処理部110のCPUが決定する。
Threshold information is input from the application AP 10 to the division
図14は、一次ドライバ130における処理概要を示したフローチャートである。一次ドライバ130は、先ず、中央演算制御処理部110のCPUからアプリケーションAP10として、処理要求と処理対象データとを受け取る(S100)。これらを受け取った一次ドライバ130は、データ解析部132で処理データのサイズや使用プロトコルなどを調べ、それらの情報とアプリケーションから設定された閾値Th1でデータ分割が必要か不要かを判断する(S102〜S110)。
FIG. 14 is a flowchart showing an outline of processing in the
たとえば、アプリケーションAP10から処理要求を受け取ったからデータを渡された一次ドライバ130は、データ解析部132で処理データのサイズや使用プロトコルなどを調べ、それらの情報とアプリケーションから設定された閾値Th1でデータ分割が必要か不要かを判断する(S102)。
For example, the
処理サイズが閾値Th1より大きい場合は(S102−YES)、データ解析部132は、分割が必要であると判断し、その判断結果をデータ分割検討部134に通知する。この場合、データ分割検討部134は、暗号化や復号化あるいは認証やチェックサムなどの処理に際して使用するアルゴリズムを通信プロトコルやセキュリティプロトコルに基づいて特定する(S104)。そして、使用アルゴリズムでの最小処理単位の倍数でかつ閾値Th1を超えない最大値を計算することで分割サイズを決定し、決定した分割サイズを分割処理部138に通知する(S106)。これを受けて、分割処理部138は、最大値でもってデータを分割し(S108)、データを分割した上で二次ドライバ140にデータ(処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データ)を引き渡す。
When the processing size is larger than the threshold Th1 (S102-YES), the
一方、処理サイズが閾値より小さい場合は、データ解析部132は、分割が不要であると判断し、その判断結果をデータ分割検討部134に通知する。この場合、データ分割検討部134は、アプリケーションAP10から渡されたデータ(処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データ)を、そのまま二次ドライバ140に送る。
On the other hand, when the processing size is smaller than the threshold value, the
こうすることで、エンジン部200に渡すデータサイズを閾値Th1以下で概ね均一化させることができる。
By doing so, the data size passed to the
<二次ドライバの構成と作用>
図15は、二次ドライバ140の詳細構成例を説明するブロック図である。図示するように、二次ドライバ140は、一次ドライバ130から渡されたデータを記憶する記憶部としてのデータプール142と、データプール142に蓄積したデータのうち、どのデータをエンジン部200に送るかを判断して選択するデータセレクタ144と、データセレクタ144に対してどのデータをエンジン部200に送るかを判断し選択する際の条件を設定する順序基準設定部146とを備えている。
<Configuration and operation of secondary driver>
FIG. 15 is a block diagram illustrating a detailed configuration example of the
順序基準設定部146には、アプリケーションAP10から転送順序を決定する際の基準を示す制御情報CN10が入力されるようになっている。順序基準設定部146は、アプリケーションAP10から制御情報CN10を取得し、それをデータセレクタ144に設定する。この制御情報CN10は、システムのアプリケーション用途によって、中央演算制御処理部110のCPUが決定する。これにより、データセレクタ144における選択方法は、アプリケーションAP10によって制御することが可能である。
The order
図16は、二次ドライバ140によるデータ転送と、エンジン部200における処理の概要を示したフローチャートである。二次ドライバ140は、先ず、一次ドライバ130から渡されたデータをデータプール142に蓄積する(S200)。これはアプリケーションAP10および一次ドライバ130とエンジン部200を互いに非干渉にするためである。
FIG. 16 is a flowchart showing an overview of data transfer by the
データセレクタ144は、データプール142に処理待ちデータが存在するか否か、つまり、エンジン部200が処理待ちになったかどうかを監視している(S202−NO)。よって、データセレクタ144は、一次ドライバ130から渡されたデータがデータプール142に蓄積されることで、エンジン部200が処理待ちになったと判定できる。
The
データセレクタ144は、エンジン部200が処理待ちになった段階で(S202−YES)、データプール142に蓄積したデータを、アプリケーションAP10による選択手法を定義する指示制御CN10の元で、エンジン部200に転送する。
The
ここで、データセレクタ144は、一次ドライバ130の分割処理部138によって分割されたデータがデータプール142に蓄積されているときには、その分割されたデータのエンジン部200への転送順序をアプリケーションAP10の制御の元で決定し、この決定に従って順次エンジン部200に分割データを転送することで、処理のスケジューリングを行なう(S204)。
Here, when the data divided by the
二次ドライバ140を介してデータ(処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データ)を受け取ったエンジン部200においては、先ず指示制御部266は、処理対象データに対する処理内容の指示と、処理対象データを指示する情報と、処理対象データとを解析し、処理対象データが、データ処理部240の何れの機能部の処理担当のものであるかを特定する(S206)。この後、指示制御部266は、特定結果に基づき、中央演算制御処理部110からの要求を実行するために、秘匿処理部242、認証処理部244、およびチェックサム処理部246の何れかについての選択指示CN2,CN3を対応するセレクタ250,252に対して与える。
In the
セレクタ250は、指示制御部266からの選択指示CN2に基づいて、秘匿処理部242とハッシュ処理部244とチェックサム処理部246の何れかを選択して指示制御部266の出力を入力し、またセレクタ252は、指示制御部266からの選択指示CN3に基づいて、それぞれの機能部(モジュール)242,244,246での演算結果の何れかを選択して、その選択出力を指示制御部266に入力することで、処理を実行するハードウェアを設定する(S208)。
Based on the selection instruction CN2 from the
データを受け取ったデータ処理部240内のハードウェアで構成されている各機能部242,244,246は、それぞれが担当する処理を実行し、セレクタ252を介して処理済みデータを指示制御部266に渡す(S210)。
The
以下、同様にして、データプール142に蓄積されたデータについての処理が全て完了するまで、上記ステップS202〜S210の処理を繰り返す。
In the same manner, the processes in steps S202 to S210 are repeated until all the processes for the data stored in the
ここで、データセレクタ144がアプリケーションAP10の制御の元で、一次ドライバ130の分割処理部138によって分割されデータプール142に蓄積されているデータをエンジン部200に転送する順序を決定する基準としては、たとえば、優先度順、帯域確保順、あるいは到着順、などを採り得る。
Here, as a reference for determining the order in which the
アプリケーションAP10が使用する通信プロトコルやセキュリティプロトコルに適合した基準で選択することで、並列通信処理を行なうべくエンジン部200に複数の処理要求が発生した場合でも、適切な順序で分割データをエンジン部200に転送できるから、1つの処理を行なっている間、その他の処理要求が待たされることがない。たとえ、現在処理しているデータサイズが大きい場合であっても、通信プロトコルやセキュリティプロトコルに適合したサイズでデータ分割することで、その待ち時間をバランスよく短くでき、データ送信にゆらぎが発生することを防止できる。
Even when a plurality of processing requests are generated in the
たとえば、データセレクタ144による優先度順の選択手法は、データプール142に蓄積されたデータに優先度を付け、優先度の高い順に処理を行なう手法である。従来のデータ分割を行なわない方法の場合、優先度は低いが処理サイズの大きいデータを処理しているときに、優先度が高い処理要求をアクセラレータドライバ117が受けても処理を開始することができない。
For example, the selection method in the order of priority by the
これに対し、本実施形態を適用することで、処理サイズの大きいデータは分割処理部138により所定サイズで分割されているので、優先度が高い処理要求の待ち時間は短くなる。
On the other hand, by applying this embodiment, data with a large processing size is divided by the
また、データセレクタ144による帯域確保順の選択手法においては、先ず、アクセラレータドライバ117に対する処理要求ごとに減算カウンタを用意する。二次ドライバ140がアクセラレータとしてのエンジン部200にデータを渡したとき、該当する処理要求のカウンタは初期値に戻し、それ以外のカウンタは全て“−1”する。データセレクタ144は、処理待ちになっているデータのうち、カウンタの値が一番小さい処理要求のデータをエンジン部200に送る。
Further, in the method of selecting the band securing order by the
こうすることで、処理要求ごとのデータ処理間隔の最大値を設定することになり、処理要求別に通信帯域を確保することができる。 By doing this, the maximum value of the data processing interval for each processing request is set, and a communication band can be secured for each processing request.
この帯域確保順の選択手法は、画像や音声データなど、通信間隔が大きく空くと明確に途切れていることが分かってしまうデータを複数送信する場合に適している。 This method of selecting the bandwidth reservation order is suitable for transmitting a plurality of data such as images and audio data that can be clearly seen to be disconnected when the communication interval is large.
また、データセレクタ144による到着順の選択手法は、分割されたデータを到着順に処理する手法である。ただし、複数の処理要求からのデータがある場合は、処理要求順に順次処理を行なう。
The arrival order selection method by the
この到着順の選択手法は、前述の優先度順や帯域確保順の選択手法のような高度の処理ではないが、優先度やカウンタの値から処理すべきデータを探す必要がなく、処理を高速に行なえる利点がある。よって、この到着順の選択手法は、優先度や帯域確保がそれほど重要ではない環境で通信を高速にしたい場合に適している。 This arrival order selection method is not an advanced process like the priority order or bandwidth reservation order selection method described above, but it does not require searching for data to be processed based on the priority or counter value, thus speeding up the processing. There is an advantage that can be done. Therefore, this arrival order selection method is suitable when it is desired to speed up communication in an environment where priority and bandwidth reservation are not so important.
図17は、到着順で転送順序を決定する場合の処理概要を示した図であり、従来技術で示した図19に対応するものである。この図17では、二次ドライバ140でのデータ選択方法は、図19と同様到着順に処理を行なっているが、データ分割を行なうことで、それぞれのデータが分割単位でデータ処理部240の各機能部242,244,246にて順次処理されるため、実質的に(マクロで見れば)全ての処理要求を並列に処理することが可能になっている。
FIG. 17 is a diagram showing an outline of processing when the transfer order is determined in arrival order, and corresponds to FIG. 19 shown in the prior art. In FIG. 17, the data selection method in the
以上説明したように、本実施形態の手法に依れば、アクセラレータとしてのエンジン部200で処理されるデータサイズを、たとえば閾値Th1でもって概ね均一化して分割し、分割データを所定の基準に基づいて順次エンジン部200に転送して処理を実行するようにした。このため、単一のハードウェアデバイスしか持たないアクセラレータとしてのエンジン部200であっても、分割されたデータに対応するデータ処理部240の各機能部242,244,246にて、概ね均一化された処理時間単位で順次実行することができる。結果として、データ処理部240の各機能部242,244,246は実質的に並列処理が可能になる。このように、データ転送の制御方法を工夫することで、たとえばIPプロトコルを使用してリアルタイム通信を行なうケースでも、データ送信にゆらぎが発生することがなく、本実施形態が非常に有効である。
As described above, according to the method of the present embodiment, the data size processed by the
また、一次ドライバ130のデータ分割検討部134における閾値Th1の設定と二次ドライバ140のデータセレクタ144における転送順序の選択手法をアプリケーションのプロトコル使用環境に合わせて変えることで、デバイスの特性を変化させることができ、最適な処理を行なうことが可能になる。
In addition, the device characteristics are changed by changing the threshold Th1 setting in the data
たとえば、プロセスごとに優先度を決めることで優先度順に処理を行なう方法であれば、必要なプロセスを優先的に処理することが可能になる。また、閾値Th1を大きくして分割回数を減らし、処理データ選択方法を単純な到着順にすることで、アクセラレータドライバ117での処理時間が減るので、通信速度を重視するのであればそのような制御方法を使用するのがよい。
For example, if the priority is determined for each process and processing is performed in order of priority, necessary processes can be preferentially processed. Further, since the processing time in the
このように、データ分割検討部134に対する分割サイズに対応した閾値Th1やデータセレクタ144に対する転送順序に対応した制御情報CN1をアプリケーションAP10に応じて変化させることで、エンジン部200の処理特性(デバイス特性)を変化させることができ、これにより、単一のハードウェアデバイスしか持たないアクセラレータでも、システムの用途に応じた処理特性の制御が可能となる。
In this way, by changing the threshold Th1 corresponding to the division size for the data
<適用プロトコル>
以上のように、複数の処理要求がほぼ同時に発生した場合に、データを所定サイズで分割するとともに、たとえば優先度順、帯域確保順、あるいは到着順などアプリケーションに応じた基準に基づいてエンジン部200に転送する順序を決定することで、効率的な並列処理をエンジン部200にて行なうことができるようにする仕組みについて、基本的な処理手法を説明したが、上記で示した処理は、データの機密性や完全性を保証するセキュリティ通信システムに用いられる様々なプロトコルに適用することができる。
<Applicable protocol>
As described above, when a plurality of processing requests are generated almost simultaneously, the data is divided by a predetermined size, and the
たとえば、リアルタイムデータの送信を行うプロトコルRTP(Real time protocol)にセキュリティ機能を付加するSRTP(Secure RTP)や、クライアントとサーバとの間で相互認証をできるようにし、認証され暗号化された接続を確立するようにすることでトランスポートレイヤのセキュリティを実現するSSL(Secure Sockets Layer)、このSSLプロトコルをベースに改良されIETF(Internet Engineering Task Force )によって標準化されたTLS(Transport Layer Security)に適用することができる。 For example, SRTP (Secure RTP), which adds a security function to the real-time data transmission protocol RTP (Real time protocol), and mutual authentication between the client and server, can be used to establish an authenticated and encrypted connection. Secure Sockets Layer (SSL) that realizes transport layer security by establishing it, and applied to TLS (Transport Layer Security) standardized by IETF (Internet Engineering Task Force) based on this SSL protocol be able to.
あるいは、暗号化アルゴリズムにDES/3DES/AESなどのブロック暗号アルゴリズムを使ったIPSec(Internet Protocol Security)における暗号ペイロードESP(Encapsulating Security Payload)や、パケットのほぼ全体を対象としてICV(完全性保証用認証値)を付加することで、転送用外側IPヘッダまで含めたパケットほぼ全体の完全性を保証するAHフォーマットにも適用することができる。 Alternatively, encryption payload ESP (Encapsulating Security Payload) in IPSec (Internet Protocol Security) using block encryption algorithms such as DES / 3DES / AES as the encryption algorithm, and ICV (integrity assurance authentication) for almost the entire packet By adding (value), it can be applied to the AH format that guarantees the integrity of almost the entire packet including the outer IP header for transfer.
また、有線通信におけるプロトコルに限らず、無線通信におけるプロトコルにも適用可能であり、たとえば、IEEE(Institute of Electrical and Electronics Engineers, Inc. ;米国電気電子学会)によって標準化された、ワイヤレス機器や無線LANなどによる情報伝達のセキュリティを守るためのプロトコルであるWEP(Wired Equivalent Privacy)や、Wi−Fi Allianceが規格を策定したWEPに代わる暗号化規格であるWPA(Wi-Fi Protected Access)などにも適用可能である。 Further, the present invention can be applied not only to a protocol for wired communication but also to a protocol for wireless communication. For example, a wireless device or a wireless LAN standardized by IEEE (Institute of Electrical and Electronics Engineers, Inc.) Also applied to WEP (Wired Equivalent Privacy), a protocol for protecting information transmission security, and WPA (Wi-Fi Protected Access), an encryption standard that replaces WEP established by Wi-Fi Alliance. Is possible.
なお、現段階では、IEEEでの規格化作業が終了していないが、IEEE802.11iで制定されるセキュリティプロトコルにも、上記実施形態で説明した処理を適用することが可能である。 At this stage, standardization work in IEEE is not finished, but the processing described in the above embodiment can be applied to a security protocol established in IEEE802.11i.
なお、複数の処理階層において、暗号化や復号化あるいは認証やチェックサムなどの処理要求が概ね同時にあるか否かは、アプリケーションが適用する通信プロトコルと、それに適用されるセキュリティプロトコルとの関係で決まるものである。 Whether or not processing requests such as encryption, decryption, authentication, and checksum are almost simultaneous in a plurality of processing layers is determined by the relationship between the communication protocol applied by the application and the security protocol applied thereto. Is.
何れにおいても、上記で説明したように、複数の処理階層において、暗号化や復号化あるいは認証やチェックサムなどの処理要求が概ね同時にあるか場合には、その要求に応えてエンジン部200が並列処理可能なように、データを所定サイズで分割し、アプリケーションに応じた転送順序で分割データを順次転送することで、効率的な並列処理をエンジン部200にて実行する。
In any case, as described above, when processing requests such as encryption, decryption, authentication, checksum, etc. are almost simultaneously in a plurality of processing layers, the
<具体的な事例>
図18は、上記実施形態で説明したデータ処理を適用するプロトコルの具体例を説明する図である。この例は、セキュリティ通信として、アプリケーション層P21(セッション層P13)でセキュリティ処理を行なうSSL/TLSプロトコル(P31)とインターネット層P23としてのIP層P33でセキュリティ処理を行なうIPSecとを併用し、トランスポート層P22ではTCP/UDP(P32)を使用する場合を示している。
<Specific examples>
FIG. 18 is a diagram illustrating a specific example of a protocol to which the data processing described in the above embodiment is applied. In this example, the SSL / TLS protocol (P31) that performs security processing in the application layer P21 (session layer P13) and IPSec that performs security processing in the IP layer P33 as the Internet layer P23 are used in combination as security communication. The layer P22 shows a case where TCP / UDP (P32) is used.
ここで、アプリケーション層P21でのSSL/TLSフォーマットに基づくセキュリティ処理時にメインシステム100とエンジン部200との間でデータ転送を要する。また、トランスポート層P22でのTCPやUDPのチェックサム処理時にメインシステム100とエンジン部200との間でデータ転送を要する。さらに、インターネット層P23でのIPSecフォーマットに基づくセキュリティ処理時にメインシステム100とエンジン部200との間でデータ転送を要する。これらの処理は、アプリケーションからほぼ同時に処理要求が発せられることがある。
Here, data transfer is required between the
この場合、上記で説明したように、データを所定サイズで分割し、それぞれのプロトコルに応じた基準に基づいてエンジン部200に転送する順序を決定し、その決定した順序で分割データを順次エンジン部200に転送する。こうすることで、ネットワークプロトコルスタックP30での処理のうち、IP層P33内部でのIPsecの暗号化と復号化と認証コードの作成と認証コードの確認(A3)、TCP/UDP(P32)のチェックサム生成とチェックサム確認(A2)をエンジン部200において並列処理することによって、これら複数の処理内容を高速に処理できる。
In this case, as described above, the data is divided by a predetermined size, the order of transfer to the
また、アプリケーションとしてSSL/TLS(P31)を用いる場合における暗号化と復号化と認証コードの作成と認証コードの確認(A1)をもエンジン部200において並列処理することによって、これら複数の処理内容を高速に処理できる。
In addition, when SSL / TLS (P31) is used as an application, the
このように、上記実施形態で説明した処理をセキュリティ通信システムに適用することで、複数の対象に対するデータ送受信を機密性と完全性を確保しつつ行なうことが可能になる。 In this manner, by applying the processing described in the above embodiment to the security communication system, data transmission / reception for a plurality of objects can be performed while ensuring confidentiality and integrity.
以上、本発明を実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。発明の要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれる。 As mentioned above, although this invention was demonstrated using embodiment, the technical scope of this invention is not limited to the range as described in the said embodiment. Various changes or improvements can be added to the above-described embodiment without departing from the gist of the invention, and embodiments to which such changes or improvements are added are also included in the technical scope of the present invention.
また、上記の実施形態は、クレーム(請求項)にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組合せの全てが発明の解決手段に必須であるとは限らない。前述した実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜の組合せにより種々の発明を抽出できる。実施形態に示される全構成要件から幾つかの構成要件が削除されても、効果が得られる限りにおいて、この幾つかの構成要件が削除された構成が発明として抽出され得る。 Further, the above embodiments do not limit the invention according to the claims (claims), and all combinations of features described in the embodiments are not necessarily essential to the solution means of the invention. Absent. The embodiments described above include inventions at various stages, and various inventions can be extracted by appropriately combining a plurality of disclosed constituent elements. Even if some constituent requirements are deleted from all the constituent requirements shown in the embodiment, as long as an effect is obtained, a configuration from which these some constituent requirements are deleted can be extracted as an invention.
たとえば、上記実施形態では、有線方式あるいは無線方式でのネットワークプロトコルにおけるデータ処理について説明したが、メインシステムとエンジン部との間で協調処理を行なう場合に、処理が階層的に定義されていて、その内の一部の処理をハードウェアで構成されたエンジン部で行なうシステム構成であればよく、エンジン部が行なう処理内容は、通信プロトコルに関わる処理に限定されるものではない。 For example, in the above embodiment, the data processing in the network protocol in the wired system or the wireless system has been described. However, when the cooperative processing is performed between the main system and the engine unit, the processing is hierarchically defined, A system configuration in which a part of the processing is performed by an engine unit configured by hardware is sufficient, and the processing content performed by the engine unit is not limited to processing related to a communication protocol.
また、上記実施形態では、メインシステムの中央演算制御処理部110側のデータ解析部113や処理手順制御部115をソフトウェア処理で構成し、ソフトウェア(中央演算制御処理部110)とハードウェア(エンジン部200)との協調動作を行なう場合における処理について説明したが、中央演算制御処理部110側のデータ解析部113や処理手順制御部115をハードウェア処理回路で構成したものであってもよい。
In the above embodiment, the
また、上記図11に示したデータ処理装置3の具体的な構成例では、中央演算制御処理部110が、メモリ部120に対してバスマスターとなって、メモリ部120から処理対象データを読み出して制御部260に渡す形態を用いていたが、データの転送形態は、必ずしもこのようなものに限定されず、たとえば図2〜図4に示した何れをも採用し得る。
Further, in the specific configuration example of the
たとえば、エンジン部200にDMAコントローラ部264を設けて、エンジン部200側が支配的となってデータ転送を行なうようにしてもよい。この場合、たとえば、図12に示した分割データの転送順に従って、分割データとその分割データに対する処理内容とをディスクリプタキュー構造でディスクリプタ領域127に格納するのがよい。
For example, the
また、上記実施形態では、パーソナルコンピュータなどの情報処理装置に本発明に係るデータ処理装置を適用した事例で説明したが、これに限らず、様々な形態の装置に上記実施形態で説明した技術を適用することができる。たとえば、無線LAN(Local Area Network)にて使用される基地局としてのアクセスポイントや、端末側の装置に組み込まれるLANカードなどにも適用することができる。これらの場合の装置構成としては、図1に示したデータ処理装置3の部分を少なくとも含んでいればよいのはいうまでもない。また、エンジン部200の部分をメインシステム100に装着される着脱可能なデータ処理装置のモジュール(たとえば基板モジュール)として提供する形態であってもよい。
In the above embodiment, the data processing apparatus according to the present invention is applied to an information processing apparatus such as a personal computer. However, the present invention is not limited to this, and the technology described in the above embodiment is applied to various types of apparatuses. Can be applied. For example, the present invention can also be applied to an access point as a base station used in a wireless local area network (LAN) or a LAN card incorporated in a terminal-side device. It goes without saying that the device configuration in these cases only needs to include at least the portion of the
1…コンピュータ装置、3…データ処理装置、100…メインシステム、110…中央演算制御処理部、113…データ解析部、115…処理手順制御部、117…アクセラレータドライバ、120…メモリ部、122…ROM、124…RAM(主記憶部)、125…処理データ格納領域、126…コマンド格納領域、127…ディスクリプタ領域、130…一次ドライバ、132…データ解析部、134…データ分割検討部、136…分割条件設定部、138…分割処理部、140…二次ドライバ、142…データプール、144…データセレクタ、146…順序基準設定部、150…インタフェース部、180…内部バス、200…エンジン部、240…処理部、242…秘匿処理部、242a…暗号化処理部、242b…復号化処理部、244…認証処理部、246…チェックサム処理部、248…セキュリティ処理部、249…同一性確認処理部、250,252…セレクタ、260…制御部、262…バスIF部、264…DMAコントローラ部、266…指示制御部
DESCRIPTION OF
Claims (18)
前記エンジン部が担当するそれぞれ異なる処理内容の複数の処理について、
前記複数の処理の各々で処理対象とされる前記処理対象データを所定サイズに分割し、
所定の基準に基づいて、分割された各分割データの前記エンジン部への転送順序を決定し、
決定された前記転送順序に従って、前記分割データを前記エンジン部へ順次転送し、
前記エンジン部において、前記メインシステムから転送された前記分割データの前記処理内容に応じた処理を順次実行し、
処理済みデータを前記メインシステムに転送する
ことを特徴とするデータ処理方法。 A data processing method of transferring processing target data from a main system to an engine unit configured by hardware, performing predetermined processing on the processing target data, and transferring processed data to the main system,
For a plurality of processes with different processing contents in charge of the engine unit,
Dividing the processing target data to be processed in each of the plurality of processes into a predetermined size;
Based on a predetermined standard, determine the transfer order of each divided data to the engine unit,
According to the determined transfer order, sequentially transfer the divided data to the engine unit,
In the engine unit, sequentially execute processing according to the processing content of the divided data transferred from the main system,
A data processing method characterized by transferring processed data to the main system.
ことを特徴とする請求項1に記載のデータ処理方法。 The data processing method according to claim 1, wherein the predetermined criterion is determined according to an application applied by the main system.
ことを特徴とする請求項1に記載のデータ処理方法。 The data processing method according to claim 1, wherein the predetermined criterion is any one of a priority order of processing contents, a bandwidth reservation order in communication, and a processing request arrival order.
ことを特徴とする請求項1に記載のデータ処理方法。 The data processing method according to claim 1, wherein the plurality of processes having different processing contents are an encryption process, a decryption process, an authentication process, or a checksum process in a communication protocol.
ことを特徴とする請求項4に記載のデータ処理方法。 The data processing method according to claim 4, wherein the encryption process, the decryption process, and the authentication process are in accordance with an SSL protocol, a TLS protocol, or an IPsec protocol.
ことを特徴とする請求項4に記載のデータ処理方法。 The data processing method according to claim 4, wherein the checksum processing is in accordance with a TCP protocol or a UDP protocol.
所定のタイミングで、前記記憶部から前記処理内容の情報と前記アドレス情報とを順に読み出して、前記分割データに対して前記処理内容に応じた処理を順次実行する
ことを特徴とする請求項1に記載のデータ処理方法。 Information on the processing content notified to the engine unit for each of the divided data and address information indicating the storage position in the main system of the processing target data corresponding to the processing content are associated with each other and sequentially stored in a predetermined manner. Store in the department,
The processing content information and the address information are sequentially read from the storage unit at a predetermined timing, and processing corresponding to the processing content is sequentially executed on the divided data. The data processing method described.
ことを特徴とする請求項7に記載のデータ処理方法。 The data processing method according to claim 7, wherein the information on the processing contents and the address information are stored in and read from the storage unit by a first-in first-out method.
前記メインシステムは、
前記エンジン部が担当するそれぞれ異なる処理内容の複数の処理について、前記複数の処理の各々で処理対象とされる前記処理対象データを所定サイズに分割し、所定の基準に基づいて、分割された各分割データの前記エンジン部への転送順序を決定する処理手順制御部
を備えていることを特徴とするデータ処理装置。 An engine unit configured by hardware and a main system are provided, the processing target data is transferred from the main system to the engine unit, and predetermined processing is performed on the processing target data. A data processing device for transfer to a system,
The main system is
For a plurality of processes having different processing contents handled by the engine unit, the processing target data to be processed in each of the plurality of processes is divided into a predetermined size, and each of the divided processes is performed based on a predetermined criterion. A data processing apparatus comprising: a processing procedure control unit that determines a transfer order of divided data to the engine unit.
前記複数の処理の各々で処理対象とされる前記処理対象データを分割する際の前記所定サイズを判断するデータ分割検討部と、
前記データ分割検討部の判断結果に従った前記所定サイズで前記処理対象データを分割する分割処理部と
を有していることを特徴とする請求項9に記載のデータ処理装置。 The processing procedure control unit
A data division examination unit that determines the predetermined size when dividing the processing target data to be processed in each of the plurality of processes;
The data processing apparatus according to claim 9, further comprising: a division processing unit that divides the processing target data at the predetermined size according to a determination result of the data division examination unit.
さらに、前記データ分割検討部に対して、前記所定サイズを判断する際の条件を設定する分割条件設定部を有しており、
前記前記データ分割検討部は、前記分割条件設定部により設定された条件に従って前記処理対象データを分割する前記所定サイズを決定し、決定した所定サイズを前記分割処理部に通知する
ことを特徴とする請求項10に記載のデータ処理装置。 The processing procedure control unit
Furthermore, the data division examination unit has a division condition setting unit that sets conditions for determining the predetermined size,
The data division examination unit determines the predetermined size for dividing the processing target data in accordance with the condition set by the division condition setting unit, and notifies the division processing unit of the determined predetermined size. The data processing apparatus according to claim 10.
前記複数の処理の各々で処理対象とされる前記処理対象データのそれぞれについて、前記処理対象データを分割する必要があるか否かを判定するデータ解析部
をさらに備え、
前記処理手順制御部は、前記データ解析部が前記処理対象データを分割する必要があると判定した場合に、前記所定サイズを決定して前記分割処理部に通知する
ことを特徴とする請求項10に記載のデータ処理装置。 The processing procedure control unit
A data analysis unit for determining whether or not it is necessary to divide the processing target data for each of the processing target data to be processed in each of the plurality of processes;
The processing procedure control unit determines the predetermined size and notifies the division processing unit when determining that the data analysis unit needs to divide the processing target data. The data processing apparatus described in 1.
前記データ処理部は、前記それぞれ異なる処理内容の複数の処理として、通信プロトコルにおける、暗号化処理、復号化処理、認証処理、あるいはチェックサム処理を、それぞれ独立して行なう個別のハードウェア回路で構成された機能部を有している
ことを特徴とする請求項9に記載のデータ処理装置。 The engine unit includes a data processing unit that performs predetermined data processing and a control unit that controls the data processing unit,
The data processing unit is composed of individual hardware circuits that independently perform encryption processing, decryption processing, authentication processing, or checksum processing in a communication protocol as the plurality of processes having different processing contents. The data processing device according to claim 9, further comprising: a functional unit configured as described above.
をさらに備えていることを特徴とする請求項9に記載のデータ処理装置。 A storage for sequentially storing the information on the processing content notified to the engine unit for each of the divided data and the address information indicating the storage position in the main system of the processing target data corresponding to the processing content The data processing apparatus according to claim 9, further comprising: a unit.
ことを特徴とする請求項14に記載のデータ処理装置。 When the engine unit receives an instruction to start processing from the processing procedure control unit of the main system, the information on the processing content and address information indicating the storage location in the main system of the processing target data corresponding to the processing content The data processing apparatus according to claim 14, wherein the processing is sequentially executed from the storage unit, and processing corresponding to the processing content is sequentially executed on the divided data.
をさらに備えていることを特徴とする請求項14に記載のデータ処理装置。 The data processing apparatus according to claim 14, further comprising a memory control unit that performs storage and reading of the processing content information and the address information in the storage unit by a first-in first-out method.
ことを特徴とする請求項16に記載のデータ処理装置。 The data processing apparatus according to claim 16, wherein the memory control unit is provided in the engine unit.
ことを特徴とする請求項14に記載のデータ処理装置。
The data processing apparatus according to claim 14, wherein the engine unit includes a memory control unit that performs reading of the processing content information and the address information from the storage unit by DMA transfer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003406900A JP2005167870A (en) | 2003-12-05 | 2003-12-05 | Method and apparatus for processing data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003406900A JP2005167870A (en) | 2003-12-05 | 2003-12-05 | Method and apparatus for processing data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005167870A true JP2005167870A (en) | 2005-06-23 |
Family
ID=34729110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003406900A Pending JP2005167870A (en) | 2003-12-05 | 2003-12-05 | Method and apparatus for processing data |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005167870A (en) |
Cited By (4)
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 |
JP2008067152A (en) * | 2006-09-08 | 2008-03-21 | Renesas Technology Corp | Data processor |
WO2009005089A1 (en) * | 2007-07-03 | 2009-01-08 | Nec Corporation | Data encryption/decryption method and data processing device |
JP2010268293A (en) * | 2009-05-15 | 2010-11-25 | Hitachi Ltd | Communications apparatus and communication processing method |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS588336A (en) * | 1981-07-06 | 1983-01-18 | Hitachi Ltd | Data transferring method |
JPH0883257A (en) * | 1994-09-13 | 1996-03-26 | Hitachi Ltd | Method for optimizing process execution of parallel computer system |
JPH09224066A (en) * | 1996-02-14 | 1997-08-26 | Kokusai Denshin Denwa Co Ltd <Kdd> | Communication protocol parallel processor |
JPH10240128A (en) * | 1996-12-26 | 1998-09-11 | Toshiba Corp | Ciphering device, cryptographic key generation method and method of managing cryptographic key, and prime number generation device and method therefor |
JP2000013609A (en) * | 1998-06-23 | 2000-01-14 | Fujitsu Ltd | Encoding device |
WO2002048857A2 (en) * | 2000-12-13 | 2002-06-20 | Infineon Technologies Ag | Cryptographic processor |
JP2003503963A (en) * | 1999-06-30 | 2003-01-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Dynamic connection to multiple origin servers with transcoding proxy |
JP2005167544A (en) * | 2003-12-02 | 2005-06-23 | Sony Corp | Method and device for processing data |
-
2003
- 2003-12-05 JP JP2003406900A patent/JP2005167870A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS588336A (en) * | 1981-07-06 | 1983-01-18 | Hitachi Ltd | Data transferring method |
JPH0883257A (en) * | 1994-09-13 | 1996-03-26 | Hitachi Ltd | Method for optimizing process execution of parallel computer system |
JPH09224066A (en) * | 1996-02-14 | 1997-08-26 | Kokusai Denshin Denwa Co Ltd <Kdd> | Communication protocol parallel processor |
JPH10240128A (en) * | 1996-12-26 | 1998-09-11 | Toshiba Corp | Ciphering device, cryptographic key generation method and method of managing cryptographic key, and prime number generation device and method therefor |
JP2000013609A (en) * | 1998-06-23 | 2000-01-14 | Fujitsu Ltd | Encoding device |
JP2003503963A (en) * | 1999-06-30 | 2003-01-28 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Dynamic connection to multiple origin servers with transcoding proxy |
WO2002048857A2 (en) * | 2000-12-13 | 2002-06-20 | Infineon Technologies Ag | Cryptographic processor |
JP2005167544A (en) * | 2003-12-02 | 2005-06-23 | Sony Corp | Method and device for processing data |
Cited By (9)
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 |
JP2008067152A (en) * | 2006-09-08 | 2008-03-21 | Renesas Technology Corp | Data processor |
US8181024B2 (en) | 2006-09-08 | 2012-05-15 | Renesas Electronics Corporation | Data processing apparatus |
US8918646B2 (en) | 2006-09-08 | 2014-12-23 | Renesas Electronics Corporation | Data processing apparatus |
WO2009005089A1 (en) * | 2007-07-03 | 2009-01-08 | Nec Corporation | Data encryption/decryption method and data processing device |
US8341394B2 (en) | 2007-07-03 | 2012-12-25 | Nec Corporation | Data encryption/decryption method and data processing device |
JP5487966B2 (en) * | 2007-07-03 | 2014-05-14 | 日本電気株式会社 | Data encryption / decryption processing method and data processing apparatus |
JP2010268293A (en) * | 2009-05-15 | 2010-11-25 | Hitachi Ltd | Communications apparatus and communication processing method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4018701B2 (en) | Internet protocol tunneling using templates | |
US7774593B2 (en) | Encrypted packet, processing device, method, program, and program recording medium | |
US8468337B2 (en) | Secure data transfer over a network | |
EP1203477B1 (en) | Protection of communications | |
CN101582901B (en) | Information processing apparatus and control method thereof | |
US8261055B2 (en) | Information processing apparatus and system and data communication method pertaining to the information processing system | |
US7716471B2 (en) | Communication system and network control apparatus with encryption processing function, and communication control method | |
JP5205075B2 (en) | Encryption processing method, encryption processing device, decryption processing method, and decryption processing device | |
US8571206B2 (en) | Information transmitting apparatus, information transmitting method, and computer product | |
JP2002287620A (en) | Security communication packet processor and security communication packet processing method | |
JP6319369B2 (en) | PROCESS CONTROL DEVICE, PROCESS CONTROL METHOD, AND PROCESS CONTROL PROGRAM | |
JP2008035300A (en) | Packet encryption processor and packet encryption processing method | |
CN113810397B (en) | Protocol data processing method and device | |
KR100624691B1 (en) | Apparatus and method for decryption processing of block encrypted data | |
US8316431B2 (en) | Concurrent IPsec processing system and method | |
JP2005167870A (en) | Method and apparatus for processing data | |
JP4264644B2 (en) | Data processing method and data processing apparatus | |
US20080181404A1 (en) | Encrypted packet communication system | |
CN100502348C (en) | Network safety processing equipment and method thereof | |
JP2004328359A (en) | Packet processor | |
JP2006041684A (en) | Encryption processing apparatus and encryption processing method | |
US20060013397A1 (en) | Channel adapter managed trusted queue pairs | |
CN111031055B (en) | IPsec acceleration device and implementation method | |
JP2009060245A (en) | Communication control method, program and communication device | |
CN112015564A (en) | Encryption and decryption processing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060619 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20091007 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091015 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20091201 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100406 |