(57)【特許請求の範囲】
【請求項１】
ホストコンピュータと、
前記ホストコンピュータに着脱自在に接続可能な半導体メモリと
を備え、
前記半導体メモリは、
前記ホストコンピュータによって読み出されるデータと、
キー情報の元となる元データと、
所定のルールと
が記憶されたメモリセルアレイを有し、
前記ホストコンピュータは、
前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、
前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから前記データを読み出すために前記ホストコンピュータから前記半導体メモリに送信される異なるコマンド毎に異なる前記キー情報を用いて各前記コマンドを暗号化することにより、暗号化された前記コマンドを生成する処理部と
を有する、信号処理装置。
【請求項２】
前記半導体メモリは、
前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、
前記半導体メモリの前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから前記データを読み出すために前記ホストコンピュータから前記半導体メモリに送信され前記ホストコンピュータで暗号化された各コマンドを、異なる前記コマンド毎に異なる前記キー情報を用いて復号化することにより、復号化された前記コマンドを生成する処理部と
をさらに有する、請求項１に記載の信号処理装置。
【請求項３】
ホストコンピュータと、
前記ホストコンピュータに着脱自在に接続可能な半導体メモリと
を備え、
前記半導体メモリは、
前記ホストコンピュータによって読み出されるデータと、
キー情報の元となる元データと、
所定のルールと
が記憶されたメモリセルアレイを有し、
前記ホストコンピュータは、
前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、
前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから読み出され前記半導体メモリで暗号化された各前記データを、異なる前記データ毎に異なる前記キー情報を用いて復号化することにより、復号化された前記データを生成する処理部と
を有する、信号処理装置。
【請求項４】
前記半導体メモリは、
前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、
前記半導体メモリの前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから読み出された異なる前記データ毎に異なる前記キー情報を用いて各前記データを暗号化することにより、暗号化された前記データを生成する処理部と
をさらに有する、請求項３に記載の信号処理装置。
【請求項５】
前記キー情報生成部は、前記処理部が参照可能なバッファ領域を有しており、
前記キー情報生成部は、生成された前記複数のキー情報がインデックス値を用いてキー情報毎に区分して並べられたキー情報テーブルを作成し、当該キー情報テーブルを前記バッファ領域に格納する、請求項１又は３に記載の信号処理装置。
【請求項６】
前記処理部は、所定のパラメータによって前記インデックス値を指定することにより、当該インデックス値に対応するキー情報を前記バッファ領域から読み出し、
前記キー情報生成部は、前記処理部から入力した前記パラメータを加工することにより他のパラメータに変更する加工部をさらに有する、請求項５に記載の信号処理装置。
【請求項７】
前記処理部は、前記キー情報生成部から入力したキー情報を加工することにより他のキー情報に変更する加工部を有する、請求項１又は３に記載の信号処理装置。
【請求項８】
前記キー情報生成部は、生成可能な前記複数のキー情報のうちの一部のキー情報群を、前記処理部が使用可能なキー情報として設定し、
前記処理部は、前記キー情報群の中から使用する特定のキー情報を指定するために、前記キー情報生成部に対して所定のパラメータを入力し、
前記キー情報生成部は、前記パラメータと、前記複数のキー情報の中における前記キー情報群の設定情報とに基づいて、前記キー情報群の中から前記特定のキー情報を選択して前記処理部に入力する、請求項１又は３に記載の信号処理装置。
【請求項９】
前記キー情報は第１のデータ長を有しており、
前記元データは、前記第１のデータ長よりも長い第２のデータ長を有しており、
前記キー情報生成部は、前記第２のデータ長の中から第１のデータ長分の部分データを抽出することにより、前記キー情報を生成し、
前記キー情報生成部は、前記部分データを抽出する箇所を異ならせることにより、前記複数のキー情報を生成する、請求項１又は３に記載の信号処理装置。
【請求項１０】
前記キー情報生成部は、前記元データのビット配列をシャッフルすることにより、前記複数のキー情報を生成する、請求項１又は３に記載の信号処理装置。
【請求項１１】
前記キー情報生成部は、前記元データのビット配列の少なくとも一部分を、前記元データの特定部分のビット配列で置換することにより、前記複数のキー情報を生成する、請求項１又は３に記載の信号処理装置。
【請求項１２】
前記キー情報生成部は、所定のビット列を用いて、前記元データに対して所定の演算を行うことにより、前記処理部における今回の処理で使用するキー情報を生成する、請求項１又は３に記載の信号処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置に関し、特に、メモリシステムにおける暗号化装置及び復号化装置に関する。
【背景技術】
【０００２】
暗号化及び復号化に用いるキー情報が記述されたデータテーブルを、半導体メモリのメモリセルアレイ内に記憶し、データテーブルのインデックス値の指定によってキー情報を読み出して、そのキー情報を用いて暗号化及び復号化を行う信号処理装置が、下記特許文献１に開示されている。
【０００３】
【特許文献１】特開２００６−１６４２３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
セキュリティ性を向上するためには、コマンド単位又はデータ単位でキー情報の内容を変更することが望ましい。ところで、上記特許文献１に開示された信号処理装置によると、データテーブルがメモリセルアレイ内に記憶されている。また、データテーブル内に複数のキー情報を記述すると、キー情報の数に比例してデータテーブル全体の容量が大きくなる。そのため、データテーブルを記憶するためにメモリセルアレイ内に確保すべき領域が大きくなり、それに伴って、データを記憶しておくための領域の記憶容量が小さくなってしまう。
【０００５】
本発明はかかる事情に鑑みて成されたものであり、リソースの追加を最小限に抑えつつ、暗号化及び復号化のための複数のキー情報を扱うことを可能とすることにより、セキュリティ性の高い信号処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
第１の発明に係る信号処理装置は、ホストコンピュータと、前記ホストコンピュータに着脱自在に接続可能な半導体メモリとを備え、前記半導体メモリは、前記ホストコンピュータによって読み出されるデータと、キー情報の元となる元データと、所定のルールとが記憶されたメモリセルアレイを有し、前記ホストコンピュータは、前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから前記データを読み出すために前記ホストコンピュータから前記半導体メモリに送信される異なるコマンド毎に異なる前記キー情報を用いて各前記コマンドを暗号化することにより、暗号化された前記コマンドを生成する処理部とを有する。
第２の発明に係る信号処理装置は、第１の発明に係る信号処理装置において特に、前記半導体メモリは、前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、前記半導体メモリの前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから前記データを読み出すために前記ホストコンピュータから前記半導体メモリに送信され前記ホストコンピュータで暗号化された各コマンドを、異なる前記コマンド毎に異なる前記キー情報を用いて復号化することにより、復号化された前記コマンドを生成する処理部とをさらに有する。
【０００７】
第３の発明に係る信号処理装置は、ホストコンピュータと、前記ホストコンピュータに着脱自在に接続可能な半導体メモリとを備え、前記半導体メモリは、前記ホストコンピュータによって読み出されるデータと、キー情報の元となる元データと、所定のルールとが記憶されたメモリセルアレイを有し、前記ホストコンピュータは、前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから読み出され前記半導体メモリで暗号化された各前記データを、異なる前記データ毎に異なる前記キー情報を用いて復号化することにより、復号化された前記データを生成する処理部とを有する。
第４の発明に係る信号処理装置は、第３の発明に係る信号処理装置において特に、前記半導体メモリは、前記メモリセルアレイから読み出した前記元データを、前記メモリセルアレイから読み出した前記所定のルールに基づいて様々に加工することにより、複数のキー情報を生成するキー情報生成部と、前記半導体メモリの前記キー情報生成部によって生成された前記複数のキー情報が順に入力され、前記メモリセルアレイから読み出された異なる前記データ毎に異なる前記キー情報を用いて各前記データを暗号化することにより、暗号化された前記データを生成する処理部とをさらに有する。
【０００８】
第５の発明に係る信号処理装置は、第１〜第４のいずれか一つの発明に係る信号処理装置において特に、前記キー情報生成部は、前記処理部が参照可能なバッファ領域を有しており、前記キー情報生成部は、生成された前記複数のキー情報がインデックス値を用いてキー情報毎に区分して並べられたキー情報テーブルを作成し、当該キー情報テーブルを前記バッファ領域に格納することを特徴とする。
【０００９】
第６の発明に係る信号処理装置は、第５の発明に係る信号処理装置において特に、前記処理部は、所定のパラメータによって前記インデックス値を指定することにより、当該インデックス値に対応するキー情報を前記バッファ領域から読み出し、前記キー情報生成部は、前記処理部から入力した前記パラメータを加工することにより他のパラメータに変更する加工部をさらに有することを特徴とする。
【００１０】
第７の発明に係る信号処理装置は、第１〜第４のいずれか一つの発明に係る信号処理装置において特に、前記処理部は、前記キー情報生成部から入力したキー情報を加工することにより他のキー情報に変更する加工部を有することを特徴とする。
【００１１】
第８の発明に係る信号処理装置は、第１〜第４のいずれか一つの発明に係る信号処理装置において特に、前記キー情報生成部は、生成可能な前記複数のキー情報のうちの一部のキー情報群を、前記処理部が使用可能なキー情報として設定し、前記処理部は、前記キー情報群の中から使用する特定のキー情報を指定するために、前記キー情報生成部に対して所定のパラメータを入力し、前記キー情報生成部は、前記パラメータと、前記複数のキー情報の中における前記キー情報群の設定情報とに基づいて、前記キー情報群の中から前記特定のキー情報を選択して前記処理部に入力することを特徴とする。
【００１２】
第９の発明に係る信号処理装置は、第１〜第４のいずれか一つの発明に係る信号処理装置において特に、前記キー情報は第１のデータ長を有しており、前記元データは、前記第１のデータ長よりも長い第２のデータ長を有しており、前記キー情報生成部は、前記第２のデータ長の中から第１のデータ長分の部分データを抽出することにより、前記キー情報を生成し、前記キー情報生成部は、前記部分データを抽出する箇所を異ならせることにより、前記複数のキー情報を生成することを特徴とする。
【００１３】
第１０の発明に係る信号処理装置は、第１〜第４のいずれか一つの発明に係る信号処理装置において特に、前記キー情報生成部は、前記元データのビット配列をシャッフルすることにより、前記複数のキー情報を生成することを特徴とする。
【００１４】
第１１の発明に係る信号処理装置は、第１〜第４のいずれか一つの発明に係る信号処理装置において特に、前記キー情報生成部は、前記元データのビット配列の少なくとも一部分を、前記元データの特定部分のビット配列で置換することにより、前記複数のキー情報を生成することを特徴とする。
【００１５】
第１２の発明に係る信号処理装置は、第１〜第４のいずれか一つの発明に係る信号処理装置において特に、前記キー情報生成部は、所定のビット列を用いて、前記元データに対して所定の演算を行うことにより、前記処理部における今回の処理で使用するキー情報を生成することを特徴とする。
【発明の効果】
【００１６】
第１又は第４の発明に係る信号処理装置によれば、キー情報の元となる元データがメモリセルアレイに記憶されており、キー情報生成部は、メモリセルアレイから読み出した元データを様々に加工することによって、複数のキー情報を生成する。そして、処理部は、異なるキー情報を用いて、各コマンド又は各データを暗号化する。従って、メモリセルアレイには複数のキー情報を記憶する必要がないため、リソースの追加を最小限に抑えつつ、複数のキー情報を扱うことが可能となり、セキュリティ性を高めることができる。
【００１７】
第３又は第２の発明に係る信号処理装置によれば、キー情報の元となる元データがメモリセルアレイに記憶されており、キー情報生成部は、メモリセルアレイから読み出した元データを様々に加工することによって、複数のキー情報を生成する。そして、処理部は、暗号化された各データ又は各コマンドを、異なるキー情報を用いて復号化する。従って、メモリセルアレイには複数のキー情報を記憶する必要がないため、リソースの追加を最小限に抑えつつ、複数のキー情報を扱うことが可能となり、セキュリティ性を高めることができる。
【００１８】
第５の発明に係る信号処理装置によれば、キー情報生成部は、複数のキー情報が記述されたキー情報テーブルを作成し、当該キー情報テーブルをバッファ領域に格納する。従って、キー情報を変更する際には、その時点で新たにキー情報を生成する必要はなく、キー情報テーブルの中から他のキー情報を選択すれば足りる。その結果、処理の高速化を図ることができる。
【００１９】
第６の発明に係る信号処理装置によれば、キー情報生成部が有する加工部は、処理部から入力したパラメータを加工することにより他のパラメータに変更する。従って、処理部から出力されたパラメータが第三者によって解読された場合であっても、そのパラメータは加工部によって他のパラメータに変更されるため、セキュリティ性を向上することができる。
【００２０】
第７の発明に係る信号処理装置によれば、処理部が有する加工部は、キー情報生成部から入力したキー情報を加工することにより他のキー情報に変更する。従って、キー情報生成部から出力されたキー情報が第三者によって解読された場合であっても、そのキー情報は加工部によって他のキー情報に変更されるため、セキュリティ性を向上することができる。
【００２１】
第８の発明に係る信号処理装置によれば、キー情報生成部は、処理部から入力されたパラメータと、複数のキー情報の中におけるキー情報群の設定情報とに基づいて、キー情報群の中から使用する特定のキー情報を選択する。従って、キー情報テーブルを格納するためのバッファ領域をキー情報生成部が具備する必要がないため、信号処理装置全体として装置構成の簡略化を図ることができる。
【００２２】
第９の発明に係る信号処理装置によれば、一の元データから複数のキー情報を簡易かつ確実に生成することができる。
【００２３】
第１０の発明に係る信号処理装置によれば、一の元データから複数のキー情報を簡易かつ確実に生成することができる。
【００２４】
第１１の発明に係る信号処理装置によれば、一の元データから複数のキー情報を簡易かつ確実に生成することができる。
【００２５】
第１２の発明に係る信号処理装置によれば、一の元データから複数のキー情報を簡易かつ確実に生成することができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００２７】
実施の形態１．
図１は、本発明の実施の形態１に係る信号処理装置１の全体構成を示すブロック図である。信号処理装置１は、ホストコンピュータ２と半導体メモリ３とを備えて構成されている。半導体メモリ３は、例えば、ホストコンピュータ２に着脱自在に接続可能なメモリカードである。
【００２８】
図１に示すように、ホストコンピュータ２は、ＣＰＵ４、処理部５，６、送信部１０、及び受信部１１を備えて構成されている。半導体メモリ３は、メモリセルアレイ７、処理部８，９、受信部１２、及び送信部１３を備えて構成されている。
【００２９】
以下、メモリセルアレイ７に記憶されているデータをホストコンピュータ２によって読み出す場合を例にとり、本発明の内容を説明する。但し、本発明は、メモリセルアレイ７からのデータの読み出しのみならず、メモリセルアレイ７へのデータの書き込み等の他の処理にも適用可能である。
【００３０】
図１を参照して、ＣＰＵ４は、データの読み出しに関するコマンドＤ１を出力する。コマンドＤ１は、処理部５に入力される。処理部５は、コマンドＤ１に対して後述の暗号化処理を施して、暗号化されたコマンドＤ２を出力する。コマンドＤ２は、送信部１０と、半導体メモリ３の受信部１２とをこの順に経由して、処理部８に入力される。処理部８は、コマンドＤ２に対して後述の復号化処理を施して、復号化されたコマンドＤ３を出力する。復号化されたコマンドＤ３は、メモリセルアレイ７に入力される。詳細には、復号化されたコマンドＤ３は、図示しないアクセスコントローラに入力され、アクセスコントローラは、コマンドＤ３を解析して、Ｒｅａｄ要求とアドレスとをメモリセルアレイ７に入力する。
【００３１】
メモリセルアレイ７からは、コマンドＤ３に記述されているアドレスに対応するデータＤ４が読み出される。データＤ４は、処理部９に入力される。処理部９は、データＤ４に対して後述の暗号化処理を施して、暗号化されたデータＤ５を出力する。データＤ５は、送信部１３と、ホストコンピュータ２の受信部１１とをこの順に経由して、処理部６に入力される。処理部６は、データＤ５に対して後述の復号化処理を施して、復号化されたデータＤ６を出力する。データＤ６はＣＰＵ４に入力される。
【００３２】
図２は、本実施の形態１に係る信号処理装置１に関して、図１に示した処理部５の構成を示すブロック図である。処理部５は、バッファ領域５１、暗号化キー生成部５２、及び暗号化処理部５３を備えて構成されている。バッファ領域５１には、暗号化キー（暗号化キー情報）の元となる１個の元データ２０と、元データ２０を加工して暗号化キーを生成するための生成ルール２１とが記憶されている。元データ２０及び生成ルール２１は、後述の図３に示すように半導体メモリ３のメモリセルアレイ７内に予め記憶されており、信号処理装置１の電源投入直後に、元データ２０及び生成ルール２１がメモリセルアレイ７から読み出されて、バッファ領域５１にコピーされる。このとき、元データ２０自体及び生成ルール２１自体をコピーするのではなく、元データ２０及び生成ルール２１を作成するために必要となる情報を、メモリセルアレイ７からホストコンピュータ２に送信し、これらの情報に基づいて、ホストコンピュータ２内で元データ２０及び生成ルール２１を作成して、バッファ領域５１内に格納しても良い。あるいは、元データ２０及び生成ルール２１を、ホストコンピュータ２内のＲＯＭ等の不揮発性メモリ（図示しない）内に予め記憶しておき、信号処理装置１の電源投入直後に、その不揮発性メモリからバッファ領域５１に元データ２０及び生成ルール２１を読み出しても良い。この場合は、半導体メモリ３からホストコンピュータ２へ元データ２０及び生成ルール２１を送信する必要がないため、セキュリティ性の向上を図ることができる。
【００３３】
暗号化キー生成部５２は、バッファ領域５１から元データ２０及び生成ルール２１を読み出し、生成ルール２１に基づいて元データ２０を様々に加工することにより、複数の暗号化キー２２を生成する。生成ルール２１として規定されている元データ２０の加工方式については、後述する。
【００３４】
複数の暗号化キー２２は、暗号化処理部５３に順に入力される。また、暗号化処理部５３には、図１に示したＣＰＵ４からコマンドＤ１が入力されている。暗号化処理部５３は、暗号化キー２２を用いてコマンドＤ１を暗号化することにより、暗号化されたコマンドＤ２を出力する。このとき、異なるコマンドＤ１毎に異なる暗号化キー２２が使用される。コマンドＤ１のデータ長が例えば８バイトである場合には、８バイト長のビット列（この場合はコマンド）毎に異なる暗号化キー２２が使用されることになる。
【００３５】
図３は、本実施の形態１に係る信号処理装置１に関して、図１に示した処理部８及びメモリセルアレイ７の構成を示すブロック図である。メモリセルアレイ７には、図示しないデータのほかに、元データ２０及び生成ルール２１が記憶されている。処理部８は、復号化キー生成部８２及び復号化処理部８３を備えて構成されている。
【００３６】
復号化キー生成部８２は、メモリセルアレイ７から元データ２０及び生成ルール２１を読み出し、生成ルール２１に基づいて元データ２０を様々に加工することにより、複数の復号化キー２２（暗号化キー２２に等しい）を生成する。生成ルール２１として規定されている元データ２０の加工方式については、後述する。
【００３７】
複数の復号化キー２２は、復号化処理部８３に順に入力される。また、復号化処理部８３には、図１に示した受信部１２からコマンドＤ２が入力されている。復号化処理部８３は、復号化キー２２を用いてコマンドＤ２を復号化することにより、復号化されたコマンドＤ３を出力する。このとき、異なるコマンドＤ２毎に異なる復号化キー２２が使用される。コマンドＤ２のデータ長が例えば８バイトである場合には、８バイト長のビット列（この場合はコマンド）毎に異なる復号化キー２２が使用されることになる。
【００３８】
図４は、本実施の形態１に係る信号処理装置１に関して、図１に示した処理部９及びメモリセルアレイ７の構成を示すブロック図である。メモリセルアレイ７には、図示しないデータのほかに、暗号化キー（暗号化キー情報）の元となる１個の元データ３０と、元データ３０を加工して暗号化キーを生成するための生成ルール３１とが記憶されている。処理部９は、暗号化キー生成部９２及び暗号化処理部９３を備えて構成されている。なお、元データ３０は元データ２０と兼用しても良く、生成ルール３１は生成ルール２１と兼用しても良い。
【００３９】
暗号化キー生成部９２は、メモリセルアレイ７から元データ３０及び生成ルール３１を読み出し、生成ルール３１に基づいて元データ３０を様々に加工することにより、複数の暗号化キー３２を生成する。生成ルール３１として規定されている元データ３０の加工方式については、後述する。
【００４０】
複数の暗号化キー３２は、暗号化処理部９３に順に入力される。また、暗号化処理部９３には、図１に示したメモリセルアレイ７からデータＤ４が入力されている。暗号化処理部９３は、暗号化キー３２を用いてデータＤ４を暗号化することにより、暗号化されたデータＤ５を出力する。このとき、異なるデータＤ４毎に異なる暗号化キー３２が使用される。データＤ４のデータ長が例えば８バイトである場合には、８バイト長のビット列（この場合はデータ）毎に異なる暗号化キー３２が使用されることになる。
【００４１】
図５は、本実施の形態１に係る信号処理装置１に関して、図１に示した処理部６の構成を示すブロック図である。処理部６は、バッファ領域６１、復号化キー生成部６２、及び復号化処理部６３を備えて構成されている。バッファ領域６１には、元データ３０と生成ルール３１とが記憶されている。上記と同様に、元データ３０及び生成ルール３１は、予めバッファ領域６１に記憶されていても良いし、あるいは、メモリセルアレイ７内に記憶されている元データ３０及び生成ルール３１（図４参照）を、信号処理装置１の電源投入直後にメモリセルアレイ７からバッファ領域６１にコピーしても良い。このとき、元データ３０自体及び生成ルール３１自体をコピーするのではなく、元データ３０及び生成ルール３１を作成するために必要となる情報を、メモリセルアレイ７からホストコンピュータ２に送信し、これらの情報に基づいて、ホストコンピュータ２内で元データ３０及び生成ルール３１を作成して、バッファ領域６１内に格納しても良い。
【００４２】
復号化キー生成部６２は、バッファ領域６１から元データ３０及び生成ルール３１を読み出し、生成ルール３１に基づいて元データ３０を様々に加工することにより、複数の復号化キー３２（暗号化キー３２に等しい）を生成する。生成ルール３１として規定されている元データ３０の加工方式については、後述する。
【００４３】
複数の復号化キー３２は、復号化処理部６３に順に入力される。また、復号化処理部６３には、図１に示した受信部１１からデータＤ５が入力されている。復号化処理部６３は、復号化キー３２を用いてデータＤ５を復号化することにより、復号化されたデータＤ６を出力する。このとき、異なるデータＤ５毎に異なる復号化キー３２が使用される。データＤ５のデータ長が例えば８バイトである場合には、８バイト長のビット列（この場合はデータ）毎に異なる復号化キー３２が使用されることになる。
【００４４】
図６は、図２に示した暗号化キー生成部５２によって暗号化キー２２を生成するための、元データ２０の加工方式の第１の例を説明するための図である。図６に示した例では、暗号化キー２２のデータ長は１６バイトである。また、元データ２０のデータ長は、暗号化キー２２のデータ長よりも長く、図６に示した例では２６バイトである。
【００４５】
暗号化キー生成部５２は、元データ２０の２６バイトのデータ長の中から１６バイト分の部分データを抽出することにより、１６バイト長の暗号化キー２２を生成する。その際、暗号化キー生成部５２は、元データ２０の中から部分データを抽出する箇所を段階的に異ならせることにより、互いに異なる複数の暗号化キー２２Ａ〜２２Ｋを生成する。例えば、暗号化キー２２Ａは、元データ２０の第０バイト（左端）から第１５バイトを抽出したものであり、暗号化キー２２Ｂは、元データ２０の第１バイトから第１６バイトを抽出したものである。
【００４６】
具体的には、暗号化キー生成部５２は、ＣＰＵ４からコマンドＤ１を受信した回数を計数するカウンタ（図示しない）を有している。カウンタの値が例えば「０」である場合は、暗号化キー生成部５２は、元データ２０の先頭アドレスを読み出し開始アドレスに設定する。これにより、元データ２０の先頭アドレスから順に１６バイト分の部分データが読み出され、暗号化キー２２Ａが抽出される。また、カウンタの値が例えば「１」である場合は、暗号化キー生成部５２は、元データ２０の先頭アドレスに１バイトを加算したアドレスを、読み出し開始アドレスに設定する。これにより、元データ２０の先頭アドレスに１バイトを加算したアドレスから順に１６バイト分の部分データが読み出され、暗号化キー２２Ｂが抽出される。
【００４７】
なお、図６に示した例では部分データの抽出箇所を１バイト単位でシフトさせたが、シフトの単位は１バイトに限らず、１ビット、複数ビット、又は複数バイトであっても良い。また、図６には、連続する１６バイト分の部分データを抽出して暗号化キー２２とする例が示されているが、これに限らず、不連続の複数の部分データを抽出し、これらを結合することによって、１６バイト長の暗号化キー２２を生成することも可能である。例えば、元データ２０の最初の１０バイト長の第１部分データと、最後の６バイト長の第２部分データとを抽出し、これら第１部分データ及び第２部分データを繋げることによって、１６バイト長の暗号化キー２２を生成しても良い。
【００４８】
図６に示した例では、暗号化キー２２のデータ長が１６バイトであるため、従来の方法によって１１種類の暗号化キー２２を準備するためには、１６＊１１＝１７６バイト分の記憶容量を、メモリセルアレイ７内に確保する必要がある。これに対して、図６に示した方法によると、メモリセルアレイ７内に確保すべき記憶容量は１６＋１０＝２６バイト分で足りるため、容量を大幅に削減することができる。
【００４９】
図６と同様の方法によって、図３に示した復号化キー生成部８２は複数の復号化キー２２を生成可能であり、図４に示した暗号化キー生成部９２は複数の暗号化キー３２を生成可能であり、図５に示した復号化キー生成部６２は複数の復号化キー３２を生成可能である。
【００５０】
図７，８は、図２に示した暗号化キー生成部５２によって暗号化キー２２を生成するための、元データ２０の加工方式の第２の例を説明するための図である。図７，８に示した例では、元データ２０は、第０バイトＫ０から第７バイトＫ７までの、合計８バイトから成る。同様に、暗号化キー２２のデータ長も８バイトである。
【００５１】
暗号化キー生成部５２は、元データ２０のビット配列を１バイト単位で区分して、区分されたバイトの配列順序を並び替える（つまりシャッフルする）ことにより、暗号化キー２２を生成する。
【００５２】
図７に示した例では、暗号化キー生成部５２は、元データ２０のビット配列を１バイト単位で左側にシフトすることにより、互いに異なる複数の暗号化キー２２Ａ〜２２Ｈを生成する。左側へのシフトによって左端から溢れたバイトは、右端に移動される。例えば、暗号化キー２２Ａの構成は、先頭から順にバイトＫ０→Ｋ１→Ｋ２→Ｋ３→Ｋ４→Ｋ５→Ｋ６→Ｋ７であり、暗号化キー２２Ｂの構成は、先頭から順にバイトＫ１→Ｋ２→Ｋ３→Ｋ４→Ｋ５→Ｋ６→Ｋ７→Ｋ０である。
【００５３】
具体的には、暗号化キー生成部５２は、ＣＰＵ４からコマンドＤ１を受信した回数を計数するカウンタ（図示しない）を有している。カウンタの値が例えば「０」である場合は、元データ２０の先頭アドレス（バイトＫ０）から順に読み出されることにより、暗号化キー２２Ａが生成される。また、カウンタの値が例えば「１」である場合は、暗号化キー生成部５２は、元データ２０の先頭アドレスに１バイトを加算したアドレスを、読み出し開始アドレスに設定する。これにより、元データ２０の先頭アドレスに１バイトを加算したアドレス（バイトＫ１）から順に読み出される。そして、元データ２０の最終アドレスまで読み出しが進んだ時点で、暗号化キー２２のデータ長が８バイト長に満たない場合には、元データ２０の先頭アドレスに戻り、８バイト長となるまで読み出しを継続する。これにより、暗号化キー２２Ｂが生成される。
【００５４】
図８に示した例では、暗号化キー生成部５２は、元データ２０のビット配列を１バイト単位でランダムに並び替えることにより、互いに異なる複数の暗号化キー２２Ａ〜２２Ｄを生成する。
【００５５】
なお、図７，８に示した例では元データ２０のビット配列を１バイト単位で区分してシャッフルしたが、区分の単位は１バイトに限らず、１ビット、複数ビット、又は複数バイトであっても良い。
【００５６】
図７，８に示した例では、暗号化キー２２のデータ長が８バイトであるため、従来の方法によってＮ種類（Ｎは２以上の自然数）の暗号化キー２２を準備するためには、８＊Ｎバイト分の記憶容量を、メモリセルアレイ７内に確保する必要がある。これに対して、図７，８に示した方法によると、メモリセルアレイ７内に確保すべき記憶容量は、元データ２０の８バイト分で足りるため、容量を大幅に削減することができる。
【００５７】
図７，８と同様の方法によって、図３に示した復号化キー生成部８２は複数の復号化キー２２を生成可能であり、図４に示した暗号化キー生成部９２は複数の暗号化キー３２を生成可能であり、図５に示した復号化キー生成部６２は複数の復号化キー３２を生成可能である。
【００５８】
図９は、図２に示した暗号化キー生成部５２によって暗号化キー２２を生成するための、元データ２０の加工方式の第３の例を説明するための図である。図９に示した例では、元データ２０は、第０バイトＫ０から第７バイトＫ７までの、合計８バイトから成る。同様に、暗号化キー２２のデータ長も８バイトである。
【００５９】
暗号化キー生成部５２は、元データ２０のビット配列の一部分又は全部を、元データ２０の特定の部分のビット配列で置換（つまりコピー）することにより、暗号化キー２２を生成する。
【００６０】
暗号化キー２２Ａは、元データ２０の第０バイトＫ０から第７バイトＫ７までの全バイトを、元データ２０のバイトＫ０で置換したものである。具体的には、暗号化キー２２Ａの第０バイトＫ０を生成する時は、読み出しアドレスをそのまま用いて読み出しを行うことにより、元データ２０の第０バイトＫ０を読み出す。また、暗号化キー２２Ａの例えば第１バイトＫ１を生成する時は、読み出しアドレスから１バイト分を減じたアドレスを用いて読み出しを行うことにより、元データ２０の第０バイトＫ０を読み出す。同様に、暗号化キー２２Ａの例えば第２バイトＫ２を生成する時は、読み出しアドレスから２バイト分を減じたアドレスを用いて読み出しを行うことにより、元データ２０の第０バイトＫ０を読み出す。暗号化キー２２Ａの第３バイトＫ３〜第７バイトＫ７についても、上記と同様のアドレス変換を行うことにより、暗号化キー２２Ａの全てのバイトは、元データ２０の第０バイトＫ０となる。
【００６１】
同様に、暗号化キー２２Ｂは、元データ２０の第０バイトＫ０から第７バイトＫ７までの全バイトを、元データ２０の第２バイトＫ２で置換したものである。
【００６２】
暗号化キー２２Ｃは、元データ２０の第０バイトＫ０から第３バイトＫ３までを、元データ２０の第１バイトＫ１で置換し、元データ２０の第４バイトＫ４から第７バイトＫ７までを、元データ２０の第４バイトＫ４で置換したものである。同様に、暗号化キー２２Ｄは、元データ２０の第０バイトＫ０から第３バイトＫ３までを、元データ２０の第３バイトＫ３で置換し、元データ２０の第４バイトＫ４から第７バイトＫ７までを、元データ２０の第６バイトＫ６で置換したものである。
【００６３】
暗号化キー２２Ｅは、元データ２０の第０バイトＫ０及び第１バイトＫ１を、元データ２０の第０バイトＫ０で置換し、元データ２０の第２バイトＫ２及び第３バイトＫ３を、元データ２０の第２バイトＫ２で置換し、元データ２０の第４バイトＫ４及び第５バイトＫ５を、元データ２０の第４バイトＫ４で置換し、元データ２０の第６バイトＫ６及び第７バイトＫ７を、元データ２０の第６バイトＫ６で置換したものである。同様に、暗号化キー２２Ｆは、元データ２０の第０バイトＫ０及び第１バイトＫ１を、元データ２０の第１バイトＫ１で置換し、元データ２０の第２バイトＫ２及び第３バイトＫ３を、元データ２０の第３バイトＫ３で置換し、元データ２０の第４バイトＫ４及び第５バイトＫ５を、元データ２０の第５バイトＫ５で置換し、元データ２０の第６バイトＫ６及び第７バイトＫ７を、元データ２０の第７バイトＫ７で置換したものである。
【００６４】
なお、図９に示した例では元データ２０のビット配列を１バイト単位で区分して置換したが、区分の単位は１バイトに限らず、１ビット、複数ビット、又は複数バイトであっても良い。
【００６５】
図９に示した例では、暗号化キー２２のデータ長が８バイトであるため、従来の方法によってＮ種類の暗号化キー２２を準備するためには、８＊Ｎバイト分の記憶容量を、メモリセルアレイ７内に確保する必要がある。これに対して、図９に示した方法によると、メモリセルアレイ７内に確保すべき記憶容量は元データ２０の８バイト分で足りるため、容量を大幅に削減することができる。
【００６６】
図９と同様の方法によって、図３に示した復号化キー生成部８２は複数の復号化キー２２を生成可能であり、図４に示した暗号化キー生成部９２は複数の暗号化キー３２を生成可能であり、図５に示した復号化キー生成部６２は複数の復号化キー３２を生成可能である。
【００６７】
図１０は、図２に示した暗号化キー生成部５２によって暗号化キー２２を生成するための、元データ２０の加工方式の第４の例を説明するための図である。図１０に示した例では、元データ２０は、第０バイトＫ０から第７バイトＫ７までの、合計８バイトから成る。また、データＤ５も、第０バイトＬ０から第７バイトＬ７までの、合計８バイトから成る。同様に、暗号化キー２２のデータ長も８バイトである。データＤ５は、過去の処理（例えば前回の読み出し処理）によって半導体メモリ３からホストコンピュータ２に送られたデータである（図１参照）。
【００６８】
暗号化キー生成部５２は、図１に示した処理部９によって過去に処理されたデータＤ５を用いて、元データ２０に対して所定の演算を行うことにより、処理部９における今回の処理で使用する暗号化キー２２を生成する。
【００６９】
図１０を参照して、暗号化キー２２Ａは、元データ２０の各バイトＫ０〜Ｋ７とデータＤ５の各バイトＬ０〜Ｌ７とで排他的論理和演算をそれぞれ行い、各バイト毎の演算結果を順に並べてバイトＭ０〜Ｍ７としたものである。
【００７０】
暗号化キー２２Ｂは、元データ２０の第０バイトＫ０とデータＤ５の第０バイトＬ０とで排他的論理和演算を行い、その演算結果を第０バイトＭ０とし、残りの第１バイト〜第７バイトには、元データ２０の第１バイトＫ１〜第７バイトＫ７を使用したものである。
【００７１】
暗号化キー２２Ｃは、元データ２０の第１バイトＫ１とデータＤ５の第１バイトＬ１とで排他的論理和演算を行い、その演算結果を第１バイトＭ１とし、残りの第０バイト及び第２バイト〜第７バイトには、元データ２０の第０バイトＫ０及び第２バイトＫ２〜第７バイトＫ７を使用したものである。
【００７２】
暗号化キー２２Ｄは、元データ２０の各バイトＫ０〜Ｋ７とデータＤ５の各バイトＬ０〜Ｌ７とで論理和演算をそれぞれ行い、各バイト毎の演算結果を順に並べてバイトＮ０〜Ｎ７としたものである。
【００７３】
暗号化キー２２Ｅは、元データ２０の第０バイトＫ０とデータＤ５の第０バイトＬ０とで論理和演算を行い、その演算結果を第０バイトＮ０とし、残りの第１バイト〜第７バイトには、元データ２０の第１バイトＫ１〜第７バイトＫ７を使用したものである。
【００７４】
なお、図１０に示した例では元データ２０のビット配列を１バイト単位で区分して演算を行ったが、区分の単位は１バイトに限らず、１ビット、複数ビット、又は複数バイトであっても良い。また、前回処理したデータＤ５を用いて演算を行ったが、前回処理したコマンドＤ２を用いて演算を行っても良い。さらに、過去に処理されたデータＤ５又は過去に処理されたコマンドＤ２を用いる代わりに、今回の処理において疑似乱数生成回路によって疑似乱数を生成し、その生成された疑似乱数のビット列を用いて、元データ２０との演算を行っても良い。
【００７５】
図１０に示した例では、暗号化キー２２のデータ長が８バイトであるため、従来の方法によってＮ種類の暗号化キー２２を準備するためには、８＊Ｎバイト分の記憶容量を、メモリセルアレイ７内に確保する必要がある。これに対して、図１０に示した方法によると、メモリセルアレイ７内に確保すべき記憶容量は元データ２０の８バイト分で足りるため、容量を大幅に削減することができる。
【００７６】
図１０と同様の方法によって、図３に示した復号化キー生成部８２は複数の復号化キー２２を生成可能であり、図４に示した暗号化キー生成部９２は複数の暗号化キー３２を生成可能であり、図５に示した復号化キー生成部６２は複数の復号化キー３２を生成可能である。
【００７７】
本実施の形態１に係る信号処理装置１によれば、暗号化キー２２，３２の元となる元データ２０，３０がメモリセルアレイ７に記憶されており、暗号化キー生成部５２，９２は、メモリセルアレイ７から読み出した元データ２０，３０を様々に加工することによって、複数の暗号化キー２２，３２をそれぞれ生成する。そして、暗号化処理部５３，９３は、コマンドＤ１毎及びデータＤ４毎に異なる暗号化キー２２，３２を用いて、各コマンドＤ１及び各データＤ４を暗号化する。従って、メモリセルアレイ７には複数の暗号化キー２２及び複数の暗号化キー３２を記憶する必要がないため、リソースの追加を最小限に抑えつつ、複数の暗号化キー２２及び複数の暗号化キー３２を扱うことが可能となり、セキュリティ性を高めることができる。
【００７８】
同様に、本実施の形態１に係る信号処理装置１によれば、復号化キー２２，３２の元となる元データ２０，３０がメモリセルアレイ７に記憶されており、復号化キー生成部６２，８２は、メモリセルアレイ７から読み出した元データ２０，３０を様々に加工することによって、複数の復号化キー２２，３２を生成する。そして、復号化処理部６３，８３は、暗号化されたコマンドＤ２及びデータＤ５を、コマンドＤ２毎及びデータＤ５毎に異なる復号化キー２２，３２を用いて復号化する。従って、メモリセルアレイ７には複数の復号化キー２２及び複数の復号化キー３２を記憶する必要がないため、リソースの追加を最小限に抑えつつ、複数の復号化キー２２及び複数の復号化キー３２を扱うことが可能となり、セキュリティ性を高めることができる。
【００７９】
実施の形態２．
図１１は、本発明の実施の形態２に係る信号処理装置１に関して、図１に示した処理部５の構成を示すブロック図である。処理部５は、図２に示した上記実施の形態１と同様のバッファ領域５１、暗号化キー生成部５２、及び暗号化処理部５３に加えて、暗号化処理部５３が参照可能なバッファ領域５４を備えて構成されている。
【００８０】
信号処理装置１の電源投入直後、暗号化キー生成部５２は、バッファ領域５１から元データ２０及び生成ルール２１を読み出し、生成ルール２１に基づいて元データ２０を様々に加工することにより、複数の暗号化キー２２を生成する。暗号化キー２２の生成手法については、上記実施の形態１で説明した通りである。その後、暗号化キー生成部５２は、生成した複数の暗号化キー２２に基づいて、後述のキー情報テーブル２３を作成し、そのキー情報テーブル２３をバッファ領域５４内に格納する。
【００８１】
図１２は、本発明の実施の形態２に係る信号処理装置１に関して、図１に示した処理部８及びメモリセルアレイ７の構成を示すブロック図である。図１２に示したメモリセルアレイ７は、図３に示した上記実施の形態１に係るメモリセルアレイ７と同様である。また、処理部８は、図３に示した上記実施の形態１と同様の復号化キー生成部８２及び復号化処理部８３に加えて、復号化処理部８３が参照可能なバッファ領域８４を備えて構成されている。
【００８２】
信号処理装置１の電源投入直後、復号化キー生成部８２は、メモリセルアレイ７から元データ２０及び生成ルール２１を読み出し、生成ルール２１に基づいて元データ２０を様々に加工することにより、複数の復号化キー２２を生成する。復号化キー２２の生成手法については、上記実施の形態１で説明した通りである。その後、復号化キー生成部８２は、生成した複数の復号化キー２２に基づいて、後述のキー情報テーブル２３を作成し、そのキー情報テーブル２３をバッファ領域８４内に格納する。
【００８３】
図１３は、キー情報テーブル２３を示す図である。キー情報テーブル２３には、複数のキー情報Ａ０〜Ａｎが記述されている。キー情報Ａ０〜Ａｎは、暗号化キー生成部５２が作成したキー情報テーブル２３にあっては暗号化キーであり、復号化キー生成部８２が作成したキー情報テーブル２３にあっては復号化キーである。キー情報Ａ０〜Ａｎは、インデックス値によって各キー情報毎に区分して並べられている。
【００８４】
図１１を参照して、暗号化処理部５３は、パラメータ２４によって、キー情報テーブル２３のインデックス値を指定する。キー情報テーブル２３からは、指定されたインデックス値に対応する暗号化キー２２が読み出され、暗号化処理部５３に入力される。コマンドＤ１毎に異なるパラメータ２４を用いることにより、コマンドＤ１毎に異なる暗号化キー２２を用いて暗号化処理を行うことができる。
【００８５】
図１２を参照して、復号化処理部８３は、パラメータ２４によって、キー情報テーブル２３のインデックス値を指定する。キー情報テーブル２３からは、指定されたインデックス値に対応する復号化キー２２が読み出され、復号化処理部８３に入力される。コマンドＤ２毎に異なるパラメータ２４を用いることにより、コマンドＤ２毎に異なる復号化キー２２を用いて復号化処理を行うことができる。
【００８６】
図１４は、本発明の実施の形態２に係る信号処理装置１に関して、図１に示した処理部９及びメモリセルアレイ７の構成を示すブロック図である。図１４に示したメモリセルアレイ７は、図４に示した上記実施の形態１に係るメモリセルアレイ７と同様である。また、処理部９は、図４に示した上記実施の形態１と同様の暗号化キー生成部９２及び暗号化処理部９３に加えて、暗号化処理部９３が参照可能なバッファ領域９４を備えて構成されている。
【００８７】
信号処理装置１の電源投入直後、暗号化キー生成部９２は、メモリセルアレイ７から元データ３０及び生成ルール３１を読み出し、生成ルール３１に基づいて元データ３０を様々に加工することにより、複数の暗号化キー３２を生成する。暗号化キー３２の生成手法については、上記実施の形態１で説明した通りである。その後、暗号化キー生成部９２は、生成した複数の暗号化キー３２に基づいて、後述のキー情報テーブル３３を作成し、そのキー情報テーブル３３をバッファ領域９４内に格納する。
【００８８】
図１５は、本発明の実施の形態２に係る信号処理装置１に関して、図１に示した処理部６の構成を示すブロック図である。処理部６は、図５に示した上記実施の形態１と同様のバッファ領域６１、復号化キー生成部６２、及び復号化処理部６３に加えて、復号化処理部６３が参照可能なバッファ領域６４を備えて構成されている。
【００８９】
信号処理装置１の電源投入直後、復号化キー生成部６２は、バッファ領域６１から元データ３０及び生成ルール３１を読み出し、生成ルール３１に基づいて元データ３０を様々に加工することにより、複数の復号化キー３２を生成する。復号化キー３２の生成手法については、上記実施の形態１で説明した通りである。その後、復号化キー生成部６２は、生成した複数の復号化キー３２に基づいて、後述のキー情報テーブル３３を作成し、そのキー情報テーブル３３をバッファ領域６４内に格納する。
【００９０】
図１６は、キー情報テーブル３３を示す図である。キー情報テーブル３３には、複数のキー情報Ｂ０〜Ｂｎが記述されている。キー情報Ｂ０〜Ｂｎは、暗号化キー生成部９２が作成したキー情報テーブル３３にあっては暗号化キーであり、復号化キー生成部６２が作成したキー情報テーブル３３にあっては復号化キーである。キー情報Ｂ０〜Ｂｎは、インデックス値によって各キー情報毎に区分して並べられている。
【００９１】
図１４を参照して、暗号化処理部９３は、パラメータ３４によって、キー情報テーブル３３のインデックス値を指定する。キー情報テーブル３３からは、指定されたインデックス値に対応する暗号化キー３２が読み出され、暗号化処理部９３に入力される。データＤ４毎に異なるパラメータ３４を用いることにより、データＤ４毎に異なる暗号化キー３２を用いて暗号化処理を行うことができる。
【００９２】
図１５を参照して、復号化処理部６３は、パラメータ３４によって、キー情報テーブル３３のインデックス値を指定する。キー情報テーブル３３からは、指定されたインデックス値に対応する復号化キー３２が読み出され、復号化処理部６３に入力される。データＤ５毎に異なるパラメータ３４を用いることにより、データＤ５毎に異なる復号化キー３２を用いて復号化処理を行うことができる。
【００９３】
本実施の形態２に係る信号処理装置１によれば、上記実施の形態１と同様の効果に加えて、以下の効果を得ることができる。つまり、暗号化キー生成部５２及び復号化キー生成部８２は、複数のキー情報Ａ０〜Ａｎが記述されたキー情報テーブル２３を作成し、当該キー情報テーブル２３をバッファ領域５４，８４に格納する。従って、処理すべきコマンドＤ１，Ｄ２が更新されて、暗号化キー２２及び復号化キー２２を変更する際には、その時点で新たに暗号化キー２２及び復号化キー２２を生成する必要はなく、キー情報テーブル２３の中から他の暗号化キー２２及び復号化キー２２を選択すれば足りる。その結果、処理の高速化を図ることができる。
【００９４】
同様に、暗号化キー生成部９２及び復号化キー生成部６２は、複数のキー情報Ｂ０〜Ｂｎが記述されたキー情報テーブル３３を作成し、当該キー情報テーブル３３をバッファ領域６４，９４に格納する。従って、処理すべきデータＤ４，Ｄ５が更新されて、暗号化キー３２及び復号化キー３２を変更する際には、その時点で新たに暗号化キー３２及び復号化キー３２を生成する必要はなく、キー情報テーブル３３の中から他の暗号化キー３２及び復号化キー３２を選択すれば足りる。その結果、処理の高速化を図ることができる。
【００９５】
図１７は、図１１に示した処理部５の変形例を示すブロック図である。図１７には、処理部５の一部の構成のみが示されている。図１１に示した例では、暗号化処理部５３から出力されたパラメータ２４がそのままキー情報テーブル２３に入力された。これに対し、図１７に示した変形例では、暗号化処理部５３から出力されたパラメータ２４は、加工部４１に入力され、加工部４１によって他のパラメータ２４ａに変更される。そして、加工部４１から出力されたパラメータ２４ａがキー情報テーブル２３に入力され、パラメータ２４ａによって指定されたインデックス値に対応する暗号化キー２２ａがキー情報テーブル２３から読み出されて、暗号化処理部５３に入力される。
【００９６】
図１８は、図１２に示した処理部８の変形例を示すブロック図である。図１８には、処理部８の一部の構成のみが示されている。図１２に示した例では、復号化処理部８３から出力されたパラメータ２４がそのままキー情報テーブル２３に入力された。これに対し、図１８に示した変形例では、復号化処理部８３から出力されたパラメータ２４は、加工部４２に入力され、加工部４２によって他のパラメータ２４ａに変更される。そして、加工部４２から出力されたパラメータ２４ａがキー情報テーブル２３に入力され、パラメータ２４ａによって指定されたインデックス値に対応する復号化キー２２ａがキー情報テーブル２３から読み出されて、復号化処理部８３に入力される。
【００９７】
図１９は、図１４に示した処理部９の変形例を示すブロック図である。図１９には、処理部９の一部の構成のみが示されている。図１４に示した例では、暗号化処理部９３から出力されたパラメータ３４がそのままキー情報テーブル３３に入力された。これに対し、図１９に示した変形例では、暗号化処理部９３から出力されたパラメータ３４は、加工部４３に入力され、加工部４３によって他のパラメータ３４ａに変更される。そして、加工部４３から出力されたパラメータ３４ａがキー情報テーブル３３に入力され、パラメータ３４ａによって指定されたインデックス値に対応する暗号化キー３２ａがキー情報テーブル３３から読み出されて、暗号化処理部９３に入力される。
【００９８】
図２０は、図１５に示した処理部６の変形例を示すブロック図である。図２０には、処理部６の一部の構成のみが示されている。図１５に示した例では、復号化処理部６３から出力されたパラメータ３４がそのままキー情報テーブル３３に入力された。これに対し、図２０に示した変形例では、復号化処理部６３から出力されたパラメータ３４は、加工部４４に入力され、加工部４４によって他のパラメータ３４ａに変更される。そして、加工部４４から出力されたパラメータ３４ａがキー情報テーブル３３に入力され、パラメータ３４ａによって指定されたインデックス値に対応する復号化キー３２ａがキー情報テーブル３３から読み出されて、復号化処理部６３に入力される。
【００９９】
加工部４１〜４４によるパラメータ２４，３４の加工の手法としては、例えば、図６〜１０に示したような、シフト、シャッフル、コピー、又は演算等、任意の手法を使用することができる。
【０１００】
本実施の形態２の変形例に係る信号処理装置１によれば、加工部４１は、暗号化処理部５３から入力したパラメータ２４を加工することにより、他のパラメータ２４ａに変更する。従って、暗号化処理部５３から出力されたパラメータ２４が漏洩し、第三者によって解読された場合であっても、そのパラメータ２４は加工部４１によって他のパラメータ２４ａに変更されるため、セキュリティ性を高めることができる。他の加工部４２〜４４についても、同様の効果を得ることができる。
【０１０１】
なお、以上の説明では、元データ２０及び生成ルール２１に基づいて暗号化キー生成部５２及び復号化キー生成部８２によってキー情報テーブル２３が作成され、元データ３０及び生成ルール３１に基づいて暗号化キー生成部９２及び復号化キー生成部６２によってキー情報テーブル３３が作成され、加工部４１〜４４は、このようにして作成されたキー情報テーブル２３，３３を前提として、パラメータの変更処理を行う例について述べた。本実施の形態２の変形例に係る信号処理装置１は、この例に限らず、以下のような変形例にも適用可能である。
【０１０２】
図２１は、メモリセルアレイ７の変形例を示す図である。図２１に示したメモリセルアレイ７には、図１に示したデータＤ４に相当するデータ１９が記憶されている。また、図２１に示したメモリセルアレイ７には、元データ２０，３０及び生成ルール２１，３１の代わりに、キー情報テーブル１８が記憶されている。つまり、図２１に示した変形例では、元データ２０，３０及び生成ルール２１，３１に基づいてキー情報テーブル２３，３３が作成されるのではなく、複数のキー情報が記述されたキー情報テーブル１８が予め作成されて、メモリセルアレイ７に記憶されている。
【０１０３】
加工部４１〜４４は、図２１に示したような、予めメモリセルアレイ７に記憶されているキー情報テーブル１８を対象としても、上記と同様にパラメータの変更処理を行うことが可能であり、同様の効果を得ることができる。
【０１０４】
実施の形態３．
本実施の形態３では、上記実施の形態１，２の変形例について説明する。
【０１０５】
図２２は、図２，１１に示した処理部５の変形例を示すブロック図である。図２２には、処理部５の一部の構成のみが示されている。図２に示した例では、暗号化キー生成部５２から出力された暗号化キー２２が、そのまま暗号化処理部５３に入力された。同様に、図１１に示した例では、バッファ領域５４から出力された暗号化キー２２が、そのまま暗号化処理部５３に入力された。これに対し、図２２に示した変形例では、暗号化キー生成部５２（又はバッファ領域５４）から出力された暗号化キー２２は、加工部７１に入力され、加工部７１によって他の暗号化キー２２ｂに変更される。そして、加工部７１から出力された暗号化キー２２ｂが暗号化処理部５３に入力され、暗号化処理部５３は、入力された暗号化キー２２ｂを用いてコマンドＤ１を暗号化する。
【０１０６】
図２３は、図３，１２に示した処理部８の変形例を示すブロック図である。図２３には、処理部８の一部の構成のみが示されている。図３に示した例では、復号化キー生成部８２から出力された復号化キー２２が、そのまま復号化処理部８３に入力された。同様に、図１２に示した例では、バッファ領域８４から出力された復号化キー２２が、そのまま復号化処理部８３に入力された。これに対し、図２３に示した変形例では、復号化キー生成部８２（又はバッファ領域８４）から出力された復号化キー２２は、加工部７２に入力され、加工部７２によって他の復号化キー２２ｂに変更される。そして、加工部７２から出力された復号化キー２２ｂが復号化処理部８３に入力され、復号化処理部８３は、入力された復号化キー２２ｂを用いてコマンドＤ２を復号化する。
【０１０７】
図２４は、図４，１４に示した処理部９の変形例を示すブロック図である。図２４には、処理部９の一部の構成のみが示されている。図４に示した例では、暗号化キー生成部９２から出力された暗号化キー３２が、そのまま暗号化処理部９３に入力された。同様に、図１４に示した例では、バッファ領域９４から出力された暗号化キー３２が、そのまま暗号化処理部９３に入力された。これに対し、図２４に示した変形例では、暗号化キー生成部９２（又はバッファ領域９４）から出力された暗号化キー３２は、加工部７３に入力され、加工部７３によって他の暗号化キー３２ｂに変更される。そして、加工部７３から出力された暗号化キー３２ｂが暗号化処理部９３に入力され、暗号化処理部９３は、入力された暗号化キー３２ｂを用いてデータＤ４を暗号化する。
【０１０８】
図２５は、図５，１５に示した処理部６の変形例を示すブロック図である。図２５には、処理部６の一部の構成のみが示されている。図５に示した例では、復号化キー生成部６２から出力された復号化キー３２が、そのまま復号化処理部６３に入力された。同様に、図１５に示した例では、バッファ領域６４から出力された復号化キー３２が、そのまま復号化処理部６３に入力された。これに対し、図２５に示した変形例では、復号化キー生成部６２（又はバッファ領域６４）から出力された復号化キー３２は、加工部７４に入力され、加工部７４によって他の復号化キー３２ｂに変更される。そして、加工部７４から出力された復号化キー３２ｂが復号化処理部６３に入力され、復号化処理部６３は、入力された復号化キー３２ｂを用いてデータＤ５を復号化する。
【０１０９】
加工部７１〜７４による暗号化キー２２，３２及び復号化キー２２，３２の加工の手法としては、例えば、図６〜１０に示したような、シフト、シャッフル、コピー、又は演算等、任意の手法を使用することができる。
【０１１０】
本実施の形態３に係る信号処理装置１によれば、加工部７１は、暗号化キー生成部５２から入力した暗号化キー２２を加工することにより、他の暗号化キー２２ｂに変更する。従って、暗号化キー生成部５２から出力された暗号化キー２２が漏洩し、第三者によって解読された場合であっても、その暗号化キー２２は加工部７１によって他の暗号化キー２２ｂに変更されるため、セキュリティ性を向上することができる。他の加工部７２〜７４についても、同様の効果を得ることができる。
【０１１１】
実施の形態４．
本実施の形態４では、上記実施の形態２の変形例について説明する。
【０１１２】
図２６は、本発明の実施の形態４に係る信号処理装置１に関して、図１に示した処理部５の構成を示すブロック図である。図１１に示した構成からバッファ領域５４が省略されている。その他の構成は、図１１と同様である。
【０１１３】
図２７は、図６に対応させて、暗号化キー生成部５２によって生成される複数の暗号化キー２２を示す図である。図２７に示した例では、暗号化キー生成部５２は、合計１１個の暗号化キー２２Ａ〜２２Ｋを生成可能である。本実施の形態４では、暗号化キー生成部５２は、生成可能な暗号化キー２２Ａ〜２２Ｋのうちの一部の暗号化キーを、暗号化処理部５３が使用可能な暗号化キーとして設定する。図２７に示した例では、合計６個の暗号化キー２２Ｄ〜２２Ｉが、使用可能な暗号化キーとして設定されている。
【０１１４】
また、暗号化キー生成部５２は、暗号化キー２２Ａ〜２２Ｋの中における暗号化キー２２Ｄ〜２２Ｉの位置情報を保持する。図２７に示した例では、暗号化キー２２Ａの先頭アドレスと暗号化キー２２Ｄの先頭アドレスとの差に相当するバイト数である「３」が、位置情報として保持される。
【０１１５】
図２８は、仮想的なキー情報テーブル７６を示す図である。キー情報テーブル７６には、使用可能な暗号化キーとして設定された複数の暗号化キー２２Ｄ〜２２Ｉが、インデックス値によって区分されて記述されている。キー情報テーブル７６のインデックス値は、暗号化キー２２Ｄの先頭アドレスと暗号化キー２２Ｄ〜２２Ｉの各先頭アドレスとの差のバイト数に相当する。例えば、暗号化キー２２Ｆと暗号化キー２２Ｄとでは先頭アドレスの差が２バイトであるため、インデックス値も「２」となっている。
【０１１６】
図２６を参照して、暗号化処理部５３は、今回の処理で使用する暗号化キーを暗号化キー２２Ｄ〜２２Ｉの中から指定するために、暗号化キー生成部５２に対してパラメータ２４を入力する。パラメータ２４は、キー情報テーブル７６のインデックス値を指定するものである。
【０１１７】
ここで、本実施の形態４に係る暗号化キー生成部５２は、図１１に示したようなバッファ領域５４を有していないため、図２８に示したキー情報テーブル７６を暗号化キー生成部５２によって保持させることができない。そこで、本実施の形態４では以下のように処理する。
【０１１８】
一例として、暗号化処理部５３が暗号化キー２２Ｆを指定するために、インデックス値「２」を表すパラメータ２４を、暗号化キー生成部５２に入力したと仮定する。暗号化キー生成部５２は、パラメータ２４で与えられた「２」と、上記の位置情報である「３」とを加算することにより、「５」なる値を得る。そして、暗号化キー生成部５２は、元データ２０の先頭アドレスに５バイトを加算したアドレスを、読み出し開始アドレスに設定し、その読み出し開始アドレスから順に１６バイト分の部分データを読み出すことにより、元データ２０内から暗号化キー２２Ｆを抽出する。このようにして生成された暗号化キー２２Ｆは、暗号化キー生成部５２から暗号化処理部５３に入力される。
【０１１９】
なお、以上の説明では、図６に示したシフトの手法をベースとして暗号化キー生成部５２が複数の暗号化キー２２を生成する例について述べたが、図７〜１０に示したような、シャッフル、コピー、又は演算等、任意の手法を用いることができる。
【０１２０】
本実施の形態４に係る信号処理装置１によれば、暗号化キー生成部５２は、暗号化処理部５３から入力されたパラメータ２４と、暗号化キー２２Ａ〜２２Ｋの中における暗号化キー２２Ｄ〜２２Ｉの位置情報とに基づいて、暗号化キー２２Ｄ〜２２Ｉの中から使用する一の暗号化キー２２Ｆを選択して生成する。従って、上記実施の形態２に係る信号処理装置１と比較すると、キー情報テーブル２３を格納するためのバッファ領域５４を暗号化キー生成部５２が具備する必要がないため、信号処理装置１の全体として装置構成の簡略化を図ることができる。
【０１２１】
図２９，３０，３１は、本発明の実施の形態４に係る信号処理装置１に関して、図１に示した処理部８，９，６の構成をそれぞれ示すブロック図である。図２９の構成は、図１２の構成からバッファ領域８４を省略したものであり、その他の構成は図１２と同様である。図３０の構成は、図１４の構成からバッファ領域９４を省略したものであり、その他の構成は図１４と同様である。図３１の構成は、図１５の構成からバッファ領域６４を省略したものであり、その他の構成は図１５と同様である。
【０１２２】
上記した暗号化キー生成部５２と同様の方法によって、図２９に示した復号化キー生成部８２は復号化キー２２を生成可能であり、図３０に示した暗号化キー生成部９２は暗号化キー３２を生成可能であり、図３１に示した復号化キー生成部６２は復号化キー３２を生成可能であり、それぞれ上記と同様の効果を得ることができる。
【図面の簡単な説明】
【０１２３】
【図１】本発明の実施の形態１に係る信号処理装置の全体構成を示すブロック図である。
【図２】本発明の実施の形態１に係る信号処理装置に関して、図１に示した処理部の構成を示すブロック図である。
【図３】本発明の実施の形態１に係る信号処理装置に関して、図１に示した処理部及びメモリセルアレイの構成を示すブロック図である。
【図４】本発明の実施の形態１に係る信号処理装置に関して、図１に示した処理部及びメモリセルアレイの構成を示すブロック図である。
【図５】本発明の実施の形態１に係る信号処理装置に関して、図１に示した処理部の構成を示すブロック図である。
【図６】本発明の実施の形態１に係る信号処理装置に関して、元データの加工方式の第１の例を説明するための図である。
【図７】本発明の実施の形態１に係る信号処理装置に関して、元データの加工方式の第２の例を説明するための図である。
【図８】本発明の実施の形態１に係る信号処理装置に関して、元データの加工方式の第２の例を説明するための図である。
【図９】本発明の実施の形態１に係る信号処理装置に関して、元データの加工方式の第３の例を説明するための図である。
【図１０】本発明の実施の形態１に係る信号処理装置に関して、元データの加工方式の第４の例を説明するための図である。
【図１１】本発明の実施の形態２に係る信号処理装置に関して、図１に示した処理部の構成を示すブロック図である。
【図１２】本発明の実施の形態２に係る信号処理装置に関して、図１に示した処理部及びメモリセルアレイの構成を示すブロック図である。
【図１３】本発明の実施の形態２に係る信号処理装置に関して、キー情報テーブルを示す図である。
【図１４】本発明の実施の形態２に係る信号処理装置に関して、図１に示した処理部及びメモリセルアレイの構成を示すブロック図である。
【図１５】本発明の実施の形態２に係る信号処理装置に関して、図１に示した処理部の構成を示すブロック図である。
【図１６】本発明の実施の形態２に係る信号処理装置に関して、キー情報テーブルを示す図である。
【図１７】本発明の実施の形態２に係る信号処理装置に関して、図１１に示した処理部の変形例を示すブロック図である。
【図１８】本発明の実施の形態２に係る信号処理装置に関して、図１２に示した処理部の変形例を示すブロック図である。
【図１９】本発明の実施の形態２に係る信号処理装置に関して、図１４に示した処理部の変形例を示すブロック図である。
【図２０】本発明の実施の形態２に係る信号処理装置に関して、図１５に示した処理部の変形例を示すブロック図である。
【図２１】本発明の実施の形態２に係る信号処理装置に関して、メモリセルアレイの変形例を示すブロック図である。
【図２２】本発明の実施の形態３に係る信号処理装置に関して、図２，１１に示した処理部の変形例を示すブロック図である。
【図２３】本発明の実施の形態３に係る信号処理装置に関して、図３，１２に示した処理部の変形例を示すブロック図である。
【図２４】本発明の実施の形態３に係る信号処理装置に関して、図４，１４に示した処理部の変形例を示すブロック図である。
【図２５】本発明の実施の形態３に係る信号処理装置に関して、図５，１５に示した処理部の変形例を示すブロック図である。
【図２６】本発明の実施の形態４に係る信号処理装置に関して、図１に示した処理部の構成を示すブロック図である。
【図２７】図６に対応させて、暗号化キー生成部によって生成される複数の暗号化キーを示す図である。
【図２８】仮想的なキー情報テーブルを示す図である。
【図２９】本発明の実施の形態４に係る信号処理装置１に関して、図１に示した処理部の構成を示すブロック図である。
【図３０】本発明の実施の形態４に係る信号処理装置１に関して、図１に示した処理部の構成を示すブロック図である。
【図３１】本発明の実施の形態４に係る信号処理装置１に関して、図１に示した処理部の構成を示すブロック図である。
【符号の説明】
【０１２４】
１  信号処理装置
２  ホストコンピュータ
３  半導体メモリ
４  ＣＰＵ
５，６，８，９  処理部
７  メモリセルアレイ
２０，３０  元データ
２１，３１  生成ルール
２２，２２ｂ，３２，３２ｂ  暗号化キー，復号化キー
１８，２３，３３  キー情報テーブル
２４，２４ａ，３４，３４ａ  パラメータ
４１〜４４，７１〜７４  加工部
５１，５４，６４，８４，９４  バッファ領域
５２，９２  暗号化キー生成部
５３，９３  暗号化処理部
６２，８２  復号化キー生成部
６３，８３  復号化処理部
【図１】
0005435845.tif 000002
【図２】
0005435845.tif 000003
【図３】
0005435845.tif 000004
【図４】
0005435845.tif 000005
【図５】
0005435845.tif 000006
【図６】
0005435845.tif 000007
【図７】
0005435845.tif 000008
【図８】
0005435845.tif 000009
【図９】
0005435845.tif 000010
【図１０】
0005435845.tif 000011
【図１１】
0005435845.tif 000012
【図１２】
0005435845.tif 000013
【図１３】
0005435845.tif 000014
【図１４】
0005435845.tif 000015
【図１５】
0005435845.tif 000016
【図１６】
0005435845.tif 000017
【図１７】
0005435845.tif 000018
【図１８】
0005435845.tif 000019
【図１９】
0005435845.tif 000020
【図２０】
0005435845.tif 000021
【図２１】
0005435845.tif 000022
【図２２】
0005435845.tif 000023
【図２３】
0005435845.tif 000024
【図２４】
0005435845.tif 000025
【図２５】
0005435845.tif 000026
【図２６】
0005435845.tif 000027
【図２７】
0005435845.tif 000028
【図２８】
0005435845.tif 000029
【図２９】
0005435845.tif 000030
【図３０】
0005435845.tif 000031
【図３１】
0005435845.tif 000032