JP3013774B2 - 循環演算にもとづく暗号化装置 - Google Patents

循環演算にもとづく暗号化装置

Info

Publication number
JP3013774B2
JP3013774B2 JP8084645A JP8464596A JP3013774B2 JP 3013774 B2 JP3013774 B2 JP 3013774B2 JP 8084645 A JP8084645 A JP 8084645A JP 8464596 A JP8464596 A JP 8464596A JP 3013774 B2 JP3013774 B2 JP 3013774B2
Authority
JP
Japan
Prior art keywords
bit
bits
output
integer
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.)
Expired - Lifetime
Application number
JP8084645A
Other languages
English (en)
Other versions
JPH09244530A (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.)
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 JP8084645A priority Critical patent/JP3013774B2/ja
Publication of JPH09244530A publication Critical patent/JPH09244530A/ja
Application granted granted Critical
Publication of JP3013774B2 publication Critical patent/JP3013774B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は循環演算にもとづく
暗号化装置に関し、特に通信システムや計算機システム
において採用され、許可されていない者が不正に情報を
取得することなどを防止するために、情報を暗号に変換
し、且つ暗号を元の情報を復元することを図った循環演
算にもとづく暗号化装置に関する。
【0002】
【従来の技術】従来の暗号化方法および装置では、しば
しば線形変換(アフィン変換とも呼ばれる)Y=AX+
B(mod P)を組み合わせて暗号化が行われてい
た。ここでいう線形変換とは、変換対象の整数Xに整数
Aを乗算し、その乗算結果AXに整数Bを加算し、その
加算結果AX+BをPで割ったときの余り(剰余と呼
ぶ)を暗号文Yとするものである。なお、A,B,Pは
予め決められた整数である。
【0003】例えば、A=1とし、Bを暗号鍵とし、P
をアルファベットの数としたものは、シーザー暗号と呼
ばれる。また、Aを暗号鍵として、B=0とし、Pをア
ルファベットの数としたものは、積暗号と呼ばれる。ま
た、AもBも暗号鍵とし、Pをアルファベットの数とし
たものは、線形変換暗号と呼ばれる。これらの暗号は古
くから使われてきた。
【0004】通常の計算機においては8ビット整数が1
文字として扱われるため、A,X,Bはそれぞれ8ビッ
ト整数で、P=256である。このため、演算結果AX
+Bの下位8ビットがAX+B(mod P)と等しく
なる。すなわち、割り算をしなくとも、上位のビットを
無視するだけで剰余が計算できる。
【0005】前述したシーザー暗号、積暗号、線形変換
暗号については、例えば、松井甲子雄著「コンピュータ
による暗号解読入門」(森北出版、1990年)の第3
9ページから第55ページにかけて詳しい解説がなされ
ている。
【0006】また、多重剰余暗号と呼ばれる暗号化方法
においては、A,Bを予め決められた整数とし、Pを暗
号鍵とした線形変換が用いられていた。なお、多重剰余
暗号については、例えば、特開平6−75525号公報
に詳述されている。
【0007】なお、以下の記述では、nビット加算器と
いう用語が出てくるが、nビット加算器とは、キャリー
入力と呼ばれる1ビット整数Cと、nビット整数Xと、
nビット整数Yとに対して、演算Z=X+Y+Cを実行
する回路のことである。また、Zの下位nビットをnビ
ット加算器の加算出力と呼び、Zの下位からn+1ビッ
ト目をnビット加算器のキャリー出力と呼ぶ。さらに、
nビット加算器がZ=X+Y+Cを計算することを、C
をキャリー入力としてXとYを加算すると言うことにす
る。
【0008】
【発明が解決しようとする課題】上述した従来の線形変
換による暗号化方法には、次のような問題点がある。第
1の問題点は、線形変換Y=AX+B(mod P)に
おいてPを2のべき乗で表現できる値(例えばP=28
=256)に選ぶと、秘匿度が高い撹拌効果の大きな暗
号化が行えないということである。その理由は、Pを2
のべき乗で表現できる値に選ぶと、AX+B(mod
P)が単にAX+Bの上位ビットを消去したものにな
り、変換結果Yの下位ビットがXの上位ビットの影響を
受けなくなるからである。
【0009】第2の問題点は、線形変換Y=AX+B
(mod P)においてPを2のべき乗で表現できない
値に選ぶと、処理時間や装置規模を小さくできないとい
うことである。その理由は、線形変換を計算するのに割
り算が必要になるからである。
【0010】本発明の目的は、上述した問題点を解決
し、線形変換Y=AX+Bによって生じた桁上がりを下
位桁に直接フィードバックするという循環演算を行うこ
とにより、装置規模が小さく、且つ撹拌効果の大きい循
環演算による暗号化方式および装置を提供することにあ
る。
【0011】
【課題を解決するための手段】上述した目的を達成する
ため、本発明は次の手段構成を有する。即ち、循環演算
にもとづく暗号化装置に関する本発明の第1の構成は、
入力されたnビット整数Xに対してnビット整数Aおよ
びBによる線形変換Y=AX+Bを実行して得られる2
nビット整数の上位nビットYhを下位nビットYlに
加算しつつ、加算結果のキャリーを表現する上位nビッ
トYhが0となったときの下位nビットYlを整数Xの
暗号文として出力する暗号装置であって、入力されたn
ビット整数Xとnビット整数Aとを乗算して乗算結果を
出力する乗算器と、0をキャリー入力として前記乗算器
の出力の上位nビットと前記乗算器の出力の下位nビッ
トとを加算する第1のnビット加算器と、前記第1のn
ビット加算器のキャリー出力をキャリー入力として前記
第1のnビット加算器の加算出力と入力されたnビット
整数Bとを加算する第2のnビット加算器と、前記第2
のnビット加算器のキャリー出力をキャリー入力として
前記第2のnビット加算器の加算出力と0とを加算する
第3のnビット加算器とを具備し、前記第3のnビット
加算器の加算出力を前記nビット整数Xに対応する暗号
文として出力する構成を有する。
【0012】
【0013】また、循環演算にもとづく暗号化装置に関
する本発明の第2の構成は、前記第1の構成において、
前記nビット整数Bを0とした構成を有する。
【0014】また、循環演算にもとづく暗号化装置に関
する本発明の第3の構成は、前記第2の構成において、
前記nビット整数AがA=2m −1として表現される場
合に、前記線形変換におけるAX=X2m −Xを、前記
入力されたnビット整数Xを上位ビット方向にmビット
だけシフトするシフタと、前記シフタの出力とnビット
整数Xとの差を求める減算器とによって求める構成を有
する。
【0015】また、循環演算にもとづく暗号化装置に関
する本発明の第4の構成は、前記第2の構成において、
前記nビットをn=8とした場合に、前記nビット整数
Aを28 −1=255とは互いに素である数値に設定し
て、前記入力されたnビット整数Xと前記暗号文とがビ
ット位ごとに1対1の変換対応を確保するものとした構
成を有する。
【0016】また、循環演算にもとづく暗号化装置に関
する本発明の第5の構成は、前記第3の構成において、
前記nビットをn=8とし、且つ2m −1で表現される
前記nビット整数Aを、mを3,5,7のいずれかに設
定して、前記入力されたnビット整数Xと前記暗号文と
がビット位ごとに1対1の変換対応を確保するものとし
た構成を有する。
【0017】
【発明の実施の形態】従来の線形変換Y=AX+B(m
od P)において、Pを2のべき乗で表現した場合
は、変換結果Yの下位ビットがXの上位ビットの影響を
受けなくなり、撹拌効果の大きい暗号化が行えない。ま
た、Pを2のべき乗で表現できない値とすると、処理時
間や装置規模の圧縮が困難となる。
【0018】Pが2のべき乗以外の値に選ばれた線形変
換Y=AX+B(mod P)においては、Pを法とす
る剰余は、AX+Bの上位桁と下位桁の両方に依存して
決まる。従って、剰余の計算過程においては、演算結果
Y=AX+Bの上位桁がYの下位桁に間接的にフィード
バックされていると解釈できる。
【0019】そこで、本発明では、線形変換Y=AX+
BにおけるA,X,B,Pをnビットの整数とし、Yを
2nビットの整数とし、Yの上位nビットをYh、Yの
下位nビットをYlとすると、Y=AX+Bとした後
に、加算によるキャリー(桁上り)を表現するYhが0
になるまで、加算Y=Yh+Ylを繰り返す循環演算を
行うことにした。すなわち、演算結果においてYhへの
桁上がりが再発生しなくなるまで、YhをYlに足し込
んでやるのである。このようにして、Yの上位桁Yhを
下位桁Ylに直接フィードバックしてやる循環演算を行
えば、剰余の計算をしなくとも、撹拌効果の大きな暗号
化ができる。
【0020】なお、Yhが0になるまで加算Y=Yh+
Ylを繰り返すと、Xの値によっては加算が何回も繰り
返されそうだが、そのようなことは無い。なぜならば、
ある回の加算において桁上がりがYhに伝播した場合に
は、Ylのいずれかの桁に必ず0が含まれているから、
次の回の加算においてYhに桁上がりが伝播することは
無いからである。
【0021】
【実施例】次に、本発明について図面を参照して詳細に
説明する。図1は、本発明の循環演算にもとづく暗号化
装置の基本的動作を示すフローチャートである。図1に
おいて、入力されたnビット整数Xは、線形変換処理を
実行するステップ101に供給される。ステップ101
では、整数Xに対しての線形変換Y=AX+Bを実行す
る。なお、Yは2nビット整数であり、以下の説明では
便宜上、Yの上位nビットをYhと表し、Yの下位nビ
ットをYlと表すものとする。
【0022】次に、判定処理を実行するステップ102
では、Yhが0であるか否かを判定する。そして、も
し、Yhが0であれば、処理を終了する。一方、もし、
Yhが0でなければ、加算結果代入処理Y=Yh+Yl
としてのステップ103に制御を移す。ステップ103
では、YhとYlを加算して、その結果をYに代入し、
制御を再びステップ102に移す。以上のようにすれ
ば、処理の終了時点において、入力された平文に対応す
るnビットの暗号文が、Ylに格納される。
【0023】図2は、本発明の暗号化装置の第1の実施
例の構成を示すブロック図である。図2において、乗算
器201は、入力端子205から供給されるnビット整
数Xと、入力端子206から供給されるnビット整数A
とを乗算して、乗算結果pを第1のnビット加算器20
2に供給する。
【0024】第1のnビット加算器202は、0をキャ
リー入力として乗算結果の上位nビットaと乗算結果の
下位nビットbとを加算して、加算出力を第2のnビッ
ト加算器203に供給する。
【0025】第2のnビット加算器203は、第1のn
ビット加算器202のキャリー出力dをキャリー入力と
し、第1のnビット加算器202の加算出力cと入力端
子207から供給されるnビット整数Bとを加算して、
加算出力fを第3のnビット加算器204に供給する。
nビット加算器204は、nビット加算器203のキャ
リー出力eをキャリー入力とし、第2のnビット加算器
203の加算出力fと0とを加算する。第3のnビット
加算器204の加算出力がXに対する暗号文gとして出
力端子208から出力される。
【0026】図3は、本発明の暗号化装置の第2の実施
例の構成を示すブロック図である。この暗号化装置は、
図2に示す第1の実施例において、線形変換Y=AX+
BのB=0とした場合である。図3において、乗算器2
01は、入力端子205から供給されるnビット整数X
と入力端子206から供給されるnビット整数Aとを乗
算して、乗算結果pを第1のnビット加算器202に供
給する。
【0027】第1のnビット加算器202は、0をキャ
リー入力として乗算結果pの上位nビットaと乗算結果
pの下位nビットbとを加算して、加算出力cを第3の
nビット加算器204に供給する。第3のnビット加算
器204は、第1のnビット加算器202のキャリー出
力dをキャリー入力として第1のnビット加算器202
の加算出力cと0とを加算する。そして、第3のnビッ
ト加算器204の加算出力がXに対する暗号文hとして
出力端子208から出力される。
【0028】なお、nビットのビット数が8であるよう
な本発明の暗号化装置において、入力Xと暗号文とのデ
ータ列を互いに1対1に対応させてデータ列の整合性を
確保したい場合には、Aの値として28 −1=255と
は互いに素なる数、即ち、7,11,13,19,2
3,29,31,37,41,43,47,49,5
3,59,61,67,71,73,77,79,8
3,89,91,97,101,103,107,10
9,113,121,127,131,133,13
7,139,143,149,151,157,16
1,163,167,169,173,179,18
1,191,193,197,199,203,20
9,211,217,223,227,229,23
3,239,241,247,251,253のいずれ
かを選べばよい。
【0029】この場合のデータ列同士の1対1の整合性
とは、入力Xが仮に0,1,2,……255とすると、
暗号化が0が5に、1が6に対応するというようにし
て、5,6,7,……300と表現される入出力間のデ
ータごとの変換対応が確保されることをいう。
【0030】図4は本発明の暗号化装置の第3の実施例
の構成を示すブロック図である。この暗号化装置は図3
に示す第2の実施例において、A=2m −1として表現
できる場合のものを対象とする。即ち、A=2m −1の
場合には、AX=X2m −Xとなるから、シフタと減算
器とで乗算器の機能を代用できる。図4において、シフ
タ209は、入力端子205から供給されるnビット整
数Xを上位ビット方向にmビットだけシフトして、その
結果のmビットシフト出力iを出力する。
【0031】減算器210は、入力端子205から供給
されるnビット整数Xを、シフタ209の出力から減算
して、減算結果jを第1のnビット加算器202に供給
する。第1のnビット加算器202は、0をキャリー入
力として減算結果の上位nビットkと減算結果の下位n
ビットlとを加算して、加算出力rを第3のnビット加
算器204に供給する。
【0032】nビット加算器204は、第1のnビット
加算器202のキャリー出力sをキャリー入力として第
1のnビット加算器202の加算出力rと0とを加算す
る。そして、第3のnビット加算器204の加算出力が
Xに対する暗号文tとして出力端子208から出力され
る。
【0033】なお、nが8であるような本発明の暗号化
装置において、入力Xと暗号文とを1対1に対応させた
い場合には、mの値として、3,5,7のいずれかを選
べばよい。
【0034】なお、上述した実施例は本発明の数例に過
ぎず、これら実施例の変形例も種々考えられる。例え
ば、上述した暗号化装置を複数組み合わせたり、あるい
は本発明の暗号化装置を他の暗号化装置に組み込むな
ど、いずれも本発明の主旨を損なうことなく容易に実施
でき、より安全性の高い暗号化装置を実施し得ることも
明らかである。
【0035】
【発明の効果】以上説明したように本発明は、線形変換
Y=AX+Bによって入力nビット整数Xの暗号化を行
う場合に、A,X,Bをnビットの整数とし、Yを2n
ビットの整数とし、且つYの上位nビットをYh、Yの
下位nビットをYlとしてYhが0になるまで加算Y=
Yh+Ylを繰り返す循環演算を行うことにより、次に
示す第1および第2の効果が得られる。
【0036】第1の効果は、秘匿性を高める撹拌効果の
大きい暗号化が確保できるということである。これによ
り、第3者による解読の困難な暗号化装置が実現できる
ようになる。その理由は、変換結果のどのビットも入力
の全ビットの影響を受けるからである。第2の効果は、
小規模な装置で暗号化できるということである。これに
より、暗号化装置を低コストで実現できるようになる。
その理由は、除算が不要だからである。
【図面の簡単な説明】
【図1】本発明の循環演算にもとづく暗号化装置の基本
的動作を示すフローチャートである。
【図2】本発明の循環演算にもとづく暗号化装置の第1
の実施例の構成を示すブロック図である。
【図3】本発明の循環演算にもとづく暗号化装置の第2
の実施例の構成を示すブロック図である。
【図4】本発明の循環演算にもとづく暗号化装置の第3
の実施例の構成を示すブロック図である。
【符号の説明】
201 乗算器 202 第1のnビット加算器 203 第2のnビット加算器 204 第3のnビット加算器 209 シフタ 210 減算器

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力されたnビット整数Xに対してnビ
    ット整数AおよびBによる線形変換Y=AX+Bを実行
    して得られる2nビット整数の上位nビットYhを下位
    nビットYlに加算しつつ、加算結果のキャリーを表現
    する上位nビットYhが0となったときの下位nビット
    Ylを整数Xの暗号文として出力する暗号装置であっ
    て、入力されたnビット整数Xとnビット整数Aとを乗
    算して乗算結果を出力する乗算器と、0をキャリー入力
    として前記乗算器の出力の上位nビットと前記乗算器の
    出力の下位nビットとを加算する第1のnビット加算器
    と、前記第1のnビット加算器のキャリー出力をキャリ
    ー入力として前記第1のnビット加算器の加算出力と入
    力されたnビット整数Bとを加算する第2のnビット加
    算器と、前記第2のnビット加算器のキャリー出力をキ
    ャリー入力として前記第2のnビット加算器の加算出力
    と0とを加算する第3のnビット加算器とを具備し、前
    記第3のnビット加算器の加算出力を前記nビット整数
    Xに対応する暗号文として出力することを特徴とする循
    環演算にもとづく暗号化装置。
  2. 【請求項2】 前記nビット整数Bを0とした構成を有
    することを特徴とする請求項1記載の循環演算にもとづ
    く暗号化装置。
  3. 【請求項3】 前記nビット整数AがA=2 m −1とし
    て表現される場合に、前記線形変換におけるAX=X2
    m −Xを、前記入力されたnビット整数Xを上位ビット
    方向にmビットだけシフトするシフタと、前記シフタの
    出力とnビット整数Xとの差を求める減算器とによって
    求める構成を有することを特徴とする請求項2記載の循
    環演算にもとづく暗号化装置。
  4. 【請求項4】 前記nビットをn=8とした場合に、前
    記nビット整数Aを2 8 −1=255とは互いに素であ
    る数値に設定して、前記入力されたnビット整数Xと前
    記暗号文とがビット位ごとに1対1の変換対応を確保す
    るものとしたことを特徴とする請求項2記載の循環演算
    にもとづく暗号化装置。
  5. 【請求項5】 前記nビットをn=8とし、且つ2 m
    1で表現される前記nビット整数Aを、mを3,5,7
    のいずれかに設定して、前記入力されたnビット整数X
    と前記暗号文とがビット位ごとに1対1の変換対応を確
    保するものとしたことを特徴とする請求項3記載の循環
    演算にもとづく暗号化装置。
JP8084645A 1996-03-13 1996-03-13 循環演算にもとづく暗号化装置 Expired - Lifetime JP3013774B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8084645A JP3013774B2 (ja) 1996-03-13 1996-03-13 循環演算にもとづく暗号化装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8084645A JP3013774B2 (ja) 1996-03-13 1996-03-13 循環演算にもとづく暗号化装置

Publications (2)

Publication Number Publication Date
JPH09244530A JPH09244530A (ja) 1997-09-19
JP3013774B2 true JP3013774B2 (ja) 2000-02-28

Family

ID=13836442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8084645A Expired - Lifetime JP3013774B2 (ja) 1996-03-13 1996-03-13 循環演算にもとづく暗号化装置

Country Status (1)

Country Link
JP (1) JP3013774B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6483918B2 (en) * 1999-06-09 2002-11-19 Microsoft Corporation Technique for producing a parameter, such as a checksum, through a primitive that uses elementary register operations

Also Published As

Publication number Publication date
JPH09244530A (ja) 1997-09-19

Similar Documents

Publication Publication Date Title
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
EP1081889B1 (en) Extended key generator, encryption / decryption unit, extended key generation method, and storage medium
US7079651B2 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
JP2007041620A5 (ja)
JP3180836B2 (ja) 暗号通信装置
JP3013774B2 (ja) 循環演算にもとづく暗号化装置
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
RU2188513C2 (ru) Способ криптографического преобразования l-битовых входных блоков цифровых данных в l-битовые выходные блоки
JPH0895490A (ja) 秘密鍵暗号方法及び装置
JP3024549B2 (ja) 循環演算にもとづく暗号文の復号化方法および装置
JP5726394B2 (ja) 非線形関数器、ストリーム暗号の暗号化装置、復号化装置、mac生成装置
JPH1152850A (ja) 暗号変換方法および装置
JP3013777B2 (ja) 循環演算にもとづく暗号の暗号鍵生成装置
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных
abdual Rahman et al. A new approach for Encryption using radix modular
JPH11161164A (ja) 公開鍵暗号方式と暗号化装置および復号装置
JPH10322317A (ja) データ変換装置、データ送信装置及びデータ復元装置