[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH06102820A - 暗号装置 - Google Patents

暗号装置

Info

Publication number
JPH06102820A
JPH06102820A JP4252716A JP25271692A JPH06102820A JP H06102820 A JPH06102820 A JP H06102820A JP 4252716 A JP4252716 A JP 4252716A JP 25271692 A JP25271692 A JP 25271692A JP H06102820 A JPH06102820 A JP H06102820A
Authority
JP
Japan
Prior art keywords
circuit
key
block
supplied
keys
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
JP4252716A
Other languages
English (en)
Inventor
Masami Yamashita
雅美 山下
Yoshitaka Hosoya
義孝 細谷
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 JP4252716A priority Critical patent/JPH06102820A/ja
Publication of JPH06102820A publication Critical patent/JPH06102820A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【構成】 鍵生成部10は、暗号化鍵を順次ランダム化
し、各ランダム化の過程で得られる複数の中間鍵と、最
終のランダム化の過程で得られる復号化鍵とを出力し、
復号化鍵を入力すると、複数の中間鍵を逆の順序で出力
する。暗号化処理部20は、鍵生成部10から順番に供
給される複数の中間鍵を用いて平文または暗号文を順次
ランダム化して、暗号文または平文を生成する。 【効果】 暗号装置と復号装置を同一の回路構成とする
ことができ、設計や製造工数を削減することができる。
また、復号装置として用いるときに、中間鍵K1〜K8
をその添字が大きい順に生成することができ、従来の装
置で必要であったメモリを必要としない。

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 を生成するシフトレジスタ10
2と、上記シフトレジスタ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 〜K16
記憶するメモリとを有する。そして、暗号化鍵と同一の
復号化鍵が鍵生成部に入力されると、中間鍵K1 〜K16
をその添字が若い順に生成し、これらの中間鍵K1 〜K
16を一旦メモリに記憶する。つぎに、暗号文が暗号化処
理部に入力されると、メモリから中間鍵K1 〜K16をそ
の添字が大きき順に読み出し、読み出した中間鍵K1
16を順番に用いて暗号文を順次ランダム化することに
より、復号化を行い、平文を生成するようになってい
る。
【0019】
【発明が解決しようとする課題】すなわち、DESの復
号装置では、鍵生成部において中間鍵K1 〜K16がその
添字が若い順に生成されることから、中間鍵K1 〜K16
を一旦記憶するためのメモリが必要とされる。また、全
ての中間鍵K1 〜K16が生成されるまで復号化処理を行
うことができないという問題があった。さらに、暗号装
置と復号装置を共通設計とすることができず、設計や製
造工数が多くかかるという問題があった。
【0020】本発明は、このような実情に鑑みてなされ
たものであり、暗号装置と復号装置の回路構成を同一に
することができると共に、中間鍵K1 〜K16を記憶する
ためのメモリを必要としない暗号装置を提供することを
目的とする。
【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 ))と暗号化鍵のブロック
0 の排他的論理和を演算し、演算結果とブロックD0
をそれぞれブロックD1 、C1 として中間鍵生成回路1
2に供給すると共に、この演算結果の下位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 であり(以下ブロックC0
を単に中間鍵K8 という)、ブロックD0 の下位24ビ
ットは中間鍵K7 であり(以下ブロックD0 を単に中間
鍵K7 という)、この中間鍵生成回路11は、中間鍵K
8 を出力すると共に、中間鍵K7 を関数fk により攪拌
した後、得られるデータ(fk (K7 ))と中間鍵K8
の排他的論理和を演算し、すなわち下記式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 という)と下位32
ビット(以下ブロックR0 という)とに分割する。例え
ば並び換えられた平文を08090A0B0C0D0E
0Fhとすると、ブロックL0 、R0 はそれぞれ080
90A0Bh、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】一方、復号化処理の際に、並べ換え回路2
9は、64ビット単位でデータとして供給される暗号文
を所定の行列Iにより並べ換え、並び換えられた暗号文
を上位32ビット(以下ブロックL0 という)と下位3
2ビット(以下ブロックR0という)とに分割する。
【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 をその添字が大きい
順に生成することができ、従来の装置で必要であった中
間鍵を一旦記憶しておくためのメモリが不要となる。さ
らに、復号化鍵と暗号文を連続して入力することができ
る。
【0067】また、暗号化鍵と復号化鍵が異なるため、
どちらか一方が漏れても、他方は安全であり、セキュリ
ティを向上させることができる。
【0068】なお、本発明は上述の実施例に限定される
ものではなく、例えば、上述の実施例ではランダム化回
路の段数を8段としているが、偶数段であればよい。ま
た例えば、関数回路1、5は、図2、図3に示す回路構
成に限定されるものではない。
【0069】
【発明の効果】以上の説明でも明らかなように、本発明
を適用した暗号装置では、暗号化処理の際に、暗号化鍵
を順次ランダム化して、複数の中間鍵と復号化鍵を生成
し、これらの中間鍵を用いて平文を順次ランダム化し
て、暗号文を生成する。一方、復号化処理の際に、復号
化鍵を順次ランダム化して、複数の中間鍵を逆の順序で
生成し、これらの中間鍵を用いて暗号文を順次ランダム
化して、平文を生成するようにすることにより、暗号装
置と復号装置を同一の回路構成とすることができ、設計
や製造工数を削減することができる。また、復号装置と
して用いるときに、中間鍵をその添字が大きい順に生成
することができ、従来の装置で必要であったメモリを必
要としない。さらに、復号化鍵と暗号文を連続して入力
することができる。
【図面の簡単な説明】
【図1】本発明を適用した暗号装置の回路構成を示すブ
ロック図である。
【図2】上記暗号装置を構成する中間鍵生成回路の関数
回路の具体的な回路構成を示す図である。
【図3】上記暗号装置を構成するランダム化回路の関数
回路の具体的な回路構成を示す図である。
【図4】上記関数回路のデータ攪拌効果を示す図であ
る。
【図5】DESにおける暗号装置の回路構成を示すブロ
ック図である。
【符号の説明】
10・・・鍵生成部 11〜18・・・中間鍵生成回路 20・・・暗号化処理部 21〜28・・・ランダム化回路

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 暗号化鍵を順次ランダム化し、各ランダ
    ム化の過程で得られる複数の中間鍵と、最終のランダム
    化の過程で得られる復号化鍵とを出力すると共に、該復
    号化鍵を入力すると、上記複数の中間鍵を逆の順序で出
    力する鍵生成手段と、 該鍵生成手段から順番に供給される複数の中間鍵を用い
    て平文または暗号文を順次ランダム化して、暗号文また
    は平文を生成する暗号化処理手段とを備えることを特徴
    とする暗号装置。
JP4252716A 1992-09-22 1992-09-22 暗号装置 Pending JPH06102820A (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=17241265

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4252716A Pending JPH06102820A (ja) 1992-09-22 1992-09-22 暗号装置

Country Status (1)

Country Link
JP (1) JPH06102820A (ja)

Cited By (2)

* 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 拡大鍵生成装置、暗号化装置および暗号化システム
US9058507B2 (en) 2007-02-20 2015-06-16 Megachips Corporation Signal processor with an encrypting or decrypting device in a memory system

Cited By (2)

* 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 拡大鍵生成装置、暗号化装置および暗号化システム
US9058507B2 (en) 2007-02-20 2015-06-16 Megachips Corporation Signal processor with an encrypting or decrypting device in a memory system

Similar Documents

Publication Publication Date Title
AU767323B2 (en) Block encryption device using auxiliary conversion
KR100435052B1 (ko) 암호화장치
US6298136B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP3225440B2 (ja) デジタル信号ブロックの変換装置およびその使用方法
JP2003037482A (ja) 疑似乱数生成装置またはそれを用いた暗号復号処理装置
JPH0675525A (ja) 暗号通信装置
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
JP2950485B2 (ja) ストリーム暗号処理装置
JPH06102820A (ja) 暗号装置
JP2825205B2 (ja) 暗号装置
JPH06102821A (ja) 暗号装置
JP2927079B2 (ja) データ暗号化方法およびデータ暗号化装置
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JP2000075785A (ja) 高速暗号処理回路および処理方法
JPH09269727A (ja) 暗号化方法および暗号化装置
JP3473171B2 (ja) 逐次暗号方式
JPH10153954A (ja) 暗号装置
JP2002091296A (ja) 拡大鍵生成装置、拡大鍵生成プログラムおよび記録媒体
JP2000089666A (ja) 暗号化/復号化装置
JPH11212451A (ja) 暗号処理装置
JP4745598B2 (ja) 暗号回路
WO2002058036A1 (en) Encryption circuit
JPH09311627A (ja) 循環演算にもとづく暗号の暗号鍵生成方法及び装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20030408