(57)【要約】【課題】ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を容易にかつ低コストで実装することが可能な暗号化装置を得る。【解決手段】ノイズ生成モジュール３２は、暗号モジュール３１の消費電力特性を隠蔽するための消費電力ノイズを生成する。暗号モジュール３１は、自身への入力データに対して非線形変換処理を行う第１の非線形変換処理部を有し、ノイズ生成モジュール３２は、第１の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第２の非線形変換処理部を有する。【選択図】図２
2018060159.tif 000002
【特許請求の範囲】
【請求項１】
入力された第１のデータを暗号化することによって第２のデータを出力する、暗号モジュールと、
前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズを生成する、ノイズ生成モジュールと、
を備え、
前記暗号モジュールは、自身への入力データに対して非線形変換処理を行う第１の非線形変換処理部を有し、
前記ノイズ生成モジュールは、前記第１の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第２の非線形変換処理部を有する、暗号化装置。
【請求項２】
前記第１の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第１の非線形変換回路を有し、
前記第２の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う、少なくとも一つの第２の非線形変換回路を有する、請求項１に記載の暗号化装置。
【請求項３】
前記第２の非線形変換処理部は、直列に接続された複数の前記第２の非線形変換回路を有する、請求項２に記載の暗号化装置。
【請求項４】
前記第２の非線形変換回路としては、ビット幅及び回路構成方式が前記第１の非線形変換回路のそれと等しい非線形変換回路が使用される、請求項３に記載の暗号化装置。
【請求項５】
前記第２の非線形変換回路としては、ビット幅が前記第１の非線形変換回路のそれよりも大きい非線形変換回路が使用される、請求項３に記載の暗号化装置。
【請求項６】
前記第２の非線形変換回路としては、消費電力の分散が前記第１の非線形変換回路のそれよりも大きい回路構成方式の非線形変換回路が使用される、請求項３に記載の暗号化装置。
【請求項７】
前記第１のデータ及び前記第２のデータの一方が、初期値として第１段の前記第２の非線形変換回路に入力される、請求項３〜６のいずれか一つに記載の暗号化装置。
【請求項８】
所定の固定値及び不定値の一方が、初期値として第１段の前記第２の非線形変換回路に入力される、請求項３〜６のいずれか一つに記載の暗号化装置。
【請求項９】
前記ノイズ生成モジュールは、前記第１の非線形変換回路の動作に同期して前記第２の非線形変換回路を動作させるための同期制御回路をさらに有する、請求項３〜８のいずれか一つに記載の暗号化装置。
【請求項１０】
前記ノイズ生成モジュールは、実装されている全ての前記第２の非線形変換回路のうち、動作させる前記第２の非線形変換回路の段数を選択するための選択回路をさらに有する、請求項３〜９のいずれか一つに記載の暗号化装置。
【請求項１１】
前記第１の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第１の非線形変換回路を有し、
前記第２の非線形変換処理部は、ソフトウェア処理によって非線形変換処理を実行する、少なくとも一つのデータ処理部を有する、請求項１に記載の暗号化装置。
【請求項１２】
前記データ処理部は、ビット幅が前記第１の非線形変換回路のそれと等しい非線形変換処理を実行する、請求項１１に記載の暗号化装置。
【請求項１３】
前記データ処理部は、ビット幅が前記第１の非線形変換回路のそれよりも大きい非線形変換処理を実行する、請求項１１に記載の暗号化装置。
【請求項１４】
前記第１のデータ及び前記第２のデータの一方が、初期値として前記データ処理部に入力される、請求項１１〜１３のいずれか一つに記載の暗号化装置。
【請求項１５】
所定の固定値が、初期値として前記データ処理部に入力される、請求項１１〜１３のいずれか一つに記載の暗号化装置。
【請求項１６】
前記第２の非線形変換処理部は複数の前記データ処理部を有し、
複数の前記データ処理部のうち非稼働状態である少なくとも一つのデータ処理部が、非線形変換処理を実行する、請求項１１〜１５のいずれか一つに記載の暗号化装置。
【請求項１７】
入力された第１のデータをハードウェア処理によって暗号化することにより第２のデータを出力する、暗号モジュールと、
前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズをソフトウェア処理によって生成する、ノイズ生成モジュールと、
を備える、暗号化装置。
【請求項１８】
前記暗号モジュールは、自身への入力データに対してハードウェア処理によって非線形変換処理を行う非線形変換回路を有し、
前記ノイズ生成モジュールは、前記非線形変換回路の動作期間において、自身への入力データに対してソフトウェア処理によって非線形変換処理を実行するデータ処理部を有する、請求項１７に記載の暗号化装置。
【請求項１９】
ホスト装置に接続されるメモリ装置であって、
コンテンツデータが格納されたメモリアレイと、
前記ホスト装置に送信するコンテンツデータを暗号化するための、請求項１〜１８のいずれか一つに記載の暗号化装置と、
を備える、メモリ装置。
【請求項２０】
メモリ装置が接続されるホスト装置であって、
前記メモリ装置に対するコマンドを発行する制御部と、
前記メモリ装置に送信するコマンドを暗号化するための、請求項１〜１８のいずれか一つに記載の暗号化装置と、
を備える、ホスト装置。
【請求項２１】
請求項１９に記載のメモリ装置と、
請求項２０に記載のホスト装置と、
を備える、メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化装置、メモリ装置、ホスト装置、及びメモリシステムに関する。
【背景技術】
【０００２】
現在使用されている暗号方式は、暗号学的な解析手法に対して計算量的に安全であるとされている。しかし、実際に暗号化装置に暗号モジュールを実装する場合には、消費電力や処理時間のような、実装に依存したリークが発生する。そのような動作状況を様々な物理的手段で観察することにより、秘密鍵等の秘密情報を不正に取得しようとするサイドチャネル攻撃の脅威が増している。
【０００３】
サイドチャネル攻撃の一つとして、装置の消費電力を測定することによって秘密情報を解析する電力解析攻撃がある。その中でも、測定した複数の消費電力波形に対して統計処理による解析を行う、差分電力解析（ＤＰＡ：Differential Power Analysis）や相関電力解析（ＣＰＡ：Correlation Power Analysis）が、特に強力な攻撃法として報告されている（下記非特許文献１，２参照）。
【０００４】
そのため近年では、ＤＰＡ攻撃やＣＰＡ攻撃に対する種々の対策回路が提案されており、例えば下記非特許文献３には、ＲＳＬ（Random Switching Logic）回路及びＷＤＤＬ（Wave Dynamic Differential Logic）回路が提案されている。ＲＳＬ回路は、乱数を用いて論理回路の動作モードを切り替えることによって状態遷移確率の偏りをなくし、それによって暗号鍵に依存しないよう消費電力をランダム化する。ＷＤＤＬ回路は、プリチャージ動作を行った後、演算時のビット値の違いに起因する消費電流の相違を相補回路によって低減することにより、消費電力を均一化する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】Paul Kocher、他２名、”Introduction to Differential Power Analysis and related Attacks”、[online]、Cryptography Research、平成２７年７月１日検索、インターネット＜http://www.cryptography.com/public/pdf/DPATechInfo.pdf＞
【非特許文献２】Eric Brier、他２名、”Correlation Power Analysis with a Leakage Model”、[online]、Gemplus Card International、平成２８年９月１２日検索、インターネット＜https://www.iacr.org/archive/ches2004/31560016/31560016.pdf＞
【非特許文献３】Daisuke Suzuki、他２名、"Random Switching Logic: A Countermeasure against DPA based on Transition Probability"、[online]、International Association for Cryptologic Research、平成２７年７月１日検索、インターネット＜http://eprint.iacr.org/2004/346.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、上述したＲＳＬ回路又はＷＤＤＬ回路を暗号化装置に実装する場合には、これらの回路を実装しない装置と比較して、演算時間、回路規模、及び消費電力が数倍〜数十倍に増大するため、コストが増大する。
【０００７】
本発明はかかる事情に鑑みて成されたものであり、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を容易にかつ低コストで実装することが可能な、暗号化装置、メモリ装置、ホスト装置、及びメモリシステムを得ることを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明の第１の態様に係る暗号化装置は、入力された第１のデータを暗号化することによって第２のデータを出力する、暗号モジュールと、前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズを生成する、ノイズ生成モジュールと、を備え、前記暗号モジュールは、自身への入力データに対して非線形変換処理を行う第１の非線形変換処理部を有し、前記ノイズ生成モジュールは、前記第１の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第２の非線形変換処理部を有することを特徴とするものである。
【０００９】
第１の態様に係る暗号化装置によれば、ノイズ生成モジュールは、第１の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第２の非線形変換処理部を有する。一般的な擬似乱数生成器等に比べて非線形変換処理は消費電力の分散が大きいため、第１の非線形変換処理部の動作期間において第２の非線形変換処理部を動作させることにより、分散の大きい消費電力ノイズをノイズ生成モジュールによって生成することができる。従って、この分散の大きい消費電力ノイズによって、暗号モジュールの消費電力特性を効果的に隠蔽することが可能となる。しかも、ノイズ生成モジュールを追加実装するだけでよく、暗号モジュールの暗号アルゴリズム自体は何ら変更する必要がないため、暗号モジュールの再設計に伴う設計の複雑化やコストの増大等を回避できる。その結果、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【００１０】
本発明の第２の態様に係る暗号化装置は、第１の態様に係る暗号化装置において特に、前記第１の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第１の非線形変換回路を有し、前記第２の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う、少なくとも一つの第２の非線形変換回路を有することを特徴とするものである。
【００１１】
第２の態様に係る暗号化装置によれば、第２の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う、少なくとも一つの第２の非線形変換回路を有する。第２の非線形変換回路によるハードウェア処理によって非線形変換処理を行うことにより、ソフトウェア処理によって非線形変換処理を行う場合よりも分散の大きい消費電力ノイズを生成できるため、暗号モジュールの消費電力特性を効果的に隠蔽することが可能となる。
【００１２】
本発明の第３の態様に係る暗号化装置は、第２の態様に係る暗号化装置において特に、前記第２の非線形変換処理部は、直列に接続された複数の前記第２の非線形変換回路を有することを特徴とするものである。
【００１３】
第３の態様に係る暗号化装置によれば、第２の非線形変換処理部は、直列に接続された複数の第２の非線形変換回路を有する。複数の第２の非線形変換回路を直列に接続することによって、ノイズ生成モジュールが生成する消費電力ノイズの分散をさらに大きくできるため、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【００１４】
本発明の第４の態様に係る暗号化装置は、第３の態様に係る暗号化装置において特に、前記第２の非線形変換回路としては、ビット幅及び回路構成方式が前記第１の非線形変換回路のそれと等しい非線形変換回路が使用されることを特徴とするものである。
【００１５】
第４の態様に係る暗号化装置によれば、第２の非線形変換回路としては、ビット幅及び回路構成方式が第１の非線形変換回路のそれと等しい非線形変換回路が使用される。第１の非線形変換回路と第２の非線形変換回路とでビット幅及び回路構成方式を共通にすることにより、第２の非線形変換回路の消費電力ノイズの特性を、第１の非線形変換回路の消費電力特性に近似させることができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【００１６】
本発明の第５の態様に係る暗号化装置は、第３の態様に係る暗号化装置において特に、前記第２の非線形変換回路としては、ビット幅が前記第１の非線形変換回路のそれよりも大きい非線形変換回路が使用されることを特徴とするものである。
【００１７】
第５の態様に係る暗号化装置によれば、第２の非線形変換回路としては、ビット幅が第１の非線形変換回路のそれよりも大きい非線形変換回路が使用される。ビット幅が大きいほど消費電力の分散も大きくなるため、第１の非線形変換回路よりもビット幅の大きい第２の非線形変換回路を使用することにより、暗号モジュールの消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュールによって生成することができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【００１８】
本発明の第６の態様に係る暗号化装置は、第３の態様に係る暗号化装置において特に、前記第２の非線形変換回路としては、消費電力の分散が前記第１の非線形変換回路のそれよりも大きい回路構成方式の非線形変換回路が使用されることを特徴とするものである。
【００１９】
第６の態様に係る暗号化装置によれば、第２の非線形変換回路としては、消費電力の分散が第１の非線形変換回路のそれよりも大きい回路構成方式の非線形変換回路が使用される。例えば、第１の非線形変換回路としてテーブル方式のＳ−ｂｏｘ回路が使用されている場合に、第２の非線形変換回路として合成体方式のＳ−ｂｏｘ回路が使用される。これにより、暗号モジュールの消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュールによって生成することができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【００２０】
本発明の第７の態様に係る暗号化装置は、第３〜第６のいずれか一つの態様に係る暗号化装置において特に、前記第１のデータ及び前記第２のデータの一方が、初期値として第１段の前記第２の非線形変換回路に入力されることを特徴とするものである。
【００２１】
第７の態様に係る暗号化装置によれば、第１のデータ及び第２のデータの一方が、初期値として第１段の第２の非線形変換回路に入力される。第１のデータ及び第２のデータはエントロピが担保された変動値であるため、第１のデータ及び第２のデータの一方を第１段の第２の非線形変換回路に入力することにより、エントロピが担保された初期値を用いて第２の非線形変換回路を動作させることが可能となる。しかも、エントロピが担保された初期値を生成する目的で擬似乱数生成器等の演算器を別途に用意する必要がないため、回路構成の簡略化を図ることができる。
【００２２】
本発明の第８の態様に係る暗号化装置は、第３〜第６のいずれか一つの態様に係る暗号化装置において特に、所定の固定値及び不定値の一方が、初期値として第１段の前記第２の非線形変換回路に入力されることを特徴とするものである。
【００２３】
第８の態様に係る暗号化装置によれば、所定の固定値及び不定値の一方が、初期値として第１段の第２の非線形変換回路に入力される。従って、第１のデータ又は第２のデータを初期値として第１段の第２の非線形変換回路に入力する構成と比較すると、第１のデータ又は第２のデータを第１段の第２の非線形変換回路に入力するための配線等が不要となるため、装置構成を簡略化することが可能となる。
【００２４】
本発明の第９の態様に係る暗号化装置は、第３〜第８のいずれか一つの態様に係る暗号化装置において特に、前記ノイズ生成モジュールは、前記第１の非線形変換回路の動作に同期して前記第２の非線形変換回路を動作させるための同期制御回路をさらに有することを特徴とするものである。
【００２５】
第９の態様に係る暗号化装置によれば、ノイズ生成モジュールは、第１の非線形変換回路の動作に同期して第２の非線形変換回路を動作させるための同期制御回路を有する。これにより、暗号モジュールの消費電力の遷移タイミングと、ノイズ生成モジュールが生成する消費電力ノイズの遷移タイミングとが同期するため、暗号モジュールの消費電力特性を消費電力ノイズによってより効果的に隠蔽することが可能となる。
【００２６】
本発明の第１０の態様に係る暗号化装置は、第３〜第９のいずれか一つの態様に係る暗号化装置において特に、前記ノイズ生成モジュールは、実装されている全ての前記第２の非線形変換回路のうち、動作させる前記第２の非線形変換回路の段数を選択するための選択回路をさらに有することを特徴とするものである。
【００２７】
第１０の態様に係る暗号化装置によれば、ノイズ生成モジュールは、実装されている全ての第２の非線形変換回路のうち、動作させる第２の非線形変換回路の段数を選択するための選択回路を有する。従って、高い隠蔽効果が要求される場合には、動作させる第２の非線形変換回路の段数を多く設定することにより、ノイズ生成モジュールが生成する消費電力ノイズの分散を大きくすることができる。一方、高い隠蔽効果が要求されない場合には、動作させる第２の非線形変換回路の段数を少なく設定することにより、暗号化装置全体の消費電力量を低減することが可能となる。
【００２８】
本発明の第１１の態様に係る暗号化装置は、第１の態様に係る暗号化装置において特に、前記第１の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第１の非線形変換回路を有し、前記第２の非線形変換処理部は、ソフトウェア処理によって非線形変換処理を実行する、少なくとも一つのデータ処理部を有することを特徴とするものである。
【００２９】
第１１の態様に係る暗号化装置によれば、第２の非線形変換処理部は、ソフトウェア処理によって非線形変換処理を行う、少なくとも一つのデータ処理部を有する。データ処理部によるソフトウェア処理によって非線形変換処理を行うことにより、ハードウェアとして構成された非線形変換回路を実装する必要がなく、ファームウェアのバージョンアップ等によって同等機能を追加実装できるため、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【００３０】
本発明の第１２の態様に係る暗号化装置は、第１１の態様に係る暗号化装置において特に、前記データ処理部は、ビット幅が前記第１の非線形変換回路のそれと等しい非線形変換処理を実行することを特徴とするものである。
【００３１】
第１２の態様に係る暗号化装置によれば、データ処理部は、ビット幅が前記第１の非線形変換回路のそれと等しい非線形変換処理を実行する。第１の非線形変換回路とデータ処理部とでビット幅を共通にすることにより、データ処理部の消費電力ノイズの特性を、第１の非線形変換回路の消費電力特性に近似させることができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【００３２】
本発明の第１３の態様に係る暗号化装置は、第１１の態様に係る暗号化装置において特に、前記データ処理部は、ビット幅が前記第１の非線形変換回路のそれよりも大きい非線形変換処理を実行することを特徴とするものである。
【００３３】
第１３の態様に係る暗号化装置によれば、データ処理部は、ビット幅が前記第１の非線形変換回路のそれよりも大きい非線形変換処理を実行する。ビット幅が大きいほど消費電力の分散も大きくなるため、第１の非線形変換回路よりもビット幅の大きい非線形変換処理をデータ処理部が実行することにより、暗号モジュールの消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュールによって生成することができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【００３４】
本発明の第１４の態様に係る暗号化装置は、第１１〜第１３のいずれか一つの態様に係る暗号化装置において特に、前記第１のデータ及び前記第２のデータの一方が、初期値として前記データ処理部に入力されることを特徴とするものである。
【００３５】
第１４の態様に係る暗号化装置によれば、第１のデータ及び第２のデータの一方が、初期値としてデータ処理部に入力される。第１のデータ及び第２のデータはエントロピが担保された変動値であるため、第１のデータ及び第２のデータの一方をデータ処理部に入力することにより、データ処理部はエントロピが担保された初期値を用いて非線形変換処理を実行できる。しかも、エントロピが担保された初期値を生成する目的で擬似乱数生成器等の演算器を別途に用意する必要がないため、回路構成の簡略化を図ることができる。
【００３６】
本発明の第１５の態様に係る暗号化装置は、第１１〜第１３のいずれか一つの態様に係る暗号化装置において特に、所定の固定値が、初期値として前記データ処理部に入力されることを特徴とするものである。
【００３７】
第１５の態様に係る暗号化装置によれば、所定の固定値が、初期値としてデータ処理部に入力される。従って、第１のデータ又は第２のデータを初期値としてデータ処理部に入力する構成と比較すると、設計を容易化できるとともに、ソフトウェア実装の負荷を軽減することが可能となる。
【００３８】
本発明の第１６の態様に係る暗号化装置は、第１１〜第１５のいずれか一つの態様に係る暗号化装置において特に、前記第２の非線形変換処理部は複数の前記データ処理部を有し、複数の前記データ処理部のうち非稼働状態である少なくとも一つのデータ処理部が、非線形変換処理を実行することを特徴とするものである。
【００３９】
第１６の態様に係る暗号化装置によれば、第２の非線形変換処理部は複数のデータ処理部を有し、複数のデータ処理部のうち非稼働状態である少なくとも一つのデータ処理部が、非線形変換処理を実行する。第２の非線形変換処理部が複数のデータ処理部を有する場合において、非稼働状態であるデータ処理部に非線形変換処理を実行させることにより、既存リソースの有効活用を図ることができる。
【００４０】
本発明の第１７の態様に係る暗号化装置は、入力された第１のデータをハードウェア処理によって暗号化することにより第２のデータを出力する、暗号モジュールと、前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズをソフトウェア処理によって生成する、ノイズ生成モジュールと、を備えることを特徴とするものである。
【００４１】
第１７の態様に係る暗号化装置によれば、ノイズ生成モジュールは、暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズを生成する。従って、ノイズ生成モジュールが生成した消費電力ノイズによって、暗号モジュールの消費電力特性を隠蔽することが可能となる。しかも、ノイズ生成モジュールを追加実装するだけでよく、暗号モジュールの暗号アルゴリズム自体は何ら変更する必要がないため、暗号モジュールの再設計に伴う設計の複雑化やコストの増大等を回避できる。その結果、ＤＰＡ攻撃やＣＰＡ攻撃に対する対策を、容易にかつ低コストで実装することが可能となる。さらに、ノイズ生成モジュールは、ソフトウェア処理によって消費電力ノイズを生成する。従って、ノイズ生成モジュールをハードウェアとして追加実装する必要がなく、ファームウェアのバージョンアップ等によって同等機能を追加実装できるため、ＤＰＡ攻撃やＣＰＡ攻撃に対する対策を、容易にかつ低コストで実装することが可能となる。
【００４２】
本発明の第１８の態様に係る暗号化装置は、第１７の態様に係る暗号化装置において特に、前記暗号モジュールは、自身への入力データに対してハードウェア処理によって非線形変換処理を行う非線形変換回路を有し、前記ノイズ生成モジュールは、前記非線形変換回路の動作期間において、自身への入力データに対してソフトウェア処理によって非線形変換処理を実行するデータ処理部を有することを特徴とするものである。
【００４３】
第１８の態様に係る暗号化装置によれば、ノイズ生成モジュールは、非線形変換回路の動作期間において、自身への入力データに対してソフトウェア処理によって非線形変換処理を実行するデータ処理部を有する。一般的な擬似乱数生成器等に比べて非線形変換処理は消費電力の分散が大きいため、非線形変換回路の動作期間においてデータ処理部が非線形変換処理を実行することにより、分散の大きい消費電力ノイズをノイズ生成モジュールによって生成することができる。従って、この分散の大きい消費電力ノイズによって、暗号モジュールの消費電力特性を効果的に隠蔽することが可能となる。
【００４４】
本発明の第１９の態様に係るメモリ装置は、ホスト装置に接続されるメモリ装置であって、コンテンツデータが格納されたメモリアレイと、前記ホスト装置に送信するコンテンツデータを暗号化するための、第１〜第１８のいずれか一つの態様に係る暗号化装置と、を備えることを特徴とするものである。
【００４５】
第１９の態様に係るメモリ装置によれば、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置に実装することが可能となる。
【００４６】
本発明の第２０の態様に係るホスト装置は、メモリ装置が接続されるホスト装置であって、前記メモリ装置に対するコマンドを発行する制御部と、前記メモリ装置に送信するコマンドを暗号化するための、第１〜第１８のいずれか一つの態様に係る暗号化装置と、を備えることを特徴とするものである。
【００４７】
第２０の態様に係るホスト装置によれば、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストでホスト装置に実装することが可能となる。
【００４８】
本発明の第２１の態様に係るメモリシステムは、第１９の態様に係るメモリ装置と、第２０の態様に係るホスト装置と、を備えることを特徴とするものである。
【００４９】
第２１の態様に係るメモリシステムによれば、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置及びホスト装置に実装することが可能となる。
【発明の効果】
【００５０】
本発明によれば、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を容易にかつ低コストで実装することが可能となる。
【図面の簡単な説明】
【００５１】
【図１】本発明の実施の形態に係るメモリシステムの構成を示す図である。
【図２】メモリ装置の暗号ブロックの構成を示す図である。
【図３】メモリ装置の暗号ブロックの変形例を示す図である。
【図４】ＡＥＳ暗号回路の標準的な回路構成を簡略化して示す図である。
【図５】図２に示したノイズ生成モジュールの回路構成を示す図である。
【図６】変形例１に係る暗号ブロックの第１の構成例を示す図である。
【図７】図６に示したノイズ生成モジュールの回路構成を示す図である。
【図８】変形例１に係る暗号ブロックの第２の構成例を示す図である。
【図９】図８に示したノイズ生成モジュールの回路構成を示す図である。
【図１０】図９に示した構成を基礎として、ノイズ生成モジュールの回路構成を示す図である。
【図１１】ホスト装置の暗号ブロックの構成を示す図である。
【図１２】ホスト装置の構成を簡略化して示す図である。
【発明を実施するための形態】
【００５２】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００５３】
図１は、本発明の実施の形態に係るメモリシステム１の構成を簡略化して示す図である。図１に示すようにメモリシステム１は、ホスト装置２と、ホスト装置２に着脱自在に接続される半導体メモリ等のメモリ装置３とを備えて構成されている。
【００５４】
ホスト装置２は、ＣＰＵ１１、内部メモリ１２、主制御回路１３、及び暗号ブロック１４を有している。メモリ装置３は、暗号ブロック１４と同様の暗号ブロック２１と、コンテンツデータ等の任意のデータが格納されたメモリアレイ２２とを有している。暗号ブロック１４，２１は、ホスト装置２とメモリ装置３との間で送受信されるコマンドやコンテンツデータに対して、暗号化処理及び復号化処理を実行する。
【００５５】
図２は、メモリ装置３の暗号ブロック２１の構成を示す図である。図２に示すように暗号ブロック２１は、いずれもハードウェアとして構成された暗号モジュール３１及びノイズ生成モジュール３２を有している。暗号モジュール３１及びノイズ生成モジュール３２は、同一のＩＣチップ内に形成されている。暗号モジュール３１及びノイズ生成モジュール３２には、入力データＤ１、動作クロックＣ、及びリセット信号Ｒが入力される。なお、図３の変形例に示すように、暗号モジュール３１への入力データＤ１に代えて暗号モジュール３１からの出力データＤ２をノイズ生成モジュール３２に入力してもよい。
【００５６】
暗号モジュール３１は、メモリアレイ２２から読み出したコンテンツデータをホスト装置２に送信する際には、平文である入力データＤ１（コンテンツデータ）を暗号化することによって、暗号文である出力データＤ２を出力する。また、暗号モジュール３１は、暗号化されたコマンドをホスト装置２から受信した際には、暗号文である入力データＤ１（暗号化コマンド）を復号化することによって、平文である出力データＤ２を出力する。本実施の形態の例において、暗号モジュール３１の暗号アルゴリズムとしては、ＡＥＳ（Advanced Encryption Standard）が使用される。サイドチャネル攻撃では暗号モジュール３１の消費電力が解析対象であるため、ノイズ生成モジュール３２は、暗号モジュール３１の消費電力特性を隠蔽するための消費電力ノイズを生成する。
【００５７】
図４は、ＡＥＳ暗号回路の標準的な回路構成を簡略化して示す図である。図４に示すようにＡＥＳの暗号アルゴリズムでは、所定ビット数の入力データＤＩに対して、４つの基本演算（ShiftRows/SubBytes/MixColumns/AddRoundKey）が所定ラウンド数だけ繰り返し適用されることにより、出力データＤＯが得られる。SubBytesの演算回路は、自身への入力データに対してＳ−ｂｏｘと呼ばれる非線形の変換処理を行うための非線形変換回路（以下「Ｓ−ｂｏｘ回路」）を有している。Ｓ−ｂｏｘ回路の代表的な回路構成方式としては、逆元演算及びアフィン変換の結果を真理値表で実現する方式であるテーブル方式と、個別に構成した逆元演算回路及びアフィン変換回路を直列に接続する方式である合成体方式とがある。テーブル方式のＳ−ｂｏｘ回路を使用した場合には、消費電力の分散が比較的小さいためにサイドチャネル攻撃に対する耐性（耐タンパ性）は高いが、多くのリソースが必要となる。一方、合成体方式のＳ−ｂｏｘ回路を使用した場合には、リソースは少なくてすむが、消費電力の分散が比較的大きいために耐タンパ性は低い。本実施の形態の例では、リソース節約のために暗号モジュール３１には合成体方式のＳ−ｂｏｘ回路が使用される。また、ＡＥＳでは、Ｓ−ｂｏｘ回路のビット幅は８ビットである。
【００５８】
図５は、図２に示したノイズ生成モジュール３２の回路構成を示す図である。図５の接続関係で示すように、ノイズ生成モジュール３２は、選択回路としてのセレクタ５１と、直列に接続された複数（この例では４段）のＳ−ｂｏｘ回路４１〜４４と、同期制御回路としてのフリップフロップ６１とを備えて構成されている。なお、Ｓ−ｂｏｘ回路の段数は１段以上であればよく、所望の耐タンパ性に応じて必要な段数を設定すればよい。Ｓ−ｂｏｘ回路の段数が多くなればなるほど、耐タンパ性は高くなる。
【００５９】
セレクタ５１の第１入力端子には、入力データＤ１が入力される。また、フリップフロップ６１の出力端子がセレクタ５１の第２入力端子に接続されることにより、最終段のＳ−ｂｏｘ回路４４の出力が初段のＳ−ｂｏｘ回路４１の入力にフィードバックされている。Ｓ−ｂｏｘ回路４２〜４４には、前段のＳ−ｂｏｘ回路４１〜４３からの出力データが入力される。Ｓ−ｂｏｘ回路４１〜４４は、自身への入力データに対して非線形変換処理を行う。本実施の形態の例において、Ｓ−ｂｏｘ回路４１〜４４には、暗号モジュール３１と同様に、ビット幅が８ビットで回路構成方式が合成体方式のＳ−ｂｏｘ回路が使用される。
【００６０】
図２，５を参照して、暗号モジュール３１及びノイズ生成モジュール３２には、共通のリセット信号Ｒが入力される。リセット信号Ｒがアサートされることにより、暗号モジュール３１及びノイズ生成モジュール３２は動作を開始する。また、リセット信号Ｒがネゲートされることにより、暗号モジュール３１及びノイズ生成モジュール３２は動作を停止する。暗号モジュール３１は、動作クロックＣに同期して、入力データＤ１に対する暗号化処理又は復号化処理を実行する。
【００６１】
図５を参照して、入力データＤ１はセレクタ５１の第１入力端子に入力される。ノイズ生成モジュール３２の動作開始時にはセレクタ５１が第１入力端子を選択することにより、入力データＤ１は初期値として初段のＳ−ｂｏｘ回路４１に入力される。その後はセレクタ５１が第２入力端子を選択することにより、最終段のＳ−ｂｏｘ回路４４の出力が、ラッチ回路であるフリップフロップ６１を介して初段のＳ−ｂｏｘ回路４１に入力される。また、動作クロックＣはフリップフロップ６１に入力され、フリップフロップ６１が動作クロックＣに同期してラッチ動作を行うことにより、Ｓ−ｂｏｘ回路４１〜４４も動作クロックＣに同期して動作する。同じ動作クロックＣが暗号モジュール３１にも入力されているため、暗号モジュール３１内のＳ−ｂｏｘ回路とノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４とが同期して動作する。
【００６２】
なお、本実施の形態の例において、ホスト装置２の暗号ブロック１４の構成は、メモリ装置３の暗号ブロック２１の構成と同様である。ＣＰＵ１１がメモリ装置３に対するコマンド（リードコマンド及びライトコマンド等）を発行すると、そのコマンドは主制御回路１３を介して暗号ブロック１４に入力される。暗号ブロック１４は、平文であるコマンドを暗号化することによって、暗号化コマンドを生成する。暗号化コマンドは、ホスト装置２からメモリ装置３に送信される。暗号化されたコンテンツデータをホスト装置２がメモリ装置３から受信すると、その暗号化コンテンツデータは暗号ブロック１４に入力される。暗号ブロック１４は、暗号化コンテンツデータを復号化する。復号化によって得られた平文のコンテンツデータは、主制御回路１３を介してＣＰＵ１１に入力される。
【００６３】
このように本実施の形態に係る暗号ブロック２１，１４（暗号化装置）によれば、ノイズ生成モジュール３２は、暗号モジュール３１内のＳ−ｂｏｘ回路（第１の非線形変換回路）の動作期間において、自身への入力データに対して非線形変換処理を行う、少なくとも一つのＳ−ｂｏｘ回路４１〜４４（第２の非線形変換回路）を有する。一般的な擬似乱数生成器等に比べてＳ−ｂｏｘ回路は消費電力の分散が大きいため、暗号モジュール３１内のＳ−ｂｏｘ回路の動作期間においてＳ−ｂｏｘ回路４１〜４４を動作させることにより、分散の大きい消費電力ノイズをノイズ生成モジュール３２によって生成することができる。従って、この分散の大きい消費電力ノイズによって、暗号モジュール３１の消費電力特性を効果的に隠蔽することが可能となる。しかも、ノイズ生成モジュール３２を追加実装するだけでよく、暗号モジュール３１の暗号アルゴリズム自体は何ら変更する必要がないため、暗号モジュール３１の再設計に伴う設計の複雑化やコストの増大等を回避できる。その結果、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【００６４】
また、本実施の形態に係る暗号ブロック２１，１４によれば、ノイズ生成モジュール３２は、直列に接続された複数のＳ−ｂｏｘ回路４１〜４４を有する。複数のＳ−ｂｏｘ回路４１〜４４を直列に接続することによって、ノイズ生成モジュール３２が生成する消費電力ノイズの分散をさらに大きくできるため、暗号モジュール３１の消費電力特性をより効果的に隠蔽することが可能となる。
【００６５】
また、本実施の形態に係る暗号ブロック２１，１４によれば、Ｓ−ｂｏｘ回路４１〜４４としては、ビット幅及び回路構成方式が暗号モジュール３１内のＳ−ｂｏｘ回路のそれと等しいＳ−ｂｏｘ回路が使用される。暗号モジュール３１内のＳ−ｂｏｘ回路とノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４とでビット幅及び回路構成方式を共通にすることにより、Ｓ−ｂｏｘ回路４１〜４４の消費電力ノイズの特性を、暗号モジュール３１内のＳ−ｂｏｘ回路の消費電力特性に近似させることができる。その結果、ノイズ生成モジュール３２が生成する消費電力ノイズによって、暗号モジュール３１の消費電力特性をより効果的に隠蔽することが可能となる。
【００６６】
また、本実施の形態に係る暗号ブロック２１，１４によれば、暗号モジュール３１への入力データＤ１（第１のデータ）又は暗号モジュール３１からの出力データＤ２（第２のデータ）が、初期値として初段のＳ−ｂｏｘ回路４１に入力される。入力データＤ１及び出力データＤ２はエントロピが担保された変動値であるため、入力データＤ１又は出力データＤ２を初段のＳ−ｂｏｘ回路４１に入力することにより、エントロピが担保された初期値を用いてＳ−ｂｏｘ回路４１〜４４を動作させることが可能となる。しかも、エントロピが担保された初期値を生成する目的で擬似乱数生成器等の演算器を別途に用意する必要がないため、回路構成の簡略化を図ることができる。
【００６７】
また、本実施の形態に係る暗号ブロック２１，１４によれば、ノイズ生成モジュール３２は、暗号モジュール３１内のＳ−ｂｏｘ回路の動作に同期してＳ−ｂｏｘ回路４１〜４４を動作させるためのフリップフロップ６１（同期制御回路）を有する。これにより、暗号モジュール３１の消費電力の遷移タイミングと、ノイズ生成モジュール３２が生成する消費電力ノイズの遷移タイミングとが同期するため、暗号モジュール３１の消費電力特性を消費電力ノイズによってより効果的に隠蔽することが可能となる。
【００６８】
また、本実施の形態に係る暗号ブロック２１によれば、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置３に実装することが可能となる。
【００６９】
また、本実施の形態に係る暗号ブロック１４によれば、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストでホスト装置２に実装することが可能となる。
【００７０】
また、本実施の形態に係るメモリシステム１によれば、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置３及びホスト装置２に実装することが可能となる。
【００７１】
以下、上記実施の形態で説明した構成に対する様々な変形例について説明する。以下に述べる各変形例は、任意に組み合わせて適用することができる。
【００７２】
＜変形例１＞
図６は、変形例１に係る暗号ブロック２１の第１の構成例を示す図である。図２，３に示した構成と比較して、ノイズ生成モジュール３２への入力データＤ１又は出力データＤ２の入力が省略されている。
【００７３】
図７は、図６に示したノイズ生成モジュール３２の回路構成を示す図である。図５に示した構成と比較してセレクタ５１が省略されており、フリップフロップ６１の出力が初段のＳ−ｂｏｘ回路４１の入力に直接接続されている。
【００７４】
リセット信号Ｒがアサートされると、フリップフロップ６１が保持している所定の固定値が、初期値として初段のＳ−ｂｏｘ回路４１に入力される。
【００７５】
図８は、変形例１に係る暗号ブロック２１の第２の構成例を示す図である。図２，３に示した構成と比較して、ノイズ生成モジュール３２への入力データＤ１又は出力データＤ２及びリセット信号Ｒの入力が省略されている。
【００７６】
図９は、図８に示したノイズ生成モジュール３２の回路構成を示す図である。図５に示した構成と比較してセレクタ５１が省略されており、フリップフロップ６１の出力が初段のＳ−ｂｏｘ回路４１の入力に直接接続されている。また、フリップフロップ６１へのリセット信号Ｒの入力が省略されている。
【００７７】
メモリ装置３がホスト装置２に接続されることによってメモリ装置３に電源が投入されると、フリップフロップ６１から出力された不定値が、初期値として初段のＳ−ｂｏｘ回路４１に入力される。
【００７８】
本変形例に係る暗号ブロック２１，１４によれば、所定の固定値又は不定値が、初期値として初段のＳ−ｂｏｘ回路４１に入力される。従って、入力データＤ１又は出力データＤ２を初期値として初段のＳ−ｂｏｘ回路４１に入力する構成（図２，３，５）と比較すると、入力データＤ１又は出力データＤ２をＳ−ｂｏｘ回路４１に入力するための配線やセレクタ５１が不要となるため、装置構成を簡略化することが可能となる。
【００７９】
＜変形例２＞
図１０は、図９に示した構成を基礎として、ノイズ生成モジュール３２の回路構成を示す図である。図９に示した構成と比較して、セレクタ７１〜７４が追加されている。セレクタ７１〜７３の各第１入力端子には、Ｓ−ｂｏｘ回路４１〜４３からの出力が、それぞれ入力される。セレクタ７１〜７３の各第２入力端子には、所定の固定値Ｖ０（例えば００ｈ）が入力される。セレクタ７４の第１〜第４入力端子には、Ｓ−ｂｏｘ回路４１〜４４からの出力が、それぞれ入力される。ノイズ生成モジュール３２では、選択信号Ｓによってセレクタ７１〜７４を切り替えることにより、直列接続体を構成するＳ−ｂｏｘ回路４１〜４４の有効段数が可変に設定される。
【００８０】
以下、有効段数を２段に設定する場合を例にとり説明する。この場合、選択信号Ｓによって、セレクタ７１，７３は第１入力端子を選択し、セレクタ７２，７４は第２入力端子を選択する。セレクタ７１が第１入力端子を選択し、セレクタ７４が第２入力端子を選択することにより、Ｓ−ｂｏｘ回路４１→セレクタ７１→Ｓ−ｂｏｘ回路４２→セレクタ７４→フリップフロップ６１→Ｓ−ｂｏｘ回路４１という、２段のＳ−ｂｏｘ回路４１，４２を含むフィードバックループが構成される。一方、セレクタ７２が第２入力端子を選択することにより、Ｓ−ｂｏｘ回路４３には固定値Ｖ０が入力され続ける。従って、Ｓ−ｂｏｘ回路４３の出力も固定値となり、当該固定値がＳ−ｂｏｘ回路４３からセレクタ７３を介してＳ−ｂｏｘ回路４４に入力され続ける。その結果、Ｓ−ｂｏｘ回路４３，４４は発振せず、発振動作に伴う電力消費が回避される。
【００８１】
本変形例に係る暗号ブロック２１，１４によれば、ノイズ生成モジュール３２は、実装されている全てのＳ−ｂｏｘ回路４１〜４４のうち、動作させるＳ−ｂｏｘ回路の段数を選択するためのセレクタ７１〜７４（選択回路）を有する。従って、高い隠蔽効果が要求される場合には、動作させるＳ−ｂｏｘ回路の段数を多く設定することにより、ノイズ生成モジュール３２が生成する消費電力ノイズの分散を大きくすることができる。一方、高い隠蔽効果が要求されない場合には、動作させるＳ−ｂｏｘ回路の段数を少なく設定することにより、暗号ブロック２１，１４全体の消費電力量を低減することが可能となる。
【００８２】
＜変形例３＞
上記実施の形態の例では、暗号モジュール３１内のＳ−ｂｏｘ回路とノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４とで、ビット幅を互いに共通（いずれも８ビット）としたが、両者のビット幅を異ならせてもよい。
【００８３】
ＡＥＳではＳ−ｂｏｘのビット幅は８ビットであり、ＭｉｎａｌｐｈｅｒではＳ−ｂｏｘのビット幅は４ビットである。従って、暗号モジュール３１の暗号アルゴリズムとしてＭｉｎａｌｐｈｅｒを採用し、ノイズ生成モジュール３２の暗号アルゴリズムとしてＡＥＳを採用する。これにより、ノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４のビット幅は、暗号モジュール３１内のＳ−ｂｏｘ回路のビット幅より大きくなる。
【００８４】
本変形例に係る暗号ブロック２１，１４によれば、ノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４としては、ビット幅が暗号モジュール３１内のＳ−ｂｏｘ回路よりも大きいＳ−ｂｏｘ回路が使用される。ビット幅が大きいほど消費電力の分散も大きくなるため、暗号モジュール３１内のＳ−ｂｏｘ回路よりもビット幅の大きいＳ−ｂｏｘ回路４１〜４４を使用することにより、暗号モジュール３１の消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュール３２によって生成することができる。その結果、ノイズ生成モジュール３２が生成する消費電力ノイズによって、暗号モジュール３１の消費電力特性をより効果的に隠蔽することが可能となる。
【００８５】
＜変形例４＞
上記実施の形態の例では、暗号モジュール３１内のＳ−ｂｏｘ回路とノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４とで、回路構成方式を互いに共通（いずれも合成体方式）としたが、両者の回路構成方式を異ならせてもよい。
【００８６】
例えば、暗号モジュール３１内のＳ−ｂｏｘ回路には、消費電力の分散が比較的小さいテーブル方式のＳ−ｂｏｘ回路を採用し、ノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４には、消費電力の分散が比較的大きい合成体方式のＳ−ｂｏｘ回路を採用する。テーブル方式のＳ−ｂｏｘ回路には多くのリソースが必要となるが、メモリ装置３に比べてホスト装置２のリソースは潤沢であるため、ホスト装置２内の暗号ブロック１４に関しては本変形例の適用は容易である。また、メモリ装置３が潤沢なリソースを有している場合には、メモリ装置３内の暗号ブロック２１に関して本変形例を適用してもよい。
【００８７】
本変形例に係る暗号ブロック２１，１４によれば、ノイズ生成モジュール３２内のＳ−ｂｏｘ回路４１〜４４としては、消費電力の分散が暗号モジュール３１内のＳ−ｂｏｘ回路よりも大きい回路構成方式のＳ−ｂｏｘ回路が使用される。これにより、暗号モジュール３１の消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュール３２によって生成することができる。その結果、ノイズ生成モジュール３２が生成する消費電力ノイズによって、暗号モジュール３１の消費電力特性をより効果的に隠蔽することが可能となる。
【００８８】
＜変形例５＞
上記実施の形態の例では、暗号モジュール３１及びノイズ生成モジュール３２をいずれもハードウェアとして構成したが、暗号モジュール３１と同様の処理をソフトウェア処理によって実行してもよい。
【００８９】
図１１は、ホスト装置２の暗号ブロック１４の構成を示す図である。図１１に示すように暗号ブロック１４は、バスを介して相互に接続された、ＣＰＵ８１、メモリ８２、バッファ８３、及びノイズ生成モジュール３２を備えて構成されている。ＣＰＵ８１は、処理対象のデータをメモリ８２から読み出して処理し、その処理結果をバッファ８３に格納することにより、ハードウェア構成の暗号モジュール３１と同様の暗号化処理及び復号化処理を実行する。なお、メモリ装置３にＣＰＵを搭載できる場合には、メモリ装置３内の暗号ブロック２１に関して本変形例を適用してもよい。
【００９０】
＜変形例６＞
上記実施の形態の例では、暗号モジュール３１及びノイズ生成モジュール３２をいずれもハードウェアとして構成したが、ノイズ生成モジュール３２と同様の処理をソフトウェア処理によって実行してもよい。
【００９１】
図１２は、ホスト装置２の構成を簡略化して示す図である。図１２に示すようにホスト装置２は、複数のコア１１Ａ〜１１Ｄを有するマルチコア構成のＣＰＵ１１と、プログラム９０が格納された内部メモリ１２と、ハードウェアとして構成された暗号モジュール３１と、メモリコントローラ等の主制御回路１３とを備えている。ＣＰＵ１１、内部メモリ１２、暗号モジュール３１、及び主制御回路１３は、バスを介して相互に接続されている。ＣＰＵ１１は、内部メモリ１２からプログラム９０を読み出して実行することにより、ノイズ生成モジュールとして機能する。なお、ＣＰＵに代えて、ＧＰＵ又はＤＳＰ等の他のソフトウェア処理装置を用いてもよい。
【００９２】
以下、本変形例に係るホスト装置２の動作について説明する。まず、メモリ装置３から読み出された暗号化データＤ１００が主制御回路１３に入力される。
【００９３】
次に主制御回路１３は、所定サイズ分の暗号化データＤ１００Ａの入力が完了すると、その旨の通知信号Ｄ５０をＣＰＵ１１に入力する。
【００９４】
次にコア１１Ａは、通知信号Ｄ５０を受領すると、主制御回路１３から暗号化データＤ１００Ａを取得する。そして、暗号化データＤ１００Ａの取得が完了した旨の通知信号Ｄ５１を主制御回路１３に入力する。
【００９５】
次に主制御回路１３は、通知信号Ｄ５１を受領すると、暗号化データＤ１００を暗号モジュール３１に入力する。
【００９６】
次にコア１１Ａは、コア１１Ｂ〜１１Ｄの稼働状況を確認することにより、少なくとも一つ（望ましくは複数）の非稼働状態のコアを特定する。この例では、コア１１Ｂ〜１１Ｄはいずれも非稼働状態であったものとする。
【００９７】
次にコア１１Ａは、非稼働状態のコア１１Ｂ〜１１Ｄに対して、暗号化データＤ１００Ａを初期値として非線形変換処理を開始させる。また、コア１１Ａは、暗号モジュール３１に対して暗号化データＤ１００の復号化処理を開始させる。次にコア１１Ａは、自身も暗号化データＤ１００Ａを初期値として非線形変換処理を開始する。コア１１Ａ〜１１Ｄは、非線形変換処理によって得られたデータを次の入力データとして、非線形変換処理を繰り返し実行する。これにより、暗号モジュール３１内のＳ−ｂｏｘ回路による非線形変換処理（ハードウェア処理）と、コア１１Ａ〜１１Ｄによる非線形変換処理（ソフトウェア処理）とが並行して実行される。つまり、コア１１Ａ〜１１Ｄは、暗号モジュール３１の消費電力特性を隠蔽するための消費電力ノイズを生成するノイズ生成モジュールとして機能する。
【００９８】
なお、コア１１Ａ〜１１Ｄによる非線形変換処理のビット幅は、上記実施の形態と同様に暗号モジュール３１内のＳ−ｂｏｘ回路のビット幅と共通であってもよいし、上記変形例３と同様に暗号モジュール３１内のＳ−ｂｏｘ回路のビット幅より大きくてもよい。
【００９９】
また、コア１１Ａ〜１１Ｄによる非線形変換処理の初期値としては、暗号化データＤ１００Ａに代えて、上記変形例１と同様に所定の固定値であってもよい。この場合、設計を容易化できるとともに、ソフトウェア実装の負荷を軽減することが可能となる。また、暗号モジュール３１が暗号化処理を行う場合には、暗号モジュール３１からの出力データの一部を、初期値として用いてもよい。
【０１００】
次に暗号モジュール３１は、暗号化データＤ１００の復号化処理が完了すると、その旨を通知する割込信号Ｄ５２をコア１１Ａに入力する。
【０１０１】
次にコア１１Ａは、割込信号Ｄ５２を受領すると、コア１１Ｂ〜１１Ｄに対して非線形変換処理を終了させるとともに、自身も非線形変換処理を終了する。これにより、コア１１Ａ〜１１Ｄは通常処理に復帰する。
【０１０２】
本変形例に係るホスト装置２によれば、コア１１Ａ〜１１Ｄ（データ処理部）によるソフトウェア処理によって非線形変換処理を行うことにより、ハードウェアとして構成されたＳ−ｂｏｘ回路をホスト装置２に実装する必要がなく、ファームウェアのバージョンアップ等によって同等機能を追加実装できるため、ＤＰＡ攻撃やＣＰＡ攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【０１０３】
また、本変形例に係るホスト装置２によれば、複数のコア１１Ａ〜１１Ｄのうち非稼働状態である少なくとも一つのコア（望ましくは複数のコア）が、非線形変換処理を実行する。非稼働状態であるコアに非線形変換処理を実行させることにより、既存リソースの有効活用を図ることができる。
【０１０４】
なお、以上の説明ではソフトウェア処理によるノイズ生成モジュールをホスト装置２に実装する例について述べたが、メモリ装置３にＣＰＵを搭載できる場合には、メモリ装置３内の暗号ブロック２１に関して本変形例を適用してもよい。
【符号の説明】
【０１０５】
１  メモリシステム
２  ホスト装置
３  メモリ装置
１１  ＣＰＵ
１１Ａ〜１１Ｄ  コア
１４，２１  暗号ブロック
２２  メモリアレイ
３１  暗号モジュール
３２  ノイズ生成モジュール
４１〜４４  Ｓ−ｂｏｘ回路
６１  フリップフロップ
７１〜７４  セレクタ
【図１】
2018060159.tif 000003
【図２】
2018060159.tif 000004
【図３】
2018060159.tif 000005
【図４】
2018060159.tif 000006
【図５】
2018060159.tif 000007
【図６】
2018060159.tif 000008
【図７】
2018060159.tif 000009
【図８】
2018060159.tif 000010
【図９】
2018060159.tif 000011
【図１０】
2018060159.tif 000012
【図１１】
2018060159.tif 000013
【図１２】
2018060159.tif 000014