(58)【調査した分野】(Int.Cl.,DB名)
前記暗号モード制御部は、一のアクセスに関する出力データに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定する、請求項1に記載の記憶装置。
前記暗号モード制御部は、一のアクセスに関する出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定する、請求項2に記載の記憶装置。
前記暗号モード制御部は、一のアクセスに関する出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定する、請求項2又は3に記載の記憶装置。
前記暗号モード制御部は、一のアクセスに関する入力データに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定する、請求項1〜4のいずれか一つに記載の記憶装置。
前記暗号モード制御部は、一のアクセスに関する入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定する、請求項5に記載の記憶装置。
前記暗号モード制御部は、一のアクセスに関する入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定する、請求項5又は6に記載の記憶装置。
前記暗号モード制御部は、複数のアクセスに関する複数の出力データに対して、ストリーム暗号を適用する出力データとブロック暗号を適用する出力データとを設定する、請求項1に記載の記憶装置。
前記暗号モード制御部は、複数のアクセスに関する複数の入力データに対して、ストリーム暗号を適用する入力データとブロック暗号を適用する入力データとを設定する、請求項1又は8に記載の記憶装置。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ブロック単位で暗号処理及び復号処理が行われるブロック暗号では、ブロックが確定するまで暗号処理及び復号処理を開始できないため、暗号処理及び復号処理をリアルタイムに実行することができない。
【0007】
一方、ビット単位で暗号処理及び復号処理が行われるストリーム暗号では、ストリームデータと平文との排他的論理和演算によってリアルタイムに暗号処理が行われ、また、ストリームデータと暗号文との排他的論理和演算によってリアルタイムに復号処理が行われる。そのため、ストリーム暗号の暗号処理及び復号処理の処理速度は、ブロック暗号のそれよりも速い。従って、処理速度だけを重視するのであれば、常にストリーム暗号を用いれば足りる。
【0008】
しかし、ストリーム暗号によると、共通鍵(秘密鍵)の機密性が担保されていても、ストリームデータを抽出することによって攻撃者は暗号文を復号できる。そのため、処理速度だけを重視して常にストリーム暗号を用いたのでは、攻撃耐性が不十分である。
【0009】
本発明はかかる事情に鑑みて成されたものであり、ストリーム暗号及びブロック暗号を併用することにより、処理速度の向上と攻撃耐性の向上とを両立することが可能な、記憶装置及びそれを備える情報処理システムを得ることを目的とする。
【課題を解決するための手段】
【0010】
本発明の第1の態様に係る記憶装置は、コンテンツデータが記憶された記憶部と、外部の通信装置から入力された、暗号化された入力データを復号する復号部と、前記復号部によって復号された入力データに基づいて前記記憶部から読み出されたコンテンツデータを暗号化することにより、暗号化された出力データを出力する暗号化部と、入力データ及び出力データの暗号モードとして、ストリーム暗号及びブロック暗号を組み合わせた複数のパターンを設定可能な暗号モード制御部と、を備え、前記暗号モード制御部が設定する複数のパターンには、一のアクセスに関する入力データと出力データとで暗号モードが異なるパターンが含まれることを特徴とするものである。
【0011】
第1の態様に係る記憶装置によれば、暗号モード制御部は、入力データ及び出力データの暗号モードとして、ストリーム暗号及びブロック暗号を組み合わせた複数のパターンを設定する。複数のパターンの中から最適なパターンを選択することにより、状況や目的に応じて適切な暗号処理を行うことができる。例えば、速い処理速度が要求される状況では、ストリーム暗号を適用するパターンを選択することによって高速処理を実現でき、また、高い攻撃耐性が要求される状況では、ブロック暗号を適用するパターンを選択することによって高い攻撃耐性を実現できる。その結果、処理速度の向上と攻撃耐性の向上とを両立することが可能となる。しかも、暗号モード制御部が設定する複数のパターンには、一のアクセスに関する入力データと出力データとで暗号モードが異なるパターンが含まれる。入力データと出力データとで暗号モードが異なることにより、攻撃者による解析が困難となるため、攻撃耐性をさらに向上することが可能となる。
【0012】
本発明の第2の態様に係る記憶装置は、第1の態様に係る記憶装置において特に、前記暗号モード制御部は、一のアクセスに関する出力データに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定することを特徴とするものである。
【0013】
第2の態様に係る記憶装置によれば、暗号モード制御部は、一のアクセスに関する出力データに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定する。ストリーム暗号を適用する部分とブロック暗号を適用する部分とを出力データ内に混在させることにより、攻撃者による出力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0014】
本発明の第3の態様に係る記憶装置は、第2の態様に係る記憶装置において特に、前記暗号モード制御部は、一のアクセスに関する出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定することを特徴とするものである。
【0015】
第3の態様に係る記憶装置によれば、暗号モード制御部は、一のアクセスに関する出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定する。出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置をアクセス毎に異ならせることにより、攻撃者による出力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0016】
本発明の第4の態様に係る記憶装置は、第2又は第3の態様に係る記憶装置において特に、前記暗号モード制御部は、一のアクセスに関する出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定することを特徴とするものである。
【0017】
第4の態様に係る記憶装置によれば、暗号モード制御部は、一のアクセスに関する出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定する。出力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズをアクセス毎に異ならせることにより、攻撃者による出力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0018】
本発明の第5の態様に係る記憶装置は、第1〜第4のいずれか一つの態様に係る記憶装置において特に、前記暗号モード制御部は、一のアクセスに関する入力データに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定することを特徴とするものである。
【0019】
第5の態様に係る記憶装置によれば、暗号モード制御部は、一のアクセスに関する入力データに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定する。ストリーム暗号を適用する部分とブロック暗号を適用する部分とを入力データ内に混在させることにより、攻撃者による入力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0020】
本発明の第6の態様に係る記憶装置は、第5の態様に係る記憶装置において特に、前記暗号モード制御部は、一のアクセスに関する入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定することを特徴とするものである。
【0021】
第6の態様に係る記憶装置によれば、暗号モード制御部は、一のアクセスに関する入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定する。入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置をアクセス毎に異ならせることにより、攻撃者による入力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0022】
本発明の第7の態様に係る記憶装置は、第5又は第6の態様に係る記憶装置において特に、前記暗号モード制御部は、一のアクセスに関する入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定することを特徴とするものである。
【0023】
第7の態様に係る記憶装置によれば、暗号モード制御部は、一のアクセスに関する入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定する。入力データのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズをアクセス毎に異ならせることにより、攻撃者による入力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0024】
本発明の第8の態様に係る記憶装置は、第1の態様に係る記憶装置において特に、前記暗号モード制御部は、複数のアクセスに関する複数の出力データに対して、ストリーム暗号を適用する出力データとブロック暗号を適用する出力データとを設定することを特徴とするものである。
【0025】
第8の態様に係る記憶装置によれば、暗号モード制御部は、複数のアクセスに関する複数の出力データに対して、ストリーム暗号を適用する出力データとブロック暗号を適用する出力データとを設定する。ストリーム暗号を適用する出力データとブロック暗号を適用する出力データとを併用することにより、攻撃者による出力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0026】
本発明の第9の態様に係る記憶装置は、第1又は第8の態様に係る記憶装置において特に、前記暗号モード制御部は、複数のアクセスに関する複数の入力データに対して、ストリーム暗号を適用する入力データとブロック暗号を適用する入力データとを設定することを特徴とするものである。
【0027】
第9の態様に係る記憶装置によれば、暗号モード制御部は、複数のアクセスに関する複数の入力データに対して、ストリーム暗号を適用する入力データとブロック暗号を適用する入力データとを設定する。ストリーム暗号を適用する入力データとブロック暗号を適用する入力データとを併用することにより、攻撃者による入力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0028】
本発明の第10の態様に係る記憶装置は、第1〜第9のいずれか一つの態様に係る記憶装置において特に、ストリーム暗号及びブロック暗号の適用は、要求される通信速度及び要求される攻撃耐性に基づいて選択されることを特徴とするものである。
【0029】
第10の態様に係る記憶装置によれば、ストリーム暗号及びブロック暗号の適用は、要求される通信速度及び要求される攻撃耐性に基づいて選択される。速い通信速度が要求される場合には、ストリーム暗号を選択することにより、速い通信速度を実現することができる。また、高い攻撃耐性が要求される場合には、ブロック暗号を選択することにより、高い攻撃耐性を実現することができる。
【0030】
本発明の第11の態様に係る記憶装置は、第1〜第10のいずれか一つの態様に係る記憶装置において特に、前記暗号化部は、ブロック暗号を行う暗号化回路を有し、前記暗号化回路の動作モードとして、ストリーム暗号を実現する暗号モードと、ブロック暗号を実現する暗号モードとを切り替えることを特徴とするものである。
【0031】
第11の態様に係る記憶装置によれば、暗号化回路の動作モードを、ストリーム暗号を実現する暗号モードと、ブロック暗号を実現する暗号モードとで切り替えることにより、ストリーム暗号及びブロック暗号を行う。従って、ストリーム暗号を行う暗号化回路とブロック暗号を行う暗号化回路とを個別に実装する必要がないため、回路規模を縮小できるとともに、コストを削減することが可能となる。
【0032】
本発明の第12の態様に係る記憶装置は、第1〜第10のいずれか一つの態様に係る記憶装置において特に、前記暗号化部は、ストリーム暗号を行う第1の暗号化回路と、ブロック暗号を行う第2の暗号化回路と、を有することを特徴とするものである。
【0033】
第12の態様に係る記憶装置によれば、暗号化部は、ストリーム暗号を行う第1の暗号化回路とブロック暗号を行う第2の暗号化回路とを有する。ストリーム暗号を行う第1の暗号化回路とブロック暗号を行う第2の暗号化回路とを個別に実装することにより、ストリーム暗号とブロック暗号とで別個の暗号アルゴリズムが適用されるため、攻撃耐性をさらに向上できるとともに、セキュリティ強度を向上することが可能となる。
【0034】
本発明の第13の態様に係る情報処理システムは、通信装置と、前記通信装置に接続される記憶装置と、を備え、前記記憶装置は、コンテンツデータが記憶された記憶部と、前記通信装置から入力された、暗号化された入力データを復号する復号部と、前記復号部によって復号された入力データに基づいて前記記憶部から読み出されたコンテンツデータを暗号化することにより、暗号化された出力データを出力する暗号化部と、入力データ及び出力データの暗号モードとして、ストリーム暗号及びブロック暗号を組み合わせた複数のパターンを設定可能な暗号モード制御部と、を有し、前記暗号モード制御部が設定する複数のパターンには、一のアクセスに関する入力データと出力データとで暗号モードが異なるパターンが含まれることを特徴とするものである。
【0035】
第13の態様に係る情報処理システムによれば、暗号モード制御部は、入力データ及び出力データの暗号モードとして、ストリーム暗号及びブロック暗号を組み合わせた複数のパターンを設定する。複数のパターンの中から最適なパターンを選択することにより、状況や目的に応じて適切な暗号処理を行うことが可能となる。しかも、暗号モード制御部が設定する複数のパターンには、一のアクセスに関する入力データと出力データとで暗号モードが異なるパターンが含まれる。入力データと出力データとで暗号モードが異なることにより、攻撃者による解析が困難となるため、攻撃耐性を向上することが可能となる。
【発明の効果】
【0036】
本発明によれば、ストリーム暗号及びブロック暗号を併用することにより、処理速度の向上と攻撃耐性の向上とを両立することが可能な、記憶装置及びそれを備える情報処理システムを得ることができる。
【発明を実施するための形態】
【0038】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0039】
図1は、本発明の実施の形態に係る情報処理システム1の全体構成を示す図である。情報処理システム1は、通信装置2と半導体記憶装置3とを備えて構成されている。通信装置2は、例えばパーソナルコンピュータである。半導体記憶装置3は、例えば、通信装置2に着脱自在に接続可能なメモリカードである。あるいは、半導体記憶装置3に代えて、光ディスクや磁気ディスク等の任意の記憶装置を用いることもできる。
【0040】
通信装置2は、マイクロプロセッサ11とセキュリティ制御回路12とを備えて構成されている。半導体記憶装置3は、セキュリティ制御回路21とメモリアレイ22とを備えて構成されている。セキュリティ制御回路12,21は、後述する暗号処理によって、相互にセキュア通信を行う。メモリアレイ22には、画像、音声、テキスト、コード、管理情報等の任意のコンテンツデータが記憶されている。メモリアレイ22は、例えばNAND型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ22はNOR型フラッシュメモリ等を用いて構成されていても良い。
【0041】
図2は、通信装置2の構成を簡略化して示す図である。マイクロプロセッサ11は、バス30を介して相互に接続された、CPU31、演算器32、RAM33、及びROM34を備えて構成されている。セキュリティ制御回路12は、バス30を介してマイクロプロセッサ11に接続されている。
【0042】
図3は、セキュリティ制御回路21の構成を簡略化して示す図である。
図3の接続関係で示すように、セキュリティ制御回路21は、ホストインタフェース41、暗号モード制御回路42、暗号化・復号回路43、シーケンサ44、及びメモリインタフェース45を備えて構成されている。暗号化・復号回路43は、暗号モードとして、平文をビット単位で暗号化するストリーム暗号と、平文を固定長(例えば16バイト長)のブロック単位で暗号化するブロック暗号とを切り替えて適用可能である。暗号モード制御回路42は、暗号化・復号回路43に対してストリーム暗号又はブロック暗号の暗号モードを設定する。
【0043】
本実施の形態の例では、暗号化・復号回路43には、ブロック暗号の構成法の一種であるSPN構造(SPN:Substitution Permutation Network)を持つ暗号アルゴリズムが実装されている。暗号アルゴリズムとしては、例えばAES(Advanced Encryption Standard)が使用される。AESのCBCモード(CBC:Cipher Block Chaining)によってブロック暗号が実現され、AESのCTRモード(カウンタモード)によってストリーム暗号が実現される。
【0044】
図4は、暗号化・復号回路43の構成を簡略化して示す図である。
図4の接続関係で示すように、暗号化・復号回路43は、復号回路51、暗号化回路52、演算回路53、カウンタ54、及びセレクタ55〜57を備えて構成されている。なお、図示は省略するが、通信装置2のセキュリティ制御回路12も、
図4に示した暗号化・復号回路43と同様の構成及び機能を備えている。
【0045】
以下、
図1〜4を参照して、本実施の形態に係る情報処理システム1の動作について説明する。以下の例では、通信装置2がメモリアレイ22にアクセスするためのアクセスコマンドとして、リードコマンドを使用する場合について説明する。
【0046】
図1を参照して、まずマイクロプロセッサ11は、後述する暗号パターンを設定するための暗号制御コマンドを発行する。暗号制御コマンドは、それが暗号制御コマンドであることを識別するための特定のコマンドIDと、複数の暗号パターンの中から所望の暗号パターンを選択するための選択情報とを含む。マイクロプロセッサ11は、暗号制御コマンドを、セキュリティ制御回路12を介してセキュリティ制御回路21に送信する。
図3を参照して、セキュリティ制御回路21が受信した暗号制御コマンドは、ホストインタフェース41及び暗号化・復号回路43を介してシーケンサ44に入力される。なお、暗号制御コマンドは暗号化されていないため、暗号化・復号回路43は、ホストインタフェース41から入力された暗号制御コマンドをそのままスルーしてシーケンサ44に入力する。
【0047】
次にシーケンサ44は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路42に転送する。
【0048】
図5〜11は、暗号パターンの例を示す図である。入力データDIは、通信装置2から半導体記憶装置3に入力されるリードコマンドであり、出力データDOは、半導体記憶装置3から通信装置2に向けて出力されるコンテンツデータである。ハッチングを施した部分にはブロック暗号が適用されることを意味し、ハッチングを施していない部分にはストリーム暗号が適用されることを意味する。これらの暗号パターンは、セキュリティ制御回路12,21によって共有され、メモリアレイ22内に格納されている。但し、暗号パターンは、セキュリティ制御回路12,21が参照可能な他の不揮発性メモリ内に格納されていてもよい。なお、
図5〜11に示した暗号パターンは一例であり、他の任意の暗号パターンを含めてもよい。
【0049】
パターンP1では、入力データDIの全体及び出力データDOの全体にブロック暗号が適用される。
【0050】
パターンP2では、入力データDIの全体及び出力データDOの全体にストリーム暗号が適用される。
【0051】
パターンP3では、入力データDIの全体にブロック暗号が適用され、出力データDOの全体にストリーム暗号が適用される。
【0052】
パターンP4では、入力データDIの全体にストリーム暗号が適用され、出力データDOの全体にブロック暗号が適用される。
【0053】
パターンP5〜P7では、入力データDIの全体にブロック暗号が適用され、出力データDOには、ストリーム暗号が適用される部分とブロック暗号が適用される部分とが混在している。なお、パターンP5〜P7において、入力データDIに対しては他の任意の暗号パターンが適用されてもよい。
【0054】
パターンP5では、出力データDOにおいて、ブロック暗号が適用される部分のデータサイズは、ブロック暗号の処理単位である1ブロック(16バイト)であり、ブロック暗号が適用される部分の位置が、アクセス毎に異なっている。また、ブロック暗号が適用される部分の位置が異なることに伴って、ストリーム暗号が適用される部分の位置も異なる。つまり、出力データDOのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置が、アクセス毎に再設定される。例えば、1回目のリードアクセスに対する出力データDOでは、1番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。また、2回目のリードアクセスに対する出力データDOでは、2番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。なお、ブロック暗号が適用される部分のデータサイズは、1ブロックに限らず、2ブロック以上であってもよい。
【0055】
パターンP6では、出力データDOにおいて、ブロック暗号が適用される部分のデータサイズが、アクセス毎に異なっている。また、ブロック暗号が適用される部分のデータサイズが異なることに伴って、ストリーム暗号が適用される部分のデータサイズも異なる。つまり、出力データDOのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各データサイズが、アクセス毎に再設定される。例えば、1回目のリードアクセスに対する出力データDOでは、1番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。また、2回目のリードアクセスに対する出力データDOでは、1番目及び2番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。
【0056】
パターンP7は、パターンP5,P6を組み合わせたものである。出力データDOにおいて、ストリーム暗号が適用される部分及びブロック暗号が適用される部分の各位置及び各データサイズが、アクセス毎に異なっている。
【0057】
パターンP8〜P10では、出力データDOの全体にストリーム暗号が適用され、入力データDIには、ストリーム暗号が適用される部分とブロック暗号が適用される部分とが混在している。なお、パターンP8〜P10において、出力データDOに対しては他の任意の暗号パターンが適用されてもよい。
【0058】
パターンP8では、入力データDIにおいて、ブロック暗号が適用される部分のデータサイズは、ブロック暗号の処理単位である1ブロック(16バイト)であり、ブロック暗号が適用される部分の位置が、アクセス毎に異なっている。また、ブロック暗号が適用される部分の位置が異なることに伴って、ストリーム暗号が適用される部分の位置も異なる。つまり、入力データDIのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置が、アクセス毎に再設定される。例えば、1回目のリードアクセスにおける入力データDIでは、1番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。また、2回目のリードアクセスにおける入力データDIでは、2番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。なお、ブロック暗号が適用される部分のデータサイズは、1ブロックに限らず、2ブロック以上であってもよい。
【0059】
パターンP9では、入力データDIにおいて、ブロック暗号が適用される部分のデータサイズが、アクセス毎に異なっている。また、ブロック暗号が適用される部分のデータサイズが異なることに伴って、ストリーム暗号が適用される部分のデータサイズも異なる。つまり、入力データDIのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各データサイズが、アクセス毎に再設定される。例えば、1回目のリードアクセスにおける入力データDIでは、1番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。また、2回目のリードアクセスにおける入力データDIでは、1番目及び2番目のブロックに対してブロック暗号が適用され、残りのブロックに対してストリーム暗号が適用される。
【0060】
パターンP10は、パターンP8,P9を組み合わせたものである。入力データDIにおいて、ストリーム暗号が適用される部分及びブロック暗号が適用される部分の各位置及び各データサイズが、アクセス毎に異なっている。
【0061】
パターンP1〜P10の選択は、
図1に示したマイクロプロセッサ11によってアクセス毎に行われる。マイクロプロセッサ11は、要求される通信速度及び要求される攻撃耐性に基づいて、パターンP1〜P10の中から最適なパターンを選択する。
【0062】
例えば、画像や音声等のサイズの大きいデータを読み出す場合には、速い通信速度が要求されるため、出力データDOに関してストリーム暗号が適用されるパターンP2,P3を選択する。また、コードや管理情報等のサイズの小さいデータを読み出す場合には、遅い通信速度で足りるため、出力データDOに関してブロック暗号が適用されるパターンP1,P4を選択することにより攻撃耐性を向上する。
【0063】
また、出力データDOに関して高い攻撃耐性が要求される場合には、出力データDOに関してブロック暗号が適用されるパターンP1,P4を選択する。あるいは、出力データDOに関してストリーム暗号とブロック暗号とが混在するパターンP5〜P7を選択する。
【0064】
また、入力データDIのデータサイズが大きい場合には、速い通信速度が要求されるため、入力データDIに関してストリーム暗号が適用されるパターンP2,P4を選択する。また、入力データDIのデータサイズが小さい場合には、遅い通信速度で足りるため、入力データDIに関してブロック暗号が適用されるパターンP1,P3を選択することにより攻撃耐性を向上する。
【0065】
また、入力データDIに関して高い攻撃耐性が要求される場合には、入力データDIに関してブロック暗号が適用されるパターンP1,P3を選択する。あるいは、入力データDIに関してストリーム暗号とブロック暗号とが混在するパターンP8〜P10を選択する。
【0066】
図3を参照して、上記の通りシーケンサ44は、暗号制御コマンドに含まれる選択情報を抽出し、その選択情報を暗号モード制御回路42に転送する。
【0067】
図3,4を参照して、次に暗号モード制御回路42は、選択情報で示される暗号パターンに準拠して、セレクタ55〜57を制御する。ストリーム暗号を適用する場合には、セレクタ55〜57のフラグを「1」に設定し、ブロック暗号を適用する場合には、セレクタ55〜57のフラグを「0」に設定する。パターンP5〜P10のようにストリーム暗号とブロック暗号とが混在する場合には、ストリーム暗号が適用される部分の位置、及びブロック暗号が適用される部分の位置に応じて、セレクタ55〜57の設定を順次切り替える。
【0068】
図1を参照して、次にマイクロプロセッサ11は、リードコマンドを発行する。リードコマンドは、それがリードコマンドであることを識別するための特定のコマンドIDと、読み出し対象のコンテンツデータの所在を示すアドレス情報とを含む。
【0069】
次にセキュリティ制御回路12は、選択された暗号パターンに準拠してリードコマンドを暗号化する。例えば、パターンP1が選択されている場合にはリードコマンドの全体に対してブロック暗号を適用し、パターンP2が選択されている場合にはリードコマンドの全体に対してストリーム暗号を適用する。セキュリティ制御回路12は、暗号化済みリードコマンドをセキュリティ制御回路21に送信する。
図3を参照して、セキュリティ制御回路21が受信した暗号化済みリードコマンドは、ホストインタフェース41を介して暗号化・復号回路43に入力される。
【0070】
図4を参照して、暗号化済みリードコマンドは、入力データDIとして復号回路51及び演算回路53に入力される。
【0071】
通信装置2から受信した暗号化済みリードコマンドにストリーム暗号が適用されている場合には、上記の暗号モード制御回路42の制御によってセレクタ55〜57のフラグは「1」に設定されている。この場合、演算回路53は、ホストインタフェース41から入力された入力データDIと、カウンタ54から出力されるカウントデータD1に基づいて生成されたストリームデータD2とに基づいて、排他的論理和演算を行う。そして、この演算によって復号された復号済みリードコマンドD3を、セレクタ55を介してシーケンサ44に入力する。
【0072】
図3を参照して、次にシーケンサ44は、復号済みリードコマンドD3に基づいてメモリアレイ22から所望のコンテンツデータD5を読み出す。
【0073】
図4を参照して、上記の暗号モード制御回路42の制御によってセレクタ55〜57のフラグは「1」に設定されている。この場合、コンテンツデータD5は演算回路53に入力される。演算回路53は、コンテンツデータD5と、カウンタ54から出力されるカウントデータD1に基づいて生成されたストリームデータD2とに基づいて、排他的論理和演算を行う。そして、この演算によって暗号化された暗号化済みコンテンツデータを、出力データDOとして、セレクタ57を介してホストインタフェース41に入力する。ホストインタフェース41は、出力データDOをセキュリティ制御回路12に送信する。
【0074】
図1を参照して、セキュリティ制御回路12は、受信した出力データDOをストリーム暗号によって復号し、復号済みコンテンツデータをマイクロプロセッサ11に入力する。
【0075】
再び
図4を参照して、上記の通り暗号化済みリードコマンドは、入力データDIとして復号回路51及び演算回路53に入力される。
【0076】
通信装置2から受信した暗号化済みリードコマンドにブロック暗号が適用されている場合には、上記の暗号モード制御回路42の制御によってセレクタ55〜57のフラグは「0」に設定されている。この場合、復号回路51は、ブロック暗号アルゴリズムによって入力データDIを復号し、復号済みリードコマンドD4を、セレクタ55を介してシーケンサ44に入力する。
【0077】
図3を参照して、次にシーケンサ44は、復号済みリードコマンドD3に基づいてメモリアレイ22から所望のコンテンツデータD5を読み出す。
【0078】
図4を参照して、上記の暗号モード制御回路42の制御によってセレクタ55〜57のフラグは「0」に設定されている。この場合、コンテンツデータD5はセレクタ56を介して暗号化回路52に入力される。暗号化回路52は、ブロック暗号アルゴリズムによってコンテンツデータD5を暗号化し、暗号化済みコンテンツデータを、出力データDOとして、セレクタ57を介してホストインタフェース41に入力する。ホストインタフェース41は、出力データDOをセキュリティ制御回路12に送信する。
【0079】
図1を参照して、セキュリティ制御回路12は、受信した出力データDOをブロック暗号によって復号し、復号済みコンテンツデータをマイクロプロセッサ11に入力する。
【0080】
<変形例>
図12は、暗号化・復号回路43の他の構成を簡略化して示す図である。
図12の接続関係で示すように、暗号化・復号回路43は、復号回路61,62、暗号化回路63,64、及びセレクタ65,66を備えて構成されている。復号回路61は、ストリーム暗号アルゴリズムによって入力データDIを復号する。復号回路62は、ブロック暗号アルゴリズムによって入力データDIを復号する。暗号化回路63は、ストリーム暗号アルゴリズムによってコンテンツデータを暗号化する。暗号化回路64は、ブロック暗号アルゴリズムによってコンテンツデータを暗号化する。復号回路61及び暗号化回路63におけるストリーム暗号アルゴリズムとしては、KCipher−2又はEnocoro等が使用される。
【0081】
暗号モード制御回路42は、選択情報で示される暗号パターンに準拠して、セレクタ65,66を制御する。ストリーム暗号を適用する場合には、セレクタ65,66のフラグを「1」に設定し、ブロック暗号を適用する場合には、セレクタ65,66のフラグを「0」に設定する。パターンP5〜P10のようにストリーム暗号とブロック暗号とが混在する場合には、ストリーム暗号が適用される部分の位置、及びブロック暗号が適用される部分の位置に応じて、セレクタ65,66の設定を順次切り替える。
【0082】
<まとめ>
上記実施の形態に係る半導体記憶装置3によれば、暗号モード制御回路42(暗号モード制御部)は、入力データDI及び出力データDOの暗号モードとして、ストリーム暗号及びブロック暗号を組み合わせた複数のパターンP1〜P10を設定する。複数のパターンP1〜P10の中から最適なパターンを選択することにより、状況や目的に応じて適切な暗号処理を行うことができる。例えば、速い処理速度が要求される状況では、ストリーム暗号を適用するパターンを選択することによって高速処理を実現でき、また、高い攻撃耐性が要求される状況では、ブロック暗号を適用するパターンを選択することによって高い攻撃耐性を実現できる。その結果、処理速度の向上と攻撃耐性の向上とを両立することが可能となる。しかも、暗号モード制御回路42が設定する複数のパターンP1〜P10には、一のアクセスに関する入力データDIと出力データDOとで暗号モードが異なるパターンP3〜P10が含まれる。入力データDIと出力データDOとで暗号モードが異なることにより、攻撃者による解析が困難となるため、攻撃耐性をさらに向上することが可能となる。
【0083】
また、上記実施の形態に係る半導体記憶装置3によれば、パターンP5〜P7を選択した場合、暗号モード制御回路42は、一のアクセスに関する出力データDOに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定する。ストリーム暗号を適用する部分とブロック暗号を適用する部分とを出力データDO内に混在させることにより、攻撃者による出力データの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0084】
また、上記実施の形態に係る半導体記憶装置3によれば、パターンP5,P7を選択した場合、暗号モード制御回路42は、一のアクセスに関する出力データDOのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定する。出力データDOのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置をアクセス毎に異ならせることにより、攻撃者による出力データDOの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0085】
また、上記実施の形態に係る半導体記憶装置3によれば、パターンP6,P7を選択した場合、暗号モード制御回路42は、一のアクセスに関する出力データDOのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定する。出力データDOのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズをアクセス毎に異ならせることにより、攻撃者による出力データDOの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0086】
また、上記実施の形態に係る半導体記憶装置3によれば、パターンP8〜P10を選択した場合、暗号モード制御回路42は、一のアクセスに関する入力データDIに対して、ストリーム暗号を適用する部分とブロック暗号を適用する部分とを設定する。ストリーム暗号を適用する部分とブロック暗号を適用する部分とを入力データDI内に混在させることにより、攻撃者による入力データDIの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0087】
また、上記実施の形態に係る半導体記憶装置3によれば、パターンP8,P10を選択した場合、暗号モード制御回路42は、一のアクセスに関する入力データDIのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置を、アクセス毎に再設定する。入力データDIのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各位置をアクセス毎に異ならせることにより、攻撃者による入力データDIの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0088】
また、上記実施の形態に係る半導体記憶装置3によれば、パターンP9,P10を選択した場合、暗号モード制御回路42は、一のアクセスに関する入力データDIのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズを、アクセス毎に再設定する。入力データDIのうちストリーム暗号を適用する部分及びブロック暗号を適用する部分の各サイズをアクセス毎に異ならせることにより、攻撃者による入力データDIの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0089】
また、上記実施の形態に係る半導体記憶装置3によれば、暗号モード制御回路42は、複数のアクセスに関する複数の出力データDOに対して、ストリーム暗号を適用する出力データDOとブロック暗号を適用する出力データDOとを設定する。例えば、あるリードアクセスにおいてはパターンP1を選択することによって出力データDOにブロック暗号を適用し、別のアクセスにおいてはパターンP2を選択することによって出力データDOにストリーム暗号を適用する。ストリーム暗号を適用する出力データDOとブロック暗号を適用する出力データDOとを併用することにより、攻撃者による出力データDOの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0090】
また、上記実施の形態に係る半導体記憶装置3によれば、暗号モード制御回路42は、複数のアクセスに関する複数の入力データDIに対して、ストリーム暗号を適用する入力データDIとブロック暗号を適用する入力データDIとを設定する。例えば、あるリードアクセスにおいてはパターンP1を選択することによって入力データDIにブロック暗号を適用し、別のアクセスにおいてはパターンP2を選択することによって入力データDIにストリーム暗号を適用する。ストリーム暗号を適用する入力データDIとブロック暗号を適用する入力データDIとを併用することにより、攻撃者による入力データDIの解析がさらに困難となるため、攻撃耐性をさらに向上することが可能となる。
【0091】
また、上記実施の形態に係る半導体記憶装置3によれば、ストリーム暗号及びブロック暗号の適用は、要求される通信速度及び要求される攻撃耐性に基づいて選択される。速い通信速度が要求される場合には、ストリーム暗号を選択することにより、速い通信速度を実現することができる。また、高い攻撃耐性が要求される場合には、ブロック暗号を選択することにより、高い攻撃耐性を実現することができる。
【0092】
また、上記実施の形態に係る半導体記憶装置3によれば、暗号化回路52の動作モードを、ストリーム暗号を実現する暗号モードと、ブロック暗号を実現する暗号モードとで切り替えることにより、ストリーム暗号及びブロック暗号を行う。従って、ストリーム暗号を行う暗号化回路とブロック暗号を行う暗号化回路とを個別に実装する必要がないため、回路規模を縮小できるとともに、コストを削減することが可能となる。
【0093】
また、上記変形例に係る半導体記憶装置3によれば、暗号化・復号回路43(暗号化部)は、ストリーム暗号を行う第1の暗号化回路63とブロック暗号を行う第2の暗号化回路64とを有する。ストリーム暗号を行う第1の暗号化回路63とブロック暗号を行う第2の暗号化回路64とを個別に実装することにより、ストリーム暗号とブロック暗号とで別個の暗号アルゴリズムが適用されるため、攻撃耐性をさらに向上できるとともに、セキュリティ強度を向上することが可能となる。