(57)【要約】【課題】従来よりもセキュリティ性が向上されたデータ処理装置を得る。【解決手段】疑似乱数生成部１０は、第１のデータ群が処理されている間に、４個の疑似乱数Ｐ０〜Ｐ３を生成して出力する。出力された疑似乱数Ｐ０〜Ｐ３は、バッファメモリ１１に格納される。順序変換部１５は、順序変換テーブル１６を参照することにより、疑似乱数Ｐ０〜Ｐ３の配列順序を変換する。これにより、配列順序が変換された後の疑似乱数Ｐ０〜Ｐ３として、スクランブル値Ｓ０〜Ｓ３を得る。順序変換部１５から出力されたスクランブル値Ｓ０〜Ｓ３は、演算部１７に入力される。演算部１７は、スクランブル値Ｓ０，Ｓ１，Ｓ２，Ｓ３と第１のデータ群に続く第２のデータ群のデータＤ０，Ｄ１，Ｄ２，Ｄ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０，ＳＤ１，ＳＤ２，ＳＤ３を生成して出力する。【選択図】図３
2008165008.tif 000002
【特許請求の範囲】
【請求項１】
各データ毎に疑似乱数を順に生成する疑似乱数生成部と、
第１群の複数のデータに対応して前記疑似乱数生成部によって生成された複数の疑似乱数に基づいて、前記第１群の複数のデータに続く第２群の複数のデータに対する複数のスクランブル値を生成する第１の処理部と、
前記複数のスクランブル値を用いて、前記第２群の複数のデータに対するスクランブル処理を行う第２の処理部と
を備える、データ処理装置。
【請求項２】
前記第１の処理部は、
所定の順序変換テーブルが予め記憶された記憶部と、
前記順序変換テーブルに基づいて、前記疑似乱数生成部によって生成された前記複数の疑似乱数の配列順序を変換し、それによって前記複数のスクランブル値を得る順序変換部と
を有する、請求項１に記載のデータ処理装置。
【請求項３】
前記第１の処理部は、
所定の演算規則テーブルが予め記憶された記憶部と、
前記演算規則テーブルに基づいて、前記疑似乱数生成部によって生成された前記複数の疑似乱数を用いた演算を行い、それによって前記複数のスクランブル値を得る演算部と
を有する、請求項１に記載のデータ処理装置。
【請求項４】
前記第１の処理部は、
前記疑似乱数生成部によって生成された前記複数の疑似乱数の配列順序を、当該複数の疑似乱数自身の値に基づいて変換し、それによって前記複数のスクランブル値を得る順序変換部
を有する、請求項１に記載のデータ処理装置。
【請求項５】
前記第１の処理部は、
前記疑似乱数生成部によって生成された前記複数の疑似乱数の値に基づいて、所定の演算規則を生成する演算規則生成部と、
前記所定の演算規則に基づいて、当該複数の疑似乱数を用いた演算を行い、それによって前記複数のスクランブル値を得る演算部と
を有する、請求項１に記載のデータ処理装置。
【請求項６】
（Ａ）第１群の複数のデータに対応して複数の疑似乱数を順に生成するステップと、
（Ｂ）前記複数の疑似乱数に基づいて、前記第１群の複数のデータに続く第２群の複数のデータに対する複数のスクランブル値を生成するステップと、
（Ｃ）前記複数のスクランブル値を用いて、前記第２群の複数のデータに対するスクランブル処理を行うステップと
を備える、データ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
半導体メモリを着脱自在に接続することによって、当該半導体メモリに記憶されているソフトウェアプログラムやデータ等を利用する情報処理装置が知られている。
【０００３】
このような半導体メモリの中には、内部に記憶されているデータ等の機密を保護するために、特定のセキュリティ技術が搭載されているものがある。例えば下記特許文献１には、所定のキーデータを利用してデータを暗号化する技術が開示されている。
【０００４】
【特許文献１】特開平９−１０６６９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に開示された技術のようにキーデータを利用してデータの暗号化を行う場合であっても、半導体メモリと情報処理装置との間で行われる通信の内容を観測することが可能であるため、大量のサンプルを解析することで暗号が解読される可能性があり、セキュリティ性が十分とはいえない。
【０００６】
本発明はかかる事情に鑑みて成されたものであり、従来よりもセキュリティ性が向上されたデータ処理装置及びデータ処理方法を得ることを目的とする。
【課題を解決するための手段】
【０００７】
第１の発明に係るデータ処理装置は、各データ毎に疑似乱数を順に生成する疑似乱数生成部と、第１群の複数のデータに対応して前記疑似乱数生成部によって生成された複数の疑似乱数に基づいて、前記第１群の複数のデータに続く第２群の複数のデータに対する複数のスクランブル値を生成する第１の処理部と、前記複数のスクランブル値を用いて、前記第２群の複数のデータに対するスクランブル処理を行う第２の処理部とを備える。
【０００８】
第２の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記第１の処理部は、所定の順序変換テーブルが予め記憶された記憶部と、前記順序変換テーブルに基づいて、前記疑似乱数生成部によって生成された前記複数の疑似乱数の配列順序を変換し、それによって前記複数のスクランブル値を得る順序変換部とを有することを特徴とする。
【０００９】
第３の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記第１の処理部は、所定の演算規則テーブルが予め記憶された記憶部と、前記演算規則テーブルに基づいて、前記疑似乱数生成部によって生成された前記複数の疑似乱数を用いた演算を行い、それによって前記複数のスクランブル値を得る演算部とを有することを特徴とする。
【００１０】
第４の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記第１の処理部は、前記疑似乱数生成部によって生成された前記複数の疑似乱数の配列順序を、当該複数の疑似乱数自身の値に基づいて変換し、それによって前記複数のスクランブル値を得る順序変換部を有することを特徴とする。
【００１１】
第５の発明に係るデータ処理装置は、第１の発明に係るデータ処理装置において特に、前記第１の処理部は、前記疑似乱数生成部によって生成された前記複数の疑似乱数の値に基づいて、所定の演算規則を生成する演算規則生成部と、前記所定の演算規則に基づいて、当該複数の疑似乱数を用いた演算を行い、それによって前記複数のスクランブル値を得る演算部とを有することを特徴とする。
【００１２】
第６の発明に係るデータ処理方法は、（Ａ）第１群の複数のデータに対応して複数の疑似乱数を順に生成するステップと、（Ｂ）前記複数の疑似乱数に基づいて、前記第１群の複数のデータに続く第２群の複数のデータに対する複数のスクランブル値を生成するステップと、（Ｃ）前記複数のスクランブル値を用いて、前記第２群の複数のデータに対するスクランブル処理を行うステップとを備える。
【発明の効果】
【００１３】
第１の発明に係るデータ処理装置によれば、疑似乱数生成部が生成した疑似乱数をそのままスクランブル値とするのではなく、第１群の複数のデータに対応して生成された複数の疑似乱数に基づいて、第２群の複数のデータに対する複数のスクランブル値が生成されるため、第三者による不正なスクランブル解除が困難であり、セキュリティ性を高めることができる。しかも、一つの疑似乱数生成部が順に生成した複数の疑似乱数に基づいて複数のスクランブル値が生成されるため、複数の疑似乱数生成部を使用する場合と比較すると、構成の簡略化を図ることができる。
【００１４】
第２の発明に係るデータ処理装置によれば、疑似乱数生成部が生成した疑似乱数をそのままスクランブル値とするのではなく、複数の疑似乱数の配列順序を変換して複数のスクランブル値を得ることにより、セキュリティ性をさらに高めることができる。
【００１５】
第３の発明に係るデータ処理装置によれば、疑似乱数生成部が生成した疑似乱数をそのままスクランブル値とするのではなく、複数の疑似乱数を用いた演算を行って複数のスクランブル値を得ることにより、セキュリティ性をさらに高めることができる。
【００１６】
第４の発明に係るデータ処理装置によれば、疑似乱数生成部が生成した疑似乱数をそのままスクランブル値とするのではなく、複数の疑似乱数の配列順序を変換して複数のスクランブル値を得ることにより、セキュリティ性をさらに高めることができる。
【００１７】
第５の発明に係るデータ処理装置によれば、疑似乱数生成部が生成した疑似乱数をそのままスクランブル値とするのではなく、複数の疑似乱数を用いた演算を行って複数のスクランブル値を得ることにより、セキュリティ性をさらに高めることができる。
【００１８】
第６の発明に係るデータ処理方法によれば、生成された疑似乱数をそのままスクランブル値とするのではなく、第１群の複数のデータに対応して生成された複数の疑似乱数に基づいて、第２群の複数のデータに対する複数のスクランブル値が生成されるため、第三者による不正なスクランブル解除が困難であり、セキュリティ性を高めることができる。しかも、一つの疑似乱数生成部が順に生成した複数の疑似乱数に基づいて複数のスクランブル値を生成できるため、複数の疑似乱数生成部を使用する場合と比較すると、構成の簡略化を図ることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００２０】
図１は、本発明の実施の形態に係るデータ処理システムの全体構成の第１の例を概略的に示すブロック図である。第１の機器１００は半導体メモリであり、第２の機器１０１はホスト機器である。メモリセルアレイ１から出力されたデータＤ（この例の場合、データＤは、半導体メモリから読み出されたデータビット列である。）は、スクランブル処理部２に入力される。スクランブル処理部２は、データＤに対してスクランブル処理を施して、スクランブルデータＳＤを出力する。スクランブルデータＳＤは、第２の機器１０１内のデスクランブル処理部３に入力される。デスクランブル処理部３は、スクランブルデータＳＤに対してデスクランブル処理を施すことにより、スクランブルを解除して元のデータＤを出力する。データＤは、ＣＰＵ４に入力される。
【００２１】
図２は、本発明の実施の形態に係るデータ処理システムの全体構成の第２の例を概略的に示すブロック図である。第１の機器１００はホスト機器であり、第２の機器１０１は半導体メモリである。ＣＰＵ４から出力されたデータＤ（この例の場合、データＤは、ホスト機器から半導体メモリに対するコマンドビット列である。）は、スクランブル処理部２に入力される。スクランブル処理部２は、データＤに対してスクランブル処理を施して、スクランブルデータＳＤを出力する。スクランブルデータＳＤは、第２の機器１０１内のデスクランブル処理部３に入力される。デスクランブル処理部３は、スクランブルデータＳＤに対してデスクランブル処理を施すことにより、スクランブルを解除して元のデータＤを出力する。データＤは、メモリセルアレイ１に入力される。なお、上記の例に限らず、第１の機器１００及び第２の機器１０１は、いずれも任意の機器である。
【００２２】
本発明は主に、図１，２に示したスクランブル処理部２に関するものである。以下、データＤが１バイト長のデータであり、４つのデータＤで１つのデータ群が構成される場合を例にとり、本発明の実施の形態に係るデータ処理装置について説明する。
【００２３】
＜スクランブル処理部２の第１の構成例＞
図３は、図１，２に示したスクランブル処理部２の第１の構成（スクランブル処理部２Ａ）を示すブロック図である。図２に示すように、スクランブル処理部２Ａは、疑似乱数生成部（ＰＮＧ）１０と、バッファメモリ１１と、第１の処理部１２と、第２の処理部１３とを備えている。
【００２４】
疑似乱数生成部１０は、データＤ毎に疑似乱数を生成する。この例では４つのデータＤで１つのデータ群が構成されるため、疑似乱数生成部１０は、各データ群毎に４個の疑似乱数Ｐ０，Ｐ１，Ｐ２，Ｐ３をこの順に生成する。
【００２５】
バッファメモリ１１は、疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を一時的に記憶する。
【００２６】
第１の処理部１２は、記憶部１４と順序変換部１５とを備えている。記憶部１４には、後述する順序変換テーブル１６が予め記憶されている。順序変換部１５は、前回処理したデータ群に対応して疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を、バッファメモリ１１から読み出す。そして、読み出した疑似乱数Ｐ０〜Ｐ３に基づいて、今回処理すべきデータ群に対する複数のスクランブル値Ｓ０〜Ｓ３を生成する。順序変換部１５における処理内容の詳細については後述する。
【００２７】
なお、上記の「今回処理すべきデータ群」が最初に送られてきたデータ群である場合には、上記の「前回処理したデータ群に対応して疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３」が存在しないため、以下のようにしてスクランブル値Ｓ０〜Ｓ３を生成する。つまり、疑似乱数生成部１０によって予め４個の疑似乱数を生成し、バッファメモリ１１に格納しておく。そして、最初に送られてきたデータ群に対しては、バッファメモリ１１から読み出したこれら４個の疑似乱数に基づいて、スクランブル値Ｓ０〜Ｓ３を生成する。後述する他の構成例についても同様である。
【００２８】
第２の処理部１３は、演算部１７を備えている。演算部１７は、順序変換部１５から入力された各スクランブル値Ｓ０〜Ｓ３と、図１に示したメモリセルアレイ１（あるいは図２に示したＣＰＵ４。以下同様）から入力されたデータＤ（Ｄ０〜Ｄ３）との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ（ＳＤ０〜ＳＤ３）を生成する。例えば、スクランブル値Ｓ１とデータＤ１との排他的論理和をとることにより、スクランブルデータＳＤ１が生成される。
【００２９】
演算部１７から出力されたスクランブルデータＳＤは、図１，２に示したデスクランブル処理部３に入力される。デスクランブル処理部３は、図３に示したスクランブル処理部２Ａと同様に、疑似乱数生成部１０、バッファメモリ１１、第１の処理部１２、及び第２の処理部１３を備えて構成されている。その結果、デスクランブル処理部３が有する第１の処理部１２は、スクランブル処理部２Ａが有する第１の処理部１２が生成したスクランブル値Ｓ０〜Ｓ３と同一のスクランブル値Ｓ０〜Ｓ３を生成することができる。デスクランブル処理部３が有する演算部１７は、第１の機器１００から入力されたスクランブルデータＳＤ０〜ＳＤ３と、デスクランブル処理部３が有する第１の処理部１２によって生成されたスクランブル値Ｓ０〜Ｓ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０〜ＳＤ３のスクランブルを解除して元のデータＤ０〜Ｄ３を復元する。
【００３０】
なお、スクランブル処理部２Ａとデスクランブル処理部３とで同一のスクランブル値Ｓ０〜Ｓ３を生成するためには、スクランブル処理部２Ａの第１の処理部１２と、デスクランブル処理部３の第１の処理部１２とで、各記憶部１４内に同一の順序変換テーブル１６を記憶しておく必要がある。これを実現するために、各記憶部１４内に予め同一の順序変換テーブル１６が格納されていることにより、各記憶部１４は同一の順序変換テーブル１６を共有する。あるいは、メモリセルアレイ１（図１，２参照）内の特定領域に順序変換テーブル１６が予め格納されており、システムの電源投入時に、その特定領域から各記憶部１４内に順序変換テーブル１６が読み出されても良い。あるいは、メモリセルアレイ１内の特定領域に、順序変換テーブル１６を作成するための所定のキー情報が予め格納されており、システムの電源投入時に、その特定領域から読み出したキー情報に基づいて例えばＣＰＵ４（図１，２参照）が順序変換テーブル１６を作成し、その作成した順序変換テーブル１６を各記憶部１４内に格納しても良い。
【００３１】
図４は、図３に示した記憶部１４に記憶されている順序変換テーブル１６の一例を示す模式図である。疑似乱数Ｐ０〜Ｐ３の配列順序を変換するためのルールとして、疑似乱数Ｐ０〜Ｐ３とスクランブル値Ｓ０〜Ｓ３との対応関係が、インデックス値によって分類されて複数記述されている。いずれかのインデックス値を選択することにより、選択されたインデックス値に対応するルールが、バッファメモリ１１から読み出した疑似乱数Ｐ０〜Ｐ３の配列順序を変換するために使用される。インデックス値の選択手法としては、各データＤ毎にインデックス値を１ずつインクリメントする手法や、前回の疑似乱数Ｐ０の下位数ビットの値に基づいてインデックス値を決定する手法など、どのような手法であっても良い。
【００３２】
図５は、図４に示したインデックス値「２」が採用された場合を例として、スクランブルデータＳＤ０〜ＳＤ３の生成手法を説明するための模式図である。以下、図３〜５を参照して、スクランブル処理部２Ａの動作について説明する。
【００３３】
図３を参照して、疑似乱数生成部１０は、４つのデータＤから成る第１のデータ群が処理されている間に、４個の疑似乱数Ｐ０〜Ｐ３を生成して出力する。出力された疑似乱数Ｐ０〜Ｐ３は、バッファメモリ１１に格納される。第１のデータ群に続く第２のデータ群（４つのデータＤ０〜Ｄ３から成る）がスクランブル処理部２Ａに入力されると、順序変換部１５は、バッファメモリ１１から疑似乱数Ｐ０〜Ｐ３を読み出す。その際、図５に示すように、順序変換部１５には、バッファメモリ１１から疑似乱数Ｐ０〜Ｐ３がＰ０→Ｐ１→Ｐ２→Ｐ３の順序で入力される。
【００３４】
順序変換部１５は、順序変換テーブル１６のインデックス値「２」の行（“３”“２”“０”“１”）を参照することにより、疑似乱数Ｐ０→Ｐ１→Ｐ２→Ｐ３の配列順序を、Ｐ３→Ｐ２→Ｐ０→Ｐ１に変換する。これにより、配列順序が変換された後の疑似乱数Ｐ０〜Ｐ３として、スクランブル値Ｓ０〜Ｓ３を得る。この例の場合、スクランブル値Ｓ０，Ｓ１，Ｓ２，Ｓ３は、それぞれ疑似乱数Ｐ３，Ｐ２，Ｐ０，Ｐ１に対応する。
【００３５】
順序変換部１５から出力されたスクランブル値Ｓ０〜Ｓ３は、演算部１７に入力される。また、演算部１７には、今回処理すべき第２のデータ群が、データＤ０→Ｄ１→Ｄ２→Ｄ３の順序で入力されている。演算部１７は、スクランブル値Ｓ０，Ｓ１，Ｓ２，Ｓ３とデータＤ０，Ｄ１，Ｄ２，Ｄ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０，ＳＤ１，ＳＤ２，ＳＤ３を生成して出力する。
【００３６】
＜スクランブル処理部２の第２の構成例＞
図６は、図１，２に示したスクランブル処理部２の第２の構成（スクランブル処理部２Ｂ）を示すブロック図である。図６に示すように、スクランブル処理部２Ｂは、疑似乱数生成部１０と、バッファメモリ１１と、第１の処理部１２と、第２の処理部１３とを備えている。
【００３７】
疑似乱数生成部１０は、データＤ毎に疑似乱数を生成する。この例では４つのデータＤで１つのデータ群が構成されるため、疑似乱数生成部１０は、各データ群毎に４個の疑似乱数Ｐ０，Ｐ１，Ｐ２，Ｐ３をこの順に生成する。
【００３８】
バッファメモリ１１は、疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を一時的に記憶する。
【００３９】
第１の処理部１２は、記憶部１４と演算部２５とを備えている。記憶部１４には、後述する演算規則テーブル２６が予め記憶されている。演算部２５は、前回処理したデータ群に対応して疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を、バッファメモリ１１から読み出す。そして、読み出した疑似乱数Ｐ０〜Ｐ３に基づいて、今回処理すべきデータ群に対する複数のスクランブル値Ｓ０〜Ｓ３を生成する。演算部２５における処理内容の詳細については後述する。
【００４０】
第２の処理部１３は、演算部１７を備えている。演算部１７は、順序変換部１５から入力された各スクランブル値Ｓ０〜Ｓ３と、図１に示したメモリセルアレイ１から入力されたデータＤ（Ｄ０〜Ｄ３）との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ（ＳＤ０〜ＳＤ３）を生成する。
【００４１】
演算部１７から出力されたスクランブルデータＳＤは、図１，２に示したデスクランブル処理部３に入力される。デスクランブル処理部３は、図６に示したスクランブル処理部２Ａと同様に、疑似乱数生成部１０、バッファメモリ１１、第１の処理部１２、及び第２の処理部１３を備えて構成されている。その結果、デスクランブル処理部３が有する第１の処理部１２は、スクランブル処理部２Ｂが有する第１の処理部１２が生成したスクランブル値Ｓ０〜Ｓ３と同一のスクランブル値Ｓ０〜Ｓ３を生成することができる。デスクランブル処理部３が有する演算部１７は、第１の機器１００から入力されたスクランブルデータＳＤ０〜ＳＤ３と、デスクランブル処理部３が有する第１の処理部１２によって生成されたスクランブル値Ｓ０〜Ｓ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０〜ＳＤ３のスクランブルを解除して元のデータＤ０〜Ｄ３を復元する。
【００４２】
なお、スクランブル処理部２Ｂとデスクランブル処理部３とで同一のスクランブル値Ｓ０〜Ｓ３を生成するためには、スクランブル処理部２Ｂの第１の処理部１２と、デスクランブル処理部３の第１の処理部１２とで、各記憶部１４内に同一の演算規則テーブル２６を記憶しておく必要がある。これを実現するために、各記憶部１４内に予め同一の演算規則テーブル２６が格納されていることにより、各記憶部１４は同一の演算規則変換テーブル２６を共有する。あるいは、メモリセルアレイ１（図１，２参照）内の特定領域に演算規則テーブル２６が予め格納されており、システムの電源投入時に、その特定領域から各記憶部１４内に演算規則テーブル２６が読み出されても良い。あるいは、メモリセルアレイ１内の特定領域に、演算規則テーブル２６を作成するための所定のキー情報が予め格納されており、システムの電源投入時に、その特定領域から読み出したキー情報に基づいて例えばＣＰＵ４（図１，２参照）が演算規則テーブル２６を作成し、その作成した演算規則テーブル２６を各記憶部１４内に格納しても良い。
【００４３】
図７は、図６に示した記憶部１４に記憶されている演算規則テーブル２６の一例を示す模式図である。疑似乱数Ｐ０〜Ｐ３からスクランブル値Ｓ０〜Ｓ３を生成するための演算規則として、排他的論理和をとるべき疑似乱数Ｐ０〜Ｐ３の組と、スクランブル値Ｓ０〜Ｓ３との対応関係が、インデックス値によって分類されて複数記述されている。いずれかのインデックス値を選択することにより、選択されたインデックス値に対応する演算規則が、バッファメモリ１１から読み出した疑似乱数Ｐ０〜Ｐ３からスクランブル値Ｓ０〜Ｓ３を生成するために使用される。インデックス値の選択手法としては、各データＤ毎にインデックス値を１ずつインクリメントする手法や、前回の疑似乱数Ｐ０の下位数ビットの値に基づいてインデックス値を決定する手法など、どのような手法であっても良い。
【００４４】
図８は、図７に示したインデックス値「３」が採用された場合を例として、スクランブルデータＳＤ０〜ＳＤ３の生成手法を説明するための模式図である。以下、図６〜８を参照して、スクランブル処理部２Ｂの動作について説明する。
【００４５】
図６を参照して、疑似乱数生成部１０は、４つのデータＤから成る第１のデータ群が処理されている間に、４個の疑似乱数Ｐ０〜Ｐ３を生成して出力する。出力された疑似乱数Ｐ０〜Ｐ３は、バッファメモリ１１に格納される。第１のデータ群に続く第２のデータ群（４つのデータＤ０〜Ｄ３から成る）がスクランブル処理部２Ｂに入力されると、演算部２５は、バッファメモリ１１から疑似乱数Ｐ０〜Ｐ３を読み出す。その際、図８に示すように、演算部２５には、バッファメモリ１１から疑似乱数Ｐ０〜Ｐ３がＰ０→Ｐ１→Ｐ２→Ｐ３の順序で入力される。
【００４６】
演算部２５は、演算規則テーブル２６のインデックス値「３」の行（“１，３”“０，２”“２，３”“０，１”）を参照し、指定された疑似乱数Ｐ０〜Ｐ３同士の排他的論理和をとることにより、スクランブル値Ｓ０〜Ｓ３を得る。この例の場合、スクランブル値Ｓ０は疑似乱数Ｐ１と疑似乱数Ｐ３との排他的論理和に相当し、スクランブル値Ｓ１は疑似乱数Ｐ０と疑似乱数Ｐ２との排他的論理和に相当し、スクランブル値Ｓ２は疑似乱数Ｐ２と疑似乱数Ｐ３との排他的論理和に相当し、スクランブル値Ｓ３は疑似乱数Ｐ０と疑似乱数Ｐ１との排他的論理和に相当する。
【００４７】
演算部２５から出力されたスクランブル値Ｓ０〜Ｓ３は、演算部１７に入力される。また、演算部１７には、今回処理すべき第２のデータ群が、データＤ０→Ｄ１→Ｄ２→Ｄ３の順序で入力されている。演算部１７は、スクランブル値Ｓ０，Ｓ１，Ｓ２，Ｓ３とデータＤ０，Ｄ１，Ｄ２，Ｄ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０，ＳＤ１，ＳＤ２，ＳＤ３を生成して出力する。
【００４８】
＜スクランブル処理部２の第３の構成例＞
図９は、図１，２に示したスクランブル処理部２の第３の構成（スクランブル処理部２Ｃ）を示すブロック図である。図９に示すように、スクランブル処理部２Ｃは、疑似乱数生成部１０と、バッファメモリ１１と、第１の処理部１２と、第２の処理部１３とを備えている。
【００４９】
疑似乱数生成部１０は、データＤ毎に疑似乱数を生成する。この例では４つのデータＤで１つのデータ群が構成されるため、疑似乱数生成部１０は、各データ群毎に４個の疑似乱数Ｐ０，Ｐ１，Ｐ２，Ｐ３をこの順に生成する。
【００５０】
バッファメモリ１１は、疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を一時的に記憶する。
【００５１】
第１の処理部１２は、順序変換部３５を備えている。順序変換部３５は、前回処理したデータ群に対応して疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を、バッファメモリ１１から読み出す。そして、読み出した疑似乱数Ｐ０〜Ｐ３に基づいて、今回処理すべきデータ群に対する複数のスクランブル値Ｓ０〜Ｓ３を生成する。順序変換部３５における処理内容の詳細については後述する。
【００５２】
第２の処理部１３は、演算部１７を備えている。演算部１７は、順序変換部３５から入力された各スクランブル値Ｓ０〜Ｓ３と、図１に示したメモリセルアレイ１から入力されたデータＤ（Ｄ０〜Ｄ３）の排他的論理和をそれぞれとることにより、スクランブルデータＳＤ（ＳＤ０〜ＳＤ３）を生成する。
【００５３】
演算部１７から出力されたスクランブルデータＳＤは、図１，２に示したデスクランブル処理部３に入力される。デスクランブル処理部３は、図９に示したスクランブル処理部２Ｃと同様に、疑似乱数生成部１０、バッファメモリ１１、第１の処理部１２、及び第２の処理部１３を備えて構成されている。その結果、デスクランブル処理部３が有する第１の処理部１２は、スクランブル処理部２Ｃが有する第１の処理部１２が生成したスクランブル値Ｓ０〜Ｓ３と同一のスクランブル値Ｓ０〜Ｓ３を生成することができる。デスクランブル処理部３が有する演算部１７は、第１の機器１００から入力されたスクランブルデータＳＤ０〜ＳＤ３と、デスクランブル処理部３が有する第１の処理部１２によって生成されたスクランブル値Ｓ０〜Ｓ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０〜ＳＤ３のスクランブルを解除して元のデータＤ０〜Ｄ３を復元する。
【００５４】
図１０は、バッファメモリ１１から読み出された疑似乱数Ｐ０〜Ｐ３の一例を示す模式図である。この例では疑似乱数Ｐ０〜Ｐ３はいずれも８ビットであり、例えば、疑似乱数Ｐ０の上位２ビットは“０１”であり下位２ビットは“１０”である。
【００５５】
図１１は、スクランブルデータＳＤ０〜ＳＤ３の生成手法を説明するための模式図である。以下、図９〜１１を参照して、スクランブル処理部２Ｃの動作について説明する。
【００５６】
図９を参照して、疑似乱数生成部１０は、４つのデータＤから成る第１のデータ群が処理されている間に、４個の疑似乱数Ｐ０〜Ｐ３を生成して出力する。出力された疑似乱数Ｐ０〜Ｐ３は、バッファメモリ１１に格納される。第１のデータ群に続く第２のデータ群（４つのデータＤ０〜Ｄ３から成る）がスクランブル処理部２Ｃに入力されると、順序変換部３５は、バッファメモリ１１から疑似乱数Ｐ０〜Ｐ３を読み出す。
【００５７】
順序変換部３５は、読み出した各疑似乱数Ｐ０〜Ｐ３の例えば下位２ビットの値を参照することにより、疑似乱数Ｐ０→Ｐ１→Ｐ２→Ｐ３の配列順序を変換する。この例では、疑似乱数Ｐ０，Ｐ１，Ｐ２，Ｐ３の各下位２ビットの値がそれぞれ“２”“３”“１”“０”（１０進数）であるため、順序変換部３５は、Ｐ０→Ｐ１→Ｐ２→Ｐ３の配列順序をＰ２→Ｐ３→Ｐ１→Ｐ０に変換する。これにより、スクランブル値Ｓ０，Ｓ１，Ｓ２，Ｓ３は、それぞれ疑似乱数Ｐ２，Ｐ３，Ｐ１，Ｐ０に対応する。
【００５８】
順序変換部３５から出力されたスクランブル値Ｓ０〜Ｓ３は、演算部１７に入力される。また、演算部１７には、今回処理すべき第２のデータ群が、データＤ０→Ｄ１→Ｄ２→Ｄ３の順序で入力されている。演算部１７は、スクランブル値Ｓ０，Ｓ１，Ｓ２，Ｓ３とデータＤ０，Ｄ１，Ｄ２，Ｄ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０，ＳＤ１，ＳＤ２，ＳＤ３を生成して出力する。
【００５９】
＜スクランブル処理部２の第４の構成例＞
図１２は、図１，２に示したスクランブル処理部２の第４の構成（スクランブル処理部２Ｄ）を示すブロック図である。図１２に示すように、スクランブル処理部２Ｄは、疑似乱数生成部１０と、バッファメモリ１１と、第１の処理部１２と、第２の処理部１３とを備えている。
【００６０】
疑似乱数生成部１０は、データＤ毎に疑似乱数を生成する。この例では４つのデータＤで１つのデータ群が構成されるため、疑似乱数生成部１０は、各データ群毎に４個の疑似乱数Ｐ０，Ｐ１，Ｐ２，Ｐ３をこの順に生成する。
【００６１】
バッファメモリ１１は、疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を一時的に記憶する。
【００６２】
第１の処理部１２は、演算規則生成部４６と演算部４５とを備えている。演算規則生成部４６及び演算部４５はそれぞれ、前回処理したデータ群に対応して疑似乱数生成部１０によって生成された疑似乱数Ｐ０〜Ｐ３を、バッファメモリ１１から読み出す。そして、演算規則生成部４６は、読み出した疑似乱数Ｐ０〜Ｐ３の値に基づいて、演算部４５が演算を行うための演算規則を生成する。また、演算部４５は、読み出した疑似乱数Ｐ０〜Ｐ３に基づいて、今回処理すべきデータ群に対する複数のスクランブル値Ｓ０〜Ｓ３を生成する。演算規則生成部４６及び演算部４５における処理内容の詳細については後述する。
【００６３】
第２の処理部１３は、演算部１７を備えている。演算部１７は、演算部４５から入力された各スクランブル値Ｓ０〜Ｓ３と、図１に示したメモリセルアレイ１から入力されたデータＤ（Ｄ０〜Ｄ３）との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ（ＳＤ０〜ＳＤ３）を生成する。
【００６４】
演算部１７から出力されたスクランブルデータＳＤは、図１，２に示したデスクランブル処理部３に入力される。デスクランブル処理部３は、図１２に示したスクランブル処理部２Ｄと同様に、疑似乱数生成部１０、バッファメモリ１１、第１の処理部１２、及び第２の処理部１３を備えて構成されている。その結果、デスクランブル処理部３が有する第１の処理部１２は、スクランブル処理部２Ｄが有する第１の処理部１２が生成したスクランブル値Ｓ０〜Ｓ３と同一のスクランブル値Ｓ０〜Ｓ３を生成することができる。デスクランブル処理部３が有する演算部１７は、第１の機器１００から入力されたスクランブルデータＳＤ０〜ＳＤ３と、デスクランブル処理部３が有する第１の処理部１２によって生成されたスクランブル値Ｓ０〜Ｓ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０〜ＳＤ３のスクランブルを解除して元のデータＤ０〜Ｄ３を復元する。
【００６５】
図１３は、スクランブルデータＳＤ０〜ＳＤ３の生成手法を説明するための模式図である。以下、図１０，１２，１３を参照して、スクランブル処理部２Ｄの動作について説明する。
【００６６】
図１２を参照して、疑似乱数生成部１０は、４つのデータＤから成る第１のデータ群が処理されている間に、４個の疑似乱数Ｐ０〜Ｐ３を生成して出力する。出力された疑似乱数Ｐ０〜Ｐ３は、バッファメモリ１１に格納される。第１のデータ群に続く第２のデータ群（４つのデータＤ０〜Ｄ３から成る）がスクランブル処理部２Ｄに入力されると、演算規則生成部４６及び演算部４５はそれぞれ、バッファメモリ１１から疑似乱数Ｐ０〜Ｐ３を読み出す。その際、図１３に示すように、演算規則生成部４６及び演算部４５にはそれぞれ、バッファメモリ１１から疑似乱数Ｐ０〜Ｐ３がＰ０→Ｐ１→Ｐ２→Ｐ３の順序で入力される。
【００６７】
演算規則生成部４６は、読み出した各疑似乱数Ｐ０〜Ｐ３の例えば下位２ビットの値と例えば上位２ビットの値とに基づいて、演算規則を生成する。図１０に示した例では、疑似乱数Ｐ０，Ｐ１，Ｐ２，Ｐ３の各下位２ビットの値がそれぞれ“２”“３”“１”“０”（１０進数）であり、各上位２ビットの値がそれぞれ“１”“０”“１”“２”（１０進数）であるため、演算規則生成部４６は、“２，１”“３，０”“１，１”“０，２”なる演算規則を生成する。ここで、例えば“２，１”なる演算規則は、疑似乱数Ｐ２と疑似乱数Ｐ１との排他的論理和をとる旨の演算規則である。また、“１，１”なる演算規則に関しては、排他的論理和の結果がゼロとなることを回避すべく、疑似乱数Ｐ１同士の排他的論理和を行わずに疑似乱数Ｐ１がそのままスクランブル値とされる。
【００６８】
演算部４５は、演算規則生成部４６によって生成された演算規則（“２，１”“３，０”“１”“０，２”）を参照し、指定された疑似乱数Ｐ０〜Ｐ３同士の排他的論理和をとることにより、スクランブル値Ｓ０〜Ｓ３を得る。この例の場合、スクランブル値Ｓ０は疑似乱数Ｐ２と疑似乱数Ｐ１との排他的論理和に相当し、スクランブル値Ｓ１は疑似乱数Ｐ３と疑似乱数Ｐ０との排他的論理和に相当し、スクランブル値Ｓ２は疑似乱数Ｐ１に相当し、スクランブル値Ｓ３は疑似乱数Ｐ０と疑似乱数Ｐ２との排他的論理和に相当する。
【００６９】
演算部２５から出力されたスクランブル値Ｓ０〜Ｓ３は、演算部１７に入力される。また、演算部１７には、今回処理すべき第２のデータ群が、データＤ０→Ｄ１→Ｄ２→Ｄ３の順序で入力されている。演算部１７は、スクランブル値Ｓ０，Ｓ１，Ｓ２，Ｓ３とデータＤ０，Ｄ１，Ｄ２，Ｄ３との排他的論理和をそれぞれとることにより、スクランブルデータＳＤ０，ＳＤ１，ＳＤ２，ＳＤ３を生成して出力する。
【００７０】
＜まとめ＞
以上のように、本実施の形態に係るスクランブル処理部２（２Ａ〜２Ｄ）によれば、疑似乱数生成部１０が生成した疑似乱数Ｐ０〜Ｐ３をそのままスクランブル値Ｓ０〜Ｓ３とするのではなく、第１群の複数のデータに対応して生成された複数の疑似乱数Ｐ０〜Ｐ３に基づいて、第２群の複数のデータＤ０〜Ｄ３に対する複数のスクランブル値Ｓ０〜Ｓ３が生成されるため、第三者による不正なスクランブル解除が困難であり、セキュリティ性を高めることができる。しかも、一つの疑似乱数生成部１０が順に生成した複数の疑似乱数Ｐ０〜Ｐ３に基づいて複数のスクランブル値Ｓ０〜Ｓ３が生成されるため、複数の疑似乱数生成部を使用する場合と比較すると、構成の簡略化を図ることができる。
【００７１】
また、スクランブル処理部２Ａ，２Ｃによると、疑似乱数生成部１０が生成した疑似乱数Ｐ０〜Ｐ３をそのままスクランブル値Ｓ０〜Ｓ３とするのではなく、疑似乱数Ｐ０〜Ｐ３の配列順序を変換してスクランブル値Ｓ０〜Ｓ３が得られるため、セキュリティ性をさらに高めることができる。
【００７２】
また、スクランブル処理部２Ｂ，２Ｄによると、疑似乱数生成部１０が生成した疑似乱数Ｐ０〜Ｐ３をそのままスクランブル値Ｓ０〜Ｓ３とするのではなく、疑似乱数Ｐ０〜Ｐ３を用いた演算を行ってスクランブル値Ｓ０〜Ｓ３が得られるため、セキュリティ性をさらに高めることができる。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態に係るデータ処理システムの全体構成の第１の例を概略的に示すブロック図である。
【図２】本発明の実施の形態に係るデータ処理システムの全体構成の第２の例を概略的に示すブロック図である。
【図３】スクランブル処理部の第１の構成を示すブロック図である。
【図４】順序変換テーブルの一例を示す模式図である。
【図５】スクランブルデータの生成手法を説明するための模式図である。
【図６】スクランブル処理部の第２の構成を示すブロック図である。
【図７】演算規則テーブルの一例を示す模式図である。
【図８】スクランブルデータの生成手法を説明するための模式図である。
【図９】スクランブル処理部の第３の構成を示すブロック図である。
【図１０】疑似乱数の一例を示す模式図である。
【図１１】スクランブルデータの生成手法を説明するための模式図である。
【図１２】スクランブル処理部の第４の構成を示すブロック図である。
【図１３】スクランブルデータの生成手法を説明するための模式図である。
【符号の説明】
【００７４】
１  メモリセルアレイ
２  スクランブル処理部
３  デスクランブル処理部
４  ＣＰＵ
１０  疑似乱数生成部
１１  バッファメモリ
１２  第１の処理部
１３  第２の処理部
１４  記憶部
１５，３５  順序変換部
１６  順序変換テーブル
１７，２５，４５  演算部
２６  演算規則テーブル
４６  演算規則生成部
１００  第１の機器
１０１  第２の機器
【図１】
2008165008.tif 000003
【図２】
2008165008.tif 000004
【図３】
2008165008.tif 000005
【図４】
2008165008.tif 000006
【図５】
2008165008.tif 000007
【図６】
2008165008.tif 000008
【図７】
2008165008.tif 000009
【図８】
2008165008.tif 000010
【図９】
2008165008.tif 000011
【図１０】
2008165008.tif 000012
【図１１】
2008165008.tif 000013
【図１２】
2008165008.tif 000014
【図１３】
2008165008.tif 000015