説明

データ暗号化装置、及び、メモリカード

【課題】 ページ単位でアクセスが可能な記憶装置に対し、データを暗号化して書き込み、ないしは復号化して読み出す場合において、任意のページへの高速アクセスが可能なデータ暗号化装置を提供する。
【解決手段】
記憶装置に保存されるべきデータを、ストリーム暗号により暗号化して書き込み又は復号化して読み出しを行うデータ暗号化処理装置であって、擬似乱数列の生成にブロック暗号のカウンタモードを利用する。一ページを当該ブロック暗号のブロック長の長さの複数のページブロックに分割することで、ページ番号とページブロック番号により記憶装置内のデータの位置を特定することとし、当該ページ番号、当該ページブロック番号、及び、任意のオフセット値の関数により定まる値を、当該カウンタモードで用いる擬似乱数の初期値として利用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機密情報を暗号化して格納することが可能な記憶装置に保存されたデータの暗号化および復号化装置に関し、特にそのデータ暗号化方法に関する。
【背景技術】
【0002】
機密情報を記憶装置内に暗号化して保存する場合の暗号化方法には、公開鍵暗号と共通鍵暗号がある。共通鍵暗号では暗号化と復号化に同じ鍵を用いる。一方、公開鍵暗号では、2つの鍵の組を用いて暗号化および復号化を行う。即ち、暗号化と復号化とで異なる鍵を用いる。当該2つの鍵のうち、一方を公開鍵とし、他方を秘密鍵とする。公開鍵暗号では、機密情報を相手先に送信するといった場合、相手先の公開鍵を用いてデータを暗号化して相手先に送信する。すると、相手先は、自身の秘密鍵を用いて送信されたデータを復号化することができ、復号化された機密情報を得る。
【0003】
一般に、公開鍵暗号は、認証、電子署名、或いは共通鍵の配送に利用されている。一方、共通鍵暗号は、公開鍵暗号と比べて高速なためデータ秘匿に利用されている。
【0004】
また、共通鍵暗号にはブロック暗号とストリーム暗号がある。うちブロック暗号は、入力ブロックの1ビットが変わるだけで出力ブロックのデータが大きく変わるため暗号文から平文が推測されにくい特徴がある。しかし、ブロック毎の処理のため一定のデータがそろわないと暗号化処理を進めることができない。
【0005】
一方、ストリーム暗号は、擬似乱数と平文との排他的論理和(XOR)により暗号化および復号化を行うもので、疑似乱数列を先行して生成できることと変換処理がシンプルなため、大量のデータを高速に処理することが可能である。しかし、暗号時と復号時の擬似乱数の初期値(IV)を揃える必要が有り、また、送信エラー等が起った際はデータの先頭に戻って暗号化と復号化をやり直す必要が生じる。
【0006】
更に、ブロック暗号の平文が推測されにくい特徴とストリーム暗号の高速性を組み合わせた、ブロック暗号によるOFB(Output Feedback)モード、CFB(Cipher Feedback)モード、CTR(Counter)モードを利用する方法が、非特許文献1により考案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平11−225140号公報
【非特許文献】
【0008】
【非特許文献1】Morris Dworkin, "Recommendation for Block Cipher Modes of Operation", NIST Special Publication 800-38A, 2001年.
【発明の概要】
【発明が解決しようとする課題】
【0009】
一般的な用途として、ファイルの暗号等にはブロック暗号が、通信の暗号化など大量のデータの暗号化にはストリーム暗号が使用されている。
【0010】
ここで、ページアクセスによりデータの書き込み、読み出しが行われるストレージデバイス(記憶装置)において暗号化装置を組み込み、データの暗号化を行うには、ページ毎にブロック暗号を用いて暗号化すればよい。しかし、ブロック暗号ではブロック長に相当するサイズのデータが揃ってからの暗号化処理となり、データへのアクセスが間欠動作になる。
【0011】
一方、ストリーム暗号を用いる場合、初期値(IV)の生成以外はオーバーヘッドがないため高速なアクセスが可能になるが、常にデータの先頭からアクセスする必要があり、任意のページからのアクセスができない。
【0012】
上記のストリーム暗号において任意の場所からアクセスできない課題に対し、特許文献1では、挿入情報識別情報と初期値(IV)の値をデータ列の中に埋め込むことにより、任意の位置からのアクセスを可能にしている。しかし、ストレージデバイスのページ毎に初期値(IV)を設定すると、ページをまたいで連続アクセスする場合に、その都度初期値(IV)の設定をし直すことによりオーバーヘッドが発生する。また、この挿入情報は冗長であり無駄なデータを保持することになる。
【0013】
本発明は、上記の状況に鑑み、機密情報を含むデータの暗号化された書き込みおよび読み出しにおいて、任意のページへの高速アクセスを可能とするデータ暗号化装置、並びに、上記データ暗号化装置を搭載したメモリカードを提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するための本発明に係るデータ暗号化装置は、ページ単位でアクセスが可能な記憶装置に対し、当該記憶装置に記憶されるデータを、ストリーム暗号により暗号化して書き込み又は復号化して読み出しを行うデータ暗号化処理装置であって、
暗号化または復号化時における前記擬似乱数の生成にブロック暗号のカウンタモードを使用し、
前記ページは、夫々、ブロック長が前記ブロック暗号のブロック長と同一の複数のページブロックに分割され、前記分割されたページブロック単位で前記ブロック暗号のカウンタモードによる暗号化または復号化が行われるものであり、
書き込まれ、または、読み出される前記データの前記ページ内における位置が、前記ページブロックのページブロック番号により特定され、
前記擬似乱数を生成するための初期値として、書き込みまたは読み出し対象の前記ページのページ番号と前記ページブロック番号との関数で求まる値を用いることを第1の特徴とする。
【0015】
上記第1の特徴のデータ暗号化装置に依れば、暗号方式としてストリーム暗号を使用しつつ、その擬似乱数列の生成にブロック暗号のCTR(カウンタ)モードを用いることにより、高速アクセスが可能なデータ暗号化装置が実現される。また、ページ番号とページブロック番号により初期値を定めることができるため、任意のページへのページをまたいだアクセスが可能となる。
【0016】
上記第1の特徴のデータ暗号化装置は、更に、前記擬似乱数を生成するための初期値として、書き込みまたは読み出し対象の前記ページのページ番号と前記ページブロック番号に加えて、前記データ暗号化装置毎に異なるオフセット値との関数で求まる値を用いることを第2の特徴とする。
【0017】
上記第2の特徴のデータ暗号化装置に依れば、初期値をオフセット値の関数とすることにより、暗号化装置毎に初期値が異なるためセキュリティの強度を上げることができる。
【0018】
以下に上記初期値の関数形の例を示す。
【0019】
例えば、前記初期値が、前記ページブロック番号の上位ビット側に前記ページ番号を連接した値として表されることが好ましい。このとき、ページ番号をnPG、ページブロック番号をmBLK、及び、1ページ当りのページブロック数をMとして、初期値IVは、IV(nPG,mBLK)=nPG・M+mBLKで表される。この場合、初期値IVは、ページをまたぐ連続アクセスであっても、IVを1ずつ増加させてくだけでよいため、カウンタと同じ動作になる。
【0020】
更に、上記IVがオフセット値offsetの関数でもある場合には、前記初期値が、前記ページブロック番号の上位ビット側に前記ページ番号を連接して得られるプレ初期値に、前記オフセット値を加算した値として表されることがより好ましい。このとき、初期値IVは、IV(nPG,mBLK,offset)=nPG・M+mBLK+offsetで表される。
【0021】
或いは、プレ初期値とオフセット値を加算する代わりに、プレ初期値とオフセット値の排他的論理和をとったものを初期値IVとしてもよい。即ち、前記初期値が、前記ページブロック番号の上位ビット側に前記ページ番号を連接して得られるプレ初期値と、前記オフセット値との排他的論理和で表されていてもよい。
【0022】
上記第1または第2の特徴のデータ暗号化装置は、前記ブロック暗号の暗号化アルゴリズムとしてAES(Advanced Encryption Standard)を使用することが好ましい。AES暗号を用いて擬似乱数列を生成することにより、セキュリティの高い暗号装置を実現できる。
【0023】
また、本発明は、前記記憶装置、及び、上記第1または第2の特徴のデータ暗号化装置を搭載したメモリカードであり、上記特徴のデータ暗号化装置を、PC、デジタルカメラ、及び、携帯電話等の電子機器に着脱可能なメモリカードに搭載することで、セキュリティが高く、且つ、ランダムページアクセスと高速な読み出しを両立したメモリカードを実現できる。
【発明の効果】
【0024】
従って、本発明に依れば、任意のページへの高速アクセスが可能なデータ暗号化装置、並びに、上記データ暗号化装置を搭載したメモリカードを提供することができる。
【図面の簡単な説明】
【0025】
【図1】本発明に係るデータ暗号化装置の回路構成の例を示すブロック図。
【図2】ページとページブロックとの関係を示す図。
【図3】擬似乱数の初期値IVの設定例を示す図。
【図4】SDカード内のデータの暗号化に本発明を用いる場合の、擬似乱数の初期値IVの設定例を示す図。
【図5】本発明に係るデータ暗号化装置の回路構成の他の例を示すブロック図。
【図6】擬似乱数の初期値IVの設定例の他の例を示す図。
【図7】擬似乱数の初期値生成回路の他の構成例を示す図。
【発明を実施するための形態】
【0026】
〈第1実施形態〉
本発明の一実施形態に係るデータ暗号化装置1(以降、適宜「本発明装置1」と称する)の構成例を図1に示す。図1は本発明装置1の回路構成を示すブロック図であり、ブロック暗号のCTR(カウンタ)モードをデータの暗号化に用いる構成となっている。図1に示すように、本発明装置1は、初期値生成回路11、擬似乱数生成回路12、及び、排他的論理和回路13を備える。更に、本発明装置1は、ページ単位でアクセスが可能な記憶装置14(図示せず)とデータの送受信を行い、当該記憶装置に対し、暗号化された読み出しデータの復号化処理ないし保存されるべきデータの暗号化処理を行う。尚、記憶装置14に保存されるデータの読み出し及び書き込み動作は、制御回路15(図示せず)により制御され、読み出し動作では、本発明装置1は、制御回路15を介して所定の読み出し対象アドレスのデータ(暗号文)を受信するとそれを復号化し、平文データに変換する。一方、書き込み動作では、本発明装置1は、保存されるべきデータ(平文)を暗号化し、当該暗号文を記憶装置14の所定の書き込み対象アドレスへ書き込むために制御回路15に送信する。従って、本発明装置1と記憶装置との接続は、PC等の電子機器に着脱可能なメモリカードのように、電気的な接続であってもよいし、有線あるいは無線LAN経由でネットワーク接続されていても構わない。
【0027】
以下において、データを暗号化して記憶装置の所定のアドレスに書き込む場合の本発明装置1の動作について説明する。
【0028】
初期値生成回路11は、アクセスするページのページ番号nPG、及び、ページブロック番号mBLKに基づき、nPGとmBLKの関数として初期値IV(nPG,mBLK)を設定すると、擬似乱数生成回路12は、当該IV(nPG,mBLK)に基づいて、ブロック暗号のカウンタモードにより擬似乱数を生成する。当該擬似乱数のサイズは、使用されるブロック暗号のブロック長Lに等しい。また、IV(nPG,mBLK)が、使用されるブロック暗号のカウンタモードにおけるカウント値に相当する。
【0029】
ここで、当該ブロック暗号のブロック長の長さのブロック単位でデータの暗号化ないし復号化が行われるため、各ページを当該ブロック長Lの長さの複数のブロックに分割し、当該分割された各ブロックをページブロックと呼ぶ。ページ内において、分割された各ページブロックは、ページブロック番号により順序付けされ、これにより、ページ内における各ページブロックの位置が、ページブロック番号mBLKにより特定される。
【0030】
排他的論理和回路13は、擬似乱数生成回路12が生成した擬似乱数と平文との排他的論理和(XOR)を取り、暗号文を出力する。当該暗号文が、ページ番号nPG、及び、ページブロック番号mBLKによって特定される記憶装置の所定のアドレスに、制御回路を介して書き込まれる。
【0031】
次の連続した書き込みでは、更に、初期値生成回路11は、ページブロック番号mBLKを1加算して求められる初期値IV(nPG,mBLK+1)を設定し、擬似乱数生成回路12は、当該IV(nPG,mBLK+1)に基づいて擬似乱数を生成する。そして、排他的論理和回路13が、当該擬似乱数と平文との排他的論理和(XOR)を取り、暗号文を出力する。
【0032】
図2にページとページブロックとの関係を示す。ページサイズをNとすると、各ページにおいて、分割されたページブロックの総数Mは、M=N/Lとなる。例えばページ#0からアクセスした場合、ページ#0へのアクセスの間、ページブロック番号を示すカウント値が#0〜#M−1まで順次1加算される。ページ#0、ページブロック番号#M−1へのアクセス後、次の連続したアクセスでは、ページブロック番号を示すカウント値がリセットされ、ページブロック番号が#0に戻る代わりにページ番号を示すカウント値が1だけ加算され、ページ#1に属するページブロックへのアクセスが開始される。従って、IV(nPG,M)=IV(nPG+1,0)となっている。
【0033】
図3において、初期値を設定するための関数IV(nPG,mBLK)の一例を示す。図3に示す例では、初期値IVはページ番号nPGとページブロック番号mBLKを示す2進数を連接して設定される。具体的には、IV(nPG,mBLK)=nPG・M+mBLKとなっている。これにより、ページ#0、ページブロック番号#M−1へのアクセス後、次の連続したアクセスでは、ページ#1、ページブロック番号#0のアクセスを開始することになるが、この場合においても、初期値IVを1だけ加算するだけで足りる。
【0034】
つまり、初期値IVはこれまでの暗号文作成回数を示すカウント値と等価であり、ページをまたぐアクセスであっても、連続した書き込みでは初期値IVを順次1加算していくことで暗号文作成を継続することが可能となる。これにより、連続アクセスしてもランダムアクセスしても一意の初期値IVが設定される。
【0035】
更に、上述の通り、初期値IVはこれまでの暗号文作成回数を示すカウント値を示すため、初期値生成回路11の構成としては、一のカウンタが利用できる。
【0036】
また、書き込み途中でエラー等が生じた場合には、最初から書き込み動作をやり直す必要はなく、エラーが生じたページ番号nPGとページブロック番号mBLKに戻って、カウンタの初期値をIV(nPG,mBLK)にセットして暗号文の生成をやり直すことができ、エラーが生じたページ番号nPGとページブロック番号から書き込み動作をやり直すことができる。
【0037】
例えばメモリカードとしてのSDカードに本発明装置1を搭載し、PC(パーソナルコンピュータ)等で作成されたデータを暗号化して当該SDカードに保存する場合を考える。SDカードの1ページ当りのメモリサイズは512バイト(4096ビット)である。一方、暗号化アルゴリズムとして、ブロック長が128ビットのAESを用いるとする。従って、1ページ当り32ページブロックを有する。この場合、図4に示すように、初期値IV(128ビット)の設定例として、下位5ビットであるビット#0〜ビット#4をページブロック番号に割り当て、上位ビットであるビット#5〜ビット#127をページ番号に割り当てるとよい。
【0038】
〈第2実施形態〉
本発明の一実施形態に係るデータ暗号化装置2(以降、適宜「本発明装置2」と称する)の構成例を図5に示す。本発明装置2では、ページ番号nPGとページブロック番号mBLKに加えて、任意のオフセット値offsetとの関数として、擬似乱数の初期値IVが、初期値生成回路16により設定される。
【0039】
本発明装置2における初期値IVの設定例を図6に示す。図6に示す例では、ページ番号nPG、ページブロック番号mBLKから設定される値(プレ初期値)に、更にオフセット値offsetを加算して初期値IVを生成している。この場合、初期値IVは、具体的にはIV(nPG,mBLK,offset)=nPG・M+mBLK+offsetとなる。
【0040】
このオフセット値をデータ暗号化装置1毎に変えることにより、同じ暗号鍵でも異なる擬似乱数列を生成することができ、異なる暗号文が生成される。これにより、異なるデータ暗号化装置2により制御される記憶装置間において、記憶装置内のデータのデッドコピーを防ぐことができる。
【0041】
図7にオフセット値offsetを入力とする初期値生成回路16の他の例を示す。図6に示す初期値生成回路16は、プレ初期値生成回路(カウンタ)17と排他的論理和回路18からなり、ページ番号nPG、ページブロック番号mBLKに基づきプレ初期値生成回路17により設定されるプレ初期値Pre−IVと、オフセット値offsetとの排他的論理和により初期値IV(nPG,mBLK,offset)を生成する。
【0042】
図3において、初期値生成回路11が、初期値IVをページ番号nPGとページブロック番号mBLKの関数として設定したのと同様に、図7では、プレ初期値生成回路17が、プレ初期値Pre−IVをページ番号nPGとページブロック番号mBLKの関数として設定することで、プレ初期値IVはこれまでの暗号文作成回数を示すカウント値と等価であり、ページをまたぐアクセスであっても、連続した書き込みではプレ初期値Pre−IVを順次1加算していくことで暗号文作成を継続することが可能となる。
【0043】
更に、プレ初期値Pre−IVとオフセット値offsetとの排他的論理和により初期値IVを生成することで、データ暗号化装置毎にオフセット値を変えることでデータのデッドコピーを防止し、セキュリティの強度を上げることができる。
【0044】
以上、本発明装置1または2がデータを暗号化して記憶装置に保存する場合を詳細に説明した。暗号化して保存されたデータを復号化して読み出す場合も、暗号文と平文の関係が逆になるだけであり、同じ構成が利用できる。即ち、初期値生成回路11(16)がページ番号とページブロック番号に基づき暗号化時と同じ初期値IVを生成することができるため、擬似乱数生成回路12が当該暗号化時と同じ初期値IVを用いて擬似乱数を生成し、排他的論理和回路13が当該擬似乱数と暗号文との排他的論理和をとることにより平文を復元できる。
【0045】
以上、本発明の一実施形態について詳細に説明したが、これは本発明の好適な実施形態の一例である。本発明の実施形態はこれらに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形実施が可能である。
【0046】
以下に、別実施形態について説明する。
【0047】
〈1〉上記実施形態では、初期値IVの設定例として、上位ビットをページ番号に割り当て、下位ビットをページブロック番号に割り当てる場合を例示したが、本発明はこれに限られるものではない。例えば、逆に上位ビットをページブロック番号に割り当て、下位ビットをページ番号に割り当ててもよいし、下位の奇数ビットをページブロック番号に割り当ててもよい。或いは、ページブロック番号あるいはページ番号に相当するビットを反転させたものを初期値IVとして設定してもよい。ページ番号、及びページブロック番号の関数として初期値IVを一意に定まることのできる限りにおいて、本発明を用可能である。
【産業上の利用可能性】
【0048】
本発明は、記憶装置に保存されるデータの暗号化及び復号化に利用可能であり、特に機密情報を含むデータに対し、任意のページへの高速アクセスが可能で高セキュリティのメモリカードとしての利用が可能である。
【符号の説明】
【0049】
1、2: 本発明に係るデータ暗号化装置
11、16: 初期値生成回路
12: 擬似乱数生成回路
13、18: 排他的論理和回路
17: プレ初期値生成回路
IV: 擬似乱数の初期値
M: 1ページ当りのページブロック数
N: ページサイズ
BLK: ページブロック番号
PG: ページ番号
Pre−IV: 擬似乱数のプレ初期値


【特許請求の範囲】
【請求項1】
ページ単位でアクセスが可能な記憶装置に対し、当該記憶装置に記憶されるデータを、ストリーム暗号により暗号化して書き込み又は復号化して読み出しを行うデータ暗号化処理装置であって、
暗号化または復号化時における前記擬似乱数の生成にブロック暗号のカウンタモードを使用し、
前記ページは、夫々、ブロック長が前記ブロック暗号のブロック長と同一の複数のページブロックに分割され、前記分割されたページブロック単位で前記ブロック暗号のカウンタモードによる暗号化または復号化が行われるものであり、
書き込まれ、または、読み出される前記データの前記ページ内における位置が、前記ページブロックのページブロック番号により特定され、
前記擬似乱数を生成するための初期値として、書き込みまたは読み出し対象の前記ページのページ番号と前記ページブロック番号との関数で求まる値を用いることを特徴とするデータ暗号化装置。
【請求項2】
前記擬似乱数を生成するための初期値として、書き込みまたは読み出し対象の前記ページのページ番号と前記ページブロック番号、及び、前記データ暗号化装置毎に異なるオフセット値との関数で求まる値を用いることを特徴とする請求項1に記載のデータ暗号化装置。
【請求項3】
前記初期値が、前記ページブロック番号の上位ビット側に前記ページ番号を連接して得られるプレ初期値に、前記オフセット値を加算した値として表されることを特徴とする請求項2に記載のデータ暗号化装置。
【請求項4】
前記初期値が、前記ページブロック番号の上位ビット側に前記ページ番号を連接して得られるプレ初期値と、前記オフセット値との排他的論理和で表されることを特徴とする請求項2に記載のデータ暗号化装置。
【請求項5】
前記初期値が、前記ページブロック番号の上位ビット側に前記ページ番号を連接した値として表されることを特徴とする請求項1に記載のデータ暗号化装置。
【請求項6】
前記ブロック暗号の暗号化アルゴリズムとしてAESを使用することを特徴とする請求項1〜5の何れか一項に記載のデータ暗号化装置。
【請求項7】
前記記憶装置、及び、請求項1〜6の何れか一項に記載のデータ暗号化装置を搭載してなるメモリカード。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−151805(P2012−151805A)
【公開日】平成24年8月9日(2012.8.9)
【国際特許分類】
【出願番号】特願2011−10913(P2011−10913)
【出願日】平成23年1月21日(2011.1.21)
【出願人】(000005049)シャープ株式会社 (33,933)
【Fターム(参考)】