(57)【特許請求の範囲】
【請求項１】
センタと利用者端末間においてデータを利用者キーを用い暗号化して送受信する暗号化方式において、
利用者端末からサービス提供要求データを利用者キーの一部分によって暗号化し、センタに送信する手段と、
上記送信した暗号化したサービス提供要求データに対応し、上記センタから送信されて受信された暗号化されたサービス提供データを上記利用者キーの一部分によって復号すると共に、上記センタから送信されて受信された暗号化された乱数を上記利用者キーの他の一部分によって復号する手段と、
上記復号した乱数によって上記利用者キーを更新する手段と
を端末側に設けたことを特徴とする暗号化方式。
【請求項２】
センタと利用者端末間においてデータを利用者キーを用い暗号化して送受信する暗号化方式において、
利用者端末から送信されてセンタで受信された暗号化されたサービス提供要求データを利用者キーの一部分によって復号する手段と、
上記復号したサービス提供要求データに対して作成されたサービス提供データを上記利用者キーの一部分によって暗号化すると共に、次の利用者キーを作成するために作成した乱数を上記利用者キーの他の一部分によって暗号化し、上記利用者端末にそれぞれ送信する手段と
をセンタ側に設けたことを特徴とする暗号化方式。
【請求項３】
上記センタが上記利用者端末から業務の終結の通知を受信したときに、上記乱数を利用者端末に送信し、当該乱数で利用者キーの更新を実行させることを特徴とする請求項１あるいは請求項２記載の暗号化方式。
【請求項４】
利用者端末で、送信の始めにセンタで当該利用者端末の利用者資格を認識させるために、
利用者端末のハードウェア固有情報、ソフトウェア固有情報、および認証用プログラム固有情報のうちの１つ以上をハッシュ化してその値を上記利用者キーの一部分によって暗号化してセンタに送信する手段
を更に持つことを特徴とする請求項１あるいは請求項３記載の暗号化方式。
【請求項５】
センタで、送受信の始めに利用者端末を認識するために、
利用者端末のハードウェア固有情報、ソフトウェア固有情報、および認証用プログラム固有情報のうちの１つ以上をハッシュ化してその値を上記利用者キーの一部分によって暗号化し、上記利用者端末からセンタに送信されて受信された情報を復号し利用者資格を判定する判定手段
を更に持つことを特徴とする請求項２あるいは請求項３記載の暗号化方式。
【請求項６】
上記利用者キーの一部分および上記利用者キーの他の一部分を、上記利用者キーを分割した前半の部分および後半の部分、あるいは上記利用者キーを分割した後半の部分および前半の部分としたことを特徴とする請求項１から請求項５のいずれかに記載の暗号化方式。
【請求項７】
上記乱数によって利用者キーを更新するとして、上記乱数を利用者キーに累積して新たな利用者キーを生成して更新することを特徴とする請求項１から請求項６のいずれかに記載の暗号化方式。
【請求項８】
上記利用者キーの更新毎に上記利用者端末に接続された利用者用カード内の利用者キーを更新する手段を更に設けたことを特徴とする請求項１から請求項７のいずれかに記載の暗号化方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データを暗号化する暗号化方式および記録媒体に関するものである。
【０００２】
【従来の技術】
従来、利用者が操作する端末と、回線やネットワークを介してセンタとデータの授受を行う場合、データを暗号化して相手に送信し、受信側で元のデータに復号し、データの秘密を保持するようにしていた。
【０００３】
【発明が解決しようとする課題】
上述した従来のＤＥＳなどの暗号化方式は、予め定めたキー（例えば公開キーと秘密キー）を設け、キー（例えば公開キー）でデータを暗号化して回線やネットワークに送信し、受信側でキー（例えば秘密キー）で復号して元のデータを生成し、秘密通信を行っているが、回線中やネットワークの伝送中に暗号化された情報を第３者に取得された場合、当該データの規則性を終了条件に多数回の復号を繰り返してキーを解読し、データをこの解読したキーで、暗号化して送信されたデータを復号化されてしまう可能性が高いという問題がある。このため、回線やネットワークを伝送中の暗号化された情報が取得されても終了条件を不明とした暗号化が望まれている。
【０００４】
本発明は、これらの問題を解決するため、乱数を暗号化して相手に送信して復号し当該乱数で元のキーを更新することを繰り返し、復号のためのキーの解読を不可能とすると共に正当な通信相手の認識を可能にすることを目的としている。
【０００５】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
図１において、コンピュータセンタ１は、多数の利用者端末１１に各種サービスを提供するセンタである。
【０００６】
利用者端末１１は、コンピュータセンタ１に接続して各種サービスの提供を要求するものである。
カード１４は、乱数で更新したキーを格納して保存するものである。
【０００７】
次に、動作を説明する。
利用者端末１１がデータをカード１４から読み出したキーの一部分によって暗号化して送信し、当該送信に対応して返信されたデータを受信してキーの一部分によって送信データを復号、および受信したデータ（乱数）をキーの他の一部分によって復号し当該復号した乱数によってキーを更新してカード１４に書き込むようにしている。
【０００８】
また、コンピュータセンタ１が受信したデータをキーの一部分によって復号し、復号したデータに対する送信データをキーの一部分によって暗号化して送信、および乱数を発生してキーの他の一部分によって暗号化して送信すると共に乱数によってキーを更新して保存するようにしている。
【０００９】
これらの際に、利用者端末１１のハードウェア固有情報、ソフトウェア固有情報、および認証用プログラム固有情報の１つ以上をハッシュ化してその値をカード１４から読み出したキーの一部分によって暗号化してコンピュータセンタ１に送信し、利用者端末１１の認証を行うようにしている。
【００１０】
また、キーの一部分およびキーの他の一部分を、キーの前半の部分および後半の部分、あるいはキーの後半の部分および前半の部分とするようにしている。
また、乱数によってキーの更新として、乱数をキーに加算して新たなキーを生成し、カード１４に保存などするようにしている。
【００１１】
また、利用者端末１１で送信データを受信したときに、利用者端末１１とコンピュータセンタ１とで同期してキーを更新するようにしている。
また、キーの更新毎に利用者端末１１側で利用者のカード１４内のキーを更新するようにしている。
【００１２】
従って、乱数を暗号化して相手に送信して復号し当該乱数で元のキーを更新すると共に、利用者端末１１のハードウェア固有情報、ソフトウェア固有情報および認証用プログラム自身の内容の１つ以上を暗号化して送信し利用者端末１１の認証を行うことにより、復号のためのキーの解読を不可にすると共に通信の相手の認識を可にすることが可能となる。
【００１３】
【発明の実施の形態】
次に、図１から図３を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１４】
図１は、本発明のシステム構成図を示す。
図１において、コンピュータセンタ１は、多数の利用者端末１１に各種サービスを提供するセンタであって、ここでは、配送システム２、鍵管理システム３、および乱数生成システム４などから構成されるものである。
【００１５】
配送システム２は、キー（鍵）を更新する乱数を暗号化して送信したり、データをキー（鍵）で暗号化して送信したりなどの各種配送を行うものである。
鍵管理システム３は、キー（鍵）を管理するものである。
【００１６】
乱数生成システム４は、乱数を生成するものである。
利用者端末１１は、コンピュータセンタ１に接続して各種サービスの提供を要求するものであって、ここでは、端末自動認識手段１２、累積乱数管理手段１３、カード１４などから構成されるものである。
【００１７】
端末自動認識手段１２は、端末を自動的に認識するものである。
累積乱数管理手段１３は、乱数をもとにキーを更新して管理するものである。カード１４は、乱数で更新したキーを格納して保存するものであって、ＩＣカード、フロッピィディスクなどの媒体である。
【００１８】
網２１は、公衆回線などの各種網（ネットワーク）である。
次に、図２のフローチャートの順番に従い、図１の構成のもとに、利用者用カードおよび管理者用カードを生成する手順を詳細に説明する。
【００１９】
図２は、本発明の動作説明フローチャート（カード生成）を示す。
図２において、Ｓ１は、センタ（コンピュータセンタ）で管理者の乱数（Ｒ１）を発生する。
【００２０】
Ｓ２は、カードに乱数を格納する。これは、Ｓ１で発生した乱数（Ｒ１）を管理者用カード３２に格納する。
Ｓ１１は、管理者がカードをセットアップする。これは、Ｓ２でコンピュータセンタ１で管理者用カード３２に乱数（Ｒ１）を書き込み、これを持参した管理者が利用者端末１１のカード読取器に挿入して読み取らせる。
【００２１】
Ｓ１２は、ハードウェア固有情報の取得を行う。ハードウェア固有情報は、例えばＯＳ（オペレーティングシステム）をブートするハードディスク（例えばｗｉｎｄｏｗｓではドライブＣのハードディスク）のメーカ、型番、ファームウェアバージョンとシリアル番号、ＬＡＮ接続機構のＭＡＣアドレスなどの利用者端末１１のハードウェア固有の情報である。
【００２２】
Ｓ１３は、ソフトウェア固有情報の取得を行う。ソフトウェア固有情報は、プロダクト番号、初回インストール日付、時刻などの利用者端末１１のソフトウェア固有の情報である。
【００２３】
Ｓ１４は、ハード＋ソフト＋認証用プログラム自身の内容をハッシュ化する。これは、Ｓ１２で取得した利用者端末１１のハードウェア固有情報、Ｓ１３で取得した利用者端末１１のソフトウェア固有情報に、認証用プログラム自身の内容を加算してハッシュ化する（ハッシュ化した値からは元の内容を識別することが困難である値にする）。
【００２４】
Ｓ１５は、乱数（Ｒ１）の後半部をキーに、ハッシュ値と管理者ＩＤ、日付・時刻を暗号化、および管理者ＩＤ、日付・時刻を付加して送信する。これは、管理者用カード３２から読み出したキー（乱数（Ｒ１））の後半部（例えば２５６ビットのキーの後半部の１２８ビット）をキーに、Ｓ１４でハッシュ化した値と管理者ＩＤ、日付・時刻を暗号化し、これに管理者ＩＤ、日付・時刻を付加してコンピュータセンタ１に送信する。
【００２５】
Ｓ４は、Ｓ１５の送信されたデータを受信したコンピュータセンタ１で、管理者ＩＤをもとにＤＢ上の乱数（Ｒ１）の後半部をキーにして当該受信したデータを復号し、ハッシュ値、管理者ＩＤ、日付・時刻を生成する。
【００２６】
Ｓ５は、Ｓ４で復号した管理者ＩＤと日付・時刻を照合する。ＯＫのときはＳ６に進む。ＮＧの場合には、利用者資格無しとして終了する。
Ｓ６は、ハッシュ値をセンター共通キーで暗号化してＤＢ（利用者固有情報３３）に格納する。
【００２７】
Ｓ７は、乱数（Ｒ２、Ｒ３）を発生する。これは、利用者用の乱数（Ｒ２）、および管理者用の乱数（Ｒ３）をそれぞれ発生する。
Ｓ８は、Ｓ７で発生した乱数（Ｒ２、Ｒ３）を、乱数（Ｒ１）（キー）の前半部で暗号化する。そして、利用者端末１１に送信する。
【００２８】
Ｓ９は、乱数累積（乱数（Ｒ２）＋乱数（Ｒ１）→キー（利用者用キー））を行う。
Ｓ１０は、乱数累積（乱数（Ｒ３）＋乱数（Ｒ１）→キー（管理者用キー））を行う。
【００２９】
Ｓ１１は、利用者用キー、管理者用キーをＤＢにセンタ共通キーで暗号化して格納する。これにより、鍵管理ＤＢ３４に利用者用キーおよび管理者用キーがセンタ共通キーで暗号化されて格納されることとなる。
【００３０】
Ｓ１６は、Ｓ８で送信された暗号化されたデータを受信し、乱数（Ｒ２、Ｒ３）を、乱数（Ｒ１）（キー）の前半部で復号する。
Ｓ１７は、乱数累積（乱数（Ｒ２）＋乱数（Ｒ１）→キー（利用者用キー））を行う。
【００３１】
Ｓ１８は、乱数累積（乱数（Ｒ３）＋乱数（Ｒ１）→キー（管理者用キー））を行う。
Ｓ１９は、利用者用キーを利用者用カード３５に書き込む。これにより、利用者用カード３５内のキーが、乱数（Ｒ２）（キー）に乱数（Ｒ３）を累積して利用者用キーを生成して利用者用カード３５に書き込むことが可能となる。
【００３２】
Ｓ２０は、管理者用キーを管理者用カード３２に書き込む。これにより、管理者用カード３２内のキーが、乱数（Ｒ１）（キー）に乱数（Ｒ３）を累積して管理者用キーを生成して管理者用カード３２に書き込むことが可能となる。これにより、管理者が更に別の利用者端末でセットアップを行う場合でも、別の管理者用の利用者カギの作成が可能となる。
【００３３】
以上によって、管理者が乱数（Ｒ１）を管理者用カード３２に書き込んで持参し、新規の利用者端末１１のセットアップ時に当該利用者端末１１のハードウェア固有情報、ソフトウェア固有情報、認証用プログラム自身の内容をハッシュ化してハッシュ値と管理者ＩＤ、日付・時刻について、乱数（Ｒ１）の後半部をキーに暗号化してコンピュータセンタ１に送信し、管理者ＩＤと日付・時刻の照合を行い、ＯＫのときにハッシュ値をセンタ共通キーで暗号化して保存、および乱数（Ｒ２、Ｒ３）を生成して乱数（Ｒ１）（キー）の前半部で暗号化して利用者端末１１に送信すると共に乱数累積（乱数（Ｒ２）＋乱数（Ｒ１）→キー（利用者用キー）を更新、および乱数（Ｒ３）＋乱数（Ｒ１）→キー（管理者用キー））に更新）し、鍵管理ＤＢ３４にセンタ共通キーで暗号化して保存することが可能となる。一方、利用者端末１１でもコンピュータセンタ１から送信されてきたデータをキーの前半部で復号して乱数（Ｒ２、Ｒ３）を得て、同様に、乱数累積（乱数（Ｒ２）＋乱数（Ｒ１）→キー（利用者用キー）を更新、および乱数（Ｒ３）＋乱数（Ｒ１）→キー（管理者用キー））に更新）し、利用者用カード３５および管理者用カード３２にそれぞれのキーを格納することが可能となる。
【００３４】
次に、図３のフローチャートの順番に従い、図１の構成のもとに、利用者端末１１がコンピュータセンタ１に照会するときの手順を詳細に説明する。
図３は、本発明の動作説明フローチャート（照会）を示す。
【００３５】
図３において、Ｓ４１は、照会キーを入力する。これは、利用者が利用者端末１１を操作して照会キー（コンピュータセンタ１に照会するキー（検索用のキー））をキー入力あるいは画面上から選択して入力する。
【００３６】
Ｓ４２は、ハードウェア固有情報の取得を行う。ハードウェア固有情報は、例えばＯＳ（オペレーティングシステム）をブートするハードディスク（例えばｗｉｎｄｏｗｓではドライブＣのハードディスク）のメーカ、型番、ファームウェアバージョンとシリアル番号、ＬＡＮ接続機番のＭＡＣアドレスなどの利用者端末１１のハードウェア固有の情報である。
【００３７】
Ｓ４３は、ソフトウェア固有情報の取得を行う。ソフトウェア固有情報は、プロダクト番号、初回インストール日付、時刻などの利用者端末１１のソフトウェア固有の情報である。
【００３８】
Ｓ４４は、ハード＋ソフト＋認証用プログラム自身の内容をハッシュ化する。これは、Ｓ４２で取得した利用者端末１１のハードウェア固有情報、Ｓ４３で取得した利用者端末１１のソフトウェア固有情報に、認証用プログラム自身の内容を加算してハッシュ化する（所定の範囲内の任意の値にする）。
【００３９】
Ｓ４５は、利用者用キーの後半部をキーに、ハッシュ値と利用者ＩＤ、日付・時刻を暗号化、および利用者ＩＤ、日付・時刻を付加して送信する。これは、利用者用カード３５から読み出したキー（図２のＳ１９で書き込んだキー）の後半部（例えば２５６ビットのキーの後半部の１２８ビット）をキーに、Ｓ４４でハッシュ化した値と利用者ＩＤ、日付・時刻を暗号化し、これに利用者ＩＤ、日付・時刻を付加してコンピュータセンタ１に送信する。
【００４０】
Ｓ２１は、Ｓ４５の送信されたデータを受信したコンピュータセンタ１で、利用者ＩＤをもとにＤＢ上の利用者用キーの後半部をキーにして当該受信したデータを復号し、ハッシュ値、利用者ＩＤ、日付・時刻を生成する。
【００４１】
Ｓ２２は、Ｓ２１で復号した利用者ＩＤと日付・時刻を照合する。ＯＫのときはＳ２３に進む。ＮＧの場合には、利用者資格無しとして終了する。
Ｓ２３は、ＤＢ上の利用者固有情報をセンタ共通キーで復号する。
【００４２】
Ｓ２４は、ハッシュ値を照合する。これは、Ｓ２１で利用者から受信して利用者用キーの後半部で復号したハッシュ値と、センタのＤＢ上の利用者固有情報をセンタ共通キーで復号したハッシュ値とが一致するか照合する。ＯＫの場合には、Ｓ２５に進む。ＮＧの場合には、利用資格無しとして終了する。
【００４３】
Ｓ２５は、乱数（Ｒｎ）を発生する。これは、利用者用キーを更新するための乱数（Ｒｎ）を発生する。
Ｓ２６は、Ｓ２５で発生した乱数（Ｒｎ）を、利用者用キーの前半部で暗号化する。そして、利用者端末１１に送信する。
【００４４】
Ｓ４６は、Ｓ２６で送信されたデータを利用者端末１１で受信し、乱数（Ｒｎ）を利用者用キーの前半部で復号する。これにより、コンピュータセンタ１で生成した乱数（Ｒｎ）を専用の独立したキー（利用者用キーの前半部）で暗号化して送信し、受信側で復号することで、例えば途中で第三者に取得されても、乱数（Ｒｎ）を利用者用キーの前半部で暗号化して送信しているため、多数回の復号化を試行しても終了条件が不明（データが乱数のために規則性が不明で解読の終了条件が不明）であり、復号キーを解読することが論理的に不可能となり、信頼性を向上できる。
【００４５】
Ｓ４７は、照会キーを利用者用キーの後半部で暗号化する。そして、コンピュータセンタ１に送信する。
Ｓ２７は、Ｓ４７で送信された暗号化された照会キーを受信し、復号して検索する。
【００４６】
Ｓ２８は、検索結果を利用者用キーの後半部で暗号化し回答する。
Ｓ４８は、Ｓ２８で送信された検索結果の回答データを復号（利用者用キーの後半部で復号）して、回答データを画面上に表示する。
【００４７】
Ｓ４９は、利用者端末１１側で終結処理を行う。
Ｓ２９は、コンピュータセンタ１側で終結処理を行う。これらＳ４９およびＳ２９は、利用者端末１１およびコンピュータセンタ１の両者で同期をとって一連の照会キーによる照会業務の終結を確認する。
【００４８】
Ｓ５０は、利用者端末１１で乱数累積（乱数（Ｒｎ）＋利用者用キー→利用者用キー）を行う。
Ｓ５１は、利用者用キーの更新（新利用者用キーを利用者用カードに書き込み更新）する。これにより、照会毎に、利用者用カード３５には、Ｓ４５で読み込んだ利用者用キーにコンピュータセンタ１から送信を受けた乱数（Ｒｎ）を累積した後の新利用者用キーが書き込まれて更新されることとなる。
【００４９】
Ｓ３０は、コンピュータセンタ１で乱数累積（乱数（Ｒｎ）＋利用者用キー→利用者用キー）を行う。
Ｓ３１は、利用者用キーの更新（新利用者用キーをＤＢにセンタ共通キーで暗号化して格納）する。これにより、利用者端末１１から照会毎に、鍵管理ＤＢ３４には、Ｓ３３で読み込んだ利用者用キーに、コンピュータセンタ１で発生した乱数（Ｒｎ）を累積した後の新利用者用キーがセンタ共通キーで暗号化して書き込まれて更新されることとなる。
【００５０】
以上によって、利用者が利用者端末１１を操作して照会を行う場合、利用者端末１１のハードウェア固有情報、ソフトウェア固有情報および認証用プログラム自身の内容をもとにハッシュ値を生成し、利用者用カード３５から読み込んだ利用者用キーの後半部で暗号化および利用者ＩＤと日付・時刻を付加してコンピュータセンタ１に送信し、コンピュータセンタ１では受信したデータの利用者ＩＤ、日付・時刻に該当する利用者用キーの後半部で復号し、利用者ＩＤと日付・時刻を照合して利用者端末１１の認証を行い、ＯＫのときに更にハッシュ値の照合して利用者の認証を行い、ＯＫのときに乱数（Ｒｎ）を発生して利用者用キーの前半部で暗号化して利用者端末１１に送信し、これを受信した利用者端末１１で利用者用キーの前半部で復号して保持する。そして、照会キーを利用者用キーの後半部で暗号化してコンピュータセンタ１に送信して復号し、これをもとにＤＢ検索を行い、その検索結果データを利用者用キーの後半部で暗号化して利用者端末１１に送信する。受信したデータを利用者用キーの後半部で復号化して画面に表示などする。照会が終了したときに、利用者端末１１側では保持しておいた乱数（Ｒｎ）を利用者用キーに累積して新たな利用者用キーを生成して利用者用カード３５に書き込んで更新し、一方、コンピュータセンタ１側でも同様に保持しておいた乱数（Ｒｎ）を利用者用キーに累積して新たな利用者用キーを生成して鍵管理ＤＢ３４に書き込んで更新し、同期をとって利用者用キーの更新を行う。尚、新利用者用キーは、利用者用キーに乱数（Ｒｎ）を累積して生成したが、これに限られず、利用者用キーを乱数（Ｒｎ）で何らかの方法（例えば累積以外の四則演算や関数などの方法）で毎回異なるランダムな値に更新するようにすればよい。
【００５１】
【発明の効果】
以上説明したように、本発明によれば、乱数を暗号化して相手に送信して復号し当該乱数で元のキーを更新すると共に利用者端末のハードウェア固有情報、ソフトウェア固有情報および認証プログラム自身の内容の１つ以上をもとにハッシュ値を生成して暗号化して送信し相手側で確認する構成を採用しているため、復号のためのキーの解読を不可にすると共に正当な通信相手の認識が可能となる。
【００５２】
また、万一、利用者用カードをコピーされても使用された場合は、正規の利用者カードを使用すると利用資格無しとなるため、第三者が不正にコピーして使用したことが判る。従って、キー（例えば秘密キー）を知りえる者の内部犯罪に対しても完全な暗号化と認証が可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明フローチャート（カード生成）である。
【図３】本発明の動作説明フローチャート（照会）である。
【符号の説明】
１：コンピュータセンタ
２：配送システム
３：鍵管理システム
４：乱数発生システム
１１：利用者用端末
１２：端末自動認識手段
１３：累積乱数管理手段
１４：カード
【図１】
0003625658.tif 000002
【図２】
0003625658.tif 000003
【図３】
0003625658.tif 000004