説明

データ暗号化システム及び鍵生成サーバ

【課題】
サーバを攻撃されてもデータを漏洩される危険の少ないデータ暗号化システムを提供すること。
【解決手段】
本発明における暗号化システムは、クライアント端末とサーバ端末とを備えた暗号化システムであって、クライアント端末は、データを入力する入力手段と、入力手段により入力されたデータを暗号化する暗号化手段と、サーバ端末に対して前記暗号化手段により暗号化された暗号データを送信する送信手段を有し、サーバ端末は、クライアント端末から暗号データを受信する受信手段と、受信手段により受信した暗号データを暗号化された状態で格納する記憶手段と、クライアント端末に対して記憶手段に格納された暗号データを送信する送信手段を有する暗号化システムである。このような構成により、サーバからデータが漏洩しても暗号化されているため、内容を知られる危険を回避することが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ暗号化システム及び鍵生成サーバに関するものであり、より詳細には、サーバ・クライアントモデルによるデータ暗号化システム及び鍵生成サーバに関する。
【背景技術】
【0002】
インターネット等のネットワーク網を介してサーバとクライアント間でデータの送受信を行う場合、データの漏洩や改竄防止の措置が必要となる。そのため、サーバへのアクセスをサーバ管理者とデータ作成者、利用者のみに限定してアクセス制限をかけるという方法が取られることも多い。
【0003】
しかし、1台のサーバで複数の会社のデータを共有するホスティング共有サーバの場合、会社毎にアクセス制限をかけていても、同一のサーバ内に複数の会社のデータが存在するため、不正アクセスを行いやすい。特にこのような場合は、アクセス制限を行うソフトウェアにセキュリティホールが存在する可能性が高く、セキュリティの面では問題点が多い。
【0004】
その対策として、データを暗号化して送受信することにより、送受信時のデータを盗聴されたとしても、解読できないようにする方法が提案され、利用されるようになった(例えば、特許文献1など)。
【0005】
しかしながら、送受信時にデータの暗号化を行っても、サーバにデータを保存するときのデータは暗号化されてない場合が多く、このような場合、データ送受信時の盗聴でなくサーバを攻撃された場合のデータ漏洩の危険性はかなり高いものであった。
【0006】
更に、サーバのセキュリティ対応はサーバ管理者に依存する場合が多く、サーバ管理者はサーバ上のデータを自由に閲覧したりデータを持ち出したりすることが可能であった。サーバ管理を別会社に委託している場合はこのようなことが問題になる場合も多い。
【特許文献1】特開2004−254027号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
このように、従来のデータ暗号化システムは、サーバへの攻撃に対して弱いものであった。また、サーバ管理者からデータを守ることができないという問題点があった。
【0008】
本発明は、これらの問題点を解決するためになされたものであり、サーバを攻撃されてもデータを漏洩される危険の少ないデータ暗号化システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明における暗号化システムは、クライアント端末とサーバ端末とを備えた暗号化システムであって、前記クライアント端末は、データを入力する入力手段と、前記入力手段により入力されたデータを暗号化する暗号化手段と、前記サーバ端末に対して前記暗号化手段により暗号化された暗号データを送信する送信手段を有し、前記サーバ端末は、前記クライアント端末から暗号データを受信する受信手段と、前記受信手段により受信した暗号データを暗号化された状態で格納する記憶手段と、前記クライアント端末に対して前記記憶手段に格納された前記暗号データを送信する送信手段を有する暗号化システムである。このような構成により、サーバからデータが漏洩しても暗号化されているため、内容を知られる危険を回避することが可能となる。
【0010】
前記サーバ端末は、更に、前記暗号化手段により暗号化を行うための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵を生成する秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備え、前記クライアント端末の暗号化手段は、前記サーバ端末より送信された公開鍵を用いて暗号化することを特徴としてもよい。このようにすることにより、サーバ内に秘密鍵が残らないため、内容を知られる危険を回避することが可能となる。
【0011】
前記クライアント端末は、複数の端末より構成されることを特徴としてもよい。
【0012】
前記送信手段及び受信手段は、SSLを用いて暗号化したデータを送受信することを特徴としてもよい。
【0013】
本発明における鍵生成サーバは、データを暗号化する公開鍵と前記公開鍵により暗号化されたデータを復号化するための秘密鍵を生成し、接続されたクライアント端末に生成した鍵を送信する鍵生成サーバであって、前記クライアント端末により暗号化するための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備えることを特徴とする鍵生成サーバである。このようにすることにより、サーバ内に秘密鍵が残らないため、内容を知られる危険を回避することが可能となる。
【0014】
前記鍵送信手段は、SSLを用いて暗号化したデータを送信することを特徴としてもよい。
【発明の効果】
【0015】
本発明によれば、サーバを攻撃されてもデータを漏洩される危険の少ないデータ暗号化システムを提供することが可能となる。
【発明を実施するための最良の形態】
【0016】
図1は、本発明の実施の形態におけるデータ暗号化システムの全体構成を示す模式図である。本発明におけるデータ暗号化システムは、PC(Personal Computer)1とサーバ2より構成される。PC1とサーバ2はネットワークにより接続されている。ここでのネットワークはインターネット等の多方面から接続可能なものでも、イントラネット等の狭い範囲内でしか利用できないものでもよい。
【0017】
PC1は、データの入力及び閲覧を行う端末であり、入力したデータをサーバ2に送信する。またデータ閲覧時は、サーバ2からデータを受信する。PC1は、ネットワークを介してサーバ2とファイルの送受信が可能であり、市販されているPCをそのまま利用することができる。また、PC1は1台とは限らず、2台以上あってもよい。
【0018】
サーバ2は、PC1からデータを受信し格納する。格納したデータは、必要に応じてPC1に送信される。サーバ2も、PC1と同様にネットワークを介してPC1とファイルの送受信が可能である。サーバ2も市販されているPCをそのまま利用することが可能である。
【0019】
図2は、本発明における、PC1のハードウェア構成の一例を示している。尚、サーバ2も同様の構成を備えることができる。PC1は、中央処理装置(CPU)201とメモリ204とを含んでいる。CPU201とメモリ204とは、バスを介して補助記憶装置としてのハードディスク装置213に接続される。フレキシブルディスク装置220、ハードディスク装置213、CD−ROMドライブ226等の記憶媒体駆動装置は、フレキシブルディスク・コントローラ219、IDEコントローラ225などの各種コントローラを介してバスに接続される。フレキシブルディスク装置220等の記憶媒体駆動装置には、フレキシブルディスク等の可搬型記憶媒体が挿入される。
【0020】
記憶媒体にはオペレーティングシステムと協同してCPU201に命令を与え、本実施形態を実施するためのコンピュータ・プログラムを記憶することができる。本実施形態における各種手段は全てコンピュータ・プログラムの一つである。また、本実施形態におけるプログラムが生成するデータは、メモリ204に記憶され、必要に応じて、ハードディスク装置213にも記憶される。コンピュータ・プログラムは、メモリ204にロードされることによって実行される。コンピュータ・プログラムは圧縮し、又、複数に分割して記憶媒体に記憶することができる。ハードウェア構成は、典型的には、ユーザー・インターフェース・ハードウェアを備える。
【0021】
ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティング・デバイス(マウス207、ジョイスティック等)やキーボード206、あるいは、視覚データをユーザーに提示するための液晶ディスプレイなどの表示装置211がある。画像データはVRAM209に記憶され、VGAコントローラ208からDAC/LCDコントローラ(LCDC)210を介して表示装置211に送られる。本実施例におけるユーザーからの入力は、全てマウス207やキーボード206などを介して行われる。また、シリアルポート215を介してモデムを接続することが可能であり、シリアルポート215や通信アダプタ218を介してネットワークに接続し、サーバ2等の他のコンピュータシステムと通信を行うことができる。上記構成は必要に応じて省略することができる。
【0022】
図3は、本発明における暗号化システムの機能構成を示すブロック図である。本発明における暗号化システムは、PC1とサーバ2より構成される。
【0023】
PC1は、入力したデータを暗号化しサーバ2に送信するクライアント端末であり、入力部10、暗号化部11、送信部12、受信部13、復号化部14を備える。
【0024】
入力部10は、データを入力する入力手段である。入力はキーボード206、マウス207などによりユーザーが手動で行ってもよいし、CD−ROMドライブ226からCD−ROMにより外部で記録されたデータを入力するようにしてもよい。入力したデータはハードディスク装置213に格納される。
【0025】
暗号化部11は、入力部10により入力されたデータの暗号化を行う暗号化手段である。暗号化はハードディスク装置213に格納された入力データをメモリ204に読み出し、CPU201により行う。暗号化は公開鍵を利用して行う。公開鍵については後に説明するのでここでは説明を省略する。
【0026】
送信部12は、暗号化部10により暗号化したデータをサーバ2に対して送信する送信手段である。送信はシリアルポート215に接続されたモデムや通信アダプタ218により行われる。
【0027】
受信部13は、サーバ2から受信した暗号化データを受信する受信手段である。受信は、シリアルポート215に接続されたモデムや通信アダプタ218により行われる。
【0028】
復号化部14は、受信部13により受信したデータの復号化を行う復号化手段である。復号化は受信したデータをメモリ204に読み出し、CPU201により行う。復号化は秘密鍵を利用して行う。秘密鍵については後に説明するのでここでは説明を省略する。
【0029】
サーバ2は、PC1から受信したデータを格納し、PC1に対して格納したデータの送信を行うサーバ端末である。サーバ2は、受信部20、記憶部21、送信部22、鍵生成部23を備える。
【0030】
受信部20は、PC1から受信した暗号化データを受信する受信手段である。受信は、シリアルポート215に接続されたモデムや通信アダプタ218により行われる。
【0031】
記憶部21は、受信部20により受信したデータの格納を行う記憶手段である。データの格納はハードディスク装置213により行われる。
【0032】
送信部22は、記憶部21に格納したデータをPC1に対して送信する送信手段である。送信は、シリアルポート215に接続されたモデムや通信アダプタ218により行われる。
【0033】
鍵生成部23は、暗号化に利用する鍵データの生成を行う。鍵データの生成は、CPU201により行う。
【0034】
続いて、図4に示すフローチャートを用いて、本発明におけるデータ暗号化の処理の流れについて説明する。暗号化プログラムは予めハードディスク装置213にインストールされてあり、メモリ204に読み込まれ動作する。ここでのCPU201の動作は、全て暗号化プログラムの命令により行われる。暗号化の手段は、公開鍵と秘密鍵を用いた方式であれば特に限定されない。ここでの暗号化はRSA方式を用いることとする。
【0035】
まず、ユーザーはサーバに格納したいデータをPC1に対して入力する(S101)。入力は入力部10により行われる。入力するデータは入力のためのアプリケーションに対応するデータであり数値データでも文字データでも画像データでもよい。入力したデータはファイルとしてPC1内のメモリ204またはハードディスク装置213に格納される。
【0036】
データの入力が完了すると、暗号化部11は、入力されたデータの暗号化を行う(S102)。暗号化は、すでに取得している公開鍵を利用して行う。ここで取得した公開鍵により暗号化されたデータは、秘密鍵を利用しないと復元ができない。
【0037】
暗号化の方法は特に限定されないが、公開鍵暗号等のキーによる暗号化及び復号化が行われる方式の暗号化を行う。この時利用されるキーデータは、2進数のビット列であり、ビット長が長いほど考えられるキーデータの組み合わせが多くなり、ブルート・フォース・アタックが困難になるため、安全性が増す。本実施例では512ビットのビット長のキーデータを利用する。
【0038】
データの暗号化と共に、暗号化部11は、入力したセルのデータからハッシュデータの生成も行うようにしてもよい(S103)。このハッシュデータは復号化が正しく行われているかを確認するときに必要となるデータである。暗号化されたセルのデータ、ハッシュデータはメモリ204に格納される。また、セルのデータ及びハッシュデータはユーザーの保存操作に応じてファイルとしてハードディスク装置213に記録される。
【0039】
ここで、ハッシュデータについて簡単に説明する。ハッシュデータは、主にデータの認証に使われるデータであり、ハッシュデータを用いることにより、データの信頼性を高めることが可能となる。本発明の実施の形態では、暗号化に利用したキーデータが正しいものであるかを確認するためにハッシュデータを利用している。
【0040】
ハッシュデータの生成には元データを特定の関数式にかけて8ビットのデータを生成する。ここで利用する式は特に限定されないが、複雑な式である方が式を見破られることがないため望ましい。例えば、SHA−1というハッシュ関数を利用してハッシュデータを生成すると、元データを1ビット変換しただけで、生成する20バイトのハッシュデータが全バイト異なるデータになる。
【0041】
このようにして生成したハッシュデータを記憶しておくことにより、復号化したデータが正しい場合は、復号化したデータに基づき、生成したハッシュデータも同じ値になるはずなので、正しいデータであるかどうかを確認することが可能となる。
【0042】
暗号化が完了すると、送信部12は、サーバ2に生成した暗号データを送信する(S104)。このときの送信は、SSL(Secure Sockets Layer)の技術を利用すると、より安全性を高めることができる。
【0043】
サーバ2は、受信部20によりPC1から送信された暗号データを受信すると、復号は行わずに暗号データのまま、サーバ2の備える記憶部21に格納する。サーバ2は、秘密鍵を持っていないため、サーバ管理者に悪意があったとしても格納されたデータを復元することは不可能である。また、このようにすることにより、サーバ2が攻撃されて、格納したデータが盗まれたとしても、秘密鍵がないためデータは暗号データのままであり、復号化して正しいデータを取得することはできなくなる。
【0044】
続いて、図5に示すフローチャートを用いて、本発明における復号化の処理の流れについて説明する。復号化のプログラムも暗号化のプログラムと同様に予めハードディスク装置213にインストールされてあり、メモリ204に読み込まれ動作する。ここでのCPU201の動作も、全て復号化プログラムの命令により行われる。
【0045】
まず、PC1の有するCPU201が、サーバ2に対してデータ送信要求のリクエストを送信する(S201)。このときの送信も、SSLの技術を利用することにより安全性を高めることができる。
【0046】
サーバ2は、PC1からデータ送信要求のリクエストを受信すると、記憶部21に格納した暗号データを送信部22により、そのままPC1に対して送信する(S202)。PC1の受信部14は、送信部22から暗号データを受信すると、受信した暗号化データを復号化部15に対して出力する。復号化部15は、秘密鍵を用いて暗号データの復号化を行う(S203)。秘密鍵はPC1にのみ備えられているため、PC1以外の端末から暗号データを不正な方法で取得したとしても、秘密鍵を取得しない限り復号化は不可能である。
【0047】
このとき、復号化部15は、復号化を行ったときに復号化データからハッシュデータを生成し(S204)、ハッシュデータが正しいかどうか確認する(S205)ことによりキーデータが正しいキーデータであるかどうかを確認するようにしてもよい。ハッシュデータが正しい場合は、そこで復号化は完了となる。
【0048】
続いて、鍵生成部23による鍵生成の方法について説明する。鍵生成ツールは、サーバ2の中に格納されている。データを利用するユーザーは、事前にPC1からサーバ2にアクセスし、秘密鍵を取得する。この秘密鍵に対応する公開鍵はサーバ2内に格納され、公開鍵はサーバ2に接続されたどの端末からも取得可能である。ただし、秘密鍵についてはサーバ2には格納されず、PC1以外の端末から取得することは不可能である。
【0049】
図5に示すフローチャートを用いて、本発明における鍵生成時の処理の流れについて説明する。まず、PC1からネットワークを介してサーバ2の備える鍵生成ツールにアクセスする(S301)。
【0050】
サーバ2は、PC1からのアクセスにより鍵生成ツールを起動する。鍵生成ツールは、公開鍵と秘密鍵を生成する(S302)。ここで生成される秘密鍵は、ここで生成される公開鍵により暗号化された暗号データを復号化するためのキーデータである。生成した公開鍵及び秘密鍵は一時的にPC1の備えるメモリに格納される。
【0051】
キーデータの生成は、主に乱数を生成し、その乱数をキーデータとして利用することができる。乱数によるキーデータが他の方法により生成されたキーデータよりも予測が難しい。乱数生成のアルゴリズムは、より予測不可能な専用のアルゴリズムを利用することが望ましいが、既存のライブラリが備える乱数発生の関数を利用しても、乱数を利用しない場合に比べて予測不可能性を高めることができる。
【0052】
サーバ2が秘密鍵及び公開鍵を生成すると、秘密鍵は記憶手段に格納せずに、そのままPC1に対して送信する(S303)。秘密鍵を記憶手段に格納しないことで、サーバ2からデータが漏洩したときに、データ内の情報まで漏洩されることを防止することができる。メモリ内に残っている秘密鍵のデータも削除される(S304)。
【0053】
一方、公開鍵に関しては、記憶手段にファイルとして格納する(S305)。これは、公開鍵は悪意ある第三者により不正に取得されても、暗号化はできるが復号化はできないため、データ漏洩時に情報まで漏洩される危険がないからである。
【0054】
このようにして、公開鍵のみサーバ2に残し、秘密鍵はサーバから消去し、データの閲覧を行うPC1にのみ送信するようにすることにより、サーバ2が攻撃されて、格納したデータが盗まれたとしても、秘密鍵がないためデータは暗号データのままであり、復号化して正しいデータを取得することはできなくなる。
【0055】
その他の発明の実施の形態.
上述の例では、データの送信及び受信を同一のPCで行っていたが、これを受信用のPCと送信用のPCに分けて行うようにしてもよい。
【図面の簡単な説明】
【0056】
【図1】本発明におけるコンピュータ及びサーバの全体構成を示す図である。
【図2】本発明におけるコンピュータ及びサーバの具体的構成を示す図である。
【図3】本発明における暗号化システムの機能構成を示すブロック図である。
【図4】本発明における暗号化の処理の流れを示すフローチャートである。
【図5】本発明における復号化の処理の流れを示すフローチャートである。
【図6】本発明における鍵生成の処理の流れを示すフローチャートである。
【符号の説明】
【0057】
1 PC
2 サーバ
10 入力部
11 暗号化部
12 送信部
13 受信部
14 複合化部
20 受信部
21 記憶部
22 送信部
23 鍵生成部
201 CPU
204 メモリ
206 キーボード
207 マウス
208 VGAコントローラ
211 表示装置
213 ハードディスク装置
215 シリアルポート
218 通信アダプタ
219 フレキシブルディスク・コントローラ
220 フレキシブルディスク装置
225 IDEコントローラ
226 CD−ROMドライブ

【特許請求の範囲】
【請求項1】
クライアント端末とサーバ端末とを備えた暗号化システムであって、
前記クライアント端末は、データを入力する入力手段と、前記入力手段により入力されたデータを暗号化する暗号化手段と、前記サーバ端末に対して前記暗号化手段により暗号化された暗号データを送信する送信手段を有し、
前記サーバ端末は、前記クライアント端末から暗号データを受信する受信手段と、前記受信手段により受信した暗号データを暗号化された状態で格納する記憶手段と、前記クライアント端末に対して前記記憶手段に格納された前記暗号データを送信する送信手段を有する暗号化システム。
【請求項2】
前記サーバ端末は、更に、
前記暗号化手段により暗号化を行うための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵を生成する秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備え、
前記クライアント端末の暗号化手段は、前記サーバ端末より送信された公開鍵を用いて暗号化することを特徴とする請求項1記載の暗号化システム。
【請求項3】
前記クライアント端末は、複数の端末より構成されることを特徴とする請求項1または2記載の暗号化システム。
【請求項4】
前記送信手段及び受信手段は、SSL(Secure Sockets Layer)を用いて暗号化したデータを送受信することを特徴とする請求項1、2または3記載の暗号化システム。
【請求項5】
データを暗号化する公開鍵と前記公開鍵により暗号化されたデータを復号化するための秘密鍵を生成し、接続されたクライアント端末に生成した鍵を送信する鍵生成サーバであって、
前記クライアント端末により暗号化するための公開鍵を生成する公開鍵生成手段と、前記公開鍵により暗号化された暗号データを復号化するための秘密鍵生成手段と、前記公開鍵生成手段の生成した公開鍵及び前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対して送信する鍵送信手段と、前記秘密鍵生成手段の生成した秘密鍵を前記クライアント端末に対する送信が完了したことに応じて消去する消去手段を備えることを特徴とする鍵生成サーバ。
【請求項6】
前記鍵送信手段は、SSLを用いて暗号化したデータを送信することを特徴とする請求項5記載の鍵生成サーバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2006−304215(P2006−304215A)
【公開日】平成18年11月2日(2006.11.2)
【国際特許分類】
【出願番号】特願2005−126835(P2005−126835)
【出願日】平成17年4月25日(2005.4.25)
【出願人】(505327848)シーエヌエー株式会社 (3)
【Fターム(参考)】