JPH06342258A - ブロック暗号作成装置 - Google Patents
ブロック暗号作成装置Info
- Publication number
- JPH06342258A JPH06342258A JP5131877A JP13187793A JPH06342258A JP H06342258 A JPH06342258 A JP H06342258A JP 5131877 A JP5131877 A JP 5131877A JP 13187793 A JP13187793 A JP 13187793A JP H06342258 A JPH06342258 A JP H06342258A
- Authority
- JP
- Japan
- Prior art keywords
- bits
- bit
- function
- value
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
る。 【構成】 ・鍵に依存する関数によるデータ撹乱部を構
成する。 ・非線形関数によるデータ撹乱部を構成する。 ・行列との積によるデータ撹乱部を構成する。 ・上記のデータ撹乱部の組み合わせによりブロック暗号
を構成する。
Description
にディジタル化された情報用のブロック暗号作成及び復
号装置に関する。
いて)近年、ディジタル計算機及びその理論や集積回路
等の発達に伴い、S/N比が高くとれる上に送信量が増
大するためディジタル通信技術が急速に普及してきてい
る。さて、このディジタル通信においては、通例一般公
衆に開放されたディジタル通信回線網が使用される。こ
のため、通信に際して、第三者による盗聴、盗聴後の改
変や詐称あるいは発信者による第三者への誤送信を完全
に防止することは困難である。そこで、発信者は通信情
報を所定の手順で秘密化(特許請求の範囲にいう各種の
関数による演算を施す。)した上で送信し、受信者はい
わば秘密化と逆の手順で、受信した情報を複号(解読)
した上で本来の情報を入手することが広く採用されてい
る。そして、この際の秘密化や複号にはディジタル通信
技術の特性を失わず、かつ秘密性、実行速度、経済性に
優れる以下のような手段が採用されている。送信すべ
き0と1から構成される情報を1定の個数づつ一まとめ
にした上で2進数で表現された数値(特許請求の範囲に
いう入力値Aに相応する。)とみなし、その上で秘密鍵
や共有鍵といわれる送信者、受信者のみが知ることがで
きる一定の数値(特許請求の範囲にいう鍵Kに相応す
る。)と足し算(非線形演算)や引き算をしたり排他的
論理和をとったりする(線形演算)等の所定の演算をな
した上で送信し、受信者は逆の演算をほどこすことによ
り数値化された本来の情報を得る。送信すべき0と1
から構成されるビット情報を2進数で表現された秘密鍵
や共有鍵の各桁の値(0又は1)に応じての一定の手順
で入れ換え(置換演算、行列演算)た上で送信し、受信
者は受信した情報を逆の手順で入れ換えて本来の送信情
報を得る等種々のものが採用されている。そして、これ
らの場合には、単に秘密性が高いだけでなく鍵の極く一
部でも不明であるならば全情報が復号されないこと、具
体的には意味のある情報(文章や映像)とならないこ
と、という要請も充たすものとされている。次にまた、
これらの秘密通信技術は、人工衛星を利用した有料放送
等にも流用されだしている。この場合には、受信料を支
払った受信者にのみいわば秘密化と逆の手順をなす回路
を組み込んだ鍵が渡され、この鍵がテレビジョン受信機
に組み込まれることとなる。そして、放送者の放送内容
の秘密化と鍵は一定期間毎に変換され、これにより一定
期間の通信料を払い込んだ受信者のみがその期間だけ有
料放送を聴取しえることとなる。更にまた、送信者の認
署(署名通信)にもこの技術は応用されている。但し、
これらの具体的、一般的な内容については、例えば池野
信一、小山謙二共著電子通信学会刊 (1986年)
「現代暗号理論」等に記載され、また関連の技術や秘密
化や複号の具体的手法については本願出願人が別途例え
ば、特願平3−318816号、特願平3−19914
8号、特願平4−145964号、特願平4−2639
14号、特願平4−168007号等にて公開している
技術であるため、それらの説明は省略する。
おける秘密化及び複号に関する技術のうち、ブロック暗
号といわれているものに関するため、このブロック暗号
について説明する。なお、このブロック暗号について
も、一般的な理論や実際の回路構成(特許請求の範囲に
いう各種の関数の内容に相応する。)は、例えば前掲の
「現代暗号理論」の第3章及び第4章を初めとして多数
の文献(前掲「現代暗号理論」の270頁から272頁
にそのリストが掲載されている)に記載されており、ま
た米国等ではDESという名称で銀行間通信等に実際に
採用されている技術であるため、本明細書での説明は必
要最小限度にとどめる。
を送信するとき、送信側は第三者が容易にその情報を得
たり、得た上でこれを悪意に改ざんして送信したりでき
ないように、情報を撹拌することにより秘密化して送信
し、受信側ではこの撹拌された情報を元に戻すことが行
なわれる。そして、この際用いられるのが、秘密鍵通信
方式の一つであるブロック暗号といわれているものであ
る。 (暗号化及び復号の基本例)以下、このブロック暗号装
置の基本について説明する。
る。本図において、(a)は4ビットの巡回器である。
本巡回器に、4ビット毎に区切られた入力信号を流すこ
とにより、4ビットを単位として1ビットづつ右に巡回
した出力信号が得られる。ちなみに(a)では、入力信
号A(1011)が出力信号B(1101)になってい
る。そして複号は、出力信号を逆にこの巡回器の出力側
から入力した上で入力側から取り出すことによりなされ
る。(このため、本巡回器による信号の秘密化及び複号
は各々、1ビットづつ右にずらす演算を施すこと、その
逆の演算を施すことによりなされ、そして巡回器そのも
のが置換という若しくは置換をなす一種の関数とみなせ
る。)ただし、単に巡回器を通したままであると、この
信号を盗聴した第三者により容易に解読(複号)されて
しまうため、これに数値情報たる鍵との演算をなして秘
密化した上で送信がなされる。図3の(b)に、この様
子を示す。本(b)において、Kは鍵といわれる4ビッ
トの数値であり、この各ビットと4ビットに区切られた
入力信号の対応するビットとが桁上げなしの足し算とい
う演算をなされた上で、1ビットづつ右に巡回されるこ
とにより秘密化されている。すなわち、(b)では入力
信号A(1011)が鍵K(1101)の各ビットと桁
上げなしの足し算をされた上で(1+1、1+0、0+
1、1+1)=(0、1、1、0)となり、更に1ビッ
トづつ右に巡回され出力信号B(0、0、1、1)とな
っている。この場合の複合は、出力信号BからKに対応
するビット毎に桁の繰り下げなしに引き算をなした上
で、先の(a)と同じく巡回器を逆に通すことによりな
される。ここでビット情報の攪乱に巡回器が用いられる
のは、秘密化と復号を同じハードで高速でなしえる上に
両方の処理速度がほぼ同じ、しかも構造、原理が簡単な
ためである。また、桁の上げ下げなしの足し算、引き算
をするのは、そのためのビットを省略したことによる。
びその基本的操作の中心たる演算、この場合には置換、
桁上げなしの足し算及び桁繰り下げなしの引き算の回路
構成、あるいは言葉を換えていうならば関数の具体的内
容を説明したものであり、実際にはこのような単純な操
作のみではやはり容易に解読されてしまう。このため、
秘密鍵や入力信号の一区切りの単位たるビット数を64
ビット、128ビット等もっと大きくし、秘密鍵と入力
信号との演算内容(特許請求の範囲に記載した分割の仕
方をも含めての各関数の内容)はずっと複雑なもの、例
えば秘密鍵を複雑に分割した上で幾度か使用するとされ
るだけでなく、更にこの送信すべきディジタル情報を一
つの若しくは同一のデータ撹乱部に何回か繰り返し通
し、複号は逆方向に同じ回数繰り返し通すという操作が
なされる。なお、ここにデータ撹乱部とは、先の巡回器
や鍵を回路的に複雑に組み合わせたものであり、場合に
よっては大型計算機で直接数学的な演算をなすようにし
てもよいものである。さて、この繰り返し回数は多いほ
ど安全性は向上するが、その一方何回も繰り返すため暗
号化、復号の速度が遅くなる。更にまた、桁を増したり
演算内容を高度、複雑なものとしたりするのも通信効
率、通信速度の面から一定の限度がある。このため、高
速安全なブロック暗号とするには、これらの要素を考慮
しつつデータ撹乱部を如何に強固につくるか、あるいは
秘密性を向上させたものとするかが要点となる。
として実際に我が国で考えられていた技術を説明する。 (本願発明が関係するブロック暗号についての従来例)
従来例として有名なものでは、さる国内大手通信網メー
カーにより開発されたデータ高速秘密化用算法(Fast D
ate Encipherment Algorithm、以下、略称のFEALを
使用する。)のブロック暗号がある。図2は、このデー
タ撹乱部を示す。
で、入力64ビットの右半分の32ビットをデータ撹乱
部に入力して暗号化した結果と入力の左半分とのビット
毎の排他的論理和を出力の左半分とし、入力の左半分を
出力の右半分とするという構成で、この操作を何回か繰
り返して用いる。なお、ここに入力ビットを左右均等に
分けるのは、暗号化と復号にハード的に同一の構成を採
用しえるだけでなく、ハードの手配の面からも暗号化と
復号に要する時間がほぼ同じとなる面からも好ましいか
らである。
る。 [1.鍵と入力の分割]16ビットの鍵をK、32ビッ
トの入力をAとする。Kを8ビットづつの2ブロックK
1 、K2 に分け、Aを8ビットづつの4ブロックA1 、
A2 、A3 、A 4 に分ける。 [2.鍵と入力の関与]K1 とA2 のビット毎の排他的
論理和をとったものをB1 とし、K2 とA3 のビット毎
の排他的論理和をとったものをB2 とする。 [3.入力の撹乱部]B1 とA1 とのビット毎の排他的
論理和を取ったものをD1 とし、B2 とA4とのビット
毎の排他的論理和をとったものをD2 とし、32ビット
の出力Cを4ブロックC1 、C2 、C3 、C4 に分け
て、D1 とD2 と1を256(=28 )を法として(m
od256)加えたものを出力C3 とし、C3 とD1 と
を256を法として加えたものを出力C2 とし、C2 と
A1 と1を256を法として加えたものを出力C1 と
し、C3 とA4 を256を法として加えたものを出力C
4 とする。
り、すなわち比較的少ないビット数、排他的論理和とい
う比較的簡単な論理及び回路構成で済む演算若しくは演
算器により、64ビットを単位とする情報の送受信に高
度の秘密性が得られる。なお、ここに256(=64×
22)を法とする演算としたのは、ビット攪乱が生じ易い
からである。
ロック暗号は高速ブロック暗号として4段の繰り返しで
充分な安全性が保たれる、すなわち解読困難として開発
されたが、近年提出された差分攻撃といわれる解読の手
法により、安全性を保つには32段以上の繰り返しが必
要となった。差分攻撃については、イ.ビハ、エイ.シ
ャミル共著 “DES類似の秘密通信における秘密の差
分的解析”90年の秘密通信研究会議における進歩、計
算機科学における講議冊子537(1990年)2〜2
1頁(以上は意訳){E. Biham and A. Shamir, “Diff
erential Cryptanalysis of DES-likeCryptosysytems
”, Advances in Cryptology - Proceedings of CRYPT
O'90, Lecture Notes in Computer Science, 537(199
0), p2-21}に詳しい。差分攻撃は(繰り返し段数−
2)段目の出力差分(入力信号と出力信号との一種の相
関)がわかることを用いる攻撃であるため、これに強く
なるには(解読され難くするには)、少なくとも(繰り
返し段数−2)段目で実行ビット数の飽和及びコンプリ
ート性を満たす必要がある。ところで、このためには、
差分攻撃は最終の3段がないものとみなされるため、n
−3段でも安全、ひいては充分に実行ビット数が飽和し
かつコンプリート性が充たされなければならない。何と
なれば、実行ビットの数の飽和とコンプリート性を満た
す場合には、何等かの手段により入力信号と出力信号双
方の若しくは撹拌部をブラックボックスとした形でのブ
ロック暗号装置を入手した第三者が、この内部の構造
(ブロック分割、ビットの巡回、鍵の具体的な様子、内
容、値)を入力信号と出力信号の差分の関係により知ろ
うとしても、第1に関係するビットの桁数が増大するこ
と、第2に差分があらわれ難くなることのためそれが困
難となるからである。しかしながら、FEALの場合、
実行ビット数が飽和しかつコンプリート性を満たすため
には繰り返し回数を増やす必要があり、ひいては実行
(秘密化、復号)速度の低下をもたらす。その一方、4
段のままでは最終の3段をのぞいた1段のみではこの要
請を充たせないため差分攻撃により解読される危険性が
ある。
ト性とは、以下のことを言う。 実行ビットの数飽和 出力平文の差分に影響を与える鍵のビット数を実行ビッ
ト数という。出力の各ビットの実行ビット数が鍵のビッ
ト数に一致するとき実行ビット数は飽和しているとい
う。(この場合、出力平文の差分に影響を与えるのは鍵
の全ビットとなるため、鍵を平文の秘密化に最も有効に
利用しえ、また出力平文に影響する鍵の桁数が多いこと
となる。) コンプリート性 入力の全ビットが出力の各ビット生成に関与していると
き、コンプリート性をもつという。(この場合、出力平
文と入力との関係に関連するビット数が増大し、両者の
関係をもとめるのが困難となる。) 以上説明してきたように、従来考えられてきたブロック
暗号では差分攻撃を受け易いため、デジタル化された情
報を第三者が容易にその情報を得たり改ざんしたりする
ことができないようにするためには、繰り返し回数を多
くする必要がある。ひいては、公開通信網を利用しての
高速通信に際しての秘密化と複号が困難である。具体的
には、ディジタル公開通信網を使用しての通信の安全性
が損なわれ、また料金を納付した者のみへ鍵を組み込ん
だ復号装置を貸与しての有料秘密放送等は、事業そのも
のが成り立たなくなるおそれさえ生じる。
なブロック暗号を提供することを目的としてなされたも
のである。
め、請求項1の発明においては、外部入力をnビット毎
に区切って入力値Aとする信号入力部と、前記信号入力
部により得られた各入力値Aを最上桁から順に各l1 ビ
ット、l2 ビット、…、ls ビット(ここに、l 1 +l
2 +…+ls =n)のs個のブロックA1 、A2 、…、
As に分割する入力値分割部と、あらかじめ定められた
値であるnビットの鍵Kを最上桁から順に各l1 ビッ
ト、l2 ビット、…、ls ビットのs個のブロック
K1 、K2 、…、Ks に分割する鍵分割部と、前記入力
値分割部からの出力たる各Ai (ここに、i=1,…,
s)をφi (Ai )に移すs個のli ビットからli ビ
ットへの関数φi を有するφ関数部と、第一中間値Bと
してその各構成要素Bi (ここに、B1 +…+Bs =
B)をBi =Φi (φi (Ai )、Ki )の演算により
もとめるs個のli ×li ビットからli ビットへの関
数Φi を有するΦ関数部と、あらかじめ定められた値で
あるnビットの鍵Kをg(K)に移すnビットからnビ
ットへの関数gを有するg関数部と、第一中間値Bを各
m1 ビット、m2 ビット…、mt ビット(ここに、m1
+m2 …+mt =n、かつtはsとは独立に設定され
る。)のt個のブロックB1 、B2 、…、Bt に分割す
る第一中間値分割部と、前記g関数部の出力結果g
(K)を各m1 ビット、m2 ビット、…、mt ビットの
t個のブロックg(K)1 、g(K)2 、…、g(K)
t に分割するg(K)分割部と、t個のnビットからn
ビットへの関数fi (i=1,…,t)を有し、f
i (g(K))と第一中間値Bの各Bi とのビット毎の
論理積を求め、その結果の全ビットの排他的論理和を取
った値zi を求めるz演算部と、第二中間値Cとして、
その各構成要素Ci (i=1,…,t)を、前記zi と
前記g(K)i の反転との各ビット毎の論理積を求めこ
れらと前記Bi とのビット毎の排他的論理和を取ったも
のをCi とすることによりもとめるC計算部と、第三中
間値DをD=φ(C)の演算によりもとめるlビットか
らlビットへの関数φを有するD計算部と、あらかじめ
定められた値であるnビットの鍵Kをh(K)(ここに
h(K)=g(K))に移すnビットからnビットへの
関数hを有するh関数部と、第三中間値Dを各l1 ビッ
ト、l2 ビット、…、ls ビットのs個のブロック
D1 、D2 、…、Ds (ここに、D1 +…+Ds =D)
に分割する第三中間値分割部と、前記h関数部の出力結
果h(K)を各l1 ビット、l2 ビット、…、ls ビッ
トのs個のブロックh(K)1 、h(K)2 …、h
(K)s (ここに、h(K)1 +…+h(K)s =h
(K))に分割するh(K)分割部と、第四中間値Eと
して、その各構成要素Ei (ここに、E1 +…+Es =
E)をEi=Φi (h(K)i 、Di )の演算によりも
とめるli ×li ビットからli ビットへの関数Φi を
有するE計算部と、s個のnビットからnビットへの関
数f i (i=1,…,s)を有し、各fi (Ei )を出
力信号として出力する暗号出力部とを有することを特徴
とするブロック暗号装置としている。
及び前記E計算部におけるli ×l i ビットからli ビ
ットへの関数Φi ,…,Φs は、Φi がli ビットの入
力に関する値Ai =[a0 , …,ali-1]とKi =[k
0,…, kli-1]を最上位ビットの繰り上がりは考えない
で加えた値を出力する関数であることを特徴とする請求
項1記載のブロック暗号作成装置としている。
におけるli ビットからli ビットへの関数φi ,…,
φs は、φi がli ビットの入力に関する値Ai =
[a0, …,ali-1]をiビット左若しくは右巡回シフトさ
せた値を出力する関数、 φi (A)=[ai ,…,ai-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置としている。
におけるli ビットからli ビットへの関数φ1 ,…,
φs は、li ビットの前記鍵Ki =[k0,…, kli-1]
に依存して求められることを特徴とする請求項1記載の
ブロック暗号作成装置としている。請求項5の発明にお
いては、前記z演算部におけるnビットからnビットへ
の関数f1 ,…,ft は、fi がnビットの入力に関す
る値A=[a0 ,…,an- 1 ]をiビット前記各関数φ
i と同じ向きで左若しくは右巡回シフトさせた値を出力
する関数、 fi (A)=[ai ,…,ai-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置としている請求項6の発明においては、前記z演
算部におけるnビットからnビットへの関数f1 ,…,
ft は、nビットの入力に関する値A=[a0 ,…,a
n-1 ]に依存して求められることを特徴とする請求項1
記載のブロック暗号作成装置としている。
におけるnビットからnビットへの関数gは、gがnビ
ットの入力に関する値A=[a0 ,…,an-1 ]をiビ
ット前記φi と逆向きで右若しくは左巡回シフトさせた
値を出力する関数、 g(A)=[an-i ,…,an-i-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置としている。
におけるnビットからnビットへの関数hは、hがnビ
ットの入力に関する値A=[a0 ,…,an-1 ]を前記
φiと逆向きでiビット右若しくは左巡回シフトさせた
値を出力する関数、 h(A)=[an-i ,…,an-i-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置としている。
におけるnビットからnビットへの関数ψは、ψがnビ
ットの入力に関する値C=[c0 ,…,cn-1 ]を置換
させた後前記φi と同じ向きにiビット左若しくは右巡
回シフトさせた値とCとをビット毎の排他的論理和をと
った値を出力する関数であることを特徴とする請求項1
記載のブロック暗号作成装置としている。
信号入力部は、外部からブロック信号装置へ入力されて
いる信号をnビットを一区切りとして区切った上で入力
値Aとする。入力値分割部は、入力値Aを最上桁から順
に各l1 ビット、l2 ビット…、l s ビットのs個のブ
ロックA1 、A2 、…As に分割する(ここに、l1 +
l2+…+ls =nである)。
順に各l1 ビット、l2 ビット、…、ls ビットのs個
のブロックK1 、K2 、…、Ks に分割する。φ関数部
は、前記各Ai をli ビットからli ビットへ移す関数
φi により各li ビットからなるs個のブロックφ
i (Ai )に移す(ここに、i=1、2、…、sであ
る)。
るBi を前記φi (Ai )とKi をli ×li ビットか
らli ビットへ移すs個の関数Φi を作用させることに
よりもとめる。ここに、B1 +B2 +…+Bs =Bとな
る。g関数部は、前記nビットの鍵Kにnビットからn
ビットへ移す関数gを作用させることにより、g(K)
もとめる。
を、各m1 ビット、m2 ビット、…m t ビットのt個の
ブロックB1 、B2 …、Bt に分割する。なお、ここに
tは前記sとは独立に任意に選定され、また、B1 +…
+Bs =Bである。g(K)分割部は、前記g関数部の
出力g(K)を各m1 ビット、m2 ビット…、mt ビッ
トのt個のブロックg(K)1 、g(K)2 、…、g
(K)t に分割する。
への関数fi (ここに、i=1、2、…、t)を有し、
合計t個のfi (g(K))をもとめた上でこれらと前
記第一中間値Bの各Bi とのビット毎の論理積を求め、
その結果の全ビットの排他的論理和を取った値zi を求
める。C計算部は、第二中間値Cの各構成要素たるCi
を前記zi と前記g(K)iの反転との各ビット毎の論
理積を求め、これらと前記第一中間値Bの各Bi とのビ
ット毎の排他的論理和を取ることによりもとめる。ここ
に、C1 +C2 +…+Ct =Cとなる。
値Dをもとめる。h関数部は、nビットからnビットへ
の関数hを作用させることにより前記Kをh(K)に移
す。第三中間値分割部は、第三中間値Dを各l1 ビッ
ト、l2 ビット…ls ビットのs個のブロックD1 、D
2 、…、Ds に分割する(ここに、D=D1 +D2 +…
+Ds である)。
(n)を各l1 ビット、l2 ビット…、ls ビットのs
個のブロックh(K)1 、h(K)2 …、h(K)s に
分割する。E計算部は、第四中間値Eの各構成要素Ei
を前記h(K)i と元気Di に前記関数Φi を作用させ
Ei =Φi (h(K)i 、Di )の演算をなすことによ
り求める。
…+Es =Eとなる。暗号出力部は、前記各Ei に前記
各関数fi を作用させて、fi (Ei )を出力信号とし
て出力する。請求項2の発明においては、前記li ×l
i ビットからli ビットへの関数Φ 1 ,…,Φs につい
ての操作は、iを添え字として、Φi がli ビットの入
力に関する値(ここにいう入力に関する値とは、入力値
Aを分割、撹乱あるいは鍵との演算をなしているため厳
密には入力値そのものとはいいがたいからである。)A
i =[a0, …,ali-1]とKi =[k0,…, kli-1]を最
上位ビットの繰り上がりは考えないで加えた値を出力す
る関数となる。その上で請求項1記載のブロック暗号作
成がなされる。
トからli ビットへの関数φ1 ,…,φs は、φi がl
i ビット入力値Ai =[a0, …,ali-1]をiビット左若
しくは右巡回シフトさせた値を出力する関数、 φi (A)=[ai ,…,ai-1 ] となる。その上で請求項1記載のブロック暗号作成がな
される。
前記li ビットからli ビットへの関数φ1 ,…,φs
は、li ビットの前記鍵Ki =[k0,…, kli-1]に依
存して(Kの値如何によって内容が変化して)求められ
る、その上で請求項1記載のブロック暗号作成がなされ
る。請求項5の発明においては、前記nビットからnビ
ットへの関数f1 ,…,f t についての操作は、前記f
i がnビットの入力に関する値A=[a0 ,…,
a n-1 ]をiビット前記φi と同じ方向で左若しくは右
巡回シフトさせた値を出力する、 fi (A)=[ai ,…,ai-1 ] となる。その上で請求項1記載のブロック暗号作成がな
される。
からnビットへの関数f1 ,…,f t は、前記nビット
の入力に関する値A=[a0 ,…,an-1 ]に依存して
求められる。この上で請求項1記載のブロック暗号作成
がなされる。請求項7の発明においては、前記nビット
からnビットへの関数gは、gがnビットの入力に関す
る値A=[a0 ,…,an-1 ]をiビット前記φi と逆
向きで右若しくは左巡回シフトさせた値を出力する関
数、 g(A)=[an-1 ,…,an-i-1 ] となる。その上で請求項1記載のブロック暗号作成がな
される。
からnビットへの関数hは、hがnビットの入力に関す
る値A=[a0 ,…,an-1 ]をiビット前記φi と逆
向きで右若しくは左巡回シフトさせた値を出力する関
数、 h(A)=[an-i ,…,an-i-1 ] となる。その上で請求項1記載のブロック暗号作成がな
される。
からnビットへの関数ψは、ψがnビットの入力に関す
る値C=[c0 ,…,cn-1 ]を置換させた後iビット
前記φi と同じ向きに左若しくは右巡回シフトさせた値
とCとをビット毎の排他的論理和を取った値を出力する
関数となる。その上で請求項1記載のブロック暗号作成
がなされる。
本発明の基本は請求項1の発明にあり、各請求項の発明
はその必要不可欠の事項(構成要素)を具体的な関数に
限定した上でその関数による技術的効果を得んとするも
のである。このため、実施例では各請求項の発明を一体
に組み込んだブロック暗号装置とする。
ブロック暗号の実施例の基本構成図である。以下、本図
を参照しながら実施例の手順を説明する。本図において
1は、入力ビットの左32ビットLであり、2は右32
ビットRであり、3は32ビットの鍵Kである。実際に
データ撹乱部に入力されるのは、入力の右32ビットR
であり、以下、これをAと表す。次に、データ撹乱の内
容を6つのステップにわけて説明する。 [1.第一の中間値Bを求める。]32ビットを8ビッ
ト毎の4個のブロックに分割し、1から8までの各分割
iに対して、前記8ビットに対応する鍵Kの第iブロッ
クをKi 、8ビットに対応する入力値Aの第iブロック
をAi 、第一中間値Bの第iブロックをBi として、ま
ず、前記Ki の左2ビットの値だけ前記Ai を左に巡回
した結果の対応するブロックと前記Ki とを256を法
として加えた値を第一の中間値Bi とする。なお、ここ
に法として256を採るのは、従来技術と同じ理由であ
る。 [2.第二の中間値Cを求める]32ビットをk1 =3
0ビット,k2 =2ビットの2個のブロックに分割し、
gを右に1回巡回させる関数とし、jを非負整数(0で
もよい)とし、右にj回巡回させる関数をgj で表し、
K’=g(K)とするとき、1から2までの各分割iに
対して、前記ki ビットに対応する前記鍵K’の第iブ
ロックをK’i 、前記ki ビットに対応する前記Bの第
iブロックをBi 、前記ki ビットに対応する前記第二
中間値Cの第iブロックをCi として、前記鍵K’の前
記関数gi-1 による出力値gi ( K’) と前記Bとのビ
ット毎の論理積を求め、その結果の全ビットの排他的論
理和を取った値zi を求め、前記zi と前記K’i の反
転との各ビット毎の論理積を求め、これらと前記Biと
のビット毎の排他的論理和を取ったものを第二の中間値
Ci とする。なお、ここでgi ( K’)とBとのビット
毎の演算を論理積とするのは行列演算を行うためであ
り、zi を求めるのに全ビットの排他的論理和をとって
いるのはビット攪拌をおこすためである。 [3.第三の中間値Dを求める]前記Cの32ビットを
8ビット毎の4個のブロックC1 、C2 、C3 、C4 に
分割し、各ブロックに対してブロック内のビット置換を
行う。なお、各ブロック内においてそのビット情報を右
から1ビット目、2ビット目と呼ぶことにするとその置
換の内容は以下のようになる。
ト情報をC’とし、これを4ビット毎の8つのブロック
ブロックC’1 ,C’2 ,C’3 ,C’4 、C’ 5 ,
C’6 ,C’7 ,C’8 に分割し、C’の8ビット毎の
4ブロックを図1のブロック置換に示すように並べ換え
たものをC”、 C”=C’4, C’1, C’8, C’5, C’2, C’
3, C’6, C’7 とし(ただし、明細書では図1とは逆に、左から順に記
載している。)、このC”を左3回巡回したものと前記
C”を左7回巡回したものとの加法をとったものをD’
とする。更にこのD’の32ビットを4ビット毎のブロ
ックD’1 ,D’ 2 ,D’3 ,D’4 、D’5 ,
D’6 ,D’7 ,D’8 に分割し、このブロック単位の
置換を次のように行った結果をDとする(これを、図1
に示す。)。なお、ここにD1 ,D2 ,D3 ,D4 、D
5 ,D6 ,D7 ,D8 は、DをD’同様に4ビット毎の
ブロックに分割したものである。
8ビット毎の4ブロックD1 ,D2 ,D3 ,D4 に分割
し、同様に前記鍵K、第4中間値Eも8ビット毎の4ブ
ロックK1 ,K2 ,K3 ,K4 ,E1 ,E2 ,E3 ,E
4 に分割し、前記K1 を1を256を法として加えた結
果に変えたものをK”として同様に4分割し、各第iブ
ロックに対して、前記K”i と前記Di を256を法と
して加えた前記第5中間値をEi としする。 [6.出力値を求める]前記Eの左1回巡回を出力とす
る。
半分とのビット毎の排他的論理和を取ったものを1段の
ブロック暗号の出力の左半分とし、もとのAをブロック
暗号の出力の右半分とする。この操作を8回繰り返す。
このとき、実行ビット数は及びコンプリート性は2段で
飽和し、この結果ブロック暗号の強力な解法である差分
攻撃に対して8段で強くなり、安全で高速なブロック暗
号を構成できることとなる。すなわち、最終の3段を除
外した5段で、実行ビット数及びコンプリート性は2回
以上飽和したこととなる。
きたが、本発明は何も上記実施例に限定されないのは勿
論である。すなわち、例えば、 ブロック暗号の繰り返し回数は8回に限らず、それ以
上なら何回でもよい。これは、何等かの事情でディジタ
ル情報の一区切りや鍵の桁数が小さい場合及び通信情報
の秘密保持の重要性が高い場合に極めて有効である。 ディジタル通信に限らず、ディジタル計算等ディジタ
ル的な信号の処理、演算は通例の2のべき乗を単位とし
てなされるため、本実施例でも入力信号、鍵、分割数等
を2のべき乗としているが、これらは何も2のべき乗に
限定されないのは勿論である。 本実施例では、各演算、分割はいわば電気回路的にな
すものとしてあるが、これは大型計算機による演算によ
りなすものとしてもよい。この場合、特に各関数(φ、
f等)が単なる巡回でなく複雑なものであるときに便利
であろう。 製造の都合で、各構成要素が物理的に複数の物とされ
たり、複数の構成要素が物理的に一体のものとされても
よい。
ク暗号を安価、高い安全性、かつ高速で構成することが
可能となる。請求項2の発明においては、最上位ビット
の繰り上がりは考えていない足し算であるため、高速演
算が可能でありその上論理的、回路的に簡単かつハード
も増えないため、請求項1の発明の効果が増大する。
項8及び請求項9の発明においては、攪拌に巡回シフト
を採用しているため、論理回路の構成が簡単、安価なも
のとなり、また請求項1の発明における暗号化と復号を
高速になしえる。請求項4及び請求項6の発明において
は、関数φは鍵Kに、関数fは入力値Aに依存して求め
られることとなりるため、実行ビット数の飽和とコンプ
リート性を充たすのに少ない実行段数でよいこととな
り、請求項1の発明の効果が増大する。
ムの構成図である。
構成図である。
ための回路構成の概念図である。
Claims (9)
- 【請求項1】 外部入力をnビット毎に区切って入力値
Aとする信号入力部と、前記信号入力部により得られた
各入力値Aを最上桁から順に各l1 ビット、l 2 ビッ
ト、…、ls ビット(ここに、l1 +l2 +…+ls =
n)のs個のブロックA1 、A2 、…、As に分割する
入力値分割部と、あらかじめ定められた値であるnビッ
トの鍵Kを最上桁から順に各l1 ビット、l2 ビット、
…、ls ビットのs個のブロックK1 、K2 、…、Ks
に分割する鍵分割部と、前記入力値分割部からの出力た
る各Ai (ここに、i=1,…,s)をφi (A i )に
移すs個のli ビットからli ビットへの関数φi を有
するφ関数部と、第一中間値Bとしてその各構成要素B
i (ここに、B1 +…+Bs =B)をBi=Φi (φi
(Ai )、Ki )の演算によりもとめるs個のli ×l
i ビットからli ビットへの関数Φi を有するΦ関数部
と、あらかじめ定められた値であるnビットの鍵Kをg
(K)に移すnビットからnビットへの関数gを有する
g関数部と、第一中間値Bを各m1 ビット、m2 ビット
…、mt ビット(ここに、m1 +m2…+mt =n、か
つtはsとは独立に設定される。)のt個のブロックB
1 、B 2 、…、Bt に分割する第一中間値分割部と、前
記g関数部の出力結果g(K)を各m1 ビット、m2 ビ
ット、…、mt ビットのt個のブロックg(K)1 、g
(K)2 、…、g(K)t に分割するg(K)分割部
と、t個のnビットからnビットへの関数fi (i=
1,…,t)を有し、fi (g(K))と第一中間値B
の各Bi とのビット毎の論理積を求め、その結果の全ビ
ットの排他的論理和を取った値zi を求めるz演算部
と、第二中間値Cとして、その各構成要素Ci (i=
1,…,t)を、前記zi と前記g(K)i の反転との
各ビット毎の論理積を求めこれらと前記Bi とのビット
毎の排他的論理和を取ったものをCi とすることにより
もとめるC計算部と、第三中間値DをD=φ(C)の演
算によりもとめるlビットからlビットへの関数φを有
するD計算部と、あらかじめ定められた値であるnビッ
トの鍵Kをh(K)(ここにh(K)=g(K))に移
すnビットからnビットへの関数hを有するh関数部
と、第三中間値Dを各l1 ビット、l2 ビット、…、l
s ビットのs個のブロックD 1 、D2 、…、Ds (ここ
に、D1 +…+Ds =D)に分割する第三中間値分割部
と、前記h関数部の出力結果h(K)を各l1 ビット、
l2 ビット、…、ls ビットのs個のブロックh(K)
1 、h(K)2 …、h(K)s (ここに、h(K)1+
…+h(K)s =h(K))に分割するh(K)分割部
と、第四中間値Eとして、その各構成要素Ei (ここ
に、E1 +…+Es =E)をE i =Φi (h(K)i 、
Di )の演算によりもとめるli ×li ビットからli
ビットへの関数Φi を有するE計算部と、s個のnビッ
トからnビットへの関数fi (i=1,…,s)を有
し、各fi (Ei )を出力信号として出力する暗号出力
部とを有することを特徴とするブロック暗号装置。 - 【請求項2】 前記Φ関数部及び前記E計算部における
li ×li ビットからli ビットへの関数Φi ,…,Φ
s は、Φi がli ビットの入力に関する値Ai =
[a0 , …,ali-1]とKi =[k0,…, kli-1]を最
上位ビットの繰り上がりは考えないで加えた値を出力す
る関数であることを特徴とする請求項1記載のブロック
暗号作成装置。 - 【請求項3】 前記φ関数部におけるli ビットからl
i ビットへの関数φi,…,φs は、φi がli ビット
の入力に関する値Ai =[a0, …,ali-1]をiビット左
若しくは右巡回シフトさせた値を出力する関数、 φi (A)=[ai ,…,ai-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置。 - 【請求項4】 前記φ関数部におけるli ビットからl
i ビットへの関数φ1,…,φs は、li ビットの前記
鍵Ki =[k0,…, kli-1]に依存して求められること
を特徴とする請求項1記載のブロック暗号作成装置。 - 【請求項5】 前記z演算部におけるnビットからnビ
ットへの関数f1 ,…,ft は、fi がnビットの入力
に関する値A=[a0 ,…,an-1 ]をiビット前記各
関数φi と同じ向きで左若しくは右巡回シフトさせた値
を出力する関数、 fi (A)=[ai ,…,ai-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置。 - 【請求項6】 前記z演算部におけるnビットからnビ
ットへの関数f1 ,…,ft は、nビットの入力に関す
る値A=[a0 ,…,an-1 ]に依存して求められるこ
とを特徴とする請求項1記載のブロック暗号作成装置。 - 【請求項7】 前記g関数部におけるnビットからnビ
ットへの関数gは、gがnビットの入力に関する値A=
[a0 ,…,an-1 ]をiビット前記φi と逆向きで右
若しくは左巡回シフトさせた値を出力する関数、 g(A)=[an-i ,…,an-i-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置。 - 【請求項8】前記h関数部におけるnビットからnビッ
トへの関数hは、hがnビットの入力に関する値A=
[a0 ,…,an-1 ]を前記φi と逆向きでiビット右
若しくは左巡回シフトさせた値を出力する関数、 h(A)=[an-i ,…,an-i-1 ] であることを特徴とする請求項1記載のブロック暗号作
成装置。 - 【請求項9】 前記D計算部におけるnビットからnビ
ットへの関数ψは、ψがnビットの入力に関する値C=
[c0 ,…,cn-1 ]を置換させた後前記φ i と同じ向
きにiビット左若しくは右巡回シフトさせた値とCとを
ビット毎の排他的論理和をとった値を出力する関数であ
ることを特徴とする請求項1記載のブロック暗号作成装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13187793A JP3371981B2 (ja) | 1993-06-02 | 1993-06-02 | ブロック暗号作成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13187793A JP3371981B2 (ja) | 1993-06-02 | 1993-06-02 | ブロック暗号作成装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06342258A true JPH06342258A (ja) | 1994-12-13 |
JP3371981B2 JP3371981B2 (ja) | 2003-01-27 |
Family
ID=15068235
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13187793A Expired - Lifetime JP3371981B2 (ja) | 1993-06-02 | 1993-06-02 | ブロック暗号作成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3371981B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011052587A1 (ja) * | 2009-10-27 | 2011-05-05 | 日本電気株式会社 | ブロック暗号装置、ブロック暗号化方法およびプログラム |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06120942A (ja) * | 1992-10-01 | 1994-04-28 | Matsushita Electric Ind Co Ltd | ビット攪拌器 |
-
1993
- 1993-06-02 JP JP13187793A patent/JP3371981B2/ja not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06120942A (ja) * | 1992-10-01 | 1994-04-28 | Matsushita Electric Ind Co Ltd | ビット攪拌器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011052587A1 (ja) * | 2009-10-27 | 2011-05-05 | 日本電気株式会社 | ブロック暗号装置、ブロック暗号化方法およびプログラム |
JP5488608B2 (ja) * | 2009-10-27 | 2014-05-14 | 日本電気株式会社 | ブロック暗号装置、ブロック暗号化方法およびプログラム |
US8891758B2 (en) | 2009-10-27 | 2014-11-18 | Nec Corporation | Block encryption device and method and computer program |
Also Published As
Publication number | Publication date |
---|---|
JP3371981B2 (ja) | 2003-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Arab et al. | An image encryption method based on chaos system and AES algorithm | |
Zhang | A new unified image encryption algorithm based on a lifting transformation and chaos | |
Lipmaa et al. | CTR-mode encryption | |
Andem | A cryptanalysis of the tiny encryption algorithm | |
KR100362458B1 (ko) | 암호화 처리장치, 암호화 처리방법 및 보안성을 손상시키지 않고 고속으로 암호화 처리를 실현하는 암호화 처리 프로그램을 기록하는 기록매체 | |
KR20110004474A (ko) | 갈루아 폐체 암호 시스템 | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
JP4025722B2 (ja) | データ暗号化のための方法および装置 | |
Achkoun et al. | SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes | |
JP2014197913A (ja) | 暗号化装置、暗号化方法及びプログラム | |
Kapoor et al. | Analysis of symmetric and asymmetric key algorithms | |
Patel et al. | Hybrid security algorithms for data transmission using AES-DES | |
JPWO2012141189A1 (ja) | 暗号化方法、暗号化装置および暗号化プログラム | |
Singh et al. | Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish | |
Ledda et al. | Enhancing IDEA algorithm using circular shift and middle square method | |
JP3371981B2 (ja) | ブロック暗号作成装置 | |
Lu et al. | Related-key attacks on the full-round Cobra-F64a and Cobra-F64b | |
Tarawneh | Cryptography: Recent Advances and Research Perspectives | |
Fanfakh et al. | Simultaneous encryption and authentication of messages over GPUs | |
Al-Rahman et al. | A hybrid lightweight cipher algorithm | |
Nakahara Jr | Lai-Massey Cipher Designs: History, Design Criteria and Cryptanalysis | |
Kothandan | Modified Blowfish Algorithm to Enhance its Performance and Security | |
Kareem et al. | An improvement for CAST-128 encryption based on magic square and matrix inversion | |
JPH10153954A (ja) | 暗号装置 | |
Abd Al-Rahman et al. | A Hybrid Lightweight Cipher Algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071122 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081122 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091122 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091122 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101122 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111122 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121122 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121122 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131122 Year of fee payment: 11 |
|
EXPY | Cancellation because of completion of term |