JP2001324924A - 暗号化装置及び暗号化方法、復号装置及び復号方法並びに演算装置 - Google Patents
暗号化装置及び暗号化方法、復号装置及び復号方法並びに演算装置Info
- Publication number
- JP2001324924A JP2001324924A JP2000210484A JP2000210484A JP2001324924A JP 2001324924 A JP2001324924 A JP 2001324924A JP 2000210484 A JP2000210484 A JP 2000210484A JP 2000210484 A JP2000210484 A JP 2000210484A JP 2001324924 A JP2001324924 A JP 2001324924A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- data
- linear
- block
- key
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 120
- 238000003892 spreading Methods 0.000 claims abstract description 55
- 230000007480 spreading Effects 0.000 claims abstract description 55
- 239000011159 matrix material Substances 0.000 claims description 174
- 238000012545 processing Methods 0.000 claims description 168
- 238000006243 chemical reaction Methods 0.000 claims description 130
- 238000009792 diffusion process Methods 0.000 claims description 126
- 230000008569 process Effects 0.000 claims description 33
- 238000000926 separation method Methods 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 abstract description 22
- 239000006185 dispersion Substances 0.000 abstract 1
- 238000007792 addition Methods 0.000 description 25
- 238000010586 diagram Methods 0.000 description 17
- 238000012795 verification Methods 0.000 description 14
- 230000001419 dependent effect Effects 0.000 description 10
- 230000000694 effects Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 6
- 238000003860 storage Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000013019 agitation Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 238000003756 stirring Methods 0.000 description 3
- 230000002195 synergetic effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 241000251730 Chondrichthyes Species 0.000 description 1
- 102000003712 Complement factor B Human genes 0.000 description 1
- 108090000056 Complement factor B Proteins 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000017105 transposition Effects 0.000 description 1
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/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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
-
- 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/08—Randomization, e.g. dummy operations or using noise
-
- 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)
- Facsimile Transmission Control (AREA)
Abstract
能とする暗号化装置を提供すること。 【解決手段】 各段において複数並列に並んだ非線形変
換モジュール2の各々により局所的な小拡散を行い、次
いで拡散モジュール3によりブロック幅に渡る大拡散を
行い、また非線形変換モジュール2により局所的な小拡
散を行い、ということを所定段数繰り返す。さらに、非
線形変換モジュール2は、非線形変換モジュール4と拡
散モジュール5とを交互に配列して構成される。すなわ
ち、通常のSPN構造のS−boxの部分に小型のSP
N構造を再帰的に埋め込んだこの入れ子型SPN構造と
する。
Description
による暗号化装置及び暗号化方法、復号装置及び復号方
法並びに演算装置に関する。
にSPN型とFeistel型があり、各々について差
分/線形解読法に対する強度評価と耐性を高める設計法
が研究されている(文献[1]V.Rijmen, J.Daemen, B.Pr
eneel, A.Bosselaers, E.DcWin,“The Cipher SHARK,”
Fast Software Encryption, LNCS 1039,1996.、文献
[2]青木和麻呂,太田和夫,“最大平均差分確率および最
大平均線形確率のより厳密な評価,”SCIS 96-4A,1996.
文献[3]松井充,“フ゛ロック暗号MISTY,”ISEC 96-11,199
6.、)。SPN構造では、活性S−box数の保証が出
来るので、設定した強度を達成するための段数決定がし
やすい(文献[1] )。しかし、ブロック・サイズが大
きくなりS−boxの並列度が上がると、拡散層の処理
が複雑になり、速度が低下する傾向がある。
ijndael型の暗号である(文献[4]J.Daemen, L.
R.Knudsen, V.Rijmen,“The Block Cipher Square,” F
astSoftware Encryption, LNCS 1267,1997. 、文献[5]
J.Daemen, V.Rijmen,“AES Proposal: Rijndael,”htt
p://www.east.kuleuven.ac.be/〜rijmen/rijdael/rijnd
aeldocV2.zip )。この型の暗号では、16個の並列S
−boxを4×4の行列状に並べて線形拡散を同一列内
に制限することで処理を軽減している。また、線形拡散
にバイト位置の並べ替えを組み合わせることで、ある段
の1バイトの影響は2段後に全バイトに広がり、4段で
活性S−box数は25以上を達成している。
で混合しないという性質があるため、SQUARE攻撃
という専用の攻撃法が存在する(文献[1]、文献
[5])。これは、拡散層が1種類という制約下で、強度
と効率の両立を目指した結果と考えることが出来る。
S−box数の下限の見積もりが容易で、差分/線形解
読法に対する強度を保証した設計が可能である。しかし
ながら、平文/暗号文のブロック・サイズの増加に従
い、S−boxの並列度が高くなると、拡散層の結合部
の計算コストも高くなるという欠点があった。また、拡
散層の設計によってデータ攪拌が均一でなくなる可能性
があった。
ので、計算コストを抑えたまま高く均一な拡散を可能と
する暗号化装置及び暗号化方法、復号装置及び復号方法
並びに演算装置を提供することを目的とする。
方式による暗号化装置であって、ブロックデータに対し
てそれを複数に分割した部分ごとに局所的な拡散を行う
機能を含む第1の処理手段と、ブロックデータに対して
そのブロック幅にわたる拡散を行う機能を含む第2の処
理手段とを備えたことを特徴とする。
装置であって、ブロックデータを複数に分割した各部分
データに対してそれぞれ非線形変換処理を施す並列させ
た複数の第1の非線形変換処理手段の一群と、ブロック
データのブロック幅にわたる線形拡散処理を施す第1の
線形拡散処理手段とを備え、前記第1の非線形変換処理
手段の全部または一部は、それぞれ、前記部分データの
データ幅をさらに複数に分割した各部分に対してそれぞ
れ非線形変換処理を施す並列させた複数の第2の非線形
変換処理手段の一群と、前記部分データのデータ幅にわ
たる線形拡散処理を施す第2の線形拡散処理手段とを含
むものであることを特徴とする。
処理手段は予め選択された入出力変換表を用いて前記非
線形変換を行うものであるようにしてもよい。好ましく
は、前記第2の非線形変換処理手段の各々の入力側に、
前記ブロック幅と同じ鍵長を持つ鍵データのうちの対応
する部分を加算する手段が直列的に結合されているよう
にしてもよい。好ましくは、前記暗号化装置の前記第1
の非線形変換処理手段の一群と前記第1の線形拡散処理
手段との繰り返し構造は前記第1の非線形変換処理手段
の一群で始まり前記第1の非線形変換処理手段の一群で
終わるものであるとともに、最後の前記第1の非線形変
換処理手段の一群のさらに後段に前記ブロック幅と同じ
鍵長を持つ鍵データを加算する手段が直列的に結合され
ているようにしてもよい。
に依存する鍵データを生成するための鍵生成手段を備
え、前記鍵生成手段は、前段の出力に非線形変換処理を
施したものと、前々段の出力に非線形変換処理を施した
ものに線形拡散処理を施したものとの排他的論理和を取
ったものを当該段の出力とする処理を、必要段数分繰り
返し行う手段を含むものであるようにしてもよい。好ま
しくは、前記排他的論理和の出力データに、段数に依存
する定数を剰余加算したものを、当該段の鍵データ出力
とするようにしてもよい。
暗号化装置であって、初段では入力された128ビット
の平文ブロックデータを、2段目以降では前段での処理
が施された128ビットのブロックデータを入力とし、
該ブロックデータを4分割した4組の32ビット・デー
タに対してそれぞれ局所的な線形拡散処理および非線形
変換処理を施し出力する4つの第1の非線形変換処理部
と、これら4つの第1の非線形変換処理部からそれぞれ
出力された4組の32ビット・データを連結した128
ビットのブロックデータに対して最大距離分離行列を用
いて線形拡散処理を施し次段へ出力する第1の拡散処理
部とを、1段分の段構成として、該段構成を所定段数分
接続し、最後の前記第1の拡散処理部の後段に、この第
1の拡散処理部から出力される128ビットのブロック
データを入力とする前記4つの第1の非線形変換処理部
を接続し、この4つの第1の非線形変換処理部の後段
に、これら4つの第1の非線形変換処理部からそれぞれ
出力された4組の32ビット・データを連結した128
ビットのブロックデータに対して128ビットの鍵デー
タを加算して128ビットの暗号化されたブロックデー
タとして出力する第1の鍵加算部を接続して構成される
とともに、前記第1の非線形変換処理部の各々は、与え
られた1組の前記32ビット・データをさらに4分割し
た4組の8ビット・データに対してそれぞれ8ビットの
鍵データを加算する4つの第2の鍵加算部と、各第2の
鍵加算部の出力に対してそれぞれ8ビットの入出力変換
表を用いて非線形変換を行う4つの第2の非線形変換処
理部と、これら4つの第2の非線形変換処理部からそれ
ぞれ出力された4組の8ビット・データを連結した32
ビット・データに対して最大距離分離行列を用いて線形
拡散処理を施す第2の拡散処理部と、この第2の拡散処
理部の後段にさらに接続された4組の前記第2の鍵加算
部および第2の非線形変換処理部とを含むものであるこ
とを特徴とする。
暗号化装置であって、初段では入力された64ビットの
平文ブロックデータを、2段目以降では前段での処理が
施された64ビットのブロックデータを入力とし、該ブ
ロックデータを2分割した2組の32ビット・データに
対してそれぞれ局所的な線形拡散処理および非線形変換
処理を施し出力する2つの第1の非線形変換処理部と、
これら2つの第1の非線形変換処理部からそれぞれ出力
された2組の32ビット・データを連結した64ビット
のブロックデータに対して最大距離分離行列を用いて線
形拡散処理を施し次段へ出力する第1の拡散処理部と
を、1段分の段構成として、該段構成を所定段数分接続
し、最後の前記第1の拡散処理部の後段に、この第1の
拡散処理部から出力される64ビットのブロックデータ
を入力とする前記2つの第1の非線形変換処理部を接続
し、この2つの第1の非線形変換処理部の後段に、これ
ら2つの第1の非線形変換処理部からそれぞれ出力され
た2組の32ビット・データを連結した64ビットのブ
ロックデータに対して64ビットの鍵データを加算して
64ビットの暗号化されたブロックデータとして出力す
る第1の鍵加算部を接続して構成されるとともに、前記
第1の非線形変換処理部の各々は、与えられた1組の前
記32ビット・データをさらに4分割した4組の8ビッ
ト・データに対してそれぞれ8ビットの鍵データを加算
する4つの第2の鍵加算部と、各第2の鍵加算部の出力
に対してそれぞれ8ビットの入出力変換表を用いて非線
形変換を行う4つの第2の非線形変換処理部と、これら
4つの第2の非線形変換処理部からそれぞれ出力された
4組の8ビット・データを連結した32ビット・データ
に対して最大距離分離行列を用いて線形拡散処理を施す
第2の拡散処理部と、この第2の拡散処理部の後段にさ
らに接続された4組の前記第2の鍵加算部および第2の
非線形変換処理部とを含むものであることを特徴とす
る。
プログラムを記録したコンピュータ読取り可能な記録媒
体であって、ブロックデータに対してそれを複数に分割
した部分ごとに局所的な拡散を行う機能を含む第1の処
理機能と、ブロックデータに対してそのブロック幅にわ
たる拡散を行う機能を含む第2の処理機能とを、コンピ
ュータに実現させるためのプログラムを記録したコンピ
ュータ読取り可能な記録媒体である。
方法であって、ブロックデータに対してそれを複数に分
割した部分ごとに局所的な拡散を行う機能を含む第1の
処理と、ブロックデータに対してそのブロック幅にわた
る拡散を行う機能を含む第2の処理とを実行するステッ
プを含むことを特徴とする。
置であって、ブロックデータに対してそれを複数に分割
した部分ごとに局所的な拡散を行う機能を含む第1の処
理手段と、ブロックデータに対してそのブロック幅にわ
たる拡散を行う機能を含む第2の処理手段と備えたこと
を特徴とする。
置であって、ブロックデータを複数に分割した各部分デ
ータに対してそれぞれ非線形変換処理を施す並列させた
複数の第1の非線形変換処理手段の一群と、ブロックデ
ータのブロック幅にわたる線形拡散処理を施す第1の線
形拡散処理手段とを備え、前記第1の非線形変換処理手
段の全部または一部は、それぞれ、前記部分データのデ
ータ幅をさらに複数に分割した各部分に対してそれぞれ
非線形変換処理を施す並列させた複数の第2の非線形変
換処理手段の一群と、前記部分データのデータ幅にわた
る線形拡散処理を施す第2の線形拡散処理手段とを含む
ものであることを特徴とする。
復号装置であって、入力された128ビットの暗号化さ
れたブロックデータに対して128ビットの鍵データを
加算し出力する第1の鍵加算部と、この第1の鍵加算部
の後段に接続された、この第1の鍵加算部から出力され
た128ビットのブロックデータを入力とし、該ブロッ
クデータを4分割した4組の32ビット・データに対し
てそれぞれ局所的な線形拡散処理および非線形変換処理
を施し出力する4つの第1の非線形変換処理部と、前段
の4つの第1の非線形変換処理部からそれぞれ出力され
た4組の32ビット・データを連結した128ビットの
ブロックデータに対して最大距離分離行列を用いて線形
拡散処理を施し出力する第1の拡散処理部と、この第1
の拡散処理部から出力された128ビットのブロックデ
ータを4分割した4組の32ビット・データに対してそ
れぞれ局所的な線形拡散処理および非線形変換処理を施
して、最終段より前の段では128ビットのブロックデ
ータを次段へ出力し、最終段では128ビットの平文ブ
ロックデータとして出力する4つの第1の非線形変換処
理部とを、1段分の段構成として、該段構成を所定段数
分接続したものとを備え、前記第1の非線形変換処理部
の各々は、与えられた1組の前記32ビット・データを
さらに4分割した4組の8ビット・データに対してそれ
ぞれ8ビットの入出力変換表を用いて非線形変換を行う
4つの第2の非線形変換処理部と、各第2の非線形変換
処理部の出力に対してそれぞれ8ビットの鍵データを加
算する4つの第2の鍵加算部と、これら4つの第2の鍵
加算部からそれぞれ出力された4組の8ビット・データ
を連結した32ビット・データに対して最大距離分離行
列を用いて線形拡散処理を施す第2の拡散処理部と、こ
の第2の拡散処理部の後段にさらに接続された4組の第
2の非線形変換処理部および前記第2の鍵加算部とを含
むものであることを特徴とする。
ログラムを記録したコンピュータ読取り可能な記録媒体
であって、ブロックデータに対してそれを複数に分割し
た部分ごとに局所的な拡散を行う機能を含む第1の処理
機能と、ブロックデータに対してそのブロック幅にわた
る拡散を行う機能を含む第2の処理機能とを、コンピュ
ータに実現させるためのプログラムを記録したコンピュ
ータ読取り可能な記録媒体である。
法であって、ブロックデータに対してそれを複数に分割
した部分ごとに局所的な拡散を行う機能を含む第1の処
理と、ブロックデータに対してそのブロック幅にわたる
拡散を行う機能を含む第2の処理とを実行するステップ
を含むことを特徴とする。
距離分離行列を利用したデータ拡散処理のために、相対
応する入力ワードと最大距離分離行列の要素との乗算を
求めるための演算装置であって、前記入力ワードと前記
最大距離分離行列の対応する要素とを、桁溢れを考慮せ
ずに乗算する乗算手段と、前記入力ワードの上位所定ビ
ットをキーとして、桁溢れを調整するための帰還ワード
を検索する検索手段と、前記乗算手段による乗算結果
と、検索された前記帰還ワードとの排他和をとって、桁
溢れを帰還した乗算結果を求める排他和手段とを備えた
ことを特徴とする。
としても成立し、方法に係る本発明は装置に係る発明と
しても成立する。暗号化装置に係る従属項は、暗号化方
法、復号装置、復号方法に係る従属項としても成立す
る。
ンピュータに当該発明に相当する手順を実行させるため
の(あるいはコンピュータを当該発明に相当する手段と
して機能させるための、あるいはコンピュータに当該発
明に相当する機能を実現させるための)プログラムを記
録したコンピュータ読取り可能な記録媒体としても成立
する。
型の拡散層とブロック幅に及ぶ拡散を行う大型の拡散層
を交互に重ねて運用する。本発明によれば、複数種類の
異なる拡散(例えば、大小2段階の拡散)によって、計
算コストを抑えたまま高く均一な拡散を実現した。ま
た、階層的にブランチ数が保証でき(ブランチ数の階層
性)、活性S−box数の下限を容易に保証できる。ま
た、強度評価がしやすいという特性がある。
では、小型の拡散とバイト単位の並べ方によって同等の
効果を実現している。しかし、それらの暗号では拡散層
が1種類であるため、SQUARE攻撃と呼ばれる解読
法が存在する。本発明では、大小2種類の拡散層の組み
合わせ方によって、SQUARE攻撃に対する耐性の向
上が可能である。
実施の形態を説明する。
と、ブロック幅に渡る拡散(大拡散)との組み合わせに
よる、入れ子型(再帰的)SPN構造の暗号方式につい
て説明する。
で復号について説明する。なお、復号アルゴリズムは、
暗号アルゴリズムの逆変換であり、鍵は暗号化と復号で
共通の、秘密の鍵である。
てもソフトウェアによっても実現可能であり、以下に示
す構成例は、暗号化装置(復号装置)の機能ブロック図
としても成立し、また暗号アルゴリズム(復号アルゴリ
ズム)の機能モジュール図としても成立する。
暗号方式(暗号化装置(もしくは復号装置)または暗号
アルゴリズム(もしくは復号アルゴリズム)、暗号処理
装置)の基本的な構成例を示す。
造では、各段において複数並列に並んだ非線形変換モジ
ュール(後述の例では拡大S−box)2の各々により
局所的な小拡散を行い、次いで拡散モジュール(後述の
例では大MDS)3によりブロック幅に渡る大拡散を行
い、また非線形変換モジュール2により局所的な小拡散
を行い、ということを所定段数繰り返す。さらに、非線
形変換モジュール2は、非線形変換モジュール(後述の
例ではS−box)4と拡散モジュール(後述の例では
小MDS)5とを交互に配列して構成される。
造は、通常のSPN構造のS−boxの部分に小型のS
PN構造(後述の例では2段のSPN構造)を再帰的に
埋め込んだものである。
ブランチ数が階層的に保証でき(ブランチ数の階層
性)、活性S−box数の下限を容易に保証できる、と
いう優れた特質が得られる。また、入れ子型SPN構造
には、この他に、単純明快な構造のため、強度評価がし
やすいという特性がある。
で表しているが、これに限定されるものではなく、それ
以外の並列数も可能である。また、図1では、全ブロッ
ク長を均等に分割した複数の小拡散を並列されている
が、これに限定されるものではなく、異なるビット長の
小拡散を複数組み合わせることも可能である。また、こ
の場合に、全ての小拡散のビット長を異なるようにして
もよいし、一部の小拡散のビット長は同じであってもよ
い。また、図1では、1種類の局所的な小拡散を用いて
いるが、2種類以上の局所的な小拡散を用いることも可
能である(例えば、図1において、ブロック幅に渡る拡
散モジュール3を、1つおきに、2つの非線形変換モジ
ュール2に渡る拡散モジュールに替えた構成)。また、
同一構成の繰り返し構造にする方法の他に、一部のみ構
成を替えることも可能である。また、例えば、全ての非
線形変換モジュール2の構成を同一構成にすることも、
非線形変換モジュール2について、異なる構成を混在さ
せることも可能である。この点は、拡散モジュール3、
非線形変換モジュール4、拡散モジュール5のそれぞれ
についても同様である。また、例えば、最初の入力段
と、最後の出力段だけ、他の中間段とは異なる内部構成
にしてもよい。また、図1では、2階層の入れ子構造で
あるが、3階層以上の入れ子構造も可能である(3階層
の場合、例えば、非線形変換モジュール4をさらにSP
N構造にする)。また、例えば、非線形変換モジュール
2によって階層構造を異ならせることも可能である。こ
の他にも、種々のバリエーションが考えられる。
AES相当の128ビット・ブロック暗号の具体例を用
いつつ本実施形態について説明する。
説明する。
要な指標として最大差分確率/最大線形確率がある。
数f(x)に対し、最大差分確率dpfと最大線形確率
lpfはそれぞれ次式で表される。
マスク値を表す。
確率lpfを求めることが困難な場合が多い。ここで、
その近似値として最大差分特性確率DPfおよび最大線
形特性確率LPfで安全性を評価する。
号化関数として用いる。ここでは、その基本構造である
SPS構造の特性について述べる。ここで、SPSと
は、S−box層と拡散層PをS−P−Sのように3層
重ねた構造を指す。
に対する拡散層の出力がθ(x)のとき、差分解読に対
するブランチ数Bは次式で定義する(文献[1]、文献
[6]清水秀夫,金子敏信,“共通鍵暗号のdiffusion層に
ついて,”SCIS 99-72,1999.)。
符号長としたハミング距離である。非零の入出力差分に
接続するS−boxを活性S−boxと呼ぶ。
た構造をSPS構造と呼ぶ。S−boxが全単射のと
き、SPS構造への入力ビットに非零の差分を持つもの
が1個でもあれば、ブランチ数の定義により、活性S−
boxはブランチ数以上(すなわちB以上)になる。ま
た、S−boxの最大差分確率をps とすると、SPS
構造の最大差分特性確率は、上界値ps Bを越えない。
ce Separable)行列]SPS構造のS層と
してM並列のS−boxを用いた場合、それらを結合す
る拡散層のブランチ数は(M+1)以下であり、ブラン
チ数が(M+1)を満たす線形変換をMDS(Maxi
mum Distance Separable;最大
距離分離)行列と呼ぶ。
造の最大差分特性確率は上界値ps M+1 を越えない
[1]。同様に、S−boxの最大線形確率をqs とす
ると、SPS構造の最大線形特性確率はqs M+1 を越
えない。
SPN構造をそれより大きなSPN構造のS−boxと
して利用するとき、拡大S−box(小構造)と呼ぶこ
とにする。ここで、S−boxはM1 並列であり、拡大
S−box内の拡散層のブランチ数をB1 とする。拡大
S−boxに対するM2 並列の2段SPN構造(大構
造)を考え、その拡散層のブランチ数をB2 とする。こ
のとき、大構造中の活性S−box数は下界値B1 ・B
2 を下回らない。この性質がブランチ数の階層性であ
る。
行列であるとき、活性S−box数は(M1 +1)(M
2 +1)を下回らない。これにより、入れ子型SPN構
造のDPf、LPfの上限を抑えることが可能になる。
す。15が後述する大MDS行列による拡散部を示し、
11〜14がその入力側の拡大S−boxを示し、16
〜19がその出力側の拡大S−boxを示し、各々の拡
大S−box内において、20が後述する小MDSによ
る拡散部を示し、図中で最も小さく示した矩形(21,
22)が入力側および出力側のS−boxを示す。
グしたものは活性を表し(図中の21参照)、白抜きで
示したものは差分零を表す(図中の22参照)。また、
太線で示した拡大S−box(11,13,16,1
7,19)は活性を表し、その他の拡大S−box(1
2,14,18)は差分零を表す。4段で活性S−bo
xが25個以上であることが分かる。
5=25個以上の活性S−box数を保証できる。S−
boxの最大差分確率は、 ps =6/256、 2段での差分特性確率は、 ps 25=2-135.4<<2-128、 となり、差分解読法が有効でないことが分かる。
el型暗号に適用されるSQUARE攻撃は、段内の1
バイトに対して、他の入力を固定したまま、28 通りの
すべてのパターンを入力したとき、2段通過後の出力バ
イトの各々に対して28 通りのすべてのパターンが出現
する特性を利用するものであるが、本例の暗号では、例
えば後述する大MDSの取り方によってS−box間の
攪拌性を向上させることで、その単純な適用を困難にし
ている。
いながら本実施形態についてより詳しく説明する。
る。
データ攪拌部の階層構造の例を示す。
(もちろん、他のブロック長でも本発明は実施可能であ
る)。鍵長は、256ビットを例にとる(もちろん、他
の鍵長でも本発明は実施可能である)。なお、本実施形
態で、ブロック長を128ビットとしたときに、鍵長を
128ビットや192ビットとした場合について後述す
る。
との対(ただし、後述するように最終段は大MDSを含
まない)を1段と数えるものとした場合に、段数をR段
として表し、具体例を用いる場合にはR=8を用いる。
なお、基本的には段数は何段でも実施可能であるが、実
際の段数は、例えば安全性や計算機資源等を想定して適
宜設定することができ、好ましくは6段以上、より好ま
しくは8段以上とすると、より効果的である。
x層を2層含んでいるので、1段が通常の2段に相当す
る。段構造内の大MDSについては、異なるガロア体に
基づくいくつかの実装を示す(強度優先や速度優先の例
を挙げる)。
成例を示す。
散層、102は拡大S−box層、103は各々の拡大
S−boxである。105は、排他的論理和部である。
121〜124は、詳しくは後述する鍵スケジュール部
の構成部分である。Pは入力となる128ビットの平文
データ、Cは出力となる128ビットの暗号文データで
ある。
N構造からなる32ビット処理サブ・ブロック(拡大S
−box)103を4個並列に並べ、MDS拡散層10
4で繋いだ構造である。全体の基本構造は、この段関数
の繰り返しにする。
を対称的にするため、最終段は拡大S−box層102
とその後の鍵加算105だけで構成することにしてい
る。
れ、最後に鍵加算が行われるので、拡大鍵のビット長
は、2×128×R+128=128(2R+1)とな
る。R=8の場合には、128×17ビットとなる。
ットS−boxを利用する。
一例を示す。図5において、配列要素は16進数で表現
してある。
[0]に対応し、その1つ右の値(AA)がs[1]に
対応し、その行の右端の値(9F)がs[15]に対応
し、次の行に移って、その左端の値(69)がs[1
6]に対応し、その1つ右の値(6A)がs[17]に
対応し、以下同様の要領である。そして、最下右の値
(57)がs[255]に対応する。
通りである。 ・最大差分確率:6/256(理論的最小値は4/25
6) ・最大線形確率:22/256(理論的最小値は16/
256) ・代数次数:7次(全単射関数の最大値) なお、S−boxには、入出力表を用いる代わりに、演
算処理を用いても良い。
造とも呼ぶ)の部分について説明する。
例を示す。この例では、4並列の8ビットS−box1
12(図5参照)を2組用意し、拡散層113を挟んだ
2段SPN構造になっている。この構造は、SPS構造
と呼ぶべきものでもあるが、2段目の拡散層が省略され
た特殊な2段SPN構造とみなす。S−box112の
入力直前では、必ず鍵加算111を行う。拡大S−bo
x内の拡散層113には、MDS行列を使用し、これを
小MDSと呼び、MDSSと表記する。小MDSのブラ
ンチ数は5である。
列の一例を示す。図7において、行列要素は16進数で
表現してある。ここで、S−box入出力と行列要素
は、乗算の際、ガロア体GF(28 )の元とみなす。こ
の例の場合の原始多項式は、x 8 +x6 +x5 +x+1
である。
ついて説明する。
の暗号の段関数である大構造は、4並列の32ビット拡
大S−box103(図6参照)をMDS行列の拡散層
104で結合して構成する。この段関数である大構造に
おける拡散層104にも、MDS行列を使用し、これを
大MDSと呼び、MDSLと表記する。ただし、ここで
のMDS行列とは、拡大S−boxに着目したブランチ
数が5であることを意味する。
oxの32ビット幅の出力をGF(232)の元として実
現する方法である。この方法は高い強度が実現しやすい
が、一般的な実行は困難もしくは高速化はしにくい。そ
こで、この場合には、大MDS行列に制約を課すのが好
ましい。
ビット幅で十分であり、GF(24)上の演算を利用し
て実現できる。さらに、MDSを巡回的なものにするこ
とで、効率的な計算が可能になる。
やGF(216)を利用する中間の型も可能である。
説明する。
(232)の元とみなして、大構造MDSを設計する。こ
れは、SPN構造での自然な設計法である。しかし、3
2ビット幅では乗算表による実装は現実的ではない。計
算による場合も一般のMDS行列では計算量が掛かり高
速化が困難である。計算量が増加する原因は、ガロア体
上の乗算における桁上がり時の処理が重いためである。
計算量を抑えるためには、大MDS行列を、ビット表現
で32ビット中の下位5ビットにのみ1が現れる(下位
5ビット以外は0のものに限定した)要素で構成する方
法がある。このような条件を満たす行列を使用すること
で、桁上がり処理を上位4ビットを入力とする表引きで
処理可能となる。
例の場合の原始多項式は、x32+x 28+x27+x+1で
ある。
説明する。
示す。この例の場合の原始多項式は、x4 +x+1とす
る。
おいて4つのS−boxの各々の出力すなわち8ビット
・データの同じ位置(例えば図10では最上位ビットを
例にとって示している)の1ビットを集めて、これを1
組4ビットのデータとし、4つの拡大S−box103
からの4組の4ビット・データを、GF(24 )の元と
みなす。
いて、2段の4並列拡大S−box層の間の拡散層10
4に4行4列のMDS行列(例えば図10では最上位ビ
ットの場合、104−1)を用いる。
それぞれ対応するもとの8ビット・データの同じ位置に
結線される。
MDS行列(104−1〜104−8)を用意して、大
MDSとする。
れ、ブランチ数5を保証する。各MDS行列は、S−b
ox中の異なるビット位置に接続するので、全体として
もブランチ数5を保証する。
出力を単位とした表引きによって(なお、演算によって
もよい)、8個のMDS行列を同時に処理する効率的な
実行が可能である。
ビットごとの排他的論理和と8ビット単位のビット回転
を組み合わせた効率的な処理が可能となる。
ト・データのうちの同じ位置の2ビットごとに処理を行
うこととして、各要素が8ビットの4行4列のMDS行
列(GF(28 ))を、4個用意して、大MDSとする
ことも可能である。また、8ビット・データのうちの同
じ位置の4ビットごとに処理を行うこととして、各要素
が16ビットの4行4列のMDS行列(GF(216))
を、2個用意して、大MDSとすることも可能である。
出して処理を行うものとして説明したが、異なる位置の
ビットを(排他的に)取り出して処理を行うことも可能
である。
で表しているが、これに限定されるものではなく、それ
以外の並列数も可能である。また、拡大S−boxの内
部構成を、全て同一とせずに、異なるものを混在させる
ことも可能である。また、全ての大MDS行列を同一に
せずに、異なるものを混在させることも可能である。こ
の点は、小MDS行列、S−boxの入出力表について
も同様である。また、例えば、最初の入力段と、最後の
出力段だけ、他の中間段とは異なる内部構成にしてもよ
い。この他にも、種々のバリエーションが考えられる。
いて説明する。
す。121は、データ攪拌部の段関数の1段分に対応す
る部分であり、131は線形拡散層(本例では、大MD
Sによる拡散層とする)であり、132は非線形変換層
(本例では、4並列のSP層(S−box層・拡散層)
133とする)であり、134は排他的論理和部であ
り、135は剰余加算部である。図11では省略してい
るが、121の部分の構成が必要に応じて繰り返される
ことになる。なお、128ビットの鍵を出力する構成単
位を鍵スケジュール部の1つの段とすると、鍵スケジュ
ール部の段数は(2R+1)段となる(R=8の場合、
17段である)。
istel型繰り返し処理の各段の出力左半分128ビ
ットを取り出し、段数依存定数Ci を剰余加算して拡大
鍵とする。
は、例えば、上位128ビットを初段の線形拡散層13
1に与え、下位128ビットを非線形変換層132に与
えればよい。また、鍵長を128ビットとする場合に
は、例えば、その128ビットを初段の線形拡散層13
1に与えるとともに、非線形変換層132に与えればよ
い。また、鍵長を192ビットとする場合には、例え
ば、上位128ビットを初段の線形拡散層131に与
え、下位側64ビットと上位側64ビットとを結合した
128ビットを非線形変換層132に与えればよい。
を剰余加算する箇所について、種々のバリエーションが
考えられる。
変換層132の各々の非線形変換層133の構成例を示
す。141はS−boxであり、142は4並列のS−
boxを入力とする小MDSである。
側のS−boxと同じものでもよいし、異なるものでも
よい。小MDSについても同様である。また、鍵スケジ
ュール部の各段によってS−boxや小MDSの構成を
変えることも可能である。
変換層132の各々の非線形変換層133の他の構成例
を示す。この例は、図13の構成に対して、排他的論理
和部143を付加したものである。
する入力と排他的論理和をとる定数を、段数依存定数と
する構成も可能である。
一例について説明する。
8ビットの加算定数Ci は、4つのビット定数(H0 ,
H1 ,H2 ,H3 )の組み合わせで記述することができ
る。32ビットの定数Hi の一例を次に示す。 H0 =(5a827999)H=21/2 /4 H1 =(6ed9eba1)H=31/2 /4 H2 =(8f1bbcdc)H=51/2 /4 H3 =(ca62c1d6)H=101/2 /4 加算定数Ci の組み合わせを、Ci =(Ci0,Ci1,C
i2,Ci3)と記述する。各段で異なる128ビットの定
数Ci を容易に生成するため、Ci を構成するHi の組
み合わせの決定に8ビットLFSRを用いる。例えば、
LFSRの原始多項式には(1D)H を、LFSRの初
期状態には(8B)H を用いる。このLFSRを用いて
生成されたビット列を2ビットづつ読み出し、定数とし
て使用する32ビット定数Hi を決定する。
Rを用いて決定した加算定数表の例を示す。
もよいし、固定としてもよい。前者の場合には、LFS
Rの初期状態も鍵の一部を構成することになる。後者の
場合には、暗号側と同じLFSRの初期状態を持つ復号
側のみ、暗号文を復号することができる。
れば、非線形変換層については、入力の1ビットが変化
すると、S−box(141)により、8ビットに変化
を波及させ、さらに、小MDS(142)により、32
ビットに変化を波及させることができる。さらにまた、
線形拡散層については、大MDS(131)が前段の非
線形変換層の出力をより大きく攪拌するので、1ビット
の違いも、128ビットの幅に広がる利点がある。
れば、各段でバラバラな鍵が出やすい、攪拌しやすい、
という効果を得ることができる。また、段ごとに異なる
定数により、段にわたる鍵の一致が少ない(鍵がほぼ一
致しない)、という効果を得ることができる。
とることも可能である。
ブロック暗号のデータの攪拌部に用いられる効率的な線
形拡散装置について説明する。
本的な構成要素である有限体乗算装置の構成例を示す。
前述したGF(232)あるいはGF(216)を利用した
大MDS(図9、図4の104、図11や図12の13
1参照)における、1つの入力と大MDS行列の1つの
要素との積の計算に、この線形拡散装置を用いることが
できる。
装置は、係数格納部202、乗算部203、桁溢れ帰還
部201、排他的論理和分(排他和部)204を用いて
構成される。
乗数(例えば、図9の大MDS行列の1つの要素)を格
納する部分である。
数とみなした場合の乗算を行う部分である。
4、…、のように2のべき乗の場合には、通常の乗算器
を用いた計算が行える。また、この乗算器がキャリーを
伝播させない特殊な乗算器である場合には、係数格納部
202の係数が任意の値のときに計算が行える。
生ずる桁溢れを有限体上の乗算に戻すため排他的論理和
分204で足される数(帰還ワード)を検索する部分で
ある。
出力と桁溢れ帰還部201の出力ビット的な排他和を行
う部分である。
F(2)の拡大体GF(2k )の元である入力ワードa
と同じ有限体の別の元である係数bの積a×bを出力ワ
ードとして計算することである。
る。
おいて総和を取るiの範囲やΣbjxj において総和を
取るjの範囲を0〜k−1とし、それらの範囲について
の記述を省略する。
て、ある変数xの(k−1)次の多項式Σai xi とし
て表現できる。元aを表現するのに、その係数を並べて
ck-1ck-2 …c0 として表現することもある。
の積は、 a×b=(Σai xi )×(Σbi xi ) mod p
(x) で定義される。
項式と呼ばれ、周期(2k −1)を持つk次の既約なモ
ニック多項式である。また、modの意味は、例えば、
k=32の場合、原始多項式としてp(x)=x32+x
28+x27+x+1を選んだ場合、多項式の積によってx
32の項や因子が現れた場合には、それを(x28+x27+
x+1)と見なすということを表す。従って、積もまた
k次未満の多項式となる。
な処理を行うため、乗数と被乗数をタグとして積を検索
する乗算表を用いた乗算装置を用いることがある。しか
し、乗数と被乗数はともに2k 個の値を取り得るので、
乗算表は、22k個のエントリを持ち、各エントリはkビ
ットのサイズを持つので、kがある程度大きくなると、
乗算表のサイズは非常に大きなものとなる。
る方式に類似するが、係数がある制約条件を満足する場
合には、はるかに小さな記憶容量によって実現すること
ができる。
て、非零の係数を持つのは、ある次数t以下の下位の係
数のみであるということである(t次を越える次数の係
数は0であり、t次以下の係数は0または1である)。
ある元aが任意の元を取る場合には、桁溢れは、最大3
2ビットであるが、この制約条件を満足する場合には、
桁溢れは、高々、tビットである。このtビットの桁溢
れの値を決定するのは、被乗数aの上位tビットまでの
MSB(Most SignificantBits)
である。
場合の乗算との違いは、2進数の積の結果、32次以上
の係数への桁溢れが起こった場合に、原始多項式によっ
て、32次未満の係数へその寄与を還元する必要がある
が、本実施形態では、桁溢れ帰還部201が、還元すべ
きワードを表として持っている。
の係数bと乗数aの上位tビットと原始多項式から決定
できる。つまり、(a[(k−t)...(k−1)]×
b)[(t+1)...2t] mod p(x)によっ
て与えられる。ここで、a[(k−t)...(k−
1)]とは、aの中から、(k−1)次から(k−t)
次までの項を取り出したものである。
ワードの表の内容は、対応するMDS行列(図9参照)
の要素に応じて決まる。
は、2t 個のエントリからなり、各エントリはkビット
のサイズを持つ。
ことで実現される、ブロック暗号のデータ・ブロックに
線形変換を施す線形変換装置について説明する。
換がある。MDS行列とは、データ・ブロックが、複数
(n)のワードから構成され、各ワードがkビットの長
さを持つ場合、各ワードを有限体GF(2k )の元と見
なし、n個の元の組をn個の元の組に線形写像するn行
n列の行列であって、すべての小行列が非零のものであ
る。MDS行列による線形変換は、非零の入出力のワー
ドの数の下限が保証されているという性質を持つ。
行列演算は、GF(2k )上の複数回の乗算と加算から
構成され、計算コストが大きい。
成例を示す。前述したGF(232)あるいはGF
(216)を利用した大MDS(図9、図4の104、図
11や図12の131)に、この線形変換装置を用いる
ことができる。
乗算装置をMDS行列に対応してマトリクス状に用意す
る。
有限体乗算装置200の各々の係数は、n行n列のMD
S行列の対応する要素と同じ値をとる。係数aijを持つ
装置には、第i入力ワードが入力される。
205は、それぞれ、あるjに対応する係数aijを持つ
すべての有限体乗算装置200の出力ビット的な排他的
論理和を計算し、第j出力ワードとして出力する。
変換を表現するMDS行列を(aij)で表現するとき、
各要素aijは高々t次までの項しか非零の係数を持たな
いことを特徴とする。ここで、i,jは、0からn−1
までの整数値を取りうるとする。また、tは、有限体G
F(2k )の拡大次数kよりも小さな正数であるとす
る。
できる。
ドの表の内容は、対応するMDS行列の要素に応じて決
まるので、例えば、図9の大MDS行列の例では、4種
類の帰還ワード表だけ持てばよいことになる。
に大MDS)を生成するためのMDS行列生成装置(も
しくはランダム生成アルゴリズム)について説明する。
示す。図19に示されるように、このMDS行列生成装
置は、要素生成部231、小行列式計算部232、判定
部233を用いて構成される。
列のMDS行列の各行列要素を生成する(ステップS
1)。なお、先の有限体乗算装置を適用可能とする場合
には、このときに、下位tビットのみ非零の要素(t次
以下の要素)からなるMDS行列を生成しておく(すな
わち、この場合には、要素生成部231内で、下位tビ
ットのみ非零かどうかのチェックを行うことになる)。
を発生して用いる方法や、多重ループの制御変数の値を
用いる方法など種々の方法が考えられる。
部231の生成した行列の1次小行列を計算し(ステッ
プS2)、判定部233は、小行列式計算部232が計
算した小行列が非零か否かを判定する(ステップS
3)。1つでも零の1次小行列式があれば、ステップS
1からやり直す。
要領で、2次小行列について同様にチェックする(ステ
ップS4,S5)。
い(ステップS6,S7)、1次からn次まですべての
小行列式が非零であることが確認されたならば、そのM
DS行列を出力する(ステップS8)。
号化に用いるMDS行列とした場合、復号に用いるMD
S行列は、ステップS8で得たMDS行列の逆行列によ
って与えられる(逆に、ステップS8で得たMDS行列
を復号に用いる場合には、その逆行列が、暗号化に用い
るMDS行列となる)。
列の全ての要素が下位tビットのみ非零であっても、そ
の逆行列の全ての要素が下位tビットのみ非零であると
は限らない。
定を1次からn次まで順番に行っているが、他の順番で
もよく、また、それらの全部または一部を並列して行っ
てもよい。
逆行列である、復号に用いるMDS行列との両方とも、
下位tビットのみ非零という条件を満たすように、MD
S行列を求める方法について説明する。
の構成例を示す。図21に示されるように、このMDS
行列生成装置は、要素生成部231、小行列式計算部2
32、判定部233、逆行列生成部234、逆行列判定
部235を用いて構成される。要素生成部231、小行
列式計算部232、判定部233の部分は、図19と同
様である。
31、小行列式計算部232、判定部233により、下
位tビットのみ非零の要素からなるMDS行列を生成す
る(ステップS11)。
れたMDS行列の逆行列を求める(ステップS12)。
逆行列の各々の要素が、下位tビットのみ非零かどうか
調べる。
ば(ステップS13)、そのMDS行列および逆行列を
出力する(ステップS14)。
素があれば(ステップS13)、S11からやり直す。
行列を暗号化に用いる場合、ステップS12で生成され
た逆行列を復号に用いることになる(逆に、ステップS
11で生成されたMDS行列を復号に用いる場合、ステ
ップS12で生成された逆行列を暗号化に用いることに
なる)。
は、同一行内に同じ値の要素が存在しないようなMDS
行列(n行n列のMDS行列において第i1要素から第
in要素までの中に同一の値を持つ2個以上の要素がな
いもの)を生成するようにしてもよい。例えば、図20
や図22の手順例の場合、MDS行列の生成時に、同一
行内に同じ値の要素が存在するかどうかチェックし、同
一行内に1つでも同じ値の要素が存在すれば、MDS行
列を生成し直すようにすればよい。なお、同一列内に同
じ値の要素が存在しても構わない。
て、同一行内に同じ値の要素が存在しないようなMDS
行列を選択した線形変換装置を用いることによって、入
力ワードの差分値が相殺する確率を小さくすることがで
きる。
ならないようにMDS行列を生成するようにしてもよ
い。この場合も、同様の効果が得られる。
を選択する(あるいは最適化する)ことによって、より
安全性を高める方法、より具体的には、最大差分特性確
率が理論的最悪例よりも良くなることを保証するS−b
oxとMDSの組み合わせの設計方法について説明す
る。
で、S−boxの最大差分確率がpとすると、最大差分
特性確率は、pB になる。例えば、m行m列のMDSは
B=m+1となる。しかし、S−boxと小MDSの組
み合わせを選択する(あるいは最適化する)ことによ
り、ブランチ数Bで、最大差分特性確率がpB 未満を保
証することができる。この結果、通常のMDSよりも最
大差分確率が小さいMDSとS−boxを組み合わせる
ことにより、相乗効果が望め、安全性をより向上させる
ことができる。
手法として、差分解読法あるいは線形解読法があり、両
者は双対な関係にある。差分解読法に着目すると、S−
boxの安全性は入出力の差分相関を持つ確率で規定さ
れ、この確率が小さいほど安全性が高い。暗号アルゴリ
ズムでは、差分確率の小さいS−boxが多数組み合わ
せられるほど安全性が向上する。効率的なS−boxの
連結方法として、線形変換装置が従来から提案されてい
る。線形変換装置は、あるブロック長のデータに対して
線形変換を施す装置で、暗号化装置(や復号装置)の構
成要素として利用されることがある。線形変換の一種に
MDS行列による線形変換がある。
複数のワードから構成される場合、n個のワードへの線
形変換を定義する行列であり、非零の入出力ワードはn
+1個以上が保証されているという性質を持つ。しか
し、S−boxは、差分確率として、6/256、4/
256、2/256など複数の値の候補を持つため、M
DSであっても、n+1個の確率がそれぞれ6/256
のMDSと、それぞれ4/256であるMDSとでは、
後者の方が安全性が高い。
素としてそれぞれ独立に安全性を評価されたが、ここで
は、S−boxとMDSの相乗効果を検証する装置の例
を示す。
す。この例は、差分解読法に着目して、S−boxとの
相乗効果が望めるMDS決定処理を示している。差分解
読法と線形解読法は双対な関係にあるため、この処理を
線形確率に着目して行うことにより、線形解読法に対し
ても同じ効果が得られる。
MDSの候補を生成する(ステップS21、ステップS
22)。なお、ステップS21とステップS22は逆の
順番で行ってもよいし、並列して行ってもよい。
xを1つ選択するとともに(ステップS23)、小MD
S候補のなかから小MDSを1つ選択する(ステップS
24)。なお、ステップS23とステップS24を逆の
順番で行ってもよいし、並列して行ってもよい。
た)S−boxの差分値の最大を計算し(ステップS2
5)、上限(例えば、6/256)を下回る差分値(例
えば、4/256)が含まれているかどうか調べる。
6)、そのときのS−boxと小MDSの組み合わせを
出力する(ステップS27)。
6)、S−boxと小MDSの一方または両方を選択し
直して、以下、同様に、処理を繰り返す。
xの候補と複数の小MDSの候補を生成しておいたが、
その代わりに、最初の1組以外は、ステップS26で条
件を満たさずに、他のS−boxおよびまたはMDSを
選択することになったときに、生成するようにしてもよ
い。
理は、実際には、次のようになる。
MDSの組について、次の4種類、計20通りの検証を
行い、すべての条件を満たした場合に、ステップS27
でそのときのS−boxと小MDSの組が出力される。 小MDS113の入力側の1つのS−box112の
み活性にした場合に、小MDS113の出力側の4つの
S−box112が全て活性になり、かつ、そのうちの
1つでも上限を下回る差分値になれば、この検証を合格
とする。この検証を、入力側の4つのS−box112
の各々について行う(4通りある)。 小MDS113の入力側の2つのS−box112の
み活性にした場合に、小MDS113の出力側の4つの
S−box112が全て活性になれば、この検証を合格
とし、小MDS113の出力側の3つのS−box11
2が活性になり、かつ、そのうちの1つでも上限を下回
る差分値になれば、この検証を合格とする。この検証
を、入力側の2つのS−box112の組み合わせの各
々について行う(6通りある)。 小MDS113の出力側の2つのS−box112の
み活性にした場合に、小MDS113の入力側の4つの
S−box112が全て活性になれば、この検証を合格
とし、小MDS113の入力側の3つのS−box11
2が活性になり、かつ、そのうちの1つでも上限を下回
る差分値になれば、この検証を合格とする。この検証
を、出力側の2つのS−box112の組み合わせの各
々について行う(6通りある)。 小MDS113の出力側の1つのS−box112の
み活性にした場合に、小MDS113の入力側の4つの
S−box112が全て活性になり、かつ、そのうちの
1つでも上限を下回る差分値になれば、この検証を合格
とする。この検証を、出力側の4つのS−box112
の各々について行う(4通りある)。
いし、全部または一部を並列的に行ってもよい。上記の
複数の検証処理のうち、1つでも合格しないものがあれ
ば、そのS−boxと小MDSの組み合わせについて
は、以降の全ての検証処理をうち切って、不合格として
構わない。
を満たしたS−boxと小MDSの組み合わせが得られ
た時点で、処理をうち切るものであったが、条件を満た
したS−boxと小MDSの組み合わせを複数求め、そ
れらのうちで最も良いと評価されるものを選択するよう
にしてもよい。
構造である(鍵は同一である)。
号装置の構成例を示す。
を示す。
を示す。
ール部は、図4の暗号化装置の鍵スケジュール部と同一
の構成としてある。
入出力表、小MDS1113の小MDS行列、大MDS
1104の大MDS行列は、それぞれ、暗号化装置にお
ける、S−box112の入出力表(例えば図5)、小
MDS113の小MDS行列(例えば図7)、大MDS
104の大MDS行列(例えば、図9、図10)と逆関
数(逆行列)の関係になっている。
同様の順番で生成しているが、図4とは逆の順番で生成
するように構成することも可能である。
構成例を示す。
の逆変換を示している(例えば各々のSP層133の逆
変換(例えば図13あるいは図14の入出力を逆方向に
したもの)を4並列にしたものである)。
boxの入出力表、小MDS行列、大MDS行列は、そ
れぞれ、図11の鍵スケジュール部で用いる、S−bo
xの入出力表、小MDS行列、大MDS行列と逆関数
(逆行列)の関係になっている。
において(暗号側で)最後の鍵加算に用いられた鍵とす
る。
Ci を剰余加算する箇所について、図12の場合と同様
の方法をはじめとして、種々のバリエーションが考えら
れる。
ロック幅に渡る拡散(大拡散)との組み合わせによる、
入れ子型(再帰的)SPN構造の暗号方式を適用した例
として8ビットS−boxを利用したAES相当の12
8ビット・ブロック暗号の具体例を用いたが、以下で
は、同64ビット・ブロック暗号の具体例を用いつつ本
実施形態について説明する(128ビットを64ビット
にしたことに応じて相違することになる部分を中心に説
明する)。
の暗号化装置/復号装置もしくは暗号アルゴリズム/復
号アルゴリズムの構成例は、図1に例示した基本構成に
おいて、非線形変換モジュール2すなわち具体例では拡
大S−boxを、2並列にした場合に相当する。
も、もちろん、前述の128ビット・ブロック暗号の場
合と同様に、攻撃に対する耐性の向上が可能である。
部の階層構造の例は図3と同様である。ブロック長は、
64ビットである。鍵長は、128ビットを例にとる
(もちろん、他の鍵長でも本発明は実施可能である)。
なお、本実施形態で、ブロック長を64ビットとしたと
きに、鍵長を64ビットや96ビットとした場合につい
て後述する。
MDSとの対(ただし、後述するように最終段は大MD
Sを含まない)を1段と数えるものとしている)の具体
例を用いる場合にはR=6を用いる。なお、基本的には
段数は何段でも実施可能であるが、実際の段数は、例え
ば安全性や計算機資源等を想定して適宜設定することが
でき、好ましくは6段以上とすると、より効果的であ
る。
2層含んでいるので、1段が通常の2段に相当する。段
構造内の大MDSについては、ガロア体に基づく実装例
を示す。
構成例を示す。
S拡散層、2102は拡大S−box層、2103は各
々の拡大S−boxである。2105は、排他的論理和
部である。2121〜2124は、詳しくは後述する鍵
スケジュール部の構成部分である。Pは入力となる64
ビットの平文データ、Cは出力となる64ビットの暗号
文データである。なお、拡大S−box2103は、図
4の拡大S−box103と同様のもので構わない。
ット処理サブ・ブロック(拡大S−box)2103を
2個並列に並べ、MDS拡散層2104で繋いだ構造で
ある。全体の基本構造は、この段関数の繰り返しにす
る。
理を対称的にするため、最終段は拡大S−box層21
02とその後の鍵加算2105だけで構成することにし
ている。
れ、最後に鍵加算が行われるので、拡大鍵のビット長
は、2×64×R+64=64(2R+1)となる。R
=6の場合には、128×13ビットとなる。
を用いることもできるし、演算処理を用いることもでき
る。8ビットS−boxの入出力表の一例は、図5に示
したものと同様のもので構わない。
6と同様とする。拡大S−box内の拡散層113につ
いても同様に、例えば、図7に例示したMDSS行列を
使用し、S−box入出力と行列要素をガロア体GF
(28 )の元とみなして乗算を行うものとする。
ついて説明する。
例の暗号の段関数である大構造は、2並列の32ビット
拡大S−box2103(図6参照)をMDS行列の拡
散層2104で結合して構成する。この段関数である大
構造における拡散層2104にも、MDS行列を使用す
る。
GF(232)やGF(24 )やGF(28 )やGF(2
16)を利用する方法がある。
説明する。
示す。
において4つのS−boxの各々の出力すなわち8ビッ
ト・データの同じ位置(例えば図30では最上位ビット
を例にとって示している)の1ビットを集めて、これを
1組4ビットのデータとし、2つの拡大S−box21
03からの2組の4ビット・データを、GF(24 )の
元とみなす。
いて、2段の2並列拡大S−box層の間の拡散層21
04に2行2列のMDS行列(例えば図30では最上位
ビットの場合、2104−1)を用いる。
それぞれ対応するもとの8ビット・データの同じ位置に
結線される。
MDS行列(2104−1〜2104−8)を用意し
て、大MDSとする。
出力を単位とした表引きによって(なお、演算によって
もよい)、8個のMDS行列を同時に処理する効率的な
実行が可能である。
ビットごとの排他的論理和と8ビット単位のビット回転
を組み合わせた効率的な処理が可能となる。
の一例として、 1行1列=5、1行2列=7 1行1列=A、1行2列=B を示したが、これに対応する復号側での大MDS行列
は、 1行1列=C、1行2列=A 1行1列=5、1行2列=B となる。なお、前者を復号側に用い、後者を暗号側に用
いるようにしてもよい。また、任意のMDS行列につい
て、行の入れ替え、列の入れ替え、転置を任意に行って
得た行列を用いることも可能である。また、この他の大
MDS行列を用いることも可能である。
ように行列演算または入出力変換表による変換を実行す
るためのソフトウェアによって実現可能であるが、ハー
ドウェア(例えば半導体基板上等に形成した実回路)に
よっても実現可能である。
えば、MDS行列と等価な結線パターンを用いればよ
い。
現(結線パターン)を、GF(24)の1〜Fの元の各
々について示す。なお、結合部分では、排他的論理和が
なされる。
−1〜2104−8において、MDS行列の1行1列要
素をx1 に作用させる部分、1行2列要素をx2 に作用
させる部分、2行1列要素をx1 に作用させる部分、2
行2列要素をx2 に作用させる部分の結線パターンに、
当該行列要素の図31において該当する結線パターンを
用いればよい。
て大MDSを実回路で構成した例を示す。図中、214
1が1行1列要素“5”に対応する結線パターン、21
42が1行2列要素“7”に対応する結線パターン、2
143が2行1列要素“A”に対応する結線パターン、
2144が2行2列要素“B”に対応する結線パターン
である。ただし、複数ビットが結合される部分では、排
他的論理和がなされる。
理和による結合の後に、行列積の和に相当する部分の排
他的論理和による結合を行ったように示しているが、そ
れらすべての排他的論理和による結合を一括して行って
もよいし、適宜複数に分けて行ってもよい。
から所望の結線パターンを選択して暗号側の大MDSの
実回路構成の候補を作り、次に、これに対応するMDS
行列の逆行列(MDS行列)が存在することを検証す
る、という手順を取ることも可能である。もちろん、復
号側を先に決めてもよい。
(結線パターン)以外のものを用いることも可能であ
る。
ットブロック暗号にも適用可能である。
いて説明する。図31の結線パターンにおいて、データ
の出力側の各ビットにおいて、当該ビットに結線される
ビット数(結線数)を、ファン・インと呼ぶものとす
る。例えば、“1”に対応する結線パターンでは、いず
れのビットも、ファン・イン=1である。また、“5”
に対応する結線パターンでは、左側のビットから右側の
ビットへ順番に、ファン・イン=2,3,3,2であ
る。
ついてのファン・インの総計Sを考える。図32の例を
見ると、2141〜2144の点線内の16ビットのフ
ァン・インの総計Sは、45となる。このMDS拡散層
の結線パターンについてのファン・インの総計Sは、配
線の増加につながるので(行列計算を行う場合にも、排
他的論理和演算などの増加につながるので)、Sの値が
小さい方が好ましい。なお、GF(24 )の元を要素と
する2行2列のMDSの場合には、Sの最小値は18と
なる。
ある。これによって、回路量(行列計算を行う場合には
計算量)を削減することができる。
に、各々のMDS拡散層(2104−1〜2104−
8)について、当該MDS拡散層と前段の個々のS−b
oxとの間にそれぞれ、繰り込みのための前処理回路
(2180−1,2180−2)を挿入する。
1の結線パターンのいずれかが設けられる。あるいは、
等価な計算処理が行われる。
共通因子5による繰り込みによる実装を行った場合を示
している。また、図34に、このときの大MDSの一例
を示す。この場合、大MDS行列は、 1行1列=1、1行2列=4 1行1列=2、1行2列=9 となる。図中、2145が1行1列要素“1”に対応す
る結線パターン、2146が1行2列要素“4”に対応
する結線パターン、2147が2行1列要素“2”に対
応する結線パターン、2148が2行2列要素“9”に
対応する結線パターンである。複数ビットが結合される
部分が排他的論理和に対応する点は前述の通りである。
この場合、Sの値は、20となっている。
よる大拡散とは、等価である。
のときの行列を求める方法としては、例えば、図31の
ように繰り込みを行わない場合に求めた行列に対して、
共通因子をパラメータとして、等価な大拡散になるよう
な行列を求め、それらについてファン・インを評価し
て、採用するものを選択する方法がある。
同一にするという制約を課してもよいし、そのような制
約を課さなくてもよい。
子Bによる繰り込みによる実装を行うと、大MDS行列
は、 1行1列=9、1行2列=4 1行1列=2、1行2列=1 となる。
ットブロック暗号にも適用可能である。
論理的な関係を示すものであり、実配線や実レイアウト
にはもちろん設計の自由度がある。また、大MDS層の
各部分104−1〜104−8の8つを実装してもよい
し、MDS部分104−1〜104−8のうちの一部
(例えば、1つ、2つ、あるいは4つ)のみを実装し、
それを時分割的に共用するように構成してもよい。
(逆変換の関係になるだけである)。
ト・データのうちの同じ位置の2ビットごとに処理を行
うこととして、各要素が8ビットの2行2列のMDS行
列(GF(28 ))を、4個用意して、大MDSを構成
することも可能である。また、8ビット・データのうち
の同じ位置の4ビットごとに処理を行うこととして、各
要素が16ビットの2行2列のMDS行列(GF
(216))を、2個用意して、大MDSを構成すること
も可能である。
出して処理を行うものとして説明したが、前述と同様、
異なる位置のビットを(排他的に)取り出して処理を行
うことも可能である。
利用した大MDS行列による構成も可能である。
ロック暗号にも適用可能である。
boxの内部構成を、全て同一とせずに、異なるものを
混在させることも可能である。また、全ての大MDS行
列を同一にせずに、異なるものを混在させることも可能
である。この点は、小MDS行列、S−boxの入出力
表についても同様である。また、例えば、最初の入力段
と、最後の出力段だけ、他の中間段とは異なる内部構成
にしてもよい。なお、各々の大MDSの前段及び又は後
段に、同一の拡大S−boxに属する複数のS−box
についてのビットの位置を入れ替える処理を行う(ある
いはそのような回路を挿入する)構成も可能である。
られる。
は、これまで説明してきた種々のバリエーションを持つ
暗号化装置や復号装置に適用可能である。
いて説明する。
す。2121は、データ攪拌部の段関数の1段分に対応
する部分であり、2131は線形拡散層(本例では、大
MDSによる拡散層とする)であり、2133は非線形
変換層(本例では、2並列のSP層(S−box層・拡
散層)とする)であり、2134は排他的論理和部であ
り、2135は剰余加算部である。図35では省略して
いるが、2121の部分の構成が必要に応じて繰り返さ
れることになる。なお、64ビットの鍵を出力する構成
単位を鍵スケジュール部の1つの段とすると、鍵スケジ
ュール部の段数は(2R+1)段となる(R=6の場
合、13段である)。
istel型繰り返し処理の各段の出力左半分64ビッ
トを取り出し、段数依存定数Ci を剰余加算して拡大鍵
とする。
は、例えば、上位64ビットを初段の線形拡散層213
1に与え、下位64ビットを非線形変換層2133に与
えればよい。また、鍵長を64ビットとする場合には、
例えば、その64ビットを初段の線形拡散層2131に
与えるとともに、非線形変換層2133に与えればよ
い。また、鍵長を96ビットとする場合には、例えば、
上位64ビットを初段の線形拡散層2131に与え、下
位側32ビットと上位側32ビットとを結合した64ビ
ットを非線形変換層2133に与えればよい。
を剰余加算する箇所について、種々のバリエーションが
考えられる。
層2133の構成例は、図13や図14と同様とする
(図14において、S−boxに対する入力と排他的論
理和をとる定数を、段数依存定数とする構成も可能であ
る点も、同様である)。このS−boxが、図28の暗
号処理側のS−boxと同じものでもよいし、異なるも
のでもよい点も、同様である。小MDSについても同様
である。また、鍵スケジュール部の各段によってS−b
oxや小MDSの構成を変えることも可能である。
一例について説明する。
ビットの加算定数Ci は、2つのビット定数(H0 ,H
1 )の組み合わせで記述することができる。32ビット
の定数Hi の一例を次に示す。 H0 =(5a827999)H=21/2 /4 H1 =(6ed9eba1)H=31/2 /4 H2 =(8f1bbcdc)H=51/2 /4 H3 =(ca62c1d6)H=101/2 /4 加算定数Ci の組み合わせを、Ci =(Ci0,Ci1)と
記述する。各段で異なる64ビットの定数Ci を容易に
生成するため、Ci を構成するHi の組み合わせの決定
に8ビットLFSRを用いる。例えば、LFSRの原始
多項式には(1D)H を、LFSRの初期状態には(8
B)H を用いる。このLFSRを用いて生成されたビッ
ト列を2ビットづつ読み出し、定数として使用する32
ビット定数Hi を決定する。
Rを用いて決定した加算定数表の例を示す。
もよいし、固定としてもよい。前者の場合には、LFS
Rの初期状態も鍵の一部を構成することになる。後者の
場合には、暗号側と同じLFSRの初期状態を持つ復号
側のみ、暗号文を復号することができる。
れば、非線形変換層については、入力の1ビットが変化
すると、S−boxにより、8ビットに変化を波及さ
せ、さらに、小MDSにより、32ビットに変化を波及
させることができる。さらにまた、線形拡散層について
は、大MDSが前段の非線形変換層の出力をより大きく
攪拌するので、1ビットの違いも、64ビットの幅に広
がる利点がある。
れば、各段でバラバラな鍵が出やすい、攪拌しやすい、
という効果を得ることができる。また、段ごとに異なる
定数により、段にわたる鍵の一致が少ない(鍵がほぼ一
致しない)、という効果を得ることができる。
とることも可能である。
した線形拡散装置や有限体乗算装置は、この場合につい
ても適用可能である。また、図19〜図22を参照しな
がら説明したMDS行列生成装置(もしくはランダム生
成アルゴリズム)は、この場合についても適用可能であ
る。もちろん、図23を参照しながら説明したS−bo
xとMDSの組み合わせの設計方法は、この場合につい
ても適用可能である。
構造である(鍵は同一である)。
復号装置の構成例を示す。
に対応する構成例を示す。
成例は、図25と同様である。
ール部は、図28の暗号化装置の鍵スケジュール部と同
一の構成としてある。
1112参照)の入出力表、小MDS(図25の111
3参照)の小MDS行列、大MDS3104の大MDS
行列は、それぞれ、暗号化装置における、S−box
(図6の1112参照)の入出力表、小MDS(図6の
113参照)の小MDS行列、大MDS3104の大M
DS行列と逆関数(逆行列)の関係になっている。
と同様の順番で生成しているが、図28とは逆の順番で
生成するように構成することも可能である。
構成例を示す。
2の逆変換を示している(例えば各々のSP層2133
の逆変換(例えば図13あるいは図14の入出力を逆方
向にしたもの)を4並列にしたものである)。
boxの入出力表、小MDS行列、大MDS行列は、そ
れぞれ、図35の鍵スケジュール部で用いる、S−bo
xの入出力表、小MDS行列、大MDS行列と逆関数
(逆行列)の関係になっている。
8において(暗号側で)最後の鍵加算に用いられた鍵と
する。
Ci を剰余加算する箇所について、図36の場合と同様
の方法をはじめとして、種々のバリエーションが考えら
れる。
64ビット・ブロック暗号を例にとって説明したが、他
のビット長のブロック暗号にももちろん本発明は適用可
能である。
成、ソフトウェア構成について説明する。
ードウェアとしても、ソフトウェアとしても、実現可能
である。
合に、暗号化装置や復号装置を実現するプログラムであ
って、コンピュータに所定の手段を実行させるための
(あるいはコンピュータを所定の手段として機能させる
ための、あるいはコンピュータに所定の機能を実現させ
るための)プログラムを記録したコンピュータ読取り可
能な記録媒体としても実施することもできる。
半導体装置として形成することができる。
装置を構成する場合、あるいは暗号化プログラムや復号
プログラムを作成する場合に、図4や図24で例示した
ようなブロックもしくはモジュールをすべて個別に作成
することも可能であるが、同一構成を有するブロックも
しくはモジュールについては1または適当数のみ用意し
ておいて、それをアルゴリズムの各部分で共有する(使
い回す)ことも可能である。
ロセッサを利用し、並列処理を行って、処理を高速化す
ることも可能である。
ない装置として構成することも、復号機能を持ち、暗号
化機能を持たない装置として構成することも、暗号化機
能と復号機能の両方を持つ装置として構成することも、
可能である。同様に、暗号化機能を持ち、復号機能を持
たないプログラムとして構成することも、復号機能を持
ち、暗号化機能を持たないプログラムとして構成するこ
とも、暗号化機能と復号機能の両方を持つプログラムと
して構成することも、可能である。
いて説明する。
ようなシステムにも適用可能である。
301と、受信側装置303との間で、所定の方法もし
くは手続により、鍵を安全に共有しておき、送信側装置
301は送信データをブロック長ごとに本実施形態の暗
号方式で暗号化し、所定のプロトコルに従って、通信ネ
ットワーク302を介して、暗号文を受信側装置303
へ送信し、暗号文を受信した受信側装置303では、受
信した暗号文をブロック長ごとに本実施形態の暗号方式
で復号し、もとの平文を得ることができる。なお、各々
の装置が、暗号化機能と復号機能を両方持っていれば、
双方向に暗号通信を行うことができる。
機311では、所定の方法で鍵を生成し、保存したいデ
ータをブロック長ごとに本実施形態の暗号方式で暗号化
し、所定のネットワーク(例えば、LAN、インターネ
ット等)314を介して、暗号化データとして、データ
・サーバ313に保存しておく。計算機311では、こ
のデータを読みたいときは、データ・サーバ313から
所望の暗号化データを読み込み、これをブロック長ごと
に本実施形態の暗号方式で復号し、もとの平文を得るこ
とができる。また、他の計算機312が、この鍵を知っ
ていれば、同様に復号してもとの平文を得ることができ
るが、鍵の分からない他の計算機は、該暗号データを復
号することはできず、情報のセキュリティ・コントロー
ルが可能になる。
テンツ提供側では、暗号化装置321により、あるコン
テンツを、ある鍵で、ブロック長ごとに本実施形態の暗
号方式で暗号化し、これを暗号化コンテンツとして、記
録媒体322に記録し、これを頒布等する。記録媒体3
22を取得したユーザ側では、所定の方法で該ある鍵を
入手することにより、復号装置323により、該コンテ
ンツを、ブロック長ごとに本実施形態の暗号方式で復号
し、コンテンツの閲覧もしくは再生等を行うことができ
る。
適用可能である。
って、それ以外の構成を排除する趣旨のものではなく、
例示した構成の一部を他のもので置き換えたり、例示し
た構成の一部を省いたり、例示した構成に別の機能を付
加したり、それらを組み合わせたりすることなどによっ
て得られる別の構成も可能である。また、例示した構成
と論理的に等価な別の構成、例示した構成と論理的に等
価な部分を含む別の構成、例示した構成の要部と論理的
に等価な別の構成なども可能である。また、例示した構
成と同一もしくは類似の目的を達成する別の構成、例示
した構成と同一もしくは類似の効果を奏する別の構成な
ども可能である。また、各種構成部分についての各種バ
リエーションは、適宜組み合わせて実施することが可能
である。また、本実施形態は、暗号化装置としての発
明、復号化装置としての発明、システム全体としての発
明、個別装置内部の構成部分についての発明、またはそ
れらに対応する方法の発明等、種々の観点、段階、概念
またはカテゴリに係る発明を包含・内在するものであ
る。従って、この発明の実施の形態に開示した内容から
は、例示した構成に限定されることなく発明を抽出する
ことができるものである。
るものではなく、その技術的範囲において種々変形して
実施することができる。
行う小型の拡散層とブロック幅に及ぶ拡散を行う大型の
拡散層を交互に重ねて運用することにより、計算コスト
を抑えたまま高く均一な拡散を実現することができる。
構成について説明するための図
図
の階層構造の例を示す図
す図
構造例を示す図
す図
を示す図
を示す図
例を示す図
図
示す図
を示すフローチャート
例を示す図
例を示すフローチャート
わせを選択するための処理手順の一例を示すフローチャ
ート
示す図
の構造例を示す図
す図
図
の他の構造例を示す図
図
図
て説明するための図
図
構成例を示す図
構成例を示す図
の他の構造例を示す図
を示す図
一例を示す図
他の例を示す図
さらに他の例を示す図
x 104,131,1104,2104,2131,31
04…大MDS 105,1105,2105,3105…(暗号文直前
の)鍵加算部 111,1111…鍵加算部 112,141,1112…S−box 113,142,1113…小MDS 121〜124,2121〜2124,3121〜31
24…鍵スケジュール部 134,143,2134…排他的論理和部 135,136,2135,2136…剰余加算部 200…有限体乗算装置 201…桁溢れ帰還部 202…係数格納部 203…乗算部 204…排他的論理和分 231…要素生成部 232…小行列式計算部 233…判定部 234…逆行列生成部 235…逆行列判定部
Claims (16)
- 【請求項1】ブロック暗号方式による暗号化装置であっ
て、 ブロックデータに対してそれを複数に分割した部分ごと
に局所的な拡散を行う機能を含む第1の処理手段と、ブ
ロックデータに対してそのブロック幅にわたる拡散を行
う機能を含む第2の処理手段とを備えたことを特徴とす
る暗号化装置。 - 【請求項2】ブロック暗号方式による暗号化装置であっ
て、 ブロックデータを複数に分割した各部分データに対して
それぞれ非線形変換処理を施す並列させた複数の第1の
非線形変換処理手段の一群と、ブロックデータのブロッ
ク幅にわたる線形拡散処理を施す第1の線形拡散処理手
段とを備え、 前記第1の非線形変換処理手段の全部または一部は、そ
れぞれ、前記部分データのデータ幅をさらに複数に分割
した各部分に対してそれぞれ非線形変換処理を施す並列
させた複数の第2の非線形変換処理手段の一群と、前記
部分データのデータ幅にわたる線形拡散処理を施す第2
の線形拡散処理手段とを含むものであることを特徴とす
る暗号化装置。 - 【請求項3】前記第1の線形拡散処理手段は予め選択さ
れた最大距離分離行列を用いて入力ブロックデータから
出力ブロックデータを求めるものであることを特徴とす
る請求項2に記載の暗号化装置。 - 【請求項4】前記最大距離分離行列として全行列要素に
ついて下位所定ビットのみ非零であるものを選択するこ
とを特徴とする請求項3に記載の暗号化装置。 - 【請求項5】前記最大距離分離行列として同一行に属す
る全行列要素が相異なる値を持つものを選択することを
特徴とする請求項3または4に記載の暗号化装置。 - 【請求項6】前記第1の線形拡散処理手段は、前記ブロ
ック幅から所定数個おきに1ビットを取りだして連結し
たデータを入力として最大距離分離行列を用いて出力を
求める処理を、該1ビットを取り出す位置を変えたもの
についてそれぞれ行うものであることを特徴とする請求
項3に記載の暗号化装置。 - 【請求項7】前記第2の線形拡散処理手段は予め選択さ
れた最大距離分離行列を用いて入力部分データから出力
部分データを求めるものであることを特徴とする請求項
2ないし6のいずれか1項に記載の暗号化装置。 - 【請求項8】前記暗号化装置はさらに段数に依存する鍵
データを生成するための鍵生成手段を備え、 前記鍵生成手段は、前段の出力に非線形変換処理を施し
たものと、前々段の出力に非線形変換処理を施したもの
に線形拡散処理を施したものとの排他的論理和を取った
ものを当該段の出力とする処理を、必要段数分繰り返し
行う手段を含むものであることを特徴とする請求項2に
記載の暗号化装置。 - 【請求項9】共通鍵ブロック暗号方式による暗号化装置
であって、 初段では入力された128ビットの平文ブロックデータ
を、2段目以降では前段での処理が施された128ビッ
トのブロックデータを入力とし、該ブロックデータを4
分割した4組の32ビット・データに対してそれぞれ局
所的な線形拡散処理および非線形変換処理を施し出力す
る4つの第1の非線形変換処理部と、これら4つの第1
の非線形変換処理部からそれぞれ出力された4組の32
ビット・データを連結した128ビットのブロックデー
タに対して最大距離分離行列を用いて線形拡散処理を施
し次段へ出力する第1の拡散処理部とを、1段分の段構
成として、該段構成を所定段数分接続し、 最後の前記第1の拡散処理部の後段に、この第1の拡散
処理部から出力される128ビットのブロックデータを
入力とする前記4つの第1の非線形変換処理部を接続
し、 この4つの第1の非線形変換処理部の後段に、これら4
つの第1の非線形変換処理部からそれぞれ出力された4
組の32ビット・データを連結した128ビットのブロ
ックデータに対して128ビットの鍵データを加算して
128ビットの暗号化されたブロックデータとして出力
する第1の鍵加算部を接続して構成されるとともに、 前記第1の非線形変換処理部の各々は、与えられた1組
の前記32ビット・データをさらに4分割した4組の8
ビット・データに対してそれぞれ8ビットの鍵データを
加算する4つの第2の鍵加算部と、各第2の鍵加算部の
出力に対してそれぞれ8ビットの入出力変換表を用いて
非線形変換を行う4つの第2の非線形変換処理部と、こ
れら4つの第2の非線形変換処理部からそれぞれ出力さ
れた4組の8ビット・データを連結した32ビット・デ
ータに対して最大距離分離行列を用いて線形拡散処理を
施す第2の拡散処理部と、この第2の拡散処理部の後段
にさらに接続された4組の前記第2の鍵加算部および第
2の非線形変換処理部とを含むものであることを特徴と
する暗号化装置。 - 【請求項10】共通鍵ブロック暗号方式による暗号化装
置であって、 初段では入力された64ビットの平文ブロックデータ
を、2段目以降では前段での処理が施された64ビット
のブロックデータを入力とし、該ブロックデータを2分
割した2組の32ビット・データに対してそれぞれ局所
的な線形拡散処理および非線形変換処理を施し出力する
2つの第1の非線形変換処理部と、これら2つの第1の
非線形変換処理部からそれぞれ出力された2組の32ビ
ット・データを連結した64ビットのブロックデータに
対して最大距離分離行列を用いて線形拡散処理を施し次
段へ出力する第1の拡散処理部とを、1段分の段構成と
して、該段構成を所定段数分接続し、 最後の前記第1の拡散処理部の後段に、この第1の拡散
処理部から出力される64ビットのブロックデータを入
力とする前記2つの第1の非線形変換処理部を接続し、 この2つの第1の非線形変換処理部の後段に、これら2
つの第1の非線形変換処理部からそれぞれ出力された2
組の32ビット・データを連結した64ビットのブロッ
クデータに対して64ビットの鍵データを加算して64
ビットの暗号化されたブロックデータとして出力する第
1の鍵加算部を接続して構成されるとともに、 前記第1の非線形変換処理部の各々は、与えられた1組
の前記32ビット・データをさらに4分割した4組の8
ビット・データに対してそれぞれ8ビットの鍵データを
加算する4つの第2の鍵加算部と、各第2の鍵加算部の
出力に対してそれぞれ8ビットの入出力変換表を用いて
非線形変換を行う4つの第2の非線形変換処理部と、こ
れら4つの第2の非線形変換処理部からそれぞれ出力さ
れた4組の8ビット・データを連結した32ビット・デ
ータに対して最大距離分離行列を用いて線形拡散処理を
施す第2の拡散処理部と、この第2の拡散処理部の後段
にさらに接続された4組の前記第2の鍵加算部および第
2の非線形変換処理部とを含むものであることを特徴と
する暗号化装置。 - 【請求項11】ブロック暗号方式による暗号化プログラ
ムを記録したコンピュータ読取り可能な記録媒体であっ
て、 ブロックデータに対してそれを複数に分割した部分ごと
に局所的な拡散を行う機能を含む第1の処理機能と、ブ
ロックデータに対してそのブロック幅にわたる拡散を行
う機能を含む第2の処理機能とを、コンピュータに実現
させるためのプログラムを記録したコンピュータ読取り
可能な記録媒体。 - 【請求項12】ブロック暗号方式による暗号化方法であ
って、 ブロックデータに対してそれを複数に分割した部分ごと
に局所的な拡散を行う機能を含む第1の処理と、ブロッ
クデータに対してそのブロック幅にわたる拡散を行う機
能を含む第2の処理とを実行するステップを含むことを
特徴とする暗号化方法。 - 【請求項13】ブロック暗号方式による復号装置であっ
て、 ブロックデータに対してそれを複数に分割した部分ごと
に局所的な拡散を行う機能を含む第1の処理手段と、ブ
ロックデータに対してそのブロック幅にわたる拡散を行
う機能を含む第2の処理手段と備えたことを特徴とする
復号装置。 - 【請求項14】ブロック暗号方式による復号プログラム
を記録したコンピュータ読取り可能な記録媒体であっ
て、 ブロックデータに対してそれを複数に分割した部分ごと
に局所的な拡散を行う機能を含む第1の処理機能と、ブ
ロックデータに対してそのブロック幅にわたる拡散を行
う機能を含む第2の処理機能とを、コンピュータに実現
させるためのプログラムを記録したコンピュータ読取り
可能な記録媒体。 - 【請求項15】ブロック暗号方式による復号方法であっ
て、 ブロックデータに対してそれを複数に分割した部分ごと
に局所的な拡散を行う機能を含む第1の処理と、ブロッ
クデータに対してそのブロック幅にわたる拡散を行う機
能を含む第2の処理とを実行するステップを含むことを
特徴とする復号方法。 - 【請求項16】ブロック暗号方式における最大距離分離
行列を利用したデータ拡散処理のために、相対応する入
力ワードと最大距離分離行列の要素との乗算を求めるた
めの演算装置であって、 前記入力ワードと前記最大距離分離行列の対応する要素
とを、桁溢れを考慮せずに乗算する乗算手段と、 前記入力ワードの上位所定ビットをキーとして、桁溢れ
を調整するための帰還ワードを検索する検索手段と、 前記乗算手段による乗算結果と、検索された前記帰還ワ
ードとの排他和をとって、桁溢れを帰還した乗算結果を
求める排他和手段とを備えたことを特徴とする演算装
置。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000210484A JP3499810B2 (ja) | 2000-03-06 | 2000-07-11 | 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体 |
DE60119410T DE60119410T2 (de) | 2000-03-06 | 2001-03-06 | Vorrichtung und Verfahren zur Blockverschlüsselung und zur Entschlüsselung |
US09/799,028 US7227948B2 (en) | 2000-03-06 | 2001-03-06 | Encryption apparatus and method, and decryption apparatus and method based on block encryption |
EP01302065A EP1133100B1 (en) | 2000-03-06 | 2001-03-06 | Encryption apparatus and method, and decryption apparatus and method based on block encrytion |
KR10-2001-0011395A KR100415410B1 (ko) | 2000-03-06 | 2001-03-06 | 암호화 장치 및 방법과, 연산장치 및, 복호화 장치 및 방법 |
CNB011109408A CN1322697C (zh) | 2000-03-06 | 2001-03-06 | 加密装置与加密方法 |
US11/261,562 US7209556B2 (en) | 2000-03-06 | 2005-10-31 | Encryption apparatus and method, and decryption apparatus and method based on block encryption |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000-60482 | 2000-03-06 | ||
JP2000060482 | 2000-03-06 | ||
JP2000210484A JP3499810B2 (ja) | 2000-03-06 | 2000-07-11 | 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001324924A true JP2001324924A (ja) | 2001-11-22 |
JP3499810B2 JP3499810B2 (ja) | 2004-02-23 |
JP2001324924A5 JP2001324924A5 (ja) | 2004-08-19 |
Family
ID=26586845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000210484A Expired - Lifetime JP3499810B2 (ja) | 2000-03-06 | 2000-07-11 | 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7227948B2 (ja) |
EP (1) | EP1133100B1 (ja) |
JP (1) | JP3499810B2 (ja) |
KR (1) | KR100415410B1 (ja) |
CN (1) | CN1322697C (ja) |
DE (1) | DE60119410T2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007527028A (ja) * | 2003-05-23 | 2007-09-20 | ナグラビジョン エス アー | データのブロックを暗号化及び復号化するための装置及び方法 |
WO2008026624A1 (en) * | 2006-09-01 | 2008-03-06 | Sony Corporation | Data conversion device, data conversion method, and computer program |
JP2014041389A (ja) * | 2013-12-02 | 2014-03-06 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
Families Citing this family (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088800A (en) | 1998-02-27 | 2000-07-11 | Mosaid Technologies, Incorporated | Encryption processor with shared memory interconnect |
US7382878B2 (en) * | 2001-06-22 | 2008-06-03 | Uponus Technologies, Llc | System and method for data encryption |
JP3851115B2 (ja) * | 2001-06-28 | 2006-11-29 | 富士通株式会社 | 暗号回路 |
US7046803B2 (en) * | 2001-10-06 | 2006-05-16 | Samsung Electronics Co., Ltd. | Random keystream generation apparatus and method for use in an encryption system |
US7801301B2 (en) | 2001-10-10 | 2010-09-21 | Stmicroelectronics S.R.L. | Method and circuit for data encryption/decryption |
IL147287A0 (en) * | 2001-12-25 | 2002-08-14 | Yissum Res Dev Co | Method and apparatus for controlling atmospheric conditions |
JP4328487B2 (ja) * | 2002-01-28 | 2009-09-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 組合せ回路、暗号回路、その生成方法及びプログラム |
AU2003241594A1 (en) * | 2002-05-23 | 2003-12-12 | Atmel Corporation | Advanced encryption standard (aes) hardware cryptographic engine |
US7401109B2 (en) * | 2002-08-06 | 2008-07-15 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Multiplication of multi-precision numbers having a size of a power of two |
US7447310B2 (en) * | 2002-08-06 | 2008-11-04 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of Oregon State University | Lean multiplication of multi-precision numbers over GF(2m) |
US7363346B2 (en) * | 2002-09-07 | 2008-04-22 | Appistry, Inc. | Reliably storing information across multiple computers such as in a hive of computers |
US7772999B2 (en) * | 2007-12-10 | 2010-08-10 | Peter Lablans | N-state ripple adder scheme coding with corresponding n-state ripple adder scheme decoding |
US20110064214A1 (en) * | 2003-09-09 | 2011-03-17 | Ternarylogic Llc | Methods and Apparatus in Alternate Finite Field Based Coders and Decoders |
US8577026B2 (en) | 2010-12-29 | 2013-11-05 | Ternarylogic Llc | Methods and apparatus in alternate finite field based coders and decoders |
DE10345457A1 (de) * | 2003-09-30 | 2005-04-28 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Ver- und Entschlüsselung |
US7415616B2 (en) * | 2004-01-21 | 2008-08-19 | National Institute Of Information And Communications Technology | Cipher strength evaluation apparatus |
FR2871969B1 (fr) * | 2004-06-18 | 2006-12-01 | Sagem | Procede et dispositif d'execution d'un calcul cryptographique |
JP4561252B2 (ja) | 2004-09-03 | 2010-10-13 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
CA2584525C (en) * | 2004-10-25 | 2012-09-25 | Rick L. Orsini | Secure data parser method and system |
JP4527571B2 (ja) * | 2005-03-14 | 2010-08-18 | 富士通株式会社 | 再構成可能演算処理装置 |
WO2007008919A2 (en) * | 2005-07-11 | 2007-01-18 | University Of Virginia Patent Foundation | Method and system for software protection using binary encoding |
US20070043977A1 (en) * | 2005-08-22 | 2007-02-22 | Moxa Technologies Co., Ltd. | [program encryption method] |
US8437470B2 (en) | 2005-10-10 | 2013-05-07 | Nds Limited | Method and system for block cipher encryption |
ES2658097T3 (es) | 2005-11-18 | 2018-03-08 | Security First Corporation | Método y sistema de análisis de datos seguro |
JP4882598B2 (ja) * | 2006-07-28 | 2012-02-22 | ソニー株式会社 | 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム |
JP4905000B2 (ja) * | 2006-09-01 | 2012-03-28 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US8265177B2 (en) * | 2006-12-04 | 2012-09-11 | Samsung Electronics Co., Ltd. | System and method for wireless communication of uncompressed high definition video data using beambook-constructed beamforming signals |
US8259836B2 (en) * | 2006-12-04 | 2012-09-04 | Samsung Electronics Co., Ltd. | Method and system for generating candidate beamforming coefficients for transmission of data over a wireless medium |
JP5055993B2 (ja) * | 2006-12-11 | 2012-10-24 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム |
US20080250248A1 (en) * | 2006-12-24 | 2008-10-09 | Zeev Lieber | Identity Management System with an Untrusted Identity Provider |
IL182246A0 (en) * | 2007-03-27 | 2008-01-06 | Nds Ltd | Method and system for block cipher encryption |
US9191197B2 (en) * | 2007-10-10 | 2015-11-17 | Canon Kabushiki Kaisha | AES encryption/decryption circuit |
US8600050B1 (en) * | 2008-02-22 | 2013-12-03 | Sprint Communications Company L.P. | Encrypting a data transmission using multiple channels |
US8098816B2 (en) * | 2008-10-17 | 2012-01-17 | Qualcomm Incorporated | Apparatus and method for evaluating a cipher structure's resistance to cryptanalysis |
US9548758B2 (en) * | 2010-01-05 | 2017-01-17 | Alcatel-Lucent Usa Inc. | Secure compressive sampling using codebook of sampling matrices |
US9744300B2 (en) | 2011-12-21 | 2017-08-29 | Deka Products Limited Partnership | Syringe pump and related method |
US9295778B2 (en) | 2011-12-21 | 2016-03-29 | Deka Products Limited Partnership | Syringe pump |
US9789247B2 (en) | 2011-12-21 | 2017-10-17 | Deka Products Limited Partnership | Syringe pump, and related method and system |
WO2011123692A2 (en) | 2010-03-31 | 2011-10-06 | Orsini Rick L | Systems and methods for securing data in motion |
WO2012174427A2 (en) * | 2011-06-16 | 2012-12-20 | OneID Inc. | Method and system for determining authentication levels in transactions |
US11217340B2 (en) | 2011-12-21 | 2022-01-04 | Deka Products Limited Partnership | Syringe pump having a pressure sensor assembly |
US10722645B2 (en) | 2011-12-21 | 2020-07-28 | Deka Products Limited Partnership | Syringe pump, and related method and system |
WO2013109932A1 (en) | 2012-01-18 | 2013-07-25 | OneID Inc. | Methods and systems for secure identity management |
KR101977823B1 (ko) * | 2012-04-02 | 2019-05-13 | 삼성전자주식회사 | 랜덤 순열 생성 방법, 랜덤 순열 생성 장치 및 이를 구비하는 암복호화 장치 |
WO2015127189A1 (en) | 2014-02-21 | 2015-08-27 | Deka Products Limited Partnership | Syringe pump having a pressure sensor assembly |
US10103877B2 (en) * | 2015-09-24 | 2018-10-16 | Intel Corporation | SMS4 acceleration processors having round constant generation |
US10860962B2 (en) | 2015-10-28 | 2020-12-08 | Qomplx, Inc. | System for fully integrated capture, and analysis of business information resulting in predictive decision making and simulation |
US11108562B2 (en) | 2016-05-05 | 2021-08-31 | Neustar, Inc. | Systems and methods for verifying a route taken by a communication |
US11277439B2 (en) | 2016-05-05 | 2022-03-15 | Neustar, Inc. | Systems and methods for mitigating and/or preventing distributed denial-of-service attacks |
WO2017193093A1 (en) | 2016-05-05 | 2017-11-09 | Neustar, Inc. | Systems and methods for enabling trusted communications between entities |
US11025428B2 (en) | 2016-05-05 | 2021-06-01 | Neustar, Inc. | Systems and methods for enabling trusted communications between controllers |
US10958725B2 (en) | 2016-05-05 | 2021-03-23 | Neustar, Inc. | Systems and methods for distributing partial data to subnetworks |
CN114040381B (zh) * | 2021-11-08 | 2024-07-19 | 百度在线网络技术(北京)有限公司 | 加密方法、解密方法、装置及电子设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3798359A (en) * | 1971-06-30 | 1974-03-19 | Ibm | Block cipher cryptographic system |
JPH0682259B2 (ja) | 1987-11-30 | 1994-10-19 | 日本電信電話株式会社 | データ拡散装置 |
US5870477A (en) * | 1993-09-29 | 1999-02-09 | Pumpkin House Incorporated | Enciphering/deciphering device and method, and encryption/decryption communication system |
US5473693A (en) * | 1993-12-21 | 1995-12-05 | Gi Corporation | Apparatus for avoiding complementarity in an encryption algorithm |
AU693719B2 (en) | 1995-09-05 | 1998-07-02 | Mitsubishi Denki Kabushiki Kaisha | Data transformation apparatus and data transformation method |
US5838794A (en) * | 1996-01-11 | 1998-11-17 | Teledyne Electronic Technologies | Method and apparatus for inter-round mixing in iterated block substitution systems |
US7305085B2 (en) * | 2000-06-30 | 2007-12-04 | Kabushiki Kaisha Toshiba | Encryption apparatus and method, and decryption apparatus and method based on block encryption |
-
2000
- 2000-07-11 JP JP2000210484A patent/JP3499810B2/ja not_active Expired - Lifetime
-
2001
- 2001-03-06 EP EP01302065A patent/EP1133100B1/en not_active Expired - Lifetime
- 2001-03-06 KR KR10-2001-0011395A patent/KR100415410B1/ko not_active IP Right Cessation
- 2001-03-06 US US09/799,028 patent/US7227948B2/en not_active Expired - Fee Related
- 2001-03-06 DE DE60119410T patent/DE60119410T2/de not_active Expired - Lifetime
- 2001-03-06 CN CNB011109408A patent/CN1322697C/zh not_active Expired - Fee Related
-
2005
- 2005-10-31 US US11/261,562 patent/US7209556B2/en not_active Expired - Fee Related
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007527028A (ja) * | 2003-05-23 | 2007-09-20 | ナグラビジョン エス アー | データのブロックを暗号化及び復号化するための装置及び方法 |
JP4663635B2 (ja) * | 2003-05-23 | 2011-04-06 | ナグラビジョン エス アー | データのブロックを暗号化及び復号化するための装置が実行する方法 |
WO2008026624A1 (en) * | 2006-09-01 | 2008-03-06 | Sony Corporation | Data conversion device, data conversion method, and computer program |
JP2008058830A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
US8787568B2 (en) | 2006-09-01 | 2014-07-22 | Sony Corporation | Data transformation apparatus, data transformation method, and computer program |
JP2014041389A (ja) * | 2013-12-02 | 2014-03-06 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
Also Published As
Publication number | Publication date |
---|---|
CN1312630A (zh) | 2001-09-12 |
CN1322697C (zh) | 2007-06-20 |
KR20010087344A (ko) | 2001-09-15 |
EP1133100A2 (en) | 2001-09-12 |
JP3499810B2 (ja) | 2004-02-23 |
DE60119410D1 (de) | 2006-06-14 |
US20070058805A1 (en) | 2007-03-15 |
KR100415410B1 (ko) | 2004-01-16 |
US20010024502A1 (en) | 2001-09-27 |
US7227948B2 (en) | 2007-06-05 |
EP1133100A3 (en) | 2003-01-02 |
EP1133100B1 (en) | 2006-05-10 |
US7209556B2 (en) | 2007-04-24 |
DE60119410T2 (de) | 2006-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2001324924A (ja) | 暗号化装置及び暗号化方法、復号装置及び復号方法並びに演算装置 | |
US7305085B2 (en) | Encryption apparatus and method, and decryption apparatus and method based on block encryption | |
Kwon et al. | New block cipher: ARIA | |
US8731188B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
US9363074B2 (en) | Encryption processing apparatus, encryption processing method, and computer program | |
US6298136B1 (en) | Cryptographic method and apparatus for non-linearly merging a data block and a key | |
US8396210B2 (en) | Cryptographic processing apparatus and cryptographic processing method, and computer program | |
KR101770874B1 (ko) | 암호 처리 장치, 암호 처리 방법, 컴퓨터로 판독가능한 기록 매체, 및 정보 처리 장치 | |
US20120170739A1 (en) | Method of diversification of a round function of an encryption algorithm | |
Kazymyrov et al. | Influence of addition modulo 2 n on algebraic attacks | |
JP2007199156A (ja) | 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム | |
EP3480999B1 (en) | Customizable encryption/decryption algorithm | |
JP2014197913A (ja) | 暗号化装置、暗号化方法及びプログラム | |
Dawood et al. | Design large symmetric algorithm for securing big data | |
Murtaza et al. | Fortification of aes with dynamic mix-column transformation | |
Buell | Modern symmetric ciphers—Des and Aes | |
Minier et al. | Solving a symmetric key cryptographic problem with constraint programming | |
Abdulwahed | Chaos-Based Advanced Encryption Standard | |
JP3557178B2 (ja) | 暗号化装置及び暗号化方法、復号装置及び復号方法並びにプログラム | |
JP3017726B2 (ja) | データ変換装置 | |
Banik et al. | Efficient and Secure Encryption for FPGAs in the Cloud | |
Mihailescu et al. | Block Ciphers: DES and AES | |
Lee | OPTIMIZATION OFADVANCEDENCRYPTION STANDARD (AES) IN FPGA IMPLEMENTATION USING S-BOX INTEGRATION | |
Mahmud | A Study on Parallel Implementation of Advanced Encryption Standard (AES) | |
Gajbhiye et al. | FPGA IMPLEMENTATION OF ENCRYPTION AND DECRYPTION RIJINDAEL’S ALGORITHM BASED ON AES |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
R151 | Written notification of patent or utility model registration |
Ref document number: 3499810 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071205 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081205 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091205 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091205 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101205 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111205 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121205 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121205 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131205 Year of fee payment: 10 |
|
EXPY | Cancellation because of completion of term |