(57)【特許請求の範囲】
【請求項１】
送信者用情報処理装置と受信者用情報処理装置との間における暗号化データ通信方法であって、
前記送信者用情報処理装置では、前記送信者用情報処理装置と前記受信者用情報処理装置との間で予め定められたパスワードを用いて前記電子データと前記電子データの識別情報であるデータＩＤとを暗号化し、暗号化により得られた暗号ファイルと当該暗号ファイルを復号する機能を有する受信側復号用プログラムとを含む自己復号型暗号ファイルを送信し、
前記受信者用情報処理装置では、前記パスワードが入力されたときに当該自己復号型暗号ファイルに含まれた前記受信側復号用プログラムにより前記暗号ファイルから前記パスワードを用いて前記電子データとデータＩＤとを復号する暗号化データ通信方法において、
前記送信者用情報処理装置において、前記電子データから電子データ認証情報を生成し、所定のデータベースに前記電子データ認証情報と前記データＩＤとを記憶させ、前記受信側復号用プログラムとして、前記復号された電子データから電子データ認証情報を生成する機能を更に有するプログラムが使用され、
前記受信者用情報処理装置において、前記自己復号型暗号ファイルに含まれた前記受信側復号用プログラムにより、前記復号された電子データから電子データ認証情報を生成し、前記データベースに記憶された電子データ認証情報と前記復号された電子データから生成された前記電子データ認証情報の照合を前記復号されたデータＩＤに基づいて要求することを特徴とする暗号化データ通信方法。
【請求項２】
入力されたパスワードを用いて送信すべき電子データと当該電子データの識別情報であるデータＩＤとを暗号ファイルに暗号化する手段と、前記電子データから電子データ認証情報を生成する手段と、前記電子データの受信者が問い合わせ可能な所定のデータベースに前記電子データ認証情報と前記データＩＤとを記憶させる手段と、前記暗号ファイルと受信側復号用プログラムとを含み、当該受信側復号用プログラムが、受信側において前記パスワードが入力されたときに当該入力されたパスワードを用いて当該暗号ファイルから前記電子データとデータＩＤとを復号し、当該復号された電子データから、当該復号されたデータＩＤに基づいて前記データベースに記憶された電子データ認証情報との照合を行うための電子データ認証情報を生成する機能を有している自己復号型暗号ファイルを生成する手段と、を備えることを特徴とする暗号化データ生成システム。
【請求項３】
前記暗号化手段は、前記電子データと当該電子データの識別情報を暗号ファイルに変換し、前記記憶させる手段は、前記電子データ認証情報生成手段により生成された前記電子データ認証情報を、前記識別情報を用いて検索可能なように前記データベースに記憶させる、ことを特徴とする請求項２記載の暗号化データ生成システム。
【請求項４】
前記電子データに付加されるべきソルトを発生する手段を更に備え、前記暗号化手段は、前記電子データと前記データＩＤと前記ソルトの組を暗号ファイルに暗号化し、前記電子データ認証情報を生成する手段は、前記電子データと前記ソルトの組から電子データ認証情報を生成し、前記受信側復号用プログラムは、前記暗号ファイルから復号された前記電子データと前記ソルトの組から電子データ認証情報を生成する、ことを特徴とする請求項２又は３記載の暗号化データ生成システム。
【請求項５】
前記暗号化手段は、暗号化のために入力された前記パスワードを当該パスワードより長い共通鍵に変換し、当該共通鍵を用いて暗号化を実行し、前記受信側復号用プログラムは、受信側において入力された前記パスワードを当該パスワードより長い共通鍵に変換し、
当該共通鍵を用いて復号を実行するようにプログラムされ、前記暗号化手段による暗号化のために入力された前記パスワードから前記共通鍵への変換、前記電子データ認証情報を生成する手段による電子データ認証情報の生成並びに前記受信側復号用プログラムによる、受信側において入力された前記パスワードから前記共通鍵への変換及び前記電子データ認証情報の生成は、同じハッシュ関数の値を求める計算により実行される、ことを特徴とする請求項２から４のいずれか一つに記載の暗号化データ生成システム。
【請求項６】
前記データベースを管理する情報処理装置を更に有し、当該情報処理装置は、前記記憶させる手段からの記憶要求に応答して、前記電子データ認証情報生成手段により生成された前記電子データ認証情報を前記データベースに記憶し、受信側から送信された照合要求に応答して、当該記憶された電子データ認証情報と当該照合要求に含まれた電子データ認証情報とを比較照合して、その結果を前記受信側に通知することを特徴とする請求項２から５のいずれか一つに記載の暗号化データ生成システム。
【請求項７】
入力されたパスワードを用いて送信すべき電子データと該電子データの識別情報であるデータＩＤとを暗号ファイルに暗号化する暗号化ステップと、前記電子データから電子データ認証情報を生成するステップと、前記電子データの受信者が問い合わせ可能な所定のデータベースに前記電子データ認証情報と前記データＩＤとを記憶させるステップと、前記暗号ファイルと受信側復号用プログラムとを含み、当該受信側復号用プログラムが、受信側において前記パスワードが入力されたときに当該入力されたパスワードを用いて当該暗号ファイルから前記電子データとデータＩＤとを復号するステップと、当該復号された電子データから、当該復号されたデータＩＤに基づいて前記データベースに記憶された電子データ認証情報との照合を行うための電子データ認証情報を生成する機能を有している自己復号型暗号ファイルを生成するステップと、をコンピュータに実行させるプログラムを記録した記録媒体。
【請求項８】
前記暗号化ステップは、前記電子データと当該電子データの識別情報を暗号ファイルに変換し、
前記記憶させるステップは、前記電子データ認証情報生成手段により生成された前記電子データ認証情報と前記電子データの識別情報であるデータＩＤとを、前記データＩＤを用いて検索可能なように前記データベースに記憶させる、ことを特徴とする請求項７記載の記録媒体。
【請求項９】
前記電子データに付加されるべきソルトを発生するステップを更に含み、前記暗号化ステップは、前記電子データと前記データＩＤと前記ソルトの組を暗号ファイルに暗号化し、
前記電子データ認証情報を生成するステップは、前記電子データと前記ソルトの組から電子データ認証情報を生成し、
前記受信側復号用プログラムは、前記暗号ファイルから復号された前記電子データと前記ソルトの組から電子データ認証情報を生成する、ことを特徴とする請求項７又は８記載の記録媒体。
【請求項１０】
前記暗号化ステップは、暗号化のために入力された前記パスワードを当該パスワードより長い共通鍵に変換し、当該共通鍵を用いて暗号化を実行し、
前記受信側復号用プログラムは、受信側において入力された前記パスワードを当該パスワードより長い共通鍵に変換し、当該共通鍵を用いて復号を実行し、前記暗号化ステップによる暗号化のために入力された前記パスワードから前記共通鍵への変換、前記電子データ認証情報を生成するステップによる電子データ認証情報の生成並びに前記受信側復号用プログラムによる、受信側において入力された前記パスワードから前記共通鍵への変換及び電子データ認証情報の生成は、同じハッシュ関数の値を求める計算により実行される、ことを特徴とする請求項７から９のいずれか一つに記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電子データを暗号化して得られる暗号ファイルと復号プログラムとを結合したいわゆる自己復号型暗号ファイルを受信者に送信する暗号化データ通信方法並びにそのための暗号化データ生成システム及び記録媒体に関する。
【０００２】
【従来の技術】
すでにいろいろの暗号化復号技術が実用化されているが、多くの場合、暗号ファイルの送信者が用いる暗号化方法に対応した復号方法を実行するための復号プログラム又は復号装置を受信者が使用することが前提となっている。しかし、受信者がこのような復号プログラムあるいは復号装置をあらかじめ使用できる状態にない場合もある。このような受信者に電子データを暗号化して送信する方法として、暗号ファイルとそれを復号するための受信側復号用のプログラムとを結合した、いわゆる自己復号型暗号ファイルを受信者に送信する暗号化データ通信方法が既に実用化されている。
【０００３】
自己復号型暗号ファイルを使用する場合、送信者と受信者の間であらかじめパスワードが定められる。送信者は、このパスワードを用いて電子データを暗号化する。得られた暗号ファイルと、受信側復号用プログラムとを結合して自己復号型暗号ファイルを生成し、受信者に送信する。
【０００４】
受信された自己復号型暗号ファイルは、実行されると、パスワードの入力を受信者に求める。受信者が、上記パスワードを入力すると、自己復号型暗号ファイルは、自己復号型暗号ファイル内の暗号ファイルと受信側復号用プログラムを分解し、受信側復号用プログラムによりパスワードを用いて暗号ファイルを復号する。したがって、受信者は、自己復号型暗号ファイルを実行するだけでよく、復号プログラムあるいは復号操作を意識しないで送信された電子データを復号することができる。
【０００５】
【発明が解決しようとする課題】
しかし、従来の自己復号型暗号ファイルを用いる暗号化復号方法では、自己復号型暗号ファイルが正当な送信者により送信された電子データであるか否かという、電子データの正当性を認証することができない。暗号技術においては、受信されたデータの正当性の認証はいわゆるメッセージ認証と呼ばれることがある。本明細書では、メッセージ認証を電子データ認証とも呼ぶことがある。
【０００６】
例えば、正当な送信者が送信した自己復号型暗号ファイルがインターネットのようなネットワークを転送される途中で正当な送信者以外の第３者により改竄される可能性がある。例えば、正当な送信者が送信した電子データとは異なる偽の電子データにより自己復号型暗号ファイル内の暗号ファイルが置換され、当該自己復号型暗号ファイル内の受信側復号用プログラムが実行されないように自己復号型暗号ファイルが改竄されるかもしれない。このような自己復号型暗号ファイルを受信者が実行すると、偽の電子データが正当な送信者から送信された電子データであるかのように受信者が錯覚することになる。
【０００７】
あるいは、不正な第３者が、偽の電子データを当該第３者が選択した暗号化アルゴリズムにより暗号化して偽の暗号ファイルを生成し、その偽の暗号ファイルでもって、正当な送信者が送信した自己復号型暗号ファイルの中の暗号ファイルを置換し、その自己復号型暗号ファイル内の受信側復号用プログラムを、当該偽の暗号ファイルを無条件に復号するようにプログラムされた偽りの受信側復号用プログラムにより置換することも考えられる。このような偽の自己復号型暗号ファイルを受信者が実行すると、偽の受信側復号用プログラムが実行されて偽の電子データが復号されることになり、受信者は、この偽の電子データを正当な送信者から送信された電子データであると錯覚することが起きうる。
【０００８】
また、いわゆるなりすましが発生するかもしれない。すなわち、正当な送信者以外の第３者が、正当な送信者に代わって自己復号型暗号ファイルを受信者に送信するかもしれない。更に極端な場合には、正当な送信者が送信した自己復号型暗号ファイル内の暗号ファイルが解読され、暗号ファイル自体が改竄されるかもしれない。
【０００９】
このように、従来の自己復号型暗号ファイルを使用する暗号化データ通信方法は、受信者にとって便利である反面、電子データの正当性の認証を行うことができないという問題を含んでいる。
【００１０】
したがって、本発明の目的は、自己復号型暗号ファイルを用いて暗号化データを通信することができ、更に受信者が受信した電子データの正当性を認証することを可能にする暗号化データ通信方法並びにそのために使用する自己復号型暗号ファイルを生成する暗号化データ生成システム並びに記録媒体を提供することである。
【００１１】
【課題を解決するための手段】
上記目的を達成するために、本発明に係る暗号化データ通信方法は、電子データの送信者と受信者との間であらかじめパスワードを定め、送信側では、前記パスワードを用いて前記電子データを暗号化し、暗号化により得られた暗号ファイルと当該暗号ファイルを復号する機能を有する受信側復号用プログラムを含む自己復号型暗号ファイルを送信し、受信側では、前記パスワードが入力されたときに当該自己復号型暗号ファイルに含まれた前記受信側復号用プログラムにより当該入力されたパスワードを用いて前記暗号ファイルから前記電子データを復号する暗号化データ通信方法において、送信側において、前記電子データから電子データ認証情報を生成し、所定のデータベースに前記電子データ認証情報を記憶させステップを含み、前記受信側復号用プログラムとして、前記復号された電子データから電子データ認証情報を生成する機能を更に有する受信側復号用プログラムが使用される。
【００１２】
本発明に係る上記暗号化データ通信方法は、更に、受信側において、前記自己復号型暗号ファイルに含まれた前記受信側復号用プログラムにより、前記復号された電子データから電子データ認証情報を生成し、前記データベースに記憶された電子データ認証情報と前記復号された電子データから生成された前記電子データ認証情報との照合を要求する、ステップを含むものである。
【００１３】
これにより、自己復号型暗号ファイルを用いて暗号化データを通信することができ、しかも受信者は受信した電子データの正当性を認証することができる。
【００１４】
本発明に係る暗号化データ生成システムは、入力されたパスワードを用いて送信すべき電子データを暗号ファイルに暗号化する手段と、前記電子データから電子データ認証情報を生成する手段と、前記電子データの受信者が問い合わせ可能な所定のデータベースに前記電子データ認証情報を記憶させる手段と、前記暗号ファイルと受信側復号用プログラムとを含み、当該受信側復号用プログラムが、受信側において前記パスワードが入力されたときに当該入力されたパスワードを用いて当該暗号ファイルから前記電子データを復号し、当該復号された電子データから電子データ認証情報を生成する機能を有している自己復号型暗号ファイルを生成する手段と、を備えるものである。
【００１５】
これにより、暗号化データとともに受信側復号用プログラムを含み、更に受信者が受信した電子データの正当性を認証することを可能にする自己復号型暗号ファイルを生成することができる。すなわち、本暗号化データ生成システムにより生成された自己復号型暗号ファイルを受信した受信側の情報処理装置では、前記受信側復号用プログラムにより、パスワードの入力を要求し、同じ受信側復号用プログラムにより、前記受信側の情報処理装置に入力されたパスワードを用いて前記暗号ファイルから前記電子データを復号し、同じ受信側復号用プログラムにより、前記復号された電子データから電子データ認証情報を生成したうえで、その後受信側において、前記データベースに記憶された前記電子データ認証情報と前記復号された電子データから生成された前記電子データ認証情報との照合を要求するステップを実行すればよい。
【００１６】
より具体的には、前記暗号化手段は、前記電子データと当該電子データの識別情報を暗号ファイルに変換し、前記記憶させる手段は、前記電子データ認証情報生成手段により生成された前記電子データ認証情報を、前記識別情報を用いて検索可能なように前記データベースに記憶させるものである。
【００１７】
これにより、複数の電子データ認証情報が前記データベースに記憶された状態で、受信された任意の自己復号型暗号ファイルから生成された電子データ認証情報と比較照合されるべき電子データ認証情報を上記データベースから選択して読み出すことができる。
【００１８】
望ましくは、前記電子データに付加されるべきソルトを発生する手段を更に備え、前記暗号化手段は、前記電子データと前記ソルトの組を暗号ファイルに暗号化し、前記電子データ認証情報を生成する手段は、前記電子データと前記ソルトの組から電子データ認証情報を生成し、前記受信側復号用プログラムは、復号された前記電子データと前記ソルトの組から電子データ認証情報を生成する。
【００１９】
これにより、送信すべき電子データから生成される電子データ認証情報をランダムに変更することができる。したがって、第３者が自己復号型暗号ファイルを改竄するとしても、正しい電子データ認証情報を生成するように自己復号型暗号ファイルを改竄することが難しくなり、自己復号型暗号ファイルの改竄を見つけることが容易になる。
【００２０】
更に望ましくは、前記暗号化手段は、暗号化のために入力された前記パスワードを当該パスワードより長い共通鍵に変換し、当該共通鍵を用いて暗号化を実行し、前記受信側復号用プログラムは、受信側において入力されたパスワードを当該パスワードより長い共通鍵に変換し、当該共通鍵を用いて復号を実行するするようにプログラムされ、更には、前記暗号化手段による、暗号化のために入力された前記パスワードから前記共通鍵への変換、前記電子データ認証情報を生成する手段による電子データ認証情報の生成並びに前記受信側復号用プログラムによる、受信側において入力された前記パスワードから前記共通鍵への変換及び前記電子データ認証情報の生成は、同じハッシュ関数の値を求める計算により実行される。
【００２１】
これにより、パスワードより長い共通鍵を使用して電子データを暗号化することができ、得られた暗号ファイルを第３者に解読しにくくすることができる。しかも、前記暗号化手段による、前記パスワードから前記共通鍵への変換と前記電子データ認証情報を生成する手段による電子データ認証情報の生成とが同じハッシュ関数の値を求める計算により実行されるので、これらの二つの手段のうち、上記同じハッシュ関数の値を求める部分を共通の手段とすることができる。
【００２２】
更には、前記受信側復号用プログラムによる、受信側において入力された前記パスワードから前記共通鍵への変換及び前記電子データ認証情報の生成が同じハッシュ関数の値を求める計算により実現できるので、受信側において入力された前記パスワードを前記共通鍵へ変換するためのプログラム部分と前記電子データ認証情報を生成するためのプログラム部分のうち、上記同じハッシュ関数の値を求める二つのプログラム部分を共通のプログラムにより実現できる。したがって、自己復号型暗号ファイルのサイズも小さくでき、自己復号型暗号ファイルのネットワークでの転送時間を減らすことができる。このように、受信側において入力された前記パスワードから前記共通鍵への変換を行うためのプログラム部分と電子データ認証情報を生成するためのプログラム部分の一部又は全部を共用する場合も、本発明では、電子データ認証情報生成用のプログラム部分が受信側復号用プログラムに含まれていると見なす。
【００２３】
望ましくは、本発明に係る暗号化データ生成システムは、前記データベースを管理する情報処理装置を更に有し、当該情報処理装置は、前記記憶させる手段からの記憶要求に応答して、前記電子データ認証情報生成手段により生成された前記電子データ認証情報を前記データベースに記憶し、受信側から送信された照合要求に応答して、当該記憶された電子データ認証情報と当該照合要求に含まれた電子データ認証情報とを比較照合して、その結果を前記受信側に通知するものである。
【００２４】
これにより、照合されるべき電子データ認証情報を含んだ照合要求を受信側から上記データベース管理用の情報処理装置に送信すれば、当該処理装置で、送信側で生成され前記データベースに記憶された電子データ認証情報と受信側で生成され電子データ認証情報との比較照合が実行され、受信者は受信した電子データの正当性についての認証結果を得ることができる。
【００２５】
本発明に係る記録媒体は、入力されたパスワードを用いて送信すべき電子データを暗号ファイルに暗号化し、前記電子データから電子データ認証情報を生成し、前記電子データの受信者が問い合わせ可能な所定のデータベースに前記電子データ認証情報を記憶させ、前記暗号ファイルと前記暗号ファイルと受信側復号用プログラムとを含み、当該受信側復号用プログラムが、受信側において前記パスワードが入力されたときに当該入力されたパスワードを用いて当該暗号ファイルから前記電子データを復号し、当該復号された電子データから電子データ認証情報を生成する機能を有している自己復号型暗号ファイルを生成する、ステップをコンピュータに実行させるプログラムを記録したものである。
【００２６】
【発明の実施の形態】
以下、本発明に係る暗号化データ通信方法並びにそのための暗号化データ生成システムの実施の形態を図面を参照して詳細に説明する。
【００２７】
図１は、本発明に係る暗号化データ通信方法の原理を示す図である。以下の説明においては、本発明として実施するのが望ましい処理が説明されるが、本発明では、以下に説明する処理を全て実施する必要は必ずしもなく、一部の処理は省略可能である。更に、一部の処理は変更してもよい。送信者用の情報処理装置において、まずソルト１２を生成する（ステップＳ１０）。ソルト１２は、電子データ１０の頭又は末尾に付加すべき一定のビット長のランダムなデータである。ソルト１２は、例えば乱数を発生するプログラムにより生成される。
【００２８】
電子データ１０とソルト１２との組から電子データ認証情報１３が生成される（ステップＳ１１）。電子データ認証情報１３は、電子データ１０の正当性を認証するために使用されるデータであり、ソルト１２が付加された電子データ１０を圧縮したデータである。ソルト１２と電子データ１０の組から電子データ認証情報が生成されるので、電子データ認証情報１３は、ソルト１２の値によってもランダムに変化することになる。
【００２９】
このようなソルトを用いて電子データ認証情報を生成し、この電子データ認証情報１３を用いて受信者が、受信した電子データの正当性を確認する方法を採ると、不正な第３者が、自己復号型暗号ファイルを改竄し、なおかつ正しい電子データ認証情報を生成することが難しくなり、自己復号型暗号ファイルの改竄を発見することが容易になる。
【００３０】
電子データ認証情報１３の生成は、例えば、ソルト１２が付加された電子データ１０に対するハッシュ関数の値（ハッシュ値）を算出することにより行われる。送信される電子データ１０に対してハッシュ関数により生成された情報は、暗号技術においてはメッセージダイジェストとも呼ばれている。使用されるハッシュ関数は、一方向性ハッシュ関数でなければならない。すなわち、得られた電子データ認証情報１３から元の、ソルト１２が付加された電子データ１０を計算することが計算量的に不可能でなければならない。
【００３１】
更に、ハッシュ関数は、非衝突一致性を有しなければならない。すなわち、同じハッシュ値を生み出すような元のデータを見つけることは困難でなければならない。このような性質を有するハッシュ関数の例は既に多く知られている。例えばＭＤ５あるいはＳＨＡと呼ばれるハッシュ関数がある。ハッシュ関数を用いて生成された電子データ認証情報１３の長さは、通常元の電子データ１０の長さによらず一定である。
【００３２】
データＩＤ（１１）が、電子データ１０の識別情報としてあらかじめ決定される。電子データ認証情報１３とデータＩＤ（１１）をデータベース１４に記憶させる（ステップＳ１２）。データベース１４は、例えばデータベース管理用の図示しない情報処理装置により管理される。電子データ認証情報１３とデータＩＤ（１１）の記憶要求をこの情報処理装置に発行することにより、この情報処理装置がこれらのデータをデータベース１４に記憶する。
【００３３】
この情報処理装置は、電子データ認証情報１３を、対応するデータＩＤ（１１）により検索可能なように、データベース１４に記憶する。受信者は、この情報処理装置にデータベース１４の内容を問い合わせることができる。データベース１４は、不正な第３者により更新されるのを防ぐためにファイアウオール等の技術により保護される。
【００３４】
電子データ１０とデータＩＤ（１１）とソルト１２は、暗号ファイル１７に暗号化される（ステップＳ１４）。暗号化の前に、受信者と送信者との間であらかじめ定めたパスワード１５から共通鍵１６が生成される（ステップＳ１３）。暗号化処理Ｓ１４は共通鍵を用いる公知の暗号アルゴリズムにしたがって実行される。パスワード１５は、送信者あるいは受信者が記憶しやすいように、比較的短い文字列からなるのが通常である。一方、暗号ファイルを解読しにくくするには、共通鍵のビット数は大きいことが望ましい。したがって、送信者が入力したパスワード１５からビット数の大きい共通鍵１６が生成され、暗号化処理Ｓ１４で使用される。
【００３５】
パスワード１５には、例えば６ないし３１個の英数字が使用され、共通鍵１６には例えば１２８ビットの鍵が使用される。パスワード１５から共通鍵１６の生成は、例えばハッシュ関数を使用して行うことができる。すなわち、パスワード１５に対するハッシュ関数の値（ハッシュ値）が共通鍵として使用される。共通鍵１６のビット数が、電子データ認証情報１３のビット数と同じにすれば、共通鍵１６の生成には、電子データ認証情報１３の生成に使用したハッシュ関数と同じハッシュ関数を使用することができ、このハッシュ関数の値を求めるプログラムあるいは装置を共用することができる。
【００３６】
暗号ファイル１７と当該暗号ファイルを復号する機能を有する受信側復号用プログラム１００が結合されて、自己復号型暗号ファイル２１が生成される（ステップＳ１５）。受信側復号用プログラム１００は、後に詳細に説明するように、受信側において、自己復号型暗号ファイル２１に含まれた暗号ファイル１７を復号するためのいろいろの機能を有する複数のプログラム部分からなる。
【００３７】
これらのプログラム部分は、典型的には、例えば、パスワード入力要求プログラム部分１８、復号プログラム部分１９、電子データ認証情報生成プログラム部分２０である。復号プログラム部分１９は、暗号化処理Ｓ１４が実行する暗号化アルゴリズムに対応するアルゴリズムにしたがって暗号ファイルを復号するプログラム部分である。電子データ認証情報生成プログラム部分２０は、電子データ認証情報生成処理Ｓ１１と同じアルゴリズムにより電子データ認証情報を受信された電子データから生成するためのプログラム部分であり、例えば復号された電子データからハッシュ関数の値を算出するプログラム部分である。受信側復号用プログラム１００には他のプログラム部分も含まれる。これらの他のプログラム部分は、後に受信側復号用プログラム１００の処理を具体的に説明するときに説明する。
【００３８】
受信側復号用プログラム１００は、以下に具体的に説明するいろいろの機能を有すればよく、受信側復号用プログラム１００自身のプログラム構造は特に特定のものでなくてもよい。例えば、パスワード入力要求プログラム部分１８、復号プログラム部分１９、電子データ認証情報生成プログラム部分２０、その他のプログラム部分は、別々のプログラムルーチン、例えば関数あるいはライブラリにより構成されていてもよく、あるいはこれらの複数のプログラム部分が、一つのプログラムに合体されていてもよい。更には、パスワード入力要求プログラム部分１８、復号プログラム部分１９、電子データ認証情報生成プログラム部分２０は、受信側復号用プログラム１００が有する複数の機能を実現するためのプログラム部分の例であり、受信側復号用プログラム１００が有する複数の機能を他の複数のプログラム部分により実現してもよい。
【００３９】
復号プログラム部分１９は、後に説明するように、ステップＳ１４と同様にしてパスワードから共通鍵を生成するプログラム部分を含んでいる。この共通鍵を生成するプログラム部分は、既に説明した共通鍵生成ステップＳ１３での共通鍵１６の生成の場合と同じく、ハッシュ関数の値を求めるプログラムにより構成される。電子データ認証情報生成プログラム部分２０も、ハッシュ関数の値を求めるプログラムにより構成される。
【００４０】
共通鍵１６のビット数が、電子データ認証情報生成処理Ｓ１１により生成される電子データ認証情報１３のビット数と同じときには、電子データ認証情報生成プログラム部分２０には、復号プログラム部分１９内の共通鍵をパスワードから決定するためのハッシュ関数の値を計算するプログラム部分を共用することができる。こうすることにより自己復号型暗号ファイル２１のサイズが小さくなり、自己復号型暗号ファイル２１の転送時間を少なくすることができる。
【００４１】
このように、電子データ認証情報生成プログラム部分２０を自己復号型暗号ファイル２１に別に含めずに、自己復号型暗号ファイル２１内の他のプログラム部分又はその一部を電子データ認証情報の生成に使用するときでも、本発明では、自己復号型暗号ファイル２１には電子データ認証情報生成プログラム部分２０が含まれていると考える。
【００４２】
自己復号型暗号ファイル２１は、実体はプログラムであるが、プログラムに関連した操作を受信者には特に要求しないので、受信者にはまるで文書ファイルのように見える。したがって、暗号ファイルと受信側復号用プログラム１００との結合体を、自己復号型暗号ファイルと呼ぶことにする。自己復号型暗号ファイル２１は、実行されると、パスワード入力要求プログラム部分１８によりパスワードの入力を要求し、パスワードが入力されると、暗号ファイル１７と復号プログラム部分１９と電子データ認証情報生成プログラム部分２０を分解し、それぞれのプログラム部分１９、２０を実行するように構成されている。ここでは、自己復号型暗号ファイル２１に含まれたパスワードの入力を要求するプログラム部分をパスワード入力要求プログラム部分１８と呼んでいる。
【００４３】
自己復号型暗号ファイル２１は、ネットワークを介して図示しない受信者用の情報処理装置にあてて送信される（ステップＳ１６）。受信者用の情報処理装置は、自己復号型暗号ファイル２１を受信する（ステップＳ１７）。自己復号型暗号ファイル２１が、受信者用の情報処理装置で実行されると、まず、パスワード入力要求プログラム部分１８が実行され、受信者にパスワードの入力を要求する（ステップＳ１８）。パスワードが入力されると、自己復号型暗号ファイル２１に含まれた暗号ファイル１７Ａ、復号プログラム部分１９Ａ、電子データ認証情報生成プログラム部分２０Ａ等の複数のプログラム部分が分解され（ステップＳ１９）、暗号ファイル１７Ａに対して復号処理Ｓ２１が実行される。
【００４４】
復号処理Ｓ２１の実行前に、入力されたパスワード１５から共通鍵１６Ａが生成され（ステップＳ２０）、復号処理Ｓ２１では、この共通鍵１６Ａを用いて暗号ファイル１７Ａが復号される。パスワード１５が正しければ、それから生成される共通鍵１６Ａは、暗号化処理Ｓ１４で使用された共通鍵１６に等しくなり、電子データ１０Ａとソルト１２Ａの組及びデータＩＤ（１１Ａ）がそれぞれ正常に復号される。パスワード１５が正しくなければ、復号処理Ｓ２１は実行されない。更に、電子データ１０Ａとソルト１２Ａの組から電子データ１０Ａが分離され、受信側の処理装置に復号された電子データとして記憶される。
【００４５】
その後、電子データ認証情報生成プログラム部分２０により、復号された電子データ１０Ａとソルト１２Ａの組に対して、ステップＳ１１と同じ手順により、電子データ認証情報１３Ａが生成される（ステップＳ２２）。復号されたデータＩＤ（１１Ａ）を用いてデータベース１４から対応する電子データ認証情報１３を読み出し（ステップＳ２３）、読み出された電子データ認証情報１３と復号された電子データ１０Ａから生成された電子データ認証情報１３Ａとを比較照合して、電子データ１０Ａが正当であるか否かの認証を行うことができる（ステップＳ２４）。
【００４６】
比較照合処理Ｓ２４は、データベース１４を管理する図示しないサーバにより行う。すなわち、受信側の情報処理装置から、データＩＤ（１１Ａ）と電子データ認証情報１３Ａを含む照合要求を図示しないネットワークを介してデータベース１４の管理サーバに送信し、当該サーバが、送信されたデータＩＤ（１１Ａ）を用いてデータベース１４から対応する電子データ認証情報１３を読み出し、読み出された電子データ認証情報１３と受信側の処理装置から送信された電子データ認証情報１３Ａとを比較照合し、その結果を受信側の処理装置にネットワークを介して送信する。
【００４７】
以上から明らかなように、受信側の情報処理装置で受信した自己復号型暗号ファイル２１から復号された電子データ１０Ａが正当でないときには、正常な値を有する電子データ認証情報１３Ａが生成されないので、比較照合処理Ｓ２４により、そのことを検出することができる。
【００４８】
例えば、暗号ファイル１７Ａが暗号化されていない偽の電子データにより置換され、復号プログラム部分１９Ａが実行されないように自己復号型暗号ファイル２１が改竄された場合、正常な電子データ認証情報１３Ａが生成されない。また、不正な第３者が、偽の電子データを当該第３者が選択した暗号化アルゴリズムにより暗号化して偽の暗号ファイルを生成し、その偽の暗号ファイルでもって、正当な送信者が送信した自己復号型暗号ファイルの中の暗号ファイルを置換し、その自己復号型暗号ファイル２１内の復号プログラム部分を、当該偽の暗号ファイルを無条件に復号するためのプログラムにより置換した場合でも、正常な電子データ認証情報１３Ａが得られない。
【００４９】
また、偽の電子データ認証情報を生成するように、第３者が自己復号型暗号ファイルを改竄したとしても、その改竄を見つけることができる。あるいはいわゆるなりすましが発生した場合、すなわち、正当な送信者以外の第３者が、正当な送信者に代わって自己復号型暗号ファイルを受信者に送信した場合でも、更に極端には、正当な送信者が送信した自己復号型暗号ファイル内の暗号ファイルが解読され、暗号ファイル自体が改竄された場合でも、正常な電子データ認証情報が生成されないことを検出することにより、自己復号型暗号ファイルが不正であることを見つけることができる。
【００５０】
なお、電子データ認証情報の生成に、ランダムに値が変化するソルト１２と電子データとの組から電子データ認証情報を生成しているので、不正な第３者が正当な電子データ認証情報と同じものを生成するように、自己復号型暗号ファイルを改竄することを難しくしている。
【００５１】
以上において、データＩＤ（１１）は、送信者により入力させてもよく、あるいは電子データ認証情報生成処理Ｓ１１又は暗号化処理Ｓ１３あるいは他の処理により自動的に決定してもよく、あるいは、電子データ１０のファイル名を使用するようにしてもよい。ただし、データＩＤ（１１）に電子データ１０のファイル名を使用する場合には、同じファイル名の電子データを複数回暗号化して送信することはできない。また、場合によっては、ソルト１２を使用しないことも考えられる。また、暗号化処理Ｓ１４あるいは復号処理Ｓ２１の一部で、パスワードから共通鍵を決定する処理Ｓ１３、Ｓ２０を実行したが、これらの処理Ｓ１３、Ｓ２０を暗号化処理Ｓ１４あるいは復号処理Ｓ２１とは別に行ってもよいことは言うまでもない。
【００５２】
図２は、本発明に係る暗号化通信方法を使用するシステムの一例を示す。図において、３０は、例えば企業等の組織内部に設けられた自己復号型暗号ファイル生成用の情報処理装置（以下、自己復号型暗号ファイル生成サーバと呼ぶ）であり、クライアント端末３１によりイントラネット３３を介して利用可能になっている。本発明に係る自己復号型暗号ファイル生成システムの一つの実施形態は、自己復号型暗号ファイル生成サーバ３０により実現される。
【００５３】
３２は、データベース１４を管理するためのＤＢ管理サーバであり、データベース１４は、送信すべき電子データから生成された電子データ認証情報を記憶するのに用いられる。受信者は、ＤＢ管理サーバ３２にデータベース１４の内容を問い合わせることができる。
【００５４】
図では簡単化のために一つのクライアント端末３１のみを示しているが、イントラネット３３には、複数のクライアント端末が接続され、自己復号型暗号ファイル生成サーバ３０はこれらのクライアント端末のいずれからも使用可能である。イントラネット３３には、他のサーバが更に接続されているが、これらのサーバは簡単化のために図示されていない。
【００５５】
４０は、受信者が使用する情報端末の例を示す。情報端末４０は、インターネット５０に接続され、インターネット５０を介してＤＢ管理サーバ３２にアクセス可能になっている。インターネット５０には多数の受信者のための複数の情報端末が接続されているが、図では簡単化のために一つの情報端末４０のみを示す。情報端末４０は、個人が使用するパーソナルコンピュータでもよい。あるいは、情報端末４０は、企業内に設けられたイントラネットに接続されたクライアント端末でもよい。
【００５６】
自己復号型暗号ファイル生成サーバ３０には、自己復号型暗号ファイルを生成するための自己復号型暗号ファイル生成プログラム６０が記憶され、更にこのプログラムの実行時に起動される暗号化プログラム６１、ソルト生成プログラム６２、電子データ認証情報生成プログラム６３が記憶されている。暗号化プログラム６１には、パスワードから共通鍵を生成するための共通鍵生成プログラム６１０が含まれている。自己復号型暗号ファイル生成サーバ３０に記憶されたこれらのプログラム及び後に説明する受信側復号用プログラム１００は、ＣＤ−ＲＯＭその他の記録媒体にあらかじめ記録された形で準備され、その記録媒体から自己復号型暗号ファイル生成サーバ３０にインストールされる。あるいはこれらのプログラムをインターネット５０に接続された図示しないサーバからダウンロードして自己復号型暗号ファイル生成サーバ３０にインストールしてもよい。
【００５７】
共通鍵生成プログラム６１０は、図１に示した共通鍵生成処理Ｓ１３を実行するためのプログラムであり、暗号化プログラム６１は、図１に示した暗号化処理Ｓ１４を実行するためのプログラムである。ソルト生成プログラム６２は、図１に示したソルト生成処理Ｓ１０を実行するためのプログラムであり、電子データ認証情報生成プログラム６３は、図１に示した電子データ認証情報生成処理Ｓ１１を実行するためのプログラムである。
【００５８】
自己復号型暗号ファイル生成サーバ３０には、暗号ファイル１７と結合されて自己復号型暗号ファイルに組み込まれるべき受信側復号用プログラム１００が記憶されている。受信側復号用プログラム１００には、パスワード入力要求プログラム部分１８、復号プログラム部分１９、電子データ認証情報生成プログラム部分２０その他のプログラム部分が含まれている。復号プログラム部分１９にはパスワードから共通鍵を生成するための共通鍵生成プログラム部分１９０が含まれている。
【００５９】
パスワード入力要求プログラム部分１８は、図１に示したパスワード入力要求処理Ｓ１８を受信側の情報端末４０で実行するためのプログラム部分であり、復号プログラム部分１９は、図１に示した復号処理Ｓ２１を実行するためのプログラム部分である。共通鍵生成プログラム部分１９０は、図１に示した共通鍵生成処理Ｓ２０を実行するためのプログラム部分であり、電子データ認証情報生成プログラム部分２０は、図１に示した電子データ認証情報生成処理Ｓ２２を実行するためのプログラム部分である。
【００６０】
復号プログラム部分１９は、共通鍵生成に関する部分を除いて、暗号化プログラム６１が実行する処理を実質的に逆の順序で実行して暗号ファイル１７を復号するプログラム部分である。電子データ認証情報生成プログラム部分２０は、電子データ認証情報生成プログラム６３と実質的に同じ処理を行うプログラム部分である。共通鍵生成プログラム部分１９０は、共通鍵生成プログラム６１０と実質的に同じ処理を行うプログラム部分である。
【００６１】
図１に関して説明したように、電子データ認証情報生成プログラム部分２０を共通鍵生成プログラム部分１９０と実質的に同じプログラム部分とすることもできる。その場合には、電子データ認証情報生成プログラム部分２０を自己復号型暗号ファイル２１に含めなくてもよく、共通鍵生成プログラム部分１９０を電子データ認証情報生成プログラム部分２０として共用すればよい。
【００６２】
自己復号型暗号ファイル生成サーバ３０は、典型的にはメールサーバを兼ねていることが望ましい。しかし、自己復号型暗号ファイル生成サーバ３０とは別にメールサーバが設けられていてもよい。送信者は、適当な方法でクライアント端末３１又は他の図示しないサーバに記憶された送信すべき電子データを指定し、自己復号型暗号ファイル生成サーバ３０に自己復号型暗号ファイルの生成を要求する。自己復号型暗号ファイル生成サーバ３０は、自己復号型暗号ファイル生成プログラム６０を起動して、自己復号型暗号ファイルを生成する。
【００６３】
自己復号型暗号ファイル生成サーバ３０がメールサーバである場合には、送信者は、そのサーバ３０内のメールソフトにメールの送信を指示し、そのメールに添付すべき電子データを指定した後に、自己復号型暗号ファイルの生成を指示すると、メールソフトが、自己復号型暗号ファイル生成プログラム６０を起動して、送信者により指定された添付すべき電子データを自己復号型暗号ファイルに変換し、得られた自己復号型暗号ファイルをメールに添付して、送信者が指定した受信者にあてて送信する。このように自己復号型暗号ファイル生成サーバ３０がメールサーバであるときには、送信者は、通常のメール送信操作にくわえて自己復号型暗号ファイルの生成を指示すればよく、送信者の操作が簡単になる。
【００６４】
自己復号型暗号ファイル生成サーバ３０がメールサーバでないときには、送信者は、サーバ３０により自己復号型暗号ファイル生成プログラム６０を用いて自己復号型暗号ファイルを生成させ、得られた自己復号型暗号ファイルの送信を別に設けたメールサーバに指示すればよい。
【００６５】
図３は、自己復号型暗号ファイル生成プログラム６０の概略フローチャートである。まず、電子データのデータＩＤの入力を要求する（ステップＳ６１）。この要求ステップに代えて自己復号型暗号ファイル生成プログラム６０によりデータＩＤを自動的に決定してもよい。あるいは送信すべき電子データのファイル名をデータＩＤに使用するようにしてもよい。
【００６６】
つぎに、パスワードの入力を要求する（ステップＳ６２）。その後、ソルト生成プログラム６２を起動してソルトを生成する（ステップＳ６３）。図１のソルト生成処理Ｓ１０について説明したように、一定長の乱数が発生される。つぎに、電子データ認証情報生成プログラム６３を起動して、先頭又は末尾にソルトが付加された送信すべき電子データに対して電子データ認証情報を生成する（ステップＳ６４）。
【００６７】
図１の電子データ認証情報生成処理Ｓ１１について説明したように、この電子データに対するハッシュ関数の値が電子データ認証情報として算出される。つぎに生成された電子データ認証情報と入力されたデータＩＤの組をデータベース１４に記憶することをＤＢ管理サーバ３２に要求し、電子データ認証情報をデータＩＤで検索可能なようにデータベース１４に記憶させる（ステップＳ６５）。
【００６８】
その後、共通鍵生成プログラム６１０を起動して、入力されたパスワードから共通鍵を生成する（ステップＳ６６）。図１の共通鍵生成処理Ｓ１３について説明したように、入力されたパスワードに対するハッシュ関数の値を共通鍵として求める。更に、暗号化プログラム６１を起動して、生成され共通鍵を用いて電子データとデータＩＤと生成されたソルトを暗号ファイルに暗号化する（ステップＳ６７）。
【００６９】
生成された暗号ファイルと受信側復号用プログラム１００を結合して自己復号型暗号ファイルを生成する（ステップＳ６８）。この受信側復号用プログラム１００には、あらかじめ記憶されたパスワード入力要求プログラム部分１８、復号プログラム部分１９、電子データ認証情報生成プログラム部分２０、その他のプログラム部分が含まれる。こうして、自己復号型暗号ファイル２１の生成が終了する。
【００７０】
自己復号型暗号ファイル生成サーバ３０がメールサーバである場合、送信者は、生成された自己復号型暗号ファイルのメール送信を同じサーバに指示することができる。自己復号型暗号ファイル生成サーバ３０がメールサーバでない場合、送信者は、図示しないメールサーバに、生成された自己復号型暗号ファイル２１のメール送信を指示すればよい。こうして、生成された自己復号型暗号ファイル２１は、送信者が指示する受信者にあててメールに添付して送信される。
【００７１】
図４は、受信者の情報端末４０での自己復号型暗号ファイルの処理の概略フローチャートである。生成された自己復号型暗号ファイル２１は、既に述べたようにプログラムであり、このプログラムが起動されると、受信側復号用プログラム１００が実行される。受信側復号用プログラム１００は、まずパスワード入力要求プログラム１８を起動して、パスワードを入力するウィンドウを表示してパスワードの入力を要求する（ステップＳ２１０）。パスワードが入力されると、自己復号型暗号ファイル２１を分解して暗号ファイル１７、復号プログラム部分１９、電子データ認証情報生成プログラム部分２０等の複数のプログラム部分を分離する（ステップＳ２１１）。
【００７２】
復号プログラム部分１９に含まれた共通鍵生成プログラム部分１９０を起動して、入力されたパスワードから共通鍵を生成する（ステップＳ２１２）。復号プログラム部分１９を起動して生成された共通鍵を用いて暗号ファイル１７から電子データとソルトの組と、データＩＤとを復号する（ステップＳ２１３）。更に、復号された電子データとソルトの組から電子データを分離し、情報端末４０内に受信されたデータとして記憶する（ステップＳ２１４）。
【００７３】
その後、受信データの正当性の認証を行うか否かの指示を入力させるウィンドウを表示して、この指示の入力を要求する（ステップＳ２１５）。もし受信データの正当性の認証を行うことが指示されなかったときには（ステップＳ２１６）、自己復号型暗号ファイル２１の実行が終了する。
【００７４】
もし受信データの正当性の認証を行うことが指示されたときには（ステップＳ２１６）、電子データ認証情報生成プログラム部分２０を起動して、復号された電子データとソルトの組から電子データ認証情報を生成する（ステップＳ２１７）。その後、情報端末４０に組み込まれたウェブブラウザプログラムを起動し、復号されたデータＩＤと生成された電子データ認証情報をウェブブラウザプログラムの画面に表示する（ステップＳ２１８）。こうして、自己復号型暗号ファイル２１の実行が終了する。
【００７５】
このように、受信者は、自己復号型暗号ファイル２１を起動し、パスワードを入力するだけで、暗号ファイルが自動的に復号され、電子データ認証情報が自動的に生成されるので、受信者の操作は極めて簡単である。
【００７６】
図５は、復号された電子データの正当性の認証を行うときの、情報端末４０とＤＢ管理サーバ３２の処理の概略を示すフローチャートである。まず、受信者は、ウェブブラウザプログラムの画面に表示された電子データ認証情報とデータＩＤを含む照合要求をＤＢ管理サーバ３２に送信することを指示する（ステップＳ４０１）。このとき、ＳＳＬ等の機密保護技術を用いて暗号化された形で照合要求を送信することが望ましい。
【００７７】
ＤＢ管理サーバ３２は、この照合要求を受信して、受信された照合要求内のデータＩＤを検索キーに使用して、データベース１４から対応する電子データ認証情報を読み出す（ステップＳ３２１）。読み出された電子データ認証情報と情報端末４０から送信された電子データ認証情報を比較照合する（ステップＳ３２２）。比較照合の結果を示す応答メッセージを情報端末４０に送信し（ステップＳ３２３）、情報端末４０は、ウェブブラウザプログラムの画面にこの応答メッセージを表示する（ステップＳ４０２）。
【００７８】
このようにして、自己復号型暗号ファイルを使用する暗号化データ通信方法を用いながら、受信者は電子データの正当性を受信側で認証することができる。
【００７９】
なお、本発明は、原理説明に記載された事項あるいは実施の形態に限定されないことは言うまでもない。例えば、上記実施の形態では、ステップＳ２１８（図４）によりウェブブラウザプログラムの画面にデータＩＤと電子データ認証用情報を表示し、受信者の指示により、ステップＳ４０１（図５）にしたがってこれらの情報を含む照合要求を送信した。
【００８０】
これに代えて、ステップＳ２１６（図４）において認証の実行が受信者により指示されたときには、ウェブブラウザプログラムを起動し、ステップＳ２１７で生成された電子データ認証用情報とステップＳ２１３で復号されたデータＩＤとを含む照合要求を自動的にウェブブラウザによりＤＢ管理サーバ３２に送信させ、その後、ＤＢ管理サーバ３２から送信された応答メッセージをウェブブラウザプログラムの画面に表示させるようにしてもよい。
【００８１】
また、上記実施の形態では、送信すべき電子データから生成された電子データ認証情報を送信者が属する企業等に設けられたイントラネット３３に接続されたデータベース１４に記憶したが、この電子データ認証情報を第３者が運営するサーバが管理するデータベースに記憶させてもよい。このようにすると、電子データ認証情報が一度そのデータベースに記憶された後は、送信者が勝手に記憶された電子データ認証情報を書き替えることができなくなる。
【００８２】
したがって、送信者が、電子データを受信者に送信した後、送信した電子データは受信者が受信した電子データと異なるという主張することあるいは電子データの送信自体を否認することを防止することができる。なお、このように第３者が運営するサーバが管理するデータベースに電子データ認証情報を記憶する場合、送信者はデータＩＤの決定をこのサーバに依頼するようにしてもよい。
【００８３】
また、パスワードの長さを共通鍵と同じ長さに定めることができる場合には、以上で説明した、パスワードから共通鍵への変換処理あるいはそのための共通鍵生成プログラムを使用しなくてもよいことは言うまでもない。
【００８４】
以上の実施の形態では、パスワードから共通鍵を生成し、生成された共通鍵を用いて電子データを暗号化したが、本発明でパスワードを用いて電子データを暗号化する方法は、これに限定されない。例えば、上記共通鍵で他の特定のデータを暗号化し、この暗号化されたデータを第２の共通鍵とし、この第２の共通鍵により電子データを暗号化してもよい。以上のことは、パスワードを用いた復号についても同じである。
【００８５】
【発明の効果】
以上、説明したように、本発明に係る暗号化データ通信方法によれば、自己復号型暗号ファイルを用いて暗号化データを通信することができ、更に受信者が受信したデータの正当性を認証することができる。
更に、本発明に係る暗号化データ生成システムによれば、受信者が受信したデータの正当性を認証することを可能にする自己復号型暗号ファイルを生成することができる。
更に、本発明に係る記録媒体によれば、受信者が受信したデータの正当性を認証することを可能にする自己復号型暗号ファイルを生成するプログラムを提供することができる。
【図面の簡単な説明】
【図１】本発明に係る暗号化データ通信方法の原理を示す図である。
【図２】本発明に係る暗号化データ通信方法を使用するシステムの例を示す図である。
【図３】自己復号型暗号ファイル生成プログラムの概略フローチャートである。
【図４】受信側の情報端末での自己復号型暗号ファイルの処理の概略フローチャートである。
【図５】受信データの正当性の認証を行うときの、受信側の情報端末とＤＢ管理サーバの処理の概略を示すフローチャートである。
【符号の説明】
３３…イントラネット、５０…インターネット
【図１】
0004220671.tif 000002
【図２】
0004220671.tif 000003
【図３】
0004220671.tif 000004
【図４】
0004220671.tif 000005
【図５】
0004220671.tif 000006