JP2011142411A - 暗号化処理装置 - Google Patents
暗号化処理装置 Download PDFInfo
- Publication number
- JP2011142411A JP2011142411A JP2010000791A JP2010000791A JP2011142411A JP 2011142411 A JP2011142411 A JP 2011142411A JP 2010000791 A JP2010000791 A JP 2010000791A JP 2010000791 A JP2010000791 A JP 2010000791A JP 2011142411 A JP2011142411 A JP 2011142411A
- Authority
- JP
- Japan
- Prior art keywords
- data
- encryption processing
- encryption
- job
- units
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】暗号化処理の開始後に新たなジョブが発生した場合にソフトウェア制御で暗号化処理を中断することをなくし、ハードウェアリソースの稼働率を向上させた暗号化処理装置を提供する。
【解決手段】与えられたデータを、設定されたパラメータに従って暗号化するM個(M≧2)の暗号化処理部と、プロセッサからの暗号化処理ジョブを受け付けるN個(N≧2)のデータ及びパラメータ保持部と、M個の暗号化処理部とN個のデータ及びパラメータ保持部との間に介在し、M個の暗号化処理部の1つに転送するデータパス制御部とを備え、データパス制御部は、各暗号化処理部が処理中であるか否か、処理中の場合はどのデータ及びパラメータ保持部のジョブに対する処理を行っているかを管理するリソース管理部と、N個のデータ及びパラメータ保持部に保持されたデータ及びパラメータをブロック単位で、処理させる暗号化処理部に転送するリソース選択部とを有する。
【選択図】図1
【解決手段】与えられたデータを、設定されたパラメータに従って暗号化するM個(M≧2)の暗号化処理部と、プロセッサからの暗号化処理ジョブを受け付けるN個(N≧2)のデータ及びパラメータ保持部と、M個の暗号化処理部とN個のデータ及びパラメータ保持部との間に介在し、M個の暗号化処理部の1つに転送するデータパス制御部とを備え、データパス制御部は、各暗号化処理部が処理中であるか否か、処理中の場合はどのデータ及びパラメータ保持部のジョブに対する処理を行っているかを管理するリソース管理部と、N個のデータ及びパラメータ保持部に保持されたデータ及びパラメータをブロック単位で、処理させる暗号化処理部に転送するリソース選択部とを有する。
【選択図】図1
Description
本発明は、データの暗号化処理を行う暗号化処理装置に関する。
近年、オフィスに限らず、一般家庭においても光ファイバ網へ安価に接続可能となり、インターネットを支えるインフラの整備が進んでいる。また、インターネットを利用して各種デジタル機器間でデータ通信を行うことも多くなっている。そして、このようなデジタル機器間の通信では、通信のセキュリティを確保するためにSSL/TLSやIPsecのような通信暗号プロトコルの標準規格が一般に用いられる。デジタル機器間で行う暗号化処理の対象となるデータは様々なデータ長のデータが混在する。例えば、ネットワークカメラでは、大量の画像データが暗号化処理されて送受信されると同時に、パスワードのような短いデータ長のデータの暗号化処理を行わなければならない場合があり、これらの同時に発生し得る暗号化処理要求(以下、暗号/復号処理要求の単位をジョブと呼ぶ)に対し、単に高速に処理するだけでなく、各ジョブに対してQoS(Quality of Service)を損なうことなく処理されなければならない。従来の暗号化処理装置は、QoSを向上させるために、複数のジョブを受信すると各々のジョブを所定のデータ長ずつ順に実行することで、複数のジョブの暗号化処理を並行に処理していた。
例えば、特許文献1には、CPUが複数のジョブのデータを所定のデータ長に分割した後、ドライバが分割したデータを処理する順序を決定し、その決定した順序に従ってハードウェアアクセラレータにデータを引き渡して複数のジョブを並行に処理する技術が開示されている。また、従来の暗号化処理装置においては、より高速に処理を行うため、複数の暗号化処理部を設け、ジョブを受信すると、被処理データを暗号化処理部を設けた数と同じ数に分割してそれぞれの暗号化処理部に引き渡し、1つのジョブを複数の暗号化処理部で並列に実行する技術がある。例えば、特許文献2には、暗号化処理装置がジョブを受信すると、処理負荷の小さな暗号化処理部を特定し、特定した暗号化処理部に対して順に受信したジョブのデータの暗号化処理を行わせる技術が開示されている。
しかしながら、特許文献1及び2に開示された技術は、処理開始前にジョブが揃っていることを前提として、処理開始後に新たなジョブが発生すると、実行中の処理を終えてから新たなジョブの処理を行う。つまり、画像データのようなデータ長の長いジョブの処理の途中でパスワードのようなデータ長の短いジョブの処理が発生した場合に、パスワードの処理が長時間待たされることになり、QoSが低下してしまう。仮に、新たに発生したジョブを割り込ませる機能を実装した場合であっても、CPUがソフトウェア制御により実行中の処理を一旦中断し、他のジョブを処理し、完了後に中断した処理を再開しなければならない。ソフトウェア制御で処理を中断又は再開を行うと、CPUの負荷が大きくなるだけでなく、ソフトウェア制御を行う間、ハードウェアリソースも処理を行わないため、ハードウェアリソースの稼働率が低下し、処理の高速化を阻害する要因となる。
また、暗号化処理の中断又は再開を行うと、再開時に中断した暗号化処理に関する各種パラメータデータが必要になる。このため、中断時にこれらのパラメータデータを保存する必要があり、外部の主記憶装置に書き出される。そして、再開時には再び主記憶装置から読み出されるため、暗号化処理に必要な各種パラメータが一時的に外部に置かれることとなり、暗号が第三者に解読される危険性が高まるという問題が発生する。
このように従来の暗号化処理装置では、ジョブを割り込ませる機能を実装するとCPUが暗号化処理の中断又は再開を制御する必要があるため、CPUの負荷が大きい。また、第1、第2の暗号化処理部に着目すると、処理負荷が不均一であることによりハードウェアリソースの稼働率が低下するため、処理速度の低下を招いてしまう。更に、中断時に転送を後で再開するために暗号化処理パラメータ、未処理データを転送するためのデータ転送パラメータ、次のブロックの暗号化処理に必要な途中結果を主記憶装置へ保存し、再開時に保存した結果を主記憶装置から読み出す必要があるため、暗号化処理における安全性が低下してしまう。
本発明は、上記課題に鑑みてなされたものであり、暗号化処理の開始後に新たなジョブが発生した場合にソフトウェア制御で暗号化処理を中断、再開することなくジョブを並列に実行可能にすることにより、暗号化処理における安全性を損なうことなくQoSを向上させると共に、ハードウェアリソースの稼働率を向上させて、より高速に処理可能な暗号化処理装置を提供するものである。
上記課題を解決するため、本発明に係る暗号化処理装置は、プロセッサからの要求に従って、データを暗号化する暗号化処理装置であって、与えられたデータを、設定されたパラメータに従って暗号化するM個(M≧2)の暗号化処理部と、前記プロセッサからの暗号化処理ジョブを受け付けるN個(N≧2)のデータ及びパラメータ保持部と、前記M個の暗号化処理部と前記N個のデータ及びパラメータ保持部との間に介在し、前記N個のデータ及びパラメータ保持部の1つに保持されたデータとパラメータとを、前記M個の暗号化処理部の1つに転送するデータパス制御部とを備え、前記データパス制御部は、各暗号化処理部が処理中であるか否か、処理中の場合はどのデータ及びパラメータ保持部のジョブに対する処理を行っているかを管理するリソース管理部と、前記N個のデータ及びパラメータ保持部に保持された前記データ及びパラメータをブロック単位で、処理させる暗号化処理部に転送するリソース選択部とを有する。
本発明によれば、暗号化処理の開始後に新たなジョブが発生した場合にソフトウェア制御で暗号化処理を中断、再開することなくジョブを並列に実行可能にすることにより、暗号化処理における安全性を損なうことなくQoSを向上させると共に、ハードウェアリソースの稼働率を向上させて、より高速に処理可能な暗号化処理装置を提供することができる。
以下に、本発明の実施形態について添付図面を参照して詳細に説明する。なお、本発明の技術的範囲は特許請求の範囲によって確定されるのであって、以下に例示する実施形態に限定されるものではない。
<従来技術(図14、図15)>
まず、上述の従来技術について詳細に説明する。図14において、1400は複数のジョブを並列に暗号化処理する従来の暗号化処理装置である。1401はプロセッサ(CPU等)、1402は主記憶装置、1404、1405はDMAC(Direct Memory Access Controller)、1406、1407は暗号化処理部である。システムバス1403には、プロセッサ1401、主記憶装置1402、DMAC1404、1405が接続される。暗号化処理部1406は、DMAC1404から被処理データを受け取って暗号化処理を行う。暗号化処理部1407は、DMAC1405から被処理データを受け取って暗号化処理を行う。
まず、上述の従来技術について詳細に説明する。図14において、1400は複数のジョブを並列に暗号化処理する従来の暗号化処理装置である。1401はプロセッサ(CPU等)、1402は主記憶装置、1404、1405はDMAC(Direct Memory Access Controller)、1406、1407は暗号化処理部である。システムバス1403には、プロセッサ1401、主記憶装置1402、DMAC1404、1405が接続される。暗号化処理部1406は、DMAC1404から被処理データを受け取って暗号化処理を行う。暗号化処理部1407は、DMAC1405から被処理データを受け取って暗号化処理を行う。
図15に暗号化処理装置1400においてジョブを割り込ませるシーケンス図を示す。まず、プロセッサがジョブ(ジョブAとする)を受信する(1501)。このとき、暗号化処理部1406、1407はいずれも処理を行っていないため、プロセッサはジョブAの被処理データを2分割し(2分割したデータをA0、A1とする)、暗号化処理部1406、1407の双方で処理を行わせる。プロセッサは、DMAC1404に被処理データA0を処理するための暗号化処理パラメータやデータ転送パラメータ等を設定して起動する(1502)。DMAC1404は、被処理データA0を暗号化処理部1406へ転送し、暗号化処理部1406が暗号化処理を行う(1503)。更に、プロセッサは、DMAC1405に被処理データA1を処理するための暗号化処理パラメータやデータ転送パラメータ等を設定して起動する(1504)。DMAC1405は、被処理データA1を暗号化処理部1407へ転送し、暗号化処理部1407が暗号化処理を行う(1505)。そして、ジョブ(ジョブBとする)を受信する(1506)。このとき、暗号化処理部1406、1407は、いずれもジョブAの処理中であるため、プロセッサは一方の処理を止めてジョブBの処理を行わせる。このため、プロセッサは、DMAC1404に転送中止要求を出す(1507)。DMAC1404は、転送を中止するとプロセッサへ転送終了を通知する(1508)。プロセッサは、中止した転送を後で再開するために、暗号化処理パラメータ、未処理データを転送するためのデータ転送パラメータ、次のブロックの暗号化処理に必要な途中結果を主記憶装置へ保存する(1509)。その後、DMAC1404に、ジョブBの被処理データを処理するための暗号化処理パラメータ、データ転送パラメータを設定して起動する(1510)。DMAC1404は、ジョブBの被処理データを暗号化処理部1406へ転送し、暗号化処理部1406が暗号化処理を行う(1511)。DMAC1404は、設定された転送長データの転送が終了するとプロセッサへジョブBの転送終了を通知する(1512)。プロセッサは、中止した転送を再開するために1509で保存したデータを主記憶装置から読み出し(1513)、DMAC1404に暗号化処理パラメータ、データ転送パラメータ等を設定して起動する(1514)。DMAC1404は、被処理データA0の未処理のデータを暗号化処理部1406へ転送し、暗号化処理部1406が暗号化処理を行う(1515)。DMAC1405は被処理データA1の転送が終了するとプロセッサへ転送終了を通知する(1516)。DMAC1404も被処理データA0の残りの転送が終了するとプロセッサへ転送終了を通知する(1517)。
<実施例1(図1〜図8)>
図1において、暗号化処理装置100は、プロセッサからの要求に従って、データを暗号化する装置であり、2つの暗号化処理ジョブ(ジョブA、Bとする)を受信した場合には、並列に暗号化処理することが可能となるように構成される。
図1において、暗号化処理装置100は、プロセッサからの要求に従って、データを暗号化する装置であり、2つの暗号化処理ジョブ(ジョブA、Bとする)を受信した場合には、並列に暗号化処理することが可能となるように構成される。
すなわち、暗号化処理装置100は、与えられたデータを、設定されたパラメータに従って暗号化するM個(本実施例では、M=2)の暗号化処理部104、105と、プロセッサ101からの暗号化処理ジョブを受け付けるN個(本実施例では、N=2)のデータ及びパラメータ保持部106、107と、2個の暗号化処理部104、105と2個のデータ及びパラメータ保持部106、107との間に介在し、2個のデータ及びパラメータ保持部106、107の1つから要求されたデータとパラメータとを、2個の暗号化処理部104、105の少なくとも1つに転送するデータパス制御部108とを備える。
101はCPU等を有するプロセッサ、102は主記憶装置、103はシステムバスである。システムバス103には、プロセッサ101、主記憶装置102、データ及びパラメータ保持部106、107が接続される。暗号化処理部104、105は、共通鍵暗号アルゴリズムAES(Advanced Encryption Standard)が実行可能で内部構成が同一のブロックである。ここでは暗号モードとしてCTR(カウンタ)モード専用の構成になっている。
データパス制御部108は、どの暗号化処理部が処理待ち状態か、どの暗号化処理部がどのデータ及びパラメータ保持部から要求されたジョブに対して暗号化処理中であるかを管理するリソース管理部108aと、2個のデータ及びパラメータ保持部106、107の1つ以上から暗号化処理要求を受信した際、ブロック単位で2個の暗号化処理部104、105のどちらで処理させるかを選択するリソース選択部108bを備える。データパス制御部108は、2個のデータ及びパラメータ保持部106、107の1つから暗号化処理要求を受信した際、2個の暗号化処理部104、105の全てが処理待ち状態にある場合に、要求された暗号化処理をブロック単位に2個の暗号化処理部104、105に分散して処理させるようにデータパスを選択し、暗号化に関するデータを暗号化処理部104、105に供給する。また、2個のデータ及びパラメータ保持部106、107の1つから暗号化処理要求を受信した際、2個の暗号化処理部104、105の全てが他のデータ及びパラメータ保持部からの要求に応じた暗号化処理中である場合に、どちらかの暗号化処理部が1ブロック分の暗号化処理を終えたタイミングで、当該暗号化処理部にデータ及びパラメータ保持部から要求された暗号化処理をさせるようにデータパスを選択し、暗号化に関するデータを供給する。さらに、2個のデータ及びパラメータ保持部毎に予め割り当てられた暗号化処理の優先度を記憶する記憶部108cと、を有する。
暗号化処理部104、105の内部構成を図2に示す。201は暗号アルゴリズムAESによる暗号化を行うブロックである。202は排他的論理和XORを演算する演算回路である。暗号アルゴリズムAESは、1ブロック分の入力データに、暗号鍵を用いて所定の処理を11ラウンド行う。本実施例では、1ラウンドを1サイクルで実行するものとし、201での暗号化処理に11サイクルかかる。CTRモードの仕様は、ブロック毎に固有の値であるカウンタ値を暗号化して得られたデ−タと被処理データとの排他的論理和(XOR)を演算して処理結果とすることが定義されている。
201には、入力として、処理開始要求信号Start、カウンタ値Cnt、暗号鍵Keyが与えられる。処理開始要求信号Startがアサートされる(有効になる)と、カウンタ値の暗号化処理を開始する。11サイクル後に201の出力と被処理データとの排他的論理和(XOR)を処理結果データ(暗号化データ)とし、処理結果が有効であることを示す処理結果有効信号Validをアサートする。その動作を図3のタイミングチャートに示す。
サイクルT301において、被処理データとして1ブロック目のデータP0、暗号鍵として所定の値KEY、カウンタ値として所定の初期値IVが与えられ、処理開始要求信号がアサートされる。与えられたカウンタ値を、サイクルT302で1ラウンド目、サイクルT303で2ラウンド目、・・・、サイクルT312で11ラウンド目の暗号化処理を行う。得られたデータと被処理データP0との排他的論理和(XOR)を演算して処理結果データC0として出力すると共に処理結果有効信号をアサートする。同一のサイクルT312において、2ブロック目の被処理データP1、暗号鍵KEY、1ブロック目の値を1インクリメント(カウントアップ)したカウンタ値IV+1が与えられ、処理開始要求信号がアサートされる。1ブロック目の暗号化処理と同様に与えられたカウンタ値に対して、サイクルT313で1ラウンド目、サイクルT314で2ラウンド目の暗号化処理を行う。
データ及びパラメータ保持部106、107は、内部構成が同一のブロックである。1061、1071は、ジョブの被処理データを主記憶装置102から転送するチャネルと、処理結果データを主記憶装置102へ転送するチャネルとの2チャネルを備えるDMACである。データ幅は、暗号化処理部の処理データ単位である1ブロックとする。1062、1072は、1ブロック目の被処理データの暗号化処理に用いるカウンタの初期値を保持するレジスタである。
1063、1073は、CTRモードのブロック暗号で用いるカウンタ値を生成するカウンタである。カウンタの出力は被処理データがデータパス制御部108に引き渡されると同時にデータパス制御部108に引き渡される。カウンタ1063は、1ブロック目の被処理データが引き渡される際にレジスタ1062の値を引き渡し、2ブロック目以降の被処理データが引き渡される際に1ずつインクリメントした値を引き渡す。カウンタ1073も同様に、1ブロック目の被処理データが引き渡される際に1072のレジスタの値を引き渡し、2ブロック目以降の被処理データが引き渡される際に1ずつインクリメントした値を引き渡す。
1065、1075はデータパス制御部108へ転送する被処理データを格納する送信データバッファである。送信データバッファの容量は、処理高速化のために、同時に暗号化処理を行うことのできるブロック分の被処理データを格納可能である容量とすることが望ましい。データパス制御部108とのインターフェースは、転送元が出す有効信号と転送先が出す受信信号でデータ転送を行う2線のハンドシェークプロトコルである。2線のハンドシェークプロトコルのタイミングチャートを図4に示す。
まず、転送元は転送データが有効であることを示す有効信号をアサートすると共に転送データD0をセットする(T401)。そして、転送先が受信信号をアサートし(T402)、転送データD0を取り込む(T403)。転送元は受信信号のアサートにより転送が完了したため、有効信号をデアサートする。
DMACが主記憶装置102から被処理データを転送すると、送信データバッファに被処理データを格納する。送信データバッファ1065、1075は、内部にデータが存在すると有効信号をアサートしてバッファの先頭データを転送データとしてセットする。データパス制御部108が受信信号をアサートして転送データを取り込むと転送が完了する。
1066、1067はデータパス制御部108から転送された処理結果データを格納する受信データバッファである。データパス制御部108とのインターフェースは送信データバッファ1065、1075と同様の2線のハンドシェークプロトコルである。内部にデータが存在する場合には、DMACが主記憶装置102へ処理結果データを転送する。
データパス制御部108は、データ及びパラメータ保持部106、107から転送されるデータをブロック単位でどの暗号化処理部で処理するかを決定し、決定した暗号化処理部に被処理データ及び暗号化処理に必要なパラメータ群を引き渡す。そして、暗号化処理部により出力された処理結果データを元のデータ及びパラメータ保持部へ引き渡す。
データパス制御部108が、ジョブA、ジョブBのデータの有無の相違に基づいて、暗号化処理部104、105のいずれで処理を行うかを決定するためのテーブルを図5に示す。501はジョブA、ジョブBのデータのいずれのデータも無い場合に、暗号化処理部104、105の双方にデータを引き渡さないことを示す。502はジョブAのみデータがある場合に、暗号化処理部104、105のそれぞれにジョブAのデータを1ブロックずつ交互に引き渡すことを示す。503はジョブBのみデータがある場合に、暗号化処理部104、105のそれぞれにジョブBのデータを1ブロックずつ交互に引き渡すことを示す。504はジョブAとジョブBの両方のデータがある場合に、ジョブAのデータを暗号化処理部104に引き渡し、ジョブBのデータを暗号化処理部105に引き渡すことを示す。
本テーブルによれば、1つのジョブのデータしか無い場合には、すべての暗号化処理部で複数ブロックを同時に処理し、2つのジョブのデータがある場合には、1つのジョブのデータを1つの暗号化処理部で1ブロックずつ処理する。
データパス制御部108がジョブA、ジョブBのデータをどの暗号化処理部で処理するかを決定する他のテーブルを図6に示す。601は、ジョブA、ジョブBのデータが無い場合に、両方の暗号化処理部にデータを引き渡さないことを示す。602はジョブAのみデータがある場合に、両方の暗号化処理部にジョブAのデータを1ブロックずつ交互に引き渡すことを示す。603はジョブBのみデータがある場合に、両方の暗号化処理部にジョブBのデータを1ブロックずつ交互に引き渡すことを示す。604はジョブAとジョブBの両方のデータがある場合に、ジョブAとジョブBの処理の優先度が同じであれば、ジョブAのデータを暗号化処理部104に引き渡し、ジョブBのデータを暗号化処理部105に引き渡すことを示す。605はジョブAとジョブBの両方のデータがある場合に、ジョブAの処理の優先度がジョブBの処理の優先度よりも高ければ両方の暗号化処理部にジョブAのデータを1ブロックずつ交互に引き渡すことを示す。606はジョブAとジョブBの両方のデータがある場合に、ジョブBの処理の優先度がジョブAの処理の優先度よりも高ければ両方の暗号化処理部にジョブBのデータを1ブロックずつ交互に引き渡すことを示す。本テーブルによれば、2つのジョブのデータがある場合に、優先度に応じて1つのジョブのデータをすべての暗号化処理部で複数ブロックを同時に処理するか、1つのジョブのデータを1つの暗号化処理部で1ブロックずつ処理するかを決定する。本実施例では、図5のテーブルに従ってデータを引き渡す動作について説明するが、例えば、図6のテーブルのように、種々のテーブルに従ってデータを引き渡すことも可能である。
暗号化処理装置100がジョブAの処理開始後に新たなジョブBを受信したときの各ブロックの動作を図7のシーケンス図を用いて説明する。まず、プロセッサ101がジョブ(ジョブAとする)を受信する(701)。プロセッサ101はデータ及びパラメータ保持部106に対して暗号化処理に必要なパラメータである暗号鍵をレジスタ1064に設定し、カウンタの初期値をレジスタ1062に設定する(702)。更に、被処理データを配置したアドレス、転送長、処理結果を格納するアドレス等のデータ転送に必要な情報を内部のDMAC1061に設定して起動する(702)。データ及びパラメータ保持部106は、DMAC1061が起動すると、被処理データを配置したアドレスから被処理データを読み出し、暗号鍵、カウンタ値と共にデータパス制御部108に引き渡す(703)。データパス制御部108は、図5のテーブルに従ってジョブAの被処理データをブロック単位で暗号化処理部104、105に交互に引き渡す(704、705)。暗号化処理部104が1ブロックの暗号化処理を完了すると、データパス制御部108に処理結果データを引き渡し(706)、データパス制御部108は、データ及びパラメータ保持部106に処理結果データを引き渡す(707)。
データ及びパラメータ保持部106は、内部の受信データバッファ1066にデータを格納すると、DMAC1061が処理結果データを主記憶装置102の格納すべきアドレスに書き込む。暗号化処理部105も同様に1ブロックの暗号化処理を完了するとデータパス制御部108に処理結果データを引き渡し(708)、データパス制御部108を経てデータ及びパラメータ保持部106の内部のDMAC1061が処理結果データを主記憶装置102に書き込む。データ及びパラメータ保持部106は設定された転送長分のデータ転送を終了するまでデータパス制御部108へデータを引き渡す。
次に、プロセッサ101がジョブ(ジョブBとする)を受信する(708)。データ及びパラメータ保持部107に対して暗号化処理に必要なパラメータである暗号鍵をレジスタ1074に設定し、カウンタの初期値をレジスタ1072に設定する(709)。更に、被処理データを配置したアドレス、転送長、処理結果を格納するアドレス等、データ転送に必要な情報を内部のDMAC1071に設定して起動する(709)。データ及びパラメータ保持部107はDMAC1071が起動すると被処理データを配置したアドレスから被処理データを読み出し、暗号鍵、カウンタ値と共にデータパス制御部108に引き渡す(710)。
データパス制御部108は、図5のテーブルに従ってジョブBの被処理データ、暗号鍵、カウンタ値を暗号化処理部105に引き渡し(711)、ジョブAの被処理データを暗号化処理部104に引き渡す(712)。暗号化処理部105が1ブロックの暗号化処理を完了すると、データパス制御部108に処理結果データを引き渡し(713)、データパス制御部108は、データ及びパラメータ保持部107に処理結果データを引き渡す(714)。データ及びパラメータ保持部107は、内部の受信データバッファ1076にデータを格納すると、DMAC1071が処理結果データを主記憶装置102の格納すべきアドレスに書き込む。
暗号化処理部104も同様に、1ブロックの暗号化処理を完了すると、データパス制御部108に処理結果データを引き渡し(715)、データパス制御部108は、データ及びパラメータ保持部106に処理結果データを引き渡す(716)。データ及びパラメータ保持部107は、設定された転送長分のデータ転送を終了すると、プロセッサ101に処理終了を通知する(717)。
データパス制御部108は、ジョブBのデータを受信しなくなると、再びジョブAの被処理データ、暗号鍵、カウンタ値をブロック単位で暗号化処理部104、105に交互に引き渡す。データ及びパラメータ保持部106は、設定された転送長分のデータ転送を終了すると、プロセッサ101に処理終了を通知する(718)。
図8のタイミングチャートは、上記動作におけるデータパス制御部108の具体的な動作を示す。ジョブAの被処理データはNブロックで構成されるデータで、ブロックデータA0、A1、・・・ANに分割して暗号化処理される。ジョブBの被処理データは、2ブロックで構成されるデータで、B0、B1に分割して暗号化処理される。
データパス制御部108は、T802においてデータ及びパラメータ保持部106から有効信号がアサートされると、暗号化処理部104で処理すると判断し、T803で1ブロック目の被処理データA0、カウンタ値AIV、暗号鍵AKEYを暗号化処理部104へ引き渡す。更に、有効信号がアサートされると、暗号化処理部105で処理すると判断し、T804において2ブロック目の被処理データA1、カウンタ値AIV+1、暗号鍵AKEYを暗号化処理部105へ引き渡す。
T813では次のサイクルで暗号化処理部104が処理結果データを出力するため、暗号化処理部104で次に処理するデータを取得しておく。T813において有効信号がアサートされているため、T814において3ブロック目の被処理データA2、カウンタ値AIV+2、暗号鍵AKEYのデータを暗号化処理部104へ引き渡す。同時に、ジョブAの1ブロック目の処理結果データCA0が出力されるため、T815においてデータ及びパラメータ保持部106へ引き渡す。
また、T814において次のサイクルで暗号化処理部105が処理結果データを出力するため、暗号化処理部105で次に処理するデータを取得しておく。T814において有効信号がアサートされているため、T815において4ブロック目の被処理データA3、カウンタ値AIV+3、暗号鍵AKEYのデータを暗号化処理部105へ引き渡す。同時に、ジョブAの2ブロック目の処理結果データCA1が出力されるため、T816においてデータ及びパラメータ保持部106へ引き渡す。
T823においてデータ及びパラメータ保持部107から有効信号がアサートされる。ジョブAとジョブBの両方の被処理データがある場合に、ジョブAの被処理データを暗号化処理部104に引き渡し、ジョブBの被処理データを暗号化処理部105に引き渡す。
従って、T824では、データ及びパラメータ保持部106の有効信号がアサートされているため、T825においてジョブAの5ブロック目の被処理データA4、カウンタ値AIV+4、暗号鍵AKEYのデータを暗号化処理部104へ引き渡す。同時に、ジョブAの3ブロック目の処理結果データCA2が出力されるため、T826においてデータ及びパラメータ保持部106へ引き渡す。
T825においてデータ及びパラメータ保持部107の有効信号がアサートされているため、T826においてジョブBの1ブロック目の被処理データB0、カウンタ値BIV、暗号鍵BKEYのデータを暗号化処理部105へ引き渡す。同時に、ジョブAの4ブロック目の処理結果データCA3が出力されるため、T827においてデータ及びパラメータ保持部106へ引き渡す。
T835においてジョブAの6ブロック目の被処理データA5、カウンタ値AIV+5、暗号鍵AKEYのデータを暗号化処理部104へ引き渡す。同時に、ジョブAの5ブロック目の処理結果データCA4が出力されるため、T837においてデータ及びパラメータ保持部106へ引き渡す。
T836においてデータ及びパラメータ保持部107の有効信号がアサートされているため、T837においてジョブBの2ブロック目の被処理データB1、カウンタ値BIV+1、暗号鍵BKEYのデータを暗号化処理部105へ引き渡す。ジョブBの全被処理データは2ブロックであるため、データ及びパラメータ保持部107は有効信号をデアサートする。同時に、ジョブBの1ブロック目の処理結果データCB0が出力されるため、T838においてデータ及びパラメータ保持部107へ引き渡す。
T846においてジョブAの7ブロック目の被処理データA6、カウンタ値AIV+6、暗号鍵AKEYのデータを暗号化処理部104へ引き渡す。同時に、ジョブAの6ブロック目の処理結果データCA5が出力されるのでT848においてデータ及びパラメータ保持部106へ引き渡す。
T836においてデータ及びパラメータ保持部107の有効信号はデアサートされ、データ及びパラメータ保持部106の有効信号がアサートされているため、T848においてジョブAの8ブロック目の被処理データA7、カウンタ値AIV+7、暗号鍵AKEYのデータを暗号化処理部105へ引き渡す。同時に、ジョブBの2ブロック目の処理結果データCB1が出力されるため、T849においてデータ及びパラメータ保持部107へ引き渡す。
上記動作によれば処理開始後に新たなジョブが発生した場合に、プロセッサ101は使用していないデータ及びパラメータ保持部に対して暗号化処理に必要なパラメータの設定、データ転送に必要な情報の設定、DMACの起動を行うだけで、先に実行中のジョブを中断・再開する必要はない。そのため、中断時のデータの書き出し、再開時のデータの読み出しを行う必要がないため、安全性が向上する。
一方、暗号化処理部104、105は、1つのジョブのみ存在する場合に、被処理データは2つの暗号化処理部にブロック単位で交互に引き渡され、1つのジョブの複数ブロックを同時に実行する。2つのジョブが存在する場合には、1つのジョブの被処理データを1つの暗号化処理部に引き渡され、複数ジョブを同時に実行する。これにより、処理高速化、QoS向上を図ることができる。また、プロセッサ101によるジョブの中断や再開を行う必要が無いため、暗号化処理部がデータ待ちになる時間が少なく、稼働率を向上することができる。
<実施例2(図9〜図13)>
本実施例では、複数ブロックを同時に処理できる暗号化モード(CTRモード)と、1ブロックずつしか処理できない暗号化モード(CBC(Cipher Block Chain)モード)とをサポートし、かつ、並列に実行するジョブの数が暗号化処理部よりも多い暗号化処理装置について説明する。
本実施例では、複数ブロックを同時に処理できる暗号化モード(CTRモード)と、1ブロックずつしか処理できない暗号化モード(CBC(Cipher Block Chain)モード)とをサポートし、かつ、並列に実行するジョブの数が暗号化処理部よりも多い暗号化処理装置について説明する。
本実施例に係る暗号化処理装置900は、CTRモードのジョブを受信すると処理中でない暗号化処理部で複数ブロックを同時に処理し、また、CBCモードのジョブを受信すると1つの暗号化処理部で1ブロックずつ処理する。すべての暗号化処理部が処理中に新たなジョブが発生すると、ブロック単位で処理中のジョブを安全に中断して発生したジョブを割り込ませることが可能である。更に、中断したジョブを安全に再開することが可能である。暗号化処理装置900は、3つのジョブ(ジョブA、ジョブB、ジョブCとする)を並列に暗号化処理可能である。
すなわち、暗号化処理装置900は、図9で示すように、与えられたデータを、設定されたパラメータに従って暗号化するM個(本実施例では、M=2)の暗号化処理部904、905と、プロセッサ901からの暗号化処理ジョブを受け付けるN個(本実施例では、N=3)のデータ及びパラメータ保持部906、907、909と、2個の暗号化処理部904、905と3個のデータ及びパラメータ保持部906、907、909との間に介在し、3個のデータ及びパラメータ保持部906、907、909の1つから要求されたデータとパラメータとを、2個の暗号化処理部904、905の少なくとも1つに転送するデータパス制御部908とを備える。
902は主記憶装置、903はシステムバスである。システムバス903には、プロセッサ901、主記憶装置902、データ及びパラメータ保持部906、907、909が接続される。データ及びパラメータ保持部906、907、909は、暗号化処理部904、905にデータを引き渡す。また、暗号化処理部904、905は、データ及びパラメータ保持部906、907、909へデータを引き渡す。暗号化処理部904、905は、モード信号を判定してCTRモード又はCBCモードの暗号アルゴリズムAESを実行する。
CTRモードの暗号アルゴリズムAESを実行するブロックの構成を図2に示し、CBCモードの暗号アルゴリズムAESを実行するブロックの構成を図10に示す。
1001は暗号アルゴリズムAESによる暗号化を行うブロックで、その動作は図2の201と同様である。1002は排他的論理和XORの演算回路で、その動作は図2の202と同様である。1003は、暗号アルゴリズムAESが出力したデータと、外部から入力されたデータとを外部信号使用判定信号に応じて選択して出力するセレクタである。CBCモードの仕様は、ブロック毎に固有の値である1ブロック前のブロックの暗号化処理結果データと被処理データとの排他的論理和(XOR)を演算して得られたデータを暗号化し、処理結果とすることが定義されている。1ブロック目の処理時は、1ブロック前のブロックの暗号化処理結果データは存在しないため、外部から暗号化処理結果データの代わりに使用する初期値が与えられることも定義されている。
1ブロック前のブロックの暗号化処理結果データが存在しない1ブロック目の処理を行う場合又は暗号化処理の途中で一旦中断し、他のジョブの暗号化処理を実行した後に、処理を再開する場合に外部信号使用判定信号がアサートされ、セレクタ1003は暗号化処理入力データを選択して出力する。暗号化処理部904、905は、内部構成が同一のブロックである。
暗号化処理部904、905の内部構成を図11に示す。外部から、CBCモード又はCTRモードを示すモード信号、処理開始要求信号、被処理データ、暗号鍵、暗号化処理入力データ、外部入力使用判定信号が与えられる。暗号化処理入力データは、暗号化処理を行うために、被処理データ以外に必要になる入力データであり、CTRモード実行時にはカウンタ値が入力され、CBCモード実行時には初期値又は1ブロック前のブロックの暗号化処理結果データが入力される。そして、暗号化処理の処理結果データと処理結果有効信号を出力する。
1101は暗号アルゴリズムAESによる暗号化を行うブロック、1102は排他的論理和XORの演算回路である。1103は暗号アルゴリズムAESが出力したデータと、外部から入力されたデータとを外部信号使用判定信号に応じて選択して出力するセレクタである。1104はAESブロックへの入力を選択するセレクタで、CBCモードの場合にXORの出力データを選択し、CTRモードの場合にカウンタ値を示す暗号化処理入力データを選択する。1105はXORの入力を選択するセレクタで、CBCモードの場合に1ブロック前のブロックの暗号化処理データを選択し、CTRモードの場合にAESの出力データを選択する。1106は処理結果データとして出力するデータを選択するセレクタで、CBCモードの場合にAESブロックの出力データを選択し、CTRモードの場合にXORの出力データを選択する。暗号化処理部904、905は、セレクタ1104、1105、1106により、CBC、CTRモードに応じてパスを切り替えて処理する。データ及びパラメータ保持部906、907、909は内部構成が同一のブロックである。
9061、9071、9091はDMACでその動作は図1の1061、1071と同じである。9062、9072、9092は1ブロック目の被処理データの暗号化処理に使用する初期値を保持するレジスタである。9067、9077、9097はCBCモード又はCTRモードを指定するモードレジスタである。9063、9073、9093はモードレジスタの値によって動作を変更するレジスタである。CTRモードの場合にカウンタ値を生成するカウンタとして動作し、CBCモードの場合に1ブロック前のブロックの暗号化処理結果データを保持する。カウンタ9063は、データ及びパラメータ保持部906が1ブロック目の被処理データをデータパス制御部908に引き渡す場合に、カウンタの初期値としてレジスタ9062の値をデータパス制御部908に引き渡し、2ブロック目以降の被処理データをデータパス制御部908に引き渡す場合に、1インクリメントした値をデータパス制御部908に引き渡す。カウンタ9073も同様に動作する。
9064、9074、9094は暗号化に使用する暗号鍵を保持するレジスタでその動作は図1の1064、1074と同じである。9065、9075、9095はデータパス制御部108へ転送するデータを格納する送信データバッファでその動作は図1の1065、1075と同じである。CBCモードをサポートするための追加機能として、1ブロック目のデータ転送時には処理スタートを示す信号、最終ブロックのデータ転送時には処理エンドを示す信号を発行する機能を有する。9066、9076、9096はデータパス制御部908から転送した処理結果データを格納する受信データバッファでその動作は図1の1066、1076と同じである。
データパス制御部908はどの暗号化処理部が処理待ち状態か、どの暗号化処理部がどのデータ及びパラメータ保持部から要求されたジョブに対して暗号化処理中であるかを管理するリソース管理部908aと、3個のデータ及びパラメータ保持部906、907、909の1つ以上から暗号化処理要求を受信した際、ブロック単位で2個の暗号化処理部904、905のどちらで処理させるかを選択するリソース選択部908bを備える。また、3個のデータ及びパラメータ保持部毎に暗号化処理の優先度を記憶する記憶部908cと、を有する。
データパス制御部908がジョブA、ジョブB、ジョブCのデータをどの暗号化処理部で処理するか決定するフローチャートを図12に示す。データ及びパラメータ保持部906、907、909から処理スタートを示す信号、又は処理エンドを示す信号を受けた場合にジョブと暗号化処理部の割り当てを開始する。
S1201において、処理のスタート、エンドを判定する。処理のスタートである場合には、S1202においてすべての暗号化処理部で処理中であるか否かを判定する。処理をしていない暗号化処理部がある場合には、S1203においてCBCモードであるか、CTRモードであるかを判定する。CTRモードである場合には、処理中でないすべての暗号化処理部で複数ブロックを並列に処理することを決定する(S1204)。CBCモードである場合には、処理中でない1つの暗号化処理部で処理することを決定する(S1205)。1ブロック目の処理であるため、暗号化処理部に処理データを引き渡すときに外部入力選択信号をアサートする。
一方、S1202ですべての暗号化処理部で処理中であると判定された場合には、S1206において複数の暗号化処理部で複数ブロックを並列に処理しているCTRモードのジョブがあるか否かを判定する。複数ブロックを並列に処理しているジョブがある場合には、1つの暗号化処理部で、実行中の1ブロックの処理が終わった後、新たなジョブを処理することを決定する(S1207)。
一方、S1206で並列に処理しているCTRモードのジョブが無いと判定された場合には、S1208において新たなジョブの優先度が実行中のジョブの優先度よりも低いか否かを判定する。本実施例において、3個のデータ及びパラメータ保持部のうち、906の優先度が最も低く、907、909の優先度は同じであることが記憶部908cに記憶されているものとする。S1208において新たなジョブの優先度が実行中のジョブの優先度よりも低いと判定された場合には、処理中のジョブを継続処理し、新たなジョブを待たせることを決定する(S1209)。新たなジョブの優先度が実行中のジョブの優先度よりも高いと判定された場合には、優先度の低いジョブを処理する暗号化処理部で、実行中の1ブロックの処理が終わった後に一旦中断して新たなジョブを処理することを決定する(S1210)。
S1201において処理のエンドであると判定された場合には、S1211において処理を中断しているジョブ、待っているジョブがあるか否かを判定する。処理を中断しているジョブ、待っているジョブがある場合には、終了する暗号化処理部で処理することを決定する(S1212)。係るジョブが無い場合には、S1213において処理中のジョブにCTRモードのジョブが存在するか否かを判定する。CTRモードのジョブが存在する場合には、終了する暗号化処理部も使用して複数ブロックを並列に処理することを決定する(S1213)。CTRモードのジョブが存在しない場合には、そのまま暗号化処理部は空き状態にしておく(S1215)。
暗号化処理装置900がCBCモードのジョブAの処理開始後に新たなCTRモードのジョブBを受信した場合、ジョブBの処理開始後に更に新たなCBCモードのジョブCを受信した場合の各ブロックの動作を図13のシーケンス図を用いて説明する。
まず、プロセッサ901がCBCモードのジョブ(ジョブAとする)を受信する(1301)。データ及びパラメータ保持部906に対して暗号化処理に必要なパラメータである暗号鍵をレジスタ9064に設定し、1ブロック目の処理に必要な初期値をレジスタ9062に設定し、モードレジスタ9067に”CBC”を設定する。更に、被処理データを配置したアドレス、転送長、処理結果を格納するアドレス等のデータ転送に必要な情報を内部のDMAC9061に設定して起動する(1302)。データ及びパラメータ保持部906はDMAC9061が起動すると被処理データを配置したアドレスから被処理データを読み出し、暗号鍵、暗号化処理入力データと共にデータパス制御部908に引き渡す(1303)。データパス制御部908は図12のフローチャートに従って動作を決定する。S1201において処理スタートであると判断できる。S1202においてすべての暗号化処理部で処理中でないと判断できる。S1203においてCBCモードであると判断できる。従って、ステップS1204において処理中でない1つの暗号化処理部で処理させることを決定し、ジョブAの被処理データと暗号鍵、暗号化処理入力データを暗号化処理部904に引き渡す。暗号化処理部904へジョブAの1ブロック目のデータを引き渡すとき、外部入力信号使用をアサートする。
まず、プロセッサ901がCTRモードのジョブ(ジョブBとする)を受信する(1304)。データ及びパラメータ保持部907に対して暗号化処理に必要なパラメータである暗号鍵をレジスタ9074に設定し、1ブロック目の処理に必要な初期値をレジスタ9072に設定し、モードレジスタ9077に”CTR”を設定する。更に、被処理データを配置したアドレス、転送長、処理結果を格納するアドレス等のデータ転送に必要な情報を内部のDMAC9071に設定して起動する(1305)。データ及びパラメータ保持部907は、DMAC9071が起動すると被処理データを配置したアドレスから被処理データを読み出し、暗号鍵、暗号化処理入力データと共にデータパス制御部908に引き渡す(1306)。データパス制御部908は、図12のフローチャートに従って動作を決定する。S1201において処理スタートであると判断できる。S1202においてすべての暗号化処理部で処理中でないと判断できる。S1203においてCTRモードであると判断できる。従って、ステップS1205において処理中でないすべての暗号化処理部で処理させることを決定する。暗号化処理部904は、ジョブAのデータが処理中であるため、処理中でない暗号化処理部905で処理させる。ジョブAの被処理データと暗号鍵、暗号化処理入力データを暗号化処理部904に引き渡し、ジョブBの被処理データと暗号鍵、暗号化処理入力データを暗号化処理部905に引き渡す。
まず、プロセッサ901がCBCモードのジョブ(ジョブCとする)を受信する(1307)。データ及びパラメータ保持部909に対し、暗号化処理に必要なパラメータである暗号鍵をレジスタ9094に設定し、1ブロック目の処理に必要な初期値をレジスタ9092に設定し、モードレジスタ9097に”CBC”を設定する。更に、被処理データを配置したアドレス、転送長、処理結果を格納するアドレス等のデータ転送に必要な情報を内部のDMAC9091に設定して起動する(1308)。データ及びパラメータ保持部909は、DMAC9091が起動すると、被処理データを配置したアドレスから被処理データを読み出し、暗号鍵、暗号化処理入力データと共にデータパス制御部908に引き渡す(1309)。データパス制御部908は、図12のフローチャートに従って動作を決定する。S1201において処理スタートであると判断できる。S1202においてすべての暗号化処理部で処理中であると判断できる。S1206において並列処理中のジョブは無いと判断できる。新たなジョブCは実行中のジョブA、Bよりも優先度が高いと判断できる。従って、S1202において優先度の低いジョブAの処理を中断し、ジョブCを処理することを決定する。データパス制御部908は、ジョブCの被処理データと暗号鍵、暗号化処理入力データを暗号化処理部904に、ジョブBの被処理データと暗号鍵、暗号化処理入力データを暗号化処理部905へ引き渡す。データ及びパラメータ保持部906は、データパス制御部908がデータ転送を受け付けず、待たされることになる。ジョブAの中断される前のブロックの処理の処理結果データは保持部9063で保持される。暗号化処理部904は、現在処理中のジョブAのブロックの処理終了後にジョブCのブロックのデータを受け取ることになる。暗号化処理部904へジョブCの1ブロック目のデータを引き渡すとき、外部入力信号使用をアサートする。
データ及びパラメータ保持部909は、設定された転送長分のデータ転送を終了すると、プロセッサ901に処理終了を通知する(1310)。データパス制御部908は、図12のフローチャートに従って動作を決定する。S1201において処理エンドであると判断できる。S1211において中断しているジョブがあると判断できる。従って、S1212において処理を終了する暗号化処理部904でジョブAを処理することを決定する。データパス制御部908は、ジョブAの被処理データと暗号鍵、暗号化処理入力データを暗号化処理部904に引き渡し、ジョブBの被処理データと暗号鍵、暗号化処理入力データを暗号化処理部905へ引き渡す。暗号化処理部904へジョブAの処理再開後最初のデータを引き渡すとき、外部入力信号使用をアサートする。
データ及びパラメータ保持部906は、設定された転送長分のデータ転送を終了すると、プロセッサ901に処理終了を通知する(1311)。データパス制御部908は、図12のフローチャートに従って動作を決定する。S1201において処理エンドであると判断できる。S1211において中断しているジョブ、待ちジョブは無いと判断できる。S1213において処理中のCTRモードのジョブBが存在すると判断できる。従って、S1214において処理を終了する暗号化処理部905で並列処理することを決定する。データパス制御部908は、ジョブBの被処理データと暗号鍵、暗号化処理入力データを1ブロック毎に暗号化処理部904、905へ交互に引き渡す。
データ及びパラメータ保持部907は設定された転送長分のデータ転送を終了すると、プロセッサ901に処理終了を通知する(1312)。データパス制御部908は、図12のフローチャートに従ってS1215において暗号化処理を終了する。
上記動作によれば、CTRモードのジョブは、空いている暗号化処理部のすべてで複数ブロックを同時に処理し、CBCモードのジョブは、1つの暗号化処理部で1ブロックずつ処理することが可能となる。これにより、ブロック暗号化処理をより高速に行うことが可能となる。
また、すべての暗号化処理部の処理中に新たなジョブが発生すると、優先度の低い処理中のジョブのデータを待たせ、新たなジョブのデータを引き渡す。これにより、処理中のジョブを安全に中断して、発生したジョブを割り込ませることが可能となり、安全性を損ねることなくQoSを満たすことができる。
<他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
Claims (8)
- プロセッサからの要求に従って、データを暗号化する暗号化処理装置であって、
与えられたデータを、設定されたパラメータに従って暗号化するM個(M≧2)の暗号化処理部と、
前記プロセッサからの暗号化処理ジョブを受け付けるN個(N≧2)のデータ及びパラメータ保持部と、
前記M個の暗号化処理部と前記N個のデータ及びパラメータ保持部との間に介在し、前記N個のデータ及びパラメータ保持部の1つに保持されたデータとパラメータとを、前記M個の暗号化処理部の1つに転送するデータパス制御部とを備え、
前記データパス制御部は、
各暗号化処理部が処理中であるか否か、処理中の場合はどのデータ及びパラメータ保持部のジョブに対する処理を行っているかを管理するリソース管理部と、
前記N個のデータ及びパラメータ保持部に保持された前記データ及びパラメータをブロック単位で、処理させる暗号化処理部に転送するリソース選択部と
を有することを特徴とする暗号化処理装置。 - 前記リソース選択部は、前記N個のデータ及びパラメータ保持部の1つから暗号化処理要求を受信した際、前記M個の暗号化処理部のうち複数の暗号化処理部に対して要求された暗号化処理をブロック単位に分散してデータ及びパラメータを供給することを特徴とする請求項1に記載の暗号化処理装置。
- 前記リソース選択部は、前記暗号化処理要求がブロック単位で並列に処理可能な暗号モードである場合にのみ、前記M個の暗号化処理部のうち複数の暗号化処理部に対して要求された暗号化処理をブロック単位で、分散してデータ及びパラメータを供給することを特徴とする請求項2に記載の暗号化処理装置。
- 前記ブロック単位で並列に処理可能な暗号モードはCTRモードであることを特徴とする請求項3に記載の暗号化処理装置。
- 前記パラメータは、前記暗号モードがCBCモードである場合に、暗号鍵と、初期値又は1ブロック前の暗号化データであることを特徴とする請求項1又は2に記載の暗号化処理装置。
- 前記パラメータは、前記暗号モードがCTRモードである場合に、暗号化処理に用いるカウンタ値を含み、前記カウンタ値は前記データ及びパラメータ保持部に保持されたデータが、前記データパス制御部に転送される度にカウントアップされることを特徴とする請求項4に記載の暗号化処理装置。
- 前記リソース選択部は、前記N個のデータ及びパラメータ保持部の1つから暗号化処理要求を受信した際、前記M個の暗号化処理部の全てが他のデータ及びパラメータ保持部からの要求に応じた暗号化処理中である場合には、M個の暗号化処理部のうちの1つが1ブロック分の暗号化処理を終えた時に、前記暗号化処理要求が待ち状態になっているデータ及びパラメータ保持部からの要求した暗号化処理要求を優先して前記暗号化処理を終えた暗号化処理部に前記データ及びパラメータを供給することを特徴とする請求項1に記載の暗号化処理装置。
- 前記データパス制御部は、前記N個のデータ及びパラメータ保持部毎に予め割り当てられた優先度を記憶する記憶手段を更に有し、
前記リソース選択部は、複数の暗号化処理ジョブが転送された際に前記優先度が高いデータ及びパラメータ保持部から転送された暗号化処理ジョブを優先して処理することを特徴とする請求項1又は7に記載の暗号化処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010000791A JP2011142411A (ja) | 2010-01-05 | 2010-01-05 | 暗号化処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010000791A JP2011142411A (ja) | 2010-01-05 | 2010-01-05 | 暗号化処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011142411A true JP2011142411A (ja) | 2011-07-21 |
Family
ID=44457980
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010000791A Withdrawn JP2011142411A (ja) | 2010-01-05 | 2010-01-05 | 暗号化処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011142411A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013093646A (ja) * | 2011-10-24 | 2013-05-16 | Sanyo Electric Co Ltd | 受信装置 |
JP2013143652A (ja) * | 2012-01-10 | 2013-07-22 | Canon Inc | 情報処理装置、情報処理方法 |
JP2013143653A (ja) * | 2012-01-10 | 2013-07-22 | Canon Inc | 情報処理装置、情報処理方法 |
-
2010
- 2010-01-05 JP JP2010000791A patent/JP2011142411A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013093646A (ja) * | 2011-10-24 | 2013-05-16 | Sanyo Electric Co Ltd | 受信装置 |
JP2013143652A (ja) * | 2012-01-10 | 2013-07-22 | Canon Inc | 情報処理装置、情報処理方法 |
JP2013143653A (ja) * | 2012-01-10 | 2013-07-22 | Canon Inc | 情報処理装置、情報処理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8571207B2 (en) | Hash value calculation apparatus and method thereof | |
US8413153B2 (en) | Methods and systems for sharing common job information | |
US6101255A (en) | Programmable cryptographic processing system and method | |
US7360076B2 (en) | Security association data cache and structure | |
US7716389B1 (en) | Direct memory access controller with encryption and decryption for non-blocking high bandwidth I/O transactions | |
EP2645235B1 (en) | Random value production methods and systems | |
JP4337675B2 (ja) | 暗号処理装置および暗号処理方法 | |
JP2006338538A (ja) | ストリームプロセッサ | |
JP2008109611A (ja) | 暗号変換装置、暗号変換方法および暗号変換プログラム | |
JP2007034392A (ja) | 情報処理装置及びデータ処理方法 | |
JP2011142411A (ja) | 暗号化処理装置 | |
JP2013143653A (ja) | 情報処理装置、情報処理方法 | |
US20150110264A1 (en) | Virtualized SHA Computational Engine | |
US8930681B2 (en) | Enhancing performance by instruction interleaving and/or concurrent processing of multiple buffers | |
Tan et al. | Optimization and benchmark of cryptographic algorithms on network processors | |
CN115577397B (zh) | 数据处理方法、装置、设备及存储介质 | |
US20080082708A1 (en) | Token hold off for chipset communication | |
CN114969851B (zh) | 一种基于fpga的数据处理方法、装置、设备及介质 | |
WO2020118583A1 (zh) | 数据处理方法、电路、终端设备及存储介质 | |
WO2021128945A1 (zh) | 用于进行rsa计算的计算资源调度方法及装置 | |
US20130262542A1 (en) | Systems with multiple port random number generators and methods of their operation | |
US11386029B2 (en) | Direct memory access controller | |
KR20090059602A (ko) | 세션 메모리 버스를 구비한 암호화 장치 | |
JP2013143652A (ja) | 情報処理装置、情報処理方法 | |
KR101083186B1 (ko) | 멀티코어 프로세서를 이용한 aesccm 처리 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20130305 |