JP3901959B2 - Arithmetic apparatus and arithmetic method combining Feistel structure and SPN structure - Google Patents

Arithmetic apparatus and arithmetic method combining Feistel structure and SPN structure Download PDF

Info

Publication number
JP3901959B2
JP3901959B2 JP2001207327A JP2001207327A JP3901959B2 JP 3901959 B2 JP3901959 B2 JP 3901959B2 JP 2001207327 A JP2001207327 A JP 2001207327A JP 2001207327 A JP2001207327 A JP 2001207327A JP 3901959 B2 JP3901959 B2 JP 3901959B2
Authority
JP
Japan
Prior art keywords
data
input
output
bits
fixed
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 - Fee Related
Application number
JP2001207327A
Other languages
Japanese (ja)
Other versions
JP2002091295A (en
Inventor
武司 下山
孝一 伊藤
正彦 武仲
直哉 鳥居
純 矢嶋
仁史 屋並
和弘 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001207327A priority Critical patent/JP3901959B2/en
Publication of JP2002091295A publication Critical patent/JP2002091295A/en
Application granted granted Critical
Publication of JP3901959B2 publication Critical patent/JP3901959B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は共通鍵ブロック暗号方式に係り、更に詳しくはFeistel 構造とSPN構造とを組み合わせ、かつSPN構造に特別の工夫を行ってデータの拡散性を向上させる暗号化装置、および暗号化方法に関する。
【0002】
【従来の技術】
高度情報化社会を迎え、情報セキュリティの確保は緊急の課題となっている。情報セキュリティの基本となるのはデータの暗号化である。高度情報化社会において高速、かつ安全な通信を実現するために共通鍵ブロック暗号は不可欠の技術である。この共通鍵ブロック暗号のアルゴリズムとして従来様々な方式が提案されているが、それらは基本的にはFeistel 構造と呼ばれる構造の繰返しか、あるいはSPN構造と呼ばれる構造の繰返しのいずれかであった。
【0003】
図12はFeistel 構造の説明図である。同図において、例えば入力128ビットは右側64ビットと左側64ビットに分割され、右側64ビットはF関数51と呼ばれる非線形関数に入力され、その出力と左側64ビットとがXOR52によって排他的論理和がとられ、その結果が出力128ビットのうちの右側64ビットとして出力され、左側64ビットとしては入力128ビットのうちの右側64ビットがそのまま出力される。このようなFeistel 構造が、例えば16段繰り返されて、暗号化が行われる。
【0004】
図13はSPN構造の例である。この構造においては、Sボックスと呼ばれる非線形変換53と、線形変換P54とが組み合わされて用いられる。
SボックスのSはサブスティテューション、すなわち換字を、関数Pはパーミュテーション、すなわち置換を意味するが、現在ではSはより一般的に非線形写像を、またPは置換だけではなく、ビット単位の線形変換を指すものとなっている。
【0005】
いずれにせよ、このようなSPネットワーク(SPN)構造が多段に繰り返されることによって暗号化が行われる。なお図12のFeistel 構造内のF関数として後述するようにSPN構造が用いられるが、図12は全体としてはFeistel 構造を示すものである。
【0006】
【発明が解決しようとする課題】
以上のような共通鍵ブロック暗号方式においては、Feistel 構造、SPN構造のいずれを用いるとしても、なるべく少ない段数でデータの安全性が保証されるような暗号化を行う必要がある。しかしながら、まずFeistel 構造を用いる場合には1段で入力データ長の半分しか攪拌されず、ワード内のデータ攪拌には効果があるが、ワードを越えたデータ攪拌能力が劣るという問題点がある。また入出力が対称の形式となっていることから、暗号としては繰返し型の差分近似式、または線形近似式が存在する可能性があり、差分攻撃や線形攻撃にさらされる危険性があるという問題点があった。
【0007】
これに対してSPN構造を用いる場合には、ワード間のデータ攪拌性には効果があり、入出力が非対称の形式であるという長所を持つが、入力データ長全体を分割して複数のSボックスに入力させる必要があり、Sボックスは一般にメモリ内にテーブルとして保持されるものを使用するため、Sボックスの数が増えることによってテーブル参照回数が増加し、SPN構造だけを何段も組み合わせる場合には、処理に時間がかかるという問題点があった。
【0008】
本発明の課題は、上述の問題点に鑑み、Feistel 構造とSPN構造とを組み合わせてそれぞれの欠点をできるだけ解消させる暗号化を行うと共に、SPN構造内のSボックスにおいてもデータ攪拌効果を更に向上させることによって、演算量をできるだけ削減し、かつデータ拡散性能に優れた暗号化装置、および暗号化方法を提供することである。
【0009】
【課題を解決するための手段】
図1は本発明の演算装置の原理構成ブロック図である。同図はデータ入力を受け取り、そのデータ入力に対する演算結果をデータ出力とする演算装置を示す。この演算装置1では、Feistel 構造を用いてデータ変換を行う第1のデータ変換手段2の1つ以上と、SPN構造を用いてデータ変換を行う第2のデータ変換手段3の1つ以上とが、データ入力とデータ出力との間で縦続的に組み合わされる。
【0010】
図1(a)においては、データ入力に対して最初に第1データ変換手段2、次に第2のデータ変換手段3が用いられ、(b)においては逆に最初に第2のデータ変換手段3が、次に第1のデータ変換手段2が用いられる。
【0011】
(c)においては先ず第1のデータ変換手段2が2段用いられた後に、第2のデータ変換手段3が用いられる。(d)においては逆に第2のデータ変換手段3が用いられた後に、第1のデータ変換手段2が2段連続に用いられてデータ出力が行われる。
【0012】
このように本発明においては第1のデータ変換手段2の1つ以上と、第2のデータ変換手段3の1つ以上とが組み合わされて用いられるが、Feistel 構造を用いる第1のデータ変換手段2については、1段ではデータの片側しか攪拌されないため、例えば2段連続的に用いられてデータの両側の攪拌が行われるような形式で組み合わせが行われる。なお、2つのデータ変換手段をさらに多数組み合わせることも当然可能である。
【0013】
本発明の実施の形態においては、SPN構造の中にデータ入力の1ブロックのブロック長、例えば128ビットをワード長32ビットで割算した値、例えば4ビットの入・出力ビット数を持つ非線形変換手段、例えばSボックスと、インタリーブ変換を用いる線形変換手段とを備えることもできる。
【0014】
また発明の実施の形態においてはSPN構造を構成する非線形変換手段、例えばSボックスとして入力ビット数、例えば4ビットのうちで、1つ以上、例えば右側2ビットにのみ差分が与えられた入力データの組に対して、同じ位置、すなわち右側2ビットにのみ出力データの組に差分が現われる確率が0となり、かつ例えば右側2ビットの入力ビットおよび右側2ビットの出力ビットにのみ関係する任意の線形関係式がすべての入出力データ間で成立する確率が1/2となる非線形変換手段を備えることもできる。
【0015】
本発明の演算方法においては、データ入力に対する演算結果をデータ出力とする演算方法において、Feistel 構造を用いてデータ変換を行う第1のデータ変換ステップの1つ以上と、SPN構造を用いてデータ変換を行う第2のデータ変換ステップの1つ以上とを、データ入力とデータ出力の間で組み合わせて実行する演算方法が用いられる。
【0016】
発明の実施の形態においては、この演算方法内のSPN構造を用いた第1のデータ変換ステップにおいて、データ入力の1ブロックのブロック長をワード長で割った値を入出力ビット数とする非線形変換と、インタリーブ変換を用いる線形変換とを実行することもできる。
【0017】
また本発明の実施の形態においては、このSPN構造内で実行されるべき非線形変換として、入力ビット数のうちで1つ以上、例えば右側半数の入力ビットにのみ差分が与えられた入力データの組に対して、同じ右側半数の出力ビットにのみ出力データの組に差分が現われる確率が0となり、かつ右側半数の入力ビット、および右側半数の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データの間で成立する確率が1/2となる非線形変換を実行することもできる。
【0018】
更に本発明においては、データ入力を受け取り、そのデータ入力に対する演算結果をデータ出力とする演算を実行する計算機によって使用される記憶媒体として、Feistel 構造を用いてデータ変換を行う第1のデータ変換ステップの1つ以上と、SPN構造を用いてデータ変換を行う第2のデータ変換ステップの1つ以上とを、データ入力とデータ出力との間で組み合わせて実行させる機能を有するプログラムを格納した計算機読出し可能可搬型記憶媒体が用いられる。
【0019】
更にまた本発明においては、データ入力を受け取り、そのデータ入力に対する演算結果をデータ出力とする演算を実行する計算機によって使用されるプログラムとして、Feistel 構造を用いてデータ変換を行う第1のデータ変換手順の1つ以上と、SPN構造を用いてデータ変換を行う第2のデータ変換手順の1つ以上とを、データ入力とデータ出力との間で組み合わせて実行させる機能を有するプログラムが用いられる。
【0020】
以上のように本発明によれば、Feistel 構造とSPN構造とがデータ入力とデータ出力との間で組み合わされて演算が実行され、更にSPN構造の内部で、例えば右側半数の入力ビットにのみ差分が入力データの組に現われた場合、右側半数の出力ビットには出力データの組に差分が現われないような非線形変換が用いられる。
【0021】
【発明の実施の形態】
本発明においては、Feistel 構造とSPN構造とが組み合わされて、演算装置、または演算方法が構成されるが、そのような演算装置および演算方法として、入力された平文を暗号化して出力する暗号文生成装置、および生成方法を発明の実施形態として説明する。
【0022】
図2はそのような暗号文生成装置のシステム構成ブロック図である。同図において、暗号文生成装置は処理装置10、入力ファイル11、出力ファイ12、表示装置13、および入出力装置14によって構成されている。
【0023】
処理装置10の内部には、使用されるFeistel 構造を決定するFeistel 構造決定部16、SPN構造を決定するSPN構造決定部17、Feistel 構造とSPN構造とを組み合わせた暗号化アルゴリズムを決定する暗号化アルゴリズム決定部18、その暗号化アルゴリズムに従って平文を暗号化する暗号文生成部19を備えている。
【0024】
入力ファイル11には暗号化されるべき入力データとしての平文、入力データ1ブロックのビット長n、処理装置10による演算に適当なワードのビット長w、および後述するようにSPN構造の中で用いられる線形変換としてのインタリーブ変換の内容などが格納されている。
【0025】
また出力ファイル12には、Feistel 構造決定部16によって決定されるFeistel 構造に用いられているF関数、SPN構造決定部17によって決定されるSボックスの非線形関数に相当する写像S、および暗号化アドレス決定部18によって決定されたFeistel 構造とSPN構造の組合せとしての暗号化アルゴリズムなどが格納される。
【0026】
図3は本実施形態におけるFeistel 構造とSPN構造との組合せ、すなわち暗号化アルゴリズム決定部18によって決定された暗号化アルゴリズムの例である。同図において、入力データに対してまずFeistel 構造20a、20bによる演算が2段行われる。その後SPN構造23による演算が行われ、その結果に対して更に2段のFeistel 構造20c,20dによる演算が行われ、その結果が暗号文として出力されることになる。
【0027】
図3においては、1段のFeistel 構造によっては入力データのうち片側半分しか攪拌されないため、Feistel 構造が2段重ねて用いられると共に、後述するようにSPN構造23にワード内の攪拌効果を大きくする工夫が取り入れられる。すなわちSボックスで用いられる非線形関数に対して、後述する図8、図9のような性質を持つ関数を用いてワード内の攪拌効果を大きくすると共に、更に線形変換としてインタリーブ変換を用いることによって、1つのブロックを構成する複数のワードの間での攪拌効果が大きくなるようにSPN構造が構成される。
【0028】
なお、Feistel 構造を3段以上連続して用いるとSPN構造を組み合わせた効果が薄れてくるため、図3ではSPN構造が2段のFeistel 構造の間に挿入された組合せとなっている。
【0029】
図4はそのSPN構造23の概略の説明図である。同図において入力データ、例えば128ビットに対してまずインタリーブ変換24が行われ、例えば32ビットで構成される4つのワード間のデータの攪拌が行われる。その攪拌結果は複数のSボックス25に与えられ、Sボックス25の出力に対してインタリーブ逆変換26が行われて、SPN構造の出力となる。
【0030】
図5は本実施形態における暗号文生成処理の全体フローチャートである。同図において処理が開始されると、まずステップS1で平文、すなわち入力データブロックのビット長nが入力されて、ステップS2でFeistel 構造Rが定められる。本実施形態においては、このFeistel 構造内の非線形関数Fとして任意の関数を用いることができるものとするが、その例については図6で説明する。
【0031】
続いてステップS3で演算器に適するワードのビット長wが入力され、ステップS4でSPN構造Bが定められる。このSPN構造Bについては、図4で説明したようにインタリーブ変換とSボックスの非線形関数の内容が問題となるが、これらについては後述する。
【0032】
そしてステップS5で、1段以上のFeistel 構造と1段以上のSPN構造とが組み合わされて、例えば図3で示したような暗号化アルゴリズムが定められ、ステップS6でその暗号化アルゴリズムに従って入力データとしての平文が暗号化されて暗号文が生成され、処理を終了する。
【0033】
図6は本実施形態においてFeistel 構造の内部で用いられるF関数の例である。このF関数としては、前述のように任意の非線形関数を用いることができ、その意味でF関数として図6のものを用いなければならない理由はないが、その構成について特徴的な部分を中心に説明する。
【0034】
図6において、入力データ64ビットはそれぞれ右側、左側32ビットずつに分割され、XOR30a,30bによってkey1とkey2との排他的論理和がそれぞれとられ、6ビットまたは5ビットずつに分割されて、それぞれ6つのSボックス31に入力される。一般的にはSボックスとして全てのSボックスの入出力ビット数が等しいものを並べて使う場合が多い。ここでは6ビット入出力のSボックスと5ビットの入出力のSボックスとを混在させて用いているが、その詳細については説明を省略する。
【0035】
それぞれ6個のSボックス31の出力はMDS変換部32a,32bに与えられる。ここでMDS変換部は、図12で説明したSPN構造における関数Pに相当し、その意味ではFeistel 構造内のF関数はSPN構造を持つともいえるが、このP関数におけるデータの拡散性を定義する1つの概念としての分岐数を最大とする線形変換層がMDS変換部である。この分岐数は、暗号に対する差分攻撃や、線形攻撃に対する強度を評価するバロメータであり、その詳細については次の文献で説明されている。
文献)共通鍵ブロック暗号の選択/設計/評価に関するドキュメント、通信・放送機構
MDS変換部32a,32bの出力は、それぞれXOR33a,33bに与えられ、排他的論理和がとられるが、例えばMDS変換部32aの出力32ビットに対しては、Ox5555 5555との論理積がとられた後にExオア33bに与えられる。このような論理積がとられるのは、MDS変換部32a,32bの出力がそのまま与えられるのでは、Exオア33a,33bの出力は同じになってしまうためである。ここでMDS変換部32aの出力と論理積がとられるデータは2進数では010101・・・0101(32ビット)であり、またMDS変換部32bの出力と論理積がとられるデータは101010・・・1010(32ビット)である。
【0036】
図7は図5のステップS4、すなわちSPN構造Bの決定処理の詳細フローチャートである。同図において処理が開始されると、まずステップS9で入出力ビット数が求められた後に、ステップS10でランダムな写像Sが新しく選択される。この写像Sは、図5のステップS1で入力されたブロックのビット長nを、ステップS3で入力されたワードのビット長wで割った結果としての、rビット入出力の1対1写像である。
【0037】
例えば平文、すなわち入力データのブロックのビット長nが128ビットであり、ワード長wが32ビットであるとすると、rは4ビットとなり、4ビット入出力のランダムな写像Sが選択される。
【0038】
図7のステップS11で、写像Sを対象として固定された半数の入力ビット、例えば4ビットのうち2ビットにのみ差分が与えられた入力データの組に対して、同じ位置にある固定された半数の出力ビットにのみ出力データの組に差分が現われる確率が0であるか否かが判定され、0でない場合にはステップS10に戻り、新しいランダムな写像Sの選択以降の処理が繰り返される。
【0039】
ステップS11で確率が0と判定されると、ステップS12で写像Sを対象として固定された半数の入力ビット、および例えば同じ位置にある固定された半数の出力ビットのみに関係する任意の線形関係式について、全ての入出力ビットデータ間でその線形関係式が成立する確率が1/2であるか否かが判定され、1/2でない場合にはステップS10以降の処理が繰り返される。なおステップS11、S12における判定については図8、図9を用いて更に後述する。
【0040】
ステップS12で確率が1/2である場合には、ステップS13でその写像Sとインタリーブ変換、例えば図10で後述するインタリーブ変換であって、図2の入力ファイル11に格納されているインタリーブ変換とが組み合わされてSPN構造Bが定められ、処理を終了する。
【0041】
図8は図7のステップS11で判定される確率の例である。この例は、4ビットを入出力ビット数とする非線形のS関数として
S:(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)→(1,9,6,12,7,2,15,11,14,0,5,10,4,3,8,13)
の関数を用いた場合の例であり、入力差分に対して出力差分が現われる確率としてのx/16のxを表わしたものである。なおこの非線形S関数の入出力関係において、例えば最後の10進15に対して10進13が出力されること、すなわち2進数1111に対して1101が出力されることが示されている。
【0042】
図8において4ビットのうち右側半分に入力差分が表われている上の3行においては、対応する位置の片側半分に出力差分が現われる確率、すなわち左側3列の確率は0であることが、また左側半分に入力差分が現われている入力データの組、すなわち下側3行に対しては左側半分に出力差分が現われる確率、すなわち右側3列の確率が0であることが示されている。
【0043】
図8において、例えば入力差分が(0001)であり、かつ出力差分が(0100)である入出力データ組は入力組(0110),(0111)に対する出力組(1111),(1011)と、入力組(0111),(0110)に対する出力組(1011),(1111)の2組だけであることが計算によって確認されている。
【0044】
図9は図7のステップS12で判定される確率の例を示す。この確率は前述の非線形S関数に対する確率を示すものである。すなわち、片側2入力ビットおよび片側2出力ビットのみに関係した任意の全ての線形関係式について、全入出力ビットデータ間でその線形関係式が成立する確率(8−x)/16を決めるxを示すものである。
【0045】
図9において、右側2入力ビットと右側2出力ビットとにそれぞれ差分が現われるのは上3行の左側3列であり、このような入出力ビットデータ間で線形関係式が成立する確率を示すxの値が0であることから、その確率は8/16,すなわち1/2となる。
【0046】
同様に左側2入力ビット、左側2出力ビットに差分が現われるのは、下3行のうち右側3列であり、これらの入出力データ間においても線形関係式の成立確率は1/2となる。線形関係式の成立確率が1/2となるということは、その入出力データ間でその線形関係式が成立することもあり、また成立しないこともあることを示し、その線形関係式自体に意味がないことを示している。
【0047】
入出力ビットに関するある線形式の値が常に0、または1となるとき、入出力の間にその線形式が成立することになる。暗号においては入出力が線形関係からできるだけ離れていることが望ましく、その意味で前述の成立確率1/2という状況が望ましい。
【0048】
入力を(x0 ,x1 ,x2 ,x3 )、出力を(y0 、y1 ,y2 ,y3 )とし、入力(0001)、出力(0100)に関係する線形式x3 +y1 の値を調べることにする。前述の写像Sで入力1=(0001)に対する出力は9=(1001)であることから、x3 +y1 =1+0=1となる。同様にして、すべての入出力の間でx3 +y1 の値は次のように求められる。
【0049】
In0,Out1→0
In1,Out9→1
In2,Out6→1
In3,Outc→0
In4,Out7→1
In5,Out2→1
In6,Outf→1
In7,Outb→1
In8,Oute→1
In9,Out0→1
Ina,Out5→1
Inb,Outa→1
Inc,Out4→1
Ind,Out3→1
Ine,Out8→0
Inf,Outd→0
この計算によって、x3 +y1 =1という線形式が成立する入出力関係は12となり、確率が12/16となることから図9内で対応するxの値は−4となる。
【0050】
図10は図4で説明したインタリーブ変換の例である。同図において、例えばSPN構造への入力データは、A,B,C,Dの4つの部分に分割され、分割されたデータは4行で示されるような形式に変換される。更にA,B,C,Dのデータが列に並ぶように変換され、最終的にA,B,C,Dのデータのうちの最初の部分が1番目に並べられ、次の部分が2番目に、以下同様に並べられるような形式に変換されて、例えばA,B,C,Dの最初の部分、すなわち1番目に並べられたデータが、図4で最も左側にあるSボックス25に入力されることになる。
【0051】
例えばAを32ビット変数X,BをY,CをZ,DをW(それぞれ32ビット変数)に割り当て、X=(x0 ,x1 ,・・・x31),Y=(y0 ,y1 ,・・・y31),Z=(z0 ,z1 ,・・・z31),W=(w0 ,w1 ,・・・w31)とすると、図10のインタリーブ変換の出力は(x0 ,y0 ,z0 ,w0 ,x1 ,y1 ,z1 ,w1 ,・・・x31,y31,z31,w31)となる。
【0052】
このように本実施形態においては、非線形S関数と、線形変換としてのインタリーブ変換とを組み合わせることによって、入力データの攪拌性能の向上が図られる。
【0053】
図8、図9で説明したように、Sボックスの入力の片側2ビット、例えば右側2ビットに入力差分が与えられた時、右側2ビットに出力差分が現われる確率は0であり、左側2ビットに出力差分が現われる確率が0とならないことから、右側半分に差分が与えられた入力データの組に対しては左側にその影響が現われることになり、データの攪拌効果が得られる。
【0054】
図9では右側2ビットの入力ビットと出力ビットのみに関係する線形関係式の成立確率が1/2となる。すなわちその線形関係式に意味がないのに対して、右側2ビットと左側2ビットのみに関係した線形関係式については、その成立確率が1/2より大きくなるものが明らかに存在することになる。右側2ビットと左側2ビットとを関係づける線形関係式によってデータの攪拌効果が得られることになる。
【0055】
図11は本実施形態におけるプログラムのコンピュータへのローディングの説明図である。本発明の実施形態としての暗号化装置、例えば図2に示したシステムなどは、当然一般的なコンピュータシステムによって構成することができる。図11はそのようなシステムの構成を示し、コンピュータ41は本体42とメモリ43とによって構成されている。メモリ43はランダムアクセスメモリ(RAM)、ハードディスク、磁気ディスクなどの記憶装置であり、本発明の特許請求の範囲第7項のプログラムや、図5、図7で説明したプログラムなどはメモリ43に格納され、そのプログラムが本体42によって実行されることによって、本発明の演算方法が実現され、入力データに対する暗号化が行われる。
【0056】
本発明を実現するためのプログラムは、プログラム提供者側からネットワーク44を介してコンピュータ41にロードされることも、また市販され、流通している可搬型記憶媒体45に格納され、そのプログラムがコンピュータ41にロードされることによって実現されることも可能である。可搬型記憶媒体45としてはフロッピィディスク、CD−ROM、光ディスク、光磁気ディスクなど様々な形式の記憶媒体を使用することができ、前述のプログラムなどがこのような記憶媒体に格納され、コンピュータ41にロードされることによって、本実施形態における暗号化アルゴリズムが出力され、その暗号化アルゴリズムを用いて入力データに対する暗号文を生成することが可能となる。
【0057】
【発明の効果】
以上詳細に説明したように、本発明によればワード内でのデータの攪拌、および拡散性能に優れたFeistel 構造と、ワード間の攪拌性や、高速演算性、入出力についての非対称性などの性質を持つSPN構造とを組み合わせることによって、暗号化演算の高速性を図ると共に、暗号の安全性を向上させることができる。更にSPN構造におけるSブロックの非線形関数として、データの攪拌がデータの片側に偏らないような写像を用いることによりデータ攪拌性を向上させると共に、インタリーブ変換を用いることによってワード間のデータの攪拌性を更に向上させることができ、共通鍵ブロック暗号の性能向上に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明の原理構成ブロック図である。
【図2】本発明における暗号化装置のシステム構成ブロック図である。
【図3】 Feistel 構造とSPN構造の組合せの例を示す図である。
【図4】SPN構造の構成例を示す図である。
【図5】暗号化アルゴリズムの決定と入力データの暗号化処理の全体処理フローチャートである。
【図6】 Feistel 構造で用いられるF関数の例を示す図である。
【図7】SPN構造決定処理の詳細フローチャートである。
【図8】S関数に与えられる入力差分に対して出力差分が現われる確率を説明する図である。
【図9】S関数における入出力ビットの間の線形関係式の成立確率を説明する図である。
【図10】インタリーブ変換の例を説明する図である。
【図11】プログラムのコンピュータへのローディングを説明する図である。
【図12】 Feistel 構造の例を示す図である。
【図13】SPN構造の例を示す図である。
【符号の説明】
1 演算装置
2 第1のデータ変換手段
3 第2のデータ変換手段
10 処理装置
11 入力ファイル
12 出力ファイル
13 表示装置
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a common key block encryption method, and more particularly to an encryption apparatus and an encryption method that combine a Feistel structure and an SPN structure and improve the data diffusibility by specially contriving the SPN structure.
[0002]
[Prior art]
With the arrival of an advanced information society, ensuring information security has become an urgent issue. The basis of information security is data encryption. The common key block cipher is an indispensable technology for realizing high-speed and secure communication in an advanced information society. Various schemes have been proposed in the past as algorithms for this common key block cipher, but they were basically either a repetition of a structure called a Feistel structure or a repetition of a structure called an SPN structure.
[0003]
FIG. 12 is an explanatory diagram of the Feistel structure. In the figure, for example, input 128 bits are divided into 64 bits on the right side and 64 bits on the left side, 64 bits on the right side are input to a non-linear function called F function 51, and the output and left 64 bits are XORed by XOR52. The result is output as the right 64 bits of the output 128 bits, and the right 64 bits of the input 128 bits are output as they are as the left 64 bits. Such a Feistel structure is repeated 16 times, for example, and encryption is performed.
[0004]
FIG. 13 shows an example of the SPN structure. In this structure, a nonlinear transformation 53 called an S box and a linear transformation P54 are used in combination.
S in the S box means substitutation, ie substitution, function P means permutation, ie permutation, but now S is more generally a non-linear mapping, and P is not just permutation, but bitwise Is a linear transformation.
[0005]
In any case, encryption is performed by repeating such an SP network (SPN) structure in multiple stages. Note that the SPN structure is used as an F function in the Feistel structure of FIG. 12 as described later, but FIG. 12 shows the Feistel structure as a whole.
[0006]
[Problems to be solved by the invention]
In the common key block encryption system as described above, it is necessary to perform encryption so that the security of data is ensured with as few steps as possible, regardless of whether the Feistel structure or the SPN structure is used. However, when the Feistel structure is used first, only half of the input data length is stirred in one stage, which is effective in stirring data within the word, but has a problem that the data stirring ability beyond the word is inferior. In addition, since the input and output are in a symmetric form, there is a possibility that there are repetitive differential approximation formulas or linear approximation formulas as ciphers, and there is a risk of exposure to differential attacks and linear attacks. There was a point.
[0007]
On the other hand, when the SPN structure is used, the data agitation between words is effective and has an advantage that the input and output are asymmetrical. However, the entire input data length is divided into a plurality of S boxes. When the S box is generally used as a table stored in the memory, the number of times the table is referred to increases as the number of S boxes increases, and when only a number of SPN structures are combined. However, there is a problem that processing takes time.
[0008]
In view of the above-mentioned problems, the object of the present invention is to combine the Feistel structure and the SPN structure to perform encryption to eliminate each drawback as much as possible, and to further improve the data agitation effect even in the S box in the SPN structure. Accordingly, it is an object of the present invention to provide an encryption device and an encryption method that reduce the amount of calculation as much as possible and have excellent data diffusion performance.
[0009]
[Means for Solving the Problems]
FIG. 1 is a block diagram showing the principle configuration of an arithmetic unit according to the present invention. The figure shows an arithmetic unit that receives a data input and outputs a calculation result for the data input as a data output. In the arithmetic device 1, one or more of the first data conversion means 2 that performs data conversion using the Feistel structure and one or more of the second data conversion means 3 that performs data conversion using the SPN structure are included. , Cascaded between data input and data output.
[0010]
In FIG. 1 (a), first data conversion means 2 and then second data conversion means 3 are used first for data input, and conversely in FIG. 1 (b), second data conversion means is first used. 3 and then the first data conversion means 2 is used.
[0011]
In (c), after the first data conversion means 2 is used in two stages, the second data conversion means 3 is used. In (d), on the contrary, after the second data conversion means 3 is used, the first data conversion means 2 is used in two successive stages for data output.
[0012]
Thus, in the present invention, one or more of the first data conversion means 2 and one or more of the second data conversion means 3 are used in combination, but the first data conversion means using the Feistel structure is used. As for 2, since only one side of the data is stirred in one stage, the combination is performed in such a manner that, for example, two stages are continuously used and stirring is performed on both sides of the data. Of course, a larger number of two data conversion means can be combined.
[0013]
In the embodiment of the present invention, the block length of one block of data input in the SPN structure, for example, a value obtained by dividing 128 bits by the word length of 32 bits, for example, non-linear conversion having 4 input / output bit numbers Means such as an S box and linear transformation means using interleave transformation may also be provided.
[0014]
Further, in the embodiment of the invention, the nonlinear conversion means constituting the SPN structure, for example, the input number of the input data in which the difference is given only to one or more, for example, the right 2 bits out of 4 bits as the S box, for example, 4 bits. Arbitrary linear relationship with the probability that a difference appears in the set of output data in the same position, that is, only in the right 2 bits, for example, and only related to the input bits of the right 2 bits and the output bits of the right 2 bits, for example It is also possible to provide a non-linear conversion means in which the probability that the formula is established between all input / output data is ½.
[0015]
In the calculation method of the present invention, in the calculation method in which a calculation result for data input is data output, one or more first data conversion steps for performing data conversion using the Feistel structure and data conversion using the SPN structure are performed. An arithmetic method is used in which one or more of the second data conversion steps are performed in combination between data input and data output.
[0016]
In an embodiment of the invention, in the first data conversion step using the SPN structure in this calculation method, a nonlinear conversion in which the value obtained by dividing the block length of one block of data input by the word length is the number of input / output bits And linear transformation using interleave transformation.
[0017]
In the embodiment of the present invention, as the nonlinear transformation to be executed in the SPN structure, a set of input data in which a difference is given only to one or more of the input bits, for example, the right half of the input bits. On the other hand, the probability that a difference appears in the output data set only in the same right half of the output bits is 0, and any linear relational expression related only to the right half of the input bits and the right half of the output bits is all It is also possible to execute non-linear transformation in which the probability of establishment between input / output data is ½.
[0018]
Furthermore, in the present invention, a first data conversion step of performing data conversion using a Feistel structure as a storage medium used by a computer that receives a data input and executes an operation that uses a calculation result for the data input as a data output. A computer stored with a program having a function of executing one or more of the above and one or more of the second data conversion steps for performing data conversion using the SPN structure in combination between data input and data output A portable storage medium is used.
[0019]
Furthermore, in the present invention, a first data conversion procedure for performing data conversion using a Feistel structure as a program used by a computer that receives a data input and executes an operation that outputs an operation result for the data input as a data output. And a program having a function of executing one or more of the second data conversion procedures for performing data conversion using the SPN structure in combination between data input and data output.
[0020]
As described above, according to the present invention, the operation is executed by combining the Feistel structure and the SPN structure between the data input and the data output, and further, for example, only the difference in only the right half of the input bits is performed inside the SPN structure. Appears in the set of input data, non-linear transformation is used for the right half of the output bits so that no difference appears in the set of output data.
[0021]
DETAILED DESCRIPTION OF THE INVENTION
In the present invention, the Feistel structure and the SPN structure are combined to form an arithmetic device or an arithmetic method. As such an arithmetic device and arithmetic method, a ciphertext that encrypts and outputs an input plaintext. A generation apparatus and a generation method will be described as embodiments of the invention.
[0022]
FIG. 2 is a system configuration block diagram of such a ciphertext generation apparatus. In the figure, the ciphertext generating apparatus includes a processing device 10, an input file 11, an output file 12, a display device 13, and an input / output device 14.
[0023]
The processing apparatus 10 includes a Feistel structure determining unit 16 that determines a Feistel structure to be used, an SPN structure determining unit 17 that determines an SPN structure, and an encryption that determines an encryption algorithm that combines the Feistel structure and the SPN structure. An algorithm determination unit 18 and a ciphertext generation unit 19 that encrypts plaintext according to the encryption algorithm are provided.
[0024]
The input file 11 uses plain text as input data to be encrypted, a bit length n of one block of input data, a bit length w of a word suitable for calculation by the processing device 10, and used in an SPN structure as will be described later. The contents of interleaved conversion as a linear conversion are stored.
[0025]
The output file 12 includes an F function used for the Feistel structure determined by the Feistel structure determining unit 16, a mapping S corresponding to a non-linear function of the S box determined by the SPN structure determining unit 17, and an encrypted address. An encryption algorithm as a combination of the Feistel structure and the SPN structure determined by the determination unit 18 is stored.
[0026]
FIG. 3 shows an example of the encryption algorithm determined by the combination of the Feistel structure and the SPN structure in this embodiment, that is, the encryption algorithm determination unit 18. In the figure, input data is first subjected to two stages of computation using the Feistel structures 20a and 20b. Thereafter, an operation is performed by the SPN structure 23, and further two-stage Feistel structures 20c and 20d are performed on the result, and the result is output as ciphertext.
[0027]
In FIG. 3, depending on the one-stage Feistel structure, only one half of the input data is agitated, so the Feistel structure is used in two stages, and the agitation effect in the word is increased in the SPN structure 23 as will be described later. Ingenuity is incorporated. That is, for the nonlinear function used in the S box, by using a function having properties as shown in FIGS. 8 and 9 to be described later, the agitation effect in the word is increased, and further, by using interleave conversion as linear conversion, The SPN structure is configured so that the stirring effect between a plurality of words constituting one block is increased.
[0028]
When the Feistel structure is used continuously for three or more stages, the effect of combining the SPN structure is diminished. In FIG. 3, the SPN structure is inserted between two stages of the Feistel structure.
[0029]
FIG. 4 is a schematic explanatory diagram of the SPN structure 23. In the figure, interleave conversion 24 is first performed on input data, for example, 128 bits, and data between four words composed of, for example, 32 bits is mixed. The stirring result is given to a plurality of S boxes 25, and an interleave inverse transformation 26 is performed on the output of the S box 25 to obtain an output of the SPN structure.
[0030]
FIG. 5 is an overall flowchart of the ciphertext generation process in the present embodiment. When the processing is started in the figure, first, plain text, that is, the bit length n of the input data block is input in step S1, and the Feistel structure R is determined in step S2. In the present embodiment, an arbitrary function can be used as the nonlinear function F in the Feistel structure, and an example thereof will be described with reference to FIG.
[0031]
Subsequently, in step S3, the bit length w of a word suitable for the computing unit is input, and in step S4, the SPN structure B is determined. Regarding the SPN structure B, as described with reference to FIG. 4, the contents of the interleave transform and the non-linear function of the S box are problematic, which will be described later.
[0032]
In step S5, one or more stages of Feistel structure and one or more stages of SPN structure are combined to define an encryption algorithm as shown in FIG. 3, for example. In step S6, input data is input according to the encryption algorithm. The plaintext is encrypted to generate a ciphertext, and the process ends.
[0033]
FIG. 6 shows an example of the F function used inside the Feistel structure in this embodiment. As the F function, any non-linear function can be used as described above. In this sense, there is no reason why the F function shown in FIG. 6 must be used. explain.
[0034]
In FIG. 6, 64 bits of input data are divided into 32 bits on the right side and 32 bits on the left side, respectively, XORs 30a and 30b take the exclusive OR of key1 and key2, and 6 bits or 5 bits respectively. Input to the six S boxes 31. In general, there are many cases in which the same number of input / output bits of all S boxes are used side by side as S boxes. Here, a 6-bit input / output S-box and a 5-bit input / output S-box are mixedly used, but the description thereof is omitted.
[0035]
The outputs of the six S boxes 31 are given to the MDS converters 32a and 32b. Here, the MDS conversion unit corresponds to the function P in the SPN structure described in FIG. 12, and in this sense, the F function in the Feistel structure can be said to have the SPN structure, but defines the diffusibility of data in this P function. The linear conversion layer that maximizes the number of branches as one concept is the MDS converter. The number of branches is a barometer that evaluates the strength against a differential attack against a cipher or a linear attack, and details thereof are described in the following document.
Reference) Document on selection / design / evaluation of common key block cipher, communication and broadcasting organization
The outputs of the MDS converters 32a and 32b are respectively given to the XORs 33a and 33b, and are subjected to exclusive OR. For example, the output 32 bits of the MDS converter 32a is ANDed with Ox5555 5555. After that, it is given to Ex or 33b. The reason why such a logical product is taken is that if the outputs of the MDS converters 32a and 32b are given as they are, the outputs of the Ex ORs 33a and 33b become the same. Here, the data logically ANDed with the output of the MDS converter 32a is 010101 ... 0101 (32 bits) in binary, and the data logically ANDed with the output of the MDS converter 32b is 101010 ... 1010 (32 bits).
[0036]
FIG. 7 is a detailed flowchart of step S4 in FIG. 5, that is, the SPN structure B determination process. When the processing is started in the figure, first, after the number of input / output bits is obtained in step S9, a random mapping S is newly selected in step S10. This mapping S is a one-to-one mapping of r-bit input / output as a result of dividing the bit length n of the block input at step S1 in FIG. 5 by the bit length w of the word input at step S3. .
[0037]
For example, if the bit length n of the plain text, ie, the block of input data is 128 bits and the word length w is 32 bits, r is 4 bits, and a random mapping S of 4 bits input / output is selected.
[0038]
In step S11 of FIG. 7, half of the input bits fixed for the mapping S, for example, the fixed half of the input data set in which the difference is given to only 2 bits out of 4 bits, are in the same position. It is determined whether or not the probability that a difference appears in the set of output data is 0 only for the output bits. If not, the process returns to step S10, and the processing after the selection of a new random mapping S is repeated.
[0039]
If the probability is determined to be 0 in step S11, an arbitrary linear relational expression relating only to half of the input bits fixed to the mapping S in step S12 and, for example, a fixed half of the output bits in the same position. Is determined whether or not the probability that the linear relational expression is established between all the input and output bit data is ½, and if not, the processes in and after step S10 are repeated. Note that the determination in steps S11 and S12 will be further described later with reference to FIGS.
[0040]
If the probability is ½ in step S12, the mapping S and the interleave transform in step S13, for example, the interleave transform described later in FIG. 10 and the interleave transform stored in the input file 11 in FIG. Are combined to define the SPN structure B, and the process ends.
[0041]
FIG. 8 is an example of the probability determined in step S11 of FIG. This example shows a nonlinear S function with 4 bits as the number of input / output bits.
S: (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15) → (1, 9, 6, 12, 7, 2, 15 , 11, 14, 0, 5, 10, 4, 3, 8, 13)
In this example, x / 16 of x / 16 is expressed as a probability that an output difference appears with respect to an input difference. In the input / output relationship of this nonlinear S function, for example, decimal 13 is output for the last decimal 15, that is, 1101 is output for binary 1111.
[0042]
In the upper three rows in which the input difference appears in the right half of the 4 bits in FIG. 8, the probability that the output difference appears in one half of the corresponding position, that is, the probability of the left three columns is zero. Further, it is shown that the probability of the output difference appearing in the left half, that is, the probability of the right three columns is 0 for the set of input data where the input difference appears in the left half, that is, the lower three rows.
[0043]
In FIG. 8, for example, an input / output data set with an input difference of (0001) and an output difference of (0100) is an output set (1111), (1011) with respect to an input set (0110), (0111), and an input set. It is confirmed by calculation that there are only two sets of output sets (1011) and (1111) for the sets (0111) and (0110).
[0044]
FIG. 9 shows an example of the probability determined in step S12 of FIG. This probability indicates the probability for the above-described nonlinear S function. That is, for any arbitrary linear relational expression related only to one-side two input bits and one-side two output bits, x is determined to determine the probability (8−x) / 16 that the linear relational expression is established among all input / output bit data. It is shown.
[0045]
In FIG. 9, the difference appears between the right two input bits and the right two output bits in the left three columns of the upper three rows, and x indicates the probability that a linear relational expression is established between such input / output bit data. Since the value of is 0, the probability is 8/16, that is, 1/2.
[0046]
Similarly, the difference appears in the left two input bits and the left two output bits in the right three columns of the lower three rows, and the probability of establishment of the linear relational expression is ½ between these input / output data. That the probability of establishment of a linear relational expression is ½ means that the linear relational expression may or may not be established between the input and output data, meaning that the linear relational expression itself It shows that there is no.
[0047]
When the value of a certain line format regarding input / output bits is always 0 or 1, the line format is established during input / output. In cryptography, it is desirable that the input / output is as far as possible from the linear relationship, and in that sense, the above-described situation of establishment probability 1/2 is desirable.
[0048]
Input (x 0 , X 1 , X 2 , X Three ) And output (y 0 , Y 1 , Y 2 , Y Three ), And the line format x related to input (0001) and output (0100) Three + Y 1 Let's examine the value of. Since the output for the input 1 = (0001) in the mapping S is 9 = (1001), x Three + Y 1 = 1 + 0 = 1. Similarly, x between all inputs and outputs Three + Y 1 The value of is obtained as follows.
[0049]
In0, Out1 → 0
In1, Out9 → 1
In2, Out6 → 1
In3, Outc → 0
In4, Out7 → 1
In5, Out2 → 1
In6, Outf → 1
In7, Outb → 1
In8, Out → 1
In9, Out0 → 1
Ina, Out5 → 1
Inb, Outa → 1
Inc, Out4 → 1
Ind, Out3 → 1
Ine, Out8 → 0
Inf, Outd → 0
By this calculation, x Three + Y 1 The input / output relationship in which the linear format = 1 is established, and the probability is 12/16. Therefore, the corresponding value of x in FIG. 9 is −4.
[0050]
FIG. 10 shows an example of the interleave conversion described with reference to FIG. In the figure, for example, input data to the SPN structure is divided into four parts A, B, C, and D, and the divided data is converted into a format shown in four lines. Further, the A, B, C, and D data are converted so as to be arranged in a column, and finally the first portion of the A, B, C, and D data is arranged first, and the next portion is the second. In the same manner, for example, the first part of A, B, C, and D, that is, the data arranged first is input to the S box 25 on the leftmost side in FIG. Will be.
[0051]
For example, A is assigned to a 32-bit variable X, B is assigned to Y, C is assigned to Z, D is assigned to W (each a 32-bit variable), and X = (x 0 , X 1 , ... x 31 ), Y = (y 0 , Y 1 , ... y 31 ), Z = (z 0 , Z 1 , ... z 31 ), W = (w 0 , W 1 , ... w 31 ), The output of the interleaved transformation in FIG. 0 , Y 0 , Z 0 , W 0 , X 1 , Y 1 , Z 1 , W 1 , ... x 31 , Y 31 , Z 31 , W 31 )
[0052]
As described above, in the present embodiment, the mixing performance of input data can be improved by combining the nonlinear S function and the interleaved transformation as the linear transformation.
[0053]
As described with reference to FIGS. 8 and 9, when an input difference is given to 2 bits on one side of the input of the S box, for example, 2 bits on the right side, the probability that an output difference appears on the 2 bits on the right side is 0, and 2 bits on the left side Since the probability that an output difference appears in the input data set does not become 0, the effect appears on the left side of the input data set to which the difference is given in the right half, and the data agitation effect is obtained.
[0054]
In FIG. 9, the probability of establishment of the linear relational expression relating only to the two input bits and output bits on the right side is ½. In other words, the linear relational expression is meaningless, but there is clearly a linear relational expression related to only the right 2 bits and the left 2 bits whose probability of establishment is greater than 1/2. . The data mixing effect can be obtained by a linear relational expression relating the right 2 bits and the left 2 bits.
[0055]
FIG. 11 is an explanatory diagram of loading a program into a computer according to the present embodiment. The encryption apparatus according to the embodiment of the present invention, for example, the system shown in FIG. 2 can be configured by a general computer system. FIG. 11 shows the configuration of such a system, and the computer 41 includes a main body 42 and a memory 43. The memory 43 is a storage device such as a random access memory (RAM), a hard disk, or a magnetic disk. The program according to claim 7 of the present invention, the program described with reference to FIGS. When the program is executed by the main body 42, the calculation method of the present invention is realized and the input data is encrypted.
[0056]
A program for realizing the present invention is loaded into the computer 41 from the program provider side via the network 44, or is stored in a portable storage medium 45 that is commercially available and distributed, and the program is stored in the computer. It can also be realized by being loaded into 41. As the portable storage medium 45, various types of storage media such as floppy disks, CD-ROMs, optical disks, and magneto-optical disks can be used. The above-described programs and the like are stored in such a storage medium and stored in the computer 41. By being loaded, the encryption algorithm in the present embodiment is output, and it becomes possible to generate a ciphertext for the input data using the encryption algorithm.
[0057]
【The invention's effect】
As described above in detail, according to the present invention, the Feistel structure excellent in the agitation and diffusion performance of the data in the word, the agitation between the words, the high-speed arithmetic performance, the asymmetry in input / output, etc. By combining with the SPN structure having properties, it is possible to increase the speed of the encryption operation and improve the security of the encryption. Furthermore, as a non-linear function of the S block in the SPN structure, data agitation is improved by using a mapping in which data agitation is not biased to one side of the data. It can be further improved and greatly contributes to the performance improvement of the common key block cipher.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the principle configuration of the present invention.
FIG. 2 is a system configuration block diagram of an encryption apparatus according to the present invention.
FIG. 3 is a diagram illustrating an example of a combination of a Feistel structure and an SPN structure.
FIG. 4 is a diagram illustrating a configuration example of an SPN structure.
FIG. 5 is an overall processing flowchart of encryption algorithm determination and input data encryption processing;
FIG. 6 is a diagram illustrating an example of an F function used in a Feistel structure.
FIG. 7 is a detailed flowchart of an SPN structure determination process.
FIG. 8 is a diagram illustrating a probability that an output difference appears with respect to an input difference given to an S function.
FIG. 9 is a diagram illustrating the probability of establishment of a linear relational expression between input and output bits in the S function.
FIG. 10 is a diagram illustrating an example of interleave conversion.
FIG. 11 is a diagram illustrating loading of a program into a computer.
FIG. 12 is a diagram illustrating an example of a Feistel structure.
FIG. 13 is a diagram illustrating an example of an SPN structure.
[Explanation of symbols]
1 arithmetic unit
2 First data conversion means
3 Second data conversion means
10 Processing device
11 Input file
12 Output file
13 Display device

Claims (8)

データ入力を受け取り、該データ入力に対する演算結果をデータ出力とする演算装置において、
Feistel構造を用いてデータ変換を行う第1のデータ変換手段の1つ以上と、
SPN構造を用いてデータ変換を行う第2のデータ変換手段の1つ以上とが、前記データ入力とデータ出力との間で縦続的に組み合わされ
前記SPN構造を構成する非線形変換手段として、
該非線形変換手段への入力ビットのうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり、
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換手段を備えたことを特徴とするFeistel構造とSPN構造とを組み合わせた演算装置。
In an arithmetic unit that receives data input and uses the operation result for the data input as data output,
One or more first data conversion means for performing data conversion using a Feistel structure;
One or more second data conversion means for performing data conversion using the SPN structure are cascaded between the data input and the data output ,
As a nonlinear conversion means constituting the SPN structure,
A set of input data in which a difference is given only to one or more fixed input bits among the input bits to the nonlinear conversion means is in the same position as the one or more fixed input bits. The probability that a difference appears in the set of output data only in one or more fixed output bits is 0,
In addition, the probability that one or more fixed input bits and any linear relational expression related only to the fixed one or more output bits is established between all input / output data is ½. An arithmetic unit combining a Feistel structure and an SPN structure, characterized by comprising a nonlinear conversion means .
データ入力を受け取り、該データ入力に対する演算結果をデータ出力とする演算装置において、
Feistel 構造を用いてデータ変換を行う第1のデータ変換手段の1つ以上と、
SPN構造を用いてデータ変換を行う第2のデータ変換手段の1つ以上とが、前記データ入力とデータ出力との間で縦続的に組み合わされ、
前記SPN構造が、
前記データ入力の1ブロックのブロック長をワード長で除算した値の入・出力ビット数を持つ非線形変換手段と、
インタリーブ変換を用いる線形変換手段とを備え
前記SPN構造を構成する非線形変換手段として、
該非線形変換手段への入力ビットのうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換手段を備えることを特徴とする Feistel構造とSPN構造とを組み合わせた演算装置。
In an arithmetic unit that receives data input and uses the operation result for the data input as data output,
One or more first data conversion means for performing data conversion using a Feistel structure;
One or more second data conversion means for performing data conversion using the SPN structure are cascaded between the data input and the data output,
The SPN structure is
Nonlinear conversion means having the number of input / output bits of a value obtained by dividing the block length of one block of the data input by a word length;
Linear conversion means using interleave conversion ,
As a nonlinear conversion means constituting the SPN structure,
A set of input data in which a difference is given only to one or more fixed input bits among the input bits to the nonlinear conversion means is in the same position as the one or more fixed input bits. The probability that a difference appears in the set of output data only in one or more fixed output bits is 0 ,
In addition, the probability that one or more fixed input bits and any linear relational expression related only to the fixed one or more output bits is established between all input / output data is ½. An arithmetic unit combining a Feistel structure and an SPN structure, characterized by comprising a nonlinear conversion means .
データ入力を受け取り、該データ入力に対する演算結果をデータ出力とする演算を実行する計算機による演算方法において、
Feistel構造を用いてデータ変換を行う第1のデータ変換ステップの1つ以上と、
SPN構造を用いてデータ変換を行う第2のデータ変換ステップの1つ以上とを、前記データ入力とデータ出力との間で組み合わせて実行し、
前記SPN構造内で実行されるべき非線形変換として、
該非線形変換においての入力ビット数のうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり、
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換を実行することを特徴とするFeistel構造とSPN構造とを組み合わせた演算方法。
In a calculation method by a computer that receives a data input and executes a calculation that uses a calculation result for the data input as a data output,
One or more first data conversion steps for performing data conversion using a Feistel structure;
Performing one or more second data conversion steps for performing data conversion using the SPN structure in combination between the data input and the data output ;
As a nonlinear transformation to be performed within the SPN structure:
A set of input data in which a difference is given only to one or more fixed input bits out of the number of input bits in the nonlinear conversion is in the same position as the one or more fixed input bits. The probability that a difference appears in the set of output data only in one or more fixed output bits is 0,
In addition, the probability that one or more fixed input bits and any linear relational expression related only to the fixed one or more output bits is established between all input / output data is ½. An arithmetic method combining a Feistel structure and an SPN structure, characterized by performing nonlinear transformation .
データ入力を受け取り、該データ入力に対する演算結果をデータ出力とする演算を実行する計算機による演算方法において、
Feistel 構造を用いてデータ変換を行う第1のデータ変換ステップの1つ以上と、
SPN構造を用いてデータ変換を行う第2のデータ変換ステップの1つ以上とを、前記データ入力とデータ出力との間で組み合わせて実行し、
前記SPN構造を用いる第1のデータ変換ステップにおいて、
前記データ入力の1ブロックのブロック長をワード長で除算した値を入・出力ビット数とする非線形変換と、
インタリーブ変換を用いる線形変換とを実行し、
前記SPN構造内で実行されるべき非線形変換として、
該非線形変換においての入力ビット数のうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり、
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換を実行することを特徴とする Feistel構造とSPN構造とを組み合わせた演算方法。
In a calculation method by a computer that receives a data input and executes a calculation that uses a calculation result for the data input as a data output,
One or more first data conversion steps for performing data conversion using a Feistel structure;
Performing one or more second data conversion steps for performing data conversion using the SPN structure in combination between the data input and the data output;
In the first data conversion step using the SPN structure,
Non-linear transformation in which the value obtained by dividing the block length of one block of the data input by the word length is the number of input / output bits;
Perform linear transformation using interleave transformation ,
As a nonlinear transformation to be performed within the SPN structure:
A set of input data in which a difference is given only to one or more fixed input bits out of the number of input bits in the nonlinear conversion is in the same position as the one or more fixed input bits. The probability that a difference appears in the set of output data only in one or more fixed output bits is 0,
In addition, the probability that one or more fixed input bits and any linear relational expression related only to the fixed one or more output bits is established between all input / output data is ½. calculation method combining the Feistel structure and SPN structure, characterized by performing non-linear transformation.
データ入力を受け取り、該入力データに対する演算結果をデータ出力とする演算を実行する計算機によって使用される記憶媒体において、
Feistel構造を用いてデータ変換を行う第1のデータ変換ステップの1つ以上と、
SPN構造を用いてデータ変換を行う第2のデータ変換ステップの1つ以上とを、前記データ入力とデータ出力との間で組み合わせて実行させる機能を備え
前記SPN構造内で実行されるべき非線形変換として、
該非線形変換においての入力ビット数のうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり、
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換を実行させるプログラムを格納した計算機読出し可能可搬型記憶媒体。
In a storage medium used by a computer that receives a data input and executes a calculation that uses a calculation result for the input data as a data output,
One or more first data conversion steps for performing data conversion using a Feistel structure;
A function of executing one or more second data conversion steps for performing data conversion using an SPN structure in combination between the data input and the data output ;
As a nonlinear transformation to be performed within the SPN structure:
A set of input data in which a difference is given only to one or more fixed input bits out of the number of input bits in the nonlinear conversion is in the same position as the one or more fixed input bits. The probability that a difference appears in the set of output data only in one or more fixed output bits is 0,
In addition, the probability that one or more fixed input bits and any linear relational expression related only to the fixed one or more output bits is established between all input / output data is ½. computer readable portable storage medium storing a program which Ru is performing non-linear transformation.
データ入力を受け取り、該入力データに対する演算結果をデータ出力とする演算を実行する計算機によって使用される記憶媒体において、In a storage medium used by a computer that receives a data input and executes an operation that uses a calculation result for the input data as a data output,
FeistelFeistel 構造を用いてデータ変換を行う第1のデータ変換ステップの1つ以上と、One or more first data conversion steps for performing data conversion using the structure;
SPN構造を用いてデータ変換を行う第2のデータ変換ステップの1つ以上とを、前記データ入力とデータ出力との間で組み合わせて実行させる機能を備え、A function of executing one or more second data conversion steps for performing data conversion using an SPN structure in combination between the data input and the data output;
前記SPN構造を用いる第1のデータ変換ステップにおいて、In the first data conversion step using the SPN structure,
前記データ入力の1ブロックのブロック長をワード長で除算した値を入・出力ビット数とする非線形変換と、Non-linear transformation in which the value obtained by dividing the block length of one block of the data input by the word length is the number of input / output bits;
インタリーブ変換を用いる線形変換とを実行させ、Execute linear transformation using interleave transformation,
前記SPN構造内で実行されるべき非線形変換として、As a nonlinear transformation to be performed within the SPN structure:
該非線形変換においての入力ビット数のうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり、A set of input data in which a difference is given only to one or more fixed input bits out of the number of input bits in the nonlinear transformation is in the same position as the one or more fixed input bits. The probability that a difference appears in the output data set only in one or more fixed output bits is 0,
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換を実行させるプログラムを格納した計算機読出し可能可搬型記憶媒体。In addition, the probability that an arbitrary linear relational expression related only to the fixed one or more input bits and the fixed one or more output bits is established between all the input / output data is ½. A computer-readable portable storage medium storing a program for executing non-linear transformation.
データ入力を受け取り、該入力データに対する演算結果をデータ出力とする演算を実行する計算機によって使用されるプログラムにおいて、
Feistel構造を用いてデータ変換を行う第1のデータ変換手順の1つ以上と、
SPN構造を用いてデータ変換を行う第2のデータ変換手順の1つ以上とを、前記データ入力とデータ出力との間で組み合わせて実行させる機能を備え
前記SPN構造内で実行されるべき非線形変換手順として、
該非線形変換手順においての入力ビット数のうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり、
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換手順を実行させるプログラム。
In a program used by a computer that receives a data input and executes an operation that uses a calculation result for the input data as a data output,
One or more first data conversion procedures for performing data conversion using a Feistel structure;
A function of executing one or more second data conversion procedures for performing data conversion using the SPN structure in combination between the data input and the data output ;
As a non-linear transformation procedure to be performed within the SPN structure:
In a set of input data in which a difference is given only to one or more fixed input bits among the number of input bits in the nonlinear conversion procedure, the same position as the one or more fixed input bits is set. The probability that a difference appears in the output data set only for one fixed output bit or more is 0,
In addition, the probability that one or more fixed input bits and any linear relational expression related only to the fixed one or more output bits is established between all input / output data is ½. A program that executes a nonlinear conversion procedure .
データ入力を受け取り、該入力データに対する演算結果をデータ出力とする演算を実行する計算機によって使用されるプログラムにおいて、
Feistel 構造を用いてデータ変換を行う第1のデータ変換手順の1つ以上と、
SPN構造を用いてデータ変換を行う第2のデータ変換手順の1つ以上とを、前記データ入力とデータ出力との間で組み合わせて実行させる機能を備え、
前記SPN構造を用いる第1のデータ変換手順において、
前記データ入力の1ブロックのブロック長をワード長で除算した値を入・出力ビット数とする非線形変換手順と、
インタリーブ変換を用いる線形変換手順とを実行させ
前記SPN構造内で実行されるべき非線形変換手順として、
該非線形変換手順においての入力ビット数のうちで固定された1つ以上の入力ビットにのみ差分が与えられた入力データの組に対して、前記固定された1つ以上の入力ビットと同じ位置にある固定された1つ以上の出力ビットにのみ出力データの組に差分が現われる確率が0となり、
かつ該固定された1つ以上の入力ビット、および該固定された1つ以上の出力ビットにのみ関係する任意の線形関係式がすべての入・出力データ間で成立する確率が1/2となる非線形変換手順を実行させるプログラム。
In a program used by a computer that receives a data input and executes an operation that uses a calculation result for the input data as a data output,
One or more first data conversion procedures for performing data conversion using a Feistel structure;
A function of executing one or more second data conversion procedures for performing data conversion using the SPN structure in combination between the data input and the data output;
In the first data conversion procedure using the SPN structure,
A nonlinear conversion procedure in which the value obtained by dividing the block length of one block of the data input by the word length is the number of input / output bits;
Performing a linear transformation procedure using interleave transformation ,
As a non-linear transformation procedure to be performed within the SPN structure:
In a set of input data in which a difference is given only to one or more fixed input bits among the number of input bits in the nonlinear conversion procedure, the same position as the one or more fixed input bits is set. The probability that a difference appears in the output data set only for one fixed output bit or more is 0,
In addition, the probability that one or more fixed input bits and any linear relational expression related only to the fixed one or more output bits is established between all input / output data is ½. A program that executes a nonlinear conversion procedure.
JP2001207327A 2000-07-13 2001-07-09 Arithmetic apparatus and arithmetic method combining Feistel structure and SPN structure Expired - Fee Related JP3901959B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001207327A JP3901959B2 (en) 2000-07-13 2001-07-09 Arithmetic apparatus and arithmetic method combining Feistel structure and SPN structure

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000212814 2000-07-13
JP2000-212814 2000-07-13
JP2001207327A JP3901959B2 (en) 2000-07-13 2001-07-09 Arithmetic apparatus and arithmetic method combining Feistel structure and SPN structure

Publications (2)

Publication Number Publication Date
JP2002091295A JP2002091295A (en) 2002-03-27
JP3901959B2 true JP3901959B2 (en) 2007-04-04

Family

ID=26595968

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001207327A Expired - Fee Related JP3901959B2 (en) 2000-07-13 2001-07-09 Arithmetic apparatus and arithmetic method combining Feistel structure and SPN structure

Country Status (1)

Country Link
JP (1) JP3901959B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622222B2 (en) * 2003-09-30 2011-02-02 ソニー株式会社 Cryptographic processing apparatus, cryptographic processing method, and computer program
JP4561252B2 (en) 2004-09-03 2010-10-13 ソニー株式会社 Cryptographic processing apparatus, cryptographic processing method, and computer program
JP4612501B2 (en) * 2005-07-29 2011-01-12 日本電信電話株式会社 Block encryption device, block decryption device, method and program thereof
WO2009031559A1 (en) * 2007-09-05 2009-03-12 Nec Corporation Impossible difference search device, method, and program

Also Published As

Publication number Publication date
JP2002091295A (en) 2002-03-27

Similar Documents

Publication Publication Date Title
CA2449669C (en) Block encryption device using auxiliary conversion
JP3499810B2 (en) ENCRYPTION DEVICE, ENCRYPTION METHOD, COMPUTER-READABLE RECORDING MEDIUM CONTAINING PROGRAM FOR FUNCTIONING COMPUTER AS ENCRYPTION DEVICE, AND COMPUTER READING RECORDING PROGRAM FOR FUNCTIONING COMPUTER AS DECRYPTION DEVICE, DECRYPTION METHOD, AND DECRYPTION DEVICE Possible recording media
KR100435052B1 (en) Encryption device
Aoki et al. Specification of Camellia-a 128-bit block cipher
Guo et al. Linear structures: applications to cryptanalysis of round-reduced Keccak
US8731188B2 (en) Cryptographic processing apparatus and cryptographic processing method, and computer program
US7801307B2 (en) Method of symmetric key data encryption
CN101553856B (en) Encryption device and encryption method
US5740249A (en) Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
CN107257279B (en) Plaintext data encryption method and device
CN111431697A (en) Novel method for realizing lightweight block cipher COR L
JPH0675525A (en) Cipher communication equipment
JP2014197913A (en) Encryption device, encryption method, and program
JP3901959B2 (en) Arithmetic apparatus and arithmetic method combining Feistel structure and SPN structure
JPH0697930A (en) Block cipher processor
JP3039334B2 (en) Encryption device
Easttom S-box design
JPH09269727A (en) Ciphering method and ciphering device
JPH10153954A (en) Ciphering device
JP2001142395A (en) Extended key generator, ciphering/deciphering device, extended key generating method and recording medium
KR100200531B1 (en) Crypto method and crypto system
JPS60164787A (en) Shift cipher system
JP3017725B2 (en) Data converter
EP1514174A1 (en) Aes mixcolumn transform
Nachef et al. Indifferentiability

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061010

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061204

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: 20061226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061227

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120112

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140112

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees