JPWO2009034929A1 - 暗号化方法、暗号装置及び暗号処理プログラム - Google Patents
暗号化方法、暗号装置及び暗号処理プログラム Download PDFInfo
- Publication number
- JPWO2009034929A1 JPWO2009034929A1 JP2009532167A JP2009532167A JPWO2009034929A1 JP WO2009034929 A1 JPWO2009034929 A1 JP WO2009034929A1 JP 2009532167 A JP2009532167 A JP 2009532167A JP 2009532167 A JP2009532167 A JP 2009532167A JP WO2009034929 A1 JPWO2009034929 A1 JP WO2009034929A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- exclusive
- input
- linear
- round
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
差分/線形解読という解読法に対する耐性と、処理時間の高速化が可能な暗号化方法、暗号装置及び暗号処理プログラムの提供。入力データを少なくとも4個以上の2m個のデータに分割し、(A)前記2m個のデータのうちm個のデータについて3ラウンドのFeistel構造により鍵データとの攪拌を行う非線形変換処理と、(B)前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和を算出する排他的論理和算出処理と、(C)前記排他的論理和したm個のデータと、前記非線形変換処理の入力対象となったm個のデータと、の2m個のデータを入れ替えて次段に送る入替処理と、を含み、前記(A)〜(C)の処理をn回繰り返し、n回目の入れ替え後に得られた2m個のデータを結合し、出力データを生成する。(図1)
Description
[関連出願の記載]
本発明は、日本国特許出願:特願2007−236953号(2007年9月12日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、データの通信や蓄積の際にデータを秘匿するための暗号装置及び暗号処理プログラムに関し、特に、ブロックを単位として暗号化を行うブロック暗号技術に関する。
本発明は、日本国特許出願:特願2007−236953号(2007年9月12日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、データの通信や蓄積の際にデータを秘匿するための暗号装置及び暗号処理プログラムに関し、特に、ブロックを単位として暗号化を行うブロック暗号技術に関する。
共通鍵ブロック暗号の代表としてDES(Data Encryption Standard)がある。DESは1977年にFIPSに採用されて以来、デファクトスタンダードとして広まっていった。DESはFeistelと呼ばれる構造を採用し、その後多くの共通鍵ブロック暗号がFeistel構造を採用した。
1995年に松井らによって提案された64ビットブロック暗号MISTY(登録商標)もFeistel構造を採用している(非特許文献1、特許文献1参照)。なお、MISTYとしては、MISTY1と、MISTY2とが知られているが、以下、通常のFeistel構造を持つ、MISTY1を例に挙げて説明する。
図6に、MISTY1のラウンド関数(FO)の内部構成を示す。図6の右側を参照すると、入力64ビットのうちの32ビットが入力されるMISTY1のラウンド関数(FO)3は、3ラウンドのFeistel構造を採用している。入力32ビットのうちの16ビットが入力される関数(FIi1〜FIi3)31は非線形変換処理であり、その構造もまた3ラウンドFeistel構造となっている。
図6の左側は、関数(FIi1)31の内部構造を表した図であり、それぞれS−boxと呼ばれる非線形変換処理(S9)311、非線形変換処理(S7)312が用いられている。このようにMISTY1は3ラウンドのFeistel構造を入れ子にした構造を特徴としている。
次に、暗号の解析手法と安全性について述べる。代表的な暗号の解析手法として、差分解析や線形解析が挙げられる。これらの解析手法に対する安全性は差分確率や線形確率で評価される。
暗号アルゴリズム全体でのこれら確率を導出することは計算量的に難しいため、一般的に小さな部品について正確な確率を求め、ある種の方法によって確率の積み上げを行うことによって暗号アルゴリズム全体の確率を導出する。このように小さな部品の確率を積み上げることによって導出した確率を特性確率と呼ぶ。
図7は、Feistel構造で用いられるF関数が全単射な場合の差分の伝播を説明するための図である。入力データとして、差分(0、ΔA)が入力された場合、差分ΔAは第1ラウンドのF関数41に入力され、非線形変換処理の結果、任意の差分ΔBが出力される。このように、F関数が全単射な場合、必ず何がしかの差分値が出力される。
差分ΔBは、第2ラウンドのF関数42に入力され、非線形変換処理の結果、差分ΔAが出力される。第2ラウンドの排他的論理和45で差分ΔA同士が打ち消されるため、第3ラウンドのF関数43には差分は入力されない。図7の太線で示されたパスが、差分の伝播経路となる。
ここで、非線形変換処理(F関数)に差分が入力されることを”アクティブになる”、差分が入力される非線形変換処理を”アクティブな非線形変換処理”と呼ぶ。特に、非線形変換処理がS−boxである場合、”アクティブS−box”と呼ぶ。
図7で示したように、非線形変換処理(F関数)が全単射である場合、3ラウンド以上でアクティブな非線形変換処理の数は2以上であることが知られている。全単射なF関数を用いたFeistel構造の暗号方式において、差分/線形特性確率を計算する場合、アクティブな非線形変換処理の確率の積で計算することができるので、非線形変換処理(F関数)の最大差分確率がpのとき、3ラウンドのFeistel構造における最大差分確率はp^2(pの2乗)以下となる。
なお、上記特許文献1及び非特許文献1の全開示内容はその引用をもって本書に繰込み記載する。以下の分析は、本発明によって与えられたものである。
ここで、図6に示すMISTY1の最大差分確率について考える。図6左側の非線形変換処理(S9)311、非線形変換処理(S7)312の最大差分確率は、それぞれ2^−8と2^−6なので、図6右側の関数(FIi1)31の最大差分確率は2^−14(=2^−6×2^−8)以下と見積もることができる。そして、ラウンド関数(F0)3の最大差分確率は2^−28(=(2^−14)^2)以下と見積もることができる。MISTY1の暗号化処理全体は、8ラウンドのFeistel構造であるが、3ラウンド分の最大差分確率は、2^−56(=(2^−28)^2)以下であると見積もることができる。
ここで、図6に示すMISTY1の最大差分確率について考える。図6左側の非線形変換処理(S9)311、非線形変換処理(S7)312の最大差分確率は、それぞれ2^−8と2^−6なので、図6右側の関数(FIi1)31の最大差分確率は2^−14(=2^−6×2^−8)以下と見積もることができる。そして、ラウンド関数(F0)3の最大差分確率は2^−28(=(2^−14)^2)以下と見積もることができる。MISTY1の暗号化処理全体は、8ラウンドのFeistel構造であるが、3ラウンド分の最大差分確率は、2^−56(=(2^−28)^2)以下であると見積もることができる。
MISTY1はブロック長が64ビットであるため、差分解析に対して安全であるためには、最大差分確率が2^−64を下回らなければならない。次に、図8を参照してMISTY1の最大差分確率が2^−64を下回るために必要なラウンド数を説明する。
図8の例では、入力データとして、差分(0、ΔA)が入力された場合、F関数52、53、55に差分が入力された時点で、暗号化処理全体の差分特性確率は(2^−28)^3となり、2^−64を下回る。つまり、MISTY1が差分解析において耐性を持つためには、最低5ラウンドが必要になることを示している。なお、線形確率についても同様の計算をすることができる。
つまり、MISTY1は3ラウンドFeistel構造を2重の入れ子にした実質8×3×3=72段の構成によって、差分確率、線形確率の向上を図っているということができる。
このように、3ラウンドFeistel構造を2重の入れ子にした構成では、1ラウンド当たり、都合9個の非線形変換処理が動作し、相応の処理時間、計算コストが掛かっているが、アクティブとなる非線形変換処理は、そのうちの4個のみとなり、上記差分特性確率の計算で示したように、特性確率に寄与しない無駄な非線形変換処理が多いという問題点がある。
本発明は、上記した事情に鑑みてなされたものであって、その目的とするところは、差分解析や線形解析に対する耐性を確保しながら、処理時間を削減し高速化を図ることのできる暗号化方法、暗号装置及び暗号処理プログラムを提供することにある。
本発明の第1の視点によれば、入力データを少なくとも4個以上の2m個のデータに分割し、下記(A)〜(C)の処理をn回繰り返し、n回目の入れ替え後に得られた2m個のデータを結合し、出力データを生成する暗号化方法が提供される。
(A)前記2m個のデータのうちm個のデータについて3ラウンドのFeistel構造により鍵データとの攪拌を行う非線形変換処理。
(B)前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和を算出する排他的論理和算出処理。
(C)前記排他的論理和したm個のデータと、前記非線形変換処理の入力対象となったm個のデータと、の2m個のデータを入れ替えて次段に送る入替処理。
(A)前記2m個のデータのうちm個のデータについて3ラウンドのFeistel構造により鍵データとの攪拌を行う非線形変換処理。
(B)前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和を算出する排他的論理和算出処理。
(C)前記排他的論理和したm個のデータと、前記非線形変換処理の入力対象となったm個のデータと、の2m個のデータを入れ替えて次段に送る入替処理。
本発明の第2の視点によれば、入力データを少なくとも4個以上の2m個のデータに分割する分割手段と、下記(A)〜(C)の各手段と、2m個のデータを結合する結合手段と、を備え、この(A)〜(C)の各手段をn回動作させ、n回目の入れ替え後に得られた2m個のデータを、前記結合手段に入力し、出力データを生成する暗号装置が提供される。
非線形変換処理手段(A)は、前記2m個のデータのうち、m個のデータが入力され、各データについて、3ラウンドのFeistel構造により鍵データとの攪拌を行う。
排他的論理和算出手段(B)は、前記各非線形変換処理手段の出力と、前記非線形変換処理手段に入力されなかったデータとのm個の排他的論理和を算出する。
入替手段(C)は、前記排他的論理和したm個のデータと、前記非線形変換処理手段への入力対象となったm個のデータとの2m個のデータを入れ替える。
非線形変換処理手段(A)は、前記2m個のデータのうち、m個のデータが入力され、各データについて、3ラウンドのFeistel構造により鍵データとの攪拌を行う。
排他的論理和算出手段(B)は、前記各非線形変換処理手段の出力と、前記非線形変換処理手段に入力されなかったデータとのm個の排他的論理和を算出する。
入替手段(C)は、前記排他的論理和したm個のデータと、前記非線形変換処理手段への入力対象となったm個のデータとの2m個のデータを入れ替える。
本発明の第3の視点によれば、コンピュータに実行させる暗号処理プログラムであって、入力データを少なくとも4個以上の2m個のデータに分割する処理の後に、下記(A)〜(C)の各処理をn回繰り返し、n回目の入れ替え後に得られた2m個のデータを結合し、出力データを生成する処理を前記コンピュータに実行させる暗号処理プログラムが提供される。
非線形変換処理(A)では、前記2m個のデータのうちm個のデータについて3ラウンドのFeistel構造により鍵データとの攪拌を行う。
排他的論理和算出処理(B)では、前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和を算出する。
入替処理(C)では、前記排他的論理和したm個のデータと、前記非線形変換処理の入力対象となったm個のデータと、の2m個のデータを入れ替えて次段に送る。
非線形変換処理(A)では、前記2m個のデータのうちm個のデータについて3ラウンドのFeistel構造により鍵データとの攪拌を行う。
排他的論理和算出処理(B)では、前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和を算出する。
入替処理(C)では、前記排他的論理和したm個のデータと、前記非線形変換処理の入力対象となったm個のデータと、の2m個のデータを入れ替えて次段に送る。
本発明によれば、特許文献1、非特許文献1に記載された3ラウンドFeistel構造を入れ子にしたブロック暗号方式よりも効率よく差分/線形解析に対する耐性を確保することができる。その理由は、入力データを2m個に分割し、上記少なくとも2つの非線形変換処理をアクティブにすることのできる3ラウンドFeistel構造を持つm個の非線形変換処理に入力する構造を採用したことにある。
1 暗号処理部
3 ラウンド関数(FO)
4 非線形変換処理部
11 分割処理部
12 結合処理部
13 非線形変換処理部
14〜25、91〜94、136〜143 データ
31 関数(FIi1〜FIi3)
41〜43、51〜55 F関数
45、73〜84 排他的論理和
61〜72 非線形変換処理部
100 初期処理部
101 終期処理部
131 分割処理部
132 結合処理部
133〜135 S−box
144〜146 鍵データ
311 非線形変換処理(S9)
312 非線形変換処理(S7)
3 ラウンド関数(FO)
4 非線形変換処理部
11 分割処理部
12 結合処理部
13 非線形変換処理部
14〜25、91〜94、136〜143 データ
31 関数(FIi1〜FIi3)
41〜43、51〜55 F関数
45、73〜84 排他的論理和
61〜72 非線形変換処理部
100 初期処理部
101 終期処理部
131 分割処理部
132 結合処理部
133〜135 S−box
144〜146 鍵データ
311 非線形変換処理(S9)
312 非線形変換処理(S7)
[第1の実施形態]
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態に係る暗号装置の構成を表したブロック図である。図1を参照すると、本発明の第1の実施形態に係る暗号装置の暗号処理部1は、入力データPを分割する分割処理部11と、データを非線形変換する非線形変換処理部13と、データを結合する結合処理部12とを有する。
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。図1は、本発明の第1の実施形態に係る暗号装置の構成を表したブロック図である。図1を参照すると、本発明の第1の実施形態に係る暗号装置の暗号処理部1は、入力データPを分割する分割処理部11と、データを非線形変換する非線形変換処理部13と、データを結合する結合処理部12とを有する。
本実施形態では、分割処理部11は、平文(入力データ)Pを4つのデータ14、15、16、17に分割する。なお、本実施形態では、入力データを4分割(2m;m=2)するものとして説明するが、6以上の偶数個(m>2)とすることもできる。
非線形変換処理部13は、1ラウンドあたり、上記分割処理部11によるデータ長とデータ分割数に応じた回数動作することになる。本実施形態では、分割処理部11が4つのデータに分割するので、1ラウンドあたりの非線形変換処理部13の動作回数は、分割処理部11によるデータ分割数4の半数の2回(m=2)となる。また、ラウンド数(段数)nについては後に詳述する。
また、図中の交差するパスは、入替手段(置換手段)に相当し、1ラウンドにつき入替処理として、非線形変換処理部13による処理結果と非線形変換処理の対象としなかったデータ15、17との排他的論理和と、非線形変換処理部13への入力対象となったデータ14、16と、からなるビット列を左にデータ長分ローテイトする処理が行われる。具体的には、データ14を非線形変換処理部13で変換した結果とデータ15とを排他的論理和したものを中間データ18とし、データ16を非線形変換処理13で変換した結果とデータ17とを排他的論理和したものを中間データ20とし、データ14を中間データ21、データ16を中間データ19とする入替処理が行われる。なお、図1の例では、データ長単位で、データを左方にずらし、左端のデータを右端に移動する左方向へのローテイト処理を行っているが、右方向のローテイト処理とすることもできる。
なお、上記した分割処理部11、非線形変換処理部13、結合処理部12、排他的論理和及び入替処理は、回路による構成はもちろんとして、コンピュータを上記した各処理手段として機能させるプログラムによっても実現することができる。
図2は、非線形変換処理部13の詳細構成を表した図である。図2を参照すると、非線形変換処理部13は、入力データXを2分割する分割処理部131と、分割されたデータを非線形変換するS−box133、134、135と、データを結合する結合処理部132と、を有する3ラウンドのFeistel構造となっている。また、図中の符号144、145、146は、中間データと排他的論理和される鍵データを表している。
ここで、S−box133、134、135は、次式に示すように、例えば、ガロア体などの有限体上のべき乗演算G(x)と、例えば巡回シフトなどのアフィン変換A(x)との組み合わせである。なお、次式中のa、bは、任意の定数であり、自由に選択できる。
一般的にこのような演算の組み合わせによって、差分/線形確率及び代数的に良い性質を得られることが知られている。但し、べき乗演算G(x)は、処理負荷が大きいため、一般的に予めすべての入力値について事前に計算を行い、その結果を変換テーブルの形で保持しておき、暗号化を行う際には変換テーブルを参照することによって、演算結果を得るという実装が一般的である。例えば、特許文献1にも、非線形変換を変換テーブルで行う例が記載されている(特許文献1の段落0123、図20、図21)。
上記引用をもって、上記特許文献1に記載されている変換テーブルを用いた非線形変換処理は、本書に繰込み記載されているものとする。
上記引用をもって、上記特許文献1に記載されている変換テーブルを用いた非線形変換処理は、本書に繰込み記載されているものとする。
続いて、図1を参照して、本実施形態の全体動作について説明する。まず、暗号処理部1に入力された平文Pは、分割処理部11で4つのデータ14、15、16、17に分割される。
データ14は非線形変換処理部13に入力されるとともに、次のラウンドにおいて非線形変換結果と排他的論理和される中間データ21となる。
データ15は、非線形変換処理部13によるデータ14の非線形変換結果と排他的論理和され、次のラウンドにおける非線形変換対象の中間データ18となる。
データ16は、非線形変換処理部13に入力されるとともに、次のラウンドにおいて非線形変換結果と排他的論理和される中間データ19となる。
データ17は、非線形変換処理部13によるデータ16の非線形変換結果と排他的論理和され、次のラウンドにおける非線形変換対象の中間データ20となる。
中間データ18は、非線形変換処理部13に入力されるとともに、次のラウンドにおいて非線形変換結果と排他的論理和される中間データとなる。
中間データ19は、非線形変換処理部13によるデータ18の非線形変換結果と排他的論理和され、次のラウンドにおける非線形変換対象の中間データとなる。
中間データ20は、非線形変換処理部13に入力されるとともに、次のラウンドにおいて非線形変換結果と排他的論理和される中間データとなる。
中間データ21は、非線形変換処理部13によるデータ20の非線形変換結果と排他的論理和され、次のラウンドにおける非線形変換対象の中間データとなる。
以上の非線形変換処理及び入替処理が所定のnラウンド繰り返され、最終ラウンドの中間データ22、23、24、25が、結合処理部12に入力される。
結合処理部12は、中間データ22、23、24、25を結合し、結果を暗号文Cとする。
続いて、図2を参照して、上記した非線形変換処理部13における処理について説明する。まず、非線形変換処理部13に入力されたデータXは、分割処理部131でデータ136、137に2分割される(X→X0、Y0)。
2分割された一方のデータ137(Y0)は鍵データ144と排他的論理和され、S−box133に入力されるとともに、次のラウンドにおいてS−box134の出力結果と排他的論理和される中間データ138となる。なお、拡大鍵として使用する鍵データ144、145、146は、秘密鍵そのもの、もしくは秘密鍵に何らかの処理を施して生成される。
もう一方のデータ136(X0)は、S−box133によるデータ137の非線形変換結果と排他的論理和され、次のラウンドにおける鍵データ145との排他的論理和の後、S−box134に入力される中間データ139(Y1)となる。
中間データ139(Y1)は鍵データ145と排他的論理和され、S−box134に入力されるとともに、次のラウンドにおいてS−box135の出力結果と排他的論理和される中間データ140となる。
もう一方の中間データ138は、S−box134によるデータ139の非線形変換結果と排他的論理和され、次のラウンドにおける鍵データ146との排他的論理和の後、S−box135に入力される中間データ141(Y2)となる。
中間データ141(Y2)は鍵データ146と排他的論理和され、S−box135に入力されるとともに、結合処理部132に入力される中間データ142となる。
もう一方の中間データ140は、S−box135によるデータ141の非線形変換結果と排他的論理和され、結合処理部132に入力される中間データ143(Y3)となる。
結合処理部132は、中間データ142、143(Y3)を結合し、結果を出力データYとする。
ここで、本実施形態と、特許文献1及び非特許文献1に記載のMISTY1との安全性及び効率を比較する。比較のために、本実施形態で取り扱う平文Pのブロック長をMISTY1との同様の64ビットとし、S−boxが一般的な8ビット入出力であるとすると、2^−6が最良の差分確率となり、全体で2^−64を下回るように、S−boxがアクティブになる必要がある。
図3は、本実施形態に係る暗号装置における差分の伝播を説明するための図である。本発明における差分確率が最大となる例を示すため、入力データとして、差分(0,0,0,ΔA)を与える。まず、差分ΔAは非線形変換処理64に入力され、任意の差分ΔBが出力される。
また、差分ΔAは非線形変換処理67にも入力され、任意の差分ΔBが出力される。このとき非線形変換処理64と非線形変換処理67の出力差分が等しい場合、排他的論理和79で差分はキャンセルされ0となる。
このように非線形変換処理66、68、70、71にも差分が入力され、排他的論理和82、83でもキャンセルが発生し、6ラウンドの結果として差分(0,0,0,ΔA)が出力される。
上記6ラウンドまでの過程で、非線形変換処理が12回動作し、そのうち6つの非線形変換処理に差分が入力されアクティブになる。この非線形変換処理に、図2の3ラウンドのFeistel構造を採用すると、先に図7で説明したように最低でも2つのS−boxがアクティブになる。
よって、本発明における暗号方法では、都合6ラウンドの12×3=36回の非線形変換処理の実施で12個のS−boxがアクティブになる。このとき、暗号化処理全体の差分特性確率は(2^−6)^12となり、2^−64を大きく下回る。
一方、上述したMISTY1の場合、ラウンド関数1回当たり9回(=3×3)のS−boxが実行されるが、差分確率が最大となるケースでは、そのうち4個(=2×2)のS−boxがアクティブとなるに止まる。全体では、図8に示すように5ラウンドの実施で3ラウンドがアクティブになるので、暗号化処理全体で12個(=3×4)のS−boxがアクティブになる。このときの暗号化処理全体のS−boxの動作回数は45回(=3×3×5)となり、本発明による暗号方法の36回よりもはるかに多くなる。
なお、線形解析についても同様であり、本発明による暗号方法の方が少ないS−boxの動作回数で、必要な耐性を確保することが可能である。
また、本実施形態とMISTY1の構造はともに、S−box参照、鍵データの排他的論理和、データの排他的論理和で構成されており(厳密には、MISTY1は補助関数を使用しているが、アクティブS−boxの議論には影響しないので無視する。)、S−boxの動作回数が暗号化処理の速度に比例すると考えることができるので、本発明の方が差分/線形解析においてMISTY1よりも効率よく、耐性においても優れているということができる。
[第2の実施形態]
次に、上記第1の実施形態に変更を加えた本発明の第2の実施形態について図面を参照して詳細に説明する。図4は、本発明の第2の実施形態に係る暗号装置の構成を表したブロック図である。図4を参照すると、本発明の第2の実施形態に係る暗号処理部1は、上記した第1の実施形態の暗号処理部1の前後に、初期処理部100と終期処理部101とを付け加えた構成となっている。分割処理部11と、非線形変換処理部13と、結合処理部12との構成及び動作は上記した第1の実施形態と同様である。
次に、上記第1の実施形態に変更を加えた本発明の第2の実施形態について図面を参照して詳細に説明する。図4は、本発明の第2の実施形態に係る暗号装置の構成を表したブロック図である。図4を参照すると、本発明の第2の実施形態に係る暗号処理部1は、上記した第1の実施形態の暗号処理部1の前後に、初期処理部100と終期処理部101とを付け加えた構成となっている。分割処理部11と、非線形変換処理部13と、結合処理部12との構成及び動作は上記した第1の実施形態と同様である。
初期処理部100と終期処理部101は、平文P又は結合処理部12の出力データに対して鍵データを作用させることによって、解読時における鍵の仮定量を増加させることによって実質的な耐性を向上させる効果がある。なお、初期処理部100及び終期処理部101も、コンピュータを上記した各処理手段として機能させるプログラムによって実現することができる。
図5は、初期処理部100の詳細構成を表したブロック図である。図5を参照すると、初期処理部100は、図1に示す暗号処理部1の構成中の非線形変換処理部13に代えて、鍵データ(K1〜K8)との論理積(∩)又は論理和(∪)を配した構造となっている。
図5の初期処理部100によれば、出力されるデータ91には6つの鍵データ(K1〜K4、K5、K7)が影響し、データ92には4つの鍵データ(K1、K2、K4、K6)が影響する。同様に、データ93には6つの鍵データ(K1〜K4、K6、K8)が影響し、データ94には4つの鍵データ(K1、K2、K3、K5)が影響する。
以上のように構成した本実施形態によれば、上記した第1の実施形態の効果に加えて解読時における鍵データの仮定量を増加させることが可能となる。また、終期処理部101も、上記初期処理部100と同様の構造を採用することにより、解読時における鍵データの仮定量を増加させることができる。
以上、本発明の好適な実施形態を説明したが、本発明は、上記した各実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、上記初期/終期処理における鍵データとの作用は、論理演算(論理和、論理積、排他的論理和)、算術演算(加算、減算、乗算、除算)のいずれか、もしくは、前記各演算の組み合わせによって実現することができる。またあるいは、平文Pを幾つかに分割してから各々のデータに鍵データを算術加算や算術乗算といった演算で作用させるような初期/終期処理を追加した構成も採用可能である。
以上の記載は、実施例に基づいて行ったが、本発明は、上記実施例に限定されるものではない。
本発明の全開示(請求の範囲を含む)の枠内において、更にその基本的技術思想に基づいて、実施態様ないし実施例の変更・調整が可能である。また本発明の請求の範囲(クレーム)の枠内において、種々開示要素の多様な組合せ・置換ないし選択が可能である。
本発明の更なる課題・目的及び展開形態は、クレームを含む本発明の全開示事項からも、明らかにされる。
本発明の全開示(請求の範囲を含む)の枠内において、更にその基本的技術思想に基づいて、実施態様ないし実施例の変更・調整が可能である。また本発明の請求の範囲(クレーム)の枠内において、種々開示要素の多様な組合せ・置換ないし選択が可能である。
本発明の更なる課題・目的及び展開形態は、クレームを含む本発明の全開示事項からも、明らかにされる。
Claims (16)
- 入力データを少なくとも4個以上の2m個のデータに分割し、
(A)前記2m個のデータのうちm個のデータについて3ラウンドのFeistel構造により鍵データとの攪拌を行う非線形変換処理と、(B)前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和を算出する排他的論理和算出処理と、(C)前記排他的論理和したm個のデータと、前記非線形変換処理の入力対象となったm個のデータと、の2m個のデータを入れ替えて次段に送る入替処理と、を含み、
前記(A)〜(C)の処理をn回繰り返し、n回目の入れ替え後に得られた2m個のデータを結合し、出力データを生成すること、
を特徴とする暗号化方法。 - 前記入替処理として、前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和と、前記非線形変換処理の入力対象となったm個のデータと、からなるビット列を左右いずれかにデータ長分ローテイトさせること、
を特徴とする請求項1に記載の暗号化方法。 - 前記非線形変換処理は、入力されたデータを2つのデータX0、Y0に分割した後、一方のデータY0に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと他方のデータX0との排他的論理和により第1の中間データY1を得る第1のラウンドと、
前記第1の中間データY1に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと前記一方のデータY0との排他的論理和により第2の中間データY2を得る第2のラウンドと、
前記第2の中間データY2に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと前記第1の中間データY1との排他的論理和により第3の中間データY3を得る第3のラウンドと、からなり、
前記第2の中間データY2と前記第3の中間データY3とを結合して出力する請求項1又は2に記載の暗号化方法。 - 前記繰り返し回数nは、入力データ長に応じた所定の特性確率を満たすよう決定される請求項1乃至3いずれか一に記載の暗号化方法。
- 更に、論理演算(論理和、論理積、排他的論理和)、算術演算(加算、減算、乗算、除算)のいずれか、又は、前記各演算の組み合わせによって、暗号化する平文データに、鍵データを作用させてから、前記分割手段に出力する請求項1乃至4いずれか一に記載の暗号化方法。
- 更に、論理演算(論理和、論理積、排他的論理和)、算術演算(加算、減算、乗算、除算)のいずれか、又は、前記各演算の組み合わせによって、前記結合手段から出力された出力データに鍵データを作用させる請求項1乃至5いずれか一に記載の暗号化方法。
- 入力データを少なくとも4個以上の2m個のデータに分割する分割手段と、
(A)前記2m個のデータのうち、m個のデータが入力され、各データについて、3ラウンドのFeistel構造により鍵データとの攪拌を行う非線形変換処理手段と、
(B)前記各非線形変換処理手段の出力と、前記非線形変換処理手段に入力されなかったデータとのm個の排他的論理和を算出する排他的論理和算出手段と、
(C)前記排他的論理和したm個のデータと、前記非線形変換処理手段への入力対象となったm個のデータとの2m個のデータを入れ替える入替手段と、
2m個のデータを結合する結合手段と、を備え、
前記分割手段により分割された入力データについて、前記(A)〜(C)の各手段をn回動作させ、n回目の入れ替え後に得られた2m個のデータを、前記結合手段に入力し、出力データを生成すること、
を特徴とする暗号装置。 - 前記入替手段は、前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和と、前記非線形変換処理の入力対象となったm個のデータと、からなるビット列を左右いずれかにデータ長分ローテイトする処理を行うこと、
を特徴とする請求項7に記載の暗号装置。 - 前記非線形変換処理手段は、入力されたデータを2つのデータX0、Y0に分割した後、一方のデータY0に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと他方のデータX0との排他的論理和により第1の中間データY1を得る第1のラウンドと、
前記第1の中間データY1に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと前記一方のデータY0との排他的論理和により第2の中間データY2を得る第2のラウンドと、
前記第2の中間データY2に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと前記第1の中間データY1との排他的論理和により第3の中間データY3を得る第3のラウンドと、からなり、
前記第2の中間データY2と前記第3の中間データY3とを結合して出力する請求項7又は8に記載の暗号装置。 - 前記非線形変換と排他的論理和の算出と入れ替えの繰り返し回数nは、入力データ長に応じた所定の特性確率を満たす値に設定されている請求項7乃至9いずれか一に記載の暗号装置。
- 更に、論理演算(論理和、論理積、排他的論理和)、算術演算(加算、減算、乗算、除算)のいずれか、又は、前記各演算の組み合わせによって、暗号化する平文データに、鍵データを作用させてから、前記分割手段に出力する初期処理手段を備える請求項7乃至10いずれか一に記載の暗号装置。
- 更に、論理演算(論理和、論理積、排他的論理和)、算術演算(加算、減算、乗算、除算)のいずれか、又は、前記各演算の組み合わせによって、前記結合手段から出力された出力データに、鍵データを作用させる終期処理手段を備える請求項7乃至11いずれか一に記載の暗号装置。
- コンピュータに実行させる暗号処理プログラムであって、
入力データを少なくとも4個以上の2m個のデータに分割する処理と、
(A)前記2m個のデータのうちm個のデータについて3ラウンドのFeistel構造により鍵データとの攪拌を行う非線形変換処理と、(B)前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和を算出する排他的論理和算出処理と、(C)前記排他的論理和したm個のデータと、前記非線形変換処理の入力対象となったm個のデータと、の2m個のデータを入れ替えて次段に送る入替処理との前記(A)〜(C)の各処理をn回繰り返し、
n回目の入れ替え後に得られた2m個のデータを結合し、出力データを生成する処理と、を前記コンピュータに実行させる暗号処理プログラム。 - 前記入替処理として、前記各非線形変換処理結果と前記非線形変換処理の対象としなかったデータとのm個の排他的論理和と、前記非線形変換処理の入力対象となったm個のデータと、からなるビット列を左右いずれかにデータ長分ローテイトする処理を行う請求項13に記載の暗号処理プログラム。
- 前記非線形変換処理は、入力されたデータを2つのデータX0、Y0に分割した後、一方のデータY0に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと他方のデータX0との排他的論理和により第1の中間データY1を得る第1のラウンドと、
前記第1の中間データY1に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと前記一方のデータY0との排他的論理和により第2の中間データY2を得る第2のラウンドと、
前記第2の中間データY2に鍵データを作用させてから非線形変換を行い、該非線形変換されたデータと前記第1の中間データY1との排他的論理和により第3の中間データY3を得る第3のラウンドと、からなり、
前記第2の中間データY2と前記第3の中間データY3とを結合して出力する請求項13又は14に記載の暗号処理プログラム。 - 前記繰り返し回数nは、入力データ長に応じた所定の特性確率を満たす値に設定される請求項13乃至15いずれか一に記載の暗号処理プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007236953 | 2007-09-12 | ||
JP2007236953 | 2007-09-12 | ||
PCT/JP2008/066097 WO2009034929A1 (ja) | 2007-09-12 | 2008-09-05 | 暗号化方法、暗号装置及び暗号処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2009034929A1 true JPWO2009034929A1 (ja) | 2010-12-24 |
Family
ID=40451937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009532167A Pending JPWO2009034929A1 (ja) | 2007-09-12 | 2008-09-05 | 暗号化方法、暗号装置及び暗号処理プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2009034929A1 (ja) |
WO (1) | WO2009034929A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8891758B2 (en) | 2009-10-27 | 2014-11-18 | Nec Corporation | Block encryption device and method and computer program |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09269727A (ja) * | 1996-03-29 | 1997-10-14 | Toshiba Corp | 暗号化方法および暗号化装置 |
JPH1152849A (ja) * | 1997-08-07 | 1999-02-26 | Nec Corp | 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体 |
JP2002149058A (ja) * | 1995-09-05 | 2002-05-22 | Mitsubishi Electric Corp | データ変換装置 |
-
2008
- 2008-09-05 WO PCT/JP2008/066097 patent/WO2009034929A1/ja active Application Filing
- 2008-09-05 JP JP2009532167A patent/JPWO2009034929A1/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002149058A (ja) * | 1995-09-05 | 2002-05-22 | Mitsubishi Electric Corp | データ変換装置 |
JPH09269727A (ja) * | 1996-03-29 | 1997-10-14 | Toshiba Corp | 暗号化方法および暗号化装置 |
JPH1152849A (ja) * | 1997-08-07 | 1999-02-26 | Nec Corp | 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体 |
Non-Patent Citations (1)
Title |
---|
JPN6013020370; Yulian Zheng, Tsutomu Matsumoto, Hideki Imai: '"On the Construction of Block Ciphers Provably Secure and Not Relying on Any Unproved Hypotheses (e' Lecture Notes in Computer Science, Advances in Cryptology - CRYPTO '89 Vol.435, 1989, pp.461-480 * |
Also Published As
Publication number | Publication date |
---|---|
WO2009034929A1 (ja) | 2009-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5229315B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 | |
JP5402632B2 (ja) | 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム | |
AU2014297854B2 (en) | Authenticated encryption device, authenticated encryption method, and program for authenticated encryption | |
JP4735644B2 (ja) | メッセージ認証装置、メッセージ認証方法、メッセージ認証プログラムとその記録媒体 | |
JP5182091B2 (ja) | 調整機能付きブロック暗号装置と方法とプログラム | |
JP2013186157A (ja) | 暗号処理装置 | |
KR20180081559A (ko) | 암호화 동작을 위한 키 시퀀스 생성 | |
JP2013213930A (ja) | 暗号化装置、復号化装置、及びプログラム | |
WO2011101994A1 (ja) | 暗号化装置 | |
Knudsen et al. | Counting equations in algebraic attacks on block ciphers | |
JPWO2008053650A1 (ja) | 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体 | |
JP2017216619A (ja) | 情報処理装置、情報処理方法及びプログラム | |
CN111800255A (zh) | 一种适用于分组密码白盒化的动态白盒库生成和使用方法 | |
JPWO2012141189A1 (ja) | 暗号化方法、暗号化装置および暗号化プログラム | |
JPWO2009034929A1 (ja) | 暗号化方法、暗号装置及び暗号処理プログラム | |
Biryukov et al. | Differential entropy analysis of the IDEA block cipher | |
JP2008151829A (ja) | 暗号演算装置 | |
KR20080044150A (ko) | 블록암호 해쉬 운영모드의 압축함수 설계 장치 및 방법 | |
JP5916246B2 (ja) | 暗号評価装置、暗号評価方法、及び、暗号評価プログラム | |
JP2010256749A (ja) | ハッシュ値生成装置、ハッシュ値生成方法およびプログラム | |
JP2018092010A (ja) | 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム | |
WO1999000783A1 (fr) | Dispositif de chiffrement | |
JP5354914B2 (ja) | 暗号処理装置及び復号処理装置及びプログラム | |
JP5338327B2 (ja) | 暗号処理装置 | |
JP5500277B2 (ja) | 共通鍵暗号機能を搭載した暗号化装置及び組込装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110805 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130507 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130910 |