(57)【要約】【課題】  情報漏洩が困難な暗号化及び復号化プログラムを提供すること。【解決手段】  本発明における暗号化プログラムは、入力データの暗号化をコンピュータに行わせる暗号化プログラムであって、入力データを構成する構成単位毎のデータのそれぞれに対して、キーデータを発生させるステップと、キーデータに基づき、構成単位データの暗号化を行い、暗号データを生成するステップと、暗号データを記憶手段に格納するステップと、キーデータを当該暗号化したデータと対応付けることなくキーデータベースに記録するステップとをコンピュータに実行させる暗号化プログラムである。このような構成により、データ全体の解読が困難になる暗号化が可能となる。【選択図】図３
2006071695.tif 000002
【特許請求の範囲】
【請求項１】
入力データの暗号化をコンピュータに行わせる暗号化プログラムであって、
前記入力データを構成する構成単位毎のデータのそれぞれに対して、キーデータを発生させるステップと、
前記キーデータに基づき、構成単位データの暗号化を行い、暗号データを生成するステップと、
前記暗号データを記憶手段に格納するステップと、
前記キーデータを当該暗号化したデータと対応付けることなくキーデータベースに記録するステップとをコンピュータに実行させる暗号化プログラム。
【請求項２】
入力データの暗号化をコンピュータに行わせる暗号化プログラムであって、
前記入力データを構成する構成単位毎のデータのそれぞれに対して、暗号化するデータと関連付けることなく、キーデータが格納されたキーデータベースより任意のキーデータを選択するステップと、
前記キーデータに基づき、構成単位データの暗号化を行い、暗号データを生成するステップと、
前記暗号データを記憶手段に格納するステップと、
前記キーデータを当該暗号化したデータと対応付けることなくキーデータベースに記録するステップとをコンピュータに実行させる暗号化プログラム。
【請求項３】
入力データの暗号化をコンピュータに行わせる暗号化プログラムであって、
前記入力データを構成する構成単位毎のデータのそれぞれに対して、個別に設定されたキーデータに基づき、暗号化を行い、暗号データを生成するステップと、
前記入力データを構成する構成単位毎のデータのそれぞれに基づいてキーデータチェック用データを生成するステップと、
前記暗号データ及び前記キーデータチェック用データを相互に関連付けて記憶手段に格納するステップと、
前記キーデータを当該暗号化したデータと対応付けることなくキーデータベースに記録するステップとをコンピュータに実行させる暗号化プログラム。
【請求項４】
前記キーデータチェック用データは、ハッシュデータであることを特徴とする請求項３記載の暗号化プログラム。
【請求項５】
前記入力データは、表計算ソフト用のデータであって、
前記構成単位は、前記表計算ソフトのセル単位であることを特徴とする請求項１乃至４いずれかに記載の暗号化プログラム。
【請求項６】
前記キーデータベースは、暗号化に利用されたキーデータと共に、実際には暗号化に利用されないダミーデータが格納されていることを特徴とする請求項１乃至５いずれかに記載の暗号化プログラム。
【請求項７】
前記キーデータベースは、ファイルデータとして前記記憶手段に格納され、
前記ファイルデータは、前記コンピュータから記録可能な外部記憶媒体の容量よりも大きいことを特徴とする請求項１乃至６いずれかに記載のプログラム。
【請求項８】
暗号化されたデータの復号化をコンピュータに行わせる復号化プログラムであって、
データを構成する構成単位毎のデータの選択に応じて、キーデータベースからキーデータを１つ取得するステップと、
前記キーデータに基づき、前記選択データの復号化を行うステップと、
前記復号化されたデータからキーデータチェック用データを生成するステップと、
前記生成したキーデータチェック用データと、復号化したデータと予め関連付けられたキーデータチェック用データを比較し、比較結果に基づき利用したキーデータが当該構成単位毎のデータに対応したキーデータであったかを判定するステップとをコンピュータに実行させる復号化プログラム。
【請求項９】
暗号化されたデータの復号化をコンピュータに行わせる復号化プログラムであって、
（ａ）データを構成する構成単位毎のデータの選択に応じて、キーデータベースからキーデータを１つ取得するステップと、
（ｂ）前記キーデータに基づき、前記選択データの復号化を行うステップと、
（ｃ）前記復号化されたデータからキーデータチェック用データを生成するステップと、
（ｄ）前記生成したキーデータチェック用データと、復号化したデータと予め関連付けられたキーデータチェック用データを比較し、比較結果に基づき利用したキーデータが当該構成単位毎のデータに対応したキーデータであったかを判定するステップと、
（ｅ）前記判定の結果、利用したキーデータが当該構成単位に対応したキーデータであると判定されるまで、前記（ａ）〜（ｄ）のステップを繰り返すステップと、
（ｆ）復号されたデータを表示するステップと、
をコンピュータに実行させる復号化プログラム。
【請求項１０】
前記キーデータチェック用データは、ハッシュデータであることを特徴とする請求項８又は９記載の復号化プログラム。
【請求項１１】
前記データは、表計算ソフト用のデータであって、
前記構成単位は、前記表計算ソフトのセル単位であることを特徴とする請求項８乃至１０いずれかに記載の復号化プログラム。
【請求項１２】
前記ステップ（ｆ）による表示方法は、
表示内容を複数に分割し、それぞれを高速で切り替えて表示することを特徴とする請求項８乃至１１いずれかに記載の復号化プログラム。
【請求項１３】
前記ステップ（ｆ）による表示方法は、
データ選択後、予め定められた時間経過後に表示することを特徴とする請求項８乃至１１いずれかに記載の復号化プログラム。
【請求項１４】
入力データの暗号化及び復号化を実行する暗号システムであって、
前記入力データを構成する構成単位毎のデータのそれぞれに対して、個別に設定されたキーデータを発生させる手段と、
前記キーデータに基づき、構成単位データの暗号化を行い、暗号データを生成する手段と、
前記暗号データ及び前記キーデータチェック用データを相互に関連付けて記憶手段に格納する手段と、
データを構成する構成単位毎のデータの選択に応じて、前記キーデータベースからキーデータを取得する手段と、
前記キーデータに基づき、前記選択データの復号化を行う手段と、
前記復号化されたデータからキーデータチェック用データを生成する手段と、
前記生成したキーデータチェック用データと、復号化したデータと予め関連付けられたキーデータチェック用データを比較し、比較結果に基づき利用したキーデータが当該構成単位毎のデータに対応したキーデータであったかを判定する手段とを備えた暗号システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は暗号化、復号化プログラム及び暗号システムに関するものであり、より詳細には、ファイルデータの情報漏洩を防ぐための暗号化、復号化プログラム及び暗号システムに関する。
【背景技術】
【０００２】
コンピュータ技術の進化した現在、情報のほとんどがコンピュータにより管理されていると言っても過言ではない。コンピュータの管理する情報量が増大を続けるにつれ、当然コンピュータが管理する機密情報も増大し続ける。情報量の増大に伴い、管理に負担がかかるようになり、また、情報の漏洩などの問題も大きくなってきた。
【０００３】
このような問題を受けて、コンピュータの管理する機密情報を悪意ある第三者に見られないようにするため色々な対策が考えられるようになってきた。中でも、機密情報が格納されたファイルをパスワードを用いて暗号化することにより、パスワードを知らない第三者がファイルを取得した場合でも、ファイル内の情報を見られないようにする方法や、ファイルを暗号化することにより、復号化方法を知らない第三者がファイルを取得した場合でも、中の情報が暗号化されているため中身を理解できないようにする方法が代表的である。
【０００４】
ファイルを暗号化する方法は、復号化の方法が見破られてしまうと、中の情報が見られてしまうため、見破られることのない暗号化方法について多くの研究がなされてきた（例えば、特許文献１など）。
【特許文献１】特開２００２−１１１６５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような方法でファイルの暗号化を行っても、いわゆるブルート・フォース・アタックと呼ばれる、ひたすら復号化のための鍵となる情報を発生させ入力させる方法により、時間をかければ鍵情報を知らない第三者にも復号ができてしまう。また、最近では、復号化方法を知っている内部の人間による機密情報の漏洩などの問題も起こるようになってきており、その対策も考えなくてはならなくなってきた。
【０００６】
本発明は、このような問題点を解決するためになされたものであり、情報漏洩が困難な暗号化、復号化プログラム及び暗号システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明における暗号化プログラムは、入力データの暗号化をコンピュータに行わせる暗号化プログラムであって、前記入力データを構成する構成単位毎のデータのそれぞれに対して、キーデータを発生させるステップと、前記キーデータに基づき、構成単位データの暗号化を行い、暗号データを生成するステップと、前記暗号データを記憶手段に格納するステップと、前記キーデータを当該暗号化したデータと対応付けることなくキーデータベースに記録するステップとをコンピュータに実行させる暗号化プログラムである。このような構成により、データ全体の解読が困難になる暗号化が可能となる。
【０００８】
本発明における暗号化プログラムは、入力データの暗号化をコンピュータに行わせる暗号化プログラムであって、前記入力データを構成する構成単位毎のデータのそれぞれに対して、暗号化するデータと関連付けることなく、キーデータが格納されたキーデータベースより任意のキーデータを選択するステップと、前記キーデータに基づき、構成単位データの暗号化を行い、暗号データを生成するステップと、前記暗号データを記憶手段に格納するステップと、前記キーデータを当該暗号化したデータと対応付けることなくキーデータベースに記録するステップとをコンピュータに実行させる暗号化プログラムである。このような構成により、データ全体の解読が困難になる暗号化が可能となる。
【０００９】
本発明における暗号化プログラムは、入力データの暗号化をコンピュータに行わせる暗号化プログラムであって、前記入力データを構成する構成単位毎のデータのそれぞれに対して、個別に設定されたキーデータに基づき、暗号化を行い、暗号データを生成するステップと、前記入力データを構成する構成単位毎のデータのそれぞれに基づいてキーデータチェック用データを生成するステップと、前記暗号データ及び前記キーデータチェック用データを相互に関連付けて記憶手段に格納するステップと、前記キーデータを当該暗号化したデータと対応付けることなくキーデータベースに記録するステップとをコンピュータに実行させる暗号化プログラムである。このような構成により、データ全体の解読が困難になる暗号化が可能となる。
【００１０】
前記キーデータチェック用データは、ハッシュデータであることを特徴としてもよい。
【００１１】
前記入力データは、表計算ソフト用のデータであって、前記構成単位は、前記表計算ソフトのセル単位であることを特徴としてもよい。こうすることにより、既存の表計算ソフトを暗号化を意識することなく利用することが可能となる。
【００１２】
前記キーデータベースは、暗号化に利用されたキーデータと共に、実際には暗号化に利用されないダミーデータが格納されていることを特徴としてもよい。こうすることにより、正しいキーデータを見つけることが困難になり、安全性が増す。
【００１３】
前記キーデータベースは、ファイルデータとして前記記憶手段に格納され、前記ファイルデータは、前記コンピュータから記録可能な外部記憶媒体の容量よりも大きいことを特徴としてもよい。こうすることにより、データを持ち出すことが困難になり、安全性が増す。
【００１４】
本発明における復号化プログラムは、暗号化されたデータの復号化をコンピュータに行わせる復号化プログラムであって、データを構成する構成単位毎のデータの選択に応じて、キーデータベースからキーデータを１つ取得するステップと、前記キーデータに基づき、前記選択データの復号化を行うステップと、前記復号化されたデータからキーデータチェック用データを生成するステップと、前記生成したキーデータチェック用データと、復号化したデータと予め関連付けられたキーデータチェック用データを比較し、比較結果に基づき利用したキーデータが当該構成単位毎のデータに対応したキーデータであったかを判定するステップとをコンピュータに実行させる復号化プログラムである。このような構成により、キーデータベースからキーデータを見つけられる危険を低減させることが可能となる。
【００１５】
本発明における復号化プログラムは、暗号化されたデータの復号化をコンピュータに行わせる復号化プログラムであって、（ａ）データを構成する構成単位毎のデータの選択に応じて、キーデータベースからキーデータを１つ取得するステップと、（ｂ）前記キーデータに基づき、前記選択データの復号化を行うステップと、（ｃ）前記復号化されたデータからキーデータチェック用データを生成するステップと、（ｄ）前記生成したキーデータチェック用データと、復号化したデータと予め関連付けられたキーデータチェック用データを比較し、比較結果に基づき利用したキーデータが当該構成単位毎のデータに対応したキーデータであったかを判定するステップと、（ｅ）前記判定の結果、利用したキーデータが当該構成単位に対応したキーデータであると判定されるまで、前記（ａ）〜（ｄ）のステップを繰り返すステップと、（ｆ）復号されたデータを表示するステップとをコンピュータに実行させる復号化プログラムである。このような構成により、キーデータベースからキーデータを見つけられる危険を低減させることが可能となる。
【００１６】
前記キーデータチェック用データは、ハッシュデータであることを特徴としてもよい。
【００１７】
前記データは、表計算ソフト用のデータであって、前記構成単位は、前記表計算ソフトのセル単位であることを特徴としてもよい。こうすることにより、既存の表計算ソフトを暗号化を意識することなく利用することが可能となる。
【００１８】
前記ステップ（ｆ）による表示方法は、表示内容を複数に分割し、それぞれを高速で切り替えて表示することを特徴としてもよい。こうすることにより、画面をキャプチャすることによる情報漏洩を防ぐことが可能となる。
【００１９】
前記ステップ（ｆ）による表示方法は、データ選択後、予め定められた時間経過後に表示することを特徴としてもよい。こうすることにより、全データを直接見ることによる情報漏洩を防ぐことが可能となる。
【００２０】
本発明における暗号化システムは、入力データの暗号化及び復号化を実行する暗号システムであって、前記入力データを構成する構成単位毎のデータのそれぞれに対して、個別に設定されたキーデータを発生させる手段と、前記キーデータに基づき、構成単位データの暗号化を行い、暗号データを生成する手段と、前記暗号データ及び前記キーデータチェック用データを相互に関連付けて記憶手段に格納する手段と、データを構成する構成単位毎のデータの選択に応じて、前記キーデータベースからキーデータを取得する手段と、前記キーデータに基づき、前記選択データの復号化を行う手段と、前記復号化されたデータからキーデータチェック用データを生成する手段と、前記生成したキーデータチェック用データと、復号化したデータと予め関連付けられたキーデータチェック用データを比較し、比較結果に基づき利用したキーデータが当該構成単位毎のデータに対応したキーデータであったかを判定する手段とを備えた暗号システムである。このような構成により、データ全体の解読が困難になる暗号化が可能となる。
【発明の効果】
【００２１】
本発明によれば、情報漏洩が困難な暗号化及び復号化プログラムを提供することが可能となる。
【発明を実施するための最良の形態】
【００２２】
発明の実施の形態１．
図１は、本発明の実施の形態１におけるコンピュータの構成例を示す図である。コンピュータ１とコンピュータ２はネットワークにより接続されている。ここでのネットワークはインターネット等の多方面から接続可能なものよりも、イントラネット等の狭い範囲内でしか利用できないものが望ましい。
【００２３】
コンピュータ１は、ネットワークを介してコンピュータ２とファイルの送受信が可能であり、市販されているＰＣ（Personal Computer）をそのまま利用することができる。また、コンピュータ１，２は２台とは限らず、３台以上あってもよい。コンピュータ２も、コンピュータ１と同様にネットワークを介してコンピュータ１とファイルの送受信が可能である。コンピュータ２も市販されているＰＣをそのまま利用することが可能である。
【００２４】
コンピュータ１上で動作するプログラム及びデータは、ＣＤ−ＲＯＭ等の外部記憶媒体を用いて若しくは外部サーバから通信網を介してダウンロードすることによりコンピュータ１にインストールされる。また、必要に応じてコンピュータ１及びコンピュータ２はデータの送受信を行う。本発明の実施の形態１における暗号化及び復号化プログラムは、コンピュータ１単体でも動作可能であるが、コンピュータ２と接続することにより、暗号化処理や復号化処理に利用するキーデータベースを共有することも可能である。
【００２５】
図２は、本発明の実施の形態１における、コンピュータ１のハードウェア構成の一例を示している。尚、サーバ２も同様の構成を備えることができる。コンピュータ１は、中央処理装置（ＣＰＵ）２０１とメモリ２０４とを含んでいる。ＣＰＵ２０１とメモリ２０４とは、バスを介して補助記憶装置としてのハードディスク装置２１３に接続される。フレキシブルディスク装置２２０、ハードディスク装置２１３、ＣＤ−ＲＯＭドライブ２２６等の記憶媒体駆動装置は、フレキシブルディスク・コントローラ２１９、ＩＤＥコントローラ２２５などの各種コントローラを介してバスに接続される。フレキシブルディスク装置２２０等の記憶媒体駆動装置には、フレキシブルディスク等の可搬型記憶媒体が挿入される。
【００２６】
記憶媒体にはオペレーティングシステムと共同してＣＰＵ２０１に命令を与え、本実施形態を実施するためのコンピュータ・プログラムを記憶することができる。本実施形態における各種手段は全てコンピュータ・プログラムの一つである。また、本実施形態におけるプログラムが生成するデータは、メモリ２０４に記憶され、必要に応じて、ハードディスク装置２１３にも記憶される。コンピュータ・プログラムは、メモリ２０４にロードされることによって実行される。コンピュータ・プログラムは圧縮し、又、複数に分割して記憶媒体に記憶することができる。ハードウェア構成は、典型的には、ユーザー・インターフェース・ハードウェアを備える。
【００２７】
ユーザ・インターフェース・ハードウェアとしては、例えば、入力をするためのポインティング・デバイス（マウス２０７、ジョイスティック等）やキーボード２０６、あるいは、視覚データをユーザーに提示するための液晶ディスプレイなどの表示装置２１１がある。画像データはＶＲＡＭ２０９に記憶され、ＶＧＡコントローラ２０８からＤＡＣ／ＬＣＤコントローラ（ＬＣＤＣ）２１０を介して表示装置２１１に送られる。本実施例におけるユーザーからの入力は、全てマウス２０７やキーボード２０６などを介して行われる。また、シリアルポート２１５を介してモデムを接続することが可能であり、シリアルポート２１５や通信アダプタ２１８を介してネットワークに接続し、サーバ２等の他のコンピュータシステムと通信を行うことができる。上記構成は必要に応じて省略することができる。
【００２８】
続いて、図３に示すフローチャートを用いて、本発明の実施の形態１におけるデータ暗号化の処理の流れについて説明する。ここでは、市販の表計算ソフトを利用し、表計算ソフトに組み込まれることにより暗号化プログラムが動作する。表計算ソフトはハードディスク装置２１３にインストールされてあり、メモリ２０４に読み込まれ動作する。ここでのＣＰＵ２０１の動作は、全て暗号化プログラムの命令により行われる。
【００２９】
まず、ユーザーは通常表計算ソフトを利用するときと同様に表計算ソフトにデータを入力する（Ｓ１０１）。一般に表計算ソフトでは、データをセルと呼ばれる単位毎に入力する。通常はどのセルに入力するかをマウス２０７により選択、決定し、セルに入力するデータはキーボード２０６により決定するが、入力手段は表計算ソフトの動作により決定され、キーボード２０６に限定されず、マウス２０７等でもよい。入力するデータは主に文字列と数値であり、入力されたデータは、ＣＰＵ２０１が文字データや数値データに変換し、セル毎にメモリ２０４に格納する。
【００３０】
セルのデータの入力が完了すると、ＣＰＵ２０１は、入力が行われたセルを暗号化するためのキーデータの生成を行う（Ｓ１０２）。キーデータの生成は、主に乱数を生成し、その乱数をキーデータとして利用することができる。乱数によるキーデータが他の方法により生成されたキーデータよりも予測が難しい。乱数生成のアルゴリズムは、より予測不可能な専用のアルゴリズムを利用することが望ましいが、既存のライブラリが備える乱数発生の関数を利用しても、乱数を利用しない場合に比べて予測不可能性を高めることができる。
【００３１】
キーデータの生成は、セル単位で行われ、生成したセル単位のキーデータは、ハードディスク装置２１３に記録されているキーデータベースに格納される。あるいは、キーデータを生成する代わりに、キーデータベースに格納されたキーデータを一つ取得するようにしてもよい。このように、キーデータをセル単位で異なるものにすることにより、一つのキーデータが盗まれただけで全てのデータを見られてしまうという問題を防ぐことが可能となる。
【００３２】
キーデータの生成が完了すると、ＣＰＵ２０１は、入力したセルのデータの暗号化を行い（Ｓ１０３）、暗号データを生成する。暗号化の方法は特に限定されないが、公開鍵暗号等のキーによる暗号化及び復号化が行われる方式の暗号化を行う。この時利用されるキーデータは、２進数のビット列であり、ビット長が長いほど考えられるキーデータの組み合わせが多くなり、ブルート・フォース・アタックが困難になるため、安全性が増す。本実施例では１２８ビットのビット長のキーデータを利用する。図５は暗号化前と暗号化後のデータの例である。図５（ａ）は、入力直後の暗号化前のデータで、（ｂ）が暗号化を行った後のデータである。ただし、図５に示す例では暗号化前のデータのセルと暗号化後のデータのセルの位置は一致しているが、必ずしも一致するとは限らない。セル位置が不一致であったとしても、暗号化後のデータには、セルの位置情報も含まれているので復号化時にセルの位置がずれることはない。
【００３３】
セルデータの暗号化と共に、ＣＰＵ２０１は、入力したセルのデータからハッシュデータの生成も行う（Ｓ１０４）。このハッシュデータは復号化が正しく行われているかを確認するときに必要となるデータである。暗号化されたセルのデータ、ハッシュデータはメモリ２０４に格納される。また、セルのデータ及びハッシュデータはユーザーの保存操作に応じてファイルとしてハードディスク装置２１３に記録される。
【００３４】
ここで、ハッシュデータについて簡単に説明する。ハッシュデータは、主にデータの認証に使われるデータであり、ハッシュデータを用いることにより、データの信頼性を高めることが可能となる。本発明の実施の形態では、暗号化に利用したキーデータが正しいものであるかを確認するためにハッシュデータを利用している。
【００３５】
ハッシュデータの生成には元データを特定の関数式にかけて８ビットのデータを生成する。ここで利用する式は特に限定されないが、複雑な式である方が式を見破られることがないため望ましい。例えば、ＳＨＡ−１というハッシュ関数を利用してハッシュデータを生成すると、元データを１ビット変換しただけで、生成する２０バイトのハッシュデータが全バイト異なるデータになる。
【００３６】
このようにして生成したハッシュデータを記憶しておくことにより、復号化したデータが正しい場合は、復号化したセルデータに基づき、生成したハッシュデータも同じ値になるはずなので、正しいデータであるかどうかを確認することが可能となる。
【００３７】
キーデータベースは、表計算ソフトに入力された各セルのキーを全て格納しているが、どのセルにどのキーが対応しているかという情報は格納されていない。これは、キーデータベースの解析を困難にすることにより安全性を高めるためである。どのセルにどのキーが対応しているかは、上述したハッシュデータを利用して確認を行う。具体的な方法については後述する。
【００３８】
また、キーデータベースにはダミーのキーデータを組み込むようにしてもよい。こうすることにより、復号化に必要なキーを見つけにくくすることができる。また、キーデータベースのファイルを大容量にすることにより、ファイルそのものをＣＤ−ＲやＤＶＤ−Ｒ等の外部記憶媒体にコピーして盗み出すということをやりにくくすることが可能となる。
【００３９】
全てのデータの生成が完了すると、ＣＰＵ２０１は、生成した暗号データ及びハッシュデータを互いに関連付けてメモリ２０４に格納する。また、ＣＰＵ２０１は、必要に応じてハードディスク装置２１３への記録も行う（Ｓ１０５）。データの記録が完了すると暗号化処理の完了となる。
【００４０】
続いて、図４に示すフローチャートを用いて、本発明の実施の形態１における復号化の処理の流れについて説明する。復号化のプログラムも暗号化のプログラムと同様に表計算ソフトに組み込まれ、利用者は暗号化及び復号化を意識することなく表計算ソフトを利用することが可能である。ここでのＣＰＵ２０１の動作も、全て復号化プログラムの命令により行われる。
【００４１】
まず、ユーザーは、表計算ソフトのデータから、内容を見たいセルを選択する（Ｓ２０１）。セル選択の操作は、主にマウス２０７により行われる。セルが選択されると、ＣＰＵ２０１は、キーデータベースからキーデータを１つ取得する（Ｓ２０２）。そして、取得したキーを利用して復号化を行う（Ｓ２０３）。
【００４２】
上述したようにキーデータベースには各セルのキーデータが格納されているが、どのキーデータがどのセルに対応しているかの情報は格納されていない。そのため、取得したキーデータを用いて復号化を行ってもそれが当該セルに対応したキーデータとは限らない。そこで、ＣＰＵ２０１は、復号化を行ったときに復号化データからハッシュデータを生成し（Ｓ２０４）、ハッシュデータが正しいかどうか確認する（Ｓ２０５）ことによりキーデータが当該セルに対応したキーデータであるかどうかを確認する。ハッシュデータが正しい場合は、そこで復号化は完了となる。
【００４３】
ハッシュデータが正しいものでなかった場合は、取得したキーデータが当該セルに対応したものでなかったことになる。この場合は、ＣＰＵ２０１は、再度キーデータベースから別のキーデータを取得し、復号化を行う。この作業を正しいキーデータを取得できるまで繰り返し行う。正しいキーデータは暗号化時にキーデータベース内に記録しているので繰り返し行うことにより、必ず見つけることが可能である。キーデータの取得はキーデータベースに格納されている全てのキーデータについて正しいキーデータが見つかるまで行われるが、キーデータベースにダミーのキーデータが含まれている場合、ダミーのキーデータの位置を予め定めておくことにより、ダミーのキーデータの取得は行わないようにすることも可能である。
【００４４】
復号化の行われたセルのデータについては、通常の表計算ソフト利用時と同じようにユーザーはその内容を見ることが可能である。この時、選択したセルのみを見ることができるようにし、それ以外のセルは図６に示すように、「＊＊＊」などの表示をして内容を見ることができないようにすることにより、直接画面を見ることによる情報の漏洩も防ぐことが可能である。あるいは、入力時の視認性を重視するなら通常通り、全てのセルを見ることができるようにしてもよい。
【００４５】
また、セルの復号化直後に表示するのではなく、適当な時間遅延させて表示することも可能である。こうすることにより、内部の利用者が全データを盗み見ようとしたときにその作業を遅らせることが可能になり、内部からのデータ漏洩を抑制することが可能である。この場合の遅延時間は、通常の作業に支障のない範囲の１〜２秒程度が望ましい。
【００４６】
あるいは、セルの内容が数字や文字などの場合、図７（ａ）と図７（ｂ）のように１文字おきの文字を高速に交互に表示するようにしてもよい。この場合、ユーザーが画面を視認する場合は残像現象により重なって見えるため、その内容を理解できるが、画面をキャプチャしたときには１文字おきの文字しか表示されない。このようにすることにより、画面キャプチャによる情報漏洩を防ぐことが可能となる。
【００４７】
その他の発明の実施の形態．
上述の例では、表計算ソフトのデータを暗号化及び復号化の対象としたが、これを文書作成ソフトのデータとして、セル毎ではなく、１行毎にキーデータを変えて暗号化を行うようにしてもよい。また、画像作成ソフトのデータをブロック毎に暗号化する等としてもよく、データを基準単位毎に分割することができるものであれば様々なデータに対応させることが可能である。
また、上述の例では、ハッシュデータの暗号化及び復号化は行わず、セルデータのみの暗号化及び復号化を行ったが、ハッシュデータの暗号化及び復号化を行うようにしてもよい。
【図面の簡単な説明】
【００４８】
【図１】本発明におけるコンピュータ及びサーバの全体構成を示す図である。
【図２】本発明におけるコンピュータ及びサーバの具体的構成を示す図である。
【図３】本発明における暗号化の処理の流れを示すフローチャートである。
【図４】本発明における復号化の処理の流れを示すフローチャートである。
【図５】本発明における画面表示例を示す図である。
【図６】本発明における画面表示例を示す図である。
【図７】本発明における画面表示例を示す図である。
【符号の説明】
【００４９】
１    コンピュータ
２    コンピュータ
２０１    ＣＰＵ
２０４    メモリ
２０５    キーボードマウスコントローラ
２０６    キーボード
２０７    マウス
２０８    ＶＧＡ
２０９    ＶＲＡＭ
２１０    ＤＡＣ／ＬＣＤＣ
２１１    表示装置
２１３    ハードディスク装置
２１４    ＲＯＭ
２１５    シリアルポート
２１６    パラレルポート
２１８    通信アダプタ
２１９    フレキシビルディスク・コントローラ
２２０    フレキシビルディスク装置
２２５    コントローラ
２２６    ドライブ
【図１】
2006071695.tif 000003
【図２】
2006071695.tif 000004
【図３】
2006071695.tif 000005
【図４】
2006071695.tif 000006
【図５】
2006071695.tif 000007
【図６】
2006071695.tif 000008
【図７】
2006071695.tif 000009