(57)【要約】      （修正有）【課題】迅速かつ正確に電子メールを選別できる電子メールシステムを提供する。【解決手段】第１の記憶部2と接続可能である第１の暗号化部3aと，暗号文を格納する第２の記憶部4と，受信部5と接続可能とされ，電子メールから情報を抽出する情報抽出部6と，第２の暗号化部3bと，暗号文を記憶するための第３の記憶部7と，暗号文が関連するか判断する関連性判定部8とを具備する電子メールシステム1。【選択図】図１
2006350560.tif 000002
【特許請求の範囲】
【請求項１】
１又は複数の用語を記憶した第１の記憶部(2)と接続可能とされ，前記第１の記憶部に記憶された用語を暗号化するための第１の暗号化部(3a)と，
前記暗号化部が暗号化した暗号文を格納する第２の記憶部(4)と；
電子メールを受信するための受信部(5)と接続可能とされ，
前記受信部が受信した電子メールに含まれる所定の情報を抽出する情報抽出部(6)と，
前記情報抽出部が抽出した情報を暗号化するための第２の暗号化部(3b)と，
前記第２の暗号化した暗号文を記憶するための第３の記憶部(7)と，
前記第２の記憶部に記憶された暗号文と，前記第３の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)と，
を具備する，電子メールシステム。
【請求項２】
前記第１の暗号化部(3a)及び第２の暗号化部(3b)は，情報を暗号化してハッシュ関数とする，
請求項１に記載の電子メールシステム。
【請求項３】
前記第１の暗号化部(3a)及び第２の暗号化部(3b)は，ＭＤ５（Message Digest 5）により情報を暗号化する，
請求項１に記載の電子メールシステム。
【請求項４】
前記第２の記憶部(4)は，暗号化された用語をインデックスとして記憶する
請求項１に記載の電子メールシステム。
【請求項５】
前記第２の記憶部(4)は，タイトル，送信者のメールアドレス，本文，又は本文に含まれるリンク情報ごとにファイルを設けて，それぞれに関連する暗号化された用語を格納する，請求項１に記載の電子メールシステム。
【請求項６】
前記情報抽出部(6)は，前記受信部が受信した電子メールに含まれる，タイトル，送信者のメールアドレス，本文，又は本文に含まれるリンク情報から，判定項目に応じた情報を抽出する請求項１に記載の電子メールシステム。
【請求項７】
前記関連性判定部(8)は，
前記第３の記憶部(7)が記憶する暗号化した情報が，前記第２の記憶部(4)に記憶された暗号文のうち一致するものが含まれるかどうか判断する，
請求項１に記載の電子メールシステム。
【請求項８】
前記関連性判定部(8)は，
前記第３の記憶部(7)が記憶する暗号文としてのハッシュ値が，前記第２の記憶部(4)に記憶された暗号文としてのハッシュ値と一致するものがあるかどうか判断する，
請求項１に記載の電子メールシステム。
【請求項９】
前記関連性判定部(8)は，
前記第３の記憶部(7)が記憶する暗号文としてのハッシュ値のうち先頭ブロックが，前記第２の記憶部(4)に記憶された暗号文としてのハッシュ値の先頭ブロックと一致するものがあるかどうか判断する，
請求項１に記載の電子メールシステム。
【請求項１０】
前記関連性判定部(8)は，
前記第３の記憶部(7)が記憶する暗号文としてのハッシュ値のうち先頭ブロックが，前記第２の記憶部(4)に記憶された暗号文としてのハッシュ値の先頭ブロックと一致するものがあるかどうか判断するファーストマッチング工程と，
前記ファーストマッチング工程で一致という結果が得られた場合，更に前記第３の記憶部(7)が記憶する暗号文としてのハッシュ値のうちセカンドブロックが，前記第２の記憶部(4)に記憶された暗号文としてのハッシュ値のセカンドブロックと一致するものがあるかどうか判断するセカンドマッチグ工程とを行う,
請求項１に記載の電子メールシステム。
【請求項１１】
フィッシャー直接確率，及びカイ２乗検定のいずれか又は両方をも用いて迷惑メールを判断する請求項１に記載の電子メールシステム。
【請求項１２】
迷惑メールを判断するための請求項１に記載の電子メールシステム。
【請求項１３】
コンピュータを，１又は複数の用語を記憶した第１の記憶手段(2)と接続可能とされ，前記第１の記憶手段に記憶された用語を暗号化するための第１の暗号化手段(3a)と，前記暗号化手段が暗号化した暗号文を格納する第２の記憶手段(4)と；電子メールを受信するための受信手段(5)と接続可能とされ，前記受信手段が受信した電子メールに含まれる所定の情報を抽出する情報抽出手段(6)と，前記情報抽出手段が抽出した情報を暗号化するための第２の暗号化手段(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶手段(7)と，前記第２の記憶手段に記憶された暗号文と，前記第３の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する，所定の情報を有するメールを選別するためのコンピュータとして機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，暗号化を行った用語を予め格納し，暗号文によるマッチング判定を行うことで，迅速かつ正確に電子メールを選別できる電子メールシステムなどに関する。
【背景技術】
【０００２】
インターネットが普及するにつれて，迷惑メール（スパムメール）が送られるケースや，ウィルスメールなどが送られるケースがある。よって，これらのメールを受信者へ送らず，事前に廃棄するメールサーバなどが開発されている。
【０００３】
たとえば，特開平１０−１３６０１２号公報（下記特許文献１）では，メールの送信元識別情報と，メール本文に所定のリンク情報が含まれるかどうかに応じて受信可否を判断する電子メールシステムが開示されている。
【０００４】
しかし，この電子メールシステムは，予め受信を拒否するメールの送信元識別情報や，リンク情報をデータベースなどに記憶しておく（たとえば同公報の図６参照）。そして，あるメールを受信した場合に，そのデータベースから送信元識別情報などを読み出し，受信したメールの送信元識別情報などとの照合を行う。このように，照合処理を行うたびに，データベースに格納した送信元識別情報などを読み出して処理するので，特に複数件の照合を同時に行う場合では，システムバスなどの情報伝達領域が圧迫されるという問題があった。また，照合を行うたびにデータベースから全ての情報を読み出すので，照合するために多くの時間がかかるという問題があった。
【０００５】
さらには，上記のような方法で受信拒否を判断する場合，その精度を上げるためには，複雑なアルゴリズムに従って処理をしなければならなくなり，処理がますます遅延するという問題があった。
【０００６】
【特許文献１】特開平１０−１３６０１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は，迅速かつ正確に電子メールを選別できる電子メールシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は，基本的には，照合を行う用語などを予めハッシュ関数などで暗号化して記憶しておき，その記憶された用語を用いて照合作業を行えば，照合作業の際にデータベースから用語などを一々読み出す必要がなくなり，予め記憶された機械語状態の暗号文を用いて照合できるので，きわめて迅速に照合作業を行うことができるという知見に基づくものである。すなわち，ＭＤ５などのハッシュ関数アルゴリズムは，ある電子メールなどが改ざんされていないかどうかチェックするために開発されたが，本発明では，改ざんをチェックするためではなく，ある用語のマッチングを，ＭＤ５などによる暗号文で行うというものである。
【０００９】
本発明は，具体的には，１又は複数の用語を記憶した第１の記憶部(2)と接続可能とされ，前記第１の記憶部に記憶された用語を暗号化するための第１の暗号化部(3a)と，前記暗号化部が暗号化した暗号文を格納する第２の記憶部(4)と；電子メールを受信するための受信部(5)と接続可能とされ，前記受信部が受信した電子メールに含まれる所定の情報を抽出する情報抽出部(6)と，前記情報抽出部が抽出した情報を暗号化するための第２の暗号化部(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶部(7)と，前記第２の記憶部に記憶された暗号文と，前記第３の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)とを具備する，電子メールシステムなどに関する。このような電子メールシステムは，例えば，コンピュータ又はサーバなどとして実装されうる。
【００１０】
後述するように，情報抽出部(6)は，例えば，電子メールのヘッダ部は，所定の情報が所定の関数や定義文などで定義されているので，それらの関数などを用いることで，所定の情報を指示し，抽出することができる。また，例えば，電子メールの本体（ＢＯＤＹ）部については，先頭の15文字など所定の文字数だけを取得するようにされていても良い。電子メールの本体部についても，所定の関数や定義文で定義されているので，それらを用いることで容易にＢＯＤＹを抽出することができる。
【００１１】
また，関連性判定部(8)は，例えば，第2の記憶部に格納されたハッシュ値（またはハッシュ値の最初のブロック）などに基づいて，第3の記憶部の所定の項目（ハッシュ値に関する項目）に，そのハッシュ値と同じハッシュ値などが存在するかどうかマッチングを行う。ハッシュ値などは，通常の用語に比べきわめて容量が小さいので，予め暗号化し登録した用語と一致する用語が電子メールに含まれるかどうかを，きわめて迅速にマッチングすることができる。また，あえて，チェックしたい用語を暗号化したので，マッチングの際に，いちいち用語ＤＢ（第１の記憶部）などにアクセスする必要がなくなる。
【００１２】
例えば，用語abc，bsdは，それぞれＭＤ５などの暗号化処理により，ハッシュ値x，yに暗号化されるとすると。ハッシュ値ｘは，用語abcに対応し，ハッシュ値ｙは用語bcdに対応する。したがって，このハッシュ値について，マッチングを行えば用語をマッチングしたことになるのである。
【発明の効果】
【００１３】
従来の照合方法を採用した電子メールシステムであれば，データベースなどに用語を登録するだけで，照合のもととなる用語を簡単にアップデートできる。一方，本発明の電子メールシステムでは，データベースなどの記憶部に登録された用語を暗号化した後，記憶しなければならずアップデートが煩雑になる。しかし，本発明の電子メールシステムでは，用語を照合する際に，照合する用語が既に機械語（たとえば暗号化されたハッシュ値）などとして記憶されているので，マッチングしたい情報を暗号化することにより，迅速かつ正確に照合作業を行うことができることとなる。しかも，照合するものが機械語であるから，その精度を高めることができる。また，ハッシュ値などの特定の部分のみを用いて1次スクリーニングを行えば，きわめて迅速にマッチング判定を行うことができることとなる。
【発明を実施するための最良の形態】
【００１４】
[基本システム構成]
図１は，本発明の電子メールシステムの基本構成を示すブロック図である。図１に示されるとおり，本発明のシステム（１）は，１又は複数の用語を記憶した第１の記憶部(2)と接続可能とされ，前記第１の記憶部に記憶された用語を暗号化するための第１の暗号化部(3a)と，前記暗号化部が暗号化した暗号文を格納する第２の記憶部(4)と；電子メールを受信するための受信部(5)と接続可能とされ，前記受信部が受信した電子メールに含まれる所定の情報を抽出する情報抽出部(6)と，前記情報抽出部が抽出した情報を暗号化するための第２の暗号化部(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶部(7)と，前記第２の記憶部に記憶された暗号文と，前記第３の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)と，を具備する。なお，第1の記憶部と接続可能であれば，第1の記憶部は必須の構成ではない。また，受信部，情報抽出部，及び第2の暗号化部も，任意の要素であり，第2の暗号化部が暗号化した暗号文を，第3の記憶部が入手し記憶できるものであれば良い。
【００１５】
任意要素は，含まれていても含まれていなくてもよく，例えば，本発明のシステム（１）の別の形態としては，１又は複数の用語を記憶した第１の記憶部(2)と；前記第１の記憶部に記憶された用語を暗号化するための第１の暗号化部(3a)と，前記暗号化部が暗号化した暗号文を格納する第２の記憶部(4)と；電子メールを受信するための受信部(5)と；前記受信部が受信した電子メールに含まれる所定の情報を抽出する情報抽出部(6)と，前記情報抽出部が抽出した情報を暗号化するための第２の暗号化部(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶部(7)と，前記第２の記憶部に記憶された暗号文と，前記第３の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)と，を具備するものであってもよい。さらに，
【００１６】
本発明のシステム（１）の別の形態としては，１又は複数の用語を記憶した第１の記憶部(2)と接続可能とされる前記第１の記憶部に記憶された用語を暗号化するための第１の暗号化部(3a)と接続可能とされ，前記暗号化部が暗号化した暗号文を格納する第２の記憶部(4)と；電子メールを受信するための受信部(5)と接続可能とされ，前記受信部が受信した電子メールに含まれる所定の情報を抽出する情報抽出部(6)と，前記情報抽出部が抽出した情報を暗号化するための第２の暗号化部(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶部(7)と，前記第２の記憶部に記憶された暗号文と，前記第３の記憶部が記憶した暗号文とが関連するかどうか判断するための関連性判定部(8)とを具備するものであってもよい。
以下，本発明のシステムに含まれる各要素について説明する。
【００１７】
第１の記憶部（２）には，１又は複数のキーワードが記憶される。このキーワード（用語）として，マッチングしたい用語があげられる。そして，マッチングしたい用語として，所定のメールアドレス，タイトル，スパムと関連の高い用語，リンク情報，スパムメールなどのメッセージＩＤ（インターネットメールやインターネットニュースなどにおいて、特定のメッセージを識別するためにメッセージに付けられるユニークなＩＤ），ＦＱＤＮ（Fully Qualified Domain Name：インターネットやイントラネットなどのTCP/IPネットワーク上で，ドメイン名・サブドメイン名・ホスト名を省略せずにすべて指定した記述形式のこと）などがあげられる。
【００１８】
この第１の記憶部（２）は，たとえばデータベースとして構成されるものがあげられる。また，第１の記憶部は，本システム外のコンピュータやサーバなどの記憶部であってもよく，そのような記憶部の所定のファイルやテーブルなどであってもよく，文字列が記載されている暗号化された定義ファイルであってもよい。また，データベースとして構成される場合は，公知のデータベースマネージメントシステムにより制御されていてもよい。データベースとして，公知の記憶装置を用いることもできるし，公知の記録方式を用いることもできる。なお，ハードウェアやソフトウェアで実装する場合は，情報の授受をすることができるようにそれぞれの要素はバスなどで連結されており，動作に応じて情報が出力及び入力される。
【００１９】
なお，第１の記憶部（２）は，例えばインターフェイス部（９ａ）を介して，入力装置と接続され，様々な用語などが適宜入力され，第１の記憶部（２）の所定のファイルなどが更新されるものが好ましい。
【００２０】
第１の記憶部（２）がデータベースとして構成される場合，ＤＢＭＳ（データベース管理システム）として，公知のＤＢＭＳがあげられる。ＤＢＭＳとして，ＤＥＳ（Data Encryption Standard）方式やＲＳＡ方式などにより所定の項目に対して暗号化を施すものでもよい。そして，この暗号化は，後述の第１の暗号化部（３ａ）における暗号化方式と同一であっても異なってもよい。ただし，本発明としては，第１の記憶部（２）における暗号化処理ではなく，第１の記憶部と接続されるサーバなどに暗号化プログラムなどが格納され，その暗号化プログラムにより暗号化が行われるものが好ましく，その暗号化プログラムを用いて電子メールなどから抽出された情報も暗号化されるものが好ましい。
【００２１】
第１の記憶部（２）は，本発明のシステムを構成するあるサーバ内に設けられてもよいし，サーバ外に設けられ，そのサーバと接続されるものであってもよい。本発明においては，好ましくは後者である。すなわち，本発明のシステムは，第１の記憶部と接続可能とされていれば，前記の用語を含む第１の記憶部は本発明のシステムに含まれていなくてもよい。そして，たとえば，第１の記憶部と本発明のシステムとが接続されれば，たとえばある定義ファイルに存在するフラグなどの識別子を用いてその定義ファイルにアクセスし，文字列が記載されている暗号化された定義ファイルなどから用語を読み出すようにすればよい。このように，暗号化された定義ファイルを読み出す場合は，第１の記憶部が後述する第１の暗号化部（３ａ）の機能をも具備するものである。なお，暗号化されていない定義ファイルにアクセスし，その定義ファイルに格納された用語を読み出すものは，本発明の好ましい実施態様である。
【００２２】
例えば，本発明の電子メールシステムが，スパムメール撃退用の電子メールシステムである場合，第１の記憶部（２）が記憶する用語としては，公序良俗に反するような用語があげられる。そのような１又は複数の用語は，後述のように暗号化されると，それらの用語に対応した暗号文（例えば，ハッシュ値）とされる。
【００２３】
第１の暗号化部（３ａ）は，たとえば，ＭＤ５，ＭＤ４，拡張ＭＤ４，ＲＩＰＥＭＤ，ＳＨＡ，ＳＨＡ−１，ＨＡＶＡＬ，ＲＩＰＥＭ−１６０などの暗号化プログラムに従って，第１の記憶部に入力される用語，又は第１の記憶部に格納される用語を自動的に暗号化（Encrypt）するための装置である。なお，好ましい暗号化方法として，暗号化前の平文に比べ暗号化後の暗号文の容量が小さくなるものがあげられる。暗号化する箇所を特定するためには，例えば，第１の記憶部内のフラグなどで識別された所定のファイル又はテーブルに格納された所定の項目に含まれる用語のみを読み出して，暗号化を行うようにすればよい。このように第１の記憶部に格納された所定の用語は，例えばＣＰＵの指令などにより読み出され，第１の暗号化部（３ａ）へと送信される。また，第１の暗号化部（３ａ）により暗号化された情報は，第２の記憶部（４）へと送信される。
【００２４】
本発明の好ましい暗号化方式のひとつであるＳＨＡ−１（Secure Hash Algorithm 1）について説明する。この暗号化方式では，メッセージなどの平文（Plaintext）を５１２ビットごとのブロックに分割する。このために，最後のブロックを４４８ビットまでにパディングし，最後の６４ビットにメッセージの長さが入るようにする。このようにして，平文を５１２ビットごとのブロックにパディングする。そして，パディングされた平文を，それぞれのブロックごとにＷ０〜Ｗ７９の計算を施す。すなわち，５１２ビットを３２ビットごとに１６分割し，最終的に３２ビットの長さを持つ８０個の値を計算する。具体的には，まずＷ０〜Ｗ１６を用意する。そして，ＸＯＲ回路又はＸＯＲ装置に，Ｗｔ−１６，Ｗｔ−１４，Ｗｔ−８，及びＷｔ−３を入力し，その出力に１ビット回転処理を行い，Ｗｔを求める。次に，ブロックの処理を行う。この処理では，３２ビットごとのＡ，Ｂ，Ｃ，Ｄ，及びＥの５つの値にＷ０〜Ｗ７９の値を混ぜながらＡ，Ｂ，Ｃ，Ｄ，及びＥの値を計算して，最終的なＡ，Ｂ，Ｃ，Ｄ，及びＥの値を求め，その値をあわせたものをハッシュ値とする。
【００２５】
本発明の好ましい暗号化方式のひとつであるＭＤ５では，１２８ビットの「指紋」又は「メッセージダイジェスト」を出力する。本発明では，この指紋やメッセージダイジェストを暗号化結果として用いてもよく，それらを用いて後述の判定（マッチング）を行ってもよい。さらに暗号化結果をインデックスとして判定を行ってもよい。暗号化プログラムとして，ハッシュアルゴリズムによるものが好ましいが，ＧＣＣカオス暗号法を用いてもよい（例えば，特開平７−３３４０８１号公報参照）。このような暗号化プログラムは，たとえば記憶部のメインメモリに格納され，ＣＰＵの指令により読み出し可能とされればよい。このようにして暗号化されたキーワードは，例えばハッシュ関数で表現される。第１の暗号化部（３ａ）は，例えば，ＣＰＵなどが，メインメモリ中の暗号化プログラムの指令を受け，第１の記憶部から所定の用語を読み出し，第１の記憶部から読み出した用語を暗号化し，出力するようにすればよい。また，そのための作業空間や一時記憶空間として，例えば，記憶部に含まれるメモリを用いればよい。
【００２６】
ＭＤ５（Message Digest 5）について，更に詳細に説明する。ＭＤ５は，基本的には，パディング，Ｍ０〜Ｍ１５の生成処理，Ａ，Ｂ，Ｃ及びＤ値の計算処理，ハッシュ値算出処理によりハッシュ値を求める方法である。パディングは，平文を５１２ビットの整数倍となるようにする処理であり，このパディング処理により入力ブロックを得る。パディングでは，平文の終了を意味するフラグとして「１」という１ビットの値を付加し，残りの領域に「０」というビットの値を詰める。そして，最後の６４ビットには，メッセージの長さに関する情報を詰める。具体的には，平文をＡＳＣＩＩコードなどで表現した後，最後の５１２ビット部分の次に「１」をフラグとして付加し，残りの領域（最後の６４ビットを除く）を全て「０」とする。その後，最後の６４ビットに，平文の長さに関する情報を入れる。
【００２７】
次に，入力ブロックを３２ビット単位の１６個の具ロックに分割し，Ｍ０〜Ｍ１５の初期値とする。次に，３２ビットのＡ，Ｂ，Ｃ及びＤ値を初期値として有するＡ，Ｂ，Ｃ及びＤバッファを用いて，たとえば，４ラウンドの処理を行う。各ラウンドの処理は，回転，非線形関数による変形，加算，ＯＲゲート（回路，装置を含む），ＮＯＲゲート，ＡＮＤゲートなどによる処理であり，これにより，Ａ，Ｂ，Ｃ及びＤバッファのＡ，Ｂ，Ｃ及びＤ値を更新し，最終状態へと導く。そして，これらＡ，Ｂ，Ｃ及びＤ値を合計し，ハッシュ値を得る。
【００２８】
このように暗号化を行うので，登録した用語を平易に解読されないという効果を得ることができる。さらには，入れ子文字による文字数制限をコンピュータ演算限界値まで受けないという効果を得ることができる。
【００２９】
第１の暗号化部（３ａ）の好ましい態様は，第１の記憶部（２）に接続されれば，第１の記憶部（２）に含まれる所定のテーブルやファイルに含まれる所定の用語（キーワード）などの平文を，自動的に読み出して，暗号化するものがあげられる。この場合，例えば，ＣＰＵがメインメモリ中の暗号化プログラムの指令を受け，第１の記憶部の所定のテーブルなどに記憶されるキーワードなどを読み出し，読み出したキーワードなどをＲＡＭなどに記憶させ，ＲＡＭなどに記憶されたキーワードを暗号化し，暗号化されたキーワードをＲＡＭなどに記憶させ，ＲＡＭなどに記憶された暗号文を第２の記憶部（４）などへ出力する。また，第１の暗号化部（３ａ）で暗号化された用語（暗号文：Ciphertextともよぶ）として，平文とハッシュ値とを含むものであってもよいし，ハッシュ値のみからなるものであってもよいし，ハッシュ値のうち先頭ブロックのみであってもよい。ハッシュ値又はハッシュ値の先頭ブロックを用いて，後述の判定処理を行えば，判定を正確かつ迅速に行うことができる。
【００３０】
第２の記憶部（４）は，例えば，１又は複数の用語を記憶するための装置である。具体的には，第１の暗号化部（３ａ）で暗号化された用語を，並列記憶する。好ましくは，暗号化された用語を機械語により物理メモリに格納する。ハッシュ関数とされた用語は，所定のフィル分けや，テーブル分けがなされた状態で記憶されることが好ましい。なお，第２の記憶部（４）として，比較部を有し，既に格納された情報と，新たに入力される情報とを比較し，その差分情報だけを新たに記憶部に格納するものは，本発明の好ましい実施態様である。第２の記憶部（４）として，ハードディスク，メモリなど公知の記憶装置を用いることができる。また，所定の処理機能を有する記憶部を実装するためには，例えば，ハードディスクなどの記憶装置とＣＰＵなどを含み，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，所定の制御を行えるようにすればよい。そして，第２の記憶部（４）に記憶された情報は，ＣＰＵなどの指令を受けて適宜読み出し可能とされ，バスなどを解して，関連性判断部（８）に送信される。
【００３１】
第２の記憶部（４）は，例えば，用語（キーワード）を固有ハッシュ関数化したものをＩＤとして記憶するものがあげられる。このＩＤは，好ましくは，第１の記憶部におけるインデックス（索引）として用いられる。そして，キーワード，暗号化されたキーワードなどは，このインデックスにより，記憶部のどこに保存されたかという情報と関連して記憶される。このようにすることにより，データ発信者が意図する最新の用語を用いて確実で高速にデータを抽出できるという効果を得ることができる。なお，第２の記憶部（４）の記憶構造として，リレーショナルデータベースが構成されており，前記固有ハッシュ関数化（暗号化）されたＩＤと，もとのキーワードに関する情報とが関連付けて記憶されるものであってもよい。第２の記憶部（４）には，複数のファイルが設けられ，そのうち用途に応じて特定のファイルを選択できるようにされていてもよい。そして，そのようなファイルには，レコードとして，キーワードをハッシュ関数化したものをＩＤとして格納されるものがあげられる。
【００３２】
受信部（５）は，電子メールなどを受信するための装置である。受信部（５）は，たとえばインターフェイス部（９ｂ）を介して通信ネットワークに接続され，通信ネットワークから配信される電子メールなどを受信する。このインターフェイス部は，ＬＡＮを介してインターネットなどに接続されていてもよい。また，ＬＡＮは，イーサネット（登録商標）で構築されていても，無線ＬＡＮなどであってもよい。ネットワークは，多くの接続ノードを有しており，インターネットプロトコル（IP）を用いて通信が行われる。たとえば，ＨＴＴＰやＦＴＰなどの高レベルプロトコルは，アプリケーション階層の通信を担当し，ＴＣＰ／ＩＰのような低レベルプロトコルはトランスポート階層とネットワーク階層などの通信を担当する。イントラネットは，ファイヤーウォールを介してネットワークに接続され，ファイヤーウォールによりフィルタリングが行えるようなものであってもよい。また，本発明の電子メールシステムが，ファイヤーウォール又はファイヤーウォールの一部として機能してもよい。受信部（５）が受信した電子メール情報は，例えば後述する情報抽出部（６）へ送信される。
【００３３】
また，受信部（５）は，いわゆるメールサーバに含まれていてもよいし，メールサーバと接続された別のシステムであってもよい。そして，メールサーバは，本発明のシステムとは別のサーバとして構成されても良いし，同じサーバとして構成されても良い。なお，メールサーバは，インターネットやクライアント（ＰＣなど）から受信した電子メールを格納する部と，所定のあて先にその電子メールを配送するための部，入出力部，中央演算装置（ＣＰＵ）などの制御部，プログラムなどを格納する記憶部を含むものがあげられる。メールサーバにおける電子メールの送信処理は，たとえばＳＭＴＰ（Simple Mail Transfer Protocol），ＩＭＡＰ（Internet Messaging Access Protocol），又はＰＯＰ(Post Office Protocol)などに従って行われるようにすればよい。
【００３４】
情報抽出部（６）は，例えば電子メールから，電子メールのタイトル，送信者のメールアドレス，本文，又は本文に含まれるリンク情報など所定の情報を抽出する。勿論，情報抽出部（６）は，電子メールに関する情報全て（電子メールのタイトル，送信者のメールアドレス，本文，又は本文に含まれるリンク情報を含む）を抽出しても良いし，電子メールのタイトル，送信者のメールアドレス，本文，又は本文に含まれるリンク情報のうちいずれか2つ以上を抽出しても良い。さらに，電子メールのメッセージＩＤとＦＱＤＮのいずれか又は両方を抽出してもよい。特定の情報のみを抽出するためには，所定の関数で定義されるパケットのペイロード部やデータ部から，所定の情報を抽出すればよい。情報抽出部（６）を実装するためには，例えば，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，受信部（５）が受信し一時的に記憶しているメモリなどから所定の関数で定義される部位やフラグが立てられている部位などを抽出することにより目的とする情報（タイトル，送信者のメールアドレス，本文，又は本文に含まれるリンク情報など）を抽出するものがあげられる。情報抽出部（６）が抽出した情報は，例えば，第２の暗号化部(３ｂ)へ送信される。
【００３５】
第２の暗号化部（３ｂ）は，情報抽出部が抽出した情報（電子メールのタイトル，送信者のメールアドレス，本文，又は本文に含まれるリンク情報など）を暗号化するための部である。なお，第２の暗号化部（３ｂ）と第１の暗号化部（３ａ）とは，同一の回路，バッファなどのハードウェアで構成されても良い。また，第２の暗号化部（３ｂ）と第１の暗号化部（３ａ）とは，同一のアルゴリズムにより情報を暗号化するものであっても良い。具体的には，第２の暗号化部（３ｂ）と第１の暗号化部（３ａ）とに共通する暗号化プログラムがメインメモリなどに記憶されてよく，ＣＰＵはメインメモリ中の暗号化プログラムの指令を受け，一時メモリなどに記憶される暗号化する対象となる情報を読み出して，所定のバッファなどを利用し，所定の暗号化処理を行えばよい。具体的には，電子メール情報から所定の関数により規定される情報や所定のフラグで識別される情報を抽出し，暗号化を施して，例えばハッシュ関数などで表現するものがあげられ，好ましい暗号化プログラムは，ＭＤ５である。なお，電子メールに含まれる情報全体に暗号化を施してもよい。そして，暗号化された情報は，第３の記憶部（７）へ出力される。出力された情報は，第３の記憶部（７）へと送信される。第３の記憶部（７）は，この抽出され，暗号化された情報を記憶する。第３の記憶部（７）として，ＤＲＡＭなどのＲＡＭなどの一時メモリがあげられる。
【００３６】
関連性判定部（８）は，第３の記憶部（７）に記憶された情報を受取り，第２の記憶部（４）に格納された暗号化された用語と関連するか判定するための装置である。具体的には，暗号化された電子メール由来の情報の中に，暗号化されたキーワードが含まれるか判定（マッチング判定）をする。このような判定は，暗号化されたキーワードのいずれかと，暗号化された電子メールから抽出した情報とが一致するものがあるかどうか判断するようにすればよい。例えば，関連性判定部（８）を実装するためには，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，所定の情報を読み出し，マッチングを行えるようにすればよい。また，たとえば，第２の記憶部（４）には，ハッシュ値などの暗号化されたものがＩＤとして記憶されているので，そのＩＤと同じＩＤを有するものが電子メール由来の情報であって暗号化されたものの中に含まれるかどうか判断すればよい。また，このようにＩＤにより同一のものがないとされた場合はそのように指令をバスなどを介して所定の処理部へ出力し，同一のものがあるとされた場合はそのような指令を，バスなどを介して所定の処理部へ出力してもよい。そして，その処理部は，入力された判定部の判定結果を受け，たとえばＣＰＵにより読み出されたメインメモリ中の制御プログラムの指令を受けて所定の処理を行うようにすればよい。このような所定の処理としては，受信した電子メールをスパムメールなどとして廃棄する処理や，受信した電子メールがスパムメールであったことを受信者あてに送信するような処理があげられる。
【００３７】
[基本システムの動作例]  
以下，図２〜図４に従って，本システムの基本動作例を説明する。図２は，本発明の暗号文準備段階を説明するためのフローチャートである。第１の記憶部（２）と第１の暗号化部（３ａ）とが接続されるか，又は第１の記憶部（２）の所定のファイルなどに新たな用語が入力される（ステップ101）。すると，第１の暗号化部（３ａ）は，メインプログラムから読み出された制御プログラムに従って，第１の記憶部の所定の記憶部に記憶されるキーワードを自動的に読み出し，伝送バスなどを介してＲＡＭなどへ伝え，ＲＡＭなどはその情報を記憶する。そして，第１の暗号化部（３ａ）は，ＲＡＭなどに記憶した用語を読み出して，ＭＤ５などの暗号化プログラムに従って，自動的にそのキーワードを暗号化し，暗号文を得る（ステップ102）。この暗号文として，ハッシュ関数によるＩＤと，そのキーワードとを有するものがあげられる。また，キーワード全体をハッシュ関数などで暗号化してもよい。そして，第１の暗号化部（３ａ）は，暗号文を，バスなどを介して第２の記憶部（４）へ出力する。第１の記憶部（４）は，暗号文を受け取り，機械語により物理メモリに格納する（ステップ103）。このようにして，本システムの準備ステップが終了する。具体的には，暗号文（ハッシュ関数など）をインデックスとし，そのインデックスと用語とを関連付けて記憶するものがあげられる。また，第２の記憶部（４）には，電子メールのタイトル，メールアドレスなどによりカテゴリー分けされる複数のファイル（テーブル）が設けられ，それぞれの情報がそれぞれのファイルに格納されても良い。
【００３８】
次に，受信した電子メールに含まれる情報を暗号化する工程例について説明する。図３は，受信した電子メールに含まれる情報を暗号化する工程例を説明したフローチャートである。図３に示されるように，受信部（５）は，電子メールを受信する（ステップ201）。そして，受信部は，受信した電子メールをＲＡＭなどに記憶する。情報抽出部（６）は，ＲＡＭなどに記憶された電子メールに含まれる情報を読み出し,電子メールに含まれるパケットのペイロード部，又はデータ部などから，所定の関数により規定される必要情報を抽出する（ステップ202）。そして，情報抽出部（６）は，抽出した情報をバスなどを介して第２の暗号化部(3b)へ送信する。第２の暗号化部（３ｂ）は，この情報を受信し，ハッシュ関数による暗号化を施す（ステップ203）。具体的には，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，ＲＡＭなどに記憶された電子メール情報（電子メールの情報のうち所定の情報のみであっても良い）を読み出し，上記暗号化部（３ａ）と同一の暗号化プログラムをメインメモリなどから読み出して，暗号化を行う。そして，第２の暗号化部（３ｂ）は，暗号化した情報を、バスなどを介して，第３の記憶部（７）へ出力する。第３の記憶部（７）は，暗号文を受信し，記憶する（ステップ204）。この暗号文として，ハッシュ関数によるＩＤと，その抽出された情報とを有するものがあげられる。また，抽出された情報全体をハッシュ関数などで暗号化してもよい。そして，暗号化文は，バスなどを介して，関連性判定部（８）へ送信される（ステップ205）。
【００３９】
次に，関連性判定処理について説明する。図４は，関連性判定処理の例を示すフローチャートである。図４に示されるように，関連性判定部（８）は，第３の記憶部（７）に記憶された暗号文を受取り，ＲＡＭなどに一時的に記憶する（ステップ301）。そして，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，第２の記憶部（４）に格納された暗号文に，第３の記憶部（７）に記憶された暗号文と一致するものがあるかどうか検索する（ステップ302）。具体的には，ハッシュ関数で暗号化されたＩＤをインデックスとして用いて，第２の記憶部（４）に格納されたＩＤ（群）と一致するものが第３の記憶部（７）に記憶された暗号文（ID）にあるか判定する。そして，その判定情報を所定の処理部へ出力する（ステップ303）。このようにして，本発明のシステムを用いたマッチング処理（判定）が行われる。
【００４０】
判定結果を出力するには，具体的には，一致しないとされた場合はそのような情報をバスなどを介して所定の処理部へ出力し，同一のものがあるとされた場合はそのような情報をバスなどを介して所定の処理部へ出力すればよい。そして，その所定の処理部は，入力された判定部の判定結果（処理情報）を受け，たとえばＣＰＵにより読み出されたメインメモリ中の制御プログラムの指令を受けて所定の処理を行う。また，一致するものがある場合，暗号文をインデックスとして平文を引き出し，それら平文が一致するかどうか判断した上で，平文も一致した場合に，一致したという情報を出力し，平文は一致しない場合はそのような情報を出力するようにしてもよい。この場合は，まずは暗号文を用いて一致する用語を迅速にスクリーニングできるので，いずれにせよ処理が迅速且つ正確となる。
【００４１】
このように，本発明によれば，マッチング判定を行う場合に，あらかじめ機械語で格納された用語を用いて判定を行えるので，判定するたびに第１の記憶部（２）に格納される用語を読み出して，用語を照合する必要がなくなる。これにより，頻繁にスパムチェックをしてもデータベースとＣＰＵなどを連結するバスの帯域を圧迫することにならず，また，ネットワークの帯域も圧迫することにならないし，スパムチェックなどもきわめて迅速かつ正確に行うことができる。
【００４２】
さらには，例えば，サーバ内のキーワードなどが暗号化されて記憶されているので，第三者がサーバにアクセスしたとしても，そのキーワードが漏洩する怖れを軽減できる。さらには，キーワードをハッシュ関数などで暗号化し，そのＩＤを，例えばインデックス（索引）として用いて，電子メールの所定の部分にその用語が含まれるかどうか判定できるので，機械語のまま，かつ小さな情報の一致・不一致を判断すれば足りることとなる。これにより，スパムチェックをきわめて迅速に行うことができることとなる。
【００４３】
先に説明したとおり，本発明では，暗号文としてハッシュ値又はハッシュ関数を用いるものがあげられる。ハッシュ値は，本来通常受信者側にて計算され，インターネットなどを経由してその情報が受信者に送信される間に，データの改ざんなどが行われたかどうか判定するために用いられる。しかし，本発明では，このハッシュ値を，あえて同じサーバ又はシステム内でのマッチング処理のために用いており，これによりマッチング処理を迅速に行うことができる。
【００４４】
次に，マッチング方法の例について説明する。このマッチング方法では，ハッシュ関数などの暗号文全体が一致するものがあるかどうか判断するのではなく，ハッシュ関数などを複数のブロックに分けて，ブロックごとに一致するものがあるかどうか判断する方法に関する。図５は，暗号文をブロックに分けた例を示す概念図である。例えば，暗号文(11)としてのハッシュ値は，128ビットの情報量を有しているので，例えば12ビットごとのブロック（12,13,14など）に分ける。このようなブロック分けは，カウンタなどを用いるか，所定のプログラムを利用することで容易に行うことができる。なお，図５中，12は先頭ブロックを示し，13はセカンドブロックを示し，14はサードブロックを示す。
【００４５】
図６は，ブロック分けを利用したマッチング工程の例を示すフローチャートである。図６（Ａ）は，1工程のみを示し，図６（Ｂ）は多段階スクリーニング（マッチング）工程のものを示す。
【００４６】
図６（Ａ）に示されるマッチングでは，例えば，ハッシュ値(11)のうち先頭ブロック(12)のみによりマッチング（ステップ401）を行う。具体的には，第3の記憶部(7)に記憶されたハッシュ関数として，ハッシュ値(11)の先頭ブロック(12)のみのものとし，また，第2の記憶部(8)では，ハッシュ値(11)の先頭ブロック(12)のみ又はハッシュ値(11)の先頭ブロック(12)をインデックスとして平文が関連付けられて記憶される。そして，マッチングでは，第3の記憶部(7)に記憶されたハッシュ値(11)の先頭ブロック(12)を読み出して，それを一時的に記憶し，第2の記憶部(8)に格納されたハッシュ値(11)の先頭ブロック(12)に一致するものがあるかどうか判断すればよい。このような処理は，ＣＰＵが，メインメモリに格納された制御プログラムの指令を受けて，2つの記憶部に記憶された先頭ブロック(12)を読み出して，それらが一致するものがあるかどうか判断するようにすればよい。そして，一致した場合は，一致に相当する信号を出力し，一致しない場合は不一致に相当する信号を出力すればよい。そうすれば，例えば，スパムメール処理システムであれば，一致信号に応じてスパムであると判断し，電子メールを削除するなどの処理を行う。
【００４７】
勿論,このようなマッチングを行う場合でも，第3の記憶部(7)及び第2の記憶部(4)に記憶されたハッシュ関数として，ハッシュ値のブロック全体(11)を記憶しておいて，例えば先頭ブロック(12)のみを抽出し，一致するものがあるかどうか判断しても良い。
【００４８】
図６（Ｂ）に示されるマッチングでは，多段階のマッチングを行う。すなわち，１又は複数回のスクリーニングを経て，最終マッチングを行うものである。このマッチングでは，図６（Ａ）に示されるものと同様の一部マッチング（ファーストマッチング：ステップ501）を行う。そして，その結果がＮＯであれば，その情報を出力し，マッチングが終わる。このファーストマッチングは，通常，ハッシュ値の先頭ブロック(12)のマッチングによるが，これに限定されるものではない。ファーストマッチングの結果がＹＥＳであった場合，ファーストマッチングで用いたブロック以外のブロックを用いてマッチングを行う。具体的には，セカンドブロック(13)を用いてマッチングを行う。そして，その結果がＮＯであった場合，不一致という信号を出力し，マッチングが終わる。その結果がＹＥＳであった場合は，一致という信号を出力し，マッチングを終えても良いし，更に他のブロックが一致するものがあるかどうかのマッチングを続けても良い。例えば，先頭ブロック，セカンドブロック，サードブロックのように順番に全てのブロックについてマッチングを行っても良いし，先頭ブロックマッチングを終えた後は，残りの全てのブロックについてマッチングを行っても良いし，改めて全てのブロック(11)のマッチングを行っても良い。
【００４９】
[ハードウェア実装]
図７は，本発明のシステムに関するサーバなどのハードウェア構成（２０）を示す図である。図７に示されるようにこのシステムは，中央演算部（ＣＰＵ）（２１），インターフェイス（２２），ＲＡＭなどのメモリ（２３），ＲＯＭ（２４），表示部（２５）を具備し，各要素は，バス（２６）を介して連結されている。また，インターフェイスは，外部と接続可能とされているし，このシステムはバス（２６）などを介して上記以外の要素と接続可能とされている。そして，例えば，バスを介して所定の情報が伝送されており，所定の情報が所定の情報送信手段から送信され，及び所定の受信手段により受信されるようにされる。
【００５０】
ＣＰＵは，各種プログラムを実行するなどして，本発明のシステムの各部を制御する。また，演算などの処理は，加算回路，乗算回路，除算回路，減算回路，ビットシフタ，汎用演算装置などのハードウェアを用いてもよい。また，処理を迅速に行うため並列処理を行うことができるようにされてもよい。通常本発明は，記憶部を有しているが，記憶部は，上記のとおりＲＡＭなどのメモリ（２３）と，ＲＯＭ（２４）などにより構成されてもよい。ハードディスクをメモリの一部として用いてもよい。そして，ＲＯＭなどの記憶部には，所定の制御プログラムや，所定のデータ（ファイル，テーブルなどの形であってもよい）が読み出し可能な状態で格納される。そして，ＣＰＵの指令により，格納された制御プログラムやデータを読み出し，所定の処理を行う。一方，メモリは，プログラムのデータ領域，作業領域，所定のデータを格納する領域などとして利用される。そして，メモリへの書き込み，読み出しは，ＣＰＵからの制御指令によって行われればよい。
【００５１】
インターフェイス（２２）は，外部と接続されており，たとえば入出力部として機能する。すなわち，外部からの情報がインターフェイスを介して本システム内での処理に適した状態とされ入力される。たとえば，キーボードなどのポインティングデバイスからの操作情報がインターフェイスを介して本システムに入力されてもよい。一方，本システムにおいて処理された情報は，外部での伝送などに適した状態として出力される。
【００５２】
表示部（２５）は，所定の情報を表示する任意の要素である。表示部は，表示部の態様に応じて，グラフィック処理部や，γ補正部，フレームバッファなどがあり，表示部に適した状態に情報を変換した後に，情報を表示させる。
【００５３】
バス（２６）は，中央演算部（ＣＰＵ）（２１），インターフェイス（２２），メモリ（２３），ＲＯＭ（２４），表示部（２５）などの各要素を連結し，バスを介してデータなどが伝送される。
【００５４】
[コンピュータ又はサーバ]
本発明は，１又は複数の用語を記憶した第１の記憶手段(2)と接続可能とされ，前記第１の記憶手段に記憶された用語を暗号化するための第１の暗号化手段(3a)と，前記暗号化手段が暗号化した暗号文を格納する第２の記憶手段(4)と；電子メールを受信するための受信手段(5)と接続可能とされ，前記受信手段が受信した電子メールに含まれる所定の情報を抽出する情報抽出手段(6)と，前記情報抽出手段が抽出した情報を暗号化するための第２の暗号化手段(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶手段(7)と，前記第２の記憶手段に記憶された暗号文と，前記第３の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する，スパムメールなどを選別するか,所定の情報を有するメールなどを選別するためのコンピュータであってもよい。なお，各手段は，上述した各部に対応するものであり，各手段としてそれぞれ対応する各部と同様に機能するものがあげられる。
【００５５】
また，本発明は，１又は複数の用語を記憶した第１の記憶手段(2)と接続可能とされ，前記第１の記憶手段に記憶された用語を暗号化するための第１の暗号化手段(3a)と，前記暗号化手段が暗号化した暗号文を格納する第２の記憶手段(4)と；電子メールを受信するための受信手段(5)と接続可能とされ，前記受信手段が受信した電子メールに含まれる所定の情報を抽出する情報抽出手段(6)と，前記情報抽出手段が抽出した情報を暗号化するための第２の暗号化手段(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶手段(7)と，前記第２の記憶手段に記憶された暗号文と，前記第３の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する，スパムメールなどを選別するか,所定の情報を有するメールなどを選別するためのサーバであっても良い。
【００５６】
また，本発明は，コンピュータを，１又は複数の用語を記憶した第１の記憶手段(2)と接続可能とされ，前記第１の記憶手段に記憶された用語を暗号化するための第１の暗号化手段(3a)と，前記暗号化手段が暗号化した暗号文を格納する第２の記憶手段(4)と；電子メールを受信するための受信手段(5)と接続可能とされ，前記受信手段が受信した電子メールに含まれる所定の情報を抽出する情報抽出手段(6)と，前記情報抽出手段が抽出した情報を暗号化するための第２の暗号化手段(3b)と，前記第２の暗号化した暗号文を記憶するための第３の記憶手段(7)と，前記第２の記憶手段に記憶された暗号文と，前記第３の記憶手段が記憶した暗号文とが関連するかどうか判断するための関連性判定手段(8)とを具備する，スパムメールなどを選別するか,所定の情報を有するメールなどを選別するためのコンピュータとして機能させるプログラムであっても良い。更には，そのようなプログラムをコンピュータが読み出し可能な状態で格納したＣＤ−ＲＯＭ，ＤＶＤ−ＲＯＭ，ＭＯ，ハードディスク，ＵＳＢメモリデバイスなどの情報記録媒体であっても良い。
【００５７】
[第１の実施形態−タイトル判別−]
以下，本発明の第１の実施形態に係る「タイトルに含まれるキーワードを用いてスパムメールを判断する電子メールシステム」について説明する。その基本構成は，図１に示されたものと同様である。第１の記憶部（２）には，その用語が含まれる場合にスパムメールとする複数のキーワードが記憶される。第１の記憶部（２）がデータベースとして構成される場合，公知のデータベースマネージメントシステムにより制御されていてもよい。データベースとして，公知の記憶装置を用いることもできるし，公知の記録方式を用いることもできる。なお，ハードウェアやソフトウェアで実装する場合は，情報の授受をすることができるようにそれぞれの要素はバスなどで連結されており，動作に応じて情報が出力及び入力される。
【００５８】
なお，第１の記憶部（２）がデータベースとして構成される場合，データベースにおけるＤＢＭＳ（データベース管理システム）として，公知のＤＢＭＳがあげられる。ＤＢＭＳとして，ＤＥＳ方式やＲＳＡ方式などにより暗号化を施すものでもよい。そして，この暗号化は，後述の第１の暗号化部（３ａ）における暗号化方式と同一であっても異なってもよい。ただし，本発明としては，第１の記憶部（２）における暗号化処理ではなく，第１の記憶部と接続されるサーバなどに暗号化プログラムなどが格納され，その暗号化プログラムにより第１の暗号化部（３ａ）により所定のデータが暗号化され，また電子メールなどの所定の情報も暗号化されるものが好ましい。
【００５９】
第１の暗号化部（３ａ）は，ＭＤ５，ＭＤ４，拡張ＭＤ４，ＲＩＰＥＭＤ，ＳＨＡ，ＳＨＡ−１，ＨＡＶＡＬ，ＲＩＰＥＭ−１６０などの暗号化プログラムに従って，第１の記憶部に入力されるキーワードを自動的に暗号化（Encrypt）するための装置である。たとえば，ＭＤ５では，１２８ビットの「指紋」又は「メッセージダイジェスト」を出力する。本発明では，この指紋やメッセージダイジェストを暗号化結果として用いてもよく，それらを用いて後述の判定を行ってもよい。暗号化プログラムとして，ハッシュアルゴリズムによるものが好ましいが，ＧＣＣカオス暗号法を用いてもよい（例えば，特開平７−３３４０８１号公報）。このような暗号化プログラムは，たとえば記憶部のメインメモリに格納され，ＣＰＵの指令により読み出し可能とされればよい。このようにして暗号化されたキーワードは，例えばハッシュ関数で表現される。第１の暗号化部（３ａ）は，例えば，ＣＰＵなどが，メインメモリ中の暗号化プログラムの指令を受け，第１の記憶部から読み出した用語を暗号化し，出力するようにすればよい。また，そのための作業空間や一時記憶空間として，例えば，記憶部に含まれるメモリを用いればよい。
【００６０】
このように暗号化を行うので，登録した用語を平易に解読されないという効果を得ることができる。さらには，入れ子文字による文字数制限をコンピュータ演算限界値まで受けないという効果を得ることができる。
【００６１】
第１の暗号化部（３ａ）の好ましい態様は，第１の記憶部（２）に接続されれば，第１の記憶部（２）に含まれる所定のテーブルやファイルに含まれる所定の用語（キーワード）などの平文（Plaintext）を，自動的に読み出して，暗号化するものがあげられる。この場合，例えば，メインメモリ中の暗号化プログラムとして，第１の記憶部の所定のテーブルなどに記憶されるキーワードなどを読み出す指令と，読み出したキーワードなどをＲＡＭなどに記憶させる指令と，ＲＡＭなどに記憶されたキーワードを暗号化するためのプログラムと，暗号化されたキーワードをＲＡＭなどに記憶させる指令と，ＲＡＭなどに記憶された暗号化されたキーワードを第２の記憶部（４）などへ出力する指令とを含むものがあげられる。また，第１の暗号化部（３ａ）で暗号化された用語（暗号文）として，平文とハッシュ値とを含むものであってもよい。この場合，ハッシュ値のみを機械語として記憶し，後述の判定処理を行えば，判定を正確かつ迅速に行うことができる。
【００６２】
第２の記憶部（４）は，例えば，１又は複数の用語を記憶するための装置である。具体的には，第１の暗号化部（３ａ）で暗号化された用語を，並列記憶する。具体的には，暗号化された用語を機械語により物理メモリに格納する。ハッシュ関数とされた用語は，所定のテーブル分けがなされた状態で記憶されることが好ましい。なお，第２の記憶部（４）として，比較部を有し，既に格納された情報と，新たに入力される情報とを比較し，その差分情報だけを新たに記憶部に格納するものは，本発明の好ましい実施態様である。第２の記憶部（４）として，ハードディスク，メモリなど公知の記憶装置を用いることができる。また，所定の処理機能を有する記憶部を実装するためには，例えば，ハードディスクなどの記憶装置とＣＰＵなどを含み，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，所定の制御を行えるようにすればよい。
【００６３】
第２の記憶部（４）は，例えば，用語（キーワード）を固有ハッシュ関数化したＩＤとして記憶する。このＩＤは，好ましくは，第１の記憶部におけるインデックス（索引）として用いられる。そして，キーワード，暗号化されたキーワードなどは，このインデックスにより，記憶部のどこに保存されたかという情報と関連して記憶される。このようにすることにより，データ発信者が意図する最新の用語を用いて確実で高速にデータを抽出するという効果を得ることができる。なお，第２の記憶部（４）の記憶構造として，リレーショナルデータベースが構成されており，前記固有ハッシュ関数化（暗号化）されたＩＤと，もとのキーワードに関する情報とが関連付けて記憶されてもよい。第２の記憶部（４）には，複数のファイルが設けられ，そのうちタイトルでスパムを判定する場合は，その用途のためのファイルが選択される。そして，そのようなファイルには，レコードとして，キーワードがハッシュ関数化されたものがＩＤとして格納されている。
【００６４】
受信部（５）は，電子メールを受信するための装置である。情報抽出部（６）は，例えばこの電子メールから，電子メールのタイトルに関する情報を抽出する。具体的には，パケットのペイロード部から，所定の関数により規定されるタイトル部を抽出する。そして，第２の暗号化部（３ｂ）は，抽出されたタイトル情報に，暗号化を施して，ハッシュ関数などで表現する。第２の暗号化部（３ｂ）を実装するためには，例えば，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，所定の制御を行えるようにすればよい。第２の暗号化部（３ａ）が行う暗号化のアルゴリズムは，第１の暗号化部（３ａ）におけるアルゴリズムと同様のものがあげられる。すなわち，情報抽出部は，タイトル情報を抽出した後，ＣＰＵは，メインメモリなどに記憶された暗号化処理プログラムの指令を受け，ＲＡＭなどのメモリを利用しつつ，抽出したタイトル情報を暗号化する。暗号化されたタイトル情報は，第３の記憶部（７）へ出力される。第３の記憶部（７）は，この抽出されたタイトル情報を記憶する。第３の記憶部（７）として，ＲＡＭなどがあげられる。
【００６５】
判定部（８）は，第３の記憶部（７）に記憶された電子メールのタイトル情報を受取り，第２の記憶部（４）に格納された用語と関連するか判定するための装置である。具体的には，暗号化されたタイトル情報の中に，暗号化されたキーワードが含まれるか判定する。このような判定は，暗号化されたキーワードのいずれかと，暗号化されたタイトルとが一致するものがあるかどうか判断するようにすればよい。例えば，判定部（８）を実装するためには，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，所定の制御を行えるようにすればよい。
【００６６】
[第一の実施形態の動作]  以下，動作例を説明する。第１の記憶部（２）と第１の暗号化部（３ａ）とが接続されるか，又は第１の記憶部（２）の所定のファイルなどに新たな用語が入力される。すると，第１の暗号化部（３ａ）は，メインプログラムから読み出された制御プログラムに従って，第１の記憶部の所定の記憶部に記憶されるキーワードを自動的に読み出し，ＲＡＡＭなどに記憶する。そして，ＲＡＭなどに記憶した用語を読み出して，暗号化プログラムに従って，自動的にそのキーワードを暗号化する。この暗号化後のものとして，ハッシュ関数によるＩＤと，そのキーワードとを有するものがあげられる。また，キーワード全体をハッシュ関数などで暗号化してもよい。そして，暗号化部は暗号化したキーワードを第２の記憶部（４）へ出力する。記憶部（４）は，暗号化されハッシュ関数とされたキーワードなどを，機械語により物理メモリに格納する。
【００６７】
受信部（５）は，電子メールを受信する。そして，受信部は，受信した電子メールをＲＡＭなどに記憶する。情報抽出部（６）は，電子メールのパケットのペイロード部から，所定の関数により規定されるタイトル部を抽出し，第２の暗号化部(３ｂ)へ送信する。第２の暗号化部（３ｂ）は，受信した情報に例えばハッシュ関数による暗号化を施す。具体的には，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，ＲＡＭなどに記憶された電子メール情報から，タイトル部を抽出し，抽出したタイトル部をＲＡＭなどに記憶した上で，上記暗号化部（３ａ）と同一の暗号化プログラムを読み出して，暗号化を行う。そして，暗号化したタイトル部を第３の記憶部へ出力する。第３の記憶部（７）は，この抽出されたタイトル情報を記憶する。この暗号化後のものとして，ハッシュ関数によるＩＤと，そのキーワードとを有するものがあげられる。また，キーワード全体をハッシュ関数などで暗号化してもよい。
【００６８】
判定部（８）は，第３の記憶部（７）に記憶された電子メールのタイトル情報を受取り，ＲＡＭなどに一時的に記憶する。そして，ＣＰＵがメインメモリ中の制御プログラムの指令を受け，このタイトルに含まれる用語に第２の記憶部（４）に格納された用語のうち一致するものがあるかどうか検索する。具体的には，ハッシュ関数で暗号化されたＩＤを用いて，タイトルに含まれる用語の全てのＩＤについて，第２の記憶部（４）に格納されたＩＤと同一のものがあるか判定する。そして，第２の記憶部（４）に格納されたいずれかの用語と，送信メールのタイトルに含まれる用語とが一致するものがあると判断した場合，一致（迷惑メール）という情報を出力する。一方，第２の記憶部（４）に格納されたいずれかの用語と，送信メールのタイトルに含まれる用語とが一致しない場合，不一致（迷惑メールでない）という情報を出力する。この不一致という判断を受けた受信部（５）は，ＲＡＭなどに一時的に記憶された電子メールを，そのペイロードに含まれるＩＰアドレスなどの情報に従って，所定のクライアントへ送信する。一方，一致という判断を受けた受信部（５）は，ＲＡＭなどに一時的に記憶された電子メールのペイロードに含まれるＩＰアドレスなどの情報に従って，所定のクライアントへ，迷惑メールを受信した旨に関する情報を送信する。
【００６９】
このように，本発明によれば，判定を行う場合に，あらかじめ機械語で格納された用語を用いて判定を行えるので，第１の記憶部（２）に格納される用語を読み出して，用語を照合する必要がなくなる。これにより，頻繁にスパムチェックをしても第１の記憶部とＣＰＵなどを連結するバスの帯域を圧迫することにならず、また，ネットワークの帯域も圧迫することにならないし、スパムチェックなどもきわめて迅速かつ正確に行うことができる。さらには，例えば，サーバ内のキーワードが暗号化されているので，第三者がサーバにアクセスしたとしても，そのキーワードが漏洩する怖れを軽減できる。さらには，キーワードをハッシュ関数などで暗号化し，そのＩＤを，例えばインデックス（索引）として，用いて，電子メールにそのキーワードが含まれるかどうか判定できるので，機械語のまま，かつ小さな情報の一致・不一致を判断すれば足りるので，スパムチェックをきわめて迅速に行うことができることとなる。
【００７０】
[第二の実施形態]
次に本発明の第二の実施形態に係るＩＰアドレスからスパムメールを判断する電子メールシステムについて説明する。その基本ブロック構成は，上述したと同様である。第１の記憶部（２）には，複数のＩＰアドレスが入力される。第１の暗号化部（３ａ）は，ＣＰＵが読み出した制御プログラムの指令に従って，第１の記憶部の所定の記憶領域に記憶される１又は複数のＩＰアドレスを読み出し，ＣＰＵが読み出したＭＤ５，ＭＤ４などの暗号化プログラムに従って，読み出したＩＰアドレスを暗号化する。このようにして暗号化されたＩＰアドレスは，たとえば，ハッシュ関数で表される。
【００７１】
第２の記憶部（４）は，例えば，１又は複数の送信先のＩＰアドレスを暗号化して記憶する。具体的には，例えばＩＰアドレスをハッシュ関数によるＩＰブロックに分けて記憶する。それぞれのＩＰブロックは，例えば，複数のレコードで構成されるが，ひとつのＩＰアドレスに対しては，好ましくはひとつのレコードが形成される。
【００７２】
受信部（５）は，電子メールを受信する。情報抽出部は，この電子メールから，送信者のＩＰアドレスに関する情報を抽出し，第2の暗号化部へ送信する。第2の暗号化部は，抽出された情報を暗号化する。この暗号文として，ハッシュ関数があげられ，ブロックに分けて出力されてもよい。第３の記憶部（７）は，この暗号化された送信者のＩＰアドレスを記憶する。
【００７３】
波長分割多重通信などでは，まず電子メールなどを受信する際に，送信ノードと受信ノードとの間で用いる波長を設定する（光パス設定）。具体的には送信ノードが接続要請を行うので，その際にＩＰアドレス情報を含むパス設定情報を各ノードへ伝える。そして，受信ノードは，この光パス設定の際に含まれる送信者に関する情報を受取って，受信部に入力してもよい。そのようにすれば，光パス設定の際に情報を抽出して暗号化し，予めハッシュ関数化して格納した所定のＩＰアドレスを用いて，マッチング判定を行うことにより，スパムメールやウィルスメールの光パス設定自体を防止できるか，スパムメールなどを受信しないように設定することもできるので，たとえばウィルスメールについては，サーバやクライアントなどがウィルスに感染する事態を効果的に防止できる。
【００７４】
判定部（８）は，第３の記憶部（７）に記憶された暗号化された送信者のＩＰアドレスを受取り，第２の記憶部（４）に格納された暗号文から検索する。これらの暗号文は，同じアルゴリズムにより暗号化されたもので，たとえばハッシュ関数として表現されている。そして，第２の記憶部（４）に格納されたいずれかのＩＰアドレスと，送信者のＩＰアドレスとが一致するものがある場合，一致（迷惑メール）という情報を出力する。一方，第２の記憶部（４）に格納されたいずれかのＩＰアドレスと，送信者のＩＰアドレスとが一致しない場合，不一致（迷惑メールでない）という情報を出力する。
【００７５】
なお，暗号化されたＩＰアドレス（ハッシュ関数）が一致した場合に，そのハッシュ関数をインデックスとしてＩＰアドレスの平文を読み出して，読み出されたＩＰアドレスと，送信者のＩＰアドレスとが一致するものがあるかどうかさらに判断し，一致した場合に一致（迷惑メール）という情報を出力し，一致しない場合に不一致（迷惑メールでない）という情報を出力するようにしてもよい。このようにした場合，最終的な照合は，暗号化されていない文字列（平文）により行われることとなるが，平文による照合を行う量を大幅に削減できる。
【００７６】
また，特に図示しないが，判定部（８）の判定結果は，所定の処理部へ送られ，所定の処理部は判定結果をＲＡＭなどに記憶し，ＣＰＵにより読み出された制御プログラムの指令を受けて，所定の指令を出力する。具体的には，たとえば，受信部に対して，電子メールを削除するＤＥＬＥＴＥ指令などを出力する。これを受けた受信部は，電子メールを削除する処理を行う。また，制御プログラムの中にメール着信自体を拒否するＲＥＪＥＣＴ指令を出力し，これを受けた受信部は，大量に送付された同一のメール自体を受信拒否する処理を行うようにしてもよい。
【００７７】
なお，上記のように電子メールを削除する処理を行った場合，ＤＥＬＥＴＥ指令やＲＥＪＥＣＴ指令などを受けて，送信者へ電子メールを受信しなかったことを示す内容の電子メールを返送するものは本発明の好ましい別の実施態様である。このような電子メールシステムは，ＤＥＬＥＴＥ指令やＲＥＪＥＣＴ指令など判定結果を受取る入力部と，送信者へ電子メールを受信しなかったことを示す内容の電子メールの本文を格納する記憶部と，送信者へ電子メールを受信しなかったことを示す内容の電子メールを送信する送信部とを具備するものがあげられる。そして，ＤＥＬＥＴＥ指令やＲＥＪＥＣＴ指令など判定結果を受取った場合，ＣＰＵが，メインメモリなどから制御プログラムを読み出して，その制御プログラムの指令に基づいて，記憶部から格納された電子メール本文を読み出して，ＲＡＭなどに記憶し，前記送信部が送信者のＩＰアドレスなどを用いて，送信者に前記電子メール本文をデータ部に含む電子メールを送信するようにすればよい。
【００７８】
[第３の実施態様]
この態様は，上述した暗号化を用いたマッチングと通常のマッチングとを並行して用いることにより，お互いの利点を利用するシステムに関する。特に図示しないが，この態様のシステムは,第１のスパム判断部と，第２のスパム判断部とを具備する。まず，モデム等の受信部が，インターネット等の通信ネットワークを介して配信される電子メールを受信する。受信された電子メールは，コンピュータ又はサーバ内の一時記憶部に記憶しておく。そして，第１のスパム判断部は，その電子メールがスパムメールであるかどうか判断する。第１のスパム判断部によりスパムでないと判断された場合に，第２のスパム判断部によりスパムかどうか判断するようにしても良いし，第１のスパム判断部によりスパムであると判断された場合に，第２のスパム判断部によりスパムかどうか判断するようにしても良い。さらに，第1のスパム判断部による判断と並行して，第２のスパム判断部は，その電子メールがスパムメールであるかどうか判断してもよい。そして，いずれかのスパム判断部又は両方のスパム判断部により，スパムメールであると判断された場合は，受信した電子メールを削除し，受信者にスパムメールが届いた旨を通知する。また，送信者に向けて，受信者が受け取らなかった旨の連絡を送信しても良い。なお，好ましい態様としては，第２のスパム判断部をリアルタイム検索に用い，第１のスパム判断部をたとえばメッセージＩＤをハッシュ関数へ暗号化したものを用いるものがあげられる。
【００７９】
第１のスパム判断部として，例えば図１に示されるような本発明の電子メールシステムを用いればよい。そして，第２のスパム判断部として，フィッシャー直接確率，及びカイ２乗検定のいずれか又は両方を用いてスパムメールを判断するものがあげられる。第２のスパム判断部として，ネットワークを介して配信される電子メールを受信する受信部と，前記電子メールに対して，フィッシャー直接確率，及びカイ２乗検定のいずれか又は両方により，電子メールの評価値を求める評価部と，前記評価値と設定値との大小を比較する比較部とを具備し，前記比較部が評価値が設定値以上と判断した場合は，スパムメールとし，評価値が設定値以下と判断した場合はスパムペールではないと判断するものがあげられる。そして，評価部は，フィッシャー直接確率の値を求めるフィッシャー直接確率算出部，及びカイ２乗検定の値を求めるカイ２乗検定算出部のいずれか又は両方を具備するものがあげられる。
【００８０】
この態様に用いる第１のスパム判断部として，好ましくは電子メールのメッセージＩＤとＦＱＤＮのいずれか又は両方を抽出し，ハッシュ関数に暗号化してマッチングを行うものがあげられる。その中でも好ましいものは，電子メールのメッセージＩＤを抽出し，ハッシュ関数に暗号化してマッチングを行うものである。なお，メッセージＩＤが認識されない場合は，マッチングをするまでもなく，スパムメールであると判断してもよい。このような場合，電子メールに所定の関数で定義されるメッセージＩＤがあるかどうか判断するメッセージＩＤ判断部を用いれば，メッセージＩＤの有無を容易に判断できる。
【００８１】
フィッシャー直接確率，及びカイ２乗検定は，いずれもスパムメール判定アルゴリズムとして公知のアルゴリズムである。そして，これらのスパムメール判断プログラムは，例えばメインメモリに記憶されればよく，スパム判断時には，ＣＰＵはメインメモリに格納されたそのプログラムからの指令を受けて，電子メールの本文などの情報を読み出し，公知の演算を行うことで，評価値を算出すればよい。
【００８２】
フィッシャー直接確率の値を求めるフィッシャー直接確率算出部は，たとえば，電子メールなどのＢＯＤＹ（本文）から，所定の文字数（例えば18文字）を抽出するための文字抽出部と，文字抽出部が抽出した文字を例えば3文字ごとのブロックに分けるためのブロック分割部と，ブロック分割部が分割した文字ブロックに基づいてワードリストを作成するワードリスト作成部と，ワードリスト作成部が作成したワードリストの出現回数をカウントするための出現回数カウント部と，出現回数カウント部がカウントした出現回数を記憶するメモリなどの出現回数記憶部と，前記出現回数記憶部が記憶した出願回数をもとに，フィッシャー直接確率を求めるフィッシャー直接確率計算部と，を具備する。
【００８３】
以下，フィッシャー直接確率算出部を用いた，フィッシャー直接確率の算出方法の例を説明する。たとえば，文字抽出部が，電子メールなどのＢＯＤＹ（本文）から，所定の文字数（例えば18文字）を抽出する。電子メールのＢＯＤＹは通常所定の関数により定義されるので，その関数を用いれば容易に所定の文字を抽出できる。このようにして抽出された文字列として，たとえば，「お忙しいところ，迅速にご修正頂きあり」があげられる。
【００８４】
ブロック分割部は，文字抽出部が抽出した文字を例えば3文字ごとのブロックに分ける。たとえば，「お忙し／いとこ／ろ，迅／速にご／修正頂／きあり」のように分ければよい。ワードリスト作成部は，ブロック分割部が分割した文字ブロックに基づいてワードリストを作成する。たとえば，「お忙し／いとこ／ろ，迅／速にご／修正頂／きあり」の６つのワードリストが作成される。ワードリスト作成作業は公知のプログラムを利用し公知のメーラー，例えばアウトルックエキスプレスやベッキーから記事のＢＯＤＹ（本文）を自動的に抜き出すプログラムなどにより，別途作業ファイルを作成しメール本文を保存すればよい，
【００８５】
出現回数カウント部は，ワードリスト作成部が作成したワードリストごとに，たとえば，これまでスパムとされたメールに，そのブロックが何回出現したかなどをカウントする。このカウント値は，出現回数記憶部に記憶され，適宜更新される。たとえば，「お忙し」が５回；「いとこ」が９回；「ろ，迅」が３回；「速にご」が９回；「修正頂」が２０回「きあり」が４０回があげられる。
【００８６】
フィッシャー直接確率計算部は，この出現回数カウント部がカウントした出現回数を読み出して，フィッシャー直接確率を求める。なお，カイ２乗検定算出部も基本的には，フィッシャー直接確率算出部と同様の構成によりカイ２乗検定値を求めるものがあげられる。
【００８７】
フィッシャー直接確率とカイ２乗を元に電子メール本文に出現する語句や単語を数値化し，0.5をスパムメールと通常のメールの中心基準値に設定し，たとえば，スパムメールと思われる電子メール本文に出現する語句や単語を1と換算し0.7以上の数値が出現したらスパムメールと判定する。また，通常メールを0と換算し0.4以下の数値が出現したら通常メールと判定するようにしてもよい。このような判定は，スパムメールに含まれる語句,単語，又はブロックを所定の値に設定するか，通常のメールに含まれる語句，単語，又はブロックを所定の値に設定する数値設定部と，スパムメールと判断する閾値を設定する閾値設定部と，求められたフィッシャー直接確率値又はカイ２乗値と閾値とを比較する比較部とにより達成できる。このような各部は，たとえば，そのような処理を行わせるプログラムをメインメモリに格納しておき，ＣＰＵがメインメモリに格納されたプログラムの指令を受けて，所定のデータを読み出し，演算回路やバッファやメモリなどを記憶部や作業空間などとして利用しつつ，所定の演算を行うようにすればよい。この数値化したデータは記憶部に反映させてもよいし，単独ファイルでサーバ内部に格納しても良い。
【図面の簡単な説明】
【００８８】
【図１】図１は，本発明のシステムの基本構成を示すブロック図である。
【図２】図２は，本発明の暗号文準備段階を説明するためのフローチャートである。
【図３】図３は，受信した電子メールに含まれる情報を暗号化する工程例を説明したフローチャートである。
【図４】図４は，関連性判定処理の例を示すフローチャートである。
【図５】図５は，暗号文をブロックに分けた例を示す概念図である。
【図６】図６は，ブロック分けを利用したマッチング工程の例を示すフローチャートである。図６（Ａ）は，1工程のみを示し，図６（Ｂ）は多段階スクリーニング（マッチング）工程のものを示す。
【図７】図７は，本発明のシステムに関するサーバなどのハードウェア構成（２０）を示す図である。
【符号の説明】
【００８９】
１  電子メールシステム
２  第１の記憶部
３ａ  第１の暗号化部
３ｂ  第２の暗号化部
４  第２の記憶部
５  メール受信部
６  情報抽出部
７  第３の記憶部
８  関連性判定部
【図１】
2006350560.tif 000003
【図２】
2006350560.tif 000004
【図３】
2006350560.tif 000005
【図４】
2006350560.tif 000006
【図５】
2006350560.tif 000007
【図６】
2006350560.tif 000008
【図７】
2006350560.tif 000009