(57)【要約】【課題】  サーバを攻撃されてもデータを漏洩される危険の少ないデータ暗号化システムを提供すること。【解決手段】  本発明における暗号化システムは、クライアント端末とサーバ端末とを備えた暗号化システムであって、クライアント端末は、データを入力する入力手段と、入力手段により入力されたデータを暗号化する暗号化手段と、サーバ端末に対して前記暗号化手段により暗号化された暗号データを送信する送信手段を有し、サーバ端末は、クライアント端末から暗号データを受信する受信手段と、受信手段により受信した暗号データを暗号化された状態で格納する記憶手段と、クライアント端末に対して記憶手段に格納された暗号データを送信する送信手段を有する暗号化システムである。このような構成により、サーバからデータが漏洩しても暗号化されているため、内容を知られる危険を回避することが可能となる。【選択図】図３
2006304215.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末とサーバ端末とを備えた暗号化システムであって、
前記クライアント端末は、データを入力する入力手段と、前記入力手段により入力されたデータを暗号化する暗号化手段と、前記サーバ端末に対して前記暗号化手段により暗号化された暗号データを送信する送信手段を有し、
前記サーバ端末は、前記クライアント端末から暗号データを受信する受信手段と、前記受信手段により受信した暗号データを暗号化された状態で格納する記憶手段と、前記クライアント端末に対して前記記憶手段に格納された前記暗号データを送信する送信手段を有する暗号化システム。
【請求項２】
前記サーバ端末は、更に、
前記暗号化手段により暗号化を行うための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵を生成する秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備え、
前記クライアント端末の暗号化手段は、前記サーバ端末より送信された公開鍵を用いて暗号化することを特徴とする請求項１記載の暗号化システム。
【請求項３】
前記クライアント端末は、複数の端末より構成されることを特徴とする請求項１または２記載の暗号化システム。
【請求項４】
前記送信手段及び受信手段は、ＳＳＬ（Secure Sockets Layer）を用いて暗号化したデータを送受信することを特徴とする請求項１、２または３記載の暗号化システム。
【請求項５】
データを暗号化する公開鍵と前記公開鍵により暗号化されたデータを復号化するための秘密鍵を生成し、接続されたクライアント端末に生成した鍵を送信する鍵生成サーバであって、
前記クライアント端末により暗号化するための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備えることを特徴とする鍵生成サーバ。
【請求項６】
前記鍵送信手段は、ＳＳＬを用いて暗号化したデータを送信することを特徴とする請求項５記載の鍵生成サーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ暗号化システム及び鍵生成サーバに関するものであり、より詳細には、サーバ・クライアントモデルによるデータ暗号化システム及び鍵生成サーバに関する。
【背景技術】
【０００２】
インターネット等のネットワーク網を介してサーバとクライアント間でデータの送受信を行う場合、データの漏洩や改竄防止の措置が必要となる。そのため、サーバへのアクセスをサーバ管理者とデータ作成者、利用者のみに限定してアクセス制限をかけるという方法が取られることも多い。
【０００３】
しかし、１台のサーバで複数の会社のデータを共有するホスティング共有サーバの場合、会社毎にアクセス制限をかけていても、同一のサーバ内に複数の会社のデータが存在するため、不正アクセスを行いやすい。特にこのような場合は、アクセス制限を行うソフトウェアにセキュリティホールが存在する可能性が高く、セキュリティの面では問題点が多い。
【０００４】
その対策として、データを暗号化して送受信することにより、送受信時のデータを盗聴されたとしても、解読できないようにする方法が提案され、利用されるようになった（例えば、特許文献１など）。
【０００５】
しかしながら、送受信時にデータの暗号化を行っても、サーバにデータを保存するときのデータは暗号化されてない場合が多く、このような場合、データ送受信時の盗聴でなくサーバを攻撃された場合のデータ漏洩の危険性はかなり高いものであった。
【０００６】
更に、サーバのセキュリティ対応はサーバ管理者に依存する場合が多く、サーバ管理者はサーバ上のデータを自由に閲覧したりデータを持ち出したりすることが可能であった。サーバ管理を別会社に委託している場合はこのようなことが問題になる場合も多い。
【特許文献１】特開２００４−２５４０２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
このように、従来のデータ暗号化システムは、サーバへの攻撃に対して弱いものであった。また、サーバ管理者からデータを守ることができないという問題点があった。
【０００８】
本発明は、これらの問題点を解決するためになされたものであり、サーバを攻撃されてもデータを漏洩される危険の少ないデータ暗号化システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明における暗号化システムは、クライアント端末とサーバ端末とを備えた暗号化システムであって、前記クライアント端末は、データを入力する入力手段と、前記入力手段により入力されたデータを暗号化する暗号化手段と、前記サーバ端末に対して前記暗号化手段により暗号化された暗号データを送信する送信手段を有し、前記サーバ端末は、前記クライアント端末から暗号データを受信する受信手段と、前記受信手段により受信した暗号データを暗号化された状態で格納する記憶手段と、前記クライアント端末に対して前記記憶手段に格納された前記暗号データを送信する送信手段を有する暗号化システムである。このような構成により、サーバからデータが漏洩しても暗号化されているため、内容を知られる危険を回避することが可能となる。
【００１０】
前記サーバ端末は、更に、前記暗号化手段により暗号化を行うための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵を生成する秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備え、前記クライアント端末の暗号化手段は、前記サーバ端末より送信された公開鍵を用いて暗号化することを特徴としてもよい。このようにすることにより、サーバ内に秘密鍵が残らないため、内容を知られる危険を回避することが可能となる。
【００１１】
前記クライアント端末は、複数の端末より構成されることを特徴としてもよい。
【００１２】
前記送信手段及び受信手段は、ＳＳＬを用いて暗号化したデータを送受信することを特徴としてもよい。
【００１３】
本発明における鍵生成サーバは、データを暗号化する公開鍵と前記公開鍵により暗号化されたデータを復号化するための秘密鍵を生成し、接続されたクライアント端末に生成した鍵を送信する鍵生成サーバであって、前記クライアント端末により暗号化するための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備えることを特徴とする鍵生成サーバである。このようにすることにより、サーバ内に秘密鍵が残らないため、内容を知られる危険を回避することが可能となる。
【００１４】
前記鍵送信手段は、ＳＳＬを用いて暗号化したデータを送信することを特徴としてもよい。
【発明の効果】
【００１５】
本発明によれば、サーバを攻撃されてもデータを漏洩される危険の少ないデータ暗号化システムを提供することが可能となる。
【発明を実施するための最良の形態】
【００１６】
図１は、本発明の実施の形態におけるデータ暗号化システムの全体構成を示す模式図である。本発明におけるデータ暗号化システムは、ＰＣ（Personal Computer）１とサーバ２より構成される。ＰＣ１とサーバ２はネットワークにより接続されている。ここでのネットワークはインターネット等の多方面から接続可能なものでも、イントラネット等の狭い範囲内でしか利用できないものでもよい。
【００１７】
ＰＣ１は、データの入力及び閲覧を行う端末であり、入力したデータをサーバ２に送信する。またデータ閲覧時は、サーバ２からデータを受信する。ＰＣ１は、ネットワークを介してサーバ２とファイルの送受信が可能であり、市販されているＰＣをそのまま利用することができる。また、ＰＣ１は１台とは限らず、２台以上あってもよい。
【００１８】
サーバ２は、ＰＣ１からデータを受信し格納する。格納したデータは、必要に応じてＰＣ１に送信される。サーバ２も、ＰＣ１と同様にネットワークを介してＰＣ１とファイルの送受信が可能である。サーバ２も市販されているＰＣをそのまま利用することが可能である。
【００１９】
図２は、本発明における、ＰＣ１のハードウェア構成の一例を示している。尚、サーバ２も同様の構成を備えることができる。ＰＣ１は、中央処理装置（ＣＰＵ）２０１とメモリ２０４とを含んでいる。ＣＰＵ２０１とメモリ２０４とは、バスを介して補助記憶装置としてのハードディスク装置２１３に接続される。フレキシブルディスク装置２２０、ハードディスク装置２１３、ＣＤ−ＲＯＭドライブ２２６等の記憶媒体駆動装置は、フレキシブルディスク・コントローラ２１９、ＩＤＥコントローラ２２５などの各種コントローラを介してバスに接続される。フレキシブルディスク装置２２０等の記憶媒体駆動装置には、フレキシブルディスク等の可搬型記憶媒体が挿入される。
【００２０】
記憶媒体にはオペレーティングシステムと協同してＣＰＵ２０１に命令を与え、本実施形態を実施するためのコンピュータ・プログラムを記憶することができる。本実施形態における各種手段は全てコンピュータ・プログラムの一つである。また、本実施形態におけるプログラムが生成するデータは、メモリ２０４に記憶され、必要に応じて、ハードディスク装置２１３にも記憶される。コンピュータ・プログラムは、メモリ２０４にロードされることによって実行される。コンピュータ・プログラムは圧縮し、又、複数に分割して記憶媒体に記憶することができる。ハードウェア構成は、典型的には、ユーザー・インターフェース・ハードウェアを備える。
【００２１】
ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティング・デバイス（マウス２０７、ジョイスティック等）やキーボード２０６、あるいは、視覚データをユーザーに提示するための液晶ディスプレイなどの表示装置２１１がある。画像データはＶＲＡＭ２０９に記憶され、ＶＧＡコントローラ２０８からＤＡＣ／ＬＣＤコントローラ（ＬＣＤＣ）２１０を介して表示装置２１１に送られる。本実施例におけるユーザーからの入力は、全てマウス２０７やキーボード２０６などを介して行われる。また、シリアルポート２１５を介してモデムを接続することが可能であり、シリアルポート２１５や通信アダプタ２１８を介してネットワークに接続し、サーバ２等の他のコンピュータシステムと通信を行うことができる。上記構成は必要に応じて省略することができる。
【００２２】
図３は、本発明における暗号化システムの機能構成を示すブロック図である。本発明における暗号化システムは、ＰＣ１とサーバ２より構成される。
【００２３】
ＰＣ１は、入力したデータを暗号化しサーバ２に送信するクライアント端末であり、入力部１０、暗号化部１１、送信部１２、受信部１３、復号化部１４を備える。
【００２４】
入力部１０は、データを入力する入力手段である。入力はキーボード２０６、マウス２０７などによりユーザーが手動で行ってもよいし、ＣＤ−ＲＯＭドライブ２２６からＣＤ−ＲＯＭにより外部で記録されたデータを入力するようにしてもよい。入力したデータはハードディスク装置２１３に格納される。
【００２５】
暗号化部１１は、入力部１０により入力されたデータの暗号化を行う暗号化手段である。暗号化はハードディスク装置２１３に格納された入力データをメモリ２０４に読み出し、ＣＰＵ２０１により行う。暗号化は公開鍵を利用して行う。公開鍵については後に説明するのでここでは説明を省略する。
【００２６】
送信部１２は、暗号化部１０により暗号化したデータをサーバ２に対して送信する送信手段である。送信はシリアルポート２１５に接続されたモデムや通信アダプタ２１８により行われる。
【００２７】
受信部１３は、サーバ２から受信した暗号化データを受信する受信手段である。受信は、シリアルポート２１５に接続されたモデムや通信アダプタ２１８により行われる。
【００２８】
復号化部１４は、受信部１３により受信したデータの復号化を行う復号化手段である。復号化は受信したデータをメモリ２０４に読み出し、ＣＰＵ２０１により行う。復号化は秘密鍵を利用して行う。秘密鍵については後に説明するのでここでは説明を省略する。
【００２９】
サーバ２は、ＰＣ１から受信したデータを格納し、ＰＣ１に対して格納したデータの送信を行うサーバ端末である。サーバ２は、受信部２０、記憶部２１、送信部２２、鍵生成部２３を備える。
【００３０】
受信部２０は、ＰＣ１から受信した暗号化データを受信する受信手段である。受信は、シリアルポート２１５に接続されたモデムや通信アダプタ２１８により行われる。
【００３１】
記憶部２１は、受信部２０により受信したデータの格納を行う記憶手段である。データの格納はハードディスク装置２１３により行われる。
【００３２】
送信部２２は、記憶部２１に格納したデータをＰＣ１に対して送信する送信手段である。送信は、シリアルポート２１５に接続されたモデムや通信アダプタ２１８により行われる。
【００３３】
鍵生成部２３は、暗号化に利用する鍵データの生成を行う。鍵データの生成は、ＣＰＵ２０１により行う。
【００３４】
続いて、図４に示すフローチャートを用いて、本発明におけるデータ暗号化の処理の流れについて説明する。暗号化プログラムは予めハードディスク装置２１３にインストールされてあり、メモリ２０４に読み込まれ動作する。ここでのＣＰＵ２０１の動作は、全て暗号化プログラムの命令により行われる。暗号化の手段は、公開鍵と秘密鍵を用いた方式であれば特に限定されない。ここでの暗号化はＲＳＡ方式を用いることとする。
【００３５】
まず、ユーザーはサーバに格納したいデータをＰＣ１に対して入力する（Ｓ１０１）。入力は入力部１０により行われる。入力するデータは入力のためのアプリケーションに対応するデータであり数値データでも文字データでも画像データでもよい。入力したデータはファイルとしてＰＣ１内のメモリ２０４またはハードディスク装置２１３に格納される。
【００３６】
データの入力が完了すると、暗号化部１１は、入力されたデータの暗号化を行う（Ｓ１０２）。暗号化は、すでに取得している公開鍵を利用して行う。ここで取得した公開鍵により暗号化されたデータは、秘密鍵を利用しないと復元ができない。
【００３７】
暗号化の方法は特に限定されないが、公開鍵暗号等のキーによる暗号化及び復号化が行われる方式の暗号化を行う。この時利用されるキーデータは、２進数のビット列であり、ビット長が長いほど考えられるキーデータの組み合わせが多くなり、ブルート・フォース・アタックが困難になるため、安全性が増す。本実施例では５１２ビットのビット長のキーデータを利用する。
【００３８】
データの暗号化と共に、暗号化部１１は、入力したセルのデータからハッシュデータの生成も行うようにしてもよい（Ｓ１０３）。このハッシュデータは復号化が正しく行われているかを確認するときに必要となるデータである。暗号化されたセルのデータ、ハッシュデータはメモリ２０４に格納される。また、セルのデータ及びハッシュデータはユーザーの保存操作に応じてファイルとしてハードディスク装置２１３に記録される。
【００３９】
ここで、ハッシュデータについて簡単に説明する。ハッシュデータは、主にデータの認証に使われるデータであり、ハッシュデータを用いることにより、データの信頼性を高めることが可能となる。本発明の実施の形態では、暗号化に利用したキーデータが正しいものであるかを確認するためにハッシュデータを利用している。
【００４０】
ハッシュデータの生成には元データを特定の関数式にかけて８ビットのデータを生成する。ここで利用する式は特に限定されないが、複雑な式である方が式を見破られることがないため望ましい。例えば、ＳＨＡ−１というハッシュ関数を利用してハッシュデータを生成すると、元データを１ビット変換しただけで、生成する２０バイトのハッシュデータが全バイト異なるデータになる。
【００４１】
このようにして生成したハッシュデータを記憶しておくことにより、復号化したデータが正しい場合は、復号化したデータに基づき、生成したハッシュデータも同じ値になるはずなので、正しいデータであるかどうかを確認することが可能となる。
【００４２】
暗号化が完了すると、送信部１２は、サーバ２に生成した暗号データを送信する（Ｓ１０４）。このときの送信は、ＳＳＬ（Secure Sockets Layer）の技術を利用すると、より安全性を高めることができる。
【００４３】
サーバ２は、受信部２０によりＰＣ１から送信された暗号データを受信すると、復号は行わずに暗号データのまま、サーバ２の備える記憶部２１に格納する。サーバ２は、秘密鍵を持っていないため、サーバ管理者に悪意があったとしても格納されたデータを復元することは不可能である。また、このようにすることにより、サーバ２が攻撃されて、格納したデータが盗まれたとしても、秘密鍵がないためデータは暗号データのままであり、復号化して正しいデータを取得することはできなくなる。
【００４４】
続いて、図５に示すフローチャートを用いて、本発明における復号化の処理の流れについて説明する。復号化のプログラムも暗号化のプログラムと同様に予めハードディスク装置２１３にインストールされてあり、メモリ２０４に読み込まれ動作する。ここでのＣＰＵ２０１の動作も、全て復号化プログラムの命令により行われる。
【００４５】
まず、ＰＣ１の有するＣＰＵ２０１が、サーバ２に対してデータ送信要求のリクエストを送信する（Ｓ２０１）。このときの送信も、ＳＳＬの技術を利用することにより安全性を高めることができる。
【００４６】
サーバ２は、ＰＣ１からデータ送信要求のリクエストを受信すると、記憶部２１に格納した暗号データを送信部２２により、そのままＰＣ１に対して送信する（Ｓ２０２）。ＰＣ１の受信部１４は、送信部２２から暗号データを受信すると、受信した暗号化データを復号化部１５に対して出力する。復号化部１５は、秘密鍵を用いて暗号データの復号化を行う（Ｓ２０３）。秘密鍵はＰＣ１にのみ備えられているため、ＰＣ１以外の端末から暗号データを不正な方法で取得したとしても、秘密鍵を取得しない限り復号化は不可能である。
【００４７】
このとき、復号化部１５は、復号化を行ったときに復号化データからハッシュデータを生成し（Ｓ２０４）、ハッシュデータが正しいかどうか確認する（Ｓ２０５）ことによりキーデータが正しいキーデータであるかどうかを確認するようにしてもよい。ハッシュデータが正しい場合は、そこで復号化は完了となる。
【００４８】
続いて、鍵生成部２３による鍵生成の方法について説明する。鍵生成ツールは、サーバ２の中に格納されている。データを利用するユーザーは、事前にＰＣ１からサーバ２にアクセスし、秘密鍵を取得する。この秘密鍵に対応する公開鍵はサーバ２内に格納され、公開鍵はサーバ２に接続されたどの端末からも取得可能である。ただし、秘密鍵についてはサーバ２には格納されず、ＰＣ１以外の端末から取得することは不可能である。
【００４９】
図５に示すフローチャートを用いて、本発明における鍵生成時の処理の流れについて説明する。まず、ＰＣ１からネットワークを介してサーバ２の備える鍵生成ツールにアクセスする（Ｓ３０１）。
【００５０】
サーバ２は、ＰＣ１からのアクセスにより鍵生成ツールを起動する。鍵生成ツールは、公開鍵と秘密鍵を生成する（Ｓ３０２）。ここで生成される秘密鍵は、ここで生成される公開鍵により暗号化された暗号データを復号化するためのキーデータである。生成した公開鍵及び秘密鍵は一時的にＰＣ１の備えるメモリに格納される。
【００５１】
キーデータの生成は、主に乱数を生成し、その乱数をキーデータとして利用することができる。乱数によるキーデータが他の方法により生成されたキーデータよりも予測が難しい。乱数生成のアルゴリズムは、より予測不可能な専用のアルゴリズムを利用することが望ましいが、既存のライブラリが備える乱数発生の関数を利用しても、乱数を利用しない場合に比べて予測不可能性を高めることができる。
【００５２】
サーバ２が秘密鍵及び公開鍵を生成すると、秘密鍵は記憶手段に格納せずに、そのままＰＣ１に対して送信する（Ｓ３０３）。秘密鍵を記憶手段に格納しないことで、サーバ２からデータが漏洩したときに、データ内の情報まで漏洩されることを防止することができる。メモリ内に残っている秘密鍵のデータも削除される（Ｓ３０４）。
【００５３】
一方、公開鍵に関しては、記憶手段にファイルとして格納する（Ｓ３０５）。これは、公開鍵は悪意ある第三者により不正に取得されても、暗号化はできるが復号化はできないため、データ漏洩時に情報まで漏洩される危険がないからである。
【００５４】
このようにして、公開鍵のみサーバ２に残し、秘密鍵はサーバから消去し、データの閲覧を行うＰＣ１にのみ送信するようにすることにより、サーバ２が攻撃されて、格納したデータが盗まれたとしても、秘密鍵がないためデータは暗号データのままであり、復号化して正しいデータを取得することはできなくなる。
【００５５】
その他の発明の実施の形態．
上述の例では、データの送信及び受信を同一のＰＣで行っていたが、これを受信用のＰＣと送信用のＰＣに分けて行うようにしてもよい。
【図面の簡単な説明】
【００５６】
【図１】本発明におけるコンピュータ及びサーバの全体構成を示す図である。
【図２】本発明におけるコンピュータ及びサーバの具体的構成を示す図である。
【図３】本発明における暗号化システムの機能構成を示すブロック図である。
【図４】本発明における暗号化の処理の流れを示すフローチャートである。
【図５】本発明における復号化の処理の流れを示すフローチャートである。
【図６】本発明における鍵生成の処理の流れを示すフローチャートである。
【符号の説明】
【００５７】
１    ＰＣ
２    サーバ
１０    入力部
１１    暗号化部
１２    送信部
１３    受信部
１４    複合化部
２０    受信部
２１    記憶部
２２    送信部
２３    鍵生成部
２０１    ＣＰＵ
２０４    メモリ
２０６    キーボード
２０７    マウス
２０８    ＶＧＡコントローラ
２１１    表示装置
２１３    ハードディスク装置
２１５    シリアルポート
２１８    通信アダプタ
２１９    フレキシブルディスク・コントローラ
２２０    フレキシブルディスク装置
２２５    ＩＤＥコントローラ
２２６    ＣＤ−ＲＯＭドライブ
【図１】
2006304215.tif 000003
【図２】
2006304215.tif 000004
【図３】
2006304215.tif 000005
【図４】
2006304215.tif 000006
【図５】
2006304215.tif 000007
【図６】
2006304215.tif 000008