JP2008067152A - データ処理装置 - Google Patents

データ処理装置 Download PDF

Info

Publication number
JP2008067152A
JP2008067152A JP2006243949A JP2006243949A JP2008067152A JP 2008067152 A JP2008067152 A JP 2008067152A JP 2006243949 A JP2006243949 A JP 2006243949A JP 2006243949 A JP2006243949 A JP 2006243949A JP 2008067152 A JP2008067152 A JP 2008067152A
Authority
JP
Japan
Prior art keywords
processing
data
unit
encryption
decryption
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.)
Granted
Application number
JP2006243949A
Other languages
English (en)
Other versions
JP4991223B2 (ja
Inventor
Yasushi Nagai
靖 永井
Hiroshi Nakakoshi
洋 中越
Shigeki Taira
重喜 平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Technology Corp
Original Assignee
Renesas Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Technology Corp filed Critical Renesas Technology Corp
Priority to JP2006243949A priority Critical patent/JP4991223B2/ja
Priority to US11/779,309 priority patent/US8181024B2/en
Publication of JP2008067152A publication Critical patent/JP2008067152A/ja
Priority to US13/456,630 priority patent/US8918646B2/en
Application granted granted Critical
Publication of JP4991223B2 publication Critical patent/JP4991223B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】ハードウェア処理回路(アクセラレータ)によりデータ処理を行う構成において、データに対する複数のアクセスによる処理効率の悪さを改善できる技術を提供する。
【解決手段】本ネットワークデータ処理装置100のネットワークデータ処理アクセラレータ106において、暗復号、メッセージ認証、及びチェックサムの各処理に対応する処理部(114,116,118)を有し、各処理の組み合わせを含むデータ処理において、バスI/F部112等を介したメモリ103等に対する同一データのアクセスを1度にまとめ、また、各処理のデータ処理単位の最小公倍数を用いてパイプライン処理する。
【選択図】図1

Description

本発明は、ハードウェア(ハードウェア処理回路)で構成されるデータ処理部において、メモリ、ネットワーク、バス等から読み出しや受け取り(受信)するデータに対して所定の処理(データ処理)を行って、その処理済データを前記メモリ、ネットワーク、バス等へ書き込みや転送(送信)するデータ処理装置の技術に関する。特に、所定の処理として、例えばファイルの暗復号(暗号化/復号化)処理や改ざん検知処理、あるいは、ネットワークの通信プロトコル処理における暗復号処理、メッセージ認証処理、及びチェックサム処理などを、効率良く高速に行う技術に関する。
近年、計算機や通信の分野では、送信機でデータを暗号化して配信し、受信機で配信を受けたデータを復号化することによって安全にデータを送受信する情報の秘匿技術が知られている。例えば、ネットワークを用いたデータ通信では、データの機密性や完全性を確保するため暗号やメッセージ認証の技術が用いられている。また、メディアに格納されたコンテンツなどのファイルの保護、完全性の確保のためにも同様の技術が用いられる。
従来、これらの暗復号、メッセージ認証、チェックサム等の処理の技術は、主にソフトウェアで行う仕組みが採られていた。このソフトウェアで行う仕組みでは、柔軟な運用が可能であるが、その所定の処理が複雑になるにつれ処理時間が長くなり、処理スループットの低下が問題となる。
これを改善する一手法として、特開2004−53716号公報(特許文献1)や特開平10−320191号公報(特許文献2)に記載されているように、暗復号やメッセージ認証等の処理をハードウェア処理回路で行うことによりアクセラレート(高速化)する手法が考えられている。即ちこの手法では、暗復号などの特定の処理に対応した高速化のための、ハードウェアで構成されるデータ処理部(アクセラレータ)を設ける。この手法では、特定の処理が複雑であっても、処理スループットの低下を防ぐことができる。
特開2004−53716号公報 特開平10−320191号公報
また、暗復号やメッセージ認証などの処理のアルゴリズムは様々である。例えばIPsec(IP Security Protocol)や、SSL(Secure Socket Layer)/TLS(Transport Layer Security)に代表されるネットワークセキュリティプロトコルにおいて、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)などの共通鍵暗号を用いた暗復号処理と、MD5(Message Digest #5)やSHA−1(Secure Hash Algorithm)などのハッシュアルゴリズムを用いたメッセージ認証処理が義務付けられている。しかし、これらの暗復号やメッセージ認証の処理は、ネットワークプロトコルとしてレイヤが分かれているため、レイヤごとに独立して行われていた。
しかしながら、例えばパケットの中で多くを占めるペイロード部分(データ本体)に対しては、暗復号、メッセージ認証のハッシュ値計算、及びチェックサムの処理が重複して行われる。即ち、同一データに対して、それら複数の種類の処理が、対応するデータ処理部(アクセラレータ)により行われる。その場合、各種アクセラレータが個々に同一データにアクセスして処理を進める。そのため、複数のアクセス、例えばメモリの同一アドレスに対するデータ読み出し/書き込みの重複により、処理効率が悪いという問題があった。
前記特許文献1,2の技術は、個別の処理に対応したアクセラレータの例であって、同一データに対する複数の種類の処理を行う場合に関しては効率が不十分である。
本発明は以上のような問題に鑑みてなされたものであり、その目的は、所定のデータ処理を高速化のためのハードウェア処理回路(アクセラレータ)により行う構成において、データに対する複数のアクセスによる処理効率の悪さを改善できる技術を提供することにある。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。前記目的を達成するために、本発明は、所定のデータ処理を高速化のためのハードウェア処理回路(アクセラレータ)により行う、半導体集積回路装置(IC)等のデータ処理装置の技術であって、以下に示す技術的手段を備えることを特徴とする。
本データ処理装置は、データ処理を構成する複数の種類の処理のそれぞれに対応する処理部として、例えば、データの暗号化及び復号化の処理を行うための暗復号処理部と、データのメッセージ認証の処理を行うためのメッセージ認証処理部と、データのチェックサムの処理を行うためのチェックサム処理部とを有し、データに対してアクセスし、暗復号処理部による暗号化又は復号化、メッセージ認証処理部によるメッセージ認証、及びチェックサム処理部によるチェックサムの処理の組み合わせを含む所定のデータ処理を行うものである。対象となるデータ処理は、複数の種類の処理を含んで構成され、それら複数の処理による同一データに対する入出力のアクセスが従来重複するものや、前段の処理結果を後段の処理が利用するものであり、また、メモリ、ネットワーク、及びバス等に対するデータの読み込み/書き込み等の入出力のアクセスの処理との組み合わせである。
そして、本データ処理装置では、所定のデータ処理を構成する複数の種類の処理についての所定の順序及び組み合わせでの並列及び/又は連続的な処理を効率的に行うための手段として、複数の種類の処理における第1のデータ(同一データなど)に対するアクセスに関し、従来では重複するアクセスを1度(最小限)にまとめる。換言すれば、アクセス数を、従来各種処理部が個別にデータにアクセスする場合よりも少ない回数にまとめる。これにより、複数の種類の処理に対応する処理部により並列的及び/又は連続的に処理し、各種処理の実行に要するバス占有率や時間などを下げる。
また、第1のデータに対する所定のデータ処理において、それを構成する複数の種類の処理及び対応する処理部の各データ処理単位の最小公倍数を、それら処理部における統一されたデータ処理単位として用いて、パイプライン処理する。
また、本データ処理装置は、更にデータの入出力を行うインタフェース部を有し、所定のデータ処理において、インタフェース部を介してデータにアクセスして処理する。また、例えば、レジスタやディスクリプタによって、複数の種類の処理の組み合わせや順序、処理部での暗復号やメッセージ認証などの処理の様々なタイプ(方式、アルゴリズム、プロトコル等)などを指定して対応する。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。本発明によれば、所定のデータ処理を高速化のためのハードウェア処理回路(アクセラレータ)により行う構成において、データに対する複数のアクセスによる処理効率の悪さを改善できる。特に、処理実行にかかるバス占有率などが下がり、また、処理全体としてのスループットが上がるという利点がある。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
本発明の実施の形態では、ネットワークデータ処理を行うアクセラレータにおいて、複数の種類の処理ごとの処理部を備え、メモリ(バス)やネットワークに対する最小限のデータアクセス回数と、複数の処理部のデータ処理単位の統一によるパイプライン処理の動作が特徴である。
図1〜図4を用いて本発明の一実施の形態のネットワークデータ処理装置を説明する。図1は、本ネットワークデータ処理装置(データ処理装置と略する)100の全体の構成を示す。図2は、本データ処理装置100に備えるネットワークデータ処理アクセラレータ(アクセラレータと略する)106のレジスタ構成を示す。図3は、アクセラレータ106のディスクリプタ構成を示す。図4は、アクセラレータ106のSSL/TLS送信時のデータ処理についてのパイプライン処理動作を示す。
<ネットワークデータ処理装置>
図1において、本データ処理装置100は、CPU101、バス102、メモリ103、入力装置104、出力装置105、ネットワークデータ処理アクセラレータ(アクセラレータ)106、送信バッファ107、受信バッファ108、NI/F(ネットワークインタフェース)部109を有する構成である。NI/F部109によりネットワーク190と接続されている。
CPU101は、バス102を介して、各種デバイス(メモリ103〜アクセラレータ106等)を管理し、ネットワーク190へのデータ送信や、ネットワーク190からのデータ受信を制御する。メモリ103は、CPU101の実行するプログラムやデータを格納する。入力装置104は、本データ処理装置100のユーザ操作やデータを受け取るための装置である。出力装置105は、本データ処理装置100からのユーザへの通知情報やデータを送出するための装置である。
送信バッファ107は、ネットワーク190へ送出するデータを一時保存するためのバッファである。受信バッファ108は、ネットワーク190から受信したデータを一時保存するためのバッファである。NI/F部109は、送信バッファ107に格納されたデータのネットワーク190への送出と、ネットワーク190から受信したデータの受信バッファ108への格納とを行う。
アクセラレータ106は、ネットワーク190の送受信データについて、暗復号、メッセージ認証、及びチェックサムの3つの種類の処理を高速に行うためのハードウェア処理回路である。アクセラレータ106は、制御部110、制御バス111、バスI/F部112、バス出力データセレクタ113、暗復号部(暗号/復号処理部)114、MA部(メッセージ認証処理部)116、CS部(チェックサム処理部)118、入力セレクタ(暗復号部入力セレクタ)115、入力セレクタ(MA部入力セレクタ)117、入力セレクタ(CS部入力セレクタ)119、送信出力データセレクタ120を有する構成である。
制御部110は、CPU101からの指示を、バス102を介して受け取り、アクセラレータ106の各ブロック(バスI/F部112〜送信出力データセレクタ120)の動作を決定する。制御バス111は、制御部110から各ブロックへの指示を伝達するためのバスである。
バスI/F部112は、バス102に対するI/Fであり、バス102を介して、ネットワーク190へ送信するデータをメモリ103や入力装置104から読み出す機能と、ネットワーク190から受信したデータをメモリ103や出力装置105へ送出(書き込み)する機能とを有する。バス出力データセレクタ113は、受信バッファ108を通じて受信したデータ、暗復号部114、MA部116、及びCS部118の処理結果データのうちのいずれのデータを、バスI/F部112へ入力しバスI/F部112を介してメモリ103や出力装置105へ出力するかを選択する。
暗復号部114は、入力データの暗号化及びその復号化の処理を行う。暗復号部114は、指示に応じて暗号化または復号化が可能である。暗復号部入力セレクタ115は、暗復号部114へ与えるデータを、暗復号部114、MA部116、CS部118、受信バッファ108、及びバスI/F部112のうちいずれの出力しているデータとするかを選択する。
MA部116は、メッセージ認証処理のために、入力データのハッシュ値及びMAC(メッセージ認証コード)値を計算して比較処理する。MA部入力セレクタ117は、MA部116へ与えるデータを、暗復号部114、MA部116、CS部118、受信バッファ108、及びバスI/F部112のうちいずれの出力しているデータとするかを選択する。
CS部118は、チェックサム処理として入力データのチェックサム値を計算する。CS部入力セレクタ119は、CS部118へ与えるデータを、暗復号部114、MA部116、CS部118、受信バッファ108、及びバスI/F部112のうちいずれの出力しているデータとするかを選択する。
送信出力データセレクタ120は、アクセラレータ106から送信バッファ107を介してネットワーク190へ送信するデータを、バスI/F部112、暗復号部114、MA部116、及びCS部118のうちいずれの出力データとするかを選択する。各セレクタ(113,115,117,119,120)は、制御部110からの指示に従い、入出力を選択する。
<レジスタ及びディスクリプタ>
制御部110は、図2に示すレジスタを持つ。CPU101は、これらのレジスタを設定する。その設定に従い、制御部110は、制御バス111を介して、アクセラレータ106の各ブロック(112〜120)を制御し、CPU101に指示されたデータ処理を行う。アクセラレータ106は、レジスタモードまたはディスクリプタモードによる動作が可能である。
図2のレジスタにおいて、第1処理設定レジスタ201、第2処理設定レジスタ202、第3処理設定レジスタ203、処理データ長(L)設定レジスタ204、ソースアドレス(SA)設定レジスタ205、デスティネーションアドレス(DA)設定レジスタ206、ディスクリプタアドレス(A)設定レジスタ207、処理開始設定レジスタ208を有する。
第1処理設定レジスタ201〜第3処理設定レジスタ203では、所定のデータ処理を構成するものとしてアクセラレータ106に行わせる3つの種類の処理(第1〜第3処理)及びその処理順序を設定する。第1処理設定レジスタ201は、最初の第1処理を設定する。第2処理設定レジスタ202は、次の第2処理を設定する。第3処理設定レジスタ203は、次の第3処理を設定する。形式として、第1〜第3処理は、その順序で行われる。
本実施の形態では、第1処理としては、メモリ103のリード(「MR」)、受信バッファ108のリード(「受信」)が設定できる。第2処理及び第3処理としては、メモリ103へのライト(「MW」)、送信バッファ108へのライト(「送信」)、暗号化処理(「暗号」)、復号化処理(「復号」)、メッセージ認証処理(「MA」)、チェックサム処理(「CS」)、及び処理無し、の組み合わせが設定できる。
処理データ長(L)設定レジスタ204は、Lとして、アクセラレータ106に行わせるデータ処理の入力データ長(全体サイズ)を設定する。ソースアドレス(SA)設定レジスタ205は、SAとして、アクセラレータ106がメモリ103、入力装置104、受信バッファ108等から読み出す処理対象データの先頭アドレスを設定する。デスティネーションアドレス(DA)設定レジスタ206は、DAとして、アクセラレータ106がメモリ103、出力装置105、送信バッファ107等へ処理結果データを送る領域の先頭アドレスを設定する。
ディスクリプタアドレス(A)設定レジスタ207には、アクセラレータ106をディスクリプタモードで処理実行させる場合に、Aとして、メモリ103に格納されているディスクリプタの先頭アドレスを設定する。処理開始設定レジスタ208は、「レジスタモードで実行開始」、「ディスクリプタモードで実行開始」、処理停止、暗復号処理タイプ、及びメッセージ認証処理タイプ等が設定でき、暗復号及びメッセージ認証処理タイプの指示と共に、アクセラレータ106の処理実行開始及び停止の制御が可能となっている。暗復号処理タイプは、DES暗号/3DES暗号/AES暗号/DES復号/3DES復号/AES復号などである。メッセージ認証処理タイプは、MD5/SHA-1/SHA-224/SHA-256/SHA-384/SHA-512などである。
レジスタモードで実行する場合、CPU101が、図2の各レジスタ(201〜206)を設定後、処理開始設定レジスタ208に、「レジスタモードで実行開始」コードを設定する。そのように設定するようにプログラムを組んでメモリ103に格納しておく。CPU101は、メモリ103に格納されたプログラムに従い、上記各レジスタの設定を行い、アクセラレータ106を動作させる。
ディスクリプタモードで実行する場合、CPU101が、図3に示す構造のディスクリプタをメモリ103に格納した後、その先頭アドレス(A)をA設定レジスタ207に設定し、処理開始設定レジスタ208に、「ディスクリプタモードで実行開始」コードを設定する。そのように設定するようにプログラムを組んでメモリ103に格納しておく。CPU101は、メモリ103に格納されたプログラムに従い、上記各レジスタの設定を行い、アクセラレータ106を動作させる。
図3のディスクリプタにおいて、第1処理設定ディスクリプタ301、第2処理設定ディスクリプタ302、第3処理設定ディスクリプタ303、処理データ長(L)設定ディスクリプタ304、ソースアドレス(SA)設定ディスクリプタ305、デスティネーションアドレス(DA)設定ディスクリプタ306を有する。
第1処理設定ディスクリプタ301〜第3処理設定ディスクリプタ303は、アクセラレータ106に行わせる第1〜第3処理を設定する。設定できる処理はレジスタモードの場合と同様である。L設定ディスクリプタ304、SA設定ディスクリプタ305、及びDA設定ディスクリプタ306では、レジスタモードと同様に、L、SA、DAを設定する。
<SSL/TLS送信>
次に、図4において、本実施の形態での所定のデータ処理の例として、SSL/TLS送信の場合におけるアクセラレータ106の動作を説明する。この場合、目的のデータ処理としては、まず、メモリ103に格納されたデータを読み込み、読み込んだデータを暗号化する。そして、暗号化されたデータに対しメッセージ認証処理とチェックサム処理を行い、暗号化されたデータを送信バッファ107へ送る(書き込む)。このようにして送信バッファ107に送られたデータを、NI/F部109がネットワーク190へ送信する。
上記のように動作させるために、データ処理装置100のCPU101は、次のようにレジスタ(201〜206,208)に設定する。第1処理設定レジスタ201に、第1処理としてメモリ103のリード(「MR」)を設定する。第2処理設定レジスタ202に、第2処理として暗号化処理(「暗号」)を設定する。第3処理設定レジスタ203に、第3処理としてメッセージ認証処理(「MA」)、チェックサム処理(「CS」)、及び送信バッファ107へのライト(「送信」)の3つの処理を設定する。L設定レジスタ204に、Lとして、暗号、メッセージ認証、及びチェックサムの処理を行うデータ長を設定する。SA設定レジスタ205に、SAとして、メモリ103に格納されている送信データの先頭アドレスを設定する。DA設定レジスタ206に、DAとして、送信バッファ107の送信可能領域の先頭アドレスを設定する。最後に処理開始設定レジスタ208に、「レジスタモードで処理開始」コードを設定する。またこのときに、暗復号タイプとしてAES暗号化、メッセージ認証タイプとしてSHA-1を指示設定したとする。
このとき、制御部110は、バスI/F部112、暗復号部114、MA部116、及びCS部118の各ブロックに対し、統一されたデータ処理単位(M)として64バイト単位で処理するように、制御バス111を介して指示する。これは以下のように決まる。まず、暗復号部114でのAES暗号化の処理単位が16バイトで、MA部116でのSHA-1の処理単位が64バイトで、CS部118でのチェックサムの処理単位が2バイトである。これらの最小公倍数が64バイトである。この64バイトを、アクセラレータ106の上記各ブロックにおける統一されたデータ処理単位(M)とする。そうすれば、アクセラレータ106での複数の処理の並列化及び連続化が容易になり、パイプライン処理が可能になるためである。
また、DES/3DESの処理単位は8バイト、AESの処理単位は16バイト、MD5/SHA-1/SHA-224/SHA-256/SHA-384/SHA-512の処理単位は64バイトである。これらを考慮し、アクセラレータ106は、暗復号及びメッセージ認証タイプに従い、暗復号、メッセージ認証、及びチェックサムの処理単位の最小公倍数を、それらの処理のパイプライン処理のために用いる統一されたデータ処理単位(M)とする。データ処理単位(M)は、ブロックサイズなどと言い換えることもできる。
また、制御部110は、レジスタ(第1処理設定レジスタ201〜第3処理設定レジスタ203)に設定された処理順序に従うため、暗復号部入力セレクタ115に、バスI/F部112からの入力を選択して暗復号部114に渡すように指示する。また、MA部入力セレクタ117に、暗復号部114の出力を選択してMA部116へ渡すように指示する。また、CS部入力セレクタ119に対しても、暗復号部114の出力を選択してCS部118に渡すように指示する。そして、送信出力データセレクタ120に対しては、暗復号部114の出力を選択して送信バッファ107へ渡すように指示する。
このように、本データ処理装置100及びアクセラレータ106では、複数の処理におけるデータ処理単位(M)を個別の処理の処理単位の最小公倍数である64バイトとし、各セレクタ(113,115,117,119,120)に処理データ入出力の選択を指示することによって、図4に示すようなパイプライン処理の動作を実現する。L設定レジスタ204に設定されたデータ長の値をLバイト、統一されたデータ処理単位をMバイトとすると、目的のデータ処理における処理対象データは、n=L/Mとなるn+2個の期間(T1〜Tn+2)に分けてパイプライン処理される。
このパイプライン処理は、詳しくは以下である。最初の期間T1では、第1処理として、バスI/F部112がSA設定レジスタ205に設定されたアドレス(SA)からM=64バイトのデータをリードし、そのデータを暗復号部入力セレクタ115を介して暗復号部114に渡す(MR(1))。
次に、期間T2では、バスI/F部112は、SA+64のアドレスからM=64バイトのデータをリードする(MR(2))。そしてこれと並行して、第2処理として、暗復号部114が1つ前の期間T1でバスI/F部112から受け取ったデータの暗号化を行い、その結果のデータを、セレクタ(117,119,120)を介してMA部116、CS部118、及び送信バッファ107に渡す(暗号(1))。
次に、期間T3では、バスI/F部112は、SA+(64×2)のアドレスからM=64バイトのデータをリードし(MR(3))、これと並行して、暗復号部114が期間T2でバスI/F部112から受け取ったデータの暗号化を行い、その結果のデータを、セレクタ(117,119,120)を介してMA部116、CS部118、及び送信バッファ107に渡す(暗号(2))。そしてさらに、第3処理として、MA部116、CS部118、及びNI/F部109は、1つ前の期間T2で暗復号部114から受け取ったデータに対する各処理(MA、CS、送信)を並行して行う。
期間Tk(3≦k≦n)では、バスI/F部112は、SA+(64×k)のアドレスからM=64バイトのデータをリードする(MR(k))。これと並行して、暗復号部114が1つ前の期間Tk−1でバスI/F部112から受け取ったデータの暗号化を行い、その結果のデータを、セレクタ(117,119,120)を介してMA部116、CS部118、及び送信バッファ107に渡す(暗号(k))。さらにMA部116、CS部118、及びNI/F部109は、1つ前の期間Tk−1で暗復号部114から受け取ったデータに対する各処理(MA(k)、CS(k)、送信(k))を並行して行う。
期間Tn+1では、暗復号部114が1つ前の期間nでバスI/F部112から受け取ったデータの暗号化を行い、その結果のデータを、セレクタ(117,119,120)を介してMA部116、CS部118、及び送信バッファ107に渡す(暗号(n))。さらにMA部116、CS部118、及びNI/F部109は、1つ前の期間Tnで暗復号部114から受け取ったデータに対する各処理(MA(n−1)、CS(n−1)、送信(n−1))を並行して行う。
最後に期間Tn+2では、MA部116、CS部118、及びNI/F部109は、1つ前の期間Tn+1で暗復号部114から受け取ったデータに対する各処理(MA(n)、CS(n)、送信(n))を並行して行う。以上で目的のデータ処理が完了する。
このように、各期間(T)で、メモリリード(MR)、暗号、メッセージ認証(MA)、チェックサム(CS)、及び送信(送信バッファライト)の処理を、第1〜第3処理に分けて並行して連続して処理する。各期間(T)は、MR、暗号、MA、CS、及び送信の処理のうち、最も処理時間のかかる処理によって決まる。例えば、アクセラレータ106のクロックのサイクルとして、M=64バイトの処理に関して、MRが40サイクル、暗号が40サイクル、MAが84サイクル、CSが32サイクルかかるものとする。その場合、期間T1及びT2は40サイクル、期間T3から期間n+2は84サイクルで実行する。アクセラレータ106で例えば100MHzのクロックを用いて1サイクルが10ns(ナノ秒)とすると、本実施の形態では、暗号、MA、及びCSを含むデータ処理が、約609Mbpsの処理スループットで可能となる。
従来のデータ処理と比較すると、暗号、MA、及びCSの各処理をそれぞれ異なるハードウェア(アクセラレータ)で実装して個々に動作している構成の場合、データアクセスとして、64バイトの暗号処理のために40サイクルのメモリリードと40サイクルのメモリライトが発生し、64バイトのMA及びCSの処理のためにも各40サイクルのメモリリードが発生する。このため、64バイトの暗号、MA、及びCSの処理のために、それぞれ、120(40+40+40)サイクル、124(40+84)サイクル、72(40+32)サイクルで、計316サイクルがかかる。例えば100MHzのクロックを用いたとしても、その処理スループットは、約162Mbps((64×8)/316×100≒162)しか出すことができない。また、この場合、バスI/Fを個々に持つために、その重複する機能を持つハードウェア(アクセラレータ)が複数存在するので、回路規模が比較的大きい。
一方、本実施の形態におけるアクセラレータ106では、バスI/F部112を、暗復号部114、MA部116、及びCS部118で共有しているため、回路規模が小さい利点がある。また、共有しているバスI/Fの入出力データを、3つの処理部(114,116,118)の各処理に効率良く渡せるように、各セレクタ(113,115,117,119,120)を配置しているので、効率の良い並列及び連続処理動作が可能となり、前記609Mbpsという高い処理スループットが実現できる。
上記に関し、ディスクリプタモードで実行する場合は、レジスタ(201〜206)に設定するのと同様の内容をディスクリプタ(301〜306)に記述し、その先頭アドレスをA設定レジスタ207に設定し、処理開始設定レジスタ208に「ディスクリプタモードで開始」コードを設定すればよい。これによって、レジスタモードで実行した場合と同様の動作をする。
また、前記複数の種類の処理の動作単位(M)の決定に関して、MA処理(MD5、SHA-1、SHA-224、SHA-256、SHA-384、SHA-512)の処理単位は従来64バイトであるが、これはさらに小さい単位に分割して処理可能である。例えば、このMA処理を4分割して16バイトを処理単位とすることができる。この場合、暗復号処理にDES、MA処理にSHA-256を選択し、これらとCSの処理を同時に行うものとした場合、各処理単位は、8バイト、16バイト、2バイトとなる。よって、その最小公倍数は16バイトとなり、本アクセラレータ106でのデータ処理単位(M)を16バイトとして同様にパイプライン処理が可能である。このように、分割可能な処理については分割して処理単位を小さくすることで、回路規模を削減した構成をとることもできる。
前記レジスタ等の設定によりアクセラレータ106で同時並行的に動作させる複数の種類の処理については、前記第1〜第3処理の3種類を設定可能にする例を示したが、この数は2であっても4以上であっても同様に実現できる。また、レジスタ等の形式は、前述に限らず、例えば処理順序や処理グループなどの設定を設けても構わない。また、レジスタ等に対して設定可能な処理は、前記組み合わせ(MR、MW、暗号、復号、MA、CS、送信、受信)に限らなくともよい。また、所定のデータ処理としては、前述のセキュリティ関連処理に限らず、例えば画像処理系やデジタルフィルタの各種演算などであっても適用できる。
以上、本実施の形態によれば、特に、暗復号、MA、CSなどの複数の種類の処理におけるデータに対するアクセスを1度にまとめることにより、処理実行にかかるバス占有率などが下がる。また、データアクセス数を削減すると共に、複数の種類の処理を並列及び連続的にパイプライン処理することにより、処理全体のスループットが向上する。
<SSL/TLS受信>
次に、図5において、同様の基本構成において、SSL/TLS受信の場合のデータ処理におけるアクセラレータ106の動作を説明する。SSL/TLS受信の場合、目的のデータ処理としては、まず、NI/F部109がネットワーク190からデータを受信し、そのデータを受信バッファ108に格納する。次に、そのデータのCS、MA、及び復号の処理を、暗復号部114、MA部116、及びCS部118において同時並行的に行う。その後、復号結果のデータを、バスI/F部112を介してメモリ103または出力装置105へ書き出す。
上記のように動作させるために、本データ処理装置100は、以下のようにレジスタ(201〜206,208)に設定する。第1処理設定レジスタ201に、第1処理として、受信、即ち受信データの受信バッファ108への格納(受信バッファ108からのリード)を設定する。第2処理設定レジスタ202に、CS、MA、及び復号の処理の組み合わせを設定する。第3処理設定レジスタ203に、メモリ103へのライト(MR)を設定する。L設定レジスタ204に、Lとして、レジスタ(201〜203)に設定した第1〜第3処理を行うデータ長を設定する。SA設定レジスタ205に、SAとして、受信バッファ108の受信データの格納領域の先頭アドレスを設定する。DA設定レジスタ206に、DAとして、メモリ103における受信データの復号結果を格納する領域の先頭アドレスを設定する。最後に処理開始設定レジスタ208に、暗復号処理タイプ、メッセージ認証処理タイプと共に、「レジスタモードで処理開始」コードを設定する。また、このとき、制御部110は、暗復号、MA、及びCSの処理の各処理単位の最小公倍数を、それらの統一された処理単位(M)として、処理を開始する。
また、制御部110は、レジスタ(201〜203)に設定された処理順序に従うために、暗復号部入力セレクタ115に、受信バッファ108からの入力を選択して暗復号部114に渡すように指示する。同様に、MA部入力セレクタ117にも、受信バッファ108からの入力を選択してMA部116に渡すように指示する。CS部入力セレクタ119に対しても、受信バッファ108からの入力を選択してCS部118に渡すように指示する。そして、バス出力データセレクタ113に対し、暗復号部114からの入力を選択してバスI/F部112に渡すように指示する。
このように、データ処理単位(M)を64バイトとし、各セレクタ(113,115,117,119,120)に処理データ入出力の選択を指示することによって、図5に示すようなパイプライン処理の動作を実現する。
図5のパイプライン処理において、まず期間T1では、第1処理として、NI/F部109が最初のM=64バイトを受信して受信バッファ108に格納する(受信(1))。次の期間T2では、NI/F部109が2番目の64バイトのデータを同様に受信して受信バッファ108に格納し(受信(2))、第2処理として、CS部118、MA部116、及び暗復号部114が、期間T1での最初の受信データに対する各処理(CS(1)、MA(1)、復号(1))を並行して行う。期間Tk(3≦k≦n)では、NI/F部109がk番目の64バイトのデータを受信し(受信(k))、CS部118、MA部116、及び暗復号部114が、期間Tk−1での(k−1)番目の受信データに対する各処理(CS(k−1)、MA(k−1)、復号(k−1))を並行して行う。さらに、期間Tk−1で暗復号部114が復号したデータを、バスI/F部112を介してメモリ103に書き出す(MW(k−2))。期間Tn+1では、CS部118、MA部116、及び暗復号部114が、期間Tnでのn番目の受信データに対する各処理(CS(n)、MA(n)、復号(n))を並行して行う。さらに、期間Tnで暗復号部114が復号したデータを、バスI/F部112を介してメモリ103に書き出す(MW(n−1))。期間Tn+2では、CS処理結果とMA処理結果の確認と並行して、期間Tn+1で暗復号部114が復号したデータを、バスI/F部112を介してメモリ103に書き出す(MW(n))。以上で完了する。
このように、受信、CS、MA、復号、及びMWの処理を並行して行うことによって、高速な受信処理が可能である。
<IPsec送信>
次に、図6において、同様の基本構成において、IPsec送信の場合のデータ処理におけるアクセラレータ106の動作を説明する。IPsec送信の場合、目的のデータ処理としては、まず、メモリ103に格納されたデータを読み込み、そのデータに対してCSと暗号の処理を行う。そして暗号処理されたデータに対してMA処理を行うと共に、暗号化されたデータをネットワーク190へ送信する。
上記のように動作させるために、本データ処理装置100は、以下のようにレジスタ(201〜206,208)に設定する。第1処理設定レジスタ201に、メモリ103のリード(MR)を設定する。第2処理設定レジスタ202に、CS、暗号の組み合わせを設定する。第3処理設定レジスタ203に、MA、送信(送信バッファ107へのライト)の組み合わせを設定する。L設定レジスタ204に、Lとして、CS、暗号、MA、及び送信の処理を行うデータ長を設定する。SA設定レジスタ205に、SAとして、メモリ103に格納されている送信データの先頭アドレスを設定する。DA設定レジスタ206に、DAとして、送信バッファ107の送信可能領域の先頭アドレスを設定する。最後に処理開始設定レジスタ208に、暗復号処理タイプ、メッセージ認証処理タイプと共に、「レジスタモードで処理開始」コードを設定する。また、このとき、制御部110は、暗復号、MA、CSの処理の各処理単位の最小公倍数を、処理単位(M)として処理を開始する。
また、制御部110は、レジスタ(201〜203)に設定された処理順序に従うために、暗復号部入力セレクタ115に、バスI/F部112からの入力を選択して暗復号部114に渡すよう指示する。同様に、MA部入力セレクタ117に、暗復号部114の出力を選択してMA部116へ渡すように指示する。CS部入力セレクタ119に対しても、バスI/F部112の出力を選択してCS部118へ渡すように指示する。そして送信出力データセレクタ120に対して、暗復号部114の出力を選択して送信バッファ107へ渡すように指示する。
このように処理単位(M)を64バイトとして、各セレクタ(113,115,117,120)に処理データ入出力の選択を指示することによって、図6に示すような動作を実現する。
図6のパイプライン処理において、まず期間T1では、第1処理として、バスI/F部112がSAからM=64バイトのデータをリードし、そのデータをCS部入力セレクタ119と暗復号部入力セレクタ115を介してCS部118及び暗復号部114に渡す(MR(1))。期間T2では、同様にバスI/F部112がSA+64のアドレスからM=64バイトのデータをリードする(MR(2))。これと並行して、第2処理として、CS部118と暗復号部114は、期間T1でバスI/F部112から受け取ったデータのCSと暗号の処理を行う(CS(1)、暗号(1))。暗号結果は、送信出力データセレクタ120を介して送信バッファ107に渡す。期間Tk(3≦k≦n)では、バスI/F部112がSA+(64×k)のアドレスからM=64バイトのデータをリードする(MR(k))。これと並行して、CS部118と暗復号部114は期間Tk−1でバスI/F部112がメモリ103から読み出したデータに対するCSと暗号の処理を行う(CS(k−1)、暗号(k−1))。さらに、第3処理として、MA部116とNI/F部109は、期間Tk−1で暗復号部114が暗号化したM=64バイトのデータのMAと送信の処理を行う(MA(k−2)、送信(k−2))。期間Tn+1では、CS部118と暗復号部114は期間Tn−1でバスI/F部112がメモリ103から読み出したデータに対するCSと暗号の処理を行う(CS(n)、暗号(n))。さらに、MA部116とNI/F部109は期間Tn−1で暗復号部114が暗号化したM=64バイトのデータのMAと送信の処理を行う(MA(n−1)、送信(n−1))。期間Tn+2では、MA部116とNI/F部109が期間Tnで暗復号部114が暗号化したM=64バイトのデータのMAと送信の処理を行う(MA(n)、送信(n))。以上で完了する。
このように、MR、暗号、MA、CS、送信の処理を並行して行うことによって、高速な送信処理が可能である。
<IPsec受信>
次に、図7において、同様の基本構成において、IPsec受信の場合のデータ処理におけるアクセラレータ106の動作を説明する。IPsec受信の場合、目的のデータ処理としては、まず、NI/F部109がネットワーク190からデータを受信し、そのデータを受信バッファ108に格納する。次に、そのデータのMA及び復号の処理を並行して行う。そして、その復号結果のデータに対しCS処理とメモリ103へのライトとを行う。
上記のように動作させるために、本データ処理装置100は、以下のようにレジスタ(201〜206,208)に設定する。第1処理設定レジスタ201に、受信、即ち受信データの受信バッファ108への格納を設定する。第2処理設定レジスタ202に、MA、復号の組み合わせを設定する。第3処理設定レジスタ203に、CS、MRの組み合わせを設定する。L設定レジスタ204に、Lとして、レジスタ(201〜203)に設定した第1〜第3処理を行うデータ長を設定する。SA設定レジスタ205に、受信バッファ108の受信データ格納領域の先頭アドレスを設定する。DA設定レジスタ206に、メモリ103における受信データの復号結果を格納する領域の先頭アドレスを設定する。最後に処理開始設定レジスタ208に、暗復号処理タイプ、メッセージ認証処理タイプと共に、「レジスタモードで処理開始」コードを設定する。また、このとき、制御部110は、暗復号、MA、CSの処理の各処理単位の最小公倍数を、処理単位(M)として処理を開始する。
また、制御部110は、レジスタ(201〜203)に設定された処理順序に従うために、暗復号部入力セレクタ115に、受信バッファ108からの入力を選択して暗復号部114に渡すように指示する。同様に、MA部入力セレクタ117にも、受信バッファ108からの入力を選択してMA部116に渡すように指示する。CS部入力セレクタ119に対しても、暗復号部114からの入力を選択してCS部118に渡すように指示する。そしてバス出力データセレクタ113に対して、暗復号部114からの入力を選択してバスI/F部112に渡すように指示する。
このように処理単位(M)を64バイトとして、各セレクタ(113,115,117,120)に処理データ入出力の選択を指示することによって、図7に示すようなパイプライン処理の動作を実現する。
図7のパイプライン処理において、まず期間T1では、第1処理として、NI/F部109が最初のM=64バイトのデータを受信して受信バッファ108に格納する(受信(1))。期間T2では、同様にNI/F部109が2番目のM=64バイトのデータを受信する(受信(2))。これと並行して、第2処理として、MA部116と暗復号部114が期間T1でNI/F部109で受信した最初のデータのMAと復号の処理を行う(MA(1)、復号(1))。期間Tk(3≦k≦n)では、NI/F部109がk番目のM=64バイトのデータを受信する(受信(k))。これと並行して、MA部116と暗復号部114が期間Tk−1でNI/F部109で受信した(k−1)番目のデータのMAと復号の処理を行う(MA(k−1)、復号(k−1))。さらに並行して、第3処理として、CS部118とバスI/F部112が、期間Tk−1で暗復号部114が復号した(k−2)番目のデータに対するCS処理及び復号結果のメモリ103へのライトを行う(復号(k−2)、MR(k−2))。期間Tn+1では、期間TnでNI/F部109が受信したn番目のデータのMAと復号の処理を並行して行う(MA(n)、復号(n))。さらに並行して、期間Tnで暗復号部114で復号した(n−1)番目のデータのCS処理とメモリライトを行う(CS(n−1)、MR(n−1))。期間Tn+2では、MA処理結果の確認と共に、期間Tn+1で暗復号部114が復号したn番目のデータのCS処理とメモリライトとを並行して行う(CS(n)、ME(n))。期間Tn+3では、n番目のデータに対するCS処理結果の確認を行う。以上で完了する。
このように、受信、MA、復号、CS、MRを並行して行うことによって、高速な受信処理が可能である。
<DTCP−IP,IP放送 送信>
次に、図8において、同様の基本構成において、DTCP−IP(Digital Transmission Content Protection over Internet Protocol)やIP放送の送信の場合のデータ処理におけるアクセラレータ106の動作を説明する。DTCP−IPやIP放送の送信の場合、目的のデータ処理としては、まず、メモリ103に格納されたデータを読み込み、そのデータに対して暗号処理を行う。そして暗号処理されたデータに対しCS処理を行い、暗号化されたデータをネットワーク190へ送信する。
上記のように動作させるために、本データ処理装置100は、以下のようにレジスタ(201〜206,208)に設定する。第1処理設定レジスタ201に、メモリ103のリード(MR)を設定する。第2処理設定レジスタ202に、暗号処理を設定する。第3処理設定レジスタ203に、CS、送信の組み合わせを設定する。L設定レジスタ204に、Lとして、レジスタ(201〜203)に設定した第1〜第3処理を行うデータ長を設定する。SA設定レジスタ205に、SAとして、メモリ103に格納されている送信データの先頭アドレスを設定する。DA設定レジスタ206に、DAとして、送信バッファ107の送信可能領域の先頭アドレスを設定する。最後に処理開始設定レジスタ208に、暗復号処理タイプ、メッセージ認証処理タイプと共に、「レジスタモードで処理開始」コードを設定する。また、このとき、制御部110は、暗号、CSの処理の各処理単位の最小公倍数を、処理単位(M)として処理を開始する。
また、制御部110は、レジスタ(201〜203)に設定された処理順序に従うために、暗復号部入力セレクタ115に、バスI/F部112からの入力を選択して暗復号部114に渡すように指示する。同様に、CS部入力セレクタ119に対しても、暗復号部114からの入力を選択してCS部118に渡すように指示する。そして送信出力データセレクタ120に対して、暗復号部114からの入力を選択して送信バッファ107に渡すように指示する。
このように処理単位(M)を64バイトとして、各セレクタ(113,115,117,120)に処理データ入出力の選択を指示することによって、図8に示すようなパイプライン処理の動作を実現する。
図8のパイプライン処理において、まず期間T1では、第1処理として、バスI/F部112がSAからM=64バイトのデータをリードして、そのデータを暗復号部114に渡す(MR(1))。期間T2では、バスI/F部112がSA+64のアドレスからM=64バイトのデータをリードする(MR(2))。これと並行して、第2処理として、暗復号部114は期間T1でバスI/F部112から受け取ったデータの暗号処理を行う(暗号(1))。期間Tk(3≦k≦n)では、バスI/F部112がSA+(64×k)のアドレスからM=64バイトのデータをリードする(MR(k))。これと並行して、暗復号部114が期間Tk−1でバスI/F部112がリードした(k−1)番目の64バイトのデータの暗号化を行う(暗号(k−1))。さらに並行して、第3処理として、期間Tk−1で暗復号部114が暗号化した(k−2)番目のデータのCSと送信の処理をCS部118とNI/F部109が行う(CS(k−2)、送信(k−2))。期間Tn+1では、暗復号部114が期間TnでバスI/F部112がリードしたn番目の64バイトのデータの暗号化を行う(暗号(n))。さらに並行して、期間Tnで暗復号部114が暗号化した(n−1)番目の64バイトのデータのCSと送信の処理をCS部118とNI/F部109が行う(CS(n−1)、送信(n))。期間Tn+2では、期間Tn+1で暗復号部114が暗号化したn番目の64バイトのデータのCSと送信の処理をCS部118とNI/F部109が行う(CS(n)、送信(n))。以上で完了する。
このように、MR、暗号、CS、送信の処理を並行して行うことにより、高速な送信処理が可能である。
<DTCP−IP,IP放送 受信>
次に、図9において、同様の基本構成において、DTCP−IPやIP放送の受信の場合のデータ処理におけるアクセラレータ106の動作を説明する。DTCP−IPやIP放送の受信の場合、目的のデータ処理としては、まず、NI/F部109がネットワーク190からデータを受信し、そのデータを受信バッファ108に格納する。次に、そのデータの復号及びCS処理を並行して行う。その後、復号結果データをメモリ103に書き出す。
上記のように動作させるために、本データ処理装置100は、以下のようにレジスタ(201〜206,208)に設定する。第1処理設定レジスタ201に、受信、即ち受信データの受信バッファ108への格納を設定する。第2処理設定レジスタ202に、復号とCSの組み合わせを設定する。第3処理設定レジスタ203に、メモリ103へのライト(MW)を設定する。L設定レジスタ204に、Lとして、レジスタ(201〜203)に設定した第1〜第3処理を行うデータ長を設定する。SA設定レジスタ205に、SAとして、受信バッファ108の受信データの格納されている領域の先頭アドレスを設定する。DA設定レジスタ206に、DAとして、メモリ103における受信データの復号結果を格納する領域の先頭アドレスを設定する。最後に処理開始設定レジスタ208に、暗復号処理タイプと共に、「レジスタモードで処理開始」コードを設定する。また、このとき、制御部110は、暗復号、CSの処理の各処理単位の最小公倍数を、処理単位(M)として処理を開始する。
また、制御部110は、レジスタ(201〜203)に設定された処理順序に従うために、暗復号部入力セレクタ115に、受信バッファ108からの入力を選択して暗復号部114に渡すように指示する。CS部入力セレクタ119に対しても、受信バッファ108からの入力を選択してCS部118に渡すように指示する。そして、バス出力データセレクタ113に対して、暗復号部114からの入力を選択してバスI/F部112に渡すように指示する。
このように処理単位(M)を64バイトとして、各セレクタ(113,115,117,120)に処理データ入出力の選択を指示することによって、図9に示すようなパイプライン処理の動作を実現する。
図9のパイプライン処理において、まず期間T1では、第1処理として、NI/F部109が最初のM=64バイトを受信して受信バッファ108に格納する(受信(1))。期間T2では、同様にNI/F部109が2番目の64バイトのデータを受信して、暗復号部114とCS部118に渡す(受信(2))。これと並行して、第2処理として、暗復号部114とCS部118は期間T1でNI/F部109が受信した最初のデータの復号とCSの処理を行う(復号(1)、CS(1))。期間Tk(3≦k≦n)では、NI/F部109がk番目のデータを受信する(受信(k))。これと並行して暗復号部114とCS部118は期間Tk−1でNI/F部109が受信したデータの復号とCSの処理を行う(復号(k−1)、CS(k−1))。さらに並行して、第3処理として、暗復号部114が期間Tk−1で復号した(k−2)番目の64バイトのデータをバスI/F部112がメモリ103にライトする(MW(k−2))。期間Tn+1では、暗復号部114とCS部118は期間TnでNI/F部109が受信したn番目のデータの復号とCSの処理を行う(復号(n)、CS(n))。さらに並行して、暗復号部114が期間Tnで復号した(n−1)番目の64バイトのデータをバスI/F部112がメモリ103にライトする(MW(n−1))。期間Tn+2では、CS処理結果を確認すると共に、暗復号部114が期間(n−1)で復号したn番目の64バイトのデータをバスI/F部112がメモリ103にライトする(MW(n))。以上で完了する。
このように、受信、復号、CS、MWの処理を並行して行うことにより、高速な受信処理が可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。
本発明は、ファイルの暗復号や改ざん検知、ネットワークの通信プロトコル処理などのセキュリティ関連処理、デジタルフィルタや画像処理、映像・音声の圧縮・伸張処理などに利用可能である。
本発明の一実施形態のネットワークデータ処理装置の全体の機能ブロック構成を示す図である。 本発明の一実施の形態のネットワークデータ処理装置における、ネットワークデータ処理アクセラレータのレジスタ構成を示す図である。 本発明の一実施の形態のネットワークデータ処理装置における、ネットワークデータ処理アクセラレータのディスクリプタ構成を示す図である。 本発明の一実施の形態のネットワークデータ処理装置における、SSL/TLS送信時におけるデータ処理のパイプライン処理動作を説明するための図である。 本発明の一実施の形態のネットワークデータ処理装置における、SSL/TLS受信時におけるデータ処理のパイプライン処理動作を説明するための図である。 本発明の一実施の形態のネットワークデータ処理装置における、IPsec送信時におけるデータ処理のパイプライン処理動作を説明するための図である。 本発明の一実施の形態のネットワークデータ処理装置における、IPsec受信時におけるデータ処理のパイプライン処理動作を説明するための図である。 本発明の一実施の形態のネットワークデータ処理装置における、DTCP-IP、IP放送の送信時におけるデータ処理のパイプライン処理動作を説明するための図である。 本発明の一実施の形態のネットワークデータ処理装置における、DTCP-IP、IP放送の受信時におけるデータ処理のパイプライン処理動作を説明するための図である。
符号の説明
100…ネットワークデータ処理装置、101…CPU、102…バス、103…メモリ、104…入力装置、105…出力装置、106…ネットワークデータ処理アクセラレータ、107…送信バッファ、108…受信バッファ、109…NI/F部、110…制御部、111…制御バス、112…バスI/F部、113…バス出力データセレクタ、114…暗復号部(暗号化/復号化処理部)、115…暗復号部入力セレクタ、116…MA部(メッセージ認証処理部)、117…MA部入力セレクタ、118…CS部(チェックサム処理部)、119…CS部入力セレクタ、120…送信出力データセレクタ、190…ネットワーク、201…第1処理設定レジスタ、202…第2処理設定レジスタ、203…第3処理設定レジスタ、204…処理データ長設定レジスタ、205…ソースアドレス設定レジスタ、206…デスティネーションアドレス設定レジスタ、207…ディスクリプタアドレス設定レジスタ、208…処理開始設定レジスタ、301…第1処理設定ディスクリプタ、302…第2処理設定ディスクリプタ、303…第3処理設定ディスクリプタ、304…処理データ長設定ディスクリプタ、305…ソースアドレス設定ディスクリプタ、306…デスティネーション設定ディスクリプタ。

Claims (8)

  1. データ処理を高速化のためのハードウェア処理回路により行うデータ処理装置であって、
    複数の種類の処理のそれぞれに対応する処理部として、
    データの暗号化及び復号化の処理を行うための暗復号処理部と、
    データのメッセージ認証の処理を行うためのメッセージ認証処理部と、
    データのチェックサムの処理を行うためのチェックサム処理部とを有し、
    データに対してアクセスし、前記暗復号処理部による暗号化又は復号化、前記メッセージ認証処理部によるメッセージ認証、及び前記チェックサム処理部によるチェックサムの処理の組み合わせを含む所定のデータ処理を行うものであり、
    前記所定のデータ処理のための第1のデータに対する重複するアクセスを1度にまとめ、前記処理部により並列的及び/又は連続的に処理することを特徴とするデータ処理装置。
  2. 請求項1記載のデータ処理装置において、
    前記第1のデータに対する前記所定のデータ処理において、それを構成する複数の種類の処理及び対応する処理部の各データ処理単位の最小公倍数を、それら処理部における統一されたデータ処理単位として用いて、複数の期間に分けてパイプライン処理することを特徴とするデータ処理装置。
  3. 請求項1または2に記載のデータ処理装置において、
    データの入出力を行うインタフェース部を有し、
    前記所定のデータ処理において、前記インタフェース部を介して前記第1のデータにアクセスすることを特徴とするデータ処理装置。
  4. 請求項3記載のデータ処理装置において、
    前記インタフェース部として、メモリが接続されるバスに対するバスインタフェース部を有し、
    前記所定のデータ処理において、前記バスインタフェース部を介して前記メモリに対する前記第1のデータの読み込み又は書き込みを行うことを特徴とするデータ処理装置。
  5. 請求項3記載のデータ処理装置において、
    前記インタフェース部として、ネットワークに接続されるネットワークインタフェース部を有し、
    前記ネットワークに対して送受信するデータを格納するバッファを有し、
    前記所定のデータ処理において、前記ネットワークインタフェース部及びバッファを介して前記第1のデータの送信又は受信を行うことを特徴とするデータ処理装置。
  6. 請求項3記載のデータ処理装置において、
    レジスタまたはディスクリプタによる、前記第1のデータに対する前記所定のデータ処理における、前記暗号化又は復号化の処理及びそのタイプ、前記メッセージ認証の処理及びそのタイプ、前記チェックサムの処理、前記第1のデータの入出力のアクセス、それらの処理の組み合わせ、その順序、及び処理開始の指示に従い動作することを特徴とするデータ処理装置。
  7. 請求項6記載のデータ処理装置において、
    前記所定のデータ処理における任意の組み合わせ及び順序に対応可能に、前記暗復号処理部、メッセージ認証処理部、チェックサム処理部の各入力の前段に、前記インタフェース部、暗復号処理部、メッセージ認証処理部、及びチェックサム処理部の各出力から入力を選択するセレクタを有することを特徴とするデータ処理装置。
  8. 請求項7記載のデータ処理装置において、
    前記インタフェース部の入力側に、前記暗復号処理部、メッセージ認証処理部、及びチェックサム処理部の各出力から入力を選択するセレクタを有することを特徴とするデータ処理装置。
JP2006243949A 2006-09-08 2006-09-08 データ処理装置 Active JP4991223B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006243949A JP4991223B2 (ja) 2006-09-08 2006-09-08 データ処理装置
US11/779,309 US8181024B2 (en) 2006-09-08 2007-07-18 Data processing apparatus
US13/456,630 US8918646B2 (en) 2006-09-08 2012-04-26 Data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006243949A JP4991223B2 (ja) 2006-09-08 2006-09-08 データ処理装置

Publications (2)

Publication Number Publication Date
JP2008067152A true JP2008067152A (ja) 2008-03-21
JP4991223B2 JP4991223B2 (ja) 2012-08-01

Family

ID=39171163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006243949A Active JP4991223B2 (ja) 2006-09-08 2006-09-08 データ処理装置

Country Status (2)

Country Link
US (2) US8181024B2 (ja)
JP (1) JP4991223B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010154500A (ja) * 2008-11-27 2010-07-08 Canon Inc 情報処理装置
JP2010268293A (ja) * 2009-05-15 2010-11-25 Hitachi Ltd 通信装置及び通信処理方法
JP2014209754A (ja) * 2008-06-19 2014-11-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated Wwan技術のためのハードウェアアクセラレーション
JP2017534127A (ja) * 2014-08-01 2017-11-16 ソニー株式会社 コンテンツフォーマット変換の検証
JP2020503728A (ja) * 2017-05-31 2020-01-30 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンデータ処理方法および装置

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335994B2 (en) * 2000-02-25 2012-12-18 Salmon Alagnak Llc Method and apparatus for providing content to a computing device
US8543091B2 (en) 2008-06-06 2013-09-24 Ebay Inc. Secure short message service (SMS) communications
US20090307140A1 (en) * 2008-06-06 2009-12-10 Upendra Mardikar Mobile device over-the-air (ota) registration and point-of-sale (pos) payment
US8355499B2 (en) 2008-12-12 2013-01-15 Micron Technology, Inc. Parallel encryption/decryption
JP2010278897A (ja) * 2009-05-29 2010-12-09 Renesas Electronics Corp 通信データ処理回路及び通信データ処理方法
US8862767B2 (en) 2011-09-02 2014-10-14 Ebay Inc. Secure elements broker (SEB) for application communication channel selector optimization
US9438414B2 (en) * 2013-10-18 2016-09-06 Advanced Micro Devices, Inc. Virtualized SHA computational engine
US9904807B2 (en) 2015-01-09 2018-02-27 Toshiba Memory Corporation Memory system and information processing system
US9847980B2 (en) * 2015-06-17 2017-12-19 Microsoft Technology Licensing, Llc Protecting communications with hardware accelerators for increased workflow security
US11537541B2 (en) 2018-09-28 2022-12-27 Xilinx, Inc. Network interface device and host processing device
US11570045B2 (en) 2018-09-28 2023-01-31 Xilinx, Inc. Network interface device
US11082364B2 (en) 2019-04-25 2021-08-03 Xilinx, Inc. Network interface device
US11012411B2 (en) * 2018-11-05 2021-05-18 Xilinx, Inc. Network interface device
CN112334902A (zh) * 2019-01-04 2021-02-05 百度时代网络技术(北京)有限公司 建立主机系统与数据处理加速器之间的安全信息交换信道的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004320533A (ja) * 2003-04-17 2004-11-11 Fujitsu Ltd データ保障装置、データ通信装置、およびデータ保障方法
JP2005167870A (ja) * 2003-12-05 2005-06-23 Sony Corp データ処理方法およびデータ処理装置
JP2006041684A (ja) * 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6101255A (en) 1997-04-30 2000-08-08 Motorola, Inc. Programmable cryptographic processing system and method
US20020078342A1 (en) * 2000-09-25 2002-06-20 Broadcom Corporation E-commerce security processor alignment logic
JP3921424B2 (ja) 2002-07-17 2007-05-30 富士通株式会社 ハッシュ関数処理回路
US7474677B2 (en) * 2003-08-12 2009-01-06 Bose Corporation Wireless communicating
US7788482B2 (en) * 2004-05-10 2010-08-31 Scientific Games International, Inc. System and method for securing on-line documents using authentication codes
US9326221B2 (en) * 2006-01-26 2016-04-26 Nokia Technologies Oy Method and system for signaling neighboring signals in TPS bits

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004320533A (ja) * 2003-04-17 2004-11-11 Fujitsu Ltd データ保障装置、データ通信装置、およびデータ保障方法
JP2005167870A (ja) * 2003-12-05 2005-06-23 Sony Corp データ処理方法およびデータ処理装置
JP2006041684A (ja) * 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014209754A (ja) * 2008-06-19 2014-11-06 クゥアルコム・インコーポレイテッドQualcomm Incorporated Wwan技術のためのハードウェアアクセラレーション
JP2010154500A (ja) * 2008-11-27 2010-07-08 Canon Inc 情報処理装置
JP2010268293A (ja) * 2009-05-15 2010-11-25 Hitachi Ltd 通信装置及び通信処理方法
JP2017534127A (ja) * 2014-08-01 2017-11-16 ソニー株式会社 コンテンツフォーマット変換の検証
US11024200B2 (en) 2014-08-01 2021-06-01 Sony Corporation Content format conversion verification
JP2020503728A (ja) * 2017-05-31 2020-01-30 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited ブロックチェーンデータ処理方法および装置

Also Published As

Publication number Publication date
JP4991223B2 (ja) 2012-08-01
US8918646B2 (en) 2014-12-23
US20080065885A1 (en) 2008-03-13
US8181024B2 (en) 2012-05-15
US20120210133A1 (en) 2012-08-16

Similar Documents

Publication Publication Date Title
JP4991223B2 (ja) データ処理装置
US9363078B2 (en) Method and apparatus for hardware-accelerated encryption/decryption
US9552498B2 (en) On-chip storage, creation, and manipulation of an encryption key
US8737606B2 (en) Method and system for high throughput blockwise independent encryption/decryption
JP5120830B2 (ja) 共用のハードウェアを利用して暗号文及びメッセージ認証コードを生成するための方法及びシステム
US7336783B2 (en) Cryptographic systems and methods supporting multiple modes
EP2711859B1 (en) Secured computing system with asynchronous authentication
US9141831B2 (en) Scheduler, security context cache, packet processor, and authentication, encryption modules
US8077867B2 (en) Confidential information processing apparatus, confidential information processing device, and confidential information processing method
JP2012090286A (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
US20040250095A1 (en) Semiconductor device and method utilizing variable mode control with block ciphers
JP5118494B2 (ja) イン−ストリームデータ暗号化/復号の機能を有するメモリシステム
JP2008524969A5 (ja)
JP2004070499A (ja) メモリデバイスおよび暗号化/復号方法
JP5080908B2 (ja) 機密情報処理機器、機密情報処理装置、及び機密情報処理方法
US20040111626A1 (en) Security processing of unlimited data size
US20090041245A1 (en) Confidential information processing device,confidential information processing apparatus, and confidential information processing method
US8832776B1 (en) Programmable micro-core processors for security processing
JP6162556B2 (ja) 記憶装置及び情報処理システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090119

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20100528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110830

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111028

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: 20120410

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120507

R150 Certificate of patent or registration of utility model

Ref document number: 4991223

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350