(57)【特許請求の範囲】
【請求項１】
コンピュータにより、予め定められた非対称の暗号鍵対、すなわち秘密鍵および相応する公開鍵を含む鍵対を形成し、秘密鍵を復元する方法であって、
秘密鍵および公開鍵を形成するために、
ユーザの入力した所定のスタート値を受信し、
前記所定のスタート値を処理して２つの素数の基礎となるベース値（ＢＷ）を取得し、
該ベース値が素数であるか否かを検査し、該ベース値が素数でない場合には該ベース値を所定の値だけ増大して新たな値を取得し、２つの素数（ｐ，ｑ）が得られるまで検査のステップを反復し、
前記検査のステップにおいて第１の素数（ｐ）または第２の素数（ｑ）が取得されるまでに前記ベース値が何回増大されたかを表すインデクスを記憶し、
前記第１の素数および前記第２の素数から得られる量（φ（ｎ））に対して素である秘密鍵（ｄ）を定め、該秘密鍵（ｄ）および該量（φ（ｎ））を用いて計算することによって前記秘密鍵の対となる公開鍵（ｅ）を取得し、
前記秘密鍵を復元するために、
ユーザの入力した所定のスタート値をコンピュータによって受信し、
前記所定のスタート値を処理して２つの素数を取得するためのベース値を取得し、
前記ベース値を、前記インデクスおよび前記所定の値によって定められる値だけ増大することにより、前記第１の素数または前記第２の素数を取得し、
前記第１の素数、前記第２の素数および前記公開鍵を用いて前記秘密鍵を復元する
ことを特徴とする鍵対を形成し秘密鍵を復元する方法。
【請求項２】
前記秘密鍵を形成する際に、前記所定のスタート値にハッシュ関数を適用して前記ベース値を取得し、前記秘密鍵を復元する際に、前記処理のステップで用いたのと同じハッシュ関数を適用する、請求項１記載の方法。
【請求項３】
前記秘密鍵を形成する際にユーザを表す付加的なデータを用い、前記秘密鍵を復元する際にも前記付加的なデータを用いる、請求項１または２記載の方法。
【請求項４】
前記秘密鍵および前記公開鍵を形成する際に、前記ベース値が素数であるか否かの検査をMiller-Rabin法にしたがって行う、請求項１記載の方法。
【請求項５】
非対称の鍵対をＲＳＡ法にしたがって形成する、請求項１記載の方法。
【請求項６】
ハッシュ関数はＭＤ５の手法、ＭＤ２の手法、一方向整関数としてのデータ暗号化規格ＤＥＳの手法のうちの１つである、請求項２記載の方法。
【請求項７】
前記秘密鍵を、電子データにディジタル署名を付すために使用する、請求項１記載の方法。
【請求項８】
前記秘密鍵をディジタル署名の形成に用いる、請求項１記載の方法。
【請求項９】
前記秘密鍵を認証に用いる、請求項１記載の方法。
【請求項１０】
予め定められた非対称の暗号鍵対、すなわち秘密鍵および相応する公開鍵を含む鍵対を形成し、秘密鍵を復元する装置であって、
当該の装置は入力装置およびプロセッサを有しており、
秘密鍵および公開鍵を形成するために、
ユーザの入力した所定のスタート値を受信し、
前記所定のスタート値を処理して２つの素数の基礎となるベース値（ＢＷ）を取得し、
該ベース値が素数であるか否かを検査し、該ベース値が素数でない場合には該ベース値を所定の値だけ増大して新たな値を取得し、２つの素数（ｐ，ｑ）が得られるまで検査のステップを反復し、
前記検査のステップにおいて第１の素数（ｐ）または第２の素数（ｑ）が取得されるまでに前記ベース値が何回増大されたかを表すインデクスを記憶し、
前記第１の素数および前記第２の素数から得られる量（φ（ｎ））に対して素である秘密鍵（ｄ）を定め、該秘密鍵（ｄ）および該量（φ（ｎ））を用いて前記秘密鍵に対となる公開鍵（ｅ）を取得し、
秘密鍵を復元するために、
ユーザの入力した所定のスタート値を受信し、
前記所定のスタート値を処理して２つの素数を取得するためのベース値を取得し、前記ベース値を、前記インデクスおよび前記所定の値によって定められる値だけ増大することにより、前記第１の素数または前記第２の素数を取得し、前記第１の素数、前記第２の素数および前記公開鍵を用いて前記秘密鍵を復元する
ことを特徴とする鍵対を形成し秘密鍵を復元する装置。
【請求項１１】
非対称の暗号鍵対すなわち秘密鍵および相応する公開鍵を含む鍵対を形成する方法において、
ユーザの入力した所定のスタート値を受信し、
前記所定のスタート値を処理して２つの素数の基礎となるベース値（ＢＷ）を取得し、
該ベース値が素数であるか否かを検査し、該ベース値が素数でない場合には該ベース値を所定の値だけ増大して新たな値を取得し、
２つの素数（ｐ，ｑ）が得られるまで検査のステップを反復し、
前記検査のステップにおいて第１の素数（ｐ）または第２の素数（ｑ）が取得されるまでに前記ベース値が何回増大されたかを表すインデクスを記憶し、
前記第１の素数および前記第２の素数から得られる量（φ（ｎ））に対して素である秘密鍵（ｄ）を定め、
該秘密鍵（ｄ）および該量（φ（ｎ））を用いて前記秘密鍵に対となる公開鍵（ｅ）を取得し、
前記秘密鍵を消去する
ことを特徴とする鍵対を形成する方法。
【請求項１２】
前記秘密鍵を暗号化動作において利用し、前記秘密鍵を利用した後に前記消去のステップを行う、請求項１１記載の方法。
【請求項１３】
非対称の暗号鍵対すなわち秘密鍵および相応する公開鍵を含む鍵対を形成する装置において、
ユーザの入力した所定のスタート値を受信する手段と、
前記所定のスタート値を処理して２つの素数の基礎となるベース値（ＢＷ）を取得する手段と、
該ベース値が素数であるか否かを検査し、該ベース値が素数でない場合には該ベース値を所定の値だけ増大して新たな値を取得する手段と、
２つの素数（ｐ，ｑ）が得られるまで検査のステップを反復する手段と、
前記検査のステップにおいて第１の素数（ｐ）または第２の素数（ｑ）が取得されるまでに前記ベース値が何回増大されたかを表すインデクスを記憶する手段と、
前記第１の素数および前記第２の素数から得られる量（φ（ｎ））に対して素である秘密鍵（ｄ）を定める手段と、
該秘密鍵（ｄ）および該量（φ（ｎ））を用いて前記秘密鍵に対となる公開鍵（ｅ）を取得する手段と、
前記秘密鍵を消去する手段と
を有する
ことを特徴とする鍵対を形成する装置。
【発明の詳細な説明】
【０００１】
本発明は、予め求められた非対称の暗号鍵対に対する秘密通信鍵を形成する方法および装置に関する。
【０００２】
非対称の暗号鍵対の形成は文献［１］から知られる。
【０００３】
文献［１］の手法ではＲＳＡ法が秘密鍵と相応の公開鍵とを含む暗号鍵対を形成するために使用される。
【０００４】
秘密鍵は当該のユーザのみにしか既知でなく、公開鍵は通信ネットワークの加入者全てに既知とすることができる。
【０００５】
電子データの真正性および完全性を保護するためのディジタル署名を形成する際に、ユーザは秘密鍵を備えたデータに署名する。署名されたディジタル署名の検証（ヴェリフィケーション）は秘密鍵に相応する公開鍵を使用して行われ、ディジタル署名の真正性ないし完全性は公開鍵へのアクセス権を有する全ての通信加入者によってチェックすることができる。
【０００６】
上述のいわゆるパブリックキー技術は特に（所定数のコンピュータユニットが通信ネットワークを介して相互接続された）コンピュータネットワーク内部でのディジタル通信で適用されている。
【０００７】
文献［１］から知られる手法では、秘密鍵が権限を有さない第３者に知られないように保護することがディジタル署名の安全性のためにきわめて重要である。
【０００８】
文献［２］からは、秘密鍵をデータ記憶のための外部媒体（例えばチップカード、ディスケットなど）またはハードディスクに記憶することが知られる。ここで鍵のデータは個人識別コードＰＩＮ（Personal Identification Number）またはパスワードを使用して保護され、これによりそれぞれの鍵データが暗号化される。しかしこうした外部媒体を使用すると、ユーザのローカルリソースへのアクセスが必要になる。これは現在のネットワークコンピュータまたはＪＡＶＡアプリケーションによるネットワーク指向のインフラストラクチャでは所望されない。
【０００９】
ネットワークコンピュータとは別のコンピュータとネットワーク化されたコンピュータのことである。
【００１０】
ＪＡＶＡアプリケーションとはプログラミング言語Ｊａｖａで記述されたプログラムを含むプログラムのことである。
【００１１】
このように文献［２］に説明されている手法では、秘密鍵を外部媒体に記憶しなければならず、これにより秘密鍵の悪用を防止することが非常に困難となる欠点がある。
【００１２】
ハッシュ関数の展望については引用文献［３］を参照されたい。ハッシュ関数とは、所定の関数値に適合する入力値を計算することのできない関数のことである。さらに任意の長さの入力コードシーケンスに固定長の出力コードシーケンスが割り当てられる。さらにハッシュ関数に対して付加的な特性を要求することもできる。このような付加的な特性の１つは衝突がないことであり、すなわち同じ出力コードシーケンスを発生させる２つの異なる入力コードシーケンスを検出不能にすることである。
【００１３】
例えばハッシュ関数としてＭＤ２規格による手法、ＭＤ５規格による手法、鍵を使用しないデータ暗号化規格ＤＥＳ（Data Encryption Standard）、または他の任意のハッシュ関数が挙げられる。
【００１４】
所定の数に対してこれが素数であるか否かを検査する手法として、Miller-Rabinによる手法が引用文献［４］から知られる。
【００１５】
したがって本発明の課題は、予め求められた非対称の暗号鍵対に対する秘密通信鍵を形成し、非対称の鍵対の秘密鍵を長く記憶せずに済むようにすることである。
【００１６】
この課題は独立請求項の特徴部分に記載の方法および装置により解決される。
【００１７】
予め求められた非対称の暗号鍵対、すなわち秘密鍵および相応の公開鍵を含む鍵対に対する秘密通信鍵を形成する方法では、鍵対を求める際に設定されたスタート値が使用されている。このスタート値はユーザに供給される。ユーザはスタート値をコンピュータへ入力し、このスタート値を使用して秘密通信鍵を形成する。秘密通信鍵と公開鍵は通信鍵の一対を形成する。
【００１８】
予め求められた非対称の暗号鍵対すなわち秘密鍵および公開鍵を含む鍵対に対する秘密通信鍵を形成する装置はプロセッサを有しており、このプロセッサは
ａ）鍵対を求める際に設定されたスタート値を使用するステップと、ｂ）このスタート値をユーザに供給するステップと、ｃ）スタート値を使用して秘密通信鍵を形成し、秘密通信鍵と公開鍵とによって通信鍵対を形成するステップとを実行可能なように構成されており、さらにユーザがスタート値を入力するための入力手段が設けられている。
【００１９】
本発明によれば秘密鍵を消去することができ、その際にパブリックキー技術による強靱な暗号を放棄しなくて済む。
【００２０】
外見上スタート値はユーザまたは中央の設定する個人識別コードＰＩＮ（Personal Identification Number）またはパスワードであり、これがコンピュータへ入力されると考えることができる。パスワードないしＰＩＮを入力した後スタート値としてパスワードまたはＰＩＮを使用して、秘密通信鍵、すなわち秘密鍵と同一の鍵が形成される。これにより鍵対すなわち通信鍵対が公開鍵とともに形成される。
【００２１】
このようにして本発明によれば、通常のコンピュータネットワークまたは通常のコンピュータのユーザになじみ深いパスワード技術と強靱な暗号技術とを融合することができ、その際にも秘密鍵の材料を持続的に保持するために大きな努力をはらう必要はない。
【００２２】
本発明の有利な実施形態は従属請求項から得られる。
【００２３】
本発明の実施形態では、スタート値に対してハッシュ関数を適用し、これによってさらに鍵形成に使用される値を形成することが提案される。
【００２４】
さらに有利にはユーザ自身を表す付加的なデータを鍵の形成時に使用することができる。
【００２５】
有利には暗号鍵を形成するために鍵形成のＲＳＡ法が使用される。
【００２６】
ハッシュ関数としてＭＤ５規格による手法、ＭＤ２規格による手法、または一方向性関数としてデータ暗号化規格ＤＥＳによる手法が使用される。
【００２７】
通信鍵対は電子データの暗号化や完全性の保証、電子データについてのディジタル署名の形成またはユーザの認証のために、一般にパブリックキー技術で使用される任意の暗号演算に対して使用される。その際には形成された通信鍵対が使用される。
【００２８】
本発明の方法を加速するために、別の実施形態では有利には、秘密鍵を形成する際に加速指数を表すインデクスを記憶する。この加速指数は、スタート値から始まってどれだけの頻度でそれぞれの数が素数であるか否かがチェックされたかを示す。
【００２９】
所定の数が素数であるか否かの特性を検査するために、有利にはMiller-Rabinによる手法が使用される。
【００３０】
本発明の実施例を図示し、以下に詳細に説明する。図１には本発明の実施例の方法ステップのフローチャートが示されている。図２には相互に結合された複数のコンピュータを有するコンピュータネットワークの概略図が示されている。図３にはスタート値に基づいて素数を求める手段の概略図が示されている。
【００３１】
図２には複数のコンピュータ２００、２１０、２２０、２３０、２４０、２５０が示されており、これらのコンピュータは通信ネットワーク２６０を介して相互に接続されている。各コンピュータ２００、２１０、２２０、２３０、２４０、２５０はそれぞれ複数の入力手段、すなわちキーボード２０６、２１６、２２６、２３６、２４６、２５６、マウス２０７、２１７、２３７、２４７、２５７、（図示されていない）スキャナまたは（図示されていない）カメラなどを有している。各入力手段および各入出力インタフェース２０１、２１１、２２１、２３１、２４１、２５１を介してメモリ２０２、２１２、２２２、２３２、２４２、２５２へ入力情報が供給され記憶される。メモリ２０２、２１２、２２２、２３２、２４２、２５２はバス２０４、２１４、２２４、２３４、２４４、２５４を介して入出力インタフェース２０１、２１１、２２１、２３１、２４１、２５１に接続されている。同様にバス２０４、２１４、２２４、２３４、２４４、２５４にはプロセッサ２０３、２１３、２２３、２３３、２４３、２５３が接続されており、これらのプロセッサは以下に説明する方法ステップを実行できるように構成されている。
【００３２】
コンピュータ２００、２１０、２２０、２３０、２４０、２５０は通信ネットワーク２６０を介して Transport Control Protocol／Internet Protocol すなわちＴＣＰ／ＩＰにしたがって通信する。
【００３３】
さらに通信ネットワーク２６０にはサーティフィケーションユニット２７０が設けられている。このサーティフィケーションユニットによりそれぞれの公開鍵に対して認証子（Zertifikat）が形成される。公開鍵はパブリックキー技術に基づいた通信に対して信頼性が高い。
【００３４】
ユーザ２８０は第１のコンピュータ２００へ設定可能な任意の語（ＰＩＮ、パスワード）を入力する。この語は当該のユーザしか知らない（図１のステップ１０１）。
【００３５】
第１のコンピュータ２００でＲＳＡ法により非対称の暗号鍵対が以下に説明するように形成される。
【００３６】
ユーザ２８０が入力した語１０２と、ユーザ２８０を表す付加データ１０３とがハッシュ関数部へ供給される（ステップ１０４）。付加データは例えばユーザ氏名、パーソナルナンバ、端末アドレスなどである。
【００３７】
ハッシュ関数の展望については引用文献［３］を参照されたい。ハッシュ関数とは、所定の関数値に適合する入力値を計算することのできない関数のことである。さらに任意の長さの入力コードシーケンスに固定長の出力コードシーケンスが割り当てられる。さらにハッシュ関数に対して付加的な特性を要求することもできる。このような付加的な特性の１つは衝突がないことであり、すなわち同じ出力コードシーケンスを発生させる２つの異なる入力コードシーケンスを検出不能にすることである。
【００３８】
例えばハッシュ関数としてＭＤ２規格による手法、ＭＤ５規格による手法、鍵を使用しないで実行されるデータ暗号化規格ＤＥＳ、または他の任意のハッシュ関数が挙げられる。
【００３９】
ハッシュ関数によって形成される値は２つの素数を形成するためのベース値ＢＷとして使用される。このことは図３に示されている。
【００４０】
図３に示されているように、ベース値ＢＷに基づいて各値Ｗ１（ｉ＝１，．．．，ｎ）ごとに、本発明の方法を反復する間、各値が素数であるか否かが検査される（ステップ３０１）。
【００４１】
所定の数に対する素の特性を検査する手法として、Miller-Rabinによる方法が引用文献［４］に示されている。
【００４２】
所定の数に対してこれが素数でないことが確認された場合、この数を所定の値、有利には値２だけ高め（ステップ３０２）、“素”の特性に対する検査を反復する（ステップ３０１）。この方法は２つの素数、すなわち第１の素数ｐおよび第２の素数ｑが求められるまで反復される。
【００４３】
インデクスとして、ベース値ＢＷに基づいて第１の素数ｐまたは第２の素数ｑに達するまでにこの数を所定の値だけ何回高めたかを示す数が用いられる。
【００４４】
図３に示された方法の結果、すなわち２つの素数ｐ，ｑはＲＳＡ法による鍵の形成（ステップ１０５）に使用される。
【００４５】
素数ｐ，ｑは通常、数１００Ｂｉｔの長さを有する。
【００４６】
素数ｐ，ｑからモジュロｎが次式にしたがって形成される。すなわち
ｎ＝ｐ＊ｑ                                                        （１）
である。さらに一時的な量（Zwischengroesse）φ（ｎ）が次式にしたがって形成される。すなわち
φ（ｎ）＝（ｐ−１）＊（ｑ−１）                                  （２）
である。秘密鍵ｄは秘密鍵ｄとφ（ｎ）とが互いに素であるように選択される。公開鍵ｅは次式を満足するように定められる。すなわち
ｅ＊ｄ ｍｏｄ φ（ｎ）＝１                                        （３）
である。値ｄは秘密鍵であり、第３者に知られてはならない。
【００４７】
したがって鍵形成（ステップ１０５）により秘密鍵ｄ（ステップ１０６）と公開鍵ｅ（ステップ１０７）とが形成される。
【００４８】
２つの鍵ｄ，ｅは相互に相応する暗号鍵対を形成し、この鍵対は任意の暗号演算、すなわち暗号化および復号化またはディジタル署名または認証のために使用される（ステップ１０８）。
【００４９】
鍵対ｄ，ｅを上述の方法にしたがって形成した後、秘密鍵ｄは消去される。
【００５０】
公開鍵ｅはサーティフィケーションインスタンス２７０へ供給される。このサーティフィケーションインスタンスにより認証子Ｃｅｒｔｅが公開鍵ｅによって形成され、公開鍵ｅの認証子Ｃｅｒｔｅは公的にアクセス可能なリスト２９０に記憶される。
【００５１】
これにより通信ネットワーク２６０の各通信加入者は公開鍵ｅに対しては公開鍵ｅの認証子Ｃｅｒｔｅを介してアクセス可能である。
【００５２】
この公開鍵ｅに相応する秘密鍵ｄは第１のコンピュータ２００で消去される。
【００５３】
ユーザ２８０が鍵対に基づいて通信を開始しようとするたびに、またユーザがこの鍵対を用いた暗号演算を行おうとするたびに、ユーザ２０８は第１のコンピュータ２００に上述のように付加データ１０３の付されたスタート値（ＰＩＮ、パスワード）１０２を入力し、ハッシュ関数にかける（ステップ１０４）。ここでベース値ＢＷに基づいて素数ｐ，ｑを求めるか、または記憶されたインデクスの上述のような読み出しまたは同様のユーザ２８０のインデクス入力により、秘密通信鍵が形成される。秘密通信鍵は予め形成されたが消去された秘密鍵ｄに相応するものである。
【００５４】
このようにして秘密通信鍵と相応する公開鍵ｅとを含む秘密通信鍵対が形成される。これによりユーザの通信開始のたびにその時点で秘密通信鍵が形成されるので、強靱なパブリックキー技術を使用することができ、しかも秘密鍵をチップカードで記憶しなくてもよくなる。
【００５５】
このようにして形成された通信用の鍵対ｄ，ｅは、公開鍵ｅを用いた平文１０９の暗号化、および秘密通信鍵を用いた暗号化電子データ１１０の復号化に使用される。
【００５６】
平文１０９の処理、すなわち誰にでも読むことのできる電子データ１０９の処理と、暗号化された電子データ１１０の処理とが図１に概略的に示されている。ここで通信方向はそれぞれ暗号演算部１０８を表すブロックから出る矢印とこのブロックへ向かう矢印とによって示されている。
【００５７】
暗号化および復号化は次式にしたがって行われる。すなわち
ｍｅ ｍｏｄ ｎ＝ｃ                                                （４）
ここでｍは５１２Ｂｉｔの量の暗号化すべき電子データ１０９であり、ｃは暗号化された電子データ１１０である。また暗号化された電子データｃの復号化は次式にしたがって行われる。すなわち
ｍ＝ｃｄ ｍｏｄ ｎ                                                （５）
である。
【００５８】
さらに上述の実施例に対する選択手段を説明する。
【００５９】
この方法は暗号化および完全性の保証または電子データのディジタル署名に使用可能である。
【００６０】
また本発明はセキュリティ機能を備えたメールシステムの分野でも使用可能である。
【００６１】
スタート値１０２は鍵対を形成する際にこの方法の開始時点で必ずしもユーザが入力しなくてもよく、これは鍵対を形成する中央ユニットがユーザに対して設定を行ってもよい。
【００６２】
これによりユーザは唯一のパスワードないしＰＩＮのみを記憶しておけばよく、もはや秘密の暗号鍵を例えばチップカード上で安全に保持する必要がない。そのためこれに関連したリスクや大きなコストを省略できる。
【００６３】
ハッシュ関数に代えて本発明では任意の一方向性関数を使用可能である。
【００６４】
本明細書で次の文献を引用した。
【００６５】
［１］C.Ruland, Informationssicherheit in Datanezen, ISBN 3-89238-081-3, DATACOM-Verlag, 1993, 79頁〜85頁
［２］D.Longley & M.Shain, Data & Computer Security, Dictionary of standards concepts and terms, Stockton Press, ISBN 0-333-42935-4, 1987, 68頁〜73頁
［３］C.Ruland, Informationssicherheit in Datanezen, ISBN 3-89238-081-3, DATACOM-Verlag, 1993, 68頁〜73頁
［４］A.J. Menezes, P.van Oorschot & S.Vanstone, Handbook of Applied Cryptography, CRC Press, ISBN 0-8493-8523-7, 1997, 138頁〜140頁
【図面の簡単な説明】
【図１】  本発明の実施例の方法ステップのフローチャートである。
【図２】  コンピュータネットワークの概略図である。
【図３】  スタート値に基づいて素数を求める手段の概略図である。
【図１】
0004528442.tif 000002
【図２】
0004528442.tif 000003
【図３】
0004528442.tif 000004