JP2003241656A - 暗号化装置および暗号化方法 - Google Patents

暗号化装置および暗号化方法

Info

Publication number
JP2003241656A
JP2003241656A JP2002042019A JP2002042019A JP2003241656A JP 2003241656 A JP2003241656 A JP 2003241656A JP 2002042019 A JP2002042019 A JP 2002042019A JP 2002042019 A JP2002042019 A JP 2002042019A JP 2003241656 A JP2003241656 A JP 2003241656A
Authority
JP
Japan
Prior art keywords
data
function
divided
encryption
block
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
Application number
JP2002042019A
Other languages
English (en)
Inventor
Shigetoshi Noda
重利 納田
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2002042019A priority Critical patent/JP2003241656A/ja
Publication of JP2003241656A publication Critical patent/JP2003241656A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 ソフトウェア処理に最適な構造をもち、暗号
化処理を高速、かつ暗号解読強度を強くする。 【解決手段】 初期処理関数(PI関数)10により、
平文Dを分割し複数の分割データとして出力し(Br関
数11)、複数の分割データを演算関数により暗号鍵K
と同じ大きさに拡大置換し(PP関数12)、係数を媒
介することにより演算関数を可変にする。その係数は、
媒介変数生成部Vにより生成される。そして、非線形暗
号化ブロック処理部20により、分割データと暗号鍵K
とを変数として非線形に暗号化し、暗号化した複数の分
割暗号化データを出力する。さらに、後処理関数(PI
-1関数)30により、演算関数の逆関数を使い分割暗号
化データを分割データと同じ大きさに縮小置換し(PP
-1関数32)、分割データを合成し暗号文として出力し
(Br-1関数31)、係数を媒介することにより逆関数
の演算関数を可変にする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号化と復号に使
用する共通の鍵により、暗号化を行う暗号化装置および
暗号化方法に関し、特に高速かつ暗号強度の強い暗号化
装置および暗号化方法に関する。
【0002】
【従来の技術】近年、パソコンの性能が飛躍的に高くな
り、CPUのクロックもGHzオーダーの極めて高い処
理能力をもつに至っている。その性能の進歩は、1、2
年で倍になるような状況である。その為に、高度で複雑
な処理や高速性が要求される各種リアルタイム変換処理
や大容量高速データ処理も非常に安価にソフトウェアだ
けで実用可能になった。つまり、従来、ハードで実現さ
れていた複雑なリアルタイムAV/IT処理も、パソコ
ンによるソフトウェアプロセッシング(SoftwareProces
sing)で可能になった。
【0003】ソフトウェアプロセッシングでは、データ
変換(編集や効果等)、データ符号化(圧縮や暗号化
等)、それらのデータベースを任意に統合し、処理可能
であるという利点がある。逆に言えば、さらに複雑で高
度な処理を行う上では、もはやハードウェアプロセッシ
ングでは不可能な状況にあり、しかも急激に進歩するパ
ソコン分野に対応するには頻繁な更新も必須になり、総
じてもはやソフトウェアプロセッシング以外に様々な次
世代の高度な処理が対応不可能な時代になってきた。
【0004】さらに、昨今は、高速インターネット、C
ATVやADSL等が普及し始め、大容量のデータをイ
ンターネットで交換することが可能になった。つまり、
ブロードバンドネット時代がはじまり、大容量だが価値
の高い高品質な画像や、暗号でガードされた大量のデー
タも流通可能になってきた。例えば、最高品質で最高価
値な画像は、デジタル原画(デジタルカメラやCGなど
のRGBフォーマットやTIFFフォーマットによる原
画)であり、原画をロスレス圧縮(無損失圧縮)したも
のである。但し、ロスレス圧縮の場合には、それを不法
にコピーされた場合には、原画であるが故の不利益も大
きい。しかしながら、ロスレス圧縮しても原画は大容量
である為に、暗号処理には高速化が必須である。さら
に、上述したようなパソコン性能が年々向上する為に、
暗号解読強度向上も必須な状況となっている。
【0005】このような状況の中で、ロスレス圧縮原画
のように価値の高いコンテンツであればあるほど、暗号
によるガードが必要になってくる。このため、原画など
の大きなデータを暗号化するのに最適な暗号方式とし
て、共通鍵暗号方式(秘密鍵暗号方式)がある。
【0006】ここで、従来の共通鍵暗号方式について、
図17を参照して説明する。図17は、従来の共通鍵暗
号方式の基本的な構造例を示すブロック図である。従来
の共通鍵暗号方式900は、大きく分けて3つのブロッ
クからなる。例えば、DESの場合には、ビット置換を
含む初期処理(Pre-Process)910、ブロック処理(B
lock Process)を行う16段のフェイステル構造92
0、ビット逆置換を含む後処理(Post-Process)930
から構成される。
【0007】まず、初期処理910では、64bitの
BLOCK入力を示す平文Dが32bitごとに左
(L)と右(R)に分岐(Br)される。次に、フェイ
ステル構造920は、左(L)と右(R)に分岐(B
r)された32bitのデータを暗号化し、左(L)と
右(R)を交換(Swap)して出力する。なお、フェ
イステル構造920の詳細については、図18にて後述
する。
【0008】次に、後処理930では、逆置換後に各3
2bitが64bitに合成(逆分岐Br-1 )されて
暗号文Cとして出力される。ここで、フェイステル構造
について、図18を参照して説明する。なお、本発明の
数式は、XOR演算を(+)で示し、各関数を関数直列
結合“・"により連結している。関数直列結合とは、例
えばf3(c)・f2(b)・f1(a)=f1(a)→f
2(b)→f3(c)と、各関数に対し順を追って処理す
る結合関係を示す。
【0009】図18は、従来の共通鍵暗号方式における
片関数結合型のフェイステル構造を示すブロック図であ
る。上記したフェイステル構造920は、図18に示す
ように片関数結合のf関数921と交換関数922によ
って構成されている。
【0010】f関数921は、m段での右側入力をR_
m、鍵をK_mとした場合、関数の内部は、第一拡大置
換T1(R_m)、鍵K_mとのXOR結合TK(T
1,K_m)=T1(+)K_m、S−Box置換S
(T1(+)K_m)、および置換T2(S)から構成
され、片関数結合となっている。また、これらの関係は
数式により表現することができ、f関数921を単にf
とすると、
【0011】
【数1】 f(K_m,R_m)=T2・S・TK ……(1) である。m段での左側入力をL_m、交換関数922を
Swap()として、ブロック図全体を関数Gで示せば
【0012】
【数2】 G(K_m,R_m,L_m)=Swap(R_m, L_m+f(K_m,R _m)) ……(2) であり、G≡G-1の合同関係となる。このフェイステル
構造が16段構成されており、各段に鍵スケジュールに
て生成された固有の鍵が与えられる。この16段の処理
にて、データはかく乱され、ビットランダム性では理想
乱数(真性乱数)に対して90%以上の確率で擬似乱数
に変換される。その為にDESは非常に強い暗号とし
て、20年以上の暗号耐性を保っている。ここで、S−
Boxは、8BLOCKからなり、1BLOCKは6b
itを4bitに変換する非線形な関数である。DES
の強さは、この非線形なS−Boxの特性にあると言わ
れている。
【0013】図17および図18で説明したDES処理
の全体を関数Fで示せば、初期処理910をBr・T、
後処理930をBr-1・T-1として、入力パラメータを
平文D、鍵Kとした場合、
【0014】
【数3】 C=F(D.K)=Br-1・T-1・Swap・G・Br・T ……(3) である。復号では、入力パラメータを暗号文C、鍵Kに
換えて
【0015】
【数4】 D=F(C.K)=Br-1・T-1・Swap・G-1・Br・T……(4) であり、G≡G-1の関係から、F≡F-1の合同関係にな
る。このように、暗号化と復号で同じ構造をもつような
構造をインボルーション(Involution)構造と言う。
【0016】
【発明が解決しようとする課題】しかしながら、このよ
うなDESの構造には、ハードウェア処理に最適なビッ
ト置換が多用されている。このため、DES構造をその
ままソフトウェアで作成すると、ビット置換処理は多重
ループ処理によって行われるので、非常に遅い処理にな
るという欠点がある。そこで、この処理を高速化する手
法が色々と知られている。一般的に、変換がLUT(Lo
ok Up Table)で可能な場合には、それを適用して高速
化できる。しかし、LUTは部分的に適用できても置換
全体を1つで任意に行うことにはできない。そのため
に、LUTだけでは高速化は十分にできない。そこで、
DESの処理を一括してある関数結合に変換して高速化
することが試みられるが、関数を見出すことが容易では
ない。
【0017】また、DESでは、鍵のビット数が56b
itと短い為に、最近の攻撃(暗号解読)により解読の
危険性がある。後述する暗号解読手法によると、DES
の構造自体は強いが、鍵が短いという欠点がある。その
ため、強度を増加させる方法の1つに、DESを3回繰
り返すTripleDESが知られている。しかし、T
ripleDESは処理速度が非常に遅いという問題が
ある。
【0018】ここで、暗号解読手法について、具体的に
説明する。 (1)シラミつぶし解読(総当たり手法:Brute Force
Attacking) 全ての可能な鍵を与えて、適当な既知入力に対する出力
と既知出力とを比較して解読する。すなわち、暗号文を
意味の取れる何らかの文章に変換する鍵に当たるまで、
あらゆる可能性を試みて解読する。平均すると、全ての
組み合わせの半数を試した時点で答えが得られる。した
がって、鍵のビット数が少ないと解読され易い。最近の
GHzオーダーのパソコンでネットワークにて多数連結
して分散並列処理する等により、DES(56bit
鍵)を短時間で解読することが可能となっている。 (2)差分解読概説(Differential Cryptanalysis) データのXOR差分に着目すれば、繰り返し途中のXO
R演算は無視でき、最初と最後に帰着できる。したがっ
て、既知な入力と出力の差分情報から差分関数出力を割
り出し、関数の統計的偏りから鍵を絞り込んで解読でき
る。すなわち、可能性のある暗号文の差分パターンを割
り出し、鍵を絞り込んで解読できる。
【0019】例えば、次のDESフェイステル構造につ
いて、図19を参照して説明する。図19は、従来の共
通鍵暗号方式であるDESフェイステル構造を示すブロ
ック図である。なお、この図は、図18の片関数結合型
のフェイステル構造と同様の構成であるが、解読手法と
いう観点で説明するため、一部表現を変えている。
【0020】DESフェイステル構造920aは、置換
処理を行うf関数921a、データの左右を交換する交
換関数922aから構成され、繰り返し処理が可能な構
造を成している。そして、それらの関数を構成するブロ
ックの入力は、左側入力を示すLi、右側入力を示す
i、鍵を示すKiであり、出力は、左側出力を示すL
i+1、右側出力を示すRi+1である。また、これらの構造
は数式により、下記のように表現できる。なお、下記に
示す数式は、(+)をXOR演算、変数差分をΔ、左側
入力をLi、右側入力をRi、f関数921aの関数出力
をFi、鍵をKiとして、表現している。
【0021】まず、ある入力(x,x')とある鍵kの
XORの差分出力Δyは、鍵kに無関係になり、Δy
= Δx(XOR差分:x(+)x')である。適便に
選択した平文によってフェイステル構造の連結関数差分
特性が同じになる構造において、フェイステル暗号の連
結の関係式は次のようになる。
【0022】最初の関数結合のΔRは、
【0023】
【数5】 ΔR2 = ΔL1(+)ΔF1 ……(5) 繰り返しの途中では、
【0024】
【数6】 ΔLi = ΔRi-1 = ΔLi-2(+)ΔFi-2 ……(6) したがって、偶数連結の最後(i=e)の出力L
outは、
【0025】
【数7】 ΔLout = ΔRe = ΔL1(+)ΔF1(+)ΔFe ……(7) となり、ここで、例えば、ΔF1=0 となるような適当
な平文を選択すれば、
【0026】
【数8】 ΔFe = ΔLout(+)ΔL1 ……(8) となり、既知入力と既知出力だけで関数差分出力ΔFe
が得られる。関数差分出力が得られることにより、もし
関数に統計的な偏りが存在すれば、その偏りを利用して
最後の段の鍵に対し、解読が容易になる。
【0027】一般に、ある暗号化関数F、入力平文D、
暗号文C、鍵Kにおいて、ΔC =F(D(+)ΔD)
(+)F(D) となる確率P、
【0028】
【数9】 P = Prob{ΔC = F(D(+)ΔD)(+)F(D)}……(9) を考えれば、これは強度評価確率になる。すなわち、こ
れは平文Dを一定値だけ変化させたとき、暗号文Cが一
定値だけ変化する確率であり、その確率値により強度を
評価/解析できるものである。
【0029】もし完全にランダムなFなら、この確率は
0になる。一方、もしこれが大きくなるような組(Δ
D,ΔC)であれば、解読可能性が高くなる。この統計
的偏りを利用するには、多数の既知平文Dと暗号文Cの
組が必要になる。したがって、この解読を困難にするに
は、ΔFが容易に求まらないようにするか、偏りを少な
くするように対策すればよい。 (3)線形解読概説(Linear Cryptanalysis) 線形解読法とは、暗号化関数をある線形関数と仮定して
その鍵を求める解読法である。具体的には、仮定した線
形関数から求めた鍵は、元の鍵と一致するとは限らない
が、たくさんの入出力情報から絞り込むことで元の鍵と
の類似確率を上げていく解読法であり、以下に詳細を説
明する。
【0030】まず、暗号化関係式は、C=F(D,K)
である。これは、関数Fと鍵Kが固定のもとでは、式
が確率1で与えられていると見なせる。線形解読法で
は、この関係を、特定の1bitにつき成り立つと仮定
する。そして、特定の1bitをiとして書き換えれ
ば、Ci = F(D,K)iとなる。この式を、ある適
当に選ばれた確率関数F'で置換すれば、Ci=F'
(D,K)iとなり、もし、F'が完全にランダムなら
ば、式は1/2の確率で成立する。もし偏りがあれば、
左右には何らかの相関があるので平文Dと暗号文Cから
鍵Kを推定する可能性が生まれる。このように、線形解
読法は、F'を線形近似の点から与えたものである。
【0031】ここで、適当な組(Di,Di'),(Ci
i')にて、差分解読の場合と同様な強度評価確率Pを
与えれば、
【0032】
【数10】 P=Π|Prob{(Di(+)Di')=(Ci(+)Ci')}−0.5 | ……(10) ここで、(+)はビット差分、Di(+)Di'などはパ
リティ(0 or 1)を示す。このビット差分での確率
評価が大きければ解読が容易になる。すなわち、平文の
いくつかのビットのパリティ値と、暗号文のいくつかの
ビットのパリティ値が一致する確率が大きければ解読が
容易になる。
【0033】次に、ビッド差分による関数部分での線形
関係の評価確率を、次のように定める。途中の入力Ci
と鍵Kiのそれぞれの中におけるあるbitの全XOR
値を[]で示すと、途中の関数部分での線形関係の評価
確率関数Pを、Pi = Prob{Ci[](+) Fi
(Ci,Ki)[]=Ki[]} とすると、全I段の近似
確率は
【0034】
【数11】 P = 0.5 + 2I-1 Π(Pi−0.5) ……(11) となる。したがって、最良の近似確率を得るには|2
I-1 Π(Pi−0.5)|が最大になる問題に帰着す
る。
【0035】このように、構造既知なファイステル暗号
のもつ、固有のビット差分線形近似相関関係を、予め詳
しく調べておけば、大量の選択した平文とその暗号文か
ら、このようなビット差分線形関係から統計的偏りを利
用して鍵のbit推測ができ易くなる。
【0036】また、差分攻撃が、ワード差分の統計的偏
りを利用するに対して、線形攻撃では、bit差分の統
計的偏りを利用したものであり、本質的には、どちらも
差分特性の固有の統計的偏り特性を利用して、鍵候補を
絞り込んで行く解読手法である。鍵候補を絞り込んで行
くために、どちらの方法も、大量の既知な平文と暗号文
を必要とし、実際には容易に解読されない。
【0037】長年に強度が認められてきたDESは、差
分線形解読にもある程度の耐性があることが知られてい
る。結局、DESなどの長年強さが認められている暗号
の強度を増加させる簡単な方法は、鍵のビット数を増加
させることや段数を増加させることである。その対策を
したTripleDESは、鍵の長さを倍に、段数を3
倍にしており大変強い暗号になっている。しかし、段数
を3倍にしたことにより処理速度が低下するという欠点
がある。
【0038】本発明の目的は、上記のような点に鑑みて
なされたものであり、ループ処理を伴うビット置換を、
ループ処理を伴わない演算関数により行うことで、暗号
化処理を高速に行う暗号化装置および暗号化方法を提供
することを目的とする。
【0039】また、本発明の他の目的は、演算関数の構
造を多重化することにより、暗号解読強度の強い暗号化
装置および暗号化方法を提供することを目的とする。
【0040】
【課題を解決するための手段】本発明では上記課題を解
決するために、暗号化と復号に使用する共通の鍵によ
り、暗号化を行う暗号化装置において、データと論理演
算し線形暗号化を行うための入力変数である暗号鍵と、
媒介変数として使用される係数を生成する媒介変数生成
部と、平文を分割し複数の分割データとして出力する分
岐関数演算手段と、複数の分割データを所定の演算関数
により構成される可逆バイゼクション関数を用いて、暗
号鍵と同じ大きさに拡大置換し分割拡大データとして出
力する可逆バイゼクション関数演算手段とを有し、係数
を媒介することにより可逆バイゼクション関数内部の前
記演算関数、あるいは内部構造を可変にする初期処理部
と、分割拡大データと暗号鍵とを入力変数として非線形
に暗号化し、暗号化した複数のデータを交換し分割拡大
暗号化データとして出力する非線形暗号化ブロック処理
部と、演算関数の逆関数により、分割拡大暗号化データ
を分割データと同じ大きさに縮小置換し分割暗号化デー
タとして出力する可逆バイゼクション逆関数演算手段
と、分割暗号化データを合成し暗号文として出力する合
成関数演算手段とを有し、係数を媒介することにより可
逆バイゼクション逆関数内部の演算関数、あるいは内部
構造を可変にする後処理部と、を有することを特徴とす
る暗号化装置が提供される。
【0041】上記構成によれば、初期処理部により、平
文を分割し複数の分割データとして出力し、複数の分割
データを演算関数により暗号鍵と同じ大きさに拡大置換
し分割拡大データとして出力する。ここで、演算関数
は、係数を媒介することにより拡大置換処理を可変にす
る。また係数は、媒介変数生成部により生成される。そ
して、非線形暗号化ブロック処理部により、分割拡大デ
ータと暗号鍵とを入力変数として非線形に暗号化し、暗
号化した複数のデータを交換し分割拡大暗号化データと
して出力する。さらに、後処理部により、演算関数の逆
関数を使い分割拡大暗号化データを分割データと同じ大
きさに縮小置換し分割暗号化データとして出力し、分割
暗号化データを合成し暗号文として出力する。ここで、
演算関数は、係数を媒介することにより縮小置換処理を
可変にする。
【0042】また、本発明では上記課題を解決するため
に、暗号化と復号に使用する共通の鍵により、復号を行
う復号装置において、データと論理演算し線形復号を行
うための入力変数である復号鍵と、媒介変数として使用
される係数を生成する媒介変数生成部と、平文を分割し
複数の分割データとして出力する分岐関数演算手段と、
複数の分割データを所定の演算関数により構成される可
逆バイゼクション関数を用いて、復号鍵と同じ大きさに
拡大置換し分割拡大データとして出力する可逆バイゼク
ション関数演算手段とを有し、係数を媒介することによ
り可逆バイゼクション関数内部の前記演算関数、あるい
は内部構造を可変にする初期処理部と、分割拡大データ
と復号鍵とを入力変数として非線形に復号し、復号した
複数のデータを交換し分割拡大復号データとして出力す
る非線形復号ブロック処理部と、演算関数の逆関数によ
り、分割拡大復号データを分割データと同じ大きさに縮
小置換し分割復号データとして出力する可逆バイゼクシ
ョン逆関数演算手段と、分割復号データを合成し復号文
として出力する合成関数演算手段とを有し、係数を媒介
することにより可逆バイゼクション逆関数内部の前記演
算関数の逆関数、あるいは内部構造を可変にする後処理
部と、を有することを特徴とする復号装置が提供され
る。
【0043】上記構成によれば、初期処理部により、暗
号文を分割し複数の分割データとして出力し、複数の分
割データを演算関数により復号鍵と同じ大きさに拡大置
換する。ここで、演算関数は、係数を媒介することによ
り拡大置換処理を可変にする。また係数は、媒介変数生
成部により生成される。そして、非線形復号ブロック処
理部により、分割データと復号鍵とを入力変数として非
線形に復号し、復号した複数の分割復号データを交換し
て出力する。さらに、後処理部により、演算関数の逆関
数を使い分割復号データを分割データと同じ大きさに縮
小置換し、分割データを合成し平文として出力する。こ
こで、演算関数は、係数を媒介することにより縮小置換
処理を可変にする。
【0044】さらに、本発明では上記課題を解決するた
めに、暗号化と復号を同一の共通鍵により行う暗号化/
復号システムにおいて、データと論理演算し線形暗号化
を行うための入力変数である暗号鍵と、媒介変数として
使用される係数を生成する媒介変数生成部と、平文を分
割し複数の分割データとして出力する分岐関数演算手段
と、複数の分割データを所定の演算関数により構成され
る可逆バイゼクション関数を用いて、暗号鍵と同じ大き
さに拡大置換し分割拡大データとして出力する可逆バイ
ゼクション関数演算手段とを有し、係数を媒介すること
により可逆バイゼクション関数内部の前記演算関数、あ
るいは内部構造を可変にする初期処理部と、分割データ
と暗号鍵とを入力変数として非線形に暗号化し、暗号化
した複数の分割暗号化データを交換して出力する非線形
暗号化ブロック処理部と、演算関数の逆関数により、分
割暗号化データを分割データと同じ大きさに縮小置換す
る可逆バイゼクション逆関数演算手段と、分割データを
合成し暗号文として出力する合成関数演算手段とを有
し、係数を媒介することにより可逆バイゼクション逆関
数内部の前記演算関数の逆関数、あるいは内部構造を可
変にする後処理部と、を備えた暗号化装置と、データと
論理演算し線形復号を行うための入力変数である復号鍵
と、媒介変数として使用される係数を生成する媒介変数
生成部と、平文を分割し複数の分割データとして出力す
る分岐関数演算手段と、複数の分割データを所定の演算
関数により構成される可逆バイゼクション関数を用い
て、復号鍵と同じ大きさに拡大置換し分割拡大データと
して出力する可逆バイゼクション関数演算手段とを有
し、係数を媒介することにより可逆バイゼクション関数
内部の前記演算関数、あるいは内部構造を可変にする初
期処理部と、分割データと復号鍵とを入力変数として非
線形に復号し、復号した複数の分割復号データを交換し
て出力する非線形復号ブロック処理部と、演算関数の逆
関数により、分割復号データを分割データと同じ大きさ
に縮小置換する可逆バイゼクション逆関数演算手段と、
分割データを合成し復号文として出力する合成関数演算
手段とを有し、係数を媒介することにより可逆バイゼク
ション逆関数内部の前記演算関数の逆関数、あるいは内
部構造を可変にする後処理部と、を備えた復号装置と、
を有することを特徴とする暗号化/復号システムが提供
される。
【0045】上記構成によれば、初期処理部により、平
文を分割し複数の分割データとして出力し、複数の分割
データを演算関数により復号鍵と同じ大きさに拡大置換
する。ここで、演算関数は、係数を媒介することにより
拡大置換処理を可変にする。また係数は、媒介変数生成
部により生成される。そして、非線形復号ブロック処理
部により、分割データと復号鍵とを入力変数として非線
形に復号し、復号した複数の分割復号データを交換して
出力する。さらに、後処理部により、演算関数の逆関数
を使い分割復号データを分割データと同じ大きさに縮小
置換し、分割データを合成し復号文として出力する。こ
こで、演算関数は、係数を媒介することにより縮小置換
処理を可変にする。
【0046】一方、初期処理部により、暗号文を分割し
複数の分割データとして出力し、複数の分割データを演
算関数により暗号鍵と同じ大きさに拡大置換し、係数を
媒介することにより拡大置換処理を可変にする。その係
数は、媒介変数生成部により生成される。そして、非線
形暗号化ブロック処理部により、分割データと暗号鍵と
を入力変数として非線形に暗号化し、暗号化した複数の
分割暗号化データを交換して出力する。さらに、後処理
部により、演算関数の逆関数を使い分割暗号化データを
分割データと同じ大きさに縮小置換し、分割データを合
成し元の平文として出力する。ここで、演算関数は、係
数を媒介することにより縮小置換処理を可変にする。
【0047】
【発明の実施の形態】以下、本発明の実施の形態を図面
を参照して説明する。ここで、一般に現代の暗号手法が
満たされる条件として、以下に示すような規約が共通に
認識されている。 [現代暗号成立規約]以下のものが満たされない暗号
は、暗号として認められない。
【0048】1.鍵以外の全ての情報(内部処理等)が公
開されていること。 2.その条件にて、暗号が、計算量的に十分な強さをも
つこと。 つまり、暗号はその処理構造が公開され、しかも、全て
のデータ(平文、暗号文等)が知られていても鍵が解読
されない条件にて暗号として認められる。すなわち、暗
号アルゴリズムや暗号文が公開されていても、鍵という
パラメータさえ秘密に保っておけば安全性が確保できる
という条件である。したがって、本発明は、この条件を
満たす秘密鍵暗号(共通鍵暗号)に属し、この条件を満
たす構造を成すものである。
【0049】図1は本発明の暗号化装置の原理図であ
る。暗号化装置1は、データと論理演算し線形暗号化を
行うための入力変数である暗号鍵K、メッセージの1ブ
ロック(Nビット)分のデータである平文D、メッセー
ジとは全く異なる1ブロック(Nビット)分のデータで
ある暗号文C、媒介変数である係数を生成する媒介変数
生成部V、平文Dを分割し、その分割データを暗号鍵K
と同じ大きさに置換する初期処理関数(以下、PI関数
と略称する)10、非線形の暗号化を行う非線形暗号化
ブロック20、暗号化された分割暗号データを元の分割
データと同じ大きさに置換する後処理関数(以下、PI
-1関数と略称する)30から構成される。ここで、PI
関数10は、分岐関数(以下、Br関数と略称する)1
1、可逆バイゼクション(bijection)関数(以下、P
P関数と略称する)12を有している。また、PI-1
数30は、合成関数(逆分岐関数:以下、Br-1関数と
略称する)31、可逆バイゼクション逆関数(以下、P
-1関数と略称する)32を有している。
【0050】媒介変数生成部Vは、置換処理(PI関数
10、PI-1関数30)における媒介変数である係数を
生成する。これは、PI関数10やPI-1関数30に
て、係数を媒介することにより、PP関数12やPP-1
関数32内部の演算関数、あるいは内部構造を可変にす
ることができる。また、ここで生成される係数は、様々
な値が考えられ、例えば生成値が一定の固定値、生成毎
に生成値が可変の可変値である。
【0051】Br関数11は、1ブロック(Nビット)
分の入力データである平文Dを等分割し、等分割した複
数の分割データをPP関数12へ出力する。PP関数1
2は、可逆変換可能な全単射(一対一写像)の写像関数
であり、Br関数11により分割された複数の分割デー
タを、内部の演算関数により暗号鍵Kと同じ大きさに拡
大置換し分割拡大データとして出力する。ここで、PP
関数12は、内部の演算関数として、前置関数(Pr関
数)121、置換関数(P関数群)122、後置関数
(Po関数)123を有するが、詳細は図2にて説明す
る。
【0052】非線形暗号化ブロック20は、PI関数1
0にて分割拡大された分割拡大データと、暗号鍵Kとを
変数として入力し、非線形に暗号化を行う。そして、暗
号化した複数のデータを交換し、分割拡大暗号化データ
としてPI-1関数30に対し出力する。ここで、非線形
のブロック暗号化構造として、例えばDESなどは、フ
ェイステル(Feistel)暗号構造をもち、内部のf関数
により非線形暗号化が行われている。なお、非線形暗号
化ブロック20内に、DESのf関数と同類のものがあ
れば、PP関数12をPI関数10内ではなく、f関数
内に含むことで、全ての拡大置換処理を関数化すること
ができる。また、その場合には、PI-1関数30内のP
-1関数32は不要となる。
【0053】PP-1関数32は、可逆変換可能な全単射
(一対一写像)の写像関数であり、非線形暗号化ブロッ
ク20からの複数の分割拡大暗号化データを、内部の演
算関数により分割データと同じ大きさに縮小置換し分割
暗号化データとして出力する。ここで、PP-1関数32
は、内部の演算関数として、前置関数(Pr-1関数)3
21、逆置換関数(P-1関数)322、後置関数(Po
-1関数)323を有するが、詳細は図2にて説明する。
【0054】Br-1関数31は、PP-1関数32からの
複数の分割暗号化データを合成する。そして、合成した
複数の分割暗号化データを、1ブロック(Nビット)の
データである暗号文Cとして出力する。
【0055】次に、本発明の暗号化装置について、図を
参照して具体的に説明する。図2は、可逆バイゼクショ
ン関数の構造を示すブロック図である。ここで、PP関
数(可逆バイゼクション関数)は、ビット置換などのブ
ロック処理に対し、従来のハードウェア処理に適した構
造ではなく、ソフトウェア処理に適した演算関数群によ
る構造を成している。
【0056】PP関数12は、前置関数(Pr関数)1
21と後置関数(Po関数)123とその間の置換関数
(以下、P関数群と称する)122から構成される。P
P関数12は、数式によっても表すことができ、前置関
数121をPr、P関数群122をP1〜Pk、後置関
数をPo、可変係数をVw、k次連結の連結数をk、総
合入出力(Rx,Lx)、(Ry,Ly)として、数式
により表すと、
【0057】
【数12】 PP(Vwk,Rx,Lx)=(Ry,Ly)=Po・Pk...P1・Pr PP-1(Vwk,Rx,Lx)≡Pr-1・P1・...・Pk・Po-1 もし、P1・...・Pk≡Pk・...・P1ならば PP-1(Vwk,Rx,Lx)≡Pr-1・Pk...P1・Po-1……(12) となる。ここで、もし、Po=Pr-1なら、PP関数は
インボルーション構造をもつ。
【0058】本発明ではPP関数がインボルーションで
ある場合を推奨するが、限定はしない。前置関数121
は、分割データをP関数群122で、処理可能なデータ
形式に一時的に変換する。なお、前置関数121は、P
関数群122よりも高速な関数を選定する条件のもとで
任意とする。
【0059】P関数群122は、P関数1221〜P関
数122kから構成されている。また、P関数群122
は、可逆変換可能な全単射(一対一写像)の写像関数群
であり、複数の分割データを、暗号鍵Kと同じ大きさに
拡大置換する演算関数であるP関数1221を複数連結
(k次連結)した関数群である。なお、P関数1221
〜P関数122kは、データの大きさを拡大できる関数
であれば、どのような関数でもよいし、それぞれ別々の
関数であってもよい。また、P関数の詳細については、
図3により説明する。
【0060】後置関数123は、P関数群122により
処理されたデータを出力形式(図1における非線形暗号
化ブロック20で、処理可能な形式)に変換する。な
お、後置関数123は、P関数群122よりも高速な関
数を選定する条件のもとで任意とする。
【0061】図3は、P関数の構造を示すブロック図で
ある。ここで、P関数は、ビット置換などのブロック処
理に対し、従来のハードウェア処理に適した構造ではな
く、ソフトウェア処理に適した演算関数である。また、
一般的なP関数とは、マルチ入出力系のインボルーショ
ン関数であるが、ここでは一例として2入力2出力とす
る。なお、P関数の構造は、図2におけるP関数122
1により、代表して説明する。
【0062】P関数1221は、内部関数p1とXOR
演算(+)とから構成される。そして、それら関数を構
成するブロック(P関数1221)の入力は、左側入力
を示すLw、右側入力を示すRw、可変係数を示すVw
であり、出力は、左側出力を示すLo、右側出力を示す
Roである。また、P関数1221は、可逆変換可能な
全単射(一対一写像)の写像関数であり、複数の分割デ
ータを、可変係数Vwを入力変数にして拡大置換する演
算関数である。ここで、P関数1221の構造は数式に
より表すことができ、最も基本的な直結ユニット構造に
おいて、単に可変係数VwをVw、入力を(Rw,L
w)、出力を(Ro,Lo)、内部関数p1をp(V
w,Rw,Lw)=(pr,pl)とすれば、
【0063】
【数13】 P(Vw,Rw,Lw)=(Pr,Pl)=(Rw(+)pr,Lw(+)pl )≡P-1 ……(13) である。
【0064】ここで、上記の式を満たすP関数1221
は無数に存在し、例えば図8にて後述する両関数結合型
での関数ブロックもP関数1221に含まれる。したが
って、本発明では基本的にこの図でのP関数1221を
定めることはせず、任意に定められるP関数1221は
連結構造をもち、総合構造として図2に示す構造を基本
的なPP関数12として定めている。
【0065】次に、上記したP関数のバイゼクション−
バリエーションを拡大する構造として、図4を参照して
説明する。図4は、拡張したP関数を示すブロック図で
ある。
【0066】P関数1221aは、内部関数q、内部関
数p2、およびXOR演算(+)から構成される。ここ
で、単に内部関数qをq、内部関数p2をpとして、こ
の構造を数式で表すと、
【0067】
【数14】 q(Vw,Rw,Lw)=(qr,ql) p(Vw,qr,ql)=(pr,pl) ……(14) である。そして、qへの可逆入力inに対して常に
【0068】
【数15】 P(q(in))≡P-1(q(in)) ……(15) の関係が成立するものを定める。
【0069】このような分離した内部関数q、内部関数
p2による全てのP関数は、内部関数p2(図3におけ
るp1)のみより多くの組み合わせが可能となる。した
がって、インボルーション保存と無数のバイゼクション
−バリエーションを確立できるという利点がある。
【0070】このように、上記したP関数などから構成
されるPP関数12は複数の関数からなる関数群であ
り、置換処理におけるビット検索処理を必要とせず、基
本的に高速処理可能な構造をもっている。
【0071】本発明は、このような内部基本構造を定め
たP関数の連結構造を内部に含む可逆バイゼクション関
数としてPP関数を定めるものである。図5は本発明の
暗号化装置の構造における第1の実施例を示すブロック
図である。
【0072】暗号化装置200は、初期処理関数(PI
関数)210、フェイステルブロック処理部220、後
処理関数(PF関数(PI-1関数))230、可変係数
処理部240から構成されている。ここで、初期処理関
数210は、分岐関数(Br関数)211、可逆バイゼ
クション関数(PP関数)212を有している。また、
フェイステルブロック処理部220は、図6にて後述す
るフェイステル内部関数(f関数)、交換関数(Swa
p)を有している。さらに、後処理関数230は、分岐
逆関数(Br-1関数)231、可逆バイゼクション逆関
数(PP-1関数)232を有している。
【0073】なお、この図の説明は、関数による数式と
して表現でき、単に暗号化装置200の総合暗号関数を
F、初期処理関数210をPI、可逆バイゼクション関
数212をPP、フェイステルブロック処理部220の
総合関数をG、フェイステル内部関数をf、後処理関数
230をPF(PI-1)、交換関数をSwap、分岐関
数をBr、左分岐データをL、右分岐データをR、可変
係数処理部240から出力される可変係数をV、段の番
号をm、XOR演算(排他的論理和)を“(+)”、関
数直列結合を“・”により表現できる。関数直列接続と
は、例えばf3(c)・f2(b)・f1(a)=f
1(a)→f2(b)→f3(c)と、各関数に対し順を
追って処理する結合関係を示す。
【0074】初期処理関数210は、平文Dを分岐関数
(Br関数)211により等分割し、等分割した分割デ
ータを可逆バイゼクション関数(PP関数)212によ
り拡大置換する。これを数式にすると、適当な可逆バイ
ゼクション関数PP(V,Br(D))と分岐関数Br
により表すことができ、これら全体の結合関数として、
【0075】
【数16】 PI = PP・Br ……(16) である。一方、逆関数は
【0076】
【数17】 PI-1 = Br-1 ・PP-1 ……(17) である。
【0077】フェイステルブロック処理部220は、分
割データを適当な非線形内部関数f(K,R,L)=
(fr,fl)により非線形の暗号化を行い、XOR演
算(排他的論理和)により線形の暗号化を行う。これを
数式にすると、m段におけるブロック暗号化処理とし
て、関数G_mの式として表すことができる。ここで、
関数G_mは、両結合(図6にて後述)と片結合(図1
1にて前述)に大別でき、両結合の場合には、
【0078】
【数18】 G_m = Swap(R_m(+)fr_m,L_m(+)fl_m) ……(18) である。また片結合の場合には、
【0079】
【数19】 G_m = Swap(R_m,L_m(+)fl_m) ……(19) であるが、以下ではこれらも含む代表として暗黙に両結
合で代表する。さらに、全ての段数にて処理されたブロ
ック処理、すなわち総合は、最大段数をzとして、
【0080】
【数20】 G = G_z・...・G_m・...・G_1 ……(20) と表すことができる。一方、フェイステルブロック処理
部220は、インボルーション構造をとるため、復号時
(関数G-1:関数Gの逆関数)は、合同関係と捉えるこ
とができる。したがって、
【0081】
【数21】 G-1 ≡ G_z・...・G_m・...・G_1 = G ……(21) である。
【0082】なお、本発明におけるfは、次の条件が満
たされれば基本的に任意である。 [条件] 1.DESに使用されているような強い暗号を構成する
f関数である。
【0083】2.もしf関数がDESと同類ならば、f
関数内部にPP関数構造を含む。後処理関数230は、
暗号化された分割データSwap(G)を可逆バイゼク
ション逆関数(PP-1関数)232により縮小置換し、
分岐逆関数(Br-1関数)231により合成する。これ
を数式にすると、適当な可逆バイゼクション逆関数PP
-1(V,Swap(G))と分岐逆関数Br-1 により
表すことができ、後処理関数230をPFとして、
【0084】
【数22】 PF = Br-1・PP-1 = PI-1 ……(22) である。
【0085】可変係数処理部240は、適当な可変係数
Vが、平文Dと暗号鍵Kに依存して適便に決定される。
その関係をV{K,D}で示し、V{K,D}を満たす
ものであればどのような係数であってもよい。なお、可
変係数Vは、暗号鍵Kまたは平文Dの一部を利用したも
のであってもよく、また当然のごとく関数V(K,D)
であってもよい。
【0086】以上のような処理について、全体の処理を
数式で表現すると、
【0087】
【数23】 暗号化:C = F(D,K)= PF・G・PI = Br-1・PP-1・G ・PP・Br 復号:D = F(C,K)= Br-1・PP-1・G-1・PP・Br≡ Br -1 ・PP-1・G・PP・Br ……(23) となる。
【0088】図6は両関数結合型のフェイステル構造を
示すブロック図である。上記したフェイステルブロック
処理部220に対応する両関数結合型のフェイステル構
造220aは、図6に示すように両関数結合のf関数2
21aと交換関数222aによって構成されている。
【0089】f関数221aは、m段での右側入力をR
_m、左側入力をL_m、鍵をK_mとした場合、関数
の内部は、第一拡大置換T1(R_m,L_m)、鍵K
_mとのXOR結合TK(T1,K_m)=T1(+)
K_m、S−Box置換S(T1(+)K_m)、および
置換T2(S)から構成され、両関数結合となってい
る。これらの関係は数式により表現することができ、f
関数221aを単にfとすると、
【0090】
【数24】 f(K_m,R_m,L_m)=T2・S・TK ……(24) である。交換関数222aをSwap()として、ブロ
ック図全体を関数Gで示せば、
【0091】
【数25】 G(K_m,R_m,L_m)=Swap(R_m(+)f(K_m,R_m, L_m), L_m(+)f(K_m,R_m,L_m))……(25) であり、G≡G-1の合同関係となる。このフェイステル
構造が16段構成されており、各段に鍵スケジュールに
て生成された固有の鍵が与えられる。この16段の処理
にて、データはかく乱される。
【0092】なお、図5では、鍵が1つであり、DES
と同じような1BLOCKが64bitであるデータを
扱う場合には、鍵の長さも64bit以内が普通であ
る。例えば、f関数にDESのf関数を適用した場合に
は、鍵は56bitになる。すると、シラミつぶし解読
攻撃にて容易に解読されてしまう危険性がある。そこ
で、TripleDESと同じような拡張を行えば、こ
の問題は解決するが、処理速度が3倍に遅くなる。
【0093】第2の実施例では、高速処理可能なPP関
数を図7のような構成に利用することにて、この問題を
解決する。また、第3および第4の実施例では、図7の
ように論理的に鍵の長さを拡張すると処理速度が低下す
る問題があり、PP関数をさらに拡張した図8、図9の
ような構成をとることにより、この問題を解決する。
【0094】図7は本発明の暗号化装置の構造における
第2の実施例を示すブロック図である。ここでは、図5
におけるPP関数は、可変係数入力Vをもつために、V
の代わりに第2の鍵である暗号鍵K2を利用する。鍵の
全てのbitが、利用できるようなP関数連結数を定め
ることにより、PP関数が鍵に依存した可逆変換を成す
ことができる。
【0095】暗号化装置300は、初期暗号化部(P関
数)310、暗号化機能部320、後暗号化部(P-1
数)330から構成されている。ここで、初期暗号化部
310は、分岐関数(Br関数)311、可逆バイゼク
ション関数(PP関数)312、および分岐逆関数(B
-1関数)313を有している。また、暗号化機能部3
20は、図5にて説明した暗号化装置200と同様の機
能をもったブロック暗号化処理部である。さらに、後暗
号化部330は、分岐逆関数(Br-1関数)331、可
逆バイゼクション逆関数(PP-1関数)332、および
分岐関数(Br関数)333を有している。
【0096】なお、この図の説明は、関数による数式と
して表現でき、単に初期暗号化部310をP、可逆バイ
ゼクション関数312をPP、暗号化機能部320の総
合暗号関数をF、後暗号化部330をP-1、分岐関数3
11、333をBr、分岐逆関数313、331をBr
-1、関数直列結合を“・"として表現できる。
【0097】初期暗号化部310は、平文Dを分岐関数
(Br関数)311により等分割し、等分割した分割デ
ータを可逆バイゼクション関数(PP関数)312によ
り拡大置換し分割拡大データとして出力する。ここで、
PP関数312は、暗号鍵K2を媒介して、暗号鍵K2
に対応した拡大置換演算を行う。そして、拡大置換した
分割拡大データを分岐逆関数(Br-1関数)313によ
り合成し、初期暗号化拡大データD´として出力する。
これを数式にすると、適当な可逆バイゼクション関数P
P(K2,D)、分岐関数Br、分岐逆関数Br-1によ
り表すことができ、これら全体の結合関数として、
【0098】
【数26】 P(D) = Br-1・PP・Br = D´ ……(26) である。
【0099】暗号化機能部320は、図5のおける暗号
化装置200と同様な構成である。なお、暗号化機能部
320は、DESなどの従来のブロック暗号化処理構成
でもよい。また、暗号化装置200については、既に図
5にて説明しているので省略する。さらに、関係式は、
暗号化機能部320の総合暗号関数をF、入力パラメー
タを暗号鍵K1、初期暗号化拡大データD´とすると、
F(K1,D´)=C´となり、暗号化拡大データC´
を出力する。
【0100】後暗号化部330は、暗号化された暗号文
F(K1,D´)=C´を分岐関数(Br関数)333
により等分割し、等分割した分割暗号化データを可逆バ
イゼクション逆関数(PP-1関数)332により縮小置
換し分割暗号化縮小データとして出力する。ここで、P
-1関数332は、暗号鍵K2を媒介して、暗号鍵K2
に対応した縮小置換演算を行う。そして、縮小置換した
分割暗号化縮小データを分岐逆関数(Br-1関数)33
1により合成し、暗号文Cとして出力する。これを数式
にすると、適当な可逆バイゼクション逆関数PP-1(K
2,C´)、分岐関数Br、分岐逆関数Br-1 により
表すことができ、後暗号化部330をP- 1として、
【0101】
【数27】 P-1 (C´)= Br-1 ・PP-1・Br = C ……(27) である。
【0102】以上のような処理について、全体の処理を
数式で表現すると、
【0103】
【数28】 暗号化:C = P-1・F・P 復号:D = P-1・F-1・P ≡ P-1・F・P……(28) となる。
【0104】このような構造では、PP関数による鍵
(K2)とデータ(D)に依存した可変バイゼクション
によって、内在するブロック暗号(暗号化機能部32
0)への入出力情報が隠遁される。そして、このような
拡張によって、鍵のビット長が第1鍵(K1)と第2鍵
(K2)を加算した長さになる。つまり、Triple
DESと同じ暗号強度を得ることができる。しかも、内
部ブロック暗号よりも十分に高速なPP関数にて、総合
速度もTripleDESよりも速くできる。
【0105】図8は本発明の暗号化装置の構造における
第3の実施例を示すブロック図である。なお、この図の
PPj(j=J〜1)関数は、拡張したものであり、可
変係数入力Vj(j=J〜1)をもち、さらに暗号鍵K
j(j=J〜1)を利用する。つまり、図2のPP関数
を、Kjの関数PPj(Kj,Dj,Vj)に拡張す
る。また、拡張したPPj関数については、図9にて後
述する。
【0106】暗号化装置400は、初期暗号化部(P関
数)410、暗号化機能部420、後暗号化部(P-1
数)430から構成されている。ここで、初期暗号化部
410は、分岐関数(Br関数)41J1〜4111、
可逆バイゼクション関数(PPj関数)41J2〜41
12、分岐逆関数(Br-1関数)41J3〜4113、
および可変係数処理部41J4〜4114から成る複数
のQj関数(QJ関数41J〜Q1関数411)を有し
ている。また、暗号化機能部420は、図5にて説明し
た暗号化装置200と同様の機能をもったブロック暗号
化処理部である。さらに、後暗号化部430は、分岐逆
関数(Br-1関数)4311〜43J1、可逆バイゼク
ション逆関数(PPj-1関数)4312〜43J2、分
岐関数(Br関数)4313〜43J3、および可変係
数処理部4314〜43J4から成る複数のQj-1関数
(Q-11関数431〜Q-1J関数43J)を有してい
る。
【0107】初期暗号化部410は、QJ関数におい
て、平文Dを分岐関数(Br関数)41J1により等分
割し、等分割した分割データを可逆バイゼクション関数
(PPJ関数)41J2により拡大置換し分割拡大デー
タとして出力する。そして、拡大置換した分割拡大デー
タを分岐逆関数(Br-1関数)41J3により合成し、
中間暗号化拡大データとして出力する。このようなQJ
関数による暗号化を伴う拡大を、QJ〜Q1まで多段処
理し、拡大初期化データD0として出力する。ここで、
PPJ関数41J2は、可変係数処理部41J4より生
成される可変係数Vと、暗号鍵K0および暗号鍵Kj
(j=J〜1)とを媒介して、可変係数V、暗号鍵K
0、および暗号鍵Kj(j=J〜1)に対応した拡大置
換演算を行う。また可変係数処理部41J4は、鍵スケ
ジュール部により生成されるKj(j=J〜1)と、平
文Dあるいは中間暗号拡大データとを媒介して、可変係
数(Vj(Kj,Dj))を生成する。
【0108】暗号化機能部420は、図5における暗号
化装置200と同様な構成である。なお、暗号化機能部
420は、DESなどの従来のブロック暗号化処理構成
でもよい。また、暗号化装置200については、既に図
5にて説明しているので省略する。さらに、関係式は、
暗号化機能部420の総合暗号関数をF、入力パラメー
タを暗号鍵K0、拡大初期化データD0とすると、F
(K0,D0)=C1となり、暗号化拡大データC1を
出力する。
【0109】後暗号化部430は、Q-11関数におい
て、暗号化された暗号文Fとして出力される(K0,D
0)=C1を分岐関数(Br関数)4311により等分
割する。そして、等分割した分割データを可逆バイゼク
ション逆関数(PP-11関数)4312により縮小置換
し、分割縮小データとして出力する。さらに、縮小置換
した分割縮小データを分岐逆関数(Br-1関数)431
3により合成し、中間暗号化データとして出力する。こ
のようなQ-11関数による暗号化を伴う縮小を、Q-1
〜Q-1Jまで多段処理し、暗号文Cとして出力する。こ
こで、PP-11関数4312は、可変係数処理部431
4より生成される可変係数Vと、暗号鍵K0および暗号
鍵Kj(j=1〜J)とを媒介して、可変係数V、暗号
鍵K0、および暗号鍵Kj(j=1〜J)に対応した縮
小置換演算を行う。また可変係数処理部4314は、鍵
スケジュール部により生成される暗号鍵Kj(j=1〜
J)と、暗号化拡大データC1あるいは中間暗号化デー
タとを媒介して、可変係数(Vj(Kj,Cj))を生
成する。
【0110】このような構造では、PPj関数による鍵
(K0)とデータ(D)に依存した可変バイゼクション
によって、内在するブロック暗号(暗号化機能部42
0)および各ユニット(Q関数)への入出力情報が隠遁
される。かつ、PPj関数が鍵の関数となり、必ずしも
PPj関数を鍵の長さに対応するP連結にする必要性が
少なくなり、高速性において有利になる。
【0111】そして、このような拡張によって、鍵のビ
ット長が第1の鍵(K0)と複数の鍵(Kj)を加算し
た長さになる。つまり、TripleDESと同じ暗号
強度を得ることができる。しかも、内部ブロック暗号よ
りも十分に高速なPP関数にて、総合速度もTripl
eDESよりも速くできる。
【0112】図9は、図8の拡張したPPj関数の構造
を示すブロック図である。なお、この図のPPj(j=
J〜1)関数は、拡張したものであり、可変係数入力V
j(j=J〜1)をもち、さらに暗号鍵Kj(j=J〜
1)を利用する。つまり、図2のPP関数を、暗号鍵K
jの関数PPj(Kj,Dj,Vj)に拡張する。
【0113】PPj関数12aは、前置関数(Pr関
数)12a1と後置関数(Po関数)12a3とその間
のP関数群12a2から構成される。PP関数12a
は、数式によっても表すことができ、前置関数12a1
をPr、P関数群12a2をP1〜Pk、後置関数をP
o、可変係数をVw、暗号鍵をK、k次連結の連結数を
k、総合入出力(Rx,Lx)、(Ry,Ly)とし
て、数式により表すと、
【0114】
【数29】 PP(Vwk,Rx,Lx,K)=(Ry,Ly)=Po・Pk...P1・P r PP-1(Vwk,Rx,Lx,K)=Pr-1・P1-1...Pk-1・Po-1 PP-1(Vwk,Rx,Lx,K)≡Pr-1・P1...Pk・Po-1 ……(29) となる。ここで、もし、Po=Pr-1なら、PP関数は
インボルーション構造をもつ。
【0115】本発明ではPP関数がインボルーションで
ある場合を推奨するが、限定はしない。前置関数12a
1は、暗号鍵Kを媒介して、分割データをP関数群12
a2で、処理可能なデータ形式に一時的に変換する。な
お、前置関数12a1は、P関数群12a2よりも高速
な関数を選定する条件のもとで任意とする。
【0116】P関数群12a2は、P関数12a21〜
P関数12a2kから構成されている。また、P関数群
12a2は、可逆変換可能な全単射(一対一写像)の写
像関数群であり、複数の分割データを、暗号鍵Kと同じ
大きさに拡大置換する演算関数であるP関数12a21
を複数連結(k次連結)した関数群である。なお、P関
数12a21〜P関数12a2kは、データの大きさを
拡大できる関数であれば、どのような関数でもよいし、
それぞれ別々の関数であってもよい。
【0117】後置関数12a3は、暗号鍵Kを媒介し
て、P関数群12a2により処理されたデータを出力形
式(図1における非線形暗号化ブロック20で、処理可
能な形式)に変換する。なお、後置関数12a3は、P
関数群12a2よりも高速な関数を選定する条件のもと
で任意とする。
【0118】上記のような構成のPPj関数は、次のよ
うに拡張することができ、例えばPP関数に鍵をXOR
演算することである。PPj関数をPPj、入力データ
をDj(右側:RDj,左側:LDj)、出力データを
Cj(右側:RCj,左側:LCj)、暗号鍵をKj、
および可変係数をVjとし、これを数式で表すと、
【0119】
【数30】 PPj=PP(Dj,Vj)(+)Kj PPj-1=PP-1(Cj(+)Kj,Vj) ……(30) 但し、Dj=(RDj,LDj)、Cj=(RCj,L
Cj)である。
【0120】また、図のように、R/Lラインに直列に
連結可能なPr関数12a1とPo関数12a3を暗号
鍵Kj依存に選ぶこともできる。つまり、Pr関数12
a1とPo関数12a3とを直接に暗号鍵Kjの関数と
する。この結果、可変係数Vjへの暗号鍵Kjの自由度
が増加してPP関数構造の自由度が増加する利点が生ま
れる。なお、PrとPoの選定は、図2に説明したよう
な処理が可能な関数であれば、どのようなものでもよ
い。
【0121】図10は本発明の暗号化装置の構造におけ
る第4の実施例を示すブロック図である。なお、この図
のPPj(j=J〜1)関数は、拡張したものであり、
可変係数入力Vj(j=J〜1)をもち、さらに暗号鍵
Kj(j=J〜1)を利用する。つまり、図2のPP関
数を、Kjの関数PPj(Kj,Dj,Vj)に拡張す
る。また、拡張したPPj関数については、既に図9に
て説明している。
【0122】暗号化装置500は、初期暗号化部(P関
数)510、暗号化機能部520、後暗号化部(P-1
数)530から構成されている。ここで、初期暗号化部
510は、分岐関数(Br関数)51J1〜5111、
可逆バイゼクション関数(PP関数)51J2〜511
2、分岐逆関数(Br-1関数)51J3〜5113、お
よび可変係数処理部51J4〜5114から成る複数の
Qj関数(QJ関数51J〜Q1関数511)を有して
いる。また、暗号化機能部520は、図5にて説明した
暗号化装置200と同様の機能をもったブロック暗号化
処理部である。さらに、後暗号化部530は、分岐関数
(Br関数)5311〜53J1、可逆バイゼクション
逆関数(PP-1関数)5312〜53J2、分岐逆関数
(Br-1関数)5313〜53J3、および可変係数処
理部5314〜53J4から成る複数のQj-1関数(Q
-11関数531〜Q-1J関数53J)を有している。
【0123】初期暗号化部510は、QJ関数51Jに
おいて、平文Dを分岐関数(Br関数)51J1により
等分割し、等分割した分割データを可逆バイゼクション
関数(PP関数)51J2により拡大置換し分割拡大デ
ータとして出力する。そして、拡大置換した分割拡大デ
ータを分岐逆関数(Br-1関数)51J3により合成
し、中間暗号化拡大データとして出力する。このような
QJ関数による暗号化を伴う拡大を、QJ〜Q1まで多
段処理し、拡大初期化データD0として出力する。ここ
で、PP関数51J2は、可変係数処理部51J4より
生成される可変係数Vと、暗号鍵K0および暗号鍵Kj
(j=J〜1)とを媒介して、可変係数V、暗号鍵K0
および暗号鍵Kj(j=J〜1)とに対応した拡大置換
演算を行う。また可変係数処理部51J4は、鍵スケジ
ュール部により生成されるKj(j=J〜1)と、平文
Dあるいは中間暗号化拡大データとを媒介して、可変係
数(Vj(Kj,Dj))を生成する。
【0124】暗号化機能部520は、図5における暗号
化装置200と同様な構成である。なお、暗号化機能部
520は、DESなどの従来のブロック暗号化処理構成
でもよい。また、暗号化装置200については、既に図
5にて説明しているので省略する。さらに、関係式は、
暗号化機能部520の総合暗号関数をF、入力パラメー
タを暗号鍵K0、拡大初期化データD0とすると、F
(K0,D0)=C1となり、暗号化拡大データC1を
出力する。
【0125】後暗号化部530は、暗号化機能部520
の総合暗号関数をFとすると、Q-11関数531におい
て、暗号化された暗号文Fとして出力される(K0,D
0)=C1を分岐関数(Br関数)5311により等分
割する。そして、等分割した分割データを可逆バイゼク
ション逆関数(PP-11関数)5312により縮小置換
し、分割縮小データとして出力する。さらに、縮小置換
した分割縮小データを分岐逆関数(Br-1関数)531
3により合成し、中間暗号化データとして出力する。こ
のようなQ-11関数による暗号化を伴う縮小を、Q-1
〜Q-1Jまで多段処理し、暗号文Cとして出力する。こ
こで、PP-11関数5312は、可変係数処理部531
4より生成される可変係数Vと、暗号鍵K0および暗号
鍵Kj(j=1〜J)とを媒介して、可変係数V、暗号
鍵K0、および暗号鍵Kj(j=1〜J)に対応した縮
小置換演算を行う。また可変係数処理部5314は、鍵
スケジュール部により生成される暗号鍵Kj(j=1〜
J)と、暗号化拡大データC1あるいは中間暗号化デー
タとを媒介して、可変係数(Vj(Kj,Cj))を生
成する。
【0126】このような構造では、ブロック暗号の暗号
鍵K0、および、PP関数による鍵とデータ(D)に依
存した構造可変バイゼクションによって、内在するブロ
ック暗号(暗号化機能部520)および各ユニット(Q
j関数)への入力情報が複雑に隠遁される。かつ、PP
関数が2種類の鍵の関数となり、必ずしもPP関数やP
関数を複雑構成にする必要性が少なくなり、高速性にお
いて有利になる。
【0127】そして、このような拡張によって、鍵のビ
ット長が第1の暗号鍵(K0)と複数の鍵(Kj)を加
算した長さになる。つまり、TripleDESと同じ
暗号強度を得ることができる。しかも、内部ブロック暗
号よりも十分に高速なPP関数にて、総合速度もTri
pleDESよりも速くできる。
【0128】以上説明した処理はコンピュータプログラ
ムに記述し、コンピュータにより実行することにより、
本発明の機能を実現することができる。また、コンピュ
ータで実行する際には、コンピュータ内のハードディス
ク等にプログラムを予め格納しておき、メインメモリに
ロードして実行する。なお、コンピュータプログラム
は、コンピュータで読み取り可能な記録媒体に記録して
おくことができる。コンピュータで読み取り可能な記録
媒体としては、磁気記録媒体、光ディスク、光磁気記録
媒体、半導体メモリ等がある。磁気記録媒体には、ハー
ドディスク、フレキシブルディスク(FD)、ZIP(Zi
p:磁気ディスクの一種)、磁気テープなどがある。光デ
ィスクには、DVD(Digital Versatile Disc)、DV
D−RAM(DVD Random Access Memory)、CD−RO
M(Compact Disc Read Only Memory)、CD−R(CD
Recordable)、CD−RW(CD Rewritable)などがあ
る。光磁気記録媒体には、MO(Magneto Optical Dis
k)などがある。半導体メモリには、フラッシュ・メモ
リ(Flash Memory)などがある。
【0129】また、コンピュータプログラムを流通させ
る場合には、例えば各コンピュータプログラムが記録さ
れたDVD、CD−ROMなどの可搬型記録媒体が販売
される。また、コンピュータプログラムをサーバの記憶
装置に格納しておき、ネットワークを介して、サーバか
らクライアントへコンピュータプログラムを転送するこ
ともできる。
【0130】次に、暗号化装置の処理の流れについて、
具体的に説明する。図11は、本発明の第1の実施例に
おける暗号化処理の基本動作を説明するフローチャート
である。なお、本フローチャートの説明は、各ブロック
や関数の名称を第1の実施例である図5をもとにして行
う。
【0131】[S10] 以下の各設定等に対して初期化
を行う。 ・固定Vの場合には、適当なVを設定する。 ・ループ処理のための入力データ容量を得る。
【0132】・適当なデータバッファを作成しデータを
バッファに読み込む。 ・鍵を適当な鍵スケジュールにより設定する。 ・その他、必要な系の初期パラメータを設定する。
【0133】[S20] PI関数210(PP関数21
2・Br関数211)、フェイステルブロック処理部2
20、PI-1関数230(Br-1関数231・PP-1
数232)、可変係数処理部240により、ループ処理
を行う。なお、「ループ処理」の詳細については、図1
2にて説明する。
【0134】[S30] ステップS20におけるループ
処理の終了判定を行う。ここで、ループ処理が終了した
場合には、ステップS40へ進み、終了していない場合
には、ステップS20へ処理帰還して同様の処理を繰り
返す。
【0135】[S40] ステップS30にて、ループ処
理が終了したので、後処理を行う。ここで、書き込みバ
ッファを暗号文Cとして、ファイルへ書き込む、あるい
は、必要ならストリームデータとして全てを出力する。
書き込み、あるいは出力が終了したら、バッファを削除
して終了する。
【0136】図12は、本発明の第1の実施例における
「ループ処理」を説明するフローチャートである。図1
1のステップS20が実行されると、以下の流れに従っ
て処理が行われる。この処理により、平文Dの1ブロッ
ク(例えばDESなら64bit)の暗号化処理が行わ
れる。なお、本フローチャートの説明は、各ブロックや
関数の名称を第1の実施例である図5をもとにして行
う。
【0137】[S200] Br関数211は、1入力2
出力の関数であり、入力データである1ブロックのデー
タを分割し、2つの分割データとして出力する。 [S201] PP関数212は、2入力2出力の関数で
あり、入力データである2つの分割データを、暗号鍵K
と同じ大きさに拡大置換し分割拡大データとして出力す
る。
【0138】[S202] フェイステルブロック処理部
220は、2入力2出力の関数であり、入力データであ
る2つの分割拡大データを、暗号化して2つの分割暗号
データとして出力する。
【0139】[S203] PP-1関数232は、2入力
2出力の関数であり、入力データである2つの分割暗号
化データを、元の分割データと同じ大きさに縮小置換
し、分割縮小データとして出力する。
【0140】[S204] Br-1関数231は、2入力
1出力の関数であり、入力データである2つの分割暗号
化データを合成して、1つの暗号化された1ブロックの
暗号化データとしてバッファに書き込む。あるいは、必
要ならストリームデータとして出力する。また、出力後
は、本処理を終了して図11のステップS20へ復帰す
る。
【0141】図13は、本発明の第2の実施例における
「ループ処理」を説明するフローチャートである。図1
1のステップS20が実行されると、以下の流れに従っ
て処理が行われる。この処理により、平文Dの1ブロッ
ク(例えばDESなら64bit)の暗号化処理が行わ
れる。なお、本フローチャートの説明は、各ブロックや
関数の名称を第2の実施例である図7をもとにして行
う。
【0142】[S2100] Br関数311は、1入力
2出力の関数であり、入力データである1ブロックのデ
ータを分割(分岐)し、2つの分割データとして出力す
る。 [S2110] PP関数312は、2入力2出力の関数
であり、入力データである2つの分割データを、暗号鍵
K1と同じ大きさに拡大置換し分割拡大データとして出
力する。ここで、拡大置換の関数演算は、暗号鍵K2を
媒介することにより行われる。
【0143】[S2120] Br-1関数313は、2入
力1出力の関数であり、入力データである2つの分割拡
大データを合成し、拡大初期化データD´として出力す
る。ここで、暗号化機能部320は、1入力1出力のブ
ロック暗号化処理部であり、入力データである1つの拡
大初期化データD´を、暗号化して1つの拡大暗号化デ
ータC´として出力する。なお、暗号化機能部320
は、図5における暗号化装置200と同様な構成である
ので、フローチャートの説明(ステップS2130〜ス
テップS2134)は省略する。
【0144】[S2130] この処理は、図12のステ
ップS200における処理と同様であるため、説明は省
略する。 [S2131] この処理は、図12のステップS201
における処理と同様であるため、説明は省略する。
【0145】[S2132] この処理は、図12のステ
ップS202における処理と同様であるため、説明は省
略する。なお、図7における暗号化機能部320の処理
は、図12のステップS201における暗号鍵Kを、暗
号鍵K1に置き換えて処理する。
【0146】[S2133] この処理は、図12のステ
ップS203における処理と同様であるため、説明は省
略する。 [S2134] この処理は、図12のステップS204
における処理と同様であるため、説明は省略する。な
お、この処理では、処理後終了せずにステップS214
0へ進む。
【0147】[S2140] Br関数333は、1入力
2出力の関数であり、入力データである1ブロックの拡
大暗号化データC´を分割(分岐)し、2つの分割拡大
暗号化データとして出力する。
【0148】[S2150] PP-1関数332は、2入
力2出力の関数であり、入力データである2つの分割拡
大暗号化データを、元の分割データと同じ大きさに縮小
置換し、分割暗号化データとして出力する。
【0149】[S2160] Br-1関数331は、2入
力1出力の関数であり、入力データである2つの分割暗
号化データを合成して、1つの暗号化された1ブロック
の暗号化データとしてバッファに書き込む。あるいは、
必要ならストリームデータとして出力する。また、出力
後は、本処理を終了して図11のステップS20へ復帰
する。
【0150】なお、上記したフローチャートでは、実用
上から中間にある分岐/合成を無くした構成の方が、本
発明の目的を達成する上で最適である。したがって、本
フローチャートにおけるステップS2120、S213
0、S2134、S2140を無くした処理も可能とす
る。
【0151】図14は、本発明の第3の実施例における
「ループ処理」を説明するフローチャートである。図1
1のステップS20が実行されると、以下の流れに従っ
て処理が行われる。この処理により、平文Dの1ブロッ
ク(例えばDESなら64bit)の暗号化処理が行わ
れる。なお、本フローチャートの説明は、各ブロックや
関数の名称を第3の実施例である図8をもとにして行
う。
【0152】[S2200] Br関数41J1は、1入
力2出力の関数であり、入力データである1ブロックの
データを分割(分岐)し、2つの分割データとして出力
する。
【0153】[S2210] PPj関数(ここでは、P
PJ関数41J2)は、2入力2出力の関数であり、入
力データである2つの分割データを、暗号鍵K0と同じ
大きさに拡大置換し分割拡大データとして出力する。こ
こで、拡大置換の関数演算は、暗号鍵Kjを媒介するこ
とにより行われる。
【0154】[S2220] Br-1関数41J3は、2
入力1出力の関数であり、入力データである2つの分割
拡大データを合成し、中間暗号化拡大データとして出力
する。
【0155】上記したステップS2200〜ステップS
2220の処理を、j=J〜1まで繰り返して多段処理
する。そして、多段処理終了後は、拡大初期化データD
0として出力する。なお、ステップS2200〜ステッ
プS2220における関数は、予め設定された関数群で
あり、それぞれが暗号鍵Kjや可変係数などを入力変数
とすることで、別々の関数となる。
【0156】ここで、暗号化機能部420は、1入力1
出力のブロック暗号化処理部であり、入力データである
1つの拡大初期化データD0を、暗号化して1つの暗号
化拡大データC1として出力する。なお、暗号化機能部
420は、図5における暗号化装置200と同様な構成
であるので、フローチャートの説明(ステップS223
0〜ステップS2234)は省略する。
【0157】[S2230] この処理は、図12のステ
ップS200における処理と同様であるため、説明は省
略する。 [S2231] この処理は、図12のステップS201
における処理と同様であるため、説明は省略する。
【0158】[S2232] この処理は、図12のステ
ップS202における処理と同様であるため、説明は省
略する。なお、図8における暗号化機能部420の処理
は、図12のステップS201における暗号鍵Kを、暗
号鍵K0に置き換えて処理する。
【0159】[S2233] この処理は、図12のステ
ップS203における処理と同様であるため、説明は省
略する。 [S2234] この処理は、図12のステップS204
における処理と同様であるため、説明は省略する。な
お、この処理では、処理後終了せずにステップS224
0へ進む。
【0160】[S2240] Br関数4311は、1入
力2出力の関数であり、入力データである1ブロックの
暗号化拡大データC1を分割(分岐)し、2つの分割拡
大暗号化データとして出力する。
【0161】[S2250] PPj-1関数(ここで
は、PP-11関数4312)は、2入力2出力の関数で
あり、入力データである2つの分割拡大暗号化データ
を、元の分割データと同じ大きさに縮小置換し、分割暗
号化データとして出力する。
【0162】[S2260] Br-1関数4313は、2
入力1出力の関数であり、入力データである2つの分割
暗号データを合成して、中間暗号化データとして出力す
る。上記したステップS2240〜ステップS2260
の処理を、j=1〜Jまで繰り返して多段処理する。そ
して、多段処理終了後は、1つの暗号化された1ブロッ
クの暗号化データとしてバッファに書き込む。あるい
は、必要ならストリームデータとして出力する。また、
出力後は、本処理を終了して図11のステップS20へ
復帰する。なお、ステップS2240〜ステップS22
60における関数は、予め設定された関数群であり、そ
れぞれが暗号鍵Kjや可変係数などを入力変数とするこ
とで、別々の関数となる。
【0163】なお、上記したフローチャートでは、実用
上から中間にある分岐/合成を無くした構成の方が、本
発明の目的を達成する上で最適である。したがって、本
フローチャートにおけるステップS2220、S223
0、S2234、S2240を無くした処理も可能とす
る。またそのとき、ステップS2200、S2260
は、それぞれ最初と最後に1回ずつ処理する。つまり、
ステップS2210、S2250のみを複数回実行する
ことになる。
【0164】図15は、本発明の第4の実施例における
暗号化処理の基本動作を説明するフローチャートであ
る。なお、本フローチャートの説明は、各ブロックや関
数の名称を第4の実施例である図10をもとにして行
う。
【0165】[S11] 以下の各設定等に対して初期化
を行う。 ・固定Vの場合には、適当なVを設定する。 ・ループ処理のための入力データ容量を得る。
【0166】・適当なデータバッファを作成しデータを
バッファに読み込む。 ・鍵を適当な鍵スケジュールにより設定する。 ・その他、必要な系の初期パラメータを設定する。
【0167】[S21] 暗号鍵K0によるPPj関数構
造の可変設定を行う。これは、P関数自身、その連結
数、およびPPj関数の決定である。ここで、ブロック
暗号の暗号鍵K0によって、適当なP関数合成分離とそ
の連結数を総合的に決定する。さらに、P関数の連結を
内部に含む適当なPPj関数を決定する。
【0168】[S31] 初期暗号化部510、暗号化機
能部520、後暗号化部530により、ループ処理を行
う。なお、「ループ処理」の詳細については、拡張した
本発明の第3の実施例である図14と同様である。
【0169】[S41] ステップS31におけるループ
処理の終了判定を行う。ここで、ループ処理が終了した
場合には、ステップS51へ進み、終了していない場合
には、ステップS31へ処理帰還して同様の処理を繰り
返す。
【0170】[S51] ステップS31にて、ループ処
理が終了したので、後処理を行う。ここで、書き込みバ
ッファを暗号文Cとして、ファイルへ書き込む、あるい
は、必要ならストリームデータとして全てを出力する。
書き込み、あるいは出力が終了したら、バッファを削除
して終了する。
【0171】次に、本発明の暗号化処理を行った場合の
処理速度について、図16の実験結果を参照して説明す
る。図16は、本発明の暗号化装置により暗号化した場
合における処理速度を示す実験結果である。
【0172】図16において、縦軸は処理時間[秒]、
横軸は処理方式別を示している。また、横軸のCはTr
ipleDES、CopはTripleDES+LU
T、F1はTripleDESの高速化1、F2はTr
ipleDESの高速化2、F3は第1の実施例、FE
は第2〜第4の実施例である。この図によると、Cは4
40秒、Copは220秒、F1は35秒、F2は24
秒、F1は12秒、FEは4秒であり、PP関数を使っ
て最も高速に処理した場合での最大差が2桁にも及んで
いる。なお、比較のためにf関数はDESのものを用い
ており、35以降(F1より右側)は、PP関数の改善
等による高速化の限界を見極めたものである。FEにお
いて、数連のPPj関数変換を追加しても、また、P関
数自身やその総合連結数を鍵で可変にしても、それ自体
が高速な故に殆ど時間に差がない。さらに、本発明によ
って、ソフトウェアプロセッシングであっても数十MB
/sオーダーを達成でき、リアルタイム圧縮と同時に1
28/192/256bit鍵で暗号化しても強度と速
度を満たすことが可能である。
【0173】以上説明したように、初期処理関数により
1ブロック(Nビット)分のデータである平文Dを分割
し複数の分割データとして出力し、複数の分割データを
演算関数により暗号鍵と同じ大きさに拡大置換し分割拡
大データとして出力する。ここで、演算関数は、係数を
媒介することにより拡大置換処置を可変にする。その係
数は、媒介変数生成部により生成される。そして、非線
形暗号化ブロック処理部により、分割拡大データと暗号
鍵とを変数として非線形に暗号化し、暗号化した複数の
分割拡大暗号化データを出力する。この暗号鍵は、デー
タと論理演算し線形暗号化を行うための入力変数であ
る。さらに、後処理関数により、演算関数の逆関数を使
い分割拡大暗号化データを分割データと同じ大きさに縮
小置換し分割暗号化データとして出力し、分割データと
同じ大きさの分割暗号化データを、1ブロック分の暗号
化データに合成し暗号文Cとして出力する。ここで、逆
関数の演算関数は、係数を媒介することにより演算を可
変にする。
【0174】これにより、ループ処理を伴うビット置換
を、ループ処理を伴わない演算関数により行うことがで
きる。また、演算関数の構造を多重化することにより、
暗号解読強度を強くすることができる。
【0175】なお、上記の説明では、暗号化装置として
説明したが、同様のアルゴリズムにおいて鍵を逆順に入
力することにより、復号化装置にも適用できる。また、
上記の説明では、ソフトウェアプロセッシングとして説
明したが、部分的にハードウェアプロセッシングにも適
用できる。
【0176】
【発明の効果】以上説明したように、初期処理部によ
り、媒介変数生成部により生成される係数を用いて、複
数の分割データを演算関数により暗号鍵と同じ大きさに
拡大置換する。一方、後処理部により、媒介変数生成部
により生成される係数を用いて、演算関数の逆関数を使
い分割拡大暗号化データを分割データと同じ大きさに縮
小置換するようにしたので、ループ処理を伴うビット置
換を、ループ処理を伴わない演算関数により行うことが
でき、暗号化処理を高速に行うことが可能となる。
【0177】また非線形暗号化ブロック処理部により、
分割拡大データと暗号鍵とを変数として、演算関数によ
り非線形に暗号化し、暗号化した複数の中間分割暗号化
データを入力データとして、さらに同様の処理を繰り返
して多段出力するようにしたので、演算関数の構造を多
重化することができ、暗号解読強度を強くすることが可
能となる。
【0178】また、初期処理部により、媒介変数生成部
により生成される係数を用いて、複数の分割データを演
算関数により復号鍵と同じ大きさに拡大置換する。一
方、後処理部により、媒介変数生成部により生成される
係数を用いて、演算関数の逆関数を使い分割復号データ
を分割データと同じ大きさに縮小置換するようにしたの
で、ループ処理を伴うビット置換を、ループ処理を伴わ
ない演算関数により行うことができ、復号処理を高速に
行うことが可能となる。
【0179】また、非線形復号ブロック処理部により、
分割拡大データと復号鍵とを変数として、演算関数によ
り非線形に復号し、復号した複数の中間分割復号データ
を入力データとして、さらに同様の処理を繰り返して多
段出力するようにしたので、演算関数の構造を多重化す
ることができ、復号時における暗号解読強度を強くする
ことが可能となる。
【0180】さらに、初期処理部により、媒介変数生成
部により生成される係数を用いて、複数の分割データを
演算関数により暗号鍵/復号鍵と同じ大きさに拡大置換
する。一方、後処理部により、媒介変数生成部により生
成される係数を用いて、演算関数の逆関数を使い分割拡
大暗号化データ/分割拡大復号データを分割データと同
じ大きさに縮小置換するようにしたので、ループ処理を
伴うビット置換を、ループ処理を伴わない演算関数によ
り行うことができ、暗号化/復号処理を高速に行うこと
が可能となる。
【0181】また、非線形暗号化ブロック処理部/非線
形復号ブロック処理部により、分割データと暗号鍵/復
号鍵とを変数として、演算関数により非線形に暗号化/
復号し、暗号化/復号した複数の中間分割暗号化/中間
分割復号データを入力データとして、さらに同様の処理
を繰り返して多段出力するようにしたので、演算関数の
構造を多重化することができ、暗号解読強度を強くする
ことが可能となる。
【図面の簡単な説明】
【図1】本発明の暗号化装置の原理図である。
【図2】本発明のPP関数の構造を示すブロック図であ
る。
【図3】本発明のP関数の構造を示すブロック図であ
る。
【図4】本発明の拡張したP関数を示すブロック図であ
る。
【図5】本発明の暗号化装置の構造における第1の実施
例を示すブロック図である。
【図6】両関数結合型のフェイステル構造を示すブロッ
ク図である。
【図7】本発明の暗号化装置の構造における第2の実施
例を示すブロック図である。
【図8】本発明の暗号化装置の構造における第3の実施
例を示すブロック図である。
【図9】図8における拡張したPPj関数の構造を示す
ブロック図である。
【図10】本発明の暗号化装置の構造における第4の実
施例を示すブロック図である。
【図11】本発明の第1の実施例における暗号化処理の
基本動作を説明するフローチャートである。
【図12】本発明の第1の実施例における「ループ処
理」を説明するフローチャートである。
【図13】本発明の第2の実施例における「ループ処
理」を説明するフローチャートである。
【図14】本発明の第3の実施例における「ループ処
理」を説明するフローチャートである。
【図15】本発明の第4の実施例における暗号化処理の
基本動作を説明するフローチャートである。
【図16】本発明の暗号化装置により暗号化した場合に
おける処理速度を示す図(実験結果)である。
【図17】従来の共通鍵暗号方式の基本的な構造例を示
すブロック図である。
【図18】従来の共通鍵暗号方式における片関数結合型
のフェイステル構造を示すブロック図である。
【図19】従来の共通鍵暗号方式であるDESフェイス
テル構造を示すブロック図である。
【符号の説明】
1・・・暗号化装置、10・・・初期処理関数、20・
・・非線形暗号化ブロック処理部、30・・・後処理関
数、121・・・前置関数、122・・・P関数群、1
23・・・後置関数、200・・・暗号化装置、210
・・・初期処理関数、212・・・可逆バイゼクション
関数、220・・・フェイステルブロック処理部、22
0a・・・フェイステル構造、222a・・・交換関
数、230・・・後処理関数、240・・・可変係数処
理部、300・・・暗号化装置、310・・・初期暗号
化部、311・・・分岐関数、312・・・可逆バイゼ
クション関数、313・・・分岐逆関数、320・・・
暗号化機能部、330・・・後暗号化部、400・・・
暗号化装置、410・・・初期暗号化部、420・・・
暗号化機能部、430・・・後暗号化部、500・・・
暗号化装置、510・・・初期暗号化部、520・・・
暗号化機能部、530・・・後暗号化部

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 暗号化と復号に使用する共通の鍵によ
    り、暗号化を行う暗号化装置において、 データと論理演算し線形暗号化を行うための入力変数で
    ある暗号鍵と、 媒介変数として使用される係数を生成する媒介変数生成
    部と、 平文を分割し複数の分割データとして出力する分岐関数
    演算手段と、前記複数の分割データを所定の演算関数に
    より構成される可逆バイゼクション関数を用いて、前記
    暗号鍵と同じ大きさに拡大置換し分割拡大データとして
    出力する可逆バイゼクション関数演算手段とを有し、前
    記係数を媒介することにより前記可逆バイゼクション関
    数内部の前記演算関数、あるいは内部構造を可変にする
    初期処理部と、 前記分割拡大データと前記暗号鍵とを入力変数として非
    線形に暗号化し、暗号化した複数のデータを交換し分割
    拡大暗号化データとして出力する非線形暗号化ブロック
    処理部と、 前記演算関数の逆関数により、前記分割拡大暗号化デー
    タを前記分割データと同じ大きさに縮小置換し分割暗号
    化データとして出力する可逆バイゼクション逆関数演算
    手段と、前記分割暗号化データを合成し暗号文として出
    力する合成関数演算手段とを有し、前記係数を媒介する
    ことにより前記可逆バイゼクション逆関数内部の前記演
    算関数の逆関数、あるいは内部構造を可変にする後処理
    部と、 を有することを特徴とする暗号化装置。
  2. 【請求項2】 前記初期処理部の可逆バイゼクション関
    数は、前置関数と、複数の置換関数と、後置関数と、か
    ら構成されることを特徴とする請求項1記載の暗号化装
    置。
  3. 【請求項3】 前記後処理部の可逆バイゼクション逆関
    数は、後置関数の逆関数と、複数の置換関数の逆関数
    と、前置関数の逆関数と、から構成されることを特徴と
    する請求項1記載の暗号化装置。
  4. 【請求項4】 前記媒介変数生成部は、前記平文と前記
    暗号鍵とに依存する前記係数を生成することを特徴とす
    る請求項1記載の暗号化装置。
  5. 【請求項5】 前記媒介変数生成部は、前記暗号鍵とは
    別の暗号鍵を、前記係数として生成することを特徴とす
    る請求項1記載の暗号化装置。
  6. 【請求項6】 前記媒介変数生成部は、前記暗号鍵とは
    別の暗号鍵と前記平文とに依存する前記係数を生成する
    ことを特徴とする請求項1記載の暗号化装置。
  7. 【請求項7】 前記初期処理部は、前記暗号鍵を媒介す
    ることにより前記可逆バイゼクション関数内部の前記演
    算関数、あるいは内部構造を可変にすることを特徴とす
    る請求項1記載の暗号化装置。
  8. 【請求項8】 前記後処理部は、前記暗号鍵を媒介する
    ことにより前記可逆バイゼクション逆関数内部の前記演
    算関数の逆関数、あるいは内部構造を可変にすることを
    特徴とする請求項1記載の暗号化装置。
  9. 【請求項9】 前記平文は、64ビット毎にブロックと
    して区切り、さらに1ブロック毎に前記初期処理部へ入
    力されることを特徴とする請求項1記載の暗号化装置。
  10. 【請求項10】 前記暗号文は、64ビット毎に区切ら
    れた、1ブロック毎に前記後処理部から出力されること
    を特徴とする請求項1記載の暗号化装置。
  11. 【請求項11】 暗号化と復号に使用する共通の鍵によ
    り、復号化を行う復号装置において、 暗号化されたデータを復号するための入力変数である復
    号鍵と、 媒介変数として使用される係数を生成する媒介変数生成
    部と、 暗号文を分割し複数の分割データとして出力する分岐関
    数演算手段と、前記複数の分割データを所定の演算関数
    により構成される可逆バイゼクション関数を用いて、前
    記復号鍵と同じ大きさに拡大置換し分割拡大データとし
    て出力する可逆バイゼクション関数演算手段とを有し、
    前記係数を媒介することにより前記可逆バイゼクション
    関数内部の前記演算関数、あるいは内部構造を可変にす
    る初期処理部と、 前記分割拡大データと前記復号鍵とを入力変数として非
    線形に復号し、復号した複数のデータを交換し分割拡大
    復号データとして出力する非線形復号ブロック処理部
    と、 前記演算関数の逆関数により、前記分割拡大復号データ
    を前記分割データと同じ大きさに縮小置換し分割復号デ
    ータとして出力する可逆バイゼクション逆関数演算手段
    と、前記分割復号データを合成し平文として出力する合
    成関数演算手段とを有し、前記係数を媒介することによ
    り前記可逆バイゼクション逆関数内部の前記演算関数の
    逆関数、あるいは内部構造を可変にする後処理関数と、
    を有することを特徴とする復号装置。
  12. 【請求項12】 前記復号鍵は、前記暗号鍵と同一の共
    通鍵であることを特徴とする請求項11記載の復号装
    置。
  13. 【請求項13】 暗号化と復号を同一の共通鍵により行
    う暗号化/復号システムにおいて、 データと論理演算し線形暗号化を行うための入力変数で
    ある暗号鍵と、媒介変数として使用される係数を生成す
    る媒介変数生成部と、平文を分割し複数の分割データと
    して出力する分割関数演算手段と、前記複数の分割デー
    タを所定の演算関数により構成される可逆バイゼクショ
    ン関数を用いて、前記暗号鍵と同じ大きさに拡大置換し
    分割拡大データとして出力する可逆バイゼクション関数
    演算手段とを有し、前記係数を媒介することにより前記
    可逆バイゼクション関数内部の前記演算関数、あるいは
    内部構造を可変にする初期処理部と、前記分割拡大デー
    タと前記暗号鍵とを入力変数として非線形に暗号化し、
    暗号化した複数のデータを交換し分割拡大暗号化データ
    として出力する非線形暗号化ブロック処理部と、前記演
    算関数の逆関数により、前記分割拡大暗号化データを前
    記分割データと同じ大きさに縮小置換し分割暗号化デー
    タとして出力する可逆バイゼクション逆関数演算手段
    と、前記分割暗号化データを合成し暗号文として出力す
    る合成関数演算手段とを有し、前記係数を媒介すること
    により前記可逆バイゼクション逆関数内部の前記演算関
    数の逆関数、あるいは内部構造を可変にする後処理部
    と、を備えた暗号化装置と、 暗号化されたデータを復号する入力変数である復号鍵
    と、媒介変数として使用される係数を生成する媒介変数
    生成部と、前記暗号文を分割し複数の分割データとして
    出力する分岐関数演算手段と、前記複数の分割データを
    所定の演算関数により構成される可逆バイゼクション関
    数を用いて、前記復号鍵と同じ大きさに拡大置換し分割
    拡大データとして出力する可逆バイゼクション関数演算
    手段とを有し、前記係数を媒介することにより前記可逆
    バイゼクション関数内部の前記演算関数、あるいは内部
    構造を可変にする初期処理部と、前記分割拡大データと
    前記復号鍵とを入力変数として非線形に復号し、復号し
    た複数のデータを交換し分割拡大復号データとして出力
    する非線形復号ブロック処理部と、前記演算関数の逆関
    数により、前記分割拡大復号データを前記分割データと
    同じ大きさに縮小置換し分割復号データとして出力する
    可逆バイゼクション逆関数演算手段と、前記分割復号デ
    ータを合成し元の平文として出力する合成関数演算手段
    とを有し、前記係数を媒介することにより前記可逆バイ
    ゼクション逆関数内部の前記演算関数の逆関数、あるい
    は内部構造を可変にする後処理部と、を備えた復号装置
    と、 を有することを特徴とする暗号化/復号システム。
  14. 【請求項14】 暗号化と復号に使用する共通の鍵によ
    り、暗号化を行う暗号化方法において、 各設定に対して初期化を行うステップと、 分岐関数により平文である1ブロックのデータを分割
    し、さらに2つの分割データとして出力し、可逆バイゼ
    クション関数により入力データである2つの分割データ
    を暗号鍵と同じ大きさに拡大置換し分割拡大データとし
    て出力して、非線形暗号化ブロックにより入力データで
    ある2つの分割拡大データを暗号化して2つの分割拡大
    暗号化データとして出力し、また非線形暗号化ブロック
    により前記2つの分割拡大暗号化データを交換して出力
    し、可逆バイゼクション逆関数により交換済データであ
    る2つの分割拡大暗号化データを元の分割データと同じ
    大きさに縮小置換し分割暗号化データとして出力し、分
    岐逆関数により縮小済データである2つの分割暗号化デ
    ータを合成して、1つの暗号化された1ブロックの暗号
    化データとしてバッファに書き込む、あるいはストリー
    ムデータとして出力する、ブロック暗号化処理を行うス
    テップと、 前記ブロック暗号化処理を行うステップにおける繰り返
    しを、終了判定あるいは継続判定するステップと、 前記暗号化データが格納されている書き込みバッファを
    暗号文として、ファイルへ書き込む、あるいはストリー
    ムデータとして全てを出力する、後処理を行うステップ
    と、 を有することを特徴とする暗号化方法。
  15. 【請求項15】 暗号化と復号に使用する共通の鍵によ
    り、復号を行う復号方法において、 各設定に対して初期化を行うステップと、 分岐関数により暗号文である1ブロックのデータを分割
    し、さらに2つの分割データとして出力し、可逆バイゼ
    クション関数により入力データである2つの分割データ
    を復号鍵と同じ大きさに拡大置換し分割拡大データとし
    て出力して、非線形復号ブロックにより入力データであ
    る2つの分割拡大データを復号して2つの分割拡大復号
    データとして出力し、また非線形復号ブロックにより前
    記2つの分割拡大復号データを交換して出力し、可逆バ
    イゼクション逆関数により交換済データである2つの分
    割拡大復号データを元の分割データと同じ大きさに縮小
    置換し分割復号データとして出力し、分岐逆関数により
    縮小済データである2つの分割復号データを合成して、
    1つの復号された1ブロックの復号データとしてバッフ
    ァに書き込む、あるいはストリームデータとして出力す
    る、ブロック復号処理を行うステップと、 前記ブロック復号処理を行うステップにおける繰り返し
    を、終了判定あるいは継続判定するステップと、 前記復号データが格納されている書き込みバッファを平
    文として、ファイルへ書き込む、あるいはストリームデ
    ータとして全てを出力する、後処理を行うステップと、 を有することを特徴とする復号方法。
  16. 【請求項16】 暗号化と復号を同一の共通鍵により行
    う暗号化/復号方法において、 各設定に対して初期化を行うステップと、 分岐関数により平文である1ブロックのデータを分割
    し、さらに2つの分割データとして出力し、可逆バイゼ
    クション関数により入力データである2つの分割データ
    を暗号鍵と同じ大きさに拡大置換し分割拡大データとし
    て出力して、非線形暗号化ブロックにより入力データで
    ある2つの分割拡大データを暗号化して2つの分割拡大
    暗号化データとして出力し、また非線形暗号化ブロック
    により前記2つの分割拡大暗号化データを交換して出力
    し、可逆バイゼクション逆関数により交換済データであ
    る2つの分割拡大暗号化データを元の分割データと同じ
    大きさに縮小置換し分割暗号化データとして出力し、分
    岐逆関数により縮小済データである2つの分割暗号化デ
    ータを合成して、1つの暗号化された1ブロックの暗号
    化データとしてバッファに書き込む、あるいはストリー
    ムデータとして出力する、ブロック暗号化処理を行うス
    テップと、 前記ブロック暗号化処理を行うステップにおける繰り返
    しを、終了判定あるいは継続判定するステップと、 前記暗号化データが格納されている書き込みバッファを
    暗号文として、ファイルへ書き込む、あるいはストリー
    ムデータとして全てを出力する、後処理を行うステップ
    と、からなる暗号化方法、 各設定に対して初期化を行うステップと、 分岐関数により暗号文である1ブロックのデータを分割
    し、さらに2つの分割データとして出力し、可逆バイゼ
    クション関数により入力データである2つの分割データ
    を復号鍵と同じ大きさに拡大置換し分割拡大データとし
    て出力して、非線形復号ブロックにより入力データであ
    る2つの分割拡大データを復号して2つの分割拡大復号
    データとして出力し、可逆バイゼクション逆関数により
    交換済データである2つの分割拡大復号データを元の分
    割データと同じ大きさに縮小置換し分割復号データとし
    て出力し、分岐逆関数により縮小済データである2つの
    分割復号データを合成して、1つの復号された1ブロッ
    クの復号データとしてバッファに書き込む、あるいはス
    トリームデータとして出力する、ブロック復号処理を行
    うステップと、 前記ブロック復号処理を行うステップにおける繰り返し
    を、終了判定あるいは継続判定するステップと、 前記復号データが格納されている書き込みバッファを平
    文として、ファイルへ書き込む、あるいはストリームデ
    ータとして全てを出力する、後処理を行うステップと、
    からなる復号方法、 を有することを特徴とする暗号化/復号方法。
  17. 【請求項17】 暗号化と復号を同一の共通鍵により行
    う処理をコンピュータに機能させるプログラムにおい
    て、 コンピュータを、 各設定に対して初期化を行う手段、 分岐関数により平文である1ブロックのデータを分割
    し、さらに2つの分割データとして出力し、可逆バイゼ
    クション関数により入力データである2つの分割データ
    を暗号鍵と同じ大きさに拡大置換し分割拡大データとし
    て出力して、非線形暗号化ブロックにより入力データで
    ある2つの分割拡大データを暗号化して2つの分割拡大
    暗号化データとして出力し、また非線形暗号化ブロック
    により前記2つの分割拡大暗号化データを交換して出力
    し、可逆バイゼクション逆関数により交換済データであ
    る2つの分割拡大暗号化データを元の分割データと同じ
    大きさに縮小置換し分割暗号化データとして出力し、分
    岐逆関数により縮小済データである2つの分割暗号化デ
    ータを合成して、1つの暗号化された1ブロックの暗号
    化データとしてバッファに書き込む、あるいはストリー
    ムデータとして出力する、ブロック暗号化処理を行う手
    段、 前記ブロック暗号化処理を行う手段における繰り返し
    を、終了判定あるいは継続判定する手段、 前記暗号化データが格納されている書き込みバッファを
    暗号文として、ファイルへ書き込む、あるいはストリー
    ムデータとして全てを出力する、後処理を行う手段、か
    らなる暗号化機能、 各設定に対して初期化を行う手段、 分岐関数により暗号文である1ブロックのデータを分割
    し、さらに2つの分割データとして出力し、可逆バイゼ
    クション関数により入力データである2つの分割データ
    を復号鍵と同じ大きさに拡大置換し分割拡大データとし
    て出力して、非線形復号ブロックにより入力データであ
    る2つの分割拡大データを復号して2つの分割拡大復号
    データとして出力し、可逆バイゼクション逆関数により
    交換済データである2つの分割拡大復号データを元の分
    割データと同じ大きさに縮小置換し分割復号データとし
    て出力し、分岐逆関数により縮小済データである2つの
    分割復号データを合成して、1つの復号された1ブロッ
    クの復号データとしてバッファに書き込む、あるいはス
    トリームデータとして出力する、ブロック復号処理を行
    う手段、 前記ブロック復号処理を行う手段における繰り返しを、
    終了判定あるいは継続判定する手段、 前記復号データが格納されている書き込みバッファを平
    文として、ファイルへ書き込む、あるいはストリームデ
    ータとして全てを出力する、後処理を行う手段、からな
    る復号機能、 として機能させるプログラム。
JP2002042019A 2002-02-19 2002-02-19 暗号化装置および暗号化方法 Pending JP2003241656A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002042019A JP2003241656A (ja) 2002-02-19 2002-02-19 暗号化装置および暗号化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002042019A JP2003241656A (ja) 2002-02-19 2002-02-19 暗号化装置および暗号化方法

Publications (1)

Publication Number Publication Date
JP2003241656A true JP2003241656A (ja) 2003-08-29

Family

ID=27782265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002042019A Pending JP2003241656A (ja) 2002-02-19 2002-02-19 暗号化装置および暗号化方法

Country Status (1)

Country Link
JP (1) JP2003241656A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006064763A1 (ja) * 2004-12-17 2006-06-22 Nec Corporation 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラム
WO2009087972A1 (ja) * 2008-01-09 2009-07-16 Nec Corporation データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
WO2012141189A1 (ja) * 2011-04-11 2012-10-18 日本電気株式会社 暗号化方法、暗号化装置および暗号化プログラム
WO2013150880A1 (ja) 2012-04-02 2013-10-10 学校法人東京理科大学 暗号化装置、復号化装置、暗号化方法、復号化方法、及びプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006064763A1 (ja) * 2004-12-17 2006-06-22 Nec Corporation 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラム
WO2009087972A1 (ja) * 2008-01-09 2009-07-16 Nec Corporation データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
WO2012141189A1 (ja) * 2011-04-11 2012-10-18 日本電気株式会社 暗号化方法、暗号化装置および暗号化プログラム
JP6052166B2 (ja) * 2011-04-11 2016-12-27 日本電気株式会社 暗号化方法、暗号化装置および暗号化プログラム
WO2013150880A1 (ja) 2012-04-02 2013-10-10 学校法人東京理科大学 暗号化装置、復号化装置、暗号化方法、復号化方法、及びプログラム
US9467286B2 (en) 2012-04-02 2016-10-11 Crypto Basic Corporation Encryption device, decryption device, encryption method, decryption method, and program

Similar Documents

Publication Publication Date Title
JP4961909B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
TWI402675B (zh) 低等待時間的區塊密碼術
US8996871B2 (en) Method and system for generating ciphertext and message authentication codes utilizing shared hardware
Satoh et al. A compact Rijndael hardware architecture with S-box optimization
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
US8625794B2 (en) White-box cryptographic system with configurable key using intermediate data modification
JP4905000B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN101401348B (zh) 用于使密码函数模糊的方法和系统
US20080084996A1 (en) Authenticated encryption method and apparatus
WO2010055658A1 (ja) コンテンツ復号処理装置、コンテンツ復号処理方法及び集積回路
JP2005505069A (ja) メモリ暗号化
JP5141558B2 (ja) 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体
JP4793268B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラム
CN110169010B (zh) 同态运算装置、加密系统和计算机能读取的存储介质
US20070183594A1 (en) Data processing apparatus for performing a cryptographic method
JP2003241656A (ja) 暗号化装置および暗号化方法
Anusha et al. Symmetric key algorithm in computer security: a review
JP5113630B2 (ja) 秘密分散方法、プログラム、及び装置
JP6881111B2 (ja) 暗号化データ生成装置、復号データ生成装置、追加データ付き認証暗号システム、その方法、及びプログラム
JP5354914B2 (ja) 暗号処理装置及び復号処理装置及びプログラム
JP2003241657A (ja) 暗号化装置および暗号化方法
JP2007500376A (ja) 鍵拡大機能の低メモリハードウェア実施のための方法および装置
JP2003241658A (ja) 暗号化装置および暗号化方法
JP2011041102A (ja) 圧縮暗号化装置、復号伸長装置、それらの方法及びプログラム
JP5557707B2 (ja) 暗号化情報生成装置及びそのプログラム、秘密鍵生成装置及びそのプログラム、配信用コンテンツ生成装置及びそのプログラム、コンテンツ復号装置及びそのプログラム、並びに、ユーザ特定装置及びそのプログラム