JP2007333815A - Information processor and its control method, program, and storage medium - Google Patents
Information processor and its control method, program, and storage medium Download PDFInfo
- Publication number
- JP2007333815A JP2007333815A JP2006162806A JP2006162806A JP2007333815A JP 2007333815 A JP2007333815 A JP 2007333815A JP 2006162806 A JP2006162806 A JP 2006162806A JP 2006162806 A JP2006162806 A JP 2006162806A JP 2007333815 A JP2007333815 A JP 2007333815A
- Authority
- JP
- Japan
- Prior art keywords
- information
- processing apparatus
- processing
- round
- enlarged
- 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 an information processing apparatus, a control method thereof, a program, and a storage medium.
従来より、データを暗号化するための様々な暗号方式が知られている。暗号方式の一つに共通鍵暗号と呼ばれる暗号方式がある。共通鍵暗号は、大きく分けてブロック暗号とストリーム暗号と呼ばれる2つの方式に分類される。ブロック暗号は、固定された長さ各入力ブロックと鍵データを、換字・転置処理により攪拌し、同じ長さの出力ブロックに写す暗号化方式である。ストリーム暗号は、平文と鍵ストリームに排他的論理和のような論理演算を施し、暗号文を得る暗号化方式である。ブロック暗号の代表的なものとしては、DES(Data Encryption Standard)やAES(Advanced Encryption Standard)がある。ストリーム暗号の代表的なものとしてはRC4がある。 Conventionally, various encryption methods for encrypting data are known. One of the encryption methods is an encryption method called common key encryption. Common key ciphers are roughly classified into two systems called block ciphers and stream ciphers. The block cipher is an encryption method in which each fixed-length input block and key data are agitated by substitution / transposition processing and copied to an output block having the same length. Stream cipher is an encryption method that obtains ciphertext by performing a logical operation such as exclusive OR on plaintext and a key stream. Typical block ciphers include DES (Data Encryption Standard) and AES (Advanced Encryption Standard). RC4 is a representative stream cipher.
図2は、共通鍵暗号による暗号化処理を行う一般的な暗号化装置の構成を示す図である。図2の暗号化装置は、暗号処理対象データ200と鍵データ201を入力とし、暗号化データ206を出力する。暗号化装置は、暗号処理部202と鍵処理部203によって構成されている。暗号化装置は、第1ラウンド204から第nラウンド205まで順番に、n段階の処理を行う。鍵処理部203は、入力された暗号鍵をもとに、n段階のラウンド処理のそれぞれで用いられる拡大鍵1から拡大鍵nの生成を順次行う。
FIG. 2 is a diagram illustrating a configuration of a general encryption apparatus that performs encryption processing using common key encryption. The encryption apparatus in FIG. 2 receives the encryption
上記の拡大鍵の生成の代表的なものの1つに、非特許文献1の5.2Key Expansionがある。以下は、非特許文献1から、AESに準拠するKeyExpansionの処理内容を抜粋したものである。
[KeyExpansion] ・・・(*1)
KeyExpansion(byte key[4*Nk], word w[Nb*(Nr+1)], Nk)
begin
word temp
i=0
while (i<Nk)
w[i]=word(key[4*i], key[4*i+1], key[4*i+2], key[4*i+3])
i=i+1
end while
i=Nk
while (i<Nb * (Nr+1))
temp=w[i-1]
if (i mod Nk=0)
temp=SubWord(RotWord(temp)) xor Rcon[i/Nk] ・・・(*2)
else if (Nk>6 and i mod Nk=4)
temp=SubWord(temp)
end if
w[i]=w[i-Nk] xor temp
i=i + 1
end while
end
以下、上記のKeyExpansionで用いられている語句の説明を行う。上記のwordは4バイト単位を表す。Keyは暗号鍵(鍵の長さは128,192,256ビットのいずれか)を表す。Wは拡大鍵を表す。また、Nkは暗号鍵の長さをword単位で示したものであり、4,6,8のいずれかの値である。Nbはブロックサイズをword単位で示したものであり、ここでの値は4である。Nrはラウンド数を示したものであり、10,12,14のいずれかの値である。SubWordsは1バイト毎の換字変換である。例えば入力として00(16)((16)は16進数表記を示す。)が与えられた場合、63(16)が出力値となる。SubWordsの原理は、ガロア体GF(28)上における既約多項式X8+X4+X3+X+1での逆元演算である。RotWordsは、バイト単位の転置変換であり、例えば、入力ワードとして[a0,a1,a2,a3]が与えられた場合、出力ワードは[a1,a2,a3,a0]となる。Rconは換字変換である。
One of the typical generations of the above expansion key is 5.2 Key Expansion of
[KeyExpansion] (* 1)
KeyExpansion (byte key [4 * Nk], word w [Nb * (Nr + 1)], Nk)
begin
word temp
i = 0
while (i <Nk)
w [i] = word (key [4 * i], key [4 * i + 1], key [4 * i + 2], key [4 * i + 3])
i = i + 1
end while
i = Nk
while (i <Nb * (Nr + 1))
temp = w [i-1]
if (i mod Nk = 0)
temp = SubWord (RotWord (temp)) xor Rcon [i / Nk] (* 2)
else if (Nk> 6 and i mod Nk = 4)
temp = SubWord (temp)
end if
w [i] = w [i-Nk] xor temp
i = i + 1
end while
end
Hereinafter, the terms used in the above KeyExpansion will be described. The above word represents a 4-byte unit. Key represents an encryption key (the key length is 128, 192, or 256 bits). W represents an extended key. Nk indicates the length of the encryption key in word units, and is a value of 4, 6, or 8. Nb indicates the block size in word units, and the value here is 4. Nr indicates the number of rounds, and is a value of 10, 12, or 14. SubWords is substitution conversion for each byte. For example, when 00 (16) ((16) indicates hexadecimal notation) is given as an input, 63 (16) is the output value. The principle of SubWords is an inverse operation with an irreducible polynomial X 8 + X 4 + X 3 + X + 1 on the Galois field GF (2 8 ). RotWords is transposition conversion in byte units. For example, when [a0, a1, a2, a3] is given as an input word, the output word is [a1, a2, a3, a0]. Rcon is substitution conversion.
Rconの原理は、ガロア体GF(28)上のべき乗演算であり、Rcon[i]=[Xi-1,{00},{00},{00}]によって表される。{ }内は16進表記で表されており、X={02}である。(*1)、(*2)については、後の実施形態において説明する。上記のKeyExpansionに示されている通り、While文以下が拡大鍵生成処理となっており、換字処理、転置処理、排他的論理和によって構成されている。 The principle of Rcon is a power operation on Galois field GF (2 8 ), and is represented by Rcon [i] = [X i−1 , {00}, {00}, {00}]. The contents in {} are expressed in hexadecimal notation, and X = {02}. (* 1) and (* 2) will be described in later embodiments. As shown in the above KeyExpansion, the “While” sentence and below are expanded key generation processes, which are constituted by substitution processing, transposition processing, and exclusive OR.
上記のAESは暗号化と復号化で、暗号化・復号処理部の処理工程が異なっている。説明は割愛するが、詳しくは上記の非特許文献1の5.1Cipherおよび5.3Inverse Cipherを参照いただきたい。ただし、上記の非特許文献1には、上記の暗号化・復号処理部の処理工程を同じにするオプションも記載されている。上記のオプションを適用する場合は、上記のKeyExpansionに追加処理を適用しなければならない。追加処理は上記の非特許文献1の5.3.5Equivalent Inverse Cipherに記載されている。以下は、上記の非特許文献1より、上記の追加処理について抜粋したものである。
For the Equivalent Inverse Cipher, the following pseudo code is added at
the end of the Key Expansion routine (Sec. 5.2): ・・・(*3)
for i=0 step 1 to (Nr+1)*Nb-1
dw[i]=w[i]
end forfor round=1 step 1 to Nr-1
InvMixColumns(dw[round*Nb, (round+1)*Nb-1]) // note change of type
end for
ここで、上記の追加処理で用いられている語句の説明を行う。dwは復号用の拡大鍵である。また、InvMixColumnsは列単位の換字変換および排他的論理和によって構成される。InvMixColumnsの換字変換の本質はガロア体上の乗算処理である。上記の乗算処理は、ガロア体GF(28)上における既約多項式X8+X4+X3+X+1での乗算処理である。この乗算処理は、入力に対応する出力値が予測可能であることから、換字処理が用いられるのが一般的である。
For the Equivalent Inverse Cipher, the following pseudo code is added at
the end of the Key Expansion routine (Sec. 5.2): (* 3)
for i = 0
dw [i] = w [i]
end forfor round = 1
InvMixColumns (dw [round * Nb, (round + 1) * Nb-1]) // note change of type
end for
Here, the words and phrases used in the additional processing will be described. dw is an extended key for decryption. InvMixColumns is composed of column-by-column substitution and exclusive OR. The essence of substitution conversion of InvMixColumns is multiplication processing on Galois field. The multiplication process is a multiplication process using an irreducible polynomial X 8 + X 4 + X 3 + X + 1 on the Galois field GF (2 8 ). In this multiplication process, since an output value corresponding to an input can be predicted, a substitution process is generally used.
前述のように、拡大鍵生成は、換字処理や、排他的論理和やシフト処理のような論理演算を含む、複数の処理を伴うことが一般的である。しかし、換字処理や論理演算は、一般的に演算コストが大きい。このため、上記の処理をそのまま情報処理装置に実装すると、処理に時間がかかっていた。この問題は、鍵を頻繁に更新するような環境では特に顕著になる。 As described above, the extended key generation generally involves a plurality of processes including a substitution process, a logical operation such as an exclusive OR or a shift process. However, substitution processing and logical operations are generally expensive. For this reason, if the above processing is directly implemented in the information processing apparatus, the processing takes time. This problem is particularly noticeable in an environment where keys are updated frequently.
本発明は上記問題に鑑みなされたものであり、鍵等の固定データから、拡大鍵等の拡大データを生成する際に、演算コストの大きい処理を削減して、処理を高速化することを可能にする技術を提供することを目的とする。 The present invention has been made in view of the above problems, and when generating enlarged data such as an extended key from fixed data such as a key, it is possible to reduce the processing with a large computation cost and speed up the processing. The purpose is to provide technology.
上記目的を達成するため、本発明による情報処理装置は以下の構成を備える。即ち、
シード情報に基づいて複数の拡大情報を生成する情報処理装置であって、
前記シード情報を入力する入力手段と、
入力された前記シード情報に基づいて複数の中間情報を演算する演算手段と、
前記演算により得られた前記複数の中間情報に基づいて、該中間情報にそれぞれ対応する複数の拡大情報を導出する導出手段と、
前記導出手段において導出された前記拡大情報を出力する出力手段と、
を備え、
前記導出手段は、
前記複数の中間情報の第1の集合について、該中間情報にそれぞれ対応する第1拡大情報を、換字変換を伴う処理により導出し、
前記複数の中間情報の第2の集合について、該中間情報にそれぞれ対応する第2拡大情報を、導出された前記第1拡大情報に基づいて、排他的論理和演算により導出する。
In order to achieve the above object, an information processing apparatus according to the present invention comprises the following arrangement. That is,
An information processing apparatus that generates a plurality of enlarged information based on seed information,
Input means for inputting the seed information;
A computing means for computing a plurality of intermediate information based on the inputted seed information;
Derivation means for deriving a plurality of pieces of extended information respectively corresponding to the intermediate information based on the plurality of intermediate information obtained by the calculation;
Output means for outputting the enlarged information derived by the derivation means;
With
The derivation means includes
For the first set of the plurality of intermediate information, the first extended information corresponding to each of the intermediate information is derived by processing involving substitution conversion;
For the second set of the plurality of intermediate information, second extended information corresponding to each of the intermediate information is derived by exclusive OR operation based on the derived first expanded information.
また、本発明による情報処理装置は以下の構成を備える。即ち、
共通鍵情報を入力し、当該共通鍵情報を拡大処理して得られた複数の拡大情報に基づき、複数のラウンドに分けて、処理対象の情報に対して暗号処理を行う情報処理装置であって、
前記共通鍵情報に基づいて、先頭ラウンド用の複数の中間情報を生成する中間情報生成手段と、
生成された前記中間情報に対して、換字処理を伴う処理を実行して、先頭ラウンド用の複数の拡大情報を生成する第1生成手段と、
前記先頭ラウンドに続く後段の注目ラウンドについて、当該注目ラウンド中の一つの拡大情報を、直前のラウンドの1つの拡大情報を逆変換して得られる中間情報に基づいて生成し、該注目ラウンド中の残りの拡大情報を、従前の拡大情報に基づき排他的論理和演算により導出する第2生成手段と、
を備える。
An information processing apparatus according to the present invention has the following configuration. That is,
An information processing apparatus that inputs common key information and performs encryption processing on information to be processed in a plurality of rounds based on a plurality of expanded information obtained by expanding the common key information. ,
Intermediate information generating means for generating a plurality of intermediate information for the first round based on the common key information;
A first generation unit configured to generate a plurality of pieces of enlarged information for the first round by executing a process involving substitution processing on the generated intermediate information;
For the subsequent attention round following the first round, one expansion information in the attention round is generated based on intermediate information obtained by inversely transforming one expansion information of the immediately preceding round, Second generation means for deriving the remaining expansion information by exclusive OR operation based on the previous expansion information;
Is provided.
また、本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
シード情報に基づいて複数の拡大情報を生成する情報処理装置の制御方法であって、
前記シード情報を入力する入力工程と、
入力された前記シード情報に基づいて複数の中間情報を演算する演算工程と、
前記演算により得られた前記複数の中間情報に基づいて、該中間情報にそれぞれ対応する複数の拡大情報を導出する導出工程と、
前記導出工程において導出された前記拡大情報を出力する出力工程と、
を備え、
前記導出工程においては、
前記複数の中間情報の第1の集合について、該中間情報にそれぞれ対応する第1拡大情報が、換字変換を伴う処理により導出され、
前記複数の中間情報の第2の集合について、該中間情報にそれぞれ対応する第2拡大情報が、導出された前記第1拡大情報に基づいて、排他的論理和演算により導出される。 また、本発明による情報処理装置の制御方法は以下の構成を備える。即ち、
共通鍵情報を入力し、当該共通鍵情報を拡大処理して得られた複数の拡大情報に基づき、複数のラウンドに分けて、処理対象の情報に対して暗号処理を行う情報処理装置の制御方法であって、
前記共通鍵情報に基づいて、先頭ラウンド用の複数の中間情報を生成する中間情報生成工程と、
生成された前記中間情報に対して、換字処理を伴う処理を実行して、先頭ラウンド用の複数の拡大情報を生成する第1生成工程と、
前記先頭ラウンドに続く後段の注目ラウンドについて、当該注目ラウンド中の一つの拡大情報を、直前のラウンドの1つの拡大情報を逆変換して得られる中間情報に基づいて生成し、該注目ラウンド中の残りの拡大情報を、従前の拡大情報に基づき排他的論理和演算により導出する第2生成工程と、
を備える。
The control method of the information processing apparatus according to the present invention has the following configuration. That is,
A method for controlling an information processing apparatus that generates a plurality of pieces of enlarged information based on seed information,
An input step for inputting the seed information;
A calculation step of calculating a plurality of intermediate information based on the input seed information;
A derivation step of deriving a plurality of pieces of enlarged information corresponding to each of the intermediate information based on the plurality of intermediate information obtained by the calculation;
An output step of outputting the enlarged information derived in the derivation step;
With
In the derivation step,
For the first set of the plurality of intermediate information, first expanded information corresponding to each of the intermediate information is derived by processing involving substitution conversion;
For the second set of the plurality of intermediate information, second extended information corresponding to each of the intermediate information is derived by exclusive OR operation based on the derived first extended information. The control method of the information processing apparatus according to the present invention has the following configuration. That is,
A control method for an information processing apparatus that performs cryptographic processing on information to be processed in a plurality of rounds based on a plurality of pieces of expanded information obtained by inputting the common key information and expanding the common key information. Because
An intermediate information generating step for generating a plurality of intermediate information for the first round based on the common key information;
A first generation step of performing a process involving substitution processing on the generated intermediate information to generate a plurality of pieces of enlarged information for the first round;
For the subsequent attention round following the first round, one expansion information in the attention round is generated based on intermediate information obtained by inversely transforming one expansion information of the immediately preceding round, A second generation step of deriving the remaining expansion information by exclusive OR operation based on the previous expansion information;
Is provided.
本発明によれば、鍵等の固定データから、拡大鍵等の拡大データを生成する際に、演算コストの大きい処理を削減して、処理を高速化することを可能にする技術を提供することができる。 According to the present invention, it is possible to provide a technique capable of reducing processing with high calculation cost and speeding up processing when generating expanded data such as an expanded key from fixed data such as a key. Can do.
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。 Embodiments according to the present invention will be described below in detail with reference to the accompanying drawings. However, the constituent elements described in this embodiment are merely examples, and are not intended to limit the scope of the present invention only to them.
<<第1実施形態>>
図1は本発明における各実施形態を実現する情報処理装置の電気的構成を説明するための図である。なお、本発明の実現にあたって、図1に示される全ての機能を使用することは必須ではない。
<< First Embodiment >>
FIG. 1 is a diagram for explaining an electrical configuration of an information processing apparatus that implements each embodiment of the present invention. Note that, in realizing the present invention, it is not essential to use all the functions shown in FIG.
(情報処理装置の構成)
情報処理装置100は、図1に示すように、以下のハードウェアがバス116を介して互いに通信可能に接続されて構成されている。
・公衆回線等のモデム118。
・表示部としてのモニタ102
・CPU103。
・ROM104。
・RAM105。
・HD(ハードディスク)106。
・ネットワークのネットワーク接続部107。
・CD108。
・FD(フレキシブルディスク)109。
・DVD(デジタル・ビデオ・ディスク、またはDigital Versatile Disk)110。
・プリンタ115のインターフェース(I/F)117。
・操作部としてのマウス112やキーボード113
・操作部のインターフェース(I/F)111。
(Configuration of information processing device)
As illustrated in FIG. 1, the
A
-
HD (hard disk) 106.
A
-CD108.
FD (flexible disk) 109.
DVD (Digital Video Disc or Digital Versatile Disk) 110.
An interface (I / F) 117 of the
-
An interface (I / F) 111 of the operation unit.
マウス112及びキーボード113は、情報処理装置100に対する各種指示等をユーザが入力するための操作部である。この操作部を介して入力された情報(操作情報)は、インターフェース111を介して、情報処理装置100内に取り込まれる。
The
情報処理装置100での各種情報(文字情報や画像情報等)は、プリンタ115により印刷出力できるようになされている。モニタ102は、ユーザへの各種指示情報や、文字情報或いは画像情報等の各種情報の表示を行う。
Various information (character information, image information, etc.) in the
CPU103は、情報処理装置100全体の動作制御を司るものであり、本実施形態に係る構成においては制御手段として機能している。すなわち、CPU103は、HD(ハードディスク)106等から処理プログラム(ソフトウェアプログラム)を読み出して実行することで、情報処理装置100全体を制御する。特に、本実施形態に係る構成では、CPU103は、HD106等から、暗号化処理機能および復号処理機能を実現する処理プログラムを読み出して実行することで、後述する情報変換処理を実施する。なお、例えば、本実施形態に係るプログラムをROM104に記録しておき、これをメモリマップの一部をなすように構成し、直接CPU103で実行することも可能である。
The
ROM104は、暗号化処理機能および復号処理機能のための処理プログラムや、プログラム内で用いられる各種データ等を記憶する。RAM105は、CPU103での各種処理のために、一時的に処理プログラムや処理対象の情報を格納するための作業用エリア等として使用される。
The
HD106は、大容量記憶装置の一例としての構成要素であり、各種データ、あるいは各種処理の実行時にRAM105等へ転送される情報変換処理等のための処理プログラム等を保存する。CD(CDドライブ)108は、外部記憶媒体の一例としてのCD(CD−R)に記憶されたデータを読み込み、また、当該CDへデータを書き出す機能を有する。FD(フレキシブルディスクドライブ)109は、CD108と同様に、外部記憶媒体の一例としてのFD109に記憶されたデータを読み出す。また、種々のデータをFD109へ書き込む機能を有している。DVD(デジタル・ビデオ・ディスク)110は、CD108やFD109と同様に、外部記憶媒体の一例としてのDVD110に記憶されたデータを読み出し、また、DVD110へデータを書き込む機能を有している。
The
なお、CD108、FD109、DVD110等の外部記憶媒体に対して、例えば、編集用のプログラム或いはプリンタドライバが記憶されている場合には、これらのプログラムをHD106へインストールしておくように構成してもよい。この場合、プログラムが必要な場合になったときに、当該プログラムをRAM105へ転送するように構成することができる。
For example, when an editing program or a printer driver is stored in an external storage medium such as
インターフェース(I/F)111は、マウス112、或いは、キーボード113によるユーザからの入力を受け付けるためのものである。モデム118は、通信モデムであり、インターフェース(I/F)119を介して、例えば、公衆回線等を通じて外部のネットワークに接続される。ネットワーク接続部107は、インターフェース(I/F)114を介して、外部のネットワークに接続される。
An interface (I / F) 111 is used to receive input from the user through the
なお、本発明は、複数の機器(例えば、ホストコンピュータ、インターフェース機器、リーダ、プリンタ等)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置等)に適用してもよい。即ち、本実施形態では、説明の便宜のため、本実施形態に係る情報処理装置を1つの装置で実現した構成について述べるが、複数の装置にリソースを分散した構成によって実現してもよい。例えば、記憶や演算のリソースを複数の装置に分散した形に構成してもよい。或いは、情報処理装置上で仮想的に実現される構成要素毎にリソースを分散し、並列処理を行うようにしてもよい。 Note that the present invention can be applied to a system composed of a plurality of devices (for example, a host computer, an interface device, a reader, a printer, etc.), but a device (for example, a copier, a facsimile machine, etc.) composed of a single device You may apply to. That is, in the present embodiment, for convenience of explanation, a configuration in which the information processing apparatus according to the present embodiment is realized by one device will be described, but may be realized by a configuration in which resources are distributed to a plurality of devices. For example, storage and calculation resources may be distributed in a plurality of devices. Alternatively, resources may be distributed for each component virtually realized on the information processing apparatus, and parallel processing may be performed.
尚、以上の各装置と同等の機能を実現するソフトウェアにより、ハードウェア装置の代替として構成することもできる。 In addition, it can also be comprised as an alternative of a hardware apparatus with the software which implement | achieves a function equivalent to the above each apparatus.
(ブロック暗号処理の概要)
以下、本実施形態に係る構成による処理ついて図面を参照して説明する。図2は、ブロック暗号処理を行う情報処理装置の機能構成を示すブロック図である。
(Overview of block cipher processing)
Hereinafter, the process by the structure which concerns on this embodiment is demonstrated with reference to drawings. FIG. 2 is a block diagram illustrating a functional configuration of an information processing apparatus that performs block cipher processing.
図2において、暗号処理対象データ200と鍵データ201が、図1に示す情報処理装置100に入力される。暗号処理対象データ200は暗号処理部202に、鍵データ201は鍵処理部203に、それぞれ入力される。鍵処理部203は、入力された鍵情報201を元に拡大鍵を生成し、暗号処理部202に入力する。
In FIG. 2, encryption
暗号処理部202は、鍵処理部203からの拡大鍵の入力と同時に入力された、暗号処理対象データ200に対して、第1ラウンド204から第nラウンド205まで順次所定の処理を行うことにより暗号化処理を実行する。そして、第nラウンド205の出力を、暗号化データ206として情報処理装置100から出力する。
The
なお、暗号化処理に対する復号処理は、暗号化処理に排他的論理和(XOR)を用いて、上記の処理を逆側から順次行うことによって実現される。暗号化処理と復号処理とを包含するものとして、暗号処理と呼ぶ。 Note that the decryption process for the encryption process is realized by sequentially performing the above processes from the reverse side using exclusive OR (XOR) for the encryption process. The process including the encryption process and the decryption process is called an encryption process.
なお、上記の共通鍵暗号に基づく暗号処理は、例えば、ユーザの指示入力により暗号処理対象のデータと、鍵データが指定されたことに応じて実行するように構成することができる。或いは、共通鍵暗号に基づく暗号処理を実行する処理手続きにおける、予め定められたイベント発生に応じて実行するように構成することができる。ただし、ここに例示したものに限られないことは明らかである。 Note that the encryption processing based on the above-described common key encryption can be configured to be executed in accordance with, for example, data to be subjected to encryption processing and key data specified by a user instruction input. Or it can comprise so that it may be performed according to predetermined event generation | occurrence | production in the process procedure which performs the encryption process based on a common key encryption. However, it is obvious that the present invention is not limited to those exemplified here.
(従来の構成における処理)
図3は、従来の構成におけるAESの128ビット鍵301から復号用の拡大鍵を生成する処理を示すブロック図である。上記の128ビット鍵301から、上記のKeyExpansion処理302により、44個の拡大鍵Wtが生成される。KeyExpansion処理302は上記(*1)にて示されている処理である。また、Wtの一部から、InvMixColumns処理303を36回実行することにより、36個のdWtが生成される。InvMixColumns処理303は上記(*3)にて示されている処理である。上記のように、WtからdWtを求めるInvMixColumns処理303は換字処理を伴うため、演算コストが大きい。
(Processing in the conventional configuration)
FIG. 3 is a block diagram showing processing for generating an extended key for decryption from the AES 128-bit key 301 in the conventional configuration. From the 128-bit key 301, by the
(拡大鍵生成の概要)
図4は、本実施形態におけるAESの128ビット鍵301(シード情報)から復号用の拡大鍵を生成する処理を示すブロック図である。上記の128ビット鍵401から、上記KeyExpansion処理402により、44個の拡大鍵Wtが生成される。また、Wtの一部から、InvMixColumns処理403により、40個のdWtが生成される。
(Overview of extended key generation)
FIG. 4 is a block diagram showing processing for generating an extended key for decryption from the AES 128-bit key 301 (seed information) in this embodiment. From the 128-bit key 401, by the
ただし、本実施形態では、一部のdwtをInvMixColumns処理403を用いて算出した後は、その算出結果を元に、演算コストの低い排他的論理和により、残りのdwtを算出する。このため、本実施形態に係る構成によれば、上記の従来の構成における処理よりも、低い演算コストで、処理を実行することができる。
However, in this embodiment, after calculating a part of dw t using the
(拡大鍵生成処理)
次に、本実施形態に係る構成による拡大鍵生成処理について、図5を参照して説明する。図5は、本実施形態における拡大鍵生成処理の手順を示すフローチャートである。
(Extended key generation process)
Next, the extended key generation process with the configuration according to the present embodiment will be described with reference to FIG. FIG. 5 is a flowchart showing the procedure of the extended key generation process in the present embodiment.
まず、ステップS501において、上記の128ビット鍵を入力する。 First, in step S501, the 128-bit key is input.
次に、ステップS502において、上記KeyExpansion処理を行い、44個のWtを生成する。 Next, in step S502, it performs the KeyExpansion process, to produce a 44 amino W t.
次に、ステップS503において、44個のWtからW0〜W3を選択する。 Next, in step S503, W 0 to W 3 are selected from 44 W t .
次に、ステップS504において、ステップS503で選択されたW0〜W3に対し、上記のInvMixColumns変換を行う。この処理の結果、dW0〜dW3が生成される。 Next, in step S504, the above InvMixColumns conversion is performed on W 0 to W 3 selected in step S503. As a result of this processing, dW 0 to dW 3 are generated.
一方、ステップS505において、ステップS502のKeyExpansion処理で使用されるtempデータを確保する。ただし、このtempデータは、上記(*1) KeyExpansionの処理内容で使用されているtempのことを指す。なお確保されるtempデータはi mod Nk=0を満たすtempデータを指す。本実施形態に係る構成での、パラメータiは4以上39以下の整数、パラメータNkは4である。 On the other hand, in step S505, temp data used in the key expansion process in step S502 is secured. However, this temp data indicates the temp used in the processing contents of (* 1) KeyExpansion. The secured temp data indicates temp data satisfying i mod Nk = 0. In the configuration according to the present embodiment, the parameter i is an integer from 4 to 39, and the parameter Nk is 4.
ステップS505の処理の後、ステップS506において、ステップS505で確保されたtempデータに対し、InvMixColumns変換を行う。ステップS506の結果、生成されたデータを、順にdW'i-1として定義する。本実施形態に係る構成では、dW'3,dW'7などが定義される。 After the processing in step S505, in step S506, InvMixColumns conversion is performed on the temp data secured in step S505. As a result of step S506, the generated data is defined as dW ′ i−1 in order. In the configuration according to the present embodiment, dW ′ 3 , dW ′ 7 and the like are defined.
ステップS504及びステップS506の処理が終了すると、ステップS507へ進む。ステップS507では、ステップS504で求めたdWtを除く、残りのdWtの演算処理を行う。この演算処理は式1にて示される。
[式1]
(t:0〜39)
ここで、記号
は、排他的論理和を示す。なお、t mod Nk=0を満たす場合に限り、式中dWt-1をdW't-1に置き換える。本実施形態に係る構成にて、dW4を算出する際を例に挙げると、
となる。このような排他的論理和演算により、InvMixColumns処理により求められたもの以外の全てのdWが算出される。そして、ステップS508へ進む。
When the processes of step S504 and step S506 are completed, the process proceeds to step S507. In step S507, the remaining dW t is calculated except for the dW t obtained in step S504. This calculation process is expressed by
[Formula 1]
(T: 0 to 39)
Where the sign
Indicates exclusive OR. Only when t mod Nk = 0 is satisfied, dW t−1 in the formula is replaced with dW ′ t−1 . Taking the case of calculating dW 4 in the configuration according to the present embodiment as an example,
It becomes. By such an exclusive OR operation, all dWs other than those obtained by the InvMixColumns process are calculated. Then, the process proceeds to step S508.
ステップS508では、ステップS502の出力結果W0〜W3,W40〜W43と、ステップS507の結果dW4〜dW39を、復号用拡大鍵として出力する。以上で、復号用拡大鍵生成の処理は終了となる。 In step S508, the output results W 0 to W 3 and W 40 to W 43 in step S502 and the results dW 4 to dW 39 in step S507 are output as decryption extended keys. This is the end of the process for generating the decryption extended key.
上記のように、本実施形態に係る構成においては、dwtを算出する際に、演算コストの高いInvMixColumns処理403を逐一実行しない。代わりに、可能な限り演算コストの低い排他的論理和演算によりdwtを算出する。このため、本実施形態に係る構成によれば、128ビット鍵401から、拡大鍵を生成する際に、演算コストの大きいInvMixColumns処理403を削減して、処理を高速化することが可能である。
As described above, in the configuration according to the present embodiment, when calculating dw t , the
<<第2実施形態>>
第1実施形態に係る構成では、復号用拡大鍵の生成を行う際にtempデータを用いていた。しかし、t mod Nk=0を満たすdWtに関しては、KeyExpansionにて作成されたWtからdWtを直接生成することができる。そこで、本実施形態では、tempデータを使用しない構成について説明する。なお、情報処理装置の構成、ブロック暗号処理の概要等、第1実施形態と同様の箇所については説明を省略し、相違する内容について説明する。
<< Second Embodiment >>
In the configuration according to the first embodiment, temp data is used when generating a decryption extended key. However, t with respect to the mod Nk = 0 satisfies the dW t, can be generated directly dW t from created W t at KeyExpansion. Therefore, in the present embodiment, a configuration that does not use temp data will be described. In addition, description is abbreviate | omitted about the location similar to 1st Embodiment, such as a structure of an information processing apparatus, the outline | summary of a block encryption process, and the content which is different is demonstrated.
(拡大鍵生成処理)
本実施形態に係る構成による拡大鍵生成処理について、図6を参照して説明する。図6は、本実施形態における拡大鍵生成処理の手順を示すフローチャートである。
(Extended key generation process)
The expanded key generation process with the configuration according to the present embodiment will be described with reference to FIG. FIG. 6 is a flowchart showing the procedure of the extended key generation process in the present embodiment.
まず、ステップS601では、上記128ビット鍵が入力される。 First, in step S601, the 128-bit key is input.
次に、ステップS602において、上記KeyExpansion処理を行い、44個のWtを生成する。 Next, in step S602, it performs the KeyExpansion process, to produce a 44 amino W t.
次に、ステップS603において、44個のWtからW0〜W3を選択する。 Next, in step S603, W 0 to W 3 are selected from 44 W t .
次に、ステップS604において、ステップS603で選択されたW0〜W3に対し、上記のInvMixColumns変換を行う。この処理の結果、dW0〜dW3が生成される。 Next, in step S604, the above InvMixColumns conversion is performed on W 0 to W 3 selected in step S603. As a result of this processing, dW 0 to dW 3 are generated.
一方、ステップS605において、44個のWtからt mod Nk=0を満たすWtを選択する。ただし、本実施形態に係る構成では、パラメータtは4以上39以下の整数、パラメータNkは4である。 On the other hand, in step S605, W t satisfying t mod Nk = 0 is selected from 44 W t . However, in the configuration according to the present embodiment, the parameter t is an integer between 4 and 39, and the parameter Nk is 4.
ステップS605の処理の後、ステップS606において、ステップS605で選択されたWtに対し、InvMixColumns変換を行う。ステップS606の処理の結果、生成されたデータを、順にdWtとして定義する。本実施形態に係る構成では、dW4,dW8などが定義される。 After the process of step S605, in step S606, the relative W t selected in step S605, performs InvMixColumns conversion. The data generated as a result of the process in step S606 is defined as dW t in order. In the configuration according to the present embodiment, dW 4 , dW 8 and the like are defined.
ステップS604及びステップS606の処理が終了すると、ステップS607へ進む。ステップS607では、ステップS604、S606で求めたdWtを除く、残りのdWtの演算処理を行う。演算処理は式2にて示される。
[式2]
(t:0〜39)
ここで、記号
は、排他的論理和を示す。本実施形態に係る構成にて、dW4を算出する際を例に挙げると、
となる。このような排他的論理和演算により、InvMixColumns処理により求められたもの以外の全てのdWが算出される。そして、ステップS608へ進む。
When the processing of step S604 and step S606 ends, the process proceeds to step S607. In step S607, the remaining dW t is calculated except for dW t obtained in steps S604 and S606. The arithmetic processing is expressed by Equation 2.
[Formula 2]
(T: 0 to 39)
Where the sign
Indicates exclusive OR. Taking the case of calculating dW 4 in the configuration according to the present embodiment as an example,
It becomes. By such an exclusive OR operation, all dWs other than those obtained by the InvMixColumns process are calculated. Then, the process proceeds to step S608.
ステップS608では、ステップS602の出力結果W0〜W3,W40〜W43と、ステップS606,607の結果dW4〜dW39を、復号用拡大鍵として出力する。以上で、復号用拡大鍵生成の処理は終了となる。 In step S608, the output results W 0 to W 3 and W 40 to W 43 in step S602 and the results dW 4 to dW 39 in steps S606 and 607 are output as the decryption extended key. This is the end of the process for generating the decryption extended key.
上記のように、本実施形態においては、第1実施形態と同様に、dwtを算出する際に、可能な限り演算コストの低い排他的論理和演算によりdwtを算出するため、演算コストを削減することができる。このため、本実施形態に係る構成によれば、128ビット鍵401から、拡大鍵を生成する際に、演算コストの大きいInvMixColumns処理403を削減して、処理を高速化することが可能である。
As described above, in the present embodiment, like the first embodiment, when calculating the dw t, for calculating dw t by low exclusive OR operation of calculating possible cost, the operation cost Can be reduced. Therefore, according to the configuration according to the present embodiment, when generating an extended key from the 128-bit key 401, it is possible to reduce the
<<第3実施形態>>
第1及び第2実施形態に係る構成では、先にKeyExpansionにて拡大鍵を生成した後に復号用拡大鍵の生成を行っていた。第1実施形態に係る構成の内部処理を変更することによって、KeyExpansionの処理を行うことなしに、復号用拡大鍵を生成することも可能である。
<< Third Embodiment >>
In the configurations according to the first and second embodiments, the expanded key for decryption is generated after the expanded key is generated first by KeyExpansion. By changing the internal processing of the configuration according to the first embodiment, it is possible to generate a decryption expanded key without performing KeyExpansion processing.
(拡大鍵生成の概要)
まず、本実施形態における処理の概要について、図7を参照して説明する。図7は、本実施形態に係る構成におけるAESの128ビット鍵701から復号用の拡大鍵を生成する処理を示すブロック図である。
(Overview of extended key generation)
First, an outline of processing in the present embodiment will be described with reference to FIG. FIG. 7 is a block diagram showing processing for generating an extended key for decryption from the AES 128-bit key 701 in the configuration according to the present embodiment.
まず、上記の128ビット鍵701から、KeySet処理702により、4個の拡大鍵W0〜W3を生成する。このKeySet処理702は、従来のKeyExpansion処理の128ビット鍵からW0〜W3を生成する処理と同様である。また、W0〜W3より、InvMixColumns処理703により、dWt(t=0〜4)が生成される。生成されたdWtを、後の処理にも流用することにより、最終的に全てのdWtが生成される。また、dWtの一部から、MixColumns処理704により、Wtが生成される。ただし、MixColumns処理704は、InvMixColumns処理703の逆変換処理である。
First, four expanded keys W 0 to W 3 are generated from the 128-bit key 701 by the
(拡大鍵生成処理)
次に、本実施形態に係る構成による拡大鍵生成処理について、図8を参照して説明する。図8は、本実施形態における拡大鍵生成処理の手順を示すフローチャートである。
(Extended key generation process)
Next, the extended key generation process with the configuration according to the present embodiment will be described with reference to FIG. FIG. 8 is a flowchart showing the procedure of the extended key generation process in the present embodiment.
まず、ステップS801では、上記の128ビット鍵を入力する。次に、ステップS802では、上記のKeySet処理を行い、4個のW0〜W3を生成する。次に、ステップS803では、ステップS802で選択されたW0〜W3に対し、上記のInvMixColumns変換を行う。この変換の結果、dW0〜dW3が生成される。 First, in step S801, the 128-bit key is input. Next, in step S802, the perform the above KeySet process to generate four W 0 to W-3. Next, in step S803, the above InvMixColumns conversion is performed on W 0 to W 3 selected in step S802. As a result of this conversion, dW 0 to dW 3 are generated.
一方、ステップS804において、ステップS802のKeySet処理で生成されたW3を選択する。次に、ステップS805では、ステップS804で選択されたW3に対し、上記(*2)KeyExpansionの処理内容に記載されたSubWord&RotWord&Rcon処理を行う。次に、ステップS806では、ステップS805にて生成されたデータに対し、InvMixColumns変換を行う。ステップS806の結果、生成されたデータを、dW'3として定義する。 On the other hand, in step S804, W 3 generated by the KeySet process in step S802 is selected. Next, in step S805, the relative W 3 selected in step S804, the performing the (* 2) described in the processing content of KeyExpansion the SubWord & RotWord & Rcon process. Next, in step S806, InvMixColumns conversion is performed on the data generated in step S805. Result of step S806, the generated data, defined as dW '3.
上記のステップS801〜S806の処理を行うと、ステップS807において、ステップS803及びS806で生成されたdW,dW'sを用いてWtの演算処理を行う。演算処理は式3にて示される。
[式3]
(t:0〜39)
この演算処理では、まず、dW4を算出する(つまり、t=4から処理を開始する)。ここで、dW3はdW'3と置き換えられて実行される。つまり、
となる。dW5以降については、次のステップS808の判定を行った後に実行する。なお、ステップS807の処理は、実行するたびにtの値を増加して行う。
When performing the processing of steps S801~S806, in step S807, dW generated in step S803 and S806, the calculation of W t using dW 's performed. The arithmetic processing is expressed by Equation 3.
[Formula 3]
(T: 0 to 39)
In this calculation process, first, dW 4 is calculated (that is, the process is started from t = 4). Here, dW 3 is replaced with dW ′ 3 for execution. That means
It becomes. For dW 5 or later, it is executed after the determination of the next step S808. Note that the process of step S807 is performed by increasing the value of t each time it is executed.
ステップS807の処理の後、ステップS808において、ステップS807の処理ステップ毎にパラメータの判定を行う。即ち、dWtの演算において、tが、tmodNk=Nk−1、もしくは、36≦t≦39を満たすか否かを判定する。tが、tmodNk=Nk−1、又は、36≦t≦39を満たす場合(ステップS808でYES)はステップS809へ進み、満たさない場合(ステップS808でNO)はステップS807へ戻って演算処理を継続する。なお、本実施形態に係る構成では、Nk=4である。 After the process of step S807, the parameter is determined for each process step of step S807 in step S808. That, in the calculation of dW t, t is, tmodNk = Nk-1, or to determine whether it satisfies 36 ≦ t ≦ 39. If t satisfies tmodNk = Nk−1 or 36 ≦ t ≦ 39 (YES in step S808), the process proceeds to step S809. If not (NO in step S808), the process returns to step S807 to continue the calculation process. To do. In the configuration according to the present embodiment, Nk = 4.
ステップS809では、ステップS808が真(YES)である場合、上記MixColumnsの変換を行い、Wtを導出する。そして、ステップS810へと進む。 In step S809, if the step S808 is true (YES), it performs conversion of the MixColumns, derives the W t. Then, the process proceeds to step S810.
ステップS810では、tが、t modNk=Nk−1であり、かつ、t≠39であるか否かを判定する。t modNk=Nk−1、及び、t≠39の両方を満たす場合(ステップS810でYES)、即ち、判定が真の時は、ステップS811へと進む。偽の場合(ステップS810でNO)、ステップS807に戻り演算処理を継続する。 In step S810, it is determined whether t is t modNk = Nk−1 and t ≠ 39. If both t mod Nk = Nk−1 and t ≠ 39 are satisfied (YES in step S810), that is, if the determination is true, the process proceeds to step S811. If it is false (NO in step S810), the process returns to step S807 to continue the calculation process.
ステップS811では、ステップS809で生成されたWtに対し、上記(*2)KeyExpansionの処理内容に記載されたSubWord&RotWord&Rcon処理を行う。 In step S811, with respect to W t generated in step S809, it performs the (* 2) described in the processing content of KeyExpansion the SubWord & RotWord & Rcon process.
次に、ステップS812において、ステップS811で生成されたデータに対し、InvMixColumns変換を行う。ステップS812の結果、生成されたデータを、dW'tとして定義する。そして、ステップS807に戻り、演算処理を継続する。この際、式3のdWt-1はdW't-1に置き換えられる。このようにしてdWを算出する。 Next, in step S812, InvMixColumns conversion is performed on the data generated in step S811. Result of step S812, the generated data, defined as dW 't. Then, the process returns to step S807 and the calculation process is continued. At this time, dW t−1 in Equation 3 is replaced with dW ′ t−1 . In this way, dW is calculated.
ステップS809において、全てのWt、即ち、W0〜W39が導出されると、ステップS813へ進む。ステップS813では、ステップS809にて作成されたWtからW36〜W39を選択する。 When all W t , that is, W 0 to W 39 are derived in step S809, the process proceeds to step S813. In step S813, W 36 to W 39 are selected from W t created in step S809.
次に、ステップS814において、ステップS810で選択されたW36〜W39を用いて、W40〜W43生成処理を行う。この生成処理は、従来のKeyExpansion処理と同様である。 Next, in step S814, W 40 to W 43 generation processing is performed using W 36 to W 39 selected in step S810. This generation process is the same as the conventional KeyExpansion process.
次に、ステップS815では、ステップS802の出力結果W0〜W3、ステップS814の出力結果W40〜W43、及び、ステップS807の出力結果dW4〜dW39を、復号用拡大鍵として出力する。以上で、復号用拡大鍵生成の処理は終了となる。 Next, in step S815, output W 0 to W-3 of the step S802, the output W 40 to W-43 in steps S814 and, an output result dW 4 ~dW 39 in step S807, and outputs the extended key for decryption . This is the end of the process for generating the decryption extended key.
KeyExpansion処理においても換字変換が行われるが、以上のように、本実施形態に係る構成においては、全てのWtを求めるために、逐一KeyExpansionの処理を実行しない。このため、本実施形態に係る構成によれば、更に、低い演算コストで復号用拡大鍵を生成することができる。 Although substitution conversion is performed even in KeyExpansion processing, as described above, in the configuration according to the present embodiment, in order to determine all of W t, it does not execute the processing of one by one KeyExpansion. For this reason, according to the configuration according to the present embodiment, it is possible to generate the decryption extended key at a lower calculation cost.
<<第4実施形態>>
第1〜第3実施形態では、入力する固定データが鍵データである場合を想定したが、入力する固定データはこれに限られない。例えば、入力データが固定長の擬似乱数のシード等の場合にも適用可能である。第1〜第3実施形態の手法を適用可能な、擬似乱数の生成に用いる擬似乱数生成器としては、例えば、PANAMA型擬似乱数生成器のようなブロック暗号と同じ原理に基づいた擬似乱数生成器が挙げられる。なお、PANAMA型擬似乱数生成器は、Fast Hashing and Stream Encryption with PANAMA(FSE(Fast Software Encryption)/1998)に準拠している。
<< Fourth Embodiment >>
In the first to third embodiments, it is assumed that the fixed data to be input is key data, but the fixed data to be input is not limited to this. For example, the present invention is also applicable when the input data is a fixed-length pseudorandom number seed or the like. As a pseudo random number generator used for generating a pseudo random number to which the methods of the first to third embodiments can be applied, for example, a pseudo random number generator based on the same principle as a block cipher such as a PANAMA type pseudo random number generator Is mentioned. The PANAMA type pseudo-random number generator conforms to Fast Hashing and Stream Encryption with PANAMA (FSE (Fast Software Encryption) / 1998).
このような擬似乱数生成器は、式4および式5のような構成を、処理の全体もしくは処理の一部に含まなければならない。
[式4]
OutData=S[InData] ・・・
[式5]
式4および式5のInData,InDataX,InDataYは擬似乱数のシードもしくは擬似乱数の処理の過程で生成されるデータを指す。Sは換字変換を伴う処理を示しており、OutDataは擬似乱数の処理の過程で生成されるデータを指し、少なくとも上記の換字変換で生成されるデータを含む。式4のS[InData]が式5のように構成できるのであれば、第1〜第3実施形態の手法を適用可能であり、演算コストを削減することができる。
Such a pseudo-random number generator must include the configurations of Equation 4 and Equation 5 in the entire process or a part of the process.
[Formula 4]
OutData = S [InData] ...
[Formula 5]
InData, InDataX, and InDataY in Expression 4 and Expression 5 indicate data generated in the process of pseudorandom number seeding or pseudorandom number processing. S indicates processing accompanied by substitution conversion, and OutData indicates data generated in the process of pseudorandom number processing, and includes at least data generated by the substitution conversion described above. If S [InData] in Expression 4 can be configured as in Expression 5, the methods of the first to third embodiments can be applied, and the calculation cost can be reduced.
<<その他の実施形態>>
第1乃至第4の実施形態は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等)から構成されるシステムの一部として適用しても、ひとつの機器(たとえば複写機、ファクシミリ装置)からなるものの一部に適用してもよい。
<< Other Embodiments >>
Even if the first to fourth embodiments are applied as part of a system including a plurality of devices (for example, a host computer, an interface device, a reader, and a printer), a single device (for example, a copier, a facsimile machine) You may apply to a part of what consists of.
また、本発明の実施形態例について詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様を取ることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。 Moreover, although the exemplary embodiments of the present invention have been described in detail, the present invention can take an embodiment as a system, apparatus, method, program, storage medium, or the like. Specifically, the present invention may be applied to a system composed of a plurality of devices, or may be applied to an apparatus composed of a single device.
尚、本発明は、前述した実施形態の機能を実現するプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。 The present invention can also be achieved by supplying a program that realizes the functions of the above-described embodiment directly or remotely to a system or apparatus, and the computer of the system or apparatus reads and executes the supplied program code. Including the case where it is achieved.
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明の技術的範囲に含まれる。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含む。 Therefore, since the functions of the present invention are implemented by a computer, the program code installed in the computer is also included in the technical scope of the present invention. That is, the present invention includes a computer program itself for realizing the functional processing of the present invention.
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。 In that case, as long as it has the function of a program, it may be in the form of object code, a program executed by an interpreter, script data supplied to the OS, and the like.
プログラムを供給するための記録媒体としては、例えば、次のものが含まれる。即ち、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)等が含まれる。 Examples of the recording medium for supplying the program include the following. Namely, floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card, ROM, DVD (DVD-ROM, DVD-) R) and the like are included.
その他、プログラムの供給形態としては、次のようなものも考えられる。即ち、クライアント装置のブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明に係るコンピュータプログラム、或いは、圧縮され自動インストール機能を含むファイルをHD等の記録媒体にダウンロードする形態も考えられる。また、本発明に係るプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。 In addition, the following types of programs may be considered. That is, it is also possible to connect to a homepage on the Internet using a browser of a client device and download a computer program according to the present invention or a compressed file including an automatic installation function from the homepage to a recording medium such as an HD. It can also be realized by dividing the program code constituting the program according to the present invention into a plurality of files and downloading each file from a different homepage. That is, a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer is also included in the present invention.
また、次のような供給形態も考えられる。即ち、まず、本発明に係るプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布する。そして、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報の使用により暗号化されたプログラムを実行してコンピュータにインストールさせて本発明に係る構成を実現する。このような供給形態も可能である。 The following supply forms are also conceivable. That is, first, the program according to the present invention is encrypted, stored in a storage medium such as a CD-ROM, and distributed to users. Further, the present invention allows a user who has cleared a predetermined condition to download key information to be decrypted from a homepage via the Internet, execute a program encrypted by using the key information, and install the program on a computer. The structure which concerns on is implement | achieved. Such a supply form is also possible.
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、次のような実現形態も想定される。即ち、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。 In addition to realizing the functions of the above-described embodiments by the computer executing the read program, the following implementation modes are also assumed. In other words, based on the instructions of the program, the OS running on the computer performs part or all of the actual processing, and the functions of the above-described embodiments can be realized by the processing.
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づいても前述した実施形態の機能が実現される。即ち、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。 Further, after the program read from the recording medium is written in the memory provided in the function expansion board inserted in the computer or the function expansion unit connected to the computer, the above-described embodiment is also based on the instructions of the program. The function is realized. That is, a CPU or the like provided in the function expansion board or function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.
Claims (11)
前記シード情報を入力する入力手段と、
入力された前記シード情報に基づいて複数の中間情報を演算する演算手段と、
前記演算により得られた前記複数の中間情報に基づいて、該中間情報にそれぞれ対応する複数の拡大情報を導出する導出手段と、
前記導出手段において導出された前記拡大情報を出力する出力手段と、
を備え、
前記導出手段は、
前記複数の中間情報の第1の集合について、該中間情報にそれぞれ対応する第1拡大情報を、換字変換を伴う処理により導出し、
前記複数の中間情報の第2の集合について、該中間情報にそれぞれ対応する第2拡大情報を、導出された前記第1拡大情報に基づいて、排他的論理和演算により導出する
ことを特徴とする情報処理装置。 An information processing apparatus that generates a plurality of enlarged information based on seed information,
Input means for inputting the seed information;
A computing means for computing a plurality of intermediate information based on the inputted seed information;
Derivation means for deriving a plurality of pieces of extended information respectively corresponding to the intermediate information based on the plurality of intermediate information obtained by the calculation;
Output means for outputting the enlarged information derived by the derivation means;
With
The derivation means includes
For the first set of the plurality of intermediate information, the first extended information corresponding to each of the intermediate information is derived by processing involving substitution conversion;
For the second set of the plurality of intermediate information, second extended information respectively corresponding to the intermediate information is derived by exclusive OR operation based on the derived first extended information. Information processing device.
前記導出手段は、前記テーブル情報の参照に基づいて前記換字変換を実行する
ことを特徴とする請求項1乃至4のいずれか1項に記載の情報処理装置。 A second storage means for storing table information indicating a correspondence relationship between the operand value and the calculation result value;
The information processing apparatus according to claim 1, wherein the derivation unit performs the substitution conversion based on a reference to the table information.
前記共通鍵情報に基づいて、先頭ラウンド用の複数の中間情報を生成する中間情報生成手段と、
生成された前記中間情報に対して、換字処理を伴う処理を実行して、先頭ラウンド用の複数の拡大情報を生成する第1生成手段と、
前記先頭ラウンドに続く後段の注目ラウンドについて、当該注目ラウンド中の一つの拡大情報を、直前のラウンドの1つの拡大情報を逆変換して得られる中間情報に基づいて生成し、該注目ラウンド中の残りの拡大情報を、従前の拡大情報に基づき排他的論理和演算により導出する第2生成手段と、
を備えることを特徴とする情報処理装置。 An information processing apparatus that inputs common key information and performs encryption processing on information to be processed in a plurality of rounds based on a plurality of expanded information obtained by expanding the common key information. ,
Intermediate information generating means for generating a plurality of intermediate information for the first round based on the common key information;
A first generation unit configured to generate a plurality of pieces of enlarged information for the first round by executing a process involving substitution processing on the generated intermediate information;
For the subsequent attention round following the first round, one expansion information in the attention round is generated based on intermediate information obtained by inversely transforming one expansion information of the immediately preceding round, Second generation means for deriving the remaining expansion information by exclusive OR operation based on the previous expansion information;
An information processing apparatus comprising:
前記シード情報を入力する入力工程と、
入力された前記シード情報に基づいて複数の中間情報を演算する演算工程と、
前記演算により得られた前記複数の中間情報に基づいて、該中間情報にそれぞれ対応する複数の拡大情報を導出する導出工程と、
前記導出工程において導出された前記拡大情報を出力する出力工程と、
を備え、
前記導出工程においては、
前記複数の中間情報の第1の集合について、該中間情報にそれぞれ対応する第1拡大情報が、換字変換を伴う処理により導出され、
前記複数の中間情報の第2の集合について、該中間情報にそれぞれ対応する第2拡大情報が、導出された前記第1拡大情報に基づいて、排他的論理和演算により導出される
ことを特徴とする情報処理装置の制御方法。 A method for controlling an information processing apparatus that generates a plurality of pieces of enlarged information based on seed information,
An input step for inputting the seed information;
A calculation step of calculating a plurality of intermediate information based on the input seed information;
A derivation step of deriving a plurality of pieces of enlarged information corresponding to each of the intermediate information based on the plurality of intermediate information obtained by the calculation;
An output step of outputting the enlarged information derived in the derivation step;
With
In the derivation step,
For the first set of the plurality of intermediate information, first expanded information corresponding to each of the intermediate information is derived by processing involving substitution conversion;
For the second set of the plurality of intermediate information, second extended information corresponding to each of the intermediate information is derived by exclusive OR operation based on the derived first expanded information. Control method for information processing apparatus.
前記共通鍵情報に基づいて、先頭ラウンド用の複数の中間情報を生成する中間情報生成工程と、
生成された前記中間情報に対して、換字処理を伴う処理を実行して、先頭ラウンド用の複数の拡大情報を生成する第1生成工程と、
前記先頭ラウンドに続く後段の注目ラウンドについて、当該注目ラウンド中の一つの拡大情報を、直前のラウンドの1つの拡大情報を逆変換して得られる中間情報に基づいて生成し、該注目ラウンド中の残りの拡大情報を、従前の拡大情報に基づき排他的論理和演算により導出する第2生成工程と、
を備えることを特徴とする情報処理装置の制御方法。 A control method for an information processing apparatus that performs cryptographic processing on information to be processed in a plurality of rounds based on a plurality of pieces of expanded information obtained by inputting the common key information and expanding the common key information. Because
An intermediate information generating step for generating a plurality of intermediate information for the first round based on the common key information;
A first generation step of performing a process involving substitution processing on the generated intermediate information to generate a plurality of pieces of enlarged information for the first round;
For the subsequent attention round following the first round, one expansion information in the attention round is generated based on intermediate information obtained by inversely transforming one expansion information of the immediately preceding round, A second generation step of deriving the remaining expansion information by exclusive OR operation based on the previous expansion information;
An information processing apparatus control method comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006162806A JP2007333815A (en) | 2006-06-12 | 2006-06-12 | Information processor and its control method, program, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006162806A JP2007333815A (en) | 2006-06-12 | 2006-06-12 | Information processor and its control method, program, and storage medium |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007333815A true JP2007333815A (en) | 2007-12-27 |
Family
ID=38933375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006162806A Withdrawn JP2007333815A (en) | 2006-06-12 | 2006-06-12 | Information processor and its control method, program, and storage medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007333815A (en) |
-
2006
- 2006-06-12 JP JP2006162806A patent/JP2007333815A/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6964688B2 (en) | Devices and methods for performing approximation operations on ciphertext | |
US9503256B2 (en) | SMS4 acceleration hardware | |
JP2008058827A (en) | Encryption processor and processing method, and computer program | |
JP2004505289A (en) | Computer efficient linear feedback shift register. | |
JP2000305453A (en) | Ciphering device, deciphering device, and ciphering and deciphering device | |
JP2008306395A (en) | Information processor, information processing method | |
JP5188414B2 (en) | Information processing apparatus, information processing method, and program | |
JP4818279B2 (en) | Program processing apparatus, program processing method, and program | |
JP4853026B2 (en) | Information processing apparatus and program | |
JP5102536B2 (en) | Stream cipher encryption apparatus, decryption apparatus, encryption method, decryption method, and program | |
JP2007333815A (en) | Information processor and its control method, program, and storage medium | |
EP1655883B1 (en) | Information-processing apparatus, information-processing method, and recording medium | |
JP2004004784A (en) | System and method for mounting hash algorithm | |
JP5354914B2 (en) | Encryption processing device, decryption processing device, and program | |
JP2011123229A (en) | Program code encryption device and program | |
JP2006270343A (en) | Partial encryption device, its method, and its program | |
JP6876423B2 (en) | Internal state initializer, method and program in stream cipher | |
JP5268413B2 (en) | Disclosure restriction processing apparatus, data processing system, and program | |
JP2006279406A (en) | Encrypting and decrypting method, and apparatus threefor | |
JP2007013503A (en) | Encryption device and method and decryption device and method | |
JP2010268149A (en) | Decoder, decoding method, and program | |
JP4990843B2 (en) | Cryptographic operation apparatus, method thereof, and program | |
JP2005204128A (en) | Individual key generating apparatus and program | |
JP5407585B2 (en) | Program code encryption apparatus and program | |
JP2007034178A (en) | Data converter, program, storage medium |
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: 20090901 |