特開2018-60159(P2018-60159A)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社メガチップスの特許一覧

特開2018-60159暗号化装置、メモリ装置、ホスト装置、及びメモリシステム
<>
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000003
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000004
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000005
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000006
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000007
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000008
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000009
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000010
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000011
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000012
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000013
  • 特開2018060159-暗号化装置、メモリ装置、ホスト装置、及びメモリシステム 図000014
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2018-60159(P2018-60159A)
(43)【公開日】2018年4月12日
(54)【発明の名称】暗号化装置、メモリ装置、ホスト装置、及びメモリシステム
(51)【国際特許分類】
   G09C 1/00 20060101AFI20180316BHJP
【FI】
   G09C1/00 610A
【審査請求】有
【請求項の数】21
【出願形態】OL
【全頁数】20
(21)【出願番号】特願2017-9035(P2017-9035)
(22)【出願日】2017年1月21日
(31)【優先権主張番号】特願2016-197138(P2016-197138)
(32)【優先日】2016年10月5日
(33)【優先権主張国】JP
(71)【出願人】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100136353
【弁理士】
【氏名又は名称】高尾 建吾
(72)【発明者】
【氏名】菅原 崇彦
(72)【発明者】
【氏名】油谷 大武
(72)【発明者】
【氏名】吉村 紀
(72)【発明者】
【氏名】今川 雅之
【テーマコード(参考)】
5J104
【Fターム(参考)】
5J104AA47
5J104NA02
(57)【要約】
【課題】DPA攻撃やCPA攻撃に対する効果的な対策を容易にかつ低コストで実装することが可能な暗号化装置を得る。
【解決手段】ノイズ生成モジュール32は、暗号モジュール31の消費電力特性を隠蔽するための消費電力ノイズを生成する。暗号モジュール31は、自身への入力データに対して非線形変換処理を行う第1の非線形変換処理部を有し、ノイズ生成モジュール32は、第1の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第2の非線形変換処理部を有する。
【選択図】図2
【特許請求の範囲】
【請求項1】
入力された第1のデータを暗号化することによって第2のデータを出力する、暗号モジュールと、
前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズを生成する、ノイズ生成モジュールと、
を備え、
前記暗号モジュールは、自身への入力データに対して非線形変換処理を行う第1の非線形変換処理部を有し、
前記ノイズ生成モジュールは、前記第1の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第2の非線形変換処理部を有する、暗号化装置。
【請求項2】
前記第1の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第1の非線形変換回路を有し、
前記第2の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う、少なくとも一つの第2の非線形変換回路を有する、請求項1に記載の暗号化装置。
【請求項3】
前記第2の非線形変換処理部は、直列に接続された複数の前記第2の非線形変換回路を有する、請求項2に記載の暗号化装置。
【請求項4】
前記第2の非線形変換回路としては、ビット幅及び回路構成方式が前記第1の非線形変換回路のそれと等しい非線形変換回路が使用される、請求項3に記載の暗号化装置。
【請求項5】
前記第2の非線形変換回路としては、ビット幅が前記第1の非線形変換回路のそれよりも大きい非線形変換回路が使用される、請求項3に記載の暗号化装置。
【請求項6】
前記第2の非線形変換回路としては、消費電力の分散が前記第1の非線形変換回路のそれよりも大きい回路構成方式の非線形変換回路が使用される、請求項3に記載の暗号化装置。
【請求項7】
前記第1のデータ及び前記第2のデータの一方が、初期値として第1段の前記第2の非線形変換回路に入力される、請求項3〜6のいずれか一つに記載の暗号化装置。
【請求項8】
所定の固定値及び不定値の一方が、初期値として第1段の前記第2の非線形変換回路に入力される、請求項3〜6のいずれか一つに記載の暗号化装置。
【請求項9】
前記ノイズ生成モジュールは、前記第1の非線形変換回路の動作に同期して前記第2の非線形変換回路を動作させるための同期制御回路をさらに有する、請求項3〜8のいずれか一つに記載の暗号化装置。
【請求項10】
前記ノイズ生成モジュールは、実装されている全ての前記第2の非線形変換回路のうち、動作させる前記第2の非線形変換回路の段数を選択するための選択回路をさらに有する、請求項3〜9のいずれか一つに記載の暗号化装置。
【請求項11】
前記第1の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第1の非線形変換回路を有し、
前記第2の非線形変換処理部は、ソフトウェア処理によって非線形変換処理を実行する、少なくとも一つのデータ処理部を有する、請求項1に記載の暗号化装置。
【請求項12】
前記データ処理部は、ビット幅が前記第1の非線形変換回路のそれと等しい非線形変換処理を実行する、請求項11に記載の暗号化装置。
【請求項13】
前記データ処理部は、ビット幅が前記第1の非線形変換回路のそれよりも大きい非線形変換処理を実行する、請求項11に記載の暗号化装置。
【請求項14】
前記第1のデータ及び前記第2のデータの一方が、初期値として前記データ処理部に入力される、請求項11〜13のいずれか一つに記載の暗号化装置。
【請求項15】
所定の固定値が、初期値として前記データ処理部に入力される、請求項11〜13のいずれか一つに記載の暗号化装置。
【請求項16】
前記第2の非線形変換処理部は複数の前記データ処理部を有し、
複数の前記データ処理部のうち非稼働状態である少なくとも一つのデータ処理部が、非線形変換処理を実行する、請求項11〜15のいずれか一つに記載の暗号化装置。
【請求項17】
入力された第1のデータをハードウェア処理によって暗号化することにより第2のデータを出力する、暗号モジュールと、
前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズをソフトウェア処理によって生成する、ノイズ生成モジュールと、
を備える、暗号化装置。
【請求項18】
前記暗号モジュールは、自身への入力データに対してハードウェア処理によって非線形変換処理を行う非線形変換回路を有し、
前記ノイズ生成モジュールは、前記非線形変換回路の動作期間において、自身への入力データに対してソフトウェア処理によって非線形変換処理を実行するデータ処理部を有する、請求項17に記載の暗号化装置。
【請求項19】
ホスト装置に接続されるメモリ装置であって、
コンテンツデータが格納されたメモリアレイと、
前記ホスト装置に送信するコンテンツデータを暗号化するための、請求項1〜18のいずれか一つに記載の暗号化装置と、
を備える、メモリ装置。
【請求項20】
メモリ装置が接続されるホスト装置であって、
前記メモリ装置に対するコマンドを発行する制御部と、
前記メモリ装置に送信するコマンドを暗号化するための、請求項1〜18のいずれか一つに記載の暗号化装置と、
を備える、ホスト装置。
【請求項21】
請求項19に記載のメモリ装置と、
請求項20に記載のホスト装置と、
を備える、メモリシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号化装置、メモリ装置、ホスト装置、及びメモリシステムに関する。
【背景技術】
【0002】
現在使用されている暗号方式は、暗号学的な解析手法に対して計算量的に安全であるとされている。しかし、実際に暗号化装置に暗号モジュールを実装する場合には、消費電力や処理時間のような、実装に依存したリークが発生する。そのような動作状況を様々な物理的手段で観察することにより、秘密鍵等の秘密情報を不正に取得しようとするサイドチャネル攻撃の脅威が増している。
【0003】
サイドチャネル攻撃の一つとして、装置の消費電力を測定することによって秘密情報を解析する電力解析攻撃がある。その中でも、測定した複数の消費電力波形に対して統計処理による解析を行う、差分電力解析(DPA:Differential Power Analysis)や相関電力解析(CPA:Correlation Power Analysis)が、特に強力な攻撃法として報告されている(下記非特許文献1,2参照)。
【0004】
そのため近年では、DPA攻撃やCPA攻撃に対する種々の対策回路が提案されており、例えば下記非特許文献3には、RSL(Random Switching Logic)回路及びWDDL(Wave Dynamic Differential Logic)回路が提案されている。RSL回路は、乱数を用いて論理回路の動作モードを切り替えることによって状態遷移確率の偏りをなくし、それによって暗号鍵に依存しないよう消費電力をランダム化する。WDDL回路は、プリチャージ動作を行った後、演算時のビット値の違いに起因する消費電流の相違を相補回路によって低減することにより、消費電力を均一化する。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】Paul Kocher、他2名、”Introduction to Differential Power Analysis and related Attacks”、[online]、Cryptography Research、平成27年7月1日検索、インターネット<http://www.cryptography.com/public/pdf/DPATechInfo.pdf>
【非特許文献2】Eric Brier、他2名、”Correlation Power Analysis with a Leakage Model”、[online]、Gemplus Card International、平成28年9月12日検索、インターネット<https://www.iacr.org/archive/ches2004/31560016/31560016.pdf>
【非特許文献3】Daisuke Suzuki、他2名、"Random Switching Logic: A Countermeasure against DPA based on Transition Probability"、[online]、International Association for Cryptologic Research、平成27年7月1日検索、インターネット<http://eprint.iacr.org/2004/346.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、上述したRSL回路又はWDDL回路を暗号化装置に実装する場合には、これらの回路を実装しない装置と比較して、演算時間、回路規模、及び消費電力が数倍〜数十倍に増大するため、コストが増大する。
【0007】
本発明はかかる事情に鑑みて成されたものであり、DPA攻撃やCPA攻撃に対する効果的な対策を容易にかつ低コストで実装することが可能な、暗号化装置、メモリ装置、ホスト装置、及びメモリシステムを得ることを目的とするものである。
【課題を解決するための手段】
【0008】
本発明の第1の態様に係る暗号化装置は、入力された第1のデータを暗号化することによって第2のデータを出力する、暗号モジュールと、前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズを生成する、ノイズ生成モジュールと、を備え、前記暗号モジュールは、自身への入力データに対して非線形変換処理を行う第1の非線形変換処理部を有し、前記ノイズ生成モジュールは、前記第1の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第2の非線形変換処理部を有することを特徴とするものである。
【0009】
第1の態様に係る暗号化装置によれば、ノイズ生成モジュールは、第1の非線形変換処理部の動作期間において、自身への入力データに対して非線形変換処理を行う第2の非線形変換処理部を有する。一般的な擬似乱数生成器等に比べて非線形変換処理は消費電力の分散が大きいため、第1の非線形変換処理部の動作期間において第2の非線形変換処理部を動作させることにより、分散の大きい消費電力ノイズをノイズ生成モジュールによって生成することができる。従って、この分散の大きい消費電力ノイズによって、暗号モジュールの消費電力特性を効果的に隠蔽することが可能となる。しかも、ノイズ生成モジュールを追加実装するだけでよく、暗号モジュールの暗号アルゴリズム自体は何ら変更する必要がないため、暗号モジュールの再設計に伴う設計の複雑化やコストの増大等を回避できる。その結果、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【0010】
本発明の第2の態様に係る暗号化装置は、第1の態様に係る暗号化装置において特に、前記第1の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第1の非線形変換回路を有し、前記第2の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う、少なくとも一つの第2の非線形変換回路を有することを特徴とするものである。
【0011】
第2の態様に係る暗号化装置によれば、第2の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う、少なくとも一つの第2の非線形変換回路を有する。第2の非線形変換回路によるハードウェア処理によって非線形変換処理を行うことにより、ソフトウェア処理によって非線形変換処理を行う場合よりも分散の大きい消費電力ノイズを生成できるため、暗号モジュールの消費電力特性を効果的に隠蔽することが可能となる。
【0012】
本発明の第3の態様に係る暗号化装置は、第2の態様に係る暗号化装置において特に、前記第2の非線形変換処理部は、直列に接続された複数の前記第2の非線形変換回路を有することを特徴とするものである。
【0013】
第3の態様に係る暗号化装置によれば、第2の非線形変換処理部は、直列に接続された複数の第2の非線形変換回路を有する。複数の第2の非線形変換回路を直列に接続することによって、ノイズ生成モジュールが生成する消費電力ノイズの分散をさらに大きくできるため、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【0014】
本発明の第4の態様に係る暗号化装置は、第3の態様に係る暗号化装置において特に、前記第2の非線形変換回路としては、ビット幅及び回路構成方式が前記第1の非線形変換回路のそれと等しい非線形変換回路が使用されることを特徴とするものである。
【0015】
第4の態様に係る暗号化装置によれば、第2の非線形変換回路としては、ビット幅及び回路構成方式が第1の非線形変換回路のそれと等しい非線形変換回路が使用される。第1の非線形変換回路と第2の非線形変換回路とでビット幅及び回路構成方式を共通にすることにより、第2の非線形変換回路の消費電力ノイズの特性を、第1の非線形変換回路の消費電力特性に近似させることができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【0016】
本発明の第5の態様に係る暗号化装置は、第3の態様に係る暗号化装置において特に、前記第2の非線形変換回路としては、ビット幅が前記第1の非線形変換回路のそれよりも大きい非線形変換回路が使用されることを特徴とするものである。
【0017】
第5の態様に係る暗号化装置によれば、第2の非線形変換回路としては、ビット幅が第1の非線形変換回路のそれよりも大きい非線形変換回路が使用される。ビット幅が大きいほど消費電力の分散も大きくなるため、第1の非線形変換回路よりもビット幅の大きい第2の非線形変換回路を使用することにより、暗号モジュールの消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュールによって生成することができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【0018】
本発明の第6の態様に係る暗号化装置は、第3の態様に係る暗号化装置において特に、前記第2の非線形変換回路としては、消費電力の分散が前記第1の非線形変換回路のそれよりも大きい回路構成方式の非線形変換回路が使用されることを特徴とするものである。
【0019】
第6の態様に係る暗号化装置によれば、第2の非線形変換回路としては、消費電力の分散が第1の非線形変換回路のそれよりも大きい回路構成方式の非線形変換回路が使用される。例えば、第1の非線形変換回路としてテーブル方式のS−box回路が使用されている場合に、第2の非線形変換回路として合成体方式のS−box回路が使用される。これにより、暗号モジュールの消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュールによって生成することができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【0020】
本発明の第7の態様に係る暗号化装置は、第3〜第6のいずれか一つの態様に係る暗号化装置において特に、前記第1のデータ及び前記第2のデータの一方が、初期値として第1段の前記第2の非線形変換回路に入力されることを特徴とするものである。
【0021】
第7の態様に係る暗号化装置によれば、第1のデータ及び第2のデータの一方が、初期値として第1段の第2の非線形変換回路に入力される。第1のデータ及び第2のデータはエントロピが担保された変動値であるため、第1のデータ及び第2のデータの一方を第1段の第2の非線形変換回路に入力することにより、エントロピが担保された初期値を用いて第2の非線形変換回路を動作させることが可能となる。しかも、エントロピが担保された初期値を生成する目的で擬似乱数生成器等の演算器を別途に用意する必要がないため、回路構成の簡略化を図ることができる。
【0022】
本発明の第8の態様に係る暗号化装置は、第3〜第6のいずれか一つの態様に係る暗号化装置において特に、所定の固定値及び不定値の一方が、初期値として第1段の前記第2の非線形変換回路に入力されることを特徴とするものである。
【0023】
第8の態様に係る暗号化装置によれば、所定の固定値及び不定値の一方が、初期値として第1段の第2の非線形変換回路に入力される。従って、第1のデータ又は第2のデータを初期値として第1段の第2の非線形変換回路に入力する構成と比較すると、第1のデータ又は第2のデータを第1段の第2の非線形変換回路に入力するための配線等が不要となるため、装置構成を簡略化することが可能となる。
【0024】
本発明の第9の態様に係る暗号化装置は、第3〜第8のいずれか一つの態様に係る暗号化装置において特に、前記ノイズ生成モジュールは、前記第1の非線形変換回路の動作に同期して前記第2の非線形変換回路を動作させるための同期制御回路をさらに有することを特徴とするものである。
【0025】
第9の態様に係る暗号化装置によれば、ノイズ生成モジュールは、第1の非線形変換回路の動作に同期して第2の非線形変換回路を動作させるための同期制御回路を有する。これにより、暗号モジュールの消費電力の遷移タイミングと、ノイズ生成モジュールが生成する消費電力ノイズの遷移タイミングとが同期するため、暗号モジュールの消費電力特性を消費電力ノイズによってより効果的に隠蔽することが可能となる。
【0026】
本発明の第10の態様に係る暗号化装置は、第3〜第9のいずれか一つの態様に係る暗号化装置において特に、前記ノイズ生成モジュールは、実装されている全ての前記第2の非線形変換回路のうち、動作させる前記第2の非線形変換回路の段数を選択するための選択回路をさらに有することを特徴とするものである。
【0027】
第10の態様に係る暗号化装置によれば、ノイズ生成モジュールは、実装されている全ての第2の非線形変換回路のうち、動作させる第2の非線形変換回路の段数を選択するための選択回路を有する。従って、高い隠蔽効果が要求される場合には、動作させる第2の非線形変換回路の段数を多く設定することにより、ノイズ生成モジュールが生成する消費電力ノイズの分散を大きくすることができる。一方、高い隠蔽効果が要求されない場合には、動作させる第2の非線形変換回路の段数を少なく設定することにより、暗号化装置全体の消費電力量を低減することが可能となる。
【0028】
本発明の第11の態様に係る暗号化装置は、第1の態様に係る暗号化装置において特に、前記第1の非線形変換処理部は、ハードウェア処理によって非線形変換処理を行う第1の非線形変換回路を有し、前記第2の非線形変換処理部は、ソフトウェア処理によって非線形変換処理を実行する、少なくとも一つのデータ処理部を有することを特徴とするものである。
【0029】
第11の態様に係る暗号化装置によれば、第2の非線形変換処理部は、ソフトウェア処理によって非線形変換処理を行う、少なくとも一つのデータ処理部を有する。データ処理部によるソフトウェア処理によって非線形変換処理を行うことにより、ハードウェアとして構成された非線形変換回路を実装する必要がなく、ファームウェアのバージョンアップ等によって同等機能を追加実装できるため、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【0030】
本発明の第12の態様に係る暗号化装置は、第11の態様に係る暗号化装置において特に、前記データ処理部は、ビット幅が前記第1の非線形変換回路のそれと等しい非線形変換処理を実行することを特徴とするものである。
【0031】
第12の態様に係る暗号化装置によれば、データ処理部は、ビット幅が前記第1の非線形変換回路のそれと等しい非線形変換処理を実行する。第1の非線形変換回路とデータ処理部とでビット幅を共通にすることにより、データ処理部の消費電力ノイズの特性を、第1の非線形変換回路の消費電力特性に近似させることができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【0032】
本発明の第13の態様に係る暗号化装置は、第11の態様に係る暗号化装置において特に、前記データ処理部は、ビット幅が前記第1の非線形変換回路のそれよりも大きい非線形変換処理を実行することを特徴とするものである。
【0033】
第13の態様に係る暗号化装置によれば、データ処理部は、ビット幅が前記第1の非線形変換回路のそれよりも大きい非線形変換処理を実行する。ビット幅が大きいほど消費電力の分散も大きくなるため、第1の非線形変換回路よりもビット幅の大きい非線形変換処理をデータ処理部が実行することにより、暗号モジュールの消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュールによって生成することができる。その結果、ノイズ生成モジュールが生成する消費電力ノイズによって、暗号モジュールの消費電力特性をより効果的に隠蔽することが可能となる。
【0034】
本発明の第14の態様に係る暗号化装置は、第11〜第13のいずれか一つの態様に係る暗号化装置において特に、前記第1のデータ及び前記第2のデータの一方が、初期値として前記データ処理部に入力されることを特徴とするものである。
【0035】
第14の態様に係る暗号化装置によれば、第1のデータ及び第2のデータの一方が、初期値としてデータ処理部に入力される。第1のデータ及び第2のデータはエントロピが担保された変動値であるため、第1のデータ及び第2のデータの一方をデータ処理部に入力することにより、データ処理部はエントロピが担保された初期値を用いて非線形変換処理を実行できる。しかも、エントロピが担保された初期値を生成する目的で擬似乱数生成器等の演算器を別途に用意する必要がないため、回路構成の簡略化を図ることができる。
【0036】
本発明の第15の態様に係る暗号化装置は、第11〜第13のいずれか一つの態様に係る暗号化装置において特に、所定の固定値が、初期値として前記データ処理部に入力されることを特徴とするものである。
【0037】
第15の態様に係る暗号化装置によれば、所定の固定値が、初期値としてデータ処理部に入力される。従って、第1のデータ又は第2のデータを初期値としてデータ処理部に入力する構成と比較すると、設計を容易化できるとともに、ソフトウェア実装の負荷を軽減することが可能となる。
【0038】
本発明の第16の態様に係る暗号化装置は、第11〜第15のいずれか一つの態様に係る暗号化装置において特に、前記第2の非線形変換処理部は複数の前記データ処理部を有し、複数の前記データ処理部のうち非稼働状態である少なくとも一つのデータ処理部が、非線形変換処理を実行することを特徴とするものである。
【0039】
第16の態様に係る暗号化装置によれば、第2の非線形変換処理部は複数のデータ処理部を有し、複数のデータ処理部のうち非稼働状態である少なくとも一つのデータ処理部が、非線形変換処理を実行する。第2の非線形変換処理部が複数のデータ処理部を有する場合において、非稼働状態であるデータ処理部に非線形変換処理を実行させることにより、既存リソースの有効活用を図ることができる。
【0040】
本発明の第17の態様に係る暗号化装置は、入力された第1のデータをハードウェア処理によって暗号化することにより第2のデータを出力する、暗号モジュールと、前記暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズをソフトウェア処理によって生成する、ノイズ生成モジュールと、を備えることを特徴とするものである。
【0041】
第17の態様に係る暗号化装置によれば、ノイズ生成モジュールは、暗号モジュールの消費電力特性を隠蔽するための消費電力ノイズを生成する。従って、ノイズ生成モジュールが生成した消費電力ノイズによって、暗号モジュールの消費電力特性を隠蔽することが可能となる。しかも、ノイズ生成モジュールを追加実装するだけでよく、暗号モジュールの暗号アルゴリズム自体は何ら変更する必要がないため、暗号モジュールの再設計に伴う設計の複雑化やコストの増大等を回避できる。その結果、DPA攻撃やCPA攻撃に対する対策を、容易にかつ低コストで実装することが可能となる。さらに、ノイズ生成モジュールは、ソフトウェア処理によって消費電力ノイズを生成する。従って、ノイズ生成モジュールをハードウェアとして追加実装する必要がなく、ファームウェアのバージョンアップ等によって同等機能を追加実装できるため、DPA攻撃やCPA攻撃に対する対策を、容易にかつ低コストで実装することが可能となる。
【0042】
本発明の第18の態様に係る暗号化装置は、第17の態様に係る暗号化装置において特に、前記暗号モジュールは、自身への入力データに対してハードウェア処理によって非線形変換処理を行う非線形変換回路を有し、前記ノイズ生成モジュールは、前記非線形変換回路の動作期間において、自身への入力データに対してソフトウェア処理によって非線形変換処理を実行するデータ処理部を有することを特徴とするものである。
【0043】
第18の態様に係る暗号化装置によれば、ノイズ生成モジュールは、非線形変換回路の動作期間において、自身への入力データに対してソフトウェア処理によって非線形変換処理を実行するデータ処理部を有する。一般的な擬似乱数生成器等に比べて非線形変換処理は消費電力の分散が大きいため、非線形変換回路の動作期間においてデータ処理部が非線形変換処理を実行することにより、分散の大きい消費電力ノイズをノイズ生成モジュールによって生成することができる。従って、この分散の大きい消費電力ノイズによって、暗号モジュールの消費電力特性を効果的に隠蔽することが可能となる。
【0044】
本発明の第19の態様に係るメモリ装置は、ホスト装置に接続されるメモリ装置であって、コンテンツデータが格納されたメモリアレイと、前記ホスト装置に送信するコンテンツデータを暗号化するための、第1〜第18のいずれか一つの態様に係る暗号化装置と、を備えることを特徴とするものである。
【0045】
第19の態様に係るメモリ装置によれば、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置に実装することが可能となる。
【0046】
本発明の第20の態様に係るホスト装置は、メモリ装置が接続されるホスト装置であって、前記メモリ装置に対するコマンドを発行する制御部と、前記メモリ装置に送信するコマンドを暗号化するための、第1〜第18のいずれか一つの態様に係る暗号化装置と、を備えることを特徴とするものである。
【0047】
第20の態様に係るホスト装置によれば、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストでホスト装置に実装することが可能となる。
【0048】
本発明の第21の態様に係るメモリシステムは、第19の態様に係るメモリ装置と、第20の態様に係るホスト装置と、を備えることを特徴とするものである。
【0049】
第21の態様に係るメモリシステムによれば、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置及びホスト装置に実装することが可能となる。
【発明の効果】
【0050】
本発明によれば、DPA攻撃やCPA攻撃に対する効果的な対策を容易にかつ低コストで実装することが可能となる。
【図面の簡単な説明】
【0051】
図1】本発明の実施の形態に係るメモリシステムの構成を示す図である。
図2】メモリ装置の暗号ブロックの構成を示す図である。
図3】メモリ装置の暗号ブロックの変形例を示す図である。
図4】AES暗号回路の標準的な回路構成を簡略化して示す図である。
図5図2に示したノイズ生成モジュールの回路構成を示す図である。
図6】変形例1に係る暗号ブロックの第1の構成例を示す図である。
図7図6に示したノイズ生成モジュールの回路構成を示す図である。
図8】変形例1に係る暗号ブロックの第2の構成例を示す図である。
図9図8に示したノイズ生成モジュールの回路構成を示す図である。
図10図9に示した構成を基礎として、ノイズ生成モジュールの回路構成を示す図である。
図11】ホスト装置の暗号ブロックの構成を示す図である。
図12】ホスト装置の構成を簡略化して示す図である。
【発明を実施するための形態】
【0052】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0053】
図1は、本発明の実施の形態に係るメモリシステム1の構成を簡略化して示す図である。図1に示すようにメモリシステム1は、ホスト装置2と、ホスト装置2に着脱自在に接続される半導体メモリ等のメモリ装置3とを備えて構成されている。
【0054】
ホスト装置2は、CPU11、内部メモリ12、主制御回路13、及び暗号ブロック14を有している。メモリ装置3は、暗号ブロック14と同様の暗号ブロック21と、コンテンツデータ等の任意のデータが格納されたメモリアレイ22とを有している。暗号ブロック14,21は、ホスト装置2とメモリ装置3との間で送受信されるコマンドやコンテンツデータに対して、暗号化処理及び復号化処理を実行する。
【0055】
図2は、メモリ装置3の暗号ブロック21の構成を示す図である。図2に示すように暗号ブロック21は、いずれもハードウェアとして構成された暗号モジュール31及びノイズ生成モジュール32を有している。暗号モジュール31及びノイズ生成モジュール32は、同一のICチップ内に形成されている。暗号モジュール31及びノイズ生成モジュール32には、入力データD1、動作クロックC、及びリセット信号Rが入力される。なお、図3の変形例に示すように、暗号モジュール31への入力データD1に代えて暗号モジュール31からの出力データD2をノイズ生成モジュール32に入力してもよい。
【0056】
暗号モジュール31は、メモリアレイ22から読み出したコンテンツデータをホスト装置2に送信する際には、平文である入力データD1(コンテンツデータ)を暗号化することによって、暗号文である出力データD2を出力する。また、暗号モジュール31は、暗号化されたコマンドをホスト装置2から受信した際には、暗号文である入力データD1(暗号化コマンド)を復号化することによって、平文である出力データD2を出力する。本実施の形態の例において、暗号モジュール31の暗号アルゴリズムとしては、AES(Advanced Encryption Standard)が使用される。サイドチャネル攻撃では暗号モジュール31の消費電力が解析対象であるため、ノイズ生成モジュール32は、暗号モジュール31の消費電力特性を隠蔽するための消費電力ノイズを生成する。
【0057】
図4は、AES暗号回路の標準的な回路構成を簡略化して示す図である。図4に示すようにAESの暗号アルゴリズムでは、所定ビット数の入力データDIに対して、4つの基本演算(ShiftRows/SubBytes/MixColumns/AddRoundKey)が所定ラウンド数だけ繰り返し適用されることにより、出力データDOが得られる。SubBytesの演算回路は、自身への入力データに対してS−boxと呼ばれる非線形の変換処理を行うための非線形変換回路(以下「S−box回路」)を有している。S−box回路の代表的な回路構成方式としては、逆元演算及びアフィン変換の結果を真理値表で実現する方式であるテーブル方式と、個別に構成した逆元演算回路及びアフィン変換回路を直列に接続する方式である合成体方式とがある。テーブル方式のS−box回路を使用した場合には、消費電力の分散が比較的小さいためにサイドチャネル攻撃に対する耐性(耐タンパ性)は高いが、多くのリソースが必要となる。一方、合成体方式のS−box回路を使用した場合には、リソースは少なくてすむが、消費電力の分散が比較的大きいために耐タンパ性は低い。本実施の形態の例では、リソース節約のために暗号モジュール31には合成体方式のS−box回路が使用される。また、AESでは、S−box回路のビット幅は8ビットである。
【0058】
図5は、図2に示したノイズ生成モジュール32の回路構成を示す図である。図5の接続関係で示すように、ノイズ生成モジュール32は、選択回路としてのセレクタ51と、直列に接続された複数(この例では4段)のS−box回路41〜44と、同期制御回路としてのフリップフロップ61とを備えて構成されている。なお、S−box回路の段数は1段以上であればよく、所望の耐タンパ性に応じて必要な段数を設定すればよい。S−box回路の段数が多くなればなるほど、耐タンパ性は高くなる。
【0059】
セレクタ51の第1入力端子には、入力データD1が入力される。また、フリップフロップ61の出力端子がセレクタ51の第2入力端子に接続されることにより、最終段のS−box回路44の出力が初段のS−box回路41の入力にフィードバックされている。S−box回路42〜44には、前段のS−box回路41〜43からの出力データが入力される。S−box回路41〜44は、自身への入力データに対して非線形変換処理を行う。本実施の形態の例において、S−box回路41〜44には、暗号モジュール31と同様に、ビット幅が8ビットで回路構成方式が合成体方式のS−box回路が使用される。
【0060】
図2,5を参照して、暗号モジュール31及びノイズ生成モジュール32には、共通のリセット信号Rが入力される。リセット信号Rがアサートされることにより、暗号モジュール31及びノイズ生成モジュール32は動作を開始する。また、リセット信号Rがネゲートされることにより、暗号モジュール31及びノイズ生成モジュール32は動作を停止する。暗号モジュール31は、動作クロックCに同期して、入力データD1に対する暗号化処理又は復号化処理を実行する。
【0061】
図5を参照して、入力データD1はセレクタ51の第1入力端子に入力される。ノイズ生成モジュール32の動作開始時にはセレクタ51が第1入力端子を選択することにより、入力データD1は初期値として初段のS−box回路41に入力される。その後はセレクタ51が第2入力端子を選択することにより、最終段のS−box回路44の出力が、ラッチ回路であるフリップフロップ61を介して初段のS−box回路41に入力される。また、動作クロックCはフリップフロップ61に入力され、フリップフロップ61が動作クロックCに同期してラッチ動作を行うことにより、S−box回路41〜44も動作クロックCに同期して動作する。同じ動作クロックCが暗号モジュール31にも入力されているため、暗号モジュール31内のS−box回路とノイズ生成モジュール32内のS−box回路41〜44とが同期して動作する。
【0062】
なお、本実施の形態の例において、ホスト装置2の暗号ブロック14の構成は、メモリ装置3の暗号ブロック21の構成と同様である。CPU11がメモリ装置3に対するコマンド(リードコマンド及びライトコマンド等)を発行すると、そのコマンドは主制御回路13を介して暗号ブロック14に入力される。暗号ブロック14は、平文であるコマンドを暗号化することによって、暗号化コマンドを生成する。暗号化コマンドは、ホスト装置2からメモリ装置3に送信される。暗号化されたコンテンツデータをホスト装置2がメモリ装置3から受信すると、その暗号化コンテンツデータは暗号ブロック14に入力される。暗号ブロック14は、暗号化コンテンツデータを復号化する。復号化によって得られた平文のコンテンツデータは、主制御回路13を介してCPU11に入力される。
【0063】
このように本実施の形態に係る暗号ブロック21,14(暗号化装置)によれば、ノイズ生成モジュール32は、暗号モジュール31内のS−box回路(第1の非線形変換回路)の動作期間において、自身への入力データに対して非線形変換処理を行う、少なくとも一つのS−box回路41〜44(第2の非線形変換回路)を有する。一般的な擬似乱数生成器等に比べてS−box回路は消費電力の分散が大きいため、暗号モジュール31内のS−box回路の動作期間においてS−box回路41〜44を動作させることにより、分散の大きい消費電力ノイズをノイズ生成モジュール32によって生成することができる。従って、この分散の大きい消費電力ノイズによって、暗号モジュール31の消費電力特性を効果的に隠蔽することが可能となる。しかも、ノイズ生成モジュール32を追加実装するだけでよく、暗号モジュール31の暗号アルゴリズム自体は何ら変更する必要がないため、暗号モジュール31の再設計に伴う設計の複雑化やコストの増大等を回避できる。その結果、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【0064】
また、本実施の形態に係る暗号ブロック21,14によれば、ノイズ生成モジュール32は、直列に接続された複数のS−box回路41〜44を有する。複数のS−box回路41〜44を直列に接続することによって、ノイズ生成モジュール32が生成する消費電力ノイズの分散をさらに大きくできるため、暗号モジュール31の消費電力特性をより効果的に隠蔽することが可能となる。
【0065】
また、本実施の形態に係る暗号ブロック21,14によれば、S−box回路41〜44としては、ビット幅及び回路構成方式が暗号モジュール31内のS−box回路のそれと等しいS−box回路が使用される。暗号モジュール31内のS−box回路とノイズ生成モジュール32内のS−box回路41〜44とでビット幅及び回路構成方式を共通にすることにより、S−box回路41〜44の消費電力ノイズの特性を、暗号モジュール31内のS−box回路の消費電力特性に近似させることができる。その結果、ノイズ生成モジュール32が生成する消費電力ノイズによって、暗号モジュール31の消費電力特性をより効果的に隠蔽することが可能となる。
【0066】
また、本実施の形態に係る暗号ブロック21,14によれば、暗号モジュール31への入力データD1(第1のデータ)又は暗号モジュール31からの出力データD2(第2のデータ)が、初期値として初段のS−box回路41に入力される。入力データD1及び出力データD2はエントロピが担保された変動値であるため、入力データD1又は出力データD2を初段のS−box回路41に入力することにより、エントロピが担保された初期値を用いてS−box回路41〜44を動作させることが可能となる。しかも、エントロピが担保された初期値を生成する目的で擬似乱数生成器等の演算器を別途に用意する必要がないため、回路構成の簡略化を図ることができる。
【0067】
また、本実施の形態に係る暗号ブロック21,14によれば、ノイズ生成モジュール32は、暗号モジュール31内のS−box回路の動作に同期してS−box回路41〜44を動作させるためのフリップフロップ61(同期制御回路)を有する。これにより、暗号モジュール31の消費電力の遷移タイミングと、ノイズ生成モジュール32が生成する消費電力ノイズの遷移タイミングとが同期するため、暗号モジュール31の消費電力特性を消費電力ノイズによってより効果的に隠蔽することが可能となる。
【0068】
また、本実施の形態に係る暗号ブロック21によれば、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置3に実装することが可能となる。
【0069】
また、本実施の形態に係る暗号ブロック14によれば、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストでホスト装置2に実装することが可能となる。
【0070】
また、本実施の形態に係るメモリシステム1によれば、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストでメモリ装置3及びホスト装置2に実装することが可能となる。
【0071】
以下、上記実施の形態で説明した構成に対する様々な変形例について説明する。以下に述べる各変形例は、任意に組み合わせて適用することができる。
【0072】
<変形例1>
図6は、変形例1に係る暗号ブロック21の第1の構成例を示す図である。図2,3に示した構成と比較して、ノイズ生成モジュール32への入力データD1又は出力データD2の入力が省略されている。
【0073】
図7は、図6に示したノイズ生成モジュール32の回路構成を示す図である。図5に示した構成と比較してセレクタ51が省略されており、フリップフロップ61の出力が初段のS−box回路41の入力に直接接続されている。
【0074】
リセット信号Rがアサートされると、フリップフロップ61が保持している所定の固定値が、初期値として初段のS−box回路41に入力される。
【0075】
図8は、変形例1に係る暗号ブロック21の第2の構成例を示す図である。図2,3に示した構成と比較して、ノイズ生成モジュール32への入力データD1又は出力データD2及びリセット信号Rの入力が省略されている。
【0076】
図9は、図8に示したノイズ生成モジュール32の回路構成を示す図である。図5に示した構成と比較してセレクタ51が省略されており、フリップフロップ61の出力が初段のS−box回路41の入力に直接接続されている。また、フリップフロップ61へのリセット信号Rの入力が省略されている。
【0077】
メモリ装置3がホスト装置2に接続されることによってメモリ装置3に電源が投入されると、フリップフロップ61から出力された不定値が、初期値として初段のS−box回路41に入力される。
【0078】
本変形例に係る暗号ブロック21,14によれば、所定の固定値又は不定値が、初期値として初段のS−box回路41に入力される。従って、入力データD1又は出力データD2を初期値として初段のS−box回路41に入力する構成(図2,3,5)と比較すると、入力データD1又は出力データD2をS−box回路41に入力するための配線やセレクタ51が不要となるため、装置構成を簡略化することが可能となる。
【0079】
<変形例2>
図10は、図9に示した構成を基礎として、ノイズ生成モジュール32の回路構成を示す図である。図9に示した構成と比較して、セレクタ71〜74が追加されている。セレクタ71〜73の各第1入力端子には、S−box回路41〜43からの出力が、それぞれ入力される。セレクタ71〜73の各第2入力端子には、所定の固定値V0(例えば00h)が入力される。セレクタ74の第1〜第4入力端子には、S−box回路41〜44からの出力が、それぞれ入力される。ノイズ生成モジュール32では、選択信号Sによってセレクタ71〜74を切り替えることにより、直列接続体を構成するS−box回路41〜44の有効段数が可変に設定される。
【0080】
以下、有効段数を2段に設定する場合を例にとり説明する。この場合、選択信号Sによって、セレクタ71,73は第1入力端子を選択し、セレクタ72,74は第2入力端子を選択する。セレクタ71が第1入力端子を選択し、セレクタ74が第2入力端子を選択することにより、S−box回路41→セレクタ71→S−box回路42→セレクタ74→フリップフロップ61→S−box回路41という、2段のS−box回路41,42を含むフィードバックループが構成される。一方、セレクタ72が第2入力端子を選択することにより、S−box回路43には固定値V0が入力され続ける。従って、S−box回路43の出力も固定値となり、当該固定値がS−box回路43からセレクタ73を介してS−box回路44に入力され続ける。その結果、S−box回路43,44は発振せず、発振動作に伴う電力消費が回避される。
【0081】
本変形例に係る暗号ブロック21,14によれば、ノイズ生成モジュール32は、実装されている全てのS−box回路41〜44のうち、動作させるS−box回路の段数を選択するためのセレクタ71〜74(選択回路)を有する。従って、高い隠蔽効果が要求される場合には、動作させるS−box回路の段数を多く設定することにより、ノイズ生成モジュール32が生成する消費電力ノイズの分散を大きくすることができる。一方、高い隠蔽効果が要求されない場合には、動作させるS−box回路の段数を少なく設定することにより、暗号ブロック21,14全体の消費電力量を低減することが可能となる。
【0082】
<変形例3>
上記実施の形態の例では、暗号モジュール31内のS−box回路とノイズ生成モジュール32内のS−box回路41〜44とで、ビット幅を互いに共通(いずれも8ビット)としたが、両者のビット幅を異ならせてもよい。
【0083】
AESではS−boxのビット幅は8ビットであり、MinalpherではS−boxのビット幅は4ビットである。従って、暗号モジュール31の暗号アルゴリズムとしてMinalpherを採用し、ノイズ生成モジュール32の暗号アルゴリズムとしてAESを採用する。これにより、ノイズ生成モジュール32内のS−box回路41〜44のビット幅は、暗号モジュール31内のS−box回路のビット幅より大きくなる。
【0084】
本変形例に係る暗号ブロック21,14によれば、ノイズ生成モジュール32内のS−box回路41〜44としては、ビット幅が暗号モジュール31内のS−box回路よりも大きいS−box回路が使用される。ビット幅が大きいほど消費電力の分散も大きくなるため、暗号モジュール31内のS−box回路よりもビット幅の大きいS−box回路41〜44を使用することにより、暗号モジュール31の消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュール32によって生成することができる。その結果、ノイズ生成モジュール32が生成する消費電力ノイズによって、暗号モジュール31の消費電力特性をより効果的に隠蔽することが可能となる。
【0085】
<変形例4>
上記実施の形態の例では、暗号モジュール31内のS−box回路とノイズ生成モジュール32内のS−box回路41〜44とで、回路構成方式を互いに共通(いずれも合成体方式)としたが、両者の回路構成方式を異ならせてもよい。
【0086】
例えば、暗号モジュール31内のS−box回路には、消費電力の分散が比較的小さいテーブル方式のS−box回路を採用し、ノイズ生成モジュール32内のS−box回路41〜44には、消費電力の分散が比較的大きい合成体方式のS−box回路を採用する。テーブル方式のS−box回路には多くのリソースが必要となるが、メモリ装置3に比べてホスト装置2のリソースは潤沢であるため、ホスト装置2内の暗号ブロック14に関しては本変形例の適用は容易である。また、メモリ装置3が潤沢なリソースを有している場合には、メモリ装置3内の暗号ブロック21に関して本変形例を適用してもよい。
【0087】
本変形例に係る暗号ブロック21,14によれば、ノイズ生成モジュール32内のS−box回路41〜44としては、消費電力の分散が暗号モジュール31内のS−box回路よりも大きい回路構成方式のS−box回路が使用される。これにより、暗号モジュール31の消費電力特性よりも分散の大きい消費電力ノイズを、ノイズ生成モジュール32によって生成することができる。その結果、ノイズ生成モジュール32が生成する消費電力ノイズによって、暗号モジュール31の消費電力特性をより効果的に隠蔽することが可能となる。
【0088】
<変形例5>
上記実施の形態の例では、暗号モジュール31及びノイズ生成モジュール32をいずれもハードウェアとして構成したが、暗号モジュール31と同様の処理をソフトウェア処理によって実行してもよい。
【0089】
図11は、ホスト装置2の暗号ブロック14の構成を示す図である。図11に示すように暗号ブロック14は、バスを介して相互に接続された、CPU81、メモリ82、バッファ83、及びノイズ生成モジュール32を備えて構成されている。CPU81は、処理対象のデータをメモリ82から読み出して処理し、その処理結果をバッファ83に格納することにより、ハードウェア構成の暗号モジュール31と同様の暗号化処理及び復号化処理を実行する。なお、メモリ装置3にCPUを搭載できる場合には、メモリ装置3内の暗号ブロック21に関して本変形例を適用してもよい。
【0090】
<変形例6>
上記実施の形態の例では、暗号モジュール31及びノイズ生成モジュール32をいずれもハードウェアとして構成したが、ノイズ生成モジュール32と同様の処理をソフトウェア処理によって実行してもよい。
【0091】
図12は、ホスト装置2の構成を簡略化して示す図である。図12に示すようにホスト装置2は、複数のコア11A〜11Dを有するマルチコア構成のCPU11と、プログラム90が格納された内部メモリ12と、ハードウェアとして構成された暗号モジュール31と、メモリコントローラ等の主制御回路13とを備えている。CPU11、内部メモリ12、暗号モジュール31、及び主制御回路13は、バスを介して相互に接続されている。CPU11は、内部メモリ12からプログラム90を読み出して実行することにより、ノイズ生成モジュールとして機能する。なお、CPUに代えて、GPU又はDSP等の他のソフトウェア処理装置を用いてもよい。
【0092】
以下、本変形例に係るホスト装置2の動作について説明する。まず、メモリ装置3から読み出された暗号化データD100が主制御回路13に入力される。
【0093】
次に主制御回路13は、所定サイズ分の暗号化データD100Aの入力が完了すると、その旨の通知信号D50をCPU11に入力する。
【0094】
次にコア11Aは、通知信号D50を受領すると、主制御回路13から暗号化データD100Aを取得する。そして、暗号化データD100Aの取得が完了した旨の通知信号D51を主制御回路13に入力する。
【0095】
次に主制御回路13は、通知信号D51を受領すると、暗号化データD100を暗号モジュール31に入力する。
【0096】
次にコア11Aは、コア11B〜11Dの稼働状況を確認することにより、少なくとも一つ(望ましくは複数)の非稼働状態のコアを特定する。この例では、コア11B〜11Dはいずれも非稼働状態であったものとする。
【0097】
次にコア11Aは、非稼働状態のコア11B〜11Dに対して、暗号化データD100Aを初期値として非線形変換処理を開始させる。また、コア11Aは、暗号モジュール31に対して暗号化データD100の復号化処理を開始させる。次にコア11Aは、自身も暗号化データD100Aを初期値として非線形変換処理を開始する。コア11A〜11Dは、非線形変換処理によって得られたデータを次の入力データとして、非線形変換処理を繰り返し実行する。これにより、暗号モジュール31内のS−box回路による非線形変換処理(ハードウェア処理)と、コア11A〜11Dによる非線形変換処理(ソフトウェア処理)とが並行して実行される。つまり、コア11A〜11Dは、暗号モジュール31の消費電力特性を隠蔽するための消費電力ノイズを生成するノイズ生成モジュールとして機能する。
【0098】
なお、コア11A〜11Dによる非線形変換処理のビット幅は、上記実施の形態と同様に暗号モジュール31内のS−box回路のビット幅と共通であってもよいし、上記変形例3と同様に暗号モジュール31内のS−box回路のビット幅より大きくてもよい。
【0099】
また、コア11A〜11Dによる非線形変換処理の初期値としては、暗号化データD100Aに代えて、上記変形例1と同様に所定の固定値であってもよい。この場合、設計を容易化できるとともに、ソフトウェア実装の負荷を軽減することが可能となる。また、暗号モジュール31が暗号化処理を行う場合には、暗号モジュール31からの出力データの一部を、初期値として用いてもよい。
【0100】
次に暗号モジュール31は、暗号化データD100の復号化処理が完了すると、その旨を通知する割込信号D52をコア11Aに入力する。
【0101】
次にコア11Aは、割込信号D52を受領すると、コア11B〜11Dに対して非線形変換処理を終了させるとともに、自身も非線形変換処理を終了する。これにより、コア11A〜11Dは通常処理に復帰する。
【0102】
本変形例に係るホスト装置2によれば、コア11A〜11D(データ処理部)によるソフトウェア処理によって非線形変換処理を行うことにより、ハードウェアとして構成されたS−box回路をホスト装置2に実装する必要がなく、ファームウェアのバージョンアップ等によって同等機能を追加実装できるため、DPA攻撃やCPA攻撃に対する効果的な対策を、容易にかつ低コストで実装することが可能となる。
【0103】
また、本変形例に係るホスト装置2によれば、複数のコア11A〜11Dのうち非稼働状態である少なくとも一つのコア(望ましくは複数のコア)が、非線形変換処理を実行する。非稼働状態であるコアに非線形変換処理を実行させることにより、既存リソースの有効活用を図ることができる。
【0104】
なお、以上の説明ではソフトウェア処理によるノイズ生成モジュールをホスト装置2に実装する例について述べたが、メモリ装置3にCPUを搭載できる場合には、メモリ装置3内の暗号ブロック21に関して本変形例を適用してもよい。
【符号の説明】
【0105】
1 メモリシステム
2 ホスト装置
3 メモリ装置
11 CPU
11A〜11D コア
14,21 暗号ブロック
22 メモリアレイ
31 暗号モジュール
32 ノイズ生成モジュール
41〜44 S−box回路
61 フリップフロップ
71〜74 セレクタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12