JPH1117673A - 共通鍵暗号通信方法及びその通信ネットワーク - Google Patents
共通鍵暗号通信方法及びその通信ネットワークInfo
- Publication number
- JPH1117673A JPH1117673A JP9168706A JP16870697A JPH1117673A JP H1117673 A JPH1117673 A JP H1117673A JP 9168706 A JP9168706 A JP 9168706A JP 16870697 A JP16870697 A JP 16870697A JP H1117673 A JPH1117673 A JP H1117673A
- Authority
- JP
- Japan
- Prior art keywords
- random number
- pseudo
- key
- encryption
- communication
- 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.)
- Withdrawn
Links
Abstract
(57)【要約】
【課題】 暗号学的に安全な擬似乱数を暗号鍵としなが
ら、十分に守秘性を保ち、鍵の更新のための通信量の増
加を無くした共通鍵暗号通信方法及びそのネットワーク
を提供する。 【解決手段】 予め加入者間で固有かつ秘密の共通鍵4
を共有し、該共通鍵に基づいて暗号学的に安全な擬似乱
数生成器1で擬似乱数を生成し、複数の前記擬似乱数に
基づいて演算器12で鍵列18を作成し、演算器12で
は前記擬似乱数が生成される毎に、前記鍵列を更新す
る。また、前記擬似乱数は前記共通鍵を内部変数の初期
値として生成され、暗号通信の終了時における内部変数
を次回の共通鍵として記憶する。
ら、十分に守秘性を保ち、鍵の更新のための通信量の増
加を無くした共通鍵暗号通信方法及びそのネットワーク
を提供する。 【解決手段】 予め加入者間で固有かつ秘密の共通鍵4
を共有し、該共通鍵に基づいて暗号学的に安全な擬似乱
数生成器1で擬似乱数を生成し、複数の前記擬似乱数に
基づいて演算器12で鍵列18を作成し、演算器12で
は前記擬似乱数が生成される毎に、前記鍵列を更新す
る。また、前記擬似乱数は前記共通鍵を内部変数の初期
値として生成され、暗号通信の終了時における内部変数
を次回の共通鍵として記憶する。
Description
【0001】
【発明の属する技術分野】本発明は、通信分野における
データの秘匿を実現する共通鍵暗号通信方法及びその通
信ネットワークに関するものであり、暗号化のための鍵
を、通信相手が同じであっても暗号通信毎に変更する方
式に関するものである。特に、アルゴリズム公開型の共
通鍵ブロック暗号に対して、安全性を向上させるために
ブロック暗号の暗号鍵を随時更新するような暗号方式、
及びその鍵の更新の手段に関するものである。
データの秘匿を実現する共通鍵暗号通信方法及びその通
信ネットワークに関するものであり、暗号化のための鍵
を、通信相手が同じであっても暗号通信毎に変更する方
式に関するものである。特に、アルゴリズム公開型の共
通鍵ブロック暗号に対して、安全性を向上させるために
ブロック暗号の暗号鍵を随時更新するような暗号方式、
及びその鍵の更新の手段に関するものである。
【0002】
【従来の技術】DES(Data Encryption Standard)暗号
やFEAL(Fast data EnciphermentALgorithm)暗号に
代表されるアルゴリズム公開型の共通鍵ブロック暗号
は、同じ鍵による暗号文や平文の組がある数以上出力さ
れると、その鍵が解析できるという欠点を持つ。
やFEAL(Fast data EnciphermentALgorithm)暗号に
代表されるアルゴリズム公開型の共通鍵ブロック暗号
は、同じ鍵による暗号文や平文の組がある数以上出力さ
れると、その鍵が解析できるという欠点を持つ。
【0003】この欠点を防ぐために、暗号学的に安全な
疑似乱数によりブロック暗号の鍵を随時更新する暗号方
式として、後述する図8に示すように、解析に必要な数
の暗号文と平文との組を出力する前に、暗号学的に安全
な疑似乱数により鍵を随時更新して鍵の解析を困難にす
ることにより、アルゴリズム公開型の共通鍵ブロック暗
号に対してその安全性を向上させる暗号方式が考えられ
ている(山本,岩村,松本,今井:“2乗型疑似乱数生
成器とブロック暗号を用いた実用的暗号方式”、信学技
報 ISEC93-29,1993-08:以下、文献1と呼ぶ)。但し、
暗号学的に安全な疑似乱数とは、多項式サイズの論理回
路では真の乱数と区別不可能な疑似乱数のことをいう。
疑似乱数によりブロック暗号の鍵を随時更新する暗号方
式として、後述する図8に示すように、解析に必要な数
の暗号文と平文との組を出力する前に、暗号学的に安全
な疑似乱数により鍵を随時更新して鍵の解析を困難にす
ることにより、アルゴリズム公開型の共通鍵ブロック暗
号に対してその安全性を向上させる暗号方式が考えられ
ている(山本,岩村,松本,今井:“2乗型疑似乱数生
成器とブロック暗号を用いた実用的暗号方式”、信学技
報 ISEC93-29,1993-08:以下、文献1と呼ぶ)。但し、
暗号学的に安全な疑似乱数とは、多項式サイズの論理回
路では真の乱数と区別不可能な疑似乱数のことをいう。
【0004】すなわち、暗号学的に安全な疑似乱数系列
は、出力された系列から以降の系列を予測することが極
めて困難である系列となり、A.C.Yao,"Theory and Appl
ications of Trapdoor Functions."Proceedings of the
23rh IEEE Symposium on Foundations of Computer Sc
ience,IEEE,pp.80-91,1982.(以下、文献2と呼ぶ)、
或いは、M.Blum and S.Micali,"How to Generate Crypt
ographically StrongSequences of Pseude-Random Bit
s."Proc.22nd FOCS,IEEE,pp.112-118,1982.(以下、文
献3と呼ぶ)等で詳しく議論されている。
は、出力された系列から以降の系列を予測することが極
めて困難である系列となり、A.C.Yao,"Theory and Appl
ications of Trapdoor Functions."Proceedings of the
23rh IEEE Symposium on Foundations of Computer Sc
ience,IEEE,pp.80-91,1982.(以下、文献2と呼ぶ)、
或いは、M.Blum and S.Micali,"How to Generate Crypt
ographically StrongSequences of Pseude-Random Bit
s."Proc.22nd FOCS,IEEE,pp.112-118,1982.(以下、文
献3と呼ぶ)等で詳しく議論されている。
【0005】暗号学的に安全な疑似乱数を生成するため
のアルゴリズムとしては、文献「暗号と情報セキュリテ
ィ」(辻井,笠原著,1990年発行,株式会社昭晃堂、以
下文献4と呼ぶ)の86頁に記載されているような、2
乗型乱数や、RSA暗号、離散対数、逆数暗号を用いた
ものが知られている。図8に示す暗号方式は、疑似乱数
生成器1と演算器2とブロック暗号器3とからなる。疑
似乱数生成器1は、暗号学的に安全な疑似乱数生成のア
ルゴリズムに従って、疑似乱数を生成する。ブロック暗
号器3のアルゴリズムとしては、DES暗号やFEAL
暗号等のブロック暗号を用いる。ブロック暗号の鍵を随
時更新するために必要となる鍵列は、疑似乱数生成器1
から出力された暗号学的に安全な疑似乱数系列を演算器
2により、ブロック暗号の鍵のビット長毎に区切って得
られる。このようにして得られた鍵系列k1,k2,…を
順にブロック暗号の鍵として用いることにより、ブロッ
ク暗号の鍵を更新する。ブロック暗号器3では、平文ブ
ロック列5(通信文:M11〜M1s,M21〜M2s,…,M
t1〜Mts)の暗号文ブロック列6(k1(M11)〜k1(M
1s),k2(M21)〜k2(M2s),…,kt(Mt1)〜k
t(Mts))への暗号化及び暗号文の復号を行う。
のアルゴリズムとしては、文献「暗号と情報セキュリテ
ィ」(辻井,笠原著,1990年発行,株式会社昭晃堂、以
下文献4と呼ぶ)の86頁に記載されているような、2
乗型乱数や、RSA暗号、離散対数、逆数暗号を用いた
ものが知られている。図8に示す暗号方式は、疑似乱数
生成器1と演算器2とブロック暗号器3とからなる。疑
似乱数生成器1は、暗号学的に安全な疑似乱数生成のア
ルゴリズムに従って、疑似乱数を生成する。ブロック暗
号器3のアルゴリズムとしては、DES暗号やFEAL
暗号等のブロック暗号を用いる。ブロック暗号の鍵を随
時更新するために必要となる鍵列は、疑似乱数生成器1
から出力された暗号学的に安全な疑似乱数系列を演算器
2により、ブロック暗号の鍵のビット長毎に区切って得
られる。このようにして得られた鍵系列k1,k2,…を
順にブロック暗号の鍵として用いることにより、ブロッ
ク暗号の鍵を更新する。ブロック暗号器3では、平文ブ
ロック列5(通信文:M11〜M1s,M21〜M2s,…,M
t1〜Mts)の暗号文ブロック列6(k1(M11)〜k1(M
1s),k2(M21)〜k2(M2s),…,kt(Mt1)〜k
t(Mts))への暗号化及び暗号文の復号を行う。
【0006】2乗型乱数や、RSA暗号、離散対数、逆
数暗号を用いたアルゴリズムにより、暗号学的に安全な
疑似乱数を生成する疑似乱数生成器1は、図9のように
構成される。その動作は以下のようになる。 (1)初期値4を(x0 =KAB)として疑似乱数生成器
1に入力する。 (2)第1演算部101で、フィードバック演算xi+1
=f(xi)(i=0,1,…)により、x1,x2,…
を生成する。 (3)第2演算部102で、生成されたx1,x2,…か
ら演算bi+1=g(xi+1)(i=0,1,…)を行い、
得られたb1,b2,…,bmを疑似乱数7(CRA B)と
して出力する。
数暗号を用いたアルゴリズムにより、暗号学的に安全な
疑似乱数を生成する疑似乱数生成器1は、図9のように
構成される。その動作は以下のようになる。 (1)初期値4を(x0 =KAB)として疑似乱数生成器
1に入力する。 (2)第1演算部101で、フィードバック演算xi+1
=f(xi)(i=0,1,…)により、x1,x2,…
を生成する。 (3)第2演算部102で、生成されたx1,x2,…か
ら演算bi+1=g(xi+1)(i=0,1,…)を行い、
得られたb1,b2,…,bmを疑似乱数7(CRA B)と
して出力する。
【0007】この手順において、フィードバック演算に
より次々更新されるxi+1を疑似乱数生成器1の内部変
数と呼ぶことにする。また、1回に得られる疑似乱数b
iの生成に必要な手順を1ステップということにする。
更に、演算器2では、疑似乱数発生器1により得られた
出力CRABをブロック暗号の鍵列k1,k2,…ktに変
換する。ブロック暗号の鍵ku(u=1,2,…,t)
のそれぞれは、用いるブロック暗号のアルゴリズムで定
められた長さのビット列であり、演算器2が例えば暗号
学的に安全な疑似乱数系列CRABをそのビット長毎に区
切ることによって生成される。
より次々更新されるxi+1を疑似乱数生成器1の内部変
数と呼ぶことにする。また、1回に得られる疑似乱数b
iの生成に必要な手順を1ステップということにする。
更に、演算器2では、疑似乱数発生器1により得られた
出力CRABをブロック暗号の鍵列k1,k2,…ktに変
換する。ブロック暗号の鍵ku(u=1,2,…,t)
のそれぞれは、用いるブロック暗号のアルゴリズムで定
められた長さのビット列であり、演算器2が例えば暗号
学的に安全な疑似乱数系列CRABをそのビット長毎に区
切ることによって生成される。
【0008】図8において、Muv(u=1,2,…,
t:v=1,2,…,s)は平文ブロック列5を示し、
ku(u=1,2,…,t)はブロック暗号の鍵系列8
を示し、ku(Muv)(u=1,2,…,t;v=1,
2,…,s)は平文Muvを暗号鍵Kuで暗号化して得ら
れる暗号文ブロック列6を示している。ここで、Mu1か
らMusまでのs個のブロックは同じ鍵kuで暗号化され
ている。前述の疑似乱数順にブロック暗号の鍵として用
いることにより、図8の平文ブロック列5は複数の暗号
鍵によって暗号化される。
t:v=1,2,…,s)は平文ブロック列5を示し、
ku(u=1,2,…,t)はブロック暗号の鍵系列8
を示し、ku(Muv)(u=1,2,…,t;v=1,
2,…,s)は平文Muvを暗号鍵Kuで暗号化して得ら
れる暗号文ブロック列6を示している。ここで、Mu1か
らMusまでのs個のブロックは同じ鍵kuで暗号化され
ている。前述の疑似乱数順にブロック暗号の鍵として用
いることにより、図8の平文ブロック列5は複数の暗号
鍵によって暗号化される。
【0009】この暗号方式により、同じ鍵で暗号化され
る平文ブロックの数がs個になり、鍵の解析に必要な平
文ブロックと暗号文ブロックとの組の数がsより大きい
場合には、鍵の解析を困難にすることができる。すなわ
ち、ブロック暗号の鍵の更新の周期が短ければ短いほ
ど、同じ鍵で暗号化される平文の数が小さくなり安全性
は向上する。
る平文ブロックの数がs個になり、鍵の解析に必要な平
文ブロックと暗号文ブロックとの組の数がsより大きい
場合には、鍵の解析を困難にすることができる。すなわ
ち、ブロック暗号の鍵の更新の周期が短ければ短いほ
ど、同じ鍵で暗号化される平文の数が小さくなり安全性
は向上する。
【0010】しかし、文献1の従来例では、前述の疑似
乱数7(CRAB)をブロック暗号の鍵のビット長ずつに
区切り、順にブロック暗号の鍵として用いていたため、
疑似乱数生成器1からブロック暗号の鍵のビット長分の
疑似乱数が出力される毎に、1回の鍵の更新しかできな
いという欠点があった。以下これを定量的に評価する。
ブロック暗号の鍵の更新の周期は以下のようにして算出
できる。wr(bps)の速度で生成される暗号学的に安全な
疑似乱数を、図10に示すように、1度に暗号化するブ
ロックのビット長がmb(ビット)、暗号鍵のビット長
がmk(ビット)、その暗号化処理速度がwe(bps)であ
るようなブロック暗号の鍵を用いる場合に、1秒間に生
成されるブロック暗号の鍵の数w kを求めると、 wk=wr/mk となる。1秒間に暗号化できるブロックの数wbは、 wb=we/mb であるから、1個の暗号鍵で暗号化されるブロック数s
は、 s=wb/wk となる。同じ鍵によって暗号化する平文ブロックの数s
は、以上のようにして求めることができる。
乱数7(CRAB)をブロック暗号の鍵のビット長ずつに
区切り、順にブロック暗号の鍵として用いていたため、
疑似乱数生成器1からブロック暗号の鍵のビット長分の
疑似乱数が出力される毎に、1回の鍵の更新しかできな
いという欠点があった。以下これを定量的に評価する。
ブロック暗号の鍵の更新の周期は以下のようにして算出
できる。wr(bps)の速度で生成される暗号学的に安全な
疑似乱数を、図10に示すように、1度に暗号化するブ
ロックのビット長がmb(ビット)、暗号鍵のビット長
がmk(ビット)、その暗号化処理速度がwe(bps)であ
るようなブロック暗号の鍵を用いる場合に、1秒間に生
成されるブロック暗号の鍵の数w kを求めると、 wk=wr/mk となる。1秒間に暗号化できるブロックの数wbは、 wb=we/mb であるから、1個の暗号鍵で暗号化されるブロック数s
は、 s=wb/wk となる。同じ鍵によって暗号化する平文ブロックの数s
は、以上のようにして求めることができる。
【0011】例えば、次に示す<条件1>に対してsが
どうなるか算出してみる。 <条件1> (ブロック暗号) 1度に暗号化するブロックのビット長:64ビット(m
b=64) 暗号鍵のビット長 :72ビット(mk=72) 暗号化処理速度 :128Mbps(we=128×1
06)(疑似乱数生成) 1度に出力される疑似乱数biのビット数:9ビット 1ステップあたりの処理時間 :10-3秒 ここで、1ステップあたりの処理時間とは1つのbiを
得るために必要な処理時間のことである。つまり[条件
1]の場合、10-3(秒)毎に、9ビットの疑似乱数を
得ることができる。よって、疑似乱数の生成速度wrは
wr=9×103(bps)となる。1秒間に生成されるブロ
ック暗号の鍵の数wkを求めると、 wk=wr/mk=2-3×103 となる。1秒間に暗号化できるブロックの数wbは、 wb=we/mb=2×106 であるから、1個の暗号鍵で暗号化されるブロック数s
は、 s=wb/wk=24×103 となる。つまり、[条件1]のもとで文献1のブロック
暗号の鍵の更新を行った場合、24×103個のブロック
が暗号化される毎に鍵が更新されることになる。
どうなるか算出してみる。 <条件1> (ブロック暗号) 1度に暗号化するブロックのビット長:64ビット(m
b=64) 暗号鍵のビット長 :72ビット(mk=72) 暗号化処理速度 :128Mbps(we=128×1
06)(疑似乱数生成) 1度に出力される疑似乱数biのビット数:9ビット 1ステップあたりの処理時間 :10-3秒 ここで、1ステップあたりの処理時間とは1つのbiを
得るために必要な処理時間のことである。つまり[条件
1]の場合、10-3(秒)毎に、9ビットの疑似乱数を
得ることができる。よって、疑似乱数の生成速度wrは
wr=9×103(bps)となる。1秒間に生成されるブロ
ック暗号の鍵の数wkを求めると、 wk=wr/mk=2-3×103 となる。1秒間に暗号化できるブロックの数wbは、 wb=we/mb=2×106 であるから、1個の暗号鍵で暗号化されるブロック数s
は、 s=wb/wk=24×103 となる。つまり、[条件1]のもとで文献1のブロック
暗号の鍵の更新を行った場合、24×103個のブロック
が暗号化される毎に鍵が更新されることになる。
【0012】[条件1]のもとで文献1の従来例の手法
によりブロック暗号の鍵の更新を行った場合を模式的に
示すと、図11のようになる。つまり、疑似乱数生成器
1の1ステップで9ビットの疑似乱数が得られるので、
72ビットのブロック暗号の鍵を生成するのには8ステ
ップ必要となる。よって、最初のブロック暗号の鍵k 1
は、 k1 =b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b
8 となり、この鍵によって平文ブロック列5の最初の24
×103 個が暗号化される。
によりブロック暗号の鍵の更新を行った場合を模式的に
示すと、図11のようになる。つまり、疑似乱数生成器
1の1ステップで9ビットの疑似乱数が得られるので、
72ビットのブロック暗号の鍵を生成するのには8ステ
ップ必要となる。よって、最初のブロック暗号の鍵k 1
は、 k1 =b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b
8 となり、この鍵によって平文ブロック列5の最初の24
×103 個が暗号化される。
【0013】更に、疑似乱数生成器の次の8ステップで
次のブロック暗号の鍵k2 が得られ、 k2 =b9 ,b10,b11,b12,b13,b14,b15,b
16 となる。この鍵によって平文ブロック列5の次の24 ×
103 個がブロック暗号器3により暗号化される。
次のブロック暗号の鍵k2 が得られ、 k2 =b9 ,b10,b11,b12,b13,b14,b15,b
16 となる。この鍵によって平文ブロック列5の次の24 ×
103 個がブロック暗号器3により暗号化される。
【0014】この場合の演算器2は、疑似乱数生成器1
から入力される疑似乱数7(b1 ,b2 ,…,b8 ,b
9 ,b10,…)を8個ずつ集めて、前から順にk1 ,k2
,…とし、ブロック暗号の鍵列8として出力する。こ
のように、文献1の手法によりブロック暗号の鍵を暗号
学的に安全な疑似乱数を用いて随時更新しようとする場
合、疑似乱数生成器1からブロック暗号の鍵のビット長
に等しいだけの疑似乱数を出力される毎に、1回の鍵の
更新しかできない。
から入力される疑似乱数7(b1 ,b2 ,…,b8 ,b
9 ,b10,…)を8個ずつ集めて、前から順にk1 ,k2
,…とし、ブロック暗号の鍵列8として出力する。こ
のように、文献1の手法によりブロック暗号の鍵を暗号
学的に安全な疑似乱数を用いて随時更新しようとする場
合、疑似乱数生成器1からブロック暗号の鍵のビット長
に等しいだけの疑似乱数を出力される毎に、1回の鍵の
更新しかできない。
【0015】また、暗号通信ネットワークでは、あらか
じめネットワークの加入者間で固有かつ秘密の鍵を共有
している。鍵の共有は、あらかじめネットワークの管理
者等が鍵を設定しておくことによっても、文献4の72
〜73,97〜104頁に示されるような公知の鍵共有
方式によっても実現できる。さらにそれぞれの加入者
は、ネットワークで決められたアルゴリズムに従って図
8に示すような暗号化(及び復号)を行う暗号器3と、
ネットワークで決められたアルゴリズムに従い暗号学的
に安全な疑似乱数を生成する疑似乱数生成器1と、疑似
乱数生成器1から出力された疑似乱数を暗号器の鍵列に
変換する演算器2とを備えた通信端末をもつ。
じめネットワークの加入者間で固有かつ秘密の鍵を共有
している。鍵の共有は、あらかじめネットワークの管理
者等が鍵を設定しておくことによっても、文献4の72
〜73,97〜104頁に示されるような公知の鍵共有
方式によっても実現できる。さらにそれぞれの加入者
は、ネットワークで決められたアルゴリズムに従って図
8に示すような暗号化(及び復号)を行う暗号器3と、
ネットワークで決められたアルゴリズムに従い暗号学的
に安全な疑似乱数を生成する疑似乱数生成器1と、疑似
乱数生成器1から出力された疑似乱数を暗号器の鍵列に
変換する演算器2とを備えた通信端末をもつ。
【0016】この通信端末を用いた加入者AからBへの
暗号通信は、例えば以下の手順で行っている。 (1)Aはあらかじめ配布され送信先Bと共有している
秘密の鍵KABを疑似乱数生成器1の初期値x0 として設
定して疑似乱数生成器1を動作させ、暗号学的に安全な
疑似乱数系列7(CRAB)を生成する。さらに、演算器
2により生成したCRABをブロック暗号の鍵列8(k
1 ,k2 ,…,kt )に変換する。それらをブロック暗
号の鍵として随時更新しつつ用いて、ブロック暗号器3
により平文ブロック列5(通信文Muv;u=1,2,…
t:v=1,2,…,s)を暗号化し、その暗号化した
暗号文ブロック列6(ku(Muv);u=1,2,…t:
v=1,2,…,s)をBに送信する。
暗号通信は、例えば以下の手順で行っている。 (1)Aはあらかじめ配布され送信先Bと共有している
秘密の鍵KABを疑似乱数生成器1の初期値x0 として設
定して疑似乱数生成器1を動作させ、暗号学的に安全な
疑似乱数系列7(CRAB)を生成する。さらに、演算器
2により生成したCRABをブロック暗号の鍵列8(k
1 ,k2 ,…,kt )に変換する。それらをブロック暗
号の鍵として随時更新しつつ用いて、ブロック暗号器3
により平文ブロック列5(通信文Muv;u=1,2,…
t:v=1,2,…,s)を暗号化し、その暗号化した
暗号文ブロック列6(ku(Muv);u=1,2,…t:
v=1,2,…,s)をBに送信する。
【0017】(2)Bは、あらかじめ配布され送信元A
と共有している秘密の鍵KABを疑似乱数生成器1の初期
値x0 として設定して疑似乱数生成器1を動作させ、暗
号学的に安全な疑似乱数系列7(CRAB)を生成する。
さらに、演算器2により生成したCRABをブロック暗号
の鍵列8(k1 ,k2 ,…,kt )に変換する。それら
をブロック暗号の鍵として随時更新しつつ用いて、ブロ
ック暗号器3によりAからの受信文ブロック列6(暗号
文ku(Muv);u=1,2,…t:v=1,2,…,
s)を得る。
と共有している秘密の鍵KABを疑似乱数生成器1の初期
値x0 として設定して疑似乱数生成器1を動作させ、暗
号学的に安全な疑似乱数系列7(CRAB)を生成する。
さらに、演算器2により生成したCRABをブロック暗号
の鍵列8(k1 ,k2 ,…,kt )に変換する。それら
をブロック暗号の鍵として随時更新しつつ用いて、ブロ
ック暗号器3によりAからの受信文ブロック列6(暗号
文ku(Muv);u=1,2,…t:v=1,2,…,
s)を得る。
【0018】
【発明が解決しようとする課題】しかしながら、従来の
手法によりブロック暗号の鍵を暗号学的に安全な疑似乱
数を用いて随時更新しようとする場合、疑似乱数生成器
からブロック暗号の鍵のビット長に等しいだけの疑似乱
数が出力される毎に1回の鍵の更新しかできないという
問題があった。
手法によりブロック暗号の鍵を暗号学的に安全な疑似乱
数を用いて随時更新しようとする場合、疑似乱数生成器
からブロック暗号の鍵のビット長に等しいだけの疑似乱
数が出力される毎に1回の鍵の更新しかできないという
問題があった。
【0019】また、1度加入者間で暗号通信を行なった
後に暗号通信を再開する場合に、疑似乱数生成器1の初
期値が再び前に用いた鍵KABとなり、同じ平文を送る場
合には同じ暗号文が生成されるので、十分に守秘性が保
たれないという問題があった。また、その解決法として
セッション鍵と呼ばれる暗号通信毎の暗号鍵を用いる方
法が知られているが、この場合、セッション鍵は通信毎
の使い捨ての鍵であるので簡単に生成できることが要求
される。従って、通常、セッション鍵は暗号学的に安全
ではないが生成が容易である疑似乱数に基づいて生成さ
れる場合が多かった。
後に暗号通信を再開する場合に、疑似乱数生成器1の初
期値が再び前に用いた鍵KABとなり、同じ平文を送る場
合には同じ暗号文が生成されるので、十分に守秘性が保
たれないという問題があった。また、その解決法として
セッション鍵と呼ばれる暗号通信毎の暗号鍵を用いる方
法が知られているが、この場合、セッション鍵は通信毎
の使い捨ての鍵であるので簡単に生成できることが要求
される。従って、通常、セッション鍵は暗号学的に安全
ではないが生成が容易である疑似乱数に基づいて生成さ
れる場合が多かった。
【0020】また、暗号通信の最後に次の初期値となる
秘密の鍵KABを暗号通信して、互いの鍵を更新する方法
も知られているが、鍵の更新のための通信量が増すとい
う欠点があった。本発明は、前記従来の欠点を除去し、
暗号学的に安全な疑似乱数を暗号鍵としながら、十分に
守秘性を保ち、鍵の更新のための通信量の増加を無くし
た共通鍵暗号通信方法及びその通信ネットワークを提供
する。
秘密の鍵KABを暗号通信して、互いの鍵を更新する方法
も知られているが、鍵の更新のための通信量が増すとい
う欠点があった。本発明は、前記従来の欠点を除去し、
暗号学的に安全な疑似乱数を暗号鍵としながら、十分に
守秘性を保ち、鍵の更新のための通信量の増加を無くし
た共通鍵暗号通信方法及びその通信ネットワークを提供
する。
【0021】すなわち、本発明は、疑似乱数生成器が疑
似乱数を生成する毎にブロック暗号の鍵の更新を行うこ
とにより、ブロック暗号の鍵の更新周期を短くし、ブロ
ック暗号の安全性を向上する。また、暗号学的に安全な
疑似乱数系列によりブロック暗号の暗号鍵を随時更新す
る暗号方式に対して、同じ通信相手への暗号文でも暗号
通信毎に異なる鍵系列で暗号化されたものにし、ブロッ
ク暗号の安全性を向上させる。
似乱数を生成する毎にブロック暗号の鍵の更新を行うこ
とにより、ブロック暗号の鍵の更新周期を短くし、ブロ
ック暗号の安全性を向上する。また、暗号学的に安全な
疑似乱数系列によりブロック暗号の暗号鍵を随時更新す
る暗号方式に対して、同じ通信相手への暗号文でも暗号
通信毎に異なる鍵系列で暗号化されたものにし、ブロッ
ク暗号の安全性を向上させる。
【0022】さらに、暗号学的に安全な疑似乱数に基づ
いて暗号通信毎の鍵を生成でき、さらに、暗号鍵更新の
ための通信無しで鍵を変更することを可能にする。
いて暗号通信毎の鍵を生成でき、さらに、暗号鍵更新の
ための通信無しで鍵を変更することを可能にする。
【0023】
【課題を解決するための手段】この課題を解決するため
に、本発明の共通鍵暗号通信方法は、暗号化及び復号の
ための鍵列を更新しながら暗号通信を行う共通鍵暗号通
信方法において、予め加入者間で固有かつ秘密の共通鍵
を共有し、該共通鍵に基づいて疑似乱数を生成し、複数
の前記疑似乱数に基づいて鍵列を作成し、前記疑似乱数
が生成される毎に、前記鍵列を更新することを特徴とす
る。また、前記疑似乱数は前記共通鍵を内部変数の初期
値として生成され、暗号通信の終了時における内部変数
を次回の共通鍵として記憶する行程を更に備える。
に、本発明の共通鍵暗号通信方法は、暗号化及び復号の
ための鍵列を更新しながら暗号通信を行う共通鍵暗号通
信方法において、予め加入者間で固有かつ秘密の共通鍵
を共有し、該共通鍵に基づいて疑似乱数を生成し、複数
の前記疑似乱数に基づいて鍵列を作成し、前記疑似乱数
が生成される毎に、前記鍵列を更新することを特徴とす
る。また、前記疑似乱数は前記共通鍵を内部変数の初期
値として生成され、暗号通信の終了時における内部変数
を次回の共通鍵として記憶する行程を更に備える。
【0024】又、本発明の共通鍵暗号通信方法は、暗号
化及び復号のための共通の鍵列を更新しながら暗号通信
を行う共通鍵暗号通信方法において、予め加入者間で固
有かつ秘密の共通鍵を共有し、該共通鍵を内部変数の初
期値として疑似乱数を生成し、複数の前記疑似乱数に基
づいて鍵列を作成し、暗号通信の終了時における内部変
数を次回の共通鍵として記憶することを特徴とする。
化及び復号のための共通の鍵列を更新しながら暗号通信
を行う共通鍵暗号通信方法において、予め加入者間で固
有かつ秘密の共通鍵を共有し、該共通鍵を内部変数の初
期値として疑似乱数を生成し、複数の前記疑似乱数に基
づいて鍵列を作成し、暗号通信の終了時における内部変
数を次回の共通鍵として記憶することを特徴とする。
【0025】ここで、前記疑似乱数発生は、2乗型乱
数、RSA暗号、離散対数、逆数暗号から選ばれる。
又、本発明の通信端末装置は、暗号化及び復号を行う暗
号手段と、予め加入者間で共有された固有かつ秘密の共
通鍵に基づいて、暗号学的に安全な疑似乱数系列を生成
する疑似乱数生成手段と、前記疑似乱数発生器の出力を
前記暗号器の鍵列に変換する演算手段であって、前記疑
似乱数が入力される毎に鍵列を更新する演算手段とを備
えることを特徴とする。
数、RSA暗号、離散対数、逆数暗号から選ばれる。
又、本発明の通信端末装置は、暗号化及び復号を行う暗
号手段と、予め加入者間で共有された固有かつ秘密の共
通鍵に基づいて、暗号学的に安全な疑似乱数系列を生成
する疑似乱数生成手段と、前記疑似乱数発生器の出力を
前記暗号器の鍵列に変換する演算手段であって、前記疑
似乱数が入力される毎に鍵列を更新する演算手段とを備
えることを特徴とする。
【0026】ここで、前記演算手段は、前記疑似乱数発
生器の出力をシフト入力とするシフトレジスタからな
る。また、前記演算手段は、前記疑似乱数発生器の出力
を入力とするアドレッシング可能なレジスタからなる。
また、前記演算手段は、前記疑似乱数発生器の出力を入
力とする複数のROMと該複数のROMの出力を論理演
算する演算器とからなる。また、前記疑似乱数生成手段
は前記共通鍵を内部変数の初期値として疑似乱数を発生
し、暗号通信の終了時における内部変数を次回の共通鍵
として保持する保持手段を更に備える。
生器の出力をシフト入力とするシフトレジスタからな
る。また、前記演算手段は、前記疑似乱数発生器の出力
を入力とするアドレッシング可能なレジスタからなる。
また、前記演算手段は、前記疑似乱数発生器の出力を入
力とする複数のROMと該複数のROMの出力を論理演
算する演算器とからなる。また、前記疑似乱数生成手段
は前記共通鍵を内部変数の初期値として疑似乱数を発生
し、暗号通信の終了時における内部変数を次回の共通鍵
として保持する保持手段を更に備える。
【0027】又、本発明の通信端末装置は、暗号化及び
復号を行う暗号手段と、予め加入者間で共有された固有
かつ秘密の共通鍵を内部変数の初期値として、暗号学的
に安全な疑似乱数系列を生成する疑似乱数生成手段と、
前記疑似乱数発生器の出力を前記暗号器の鍵列に変換す
る演算手段と、暗号通信の終了時における内部変数を次
回の共通鍵として保持する保持手段とを備えることを特
徴とする。
復号を行う暗号手段と、予め加入者間で共有された固有
かつ秘密の共通鍵を内部変数の初期値として、暗号学的
に安全な疑似乱数系列を生成する疑似乱数生成手段と、
前記疑似乱数発生器の出力を前記暗号器の鍵列に変換す
る演算手段と、暗号通信の終了時における内部変数を次
回の共通鍵として保持する保持手段とを備えることを特
徴とする。
【0028】ここで、前記疑似乱数発生は、2乗型乱
数、RSA暗号、離散対数、逆数暗号から選ばれる。
又、本発明の通信ネットワークは、暗号化及び復号を行
う暗号手段と、予め加入者間で共有された固有かつ秘密
の共通鍵に基づいて、暗号学的に安全な疑似乱数系列を
生成する疑似乱数生成手段と、前記疑似乱数発生器の出
力を前記暗号器の鍵列に変換する演算手段であって、前
記疑似乱数が入力される毎に鍵列を更新する演算手段と
を備える通信端末を用いて暗号通信を行うことを特徴と
する。また、前記疑似乱数生成手段は前記共通鍵を内部
変数の初期値として疑似乱数を発生し、前記通信端末
は、暗号通信の終了時における内部変数を次回の共通鍵
として保持する保持手段を更に備える。
数、RSA暗号、離散対数、逆数暗号から選ばれる。
又、本発明の通信ネットワークは、暗号化及び復号を行
う暗号手段と、予め加入者間で共有された固有かつ秘密
の共通鍵に基づいて、暗号学的に安全な疑似乱数系列を
生成する疑似乱数生成手段と、前記疑似乱数発生器の出
力を前記暗号器の鍵列に変換する演算手段であって、前
記疑似乱数が入力される毎に鍵列を更新する演算手段と
を備える通信端末を用いて暗号通信を行うことを特徴と
する。また、前記疑似乱数生成手段は前記共通鍵を内部
変数の初期値として疑似乱数を発生し、前記通信端末
は、暗号通信の終了時における内部変数を次回の共通鍵
として保持する保持手段を更に備える。
【0029】又、本発明の通信ネットワークは、暗号化
及び復号を行う暗号手段と、予め加入者間で共有された
固有かつ秘密の共通鍵を内部変数の初期値として、暗号
学的に安全な疑似乱数系列を生成する疑似乱数生成手段
と、前記疑似乱数発生器の出力を前記暗号器の鍵列に変
換する演算手段と、暗号通信の終了時における内部変数
を次回の共通鍵として保持する保持手段とを備える通信
端末を用いて暗号通信を行うことを特徴とする。
及び復号を行う暗号手段と、予め加入者間で共有された
固有かつ秘密の共通鍵を内部変数の初期値として、暗号
学的に安全な疑似乱数系列を生成する疑似乱数生成手段
と、前記疑似乱数発生器の出力を前記暗号器の鍵列に変
換する演算手段と、暗号通信の終了時における内部変数
を次回の共通鍵として保持する保持手段とを備える通信
端末を用いて暗号通信を行うことを特徴とする。
【0030】ここで、前記疑似乱数発生は、2乗型乱
数、RSA暗号、離散対数、逆数暗号から選ばれる。 [作用]以上の構成により、暗号学的に安全な疑似乱数
によりブロック暗号の鍵を随時更新し、暗号学的に安全
な疑似乱数を暗号鍵とし、十分に守秘性を保ち、鍵の更
新のための通信の必要がなく、通信量の増加を防止でき
る。
数、RSA暗号、離散対数、逆数暗号から選ばれる。 [作用]以上の構成により、暗号学的に安全な疑似乱数
によりブロック暗号の鍵を随時更新し、暗号学的に安全
な疑似乱数を暗号鍵とし、十分に守秘性を保ち、鍵の更
新のための通信の必要がなく、通信量の増加を防止でき
る。
【0031】
【発明の実施の形態】以下、本発明を実施の形態を用い
て詳細に説明する。 [実施の形態1] <本実施の形態の暗号化方法>本実施の形態は、暗号学
的に安全な疑似乱数によりブロック暗号の鍵を随時更新
する暗号方式において、疑似乱数生成器が疑似乱数をj
ビット出力する毎にブロック暗号の鍵を更新することに
より、更新の周期を短くして安全性を高めたものであ
る。但し、jは1回に得られる疑似乱数bi のビット数
のことである。
て詳細に説明する。 [実施の形態1] <本実施の形態の暗号化方法>本実施の形態は、暗号学
的に安全な疑似乱数によりブロック暗号の鍵を随時更新
する暗号方式において、疑似乱数生成器が疑似乱数をj
ビット出力する毎にブロック暗号の鍵を更新することに
より、更新の周期を短くして安全性を高めたものであ
る。但し、jは1回に得られる疑似乱数bi のビット数
のことである。
【0032】以下に、本実施の形態によるブロック暗号
の鍵の更新方式を、文献1の方式と比較して詳しく述べ
る。疑似乱数生成器1から各々はjビットの疑似乱数7
がb 1 ,b2 ,…,bm ,bm+1 ,bm+2 ,…,b2m,
b2m+1,b2m+2,…,b3m,…と出力されるとし、ブロ
ック暗号の鍵の大きさがm×jビットであるとした場合
(前記従来例で述べた[条件1]の場合、j=9,m=
8)、本実施の形態によるブロック暗号の鍵列の例を図
1に示す。
の鍵の更新方式を、文献1の方式と比較して詳しく述べ
る。疑似乱数生成器1から各々はjビットの疑似乱数7
がb 1 ,b2 ,…,bm ,bm+1 ,bm+2 ,…,b2m,
b2m+1,b2m+2,…,b3m,…と出力されるとし、ブロ
ック暗号の鍵の大きさがm×jビットであるとした場合
(前記従来例で述べた[条件1]の場合、j=9,m=
8)、本実施の形態によるブロック暗号の鍵列の例を図
1に示す。
【0033】前述のように文献1の方式では、疑似乱数
生成器1から出力される疑似乱数7のビット数が、ブロ
ック暗号の鍵のビット数に等しくなるまでブロック暗号
の鍵の更新は行われなかった。つまり、図12に示すよ
うに、従来のブロック暗号の鍵列では、疑似乱数生成器
1から各々はjビットの疑似乱数がb1 ,b2 ,…,b
m ,bm+1 ,bm+2 ,…,b2m,b2m+1,b2m+2,…,
b3m,…と出力されていた場合に、ブロック暗号の鍵の
大きさが上と同じm×jビットであるとすると、次のよ
うになる。
生成器1から出力される疑似乱数7のビット数が、ブロ
ック暗号の鍵のビット数に等しくなるまでブロック暗号
の鍵の更新は行われなかった。つまり、図12に示すよ
うに、従来のブロック暗号の鍵列では、疑似乱数生成器
1から各々はjビットの疑似乱数がb1 ,b2 ,…,b
m ,bm+1 ,bm+2 ,…,b2m,b2m+1,b2m+2,…,
b3m,…と出力されていた場合に、ブロック暗号の鍵の
大きさが上と同じm×jビットであるとすると、次のよ
うになる。
【0034】k1 =b1 ,b2 ,…,bm k2 =bm+1 ,bm+2 ,…,b2m k3 =b2m+1,b2m+2,…,b3m : それに対し、本実施の形態では、図1に示すように、疑
似乱数生成器1が疑似乱数7を生成する毎にブロック暗
号の鍵の更新を行う。つまり、疑似乱数生成器1が疑似
乱数bi を生成すると、演算器12において、その時点
のブロック暗号の鍵kk =bi-m ,bi-m+1 ,…,b
i-1 に対し、生成時点の最も古い疑似乱数bi-m を除い
て代わりにbi を入れることにより、次のm×jビット
のブロック暗号の鍵Kk+1 を得るという処理を行う。
似乱数生成器1が疑似乱数7を生成する毎にブロック暗
号の鍵の更新を行う。つまり、疑似乱数生成器1が疑似
乱数bi を生成すると、演算器12において、その時点
のブロック暗号の鍵kk =bi-m ,bi-m+1 ,…,b
i-1 に対し、生成時点の最も古い疑似乱数bi-m を除い
て代わりにbi を入れることにより、次のm×jビット
のブロック暗号の鍵Kk+1 を得るという処理を行う。
【0035】bi を入れる位置は例えば一番後ろに着
け、全体としてシフトさせたような構成にする方法があ
る。その場合、kk+1 =bi-m+1 ,bi-m+2 ,…,b
i ,kk+ 2 =bi-m+2 ,bi-m+3 ,…,bi+1 となる。
つまり、先程説明した文献1の例に対して本実施の形態
による鍵更新を行うと、演算器12では入力されるb
1 ,b2 ,…,bm ,bm+1 ,bm+2 ,…,b2m,b
2m+1,b2m+2,…,b3m,…に対し、ブロック暗号鍵列
18は図1に示すようになり、k1 ,k2 ,k3 ,…を
次のように出力する。
け、全体としてシフトさせたような構成にする方法があ
る。その場合、kk+1 =bi-m+1 ,bi-m+2 ,…,b
i ,kk+ 2 =bi-m+2 ,bi-m+3 ,…,bi+1 となる。
つまり、先程説明した文献1の例に対して本実施の形態
による鍵更新を行うと、演算器12では入力されるb
1 ,b2 ,…,bm ,bm+1 ,bm+2 ,…,b2m,b
2m+1,b2m+2,…,b3m,…に対し、ブロック暗号鍵列
18は図1に示すようになり、k1 ,k2 ,k3 ,…を
次のように出力する。
【0036】k1 =b1 ,b2 ,…,bm k2 =b2 ,b3 ,…,bm+1 k3 =b3 ,b4 ,…,bm+2 : このことにより、疑似乱数生成器1が疑似乱数7を生成
する毎にブロック暗号の鍵を更新できる。つまり、文献
1の方法の更新周期に対し、本実施の形態ではブロック
暗号の鍵の更新周期を1/mに短くし、ブロック暗号の
安全性を向上できる。
する毎にブロック暗号の鍵を更新できる。つまり、文献
1の方法の更新周期に対し、本実施の形態ではブロック
暗号の鍵の更新周期を1/mに短くし、ブロック暗号の
安全性を向上できる。
【0037】また、鍵の更新を行う方法として、疑似乱
数生成器1が疑似乱数bi を生成すると、その時点のブ
ロック暗号の鍵kk =bi-m ,bi-m+1 ,bi-m+2 ,
…,bbi-1 に対し、演算器12では生成時点の最も古
い疑似乱数bi-m を除いてその位置にbi を入れること
もできる。また、疑似乱数bi とその時点の暗号鍵か
ら、ある定まった演算によって次の暗号鍵全体を決定す
ることもできる。
数生成器1が疑似乱数bi を生成すると、その時点のブ
ロック暗号の鍵kk =bi-m ,bi-m+1 ,bi-m+2 ,
…,bbi-1 に対し、演算器12では生成時点の最も古
い疑似乱数bi-m を除いてその位置にbi を入れること
もできる。また、疑似乱数bi とその時点の暗号鍵か
ら、ある定まった演算によって次の暗号鍵全体を決定す
ることもできる。
【0038】<本実施の形態の暗号化の評価>本実施の
形態の利点を定量的に評価する。例えば、前記[条件
1]の場合、文献1の従来の方法では、1秒間に生成さ
れるブロック暗号の鍵の数wk はwk =2-3×103 で
ある。つまり、ブロック暗号の鍵の更新周期は23 ×1
0-3秒ということになる。
形態の利点を定量的に評価する。例えば、前記[条件
1]の場合、文献1の従来の方法では、1秒間に生成さ
れるブロック暗号の鍵の数wk はwk =2-3×103 で
ある。つまり、ブロック暗号の鍵の更新周期は23 ×1
0-3秒ということになる。
【0039】これに対し、本実施の形態では、暗号学的
に安全な疑似乱数の生成の1回のステップが終了して疑
似乱数が生成される毎に、ブロック暗号の鍵の更新を行
う。例えば、同じ[条件1]のもとで本実施の形態1に
よりブロック暗号の鍵の更新を行った場合を模式的に示
すと、図2のようになる。すなわち、図2において、初
期値4から疑似乱数生成器1により疑似乱数7を発生す
る。疑似乱数7から演算器12により暗号鍵列18を演
算出力し、この暗号鍵列18により平文ブロック列5を
ブロック暗号器3により暗号化し、暗号ブロック列6を
出力する。
に安全な疑似乱数の生成の1回のステップが終了して疑
似乱数が生成される毎に、ブロック暗号の鍵の更新を行
う。例えば、同じ[条件1]のもとで本実施の形態1に
よりブロック暗号の鍵の更新を行った場合を模式的に示
すと、図2のようになる。すなわち、図2において、初
期値4から疑似乱数生成器1により疑似乱数7を発生す
る。疑似乱数7から演算器12により暗号鍵列18を演
算出力し、この暗号鍵列18により平文ブロック列5を
ブロック暗号器3により暗号化し、暗号ブロック列6を
出力する。
【0040】前記[条件1]では、1ステップあたり1
0-3(秒)で行えるので、ブロック暗号の鍵の更新周期
は10-3秒となる。よって、同じ[条件1]のもとで
も、文献1に比べて更新周期は1/8となり、この周期
でブロック暗号の鍵の更新を行った場合、2×103 個
のブロックが暗号化される毎に更新されることになる。
よって、本実施の形態によって、暗号学的に安全な疑似
乱数によりブロック暗号の鍵を随時更新する暗号方式の
安全性が、文献1に比べて著しく向上させることが可能
となる。
0-3(秒)で行えるので、ブロック暗号の鍵の更新周期
は10-3秒となる。よって、同じ[条件1]のもとで
も、文献1に比べて更新周期は1/8となり、この周期
でブロック暗号の鍵の更新を行った場合、2×103 個
のブロックが暗号化される毎に更新されることになる。
よって、本実施の形態によって、暗号学的に安全な疑似
乱数によりブロック暗号の鍵を随時更新する暗号方式の
安全性が、文献1に比べて著しく向上させることが可能
となる。
【0041】<本実施の形態の疑似乱数生成器の構成例
>疑似乱数生成器は、2乗型乱数や、RSA暗号、離散
対数、逆数暗号を用いたアルゴリズムにより暗号学的に
安全な疑似乱数を生成するが、一具体例として、疑似乱
数生成器に用いているアルゴリズムに2乗型疑似乱数を
用いた場合について次に詳しく説明する。
>疑似乱数生成器は、2乗型乱数や、RSA暗号、離散
対数、逆数暗号を用いたアルゴリズムにより暗号学的に
安全な疑似乱数を生成するが、一具体例として、疑似乱
数生成器に用いているアルゴリズムに2乗型疑似乱数を
用いた場合について次に詳しく説明する。
【0042】(2乗型疑似乱数系列)2乗型疑似乱数系
列とは以下の手順で生成される疑似乱数系列b1 ,b2
,…であり、その系列は平方剰余製の判定問題が計算
量的に困難であるとの仮定の下で、暗号学的に安全な疑
似乱数系列となる。いま、p,qをp≡q≡3(mod
4)である素数とし、N=p・qとして、初期値x0
(1<x0 <N−1なる整数)と再帰式 xi+1 =xi 2modN(i=0,1,2,…) bi =bj(xi )(i=1,2,…) (1) とによって得られるビット系列b1 ,b2 ,…を2乗型
疑似乱数系列という。
列とは以下の手順で生成される疑似乱数系列b1 ,b2
,…であり、その系列は平方剰余製の判定問題が計算
量的に困難であるとの仮定の下で、暗号学的に安全な疑
似乱数系列となる。いま、p,qをp≡q≡3(mod
4)である素数とし、N=p・qとして、初期値x0
(1<x0 <N−1なる整数)と再帰式 xi+1 =xi 2modN(i=0,1,2,…) bi =bj(xi )(i=1,2,…) (1) とによって得られるビット系列b1 ,b2 ,…を2乗型
疑似乱数系列という。
【0043】但し、bj(xi )はxi の下位jビット
を表わし、Nのビット数をnとした時にj=O(log
2n)とする。上述の手順において、1ステップでjビッ
トの疑似乱数bi が生成できる。この2乗型疑似乱数を
用いて、本実施の形態によるブロック暗号の鍵の更新方
式を具体的に説明する。但し、説明をわかりやすくする
ため前記[条件1]の場合と同じくブロック暗号の鍵の
ビット長を72ビットとする。またnを512ビットと
し、一回の2乗演算で得られる疑似乱数系列bi (i=
1,2,…)は、それぞれ9ビットの疑似乱数系列であ
るとして説明する。
を表わし、Nのビット数をnとした時にj=O(log
2n)とする。上述の手順において、1ステップでjビッ
トの疑似乱数bi が生成できる。この2乗型疑似乱数を
用いて、本実施の形態によるブロック暗号の鍵の更新方
式を具体的に説明する。但し、説明をわかりやすくする
ため前記[条件1]の場合と同じくブロック暗号の鍵の
ビット長を72ビットとする。またnを512ビットと
し、一回の2乗演算で得られる疑似乱数系列bi (i=
1,2,…)は、それぞれ9ビットの疑似乱数系列であ
るとして説明する。
【0044】<ブロック暗号の鍵の更新例>次の手順に
より、2乗演算を行う毎(1ステップ毎)にブロックの
鍵を更新することが可能である。 (1)v=1とし、疑似乱数生成器1(二乗型)に初期
値x0 (1<x0 <N−1)を与え、式(1)の2乗演
算を8ステップを行い、その疑似乱数出力7を入力とし
て、演算器12はブロック暗号の72ビットの最初の鍵
をkv =k1 =bv ,bv+1 ,bv+2 ,…,bv+7 =b
1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b 7 ,b8 として
出力する。(暗号鍵列18の出力) (2)kv =bv ,bv+1 ,bv+2 ,…,bv+7 をブロ
ック暗号の鍵18として設定し、予め決められた複数の
平文ブロック列5の暗号化を行う。
より、2乗演算を行う毎(1ステップ毎)にブロックの
鍵を更新することが可能である。 (1)v=1とし、疑似乱数生成器1(二乗型)に初期
値x0 (1<x0 <N−1)を与え、式(1)の2乗演
算を8ステップを行い、その疑似乱数出力7を入力とし
て、演算器12はブロック暗号の72ビットの最初の鍵
をkv =k1 =bv ,bv+1 ,bv+2 ,…,bv+7 =b
1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b 7 ,b8 として
出力する。(暗号鍵列18の出力) (2)kv =bv ,bv+1 ,bv+2 ,…,bv+7 をブロ
ック暗号の鍵18として設定し、予め決められた複数の
平文ブロック列5の暗号化を行う。
【0045】(3)疑似乱数生成器1(二乗型)は(v
+8)ステップ目の2乗演算を行いbv+8 を出力する。
演算器12はbv+8 が入力されると、その時点でブロッ
ク暗号の鍵kv =bv ,bv+1 ,bv+2 ,…,bv+7 を
構成する最も古い疑似乱数bvを取り除き、一番後にb
v+8 を付けて、kv+1 =bv+1 ,bv+2 ,bv+3 ,…,
bv+8 を算出し、ブロック暗号の鍵18として出力す
る。
+8)ステップ目の2乗演算を行いbv+8 を出力する。
演算器12はbv+8 が入力されると、その時点でブロッ
ク暗号の鍵kv =bv ,bv+1 ,bv+2 ,…,bv+7 を
構成する最も古い疑似乱数bvを取り除き、一番後にb
v+8 を付けて、kv+1 =bv+1 ,bv+2 ,bv+3 ,…,
bv+8 を算出し、ブロック暗号の鍵18として出力す
る。
【0046】(4)v=v+1とし、手順2,3の処理
を暗号化が終了するまで繰り返す。従って、文献1の手
法では、更新していくブロック暗号の鍵8をk1 ,k
2 ,k3 ,…とした時に、 k1 =b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b8 k2 =b9 ,b10,b11,b12,b13,b14,b15,b16 k3 =b17,b18,b18,b20,b21,b22,b23,b24 : としていたのに対し、本実施の形態では、上記の手順に
より、2乗演算を行う毎(1ステップ毎)にブロック暗
号の鍵18を次のように更新する。
を暗号化が終了するまで繰り返す。従って、文献1の手
法では、更新していくブロック暗号の鍵8をk1 ,k
2 ,k3 ,…とした時に、 k1 =b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b8 k2 =b9 ,b10,b11,b12,b13,b14,b15,b16 k3 =b17,b18,b18,b20,b21,b22,b23,b24 : としていたのに対し、本実施の形態では、上記の手順に
より、2乗演算を行う毎(1ステップ毎)にブロック暗
号の鍵18を次のように更新する。
【0047】 k1 =b1 ,b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b8 k2 =b2 ,b3 ,b4 ,b5 ,b6 ,b7 ,b8 ,b9 k3 =b3 ,b4 ,b5 ,b6 ,b7 ,b8 ,b9 ,b10 : すなわち、ブロック暗号の鍵の更新周期を短くしたもの
である。
である。
【0048】また、前記手順(3)として一番後にb
v+8 を付けるとしたが、最も古い疑似乱数の位置にb
v+8 を入れて、kv+1 =bv+8 ,bv+1 ,bv+2 ,…,
bv+7としてもよい。また、bv+8 とその時の暗号鍵kv
からある演算によって暗号鍵全体を変更するとしても
よい。つまり、その演算を関数Gで表わすと、kv+1 =
G(bv+8 ,kv )としてもよい。
v+8 を付けるとしたが、最も古い疑似乱数の位置にb
v+8 を入れて、kv+1 =bv+8 ,bv+1 ,bv+2 ,…,
bv+7としてもよい。また、bv+8 とその時の暗号鍵kv
からある演算によって暗号鍵全体を変更するとしても
よい。つまり、その演算を関数Gで表わすと、kv+1 =
G(bv+8 ,kv )としてもよい。
【0049】以上詳細に述べたように、本実施の形態に
よれば、暗号学的に安全な疑似乱数によりブロック暗号
の鍵を随時更新する暗号方式において、暗号学的に安全
な疑似乱数の生成に必要な演算が終了する毎に、ブロッ
ク暗号の鍵を更新するような方式にすることにより、文
献1の更新方式に対し更新の周期を短くし、安全性を高
めた。
よれば、暗号学的に安全な疑似乱数によりブロック暗号
の鍵を随時更新する暗号方式において、暗号学的に安全
な疑似乱数の生成に必要な演算が終了する毎に、ブロッ
ク暗号の鍵を更新するような方式にすることにより、文
献1の更新方式に対し更新の周期を短くし、安全性を高
めた。
【0050】<本実施の形態の暗号通信例1>図3に示
すネットワークでは、あらかじめネットワークの加入者
間で固有かつ秘密の鍵を共有している。前記のように、
A,B,C,…,Nはそのネットワークの加入者、KAB
は加入者間A−B間で共有している鍵、KACは加入者A
−C間で共有している鍵(以下同様)を示している。鍵
の共有は、あらかじめネットワークの管理者等が設定し
ておくことによっても、文献4の72〜73,97〜1
04頁に示されるような公知の鍵共有方式によっても実
現できる。
すネットワークでは、あらかじめネットワークの加入者
間で固有かつ秘密の鍵を共有している。前記のように、
A,B,C,…,Nはそのネットワークの加入者、KAB
は加入者間A−B間で共有している鍵、KACは加入者A
−C間で共有している鍵(以下同様)を示している。鍵
の共有は、あらかじめネットワークの管理者等が設定し
ておくことによっても、文献4の72〜73,97〜1
04頁に示されるような公知の鍵共有方式によっても実
現できる。
【0051】さらにそれぞれの加入者は、図4に示すよ
うな通信端末150、すなわち、ネットワークで決めら
れたアルゴリズムに従って暗号化(及び復号)を行う暗
号器3と、ネットワークで決められたアルゴリズムに従
い暗号学的な安全な疑似乱数を生成する疑似乱数生成器
1と、疑似乱数生成器1から出力された疑似乱数7を暗
号器3の鍵列18に変換する上記本実施の形態の演算器
12とを備えた通信用端末150をもつ。
うな通信端末150、すなわち、ネットワークで決めら
れたアルゴリズムに従って暗号化(及び復号)を行う暗
号器3と、ネットワークで決められたアルゴリズムに従
い暗号学的な安全な疑似乱数を生成する疑似乱数生成器
1と、疑似乱数生成器1から出力された疑似乱数7を暗
号器3の鍵列18に変換する上記本実施の形態の演算器
12とを備えた通信用端末150をもつ。
【0052】本実施の形態では、暗号化(復号)のアル
ゴリズムとしてDES(Data Encryption Standard)暗
号を、暗号学的に安全な疑似乱数を生成するアルゴリズ
ムとして前記の2乗型疑似乱数を用いた場合について述
べる。DES暗号はアルゴリズム公開型の共通鍵ブロッ
ク暗号で、平文及び暗号文のブロックサイズが64ビッ
ト、鍵のサイズが56ビットである。2乗型疑似乱数を
十分安全なものとするために、2乗演算(式(1))の
法Nのビット数nを512ビットとする。nが512ビ
ットならば、1ステップの2乗演算で得られる疑似乱数
系列bi (i=1,2,…)は、それぞれ9ビット程度
の疑似乱数系列である。本実施の形態では、説明を簡単
にするため、疑似乱数生成器1から出力される疑似乱数
は1ステップあたり8ビット(式(1)で得られる9ビ
ットのさらに下位8ビットをとる)とし、それをbi
(i=1,2,…)とする。よって疑似乱数系列bi
(i=1,2,…)はそれぞれ8ビットである。また各
加入者間毎にあらかじめ秘密に共有されている鍵(疑似
乱数生成器の初期値)KAB,KAC,…は、1<KAB,K
AC,…<N−1とする。
ゴリズムとしてDES(Data Encryption Standard)暗
号を、暗号学的に安全な疑似乱数を生成するアルゴリズ
ムとして前記の2乗型疑似乱数を用いた場合について述
べる。DES暗号はアルゴリズム公開型の共通鍵ブロッ
ク暗号で、平文及び暗号文のブロックサイズが64ビッ
ト、鍵のサイズが56ビットである。2乗型疑似乱数を
十分安全なものとするために、2乗演算(式(1))の
法Nのビット数nを512ビットとする。nが512ビ
ットならば、1ステップの2乗演算で得られる疑似乱数
系列bi (i=1,2,…)は、それぞれ9ビット程度
の疑似乱数系列である。本実施の形態では、説明を簡単
にするため、疑似乱数生成器1から出力される疑似乱数
は1ステップあたり8ビット(式(1)で得られる9ビ
ットのさらに下位8ビットをとる)とし、それをbi
(i=1,2,…)とする。よって疑似乱数系列bi
(i=1,2,…)はそれぞれ8ビットである。また各
加入者間毎にあらかじめ秘密に共有されている鍵(疑似
乱数生成器の初期値)KAB,KAC,…は、1<KAB,K
AC,…<N−1とする。
【0053】次に本実施の形態による加入者AとBの間
の暗号通信の手順を述べる。 (加入者Aの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
7ステップ行い、疑似乱数生成器1(2乗型)はb1 ,
b2 ,b3 ,…,b7 を出力する。演算器12は入力し
たb1 ,b2 ,b3 ,…,b7 をブロック暗号の56ビ
ットの最初の鍵とし、v=1として、kv =kk =b
v ,bv+1,bv+2 ,…,bv+6 =b1 ,b2 ,b3 ,
b4 ,b5 ,b6 ,b7 を出力する。
の暗号通信の手順を述べる。 (加入者Aの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
7ステップ行い、疑似乱数生成器1(2乗型)はb1 ,
b2 ,b3 ,…,b7 を出力する。演算器12は入力し
たb1 ,b2 ,b3 ,…,b7 をブロック暗号の56ビ
ットの最初の鍵とし、v=1として、kv =kk =b
v ,bv+1,bv+2 ,…,bv+6 =b1 ,b2 ,b3 ,
b4 ,b5 ,b6 ,b7 を出力する。
【0054】(2)kv =bv ,bv+1 ,bv+2 ,…,
bv+6 をDES暗号の鍵として設定し、あらかじめ決め
られた数の平文ブロックの暗号化を行い、暗号化が終了
したブロックからBヘ送信する。 (3)疑似乱数生成器1(2乗型)は(v+7)ステッ
プ目の2乗演算を行いbv+7 を出力する。演算器12は
bv+7 が入力されると、その時点でのブロック暗号の鍵
kv =bv ,bv+1 ,bv+2 ,…,bv+6 の先頭の8ビ
ットbv を取り除き、一番後ろにbv+7 を付け、kv+1
=bv+1 ,bv+2 ,bv+3 ,…,bv+7を算出し、ブロ
ック暗号の鍵として出力する。
bv+6 をDES暗号の鍵として設定し、あらかじめ決め
られた数の平文ブロックの暗号化を行い、暗号化が終了
したブロックからBヘ送信する。 (3)疑似乱数生成器1(2乗型)は(v+7)ステッ
プ目の2乗演算を行いbv+7 を出力する。演算器12は
bv+7 が入力されると、その時点でのブロック暗号の鍵
kv =bv ,bv+1 ,bv+2 ,…,bv+6 の先頭の8ビ
ットbv を取り除き、一番後ろにbv+7 を付け、kv+1
=bv+1 ,bv+2 ,bv+3 ,…,bv+7を算出し、ブロ
ック暗号の鍵として出力する。
【0055】(4)v=v+1とし、手順(2),
(3)の処理を暗号化が終了するまで繰り返す。 (加入者Bの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
7ステップ行い、疑似乱数生成器1(2乗型)はb1 ,
b2 ,b3 ,…,b7 を出力する。演算器12は入力し
たb1 ,b2 ,b3 ,…,b7 をブロック暗号の56ビ
ットの最初の鍵とし、v=1として、kv =kk =b
v ,bv+1,bv+2 ,…,bv+6 =b1 ,b2 ,b3 ,
b4 ,b5 ,b6 ,b7 を出力する。
(3)の処理を暗号化が終了するまで繰り返す。 (加入者Bの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
7ステップ行い、疑似乱数生成器1(2乗型)はb1 ,
b2 ,b3 ,…,b7 を出力する。演算器12は入力し
たb1 ,b2 ,b3 ,…,b7 をブロック暗号の56ビ
ットの最初の鍵とし、v=1として、kv =kk =b
v ,bv+1,bv+2 ,…,bv+6 =b1 ,b2 ,b3 ,
b4 ,b5 ,b6 ,b7 を出力する。
【0056】(2)kv =bv ,bv+1 ,bv+2 ,…,
bv+6 をDES暗号の鍵として設定し、Aからの受信文
に対し、あらかじめ決められた数の暗号文ブロックの復
号を行う。 (3)疑似乱数生成器1(2乗型)は(v+7)ステッ
プ目の2乗演算を行いbv+7 を出力する。演算器12は
bv+7 が入力されると、その時点でのブロック暗号の鍵
kv =bv ,bv+1 ,bv+2 ,…,bv+6 の先頭の8ビ
ットbv を取り除き、一番後ろにbv+7 を付けて、k
v+1 =bv+1 ,bv+2 ,bv+3 ,…,bv+ 7 を算出し、
ブロック暗号の鍵として出力する。
bv+6 をDES暗号の鍵として設定し、Aからの受信文
に対し、あらかじめ決められた数の暗号文ブロックの復
号を行う。 (3)疑似乱数生成器1(2乗型)は(v+7)ステッ
プ目の2乗演算を行いbv+7 を出力する。演算器12は
bv+7 が入力されると、その時点でのブロック暗号の鍵
kv =bv ,bv+1 ,bv+2 ,…,bv+6 の先頭の8ビ
ットbv を取り除き、一番後ろにbv+7 を付けて、k
v+1 =bv+1 ,bv+2 ,bv+3 ,…,bv+ 7 を算出し、
ブロック暗号の鍵として出力する。
【0057】(4)v=v+1とし、前項の手順
(2),(3)の処理を受信化が終了するまで繰り返
す。この手順により暗号学的に暗算な疑似乱数の生成に
必要な演算が終了する毎に、ブロック暗号の鍵を更新す
ることができ、鍵の更新の周期を短くして安全性を向上
させることができる。
(2),(3)の処理を受信化が終了するまで繰り返
す。この手順により暗号学的に暗算な疑似乱数の生成に
必要な演算が終了する毎に、ブロック暗号の鍵を更新す
ることができ、鍵の更新の周期を短くして安全性を向上
させることができる。
【0058】<演算器12の構成例>上記手順(3)に
おいて、演算器12はbv+7 が入力されると、その時点
でのブロック暗号の鍵kv =bv ,bv+1 ,bv+2 ,
…,bv+6 の先頭の8ビットb v を取り除いて一番後ろ
にbv+7 を付け、kv+1 =bv+1 ,bv+2 ,bv+3 ,
…,bv+7 を算出してブロック暗号の鍵として出力する
という処理を行うが、これは、新たに得た疑似乱数b
v+7 をブロック暗号の鍵の後ろに付けてbv+7 のビット
分だけブロック暗号の鍵をシフトさせているのと同じで
ある。
おいて、演算器12はbv+7 が入力されると、その時点
でのブロック暗号の鍵kv =bv ,bv+1 ,bv+2 ,
…,bv+6 の先頭の8ビットb v を取り除いて一番後ろ
にbv+7 を付け、kv+1 =bv+1 ,bv+2 ,bv+3 ,
…,bv+7 を算出してブロック暗号の鍵として出力する
という処理を行うが、これは、新たに得た疑似乱数b
v+7 をブロック暗号の鍵の後ろに付けてbv+7 のビット
分だけブロック暗号の鍵をシフトさせているのと同じで
ある。
【0059】従って、この処理を行う演算器12は、図
5に示すようにシフトレジスタ12−1を用いて実現で
きる。すなわち、シリアル入力/パラレル出力のシフト
レジスタ12−1の先頭レジスタから順にブロック暗号
の鍵のビット列を格納しておき、ブロック暗号にはパラ
レル出力により鍵を入力するとしておく。ブロック暗号
の鍵をkv =bv ,bv+1 ,bv+2 ,…,bv+6 からk
v+1 =bv+1 ,bv+2,bv+3 ,…,bv+7 に更新する
時には、シリアル入力から新たな疑似乱数bv+ 7 を8回
シフトさせながら入力する。先頭レジスタからは更新以
前の鍵kv の先頭ビットから取り除かれる。このことに
より、加入者Bの手順(3)の処理が演算器12による
処理として行える。
5に示すようにシフトレジスタ12−1を用いて実現で
きる。すなわち、シリアル入力/パラレル出力のシフト
レジスタ12−1の先頭レジスタから順にブロック暗号
の鍵のビット列を格納しておき、ブロック暗号にはパラ
レル出力により鍵を入力するとしておく。ブロック暗号
の鍵をkv =bv ,bv+1 ,bv+2 ,…,bv+6 からk
v+1 =bv+1 ,bv+2,bv+3 ,…,bv+7 に更新する
時には、シリアル入力から新たな疑似乱数bv+ 7 を8回
シフトさせながら入力する。先頭レジスタからは更新以
前の鍵kv の先頭ビットから取り除かれる。このことに
より、加入者Bの手順(3)の処理が演算器12による
処理として行える。
【0060】あるいは、シリアル入力/パラレル出力の
シフトレジスタを8個用意し、疑似乱数生成器から8ビ
ットのbv+7 が出力すると、それぞれのシフトレジスタ
を1回シフトさせてそれぞれのシフトレジスタに1ビッ
トずつ入力する構成によっても演算器12の処理を行え
る。また、上記手順では手順(3)において、演算器1
2はbv+7 を一番後ろに付けるとした。しかし、演算器
12にbv+7 が入力されると、その時点でのブロック暗
号の鍵kv =bv ,bv+1 ,bv+2 ,…,bv+6 を構成
する最も古い疑似乱数bv を取り除いてその位置にb
v+7 を入れ、kv+1 =bv+7 ,bv+1 ,bv+2,…,b
v+6 を算出し、ブロック暗号の鍵として出力するように
してもよい。この場合、これは最も古い疑似乱数bv が
格納されていた領域に新たに得た疑似乱数bv+7 を格納
するという処理である。
シフトレジスタを8個用意し、疑似乱数生成器から8ビ
ットのbv+7 が出力すると、それぞれのシフトレジスタ
を1回シフトさせてそれぞれのシフトレジスタに1ビッ
トずつ入力する構成によっても演算器12の処理を行え
る。また、上記手順では手順(3)において、演算器1
2はbv+7 を一番後ろに付けるとした。しかし、演算器
12にbv+7 が入力されると、その時点でのブロック暗
号の鍵kv =bv ,bv+1 ,bv+2 ,…,bv+6 を構成
する最も古い疑似乱数bv を取り除いてその位置にb
v+7 を入れ、kv+1 =bv+7 ,bv+1 ,bv+2,…,b
v+6 を算出し、ブロック暗号の鍵として出力するように
してもよい。この場合、これは最も古い疑似乱数bv が
格納されていた領域に新たに得た疑似乱数bv+7 を格納
するという処理である。
【0061】従って、この処理を行う演算器12は図6
に示すようなレジスタ12−2を用いて実現できる。先
頭レジスタから順にブロック暗号の鍵のビット列を格納
しておき、ブロック暗号にはパラレル出力により鍵を入
力するとしておく。ブロック暗号の鍵をkv =bv ,b
v+1 ,bv+2 ,…,bv+6 からkv+1 =bv+7 ,b
v+ 1 ,bv+2 ,…,bv+6 に更新する時には、bv のア
ドレスを指定して新たな疑似乱数bv+7 をライトするこ
とにより、この演算器12による処理が行える。
に示すようなレジスタ12−2を用いて実現できる。先
頭レジスタから順にブロック暗号の鍵のビット列を格納
しておき、ブロック暗号にはパラレル出力により鍵を入
力するとしておく。ブロック暗号の鍵をkv =bv ,b
v+1 ,bv+2 ,…,bv+6 からkv+1 =bv+7 ,b
v+ 1 ,bv+2 ,…,bv+6 に更新する時には、bv のア
ドレスを指定して新たな疑似乱数bv+7 をライトするこ
とにより、この演算器12による処理が行える。
【0062】前記手順では、説明を簡単にするため、疑
似乱数系列bi (i=1,2,…)をそれぞれ8ビット
であるとしたが、疑似乱数系列bi (i=1,2,…)
はそれぞれ9ビットであるとした場合でも基本的な手順
は同じである。ただし、手順(1)において得られたb
1 ,b2 ,…,b7 は63ビットになるので、送受信者
間で共通の手順によりb1 ,b2 ,…,b7 から7ビッ
ト分を除いたもの(図5参照)をDES暗号の鍵Kk と
する必要がある。また、手順(3)において、その時点
でのブロック暗号の鍵kv =bv ,bv+1 ,bv+2 ,
…,bv+6 の先頭の8ビットbv を取り除くところを、
先頭の9ビットを取り除くとすればよい。
似乱数系列bi (i=1,2,…)をそれぞれ8ビット
であるとしたが、疑似乱数系列bi (i=1,2,…)
はそれぞれ9ビットであるとした場合でも基本的な手順
は同じである。ただし、手順(1)において得られたb
1 ,b2 ,…,b7 は63ビットになるので、送受信者
間で共通の手順によりb1 ,b2 ,…,b7 から7ビッ
ト分を除いたもの(図5参照)をDES暗号の鍵Kk と
する必要がある。また、手順(3)において、その時点
でのブロック暗号の鍵kv =bv ,bv+1 ,bv+2 ,
…,bv+6 の先頭の8ビットbv を取り除くところを、
先頭の9ビットを取り除くとすればよい。
【0063】<本実施の形態の暗号通信例2>上記手順
例1と同じ図3のネットワークを用いて説明する。ま
た、本手順例は、手順例1と同じく各加入者はそれぞれ
図4に示すような通信用端末150を持つとする。本例
でも、暗号化(復号)のアルゴリズムとしてDES(Da
ta Encryption Standard)暗号を、暗号学的に安全な疑
似乱数を生成するアルゴリズムとして上述の2乗型疑似
乱数を用いた場合について述べる。2乗型疑似乱数を十
分安全なものとするために、2乗演算(式(1))の法
Nのビット数nを512ビットとする。nが512ビッ
トならば、1ステップの2乗演算で得られる疑似乱数系
列b i (i=1,2,…)はそれぞれ9ビットの疑似乱
数系列である。よって疑似乱数生成器2からは1ステッ
プあたり9ビットの疑似乱数を出力される。さらに、各
加入者間毎にあらかじめ秘密に共有されている鍵(疑似
乱数生成器の初期値)KAB,KAC,…は、1<KAB,K
AC,…<N−1とする。
例1と同じ図3のネットワークを用いて説明する。ま
た、本手順例は、手順例1と同じく各加入者はそれぞれ
図4に示すような通信用端末150を持つとする。本例
でも、暗号化(復号)のアルゴリズムとしてDES(Da
ta Encryption Standard)暗号を、暗号学的に安全な疑
似乱数を生成するアルゴリズムとして上述の2乗型疑似
乱数を用いた場合について述べる。2乗型疑似乱数を十
分安全なものとするために、2乗演算(式(1))の法
Nのビット数nを512ビットとする。nが512ビッ
トならば、1ステップの2乗演算で得られる疑似乱数系
列b i (i=1,2,…)はそれぞれ9ビットの疑似乱
数系列である。よって疑似乱数生成器2からは1ステッ
プあたり9ビットの疑似乱数を出力される。さらに、各
加入者間毎にあらかじめ秘密に共有されている鍵(疑似
乱数生成器の初期値)KAB,KAC,…は、1<KAB,K
AC,…<N−1とする。
【0064】以下、本実施の形態による加入者AとBの
間の暗号通信の手順を述べる。 (加入者Aの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
7ステップ行い、v=1として疑似乱数生成器1(2乗
型)はbv =b 1 を疑似乱数7として出力する。演算器
12はb1 と初期値x0 から、ある規則によるテーブル
を格納したROM等を用いて最初のブロック暗号の鍵k
v =kkを演算し出力する。
間の暗号通信の手順を述べる。 (加入者Aの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
7ステップ行い、v=1として疑似乱数生成器1(2乗
型)はbv =b 1 を疑似乱数7として出力する。演算器
12はb1 と初期値x0 から、ある規則によるテーブル
を格納したROM等を用いて最初のブロック暗号の鍵k
v =kkを演算し出力する。
【0065】(2)kv をDES暗号の鍵として設定
し、あらかじめ決められた数の平文ブロックの暗号化を
行い、暗号化が終了したブロックからBヘ送信する。 (3)疑似乱数生成器1(2乗型)は(v+1)ステッ
プ目の2乗演算を行いbv+1 を出力する。演算器12は
bv+1 が入力されると、bv+1 とその時点でのブロック
暗号の鍵kv からある規則によるテーブルを格納したR
OM等を用いて次のブロック暗号の鍵を演算し出力す
る。
し、あらかじめ決められた数の平文ブロックの暗号化を
行い、暗号化が終了したブロックからBヘ送信する。 (3)疑似乱数生成器1(2乗型)は(v+1)ステッ
プ目の2乗演算を行いbv+1 を出力する。演算器12は
bv+1 が入力されると、bv+1 とその時点でのブロック
暗号の鍵kv からある規則によるテーブルを格納したR
OM等を用いて次のブロック暗号の鍵を演算し出力す
る。
【0066】(4)v=v+1とし、手順(2),
(3)の処理を暗号化が終了するまで繰り返す。 (加入者Bの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
1ステップ行い、v=1として疑似乱数生成器1(2乗
型)はbv =b 1 を疑似乱数7として出力する。演算器
12はb1 と初期値x0 から、ある規則によるテーブル
を格納したROM等を用いて最初のブロック暗号の鍵k
v =kkを演算し出力する。
(3)の処理を暗号化が終了するまで繰り返す。 (加入者Bの手順) (1)疑似乱数生成器1(2乗型)に初期値x0 (1<
x0 <N−1)としてあらかじめ配布され送信先Bと共
有している秘密の鍵KABを与え、式(1)の2乗演算を
1ステップ行い、v=1として疑似乱数生成器1(2乗
型)はbv =b 1 を疑似乱数7として出力する。演算器
12はb1 と初期値x0 から、ある規則によるテーブル
を格納したROM等を用いて最初のブロック暗号の鍵k
v =kkを演算し出力する。
【0067】(2)kv をDES暗号の鍵として設定
し、Aからの受信文に対し、あらかじめ決められた数の
暗号文ブロックの復号を行う。 (3)疑似乱数生成器1(2乗型)は(v+1)ステッ
プ目の2乗演算を行いbv+1 を出力する。演算器12は
bv+1 が入力されると、bv+1 とその時点でのブロック
暗号の鍵kv からある規則によるテーブルを格納したR
OM等を用いて次のブロック暗号の鍵を演算し出力す
る。
し、Aからの受信文に対し、あらかじめ決められた数の
暗号文ブロックの復号を行う。 (3)疑似乱数生成器1(2乗型)は(v+1)ステッ
プ目の2乗演算を行いbv+1 を出力する。演算器12は
bv+1 が入力されると、bv+1 とその時点でのブロック
暗号の鍵kv からある規則によるテーブルを格納したR
OM等を用いて次のブロック暗号の鍵を演算し出力す
る。
【0068】(4)v=v+1とし、手順(2),
(3)の処理を暗号化が終了するまで繰り返す。 以上の手順により、暗号学的に安全な疑似乱数の生成に
必要な演算が終了する毎に、ブロック暗号の鍵を更新す
ることができ、鍵の更新の周期を短くして安全性を向上
させることができる。
(3)の処理を暗号化が終了するまで繰り返す。 以上の手順により、暗号学的に安全な疑似乱数の生成に
必要な演算が終了する毎に、ブロック暗号の鍵を更新す
ることができ、鍵の更新の周期を短くして安全性を向上
させることができる。
【0069】<演算器12の構成例2>上記手順(3)
において、演算器12はbv+1 が入力されると、bv+1
とその時点でのブロック暗号の鍵kv からある規則によ
るテーブルを格納したROM等を用いて、次のブロック
暗号の鍵を演算し出力する処理を行う。この処理は図7
に示すようなある規則を格納したROM12−4と、そ
のROM12−4の出力のビット毎の排他的論理和をと
る加算器12−5とからなる演算器12によって実現で
きる。図7では、kv (12−3)をkv =cv1,
cv2,…,cv7と表わし、それぞれのcvi(i=1,
2,…,7)は8ビットである。図7で示されるROM
1 ,ROM2 ,…,ROM7 の7個のROM12−4
は、それぞれ17ビットアドレスで56ビットを出力す
る。それぞれのROMi (i=1,2,…,7)からの
56ビットずつの出力は、加算器12−5でビット毎の
排他的論理和をとられ、その出力が次のDES暗号の鍵
kv+1 として用いられる。ROMi (i=1,2,…,
7)の17ビットアドレスには、cvi(i=1,2,
…,7)の8ビットとbv+1 の9ビットが入力される。
これによって、疑似乱数が出力される毎にブロック暗号
の鍵全体を更新することができる。
において、演算器12はbv+1 が入力されると、bv+1
とその時点でのブロック暗号の鍵kv からある規則によ
るテーブルを格納したROM等を用いて、次のブロック
暗号の鍵を演算し出力する処理を行う。この処理は図7
に示すようなある規則を格納したROM12−4と、そ
のROM12−4の出力のビット毎の排他的論理和をと
る加算器12−5とからなる演算器12によって実現で
きる。図7では、kv (12−3)をkv =cv1,
cv2,…,cv7と表わし、それぞれのcvi(i=1,
2,…,7)は8ビットである。図7で示されるROM
1 ,ROM2 ,…,ROM7 の7個のROM12−4
は、それぞれ17ビットアドレスで56ビットを出力す
る。それぞれのROMi (i=1,2,…,7)からの
56ビットずつの出力は、加算器12−5でビット毎の
排他的論理和をとられ、その出力が次のDES暗号の鍵
kv+1 として用いられる。ROMi (i=1,2,…,
7)の17ビットアドレスには、cvi(i=1,2,
…,7)の8ビットとbv+1 の9ビットが入力される。
これによって、疑似乱数が出力される毎にブロック暗号
の鍵全体を更新することができる。
【0070】ここで、図7では、kv をそれぞれ8ビッ
トである7個のcvi(i=1,2,…,7)に分割した
が、分割は何個にしてもよい。例えば、kv をそれぞれ
4ビットである14個のcvi(i=1,2,…,14)
に分割した場合には、必要なROMはROM1 ,ROM
2 ,…,ROM14の14個になり、それぞれ13ビット
アドレス(cvi(i=1,2,…,14)の4ビットと
bv+1 の9ビット)で56ビットを出力する。ぞレぞレ
のROMi (i=1,2,…,14)カラーの56ビッ
トずつの出力は、加算器12−5でビット毎の排他論理
和をとられ、その出力が次のDES暗号の鍵として用い
られる。
トである7個のcvi(i=1,2,…,7)に分割した
が、分割は何個にしてもよい。例えば、kv をそれぞれ
4ビットである14個のcvi(i=1,2,…,14)
に分割した場合には、必要なROMはROM1 ,ROM
2 ,…,ROM14の14個になり、それぞれ13ビット
アドレス(cvi(i=1,2,…,14)の4ビットと
bv+1 の9ビット)で56ビットを出力する。ぞレぞレ
のROMi (i=1,2,…,14)カラーの56ビッ
トずつの出力は、加算器12−5でビット毎の排他論理
和をとられ、その出力が次のDES暗号の鍵として用い
られる。
【0071】[実施の形態2]本実施の形態において
も、図3に示され実施の形態1で説明したように、あら
かじめネットワークの加入者間で固有かつ秘密の鍵を共
有している。前記のように、A,B,C,…,Nはその
ネットワークの加入者で、KABは加入者A−B間で共有
している鍵、KACは加入者A−C間で共有している鍵
(以下同様)である。ここで、鍵の共有は、あらかじめ
ネットワークの管理者等が設定しておくことによって
も、文献4の72〜73,97〜104頁に示されるよ
うな公知の鍵共有方式によっても実現できる。
も、図3に示され実施の形態1で説明したように、あら
かじめネットワークの加入者間で固有かつ秘密の鍵を共
有している。前記のように、A,B,C,…,Nはその
ネットワークの加入者で、KABは加入者A−B間で共有
している鍵、KACは加入者A−C間で共有している鍵
(以下同様)である。ここで、鍵の共有は、あらかじめ
ネットワークの管理者等が設定しておくことによって
も、文献4の72〜73,97〜104頁に示されるよ
うな公知の鍵共有方式によっても実現できる。
【0072】さらにそれぞれの加入者は、図13に示す
ように、ネットワークで決められたアルゴリズムに従っ
て暗号化(及び復号)を行う暗号器3と、ネットワーク
で決められたアルゴリズムに従い暗号学的な安全な疑似
乱数を生成する疑似乱数生成器11と、疑似乱数生成器
11から出力された疑似乱数17を暗号器3の鍵列8に
変換する演算器2とを備えた通信用端末160をもち、
疑似乱数生成器11の内部変数の値を保持する保持手段
9を持つ。
ように、ネットワークで決められたアルゴリズムに従っ
て暗号化(及び復号)を行う暗号器3と、ネットワーク
で決められたアルゴリズムに従い暗号学的な安全な疑似
乱数を生成する疑似乱数生成器11と、疑似乱数生成器
11から出力された疑似乱数17を暗号器3の鍵列8に
変換する演算器2とを備えた通信用端末160をもち、
疑似乱数生成器11の内部変数の値を保持する保持手段
9を持つ。
【0073】疑似乱数生成器11は、実施の形態1の図
9に示される構成と同様に図14の構成になっており、
その動作は図9で説明したのと同じである。ただし、本
実施の形態では、疑似乱数生成器11からその内部変数
xi+1 の値4’を読み出すことができるようになってお
り、またその読み出した内部変数の値を保持する保持手
段9を持つ点が異なっている。
9に示される構成と同様に図14の構成になっており、
その動作は図9で説明したのと同じである。ただし、本
実施の形態では、疑似乱数生成器11からその内部変数
xi+1 の値4’を読み出すことができるようになってお
り、またその読み出した内部変数の値を保持する保持手
段9を持つ点が異なっている。
【0074】本実施の形態による暗号通信の例を示す図
15,図18において、Muv(u=1,2,…t;v=
1,2,…,s)は平文ブロック列5を示し、ku(u=
1,2,…t)はブロック暗号の鍵列8を示し、ku(M
uv)(u=1,2,…t;v=1,2,…,s)は平文ブ
ロック列Muvを暗号鍵列ku(u=1,2,…t)はそれ
ぞれ、ブロック暗号のアルゴリズムで定められた長さの
ビット列である。
15,図18において、Muv(u=1,2,…t;v=
1,2,…,s)は平文ブロック列5を示し、ku(u=
1,2,…t)はブロック暗号の鍵列8を示し、ku(M
uv)(u=1,2,…t;v=1,2,…,s)は平文ブ
ロック列Muvを暗号鍵列ku(u=1,2,…t)はそれ
ぞれ、ブロック暗号のアルゴリズムで定められた長さの
ビット列である。
【0075】本実施の形態による加入者AからBへの暗
号通信は以下の手順で行う。 <本実施の形態の暗号通信例3> (1)Aはあらかじめ送信先Bと共有している秘密の鍵
KABを疑似乱数生成器11の初期値x0 として設定し、
疑似乱数生成器11を動作させて暗号学的に安全な疑似
乱数系列17(CRAB)を生成する。さらに演算器2に
よりCRABをブロック暗号の鍵列kk ,k2 ,…,kt
に変換する。それらをブロック暗号の鍵として随時更新
しつつ用いて、ブロック暗号器3により平文ブロック列
5(通信文Muv;u=1,2,…t;v=1,2,…,
s)を暗号化し、その暗号化した暗号文ブロック列6
(ku(Muv);u=1,2,…t;v=1,2,…,
s)をBに送信する。
号通信は以下の手順で行う。 <本実施の形態の暗号通信例3> (1)Aはあらかじめ送信先Bと共有している秘密の鍵
KABを疑似乱数生成器11の初期値x0 として設定し、
疑似乱数生成器11を動作させて暗号学的に安全な疑似
乱数系列17(CRAB)を生成する。さらに演算器2に
よりCRABをブロック暗号の鍵列kk ,k2 ,…,kt
に変換する。それらをブロック暗号の鍵として随時更新
しつつ用いて、ブロック暗号器3により平文ブロック列
5(通信文Muv;u=1,2,…t;v=1,2,…,
s)を暗号化し、その暗号化した暗号文ブロック列6
(ku(Muv);u=1,2,…t;v=1,2,…,
s)をBに送信する。
【0076】(2)Bは、あらかじめ送信元Aと共有し
ている秘密の鍵KABを疑似乱数生成器11の初期値x0
として設定し、疑似乱数生成器11を動作させて暗号学
的に安全な疑似乱数系列CRABを生成する。さらに、演
算器2によりCRABをブロック暗号の鍵列kk ,k2 ,
…,kt に変換する。それらをブロック暗号の鍵として
随時更新しつつ用いて、ブロック暗号器3によりAから
の受信文ブロック列6(暗号文ku(Muv);u=1,
2,…t;v=1,2,…,s)を復号し、平文ブロッ
ク列5(通信文Muv;u=1,2,…t;v=1,2,
…,s)5を得る。
ている秘密の鍵KABを疑似乱数生成器11の初期値x0
として設定し、疑似乱数生成器11を動作させて暗号学
的に安全な疑似乱数系列CRABを生成する。さらに、演
算器2によりCRABをブロック暗号の鍵列kk ,k2 ,
…,kt に変換する。それらをブロック暗号の鍵として
随時更新しつつ用いて、ブロック暗号器3によりAから
の受信文ブロック列6(暗号文ku(Muv);u=1,
2,…t;v=1,2,…,s)を復号し、平文ブロッ
ク列5(通信文Muv;u=1,2,…t;v=1,2,
…,s)5を得る。
【0077】(3)Aは、通信文の暗号化が終了した時
の疑似乱数生成器11の内部変数x i+1 の値4’を、次
回Bと暗号通信するための新しい鍵(疑似乱数生成器の
ための初期値)KABとして保持手段9に秘密に保持す
る。 (4)Bは、通信文の復号が終了した時の疑似乱数生成
器11の内部変数xi+ 1 の値4’を、次回Aと暗号通信
するための新しい鍵(疑似乱数生成器のための初期値)
KABとして保持手段9に秘密に保持する。
の疑似乱数生成器11の内部変数x i+1 の値4’を、次
回Bと暗号通信するための新しい鍵(疑似乱数生成器の
ための初期値)KABとして保持手段9に秘密に保持す
る。 (4)Bは、通信文の復号が終了した時の疑似乱数生成
器11の内部変数xi+ 1 の値4’を、次回Aと暗号通信
するための新しい鍵(疑似乱数生成器のための初期値)
KABとして保持手段9に秘密に保持する。
【0078】この手順により、同じ通信相手と通信する
場合でも、通信毎に疑似乱数生成器11に入力する初期
値4が変るので、疑似乱数生成器11から初期値として
同じ鍵系列が生成されることはなく、同じ相手への暗号
文でも暗号通信毎に異なる鍵系列で暗号化されたものに
なり、ブロック暗号の安全性を向上させることができ
る。
場合でも、通信毎に疑似乱数生成器11に入力する初期
値4が変るので、疑似乱数生成器11から初期値として
同じ鍵系列が生成されることはなく、同じ相手への暗号
文でも暗号通信毎に異なる鍵系列で暗号化されたものに
なり、ブロック暗号の安全性を向上させることができ
る。
【0079】<疑似乱数生成器11の構成例>疑似乱数
生成器11は、2乗型乱数や、RSA暗号,離散対策,
逆数暗号を用いたアルゴリズムにより暗号学的に安全な
疑似乱数を生成するが、2乗型疑似乱数系列を生成する
疑似乱数生成器11の例を図16に示す。この疑似乱数
生成器11では、図14においてf(xi )で示される
関数として、201で示すように、入力を2乗してNに
対して剰余をとる演算部が用いられる。さらに図14に
おいてg(xi+1 )で示される関数として、202で示
すように、入力の下位jビット(bj)をとる演算が用
いられる。図16においても、その内部変数xi+1を読
み出すことができる。
生成器11は、2乗型乱数や、RSA暗号,離散対策,
逆数暗号を用いたアルゴリズムにより暗号学的に安全な
疑似乱数を生成するが、2乗型疑似乱数系列を生成する
疑似乱数生成器11の例を図16に示す。この疑似乱数
生成器11では、図14においてf(xi )で示される
関数として、201で示すように、入力を2乗してNに
対して剰余をとる演算部が用いられる。さらに図14に
おいてg(xi+1 )で示される関数として、202で示
すように、入力の下位jビット(bj)をとる演算が用
いられる。図16においても、その内部変数xi+1を読
み出すことができる。
【0080】次に、図16に示される疑似乱数生成器1
1を用いた加入者A,B間の暗号通信について図17を
用いて説明する。いま、例としてnを512ビットと
し、ブロック暗号の鍵を54ビットとする。またA,B
間には、あらかじめ鍵KAB(疑似乱数生成器11の初期
値;1<K AB<N−1)が秘密に共有されている。nが
512ビットならば、1回の2乗演算で得られる疑似乱
数系列bi (i=1,2,…)は、それぞれ9ビット程
度の疑似乱数系列である。ここでは簡単のために9ビッ
トで計算する。さらに、1つの鍵で暗号化するブロック
の数sを“10”とし、暗号化したい通信文が“15”
の平文ブロックに分割できたとする。この場合、暗号鍵
はk1 とk2 の2つが必要となる。k1 とk2 の2つの
暗号鍵は合わせて108ビットであるので、2乗演算を
12回行う必要がある(12(回)×9(ビット/回)
=108(ビット))。この場合には、暗号化終了時の
疑似乱数生成器11の内部変数はx12(=x0*2*12m
odN)である。以下、a*bはaのb乗(ab)を意
味する。
1を用いた加入者A,B間の暗号通信について図17を
用いて説明する。いま、例としてnを512ビットと
し、ブロック暗号の鍵を54ビットとする。またA,B
間には、あらかじめ鍵KAB(疑似乱数生成器11の初期
値;1<K AB<N−1)が秘密に共有されている。nが
512ビットならば、1回の2乗演算で得られる疑似乱
数系列bi (i=1,2,…)は、それぞれ9ビット程
度の疑似乱数系列である。ここでは簡単のために9ビッ
トで計算する。さらに、1つの鍵で暗号化するブロック
の数sを“10”とし、暗号化したい通信文が“15”
の平文ブロックに分割できたとする。この場合、暗号鍵
はk1 とk2 の2つが必要となる。k1 とk2 の2つの
暗号鍵は合わせて108ビットであるので、2乗演算を
12回行う必要がある(12(回)×9(ビット/回)
=108(ビット))。この場合には、暗号化終了時の
疑似乱数生成器11の内部変数はx12(=x0*2*12m
odN)である。以下、a*bはaのb乗(ab)を意
味する。
【0081】<本実施の形態の暗号通信例4> (1)Aはあらかじめ送信先Bと共有している秘密の鍵
KABを疑似乱数生成器11の初期値x0 として設定し、
暗号学的に安全な疑似乱数系列7(b1 ,b2,…,b
12)を生成する。nが512ビットならば、1回の2乗
演算で得られる疑似乱数系列bi (i=1,2,…,1
2)は、それぞれ9ビットの疑似乱数系列である。得ら
れた疑似乱数系列b1 ,b2 ,…,b12を演算器2によ
り、前からブロック暗号の鍵のビット長(54ビット)
ずつに区切り(それをk1 ,k2と表わす)、順にブロッ
ク暗号の鍵8として用いる。ブロック暗号器3では、最
初の10個の平文ブロックは鍵k1 で暗号化し、次の5
個の平文(通信文)ブロックは鍵k2 で暗号化し、その
暗号化した暗号文ブロック列6をBに送信する。
KABを疑似乱数生成器11の初期値x0 として設定し、
暗号学的に安全な疑似乱数系列7(b1 ,b2,…,b
12)を生成する。nが512ビットならば、1回の2乗
演算で得られる疑似乱数系列bi (i=1,2,…,1
2)は、それぞれ9ビットの疑似乱数系列である。得ら
れた疑似乱数系列b1 ,b2 ,…,b12を演算器2によ
り、前からブロック暗号の鍵のビット長(54ビット)
ずつに区切り(それをk1 ,k2と表わす)、順にブロッ
ク暗号の鍵8として用いる。ブロック暗号器3では、最
初の10個の平文ブロックは鍵k1 で暗号化し、次の5
個の平文(通信文)ブロックは鍵k2 で暗号化し、その
暗号化した暗号文ブロック列6をBに送信する。
【0082】(2)Bは、あらかじめ配布され送信元A
と共有している秘密の鍵KABを疑似乱数生成器11の初
期値x0 として設定し、暗号学的に安全な疑似乱数系列
b1,b2 ,…,b12を生成する。nが512ビットな
らば、1回の2乗演算で得られる疑似乱数系列bi (i
=1,2,…,12)は、それぞれ9ビットの疑似乱数
系列である。得られた疑似乱数系列b1 ,b2 ,…,b
12を演算器2により、前からブロック暗号の鍵のビット
長(54ビット)ずつに区切り(それをk1 ,k2 と表
わす)、順にブロック暗号の鍵として用いる。ブロック
暗号器3では、Aからの最初の10個の暗号文ブロック
は鍵k1 で復号し、次の5個の暗号文ブロックは鍵k2
で復号し、平文ブロック列(通信文)を得る。
と共有している秘密の鍵KABを疑似乱数生成器11の初
期値x0 として設定し、暗号学的に安全な疑似乱数系列
b1,b2 ,…,b12を生成する。nが512ビットな
らば、1回の2乗演算で得られる疑似乱数系列bi (i
=1,2,…,12)は、それぞれ9ビットの疑似乱数
系列である。得られた疑似乱数系列b1 ,b2 ,…,b
12を演算器2により、前からブロック暗号の鍵のビット
長(54ビット)ずつに区切り(それをk1 ,k2 と表
わす)、順にブロック暗号の鍵として用いる。ブロック
暗号器3では、Aからの最初の10個の暗号文ブロック
は鍵k1 で復号し、次の5個の暗号文ブロックは鍵k2
で復号し、平文ブロック列(通信文)を得る。
【0083】(3)Aは、最後の平文ブロック列5の暗
号化が終了した時の疑似乱数生成器11の内部変数の値
x12(=x0*2*12modN)を読み出し、次回Bと暗号
通信するための新しい鍵(疑似乱数生成器11のための
初期値)KABとして保持手段9に秘密に保持する。 (4)Bは、通信文の暗号化が終了した時の疑似乱数生
成器11の内部変数の値x12(=x0*2*12modN)を
読み出し、次回Aと暗号通信するための新しい鍵(疑似
乱数生成器11のための初期値)KABとして保持手段9
に秘密に保持する。
号化が終了した時の疑似乱数生成器11の内部変数の値
x12(=x0*2*12modN)を読み出し、次回Bと暗号
通信するための新しい鍵(疑似乱数生成器11のための
初期値)KABとして保持手段9に秘密に保持する。 (4)Bは、通信文の暗号化が終了した時の疑似乱数生
成器11の内部変数の値x12(=x0*2*12modN)を
読み出し、次回Aと暗号通信するための新しい鍵(疑似
乱数生成器11のための初期値)KABとして保持手段9
に秘密に保持する。
【0084】以上詳細に述べたように、本実施の形態の
手順により、同じ通信相手と通信する場合にも、通信毎
に疑似乱数生成器11に入力する初期値が変わるので、
疑似乱数生成器11から同じ鍵系列が生成されることは
なく、同じ相手への暗号文でも暗号通信毎に異なる鍵系
列で暗号化されたものになり、ブロック暗号の安全性を
向上させることができる。また、本実施の形態により、
その暗号通信毎に異なる鍵は2乗型疑似乱数を用いた暗
号学的に安全な疑似乱数であり、暗号鍵の更新のための
通信は必要ないことがわかる。
手順により、同じ通信相手と通信する場合にも、通信毎
に疑似乱数生成器11に入力する初期値が変わるので、
疑似乱数生成器11から同じ鍵系列が生成されることは
なく、同じ相手への暗号文でも暗号通信毎に異なる鍵系
列で暗号化されたものになり、ブロック暗号の安全性を
向上させることができる。また、本実施の形態により、
その暗号通信毎に異なる鍵は2乗型疑似乱数を用いた暗
号学的に安全な疑似乱数であり、暗号鍵の更新のための
通信は必要ないことがわかる。
【0085】<本実施の形態の暗号通信例5>本例で
は、図18に示すように、ブロック暗号のアルゴリズム
としてDES暗号を、暗号学的に安全な疑似乱数を生成
するアルゴリズムとして上述の2条型疑似乱数を用いた
場合について述べる。2乗型疑似乱数を十分安全なもの
とするために、2乗演算(式(1))の法Nのビット数
nを512ビットとする。また、図18に示すように、
疑似乱数生成器11により生成された疑似乱数CRABを
演算器2によりDES暗号鍵列k1 ,k2 ,…に変換す
るが、本実施の形態での演算器2ではCRABを前から順
にDES暗号の鍵8のビット長(56ビット)ずつに区
切り、それをk1 ,k2 ,…(ku:u=1,2,…)
はそれぞれ56ビット)とする処理を行う。また、平文
ブロック列5のMu1からMusまでのs個のブロックは同
じ鍵ku を用いDES暗号器30で暗号化する。さら
に、各加入者間毎にあらかじめ秘密に共有されている鍵
(疑似乱数生成器11の初期値)KAB,KAC,…は、1
<KAB,KAC,…<N−1とする。
は、図18に示すように、ブロック暗号のアルゴリズム
としてDES暗号を、暗号学的に安全な疑似乱数を生成
するアルゴリズムとして上述の2条型疑似乱数を用いた
場合について述べる。2乗型疑似乱数を十分安全なもの
とするために、2乗演算(式(1))の法Nのビット数
nを512ビットとする。また、図18に示すように、
疑似乱数生成器11により生成された疑似乱数CRABを
演算器2によりDES暗号鍵列k1 ,k2 ,…に変換す
るが、本実施の形態での演算器2ではCRABを前から順
にDES暗号の鍵8のビット長(56ビット)ずつに区
切り、それをk1 ,k2 ,…(ku:u=1,2,…)
はそれぞれ56ビット)とする処理を行う。また、平文
ブロック列5のMu1からMusまでのs個のブロックは同
じ鍵ku を用いDES暗号器30で暗号化する。さら
に、各加入者間毎にあらかじめ秘密に共有されている鍵
(疑似乱数生成器11の初期値)KAB,KAC,…は、1
<KAB,KAC,…<N−1とする。
【0086】本実施の形態による加入者AからBへの暗
号通信は以下の手順で行う。 (1)Aはあらかじめ配布され送信先Bと共有している
秘密の鍵KABを疑似乱数生成器11の初期値x0 として
設定し、疑似乱数生成器11を動作させ、暗号学的に安
全な疑似乱数系列7(CRAB=b1 ,b2 ,…)を生成
する。nが512ビットならば、1回の2乗演算で得ら
れる疑似乱数系列bi (i=1,2,…)は、それぞれ
9ビットの疑似乱数系列である。得られた疑似乱数系列
CRABを演算器2により、前からDES暗号の鍵のビッ
ト長(56ビット)ずつに区切り(それをk1 ,k2 ,
…と表わす)、順にブロック暗号の鍵8として用いる。
DES暗号器30では、最初のs個の平文ブロックは鍵
k1 で暗号化し、次のs個の平文ブロック鍵k2 で暗号
化するというように最後の平文ブロックまで暗号化し、
その暗号化した暗号文6をBに送信する。
号通信は以下の手順で行う。 (1)Aはあらかじめ配布され送信先Bと共有している
秘密の鍵KABを疑似乱数生成器11の初期値x0 として
設定し、疑似乱数生成器11を動作させ、暗号学的に安
全な疑似乱数系列7(CRAB=b1 ,b2 ,…)を生成
する。nが512ビットならば、1回の2乗演算で得ら
れる疑似乱数系列bi (i=1,2,…)は、それぞれ
9ビットの疑似乱数系列である。得られた疑似乱数系列
CRABを演算器2により、前からDES暗号の鍵のビッ
ト長(56ビット)ずつに区切り(それをk1 ,k2 ,
…と表わす)、順にブロック暗号の鍵8として用いる。
DES暗号器30では、最初のs個の平文ブロックは鍵
k1 で暗号化し、次のs個の平文ブロック鍵k2 で暗号
化するというように最後の平文ブロックまで暗号化し、
その暗号化した暗号文6をBに送信する。
【0087】(2)Bは、あらかじめ配布され送信元A
と共有している秘密の鍵KABを疑似乱数生成器11の初
期値x0 として設定し、疑似乱数生成器11を動作させ
暗号学的に安全な疑似乱数系列CRAB=b1 ,b2 ,…
を生成する。nが512ビットならば、1回の2乗演算
で得られる疑似乱数系列bi (i=1,2,…)は、そ
れぞれ9ビットの疑似乱数系列である。得られた疑似乱
数系列CRABを演算器2により、前からDES暗号の鍵
のビット長(56ビット)ずつに区切り(それをk1 ,
k2 と表わす)、順にDES暗号の鍵8として用いる。
DES暗号器30では、Aからの最初のs個の暗号文ブ
ロックは鍵k1 で復号し、次のs個の暗号文ブロック鍵
k2 で復号するというように最後の暗号文ブロックまで
復号し、通信文を得る。
と共有している秘密の鍵KABを疑似乱数生成器11の初
期値x0 として設定し、疑似乱数生成器11を動作させ
暗号学的に安全な疑似乱数系列CRAB=b1 ,b2 ,…
を生成する。nが512ビットならば、1回の2乗演算
で得られる疑似乱数系列bi (i=1,2,…)は、そ
れぞれ9ビットの疑似乱数系列である。得られた疑似乱
数系列CRABを演算器2により、前からDES暗号の鍵
のビット長(56ビット)ずつに区切り(それをk1 ,
k2 と表わす)、順にDES暗号の鍵8として用いる。
DES暗号器30では、Aからの最初のs個の暗号文ブ
ロックは鍵k1 で復号し、次のs個の暗号文ブロック鍵
k2 で復号するというように最後の暗号文ブロックまで
復号し、通信文を得る。
【0088】(3)Aは、最後の平文ブロックの暗号化
が終了した時の疑似乱数生成器11の内部変数の値x
i+1(=x0*2*(i+1)mod N)の値を読み出し、次回B
と暗号通信するための新しい鍵(疑似乱数生成器のため
の初期値4’)KABとして保持手段9に秘密に保持す
る。例えば、sを“10”とし、暗号化したい通信文が
“15”の平文ブロックに分割できた場合には、暗号鍵
はk1 とk2 の2つが必要となる。k1 とk2 の暗号鍵
は合わせて112ビットであるので、2乗演算を13回
行う必要がある(13(回)×9(ビット/回)=11
7(ビット)>112(ビット))。この場合には、暗
号化終了時の疑似乱数生成器11の内部変数の値はx13
(=x0*2*13mod N)であり、それを次回Bと暗号通
信するための新しい鍵KABとして保持手段9に秘密に保
持する。
が終了した時の疑似乱数生成器11の内部変数の値x
i+1(=x0*2*(i+1)mod N)の値を読み出し、次回B
と暗号通信するための新しい鍵(疑似乱数生成器のため
の初期値4’)KABとして保持手段9に秘密に保持す
る。例えば、sを“10”とし、暗号化したい通信文が
“15”の平文ブロックに分割できた場合には、暗号鍵
はk1 とk2 の2つが必要となる。k1 とk2 の暗号鍵
は合わせて112ビットであるので、2乗演算を13回
行う必要がある(13(回)×9(ビット/回)=11
7(ビット)>112(ビット))。この場合には、暗
号化終了時の疑似乱数生成器11の内部変数の値はx13
(=x0*2*13mod N)であり、それを次回Bと暗号通
信するための新しい鍵KABとして保持手段9に秘密に保
持する。
【0089】(4)Bは、通信文の暗号化が終了した時
の疑似乱数生成器11の内部変数の値xi+1(=x0*2*
(i+1)mod N)の値を読み出し、次回Aと暗号通信する
ための新しい鍵(疑似乱数成績11のための初期値
4’)KABとして保持手段9に秘密に保持する。この手
順により、同じ通信相手と通信する場合にも、疑似乱数
生成器11から同じ鍵系列が生成されることはなく、同
じ相手への暗号文でも暗号通信毎に異なる鍵系列で暗号
化されたものになり、ブロック暗号の安全性を向上させ
ることができる。
の疑似乱数生成器11の内部変数の値xi+1(=x0*2*
(i+1)mod N)の値を読み出し、次回Aと暗号通信する
ための新しい鍵(疑似乱数成績11のための初期値
4’)KABとして保持手段9に秘密に保持する。この手
順により、同じ通信相手と通信する場合にも、疑似乱数
生成器11から同じ鍵系列が生成されることはなく、同
じ相手への暗号文でも暗号通信毎に異なる鍵系列で暗号
化されたものになり、ブロック暗号の安全性を向上させ
ることができる。
【0090】前記手順の(1),(2)において、得ら
れた疑似乱数系列CRAB=b1 ,b 2 ,…を、演算器2
により前からDES暗号の鍵のビット長(56ビット)
ずつに区切り(それをk1 ,k2 と表わす)、順にDE
S暗号の鍵として用いるとしたが、演算器2によりCR
ABをDES暗号の鍵列に変換するための手法は、暗号通
信を行なうネットワークで共通なものであればどういう
手法でも良い。また、暗号通信を行なうネットワーク全
体で共通でなくても送受信者間で共通であれば良い。
れた疑似乱数系列CRAB=b1 ,b 2 ,…を、演算器2
により前からDES暗号の鍵のビット長(56ビット)
ずつに区切り(それをk1 ,k2 と表わす)、順にDE
S暗号の鍵として用いるとしたが、演算器2によりCR
ABをDES暗号の鍵列に変換するための手法は、暗号通
信を行なうネットワークで共通なものであればどういう
手法でも良い。また、暗号通信を行なうネットワーク全
体で共通でなくても送受信者間で共通であれば良い。
【0091】また、手順(3)において例として示した
ように、疑似乱数生成器11で生成したビット数(11
7ビット)が実際に暗号鍵k1 ,k2 として使用した疑
似乱数のビット数(112ビット)より多く、生成した
疑似乱数が余ることが考えられる。余った疑似乱数の処
理は、ネットワークで共通であればどんな処理を施して
も良い。例えば、余った疑似乱数を廃棄する手法があ
る。或は、廃棄せずに秘密に保管しておき、次回の同じ
相手との暗号通信の際に必要となる疑似乱数の一部とし
て使用することもできる。また、2乗演算の法Nは51
2ビットとしたが、暗号学的に安全であれば何ビットで
もよい。また、手順(3),(4)において新しい鍵K
ABは暗号化が終了してからさらにh回(hは整数)2乗
演算を行った後の内部変数xi+1+h を、次回暗号通信を
行なうための新しい鍵KABとしてもよい。
ように、疑似乱数生成器11で生成したビット数(11
7ビット)が実際に暗号鍵k1 ,k2 として使用した疑
似乱数のビット数(112ビット)より多く、生成した
疑似乱数が余ることが考えられる。余った疑似乱数の処
理は、ネットワークで共通であればどんな処理を施して
も良い。例えば、余った疑似乱数を廃棄する手法があ
る。或は、廃棄せずに秘密に保管しておき、次回の同じ
相手との暗号通信の際に必要となる疑似乱数の一部とし
て使用することもできる。また、2乗演算の法Nは51
2ビットとしたが、暗号学的に安全であれば何ビットで
もよい。また、手順(3),(4)において新しい鍵K
ABは暗号化が終了してからさらにh回(hは整数)2乗
演算を行った後の内部変数xi+1+h を、次回暗号通信を
行なうための新しい鍵KABとしてもよい。
【0092】また、本実施の形態では、ブロック暗号と
してDES暗号を用いたが、DES暗号に限らず、共通
鍵暗号であれば何でも用いることができ、例えば、FE
AL暗号を用いることもできる。また、ブロック暗号器
3として1つのDES暗号器30を用いたが、複数のD
ES暗号器を用いたりDES暗号とFEAL暗号を組み
合わせたりしてもよい。さらに暗合学的に安全な疑似乱
数生成のアルゴリズムとして2乗型疑似乱数を用いた
が、暗号学的に安全な疑似乱数生成アルゴリズムであれ
ばどのようなものでも用いることができ、例えば文献4
の86項に示されているように、RSA暗号,離散対
策,逆数暗号を用いたものも本発明の疑似乱数生成のア
ルゴリズムに用いることができる。
してDES暗号を用いたが、DES暗号に限らず、共通
鍵暗号であれば何でも用いることができ、例えば、FE
AL暗号を用いることもできる。また、ブロック暗号器
3として1つのDES暗号器30を用いたが、複数のD
ES暗号器を用いたりDES暗号とFEAL暗号を組み
合わせたりしてもよい。さらに暗合学的に安全な疑似乱
数生成のアルゴリズムとして2乗型疑似乱数を用いた
が、暗号学的に安全な疑似乱数生成アルゴリズムであれ
ばどのようなものでも用いることができ、例えば文献4
の86項に示されているように、RSA暗号,離散対
策,逆数暗号を用いたものも本発明の疑似乱数生成のア
ルゴリズムに用いることができる。
【0093】<実施の形態1と2との組み合わせ例>本
実施の形態では、ブロック暗号の鍵の変更周期を速くす
ることに考慮した場合を示す。前記実施の形態2では、
疑似乱数系列CRAB=b1 ,b2 ,…を演算器2によ
り、前からブロック暗号の鍵のビット長ずつに区切り
(それをk1 ,k 2 ,…と表わす)、順にブロック暗号
の鍵として用いた。しかし、本実施の形態によるCRAB
をDES暗号の鍵列に変換するための手法は、暗号通信
を行なうネットワークで共通なものであればどういう手
法でも良いので、特にブロック暗号の鍵の変更周期を速
くする点を考慮した例を示す。
実施の形態では、ブロック暗号の鍵の変更周期を速くす
ることに考慮した場合を示す。前記実施の形態2では、
疑似乱数系列CRAB=b1 ,b2 ,…を演算器2によ
り、前からブロック暗号の鍵のビット長ずつに区切り
(それをk1 ,k 2 ,…と表わす)、順にブロック暗号
の鍵として用いた。しかし、本実施の形態によるCRAB
をDES暗号の鍵列に変換するための手法は、暗号通信
を行なうネットワークで共通なものであればどういう手
法でも良いので、特にブロック暗号の鍵の変更周期を速
くする点を考慮した例を示す。
【0094】前記実施の形態2の方式では、疑似乱数生
成器11から出力された疑似乱数のビット数が、ブロッ
ク暗号の鍵のビット数に等しくなるまでブロック暗号の
鍵の更新は行わなかった。つまり、疑似乱数生成器11
から各々はjビットの疑似乱数がb1 ,b2 ,…,b
m ,bm+1 ,bm+2 ,…,b2m,b2m+1,b2m+2,…,
b3m,…と出力されていた場合に、ブロック暗号の鍵の
大きさが上と同じm×jビットであるとすると、次の様
になる。
成器11から出力された疑似乱数のビット数が、ブロッ
ク暗号の鍵のビット数に等しくなるまでブロック暗号の
鍵の更新は行わなかった。つまり、疑似乱数生成器11
から各々はjビットの疑似乱数がb1 ,b2 ,…,b
m ,bm+1 ,bm+2 ,…,b2m,b2m+1,b2m+2,…,
b3m,…と出力されていた場合に、ブロック暗号の鍵の
大きさが上と同じm×jビットであるとすると、次の様
になる。
【0095】 k1 =b1 ,b2 ,…,bm k2 =bm+1 ,bm+2 ,…,b2m k3 =b2m+1,b2m+2,…,b3m : それに対し、本実施の形態では、疑似乱数生成器11が
疑似乱数を生成する毎にブロック暗号の鍵の更新を行
う。つまり、疑似乱数生成器11が疑似乱数biを生成
すると、その時点のブロック暗号の鍵kk =bi-m ,b
i-m+1 ,…,bi- 1 に対し、生成時点の最も古い疑似乱
数bi-m を除いて代わりにbi を入れるという処理を演
算器12が行う。この処理により、次のm×jビットの
ブロック暗号の鍵kk+1 を得る。bi を入れる位置は例
えば一番後に付け、全体としてシフトさせたような構成
にする方法がある。その場合、kk+1 =bi-m+1 ,b
i-m+2,…,bi 、kk+2 =bi-m+2 ,bi-m+3 ,…,
bi+1 となる。
疑似乱数を生成する毎にブロック暗号の鍵の更新を行
う。つまり、疑似乱数生成器11が疑似乱数biを生成
すると、その時点のブロック暗号の鍵kk =bi-m ,b
i-m+1 ,…,bi- 1 に対し、生成時点の最も古い疑似乱
数bi-m を除いて代わりにbi を入れるという処理を演
算器12が行う。この処理により、次のm×jビットの
ブロック暗号の鍵kk+1 を得る。bi を入れる位置は例
えば一番後に付け、全体としてシフトさせたような構成
にする方法がある。その場合、kk+1 =bi-m+1 ,b
i-m+2,…,bi 、kk+2 =bi-m+2 ,bi-m+3 ,…,
bi+1 となる。
【0096】つまり、前記説明した従来例に対して本実
施の形態による鍵更新を行うと、 k1 =b1 ,b2 ,…,bm k2 =b2 ,b3 ,…,bm+1 k3 =b3 ,b4 ,…,bm+2 : となる。このことにより、ブロック暗号の鍵の更新周期
を1/mに短くし、ブロック暗号の安全性を向上でき
る。
施の形態による鍵更新を行うと、 k1 =b1 ,b2 ,…,bm k2 =b2 ,b3 ,…,bm+1 k3 =b3 ,b4 ,…,bm+2 : となる。このことにより、ブロック暗号の鍵の更新周期
を1/mに短くし、ブロック暗号の安全性を向上でき
る。
【0097】本実施の形態では、演算器12はbi が入
力されると、その時点のブロック暗号の鍵kk =b
i-m ,bi-m+1 ,bi-m+2 ,…,bi-1 の先頭のjビッ
トbi-mを取り除き、一番後にbi を付け、kk+1 =b
i-m+1 ,bi-m+2 ,…,bi を算出してブロック暗号の
鍵として出力するという処理を行うが、これは新たに得
た疑似乱数bi をブロック暗号の鍵の後ろに付け、jビ
ット文だけブロック暗号の鍵をシフトさせているのと同
じである。よって、この処理を行う演算器12は図19
に示すようなシフトレジスタ12−1を用いて実現でき
る。シリアル入力/パラレル出力のシフトレジスタ12
−1の先頭レジスタから順にブロック暗号の鍵のビット
列を格納しておき、ブロック暗号にはパラレル出力によ
り鍵を入力するとしておく。ブロック暗号の鍵8をkk
=bi-m ,bi-m+1 ,bi-m+2 ,…,bi-1 からkk+1
=bi-m+1 ,bi-m+2 ,…,bi に更新する時には、シ
リアル入力から新たな疑似乱数bi をjシフトさせなが
ら入力する。先頭レジスタからは更新以前の鍵kk の先
頭ビットから取り除かれる。この構成の演算器2によ
り、本実施の形態で示したブロック暗号の鍵の更新が行
える。あるいは、シリアル入力/パラレル出力のシフト
レジスタ12−1をj個用意し、疑似乱数生成器11か
らjビットの疑似乱数bi が出力されると、それぞれの
シフトレジスタ12−1を1回シフトさせてそれぞれの
シフトレジスタ12−1に1ビットずつ入力する構成に
よる演算器12によっても本実施の形態で示したブロッ
ク暗号の鍵8の更新が行える。
力されると、その時点のブロック暗号の鍵kk =b
i-m ,bi-m+1 ,bi-m+2 ,…,bi-1 の先頭のjビッ
トbi-mを取り除き、一番後にbi を付け、kk+1 =b
i-m+1 ,bi-m+2 ,…,bi を算出してブロック暗号の
鍵として出力するという処理を行うが、これは新たに得
た疑似乱数bi をブロック暗号の鍵の後ろに付け、jビ
ット文だけブロック暗号の鍵をシフトさせているのと同
じである。よって、この処理を行う演算器12は図19
に示すようなシフトレジスタ12−1を用いて実現でき
る。シリアル入力/パラレル出力のシフトレジスタ12
−1の先頭レジスタから順にブロック暗号の鍵のビット
列を格納しておき、ブロック暗号にはパラレル出力によ
り鍵を入力するとしておく。ブロック暗号の鍵8をkk
=bi-m ,bi-m+1 ,bi-m+2 ,…,bi-1 からkk+1
=bi-m+1 ,bi-m+2 ,…,bi に更新する時には、シ
リアル入力から新たな疑似乱数bi をjシフトさせなが
ら入力する。先頭レジスタからは更新以前の鍵kk の先
頭ビットから取り除かれる。この構成の演算器2によ
り、本実施の形態で示したブロック暗号の鍵の更新が行
える。あるいは、シリアル入力/パラレル出力のシフト
レジスタ12−1をj個用意し、疑似乱数生成器11か
らjビットの疑似乱数bi が出力されると、それぞれの
シフトレジスタ12−1を1回シフトさせてそれぞれの
シフトレジスタ12−1に1ビットずつ入力する構成に
よる演算器12によっても本実施の形態で示したブロッ
ク暗号の鍵8の更新が行える。
【0098】この様な鍵更新方式を用いた暗号方式にお
いても、通信文の暗号化が終了した時の疑似乱数生成器
11の内部変数の値を次回の同じ相手との暗号通信する
ための新しい鍵(疑似乱数生成器のための初期値)とし
て秘密に保持することにより、暗号通信毎にブロック暗
号の鍵系列を変更することができる。前記実施の形態で
は、ブロック暗号としてDES暗号を用いて説明した
が、DES暗号に限らず、共通鍵暗号であれば何でも用
いることができ、例えば、FEAL暗号を用いることも
できる。また、ブロック暗号器は1つのDES暗号器を
用いたが、複数のDES暗号器を用いたり、DES暗号
とFEAL暗号を組み合わせたりしてもよい。
いても、通信文の暗号化が終了した時の疑似乱数生成器
11の内部変数の値を次回の同じ相手との暗号通信する
ための新しい鍵(疑似乱数生成器のための初期値)とし
て秘密に保持することにより、暗号通信毎にブロック暗
号の鍵系列を変更することができる。前記実施の形態で
は、ブロック暗号としてDES暗号を用いて説明した
が、DES暗号に限らず、共通鍵暗号であれば何でも用
いることができ、例えば、FEAL暗号を用いることも
できる。また、ブロック暗号器は1つのDES暗号器を
用いたが、複数のDES暗号器を用いたり、DES暗号
とFEAL暗号を組み合わせたりしてもよい。
【0099】さらに、暗号学的に安全な疑似乱数生成の
アルゴリズムとして2乗型疑似乱数を用いたが、暗号学
的に安全な疑似乱数生成アルゴリズムであればどのよう
なものでも用いることができ、例えば文献4の86頁に
示されているように、RSA暗号,離散対策,逆数暗号
を用いたものも、本発明の疑似乱数生成のアルゴリズム
に用いることができる。
アルゴリズムとして2乗型疑似乱数を用いたが、暗号学
的に安全な疑似乱数生成アルゴリズムであればどのよう
なものでも用いることができ、例えば文献4の86頁に
示されているように、RSA暗号,離散対策,逆数暗号
を用いたものも、本発明の疑似乱数生成のアルゴリズム
に用いることができる。
【0100】また、2乗演算の法Nのビット数nは51
2ビットを例としたが、暗号学的に安全であれば何ビッ
トでもよい。なお、本発明は、複数の機器から構成され
るシステムに適用しても、1つの機器からなる装置に適
用してもよい。また、本発明の目的は、前述した実施形
態の機能を実現するソフトウェアのプログラムコードを
記録した記憶媒体を、システムあるいは装置に供給し、
そのシステムあるいは装置のコンピュータ(またはCP
UやMPU)が記憶媒体に格納されたプログラムコード
を読出し実行することによっても、達成されることは言
うまでもない。
2ビットを例としたが、暗号学的に安全であれば何ビッ
トでもよい。なお、本発明は、複数の機器から構成され
るシステムに適用しても、1つの機器からなる装置に適
用してもよい。また、本発明の目的は、前述した実施形
態の機能を実現するソフトウェアのプログラムコードを
記録した記憶媒体を、システムあるいは装置に供給し、
そのシステムあるいは装置のコンピュータ(またはCP
UやMPU)が記憶媒体に格納されたプログラムコード
を読出し実行することによっても、達成されることは言
うまでもない。
【0101】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。プログラムコードを供給
するための記憶媒体としては、例えば、フロッピディス
ク,ハードディスク,光ディスク,光磁気ディスク,C
D−ROM,CD−R,磁気テープ,不揮発性のメモリ
カード,ROMなどを用いることができる。
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。プログラムコードを供給
するための記憶媒体としては、例えば、フロッピディス
ク,ハードディスク,光ディスク,光磁気ディスク,C
D−ROM,CD−R,磁気テープ,不揮発性のメモリ
カード,ROMなどを用いることができる。
【0102】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0103】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0104】
【発明の効果】以上説明したように、本発明によれば、
疑似乱数生成器が疑似乱数を生成する毎にブロック暗号
の鍵の更新を行うことにより、ブロック暗号の鍵の更新
周期を短くし、ブロック暗号の安全性を向上できる。ま
た、本発明によれば、暗号学的に安全な疑似乱数系列に
よりブロック暗号の暗号鍵を随時更新する暗号方式に対
して、同じ通信相手への暗号文でも暗号通信毎に異なる
鍵系列で暗号化されたものにし、ブロック暗号の安全性
を向上させることを可能にした。
疑似乱数生成器が疑似乱数を生成する毎にブロック暗号
の鍵の更新を行うことにより、ブロック暗号の鍵の更新
周期を短くし、ブロック暗号の安全性を向上できる。ま
た、本発明によれば、暗号学的に安全な疑似乱数系列に
よりブロック暗号の暗号鍵を随時更新する暗号方式に対
して、同じ通信相手への暗号文でも暗号通信毎に異なる
鍵系列で暗号化されたものにし、ブロック暗号の安全性
を向上させることを可能にした。
【0105】さらに、本発明を用いれば、暗号学的に安
全な疑似乱数に基づいて暗号通信毎の鍵を生成でき、さ
らに、暗号鍵更新のための通信無しで鍵を変更すること
を可能にできる。
全な疑似乱数に基づいて暗号通信毎の鍵を生成でき、さ
らに、暗号鍵更新のための通信無しで鍵を変更すること
を可能にできる。
【図1】本実施の形態によるブロック暗号の鍵列の例を
示す図である。
示す図である。
【図2】本実施の形態によるブロック暗号鍵の更新の模
式を示す図である。
式を示す図である。
【図3】共通鍵暗号通信ネットワークの例を示す図であ
る。
る。
【図4】本実施の形態による通信端末の例を示す図であ
る。
る。
【図5】シフトレジスタによる本実施の形態の演算器の
構成例を示す図である。
構成例を示す図である。
【図6】レジスタによる本実施の形態の演算器の構成例
を示す図である。
を示す図である。
【図7】ROMによる本実施の形態の演算器の構成例を
示す図である。
示す図である。
【図8】暗号学的に安全な疑似乱数によるブロック暗号
の鍵を随時更新する方式を説明する図である。
の鍵を随時更新する方式を説明する図である。
【図9】疑似乱数生成器の構成例を示す図である。
【図10】ブロック暗号の仕様を示す図である。
【図11】従来例によるブロック暗号鍵の更新の模式を
示す図である。
示す図である。
【図12】従来例によるブロック暗号の鍵列を示す図で
ある。
ある。
【図13】本実施の形態による通信用端末を説明するた
めの図である。
めの図である。
【図14】本実施の形態による疑似乱数生成器の例を示
す図である。
す図である。
【図15】本実施の形態による暗号通信の例を示す図で
ある。
ある。
【図16】2乗型疑似乱数を用いた本実施の形態による
疑似乱数生成器の例を示す図である。
疑似乱数生成器の例を示す図である。
【図17】2乗型疑似乱数生成器を用いた本実施の形態
による暗号通信を説明するための図である。
による暗号通信を説明するための図である。
【図18】2乗型疑似乱数生成器とDES暗号を用いた
本実施の形態による暗号通信を説明するための図であ
る。
本実施の形態による暗号通信を説明するための図であ
る。
【図19】本実施の形態による疑似乱数生成器とシフト
レジスタを用いた演算器との組み合わせの例を示す図で
ある。
レジスタを用いた演算器との組み合わせの例を示す図で
ある。
1,11 疑似乱数生成器 2,12 演算器 2−1 シフトレジスタ 2−2 レジスタ 2−4 ROM 2−5 排他的論理物 3 ブロック暗号器 30 DES暗号器 4,4’ 初期値(KAB) 5 平文ブロック例(Muv) 6 暗号文ブロック列Ku(Muv) 7 疑似乱数(CRAB) 8,18 ブロック暗号の鍵 9 保持手段 150,160 通信用端末
Claims (15)
- 【請求項1】 暗号化及び復号のための鍵列を更新しな
がら暗号通信を行う共通鍵暗号通信方法において、 予め加入者間で固有かつ秘密の共通鍵を共有し、 該共通鍵に基づいて疑似乱数を生成し、 複数の前記疑似乱数に基づいて鍵列を作成し、 前記疑似乱数が生成される毎に、前記鍵列を更新するこ
とを特徴とする共通鍵暗号通信方法。 - 【請求項2】 前記疑似乱数は前記共通鍵を内部変数の
初期値として生成され、暗号通信の終了時における内部
変数を次回の共通鍵として記憶する行程を更に備えるこ
とを特徴とする請求項1記載の共通鍵暗号通信方法。 - 【請求項3】 暗号化及び復号のための共通の鍵列を更
新しながら暗号通信を行う共通鍵暗号通信方法におい
て、 予め加入者間で固有かつ秘密の共通鍵を共有し、 該共通鍵を内部変数の初期値として疑似乱数を生成し、 複数の前記疑似乱数に基づいて鍵列を作成し、 暗号通信の終了時における内部変数を次回の共通鍵とし
て記憶することを特徴とする共通鍵暗号通信方法。 - 【請求項4】 前記疑似乱数発生は、2乗型乱数、RS
A暗号、離散対数、逆数暗号から選ばれることを特徴と
する請求項1乃至3のいずれか1つに記載の共通鍵暗号
通信方法。 - 【請求項5】 暗号化及び復号を行う暗号手段と、 予め加入者間で共有された固有かつ秘密の共通鍵に基づ
いて、暗号学的に安全な疑似乱数系列を生成する疑似乱
数生成手段と、 前記疑似乱数発生器の出力を前記暗号器の鍵列に変換す
る演算手段であって、前記疑似乱数が入力される毎に鍵
列を更新する演算手段とを備えることを特徴とする通信
端末装置。 - 【請求項6】 前記演算手段は、前記疑似乱数発生器の
出力をシフト入力とするシフトレジスタからなることを
特徴とする請求項5記載の通信端末装置。 - 【請求項7】 前記演算手段は、前記疑似乱数発生器の
出力を入力とするアドレッシング可能なレジスタからな
ることを特徴とする請求項5記載の通信端末装置。 - 【請求項8】 前記演算手段は、前記疑似乱数発生器の
出力を入力とする複数のROMと該複数のROMの出力
を論理演算する演算器とからなることを特徴とする請求
項5記載の通信端末装置。 - 【請求項9】 前記疑似乱数生成手段は前記共通鍵を内
部変数の初期値として疑似乱数を発生し、暗号通信の終
了時における内部変数を次回の共通鍵として保持する保
持手段を更に備えることを特徴とする請求項5記載の通
信端末装置。 - 【請求項10】 暗号化及び復号を行う暗号手段と、 予め加入者間で共有された固有かつ秘密の共通鍵を内部
変数の初期値として、暗号学的に安全な疑似乱数系列を
生成する疑似乱数生成手段と、 前記疑似乱数発生器の出力を前記暗号器の鍵列に変換す
る演算手段と、 暗号通信の終了時における内部変数を次回の共通鍵とし
て保持する保持手段とを備えることを特徴とする通信端
末装置。 - 【請求項11】 前記疑似乱数発生は、2乗型乱数、R
SA暗号、離散対数、逆数暗号から選ばれることを特徴
とする請求項5乃至10のいずれか1つに記載の通信端
末装置。 - 【請求項12】 暗号化及び復号を行う暗号手段と、 予め加入者間で共有された固有かつ秘密の共通鍵に基づ
いて、暗号学的に安全な疑似乱数系列を生成する疑似乱
数生成手段と、 前記疑似乱数発生器の出力を前記暗号器の鍵列に変換す
る演算手段であって、前記疑似乱数が入力される毎に鍵
列を更新する演算手段とを備える通信端末を用いて暗号
通信を行うことを特徴とする通信ネットワーク。 - 【請求項13】 前記疑似乱数生成手段は前記共通鍵を
内部変数の初期値として疑似乱数を発生し、前記通信端
末は、暗号通信の終了時における内部変数を次回の共通
鍵として保持する保持手段を更に備えることを特徴とす
る請求項12記載の通信ネットワーク。 - 【請求項14】 暗号化及び復号を行う暗号手段と、 予め加入者間で共有された固有かつ秘密の共通鍵を内部
変数の初期値として、暗号学的に安全な疑似乱数系列を
生成する疑似乱数生成手段と、 前記疑似乱数発生器の出力を前記暗号器の鍵列に変換す
る演算手段と、 暗号通信の終了時における内部変数を次回の共通鍵とし
て保持する保持手段とを備える通信端末を用いて暗号通
信を行うことを特徴とする通信ネットワーク。 - 【請求項15】 前記疑似乱数発生は、2乗型乱数、R
SA暗号、離散対数、逆数暗号から選ばれることを特徴
とする請求項12乃至14のいずれか1つに記載の通信
ネットワーク。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9168706A JPH1117673A (ja) | 1997-06-25 | 1997-06-25 | 共通鍵暗号通信方法及びその通信ネットワーク |
US09/104,279 US6307940B1 (en) | 1997-06-25 | 1998-06-25 | Communication network for encrypting/deciphering communication text while updating encryption key, a communication terminal thereof, and a communication method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9168706A JPH1117673A (ja) | 1997-06-25 | 1997-06-25 | 共通鍵暗号通信方法及びその通信ネットワーク |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1117673A true JPH1117673A (ja) | 1999-01-22 |
Family
ID=15872949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9168706A Withdrawn JPH1117673A (ja) | 1997-06-25 | 1997-06-25 | 共通鍵暗号通信方法及びその通信ネットワーク |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH1117673A (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030059500A (ko) * | 2001-12-29 | 2003-07-10 | 한국전자통신연구원 | 에스.피.엔(spn) 구조를 가지는 블록 암호를 이용한유사난수 발생기 및 방법 |
JP2007194866A (ja) * | 2006-01-18 | 2007-08-02 | Ricoh Co Ltd | 通信システム、通信方法および通信装置 |
JP2009025695A (ja) * | 2007-07-23 | 2009-02-05 | Osamu Kameda | 擬似乱数の生成方法及び装置、並びに擬似乱数を用いた暗号化方法及び装置 |
WO2012025988A1 (ja) * | 2010-08-24 | 2012-03-01 | 三菱電機株式会社 | 暗号化装置、暗号化システム、暗号化方法及び暗号化プログラム |
US8509437B2 (en) | 2007-12-27 | 2013-08-13 | Nec Corporation | Radio communication system, radio communication apparatus, and ciphering method |
JP2013236397A (ja) * | 2013-07-23 | 2013-11-21 | Nti Corp | 送受信システム、送信装置、受信装置、それらで実行される方法、並びにプログラム |
WO2015173905A1 (ja) * | 2014-05-14 | 2015-11-19 | 三菱電機株式会社 | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
-
1997
- 1997-06-25 JP JP9168706A patent/JPH1117673A/ja not_active Withdrawn
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030059500A (ko) * | 2001-12-29 | 2003-07-10 | 한국전자통신연구원 | 에스.피.엔(spn) 구조를 가지는 블록 암호를 이용한유사난수 발생기 및 방법 |
JP2007194866A (ja) * | 2006-01-18 | 2007-08-02 | Ricoh Co Ltd | 通信システム、通信方法および通信装置 |
JP2009025695A (ja) * | 2007-07-23 | 2009-02-05 | Osamu Kameda | 擬似乱数の生成方法及び装置、並びに擬似乱数を用いた暗号化方法及び装置 |
US8577038B2 (en) | 2007-07-23 | 2013-11-05 | Osamu Kameda | Method and device for generating pseudorandom number, and method and device for encryption using pseudorandom number |
US9801182B2 (en) | 2007-12-27 | 2017-10-24 | Nec Corporation | Radio communication system, radio communication apparatus, and ciphering method |
US8509437B2 (en) | 2007-12-27 | 2013-08-13 | Nec Corporation | Radio communication system, radio communication apparatus, and ciphering method |
US9307534B2 (en) | 2007-12-27 | 2016-04-05 | Nec Corporation | Radio communication system, radio communication apparatus, and ciphering method |
US10165569B2 (en) | 2007-12-27 | 2018-12-25 | Nec Corporation | Radio communication system, radio communication apparatus, and ciphering method |
WO2012025988A1 (ja) * | 2010-08-24 | 2012-03-01 | 三菱電機株式会社 | 暗号化装置、暗号化システム、暗号化方法及び暗号化プログラム |
US8948377B2 (en) | 2010-08-24 | 2015-02-03 | Mitsubishi Electric Corporation | Encryption device, encryption system, encryption method, and encryption program |
JP2013236397A (ja) * | 2013-07-23 | 2013-11-21 | Nti Corp | 送受信システム、送信装置、受信装置、それらで実行される方法、並びにプログラム |
WO2015173905A1 (ja) * | 2014-05-14 | 2015-11-19 | 三菱電機株式会社 | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム |
JPWO2015173905A1 (ja) * | 2014-05-14 | 2017-04-20 | 三菱電機株式会社 | 暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラム |
CN106463069A (zh) * | 2014-05-14 | 2017-02-22 | 三菱电机株式会社 | 加密装置、存储***、解密装置、加密方法、解密方法、加密程序以及解密程序 |
TWI565285B (zh) * | 2014-05-14 | 2017-01-01 | Mitsubishi Electric Corp | A cryptographic device, a memory system, a decoding device, a cryptographic method, a decoding method, a cryptographic program product and a decoding program product |
US11838402B2 (en) | 2019-03-13 | 2023-12-05 | The Research Foundation For The State University Of New York | Ultra low power core for lightweight encryption |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ekdahl et al. | SNOW-a new stream cipher | |
JP4828068B2 (ja) | コンピュータで効率的な線形フィードバック・シフト・レジスタ | |
US6307940B1 (en) | Communication network for encrypting/deciphering communication text while updating encryption key, a communication terminal thereof, and a communication method thereof | |
US7200232B2 (en) | Method and apparatus for symmetric-key decryption | |
US5870470A (en) | Method and apparatus for encrypting long blocks using a short-block encryption procedure | |
JP3421950B2 (ja) | 非決定論的ミクスチャー発生器ストリーム暗号化システム | |
US7054445B2 (en) | Authentication method and schemes for data integrity protection | |
US6189095B1 (en) | Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks | |
US20020048364A1 (en) | Parallel block encryption method and modes for data confidentiality and integrity protection | |
JPH08505275A (ja) | 暗号ストリームを発生させるための装置及び方法 | |
US7110539B1 (en) | Method and apparatus for encrypting and decrypting data | |
JP2001007800A (ja) | 暗号化装置および方法 | |
US7190791B2 (en) | Method of encryption using multi-key process to create a variable-length key | |
JP2000511755A (ja) | バイナリーコード情報を暗号化する方法 | |
US6404888B1 (en) | Confusion data generator | |
US6108421A (en) | Method and apparatus for data encryption | |
JPH1117673A (ja) | 共通鍵暗号通信方法及びその通信ネットワーク | |
JP3658004B2 (ja) | 通信システム | |
EP1456997B1 (en) | System and method for symmetrical cryptography | |
EP3996321A1 (en) | Method for processing encrypted data | |
KR100388059B1 (ko) | 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법 | |
JP3358954B2 (ja) | 擬似ランダムビット列生成器及びそれを使用する暗号通信方法 | |
JPH0736672A (ja) | 乱数発生器、及びそれを用いた通信システム及びその方法 | |
JP3358953B2 (ja) | 擬似ランダムビット列生成器及びそれを使用する暗号通信方法 | |
JP2000004223A (ja) | 暗号・認証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20040907 |