JP2013009276A - 暗号処理装置 - Google Patents

暗号処理装置 Download PDF

Info

Publication number
JP2013009276A
JP2013009276A JP2011142243A JP2011142243A JP2013009276A JP 2013009276 A JP2013009276 A JP 2013009276A JP 2011142243 A JP2011142243 A JP 2011142243A JP 2011142243 A JP2011142243 A JP 2011142243A JP 2013009276 A JP2013009276 A JP 2013009276A
Authority
JP
Japan
Prior art keywords
input
data
output data
processing
processing means
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
JP2011142243A
Other languages
English (en)
Other versions
JP2013009276A5 (ja
JP5930619B2 (ja
Inventor
Manabu Ishikawa
学 石川
Akihiko Kumatoriya
昭彦 熊取谷
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 JP2011142243A priority Critical patent/JP5930619B2/ja
Priority to US13/531,275 priority patent/US8793505B2/en
Publication of JP2013009276A publication Critical patent/JP2013009276A/ja
Publication of JP2013009276A5 publication Critical patent/JP2013009276A5/ja
Application granted granted Critical
Publication of JP5930619B2 publication Critical patent/JP5930619B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】データの転送回数を従来より削減し、復号処理と認証処理との並列化処理を高速化した暗号処理装置を提供する。
【解決手段】復号処理を行う復号処理手段107と、認証処理を行う認証処理手段108と、前記復号処理手段および前記認証処理手段への入出力データを処理する入出力データ処理手段106を有し、前記入出力データ処理手段106は、前記入出力データ処理手段106への入力データから、前記認証処理手段108で用いられるパラメータを算出するパラメータ算出手段1062と、前記パラメータ算出手段1062で算出されたパラメータ、あるいは、前記復号処理手段107で処理されたデータから算出されたパラメータと、前記入出力データ処理手段106への入力データから、前記認証処理手段107への入力データを成形する入出力データ成形手段1063を有する。
【選択図】図1

Description

本発明は、暗号処理装置に関するものである。
近年、各種デジタル機器をネットワークに接続し、機器間でデータ通信を行なうことが多くなり、インターネット上でデータ通信を行う機会も増加している。このようなネットワーク上でのデジタル機器間の通信においては送受信するデータの盗聴や改竄の可能性があり、これらの盗聴や改竄からデータ通信の安全性を守るための通信プロトコルが必要になる。このような通信プロトコルとして暗号化・復号機能と認証機能を備えたIPsecやSSL/TLSなどが標準技術として広く使われている。
従来このような通信暗号処理はソフトウエアにより実現されることが多かった。しかしネットワーク上のデータ通信におけるデータ量が年々増加しており、かつ、リアルタイム性を要求されるケースが多いことから通信暗号処理の高速化が求められている。
このため、通信暗号処理をハードウエア化し、通信暗号処理における暗号化・復号処理と認証処理を並列化することにより高速化する手法が用いられている。特許文献1では、SSL/TLS受信処理において暗号化・復号処理と認証処理を並列化する手法が提案されている。
特開2010−57123号公報
しかしながら、特許文献1では、SSL/TLS受信処理において、認証パラメータを算出するための復号処理、ペイロード・データの復号処理と認証処理を一括してハードウエア処理できなかった。これらの処理を行うにはソフトウエア処理、ハードウエア処理の切替、ハードウエア処理の設定、ソフトウエア処理、データ転送等を順次処理する必要があり、高速化の妨げになっていた。
上記課題を解決するため、データの転送回数を従来より削減し、復号処理と認証処理との並列化処理の高速化を目的とする。
本発明に係る暗号処理装置は、復号処理を行う復号処理手段と、認証処理を行う認証処理手段と、前記復号処理手段および前記認証処理手段への入出力データを処理する入出力データ処理手段を有し、前記入出力データ処理手段は、前記入出力データ処理手段への入力データから、前記認証処理手段で用いられるパラメータを算出するパラメータ算出手段と、前記パラメータ算出手段で算出されたパラメータ、あるいは、前記復号処理手段で処理されたデータから算出されたパラメータと、前記入出力データ処理手段への入力データから、前記認証処理手段への入力データを成形する入出力データ成形手段を有することを特徴とする。
本発明によれば、データの転送回数を従来より削減し、復号処理と認証処理との並列化処理の高速化が実現できる。
実施形態1における暗号処理装置の構成を示した図。 SSL/TLS処理において送受信されるデータフォーマットを示した図。 SSL/TLS処理において認証処理の対象となるデータグラムを示した図。 SSL/TLS受信処理において復号処理の対象となるデータグラムを示した図。 実施形態1におけるSSL/TLS受信処理の先頭部分の処理フローを示した図。 実施形態1におけるSSL/TLS受信処理の最後の部分の処理フローを示した図。
[実施形態1]
以下、本発明の実施形態についてSSL/TLS受信処理を説明する。ここでは、SSL/TLS受信処理として、AES−128、SHA−1の例を説明する。
図1は本発明の実施形態1における暗号処理装置の構成を示した図である。同図において100は本発明に係る暗号処理装置である。暗号処理装置100は中央演算処理装置101、外部記憶装置102、暗号処理アクセラレータ103から構成される。中央演算処理装置101は暗号処理アクセラレータ103にパラメータ設定し、外部記憶装置102と暗号処理アクセラレータ103間の入出力データ転送設定を制御する。外部記憶装置102には暗号処理アクセラレータ103との間で転送される入出力データ、暗号処理アクセラレータ103に設定されるパラメータが保持されている。
暗号処理アクセラレータ103はパラメータ保持・設定部104、入出力データ転送部105、入出力データ処理部106、暗号化・復号処理部107、認証処理部108から構成される。パラメータ保持・設定部104は中央演算処理装置101によって通信暗号処理に必要なパラメータを設定され、処理が終了するまで保持されるようになっている。入出力データ転送部105は中央演算処理装置101によって設定された入出力データ転送設定に従って外部記憶装置102、入出力データ処理部106間で入出力データを転送する。
入出力データ処理部106はパラメータ算出部1062、入出力データ成形部1063、中間データ保持部1064等から構成される。パラメータ算出部1062はパラメータ保持・設定部104で保持されるパラメータと入出力データ成形部1063で成形される入出力データから暗号化・復号処理、認証処理に必要なパラメータを算出する。そして算出されたパラメータを暗号化・復号処理部107、認証処理部108に設定する。また、一部の入力データを生成し、入出力データ成形部1063に出力する。
入出力データ成形部1063は暗号化・復号処理部107、認証処理部108への入力データを成形し、暗号化・復号処理部107、認証処理部108へ出力する。この入力データは入出力データ転送部105から転送される入力データ、中間データ保持部1064から転送される中間データ、パラメータ算出部1062の出力データから成形される。また入出力データ成形部1063は中間データ保持部1064から転送される中間データから出力データを成形し、入出力データ転送部105へ転送する。
中間データ保持部1064には暗号化・復号処理部107、認証処理部108からの出力データが入力し、一時保持され、入出力データ成形部へ転送される。
暗号化・復号処理部107にはパラメータ算出部1062から暗号化・復号処理に必要なパラメータが設定され、入出力データ成形部1063から成形処理された入力データが入力する。そして入力データを暗号化・復号処理したデータを中間データ保持部1064に出力する。
認証処理部108にはパラメータ算出部1062から認証処理に必要なパラメータが設定され、入出力データ成形部1063から成形処理された入力データが入力する。そして認証処理の中間データを内部で保持するとともに、出力データを入出力データ処理部106の中間データ保持部1064に出力する。出力データはここでは認証処理の1ブロック毎の処理終了信号であるが、前記中間データを出力してもよい。
暗号処理アクセラレータ103は設定に従って処理を行い、暗号化・復号処理されたデータおよび認証処理結果は外部記憶装置102に転送され、処理の終了を中央演算処理装置101へ通知する。
次にSSL/TLS受信処理において暗号化・復号処理部107に入力するデータについて説明する。
図2は、SSL/TLS受信処理における受信データのフォーマットを示した図である。図2において、”Compressed fragment”、 ”MAC値”、”padding data”、”CipherText.paddinglength”の各フィールドのデータは送信側で連結され、AES−128で暗号化されている。この暗号化されたデータがSSL/TLS受信処理において暗号化・復号処理部107で復号処理される。ここで、”Type”、”Version”、” CipherText.length”は、ヘッダ部分に相当する。”Type”はSSL/TLSのペイロード・データに格納されているデータの種類、”Version”はSSL/TLSのバージョン、” CipherText.length”は暗号化されているデータのデータ長である。”Compressed fragment”は、コンテンツデータ、“MAC値”は、 改竄検知のための認証コードである。”padding data”は暗号化対象データをAES−128のブロックサイズの整数倍にするために付加されるデータである。”CipherText.paddinglength”は”Cipher_Text.paddinglength”フィールドを含めた”padding data”のデータ長である。尚、図2のフォーマットに沿った暗号化データは、パケット、あるいはデータグラムの暗号化処理単位ごとに生成され、この暗号化処理単位ごとに、復号処理が実行される。
次にSSL/TLS受信処理において認証処理部108に入力するデータについて説明する。
図3は本実施形態における認証処理部108の入力データを示した図である。
図3において、”K XOR ipad”はSSL/TLSプロトコルで通信する双方で共有するMAC書き込みシークレットの後に0x00を付加して64バイトにしたものとipadの排他的論理和である。”Sequence number”は送信側ではデータの送出毎に、受信側ではデータの受信毎にデータのバイト数を加えて更新されるカウンタ値である。”K XOR ipad”と”Sequence number”については図2で示した受信データそのものに含まれていない。そのため、中央演算処理装置101が、Kと”Sequence number”を、パラメータ保持・設定部104に設定し、そして、パラメータ算出部1062に送られる。パラメータ算出部1062は、Kと保持しているipadから、”K XOR ipad”を算出する。算出された”K XOR ipad”と、”Sequence number”を入出力データ成形部1063に送られる。そして、認証処理部108への入力データとして図2で示した受信データに先行して、”K XOR ipad”と”Sequence number”が連結される。これに続いて、受信データから暗号化されていない”Type”、”Version”の各データが入出力データ成形部1063で連結される。受信データではその後に ”CipherText.length”が続くが認証処理においては、”CipherText.length”を式(1)により算出された”Compressed.length”に置き換える必要がある。
Compressed.length
= CipherText.length−CipherSpec.mac_size−(CipherText.padding_length+1) ・・式(1)
ここで ”CipherText.length”, ”CipherSpec.mac_size”, ”CipherText.padding_length+1”はRFC2104に規定されており、図2に示されるような関係にある。”CipherText.length”は、暗号化されているデータのデータ長、 ”CipherSpec.mac_size”は、MAC値のデータ長、 ”CipherText.padding_length”は、パディングデータのデータ長である。
さらに復号処理により得られた”Compressed fragment”を入出力データ成形部1063で連結し、“padding data”を入出力データ成形部1063で付加したものが、図3(A)である。”Compressed fragment”と“padding data”は、暗号化・復号処理部107における復号処理で得られる。そして、図3(A)のデータから、ハッシュ値を認証処理部108で求める。次にSSL/TLSプロトコルで通信する双方で共有するMAC書き込みシークレットの後に0x00を付加して64バイトにしたものとopadの排他的論理和である”K XOR opad”と上記算出されたハッシュ値を入出力データ成形部1063で連結する。算出されたハッシュ値は、図3(B)の”Hash Value”に相当する。尚、”K XOR opad”は、パラメータ算出部1062において、パラメータ保持・設定部104から受け取ったKと保持しているopadから、”K XOR opad”を算出し、その後、入出力データ成形部1063に送られる。復号処理された“Padding data”を入出力データ成形部1063で付加したものが、図3(B)である。図3(B)のデータを認証処理部108に入力し、最終的なMAC値を認証処理部108で算出する。
図4は、SSL/TLS受信処理において復号処理の対象となるデータグラムを示した図である。図4(A)は、図2と同じであり、SSL/TLS受信処理における受信データに相当する。図4(B)は、暗号処理アクセラレータ103への入力データであり、図4(A)に示した受信データの先頭部分に、暗号化データの最終2ブロックを連結したデータである。復号処理は、暗号化・復号処理部107で、16バイト単位で処理される。図4(B)に示した入力データの先頭に連結された暗号化データの最終2ブロックのうち、最後のブロック”CE”は復号処理の被処理データとして、最後から2番目のブロック”CE2”はブロック”CE”の復号処理のイニシャルベクタとして用いられる。
図5は実施形態1におけるSSL/TLS受信処理の先頭部分の処理フローを示した図である。
ステップS401において中央演算処理装置101は暗号処理アクセラレータ103の動作に必要なパラメータをパラメータ保持・設定部104に設定する。ステップS402においてパラメータ保持・設定部104は設定されたパラメータを保持するとともにパラメータ算出部1062に転送する。ステップS403においてパラメータ算出部1062は転送されたパラメータのうち、”K ”を用いて、”K XOR ipad”と”K XOR opad”を算出する。算出した”K XOR ipad”と受け取った”Sequence Number” を入出力データ成形部1063に転送する。尚、ステップS401、ステップS402、ステップS403と、後述するステップS426のパラメータに関する処理は、暗号処理単位であるパケット、あるいはデータグラムごとに実行される。
ステップS404において、入出力データ成形部1063は、転送された”K XOR ipad”と”Sequence Number”から認証処理部108の入力データであるブロックH0を成形し、認証処理部108へ出力する。本実施形態では認証処理部108においてハッシュ関数SHA−1の処理を行うので入力データは64バイト単位となり、入力データであるブロックH0は、図3の”K XOR ipad”となる。”K XOR ipad”は送受信されるデータに先行して送信側・受信側双方で共有している情報から算出可能であるため、入力する受信データが64バイトに達する前に認証処理部108での認証処理が開始できる。ステップS405において認証処理部108は図3に示した認証処理の対象となるデータの最初のブロックであるブロックH0に対してハッシュ値算出処理を行う。なお、認証処理部108は、ブロックH0に対する処理が終了すると中間値を内部に保持し、次のブロックであるブロックH1の処理における初期値として使用する。この中間値は1ブロックの処理が終了するたびに認証処理部108内部で保持され、対象となる全データに対する認証処理が終了するまで中間データ保持部1064に出力する必要はない。
ここで、ブロックHmは、図3(A)のデータを、64バイト単位で分割したブロックのうち、m+1番目のブロックである。また、ブロックHEは、図3(A)のデータを、64バイト単位で分割したブロックのうちの最後のブロックである。
一方、ステップS406において中央演算処理装置101は入出力データ転送部105と外部記憶装置102間の入出力データ転送設定を入出力データ転送部105に設定する。ステップS407において入出力データ転送部105は外部記憶装置102から入出力データ転送部105への図4(B)に示した入力データの転送を開始する。本実施例では暗号モードがCBCモードであるのでイニシャルベクタがパラメータとして設定されるが、CTRモードであればカウンタ値がパラメータとして設定される。ステップS426において、パラメータ算出部1062は、入力データからブロック“CE2”を抽出し、イニシャルベクタとして暗号処理部107に転送する。
ステップS408において入出力データ成形部1063は入力データからブロックCEを成形し、暗号化・復号処理部107に転送する。ここで、ブロックCnは、図2で、暗号化されているデータを、16バイト単位で分割したブロックのうち、n+1番目のブロックである。また、ブロックCEは、図2で、暗号化されているデータを、16バイト単位で分割したブロックのうちの最後のブロックである。ここで、図2、暗号化されているデータは、”Compressed fragment”、” Padding data”、 ”MAC値 ”、” CipherText.paddinglength”である。
上述したように図3で示した認証処理部108への入力データの成形にあたっては受信データの”CipherText.length”を”Compressed.length”に置き換える必要がある。この際、入出力データ成形部1063での成形処理に”CipherText.padding_length+1” が必要となる。そのため、受信データの暗号化された部分から先行して”CipherText.padding_length+1”を含むブロックの復号処理を行う。SSL/TLSの規格上上記”CipherText.padding_length+1”を含むブロックは受信データの最後のブロックであるため、暗号化・復号処理部107で行う復号処理の最初のブロックは受信データの最後のブロックCEになる。
ステップS409において暗号化・復号処理部107はブロックCEに対する復号処理を行い、ブロックCEを平文化(復号処理)したブロックPEを中間データ保持部1064に出力する。ここで、ブロックPnは、ブロックCnを復号処理されたブロックである。ステップS410において中間データ保持部1064は入出力データ成形部1063にブロックPEを転送する。ステップS427において、入出力データ成形部1063はブロックPEから”CipherText.padding_length”を抽出し、上述した式(1)によりパラメータである”Compressed.length”を算出する。他のパラメータ”CipherText.length”は受信データに平文として埋め込まれており、パラメータとしてパラメータ保持・設定部104に設定される。また、”CipherSpec.mac_size”は認証処理部108で選択された認証アルゴリズムによって決まる固定値である。なお、ブロックPEはここでは上記”Compressed.length”を算出するためにのみ使用しているので入出力データ転送部105を介して外部記憶装置102に転送していないが、暗号化されたデータの復号処理の最後にもう一度読み込む必要がある。ステップ410において外部記憶装置102に転送することにより再度最後のブロックの復号処理を省略することもできるが後述するようにトータルの処理時間は短縮できない。
ステップS428においてパラメータ算出部1062はパラメータ保持・設定部104から転送されたイニシャルベクタを暗号化・復号処理部107に転送する。ステップS411において入出力データ成形部1063は入力データからブロックC0を成形し、暗号処理部107に転送する。ここでブロックC0は、暗号化されているデータを、16バイト単位で分割したブロックのうちの最初のブロックである。ステップS412において暗号化・復号処理部107はブロックC0に対する復号処理を行い、ブロックC0を平文化(復号処理)したブロックP0を中間データ保持部1064に出力する。また、ステップS428で設定されたイニシャルベクタをブロックC0に置き換え、内部で保持する。ステップS413において中間データ保持部1064は入出力データ成形部1063および入出力データ転送部105にブロックP0を転送する。ステップS414において入出力データ転送部105は外部記憶装置102にブロックP0を転送する。
ステップS415において入出力データ成形部1063は入力データからブロックC1を成形し、暗号処理部107に転送する。ここでブロックC1は、図2で、暗号化されているデータを、16バイト単位で分割したブロックのうち、2番目のブロックである。ステップS416、ステップS417、ステップS418においてブロックC0と同様の手順で、ブロックC1を成形/転送、復号処理し、平文化(復号処理)したブロックP1を外部記憶装置102に転送する。ステップS419、ステップS420、ステップS421、ステップS422においても、ブロックC0と同様の手順で、ブロックC2を成形/転送、復号処理し、平文化(復号処理)したブロックP2を外部記憶装置102に転送する。
また、ブロックC3、C4、・・・についても同様の手順で復号処理を行ない、平文化(復号処理)したブロックP3、P4、・・・を外部記憶装置102に転送する。この間、ブロックC3、C4、・・・を含む入力データを外部記憶装置102から入出力データ転送部105に転送する必要があるが、図5においては省略し、明示していない。入出力データ転送部105、入出力データ成形部1063などが一時保持できればまとめてバースト転送してもよいし、平文化(復号処理)したブロックを外部記憶装置102に転送するたびに外部記憶装置102から転送してもよい。
一方、ステップS405において認証処理部108がブロックH0に対するハッシュ値算出処理を終えると中間データ保持部1064に対してブロックH0処理終了信号を出力する。ステップS423において中間データ保持部1064は入出力データ成形部1063に対してブロックH0処理終了信号を転送する。ステップS424において、入出力データ成形部1063は、ブロックH1を成形する。ブロックH1は、入出力データ転送部105から受け取った“Type”と“Version”と、ステップS427で算出した”Compressed.length”と、暗号化・復号処理部107で復号された“fragment”とから成形される。そして、成形したブロックH1を、認証処理部108に転送する。ステップS425において認証処理部108はブロックH0に対するハッシュ値算出処理を行った結果得られた中間値を初期値としてブロックH1に対してハッシュ値算出処理を行う。
そして、処理中のパケット、あるいはデータグラムのデータがなくなるまで、ブロックCn成形/転送処理、ブロックCn復号処理、ブロックPn転送処理、ブロックHm認証処理を繰り返す。
本実施形態では暗号化・復号処理アルゴリズムとしてCBCモードのAES−128、認証処理アルゴリズムとしてHMAC−SHA−1の組み合わせが選択された場合を想定している。AES−128は128ビットの入力データを11ラウンド、SHA−1は512ビットの入力データを80ステップでそれぞれ処理するアルゴリズムである。SSL/TLSでは送受信する被処理データに対し、暗号化・復号処理と認証処理の両方を行う必要がある。これらを並列処理する場合、SHA−1が1ブロックの処理に要する時間が、AES−128が1ブロックの処理に要する時間の4倍より大きければ、SHA−1の処理速度がSSL/TLSレコードプロトコル処理のスループットを決める支配要因になる。一方、SHA−1が1ブロックの処理に要する時間が、AES−128が1ブロックの処理に要する時間の4倍より小さければ、AES−128の処理速度がSSL/TLSレコードプロトコル処理のスループットを決める支配要因になる。ここではハードウエアでAES−128を1ラウンド/クロックサイクル、SHA−1を2ステップ/クロックサイクルで処理すると想定し、ほぼ同等の処理速度を想定している。
図6は本実施形態におけるSSL/TLS受信処理の最後の部分の処理フローを示した図である。
ステップS512において処理中のパケット、あるいはデータグラムの入力データがなくなると、入出力データ転送部105は外部記憶装置102から入出力データ転送部105への入力データの転送を終了する。
ステップS513のブロックCE復号処理は、図4のステップ409と同様の処理である。ステップS514のブロックPE転送処理は、図4のステップ410と同様の処理である。
ステップS501において入出力データ転送部105は復号処理した最後のブロックPEを外部記憶装置102に転送する。
ステップS502において認証処理部108は最後のブロックであるブロックHEに対するハッシュ値算出処理を行ない、算出したハッシュ値を中間データ保持部1064へ転送する。ステップS503において中間データ保持部1064はハッシュ値を入出力データ成形部1063に転送し、入出力データ成形部1063はハッシュ値を保持しておく。ここで、ハッシュ値は、図3(B)における“Hash Value”に相当する。
ステップS504において入出力データ成形部1063はブロックM0を成形し、認証処理部108に転送する。ここで、ブロックM0は、図3(B)における”K XOR opad”の部分である。
ステップS505において認証処理部108はブロックM0に対するハッシュ値算出処理を行ない、中間データ保持部1064に対してブロックM0処理終了信号を出力する。ステップS506において中間データ保持部1064は入出力データ成形部1063に対してブロックM0処理終了信号を転送する。
ステップS507において入出力データ成形部1063は、認証処理部108で算出したハッシュ値と、暗号化・復号処理部107で復号されたPadding dataとから、ブロックM1を成形し、認証処理部108に転送する。ここで、ブロックM1は、図3(B)における“Hash Value”および”Padding data”の部分である。ステップS508において認証処理部108はブロックM1に対するハッシュ値算出処理を行ない、算出したMAC値を中間データ保持部1064へ転送する。ステップS509において中間データ保持部1064はMAC値を入出力データ成形部1063に転送する。ステップS510において、入出力データ成形部1063は、認証処理部108で算出されたMAC値が復号処理して得られたMAC値と一致するか比較を行う。また、算出したMAC値およびMAC値の比較結果を入出力データ転送部105に転送する。ステップS511において、入出力データ転送部105はMAC値およびMAC値の比較結果を外部記憶装置102に転送する。
図5と図6のフローチャートは、ある1つの暗号化処理単位のデータについての処理であり、受信した暗号化データを復号処理・認証処理する場合は、図5と図6のフローチャートを、暗号化処理単位ごとに処理される。
以上説明したようにSSL/TLS受信処理の設定に従って、暗号化・復号処理および認証処理に必要なパラメータの算出、設定と入力データの成形を行う入出力データ処理をハードウエアで行っている。そのため、ハードウエア、ソフトウエア間の切替が不要な一括処理が可能になった。また、復号処理、認証処理を並列化し、データ転送回数も削減することができたため、SSL/TLS受信処理の処理速度を向上させることができた。
本実施形態によれば、通信暗号処理に必要な設定を行い、その後、入力データを一度入力することでハードウエアが一連の通信暗号処理に必要なパラメータの算出、入出力データの成形を行っている。このためハードウエア処理、ソフトウエア処理の切替によるオーバーヘッドがなくなり、データの転送回数が従来より削減される。また、暗号化・復号処理と認証処理を並列化するだけでなく暗号、認証アルゴリズムに応じて最適な順序で処理でき、通信暗号処理全体のスループットを向上させることができる。
また、本実施形態によれば、処理中の暗号化処理単位の通信暗号処理を行う際に、一度だけ必要な設定を行い、入力データを入力すれば良いので従来必要であった復号されたデータを保持する記憶容量が必要なくなる。結果として、メモリコストを削減出来る。
なお、本実施形態においては暗号アルゴリズムとしてCBCモードのAES−128を例にしたが、CTRモードにおいてもIVの代わりにCTR初期値をパラメータとして設定して同様の動作が実現できる。また認証アルゴリズムとしてHMAC−SHA−1を例にしたが、SHA−1の代わりにMD5、SHA−256などを使った場合でも適用可能である。MD5、SHA−256などを使った場合に得られるハッシュ値のデータサイズがそれぞれ16バイト、32バイトとなる点が異なるが、入力データのブロックサイズはSHA−1の場合と同様に64バイトであるので本実施例と同様の処理が実現できる。

Claims (8)

  1. 復号処理を行う復号処理手段と、
    認証処理を行う認証処理手段と、
    前記復号処理手段および前記認証処理手段への入出力データを処理する入出力データ処理手段を有し、
    前記入出力データ処理手段は、
    前記入出力データ処理手段への入力データから、前記認証処理手段で用いられるパラメータを算出するパラメータ算出手段と、
    前記パラメータ算出手段で算出されたパラメータ、あるいは、前記復号処理手段で処理されたデータから算出されたパラメータと、前記入出力データ処理手段への入力データから、前記認証処理手段への入力データを成形する入出力データ成形手段を有する暗号処理装置。
  2. 前記パラメータ算出手段は、前記入出力データ処理手段への入力データを用いて、前記認証処理手段で用いるパラメータを算出し、
    前記入出力データ成形手段は、前記パラメータ算出手段で算出されたパラメータ、あるいは、前記入出力データ処理手段への入力データから、前記認証処理手段への入力データを成形することを特徴とする請求項1に記載の暗号処理装置。
  3. 前記入出力データ成形手段は、前記復号処理手段で復号処理されたデータからパラメータを算出し、算出したパラメータと、前記入出力データ処理手段への入力データと、前記復号処理手段で処理されたデータとから、前記認証処理手段への入力データを成形する請求項1に記載の暗号処理装置。
  4. 前記入出力データ成形手段は、前記入出力データ処理手段への入力データから、前記復号処理手段への入力データを成形することを特徴とする請求項1〜3の何れか1項に記載の暗号処理装置。
  5. 前記入出力データ成形手段は、前記認証処理手段で得られたMAC値と、前記復号処理手段で得られたMAC値と比較することを特徴とする請求項1〜4の何れか1項に記載の暗号処理装置。
  6. 前記パラメータ算出手段は、1パケットまたは1データグラムごとに、パラメータの算出を行うことを特徴とする請求項1〜5の何れか1項に記載の暗号処理装置。
  7. さらに、前記入出力データ処理手段への入出力データの転送を制御する入出力データ転送手段を有し、
    前記入出力データ処理手段は、さらに、前記復号処理手段で処理されたデータ、あるいは、前記認証処理手段で処理されたデータを一時保持するための中間データ保持手段を有する特徴とする請求項1〜6の何れか1項に記載の暗号処理装置。
  8. 前記復号処理および認証処理は、SSL/TLSレコードプロトコル処理であることを特徴とする請求項1〜7の何れか1項記載の暗号処理装置。
JP2011142243A 2011-06-27 2011-06-27 暗号処理装置 Active JP5930619B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011142243A JP5930619B2 (ja) 2011-06-27 2011-06-27 暗号処理装置
US13/531,275 US8793505B2 (en) 2011-06-27 2012-06-22 Encryption processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011142243A JP5930619B2 (ja) 2011-06-27 2011-06-27 暗号処理装置

Publications (3)

Publication Number Publication Date
JP2013009276A true JP2013009276A (ja) 2013-01-10
JP2013009276A5 JP2013009276A5 (ja) 2014-08-14
JP5930619B2 JP5930619B2 (ja) 2016-06-08

Family

ID=47362981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011142243A Active JP5930619B2 (ja) 2011-06-27 2011-06-27 暗号処理装置

Country Status (2)

Country Link
US (1) US8793505B2 (ja)
JP (1) JP5930619B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019043987A1 (ja) * 2017-09-01 2019-03-07 パナソニックIpマネジメント株式会社 コンテンツ記録装置、コンテンツ編集装置、コンテンツ再生装置、コンテンツ記録方法、コンテンツ編集方法、および、コンテンツ再生方法
JP6509475B1 (ja) * 2017-05-30 2019-05-08 三菱電機株式会社 管理装置、管理方法及び管理プログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103428204B (zh) * 2013-07-29 2016-08-10 杭州华三通信技术有限公司 一种可抵御计时攻击的数据安全实现方法及设备
JP6552184B2 (ja) * 2014-01-14 2019-07-31 キヤノン株式会社 情報処理装置およびその方法
JP2017011392A (ja) * 2015-06-18 2017-01-12 株式会社リコー 復号回路、これを用いた通信装置、及び通信システム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020191790A1 (en) * 2001-06-13 2002-12-19 Anand Satish N. Single-pass cryptographic processor and method
US20030231765A1 (en) * 2002-05-31 2003-12-18 Broadcom Corporation Methods and apparatus for performing authentication and decryption
JP2004343731A (ja) * 2003-04-24 2004-12-02 Matsushita Electric Ind Co Ltd 暗号化パケット処理装置、方法、プログラム及びプログラム記録媒体
JP2004364022A (ja) * 2003-06-05 2004-12-24 Nec Corp 暗号化通信制御方式
JP2006511126A (ja) * 2002-12-13 2006-03-30 エヌヴィディア コーポレイション ネットワーク処理機能を実行する方法および装置
JP2010057123A (ja) * 2008-08-29 2010-03-11 Panasonic Corp 暗号処理装置、暗号処理方法及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783880B2 (en) * 2004-11-12 2010-08-24 Microsoft Corporation Method and apparatus for secure internet protocol (IPSEC) offloading with integrated host protocol stack management
WO2010067433A1 (ja) * 2008-12-11 2010-06-17 三菱電機株式会社 自己認証通信機器、自己認証検証通信機器、機器認証システム、機器認証システムの機器認証方法、自己認証通信プログラムおよび自己認証検証通信プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020191790A1 (en) * 2001-06-13 2002-12-19 Anand Satish N. Single-pass cryptographic processor and method
US20030231765A1 (en) * 2002-05-31 2003-12-18 Broadcom Corporation Methods and apparatus for performing authentication and decryption
JP2006511126A (ja) * 2002-12-13 2006-03-30 エヌヴィディア コーポレイション ネットワーク処理機能を実行する方法および装置
JP2004343731A (ja) * 2003-04-24 2004-12-02 Matsushita Electric Ind Co Ltd 暗号化パケット処理装置、方法、プログラム及びプログラム記録媒体
JP2004364022A (ja) * 2003-06-05 2004-12-24 Nec Corp 暗号化通信制御方式
JP2010057123A (ja) * 2008-08-29 2010-03-11 Panasonic Corp 暗号処理装置、暗号処理方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6015032303; 舟津 泰史: '"SSL/TLS受信時の高速処理方法及びその装置"' ソニー公開技報集 Vol.13、No.13, 20041110, p.1-7, ソニー(株) *
JPN6015032305; 磯部 隆史、堤 聡、瀬戸 康一郎、青島 健次、苅谷 和俊: '"FPGAを用いた10Gbps TLS/SSLアクセラレータの開発"' 電子情報通信学会技術研究報告 Vol.109、No.448, 20100225, p.549-554, 社団法人電子情報通信学会 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6509475B1 (ja) * 2017-05-30 2019-05-08 三菱電機株式会社 管理装置、管理方法及び管理プログラム
WO2019043987A1 (ja) * 2017-09-01 2019-03-07 パナソニックIpマネジメント株式会社 コンテンツ記録装置、コンテンツ編集装置、コンテンツ再生装置、コンテンツ記録方法、コンテンツ編集方法、および、コンテンツ再生方法
CN109757117A (zh) * 2017-09-01 2019-05-14 松下知识产权经营株式会社 内容记录装置、内容编辑装置、内容再生装置、内容记录方法、内容编辑方法、以及内容再生方法
JPWO2019043987A1 (ja) * 2017-09-01 2020-08-06 パナソニックIpマネジメント株式会社 コンテンツ記録装置、コンテンツ編集装置、コンテンツ再生装置、コンテンツ記録方法、コンテンツ編集方法、および、コンテンツ再生方法
JP7022947B2 (ja) 2017-09-01 2022-02-21 パナソニックIpマネジメント株式会社 コンテンツ記録装置、コンテンツ編集装置、コンテンツ再生装置、コンテンツ記録方法、コンテンツ編集方法、および、コンテンツ再生方法
CN109757117B (zh) * 2017-09-01 2024-02-06 松下知识产权经营株式会社 内容记录装置、内容编辑装置、内容再生装置、内容记录方法、内容编辑方法、以及内容再生方法

Also Published As

Publication number Publication date
US20120331305A1 (en) 2012-12-27
US8793505B2 (en) 2014-07-29
JP5930619B2 (ja) 2016-06-08

Similar Documents

Publication Publication Date Title
JP6138333B2 (ja) 鍵回復攻撃を妨害する対抗手段としての送信機および受信機のペアリングのためのマスタ鍵暗号化関数
CN107005413B (zh) 安全连接及相关服务的高效启动
US7082534B2 (en) Method and apparatus for performing accelerated authentication and decryption using data blocks
CN103684794B (zh) 一种基于des、rsa、sha‑1加密算法的通信数据加解密方法
US8731196B2 (en) Decrypting apparatus, encrypting apparatus, decrypting method, encrypting method, and communication system
US7274792B2 (en) Methods and apparatus for initialization vector processing
US10560269B2 (en) Methods and systems for improved authenticated encryption in counter-based cipher systems
US20070255947A1 (en) Methods and systems for incremental crypto processing of fragmented packets
WO2016058404A1 (zh) 基于预共享密钥的实体鉴别方法及装置
WO2007059558A1 (en) Wireless protocol for privacy and authentication
CN102664740B (zh) 一种基于远程授权的招投标文件加解密方法
JP5930619B2 (ja) 暗号処理装置
CN107534558B (zh) 用于保护经由数据总线传输的数据的信息安全的方法以及数据总线系统
EP2896179B1 (en) Apparatus and method for protecting message data
US20180013832A1 (en) Health device, gateway device and method for securing protocol using the same
CN113726725A (zh) 一种数据加解密方法、装置、电子设备及存储介质
JP7059282B6 (ja) ネットワークデバイス及び信頼できるサードパーティデバイス
KR20040083794A (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
US20100014670A1 (en) One-Way Hash Extension for Encrypted Communication
CN106357403A (zh) 一种链路通讯加密保护的装置及方法,安全报文处理系统
KR20150103394A (ko) 암호화 시스템 및 그것의 암호 통신 방법
WO2024077857A1 (zh) 数据传输方法和装置、设备及存储介质
CN104010301A (zh) 用于无线安全通讯的多元随机变码加密算法
CN117675205A (zh) 一种数据安全传输方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140626

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140626

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150309

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150818

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151019

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160426

R151 Written notification of patent or utility model registration

Ref document number: 5930619

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151