JP3242231B2 - 暗号化装置 - Google Patents

暗号化装置

Info

Publication number
JP3242231B2
JP3242231B2 JP22600193A JP22600193A JP3242231B2 JP 3242231 B2 JP3242231 B2 JP 3242231B2 JP 22600193 A JP22600193 A JP 22600193A JP 22600193 A JP22600193 A JP 22600193A JP 3242231 B2 JP3242231 B2 JP 3242231B2
Authority
JP
Japan
Prior art keywords
encryption
result
bit
register
bits
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.)
Expired - Lifetime
Application number
JP22600193A
Other languages
English (en)
Other versions
JPH0777935A (ja
Inventor
亨 反町
充 松井
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP22600193A priority Critical patent/JP3242231B2/ja
Publication of JPH0777935A publication Critical patent/JPH0777935A/ja
Application granted granted Critical
Publication of JP3242231B2 publication Critical patent/JP3242231B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、情報通信の分野で、
ディジタルデータの暗号化装置に関するものである。
【0002】
【従来の技術】
従来例1.従来のデータ暗号化方式としては、たとえば
FEAL−8暗号アルゴリズム(宮口、白石、清水「F
EAL−8暗号アルゴリズム」NTT研究実用化報告第
37巻第4/5号、1988)があった。図7は、FE
AL−8暗号アルゴリズムのデータランダム化部であ
る。図7において、17は64ビットの平文、18は6
4ビットの暗号文、19、20、21、22は拡大鍵の
一部をパラメータとして入力信号を変換して出力する処
理ブロック、7は排他的論理和、23は256ビットの
拡大鍵を保存する拡大鍵ラッチである。19、20、2
1、22は同一の処理を行う。図8は、19、20、2
1、22の内部処理を表している。24は32ビットの
入力信号、25は32ビットの出力信号である。26は
8ビットの入力信号を加算したのち、2ビットローテー
トシフトを行う処理関数であり、27は8ビットの入力
信号を加算し、この結果に1を加えたのちに、2ビット
ローテートシフトを行う処理関数である。
【0003】次に動作について説明する。まず入力され
た平文は拡大鍵ラッチ23から出力された拡大鍵の第0
ビットから第63ビットまでの64ビットと排他的論理
和され、さらにその結果の下位32ビットが上位32ビ
ットと排他的論理和され次の段に出力される。次に前段
出力の下位32ビットは、処理ブロック19に入力され
る。この入力信号の第8ビットから第15ビットまでの
8ビットは、拡大鍵ラッチ23から出力された拡大鍵の
第64ビットから第71ビットまでの8ビットと排他的
論理和され、その後に入力信号の第0ビットから第7ビ
ットまでの8ビットと排他的論理和される。同様に、第
16ビットから第23ビットまでの8ビットは、拡大鍵
ラッチ23から出力された拡大鍵の第72ビットから第
79ビットまでの8ビットと排他的論理和され、その後
に入力信号の第24ビットから第31ビットまでの8ビ
ットと排他的論理和される。
【0004】次に第8ビットから第15ビットまでの8
ビットは第16ビットから第23ビットまでの8ビット
を用いて27によって演算処理を行う。第16ビットか
ら第23ビットまでの8ビットは出力された第8ビット
から第15ビットまでの8ビットを用いて26によって
処理を行う。第0ビットから第7ビットまでの8ビット
は出力された第8ビットから第15ビットまでの8ビッ
トを用いて26によって処理を行う。第24ビットから
第31ビットまでの8ビットは出力された第16ビット
から第23ビットまでの8ビットを用いて27によって
処理を行う。以上の処理によって出力される第0ビット
から第31ビットまでの32ビットを出力信号25とす
る。次に処理ブロック19の出力信号25は前段出力の
上位32ビットと排他的論理和され、さらに上位32ビ
ットと下位32ビットを入れ換えて次の段に出力され
る。
【0005】次に前段出力の下位32ビットは処理ブロ
ック20に入力され、拡大鍵ラッチ23から出力された
拡大鍵の第80ビットから第95ビットまでの16ビッ
トを用いて処理ブロック19と同様に処理を行う。次に
処理ブロック20の出力信号25は前段出力の上位32
ビットと排他的論理和され、さらに上位32ビットと下
位32ビットを入れ換えて次の段に出力される。以下同
様の操作を合計8回実行し、そののち上位32ビットと
下位32ビットを入れ換え、下位32ビットを上位32
ビットと排他的論理和し、さらに拡大鍵ラッチ23から
出力された拡大鍵の第192ビットから第255ビット
と排他的論理和したものが暗号文18として出力され
る。
【0006】従来例2.また、従来のデータ暗号化方式
としては、たとえばMULTI−2暗号アルゴリズム
(宝木、佐々木、中川「マルチメディア向け高速暗号方
式」マルチメディア通信と分散処理40−5、198
9)があった。図9は、MULTI−2暗号アルゴリズ
ムのデータランダム化部である。図9において、28は
64ビットの平文、29は64ビットの暗号文、30、
31、32、33、34、35は拡大鍵の一部をパラメ
ータとして入力信号を変換して出力する処理ブロック、
7は排他的論理和、36は256ビットの拡大鍵を保存
する拡大鍵ラッチである。また、図10は処理ブロック
30、33の内部処理を表し、図11は処理ブロック3
1、34の内部処理を表し、図12は処理ブロック3
2、35の内部処理を表している。
【0007】次に動作について説明する。まず入力され
た平文28は上位32ビットと下位32ビットに分割さ
れ、上位32ビットは下位32ビットに排他的論理和さ
れる。次に下位32ビットは処理ブロック30に入力さ
れ、拡大鍵の第0ビットから第31ビットまでの32ビ
ットを用いて処理される。処理ブロック30では図10
のように、入力された32ビットデータxは指定された
拡大鍵と加算され、この結果をyとする。そしてyとy
を左1ビットローテートされたものが加算されてから1
を引かれ、この結果zとする。このzとzを左4ビット
ローテートされたものが排他的論理和され出力となる。
この処理ブロック30の出力は上位32ビットに排他的
論理和される。
【0008】次に上位32ビットは処理ブロック31に
入力され、拡大鍵の第32ビットから第95ビットまで
の64ビットを用いて処理される。処理ブロック31で
は図11のように、入力された32ビットデータxは指
定された拡大鍵の上位32ビットと加算され、この結果
をyとする。そしてyとyを左2ビットローテートされ
たものが加算されてから1を加えられ、この結果をzと
する。zとzを左8ビットローテートされたものが排他
的論理和され、この結果をaとする。次にaは指定され
た拡大鍵の下位32ビットと加算され、この結果をbと
する。そしてbを左1ビットローテートされたものがb
で減算され、この結果をcとする。このcと処理ブロッ
ク31に入力されたxを論理和した値とcを左16ビッ
トローテートされたものが排他的論理和され出力とな
る。この処理ブロック31の出力は下位32ビットに排
他的論理和される。
【0009】次に下位32ビットは処理ブロック32に
入力され、拡大鍵の第96ビットから第127ビットま
での32ビットを用いて処理される。処理ブロック32
では図12のように、入力された32ビットデータxは
指定された拡大鍵と加算され、この結果をyとする。そ
してyとyを左2ビットローテートされたものが加算さ
れてから1を加えられ出力となる。この処理ブロック3
2の出力は上位32ビットに排他的論理和される。以上
のように処理ブロック33、34、35についても同様
の処理を行い、その結果を暗号文29として出力され
る。
【0010】
【発明が解決しようとする課題】従来の暗号方式は以上
のように構成されるので、図13のように暗号化装置の
処理過程において加算演算が発生した場合に加算結果の
キャリーは無視している。このため、FEAL−8の場
合は、処理ブロックで入出力間に線形性が保たれてしま
い、選択平文攻撃が可能な通信路においては盗聴者が拡
大鍵をすべて求めることができるという問題点が指摘さ
れている。また、Multi−2の場合では、線形性を
失わせるために、通常の加算演算を行った後に、処理デ
ータを数ビットローテートさせて元のデータと加算また
は減算を行っている。この結果、加算または減算演算2
回分の伝送遅延が発生するという問題点も指摘される。
【0011】第1の発明は上記のような問題点を解消す
るためになされたもので、加算結果をある除数で除算を
行い、その商または剰余を加算結果に加えることにより
ランダム性を高めることを目的とする。
【0012】また、第1の発明は上記のような問題点が
加算演算の場合だけではなく減算演算の場合にも起こり
得ることから、減算結果をある除数で除算を行い、その
商または剰余を減算結果から引くことによりランダム性
を高めることを目的とする。
【0013】第2の発明は、第1の発明の演算回路にお
いて、除数を暗号化に用いる秘密鍵または秘密鍵より生
成した拡大鍵の情報によって決定することによりランダ
ム性を高めることを目的とする。第3の発明は、第1の
発明の演算回路において、除数を平文または暗号化途中
のデータの情報によって決定することによりランダム性
を高めることを目的とする。第4の発明は、第1の発明
の演算回路において、除数を暗号化に用いる秘密鍵また
は秘密鍵より生成した拡大鍵の情報と平文または暗号化
途中のデータの情報の両方によって決定することにより
ランダム性を高めることを目的とする。
【0014】
【課題を解決するための手段】第1の発明は、暗号化装
置の加算回路において、加算結果をある除数で除算を行
い、その商または剰余を加算結果に加えることによりラ
ンダム性を高める手段を備えたことを特徴とする。ま
た、暗号化装置の減算回路において、減算結果をある除
数で除算を行い、その商または剰余を減算結果から引く
ことによりランダム性を高める手段を備えたことを特徴
とする。
【0015】第2の発明は、第1の発明の演算回路にお
いて、除数を暗号化に用いる秘密鍵または秘密鍵より生
成した拡大鍵の情報によって決定することによりランダ
ム性を高める手段を備えたことを特徴とする。
【0016】第3の発明は、第1の発明の演算回路にお
いて、除数を平文または暗号化途中のデータの情報によ
って決定することによりランダム性を高める手段を備え
たことを特徴とする。
【0017】第4の発明は、第1の発明の演算回路にお
いて、除数を暗号化に用いる秘密鍵または秘密鍵より生
成した拡大鍵の情報と平文または暗号化途中のデータの
情報の両方によって決定することによりランダム性を高
める手段を備えたことを特徴とする。
【0018】
【作用】第1、第2、第3、第4の発明により、暗号化
装置の加算回路において、加算結果を秘密鍵または秘密
鍵より生成した拡大鍵の情報と平文、暗号化途中データ
の少なくとも1つの情報によって決定した除数で除算を
行い、その商または剰余を加算結果に加えることでラン
ダム性を高めることができる。nビット演算回路の場合
は、2n を除数として除算を行ったのち商を加算結果に
加えることにより、加算演算でキャリーが生じたなら
ば、加算結果に1を加えることと同等の処理が行える。
これにより、1を加えることでキャリーが起こらない場
合との区別をつけることによりランダム性を高めること
ができる。
【0019】同様に、暗号化装置の減算回路において、
減算結果を秘密鍵または秘密鍵より生成した拡大鍵の情
報と平文、暗号化途中データの少なくとも1つの情報に
よって決定した除数で除算を行い、その商または剰余を
減算結果から引くことでランダム性を高めることができ
る。nビット演算回路の場合は、2n を除数として除算
を行ったのち商を減算結果から引くことにより、減算演
算でボローが生じたならば、減算結果から1を引くこと
と同等の処理が行える。これにより、1を引くことでボ
ローが起こらない場合との区別をつけることによりラン
ダム性を高めることができる。
【0020】
【実施例】
実施例1.以下、発明の実施例を図1について説明す
る。図1は、加算演算回路が8ビット演算回路の場合で
あり、各段に入力される暗号化途中データの下位3ビッ
トをアドレスとして除数を選択し、加算結果をこの除数
を用いて除算を行い、その剰余を加算結果に加えるよう
な加算演算回路を持つ暗号化回路の具体例である。ここ
では簡単に説明するため、16ビットの平文から16ビ
ットの暗号文を作成する4段式の場合を例にして説明す
る。図において、1は16ビットの平文、2は16ビッ
トの暗号文、3、4、5、6は拡大鍵の一部をパラメー
タとして入力信号を変換する処理ブロックFであり、今
回の具体例ではFを「入力信号8ビットと各段に指定さ
れた拡大鍵を加算演算する関数」としている。7は排他
的論理和、8は4段分の拡大鍵を保持する拡大鍵ラッチ
である。拡大鍵は、1段目から4段目に対応して“f
0”“96”“c3”“5e”を指定しているものとす
る。9は除数データラッチであり、平文または暗号化途
中データの下位3ビットをアドレスとして除数をセレク
トして出力する。
【0021】以上のような条件のもとで、平文16ビッ
トのデータを“00、00”とした場合を以下に説明す
る。平文“00、00”は、上位8ビットと下位8ビッ
トに分割され、“00”、“00”となる。下位8ビッ
トの“00”は処理ブロック3すなわちFに入力され、
1段目の拡大鍵“f0”と加算される。ここで、入力平
文の下位3ビット“0”をアドレスとして除数データラ
ッチから“2f”を除数としてセレクトする。そして、
加算結果“f0”を除数“2f”で除算を行い、その剰
余“05”を加算結果“f0”に再度加算し、その結果
“f5”を処理ブロック3の出力とする。出力された
“f5”は、上位8ビット“00”に排他的論理和され
る。次に上位8ビットと下位8ビットを入れ換えて“0
0、f5”が1段目の出力とされる。
【0022】2段目では、下位8ビットの“f5”は処
理ブロック4すなわちFに入力され、2段目の拡大鍵
“96”と加算される。ここで、1段目出力の下位3ビ
ット“5”をアドレスとして除数データラッチから“6
a”を除数としてセレクトする。そして、加算結果“8
b”を除数“6a”で除算を行い、その剰余“21”を
加算結果“8b”に再度加算し、その結果“ac”を処
理ブロック4の出力とする。出力された“ac”は、上
位8ビット“00”に排他的論理和される。次に上位8
ビットと下位8ビットを入れ換えて“f5、ac”が2
段目の出力とされる。
【0023】3段目では、下位8ビットの“ac”は処
理ブロック5すなわちFに入力され、3段目の拡大鍵
“c3”と加算される。ここで、2段目出力の下位3ビ
ット“4”をアドレスとして除数データラッチから“5
3”を除数としてセレクトする。そして、加算結果“6
f”を除数“53”で除算を行い、その剰余“1c”を
加算結果“6f”に再度加算し、その結果“8b”を処
理ブロック5の出力とする。出力された“8b”は、上
位8ビット“f5”に排他的論理和される。次に上位8
ビットと下位8ビットを入れ換えて“ac、7e”が3
段目の出力とされる。
【0024】4段目では、下位8ビットの“7e”は処
理ブロック6すなわちFに入力され、4段目の拡大鍵
“5e”と加算される。ここで、3段目出力の下位3ビ
ット“6”をアドレスとして除数データラッチから“9
e”を除数としてセレクトする。そして、加算結果“d
c”を除数“9e”で除算を行い、その剰余“3e”を
加算結果“dc”に再度加算し、その結果“1a”を処
理ブロック6の出力とする。出力された“1a”は、上
位8ビット“ac”に排他的論理和され、“b6、7
e”が暗号文として出力される。
【0025】以上のように、実施例1においては、秘密
鍵から鍵スケジュール部を経て出力された拡大鍵をパラ
メータとして入力し、暗号化する情報を暗号化して出力
する処理ブロックを一つ以上含む暗号化方式であって、
処理過程において加算結果を平文または暗号化途中デー
タの情報によって決定した除数で除算を行い、その剰余
を加算結果に加える加算回路を一つ以上持つことを特徴
とした暗号化方式を説明した。
【0026】実施例2.以下、発明の実施例を図2につ
いて説明する。図2は、加算演算回路が8ビット演算回
路の場合であり、加算演算でキャリーが生じた場合に、
キャリーを加算結果に加える処理を有する加算回路を持
った暗号化回路の具体例である。これは、28 (=25
6)を除数として除算を行った後に商を加算結果に再度
加える処理が加算演算で、キャリーが生じたならば加算
結果に1を加えるという簡単な処理と同等であることを
利用するものである。ここでは簡単に説明するため、1
6ビットの平文から16ビットの暗号文を作成する4段
式の場合を例にして説明する。
【0027】図において、10は16ビットの平文、1
1は16ビットの暗号文、12、13、14、15は拡
大鍵の一部をパラメータとして入力信号を変換する処理
ブロックFであり、今回の具体例ではFを「入力信号8
ビットと各段に指定された拡大鍵を加算する関数」とし
ている。ここで言う加算とは、実施例1の特別な例であ
り、加算演算でキャリーが生じたならば加算結果に1を
加えるような場合であり、図3または図4のような回路
構成で実現する。7は排他的論理和、16は4段分の拡
大鍵を保持する拡大鍵ラッチである。拡大鍵は、1段目
から4段目に対応して“f0”“96”“c3”“5
e”を指定しているものとする。
【0028】以下、図3について説明する。図3は加算
演算の除数が2n であり、商を加算する場合の回路構成
の具体例である。図において、37、38は入力データ
を保持するNビットレジスタ、39、40はNビット加
算器、41、42は加算結果を保持するNビットレジス
タ、43は加算時に起こるキャリー、44はキャリーを
セレクト信号とした2−1セレクタ、45は加算回路の
演算結果を保持するNビットレジスタである。
【0029】次に動作について説明する。まず入力され
た2つのNビットデータがそれぞれNビットレジスタ3
7、38に保持され、そのデータを加算器39で加算し
てNビットレジスタ41に結果を保持する。同時にNビ
ットレジスタ37、38のデータと“1”を加算器40
で加算してNビットレジスタ42に保持する。この時、
加算器39で起こるキャリー43をセレクト信号として
用い、2−1セレクタ44によってNビットレジスタ4
1、42のいずれか一方が選択され、Nビットレジスタ
45に保持され、加算回路から出力される。キャリーが
起こらない場合はNビットレジスタ41が選択され、キ
ャリーが起こった場合はNビットレジスタ42が選択さ
れるものとする。
【0030】以下、図4について説明する。図4は加算
演算の除数が2n であり、商を加算する場合の回路構成
の具体例である。図において、46、47は入力データ
を保持するNビットレジスタ、48はNビット加算器、
49は加算結果を保持するNビットレジスタ、43は加
算時に起こるキャリー、50は入力データにキャリーを
加える加算器、51は加算回路の演算結果を保持するN
ビットレジスタである。
【0031】次に動作について説明する。まず入力され
た2つのNビットデータがそれぞれNビットレジスタ4
6、47に保持され、そのデータを加算器48で加算し
てNビットレジスタ49に結果が保持される。加算器4
8のキャリー43とNビットレジスタ49のデータが加
算器50によって加えられ、Nビットレジスタ51に保
持され、結果として加算回路から出力される。
【0032】以上のような条件のもとで、平文16ビッ
トのデータを“00、00”とした場合を以下に説明す
る。平文“00、00”は、上位8ビットと下位8ビッ
トに分割され、“00”、“00”となる。下位8ビッ
トの“00”は処理ブロック12すなわちFに入力さ
れ、1段目の拡大鍵“f0”と加算される。この場合、
加算演算の際にキャリーは起こらないから加算結果“f
0”を処理ブロック12の出力とする。出力された“f
0”は上位8ビット“00”に排他的論理和される。次
に上位8ビットと下位8ビットを入れ換えて“00、f
0”が1段目の出力とされる。
【0033】2段目では、下位8ビットの“f0”は処
理ブロック13すなわちFに入力され、2段目の拡大鍵
“96”と加算される。この場合、加算演算の際にキャ
リーが起こるから加算結果“86”に1が加えられ“8
7”を処理ブロック13の出力とする。出力された“8
7”は上位8ビット“00”に排他的論理和される。次
に上位8ビットと下位8ビットを入れ換えて“f0、8
7”が2段目の出力とされる。
【0034】3段目では、下位8ビットの“87”は処
理ブロック14すなわちFに入力され、3段目の拡大鍵
“c3”と加算される。この場合、加算演算の際にキャ
リーが起こるから加算結果“4a”に1が加えられ“4
b”を処理ブロック14の出力とする。出力された“4
b”は上位8ビット“f0”に排他的論理和される。次
に上位8ビットと下位8ビットを入れ換えて“87、b
b”が3段目の出力とされる。
【0035】4段目では、下位8ビットの“bb”は処
理ブロック15すなわちFに入力され、4段目の拡大鍵
“5e”と加算される。この場合、加算演算の際にキャ
リーが起こるから加算結果“19”に1が加えられ“1
a”を処理ブロック15の出力とする。出力された“1
a”は上位8ビット“87”に排他的論理和され、“b
b、9d”が暗号文として出力される。
【0036】以上のように、実施例2においては、秘密
鍵から鍵スケジュール部を経て出力された拡大鍵をパラ
メータとして入力し、暗号化する情報を暗号化して出力
する処理ブロックを一つ以上含む暗号化方式であって、
処理過程においてキャリーが生じたならば加算結果に1
加える加算回路(図3、図4)を一つ以上持つことを特
徴とした暗号化方式を説明した。
【0037】また、実施例1による加算回路の加算結果
をnビット演算回路で2n を除数として除算を行ったの
ちに商を加算結果に加える処理、すなわち、加算演算で
キャリーが生じたならば、加算結果に1を加えることと
同等の処理を持つ具体的な回路構成について説明した。
図3は、伝送遅延を少なくすることを特徴とした回路構
成であり、図4は、2回目が1を加えるかどうかの加算
であるので、演算の処理回数を少なくすることを特徴と
した回路構成である。
【0038】実施例3.実施例1において平文または暗
号化途中のデータの下位3ビットをアドレスとして除数
データラッチから除数をセレクトしているが、このアド
レスを秘密鍵または秘密鍵によって生成される拡大鍵の
情報から決定してもよい。次にその一例として各段の拡
大鍵の上位3ビットを除数データラッチのアドレスとす
る場合を図5を用いて説明する。
【0039】図5は、処理ブロックFが8ビット演算回
路の場合であり、各段の拡大鍵の上位3ビットをアドレ
スとして除数を選択し、加算結果をこの除数を用いて除
算を行い、その剰余を加算結果に加えるような加算演算
回路を持つ暗号化回路の具体例である。ここでは簡単に
説明するため、16ビットの平文から16ビットの暗号
文を作成する4段式の場合を例にして説明する。図にお
いて、100は16ビットの平文、200は16ビット
の暗号文、9は除数データラッチであり、拡大鍵の上位
3ビットをアドレスとして除数をセレクトして出力す
る。その他の構成は実施例1の図1と同様である。
【0040】以上のような条件のもとで、平文16ビッ
トのデータを“00、00”とした場合を以下に説明す
る。平文“00、00”は、上位8ビットと下位8ビッ
トに分割され、“00”、“00”となる。下位8ビッ
トの“00”は処理ブロック3すなわちFに入力され、
1段目の拡大鍵“f0”と加算される。ここで、拡大鍵
の上位3ビット“7”をアドレスとして除数データラッ
チから“0d”を除数としてセレクトする。そして、加
算結果“f0”を除数“0d”で除算を行い、その剰余
“06”を加算結果“f0”に再度加算し、その結果
“f6”を処理ブロック3の出力とする。出力された
“f6”は、上位8ビット“00”に排他的論理和され
る。次に上位8ビットと下位8ビットを入れ換えて“0
0、f6”が1段目の出力とされる。
【0041】2段目では、下位8ビットの“f6”は処
理ブロック4すなわちFに入力され、2段目の拡大鍵
“96”と加算される。ここで、拡大鍵の上位3ビット
“4”をアドレスとして除数データラッチから“53”
を除数としてセレクトする。そして、加算結果“8c”
を除数“53”で除算を行い、その剰余“39”を加算
結果“8c”に再度加算し、その結果“c5”を処理ブ
ロック4の出力とする。出力された“c5”は、上位8
ビット“00”に排他的論理和される。次に上位8ビッ
トと下位8ビットを入れ換えて“f6、c5”が2段目
の出力とされる。
【0042】3段目では、下位8ビットの“c5”は処
理ブロック5すなわちFに入力され、3段目の拡大鍵
“c3”と加算される。ここで、拡大鍵上位3ビット
“6”をアドレスとして除数データラッチから“9e”
を除数としてセレクトする。そして、加算結果“88”
を除数“9e”で除算を行い、その剰余“88”を加算
結果“88”に再度加算し、その結果“10”を処理ブ
ロック5の出力とする。出力された“10”は、上位8
ビット“f6”に排他的論理和される。次に上位8ビッ
トと下位8ビットを入れ換えて“c5、e6”が3段目
の出力とされる。
【0043】4段目では、下位8ビットの“e6”は処
理ブロック6すなわちFに入力され、4段目の拡大鍵
“5e”と加算される。ここで、拡大鍵の上位3ビット
“2”をアドレスとして除数データラッチから“4c”
を除数としてセレクトする。そして、加算結果“44”
を除数“4c”で除算を行い、その剰余“44”を加算
結果“44”に再度加算し、その結果“88”を処理ブ
ロック6の出力とする。出力された“88”は、上位8
ビット“c5”に排他的論理和され、“4d、e6”が
暗号文として出力される。
【0044】以上のように、この実施例においては、秘
密鍵から鍵スケジュール部を経て出力された拡大鍵をパ
ラメータとして入力し、暗号化する情報を暗号化して出
力する処理ブロックを一つ以上含む暗号化方式であっ
て、処理過程において加算結果を秘密鍵または秘密鍵に
よって生成される拡大鍵の情報によって決定した除数で
除算を行い、その剰余を加算結果に加える加算回路を一
つ以上持つことを特徴とした暗号化方式を説明した。な
お、この実施例では拡大鍵の上位3ビットを使ってアド
レスを決定しているが、何等かの特別な計算によりアド
レスを決定してもよい。
【0045】実施例4.除数を決定する方法は、暗号化
に用いる秘密鍵または秘密鍵より生成した拡大鍵の情報
と、平文または暗号化途中のデータの情報の両方を用い
てもよい。例えば、図1において平文または暗号化途中
のデータの下位3ビットと拡大鍵の下位3ビットを排他
的論理和し、これをアドレスとして除数データラッチ9
から除数をセレクトすればよい。この場合、平文または
暗号化途中のデータは上段から“00”、“f5”、
“16”、“2b”であり、その下位3ビットは、それ
ぞれ“0”、“5”、“6”、“3”である。また、拡
大鍵は上段から“f0”、“96”、“c3”、“5
e”であり、これの下位3ビットは、それぞれ“0”、
“6”、“3”、“6”となる。それぞれの下位3ビッ
トを排他的論理和することにより、アドレス“0”、
“3”、“5”、“5”が決定でき、除数データラッチ
9から除数“2f”、“b1”、“6a”、“6a”を
セレクトできる。他の処理は、実施例1の場合と同じで
あるので説明は省略する。
【0046】実施例5.上記実施例では、加算演算を行
う場合について示したが、加算演算の代わりに減算演算
にしてもよい。減算演算した場合、減算結果を秘密鍵ま
たは秘密鍵より生成した拡大鍵の情報と平文、暗号化途
中データの少なくとも1つの情報によって決定した除数
で除算を行い、その商または剰余を減算結果から引くこ
とでランダム性を高めることができる。nビット演算回
路の場合は、2n を除数として除算を行ったのち商を減
算結果から引くことにより、減算演算でボローが生じた
ならば、減算結果から1を引くことと同等の処理が行え
る。これにより、1を引くことでボローが起こらない場
合との区別をつけることによりランダム性を高めること
ができる。
【0047】実施例6.上記実施例において演算回路へ
の入力は2入力となっていたが、3入力、4入力・・・
であってもよい。3入力の場合の一例を図6に示す。図
6において300は24ビットの平文、400は24ビ
ットの暗号文、301、302、303、304は拡大
鍵の一部をパラメータとして入力信号を変換する処理ブ
ロックFであり、今回の具体例ではFを、「入力信号
(8ビット)の2入力と各段に指定された拡大鍵を加算
し、平文または暗号化途中データの下位3ビットをアド
レスとして除数を選択し、加算結果をこの除数を用いて
除算を行い、その剰余を加算結果に加える関数」とす
る。7、8、9は、図1と同様である。実施例1との違
いは平文300が24ビットであり、これを8ビットず
つに3分割し、うち2組のデータを処理ブロックF30
1〜304の入力データとし、その出力を残る1組の8
ビットデータと排他的論理和する点である。3組の8ビ
ットデータは各段毎にローテートされる。このローテー
トの方法は任意に決めてよい。その他の処理は実施例1
と同様である。
【0048】実施例7.上記実施例では、ディジタルデ
ータの暗号化の場合を示したが、本装置の前後にA/D
変換器及びD/A変換器を用いればアナログデータの暗
号化も可能である。
【0049】
【発明の効果】以上のように、第1、第2、第3、第4
の発明の暗号化装置において、演算結果を秘密鍵または
秘密鍵より生成した拡大鍵の情報と平文、暗号化途中デ
ータの少なくとも1つの情報によって決定した除数で除
算を行い、その商または剰余を演算結果に対して演算す
ることで高いランダム性を得ることができ、これによっ
て解読の危険性を減少させることができる。その特別な
場合としてnビット加算演算回路の場合は、2n を除数
として除算を行ったのちに商を加算結果に再度加えるこ
とが、加算演算でキャリーが生じたならば、加算結果に
1を加えることと同等の処理である。この処理により、
1を加えることでキャリーが起こらない場合との区別を
つけることによりランダム性を高めることができる。
【0050】また、nビット減算演算回路の場合は、2
n を除数として除算を行ったのちに商を減算結果から再
度引くことが、減算演算でボローが生じたならば、減算
結果から1を引くことと同等の処理である。この処理に
より、1を引くことでボローが起こらない場合との区別
をつけることにより、ランダム性を高めることができ
る。
【図面の簡単な説明】
【図1】この発明の実施例1による暗号化方式の具体例
を示す図である。
【図2】この発明の実施例2による暗号化方式の具体例
を示す図である。
【図3】この発明の実施例2による加算演算の回路構成
を示す図である。
【図4】この発明の実施例2による加算演算の回路構成
を示す図である。
【図5】この発明の実施例3による暗号化方式の具体例
を示す図である。
【図6】この発明の実施例6による暗号化方式の具体例
を示す図である。
【図7】従来の暗号化方式を示す回路図である。
【図8】従来の暗号化方式の内部処理を示す回路図であ
る。
【図9】従来の暗号化方式を示す回路図である。
【図10】従来の暗号化方式の内部処理を示す回路図で
ある。
【図11】従来の暗号化方式の内部処理を示す回路図で
ある。
【図12】従来の暗号化方式の内部処理を示す回路図で
ある。
【図13】従来の加算演算の回路構成を示す図である。
【符号の説明】
1 16ビット平文 2 16ビット暗号文 3 処理ブロックF 4 処理ブロックF 5 処理ブロックF 6 処理ブロックF 7 排他的論理和 8 拡大鍵ラッチ 9 除数データラッチ 10 16ビット平文 11 16ビット暗号文 12 処理ブロックF 13 処理ブロックF 14 処理ブロックF 15 処理ブロックF 16 拡大鍵ラッチ 17 64ビット平文 18 64ビット暗号文 19 処理ブロック 20 処理ブロック 21 処理ブロック 22 処理ブロック 23 拡大鍵ラッチ 24 32ビット信号 25 32ビット信号 26 8ビット処理関数 27 8ビット処理関数 28 64ビット平文 29 64ビット暗号文 30 処理ブロック 31 処理ブロック 32 処理ブロック 33 処理ブロック 34 処理ブロック 35 処理ブロック 36 拡大鍵ラッチ 37 Nビットレジスタ 38 Nビットレジスタ 39 Nビット加算器 40 Nビット加算器 41 Nビットレジスタ 42 Nビットレジスタ 43 キャリー 44 2−1セレクタ 45 Nビットレジスタ 46 Nビットレジスタ 47 Nビットレジスタ 48 Nビット加算器 49 Nビットレジスタ 50 Nビット加算器 51 Nビットレジスタ
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 610 H04L 9/06

Claims (10)

    (57)【特許請求の範囲】
  1. 【請求項1】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵の情報によって決定された除数で除算を行
    い、上記除算された結果得られた商を上記演算結果に対
    して演算する第2の演算部とを備えたことを特徴とする
    暗号化装置。
  2. 【請求項2】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵の情報によって決定された除数で除算を行
    い、上記除算された結果得られた剰余を上記演算結果に
    対して演算する第2の演算部とを備えたことを特徴とす
    る暗号化装置。
  3. 【請求項3】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵より生成した拡大鍵の情報によって決定さ
    れた除数で除算を行い、上記除算された結果得られた商
    上記演算結果に対して演算する第2の演算部とを備え
    たことを特徴とする暗号化装置。
  4. 【請求項4】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵より生成した拡大鍵の情報によって決定さ
    れた除数で除算を行い、上記除算された結果得られた剰
    余を上記演算結果に対して演算する第2の演算部とを備
    えたことを特徴とする暗号化装置。
  5. 【請求項5】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、平文また
    は暗号化途中のデータの情報によって決定された除数で
    除算を行い、上記除算された結果得られた商を上記演算
    結果に対して演算する第2の演算部とを備えたことを特
    徴とする暗号化装置。
  6. 【請求項6】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、平文また
    は暗号化途中のデータの情報によって決定された除数で
    除算を行い、上記除算された結果得られた剰余を上記
    算結果に対して演算する第2の演算部とを備えたことを
    特徴とする暗号化装置。
  7. 【請求項7】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵の情報と、平文または暗号化途中のデータ
    の情報との両方によって決定された除数で除算を行い、
    上記除算された結果得られた商を上記演算結果に対して
    演算する第2の演算部とを備えたことを特徴とする暗号
    化装置。
  8. 【請求項8】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵の情報と、平文または暗号化途中のデータ
    の情報との両方によって決定された除数で除算を行い、
    上記除算された結果得られた剰余を上記演算結果に対し
    て演算する第2の演算部とを備えたことを特徴とする暗
    号化装置。
  9. 【請求項9】 データの暗号化装置において、1つまた
    はそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵より生成した拡大鍵の情報と、平文または
    暗号化途中のデータの情報との両方によって決定された
    除数で除算を行い、上記除算された結果得られた商を
    演算結果に対して演算する第2の演算部とを備えたこ
    とを特徴とする暗号化装置。
  10. 【請求項10】 データの暗号化装置において、1つま
    たはそれ以上の演算回路を有し、上記演算回路は、 当該回路への入力に対し所定の演算を行う第1の演算部
    と、 上記第1の演算部により演算された演算結果を記憶する
    レジスタと、 上記レジスタに記憶された演算結果に対して、暗号化に
    用いる秘密鍵より生成した拡大鍵の情報と、平文または
    暗号化途中のデータの情報との両方によって決定された
    除数で除算を行い、上記除算された結果得られた剰余を
    上記演算結果に対して演算する第2の演算部とを備えた
    ことを特徴とする暗号化装置。
JP22600193A 1993-09-10 1993-09-10 暗号化装置 Expired - Lifetime JP3242231B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22600193A JP3242231B2 (ja) 1993-09-10 1993-09-10 暗号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP22600193A JP3242231B2 (ja) 1993-09-10 1993-09-10 暗号化装置

Publications (2)

Publication Number Publication Date
JPH0777935A JPH0777935A (ja) 1995-03-20
JP3242231B2 true JP3242231B2 (ja) 2001-12-25

Family

ID=16838239

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22600193A Expired - Lifetime JP3242231B2 (ja) 1993-09-10 1993-09-10 暗号化装置

Country Status (1)

Country Link
JP (1) JP3242231B2 (ja)

Also Published As

Publication number Publication date
JPH0777935A (ja) 1995-03-20

Similar Documents

Publication Publication Date Title
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
US5499299A (en) Modular arithmetic operation system
JP2862030B2 (ja) 暗号化方式
EP0454187B1 (en) Data randomization equipment
EP1081889A2 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
US7801307B2 (en) Method of symmetric key data encryption
KR19990002840A (ko) 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘
US7024560B2 (en) Power-residue calculating unit using Montgomery algorithm
US20030016823A1 (en) Method and apparatus of using irrational numbers in random number generators for cryptography
US4969190A (en) Encrypting system of data
EP1059760A1 (en) Method for the block-encryption of discrete data
JP3012732B2 (ja) ブロック暗号処理装置
JP2950485B2 (ja) ストリーム暗号処理装置
JP2001051832A (ja) 乗算剰余演算方法および乗算剰余回路
JP3242231B2 (ja) 暗号化装置
EP1202488B1 (en) Encryption sub-key generation circuit
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
US7142673B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
WO1999038142A1 (fr) Procede et appareil pour effectuer une operation arithmetique et support d'enregistrement dudit procede
JPH09269727A (ja) 暗号化方法および暗号化装置
JPH0895490A (ja) 秘密鍵暗号方法及び装置
JP2864813B2 (ja) 暗号化装置及び復号化装置
JPS6350883A (ja) 分割整数剰余計算機
JPH1152850A (ja) 暗号変換方法および装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011002

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20040520

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071019

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081019

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091019

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091019

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101019

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111019

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121019

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131019

Year of fee payment: 12