(57)【要約】【解決課題】暗号化されたファイル途中のデータのみを高速に取り出すことができ、かつ、初期ベクトルの格納領域の増加を抑止できるようにする。【解決手段】ＨＤＤにおける画像ファイルＡが記憶されている先頭セクタには、初期ベクトル格納メモリから読み出した初期ベクトルＡを用いてブロック暗号化された暗号文ブロックが記憶され、２番目のセクタ及び３番目のセクタの各々については、初期ベクトルＡを変更して生成された初期ベクトルＡ２、Ａ３を用いてブロック暗号化された暗号文ブロックが記憶される。また、他の画像ファイルＢについては、先頭セクタには、初期ベクトル格納メモリから読み出した初期ベクトルＢを用いてブロック暗号化された暗号文ブロックが記憶され、続くセクタには、初期ベクトルＢを変更して生成された初期ベクトルＢ２、Ｂ３を用いてブロック暗号化された暗号文ブロックが記憶される。【選択図】図５
2007183514.tif 000002
【特許請求の範囲】
【請求項１】
ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段と、
ファイルを所定のブロック単位に暗号化するブロック暗号化においてファイル毎に用いるための第１の初期ベクトルを複数記憶する初期ベクトル記憶手段と、
ファイルに用いられる第１の初期ベクトルを所定の規則に基づいて変更することにより、該ファイルの前記ブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段と、
入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、
前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段と、
前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段と、
を含む情報処理装置。
【請求項２】
前記ファイル記憶手段に記憶された前記ファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック復号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの暗号文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック復号化し、
前記所定の記憶単位における先頭ブロックでないブロックをブロック復号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの暗号文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック復号化する復号化手段を更に含み、
前記初期ベクトル生成手段は、前記ファイルに用いられた前記第１の初期ベクトルを前記所定の規則に基づいて変更することにより、該ファイルの前記ブロック復号化において前記所定の記憶単位毎に用いるための前記第２の初期ベクトルを前記所定の記憶単位毎に生成する請求項１記載の情報処理装置。
【請求項３】
前記暗号化手段は、入力されたファイルの先頭ブロックをブロック暗号化する場合には、前記初期ベクトル記憶手段に記憶された第１の初期ベクトル、該先頭ブロックの平文ブロック、及び所定の暗号化鍵に基づいて、該先頭ブロックをブロック暗号化する請求項１記載の情報処理装置。
【請求項４】
前記ファイル記憶手段に記憶されたファイルの先頭ブロックをブロック復号化する場合には、該ファイルに用いられた前記第１の初期ベクトル、該先頭ブロックの暗号文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック復号化し、
前記ファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック復号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの暗号文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック復号化し、
前記ファイルの先頭ブロックでなく、かつ、前記所定の記憶単位における先頭ブロックでないブロックをブロック復号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの暗号文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック復号化する復号化手段を更に含み、
前記初期ベクトル生成手段は、前記ファイルに用いられた前記第１の初期ベクトルを前記所定の規則に基づいて変更することにより、該ファイルの前記ブロック復号化において前記所定の記憶単位毎に用いるための前記第２の初期ベクトルを前記所定の記憶単位毎に生成する請求項３記載の情報処理装置。
【請求項５】
ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段と、
ファイルを所定のブロック単位に暗号化するブロック暗号化において共通に用いるための第１の初期ベクトルを記憶する初期ベクトル記憶手段と、
ファイルを前記所定の記憶単位に分割して前記ファイル記憶手段に記憶するときの前記所定の記憶単位毎の記憶領域を示す識別情報を記憶する記憶単位情報記憶手段と、
前記初期ベクトル記憶手段に記憶された第１の初期ベクトル及び前記記憶単位情報記憶手段に記憶されたファイルの前記所定の記憶単位毎の識別情報に基づいて、該識別情報が示す記憶領域に記憶する前記ファイルのブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段と、
入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、
前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段と、
前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段と、
を含む情報処理装置。
【請求項６】
前記ファイル記憶手段に記憶されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック復号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの暗号文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック復号化し、
前記所定の記憶単位における先頭ブロックでないブロックをブロック復号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの暗号文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック復号化する復号化手段を更に含み、
前記初期ベクトル生成手段は、前記第１の初期ベクトル及び前記識別情報に基づいて、該識別情報が示す記憶領域に記憶されたファイルのブロック復号化において前記所定の記憶単位毎に用いるための前記第２の初期ベクトルを前記所定の記憶単位毎に生成する請求項５記載の情報処理装置。
【請求項７】
前記所定の記憶単位を、前記ファイル記憶手段の論理アドレス分割単位とする請求項１〜請求項６の何れか１項記載の情報処理装置。
【請求項８】
前記ファイル記憶手段はハードディスクであって、
前記所定の記憶単位を、前記ハードディスクのセクタ単位とする請求項１〜請求項６の何れか１項記載の情報処理装置。
【請求項９】
コンピュータを
ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段、
ファイルを所定のブロック単位に暗号化するブロック暗号化においてファイル毎に用いるための第１の初期ベクトルを複数記憶する初期ベクトル記憶手段、
ファイルに用いられる第１の初期ベクトルを所定の規則に基づいて変更することにより、該ファイルの前記ブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段、
入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、
前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段、及び
前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段
として機能させるためのプログラム。
【請求項１０】
コンピュータを
ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段、
ファイルを所定のブロック単位に暗号化するブロック暗号化において共通に用いるための第１の初期ベクトルを記憶する初期ベクトル記憶手段、
ファイルを前記所定の記憶単位に分割して前記ファイル記憶手段に記憶するときの前記所定の記憶単位毎の記憶領域を示す識別情報を記憶する記憶単位情報記憶手段、
前記初期ベクトル記憶手段に記憶された第１の初期ベクトル及び前記記憶単位情報記憶手段に記憶されたファイルの前記所定の記憶単位毎の識別情報に基づいて、該識別情報が示す記憶領域に記憶する前記ファイルのブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段、
入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、
前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段、及び
前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びプログラムに係り、特に、ファイルをブロック暗号化して記憶する情報処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、ファイルを暗号化する方式として、ファイルをブロック毎に暗号化するブロック暗号化方式が採用されており、ここでブロック暗号アルゴリズムとして、米国標準技術局（ＮＩＳＴ）によって選定された米国政府標準暗号ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）が知られている。
【０００３】
例えば、ＡＥＳのモードのひとつであるＣＢＣ（Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ）モードは、平文ブロックと直前ブロックの暗号文ブロックとの排他的論理和を取ることで、ブロックごとに同じ平文ブロックが連続した場合でも異なる暗号文ブロックを生成することが可能なモードである。この場合、ファイルの最初のブロックにおいては、直前ブロックの暗号文ブロックが存在しないため、別途初期ベクトル（ＩＶ）を設定している。
【０００４】
この初期ベクトルをファイル単位で予め格納しておいて、データを暗号化する際には、初期ベクトルをファイルごとに変更しながら暗号化してＨＤＤに格納するブロック暗号化方法が知られている（特許文献１）。
【特許文献１】特開２００２−４２４２４
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のブロック暗号化方法では、初期ベクトルをファイル単位に格納し、ファイル単位でブロック暗号化を行っているので、ＨＤＤに格納されたファイル中の特定箇所のデータのみ抜き出して読み出すことができず、アクセス時間が増大してしまう、という問題がある。仮に特定箇所のデータのみを読み出すことができるようにする場合は、予めその単位でファイルを構成する必要があり、ファイルごとの初期ベクトルの数が増加して、初期ベクトルを格納する領域が増加してしまう、という問題がある。
【０００６】
本発明は、上記の問題点を解決するためになされたもので、暗号化されたファイル途中のデータのみを高速に取り出すことができ、かつ、初期ベクトルの格納領域の増加を抑止できる情報処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために第１の発明に係る情報処理装置は、ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段と、ファイルを所定のブロック単位に暗号化するブロック暗号化においてファイル毎に用いるための第１の初期ベクトルを複数記憶する初期ベクトル記憶手段と、ファイルに用いられる第１の初期ベクトルを所定の規則に基づいて変更することにより、該ファイルの前記ブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段と、入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段と、前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段とを含んで構成されている。
【０００８】
また、第２の発明に係るプログラムは、コンピュータを、ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段、ファイルを所定のブロック単位に暗号化するブロック暗号化においてファイル毎に用いるための第１の初期ベクトルを複数記憶する初期ベクトル記憶手段、ファイルに用いられる第１の初期ベクトルを所定の規則に基づいて変更することにより、該ファイルの前記ブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段、入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段、及び前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段として機能させることを特徴としている。
【０００９】
第１の発明及び第２の発明によれば、入力されたファイルを所定の記憶単位に分割したときの所定の記憶単位における先頭ブロックをブロック暗号化する場合には、初期ベクトル生成手段によって、このファイルに用いられる第１の初期ベクトルを所定の規則に基づいて変更することにより、このファイルのブロック暗号化において所定の記憶単位毎に用いるための第２の初期ベクトルを生成し、暗号化手段によって、初期ベクトル生成手段によって生成された第２の初期ベクトル、この先頭ブロックの平文ブロック、及び暗号化鍵に基づいて、この先頭ブロックをブロック暗号化する。
【００１０】
また、所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、暗号化手段によって、このブロックの直前のブロックをブロック暗号化した暗号文ブロック、このブロックの平文ブロック、及び暗号化鍵に基づいて、このブロックをブロック暗号化する。
【００１１】
そして、記憶制御手段によって、暗号化手段によってブロック暗号化されたファイルをファイル記憶手段に記憶させる。
【００１２】
従って、所定の記憶単位毎の第２の初期ベクトルを用いて所定の記憶単位毎にブロック暗号化を行うことにより、暗号化されたファイル途中のデータのみを所定の記憶単位毎に高速に取り出すことができ、また、所定の記憶単位毎に用いられる第２の初期ベクトルを、ファイル毎に用いられる第１の初期ベクトルを変更して生成することにより、初期ベクトルの格納領域の増加を抑止することができる。
【００１３】
また、第１の発明に係る情報処理装置は、ファイル記憶手段に記憶されたファイルを所定の記憶単位に分割したときの所定の記憶単位における先頭ブロックをブロック復号化する場合には、初期ベクトル生成手段によって生成された第２の初期ベクトル、この先頭ブロックの暗号文ブロック、及び暗号化鍵に基づいて、この先頭ブロックをブロック復号化し、所定の記憶単位における先頭ブロックでないブロックをブロック復号化する場合には、このブロックの直前のブロックをブロック暗号化した暗号文ブロック、このブロックの暗号文ブロック、及び暗号化鍵に基づいて、このブロックをブロック復号化する復号化手段を更に含み、初期ベクトル生成手段は、ファイルに用いられた第１の初期ベクトルを所定の規則に基づいて変更することにより、このファイルのブロック復号化において所定の記憶単位毎に用いるための第２の初期ベクトルを所定の記憶単位毎に生成することができる。これにより、ブロック暗号化されて記憶されたファイルをブロック復号化して取り出すときに、取り出すデータがファイル途中のデータであっても、初期ベクトル生成手段によって生成された第２の初期ベクトルを用いて、ファイル途中のデータのみを所定の記憶単位毎に復号化して取り出すことができる。
【００１４】
また、第１の発明に係る暗号化手段は、入力されたファイルの先頭ブロックをブロック暗号化する場合には、初期ベクトル記憶手段に記憶された第１の初期ベクトル、この先頭ブロックの平文ブロック、及び所定の暗号化鍵に基づいて、この先頭ブロックをブロック暗号化することができる。
【００１５】
また、この情報処理装置は、ファイル記憶手段に記憶されたファイルの先頭ブロックをブロック復号化する場合には、このファイルに用いられた第１の初期ベクトル、この先頭ブロックの暗号文ブロック、及び暗号化鍵に基づいて、この先頭ブロックをブロック復号化し、ファイルを所定の記憶単位に分割したときの所定の記憶単位における先頭ブロックをブロック復号化する場合には、初期ベクトル生成手段によって生成された第２の初期ベクトル、この先頭ブロックの暗号文ブロック、及び暗号化鍵に基づいて、この先頭ブロックをブロック復号化し、ファイルのブロックでなく、かつ、所定の記憶単位における先頭ブロックでないブロックをブロック復号化する場合には、このブロックの直前のブロックをブロック暗号化した暗号文ブロック、このブロックの暗号文ブロック、及び暗号化鍵に基づいて、このブロックをブロック復号化する復号化手段を更に含み、初期ベクトル生成手段は、ファイルに用いられた第１の初期ベクトルを所定の規則に基づいて変更することにより、このファイルの前記ブロック復号化において所定の記憶単位毎に用いるための第２の初期ベクトルを所定の記憶単位毎に生成することができる。
【００１６】
第３の発明に係る情報処理装置は、ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段と、ファイルを所定のブロック単位に暗号化するブロック暗号化において共通に用いるための第１の初期ベクトルを記憶する初期ベクトル記憶手段と、ファイルを前記所定の記憶単位に分割して前記ファイル記憶手段に記憶するときの前記所定の記憶単位毎の記憶領域を示す識別情報を記憶する記憶単位情報記憶手段と、前記初期ベクトル記憶手段に記憶された第１の初期ベクトル及び前記記憶単位情報記憶手段に記憶されたファイルの前記所定の記憶単位毎の識別情報に基づいて、該識別情報が示す記憶領域に記憶する前記ファイルのブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段と、入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段と、前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段とを含んで構成されている。
【００１７】
また、第４の発明に係るプログラムは、コンピュータを、ファイルを所定の記憶単位に分割して記憶するためのファイル記憶手段、ファイルを所定のブロック単位に暗号化するブロック暗号化において共通に用いるための第１の初期ベクトルを記憶する初期ベクトル記憶手段、ファイルを前記所定の記憶単位に分割して前記ファイル記憶手段に記憶するときの前記所定の記憶単位毎の記憶領域を示す識別情報を記憶する記憶単位情報記憶手段、前記初期ベクトル記憶手段に記憶された第１の初期ベクトル及び前記記憶単位情報記憶手段に記憶されたファイルの前記所定の記憶単位毎の識別情報に基づいて、該識別情報が示す記憶領域に記憶する前記ファイルのブロック暗号化において前記所定の記憶単位毎に用いるための第２の初期ベクトルを前記所定の記憶単位毎に生成する初期ベクトル生成手段、入力されたファイルを前記所定の記憶単位に分割したときの前記所定の記憶単位における先頭ブロックをブロック暗号化する場合には、前記初期ベクトル生成手段によって生成された第２の初期ベクトル、該先頭ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該先頭ブロックをブロック暗号化し、前記所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、該ブロックの直前のブロックをブロック暗号化した暗号文ブロック、該ブロックの平文ブロック、及び前記暗号化鍵に基づいて、該ブロックをブロック暗号化する暗号化手段、及び前記暗号化手段によってブロック暗号化されたファイルを前記ファイル記憶手段に記憶させる記憶制御手段として機能させることを特徴としている。
【００１８】
第３の発明及び第４の発明によれば、入力されたファイルを所定の記憶単位に分割したときの所定の記憶単位における先頭ブロックをブロック暗号化する場合には、初期ベクトル生成手段によって、初期ベクトル記憶手段に記憶された第１の初期ベクトル及び記憶単位情報記憶手段に記憶されたファイルの所定の記憶単位毎の識別情報に基づいて、識別情報が示す記憶領域に記憶するファイルのブロック暗号化において所定の記憶単位毎に用いるための第２の初期ベクトルを所定の記憶単位毎に生成し、暗号化手段によって、生成された第２の初期ベクトル、この先頭ブロックの平文ブロック、及び暗号化鍵に基づいて、この先頭ブロックをブロック暗号化する。
【００１９】
また、所定の記憶単位における先頭ブロックでないブロックをブロック暗号化する場合には、暗号化手段によって、このブロックの直前のブロックをブロック暗号化した暗号文ブロック、このブロックの平文ブロック、及び暗号化鍵に基づいて、このブロックをブロック暗号化する。
【００２０】
そして、記憶制御手段によって、暗号化手段によってブロック暗号化されたファイルをファイル記憶手段に記憶させる。
【００２１】
従って、所定の記憶単位毎の第２の初期ベクトルを用いて所定の記憶単位毎にブロック暗号化を行うことにより、暗号化されたファイル途中のデータのみを所定の記憶単位毎に高速に取り出すことができ、また、所定の記憶単位毎に用いられる第２の初期ベクトルを、共通の第１の初期ベクトル及び記憶領域を示す識別情報に基づいて生成することにより、初期ベクトルの格納領域の増加を抑止することができる。また、ファイルに共通の第１の初期ベクトルを用いることにより、初期ベクトルの格納領域の更に削減することができる。
【００２２】
また、第３の発明に係る情報処理装置は、ファイル記憶手段に記憶されたファイルを所定の記憶単位に分割したときの所定の記憶単位における先頭ブロックをブロック復号化する場合には、初期ベクトル生成手段によって生成された第２の初期ベクトル、この先頭ブロックの暗号文ブロック、及び暗号化鍵に基づいて、この先頭ブロックをブロック復号化し、所定の記憶単位における先頭ブロックでないブロックをブロック復号化する場合には、このブロックの直前のブロックをブロック暗号化した暗号文ブロック、このブロックの暗号文ブロック、及び暗号化鍵に基づいて、このブロックをブロック復号化する復号化手段を更に含み、初期ベクトル生成手段は、第１の初期ベクトル及び識別情報に基づいて、この識別情報が示す記憶領域に記憶されたファイルのブロック復号化において所定の記憶単位毎に用いるための第２の初期ベクトルを所定の記憶単位毎に生成することができる。これにより、ブロック暗号化されて記憶されたファイルをブロック復号化して取り出すときに、取り出すデータがファイル途中のデータであっても、初期ベクトル生成手段によって生成された第２の初期ベクトルを用いて、ファイル途中のデータのみを所定の記憶単位毎に復号化して取り出すことができる。
【００２３】
また、上記の所定の記憶単位を、ファイル記憶手段の論理アドレス分割単位とすることができる。
【００２４】
また、上記のファイル記憶手段はハードディスクであって、所定の記憶単位を、ハードディスクのセクタ単位とすることができる。
【発明の効果】
【００２５】
以上説明したように、本発明の情報処理装置及びプログラムによれば、所定の記憶単位毎の第２の初期ベクトルを用いて所定の記憶単位毎にブロック暗号化を行うことにより、暗号化されたファイル途中のデータのみを所定の記憶単位毎に高速に取り出すことができ、また、所定の記憶単位毎に用いられる第２の初期ベクトルを、第１の初期ベクトルに基づいて生成することにより、初期ベクトルの格納領域の増加を抑止することができる、という効果が得られる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について図面を参照して説明する。なお、本実施の形態では、複写機に本発明を適用した場合について説明する。
【００２７】
図１に示すように、本発明の第１の実施の形態に係る複写機１０は、各種プログラムやパラメータ等が記憶されたＲＯＭ１２、各種プログラムを実行するＣＰＵ１４、ＣＰＵ１４による各種プログラムの実行時におけるワークエリア等として用いられるＲＡＭ１６、画像ファイルなどを暗号化及び復号化するためのデータ処理装置１８、及びこれらを相互に接続するためのバス２０が設けられている。
【００２８】
また、データ処理装置１８には、暗号化された画像ファイルなどを記憶するためのＨＤＤ２２が接続されている。ＨＤＤ２２の記録領域は、セクタ単位（例えば５１２Ｂｙｔｅ）で分割されており、画像ファイルは複数のセクタに分割されて記憶されるようになっている。なお、画像ファイルは、単一セクタに記憶されるサイズでも複数セクタに記憶されるサイズでもよい。また、画像ファイル毎にセクタ数が異なっていてもよい。
【００２９】
また、複写機１０には、さらに、原稿を読みとって画像ファイルを生成するスキャナ２４と、画像ファイルに基づいて感光体に静電潜像を記録し、静電潜像をモノクロトナーまたはカラートナーを用いて現像し、現像した画像を記録用紙に転写して出力する印字部２６と、複写機１０の各種処理を指示するための操作ボタンや操作パネルからなる操作パネル部２８とが設けられており、これらもバス２０に接続されている。
【００３０】
また、図２に示すように、データ処理装置１８には、バス２０との入出力を制御するためのバスインタフェース３０と、画像ファイルの暗号化及び復号化に用いるための初期ベクトルを格納するための初期ベクトル格納メモリ３２と、初期ベクトル格納メモリ３２に格納されている初期ベクトルを変更する初期ベクトル変更部３４と、暗号化及び復号化に用いる共通鍵を格納した共通鍵格納メモリ３６と、画像ファイルを暗号化する暗号化部３８と、ＨＤＤ２２との入出力を制御するためのＨＤＤインタフェースとが設けられている。なお、暗号化部３８は、ＨＤＤ２２から読み出した画像ファイルを復号化する機能も備えている。
【００３１】
なお、データ処理装置１８の各部の機能は、例えば回路（ＬＳＩチップ）によって実現されるように実装されている。
【００３２】
なお、複写機１０は、従来公知のプリンタやスキャナの一般的な構成や機能を備えていればよく、複写機１０の他の構成や一般的な機能について、詳細な説明を省略する。
【００３３】
次に、データ処理装置１８の暗号化部３８で行われる暗号化及び復号化の方式について図３を用いて説明する。
【００３４】
本実施形態における暗号化及び復号化は、ファイルをブロック単位に分けて行うブロック暗号化方式及びブロック復号化方式を採用しており、まず、ファイルの先頭ブロックについては、先頭ブロックの平文ブロックＰ１と初期ベクトルＩＶとについて、ビット毎に排他的論理和（ＸＯＲ）を演算し、その演算結果を共通鍵Ｋによって暗号化して（Ｅ）、暗号文ブロックＣ１を生成する。そして、次のブロックについて、平文ブロックＰ２と直前ブロックの暗号文ブロックＣ１とに対して排他的論理和（ＸＯＲ）演算し、その演算結果を共通鍵Ｋによって暗号化して（Ｅ）して暗号文ブロックＣ２を生成し、次のブロック以降についても同様に暗号化を行う。
【００３５】
また、復号化する場合には、ファイルの先頭ブロックについては、暗号文ブロックＣ１を共通鍵Ｋで復号化し、その復号結果と初期ベクトルＩＶとの排他的論理和（ＸＯＲ）を演算して、平文ブロックＰ１を生成する。そして、次のブロックについては、暗号文ブロックＣ２を共通鍵Ｋで復号化し、その復号結果と直前ブロックの暗号文ブロックＣ１との排他的論理和（ＸＯＲ）を演算して、平文ブロックＰ２を生成し、次のブロック以降についても同様に復号化を行う。
【００３６】
次に、第１の実施の形態の作用について説明する。なお、画像ファイルをブロック暗号化してＨＤＤ２２に記憶させる場合を例に説明する。
【００３７】
まず、ユーザによって、複写機１０のスキャナ２４の原稿読取位置に原稿がセットされ、ユーザが操作パネル部２８を操作して、原稿の読取処理が指示されると、スキャナ２４によって原稿が読み取られ、原稿を示す画像ファイルが生成される。
【００３８】
そして、データ処理装置１８では、図４に示す暗号化処理ルーチンが実行される。
【００３９】
まず、ステップ１００において、画像ファイルが入力されたか否かが判定され、スキャナ２４によって生成された画像ファイルが、バス２０を介して入力されると、ステップ１００からステップ１０２へ進み、画像ファイルの先頭ブロックを暗号化対象ブロックに設定する。
【００４０】
そして、ステップ１０４において、暗号化対象ブロックが、セクタ単位における先頭ブロックであるか否かを判定し、画像ファイルの先頭ブロック（先頭セクタの先頭ブロック）であるか、又は、画像ファイルをセクタ単位に分割した場合の何れかのセクタの先頭ブロックである場合には、ステップ１０６において、暗号化対象ブロックが画像ファイルの先頭ブロックであるか否かを判定し、画像ファイルの先頭ブロックである場合には、ステップ１０８において、初期ベクトル格納メモリ３２から初期ベクトルを読み込んで、ステップ１１２へ移行する。一方、ステップ１０６において、暗号化対象ブロックが画像ファイルの途中のセクタの先頭ブロックであると、ステップ１１０において、初期ベクトル変更部３４によって、ステップ１０８で読み込まれた初期ベクトルを所定の規則に基づいて変更して、新たに初期ベクトルを生成し、ステップ１１２へ移行する。
【００４１】
なお、新たな初期ベクトルの生成方法としては、例えば、前のセクタにおける初期ベクトルを所定量増加させる方法を用いればよく（又は、読み込まれた初期ベクトルを所定量のセクタ数倍だけ増加させる方法）、または他の公知の方法を用いればよい。また、この生成方法は、秘密に定義されている。
【００４２】
ステップ１１２では、読み込まれた初期ベクトル又は生成された初期ベクトルを暗号化における直前ブロックの暗号文ブロックとして設定し、ステップ１１４で、図３で説明したブロック暗号化処理を行い、ステップ１１６において、ＨＤＤインタフェース４０によって、生成された暗号文ブロックをＨＤＤ２２に記憶させる。
【００４３】
また、ステップ１０４において、暗号化対象ブロックが、画像ファイルにおける先頭ブロックでもなく、また、画像ファイルをセクタ単位に分割した場合のいずれのセクタの先頭ブロックでもない場合には、ステップ１１４へ移行し、ステップ１１４で、図３で説明したように、直前のブロックの暗号文ブロックを用いてブロック暗号化処理を行う。
【００４４】
ステップ１１８では、暗号化対象ブロックが、画像ファイルの最終ブロックであるか否かを判定し、画像ファイルにおいて、ブロック暗号化処理が行われていないブロックがある場合には、ステップ１２０において、画像ファイルにおける次のブロックを、暗号化対象ブロックに設定し、ステップ１０４へ戻り、次のブロックに対して、上記のステップ１０４〜ステップ１１８を行う。一方、画像ファイルの全てのブロックについて、ブロック暗号化処理が行われ、暗号文ブロックがＨＤＤ２２に記憶された場合には、暗号化処理ルーチンを終了する。
【００４５】
上記のようにブロック暗号化処理が行われると、図５に示すように、ＨＤＤ２２における画像ファイルＡが記憶されている先頭セクタには、初期ベクトル格納メモリ３２から読み出した初期ベクトルＡを用いてブロック暗号化された暗号文ブロックが記憶され、２番目のセクタ及び３番目のセクタの各々については、初期ベクトルＡを変更して生成された初期ベクトルＡ２、Ａ３を用いてブロック暗号化された暗号文ブロックが記憶される。また、他の画像ファイルＢについては、先頭セクタには、初期ベクトル格納メモリ３２から読み出した初期ベクトルＢを用いてブロック暗号化された暗号文ブロックが記憶され、続くセクタには、初期ベクトルＢを変更して生成された初期ベクトルＢ２、Ｂ３を用いてブロック暗号化された暗号文ブロックが記憶される。
【００４６】
また、ＨＤＤ２２から画像ファイルＡの先頭セクタが取り出される場合には、初期ベクトル格納メモリ３２の初期ベクトルＡを用いてブロック復号化して、復号化された平文ブロックが取り出される。
【００４７】
また、ＨＤＤ２２から画像ファイルＡの２番目のセクタ又は３番目のセクタのみが取り出される場合には、初期ベクトル格納メモリ３２の初期ベクトルＡを変更した初期ベクトルＡ２、又はＡ３を生成して、生成した初期ベクトルＡ２又はＡ３を用いてブロック復号化して、復号化された平文ブロックが取り出される。なお、先頭セクタに画像ファイルＡを記憶する際に行われるブロック暗号化で用いられる初期ベクトルＡと、先頭セクタから画像ファイルＡを取り出す際に行われるブロック復号化で用いられる初期ベクトルＡとは同一であり、また、２番目のセクタ及び３番目のセクタの各々に画像ファイルＡを記憶する際に行われるブロック暗号化で用いられる初期ベクトルＡ２、Ａ３と、２番目のセクタ及び３番目のセクタの各々から画像ファイルＡを取り出す際に行われるブロック復号化で用いられる初期ベクトルＡ２、Ａ３とは同一となっている。
【００４８】
以上説明したように、第１の実施の形態に係る複写機によれば、セクタ単位毎の初期ベクトルを用いてセクタ単位毎にブロック暗号化を行うことにより、暗号化されたファイル途中のデータのみをセクタ単位で高速に取り出すことができ、また、セクタ単位毎に用いられる初期ベクトルを、ファイル毎に用いられる初期ベクトルを変更して生成することにより、初期ベクトルの格納領域の増加を抑止することができる。
【００４９】
また、ブロック暗号化されて記憶されたファイルをブロック復号化して取り出すときに、取り出すデータがファイル途中のデータであっても、生成された初期ベクトルを用いて、ファイル途中のデータのみをセクタ単位毎に復号化して取り出すことができる。
【００５０】
また、直前のブロックの暗号文ブロックを用いてブロック暗号化を行うため、ブロック暗号化において、ブロック毎に暗号化鍵と平文ブロックが同じであっても同じ暗号文ブロックが生成されないため、セキュリティを向上させることができる。
【００５１】
また、セクタ毎に初期ベクトルを変更できるため、複数セクタに記憶される内容が同一であっても、異なる暗号文ブロックとなるため、解読されにくい。
【００５２】
また、画像ファイルのサイズをセクタ単位で自由に変更することができ、ファイル管理が容易となる。
【００５３】
また、ファイル途中のデータのみをセクタ単位で取り出し可能なため、例えば不連続なアドレスからの連続読み出しも可能となる。
【００５４】
なお、本実施の形態では、ＬＳＩチップに暗号化及び復号化を行う機能を実装した場合を例に説明したが、これに限定されるものではなく、暗号化及び復号化を行う機能を実現したプログラムを予め記憶し、ＣＰＵによってこのプログラムを実行して、上述した暗号化及び復号化を行うようにしてもよい。
【００５５】
また、ファイルの先頭ブロックをブロック暗号化するときには、記憶された初期ベクトルをそのまま用いる場合を例に説明したが、ファイルの先頭ブロックについても、他のセクタと同様に、記憶された初期ベクトルを変更して新たに生成された初期ベクトルを用いてブロック暗号化するようにしてもよい。その場合には、ファイルの先頭ブロックについてブロック復号化する際にも、記憶された初期ベクトルを変更して生成した初期ベクトルを用いてブロック復号化するようにすればよい。
【００５６】
また、画像ファイルをＨＤＤに記憶する場合を例に説明したが、他の記憶媒体に画像ファイルを記憶するようにしてもよい。この場合には、記憶媒体の論理アドレス分割単位に画像ファイルを分割して記憶し、初期ベクトルを論理アドレス分割単位毎に生成するようにすればよい。
【００５７】
次に、本発明の第２の実施の形態に係る画像処理装置について説明する。なお、第１の実施の形態と同一の構成、作用については、第１の実施の形態と同一符号を付してその説明を省略する。
【００５８】
第２の実施の形態では、共通の初期ベクトルとブロック暗号化した暗号文ブロックを記憶させるセクタのアドレスとに基づいて初期ベクトルを生成し、生成した初期ベクトルを用いて、セクタ毎にブロック暗号化処理を行う点が第１の実施の形態と異なっている。
【００５９】
図６に示すように、第２の実施の形態に係る複写機のデータ処理装置１２８には、画像ファイルのブロック暗号化においてセクタ毎に用いられる初期ベクトルを生成する基となる共通初期ベクトルを格納する共通初期ベクトル格納メモリ１３０と、ＨＤＤ２２のセクタアドレスを格納するアドレス格納メモリ１３２と、共通初期ベクトル格納メモリ１３０に格納された共通初期ベクトル及びアドレス格納メモリ１３２に格納されたセクタアドレスに基づいて、画像ファイルのブロック暗号化において、セクタ毎に用いられる初期ベクトルを生成する初期ベクトル生成部１３４と、バスインタフェース３０と、共通鍵格納メモリ３６と、暗号化部３８と、ＨＤＤインタフェース４０とが設けられている。これらの各部の機能は、例えば、ＬＳＩチップの機能として実装されている。
【００６０】
なお、第２の実施の形態に係る複写機の他の構成は、第１の実施の形態と同様なので、説明を省略する。
【００６１】
第２の実施の形態に係る暗号化処理ルーチンについて図７を用いて説明する。
【００６２】
まず、ステップ１００において、画像ファイルが入力されたか否かが判定され、スキャナ２４によって生成された画像ファイルが、バス２０を介して入力されると、ステップ１００からステップ１０２へ進み、画像ファイルの先頭ブロックを暗号化対象ブロックに設定する。
【００６３】
そして、ステップ２００において、共通初期ベクトル格納メモリ１３０に格納された共通初期ベクトルを読み込み、ステップ１０４において、暗号化対象ブロックが、ファイルをセクタ単位に分割した場合におけるセクタの先頭ブロックであるか否かを判定し、画像ファイルをセクタ単位に分割した場合の何れかのセクタの先頭ブロックである場合には、ステップ２０２において、暗号化対象ブロックのセクタが記憶されるＨＤＤ２２のセクタアドレスをアドレス格納メモリ１３２から読み込み、共通初期ベクトルとセクタアドレスとに基づいて、初期ベクトルを生成する。
【００６４】
なお、初期ベクトルを生成する方法としては、例えば、図８に示すように、共通初期ベクトルとセクタアドレスとのビット毎の排他的論理和（ＸＯＲ）を演算して、演算結果を初期ベクトルとして生成する方法とすればよい。または、所定のビットの並び替えにより初期ベクトルを生成する方法でもよく、また、他の公知の方法でもよい。
【００６５】
そして、ステップ２０４では、ステップ２０２で生成された初期ベクトルを暗号化における直前ブロックの暗号文ブロックとして設定し、ステップ１１４で、図３で説明したブロック暗号化処理を行い、ステップ１１６において、ＨＤＤインタフェース４０によって、暗号文ブロックをＨＤＤ２２に記憶させる。
【００６６】
一方、ステップ１０４で、暗号化対象ブロックが、画像ファイルをセクタ単位に分割した場合の何れのセクタの先頭ブロックでもない場合には、ステップ１１４へ移行し、ステップ１１４で、図３で説明したように、直前のブロックの暗号文ブロックを用いてブロック暗号化処理を行う。
【００６７】
ステップ１１８では、暗号化対象ブロックが、画像ファイルの最終ブロックであるか否かを判定し、ブロック暗号化処理が行われていないブロックがある場合には、ステップ１２０において、画像ファイルにおける次のブロックを、暗号化対象ブロックに設定し、ステップ１０４へ戻るが、一方、画像ファイルの全てのブロックについて、ブロック暗号化処理が行われた場合には、暗号化処理ルーチンを終了する。
【００６８】
上記のようにブロック暗号化処理が行われると、図９に示すように、ＨＤＤ２２における画像ファイルＡが記憶されている先頭セクタには、共通初期ベクトルと先頭セクタのセクタアドレスとに基づいて生成された初期ベクトルを用いてブロック暗号化された暗号文ブロックが記憶され、２番目のセクタ及び３番目のセクタの各々については、共通初期ベクトルと各々のセクタアドレスとに基づいて生成された初期ベクトルを用いてブロック暗号化された暗号文ブロックが記憶される。また、他の画像ファイルＢについても、同様に、共通初期ベクトルとセクタアドレスとに基づいて生成された初期ベクトルを用いてブロック暗号化された暗号文ブロックが記憶される。
【００６９】
また、ＨＤＤ２２から画像ファイルＡの先頭セクタが取り出される場合には、共通初期ベクトルと先頭セクタのセクタアドレスとに基づいて生成された初期ベクトルを用いて復号化して、復号化された平文ブロックが取り出される。
【００７０】
また、ＨＤＤ２２から画像ファイルＡの２番目のセクタ又は３番目のセクタのみが取り出される場合には、共通初期ベクトルと各々のセクタアドレスとに基づいて生成された初期ベクトルを用いて復号化して、復号化された平文ブロックが取り出される。
【００７１】
以上説明したように、第２の実施の形態に係る複写機によれば、セクタ単位毎の初期ベクトルを用いてセクタ単位毎にブロック暗号化を行うことにより、暗号化されたファイル途中のデータのみをセクタ単位毎に高速に取り出すことができ、また、セクタ単位毎に用いられる初期ベクトルを、共通初期ベクトル及びセクタアドレスに基づいて生成することにより、初期ベクトルの格納領域の増加を抑止することができる。また、共通初期ベクトルを用いて、初期ベクトルを生成するようにすることにより、共通初期ベクトルのみを格納しておくだけでよいため、初期ベクトルの格納領域を大幅に削減することができる。
【００７２】
また、ブロック暗号化されて記憶されたファイルをブロック復号化して取り出すときに、取り出すデータがファイル途中のデータであっても、生成された第２の初期ベクトルを用いて、ファイル途中のデータのみをセクタ単位毎に復号化して取り出すことができる。
【００７３】
なお、本実施の形態では、ＬＳＩチップに暗号化及び復号化を行う機能を実装した場合を例に説明したが、これに限定されるものではなく、暗号化及び復号化を行う機能を実現したプログラムを予め記憶し、ＣＰＵによってこのプログラムを実行して、上述した暗号化及び復号化を行うようにしてもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明の第１の実施の形態に係る複写機の構成を示す概略図である。
【図２】本発明の第１の実施の形態に係るデータ処理装置の機能を示すブロック図である。
【図３】本発明の第１の実施の形態に係るデータ処理装置におけるブロック暗号化及びブロック復号化を説明するための図である。
【図４】本発明の第１の実施の形態に係るデータ処理装置において実行される暗号化処理ルーチンの内容を示すフローチャートである。
【図５】本発明の第１の実施の形態に係るＨＤＤに記憶された画像ファイルの様子を示すイメージ図である。
【図６】本発明の第２の実施の形態に係るデータ処理装置の機能を示すブロック図である。
【図７】本発明の第２の実施の形態に係るデータ処理装置において実行される暗号化処理ルーチンの内容を示すフローチャートである。
【図８】本発明の第２の実施の形態に係るデータ処理装置における初期ベクトルの生成方法を説明するための図である。
【図９】本発明の第２の実施の形態に係るＨＤＤに記憶された画像ファイルの様子を示すイメージ図である。
【符号の説明】
【００７５】
１０  複写機
１２  ＲＯＭ
１４  ＣＰＵ
１６  ＲＡＭ
１８、１２８  データ処理装置
２２  ＨＤＤ
２４  スキャナ
２８  操作パネル部
３０  バスインタフェース
３２  初期ベクトル格納メモリ
３４  初期ベクトル変更部
３６  共通鍵格納メモリ
３８  暗号化部
４０  ＨＤＤインタフェース
１３０  共通初期ベクトル格納メモリ
１３２  アドレス格納メモリ
１３４  初期ベクトル生成部
【図１】
2007183514.tif 000003
【図２】
2007183514.tif 000004
【図３】
2007183514.tif 000005
【図４】
2007183514.tif 000006
【図５】
2007183514.tif 000007
【図６】
2007183514.tif 000008
【図７】
2007183514.tif 000009
【図８】
2007183514.tif 000010
【図９】
2007183514.tif 000011