JP2008203306A - Encryption processor - Google Patents
Encryption processor Download PDFInfo
- Publication number
- JP2008203306A JP2008203306A JP2007035953A JP2007035953A JP2008203306A JP 2008203306 A JP2008203306 A JP 2008203306A JP 2007035953 A JP2007035953 A JP 2007035953A JP 2007035953 A JP2007035953 A JP 2007035953A JP 2008203306 A JP2008203306 A JP 2008203306A
- Authority
- JP
- Japan
- Prior art keywords
- data
- unit
- encryption
- pipeline
- output
- 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
Description
本発明は、平文の暗号化もしくは暗号文の復号化を行う暗号処理装置に関する。 The present invention relates to a cryptographic processing apparatus that performs plaintext encryption or decryption of ciphertext.
一般に、データの暗号化はセキュリティが強固で、かつ高速処理が可能なものが求められる。暗号化方式の主流は、DES(データ標準暗号化方式、Data Encryption Standard)からAES(次世代標準暗号化方式、Advanced Encryption Standard)に移行しており、暗号強度が強くなってきている。AES暗号方式は、データを128ビットのブロック長単位で暗号化/復号化するブロック暗号であり、複数種類のモードがあって目的や使用方法により選択される。 In general, data encryption is required to be strong in security and capable of high-speed processing. The mainstream of the encryption method is shifting from DES (Data Standard Encryption Method, Data Encryption Standard) to AES (Next Generation Standard Encryption Method, Advanced Encryption Standard), and the encryption strength is getting stronger. The AES encryption method is a block cipher that encrypts / decrypts data in block length units of 128 bits, and has a plurality of types of modes, and is selected according to the purpose and usage method.
たとえば、図8はCBC(Cipher Block Chaining)モードの暗号化回路200の構成例を示しており、図9はCBCモードの復号化回路210の構成例を示しており、図10はCBCモードにおける暗号化/復号化プロセスを示している。
For example, FIG. 8 shows a configuration example of an
図8に示すように、暗号化回路200は、入力値にAES規格に基づいた暗号演算を施して演算結果(暗号ベクタ)を出力するAES暗号演算部201と、AES暗号演算部201に入力する暗号鍵を保持するためのKEYレジスタ202と、暗号化の対象となるデータブロックを保持する入力レジスタ203と、初回の暗号演算に使用する初期の暗号ベクタ(イニシャルベクタ)を保持するためのIVレジスタ204と、AES暗号演算部201の演算結果として出力される暗号ベクタとIVレジスタ204に保持されているイニシャルベクタとのいずれかを選択するセレクタ205と、入力レジスタ203の出力とセレクタ205の出力との排他的論理和を演算してAES暗号演算部201の入力に与えるXOR演算部206と、AES暗号演算部201の出力(暗号化の結果として生成されたデータブロック)を保持する出力レジスタ207とを備えている。
As shown in FIG. 8, the
図9に示すように、復号化回路210は、入力値にAES規格に基づいた復号演算を施して演算結果(復号ベクタ)を出力するAES復号演算部211と、AES復号演算部211に入力する暗号鍵を保持するためのKEYレジスタ212と、復号化の対象となるデータブロックを保持する入力レジスタ213と、初回の復号演算に使用する初期の暗号ベクタ(イニシャルベクタ)を保持するためのIVレジスタ214と、入力レジスタ213に保持されているデータブロックとIVレジスタ214に保持されているイニシャルベクタとのいずれかを選択するセレクタ215と、AES復号演算部211の出力とセレクタ215の出力との排他的論理和を演算するXOR演算部216と、XOR演算部216の出力(復号化の結果として生成されたデータブロック)を保持する出力レジスタ217とを備えている。
As shown in FIG. 9, the
図10(A)に示すように、暗号化プロセスの初回T1には、暗号化回路200における入力レジスタ203の保持している暗号化の対象となるデータブロック(平文1)とIVレジスタ204の保持しているイニシャルベクタIVとがXOR演算部206に入力され、XOR演算部206はその暗号化対象のデータブロックとイニシャルベクタIVとの排他的論理和演算を行い、演算結果をAES暗号演算部201に出力する。AES暗号演算部201は、XOR演算部206から入力された演算結果とKEYレジスタ202に保持されている暗号鍵(KEY)とのAES規格に基づいた暗号演算を行い、その演算結果が暗号化の結果のデータブロック(暗号文1)として出力レジスタ207に保持される。AES暗号演算部201から出力された演算結果は、暗号ベクタとして2回目T2にXOR演算部206にも入力される。
As shown in FIG. 10A, at the first T1 of the encryption process, the data block (plaintext 1) to be encrypted and held in the
2回目以降(T2、T3、・・・Tn)には、XOR演算部206は、入力レジスタ203に保持されている暗号化対象のデータブロック(平文2、平文3、・・・平文n)とAES暗号演算部201から入力された前回の暗号ベクタとの排他的論理和演算を行い、演算結果をAES暗号演算部201に出力する。AES暗号演算部201は、XOR演算部206から入力された演算結果とKEYレジスタ202に保持されている暗号鍵とのAES規格に基づいた演算を行い、その演算結果が暗号化の結果のデータブロック(暗号文2、暗号文3、・・・暗号文n)として出力レジスタ207に保持される。この2回目以降も、AES暗号演算部201から出力された演算結果は、次回の暗号ベクタとしてXOR演算部206に入力される。
After the second time (T2, T3,... Tn), the
図10(B)に示すように、復号化プロセスの初回T1には、復号化回路210における入力レジスタ213の保持している復号化の対象となるデータブロック(暗号文1)とKEYレジスタ212の保持している暗号鍵(KEY)とがAES復号演算部211に入力され、AES復号演算部211はその復号化対象のデータブロックと暗号鍵とのAES規格に基づいた復号演算を行い、演算結果をXOR演算部216に出力する。初回T1にXOR演算部216は、AES復号演算部211から入力された演算結果とIVレジスタ214に保持されているイニシャルベクタIVとの排他的論理和演算を行い、その演算結果が復号化の結果のデータブロック(平文1)として出力レジスタ217に保持される。
As shown in FIG. 10B, at the first T1 of the decryption process, the data block (ciphertext 1) to be decrypted held in the
2回目以降(T2、T3、・・・Tn)には、入力レジスタ213の保持している復号化の対象となるデータブロック(暗号文2、暗号文3、・・・暗号文n)とKEYレジスタ212の保持している暗号鍵とがAES復号演算部211に入力され、AES復号演算部211はその復号化対象のデータブロックと暗号鍵とのAES規格に基づいた復号演算を行い、演算結果をXOR演算部216に出力する。XOR演算部216は、AES復号演算部211から入力された演算結果と、前回、入力レジスタ213に保持されているデータブロック(暗号文1、暗号文2、・・・暗号文n−1)との排他的論理和演算を行い、その演算結果が復号化の結果のデータブロック(平文2、平文3、・・・平文n)として出力レジスタ217に保持される。
From the second time (T2, T3,... Tn), the data block (
図11は、CBCモードの暗号化プロセスにおける暗号化の対象となるデータブロック(平文)の入力タイミングと暗号化の結果のデータブロック(暗号文)の出力タイミングに関するタイミングチャートを示している。図10(A)でも説明したように、初回は平文1とイニシャルベクタIVとで排他的論理和演算(XOR)を行い、その演算結果をAES暗号演算部201に入力し暗号文1'が生成される。2回目は平文2と暗号文1'とで排他的論理和演算(XOR)を行い、その演算結果をAES暗号演算部201に入力し暗号文2'が生成される。3回目以降も同様に、平文3と暗号文2'とで排他的論理和演算(XOR)を行い、その演算結果をAES暗号演算部201に入力し暗号文3'が生成され、最終回には平文nと暗号文(n−1)'とで排他的論理和演算(XOR)を行い、その結果をAES暗号演算部201に入力し暗号文n'が生成される。
FIG. 11 is a timing chart relating to the input timing of the data block (plain text) to be encrypted in the CBC mode encryption process and the output timing of the data block (cipher text) as a result of encryption. As described with reference to FIG. 10A, the exclusive OR operation (XOR) is performed on the
図12は、CBCモードの復号化プロセスにおける復号化の対象となるデータブロック(暗号文)の入力タイミングと復号化の結果のデータブロック(平文)の出力タイミングに関するタイミングチャートを示している。図10(B)でも説明したように、初回は暗号文1'をAES復号演算部211に入力して復号演算を行い、その演算結果とイニシャルベクタIVとで排他的論理和演算(XOR)を行い平文1が生成される。2回目は暗号文2'をAES復号演算部211に入力して復号演算を行い、その演算結果と暗号文1'とで排他的論理和演算(XOR)を行い平文2が生成される。3回目以降も同様に、暗号文3'をAES復号演算部211に入力して復号演算を行い、その演算結果と暗号文2'とで排他的論理和演算(XOR)を行い平文3が生成され、最終回には暗号文n'をAES復号演算部211に入力して復号演算を行い、その演算結果と暗号文(n−1)'とで排他的論理和演算(XOR)を行い平文nが生成される。
FIG. 12 is a timing chart regarding the input timing of the data block (ciphertext) to be decrypted in the decryption process in the CBC mode and the output timing of the data block (plaintext) as a result of the decryption. As described with reference to FIG. 10B, the
図13は、暗号化回路200のAES暗号演算部201および復号化回路210のAES復号演算部211を構成するノンパイプライン回路220のブロック図を示しており、図14は、ノンパイプライン回路220から出力される処理データの出力タイミングチャートを示している。
FIG. 13 shows a block diagram of a
図13に示すように、AES暗号方式のノンパイプライン回路220は、入力されたデータブロック(indata)に対し、置換(ステップS301)、並べ替え(ステップS302)、行列演算(ステップS303)、XOR演算(ステップS304)の4つの処理を1ラウンドで行い、この1ラウンドを1クロック(CLK)で処理して11回繰り返す。最後に1クロックを入れて計12クロックでブロック長128ビットを処理し、処理済みのデータブロック(outdata)を出力する。
As shown in FIG. 13, the
したがって、ノンパイプライン回路220による処理済みのデータブロックの出力タイミングは、図14に示すように、最初のデータブロック(data1)が出力されるまでに12クロックかかり、その後は11クロック毎にデータブロック(data2、data3・・・)が出力される(図11および図12参照)。
Accordingly, as shown in FIG. 14, the output timing of the data block processed by the
このようなノンパイプライン回路220による暗号化/復号化の処理では、各回で固定長(128ビット)のデータブロックの暗号化/復号化を行い、長いビット長の平文や暗号文を処理するためには多数の回数を時系列に処理するので、処理時間が長くなってしまう。
In such encryption / decryption processing by the
これに対し、たとえば、平文ブロックの位置情報(ブロック番号)とイニシャルベクタ(IV)とを演算してスクランブルデータを求め、このスクランブルデータと平文ブロックとの排他的論理和を演算した演算結果を複数段の暗号化回路でパイプライン処理により暗号化して暗号文ブロックを生成することにより、またその暗号文ブロックをパイプライン処理により復号化することにより、大量のデータを暗号化/復号化する場合の処理速度を高めるようにした技術がある(たとえば、特許文献1参照。)。 On the other hand, for example, the position information (block number) of the plaintext block and the initial vector (IV) are calculated to obtain scrambled data, and a plurality of calculation results obtained by calculating exclusive OR of the scrambled data and the plaintext block are obtained. When encrypting / decrypting a large amount of data by generating a ciphertext block by encrypting it by pipeline processing with a stage encryption circuit, and decrypting the ciphertext block by pipeline processing There is a technique for increasing the processing speed (see, for example, Patent Document 1).
上記のパイプライン処理を用いた暗号化/復号化の技術は、暗号化回路のパイプライン化を容易にするために、暗号文を入力側にフィードバックせずに平文をスクランブルするようにしており、CBCモードには対応していない。そのため、暗号文を入力に戻して次の平文の暗号化に使用することにより暗号化強度を高めているCBCモードなどに比べると、暗号化強度が低下してしまう。 In the encryption / decryption technology using the above pipeline processing, the plaintext is scrambled without feeding back the ciphertext to the input side in order to facilitate the pipeline of the encryption circuit. The CBC mode is not supported. Therefore, the encryption strength is reduced as compared with the CBC mode in which the encryption strength is increased by returning the ciphertext to the input and using it for encryption of the next plaintext.
本発明は、上記の問題を解決しようとするものであり、暗号化強度の低下を抑制しつつ、暗号化/復号化の処理速度を向上することができる暗号処理装置を提供することを目的としている。 The present invention is intended to solve the above-described problem, and an object of the present invention is to provide an encryption processing apparatus capable of improving the processing speed of encryption / decryption while suppressing a decrease in encryption strength. Yes.
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。 The gist of the present invention for achieving the object lies in the inventions of the following items.
[1]複数の暗号化処理部がパイプライン構造で接続されたパイプライン暗号化処理部と、
入力される単位データと前記パイプライン暗号化処理部から出力された暗号データとを演算し、その演算結果を前記パイプライン暗号化処理部に入力する演算部と、
暗号化対象のデータ群を前記単位データずつに分割し、かつ一の単位データとこれに後続する単位データとを前記パイプライン暗号化処理部の前記パイプライン構造の段数分以上離れるタイミング規則で前記演算部に入力する制御部と、
を備える
ことを特徴とする暗号処理装置。
[1] A pipeline encryption processing unit in which a plurality of encryption processing units are connected in a pipeline structure;
An arithmetic unit that calculates the unit data to be input and the encrypted data output from the pipeline encryption processing unit, and inputs the operation result to the pipeline encryption processing unit;
The data group to be encrypted is divided into unit data, and one unit data and subsequent unit data are separated by at least the number of stages of the pipeline structure of the pipeline encryption processing unit according to the timing rule. A control unit that inputs to the computation unit;
A cryptographic processing apparatus comprising:
上記発明では、制御部は暗号化対象のデータ群を単位データずつに分割し、かつ一の単位データとこれに後続する単位データとをパイプライン暗号化処理部のパイプライン構造の段数分以上離れるタイミング規則で演算部に入力する。演算部は、パイプライン暗号化処理部から出力された暗号データと制御部によって入力される単位データとを演算し、その演算結果をパイプライン暗号化処理部に入力する。パイプライン暗号化処理部は、演算部から入力される演算結果に対し、パイプライン構造で接続された複数の暗号化処理部によりその段数分の暗号演算を行って暗号データを生成する。 In the above invention, the control unit divides the data group to be encrypted into unit data, and separates one unit data and subsequent unit data by the number of stages of the pipeline structure of the pipeline encryption processing unit. Input to the arithmetic unit according to the timing rule. The calculation unit calculates the encrypted data output from the pipeline encryption processing unit and the unit data input by the control unit, and inputs the calculation result to the pipeline encryption processing unit. The pipeline encryption processing unit performs cryptographic operations for the number of stages by a plurality of encryption processing units connected in a pipeline structure with respect to the operation result input from the operation unit to generate encrypted data.
パイプライン暗号化処理部は、パイプライン構造を備えていることで、演算部から次々と演算結果のデータを入力してその段数分だけ暗号演算を並列に実行できる。ただし、パイプライン暗号化処理部では段数分の暗号演算が行われるため、一の単位データの暗号データは一の単位データをパイプライン暗号化処理部に入力した時点からパイプライン段数分だけ遅れてパイプライン暗号化処理部から出力される。このため、一の単位データに後続する単位データを一の単位データに連続させて演算部に入力すると、たとえば、単位データNの暗号データN'と単位データN+1とを演算部で演算してパイプライン暗号化処理部に入力することはできない。 Since the pipeline encryption processing unit has a pipeline structure, it is possible to input data of operation results one after another from the operation unit and execute cryptographic operations in parallel for the number of stages. However, since the encryption processing for the number of stages is performed in the pipeline encryption processing unit, the encryption data of one unit data is delayed by the number of pipeline stages from the time when one unit data is input to the pipeline encryption processing unit. Output from the pipeline encryption processing unit. For this reason, when unit data subsequent to one unit data is continuously input to one unit data and input to the calculation unit, for example, the encrypted data N ′ and unit data N + 1 of the unit data N are calculated by the calculation unit and piped. It cannot be input to the line encryption processing unit.
そこで、一の単位データ(N)とこれに後続する単位データ(N+1)とをパイプライン暗号化処理部の段数分以上離れるタイミング規則で演算部に入力すれば、単位データN+1は、単位データNの暗号データN'がパイプライン暗号化処理部から出力された時点以降に演算部に入力されるようになり、暗号データN'と演算部への入力タイミングを合わせられるようになる。この入力タイミングを合わせることで、一の単位データの暗号データ(暗号ベクタ)を入力側にフィードバックさせて後続する単位データの暗号化が可能となる。 Therefore, if one unit data (N) and the following unit data (N + 1) are input to the arithmetic unit with a timing rule that is more than the number of stages of the pipeline encryption processing unit, the unit data N + 1 is converted into the unit data N The encrypted data N ′ is input to the arithmetic unit after the time when the encrypted data N ′ is output from the pipeline encryption processing unit, and the input timing to the arithmetic unit can be matched with the encrypted data N ′. By matching this input timing, encrypted data (encryption vector) of one unit data is fed back to the input side, and subsequent unit data can be encrypted.
このように、パイプライン暗号化処理部から出力される暗号データを入力に戻して次の単位データの暗号化に使用することにより、強度の高い暗号化プロセス(暗号化アルゴリズム)となり、暗号データを入力に戻して次の単位データの暗号化を行わない暗号化プロセスに比べて、暗号化強度の低下を抑制できる。 In this way, by returning the encrypted data output from the pipeline encryption processing unit to the input and using it for the encryption of the next unit data, it becomes a strong encryption process (encryption algorithm), Compared with an encryption process in which the next unit data is not encrypted by returning to the input, it is possible to suppress a decrease in encryption strength.
またパイプライン暗号化処理部は、演算部から演算結果を連続して入力されても、その連続入力される演算結果に対し段数分の暗号演算を並列に実行してパイプライン処理し、暗号データを連続生成して出力できる。たとえば、複数のデータ群について上記のタイミング規則で演算部に単位データを入力する動作を並行に行えば、複数のデータ群に対する暗号化を同時並行に行うことができるため、単一のノンパイプラインの暗号化処理部を使用して1つの単位データの暗号演算を所定回数繰り返すような暗号化処理を行う場合に比べ、暗号化の処理速度を向上することができる。 In addition, even if the operation result is continuously input from the operation unit, the pipeline encryption processing unit executes the encryption operation for the number of stages on the operation result that is continuously input in parallel, and performs pipeline processing. Can be generated and output continuously. For example, if the operation of inputting unit data to the arithmetic unit according to the above timing rule for a plurality of data groups is performed in parallel, the encryption for the plurality of data groups can be performed simultaneously, so that a single non-pipeline The encryption processing speed can be improved as compared with the case where the encryption processing unit is used to perform encryption processing such that the encryption operation of one unit data is repeated a predetermined number of times.
[2]初期ベクタを保持する保持レジスタと、
前記データ群に対する1回目の暗号化が行われるときは前記暗号データに代えて前記保持レジスタに保持されている初期ベクタを前記演算部に入力する切替部と、
をさらに備える
ことを特徴とする[1]に記載の暗号処理装置。
[2] A holding register for holding an initial vector;
When the first encryption for the data group is performed, a switching unit that inputs an initial vector held in the holding register instead of the encrypted data to the arithmetic unit;
The cryptographic processing apparatus according to [1], further comprising:
上記発明では、切替部は、1回目の暗号化が行われるときは暗号データに代えて保持レジスタに保持されている初期ベクタを演算部に入力し、2回目以降の暗号化が行われるときはパイプライン暗号化処理部から出力された暗号データを演算部に入力する。これにより、データ群の1番目の単位データに対する暗号化は初期ベクタを使用して実行され、そのデータ群の2番目以降の単位データの暗号化は暗号データを使用して実行される。 In the above invention, when the first encryption is performed, the switching unit inputs the initial vector held in the holding register instead of the encrypted data to the arithmetic unit, and when the second and subsequent encryptions are performed. The encrypted data output from the pipeline encryption processing unit is input to the arithmetic unit. Thereby, encryption of the first unit data of the data group is executed using the initial vector, and encryption of the second and subsequent unit data of the data group is executed using the encrypted data.
[3]前記制御部は、前記一の単位データの暗号データが前記パイプライン暗号化処理部を経て前記演算部に戻されるタイミングで前記後続する単位データを前記演算部に入力する
ことを特徴とする[1]または[2]に記載の暗号処理装置。
[3] The control unit inputs the subsequent unit data to the arithmetic unit at a timing when the encrypted data of the one unit data is returned to the arithmetic unit via the pipeline encryption processing unit. The cryptographic processing device according to [1] or [2].
上記発明では、演算部において、パイプライン暗号化処理部を経て演算部に戻される単位データNの暗号データN'と、暗号データN'が演算部に戻されるタイミングで入力される単位データN+1とが演算される。これにより、一の単位データの暗号データを使用した、一の単位データに後続する単位データの暗号化が可能となる。 In the above invention, in the arithmetic unit, the encrypted data N ′ of the unit data N that is returned to the arithmetic unit via the pipeline encryption processing unit, and the unit data N + 1 that is input at the timing when the encrypted data N ′ is returned to the arithmetic unit, Is calculated. As a result, it is possible to encrypt the unit data subsequent to the one unit data using the encrypted data of the one unit data.
[4]前記制御部は、前記パイプライン暗号化処理部から前記タイミング規則で離間して出力される前記一の単位データの暗号データと前記後続する単位データの暗号データとを連続配列させる
ことを特徴とする[1]乃至[3]のいずれか1項に記載の暗号処理装置。
[4] The control unit continuously arranges the encrypted data of the one unit data and the encrypted data of the subsequent unit data that are output from the pipeline encryption processing unit separated by the timing rule. The cryptographic processing device according to any one of [1] to [3], which is characterized.
上記発明では、パイプライン暗号化処理部を経て演算部に戻される単位データNの暗号データN'と、単位データN+1との演算部への入力タイミングを合わせるために、単位データNと単位データN+1とをパイプライン段数分以上離れるタイミング規則(非連続)で演算部に入力することで、パイプライン暗号化処理部からは暗号データN'と暗号データ(N+1)'とがパイプライン段数分以上離れるタイミング規則(非連続)で出力される。この離間して出力される暗号データを連続配列させることにより、データ群単位では暗号データが汎用のCBCモードの並びになる。 In the above invention, the unit data N and the unit data N + 1 are matched with the input timing of the unit data N + 1 and the encrypted data N ′ of the unit data N returned to the operation unit via the pipeline encryption processing unit. Is input to the arithmetic unit with a timing rule (discontinuous) that is more than the number of pipeline stages, and the encrypted data N ′ and the encrypted data (N + 1) ′ are separated from the pipeline encryption process part by more than the number of pipeline stages. Output according to the timing rule (non-continuous). By continuously arranging the encrypted data output at a distance, the encrypted data is arranged in a general-purpose CBC mode in units of data groups.
たとえば、データの暗号化送信を行う場合に、受信側の暗号処理装置がCBCモードの汎用(ノンパイプライン)の復号化処理部しか備えていない場合でも、パイプライン暗号化処理部で生成した暗号データに加えて暗号化プロセスでの初期ベクタの使用タイミングを示すタイミング情報(各データ群の最初の位置を示す情報)などを送信することにより、受信側の暗号処理装置はノンパイプラインの復号化処理部によって暗号データを元のデータに復号化することができる。したがって、汎用のCBCモードにおける復号化プロセスと互換性を保つことができる。 For example, when performing encrypted transmission of data, even if the encryption processing device on the receiving side has only a general-purpose (non-pipeline) decryption processing unit in the CBC mode, the encryption generated by the pipeline encryption processing unit By sending timing information (information indicating the first position of each data group) indicating the use timing of the initial vector in the encryption process in addition to the data, the receiving side cryptographic processor can perform non-pipeline decryption. The processing unit can decrypt the encrypted data into the original data. Therefore, compatibility with the decoding process in the general-purpose CBC mode can be maintained.
[5]前記制御部は、一のデータ群から分割された単位データを前記タイミング規則で前記演算部に順次入力する動作を、複数のデータ群に対して、前記単位データを前記演算部に入力するタイミングをデータ群毎に異ならせて並行に行う
ことを特徴とする[1]乃至[4]のいずれか1項に記載の暗号処理装置。
[5] The controller inputs the unit data divided from one data group to the arithmetic unit sequentially according to the timing rule, and inputs the unit data to the arithmetic unit for a plurality of data groups. The encryption processing apparatus according to any one of [1] to [4], wherein the timing of performing the processing is different for each data group and is performed in parallel.
上記発明では、制御部は、たとえば、データ群Nの単位データNを演算部に入力してから単位データN+1を上記のタイミング規則で演算部に入力するまでの間に、データ群Mの単位データMを演算部に入力する。この入力後に、データ群Nの単位データN+1を単位データNに対して上記のタイミング規則で演算部に入力し、さらに、データ群Mの単位データM+1を単位データMに対して上記のタイミング規則で演算部に入力する。 In the above invention, the control unit, for example, inputs the unit data N of the data group N to the calculation unit and before the unit data N + 1 is input to the calculation unit according to the above timing rule. M is input to the calculation unit. After this input, the unit data N + 1 of the data group N is input to the arithmetic unit with the above timing rule with respect to the unit data N, and further, the unit data M + 1 of the data group M is input with respect to the unit data M according to the above timing rule. Input to the calculation unit.
演算部からは、単位データNの演算結果が出力されてから単位データN+1の演算結果が上記のタイミング規則で出力されるまでの間に、単位データMの演算結果が出力される。この出力後に、単位データN+1の演算結果が単位データNの演算結果に対して上記のタイミング規則で出力され、さらに、単位データM+1の演算結果が単位データMの演算結果に対して上記のタイミング規則で出力される。 From the calculation unit, the calculation result of the unit data N is output after the calculation result of the unit data N is output until the calculation result of the unit data N + 1 is output according to the above timing rule. After this output, the operation result of the unit data N + 1 is output with respect to the operation result of the unit data N according to the above timing rule, and the operation result of the unit data M + 1 is output with respect to the operation result of the unit data M with the above timing rule. Is output.
これにより、パイプライン暗号化処理部は、単位データNの演算結果が入力されてから単位データN+1の演算結果が入力されるまでの間に、すなわち、単位データNの演算結果に対する暗号演算を行っている間に、単位データMの演算結果が入力され、それらの暗号演算を並列実行する。また、単位データNの演算結果に対する暗号演算を終えてその暗号データN'を出力し、単位データMの演算結果に対する暗号演算を行っている間に、単位データN+1の演算結果が入力され、それらの暗号演算を並列実行する。さらに、単位データMの演算結果に対する暗号演算を終えてその暗号データM'を出力し、単位データN+1の演算結果に対する暗号演算を行っている間に、単位データM+1の演算結果が入力され、それらの暗号演算を並列実行する。 As a result, the pipeline encryption processing unit performs a cryptographic operation on the operation result of the unit data N from when the operation result of the unit data N is input to when the operation result of the unit data N + 1 is input. In the meantime, the operation result of the unit data M is input, and the cryptographic operations are executed in parallel. Further, the cryptographic operation on the operation result of the unit data N is finished, the encrypted data N ′ is output, and the operation result of the unit data N + 1 is input while performing the cryptographic operation on the operation result of the unit data M. Execute cryptographic operations in parallel. Further, the cryptographic operation on the operation result of the unit data M is finished and the encrypted data M ′ is output. While the cryptographic operation on the operation result of the unit data N + 1 is being performed, the operation result of the unit data M + 1 is input. Execute cryptographic operations in parallel.
このように、一のデータ群から分割された単位データを上記のタイミング規則で演算部に順次入力する動作を、複数のデータ群に対して、単位データを演算部に入力するタイミングを、データ群毎に異ならせて並行に行うことで、パイプライン暗号化処理部では各単位データが同時並行に暗号化処理され、暗号化対象の複数のデータ群に対する暗号化の処理速度が向上する。 In this way, the operation of sequentially inputting the unit data divided from one data group to the arithmetic unit according to the above timing rule, the timing of inputting the unit data to the arithmetic unit for a plurality of data groups, the data group By performing different operations in parallel, each unit data is encrypted in parallel in the pipeline encryption processing unit, and the encryption processing speed for a plurality of data groups to be encrypted is improved.
[6]前記データ群は、1ページ分の画像のデータである
ことを特徴とする[1]乃至[5]のいずれか1項に記載の暗号処理装置。
[6] The cryptographic processing apparatus according to any one of [1] to [5], wherein the data group is image data for one page.
上記発明では、暗号化対象のデータ群を1ページ分の画像のデータとし、その1ページ分の画像のデータを単位データずつに分割して各ページの各単位データの暗号演算をパイプライン暗号化処理部により並列に実行して暗号化する(パイプライン処理)。これにより、暗号化ではページ毎(データ群毎)に、1番目の単位データの暗号演算には初期ベクタを使用し、2番目以降の単位データの暗号演算には前の暗号データを使用できる。また、この暗号データを復号化する場合は、ページ単位に暗号化されているとして扱えば、各ページの1番目の暗号データの復号化には初期ベクタを使用し、2番目以降の暗号データの復号化には前の暗号データを使用することで復号化が可能となり、ノンパイプラインの復号化処理部でも復号化することができる。 In the above invention, the data group to be encrypted is set as image data for one page, the image data for one page is divided into unit data, and the encryption operation of each unit data of each page is pipeline encrypted. It is executed in parallel by the processing unit and encrypted (pipeline processing). Thus, in encryption, for each page (each data group), the initial vector can be used for the cryptographic operation of the first unit data, and the previous cryptographic data can be used for the cryptographic operation of the second and subsequent unit data. When this encrypted data is decrypted, if it is treated as being encrypted in units of pages, the initial vector is used to decrypt the first encrypted data of each page, and the second and subsequent encrypted data Decryption can be performed by using the previous encrypted data, and can be decrypted by a non-pipeline decryption processing unit.
[7]前記データ群は、一連のデータを複数に分割して構成される
ことを特徴とする[1]乃至[5]のいずれか1項に記載の暗号処理装置。
[7] The cryptographic processing device according to any one of [1] to [5], wherein the data group is configured by dividing a series of data into a plurality of pieces.
上記発明では、一連のデータを複数に分割して暗号化対象のデータ群を構成し、複数のデータ群の暗号化をパイプライン処理によって並列処理すれば、一連のデータの暗号化に要する時間が短縮される。 In the above invention, if a series of data is divided into a plurality of data groups to be encrypted, and the encryption of the plurality of data groups is processed in parallel by pipeline processing, the time required to encrypt the series of data is reduced. Shortened.
たとえば、1ページ分の画像のデータを複数のデータ群に分割してパイプライン暗号化処理部で並列処理することで、暗号化の処理速度が向上する。 For example, by dividing image data for one page into a plurality of data groups and performing parallel processing in the pipeline encryption processing unit, the encryption processing speed is improved.
[8]前記データ群は、一連のデータを前記パイプライン暗号化処理部の前記パイプライン構造の段数と同数に等分して構成される
ことを特徴とする[1]乃至[5]のいずれか1項に記載の暗号処理装置。
[8] The data group is configured by equally dividing a series of data into the same number of stages of the pipeline structure of the pipeline encryption processing unit. The cryptographic processing device according to
上記発明では、一連のデータをパイプライン暗号化処理部の段数と同数に等分してデータ群を構成し、各データ群を単位データずつに分割して各データ群の各単位データの暗号演算をパイプライン暗号化処理部により並列に実行して暗号化する(パイプライン処理)。 In the above invention, a series of data is equally divided into the number of stages of the pipeline encryption processing unit to form a data group, each data group is divided into unit data, and the cryptographic operation of each unit data of each data group Are executed in parallel by the pipeline encryption processing unit and encrypted (pipeline processing).
たとえば、一連のデータをパイプライン暗号化処理部の段数未満に分割してデータ群を構成しパイプライン処理を行うような場合には、パイプライン暗号化処理部では暗号演算を行わない段が発生して処理効率が低下する。また、一連のデータをパイプライン暗号化処理部の段数より多く分割してデータ群を構成しパイプライン処理を行うような場合には、初期ベクタの使用回数が増加して暗号化強度が低下する。 For example, when a series of data is divided into less than the number of stages in the pipeline encryption processing unit to form a data group and perform pipeline processing, the pipeline encryption processing unit has stages that do not perform cryptographic operations As a result, processing efficiency decreases. In addition, when a series of data is divided more than the number of stages of the pipeline encryption processing unit to form a data group and pipeline processing is performed, the number of uses of the initial vector increases and the encryption strength decreases. .
これに対し、一連のデータをパイプライン暗号化処理部の段数分に分割してデータ群を構成すれば、パイプライン暗号化処理部から同一データ群の単位データNの暗号データN'が出力されて演算部に戻されるタイミングと、単位データN+1を演算部に入力するタイミングが一致するため、隙間を空けることなく単位データを連続的に入力できるようになり、効率的な処理が可能となる。 On the other hand, if a series of data is divided into the number of stages of the pipeline encryption processing unit to form a data group, encrypted data N ′ of unit data N of the same data group is output from the pipeline encryption processing unit. Since the timing at which the data is returned to the calculation unit coincides with the timing at which the unit data N + 1 is input to the calculation unit, the unit data can be continuously input without leaving a gap, thereby enabling efficient processing.
このように、一連のデータをパイプライン暗号化処理部の段数と同数に等分して複数のデータ群を構成し、暗号化を行うことにより、初期ベクタの使用回数を最小にして暗号化強度の低下を抑制しつつ、パイプライン化した暗号化処理部の段数に応じた効率的な処理(最適化処理)が可能となる。 In this way, a series of data is equally divided into the number of stages of the pipeline encryption processing unit to form a plurality of data groups, and encryption is performed to minimize the number of times the initial vector is used. It is possible to perform efficient processing (optimization processing) in accordance with the number of stages of the pipelined encryption processing unit while suppressing a decrease in the number of times.
[9]複数の復号化処理部がパイプライン構造で接続されたパイプライン復号化処理部と、
初期ベクタを保持する第1保持部と、
前記パイプライン復号化処理部に入力される暗号データと同一の暗号データを保持すると共に、前記パイプライン復号化処理部から前記暗号データの次の暗号データに対する演算結果が出力されるタイミングで前記保持している暗号データを出力する第2保持部と、
初期ベクタの使用タイミングを示すタイミング情報が入力され、そのタイミング情報に基づいて、前記第1保持部に保持されている初期ベクタまたは前記第2保持部から出力される暗号データに出力を切り替える切替部と、
前記パイプライン復号化処理部から出力される演算結果と、前記切替部から出力される初期ベクタまたは暗号データとを演算する演算部と、
を備える
ことを特徴とする暗号処理装置。
[9] A pipeline decoding processing unit in which a plurality of decoding processing units are connected in a pipeline structure;
A first holding unit for holding an initial vector;
The same encrypted data as the encrypted data input to the pipeline decryption processing unit is retained, and the retention is performed at a timing when an operation result for the encrypted data next to the encrypted data is output from the pipeline decryption processing unit. A second holding unit for outputting the encrypted data
A switching unit that receives timing information indicating the use timing of the initial vector, and switches the output to the initial vector held in the first holding unit or the encrypted data output from the second holding unit based on the timing information When,
A calculation unit that calculates a calculation result output from the pipeline decryption processing unit and an initial vector or encrypted data output from the switching unit;
A cryptographic processing apparatus comprising:
上記発明では、パイプライン復号化処理部は、復号化対象の暗号データに対し、パイプライン構造で接続された複数の復号化処理部によりパイプライン構造の段数分の復号演算を行う。第1保持部は初期ベクタを保持する。第2保持部はパイプライン復号化処理部に入力される暗号データと同一の暗号データを保持すると共に、パイプライン復号化処理部からその暗号データの次の暗号データに対する演算結果が出力されるタイミングで保持しているその暗号データを出力する。演算部は、入力された、初期ベクタの使用タイミングを示すタイミング情報に基づいて、第1保持部に保持されている初期ベクタまたは第2保持部から出力される暗号データに出力を切り替える。演算部は、パイプライン復号化処理部から出力される演算結果と、切替部から出力される初期ベクタまたは暗号データとを演算して、復号データを生成する。 In the above invention, the pipeline decryption processing unit performs decryption operation for the number of stages of the pipeline structure on the decrypted encryption data by the plurality of decryption processing units connected in the pipeline structure. The first holding unit holds an initial vector. The second holding unit holds the same encrypted data as the encrypted data input to the pipeline decryption processing unit, and the timing at which the operation result for the next encrypted data of the encrypted data is output from the pipeline decryption processing unit Output the encrypted data stored in. The arithmetic unit switches the output to the initial vector held in the first holding unit or the encrypted data output from the second holding unit based on the input timing information indicating the use timing of the initial vector. The computing unit computes the computation result output from the pipeline decryption processing unit and the initial vector or encrypted data output from the switching unit to generate decrypted data.
このように、暗号データを復号化する復号化処理部をパイプライン化することで、そのパイプライン復号化処理部に暗号データを連続的に入力して段数分の復号演算を並列に実行しパイプライン処理することが可能となる。これにより、単一のノンパイプラインの復号化処理部を使用して1つの単位データの復号演算を所定回数繰り返すような復号化処理を行う場合に比べ、復号化の処理速度を向上することができる。 In this way, by pipelining a decryption processing unit that decrypts encrypted data, the encrypted data is continuously input to the pipeline decryption processing unit, and decryption operations for the number of stages are executed in parallel. Line processing is possible. As a result, the decoding processing speed can be improved as compared with a case where a single non-pipeline decoding processing unit is used to perform a decoding process in which a decoding operation of one unit data is repeated a predetermined number of times. it can.
また、従来の復号化回路は、1回目の復号化処理のみに初期ベクタを使用するように構成されるが、初期ベクタの使用タイミングを示すタイミング情報を入力し、このタイミング情報に基づいて初期ベクタの使用タイミングを切り替えることで、暗号データの途中で初期ベクタによる復号化を必要とする場合にも対応することができる。たとえば、暗号データが複数のデータ群に分けて暗号化(各データ群では1回目にのみ初期ベクタが使用される)されている場合でも、各データ群の最初の位置(境界位置)を示す情報などが入力されれば、各データ群の初回の復号化に初期ベクタを使用してこの暗号データを連続的に復号化処理することができる。 In addition, the conventional decoding circuit is configured to use the initial vector only for the first decoding process. However, the timing information indicating the use timing of the initial vector is input, and the initial vector is based on the timing information. By switching the use timing, it is possible to cope with the case where decryption with the initial vector is required in the middle of the encrypted data. For example, even when encrypted data is divided into a plurality of data groups and encrypted (the initial vector is used only for the first time in each data group), information indicating the first position (boundary position) of each data group Etc., the encrypted data can be continuously decrypted using the initial vector for the initial decryption of each data group.
また、たとえば、データの暗号化送信を行う場合に、送信側の暗号処理装置がCBCモードの汎用(ノンパイプライン)の暗号化処理部しか備えていない場合でも、受信側の暗号処理装置はパイプライン復号化処理部により、1回目のみ初期ベクタで2回目以降は暗号データを使用する一般的な動作によって暗号データを元のデータに復号化することができる。したがって、汎用のCBCモードにおける暗号化プロセスと互換性を保つことができる。 Further, for example, when performing encrypted transmission of data, even if the transmitting-side encryption processing apparatus has only a general-purpose (non-pipeline) encryption processing unit in the CBC mode, the receiving-side encryption processing apparatus is connected to the pipe. The line decryption processing unit can decrypt the encrypted data to the original data by a general operation using the initial vector only for the first time and the encrypted data after the second time. Therefore, compatibility with the encryption process in the general-purpose CBC mode can be maintained.
[10]前記タイミング情報は初期ベクタの使用周期を示す周期情報を含み、
前記切替部は前記周期情報に基づいて、前記第1保持部に保持されている初期ベクタを1回目に出力した後、前記第2保持部から出力される暗号データに出力を切り替える動作を所定の周期で繰り返し行う
ことを特徴とする[9]に記載の暗号処理装置。
[10] The timing information includes period information indicating a use period of the initial vector,
The switching unit outputs an initial vector held in the first holding unit for the first time based on the cycle information, and then performs an operation of switching output to encrypted data output from the second holding unit. The encryption processing device according to [9], wherein the encryption processing device is repeatedly performed in a cycle.
上記発明では、たとえば、暗号化プロセスで初期ベクタが所定の周期で使用されて暗号化された暗号データを復号化するような場合は、切替部が初期ベクタの使用周期を示す周期情報に基づいて、第1保持部に保持されている初期ベクタを1回目に出力した後、第2保持部から出力される暗号データに出力を切り替える動作を所定の周期で繰り返し行うことにより正しく復号化される。 In the above invention, for example, when the encrypted data decrypted by using the initial vector at a predetermined cycle in the encryption process is decrypted, the switching unit is based on the cycle information indicating the use cycle of the initial vector. Then, after the initial vector held in the first holding unit is output for the first time, the operation of switching the output to the encrypted data output from the second holding unit is repeatedly performed at a predetermined cycle, so that the initial vector is correctly decrypted.
[11]1回の前記周期で前記パイプライン復号化処理部から演算結果が出力される回数が、[1]乃至[8]のいずれか1項に記載の暗号処理装置において暗号化される前記データ群を構成する単位データの数である
ことを特徴とする[10]に記載の暗号処理装置。
[11] The number of times that an operation result is output from the pipeline decryption processing unit in one cycle is encrypted in the cryptographic processing device according to any one of [1] to [8]. It is the number of unit data which comprises a data group. The encryption processing apparatus as described in [10] characterized by the above-mentioned.
上記発明では、[1]乃至[8]のいずれか1項に記載の暗号処理装置のように、暗号化処理部をパイプライン化すると共に、暗号化対象のデータ群を単位データずつに分割し、かつ一の単位データとこれに後続する単位データとをパイプライン暗号化処理部のパイプライン構造の段数分以上離れるタイミング規則で演算部に入力することで暗号化する場合は、たとえば、データ群の1番目の単位データに初期ベクタを使用し、残りの単位データに前の暗号データを使用して暗号化することをデータ群毎に行って暗号化することができる。 In the above invention, as in the encryption processing device according to any one of [1] to [8], the encryption processing unit is pipelined and the data group to be encrypted is divided into unit data. In the case of encryption by inputting one unit data and subsequent unit data to the operation unit with a timing rule that is separated by the number of stages of the pipeline structure of the pipeline encryption processing unit, for example, a data group It is possible to perform encryption for each data group by using the initial vector for the first unit data and encrypting the remaining unit data using the previous encrypted data.
このような暗号化プロセスで生成された暗号データに対しては、データ群を構成する単位データの数を、1回の周期でパイプライン復号化処理部から演算結果が出力される回数にすることで、すなわち、初期ベクタの使用周期を、パイプライン復号化処理部が1つのデータ群の全単位データを処理する周期に合わせることで、各データ群の1番目の暗号データの復号化には初期ベクタが使用され、残りの暗号データの復号化には前の暗号データが使用されるようになり、暗号化プロセスに合わせたデータ群毎の初期ベクタと暗号データの切り替えが行われるようになる。したがって、[1]乃至[8]のいずれか1項に記載の暗号処理装置で暗号化された暗号データを正しく復号化することができる。 For the encrypted data generated by such an encryption process, the number of unit data constituting the data group is set to the number of times the operation result is output from the pipeline decryption processing unit in one cycle. That is, by matching the use cycle of the initial vector with the cycle in which the pipeline decryption processing unit processes all unit data of one data group, the initial decryption of the first encrypted data of each data group The vector is used, and the previous encrypted data is used to decrypt the remaining encrypted data, and the initial vector and the encrypted data are switched for each data group in accordance with the encryption process. Therefore, it is possible to correctly decrypt the encrypted data encrypted by the cryptographic processing device according to any one of [1] to [8].
本発明に係る暗号処理装置によれば、暗号化強度の低下を抑制しつつ、暗号化/復号化の処理速度を向上することができる。 The encryption processing apparatus according to the present invention can improve the processing speed of encryption / decryption while suppressing a decrease in encryption strength.
以下、図面に基づき本発明の実施の形態を説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.
図1は、本発明の実施の形態に係る暗号処理装置10の構成をブロック図で示している。暗号処理装置10は、原稿を読み取って対応する画像を記録紙上に形成して出力するコピー機能や、スキャナ機能、プリンタ機能、ファクシミリ機能などを備えたデジタル複合機などの画像形成装置に搭載されており、画像形成装置が各種動作を実行するときに画像データなどの暗号化/復号化を行う機能を備えている。
FIG. 1 is a block diagram showing the configuration of a
図1に示すように、暗号処理装置10は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、暗号化回路14と、復号化回路15と、並べ替え回路16とを備えている。
As shown in FIG. 1, the
CPU11は演算処理機能を備えると共に、暗号処理装置10全体の動作を統括制御する制御部(中央処理装置)として機能する。ROM12は、CPU11が実行するプログラムや各種固定データを記憶している。RAM13は、CPU11がプログラムを実行する際に各種データを一時的に格納するワークメモリや、暗号化処理を施す一連の暗号化対象データ(平文)および復号化処理を施す一連の復号化対象データ(暗号文)を格納するデータメモリとして機能する。
The
暗号化回路14は、RAM13に格納された暗号化対象データに対してAES規格に基づき128ビットのブロック長単位で暗号化処理を施す機能を備えている。復号化回路15は、RAM13に格納された復号化対象データに対してAES規格に基づき128ビットのブロック長単位で復号化処理を施す機能を備えている。また暗号化回路14および復号化回路15は、上記のブロック長単位で演算を行うデータブロック(単位データ)に加えて、後述するイニシャルベクタと暗号鍵もAES規格に基づいて128ビット単位で演算を行うように構成されている。
The
並べ替え回路16は、暗号化回路14が暗号化処理を行うときに、RAM13に格納されている暗号化対象データを複数のデータブロック(平文ブロック)からなるデータ群に分割すると共に、各データ群のデータブロックを飛び飛びの順番に並べ替えて暗号化回路14に入力する機能、および、暗号化回路14から暗号化されて出力されたデータブロック(暗号文ブロック)を元の順番に並べ戻し一連の暗号文としてRAM13に格納する機能を備えている。さらに、RAM13に格納する暗号文のヘッダーに、暗号化モード情報(パイプライン方式で暗号化されたことを示すパイプライン暗号化モード情報)や暗号化プロセスでのイニシャルベクタIVの使用タイミングを示すIV使用タイミング情報(各データ群の最初の位置を示す位置情報)などを付加する機能も備えている。
The
また並べ替え回路16は、復号化回路15が復号化処理を行うときに、RAM13に格納されている復号化対象データのデータブロック(暗号文ブロック)を先頭から並び順通りに復号化回路15に入力する機能、および、復号化回路15から復号化されて出力されたデータブロック(平文ブロック)を出力順に並べてRAM13に格納する機能を備えている。
Further, the
図2は、暗号化回路14の回路構成を示しており、図3は、復号化回路15の回路構成を示しており、図4は、暗号化回路14および復号化回路15が備えるパイプライン回路40のブロック図を示している。
2 shows a circuit configuration of the
図2に示すように、暗号化回路14は、パイプライン暗号化処理部としてのパイプライン暗号化演算部20と、XOR演算部21と、セレクタ22と、セレクタ制御回路23と、入力レジスタ24と、出力レジスタ25と、KEYレジスタ26と、IVレジスタ27とを備えている。
As shown in FIG. 2, the
パイプライン暗号化演算部20は、AES規格に基づいたパイプライン方式のブロック暗号演算を行う回路であり、連続して入力されるデータブロックの暗号演算を並列に実行して演算結果を連続出力する機能を備えている。
The pipeline
詳細には、暗号化回路14は図4に示すパイプライン回路40のように、直列に接続された11段のノンパイプライン回路41(暗号化演算部)を備えている。各ノンパイプライン回路41は、従来のノンパイプライン回路220と同様に(図13参照)、入力されたデータブロック(indata)に対して、置換(ステップS101)、並べ替え(ステップS102)、行列演算(ステップS103)、XOR演算(ステップS104)の4つの処理を1ラウンドで行い、この1ラウンドを1クロック(CLK)で処理するように構成されている。したがって、ノンパイプライン回路41を11段備えたパイプライン回路40は、入力されたデータブロックを1クロック目に初段P1のノンパイプライン回路41で演算処理し、2クロック目に2段目P2のノンパイプライン回路41で演算処理し、・・・、11クロック目に最終段である11段目P11のノンパイプライン回路41で演算処理し、12クロック目に演算結果である処理済みのデータブロック(outdata)を出力するようになっている。
More specifically, the
また、パイプライン回路40は、データブロックがクロック毎に連続的に入力されると、その連続入力されるデータブロックに対して、11段のノンパイプライン回路41で段数分の演算を並列に実行し、処理済みのデータブロックをクロック毎に連続出力する動作(パイプライン処理)を行うようになる。
In addition, when data blocks are continuously input for each clock, the
KEYレジスタ26(図2参照)は、暗号演算で用いる暗号鍵を保持するためのレジスタであり、KEYレジスタ26に保持された暗号鍵はパイプライン暗号化演算部20に入力される。IVレジスタ27は、パイプライン暗号化演算部20に入力するイニシャルベクタIVとなる任意のデータを保持するためのレジスタである。
The KEY register 26 (see FIG. 2) is a register for holding an encryption key used in the encryption operation, and the encryption key held in the
セレクタ制御回路23は、セレクタ22の動作を制御し、セレクタ22は、IVレジスタ27に保持されているイニシャルベクタIVとパイプライン暗号化演算部20の演算結果(暗号ベクタ)のいずれかをXOR演算部21に対して選択出力する機能を備えている。
The
入力レジスタ24は、並べ替え回路16によって入力される暗号化対象のデータブロック(平文ブロック)を保持するレジスタである。XOR演算部21は、入力レジスタ24の出力する暗号化対象のデータブロックとセレクタ22の出力するイニシャルベクタIVまたは暗号ベクタとの排他的論理和を演算する機能を備えている。出力レジスタ25は、パイプライン暗号化演算部20の演算結果として出力される暗号化されたデータブロック(暗号文ブロック)を保持するレジスタである。
The input register 24 is a register that holds an encryption target data block (plaintext block) input by the
図3に示すように、復号化回路15は、パイプライン復号化処理部としてのパイプライン復号化演算部30と、XOR演算部31と、セレクタ32と、セレクタ制御回路33と、入力レジスタ34と、出力レジスタ35と、KEYレジスタ36と、IVレジスタ37と、保持レジスタ38とを備えている。
As shown in FIG. 3, the
パイプライン復号化演算部30は、AES規格に基づいたパイプライン方式のブロック復号演算を行う回路であり、連続して入力されるデータブロックの復号演算を並列に実行して演算結果を連続出力する機能を備えている。このパイプライン復号化演算部30は、パイプライン暗号化演算部20で説明したパイプライン回路40と同じ構成であり、同様に動作する。
The pipeline
入力レジスタ34は、並べ替え回路16によって入力される復号化対象のデータブロック(暗号文ブロック)を保持するレジスタであり、入力レジスタ34に保持されたデータブロックはパイプライン復号化演算部30と保持レジスタ38に入力される。
The input register 34 is a register that holds a decryption target data block (ciphertext block) input by the
保持レジスタ38は、たとえばFIFO(First-In First-Out)などで構成されており、入力レジスタ34から入力されたデータブロックを内部に保持して入力順に出力する機能を備えている。また保持レジスタ38は、パイプライン復号化演算部30の段数よりも1段多くされており(12段FIFO)、パイプライン復号化演算部30からデータブロックの演算結果が出力されるタイミングで、そのデータブロックよりも1つ前のデータブロック(先に入力されたデータブロック)を出力するように構成されている。
The holding
KEYレジスタ36は、復号演算で用いる暗号鍵を保持するためのレジスタであり、KEYレジスタ36に保持された暗号鍵はパイプライン復号化演算部30に入力される。IVレジスタ37は、パイプライン復号化演算部30に入力するイニシャルベクタIVとなる任意のデータを保持するためのレジスタである。
The
セレクタ制御回路33は、セレクタ32の動作を制御し、セレクタ32は、IVレジスタ37に保持されているイニシャルベクタIVと保持レジスタ38から出力されたデータブロックのいずれかをXOR演算部31に対して選択出力する機能を備えている。
The
XOR演算部31は、パイプライン復号化演算部30の出力する演算結果とセレクタ32の出力するイニシャルベクタIVまたはデータブロックとの排他的論理和を演算する。出力レジスタ35はXOR演算部31の演算結果である復号化されたデータブロック(平文ブロック)を保持するレジスタである。
The
またCPU11は、暗号化回路14、復号化回路15、および並べ替え回路16の動作シーケンスを制御する機能を果たし、KEYレジスタ26、36およびIVレジスタ27、37へのデータのセットも行う。暗号化/復号化処理で使用するイニシャルベクタや暗号鍵などの各種データは、たとえば、図示しない補助記憶装置に格納しておき、暗号処理装置10の起動時にCPU11が補助記憶装置から読み出して各レジスタにセットするようになっている。
The
さらにCPU11は、暗号化処理を行うときは並べ替え回路16に、暗号化対象データの存在するメモリ領域の先頭アドレスを示す先頭アドレス情報、暗号化対象データのサイズを示すデータサイズ情報、暗号化対象データの分割数を示すデータ分割数情報を出力し、暗号化回路14のセレクタ制御回路23に、パイプライン暗号化演算部20の段数を示す段数情報を出力する。復号化処理を行うときは復号化回路15のセレクタ制御回路33に、復号化対象データの暗号化プロセスでのイニシャルベクタIVの使用タイミングを示すIV使用タイミング情報を出力する。
Furthermore, when performing the encryption process, the
IV使用タイミング情報については、暗号化対象データを分割して構成された各データ群の最初の位置(境界位置)が認識できる情報であればよく、たとえば、イニシャルベクタIVの使用周期を示す周期情報、各データ群を構成するデータブロックの数を示すデータブロック数情報や各データ群のデータサイズを示すデータサイズ情報、データ群を1ページ分の画像データとした場合にはその1ページ分のデータサイズ情報、復号化対象データのデータサイズとその分割数、各データ群の最初の位置を復号化対象データの先頭位置からのオフセット量で示すオフセット情報などを使用できる。 The IV use timing information may be any information that can recognize the initial position (boundary position) of each data group configured by dividing the data to be encrypted. For example, the cycle information indicating the use cycle of the initial vector IV. , Data block number information indicating the number of data blocks constituting each data group, data size information indicating the data size of each data group, and when the data group is image data for one page, data for one page The size information, the data size of the data to be decoded and the number of divisions thereof, offset information indicating the initial position of each data group by the offset amount from the head position of the data to be decoded, and the like can be used.
次に、暗号処理装置10による暗号化/復号化処理の動作を説明する。
Next, the operation of encryption / decryption processing by the
図5は、暗号処理装置10による暗号化処理の動作を示す動作説明図であり、図6は、暗号化処理における暗号化対象の平文ブロックの入力タイミングと暗号化された結果の暗号文ブロックの出力タイミングを示すタイミングチャートである。
FIG. 5 is an operation explanatory diagram showing the operation of the encryption processing by the
暗号処理装置10による暗号化処理では、並べ替え回路16は、CPU11から送られた先頭アドレス情報、データサイズ情報、データ分割数情報に基づいて演算を行い、RAM13に格納されている暗号化対象データをパイプライン暗号化演算部20の段数と同数に等分して(11等分)、各々サイズが等しい11個のデータ群を構成する。さらに、各データ群をAES規格に基づき128ビットのデータブロックに分割する。
In the encryption processing by the
図5の例では、説明を分かりやすくするために、RAM13の所定の領域(平文メモリ領域)に格納されている暗号化対象データである平文が11個のデータ群(データ群1〜11)に分割され、各データ群は100個の平文ブロック(データ群1:平文ブロック1〜100、データ群2:平文ブロック101〜200、データ群3:平文ブロック201〜300、・・・、データ群11:平文ブロック1001〜1100)で構成されているものとして説明する。
In the example of FIG. 5, in order to make the explanation easy to understand, plaintext, which is data to be encrypted, stored in a predetermined area (plaintext memory area) of the
このRAM13に格納されている暗号化対象データに対し、並べ替え回路16は、1〜1100まで連続配列されている平文ブロックを飛び飛びの順番に並べ替えて暗号化回路14に入力する。
With respect to the data to be encrypted stored in the
たとえば、図5および図6に示すように、データ群1の1番目の平文ブロック1、データ群2の1番目の平文ブロック101、データ群3の1番目の平文ブロック201、・・・、データ群11の1番目の平文ブロック1001、データ群1の2番目の平文ブロック2、データ群2の2番目の平文ブロック102、データ群3の2番目の平文ブロック202、・・・、データ群9の100番目の平文ブロック990、データ群10の100番目の平文ブロック1000、データ群11の100番目の平文ブロック1100というように、平文ブロック1から100番飛ばしの順番に並べ替えて、暗号化回路14に入力する。また、並べ替えた平文ブロックは11個で1つの組とし、その1組を1サイクルで処理する。
For example, as shown in FIG. 5 and FIG. 6, the
暗号化回路14の入力レジスタ24は、上記の順番に並べ替えられて入力される平文ブロックを保持し、保持した平文ブロックをその順番でXOR演算部21に順次出力する。
The input register 24 of the
一方、セレクタ制御回路23は、CPU11から送られたパイプライン暗号化演算部20の段数情報に基づいて演算を行い、イニシャルベクタIVの使用タイミングを決定する。
On the other hand, the
たとえば、図5の暗号化対象データ(平文)に対しては、1サイクル目のみイニシャルベクタIVをXOR演算部21に入力し、2サイクル目以降はパイプライン暗号化演算部20から出力される暗号文ブロックを暗号ベクタとしてXOR演算部21に入力するようセレクタ22の切り替え制御を行う。これにより、セレクタ22は、1サイクル目にはIVレジスタ27の保持しているイニシャルベクタIVをXOR演算部21に入力する(図6参照)。
For example, for the data to be encrypted (plaintext) in FIG. 5, the initial vector IV is input to the
XOR演算部21は、1サイクル目では入力レジスタ24から順次入力される1組目の平文ブロック1、平文ブロック101、平文ブロック201、・・・、平文ブロック1001と、IVレジスタ27からセレクタ22を介して入力されるイニシャルベクタIVとの排他的論理和演算を行い、各平文ブロックの演算結果をパイプライン暗号化演算部20に順次出力する。
In the first cycle, the
パイプライン暗号化演算部20は、XOR演算部21から順次入力される1組目の各平文ブロックの演算結果に対し、KEYレジスタ26に保持されている暗号鍵と、11段の暗号化演算部で段数分のAES規格に基づいた暗号演算を並列に実行し、その演算結果である暗号文ブロックを出力レジスタ25とセレクタ22へ順次出力する。
The pipeline
出力レジスタ25には、図5および図6に示すように、1組目の暗号文ブロック1'、暗号文ブロック101'、暗号文ブロック201'、・・・、暗号文ブロック1001'が順次保持され、並べ替え回路16は、出力レジスタ25に保持された暗号文ブロックを元の順番に並べ戻してRAM13の他の領域(暗号文メモリ領域)に格納する。詳細には、暗号文ブロック1'をデータ群1'の1番目に格納し、暗号文ブロック101'をデータ群2'の1番目に格納し、暗号文ブロック201'をデータ群3'の1番目に格納し、・・・、暗号文ブロック1001'をデータ群11'の1番目に格納する。
As shown in FIGS. 5 and 6, the output register 25 sequentially holds the first set of
また、パイプライン暗号化演算部20の段数が11段であることから、1サイクル目の最初(1クロック目)に入力された平文ブロック1を暗号化した暗号文ブロック1'は、1サイクル目の最後(11クロック目)に平文ブロック11がパイプライン暗号化演算部20に入力された後、2サイクル目の最初となる平文ブロック2がXOR演算部21に入力されるタイミング(12クロック目)でパイプライン暗号化演算部20から出力される。1サイクル目の2番目以降に入力された平文ブロック101、201、・・・、1001を暗号化した暗号文ブロック101'、201'、・・・、1001'も同様に、2サイクル目の2番目以降の平文ブロック102、202、・・・、1002がXOR演算部21に入力されるタイミング(13、14、・・・、22クロック目)でパイプライン暗号化演算部20から出力される。
Since the number of stages of the pipeline
セレクタ22は、2サイクル目にはパイプライン暗号化演算部20から出力される暗号文ブロック101'、201'、・・・、1001'を暗号ベクタとしてXOR演算部21に入力する(図6参照)。
In the second cycle, the
XOR演算部21は、2サイクル目では入力レジスタ24から順次入力される2組目の平文ブロック2、102、202、・・・、1002と、パイプライン暗号化演算部20からセレクタ22を介して入力される暗号ベクタとしての暗号文ブロック101'、201'、・・・、1001'との排他的論理和演算を行い、各平文ブロックの演算結果をパイプライン暗号化演算部20に順次出力する。
In the second cycle, the
このように、平文ブロックNと平文ブロックN+1とはパイプライン暗号化演算部20の段数だけ離れるタイミング規則でXOR演算部21に入力され、平文ブロックN+1は、平文ブロックNを暗号化した暗号文ブロックN'がパイプライン暗号化演算部20から出力されたタイミングでXOR演算部21に入力されて、暗号文ブロックN'とXOR演算部21への入力タイミングを合わせられるようになる。これにより、暗号文ブロックN'を暗号ベクタとして入力側にフィードバックさせて行う平文ブロックN+1の暗号化が実現される。
In this way, the plaintext block N and the plaintext block N + 1 are input to the
パイプライン暗号化演算部20は、1サイクル目と同様に、XOR演算部21から順次入力される2組目の各平文ブロックの演算結果に対し、KEYレジスタ26に保持されている暗号鍵と、11段の暗号化演算部で段数分のAES規格に基づいた暗号演算を並列に実行し、その演算結果である暗号文ブロックを出力レジスタ25とセレクタ22へ順次出力する。
Similar to the first cycle, the pipeline
出力レジスタ25には、図5および図6に示すように、2組目の暗号文ブロック2'、102'、202'、・・・、1002'が順次保持され、並べ替え回路16は、出力レジスタ25に保持された暗号文ブロックを元の順番に並べ戻してRAM13の他の領域に格納する。詳細には、暗号文ブロック2'をデータ群1'の2番目に格納し、暗号文ブロック102'をデータ群2'の2番目に格納し、暗号文ブロック202'をデータ群3'の2番目に格納し、・・・、暗号文ブロック1002'をデータ群11'の2番目に格納する。
As shown in FIGS. 5 and 6, the second set of
この2サイクル目と同様に3サイクル目以降も前の組の各暗号文ブロックを暗号ベクタとしてXOR演算部21に入力して次の組の各平文データの暗号化を行い、パイプライン暗号化演算部20から順次出力されて出力レジスタ25に保持された各暗号文ブロックを元の順番に並べ戻してRAM13に格納し、100サイクルで計1100個の平文ブロックの暗号化が完了する。これにより、RAM13には暗号文ブロック1'〜1100'が順番通りに連続配列され一連の暗号文として格納される。また、暗号文のヘッダーには、並べ替え回路16によって、パイプライン方式で暗号化されたことを示すパイプライン暗号化モード情報、および、暗号化プロセスでのイニシャルベクタIVの使用タイミングを示すIV使用タイミング情報(各データ群の最初の位置を示す位置情報)などが付加される。この暗号文の復号化では、ヘッダーに付加された情報に基づいて復号化モード(パイプライン/ノンパイプライン)の判別やイニシャルベクタIVの使用タイミングが決定される。
Similarly to the second cycle, the ciphertext blocks in the previous set are input to the
図7は、復号化処理における復号化対象の暗号文ブロックの入力タイミングと復号化された結果の平文ブロックの出力タイミングを示すタイミングチャートである。 FIG. 7 is a timing chart showing the input timing of the decrypted ciphertext block and the output timing of the decrypted plaintext block in the decryption process.
暗号処理装置10による復号化処理では、並べ替え回路16は、RAM13に格納されている復号化対象データの暗号文ブロックを先頭から並び順通りに復号化回路15に入力する。たとえば、図7に示すように、1番目の暗号文ブロック1'、2番目の暗号文ブロック2'、3番目の暗号文ブロック3'・・・というように、先頭から並び順通りに復号化回路15に入力する。
In the decryption processing by the
復号化回路15の入力レジスタ34は、上記の順番で入力される暗号文ブロックを保持し、保持した暗号文ブロックをその順番でパイプライン復号化演算部30と保持レジスタ38へ順次出力する。
The input register 34 of the
パイプライン復号化演算部30は、入力レジスタ34から順次入力される各暗号文ブロックに対し、KEYレジスタ36に保持されている暗号鍵と、11段の復号化演算部で段数分のAES規格に基づいた復号演算を並列に実行し、その演算結果のデータブロックをXOR演算部31に順次出力する。
For each ciphertext block sequentially input from the
また、パイプライン復号化演算部30の段数が11段であることから、最初に入力された暗号文ブロック1'(N')を復号演算した演算結果(平文ブロック1 XOR イニシャルベクタIV)は、暗号文ブロック11'がパイプライン復号化演算部30に入力された後、その次の暗号文ブロック12'(N'+11)がパイプライン復号化演算部30に入力されるタイミングでパイプライン復号化演算部30から出力される。この出力後は、2番目以降に入力された暗号文ブロック2'を復号演算した演算結果(平文ブロック2 XOR 暗文ブロック1')、暗号文ブロック3'を復号演算した演算結果(平文ブロック3 XOR 暗文ブロック2')・・・、が連続してパイプライン暗号化演算部20から出力される。
Since the number of stages of the pipeline
保持レジスタ38は、入力レジスタ34から入力された暗号文ブロックを内部に保持して入力順に出力すると共に、パイプライン復号化演算部30から暗号文ブロック(N'+1)の演算結果が出力されるタイミングで、その暗号文ブロックよりも1つ前の暗号文ブロック(N')を出力する。
The holding
一方、セレクタ制御回路33は、CPU11から送られた、復号化対象データの暗号化プロセスでのイニシャルベクタIVの使用タイミングを示すIV使用タイミング情報に基づいて、イニシャルベクタIVの使用タイミングを決定する。
On the other hand, the
たとえば、図5の例で暗号化された暗号データの場合は、1番目の暗号文ブロック1'、101番目の暗号文ブロック101'、201番目の暗号文ブロック201'、・・・、1001番目の暗号文ブロック1001'というように、暗号文ブロック1'から100番飛ばしでイニシャルベクタIVをXOR演算部31に入力し、その他の暗号文ブロックに対しては保持レジスタ38から出力される暗号文ブロックをXOR演算部31に入力するようセレクタ32の切り替え制御を行う。これにより、セレクタ32は、暗号文ブロック1'、101'、201'、・・・、1001'に対してのみ、IVレジスタ37の保持しているイニシャルベクタIVをXOR演算部31に入力し、その他の暗号文ブロックに対しては保持レジスタ38から出力される暗号文ブロックをXOR演算部31に入力する。
For example, in the case of the encrypted data encrypted in the example of FIG. 5, the
XOR演算部31は、パイプライン復号化演算部30から順次入力される暗号文ブロックの演算結果のうち、暗号文ブロック1'、101'、201'、・・・、1001'の演算結果に対しては、IVレジスタ37からセレクタ32を介して入力されるイニシャルベクタIVとの排他的論理和演算を行い、その他の暗号文ブロック(N'+1)の演算結果に対しては、保持レジスタ38から出力される暗号文ブロック(N')との排他的論理和演算を行い、各暗号文ブロックの演算結果である復号化した平文ブロックを出力レジスタ35に順次出力する。
The
出力レジスタ35には、復号化された平文ブロック1、2、3・・・が順次保持され、並べ替え回路16は、出力レジスタ35に保持された平文ブロックを出力順に並べてRAM13に格納する。これにより、RAM13には平文ブロック1〜1100が順番通りに連続配列されて格納される。
The decrypted
このように、本実施形態の暗号処理装置10では、暗号化処理において、パイプライン暗号化演算部20から出力される暗号文ブロックを入力に戻して次の平文ブロックの暗号化に使用していることにより、強度の高い暗号化プロセスとなり、暗号文ブロックを入力に戻して次の平文ブロックの暗号化を行わない暗号化プロセスに比べて、暗号化強度の低下を抑制できる。
As described above, in the
また、平文ブロックの暗号演算を行う暗号化回路14の暗号化演算部をパイプライン化したことで、そのパイプライン暗号化演算部20は、XOR演算部21から演算結果を連続して入力されても、その連続入力される演算結果に対し段数分の暗号演算を並列に実行してパイプライン処理し、暗号データを連続生成して出力できる。たとえば、図5で説明したように複数セットのデータ群で暗号化を行えば、単一のノンパイプラインの暗号化演算部を使用して1つの平文ブロックの暗号演算を所定回数繰り返すような暗号化プロセスに比べ、暗号化の処理速度を向上することができる。
In addition, since the encryption operation unit of the
また、特に本実施形態では、一連の暗号化対象データをパイプライン暗号化演算部20の段数と同数に等分して11個のデータ群を構成し、各データ群をAES規格に基づくブロックデータずつに分割して各データ群の各ブロックデータの暗号演算をパイプライン暗号化演算部20により並列に実行して暗号化していることで(パイプライン処理)、たとえば、一連の暗号化対象データを段数未満に分割した場合のように、パイプライン暗号化演算部20で暗号演算の行われない段が発生して処理効率が低下したり、一連のデータをパイプライン暗号化演算部20の段数より多く分割した場合のように、イニシャルベクタIVの使用回数が増えて暗号化強度が低下したりするようなことを抑制できる。
In particular, in the present embodiment, a series of data to be encrypted is equally divided into the same number as the number of stages of the pipeline
一連の暗号化対象データを分割して構成するデータ群の数をパイプライン暗号化演算部20の段数以上にすれば、隙間を空けることなく平文ブロックをパイプライン暗号化演算部20に連続的に入力してパイプライン処理を繰り返し行うことができるため、処理効率は良くなる。一方、データ群の数が少ないほど、イニシャルベクタIVの使用回数を少なくすることができて暗号化強度の低下は抑制できる。したがって、イニシャルベクタIVの使用回数を最小にして高い暗号化強度を保ちつつ、効率の良いパイプライン処理を行うためには、本実施形態のように、データ群の数をパイプライン暗号化演算部20の段数と等しくすることが最も好ましく、この条件によって最適化処理が実現される。
If the number of data groups formed by dividing a series of data to be encrypted is equal to or greater than the number of stages of the pipeline
さらに、各データ群の1番目のブロックデータを連続的に暗号化する1サイクル目だけにイニシャルベクタIVを使用し、各データ群の2番目以降のブロックデータを連続的に暗号化する2サイクル目以降には暗号データを使用して暗号化を行えばよいため、イニシャルベクタIVと暗号データの切り替えの管理も簡単になる。 Further, the initial vector IV is used only in the first cycle for continuously encrypting the first block data of each data group, and the second cycle for continuously encrypting the second and subsequent block data of each data group. Thereafter, since it is sufficient to perform encryption using encrypted data, the management of switching between the initial vector IV and the encrypted data is also simplified.
また復号化回路15では、暗号文ブロックの復号演算を行う復号化演算部をパイプライン化したことで、復号化処理ではそのパイプライン復号化演算部30に暗号文ブロックを連続的に入力して段数分の復号演算を並列に実行しパイプライン処理することができる。これにより、単一のノンパイプラインの復号化演算部を使用して1つの暗号文ブロックの復号演算を所定回数繰り返すような復号化処理に比べ、復号化の処理速度を向上することができる。
In the
また復号化プロセスでは、イニシャルベクタIVの使用タイミングを暗号化プロセスに合わせることで、パイプラインおよびノンパイプラインのいずれの暗号化演算部により暗号化された暗号文ブロックであっても復号化が可能となり、汎用のCBCモードにおける暗号化プロセスと互換性を保つことができる。 Also, in the decryption process, by matching the use timing of the initial vector IV with the encryption process, it is possible to decrypt any ciphertext block encrypted by either the pipeline or non-pipeline encryption operation unit. Thus, compatibility with the encryption process in the general-purpose CBC mode can be maintained.
なお、複合機では、スキャンした画像データをプリントする際はパイプライン回路で暗号化し、パイプライン回路で復号化するのが適しており、スキャンした画像データをネットワーク送信などする場合は、パイプライン回路で暗号化し、ノンパイプライン回路で復号化するのが適している。また、FAX受信したデータをプリントなどする場合は、ノンパイプライン回路で暗号化し、パイプライン回路で復号化するのが適している。 Note that when printing scanned image data in a multi-function peripheral, it is suitable to encrypt with a pipeline circuit and decrypt with a pipeline circuit. When scanning scanned image data over a network, the pipeline circuit It is suitable to encrypt with the non-pipeline circuit. In addition, when printing data received by FAX, it is suitable to encrypt with a non-pipeline circuit and decrypt with a pipeline circuit.
以上、本発明の実施の形態を図面によって説明してきたが、具体的な構成は実施の形態に示したものに限られるものではなく、本発明の要旨を逸脱しない範囲における変更や追加があっても本発明に含まれる。 The embodiment of the present invention has been described with reference to the drawings. However, the specific configuration is not limited to that shown in the embodiment, and there are changes and additions within the scope of the present invention. Are also included in the present invention.
たとえば、実施の形態における暗号化処理では、平文ブロックNとこれに後続する平文ブロックN+1とをパイプライン暗号化演算部20の段数分だけ離れるタイミング規則でXOR演算部21に入力するようにしているが、パイプライン暗号化演算部20の段数よりも離れるタイミング規則でXOR演算部21に入力するようにしてもよい。その場合は、平文ブロックNを暗号化した暗号文ブロックN'のXOR演算部21への入力タイミングを遅らせる回路などを設けることにより、暗号文ブロックN'と平文ブロックN+1とのXOR演算部21への入力タイミングが合わせられる。
For example, in the encryption process in the embodiment, the plaintext block N and the subsequent plaintext block N + 1 are input to the
また、暗号化の対象となるデータ全体をパイプライン暗号化演算部20の段数と同数に等分して、暗号演算のパイプライン処理を行っているが、パイプライン暗号化演算部20の段数よりも大きい数に分割して暗号演算のパイプライン処理を行うことも可能である。パイプライン回路を使用した暗号化処理で最も処理効率が良いのは、暗号化対象データを分割して構成するデータ群の数=パイプライン暗号化演算部20の段数であるが、データ群の数がパイプライン暗号化演算部20の段数と異なっていても、たとえば2サイクル目以降はイニシャルベクタIVおよび暗号文ブロックの入力タイミングをずらすことでパイプライン処理が可能である。
In addition, the entire data to be encrypted is equally divided into the number of stages of the pipeline
また、実施の形態のようなデジタル複合機などの画像形成装置においては、暗号化対象のデータ群を1ページ分の画像のデータとし、その1ページ分の画像データを所定ブロック長の平文ブロックずつに分割して各ページの各平文ブロックの暗号演算をパイプライン暗号化演算部20により並列に実行して暗号化するようにしてもよい。これにより、暗号化ではページ毎(データ群毎)に、1番目の平文ブロックの暗号演算にはイニシャルベクタIVを使用し、2番目以降の平文ブロックの暗号演算には前の暗号文ブロックを使用できるようになり、この暗号データを復号化する場合は、ページ単位に暗号化されているとして扱えば、各ページの1番目の暗号文ブロックの復号化にはイニシャルベクタIVを使用し、2番目以降の暗号文ブロックの復号化には前の暗号文ブロックを使用することで復号化が可能となり、IV使用タイミング情報に基づく切り替え制御を行わない装置でも復号化できるようになる。
Further, in an image forming apparatus such as a digital multi-function peripheral as in the embodiment, a data group to be encrypted is used as image data for one page, and the image data for one page is each plaintext block having a predetermined block length. In other words, the encryption operation of each plaintext block of each page may be executed in parallel by the pipeline
10…暗号処理装置
11…CPU
12…ROM
13…RAM
14…暗号化回路
15…復号化回路
16…並べ替え回路
20…パイプライン暗号化演算部
21…XOR演算部
22…セレクタ
23…セレクタ制御回路
24…入力レジスタ
25…出力レジスタ
26…KEYレジスタ
27…IVレジスタ
30…パイプライン復号化演算部
31…XOR演算部
32…セレクタ
33…セレクタ制御回路
34…入力レジスタ
35…出力レジスタ
36…KEYレジスタ
37…IVレジスタ
38…保持レジスタ
40…パイプライン回路
41…ノンパイプライン回路
10:
12 ... ROM
13 ... RAM
DESCRIPTION OF
Claims (11)
入力される単位データと前記パイプライン暗号化処理部から出力された暗号データとを演算し、その演算結果を前記パイプライン暗号化処理部に入力する演算部と、
暗号化対象のデータ群を前記単位データずつに分割し、かつ一の単位データとこれに後続する単位データとを前記パイプライン暗号化処理部の前記パイプライン構造の段数分以上離れるタイミング規則で前記演算部に入力する制御部と、
を備える
ことを特徴とする暗号処理装置。 A pipeline encryption processing unit in which a plurality of encryption processing units are connected in a pipeline structure;
An arithmetic unit that calculates the unit data to be input and the encrypted data output from the pipeline encryption processing unit, and inputs the operation result to the pipeline encryption processing unit;
The data group to be encrypted is divided into unit data, and one unit data and subsequent unit data are separated by at least the number of stages of the pipeline structure of the pipeline encryption processing unit according to the timing rule. A control unit that inputs to the computation unit;
A cryptographic processing apparatus comprising:
前記データ群に対する1回目の暗号化が行われるときは前記暗号データに代えて前記保持レジスタに保持されている初期ベクタを前記演算部に入力する切替部と、
をさらに備える
ことを特徴とする請求項1に記載の暗号処理装置。 A holding register to hold the initial vector;
When the first encryption for the data group is performed, a switching unit that inputs an initial vector held in the holding register instead of the encrypted data to the arithmetic unit;
The cryptographic processing apparatus according to claim 1, further comprising:
ことを特徴とする請求項1または2に記載の暗号処理装置。 The control unit inputs the subsequent unit data to the arithmetic unit at a timing when the encrypted data of the one unit data is returned to the arithmetic unit via the pipeline encryption processing unit. 3. The cryptographic processing apparatus according to 1 or 2.
ことを特徴とする請求項1乃至請求項3のいずれか1項に記載の暗号処理装置。 The control unit sequentially arranges the encrypted data of the one unit data and the encrypted data of the subsequent unit data that are output separately from the pipeline encryption processing unit according to the timing rule. The cryptographic processing apparatus according to any one of claims 1 to 3.
ことを特徴とする請求項1乃至請求項4のいずれか1項に記載の暗号処理装置。 The control unit performs an operation of sequentially inputting unit data divided from one data group to the arithmetic unit according to the timing rule, and a timing for inputting the unit data to the arithmetic unit for a plurality of data groups. The encryption processing apparatus according to claim 1, wherein the encryption processing apparatuses are performed in parallel with different data groups.
ことを特徴とする請求項1乃至請求項5のいずれか1項に記載の暗号処理装置。 The encryption processing apparatus according to claim 1, wherein the data group is image data for one page.
ことを特徴とする請求項1乃至請求項5のいずれか1項に記載の暗号処理装置。 The cryptographic processing apparatus according to any one of claims 1 to 5, wherein the data group is configured by dividing a series of data into a plurality of pieces.
ことを特徴とする請求項1乃至請求項5のいずれか1項に記載の暗号処理装置。 6. The data group according to claim 1, wherein the data group is configured by equally dividing a series of data into the same number of stages of the pipeline structure of the pipeline encryption processing unit. The cryptographic processing device according to 1.
初期ベクタを保持する第1保持部と、
前記パイプライン復号化処理部に入力される暗号データと同一の暗号データを保持すると共に、前記パイプライン復号化処理部から前記暗号データの次の暗号データに対する演算結果が出力されるタイミングで前記保持している暗号データを出力する第2保持部と、
初期ベクタの使用タイミングを示すタイミング情報が入力され、そのタイミング情報に基づいて前記第1保持部に保持されている初期ベクタまたは前記第2保持部から出力される暗号データに出力を切り替える切替部と、
前記パイプライン復号化処理部から出力される演算結果と、前記切替部から出力される初期ベクタまたは暗号データとを演算する演算部と、
を備える
ことを特徴とする暗号処理装置。 A pipeline decoding processing unit in which a plurality of decoding processing units are connected in a pipeline structure;
A first holding unit for holding an initial vector;
The same encrypted data as the encrypted data input to the pipeline decryption processing unit is retained, and the retention is performed at a timing when an operation result for the encrypted data next to the encrypted data is output from the pipeline decryption processing unit. A second holding unit for outputting the encrypted data
A switching unit that receives timing information indicating the use timing of the initial vector, and switches the output to the initial vector held in the first holding unit or the encrypted data output from the second holding unit based on the timing information; ,
A calculation unit that calculates a calculation result output from the pipeline decryption processing unit and an initial vector or encrypted data output from the switching unit;
A cryptographic processing apparatus comprising:
前記切替部は前記周期情報に基づいて、前記第1保持部に保持されている初期ベクタを1回目に出力した後、前記第2保持部から出力される暗号データに出力を切り替える動作を所定の周期で繰り返し行う
ことを特徴とする請求項9に記載の暗号処理装置。 The timing information includes period information indicating a use period of the initial vector,
The switching unit outputs an initial vector held in the first holding unit for the first time based on the cycle information, and then performs an operation of switching output to encrypted data output from the second holding unit. The encryption processing apparatus according to claim 9, wherein the encryption processing apparatus is repeatedly performed in a cycle.
ことを特徴とする請求項10に記載の暗号処理装置。 The number of times that the operation result is output from the pipeline decryption processing unit in the one cycle is the number of data groups to be encrypted in the cryptographic processing device according to any one of claims 1 to 8. The encryption processing apparatus according to claim 10, wherein the number of unit data is configured.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007035953A JP2008203306A (en) | 2007-02-16 | 2007-02-16 | Encryption processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007035953A JP2008203306A (en) | 2007-02-16 | 2007-02-16 | Encryption processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008203306A true JP2008203306A (en) | 2008-09-04 |
Family
ID=39780928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007035953A Withdrawn JP2008203306A (en) | 2007-02-16 | 2007-02-16 | Encryption processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008203306A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009109988A (en) * | 2007-10-10 | 2009-05-21 | Canon Inc | Encryption processing circuit |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
-
2007
- 2007-02-16 JP JP2007035953A patent/JP2008203306A/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009109988A (en) * | 2007-10-10 | 2009-05-21 | Canon Inc | Encryption processing circuit |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101068367B1 (en) | Method and apparatus for optimizing advanced encryption standard aes encryption and decryption in parallel modes of operation | |
EP2356771B1 (en) | Low latency block cipher | |
US7639797B2 (en) | Apparatus and method of performing AES Rijndael algorithm | |
US11546135B2 (en) | Key sequence generation for cryptographic operations | |
JP2010140026A (en) | Method and device for encryption chained mode | |
US9288040B2 (en) | Encryption device | |
US8594321B2 (en) | Apparatus and method for operating a symmetric cipher engine in cipher-block chaining mode | |
JP2008058826A (en) | Encryption processor, encryption processing method, and computer program | |
WO2015179184A1 (en) | Technologies for modifying a first cryptographic cipher with operations of a second cryptographic cipher | |
JP2007114404A (en) | Data processing device and method | |
JP3824121B2 (en) | Method and apparatus for decrypting encrypted data | |
CN114390317B (en) | Encryption method and system for streaming video | |
JP2009088641A (en) | Transmission reception method, communication system and transmitter | |
US20030235298A1 (en) | Shifting an encryption key in either a first or second direction via a uni-directional shifting unit | |
JP2008203306A (en) | Encryption processor | |
JP2008252349A (en) | Communication method and communication system | |
JP4466641B2 (en) | Cryptographic processing device | |
JP6167721B2 (en) | ENCRYPTION DEVICE, DECRYPTION DEVICE, ENCRYPTION METHOD, DECRYPTION METHOD, AND PROGRAM | |
Fronte et al. | Celator: A multi-algorithm cryptographic co-processor | |
KR100710455B1 (en) | Apparatus for rijndael block cipher and encryption/decryption method thereof | |
EP1629626B1 (en) | Method and apparatus for a low memory hardware implementation of the key expansion function | |
JP2001177518A (en) | Enciphering method, and decoding method and device | |
JP4287397B2 (en) | Ciphertext generation apparatus, ciphertext decryption apparatus, ciphertext generation program, and ciphertext decryption program | |
JP2009069686A (en) | Encryption circuit and decryption circuit | |
Beuchat et al. | A low-area unified hardware architecture for the AES and the cryptographic hash function ECHO |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100511 |