JP2004245988A - データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路 - Google Patents
データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路 Download PDFInfo
- Publication number
- JP2004245988A JP2004245988A JP2003034591A JP2003034591A JP2004245988A JP 2004245988 A JP2004245988 A JP 2004245988A JP 2003034591 A JP2003034591 A JP 2003034591A JP 2003034591 A JP2003034591 A JP 2003034591A JP 2004245988 A JP2004245988 A JP 2004245988A
- Authority
- JP
- Japan
- Prior art keywords
- linear conversion
- circuit
- data
- linear
- specified
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key scheduling, i.e. generating round keys or sub-keys for block encryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
【課題】アクティブS−box数を最大にする線形変換を特定するデータ処理方法を提供する。
【解決手段】複数の線形変換候補のうち、当該線形変換候補を実現する回路上の制約を満たす複数の前記線形変換候補を特定し(ST1,ST2,ST3)、当該特定した線形変換候補のそれぞれについて複数の入力データを基に線形変換処理を行い、それらの処理結果内に生じる零の数の最小値(いわゆるアクティブS−box)を求め(ST4〜ST9)、その最小値を最大とする線形変換候補を特定する(ST10)。そして、当該特定した線形変換候補を基に、線形変換部を構成する(ST11)。
【選択図】 図4
【解決手段】複数の線形変換候補のうち、当該線形変換候補を実現する回路上の制約を満たす複数の前記線形変換候補を特定し(ST1,ST2,ST3)、当該特定した線形変換候補のそれぞれについて複数の入力データを基に線形変換処理を行い、それらの処理結果内に生じる零の数の最小値(いわゆるアクティブS−box)を求め(ST4〜ST9)、その最小値を最大とする線形変換候補を特定する(ST10)。そして、当該特定した線形変換候補を基に、線形変換部を構成する(ST11)。
【選択図】 図4
Description
【0001】
【発明の属する技術分野】
本発明は、暗号化処理などで規定された線形変換を行う線形変換回路の設計に用いられるデータ処理方法、装置、そのプログラムと、線形変換回路および暗号化装置に関する。
【0002】
【従来の技術】
情報セキュリティを達成するために種々の暗号化技術開発されている。
このような暗号化技術の一種である共通鍵ブロック暗号は、例えば、非線形処理と線形処理(拡散処理)とからなるラウンド関数を規定している。
上記ラウンド関数の非線形処理は、S−boxと呼ばれるユニットで構成され、入出力間の非線形性を実現している。
また、上記ラウンド関数の線形処理は、多ビットからなる入力データの影響を複数ビットに拡散させる線形変換を行う。
このような線形変換を用いる方法として、AES(Advanced Encryption Standard)等で用いられるMDS(Maximal Distance Separable)を利用したものがある。
MDSは、GF(28 )等の拡大体上の変換を用いることによって、効率よくビット拡散を行う手法である。
しかしながら、MDSは、実装時に回路構成が複雑になるという欠点がある。
このような決定を解消するものとして、CamelliaおよびE2などの暗号手法がある。この暗号手法では、高速かつ小規模な構成の回路を構成するために、GF(2)上の変換が用いられている。
【0003】
【特許文献1】
特開2002−91295号公報
【0004】
【発明が解決しようとする課題】
しかしながら、GF(2)上の変換による高い拡散効率を得るために、いわゆるアクティブ(Active)S−box数を最大にする回路構成を、線形変換を実現する回路上の制約とは無関係に、全ての線形変換候補について演算を行って決定しており、膨大な計算量が必要になるという問題がある。
ここで、アクティブS−box数は、複数の入力データに対して上記ラウンド関数の線形処理を行い、それらの処理結果内に生じる零の数の最小値である。
【0005】
本発明はかかる事情に鑑みてなされたものであり、その目的は、複数の線形変換候補のなかから、複数の入力データに線形変換を行った結果に零が生じる個数の最小値が最大となる線形変換候補を従来に比べて少ない演算量で特定できるデータ処理方法、その装置および、そのプログラムを提供することを目的とする。
また、本発明は、上述したデータ処理方法、その装置およびそのプログラムによって設計される線形変換回路および暗号化装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
上述した目的を達成するために、第1の発明のデータ処理方法は、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の工程と、前記第1の工程で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の工程と、前記第1の工程で特定した前記複数の線形変換候補のうち、前記第2の工程で特定した前記最小値が最大となる前記線形変換候補を特定する第3の工程とを有する。
【0007】
第1の発明のデータ処理方法の作用は以下のようになる。
先ず、第1の工程において、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する。
次に、第2の工程において、前記第1の工程で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する。
次に、第3の工程において、前記第1の工程で特定した前記複数の線形変換候補のうち、前記第2の工程で特定した前記最小値が最大となる前記線形変換候補を特定する。
【0008】
第1の発明のデータ処理方法は、好ましくは、前記第1の工程は、前記複数の線形変換候補として、置換行列内の2つの零領域のうち一方を変数行列で置き換えた複数の単位線形変換の合成である線形変換を特定し、前記第2の工程は、前記複数の単位線形変換の前記変数行列として異なる複数の行列を付与して得られる前記線形変換候補の各々について、前記最小値を特定する。
【0009】
第2の発明のプログラムは、コンピュータによって実行されるプログラムであって、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の手順と、前記第1の手順で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の手順と、前記第1の手順で特定した前記複数の線形変換候補のうち、前記第2の手順で特定した前記最小値が最大となる前記線形変換候補を特定する第3の手順とを記述している。
【0010】
第2の発明のプログラムは、コンピュータによって実行され、前述した第1の発明の各工程を実現する。
【0011】
第3の発明のデータ処理装置は、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の手段と、前記第1の手段で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の手段と、前記第1の手段で特定した前記複数の線形変換候補のうち、前記第2の手段で特定した前記最小値が最大となる前記線形変換候補を特定する第3の手段とを有する。
【0012】
第3の発明のデータ処理装置の作用は以下のようになる。
先ず、第1の手段において、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する。
次に、第2の手段において、前記第1の手段で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する。
次に、第3の手段において、前記第1の手段で特定した前記複数の線形変換候補のうち、前記第2の手段で特定した前記最小値が最大となる前記線形変換候補を特定する。
【0013】
第4の発明の線形変換回路は、共通鍵ブロック暗号のラウンド関数処理内で規定された線形変換を行う線形変換回路であって、複数のデータのそれぞれに対応した複数のデータ線と、前記複数のデータ線を介して入力された前記複数のデータに線形変換を順に施す複数の回路ブロックとを有し、前記回路ブロックの各々は、前記複数のデータ線のうち一部の複数の前記データ線上に設けられた演算回路を有し、演算回路が設けられていない各々の前記データ線から最大1個の前記演算回路に対してデータが供給されるように構成されている。
【0014】
第5の発明の暗号化装置は、ラウンド関数処理を行って共通鍵ブロック暗号化を行う暗号化装置であって、前記ラウンド関数処理内で規定された非線形変換を行う非線形変換回路と、前記非線形変換回路により前記非線形変換が施された入力データに対して線形変換を行う線形変換回路とを有し、前記線形変換回路は、前記入力データを構成する複数のデータのそれぞれに対応した複数のデータ線と、前記データ線を介して入力された前記複数のデータに線形変換を順に施す複数の回路ブロックとを有し、前記回路ブロックの各々は、前記複数のデータ線のうち一部の複数の前記データ線上に設けられた演算回路を有し、演算回路が設けられていない各々の前記データ線から最大1個の前記演算回路に対してデータが供給されるように構成されている。
【0015】
【発明の実施の形態】
以下、本発明の実施形態に係わる回路設計方法および暗号化装置について説明する。
先ず、本実施形態の回路設計方法によって設計される線形変換回路を組み込んだ暗号化装置について説明する。
図1は、本実施形態の暗号化装置1の構成図である。
暗号化装置1は第5の発明の暗号化装置に対応している。
図1に示すように、暗号化装置1は、例えば、鍵生成回路2、初期処理回路3、N個のFeistel構造モジュール4_1〜4_Nおよび後処理回路5を有する。ここで、Nは2以上の整数である。
暗号化装置1は、共通鍵ブロック暗号を行う。
【0016】
鍵生成回路2は、鍵データK1,K2_1〜K2_N,K3を生成し、鍵データK1を初期処理回路3に出力し、鍵データK2_1〜K2_NをそれぞれFeistel構造モジュール4_1〜4_Nに出力し、鍵データK3を後処理回路5に出力する。
【0017】
初期処理回路3は、入力した平文データPTに初期変換を施してデータS3を生成する。
データS3は、例えば、128ビットのデータである。
初期処理回路3は、データS3の下位64ビットのデータS3aをFeistel構造モジュール4_1のF関数回路11に出力し、下位64ビットのデータS3bをFeistel構造モジュール4_1のXOR(eXclusive OR:排他的論理和) 回路12に出力する。
【0018】
Feistel構造モジュール4_1〜4_Nの各々は、F関数回路11およびXOR回路12を有する。
Feistel構造モジュール4_1〜4_Nは、直列に接続され、同じ構成を有している。
以下、Feistel構造モジュール4_1について説明する。
F関数回路11は、初期処理回路3からのデータS3aに対して、非線形処理および線形処理(拡散処理)を施して、データS11を生成し、これをXOR回路12に出力する。
F関数回路11は、本発明のラウンド関数処理を行う。
F関数回路11の構成については、後に詳細に説明する。
【0019】
XOR回路12は、初期処理回路3からのデータS3bとF関数回路11からのデータS11との排他的論理和を演算し、その結果であるデータS12を後段のFeistel構造モジュール4_2のF関数回路11に出力する。
また、F関数回路11は、初期処理回路3からのデータS3aを後段のFeistel構造モジュール4_2のXOR回路12に出力するように構成されている。
その前段のFeistel構造モジュール4_N−1からのデータS3aを下位64ビットとし、Feistel構造モジュール4_NのXOR回路12からのデータS12を上位64ビットとした128ビットのデータが、最終段のFeistel構造モジュール4_Nから後処理回路5に出力される。
【0020】
後処理回路5は、Feistel構造モジュール4_Nからの128ビットのデータに対して、鍵生成回路2からの鍵データK3を用いて後処理を行い、その結果である暗号化データCTを出力する。
【0021】
以下、図1に示すF関数回路11の構成について説明する。
図2は、図1に示すF関数回路11の構成図である。
図2に示すように、F関数回路11は、例えば、XOR部21、非線形変換部22、線形変換部23、XOR部24および非線形変換部25を有する。
ここで、非線形変換部22が第5の発明の非線形変換回路に対応している。
また、線形変換部23が第1の発明〜第3の発明を用いた設計対象となり、第4および第5の発明の線形変換回路に対応している。
【0022】
F関数回路11では、入力された64ビットのデータS3aが、各々8ビットの8個のデータモジュールに分割されて処理される。
XOR部21は、データS3aを分割して得られた8個のデータモジュールの各々に対して、鍵生成回路2から入力した鍵データK1との排他的論理和演算を施し、その結果をそれぞれ非線形変換部22に出力する。
【0023】
非線形変換部22は、上記8個のデータモジュールに対応してそれぞれ設けられた非線形変換回路31を有し、非線形変換回路31において、入力したデータモジュールに対して非線形変換処理を施し、その結果である8個のデータモジュールを線形変換部23に出力する。
非線形変換回路31は、例えば、S−boxと呼ばれる。
【0024】
線形変換部23は、非線形変換部22からのデータをバイト単位でGF(2)上の演算である拡散処理を行う。
線形変換部23は、非線形変換部22から入力した8個のデータモジュールをそれぞれ伝送する8個のデータ線26_1〜26_8(第4および第5の発明のデータ線)を有する。
線形変換部23は、図2に示すように、直列に接続された4個の回路ブロック41_1〜41_4(第4および第5の発明の回路ブロック)を有する。
回路ブロック41_1は、データ線26_5〜26_8上の各々にXOR回路(第4および第5の発明の演算回路)を配設している。
また、データ線26_1,26_2,26_3,26_4上のデータモジュールが、各々データ線26_5,26_6,26_7,26_8上のXOR回路に入力されるように配線されている。
回路ブロック41_2は、データ線26_1〜26_4上の各々にXOR回路を配設している。
【0025】
また、データ線26_5,26_6,26_7,26_8上のデータモジュールが、各々データ線26_3,26_4,26_1,26_2上のXOR回路に入力されるように配線されている。
また、データ線26_1,26_2,26_3,26_4上のデータモジュールが、各々データ線26_6,26_7,26_8,26_5上のXOR回路に入力されるように配線されている。
また、データ線26_5,26_6,26_7,26_8上のデータモジュールが、各々データ線26_1,26_2,26_3,26_4上のXOR回路に入力されるように配線されている。
【0026】
XOR部24は、線形変換部23から入力した8個のデータモジュールの各々に対して、鍵生成回路2から入力した鍵データK3との排他的論理和演算を施し、その結果をそれぞれ非線形変換部25に出力する。
【0027】
非線形変換部25は、XOR部24からの上記8個のデータモジュールに対応してそれぞれ設けられた非線形変換回路32を有し、非線形変換回路32において、入力したデータモジュールに対して非線形変換処理を施し、その結果である8個のデータモジュールを出力する。
非線形変換回路32は、例えば、S−boxと呼ばれる。
非線形変換部25から出力された8個のデータモジュールは、図2に示すように、組み合わされて図1に示すデータS11としてXOR回路12に出力される。
【0028】
以下、図2に示すF関数回路11の線形変換部23の設計方法について説明する。
【0029】
図3は、図2に示すF関数回路11の線形変換部23の設計に用いられるコンピュータ39を説明するための図である。
図3に示すように、コンピュータ39は、例えば、メモリ51、操作部52、ディスプレイ53およびCPU54を有し、これらがバス50を介して接続されている。
ここで、コンピュータ39が第3の発明のデータ処理装置に対応している。
メモリ51は、コンピュータ39が実行するプログラム48(第2の発明のプログラム)、並びにコンピュータ39によるプログラム48の実行に用いられる種々のデータを記憶する。
操作部52は、キーボードやマウス等であり、ユーザによる操作に応じた操作信号をCPU54に出力する。
ディスプレイ53は、コンピュータ39の処理結果を表示する。
CPU54は、メモリ51から読み出したプログラム58を実行し、図2に示すF関数回路11の設計処理を行う。
CPU54は、複数の線形変換候補のうち、当該線形変換候補を実現する回路上の制約を満たす複数の前記線形変換候補を特定し、当該特定した線形変換候補のそれぞれについて複数の入力データを基に線形変換処理を行い、それらの処理結果内に生じる零の数の最小値(いわゆるアクティブS−box)を求め、その最小値を最大とする線形変換候補を特定する。そして、CPU54は、当該特定した線形変換候補を基に、図2に示す線形変換部23を構成する。
【0030】
以下、CPU54の設計処理手順(本実施形態の設計方法)を説明する。
図4は、CPU54の設計処理手順を説明するためのフローチャートである。
以下の手順の一部は、例えば、CPU54がディスプレイ53に表示した操作画面を基にユーザが行った操作部52の操作に応じて、ユーザとCPU54との間で対話形式で行われる。
なお、図4に示すステップST1〜ST3が第1の発明の第1の工程、第2の発明の第1の手順、並びに第3の発明の第1の手段に対応している。
ステップST4〜ST9が第1の発明の第2の工程、第2の発明の第2の手順、並びに第3の発明の第2の手段に対応している。
ステップST10が第1の発明の第3の工程、第2の発明の第3の手順、並びに第3の発明の第3の手段に対応している。
【0031】
ステップST1:
ユーザは、設計対象の図2に示す線形変換部23の線形変換を例えば、4つの線形変換ブロックに分割して規定し、その情報を操作部52を介してCPU54に与える。
【0032】
ステップST2:
CPU54は、ステップST1で受けた情報を基に、下記式(2),(3),(4),(5)に示すように、各々4×4の行列である変数行列C1 ,C2 ,C3 ,C4 を用いて、行列D1 ,D2 ,D3 ,D4 を規定する。
このように、各々8×8の行列である行列D1 ,D2 ,D3 ,D4 を規定することで、行列D1 ,D2 ,D3 ,D4 を実現した図2に示す回路ブロック41_1〜41_4を、XOR回路が設けられていないデータ線から、最大1個のXOR回路にデータモジュールを出力するように構成できる。これにより、回路ブロック41_1〜41_4に規定された回路上の制約が満たされる。
具体的には、図2に示すように、上位あるいは下位の4本のデータ線上にXOR回路を設け、当該XOR回路が設けられていない4本のデータ線から、それぞれ異なる上記XOR回路にデータモジュールを出力するように回路ブロック41_1〜41_4を構成できる。
すなわち、本実施形態では、上述したように行列D1 〜D4 を規定することで、回路上の制約を満たさないものについては、行列D1 〜D4 の候補から予め除外することができる。
【0033】
【数2】
【0034】
ステップST3:
CPU54は、下記式(6),(7)に示すように、ステップST2で規定した行列1 ,D2 ,D3 ,D4 を合成した行列A(本発明の線形変換候補)を算出する。
【0035】
【数3】
【0036】
【数4】
【0037】
ステップST4:
CPU54は、ステップST3で生成した行列A内の変数行列C1 ,C2 ,C3 ,C4 の各要素に所定の値を与える。
これにより、本発明にいう、「複数の線形変換候補の特定」が行われる。
なお、CPU54は、ステップST9からのループバックにより当該ステップST4の処理を複数回行い、その度に、異なる行列Aを規定する。
【0038】
ステップST5:
CPU54は、予め決められた複数の入力データ(本発明の入力データ)のうち、次に行列Aに入力する、すなわち行列Aによる演算対象とする入力データを決定する。
なお、CPU54は、ステップST8からのループバックにより当該ステップST5の処理を複数回行い、その度に、異なる入力データを決定する。
【0039】
ステップST6:
CPU54は、ステップST5で決定した入力データに対してステップST4で決定した行列Aの演算を行う。
ステップST7:
CPU54は、ステップST6の演算結果(64ビットデータ)内に含まれる零(0)の数を計数し、その計数値が、それまで計数した最小値より小さい場合に最小値を更新する。CPU54は、全ての行列Aの各々について当該最小値(本発明の最小値)を求める。
【0040】
ステップST8;
CPU54は、上記予め決められた全ての入力データについて、ステップST6の処理を行ったか否かを判断し、行ったと判断した場合にステップST9の処理に進み、そうでない場合にステップST5の処理に戻る。
ステップST9;
CPU54は、変数行列C1 ,C2 ,C3 ,C4 を用いて規定可能な全ての行列Aについて、ステップST6の処理を行ったか否かを判断し、行ったと判断した場合にステップST10の処理に進み、そうでない場合にステップST4の処理に戻る。
【0041】
ステップST10:
CPU54は、ステップST2で最終的に得られた全ての行列Aの最小値のうち、最大の最小値を出した行列Aを特定する。
ステップST11:
CPU54は、ステップST10で特定した行列Aで用いられた変数行列C1,C2 ,C3 ,C4 を用いて図2示す線形変換部23の回路ブロック41_1〜41_4を構成(設計)する。
【0042】
以上説明したように、本実施形態の設計方法によれば、複数の線形変換候補のうち、当該線形変換候補を実現する回路上の制約を満たす複数の前記線形変換候補を特定し、当該特定した線形変換候補のなかから、線形変換を行った結果に零が生じる個数の最小値を最大にする線形演算候補を探索(特定)するため、全ての線形変換候補を対象としてを探索を行う場合に比べて、演算量を大幅に削減できる。
具体的には、本実施形態の設計方法によれば、変数行列C1 〜C4 の各々は4×4の行列であるため、4!(4の階乗)通りの候補がある。従って、(C1 ,C2 ,C3 ,C4 )の組み合わせは、(4!)4 通り、すなわち線形変換候補は、約218通りになる。
これに対して、従来では、GF(2)上の8×8行列の全てを線形変換候補するため、線形変換候補は264通りになる。
従って、本実施形態の設計方法によれば、設計に伴う演算量を従来に比べて大幅に削減できる。これにより、本実施形態によれば、線形変換部23の設計を実用的な時間で行うことが可能になる。
【0043】
本発明は上述した実施形態には限定されない。
上述した実施形態では、GF(2)上の変換をバイト単位で行い、32ビット演算を高速に行う場合を例示したが、本発明は、例えば、16ビットワードをGF(2)上の変換の単位として64ビット演算を行ったり、バイトをGF(2)上の変換の単位として64ビット演算を行うことで、上記線形変換を行うように設計を行ってもよい。
【0044】
【発明の効果】
以上説明したように、本発明によれば、複数の線形変換候補のなかから、複数の入力データに線形変換を行った結果に零が生じる個数の最小値が最大となる線形変換候補を従来に比べて少ない演算量で特定できるデータ処理方法、その装置および、そのプログラムを提供できる。
また、本発明によれば、上述した本発明のデータ処理方法、その装置およびそのプログラムによって設計される線形変換回路および暗号化装置を提供できる。
【図面の簡単な説明】
【図1】図1は、本発明の実施形態に係わる暗号化装置の構成図である。
【図2】図2は、図1に示すF関数回路の構成図である。
【図3】図3は、図2に示すF関数回路の線形変換部の設計に用いられるコンピュータを説明するための図である。
【図4】図4は、図3に示すCPUの設計処理手順を説明するためのフローチャートである。
【符号の説明】
1…暗号化装置、2…鍵生成回路、3…初期処理回路、4_1〜4_N…Feistel構造モジュール、5…後処理回路、11…F関数回路、12…XOR回路、21…XOR部、22…非線形変換部、23…線形変換部、24…XOR部、25…非線形変換部、41_1〜41_4…回路ブロック、39…コンピュータ、51…メモリ、52…操作部、53…ディスプレイ、54…CPU、58…プログラム
【発明の属する技術分野】
本発明は、暗号化処理などで規定された線形変換を行う線形変換回路の設計に用いられるデータ処理方法、装置、そのプログラムと、線形変換回路および暗号化装置に関する。
【0002】
【従来の技術】
情報セキュリティを達成するために種々の暗号化技術開発されている。
このような暗号化技術の一種である共通鍵ブロック暗号は、例えば、非線形処理と線形処理(拡散処理)とからなるラウンド関数を規定している。
上記ラウンド関数の非線形処理は、S−boxと呼ばれるユニットで構成され、入出力間の非線形性を実現している。
また、上記ラウンド関数の線形処理は、多ビットからなる入力データの影響を複数ビットに拡散させる線形変換を行う。
このような線形変換を用いる方法として、AES(Advanced Encryption Standard)等で用いられるMDS(Maximal Distance Separable)を利用したものがある。
MDSは、GF(28 )等の拡大体上の変換を用いることによって、効率よくビット拡散を行う手法である。
しかしながら、MDSは、実装時に回路構成が複雑になるという欠点がある。
このような決定を解消するものとして、CamelliaおよびE2などの暗号手法がある。この暗号手法では、高速かつ小規模な構成の回路を構成するために、GF(2)上の変換が用いられている。
【0003】
【特許文献1】
特開2002−91295号公報
【0004】
【発明が解決しようとする課題】
しかしながら、GF(2)上の変換による高い拡散効率を得るために、いわゆるアクティブ(Active)S−box数を最大にする回路構成を、線形変換を実現する回路上の制約とは無関係に、全ての線形変換候補について演算を行って決定しており、膨大な計算量が必要になるという問題がある。
ここで、アクティブS−box数は、複数の入力データに対して上記ラウンド関数の線形処理を行い、それらの処理結果内に生じる零の数の最小値である。
【0005】
本発明はかかる事情に鑑みてなされたものであり、その目的は、複数の線形変換候補のなかから、複数の入力データに線形変換を行った結果に零が生じる個数の最小値が最大となる線形変換候補を従来に比べて少ない演算量で特定できるデータ処理方法、その装置および、そのプログラムを提供することを目的とする。
また、本発明は、上述したデータ処理方法、その装置およびそのプログラムによって設計される線形変換回路および暗号化装置を提供することを目的とする。
【0006】
【課題を解決するための手段】
上述した目的を達成するために、第1の発明のデータ処理方法は、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の工程と、前記第1の工程で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の工程と、前記第1の工程で特定した前記複数の線形変換候補のうち、前記第2の工程で特定した前記最小値が最大となる前記線形変換候補を特定する第3の工程とを有する。
【0007】
第1の発明のデータ処理方法の作用は以下のようになる。
先ず、第1の工程において、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する。
次に、第2の工程において、前記第1の工程で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する。
次に、第3の工程において、前記第1の工程で特定した前記複数の線形変換候補のうち、前記第2の工程で特定した前記最小値が最大となる前記線形変換候補を特定する。
【0008】
第1の発明のデータ処理方法は、好ましくは、前記第1の工程は、前記複数の線形変換候補として、置換行列内の2つの零領域のうち一方を変数行列で置き換えた複数の単位線形変換の合成である線形変換を特定し、前記第2の工程は、前記複数の単位線形変換の前記変数行列として異なる複数の行列を付与して得られる前記線形変換候補の各々について、前記最小値を特定する。
【0009】
第2の発明のプログラムは、コンピュータによって実行されるプログラムであって、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の手順と、前記第1の手順で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の手順と、前記第1の手順で特定した前記複数の線形変換候補のうち、前記第2の手順で特定した前記最小値が最大となる前記線形変換候補を特定する第3の手順とを記述している。
【0010】
第2の発明のプログラムは、コンピュータによって実行され、前述した第1の発明の各工程を実現する。
【0011】
第3の発明のデータ処理装置は、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の手段と、前記第1の手段で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の手段と、前記第1の手段で特定した前記複数の線形変換候補のうち、前記第2の手段で特定した前記最小値が最大となる前記線形変換候補を特定する第3の手段とを有する。
【0012】
第3の発明のデータ処理装置の作用は以下のようになる。
先ず、第1の手段において、線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する。
次に、第2の手段において、前記第1の手段で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する。
次に、第3の手段において、前記第1の手段で特定した前記複数の線形変換候補のうち、前記第2の手段で特定した前記最小値が最大となる前記線形変換候補を特定する。
【0013】
第4の発明の線形変換回路は、共通鍵ブロック暗号のラウンド関数処理内で規定された線形変換を行う線形変換回路であって、複数のデータのそれぞれに対応した複数のデータ線と、前記複数のデータ線を介して入力された前記複数のデータに線形変換を順に施す複数の回路ブロックとを有し、前記回路ブロックの各々は、前記複数のデータ線のうち一部の複数の前記データ線上に設けられた演算回路を有し、演算回路が設けられていない各々の前記データ線から最大1個の前記演算回路に対してデータが供給されるように構成されている。
【0014】
第5の発明の暗号化装置は、ラウンド関数処理を行って共通鍵ブロック暗号化を行う暗号化装置であって、前記ラウンド関数処理内で規定された非線形変換を行う非線形変換回路と、前記非線形変換回路により前記非線形変換が施された入力データに対して線形変換を行う線形変換回路とを有し、前記線形変換回路は、前記入力データを構成する複数のデータのそれぞれに対応した複数のデータ線と、前記データ線を介して入力された前記複数のデータに線形変換を順に施す複数の回路ブロックとを有し、前記回路ブロックの各々は、前記複数のデータ線のうち一部の複数の前記データ線上に設けられた演算回路を有し、演算回路が設けられていない各々の前記データ線から最大1個の前記演算回路に対してデータが供給されるように構成されている。
【0015】
【発明の実施の形態】
以下、本発明の実施形態に係わる回路設計方法および暗号化装置について説明する。
先ず、本実施形態の回路設計方法によって設計される線形変換回路を組み込んだ暗号化装置について説明する。
図1は、本実施形態の暗号化装置1の構成図である。
暗号化装置1は第5の発明の暗号化装置に対応している。
図1に示すように、暗号化装置1は、例えば、鍵生成回路2、初期処理回路3、N個のFeistel構造モジュール4_1〜4_Nおよび後処理回路5を有する。ここで、Nは2以上の整数である。
暗号化装置1は、共通鍵ブロック暗号を行う。
【0016】
鍵生成回路2は、鍵データK1,K2_1〜K2_N,K3を生成し、鍵データK1を初期処理回路3に出力し、鍵データK2_1〜K2_NをそれぞれFeistel構造モジュール4_1〜4_Nに出力し、鍵データK3を後処理回路5に出力する。
【0017】
初期処理回路3は、入力した平文データPTに初期変換を施してデータS3を生成する。
データS3は、例えば、128ビットのデータである。
初期処理回路3は、データS3の下位64ビットのデータS3aをFeistel構造モジュール4_1のF関数回路11に出力し、下位64ビットのデータS3bをFeistel構造モジュール4_1のXOR(eXclusive OR:排他的論理和) 回路12に出力する。
【0018】
Feistel構造モジュール4_1〜4_Nの各々は、F関数回路11およびXOR回路12を有する。
Feistel構造モジュール4_1〜4_Nは、直列に接続され、同じ構成を有している。
以下、Feistel構造モジュール4_1について説明する。
F関数回路11は、初期処理回路3からのデータS3aに対して、非線形処理および線形処理(拡散処理)を施して、データS11を生成し、これをXOR回路12に出力する。
F関数回路11は、本発明のラウンド関数処理を行う。
F関数回路11の構成については、後に詳細に説明する。
【0019】
XOR回路12は、初期処理回路3からのデータS3bとF関数回路11からのデータS11との排他的論理和を演算し、その結果であるデータS12を後段のFeistel構造モジュール4_2のF関数回路11に出力する。
また、F関数回路11は、初期処理回路3からのデータS3aを後段のFeistel構造モジュール4_2のXOR回路12に出力するように構成されている。
その前段のFeistel構造モジュール4_N−1からのデータS3aを下位64ビットとし、Feistel構造モジュール4_NのXOR回路12からのデータS12を上位64ビットとした128ビットのデータが、最終段のFeistel構造モジュール4_Nから後処理回路5に出力される。
【0020】
後処理回路5は、Feistel構造モジュール4_Nからの128ビットのデータに対して、鍵生成回路2からの鍵データK3を用いて後処理を行い、その結果である暗号化データCTを出力する。
【0021】
以下、図1に示すF関数回路11の構成について説明する。
図2は、図1に示すF関数回路11の構成図である。
図2に示すように、F関数回路11は、例えば、XOR部21、非線形変換部22、線形変換部23、XOR部24および非線形変換部25を有する。
ここで、非線形変換部22が第5の発明の非線形変換回路に対応している。
また、線形変換部23が第1の発明〜第3の発明を用いた設計対象となり、第4および第5の発明の線形変換回路に対応している。
【0022】
F関数回路11では、入力された64ビットのデータS3aが、各々8ビットの8個のデータモジュールに分割されて処理される。
XOR部21は、データS3aを分割して得られた8個のデータモジュールの各々に対して、鍵生成回路2から入力した鍵データK1との排他的論理和演算を施し、その結果をそれぞれ非線形変換部22に出力する。
【0023】
非線形変換部22は、上記8個のデータモジュールに対応してそれぞれ設けられた非線形変換回路31を有し、非線形変換回路31において、入力したデータモジュールに対して非線形変換処理を施し、その結果である8個のデータモジュールを線形変換部23に出力する。
非線形変換回路31は、例えば、S−boxと呼ばれる。
【0024】
線形変換部23は、非線形変換部22からのデータをバイト単位でGF(2)上の演算である拡散処理を行う。
線形変換部23は、非線形変換部22から入力した8個のデータモジュールをそれぞれ伝送する8個のデータ線26_1〜26_8(第4および第5の発明のデータ線)を有する。
線形変換部23は、図2に示すように、直列に接続された4個の回路ブロック41_1〜41_4(第4および第5の発明の回路ブロック)を有する。
回路ブロック41_1は、データ線26_5〜26_8上の各々にXOR回路(第4および第5の発明の演算回路)を配設している。
また、データ線26_1,26_2,26_3,26_4上のデータモジュールが、各々データ線26_5,26_6,26_7,26_8上のXOR回路に入力されるように配線されている。
回路ブロック41_2は、データ線26_1〜26_4上の各々にXOR回路を配設している。
【0025】
また、データ線26_5,26_6,26_7,26_8上のデータモジュールが、各々データ線26_3,26_4,26_1,26_2上のXOR回路に入力されるように配線されている。
また、データ線26_1,26_2,26_3,26_4上のデータモジュールが、各々データ線26_6,26_7,26_8,26_5上のXOR回路に入力されるように配線されている。
また、データ線26_5,26_6,26_7,26_8上のデータモジュールが、各々データ線26_1,26_2,26_3,26_4上のXOR回路に入力されるように配線されている。
【0026】
XOR部24は、線形変換部23から入力した8個のデータモジュールの各々に対して、鍵生成回路2から入力した鍵データK3との排他的論理和演算を施し、その結果をそれぞれ非線形変換部25に出力する。
【0027】
非線形変換部25は、XOR部24からの上記8個のデータモジュールに対応してそれぞれ設けられた非線形変換回路32を有し、非線形変換回路32において、入力したデータモジュールに対して非線形変換処理を施し、その結果である8個のデータモジュールを出力する。
非線形変換回路32は、例えば、S−boxと呼ばれる。
非線形変換部25から出力された8個のデータモジュールは、図2に示すように、組み合わされて図1に示すデータS11としてXOR回路12に出力される。
【0028】
以下、図2に示すF関数回路11の線形変換部23の設計方法について説明する。
【0029】
図3は、図2に示すF関数回路11の線形変換部23の設計に用いられるコンピュータ39を説明するための図である。
図3に示すように、コンピュータ39は、例えば、メモリ51、操作部52、ディスプレイ53およびCPU54を有し、これらがバス50を介して接続されている。
ここで、コンピュータ39が第3の発明のデータ処理装置に対応している。
メモリ51は、コンピュータ39が実行するプログラム48(第2の発明のプログラム)、並びにコンピュータ39によるプログラム48の実行に用いられる種々のデータを記憶する。
操作部52は、キーボードやマウス等であり、ユーザによる操作に応じた操作信号をCPU54に出力する。
ディスプレイ53は、コンピュータ39の処理結果を表示する。
CPU54は、メモリ51から読み出したプログラム58を実行し、図2に示すF関数回路11の設計処理を行う。
CPU54は、複数の線形変換候補のうち、当該線形変換候補を実現する回路上の制約を満たす複数の前記線形変換候補を特定し、当該特定した線形変換候補のそれぞれについて複数の入力データを基に線形変換処理を行い、それらの処理結果内に生じる零の数の最小値(いわゆるアクティブS−box)を求め、その最小値を最大とする線形変換候補を特定する。そして、CPU54は、当該特定した線形変換候補を基に、図2に示す線形変換部23を構成する。
【0030】
以下、CPU54の設計処理手順(本実施形態の設計方法)を説明する。
図4は、CPU54の設計処理手順を説明するためのフローチャートである。
以下の手順の一部は、例えば、CPU54がディスプレイ53に表示した操作画面を基にユーザが行った操作部52の操作に応じて、ユーザとCPU54との間で対話形式で行われる。
なお、図4に示すステップST1〜ST3が第1の発明の第1の工程、第2の発明の第1の手順、並びに第3の発明の第1の手段に対応している。
ステップST4〜ST9が第1の発明の第2の工程、第2の発明の第2の手順、並びに第3の発明の第2の手段に対応している。
ステップST10が第1の発明の第3の工程、第2の発明の第3の手順、並びに第3の発明の第3の手段に対応している。
【0031】
ステップST1:
ユーザは、設計対象の図2に示す線形変換部23の線形変換を例えば、4つの線形変換ブロックに分割して規定し、その情報を操作部52を介してCPU54に与える。
【0032】
ステップST2:
CPU54は、ステップST1で受けた情報を基に、下記式(2),(3),(4),(5)に示すように、各々4×4の行列である変数行列C1 ,C2 ,C3 ,C4 を用いて、行列D1 ,D2 ,D3 ,D4 を規定する。
このように、各々8×8の行列である行列D1 ,D2 ,D3 ,D4 を規定することで、行列D1 ,D2 ,D3 ,D4 を実現した図2に示す回路ブロック41_1〜41_4を、XOR回路が設けられていないデータ線から、最大1個のXOR回路にデータモジュールを出力するように構成できる。これにより、回路ブロック41_1〜41_4に規定された回路上の制約が満たされる。
具体的には、図2に示すように、上位あるいは下位の4本のデータ線上にXOR回路を設け、当該XOR回路が設けられていない4本のデータ線から、それぞれ異なる上記XOR回路にデータモジュールを出力するように回路ブロック41_1〜41_4を構成できる。
すなわち、本実施形態では、上述したように行列D1 〜D4 を規定することで、回路上の制約を満たさないものについては、行列D1 〜D4 の候補から予め除外することができる。
【0033】
【数2】
【0034】
ステップST3:
CPU54は、下記式(6),(7)に示すように、ステップST2で規定した行列1 ,D2 ,D3 ,D4 を合成した行列A(本発明の線形変換候補)を算出する。
【0035】
【数3】
【0036】
【数4】
【0037】
ステップST4:
CPU54は、ステップST3で生成した行列A内の変数行列C1 ,C2 ,C3 ,C4 の各要素に所定の値を与える。
これにより、本発明にいう、「複数の線形変換候補の特定」が行われる。
なお、CPU54は、ステップST9からのループバックにより当該ステップST4の処理を複数回行い、その度に、異なる行列Aを規定する。
【0038】
ステップST5:
CPU54は、予め決められた複数の入力データ(本発明の入力データ)のうち、次に行列Aに入力する、すなわち行列Aによる演算対象とする入力データを決定する。
なお、CPU54は、ステップST8からのループバックにより当該ステップST5の処理を複数回行い、その度に、異なる入力データを決定する。
【0039】
ステップST6:
CPU54は、ステップST5で決定した入力データに対してステップST4で決定した行列Aの演算を行う。
ステップST7:
CPU54は、ステップST6の演算結果(64ビットデータ)内に含まれる零(0)の数を計数し、その計数値が、それまで計数した最小値より小さい場合に最小値を更新する。CPU54は、全ての行列Aの各々について当該最小値(本発明の最小値)を求める。
【0040】
ステップST8;
CPU54は、上記予め決められた全ての入力データについて、ステップST6の処理を行ったか否かを判断し、行ったと判断した場合にステップST9の処理に進み、そうでない場合にステップST5の処理に戻る。
ステップST9;
CPU54は、変数行列C1 ,C2 ,C3 ,C4 を用いて規定可能な全ての行列Aについて、ステップST6の処理を行ったか否かを判断し、行ったと判断した場合にステップST10の処理に進み、そうでない場合にステップST4の処理に戻る。
【0041】
ステップST10:
CPU54は、ステップST2で最終的に得られた全ての行列Aの最小値のうち、最大の最小値を出した行列Aを特定する。
ステップST11:
CPU54は、ステップST10で特定した行列Aで用いられた変数行列C1,C2 ,C3 ,C4 を用いて図2示す線形変換部23の回路ブロック41_1〜41_4を構成(設計)する。
【0042】
以上説明したように、本実施形態の設計方法によれば、複数の線形変換候補のうち、当該線形変換候補を実現する回路上の制約を満たす複数の前記線形変換候補を特定し、当該特定した線形変換候補のなかから、線形変換を行った結果に零が生じる個数の最小値を最大にする線形演算候補を探索(特定)するため、全ての線形変換候補を対象としてを探索を行う場合に比べて、演算量を大幅に削減できる。
具体的には、本実施形態の設計方法によれば、変数行列C1 〜C4 の各々は4×4の行列であるため、4!(4の階乗)通りの候補がある。従って、(C1 ,C2 ,C3 ,C4 )の組み合わせは、(4!)4 通り、すなわち線形変換候補は、約218通りになる。
これに対して、従来では、GF(2)上の8×8行列の全てを線形変換候補するため、線形変換候補は264通りになる。
従って、本実施形態の設計方法によれば、設計に伴う演算量を従来に比べて大幅に削減できる。これにより、本実施形態によれば、線形変換部23の設計を実用的な時間で行うことが可能になる。
【0043】
本発明は上述した実施形態には限定されない。
上述した実施形態では、GF(2)上の変換をバイト単位で行い、32ビット演算を高速に行う場合を例示したが、本発明は、例えば、16ビットワードをGF(2)上の変換の単位として64ビット演算を行ったり、バイトをGF(2)上の変換の単位として64ビット演算を行うことで、上記線形変換を行うように設計を行ってもよい。
【0044】
【発明の効果】
以上説明したように、本発明によれば、複数の線形変換候補のなかから、複数の入力データに線形変換を行った結果に零が生じる個数の最小値が最大となる線形変換候補を従来に比べて少ない演算量で特定できるデータ処理方法、その装置および、そのプログラムを提供できる。
また、本発明によれば、上述した本発明のデータ処理方法、その装置およびそのプログラムによって設計される線形変換回路および暗号化装置を提供できる。
【図面の簡単な説明】
【図1】図1は、本発明の実施形態に係わる暗号化装置の構成図である。
【図2】図2は、図1に示すF関数回路の構成図である。
【図3】図3は、図2に示すF関数回路の線形変換部の設計に用いられるコンピュータを説明するための図である。
【図4】図4は、図3に示すCPUの設計処理手順を説明するためのフローチャートである。
【符号の説明】
1…暗号化装置、2…鍵生成回路、3…初期処理回路、4_1〜4_N…Feistel構造モジュール、5…後処理回路、11…F関数回路、12…XOR回路、21…XOR部、22…非線形変換部、23…線形変換部、24…XOR部、25…非線形変換部、41_1〜41_4…回路ブロック、39…コンピュータ、51…メモリ、52…操作部、53…ディスプレイ、54…CPU、58…プログラム
Claims (12)
- 線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の工程と、
前記第1の工程で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の工程と、
前記第1の工程で特定した前記複数の線形変換候補のうち、前記第2の工程で特定した前記最小値が最大となる前記線形変換候補を特定する第3の工程と
を有するデータ処理方法。 - 前記第1の工程は、前記複数の線形変換候補として、置換行列内の2つの零領域のうち一方を変数行列で置き換えた複数の単位線形変換の合成である線形変換を特定し、
前記第2の工程は、前記複数の単位線形変換の前記変数行列として異なる複数の行列を付与して得られる前記線形変換候補の各々について、前記最小値を特定する
請求項1に記載のデータ処理方法。 - 前記複数の単位線形変換の数がMであり、
前記単位線形変換は、M行M列の行列演算で実現する
請求項2に記載のデータ処理方法。 - 前記線形変換が、共通鍵ブロック暗号のラウンド関数処理内で規定された線形変換である場合に、
前記第2の工程は、平文データを非線形拡散処理して得られた前記入力データに対して前記線形変換を行う
請求項1に記載のデータ処理方法。 - 前記第3の工程で特定した前記線形変換候補に対応する前記単位線形変換を実現する回路ブロックを有する線形変換回路を構成する第4の工程
をさらに有する請求項1に記載のデータ処理方法。 - コンピュータによって実行されるプログラムであって、
線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の手順と、
前記第1の手順で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の手順と、
前記第1の手順で特定した前記複数の線形変換候補のうち、前記第2の手順で特定した前記最小値が最大となる前記線形変換候補を特定する第3の手順と
を記述したプログラム。 - 前記第1の手順は、前記複数の線形変換候補として、置換行列内の2つの零領域のうち一方を変数行列で置き換えた複数の単位線形変換の合成である線形変換を特定し、
前記第2の手順は、前記複数の単位線形変換の前記変数行列として異なる複数の行列を付与して得られる前記線形変換候補の各々について、前記最小値を特定する
請求項7に記載のプログラム。 - 線形変換を実現する回路上の制約をそれぞれ満たす複数の線形変換候補を特定する第1の手段と、
前記第1の手段で特定した前記複数の線形変換候補のそれぞれについて、複数の入力データに対して当該線形変換候補が規定する線形変換を行ったそれぞれの結果に零が生じる個数の最小値を特定する第2の手段と、
前記第1の手段で特定した前記複数の線形変換候補のうち、前記第2の手段で特定した前記最小値が最大となる前記線形変換候補を特定する第3の手段と
を有するデータ処理装置。 - 共通鍵ブロック暗号のラウンド関数処理内で規定された線形変換を行う線形変換回路であって、
複数のデータのそれぞれに対応した複数のデータ線と、
前記複数のデータ線を介して入力された前記複数のデータに線形変換を順に施す複数の回路ブロックと
を有し、
前記回路ブロックの各々は、前記複数のデータ線のうち一部の複数の前記データ線上に設けられた演算回路を有し、演算回路が設けられていない各々の前記データ線から最大1個の前記演算回路に対してデータが供給されるように構成されている
線形変換回路。 - 前記回路ブロックの各々は、前記複数のデータ線を同数の第1のデータ線群と第2のデータ線群とに分けた場合に、前記第1のデータ線群内の前記データ線にのみ前記演算回路を有し、前記第2のデータ線群内の前記データ線から、前記第1のデータ線群内の前記演算回路にデータを出力するように構成されている
請求項10に記載の線形変換回路。 - ラウンド関数処理を行って共通鍵ブロック暗号化を行う暗号化装置であって、
前記ラウンド関数処理内で規定された非線形変換を行う非線形変換回路と、
前記非線形変換回路により前記非線形変換が施された入力データに対して線形変換を行う線形変換回路と
を有し、
前記線形変換回路は、
前記入力データを構成する複数のデータのそれぞれに対応した複数のデータ線と、
前記データ線を介して入力された前記複数のデータに線形変換を順に施す複数の回路ブロックと
を有し、
前記回路ブロックの各々は、前記複数のデータ線のうち一部の複数の前記データ線上に設けられた演算回路を有し、演算回路が設けられていない各々の前記データ線から最大1個の前記演算回路に対してデータが供給されるように構成されている
暗号化装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003034591A JP2004245988A (ja) | 2003-02-13 | 2003-02-13 | データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路 |
US10/773,148 US7499543B2 (en) | 2003-02-13 | 2004-02-09 | Linear conversion circuit and encryption circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003034591A JP2004245988A (ja) | 2003-02-13 | 2003-02-13 | データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004245988A true JP2004245988A (ja) | 2004-09-02 |
Family
ID=33020221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003034591A Pending JP2004245988A (ja) | 2003-02-13 | 2003-02-13 | データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7499543B2 (ja) |
JP (1) | JP2004245988A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006025416A1 (ja) * | 2004-09-03 | 2006-03-09 | Sony Corporation | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2128115C (en) * | 1993-07-20 | 1999-08-10 | Keiichi Iwamura | Encryption apparatus, communication system using the same and method therefor |
US6570989B1 (en) * | 1998-04-27 | 2003-05-27 | Matsushita Electric Industrial Co., Ltd. | Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security |
JP3097655B2 (ja) * | 1998-05-11 | 2000-10-10 | 日本電気株式会社 | データ伝送方式 |
JP3679936B2 (ja) * | 1998-11-27 | 2005-08-03 | 東芝ソリューション株式会社 | 暗復号装置及び記憶媒体 |
TW556111B (en) * | 1999-08-31 | 2003-10-01 | Toshiba Corp | Extended key generator, encryption/decryption unit, extended key generation method, and storage medium |
JP2001218238A (ja) * | 1999-11-24 | 2001-08-10 | Toshiba Corp | トーン信号受信装置、トーン信号送信装置及びトーン信号送受信装置 |
US6956951B2 (en) * | 2000-07-13 | 2005-10-18 | Fujitsu Limited | Extended key preparing apparatus, extended key preparing method, recording medium and computer program |
US20020021801A1 (en) * | 2000-07-13 | 2002-02-21 | Takeshi Shimoyama | Computing apparatus using an SPN structure in an F function and a computation method thereof |
-
2003
- 2003-02-13 JP JP2003034591A patent/JP2004245988A/ja active Pending
-
2004
- 2004-02-09 US US10/773,148 patent/US7499543B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006025416A1 (ja) * | 2004-09-03 | 2006-03-09 | Sony Corporation | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US7747011B2 (en) | 2004-09-03 | 2010-06-29 | Sony Corporation | Encryption device, encryption method, and computer program |
KR101091749B1 (ko) | 2004-09-03 | 2011-12-08 | 소니 주식회사 | 암호 처리 장치, 암호 처리 방법 및 기록매체 |
US8275127B2 (en) | 2004-09-03 | 2012-09-25 | Sony Corporation | Cryptographic processing apparatus, cryptographic processing method, and computer program therefor |
US8767956B2 (en) | 2004-09-03 | 2014-07-01 | Sony Corporation | Cryptographic processing apparatus, cryptographic processing method, and computer program therefor |
US9240885B2 (en) | 2004-09-03 | 2016-01-19 | Sony Corporation | Cryptographic processing apparatus, cryptographic processing method, and computer program therefor |
Also Published As
Publication number | Publication date |
---|---|
US7499543B2 (en) | 2009-03-03 |
US20050002522A1 (en) | 2005-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2003213318B2 (en) | Block cipher apparatus using auxiliary transformation | |
US8787563B2 (en) | Data converter, data conversion method and program | |
EP1876750B1 (en) | Encryption and decryption on a graphics processing unit | |
US8050401B2 (en) | High speed configurable cryptographic architecture | |
US20020041685A1 (en) | Data encryption apparatus | |
CN110197076B (zh) | 一种sm4加密算法的软件优化实现方法 | |
CN110572255B (zh) | 基于轻量级分组密码算法Shadow的加密方法、装置及计算机可读介质 | |
KR20080093458A (ko) | Sms4 암호 알고리즘을 위한 암호 및 해독 처리 방법과 시스템 | |
JP2005107078A (ja) | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム | |
JP2015191107A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN110601817B (zh) | 一种数据处理方法及装置 | |
Gafsi et al. | Hardware implementation of a strong pseudorandom number generator based block‐cipher system for color image encryption and decryption | |
JP2010044251A (ja) | ハッシュ値生成装置、プログラム及びハッシュ値生成方法 | |
CN107835070B (zh) | 一种简单的嵌入式加密方法 | |
CN112287333B (zh) | 一种轻量级可调分组密码实现方法、系统、电子设备以及可读存储介质 | |
JP2004245988A (ja) | データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路 | |
JP4857230B2 (ja) | 疑似乱数生成装置及びそれを用いた暗号化処理装置 | |
JP5113833B2 (ja) | 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置 | |
CN110247754B (zh) | 一种分组密码fbc的实现方法及装置 | |
CN114826558A (zh) | 一种海量数据快速加密方法及系统 | |
JP2008151829A (ja) | 暗号演算装置 | |
Abdulwahed | Chaos-Based Advanced Encryption Standard | |
Ali et al. | Modified Advanced Encryption Standard algorithm for fast transmitted data protection | |
RU2140716C1 (ru) | Способ криптографического преобразования блоков цифровых данных | |
JP7383949B2 (ja) | 情報処理装置及びプログラム |