JP5500923B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP5500923B2
JP5500923B2 JP2009212520A JP2009212520A JP5500923B2 JP 5500923 B2 JP5500923 B2 JP 5500923B2 JP 2009212520 A JP2009212520 A JP 2009212520A JP 2009212520 A JP2009212520 A JP 2009212520A JP 5500923 B2 JP5500923 B2 JP 5500923B2
Authority
JP
Japan
Prior art keywords
processing
authentication
encryption
data
aes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009212520A
Other languages
English (en)
Other versions
JP2010154500A (ja
JP2010154500A5 (ja
Inventor
成 西川
昭彦 熊取谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2009212520A priority Critical patent/JP5500923B2/ja
Priority to US12/623,058 priority patent/US8560832B2/en
Publication of JP2010154500A publication Critical patent/JP2010154500A/ja
Publication of JP2010154500A5 publication Critical patent/JP2010154500A5/ja
Application granted granted Critical
Publication of JP5500923B2 publication Critical patent/JP5500923B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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/164Implementing security features at a particular protocol layer at the network layer

Landscapes

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

Description

本発明は、暗号/暗号復号処理と認証処理の双方にAES(Advanced Encryption Standard)アルゴリズムを適用した情報処理装置に関するものである。
近年、インターネットを介した大容量の通信が普及している。これに伴って通信のセキュリティを確保するために、デジタルデータは所定のアルゴリズムによって暗号化されると共に、通信途中の改竄を検出できるように所定のアルゴリズムによってメッセージ認証処理が行われる。最近、セキュアな通信を実現する為のプロトコルの1つであるIPSEC(IP Security)において、認証アルゴリズムとして処理速度が速く、安全性が高いという特徴を持つAESベースのAES-XCBC-MAC-96が採用されることとなった。
従来、メッセージ認証を行うためのMAC(Message Authentication Code)値を生成するハッシュ関数としては、入力データを64バイト毎のブロック単位で取り扱うMD5或いはSHA-1というハッシュ関数が用いられている。しかしながら、これらのハッシュ関数においては、ブロック長が64バイトと大きいために処理を高速化できず、また、160ビットのMAC値を用いる場合におけるセキュリティ上の脆弱性が指摘され始めてきた。
ここで、複数のメッセージに対して並行してIPSECのプロトコル処理を行う必要がある場合について考えると、通常IPSECにおける暗号処理および認証処理を実行するリソースは各々1つであるために、効率的な並行処理を行うことは困難であった。すなわち、一方のメッセージを処理した後、当該メッセージの処理を一旦中断し、他方のメッセージを処理し、その後に最初のメッセージの処理を再開するために、暗号処理、メッセージ認証処理を中断および再開させるソフトウエア制御が必要であった。
そこで、例えば、特許文献1には、暗号処理と認証処理の各処理範囲が異なる場合に、重複部分のデータ転送を1回で行い並列処理する技術が開示されている。
特開2005−148894号公報
しかしながら、上述の特許文献1に記載された技術においては、複数のメッセージを並行に処理するためには、暗号処理部および認証処理部の入力データおよび出力データをソフトウエア制御により切替えて、各メッセージの処理を中断および再開する必要がある。そのため、ソフトウエア制御による処理オーバーヘッドが大きくなってしまうという問題がある。
また、例えば、IPSECにおいてブロック長16バイトの暗号アルゴリズムであるAES-CBCと、ブロック長64バイトの認証処理アルゴリズムであるSHA-1を組み合わせて用いた場合、以下のような問題があった。すなわち、IPSECでは暗号処理した後に認証処理を行なうといったように処理間に依存関係があるため、最小処理単位の大きい処理(この場合、認証処理)の処理タイミングに合わせて、データを他方に受け渡す必要がある。したがって、たとえ暗号処置と認証処理を単純にパイプライン的に並列動作させたとしても、処理単位が同じ場合に比較して高速化には限界があった。
本発明は上述の問題点に鑑みなされたものであり、IPSECの暗号処理および認証処理の並行動作をより高速に実行可能とする技術を提供する。
上述の1以上の問題点を解決するため、本発明の情報処理装置は以下の構成を備える。すなわち、情報処理装置は、各々が、暗号処理および認証処理を所定のブロック単位で切替えて処理可能であり、互いに並行して動作可能に構成された複数の暗号・認証手段と、暗号および認証の処理要求に伴う処理対象データを前記複数の暗号・認証手段に分配するデータ転送制御手段と、前記処理要求の個数に応じて、前記データ転送制御手段における動作モードの切り替えを行う切替手段と、を有し、前記データ転送制御手段は、前記複数の暗号・認証手段の一つが前記暗号処理を行い、前記複数の暗号・認証手段の他の少なくとも一つが前記認証処理を行うように前記処理対象データを分配する第1の動作モードと、前記複数の暗号・認証手段の各々が、前記暗号処理と前記認証処理とを時分割で行うように、前記処理対象データを分配する第2の動作モードと、の2つの動作モードを有し、前記切替手段は、前記処理要求が1つである場合に前記第1の動作モードに切り替え、前記処理要求が複数個である場合に前記第2の動作モードに切り替える
本発明によれば、複数のメッセージに対するIPSECの暗号処理および認証処理を並行して行う際に、高速化が実現される。
本発明に係る第1実施形態における暗号処理装置の構成を示すブロック図である。 IPv4におけるトランスポートモードの場合の、IPSECのESPのパケット形式の一例を示した図である。 第1実施形態において、一方のAES暗号・認証コアを認証処理に、他方を暗号処理に使用したパイプライン動作のタイミングチャートを示す図である。 第1実施形態において、1つのAES暗号・認証コアを認証処理と暗号処理の交互に使用したパイプライン動作のタイミングチャートを示す図である。 第2実施形態におけるAES暗号コアの構成を示すブロック図である。 第2実施形態におけるAES認証コアの構成を示すブロック図である。 1つの処理要求に対し、AES暗号コアにおいて暗号の符号化処理を行ない、AES認証コアにおいて認証処理を行なう場合の動作のタイミングチャートを示す図である。 1つの処理要求に対し、AES暗号コアにおいて暗号の復号化処理を行ない、AES認証コアにおいて認証処理を行なう場合の動作のタイミングチャートを示す図である。 2つの処理要求に対し、AES暗号コアにおいて暗号の符号化処理を行ない、AES認証コアにおいて認証処理を行なう場合の動作のタイミングチャートを示す図である。
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。なお、用語”暗号処理”は所定の暗号アルゴリズムを用いた暗号(符号)化処理および暗号復号化処理の双方を示しており、用語”認証処理”は所定の認証アルゴリズムを用いたメッセージ認証符号の生成処理を示している。
<第1実施形態>
第1実施形態においては、セキュアな通信プロトコルとしてIPSECを使用するため、データ転送プロトコルとしてESP(Encapsulating Security Payload)を利用する。特に、暗号アルゴリズムとしてAES-CBCを使用する暗号処理、認証アルゴリズムとしてAES-XCBC-MAC-96を使用する認証処理(以降、”暗号/認証処理”と略す)の双方を処理可能なAES暗号・認証コアを用いる例について説明する。また、第1実施形態においては、互いに並行して動作可能に構成された2つの同一構成のAES暗号・認証コアを用いる例について説明する。
●装置構成
図1は、第1実施形態における情報処理装置である暗号処理装置の構成を示すブロック図である。同図において、100はIPSECを実現する暗号処理装置であり、特にデータ転送時に行われる暗号・認証処理に関わる構成要素のみを記載している。
暗号処理装置100において、101は装置全体の制御を司るメインCPUであり、102はメインCPU101の主記憶部として機能するメモリである。103はデータ信号、アドレス信号、制御信号等から構成されるシステムバスである。104,105はそれぞれ、メモリ102と後述するデータ転送制御部106との間でデータを転送するDMAコントローラ(DMAC_A,DMAC_B)である。
107,108はそれぞれ、AES-CBCあるいはAES-XCBC-MAC-96の処理を行なう処理部として機能するAES暗号・認証コア1,AES暗号・認証コア2であり、以降、単に暗号・認証コア107,108、と称する。106は、DMAC_A104,DMAC_B105,暗号・認証コア107,暗号・認証コア108間において、所定の接続形態でデータ転送を実現するデータ転送制御部である。
以下、暗号・認証コア107,暗号・認証コア108の詳細構成について説明する。なお、暗号・認証コア107と暗号・認証コア108は基本的に同様の構成からなるため、ここでは特に暗号・認証コア107について説明する。すなわち図1では、暗号・認証コア107の内部構成に付した参照番号の第1桁である「2」を、暗号・認証コア108においては「3」として示している。
暗号・認証コア107において、200はAESの16バイト(128ビット)の1ブロック分の入力データに対するブロック符号化処理を行うAESコアである。201は暗号・認証コア107の全体制御を司るAES制御部である。202はAES-CBCの初期ベクタを格納した暗号初期値であり、203はAES-XCBC-MAC-96の初期ベクタを格納した認証初期値である。204は、AES-XCBC-MAC-96の最終ブロックの処理においてメッセージ長がブロック長の倍数であるか否かに応じて選択的に鍵K2或いはK3を加算する鍵K2/K3部であり、205は5入力の排他的論理和として機能する加算器である。
206は、AESコア200からの暗号出力データを保持する暗号出力保持部であり、207はAESコア200からの認証出力データを保持する認証出力保持部である。208は暗号初期値202と暗号出力保持部206をブロック番号に応じて切替えるためのセレクタであり、209は認証初期値203と認証出力保持部207をブロック番号に応じて切替えるためのセレクタである。
210は、加算器205の出力、セレクタ208の出力、セレクタ209の出力、を選択的に切替えるためのセレクタである。211は、データ転送制御部106から出力される暗号処理用メッセージを暗号・認証コア107に入力する暗号処理用入力である。212は、データ転送制御部106から出力される認証処理用メッセージを暗号・認証コア107に入力する認証処理用入力である。213は鍵K2/K3部204の出力であり、214はセレクタ208の出力、215はセレクタ209の出力である。また、216は加算器205の出力であり、217はセレクタ210の出力である。
以下、データ転送制御部106の詳細構成について説明する。
データ転送制御部106において、400はDMAC_A104,DMAC_B105,暗号・認証コア107,暗号・認証コア108間でのデータ転送の接続経路を構成するクロスバスイッチである。401は、DMAC_A104,DMAC_B105から転送されるメッセージに対する暗号・認証処理要求を管理する処理要求制御部である。402は、暗号・認証コア107,108の処理状態を監視するコア制御部である。
403,404は各々、DMAC_A104,DMAC_B105からの転送データを保持する処理データ保持部A,処理データ保持部Bである。405,406は各々、DMAC_A104,DMAC_B105,暗号・認証コア107,108からの転送データより、被暗号処理データ(暗号化の対象となるデータ)および被認証処理データ(認証の対象となるデータ)を形成する、処理データ加工部A,処理データ加工部Bである。このデータ形成方法としては、転送データより暗号処理および認証処理に必要な範囲のデータを切り取り、必要に応じて付加データを挿入することによって、被暗号処理データおよび被認証処理データを形成する。407,408は各々、DMAC_A104,DMAC_B105からの転送データより形成された暗号処理用データを保持する暗号データ保持部A,暗号データ保持部Bである。409,410は各々、DMAC_A104,DMAC_B105からの転送データより形成された認証処理用データを保持する認証データ保持部A,認証データ保持部Bである。
411,412は各々、暗号・認証コア107,108からの出力データを保持する出力データ保持部1,出力データ保持部2であり、以降、単に出力データ保持部411,412と称する。
以下、処理要求制御部401の詳細構成について説明する。
413は、IPSECの暗号・認証処理等、処理要求の種別を保持する処理種別保持部である。414は、処理種別保持部413に保持された処理要求に関わる暗号・認証処理の各処理ブロック長を保持する処理ブロック長保持部である。415は、各処理要求に対する処理の優先度を保持する処理優先度保持部である。
以下、コア制御部402の詳細構成について説明する。
416は、接続される各暗号・認証コアの稼動状態を保持するコア状態保持部である。417,419は各々、暗号・認証コア107,108における暗号処理の処理ブロック数をカウントする暗号ブロックカウンタ1,2である。418,420は各々、暗号・認証コア107,108における認証処理の処理ブロック数をカウントする認証ブロックカウンタ1,2である。
また、メモリ102には、処理要求1および処理要求2用の処理データ1および処理データ2が、それぞれ500,501として格納されている。
●パケット形式
図2に、IPv4におけるトランスポートモードの場合の、IPSECのESPパケット形式例を示す。同図において、被暗号処理データ(暗号化の対象となるデータ)であるPayloadは、TCPヘッダ、データ(通信内容)、ESPトレーラ、から成る。ESPトレーラは、任意長のパディングデータとパディング長、および次ヘッダから成る。
また被認証処理データ(認証の対象となるデータ)は、ESPヘッダと暗号アルゴリズムの初期ベクタ(Initial Vector:IV)、および上述した被暗号処理データを暗号化(符号化)した暗号データ、から成る。ESPヘッダは、4バイトのSPI(Security Pointer Index)と4バイトのシーケンス番号から成る。
そしてESPは、上述した被認証処理データと、該被認証処理データから算出されるMAC値から構成される。更に、ESPにIPヘッダが付加され、通信相手に送信される。
●各コアを固定利用したパイプライン動作(第1の動作モード)
第1実施形態の暗号処理装置においては、1つのIPSEC処理要求に対して、暗号・認証コア107,108の片方を暗号用として、他方を認証用として固定的に利用することによって、パイプライン動作を実現する。
図3は、1つのIPSEC処理要求に対して、暗号・認証コア107,108の片方を暗号用として、他方を認証用として固定的に利用した場合のパイプライン動作を示すタイミングチャートである。第1実施形態では、この場合のパイプライン動作を第1の動作モードとする。図3において、J1-*はある1つの処理要求(処理要求1)に関するデータであることを示す。例えば、J1-D0は処理要求1の被暗号化データの1番目のブロックデータを示し、またJ1-C0は、処理要求1の被暗号化データの1番目のブロックデータに対する暗号処理結果(暗号化データの1番目のブロックデータ)を示す。またJ1-M0は、処理要求1の被認証処理データの1番目のブロックデータを示し、J1-H0は、処理要求1の被認証処理データの1番目のブロックデータに対する認証処理の途中結果のデータを示す。
以下、暗号・認証コア107,108をそれぞれ暗号用、認証用のいずれかに固定利用した、第1の動作モードによるパイプライン動作について詳細に説明する。
メインCPU101は1つのIPSECの処理要求を処理する場合、メモリ102内に格納された当該処理要求用のデータをデータ転送制御部106に転送する必要がある。そのためにメインCPU101は、DMAC_A104にDMA要求を発行するように、データ転送制御部106内の処理要求制御部401を制御する。尚、メインCPU101は不図示のレジスタアクセスにより、処理要求制御部401の処理種別保持部413に、「IPSEC(暗号アルゴリズム:AES-CBC,認証アルゴリズム:AES-XCBC-MAC-96)」を設定する。同様に、処理ブロック長保持部414にはペイロードのブロック長を、処理優先度保持部415には通常優先度を設定する。
データ転送制御部106は、処理要求が1つの場合には上述したように、暗号・認証コア107を暗号処理に、暗号・認証コア108を認証処理に使用するように、処理対象データを分配制御する。すなわちデータ転送制御部106は、暗号・認証コア107が暗号処理を実行し、暗号・認証コア108が認証処理を実行するように、AES制御部201,301のそれぞれを制御する。
なお、2つの処理要求が同時に発生している場合には、データ転送制御部106は、暗号・認証コア107,108の各々に対して暗号処理と認証処理を交互に実行させるように処理対象データを分配制御するが、その詳細については後述する。
処理要求が1つの場合、データ転送制御部106は、DMAC_A104によってメモリ102内の当該処理要求用のデータが転送されると、これを処理データ保持部A403に格納する。そして処理データ加工部A405において、処理データ保持部A403に保持されたデータに対してパディングビット、パディング長、次ヘッダから成るESPトレーラを付加して、被暗号処理データであるペイロードを形成する。このように形成されたペイロードは、暗号データ保持部A407に16バイトのブロック長毎に出力される。そしてデータ転送制御部106は、暗号データ保持部A407に保持したペイロードのデータを、クロスバスイッチ400を介して、暗号・認証コア107内の暗号処理用入力211に接続する。
また、データ転送制御部106は、暗号・認証コア107から転送される暗号化データを出力データ保持部411に格納し、クロスバスイッチ400を介して処理データ加工部A405に接続する。そして処理データ加工部A405において、ESPヘッダ、IV、16バイトのブロック長毎に、出力データ保持部411に格納した暗号化データから被認証処理データを形成して、認証データ保持部A409に16バイトのブロック長毎に出力する。そしてデータ転送制御部106は、認証データ保持部A409に保持した被認証処理用データを、クロスバスイッチ400を介して、暗号・認証コア108の認証処理用入力312に接続する。
暗号・認証コア107では、16バイトのブロック毎に、加算器205でセレクタ208の出力214と暗号処理用入力211としての被暗号処理データを加算した上で、AESコア200においてAESブロック暗号演算処理を行う。そして、該暗号演算処理結果を暗号出力保持部206に保持するという動作を繰り返す。尚、セレクタ208は、1番目のブロックの場合は暗号初期値202を選択し、2番目以降のブロックの場合は暗号出力保持部206を選択する。またセレクタ210は、セレクタ208の出力214を選択して、暗号・認証コア出力217としてデータ転送制御部106に出力する。
暗号・認証コア108では、16バイトのブロック毎に、加算器305でセレクタ309の出力315と認証処理用入力312としての被認証処理データを加算した上で、AESコア300においてAESブロック暗号演算処理を行う。そして、該暗号演算処理結果を認証出力保持部307に保持するという動作を繰り返す。尚、セレクタ309は、1番目のブロックの場合は認証初期値303を選択し、2番目以降のブロックの場合は認証出力保持部307を選択する。また、鍵K2/K3部304は、最後のブロックの場合は、メッセージ長がブロック長の倍数であるか否かに応じて、各々K2,K3を加算器305に出力する。セレクタ310はセレクタ309の出力315を選択して、暗号・認証コア317としてデータ転送制御部106に出力する。
尚、暗号・認証コア107,108における各暗号処理あるいは認証処理のブロック数は、データ転送制御部106内のコア制御部402における各カウンタでカウントされる。
第1実施形態では以上で説明したように、1つのIPSEC処理要求に対して、暗号・認証コア107,108のそれぞれによる暗号処理、認証処理のパイプライン動作が実現される。図3に示す第1の動作モードによれば、暗号・認証コア107において暗号処理が、暗号・認証コア108において認証処理が、互いに並行に行われていることが分かる。
●各コアを交互利用したパイプライン動作(第2の動作モード)
以上、各コアを固定利用したパイプライン動作について説明したが、第1実施形態の暗号処理装置においては、各コアを交互利用したパイプライン動作を行うことも可能である。すなわち、複数個(例えば2つ)のIPSEC処理要求に対して、暗号・認証コア107,108のそれぞれを暗号処理と認証処理に交互に利用することによって、パイプライン動作を実現する。
図4は、2つのIPSECの処理要求(処理要求1,2)に対して、暗号・認証コア107,108のそれぞれを暗号処理と認証処理に交互に使用した場合のパイプライン動作を示すタイミングチャートである。第1実施形態では、この場合のパイプライン動作を第2の動作モードとする。図4において、J1-*は処理要求1に関するデータであることを示し、J2-*は処理要求2に関するデータであることを示す。なお、各データJ*-D*,J*-C*,J*-M*,J*-H*については、図3と同様であるため説明を省略する。
以下、2つのIPSEC処理要求に対して、暗号・認証コア107,108のいずれか一方を、暗号用および認証用に交互に利用した、第2の動作モードによるパイプライン動作について詳細に説明する。
メインCPU101は2つのIPSECの処理要求を処理する場合、メモリ102内に格納された処理要求1,2用の各処理データ501,502を、データ転送制御部106に転送する必要がある。そのためにメインCPU101は、DMAC_A104,DMAC_B105のそれぞれにDMA要求を発行するように、データ転送制御部106内の処理要求制御部401を制御する。尚、メインCPU101は不図示のレジスタアクセスにより、処理要求制御部401の処理種別保持部413に、処理要求ごとに「IPSEC(暗号アルゴリズム:AES-CBC,認証アルゴリズム:AES-XCBC-MAC-96)」を設定する。同様に、処理ブロック長保持部414にはペイロードのブロック長を、処理優先度保持部415には通常優先度を設定する。
データ転送制御部106は、2つの処理要求が同時に発生している場合には、暗号・認証コア107が処理要求1に対応する暗号処理と認証処理を交互に実行するように、処理対象データを分配してAES制御部201を制御する。そして、暗号・認証コア108が処理要求2に対応する暗号処理と認証処理を交互に実行するように、処理対象データを分配してAES制御部301を制御する。
ここで、まず暗号・認証コア107における処理要求1の処理について説明する。
データ転送制御部106は、DMAC_A104によってメモリ102内の当該処理要求1用の処理データ500が転送されると、これを処理データ保持部A403に格納する。そして処理データ加工部A405において、処理データ保持部A403に保持されたデータに対してパディングビット、パディング長、次ヘッダから成るESPトレーラを付加して、被暗号処理データであるペイロードを形成する。このように形成されたペイロードは、暗号データ保持部A407に16バイトのブロック長毎に出力される。そしてデータ転送制御部106は、暗号データ保持部A407に保持したペイロードのデータを、クロスバスイッチ400を介して、暗号・認証コア107内の暗号処理用入力211に接続する。
また、データ転送制御部106は、暗号・認証コア107から転送される暗号化データを出力データ保持部411に格納し、クロスバスイッチ400を介して処理データ加工部A405に接続する。そして処理データ加工部A405において、ESPヘッダ、IV、16バイトのブロック長毎に、出力データ保持部411に格納した暗号化データから被認証処理データを形成して、認証データ保持部A409に16バイトのブロック長毎に出力する。そしてデータ転送制御部106は、認証データ保持部A409に保持した被認証処理用データを、クロスバスイッチ400を介して、暗号・認証コア107の認証処理用入力212に接続する。
このように暗号・認証コア107は、16バイトのブロック長(同一サイズの所定のブロック単位)を処理する基本クロック毎に、交互に認証処理と暗号処理を切替えて実行する。すなわち、例えば1ブロック分の認証処理を実行した後に、1ブロック分の暗号処理を実行するのであるが、以下、これら認証処理および暗号処理について詳細に説明する。
まず以下のように、1ブロック分の認証処理を実行する。
暗号・認証コア107は、16バイトの認証用の奇数ブロック処理相当の基本クロック毎に、加算器205でセレクタ209の出力215と認証処理用入力212としての被認証処理データを加算する。そのうえで、AESコア200においてAESブロック暗号演算処理を行う。そして、該暗号演算処理結果を認証出力保持部207に保持するという動作を繰り返す。尚、セレクタ209は、1番目の認証用ブロックの場合は認証初期値203を選択し、2番目以降の認証用ブロックの場合は認証出力保持部207を選択する。また、鍵K2/K3部204は、最後の認証用ブロックの場合は、メッセージ長がブロック長の倍数であるか否かに応じて、各々K2,K3を加算器205に出力する。またセレクタ210は、セレクタ209の出力215を選択して、暗号・認証コア出力217としてデータ転送制御部106に出力する。
以上のように1ブロック分の認証処理が終了すると、次に以下のように、1ブロック分の暗号処理を実行する。
暗号・認証コア107は、16バイトの暗号用の偶数ブロック処理相当の基本クロック毎に、加算器205でセレクタ208の出力214と暗号処理用入力211としての被暗号処理データを加算する。そのうえで、AESコア200においてAESブロック暗号演算処理を行う。そして、該暗号演算処理結果を暗号出力保持部206に保持するという動作を繰り返す。尚、セレクタ208は、1番目の暗号用ブロックの場合は暗号初期値202を選択し、2番目以降の暗号用ブロックの場合は暗号出力保持部206を選択する。またセレクタ210は、セレクタ208の出力214を選択して、暗号・認証コア出力217としてデータ転送制御部106に出力する。
以上、データ転送制御部106は、DMAC_A104によってメモリ102内の処理要求1用の処理データ500が転送されると、暗号・認証コア107において、認証・暗号処理をブロック処理の基本クロック毎に交互に実行するように制御する。
次に、暗号・認証コア108における処理要求2の処理について説明する。
データ転送制御部106では、DMAC_B105によってメモリ102内の当該処理要求2用の処理データ501が転送されると、上述した処理要求1に対する暗号・認証処理用と同様の制御を行う。すなわち、暗号・認証コア108を用いて、認証処理、暗号処理をブロック処理基本クロック毎に交互に実行するように制御する。
以上で説明したように、2つのIPSEC処理要求に対して、暗号・認証コア107,108のそれぞれを暗号処理と認証処理に交互に使用したパイプライン動作が実現される。図4に示す第2の動作モードによれば、暗号・認証コア107において処理要求1に係る暗号処理と認証処理が、暗号・認証コア108において処理要求2に係る認証処理が、互いに並行に行われていることが分かる。
以上説明したように第1実施形態によれば、データ転送制御部106が2つの暗号・認証コア107,108のそれぞれを、処理要求の発生状況に応じて所定の動作モードとなるように制御する。これにより、複数のメッセージを処理する際に、各暗号・認証コア107,108に対して中断、再開等のソフトウエア制御の負荷をかけることなく、暗号処理と認証処理を並行して行うことが可能となる。また、これら暗号処理と認証処理を同サイズのブロック単位(この場合16バイト単位)とすることにより、効率の良い並行処理が可能となり、全体としてのスループットも向上する。
なお、図4に示すタイミングチャートにおいては、初めから2つの処理要求に対して、2つの暗号・認証コア107,108に認証処理と暗号処理を交互に実行させる例を示した。しかしながら本発明は、2つの処理要求に対して常にこのように認証処理と暗号処理を交互実行するものではない。例えば、まず1番目の処理要求に対しては、図3に示した第1の動作モード、すなわち2つの暗号・認証コアに認証処理と暗号処理を分担させて実行させる。そしてこの状態から、2番目の処理要求の発生に伴って、図4に示した第2の動作モード、すなわち各暗号・認証コアで認証処理と暗号処理を交互に実行させる状態に動的に切替えることも可能である。
また以上の説明においては、図2に示すような、IPv4の場合のトランスポートモードのIPSECを例として説明したが、IPSECの形態は上記に限らず、IPv6、或いはトンネルモードに対しても適用できる。
また上述の説明においては、2つのDMACと2つの暗号・認証コアを有する構成を示したが、DMACの個数および暗号・認証コアの個数は2つに限定されるものではない。すなわち本発明によれば、暗号・認証コアの個数と等しい個数の処理要求に対して、図4に示したような第2の動作モードによる並行処理を実行することができる。または、例えば暗号・認証コアを偶数個備えた場合に、その2つを1組として第1の動作モードを実行することにより、各組で1つの処理要求に対応し、全体として複数の処理要求に対応することも可能である。
さらに、AES-CBCの暗号処理と、AES-XCBC-MAC-96の認証処理とを切替えて動作させるための構成は、図1に示した暗号・認証コア107,108に限定されず、種々に変更可能である。
<第2実施形態>
第2実施形態では、暗号処理専用のAES暗号コアと認証処理専用のAES認証コアとを用いた、IPsecのESPプロトコル処理について説明する。第1実施形態と同様に暗号アルゴリズムとしてAES-CBCを、認証アルゴリズムとしてAES-XCBC-MAC-96をそれぞれ使用して、暗号・認証処理を行う。
●装置構成
暗号処理装置100は第1実施形態と同じ構成であるので説明を省略する。また扱うパケット形式も第1実施形態で説明したものと同じである。暗号処理専用のAES暗号コアと認証処理専用のAES認証コアとを用いる点が第1実施形態と異なる。
図5は、第2実施形態においてAES-CBCを用いた暗号処理機能をもつAES暗号コアの構成を示すブロック図である。
250は暗号処理において1クロックサイクルに1ラウンドのラウンド処理を行なう符号化ラウンド処理部であり、各ラウンドの処理結果を一時保持しておくための保持部を内蔵している。251は復号化処理において1クロックサイクルに1ラウンドのラウンド処理を行なう復号化ラウンド処理部であり、各ラウンドの処理結果を一時保持しておくための保持部を内蔵している。252はAES暗号コアの全体制御を司るAES制御部である。253はAES-CBCの初期ベクタ(IV)である。255、256は排他的論理和処理のための加算器である。
258は処理データ保持部263の出力データと初期ベクタ253を切り替えるためのセレクタである。259は、暗号処理用入力データ243と加算器255からの出力データとを切り替えるためのセレクタである。260は保持部262が保持している1ブロック前のAES暗号コアの入力データと初期ベクタ253とを切り替えるためのセレクタである。261は、ラウンド処理部250の出力データと加算器256の出力データを切り替えるためのセレクタである。262は1ブロック前のAES暗号コアの入力データを一次保持しておくための保持部である。263は、AES暗号コアからの暗号・復号出力データを保持するための処理データ保持部である。264は処理データ保持部263が一次保持しているAES暗号コアの出力データである。
図6は、第2実施形態においてAES-XCBC-MAC-96の処理機能をもつAES認証コアの構成を示すブロック図である。
350は1クロックサイクルに1ラウンドのラウンド処理を行なう符号化ラウンド処理部であり、各ラウンドの処理結果を一時保持しておくための保持部を内蔵している。352はAES暗号コアの全体制御を司るAES制御部である。354は、AES-XCBC-MAC-96の最終ブロックの処理においてメッセージ長がブロック長の倍数であるか否かに応じて選択する鍵K2/K3である。355は排他的論理和処理のための加算器である。357は最終ブロックにおける処理に用いる鍵K2/K3とその他のブロックの処理に用いる”000...000”を選択するためのセレクタ、359は、認証処理用入力データ343と加算器355からの出力データとを切り替えるためのセレクタである。363は、AES暗号コアからの暗号・復号出力データを保持するための処理データ保持部である。364は処理データ保持部363が一次保持しているAES認証出力データである。
●各コアを固定利用したパイプライン動作(第1の動作モード)
1つのIPsec処理要求(処理要求1)に対しては第1実施形態で説明したのと同様に1ブロックずつ暗号コアにより暗号処理を、認証コアにより認証処理を行うことによりパイプライン動作を実現することができる。他の暗号・認証処理装置100における動作は第1実施形態と同様である。
図7は、1つのIPSEC処理要求に対するAES暗号コア、AES認証コアによるパイプライン動作を示すタイミングチャートである。
第1実施形態と同様、図7において、J1-*は処理要求1に関するデータであることを示す。例えば、J1-D0は処理要求1の被暗号化データ(Payload)の1番目のブロックデータを示し、またJ1-C0は、処理要求1の被暗号化データの1番目のブロックデータに対する暗号処理結果(暗号化データの1番目のブロックデータ)を示す。またJ1-M0は、処理要求1の被認証処理データの1番目のブロックデータを示し、J1-H0は、処理要求1の被認証処理データの1番目のブロックデータに対する認証処理の途中結果のデータを示す。
・AES暗号コアにおける暗号の符号化処理
図7においてT0の期間では最初のブロックデータJ1-D0の暗号処理が行われる。セレクタ258には初期ベクタ253と保持部263の出力データ264が入力されるが、AES制御部252によりセレクタ258は初期ベクタ253を選択し、セレクタ258の出力データとする。加算器255は、セレクタ258の出力データと暗号処理用入力データ263を加算し、セレクタ259に入力する。セレクタ259ではAES制御部252により暗号処理用入力データ263と加算器255の出力データのうち、加算器255の出力データを選択し、ラウンド処理部250においてラウンド処理を行う。
第1実施形態においては1クロックサイクルで1ブロックに対する全ラウンドの処理を行っていたが、第2実施形態では1クロックサイクルで1ラウンドずつ処理を行う。ラウンド処理部250に内蔵されている保持部に1クロックサイクル毎に各ラウンドの処理結果が保持され、所定のラウンド数分の処理を行う。また、セレクタ259の出力データは、復号化のためのラウンド処理部251にも入力しており、同様に1クロックサイクルで1ラウンドずつ処理を行う。
ラウンド処理部251に内蔵されている保持部に1クロックサイクル毎に各ラウンドの処理結果が保持され、所定のラウンド数分の処理を行う。ラウンド処理部251の出力データはセレクタ260の出力データと加算器256で加算され、ラウンド処理部250の出力データとともにセレクタ261に入力される。AES制御部252によりセレクタ261は出力データ264としてラウンド処理部250の出力データを選択する。
このようにして、最初のブロックデータJ1-D0の暗号処理が行われ、処理データ保持部263には最初のブロックデータJ1-D0に対応する暗号処理結果J1-C0が入力される。
次にT1の期間では処理データ保持部263は暗号処理結果J1-C0を保持し続けるとともに、2番目のブロックデータJ1-D1の暗号処理が行われる。セレクタ258には初期ベクタ253と保持部263の出力データ264が入力されるが、AES制御部252によりセレクタ258は保持部263の出力データ264を選択し、セレクタ258の出力データとする。加算器255は、セレクタ258の出力データと暗号処理用入力データ243を加算し、セレクタ259に入力する。以下最初のブロックデータと同じ処理が2番目のブロックデータに対して行われ、処理データ保持部263には2番目のブロックデータJ1-D1に対応する暗号処理結果J1-C1が入力される。
以降、3番目のブロックデータJ1-D2、4番目のブロックデータJ1-D3に対して同様の処理が行われ、それぞれ対応する暗号処理結果J1-C2 、J1-C3が得られる。
・AES認証コアにおける認証処理
図7においてT0の期間では最初のブロックデータJ1-M0の認証処理が行われる。セレクタ357には鍵データK2/K3と全てのビットの値が’0’で鍵長と同じビット数であるデータ ”000...000” が入力されるが、AES制御部352によりセレクタ357はデータ ”000...000”を選択し、セレクタ357の出力データとする。加算器355は、セレクタ357の出力データ、認証処理用入力データ343、AES認証コアの出力データ364を加算処理し、セレクタ359に入力する。なお、出力データ364は全てのビットの値が’0’に初期化されているものとする。
セレクタ359ではAES制御部352により認証処理用入力データ343と加算器355の出力のうち、認証処理用入力データ343を選択し、ラウンド処理部350においてラウンド処理を行う。第1実施形態においては1クロックサイクルで1ブロックの全ラウンドの処理を行っていたが、第2実施形態では1クロックサイクルで1ラウンドずつ処理を行う。ラウンド処理部350に内蔵されている保持部に1クロックサイクル毎に各ラウンドの処理結果が保持され、所定のラウンド数分の処理を行う。
このようにして、最初のブロックデータJ1-M0の認証処理が行われ、処理データ保持部363には最初のブロックデータJ1-M0に対応する認証処理結果J1-H0が入力される。
次にT1の期間では処理データ保持部363は認証処理結果J1-H0を保持し続けるとともに、2番目のブロックデータJ1-M1の認証処理が行われる。最初のブロックデータと同様の処理が2番目のブロックデータに対して行われ、処理データ保持部363には2番目のブロックデータJ1-M1に対応する暗号処理結果J1-H1が入力される。
以降、T2からT4までの期間において3番目以降のブロックデータに対しても順次同様の処理が繰り返される。T5の期間において最後のブロックデータJ1-M5に対してはセレクタ357には鍵データK2/K3と全てのビットの値が’0’で鍵長と同じビット数であるデータ ”000...000” が入力し、AES制御部352によりセレクタ357は鍵データ K2/K3を選択し、セレクタ357の出力データとする。
鍵データK2/K3の選択はペイロード・データがブロック長の整数倍であるか否かに応じて選択される。加算器355は、セレクタ357の出力データ、認証処理用入力データ343、AES認証コアの出力データ364を加算処理し、セレクタ359に入力する。以降の処理は最後のブロック以外のブロックの処理と同様である。
なお、T6の期間に最後のブロックに対する認証処理結果J1-H5がAES認証コアから出力データとして出力されるが、AES-XCBC-MAC-96の処理結果として使用されるのは認証処理結果J1-H5の96ビット分のみであり、認証処理結果J1-H0からJ1-H4まで認証処理出力データは直接使われない。
なお、図8におけるAES認証コアにおける認証処理の動作は図7の場合と同様である。
・AES暗号コアにおける暗号の復号化処理
図8においてT0の期間では最初のブロックデータJ1-C0の復号化処理が行われる。セレクタ258には初期ベクタ253と保持部263の出力データ264が入力されるが、AES制御部252によりセレクタ258は初期ベクタ253を選択し、セレクタ258の出力データとする。加算器255は、セレクタ258の出力データと暗号処理用入力データ243を加算し、セレクタ259に入力する。セレクタ259ではAES制御部252により暗号処理用入力データ243と加算器255の出力データのうち、暗号処理用入力データ243を選択し、ラウンド処理部250においてラウンド処理を行う。ラウンド処理部250に内蔵されている保持部に1クロックサイクル毎に各ラウンドの処理結果が保持され、所定のラウンド数分の処理を行う。
また、セレクタ259の出力データは、復号化のためのラウンド処理部251にも入力しており、同様に1クロックサイクルで1ラウンドずつ処理を行う。ラウンド処理部251に内蔵されている保持部に1クロックサイクル毎に各ラウンドの処理結果が保持され、所定のラウンド数分の処理を行う。セレクタ260には初期ベクタ253と保持部262に保持されている1つ前のブロックのブロックデータが入力し、AES制御部252により初期ベクタ253が選択される。ラウンド処理部251の出力データとセレクタ260の出力データは加算器256で加算され、ラウンド処理部250の出力データとともにセレクタ261に入力される。AES制御部252によりセレクタ261は出力データ264として加算器256の出力データを選択する。
このようにして、最初のブロックデータJ1-C0の復号化処理が行われ、処理データ保持部263には最初のブロックデータJ1-C0に対応する復号処理結果J1-D0が入力される。
次にT1の期間では処理データ保持部263は復号処理結果J1-D0を保持し続けるとともに、2番目のブロックデータJ1-C1の復号化処理が行われる。セレクタ258には初期ベクタ253と保持部263の出力データ264が入力されるが、AES制御部252によりセレクタ258は保持部263の出力データ264を選択し、セレクタ258の出力データとする。加算器255は、セレクタ258の出力データと暗号処理用入力データ243を加算し、セレクタ259に入力する。セレクタ259ではAES制御部252により暗号処理用入力データ243と加算器255の出力データのうち、暗号処理用入力データ243を選択し、ラウンド処理部250においてラウンド処理を行う。ラウンド処理部250に内蔵されている保持部に1クロックサイクル毎に各ラウンドの処理結果が保持され、所定のラウンド数分の処理を行う。
また、セレクタ259の出力データは、復号化のためのラウンド処理部251にも入力しており、同様に1クロックサイクルで1ラウンドずつ処理を行う。ラウンド処理部251に内蔵されている保持部に1クロックサイクル毎に各ラウンドの処理結果が保持され、所定のラウンド数分の処理を行う。セレクタ260には初期ベクタ253と保持部262に保持されている1つ前のブロックのブロックデータが入力し、AES制御部252により保持部262に保持されている1つ前のブロックのブロックデータが選択される。ラウンド処理部251の出力データとセレクタ260の出力データは加算器256で加算され、ラウンド処理部250の出力データとともにセレクタ261に入力される。AES制御部252によりセレクタ261は出力データ264として加算器256の出力データを選択する。
このようにして2番目のブロックデータJ1-C1の復号化処理が行われ、処理データ保持部263には2番目のブロックデータJ1-C1に対応する復号処理結果J1-D1が入力される。以降、3番目のブロックデータJ1-C2、4番目のブロックデータJ1-C3に対して同様の処理が行われ、それぞれ対応する暗号処理結果J1-D2 、J1-D3が得られる。
●各コアを交互利用したパイプライン動作(第2の動作モード)
2つのIPsec処理要求(処理要求1,2)に対しては、1ブロックずつ暗号コアにより暗号処理を認証コアにより認証処理をそれぞれ行なわせることによりパイプライン動作を実現することができる。
図9は、2つのIPSEC処理要求(処理要求1,2)に対するAES暗号コア、AES認証コアによるパイプライン動作の1例を示すタイミングチャートである。
図9において、J1-*は処理要求1に関するデータ、J2-*は処理要求2に関するデータであることを示す。例えば、J1-D0、J2-D0はそれぞれ処理要求1、処理要求2の被暗号化データ(Payload)の1番目のブロックデータを示す。またJ1-C0、J2-C1は、処理要求1、処理要求2の被暗号化データの1番目のブロックデータに対する暗号処理結果(暗号化データの1番目のブロックデータ)を示す。またJ1-M0、J2-M0は、それぞれ処理要求1、処理要求2の被認証処理データの1番目のブロックデータを示し、J1-H0、J2-H0は、それぞれ処理要求1、処理要求2の被認証処理データの1番目のブロックデータに対する認証処理の途中結果のデータを示す。
ここでは処理要求1、処理要求2は共に4ブロック分のペイロード長であり、処理要求1の2ブロックを処理中に処理要求2が発生したため、処理要求1が終了して処理要求が1つのみになるまで2つの処理要求に対して交互に処理を行ない、処理要求1が終了後、処理要求2に対する処理のみを行なう場合を想定している。なお、AES暗号コアにおける最初のブロックから最後のブロックまで1ブロック単位の暗号処理の動作は第1の動作モードと同様であるので省略する。
図9に示されるように、AES暗号コアにおいて処理されるブロックと出力データの関係は以下のようになる。T0では、処理要求1の1番目のブロックデータJ1-D0がAES暗号コアに入力され、AES暗号コアにより暗号の符号化処理がされる。T1では、処理要求1の2番目のブロックデータJ1-D1がAES暗号コアに入力され、AES暗号コアにより暗号の符号化処理がされる。また、T1では、並行して、T0で符号化処理されたブロックJ1-D0に対する暗号処理結果J1-C0が出力される。T2では、処理要求2の1番目のブロックデータJ2-D0がAES暗号コアに入力され、AES暗号コアにより暗号の符号化処理がされる。また、T2では、並行して、T1で符号化処理されたブロックJ1-D1に対する暗号処理結果J1-C1が出力される。同様にして、T8では、T7で符号化処理されたブロックJ2-D3に対する暗号処理結果J2-C3が出力される。
また、図9に示されるように、AES認証コアにおいて処理されるブロックと出力データの関係は以下のようになる。T0では、処理要求1の1番目のブロックデータJ1-M0がAES認証コアに入力され、AES認証コアにより認証処理がされる。T1では、処理要求1の2番目のブロックデータJ1-M1がAES認証コアに入力され、AES認証コアにより認証処理がされる。また、T1では、並行して、T0で認証処理されたブロックJ1-M0に対する認証処理結果J1-H0が出力される。T2では、処理要求2の1番目のブロックデータJ2-M0がAES認証コアに入力され、AES認証コアにより認証処理がされる。また、T2では、並行して、T1で認証処理されたブロックJ1-M1に対する認証処理結果J1-H1が出力される。同様にして、T12では、T11で認証処理されたブロックJ2-M5に対する認証処理結果J2-H5が出力される。
このように2つのIPSEC処理要求(処理要求1、処理要求2)に対して、AES暗号コア、AES認証コアを用いて効率的にパイプライン動作が実現できる。
以上説明したように、第2実施形態では、AES-CBC処理を行なうAES暗号コアとAES-XCBC-MAC-96処理を行なうAES認証コアとを独立に設けた。これにより、複数の処理要求が発生した場合でも、AES暗号コア、AES認証コアに対して中断、再開等のソフトウエア制御を行なうことなく、暗号処理と認証処理を並行して行なうことが可能となる。そのため、ソフトウエア処理の追加のオーバーヘッドを生じること無く処理性能を向上させることが可能となる。また、暗号処理および認証処理の各々を専門に行なう専用のAES暗号コアおよびAES認証コアを設けることにより、第1実施形態に比較し回路規模を削減することが可能となる。

Claims (5)

  1. 各々が、暗号処理および認証処理を所定のブロック単位で切替えて処理可能であり、互いに並行して動作可能に構成された複数の暗号・認証手段と、
    暗号および認証の処理要求に伴う処理対象データを前記複数の暗号・認証手段に分配するデータ転送制御手段と、
    前記処理要求の個数に応じて、前記データ転送制御手段における動作モードの切り替えを行う切替手段と、
    を有し、
    前記データ転送制御手段は、
    前記複数の暗号・認証手段の一つが前記暗号処理を行い、前記複数の暗号・認証手段の他の少なくとも一つが前記認証処理を行うように前記処理対象データを分配する第1の動作モードと、
    前記複数の暗号・認証手段の各々が、前記暗号処理と前記認証処理とを時分割で行うように、前記処理対象データを分配する第2の動作モードと、
    の2つの動作モードを有し、
    前記切替手段は、前記処理要求が1つである場合に前記第1の動作モードに切り替え、前記処理要求が複数個である場合に前記第2の動作モードに切り替える
    ことを特徴とする情報処理装置。
  2. 前記複数の暗号・認証手段は、前記暗号処理と前記認証処理とを同一サイズのブロック単位で実行することを特徴とする請求項に記載の情報処理装置。
  3. 前記データ転送制御手段は、クロスバスイッチを用いて前記処理対象データを前記複数の暗号・認証手段に分配することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記暗号処理は、AES−CBC暗号処理であり、前記認証処理は、AES−XCBC-MAC-96認証処理であることを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  5. 前記第2の動作モードは、前記複数の暗号・認証手段の各々が、前記暗号処理と前記認証処理とを所定のブロック単位で交互に行うように、前記処理対象データを分配することを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
JP2009212520A 2008-11-27 2009-09-14 情報処理装置 Expired - Fee Related JP5500923B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009212520A JP5500923B2 (ja) 2008-11-27 2009-09-14 情報処理装置
US12/623,058 US8560832B2 (en) 2008-11-27 2009-11-20 Information processing apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008302907 2008-11-27
JP2008302907 2008-11-27
JP2009212520A JP5500923B2 (ja) 2008-11-27 2009-09-14 情報処理装置

Publications (3)

Publication Number Publication Date
JP2010154500A JP2010154500A (ja) 2010-07-08
JP2010154500A5 JP2010154500A5 (ja) 2013-10-24
JP5500923B2 true JP5500923B2 (ja) 2014-05-21

Family

ID=42223851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009212520A Expired - Fee Related JP5500923B2 (ja) 2008-11-27 2009-09-14 情報処理装置

Country Status (2)

Country Link
US (1) US8560832B2 (ja)
JP (1) JP5500923B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681974B1 (en) 2011-03-17 2014-03-25 Altera Corporation Array encryption core
US8942379B2 (en) * 2012-10-17 2015-01-27 Cisco Technology, Inc. Timeslot encryption in an optical transport network
US9274979B2 (en) * 2013-11-27 2016-03-01 Nvidia Corporation System, method, and computer program product for optimizing data encryption and decryption by implementing asymmetric AES-CBC channels
US20150363334A1 (en) * 2014-06-16 2015-12-17 Texas Instruments Incorporated Speculative cryptographic processing for out of order data

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002052765A2 (en) * 2000-12-25 2002-07-04 Matsushita Electric Industrial Co., Ltd. Security communication packet processing apparatus and the method thereof
US6950517B2 (en) * 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
JP2004088505A (ja) * 2002-08-27 2004-03-18 Matsushita Electric Ind Co Ltd 並列ストリーム暗復号装置及びその方法並びに並列ストリーム暗復号プログラム
US20040202317A1 (en) * 2002-12-20 2004-10-14 Victor Demjanenko Advanced encryption standard (AES) implementation as an instruction set extension
JP2005148894A (ja) 2003-11-12 2005-06-09 Sony Corp データ処理方法およびデータ処理装置
US7697681B2 (en) * 2004-02-06 2010-04-13 Nortel Networks Limited Parallelizable integrity-aware encryption technique
US7685434B2 (en) * 2004-03-02 2010-03-23 Advanced Micro Devices, Inc. Two parallel engines for high speed transmit IPsec processing
JP2006041684A (ja) * 2004-07-23 2006-02-09 Sony Corp 暗号処理装置および暗号処理方法
JP4549303B2 (ja) * 2005-02-07 2010-09-22 株式会社ソニー・コンピュータエンタテインメント パイプラインを用いてメッセージ認証コードを提供する方法および装置
MX2007012748A (es) * 2005-04-25 2008-01-14 Nokia Corp Metodo y aparato de generacion de codigo de grupo.
JP4254758B2 (ja) * 2005-07-25 2009-04-15 ソニー株式会社 ストリーム暗号化装置、ストリーム暗号化方法、ストリーム復号化装置、ストリーム復号化方法
US7725719B2 (en) * 2005-11-08 2010-05-25 International Business Machines Corporation Method and system for generating ciphertext and message authentication codes utilizing shared hardware
US8233619B2 (en) * 2006-06-07 2012-07-31 Stmicroelectronics S.R.L. Implementation of AES encryption circuitry with CCM
US7831039B2 (en) * 2006-06-07 2010-11-09 Stmicroelectronics S.R.L. AES encryption circuitry with CCM
JP4991223B2 (ja) * 2006-09-08 2012-08-01 ルネサスエレクトロニクス株式会社 データ処理装置
US8010801B2 (en) * 2006-11-30 2011-08-30 Broadcom Corporation Multi-data rate security architecture for network security
US8112622B2 (en) * 2006-12-08 2012-02-07 Broadcom Corporation Chaining port scheme for network security
US8194854B2 (en) * 2008-02-27 2012-06-05 Intel Corporation Method and apparatus for optimizing advanced encryption standard (AES) encryption and decryption in parallel modes of operation
JP2010130353A (ja) * 2008-11-27 2010-06-10 Canon Inc 暗号処理装置
JP2010128392A (ja) * 2008-11-28 2010-06-10 Canon Inc ハッシュ処理装置及びその方法

Also Published As

Publication number Publication date
US8560832B2 (en) 2013-10-15
JP2010154500A (ja) 2010-07-08
US20100138648A1 (en) 2010-06-03

Similar Documents

Publication Publication Date Title
JP6592804B2 (ja) 新暗号規格(aes)向けの柔軟なアーキテクチャおよび命令
US9374218B2 (en) Method for conducting data encryption and decryption using symmetric cryptography algorithm and table look-up device
US8020006B2 (en) Pipeline for high-throughput encrypt functions
US9843440B2 (en) Encryptor/decryptor, electronic device including encryptor/decryptor, and method of operating encryptor/decryptor
WO2021014125A1 (en) Cryptographic architecture for cryptographic permutation
JP2009211071A (ja) 一連の変換を行って一変換を分離する命令を含む命令の組合せ
US7657757B2 (en) Semiconductor device and method utilizing variable mode control with block ciphers
WO2011123575A1 (en) Cryptographic processor with dynamic update of encryption state
US9418245B2 (en) Encryption processing device, encryption processing method, and program
JP5500923B2 (ja) 情報処理装置
KR20040074266A (ko) 고속의 오프셋 코드북 모드를 위한 블럭 암호화 장치 및그 방법
CN112564890B (zh) 一种加速sm4算法的方法、装置、处理器及电子设备
Misra et al. A new encryption/decryption approach using AES
Feghali et al. Security: Adding Protection to the Network via the Network Processor.
JP4395527B2 (ja) 情報処理装置
KR100509489B1 (ko) 가변 폭의 데이터 패킷을 암호화하는 장치 및 방법
WO2009090689A1 (ja) 暗号化装置、暗号化方法及びプログラム
CN111262685B (zh) 一种新型密钥生成的Shield分组密码实现方法、装置及可读存储介质
JP2006235440A (ja) 半導体集積回路
JP2004157164A (ja) メッセージダイジェスト生成回路およびパディング回路
El-Morshedy et al. Cryptographic Algorithms for Enhancing Security in Cloud Computing.
CN116647328A (zh) 一种新型psp结构的轻量级分组密码实现方法及系统
WO2023069441A2 (en) Low-latency multi-key encryption and decryption engine and techniques
Liu et al. Analysis of the Reconfiguration Feature of Cryptographic Algorithms
CN112199325A (zh) 一种3des加密解密算法可重构计算实现装置及其可重构计算方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120910

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131219

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140311

R151 Written notification of patent or utility model registration

Ref document number: 5500923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees