JPH0990870A - 基本変換方法、暗号化方法、基本変換回路および暗号装置 - Google Patents

基本変換方法、暗号化方法、基本変換回路および暗号装置

Info

Publication number
JPH0990870A
JPH0990870A JP7249054A JP24905495A JPH0990870A JP H0990870 A JPH0990870 A JP H0990870A JP 7249054 A JP7249054 A JP 7249054A JP 24905495 A JP24905495 A JP 24905495A JP H0990870 A JPH0990870 A JP H0990870A
Authority
JP
Japan
Prior art keywords
output
circuit
integer
selector
bit
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
JP7249054A
Other languages
English (en)
Inventor
Michio Shimada
道雄 島田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP7249054A priority Critical patent/JPH0990870A/ja
Publication of JPH0990870A publication Critical patent/JPH0990870A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 多重剰余暗号において、線形変換以外の演算
を不要にすることで、回路規模を小さくするとともに、
データ速度を高速化する。 【解決手段】 レジスタ101は(n+1)ビット整数
を保持して、保持している整数をセレクタ102に供給
する。セレクタ102は、入力されたnビットの平文に
最上位ビットとして論理“0”を付加して得られる(n
+1)ビット整数と、レジスタ101に保持されている
(n+1)ビット整数のいずれか一方を選択して出力す
る。線形変換回路103は、セレクタの出力する整数に
対して線形変換を施して変換結果をレジスタ101に供
給する。線形変換回路103の出力の最上位ビットは制
御回路104にも供給され、線形変換回路103の出力
の下位nビットは出力端子107にも供給されている。
制御回路104は、線形変換回路103の出力の最上位
ビットに依存して制御フローを選択する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号装置に関し、
特に平文に予め決められた演算を施して暗号文に変換し
たり、暗号文を元の平文に復元する、暗号装置に関す
る。
【0002】
【従来の技術】一般に通信システムや計算機システムに
おいては、許可されていない者が不正に情報を取得する
ことなどを防止するために、平文に予め決められた演算
を施して暗号文に変換したり、暗号文を元の平文に復元
することが行われている。ここで、平文を暗号文に変換
する操作のことを暗号化と呼び、暗号文を元の平文に復
元することを復号化と呼ぶ。
【0003】従来から広く知られている秘密鍵暗号に、
多重剰余暗号と呼ばれるものがある。この秘密鍵暗号で
は、下記の数1式で定義される基本変換ELT[a,
b,p](x)の組み合わせによって構成される関数に
よって、平文を暗号文に変換する。なお、ここで、平文
とは暗号対象のデータのことであり、暗号文とは暗号化
されたデータのことである。
【0004】
【数1】 ここで、pは2n よりも小さな素数で、aは素数pと素
であるような整数で、bは予め定められた整数であり、
xorはビットごとの排他的論理和を意味する。なお、
数学などで用いられる通常の記法に従えば、ELT
[a,b,p]ではなく、ELTa,b,p と書くべきだ
が、ここでは便宜的にELT[a,b,p]という記法
を用いる。また、pは法(モジュロ)と呼ばれる。
【0005】図6に従来の基本変換回路の例を示す。図
示の基本変換回路は、第1の線形変換回路601と、第
1のセレクタ602と、第1の比較器603と、否定回
路604と、第2の線形変換回路605と、第2のセレ
クタ606と、第2の比較器607とを有する。また、
基本変換回路は第1乃至第4の入力端子608,60
9,610,および611と、出力端子612とを持
つ。
【0006】第1の線形変換回路601は、データ入力
端601i と、第1乃至第3のパラメータ入力端601
p1,601p2,601p3と、データ出力端601o とを
もつ。第1のセレクタ602は第1および第2のデータ
入力端602i1および602i2と、選択入力端602s
と、データ出力端602o とをもつ。第1の比較器60
3は第1および第2のデータ入力端603i1および60
i2と、比較出力端603c とをもつ。
【0007】同様に、第2の線形変換回路605は、デ
ータ入力端605i と、第1乃至第3のパラメータ入力
端605p1,605p2,605p3と、データ出力端60
oとをもつ。第2のセレクタ606は第1および第2
のデータ入力端606i1および606i2と、選択入力端
606s と、データ出力端606o とをもつ。第2の比
較器607は第1および第2のデータ入力端607i1
よび607i2と、比較出力端607c とをもつ。
【0008】第1の入力端子608は、第1および第2
の線形変換回路601および605の第1のパラメータ
入力端601p1および605p1と、第1および第2の比
較器603および607の第1のデータ入力端603i1
および607i1に接続されている。第2の入力端子60
9は、第1の線形変換回路601のデータ入力端601
i 、第1のセレクタ602の第1のデータ入力端602
i 、および第1の比較器603の第2のデータ入力端6
03i2に接続されている。第3の入力端子610は、第
1および第2の線形変換回路601および605の第2
のパラメータ入力端601p2および605p2に接続され
ている。第4の入力端子611は、第1および第2の線
形変換回路601および605の第3のパラメータ入力
端601p3および605p3に接続されている。第1の線
形変換回路601のデータ出力端601o は第1のセレ
クタ602の第2のデータ入力端602i2に接続されて
いる。第1の比較器603の比較出力端603c は第1
のセレクタ602の選択入力端602s に接続されてい
る。
【0009】第1のセレクタ602のnビットの出力信
号のうち、最上位ビットは否定回路604で反転され、
その反転されたビットと下位(n−1)ビットは、第2
の線形変換回路605のデータ入力端605i 、第2の
比較器607の第2のデータ入力端607i2、および第
2のセレクタ606の第1のデータ入力端606i1に供
給される。第2の線形変換回路605のデータ出力端6
05o は第2のセレクタ606の第2のデータ入力端6
06i2に接続されている。第2の比較器607の比較出
力端607c は第2のセレクタ606の選択入力端60
s に接続されている。第2のセレクタ606のデータ
出力端606o は出力端子612に接続されている。
【0010】図6において、第1の入力端子608には
第1の変換パラメータとして素数pが、第3の入力端子
610と第4の入力端子611にはそれぞれ第2および
第3の変換パラメータとして整数aとbが供給されてい
る。第1の線形変換回路601は、第2の入力端子60
9から入力されるnビットの整数xに対して、線形変換
(ax+b)(mod p)を施して、その第1の線形
変換結果を出力する。第1の比較器603は素数pと整
数xの大小を比較して、その第1の比較結果を第1のセ
レクタ602に供給する。第1のセレクタ602は、x
<pならば、第1の線形変換回路601の出力である第
1の線形変換結果を選択して出力し、x≧pならば、整
数xを選択して出力する。第1のセレクタ602の出力
信号は、その最上位ビットが否定回路604によって反
転される。
【0011】最上位ビットが反転された第1のセレクタ
602の出力信号を整数x´とすると、整数x´は第2
の線形変換回路605、第2のセレクタ606、および
第2の比較器607に供給される。第2の線形変換回路
605は、整数x´に対して、線形変換(ax´+b)
(mod p)を施して、その第2の線形変換結果を出
力する。第2の比較器607は素数pと整数x´の大小
を比較して、その第2の比較結果を第2のセレクタ60
6に供給する。第2のセレクタ606は、x´<pなら
ば、第2の線形変換回路605の出力である第2の線形
変換結果を選択して出力し、x´≧pならば、整数x´
を選択して出力する。そして、第2のセレクタ606の
出力信号が基本変換の変換結果として、出力端子612
から出力される。
【0012】多重剰余暗号は、そのような基本変換の組
み合わせによって構成される関数によって、平文を暗号
文に変換するものである。基本変換の組合せ方法として
は様々なものがあるが、例えば、下記の数2式のように
して平文Mを暗号文Cに暗号化するようなものがある。
【0013】
【数2】 ここで、p0 ,p1 は相異なるnビットの素数である。
多重剰余暗号では、以上のように、異なる法を用いた基
本変換を組合せることによって、非線形な変換を実現し
ている。
【0014】なお、多重剰余暗号にもとづく暗号装置に
ついては、特開平6−75525号公報や米国特許第
5,301,235号明細書に詳しい解説がある。ま
た、暗号文Cから平文Mを復元するためには、基本変換
の逆変換が必要になるが、これについても、上記公開公
報および上記米国特許明細書に解説がある。多重剰余暗
号の基本変換の場合には、次の数3式を満たすようなa
´,b´を用いた基本変換ELT[a´,b´,p]
が、ELT[a,b,p]の逆変換になることが知られ
ている。
【0015】
【数3】 また、従来から広く知られている秘密鍵暗号に、Data E
ncryption Standard(DES)と呼ばれるものがある。
図7にDESにもとづく暗号装置の例を示す。図示のD
ES暗号装置は、第1の転置回路401と、第1および
第2のレジスタ402および403と、第1および第2
のセレクタ404および405と、排他的論理和回路4
06と、第2の転置回路411と、関数f回路701
と、制御回路702とを有する。DES暗号装置は第1
および第2の入力端子409および410と、出力端子
411をもつ。
【0016】第1の転置回路401は、データ入力端4
01i と、第1および第2のデータ出力端40101およ
び40102とをもつ。第1のレジスタ402は、データ
入力端402i と、ラッチ入力端402l と、データ出
力端402o とをもつ。第2のレジスタ403は、デー
タ入力端403i と、ラッチ入力端403l と、データ
出力端403o とをもつ。第1のセレクタ404は、第
1および第2のデータ入力端404i1および404
i2と、選択入力端404s と、データ出力端404o
をもつ。第2のセレクタ405は、第1および第2のデ
ータ入力端405i1および405i2と、選択入力端40
s と、データ出力端405o とをもつ。排他的論理和
回路406は、第1および第2のデータ入力端406i1
および406i2と、データ出力端406o とをもつ。第
2の転置回路407は、第1および第2のデータ入力端
407i1および407i2と、データ出力端407o とを
もつ。関数f回路701は、データ入力端701i と、
パラメータ入力端701p と、データ出力端701o
をもつ。制御回路702は、制御入力端702i と、第
1乃至第3の制御出力端702o1,70202,702o3
とをもつ。
【0017】第1の入力端子409は制御回路702の
制御入力端702i に接続されている。第2の入力端子
410は第1の転置回路401のデータ入力端401i
に接続されている。第1の転置回路401の第1および
第2のデータ出力端401o1および401o2はそれぞれ
第1および第2のセレクタ404および405の第1の
データ入力端404i1および405i2に接続されてい
る。第1および第2のセレクタ404および405の第
2のデータ入力端404i2および405i2はそれぞれ第
1および第2のレジスタ402および403のデータ出
力端402o および403o に接続されている。
【0018】第1のセレクタ404のデータ出力端40
o は排他的論理和回路406の第1のデータ入力端4
06i1に接続されている。第2のセレクタ405のデー
タ出力端405o は関数f回路701のデータ入力端7
01i に接続されている。関数f回路701のデータ出
力端701o は排他的論理和回路406の第2のデータ
入力端406i2に接続されている。
【0019】排他的論理和回路406のデータ出力端4
06o は第2のレジスタ403のデータ入力端403i
および第2の転置回路407の第1のデータ入力端40
i1に接続されている。第2のセレクタ405のデータ
出力端405o は、また、第1のレジスタ402のデー
タ入力端402i および第2の転置回路407の第2の
データ入力端407i2に接続されている。第2の転置回
路407のデータ出力端407o は出力端子411に接
続されている。
【0020】制御回路702の第1乃至第3の制御出力
端702o1〜702o3は、それぞれ、第1および第2の
レジスタ402および403のラッチ入力端402l
よび403l 、第1および第2のセレクタ404および
405の選択入力端404sおよび405s 、および関
数f回路701のパラメータ入力端701p に接続され
ている。
【0021】図7において、第1の入力端子409には
暗号鍵が供給されている。そして、制御回路702は、
予め決められたアルゴリズムにもとづいて、この暗号鍵
から関数f回路701に供給すべきローカル鍵K0 ,K
1 ,…,Kr-1 を生成する。ここで、定数rは一般には
16である。なお、暗号装置によっては、第1の入力端
子409から、直接に、ローカル鍵K0 ,K1 ,…,K
r-1 が入力されることもある。暗号化を施す2nビット
の平文は、第2の入力端子410を介して第1の転置回
路401に入力される。ここで、nは一般には32であ
る。第1の転置回路401は、予め決められた配線によ
って構成され、入力された整数(平文)のビットの位置
を入れ換えたものを出力する。そして、第1の転置回路
401の出力信号の上位nビットと下位nビットは、そ
れぞれ第1および第2のセレクタ404および405に
供給される。
【0022】第1のセレクタ404は、制御回路702
から供給される選択制御信号に依存して、第1の転置回
路401の出力信号の上位nビットあるいは第1のレジ
スタ402の出力信号のいずれかを選択して出力する。
第2のセレクタ405は、制御回路702から供給され
る選択制御信号に依存して、第1の転置回路401の出
力信号の下位nビットあるいは第2のレジスタ403の
出力信号のいずれかを選択して出力する。第1のセレク
タ404の出力信号は、排他的論理和回路406に供給
される。第2のセレクタ405の出力信号は、関数f回
路701と第2の転置回路407と第1のレジスタ40
2に供給される。
【0023】関数f回路701は、制御回路409から
供給されるローカル鍵Kj (j=0,1,…,r−1)
に基づいて、第2のセレクタ405の出力に対して関数
fを施して、その関数処理結果を出力する。排他的論理
和回路406は、第1のセレクタ404の出力信号と関
数f回路701の出力信号とのビットごとの排他的論理
和を計算し、計算結果を出力する。排他的論理和回路4
06の出力信号は第2のレジスタ403と第2の転置回
路407に供給される。
【0024】第1のレジスタ402は、制御回路702
からラッチ制御信号が供給されると、第2のセレクタ4
05の出力信号を保持して、保持している値を第1のセ
レクタ404に供給する。第2のレジスタ403は、制
御回路702からラッチ制御信号が供給されると、排他
的論理和回路406の出力信号を保持して、保持してい
る値を第2のセレクタ405に供給する。第2の転置回
路407は、予め決められた配線によって構成され、入
力された整数のビットの位置を入れ換えたものを出力す
る。第2の転置回路407の出力信号は、出力端子41
1から出力される。
【0025】図7に加えて図8を参照して、制御回路7
02の制御動作について説明する。まず、変数jを0と
し(ステップ801)、第1の入力端子409から暗号
鍵を入力し、予め決められたアルゴリズムにもとづい
て、この暗号鍵からローカル鍵K0 ,K1 ,…,Kr-1
を生成する(ステップ802)。そして、制御回路70
2は、第1および第2のセレクタ404および405が
左側(第1のデータ入力端404i1および405i1)の
入力信号を選択して出力するように、第1および第2の
セレクタ404および405に選択制御信号を送る(ス
テップ803)。次に、制御回路702はローカル鍵K
j を関数f回路701に出力する(ステップ804)。
次に、制御回路702は変数jの値を1だけ増やす(ス
テップ807)。次に、制御回路702は変数jが定数
rに等しいかどうかを調べる(ステップ808)。もし
変数jが定数rに等しければ(ステップ808のYE
S)、処理を終了し、一方、等しくなければ(ステップ
808のNO)、ステップ805に制御を移す。ステッ
プ805においては、第1および第2のレジスタ402
および403がそれに入力する入力信号を保持するよう
に、制御回路702は第1および第2のレジスタ402
および403にラッチ制御信号を送る。次に、第1およ
び第2のセレクタ404および405が右側(第2のデ
ータ入力端404i2および405i2)の入力信号を選択
して出力するように、制御回路702は第1および第2
のセレクタ404および405に選択制御信号を送り
(ステップ806)、再び、ステップ804に戻って処
理を進める。
【0026】以上のように制御すれば、処理を終了した
時点で、第2の入力端子410に供給されている平文に
対応する暗号文が、出力端子411から出力される。
【0027】図9は、従来のDES暗号装置中の関数f
回路701を示すブロック図である。図示の関数f回路
701は、拡大転置回路901と、排他的論理和回路9
02と、8個のリード・オンリ・メモリ(ROM)90
3と、転置回路904とを有する。関数f回路701
は、第1および第2の入力端子905および906と、
出力端子907とを持つ。
【0028】拡大転置回路901は、データ入力端90
i と、データ出力端901o とを持つ。排他的論理和
回路902は、第1および第2のデータ入力端902i1
および902i2と、データ出力端902o とを持つ。R
OM903の各々は、データ入力端903i と、データ
出力端903o とを持つ。転置回路904は、データ入
力端904i と、データ出力端904o とを持つ。
【0029】第1の入力端子905は排他的論理和回路
902の第1のデータ入力端902i1に接続され、第2
の入力端子906は拡大転置回路901のデータ入力端
901i に接続されている。拡大転置回路901のデー
タ出力端901o は排他的論理和回路902の第2のデ
ータ入力端902i2に接続されている。排他的論理和回
路902のデータ出力端902o は8個のROM903
のデータ入力端903i に接続されている。8個のRO
M903のデータ出力端903o は転置回路904のデ
ータ入力端904i に接続されている。転置回路904
のデータ出力端904o は出力端子907に接続されて
いる。
【0030】図9に加えて図7をも参照して、第1の入
力端子905はパラメータ入力端701p に相当し、第
2の入力端子906はデータ入力端701i に相当し、
出力端子907はデータ出力端701o に相当する。第
1の入力端子905には制御回路702の第3の制御出
力端702o3から変換パラメータKj が供給されてお
り、第2の入力端子906には第2のセレクタ403の
出力信号が供給されている。また、出力端子907の出
力信号が排他的論理和回路406の第2のデータ入力端
406i2に供給されている。
【0031】拡大転置回路901は、第2の入力端子9
06から入力された32ビットの整数に対して、予め決
められた拡大転置を施し、得られた48ビットの整数を
排他的論理和回路902の第2のデータ入力端902に
供給する。ここで、拡大転置とは、ビットの位置を変え
てしかも一部の入力ビットを重複して出力する変換のこ
とであり(DESの場合には入力のうち16ビットが重
複して出力される)、拡大転置回路901は予め決めら
れた配線によって構成される。排他的論理和回路902
は、第1の入力端子905から供給される48ビットの
変換パラメータ(ローカル鍵)Kj と、拡大転置回路9
01から出力される48ビットの整数との、ビットごと
の排他的論理和を計算し、得られた48ビットの出力信
号を、6ビットずつ8個のROM903に供給する。そ
れぞれのROM903には予めデータが書き込まれてお
り、それぞれのROM903は、排他的論理和回路90
2から供給される6ビットの信号をアドレスとして取り
込み、そのアドレスに書き込まれている4ビットのデー
タを出力する。転置回路904は8個のROM908か
ら出力される計32ビットの信号に対して予め決められ
た転置を施し、その転置結果を出力端子907に供給す
る。ここで、転置とは、ビットの位置を変えて出力する
変換のことであり、転置回路904は予め決められた配
線によって構成される。
【0032】また、従来から広く知られている秘密鍵暗
号に、DESライク暗号と呼ばれるものがある。DES
ライク暗号とは、装置の基本構成がDESと同様であ
り、すなわち装置の基本構成が図7と同様であり、関数
f回路701だけがDESと異なるものである。従来の
DESライク暗号の関数f回路701においては、一般
には、DESで使われているものよりも入出力ビット数
の大きなROMがROM903として使われていた。例
えば、DESにおいては、ROM903として6ビット
入力4ビット出力のROMが8個使われるのに対して、
DESライク暗号においては、例えば、ROM903と
して12ビット入力8ビット出力のROMが4個使われ
る。入出力の大きなROMほど複雑な変換が実現できる
ので、DESよりも安全な暗号が必要な用途では、しば
しば、そのようなDESライク暗号が使われていた。
【0033】なお、DESに関しては、例えば、198
2年にアジソン・ウェスレイ出版社から刊行されたデニ
ング著「クリプトグラフィー・アンド・データ・セキュ
リティ」(D.E.R. Denning著“Cryptography and Data
Security”,Addison-WesleyPublishing Company, 1982
)の第90頁から第101頁にかけて解説がある。
【0034】なお、本発明に関連する先行技術として、
特開平4−276787号公報(以下、先行技術1と呼
ぶ)には、小さな回路規模で、大きな桁の整数の剰余乗
算を、高速に計算可能とする「演算装置」、およびこれ
を利用して、暗号化通信のための暗号化・復号を行なう
「暗号化通信方法」が開示されている。この先行技術1
では、与えられた第1,第2の整数の積を第3の整数で
除算した剰余を演算する演算装置に、値を保持する記憶
手段と、前記第1の整数の各ビットを順次入力して前記
第2の整数に乗じる乗算手段と、前記記憶手段からの入
力と、前記乗算手段からの入力とを加算し、前記記憶手
段の値において前記第3の整数の最大桁を越える部分に
つき、前記第3の整数に対する剰余を求める演算を施
し、その結果を前記記憶手段に出力する演算手段とを具
える。
【0035】また、特開平2−151892号公報(以
下、先行技術2と呼ぶ)には、第1の計算装置の最終的
に求めたいべき乗剰余演算の「べき乗」の部分を第2の
計算装置によって行うことにより、高速化を達成し、秘
密データの安全性を保証する「べき乗剰余演算装置」が
開示されている。この先行技術2は、素数pと素数qの
積nを法とし、正整数dをべき数として入力xのべき乗
剰余演算を行う装置で、第1の計算装置は最終的に求め
たい法n上のべき乗剰余演算を法pと法q上の演算に分
割して、それぞれを第2の計算装置に計算してもらう。
第2の計算装置はnの素因数p,qを知らないので第1
の計算装置から与えらたデータより第1の計算装置のI
Cカードの秘密の情報を得ることは困難である。第1の
計算装置は第2の計算装置に計算してもらった2つのデ
ータを中国人の剰余定理を用いて結合して所望の結果を
得る。これによりICカード側の演算が高速化され、ト
ータルの暗号化時間が短縮される。
【0036】さらに、特開昭63−129388号公報
(以下、先行技術3と呼ぶ)には、指数がある一定の桁
数より大きく設定されている場合に特定の大きな指数に
対する既知のべき乗剰余値の補正値を計算することによ
り、べき乗剰余演算を高速に行なうことができるように
した「RAS暗号の復号化装置」が開示されている。こ
の先行技術3では、第1のレジスタは素数p,qの積を
法nとしてセットし、第2のレジスタは被べき乗数aを
セットし、フラグレジスタは法nと被べき乗数Aとを互
いに素である時フラグ1を立てておく。第3のレジスタ
は指数dをセットし、第4のレジスタは{(p−1)
(q−1)−d}に法nで合同な指数d´をセットす
る。まず、入力データa、法n、指数d、入力データa
と法nとの最小公約数が1のときの指数d´、最大公約
数が1かどうかを示すフラグFLGを初期設定する。次
にフラグFLGが1の場合には、指数d´を用いたべき
乗剰余の計算を行なった後、その出力値x´の乗法的逆
元−x´の計算を実行して、この−x´を入力データa
の復号化出力とする。これにより、べき乗剰余計算の乗
除算回数が減少し、高速にRSA暗号の復号化処理を行
なうことができる。
【0037】
【発明が解決しようとする課題】従来の多重剰余暗号に
おいては、次に述べるような問題点がある。第1の問題
点は、基本変換ELTを小規模な回路で高速に処理でき
ないということである。その理由は、1回の基本変換E
LTにつき、平均で1〜2回の線形変換に加え、2回の
比較を行わなければならないからである。
【0038】第2の問題点は、従来の多重剰余暗号にお
いては、基本変換ELTの攪拌効果が十分でないという
ことである。すなわち、ELT[a,b,p]の入力と
素数pとの大小関係と、ELT[a,b,p]の出力と
素数pとの大小関係との間に相関が出てしまうというこ
とである。その理由は、入力と素数pとの大小関係や中
間結果と素数pとの大小関係に依存して、ELT[a,
b,p]において行なわれる処理の仕方が変わるからで
ある。
【0039】第3の問題点は、従来のDESライク暗号
の安全性を高めようとすると、装置規模が大きくなると
いうことである。というのも、DESライク暗号の安全
性を高めるには、入出力ビット数の大きなリード・オン
リ・メモリ(ROM)が必要だからである。
【0040】尚、先行技術1は、剰余演算の繰り返しに
よって、べき乗剰余演算を実現する技術を開示するだけ
であり、本発明が対象とする多重剰余暗号とは変換の仕
方が異なる。先行技術2も先行技術1と同様に、べき乗
剰余演算装置を開示するだけであり、本発明のものとは
変換の仕方が異なる。先行技術3は、べき乗剰余計算を
行って暗号文から復号文を復号する復号化装置に関する
技術を開示するだけで、本発明のものとは変換の仕方が
異なる。すなわち、先行技術1〜3のいずれも、べき乗
剰余演算に基づく暗号化および復号化に関する技術を開
示するだけである。
【0041】本発明は、線形変換だけにもとづく攪拌効
果の大きな基本変換を実現することで、以上の問題点を
解決して、構成が簡単で、高速で動作し、安全な暗号化
方法および暗号装置を提供することを目的とする。
【0042】
【課題を解決するための手段】本発明による暗号装置
は、(n+1)ビットの整数を保持するレジスタと、入
力されたnビットの平文に最上位ビットとして論理
“0”を付加して得られる(n+1)ビットの整数と前
記レジスタに保持されている(n+1)ビットの整数の
いずれか一方を出力するセレクタと、このセレクタの出
力する(n+1)ビトの整数に対して所定の線形変換を
施して変換結果を前記レジスタに供給する線形変換回路
とから成る変換部と、前記線形変換回路の出力信号の最
上位ビットに依存して制御フローを選択し、選択した制
御フローに従って前記レジスタと前記セレクタと前記線
形変換回路に制御信号を供給する制御回路とを具備し、
線形変換回路の出力信号が2n よりも小さくなるまで同
じ法について線形変換を繰り返すことを特徴とする。
【0043】ただし、DESライク暗号装置の関数f回
路として、上記暗号装置の変換部を用いる場合には、線
形変換の繰り返しを予め決められた回数で打ち切っても
良い。
【0044】
【作用】ブロック暗号においては、整数の集合{0,
…,2n −1}から整数の集合{0,…,2n −1}の
上への1対1変換が基本変換として使われる。ここで、
nは整数である。このため、pを素数とするような線形
変換(ax+b)(modp)は、ブロック暗号の基本
変換としては使えない。なぜなら、線形変換(ax+
b)(mod p)は、aとpが互いに素ならば、整数
の集合{0,…,p−1}から整数の集合{0,…,p
−1}の上への1対1変換であるが、pは2n と等しく
ないからである。もっとも、ブロック暗号の基本変換と
して使えるような変換を線形変換(ax+b)(mod
p)から導くことは可能である。その方法としては、
例えば、前述の多重剰余暗号で使われているような手法
である。
【0045】さて、従来の多重剰余暗号では、線形変換
の定義域と値域を拡大することで、ブロック暗号の基本
変換を導いていた。従って、逆に、2n よりも大きな整
数を法pとして用い(注:通常はpとして素数が選ばれ
るが、素数でなくとも構わない)、線形変換の定義域と
値域の一部分だけを使うことで、ブロック暗号の基本変
換を導くことも考えられる。すなわち、線形変換y=
(ax+b)(modp)によってxが2n 以上の値y
に変換されたならば、そのyを何らかの方法で2n より
小さな値に置き換えることで、整数の集合{0,…,2
n −1}から整数の集合{0,…,2n −1}の上への
1対1変換を実現することも考えられる。
【0046】問題は、そういった置き換えを行う方法で
ある。リード・オンリ・メモリ(ROM)を使って置き
換えを行うのでは、nが大きくなるとメモリ容量が大き
くなり過ぎて実用的でない。そこで本発明では、線形変
換y=(ax+b)(modp)の変換結果yが2n
上であったら、yが2n よりも小さくなるまで線形変換
y=(ay+b)(mod p)を繰り返して、最終的
に得られたyの値で元のyの値を置き換えることにし
た。もし、線形変換(ax+b)(mod p)が1対
1の変換で、漸化式xj+1 =(axj +b)(mod
p)によって生成される擬似乱数系列x1 ,x2 ,…の
最大周期がLが、最大周期を与える擬似乱数系列中に出
現しない(2n −L)個の整数xのすべてが、線形変換
(ax+b)(mod p)によって2n よりも小さな
整数に変換されるように、変換パラメータa,b,pを
選んでおけば、以上で述べた操作によって、整数の集合
{0,…,2n −1}から整数の集合{0,…,2n
1}の上への1対1変換が得られる。このことは具体例
で考えてみると良く分かる。例えば、線形変換y=5x
(mod 7)において以上で述べた操作を行うと、整
数の集合{0,1,2,3(=22 −1)}から整数の
集合{0,1,2,3}の上への1対1変換が得られる
が、線形変換y=5x(mod 7)は1対1であり、
漸化式xj+1=5xj (mod 7)によって生成され
る擬似乱数系列の最大周期は6で、最大周期を与える擬
似乱数系列1,5,4,6,2,3,…には0が出現し
ていないが、0は線形変換y=5x(mod 7)によ
って0に写されている。
【0047】
【発明の実施の形態】以下、本発明の実施形態について
図面を参照して詳細に説明する。
【0048】図1に本発明の第1の実施形態による暗号
装置を示す。図示の暗号装置は、基本変換回路として
も、暗号装置としても機能する。図示の暗号装置は、レ
ジスタ101、セレクタ102および線形変換回路10
3から成る変換部100と、制御回路104とを有す
る。暗号装置は、第1および第2の入力端子105およ
び106と、出力端子107とを持つ。
【0049】レジスタ101は、(n+1)本のデータ
入力端101i と、ラッチ入力端101l と、(n+
1)本のデータ出力端101o とをもつ。セレクタ10
2は、各々が(n+1)本の第1および第2のデータ入
力端102i1および102i2と、選択入力端102
s と、(n+1)本のデータ出力端102o とをもつ。
線形変換回路103は、(n+1)本のデータ入力端1
03i と、パラメータ入力端103p と、(n+1)本
のデータ入力端103o とをもつ。制御回路104は、
第1および第2の制御入力端104i1および104
i2と、第1乃至第3の制御出力端104o1,10402
および104o3とをもつ。
【0050】第1の入力端子105は制御回路104の
第1の制御入力端104i1に接続されている。第2の入
力端子106はセレクタ102の第1のデータ入力端1
02i1の下位n本に接続されている。セレクタ102の
第1のデータ入力端102i1の最上位の1本には論理
“0”の信号が供給されている。セレクタ102の第2
のデータ入力端102i2はレジスタ101のデータ出力
端101o に接続されている。セレクタ102のデータ
出力端102o は線形変換回路103のデータ入力端1
03i に接続されている。線形変換回路103のデータ
出力端103o はレジスタ101のデータ入力端101
i に接続されると共に、そのデータ出力端103o の下
位n本は出力端子107に接続され、最上位の1本は制
御回路104の第2の制御入力端104i2に接続されて
いる。制御回路104の第1乃至第3の制御出力端10
o1〜104o3は、それぞれレジスタ101のラッチ入
力端101l 、セレクタ102の選択入力端102s
および線形変換回路103のパラメータ入力端103p
に接続されている。
【0051】次に、図1に示した暗号装置の動作につい
て説明する。第1の入力端子105には変換パラメータ
が供給されている。変換を施すnビットの入力整数(平
文)は、第2の入力端子106を介してセレクタ102
の第1のデータ入力端102i1に入力される。ただし、
入力整数(平文)がセレクタ102に入力される際に
は、入力整数(平文)に最上位ビットとして論理“0”
が付け加えられて、(n+1)ビットの整数に変換され
てセレクタ102の第1のデータ入力端102i1 に入力
される。セレクタ102の第2のデータ入力端102i2
にはレジスタ101の出力信号が供給されている。セレ
クタ102は、制御回路104の第2の制御出力端10
o2から選択入力端104s に供給される選択制御信号
に依存して、上記(n+1)ビットの整数あるいはレジ
スタ101の出力信号のいずれかを選択して出力する。
セレクタ102の出力信号は線形変換回路103のデー
タ入力端103i に供給される。線形変換回路103
は、制御回路104の第3の制御出力端104o3からパ
ラメータ入力端103p に供給される線形変換のパラメ
ータに基づいて、セレクタ103の出力信号に対して線
形変換を施して、その変換結果を出力する。レジスタ1
01は、制御回路104の第1の制御出力端104o1
らラッチ入力端101l にラッチ制御信号が供給される
と、線形変換回路103の出力信号を保持して、保持し
ている値をセレクタ102の第2のデータ入力端102
i2に供給する。なお、線形変換回路103の出力信号の
うち、最上位ビット(MSB)は制御回路104の第2
の制御入力端104i2にも供給されており、下位nビッ
トは出力端子107にも供給されている。
【0052】図1に示した暗号装置を基本変換回路とし
て機能させる場合には、制御回路104は、図2に示す
フローチャートに従って制御を行う。まず、制御回路1
04は第1の入力端子105から変換パラメータa,
b,pを入力する(ステップ201)。セレクタ102
が左側(第1のデータ入力端102i1)の入力信号を選
択して出力するように、制御回路104はセレクタ10
2に選択制御信号を送る(ステップ202)。制御回路
104は変換パラメータa,b,pを線形変換回路10
3に出力する(ステップ203)。
【0053】次に、制御回路104は線形変換回路10
3の出力信号の最上位ビット(MSB)を調べる(ステ
ップ204)。この最上位ビット(MSB)が“0”で
あれば(ステップ204のNO)、処理を終了する。一
方、この最上位ビット(MSB)が“1”であれば(ス
テップ204のYES)、ステップ205に処理を進め
る。ステップ205においては、レジスタ101が線形
変換回路103の出力信号を保持するように、制御回路
104はレジスタ101にラッチ制御信号を送る(ステ
ップ205)。次に、セレクタ102が右側(第2のデ
ータ入力端102i2)の入力信号を選択して出力するよ
うに、制御回路104はセレクタ102に選択制御信号
を送り(ステップ206)、ステップ204の処理に戻
る。
【0054】以上のように制御すれば、処理を終了した
時点で、第2の入力端子106に供給されている入力整
数に対応する基本変換の変換結果(出力整数)が、出力
端子107から出力される。
【0055】また、図1に示した暗号装置を暗号装置と
して機能させる場合には、制御回路104は、図3に示
すフローチャートに従って制御を行う。まず、制御回路
104は変数jを0とする(ステップ301)。制御回
路104は第1の入力端子105から変換パラメータ
a,b,m(≧2),p0 ,…,pm-1 を入力する(ス
テップ302)。セレクタ102が左側(第1のデータ
入力端102i1)の入力信号を選択して出力するよう
に、制御回路104はセレクタ102に選択制御信号を
送る(ステップ303)。次に、制御回路104は変換
パラメータa,b,pj を線形変換回路103に出力す
る(ステップ304)。
【0056】次に、制御回路104は線形変換回路10
3の出力信号の最上位ビット(MSB)を調べる(ステ
ップ305)。この最上位ビット(MSB)が“0”で
あれば(ステップ305のNO)、ステップ308に処
理を進める。一方、この最上位ビット(MSB)が
“1”であれば(ステップ305のYES)、ステップ
306に処理を進める。ステップ306においては、レ
ジスタ101が線形変換回路103の出力信号を保持す
るように、制御回路104はレジスタ101にラッチ制
御信号を送る。次に、セレクタ102が右側(第2のデ
ータ入力端102i2)の入力信号を選択して出力するよ
うに、制御回路104はセレクタ102に選択制御信号
を送り(ステップ307)、再び、ステップ305の処
理に戻る。
【0057】ステップ308においては、制御回路10
4は変数jの値を1だけ増やす。次に、制御回路104
は変数jがmに等しいかどうかを調べる(ステップ30
9)。もし変数jがmに等しければ(ステップ309の
YES)、制御回路104は処理を終了する。一方、変
数jがmに等しくなければ(ステップ309のNO)、
制御回路104はステップ304に制御を移す。
【0058】以上のように制御すれば、処理を終了した
時点で、第2の入力端子106に供給されている平文に
対応する暗号文が、出力端子107から出力される。
【0059】図4に本発明の第2の実施形態による暗号
装置を示す。図示の暗号装置は、DESライク暗号装置
であり、関数f回路701として図1に示す暗号装置の
変換部100を用いている。以下では、図7のものと相
違する点についてのみ説明する。ここでは、変換部10
0中のレジスタ101およびセレクタ102をそれぞれ
第3のレジスタおよび第3のセレクタと呼ぶことにす
る。
【0060】制御回路408は、第1および第2の制御
入力端408i1および408i2と、第1乃至第5の制御
出力端408o1,408o2,408o3,408o4,40
o5とを持つ。第1の制御入力端408i1は第1の入力
端子409に接続されている。第2の制御入力端408
i2は線形変換回路103のデータ出力端103o 中の最
上位の1本が接続されている。第1の制御出力端408
o1は第1および第2のレジスタ402および403のラ
ッチ入力端402l および403l に接続されている。
第2の制御出力端408o2は第1および第2のセレクタ
404および405の選択入力端404s および405
s に接続されている。第3の制御出力端408o3は第3
のレジスタ101のラッチ入力端101l に接続されて
いる。第4の制御出力端408o4は第3のセレクタ10
2の選択入力端102s に接続されている。第5の制御
出力端408o5は線形変換回路103のパラメータ入力
端103p に接続されている。
【0061】また、第2のセレクタ405のデータ出力
端405は第3のセレクタ102の第1のデータ入力端
102i1の下位n本に接続されている。線形変換回路1
03のデータ出力端103o の下位n本は排他的論理和
回路406の第2のデータ入力端406i2に接続されて
いる。
【0062】次に、図4に示したDESライク暗号装置
の動作について説明する。第1の入力端子409には変
換パラメータa,b,m,r,p0 ,…,pmr-1が供給
されている。暗号化を施す2nビットの平文(入力整
数)ゆうは第2の入力端子410を介して第1の転置回
路401のデータ入力端401i に入力される。第1の
転置回路401は予め決められた配線によって構成さ
れ、入力された平文のビットの位置を入れ換えたものを
出力する。そして、第1の転置回路401の出力信号の
上位nビットと下位nビットは、それぞれ第1および第
2のデータ出力端401o1および401o2から第1およ
び第2のセレクタ404および405の第1のデータ入
力端404i1および405i2に供給される。第1のセレ
クタ404は、制御回路408の第2の制御出力端40
o2から選択入力端404s に供給される選択制御信号
に依存して、第1の転置回路401の出力信号の上位n
ビットあるいは第1のレジスタ402の出力信号のいず
れかを選択して出力する。第2のセレクタ405は、制
御回路408の第2の制御出力端408o2から選択入力
端405s に供給される第1の選択制御信号に依存し
て、第1の転置回路401の出力信号の下位nビットあ
るいは第2のレジスタ403の出力信号のいずれかを選
択して出力する。第1のセレクタ404の出力信号は、
データ出力端404o から排他的論理和回路406の第
1のデータ入力端406i1に供給される。第2のセレク
タ405の出力信号は、データ出力端405o から第3
のセレクタ102の第1のデータ入力端102i2の下位
n本と、第2の転置回路407の第2のデータ入力端4
07i2と第1のレジスタ402のデータ入力端402i
とに供給される。ただし、第2のセレクタ405の出力
信号が第3のセレクタ102に入力される際には、第2
のセレクタ405の出力信号(整数)に最上位ビットと
して論理“0”が付け加えられて、(n+1)ビットの
整数に変換される。
【0063】第3のセレクタ102は、制御回路408
の第4の制御出力端408o4から供給される第2の選択
制御信号に依存して、第2のセレクタ405の出力信号
に対応する(n+1)ビットの整数あるいはレジスタ1
01の出力信号のいずれかを選択して出力する。第3の
セレクタ102の出力信号は、データ出力端102o
ら線形変換回路103のデータ入力端103i に供給さ
れる。線形変換回路103は、制御回路408の第5の
制御出力端408o5からパラメータ入力端103p に供
給される線形変換のパラメータにもとづいて、第3のセ
レクタ102の出力信号に対して線形変換を施して、そ
の変換結果を出力する。第3のレジスタ101は、制御
回路408の第3の制御出力端408o3からラッチ入力
端101l に第2のラッチ制御信号が供給されると、線
形変換回路103の出力信号を保持して、保持している
値を第3のセレクタ102の第2のデータ入力端102
i2に供給する。なお、線形変換回路103の出力信号の
うち、最上位ビット(MSBV)は制御回路408の第
2の制御入力端408i2にも供給されており、下位nビ
ットは排他的論理和回路406の第2のデータ入力端4
06i2にも供給されている。
【0064】排他的論理和回路406は、第1のセレク
タ404の出力信号と線形変換回路103の出力信号の
下位nビットとのビットごとの排他的論理和を計算し、
計算結果を出力する。排他的論理和回路406の出力信
号は、第2のレジスタ403のデータ入力端403i
第2の転置回路407の第1のデータ入力端407i1
供給される。第1のレジスタ402は、制御回路408
の第1の制御出力端408o1からラッチ入力端402l
に第1のラッチ制御信号が供給されると、第2のセレク
タ405の出力信号を保持して、保持している値を第1
のセレクタ404のデータ入力端404に供給する。
第2のレジスタ403は、制御回路408の第1の制御
出力端408o1からラッチ入力端403l に第1のラッ
チ制御信号が供給されると、排他的論理和回路406の
出力信号を保持して、保持している値を第2のセレクタ
405のデータ入力端405i に供給する。第2の転置
回路407は、予め決められた配線によって構成され、
入力された整数のビットの位置を入れ換えたものを出力
する。転置回路407の出力信号は、出力端子411か
ら暗号文(出力整数)として出力される。
【0065】制御回路408は、図5に示すフローチャ
ートに従って制御を行う。まず、制御回路408は変数
jを0とする(ステップ501)。制御回路408は第
1の入力端子409から変換パラメータa,b,m(≧
2),r(≧2),p0 ,…,pmr-1を入力する(ステ
ップ502)。第1および第2のセレクタ404および
405が左側(第1のデータ入力端404i1および40
i1)の入力信号を選択して入力して出力するように、
制御回路408は第2の制御出力端408o2から第1お
よび第2のセレクタ404および405の選択入力端4
04s および405s に第1の選択制御信号を送る(ス
テップ503)。次に、第3のセレクタ102が左側
(第1のデータ入力端102i1)の入力信号を選択して
出力するように、制御回路408は第4の制御出力端4
08o4からセレクタ102の選択入力端102s に第2
の選択制御信号を送る(ステップ504)。次に、制御
回路408は第5の制御出力端408o5から変換パラメ
ータa,b,pj を線形変換回路103のパラメータ入
力端103p に出力する(ステップ505)。次に、制
御回路408は線形変換回路103の出力信号の最上位
ビット(MSB)を調べる(ステップ506)。この最
上位ビット(MSB)が論理“0”であれば(ステップ
506のNO)、ステップ512に処理を進め、この最
上位ビット(MSB)が論理“1”であれば(ステップ
506のYES)、ステップ507に処理を進める。
【0066】ステップ507において、第3のレジスタ
101が線形変換回路103の出力信号を保持するよう
に、制御回路408は第3の制御出力端408o3から第
3のレジスタ101のラッチ入力端101l に第2のラ
ッチ制御信号を送る。次に、第3のセレクタ102が右
側(第2のデータ入力端102i2)の入力信号を選択し
て出力するように、制御回路408は第4の制御出力端
408o4から第3のセレクタ102の選択入力端102
s に第2の選択制御信号を送り(ステップ508)、再
びステップ506に処理を戻す。
【0067】一方、ステップ512においては、制御回
路408は変数jの値を1だけ増やす。次に、制御回路
408は変数jがm×rに等しいかどうかを調べる(ス
テップ513)。もし、変数jがm×rに等しければ
(ステップ513のYES)、制御回路408は処理を
終了する。一方、変数jがm×rに等しくなければ(ス
テップ513のNO)、制御回路408はステップ50
9に制御を移す。ステップ509においては、制御回路
408はj(mod m)が0かどうかを調べる。も
し、j(mod m)が0であれば(ステップ509の
YES)、制御回路408はステップ510に処理を進
める。一方、j(mod m)が0でなければ(ステッ
プ509のNO)、制御回路408はステップ505に
処理を戻す。ステップ510において、第1および第2
のレジスタ402および403がそれに入力する入力信
号を保持するように、制御回路408は第1の制御出力
端408o1から第1および第2のレジスタ402および
403のラッチ入力端402lおよび403l にラッチ
制御信号を送る。次に、第1および第2のセレクタ40
4および405が右側(第2のデータ入力端404i2
よび405i2)の入力信号を選択して出力するように、
制御回路408は第2の制御出力端408o2から第1お
よび第2のセレクタ404および405の選択入力端4
04s および405s に第1の選択制御信号を送り(ス
テップ511)、再び、ステップ504に処理を戻す。
【0068】以上のように制御すれば、処理を終了した
時点で、第2の入力端子410に供給されている平文に
対応する暗号文が出力端子411から出力される。
【0069】なお、図5に示す制御手順においては、線
形変換回路103の出力信号の最上位ビットが論理
“0”になるまで、ステップ508からステップ506
に制御を移しているが、制御が移される回数が予め決め
られた一定値以上になったら、強制的にステップ508
からステップ512に制御を移しても良い。何故なら、
DESライク暗号装置においては、関数fが1対1でな
くとも、平文と暗号文とが1対1に対応するからであ
る。
【0070】
【発明の効果】このような構成により、本発明は次の効
果を奏する。
【0071】第1の効果は、回路規模が小さくて済むと
いうことである。これにより、暗号装置を低コストで実
現できるようになる。その理由は、線形変換回路以外の
演算回路が不要だからである。
【0072】第2の効果は、基本変換1回につき実行さ
れる線形変換の回数の平均値が小さくて済むということ
である。こにより、高速で動作する暗号装置が実現でき
る。というのも、法pの値に2n に近付けることで、基
本変換1回につき実行される線形変換の回数の平均値を
1に近づけられるからである。
【0073】第3の効果は、本発明の暗号装置の変換部
をDESライク暗号装置の関数f回路として使用するこ
とで、入出力ビット数の大きなリード・オンリ・メモリ
(ROM)が不要になるのはもちろん、装置規模を大き
くしなくとも安全性が高められるということである。な
ぜならば、本装置の暗号装置においては、装置に変更を
加えなくとも、基本変換を繰り返す回数を増やすだけ
で、より複雑な暗号化が行われるからである。
【0074】第4の効果は、本発明の暗号装置の変換部
をDESライク暗号装置の関数f回路として使用する場
合には、基本変換1回につき実行される線形変換の回数
を一定値以下に制限することで、基本変換1回につき実
行される線形変換の回数の平均値をさらに小さくできる
ということである。これにより、さらに高速で動作する
DESライク暗号装置が実現できる。というのも、DE
Sライク暗号においては、関数f回路が1対1の変換を
行うものでなくとも、平文と暗号文とが1対1に対応す
るからである。
【図面の簡単な説明】
【図1】本発明の第1の実施形態による暗号装置を示す
機能ブロック図である。
【図2】図1に示した暗号装置を基本変換回路として使
用した場合の動作を説明するフローチャートである。
【図3】図1に示した暗号装置を暗号装置として使用し
た場合の動作を説明するフローチャートである。
【図4】本発明の第2の実施形態による暗号装置(DE
Sライク暗号装置)を示す機能ブロック図である。
【図5】図4に示した暗号装置の動作を説明するフロー
チャートである。
【図6】従来の基本変換回路を示す機能ブロック図であ
る。
【図7】従来のDESにもとづく暗号装置を示す機能ブ
ロック図である。
【図8】図7に示したDES暗号装置の動作を説明する
フローチャートである。
【図9】従来のDES暗号装置中の関数f回路を示す機
能ブロック図である。
【符号の説明】
101,402,403 レジスタ 102,404,405,602,606 セレクタ 103,601,605 線形変換回路 104,408 制御回路 401,407 転置回路 406 排他的論理和回路 603,607 比較器 604 否定回路 701 関数f回路

Claims (13)

    【特許請求の範囲】
  1. 【請求項1】 ビット長nの入力信号を、2n より大き
    な法をpとして出力信号に変換する方法であって、前記
    入力信号に対して変換結果が2n より小さくなるまで、
    所定の線形変換を繰り返し、最後に得られた変換結果を
    前記出力信号として出力する基本変換方法。
  2. 【請求項2】 xを前記入力信号または変換結果、aを
    pと素である整数、bを予め決められた整数としたと
    き、前記所定の線形変換は(ax+b)(mod p)
    で表される、請求項1記載の基本変換方法。
  3. 【請求項3】 請求項1または2記載の基本変換方法を
    組み合わせてなる暗号化方法。
  4. 【請求項4】 nビットの入力整数をnビットの出力整
    数に変換する基本変換回路において、 (n+1)ビットの整数を保持するレジスタと、 前記入力整数に最上位ビットとして論理“0”を付加し
    て得られる(n+1)ビットの整数と、前記レジスタに
    保持された(n+1)ビットの整数のいずれか一方を選
    択して出力するセレクタと、 該セレクタの出力する整数に対して所定の線形変換を施
    して変換結果を前記レジスタに供給する線形変換回路
    と、 該線形変換回路の出力する変換結果の最上位ビットに依
    存して制御フローを選択し、選択された制御フローに従
    って前記レジスタと前記セレクタと前記線形変換回路と
    に制御信号を供給する制御回路とを具備し、 前記制御回路が制御を終了した時点の前記線形変換回路
    の変換結果の下位nビットを前記出力整数として出力す
    る基本変換回路。
  5. 【請求項5】 xを前記セレクタの出力する整数、pを
    n より大きな法、aをpと素である整数、bを予め決
    められた整数としたとき、前記所定の線形変換は(ax
    +b)(mod p)で表される、請求項4記載の基本
    変換回路。
  6. 【請求項6】 前記制御回路は、a、bおよびpを変換
    パラメータとして入力し、前記入力整数に最上位ビット
    として論理“0”を付加した(n+1)ビットの整数を
    前記セレクタに選択させ、前記変換パラメータを前記線
    形変換回路に出力し、前記変換結果の最上位ビットが論
    理“1”の間は、前記レジスタに前記変換結果を保持さ
    せると共に前記レジスタに保持された整数を前記セレク
    タに選択させ、前記変換結果の最上位ビットが論理
    “0”のときに前記制御を終了する、請求項5記載の基
    本変換回路。
  7. 【請求項7】 nビットの平文をnビットの暗号文に変
    換する暗号装置において、 (n+1)ビットの整数を保持するレジスタと、 前記平文に最上位ビットとして論理“0”を付加して得
    られる(n+1)ビットの整数と、前記レジスタに保持
    されている(n+1)ビットの整数のいずれか一方を選
    択して出力するセレクタと、 該セレクタの出力する整数に対して所定の線形変換を施
    して変換結果を前記レジスタに供給する線形変換回路
    と、 該線形変換回路の出力する変換結果の最上位ビットに依
    存して制御フローを選択し、選択された制御フローに従
    って前記レジスタと前記セレクタと前記線形変換回路に
    制御信号を供給する制御回路とを具備し、 前記制御回路が制御を終了した時点の前記線形変換回路
    の変換結果の下位nビットを前記暗号文として出力する
    暗号装置。
  8. 【請求項8】 xを前記セレクタの出力する整数、mを
    2以上の整数、p0,…,pm-1 を2n より大きな法、
    aをpj (0≦j≦m−1)と素である整数、bを予め
    決められた整数としたとき、前記所定の線形変換は(a
    x+b)(mod pj )で表される、請求項7記載の
    暗号装置。
  9. 【請求項9】 前記制御回路は、変数jを0に初期設定
    し、a、b、mおよびp0 ,…,pm-1 を変換パラメー
    タとして入力し、前記平文に最上位ビットとして論理
    “0”を付加して得られた(n+1)ビットの整数を前
    記セレクタに選択させ、a,b,pj を前記線形変換回
    路に出力し、前記変換結果の最上位ビットが論理“1”
    の間は、前記レジスタに前記変換結果を保持させると共
    に前記レジスタに保持された整数を前記セレクタにを選
    択させ、前記変換結果の最上位ビットが論理“0”のと
    きは、変数jの値を1だけ増やし、変数jがmより小さ
    い間はa,b,pj を前記線形変換回路に出力し、変数
    jがmに等しいときに前記制御を終了する、請求項8記
    載の暗号装置。
  10. 【請求項10】 2nビットの平文を2nビットの暗号
    文に変換するDESライク暗号装置において、 nビットの整数を保持する第1のレジスタと、 nビットの整数を保持する第2のレジスタと、 前記平文のビット位置を入れ換える第1の転置回路と、 該第1の転置回路の出力の上位nビットの整数と、前記
    第1のレジスタに保持さたnビットの整数のいずれか一
    方を選択して出力する第1のセレクタと、 前記第1の転置回路の出力の下位nビットの整数と、前
    記第2のレジスタに保持さたnビットの整数のいずれか
    一方を選択して出力して、選択結果を前記第1のレジス
    タに供給する第2のセレクタと、 (n+1)ビットの整数を保持する第3のレジスタと、 前記第2のセレクタの出力に最上位ビットとして論理
    “0”を付加して得られる(n+1)ビットの整数と、
    前記第3のレジスタに保持されている(n+1)ビット
    の整数のいずれか一方を選択して出力する第3のセレク
    タと、 該第3のセレクタの出力する整数に対して所定の線形変
    換を施して変換結果を前記第3のレジスタに供給する線
    形変換回路と、 前記第1のセレクタの出力と前記線形変換回路の出力の
    下位nビットとのビットごとの排他的論理和を計算し
    て、計算結果を前記第2のセレクタに供給する排他的論
    理和回路と、 前記排他的論理和回路の出力と前記第2のセレクタの出
    力のビット位置を入れ換える第2の転置回路と、 制御フローに従って前記第1乃至第3レジスタと前記第
    1乃至第3のセレクタと前記線形変換回路に制御信号を
    供給する制御回路とを具備し、 前記制御回路が制御を終了した時点の前記第2の転置回
    路の出力を前記暗号文として出力するDESライク暗号
    装置。
  11. 【請求項11】 xを前記第3のセレクタの出力する整
    数、mおよびrを2以上の整数、p0 ,…,pmr-1を2
    n より大きな法、aをpj (0≦j≦mr−1)と素で
    ある整数、bを予め決められた整数としたとき、前記所
    定の線形変換は(ax+b)(mod pj )で表され
    る、請求項10記載のDESライク暗号装置。
  12. 【請求項12】 前記制御回路は、変数jを0に初期設
    定し、a、b、m、rおよびp0 ,…,pmr-1を変換パ
    ラメータとして入力し、前記第1および第2のセレクタ
    にそれぞれ前記第1の転置回路の出力の上位nビットお
    よび下位nビットを選択させ、前記第2のセレクタの出
    力に最上位ビットとして論理“0”を付加して得られる
    (n+1)ビットの整数を前記第3のセレクタに選択さ
    せ、a,b,pj を前記線形変換回路に出力し、 前記変換結果の最上位ビットが論理“1”の間は、前記
    第3のレジスタに前記変換結果を保持させると共に前記
    第3のレジスタに保持された整数を前記第3のセレクタ
    に選択させ、 前記変換結果の最上位ビットが論理“0”のときは、変
    数jの値を1だけ増やし、変数jがm×rより小さくか
    つj(mod m)が0でない間はa,b,pj を前記
    線形変換回路に出力し、 変数jがm×rより小さくかつj(mod m)が0で
    あれば、前記第1および第2のレジスタにそれぞれ前記
    第2のセレクタの出力および前記排他的論理和回路の出
    力を保持させ、前記第1および第2のセレクタにそれぞ
    れ前記第1および第2のレジスタを出力を選択させ、前
    記第2のセレクタの出力に最上位ビットとして論理
    “0”を付加して得られる(n+1)ビットの整数を前
    記第3のセレクタに選択させて、a,b,pj を前記線
    形変換回路に出力し、 変数jがm×rに等しいときに前記制御を終了する、請
    求項11記載のDESライク暗号装置。
  13. 【請求項13】 「前記変換結果の最上位ビットが論理
    “1”の間は」の代わりに「前記線形変換回路における
    線形変換の繰り返しが予め決められた回数より少ない間
    は」とし、「前記変換結果の最上位ビットが論理“0”
    のときは」の代わりに「前記線形変換回路における線形
    変換の繰り返しが予め決められた回数に達したときは」
    としたことを特徴とする、請求項12記載のDESライ
    ク暗号装置。
JP7249054A 1995-09-27 1995-09-27 基本変換方法、暗号化方法、基本変換回路および暗号装置 Pending JPH0990870A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7249054A JPH0990870A (ja) 1995-09-27 1995-09-27 基本変換方法、暗号化方法、基本変換回路および暗号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7249054A JPH0990870A (ja) 1995-09-27 1995-09-27 基本変換方法、暗号化方法、基本変換回路および暗号装置

Publications (1)

Publication Number Publication Date
JPH0990870A true JPH0990870A (ja) 1997-04-04

Family

ID=17187330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7249054A Pending JPH0990870A (ja) 1995-09-27 1995-09-27 基本変換方法、暗号化方法、基本変換回路および暗号装置

Country Status (1)

Country Link
JP (1) JPH0990870A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6201869B1 (en) 1995-09-05 2001-03-13 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
US6466669B1 (en) 1997-05-30 2002-10-15 Mitsubishi Denki Kabushiki Kaisha Cipher processor, IC card and cipher processing method
US6477556B1 (en) 1998-01-27 2002-11-05 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for arithmetic operation and recording medium of method of operation
AU767323B2 (en) * 2000-03-09 2003-11-06 Mitsubishi Denki Kabushiki Kaisha Block encryption device using auxiliary conversion
JP2010501895A (ja) * 2006-08-24 2010-01-21 エルエスアイ コーポレーション 単一および多重aes動作をサポートする二重モードaesインプリメンテーション

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6201869B1 (en) 1995-09-05 2001-03-13 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
US6415030B2 (en) 1995-09-05 2002-07-02 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
US7096369B2 (en) 1995-09-05 2006-08-22 Mitsubishi Denki Kabushiki Kaisha Data transformation apparatus and data transformation method
US6466669B1 (en) 1997-05-30 2002-10-15 Mitsubishi Denki Kabushiki Kaisha Cipher processor, IC card and cipher processing method
US6687727B2 (en) 1998-01-27 2004-02-03 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for arithmetic operation and recording medium of method of operation
US6687728B2 (en) 1998-01-27 2004-02-03 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for arithmetic operation and recording medium of method of operation
US6477556B1 (en) 1998-01-27 2002-11-05 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for arithmetic operation and recording medium of method of operation
AU767323B2 (en) * 2000-03-09 2003-11-06 Mitsubishi Denki Kabushiki Kaisha Block encryption device using auxiliary conversion
US7697684B2 (en) 2000-03-09 2010-04-13 Mitsubishi Denki Kabushiki Kaisha Block cipher apparatus using auxiliary transformation
US7760870B2 (en) 2000-03-09 2010-07-20 Mitsubishi Denki Kabushiki Kaisha Block cipher apparatus using auxiliary transformation
US7760871B2 (en) 2000-03-09 2010-07-20 Mitsubishi Denki Kabushiki Kaisha Block cipher using auxiliary transformation
US7822196B2 (en) 2000-03-09 2010-10-26 Mitsubishi Denki Kabushiki Kaisha Block cipher apparatus using auxiliary transformation
US7864950B2 (en) 2000-03-09 2011-01-04 Mitsubishi Denki Kabushiki Kaisha Block encryption device using auxiliary conversion
JP2010501895A (ja) * 2006-08-24 2010-01-21 エルエスアイ コーポレーション 単一および多重aes動作をサポートする二重モードaesインプリメンテーション

Similar Documents

Publication Publication Date Title
EP0801345B1 (en) Circuit for modulo multiplication and exponentiation arithmetic
KR100435052B1 (ko) 암호화장치
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP4596686B2 (ja) Dpaに対して安全な暗号化
CN109039640B (zh) 一种基于rsa密码算法的加解密硬件系统及方法
EP1081889A2 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
US20070064933A1 (en) Method of symmetric key data encryption
JP4137385B2 (ja) 公開鍵および秘密鍵による暗号化方法
JP2001517897A (ja) 暗号流れ解読鍵を発生する方法および装置
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
KR100442218B1 (ko) 몽고메리의 알고리즘을 이용한 멱승 잉여 연산기
RU2124814C1 (ru) Способ шифрования блоков цифровых данных
JP3180836B2 (ja) 暗号通信装置
JPH08179690A (ja) プロダクト暗号装置
KR20030051992A (ko) 아이씨카드용 알에스에이 암호 연산 장치
JPH11109859A (ja) 擬似乱数発生方法および装置
JPH0990870A (ja) 基本変換方法、暗号化方法、基本変換回路および暗号装置
US6687728B2 (en) Method and apparatus for arithmetic operation and recording medium of method of operation
KR100564599B1 (ko) 역원 계산 회로, 역원계산 방법 및 상기 역원계산 방법을실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수있는 기록매체
RU2503135C1 (ru) Способ криптографического преобразования информации и устройство для его реализации
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
JP4692022B2 (ja) 楕円曲線暗号におけるスカラー倍計算装置、及び、そのプログラム
JPH1152850A (ja) 暗号変換方法および装置
JPH07225551A (ja) 公開鍵暗号装置
JP3526504B2 (ja) 乱数生成器

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990303