JP2003143120A - Data randomizing circuit and method - Google Patents

Data randomizing circuit and method

Info

Publication number
JP2003143120A
JP2003143120A JP2001341655A JP2001341655A JP2003143120A JP 2003143120 A JP2003143120 A JP 2003143120A JP 2001341655 A JP2001341655 A JP 2001341655A JP 2001341655 A JP2001341655 A JP 2001341655A JP 2003143120 A JP2003143120 A JP 2003143120A
Authority
JP
Japan
Prior art keywords
data
conversion
transposition
byte
substituting
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
Application number
JP2001341655A
Other languages
Japanese (ja)
Inventor
Koichi Morioka
幸一 森岡
Shuji Ishihara
秀志 石原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2001341655A priority Critical patent/JP2003143120A/en
Publication of JP2003143120A publication Critical patent/JP2003143120A/en
Withdrawn legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a data randomizing circuit where a processing cycle required only for transposition is not required when randomizing data by transposition and substitution. SOLUTION: The circuit for randomizing the data by transposition conversion and substitution conversion is provided with a data division means for dividing the data, a partial data substitution means for substitute-converting the data, a data combining means for combining the data, and a buffer memory for keeping data temporarily.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、転置変換と換字変
換によりデータを攪拌する回路と方法に関する。特に、
転置変換のみに要する処理サイクルが不要なデータ攪拌
回路と方法に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a circuit and method for agitating data by transposition conversion and transposition conversion. In particular,
The present invention relates to a data mixing circuit and method that does not require a processing cycle required only for transposition conversion.

【0002】[0002]

【従来の技術】0と1の2値信号で表現されるデジタル
データを攪拌する目的の1つとしてデータの暗号化が挙
げられる。現在の米国標準暗号であるDES(Data
Encryption Standards and
Technology)に代わる次期米国標準暗号A
ES(Advanced Encryption St
andard)の最終候補であるRijndael暗号
はデータ長が16バイト単位のブロック暗号であり、そ
の循環変換には、4×4のバイトマトリクス表現された
16バイトデータを行単位でバイトローテーションを行
う転置変換と、列単位での換字変換が含まれる。
2. Description of the Related Art One of the purposes for mixing digital data represented by binary signals of 0 and 1 is data encryption. DES (Data) which is the current American standard encryption
Encryption Standards and
Technology) Next American standard encryption A
ES (Advanced Encryption St)
The Rijndael cipher, which is the final candidate of the (andard), is a block cipher with a data length of 16 bytes, and the cyclic conversion is a transposition conversion in which 16-byte data represented by a 4 × 4 byte matrix is byte-rotated in units of rows. , And substituting conversion on a column-by-column basis.

【0003】米国の国立標準技術研究所NIST(Na
tional Instituteof Standa
rd)は、AESの連邦情報処理規格FIPS(Fed
eral Information Processi
ng Standard)の草稿「AES Propo
sal:Rijndael」を公表し、そこにRijn
daelの処理内容を開示しており、以下処理内容の概
要を説明する。
National Institute of Standards and Technology NIST (Na
regional Institute of Standard
rd) is the AES Federal Information Processing Standard FIPS (Fed).
eral Information Processi
ng Standard) draft "AES Propo
sal: Rijndael ", and Rijn there
The processing contents of dael are disclosed, and an outline of the processing contents will be described below.

【0004】図7にRijndael暗号の構成を示
す。図7に示すようにRijndael暗号は入力され
たデータの前処理を行う前処理手段と、循環変換となる
複数のデータ攪拌処理手段と、出力するデータの後処理
を行う後処理手段から構成される。
FIG. 7 shows the configuration of the Rijndael encryption. As shown in FIG. 7, the Rijndael cipher is composed of a pre-processing unit for pre-processing input data, a plurality of data agitation processing units for cyclic conversion, and a post-processing unit for post-processing data to be output. .

【0005】図8に循環変換となるデータ攪拌処理手段
を単一にした構成を示す。図7と異なるのは、複数のデ
ータ攪拌処理手段を備える代わりにデータ攪拌処理手段
へ入力するデータを切り替えるセレクタを備えることで
単一のデータ攪拌処理手段を再帰的に用いる点である。
FIG. 8 shows a configuration in which the data agitation processing means for cyclic conversion is united. What is different from FIG. 7 is that a single data agitation processing means is recursively used by providing a selector for switching data to be input to the data agitation processing means instead of providing a plurality of data agitation processing means.

【0006】また、図7、図8に示すデータ攪拌処理手
段は、データの転置変換を行うデータ転置手段と、デー
タの換字変換を行うデータ換字手段とから構成される。
The data agitation processing means shown in FIGS. 7 and 8 comprises a data transposing means for transposing data and a data substituting means for substituting data.

【0007】これより、図8〜図10を用いて16バイ
トの平文{p0、p1、・・・、p15}を暗号文{c
0、c1、・・・、c15}に変換する処理を説明す
る。まず、16バイトの平文{p0、p1、・・・、p
15}は、前処理手段により暗号鍵との排他的論理和演
算された後、セレクタを介してデータ攪拌処理手段へ入
力される。
From this, a 16-byte plaintext {p0, p1, ..., P15} is converted into a ciphertext {c by using FIGS.
Processing for converting into 0, c1, ..., C15} will be described. First, 16-byte plaintext {p0, p1, ..., p
15} is subjected to an exclusive OR operation with the encryption key by the preprocessing means, and then input to the data agitation processing means via the selector.

【0008】これより、データ攪拌処理手段の説明を行
う。データ攪拌処理手段へ入力された16バイトデータ
は、まずデータ転置手段でデータの転置変換が行われ
る。データの転置変換が行われた後、続いてデータ換字
手段でデータの換字変換が行われる。データ転置手段と
データ換字手段について図9を用いて説明する。
The data agitation processing means will be described below. The 16-byte data input to the data agitation processing means is first transposed and converted by the data transposing means. After the transposition conversion of the data is performed, the data substitution conversion is subsequently performed by the data substitution unit. The data transposing means and the data replacing means will be described with reference to FIG.

【0009】図9のx0、x1、・・・、x15はそれ
ぞれ1バイト、計16バイトのデータであり、4×4の
バイトマトリクスで表現される。16バイトデータ{x
0、x1、・・・、x15}がデータ転置手段に入力さ
れ転置変換された後、続けてデータ換字手段に入力され
換字変換される様子を図9に示す。
In FIG. 9, x0, x1, ..., X15 are data of 1 byte each, that is, 16 bytes in total, and are represented by a 4 × 4 byte matrix. 16-byte data {x
FIG. 9 shows how 0, x1, ..., X15} are input to the data transposing means to be transposed and then input to the data transposing means to be transposed.

【0010】図9に示すように4×4バイトマトリクス
形状をとる16バイト入力データ{x0、x1、・・
・、x15}は、行0={x0、x4、x8、x1
2}、・・・、行3{x3、x7、x11、x15}の
ように各行ごとに分割後、データ転置手段で転置変換さ
れ、行0={x0、x4、x8、x12}、・・・、行
3{x15、x3、x7、x11}と転置される。デー
タ転置手段で転置変換されたデータは元の4×4バイト
マトリクス形状をとる16バイトデータ{x0、x5、
x10、x15、x4、x9、x14、x3、x8、x
13、x2、x7、x12、x1、x6、x11}とし
てデータ換字手段へ出力される。このようにデータ転置
手段は、行単位にデータのローテーションを行うので、
所望のシフト後のデータをラッチするレジスタで構成さ
れる。
As shown in FIG. 9, 16-byte input data having a 4 × 4 byte matrix shape {x0, x1, ...
,, x15} is line 0 = {x0, x4, x8, x1
2}, ..., Row 3 {x3, x7, x11, x15} is divided for each row and transposed by the data transposing means, and row 0 = {x0, x4, x8, x12}, ... Transposed as row 3 {x15, x3, x7, x11}. The data transposed by the data transposing means is 16-byte data having the original 4 × 4 byte matrix shape {x0, x5,
x10, x15, x4, x9, x14, x3, x8, x
13, x2, x7, x12, x1, x6, x11} are output to the data substitution unit. In this way, the data transposing means performs data rotation on a row-by-row basis,
It is composed of a register that latches the data after the desired shift.

【0011】転置変換された4×4バイトマトリクス形
状の16バイトデータ{x0、x5、x10、x15、
x4、x9、x14、x3、x8、x13、x2、x
7、x12、x1、x6、x11}は、列0={x0、
x5、x10、x15}、列1{x4、x9、x14、
x3}、列2{x8、x13、x2、x7}、列3{x
12、x1、x6、x11}のように各列ごとに分割
後、データ換字手段で換字変換される。
16-byte data in the form of a transposed 4 × 4-byte matrix {x0, x5, x10, x15,
x4, x9, x14, x3, x8, x13, x2, x
7, x12, x1, x6, x11} are in column 0 = {x0,
x5, x10, x15}, column 1 {x4, x9, x14,
x3}, column 2 {x8, x13, x2, x7}, column 3 {x
12, x1, x6, x11}, and the characters are converted by the data converting means after being divided for each column.

【0012】つまり4組の4バイトデータがデータ換字
手段で4組の4バイトデータ、列0={y0、y1、y
2、y3}、列1={y4、y5、y6、y7}、列2
={y8、y9、y10、y11}、列3={y12、
y13、y14、y15}へ換字変換される。データ換
字手段で換字変換されたデータは元の4×4バイトマト
リクス形状をとる16バイトデータ{y0、y1、・・
・、y15}として出力される。このようにデータ換字
手段は、4バイト単位の換字を4組行うため、部分デー
タ換字手段を4組用いて構成される。
That is, four sets of 4-byte data are converted into four sets of 4-byte data by the data converting means, column 0 = {y0, y1, y.
2, y3}, column 1 = {y4, y5, y6, y7}, column 2
= {Y8, y9, y10, y11}, column 3 = {y12,
The characters are converted into y13, y14, y15}. The data converted by the data conversion means is 16-byte data having the original 4 × 4 byte matrix shape {y0, y1, ...
,, y15} is output. As described above, since the data substituting means performs four sets of substituting in units of 4 bytes, it is configured by using four sets of partial data substituting means.

【0013】図10に部分データ換字手段の構成を示
す。部分データ換字手段は、置換テーブルに基づきバイ
ト(8ビット)データの置換を行う置換手段4個と、4
バイトデータの多項式乗算を行う多項式乗算回路とから
構成される。
FIG. 10 shows the structure of the partial data substituting means. The partial data substituting means includes four substituting means for substituting byte (8 bit) data based on the substitution table, and four substituting means.
And a polynomial multiplication circuit for performing polynomial multiplication of byte data.

【0014】部分データ換字手段に入力された4バイト
データは、置換手段によりバイト単位で置換された後、
多項式乗算回路で演算され出力される。この場合、デー
タ攪拌処理手段を1回実行するのに必要な処理時間は、
データ転置手段で必要な1サイクルと、データ換字手段
で必要な1サイクルとの合計2サイクルである。
The 4-byte data input to the partial data substituting means is replaced in byte units by the substituting means,
It is calculated by the polynomial multiplication circuit and output. In this case, the processing time required to execute the data agitation processing means once is
There are two cycles in total, one cycle required by the data transposing means and one cycle required by the data transposing means.

【0015】以上に述べたデータ攪拌処理手段に再帰的
にデータを入力することで循環変数を実現している。規
定回数、データ攪拌処理手段を循環すると、最終的にデ
ータ攪拌処理手段の出力は、後処理手段により暗号鍵と
の排他的論理和演算された後、暗号文{c0、c1、・
・・、c15}として出力される。
Circulating variables are realized by recursively inputting data into the data agitation processing means described above. When the data agitation processing means is circulated a prescribed number of times, the output of the data agitation processing means is finally subjected to exclusive OR operation with the encryption key by the post-processing means, and then the ciphertext {c0, c1, ...
.., c15} is output.

【0016】また、回路規模に制限がある場合について
これより説明する。図10に示すように列単位で換字す
る部分データ換字手段は、ハードウェア実装する上で回
路が大きくなる置換テーブルを4個用いて構成されてい
る。そのため、列単位での換字変換を行う部分データ換
字手段を列数分だけ並列に用意するのではなく、1つの
部分データ換字手段を各列に対して順番に使用し実装す
る部分データ換字手段を1つにすることで、回路規模を
削減する。このようにして回路規模を削減した構成を図
11に示す。
The case where the circuit scale is limited will be described below. As shown in FIG. 10, the partial data substituting means for substituting characters for each column is configured by using four substitution tables that make the circuit large in terms of hardware implementation. Therefore, instead of preparing partial data substituting means for performing substituting conversion for each column in parallel for the number of columns, one partial data substituting means is sequentially used for each column to implement the partial data substituting means. By using one, the circuit scale is reduced. FIG. 11 shows a configuration in which the circuit scale is reduced in this way.

【0017】この場合、転置変換と換字変換を行うデー
タ列の方向が異なる為、転置変換処理後のデータを一旦
格納しておく必要がある。また、図8で示した構成と異
なり、データ攪拌処理手段を1回実行するのに必要な処
理時間は、データ転置手段で必要な1サイクルと、4列
に対して部分データ換字手段を実行するのに必要な4サ
イクルとの合計5サイクル必要である。
In this case, since the directions of the data strings for the transposition conversion and the character conversion are different, it is necessary to temporarily store the data after the transposition conversion processing. Further, unlike the configuration shown in FIG. 8, the processing time required to execute the data agitation processing means once is one cycle required by the data transposing means and the partial data substitution means for four columns. A total of 5 cycles are required, including the 4 cycles required for

【0018】[0018]

【発明が解決しようとする課題】データ攪拌処理手段に
部分データ換字手段を4組持つ場合と、1組持つ場合の
いずれの場合においても転置変換と換字変換を実施する
データの行列の方向が異なるため、データの換字変換前
に転置変換を実施し、転置変換後のデータを確定してお
く必要がある。そのため転置変換後のデータを一旦格納
しなければならない。つまり、データ攪拌処理手段を1
回実行するのに必要な処理時間として、換字変換を実施
するのに必要な処理時間に加えて、データ転置変換を実
施するのに必要な処理時間として1サイクル余分に必要
となる。
In either case of having four sets of partial data substituting means in the data agitation processing means and in the case of having one set, the direction of the matrix of data for performing transposition conversion and substitution conversion is different. Therefore, it is necessary to perform transposition conversion before substituting the data and determine the data after the transposition conversion. Therefore, the transposed data must be stored once. That is, the data agitation processing means 1
In addition to the processing time required to carry out the substituting conversion, the processing time required to execute the times is one cycle extra as the processing time required to carry out the data transposition conversion.

【0019】[0019]

【課題を解決するための手段】上記課題を解決するため
に、本発明のデータ攪拌回路は、転置変換と換字変換に
よりデータを攪拌する回路であって、データを振り分け
るデータ分割手段と、前記データ分割手段により抽出し
た部分データを換字変換する部分データ換字手段と、デ
ータを結合するデータ結合手段と、攪拌するデータの中
間状態を一時的に格納するバッファメモリと、を備える
ことを特徴とする。
In order to solve the above problems, a data shuffling circuit of the present invention is a circuit for shuffling data by transposition conversion and substitution conversion, and a data dividing means for allocating the data and the data. It is characterized by comprising partial data substituting means for substituting the partial data extracted by the dividing means, data joining means for joining the data, and a buffer memory for temporarily storing an intermediate state of the agitated data.

【0020】[0020]

【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings.

【0021】(実施の形態)図1に本発明のデータ攪拌
回路の構成を示す。図1において、100は入力される
データの前処理を行う前処理手段で、101はデータの
攪拌処理を行うデータ攪拌処理手段、103はデータ攪
拌処理手段101への入力を切り替えるセレクタ、そし
て104は出力するデータの後処理を行う後処理手段で
ある。また120は4×4バイトマトリクス形状の入力
データであり、121は4×4バイトマトリクス形状の
出力データである。
(Embodiment) FIG. 1 shows the configuration of a data agitation circuit of the present invention. In FIG. 1, 100 is a pre-processing unit for pre-processing input data, 101 is a data agitation processing unit for performing a data agitation process, 103 is a selector for switching the input to the data agitation processing unit 101, and 104 is a The post-processing means performs post-processing of output data. Further, 120 is input data having a 4 × 4 byte matrix shape, and 121 is output data having a 4 × 4 byte matrix shape.

【0022】ここでデータ攪拌処理手段101は、デー
タ分割手段110、部分データ換字手段111、データ
結合手段112、そしてバッファメモリ102から構成
される。データ分割手段110は、入力された16バイ
トデータを部分データ換字手段111へ出力する4バイ
トデータとデータ結合手段112へ出力する12バイト
データとに振り分け、部分データ換字手段111は、入
力された4バイトデータの換字変換を行い、データ結合
手段112は、部分データ換字手段111で換字変換さ
れた4バイトデータとデータ分割手段110により振り
分けられた12バイトデータとを結合し、4×4バイト
マトリクス形状をとる16バイトデータを出力する。デ
ータ結合手段112からの16バイト出力データはバッ
ファメモリ102で保持され、データ攪拌処理手段10
1の外部へ出力される。
Here, the data agitation processing means 101 comprises a data dividing means 110, a partial data substituting means 111, a data combining means 112, and a buffer memory 102. The data dividing unit 110 sorts the input 16-byte data into 4-byte data that is output to the partial data substituting unit 111 and 12-byte data that is output to the data combining unit 112, and the partial data substituting unit 111 outputs the input 4 bytes data. The byte data is converted into characters, and the data combination unit 112 combines the 4-byte data converted by the partial data conversion unit 111 and the 12-byte data distributed by the data dividing unit 110 to form a 4 × 4 byte matrix. 16-byte data is output. The 16-byte output data from the data combining unit 112 is held in the buffer memory 102, and the data mixing processing unit 10
1 is output to the outside.

【0023】これより、16バイトの平文{p0、p
1、・・・、p15}を暗号文{c0、c1、・・・、
c15}に変換する処理を説明する。まず、16バイト
の平文{p0、p1、・・・、p15}は、4×4バイ
トマトリクス形状の入力データ120として前処理手段
100へ入力される。入力データ120は、前処理手段
100により暗号鍵との排他的論理和演算などの前処理
を施された後、セレクタ103を介してデータ攪拌処理
手段101へ入力される。
From this, the 16-byte plaintext {p0, p
1, ..., p15} is a ciphertext {c0, c1, ...,
The process of converting to c15} will be described. First, a 16-byte plaintext {p0, p1, ..., P15} is input to the preprocessing unit 100 as input data 120 in a 4 × 4 byte matrix shape. The input data 120 is preprocessed by the preprocessing unit 100, such as an exclusive OR operation with the encryption key, and then input to the data mixing processing unit 101 via the selector 103.

【0024】図2から図5を用いて、データ攪拌処理手
段101で行うデータ攪拌処理を説明する。図2におい
て、200はデータ攪拌処理手段101へ入力される4
×4バイトマトリクスの入力データであり、110は入
力データ200を部分データ換字手段111で処理する
4バイト列データと、データ結合手段112へ出力する
12バイトデータとに振り分けるデータ分割手段であ
る。
The data shuffling process performed by the data shuffling processing means 101 will be described with reference to FIGS. 2 to 5. In FIG. 2, 200 is input to the data agitation processing means 101 4
Input data of a × 4 byte matrix, and 110 is a data dividing means for dividing the input data 200 into 4 byte string data processed by the partial data substituting means 111 and 12 byte data output to the data combining means 112.

【0025】部分データ換字手段111は、入力される
4バイトデータの換字変換を行い、換字変換した4バイ
トデータを出力する。112は、データ分割手段110
により振り分けられた12バイトデータと部分データ換
字手段111で換字変換された4バイトデータとを結合
し、16バイトの中間データA300を生成するデータ
結合手段である。
The partial data substituting means 111 performs substituting conversion of the input 4-byte data and outputs the substituting 4-byte data. 112 is a data dividing unit 110
It is a data combining unit that combines the 12-byte data distributed by the above and the 4-byte data converted by the partial data converting unit 111 to generate 16-byte intermediate data A300.

【0026】図2に、データ攪拌処理手段101で行う
4×4バイトマトリクス形状データの攪拌処理のうち、
出力データの第0列に対する攪拌処理を示す。
In FIG. 2, of the 4 × 4 byte matrix shape data stirring processing performed by the data stirring processing means 101,
The stirring process for the 0th column of the output data is shown.

【0027】16バイト入力データ{x0、x1、・・
・、x15}200がデータ分割手段110へ入力され
る。データ分割手段110により入力データ200は4
バイトデータ{x0、x5、x10、x15}201a
と12バイトデータ{x4、x9、x14、x3、x
8、x13、x2、x7、x12、x1、x6、x1
1}202とに振り分けられ、4バイトデータ{a0}
201bが部分データ換字手段111へ入力される。こ
こで4バイトデータ{x0、x5、x10、x15}2
01aと{a0}201bは説明のため区別しているが
同一データである。部分データ換字手段111は4バイ
トデータ{a0}201bを換字変換し、4バイトデー
タ{b0}203を出力する。12バイトデータ{x
4、x9、x14、x3、x8、x13、x2、x7、
x12、x1、x6、x11}202と4バイトデータ
{b0}203はデータ結合手段112により16バイ
ト中間データA{x4、x9、x14、x3、x8、x
13、x2、x7、x12、x1、x6、x11、{b
0}}300に結合され、一旦バッファメモリ102で
保持される。
16-byte input data {x0, x1, ...
., X15} 200 is input to the data dividing means 110. The input data 200 is 4 by the data dividing means 110.
Byte data {x0, x5, x10, x15} 201a
And 12-byte data {x4, x9, x14, x3, x
8, x13, x2, x7, x12, x1, x6, x1
1} 202 and 4-byte data {a0}
201b is input to the partial data substituting means 111. Here, 4-byte data {x0, x5, x10, x15} 2
01a and {a0} 201b are the same data although they are distinguished for explanation. The partial data conversion unit 111 converts the 4-byte data {a0} 201b into characters and outputs 4-byte data {b0} 203. 12-byte data {x
4, x9, x14, x3, x8, x13, x2, x7,
The x12, x1, x6, x11} 202 and the 4-byte data {b0} 203 are 16-byte intermediate data A {x4, x9, x14, x3, x8, x by the data combining means 112.
13, x2, x7, x12, x1, x6, x11, {b
0}} 300, and is temporarily held in the buffer memory 102.

【0028】続いて、データ攪拌処理手段101で行う
4×4バイトマトリクス形状データの攪拌処理のうち、
出力データの第1列に対する攪拌処理を図3に示す。
Next, among the 4 × 4 byte matrix shape data stirring processing performed by the data stirring processing means 101,
The agitation process for the first column of output data is shown in FIG.

【0029】バッファメモリ102で保持されている1
6バイト中間データA{x4、x9、x14、x3、x
8、x13、x2、x7、x12、x1、x6、x1
1、{b0}}300がデータ分割手段110へ入力さ
れる。データ分割手段110により中間データA300
は4バイトデータ{x4、x9、x14、x3}301
aと12バイトデータ{x8、x13、x2、x7、x
12、x1、x6、x11、{b0}}302とに振り
分けられ、4バイトデータ{a1}301bが部分デー
タ換字手段111へ入力される。
1 stored in the buffer memory 102
6-byte intermediate data A {x4, x9, x14, x3, x
8, x13, x2, x7, x12, x1, x6, x1
1, {b0}} 300 is input to the data dividing means 110. Intermediate data A300 by the data dividing means 110
Is 4-byte data {x4, x9, x14, x3} 301
a and 12-byte data {x8, x13, x2, x7, x
12, x1, x6, x11, {b0} 302, and 4-byte data {a1} 301b is input to the partial data substituting means 111.

【0030】この場合、データ分割手段110は、16
バイト中間データA300を中間データA300の第0
列に対応する4バイトデータ{x4、x9、x14、x
3}301aと、中間データA300の第1〜3列に対
応する12バイトデータ{x8、x13、x2、x7、
x12、x1、x6、x11、{b0}}302とに振
り分ける。
In this case, the data dividing means 110 is 16
The byte intermediate data A300 is set to 0th of the intermediate data A300.
4-byte data corresponding to the column {x4, x9, x14, x
3} 301a and 12-byte data {x8, x13, x2, x7, corresponding to the first to third columns of the intermediate data A300.
x12, x1, x6, x11, and {b0}} 302.

【0031】ここで4バイトデータ{x4、x9、x1
4、x3}301aと{a1}301bは説明のため区
別しているが同一データである。部分データ換字手段1
11は4バイトデータ{a1}301bを換字変換し、
4バイトデータ{b1}303を出力する。12バイト
データ{x8、x13、x2、x7、x12、x1、x
6、x11、{b0}}302と4バイトデータ{b
1}303はデータ結合手段112により16バイト中
間データB{x8、x13、x2、x7、x12、x
1、x6、x11、{b0}、{b1}}400に結合
され、一旦バッファメモリ102で保持される。
Here, 4-byte data {x4, x9, x1
4, x3} 301a and {a1} 301b are the same data although they are distinguished for explanation. Partial data substitution means 1
11 is a 4-byte data {a1} 301b is converted into characters,
The 4-byte data {b1} 303 is output. 12-byte data {x8, x13, x2, x7, x12, x1, x
6, x11, {b0}} 302 and 4-byte data {b
1} 303 is 16-byte intermediate data B {x8, x13, x2, x7, x12, x by the data combining means 112.
1, x6, x11, {b0}, {b1}} 400, and are temporarily held in the buffer memory 102.

【0032】さらに、データ攪拌処理手段101で行う
4×4バイトマトリクス形状データの攪拌処理のうち、
出力データの第2列に対する攪拌処理を図4に示す。
Further, of the 4 × 4 byte matrix shape data stirring processing performed by the data stirring processing means 101,
The stirring process for the second column of output data is shown in FIG.

【0033】バッファメモリ102で保持されている1
6バイト中間データB{x8、x13、x2、x7、x
12、x1、x6、x11、{b0}、{b1}}40
0がデータ分割手段110へ入力される。データ分割手
段110により中間データB400は4バイトデータ
{x8、x13、x2、x7}401aと12バイトデ
ータ{x12、x1、x6、x11、{b0}、{b
1}}402とに振り分けられ、4バイトデータ{a
2}401bが部分データ換字手段111へ入力され
る。
1 stored in the buffer memory 102
6-byte intermediate data B {x8, x13, x2, x7, x
12, x1, x6, x11, {b0}, {b1}} 40
0 is input to the data dividing means 110. The intermediate data B400 is 4-byte data {x8, x13, x2, x7} 401a and 12-byte data {x12, x1, x6, x11, {b0}, {b by the data dividing means 110.
1}} 402 and 4-byte data {a
2} 401b is input to the partial data substituting means 111.

【0034】この場合、データ分割手段110は、16
バイト中間データB400を中間データB400の第0
列に対応する4バイトデータ{x8、x13、x2、x
7}401aと、中間データB400の第1〜3列に対
応する12バイトデータ{x12、x1、x6、x1
1、{b0}、{b1}}402とに振り分ける。
In this case, the data dividing means 110 is 16
The byte intermediate data B400 is set to 0th of the intermediate data B400.
4-byte data corresponding to the column {x8, x13, x2, x
7} 401a and 12-byte data {x12, x1, x6, x1 corresponding to the first to third columns of the intermediate data B400.
1, {b0}, {b1}} 402.

【0035】ここで4バイトデータ{x8、x13、x
2、x7}401aと{a2}401bは説明のため区
別しているが同一データである。部分データ換字手段1
11は4バイトデータ{a2}401bを換字変換し、
4バイトデータ{b2}403を出力する。12バイト
データ{x12、x1、x6、x11、{b0}、{b
1}}402と4バイトデータ{b2}403はデータ
結合手段112により16バイト中間データC{x1
2、x1、x6、x11、{b0}、{b1}、{b
2}}500に結合され、一旦バッファメモリ102で
保持される。
Here, 4-byte data {x8, x13, x
2, x7} 401a and {a2} 401b are the same data although they are distinguished for explanation. Partial data substitution means 1
11 is character conversion of 4-byte data {a2} 401b,
The 4-byte data {b2} 403 is output. 12-byte data {x12, x1, x6, x11, {b0}, {b
1}} 402 and 4-byte data {b2} 403 are 16-byte intermediate data C {x1 by the data combining means 112.
2, x1, x6, x11, {b0}, {b1}, {b
2}} 500, and is temporarily held in the buffer memory 102.

【0036】そして、データ攪拌処理手段101で行う
4×4バイトマトリクス形状データの攪拌処理のうち、
出力データの第3列に対する攪拌処理を図5に示す。
Of the 4 × 4 byte matrix shape data stirring processing performed by the data stirring processing means 101,
The agitation process for the third column of output data is shown in FIG.

【0037】バッファメモリ102で保持されている1
6バイト中間データC{x12、x1、x6、x11、
{b0}、{b1}、{b2}}500がデータ分割手
段110へ入力される。データ分割手段110により中
間データC500は4バイトデータ{x12、x1、x
6、x11}501aと12バイトデータ{{b0}、
{b1}、{b2}}502とに振り分けられ、4バイ
トデータ{a3}501bが部分データ換字手段111
へ入力される。
1 stored in the buffer memory 102
6-byte intermediate data C {x12, x1, x6, x11,
{B0}, {b1}, and {b2}} 500 are input to the data dividing means 110. The data dividing unit 110 converts the intermediate data C500 into 4-byte data {x12, x1, x
6, x11} 501a and 12-byte data {{b0},
{B1}, {b2}} 502 and 4-byte data {a3} 501b is divided into partial data substituting means 111.
Is input to.

【0038】この場合、データ分割手段110は、16
バイト中間データC500を中間データC500の第0
列に対応する4バイトデータ{x12、x1、x6、x
11}501aと、中間データC500の第1〜3列に
対応する12バイトデータ{{b0}、{b1}、{b
2}}502とに振り分ける。
In this case, the data dividing means 110 is 16
The byte intermediate data C500 is set to 0th of the intermediate data C500.
4-byte data corresponding to the column {x12, x1, x6, x
11} 501a and 12-byte data {{b0}, {b1}, {b corresponding to the first to third columns of the intermediate data C500.
2}} 502.

【0039】ここで4バイトデータ{x12、x1、x
6、x11}501aと{a3}501bは説明のため
区別しているが同一データである。部分データ換字手段
111は4バイトデータ{a3}501bを換字変換
し、4バイトデータ{b3}503を出力する。12バ
イトデータ{{b0}、{b1}、{b2}}502と
4バイトデータ{b3}503はデータ結合手段112
により16バイト出力データ{{b0}、{b1}、
{b2}、{b3}}510aに結合され、一旦バッフ
ァメモリ102で保持される。
Here, 4-byte data {x12, x1, x
6, x11} 501a and {a3} 501b are the same data although they are distinguished for the sake of explanation. The partial data conversion unit 111 converts the 4-byte data {a3} 501b into characters and outputs 4-byte data {b3} 503. The 12-byte data {{b0}, {b1}, {b2}} 502 and the 4-byte data {b3} 503 are data combining means 112.
16 bytes of output data {{b0}, {b1},
It is combined with {b2}, {b3}} 510a and temporarily held in the buffer memory 102.

【0040】図2から図5を用いて説明したデータ攪拌
処理手段101で行うデータ攪拌処理により、16バイ
トデータの攪拌が1回完了する。
By the data agitation processing performed by the data agitation processing means 101 described with reference to FIGS. 2 to 5, the agitation of 16-byte data is completed once.

【0041】以上のようにして本実施の形態におけるデ
ータ攪拌回路では、部分データ換字手段111でデータ
換字変換を行う前にデータの転置変換を確定しておく必
要がなく、従来、転置変換で必要であった1サイクルが
不要となる。この場合、データ攪拌処理手段を1回実行
するのに必要な処理時間は、データの各列に対する処理
として1サイクル必要であることより、第0〜3列の4
列に必要な4サイクルとなる。
As described above, in the data agitation circuit according to the present embodiment, it is not necessary to determine the transposition conversion of data before the data conversion conversion is performed by the partial data conversion unit 111, and conventionally, the transposition conversion is required. The one cycle that was In this case, the processing time required to execute the data agitation processing means once requires one cycle as the processing for each column of data, so that the processing time for the columns 0 to 3 is 4
There are 4 cycles required for the row.

【0042】この後、16バイトデータの攪拌を規定の
回数行った後に、データ攪拌処理手段101から出力さ
れるデータ{{b0}、{b1}、{b2}、{b
3}}510aが16バイト出力データ{y0、y1、
・・・、y15}510bとして、後処理手段104へ
入力される。16バイト出力データ510bは後処理手
段104により暗号鍵との排他的論理和演算などの後処
理を施された後、4×4バイトマトリクス形状の16バ
イト出力データ{c0、c1、・・・、c15}121
として出力される。
After that, the data of {{b0}, {b1}, {b2}, {b output from the data agitation processing means 101 after agitating the 16-byte data a prescribed number of times is used.
3}} 510a is 16-byte output data {y0, y1,
..., y15} 510b is input to the post-processing unit 104. The 16-byte output data 510b is subjected to post-processing such as exclusive OR operation with the encryption key by the post-processing means 104, and then 16-byte output data {c0, c1, ... c15} 121
Is output as.

【0043】なお、本実施の形態においては、図1に示
すデータ攪拌処理手段101をループする回路構成につ
いて説明したが、図6に示すようにデータ攪拌処理手段
101を規定の回数分備えた構成で実現してもよい。そ
の場合、図1の場合と比較して回路規模は大きくなる
が、処理速度はパイプライン処理が可能となり高速とな
る。
In the present embodiment, the circuit configuration for looping the data agitation processing means 101 shown in FIG. 1 has been described. However, as shown in FIG. 6, the data agitation processing means 101 is provided a prescribed number of times. May be realized with. In this case, although the circuit scale is larger than that in the case of FIG. 1, the processing speed becomes high because pipeline processing is possible.

【0044】[0044]

【発明の効果】本発明は、データ分割手段を使ってマト
リクス形状のデータから換字変換対象となるデータを抽
出することにより、データ換字変換を行う前にデータ転
置変換のみを実施するのに必要な処理時間が不要にな
り、データ攪拌処理に要する時間の短縮が可能となる。
INDUSTRIAL APPLICABILITY The present invention is necessary to perform only the data transposition conversion before the data substitution conversion by extracting the data to be the substitution conversion target from the matrix-shaped data by using the data dividing means. The processing time becomes unnecessary, and the time required for the data agitation processing can be shortened.

【図面の簡単な説明】[Brief description of drawings]

【図1】データ攪拌回路を示す図FIG. 1 is a diagram showing a data mixing circuit.

【図2】第0列に対する攪拌処理を示す図FIG. 2 is a diagram showing a stirring process for the 0th column.

【図3】第1列に対する攪拌処理を示す図FIG. 3 is a diagram showing a stirring process for the first row.

【図4】第2列に対する攪拌処理を示す図FIG. 4 is a diagram showing a stirring process for the second row.

【図5】第3列に対する攪拌処理を示す図FIG. 5 is a diagram showing a stirring process for the third row.

【図6】データ攪拌回路(パイプライン構成)を示す図FIG. 6 is a diagram showing a data mixing circuit (pipeline configuration).

【図7】複数個のデータ攪拌処理手段を持つ従来例を示
す図
FIG. 7 is a diagram showing a conventional example having a plurality of data agitation processing means.

【図8】単一のデータ攪拌処理手段を持つ従来例を示す
FIG. 8 is a diagram showing a conventional example having a single data agitation processing unit.

【図9】データ転置手段とデータ換字手段を示す図FIG. 9 is a view showing a data transposing means and a data transposing means.

【図10】部分データ換字手段を示す図FIG. 10 is a diagram showing partial data substituting means.

【図11】回路規模に制限がある場合の従来例を示す図FIG. 11 is a diagram showing a conventional example when the circuit scale is limited.

【符号の説明】[Explanation of symbols]

100 前処理手段 101 データ攪拌処理手段 102 バッファメモリ 103 セレクタ 104 後処理手段 110 データ分割手段 111 部分データ換字手段 112 データ結合手段 120,200 入力データ 121,510a,510b 出力データ 300 中間データA 400 中間データB 500 中間データC 100 pretreatment means 101 data agitation processing means 102 buffer memory 103 selector 104 post-processing means 110 data dividing means 111 Partial data substitution means 112 Data combining means 120,200 input data 121,510a, 510b output data 300 Intermediate data A 400 Intermediate data B 500 Intermediate data C

Claims (8)

【特許請求の範囲】[Claims] 【請求項1】転置変換と換字変換によりデータ攪拌処理
を行う回路であって、 データを振り分けるデータ分割手段と、 前記データ分割手段により抽出した部分データを換字変
換する部分データ換字手段と、 データを結合するデータ結合手段と、 攪拌するデータの中間状態を保持するバッファメモリ
と、を備えることを特徴とするデータ攪拌回路。
1. A circuit for performing data agitation processing by transposition conversion and character conversion, comprising data dividing means for allocating data, partial data character converting means for converting character conversion of partial data extracted by said data dividing means, and data A data mixing circuit, comprising: a data combining means for combining; and a buffer memory for holding an intermediate state of data to be mixed.
【請求項2】前記データは、マトリクス形状を持ち、 前記転置変換は、マトリクス形状のデータの行あるいは
列方向に対する変換であると共に、 前記換字変換は、前記転置変換とは異なる方向の列ある
いは行データに対する換字変換を行うことを特徴とする
請求項1記載のデータ攪拌回路。
2. The data has a matrix shape, the transposition conversion is a conversion in a row or column direction of matrix-shaped data, and the substitution conversion is a column or row in a direction different from the transposition conversion. The data agitation circuit according to claim 1, wherein substitution conversion is performed on the data.
【請求項3】前記データ攪拌処理は、マトリクス形状デ
ータの転置変換後に換字変換を行うものであり、 前記データ分割手段は、マトリクス形状データから転置
操作後と同様のデータを前記部分データ換字手段へ出力
することを特徴とする請求項2記載のデータ攪拌回路。
3. The data agitation processing is to perform substituting conversion after transposition conversion of matrix shape data, and the data dividing means transfers the same data from the matrix shape data to the partial data substituting means after transposition operation. The data agitation circuit according to claim 2, which outputs the data.
【請求項4】前記データ攪拌処理は、マトリクス形状デ
ータの換字変換後に転置変換を行うものであり、 前記データ分割手段は、マトリクス形状データから部分
データ換字手段に入力されるべきデータと、データ結合
手段に入力されるべきデータとに分割するものであり、 前記データ結合手段は、前記部分データ換字手段の出力
と、前記データ分割手段の出力とを入力して、転置変換
後と同等のデータになるようにデータを結合することを
特徴とする請求項2記載のデータ攪拌回路。
4. The data shuffling process is a transposition conversion after substituting conversion of matrix shape data, wherein the data dividing means combines data to be input from the matrix shape data to the partial data substituting means. The data combining means inputs the output of the partial data substituting means and the output of the data dividing means into data equivalent to that after transposition conversion. The data agitation circuit according to claim 2, wherein the data are combined so that
【請求項5】転置変換と換字変換によりデータ攪拌処理
を行う方法であって、 データを振り分けるデータ分割ステップと、 前記データ分割ステップにより抽出した部分データを換
字変換する部分データ換字ステップと、 データを結合するデータ結合ステップと、 攪拌するデータの中間状態を保持するバッファメモリ
と、を備えることを特徴とするデータ攪拌方法。
5. A method for performing data mixing processing by transposition conversion and character conversion, comprising a data dividing step of allocating data, a partial data character converting step of converting the partial data extracted by the data dividing step to character conversion, and A data mixing method comprising: a data combining step of combining data; and a buffer memory that holds an intermediate state of data to be mixed.
【請求項6】前記データは、マトリクス形状を持ち、 前記転置変換は、マトリクス形状のデータの行あるいは
列方向に対する変換であると共に、 前記換字変換は、前記転置変換とは異なる方向の列ある
いは行データに対する換字変換を行うことを特徴とする
請求項5記載のデータ攪拌方法。
6. The data has a matrix shape, and the transposition conversion is conversion in a row or column direction of matrix-shaped data, and the substitution conversion is a column or row in a direction different from the transposition conversion. The data shuffling method according to claim 5, wherein substitution conversion is performed on the data.
【請求項7】前記データ攪拌処理は、マトリクス形状デ
ータの転置変換後に換字変換を行うものであり、 前記データ分割ステップは、マトリクス形状データから
転置操作後と同様のデータを前記部分データ換字ステッ
プへ出力することを特徴とする請求項6記載のデータ攪
拌方法。
7. The data agitation processing is to perform transposition conversion after transposition conversion of matrix shape data, and in the data division step, data similar to that after transposition operation is transferred from the matrix shape data to the partial data conversion step. The data mixing method according to claim 6, wherein the data is output.
【請求項8】前記データ攪拌処理は、マトリクス形状デ
ータの換字変換後に転置変換を行うものであり、 前記データ分割ステップは、マトリクス形状データから
部分データ換字ステップに入力されるべきデータと、デ
ータ結合ステップに入力されるべきデータとに分割する
ものであり、 前記データ結合ステップは、前記部分データ換字ステッ
プの出力と、前記データ分割ステップの出力とを入力し
て、転置変換後と同等のデータになるようにデータを結
合することを特徴とする請求項6記載のデータ攪拌方
法。
8. The data mixing process is a transposition conversion after substituting conversion of matrix shape data, and the data dividing step is a data combination of data to be input from the matrix shape data to the partial data substituting step. Data to be input to the step, and the data combining step inputs the output of the partial data substituting step and the output of the data dividing step into data equivalent to that after transposition conversion. 7. The data agitation method according to claim 6, wherein the data are combined so that
JP2001341655A 2001-11-07 2001-11-07 Data randomizing circuit and method Withdrawn JP2003143120A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001341655A JP2003143120A (en) 2001-11-07 2001-11-07 Data randomizing circuit and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001341655A JP2003143120A (en) 2001-11-07 2001-11-07 Data randomizing circuit and method

Publications (1)

Publication Number Publication Date
JP2003143120A true JP2003143120A (en) 2003-05-16

Family

ID=19155642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001341655A Withdrawn JP2003143120A (en) 2001-11-07 2001-11-07 Data randomizing circuit and method

Country Status (1)

Country Link
JP (1) JP2003143120A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009069844A (en) * 2004-08-12 2009-04-02 Cmla Llc Permutation data transform to enhance security
US8077861B2 (en) 2004-08-12 2011-12-13 Cmla, Llc Permutation data transform to enhance security
US8155310B2 (en) 2004-08-12 2012-04-10 Cmla, Llc Key derivation functions to enhance security

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009069844A (en) * 2004-08-12 2009-04-02 Cmla Llc Permutation data transform to enhance security
JP4820821B2 (en) * 2004-08-12 2011-11-24 シー エム エル エー, リミテッド ライアビリティ カンパニー Transpose data conversion for security enhancement
US8077861B2 (en) 2004-08-12 2011-12-13 Cmla, Llc Permutation data transform to enhance security
JP2012023764A (en) * 2004-08-12 2012-02-02 Cmla Llc Translation data conversion for enhanced security
JP2012023763A (en) * 2004-08-12 2012-02-02 Cmla Llc Translation data conversion for enhanced security
US8155310B2 (en) 2004-08-12 2012-04-10 Cmla, Llc Key derivation functions to enhance security
KR101366185B1 (en) 2004-08-12 2014-02-24 씨엠엘에이 엘엘씨 Permutation Data Transformation to Enhance Security
US8737608B2 (en) 2004-08-12 2014-05-27 Cmla, Llc Exponential data transform to enhance security

Similar Documents

Publication Publication Date Title
JP5141910B2 (en) Encryption and decryption processing method and system for realizing SMS4 encryption algorithm
US4525796A (en) Pipelined operation unit for vector data
JPH08328849A (en) Computer and operating method of computer
JP2003015522A (en) Ciphering circuit
CN111563281B (en) Processor supporting multiple encryption and decryption algorithms and implementation method thereof
KR100510030B1 (en) Pipeline processor capable of reducing branch hazards with small-scale circuit
US3524976A (en) Binary coded decimal to binary conversion
JP2003143120A (en) Data randomizing circuit and method
JP4120193B2 (en) Encryption / decryption circuit
US6865272B2 (en) Executing permutations
JP2000075785A (en) High-speed cipher processing circuit and processing method
CN109039608A (en) A kind of 8-bitAES circuit based on double S cores
JP3277894B2 (en) Information processing apparatus and code generation method
JP3917357B2 (en) Non-linear conversion method, computer-readable recording medium storing program, and non-linear conversion device
JP4107043B2 (en) Arithmetic processing unit
JPH0644051A (en) Microcomputer
JP2007333854A (en) Random number generation circuit
JP2564318B2 (en) Communication processing device
JPH08101639A (en) Data diffusing method
JPS6113233B2 (en)
JP4745598B2 (en) Cryptographic circuit
KR100384873B1 (en) Encryption device using data encryption standard algorithm
JPH05307361A (en) Data diffusion device and data diffusion method
CN113222157A (en) Quantum simulation method and device, electronic device and storage medium
JPS63146124A (en) System for processing homogeneous hushing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041102

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050701

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20060508