(57)【要約】 【課題】  カウンタ値とデータとを関連付けたテーブルを作成することなく暗号化、復号化することができる暗号処理装置を提供する【解決手段】  ＡＥＳ暗号処理ブロック２０１が、第２ＬＳＩ１０５からのデータを暗号化および復号化する際、カウンタ値生成ブロック２０４がカウンタ値を生成する。このカウンタ値生成ブロック２０４は、暗号化データを記憶するＨＤＤ１０６のアドレス値に基づいてカウンタ値を生成する。【選択図】      図２
2009075474.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータを暗号化処理し、外部記憶装置に出力する暗号化処理装置において、
データを暗号化および復号化する暗号処理ブロックと、
暗号化および復号化に必要な補助値を生成する生成ブロックとを有し、
前記生成ブロックは、データが記憶される前記外部記憶装置のアドレス値に基づいて前記補助値を生成することを特徴とする暗号処理装置。
【請求項２】
前記暗号処理ブロックは、ＡＥＳによる暗号化および復号化を行い、
前記補助値は、ＡＥＳのＣＴＲモードにおけるカウンタ値であることを特徴とする請求項１記載の暗号処理装置。
【請求項３】
前記生成ブロックは、複数の生成方式によってカウンタ値を生成可能に構成されることを特徴とする請求項２記載の暗号処理装置。
【請求項４】
前記生成ブロックは、前記アドレス値と、１セクタのデータ量を暗号化処理の単位データ量で除した値とを組み合わせてカウンタ初期値を生成することを特徴とする請求項２記載の暗号処理装置。
【請求項５】
前記カウンタ値は、ビット幅を任意に設定でき、保存ビット位置を変更することが可能なビット構成を有することを特徴とする請求項２記載の暗号処理装置。
【請求項６】
生成されたカウンタ値を変換する変換ブロックをさらに有することを特徴とする請求項２記載の暗号処理装置。
【請求項７】
前記変換ブロックは、生成されたカウンタ値のビット入れ替えを行うことを特徴とする請求項６記載の暗号処理装置。
【請求項８】
前記変換ブロックは、生成されたカウンタ値のビット反転を行うことを特徴とする請求項６記載の暗号処理装置。
【請求項９】
前記変換ブロックは、生成されたカウンタ値のビットコピーを行うことを特徴とする請求項６記載の暗号処理装置。
【請求項１０】
前記変換ブロックは、生成されたカウンタ値のビット演算を行うことを特徴とする請求項６記載の暗号処理装置。
【請求項１１】
前記変換ブロックは、生成されたカウンタ値をハッシュ関数変換することを特徴とする請求項６記載の暗号処理装置。
【請求項１２】
前記変換ブロックは、複数種類の変換方式を有し、使用する変換方式が選択可能に構成されることを特徴とする請求項６記載の暗号処理装置。
【請求項１３】
前記カウンタ値を生成する第２生成ブロックをさらに有し、
生成された２つのカウンタ値から１つのカウンタ値を演算することを特徴とする請求項２記載の暗号処理装置。
【請求項１４】
前記第２生成ブロックは、前記生成ブロックが生成したカウンタ値と自らが生成したカウンタ値とから１つのカウンタ値を演算することを特徴とする請求項１３記載の暗号処理装置。
【請求項１５】
前記生成ブロックは、前記第２生成ブロックが生成したカウンタ値と自らが生成したカウンタ値とから１つのカウンタ値を演算することを特徴とする請求項１３記載の暗号処理装置。
【請求項１６】
前記生成ブロックと前記第２生成ブロックは、同時にカウンタ値を生成し、生成された２つのカウンタ値から１つのカウンタ値を演算することを特徴とする請求項１３記載の暗号処理装置。
【請求項１７】
前記暗号処理ブロックは、生成されたカウンタ値を使用するか否かを選択可能に構成されることを特徴とする請求項１記載の暗号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力されたデータを暗号化処理して出力する暗号処理装置に関する。
【背景技術】
【０００２】
パーソナルコンピュータ（以下、ＰＣという。）やディジタル複合機等の補助記憶装置のデータには、貴重な財産的価値があるため、これを適切に保護することが従来から重要視されている。特に、インターネットなどのネットワークへの常時接続環境が整備されている今日においては、ＰＣのみならず組み込みシステムに対してもセキュリティホールを探索しネットワークを経由して補助記憶装置に不正アクセスされることがあることから、これを効果的に防止するためのファイアウォールなど機密情報、重要情報の漏えい防止技術が注目されている。たとえば、ハードディスクに記憶されている情報を暗号化処理して保護する装置が存在する。
【０００３】
ところが、ネットワークなどを経由する補助記憶装置への不正アクセスに加えて、実際にＰＣが置かれている場所に物理的に侵入して補助記憶装置内の貴重な情報を盗み取るといった犯罪も少なくないため、物理的侵入をも想定したセキュリティ対策を行う必要がある。
【０００４】
また、物理的侵入を防止する手段が万全であったとしても、ＰＣを廃棄する場合などに補助記憶装置の物理フォーマットを怠ってしまう等の人為的なミスで、補助記憶装置の内容が漏洩することもある。
【０００５】
このため、物理的侵入を防止する対策を講じるだけでなく、これに加えて、万一、物理的侵入を許してしまった場合や、ＰＣごと他者の手に渡ってしまった場合にも、補助記憶装置の内容が読み取られないようにすることがより重要な技術であるといえる。
【０００６】
そこで、従来技術では、ハードディスク（補助記憶装置）とＰＣとの間に、データ転送を制御するためのセキュリティボード（データ保護装置）を配置して、ＰＣから出力されるデータを当該セキュリティボードにおいて暗号化した上でハードディスクに記憶するとともに、当該セキュリティボードにマスタキーを装着している場合にのみ補助記憶装置に記憶したデータを復号しながら読み出すことを可能にして、正当な権限のある者のみが補助記憶装置内のデータにアクセスできるようにしてデータの保護を図るものがある。
【０００７】
特許文献１記載のシステムでは、ファイルシステムが有する暗号化コーポーネント自身がＡＥＳ（Advanced Encryption Standard）を用いて固定の鍵を生成している。
【０００８】
特許文献２記載のデータ端末装置では、暗号化されたコンテンツデータおよびコンテンツデータを再生するためのライセンスを格納する領域を指定するためのエントリ番号と、暗号化コンテンツデータとのファイル名とを関連付けて記憶している。
【０００９】
【特許文献１】特開２００５−１５８０４３号公報
【特許文献２】特開２００２−１６４８８５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
従来の暗号処理装置は、外部から直接に暗号化処理時の鍵値を書き込む回路構成であるため、鍵値の信号を容易に読み取られるという問題がある。
【００１１】
ＡＥＳによる暗号化処理の動作モードの１つであるＣＴＲ（Counter）モードでは、データを暗号化した上でハードディスク等の外部記憶装置へ保存する際、暗号化に使用したカウンタ値生成方法とデータとの関連付けを示すテーブルを作成し、ＣＰＵがアクセスできるメモリ領域にこのテーブルを格納しておく必要がある。しかし、外部記憶装置の大容量化に伴い、作成するテーブル自体の容量も大きくなってしまう。
【００１２】
また、保存したデータ単位の一部のみをハードディスクから読み出す場合、そのデータ単位の初期カウンタ値をテーブルから読み出し、読み出したいデータを復号化するためのカウンタ初期値を計算する必要がある。
【００１３】
本発明の目的は、カウンタ値とデータとを関連付けたテーブルを作成することなく暗号化、復号化することができる暗号処理装置を提供することである。
【課題を解決するための手段】
【００１４】
本発明は、入力されたデータを暗号化処理し、外部記憶装置に出力する暗号化処理装置において、
データを暗号化および復号化する暗号処理ブロックと、
暗号化および復号化に必要な補助値を生成する生成ブロックとを有し、
前記生成ブロックは、データが記憶される前記外部記憶装置のアドレス値に基づいて前記補助値を生成することを特徴とする暗号処理装置である。
【００１５】
また本発明は、前記暗号処理ブロックは、ＡＥＳによる暗号化および復号化を行い、
前記補助値は、ＡＥＳのＣＴＲモードにおけるカウンタ値であることを特徴とする。
【００１６】
また本発明は、前記生成ブロックは、複数の生成方式によってカウンタ値を生成可能に構成されることを特徴とする。
【００１７】
また本発明は、前記生成ブロックは、前記アドレス値と、１セクタのデータ量を暗号化処理の単位データ量で除した値とを組み合わせてカウンタ初期値を生成することを特徴とする。
【００１８】
また本発明は、前記カウンタ値は、ビット幅を任意に設定でき、保存ビット位置を変更することが可能なビット構成を有することを特徴とする。
【００１９】
また本発明は、生成されたカウンタ値を変換する変換ブロックをさらに有することを特徴とする。
【００２０】
また本発明は、前記変換ブロックは、生成されたカウンタ値のビット入れ替えを行うことを特徴とする。
【００２１】
また本発明は、前記変換ブロックは、生成されたカウンタ値のビット反転を行うことを特徴とする。
【００２２】
また本発明は、前記変換ブロックは、生成されたカウンタ値のビットコピーを行うことを特徴とする。
【００２３】
また本発明は、前記変換ブロックは、生成されたカウンタ値のビット演算を行うことを特徴とする。
【００２４】
また本発明は、前記変換ブロックは、生成されたカウンタ値をハッシュ関数変換することを特徴とする。
【００２５】
また本発明は、前記変換ブロックは、複数種類の変換方式を有し、使用する変換方式が選択可能に構成されることを特徴とする。
【００２６】
また本発明は、前記カウンタ値を生成する第２生成ブロックをさらに有し、
生成された２つのカウンタ値から１つのカウンタ値を演算することを特徴とする。
【００２７】
また本発明は、前記第２生成ブロックは、前記生成ブロックが生成したカウンタ値と自らが生成したカウンタ値とから１つのカウンタ値を演算することを特徴とする。
【００２８】
また本発明は、前記生成ブロックは、前記第２生成ブロックが生成したカウンタ値と自らが生成したカウンタ値とから１つのカウンタ値を演算することを特徴とする。
【００２９】
また本発明は、前記生成ブロックと前記第２生成ブロックは、同時にカウンタ値を生成し、生成された２つのカウンタ値から１つのカウンタ値を演算することを特徴とする。
【００３０】
また本発明は、前記暗号処理ブロックは、生成されたカウンタ値を使用するか否かを選択可能に構成されることを特徴とする。
【発明の効果】
【００３１】
本発明によれば、暗号処理ブロックがデータを暗号化および復号化する際に必要な補助値を、生成ブロックが生成する。この生成ブロックは、データが記憶される前記外部記憶装置のアドレス値に基づいて前記補助値を生成する。
【００３２】
また本発明によれば、暗号処理ブロックは、ＡＥＳによる暗号化および復号化を行い、前記補助値は、ＡＥＳのＣＴＲモードにおけるカウンタ値である。
【００３３】
これにより、暗号化するデータごとにカウンタ値を生成したり、データとカウンタ初期値とを関連付けるテーブルを作成、記憶する必要がないので、暗号化に必要な演算量および記憶容量を削減することができる。さらに、暗号化されたデータの途中から、または一部分のみを復号化したい場合に、アドレス値からカウンタ初期値を即座に算出することができる。
【００３４】
また本発明によれば、前記生成ブロックは、複数の生成方式によってカウンタ値を生成することができるので、よりセキュリティ機能を向上させることができる。
【００３５】
また本発明によれば、前記生成ブロックは、前記アドレス値と、１セクタのデータ量を暗号化処理の単位データ量で除した値とを組み合わせてカウンタ初期値を生成する。
【００３６】
また本発明によれば、前記カウンタ値は、ビット幅を任意に設定でき、保存ビット位置を変更することができる。
【００３７】
これにより、単位セクタ量、アドレス単位が異なる外部記憶装置にも対応することができる。
【００３８】
また本発明によれば、生成されたカウンタ値を変換する変換ブロックをさらに有する。
変換ブロックによる変換方法としては、生成されたカウンタ値のビット入れ替え、
生成されたカウンタ値のビット反転、生成されたカウンタ値のビットコピー、生成されたカウンタ値のビット演算などが適用可能である。また、生成されたカウンタ値をハッシュ関数変換することもできる。
【００３９】
また本発明によれば、使用する変換方式が選択可能に構成されるので、カウンタ値の類推が困難となり、セキュリティ機能を向上させることができる。
【００４０】
また本発明によれば、前記カウンタ値を生成する第２生成ブロックをさらに有し、生成された２つのカウンタ値から１つのカウンタ値を演算する。
【００４１】
このとき、前記第２生成ブロックが、前記生成ブロックが生成したカウンタ値と自らが生成したカウンタ値とから１つのカウンタ値を演算してもよく、前記生成ブロックが、前記第２生成ブロックが生成したカウンタ値と自らが生成したカウンタ値とから１つのカウンタ値を演算してもよい。さらに、前記生成ブロックと前記第２生成ブロックが、同時にカウンタ値を生成し、生成された２つのカウンタ値から１つのカウンタ値を演算してもよい。
【００４２】
これにより、カウンタ値の類推が困難となり、セキュリティ機能を向上させることができる。
【００４３】
また本発明によれば、前記暗号処理ブロックは、生成されたカウンタ値を使用するか否かを選択可能に構成される。
【００４４】
生成されたカウンタ値を使用する場合は、ＣＴＲモードで暗号化を行い、使用しない場合は、ＣＴＲモード以外の他のモード、たとえばＥＣＢ、ＣＢＣ、ＣＦＢ、ＯＦＢなどの各モードで暗号化を行う。何らかの原因でＣＴＲモードによる暗号化ができなくなった場合、他のモードに移行することにより装置を継続的に動作させることができる。
【発明を実施するための最良の形態】
【００４５】
以下、図面を用いて本発明の実施形態を説明する。
図１は、本発明の実施の一形態である暗号処理装置１の構成を示すブロック図である。
【００４６】
暗号処理装置１は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、第１ＬＳＩ１０４、第２ＬＳＩ１０５、ＨＤＤ１０６で構成される。
【００４７】
ＣＰＵ（中央演算処理装置）１０１は、暗号処理装置１の全体を制御する。ＲＯＭ（
Read Only Memory）１０２は、暗号処理装置１を動作させるためのファームウェアプログラムが格納されており、ＣＰＵ１０１動作開始時に読み出され、制御に使用される。
【００４８】
ＲＡＭ（Random Access Memory１０３は、ＲＯＭ１０２から読み出したプログラムを展開する際に使用される記憶領域としての使用や、装置動作中の各種制御値等を一時的に格納する領域として使用される。
【００４９】
第１ＬＳＩ（Large Scale Integration）１０４は、共通鍵暗号生成機能を有する。第２ＬＳＩ１０５は、第１ＬＳＩ１０４に対してデータ信号を送受信するものである。ＨＤＤ（Hard Disk Drive）１０６は、暗号化後のデータを保存する記憶装置である。
【００５０】
それぞれの回路はデータバス１０７によりデータの送受信が可能に構成されており、さらに第１ＬＳＩ１０４と第２ＬＳＩ１０５との間にＬＳＩデータバス１０８が設けられ、直接にデータのやりとりが可能となっている。
【００５１】
図２は、第１ＬＳＩ１０４の構成を示すブロック図である。
第１ＬＳＩ１０４は、ＡＥＳ暗号処理ブロック２０１、システムバスＩ／Ｆ（インターフェイス）２０２、ＨＤＤ  Ｉ／Ｆ２０３、カウンタ値生成ブロック２０４、ＣＰＵ  Ｉ／Ｆ２０５を含んで構成される。
【００５２】
ＡＥＳ暗号処理ブロック２０１は、共通鍵暗号方式であるＡＥＳによってデータの暗号化・復号化を行うハードウェア回路である。
【００５３】
システムバスＩ／Ｆ２０２は、第２ＬＳＩ１０５から送信されるデータを、ＡＥＳ暗号処理ブロック２０１に送るためのインターフェイスである。ＨＤＤ  Ｉ／Ｆ２０３は、暗号化処理後のデータを、ＨＤＤ１０６に送信するためのインターフェイスである。
【００５４】
データの暗号化時には、データはシステムバスＩ／Ｆ２０２を介して第２ＬＳＩ１０５から、ＡＥＳ暗号処理ブロック２０１を経て暗号化され、ＨＤＤ  Ｉ／Ｆ２０３を通じてＨＤＤ１０６に記憶される。
【００５５】
データの複合化時には、データはＨＤＤ  Ｉ／Ｆ２０３を介してＨＤＤ１０６から読み出され、共通鍵暗号処理ブロック２０１で復号されて、システムバスＩ／Ｆ２０２を通じて第２ＬＳＩ１０５へ出力される。これは、一般的なデータ転送方向であるが、たとえば、ＨＤＤ１０６に保存された暗号化されていないデータを暗号化して外部へ転送する場合は、暗号化・復号化時に転送されるデータの流れは上記とは逆方向となる。
【００５６】
カウンタ値生成ブロック２０４は、ＡＥＳ暗号処理ブロック２０１に対して暗号化・復号化処理に使用するカウンタ値を生成して供給する。
【００５７】
ここで、カウンタ値は、ＡＥＳの動作モードの１つであるＣＴＲモードにおいて使用される。ＡＥＳは、暗号化の対象となるデータを１２８ビット毎のブロック単位に分割し、１ブロック毎に暗号化・復号化の処理を順次実施するが、ＣＴＲモードの場合は１ブロックのデータにつき同じ１２８ビットのカウンタ値を必要とし、１２８ビットのデータと１２８ビットのカウンタ値を使って暗号、復号処理を実現する。
【００５８】
ＣＰＵ  Ｉ／Ｆ２０５は、ＣＰＵ１０１とのデータの通信を行なうためのインターフェイスである。ＣＰＵ１０１は、ＣＰＵ  Ｉ/Ｆ２０５を介して第１ＬＳＩ１０４に対して書き込みおよび読み出しを行い、第１ＬＳＩ１０４の各種動作モード設定や、データ転送の起動を行う。
【００５９】
ＣＴＲモードにおいては、暗号化されたデータを復号化する際に、暗号化時に使用したカウンタ値と全く同じカウンタ値をＡＥＳ暗号処理ブロック２０１に与えなければ暗号化されたデータを復号化することができない。したがって、復号化のためには、暗号化時にどのような規則に従ってカウンタ値を生成したかをＣＰＵ１０１が記憶しておく必要がある。
【００６０】
規則の一例としては、カウンタ初期値、カウントアップ値、カウンタ最小値、カウンタ最大値等の設定がある。従来の技術では、これらカウンタ値の生成規則を、暗号化してハードディスクへ記憶するデータ単位毎にテーブルとして保有し、ＣＰＵ１０１による読み出し、書き込み可能なメモリ領域にテーブルを保存しておく。復号化時には、復号化したいデータのテーブル情報を読み出すことによって、カウンタ値生成規則を認識して復号化処理を正しく実施する。
【００６１】
しかし、このテーブル情報はハードディスクへ保存するデータ量が大きくなると、当然それに伴って情報量が多くなり、プログラム容量も増加してしまう。そこで、本発明では、カウンタ値をハードディスクのアドレスに関連付けて生成することによって、テーブルを用いることなくＣＴＲモードでの復号化を可能とするものである。
【００６２】
ハードディスクへ暗号化データを保存する際、ハードディスクのどのアドレスへ保存するかを必ず決定しなければならない。ここで、アドレスとは、ＬＢＡ（Logical Block 
Addressing）、ＣＨＳ（Cylinder Head Sector）等、ハードディスクのデータ保存位置を規定する値のことを指す。一般的に、ハードディスクを含む大容量外部記憶装置は、規定のデータ量を１セクタとし、このセクタ単位で前述のＬＢＡ、ＣＨＳ等のアドレス値が割り当てられている。ハードディスクであればセクタ単位は５１２バイトであることが多い。
【００６３】
ここで、ＡＥＳの暗号処理ブロック単位は１２８ビット、つまり１６バイトであるため、１セクタ５１２バイトのデータをＡＥＳ暗号処理する場合、３２回の処理を順次実施する計算になる。そこで、アクセスするアドレス値を３２倍した値をカウンタ値の初期値として与える。
【００６４】
図３は、カウンタ値のビット割り当てを説明するための図である。図に示すように、１２８ビットのビット列において、下位５ビットをセクタ内アドレスビット、上位４８ビットをセクタアドレスビットとする。さらに、カウントアップ値は、ＡＥＳ暗号処理ブロック２０１で１２８ビットを処理する毎に１ずつ増加させる。このように定義すると、以下のようなカウンタ値生成となる。
【００６５】
たとえば、ハードディスクのアドレス値「１」に対して１０２４バイト（２セクタ分）のデータを書き込みするとき、カウンタ初期値は、１×３２＝３２となる。カウントアップ値は１２８ビット処理毎に１ずつ増加するため、カウンタ値は３２、３３、３４…増加し、５１２バイト（１セクタ）最後のカウンタ値は６３となる。そして、ハードディスクアドレス値が「２」である２セクタ目の最初のカウンタ値は６４であり、セクタアドレスビットは「２」となるため、ハードディスクアドレス値とカウンタ値の一部であるセクタアドレスビットとを完全に一致させることが可能となる。
【００６６】
ハードディスクからデータを読み出す場合には、書き込みデータのアドレス値である「１」を元にカウンタ初期値を算出することによって復号化が可能となる。また、２セクタ目、つまりハードディスクアドレス値が「２」のデータのみを読み出すことが必要な場合でもアドレス値「２」を元にカウンタ初期値を算出する（２×３２＝６４）ことによってデータ途中からでも容易に復号化が可能となる。
【００６７】
外部記憶装置のセクタ単位は前述のように必ず５１２バイトであるとは限らない。また、ハードディスクのアドレス情報であるＬＢＡであれば４８ビットであるが、アドレス情報のビット幅についても装置によって異なる。したがって、様々な単位セクタ量やアドレス単位を持った装置に対応するため、セクタ内アドレスビットとセクタアドレスビットとはビット幅を変更可能に設定することが好ましい。
【００６８】
図４は、カウンタ値の可変なビット割り当てを説明するための図である。セクタ内アドレスビットをｂｉｔ３〜ｂｉｔ０までの４ビットとし、セクタアドレスビットをｂｉｔ９１〜ｂｉｔ４までの８８ビットに割り当てた例である。この場合、セクタ単位は２５６バイトとなる。
【００６９】
図５は、本発明の他の実施形態である暗号化処理装置のうち第１ＬＳＩ１０４の構成を示すブロック図である。
【００７０】
本実施形態では、第１ＬＳＩ１０４に、カウンタ値生成ブロック２０４で生成したカウンタ値を変換し、変換カウンタ値をＡＥＳ暗号処理ブロック２０１に与えている。
【００７１】
図２で示した構成との違いは、カウンタ値変換ブロック３０１が追加されたことである。したがって、以下では、カウンタ値変換ブロック３０１について主に説明し、他の構成については、前述の第１ＬＳＩ１０４と同じ参照符号を付して説明を省略する。
【００７２】
前述の図２に示した第１ＬＳＩ１０４の回路構成は、カウンタ値がハードディスクアドレス値そのものとなり、暗号解析しようとしたときに容易に類推される可能性が高い値となっている。そこで、カウンタ値生成ブロック２０４で生成されたカウンタ値をカウンタ値変換ブロック３０１で変換することによってＡＥＳ暗号処理ブロック２０１に与えるカウンタ値を容易に類推できないようにすることが好ましい。
【００７３】
カウンタ値の変換には以下のような例が挙げられる。変換例としては、生成された１２８ビットのカウンタ値のビットを並べ変えたり、反転したり、コピーしたりといったビット変換を実施する。
【００７４】
図６は、ビット並び替えおよび反転によるカウンタ値の変換例を示す図である。
ビット並び替えは、図６（ａ）に示すように、１２８ビットのカウンタ値をランダムに並び替えている。ビット反転は、図６（ｂ）に示すように、カウンタ値をビット毎に「１」を「０」に、「０」を「１」に反転変換している。
【００７５】
図７は、ビットコピーによるカウンタ値の変換例を示す図である。
セクタ内アドレスビット、セクタアドレスビットをカウンタ値１２８ビットのうち使用していないビットに再度割り振ることによりカウンタ値を変化させている。
【００７６】
図示しないが、カウンタ値と任意の値による演算を実施することでビット変換を実施してもよい。
【００７７】
また、生成された１２８ビットのカウンタ値をハッシュ関数に通すことによりランダムデータとなるよう変換し、ＡＥＳ暗号処理ブロック２０１に渡すことも可能である。なお、ハッシュ関数により変換を行う場合は、ハッシュ関数値を記憶しておく必要があるが、少なくとも１つの装置に１つの関数値を記憶しておけば十分である。
【００７８】
このように、生成されたカウンタ値を定義に従って変換することにより元のカウンタ値の類推を簡単に行えないようにしている。
【００７９】
図８は、本発明の他の実施形態である暗号化処理装置のうち第１ＬＳＩ１０４の構成を示すブロック図である。
【００８０】
本実施形態では、第１ＬＳＩ１０４に、２つのカウンタ値生成ブロックによって生成し生成したカウンタ値をＡＥＳ暗号処理ブロック２０１に与えている。
【００８１】
図２で示した構成との違いは、カウンタ値生成ブロックＢ４０１が追加されたことである。したがって、以下では、カウンタ値生成ブロックＢ４０１について主に説明し、他の構成については、前述の第１ＬＳＩ１０４と同じ参照符号を付して説明を省略する。
【００８２】
カウンタ値生成ブロックＡ２０４は、図２のカウンタ値生成ブロック２０４と同じである。カウンタ値生成ブロックＡ２０４で生成したカウンタ値を、カウンタ値生成ブロックＢ４０１へ入力し、カウンタ値生成ブロックＢ４０１で生成する任意のカウンタ値と演算することによりＡＥＳ暗号処理ブロック２０１へ入力するカウンタ値を生成する。
【００８３】
生成された２つのカウンタ値は、たとえばカウンタ値全ビットの四則計算、カウンタ値を任意のビット領域に分割し、領域毎に異なった四則計算を行うなどしてＡＥＳ暗号処理ブロック２０１へ入力するカウンタ値を生成する。
【００８４】
カウンタ値生成ブロックＢ４０１は、ビット変換処理と同様、カウンタ値生成ブロックＡ２０４で生成されたカウンタ値を、容易に予想できない値に変換する。カウンタ値生成ブロックＡ２０４とカウンタ値生成ブロックＢ４０１の並び順は反対であってもよく、カウンタ値生成ブロックＢ４０１が先にカウンタ値を生成する場合は、カウンタ値生成ブロックＢ４０１にて演算処理を実行する。また、カウンタ値生成ブロックＡ２０４とカウンタ値生成ブロックＢ４０１によって２つのカウンタ値を同時に生成し、生成した２つのカウンタ値を演算する構成でも構わない。
【００８５】
図９は、第１ＬＳＩ１０４の動作設定処理を示すフローチャートである。
まず、ステップＳ１では、ＣＰＵ１０１が各種Ｉ／Ｆの動作設定を実施する。たとえば、システムバスＩ／Ｆ２０２およびＨＤＤ  Ｉ／Ｆ２０３を、読み出しか書き込みのいずれかに設定したり、データ転送量の設定や各種Ｉ／Ｆ独自の必要設定を実施する。
【００８６】
次にステップＳ２では、ＡＥＳ暗号処理ブロック２０１の動作モードの設定を行なう。動作モードとしては、ＣＰＵ１０１が「暗号化処理を設定する。」または、「復号化処理を設定する。」のいずれかのモードに設定する他に、「鍵長を設定する。」、「暗号・復号のモード設定（ＥＣＢ／ＣＢＣ等）をする」等、暗号処理における基本的な動作設定を行う。
【００８７】
ステップＳ３では、カウンタ値生成ブロック２０４の動作モードを設定する。ここでは、カウンタ値の生成を実施する、しないの設定や、データ転送量設定、カウンタ初期値となるＬＢＡ値の設定を実施する。また、暗号化が解析された際に使用する全く別のカウンタ値を生成することを想定し、動作方法を選択する。
【００８８】
ステップＳ４では、カウンタ値変換ブロック３０１の動作モードを設定する。ここでは、カウンタ値生成ブロック２０４によって生成された値を変換するカウンタ値変換ブロック３０１の動作方法を設定する。ビット変換、ビット反転、ハッシュ関数使用等、カウンタ変換ブロックの動作方法を選択する。
【００８９】
ステップＳ５では、ＣＰＵ１０１のライト信号によって、データの転送をスタートする。本装置の場合、通常ハードディスクがデータ転送のマスターを担うため、ＣＰＵ１０１はＨＤＤ  Ｉ／Ｆ２０３に対してデータ転送指示を行う。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施の一形態である暗号化処理装置１の構成を示すブロック図である。
【図２】第１ＬＳＩ１０４の構成を示すブロック図である。
【図３】カウンタ値のビット割り当てを説明するための図である。
【図４】カウンタ値の可変なビット割り当てを説明するための図である。
【図５】本発明の他の実施形態である暗号化処理装置のうち第１ＬＳＩ１０４の構成を示すブロック図である。
【図６】ビット並び替えおよび反転によるカウンタ値の変換例を示す図である。
【図７】ビットコピーによるカウンタ値の変換例を示す図である。
【図８】本発明の他の実施形態である暗号化処理装置のうち第１ＬＳＩ１０４の構成を示すブロック図である。
【図９】第１ＬＳＩ１０４の動作設定処理を示すフローチャートである。
【符号の説明】
【００９１】
１  暗号処理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  第１ＬＳＩ
１０５  第２ＬＳＩ
１０６  ＨＤＤ
２０１  ＡＥＳ暗号処理ブロック
２０２  システムバスＩ／Ｆ（インターフェイス）
２０３  ＨＤＤ  Ｉ／Ｆ
２０４  カウンタ値生成ブロック
２０５  ＣＰＵ  Ｉ／Ｆ
【図１】
2009075474.tif 000003
【図２】
2009075474.tif 000004
【図３】
2009075474.tif 000005
【図４】
2009075474.tif 000006
【図５】
2009075474.tif 000007
【図６】
2009075474.tif 000008
【図７】
2009075474.tif 000009
【図８】
2009075474.tif 000010
【図９】
2009075474.tif 000011