JP3782210B2 - 暗号装置 - Google Patents
暗号装置 Download PDFInfo
- Publication number
- JP3782210B2 JP3782210B2 JP17367297A JP17367297A JP3782210B2 JP 3782210 B2 JP3782210 B2 JP 3782210B2 JP 17367297 A JP17367297 A JP 17367297A JP 17367297 A JP17367297 A JP 17367297A JP 3782210 B2 JP3782210 B2 JP 3782210B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- linear
- key
- conversion
- mid
- 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.)
- Expired - Lifetime
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
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
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)
- Complex Calculations (AREA)
Description
【発明の属する技術分野】
この発明は、データの通信または蓄積において、データを秘匿するための暗号化装置、特に、秘密鍵の制御のもとでデータをブロック単位で暗号化または復号を行う共通鍵暗号方式による暗号化装置に関するものである。
【0002】
【従来の技術】
データを秘匿するための暗号化装置に含まれる代表的な共通鍵暗号方式には、米国連邦標準暗号であるDES(Data Encryption Standard)暗号がある。
図8は、DES暗号の機能構成を示す。DES暗号では、56ビットの秘密鍵を用い、64ビットのデータブロック単位に暗号化または復号を行う。図8において、暗号化処理は、平文Pの64ビットを初期変転部11において初期転値で変換した後、32ビットごとのブロックデータL0 ,R0 に分割される。次に、R0 は図9に示す関数演算部12への入力として用いられ、関数演算部12において48ビットの拡大鍵k0 の制御のもとにf(R0 ,k0 )に変換される。この変換データf(R0 ,k0 )とL0 との排他的論理和を回路13でとり、さらにその値とR0 とを入れ替えて、次のブロックデータL1 ,R1 を生成する。すなわち、R1 =L0 (+)f(R0 ,k0 ),L1 =R0 である。このように二つのブロックデータL0 ,R0 を入力として演算部12と排他的論理和回路13とデータの入れ替えとによりL1 ,R1 を出力する処理段140 が構成され、同じような処理段141 〜1415が縦続的に設けられる。つまり各処理段14i (0<i<16)では、Ri+1 =Li (+)f(Ri ,ki ),Li+1 =Ri の処理が行われ、最後にR16,L16を統合して64ビットにした後、最終転値部15において最終転値で変換して暗号文64ビットを出力する。復号処理においては、関数fに入力する拡大鍵k0 ,k1 ,…,k14,k15の順序だけを逆転させて、k15,k14,…,k1 ,k0 の順に入力するようにする点を除けば、暗号化処理と同じ手順で実行できる。なお、拡大鍵k0 ,k1 ,…,k14,k15は、暗号化処理とは別の拡大鍵生成ルーチン16で56ビットの秘密鍵が48ビットの拡大鍵16個の計768ビットに拡大されることによって生成される。
【0003】
さて、関数演算内部12の処理は、図9に示すように行われる。まず、32ビットのブロックデータRi は拡大転値部17で48ビットデータE(Ri )に変換される。これに拡大鍵ki とで排他的論理和を回路18で取り、48ビットデータE(Ri )(+)ki に変換した後、8個の6ビットごとのサブブロックデータに分割する。この8個のサブブロックデータはそれぞれ異なるS−boxS0 〜S7 に入力され、各々が4ビットの出力を得る。なお、このS−boxSj (j=0,1,…,7)は6ビットの入力データから4ビットの出力データに変換する非線形変換テーブルであり、DES暗号の本質的な安全性を担っている部分である。S−boxS0 〜S7 の8つの出力データは、再び連結されて32ビットデータになった後、転置変換部19を経て、図8に示されるように、Li と排他的論理和される関数fの出力f(Ri ,ki )となる。
【0004】
次に、暗号解読法について述べる。DES暗号を始めとする従来の共通鍵暗号方式についてはさまざまな方面から暗号解読が試みられており、そのなかでも、極めて効果的な解読法であるのがE.Biham およびA.Shamirによって提案された差分解読法(“Differential Cryptanalysis of DES-like Cryptosystems. ”Proceedings of CRYPTO'90)と松井によって提案された線形解読法(“DES暗号の線形解読法(I),”1993年暗号と情報セキュリティシンポジウムSCIS93−3C)である。
【0005】
差分解読法は、2つのデータX,X* の差分をΔX=X(+)X* としたとき、解読者が入手している平文・暗号文の2組を以下の式に適用して、最終ラウンドにおける拡大鍵k15を求めることを目的としている。
f(L16,k15)(+)f((L16(+) ΔL16),k15)=ΔR16(+) ΔR14
このとき、L16,ΔL16,ΔR16は暗号文から得られるデータであるので既知の情報である。このため、解読者がΔR14を正しく求めることができるならば、上式はk15のみが未知定数となり、既知の平文・暗号文の組を用いてk15に関する全数探索を行うことで、解読者は必ず正しいk15を見つけだすことができる。一方、ΔR14についてみてみると、この値は中間差分値であるため、一般には求めることが困難である。そこで、1ラウンド目から最終ラウンドの一つ前までのラウンド目までにおいて、各ラウンドが確率pi でΔRi+1 =ΔLi (+)Δ{f(ΔRi )},ΔLi+1 =ΔRi+1 のように近似されるとおく。ここでのポイントは、あるΔRi が入力されたとき、拡大鍵ki の値に関わらず、確率pi でΔ{f(ΔRi )}を予測できるということにある。このように近似できるのは、Δ{f(ΔRi )}に影響を与えるのが非線形な変換であるS−boxの部分だけであり、しかもS−boxにおいて、入力差分によっては差分出力の分布に極めて大きな偏りが生じるためである。例えば、S1−boxでは、入力差分「110100」のとき、1/4の確率で出力差分「0010」に変換されるためである。そこで、各々のS−boxが確率psiで入力差分と出力差分との関係が予測できるとおき、これらを組み合わせることで各ラウンドの近似を求める。さらに、各ラウンドでの近似を連結していくことで、ΔR14は確率P=Πpi でΔL0 ,ΔR0 (ΔL0 ,ΔR0 は平文から得られるデータであるので既知の情報である)から求められることになる。なお、この確率Pが大きいほど、暗号解読が容易である。このようにして、拡大鍵k15が求められると、今度は1段少ない15段DES暗号とみなして、同様の手法で、拡大鍵k14を求めていくということを繰り返して、最終的に拡大鍵k0 まで求めていく。
【0006】
Biham らによると、この解読法では、247組の選択された既知平文・暗号文の組があればDES暗号を解読できるとしている。
また、線形解読法は、以下の線形近似式を構成し、解読者が入手している平文・暗号文の組による最尤法を用いて拡大鍵を求めることを目的としている。
(L0 ,R0)・Γ(L0 ,R0)(+)(L16, R16)・Γ( L16, R16)=(k0 ,k1 ,…,k15)・Γ(k0 ,k1 ,…,k15)
ただし、Γ(X)はXの特定のビット位置を選択するベクトルを表し、マスク値という
線形近似式の役割は、暗号アルゴリズム内部を線形表現で近似的に置き換え、平文・暗号文の組に関する部分と拡大鍵に関する部分とに分離することにある。つまり、平文・暗号文の組に関して、平文の特定のビット位置の値と暗号文の特定のビット位置の値との全ての排他的論理和が一定値となり、その値は拡大鍵の特定のビット位置の値の排他的論理和に等しくなることを表している。したがって、解読者は(L0 ,R0)・Γ(L0 ,R0)(+)(L16, R16)・Γ( L16, R16)の情報から(k0 ,k1 ,…,k15)・Γ(k0 ,k1 ,…,k15)(1ビット)の情報が得られるということになる。このとき、(L0 ,R0),(L16,R16)はそれぞれ平文・暗号文のデータであるので既知の情報である。このため、解読者がΓ(L0 ,R0),Γ(L16,R16),Γ(k0 ,k1 ,…,k15)を正しく求めることができるならば、(k0 ,k1 ,…,k15)・Γ(k0 ,k1 ,…,k15) (1ビット)を求めることができる。
【0007】
DES暗号では、非線形な変換が起きる部分はS−boxしかないため、S−boxについてのみ線形表現ができれば、容易に線形近似式が構成できる。そこで、各々のS−boxが確率psiで線形表現できるとおく。ここでのポイントは、S−boxに対する入力マスク値が与えられたとき、確率psiでその出力マスク値を予測できるということにある。これは、非線形変換テーブルであるS−boxにおいて、入力マスク値によっては差分マスク値の分布に極めて大きな偏りが生じるためにおこる。例えば、S5−boxでは、入力マスク値「010000」のとき、3/16の確率で出力マスク値「1111」が予測されるためである。これらS−boxにおけるマスク値を組み合わせることによって、各ラウンドが確率pi で入力マスク値と出力マスク値のあいだに線形近似することができ、各ラウンドでの線形近似を連結していくことで、Γ(L0 ,R0),Γ(L16,R16),Γ(k0 ,k1 ,…,k15)は確率P=2n-1 ・Π|pi −1/2 |で求められることになる。なお、この確率Pが大きいほど、暗号解読が容易である。
【0008】
松井によると、この解読法で、243組の既知平文・暗号文の組を用いて、DES暗号の解読に成功している。
さて、上記の解読法に対抗するためには、確率Pが十分に小さくなればよい。このため、確率Pを小さくするための提案がさまざま行われており、なかでも従来の暗号方式において、もっとも簡単に安全性を高めるための方法がラウンド数を増やすことであった。例えば、DES暗号を3つつなげたTriple-DES暗号は、実質的にDESのラウンド数を16段から48段に増やした暗号方式であり、確率Pは、DES暗号よりもはるかに小さい。
【0009】
【発明が解決しようとする課題】
しかし、上記の解読法に対抗するための対策として、ラウンド数を増加させることは、暗号化速度を犠牲にすることになる。例えば、ラウンド数を3倍に増やせば、暗号化速度は1/3になる。つまり、現在のDES暗号の暗号化速度はPentium PCクラスで約10Mbpsであるため、Triple−DES暗号ともなると約3.5Mbpsまで暗号化速度が低下する。一方で、ネットワークやコンピュータなどは年々高速化しており、暗号化装置もそれらの高速化に対応したものが望まれている。
【0010】
このため、従来の暗号装置では、それらの高速化の要求に対して、安全性と高速性を同時に満たすことはきわめて困難な状況になっている。
この発明の目的は、上記の点を鑑みなされたもので、関数fを安全性と高速性を同時に満たすような構造にすることによって、ラウンド数を増加させることなく安全性を確保し、かつ高速な暗号化処理が可能となるような暗号装置を提供することにある。
【0011】
【課題を解決するための手段】
この発明では、特に非線形関数手段において、非線形関数手段の入力データに鍵記憶手段に蓄積された鍵データに基づいて線形変換を行う鍵依存線形変換手段と、この鍵依存線形変換手段の出力データを複数個のビット列に分割する分割手段と、これら分割された各ビット列に非線形変換をそれぞれ行う第一の非線形変換手段と、その第一の非線形変換手段の各々の出力ビット列間で線形変換を行う第一の線形変換手段と、その第一の線形変換手段の出力ビット列の一部またはすべてに非線形変換を行う第二の非線形変換手段と、その第二の非線形変換手段の出力ビット列をその非線形関数手段の出力データに結合する結合手段とを備えることを特徴とする。
【0012】
さらに安全性を向上させるには、前記結合手段の出力データを前記非線形関数手段の出力データに線形変換を行う第二の線形変換手段を備えることを特徴とする。
また、前記第一の線形変換手段または前記第二の線形変換手段、もしくはその両方の手段が、データの線形変換を行うときに、前記鍵記憶手段に蓄積された鍵データに基づいて線形変換を行う鍵依存線形変換手段であることを特徴とする。作用
この発明によれば、S−boxにおける確率がpsi <pb <1であるとき(pb はS−boxの最大確率)、各ラウンドを近似するときの確率はpi <pb 2 (ただし、差分解読法の場合は関数fへの入力差分が0でないとき、線形解読法の場合は関数fでの出力マスク値が0でないとき)となることが保証される。また、関数fが全単射(入力が異なれば出力が必ず異なる)であるとき、暗号方式のラウンド数を3mとすると、暗号方式としての確率はP<pi 2m <pb 4mとなる。一般に、暗号方式ではP<2-64 であれば差分解読法や線形解読法に対して安全とされるため、m>−16/(log2(pb ))を満たせばよく、pb <2-4であればDES暗号の16ラウンドよりも少ないラウンド数で安全性を確保できる。なお安全性の確率はmラウンドの倍数ごとに変化する。
【0013】
また、少なくとも2つのS−boxが並列に処理できるような配置となっているため、並列処理ができないものと比較して2倍以上の処理速度を出すことが可能である。
ゆえに、差分解読法や線形解読法に対する安全性を、高速な関数で、かつ比較的少ないラウンド数で確保できるため、安全性と高速性を両立させた暗号装置を提供することが可能になる。
【0014】
【発明の実施の形態】
実施例1
以下、この発明の一実施例を図面を用いて説明する。
図1は、この発明の一実施例を示す暗号装置における、暗号化処理手順の機能構成を示したものである。
【0015】
平文に相当する入力データPを入力手段301から暗号装置内に入力する。入力データPは鍵記憶手段322に蓄積されている鍵データfkによる鍵依存初期線形変換手段302で変換された後、初期分割手段303で二つのデータL0 ,R0 に分割される。例えば64ビットのデータが32ビットづつのデータL0 ,R0 にビット分割される。データR0 は、鍵記憶手段322に蓄積されている鍵データk00,k10,k20とともに非線形関数手段304に入力され、非線形関数手段304で変換処理を行われてデータY0 に変換される。データY0 とデータL0 は線形演算手段305で演算されてデータL0 * に変換される。データL0 * とデータR0 は交換手段306でデータ位置の交換が行われ、L1 =R0 ,R1 =L0 * のように交換される。以下、二つのデータL1 ,R1 について上記と同様の処理を繰り返し行う。すなわち、二つのデータLi ,Ri について、データRi は、鍵記憶手段322に蓄積されている鍵データk0i,k1i,k2iとともに非線形関数手段304に入力され、非線形関数手段304で変換処理を行われて、データYi に変換される。データYi とデータLi は線形演算手段305で演算されてデータLi * に変換される。データLi * とデータRi は交換手段306でデータ位置の交換が行われ、Li+1 =Ri ,Ri+1 =Li * のように交換される。線形演算手段305は例えば排他的論理和演算を行うものである。
【0016】
暗号方式としての安全性を確保するための適切な繰り返し回数をnとすると、繰り返し処理の結果、データLn ,Rn が得られる。このデータLn ,Rn を最終結合手段307で結合しつまり例えば32ビットの各Ln ,Rn をビット結合して64ビットのデータとし、その後鍵記憶手段322に蓄積されている鍵データekによる鍵依存最終線形変換手段308で変換し、出力手段309から暗号文として出力データCを出力する。
【0017】
復号については、暗号化処理手順と逆の手順をたどることによって、暗号文Cから平文Pが得られる。例えば図1において入力データの代りに暗号文データを入力し、鍵データを図1とは逆に、ek,k0(n-1),k1(n-1),k2(n-1),…,k01,k11,k21,k00,k10,k20,fkを順次与えればよい。
次に、非線形関数手段304の内部を詳細に説明する。図2は、非線形関数手段304の内部の機能構成を抜き出して示したものである。
【0018】
データRi は、鍵記憶手段322に蓄積されている鍵データk0i,k1i,k2iとともに非線形関数手段304への入力データとなる。データRi は、鍵データk0iによる鍵依存線形変換手段341によりデータRi * に線形変換される。次に、データRi * は分割手段342において例えば8ビットづつの4つのデータin0 ,in1 ,in2 ,in3 にビット分割される。4つのデータin0 ,in1 ,in2 ,in3 は、それぞれ非線形変換手段343,344,345,346において、データmid00,mid01,mid02mid03に非線形変換された後、鍵依存線形変換手段347に入力される。鍵依存線形変換手段347では、鍵データk1iにより例えば図3に示すように、線形処理される。即ちデータmid00,mid01,mid02,mid03はそれぞれ処理系300 〜303 に入力され、処理系301 でmid00とmid01との排他的論理和が回路311 でとられ、また処理系302 でmid02とmid03の排他的論理和が回路312 でとられ、更に回路311 の出力と回路312 の出力の排他的論理和が回路322 でとられる。回路311 の出力と回路322 の出力との排他的論理和が回路311 でとられ、回路331 の出力とmid00の排他的論理和が回路340 でとられ、回路322 の出力とmid03との排他的論理和が回路343 でとられ、回路340 ,331 ,322 ,343 の各出力と鍵データk1i0,k1i1,k1i2,k1i3 との各排他的論理和が回路350 〜353 でそれぞれとられて、それぞれmid10,mid11,mid12,mid13を出力する。つまりデータmid00,mid01,mid02,mid03は相互に関連づけられた後、それぞれ鍵データk1i0,k1i1,k1i2,k1i3 に依存した線形変換が行われる。論理式で示すと下記の論理演算がなされる。
【0019】
mid10= mid00(+)mid02(+)mid03(+)k1i0,mid11 =mid02(+)mid03(+)k1i1,
mid12= mid00(+)mid01(+)mid02(+)mid03(+)k1i2,mid13 =mid00(+)mid01(+)mid02(+)k1i3
次にこれらデータmid10,mid11,mid12,mid13は、それぞれ非線形変換手段348,349,350,351において、データout0 ,out1 ,out2 ,out3 に非線形変換された後、結合手段352において、一つのデータYi * に結合される。つまり例えば4つの8ビットのデータが1つの32ビットデータにビット結合される。最後に、データYi * は、鍵データk2iによる鍵依存線形変換手段353において、データYi に線形変換され、非線形関数手段304からの出力データYi が生成される。非線形変換手段343〜346,348〜351の各1つの手段それぞれ、例えばDES暗号のS−boxの1つの要素のようなもので、それぞれ入力データに応じた異った出力データを出力するものである。
【0020】
ここで、非線形変換手段343〜346は4つ並列に配置されており、その変換処理は相互に関連していないため、これらは並列実行が可能である。また、非線形変換手段348〜351についても同様のことがいえる。
さらに、非線形変換手段348〜351については、鍵依存線形変換手段347が任意の鍵依存線形変換方法をとることを可能にするために配置されている。このため、鍵依存線形変換手段347が、例えば図3のように特定の線形変換であることがあらかじめわかっている場合には、非線形変換手段348〜351の一部を削除しても、差分解読法および線形解読法に対する安全性が低下しないようにすることができ、削除した分だけ暗号化処理速度の向上が望める。例えば、鍵依存線形変換手段347が図3で表されているとき、非線形変換手段349,350を削除しても差分解読法および線形解読法に対する安全性は低下しない一方で、暗号化速度が約33%向上する。つまり鍵依存線形変換手段347が予め決っている場合は差分解読法、線形解読法に対しては非線形変換手段348〜351の一部はその存在が安全性に関係ない場合があり、その部分は省略できる。なお、鍵データfk,k00,k10,k20,k01,k11,k21,…,k0(n-1),k1(n-1),k2(n-1),ekは図1において鍵入力手段320から暗号装置内に入力された鍵情報Keyから鍵データ生成手段321によって変換され、鍵記憶手段322に蓄積されたデータである。鍵データ生成手段321による鍵データの生成はDES暗号の拡大鍵生成アルゴリズム16と同様に行うことができる。
【0021】
上記のように構成された暗号装置の場合、例えば、非線形変換手段343〜346,348〜351の各1つづつが差分解読法および線形解読法に対して確率pb =2-6で近似表現できるように設計されているならば、各ラウンドは非線形変換を必ず2回行うため、確率pi <2-12 で近似表現することができ、暗号装置全体としてはラウンド数を3mとして、確率P<2-24mで近似表現できることになる。ここで、例えばm=4(ラウンド数12段)とすると、P<2-96 となり、差分解読法および線形解読法に対して十分安全な暗号装置となる。
【0022】
また、鍵依存初期線形変換手段302、鍵依存最終線形変換手段308、鍵依存線形変換手段347,353は鍵に依存する線形変換手段であるため、差分解読法および線形解読法以外の解読法に対しても十分な安全性を兼ね備え、もっとも安全性を重視した暗号装置である。
なお、この発明はこの例に特定されるだけでなく、例えば高速性を望むのであれば、これら鍵依存初期線形変換手段302、鍵依存最終線形変換手段308、鍵依存線形変換手段353については、そのいずれか、もしくはすべてを削除することが可能である。この場合、差分解読法および線形解読法に対する安全性は低下しない一方で、削除した分だけ暗号化処理速度の向上が望める。ただし他の解読法に対しては弱くなるおそれはある。また、鍵依存初期線形変換手段302、鍵依存最終線形変換手段308、鍵依存線形変換手段347,353のいずれか、もしくはすべてを鍵に依存しない線形変換手段に変更することも可能である。この場合、差分解読法および線形解読法以外の解読法に対しても安全性が低下しない一方で、インプリメントを最適化することにより、暗号化処理速度の向上が望める。なお、線形変換手段としては、ビット位置を予め決めた関係で入れかえる転置、予め決めたビット数だけ回転シフトするなどを行う。鍵依存線形変換手段は、鍵データに応じたビット数だけ回転シフトする、あるいは、鍵データとの排他的論理和演算を行うものなどである。
実施例2
図4は、この発明の他の実施例を示す。
【0023】
平文に相当する入力データPを入力手段301から暗号装置内に入力する。入力データPは初期分割手段303で二つのデータL0 ,R0 に分割される。データR0 は、鍵記憶手段322に蓄積されている鍵データk00,k20とともに非線形関数手段304に入力され、非線形関数手段304で変換処理を行われて、データY0 に変換される。データY0 とデータL0 は線形演算手段305で演算され、データL0 * に変換される。データL0 * とデータR0 は交換手段306でデータ位置の交換が行われ、L1 =R0 ,R1 =L0 * のように交換される。以下、二つのデータL1 ,R1 について上記と同様の処理を繰り返し行う。すなわち、二つのデータLi ,Ri について、データRi は、鍵記憶手段322に蓄積されている鍵データk0i,k2iとともに非線形関数手段304に入力され、非線形関数手段304で変換処理を行われて、データYi に変換される。データYi とデータLi は線形演算手段305で演算され、データLi * に変換される。データLi * とデータRi は交換手段306でデータ位置の交換が行われ、Li+1 =Ri ,Ri+1 =Li * のように変換される。
【0024】
暗号方式としての安全性を確保するための適切な繰り返し回数をnとすると、繰り返し処理の結果、データLn ,Rn が得られる。このデータLn ,Rn を最終結合手段307で結合した後、出力手段309から暗号文として出力データCを出力する。
復号については、暗号化処理手順と逆の手順をたどることによって、暗号文Cから平文Pが得られる。
【0025】
次に、非線形関数手段304の内部を詳細に説明する。図5Aは、非線形関数手段304の内部の機能構成を抜き出して示したものである。
データRi は、鍵記憶手段322に蓄積されている鍵データk0i,k2iとともに非線形関数手段304への入力データとなる。データRi は、データk0iによる鍵依存線形変換341において、データRi * に線形変換される。次に、データRi * は分割手段342において4つのデータin0 ,in1 ,in2 ,in3 に分割される。4つのデータin0 ,in1 ,in2 ,in3 は、それぞれ非線形変換手段343,344,345,346において、データmid00,mid01,mid02,mid03に非線形変換された後、線形変換手段354に入力される。線形変換手段354では、例えば図5Bに示すように相互に関連づけるように変換される。これは図3中の鍵データとの論理演算を省略した場合と同一の例であり、下記の式で表わせる。
【0026】
mid10= mid00(+)mid02(+)mid03,mid11=mid02(+)mid03,
mid12= mid00(+)mid01(+)mid02(+)mid03,mid13=mid00(+)mid01(+)mid02
この線形変換で、データmid10,mid11,mid12,mid13が生成され、そのうちのデータmid10,mid13は、それぞれ非線形変換手段348,351において、データout0 ,out3 に非線形変換された後、結合手段352において、4つのデータout0 ,mid11,mid12,out3 を一つのデータYi * に結合される。最後に、データYi * は、データk2iによる鍵依存線形変換手段353において、データYi に線形変換され、非線形関数手段304からの出力データYi が生成される。
【0027】
ここで、非線形変換手段343〜346は4つ並列に配置されており、その変換処理は相互に関連していないため、これらは並列実行が可能である。また、非線形変換手段348,351についても同様のことがいえる。
なお、鍵データki は、鍵入力手段320から暗号装置内に入力された鍵情報Keyから鍵データ生成手段321によって変換され、鍵記憶手段322に蓄積されたデータである。
【0028】
上記のように構成された暗号装置の場合、例えば、非線形変換手段343〜346,348,351が差分解読法および線形解読法に対して確率pb =2-6で近似表現できるように設計されているならば、実施例1と同様に各ラウンドは確率pi <2-12 で近似表現することができ、暗号装置全体としてはラウンド数を3mとして、確率p<2-24mで近似表現できることになる。ここで、例えばm=4(ラウンド数12段)とすると、P<2-96 となり、差分解読法および線形解読法に対して十分安全な暗号装置となる。
【0029】
また、鍵依存線形変換手段353があるため、差分解読法と線形解読法以外の解読法に対しても安全性にマージンがある構造であり、かつ実施例1よりも構造が簡素化されているため、高速である。つまり、安全性と高速性のバランスを重視した暗号装置である。
実施例3
図6は、この発明の更に他の実施例を示す。
【0030】
平文に相当する入力データPを入力手段301から暗号装置内に入力する。入力データPは初期分割手段303で二つのデータL0 ,R0 に分割される。データR0 は、鍵記憶手段322に蓄積されている鍵データk0 とともに非線形関数手段304に入力され、非線形関数手段304で変換処理を行われて、データY0 に変換される。データY0 とデータL0 は線形演算手段305で演算され、データL0 * に変換される。データL0 * とデータR0 は交換手段306でデータ位置の交換が行われ、L1 =R0 ,R1 =L0 * のように変換される。以下、二つのデータL1 ,R1 について上記と同様の処理を繰り返し行う。すなわち、二つのデータLi ,Ri について、データRi は、鍵記憶手段322に蓄積されている鍵データki とともに非線形関数手段304に入力され、非線形関数手段304で変換処理を行われて、データYi に変換される。データYi とデータLi は線形演算手段305で演算され、データLi * に変換される。データLi * とデータRi は交換手段306でデータ位置の交換が行われ、Li+1 =Ri ,Ri+1 =Li * のように変換される。
【0031】
暗号方式としての安全性を確保するための適切な繰り返し回数をnとすると、繰り返し処理の結果、データLn ,Rn が得られる。このデータLn ,Rn を最終結合手段307で結合した後、出力手段309から暗号文として出力データCを出力する。
復号については、暗号化処理手順と逆の手順をたどることによって、暗号文Cから平文Pが得られる。
【0032】
次に、非線形関数手段304の内部を詳細に説明する。図7は、非線形関数手段304の機能構成を抜き出して示したものである。
非線形関数手段304への入力データRi は、鍵記憶手段322に蓄積されている鍵データki とともに鍵依存線形変換341への入力となる。データRi は、データki による鍵依存線形変換341において、データRi * に線形変換される。次に、データRi * は分割手段342において4つのデータin0 ,in1 ,in2 ,in3 に分割される。4つのデータin0 ,in1 ,in2 ,in3 は、それぞれ非線形変換手段343,344,345,346において、データmid00,mid01,mid02,mid03に非線形変換された後、線形変換手段354に入力される。線形変換手段354では、例えば実施例2の図5Bと同じように、
mid10= mid00(+)mid02(+)mid03,mid11=mid02(+)mid03,
mid12= mid00(+)mid01(+)mid02(+)mid03,mid13=mid00(+)mid01(+)mid02
に線形変換し、データmid10,mid11,mid12,mid13を生成する。ついで、データmid10,mid13は、それぞれ非線形変換手段348,351において、データout0 ,out3 に非線形変換された後、結合手段352において、4つのデータout0 ,mid11,mid12,out3 を一つのデータに結合され、非線形関数手段304からの出力データYi が生成される。
【0033】
ここで、非線形変換手段343〜346は4つ並列に配置されており、その変換処理は相互に関連していないため、これらは並列実行が可能である。また、非線形変換手段348,351についても同様のことがいえる。
なお、鍵データki は、鍵入力手段320から暗号装置内に入力された鍵情報Keyから鍵データ生成手段321によって変換され、鍵記憶手段322に蓄積されたデータである。
【0034】
上記のように構成された暗号装置の場合、例えば、非線形変換手段343〜346,348,351が差分解読法および線形解読法に対して確率pb =2-6で近似表現できるように設計されているならば、各ラウンドは確率pi <2-12 で近似表現することができ、暗号装置全体としてはラウンド数を3mとして、確率P<2-24mで近似表現できることになる。ここで、例えばm=4(ラウンド数12段)とすると、P<2-96 となり、差分解読法および線形解読法に対して十分安全な暗号装置となる。
【0035】
また、差分解読法および線形解読法に対して十分な安全性を確保するために最低限必要な手段しか実行しない構造であるため、もっとも高速性を重視した暗号装置である。
上述において、非線形関数手段304中の各分割手段342は4分割に限らず、複数に分割すればよい。なお、4分割の場合においては、第二の非線形変換手段は図5A、図7に示したように二つのみとすることができる。
【0036】
【発明の効果】
以上、詳細に説明したように、この発明によれば、非線形関数手段で入力データを複数に分割し、かつそれぞれ非線形変換を行い、その後、相互に線形交換を行い、更に少くとも一部を非線形交換することによりデータの通信または蓄積においてデータを秘匿するための暗号装置について、安全性が高く、かつ高速性を兼ね備えた暗号装置を提供することができる。
【図面の簡単な説明】
【図1】この発明の実施例1の機能構成を示す図。
【図2】実施例1における非線形関数手段304の詳細な機能構成例を示す図。
【図3】図2中の鍵依存線形変換手段347の具体例を示す図。
【図4】この発明の実施例2の機能構成を示す図。
【図5】Aは実施例2における非線形関数手段304の詳細な機能構成を示す図、Bはこの手段304中の具体例を示す図である。
【図6】この発明の実施例3の機能構成を示す図。
【図7】実施例3における非線形関数手段304の詳細な機能構成を示す図。
【図8】従来のDES暗号装置の機能構成を示す図。
【図9】図8中のf関数演算部12の具体的機能構成を示す図。
Claims (8)
- 入力データを初期分割手段で二つの部分データに分割し、これら部分データの一つに対し、非線形関数手段で鍵記憶手段に蓄積された鍵データに依存したデータ変換処理を行い、その非線形関数手段の出力データを前記部分データの他方の一つに線形演算手段で作用させ、その線形演算手段の出力データと前記非線形関数手段の入力部分データとの配列順番を交換手段で交換し、前記交換手段よりこの交換されたデータを二つの部分データとして前記非線形関数手段と、前記線形演算手段と前記交換手段とを繰返し手段で複数回繰返し、前記繰返し手段の最終回の繰返しにおける前記交換手段よりの二つのデータを一つの出力データに最終結合手段で結合して、その出力データを出力する暗号装置において、
前記非線形関数手段は、入力されたデータに前記鍵記憶手段に蓄積された鍵データに基づいて線形変換を行う鍵依存線形変換手段と、
その鍵依存線形手段の出力データを複数個のビット列に分割する分割手段と、
これらビット列にそれぞれ非線形変換を行う第一の非線形変換手段と、
前記第一の非線形変換手段のそれぞれの出力ビット列間で線形変換を行う第一の線形変換手段と、
その第一の線形変換手段の出力ビット列の少くとも一部に非線形変換を行う第二の非線形変換手段と、
その第二の非線形変換手段の出力ビット列を結合して前記非線形関数手段の出力データとする結合手段とを備えることを特徴とする暗号装置。 - 請求項1に記載の暗号装置において、
前記結合手段の出力データを線形変換して前記非線形関数手段の出力データとする第二の線形変換手段を備えることを特徴とする暗号装置。 - 請求項1または請求項2に記載の暗号装置において、
前記第一の線形変換手段は、前記鍵記憶手段に蓄積された鍵データに基づいて線形変換を行う手段であることを特徴とする暗号装置。 - 請求項2に記載の暗号装置において、
前記第二の線形変換手段は、前記鍵記憶手段に蓄積された鍵データに基づいて線形変換を行う手段であることを特徴とする暗号装置。 - 請求項1から請求項4までのいずれかに記載の暗号装置において、
前記入力データに線形変換を行って前記初期分割手段へ供給する初期線形変換手段を備えることを特徴とする暗号装置。 - 請求項1から請求項5までのいずれかに記載の暗号装置において、
前記最終結合手段の出力データに線形変換を行って暗号装置の出力とする最終線形変換手段を備えることを特徴とする暗号装置。 - 請求項5または請求項6に記載の暗号装置において、
前記初期線形変換手段は前記鍵記憶手段に蓄積された鍵データに基づいて線形変換を行う手段であることを特徴とする暗号装置。 - 請求項6に記載の暗号装置において、
前記最終線形変換手段は前記鍵記憶手段に蓄積された鍵データに基づいて線形変換を行う手段であることを特徴とする暗号装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17367297A JP3782210B2 (ja) | 1997-06-30 | 1997-06-30 | 暗号装置 |
PCT/JP1998/002915 WO1999000783A1 (fr) | 1997-06-30 | 1998-06-30 | Dispositif de chiffrement |
CA002295167A CA2295167C (en) | 1997-06-30 | 1998-06-30 | Cryptographic device |
DE69829566T DE69829566T2 (de) | 1997-06-30 | 1998-06-30 | Verschlüsselungsgerät |
EP98929747A EP1001398B1 (en) | 1997-06-30 | 1998-06-30 | Ciphering apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17367297A JP3782210B2 (ja) | 1997-06-30 | 1997-06-30 | 暗号装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1124559A JPH1124559A (ja) | 1999-01-29 |
JP3782210B2 true JP3782210B2 (ja) | 2006-06-07 |
Family
ID=15964969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17367297A Expired - Lifetime JP3782210B2 (ja) | 1997-06-30 | 1997-06-30 | 暗号装置 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1001398B1 (ja) |
JP (1) | JP3782210B2 (ja) |
CA (1) | CA2295167C (ja) |
DE (1) | DE69829566T2 (ja) |
WO (1) | WO1999000783A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2789535B1 (fr) * | 1999-02-04 | 2001-09-28 | Bull Cp8 | Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique |
KR100365308B1 (ko) * | 1999-12-10 | 2002-12-26 | 강소대 | 마그네틱 페이퍼 제작방법 |
JP3505482B2 (ja) * | 2000-07-12 | 2004-03-08 | 株式会社東芝 | 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体 |
US6956951B2 (en) * | 2000-07-13 | 2005-10-18 | Fujitsu Limited | Extended key preparing apparatus, extended key preparing method, recording medium and computer program |
JP4515716B2 (ja) * | 2002-04-03 | 2010-08-04 | パナソニック株式会社 | 拡大鍵生成装置、暗号化装置および暗号化システム |
JP2008058830A (ja) * | 2006-09-01 | 2008-03-13 | Sony Corp | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3039334B2 (ja) * | 1995-08-14 | 2000-05-08 | 日本電気株式会社 | 暗号装置 |
CA2203380C (en) * | 1995-09-05 | 2000-05-30 | Mitsuru Matsui | Data transformation apparatus and data transformation method |
IL119182A (en) * | 1996-09-02 | 2000-06-29 | Goodman Geoffrey | Filter |
-
1997
- 1997-06-30 JP JP17367297A patent/JP3782210B2/ja not_active Expired - Lifetime
-
1998
- 1998-06-30 DE DE69829566T patent/DE69829566T2/de not_active Expired - Fee Related
- 1998-06-30 CA CA002295167A patent/CA2295167C/en not_active Expired - Fee Related
- 1998-06-30 WO PCT/JP1998/002915 patent/WO1999000783A1/ja active IP Right Grant
- 1998-06-30 EP EP98929747A patent/EP1001398B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1999000783A1 (fr) | 1999-01-07 |
DE69829566T2 (de) | 2006-02-16 |
JPH1124559A (ja) | 1999-01-29 |
CA2295167A1 (en) | 1999-01-07 |
EP1001398A4 (en) | 2002-01-30 |
CA2295167C (en) | 2003-02-04 |
EP1001398A1 (en) | 2000-05-17 |
DE69829566D1 (de) | 2005-05-04 |
EP1001398B1 (en) | 2005-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1052611B9 (en) | Data converter and recording medium on which program for executing data conversion is recorded | |
US5745577A (en) | Symmetric cryptographic system for data encryption | |
Rijmen et al. | The cipher SHARK | |
US8369516B2 (en) | Encryption apparatus having common key encryption function and embedded apparatus | |
EP1005191B1 (en) | Encryption/decryption unit and storage medium | |
EP2058781B1 (en) | Encryption device, encryption method, and computer program | |
JP2002366029A (ja) | Dpaに対して安全な暗号化 | |
JPH0863097A (ja) | データを暗号化するための対称暗号化方法およびシステム | |
KR19990084419A (ko) | 블록 데이터 암호화 장치 | |
Mala et al. | Impossible differential attacks on 13-round CLEFIA-128 | |
JP3782210B2 (ja) | 暗号装置 | |
Liu et al. | Improved results on impossible differential cryptanalysis of reduced-round Camellia-192/256 | |
RU2141729C1 (ru) | Способ криптографического преобразования блоков двоичных данных | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
JP4515716B2 (ja) | 拡大鍵生成装置、暗号化装置および暗号化システム | |
JPH1124558A (ja) | 暗号装置 | |
CN114826558A (zh) | 一种海量数据快速加密方法及系统 | |
KR20190037980A (ko) | 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템 | |
Joux et al. | Loosening the KNOT | |
Jean et al. | Analysis of the CAESAR candidate Silver | |
JP3017726B2 (ja) | データ変換装置 | |
Keliher et al. | Modeling linear characteristics of substitution-permutation networks | |
JP3017725B2 (ja) | データ変換装置 | |
Liu et al. | Research on Enhanced AES Algorithm Based on Key Operations | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060309 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090317 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100317 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100317 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100317 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110317 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110317 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120317 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130317 Year of fee payment: 7 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
EXPY | Cancellation because of completion of term |