(57)【要約】【課題】暗号処理装置での暗号処理の内容が特定されにくくなる技術を提供する。【解決手段】暗号処理装置１は、暗号処理部群２０と使用態様制御部５とを備えている。暗号処理部群２０は、それぞれが暗号機能を有する複数の暗号処理部２で構成されている。使用態様制御部５は、暗号処理装置１での複数の暗号処理部２の使用態様を制御する。使用態様制御部５は、複数の暗号処理部２の使用態様を変化させる。【選択図】図１
2014220729.tif 000002
【特許請求の範囲】
【請求項１】
暗号処理装置であって、
それぞれが暗号機能を有する複数の暗号処理部から成る暗号処理部群と、
前記暗号処理装置での前記複数の暗号処理部の使用態様を制御する制御部と
を備え、
前記制御部は、前記複数の暗号処理部の使用態様を変化させる、暗号処理装置。
【請求項２】
請求項１に記載の暗号処理装置であって、
前記暗号処理部群は、使用する暗号アルゴリズムが互いに異なる少なくとも２つの暗号処理部を含む、暗号処理装置。
【請求項３】
請求項１及び請求項２のいずれか一つに記載の暗号処理装置であって、
前記暗号処理部群は、使用する暗号アルゴリズムが互いに同じである少なくとも２つの暗号処理部を含む、暗号処理装置。
【請求項４】
請求項１乃至請求項３のいずれか一つに記載の暗号処理装置であって、
前記暗号処理部群は、使用する鍵が互いに異なる少なくとも２つの暗号処理部を含む、暗号処理装置。
【請求項５】
請求項１乃至請求項４のいずれか一つに記載の暗号処理装置であって、
前記暗号処理部群は、使用する鍵が互いに同じである少なくとも２つの暗号処理部を含む、暗号処理装置。
【請求項６】
請求項１乃至請求項５のいずれか一つに記載の暗号処理装置であって、
前記制御部は、前記複数の暗号処理部の使用態様を複数種類の使用態様から決定し、
前記複数種類の使用態様は、前記複数の暗号処理部の少なくとも２つを組み合わせて使用する態様を含む、暗号処理装置。
【請求項７】
請求項６に記載の暗号処理装置であって、
前記複数種類の使用態様は、前記複数の暗号処理部のうちの一つだけを使用する態様を含む、暗号処理装置。
【請求項８】
請求項６及び請求項７のいずれか一つに記載の暗号処理装置であって、
前記暗号処理部群は、第１及び第２暗号処理部を含み、
前記複数種類の使用態様は、
前記第１暗号処理部から出力されるデータがセッション鍵として前記第２暗号処理部に入力される第１態様と、
前記第２暗号処理部から出力されるデータがセッション鍵として前記第１暗号処理部に入力される第２態様と
を含む、暗号処理装置。
【請求項９】
請求項６及び請求項７のいずれか一つに記載の暗号処理装置であって、
前記暗号処理部群は、第１及び第２暗号処理部を含み、
前記複数種類の使用態様は、前記第１暗号処理部から出力されるデータと、前記第２暗号処理部から出力されるデータとの両方が、データを暗号化するためのデータとして使用される態様を含む、暗号処理装置。
【請求項１０】
請求項１乃至請求項９のいずれか一つに記載の暗号処理装置と、
記憶部と
を備え、
前記記憶部から読み出されたデータが前記暗号処理装置で暗号化される、半導体メモリ。
【請求項１１】
請求項１０に記載の半導体メモリと、
前記半導体メモリを制御するホスト装置と
を備える、メモリシステム。
【請求項１２】
請求項１１に記載のメモリシステムであって、
前記暗号処理装置の前記制御部は、前記メモリシステムの電源がオンされると、前記複数の暗号処理部の使用態様を変化させる、メモリシステム。
【請求項１３】
請求項１１及び請求項１２のいずれか一つに記載のメモリシステムであって、
前記制御部は、定期的に、前記複数の暗号処理部の使用態様を変化させる、メモリシステム。
【請求項１４】
請求項１１乃至請求項１３のいずれか一つに記載のメモリシステムであって、
前記記憶部は、前記複数の暗号処理部の使用態様を制御するための制御データを予め記憶し、
前記制御部は、前記記憶部が記憶する前記制御データに基づいて前記複数の暗号処理部の使用態様を制御する、メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号処理技術に関する。
【背景技術】
【０００２】
従来から暗号処理に関して様々な技術が提案されている。例えば特許文献１には、半導体メモリにおいて暗号処理を行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−２１９８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
暗号処理装置では、それが行う暗号処理の内容が容易に特定されないことが望まれる。
【０００５】
そこで、本発明は上述の点に鑑みて成されたものであり、暗号処理装置での暗号処理の内容が特定されにくくなる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明に係る暗号処理装置の一態様は、それぞれが暗号機能を有する複数の暗号処理部から成る暗号処理部群と、前記暗号処理装置での前記複数の暗号処理部の使用態様を制御する制御部とを備え、前記制御部は、前記複数の暗号処理部の使用態様を変化させる。
【０００７】
また、本発明に係る暗号処理装置の一態様では、前記暗号処理部群は、使用する暗号アルゴリズムが互いに異なる少なくとも２つの暗号処理部を含む。
【０００８】
また、本発明に係る暗号処理装置の一態様では、前記暗号処理部群は、使用する暗号アルゴリズムが互いに同じである少なくとも２つの暗号処理部を含む。
【０００９】
また、本発明に係る暗号処理装置の一態様では、前記暗号処理部群は、使用する鍵が互いに異なる少なくとも２つの暗号処理部を含む。
【００１０】
また、本発明に係る暗号処理装置の一態様では、前記暗号処理部群は、使用する鍵が互いに同じである少なくとも２つの暗号処理部を含む。
【００１１】
また、本発明に係る暗号処理装置の一態様では、前記制御部は、前記複数の暗号処理部の使用態様を複数種類の使用態様から決定し、前記複数種類の使用態様は、前記複数の暗号処理部の少なくとも２つを組み合わせて使用する態様を含む。
【００１２】
また、本発明に係る暗号処理装置の一態様では、前記複数種類の使用態様は、前記複数の暗号処理部のうちの一つだけを使用する態様を含む。
【００１３】
また、本発明に係る暗号処理装置の一態様では、前記暗号処理部群は、第１及び第２暗号処理部を含み、前記複数種類の使用態様は、前記第１暗号処理部から出力されるデータがセッション鍵として前記第２暗号処理部に入力される第１態様と、前記第２暗号処理部から出力されるデータがセッション鍵として前記第１暗号処理部に入力される第２態様とを含む。
【００１４】
また、本発明に係る暗号処理装置の一態様では、前記暗号処理部群は、第１及び第２暗号処理部を含み、前記複数種類の使用態様は、前記第１暗号処理部から出力されるデータと、前記第２暗号処理部から出力されるデータとの両方が、データを暗号化するためのデータとして使用される態様を含む。
【００１５】
また、本発明に係る半導体メモリの一態様は、上記の暗号処理装置と、記憶部とを備え、前記記憶部から読み出されたデータが前記暗号処理装置で暗号化される。
【００１６】
また、本発明に係るメモリシステムの一態様は、上記の半導体メモリと、前記半導体メモリを制御するホスト装置とを備える。
【００１７】
また、本発明に係るメモリシステムの一態様では、前記暗号処理装置の前記制御部は、前記メモリシステムの電源がオンされると、前記複数の暗号処理部の使用態様を変化させる。
【００１８】
また、本発明に係るメモリシステムの一態様では、前記制御部は、定期的に、前記複数の暗号処理部の使用態様を変化させる。
【００１９】
また、本発明に係るメモリシステムの一態様では、前記記憶部は、前記複数の暗号処理部の使用態様を制御するための制御データを予め記憶し、前記制御部は、前記記憶部が記憶する前記制御データに基づいて前記複数の暗号処理部の使用態様を制御する。
【発明の効果】
【００２０】
本発明によれば、暗号処理装置での暗号処理の内容が特定されにくくなる。
【図面の簡単な説明】
【００２１】
【図１】暗号処理装置の構成を示す図である。
【図２】複数の暗号処理部の第１の使用態様を示す図である。
【図３】複数の暗号処理部の第２の使用態様を示す図である。
【図４】複数の暗号処理部の第３の使用態様を示す図である。
【図５】複数の暗号処理部の第４の使用態様を示す図である。
【図６】複数の暗号処理部の第５の使用態様を示す図である。
【図７】複数の暗号処理部の第５の使用態様を示す図である。
【図８】メモリシステムの構成を示す図である。
【図９】メモリシステムの動作を示すフローチャートである。
【発明を実施するための形態】
【００２２】
図１は実施の形態に係る暗号処理装置１の構成を示す図である。本実施の形態に係る暗号処理装置１は、例えば、共通鍵暗号方式の一種であるストリーム暗号方式を使用して、データを暗号化及び復号化する。なお、暗号処理装置１は、共通鍵暗号方式の一種であるブロック暗号方式を使用してデータを暗号化及び復号化しても良い。また暗号処理装置１は、公開鍵暗号方式を使用してデータを暗号化及び復号化しても良い。本実施の形態では、データと言えば、説明の便宜上、少なくとも１ビットで構成されたデジタルデータを意味するものとする。また、説明の便宜上、データの値は十進数表記での値であるとする。
【００２３】
図１に示されるように、暗号処理装置１は、複数の暗号処理部２から成る暗号処理部群２０を備えている。各暗号処理部２は暗号機能を有している。各暗号処理部２には固定のマスタ鍵９が入力される。複数の暗号処理部２では、使用される暗号アルゴリズムは互いに同じであっても良いし、互いに異なっても良い。暗号処理部２で使用される暗号アルゴリズムとしては、例えば、ＤＥＳ（Data Encryption Standard）あるいはＡＥＳ（Advanced Encryption Standard）などが考えられる。また、複数の暗号処理部２では、使用されるマスタ鍵９は互いに同じであっても良いし、互いに異なっても良い。
【００２４】
本実施の形態では、暗号処理装置１は、例えば２つの暗号処理部２を備えている。以後、当該２つの暗号処理部２の一方及び他方を、それぞれ「第１暗号処理部２ａ」及び「第２暗号処理部２ｂ」と呼ぶことがある。また、第１暗号処理部２ａに入力されるマスタ鍵９及び第２暗号処理部２ｂに入力されるマスタ鍵９を、それぞれ「第１マスタ鍵９ａ」及び「第２マスタ鍵９ｂ」と呼ぶことがある。
【００２５】
暗号処理装置１には、暗号処理部群２０以外にも、第１演算回路３と、第２演算回路４と、使用態様制御部５とが設けられている。第１演算回路３及び第２演算回路４のそれぞれは、入力される２つのデータの排他的論理和（ＸＯＲ）を演算して出力する。
【００２６】
使用態様制御部５は、暗号処理装置１の外部から入力される制御信号１０に基づいて、複数の暗号処理部２の使用態様を制御する。つまり、複数の暗号処理部２の使用態様は、制御信号１０に基づいて決定される。本実施の形態では、制御信号１０は、第１制御データ１１、第２制御データ１２及び第３制御データ１３で構成されている。使用態様制御部５は、複数種類の使用態様から、複数の暗号処理部２の使用態様を決定する。本実施の形態では、例えば第１〜第５の使用態様が定められている。第１〜第５の使用態様には、複数の暗号処理部２のうちの一つだけを使用する態様や、複数の暗号処理部２のうちの２つを組み合わせて使用する態様が含まれる。これらの使用態様については後で詳細に説明する。
【００２７】
使用態様制御部５は、第１選択回路６と、第２選択回路７と、第３選択回路８とを備えている。第１選択回路６は、第１制御データ１１に基づいて、入力される２つのデータの一方を選択して第１暗号処理部２ａに出力する。第１選択回路６には、第２暗号処理部２ｂから出力されるデータと、全ビットが零であるデータ（以後、「零データ」と呼ぶ）とが入力される。第１選択回路６は、１ビットで構成された第１制御データ１１が“１”を示す場合には、第２暗号処理部２ｂから出力されるデータを選択して出力する。一方で、第１選択回路６は、第１制御データ１１が“０”を示す場合には、零データを選択して出力する。第１暗号処理部２ａは、第１選択回路６から零データが入力される場合には、当該零データの入力を無視する。
【００２８】
第２選択回路７は、第２制御データ１２に基づいて、入力される２つのデータの一方を選択して第２暗号処理部２ｂに出力する。第２選択回路７には、第１暗号処理部２ａから出力されるデータと零データとが入力される。第２選択回路７は、１ビットで構成された第２制御データ１２が“１”を示す場合には、第１暗号処理部２ａから出力されるデータを選択して出力する。一方で、第２選択回路７は、第２制御データ１２が“０”を示す場合には、零データを選択して出力する。第２暗号処理部２ｂは、第２選択回路７から零データが入力される場合には、当該零データの入力を無視する。
【００２９】
第３選択回路８は、第３制御データ１３に基づいて、入力される３つのデータのうちの一つを選択して第２演算回路４に出力する。第３選択回路８には、第１暗号処理部２ａから出力されるデータと、第２暗号処理部２ｂから出力されるデータと、第１演算回路３から出力されるデータとが入力される。第３選択回路８は、２ビットで構成された第３制御データ１３が“０”を示す場合には、第１暗号処理部２ａから出力されるデータを選択して出力する。また、第３選択回路８は、第３制御データ１３が“１”を示す場合には、第１演算回路３から出力されるデータを選択して出力する。そして、第３選択回路８は、第３制御データ１３が“２”を示す場合には、第２暗号処理部２ｂから出力されるデータを選択して出力する。
【００３０】
第１演算回路３は、第１暗号処理部２ａ及び第２暗号処理部２ｂから出力されるデータの排他的論理和を演算して第３選択回路８に出力する。第２演算回路４は、第３選択回路８から出力されるデータと、暗号化を行う対象のデータ（暗号化対象データ）との排他的論理和を演算して出力する。これにより、暗号化対象データが暗号化される。また、第２演算回路４は、第３選択回路８から出力されるデータと、暗号化されたデータ（暗号データ）との排他的論理和を演算して出力する。これにより、暗号データが復号化される。このように、第２演算回路４は、第３選択回路８から出力されるデータをキーストリーム（データを暗号化するためのデータ）として使用して、入力されるデータを暗号化あるいは復号化する。
【００３１】
＜複数の暗号処理部の使用態様について＞
次に複数の暗号処理部２に関する複数種類の使用態様の一例について説明する。以後、第１制御データ１１の値をａ、第２制御データ１２の値をｂ、第３制御データ１３の値をｃとすると、第１制御データ１１、第２制御データ１２及び第３制御データ１３の値を（ａ，ｂ，ｃ）で表す。
【００３２】
＜第１の使用態様について＞
第１制御データ１１、第２制御データ１２及び第３制御データ１３の値が（０，１，２）である場合には、複数の暗号処理部２の使用態様は第１の使用態様となる。図２は複数の暗号処理部２の使用態様が第１の使用態様である場合の暗号処理装置１の等価ブロック図を示す図である。
【００３３】
複数の暗号処理部２の使用態様が第１の使用態様である場合には、図２に示されるように、第１暗号処理部２ａの出力データが第２暗号処理部２ｂに入力される。そして、第２暗号処理部２ｂの出力データが第２演算回路４に入力される。複数の暗号処理部２の使用態様が第１の使用態様である場合の暗号処理装置１の構成を「第１の構成」と呼ぶことがある。
【００３４】
図２に示されるような第１の構成を有する暗号処理装置１では、第１暗号処理部２ａが第１マスタ鍵９ａに基づいて自身の初期化（自身の暗号アルゴリズムの初期化）を行う。そして、初期化後の第１暗号処理部２ａは、自身の暗号機能を使用してセッション鍵ＳＫを生成して出力する。言い換えれば、初期化後の第１暗号処理部２ａは、暗号処理を行ってセッション鍵ＳＫを生成して出力する。第２暗号処理部２ｂは、第１暗号処理部２ａからのセッション鍵ＳＫと第２マスタ鍵９ｂとで構成される入力鍵に基づいて自身の初期化（自身の暗号アルゴリズムの初期化）を行う。初期化後の第２暗号処理部２ｂは、自身の暗号機能を使用してキーストリームＫＳを生成して出力する。言い換えれば、初期化後の第２暗号処理部２ｂは、暗号処理を行ってキーストリームＫＳを生成して出力する。第２演算回路４は、第２暗号処理部２ｂから出力されるキーストリームＫＳと、暗号化対象データとの排他的論路和を演算して出力する。これにより、第２演算回路４では、入力された暗号化対象データが暗号化されて出力される。また、第２演算回路４は、第２暗号処理部２ｂから出力されるキーストリームＫＳと、暗号データとの排他的論路和を演算して出力する。これにより、第２演算回路４では、入力された暗号データが復号化されて出力される。
【００３５】
＜第２の使用態様について＞
第１制御データ１１、第２制御データ１２及び第３制御データ１３の値が（１，０，０）である場合には、複数の暗号処理部２の使用態様は第２の使用態様となる。図３は複数の暗号処理部２の使用態様が第２の使用態様である場合の暗号処理装置１の等価ブロック図を示す図である。
【００３６】
複数の暗号処理部２の使用態様が第２の使用態様である場合には、図３に示されるように、第２暗号処理部２ｂの出力データが第１暗号処理部２ａに入力される。そして、第１暗号処理部２ａの出力データが第２演算回路４に入力される。複数の暗号処理部２の使用態様が第２の使用態様である場合の暗号処理装置１の構成を「第２の構成」と呼ぶことがある。
【００３７】
図３に示されるような第２の構成を有する暗号処理装置１では、第２暗号処理部２ｂが第２マスタ鍵９ｂに基づいて自身の初期化を行う。そして、初期化後の第２暗号処理部２ｂは、自身の暗号機能を使用してセッション鍵ＳＫを生成して出力する。第１暗号処理部２ａは、第２暗号処理部２ｂからのセッション鍵ＳＫと第１マスタ鍵９ａとで構成される入力鍵に基づいて自身の初期化を行う。初期化後の第１暗号処理部２ａは、自身の暗号機能を使用してキーストリームＫＳを生成して出力する。第２演算回路４は、第１暗号処理部２ａから出力されるキーストリームＫＳと、暗号化対象データとの排他的論路和を演算して出力する。これにより、第２演算回路４では、入力された暗号化対象データが暗号化されて出力される。また、第２演算回路４は、第１暗号処理部２ａから出力されるキーストリームＫＳと、暗号データとの排他的論路和を演算して出力する。これにより、第２演算回路４では、入力された暗号データが復号化されて出力される。
【００３８】
なお、第１暗号処理部２ａ及び第２暗号処理部２ｂにおいて、使用される暗号アルゴリズムが互いに同じであって、かつ使用されるマスタ鍵９が互いに同じである場合には、第１の構成の暗号処理装置１と、第２の構成の暗号処理装置１とは、互いに同じ動作を行うことになる。
【００３９】
＜第３の使用態様について＞
第１制御データ１１、第２制御データ１２及び第３制御データ１３の値が（０，０，２）あるいは（１，０，２）である場合には、複数の暗号処理部２の使用態様は第３の使用態様となる。図４は複数の暗号処理部２の使用態様が第３の使用態様である場合の暗号処理装置１の等価ブロック図を示す図である。
【００４０】
複数の暗号処理部２の使用態様が第３の使用態様である場合には、図４に示されるように、第２暗号処理部２ｂの出力データが第２演算回路４に入力される。このとき、第１暗号処理部２ａは使用されない。つまり、複数の暗号処理部２の使用態様が第３の使用態様である場合には、複数の暗号処理部２のうち第２暗号処理部２ｂだけが使用される。複数の暗号処理部２の使用態様が第３の使用態様である場合の暗号処理装置１の構成を「第３の構成」と呼ぶことがある。
【００４１】
図４に示されるような第３の構成を有する暗号処理装置１では、第２暗号処理部２ｂが第２マスタ鍵９ｂに基づいて自身の初期化を行う。そして、初期化後の第２暗号処理部２ｂは、自身の暗号機能を使用してキーストリームＫＳを生成して出力する。第２演算回路４は、第２暗号処理部２ｂから出力されるキーストリームＫＳと、暗号化対象データとの排他的論路和を演算して出力する。また、第２演算回路４は、第２暗号処理部２ｂから出力されるキーストリームＫＳと、暗号データとの排他的論路和を演算して出力する。
【００４２】
＜第４の使用態様について＞
第１制御データ１１、第２制御データ１２及び第３制御データ１３の値が（０，０，０）あるいは（０，１，０）である場合には、複数の暗号処理部２の使用態様は第４の使用態様となる。図５は複数の暗号処理部２の使用態様が第４の使用態様である場合の暗号処理装置１の等価ブロック図を示す図である。
【００４３】
複数の暗号処理部２の使用態様が第４の使用態様である場合には、図５に示されるように、第１暗号処理部２ａの出力データが第２演算回路４に入力される。このとき、第２暗号処理部２ｂは使用されない。つまり、複数の暗号処理部２の使用態様が第４の使用態様である場合には、複数の暗号処理部２のうち第１暗号処理部２ａだけが使用される。複数の暗号処理部２の使用態様が第４の使用態様である場合の暗号処理装置１の構成を「第４の構成」と呼ぶことがある。
【００４４】
図５に示されるような第４の構成を有する暗号処理装置１では、第１暗号処理部２ａが第１マスタ鍵９ａに基づいて自身の初期化を行う。そして、初期化後の第１暗号処理部２ａは、自身の暗号機能を使用してキーストリームＫＳを生成して出力する。第２演算回路４は、第１暗号処理部２ａから出力されるキーストリームＫＳと、暗号化対象データとの排他的論路和を演算して出力する。また、第２演算回路４は、第１暗号処理部２ａから出力されるキーストリームＫＳと、暗号データとの排他的論路和を演算して出力する。
【００４５】
なお、第１暗号処理部２ａ及び第２暗号処理部２ｂにおいて、使用される暗号アルゴリズムが互いに同じであって、かつ使用されるマスタ鍵９が互いに同じである場合には、第３の構成の暗号処理装置１と、第４の構成の暗号処理装置１とは、互いに同じ動作を行うことになる。
【００４６】
＜第５の使用態様について＞
第１制御データ１１、第２制御データ１２及び第３制御データ１３の値が（０，０，１）である場合には、複数の暗号処理部２の使用態様は第５の使用態様となる。図６は複数の暗号処理部２の使用態様が第５の使用態様である場合の暗号処理装置１の等価ブロック図を示す図である。
【００４７】
複数の暗号処理部２の使用態様が第５の使用態様である場合には、図６に示されるように、第１暗号処理部２ａの出力データ及び第２暗号処理部２ｂの出力データが第１演算回路３に入力される。そして、第１演算回路３の出力データが第２演算回路４に入力される。複数の暗号処理部２の使用態様が第５の使用態様である場合の暗号処理装置１の構成を「第５の構成」と呼ぶことがある。
【００４８】
図６に示されるような第５の構成を有する暗号処理装置１では、第１暗号処理部２ａが第１マスタ鍵９ａに基づいて自身の初期化を行う。そして、初期化後の第１暗号処理部２ａは、自身の暗号機能を使用して第１キーストリームＫＳ１を生成して出力する。また、第２暗号処理部２ｂが第２マスタ鍵９ｂに基づいて自身の初期化を行う。そして、初期化後の第２暗号処理部２ｂは、自身の暗号機能を使用して第２キーストリームＫＳ２を生成して出力する。第１演算回路３は、第１暗号処理部２ａからの第１キーストリームＫＳ１と、第２暗号処理部２ｂからの第２キーストリームＫＳ２との排他的論理和を演算し、その演算結果を第３キーストリームＫＳ３として出力する。第２演算回路４は、第１演算回路３から出力される第３キーストリームＫＳ３と、暗号対象データとの排他的論路和を演算して出力する。また、第２演算回路４は、第３キーストリームＫＳ３と、暗号データとの排他的論路和を演算して出力する。
【００４９】
ここで、第１キーストリームＫＳ１と第２キーストリームＫＳ２との排他的論理和の演算結果と暗号対象データ（あるいは暗号データ）との排他的論路和を演算する場合と、第１キーストリームＫＳ１と、第２キーストリームＫＳ２と、暗号対象データ（あるいは暗号データ）との３つのデータの排他的論理和を演算する場合とでは、得られる演算結果は互いに同じである。したがって、第１演算回路３と第２演算回路４を一つの演算回路３４にまとめると、図６に示される構成は、図７に示される、当該演算回路３４を使用した構成と等価である。図７に示される構成では、演算回路３４は、第１キーストリームＫＳ１と、第２キーストリームＫＳ２と、暗号対象データとの排他的論路和を演算することによって、当該暗号対象データを暗号化する。また、演算回路３４は、第１キーストリームＫＳ１と、第２キーストリームＫＳ２と、暗号データとの排他的論路和を演算することによって、当該暗号データを復号化する。
【００５０】
本実施の形態では、使用態様制御部５は、制御信号１０（第１制御データ１１、第２制御データ１２及び第３制御データ１３）に応じて、暗号処理装置１での複数の暗号処理部２の使用態様を、第１〜第５の使用態様の間で変化させる。例えば、使用態様制御部５は、第１制御データ１１、第２制御データ１２及び第３制御データの値が（０，１，２）から（１，０，０）に変化した場合には、暗号処理装置１での複数の暗号処理部２の使用態様を、第１の使用態様から第２の使用態様に変化させる。また、使用態様制御部５は、第１制御データ１１、第２制御データ１２及び第３制御データの値が（０，１，２）から（０，０，１）に変化した場合には、暗号処理装置１での複数の暗号処理部２の使用態様を、第１の使用態様から第５の使用態様に変化させる。また、使用態様制御部５は、第１制御データ１１、第２制御データ１２及び第３制御データの値が（１，０，０）から（０，０，２）あるいは（１，０，２）に変化した場合には、暗号処理装置１での複数の暗号処理部２の使用態様を、第２の使用態様から第３の使用態様に変化させる。制御信号１０が動的に変化すると、使用態様制御部５は、複数の暗号処理部２の使用態様を動的に変化させる。
【００５１】
このように、本実施の形態に係る使用態様制御部５は、暗号処理装置１での複数の暗号処理部２の使用態様を変化させるため、暗号処理装置１での暗号処理の内容が特定されにくくなる。言い換えれば、本実施の形態では、暗号処理装置１の構成が変化するため、暗号処理装置１での暗号処理の内容が特定されにくくなる。よって、本実施の形態に係る暗号処理装置１を使用して、半導体メモリ等の装置についてのセキュリティを実現することによって、その装置でのセキュリティ強度を向上させることができる。
【００５２】
＜暗号処理装置を使用したセキュリティの実現例＞
次に本実施の形態に係る暗号処理装置１を使用したセキュリティの実現例について説明する。ここでは、一例として、半導体メモリのセキュリティを暗号処理装置１を使用して実現する場合について説明する。
【００５３】
図８は暗号処理装置１が使用されてセキュリティが実現された半導体メモリ２００を有するメモリシステム１００の構成を示す図である。メモリシステム１００は、暗号処理装置１を有する半導体メモリ２００と、当該半導体メモリ２００を制御するホスト装置３００とを備えている。メモリシステム１００は、例えば、ゲーム装置に実装されるコンピュータシステムである。当該ゲーム装置は、ゲーム装置本体と、それに着脱可能なゲームカートリッジとを備えている。半導体メモリ２００はゲームカートリッジに内蔵され、ホスト装置３００はゲーム装置本体に内蔵される。ホスト装置３００は、一種のコンピュータである。ユーザは、ゲーム装置本体に装着するゲームカードリッジを交換することによって、様々な種類のゲームを楽しむことができる。
【００５４】
半導体メモリ２００は、例えばマスクＲＯＭ（Read Only Memory）である。半導体メモリ２００は、暗号処理装置１以外にも、ホストＩＦ（インターフェース）２１０と、コマンドデコーダ２２０と、メモリＩＦ（インターフェース）２３０と、記憶部であるメモリアレイ２４０と、制御レジスタ２５０とを備えている。
【００５５】
暗号処理装置１は、ホスト装置３００からのコマンドをホストＩＦ２１０を通じて受け取る。ホスト装置３００には、暗号処理装置１と同様の暗号処理装置が設けられている。ホスト装置３００は、自身の暗号処理装置を使用して、コマンドを暗号化し、暗号化後のコマンドを半導体メモリ２００に出力する。暗号処理装置１は、ホスト装置３００からの暗号化後のコマンドを上述のように第２演算回路４で復号化し、復号化後のコマンドをコマンドデコーダ２２０に出力する。以後、ホスト装置３００が有する暗号処理装置を「ホスト側暗号処理装置」と呼ぶことがある。
【００５６】
コマンドデコーダ２２０は、入力されたコマンドをデコードして、当該コマンドを解析する。コマンドデコーダ２２０は、入力されたコマンドを解析した結果、当該コマンドがメモリアレイ２４０からデータを読み出すことを指示する読み出しコマンドである場合には、アドレス信号及びリード信号等の制御信号をメモリＩＦ２３０を通じてメモリアレイ２４０に出力する。これにより、メモリアレイ２４０からデータが出力される。メモリアレイ２４０から出力されたデータは暗号処理装置１に入力される。メモリアレイ２４０には、例えば、複数のゲームプログラムや、各ゲームプログラムで使用される各種データなどが記憶されている。またコマンドデコーダ２２０は、入力されたコマンドに含まれる制御データを抽出し、抽出した制御データを制御レジスタ２５０に書き込む。
【００５７】
制御レジスタ２５０は、第１レジスタ２５１、第２レジスタ２５２、第３レジスタ２５３及び初期化レジスタ２５４を備えている。第１レジスタ２５１は、暗号処理装置１の第１選択回路６を制御するための第１制御データ１１を記憶する。第２レジスタ２５２は、暗号処理装置１の第２選択回路７を制御するための第２制御データ１２を記憶する。第３レジスタ２５３は、暗号処理装置１の第３選択回路８を制御するための第３制御データ１３を記憶する。初期化レジスタ２５４は、暗号処理装置１の初期化を指示する制御データである初期化フラグ１４を記憶する。第１制御データ１１、第２制御データ１２、第３制御データ１３及び初期化フラグ１４は、ホスト装置３００から出力される。
【００５８】
暗号処理装置１は、メモリアレイ２４０から出力されるデータを、上述のように第２演算回路４で暗号化する。暗号処理装置１で暗号化されたデータは、ホストＩＦ２１０を通じてホスト装置３００に入力される。ホスト装置３００は、ホスト側暗号処理装置を使用して、半導体メモリ２００からの暗号データを復号化する。ホスト装置３００は、半導体メモリ２００からメモリアレイ２４０内のゲームプログラムが入力されると、当該ゲームプログラムを実行する。
【００５９】
本実施の形態に係るメモリシステム１００では、ホスト装置３００が、半導体メモリ２００の暗号処理装置１での複数の暗号処理部２の使用態様を決定し、決定した使用態様に応じた制御信号１０（第１制御データ１１、第２制御データ１２及び第３制御データ１３）を半導体メモリ２００に出力する。暗号処理装置１では、使用態様制御部５が、ホスト装置３００からの制御信号１０に基づいて、複数の暗号処理部２の使用態様を設定する。ここで、暗号処理装置１での複数の暗号処理部２の使用態様によって、暗号処理装置１での暗号処理の内容が決定されることから、当該使用態様によって、半導体メモリ２００でのセキュリティ構成が決定されると言える。つまり、本実施の形態に係る半導体メモリ２００は、暗号処理装置１での複数の暗号処理部２の使用態様を変化させることによって、セキュリティ構成を変化させている。以後、複数の暗号処理部２の使用態様を決定するための制御信号１０、つまり半導体メモリ２００でのセキュリティ構成を決定するための制御信号１０を「セキュリティ構成フラグ１０」と呼ぶことがある。
【００６０】
次に、暗号処理装置１での複数の暗号処理部２の使用態様が変化する場合のメモリシステム１００の動作について説明する。図９は当該動作を示すフローチャートである。以下の説明では、例えば、暗号処理装置１での複数の暗号処理部２の使用態様が、第１の使用態様から第２の使用態様に変化する場合のメモリシステム１００の動作について説明する。
【００６１】
図９に示されるように、ステップｓ１において、ホスト装置３００はセキュリティ再構成コマンドを発行する。このとき、ホスト装置３００は、ホスト側暗号処理装置でセキュリティ再構成コマンドを暗号化した上で出力する。ホスト装置３００から出力されたセキュリティ再構成コマンドは、ホストＩＦ２１０を通じて暗号処理装置１に入力される。
【００６２】
セキュリティ再構成コマンドは、半導体メモリ２００でのセキュリティ構成を変化させるためのコマンド、つまり複数の暗号処理部２の使用態様を変化させるためのコマンドである。セキュリティ再構成コマンドには、セキュリティ構成フラグ１０と初期化フラグ１４が含まれている。本例では、複数の暗号処理部２の使用態様が、第１の使用態様から第２の使用態様に変化することから、セキュリティ再構成コマンドには、第２の使用態様に対応するセキュリティ構成フラグ１０が含まれている。つまり、セキュリティ再構成フラグに含まれるセキュリティ構成フラグ１０を構成する第１制御データ１１、第２制御データ１２及び第３制御データ１３の値は、第２に使用態様に対応する（１，０，０）となる。
【００６３】
次にステップｓ２において、暗号処理装置１は、入力された、暗号化されているセキュリティ再構成コマンドを復号化する。ここでは、暗号処理装置１での複数の暗号処理部２の使用態様は第１の使用態様（図２参照）であることから、暗号処理装置１では、第２演算回路４が、第２暗号処理部２ｂから出力されるキーストリームＫＳとセキュリティ再構成コマンドとの排他的論路和を演算することによって、当該セキュリティ再構成コマンドが復号化される。復号化されたセキュリティ再構成コマンドはコマンドデコーダ２２０に入力される。
【００６４】
次にステップｓ３において、コマンドデコーダ２２０は、入力されたセキュリティ再構成コマンドをデコードして、当該セキュリティ再構成コマンドからセキュリティ構成フラグ１０及び初期化フラグ１４を抽出する。そしてステップｓ４において、コマンドデコーダ２２０は、抽出したセキュリティ構成フラグ１０を制御レジスタ２５０に転送する。制御レジスタ２５０は、転送されてきたセキュリティ構成フラグ１０を構成する第１制御データ１１、第２制御データ１２及び第３制御データ１３を、第１レジスタ２５１、第２レジスタ２５２及び第３レジスタ２５３にそれぞれ記憶する。第１レジスタ２５１、第２レジスタ２５２及び第３レジスタ２５３に記憶された第１制御データ１１、第２制御データ１２及び第３制御データ１３は暗号処理装置１に入力される。
【００６５】
次にステップｓ５において、暗号処理装置１では、使用態様制御部５が、制御レジスタ２５０から出力されたセキュリティ構成フラグ１０（制御信号１０）に応じて、複数の暗号処理部２の使用態様を変化させる。ここでは、第１制御データ１１、第２制御データ１２及び第３制御データ１３の値は（１，０，０）となっていることから、使用態様制御部５は、複数の暗号処理部２の使用態様を第２の使用態様に変化させる。これにより、暗号処理装置１の構成が、図２に示される構成から図３に示される構成に変化する。
【００６６】
次にステップｓ６において、コマンドデコーダ２２０は、抽出した初期化フラグ１４を制御レジスタ２５０に転送する。制御レジスタ２５０は、転送されてきた初期化フラグ１４を初期化レジスタ２５４に記憶する。初期化レジスタ２５４に記憶された初期化フラグ１４は暗号処理装置１に入力される。
【００６７】
次にステップｓ７において、初期化フラグ１４を受け取った暗号処理装置１では、各暗号処理部２の初期化が行われる。ここで、複数の暗号処理部２の使用態様は第２の使用態様であることから、第２暗号処理部２ｂは第２マスタ鍵９ｂに基づいて初期化される。また第１暗号処理部２ａは、初期化後の第２暗号処理部２ｂから出力されるセッション鍵ＳＫと第１マスタ鍵９ａとから成る入力鍵に基づいて初期化される。以後、暗号処理装置１では、ホスト装置３００からのコマンドが、第１暗号処理部２ａから出力されるキーストリームＫＳで復号化される。また、メモリアレイ２４０からのデータが第１暗号処理部２ａから出力されるキーストリームＫＳで暗号化される。
【００６８】
なお、ホスト装置３００は、セキュリティ再構成コマンドを発行して半導体メモリ２００の暗号処理装置１での複数の暗号処理部２の使用態様を変化させる場合には、ホスト側暗号処理装置での複数の暗号処理部の使用態様も同じように変化させる。例えば、暗号処理装置１での複数の暗号処理部２の使用態様が第３の使用態様から第５の使用態様に変化する場合には、ホスト側暗号処理装置での複数の暗号処理部の使用態様も第３の使用態様から第５の使用態様に変化する。これにより、半導体メモリ２００の暗号処理装置１での複数の暗号処理部２の使用態様が変化した場合であっても、ホスト装置３００は半導体メモリ２００からのデータを適切に復号化できる。また、半導体メモリ２００はホスト装置３００からのコマンドを適切に復号化できる。
【００６９】
以上のようにメモリシステム１００が動作することによって、半導体メモリ２００でのセキュリティ構成が変化する。よって、半導体メモリ２００のセキュリティ強度が向上する。したがって、メモリアレイ２４０内のゲームプログラム等のデータの内容が特定されにくくなる。よって、ゲームカートリッジが違法複製されることを抑制することができる。
【００７０】
本実施の形態では、ホスト装置３００は、例えば、メモリシステム１００の電源がオンされるたびにセキュリティ再構成コマンドを発行する。これにより、メモリシステム１００の電源がオンされるたびに、半導体メモリ２００の暗号処理装置１での複数の暗号処理部２の使用態様が変化するようになる。この場合には、暗号処理装置１では、使用態様制御部５が、メモリシステム１００の電源がオンされると、複数の暗号処理部２の使用態様を変化させる。
【００７１】
またホスト装置３００は、定期的に、セキュリティ再構成コマンドを発行しても良い。これにより、暗号処理装置１での複数の暗号処理部２の使用態様が定期的に変化する。この場合には、暗号処理装置１では、使用態様制御部５が、定期的に、複数の暗号処理部２の使用態様を変化させる。
【００７２】
複数の暗号処理部２の使用態様は、第１〜第５の使用態様の間において、どのような順番で変化しても良い。例えば、複数の暗号処理部２の使用態様は、第１の使用態様、第２の使用態様、第３の使用態様、第４の使用態様、第５の使用態様の順で変化しても良い。また、複数の暗号処理部２の使用態様は、第１の使用態様、第３の使用態様、第５の使用態様、第２の使用態様、第４の使用態様の順で変化しても良い。
【００７３】
上記の例では、複数の暗号処理部２の使用態様を制御するためのセキュリティ構成フラグ１０（制御信号１０）は、セキュリティ再構成コマンドに含まれていたが、メモリアレイ２４０に予め記憶されていても良い。この場合には、第１〜第５の使用態様にそれぞれ対応する複数のセキュリティ構成フラグ１０がメモリアレイ２４０に予め記憶される。そして、半導体メモリ２００では、ホスト装置３００からセキュリティ再構成コマンドを受信すると、複数のセキュリティ構成フラグ１０のうちの一つがメモリアレイ２４０から読み出されて、制御レジスタ２５０に記憶される。メモリアレイ２４０から制御レジスタ２５０に書き込まれるセキュリティ構成フラグ１０が変更されることによって、複数の暗号処理部２の使用態様が変化する。
【００７４】
半導体メモリ２００は、メモリアレイ２４０から制御レジスタ２５０に書き込まれたセキュリティ構成フラグ１０、つまり複数の暗号処理部２の使用態様の制御に使用されるセキュリティ構成フラグ１０をホスト装置３００に通知する。ホスト装置３００は、ホスト側暗号処理装置での複数の暗号処理部の使用態様を、通知されたセキュリティ構成フラグ１０に対応する使用態様に設定する。これにより、半導体メモリ２００が、暗号処理装置１での複数の暗号処理部２の使用態様を自ら変化させた場合であっても、半導体メモリ２００での複数の暗号処理部２の使用態様と、ホスト装置３００での複数の暗号処理部の使用態様とが一致するようになる。よって、ホスト装置３００は半導体メモリ２００からのデータを適切に復号化できる。また、半導体メモリ２００はホスト装置３００からのコマンドを適切に復号化できる。
【００７５】
また上記の例では、暗号処理装置１での複数の暗号処理部２の使用態様として、第１〜第５の使用態様が定められているが、第１〜第５の使用態様のうちの少なくとも２つの使用態様だけが定められていても良い。また、第１〜第５の使用態様以外の使用態様が定められていても良い。
【００７６】
また上記の例では、暗号処理装置１の暗号処理部群２０は、２つの暗号処理部２で構成されていたが、３つ以上の暗号処理部２で構成されても良い。
【００７７】
暗号処理部群２０が第１〜第３暗号処理部で構成されている場合には、当該第１〜第３暗号処理部２の使用態様として様々な使用態様が考えられる。
【００７８】
例えば、第１暗号処理部２の出力データが第１セッション鍵として第２暗号処理部２に入力され、第２暗号処理部２の出力データが第２セッション鍵として第３暗号処理部２に出力され、第３暗号処理部２の出力データがキーストリームとして使用される態様が考えられる。
【００７９】
また、第３暗号処理部２の出力データが第１セッション鍵として第２暗号処理部２に入力され、第２暗号処理部２の出力データが第２セッション鍵として第１暗号処理部２に出力され、第１暗号処理部２の出力データがキーストリームとして使用される態様が考えられる。
【００８０】
また、第１暗号処理部２の出力データと第２暗号処理部２の出力データとがセッション鍵として第３暗号処理部２に入力され、第３暗号処理部２の出力データがキーストリームとして使用される態様が考えられる。
【００８１】
また、第２暗号処理部２の出力データと第３暗号処理部２の出力データとがセッション鍵として第１暗号処理部２に入力され、第１暗号処理部２の出力データがキーストリームとして使用される態様が考えられる。
【００８２】
また、第１暗号処理部２の出力データと、第２暗号処理部２の出力データと、第３暗号処理部２の出力データとが、キーストリームとして使用される態様が考えられる。
【００８３】
また、暗号処理部群２０は、使用する暗号アルゴリズムが互いに異なる少なくとも２つの暗号処理部２を含んでいても良いし、使用する暗号アルゴリズムが互いに同じである少なくとも２つの暗号処理部２を含んでいても良い。
【００８４】
例えば、暗号処理部群２０が第１〜第３暗号処理部２で構成されている場合には、第１及び第２暗号処理部２で使用される暗号アルゴリズムを互いに同じとし、第１及び第２暗号処理部２で使用される暗号アルゴリズムと、第３暗号処理部２で使用される暗号アルゴリズムとを互いに異なるようにする。
【００８５】
また、暗号処理部群２０が第１〜第４暗号処理部２で構成されている場合には、例えば、第１乃至第３暗号処理部２で使用される暗号アルゴリズムを互いに異なるようにし、第３及び第４暗号処理部２で使用される暗号アルゴリズムを互いに同じとする。
【００８６】
また、暗号処理部群２０が第１〜第４暗号処理部２で構成されている場合には、例えば、第１及び第２暗号処理部２で使用される暗号アルゴリズムを互いに同じとし、第３及び第４暗号処理部２で使用される暗号アルゴリズムを互いに同じとする。そして、例えば、第１及び第２暗号処理部２で使用される暗号アルゴリズムと、第３及び第４暗号処理部２で使用される暗号アルゴリズムとを互いに異なるようにする。
【００８７】
暗号処理部群２０が、使用する暗号アルゴリズムが互いに異なる少なくとも２つの暗号処理部２を含んでいる場合には、暗号処理装置１での複数の暗号処理部２の使用態様を変化させることによって、暗号処理装置１での暗号処理の内容がさらに特定されにくくなる。よって、当該暗号処理装置１を半導体メモリ２００等のセキュリティで使用することによって、セキュリティ強度をさらに向上させることができる。
【００８８】
また、暗号処理部群２０は、使用するマスタ鍵９が互いに異なる少なくとも２つの暗号処理部２を含んでいても良いし、使用するマスタ鍵９が互いに同じである少なくとも２つの暗号処理部２を含んでいても良い。
【００８９】
例えば、暗号処理部群２０が第１〜第３暗号処理部２で構成されている場合には、第１及び第２暗号処理部２で使用されるマスタ鍵９を互いに同じとし、第１及び第２暗号処理部２で使用されるマスタ鍵９と、第３暗号処理部２で使用されるマスタ鍵９とを互いに異なるようにする。
【００９０】
また、暗号処理部群２０が第１〜第４暗号処理部２で構成されている場合には、例えば、第１乃至第３暗号処理部２で使用されるマスタ鍵９を互いに異なるようにし、第１及び第４暗号処理部２で使用されるマスタ鍵９を互いに同じとする。
【００９１】
また、暗号処理部群２０が第１〜第４暗号処理部２で構成されている場合には、例えば、第１及び第２暗号処理部２で使用されるマスタ鍵９を互いに同じとし、第３及び第４暗号処理部２で使用されるマスタ鍵９を互いに同じとする。そして、第１及び第２暗号処理部２で使用されるマスタ鍵９と、第３及び第４暗号処理部２で使用されるマスタ鍵９とを互いに異なるようにする。
【００９２】
暗号処理部群２０が、使用する鍵が互いに異なる少なくとも２つの暗号処理部２を含んでいる場合には、暗号処理装置１での複数の暗号処理部２の使用態様を変化させることによって、暗号処理装置１での暗号処理の内容がさらに特定されにくくなる。よって、当該暗号処理装置１を半導体メモリ２００等のセキュリティで使用することによって、セキュリティ強度をさらに向上させることができる。
【００９３】
また、上記の例では、暗号処理部２は、セッション鍵、キーストリーム等の鍵を生成して出力していたが、入力されるデータを暗号化し、暗号化したデータを出力できるようにしても良い。この場合には、例えば、複数の暗号処理部２の使用態様が図２に示されるような第１の使用態様である場合には、第２暗号処理部２ｂは、第１暗号処理部２ａから出力されるセッション鍵ＳＫを使用して、入力されるデータ（平文）を暗号化し、暗号化したデータを出力する。また、例えば、複数の暗号処理部２の使用態様が図３に示されるような第２の使用態様である場合には、第１暗号処理部２ａは、第２暗号処理部２ｂから出力されるセッション鍵ＳＫを使用して、入力されるデータ（平文）を暗号化し、暗号化したデータを出力する。
【００９４】
以上のように、暗号処理装置１、半導体メモリ２００及びメモリシステム１００は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。また、上述した各種変形例は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。
【符号の説明】
【００９５】
１  暗号処理装置
２  暗号処理部
５  使用態様制御部
９  マスタ鍵
１００  メモリシステム
２００  半導体メモリ
２４０  メモリアレイ
３００  ホスト装置
【図１】
2014220729.tif 000003
【図２】
2014220729.tif 000004
【図３】
2014220729.tif 000005
【図４】
2014220729.tif 000006
【図５】
2014220729.tif 000007
【図６】
2014220729.tif 000008
【図７】
2014220729.tif 000009
【図８】
2014220729.tif 000010
【図９】
2014220729.tif 000011