(57)【特許請求の範囲】
【請求項１】
ホスト装置に接続されるメモリ装置であって、
前記ホスト装置と前記メモリ装置との間で送受信されるデータを暗号化及び復号化するために通常動作を実行する、第１の暗号モジュール及び第２の暗号モジュールと、
前記第１の暗号モジュール及び前記第２の暗号モジュールの動作を制御する制御回路と、
を備え、
前記制御回路は、前記第２の暗号モジュールが通常動作を実行し前記第１の暗号モジュールが通常動作を実行しない第１の期間において、前記第１の暗号モジュールにダミー動作を実行させ、
前記第１の暗号モジュールは、入力データに基づいて一時データを生成する一時データ生成回路を有し、
前記第２の暗号モジュールは、前記一時データ生成回路によって生成された一時データに基づいて暗号処理を実行する暗号処理回路を有し、
前記制御回路は、第１の期間において、ダミーの入力データを前記一時データ生成回路に入力し、
前記制御回路は、
前記一時データ生成回路の状態遷移情報を保持する保持回路を有し、
前記第１の暗号モジュールにダミー動作を実行させる場合には、最新の状態遷移情報を前記保持回路に退避し、
次に前記一時データ生成回路に通常動作を実行させる場合には、前記保持回路が保持している状態遷移情報を前記一時データ生成回路に書き戻す、メモリ装置。
【請求項２】
前記制御回路は、第１の期間とは異なる第２の期間において、前記第１の暗号モジュール及び前記第２の暗号モジュールの双方を同時に通常動作させる、請求項１に記載のメモリ装置。
【請求項３】
前記ダミーの入力データは固定値である、請求項１又は２に記載のメモリ装置。
【請求項４】
前記ダミーの入力データは変動値である、請求項１又は２に記載のメモリ装置。
【請求項５】
前記入力データは鍵情報である、請求項１〜４のいずれか一つに記載のメモリ装置。
【請求項６】
前記ホスト装置からの不正アクセスを検出する不正アクセス検出回路をさらに備え、
前記制御回路は、前記不正アクセス検出回路が不正アクセスを検出した場合に、第１の期間において前記第２の暗号モジュールにダミー動作を実行させる、請求項１〜５のいずれか一つに記載のメモリ装置。
【請求項７】
メモリ装置が接続されるホスト装置であって、
前記ホスト装置と前記メモリ装置との間で送受信されるデータを暗号化及び復号化するために通常動作を実行する、第１の暗号モジュール及び第２の暗号モジュールと、
前記第１の暗号モジュール及び前記第２の暗号モジュールの動作を制御する制御回路と、
を備え、
前記制御回路は、前記第２の暗号モジュールが通常動作を実行し前記第１の暗号モジュールが通常動作を実行しない第１の期間において、前記第１の暗号モジュールにダミー動作を実行させ、
前記第１の暗号モジュールは、入力データに基づいて一時データを生成する一時データ生成回路を有し、
前記第２の暗号モジュールは、前記一時データ生成回路によって生成された一時データに基づいて暗号処理を実行する暗号処理回路を有し、
前記制御回路は、第１の期間において、ダミーの入力データを前記一時データ生成回路に入力し、
前記制御回路は、
前記一時データ生成回路の状態遷移情報を保持する保持回路を有し、
前記第１の暗号モジュールにダミー動作を実行させる場合には、最新の状態遷移情報を前記保持回路に退避し、
次に前記一時データ生成回路に通常動作を実行させる場合には、前記保持回路が保持している状態遷移情報を前記一時データ生成回路に書き戻す、ホスト装置。
【請求項８】
前記制御回路は、第１の期間とは異なる第２の期間において、前記第１の暗号モジュール及び前記第２の暗号モジュールの双方を同時に通常動作させる、請求項７に記載のホスト装置。
【請求項９】
前記ダミーの入力データは固定値である、請求項７又は８に記載のホスト装置。
【請求項１０】
前記ダミーの入力データは変動値である、請求項７又は８に記載のホスト装置。
【請求項１１】
前記入力データは鍵情報である、請求項７〜１０のいずれか一つに記載のホスト装置。
【請求項１２】
請求項１〜６のいずれか一つに記載のメモリ装置と、
請求項７〜１１のいずれか一つに記載のホスト装置と、
を備える、メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ装置、ホスト装置、及びそれらを備えるメモリシステムに関する。
【背景技術】
【０００２】
ホスト装置とそれに接続されるメモリ装置とを備えるメモリシステムにおいて、両装置間で送受信されるコマンドやデータを暗号化することによってセキュリティ性を向上させたメモリシステムが実用化されている。
【０００３】
現在使用されている暗号方式は、暗号学的な解析手法に対して計算量的に安全であるとされている。しかし、実際にメモリシステムに暗号モジュールを実装する場合には、消費電力や処理時間のような、実装に依存したリークが発生する。そのような動作状況を様々な物理的手段で観察することにより、秘密鍵等の秘密情報を不正に取得しようとするサイドチャネル攻撃の脅威が増している。
【０００４】
サイドチャネル攻撃の一つとして、装置の消費電力を測定することによって秘密情報を解析する電力解析攻撃がある。その中でも、測定した複数の消費電力波形に対して統計処理による解析を行う差分電力解析（ＤＰＡ：Differential 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＞
【非特許文献２】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＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、ホスト装置とメモリ装置とを備えるメモリシステムにおいて、上述したＲＳＬ回路又はＷＤＤＬ回路を装置に実装する場合には、これらの回路を実装しない装置と比較して、演算時間、回路規模、及び消費電力が２〜３倍以上に増大するため、コストが増大する。
【０００８】
本発明はかかる事情に鑑みて成されたものであり、ＤＰＡ攻撃に対する対策を低コストで実装することが可能な、メモリ装置、ホスト装置、及びそれらを備えるメモリシステムを得ることを目的とするものである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係るメモリ装置は、ホスト装置に接続されるメモリ装置であって、前記ホスト装置と前記メモリ装置との間で送受信されるデータを暗号化及び復号化するために通常動作を実行する、第１の暗号モジュール及び第２の暗号モジュールと、前記第１の暗号モジュール及び前記第２の暗号モジュールの動作を制御する制御回路と、を備え、前記制御回路は、前記第２の暗号モジュールが通常動作を実行し前記第１の暗号モジュールが通常動作を実行しない第１の期間において、前記第１の暗号モジュールにダミー動作を実行させ、前記第１の暗号モジュールは、入力データに基づいて一時データを生成する一時データ生成回路を有し、前記第２の暗号モジュールは、前記一時データ生成回路によって生成された一時データに基づいて暗号処理を実行する暗号処理回路を有し、前記制御回路は、第１の期間において、ダミーの入力データを前記一時データ生成回路に入力し、前記制御回路は、前記一時データ生成回路の状態遷移情報を保持する保持回路を有し、前記第１の暗号モジュールにダミー動作を実行させる場合には、最新の状態遷移情報を前記保持回路に退避し、次に前記一時データ生成回路に通常動作を実行させる場合には、前記保持回路が保持している状態遷移情報を前記一時データ生成回路に書き戻すことを特徴とするものである。
【００１０】
第１の態様に係るメモリ装置によれば、制御回路は、第２の暗号モジュールが通常動作を実行し第１の暗号モジュールが通常動作を実行しない第１の期間において、第１の暗号モジュールにダミー動作を実行させる。このように、第２の暗号モジュールのみが通常動作を実行する第１の期間において第１の暗号モジュールをダミー動作させることにより、第２の暗号モジュールが具有する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
また、第１の態様に係るメモリ装置によれば、制御回路は、第１の期間において、ダミーの入力データを一時データ生成回路に入力する。このように、ダミーの入力データを一時データ生成回路に入力することにより、一時データ生成回路にダミーの一時データを生成するダミー動作を実行させることが可能となる。
また、第１の態様に係るメモリ装置によれば、制御回路は、第１の暗号モジュールにダミー動作を実行させる場合には、一時データ生成回路の最新の状態遷移情報を保持回路に退避し、次に一時データ生成回路に通常動作を実行させる場合には、保持回路が保持している状態遷移情報を一時データ生成回路に書き戻す。これにより、一時データ生成回路はダミー動作後の通常動作において一時データを齟齬なく生成することが可能となる。
【００１１】
本発明の第２の態様に係るメモリ装置は、第１の態様に係るメモリ装置において特に、前記制御回路は、第１の期間とは異なる第２の期間において、前記第１の暗号モジュール及び前記第２の暗号モジュールの双方を同時に通常動作させることを特徴とするものである。
【００１２】
第２の態様に係るメモリ装置によれば、制御回路は、第２の期間において、第１の暗号モジュール及び第２の暗号モジュールの双方を同時に通常動作させる。このように、第１の暗号モジュール及び第２の暗号モジュールの双方を同時に通常動作させることにより、一方のみを通常動作させた場合に露呈する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
【００１５】
本発明の第３の態様に係るメモリ装置は、第１又は第２の態様に係るメモリ装置において特に、前記ダミーの入力データは固定値であることを特徴とするものである。
【００１６】
第３の態様に係るメモリ装置によれば、ダミーの入力データは固定値である。このように、ダミーの入力データをあえて固定値とし、何らかの鍵データの生成処理が実行されていることを攻撃者に予見させることにより、解析によってダミーの入力データを特定するという無駄な作業を攻撃者に行わせる効果が期待できる。その結果、真の入力データを長期間保護することが可能となる。また、ダミーの入力データを固定値とすることにより、ダミー動作に伴う一時データ生成回路の消費電力を均一化することが可能となる。
【００１７】
本発明の第４の態様に係るメモリ装置は、第１又は第２の態様に係るメモリ装置において特に、前記ダミーの入力データは変動値であることを特徴とするものである。
【００１８】
第４の態様に係るメモリ装置によれば、ダミーの入力データは変動値である。従って、ダミーの入力データが変動する度に一時データ生成回路の消費電力も変動するため、メモリ装置全体の消費電力を変動させることができる。その結果、ＤＰＡ攻撃による消費電力特性の解析を困難化することが可能となる。
【００２１】
本発明の第５の態様に係るメモリ装置は、第１〜第４のいずれか一つの態様に係るメモリ装置において特に、前記入力データは鍵情報であることを特徴とするものである。
【００２２】
第５の態様に係るメモリ装置によれば、入力データとして鍵情報を入力することにより、一時データ生成回路は、一時データとしてセッション鍵を生成することが可能となる。
【００２３】
本発明の第６の態様に係るメモリ装置は、第１〜第５のいずれか一つの態様に係るメモリ装置において特に、前記ホスト装置からの不正アクセスを検出する不正アクセス検出回路をさらに備え、前記制御回路は、前記不正アクセス検出回路が不正アクセスを検出した場合に、第１の期間において前記第２の暗号モジュールにダミー動作を実行させることを特徴とするものである。
【００２４】
第６の態様に係るメモリ装置によれば、制御回路は、不正アクセス検出回路が不正アクセスを検出した場合に、第１の期間において第２の暗号モジュールにダミー動作を実行させる。従って、システムの可用性を確保できるとともに、不正アクセスを検出しない場合にダミー動作を実行させることに起因する消費電力の増大を回避することが可能となる。
【００２５】
本発明の第７の態様に係るホスト装置は、メモリ装置が接続されるホスト装置であって、前記ホスト装置と前記メモリ装置との間で送受信されるデータを暗号化及び復号化するために通常動作を実行する、第１の暗号モジュール及び第２の暗号モジュールと、前記第１の暗号モジュール及び前記第２の暗号モジュールの動作を制御する制御回路と、を備え、前記制御回路は、前記第２の暗号モジュールが通常動作を実行し前記第１の暗号モジュールが通常動作を実行しない第１の期間において、前記第１の暗号モジュールにダミー動作を実行させ、前記第１の暗号モジュールは、入力データに基づいて一時データを生成する一時データ生成回路を有し、前記第２の暗号モジュールは、前記一時データ生成回路によって生成された一時データに基づいて暗号処理を実行する暗号処理回路を有し、前記制御回路は、第１の期間において、ダミーの入力データを前記一時データ生成回路に入力し、前記制御回路は、前記一時データ生成回路の状態遷移情報を保持する保持回路を有し、前記第１の暗号モジュールにダミー動作を実行させる場合には、最新の状態遷移情報を前記保持回路に退避し、次に前記一時データ生成回路に通常動作を実行させる場合には、前記保持回路が保持している状態遷移情報を前記一時データ生成回路に書き戻すことを特徴とするものである。
【００２６】
第７の態様に係るホスト装置によれば、制御回路は、第２の暗号モジュールが通常動作を実行し第１の暗号モジュールが通常動作を実行しない第１の期間において、第１の暗号モジュールにダミー動作を実行させる。このように、第２の暗号モジュールのみが通常動作を実行する第１の期間において第１の暗号モジュールをダミー動作させることにより、第２の暗号モジュールが具有する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
また、第７の態様に係るホスト装置によれば、制御回路は、第１の期間において、ダミーの入力データを一時データ生成回路に入力する。このように、ダミーの入力データを一時データ生成回路に入力することにより、一時データ生成回路にダミーの一時データを生成するダミー動作を実行させることが可能となる。
また、第７の態様に係るホスト装置によれば、制御回路は、第１の暗号モジュールにダミー動作を実行させる場合には、一時データ生成回路の最新の状態遷移情報を保持回路に退避し、次に一時データ生成回路に通常動作を実行させる場合には、保持回路が保持している状態遷移情報を一時データ生成回路に書き戻す。これにより、一時データ生成回路はダミー動作後の通常動作において一時データを齟齬なく生成することが可能となる。
【００２７】
本発明の第８の態様に係るホスト装置は、第７の態様に係るホスト装置において特に、前記制御回路は、第１の期間とは異なる第２の期間において、前記第１の暗号モジュール及び前記第２の暗号モジュールの双方を同時に通常動作させることを特徴とするものである。
【００２８】
第８の態様に係るホスト装置によれば、制御回路は、第２の期間において、第１の暗号モジュール及び第２の暗号モジュールの双方を同時に通常動作させる。このように、第１の暗号モジュール及び第２の暗号モジュールの双方を同時に通常動作させることにより、一方のみを通常動作させた場合に露呈する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
【００３１】
本発明の第９の態様に係るホスト装置は、第７又は第８の態様に係るホスト装置において特に、前記ダミーの入力データは固定値であることを特徴とするものである。
【００３２】
第９の態様に係るホスト装置によれば、ダミーの入力データは固定値である。このように、ダミーの入力データをあえて固定値とし、何らかの鍵データの生成処理が実行されていることを攻撃者に予見させることにより、解析によってダミーの入力データを特定するという無駄な作業を攻撃者に行わせる効果が期待できる。その結果、真の入力データを長期間保護することが可能となる。また、ダミーの入力データを固定値とすることにより、ダミー動作に伴う一時データ生成回路の消費電力を均一化することが可能となる。
【００３３】
本発明の第１０の態様に係るホスト装置は、第７又は第８の態様に係るホスト装置において特に、前記ダミーの入力データは変動値であることを特徴とするものである。
【００３４】
第１０の態様に係るホスト装置によれば、ダミーの入力データは変動値である。従って、ダミーの入力データが変動する度に一時データ生成回路の消費電力も変動するため、ホスト装置全体の消費電力を変動させることができる。その結果、ＤＰＡ攻撃による消費電力特性の解析を困難化することが可能となる。
【００３７】
本発明の第１１の態様に係るホスト装置は、第７〜第１０のいずれか一つの態様に係るホスト装置において特に、前記入力データは鍵情報であることを特徴とするものである。
【００３８】
第１１の態様に係るホスト装置によれば、入力データとして鍵情報を入力することにより、一時データ生成回路は、一時データとしてセッション鍵を生成することが可能となる。
【００３９】
本発明の第１２の態様に係るメモリシステムは、第１〜第６のいずれか一つの態様に係るメモリ装置と、第７〜第１１のいずれか一つの態様に係るホスト装置と、を備えることを特徴とするものである。
【００４０】
第１２の態様に係るメモリシステムによれば、メモリ装置及びホスト装置の双方においてＤＰＡ攻撃に対する対策がそれぞれ実装されているため、メモリシステム全体としてＤＰＡ攻撃に対する耐性を高めることが可能となる。
【発明の効果】
【００４１】
本発明によれば、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施の形態に係るメモリシステムの構成を示す図である。
【図２】メモリ装置の暗号ブロックの構成を示す図である。
【図３】セッション鍵生成回路及びストリームデータ生成回路の処理内容を示すタイミングチャートである。
【図４】ホスト装置の暗号ブロックの構成を示す図である。
【図５】セッション鍵生成回路及びストリームデータ生成回路の処理内容を示すタイミングチャートである。
【図６】メモリ装置の暗号ブロックの構成を示す図である。
【発明を実施するための形態】
【００４３】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００４４】
図１は、本発明の実施の形態に係るメモリシステム１の構成を簡略化して示す図である。図１に示すようにメモリシステム１は、ホスト装置２と、ホスト装置２に着脱自在に接続される半導体メモリ等のメモリ装置３とを備えて構成されている。
【００４５】
ホスト装置２は、ＣＰＵ１１、内部メモリ１２、主制御回路１３、及び暗号ブロック１４を有している。メモリ装置３は、暗号ブロック１４と同様の暗号ブロック２１と、コンテンツデータ等の任意のデータが格納されたメモリアレイ２２とを有している。暗号ブロック１４，２１は、ホスト装置２とメモリ装置３との間で送受信されるコマンドやデータに対して、暗号化処理及び復号化処理を実行する。
【００４６】
図２は、メモリ装置３の暗号ブロック２１の構成を示す図である。図２に示すように暗号ブロック２１は、制御回路３１、暗号モジュール３２，３３、セレクタ３４、及び演算回路３５を有している。制御回路３１は、レジスタ等の保持回路４１を有している。暗号モジュール３２は、セッション鍵生成回路４２を有している。セッション鍵生成回路４２は、一時データ生成回路として機能し、セレクタ３４から入力された入力データとしての鍵情報（秘密鍵Ｋ１１又はダミー鍵Ｋ１２）に基づいて、一時データとしてのセッション鍵Ｄ１２を生成する。暗号モジュール３３は、ストリームデータ生成回路４３を有している。ストリームデータ生成回路４３は、暗号処理回路として機能し、鍵情報（秘密鍵Ｋ１３）と、セッション鍵生成回路４２から入力されたセッション鍵Ｄ１２とに基づいて、ストリーム暗号のためのストリームデータＤ１３を生成する。演算回路３５は、ホスト装置２から受信した暗号化コマンドＳ１１と、ストリームデータ生成回路４３から入力されたストリームデータＤ１３との排他的論理和を演算することにより、非暗号のコマンドＳ１２を復元する。また、演算回路３５は、メモリアレイ２２から読み出された非暗号のデータＳ１３と、ストリームデータ生成回路４３から入力されたストリームデータＤ１３との排他的論理和を演算することにより、暗号化データＳ１４を生成する。
【００４７】
図３は、セッション鍵生成回路４２及びストリームデータ生成回路４３の処理内容を示すタイミングチャートである。コマンド処理期間（時刻Ｔ１１〜Ｔ１２）において、ストリームデータ生成回路４３は、コマンド又はデータの暗号化又は復号化を実行するための通常動作として、ストリームデータＤ１３の生成処理を行い、これにより暗号化コマンドＳ１１の復号化が実行される。また、コマンド処理期間において、セッション鍵生成回路４２は、通常動作ではないダミー動作を実行する。レイテンシ期間（時刻Ｔ１２〜Ｔ１３）において、セッション鍵生成回路４２は、通常動作としてセッション鍵Ｄ１２の更新処理を行う。それと同時にストリームデータ生成回路４３は、通常動作として、現在入力されている更新前のセッション鍵Ｄ１２を用いて初期化処理を行う。メモリアレイ２２からのデータの読み出しが完了した後のデータ処理期間（時刻Ｔ１３〜Ｔ１４）において、ストリームデータ生成回路４３は、通常動作としてストリームデータＤ１３の生成処理を行い、これにより非暗号のデータＳ１３の暗号化が実行される。また、データ処理期間においてセッション鍵生成回路４２は、通常動作ではないダミー動作を実行する。
【００４８】
以下、メモリアレイ２２に格納されているデータをメモリ装置３からホスト装置２に読み出す処理を例にとり、メモリ装置３の動作を詳細に説明する。
【００４９】
メモリシステム１が起動されると、制御回路３１は、メモリアレイ２２の所定場所に格納されているＤＰＡ制御情報Ｄ１１（ＯＮ又はＯＦＦのフラグ情報）を読み出す。制御回路３１は、ＤＰＡ制御情報Ｄ１１がＯＮに設定されている場合には以下に述べるＤＰＡ対策処理を実行し、ＯＦＦに設定されている場合には実行しない。本実施の形態の例では、ＤＰＡ制御情報Ｄ１１はＯＮに設定されているものとする。なお、ＤＰＡ制御情報Ｄ１１は、ホスト装置２から発行されるコマンドの一部に格納されていても良く、この場合には、ＤＰＡ対策処理の実行の要否をホスト装置２によって簡易に切り替えることが可能となる。
【００５０】
次に制御回路３１は、ＤＰＡ対策処理としてセッション鍵生成回路４２のダミー動作を実行するために、セッション鍵生成回路４２の現在の設定内容を示す状態遷移情報を、暗号モジュール３２から読み出す。そして、読み出した状態遷移情報を、保持回路４１によって保持する。また、制御回路３１は、セレクタ３４にダミー鍵Ｋ１２を選択させる。ダミー鍵Ｋ１２は、固定値であっても良いし、乱数生成器を用いた変動値であっても良い。あるいは、ダミー鍵Ｋ１２は秘密鍵Ｋ１１と同一であっても良い。
【００５１】
次にホスト装置２は、ＣＰＵ１１が発行した読み出しコマンドを暗号ブロック１４によって暗号化することにより、暗号化コマンドＳ１１をメモリ装置３に送信する。
【００５２】
次にコマンド処理期間（時刻Ｔ１１〜Ｔ１２）において、セッション鍵生成回路４２は、ダミー鍵Ｋ１２に基づいてダミーのセッション鍵Ｄ１２を生成するダミー動作を実行する。生成されたダミーのセッション鍵Ｄ１２は、ストリームデータ生成回路４３には入力されない。また、コマンド処理期間においてストリームデータ生成回路４３は、通常動作として、セッション鍵生成回路４２から入力された最新のセッション鍵Ｄ１２に基づいてストリームデータＤ１３の生成処理を行い、これにより暗号化コマンドＳ１１の復号化が実行される。
【００５３】
次にレイテンシ期間（時刻Ｔ１２〜Ｔ１３）において、制御回路３１は、保持回路４１が保持している状態遷移情報をセッション鍵生成回路４２に書き戻す。これにより、セッション鍵生成回路４２の設定内容は、ダミー動作を実行する前の状態に再設定される。また、制御回路３１は、セレクタ３４に秘密鍵Ｋ１１を選択させる。セッション鍵生成回路４２は、通常動作としてセッション鍵Ｄ１２の更新処理を行うことにより、次回に使用する新たなセッション鍵Ｄ１２を生成する。それと同時にストリームデータ生成回路４３は、通常動作として、現在入力されている更新前のセッション鍵Ｄ１２を用いて初期化処理を行う。
【００５４】
次に制御回路３１は、ＤＰＡ対策処理としてセッション鍵生成回路４２のダミー動作を実行するために、セッション鍵生成回路４２の現在の設定内容（つまり更新後の設定内容）を示す状態遷移情報を、暗号モジュール３２から読み出す。そして、読み出した状態遷移情報を、保持回路４１によって保持する。また、制御回路３１は、セレクタ３４にダミー鍵Ｋ１２を選択させる。
【００５５】
次に、上述した暗号化コマンドＳ１１の復号化によって復元された非暗号のコマンドＳ１２に基づいて、メモリアレイ２２から所望のデータＳ１３が読み出される。
【００５６】
次にデータ処理期間（時刻Ｔ１３〜Ｔ１４）において、セッション鍵生成回路４２は、ダミー鍵Ｋ１２に基づいてダミーのセッション鍵Ｄ１２を生成するダミー動作を実行する。生成されたダミーのセッション鍵Ｄ１２は、ストリームデータ生成回路４３には入力されない。また、データ処理期間においてストリームデータ生成回路４３は、通常動作として、セッション鍵生成回路４２から入力されたセッション鍵Ｄ１２に基づいてストリームデータＤ１３の生成処理を行い、これにより非暗号のデータＳ１３の暗号化が実行される。暗号化データＳ１４は、メモリ装置３からホスト装置２に送信される。
【００５７】
このように本実施の形態に係るメモリ装置３によれば、制御回路３１は、暗号モジュール３３（第２の暗号モジュール）が通常動作を実行し、暗号モジュール３２（第１の暗号モジュール）が通常動作を実行しないコマンド処理期間及びデータ処理期間（第１の期間）において、暗号モジュール３２にダミー動作を実行させる。このように、暗号モジュール３３のみが通常動作を実行する第１の期間において暗号モジュール３２をダミー動作させることにより、暗号モジュール３３が具有する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
【００５８】
また、制御回路３１は、レイテンシ期間（第２の期間）において、暗号モジュール３２及び暗号モジュール３３の双方を同時に通常動作させる。このように、暗号モジュール３２及び暗号モジュール３３の双方を同時に通常動作させることにより、一方のみを通常動作させた場合に露呈する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
【００５９】
また、制御回路３１は、第１の期間において、ダミー鍵Ｋ１２（ダミーの入力データ）をセッション鍵生成回路４２（一時データ生成回路）に入力する。このように、ダミー鍵Ｋ１２をセッション鍵生成回路４２に入力することにより、セッション鍵生成回路４２にダミーのセッション鍵Ｄ１２（ダミーの一時データ）を生成するダミー動作を実行させることが可能となる。
【００６０】
また、ダミー鍵Ｋ１２をあえて固定値とし、何らかの鍵データの生成処理が実行されていることを攻撃者に予見させることにより、解析によってダミー鍵Ｋ１２を特定するという無駄な作業を攻撃者に行わせる効果が期待できる。その結果、秘密鍵Ｋ１１を長期間保護することが可能となる。また、ダミー鍵Ｋ１２を固定値とすることにより、ダミー動作に伴うセッション鍵生成回路４２の消費電力を均一化することが可能となる。
【００６１】
また、ダミー鍵Ｋ１２を変動値とすることにより、ダミー鍵Ｋ１２が変動する度にセッション鍵生成回路４２の消費電力も変動するため、メモリ装置３全体の消費電力を変動させることができる。その結果、ＤＰＡ攻撃による消費電力特性の解析を困難化することが可能となる。
【００６２】
また、制御回路３１は、暗号モジュール３２にダミー動作を実行させる場合には、セッション鍵生成回路４２の最新の状態遷移情報を保持回路４１に退避し、次にセッション鍵生成回路４２に通常動作を実行させる場合には、保持回路４１が保持している状態遷移情報をセッション鍵生成回路４２に書き戻す。これにより、セッション鍵生成回路４２はダミー動作後の通常動作においてセッション鍵Ｄ１２を齟齬なく生成することが可能となる。
【００６３】
また、入力データとして秘密鍵Ｋ１１（鍵情報）を入力することにより、セッション鍵生成回路４２は、一時データとしてセッション鍵Ｄ１２を生成することが可能となる。
【００６４】
＜第１の変形例＞
上記実施の形態では、ＤＰＡ対策をメモリ装置３に実装する例について説明したが、ＤＰＡ対策をホスト装置２に実装しても良い。
【００６５】
図４は、ホスト装置２の暗号ブロック１４の構成を示す図である。図４に示すように暗号ブロック１４は、制御回路５１、暗号モジュール５２，５３、セレクタ５４、及び演算回路５５を有している。制御回路５１は、レジスタ等の保持回路６１を有している。暗号モジュール５２は、セッション鍵生成回路６２を有している。セッション鍵生成回路６２は、一時データ生成回路として機能し、セレクタ５４から入力された入力データとしての鍵情報（秘密鍵Ｋ２１又はダミー鍵Ｋ２２）に基づいて、一時データとしてのセッション鍵Ｄ２２を生成する。暗号モジュール５３は、ストリームデータ生成回路６３を有している。ストリームデータ生成回路６３は、暗号処理回路として機能し、鍵情報（秘密鍵Ｋ２３）と、セッション鍵生成回路６２から入力されたセッション鍵Ｄ２２とに基づいて、ストリーム暗号のためのストリームデータＤ２３を生成する。演算回路５５は、メモリ装置３から受信した暗号化データＳ２３と、ストリームデータ生成回路６３から入力されたストリームデータＤ２３との排他的論理和を演算することにより、非暗号のデータＳ２４を復元する。また、演算回路５５は、主制御回路１３から入力された非暗号のコマンドＳ２１と、ストリームデータ生成回路６３から入力されたストリームデータＤ２３との排他的論理和を演算することにより、暗号化コマンドＳ２２を生成する。
【００６６】
図５は、セッション鍵生成回路６２及びストリームデータ生成回路６３の処理内容を示すタイミングチャートである。コマンド処理期間（時刻Ｔ２１〜Ｔ２２）において、ストリームデータ生成回路６３は、コマンド又はデータの暗号化又は復号化を実行するための通常動作として、ストリームデータＤ２３の生成処理を行い、これにより非暗号のコマンドＳ２１の暗号化が実行される。また、コマンド処理期間において、セッション鍵生成回路６２は、通常動作ではないダミー動作を実行する。レイテンシ期間（時刻Ｔ２２〜Ｔ２３）において、セッション鍵生成回路６２は、通常動作としてセッション鍵Ｄ２２の更新処理を行う。それと同時にストリームデータ生成回路６３は、通常動作として、現在入力されている更新前のセッション鍵Ｄ２２を用いて初期化処理を行う。データ処理期間（時刻Ｔ２３〜Ｔ２４）において、ストリームデータ生成回路６３は、通常動作としてストリームデータＤ２３の生成処理を行い、これにより暗号化データＳ２３の復号化が実行される。また、データ処理期間においてセッション鍵生成回路６２は、通常動作ではないダミー動作を実行する。
【００６７】
以下、メモリアレイ２２に格納されているデータをメモリ装置３からホスト装置２に読み出す処理を例にとり、ホスト装置２の動作を詳細に説明する。
【００６８】
メモリシステム１が起動されると、制御回路５１は、メモリアレイ２２の所定場所に格納されているＤＰＡ制御情報Ｄ１１を読み出す。制御回路５１は、ＤＰＡ制御情報Ｄ１１がＯＮに設定されている場合には以下に述べるＤＰＡ対策処理を実行し、ＯＦＦに設定されている場合には実行しない。本変形例では、ＤＰＡ制御情報Ｄ１１はＯＮに設定されているものとする。
【００６９】
次に制御回路５１は、ＤＰＡ対策処理としてセッション鍵生成回路６２のダミー動作を実行するために、セッション鍵生成回路６２の現在の設定内容を示す状態遷移情報を、暗号モジュール５２から読み出す。そして、読み出した状態遷移情報を、保持回路６１によって保持する。また、制御回路５１は、セレクタ５４にダミー鍵Ｋ２２を選択させる。ダミー鍵Ｋ２２は、固定値であっても良いし、乱数生成器を用いた変動値であっても良い。あるいは、ダミー鍵Ｋ２２は秘密鍵Ｋ２１と同一であっても良い。
【００７０】
次にＣＰＵ１１は、非暗号の読み出しコマンドＳ２１を発行する。コマンドＳ２１は、主制御回路１３を介して暗号ブロック１４に入力される。
【００７１】
次にコマンド処理期間（時刻Ｔ２１〜Ｔ２２）において、セッション鍵生成回路６２は、ダミー鍵Ｋ２２に基づいてダミーのセッション鍵Ｄ２２を生成するダミー動作を実行する。生成されたダミーのセッション鍵Ｄ２２は、ストリームデータ生成回路６３には入力されない。また、コマンド処理期間においてストリームデータ生成回路６３は、通常動作として、セッション鍵生成回路６２から入力された最新のセッション鍵Ｄ２２に基づいてストリームデータＤ２３の生成処理を行い、これにより非暗号のコマンドＳ２１の暗号化が実行される。
【００７２】
次にレイテンシ期間（時刻Ｔ２２〜Ｔ２３）において、制御回路５１は、保持回路６１が保持している状態遷移情報をセッション鍵生成回路６２に書き戻す。これにより、セッション鍵生成回路６２の設定内容は、ダミー動作を実行する前の状態に再設定される。また、制御回路５１は、セレクタ５４に秘密鍵Ｋ２１を選択させる。セッション鍵生成回路６２は、通常動作としてセッション鍵Ｄ２２の更新処理を行うことにより、次回に使用する新たなセッション鍵Ｄ２２を生成する。それと同時にストリームデータ生成回路６３は、通常動作として、現在入力されている更新前のセッション鍵Ｄ２２を用いて初期化処理を行う。
【００７３】
次に制御回路５１は、ＤＰＡ対策処理としてセッション鍵生成回路６２のダミー動作を実行するために、セッション鍵生成回路６２の現在の設定内容（つまり更新後の設定内容）を示す状態遷移情報を、暗号モジュール５２から読み出す。そして、読み出した状態遷移情報を、保持回路６１によって保持する。また、制御回路５１は、セレクタ５４にダミー鍵Ｋ２２を選択させる。
【００７４】
次にデータ処理期間（時刻Ｔ２３〜Ｔ２４）において、セッション鍵生成回路６２は、ダミー鍵Ｋ２２に基づいてダミーのセッション鍵Ｄ２２を生成するダミー動作を実行する。生成されたダミーのセッション鍵Ｄ２２は、ストリームデータ生成回路６３には入力されない。また、データ処理期間においてストリームデータ生成回路６３は、通常動作として、セッション鍵生成回路６２から入力されたセッション鍵Ｄ２２に基づいてストリームデータＤ２３の生成処理を行い、これにより、メモリ装置３から受信した暗号化データＳ２３の復号化が実行される。復号化されたデータＳ２４は、主制御回路１３を介してＣＰＵ１１に入力される。
【００７５】
このように本変形例に係るホスト装置２によれば、制御回路５１は、暗号モジュール５３（第２の暗号モジュール）が通常動作を実行し、暗号モジュール５２（第１の暗号モジュール）が通常動作を実行しないコマンド処理期間及びデータ処理期間（第１の期間）において、暗号モジュール５２にダミー動作を実行させる。このように、暗号モジュール５３のみが通常動作を実行する第１の期間において暗号モジュール５２をダミー動作させることにより、暗号モジュール５３が具有する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
【００７６】
また、制御回路５１は、レイテンシ期間（第２の期間）において、暗号モジュール５２及び暗号モジュール５３の双方を同時に通常動作させる。このように、暗号モジュール５２及び暗号モジュール５３の双方を同時に通常動作させることにより、一方のみを通常動作させた場合に露呈する消費電力特性を隠蔽することができる。その結果、ＤＰＡ攻撃に対する対策を低コストで実装することが可能となる。
【００７７】
また、制御回路５１は、第１の期間において、ダミー鍵Ｋ２２（ダミーの入力データ）をセッション鍵生成回路６２（一時データ生成回路）に入力する。このように、ダミー鍵Ｋ２２をセッション鍵生成回路６２に入力することにより、セッション鍵生成回路６２にダミーのセッション鍵Ｄ２２（ダミーの一時データ）を生成するダミー動作を実行させることが可能となる。
【００７８】
また、ダミー鍵Ｋ２２をあえて固定値とし、何らかの鍵データの生成処理が実行されていることを攻撃者に予見させることにより、解析によってダミー鍵Ｋ２２を特定するという無駄な作業を攻撃者に行わせる効果が期待できる。その結果、秘密鍵Ｋ２１を長期間保護することが可能となる。また、ダミー鍵Ｋ２２を固定値とすることにより、ダミー動作に伴うセッション鍵生成回路６２の消費電力を均一化することが可能となる。
【００７９】
また、ダミー鍵Ｋ２２を変動値とすることにより、ダミー鍵Ｋ２２が変動する度にセッション鍵生成回路６２の消費電力も変動するため、ホスト装置２全体の消費電力を変動させることができる。その結果、ＤＰＡ攻撃による消費電力特性の解析を困難化することが可能となる。
【００８０】
また、制御回路５１は、暗号モジュール５２にダミー動作を実行させる場合には、セッション鍵生成回路６２の最新の状態遷移情報を保持回路６１に退避し、次にセッション鍵生成回路６２に通常動作を実行させる場合には、保持回路６１が保持している状態遷移情報をセッション鍵生成回路６２に書き戻す。これにより、セッション鍵生成回路６２はダミー動作後の通常動作においてセッション鍵Ｄ２２を齟齬なく生成することが可能となる。
【００８１】
また、入力データとして秘密鍵Ｋ２１（鍵情報）を入力することにより、セッション鍵生成回路６２は、一時データとしてセッション鍵Ｄ２２を生成することが可能となる。
【００８２】
なお、ＤＰＡ対策をホスト装置２及びメモリ装置３の双方に実装しても良く、この場合には、メモリシステム１全体としてＤＰＡ攻撃に対する耐性を高めることが可能となる。
【００８３】
＜第２の変形例＞
上記実施の形態では、ＤＰＡ制御情報Ｄ１１に基づいてＤＰＡ対策処理の実行の要否が判定されたが、ホスト装置２からメモリ装置３への不正アクセスがあったことを条件として、ＤＰＡ対策処理を実行しても良い。
【００８４】
図６は、メモリ装置３の暗号ブロック２１の構成を示す図である。図２に示した構成に対して不正アクセス検出回路３６が追加されている。不正アクセス検出回路３６には、復号化によって復元された非暗号のコマンドＳ１２が、演算回路３５から入力される。
【００８５】
不正アクセス検出回路３６は、例えば、所定のアクセス禁止領域へのアクセス要求、メモリアレイ２２のデータ容量を超えるアクセス要求、コマンドＩＤが定義されていない未定義コマンドによるアクセス要求、及び、規定のコマンドシーケンス以外のシーケンスによるアクセス要求等をホスト装置２から受けた場合に、そのアクセスを不正アクセスとして検出し、不正アクセス検出信号Ｄ１４を制御回路３１に入力する。
【００８６】
制御回路３１は、不正アクセス検出信号Ｄ１４が入力されたことを実行条件として、上記実施の形態で説明したＤＰＡ対策処理を実行する。
【００８７】
このように本変形例に係るメモリ装置３によれば、制御回路３１は、不正アクセス検出回路３６が不正アクセスを検出した場合に、ＤＰＡ対策処理を実行する。従って、メモリシステム１の可用性を確保できるとともに、不正アクセスを検出しない場合にダミー動作を実行させることに起因する消費電力の増大を回避することが可能となる。
【符号の説明】
【００８８】
１  メモリシステム
２  ホスト装置
３  メモリ装置
１４，２１  暗号ブロック
３１，５１  制御回路
３２，３３，５２，５３  暗号モジュール
３６  不正アクセス検出回路
４１，６１  保持回路
４２，６２  セッション鍵生成回路
４３，６３  ストリームデータ生成回路
【図１】
0006473874.tif 000002
【図２】
0006473874.tif 000003
【図３】
0006473874.tif 000004
【図４】
0006473874.tif 000005
【図５】
0006473874.tif 000006
【図６】
0006473874.tif 000007