JPH06102821A - 暗号装置 - Google Patents

暗号装置

Info

Publication number
JPH06102821A
JPH06102821A JP4252717A JP25271792A JPH06102821A JP H06102821 A JPH06102821 A JP H06102821A JP 4252717 A JP4252717 A JP 4252717A JP 25271792 A JP25271792 A JP 25271792A JP H06102821 A JPH06102821 A JP H06102821A
Authority
JP
Japan
Prior art keywords
circuit
block
key
supplied
output
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.)
Withdrawn
Application number
JP4252717A
Other languages
English (en)
Inventor
Yoshitaka Hosoya
義孝 細谷
Masami Yamashita
雅美 山下
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 JP4252717A priority Critical patent/JPH06102821A/ja
Publication of JPH06102821A publication Critical patent/JPH06102821A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【構成】 拡大転字回路51は、前段のランダム化回路
からのブロックRi を拡大転字する。EX−OR52a
〜52gは、拡大転字回路51の出力及び中間鍵Ki+1
をバイト単位で相互に排他的論理和演算する。ADD5
3a〜53cは、EX−OR52b、52c、52e、
52fの各出力を相互に加算する。MADD54a、5
4bは、EX−OR52a〜52g及びADD53bの
出力を相互にモジュロ256加算する。ROT55a、
55bは、MADD54a、54b、52d、52gの
各出力をそれぞれビット単位で入れ換える。 【効果】 換字処理を用いていないので、ハードウエア
を簡単にすることができると共に、高速処理が可能であ
る。また、各段のデータ攪拌効果が優れていることか
ら、従来の装置に比して少ない段数で十分なランダム化
効果を得ることができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、暗号装置に関し、特に
暗号化鍵から生成される中間鍵を用いて平文をランダム
化して、暗号文を生成する暗号装置に関する。
【0002】
【従来の技術】代表的な暗号化方式としては、1977
年に米国商務省標準局が制定したDES(Data Encrypt
ion Standard)が知られている。ここで、DESについ
て説明する。
【0003】DESにおける暗号装置は、図5に示すよ
うに、暗号化鍵から16個の中間鍵K1 、K2 、K3
4 、K5 、K6 、K7 、K8 、K9 、K10、K11、K
12、K13、K14、K15、K16を順次生成する鍵生成部1
10と、該鍵生成部110からの16個の中間鍵K1
16を用いて平文を順次ランダム化して、暗号化する暗
号化処理部130とを備える。
【0004】そして、鍵生成部110は、暗号化鍵から
中間鍵K1 〜K16をその添字が若い順に生成する。暗号
化処理部130は、これらの中間鍵K1 〜K16を生成さ
れる順序で用いて平文を順次ランダム化(拡散)し、暗
号文を生成するようになっている。
【0005】具体的には、鍵生成部110は、上述の図
5に示すように、所謂縮約転字する縮約型転字回路12
7と、該縮約型転字回路127で縮約転字された暗号化
鍵を、それぞれビットシフトすると共に更に縮約転字
し、中間鍵K1 〜K16をそれぞれ生成する縦続接続され
た16個の中間鍵生成回路111、112、113、1
14、115、116、117、118、119、12
0、121、122、123、124、125、126
とを備える。
【0006】そして、縮約型転字回路127は、64ビ
ットで供給される暗号化鍵から8ビットからなるパリテ
ィを削除すると共に転字、すなわち例えばビット単位で
の所定の入換を行い、縮約転字された暗号化鍵を上位2
8ビット(以下ブロックA0という)と下位28ビット
(以下ブロックB0 という)とに分割する。
【0007】各中間鍵生成回路111〜126は、上述
の図5に示すように、前段からのブロックAi (i=0
〜16)を循環的に左側にビットシフトしてブロックA
i+1を生成するシフトレジスタ101と前段からのブロ
ックBi (i=0〜16)を循環的に左側にビットシフ
トしてブロックBi+1 を生成するシフトレジスタ102
と、上記シフトレジスタ101からのブロックAi+1
シフトレジスタ102からのブロックBi+1 を縮約転字
する縮約型転字回路103とを備える。
【0008】そして、第1段目の中間鍵生成回路111
のシフトレジスタ101、102は、縮約型転字回路1
27から供給されるブロックA0 、B0 をそれぞれ所定
のビット数分循環的に左側(上位ビット側)にシフトし
て、ブロックA1 、B1 を生成する。この中間鍵生成回
路111の縮約型転字回路103は、ブロックA1 とブ
ロックB1 を結合した56(=28+28)ビットのデ
ータを縮約転字して、48ビットからなる中間鍵K1
生成する。
【0009】つぎに、第2段目の中間鍵生成回路112
のシフトレジスタ101、102は、前段の中間鍵生成
回路111から供給されるブロックA1 、B1 をそれぞ
れ所定のビット数分循環的に左側にシフトして、ブロッ
クA2 、B2 を生成する。この中間鍵生成回路112の
縮約型転字回路103は、ブロックA2 とブロックB 2
を結合した56ビットのデータを縮約転字して、48ビ
ットからなる中間鍵K 2 を生成する。
【0010】以下同様にして、中間鍵生成回路113〜
126は、中間鍵K3 〜K16をそれぞれ生成する。この
ようにしてその添字が若い順に生成された中間鍵K1
16は、生成された順序で暗号化処理部130に供給さ
れる。
【0011】暗号化処理部130は、上述の図5に示す
ように、平文を所謂平行転字する初期転字回路147
と、該初期転字回路147で転字された平文を、上記鍵
生成部110から順番に供給される中間鍵K1 〜K16
用いて、順次ランダム化する縦続接続された16個のラ
ンダム化回路131、132、133、134、13
5、136、137、138、139、140、14
1、142、143、144、145、146と、該ラ
ンダム化回路146の出力を上記初期転字回路147と
逆の転字をして暗号文を生成し、該暗号文を出力する最
終転字回路148とを備える。
【0012】そして、初期転字回路147は、64ビッ
ト単位でデータとして供給される平文を平行転字し、転
字された平文を上位32ビット(以下ブロックL0 とい
う)と下位32ビット(以下ブロックR0 という)とに
分割する。
【0013】各ランダム化回路131〜146は、上述
の図5に示すように、前段からのブロックRi を、中間
鍵生成回路111〜126の対応する段から供給される
中間鍵Ki+1 を用いて、所定の関数fにより攪拌する関
数回路105と、該関数回路105の出力と前段からの
ブロックLi の排他的論理和を演算してブロックRi+ 1
生成する排他的論理和回路(以下EX−ORという)1
06とを備える。
【0014】そして、第1段目のランダム化回路131
は、初期転字回路147から供給されるブロックR
0 を、そのデータと中間鍵K1 を変数とする所定の関数
fにより攪拌すると共に、得られるデータ(f(R0
1 ))と初期転字回路147から供給されるブロック
0 の排他的論理和を演算し、この演算結果とブロック
0 をそれぞれブロックR1 、L1 としてランダム化回
路132に供給する。なお、上述の関数fは、例えばコ
ード変換テーブルを用いてブロックR0 をコード変換す
る所謂換字処理を含む関数である。
【0015】つぎに、第2段目のランダム化回路132
は、ランダム化回路131から供給されるブロックR1
を、そのデータと中間鍵K2 を変数とする所定の関数f
により攪拌すると共に、得られるデータ(f(R1 ,K
2 ))とランダム化回路131から供給されるブロック
1 の排他的論理和を演算し、この演算結果とブロック
1 をそれぞれブロックR2 、L2 としてランダム化回
路133に供給する。
【0016】以下同様にして、ランダム化回路133〜
146は、中間鍵K3 〜K16を生成される順にそれぞれ
用いて平文のランダム化を順次行い、最終段のランダム
化回路146から出力されるブロックL16、R16は、最
終転字回路148に供給される。
【0017】最終転字回路148は、ブロックL16、R
16を結合すると共に、得られる64ビットのデータを初
期転字回路147の転字とは逆の変換を行って、暗号文
を生成し、この暗号文を出力する。
【0018】DESは、暗号化鍵と復号化鍵が同一であ
る慣用暗号方式であり、DESの復号装置は、上述した
暗号装置の鍵生成部110、暗号化処理部130と同等
の回路(以下、それらを鍵生成部、暗号化処理部とい
う)と、この鍵生成部で順次生成された中間鍵K1 〜K
16を記憶するメモリとを有する。
【0019】そして、この復号装置は、暗号化鍵と同一
の復号化鍵が鍵生成部に入力されると、中間鍵K1 〜K
16をその添字が若い順に生成し、これらの中間鍵K1
16を一旦メモリに記憶する。つぎに、暗号文が暗号化
処理部に入力されると、メモリから中間鍵K1 〜K16
その添字が大きき順に読み出し、読み出した中間鍵K 1
〜K16を順番に用いて暗号文を順次ランダム化すること
により、復号化を行い、平文を生成するようになってい
る。
【0020】
【発明が解決しようとする課題】以上のように、DES
における暗号装置では、各ランダム化回路131〜14
6の関数回路105に換字処理が含まれることから、ハ
ードウエアが複雑になると共に、暗号化処理が遅いとい
う問題があった。
【0021】本発明は、このような実情に鑑みてなされ
たものであり、換字処理を含まずに十分なデータ攪拌効
果を得ることができると共に、暗号化処理を高速で行う
ことができる暗号装置を提供することを目的とする。
【0022】
【課題を解決するための手段】上記課題を解決するため
に、本発明に係る暗号装置は、暗号化鍵から複数の中間
鍵を生成する鍵生成手段と、該中間鍵生成手段からの複
数の中間鍵を用いて平文または暗号文を順次ランダム化
して、暗号文または平文を生成する暗号化処理手段とを
備え、該暗号化処理手段が、各ランダム化の過程におけ
る前段からのデータを拡大転字する拡大転字手段と、該
拡大転字手段の出力及び上記鍵生成手段からの中間鍵を
排他的論理和、加算によりバイト単位で相互に演算し
て、平文または暗号文をランダム化する演算手段とから
なることを特徴とする。
【0023】
【作用】本発明を適用した暗号装置では、暗号化鍵から
複数の中間鍵を生成し、これらの中間鍵を用いて平文ま
たは暗号文を順次ランダム化して、暗号文または平文を
生成する際に、各ランダム化の過程における前段からの
データを、拡大転字、排他的論理和及び加算によりバイ
ト単位で相互に演算してランダム化する。
【0024】
【実施例】以下、本発明に係る暗号装置の一実施例を図
面を参照しながら説明する。本発明を適用した暗号装置
は、例えば図1に示すように、暗号化鍵を順次ランダム
化し、各ランダム化の過程で得られる複数の中間鍵と、
最終のランダム化の過程で得られる復号化鍵とを出力す
ると共に、該復号化鍵を入力すると、上記複数の中間鍵
を逆の順序で出力する鍵生成部10と、該鍵生成部10
から順番に供給される複数の中間鍵を用いて平文または
暗号文を順次ランダム化して、暗号文または平文を生成
する暗号化処理部20とを備える。
【0025】そして、暗号化処理の際に、鍵生成部10
は、例えば64ビットで供給される暗号化鍵から例えば
8個の中間鍵(内部鍵)K1 、K2 、K3 、K4
5 、K 6 、K7 、K8 をその添字が若い順に生成する
と共に、例えば64ビットからなる復号化鍵を生成す
る。暗号化処理部20は、これらの中間鍵K1 〜K8
生成される順序で用いて、例えば64ビット単位でデー
タとして供給される平文を順次ランダム化(拡散)し、
例えば64ビットからなる暗号文を生成するようになっ
ている。また、復号化処理の際に、鍵生成部10は、復
号化鍵から中間鍵K1〜K8 をその添字が大きい順に生
成し、暗号化処理部20は、これらの中間鍵K 1 〜K8
を生成される順序で用いて、例えば64ビット単位でデ
ータとして供給される暗号文を順次ランダム化し、例え
ば64ビットからなる平文を生成するようになってい
る。
【0026】具体的には、鍵生成部10は、上述の図1
に示すように、暗号化鍵あるいは復号化鍵を所定の関数
K により順次ランダム化して、中間鍵K1 〜K8 を、
暗号化処理の際にはその添字が若い順に、復号化処理の
際には大きき順にそれぞれ生成する縦続接続された8個
の中間鍵生成回路11、12、13、14、15、1
6、17、18を備え、第1段目の中間鍵生成回路11
には、暗号化鍵あるいは復号化鍵が上位32ビット(以
下ブロックC0 という)と下位32ビット(以下ブロッ
クD0 という)とに分割されて供給される。例えば暗号
化鍵を0001020304050607h(h:16
進数表現を表す)とすると、ブロックC0、D0 はそれ
ぞれ00010203h、04050607hとなる。
【0027】各中間鍵生成回路11〜18は、上述の図
1に示すように、前段からのブロックDi (i=0〜
8)を所定の関数fK により攪拌する関数回路1と、該
関数回路1の出力と前段からのブロックCi の排他的論
理和を演算する排他的論理和回路(以下EX−ORとい
う)2と、該EX−OR2の出力と前段からのブロック
i を切り換え選択するセクタ3とを備える。
【0028】そして、暗号化処理の際、第1段目の中間
鍵生成回路11は、暗号化鍵のブロックD0 を、そのデ
ータを変数とする所定の関数fk により攪拌した後、得
られるデータ(fk (D0 ))と暗号化鍵のブロックC
0 の排他的論理和を演算し、演算結果とブロックD0
それぞれブロックD1 、C1 として中間鍵生成回路12
に供給すると共に、この演算結果の下位24ビットを中
間鍵K1 として出力する。
【0029】つぎに、第2段目の中間鍵生成回路12
は、中間鍵生成回路11から供給されるブロックD
1 を、そのデータを変数とする所定の関数fk により攪
拌した後、得られるデータ(fk (D1 ))と中間鍵生
成回路11から供給されるブロックC1 の排他的論理和
を演算し、演算結果とブロックD1 をそれぞれブロック
2、C2 として中間鍵生成回路13に供給すると共
に、この演算結果の下位24ビットを中間鍵K2 として
出力する。
【0030】以下同様にして、中間鍵生成回路13〜1
8は、所定の関数fk により暗号化鍵を順次ランダム化
して、中間鍵K3 〜K8 をそれぞれ生成する。また、最
終段の中間鍵生成回路18は、ブロックC8 、D8 を合
成して、すなわち中間鍵K8と中間鍵K7 を、中間鍵K
8 が上位ビットとなるように結合して64ビットからな
る復号化鍵を生成する。
【0031】一方、復号化処理の際には、第1段目の中
間鍵生成回路11に供給される復号化鍵のブロックC0
の下位24ビットは中間鍵K8 であり(以下ブロックC
0 を単に中間鍵K8 という)、ブロックD0 の下位24
ビットは中間鍵K7 であり(以下ブロックD0 を単に中
間鍵K7 という)、この中間鍵生成回路11は、中間鍵
8 を出力すると共に、中間鍵K7 を関数fk により攪
拌した後、得られるデータ(fk (K7 ))と中間鍵K
8 の排他的論理和を演算し、すなわち下記式1により中
間鍵K6 を求め、この中間鍵K6 と中間鍵K7 をそれぞ
れブロックD1、C1 として中間鍵生成回路12に供給
する。
【0032】 演算結果=K8 %fk (K7 ) =K6 ・・・式1 ∵K8 =K6 %fk (K7
【0033】ただし、演算子「%」は、排他的論理和を
意味する。
【0034】つぎに、第2段目の中間鍵生成回路12
は、中間鍵生成回路11から供給される中間鍵K7 を出
力すると共に、中間鍵生成回路11から供給される中間
鍵K6を関数fk により攪拌した後、得られるデータ
(fk (K6 ))と中間鍵K7 の排他的論理和を演算
し、すなわち下記式2により中間鍵K5 を求め、この中
間鍵K5 と中間鍵K6 をそれぞれブロックD2 、C2
して中間鍵生成回路13に供給する。
【0035】 演算結果=K7 %fk (K6 ) =K5 ・・・式2 ∵K7 =K5 %fk (K6
【0036】以下同様にして、中間鍵生成回路13〜1
8は、所定の関数fk により復号化鍵を順次ランダム化
して、中間鍵K3 〜K8 をその添字が大きい順にそれぞ
れ生成する。
【0037】中間鍵生成回路11〜18の各セクタ3
は、端子4を介して供給される制御信号で動作し、暗号
化処理の際にはEX−OR2の出力を選択し、復号化処
理の際にはEX−OR2の入力を選択するようになって
いる。したがって、この鍵生成部10からは、暗号化処
理の際には、中間鍵K1 〜K8 がその添字が若い順に出
力され、復号化処理の際には、添字が大きい順に出力さ
れる。このようにして生成された中間鍵K1 〜K8 は暗
号化処理部20に生成された順に供給される。
【0038】ここで、各中間鍵生成回路11〜18に用
いられている関数回路1の具体的な回路構成について説
明する。関数回路1は、例えば図2に示すように、各ラ
ンダム化の過程における前段からのデータ、すなわち前
段の中間鍵生成回路からのブロックDi を所謂拡大転字
する拡大転字回路41と、該拡大転字回路41の出力を
バイト単位で相互に排他的論理和演算するEX−OR4
2a、42b、42c、42d、42eと、該EX−O
R42a、42b、42d、42eの各出力等を相互に
所謂モジュロ256加算する加算器(以下MADDとい
う)43a、43b、43c、43dと、該MADD4
3a〜43cの各出力をそれぞれビット単位で入れ換え
るビット入れ換え回路(以下ROTという)44a、4
4b、44cとを備える。
【0039】そして、拡大転字回路41は、前段の中間
鍵生成回路から供給される32ビットからなるブロック
i を拡大転字、すなわち例えば8ビット単位に分割す
ると共に、32ビットから任意に8ビットを選択して、
40ビット(5バイト)からなるデータを生成する。こ
こで、ブロックDi を分割して得られる各バイトをd ij
(j=0〜3、j=3が所謂MSB側)とし、任意に選
択して得られる1バイトを拡大要素WKiする。なお、こ
の拡大要素WKiを生成するためのビット選択方法を非公
開とし、その選択方法を変更することにより、異なった
暗号系列の暗号文を得ることができる。
【0040】EX−OR42aは、拡大転字回路41か
ら供給されるバイトdi3とバイトd i2の排他的論理和を
演算し、EX−OR42bは、拡大転字回路41から供
給されるバイトdi1とバイトdi0の排他的論理和を演算
し、EX−OR42cは、拡大転字回路41から供給さ
れる拡大要素WKiと定数56hの排他的論理和を演算
し、EX−OR42dは、EX−OR42bの出力とE
X−OR42cの出力の排他的論理和を演算し、EX−
OR42eは、EX−OR42aの出力とEX−OR4
2dの出力の排他的論理和を演算する。
【0041】MADD43aは、EX−OR42aの出
力とEX−OR42dの出力をモジョロ256加算、す
なわち桁上がりを無視して加算し、MADD43bは、
EX−OR42bの出力とEX−OR42eの出力をモ
ジョロ256加算する。
【0042】ROT44aは、MADD43aの出力
を、例えばビットb7 〜b0 (b7 がMSB)がMSB
から順にビットb2 、ビットb0 、ビットb5 、ビット
4 、ビットb3 、ビットb7 、ビットb1 、ビットb
6 となるようにビット入れ換えを行い、ROT44b
は、MADD43bの出力を、上述のROT44aと同
様にビット入れ換えする。
【0043】MADD43cは、拡大転字回路41から
供給されるバイトdi3とROT44aの出力をモジョロ
256加算し、MADD43dは、拡大転字回路41か
ら供給されるバイトdi0とROT44bの出力をモジョ
ロ256加算する。
【0044】ROT44cは、MADD43cの出力
を、上述のROT44aと同様にビット入れ換えする。
【0045】そして、この関数回路1は、上述のように
して得られる32ビットのデータ、すなわちROT44
a〜ROT44cの各出力及びMADD43dの出力
を、MSB側から順にROT44aの出力、ROT44
bの出力、MADD43dの出力、ROT44cの出力
となるように出力する。すなわち、関数回路1は、拡大
転字、排他的論理和、加算の演算処理により、前段の中
間鍵生成回路から供給されるブロックDi をランダム化
する。
【0046】つぎに、暗号化処理部20について説明す
る。暗号化処理部20は、上述の図1に示すように、平
文または暗号文を所定の行列Iにより並べ換える並べ換
え回路29と、該並べ換え回路29で並び換えられた平
文または暗号文を、上記鍵生成部10からその添字が若
い順または大きい順に供給される中間鍵K1 〜K8 を用
いて、順次ランダム化する縦続接続された例えば8個の
ランダム化回路21、22、23、24、25、26、
27、28と、該ランダム化回路28の出力を上記行列
Iの逆行列I-1により並べ換えて暗号文または平文を生
成する並べ換え回路30とを備える。
【0047】そして、暗号化処理の際には、並べ換え回
路29は、64ビット単位でデータとして供給される平
文を所定の行列Iにより並べ換え、並び換えられた平文
を上位32ビット(以下ブロックL0 という)と下位3
2ビット(以下ブロックR0という)とに分割する。例
えば並び換えられた平文を08090A0B0C0D0
E0Fhとすると、ブロックL0 、R0 はそれぞれ08
090A0Bh、0C0D0E0Fhとなる。なお、上
述の行列Iを利用者が自由に設定できるようにすること
により、目的や用途に応じた暗号系列の暗号文を生成で
きるようにしてもよい。
【0048】各ランダム化回路21〜28は、上述の図
1に示すように、前段からのブロックRi を、中間鍵生
成回路11〜18の対応する段から供給される中間鍵K
i+1を用いて、所定の関数fにより攪拌する関数回路5
と、該関数回路5の出力と前段からのブロックLi の排
他的論理和を演算してブロックRi+1 生成するEX−O
R6とを備える。
【0049】そして、第1段目のランダム化回路21
は、並べ換え回路29から供給されるブロックR0 を、
そのデータと中間鍵K1 を変数とする所定の関数fによ
り攪拌すると共に、得られるデータ(f(R0
1 ))と並べ換え回路29から供給されるブロックL
0 の排他的論理和を演算し、この演算結果とブロックR
0 をそれぞれブロックR1 、L1 としてランダム化回路
22に供給する。
【0050】つぎに、第2段目のランダム化回路22
は、ランダム化回路21から供給されるブロックR
1 を、そのデータと中間鍵K2 を変数とする所定の関数
fにより攪拌すると共に、得られるデータ(f(R1
2 ))とランダム化回路21から供給されるブロック
1 の排他的論理和を演算し、この演算結果とブロック
1をそれぞれブロックR2 、L2 としてランダム化回
路23に供給する。
【0051】以下同様にして、ランダム化回路23〜2
8は、中間鍵K3 〜K8 を生成される順にそれぞれ用い
て平文のランダム化を順次行い、最終段のランダム化回
路18から出力されるブロックL8 、R8 は、並べ換え
回路30に供給される。
【0052】並べ換え回路30は、ブロックL8 、R8
を結合すると共に、得られる64ビットのデータを並べ
換え回路29の行列Iの逆行列I-1を用いて並べ換え
て、暗号文を生成し、この暗号文を出力する。
【0053】一方、復号化処理の際には、並べ換え回路
29は、64ビット単位でデータとして供給される暗号
文を所定の行列Iにより並べ換え、並び換えられた暗号
文を上位32ビット(以下ブロックL0 という)と下位
32ビット(以下ブロックR 0 という)とに分割する。
【0054】そして、第1段目のランダム化回路21
は、並べ換え回路29から供給されるブロックR0 を、
そのデータと中間鍵K8 を変数とする所定の関数fによ
り攪拌すると共に、得られるデータ(f(R0
8 ))と並べ換え回路29から供給されるブロックL
0 の排他的論理和を演算し、この演算結果とブロックR
0 をそれぞれブロックR1 、L1 としてランダム化回路
22に供給する。
【0055】つぎに、第2段目のランダム化回路22
は、ランダム化回路21から供給されるブロックR
1 を、そのデータと中間鍵K7 を変数とする所定の関数
fにより攪拌すると共に、得られるデータ(f(R1
7 ))とランダム化回路21から供給されるブロック
1 の排他的論理和を演算し、この演算結果とブロック
1をそれぞれブロックR2 、L2 としてランダム化回
路23に供給する。
【0056】以下同様にして、ランダム化回路23〜2
8は、中間鍵K3 〜K8 を生成される順にそれぞれ用い
て暗号文のランダム化を順次行い、最終段のランダム化
回路18から出力されるブロックL8 、R8 は、並べ換
え回路30に供給される。
【0057】並べ換え回路30は、ブロックL8 、R8
を結合すると共に、得られる64ビットのデータを逆行
列I-1を用いて並べ換えて、平文を生成し、この平文を
出力する。
【0058】ここで、各ランダム化回路21〜28に用
いられる関数回路5の具体的な回路構成について説明す
る。関数回路5は、例えば図3に示すように、各ランダ
ム化の過程における前段からのデータ、すなわち前段の
ランダム化回路からのブロックRi を拡大転字する拡大
転字回路51と、該拡大転字回路51の出力及び中間鍵
i+1 をバイト単位で相互に排他的論理和演算するEX
−OR52a、52b、52c、52d、52e、52
f、52gと、該EX−OR52b、52c、52e、
52fの各出力を相互に加算する加算器(以下ADDと
いう)53a、53b、53cと、上記EX−OR52
a〜52g及びADD53bの出力を相互にモジュロ2
56加算するMADD54a、54bと、該MADD5
4a、54b、52d、52gの各出力をそれぞれビッ
ト単位で入れ換えるROT55a、55bとを備える。
【0059】そして、拡大転字回路51は、前段のラン
ダム化回路から供給される32ビットからなるブロック
i を拡大転字、すなわち例えば8ビット単位に分割す
ると共に、32ビットから任意に8ビットを選択して、
40ビット(5バイト)からなるデータを生成する。こ
こで、ブロックRi を分割して得られる各バイトをr ij
(j=0〜3、j=3がMSB側)とし、任意に選択し
て得られる1バイトを拡大要素Wi する。なお、この拡
大要素WK を生成するためのビット選択方法を非公開と
し、その選択方法を変更することにより、異なった暗号
系列の暗号文を得ることができる。
【0060】EX−OR52aは、拡大転字回路51か
ら供給されるバイトri3と、中間鍵生成回路11〜18
の対応する段から供給される中間鍵Ki+1 の上位8ビッ
ト(ビットB23〜B16)との排他的論理和を演算し、E
X−OR52bは、拡大転字回路51から供給されるバ
イトri0と、中間鍵Ki+1 の上位8ビットに続く8ビッ
ト(ビットB15〜B8 )との排他的論理和を演算し、E
X−OR52cは、拡大転字回路51から供給されるバ
イトri2とEX−OR52aの出力の排他的論理和を演
算し、EX−OR52dは、拡大転字回路51から供給
されるバイトr i1とEX−OR52bの出力の排他的論
理和を演算し、EX−OR52eは、拡大転字回路51
から供給される拡大要素Wi と中間鍵Ki+1 の下位8ビ
ット(ビットB7 〜B0 )の排他的論理和を演算する。
【0061】ADD53aは、EX−OR52cの出力
とEX−OR52eの出力を加算すると共に、その上位
8ビットを出力する。
【0062】EX−OR52fは、EX−OR52dの
出力とADD53aの出力の排他的論理和を演算し、E
X−OR52gは、EX−OR52cの出力とADD5
3aの出力の排他的論理和を演算する。
【0063】ADD53bは、EX−OR52cの出力
とEX−OR52fの出力を加算すると共に、その上位
8ビットを出力し、MADD54aは、EX−OR52
dの出力とEX−OR52gの出力をモジョロ256加
算し、ROT55aは、MADD54aの出力を、例え
ばビットb7 〜b0 がMSBから順にビットb2 、ビッ
トb0 、ビットb5 、ビットb4 、ビットb3 、ビット
7 、ビットb1 、ビットb6 となるようにビット入れ
換えを行う。
【0064】MADD54bは、EX−OR52aの出
力とADD53bの出力をモジョロ256加算し、AD
D53cは、EX−OR52bの出力とROT55aの
出力をモジョロ256加算し、ROT55bは、MAD
D54bの出力を、上述のROT55aと同様にビット
入れ換えする。
【0065】そして、この関数回路5は、上述のように
して得られる32ビットのデータ、すなわちROT55
a、55b及びADD53b、53cの各出力を、MS
B側から順にADD53cの出力、ROT55bの出
力、ADD53bの出力、ROT55aの出力となるよ
うに出力する。すなわち、関数回路5は、従来の装置の
ように所謂換字処理を行うことなく、拡大転字、排他的
論理和、加算の演算処理により、前段のランダム化回路
から供給されるブロックRi をランダム化する。換言す
ると、換字処理を伴わないことにより、ハードウエアを
簡単にすることができると共に、高速処理が可能であ
る。また、この関数回路5のデータ攪拌効果は、例えば
図4に示すように、従来のDESで用いられていた所謂
関数Sに比して優れている。なお、この図4に示す特性
は、入力を1ビット変化させたときの出力の変化を所謂
ハミング距離で表し、32000回の試行を行った(標
本数を32000とした)ときのものである。
【0066】以上のように、この実施例の暗号装置で
は、暗号化鍵から複数の中間鍵K1 〜K8 を生成し、こ
れらの中間鍵K1 〜K8 を用いて平文または暗号文を順
次ランダム化して、暗号文または平文を生成する際に、
前段のランダム化回路からのブロックRi を、拡大転
字、排他的論理和、加算によりバイト単位で相互に演算
してランダム化するようにすることにより、従来の装置
のように換字処理を用いていないので、ハードウエアを
簡単にすることができると共に、高速処理が可能であ
る。また、関数回路5のデータ攪拌効果が優れているこ
とから、従来の装置に比して少ない段数で十分なランダ
ム化効果を得ることができる。
【0067】なお、本発明は上述の実施例に限定される
ものではなく、例えば、上述の実施例ではランダム化回
路の段数を8段としているが、偶数段であればよい。ま
た例えば、関数回路1、5は、図2、図3に示す回路構
成に限定されるものではない。
【0068】
【発明の効果】以上の説明でも明らかなように、本発明
を適用した暗号装置では、暗号化鍵から複数の中間鍵を
生成し、これらの中間鍵を用いて平文または暗号文を順
次ランダム化して、暗号文または平文を生成する際に、
各ランダム化の過程における前段からのデータを、拡大
転字、排他的論理和、加算によりバイト単位で相互に演
算してランダム化するようにすることにより、従来の装
置のように換字処理を用いていないので、ハードウエア
を簡単にすることができると共に、高速処理が可能であ
る。また、各段のデータ攪拌効果が優れていることか
ら、従来の装置に比して少ない段数で十分なランダム化
効果を得ることができる。
【図面の簡単な説明】
【図1】本発明を適用した暗号装置の回路構成を示すブ
ロック図である。
【図2】上記暗号装置を構成する中間鍵生成回路の関数
回路の具体的な回路構成を示す図である。
【図3】上記暗号装置を構成するランダム化回路の関数
回路の具体的な回路構成を示す図である。
【図4】上記関数回路のデータ攪拌効果の特性を示す図
である。
【図5】DESにおける暗号装置の回路構成を示すブロ
ック図である。
【符号の説明】
5・・・関数回路 10・・・鍵生成部 11〜18・・・中間鍵生成回路 20・・・暗号化処理部 21〜28・・・ランダム化回路 51・・・拡大転字回路 52a〜52g・・・EX−OR 53a〜53c・・・ADD 54a〜54b・・・MADD

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 暗号化鍵から複数の中間鍵を生成する鍵
    生成手段と、 該中間鍵生成手段からの複数の中間鍵を用いて平文また
    は暗号文を順次ランダム化して、暗号文または平文を生
    成する暗号化処理手段とを備え、 該暗号化処理手段が、 各ランダム化の過程における前段からのデータを拡大転
    字する拡大転字手段と、 該拡大転字手段の出力及び上記鍵生成手段からの中間鍵
    を排他的論理和、加算によりバイト単位で相互に演算し
    て、平文または暗号文をランダム化する演算手段とから
    なることを特徴とする暗号装置。
JP4252717A 1992-09-22 1992-09-22 暗号装置 Withdrawn JPH06102821A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4252717A JPH06102821A (ja) 1992-09-22 1992-09-22 暗号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4252717A JPH06102821A (ja) 1992-09-22 1992-09-22 暗号装置

Publications (1)

Publication Number Publication Date
JPH06102821A true JPH06102821A (ja) 1994-04-15

Family

ID=17241279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4252717A Withdrawn JPH06102821A (ja) 1992-09-22 1992-09-22 暗号装置

Country Status (1)

Country Link
JP (1) JPH06102821A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004004603A (ja) * 2002-04-03 2004-01-08 Matsushita Electric Ind Co Ltd 拡大鍵生成装置、暗号化装置および暗号化システム

Similar Documents

Publication Publication Date Title
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
JP3992742B2 (ja) データブロックおよび鍵を非線形的に結合する暗号方法および装置
KR100435052B1 (ko) 암호화장치
JP3225440B2 (ja) デジタル信号ブロックの変換装置およびその使用方法
JP2007041620A5 (ja)
JPH10171350A (ja) ハッシュ値生成方法および装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
JP2950485B2 (ja) ストリーム暗号処理装置
JPH0697930A (ja) ブロック暗号処理装置
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
JPH06102821A (ja) 暗号装置
JPH06102820A (ja) 暗号装置
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JP2927079B2 (ja) データ暗号化方法およびデータ暗号化装置
JPH09269727A (ja) 暗号化方法および暗号化装置
JP3473171B2 (ja) 逐次暗号方式
JPH10153954A (ja) 暗号装置
JPH11212451A (ja) 暗号処理装置
JP4745598B2 (ja) 暗号回路
WO2002058036A1 (en) Encryption circuit
JP2000214779A (ja) ハッシュ値生成方法および装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991130