JP2002091305A - 多重アファイン鍵を用いる乱数生成装置及び暗号化・復号化装置、並びにこれを利用するデジタルデータ処理装置と方法及びプログラム - Google Patents

多重アファイン鍵を用いる乱数生成装置及び暗号化・復号化装置、並びにこれを利用するデジタルデータ処理装置と方法及びプログラム

Info

Publication number
JP2002091305A
JP2002091305A JP2001186919A JP2001186919A JP2002091305A JP 2002091305 A JP2002091305 A JP 2002091305A JP 2001186919 A JP2001186919 A JP 2001186919A JP 2001186919 A JP2001186919 A JP 2001186919A JP 2002091305 A JP2002091305 A JP 2002091305A
Authority
JP
Japan
Prior art keywords
random number
data
affine key
affine
coefficient
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
JP2001186919A
Other languages
English (en)
Inventor
Shuichi Suzuki
秀一 鈴木
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.)
FUJI SOFT ABC Inc
Original Assignee
FUJI SOFT ABC Inc
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 FUJI SOFT ABC Inc filed Critical FUJI SOFT ABC Inc
Priority to JP2001186919A priority Critical patent/JP2002091305A/ja
Publication of JP2002091305A publication Critical patent/JP2002091305A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 第三者の推定ができない真性乱数に限りなく
近い良質な擬似乱数を生成する乱数生成装置及びその応
用である暗号化復号化装置等を提供する。 【解決手段】 二つの係数を含む4個の整数(a,b,
c,n)からなる複数のアファイン鍵を記憶領域に格納
し、ここから選ばれた第1アファイン鍵に基づき乱数列
を生成する乱数生成装置である。第1アファイン鍵は、
所定の使用回数ごとに、生成された乱数列の値に変数を
加えた値をポインタjとして、複数アファイン鍵から新
たな第2アファイン鍵データを選択しこれに基づき係数
aを書き換え、更に第3アファイン鍵データを選択しこ
れに基づき係数bを書き換える。更に、係数aの所定下
位ビットを係数aの値に基づき書き換え、係数bの所定
下位ビットを係数bの値に基づき書き換えた上で、記憶
領域に再び書き込む。これにより弱鍵を排除し良質な擬
似乱数を生成して第三者の乱数生成の推定を困難にさせ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、第三者の模倣がで
きない真性の乱数に限りなく近い良質な乱数を生成する
乱数生成装置及びこの乱数を利用したストリーム暗号を
用いた暗号化・復号化装置及びこれらの方法及びこれを
利用するデジタルデータ処理装置に関するものである。
【0002】
【従来の技術】最近の飛躍的な情報インフラの整備に伴
って、デジタル情報に関するより確実性の高いセキュリ
ティ技術が広範囲に求められてきている。具体的には、
デジタル通信における不正な解読を困難とする暗号化技
術であり、記録媒体に格納された情報に対する第三者の
不正な読み出しを阻止する高いセキュリティ技術などで
ある。
【0003】従来から、究極の暗号として知られている
ヴァーナム暗号は、暗号化するべき平文データと同じ数
だけの鍵データを用意し、これを送信側と受信側とでそ
れぞれに確保しておき一度だけ平文の暗号化・復号化に
使用するものである。
【0004】この方法では、鍵データが一度しか使用さ
れないため、第三者が運良く暗号文データと平文データ
とを入手して、使用された鍵データを特定したとして
も、次回は事前に用意された異なる鍵データが使用され
るので、第三者が暗号文から平文を知ることが原理的に
できない。
【0005】しかしながら、このヴァーナム暗号では膨
大な鍵データを双方で管理していなければならずほとん
ど実用的ではないため、比較的短い同じ鍵データを何ら
かの処理を施して反復して使用しながらも、第三者が簡
単には知り得ない暗号化復号化の方法が一般に開発され
使用されてきている。
【0006】暗号化復号化技術で求められることは、主
に、高速性、解読の困難性、使用機種の汎用性
(例えば一般にあるパソコンで手軽に実現できる)など
であるが、高速性に優れている意味では、処理が単純な
ストリーム暗号法が有利である。
【0007】ストリーム暗号法とは、保護すべきビット
列{m}に対して乱数列{R}を生成して、C
(xor)Rで暗号文{C}を生成する方法で
ある(ここで、(xor)は排他的論理和を表す)。
【0008】しかしながら、従来のストリーム暗号法は
既知平文攻撃に弱く、この攻撃により使用された乱数列
{R}が第三者に容易に特定されてしまう。つまり、
ストリーム暗号法では一般に擬似乱数を使用して行われ
るわけだが、具体的には、乱数発生法の一つであるレー
マー法(Lehmer法)の原理で、整数(a,b,m)に対
して、初期値をrとして乱数を R=(aRn−1+b)(mod m) で定義し、この乱数を使用してストリーム暗号を作るこ
とができる。この場合a,b,mが暗号鍵ということに
なる。
【0009】しかし既知平文攻撃によれば、第三者が知
り得た平文データや暗号文データが増えてくると、この
乱数の生成の元になっている暗号鍵a,b,mが未定係
数法などで確定されてしまう。暗号鍵a,b,mが特定
されると、生成する擬似乱数は第三者に割り出されてし
まい、暗号文は全て解読されてしまう。従って、高速性
に優れたストリーム暗号は解読の困難性に問題がある
とされる。
【0010】そこで数年前から、このようなストリーム
暗号の欠点をもたない安全性の高いカオス暗号と呼ばれ
るものが登場してきた。このカオス暗号は、乱数を発生
する際に次のような二次式を用いており、実数の初期値
x0と実数a,b,cを用いて、乱数列{X}は、次
のように定義される。
【0011】x=ax2n−1+bxn−1+c ここでは、数列{x}は極めて複雑な振る舞い(カオ
ス)をすることが知られており、a,b,cなどが暗号
鍵と考えられる。
【0012】このような乱数列{x},{y},
{z},・・・を複数準備し、文字列{m}に対し
て、その暗号化を C=(x)(xor)(y)(xor)(z
(xor)・・・(xor){m} のように定義している。ここで(x)はxの整数部
分である。
【0013】この方法では、実数型の乱数列の一部をマ
スクし、部分的な情報だけを暗号化に使用しているた
め、乱数列を生成している元となる暗号鍵(a,b,c
など)を特定することを困難にすることができる。そし
て、この暗号化方法によれば、DESのように特製チッ
プを使用しなくても高速な暗号化がソフトウェアのみで
実現することができる。
【0014】しかし、カオス暗号は、その安全性を乱数
発生の際に一次式ではなく二次式を用いることに基づい
ているため、暗号化の際には実数の乗法を2回以上使用
しなければ暗号化できず、暗号化処理の演算に時間がか
かるという暗号化の高速性に問題があり、更に、実数
演算はコンパイラや機種によって実装の仕方が異なるの
でカオス暗号は本質的に機種依存性を有しており汎用
性にも乏しい。
【0015】このため、暗号化の高速性、解読の困
難性、機種の汎用性(どのような機種の情報処理装置
(パソコン)でも容易に使用できる)と、三つの条件を
満たす暗号方法を同時に実現するには、上述した高速で
汎用性の高い一次式であるストリーム暗号(の確保)
へ真性乱数にできうる限り近い良質な疑似乱数(の確
保)を用いて暗号化する方法が考えられ、更にこれは、
汎用性の高い方法(実数演算ではなく整数演算)(の
確保)で実現されなければならない。つまり、送信側と
受信側とで同一の真性乱数に近い擬似乱数を発生させ、
これをヴァーナム暗号の鍵データのように使用できれ
ば、高速性と解読の困難性と機種の汎用性とを同時に実
現することができると考えられる。
【0016】
【発明が解決しようとする課題】しかしながら、従来に
ある疑似乱数発生方法であると、第三者が解読し得てし
まう周期性が生成乱数に表れてくる危険があり、高速で
汎用性が高いストリーム暗号に使用するとき、高いセキ
ュリティがあるとは言えない状態であるという問題があ
る。
【0017】本発明は上記した課題を解決するべく設け
られたものであり、真性乱数に限りなく近い乱数であり
周期性が非常に長いため現実には解読不能な乱数を生成
する乱数生成装置を提供し、更にこれを用いた暗号化復
号化装置及び各種装置への応用を提供することを目的と
する。
【0018】
【課題を解決するための手段】本発明は、上記した目的
を達成するべく以下のような形態をとるものである。
【0019】請求項1に特定された本発明は、a、bを
係数、cをこのアファイン鍵の使用回数、nを前記アフ
ァイン鍵が使用できる所定回数(寿命)とする4個の整
数からなる数列K={a,b,c,n}で表現されるア
ファイン鍵データが複数与えられた多重アファイン鍵デ
ータを格納する格納手段;と、前記格納手段に格納され
ている複数のアファイン鍵から選択された一つの第1ア
ファイン鍵データに基づいて、乱数列データを生成する
乱数生成手段;と、前記乱数生成手段にて使用された前
記第1アファイン鍵の乱数列データの生成への使用回数
cをカウントし、これが前記所定回数n(寿命)以上で
あるとき、前記係数aを書き換えるために前記格納手段
の前記多重アファイン鍵データから第2アファイン鍵デ
ータを一定手法で選択して読み出しこれに基づき前記係
数aを書き換え、更に前記第2アファイン鍵データとは
異なる第3アファイン鍵データを選択して読み出しこれ
に基づき前記係数bを書き換える書換手段;と、前記書
換手段により書き換えられた前記係数aの所定下位ビッ
トを係数aの値に基づき書き換え、更に前記係数bの所
定下位ビットを係数bの値に基づき書き換えた上で、前
記格納手段へと再び書き込む書込手段;とを有すること
を特徴とする多重アファイン鍵を用いる乱数生成装置で
ある。
【0020】本発明によれば、真性乱数に限りなく近い
疑似乱数を生成する乱数生成装置であり、第三者による
乱数展開の推定を非常に困難にする乱数生成装置であ
る。すなわち、与えられる複数のアファイン鍵データか
ら選択された第1アファイン鍵に基づき、K(x)=a
x+bの式に応じて乱数が生成される。その後、第1ア
ファイン鍵データは一定の使用回数を経た後に、第1ア
ファイン鍵書換用のために一定手法により選択(S)れ
た第2アファイン鍵を更に特定しこの鍵に基づき一定手
続によって第1アファイン鍵の係数a、bを書き換える
ものである。
【0021】多重アファイン鍵システムは、暗号破りを
意図する第三者が特定しなければならない鍵が複数存在
する上、これが一定期間毎に自己書換(他からの情報に
よらずに)されるため、出力される乱数列をいくら収集
してもこの乱数列からこれら複数の鍵を特定することが
できない。又、従来装置のように簡単な規則性の中で乱
数が生成されてはいないため、得られる乱数の周期性は
事実上存在せず(例えば暗号化装置に使用する範囲では
周期は巡ってこない)、乱数の展開を予測することがで
きない。
【0022】又更に本発明によれば、鍵書き換えの際に
アファイン鍵の係数aを書き換える鍵を例えばK[j]
としたのに対して、係数bを書き換える鍵を例えばK
[j(+)j]として異なる鍵を使用したものであ
る。こうすることにより、係数aの書換用のアファイン
鍵の遷移と、係数bの書換用のアファイン鍵の遷移とが
異なることとなり、生成する擬似乱数を真性乱数に限り
なく近づけ、生成乱数の周期性を一層長くすることが可
能となり、これにより第三者の擬似乱数の展開の推定を
非常に困難にするものである。
【0023】又更に本発明によれば、鍵の書き換えを繰
り返し行うことにより鍵データの値が全てゼロとなるよ
うな状況に対しても、以下のように確実にこれを回避す
る。すなわち、書き換え演算を繰り返されることにより
比較的ゼロデータが蓄積しやすい鍵データの下位ビット
データに対して、書換の際にゼロデータが少ない上位ビ
ットデータを利用してゼロデータを消去するものであ
る。いわゆる弱鍵排除の方法は、いろいろな変形例が考
えられ、上位ビットを下位ビットと入れ替えることでも
可能である。このような処置により、全ての鍵のデータ
がゼロとなるような状況を確実に回避し、必要なだけ鍵
データの更新を繰り返して、真性乱数に限りなく近い状
態の擬似乱数の生成を行うことが可能となる。
【0024】又請求項2に特定される本発明は、a、b
を係数、cをこのアファイン鍵の使用回数、nを前記ア
ファイン鍵が使用できる所定回数(寿命)とする4個の
整数からなる数列K={a,b,c,n}で表現される
アファイン鍵データが複数与えられた多重アファイン鍵
データを格納する格納手段;と、前記格納手段に格納さ
れている複数のアファイン鍵から選択された一つの第1
アファイン鍵データに基づいて、乱数列データを生成す
る乱数生成手段;と、前記乱数生成手段にて使用された
前記第1アファイン鍵の乱数列データの生成への使用回
数cをカウントし、これが前記所定回数n(寿命)以上
であるとき、前記乱数生成手段が生成した乱数列データ
の値に変数を加えた値をポインタjとして、前記格納手
段の前記多重アファイン鍵データから第2アファイン鍵
データを選択して読み出しこれに基づき前記係数aを書
き換え、更に前記第2アファイン鍵データとは異なる第
3アファイン鍵データを選択して読み出しこれに基づき
前記係数bを書き換える書換手段;と、前記書換手段に
より書き換えられた前記係数aの所定下位ビットを係数
aの値に基づき書き換え、更に前記係数bの所定下位ビ
ットを係数bの値に基づき書き換えた上で、前記格納手
段へと再び書き込む書込手段;とを有することを特徴と
する多重アファイン鍵を用いる乱数生成装置である。
【0025】本発明によれば、以下のように擬似乱数の
周期を更に長くすることにより真性乱数に限りなく近づ
けることが可能となる。すなわち、アファイン鍵の書換
のために複数のアファイン鍵から一つを特定するための
ポインタjを、j=f(x,z)(+)vkeyと
して、新たに鍵回転用変数vkeyを加えることによ
り、使用する鍵を指定するアルゴリズムをより複雑化す
ることができる。
【0026】つまり、繰り返しアファイン鍵を書き換え
る際に、アファイン鍵の書換の際のポインタ値jが反復
性をもってくると鍵周期がそれだけ短くなってしまう。
新たな鍵回転用変数vkeyはこれを改善するものであ
り、使用する鍵を特定するアルゴリズムを複雑化すれば
する程ポインタ値jの周期は長くなる。その結果、選ば
れる鍵の反復性が減少することで、最終的に得られる生
成疑似乱数の周期を限りなく長期化することができる。
この結果、本発明の乱数生成装置は、真性乱数と実用上
は変わりのない程の非常に長い周期をもつ擬似乱数の生
成を可能としている。
【0027】ここでいう鍵の回転とは、鍵の書換が連続
して繰り返されている状況において、生じる可能性のあ
る周期性をできる限り回避するべく設けられているもの
である。いま、非常に長い周期で特定の鍵Kが繰り返
し表れていると仮定したとき、鍵を特定するポインタの
値に他の変数をとりこむ(例えば書換の延べ回数)こと
で、鍵を指定するアルゴリズムを更に複雑化して、定期
的に発生していた鍵K が徐々に遅れて発生してくるな
ど鍵の発生位置が回転しだす現象がみられる。このよう
に、鍵を指定するアルゴリズムに他の変数を取り込み、
乱数発生の規則性をより一層排除することによって、真
性乱数に限りなく近い擬似乱数の生成を可能とするもの
である。
【0028】実施形態の記載の一例のように、書換を行
うたびに一定値vずつ増えていく値としても良いが、こ
れに限るものでないことは言うまでもなく、複雑であれ
ばそれだけ鍵が特定される周期も長期化し、その結果、
生成する擬似乱数も真性乱数に限りなく近づいていき、
実質上、反復性や周期をもたない良質の乱数となってい
くものである。
【0029】このような手法で複数のアファイン鍵を書
き換えていくことで、第三者が予測することが非常に困
難な真性乱数に限りなく近い擬似乱数を作成し、これを
利用してストリーム暗号を作成することで、暗号化復号
化技術で従来から求められていた高速性と安全性と
汎用性とを初めて同時に実現することができた。
【0030】又請求項3に特定される本発明は、a、b
を係数、cをこのアファイン鍵の使用回数、nを前記ア
ファイン鍵が使用できる所定回数(寿命)とする4個の
整数からなる数列K={a,b,c,n}で表現される
アファイン鍵データが複数与えられた多重アファイン鍵
データを記憶領域に格納する格納工程;と、前記記憶領
域に格納されている複数のアファイン鍵から選択された
一つの第1アファイン鍵データに基づいて、乱数列デー
タを生成する乱数生成工程;と、前記乱数生成工程にて
使用された前記第1アファイン鍵の乱数列データの生成
への使用回数cをカウントし、これが前記所定回数n
(寿命)以上であるとき、前記乱数生成工程にて生成し
た乱数列データの値に変数を加えた値をポインタjとし
て、前記記憶領域の前記多重アファイン鍵データから第
2アファイン鍵データを選択して読み出しこれに基づき
前記係数aを書き換え、更に前記第2アファイン鍵デー
タとは異なる第3アファイン鍵データを選択して読み出
しこれに基づき前記係数bを書き換える書換工程;と、
前記書換工程により書き換えられた前記係数aの所定下
位ビットを係数aの値に基づき書き換え、更に前記係数
bの所定下位ビットを係数bの値に基づき書き換えた上
で、前記記憶領域へと再び書き込む書込工程;とを有す
ることを特徴とする多重アファイン鍵を用いる乱数生成
方法である。
【0031】本発明は、いわゆる鍵回転型の乱数生成方
法を特定するものであり、上述したように特徴と作用・
効果は、複数のアファイン鍵から特定された一つの鍵に
より乱数生成を行い更にアファイン鍵の書換を一定使用
回数ごとに行なうことにより、第三者が推定し得ない真
性乱数に限りなく近い擬似乱数を生成するものである。
【0032】更に、アファイン鍵を書き換えるためのア
ファイン鍵の特定の際に、発生変数xに基づいて決定
するだけでなく、書き換えの延べ回数等のことなる要素
をとりいれて決定するものである。このように鍵の特定
に異なる要素を採り入れることで、乱数を発生する際に
問題となる規則性を極力排除してより真性乱数に近い乱
数を提供することができる。
【0033】更に、アファイン鍵の係数aとbとを異な
る鍵の系列で特定することで、更に規則性の希薄な良質
の乱数としている。
【0034】更に、アファイン鍵係数の書換の際に、各
係数の所定下位ビット(例えば下位1/2のデータ)を
係数のデータ(例えば上位1/2のデータ)を利用(例
えばシフト)して下位ビットのゼロデータを消去するこ
とで弱鍵の発生を確実に排除している。
【0035】又請求項4に特定される本発明は、a、b
を係数、cをこのアファイン鍵の使用回数、nを前記ア
ファイン鍵が使用できる所定回数(寿命)とする4個の
整数からなる数列K={a,b,c,n}で表現される
アファイン鍵データが複数与えられた多重アファイン鍵
データを格納する格納手段;と、前記格納手段に格納さ
れている複数のアファイン鍵から選択された一つの第1
アファイン鍵データに基づいて、乱数列データを生成す
る乱数生成手段;と、前記乱数生成手段にて使用された
前記第1アファイン鍵の乱数列データの生成への使用回
数cをカウントし、これが前記所定回数n(寿命)以上
であるとき、前記係数aを書き換えるために前記格納手
段の前記多重アファイン鍵データから第2アファイン鍵
データを一定手法で選択して読み出しこれに基づき前記
係数aを書き換え、更に前記第2アファイン鍵データと
は異なる第3アファイン鍵データを選択して読み出しこ
れに基づき前記係数bを書き換える書換手段;と、前記
書換手段により書き換えられた前記係数aの所定下位ビ
ットを係数aの値に基づき書き換え、更に前記係数bの
所定下位ビットを係数bの値に基づき書き換えた上で、
前記格納手段へと再び書き込む書込手段;と、外部から
与えられた平文データを受け、前記乱数生成手段により
生成された前記乱数列データと排他的論理和の演算を行
うことにより暗号文データへ暗号化する暗号化手段;
と、外部から与えられた暗号文データを受け、前記乱数
生成手段により生成された前記乱数列データと排他的論
理和の演算を行うことにより平文データへ復号化する復
号化手段;とを有することを特徴とする多重アファイン
鍵を用いる暗号化復号化装置である。
【0036】本発明は、上述したいわゆる沖縄型の乱数
生成装置を用いた暗号化復号化装置である。ここでは、
真性乱数に限りなく近い乱数列を使用して暗号化復号化
装置に必要な解読の困難性を保証し、整数演算による
処理を行うことで機種の汎用性を実現し、それでスト
リーム暗号を作成することで高速性を確保するもので
ある。
【0037】又請求項5に特定される本発明は、a、b
を係数、cをこのアファイン鍵の使用回数、nを前記ア
ファイン鍵が使用できる所定回数(寿命)とする4個の
整数からなる数列K={a,b,c,n}で表現される
アファイン鍵データが複数与えられた多重アファイン鍵
データを格納する格納手段;と、前記格納手段に格納さ
れている複数のアファイン鍵から選択された一つの第1
アファイン鍵データに基づいて、乱数列データを生成す
る乱数生成手段;と、前記乱数生成手段にて使用された
前記第1アファイン鍵の乱数列データの生成への使用回
数cをカウントし、これが前記所定回数n(寿命)以上
であるとき、前記乱数生成手段が生成した乱数列データ
の値に変数を加えた値をポインタjとして、前記格納手
段の前記多重アファイン鍵データから第2アファイン鍵
データを選択して読み出しこれに基づき前記係数aを書
き換え、更に前記第2アファイン鍵データとは異なる第
3アファイン鍵データを選択して読み出しこれに基づき
前記係数bを書き換える書換手段;と、前記書換手段に
より書き換えられた前記係数aの所定下位ビットを係数
aの値に基づき書き換え、更に前記係数bの所定下位ビ
ットを係数bの値に基づき書き換えた上で、前記格納手
段へと再び書き込む書込手段;と、外部から与えられた
平文データを受け、前記乱数生成手段により生成された
前記乱数列データと排他的論理和の演算を行うことによ
り暗号文データへ暗号化する暗号化手段;と、外部から
与えられた暗号文データを受け、前記乱数生成手段によ
り生成された前記乱数列データと排他的論理和の演算を
行うことにより平文データへ復号化する復号化手段;と
を有することを特徴とする多重アファイン鍵を用いる暗
号化復号化装置である。
【0038】本発明は上述した、いわゆる鍵回転型の暗
号化復号化装置である。上述したように鍵回転処理によ
って一段と真性乱数に近づいた擬似乱数列に基づいて、
高速性と汎用性に加え、解読の困難性を向上させること
ができる暗号化復号化装置を提供するものである。
【0039】又請求項6に特定される本発明は、a、b
を係数、cをこのアファイン鍵の使用回数、nを前記ア
ファイン鍵が使用できる所定回数(寿命)とする4個の
整数からなる数列K={a,b,c,n}で表現される
アファイン鍵データが複数与えられた多重アファイン鍵
データを記憶領域に格納する格納工程;と、前記記憶領
域に格納されている複数のアファイン鍵から選択された
一つの第1アファイン鍵データに基づいて、乱数列デー
タを生成する乱数生成工程;と、前記乱数生成工程にて
使用された前記第1アファイン鍵の乱数列データの生成
への使用回数cをカウントし、これが前記所定回数n
(寿命)以上であるとき、前記乱数生成工程が生成した
乱数列データの値に変数を加えた値をポインタjとし
て、前記記憶領域の前記多重アファイン鍵データから第
2アファイン鍵データを選択して読み出しこれに基づき
前記係数aを書き換え、更に前記第2アファイン鍵デー
タとは異なる第3アファイン鍵データを選択して読み出
しこれに基づき前記係数bを書き換える書換工程;と、
前記書換工程により書き換えられた前記係数aの所定下
位ビットを係数aの値に基づき書き換え、更に前記係数
bの所定下位ビットを係数bの値に基づき書き換えた上
で、前記格納手段へと再び書き込む書込工程;と、外部
から与えられた平文データ若しくは暗号文データを受
け、前記乱数生成工程により生成された前記乱数列デー
タと排他的論理和の演算を行うことにより暗号文データ
へ暗号化し若しくは平文データへ復号化する暗号化復号
化工程;とを有することを特徴とする多重アファイン鍵
を用いる暗号化復号化方法である。
【0040】本発明は、上述したいわゆる鍵回転型の暗
号化復号化装置が、ハード的な限定を含むことなく方法
として特定できることを示すものである。従って同様の
趣旨によって、今までにない、高速性、解読の困難性、
機種の汎用性を同時に実現することができる。
【0041】又請求項7に特定される本発明は、a、b
を係数、cをこのアファイン鍵の使用回数、nを前記ア
ファイン鍵が使用できる所定回数(寿命)とする4個の
整数からなる数列K={a,b,c,n}で表現される
アファイン鍵データが複数与えられた多重アファイン鍵
データを格納する格納手段;と、前記格納手段に格納さ
れている複数のアファイン鍵から選択された一つの第1
アファイン鍵データに基づいて、乱数列データを生成す
る乱数生成手段;と、前記乱数生成手段にて使用された
前記第1アファイン鍵の乱数列データの生成への使用回
数cをカウントし、これが前記所定回数n(寿命)以上
であるとき、前記係数aを書き換えるために前記格納手
段の前記多重アファイン鍵データから第2アファイン鍵
データを一定手法で選択して読み出しこれに基づき前記
係数aを書き換え、更に前記第2アファイン鍵データと
は異なる第3アファイン鍵データを選択して読み出しこ
れに基づき前記係数bを書き換える書換手段;と、前記
書換手段により書き換えられた前記係数aの所定下位ビ
ットを係数aの値に基づき書き換え、更に前記係数bの
所定下位ビットを係数bの値に基づき書き換えた上で、
前記格納手段へと再び書き込む書込手段;と、外部から
与えられた平文データを受け、所定処理を行う第1処理
手段;と、前記第1処理手段により所定処理を施した前
記平文データを受け、前記乱数生成手段により生成され
た前記乱数列データと排他的論理和の演算を行うことに
より暗号文データへ暗号化する暗号化手段;と、外部か
ら与えられた暗号文データを受け、前記乱数生成手段に
より生成された前記乱数列データと排他的論理和の演算
を行うことにより平文データへ復号化する復号化手段;
と、復号化手段により復号化された平文データについて
デジタルデータの所定処理を行う第2処理手段;とを有
することを特徴とする多重アファイン鍵を用いるデジタ
ルデータ処理装置である。
【0042】本発明は、上述したいわゆる沖縄型の暗号
化復号化部をもつデジタルデータ処理装置を特定するも
のであり、例えば、通信装置や認証装置、光ディスク記
録再生装置や、携帯電話等にまで、情報の機密性が要求
されいてるデジタルデータ処理装置であればその応用範
囲は非常に広く又容易に適用することが可能である。
【0043】又請求項8に特定される本発明は、a、b
を係数、cをこのアファイン鍵の使用回数、nを前記ア
ファイン鍵が使用できる所定回数(寿命)とする4個の
整数からなる数列K={a,b,c,n}で表現される
アファイン鍵データが複数与えられた多重アファイン鍵
データを格納する格納手段;と、前記格納手段に格納さ
れている複数のアファイン鍵から選択された一つの第1
アファイン鍵データに基づいて、乱数列データを生成す
る乱数生成手段;と、前記乱数生成手段にて使用された
前記第1アファイン鍵の乱数列データの生成への使用回
数cをカウントし、これが前記所定回数n(寿命)以上
であるとき、前記乱数生成手段が生成した乱数列データ
の値に変数を加えた値をポインタjとして、前記格納手
段の前記多重アファイン鍵データから第2アファイン鍵
データを選択して読み出しこれに基づき前記係数aを書
き換え、更に前記第2アファイン鍵データとは異なる第
3アファイン鍵データを選択して読み出しこれに基づき
前記係数bを書き換える書換手段;と、前記書換手段に
より書き換えられた前記係数aの所定下位ビットを係数
aの値に基づき書き換え、更に前記係数bの所定下位ビ
ットを係数bの値に基づき書き換えた上で、前記格納手
段へと再び書き込む書込手段;と、外部から与えられた
平文データを受け、所定処理を行う第1処理手段;と、
前記第1処理手段により所定処理を施した前記平文デー
タを受け、前記乱数生成手段により生成された前記乱数
列データと排他的論理和の演算を行うことにより暗号文
データへ暗号化する暗号化手段;と、外部から与えられ
た暗号文データを受け、前記乱数生成手段により生成さ
れた前記乱数列データと排他的論理和の演算を行うこと
により平文データへ復号化する復号化手段;と、復号化
手段により復号化された平文データについてデジタルデ
ータの所定処理を行う第2処理手段;とを有することを
特徴とする多重アファイン鍵を用いるデジタルデータ処
理装置である。
【0044】本発明は、上述したいわゆる鍵回転型の暗
号化復号化部をもつデジタルデータ処理装置を特定する
ものであり、情報の機密性が要求されているデジタルデ
ータ処理装置であれば広く容易に適用することが可能で
あり、高速性、汎用性に加えて沖縄型以上の解読の困難
性を有している。
【0045】又請求項9に特定される本発明は、プロセ
ッサを有し所定プログラムがメモリにロードされたコン
ピュータ装置であって、前記プロセッサに対し前記所定
プログラムが命令することにより、a、bを係数、cを
このアファイン鍵の使用回数、nを前記アファイン鍵が
使用できる所定回数(寿命)とする4個の整数からなる
数列K={a,b,c,n}で表現されるアファイン鍵
データが複数与えられた多重アファイン鍵データを格納
する格納手段;と、前記プロセッサに対し前記所定プロ
グラムが命令することにより、前記格納手段に格納され
ている複数のアファイン鍵から選択された一つの第1ア
ファイン鍵データに基づいて、乱数列データを生成する
乱数生成手段;と、前記プロセッサに対し前記所定プロ
グラムが命令することにより、前記乱数生成手段にて使
用された前記第1アファイン鍵の乱数列データの生成へ
の使用回数cをカウントし、これが前記所定回数n(寿
命)以上であるとき、前記乱数生成手段が生成した乱数
列データの値に変数を加えた値をポインタjとして、前
記格納手段の前記多重アファイン鍵データから第2アフ
ァイン鍵データを選択して読み出しこれに基づき前記係
数aを書き換え、更に前記第2アファイン鍵データとは
異なる第3アファイン鍵データを選択して読み出しこれ
に基づき前記係数bを書き換える書換手段;と、前記プ
ロセッサに対し前記所定プログラムが命令することによ
り、前記書換手段により書き換えられた前記係数aの所
定下位ビットを係数aの値に基づき書き換え、更に前記
係数bの所定下位ビットを係数bの値に基づき書き換え
た上で、前記格納手段へと再び書き込む書込手段;とを
有することを特徴とする多重アファイン鍵を用いて乱数
生成を行うコンピュータ装置である。
【0046】本発明は、上述したいわゆる鍵回転型の乱
数生成装置であり、特にこの手法をプログラム化してコ
ンピュータ装置に組み込んで実施した場合を特定してい
る。この場合も、単体の基板で実現した場合と同様に、
従来にない高速性、解読の困難性、機種を選ばない汎用
性を同時に実現するものである。
【0047】又請求項10に特定される本発明は、プロ
セッサを有するコンピュータが読み取り可能なプログラ
ムであって、実行の際にコンピュータメモリにロードさ
れ前記コンピュータを、a、bを係数、cをこのアファ
イン鍵の使用回数、nを前記アファイン鍵が使用できる
所定回数(寿命)とする4個の整数からなる数列K=
{a,b,c,n}で表現されるアファイン鍵データが
複数与えられた多重アファイン鍵データを記憶領域へと
格納する格納手段;と、前記記憶領域に格納されている
複数のアファイン鍵から選択された一つの第1アファイ
ン鍵データに基づいて、乱数列データを生成する乱数生
成手段;と、前記乱数生成手段にて使用された前記第1
アファイン鍵の乱数列データの生成への使用回数cをカ
ウントし、これが前記所定回数n(寿命)以上であると
き、前記乱数生成手段が生成した乱数列データの値に変
数を加えた値をポインタjとして、前記格納手段の前記
多重アファイン鍵データから第2アファイン鍵データを
選択して読み出しこれに基づき前記係数aを書き換え、
更に前記第2アファイン鍵データとは異なる第3アファ
イン鍵データを選択して読み出しこれに基づき前記係数
bを書き換える書換手段;と、前記書換手段により書き
換えられた前記係数aの所定下位ビットを係数aの値に
基づき書き換え、更に前記係数bの所定下位ビットを係
数bの値に基づき書き換えた上で、前記記憶領域へと再
び書き込む書込手段;ととして機能させるための多重ア
ファイン鍵を用いて乱数生成を行うプログラムである。
【0048】本発明は、いわゆる沖縄型の乱数発生方法
をコンピュータプログラム化したものであり、コンピュ
ータプログラムそのものを特定するものである。本発明
の本質は多重アファイン鍵データを初めとするデジタル
データの特異な処理方法であり、これが確保されている
限りどのような形態をとるものであっても、従来にはな
かった高速性、解読の困難性、汎用性というデジタルデ
ータの暗号化復号化には不可欠な効果を同時に実現しう
るものである。
【0049】
【発明の実施の形態】本発明に係る発明の実施形態につ
いて図面を参照して以下に詳細に説明する。
【0050】本発明は、第1に真性乱数に限りなく近い
第三者の推定が著しく困難な良質な乱数を生成する多重
アファイン鍵を用いる乱数生成装置を提供するものであ
る。又更にこの乱数生成装置を利用することで、実用上
は周期性がほとんどない擬似乱数を使用するストリーム
暗号を実現し、これにより暗号化復号化装置に必要とさ
れている高速性、解読の困難性、機種の汎用性を
高い水準で同時に実現することができるものである。
【0051】又更に、本発明の多重アファイン鍵を用い
る乱数生成装置を利用した復号化装置は、各種デジタル
データ処理装置に容易に適用可能であり、従来にはなし
得なかった高速性と解読の困難性をもっている。更にコ
ンピュータ装置への本発明の適用やプログラムとしての
実施形態が上げられ、最近の普及が進んだパーソナルコ
ンピュータ社会へも非常に容易に適応が可能であること
が示されている。
【0052】最後に本発明の本質は、アファイン鍵デー
タ等を扱う手法にあるものであり、従って乱数生成方法
やコンピュータプログラムで表されたものであっても、
高速で高い汎用性を伴って真性乱数に限りなく近い乱数
を生成するという作用効果を生じるものである。従っ
て、これらのハードに依存しない形態であっても、本発
明特有の作用効果が同様に得られるものであることを開
示している。
【0053】本発明の第1実施形態から第11実施形態
までが、以下に順に説明されている。第1実施形態は、
乱数発生装置の実施形態である。第2実施形態は、暗号
化復号化装置の実施形態である。第3実施形態は、コン
ピュータ装置を用いた暗号化復号化装置の実施形態であ
る。第4実施形態は、秘密鍵Hや初期ベクトルVに基づ
き生成された多重アファイン鍵で乱数列を発生させる暗
号化復号化装置の実施形態である。第5実施形態は、通
信の度に転送される初期ベクトルVにより、事前に与え
られる多重アファイン鍵Kを変形して使用する通信シス
テムの実施形態である。第6実施形態は、送信側と受信
側との間で秘密鍵Hと乱数α、βとを交わすことで通信
毎に多重アファイン鍵Kを交換する通信システムの実施
形態である。第7実施形態は、この暗号化復号化装置を
用いた認証装置の実施形態である。第8実施形態は、こ
の暗号化復号化装置を用いたネットワークシステム(ル
ータ装置等)の実施形態である。第9実施形態は、この
暗号化復号化装置を用いたディスクドライブの実施形態
である。第10実施形態は、この暗号化復号化装置を用
いた光ディスク記録再生装置の実施形態である。第11
実施形態は、この暗号化復号化装置を用いた携帯電話の
実施形態である。
【0054】<<第1の実施形態>>第1実施形態は、
本発明の多重アファイン鍵を用いた乱数生成装置を提供
するものである。
【0055】[多重アファイン鍵を用いた乱数生成装置
の特長]本実施形態の多重アファイン鍵を用いた乱数生
成装置は、高速で動作させることができるストリーム暗
号の既知平文攻撃による弱点を解消するべく、真性乱数
に限りなく近い周期性が非常ながい良質な擬似乱数を生
成し、これを用いてストリーム暗号を作成するものであ
る。これにより、第三者のストリーム暗号の解読を完全
に排除しようとするものである。
【0056】すなわち、暗号化技術で求められている高
速化を実現するストリーム暗号は、暗号化に使用する擬
似乱数が周期性のあるものであると、第三者から容易に
乱数の元となっている定数やアルゴリズムが看破されて
しまう。このため、高いセキュリティが求められている
場面では使用することができない。
【0057】本発明の多重アファイン鍵を用いた乱数生
成装置は、ストリーム暗号を解読が事実上不可能とする
非常に良質な乱数を生成することを目的としている。
【0058】完全な乱数を一度だけ使用するストリーム
暗号であるヴァーナム(Vernam)暗号には解読法が存在
しないことがシャノン(Shanon)により証明されてい
る。従って、完全な乱数に限りなく近い擬似乱数を生成
できる乱数生成装置を提供することができれば、ストリ
ーム暗号は既知平文攻撃法にあっても第三者から擬似乱
数の生成を解析されることはなく、高速で機密性の高い
暗号化装置として使用することができる。
【0059】本発明に係る多重アファイン鍵を用いた乱
数生成装置は、複数のアファイン鍵を所定の使用回数毎
に書き換えるものであり、又複数のアファイン鍵のうち
の一つを選択して乱数列を生成するという方法をとるも
のである。このような方法により、暗号破りを意図する
第三者がストリーム暗号の既知平文攻撃での未定係数法
を適用するべく、乱数列データを収集し乱数発生の元に
なっている複数の鍵データやそのアルゴリズムを解明し
ようとしても、乱数自体は鍵が書き換えられる間の短期
間の情報しかもっておらず、更に特定すべき鍵が複数で
あるし、乱数発生の際にどの鍵が選択されたかも判らな
いため、原理的に不可能である。
【0060】この乱数生成装置は、具体的には、多重ア
ファイン鍵を用いて良質な乱数を発生させるものであ
り、この時多重アファイン鍵を一定使用回数ごとにその
係数を書き換えていくものである。つまり、一定使用回
数ごとに書き換えられる多重アファイン鍵を、第三者の
解読が困難な暗号化・復号化の鍵として使用し、更にこ
の多重アファイン鍵を複数用意することで、書換の際に
複数の鍵が相互に参照し合い係数を自動的に更新してい
くことにより、第三者の未定係数法による暗号解読を排
除するものである。
【0061】つまり本発明は、複数のアファイン鍵のそ
れぞれに鍵の寿命というものを定義し、古くなった鍵
(多重アファイン鍵の係数)を自動的に書き替えていく
機能を持たせることで、従来のような規則性のある擬似
乱数ではなく、事実上測定が困難なほど長い周期をもっ
た限りなく真性乱数に近い性質をもった乱数列を生成す
るものである。これにより、従来高速であることが判っ
ていても解読の危険性があるため使用できなかったスト
リーム暗号も、第三者に看破されることなく使用するこ
とができる。
【0062】[アファイン鍵の説明]本実施形態で用い
るアファイン鍵を以下に説明する。
【0063】本発明で用いられるアファイン鍵とは、暗
号化に用いられる乱数列を発生するための多重アファイ
ン鍵の係数に該当する。
【0064】アファイン鍵Kは4個の整数K={a,
b,c,n}で表わすことができる。
【0065】更にアファイン鍵は、乱数発生とアファイ
ン鍵自身の更新とに使用される。従ってこの二つが定義
されると、多重アファイン鍵システムの働きが特定され
たこととなる。
【0066】整数のアファイン鍵Kによる乱数の生成に
ついては、次式で定義する。K(x)=ax+bなお、
cはアファイン鍵が何回使われたかをカウントするカウ
ンタ、nはこの鍵を使用出来る回数の上限(寿命)であ
る。そして、一つのアファイン鍵はレーマー法の疑似乱
数を生成する。
【0067】実際には一つのアファイン鍵を使用するの
ではなく、複数のアファイン鍵が与えられこの中から乱
数生成に用いる鍵、及び鍵を書き換えるための鍵が適宜
選択される。複数のアファイン鍵による鍵システムであ
るので多重アファイン鍵システムと呼んでいる。
【0068】多重アファイン鍵システムは、鍵の個数を
Mとすると、複数のアファイン鍵{K[i]}(0≦i
≦M−1)と、鍵の書き換え処理を示す一つの手順:プ
ロシージャ(procedure)w(i,j:integer)とか
ら、定義することができる。 procedure w(i,j:integer); begin K[i].a:=K[j].a×K[i].a+K[j].b; K[i].b:=K[j].a×K[i].b+K[j].b; end; ここで、乗法と加法は、考えている有限体の演算を用い
るものとする。
【0069】この手順:プロシージャにおいて、書き換
えようとするi番目のアファイン鍵K[i]の係数a
は、書換の参考となるj番目のアファイン鍵K[j]の
係数aと係数bとに基づき、書き換えられていることが
わかる。
【0070】更に書き換えようとするi番目のアファイ
ン鍵K[i]の係数bは、書換の参考となるj番目のア
ファイン鍵K[j]の係数aと係数bとに基づき、書き
換えられることがわかる。
【0071】このような多重アファイン鍵を用いた乱数
生成装置は、各初期値を与えられると複数の鍵から選ば
れた一つの鍵に応じて乱数を生成し続けるのであり、鍵
の使用回数を越えると、鍵を書き換えるための鍵が選ば
れてアファイン鍵の係数aとbとが書き換えられる。
【0072】このような多重アファイン鍵システムを用
いた乱数生成装置は、上述した手順に応じて構成された
デジタル回路をもつ電子回路基板により実現される。更
に、上述した手順に応じてアファイン鍵データをコンピ
ュータが処理するべくプログラムを作成しこれをコンピ
ュータ装置に実行させることで、容易に同等の作用効果
を得ることができる。このような手順で生成された擬似
乱数は、真性乱数に限りなく近いものであり測定不可能
なほどに周期が長いため、ストリーム暗号に使用された
としても、第三者の既知平文攻撃にあって未定係数法な
どで解読しようとしても原理的に不可能である。
【0073】[乱数生成装置の具体的な構造]次に具体
的な本発明の多重アファイン鍵システムを用いる乱数生
成装置の具体的な構造を示す。図1は本発明の第1実施
形態に係る乱数生成回路のブロックダイアグラム、図2
は本発明の第2実施形態に係る暗号化復号化装置のブロ
ックダイアグラムである。
【0074】図1において、例えば1チップ上の回路構
成として形成された乱数生成回路は、それぞれ、図2に
示す複数のアファイン鍵データを格納しているRAM5
9から所定のアファイン鍵データを読み出し格納するレ
ジスタ部11,12,13を有する。レジスタ11は、
i番目のアファイン鍵の係数aのデータと係数bのデー
タが、レジスタ12は、j番目のアファイン鍵の係数a
のデータと係数bのデータが、そして、レジスタ13
は、j+1番目のアファイン鍵の係数aのデータと係数
bのデータが供給されるべくRAM59に接続されてい
る。レジスタ11の出力が第1乃至第3のAX+B演算
の演算子14、15,16に接続され、レジスタ12の
出力が第2のAX+B演算の演算子15に接続され、レ
ジスタ13の出力が第3のAX+B演算の演算子16に
接続されている。
【0075】第1の演算子14の出力端子は、乱数生成
のための内部乱数xを格納するためのレジスタ23に
接続される。ここからの出力は、乱数生成素子24に直
接供給され、内部乱数xの所定の領域の値が乱数列
{R}として出力される。更に内部乱数xを格納す
るためのレジスタ23の出力は、アファイン鍵RAMア
ドレス生成部(i,j)25に接続され、ここには鍵回
転用変数vkey26が接続され更に鍵回転用変数の増
分が与えられるレジスタ27が接続される。
【0076】更に第2の演算子15の出力は、排他的論
理和素子17に接続され、この出力がオア素子19に接
続され、この出力が更新のためのアファイン鍵係数aを
保持するレジスタ21に接続されている。更に第3の演
算子16の出力は、排他的論理和素子18に接続され、
この出力がオア素子20に接続され、この出力が更新の
ためのアファイン鍵係数bを保持するレジスタ22に接
続されている。
【0077】一方、図2のRAM59に接続されるポイ
ンタに指定されたアファイン鍵の現在の使用データcを
特定するレジスタ28は、レジスタ29で1が加えら
れ、その結果が比較器32で比較されるべきとして比較
器の入力に接続されている。も一方の比較器の入力端
は、図2のRAM59から鍵データのnの値が供給され
る。
【0078】比較器32の出力端子は、アファイン鍵R
AM書き込みの制御部33に接続されている。又、以上
の各素子の動作を制御するべく各素子に接続されて制御
信号を供給しているタイミング制御部34が設けられて
いる。
【0079】レジスタ29の出力はスイッチ素子30に
入力され、同時に“0”が入力され、その出力端子が更
新された新たなアファイン鍵31のレジスタ31に接続
されている。
【0080】ここで、本発明の多重アファイン鍵を用い
る乱数生成装置等で繰り返し使用される変数、演算子、
関数を以下に定義しておくものである。変数として、以
下のように定義しており、Mが、アファイン鍵の数、 K[i].aが、i(0≦i≦M−1)番目のアファイ
ン鍵の係数a K[i].bが、i(0≦i≦M−1)番目のアファイ
ン鍵の係数b K[i].cが、i(0≦i≦M−1)番目のアファイ
ン鍵の使用回数c K[i].nが、i(0≦i≦M−1)番目のアファイ
ン鍵の寿命n Kが、アファイン鍵全体であり、K=K{K[i] |0≦
i≦M−1}で示されK[i]={K[i].a, K[i].b, K[i].
c, K[i].n}となり、 kが、暗号化/復号化のワード数(k=1,2,……) x0が、内部乱数の初期値 xが、内部乱数用変数 Rが、乱数出力 mが、平文 cが、暗号文 iが、乱数生成用アファイン鍵ポインタ jが、アファイン鍵係数a書き換え用ポインタ jが、アファイン鍵係数b書き換え用ポインタオフセ
ットであり、1≦j<Mの範囲で設定されるが、1で
も構わない vkeyが、鍵回転用変数 vが、鍵回転用変数の初期値 vが、鍵回転用変数の増分 zが、処理単位の1/2 zが、乱数出力に使用するビット位置の集合 zが、アファイン鍵指定に使用するビット位置の集合 演算子を、以下のように定義しており、 *,×が、乗算 +が、加算 (mod)が、剰余 (+)が、Mを法とする加算 (and)が、論理積 (or)が、論理和 (xor)が、排他的論理和 (shl)zが、左シフトであり、全体のビット長が2
zである際に2のz乗でわることで、例えば(1111
0110)(shl)4=(00001111)とな
る。
【0081】又、関数を以下のように定義しており、f
(x、z1)が、xからzで示すビット列を取り出
したものとして定義される。
【0082】[乱数生成装置の動作と特徴]乱数生成装
置の動作と特徴とを以下に詳細に説明する。 (乱数生成動作)乱数生成装置は、多重アファイン鍵の
初期値の設定(多重アファイン鍵のワード数k,アファ
イン鍵のポインタi、変数xなど)がなされると、タ
イミング制御部34にスタート信号とリクエストkが供
給され、これによって、適宜制御信号が供給されること
により、乱数生成用アファイン鍵ポインタiが決定さ
れ、乱数発生に使用されるアファイン鍵データがRAM
59から読み出される。そして、レジスタ11を経由し
て第1のAX+B演算子14に供給される。第1のAX
+B演算子14では、計算式K(x)=ax+bに応じ
て内部乱数xが出力されレジスタ23に供給される。
レジスタ23の内部乱数xは、内部乱数xのうちの
乱数出力に使用するビット位置の集合zが指し示す所
のデータのみが擬似乱数出力{R}として出力され
る。
【0083】図4は、発生した内部乱数である変数x
の例えば32ビットのデータをどのように使用するかを
説明した図である。少なくとも三つの使用方法が示され
ているがこれに限りものでないことは言うまでもない。
【0084】図4の(a)においては、1〜10ビット
目は使用せず、11〜16ビット目の情報をアファイン
鍵の書換に使用するアファイン鍵を指定するための情報
として使用される。ここで、zがアファイン鍵指定に
使用するビット位置の集合である。次に、この乱数生成
装置の出力される乱数列{R}として使用される情報
が格納されている領域をzとして指定し、17〜32
ビット目の情報が乱数列として出力される。
【0085】更に図4の(b)においては、上位1/2
の奇数の下から6ビットをzとして設定している。又
(c)においては、偶数の上位6ビットをzとし、奇
数の16ビットをzとして使用している。(b)や
(c)においても、アファイン鍵指定に使用するビット
位置の集合zと、乱数出力に使用するビット位置の集
合zとは自由に設定が可能であることが判る。このと
き、少なくとも、zとzとは重なり合わないものと
することで、第三者の解読の困難性を向上させることが
できるものである。
【0086】このように内部で発生した乱数xの一部
だけを乱数列{R}として出力することの効果として
は、第三者が乱数生成回路からの乱数列{R}を入手
し得たとしても、そこから、乱数生成に使用された一つ
のアファイン鍵を特定することが著しく困難になるとい
うことである。なぜならば、アファイン鍵から発生した
全ての乱数情報を得るのであれば第三者にとって、鍵特
定のヒントとなり得るが、一部であれば未定係数法をも
ってしても、得られている情報よりも、推定するべき情
報の方が比較にならないくらい多いから、鍵を特定する
ことができなくなるわけである。一つの鍵をも特定でき
ないのであるから、まだ使用されていない鍵も含めて多
重アファイン鍵システムの全てのアファイン鍵データの
値を知ることは絶対に不可能となる。
【0087】(アファイン鍵書換動作)アファイン鍵が
乱数生成に使用される度に、レジスタ28に格納された
カウンタ値は、レジスタ29の値+1が加算され、その
結果はスイッチ素子30を介してレジスタ31に更新鍵
データとして確保され、その後適宜RAM59に格納さ
れる。
【0088】一方、乱数生成が繰り返されるとカウンタ
値cは増加していき、アファイン鍵の寿命値nに達して
c=nとなれば、アファイン鍵は書換処理がなされる。
すなわち、タイミング制御部34からの制御信号に応じ
て、内部乱数xのzのビット集合の値に応じたアフ
ァイン鍵を決定するためのポインタ値jが決定する。す
ると、鍵書換えのためのK[i].a、K[i].b、
K[j].a、K[j].bが揃う。しかし、更に本発
明は、いわゆる沖縄型(2000年1月25日と26日
に沖縄県那覇市で“ISECグループオブIEICE
(ジャパン)”により主催された“Japan-Korea joint
workshop on information security and cryptology JW
-ISC 2000”において発明者鈴木秀一氏により発表され
た“the hash function using the multi-affine key s
ystem”の内容に対応する)のアルゴリズムとして、K
[i].bの値を特定するための鍵データとして、ポイ
ンタ値j+1の値によるアファイン鍵を使用することが
特徴となっている。ここの“1”の値は一例であり、一
般にはjと表すべきである。
【0089】すなわち、本発明によれば、鍵書き換えの
際にアファイン鍵の係数aを書き換える鍵をK[j]と
したのに対して、係数bを書き換える鍵をK[j(+)
]として異なる鍵を使用したものである。こうする
ことで、係数aの書換用のアファイン鍵の遷移と、係数
bの書換用のアファイン鍵の遷移とが異なることとな
り、生成する擬似乱数を真性乱数に限りなく近づけ、生
成乱数の周期性を一層長くすることが可能となり、これ
により第三者の擬似乱数の展開の推定を非常に困難にす
るものである。
【0090】このようにして、第2のAX+B演算子1
5と第3のAX+B演算子16の出力は、そのまま書き
換えられた鍵データK[i].a、K[i].bとして
もよいのだが、いわゆる沖縄型のアルゴリズムにおいて
は、更に、排他的論理和素子17と18とにおいて、各
鍵データの上位1/2の値を下位1/2の値にシフトし
ている。このような処理を行うことにより、鍵の書き換
えを繰り返し行うことにより鍵データの値が全てゼロと
なるような状況(2000年1月26日に電子情報通信
学会情報セキュリティ研究専門委員会主催の「2000
年暗号と情報セキュリティ・シンポジウム」で発表され
た盛合氏他の「多重アファイン鍵システムについて」に
より指摘されている)に対しても、以下のように確実に
これを回避する。すなわち、書き換え演算を繰り返され
ることにより比較的ゼロデータが蓄積しやすい鍵データ
の下位ビットデータに対して、書換の際にゼロデータが
少ない上位ビットデータを上書きしてゼロデータを消去
するものである。このような処置により、ある係数のビ
ットデータが全てゼロとなるような弱鍵が発生すること
を確実に回避し、必要なだけ鍵データの更新を繰り返し
て、真性乱数に限りなく近い状態の擬似乱数の生成を行
うことが可能となる。
【0091】その後、いわゆる鍵回転型のアルゴリズム
においては、弱鍵が排除された係数aとbとは、それぞ
れオア素子19において、数値“1”と論理和をとるこ
とにより下から1桁目を強制的に“1”とし、それぞれ
オア素子20において、数値“2”と論理和をとること
により下から2桁目を強制的に“1”とするという処理
がなされる。このような処理を施すことにより、同様に
ゼロデータが多い弱鍵を強制的に排除することができ
る。
【0092】最後に、鍵を書き換えるためのアファイン
鍵の指定方法であるが、いわゆる鍵鍵回転の手法をとる
ことで、より生成する擬似乱数を真性乱数に近づけるこ
とができる。すなわち、いわゆる鍵回転型のアルゴリズ
ムにおいては、アファイン鍵の書換のために複数のアフ
ァイン鍵から一つを特定するためのポインタjを、j=
f(x,z)(+)vkeyとして、新たに鍵回転
用変数vkeyを加えることにより、使用する鍵を指定
するアルゴリズムをより複雑化することができる。
【0093】つまり、繰り返しアファイン鍵を書き換え
る際に、アファイン鍵の書換の際のポインタ値jが反復
性をもってくると鍵周期がそれだけ短くなってしまう。
新たな鍵回転用変数vkeyはこれを改善するものであ
り、使用する鍵を特定するアルゴリズムを複雑化すれば
する程ポインタ値jの周期は長くなる。その結果、選ば
れる鍵の反復性が減少することとなり、最終的に得られ
る生成疑似乱数の周期を限りなく長期化することができ
る。この結果、本発明の乱数生成装置は、真性乱数と実
用上は変わりのない程の非常に長い周期をもつ擬似乱数
の生成を可能としている。
【0094】なおここでいう鍵の回転とは、鍵の書換が
連続して繰り返されている状況において、生じる可能性
のある周期性を完全に回避するべく設けられているもの
である。いま、非常に長い周期で特定の鍵KQが繰り返
し表れていると仮定したとき、鍵を特定するポインタの
値に他の変数をとりこむ(例えば書換の延べ回数)こと
で、鍵を指定するアルゴリズムを更に複雑化して、定期
的に発生していた鍵KQが徐々に遅れて発生してくるな
ど鍵が回転しだす現象が予想できる。このように、鍵を
指定するアルゴリズムに他の変数を取り込み、乱数発生
の規則性をより一層排除することによって、真性乱数に
限りなく近い擬似乱数の生成を可能とするものである。
【0095】本発明ではこの変化を鍵の回転と呼んでい
る。なお、このときの鍵回転用変数vkeyに加えられ
る鍵回転用変数の増分vは一定定数に限らず変数であっ
てもよい。
【0096】例えば、書換を行うたびに一定値vずつ増
えていく値としても良いが、これに限るものでないこと
は言うまでもなく、複雑であればそれだけ鍵が特定され
る周期も長期化し、その結果、生成する擬似乱数も真性
乱数に限りなく近づいていき、実質上、反復性や周期を
もたない良質の乱数となっていくものである。
【0097】又、図面中からは明かではないが、更に本
発明においては、iを乱数生成用のアファイン鍵のポイ
ンタ、jをアファイン鍵係数a書換用ポインタとしてい
る際に、i=jとなった場合、連続して同一の鍵を使用
することになる。これは、乱数生成処理と鍵書換処理と
を同時に処理することが難しくなるので、処理速度の低
下を招くこととなる。従って、これを避けるべく、if
i=j thenj=j(+)1 という手続によ
り、アファイン鍵係数a書換のポインタの値を“1”増
やして、同一鍵の連続使用を回避するものである。しか
し、この場合加えられる値が“1”以外であっても同様
の作用効果があることは言うまでもない。
【0098】このように本発明の多重アファイン鍵シス
テムを利用した乱数生成装置においては、アファイン鍵
を1つだけ設けて、これを書き換えていくというのでは
なく、複数のアファイン鍵を用意し(多重アファイン
鍵)、所定のルールに応じてどれかを選択し使用し書き
換えていく。このような鍵選択の作用効果としては、単
調なメカニズムで乱数発生を行っている場合に生じてく
る擬似乱数の生成に周期性が表れてくる現象を回避する
ことができる。これにより、第三者がこの乱数生成装置
の乱数生成の鍵データやメカニズムを解読することが著
しく困難となる。
【0099】[乱数列の性質]以上の多重アファイン鍵
による方法で生成される乱数列{R}は非常に長い周
期を持っている。実験によると、2つのアファイン鍵の
場合でもM2以上の周期となる。3個以上のアファイン
鍵を使用すると、周期を測定することができないほどに
なる。また、レーマー法で問題となる乱数列の高次元疎
結晶構造も存在しないことが確認できた。
【0100】以上のことから、多重アファイン鍵を用い
てストリーム暗号を生成する多重アファイン鍵暗号は非
常に高い安全性を有していることが明らかである。
【0101】また、このように、多重アファイン鍵によ
る方法で生成される乱数列{R}は非常に良質の乱数
列であり、繰り返し周期が無視できる長さとなり、この
方法により生成した乱数列は暗号化に用いるのみではな
く、各種の処理に適用して好結果を得ることができる。
【0102】例えば、モンテカルロ法を用いた数値積分
などでも良好な結果を得ることができ、一般の演算では
膨大な時間が必要となる演算においても、上記方法で発
生させた乱数による演算を所定回数行なってその演算結
果を評価すれば、少ない演算量で誤差の少ない良質の結
果が導き出せる。このため、乱数を利用する各種処理に
適用することにより、片寄りのない良好な結果が得られ
る。
【0103】本実施形態では、乱数列{R}を16ビ
ット以上の整数値とする。そして、例えば32ビットの
場合では、この下位16ビットを暗号化に使用し、上位
16ビットは暗号化には関わらず、鍵の番号を選択する
ためのデータとして使用する。この上位16ビットのデ
ータは、暗号鍵の外部から見ることができない情報とな
る。
【0104】本実施形態の暗号化においては、鍵の個数
は不定であり、鍵の個数を増加させても暗号化の速度に
はほとんど影響が出ない。鍵の個数は通常8個程度から
=65536個のいずれかになる。これらのアフ
ァイン鍵が、常時ある確率で更新されながら暗号化が行
われる。このため暗号鍵を特定することが非常に困難で
ある。暗号鍵が特定できなければ、本実施形態の暗号は
解読が理論上不可能であるヴァーナム暗号(Vernam暗
号)と同等と考えることができ、解読法が存在しない暗
号ということができる。
【0105】[乱数生成装置の乱数の評価]次に、多重
アファイン鍵を利用した乱数生成装置が生成した擬似乱
数列{R}の評価について、以下に資料を参照して述
べていく。
【0106】図5は、本発明の第1実施形態に係る乱数
生成回路が生成した乱数の試験結果を示すグラフ、図6
の(a)は本発明の第1実施形態に係る乱数生成装置の
乱数の周期を示す表であり、(b)は乱数の周期を示す
表である。
【0107】(乱数の周期)多重アファイン鍵システム
で生成した乱数の周期は実験的に図6の(a)の乱数の
周期の測定結果を示す表であることが確かめられる。こ
こでは実際に使用されるレベルにある乱数生成器の周期
は非常に長いため、実験ではアファイン鍵数4個程度、
係数の長さも4〜12ビット程度のミニチュア版で計測
している。
【0108】この表により、p1/2zMの値が、約2
であり、この値はかなり安定している。従って、多重ア
ファイン鍵システムで作成した乱数は鍵数Mと係数の長
さ2zに指数関数的に影響していることが判る。この関
係式を利用して、次に、実際に多重アファイン鍵システ
ム使用されるレベルのアファイン鍵数である16個、3
2個、64個の場合で、係数の長さ(2z)が16ビッ
トや32ビットの値をとって、現実の多重アファイン鍵
を利用した乱数生成装置が静止している乱数の周期を比
例計算で算出してみると、図6の(b)のようになる。
それぞれ、10 75〜10600というとてつもない長
さの周期であることが理解できる。例えば、この乱数で
暗号化の対象としては最も長いものと思われるDVDの
映画の映像データ(約5ギガバイト)を暗号化したとし
ても、せいぜい1010バイトにしかならないため、暗号
化に使用する乱数データとしては、十二分に長い周期で
あることが判る。
【0109】(01頻度検定)32個のアファイン鍵で
32ビット符合なし整数による多重アファイン鍵システ
ムを用いて、1Mバイトの擬似乱数を生成し、16ビッ
ト擬似乱数5000個のデータをとって0,1頻度検定
を行い、これを866例計算してみた。この結果、ほぼ
正確に正規分布し、0の出現する頻度の平均は、49.
99%、分散は0.0313となった。最大値は50.
569、最小値は49.439であった。
【0110】(線形複雑度)多重アファイン鍵システム
を用いた擬似乱数を1024ビット〜16384ビット
とり、これをフーリエ変換してそのパワースペクトルを
調査したところ、一つもゼロになっていないことを確認
した。最小のものでも10の−10乗を下回るものが見
いだせなかった。これは、多重アファイン鍵で生成され
る乱数は、常に最大の線形複雑度をもつものと考え得
る。これにより「多重アファイン鍵システムで生成され
る擬似乱数は線形フィードバックシフトレジスタでは実
現できない」との結論を得た。なお、線形フィードバッ
クシフトレジスタで実現できてしまう乱数であれば、そ
れに基づいて暗号化されたデータは解読されてしまう。
そういう意味においても、多重アファイン鍵システムに
基づく乱数生成装置で発生した乱数に基づく暗号化装置
は解読されないことが判る。
【0111】(χ検定)以下に自由度20及び30の
χの検定結果を示す。
【0112】自由度20のχ検定 1Gバイト擬似乱数生成毎に1000個の擬似乱数をサ
ンプリングし、その自由度20のχ検定量を620個
計算したものを図5の(a)に示す。ほぼ正確に自由度
20のχ分布に従っていることがわかる。
【0113】自由度30のχ検定 1Gバイト擬似乱数生成毎に1000個の擬似乱数をサ
ンプリングし、その自由度30のχ検定量を1132
個計算したものを図5の(b)に示す。ほぼ正確に自由
度30のχ分布に従っていることがわかる。
【0114】(ソフトウエアでの実装評価)更に本発明
の多重アファイン鍵を用いた暗号復号ソフトの処理速度
の一例を以下に示す。 マシン:Pentium(登録商標) III 600M
Hz OS : Windows(登録商標)2000 開発言語:Pascal(Delphi 5.0) 処理速度:573Mbps この値は、例えば現在代表的な暗号化方式である、NT
Tが開発したcameliaで、Pentium III
800MHzで300Mbps(2000年5月新聞
発表)であることを考慮すると、かなり高い速度を実現
しているものと考える。
【0115】<<第2の実施形態>>第2実施形態は、
本発明に係る暗号化復号化装置の実施形態である。
【0116】図2は、本発明の第2実施形態に係る暗号
化復号化装置のブロックダイアグラム、図3は、本発明
の第2実施形態に係る暗号化復号化装置の動作を示すタ
イミングチャートである。
【0117】[暗号化復号化装置の構成]図2におい
て、本発明に係る暗号化復号化装置は、全体の動作を制
御するCPU41と、動作プログラムが格納されたRO
M42と、これにデータバスで接続された暗号化される
ための平分データMkや復号化された平分データMk等
が格納されるデータRAM43と、暗号部44と、復号
部45と、共通鍵Hを格納した格納素子46と、乱数生
成部47とから構成されており、CPU41と、ROM
42とデータRAM以外を一つのLSIとして構成され
る場合がある。
【0118】更に暗号部44は、データRAM43に接
続されるバッファ48と、これに接続される排他的論理
和素子49と、P→S素子50と、FCS生成部51と
を有している。更に復号部45は、この装置の入力端に
接続されるFCSチェック部56と、ヘッダ処理部55
と、P←S素子54と、これに接続されるバッファ53
と、排他的論理和素子52とを有する。
【0119】更に乱数生成部47は、上記の共通鍵H4
6に接続される初期化部57から初期値を受け取る乱数
生成回路(図1)58と、これに接続されアファイン鍵
を格納しているRAM59とを有している。
【0120】[暗号化復号化装置の動作]このような構
成の暗号化復号化装置は、第1実施形態で示された多重
アファイン鍵システムを用いる乱数生成部47から乱数
列{R}が供給されるものである。
【0121】平分Mを暗号化する際には、第1実施形
態において図1で詳細に説明した乱数生成部47から供
給される乱数列{R}と平分データMとを、排他的
論理和素子49により排他的論理和をとることによっ
て、暗号文Cを生成する。
【0122】一方、ケーブル等で接続されている外部か
らの他の暗号化復号化装置から与えられた暗号文C
受信しこれを復号化する際においても、同様の処理が行
われる。すなわち、入力信号は初期ベクトルIVと暗号文
とを有しており、初期ベクトルIVに応じた暗号鍵を
生成すると、乱数生成部47は、これに応じた擬似乱数
{R}を生成してこれを復号部45の排他的論理和素
子52に供給する。暗号文Cと擬似乱数{R}とが
所定のタイミングで排他的論理和をとることにより、平
分Cへと復号化され、これがデータRAM43に一旦
格納される。
【0123】なお図3は、この暗号化復号化装置の動作
を示すタイミングチャートである。(a)の示すデータ
送信時において、共通鍵H1,H2、ベクトルデータIV
1,IV2が所定のタイミングで供給され、最終的に平分
Mkと乱数Rkが排他的論理和をとることにより暗号化
される手順が示されている。
【0124】又(b)の示すデータ送信時においても、
共通鍵H1,H2、ベクトルデータIV1,IV2が所定の
タイミングで供給され、最終的に受信した暗号文Ckと
乱数Rkが排他的論理和をとることにより復号化される
手順が示されている。
【0125】[暗号文生成方法]次に、本発明の第1実
施形態である多重アファイン鍵による平文の暗号化・復
号化の手順を、図7,図8のフローチャートを用いて以
下に説明する。
【0126】図7において、通信文である平文{mk
が暗号化され暗号文{c}となる順が示される。ここ
で、乱数列の初期値xを与え、次のルールで乱数列を
生成する。即ち、最初はからのステップを実行し、
その後はからのステップを繰り返して実行すること
により、乱数列の生成および通信文のバイト列{m
より暗号文cを生成する処理を行う。
【0127】ステップ k=0として、乱数列の初期値xを付加する。
【0128】即ち、最初に暗号文の先頭に乱数列の初期
値xを添付して互いの同期をとる。これにより、多重
アファイン鍵Kの設定がなされ、K、xの初期化がな
される(S51)。
【0129】ステップ 次に平文mが読み込まれ(S52)、アファイン鍵k
[i]を用いて以下の手順で乱数列{R}が生成され
る(S53,S54)。
【0130】 x=K[i](xk−1),K[i].c=K[i].c+1 そして次にK[i].cは設定回数n以下であれば、ま
だ鍵の更新は必要がないため、このまま発生した乱数列
{R}と平文mとが排他的論理和で演算されること
で暗号化がなされ(S60,S61)、得られた暗号文
が出力される(S62)。
【0131】C=m(xor)f(x、z) のステップ 又、ここでnをxの上位8ビットとして、次に使用され
るアファイン鍵Kを特定される(S55)。
【0132】j=f(x,z) のステップ もしK[i].c≧K[i].nならばw(i,j)を実行し、K
[i].c=0とする。
【0133】つまり、書換の必要な回数に使用回数が至
っていれば、上記した書換のためのプロシージャw
(i,j)が実行され、多重アファイン鍵の係数a,b
が書き換えられることになる(S57〜S59)。
【0134】のステップ i=jとする。
【0135】上記ステップに戻り、以降次の通信文に
対してステップ乃至のステップを繰り返す。図7の
フローチャートでは、ステップS62からステップS5
2へ処理がすすむ部分に該当する。即ち、以後の処理で
は互いに多重アファイン鍵、乱数列を自動的に書換えな
がら暗号化/復号化処理を行うことになる。
【0136】この場合には、多重アファイン鍵{K[i]}
は互いの通信相手共に全く同ように書き換えられていく
ため、互いの同期がとれているかぎりは共通の鍵情報を
共有でき、互いの通信文中に暗号化鍵情報を含めること
なく通信等を行うことができる。
【0137】[暗号文解読方法]本発明の多重アファイ
ン鍵による暗号文の解読処理を図8のフローチャートを
用いて説明する。基本的に、暗号文の生成方法とこの暗
号文の解読方法の手順は、ほとんどが同一のものである
と考えて良い。
【0138】つまり、その暗号文を解読するには、暗号
文が作成された場合と同様の乱数列を生成してやる必要
があり、従って多重アファイン鍵Kの設定、Kn、xの
初期化(S71)の初期化の処理は、暗号化のステップ
S51の処理と同一のものでなければ、同一の乱数列
{R}は得られない。
【0139】従って乱数列生成の手順(S72〜S7
5)も、暗号化の乱数列生成の手順(S52〜S55)
と同一でなければならず、更にアファイン鍵の書換処理
(S76〜S79)も暗号化のときの書換処理(S56
〜S59)と同じでなければならない。
【0140】最後に復号化の部分については、暗号化の
際に平文mkと乱数列{R}との排他的論理和を求め
る(S60〜S62)のに対して、復号化の際には暗号
文C と得られた乱数列{R}との排他的論理和を求
める(S80〜S82)ことで最初の平文mkが得られ
るわけだが、これも非常に似ており、結局、暗号化処理
と復号化処理はほぼ同一であると言っても間違えではな
い。
【0141】[暗号の高速化手法]以下に説明する本実
施形態では、以上のことを考慮に入れて、高速な暗号
化、復号化を実現するために以下の手法を用いることと
し、一個の乱数を生成するのに一回の整数の乗法を実行
するのみで足りるようにしている。またある確率でのア
ファイン鍵の更新を2回の整数の乗法で実現可能とし、
比較的時間のかかる除算を不要としている。
【0142】鍵の更新の上限がN=K[i].nで一定なら
ば、平均して鍵の更新には2/N回の整数の乗法が使わ
れる。すなわちワード当たりの整数の乗法の回数は平均
では{1+(2/N)=(N+2)/N}となる。N=
3のときこの値は1.666…程度である。すなわち暗
号鍵を長くすると安全性が増すが、整数の乗法はワード
当たり平均で2回未満となる。
【0143】暗号の攻撃者から見てK[i].a,K[i].bは併
せて4ワードの未知数であり、N=3のときは3ワード
の乱数を暗号化で使用すると、この鍵は書き換えられて
しまう。このため、この場合のアファイン鍵システムは
極めて安全である。
【0144】ni=K[i].nを秘密鍵の情報をもとにラン
ダムに設定すると、平均して鍵の寿命は長くなり、暗号
化は高速化される。その分、暗号が解読されやすくなる
が、実際には以下のような理由で、解読することはでき
ないと見なすことができる。
【0145】鍵の中のいくつかはni=3という寿命を
持つ。この鍵は比較的頻繁に書き換えられる。一個の鍵
の書き換えは、直後の乱数の生成から、確率的に影響す
る。実際に、一度でもこの鍵が使用されれば、それから
後は、アファイン鍵システム自体が、全く別の乱数列を
生成するようになる。この場合の整数の乗法の回数は平
均すると となる。この値は、M=32,n=3の鍵の個数が5
個程度、乱数{n}の範囲が3≦n≦500の場合
では1.0618といった値になる。この値は乱数{n
}の取り方に依存するが、実質的には1.1を超える
ことはない。すなわち、最も安全な上記の場合より50
%程度高速化することができる。
【0146】さらに、アファイン鍵の個数を増やした場
合、最初の場合より鍵が増加して安全性が高まるが、暗
号化の速度は逆に若千ではあるが高速になる。従ってC
PUの一次キャッシュメモリに収まる範囲であれば、ア
ファイン鍵の個数は多いほうが有利になる。
【0147】以上に説明した暗号化方法を採用すると、
安全性を高めても暗号処理速度は遅くならないという優
れた作用効果を得ることができる。
【0148】[暗号文の解読不可能性の証明]以上に説
明した本実施形態の暗号化方法の安全性を説明する。
【0149】これまで、絶対に解読法が存在しないこと
が証明されている暗号は、上述したヴァーナム(Verna
m)暗号だけである。しかしこのヴァーナム(Vernam)
暗号は、平文と同じ長さの完全な乱数を秘密鍵として必
要とするなど、実用的でない部分がある。この点を改良
して実用的な暗号としたのが本実施形態の暗号であり、
次のような意味で、完全守秘性を有している。
【0150】即ち、本実施形態の暗号で使用する多重ア
フアイン鍵システムK={K[i]}を考え、すべてのアフ
アイン鍵の寿命K[i].nを例えば「3」とすると、このと
き、3バイトの暗号文について完全守秘性が成立する。
【0151】これは以下のような、実験によって確認で
きる。鍵は一個の場合を想定して守秘性が証明されれば
多重鍵についても同ように守秘性が証明されるのは明ら
かである。
【0152】多重アファイン鍵システムでは、実験的に
以下のことが確かめられる。
【0153】2zビットの任意の数列r,r,r
を考える。 2ビット長のアファイン鍵1つに着目し、その係数
a、b及び初期値x0をそれぞれ上位、下位のzビット
にわけ、それぞれa、a、b、bのうちの1つ
の値を任意に定める。
【0154】ここで全くランダムにa、a
、bのうちの1つの値を任意に定める。
【0155】で定めた以外の変数に適当な値を代入
すると乱数r1、r2、r3を生成するものが存在す
る。
【0156】これは、一つのアファイン鍵を用いて3個
の乱数を生成してもアファイン鍵の係数a、bは、特定
できないことを意味する。この事実を根拠に以下のよう
なことが考察できる。更に、M個のアファイン鍵を使用
した場合、K[i].n=3(i=0〜M−1)とする
と、次のことが言える。
【0157】乱数生成を開始し、最初に寿命がつきた
アファイン鍵をK[i]とする。この時点では前述より
K[i]を特定することはできない。また、K[i]以
外のアファイン鍵も当然特定をすることはできない。
【0158】K[i]は寿命が尽きたのでK[j]に
より書き換えたとする。この場合、新たなK[i]を特
定するにはK[j]の値が特定されていなければならな
いが、で示すようにどこのアファイン鍵も特定できて
いない。このため、書き換えられたK[i]を特定でき
なくなる。
【0159】同様に2つめのアファイン鍵の寿命が尽
き、その鍵を書き換えると、書き換えられた鍵の特定も
できなくなる。
【0160】上記の処理を繰り返すために複数のアフ
ァイン鍵の特定をすることはできないものと結論でき
る。
【0161】このような状況から、本暗号を解読する方
法としては、可能なアファイン鍵の組合せ全てについて
全数探索を行う以外に特定することはできない。また、
係数の長さ32ビット、アファイン鍵数32個の場合で
も、多重アファイン鍵の総数は10の600乗を越え
る。この数は現実に全数探索が無理であることを示すも
のである。
【0162】又ここで使用された多重アファイン鍵シス
テムK={K[i]}の鍵の個数をMとすると、可能な多重
アフアイン鍵システムの個数はM=64個の場合さえ、
10 1233以上になる。
【0163】従って、例えば多重アファイン鍵の中の一
つの鍵のみがアファイン鍵の寿命K[i].nが「3」である
場合であれば、事実上の解読法が存在せず、他の鍵の寿
命にかかわらず本実施形態の上記暗号を解読することは
事実上不可能である。
【0164】以上に説明した第2の実施形態において
は、暗号文の先頭に乱数列の初期値x を添付する方法
を説明したが、本発明は以上の例に限定されるものでは
なく、グループ間の通信への適用をはかった以下のよう
な方法によって同じ秘密鍵を安全に繰り返し使用でき
る。
【0165】<<第3の実施形態>>第3実施形態は、
コンピュータ装置を用いた暗号化復号化装置の実施形態
である。本発明は、所定の手順で多重アファイン鍵デー
タ等を処理することにより、従来になかった高速性と第
三者の解読の困難性とを兼ね備えたストリーム暗号を実
現するものである。それは、第1実施形態と第2実施形
態とで詳細に説明したようにロジック回路を中心とした
電子基板上で行うことでも良いし、ロジック回路をワン
チップのLSI上で行うことでも可能である。更に、本
発明のアルゴリズムを実現するプログラムを作成し、コ
ンピュータ装置のメモリ内にロードしてこれを実行する
ことでも、ほとんど同様の結果を得ることは言うまでも
ない。
【0166】[乱数生成法を中心としたコンピュータ装
置の動作説明]以下、この実施形態について図面を用い
て詳細に説明する。図9は、本発明の第3実施形態に係
るコンピュータ装置により実現した暗号化復号化装置を
説明するためのコンピュータ装置のブロックダイアグラ
ム、図10は、本発明に係る複数のアファイン鍵の中の
一つの鍵による乱数の生成や鍵の書き換えの手順を説明
するための説明図、図11は、本発明の第3実施形態に
係るコンピュータ装置により実現した暗号化復号化装置
を説明するための沖縄型の乱数発生を説明するフローチ
ャート、図12は、鍵回転型の乱数発生を説明するフロ
ーチャート、図13は、暗号化復号化装置を説明するた
めの暗号化処理を説明するフローチャート、図14は、
復号化処理を説明するフローチャートである。
【0167】図9は、マイクロコンピュータの非常に簡
単なブロックダイアグラムである。本発明に係る暗号化
復号化装置は、図9に示すような一般的なマイクロコン
ピュータに図11乃至図14に示すフローチャートが特
定する動作を行うプログラムをロードして実行すること
で、基板上に構成した暗号化復号化装置をほとんど同等
な動作を示すものである。
【0168】図9において、CPU411は、データバ
スに接続され、ハードディスク412と制御プログラム
等を格納したROM413と、自由にデータの読み書き
が可能なRAM415を有しており、I/F417,4
19を介して平文データm等を受け取り、暗号文C
等を出力する。
【0169】(本発明の多重アファイン鍵システムの概
要と作用効果)詳細に本発明の多重アファイン鍵システ
ムを利用した乱数生成の手順を説明する前に、その概要
を説明する。図10は、本発明に係る複数のアファイン
鍵の中の一つの鍵による乱数の生成や鍵の書き換えの手
順を説明するための説明図である。図10において、複
数の鍵である多重アファイン鍵の系列は、乱数生成の過
程においては、既に一部の鍵が更新している場合も考え
られる(S201)。注目すべきは複数の鍵を用意し、
その中で一つの鍵だけを一定手法で選択して乱数に使用
することであり、従来方法のような1つの鍵だけの場合
に比べ、画期的なほどにセキュリティ効果を向上させる
ことができる。更に鍵の数を増やしてもメモリ容量をご
くわずか消費するだけであり、速度の低下を招くことも
ない。
【0170】ここで、乱数生成のための変数xのz
で特定される値により、乱数発生に使用されるi番目の
鍵が決定される(S203)。次に、複数のアファイン
鍵の中から一つの鍵K[i]が選択され(S205)、
乱数生成のための変数xが決定される(S207)。
そして更に注目すべきは、従来方法のように、この変数
が直接に乱数出力として出力されず、一定手法に応
じてこの一部だけが、乱数出力として出力されるという
点である。こうすることによって、第三者は、暗号文を
いくら収集して未定係数法を用いて複数の暗号鍵を特定
しようとしても、特定すべき係数の数が膨大であり未定
係数法では係数を特定することができない。
【0171】更に鍵の寿命がきていることがわかれば
(S211)、図11,図12のフローチャートに応じ
て、鍵の自己書換が行われる。この工程においても、乱
数の特定が困難となるべく多くの工夫がなされている。
【0172】このようにして更新された鍵は、次にアト
ランダムに指定されるまで格納されており、このような
手順が際限なく繰り返される。これにより、鍵は、何度
もアトランダムに書き換えられることになり、第三者が
全ての暗号文(乱数列)を収集したとしても、書き換え
がなされた上での暗号文なので、この乱数列から最初の
複数のアファイン鍵の値を特定する方法は現在発見され
ておらず原理的にも不可能であることが判る。
【0173】(乱数発生の工程)以下に、各フローチャ
ートを示して、各工程を詳細に説明する。
【0174】図11は、乱数生成の手順を示したフロー
チャートであり、いわゆる沖縄型の多重アファイン鍵を
用いるものである。図25で示されるようなコンピュー
タ装置において、アルゴリズムが作成されたプログラム
は、例えばハードディスク412等の記憶領域に格納さ
れ、操作画面に応じるユーザの操作に従って実行されて
いく。
【0175】乱数生成される手順としては、最初に多重
アファイン鍵の各種の設定がなされ、それは例えばワー
ド数k、アファイン鍵のポインタi、変数x等の設定
がなされるが、それはユーザの操作を介してRAM41
5の各記憶領域にそれぞれ格納される(S51)。次に
乱数生成用のアファイン鍵のポインタiを決定し、これ
は、内部乱数xから一つのアファイン鍵を指定するた
めのビット位置の集合zに格納されているデータから
決定される(S52)。次に、指定された鍵K[i]に
応じて、レーマー法の疑似乱数をK(x)=ax+bの
式に従って生成する(S53)。乱数が生成されると、
カウンタの値を1だけカウントアップする(S54)。
その後、鍵書換用のポインタjを、図4に示すように内
部乱数x からアファイン鍵指定に使用するビット位置
の集合zの値とする(S55)。
【0176】そして、アファイン鍵のカウンタ値cがア
ファイン鍵の寿命を示す値と同等となるまで、アファイ
ン鍵が使用されておればアファイン鍵の書換を行う(S
56)。最初に鍵カウンタの値をゼロとし(S57)、
選ばれたアファイン鍵データK[j].a、K[i].
a、K[j].bとに基づき、新たな係数aと係数bとを
決定していくが、この時、係数の上位1/2の値を下位
1/2にシフトして、繰り返し鍵を書き換えることによ
り鍵データがゼロになる状況を完全に排除するものであ
る(S58)。
【0177】さらに係数bにおいては、ポインタjの値
に更にjを加えることで、係数aの書換用のアファイ
ン鍵の遷移と、係数bの書換用のアファイン鍵の遷移と
が異ならせることができ、生成する擬似乱数を真性乱数
に限りなく近づけ、生成乱数の周期性を一層長くするこ
とが可能となる(S59)。
【0178】その後、i=jとした後に(S60)、図
4が示すように変数xの所定ビット(z)を出力す
るべき乱数列{R}として出力する(S61)。更
に、k=k+1としてステップ53に戻るものである
(S62)。
【0179】次に、図12も乱数生成の手順を示したフ
ローチャートであり、いわゆる鍵回転型の多重アファイ
ン鍵を用いるものである。図25で示されるようなコン
ピュータ装置において、アルゴリズムが作成されたプロ
グラムは、例えばハードディスク412等の記憶領域に
格納され、操作画面に応じるユーザの操作に従って実行
されていく。
【0180】乱数生成される手順としては、最初に多重
アファイン鍵の各種の設定がなされ、それは例えばワー
ド数k、アファイン鍵のポインタi、変数x等の設定
がなされるが、それはユーザの操作を介してRAM41
5の各記憶領域にそれぞれ格納される(S71)。次に
乱数生成用のアファイン鍵のポインタiを決定し、これ
は、内部乱数xから一つのアファイン鍵を指定するた
めのビット位置の集合zに格納されているデータから
決定される(S72)。次に、指定された鍵K[i]に
応じて、レーマー法の疑似乱数をK(x)=ax+bの
式に従って生成する(S73)。乱数が生成されると、
カウンタの値を1だけカウントアップする(S74)。
その後、鍵書換用のポインタjを、図4に示すようにな
(内部乱数xからアファイン鍵指定に使用するビット
位置の集合zの値)に加えて、鍵開演用変数vkey
+vを加えてポインタ位置を特定する(S75)。
【0181】この鍵回転処理により、既に第1実施形態
等で詳述したように、擬似乱数の周期を更に長くするこ
とにより真性乱数に限りなく近づけることが可能とな
る。すなわち、アファイン鍵の書換のために複数のアフ
ァイン鍵から一つを特定するためのポインタjを、j=
f(x,z)(+)vkeyとして、新たに鍵回転
用変数vkeyを加えることにより、使用する鍵を指定
するアルゴリズムをより複雑化することができる。
【0182】つまり、繰り返しアファイン鍵を書き換え
る際に、アファイン鍵の書換の際のポインタ値jが反復
性をもってくると鍵周期がそれだけ短くなってしまう
が、新たな鍵回転用変数vkeyはこれを改善するもの
であり、使用する鍵を特定するアルゴリズムを複雑化す
ればする程ポインタ値jの周期を長くすることができ、
その結果、本発明の乱数生成装置は、真性乱数と実用上
は変わりのない程の非常に長い周期をもつ擬似乱数の生
成を可能としている。
【0183】ここでは、書換を行うたびに一定値vずつ
増えていく値として定義されているが、これに限るもの
ではない。
【0184】そして、アファイン鍵のカウンタ値cがア
ファイン鍵の寿命を示す値と同等となるまで、アファイ
ン鍵が使用されておればアファイン鍵の書換を行う(S
76)。最初に鍵カウンタの値をゼロとし(S77)、
選ばれたアファイン鍵データK[j].a、K[i].
a、K[j].bとに基づき、新たな係数aと係数bとを
決定していくが、この時、係数の上位1/2の値を下位
1/2にシフトして、繰り返し鍵を書き換えることによ
り鍵データがゼロになる状況を完全に排除するものであ
る(S78)。また、この時、更に“2”との論理和を
加えることにより強制的に2ビット目を“1”とするこ
とで、いわゆる弱鍵の排除を完全に行っている。
【0185】さらに係数bにおいては、ポインタjの値
に更にjを加えることで、係数aの書換用のアファイ
ン鍵の遷移と、係数bの書換用のアファイン鍵の遷移と
が異ならせることができ、生成する擬似乱数を真性乱数
に限りなく近づけ、生成乱数の周期性を一層長くするこ
とが可能となる(S79)。また、この時、更に“1”
との論理和を加えることにより強制的に1ビット目を
“1”とすることで、いわゆる弱鍵の排除を完全に行っ
ている。
【0186】その後、i=jとした後に(S80)、図
4が示すように変数xの所定ビット(z)を出力す
るべき乱数列{R}として出力する(S81)。更
に、k=k+1としてステップ53に戻るものである
(S82)。
【0187】(暗号化復号化の工程)次に、このような
手順で作成された疑似乱数を用いて暗号化を行う手順を
図13を用いて説明する。
【0188】I/Oポート417から受け取った平文m
を(S91)、図11か図12の乱数発生フローチャ
ートに応じて、乱数列{R}を発生する(S92)。
次に平文mと乱数列{R}との排他的論理和をとる
ことで(S93)暗号文Cを出力することができる
(S94)。その後k=k+1として最初に戻る(S9
5)。
【0189】更に、このような手順で作成された疑似乱
数を用いて復号化を行う手順を図14を用いて説明す
る。
【0190】I/Oポート419から受け取った暗号文
Ckを(S96)、図11か図12の乱数発生フローチ
ャートに応じて乱数列{R}を発生する(S97)。
次に暗号文Ckと乱数列{R}との排他的論理和をと
ることで(S98)平文Mを出力することができる
(S99)。その後k=k+1として最初に戻る(S1
00)。
【0191】[操作画面を中心としたコンピュータ装置
の動作説明]更に、図15から図28の記載において
は、多重アファイン鍵を用いた暗号化復号化装置が、コ
ンピュータ上で動作可能とするアプリケーション・コン
ピュータプログラムとして実現したコンピュータプログ
ラム及びこれを格納する媒体更にこのコンピュータプロ
グラムがロードされたコンピュータ装置を説明している
のは同様であるが、特にプログラムの操作画面とその操
作に従った側面から、本発明の暗号化復号化装置を説明
している。
【0192】図15は、このアプリケーションプログラ
ムの基本動作を示すフローチャート、図16は、このプ
ログラムのメインメニュを示す画面、図17は、鍵ファ
イルの読込の画面、図18は、暗号化ファイルの読込の
画面、図19は、暗号化処理の開始画面と終了画面を示
す図、図20は、暗号化ファイルの作成の画面、図21
は、複合化処理の対象とする暗号化ファイルの選択の画
面、図22は、復号化処理の開始画面と終了画面を示す
図、図17は、複合化ファイルの作成の画面、図24
は、鍵ファイルの作成の画面、図25は、このプログラ
ムが実行されるコンピュータシステムの外観図である。
【0193】上述してきた本発明の多重アファイン鍵の
暗号化・復号化方法は、例えばパーソナルコンピュータ
上のアプリケーション・コンピュータプログラムとして
非常に効率よく実現されるものである。それは、暗号化
・復号化の各種の設定から暗号化し復号化したファイル
の読出や格納を含めて必要な機能を持つものであり、例
えばファイルの圧縮・解凍のアプリケーションにも似て
容易に操作が可能である。
【0194】以下、図15の基本動作を表すフローチャ
ートを中心に、操作画面を参考にしながら順に説明して
いく。
【0195】初期化がなされた当該プログラムは(S1
01)、例えば図25に示されたコンピュータシステム
132,133,134の画面上131において、最初
に図16に示すメインメニュが現れる(S102)。こ
のメニュ画面において、鍵ファイルを読み込むためのリ
ードキー102,暗号化処理を行うためのエンコードキ
ー103,復号化処理を行うためのデコードキー10
4,鍵の数を設定するための安全鍵数105,鍵の書換
回数106,新鍵ファイルを作成するためのメイクキー
107,操作等の質問を行うためのクエッションキー1
08が表示され、入力があれば(S103)、このフロ
ーチャートに従ってそれぞれ処理されることになる。
【0196】今、一つの文書ファイルをこのプログラム
により暗号化し復号化する手順に従ってこのプログラム
の操作を説明する。初めに、暗号化・復号化のための多
重アファイン鍵の鍵数105を入力し(S121)、本
発明の多重アファイン鍵の自動書換のための使用制限回
数106の入力を行う(S122)。次に、暗号・復号
のための乱数生成のための鍵ファイルの指定を行うもの
であり、図17に示すようにキー情報のある場所を画面
109により指定されることで(S104)、この指定
された鍵ファイルが読み込まれる(S105)。次に、
暗号化すべきファイルを図18に示す画面111より指
定して読み込む(S107)。読み込みが完了すれば、
図19の(a)の暗号化の開始指示を待つ画面が現れ、
OKをクリックすることで、暗号化処理がなされ(S1
10)、次に図19の(b)のように処理時間と共に暗
号が完了した画面が現れる(S111)。この暗号化処
理の具体的な処理内容は先に詳述した第2実施形態等に
示された処理に他ならない。
【0197】更に図20に示すような暗号化済みのファ
イルを何処に保存するかを訪ねる画面114が現れるの
で、ここで場所を指定することで暗号化ファイルが書き
込まれる(S113)。
【0198】同様に復号化処理においても、復号化すべ
きファイルの指定を図21の画面121で指定し(S1
14)、暗号ファイルを読み込んだ後(S115)、図
22の(a)の復号化開始表示をOKすると復号化処理
(S117)がなされ(b)の処理時間の表示と共に終
了が報告される(S118)。そして、復号化されたフ
ァイルを書き込む先を図23の画面124で指定されれ
ば(S119)、復号化された平文ファイルは指定され
た場所に書き込まれる(S120)。
【0199】更にこのプログラムは、多重アファイン鍵
の新鍵を生成することも可能であり(S123)、作成
された新鍵は図24の画面125により保存先が指定さ
れれば、書き込みが行われる(S125)。
【0200】以上のようにこのプログラムによれば、例
えば図25のコンピュータシステム上で例えばファイル
の圧縮解凍のプログラムのように容易な操作により、極
めて処理動作が速く秘密保持性が非常に高い多重アファ
イン鍵の暗号・復号処理を実現することが可能となる。
【0201】なおこのアプリケーション・プログラム
は、例えばコンピュータシステムの読み込みが可能な媒
体に格納されて設けられ、更に図25のコンピュータシ
ステム132内のROM等の記憶領域に予め格納されて
設けられていてもよい。又ネットワーク上にプログラム
という形で存在するものであっても同等の作用・効果を
示すものであることは言うまでもない。
【0202】<<第4の実施形態>>第4実施形態は、
最初から与えられた多重アファイン鍵で乱数を発生させ
るのでなく、図7及び図8に示すように秘密鍵Hや初期
ベクトル値Vに基づいて生成された多重アファイン鍵で
乱数列を発生する場合の暗号化・復号化方法を特定する
ものである。
【0203】なお、第4実施形態においても、有限体は
上述した第1実施形態と同じものを使用する場合を例と
して説明を行う。この場合、<第1の手法>と<第2の
手法>とが考えられる。
【0204】[グループ間の通信への適用]以下に説明
する方法は、通信者が複数の通信相手{Bob}と通
信する場合に適する方法である。この場合、通信者は共
通の秘密鍵Hを通信相手{Bob}たちと共有する。
通信相手{Bob}は、通信者と通信するために、暗
号文の先頭に16進数の1つの数値である初期値vを含
む初期ベクトル値Vを併せて添付する。そして次の手順
で暗号文を作成する。
【0205】<第1の手法> ステップ 図7は、本発明の第4実施形態に係る多重アファイン鍵
の暗号化処理を説明する説明図である。
【0206】図7において、通信相手{Bob}は、
共通の秘密鍵H(51)と初期ベクトルV(52)とに
基づき、多重アファイン鍵K(54)の生成(53)を
行う。
【0207】ステップ この時点の乱数値x0を初期値として多重アファイン鍵
Kを使用して、乱数列{R}を生成し(59,6
0)、これと排他的論理和(62)を行うことで通信文
を暗号化する。これにより、暗号文Cが出力(6
3)される。
【0208】のステップ その後、図7のように(V,C)を暗号文としてネッ
トワーク等を介して通信者に送出される。
【0209】本発明の特徴である多重アファイン鍵Kの
書換処理(55,57)は、多重アファイン鍵の一定使
用回数ごとに自動的に行われ、第三者の解読を不可能に
する。
【0210】この暗号文を受け取った通信者(Alice)
は、次の手順で暗号を復号化する。
【0211】図8は、本発明の第2実施形態に係る多重
アファイン鍵の復号化処理を説明する説明図である。
【0212】ステップ 図8において、暗号解読の際には、初めに初期ベクトル
値Vと暗号文Cとを受信し(63)、そして暗号化の
場合と同ように、秘密鍵H(51)と初期ベクトル値V
(52)とに基づき、多重アファイン鍵K(54)が生
成される(53)。
【0213】ステップ 次に、この多重アファイン鍵Kが生成された時点の乱数
値xを初期値として多重アファイン鍵Kを使用して乱
数列{R}が生成される(59)。この乱数列
{R}と、入力された暗号文Ckとの排他的論理和
(71)とを求めることにより、暗号文の解読が行わ
れ、解読された平文mが出力されることになる(6
1)。
【0214】本発明の特徴である多重アファイン鍵Kの
書換処理(55,57)は、解読処理においても暗号化
処理と同ように、多重アファイン鍵の一定使用回数ごと
に自動的に行われ、第三者の解読を不可能にしている。
【0215】以上の処理により暗号文の復号化が行え
る。
【0216】共通の秘密鍵Hを持たない部外者は、多重
アファイン鍵Kを知ることが出来ないため、暗号文を解
読することはできない。そしてこの方法では、毎回実質
的に異なる鍵を使用するので、恒久的に安全性が保証さ
れる。しかし、暗号文の先頭に毎回、130バイトの初
期ベクトル値Vが添付されることになる。
【0217】この部分は用途によっては、次のように簡
略化できる。即ち、暗号文Cの先頭に、初期値x
鍵変換の情報(α,β)を添付し、これを用いて共通の
秘密鍵Hから新たな多重アファイン鍵Kを生成し、これ
によって暗号化を行うようにしても良い。この場合に通
信制御手順を以下に示す。
【0218】<第2の手法> ステップ 通信相手{Bob}は、1個の16進数である初期値
vと秘密鍵Hを用いて、2個の16進数である鍵変換の
情報(α,β)を暗号化する。つまり、鍵変換情報
(α,β)は、(mod p)で計算されて(α′,
β′)に暗号化される。
【0219】ステップ 次に、秘密鍵Hから鍵変換情報(α′,β′)を用いて
多重アファイン鍵Kを生成する。
【0220】秘密鍵H={H,…,H64}に対して
多重アファイン鍵K=α′H十β′(mod p)
とし、新たに多重アファイン鍵K={K,…,
64}を作成する。
【0221】のステップ 次に生成された多重アファイン鍵Kを用いて同上のアル
ゴリズムによって乱数Rを発生し、平文mの暗号文
を作成する。暗号文として〔v,α,β,C〕 を
ネットワークに流し、通信者に送信する。
【0222】以上の暗号文の解読も、同ように共通の秘
密鍵Hを鍵変換情報(α’,β’)により変換して生成
したアファイン鍵を用いて、乱数Rを発生し復号化を
行う。この場合は一つの秘密鍵Hはp3=281281
747415761回使用できる。この第2の手法によ
れば、第1の手法とは異なり、鍵変換情報により元の暗
号文がわずか6バイト長くなるだけで済む。
【0223】<<第5実施形態>>第5実施形態は、図
26に示すような基本的な送信側と受信側の通信形態に
おいて、更に図27に示すように、予め格納してある多
重アファイン鍵Kを通信の度に転送される初期ベクトル
値Vとしての乱数列α、…等により変形されて与えられ
る多重アファイン鍵Kα、…等によって暗号・復号処理
が行われる通信システムを特定するものである。
【0224】[第2の通信制御手順]このような働きを
もつ通信システムにおける第2の通信制御手順を図27
に示す。図27に示す第2の通信制御手順は、乱数によ
る多重アファイン鍵を変形使用する例であり、ベースと
なる多重アファイン鍵Kを送受信側双方で固定的に保持
(例えばROM12に保持)し、通信する毎に乱数α、
β、γで鍵情報の形を変えて暗号化する方法であり、例
えば携帯電話の通信内容の暗号化など、不特定多数に対
する通信の暗号化に適した方法である。
【0225】前提として多重アファイン鍵Kを送信側、
受信側共に固定的に保有している。そして、乱数列α、
β、γを多重アファイン鍵Kで暗号化して得られている
値をデータ暗号化に使用する多重アファイン鍵Kα、K
β、Kγとして使用する。このため、送信側は、例えば
通信文(ABC)の暗号化文(A’B’C’)とともに
暗号化に用いる乱数列αを送信する。これにより、受信
側ではこの乱数列αを多重アファイン鍵Kで暗号化した
乱数列を新たな多重アファイン鍵Kαとしてこれを用い
て更に暗号化文(A’B’C’)を復号化する。
【0226】送信側では、乱数発生回路17での発生乱
数を通信の都度変更しているため、乱数で鍵情報の形が
変えられることになり、既知平文攻撃などに強い暗号化
文とすることができる。また、暗号化も高速で行うこと
ができる。なお、上述した実施形態のように、乱数列
α、β、γを16ビット以上の整数値とした場合に、下
位8ビットを暗号化に使用すれば良い。
【0227】<<第6の実施形態>>第6実施形態は、
図28に示すように、送信側と受信側との間で秘密鍵H
と乱数α、βとを交わすことにより、通信毎に互いに多
重アファイン鍵Kを交換する通信システムを特定してい
る。
【0228】[第3の通信制御手順]このような働きを
もつ通信システムにおける第3の通信制御手順を図28
に示す。図28に示す第3の通信制御手順は、通信を開
始するたび毎に最初に多重アファイン鍵Kを共有する手
続を行い、共有した多重アファイン鍵Kを用いて暗号化
を行う方法である。この方法は、鍵交換に時間はかかる
が、WWWなどの情報プラウザの暗号化等に用いること
で高い暗号化効果を得ることができる。
【0229】第3の通信制御手順においては、通信を開
始する最初にディッフィー−ヘルマン(Diffie-Hellma
n)の鍵交換を用いて多重アファイン鍵を共有する手続
を行う。
【0230】具体的には、秘密鍵Hを多倍長整数又はZ
/pの有限次拡大体の元とみなして演算を定義し、乱数
をα、βとすると、図28に示すように、まず送信側は
秘密鍵Hαを生成し、秘密鍵H、Hαを受信側に送る。
これを受取った受信側では、受信した秘密鍵H、Hαか
ら多重アファイン鍵K=(Hα)βを生成する。
【0231】そしてこの暗号化のための多重アファイン
鍵Kを生成した秘密鍵Hβを送信側に返送する。送信側
では、受信した秘密鍵Hβに基づき暗号化のための多重
アファイン鍵K=(Hα)βを生成する。
【0232】そして、以降各送信データABC,DE
F,GHI,・・・をこの多重アファイン鍵Kで暗号化し
て送信し、受信側ではこれを多重アファイン鍵Kで復号
化する。
【0233】以上に述べた第3の通信制御手順において
は、鍵交換処理に1ないし2秒の時間がかかるが、鍵情
報が通信の度に毎回変更となるため、解読される可能性
は低く、安全性が高い暗号化が提供できる。なお、この
方法はさほど通信頻度が高くない通信に適している。
【0234】なお、以上の説明においては、通信の都度
多重アファイン鍵を通信する例について説明したが、通
信の都度行う場合に限定されるものではなく、例えば毎
日の通信の最初にのみ多重アファイン鍵を交換するよう
に制御しても、あるいは一定周期毎に多重アファイン鍵
を交換するように制御してもよい。
【0235】更に、アファイン鍵をランダムにかえてい
くのではなく、予め定めた所定種類のアファイン鍵に順
次替えていき一定周期で元の鍵に戻る循環方式でかえて
いくものであっても良い。即ち、一定周期で先に鍵と同
じ鍵を繰り返し用いる方法であっても、事実上の解読は
不可能であり、高い安全性が保てる。
【0236】さらに、この方式を用いることにより、送
信側と受信側のアファイン鍵の状態がずれたような場合
であっても、容易に互いのアファイン鍵の整合性をとる
ことができる。例えば、鍵に特定の番号を付加しておい
てこの番号を通知しあうことで互いのアファイン鍵を整
合させることも可能である。
【0237】<<第7の実施形態>>第7実施形態は、
図29に示されるもので、上述した本発明の暗号化・復
号化方法を、例えば通信回線を利用したクレジットカー
ド等の個人認証に用いられる認証方法への応用を特定す
るものである。
【0238】[本実施形態の暗号化方法を用いた認証方
法]このような暗号化方法及び暗号文の通信制御手順を
用いる特定相手先の認証方法を以下に説明する。上述し
た多重アファイン鍵を用いた暗号化文には、実質的な解
読法が存在しない。従って、上記暗号化文を利用して特
定の相手先認証を行うことにより、部外者が認証内容を
解読できない認証方法とすることができる。
【0239】即ち、認証のためのキーワード等を上記暗
号化に用いる多重アファイン鍵Kとして予め認証対象
(認証先108)に付与しておき、この多重アファイン
鍵Kを用いて暗号化した情報を認証元107に返送さ
せ、これを複号化してすることにより、通信内容を部外
者に知られても部外者が暗号化のための鍵を解読するこ
とができないことより、上記認証のためのキーワードが
他に解読されることがなく、非常に信頼性の高い、かつ
安全性の高い認証方法が提供できる。
【0240】第1の認証方法として、例えば図29の場
合のように、認証先108(例えばクレジットカードの
会員)に予め所定の初期ベクトルVを付与しておき、認
証元107は認証時に認証先108に前記所定の初期ベ
クトルVを用いて発生した乱数列HV及び通信情報Mを
送信する。認証先108は受信した乱数列HVと予め付
与された所定の初期ベクトルを用いて暗号化のための多
重アファイン鍵Kを生成し、生成した多重アファイン鍵
Kを用いて通信文Mを暗号化した暗号文M’を認証元1
07に返送する。一方、認証元107は乱数列HVと初
期ベクトルVとを用いて暗号化のための多重アファイン
鍵Kを生成し、生成した多重アファイン鍵Kを用いて認
証先108から受けた暗号文M’を復号化し、正確に復
号化できれば正しい認証先と認証する認証方法である。
【0241】第2の認証方法として、認証元107は最
初に初期ベクトルVと所定の通信文Mを認証先108に
送る。認証先108は、この初期ベクトルVに基づき予
め付与された多重アファイン鍵Kを用いて新たな乱数列
を生成し、生成された乱数列Rを用いて通信文M
を暗号化して認証元107に返送する。認証元107は
初期ベクトルVに基づき認証先108と同様の多重アフ
ァイン鍵Kを用いて新たな乱数列Riを生成し、生成さ
れた乱数列を用いて受けた暗号化文M’を復号化し、正
確に復号化できれば正しい認証先と認証する認証方法で
ある。
【0242】具体例に基づいて以下に説明する。この認
証の対象としては、例えば以下の各場合に適用可能であ
る。なお、適用対象としては以下に示す例に限定される
ものではなく、個人あるいは電子機器等の装置を特定す
るための認証であれば種々の場合に適用できることは勿
論である。
【0243】(1)インターネット等の通信手段を利用
した電子商取引の認証情報に上記暗号化のための多重ア
ファイン鍵を用いる。
【0244】(2)有料テレビ放送の受信許可のための
キーワードに上記暗号化のための多重アファイン鍵を用
いる。
【0245】(3)電子機器内に機器ごとに固有の多重
アファイン鍵を付与しておき、機器特定のための認証情
報として用いる。例えば、携帯電話等の無線機器の通信
許可のための認証に上記暗号化のための多重アファイン
鍵を用いて無線機器の通信許可の安全性を図る。
【0246】(4)予め個人ごとに固有の多重アファイ
ン鍵を付与しておき、個人特定のための認証情報として
用いる。
【0247】具体的な認証のための通信制御手順を図2
9を参照して説明する。図29は上述した暗号化方法を
利用した認証手順例を示す図である。基本的な通信制御
手順は上述した実施例の第3の通信制御手順と同様の制
御手順を用いる。
【0248】認証の前提条件として、認証対象(認証
先)108に固有の認証情報として初期ベクトルVを付
与しておく。この初期ベクトルVは、例えば個人認証カ
ードや認証対象の電子機器内に登録しておけばよい。あ
るいは、個人の指紋を読み取って例えばフーリエ変換し
て結果を初期ベクトルVとして用いてもよく、このよう
にすれば、機器内に認証情報を記憶する必要がなく、よ
り安全性が高まる。
【0249】認証対象である認証先108及び認証元1
07には予め共通の多重アファイン鍵Kが用意されてい
るものとする。そして、認証元107は、図29に示す
認証先108との認証手順実行開始前に、認証先108
に付与した初期ベクトルVを検索しておき、例えばこの
初期ベクトルVを多倍長整数又はZ/pの有限次拡大体
の元とみなして演算を定義し、認証に用いる通信文をM
とすると、図29に示すように、まず送信側である認証
元107はHVを生成し、(V,M)を受信側である認
証先108(認証対象)に送る。
【0250】これを受取った認証先108では、受信し
た(V,M)の中のVから多重アファイン鍵Kを生成す
る。
【0251】そしてこの多重アファイン鍵Kを通信文M
の暗号化のための多重アファイン鍵Kとして用いる。そ
して、生成した多重アファイン鍵Kで通信文Mを暗号化
して暗号化文M´を認証元107に返送する。
【0252】認証元107では、認証先108と同よう
にして初期ベクトルVを用いて多重アファイン鍵Kを生
成する。そして、認証先より受信した暗号化文M´を生
成した多重アファイン鍵Kで復号化する。ここで、K
(M)=M´であれば、認証先が正しかったと判断す
る。そうでなければ、認証先が正しくなかったと判断す
る。
【0253】なお、以上に述べた認証のための通信制御
手順に先だっての認証先の特定が困難である場合には、
認証に先立つ通信制御手順として、認証先を特定する情
報、例えば認証先のID番号情報を問合わせてこのID
番号情報を受け取って受取ったID番号情報より認証先
の多重アファイン鍵を検索してくる通信制御手順を行う
ようにしても良い。
【0254】このように制御しても、ID番号情報のみ
が通信されるのみであり、認証手順でも多重アファイン
鍵が通信されることがなく、多重アファイン鍵が解読さ
れることがない暗号法を用いて認証を行うために、極め
て安全性の高い認証が可能となる。
【0255】また、他の認識方法として、認証元107
は最初に初期ベクトルVと所定の通信文Mを認証先10
8に送る。認証先108は初期ベクトルVに基づき新た
な乱数列{R}を生成し、生成された乱数列を用いて
受信した通信文Mを暗号化して暗号化文M´を認証元に
返送するように制御しても良い。
【0256】そして、認証元108は初期ベクトルVを
用いて新たな乱数列{R}を生成し、生成された乱数
列を用いて受信した認証先よりの暗号化文M´を復号化
して正確に復号化できれば正しい認証対象と認証する認
証方法としても良い。
【0257】上述した各暗号化方法により暗号化した文
を同様の手順で復号化して正確に復号化できれば認証先
が正しかったと認証するようにすれば、安全性の高い認
証が可能となる。
【0258】<<第8の実施形態>>第8実施形態は、
図30に示されるものであり、本発明の暗号化・復号化
方法を適用したネットワークシステムに用いられるルー
タ装置を特定するものである。
【0259】図30において、上述した多重アファイン
鍵を用いた暗号化・復号化方法を用いたネットワークに
接続される複数の通信装置171,172と、ルータ装
置173とが示されている。通信装置171,172に
おいては、所定の処理動作を行うアプリケーション17
4に接続される制御部175と、この制御部175の一
部の機能としての暗号化制御部176、送受信制御部1
77、ネットワーク制御部178とがそれぞれ、弱鍵が
排除された多重アファイン鍵による乱数生成部179,
暗号化/復号化部180,ネットワークコントローラに
接続されている。そして、このネットワークコントロー
ラ181は、一例として社内等の一定の領域に設けられ
たLANなどのネットワークNWに接続されている。
【0260】このような構成による通信装置171,1
72は、上述したように様々な形式において本発明の多
重アファイン鍵による乱数列に基づく情報の暗号化・復
号化を行い、このネットワークNWを介して高いセキュ
リティを保ちながら、各データの送受信を可能としてい
る。
【0261】又更にルータ装置173においては、第1
のネットワークNWに接続される第1ネットワークコン
トローラ181と更にこれとは異なる外部のネットワー
クNに接続される第2のネットワークインタフェース1
82と、これらの動作を制御している制御部175と、
この制御部175の一部の機能としての暗号化制御部1
76、送受信制御部177、ネットワーク制御部178
とがそれぞれ、弱鍵が排除された多重アファイン鍵によ
る乱数生成部179,暗号化/復号化部180,ネット
ワークコントローラ181に接続されている。
【0262】このような構成において、ルータ装置17
3は、これらの異なるLAN同士を接続するものであ
り、制御部175の制御に基づいて、複数のネットワー
ク間の通信装置や経路の接続を制御するものである。こ
のとき、このルータ装置にあっては、制御部の暗号化制
御部176の制御の元に、本来のルータ装置の働きに加
えて、与えられた所定の情報のみを設定に応じて上述し
たように本発明の弱鍵が排除された多重アファイン鍵に
よる乱数生成部179により発生した乱数列{R }に
基づき暗号化し、この暗号化文を他の接続した通信装置
171,172等、又、外部のネットワークNへ転送す
ることが可能となる。
【0263】ここで、本発明は上述したように少なくと
も係数aの値に基づいて係数aの所定下位ビットを書き
換え、係数bの値に基づいて係数bの所定下位ビットを
書き換えるという対策によって、係数の下位ビットに
“0”データが蓄積するという弱鍵を排除することがで
きる。また、この弱鍵排除の方法は他にも様々な手段に
より回避できることは言うまでもない。
【0264】又更に例えば外部のネットワークNに対す
る送受信情報については、必ず本発明の多重アファイン
鍵による暗号化・復号化処理を行うことにより、内部の
ネットワークNWの情報を外部に対して機密を保つこと
が可能となる。この際の暗号化・復号化の行い方は、上
述した実施形態に示された方法に限らず、多重アファイ
ン鍵を用いた様々な形態が可能であり、迅速な処理によ
り完全な機密保持を可能とする。
【0265】<<第9の実施形態>>第9実施形態は、
図31に示されるように、多重アファイン鍵を用いた暗
号化・復号化方法を伴う記録媒体の記録再生装置を特定
するものである。
【0266】この記録媒体の記録再生装置は、例えばフ
ロッピディスクやハードディスク、MO等の着脱可能又
は不可能な記録媒体の記録再生装置であり、図31にお
いて、その基本構造が示されている。すなわち、外部に
対するインタフェース部151と、これに接続され全体
の動作を制御する制御部152であって、この制御部1
52は、それぞれ暗号化制御部153,書込制御部15
4,ドライブ制御部155,復号化制御部156,読出
制御部157を有しており、それぞれに多重アファイン
鍵による乱数生成部161,暗号化部162,ディスク
ドライバ165,多重アファイン鍵による乱数生成部1
63,復号化部164が接続されており、又更に暗号化
部162には書込ヘッド167が、復号化部164には
読出ヘッド168が接続されている。
【0267】このような構成により、この媒体記録再生
装置は、その記録処理において、所定回転数の回転がデ
ィスクドライバ165により加えられる記録媒体166
に対して、制御部152の制御下において、インタフェ
ース部151から与えられた所定情報が多重アファイン
鍵による乱数生成部161により発生した乱数列に応じ
て暗号部162にて暗号化され、この暗号化情報の書込
が書込ヘッド167によって行われる。
【0268】更に読出処理においては、同様に、ディス
クドライバ165により回転する記録媒体166から読
出ヘッド168により上記の暗号化情報が読み出され、
弱鍵が排除された多重アファイン鍵による乱数生成部1
63による乱数列に応じて復号部164にて復号化さ
れ、更にインタフェース部151を介して外部へと出力
される。
【0269】ここで、この弱鍵が排除された多重アファ
イン鍵による乱数生成部163において、上述したよう
に少なくとも係数aの値に基づいて係数aの所定下位ビ
ットを書き換え、係数bの値に基づいて係数bの所定下
位ビットを書き換えるという対策によって、係数の下位
ビットに“0”データが蓄積するという弱鍵を排除する
ことができる。また、この弱鍵排除の方法は他にも様々
な手段により回避できることは言うまでもない。
【0270】又、この読出・書込時の暗号化・復号化処
理の各形態においては、上述した各実施形態に限らず全
ての実施形態を伴う様々な形態が可能であることは言う
までもない。つまり、多重アファイン鍵は予め格納され
たものである場合もあれば、インタフェース部151か
ら与えられた秘密鍵Hにより特定されるものであっても
良い。
【0271】更に上記した暗号化・復号化処理は読取・
書込の際に常に自動的に行われるものであっても良い
し、ユーザの設定により選択的に行われるものであって
も良い。本発明によれば、どの場合でも自動書換される
多重アファイン鍵によって、解読が不可能な極めて高い
機密性をもった媒体記録再生装置を提供することが可能
となる。
【0272】<<第10の実施形態>>第10実施形態
は、図32に示されるものであり、本発明の多重アファ
イン鍵の暗号化復号化方法を伴う光ディスク媒体の記録
再生装置を特定するものである。
【0273】この実施形態はすなわち、記録媒体として
の光ディスク(例えばDVD−RAM)340に対して
集束光を用いてデータ(情報)を記録したり、上記光デ
ィスク340に記録されているデータを再生する光ディ
スク記録再生装置について、本発明の暗号化復号化方法
を適用させてものである。
【0274】図32において、この光ディスク記録再生
装置は、全体の動作を制御するCPU390と、これに
データバスを介して接続されるメモリ397と、D/A
変換器391とを有しており、更に情報の記録系として
は、多重アファイン暗号部394と、これに接続される
弱鍵が排除された多重アファイン鍵による乱数生成回路
393と、データ生成回路374と、レーザ制御回路3
73を有しており、これらに接続される光学ヘッダ部3
65とを有している。更に情報の再生系としては、デー
タ再生回路378とエラー訂正回路392と弱鍵が排除
された多重アファイン鍵による乱数発生回路395と復
号化部396とを有している。更に駆動系としては、こ
の光学ヘッダの移動を行うリニアモータ366と駆動コ
イル367とこのリニアモータを制御するリニアモータ
制御回路368と、更にこの光学ヘッダの近傍に設けら
れ光ディスク340を保持し回転駆動させるモータを制
御するモータ制御回路364を有している。更に光学系
としては、この光学ヘッダ365のレーザの光ディスク
340に対するフォーカシング制御を行うフォーカシン
グ制御回路387と、トラッキングを行うトラッキング
制御回路388とを有している。
【0275】このような構成において、光ディスク34
0に対する情報の記録は以下のように行われる。つま
り、モータ制御回路364により駆動されるモータによ
り所定回転数で回転される光ディスク340に対して、
CPU390の制御下において、記録すべく入力された
所定情報は、暗号化部394へと供給され、一定使用回
数ごとに書き換えられる多重アファイン鍵に基づく乱数
列により、暗号情報へと暗号化される。更にこの暗号情
報は、データ生成回路374を経て、記録されるべきデ
ータとして記録用のレーザに置き換えられる。そして、
光ヘッダ365を用いて、光ディスクの所定の記録領域
へ記録されるものである。
【0276】ここで、この弱鍵が排除された多重アファ
イン鍵による乱数生成部163において、上述したよう
に少なくとも係数aの値に基づいて係数aの所定下位ビ
ットを書き換え、係数bの値に基づいて係数bの所定下
位ビットを書き換えるという対策によって、係数の下位
ビットに“0”データが蓄積するという弱鍵を排除する
ことができる。また、この弱鍵排除の方法は他にも様々
な手段により回避できることは言うまでもない。
【0277】この際の多重アファイン暗号部394の暗
号化処理については、既に上述した本発明の各実施形態
の特徴を伴う処理が可能であることは言うまでもない。
例えば多重アファイン鍵は初めから与えられている場合
に限らず、外部からの暗号鍵Hによってその度に生成さ
れるものであっても良い。
【0278】又更に光ディスク340に記録された情報
の再生処理は以下のように行われる。つまり、上述した
回転系と光学系との読み出し動作に基づき、光ディスク
340の所定領域から光ヘッダ365を介して読み出さ
れた暗号化情報は、データ再生回路378を介して再生
信号に置き換えられる。更に一定使用回数の度に書き換
えられている多重アファイン鍵による乱数生成回路39
5における多重アファイン鍵により発生された乱数列に
基づいて復号化され、再生信号として出力される。
【0279】この場合の暗号化及び復号化処理の具体的
な詳細については、既に説明した豊富な実施形態のそれ
ぞれを用いて可能である。つまり一例として、乱数発生
のための多重アファイン鍵は予めメモリ等に格納されて
いても良いし、第4実施形態のように外部から与えられ
る秘密鍵H等から書込の度に設定されるものであっても
良い。
【0280】以上説明したように、光ディスク記録再生
装置においても、本発明の自己書換機能を持った多重ア
ファイン鍵による暗号化復号化処理により、迅速な暗号
化によって第三者が読み取ることが困難な機密性の非常
に高い光ディスク記録再生装置を提供することが可能で
ある。
【0281】<<第11の実施形態>>第11実施形態
は、図33に示されるものであり、いわゆる携帯電話等
の無線送受信装置であって本発明の多重アファイン鍵に
よる暗号化・復号化処理を伴うものを特定している。
【0282】この無線送受信装置は、その基本的構成が
図33により示され、この図において、この無線送受信
装置は、アンテナ201と、デュプレクサ202と、R
F受信利得可変増幅器203と、RF帯域制限フィルタ
204と、周波数変換器205と、IF帯域制限フィル
タ206と、IF受信利得可変増幅器207と、変調・
復調部208と、IF送信利得可変増幅器211と、周
波数変換器212と、RF帯域制限フィルタ213と、
RF送信利得可変増幅器214と、電力増幅器215
と、アイソレータ216と、ボコーダ287と、スピー
カ288とを有している。
【0283】この無線送受信機はこのような構成におい
て、受信処理について説明すると、基地局から送信され
るフォワードリンク信号はアンテナ201で受信、デュ
プレクサ202で受信信号帯域内の成分だけフィルタリ
ング、RF受信利得可変増幅器203で増幅あるいは減
衰、RF帯域制限フィルタ204で不要成分をフィルタ
リング、周波数変換器205でRF帯からIF帯へ周波
数変換、IF帯域制限フィルタ206で不要成分をフィ
ルタリング、IF受信利得可変増幅器207で増幅ある
いは減衰され、変調・復調部208へ入力する。
【0284】変調・復調部208は、例えば直交復調部
281と、A/D変換部282と、情報信号復調部28
3と、情報信号変調部284と、D/A変換部285
と、直交変調部286で構成される。この構成におい
て、直交復調部281で直交復調された信号はA/D変
換部282でA/D変換され信号復調部283で情報信
号復調されると共に出力される。さらにこの出力信号
は、弱鍵が排除された多重アファイン鍵による乱数生成
回路291により多重アファイン鍵から発生した乱数列
に基づく復号化により、復号化部292において復号化
信号として出力される。
【0285】ここで、この弱鍵が排除された多重アファ
イン鍵による乱数生成部290,291において、上述
したように少なくとも係数aの値に基づいて係数aの所
定下位ビットを書き換え、係数bの値に基づいて係数b
の所定下位ビットを書き換えるという対策によって、係
数の下位ビットに“0”データが蓄積するという弱鍵を
排除することができる。また、この弱鍵排除の方法は他
にも様々な手段により回避できることは言うまでもな
い。
【0286】これにより、一定使用回数ごとに書き換え
られる多重アファイン鍵による極めて機密性の高い暗号
化情報の復号化を可能としている。更にこの際の復号処
理化は、既に詳述した各実施形態に応じた形での実施が
可能である。一例として、第2実施形態における場合で
あり、暗号文と共に秘密鍵Hと初期ベクトルVとを受信
し、これらに応じたアファイン鍵をその度に生成しこれ
に応じた乱数列を生成し、この乱数列による複合化を行
う場合である。これにより、通信毎に新たなアファイン
鍵での復号処理が可能となる。
【0287】又、更にこの無線送受信機の送信処理につ
いて以下に説明すると、移動局から送信されるリバース
リンク信号はボコーダ287により与えられ、これを弱
鍵が排除された多重アファイン鍵による乱数生成回路2
90から与えられた多重アファイン鍵による乱数列によ
って、暗号化部289にて暗号化する。この暗号化され
た暗号化信号は、情報信号変調部284で変調されて出
力されD/A変換部285でD/A変換、直交変調部2
86で直交変調され、IF送信利得可変増幅器211で
増幅あるいは減衰され、周波数変換器212でIF帯か
らRF帯へ周波数変換、RF帯域制限フィルタ213で
不要成分をフィルタリングして、RF送信利得可変増幅
器214で増幅あるいは減衰、電力増幅器215で増
幅、デュプレクサ202で送信信号帯域内の成分だけフ
ィルタリングされて、アンテナ201で空間へ送信され
る。
【0288】このようにして、一定使用回数ごとに自動
書換が行われる多重アファイン鍵により暗号化された無
線信号は、第三者の解読が不可能なものとして高い機密
性を有している。又、この暗号化の際の形態について
は、既に詳述した各実施形態での暗号化が可能であるこ
とは言うまでもない。例えば、多重アファイン鍵は予め
メモリ等に格納されているだけでなく、第4実施形態が
特定するように、現在、通信している通信相手から供給
された復調部283からの秘密鍵Hや初期ベクトルVに
基づいて作成された新たな多重アファイン鍵であっても
よい。この場合は、互いの通信相手同士の固有なアファ
イン鍵により暗号・復号を伴う通信を行うことが可能に
なり、極めて機密性の高い通信を実現することができ
る。
【0289】以上、詳述したように、いわゆる携帯電話
等の無線送受信装置においても、本発明の多重アファイ
ン鍵による暗号化部、復号化部を設けることにより、迅
速で極めて機密性の高い通話を実現することが可能にな
る。
【0290】
【発明の効果】以上説明したように、本発明によれば、
高速で暗号化できかつ解読することができない汎用性の
ある多重アファイン鍵システムによる乱数生成回路及び
これを利用する暗号化復号化装置及び暗号化復号化方法
を提供する。
【0291】また、多重アファイン鍵システムで生成し
た擬似乱数を用いてストリーム暗号化を行うことによ
り、既知平文攻撃法を排除し、安全で高速な暗号法を確
立する。
【0292】第1実施形態(図1,図2)に示すよう
に、本発明の多重アファイン鍵を用いる乱数生成装置に
おいては、多くのアファイン鍵の中から所定方法により
乱数生成のための鍵や鍵書換のための鍵が選択され使用
されるので、乱数が第三者の手に渡っても、乱数の値か
ら全てのアファイン鍵を特定することは現実的に不可能
となるものである。又更に多重アファイン鍵データは一
定使用回数を越えると、安全性が損なわれたものとして
扱われて所定手順により書き換えられるので、第三者
は、暗号文から乱数発生の元となる鍵データを特定する
ことが非常に困難になる。
【0293】更に係数a、bで書き換えに使用する鍵系
列を異ならせたり、暗号化に使用する鍵を指定するアル
ゴリズムを変数xだけでなく他の要素を加えること
で、発生する乱数を限りなく真性乱数に近づけている。
【0294】又、鍵データに“0”データが蓄積する弱
鍵に対する状況にも様々な方法で十分確実に応じてい
る。
【0295】更に、第3実施形態(図9乃至図25)の
ように、コンピュータプログラムで多重アファイン鍵の
暗号化複合化を行う場合であっても、第1実施形態で示
された作用効果と同様の趣旨で、非常に容易な操作にて
迅速で安全性の高い暗号・復号処理を実現することが可
能になる。
【0296】また、第5実施形態(図27)のように、
通信毎にアファイン鍵を変更していき、変更したアファ
イン鍵で通信文の暗号化復号化を行うことにより、第1
実施形態で示された作用効果と同様の趣旨で安全性の高
い解読ができない暗号化通信が可能となる。
【0297】更に、第6実施形態(図28)のように、
通信に先立ち暗号化のための鍵情報を互いに共有するよ
うに制御して通信毎にアファイン鍵を変更することによ
り、第1実施形態で示された作用効果と同様の趣旨で安
全性の高い解読ができない暗号化通信が可能となる。
【0298】また、第7実施形態(図29)のように、
認証先に予め付与した多重アファイン鍵を用いて認証元
より送られてくる通信文を暗号化し、暗号化文を認証元
に送り、認証元では同様の手順で通信文を復号化して正
確に復号化できれば認証先が正しかったと認証するよう
にすれば、第1実施形態で示された作用効果と同様の趣
旨で安全性の高い認証が可能となる。
【0299】更に、第9及び10実施形態(図31及び
図32)のように、媒体の記録再生装置の内部に、多重
アファイン鍵の暗号化複合化回路を設けることで、第1
実施形態で示された作用効果と同様の趣旨で安全性の非
常に高い情報の記録再生を容易に実現することが出来
る。
【0300】更に、第11実施形態(図33)のよう
に、多重アファイン鍵の暗号化複合化回路を携帯電話等
の無線送受信機に設けることにより、第1実施形態で示
された作用効果と同様の趣旨で極めて機密性の高い通話
等を容易に実現することができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態に係る乱数生成回路のブ
ロックダイアグラムである。
【図2】本発明の第2実施形態に係る暗号化復号化装置
のブロックダイアグラムである。
【図3】本発明の第2実施形態に係る暗号化復号化装置
の動作を示すタイミングチャートである。
【図4】本発明の第1実施形態に係る乱数生成回路の変
数xの値からアファイン鍵ポインタの集合zと乱数
列の集合zとが特定される例を説明する説明図であ
る。
【図5】本発明の第1実施形態に係る乱数生成回路が生
成した乱数の試験結果を示すグラフ。
【図6】(a)は本発明の第1実施形態に係る乱数生成
装置の乱数の周期を示す表であり、(b)は乱数の周期
を示す表である。
【図7】本発明の第2実施形態に係る多重アファイン鍵
の暗号化復号化装置の暗号化処理を説明するフローチャ
ート。
【図8】本発明の第2実施形態に係る多重アファイン鍵
の暗号化復号化装置の復号化処理を説明するフローチャ
ート。
【図9】本発明の第3実施形態に係るコンピュータ装置
により実現した暗号化復号化装置を説明するためのコン
ピュータ装置のブロックダイアグラム。
【図10】本発明に係る複数のアファイン鍵の中の一つ
の鍵による乱数の生成や鍵の書き換えの手順を説明する
ための説明図。
【図11】本発明の第3実施形態に係るコンピュータ装
置により実現した暗号化復号化装置を説明するための沖
縄型の乱数発生を説明するフローチャート。
【図12】本発明の第3実施形態に係るコンピュータ装
置により実現した暗号化復号化装置を説明するための鍵
回転型の乱数発生を説明するフローチャート。
【図13】本発明の第3実施形態に係るコンピュータ装
置により実現した暗号化復号化装置を説明するための暗
号化処理を説明するフローチャート。
【図14】本発明の第3実施形態に係るコンピュータ装
置により実現した暗号化復号化装置を説明するための復
号化処理を説明するフローチャート。
【図15】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置での暗号化復号化処理を示
すフローチャート。
【図16】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムのメインメニュを示す画面。
【図17】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの鍵ファイルの読込の画面。
【図18】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの暗号化ファイルの読込の画面。
【図19】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの暗号化処理の開始画面と終了画面を示す図。
【図20】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの暗号化ファイルの作成の画面。
【図21】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの複合化処理の対象とする暗号化ファイルの選
択の画面。
【図22】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの復号化処理の開始画面と終了画面を示す図。
【図23】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの複合化ファイルの作成の画面。
【図24】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのアプリケーション・プ
ログラムの鍵ファイルの作成の画面。
【図25】本発明の第3実施形態に係るコンピュータ装
置を用いた暗号化復号化装置でのコンピュータシステム
の外観図。
【図26】本発明の第2及び第4〜第6実施形態に係る
暗号化復号化通信装置を説明するための図である。
【図27】本発明の第5実施形態に係る通信毎に転送さ
れる初期ベクトルVにより事前に与えられる多重アファ
イン鍵Kを変形して使用する暗号化復号化通信装置を説
明するための図である。
【図28】本発明の第6実施形態に係る送信側と受信側
との間で秘密鍵Hと乱数α、βとを交わすことで通信毎
に多重アファイン鍵Kを交換する通信システムを説明す
るための図である。
【図29】本発明の第7実施形態に係る認証装置を説明
するための図である。
【図30】本発明の第8実施形態に係る多重アファイン
鍵の暗号化復号化装置を用いたネットワークシステムを
示すブロックダイアグラム。
【図31】本発明の第9実施形態に係る多重アファイン
鍵の暗号化復号化処理を伴うフロッピディスク等のディ
スク装置の構成を示すブロックダイアグラム。
【図32】本発明の第10実施形態に係る本発明に係る
多重アファイン鍵の暗号化復号化処理を伴う光学ディス
ク録画再生装置の構成を示すブロックダイアグラム。
【図33】本発明の第11実施形態に係る多重アファイ
ン鍵の暗号化復号化処理を伴う移動携帯電話の構成を示
すブロックダイアグラム。

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを格納する格納手段;と、 前記格納手段に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成手段;と、 前記乱数生成手段にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記係数
    aを書き換えるために前記格納手段の前記多重アファイ
    ン鍵データから第2アファイン鍵データを一定手法で選
    択して読み出しこれに基づき前記係数aを書き換え、更
    に前記第2アファイン鍵データとは異なる第3アファイ
    ン鍵データを選択して読み出しこれに基づき前記係数b
    を書き換える書換手段;と、 前記書換手段により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記格納手段へと再び書き込む書込手段;と、 を有することを特徴とする多重アファイン鍵を用いる乱
    数生成装置。
  2. 【請求項2】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを格納する格納手段;と、 前記格納手段に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成手段;と、 前記乱数生成手段にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記乱数
    生成手段が生成した乱数列データの値に変数を加えた値
    をポインタjとして、前記格納手段の前記多重アファイ
    ン鍵データから第2アファイン鍵データを選択して読み
    出しこれに基づき前記係数aを書き換え、更に前記第2
    アファイン鍵データとは異なる第3アファイン鍵データ
    を選択して読み出しこれに基づき前記係数bを書き換え
    る書換手段;と、 前記書換手段により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記格納手段へと再び書き込む書込手段;と、 を有することを特徴とする多重アファイン鍵を用いる乱
    数生成装置。
  3. 【請求項3】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを記憶領域に格納する格納
    工程;と、 前記記憶領域に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成工程;と、 前記乱数生成工程にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記乱数
    生成工程にて生成した乱数列データの値に変数を加えた
    値をポインタjとして、前記記憶領域の前記多重アファ
    イン鍵データから第2アファイン鍵データを選択して読
    み出しこれに基づき前記係数aを書き換え、更に前記第
    2アファイン鍵データとは異なる第3アファイン鍵デー
    タを選択して読み出しこれに基づき前記係数bを書き換
    える書換工程;と、 前記書換工程により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記記憶領域へと再び書き込む書込工程;と、 を有することを特徴とする多重アファイン鍵を用いる乱
    数生成方法。
  4. 【請求項4】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを格納する格納手段;と、 前記格納手段に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成手段;と、 前記乱数生成手段にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記係数
    aを書き換えるために前記格納手段の前記多重アファイ
    ン鍵データから第2アファイン鍵データを一定手法で選
    択して読み出しこれに基づき前記係数aを書き換え、更
    に前記第2アファイン鍵データとは異なる第3アファイ
    ン鍵データを選択して読み出しこれに基づき前記係数b
    を書き換える書換手段;と、 前記書換手段により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記格納手段へと再び書き込む書込手段;と、 外部から与えられた平文データを受け、前記乱数生成手
    段により生成された前記乱数列データと排他的論理和の
    演算を行うことにより暗号文データへ暗号化する暗号化
    手段;と、 外部から与えられた暗号文データを受け、前記乱数生成
    手段により生成された前記乱数列データと排他的論理和
    の演算を行うことにより平文データへ復号化する復号化
    手段;と、 を有することを特徴とする多重アファイン鍵を用いる暗
    号化復号化装置。
  5. 【請求項5】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを格納する格納手段;と、 前記格納手段に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成手段;と、 前記乱数生成手段にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記乱数
    生成手段が生成した乱数列データの値に変数を加えた値
    をポインタjとして、前記格納手段の前記多重アファイ
    ン鍵データから第2アファイン鍵データを選択して読み
    出しこれに基づき前記係数aを書き換え、更に前記第2
    アファイン鍵データとは異なる第3アファイン鍵データ
    を選択して読み出しこれに基づき前記係数bを書き換え
    る書換手段;と、 前記書換手段により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記格納手段へと再び書き込む書込手段;と、 外部から与えられた平文データを受け、前記乱数生成手
    段により生成された前記乱数列データと排他的論理和の
    演算を行うことにより暗号文データへ暗号化する暗号化
    手段;と、 外部から与えられた暗号文データを受け、前記乱数生成
    手段により生成された前記乱数列データと排他的論理和
    の演算を行うことにより平文データへ復号化する復号化
    手段;と、 を有することを特徴とする多重アファイン鍵を用いる暗
    号化復号化装置。
  6. 【請求項6】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを記憶領域に格納する格納
    工程;と、 前記記憶領域に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成工程;と、 前記乱数生成工程にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記乱数
    生成工程が生成した乱数列データの値に変数を加えた値
    をポインタjとして、前記記憶領域の前記多重アファイ
    ン鍵データから第2アファイン鍵データを選択して読み
    出しこれに基づき前記係数aを書き換え、更に前記第2
    アファイン鍵データとは異なる第3アファイン鍵データ
    を選択して読み出しこれに基づき前記係数bを書き換え
    る書換工程;と、 前記書換工程により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記格納手段へと再び書き込む書込工程;と、 外部から与えられた平文データ若しくは暗号文データを
    受け、前記乱数生成工程により生成された前記乱数列デ
    ータと排他的論理和の演算を行うことにより暗号文デー
    タへ暗号化し若しくは平文データへ復号化する暗号化復
    号化工程;と、 を有することを特徴とする多重アファイン鍵を用いる暗
    号化復号化方法。
  7. 【請求項7】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを格納する格納手段;と、 前記格納手段に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成手段;と、 前記乱数生成手段にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記係数
    aを書き換えるために前記格納手段の前記多重アファイ
    ン鍵データから第2アファイン鍵データを一定手法で選
    択して読み出しこれに基づき前記係数aを書き換え、更
    に前記第2アファイン鍵データとは異なる第3アファイ
    ン鍵データを選択して読み出しこれに基づき前記係数b
    を書き換える書換手段;と、 前記書換手段により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記格納手段へと再び書き込む書込手段;と、 外部から与えられた平文データを受け、所定処理を行う
    第1処理手段;と、 前記第1処理手段により所定処理を施した前記平文デー
    タを受け、前記乱数生成手段により生成された前記乱数
    列データと排他的論理和の演算を行うことにより暗号文
    データへ暗号化する暗号化手段;と、 外部から与えられた暗号文データを受け、前記乱数生成
    手段により生成された前記乱数列データと排他的論理和
    の演算を行うことにより平文データへ復号化する復号化
    手段;と、 復号化手段により復号化された平文データについてデジ
    タルデータの所定処理を行う第2処理手段;と、 を有することを特徴とする多重アファイン鍵を用いるデ
    ジタルデータ処理装置。
  8. 【請求項8】a、bを係数、cをこのアファイン鍵の使
    用回数、nを前記アファイン鍵が使用できる所定回数
    (寿命)とする4個の整数からなる数列K={a,b,
    c,n}で表現されるアファイン鍵データが複数与えら
    れた多重アファイン鍵データを格納する格納手段;と、 前記格納手段に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成手段;と、 前記乱数生成手段にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記乱数
    生成手段が生成した乱数列データの値に変数を加えた値
    をポインタjとして、前記格納手段の前記多重アファイ
    ン鍵データから第2アファイン鍵データを選択して読み
    出しこれに基づき前記係数aを書き換え、更に前記第2
    アファイン鍵データとは異なる第3アファイン鍵データ
    を選択して読み出しこれに基づき前記係数bを書き換え
    る書換手段;と、 前記書換手段により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記格納手段へと再び書き込む書込手段;と、 外部から与えられた平文データを受け、所定処理を行う
    第1処理手段;と、 前記第1処理手段により所定処理を施した前記平文デー
    タを受け、前記乱数生成手段により生成された前記乱数
    列データと排他的論理和の演算を行うことにより暗号文
    データへ暗号化する暗号化手段;と、 外部から与えられた暗号文データを受け、前記乱数生成
    手段により生成された前記乱数列データと排他的論理和
    の演算を行うことにより平文データへ復号化する復号化
    手段;と、 復号化手段により復号化された平文データについてデジ
    タルデータの所定処理を行う第2処理手段;と、 を有することを特徴とする多重アファイン鍵を用いるデ
    ジタルデータ処理装置。
  9. 【請求項9】プロセッサを有し所定プログラムがメモリ
    にロードされたコンピュータ装置であって、 前記プロセッサに対し前記所定プログラムが命令するこ
    とにより、a、bを係数、cをこのアファイン鍵の使用
    回数、nを前記アファイン鍵が使用できる所定回数(寿
    命)とする4個の整数からなる数列K={a,b,c,
    n}で表現されるアファイン鍵データが複数与えられた
    多重アファイン鍵データを格納する格納手段;と、 前記プロセッサに対し前記所定プログラムが命令するこ
    とにより、前記格納手段に格納されている複数のアファ
    イン鍵から選択された一つの第1アファイン鍵データに
    基づいて、乱数列データを生成する乱数生成手段;と、 前記プロセッサに対し前記所定プログラムが命令するこ
    とにより、前記乱数生成手段にて使用された前記第1ア
    ファイン鍵の乱数列データの生成への使用回数cをカウ
    ントし、これが前記所定回数n(寿命)以上であると
    き、前記乱数生成手段が生成した乱数列データの値に変
    数を加えた値をポインタjとして、前記格納手段の前記
    多重アファイン鍵データから第2アファイン鍵データを
    選択して読み出しこれに基づき前記係数aを書き換え、
    更に前記第2アファイン鍵データとは異なる第3アファ
    イン鍵データを選択して読み出しこれに基づき前記係数
    bを書き換える書換手段;と、 前記プロセッサに対し前記所定プログラムが命令するこ
    とにより、前記書換手段により書き換えられた前記係数
    aの所定下位ビットを係数aの値に基づき書き換え、更
    に前記係数bの所定下位ビットを係数bの値に基づき書
    き換えた上で、前記格納手段へと再び書き込む書込手
    段;と、 を有することを特徴とする多重アファイン鍵を用いて乱
    数生成を行うコンピュータ装置。
  10. 【請求項10】プロセッサを有するコンピュータが読み
    取り可能なプログラムであって、実行の際にコンピュー
    タメモリにロードされ前記コンピュータを、 a、bを係数、cをこのアファイン鍵の使用回数、nを
    前記アファイン鍵が使用できる所定回数(寿命)とする
    4個の整数からなる数列K={a,b,c,n}で表現
    されるアファイン鍵データが複数与えられた多重アファ
    イン鍵データを記憶領域へと格納する格納手段;と、 前記記憶領域に格納されている複数のアファイン鍵から
    選択された一つの第1アファイン鍵データに基づいて、
    乱数列データを生成する乱数生成手段;と、 前記乱数生成手段にて使用された前記第1アファイン鍵
    の乱数列データの生成への使用回数cをカウントし、こ
    れが前記所定回数n(寿命)以上であるとき、前記乱数
    生成手段が生成した乱数列データの値に変数を加えた値
    をポインタjとして、前記格納手段の前記多重アファイ
    ン鍵データから第2アファイン鍵データを選択して読み
    出しこれに基づき前記係数aを書き換え、更に前記第2
    アファイン鍵データとは異なる第3アファイン鍵データ
    を選択して読み出しこれに基づき前記係数bを書き換え
    る書換手段;と、 前記書換手段により書き換えられた前記係数aの所定下
    位ビットを係数aの値に基づき書き換え、更に前記係数
    bの所定下位ビットを係数bの値に基づき書き換えた上
    で、前記記憶領域へと再び書き込む書込手段;と、 として機能させるための多重アファイン鍵を用いて乱数
    生成を行うプログラム。
JP2001186919A 2000-07-12 2001-06-20 多重アファイン鍵を用いる乱数生成装置及び暗号化・復号化装置、並びにこれを利用するデジタルデータ処理装置と方法及びプログラム Pending JP2002091305A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001186919A JP2002091305A (ja) 2000-07-12 2001-06-20 多重アファイン鍵を用いる乱数生成装置及び暗号化・復号化装置、並びにこれを利用するデジタルデータ処理装置と方法及びプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000-211743 2000-07-12
JP2000211743 2000-07-12
JP2001186919A JP2002091305A (ja) 2000-07-12 2001-06-20 多重アファイン鍵を用いる乱数生成装置及び暗号化・復号化装置、並びにこれを利用するデジタルデータ処理装置と方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2002091305A true JP2002091305A (ja) 2002-03-27

Family

ID=26595904

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001186919A Pending JP2002091305A (ja) 2000-07-12 2001-06-20 多重アファイン鍵を用いる乱数生成装置及び暗号化・復号化装置、並びにこれを利用するデジタルデータ処理装置と方法及びプログラム

Country Status (1)

Country Link
JP (1) JP2002091305A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008532348A (ja) * 2005-01-27 2008-08-14 インターデイジタル テクノロジー コーポレーション 無線通信ネットワークにおける完全に秘密の鍵の生成

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008532348A (ja) * 2005-01-27 2008-08-14 インターデイジタル テクノロジー コーポレーション 無線通信ネットワークにおける完全に秘密の鍵の生成
US8238551B2 (en) 2005-01-27 2012-08-07 Interdigital Technology Corporation Generation of perfectly secret keys in wireless communication networks
US9130693B2 (en) 2005-01-27 2015-09-08 Interdigital Technology Corporation Generation of perfectly secret keys in wireless communication networks

Similar Documents

Publication Publication Date Title
JP2001016196A (ja) 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
JP3901909B2 (ja) 暗号化装置およびプログラムを記録した記録媒体
Saraf et al. Text and image encryption decryption using advanced encryption standard
US7007050B2 (en) Method and apparatus for improved pseudo-random number generation
US7532721B2 (en) Implementation of a switch-box using a subfield method
KR101205109B1 (ko) 메시지 인증 방법
US7221756B2 (en) Constructions of variable input length cryptographic primitives for high efficiency and high security
US20070028088A1 (en) Polymorphic encryption method and system
JP4608319B2 (ja) 複数鍵を用いたストリーム暗号の生成方法
US8122075B2 (en) Pseudorandom number generator and encryption device using the same
US20110182419A1 (en) Encryption algorithm with randomized buffer
Gouvêa et al. High speed implementation of authenticated encryption for the MSP430X microcontroller
CN113987583A (zh) 一种隐匿查询方法及系统
JPWO2006019152A1 (ja) メッセージ認証子生成装置、メッセージ認証子検証装置、およびメッセージ認証子生成方法
WO2008059475A1 (en) Secure communication
US7804961B2 (en) Method and apparatus for fast crytographic key generation
US7587046B2 (en) Method and apparatus for generating keystream
Misra et al. A new encryption/decryption approach using AES
KR100551992B1 (ko) 어플리케이션 데이터의 암호화 및 복호화 방법
JP3923267B2 (ja) 乱数生成装置及び暗号化システム
US7231048B2 (en) Key sharing system, public key cryptosystem, signature system, key sharing apparatus, encryption apparatus, decryption apparatus, signature apparatus, authentication apparatus, key sharing method, encryption method, decryption method, signature method, authentication method, and programs
JP2002091305A (ja) 多重アファイン鍵を用いる乱数生成装置及び暗号化・復号化装置、並びにこれを利用するデジタルデータ処理装置と方法及びプログラム
KR20190037980A (ko) 퍼베이시브 컴퓨팅을 위한 효과적인 초경량 블록 암호 시스템
CN116755618A (zh) 一种基于区块链和分布存储的文件安全存取方法
Zhang et al. An RC4-based lightweight security protocol for resource-constrained communications