(57)【特許請求の範囲】
【請求項１】
ブロック符号化データの記録に適し、且つ記録後の編集が容易なフォーマットを有する記録媒体であり、該記憶媒体がデータを記憶するための記録領域を備え、前記領域が複数の等分された物理レコードからなり、前記の各物理レコードが少なくともヘッダと初期ベクトル格納部とデータ格納部とからなり、前記ヘッダには少なくとも前記データ格納部に格納されているデータがブロック符号化により暗号化されているかどうかの情報が格納され、前記データ格納部には平文のファイルを分割したもの又はこれをブロック符号化により暗号化したものが格納され、前記初期ベクトル格納部は、各物理レコードのブロック符号化で用いる初期ベクトルをレコード毎にそれぞれ異なった固有の値もしくはランダムな値を格納することを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２】
記憶媒体に記録された暗号化されていないデータを暗号化して上書きする方法であり、前記記録媒体がデータを記憶するための記録領域を備え、前記領域が複数のレコードからなり、前記の各物理レコードが少なくともヘッダと初期ベクトル格納部とデータ格納部とからなり、前記ヘッダには少なくとも前記データ格納部に格納されているデータがブロック符号化により暗号化されているかどうかの情報が格納され、前記データ格納部には平文のファイルを分割したもの又はこれをブロック符号化により暗号化したものが格納され、前記初期ベクトル格納部は、各物理レコードのブロック符号化で用いる初期ベクトルをレコード毎に格納するものであるとき、各レコードに対し異なった固有の値もしくはランダムな値を設定するステップと、各レコードのデータをブロック暗号化してから上書きするステップと、各レコードに用いた初期ベクトルをそれぞれのレコードの前記初期ベクトル格納部に格納するステップからなることを特徴とする記録媒体上の平文データをブロック暗号化して上書きする方法。
【請求項３】
前記設定するステップが、各レコードの前記初期ベクトル格納部に格納されている初期ベクトルを用いることを特徴とする請求項２記載の記録媒体上の平文データをブロック暗号化して上書きする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、暗号化や復号を実現するセキュリティー技術、及び、磁気テープ、磁気ディスク、光ディスク等の記録媒体上のデータ保存技術に係り、特に、セキュリティー技術を応用したデータ保存技術に関する。
【０００２】
【従来の技術】
従来より、磁気テープ、磁気ディスク、光ディスク等の記録媒体上の電子データを秘匿し、関係者以外の第三者が解読できないようにするために、電子データを暗号化して保存することが行われている。暗号化の方式は大別して、公開鍵暗号方式、共通鍵（又は秘密鍵）暗号方式に分類される。本発明は、共通鍵暗号方式の中の一方式であるブロック暗号方式に関するものである。
図５はブロック暗号方式の概念図である。暗号化アルゴリズムＥ（Ｐ，Ｋ）は、ｎビットの平文Ｐ（暗号化前データ）とｍビットの鍵Ｋを入力情報として、暗号文Ｃ（暗号化後データ）を出力する。即ち、式で表すと、
Ｃ＝Ｅ（Ｐ，Ｋ）
である。一方、復号アルゴリズムＤ（Ｃ’，Ｋ’）は、ｎビットの暗号文Ｃ’（暗号化後データ）とｍビットの鍵Ｋ’を入力情報として、平文Ｐ’（暗号化前データ）を出力する。即ち、式で表すと、
Ｐ’＝Ｄ（Ｃ’，Ｋ’）
である。暗号化アルゴリズムと復号アルゴリズムが機能するには、Ｃ＝Ｃ’かつＫ＝Ｋ’であれば、Ｐ＝Ｐ’である必要がある。即ち、
Ｐ＝Ｄ（Ｅ（Ｐ，Ｋ），Ｋ）
が成立しなければならない。また、暗号化アルゴリズムＥ及び復号アルゴリズムＤには、Ｅ及びＤの内部構造を公開するという前提で、
（１）暗号文Ｃから平文Ｐを推定することが困難である
（２）複数の平文Ｐ暗号文Ｃのペアから、鍵Ｋを推定することが困難である
等の性質が必要となる。
【０００３】
ｎビットより大きいサイズの平文を暗号化するには、例えば、次のようにする。まず、平文のビット長がｎの倍数でない場合は、平文の最後に必要なビット数だけ０を付加することによって、平文のビット長がｎの倍数となるようにする。次に、平文をｎビット毎に区切り、先頭から番号をつけ、これを、Ｐi（１≦ｉ≦Ｎ）とし、Ｃi＝Ｅ（Ｐi，Ｋ）（１≦ｉ≦Ｎ）によって暗号化する。即ち、平文をｎビットの処理ブロックに分割して、ブロック毎に暗号化処理を行う。暗号文は、これらを順番に連結したものとなる。暗号文から平文を復元するには、暗号文をｎビット毎に区切り、先頭から番号をつけ、これを、Ｃi（１≦ｉ≦Ｎ）とし、Ｐi＝Ｄ（Ｃi，Ｋ）（１≦ｉ≦Ｎ）によって復号を行う。最後に、Ｐiを順番に連結し、暗号化の際に平文に付加した０のビット列を取り除く。
ブロック暗号方式を用いて、上述のような方法で暗号化及び復号を行う方式をブロック暗号のＥＣＢ（Electronic Code Book）モードと呼ぶ。ＥＣＢモードでは、同一の鍵を用いた場合、内容の同じ平文ブロックが同じ暗号文ブロックに暗号化される。即ち、Ｐi＝ＰjならばＣi＝Ｃjとなる。これは、ブロック単位で見た場合、平文の統計的性質が暗号文へ反映されてしまい、暗号文から平文を推定する手がかりを第三者に与えてしまうことを意味する。この問題を解決するために、ブロック暗号には、他に以下の３つの処理モードが定義されている。
（１）ＣＢＣ（Cipher Block Chaining）モード
（２）ＣＦＢ（Cipher Feed Back）モード
（３）ＯＦＢ（Output Feed Back）モード
上記モードはいづれも処理ブロックと同サイズ（ｎビット）の初期ベクトルＩＶ（Initialization Vector）を必要とする。初期ベクトルＩＶは第三者に公開してもよく、鍵のように秘密にする必要はない。ここでは、ＣＢＣモードについて取り上げ、説明する。図６はＣＢＣモードの処理手続きである。Ｐi（１≦ｉ≦Ｎ）及びＣi（１≦ｉ≦Ｎ）は、それぞれ、ｎビットにブロック分割された平文、暗号文を示す。ＩＶはｎビットの初期ベクトルを示す。また、Ｋは鍵である。
【０００４】
Ｅ及びＤは、それぞれ、暗号化アルゴリズム、復号アルゴリズムを示し、はｎビット同士を、ビット毎に排他的論理和演算する操作を示す。なお、ＰＮは、前述のように必要に応じて末尾に０のビット列を付加しておくものとする。その暗号化の動作を説明すると、第１の平文ブロックＰ1は、初期ベクトルＩＶとビット毎に排他的論理和演算された後、鍵Ｋと共に暗号化アルゴリズムＥに入力されて、第１の暗号文ブロックＣiとして出力される。第２の平文ブロックＰ２は、第１の暗号文ブロックＣiとビット毎に排他的論理和演算された後、鍵Ｋと共に暗号化アルゴリズムＥに入力されて、第２の暗号文ブロックＣ2として出力される。同様に、第ｉ（３≦ｉ≦Ｎ）の平文ブロックＰiは、第i-1の暗号文ブロックＣi-1とビット毎に排他的論理和演算された後、鍵Ｋと共に暗号化アルゴリズムＥに入力されて、第ｉの暗号文ブロックＣiとして出力される。
一方、復号の動作は次のようになる。第１の暗号文ブロックＣiは、鍵Ｋと共に復号アルゴリズムＤに入力される。その出力と、初期ベクトルＩＶはビット毎に排他的論理和演算され、第１の平文ブロックＰ1として復元される。第２の暗号文ブロックＣ2は、鍵Ｋと共に復号アルゴリズムＤに入力される。その出力は、第１の暗号文ブロックＣ1とビット毎に排他的論理和演算され、第２の平文ブロックＰ2として復元される。同様に、第ｉ（３≦ｉ≦Ｎ）の暗号文ブロックＣiは、鍵Ｋと共に復号アルゴリズムＤに入力される。その出力は、第i-1の暗号文ブロックＣi-1とビツト毎に排他的論理和演算され、第ｉの平文ブロックＰiとして復元される。
ＣＢＣモードでは、第１の平文ブロックＰ1は、初期ベクトルＩＶと、ビット毎に排他的論理和演算された後、暗号化アルゴリズムＥに入力される。また、第ｉの平文ブロックＰi（２≦ｉ≦Ｎ）は、第i-1の暗号文ブロックＣi-1と排他的論理和演算された後、暗号化アルゴリズムＥに入力される。このため、異なるＩＶを用いることにより同じ平文ブロックを同じ鍵で暗号化した結果を変化させることができる。即ち、平文の統計的性質が暗号文に反映することを防ぐことができる。
【０００５】
上述の理由により、一般に、磁気テープ、磁気ディスク、光ディスク等の記録媒体上の電子データを暗号化する際には、ＥＣＢモードは用いず、初期ベクトルを必要とするＣＢＣモード、ＣＦＢモード、ＯＦＢモードを用いる。暗号化は通常、ファイル単位で行われる。つまり、１つのファイルを１つの平文とし、それぞれの平文毎に異なる初期ベクトルＩＶを用意する。従って、記録媒体上のそれぞれの暗号文のファイルには暗号化の際に用いられた異なる初期ベクトルＩＶがそれぞれ付加される。
しかるに、上述のように、平文のファイル毎に初期ベクトル１Ｖを用意し、暗号文のファイルにＩＶを付加して記録する方式では、次のような問題があった。
一つは、記録媒体上に既に存在する平文データを暗号化する場合、暗号文のファイル毎に初期ベクトルＩＶを記録する必要があるため、そのための領域が記録媒体上に新たに必要となり、即ち、暗号文のファイルのデータサイズが増加するため、記録媒体上の空き領域が不足し、暗号文のファイルが記録できなくなるといった問題である。
もう一つは、ファイルの途中に新たにデータを追記または削除する場合である。ＣＢＣモード、ＣＦＢモードでは、第ｉの平文ブロックを暗号化する際に、一つ手前の第i-1の暗号文ブロックを用いている。従って、ファイルの途中にデータを追記または削除してしまうと、この影響がそれ以降の全ての暗号文ブロックに影響を及ぼすため、追記または削除する部分以降の暗号文ブロックを一旦復号し、その部分から再び暗号化しなければならない。非常に大きな暗号文のファイルに対し、ファイルの末尾付近以外で追記または削除の操作を行うと、処理時間が非常にかかってしまう。また、ＯＦＢモードでは、追記または削除する部分に関係なく、暗号文のファイルが大きいと処理時間がかかる。
【０００６】
【発明が解決しようとする課題】
本発明は、平文で記録された情報の暗号上書きを可能とすると共に記録済みの暗号文の編集を容易にしたブロック暗号化記録方法、およびこの方法に適合した記録媒体を提供すること目的とする。
【０００７】
【課題を解決するための手段】
上記問題を解決するために、本発明では、請求項１記載のコンピュータ読み取り可能な記録媒体は、ブロック符号化データの記録に適し、且つ記録後の編集が容易なフォーマットを有する記録媒体であり、該記憶媒体がデータを記憶するための記録領域を備え、前記領域が複数の等分された物理レコードからなり、前記の各物理レコードが少なくともヘッダと初期ベクトル格納部とデータ格納部とからなり、前記ヘッダには少なくとも前記データ格納部に格納されているデータがブロック符号化により暗号化されているかどうかの情報が格納され、前記データ格納部には平文のファイルを分割したもの又はこれをブロック符号化により暗号化したものが格納され、前記初期ベクトル格納部は、各物理レコードのブロック符号化で用いる初期ベクトルをレコード毎にそれぞれ異なった固有の値もしくはランダムな値を格納することを特徴とするものである。
【０００８】
請求項２記載の記憶媒体に記録された暗号化されていないデータを暗号化して上書きする方法は、前記記録媒体がデータを記憶するための記録領域を備え、前記領域が複数のレコードからなり、前記の各物理レコードが少なくともヘッダと初期ベクトル格納部とデータ格納部とからなり、前記ヘッダには少なくとも前記データ格納部に格納されているデータがブロック符号化により暗号化されているかどうかの情報が格納され、前記データ格納部には平文のファイルを分割したもの又はこれをブロック符号化により暗号化したものが格納され、前記初期ベクトル格納部は、各物理レコードのブロック符号化で用いる初期ベクトルをレコード毎に格納するものであるとき、各レコードに対し異なった固有の値もしくはランダムな値を設定するステップと、各レコードのデータをブロック暗号化してから上書きするステップと、各レコードに用いた初期ベクトルをそれぞれのレコードの前記初期ベクトル格納部に格納するステップからなることを特徴とするものであり、請求項３に記載のものは、請求項２記載の記録媒体上の平文データをブロック暗号化して上書きする方法に於いて、前記設定するステップが、各レコードの前記初期ベクトル格納部に格納されている初期ベクトルを用いることを特徴とするものである。
【０００９】
【発明の実施の形態】
以下、本発明の実施の形態例と添付図面により本発明を詳細に説明する。
なお、複数の図面に同じ要素を示す場合には同一の参照符号を付ける。
本発明によれば、記録するべき１まとまりのデータ（「ファイル」と称する）を比較的小さなデータ単位（「レコード」と称する）に分割して記録する。暗号化する場合は、レコード毎に図６のようにブロック符号化する。レコードへの分割方法としては、およそ２つに大別される。１つは、記録媒体自体をレコード単に初期化する方法であり、この方法で記録されるデータの構造を「物理フォーマット」、物理フォーマットを構成するレコードを「物理レコード」と称する。もう１つは、暗号化の時点でファイルをレコード単位に分割する方法であり、この方法で生成されるデータの構造を「論理フォーマット」、論理フォーマットを構成するレコードを「論理レコード」と称する。論理フォーマットは、データフォーマットまたはファイルフォーマットとも称する。
【００１０】
（実施の形態）
図１は、本発明による物理レコードおよび物理フォーマットを有する記録媒体の例を示す。図１において、１ａは、ＣＡＶ（角速度一定）で使用されるハードディスクなどの磁気記憶媒体の例であり、各トラックが所定の数に等分される。１ｂは、ＣＬＶ（線速度一定）で使用される光ディスクの例で、データ記憶領域のトラックが一定の長さに分割される。この実施例では、各物理レコードはセクタと一般に呼ばれる。
磁気ディスク１ａおよび光ディスク１ｂの何れの場合も、各物理レコード（即ち、各セクタ）は、１０のように、ヘッダ１２、初期ベクトルを格納するための初期ベクトル格納部１４、およびデータ格納部１６からなる。ヘッダ１２には、データ格納部１６に格納されているデータサイズ、データ格納部に格納されているデータが暗号化されているかどうかの情報、チェックサム等が格納される。
平文のファイルを記憶する場合は、初期ベクトル格納部１４は使用しない。平文のファイルをブロック暗号化して記録する場合は、平文を物理レコード（ここで言う物理レコードとは、データ格納部１６に格納されるデータ長を指す）単位にブロック暗号化し、暗号文をデータ格納部１６に、そのブロックの暗号化に用いた初期ベクトルを初期ベクトル格納部１４にそれぞれ格納する。記録媒体１に既に記録済みのデータを暗号化する際には、レコード毎に、与えられた暗号化鍵と共に、初期ベクトル格納部に格納された値を初期ベクトルとして利用し、データ格納部に格納されたデータを暗号化する。
従って、平文を暗号化することによって、ファイルのデータサイズが増加することなく、暗号文のファイルが記録できなくなるといった問題は生じない。また、ファイルの途中にデータを追記または削除する場合、その部分以降の暗号文ブロックを一旦復号し、再び暗号化しなければならない部分は、高々１レコードである。特に、データ追記または削除がレコード単位で行われる場合は、暗号文ブロックを一旦復号し、その部分から再び暗号化する必要がなく、データの追記または削除に要する処理時間を大幅に短縮することができる。
また、暗号化ファイルにデータを追記する場合は、追記されたデータに対して、レコードを割り振り、暗号化の際に、与えられた暗号化鍵と共に、該レコードの、初期ベクトル格納部に格納された値を初期ベクトルとして利用し、該レコードのデータ格納部に格納されたデータを暗号化する。
また、暗号化ファイルのデータの一部を削除する場合は、削除する部分のレコードを削除するのみでよい。
また、暗号化ファイルに対して、データの追記、削除を行う部位がレコードの中間部で行われる場合は、該レコードに対して必要に応じて復号、暗号化を施した後、上記操作を行えばよい。
【００１１】
図２は、書き換え可能な光ディスクの別の実施例である。図２において、光ディスク１ｃは、一般にＡＢに沿った断面に示すように、実際に記憶される利用者のデータが格納されるデータ領域１００の内側に、最適記録パワーを求めるためのＰＣＡ（パワー校正領域）１１０およびアドレス情報などを記憶するＰＭＡ（プログラムメモリ領域）１２０を有する。この実施の形態では、各セクタ（物理レコード）１０ａは、通常の書き換え可能な光ディスクと同じ構造であり、ヘッダ（ＨＤ）１２とデータ各校部１６を有する。異なるのは、ヘッダ１２に、そのセクタのデータが暗号化されているか否かを示すデータを含むことである。各セクタ１０ａで使用されるブロック暗号用の初期ベクトル１４は、ＰＭＡ１２０に対応するセクタ番号１２２に関係付けて格納される。
なお、図１および図２の何れの実施例の場合も、初期ベクトル１４は必ずしもセクタ毎に用意する必要はない。１つのファイルのセクタ全てに同じ初期ベクトルを用いても良い。要は、セクタ毎にブロック符号化を行えばよい。
図３は、本発明による論理フォーマットの例を示す。図３（ａ）のファイル２ａは、各レコード２０は、ヘッダ２２または２３、初期ベクトル格納部１４、よおびデータ格納部２４からなる。ファイル２ａの最初の論理レコード２０ａのヘッダは、ファイルに関する情報を含むファイルヘッダ（ＦＨＤ）２２であり、後続の論理レコード２０ｂのヘッダは、磁気ディスクのセクタのヘッダと同じ内容のレコードヘッダ（ＲＨＤ）２３である。図３（ｂ）のファイル２ｂは、最初のレコード２０ａのみに初期ベクトル格納部１４があり、後続のレコード２０ｃには初期ベクトル格納部１４がない。
【００１２】
図４は、本発明による論理フォーマットの別の例を示す。ファイルのレコードへの分割は、図４に示すように階層的に行っても良い。この典型例は、各ＭＰＥＧ（Moving Picture Coding Experts Group）規格に準拠したデータである。例えば、ファイル２ｃは、レコード３０からなり、各レコード３０のデータ格納部３４が、下位のレコード４０からなり、下位の各レコード４０のデータ格納部３４が、さらに下位のレコード５０からなる・・・という具合に階層化されている。各階層の各レコード３０、４０、５０の先頭にはそれぞれのヘッダ３２、４２、５２が置かれる。このような場合、暗号化は、適切な階層を選んで、その階層の各レコード毎にブロック符号化を行うことになる。図４の例では、第３層目の各データ格納部５４毎にブロック符号化を行っている。この場合、注目すべきことは、初期ベクトル格納部１４は、必ずしも暗号化データが格納されているレコード毎に設ける必要はないと言うことである。この例では、第２層目の各レコード４０に初期ベクトル格納部１４を設けているが、暗号ブロック連鎖で構成される層を含めて、それより上位の層であれば、何れの層のレコードに含めても良い。
物理フォーマットの例としてディスク記録媒体を例に挙げたが、本発明は、磁気テープにも応用できる。磁気テープの場合は、図１の１ｂと同じフォーマットである。
以上は、本発明の説明のために実施の形態の例を掲げたに過ぎない。したがって、本発明の技術思想または原理に沿って上述の実施の形態に種々の変更、修正または追加を行うことは、当業者には容易である。故に、本発明は、以上述べた実施の形態に捕らわれることなく、ただ特許請求の範囲の記載に従って解釈するべきである。
【００１３】
【発明の効果】
本発明では、物理レコードもしくは論理レコード毎に初期ベクトルを格納するための初期ベクトル格納部を有するフォーマット構造としたので、平文を暗号化することによって、ファイルのデータサイズが増加することなく、暗号文のファイルが記録できなくなるといった問題は生じない。また、ファイルの途中にデータを追記または削除する場合においても、暗号文ブロックを一旦復号し、データを追記または削除する部分から再び暗号化する必要がなく、データの追記または削除に要する処理時間を大幅に短縮することができる。
【図面の簡単な説明】
【図１】本発明による物理フォーマットを有する記録媒体の例を示す図。
【図２】本発明による書き換え可能な光ディスクのフォーマット例を示す図。
【図３】本発明による論理フォーマットの例を示す図。
【図４】本発明による階層構造を有する論理フォーマットを例示する図。
【図５】通常の秘密鍵方式の暗号化および復号を説明する図。
【図６】通常のブロック暗号方式を説明する図。
【符号の説明】
１  本発明のフォーマットを有する記録媒体
２  本発明の論理フォーマット
１０  物理レコード
１２  ヘッダ
１４  初期ベクトル格納部
１６、２４、３４、４４、５４  データ格納部
２０、３０、４０、５０  論理レコード
２２、３２、４２、５２  ファイルヘッダ
２３、３３、４３、５３  レコードヘッダ
【図１】
0004303408.tif 000002
【図２】
0004303408.tif 000003
【図３】
0004303408.tif 000004
【図４】
0004303408.tif 000005
【図５】
0004303408.tif 000006
【図６】
0004303408.tif 000007