(57)【要約】  暗号装置（１００）において、分割部（１３０）は、同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、第２入力部（１２０）から入力された平文データを当該処理単位で分割する。暗号部（１５０）は、第１入力部（１１０）から入力された共通鍵から、分割部（１３０）での平文データの分割数Ｎと同じ数の互いに異なる処理鍵１〜Ｎを生成し、分割部（１３０）で決定された処理単位ごとに、生成した同じ処理鍵Ｉ（Ｉ＝１，２，・・・，Ｎ）を使用して、第２入力部（１２０）から入力された平文データの各ブロックをブロック暗号Ｆにより暗号化することで、暗号化データを生成する。
2015173905.tif 000002
【特許請求の範囲】
【請求項１】
平文データをブロック暗号により暗号化する暗号装置において、
同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成する暗号部と
を備えることを特徴とする暗号装置。
【請求項２】
前記平文データの各ブロックのデータアドレスを計算する計算部
をさらに備え、
前記暗号部は、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記計算部で計算された各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記平文データの各ブロックとから、前記暗号化データを生成することを特徴とする請求項１の暗号装置。
【請求項３】
前記暗号部は、暗号化した各ブロックのデータアドレスと前記平文データの各ブロックとの排他的論理和を計算し、計算結果を前記暗号化データとして出力することを特徴とする請求項２の暗号装置。
【請求項４】
前記分割部は、前記ブロック暗号の構成に応じて、前記処理単位を決定することを特徴とする請求項１から３のいずれかの暗号装置。
【請求項５】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率に応じて、前記処理単位を決定することを特徴とする請求項１から４のいずれかの暗号装置。
【請求項６】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率の逆数を前記処理単位として決定することを特徴とする請求項１から５のいずれかの暗号装置。
【請求項７】
前記暗号部は、前記共通鍵を使用して、前記分割部での前記平文データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成することを特徴とする請求項１から６のいずれかの暗号装置。
【請求項８】
請求項１から７のいずれかの暗号装置と、
データを記憶する記憶媒体と
を備え、
前記暗号装置は、前記共通鍵と前記平文データを前記記憶媒体に書き込む指令とを受けると、前記暗号部で前記暗号化データを生成し、前記暗号化データを前記記憶媒体に書き込むことを特徴とする記憶システム。
【請求項９】
暗号化データをブロック暗号により復号する復号装置において、
同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成する復号部と
を備えることを特徴とする復号装置。
【請求項１０】
前記暗号化データの各ブロックのデータアドレスを計算する計算部
をさらに備え、
前記復号部は、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記計算部で計算された各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記暗号化データの各ブロックとから、前記平文データを生成することを特徴とする請求項９の復号装置。
【請求項１１】
前記復号部は、暗号化した各ブロックのデータアドレスと前記暗号化データの各ブロックとの排他的論理和を計算し、計算結果を前記平文データとして出力することを特徴とする請求項１０の復号装置。
【請求項１２】
前記分割部は、前記ブロック暗号の構成に応じて、前記処理単位を決定することを特徴とする請求項９から１１のいずれかの復号装置。
【請求項１３】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率に応じて、前記処理単位を決定することを特徴とする請求項９から１２のいずれかの復号装置。
【請求項１４】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率の逆数を前記処理単位として決定することを特徴とする請求項９から１３のいずれかの復号装置。
【請求項１５】
前記復号部は、前記共通鍵を使用して、前記分割部での前記暗号化データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成することを特徴とする請求項９から１４のいずれかの復号装置。
【請求項１６】
請求項９から１５のいずれかの復号装置と、
前記暗号化データを記憶する記憶媒体と
を備え、
前記復号装置は、前記共通鍵とデータを前記記憶媒体から読み取る指令とを受けると、前記暗号化データを前記記憶媒体から読み取り、前記復号部で前記平文データを生成し、前記平文データを出力することを特徴とする記憶システム。
【請求項１７】
平文データをブロック暗号により暗号化する暗号方法において、
コンピュータが、同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割し、
前記コンピュータが、共通鍵から、前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成することを特徴とする暗号方法。
【請求項１８】
暗号化データをブロック暗号により復号する復号方法において、
コンピュータが、同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割し、
前記コンピュータが、共通鍵から、前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成することを特徴とする復号方法。
【請求項１９】
平文データをブロック暗号により暗号化する暗号プログラムにおいて、
コンピュータに、
同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割する分割処理と、
共通鍵から、前記分割処理での前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成する暗号処理と
を実行させることを特徴とする暗号プログラム。
【請求項２０】
暗号化データをブロック暗号により復号する復号プログラムにおいて、
コンピュータに、
同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割する分割処理と、
共通鍵から、前記分割処理での前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成する復号処理と
を実行させることを特徴とする復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号装置及び記憶システム及び復号装置及び暗号方法及び復号方法及び暗号プログラム及び復号プログラムに関するものである。本発明は、例えば、共通鍵暗号方式における低遅延処理可能な暗号化及び復号の技術に関するものである。
【背景技術】
【０００２】
近年、コンピュータ又は通信装置を利用した様々なサービスが提供されている。それらのサービスでは、通信の秘匿又は認証を実現するために、暗号技術を用いていることが多い。暗号方式には、大別して、暗号化及び復号で同じ鍵を使う共通鍵暗号と、秘密鍵及び公開鍵の異なる２種類の鍵を使用する公開鍵暗号とがある。共通鍵暗号では、送受信者間で鍵を共有する方法が課題となる。しかし、共通鍵暗号には、公開鍵暗号に比べて、暗号化及び復号に要する処理量が少ない利点がある。そのため、共通鍵暗号は、多くの分野及び用途で使用されている。【０００３】
セキュアな記憶装置の読み書き処理等、応答速度が重視されるアプリケーションを実現するために、リアルタイム性を持つ低遅延処理可能な暗号のニーズが高まっている。低遅延処理を実行可能な共通鍵暗号技術がこれまでにもいくつか提案されている（例えば、非特許文献１参照）。【０００４】
非特許文献１では、低遅延処理可能な共通鍵暗号アルゴリズムの設計例として、ＡＳＩＡＣＲＹＰＴ・２０１２にて発表された、低遅延ブロック暗号アルゴリズムＰＲＩＮＣＥが提案されている。非特許文献１では、これまでに知られているブロック暗号と比べたＰＲＩＮＣＥの安全性が評価されている。しかし、ブロック暗号については、基本的に差分解読法及び線形解読法に対する評価が必要である。非特許文献１では、差分解読法及び線形解読法に対するＰＲＩＮＣＥの証明可能安全性は示されていない。【０００５】
共通鍵暗号アルゴリズムの実装モジュールを外部監視攻撃から守る技術がこれまでにもいくつか提案されている（例えば、特許文献１参照）。【０００６】
特許文献１では、共通鍵暗号アルゴリズムに使用する秘密鍵から複数の連続中間鍵を計算し、内部秘密状態及びメッセージ識別子からメッセージ鍵を導出することで、外部監視攻撃に対してセキュリティを提供する技術が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特表２０１３−５１３３１２号公報
【非特許文献】
【０００８】
【非特許文献１】Ｊ．  Ｂｏｒｇｈｏｆｆ，  Ａ．  Ｃａｎｔｅａｕｔ，  Ｔ．  Ｇｕｎｅｙｓｕ，  Ｅ．  Ｂ．  Ｋａｖｕｎ，  Ｍ．  Ｋｎｅｚｅｖｉｃ，  Ｌ．  Ｒ．  Ｋｎｕｄｓｅｎ，  Ｇ．  Ｌｅａｎｄｅｒ，  Ｖ．  Ｎｉｋｏｖ，  Ｃ．  Ｐａａｒ，  Ｃ．  Ｒｅｃｈｂｅｒｇｅｒ，  Ｐ．  Ｒｏｍｂｏｕｔｓ，  Ｓ．  Ｓ．  Ｔｈｏｍｓｅｎ，  Ｔ．  Ｙａｌｃｉｎ，  “ＰＲＩＮＣＥ  −  Ａ  Ｌｏｗ−ｌａｔｅｎｃｙ  Ｂｌｏｃｋ  Ｃｉｐｈｅｒ  ｆｏｒ  Ｐｅｒｖａｓｉｖｅ  Ｃｏｍｐｕｔｉｎｇ  Ａｐｐｌｉｃａｔｉｏｎｓ”，  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −  ＡＳＩＡＣＲＹＰＴ  ２０１２，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  Ｖｏｌｕｍｅ  ７６５８，  ２０１２，  ｐｐ  ２０８−２２５
【発明の概要】
【発明が解決しようとする課題】
【０００９】
共通鍵暗号アルゴリズムの設計開発は、各種暗号解読法に対するアルゴリズム単体の安全性を評価し、アルゴリズムの仕様を決定して完了するのが一般的である。実際のシステムに開発したアルゴリズムを利用するために、動作条件や処理性能等の要求条件を考慮した暗号モジュールの開発は別途実施されている。そのため、アルゴリズムを適用するシステムの要求条件が厳しい場合には、暗号モジュールの開発に多くの時間と手間がかかる。場合によっては、予定した暗号アルゴリズムが適用できず、安全性の低い別の暗号アルゴリズムを採用することになる。【００１０】
暗号アルゴリズムを開発する際に、安全性と処理性能はトレードオフの関係にある。従来、高い安全性と低遅延処理とを同時に効率良く実現する方式は提案されていない。例えば、前述した低遅延ブロック暗号アルゴリズムＰＲＩＮＣＥでは、アルゴリズムの要求仕様として、安全性のマージンを一般的なブロック暗号と同等以下とし、内部演算処理を簡略化することで、処理遅延をできる限り小さくする方式が採用されている。【００１１】
本発明は、例えば、暗号化又は復号の方式において、高い安全性と低遅延処理とを両立させることを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一の態様に係る、平文データをブロック暗号により暗号化する暗号装置は、
同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成する暗号部とを備える。【００１３】
本発明の一の態様に係る、暗号化データをブロック暗号により復号する復号装置は、
同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成する復号部とを備える。
【発明の効果】
【００１４】
本発明では、所定のブロックの数を処理単位として決定し、処理単位ごとに、同じ処理鍵を使用して、平文データ（又は暗号化データ）の各ブロックをブロック暗号により暗号化（又は復号）する。このため、本発明によれば、暗号化（又は復号）の方式において、高い安全性と低遅延処理とを両立させることが可能となる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１に係る暗号装置の構成を示すブロック図。
【図２】実施の形態１に係る暗号装置の暗号部の第１構成例を示すブロック図。
【図３】実施の形態１に係る暗号装置で処理可能なデータサイズの例を示す表。
【図４】実施の形態１に係る暗号装置の暗号部の第２構成例を示すブロック図。
【図５】図４の例で使用可能なブロック暗号の構成例を示す図。
【図６】実施の形態１に係る暗号装置の暗号部の第３構成例を示すブロック図。
【図７】図６の例で使用可能なブロック暗号の構成例を示す図。
【図８】実施の形態２に係る復号装置の構成を示すブロック図。
【図９】実施の形態３に係る記憶システムの構成を示すブロック図。
【図１０】本発明の実施の形態に係る暗号装置及び復号装置及び記憶システムのハードウェア構成の一例を示す図。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図を用いて説明する。
【００１７】
実施の形態１．
図１は、本実施の形態に係る暗号装置１００の構成を示すブロック図である。
【００１８】
暗号装置１００は、平文データ（「処理データ」ともいう）をブロック暗号Ｆにより暗号化する。
【００１９】
図１において、暗号装置１００は、第１入力部１１０、第２入力部１２０、分割部１３０、計算部１４０、暗号部１５０、出力部１６０を備える。
【００２０】
第１入力部１１０は、ブロック暗号Ｆに使用する共通鍵（「秘密鍵」ともいう）を外部から受け取るインタフェース機能を有する。第１入力部１１０は、外部から受け取った共通鍵をメモリに保持する。第１入力部１１０は、メモリに保持した共通鍵を暗号部１５０に渡す。
【００２１】
このように、第１入力部１１０は、共通鍵を暗号部１５０に入力する。
【００２２】
第２入力部１２０は、ブロック暗号Ｆにより暗号化する平文データを外部から受け取るインタフェース機能を有する。第２入力部１２０は、平文データをメモリに保持する。第２入力部１２０は、メモリに保持した平文データを分割部１３０及び暗号部１５０に渡す。
【００２３】
このように、第２入力部１２０は、平文データを分割部１３０及び暗号部１５０に入力する。
【００２４】
分割部１３０は、暗号部１５０で使用される暗号アルゴリズム（即ち、ブロック暗号Ｆ）の安全性の評価結果から導出される、同じ鍵で処理可能なデータサイズ（即ち、処理単位×ブロック長）を特定する。分割部１３０は、特定したデータサイズと、第２入力部１２０から入力された平文データのサイズとから、平文データの分割数Ｎ（即ち、平文データを処理単位でグループ分けしたときのグループ数）を演算する。そして、分割部１３０は、分割数Ｎを計算部１４０及び暗号部１５０に通知する。
【００２５】
このように、分割部１３０は、同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、第２入力部１２０から入力された平文データを当該処理単位で分割する。処理単位は、ブロック暗号Ｆの構成（例えば、Ｓ−ｂｏｘサイズ、層数、ブロック長）に応じて分割部１３０で適宜決定される。或いは、処理単位は、ブロック暗号Ｆの構成に応じて予め指定され、指定されたものが分割部１３０で採用される。或いは、処理単位は、ブロック暗号Ｆの構成に応じて上限が予め指定され、分割部１３０で上限以下に設定される。後述するように、処理単位は、ブロック暗号Ｆの平均差分確率又は平均線形確率に応じて決定されることが望ましい。特に、ブロック暗号Ｆの平均差分確率又は平均線形確率の逆数を処理単位として決定することで、安全性を確保しながら、暗号化処理を最適化することができる。
【００２６】
計算部１４０は、分割部１３０から通知された分割数Ｎと、第２入力部１２０から入力された平文データのアドレス情報とから、分割された平文データのブロック群１〜Ｎのそれぞれに含まれる各ブロックのデータアドレスを特定する。計算部１４０は、特定したデータアドレスと、そのデータアドレスに対応するブロックが属するブロック群の情報とを暗号部１５０に渡す。
【００２７】
このように、計算部１４０は、平文データの各ブロックのデータアドレスを計算する。
【００２８】
暗号部１５０は、処理鍵生成部１５１、ランダムデータ生成部１５２、暗号化データ処理部１５３を有する。
【００２９】
処理鍵生成部１５１は、第１入力部１１０から共通鍵を受け取り、分割部１３０から通知された分割数Ｎと同じ数の処理鍵（「事前生成鍵」ともいう）１〜Ｎを生成する。そして、処理鍵生成部１５１は、処理鍵１〜Ｎをランダムデータ生成部１５２に渡す。
【００３０】
このように、処理鍵生成部１５１は、第１入力部１１０から入力された共通鍵から、分割部１３０での平文データの分割数Ｎと同じ数の互いに異なる処理鍵１〜Ｎを生成する。例えば、処理鍵生成部１５１は、第１入力部１１０から入力された共通鍵を使用して、分割部１３０での平文データの分割数Ｎと同じ数の互いに異なるデータをブロック暗号Ｆにより暗号化することで、処理鍵１〜Ｎを生成する。
【００３１】
ランダムデータ生成部１５２及び暗号化データ処理部１５３は、分割部１３０で決定された処理単位ごとに、処理鍵生成部１５１で生成された同じ処理鍵Ｉ（Ｉ＝１，２，・・・，Ｎ）を使用して、第２入力部１２０から入力された平文データの各ブロックをブロック暗号Ｆにより暗号化することで、暗号化データを生成する。
【００３２】
具体的には、まず、ランダムデータ生成部１５２は、処理鍵生成部１５１から処理鍵１〜Ｎを、計算部１４０からデータアドレスとブロック群の情報とを受け取る。ランダムデータ生成部１５２は、ブロック群Ｉについて、データアドレスをブロック暗号Ｆの入力データとし、処理鍵Ｉをブロック暗号Ｆの鍵データとして暗号処理を実行する。そして、ランダムデータ生成部１５２は、ブロック暗号Ｆの出力データであるランダムデータを暗号化データ処理部１５３に渡す。
【００３３】
このように、ランダムデータ生成部１５２は、分割部１３０で決定された処理単位ごとに、処理鍵生成部１５１で生成された同じ処理鍵Ｉを使用して、計算部１４０で計算された各ブロックのデータアドレスをブロック暗号Ｆにより暗号化する。
【００３４】
次に、暗号化データ処理部１５３は、ランダムデータ生成部１５２からランダムデータを、第２入力部１２０から平文データを受け取り、所定の演算を実行する。暗号化データ処理部１５３は、演算結果である暗号化データを出力部１６０に渡す。
【００３５】
このように、暗号化データ処理部１５３は、ランダムデータ生成部１５２で暗号化された各ブロックのデータアドレスと、第２入力部１２０から入力された平文データの各ブロックとから、暗号化データを生成する。例えば、暗号化データ処理部１５３は、ランダムデータ生成部１５２で暗号化された各ブロックのデータアドレスと、第２入力部１２０から入力された平文データの各ブロックとの排他的論理和を計算し、計算結果を暗号化データとして出力する。
【００３６】
出力部１６０は、暗号化データ処理部１５３から暗号化データを受け取る。出力部１６０は、この暗号化データを外部に提供するインタフェース機能を有する。
【００３７】
このように、出力部１６０は、暗号部１５０で生成された暗号化データを出力する。
【００３８】
本実施の形態では、平文データを分割し、その分割の単位（即ち、処理単位）ごとに、ブロック暗号Ｆに使用する処理鍵を変更することで、解読を困難にしている。ブロック暗号Ｆとしては、低遅延処理可能な暗号アルゴリズムを適用することができる。したがって、本実施の形態によれば、高い安全性と低遅延処理とを両立させることができる。
【００３９】
ブロック暗号Ｆには、ＭＩＳＴＹ（登録商標）、ＫＡＳＵＭＩ等、差分解読法及び線形解読法に対する証明可能安全性を有する暗号アルゴリズムを適用することが望ましい。ブロック暗号Ｆが差分解読法及び線形解読法に対する証明可能安全性を有していれば、ブロック暗号Ｆの平均差分確率（又は平均線形確率）の逆数と同じ個数のブロックを処理単位として設定することで、安全性を確保することが可能となる。例えば、ブロック暗号Ｆの平均差分確率が２−２４であれば、２２４個のブロックが処理単位となる。なお、ブロック暗号Ｆの平均差分確率（又は平均線形確率）の逆数よりも少ない個数のブロックを処理単位として設定してもよい。即ち、ブロック暗号Ｆの平均差分確率（又は平均線形確率）の逆数を処理単位の上限として用いてもよい。例えば、ブロック暗号Ｆの平均差分確率が２−２４であれば、２２３個又はそれより少ない個数のブロックが処理単位となってもよい。
【００４０】
上記のように、ブロック暗号Ｆには、差分解読法及び線形解読法に対する証明可能安全性を有する暗号アルゴリズムを適用することが望ましいが、ＡＥＳ（Ａｄｖａｎｃｅｄ・Ｅｎｃｒｙｐｔｉｏｎ・Ｓｔａｎｄａｒｄ）等、その他の暗号アルゴリズムを適用することもできる。その場合、ある程度の安全性が期待できる個数のブロックを処理単位として設定すればよい。例えば、１ブロックのビット数Ｌ（即ち、ブロック長）の半分を指数とする２の累乗（即ち、２Ｌ／２）個のブロックを処理単位又は処理単位の上限として設定することができる。ＡＥＳを使用する場合は、ブロック長が１２８ビットであるため、２６４個又はそれより少ない個数のブロックが処理単位となる。
【００４１】
図２は、暗号部１５０の第１構成例を示すブロック図である。図３は、暗号装置１００で処理可能なデータサイズの例を示す表である。
【００４２】
処理鍵生成部１５１では、共通鍵から処理鍵を生成する際に、処理鍵から元の共通鍵を推測できないアルゴリズムを用いることが必要である。そのようなアルゴリズムとしては様々な選択肢があるが、例えば、ランダムデータ生成部１５２と同じ暗号アルゴリズム（即ち、ブロック暗号Ｆ）を用いることができる。
【００４３】
図２の例において、処理鍵生成部１５１は、共通鍵Ｋを鍵データとして使用し、ブロック暗号Ｆに１，２，・・・，ｘ−１の互いに異なる入力データを与えることで、互いに異なる処理鍵Ｋ１，Ｋ２，・・・，Ｋｘ−１を生成する。この例では、ブロック暗号Ｆに、差分解読法及び線形解読法に対する証明可能安全性を有する暗号アルゴリズムを適用しているものとする。そのような暗号アルゴリズムを処理鍵の生成に用いることで、処理鍵についても、差分解読法及び線形解読法に対する安全性を確保することが可能となる。
【００４４】
図３の例のように、１つの処理鍵で処理可能なデータサイズは、ブロック暗号Ｆの構成によって変化する。ブロック暗号Ｆの鍵長が１２８ビットであることを想定した場合、図２の例では、（ｃ）ブロック長が１２８ビットとなるブロック暗号Ｆの構成を使用することができる。例えば、（ａ）Ｓ−ｂｏｘサイズが８ビットと８ビットとの組み合わせ、（ｂ）層数が４、（ｃ）ブロック長が１２８ビットとなるブロック暗号Ｆの構成を使用したとすると、（ｄ）平均差分確率及び平均線形確率は２−９６となるため、処理単位又は処理単位の上限は２９６となる。よって、（ｅ）同じ処理鍵で処理可能なデータサイズは２１００バイト（＝２９６×１２８ビット）となる。処理鍵がブロック暗号Ｆにより生成されるため、同じ共通鍵から生成可能な処理鍵の数も２９６個となる。よって、（ｆ）全体で処理可能なデータサイズは２１９６バイト（＝２９６×２１００バイト）、（ｇ）１２８ビットの処理鍵を格納するために全体で必要なメモリサイズは２１００バイト（＝２９６×１２８ビット）となる。なお、図２の例では、ブロック暗号Ｆの構成として、別の構成を使用することもできる。ブロック暗号Ｆの鍵長も１２８ビットに限定されるものではない。
【００４５】
このように、処理鍵生成部１５１がブロック暗号Ｆにより処理鍵Ｋ１，Ｋ２，・・・，Ｋｘ−１を生成する場合、全体で処理可能なデータサイズを設定することが可能となる。第２入力部１２０から入力される平文データのサイズが全体で処理可能なデータサイズを超える場合は、追加の共通鍵Ｋ’を第１入力部１１０から入力すればよい。追加の共通鍵Ｋ’を用いて、平文データの全体で処理可能なデータサイズを超える部分を暗号化することで、その部分についても安全性が確保される。
【００４６】
図２の例において、１つの処理鍵で処理可能なデータサイズがｎブロックであった場合、ランダムデータ生成部１５２は、処理鍵生成部１５１で生成された処理鍵Ｋ１を鍵データとして使用し、ブロック暗号Ｆにデータアドレスａｄ１，ａｄ２，・・・，ａｄｎを与えることで、データアドレスａｄ１，ａｄ２，・・・，ａｄｎに対応するランダムデータを生成する。ランダムデータ生成部１５２は、処理鍵生成部１５１で生成された処理鍵Ｋ２を鍵データとして使用し、ブロック暗号Ｆにデータアドレスａｄｎ＋１，ａｄｎ＋２，・・・，ａｄ２ｎを与えることで、データアドレスａｄｎ＋１，ａｄｎ＋２，・・・，ａｄ２ｎに対応するランダムデータを生成する。ランダムデータ生成部１５２は、以降のデータアドレスについても同様に、ｎブロックごとに１つの処理鍵を使用してランダムデータを生成する。
【００４７】
図２の例において、暗号化データ処理部１５３は、ランダムデータ生成部１５２で生成されたランダムデータと、対応する平文データのブロックとの排他的論理和を演算する。暗号化データ処理部１５３は、演算結果Ｃ１，Ｃ２，・・・，Ｃ（ｘ−１）ｎ＋１を暗号化データとして出力する。
【００４８】
全てのアドレスのデータを暗号化した後で、一部のアドレスのデータのみが変更された場合、ランダムデータ生成部１５２は、暗号化データのメモリマップ１７０から、データが変更されたアドレスを特定する。暗号化データ処理部１５３は、ランダムデータ生成部１５２で特定されたアドレスのみについて、ランダムデータと、対応する平文データのブロック（即ち、変更されたデータ）との排他的論理和を演算すればよい。よって、低遅延処理を実現することが可能となる。
【００４９】
図４は、暗号部１５０の第２構成例を示すブロック図である。図５は、図４の例で使用可能なブロック暗号Ｆの構成例を示す図である。
【００５０】
図２の例では、ブロック暗号Ｆの鍵長とブロック長とが同じ場合を想定しているが、ブロック暗号Ｆの鍵長とブロック長とが異なっていてもよい。例えば、鍵長がブロック長の２倍であってもよい。
【００５１】
図４の例において、処理鍵生成部１５１は、共通鍵Ｋを部分鍵Ｋａ，Ｋｂに分割する。処理鍵生成部１５１は、部分鍵Ｋａ，Ｋｂをそれぞれ鍵データとして使用し、ブロック暗号Ｆに１，２，・・・，ｘ−１の互いに異なる入力データを与えることで、互いに異なる処理鍵Ｋ１，Ｋ２，・・・，Ｋｘ−１を生成する。例えば、処理鍵生成部１５１は、部分鍵Ｋａ，Ｋｂをそれぞれ鍵データとして使用し、ブロック暗号Ｆに１を入力することで、鍵Ｋ１ａ，Ｋ１ｂを得る。そして、処理鍵生成部１５１は、鍵Ｋ１ａ，Ｋ１ｂを連結することで、処理鍵Ｋ１を生成する。この例でも、ブロック暗号Ｆに、差分解読法及び線形解読法に対する証明可能安全性を有する暗号アルゴリズムを適用しているものとする。
【００５２】
ブロック暗号Ｆの鍵長が１２８ビットであることを想定した場合、図４の例では、図５の例のように、ブロック長が６４ビットとなるブロック暗号Ｆの構成を使用することができる。図５の例では、８ビット単位のＳ−ｂｏｘが使用されている。Ｓ−ｂｏｘ単体の平均差分確率及び平均線形確率はそれぞれ２−６となる。内部関数Ｆｉの構成が差分解読法及び線形解読法に対する証明可能安全性を有する構成であることから、内部関数Ｆｉ単体の平均差分確率及び平均線形確率はそれぞれ２−１２となる。同様に、内部関数Ｆｏの構成が差分解読法及び線形解読法に対する証明可能安全性を有する構成であることから、内部関数Ｆｏ単体の平均差分確率及び平均線形確率はそれぞれ２−２４となる。ブロック暗号Ｆの構成も差分解読法及び線形解読法に対する証明可能安全性を有する構成であることから、ブロック暗号Ｆ全体の平均差分確率及び平均線形確率はそれぞれ２−４８となる。図３を参照すると、図５の例では、（ａ）Ｓ−ｂｏｘサイズが８ビットと８ビットとの組み合わせ、（ｂ）層数が３、（ｃ）ブロック長が６４ビットとなるブロック暗号Ｆの構成が使用されていることになり、（ｄ）平均差分確率及び平均線形確率は２−４８となるため、処理単位又は処理単位の上限は２４８となる。よって、（ｅ）同じ処理鍵で処理可能なデータサイズは２５１バイト（＝２４８×６４ビット）となる。処理鍵がブロック暗号Ｆにより生成されるため、同じ共通鍵から生成可能な処理鍵の数も２４８個となる。よって、（ｆ）全体で処理可能なデータサイズは２９９バイト（＝２４８×２５１バイト）、（ｇ）１２８ビットの処理鍵を格納するために全体で必要なメモリサイズは２５２バイト（＝２４８×１２８ビット）となる。なお、図４の例では、ブロック暗号Ｆの構成として、図５の例とは異なる構成を使用することもできる。ブロック暗号Ｆの鍵長も１２８ビットに限定されるものではない。
【００５３】
図６は、暗号部１５０の第３構成例を示すブロック図である。図７は、図６の例で使用可能なブロック暗号Ｆの構成例を示す図である。
【００５４】
図４の例では、ブロック暗号Ｆの鍵長がブロック長の２倍であるが、例えば、鍵長がブロック長の３倍であってもよい。
【００５５】
図６の例において、処理鍵生成部１５１は、共通鍵Ｋを部分鍵Ｋａ，Ｋｂ，Ｋｃに分割する。処理鍵生成部１５１は、部分鍵Ｋａ，Ｋｂ，Ｋｃをそれぞれ鍵データとして使用し、ブロック暗号Ｆに１，２，・・・，ｘ−１の互いに異なる入力データを与えることで、互いに異なる処理鍵Ｋ１，Ｋ２，・・・，Ｋｘ−１を生成する。例えば、処理鍵生成部１５１は、部分鍵Ｋａ，Ｋｂ，Ｋｃをそれぞれ鍵データとして使用し、ブロック暗号Ｆに１を入力することで、鍵Ｋ１ａ，Ｋ１ｂ，Ｋ１ｃを得る。そして、処理鍵生成部１５１は、鍵Ｋ１ａ，Ｋ１ｂ，Ｋ１ｃを連結することで、処理鍵Ｋ１を生成する。この例でも、ブロック暗号Ｆに、差分解読法及び線形解読法に対する証明可能安全性を有する暗号アルゴリズムを適用しているものとする。
【００５６】
ブロック暗号Ｆの鍵長が１９２ビットであることを想定した場合、図６の例では、図７の例のように、ブロック長が６４ビットとなるブロック暗号Ｆの構成を使用することができる。図７の例では、７ビット単位のＳ−ｂｏｘと９ビット単位のＳ−ｂｏｘとが使用されている。７ビット単位のＳ−ｂｏｘ単体の平均差分確率及び平均線形確率はそれぞれ２−６となる。９ビット単位のＳ−ｂｏｘ単体の平均差分確率及び平均線形確率はそれぞれ２−８となる。内部関数Ｆｉの構成が差分解読法及び線形解読法に対する証明可能安全性を有する構成であることから、内部関数Ｆｉ単体の平均差分確率及び平均線形確率はそれぞれ２−１４となる。同様に、内部関数Ｆｏの構成が差分解読法及び線形解読法に対する証明可能安全性を有する構成であることから、内部関数Ｆｏ単体の平均差分確率及び平均線形確率はそれぞれ２−２８となる。ブロック暗号Ｆの構成も差分解読法及び線形解読法に対する証明可能安全性を有する構成であることから、ブロック暗号Ｆ全体の平均差分確率及び平均線形確率はそれぞれ２−５６となる。図３を参照すると、図７の例では、（ａ）Ｓ−ｂｏｘサイズが７ビットと９ビットとの組み合わせ、（ｂ）層数が３、（ｃ）ブロック長が６４ビットとなるブロック暗号Ｆの構成が使用されていることになり、（ｄ）平均差分確率及び平均線形確率は２−５６となるため、処理単位又は処理単位の上限は２５６となる。よって、（ｅ）同じ処理鍵で処理可能なデータサイズは２５９バイト（＝２５６×６４ビット）となる。処理鍵がブロック暗号Ｆにより生成されるため、同じ共通鍵から生成可能な処理鍵の数も２５６個となる。よって、（ｆ）全体で処理可能なデータサイズは２１１５バイト（＝２５６×２５９バイト）となる。図３には示していないが、１９２ビットの処理鍵を格納するために全体で必要なメモリサイズは約２６１バイト（正確には、１．５×２６０バイト≒２５６×１９２ビット）となる。なお、図６の例では、ブロック暗号Ｆの構成として、図７の例とは異なる構成を使用することもできる。ブロック暗号Ｆの鍵長も１９２ビットに限定されるものではない。
【００５７】
使用するブロック暗号Ｆの内部構成を変更すると、ブロック暗号Ｆ単体の安全性に影響が出る。しかし、図４，６の例のように、処理鍵を安全なデータサイズ単位で変更することにより、システム全体としての安全性を確保することができる。
【００５８】
図２の例では、ランダムデータ生成部１５２で使用する暗号アルゴリズムが差分解読法及び線形解読法に対する証明可能安全性が確保できる構成になっている。図４，６の例のように、入出力インタフェースは同じであっても、システムの要求処理性能によって、内部のアルゴリズムの構成を変更することにより、低遅延処理可能なアルゴリズムに対応することが可能となる。図４，６の例では、差分解読法及び線形解読法に対するブロック暗号Ｆの安全性が異なるが、システム全体としては、１つの処理鍵で処理可能なデータサイズを変えることで、安全性を確保することが可能である。
【００５９】
図４，６の例では、ブロック暗号Ｆの最上位層の段数がそれぞれ３段と４段で異なっている。また、内部関数Ｆｉで使用するＳ−ｂｏｘが８ビットの１種類と７ビット及び９ビットの２種類で異なっている。この差異により、図４の例の方が、より低遅延で処理可能である。このようなブロック暗号Ｆの構成の差異により、システム全体で要求される処理性能と処理鍵の格納に必要なメモリサイズとのトレードオフをとることで、低遅延処理可能なシステムを実現しつつ、全体での安全性が低下しないようなシステムを実現することができる。
【００６０】
以上説明したように、本実施の形態に係る暗号装置１００は、暗号アルゴリズム単体の数値的に評価された安全性から単一の鍵で安全性が確保できる処理データの分割数を決定する。暗号装置１００は、低遅延処理可能な暗号方式に使用する秘密鍵から、決定した分割数と同じ数の処理鍵を生成する。暗号装置１００は、処理データのデータアドレスを計算する。暗号装置１００は、証明可能安全性を有する暗号アルゴリズムを用いて、処理データに対応したランダムデータを、対応する処理鍵によって生成する。暗号装置１００は、処理データとランダムデータとから暗号化データを生成する。そして、暗号装置１００は、暗号化データを出力する。
【００６１】
本実施の形態によれば、暗号アルゴリズムの構成を簡略化することで、低遅延処理可能な暗号方式を実現しつつ、暗号方式全体での安全性を確保することが可能になる。即ち、低遅延処理と安全性の確保とを同時に実現することができる。
【００６２】
実施の形態２．
図８は、本実施の形態に係る復号装置２００の構成を示すブロック図である。
【００６３】
復号装置２００は、暗号化データをブロック暗号Ｆにより復号する。ブロック暗号Ｆについては、実施の形態１のものと同じである。
【００６４】
図８において、復号装置２００は、第１入力部２１０、第２入力部２２０、分割部２３０、計算部２４０、復号部２５０、出力部２６０を備える。
【００６５】
第１入力部２１０、第２入力部２２０、分割部２３０、計算部２４０、復号部２５０、出力部２６０は、それぞれ実施の形態１に係る暗号装置１００の第１入力部１１０、第２入力部１２０、分割部１３０、計算部１４０、暗号部１５０、出力部１６０に対応する機能を有する。
【００６６】
第１入力部２１０は、共通鍵を復号部２５０に入力する。
【００６７】
第２入力部２２０は、暗号化データを分割部２３０及び復号部２５０に入力する。
【００６８】
分割部２３０は、同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、第２入力部２２０から入力された暗号化データを当該処理単位で分割する。処理単位については、実施の形態１のものと同じである。
【００６９】
計算部２４０は、暗号化データの各ブロックのデータアドレスを計算する。
【００７０】
復号部２５０は、処理鍵生成部２５１、ランダムデータ生成部２５２、復号データ処理部２５３を有する。
【００７１】
処理鍵生成部２５１、ランダムデータ生成部２５２、復号データ処理部２５３は、実施の形態１に係る暗号装置１００の処理鍵生成部１５１、ランダムデータ生成部１５２、暗号化データ処理部１５３に対応する機能を有する。
【００７２】
処理鍵生成部２５１は、第１入力部２１０から入力された共通鍵から、分割部２３０での暗号化データの分割数Ｎと同じ数の互いに異なる処理鍵１〜Ｎを生成する。例えば、処理鍵生成部２５１は、第１入力部２１０から入力された共通鍵を使用して、分割部２３０での暗号化データの分割数Ｎと同じ数の互いに異なるデータをブロック暗号Ｆにより暗号化することで、処理鍵１〜Ｎを生成する。
【００７３】
ランダムデータ生成部２５２及び復号データ処理部２５３は、分割部２３０で決定された処理単位ごとに、処理鍵生成部２５１で生成された同じ処理鍵Ｉ（Ｉ＝１，２，・・・，Ｎ）を使用して、第２入力部２２０から入力された暗号化データの各ブロックをブロック暗号Ｆにより復号することで、平文データ（即ち、復号データ）を生成する。
【００７４】
具体的には、ランダムデータ生成部２５２は、分割部２３０で決定された処理単位ごとに、処理鍵生成部２５１で生成された同じ処理鍵Ｉを使用して、計算部２４０で計算された各ブロックのデータアドレスをブロック暗号Ｆにより暗号化する。復号データ処理部２５３は、ランダムデータ生成部２５２で暗号化された各ブロックのデータアドレスと、第２入力部２２０から入力された暗号化データの各ブロックとから、復号データを生成する。例えば、復号データ処理部２５３は、ランダムデータ生成部２５２で暗号化された各ブロックのデータアドレスと、第２入力部２２０から入力された暗号化データの各ブロックとの排他的論理和を計算し、計算結果を復号データとして出力する。
【００７５】
出力部２６０は、復号部２５０で生成された復号データを出力する。
【００７６】
本実施の形態では、実施の形態１における暗号化の処理に対応する復号の処理が行われる。したがって、本実施の形態によれば、実施の形態１と同様に、高い安全性と低遅延処理とを両立させることができる。
【００７７】
実施の形態３．
図９は、本実施の形態に係る記憶システム３００の構成を示すブロック図である。
【００７８】
図９において、記憶システム３００は、実施の形態１と同じ暗号装置１００と、実施の形態２と同じ復号装置２００とを備える。また、記憶システム３００は、耐タンパ装置３１０、制御装置３２０、記憶媒体３３０を備える。
【００７９】
耐タンパ装置３１０は、共通鍵を記憶する。共通鍵については、実施の形態１，２のものと同じである。
【００８０】
制御装置３２０は、記憶媒体３３０にデータを書き込む要求を外部から受けると、そのデータを記憶媒体３３０に書き込む指令を暗号装置１００に送るとともに、耐タンパ装置３１０から共通鍵を暗号装置１００に送る。また、制御装置３２０は、データを記憶媒体３３０の特定のアドレスから読み取る要求を外部から受けると、そのアドレスからデータを読み取る指令を復号装置２００に送るとともに、耐タンパ装置３１０から共通鍵を復号装置２００に送る。制御装置３２０は、復号装置２００からデータを受け取ると、受け取ったデータを外部に提供する。
【００８１】
記憶媒体３３０（例えば、ハードディスク）は、暗号化データを記憶する。
【００８２】
暗号装置１００と復号装置２００は、一体として（例えば、１つの集積回路チップに）実装されることが望ましい。
【００８３】
暗号装置１００は、共通鍵とデータ（即ち、平文データ）を記憶媒体３３０に書き込む指令とを受けると、暗号部１５０で暗号化データを生成し、暗号化データを記憶媒体３３０に書き込む。
【００８４】
復号装置２００は、共通鍵とデータを記憶媒体３３０の特定のアドレスから読み取る指令とを受けると、そのアドレスから暗号化データを読み取り、復号部２５０で平文データを生成し、そのデータを制御装置３２０に出力する。
【００８５】
記憶媒体３３０では、全てのアドレスのデータが暗号化されている。しかし、復号部２５０のランダムデータ生成部２５２は、制御装置３２０からの指令で指定されたアドレスからランダムデータを生成することができる。そのため、復号部２５０の復号データ処理部２５３は、制御装置３２０からの指令で指定されたアドレスのみについて、ランダムデータ生成部２５２で生成されたランダムデータと、記憶媒体３３０に記憶された暗号化データのブロックとの排他的論理和を演算することで、平文データを復元することができる。したがって、本実施の形態では、記憶媒体３３０でデータを安全に保管しておくことができるとともに、必要なデータを記憶媒体３３０から高速に読み取ることができる。
【００８６】
図１０は、本発明の実施の形態に係る暗号装置１００及び復号装置２００及び記憶システム３００のハードウェア構成の一例を示す図である。
【００８７】
図１０において、暗号装置１００及び復号装置２００及び記憶システム３００は、それぞれコンピュータであり、出力装置９１０、入力装置９２０、記憶装置９３０、処理装置９４０といったハードウェアを備える。ハードウェアは、暗号装置１００及び復号装置２００及び記憶システム３００の各部（本発明の実施の形態の説明において「部」として説明するもの）によって利用される。
【００８８】
出力装置９１０は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）等の表示装置、プリンタ、通信モジュール（通信回路等）である。出力装置９１０は、本発明の実施の形態の説明において「部」として説明するものによってデータ、情報、信号の出力（送信）のために利用される。
【００８９】
入力装置９２０は、例えば、キーボード、マウス、タッチパネル、通信モジュール（通信回路等）である。入力装置９２０は、本発明の実施の形態の説明において「部」として説明するものによってデータ、情報、信号の入力（受信）のために利用される。
【００９０】
記憶装置９３０は、例えば、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ・Ｓｔａｔｅ・Ｄｒｉｖｅ）である。記憶装置９３０には、プログラム９３１、ファイル９３２が記憶される。プログラム９３１には、本発明の実施の形態の説明において「部」として説明するものの処理（機能）を実行するプログラムが含まれる。ファイル９３２には、本発明の実施の形態の説明において「部」として説明するものによって演算、加工、読み取り、書き込み、利用、入力、出力等が行われるデータ、情報、信号（値）等が含まれる。
【００９１】
処理装置９４０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。処理装置９４０は、バス等を介して他のハードウェアデバイスと接続され、それらのハードウェアデバイスを制御する。処理装置９４０は、記憶装置９３０からプログラム９３１を読み出し、プログラム９３１を実行する。処理装置９４０は、本発明の実施の形態の説明において「部」として説明するものによって演算、加工、読み取り、書き込み、利用、入力、出力等を行うために利用される。
【００９２】
本発明の実施の形態の説明において「部」として説明するものは、「部」を「回路」、「装置」、「機器」に読み替えたものであってもよい。また、本発明の実施の形態の説明において「部」として説明するものは、「部」を「工程」、「手順」、「処理」に読み替えたものであってもよい。即ち、本発明の実施の形態の説明において「部」として説明するものは、ソフトウェアのみ、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせで実現される。ソフトウェアは、プログラム９３１として、記憶装置９３０に記憶される。プログラム９３１は、本発明の実施の形態の説明において「部」として説明するものとしてコンピュータを機能させるものである。或いは、プログラム９３１は、本発明の実施の形態の説明において「部」として説明するものの処理をコンピュータに実行させるものである。
【００９３】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、いくつかを組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、いずれか１つ又はいくつかを部分的に実施しても構わない。例えば、これらの実施の形態の説明において「部」として説明するもののうち、いずれか１つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００９４】
１００  暗号装置、１１０  第１入力部、１２０  第２入力部、１３０  分割部、１４０  計算部、１５０  暗号部、１５１  処理鍵生成部、１５２  ランダムデータ生成部、１５３  暗号化データ処理部、１６０  出力部、１７０  メモリマップ、２００  復号装置、２１０  第１入力部、２２０  第２入力部、２３０  分割部、２４０  計算部、２５０  復号部、２５１  処理鍵生成部、２５２  ランダムデータ生成部、２５３  復号データ処理部、２６０  出力部、３００  記憶システム、３１０  耐タンパ装置、３２０  制御装置、３３０  記憶媒体、９１０  出力装置、９２０  入力装置、９３０  記憶装置、９３１  プログラム、９３２  ファイル、９４０  処理装置。
【図１】
2015173905.tif 000003
【図２】
2015173905.tif 000004
【図３】
2015173905.tif 000005
【図４】
2015173905.tif 000006
【図５】
2015173905.tif 000007
【図６】
2015173905.tif 000008
【図７】
2015173905.tif 000009
【図８】
2015173905.tif 000010
【図９】
2015173905.tif 000011
【図１０】
2015173905.tif 000012
【手続補正書】
【提出日】平成28年4月18日(2016.4.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
平文データをブロック暗号により暗号化する暗号装置において、
同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成する暗号部と、
前記平文データの各ブロックのデータアドレスを計算する計算部と
を備え、
前記暗号部は、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記計算部で計算された各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記平文データの各ブロックとから、前記暗号化データを生成する暗号装置。
【請求項２】
前記暗号部は、暗号化した各ブロックのデータアドレスと前記平文データの各ブロックとの排他的論理和を計算し、計算結果を前記暗号化データとして出力する請求項１に記載の暗号装置。
【請求項３】
前記暗号部は、前記共通鍵を使用して、前記分割部での前記平文データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する請求項１又は２に記載の暗号装置。
【請求項４】
平文データをブロック暗号により暗号化する暗号装置において、
同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成する暗号部と
を備え、
前記暗号部は、前記共通鍵を使用して、前記分割部での前記平文データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する暗号装置。
【請求項５】
前記分割部は、前記ブロック暗号の構成に応じて、前記処理単位を決定する請求項１から４のいずれか１項に記載の暗号装置。
【請求項６】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率に応じて、前記処理単位を決定する請求項１から５のいずれか１項に記載の暗号装置。
【請求項７】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率の逆数を前記処理単位として決定する請求項１から６のいずれか１項に記載の暗号装置。
【請求項８】
請求項１から７のいずれか１項に記載の暗号装置と、
データを記憶する記憶媒体と
を備え、
前記暗号装置は、前記共通鍵と前記平文データを前記記憶媒体に書き込む指令とを受けると、前記暗号部で前記暗号化データを生成し、前記暗号化データを前記記憶媒体に書き込む記憶システム。
【請求項９】
暗号化データをブロック暗号により復号する復号装置において、
同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成する復号部と、
前記暗号化データの各ブロックのデータアドレスを計算する計算部と
を備え、
前記復号部は、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記計算部で計算された各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記暗号化データの各ブロックとから、前記平文データを生成する復号装置。
【請求項１０】
前記復号部は、暗号化した各ブロックのデータアドレスと前記暗号化データの各ブロックとの排他的論理和を計算し、計算結果を前記平文データとして出力する請求項９に記載の復号装置。
【請求項１１】
前記復号部は、前記共通鍵を使用して、前記分割部での前記暗号化データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する請求項９又は１０に記載の復号装置。
【請求項１２】
暗号化データをブロック暗号により復号する復号装置において、
同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割する分割部と、
共通鍵から、前記分割部での前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割部で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成する復号部と
を備え、
前記復号部は、前記共通鍵を使用して、前記分割部での前記暗号化データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する復号装置。
【請求項１３】
前記分割部は、前記ブロック暗号の構成に応じて、前記処理単位を決定する請求項９から１２のいずれか１項に記載の復号装置。
【請求項１４】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率に応じて、前記処理単位を決定する請求項９から１３のいずれか１項に記載の復号装置。
【請求項１５】
前記分割部は、前記ブロック暗号の平均差分確率又は平均線形確率の逆数を前記処理単位として決定する請求項９から１４のいずれか１項に記載の復号装置。
【請求項１６】
請求項９から１５のいずれか１項に記載の復号装置と、
前記暗号化データを記憶する記憶媒体と
を備え、
前記復号装置は、前記共通鍵とデータを前記記憶媒体から読み取る指令とを受けると、前記暗号化データを前記記憶媒体から読み取り、前記復号部で前記平文データを生成し、前記平文データを出力する記憶システム。
【請求項１７】
平文データをブロック暗号により暗号化する暗号方法において、
コンピュータが、同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割し、
前記コンピュータが、共通鍵から、前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成し、
前記コンピュータが、前記平文データの各ブロックのデータアドレスを計算し、
前記コンピュータは、決定した処理単位ごとに、生成した同じ処理鍵を使用して、計算した各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記平文データの各ブロックとから、前記暗号化データを生成する暗号方法。
【請求項１８】
平文データをブロック暗号により暗号化する暗号方法において、
コンピュータが、同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割し、
前記コンピュータが、共通鍵から、前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成し、
前記コンピュータは、前記共通鍵を使用して、前記平文データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する暗号方法。
【請求項１９】
暗号化データをブロック暗号により復号する復号方法において、
コンピュータが、同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割し、
前記コンピュータが、共通鍵から、前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成し、
前記コンピュータが、前記暗号化データの各ブロックのデータアドレスを計算し、
前記コンピュータは、決定した処理単位ごとに、生成した同じ処理鍵を使用して、計算した各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記暗号化データの各ブロックとから、前記平文データを生成する復号方法。
【請求項２０】
暗号化データをブロック暗号により復号する復号方法において、
コンピュータが、同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割し、
前記コンピュータが、共通鍵から、前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成し、
前記コンピュータは、前記共通鍵を使用して、前記暗号化データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する復号方法。
【請求項２１】
平文データをブロック暗号により暗号化する暗号プログラムにおいて、
コンピュータに、
同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割する分割処理と、
共通鍵から、前記分割処理での前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成する暗号処理と、
前記平文データの各ブロックのデータアドレスを計算する計算処理と
を実行させ、
前記暗号処理は、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記計算処理で計算された各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記平文データの各ブロックとから、前記暗号化データを生成する暗号プログラム。
【請求項２２】
平文データをブロック暗号により暗号化する暗号プログラムにおいて、
コンピュータに、
同じ鍵を使用して暗号化するブロックの数を処理単位として決定し、前記平文データを当該処理単位で分割する分割処理と、
共通鍵から、前記分割処理での前記平文データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記平文データの各ブロックを前記ブロック暗号により暗号化することで、暗号化データを生成する暗号処理と
を実行させ、
前記暗号処理は、前記共通鍵を使用して、前記分割処理での前記平文データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する暗号プログラム。
【請求項２３】
暗号化データをブロック暗号により復号する復号プログラムにおいて、
コンピュータに、
同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割する分割処理と、
共通鍵から、前記分割処理での前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成する復号処理と、
前記暗号化データの各ブロックのデータアドレスを計算する計算処理と
を実行させ、
前記復号処理は、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記計算処理で計算された各ブロックのデータアドレスを前記ブロック暗号により暗号化し、暗号化した各ブロックのデータアドレスと前記暗号化データの各ブロックとから、前記平文データを生成する復号プログラム。
【請求項２４】
暗号化データをブロック暗号により復号する復号プログラムにおいて、
コンピュータに、
同じ鍵を使用して復号するブロックの数を処理単位として決定し、前記暗号化データを当該処理単位で分割する分割処理と、
共通鍵から、前記分割処理での前記暗号化データの分割数と同じ数の互いに異なる処理鍵を生成し、前記分割処理で決定された処理単位ごとに、生成した同じ処理鍵を使用して、前記暗号化データの各ブロックを前記ブロック暗号により復号することで、平文データを生成する復号処理と
を実行させ、
前記復号処理は、前記共通鍵を使用して、前記分割処理での前記暗号化データの分割数と同じ数の互いに異なるデータを前記ブロック暗号により暗号化することで、前記処理鍵を生成する復号プログラム。
【国際調査報告】
2015173905.tif 000013
2015173905.tif 000014
2015173905.tif 000015
2015173905.tif 000016