説明

ファイルの暗号化・複合化プログラム、プログラム格納媒体

【課題】情報の秘密管理と漏洩事実の早期発見とを両立させる。
【解決手段】コンピュータに、セッション鍵a1を生成するステップと、鍵a1によりファイルf1を暗号化したファイルf2を生成するステップと、公開鍵b1により鍵a1を暗号化した鍵a2を生成するステップと、公開鍵c1により鍵a1を暗号化した鍵a3を生成するステップと、ファイルf2と鍵a2と鍵a3を含む結合ファイルf3を作成するステップとを含んだプロセスと、ファイルf3をファイルf2と鍵a2と鍵a3に分解するステップと、ファイルf2を鍵a1によりファイルf1に復号する復号ステップと、鍵b1に対応する秘密鍵b2により鍵a2を鍵a1を復号した上で復号ステップに移行させるステップと、鍵c1に対応する秘密鍵c2により鍵a3を鍵a1に復号した上で復号ステップに移行させるステップとを含むプロセスとを実行させるファイル暗号化・復号化プログラムとした。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、コンピュータを用いたファイルの暗号化と複合化の方法に関する。また、コンピュータにインストールされて、ファイルの暗号化・復号化を実行するコンピュータプログラムと、そのプログラムの格納媒体にも関する。
【背景技術】
【0002】
ファイルの暗号化は、機密文書などの閲覧者を制限したり、ネットワークを介して送信する際に情報が漏洩するのを防止したりするために必要である。暗号化の方式としては、暗号化と復号化とで同じ鍵(共通鍵)を使う共通鍵暗号方式と、公開鍵と秘密鍵の異なる1組の鍵を使う公開鍵暗号方式とがある。また、暗号化・複合化のアルゴリズムも各種ある。なお、暗号化・復号化については、以下の非特許文献に詳しく記載されている。
【非特許文献1】西尾 章治郎、外4名著,「岩波講座 マルチメディア情報学7 情報の共有と統合」,株式会社岩波書店,第1版,1999年12月6日,p143〜p158
【発明の開示】
【発明が解決しようとする課題】
【0003】
近年、企業内の秘密情報が社外に漏洩する事件が多発し、企業経営に甚大な被害を与えるケースが多い。そのため、秘密情報の漏洩対策として、ファイルを暗号化して管理することが必要となる。また、ファイルの暗号化・復号化のためのソフトウエアを、企業内で社員が使用するパーソナルコンピュータに統一してインストールしておく必要もある。
【0004】
しかし、ファイルを暗号化することは、当然、その暗号化ファイルを復号するための鍵を持つ人間にしかファイルの内容を確認できない、ということにもなる。暗号化のためのソフトウエアを企業内で統一したとしても、秘密情報へのアクセスを許可した人間に該当の情報を暗号化されて社外に持ち出されると、その暗号化されたファイルの内容を他者が簡単に確認・チェックできず、秘密情報の漏洩事実の発見が遅れ、被害をさらに拡大させてしまう結果にもなり得る。
【0005】
このような問題を解決するために、例えば、企業内の暗号化ソフトウエアを統一した上で暗号化と復号化のための鍵を全て登録制にし、その鍵を所定の権限を有する人間に管理させる、というシステムを作るという方法もある。しかし、この方法は、管理する鍵の数が大量になり、実際的ではないし、また、秘密裏に生成された鍵については管理することが事実上不可能となる。
【0006】
本発明者らは、上記課題に鑑み、企業内で統一して使用する暗号化・復号化プログラムが備えるべき機能について考察し、本発明を創作した。本発明の目的は、暗号化のための鍵を自在に生成できるとともに、その鍵で暗号化されたファイルを、例えば、そのファイルの作成者の上位の監督者が管理する「マスターキー」で復号できるようにするとともに、そのマスターキー自体も厳重に管理できるようにしたファイル暗号化・復号化プログラムを提供することにある。
【課題を解決するための手段】
【0007】
本発明は、コンピュータにインストールされて、ファイルを暗号化するプロセスと、暗号化されたファイルを復号化するプロセスとを当該コンピュータに実行させるファイル暗号化・復号化プログラムであって、
前記ファイル暗号化プロセスは、
共通鍵暗号方式の鍵(セッション鍵)a1を生成するセッション鍵生成ステップと、
平文のファイルf1をセッション鍵により暗号化して暗号ファイルf2を生成するファイル暗号化ステップと、
セッション鍵a1を公開鍵暗号方式の公開鍵b1により暗号化して暗号化セッション鍵a2を生成する第1暗号化ステップと、
セッション鍵a1を公開鍵暗号方式における公開鍵c1により暗号化して暗号化セッション鍵a3を生成する第2暗号化ステップと、
暗号化ファイルf2と、暗号化セッション鍵a2およびa3とを内容として含む1つの結合ファイルに作成する結合ファイル作成ステップとを含み、
前記ファイルの復号化プロセスは、
前記結合ファイルを暗号化ファイルf2と、暗号化セッション鍵a2およびa3とに分解するファイル分解ステップと、
前記コンピュータがセッション鍵a1を記憶している場合、暗号化ファイルf2を当該鍵a1により復号して平文ファイルf1を取得する平文ファイル復号ステップと、
前記コンピュータに公開鍵b1に対応する秘密鍵b2がある場合、暗号化セッション鍵a2を当該鍵b2によりセッション鍵a1を復号した上で、前記平文ファイル復号ステップを実行する第1復号ステップと、
前記コンピュータに公開鍵c1に対応する秘密鍵c2がある場合、暗号化セッション鍵a3を当該鍵c2によりセッション鍵a1を復号した上で、前記平文ファイル復号ステップを実行させる第2復号ステップとを含んでいる。
【0008】
また、前記ファイル暗号化プロセスは、
パスワードp1をユーザ入力により受け付けるパスワード入力ステップと、
共通鍵暗号方式の鍵(セッション鍵)a1を生成するセッション鍵生成ステップと、
平文のファイルf1をセッション鍵により暗号化して暗号ファイルf2を生成するファイル暗号化ステップと、
セッション鍵a1を前記パスワードp1に関連づけするとともに所定のアルゴリズムに基づいて変形した変形セッション鍵a4を生成するセッション鍵変形ステップと、
パスワードp1を公開鍵暗号方式の公開鍵b1により暗号化して暗号化パスワードp2を生成する第1暗号化ステップと、
パスワードp1を公開鍵暗号方式における公開鍵c1により暗号化して暗号化パスワードp3を生成する第2暗号化ステップと、
暗号化ファイルf2と、変形セッション鍵p4と、暗号化パスワードp2およびp3とを内容として含んだ1つの結合ファイルを作成する結合ファイル作成ステップとを含み、
前記ファイルの復号化プロセスは、
前記結合ファイルを前記ファイルf2と、変形セッション鍵a4と、暗号化パスワードp2およびp3とに分解するファイル分解ステップと、
ユーザ入力によりパスワードを受け付けるパスワード入力ステップと、
適宜に入力されたパスワードがパスワードp1に一致すれば、変形セッション鍵a4を前記アルゴリズムに基づいてセッション鍵a1に復元するとともに、当該セッション鍵a1により暗号化ファイルf2を復号して平文ファイルf1を取得する平文ファイル復号ステップと、
コンピュータに公開鍵b1に対応する秘密鍵b2がある場合、暗号化パスワードp2を当該鍵b2によりパスワードp1に復号し、当該パスワードp1を前記平文ファイル復号ステップへの入力パスワードとする第1復号ステップと、
コンピュータに公開鍵c1に対応する秘密鍵c2がある場合、暗号化パスワードp3を当該鍵c2によりパスワードp1に復号し、当該パスワードp1を前記平文ファイル復号ステップへの入力パスワードとする第2復号ステップとを含んだファイル暗号化・復号化プログラムとすることもできる。
【0009】
あるいは、前記ファイル暗号化プロセスは、
ユーザ入力によりパスワードp1を受け付けるパスワード入力ステップと、
パスワードp1を所定のアルゴリズムに基づいて共通鍵暗号方式のセッション鍵p4に変形する変形セッション鍵生成ステップと、
共通鍵暗号方式の鍵(セッション鍵)a1を生成するセッション鍵生成ステップと、
平文のファイルf1をセッション鍵a1により暗号化して暗号ファイルf2を生成するファイル暗号化ステップと、
セッション鍵a1に基づいてセッション鍵の検証データd1を生成する検証データ生成ステップと、
セッション鍵a1を公開鍵暗号方式の公開鍵b1により暗号化して暗号化セッション鍵a2を生成する第1暗号化ステップと、
セッション鍵a1を公開鍵暗号方式における公開鍵c1により暗号化して暗号化セッション鍵a3を生成する第2暗号化ステップと、
セッション鍵a1をセッション鍵p4で暗号化した暗号化セッション鍵a5を生成する第3暗号化ステップと、
暗号化ファイルf2と、検証データd1と、3つの暗号化セッション鍵a2、a3、a5とを内容として含んだ1つの結合ファイルを作成する結合ファイル作成ステップとを含み、
前記ファイルの復号化プロセスは、
前記結合ファイルをファイルf2と、検証データd1と、3つの暗号化セッション鍵a2、a3、a5とに分解するファイル分解ステップと、
前記パスワード入力ステップと、
前記変形セッション鍵生成ステップと、
暗号化ファイルf2をセッション鍵a1により復号化して平文ファイルf1を取得する平文ファイル復号ステップと、
前記コンピュータに公開鍵b1に対応する秘密鍵b2がある場合、暗号化セッション鍵a2を当該鍵b2によりセッション鍵a1に復号するとともに、当該鍵a1を検証データd1に基づいて検証した上で、前記平文ファイル復号ステップを実行する第1復号ステップと、
前記コンピュータに公開鍵c1に対応する秘密鍵c2がある場合、暗号化セッション鍵a3を当該鍵c2によりセッション鍵a1に復号するとともに、当該鍵a1を検証データd1に基づいて検証した上で、前記平文ファイル復号ステップを実行する第2復号ステップと、
暗号化セッション鍵a5を前記変形セッション鍵生成ステップにより生成されたセッション鍵p4によりセッション鍵a1に復号するとともに、当該鍵a1を検証データd1に基づいて検証した上で、前記平文ファイル復号ステップを実行する第3復号ステップと を含んだファイル暗号化・復号化プログラムとしてもよい。
【0010】
なお、上記ファイル暗号化・復号化プログラムにおいて、秘密鍵c2は、公開鍵暗号方式の秘密鍵e2でデジタル認証されており、前記復号化プロセスでは、前記コンピュータにある秘密鍵xを前記秘密鍵e2に対応する公開鍵e1により検証して当該秘密鍵xが秘密鍵c2であると認証した場合に限り、前記第2復号ステップを実行することとしてもよい。
【0011】
また、公開鍵c1は公開鍵暗号方式の秘密鍵e2でデジタル認証されており、前記暗号化プロセスは、前記コンピュータにある公開鍵yを前記秘密鍵e2に対応する公開鍵e1で検証して当該公開鍵yが前記公開鍵c1であると認証した場合に限り、当該暗号化プロセスにおける他のステップを有効にするファイル暗号化・復号化プログラムとすることもできる。
【0012】
なお本発明は、上記ファイル暗号化・復号化プログラムのいずれかを記憶したプログラム格納媒体にも及んでいる。
【発明の効果】
【0013】
本発明のファイル暗号化・復号化プログラムによれば、ファイルを暗号化するための鍵を自在に生成できるとともに、その鍵で暗号化されたファイルを復号するためのマスターキーも生成することができる。また、そのマスターキー自体も厳重に管理できる。それによって、情報の守秘管理と漏洩事実の早期発見とを両立させることができる。
【発明を実施するための最良の形態】
【0014】
===実施形態===
本発明の実施例におけるファイルの暗号化・復号化プログラムは、CD−ROMなどの媒体に格納されて提供され、コンピュータにインストールされる。本実施例において、プログラムの販売業者は、ライセンス契約を締結した企業を固有のライセンスコードで管理するとともに、各ライセンスコード毎に秘密鍵と公開鍵とを生成し、その生成した公開鍵(企業公開鍵)と秘密鍵(企業秘密鍵)とプログラム本体とをCD−ROMに格納して企業に納入する。具体的には、販売業者は、製品としてのプログラムに共通の公開鍵暗号方式における秘密鍵(製品秘密鍵)と公開鍵(製品公開鍵)を生成・管理する。プログラムは、製品秘密鍵で暗号化された企業公開鍵(暗号化企業公開鍵)と、コンピュータにインストールされて各種処理を実行するプログラム本体に相当するコードとを含み、販売業者は、これら鍵とコードがコンパイルされて格納されたCD−ROMを該当の企業に納入する。なお製品公開鍵は認証機関や販売業者のWebサイトなどにダウンロード可能にして用意しておいてもよいし、プログラムとおなじCD−ROMに格納して用意しておいてもよい。
【0015】
図1に、CD−ROMにおけるプログラム格納状態の概略を示した。企業公開鍵11を製品秘密鍵1で暗号化した暗号化企業公開鍵12とプログラムを記述したコード3とが記録されたCD−ROM4と、企業秘密鍵13を製品秘密鍵1でデジタル署名した署名済み企業秘密鍵14が記録されたCD−ROM5とが企業に納入される。なお企業公開鍵11を製品秘密鍵1で暗号化することは、実質的に、企業公開鍵11本体を製品秘密鍵1でデジタル署名したことと同義である。また、企業秘密鍵13のデジタル署名については、企業公開鍵11と同様に企業秘密鍵13自体を製品秘密鍵1で暗号化したものであってもよいし、企業秘密鍵13を、例えばハッシュ関数など、所定のアルゴリズムに基づいて生成したダイジェストを製品秘密鍵1で暗号化したものであってもよい。ダイジェストを暗号化した場合には、CD−ROM5には企業秘密鍵13自体も署名とともに記録しておけばよい。なお、企業秘密鍵13を厳重に管理できるのであれば、企業秘密鍵13をデジタル認証しておく必要はなく、企業秘密鍵13をその管理者のコンピュータに記憶させておくなどして保管しておけばよい。企業公開鍵11についても同様に暗号化せずに鍵自体をCD−ROM4に記録しておいてもよい。
【0016】
===企業における利用形態===
本実施例では、ある企業において、社員の利用する全コンピュータにはCD−ROM4を起源として本プログラムがインストールされているものとし、他の暗号化・複合化プログラムは使用禁止となっている状況を想定している。そしてプログラムは、公開鍵暗号方式における公開鍵と秘密鍵を生成する機能を含み、例えば、部署毎にその上長が公開鍵(グループ公開鍵)と秘密鍵(グループ秘密鍵)を自身のコンピュータにおいて生成し、公開鍵をその部署の一般社員のコンピュータに配布しておく。
【0017】
===暗号処理システム===
本実施例の方法に基づいてファイルの暗号化や複合化を実行するコンピュータ(以下、暗号処理システム)は、暗号化の対象となる平文ファイルを共通鍵暗号方式における秘密鍵(以下、セッション鍵)で暗号化するとともに、セッション鍵を公開暗号方式の公開鍵で暗号化する周知の「デジタル封筒」技術を応用して企業内でのファイル守秘管理と迅速な漏洩事実発見との両立を図っている。
【0018】
図2と図3に、暗号処理システムによるファイルの暗号化と復号化の概略をそれぞれに示した。また、図4(A)と図4(B)に、それぞれその暗号化と復号化の処理の流れを示した。まず、セッション鍵21を生成し(s1)、そのセッション鍵21で暗号化したい平文ファイル31を暗号化して暗号化ファイル32を生成する(s2)。また、セッション鍵21をグループ公開鍵15で暗号化してグループ暗号化セッション鍵22を作成する(s3→s4)。グループ公開鍵15が存在しない場合には、平文ファイル31を暗号化できない旨などを表示出力するとともに、今までの暗号化プロセスを無効化するなどのエラー処理(s3→s8)を行い、プログラムの実行を終了する。それによって、例えば、同一のグループ公開鍵を共有する特定の部署に属さない暗号化システムによって平文ファイルが暗号化され、その部署外に守秘義務のあるファイルが暗号化されて持ち出されないようにしている。
【0019】
つぎに、暗号化企業公開鍵12を製品公開鍵2で復号して企業公開鍵11を取得し、その企業公開鍵11でセッション鍵21を暗号化して企業暗号化セッション鍵23を作成する(s5→s6)。そして、上記処理により生成した暗号化ファイル32とグループ暗号化セッション鍵22と企業暗号化セッション鍵23とを内容として含んだ1つの結合ファイル41を作成する(s7)。なお本実施例では、企業公開鍵11の復号処理(s5)を経ずに企業暗号化セッション鍵23の生成処理を実行することを禁止している。企業公開鍵11の復号処理(s5)を経ずに企業公開鍵11が読み込まれた場合、適宜なエラー処理(s8)を行い、プログラムの実行を終了する。それによって、不正に企業公開鍵11を得た人間が平文ファイル31の作成者を詐称する「なりすまし」を防止している。もちろん、企業公開鍵の復号処理を暗号化プロセスの最初に行い、その処理結果に応じて以後の処理の続行・中止を決定するようにしてもよい。
【0020】
復号化のプロセスとしては、まず、結合ファイル41を暗号化ファイル32とグループ暗号化セッション鍵22と企業暗号化セッション鍵23に分解する(s11)。復号処理を実行する暗号処理システムにセッション鍵21があれば前記分解処理により得た暗号化ファイル32を当該セッション鍵21で復号して平文ファイル31を得る(s12→s15)。また、セッション鍵21がなくてもグループ秘密鍵16があれば、グループ暗号化セッション鍵22をグループ秘密鍵16で復号処理してセッション鍵21を取得し、そのセッション鍵21で暗号化ファイル32を平文ファイル31に復号する(s12→s13→s14→s15)。セッション鍵21やグループ秘密鍵16がなくても、署名済み企業秘密鍵14があれば、署名済み企業秘密鍵14を製品公開鍵1で検証し(s12→s13→s16)、認証した鍵を企業秘密鍵13とし、この企業秘密鍵13で企業暗号化セッション鍵23をセッション鍵21に復号し(s16→s17)、そのセッション鍵21で暗号化ファイル32を平文ファイル31に復号する(s15)。認証できなければ企業秘密鍵13が不正に入手されたものとして、暗号化ファイル32を復号できない旨などを表示出力するなど、適宜にエラー処理(s18)を実行して処理を終了する。
【0021】
上記暗号処理システムは、例えば、社外から外部へネットワークを介して送信されるファイルを監視する周知のパケット・スニッフィング(Packet Sniffing)技術などに適用可能である。具体的には、パケット・スニッフィングによってネットワーク監視処理を行うホストコンピュータに上記暗号処理システムの機能と、グループ秘密鍵や企業秘密鍵を組み込んでおけば、ある一般社員があるファイルを自身が生成したセッション鍵によって暗号化し、外部の人間にネットワークを介して転送しようとしたとしても、セッション鍵を入手したり解読したりすることなく速やかにファイルの内容を検閲することができる。従前では、ファイルが社外秘のものであるかどうかを検閲するために、セッション鍵を入手したり解読したりするために多大な時間と作業を要した。
【0022】
===操作環境===
上記実施例において、セッション鍵21を記述するコード自体はその作成者自体もわからないようになっている。このような暗号化手順については、例えば、プログラムが暗号化や複合化するファイルを管理するための特殊なフォルダ(管理フォルダ)をセッション鍵21毎に生成し、暗号処理システムにてその管理フォルダに平文ファイル31を格納するユーザ入力を受け付けると、平文ファイル31がそのフォルダのセッション鍵21によって暗号化されるとともに、その暗号化ファイル32と、セッション鍵21をグループ公開鍵15や企業公開鍵11によって暗号化して得た暗号化セッション鍵とを含んだ結合ファイル41の状態でその管理フォルダに格納する。また、管理フォルダから結合ファイル41を読み出すユーザ入力に応動し、当該ユーザ入力を受け付けた暗号処理システムにて管理されている復号鍵の種類(セッション鍵21、グループ秘密鍵16、企業秘密鍵13)に応じて結合ファイル41から平文ファイル31を得ればよい。
【0023】
===パスワードに対応した暗号化・復号化プロセス===
例えば、上記管理フォルダに平文ファイル31を格納する際、あるいは管理フォルダに格納されている結合ファイル41から平文ファイル31を取得する際にパスワードを求める操作環境としてもよい。この場合には概ね以下の第1および第2の2つの処理方式が考えられる。
【0024】
図5に第1の処理方式における暗号化プロセスの概略を示した。暗号化のプロセスとしては、まず、ユーザ入力によりパスワード51の入力を受け付けて記憶する。共通暗号化方式のセッション鍵21を生成するとともに、このセッション鍵21をパスワード51が正しくなければ使用できないように変形した変形セッション鍵24を生成する(s21)。例えば、セッション鍵21を所定のアルゴリズムに基づいて変形し、その変形したセッション鍵にパスワードを対応付けしたデータを変形セッション鍵24として管理する。
【0025】
つぎに、セッション鍵21で平文ファイル31を暗号化ファイル32に暗号化する(s22)。そして、パスワード51をグループ公開鍵15、および企業公開鍵11で暗号化し、グループ暗号化パスワード52と企業暗号化パスワード53とを生成し(s23,s24)、暗号化ファイル32と、変形セッション鍵24と、グループ暗号化パスワード52と、企業暗号化パスワード53とを内容として含んだ1つの結合ファイル42を作成する(s25)。
【0026】
図6に第1の処理方式における復号化プロセスの概略を示した。上記手順にて暗号化されたファイル32の復号化プロセスとしては、まず、結合ファイル42を暗号化ファイル32と、変形セッション鍵と24、グループ暗号化パスワード52と、企業暗号化パスワード53とに分解する(s31)。そして、この分解処理以降のプロセスは、暗号処理システムにて管理されている復号鍵(パスワード51、グループ秘密鍵16、企業秘密鍵13)によってそれぞれ異なる。
【0027】
暗号処理システムは、例えば、管理フォルダにある結合ファイル42を読み出すユーザ入力など、適宜な復号指示操作を受けつけると、自身が管理する復号鍵を調査する。パスワードを管理していれば、ユーザインタフェースにより、パスワード51のユーザ入力を促す。ユーザ入力によりパスワード51が正しく入力されると変形セッション鍵24をセッション鍵21に復元し、そのセッション鍵21で暗号化ファイル32を平文ファイル31に復号する(s32→s33)。
【0028】
グループ秘密鍵16を管理していれば、復号指示操作に応動してグループ暗号化パスワード52をグループ秘密鍵16で復号してパスワード51を取得する。そして、そのパスワード51を用いて変形セッション鍵24をセッション鍵21に復元し、そのセッション鍵21で暗号化ファイル32を復号して平文ファイル31を取得する(s34→s32→s33)。企業秘密鍵13に基づく復号化プロセスでは、認証済み企業秘密鍵を製品公開鍵で検証した上で、企業暗号化パスワード53を企業秘密鍵13で復号してパスワード51を取得する。そして、変形セッション鍵をセッション鍵の復元処理と、暗号化ファイルの復号処理とを実行する(s35→s32→s33)。
【0029】
パスワードに対応した暗号化・暗号化プロセスにおける第2の処理方式について、暗号化プロセスの概略を図7に示し、復号化プロセスの概略を図8に示した。暗号化のプロセスとしては、まず、ユーザ入力によりパスワード51の入力を受け付けて記憶する。共通暗号化方式のセッション鍵21を生成する。そして、平文ファイル31をセッション鍵21で暗号化して暗号化ファイル32を生成する(s41)。また、セッション鍵21などの適宜なデータ61を起源として検証データ62を生成する(s42)。検証データ62としては、例えば、セッション鍵21をハッシュ関数を用いて変換したハッシュ値であってもよいし、乱数とその乱数をセッション鍵21で暗号化した暗号化乱数との組み合わせであってもよい。
【0030】
つぎに、パスワード51を所定のアルゴリズムに基づいて平文ファイル31の暗号化に使用する上記セッション鍵21とは異なる共通鍵暗号方式のセッション鍵に変形したパスワード変形セッション鍵25を生成する(s43)。なおパスワード変形セッション鍵25は、例えば、可変長のパスワード51をハッシュ関数を用いて固定長のパスワード変形セッション鍵25に変換するなど、適宜なアルゴリズムに基づいて生成すればよい。
【0031】
つぎに、セッション鍵21を、パスワード変形セッション鍵25、グループ公開鍵15、および企業公開鍵11で暗号化して、パスワード暗号化セッション鍵26、グループ暗号化セッション鍵22、および企業暗号化セッション鍵23に生成する(s44,s45,s46)。そして、暗号化ファイル32と、検証データ62と、パスワード暗号化セッション鍵26と、グループ暗号化セッション鍵22と、企業暗号化セッション鍵23とを内容として含んだ1つの結合ファイル43に作成する(s47)。
【0032】
暗号化ファイル32の復号化プロセスとしては、まず、結合ファイル43を暗号化ファイル32と、検証データ62と、パスワード暗号化セッション鍵26と、グループ暗号化セッション鍵22と、企業暗号化セッション鍵23とに分解する(s51)。そして、この分解処理(s51)以降のプロセスとしては、やはり、上記第1の処理方式と同じく、暗号処理システムが管理する復号鍵(13,16,51)に応じてそれぞれの処理手順がある。
【0033】
暗号処理システムにてパスワード51が管理されていれば、復号化の指示操作に応動してパスワードのユーザ入力を受け付け可能とする。そして、正しくパスワード51が入力されれば、このパスワード51を上記アルゴリズムによりパスワード変形セッション鍵25に生成し(s52)、そのパスワード変形セッション鍵25でパスワード暗号化セッション鍵26を復号してセッション鍵21を取得する(s53)。
【0034】
なお、この第2の処理方式では、復号処理の過程で得られたセッション鍵(以下、鍵xとする)を検証データ62で検証することで(s54)、その鍵xが正規に入手されたセッション鍵21でない限り、暗号化ファイル32から平文ファイル31が復号されないようにしている。例えば、検証データ62がセッション鍵21のハッシュ値であれば、鍵xのハッシュ値と検証データ62中のハッシュ値とを照合する。双方のハッシュ値が一致すれば鍵xはセッション鍵21であると認証する。検証データ62が乱数と暗号化乱数であれば、検証データ62中の乱数と、暗号化乱数を鍵xで復号して得た乱数とを照合すればよい。そして検証処理(s54)により、復元した鍵xを正規のセッション鍵21として認証すれば、そのセッション鍵21で暗号化ファイル32を平文ファイル31に復号する(s55)。
【0035】
暗号処理システムにグループ秘密鍵16が管理されていれば、グループ暗号化セッション鍵22をグループ秘密鍵16で復号し(s56)、この復号処理により得た鍵xが上記と同様にして検証してセッション鍵21として認証すれば、このセッション鍵21で暗号化ファイル32を平文ファイル31に復号する(s56→s54→s55)。企業秘密鍵13が管理されていれば、企業秘密鍵13による企業暗号化セッション鍵23の復号処理と、この復号処理により得たセッション鍵xの検証処理とを経て、暗号化ファイル32を平文ファイル31に復号する(s57→s54→s55)。
【図面の簡単な説明】
【0036】
【図1】本発明の実施例におけるファイル暗号化・復号化プログラムを格納媒体に記録する際の概略図である。
【図2】上記プログラムによる暗号化処理の概略図である。
【図3】上記プログラムによる復号化処理の概略図である。
【図4】上記暗号化処理の流れ図(A)と、復号化処理の流れ図(B)である。
【図5】上記プログラムの変更例における第1の処理方式の暗号化処理の概略図である。
【図6】上記第1の処理方式における復号化処理の概略図である。
【図7】上記プログラムの変更例における第2の処理方式の暗号化処理の概略図である。
【図8】上記第2の処理方式における復号化処理の概略図である。
【符号の説明】
【0037】
1 製品秘密鍵
2 製品公開鍵
11 企業公開鍵
13 企業秘密鍵
15 グループ公開鍵
16 グループ秘密鍵
21 セッション鍵
31 平文ファイル
32 暗号化ファイル
41〜43 結合ファイル
51 パスワード

【特許請求の範囲】
【請求項1】
コンピュータにインストールされて、ファイルを暗号化するプロセスと、暗号化されたファイルを復号化するプロセスとを当該コンピュータに実行させるファイル暗号化・復号化プログラムであって、
前記ファイル暗号化プロセスは、
共通鍵暗号方式の鍵(セッション鍵)a1を生成するセッション鍵生成ステップと、
平文のファイルf1をセッション鍵により暗号化して暗号ファイルf2を生成するファイル暗号化ステップと、
セッション鍵a1を公開鍵暗号方式の公開鍵b1により暗号化して暗号化セッション鍵a2を生成する第1暗号化ステップと、
セッション鍵a1を公開鍵暗号方式における公開鍵c1により暗号化して暗号化セッション鍵a3を生成する第2暗号化ステップと、
暗号化ファイルf2と、暗号化セッション鍵a2およびa3とを内容として含む1つの結合ファイルに作成する結合ファイル作成ステップと、
を含み、
前記ファイルの復号化プロセスは、
前記結合ファイルを暗号化ファイルf2と、暗号化セッション鍵a2およびa3とに分解するファイル分解ステップと、
前記コンピュータがセッション鍵a1を記憶している場合、暗号化ファイルf2を当該鍵a1により復号して平文ファイルf1を取得する平文ファイル復号ステップと、
前記コンピュータに公開鍵b1に対応する秘密鍵b2がある場合、暗号化セッション鍵a2を当該鍵b2によりセッション鍵a1を復号した上で、前記平文ファイル復号ステップを実行する第1復号ステップと、
前記コンピュータに公開鍵c1に対応する秘密鍵c2がある場合、暗号化セッション鍵a3を当該鍵c2によりセッション鍵a1を復号した上で、前記平文ファイル復号ステップを実行させる第2復号ステップと、
を含むファイル暗号化・復号化プログラム。
【請求項2】
コンピュータにインストールされて、ファイルを暗号化するプロセスと、暗号化されたファイルを復号化するプロセスとを当該コンピュータに実行させるファイル暗号化・復号化プログラムであって、
前記ファイル暗号化プロセスは、
パスワードp1をユーザ入力により受け付けるパスワード入力ステップと、
共通鍵暗号方式の鍵(セッション鍵)a1を生成するセッション鍵生成ステップと、
平文のファイルf1をセッション鍵により暗号化して暗号ファイルf2を生成するファイル暗号化ステップと、
セッション鍵a1を前記パスワードp1に関連づけするとともに所定のアルゴリズムに基づいて変形した変形セッション鍵a4を生成するセッション鍵変形ステップと、
パスワードp1を公開鍵暗号方式の公開鍵b1により暗号化して暗号化パスワードp2を生成する第1暗号化ステップと、
パスワードp1を公開鍵暗号方式における公開鍵c1により暗号化して暗号化パスワードp3を生成する第2暗号化ステップと、
暗号化ファイルf2と、変形セッション鍵a4と、暗号化パスワードp2およびp3とを内容として含んだ1つの結合ファイルを作成する結合ファイル作成ステップと、
を含み、
前記ファイルの復号化プロセスは、
前記結合ファイルを前記ファイルf2と、変形セッション鍵a4と、暗号化パスワードp2およびp3とに分解するファイル分解ステップと、
ユーザ入力によりパスワードを受け付けるパスワード入力ステップと、
適宜に入力されたパスワードがパスワードp1に一致すれば、変形セッション鍵a4を前記アルゴリズムに基づいてセッション鍵a1に復元するとともに、当該セッション鍵a1により暗号化ファイルf2を復号して平文ファイルf1を取得する平文ファイル復号ステップと、
コンピュータに公開鍵b1に対応する秘密鍵b2がある場合、暗号化パスワードp2を当該鍵b2によりパスワードp1に復号し、当該パスワードp1を前記平文ファイル復号ステップへの入力パスワードとする第1復号ステップと、
コンピュータに公開鍵c1に対応する秘密鍵c2がある場合、暗号化パスワードp3を当該鍵c2によりパスワードp1に復号し、当該パスワードp1を前記平文ファイル復号ステップへの入力パスワードとする第2復号ステップと、
を含むファイル暗号化・復号化プログラム。
【請求項3】
コンピュータにインストールされて、ファイルを暗号化するプロセスと、暗号化されたファイルを復号化するプロセスとを当該コンピュータに実行させるファイル暗号化・復号化プログラムであって、
前記ファイル暗号化プロセスは、
ユーザ入力によりパスワードp1を受け付けるパスワード入力ステップと、
パスワードp1を所定のアルゴリズムに基づいて共通鍵暗号方式のセッション鍵p4に変形する変形セッション鍵生成ステップと、
共通鍵暗号方式の鍵(セッション鍵)a1を生成するセッション鍵生成ステップと、
平文のファイルf1をセッション鍵a1により暗号化して暗号ファイルf2を生成するファイル暗号化ステップと、
セッション鍵a1に基づいてセッション鍵の検証データd1を生成する検証データ生成ステップと、
セッション鍵a1を公開鍵暗号方式の公開鍵b1により暗号化して暗号化セッション鍵a2を生成する第1暗号化ステップと、
セッション鍵a1を公開鍵暗号方式における公開鍵c1により暗号化して暗号化セッション鍵a3を生成する第2暗号化ステップと、
セッション鍵a1をセッション鍵p4で暗号化した暗号化セッション鍵a5を生成する第3暗号化ステップと、
暗号化ファイルf2と、検証データd1と、3つの暗号化セッション鍵a2、a3、a5とを内容として含んだ1つの結合ファイルを作成する結合ファイル作成ステップと、
を含み、
前記ファイルの復号化プロセスは、
前記結合ファイルをファイルf2と、検証データd1と、3つの暗号化セッション鍵a2、a3、a5とに分解するファイル分解ステップと、
前記パスワード入力ステップと、
前記変形セッション鍵生成ステップと、
暗号化ファイルf2をセッション鍵a1により復号化して平文ファイルf1を取得する平文ファイル復号ステップと、
前記コンピュータに公開鍵b1に対応する秘密鍵b2がある場合、暗号化セッション鍵a2を当該鍵b2によりセッション鍵a1に復号するとともに、当該鍵a1を検証データd1に基づいて検証した上で、前記平文ファイル復号ステップを実行する第1復号ステップと、
前記コンピュータに公開鍵c1に対応する秘密鍵c2がある場合、暗号化セッション鍵a3を当該鍵c2によりセッション鍵a1に復号するとともに、当該鍵a1を検証データd1に基づいて検証した上で、前記平文ファイル復号ステップを実行する第2復号ステップと、
暗号化セッション鍵a5を前記変形セッション鍵生成ステップにより生成されたセッション鍵p4によりセッション鍵a1に復号するとともに、当該鍵a1を検証データd1に基づいて検証した上で、前記平文ファイル復号ステップを実行する第3復号ステップと、
を含むファイル暗号化・復号化プログラム。
【請求項4】
秘密鍵c2は、公開鍵暗号方式の秘密鍵e2でデジタル認証されており、前記復号化プロセスでは、前記コンピュータにある秘密鍵xを前記秘密鍵e2に対応する公開鍵e1により検証して当該秘密鍵xが秘密鍵c2であると認証した場合に限り、前記第2復号ステップを実行する請求項1〜3のいずれかに記載のファイル暗号化・復号化プログラム。
【請求項5】
公開鍵c1は公開鍵暗号方式の秘密鍵e2でデジタル認証されており、前記暗号化プロセスは、前記コンピュータにある公開鍵yを前記秘密鍵e2に対応する公開鍵e1で検証して当該公開鍵yが前記公開鍵c1であると認証した場合に限り、当該暗号化プロセスにおける他のステップを有効にする請求項1〜3のいずれかに記載のファイル暗号化・復号化プログラム。
【請求項6】
請求項1〜5に記載のいずれかのファイル暗号化・復号化プログラムを記憶したプログラム格納媒体。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate