暗号鍵の生成システム、暗号鍵の生成方法、暗号化認証システム及び暗号化通信システム
【課題】使い捨て鍵利用で安全性が高く高速通信が可能な暗号方式を提供する。
【解決手段】送信者7-1 と受信者7-10は予め安全な配信方法7-15で大きな素数YRAN7-9 を交換・保持する。送信者7-1 は乱数発生ツール7-11で発生した複数の乱数7-2 と大きな素数YRAN7-9 から鍵生成ツール7-12で(71)式により鍵の構成要素K(i)を生成し、合成して鍵K7-3を得る。鍵を用いて共通鍵暗号化ツール7-5 で情報7-4 を暗号文7-6 とし、暗号文と乱数7-2 を受信者に通常の通信ラインで送る。受信者は乱数7-2 と大きな素数を用いて鍵生成ツールで暗号鍵を生成し、暗号文を鍵の下で復号化ツール7-14により情報7-4 に復号する。盗聴者には大きな素数が不明で毎回乱数が変わり鍵が変更になるため解読は困難である。
【解決手段】送信者7-1 と受信者7-10は予め安全な配信方法7-15で大きな素数YRAN7-9 を交換・保持する。送信者7-1 は乱数発生ツール7-11で発生した複数の乱数7-2 と大きな素数YRAN7-9 から鍵生成ツール7-12で(71)式により鍵の構成要素K(i)を生成し、合成して鍵K7-3を得る。鍵を用いて共通鍵暗号化ツール7-5 で情報7-4 を暗号文7-6 とし、暗号文と乱数7-2 を受信者に通常の通信ラインで送る。受信者は乱数7-2 と大きな素数を用いて鍵生成ツールで暗号鍵を生成し、暗号文を鍵の下で復号化ツール7-14により情報7-4 に復号する。盗聴者には大きな素数が不明で毎回乱数が変わり鍵が変更になるため解読は困難である。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、送信者と受信者が秘密裏に共有する大きな素数を利用することにより、同一鍵を使用することなく通信のたびに使い捨て鍵を生成して使用することができる共通鍵暗号方式による暗号鍵の生成システム及び生成方法と、かかる暗号鍵の生成システム及び方法を利用して行う暗号化認証システム及び暗号化通信システムに関するものである。
【背景技術】
【0002】
(1)現行技術の欠点
現在使用されている暗号方式には大別すると共通鍵暗号方式と公開鍵暗号方式がある。
共通鍵方式は、暗号化を行う鍵(暗号化鍵、暗号鍵)と、暗号化した結果の暗号文(以下暗文とよも呼ぶ)を暗号前の文章(以下平文とも呼ぶ)に戻すための鍵(復号化鍵、暗号鍵)が、同じものであることが特徴である。この方法にはDES(Data Encryption Standard) 、FEAL(Fast Encryption Algorithm) 、AES(Advanced Encryption Standard) 、RC4(Rivest's Cipher 4 )等多くの暗号方式がある。
他方、公開鍵暗号方式は、暗号化鍵と復号化鍵が対をなしていているが、暗号化鍵から復号化鍵が容易に推定できない2種の異なった値の鍵の対を用いることを特徴としている。
【0003】
(2)共通鍵暗号方式
現在の共通鍵暗号方式の詳しい説明(図1)
情報の送信者1-1 は暗号化ツール1-5 並びに復号化ツール1-11(一般的にはどちらもソフトウエア)を共有し、暗号鍵生成ツール1-2 で生成した鍵K1-3を安全な方法1-7 で受信者1-10に渡す。
【0004】
情報の送信者1-1 は送りたい情報1-4 (平文)を作成して、暗号化鍵K1-3の下で暗号化ツール1-5 を用いて、送りたい情報1-4 を暗号化して暗号文En1-6 を生成させる。
【0005】
送信者1-1 は、この暗号文En1-6 を通常の通信経路1-8 を用いて受信者1-10に送信する。従って、この暗号文1-6 の解読を試みようとする盗聴者1-9 は自由にこれを入手することが出来る。
【0006】
暗号文1-6 を受け取った情報の受信者1-10は、入手した暗号文1-6 を、復号化ツール1-11により、安全な手段で得た共通鍵K1-3の下で復号化し、情報(平文)1-4 を生成することにより情報を入手する。
【0007】
他方、解読を試みる盗聴者1-9 は暗号化鍵K1-3がないために復号化が出来ない。
暗号化鍵K1-3を推定するためにはコンピュータによる試行錯誤によって全ての鍵を試すことになる。しかし、暗号化鍵K1-3のサイズが大きくなると試行錯誤の総当り法で有限の時間内に推定することが困難になる。現在のコンピュータ技術では鍵のサイズは128 ビット以上あれば充分とされている。
【0008】
(3)共通鍵方式の問題点
共通鍵を用いた暗号方式では、共通鍵K1-3を受信者1-10に安全に渡す必要がある。さらに、同じ鍵を繰り返して使用した場合には、試行錯誤による総当り法で解読の可能性が高まってくるために、鍵の変更を定期的に行う必要がある。また、共通鍵のリークによる被害は全員に及ぶため、大勢で情報を共有する場合には鍵K1-3を全員に安全に配布する必要があり、また全員が鍵を安全確実に保管する必要があるが、実際には複数の利用者について安全確実な鍵の配布・管理を実現することは困難である。
【0009】
(4)公開鍵暗号方式(現在使用されている公開鍵暗号方式であるRSA 暗号方式の詳しい説明(図2))
共通鍵暗号に対する新しい概念の暗号方式として公開鍵暗号方式がある。
この暗号方式は、公開鍵と秘密鍵のペアを生成して、暗号化は公開鍵で行い、複合化は秘密鍵で行うものである。公開された暗号鍵で作成された暗文は、唯一の秘密鍵でのみ復号化が出来るものである。
【0010】
従って、暗号化は誰でも公開鍵を用いて行う事が出来るが、暗号化された文章を読むことが出来るのはそのペアとなる秘密鍵を有する受信者だけである。秘密鍵は誰にも公開する必要がなく、個々に保有するために鍵のリークによる被害は最小限にとどめておくことが出来る。公開鍵暗号方式にはRSA 暗号方式、楕円暗号方式など種々あるが、現在主として使われているものはRSA 暗号方式であり、以下図2を参照してRSA 暗号方式を主として説明する。
【0011】
情報の受信者2-10は公開鍵暗号(RSA) の鍵生成ツール2-9 を用いて公開鍵Kp2-2 と秘密鍵Ks2-8 を生成する。更に、受信者2-10は公開鍵Kp2-2 を一般に公開しておく。受信者2-10に情報2-3 を送りたい送信者2-1 は、受信者2-10の公開鍵Kp2-2 を通常の通信経路2-6 (例えばインターネットのホームページ等)経由で入手し、公開鍵暗号ツール(RSA )2-4 で送りたい情報(平文)2-3 を暗号化して、暗号文2-5 を作成する。送信者2-1 はこれを通常の通信経路2-6 を用いて受信者2-10に送る。暗号の解読を試みようとする盗聴者2-7 はこの暗号文2-5 と公開鍵Kp2-2 は自由に入手できる。
【0012】
暗号文2-5 を受信した受信者2-10はこの暗号文2-5 を自分の秘密鍵Ks2-8 の下で、復号化ツール2-11を用いて復号化し送信者2-1 が送りたかった情報2-3 を得る。他方、盗聴者2-7 は秘密鍵Ks2-8 を保有していないため情報2-3 を得ることが出来ない。
【0013】
(5)RSA公開暗号方式の詳しい説明(図3)
以下にRSA 公開暗号方式の実際を詳しく説明する。
暗号の鍵を生成するために大きな値の素数2個(P3-12 とQ3-13 )を選択する。両素数P3-12 とQ3-13 の積を法鍵N3-11 とする。
【0014】
(P-1 )と(Q-1 )の最小公倍数LCM(P-1,Q-1)3-14を求める。このLCM(P-1,Q-1)を法としてE ×D が1となるように秘密鍵D3-8と公開鍵E3-2を定める(式(31)参照)。
E ×D (mod LCM (P-1,Q-1))=1…式(31)
【0015】
公開鍵E3-2と法鍵N3-11 を公開する。秘密鍵D3-8は安全に格納しておく。
【0016】
情報の送信者3-1 は送りたい情報3-3 を大きな数値とみなして、その大きさを法鍵N3-11 以下の複数の値TEXT(1) …TEXT(2) …TEXT(i) (i=1`m)に分割する。最初のTEXT(1) に対して次の処理を行う。
C(1)=TEXT(1)E (mod N)
この結果C(1)を暗号文の第一番目のパーツとする。続いて2 番目以降のTEXT(2) …TEXT(m)を同様に処理し(式(32)参照)、2番目以降のC(i)を得る。
C(i)=TEXT(1)E (mod N) …式(32)(RSA 暗号の暗号化)
【0017】
これらを全てつなぎ合わせて暗号文C(1)…C(i)…C(m)3-5 として送信する。以上の処理はRSA 暗号化ツール3-4 で行う。
【0018】
受信者3-10は自分の秘密鍵D3-8と法鍵N3-11 を用いて式(33)の処理を行い、暗号文C(1)…C(i)…C(m)3-5 を、平文TEXT(1) …TEXT(i) …TEXT(m) 3-3 に変換する。
TEXT(i)=C(i)D (mod N) …式(33)(RSA 暗号の復号化)
【0019】
盗聴者は暗号文C(1)…C(m)と公開鍵E3-2と法鍵N3-11 を得ることが出来るが、秘密鍵D3-8は法鍵N3-11 から推定する必要がある。従ってこの暗号方式のセキュリティ性は、大きな法鍵N3-11 の素因数分解を行うことが容易か否かに依存することとなる。
【0020】
(6)公開鍵暗号方式(RSA暗号方式)の問題点
RSA 暗号は法をとる「べき剰」計算を用い、素因数分解の困難さを安全性の根拠にしている。このため大きな数の鍵が必要になる。現在では鍵の安全を確保するためには1024ビットまたは2048ビットの鍵のサイズが必要とされてきている。このため暗号の処理に長大な時間がかかるのが欠点であり、通常のパソコンでは秒単位の時間を要してしまう。
【0021】
(7)共通鍵暗号方式と公開鍵(RSA) 暗号方式との連携(図4)
高速処理だが暗号鍵の更新や配信に欠点がある共通鍵暗号方式と、長大な鍵を使わなければならないために処理時間が長い公開鍵暗号方式を連係して用い、互いに欠点を補いあって使用する方法として、比較的短い共通鍵の暗号鍵(56bit 〜 256bit )だけを公開鍵暗号方式で暗号化し、大きな文章は共通鍵暗号方式で暗号化する手法が提案されている。この手法によれば、送信しようとする文章や情報は共通鍵暗号方式を用いて暗号化し、それに使用する暗号の鍵は短くて済むので、公開鍵で暗号化して配信する。
【0022】
図4に示すように、送信者4-1 は共通鍵暗号方式に使用する使い捨て鍵K4-15 を鍵生成ツール4-14で生成させる。生成した鍵K4-15 を用いて共通鍵暗号化ツール4-5 で送りたい情報4-3 を暗号化して暗号文4-16を作成し、受信者4-10に通常の通信ライン4-6 で送信する。
【0023】
さらに、送信者4-1 は受信者4-10の公開鍵Kp4-2 と法鍵N4-11 を用いて使い捨て鍵K4-15 公開鍵暗号化ツール4-4 で暗号化して鍵K4-15 を暗号化した暗号文(暗号化された鍵4-17)を作成し、通常の通信ライン4-6 で受信者4-10に送信する。
【0024】
受信者4-10は受け取った暗号化された鍵4-17を公開鍵(RSA) 復号化ツール4-18を用いて自分の秘密鍵Ks4-8 で復号化し、使い捨ての暗号鍵K4-15 を得る。更に受信者4-10は、情報4-3 を暗号化した暗号文4-16を使い捨て鍵K4-15 の下で共通鍵復号化ツール4-19を用いて復号化し、送信者4-1 からの情報4-3 を得る。
【0025】
他方、盗聴者4-7 は公開鍵Kp4-2 と法鍵N4-11 から受信者4-10の秘密鍵Ks4-8 を推定することになる。
【0026】
(8)共通鍵暗号方式と公開鍵(RSA) 暗号方式を用いた鍵の配信方法(図5の説明)
この方法を用いた実際的な幾つかの提案がなされている。これら幾つかの方法は基本的には同じ仕組みで公開鍵を用いて共通鍵を配信する方法である。最初に提案されたディフィ−ヘルマン(DH)型公開鍵配信法を説明する。
【0027】
暗号鍵を共有する共有者A5-1と共有者B5-12 はあらかじめ大きな素数P5-2と原始根α5-13を選択して、全員に公開しておく。これを盗聴者は知ることが出来る。
【0028】
通常の通信ラインを使って、暗号鍵K を共有するために共有者A5-1は大きな素数P5-2より小さい0〜(P-1) までの数のどれかをランダムに選択する。これをXa5-3 として公開鍵計算ツール5-5 によって次の計算式(51)で演算を行うことにより公開鍵Yaを生成する。
Ya=αXamod(P)…(51)
【0029】
計算したYaを暗号鍵の共有者B5-12 に通常の通信ライン5-9 で送信する。この値を盗聴者5-7 は知ることが出来る。
【0030】
また、暗号鍵の共有者B5-12 は同様に大きな素数P5-2より小さい0〜(P-1) までの数のどれかをランダムに選択する。これをXb5-4 として公開鍵計算ツール5-5 によって次の計算式(53)で演算を行うことにより公開鍵Ybを生成する。
Yb=αXbmod(P)…(53)
【0031】
計算したYbを暗号の共有者A5-1に通常の通信ライン5-9 を用いて送る。これを盗聴者は知ることが出来る。
【0032】
Ybを受け取った暗号の共有者A5-1は共通鍵生成ツール5-10によって次の計算式(52)で共有鍵K5-8を生成する。
K=YbXamod(P)…(52)
【0033】
Yaを受け取った暗号の共有者B5-12 は共通鍵生成ツール5-10によって次の計算式(54)で共有鍵K5-8を生成する。
K=YaXbmod(P)…(54)
【0034】
XaとXbを知らない盗聴者5-8 はこれらを推定する必要があるが、素数が充分に大きい場合には、その推定を行うためには膨大な計算が必要である。
【0035】
以上の技術において鍵を安全に交換するためには公開鍵(RSA) 暗号方式を使用するのが一般的である。しかしながらRSA 暗号は計算時間がかかり高速を必要とするオンラインシステムでは採用が困難である。
【0036】
特にワイヤレスカードリーダと制御機間で行う相互認証を用いた暗号通信においては暗号化に割り当てられる時間が数ミリ秒〜10ミリ秒程度でありRSA 方式を用いた鍵配信方法は実用が困難であった。
そのため、高速な通信を行う場合は、次に説明するように共通暗号方式を用いた相互認証方法が用いられている。
【0037】
(9)共通鍵方式の相互認証(図6)
前もって2個の共通鍵(Ka とKb)6-3を安全な方法6-19で配信して、制御機6-1 とカードリーダ6-17内にそれぞれ格納しておく。
【0038】
制御機6-1 は、乱数発生ツール6-21によって、カードリーダ6-17を認証するための認証用乱数6-2 を生成して、これを共通暗号鍵Ka6-3の下で暗号化ツール6-4 を用いて暗号化する。暗号化した乱数6-5 (暗号化乱数)をカードリーダ6-17に通常の通信ライン6-6 を用いて送信する。
【0039】
カードリーダ6-17は、受信した暗号化乱数6-5 を共通鍵Ka6-3の下で復号化ツール6-20を用いて復号化する。復号化された乱数6-7 を暗号化鍵Kb6-3 の下で暗号化ツール6-4 を用いて再び暗号化する。さらに、カードリーダ6-17はこの暗号化乱数6-8 を通常の通信ライン6-6 で制御機6-1 に送信する。
【0040】
制御機6-1 は受信した暗号化乱数6-8 を暗号化鍵Kb6-3 の下で、復号化ツール6-20を用いて復号化し、復号化乱数6-9 を得る。カードリーダ6-17の認証のため、制御機6-1 はカードリーダの認証ツール6-10を用いてカードリーダ6-17の認証を行う。この認証方法は復号化された乱数6-9 と、元の認証用乱数6-2 が一致するか否かで判断する。一致すれば共通鍵Ka,Kb 6-3 をカードリーダ6-17が共有していることが認証される。
【0041】
制御機6-1 を認証するために、カードリーダ6-17は、乱数発生ツール6-21によって新たに認証用乱数6-11を生成し、共通鍵Ka6-3 のもとで暗号化ツール6-4 を用いてこの乱数6-11を暗号化して暗号化乱数6-12を作成し、これを通常の通信ライン6-6 で送信する。
【0042】
暗号化乱数6-12を受け取った制御機6-1 は、これを共通鍵Ka6-3のもとで、復号化ツール6-20を用いて復号化し、復号化乱数6-13を生成する。更に制御機6-1 は暗号鍵Kb6-3 の下で暗号化ツール6-4 を用いてこの復号化乱数6-13を暗号化して暗号化乱数6-14を生成し、通常の通信ライン6-6 でカードリーダ6-17に返送する。
【0043】
これを受信したカードリーダ6-17は、暗号化乱数6-14を暗号鍵Kb6-3 の下で、復号化ツール6-20を用いて復号化して、復号化乱数6-15を得る。カードリーダ6-17は復号化乱数6-15が乱数6-11と一致するか否かの判断を認証ツール6-16で行い、制御機6-1 の認証を行う。
【発明の開示】
【発明が解決しようとする課題】
【0044】
図6を参照して説明した共通鍵方式を用いる相互認証の欠点は、鍵Ka/Kb6-3 を繰り返し用いるため、盗聴者6-18にとって同じ鍵で作成された暗号文を無数に入手することが容易となるため、鍵の解読がし易くなり、セキュリティ性が低下する点にある。これを防ぐため、本方式では暗号鍵を頻繁に変更することが必要になる。
【0045】
そこで本発明は、共通鍵暗号方式で同一鍵を使用せずに使い捨て鍵を用い、かつ安全な鍵の配信を最小限で行うことにより、セキュリティ性が高く、高速通信が可能な暗号方式(暗号鍵の生成システム及び生成方法)と、これを応用した暗号化認証システム及び暗号化通信システムを提供することを目的とするものである。
【課題を解決するための手段】
【0046】
請求項1に記載された暗号鍵の生成システムは、送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段とを有することを特徴としている。
【0047】
請求項2に記載された暗号鍵の生成システムは、送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、前記大きな素数よりも大きく送信者と受信者が秘密裏に共有する大きな乱数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段とを有することを特徴としている。
【0048】
請求項3に記載された暗号鍵の生成システムは、請求項1又は2に記載の暗号鍵の生成システムにおいて、鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴としている。
【0049】
請求項4に記載された暗号鍵の生成方法は、送信者と受信者が相対的に大きな素数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生することを特徴としている。
【0050】
請求項5に記載された暗号鍵の生成方法は、送信者と受信者が相対的に大きな素数と前記大きな素数よりも大きい乱数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生することを特徴としている。
【0051】
請求項6に記載された暗号鍵の生成方法は、請求項4又は5に記載の暗号鍵の生成方法において、鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴としている。
【0052】
請求項7に記載された暗号化認証システムは、
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴としている。
【0053】
請求項8に記載された暗号化認証システムは、
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
前記大きな素数よりも大きく2つの通信主体が秘密裏に共有する大きな乱数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数と前記大きな乱数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴としている。
【0054】
請求項9に記載された暗号化認証システムは、請求項7又は8に記載の暗号化認証システムにおいて、鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴としている。
【0055】
請求項10に記載された暗号化通信システムは、請求項7乃至9のいずれか一つに記載の暗号化認証システムを用いた暗号化通信システムであって、
2つの前記通信主体が、それぞれ相手方を正規の相手方として互いに認証した後に、前記各通信主体において、相手方に送ろうとする情報を前記暗号鍵を用いて前記暗号化手段によって暗号化情報とし、相手方に送信することを特徴としている。
【発明の効果】
【0056】
請求項1に記載された暗号鍵の生成システム又は請求項4に記載された暗号鍵の生成方法によれば、盗聴者は、通常の通信ラインで送信される暗号文と小さい複数の乱数を入手することはできるが、大きな素数は入手できないため、解読にあたって暗号鍵は総当り方法で推定するしかない。ところが、本発明では鍵空間となる素数のサイズが大きく、また通信のたびに小さな乱数が変わって鍵が変更になるため、このような盗聴者による総当り法による暗号鍵の推定はきわめて困難であり、本発明による暗号鍵の生成システム及び方法は極めて安全性が高い。また、本発明による暗号鍵の生成は、実時間を無視できるほどの短時間で行うことができる。
【0057】
請求項2に記載された暗号鍵の生成システム又は請求項5に記載された暗号鍵の生成方法によれば、盗聴者は、通常の通信ラインで送信される暗号文と小さい複数の乱数を入手することはできるが、大きな素数と大きな乱数は入手できないため、解読にあたって暗号鍵は総当り方法で推定するしかない。ところが、本発明ではビットポインタの空間となる素数のサイズが大きく、また鍵空間となる大きな乱数のサイズはさらに大きく、また通信のたびに小さな乱数が変わって鍵が変更になるため、このような盗聴者による総当り法による暗号鍵の推定はきわめて困難である。例えば、大きな乱数が数千〜数万ビットになると解読は不可能である。これに対し、大きな乱数とビットポインタを知っている受信者はきわめて短い時間(例えば数ミリ秒以下)で暗号鍵を生成できる。このように、極めて大きな乱数の一部を取り出して組み合わせることで暗号化鍵を生成する本発明による暗号鍵の生成システム及び方法は、推定不可能であるため極めて安全性が高く、また鍵の生成は実時間を無視できるほどの短時間で行うことができる。
【0058】
請求項3に記載された暗号鍵の生成システム又は請求項6に記載された暗号鍵の生成方法によれば、以上説明した暗号鍵の生成システム及び方法において、鍵空間としての大きな素数と大きな乱数のいずれか一方を、暗号化命令により暗号化して別の素数又は乱数に書き換えることができるので、暗号方式としての安全性がさらに高まる。
【0059】
請求項7乃至10に記載された暗号化認証システムによれば、例えば制御機とカードリーダの間で通信を行う前の相互認証において、請求項1乃至6に記載した暗号鍵の生成システム乃至方法を用い、一方側で通信の都度発生させた認証用乱数を暗号化して他方側に送信し、他方側においてこれを解読するとともに再度暗号化して一方側に送信し、一方側ではこれを解読して最初の認証用乱数と一致すれば、他方側が正規の権原を有するものであることを認証することができ、他方側も一方側に対して同様の手順を実行して認証を行うことができる。この認証作業は前述の暗号鍵の生成システム乃至方法と同様に極めて安全性が高く、また実時間を無視できるほどの短時間で行うことができる。
【発明を実施するための最良の形態】
【0060】
以下に本願発明者が出願時点において最良と考える本発明に係る暗号鍵の生成システム及び方法と、暗号化認証システム及び暗号化通信システムの各実施形態について、図面を参照して説明する。当然ながら本発明の技術的範囲は、これら実施形態のみに限定されるものではなく、開示した実施形態を一例とする請求項記載の概念まで含むものであり、かかる本願発明の概念に含まれる限り、各実施形態の各一部乃至全部を組み合わせて得られる構成についても及ぶものである。
【0061】
1.第1実施形態(図7)
《暗号鍵の生成システム及び方法を用いた暗号化システム及び方法》
送信者7-1 (送信者側の暗号化システムをも意味する)と受信者7-10(受信者側の暗号化システムをも意味する)は、前もって安全な配信方法7-15で大きな素数YRAN7-9 を交換し、それぞれ保持手段にて保持しておく。
【0062】
送信者7-1 は、乱数発生手段としての乱数発生ツール7-11で複数の乱数(xRAN(i), i=1` n )7-2 を発生する。その際共通鍵暗号方式で使用する暗号鍵のサイズを、発生する乱数の数nで割って1個当たりの乱数のサイズを決定する。例えば256bitの鍵を暗号化に使用する場合には、乱数の数nを16個とすると、乱数のサイズは16bit 以下になる。
【0063】
大きな素数YRAN7-9 と小さな複数の乱数(xRAN(i), i=1` n )7-2 から鍵生成手段としての鍵生成ツール7-12により(71)式を用いて鍵の構成要素K(i),i=1` n を生成する。
K(i)=YRANmod(xRAN(i)) ,i=1` n …(71)式
【0064】
得られた鍵の要素を合成して暗号化鍵(単に鍵又は使い捨て暗号化鍵K(i),i=1` n とも呼ぶ)7-3 とする。この鍵7-3 を用いて共通鍵暗号ツール7-5 で送りたい情報7-4 を暗号化し暗号文7-6 を得る。この暗号文7-6 と乱数7-2 を受信者7-10に通常の通信ライン7-7 で送る。
【0065】
受信者7-10は受信した乱数(xRAN(i), i=1` n )と大きな素数YRAN7-9 とを用いて鍵生成ツール7-12により(71)式から暗号鍵K(i),i=1` n を生成し、これらを組み合わせて使い捨て暗号化鍵(K(i),i=1` n)7-3 暗号鍵を生成し、受信した暗号文7-6 をこの鍵の下で復号化ツール7-14を用いて復号化し、情報7-4 を得る。
【0066】
盗聴者7-8 は、暗号文7-6 と乱数7-2 を入手することはできるが、大きな素数YRAN7-9 がないため暗号鍵K(i),i=1` n は総当り方法で推定するしかない。この推定は、毎回乱数が変わり鍵が変更になるためきわめて困難である。すなわち、本例の鍵生成システム及び方法による暗号化システムは非常に安全である。
【0067】
更に、本例において、複数の乱数のサイズ又は個数を変える事で鍵のサイズを変更すれば安全性はさらに高まる。更に、第4実施形態で詳述するように、複数の乱数の一部に当該鍵空間を書き換える命令情報を付加することで、大きな素数7-9 を通信の都度別の異なる素数にすることも可能であり、さらに安全性を高めて暗号鍵として柔軟な取り扱いを可能にできる。
【0068】
2.第2実施形態(図8)
《暗号鍵の生成システム及び方法を用いた暗号化システム及び方法》
本システム及び方法は、大きな素数YRAN8-9 と、通信毎に生成させる複数の乱数8-2(xRAN(i),i=1`n)を基に、大きな素数YRAN8-9 よりも更に大きな乱数ZRAN8-14のビットポインタ(ビットアドレス)を作成し、そのポジションから大きな乱数の一部分を取り出して鍵の構成要素(K(i),i=1`n)とするものである。
【0069】
送信者8-1 は安全な配信方法8-16で大きな素数YRAN8-9 と、大きな素数YRAN8-9 よりずっと大きな乱数ZRAN8-14を、前もって配信し、保持手段にて共有する。
【0070】
情報8-4 を送信する場合に、送信者8-1 は、乱数発生手段としての乱数発生ツール8-11から複数の乱数8-2(xRAN(i),i=1`n)を発生させる。鍵生成手段としての鍵生成ツール8-12により、この乱数8-2(xRAN(i),i=1`n)と大きな素数YRAN8-9 とZRAN8-14から、使い捨て暗号化鍵K8-3を生成させる。
【0071】
上記鍵生成の一例をより具体的に示す。まず、Kadd(i)=YRANmod(xRAN(i),i=1`n)で剰余を求め、その値Kadd(i),i=1`n をZRAN8-14のビットポインタとみなして、そのビットポインタが示す位置からZRANのビット値を必要な数だけ取り出し、取り出したビット値を組み合わせて、使い捨て鍵K8-3とする。
【0072】
送りたい情報8-4 をこの使い捨て鍵K8-3の下で、暗号化ツール8-5 で暗号化して暗号化情報8-6 を作成する。送信者8-1 はこの暗号化情報8-6 と複数の乱数8-2 を通常の通信ライン8-7 で受信者8-10へ送る。
【0073】
受信者8-10は、受信した複数の乱数8-2 、大きな素数YRAN8-9 、大きな乱数8-14から送信者8-1 と同じ鍵生成ツール8-12で使い捨て暗号化鍵K8-3を生成し、復号ツール8-15を用いて暗号化情報8-6 を復号化し、情報8-4 を得る。
【0074】
盗聴者は、複数の乱数xRAN8-2 、暗号化情報8-6 を得られるが、大きな素数YRAN8-9 と大きな乱数ZRAN8-14を知らないので、これを推定する必要がある。しかしながら、このような推定は大きな乱数ZRANが数千〜数万ビットになると不可能である。しかし、大きな乱数ZRANとビットポインタを知っている受信者8-10はきわめて短い時間(数ミリ秒以下)で暗号鍵K8-3を生成できる。
【0075】
このように極めて大きな乱数ZRANの一部を取り出して組み合わせることで暗号化鍵K を生成することにより、高速でかつ推定不可能な鍵の生成が可能になる。
【0076】
3.第3実施形態(図9及び図10)
《相互認証のための暗号化認証システム及び暗号化通信システム》
本実施形態は、図9及び図10に示すような制御機9-1 とカードリーダ9-20に適用される相互認証のための暗号化認証システム及び暗号化通信システムに関するものであるが、本例の適用範囲は制御機とカードリーダのみに制限されるものではなく、相互に通信を行う複数の通信主体の間で、通信相手を認証する必要がある場合に広く適用することができる。
【0077】
(1) 認証の手順(図9)
図9に示すように、一方の通信主体である制御機9-1 と、他方の通信主体であるカードリーダ9-20は、大きな素数YRAN9-2 と素数YRAN9-2 よりずっと大きな乱数ZRAN9-3 を前もって共有し、それぞれ保持手段で保持する。
【0078】
制御機9-1 は、カードリーダ9-20から情報9-22の送信要求があった場合、カードリーダ9-20を認証し、同時にカードリーダ9-20も制御機9-1 を認証し、その後に暗号化された情報の送信が行われる。
【0079】
まず、制御機9-1 は、乱数発生手段としての乱数発生ツール9-4 を用いて複数の乱数x1RAN(i),i=1` n を発生させる。同時に、カードリーダ9-20を認証するための適切なサイズの乱数t1RAN9-6(以下認証用乱数とも呼ぶ)を発生する。複数の乱数 (x1RAN(i),i=1` n) 9-5と、大きな素数YRAN9-2 と、大きな乱数ZRAN9-3 から、鍵生成手段としての暗号鍵生成ツール9-7 で使い捨て暗号鍵Ka9-8 を生成する。
【0080】
この使い捨て暗号鍵Ka9-8 の下で、暗号化ツール9-9 を用いて、認証用乱数9-6 を暗号化して暗号化乱数E1RAN9-10 を生成する。
【0081】
制御機9-1 は、この暗号化乱数E1RAN9-10 と複数の乱数(x1RAN(i),i=1`n)9-5 をカードリーダ9-20に通常の通信ライン9-21で送信する。これらを受信したカードリーダ9-20は、制御機9-1 と同じ方法で、複数の乱数(x1RAN(i),i=1`n)9-5 を用いて鍵生成ツール9-7 から使い捨て鍵Ka9-8 を生成させる。
【0082】
更に、カードリーダ9-20は、この使い捨て鍵Ka9-8 の下で、復号化ツール9-11を用いて暗号化乱数9-10を復号化して認証用乱数t1RAN9-6を得る。
【0083】
次いで、カードリーダ9-20は、乱数発生ツール9-4 を用いて新たに複数の乱数(x2RAN(i),i=1`n)9-12を生成して、これと大きな素数YRAN9-2 、大きな乱数ZRAN9-3 とから、暗号鍵生成ツール9-7 により、使い捨て暗号鍵Kb9-15を生成する。
【0084】
この使い捨て暗号鍵Kb9-15の下に、暗号化ツール9-9 を用いて、復号化した乱数t1RAN9-6を暗号化して、暗号化乱数E2RAN9-16 を作成する。
【0085】
また、カードリーダ9-20は、制御機9-1 を認証するために乱数発生ツール9-4 によって制御機認証用乱数t2RAN9-14 を生成し、使い捨て暗号鍵Kb9-15の下に、暗号化ツール9-9 を用いて、制御機認証用乱数t2RAN9-14 を暗号化し、暗号化乱数E3RAN9-17 を生成する。
【0086】
カードリーダ9-20は、複数の乱数x2RAN9-12 と、制御機9-1 から送られた暗号化された認証用乱数を解読してさらに暗号化した暗号化乱数E2RAN9-16 と、制御機9-1 を認証するためにカードリーダ9-20にて発生した認証用乱数を暗号化した暗号化乱数9-17とを、通常の通信ライン9-21を用いて送信する。
【0087】
制御機9-1 は、受信した複数の乱数x2RAN9-12 、大きな素数YRAN9-2 、大きな乱数ZRAN9-3 とから、暗号鍵生成ツール9-7 により、使い捨て暗号鍵Kb9-15を生成する。生成した使い捨て暗号鍵Kb9-15の下に、暗号化乱数E2RAN9-16 、暗号化乱数9-17を、復号化ツール9-11で復号化し、復号化乱数t1RAN9-6と認証用乱数t2RAN 9-14を得る。
【0088】
制御機9-1 は認証用ツール9-13を用いて、復号化した乱数t1RAN9-6が最初に生成したカードリーダ認証用乱数t1RAN9-6と一致する事を確認することにより、カードリーダ9-20が、同じ素数YRAN9-2 と乱数ZRAN9-3 を共有するものと認証する。
【0089】
カードリーダ9-20を認証した制御機9-1 は、復号化した認証用乱数t2RAN9-14 を使い捨て暗号鍵Ka9-8 の下で、暗号化ツール9-9 で暗号化して暗号化乱数E4RAN9-18 を生成し、カードリーダ9-20へ通常の通信ライン9-21で送信する。
【0090】
暗号化乱数E4RAN9-18 を受信したカードリーダ9-20は、暗号鍵Ka9-8 の下で復号化ツール9-11により複合化して認証用乱数t2RAN9-14 を得る。カードリーダ9-20は、認証用ツール9-13を用いて、この認証用乱数t2RAN9-14 と先に生成した制御機認証用乱数t2RAN9-14 が一致していることを確認して認証を行う。
【0091】
(2) 情報通信(図10)
お互いの認証が完了した後で情報の交換を行う。
図10に示すように、制御機9-1 は、使い捨て暗号鍵Ka9-8 を用いて暗号化ツール9-9 により情報(inf1)9-22を暗号化して暗号化情報(E1inf)9-23 を生成し、カードリーダ9-20に通信ライン9-21で送信する。
【0092】
これを受信したカードリーダ9-20は、使い捨て暗号鍵Ka9-8 の下に、復号化ツール9-11で暗号化情報(E1inf)9-23 を復号化し、情報9-22を得る。
【0093】
カードリーダ9-1 は、情報(inf2)9-24を使い捨て鍵Kb9-15の下、暗号化ツール9-9 を用いて暗号化して暗号化情報(E2inf)9-25 を生成し、これを通常の通信ライン9-21で制御機9-1 に送信する。
【0094】
これを受信した制御機9-1 は、使い捨て暗号鍵Kb9-15の下に、復号化ツール9-11で暗号化情報(E2inf)9-25 を復号化し、情報9-24を得る。
【0095】
本例によれば、通信ごとに乱数を発生することで高速で鍵の変更を行い、毎回異なる別々の暗号鍵で安全な認証及び情報通信を行うことができる。
【0096】
なお、本例では、第2実施例のように、鍵の生成にあたって複数の乱数と、大きな素数と、さらに大きな乱数を用いており、これによって認証用乱数の暗号化や、認証後には情報の暗号化を行っていた。しかしながら、鍵の生成は、第1実施例のように複数の乱数と大きな素数を用いて行いこともできる。
【0097】
4.第4実施形態(図11)
《暗号化認証システム及び暗号化通信システムにおける鍵空間の書き換えシステム及び方法》
本例は鍵空間の書換に関する実施形態である。
制御機10-1とカードリーダ10-10 は大きな素数YRAN10-2と、大きな素数YRANより大きな乱数ZRAN10-3を安全な配信ライン10-11 で共有し、それぞれ保持手段にて保持する。
【0098】
制御機10-1は、乱数発生手段としての乱数発生ツール10-4を用いて、複数の乱数(xRAN(i),i=1` n)10-5を発生し、命令コード10-6と共にカードリーダ10-10 へ通常の通信ラインを用いて送る。
【0099】
命令コード10-6と複数の乱数10-5を受け取ったカードリーダ10-10 は、複数の乱数10-5、大きな素数YRAN10-2、大きな乱数ZRAN10-3から、鍵生成ツール10-7を用いて、使い捨て鍵10-8を生成する。この使い捨て鍵10-8を用いて命令コード10-6を実行する。この命令コード10-6は、使い捨て鍵10-8の下で、大きな乱数ZRAN10-3を暗号化ツール10-9で暗号化する命令である。暗号化が完了し、暗号化乱数EZRAN10-14が得られたら、カードリーダ10-10 は制御機10-1に命令コード10-15 を返信する。
【0100】
この命令コード10-15 を受け取った制御機10-1は、複数の乱数(xRAN(i),i=1` n)10-5、大きな素数YRAN10-2、大きな乱数ZRAN10-3から、鍵生成ツール10-7を用いて使い捨て鍵10-8を生成する。この使い捨て鍵10-8の下で大きな乱数ZRAN10-3を暗号化し、暗号化乱数EZRAN10-14を得る。これより以後、乱数ZRAN10-3の代わりに、暗号化乱数EZRAN10-14を用いて使い捨て暗号鍵を生成する。
【0101】
5.各実施形態の具体的な効果
本発明の実施形態において、大きな素数YRANをさまざまに変更して鍵を生成するまでの時間を測定した。
【0102】
【表1】
【0103】
1024ビットの大きな素数を用いても、1ミリ秒以下で鍵が生成でき、相互認証終了まで5ミリ秒程度で行える。このような高速の鍵生成は公開鍵(RSA 暗号)と共通鍵を用いた鍵配信などでは達成できない。制御機とカードリーダと間の認証では、制御機に複数のカードリーダが接続されるために、認証に時間がかかると制御機に接続できるカードリーダが限定され、カードの使用が制限を受ける。ところが、本例では鍵生成の実時間が無視できるため、暗号化や相互認証がない場合と同様に制御機に複数のカードリーダが接続できる。
【0104】
また、複数の乱数のサイズを変える事で鍵のサイズを変更すれば安全性はさらに高まる。また、複数の乱数の一部に鍵空間を書き換える命令を含む情報を付加することで、大きな素数又は大きな乱数を暗号化して別な異なる乱数にすることが可能なので、暗号鍵の柔軟な取り扱いが可能となる。
【0105】
6.本明細書における用語の定義
暗号: 情報の意味を当事者以外にわからないように情報を変換すること。
平文: 元の情報、暗号化される前の文
暗号文(暗文): 平文を第三者に解らないように変換した情報
暗号化: 平文から暗文を作ること。
復号化: 暗文から平文を作ること。
暗号化鍵: 暗号化に必要なパラメータ。暗号鍵と復号鍵が同一の場合もある。また、暗号化方式によっては鍵がないこともある。
復号化鍵: 復号化に必要なパラメータ。暗号鍵と復号鍵が同一の場合もある。また、暗号化方式によっては鍵がないこともある。
暗号鍵: 暗号化鍵と復号化鍵、鍵とも言う。
平文空間: 平文全体の集合
暗号文空間: 暗号文全体の集合
鍵空間: 鍵全体の集合
攻撃: 暗号化に用いられた鍵を探索する行為。解読とも言う。
解読: 第三者が暗号文を復号化する事。
盗聴: 第三者が通信を傍受する事。
共通鍵: 暗号化にも復号化にも用いられる鍵。同じ鍵を用いる暗号化方式のために共通鍵暗号方式と言う。
公開鍵:公開鍵暗号で暗号化に使用する暗号化鍵。暗号化鍵とも言う。復号側が持つ秘密鍵と対になっている。復号側はあらかじめ自分の暗号化鍵を公開しておくことから公開鍵と呼ばれる。
秘密鍵:公開鍵暗号で復号化に使用する鍵。復号側だけがこの鍵を持ち秘密にしておくことから秘密鍵と呼ばれる。公開鍵から秘密鍵を推測するのが事実上困難である暗号方式を採用する必要がある。
DES:(Data Encryption Standard) :
FEAL:(Fast Encryption Algorithm) :
AES:(Advanced Encryption Standard) :
RC4: (Rivest's Cipher 4 ):
RSA 暗号:Rivest,Shamir,Adleman によって考案された公開鍵暗号。
【図面の簡単な説明】
【0106】
【図1】共通鍵暗号方式の説明図である。
【図2】公開鍵暗号方式(RSA暗号方式)の説明図である。
【図3】公開鍵暗号方式(RSA暗号方式)のさらに詳しい説明図である。
【図4】共通鍵暗号方式と公開鍵暗号方式(RSA暗号方式)とを連携させた暗号方式の説明図である。
【図5】共通鍵暗号方式と公開鍵暗号方式(RSA暗号方式)とを用いた鍵の配信方法の説明図である。
【図6】共通鍵暗号方式を用いた相互認証システムの説明図である。
【図7】本発明の第1実施形態のシステム及び方法の説明図である。
【図8】本発明の第2実施形態のシステム及び方法の説明図である。
【図9】本発明の第3実施形態における暗号化認証システム及び方法の説明図である。
【図10】本発明の第3実施形態における暗号化通信システム及び方法の説明図である。
【図11】本発明の第4実施形態のシステム及び方法の説明図である。
【符号の説明】
【0107】
図7の符号の説明
7-1 :情報7-4 の送信者
7-2 :複数(n個) の乱数(xRAN(i), i=1 〜n)
7-3 :使い捨て暗号化鍵
7-4 :送りたい情報(平文)
7-5 :共通鍵暗号化ツール
7-6 :暗号文。使い捨て鍵K(i), i=1 〜n の下で、共通鍵暗号化ツール7-5 を用いて送りたい情報(平文)7-4 を暗号化したもの。
7-7 :通常の通信ライン
7-8 :盗聴者
7-9 :大きな素数YRAN
7-10:受信者
7-11:乱数発生ツール
7-12:鍵生成ツール。(71)式で計算した結果をジョイントして鍵を生成する。
K(i)=YRANmod(xRAN(i)), i=1 〜n …(71)式
7-14:復号化ツール
7-15:安全な配信方法
図8の符号の説明
8-1 :情報8-4 の送信者
8-2 :複数の乱数(xRAN(i), i=1 〜n)
8-3 :使い捨て暗号化鍵
8-4 :送りたい情報(平文)
8-5 :暗号化ツール
8-6 :暗号文;使い捨て暗号化鍵K の下で、暗号化ツール8-5 を用いて送りたい情報(平文)8-4 を暗号化したもの。
8-7 :通常の通信ライン
8-8 :盗聴者
8-9 :大きな素数YRAN
8-10:受信者
8-11:乱数発生ツール
8-12:鍵生成ツール。数式(81)を用いて演算を行う。
K(i)=YRANmod(xRAN(i)) i=1 〜n …(81)式
8-14:YRANより大きな乱数群ZRAN
8-15:復号化ツール
8-16:安全な配信方法
図9の符号の説明
9-1 :制御機
9-2 :大きな素数YRAN
9-3 :素数YRAN 9-2よりずっと大きな乱数ZRAN
9-4 :制御機9-1 とカードリーダ9-20の内にある乱数発生ツール
9-5 :制御機が乱数発生ツール9-4で発生させた乱数群x1RAN
9-6 :制御機が乱数発生ツール9-4で発生させたカードリーダを認証するための認証用乱数t1RAN
9-7 :制御機9-1 とカードリーダ9-20の内にある暗号鍵生成ツール、乱数群x1RAN と素数YRANと大きな乱数ZRANを用いて暗号鍵Kaを生成する。
9-8 :制御機9-1 内で暗号鍵生成ツール9-7 により生成した使い捨て暗号鍵Ka
9-9 :制御機9-1 とカードリーダ9-20の内にある暗号化ツール
9-10:制御機9-1 が使い捨て暗号鍵Ka9-8 の下で暗号化ツール9-9 を用いて認証用乱数t1RAN を暗号化した暗号化乱数(E1RAN )。
9-11:制御機9-1 とカードリーダ9-20の内にある復号化ツール、暗号化ツール9-9 を用いて暗号化した文を元に戻す機能を持つ。
9-12:カードリーダ9-20が新たに生成した乱数群x2RAN
9-13:制御機9-1 とカードリーダ9-20の内にある認証ツール
9-14:カードリーダ9-20が乱数発生ツール9-4 を用いて制御機を認証するために発生させた認証用乱数t2RAN
9-15:カードリーダ9-20内で大きな素数YRAN9-2 と、より大きな乱数ZRAN9-3 と乱数群x2RAN
9-5 を用いて、暗号鍵生成ツール9-7 で生成した使い捨て暗号鍵Kb
9-16:カードリーダ9-20が使い捨て暗号鍵Kb9-15の下にカードリーダ認証用乱数t1RAN9-6を暗号化ツール9-9 で暗号化した乱数(E2RAN) 。
9-17:カードリーダが制御機認証用乱数t2RAN9-14 を、使い捨て暗号鍵Kb9-15の下に暗号化ツール9-8 で暗号化した乱数(E3RAN) 。
9-18:制御機が復号化した制御機認証用乱数t2RAN9-14 を使い捨て暗号鍵Ka9-8 の下で暗号化ツール9-9 を用いて暗号化した乱数。(E4RAN )
9-19:安全な配信方法
9-20:カードリーダ
9-21:通常の通信ライン
9-22:制御機9-1 が送る情報inf1
9-23:制御機9-1 内で、制御機が送る情報9-22を、使い捨て暗号鍵Ka9-8 の下に暗号化ツール9-9 で暗号化した暗号化情報E1inf 。
9-24:カードリーダが送る情報inf2
9-25:カードリーダ内で、カードリーダが送る情報9-24を、使い捨て暗号鍵Kb9-15の下に暗号化ツール9-9 で暗号化した暗号化情報E2inf 。
9-26:盗聴者
図10及び図11の符号の説明
10-1:制御機
10-2:大きな素数YRAN
10-3:YRANより大きな乱数ZRAN
10-4:乱数発生ツール
10-5:複数の乱数xRAN(i),i=1 〜n
10-6:命令コード(カードリーダに対して鍵空間ZRANの暗号化命令)
10-7:鍵生成ツール
10-8:使い捨て鍵
10-9:暗号化ツール
10-10 :カードリーダ
10-11 :安全な配信ライン
10-12 :通常の通信ライン
10-13 :盗聴者
10-14 :暗号化乱数(大きな乱数ZRANを、使い捨て鍵10-8の下で暗号化したもの。)
10-15 :命令コード(制御機に対して鍵空間ZRANの暗号化命令)
【技術分野】
【0001】
本発明は、送信者と受信者が秘密裏に共有する大きな素数を利用することにより、同一鍵を使用することなく通信のたびに使い捨て鍵を生成して使用することができる共通鍵暗号方式による暗号鍵の生成システム及び生成方法と、かかる暗号鍵の生成システム及び方法を利用して行う暗号化認証システム及び暗号化通信システムに関するものである。
【背景技術】
【0002】
(1)現行技術の欠点
現在使用されている暗号方式には大別すると共通鍵暗号方式と公開鍵暗号方式がある。
共通鍵方式は、暗号化を行う鍵(暗号化鍵、暗号鍵)と、暗号化した結果の暗号文(以下暗文とよも呼ぶ)を暗号前の文章(以下平文とも呼ぶ)に戻すための鍵(復号化鍵、暗号鍵)が、同じものであることが特徴である。この方法にはDES(Data Encryption Standard) 、FEAL(Fast Encryption Algorithm) 、AES(Advanced Encryption Standard) 、RC4(Rivest's Cipher 4 )等多くの暗号方式がある。
他方、公開鍵暗号方式は、暗号化鍵と復号化鍵が対をなしていているが、暗号化鍵から復号化鍵が容易に推定できない2種の異なった値の鍵の対を用いることを特徴としている。
【0003】
(2)共通鍵暗号方式
現在の共通鍵暗号方式の詳しい説明(図1)
情報の送信者1-1 は暗号化ツール1-5 並びに復号化ツール1-11(一般的にはどちらもソフトウエア)を共有し、暗号鍵生成ツール1-2 で生成した鍵K1-3を安全な方法1-7 で受信者1-10に渡す。
【0004】
情報の送信者1-1 は送りたい情報1-4 (平文)を作成して、暗号化鍵K1-3の下で暗号化ツール1-5 を用いて、送りたい情報1-4 を暗号化して暗号文En1-6 を生成させる。
【0005】
送信者1-1 は、この暗号文En1-6 を通常の通信経路1-8 を用いて受信者1-10に送信する。従って、この暗号文1-6 の解読を試みようとする盗聴者1-9 は自由にこれを入手することが出来る。
【0006】
暗号文1-6 を受け取った情報の受信者1-10は、入手した暗号文1-6 を、復号化ツール1-11により、安全な手段で得た共通鍵K1-3の下で復号化し、情報(平文)1-4 を生成することにより情報を入手する。
【0007】
他方、解読を試みる盗聴者1-9 は暗号化鍵K1-3がないために復号化が出来ない。
暗号化鍵K1-3を推定するためにはコンピュータによる試行錯誤によって全ての鍵を試すことになる。しかし、暗号化鍵K1-3のサイズが大きくなると試行錯誤の総当り法で有限の時間内に推定することが困難になる。現在のコンピュータ技術では鍵のサイズは128 ビット以上あれば充分とされている。
【0008】
(3)共通鍵方式の問題点
共通鍵を用いた暗号方式では、共通鍵K1-3を受信者1-10に安全に渡す必要がある。さらに、同じ鍵を繰り返して使用した場合には、試行錯誤による総当り法で解読の可能性が高まってくるために、鍵の変更を定期的に行う必要がある。また、共通鍵のリークによる被害は全員に及ぶため、大勢で情報を共有する場合には鍵K1-3を全員に安全に配布する必要があり、また全員が鍵を安全確実に保管する必要があるが、実際には複数の利用者について安全確実な鍵の配布・管理を実現することは困難である。
【0009】
(4)公開鍵暗号方式(現在使用されている公開鍵暗号方式であるRSA 暗号方式の詳しい説明(図2))
共通鍵暗号に対する新しい概念の暗号方式として公開鍵暗号方式がある。
この暗号方式は、公開鍵と秘密鍵のペアを生成して、暗号化は公開鍵で行い、複合化は秘密鍵で行うものである。公開された暗号鍵で作成された暗文は、唯一の秘密鍵でのみ復号化が出来るものである。
【0010】
従って、暗号化は誰でも公開鍵を用いて行う事が出来るが、暗号化された文章を読むことが出来るのはそのペアとなる秘密鍵を有する受信者だけである。秘密鍵は誰にも公開する必要がなく、個々に保有するために鍵のリークによる被害は最小限にとどめておくことが出来る。公開鍵暗号方式にはRSA 暗号方式、楕円暗号方式など種々あるが、現在主として使われているものはRSA 暗号方式であり、以下図2を参照してRSA 暗号方式を主として説明する。
【0011】
情報の受信者2-10は公開鍵暗号(RSA) の鍵生成ツール2-9 を用いて公開鍵Kp2-2 と秘密鍵Ks2-8 を生成する。更に、受信者2-10は公開鍵Kp2-2 を一般に公開しておく。受信者2-10に情報2-3 を送りたい送信者2-1 は、受信者2-10の公開鍵Kp2-2 を通常の通信経路2-6 (例えばインターネットのホームページ等)経由で入手し、公開鍵暗号ツール(RSA )2-4 で送りたい情報(平文)2-3 を暗号化して、暗号文2-5 を作成する。送信者2-1 はこれを通常の通信経路2-6 を用いて受信者2-10に送る。暗号の解読を試みようとする盗聴者2-7 はこの暗号文2-5 と公開鍵Kp2-2 は自由に入手できる。
【0012】
暗号文2-5 を受信した受信者2-10はこの暗号文2-5 を自分の秘密鍵Ks2-8 の下で、復号化ツール2-11を用いて復号化し送信者2-1 が送りたかった情報2-3 を得る。他方、盗聴者2-7 は秘密鍵Ks2-8 を保有していないため情報2-3 を得ることが出来ない。
【0013】
(5)RSA公開暗号方式の詳しい説明(図3)
以下にRSA 公開暗号方式の実際を詳しく説明する。
暗号の鍵を生成するために大きな値の素数2個(P3-12 とQ3-13 )を選択する。両素数P3-12 とQ3-13 の積を法鍵N3-11 とする。
【0014】
(P-1 )と(Q-1 )の最小公倍数LCM(P-1,Q-1)3-14を求める。このLCM(P-1,Q-1)を法としてE ×D が1となるように秘密鍵D3-8と公開鍵E3-2を定める(式(31)参照)。
E ×D (mod LCM (P-1,Q-1))=1…式(31)
【0015】
公開鍵E3-2と法鍵N3-11 を公開する。秘密鍵D3-8は安全に格納しておく。
【0016】
情報の送信者3-1 は送りたい情報3-3 を大きな数値とみなして、その大きさを法鍵N3-11 以下の複数の値TEXT(1) …TEXT(2) …TEXT(i) (i=1`m)に分割する。最初のTEXT(1) に対して次の処理を行う。
C(1)=TEXT(1)E (mod N)
この結果C(1)を暗号文の第一番目のパーツとする。続いて2 番目以降のTEXT(2) …TEXT(m)を同様に処理し(式(32)参照)、2番目以降のC(i)を得る。
C(i)=TEXT(1)E (mod N) …式(32)(RSA 暗号の暗号化)
【0017】
これらを全てつなぎ合わせて暗号文C(1)…C(i)…C(m)3-5 として送信する。以上の処理はRSA 暗号化ツール3-4 で行う。
【0018】
受信者3-10は自分の秘密鍵D3-8と法鍵N3-11 を用いて式(33)の処理を行い、暗号文C(1)…C(i)…C(m)3-5 を、平文TEXT(1) …TEXT(i) …TEXT(m) 3-3 に変換する。
TEXT(i)=C(i)D (mod N) …式(33)(RSA 暗号の復号化)
【0019】
盗聴者は暗号文C(1)…C(m)と公開鍵E3-2と法鍵N3-11 を得ることが出来るが、秘密鍵D3-8は法鍵N3-11 から推定する必要がある。従ってこの暗号方式のセキュリティ性は、大きな法鍵N3-11 の素因数分解を行うことが容易か否かに依存することとなる。
【0020】
(6)公開鍵暗号方式(RSA暗号方式)の問題点
RSA 暗号は法をとる「べき剰」計算を用い、素因数分解の困難さを安全性の根拠にしている。このため大きな数の鍵が必要になる。現在では鍵の安全を確保するためには1024ビットまたは2048ビットの鍵のサイズが必要とされてきている。このため暗号の処理に長大な時間がかかるのが欠点であり、通常のパソコンでは秒単位の時間を要してしまう。
【0021】
(7)共通鍵暗号方式と公開鍵(RSA) 暗号方式との連携(図4)
高速処理だが暗号鍵の更新や配信に欠点がある共通鍵暗号方式と、長大な鍵を使わなければならないために処理時間が長い公開鍵暗号方式を連係して用い、互いに欠点を補いあって使用する方法として、比較的短い共通鍵の暗号鍵(56bit 〜 256bit )だけを公開鍵暗号方式で暗号化し、大きな文章は共通鍵暗号方式で暗号化する手法が提案されている。この手法によれば、送信しようとする文章や情報は共通鍵暗号方式を用いて暗号化し、それに使用する暗号の鍵は短くて済むので、公開鍵で暗号化して配信する。
【0022】
図4に示すように、送信者4-1 は共通鍵暗号方式に使用する使い捨て鍵K4-15 を鍵生成ツール4-14で生成させる。生成した鍵K4-15 を用いて共通鍵暗号化ツール4-5 で送りたい情報4-3 を暗号化して暗号文4-16を作成し、受信者4-10に通常の通信ライン4-6 で送信する。
【0023】
さらに、送信者4-1 は受信者4-10の公開鍵Kp4-2 と法鍵N4-11 を用いて使い捨て鍵K4-15 公開鍵暗号化ツール4-4 で暗号化して鍵K4-15 を暗号化した暗号文(暗号化された鍵4-17)を作成し、通常の通信ライン4-6 で受信者4-10に送信する。
【0024】
受信者4-10は受け取った暗号化された鍵4-17を公開鍵(RSA) 復号化ツール4-18を用いて自分の秘密鍵Ks4-8 で復号化し、使い捨ての暗号鍵K4-15 を得る。更に受信者4-10は、情報4-3 を暗号化した暗号文4-16を使い捨て鍵K4-15 の下で共通鍵復号化ツール4-19を用いて復号化し、送信者4-1 からの情報4-3 を得る。
【0025】
他方、盗聴者4-7 は公開鍵Kp4-2 と法鍵N4-11 から受信者4-10の秘密鍵Ks4-8 を推定することになる。
【0026】
(8)共通鍵暗号方式と公開鍵(RSA) 暗号方式を用いた鍵の配信方法(図5の説明)
この方法を用いた実際的な幾つかの提案がなされている。これら幾つかの方法は基本的には同じ仕組みで公開鍵を用いて共通鍵を配信する方法である。最初に提案されたディフィ−ヘルマン(DH)型公開鍵配信法を説明する。
【0027】
暗号鍵を共有する共有者A5-1と共有者B5-12 はあらかじめ大きな素数P5-2と原始根α5-13を選択して、全員に公開しておく。これを盗聴者は知ることが出来る。
【0028】
通常の通信ラインを使って、暗号鍵K を共有するために共有者A5-1は大きな素数P5-2より小さい0〜(P-1) までの数のどれかをランダムに選択する。これをXa5-3 として公開鍵計算ツール5-5 によって次の計算式(51)で演算を行うことにより公開鍵Yaを生成する。
Ya=αXamod(P)…(51)
【0029】
計算したYaを暗号鍵の共有者B5-12 に通常の通信ライン5-9 で送信する。この値を盗聴者5-7 は知ることが出来る。
【0030】
また、暗号鍵の共有者B5-12 は同様に大きな素数P5-2より小さい0〜(P-1) までの数のどれかをランダムに選択する。これをXb5-4 として公開鍵計算ツール5-5 によって次の計算式(53)で演算を行うことにより公開鍵Ybを生成する。
Yb=αXbmod(P)…(53)
【0031】
計算したYbを暗号の共有者A5-1に通常の通信ライン5-9 を用いて送る。これを盗聴者は知ることが出来る。
【0032】
Ybを受け取った暗号の共有者A5-1は共通鍵生成ツール5-10によって次の計算式(52)で共有鍵K5-8を生成する。
K=YbXamod(P)…(52)
【0033】
Yaを受け取った暗号の共有者B5-12 は共通鍵生成ツール5-10によって次の計算式(54)で共有鍵K5-8を生成する。
K=YaXbmod(P)…(54)
【0034】
XaとXbを知らない盗聴者5-8 はこれらを推定する必要があるが、素数が充分に大きい場合には、その推定を行うためには膨大な計算が必要である。
【0035】
以上の技術において鍵を安全に交換するためには公開鍵(RSA) 暗号方式を使用するのが一般的である。しかしながらRSA 暗号は計算時間がかかり高速を必要とするオンラインシステムでは採用が困難である。
【0036】
特にワイヤレスカードリーダと制御機間で行う相互認証を用いた暗号通信においては暗号化に割り当てられる時間が数ミリ秒〜10ミリ秒程度でありRSA 方式を用いた鍵配信方法は実用が困難であった。
そのため、高速な通信を行う場合は、次に説明するように共通暗号方式を用いた相互認証方法が用いられている。
【0037】
(9)共通鍵方式の相互認証(図6)
前もって2個の共通鍵(Ka とKb)6-3を安全な方法6-19で配信して、制御機6-1 とカードリーダ6-17内にそれぞれ格納しておく。
【0038】
制御機6-1 は、乱数発生ツール6-21によって、カードリーダ6-17を認証するための認証用乱数6-2 を生成して、これを共通暗号鍵Ka6-3の下で暗号化ツール6-4 を用いて暗号化する。暗号化した乱数6-5 (暗号化乱数)をカードリーダ6-17に通常の通信ライン6-6 を用いて送信する。
【0039】
カードリーダ6-17は、受信した暗号化乱数6-5 を共通鍵Ka6-3の下で復号化ツール6-20を用いて復号化する。復号化された乱数6-7 を暗号化鍵Kb6-3 の下で暗号化ツール6-4 を用いて再び暗号化する。さらに、カードリーダ6-17はこの暗号化乱数6-8 を通常の通信ライン6-6 で制御機6-1 に送信する。
【0040】
制御機6-1 は受信した暗号化乱数6-8 を暗号化鍵Kb6-3 の下で、復号化ツール6-20を用いて復号化し、復号化乱数6-9 を得る。カードリーダ6-17の認証のため、制御機6-1 はカードリーダの認証ツール6-10を用いてカードリーダ6-17の認証を行う。この認証方法は復号化された乱数6-9 と、元の認証用乱数6-2 が一致するか否かで判断する。一致すれば共通鍵Ka,Kb 6-3 をカードリーダ6-17が共有していることが認証される。
【0041】
制御機6-1 を認証するために、カードリーダ6-17は、乱数発生ツール6-21によって新たに認証用乱数6-11を生成し、共通鍵Ka6-3 のもとで暗号化ツール6-4 を用いてこの乱数6-11を暗号化して暗号化乱数6-12を作成し、これを通常の通信ライン6-6 で送信する。
【0042】
暗号化乱数6-12を受け取った制御機6-1 は、これを共通鍵Ka6-3のもとで、復号化ツール6-20を用いて復号化し、復号化乱数6-13を生成する。更に制御機6-1 は暗号鍵Kb6-3 の下で暗号化ツール6-4 を用いてこの復号化乱数6-13を暗号化して暗号化乱数6-14を生成し、通常の通信ライン6-6 でカードリーダ6-17に返送する。
【0043】
これを受信したカードリーダ6-17は、暗号化乱数6-14を暗号鍵Kb6-3 の下で、復号化ツール6-20を用いて復号化して、復号化乱数6-15を得る。カードリーダ6-17は復号化乱数6-15が乱数6-11と一致するか否かの判断を認証ツール6-16で行い、制御機6-1 の認証を行う。
【発明の開示】
【発明が解決しようとする課題】
【0044】
図6を参照して説明した共通鍵方式を用いる相互認証の欠点は、鍵Ka/Kb6-3 を繰り返し用いるため、盗聴者6-18にとって同じ鍵で作成された暗号文を無数に入手することが容易となるため、鍵の解読がし易くなり、セキュリティ性が低下する点にある。これを防ぐため、本方式では暗号鍵を頻繁に変更することが必要になる。
【0045】
そこで本発明は、共通鍵暗号方式で同一鍵を使用せずに使い捨て鍵を用い、かつ安全な鍵の配信を最小限で行うことにより、セキュリティ性が高く、高速通信が可能な暗号方式(暗号鍵の生成システム及び生成方法)と、これを応用した暗号化認証システム及び暗号化通信システムを提供することを目的とするものである。
【課題を解決するための手段】
【0046】
請求項1に記載された暗号鍵の生成システムは、送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段とを有することを特徴としている。
【0047】
請求項2に記載された暗号鍵の生成システムは、送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、前記大きな素数よりも大きく送信者と受信者が秘密裏に共有する大きな乱数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段とを有することを特徴としている。
【0048】
請求項3に記載された暗号鍵の生成システムは、請求項1又は2に記載の暗号鍵の生成システムにおいて、鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴としている。
【0049】
請求項4に記載された暗号鍵の生成方法は、送信者と受信者が相対的に大きな素数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生することを特徴としている。
【0050】
請求項5に記載された暗号鍵の生成方法は、送信者と受信者が相対的に大きな素数と前記大きな素数よりも大きい乱数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生することを特徴としている。
【0051】
請求項6に記載された暗号鍵の生成方法は、請求項4又は5に記載の暗号鍵の生成方法において、鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴としている。
【0052】
請求項7に記載された暗号化認証システムは、
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴としている。
【0053】
請求項8に記載された暗号化認証システムは、
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
前記大きな素数よりも大きく2つの通信主体が秘密裏に共有する大きな乱数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数と前記大きな乱数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴としている。
【0054】
請求項9に記載された暗号化認証システムは、請求項7又は8に記載の暗号化認証システムにおいて、鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴としている。
【0055】
請求項10に記載された暗号化通信システムは、請求項7乃至9のいずれか一つに記載の暗号化認証システムを用いた暗号化通信システムであって、
2つの前記通信主体が、それぞれ相手方を正規の相手方として互いに認証した後に、前記各通信主体において、相手方に送ろうとする情報を前記暗号鍵を用いて前記暗号化手段によって暗号化情報とし、相手方に送信することを特徴としている。
【発明の効果】
【0056】
請求項1に記載された暗号鍵の生成システム又は請求項4に記載された暗号鍵の生成方法によれば、盗聴者は、通常の通信ラインで送信される暗号文と小さい複数の乱数を入手することはできるが、大きな素数は入手できないため、解読にあたって暗号鍵は総当り方法で推定するしかない。ところが、本発明では鍵空間となる素数のサイズが大きく、また通信のたびに小さな乱数が変わって鍵が変更になるため、このような盗聴者による総当り法による暗号鍵の推定はきわめて困難であり、本発明による暗号鍵の生成システム及び方法は極めて安全性が高い。また、本発明による暗号鍵の生成は、実時間を無視できるほどの短時間で行うことができる。
【0057】
請求項2に記載された暗号鍵の生成システム又は請求項5に記載された暗号鍵の生成方法によれば、盗聴者は、通常の通信ラインで送信される暗号文と小さい複数の乱数を入手することはできるが、大きな素数と大きな乱数は入手できないため、解読にあたって暗号鍵は総当り方法で推定するしかない。ところが、本発明ではビットポインタの空間となる素数のサイズが大きく、また鍵空間となる大きな乱数のサイズはさらに大きく、また通信のたびに小さな乱数が変わって鍵が変更になるため、このような盗聴者による総当り法による暗号鍵の推定はきわめて困難である。例えば、大きな乱数が数千〜数万ビットになると解読は不可能である。これに対し、大きな乱数とビットポインタを知っている受信者はきわめて短い時間(例えば数ミリ秒以下)で暗号鍵を生成できる。このように、極めて大きな乱数の一部を取り出して組み合わせることで暗号化鍵を生成する本発明による暗号鍵の生成システム及び方法は、推定不可能であるため極めて安全性が高く、また鍵の生成は実時間を無視できるほどの短時間で行うことができる。
【0058】
請求項3に記載された暗号鍵の生成システム又は請求項6に記載された暗号鍵の生成方法によれば、以上説明した暗号鍵の生成システム及び方法において、鍵空間としての大きな素数と大きな乱数のいずれか一方を、暗号化命令により暗号化して別の素数又は乱数に書き換えることができるので、暗号方式としての安全性がさらに高まる。
【0059】
請求項7乃至10に記載された暗号化認証システムによれば、例えば制御機とカードリーダの間で通信を行う前の相互認証において、請求項1乃至6に記載した暗号鍵の生成システム乃至方法を用い、一方側で通信の都度発生させた認証用乱数を暗号化して他方側に送信し、他方側においてこれを解読するとともに再度暗号化して一方側に送信し、一方側ではこれを解読して最初の認証用乱数と一致すれば、他方側が正規の権原を有するものであることを認証することができ、他方側も一方側に対して同様の手順を実行して認証を行うことができる。この認証作業は前述の暗号鍵の生成システム乃至方法と同様に極めて安全性が高く、また実時間を無視できるほどの短時間で行うことができる。
【発明を実施するための最良の形態】
【0060】
以下に本願発明者が出願時点において最良と考える本発明に係る暗号鍵の生成システム及び方法と、暗号化認証システム及び暗号化通信システムの各実施形態について、図面を参照して説明する。当然ながら本発明の技術的範囲は、これら実施形態のみに限定されるものではなく、開示した実施形態を一例とする請求項記載の概念まで含むものであり、かかる本願発明の概念に含まれる限り、各実施形態の各一部乃至全部を組み合わせて得られる構成についても及ぶものである。
【0061】
1.第1実施形態(図7)
《暗号鍵の生成システム及び方法を用いた暗号化システム及び方法》
送信者7-1 (送信者側の暗号化システムをも意味する)と受信者7-10(受信者側の暗号化システムをも意味する)は、前もって安全な配信方法7-15で大きな素数YRAN7-9 を交換し、それぞれ保持手段にて保持しておく。
【0062】
送信者7-1 は、乱数発生手段としての乱数発生ツール7-11で複数の乱数(xRAN(i), i=1` n )7-2 を発生する。その際共通鍵暗号方式で使用する暗号鍵のサイズを、発生する乱数の数nで割って1個当たりの乱数のサイズを決定する。例えば256bitの鍵を暗号化に使用する場合には、乱数の数nを16個とすると、乱数のサイズは16bit 以下になる。
【0063】
大きな素数YRAN7-9 と小さな複数の乱数(xRAN(i), i=1` n )7-2 から鍵生成手段としての鍵生成ツール7-12により(71)式を用いて鍵の構成要素K(i),i=1` n を生成する。
K(i)=YRANmod(xRAN(i)) ,i=1` n …(71)式
【0064】
得られた鍵の要素を合成して暗号化鍵(単に鍵又は使い捨て暗号化鍵K(i),i=1` n とも呼ぶ)7-3 とする。この鍵7-3 を用いて共通鍵暗号ツール7-5 で送りたい情報7-4 を暗号化し暗号文7-6 を得る。この暗号文7-6 と乱数7-2 を受信者7-10に通常の通信ライン7-7 で送る。
【0065】
受信者7-10は受信した乱数(xRAN(i), i=1` n )と大きな素数YRAN7-9 とを用いて鍵生成ツール7-12により(71)式から暗号鍵K(i),i=1` n を生成し、これらを組み合わせて使い捨て暗号化鍵(K(i),i=1` n)7-3 暗号鍵を生成し、受信した暗号文7-6 をこの鍵の下で復号化ツール7-14を用いて復号化し、情報7-4 を得る。
【0066】
盗聴者7-8 は、暗号文7-6 と乱数7-2 を入手することはできるが、大きな素数YRAN7-9 がないため暗号鍵K(i),i=1` n は総当り方法で推定するしかない。この推定は、毎回乱数が変わり鍵が変更になるためきわめて困難である。すなわち、本例の鍵生成システム及び方法による暗号化システムは非常に安全である。
【0067】
更に、本例において、複数の乱数のサイズ又は個数を変える事で鍵のサイズを変更すれば安全性はさらに高まる。更に、第4実施形態で詳述するように、複数の乱数の一部に当該鍵空間を書き換える命令情報を付加することで、大きな素数7-9 を通信の都度別の異なる素数にすることも可能であり、さらに安全性を高めて暗号鍵として柔軟な取り扱いを可能にできる。
【0068】
2.第2実施形態(図8)
《暗号鍵の生成システム及び方法を用いた暗号化システム及び方法》
本システム及び方法は、大きな素数YRAN8-9 と、通信毎に生成させる複数の乱数8-2(xRAN(i),i=1`n)を基に、大きな素数YRAN8-9 よりも更に大きな乱数ZRAN8-14のビットポインタ(ビットアドレス)を作成し、そのポジションから大きな乱数の一部分を取り出して鍵の構成要素(K(i),i=1`n)とするものである。
【0069】
送信者8-1 は安全な配信方法8-16で大きな素数YRAN8-9 と、大きな素数YRAN8-9 よりずっと大きな乱数ZRAN8-14を、前もって配信し、保持手段にて共有する。
【0070】
情報8-4 を送信する場合に、送信者8-1 は、乱数発生手段としての乱数発生ツール8-11から複数の乱数8-2(xRAN(i),i=1`n)を発生させる。鍵生成手段としての鍵生成ツール8-12により、この乱数8-2(xRAN(i),i=1`n)と大きな素数YRAN8-9 とZRAN8-14から、使い捨て暗号化鍵K8-3を生成させる。
【0071】
上記鍵生成の一例をより具体的に示す。まず、Kadd(i)=YRANmod(xRAN(i),i=1`n)で剰余を求め、その値Kadd(i),i=1`n をZRAN8-14のビットポインタとみなして、そのビットポインタが示す位置からZRANのビット値を必要な数だけ取り出し、取り出したビット値を組み合わせて、使い捨て鍵K8-3とする。
【0072】
送りたい情報8-4 をこの使い捨て鍵K8-3の下で、暗号化ツール8-5 で暗号化して暗号化情報8-6 を作成する。送信者8-1 はこの暗号化情報8-6 と複数の乱数8-2 を通常の通信ライン8-7 で受信者8-10へ送る。
【0073】
受信者8-10は、受信した複数の乱数8-2 、大きな素数YRAN8-9 、大きな乱数8-14から送信者8-1 と同じ鍵生成ツール8-12で使い捨て暗号化鍵K8-3を生成し、復号ツール8-15を用いて暗号化情報8-6 を復号化し、情報8-4 を得る。
【0074】
盗聴者は、複数の乱数xRAN8-2 、暗号化情報8-6 を得られるが、大きな素数YRAN8-9 と大きな乱数ZRAN8-14を知らないので、これを推定する必要がある。しかしながら、このような推定は大きな乱数ZRANが数千〜数万ビットになると不可能である。しかし、大きな乱数ZRANとビットポインタを知っている受信者8-10はきわめて短い時間(数ミリ秒以下)で暗号鍵K8-3を生成できる。
【0075】
このように極めて大きな乱数ZRANの一部を取り出して組み合わせることで暗号化鍵K を生成することにより、高速でかつ推定不可能な鍵の生成が可能になる。
【0076】
3.第3実施形態(図9及び図10)
《相互認証のための暗号化認証システム及び暗号化通信システム》
本実施形態は、図9及び図10に示すような制御機9-1 とカードリーダ9-20に適用される相互認証のための暗号化認証システム及び暗号化通信システムに関するものであるが、本例の適用範囲は制御機とカードリーダのみに制限されるものではなく、相互に通信を行う複数の通信主体の間で、通信相手を認証する必要がある場合に広く適用することができる。
【0077】
(1) 認証の手順(図9)
図9に示すように、一方の通信主体である制御機9-1 と、他方の通信主体であるカードリーダ9-20は、大きな素数YRAN9-2 と素数YRAN9-2 よりずっと大きな乱数ZRAN9-3 を前もって共有し、それぞれ保持手段で保持する。
【0078】
制御機9-1 は、カードリーダ9-20から情報9-22の送信要求があった場合、カードリーダ9-20を認証し、同時にカードリーダ9-20も制御機9-1 を認証し、その後に暗号化された情報の送信が行われる。
【0079】
まず、制御機9-1 は、乱数発生手段としての乱数発生ツール9-4 を用いて複数の乱数x1RAN(i),i=1` n を発生させる。同時に、カードリーダ9-20を認証するための適切なサイズの乱数t1RAN9-6(以下認証用乱数とも呼ぶ)を発生する。複数の乱数 (x1RAN(i),i=1` n) 9-5と、大きな素数YRAN9-2 と、大きな乱数ZRAN9-3 から、鍵生成手段としての暗号鍵生成ツール9-7 で使い捨て暗号鍵Ka9-8 を生成する。
【0080】
この使い捨て暗号鍵Ka9-8 の下で、暗号化ツール9-9 を用いて、認証用乱数9-6 を暗号化して暗号化乱数E1RAN9-10 を生成する。
【0081】
制御機9-1 は、この暗号化乱数E1RAN9-10 と複数の乱数(x1RAN(i),i=1`n)9-5 をカードリーダ9-20に通常の通信ライン9-21で送信する。これらを受信したカードリーダ9-20は、制御機9-1 と同じ方法で、複数の乱数(x1RAN(i),i=1`n)9-5 を用いて鍵生成ツール9-7 から使い捨て鍵Ka9-8 を生成させる。
【0082】
更に、カードリーダ9-20は、この使い捨て鍵Ka9-8 の下で、復号化ツール9-11を用いて暗号化乱数9-10を復号化して認証用乱数t1RAN9-6を得る。
【0083】
次いで、カードリーダ9-20は、乱数発生ツール9-4 を用いて新たに複数の乱数(x2RAN(i),i=1`n)9-12を生成して、これと大きな素数YRAN9-2 、大きな乱数ZRAN9-3 とから、暗号鍵生成ツール9-7 により、使い捨て暗号鍵Kb9-15を生成する。
【0084】
この使い捨て暗号鍵Kb9-15の下に、暗号化ツール9-9 を用いて、復号化した乱数t1RAN9-6を暗号化して、暗号化乱数E2RAN9-16 を作成する。
【0085】
また、カードリーダ9-20は、制御機9-1 を認証するために乱数発生ツール9-4 によって制御機認証用乱数t2RAN9-14 を生成し、使い捨て暗号鍵Kb9-15の下に、暗号化ツール9-9 を用いて、制御機認証用乱数t2RAN9-14 を暗号化し、暗号化乱数E3RAN9-17 を生成する。
【0086】
カードリーダ9-20は、複数の乱数x2RAN9-12 と、制御機9-1 から送られた暗号化された認証用乱数を解読してさらに暗号化した暗号化乱数E2RAN9-16 と、制御機9-1 を認証するためにカードリーダ9-20にて発生した認証用乱数を暗号化した暗号化乱数9-17とを、通常の通信ライン9-21を用いて送信する。
【0087】
制御機9-1 は、受信した複数の乱数x2RAN9-12 、大きな素数YRAN9-2 、大きな乱数ZRAN9-3 とから、暗号鍵生成ツール9-7 により、使い捨て暗号鍵Kb9-15を生成する。生成した使い捨て暗号鍵Kb9-15の下に、暗号化乱数E2RAN9-16 、暗号化乱数9-17を、復号化ツール9-11で復号化し、復号化乱数t1RAN9-6と認証用乱数t2RAN 9-14を得る。
【0088】
制御機9-1 は認証用ツール9-13を用いて、復号化した乱数t1RAN9-6が最初に生成したカードリーダ認証用乱数t1RAN9-6と一致する事を確認することにより、カードリーダ9-20が、同じ素数YRAN9-2 と乱数ZRAN9-3 を共有するものと認証する。
【0089】
カードリーダ9-20を認証した制御機9-1 は、復号化した認証用乱数t2RAN9-14 を使い捨て暗号鍵Ka9-8 の下で、暗号化ツール9-9 で暗号化して暗号化乱数E4RAN9-18 を生成し、カードリーダ9-20へ通常の通信ライン9-21で送信する。
【0090】
暗号化乱数E4RAN9-18 を受信したカードリーダ9-20は、暗号鍵Ka9-8 の下で復号化ツール9-11により複合化して認証用乱数t2RAN9-14 を得る。カードリーダ9-20は、認証用ツール9-13を用いて、この認証用乱数t2RAN9-14 と先に生成した制御機認証用乱数t2RAN9-14 が一致していることを確認して認証を行う。
【0091】
(2) 情報通信(図10)
お互いの認証が完了した後で情報の交換を行う。
図10に示すように、制御機9-1 は、使い捨て暗号鍵Ka9-8 を用いて暗号化ツール9-9 により情報(inf1)9-22を暗号化して暗号化情報(E1inf)9-23 を生成し、カードリーダ9-20に通信ライン9-21で送信する。
【0092】
これを受信したカードリーダ9-20は、使い捨て暗号鍵Ka9-8 の下に、復号化ツール9-11で暗号化情報(E1inf)9-23 を復号化し、情報9-22を得る。
【0093】
カードリーダ9-1 は、情報(inf2)9-24を使い捨て鍵Kb9-15の下、暗号化ツール9-9 を用いて暗号化して暗号化情報(E2inf)9-25 を生成し、これを通常の通信ライン9-21で制御機9-1 に送信する。
【0094】
これを受信した制御機9-1 は、使い捨て暗号鍵Kb9-15の下に、復号化ツール9-11で暗号化情報(E2inf)9-25 を復号化し、情報9-24を得る。
【0095】
本例によれば、通信ごとに乱数を発生することで高速で鍵の変更を行い、毎回異なる別々の暗号鍵で安全な認証及び情報通信を行うことができる。
【0096】
なお、本例では、第2実施例のように、鍵の生成にあたって複数の乱数と、大きな素数と、さらに大きな乱数を用いており、これによって認証用乱数の暗号化や、認証後には情報の暗号化を行っていた。しかしながら、鍵の生成は、第1実施例のように複数の乱数と大きな素数を用いて行いこともできる。
【0097】
4.第4実施形態(図11)
《暗号化認証システム及び暗号化通信システムにおける鍵空間の書き換えシステム及び方法》
本例は鍵空間の書換に関する実施形態である。
制御機10-1とカードリーダ10-10 は大きな素数YRAN10-2と、大きな素数YRANより大きな乱数ZRAN10-3を安全な配信ライン10-11 で共有し、それぞれ保持手段にて保持する。
【0098】
制御機10-1は、乱数発生手段としての乱数発生ツール10-4を用いて、複数の乱数(xRAN(i),i=1` n)10-5を発生し、命令コード10-6と共にカードリーダ10-10 へ通常の通信ラインを用いて送る。
【0099】
命令コード10-6と複数の乱数10-5を受け取ったカードリーダ10-10 は、複数の乱数10-5、大きな素数YRAN10-2、大きな乱数ZRAN10-3から、鍵生成ツール10-7を用いて、使い捨て鍵10-8を生成する。この使い捨て鍵10-8を用いて命令コード10-6を実行する。この命令コード10-6は、使い捨て鍵10-8の下で、大きな乱数ZRAN10-3を暗号化ツール10-9で暗号化する命令である。暗号化が完了し、暗号化乱数EZRAN10-14が得られたら、カードリーダ10-10 は制御機10-1に命令コード10-15 を返信する。
【0100】
この命令コード10-15 を受け取った制御機10-1は、複数の乱数(xRAN(i),i=1` n)10-5、大きな素数YRAN10-2、大きな乱数ZRAN10-3から、鍵生成ツール10-7を用いて使い捨て鍵10-8を生成する。この使い捨て鍵10-8の下で大きな乱数ZRAN10-3を暗号化し、暗号化乱数EZRAN10-14を得る。これより以後、乱数ZRAN10-3の代わりに、暗号化乱数EZRAN10-14を用いて使い捨て暗号鍵を生成する。
【0101】
5.各実施形態の具体的な効果
本発明の実施形態において、大きな素数YRANをさまざまに変更して鍵を生成するまでの時間を測定した。
【0102】
【表1】
【0103】
1024ビットの大きな素数を用いても、1ミリ秒以下で鍵が生成でき、相互認証終了まで5ミリ秒程度で行える。このような高速の鍵生成は公開鍵(RSA 暗号)と共通鍵を用いた鍵配信などでは達成できない。制御機とカードリーダと間の認証では、制御機に複数のカードリーダが接続されるために、認証に時間がかかると制御機に接続できるカードリーダが限定され、カードの使用が制限を受ける。ところが、本例では鍵生成の実時間が無視できるため、暗号化や相互認証がない場合と同様に制御機に複数のカードリーダが接続できる。
【0104】
また、複数の乱数のサイズを変える事で鍵のサイズを変更すれば安全性はさらに高まる。また、複数の乱数の一部に鍵空間を書き換える命令を含む情報を付加することで、大きな素数又は大きな乱数を暗号化して別な異なる乱数にすることが可能なので、暗号鍵の柔軟な取り扱いが可能となる。
【0105】
6.本明細書における用語の定義
暗号: 情報の意味を当事者以外にわからないように情報を変換すること。
平文: 元の情報、暗号化される前の文
暗号文(暗文): 平文を第三者に解らないように変換した情報
暗号化: 平文から暗文を作ること。
復号化: 暗文から平文を作ること。
暗号化鍵: 暗号化に必要なパラメータ。暗号鍵と復号鍵が同一の場合もある。また、暗号化方式によっては鍵がないこともある。
復号化鍵: 復号化に必要なパラメータ。暗号鍵と復号鍵が同一の場合もある。また、暗号化方式によっては鍵がないこともある。
暗号鍵: 暗号化鍵と復号化鍵、鍵とも言う。
平文空間: 平文全体の集合
暗号文空間: 暗号文全体の集合
鍵空間: 鍵全体の集合
攻撃: 暗号化に用いられた鍵を探索する行為。解読とも言う。
解読: 第三者が暗号文を復号化する事。
盗聴: 第三者が通信を傍受する事。
共通鍵: 暗号化にも復号化にも用いられる鍵。同じ鍵を用いる暗号化方式のために共通鍵暗号方式と言う。
公開鍵:公開鍵暗号で暗号化に使用する暗号化鍵。暗号化鍵とも言う。復号側が持つ秘密鍵と対になっている。復号側はあらかじめ自分の暗号化鍵を公開しておくことから公開鍵と呼ばれる。
秘密鍵:公開鍵暗号で復号化に使用する鍵。復号側だけがこの鍵を持ち秘密にしておくことから秘密鍵と呼ばれる。公開鍵から秘密鍵を推測するのが事実上困難である暗号方式を採用する必要がある。
DES:(Data Encryption Standard) :
FEAL:(Fast Encryption Algorithm) :
AES:(Advanced Encryption Standard) :
RC4: (Rivest's Cipher 4 ):
RSA 暗号:Rivest,Shamir,Adleman によって考案された公開鍵暗号。
【図面の簡単な説明】
【0106】
【図1】共通鍵暗号方式の説明図である。
【図2】公開鍵暗号方式(RSA暗号方式)の説明図である。
【図3】公開鍵暗号方式(RSA暗号方式)のさらに詳しい説明図である。
【図4】共通鍵暗号方式と公開鍵暗号方式(RSA暗号方式)とを連携させた暗号方式の説明図である。
【図5】共通鍵暗号方式と公開鍵暗号方式(RSA暗号方式)とを用いた鍵の配信方法の説明図である。
【図6】共通鍵暗号方式を用いた相互認証システムの説明図である。
【図7】本発明の第1実施形態のシステム及び方法の説明図である。
【図8】本発明の第2実施形態のシステム及び方法の説明図である。
【図9】本発明の第3実施形態における暗号化認証システム及び方法の説明図である。
【図10】本発明の第3実施形態における暗号化通信システム及び方法の説明図である。
【図11】本発明の第4実施形態のシステム及び方法の説明図である。
【符号の説明】
【0107】
図7の符号の説明
7-1 :情報7-4 の送信者
7-2 :複数(n個) の乱数(xRAN(i), i=1 〜n)
7-3 :使い捨て暗号化鍵
7-4 :送りたい情報(平文)
7-5 :共通鍵暗号化ツール
7-6 :暗号文。使い捨て鍵K(i), i=1 〜n の下で、共通鍵暗号化ツール7-5 を用いて送りたい情報(平文)7-4 を暗号化したもの。
7-7 :通常の通信ライン
7-8 :盗聴者
7-9 :大きな素数YRAN
7-10:受信者
7-11:乱数発生ツール
7-12:鍵生成ツール。(71)式で計算した結果をジョイントして鍵を生成する。
K(i)=YRANmod(xRAN(i)), i=1 〜n …(71)式
7-14:復号化ツール
7-15:安全な配信方法
図8の符号の説明
8-1 :情報8-4 の送信者
8-2 :複数の乱数(xRAN(i), i=1 〜n)
8-3 :使い捨て暗号化鍵
8-4 :送りたい情報(平文)
8-5 :暗号化ツール
8-6 :暗号文;使い捨て暗号化鍵K の下で、暗号化ツール8-5 を用いて送りたい情報(平文)8-4 を暗号化したもの。
8-7 :通常の通信ライン
8-8 :盗聴者
8-9 :大きな素数YRAN
8-10:受信者
8-11:乱数発生ツール
8-12:鍵生成ツール。数式(81)を用いて演算を行う。
K(i)=YRANmod(xRAN(i)) i=1 〜n …(81)式
8-14:YRANより大きな乱数群ZRAN
8-15:復号化ツール
8-16:安全な配信方法
図9の符号の説明
9-1 :制御機
9-2 :大きな素数YRAN
9-3 :素数YRAN 9-2よりずっと大きな乱数ZRAN
9-4 :制御機9-1 とカードリーダ9-20の内にある乱数発生ツール
9-5 :制御機が乱数発生ツール9-4で発生させた乱数群x1RAN
9-6 :制御機が乱数発生ツール9-4で発生させたカードリーダを認証するための認証用乱数t1RAN
9-7 :制御機9-1 とカードリーダ9-20の内にある暗号鍵生成ツール、乱数群x1RAN と素数YRANと大きな乱数ZRANを用いて暗号鍵Kaを生成する。
9-8 :制御機9-1 内で暗号鍵生成ツール9-7 により生成した使い捨て暗号鍵Ka
9-9 :制御機9-1 とカードリーダ9-20の内にある暗号化ツール
9-10:制御機9-1 が使い捨て暗号鍵Ka9-8 の下で暗号化ツール9-9 を用いて認証用乱数t1RAN を暗号化した暗号化乱数(E1RAN )。
9-11:制御機9-1 とカードリーダ9-20の内にある復号化ツール、暗号化ツール9-9 を用いて暗号化した文を元に戻す機能を持つ。
9-12:カードリーダ9-20が新たに生成した乱数群x2RAN
9-13:制御機9-1 とカードリーダ9-20の内にある認証ツール
9-14:カードリーダ9-20が乱数発生ツール9-4 を用いて制御機を認証するために発生させた認証用乱数t2RAN
9-15:カードリーダ9-20内で大きな素数YRAN9-2 と、より大きな乱数ZRAN9-3 と乱数群x2RAN
9-5 を用いて、暗号鍵生成ツール9-7 で生成した使い捨て暗号鍵Kb
9-16:カードリーダ9-20が使い捨て暗号鍵Kb9-15の下にカードリーダ認証用乱数t1RAN9-6を暗号化ツール9-9 で暗号化した乱数(E2RAN) 。
9-17:カードリーダが制御機認証用乱数t2RAN9-14 を、使い捨て暗号鍵Kb9-15の下に暗号化ツール9-8 で暗号化した乱数(E3RAN) 。
9-18:制御機が復号化した制御機認証用乱数t2RAN9-14 を使い捨て暗号鍵Ka9-8 の下で暗号化ツール9-9 を用いて暗号化した乱数。(E4RAN )
9-19:安全な配信方法
9-20:カードリーダ
9-21:通常の通信ライン
9-22:制御機9-1 が送る情報inf1
9-23:制御機9-1 内で、制御機が送る情報9-22を、使い捨て暗号鍵Ka9-8 の下に暗号化ツール9-9 で暗号化した暗号化情報E1inf 。
9-24:カードリーダが送る情報inf2
9-25:カードリーダ内で、カードリーダが送る情報9-24を、使い捨て暗号鍵Kb9-15の下に暗号化ツール9-9 で暗号化した暗号化情報E2inf 。
9-26:盗聴者
図10及び図11の符号の説明
10-1:制御機
10-2:大きな素数YRAN
10-3:YRANより大きな乱数ZRAN
10-4:乱数発生ツール
10-5:複数の乱数xRAN(i),i=1 〜n
10-6:命令コード(カードリーダに対して鍵空間ZRANの暗号化命令)
10-7:鍵生成ツール
10-8:使い捨て鍵
10-9:暗号化ツール
10-10 :カードリーダ
10-11 :安全な配信ライン
10-12 :通常の通信ライン
10-13 :盗聴者
10-14 :暗号化乱数(大きな乱数ZRANを、使い捨て鍵10-8の下で暗号化したもの。)
10-15 :命令コード(制御機に対して鍵空間ZRANの暗号化命令)
【特許請求の範囲】
【請求項1】
送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段とを有することを特徴とする暗号鍵の生成システム。
【請求項2】
送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、前記大きな素数よりも大きく送信者と受信者が秘密裏に共有する大きな乱数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段とを有することを特徴とする暗号鍵の生成システム。
【請求項3】
鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴とする請求項1又は2に記載の暗号鍵の生成システム。
【請求項4】
送信者と受信者が相対的に大きな素数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生することを特徴とする暗号鍵の生成方法。
【請求項5】
送信者と受信者が相対的に大きな素数と前記大きな素数よりも大きい乱数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生することを特徴とする暗号鍵の生成方法。
【請求項6】
鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴とする請求項4又は5に記載の暗号鍵の生成方法。
【請求項7】
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴とする暗号化認証システム。
【請求項8】
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
前記大きな素数よりも大きく2つの通信主体が秘密裏に共有する大きな乱数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数と前記大きな乱数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴とする暗号化認証システム。
【請求項9】
鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴とする請求項7又は8に記載の暗号化認証システム。
【請求項10】
2つの前記通信主体が、それぞれ相手方を正規の相手方として互いに認証した後に、前記各通信主体において、相手方に送ろうとする情報を前記暗号鍵を用いて前記暗号化手段によって暗号化情報とし、相手方に送信することを特徴とする請求項7乃至9のいずれか一つに記載の暗号化認証システムを用いた暗号化通信システム。
【請求項1】
送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段とを有することを特徴とする暗号鍵の生成システム。
【請求項2】
送信者と受信者が秘密裏に共有する相対的に大きな素数を保持する手段と、前記大きな素数よりも大きく送信者と受信者が秘密裏に共有する大きな乱数を保持する手段と、相対的に小さい複数の乱数を発生する乱数発生手段と、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段とを有することを特徴とする暗号鍵の生成システム。
【請求項3】
鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴とする請求項1又は2に記載の暗号鍵の生成システム。
【請求項4】
送信者と受信者が相対的に大きな素数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生することを特徴とする暗号鍵の生成方法。
【請求項5】
送信者と受信者が相対的に大きな素数と前記大きな素数よりも大きい乱数を秘密裏に共有し、相対的に小さい複数の乱数を発生し、前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生することを特徴とする暗号鍵の生成方法。
【請求項6】
鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴とする請求項4又は5に記載の暗号鍵の生成方法。
【請求項7】
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせて暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴とする暗号化認証システム。
【請求項8】
互いに相手方を認証した上で通信を行う2つの通信主体において相互認証のために使用される暗号化認証システムにおいて、
2つの通信主体が秘密裏に共有する相対的に大きな素数を保持する手段と、
前記大きな素数よりも大きく2つの通信主体が秘密裏に共有する大きな乱数を保持する手段と、
認証用乱数と相手方に送信される相対的に小さい複数の乱数を発生する乱数発生手段と、
前記大きな素数を前記小さい複数の素数で各々除して得た複数の余りを組み合わせてビットポインタを生成するとともに、該ビットポインタにより前記大きな乱数から複数の数を取り出して組み合わせることにより暗号鍵を発生する鍵生成手段と、
前記認証用乱数を前記暗号鍵により暗号化乱数とする暗号化手段と、
相手方に送信された前記暗号化乱数が復号化されたのちに相手方の暗号鍵によって暗号化されて相手方から送信された相手方の暗号化乱数を、相手方の暗号鍵が生成される際に使用されて相手方から送信された小さい複数の素数を用いて前記鍵生成手段により生成した相手方の暗号鍵によって復号化する復号化手段と、
前記復号化手段によって相手方の暗号化乱数を復号化して得た乱数と前記乱数発生手段によって発生した前記認証用乱数が一致した場合に、相手方を前記大きな素数と前記大きな乱数を共有する正規の相手方として認証する認証手段と、
を具備することを特徴とする暗号化認証システム。
【請求項9】
鍵空間としての前記大きな素数と前記大きな乱数のいずれか一方を、暗号化命令により暗号化することを特徴とする請求項7又は8に記載の暗号化認証システム。
【請求項10】
2つの前記通信主体が、それぞれ相手方を正規の相手方として互いに認証した後に、前記各通信主体において、相手方に送ろうとする情報を前記暗号鍵を用いて前記暗号化手段によって暗号化情報とし、相手方に送信することを特徴とする請求項7乃至9のいずれか一つに記載の暗号化認証システムを用いた暗号化通信システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2009−141767(P2009−141767A)
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願番号】特願2007−317244(P2007−317244)
【出願日】平成19年12月7日(2007.12.7)
【出願人】(396009654)
【出願人】(594128832)日本原子力防護システム株式会社 (7)
【Fターム(参考)】
【公開日】平成21年6月25日(2009.6.25)
【国際特許分類】
【出願日】平成19年12月7日(2007.12.7)
【出願人】(396009654)
【出願人】(594128832)日本原子力防護システム株式会社 (7)
【Fターム(参考)】
[ Back to top ]