JP2001027964A - データの保存方法およびシステム並びにデータ保存処理用記録媒体 - Google Patents

データの保存方法およびシステム並びにデータ保存処理用記録媒体

Info

Publication number
JP2001027964A
JP2001027964A JP2000175873A JP2000175873A JP2001027964A JP 2001027964 A JP2001027964 A JP 2001027964A JP 2000175873 A JP2000175873 A JP 2000175873A JP 2000175873 A JP2000175873 A JP 2000175873A JP 2001027964 A JP2001027964 A JP 2001027964A
Authority
JP
Japan
Prior art keywords
data
key
application program
storage device
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000175873A
Other languages
English (en)
Other versions
JP3741357B2 (ja
Inventor
Hiroshi Miyazaki
博 宮崎
Yoshiki Samejima
吉喜 鮫島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2000175873A priority Critical patent/JP3741357B2/ja
Publication of JP2001027964A publication Critical patent/JP2001027964A/ja
Application granted granted Critical
Publication of JP3741357B2 publication Critical patent/JP3741357B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

(57)【要約】 【課題】 ユーザが煩わしい操作を行なうことなく記憶
装置内のデータの盗み見や改変を防止することができ、
しかもコンピュータ自身が盗難されたとしても記憶装置
内のデータを盗聴から防止可能にすること。 【解決手段】 アプリケーションプログラムからオペレ
ーティングシステムへ発行する記憶装置へのデータ読み
込み・書き出し要求を横取りし、書き出し要求の際には
データを内部メモリに記憶した暗号鍵でデータを暗号化
して記憶装置に保存し、また、読み込み要求の際には記
憶装置から暗号化データを読み出し、この暗号化データ
を前記内部メモリに記憶した暗号鍵で復号し、アプリケ
ーションプログラムに渡す。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、アプリケーション
プログラムに従った処理を実行するコンピュータと、該
コンピュータに接続された記憶装置とを備えたコンピュ
ータシステムにおいて前記アプリケーションプログラム
が処理したデータを前記記憶装置に書き込んで保存する
ためのデータ保存方法およびシステム並びにデータ保存
処理用記録媒体に関するものである。
【0002】
【従来の技術】従来、磁気ディスク装置等の記憶装置を
備えたコンピュータシステムにあっては、コンピュータ
内部で動作しているアプリケーションプログラムが処理
したデータは、そのまま記憶装置に保存されていた。こ
のため、記憶装置上に保存されているデータは、データ
作成に使ったコンピュータや、さらにこの記憶装置がネ
ットワークに接続している場合にはネットワーク上のコ
ンピュータから、盗み見たり書き換えたりすることがで
き、機密漏洩やデータ改変などの恐れがあった。
【0003】そこで、記憶装置を管理しているオペレー
ティングシステムに、記憶装置上に保存しているデータ
に対して、どのユーザがデータを読み出したり書き換え
たりして良いのかというアクセス制御機能を具備させ、
アクセスの権利を持たないユーザからのアクセスを許可
しない仕組みを講じたものがある。しかし、記憶装置に
対してはオペレーティングシステムを介さずに直接アク
セスすることもできるので、上記アクセス制御機能でも
データの盗み見や改変を完全に防ぐことはできなかっ
た。そのため、記憶装置に保存するデータを暗号化した
り、改変があったことを検知するための電子署名を付け
たりして、これらの不正行為を防ぐ対策を取ってきた。
【0004】ところで、データを暗号化したり復号化し
たりする際には、データを8ビットや64ビットの基本
単位に区切ってから暗号化・復号化する。しかし、この
ままでは同じ内容の基本単位は同じ暗号文に暗号化され
てしまうので、暗号文解読の手がかりとなってしまう。
そのため、データ内のある位置の基本単位を暗号化する
際には、一つ前の位置のすでに暗号化されている基本単
位を使って何らかの処理(例えば、排他的論理和)をし
てから暗号化する。このような基本単位の連鎖処理を行
うと、解読の手がかりを消すことができる。なお、デー
タの先頭の基本単位を暗号化する際には、別に用意する
初期化データを使って連鎖処理をする。上記の暗号連鎖
処理については、例えば、「暗号とデータセキュリテ
ィ」(D.E.R.デニング著、上園忠弘他訳、培風館
発行)に述べてある。
【0005】
【発明が解決しようとする課題】しかし、データを暗号
化して保存する際には、データを記憶装置上に一旦保存
してから、あるいは記憶装置に保存してあるデータをユ
ーザが明示的に指定して暗号化を行っていた。同様に、
暗号化データを復号する際にも、ユーザが明示的に復号
の指定をして元のデータに復号していた。このため、ユ
ーザがいちいちデータの暗号化・復号化の指示を行うこ
とになり、操作が煩わしいという問題があった。特に、
暗号化してあるデータを一度復号して修正してから再び
暗号化するというような操作を行う場合には、再暗号化
の操作を忘れる可能性があり、再暗号化の操作を忘れた
場合には記憶装置内のデータの盗み見や改変に対抗でき
ないという問題があった。したがって、データの暗号化
・復号化が必要な時に、必ずしもユーザによる直接の指
示がなくても、暗号化・復号化を行うことができる仕組
みが必要となっている。
【0006】本発明はこれらの問題点を解決するために
なされたものであり、その第1の目的は、ユーザによる
暗号化・復号化の直接の指示がなくても、アプリケーシ
ョンプログラムからのデータの書き出し要求があったな
らば、そのデータを自動的に暗号化して記憶装置に保存
し、データの読み込み要求があったら、記憶装置に保存
してある暗号化データを自動的に復号してアプリケーシ
ョンプログラムに渡すことにより、ユーザが煩わしい操
作を行なうことなく記憶装置内のデータの盗み見や改変
を防止することができるデータ保存方法およびシステム
並びに保存処理用記録媒体を提供することにある。
【0007】また、上記のようなアプリケーションプロ
グラムからの書き出し要求、読込み要求を受けて自動的
に暗号化・復号化する場合、次のような問題が生じる。
アプリケーションプログラムはファイル内の任意の位置
からデータの読み書きを行う。自動的な暗号化方法を行
う際に暗号基本単位の連鎖処理を行っていると、ファイ
ル内のある位置でデータの上書きが起きた時にその位置
以降のすべての暗号基本単位を暗号化し直す処理が必要
となり、上書き処理終了までの時間が大きくなってしま
う。
【0008】このような再暗号化処理が必要となる部分
を少なくするため、ファイルを暗号基本単位より大きい
一定長のレコードで区切り、このレコードごとに上記初
期化データを用意する方式が考えられている。この方式
では、ファイル内のある位置でデータの上書きが起きた
場合、再暗号化処理を上書きのあったレコードの終端ま
でしか行わないようしている。このようにすることで、
再暗号化が必要となる部分を限定することができる。
【0009】しかし、ファイルを一定長のレコードに分
割することにより、データ上書きの際の再暗号化処理を
少なくすることはできるが、どの程度のレコード長が良
いかは簡単に決めることはできない。
【0010】レコード長が長いと、アプリケーションプ
ログラムがデータを上書きする時に必要となる再暗号化
処理の長さが大きくなってしまう。レコード長が短い
と、アプリケーションプログラムがデータを読み書きす
る際に複数のレコードにまたがってアクセスすることが
多くなり、各レコードの初期化データを準備する回数が
増えてしまい、その処理時間がかえってオーバヘッドに
なってしまう。
【0011】また、アプリケーションプログラムごとに
読み書きする単位長が異なっているため、あるアプリケ
ーションプログラムにとって最適なレコード長が他のア
プリケーションプログラムにとっても最適とは限らな
い。
【0012】本発明は上記問題点も解決するためになさ
れたものであり、その第2の目的は、アプリケーション
プログラムそれぞれについて、その読み書きする長さや
読み書きを開始する位置を記録しておき、この記録を用
いて、上書きの際の再暗号化処理や初期化データの準備
からなるオーバヘッド時間を最小化するレコードサイズ
を求めることにより、データ上書きの際の処理時間を短
くすることができるデータ保存方法およびシステム並び
に保存処理用記録媒体を提供することにある。
【0013】
【課題を解決するための手段】上記目的を達成するた
め、本発明のデータ保存方法は、アプリケーションプロ
グラムからのデータの書き込み要求に対し、該書き込み
要求を前記ファイルフック手段によって横取りし、前記
オペレーティングシステムが書き込み対象となるデータ
を前記記憶装置に書き込む前に、当該コンピュータの内
部メモリに記憶した暗号鍵により予め設定したレコード
長単位で暗号化して前記記憶装置に書き込み、前記アプ
リケーションプログラムからの読み出し要求に対して
は、該読み出し要求を前記ファイルフック手段によって
横取りし、前記アプリケーションプログラムに読み出し
データを転送する前に、前記オペレーティングシステム
に前記記憶装置から暗号化されたデータをレコード単位
で読み出させた後に、前記内部メモリに記憶した暗号鍵
で前記暗号化されたデータを予め設定したレコード長単
位で復号し、復号されたデータを読み出し要求を行なっ
た前記アプリケーションプログラムに転送することを特
徴とするものである。
【0014】また、予めユーザがファイル保存の際には
自動的に暗号化して欲しいファイルやディレクトリを指
定することで、指定したファイルあるいは指定したディ
レクトリ以下にあるファイルだけに対して、暗号化や復
号化を行うことを特徴とするものである。
【0015】また、オペレーティングシステムがアプリ
ケーションプログラムからのデータ読込み・書込み要求
を受け取ると、そのデータのファイル内での位置とデー
タ長を記録しておき、十分な数の記録を取った後、アプ
リケーションプログラムごとに再暗号化処理と初期化デ
ータ処理のオーバヘッドを最小化するレコード長を計算
し、以降の暗号化・復号化の際には計算で求めたレコー
ド長を用いることを特徴とするものである。
【0016】このような手段により、暗号化や復号化の
指示をユーザが明示的に行うことなしに記憶装置に保存
するデータを自動的に暗号化し、読み出す時には自動的
に復号することができ、煩わしい操作をユーザに強いる
ことがない。また、記憶装置に保存するデータを自動的
に保存するので、ユーザがデータの暗号化を忘れるとい
う問題も起きない。また、暗号化して保存する場所とし
てフロッピー(登録商標)ディスクのような記憶媒体を
表わすディレクトリも指定できるので、重要な情報をコ
ピーされて持ち出されることを防ぐこともできる。
【0017】また、アプリケーションプログラムごと
に、1回の上書き要求における再暗号化の長さ、および
初期化データの生成処理からなるオーバヘッドを最小に
するレコード長を求めることができるので、データ上書
きの際の処理時間をそれぞれのアプリケーションプログ
ラムごとに高速化できる。また、アプリケーションから
オペレーティングシステムへのデータ読み出し・書き込
み要求を横取りするための仕組みは、オペレーティング
システムが提供している場合には、既存のアプリケーシ
ョンプログラムやオペレーティングシステムを書き換え
る必要がなく、しかも新たにハードウェアを置き換える
必要もなく、最小限のコストでデータのセキュリティを
高めることが可能である。
【0018】
【発明の実施の形態】以下、本発明の実施形態に基づき
詳細に説明する。図1は、本発明の実施形態を示すシス
テム構成図である。本実施形態は、ユーザが端末上で動
作しているアプリケーションプログラムで作成したデー
タを、鍵管理サーバ(鍵管理コンピュータ)から取り寄
せる自分の鍵で暗号化して端末に接続の記憶装置に保存
する場合と、記憶装置から読み出した暗号化データを鍵
管理サーバから取り寄せる自分の鍵で復号化して平文の
データをアプリケーションに渡す場合のものである。
【0019】図1に示すシステムは、大別すると、ユー
ザ123が操作する端末101と、この端末101に接
続された記憶装置111と、データの暗号化のための鍵
を管理する鍵管理サーバ(鍵管理コンピュータ)112
と、暗号化のための鍵を格納した鍵データベース121
と、端末101と鍵管理サーバ112とを接続するネッ
トワーク122とから構成されている。端末101は、
据置き型あるいは携帯用のコンピュータで構成されるも
のであり、その内部には、ユーザ入力部102、パスワ
ード暗号鍵生成部103、ファイル暗号鍵生成部10
4、暗号鍵・復号化部105、アプリケーションプログ
ラム106、ファイルアクセスフック部107、オペレ
ーティングシステム108、記憶装置用インタフェース
109、通信用インタフェース110、レコードサイズ
記憶部124、アクセス情報記憶部125を備え、ユー
ザ123はアプリケーションプログラム106で作成し
たデータファイルを記憶装置111に保存したり、読み
出したりすることができる。ユーザ入力部102は、フ
ァイルアクセスフック部107からの指示によって、ユ
ーザ123にユーザ名とパスワードを入力させるための
ものである。パスワード暗号鍵生成部103は、ユーザ
123が入力したパスワードから暗号鍵を生成するため
のものである。パスワード暗号鍵は、ユーザ123の認
証情報やシステム全体で使う暗号鍵を暗号化して記憶装
置111に保存するものである。ファイル暗号鍵生成部
104は、記憶装置111に保存するファイルの暗号化
に使う暗号鍵をランダムに生成するものである。暗号化
・復号化部105は、ファイルを実際に暗号化・復号化
するものである。ユーザ123がデータファイルを作成
するためのアプリケーションプログラム106は、ワー
プロや表計算などのソフトである。
【0020】ファイルアクセスフック部107は、アプ
リケーションプログラム106から記憶装置111への
ファイルアクセス要求を横取りする処理と、鍵管理サー
バ112からユーザ鍵を取り寄せるなど、端末101で
のファイルの暗号・復号処理全般を管理するものであ
る。端末101上で動作しているオペレーティングシス
テム108は、記憶装置用インタフェース109、通信
用インタフェース110、レコードサイズ記憶部12
4、アクセス情報記憶部125を管理して、記憶装置1
11へのアクセスや、ネットワーク122を介した通信
などの動作環境をアプリケーションプログラム106や
ファイルアクセスフック部107に提供している。
【0021】レコードサイズ記憶部124は、アプリケ
ーションプログラムごとの暗号化・復号化する際のレコ
ードサイズを記憶するために使う。
【0022】アクセス情報記憶部125は、アプリケー
ションプログラムごとに、ファイル内で読み出しや書き
込みを開始した位置と読み出し・書き込みデータの長さ
を複数保存しておくためのもので、暗号化・復号化する
際のレコードサイズを計算するために使う。なお、記憶
装置111には、ユーザ123が作成したファイルだけ
でなく、ユーザ123がパスワードを入力した際の確認
に使う認証トークンやシステムがデータの暗号化に使う
システム鍵も暗号化して保存してある。
【0023】一方、鍵管理サーバ112は、鍵管理アプ
リケーションプログラム113、ユーザ入力部114、
パスワード暗号鍵生成部115、ユーザ鍵生成部11
6、暗号化・復号化部117、オペレーティングシステ
ム118、通信用インタフェース119、記憶装置用イ
ンタフェース120を備えており、端末101のユーザ
123が本システムを使うための情報を生成したり、ユ
ーザ鍵を管理する機能を担っている。鍵管理アプリケー
ションプログラム113は、ユーザ123に配布する情
報の生成や、端末101からのユーザ鍵要求メッセージ
の処理など、鍵管理サーバ112での暗号処理全般を管
理している。ユーザ入力部114は、最初にユーザ12
3がユーザ鍵を生成する際に、鍵管理アプリケーション
プログラム113からの指示によって、ユーザ123に
ユーザ名とパスワードを入力させるためのものである。
パスワード暗号鍵生成部115は、ユーザ123が入力
したパスワードから暗号鍵を生成するためのものであ
る。ユーザ鍵生成部116は、ユーザ123用の暗号鍵
をランダムに生成するためのものである。暗号化・復号
化部117は、ユーザ123に配布する情報を暗号化し
たり、ユーザ123がユーザ鍵を要求してきた時にやり
取りする電子メッセージを暗号化あるいは復号化したり
するためのものである。鍵管理サーバ112上で動作す
るオペレーティングシステム118は、通信用インタフ
ェース119、記憶装置用インタフェース120を管理
し、ネットワーク122を使った通信や鍵データベース
121へのアクセスなどの環境を、鍵管理アプリケーシ
ョンプログラム113に提供している。鍵データベース
121には、端末101と鍵管理サーバ112とがネッ
トワーク122を使ってやりとりする通信データを暗号
化するためのシステム鍵と、ユーザ123の鍵情報レコ
ードが保存してあり、この鍵情報レコードは、図2に示
すように、ユーザ名201とユーザ鍵202とから構成
されている。
【0024】(ユーザ配布情報の作成)図3は、本シス
テムを使用するためにユーザ123へ配るデータを鍵管
理サーバ112上で作成する手順を示すフローチャート
である。まず、ユーザ入力部114からユーザ名とパス
ワードを入力させる(ステップ301)。次に、パスワ
ード暗号鍵生成部115で、ユーザ123のパスワード
に処理を加えてパスワード暗号鍵を生成する。処理方法
としては、例えば、MD5アルゴリズムのような一方向
関数を用いる(ステップ302)。続いて、ユーザ鍵生
成部116において、ユーザ鍵をランダムに生成する
(ステップ303)。ここで得られたユーザ鍵とユーザ
名から、図2に示すような鍵情報レコードを作成し、鍵
データベース121に保存する(ステップ304)。な
お、図2はユーザ名が「A」であるユーザAの鍵情報レ
コードの例である。次に、ユーザ123が入力したパス
ワードの正しさを検証するための認証トークンを作成す
る(ステップ305)。これは、ユーザが入力したパス
ワードをそのままデータとして保存しておくことはセキ
ュリティ上危険であるため、暗号処理を利用して保存し
ている。例えばUNIX(登録商標)では、「オール
0」のデータをユーザ123のパスワードを鍵として暗
号化して保存しておき、後でユーザ123がパスワード
を入力した際に同じ処理をして認証作業を行っている。
【0025】本実施形態では、すべて「0」の6バイト
データをパスワード暗号鍵で暗号化して図4のような認
証トークンを生成する。図4において、401は、この
認証トークンの所有者を示すユーザ名(ここではユーザ
A)で、402は暗号処理を行った後のデータ値であ
る。続いて、本システムでネットワーク122上を流れ
るデータを暗号化するために使うシステム鍵を、やはり
パスワード暗号鍵で暗号化する(ステップ306)。パ
スワード暗号鍵を使うことで、ユーザ123のパスワー
ドを知っている者だけが、正しいシステム鍵を手に入れ
ることができる。なお、システム鍵は、鍵管理サーバ1
12においてシステムの運用開始時に作成しておく。最
後に、認証トークンと暗号化したシステム鍵とをフロッ
ピーディスクなどにコピーしてユーザ123に渡す(ス
テップ307)。ユーザ123は受け取った情報を、自
分が操作する端末101に接続してある記憶装置111
にコピーして使用することになる。
【0026】(ファイルの暗号化)図5は、ユーザ12
3(ここではユーザA)が端末101上で作成したデー
タを暗号化して記憶装置111に保存する際の手順を示
すフローチャートである。本手順は、ユーザAがアプリ
ケーションプログラム106で作成したデータを記憶装
置111に保存しようとした時に開始する。まず、アプ
リケーションプログラム106がオペレーティングシス
テム108へのファイル保存要求を発行すると、オペレ
ーティングシステム108がその要求を処理する前に、
そのファイル保存要求をファイルアクセスフック部10
7が受け取る(ステップ501)。続いて保存要求があ
ったファイルを暗号化して保存するために、以下のよう
にして管理サーバ112からユーザ鍵を取り寄せる。ま
ず、アプリケーションプログラム106を操作していた
ユーザAのユーザ名とパスワードをユーザ入力部102
からユーザAに入力させる(ステップ502)。次に、
入力されたパスワードからパスワード暗号鍵生成部10
3でパスワード暗号鍵を生成する(ステップ503)。
【0027】端末101は、入力されたパスワードが正
しいかどうか確かめるため、管理サーバ112での認証
トークンの生成と同じ処理を行い、記憶装置111から
読み出した認証トークンと一致するかどうか検証する
(ステップ504)。一致しなれば、ユーザ名とパスワ
ードの入力を繰り返させる。一致した場合は、次の手順
に進む。
【0028】次に、記憶装置111から暗号化してある
システム鍵を読み出し、パスワード暗号鍵を使ってシス
テム鍵を復号する(ステップ505,506)。なお、
記憶装置111から読み出した認証トークンと暗号化シ
ステム鍵は、前もって鍵管理サーバ112において生成
しておいたものである。
【0029】次に、鍵管理サーバ112とメッセージの
交換を行い、ユーザ鍵を取り寄せる。なお、端末101
と鍵管理サーバ112の間で交換するメッセージのフォ
ーマットは、図6に示すようなものである。図6におい
て、601は、メッセージの区別をするためのヘッダ部
であり、「0」であれば端末101から鍵管理サーバ1
12へユーザ鍵を要求するユーザ鍵要求メッセージであ
ることを示し、「1」であれば鍵管理サーバ112から
の返答であることを示すユーザ鍵返答メッセージであ
る。602は、メッセージ中に含まれるデータ本体であ
り、メッセージの種類により内容は異なる。603は、
システム鍵を使ったヘッダ部601とデータ部602の
電子署名である。鍵管理サーバ112からユーザ鍵を取
り寄せるため、端末101ではユーザ鍵要求メッセージ
を作成する(ステップ507)。端末101から鍵管理
サーバ112へ送る情報は、ユーザ名とチャレンジデー
タである。チャレンジデータとは、ユーザ鍵要求メッセ
ージを作成するたびにランダムに選ぶ整数で、鍵管理サ
ーバ112が事前に決めた処理(例えば1を加える)を
したレスポンスデータをユーザ鍵返答メッセージに含め
る決まりにしておくことで、ユーザは受け取った返答メ
ッセージが、直前に出した要求メッセージに対する返答
であることを確認できる。まず、図7に示すようなユー
ザ名701とチャレンジデータ702からなるデータを
構成し、システム鍵で暗号化する。次に図8のように、
ヘッダ部801にメッセージがユーザ鍵要求メッセージ
であることを示す値「0」と、データ部802にユーザ
名とチャレンジデータを暗号化した情報からなるデータ
の電子署名803とから構成されたユーザ鍵要求メッセ
ージを生成する。そして生成したユーザ鍵要求メッセー
ジを鍵管理サーバ112に送り、返答メッセージが送り
返されるのを待つ。
【0030】この後、鍵管理サーバ112はユーザ鍵要
求メッセージを処理し、ユーザ鍵返答メッセージを作成
して端末101に送り返してくるが(ステップ50
8)、この手順の詳細は図13を用いて後述する。端末
101では、送り返されてきたユーザ鍵返答メッセージ
を受け取ると(ステップ509)、まず、転送途中での
改変がなかったか、返答メッセージに含まれている電子
署名を検査する(ステップ510)。ここでメッセージ
の改変があったことが分かると、ファイルの保存命令を
出したアプリケーションプログラム106に保存の失敗
を知らせ終了する(ステップ521)。改変がない場合
には次の手順に進む。ユーザ鍵返答メッセージのデータ
部はシステム鍵で暗号化されているので、システム鍵で
復号する(ステップ511)。
【0031】ところで、ユーザ鍵返答メッセージには、
ユーザ鍵を含むものと、鍵管理サーバ112で何らかの
エラーが発生したためにユーザ鍵を含まないものの2種
類があり、返答メッセージのデータ部の内容が異なって
いる。このデータ部の暗号化される前の内容は図9ある
いは図10のようになっている。図9は、ユーザ鍵が返
されてきた場合の内容であり、ユーザ名901、レスポ
ンスデータ902、ユーザ鍵が含まれていることを示す
値「0」903、ユーザ鍵904を含んでいる。図10
は、何らかのエラーによりユーザ鍵が返されなかった場
合の内容で、ユーザ名1001、レスポンスデータ10
02、何らかのエラーが発生したことを示す値「1」1
003を含んでいる。ここで1003には、エラーの具
体的な種類を示すために「0」以外のどんな値を含めて
もよい。なお、ユーザ鍵返答メッセージに含めるレスポ
ンスデータは、ユーザ鍵要求メッセージに含まれていた
チャレンジデータの値に「1」を加えたものとする。端
末101は、ユーザ鍵返答メッセージのデータ部を復号
した後、ユーザ鍵の有無を検査する(ステップ51
2)。ユーザ鍵を含んでいない場合は、ファイルを暗号
化して保存することができないので、保存の失敗をアプ
リケーションプログラム106に知らせて(ステップ5
21)終了する。ユーザ鍵が含まれていた場合には、実
際にファイルを暗号化する手順に進む。
【0032】ここで新規ファイルへの書き込みであれ
ば、ファイル暗号鍵とファイル初期化データをランダム
に生成する(ステップ519)。そしてファイル暗号鍵
をユーザ鍵で暗号化した後、暗号化したファイル暗号鍵
とファイル初期化データを新規ファイルのヘッダとして
保存して(ステップ520)、次の手順に進む。ファイ
ル暗号鍵は、ファイルを分割したレコードごとに用意す
る暗号鍵を生成するために使う。ファイル初期化データ
は、レコードごとの初期化データを生成するために使
う。
【0033】もし既存ファイルへの書き込みであれば、
書き込み対象のファイルのヘッダから暗号化されたファ
イル暗号鍵とファイル初期化データを読み込む(ステッ
プ514)。そして、暗号化されたファイル暗号鍵をユ
ーザ鍵で復号化してファイル暗号鍵を得る(ステップ5
15)。次に、書き込み要求のあったデータを暗号化す
る(ステップ516)。なお、暗号化の手順の詳細は図
14で説明する。
【0034】上記のようにして得た暗号化されたデータ
は、アプリケーションプログラム106の書き込み要求
に対応した暗号化ファイル内の位置に書き込む。そし
て、暗号化されたファイル暗号鍵を1101、ファイル
初期化データを1102、暗号化されたファイル本体を
1103とし、ユーザ鍵を使ってこれらの署名を生成し
たものを1104として図11に示すような暗号化ファ
イル1100を作成し、記憶装置111に保存する。従
って、記憶装置111には、アプリケーションプログラ
ム106が生成したファイルを暗号化した暗号化ファイ
ル本体1103に対し、ファイル暗号鍵を暗号化したデ
ータ1101、ファイル初期化データ1102と署名1
104が付加されて記憶されることになる。最後に、保
存の終了をファイルの保存要求を出したアプリケーショ
ンプログラム106に知らせ(ステップ518)、本手
順を終了する。
【0035】(ファイルの復号化)図12は、ユーザA
が記憶装置111に保存してある暗号化データを端末1
01上で動作するアプリケーションプログラム106で
読み出す際の手順を示すフローチャートである。本手順
は、ユーザAが以前に暗号化して記憶装置111に保存
したデータをアプリケーションプログラム106に読み
込もうとした時に開始する。アプリケーションプログラ
ム106がオペレーティングシステム108へのファイ
ル読み出し要求を発行すると、オペレーティングシステ
ム108がその要求を処理する前に、そのファイル読み
出し要求ファイルアクセスフック部107が受け取る
(ステップ1201)。ファイルアクセスフック部10
7は、読み出し要求で指定されたファイルを読み出すよ
うにオペレーティングシステム108に指示し、記憶装
置111から記憶装置用インタフェース109を介し
て、暗号化されているファイルを読み出す(ステップ1
202)。
【0036】次に、読み込んだファイルを復号するため
に、ファイルを暗号化する際と同様の手順でユーザの認
証を行い、鍵管理サーバ112からユーザ鍵を取り寄せ
る。このユーザ鍵を取り寄せるまでの手順に相当するス
テップ1203〜1213は、図5のステップ502〜
512と全く同様である。この際に、鍵管理サーバ11
2からのユーザ鍵返答メッセージの改変を検知したり
(ステップ1211)、あるいはユーザ鍵を得ることが
できなかった場合には(ステップ1213)、読み込ん
だファイルを復号することができないので、読み出しの
失敗をアプリケーションプログラム106に知らせて
(ステップ1219)本手順を終了する(ステップ12
18)。ユーザ鍵を得ることができた場合のみ、以下の
ようにして暗号化したファイルを復号する。ここで読み
込み対象のファイルは図11に示すようなフォーマット
であり、1101はファイル暗号鍵をユーザ鍵で暗号化
したもの、1102はファイル初期化データ、1103
は暗号化されたファイル本体、1104はこれら3つの
データ1101〜1103のユーザ鍵による電子署名で
ある。
【0037】図12において、ユーザ鍵が含まれていた
場合、暗号化ファイルが改変されていないか、署名11
04の確認を行なう(ステップ1214)。ここで改変
されていることがわかったら、ファイル読み出しの失敗
をアプリケーションプログラム106に通知して(ステ
ップ1219)本手順を終了する。改変されていなけれ
ば、まず暗号化ファイルから暗号化されたファイル暗号
鍵1101とファイル初期化データ1102を読み込む
(ステップ1215)。
【0038】次に、鍵管理サーバ112から得たユーザ
鍵を使い、暗号化ファイル暗号鍵1101を復号し、元
のファイル暗号鍵を得る(ステップ1216)。続い
て、暗号化されているファイル本体1103からアプリ
ケーションプログラム106の要求に対応した暗号化デ
ータを読み込み、復号して得たファイル暗号鍵を使って
復号する(ステップ1217)。なお、復号の手順の詳
細は図19で説明する。最後に、復号して得たデータを
アプリケーションプログラム106に渡して(ステップ
1218)本手順を終了する。
【0039】(鍵管理アプリケーションプログラムの処
理)図13は、鍵管理サーバ112上で動作する鍵管理
アプリケーションプログラム113が、端末101から
のユーザAのユーザ鍵要求を処理する際の手順を示すフ
ローチャートである。本手順は、ファイルアクセスフッ
ク部107からのユーザ鍵要求メッセージを受け取って
開始する。鍵管理アプリケーションプログラム113が
受け取るユーザ鍵要求メッセージは、図8に示したよう
なフォーマット構成になっている。鍵管理アプリケーシ
ョンプログラム113は、端末101からユーザ鍵要求
メッセージを受け取ると(ステップ1301)、最初
に、メッセージに改変がなかったか調べるため、鍵デー
タベース121にあらかじめ保存してあるシステム鍵を
読み込み(ステップ1302)、要求メッセージ中の電
子署名を確認する(ステップ1303)。もし改変があ
れば、以下に述べるユーザ鍵を鍵データベース121か
ら取り出す作業を行わない。
【0040】ユーザ鍵を鍵データベース121から取り
出すには、まず暗号化・復号化部117において、ユー
ザ鍵要求メッセージをシステム鍵で復号し、図7に示し
たうなユーザ名701とチャレンジデータ702を取り
出す(ステップ1304)。次に、ここで得たユーザ名
を含む鍵情報レコードを鍵データベース121から取り
出す。図2の示すような鍵情報レコードが見つかれば、
ユーザ鍵202を取り出す(ステップ1305)。
【0041】以上のようにして、ユーザ鍵要求メッセー
ジの改変検査とユーザ鍵の取り出しを終えた後、端末1
01に返答するユーザ鍵返答メッセージを作成する(ス
テップ1306)。ここで、返答メッセージに含めるレ
スポンスデータは、要求メッセージに含まれていたチャ
レンジデータに「1」を加えた値であるが、ユーザ鍵を
得ることができたかどうかで返答メッセージのデータ部
に含める内容が変わる。 ユーザ鍵を得た場合には、図
9に示したようにユーザ名901、レスポンスデータ9
02、ユーザ鍵を含んでいることを示す値「0」90
3、ユーザ鍵904から成るデータを暗号化・復号化部
117上でシステム鍵を使い暗号化したものを、ユーザ
鍵返答メッセージのデータ部に含める。ユーザ鍵を得る
ことができなかった場合には、図10に示したようにユ
ーザ名1001、レスポンスデータ1002、ユーザ鍵
を含んでいないことを示す値「1」から成るデータを暗
号化・復号化部117上でシステム鍵を使い暗号化した
ものを、ユーザ鍵返答メッセージのデータ部に含める。
ユーザ鍵返答メッセージの署名部には、ユーザ鍵返答メ
ッセージであることを示す値「1」を持つヘッダ部と、
上記のように作成したデータ部からなるデータを、シス
テム鍵を使って作成した署名を含める。以上のようにし
て作成したユーザ鍵返答メッセージを端末101に送り
(ステップ1307)、本手順を終了する。
【0042】(暗号化詳細手順)図14は、アプリケー
ションプログラム106から書き込み要求のあったデー
タを暗号化する際の詳細手順を示すフローチャートであ
る。本手順は、ファイル暗号鍵、ファイル初期化デー
タ、書き込み要求データを用意できた時点で開始する。
【0043】図15は、アプリケーションからの書き込
み要求である。1501は書き込み開始位置、1502
は書き込みデータの長さ、1503は書き込みデータで
ある。図15の書き込み要求では、ファイル内の位置1
800から2799までの間に1503の書き込みデー
タを書き込むことを要求している。図14において、ま
ず、書き込み要求を行なったアプリケーションプログラ
ムに対応するレコード長をレコードサイズ記憶部から読
み込む(ステップ1401)。レコードサイズ記憶部1
24は、図16に示すように、表計算プログラムやワー
プロプログラムなどの各種のアプリケーションプログラ
ム1601ごとのレコードサイズ1602を保存してあ
る。もし、対応するレコード長が記録されていなかった
ら、レコードサイズ記憶部124の最後に記録されてい
るデフォルトの長さを読み込む。ここでは、書き込み要
求を行なったアプリケーションプログラムに対応する長
さとして「512」を読み込むものとする。
【0044】もし、レコードサイズ記憶部124にレコ
ード長が記録されていなかったら、ここでアプリケーシ
ョンプログラムからの書き込み要求に含まれる、ファイ
ル内の書き込み要求位置1501と書き込みデータの長
さ1502を、このアプリケーションプログラム用のア
クセス情報記憶部125に保存する(ステップ140
3)。
【0045】アクセス情報記憶部125は、図17に示
すように、書き込み、読み込み要求があるたびにその開
始位置1701と書き込みデータの長さ1702をアプ
リケーションプログラムごとに記録したもので、複数記
憶しておくことができる。図17では、図15の書き込
み要求をアクセス情報記憶部125に保存した場合の様
子を示している。ここで記録したデータは、一定時間後
に暗号する際のレコード長を求めるために使う。
【0046】次に、書き込み要求の開始位置をレコード
長で割り算し、その商をファイルの何番目のレコードへ
の書き込みであるかを示すレコードインデックス値とす
る(ステップ1404)。もし、複数のレコードにまた
がる書き込みであれば、すべてのレコードについて計算
しておく。図15に示す書き込み要求からレコードイン
デックスを求めると、書き込み開始位置「1800」を
レコード長「512」で割った商は3、書き込み終了位
置2799を512で割った商は5であるので、求める
レコードインデックス値は「3」、「4」、「5」であ
る。
【0047】続いて、書き込み先のレコード用のレコー
ド暗号鍵を、そのレコードのインデックス値とファイル
暗号鍵を使って計算する(ステップ1405)。もし、
レコードの先頭から書き込み要求を行なう必要があれ
ば、そのレコード用の初期化データをファイル初期化デ
ータとレコードインデックス値から求める。これらの計
算方法としては、例えば2つのデータを連結してハッシ
ュ関数による演算を行なう方法が考えられる。図15の
書き込み要求の場合、レコード3の途中からレコード5
の途中までの書き込み要求であるので、「レコード3」
のレコード暗号鍵の計算、および「レコード4」、
「5」のレコード暗号鍵と初期化データの計算を行う。
【0048】次に、書き込むデータがすでにファイル内
に保存されているデータの上書きであるかどうか検査す
る(ステップ1406)。ここで上書きでなければ、書
き込みデータを暗号化用バッファにコピーし暗号化ステ
ップに進む(ステップ1411)。もし上書きであれ
ば、書き込み開始位置で暗号連鎖処理に必要な部分と再
暗号化が必要な部分をファイルから暗号化用バッファに
読み込む(ステップ1407)。暗号連鎖処理に必要な
部分とは、書き込み開始位置でデータを暗号化する際に
連鎖処理で使う暗号文のことで、書き込み開始位置の直
前の暗号文であり、その長さは暗号連鎖処理の方法によ
って異なる。書き込み開始位置がレコードの先頭であれ
ば、暗号連鎖処理に必要な部分としてレコード初期化デ
ータを用いるので、書き込み開始位置の直前部分をファ
イルから読み込む必要はない。本実施例における暗号連
鎖処理に必要となる長さを「8」とすると、図15の書
き込み要求における暗号連鎖処理に必要な部分とは、フ
ァイル内の位置「1792」から「1799」までの暗
号文である。また、再暗号化が必要な部分とは、データ
の上書きによって暗号連鎖処理をやり直す必要のある部
分のことで、書き込み終了位置の直後からこの書き込み
終了位置を含むレコードの最後までである。図15の書
き込み要求における再暗号化が必要な部分は、ファイル
内の書き込み終了位置の直後「2800」から、この書
き込み終了位置を含む「レコード5」の最後の位置「3
071」までである。図18に、ファイル内における、
暗号連鎖処理に必要な部分と再暗号化が必要となる部分
を示す。
【0049】続いて、暗号化用バッファ上にある再暗号
化が必要な部分を、対応するレコード暗号鍵を使って復
号しておく(ステップ1408)。図15の書き込み要
求では、「レコード5」のレコード暗号鍵を使って復号
する。そして、書き込み要求データを再暗号化のために
復号したデータとつなげて暗号化用バッファ上に書き込
む(ステップ1409)。
【0050】最後に、暗号化用バッファ上に暗号化する
データが用意できたら、そのデータに対応するレコード
用の暗号鍵とファイルから読み込んだ暗号連鎖処理に必
要なデータ、初期化データを使って暗号化して(ステッ
プ1410)本手順を終了する。
【0051】(復号化詳細手順)図19は、アプリケー
ションプログラムから読み込み要求のあったデータを読
み込んで復号する際の詳細手順を示すフローチャートで
ある。本手順は、ファイル暗号鍵、ファイル初期化デー
タを用意できた時点で開始する。図20は、アプリケー
ションからの読み込み要求である。2001は読み込み
開始位置、2002は読み込みデータの長さである。
【0052】図19において、まず、書き込み要求の時
と同様に、読み込み要求を行なったアプリケーションプ
ログラムに対応するレコード長をレコードサイズ記憶部
から読み込む(ステップ1901)。もし、対応するレ
コード長がなければデフォルトの値を読み込み(ステッ
プ1902)、読み込み開始位置2001とその長さ2
002をこのアプリケーションプログラム用のアクセス
情報記憶部125に記録する(ステップ1903)。レ
コードインデックスの計算とレコード用の暗号鍵、初期
化データの計算も、書き込み要求の場合と同様に行なう
(ステップ1904,1905)。
【0053】続いて、読み込み要求に対応するレコード
をファイルから読み込み、レコード用暗号鍵、初期化デ
ータを使って復号して(ステップ1906)、本手順を
終了する。
【0054】(レコード長の計算)図21は、レコード
長を計算する際の詳細手順を示すフローチャートであ
る。本手順は、あるアプリケーションプログラムにおい
て、アクセス情報記憶部125に記録したアクセス情報
が一定件数(例えば100件)を越えた時に開始する。
ここで、レコード長としては2のべき乗を候補とする。
アプリケーションプログラムやオペレーティングシステ
ムのファイルアクセス単位、記憶装置上の物理的な記録
単位は、処理の単純化のために2のべき乗の数を使う例
が多いためである。なお、この手順を始める前に、暗号
化速度、復号化速度、レコード用の暗号鍵の生成にかか
る時間、初期化データの生成にかかる時間を求めてお
く。
【0055】図21において、まず、アクセス情報記憶
部125に記録したアクセス長の平均値を求める(ステ
ップ2102)。ここで、平均アクセス長として「14
0」バイトが得られたものとする。次に、平均アクセス
長を超える一番小さい2のべき乗数を求める(ステップ
2102)。今回の例では「256」である。
【0056】続いて、レコード長を仮に1、2、4、
…、と2のべき乗数として以下の手順を行ない、それぞ
れの場合の平均書き込みオーバヘッド時間を求める(ス
テップ2103)。仮のレコード長の上限は、前の手順
で求めた、平均アクセス長を超える一番小さい2のべき
乗数である。今回の例では、「256」である。
【0057】それぞれの仮レコード長について行なう計
算は以下の通りである。まず、書き込み時に再暗号化処
理の必要となる長さの平均、および1回のアクセスにつ
きレコード用暗号鍵と初期化データの計算が平均何回あ
るかを求める。再暗号化処理に必要な長さは、図18に
示すような部分のことである。平均再暗号化処理長は、
各アクセス長について「数1」に示す式で求めた値の平
均値である。
【0058】
【数1】
【0059】平均計算回数は、各アクセス位置とアクセ
ス長の組について「数2」に示す式で求めた値の平均値
である。なお、「数1」、「数2」の中で使用している
記号の意味は図22に示す通りである。また、「L%
R」とは、「L/Rの余り」のことである。
【0060】
【数2】
【0061】次に、上のようにして求めた平均再暗号化
処理長と平均計算回数、および暗号化処理速度、復号化
処理速度、レコード用暗号鍵の生成にかかる時間、初期
化データの生成にかかる時間から、「数1」、「数2」
の計算に用いた仮レコード長を使った時の平均書き込み
オーバヘッド時間は「数3」に示す式を用いて得ること
ができる。
【0062】
【数3】
【0063】ここで、「数3」中の(平均再暗号化処理
長)/(復号化速度)は、ファイルから読み込んだ再暗
号化処理が必要な部分を復号化するのにかかる時間の平
均である。また、(平均再暗号化処理長)/(暗号化速
度)は、再暗号化処理が必要な部分を暗号化するのにか
かる時間の平均である。また、{ … }×(平均計算回
数)は、レコードごとに用意するレコード鍵と初期化デ
ータを計算するのにかかる時間の平均である。これら3
つの式の和を求めると、書き込みオーバヘッド時間の平
均になる。
【0064】このようにしてそれぞれの仮レコード長に
ついて求めた平均書き込みオーバヘッド時間のうち、そ
の最少値を与える仮レコード長を選ぶ(ステップ210
4)。これが書き込み時のオーバヘッドを最少にするレ
コード長である。最後に、アプリケーションプログラム
と選んだレコード長を組にしてレコードサイズ記憶部1
24に書き込む(ステップ2105)。
【0065】以上のように本実施形態においては、端末
101のアプリケーションプログラム106からオペレ
ーティングシステム108へ発行する記憶装置111へ
のデータ読み込み・書き出し要求を横取りし、書き出し
要求の際にはデータを暗号化するための暗号鍵をネット
ワーク122で接続している鍵管理サーバ112から取
り寄せ、この暗号鍵でデータを暗号化して記憶装置11
1に保存し、また、読み込み要求の際には記憶装置11
1から暗号化データを読み出し、この暗号化データを復
号するための鍵を鍵管理サーバ112から取り寄せ、こ
の暗号鍵で暗号化データを復号して取り出した元のデー
タをアプリケーションプログラム106に渡すようにし
たため、暗号化や復号化の指示をユーザが明示的に行う
ことなしに記憶装置111に保存するデータを自動的に
暗号化し、読み出す時には自動的に復号することがで
き、煩わしい操作をユーザに強いることがないという効
果が得られる。また、記憶装置111に保存するデータ
を自動的に保存するので、ユーザがデータの暗号化を忘
れるという問題も起きない。
【0066】また、鍵管理サーバ1112に対して暗号
鍵を送ってもらう要求を出す前に、アプリケーションプ
ログラム106を操作しているユーザに対してそのユー
ザを識別するための情報を入力させ、この情報の正しさ
をユーザが操作している端末101で確認した後にユー
ザの鍵を鍵管理サーバ112から取り寄せる、あるいは
ユーザが入力した識別情報を鍵管理サーバ112に送
り、鍵管理サーバ112で受け取った識別情報の正しさ
を確認した後にそのユーザの暗号鍵を送り返すようにし
ているため、暗号化した機密データを保存してある携帯
用の端末が盗まれたとしても、解読される危険性はこれ
らのデータが同一の記憶装置に保存されている場合に比
べて小さくなり、データの機密性をさらに高めることが
できる。例えば、携帯用端末に暗号化データを保存して
おき、社内でそのデータにアクセスしたい時は社内LA
Nに接続し、社外からは社内ネットワークへリモートア
クセスして利用するようにしておけば、この携帯端末を
不正に入手したユーザは、ユーザの識別情報を類推する
だけでなく、リモートアクセス時のユーザ認証作業も行
う必要があるので安全性がより高くなる。また、社内で
は携帯用端末を鍵管理サーバと同じネットワークに接続
して重要データの編集や閲覧が可能なように構成でき、
社外では鍵管理サーバが存在しないので、そのデータに
アクセスできなくさせるように構成することができ、セ
キュリティを高めることができる。
【0067】さらに、アプリケーションプログラム10
6からオペレーティングシステム108へのデータ読み
出し・書き込み要求を横取りするための仕組みは、オペ
レーティングシステム108が提供している場合には、
既存のアプリケーションプログラムやオペレーティング
システムを書き換える必要がなく、しかも新たにハード
ウェアを置き換える必要もなく、最小限のコストでデー
タのセキュリティを高めることが可能である。さらに、
ICカードにユーザ固有の暗号鍵を記録しておいて各ユ
ーザ自身で暗号鍵を管理させる方法も考えられるが、I
Cカード自体の紛失によりデータの復号が不可能になっ
たり、ICカードの読み書き機構を端末101に付加し
ておく必要があるので、コスト面で不利となる。しか
し、本実施形態のように暗号鍵を鍵管理サーバ112か
ら取り寄せるようにすることにより、ICカードの読み
書き機構を備えていない端末であっても利用することが
できるという利点がある。
【0068】なお、本実施形態では、ファイルの暗号化
に際し、ユーザ鍵をそのまま使わずにファイル暗号鍵を
その都度生成しているが、ユーザ鍵でファイル自体を直
接に暗号化してもよい。また、ファイルを保存あるいは
読み出すたびにユーザに対してユーザ名とパスワードを
入力させているが、これらの情報を端末101のメモリ
に一時的に保存しておいて、次回のファイル保存、読み
出しの際にはこの一時保存してあるユーザ名とパスワー
ドを使って鍵管理要求を生成するように構成することに
より、ユーザの入力操作をさらに簡略化することができ
る。さらに、取り寄せたユーザ鍵自体をメモリ上に一時
保存し後で再利用する構成にすることにより、端末10
1と鍵管理サーバ112間の通信を行わずに済み、通信
のオーバヘッドを省いて処理スピードを速めることがで
き、ネットワーク122のトラフィックを減らすことも
できる。
【0069】また、予めユーザがファイル保存の際には
自動的に暗号化して欲しいファイルやディレクトリを指
定するように構成することで、指定したファイルあるい
は指定したディレクトリ以下にあるファイルだけに対し
て、暗号化や復号化を行うことができる。これにより、
暗号化して保存する場所としてフロッピーディスクのよ
うな記憶媒体を表わすディレクトリも指定できるので、
重要な情報をコピーされて持ち出されることを防ぐこと
もできる。
【0070】さらに、端末101および鍵管理サーバ1
12において実施形態で説明したような機能を実現する
各機能部分は、具体的には同等機能を実現する処理プロ
グラムで構成されるものであり、これらの処理プログラ
ムはCDROMなどの記憶媒体に格納して、あるいはイ
ンタネット等の通信媒体を通じて利用者に提供すること
ができるものである。
【0071】また、本実施形態では、レコードごとに暗
号鍵と初期化データを計算していたが、読み書き時の速
度を高速化するためにファイル暗号鍵とファイル初期化
データをそのまま使ってもよい。この場合、本実施形態
に比べて暗号化ファイルの安全性が少し失われることに
なる。また、レコード長の計算方法も変える必要があ
る。
【0072】レコード長を決めるためにアプリケーショ
ンのアクセス長だけでなく、オペレーティングシステム
によるファイルアクセスへのキャッシュの単位や、記憶
装置上でのデータの記録単位(例えばセクタ長)を使う
こともできる。また、レコード長を求める時に、読み書
きのアクセス記録の両方を使って平均書き込み時間を求
めたが、厳密に読み書きを区別して計算してもよい。こ
のためには、アクセス情報記憶部に読み書きを区別する
欄を設ければよい。また、レコード長はアプリケーショ
ンプログラム用のレコード長が求まっていない時だけで
なく、例えば一週間に一回というように定期的に計算し
てもよい。
【0073】また、レコード長を求めた結果、その値が
それまで使っていたレコード長と異なる値になった場
合、既存のファイルを暗号化し直せばよい。また、暗号
化ファイルにレコード長を記憶しておく領域を設けてお
くことで、そのファイルを暗号化する際のレコード長を
保存して置くことができる。このようにすれば、アプリ
ケーションプログラムに最適なレコード長が変わった時
に、既存の暗号化ファイルを新しいレコード長の値を使
って簡単に暗号化し直すことが可能である。
【0074】
【発明の効果】以上のように本発明によれば、暗号化や
復号化の指示をユーザが明示的に行うことなしに記憶装
置に保存するデータを自動的に暗号化し、読み出す時に
は自動的に復号することができ、煩わしい操作をユーザ
に強いることがないという効果が得られる。また、記憶
装置に保存するデータを自動的に保存するので、ユーザ
がデータの暗号化を忘れるという問題も起きない。
【0075】また、自動的に暗号化・復号化する際に問
題となる、データ上書き時の再暗号化処理や初期化デー
タ生成処理のオーバヘッドも最小化できるので、このよ
うな最適化を行なわない場合に比べてデータ上書き処理
を高速化できる。
【図面の簡単な説明】
【図1】本発明を適用したコンピュータシステムの実施
形態を示すシステム構成図である。
【図2】ユーザに配布する鍵情報レコードの構成図であ
る。
【図3】ユーザ配布情報作成手順を示すフローチャート
である。
【図4】認証トークンの構成図である。
【図5】ファイル暗号化手順を示すフローチャートであ
る。
【図6】端末と鍵管理サーバとの間で送受されるメッセ
ージのフォーマット構成図である。
【図7】ユーザ鍵要求メッセージデータ部に含まれる元
の内容を示す図である。
【図8】ユーザ鍵要求メッセージの構成図である。
【図9】ユーザ鍵返答メッセージデータ部に含まれる元
の内容(ユーザ鍵あり)を示す図である。
【図10】ユーザ鍵返答メッセージデータ部に含まれる
元の内容(ユーザ鍵なし)を示す図である。
【図11】記憶装置に記憶される暗号化ファイルの構成
図である。
【図12】ファイル復号化手順を示すフローチャートで
ある。
【図13】鍵管理アプリケーションの処理手順を示すフ
ローチャートである。
【図14】暗号化の詳細手順を示すフローチャートであ
る。
【図15】アプリケーションプログラムからの書き込み
要求の構成図である。
【図16】レコードサイズ記憶部を表す図である。
【図17】アクセス情報記憶部を表す図である。
【図18】書き込み要求の実行によってファイル上に上
書きされる範囲と再暗号化処理の必要となる範囲を表す
図である。
【図19】復号化の詳細手順を示すフローチャートであ
る。
【図20】アプリケーションプログラムからの読み込み
要求の構成図である。
【図21】レコード長を求める手順を示すフローチャー
トである。
【図22】計算式に使われている記号の説明図である。
【符号の説明】
101…端末、102…ユーザ入力部、103…パスワ
ード暗号鍵生成部、104…ファイル暗号鍵生成部、1
05…暗号化・復号化部、106…アプリケーション、
107…ファイルアクセスフック部、108…オペレー
ティングシステム、109…記憶装置用インタフェー
ス、110…通信用インタフェース、111…記憶装
置、112…鍵管理サーバ、113…鍵管理アプリケー
ション、114…ユーザ入力部、115…パスワード暗
号鍵生成部、116…ユーザ鍵生成部、117…暗号化
・復号化部、118…オペレーティングシステム、11
9…通信用インタフェース、120…記憶装置用インタ
フェース、121…鍵データベース、122…ネットワ
ーク、123…ユーザ、124…レコードサイズ記憶
部、125…アクセス情報記憶部。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考)

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 記憶装置と、アプリケーションプログラ
    ムから前記記憶装置へのデータ読み出し・書き込み要求
    を横取りするファイルフック手段を有し、前記アプリケ
    ーションプログラムに従った処理を実行するコンピュー
    タとを備え、前記アプリケーションプログラムが処理し
    たデータを前記記憶装置に書き込んで保存するデータの
    保存方法において、 前記アプリケーションプログラムからのデータの書き込
    み要求に対し、該書き込み要求を前記ファイルフック手
    段によって横取りし、前記オペレーティングシステムが
    書き込み対象となるデータを前記記憶装置に書き込む前
    に、当該コンピュータの内部メモリに記憶した暗号鍵に
    より予め設定したレコード長単位で暗号化して前記記憶
    装置に書き込み、 前記アプリケーションプログラムからの読み出し要求に
    対しては、該読み出し要求を前記ファイルフック手段に
    よって横取りし、前記アプリケーションプログラムに読
    み出しデータを転送する前に、前記オペレーティングシ
    ステムに前記記憶装置から暗号化されたデータをレコー
    ド単位で読み出させた後に、前記内部メモリに記憶した
    暗号鍵で前記暗号化されたデータを予め設定したレコー
    ド長単位で復号し、復号されたデータを読み出し要求を
    行なった前記アプリケーションプログラムに転送するこ
    とを特徴とするデータの保存方法。
  2. 【請求項2】 前記記憶装置内において、ユーザが予め
    指定したファイル内のデータのみ、あるいは指定したデ
    ィレクトリ内にある全てのファイルのデータのみに対し
    て、暗号化または復号化を行うことを特徴とする請求項
    1に記載のデータ保存方法。
  3. 【請求項3】 前記レコード長単位は、アプリケーショ
    ンプログラム毎に設定することを特徴とする請求項2に
    記載のデータの保存方法。
  4. 【請求項4】 アプリケーションプログラムによるファ
    イルアクセス時のアクセス情報を記録し、前記アクセス
    情報をもとに算出した平均アクセス長を超える仮レコー
    ド長を設定し、それぞれの仮レコード長についてオーバ
    ヘッド時間を算出し、その算出結果が最小となるものを
    前記レコード長とすることを特徴とする請求項2に記載
    のデータ保存方法。
  5. 【請求項5】 前記レコード長をオペレーティングシス
    テムによるファイルアクセス時のキャッシュ単位とする
    ことを特徴とする請求項2に記載のデータ保存方法。
  6. 【請求項6】 前記レコード長を、記憶装置内でのデー
    タの記録単位とすることを特徴とする請求項2に記載の
    データ保存方法。
  7. 【請求項7】 前記暗号鍵は、コンピュータを操作する
    ユーザの認証時に鍵管理コンピュータから取得したもの
    であることを特徴とする請求項2〜6のいずれか一項に
    記載のデータ保存方法。
  8. 【請求項8】 前記暗号鍵は、コンピュータを操作する
    ユーザの認証時に鍵管理コンピュータから取得した第1
    の暗号鍵であり、保存対象データの暗号化に際しては、
    前記第1の暗号鍵によってコンピュータ内部で生成した
    第2の暗号鍵を暗号化した暗号化暗号鍵を作成し、さら
    に前記第1の暗号鍵によって書き込み対象のデータを暗
    号化した暗号化データ本体を作成し、この暗号化データ
    本体に前記暗号化暗号鍵を付加して前記記憶装置に書き
    込み、 復号に際しては、第1の暗号鍵によって前記暗号化暗号
    鍵を復号し、その復号により得られた第2の暗号鍵を用
    いて前記暗号化データ本体を復号することを特徴とする
    請求項2〜6のいずれか一項に記載のデータ保存方法。
  9. 【請求項9】 アプリケーションプログラムに従った処
    理を実行するコンピュータと、該コンピュータに接続さ
    れた記憶装置とを備えたコンピュータシステムにおいて
    前記アプリケーションプログラムが処理したデータを前
    記記憶装置に書き込んで保存するためのデータ保存処理
    用プログラムを記録した記録媒体であって、 前記アプリケーションプログラムから前記コンピュータ
    のオペレーティングシステムへ発行する前記記憶装置へ
    のデータ読み出し・書き込み要求を横取りするファイル
    フック処理と、 前記アプリケーションプログラムからのデータの書き込
    み要求に対し、該書き込み要求を前記ファイルフック手
    段によって横取りし、前記オペレーティングシステムが
    書き込み対象となるデータを前記記憶装置に書き込む前
    に、当該コンピュータの内部メモリに記憶した暗号鍵に
    より予め設定したレコード長単位で暗号化して前記記憶
    装置に書き込む第1の処理と、 前記アプリケーションプログラムからの読み出し要求に
    対しては、該読み出し要求を前記ファイルフック手段に
    よって横取りし、前記アプリケーションプログラムに読
    み出しデータを転送する前に、前記オペレーティングシ
    ステムに前記記憶装置から暗号化されたデータをレコー
    ド単位で読み出させた後に、前記内部メモリに記憶した
    暗号鍵で前記暗号化されたデータを予め設定したレコー
    ド長単位で復号し、復号されたデータを読み出し要求を
    行なった前記アプリケーションプログラムに転送する第
    2の処理と、から成るデータ保存処理用プログラムが記
    録されていることを特徴とするデータ保存処理用記録媒
    体。
JP2000175873A 1997-09-12 2000-06-12 データの保存方法およびシステム並びにデータ保存処理用記録媒体 Expired - Fee Related JP3741357B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000175873A JP3741357B2 (ja) 1997-09-12 2000-06-12 データの保存方法およびシステム並びにデータ保存処理用記録媒体

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-247379 1997-09-12
JP24737997 1997-09-12
JP2000175873A JP3741357B2 (ja) 1997-09-12 2000-06-12 データの保存方法およびシステム並びにデータ保存処理用記録媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP19996698A Division JP3516591B2 (ja) 1997-09-12 1998-07-15 データの保存方法およびシステム並びにデータ保存処理用記録媒体

Publications (2)

Publication Number Publication Date
JP2001027964A true JP2001027964A (ja) 2001-01-30
JP3741357B2 JP3741357B2 (ja) 2006-02-01

Family

ID=17162560

Family Applications (2)

Application Number Title Priority Date Filing Date
JP19996698A Expired - Lifetime JP3516591B2 (ja) 1997-09-12 1998-07-15 データの保存方法およびシステム並びにデータ保存処理用記録媒体
JP2000175873A Expired - Fee Related JP3741357B2 (ja) 1997-09-12 2000-06-12 データの保存方法およびシステム並びにデータ保存処理用記録媒体

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP19996698A Expired - Lifetime JP3516591B2 (ja) 1997-09-12 1998-07-15 データの保存方法およびシステム並びにデータ保存処理用記録媒体

Country Status (1)

Country Link
JP (2) JP3516591B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226225A (ja) * 2007-03-12 2008-09-25 Teruten Inc Drmコンテンツ再生方法及びその装置
JP2010039567A (ja) * 2008-07-31 2010-02-18 Toshiba Corp 配布装置および管理装置
JP2012118947A (ja) * 2010-12-03 2012-06-21 Ricoh Co Ltd 組み込み機器、暗号化・復号方法、プログラム
KR101889062B1 (ko) 2018-02-28 2018-08-17 (주)케이포스트 보안파일 생성서버 및 생성방법

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3516591B2 (ja) * 1997-09-12 2004-04-05 日立ソフトウエアエンジニアリング株式会社 データの保存方法およびシステム並びにデータ保存処理用記録媒体
JP2000031956A (ja) * 1998-07-15 2000-01-28 Nippon Telegr & Teleph Corp <Ntt> 個別秘密情報共有交信方法及びシステム装置
JP4366620B2 (ja) * 1999-12-15 2009-11-18 横河電機株式会社 エージェントベース生産システム
JP3606148B2 (ja) * 2000-01-06 2005-01-05 日本電気株式会社 デジタルコンテンツ利用制御方法及びそのシステム
KR100381010B1 (ko) * 2000-12-28 2003-04-26 한국전자통신연구원 보안 서비스 제공을 위한 인터넷 키교환 서버 장치 및그를 이용한 보안 서비스 제공방법
JP2004046685A (ja) * 2002-07-15 2004-02-12 Lecip Corp 取引システム及びその方法
US7143288B2 (en) * 2002-10-16 2006-11-28 Vormetric, Inc. Secure file system server architecture and methods
KR100502066B1 (ko) * 2002-10-31 2005-07-25 한국전자통신연구원 비밀키 관리 시스템 및 방법
US7100047B2 (en) * 2003-01-23 2006-08-29 Verdasys, Inc. Adaptive transparent encryption
JP4792196B2 (ja) 2003-03-27 2011-10-12 三洋電機株式会社 データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置
JP4891521B2 (ja) 2003-03-28 2012-03-07 三洋電機株式会社 データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置
US7827416B2 (en) 2004-08-26 2010-11-02 Mitsubishi Denki Kabushiki Kaisha Key management apparatus, document security and editing system, and key management method
JP4671340B2 (ja) * 2005-07-12 2011-04-13 株式会社日立ソリューションズ 外部記憶媒体へのデータ保存・読み出し方法
JP2007026105A (ja) * 2005-07-15 2007-02-01 Fuji Xerox Co Ltd ファイル管理装置、ファイル管理方法、及びファイル管理プログラム
JPWO2007142072A1 (ja) * 2006-06-09 2009-10-22 株式会社ハートランド 端末装置及びこれを備えたデータ管理システム
US7933413B2 (en) * 2007-02-02 2011-04-26 Microsoft Corporation Key exchange verification
JP2008217300A (ja) * 2007-03-02 2008-09-18 Hitachi Software Eng Co Ltd 生体情報付きファイル暗号化システム及び復号化システム、並びにその方法
EP2017767A4 (en) 2007-04-10 2009-12-30 Hitachi Software Eng FILE MANAGEMENT SYSTEM AND METHOD AND MOBILE DEVICE
JP2008276456A (ja) 2007-04-27 2008-11-13 Hitachi Software Eng Co Ltd ファイル管理システム及び方法、並びに携帯端末装置
JP5134894B2 (ja) * 2007-09-07 2013-01-30 株式会社日立製作所 ストレージ装置及び暗号鍵変更方法
JP5158590B2 (ja) * 2007-12-21 2013-03-06 Necカシオモバイルコミュニケーションズ株式会社 ネットワークシステム及びプログラム
WO2009104720A1 (ja) * 2008-02-22 2009-08-27 日本電気株式会社 リソース利用制御システム、リソース利用制御方法及びリソース利用制御用プログラム
JP2010092288A (ja) * 2008-10-08 2010-04-22 Mitsubishi Electric Corp ファイル管理方法、管理端末、情報処理端末、ファイル管理システム、ファイル管理プログラム
JP2010109919A (ja) * 2008-10-31 2010-05-13 Toshiba Corp 情報処理装置、暗号/復号システム、および暗号/復号方法
JP5730488B2 (ja) * 2010-01-18 2015-06-10 中国電力株式会社 情報処理システム
JP6806433B2 (ja) * 2015-10-21 2021-01-06 株式会社エヌ・ティ・ティ・データ 鍵管理システム、鍵管理装置、鍵管理方法、およびプログラム
CN108369628B (zh) * 2015-12-18 2022-09-13 亚马逊科技公司 提供可运送存储装置以及从可运送存储装置提取数据
WO2018134945A1 (ja) * 2017-01-19 2018-07-26 株式会社クリエイターズ・ヘッド 情報制御プログラム、情報制御システム、及び情報制御方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61177479A (ja) * 1985-02-01 1986-08-09 沖電気工業株式会社 暗号化鍵管理方式
JPH05233460A (ja) * 1992-02-21 1993-09-10 Toshiba Corp ファイル保護方式
JPH06290087A (ja) * 1993-03-31 1994-10-18 Fujitsu F I P Kk 圧縮暗号化装置
JPH06348576A (ja) * 1993-06-01 1994-12-22 Kanebo Ltd データ処理装置
JPH07140896A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd ファイル暗号方法及びその装置
JPH09148993A (ja) * 1995-11-24 1997-06-06 Hitachi Ltd 通信システム
JPH09179768A (ja) * 1995-12-21 1997-07-11 Olympus Optical Co Ltd ファイル暗号化システム及びファイル復号化システム
JPH11149414A (ja) * 1997-09-12 1999-06-02 Hitachi Software Eng Co Ltd データの保存方法およびシステム並びにデータ保存処理用記録媒体

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61177479A (ja) * 1985-02-01 1986-08-09 沖電気工業株式会社 暗号化鍵管理方式
JPH05233460A (ja) * 1992-02-21 1993-09-10 Toshiba Corp ファイル保護方式
JPH06290087A (ja) * 1993-03-31 1994-10-18 Fujitsu F I P Kk 圧縮暗号化装置
JPH06348576A (ja) * 1993-06-01 1994-12-22 Kanebo Ltd データ処理装置
JPH07140896A (ja) * 1993-11-19 1995-06-02 Hitachi Ltd ファイル暗号方法及びその装置
JPH09148993A (ja) * 1995-11-24 1997-06-06 Hitachi Ltd 通信システム
JPH09179768A (ja) * 1995-12-21 1997-07-11 Olympus Optical Co Ltd ファイル暗号化システム及びファイル復号化システム
JPH11149414A (ja) * 1997-09-12 1999-06-02 Hitachi Software Eng Co Ltd データの保存方法およびシステム並びにデータ保存処理用記録媒体

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008226225A (ja) * 2007-03-12 2008-09-25 Teruten Inc Drmコンテンツ再生方法及びその装置
JP2010039567A (ja) * 2008-07-31 2010-02-18 Toshiba Corp 配布装置および管理装置
JP2012118947A (ja) * 2010-12-03 2012-06-21 Ricoh Co Ltd 組み込み機器、暗号化・復号方法、プログラム
KR101889062B1 (ko) 2018-02-28 2018-08-17 (주)케이포스트 보안파일 생성서버 및 생성방법

Also Published As

Publication number Publication date
JP3516591B2 (ja) 2004-04-05
JPH11149414A (ja) 1999-06-02
JP3741357B2 (ja) 2006-02-01

Similar Documents

Publication Publication Date Title
JP3741357B2 (ja) データの保存方法およびシステム並びにデータ保存処理用記録媒体
JP4668619B2 (ja) 装置鍵
US8918633B2 (en) Information processing device, information processing system, and program
US7320076B2 (en) Method and apparatus for a transaction-based secure storage file system
US8549606B2 (en) Device for protecting digital content, device for processing protected digital content, method for protecting digital content, method for processing protected digital content, storage medium storing program for protecting digital content, and storage medium storing program for processing protected digital content
US6678821B1 (en) Method and system for restricting access to the private key of a user in a public key infrastructure
JP4902207B2 (ja) ファイルの暗号化と復号化のための複数のキーを管理するシステムと方法
US20020112161A1 (en) Method and system for software authentication in a computer system
US8572372B2 (en) Method for selectively enabling access to file systems of mobile terminals
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
EP2267628A2 (en) Token passing technique for media playback devices
JPH10260903A (ja) グループ暗号方法、及びファイル暗号システム
JP2008123490A (ja) データストレージデバイス
JPH0936851A (ja) スマート・カードからのプライベート鍵操作をホスト・ベースの暗号サービスと透過的に統合するシステム及び方法
JP2004021755A (ja) 記憶装置
JP2005295570A (ja) プライベートデータを露出せずに通信ネットワークを介してパスワードで保護されたプライベートデータを回復する方法およびシステム
JP5354001B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP2001230770A (ja) マイクロプロセッサ
JPH1198134A (ja) クッキーの改ざん・コピー検出処理方法およびプログラム記憶媒体
JP4047573B2 (ja) 電子情報管理装置及びプログラム
JP2002009762A (ja) 情報処理システム、情報処理方法、および情報処理装置、並びにプログラム提供媒体
JP2001244925A (ja) 暗号化データ管理システム及び方法、記憶媒体
JP2004070674A (ja) 電子データ交換システムにおけるデータ保護装置及びデータ保護方法並びにそれに用いるプログラム
JPH09251426A (ja) ファイル暗号化システム及びその制御方法ならびに暗号ファイル受信システム及びその制御方法
JPH10275115A (ja) データ暗号化保存方法及びシステム装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051104

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081118

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111118

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141118

Year of fee payment: 9

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees