(57)【要約】【課題】メモリアクセス時のメモリ自身のサイドチャネル情報のアドレス依存性を低減することのできる耐タンパメモリ方式を得る。【解決手段】１つのポートから設定アドレスに対応した読み出しアクセスを実行する際に、前記設定アドレスの全てのビットを反転させた反転アドレスを生成し、他方のポートあるいはダミーのポートから前記反転アドレスに対応した読み出しアクセスを実行するアドレス制御部（１１）を備えることで、サイドチャネル情報のアドレス依存性を低減させる。【選択図】図１
2014216659.tif 000002
【特許請求の範囲】
【請求項１】
メモリのアクセス時に、メモリ自身のサイドチャネル情報のアドレス依存性を低減させる耐タンパメモリ方式であって、
１つのポートから設定アドレスに対応した読み出しアクセスを実行する際に、前記設定アドレスの全てのビットを反転させた反転アドレスを生成し、他方のポートあるいはダミーのポートから前記反転アドレスに対応した読み出しアクセスを実行するアドレス制御部
を備える耐タンパメモリ方式。
【請求項２】
請求項１に記載の耐タンパメモリ方式であって、
前記メモリは、２ポートメモリであり、
前記アドレス制御部は、２ポートの一方のポートにのみ前記設定アドレスによる読み出しアクセスであった場合には、生成した前記反転アドレスにより前記２ポートの他方のポートに対して読み出しアクセスを実行する
耐タンパメモリ方式。
【請求項３】
請求項１に記載の耐タンパメモリ方式であって、
前記メモリは、１ポートメモリであり、
前記アドレス制御部は、前記１ポートメモリに前記設定アドレスによる読み出しアクセスがあった場合には、生成した前記反転アドレスにより前記ダミーのポートに対して前記読み出しアクセスとしてダミーの読み出しアクセスを実行し、
前記１ポートメモリを構成するそれぞれのメモリセルは、前記ダミーのポートに対する前記ダミーの読み出しアクセスに応じるように、本来のメモリアクセスとは関係のないダミートランジスタを有する
耐タンパメモリ方式。
【請求項４】
請求項３に記載の耐タンパメモリ方式であって、
前記アドレス制御部は、前記ダミーのポートに対する前記ダミーの読み出しアクセスを、前記メモリセルの行選択信号あるいは列選択信号のいずれか一方、あるいは前記行選択信号および前記列選択信号の両方に対して実行する
耐タンパメモリ方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス時のメモリ自身のサイドチャネル情報のアドレス依存性を低減することのできる耐タンパメモリ方式に関する。
【背景技術】
【０００２】
システムＬＳＩは、一般に、内部に中央処理装置（ＣＰＵ）および各種メモリを含み、それらがメモリバスを介して接続されている。また、タイマなどの周辺回路、入出力回路、クロック／リセット回路なども含まれる。さらに、暗号コプロセッサなどの専用回路がシステムＬＳＩの構成要素として含まれることもある。図４は、一般的なシステムＬＳＩの概要を示す図である。
【０００３】
一方、システムＬＳＩ内部のＣＰＵや暗号コプロセッサが鍵などの秘密情報に関る動作（例えば、暗号化や復号）を実行中の、システムＬＳＩのサイドチャネル情報（例えば、消費電流や電磁波など）の秘密情報に依存したわずかな偏りを解析することによって、秘密情報を取得する、いわゆるサイドチャネル攻撃が知られている（例えば、非特許文献１〜３参照）。
【０００４】
上述した秘密情報に関る動作が、ＲＡＭやＲＯＭなどに対するメモリアクセスであった場合には、そのアドレスやデータが秘密情報に依存して決まる（例えば、ＡＥＳなどの共通鍵暗号のＳｂｏｘをメモリ上のテーブル参照で実現する場合など）。従って、アドレスやデータに依存してメモリアクセス時のサイドチャネル情報が偏っていれば、サイドチャネル攻撃によって秘密情報が取得されてしまう可能性がある。
【０００５】
サイドチャネル情報の偏りは、メモリにアクセスするＣＰＵや暗号コプロセッサ、それらとメモリをつなぐバス、メモリなどの複数の箇所で発生する可能性がある。サイドチャネル攻撃による秘密情報の漏洩を防止するためには、これら全てにおいて、アドレスやデータに依存したサイドチャネル情報の偏りを低減することが重要となる。
【０００６】
そこで、メモリアクセスに付随する上述した脅威に対する対策として、ＣＰＵや暗号コプロセッサとメモリをつなぐバス上に、本来のメモリアドレスまたはデータを変換したものを出力し、それを受け取った側で、本来のメモリアドレスまたはデータに逆変換して用いるものが挙げられる（例えば、特許文献１〜３参照）。これにより、バス上で発生するサイドチャネル情報の偏りを低減できる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−５６９６６号公報
【特許文献２】特開２０００−２１５６８１号公報
【特許文献３】特開２００２−３２８８４５号公報
【非特許文献】
【０００８】
【非特許文献１】Ｋｏｃｈｅｒ他、「Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ」ＣＲＹＰＴＯ  １９９９．ＬＮＣＳ、ｖｏｌ．１６６６、ｐｐ．３８８−３９７、Ｓｐｒｉｎｇｅｒ、Ｈｅｉｄｅｌｂｅｒｇ（１９９９）
【非特許文献２】Ｂｒｉｅｒ他、「Ｃｏｒｒｅｌａｔｉｏｎ  Ｐｏｗｅｒ  Ａｎａｌｙｓｉｓ  ｗｉｔｈ  ａ  Ｌｅａｋａｇｅ  Ｍｏｄｅｌ」ＣＨＥＳ２００４、ＬＮＣＳ、  ｖｏｌ．３１５６、ｐｐ．１６−２９、Ｓｐｒｉｎｇｅｒ、Ｈｅｉｄｅｌｂｅｒｇ（２００４）
【非特許文献３】Ｓｕｚｕｋｉ他、「ＤＰＡ  Ｌｅｋａｇｅ  Ｍｏｄｅｌｓ  ｆｏｒ  ＣＭＯＳ  Ｌｏｇｉｃ  Ｃｉｒｃｕｉｔｓ」ＣＨＥＳ  ２００５。ＬＮＣＳ、ｖｏｌ．３６５９、ｐｐ．  ３６６−３８２、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ（２００５）
【非特許文献４】「ＣＭＯＳ  ＶＬＳＩ設計の原理−システムの視点から−」（丸善株式会社）、平成５年１０月５日第３刷発行、ｐｐ．３０６−３１２
【非特許文献５】佐伯他、「ＳＲＡＭアクセスのサイドチャネル情報」２０１３年暗号と情報セキュリティシンポジウム、ＳＣＩＳ２０１３
【非特許文献６】橋本他、「Ｄｕａｌ−Ｒａｉｌ  ＲＳＬ  メモリ方式を適用したＡＥＳ  暗号回路の設計およびＤＰＡ耐性評価」２０１２年暗号と情報セキュリティシンポジウム、ＳＣＩＳ２０１２
【非特許文献７】前川他、「ソフトウェア実装暗号におけるシンボル置換を利用した電力解析対策手法」２０１３年暗号と情報セキュリティシンポジウム、ＳＣＩＳ２０１３
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来技術には、以下のような課題がある。
これら特許文献１〜３における先行技術では、メモリ自身の脆弱性は、考慮されていない。このため、もしもメモリ自身にサイドチャネル情報の偏りが存在すると、やはり秘密情報が取得されてしまう可能性がある。
【００１０】
ここで、メモリには、さまざまな種類（ＤＲＡＭ、ＳＲＡＭ、ＲＯＭなど）が存在する。例えば、ＳＲＡＭは、多数の１ビット分のメモリセルが行列状に規則正しく配置されたメモリアレイ、行／列アドレスデコーダ、制御回路などから構成される（例えば、非特許文献４参照）。
【００１１】
図５は、従来の典型的な１ポートＳＲＡＭについての概要を示した図である。具体的には、図５の上部は、１ビット分のメモリセルを表しており、図５の下部は、多数のメモリセルからなるメモリアレイを含むメモリブロック全体を表している。
【００１２】
図５中の各名称は、以下の内容を意味している。
ａｄｄｒｅｓｓ：ＳＲＡＭに入力されるアドレス
ｉｎ          ：書き込み時にＳＲＡＭに入力される書き込みデータ
ｏｕｔ        ：読み出し時にＳＲＡＭから出力される読み出しデータ
ｒｅｎ        ：ＳＲＡＭに入力される制御信号で、読み出しアクセスであることを示すもの
ｗｅｎ        ：ＳＲＡＭに入力される制御信号で、書き込みアクセスであることを示すもの
【００１３】
このような構成は、基本的に、他の多くのメモリでも共通である。ＳＲＡＭからデータを読み出す際の概略動作は、以下の通りである。
・ａｄｄｒｅｓｓは、そのビット位置によって、行アドレス（Ｒａｄｒ）と列アドレス（Ｃａｄｒ）に分割され、それぞれ行デコーダと列デコーダによってデコードされる。
・行デコーダは、２ｎ−ｋ行のうちの１行を選択し、対応するワード線が駆動される。
・選択された行に含まれる２ｋ列分のデータが全てそれぞれの列のビット線に読み出され、その中から列デコーダによって選択された１列のデータが読み出しデータとしてＳＲＡＭ外部に出力される（言い換えると、行アドレスと列アドレスの交点となるメモリセルのデータが読み出される）。
【００１４】
どのワード線が駆動されるか、あるいは、どの列のデータが選択されるかは、アドレスによって決まり、それに応じて、回路動作も変わる。従って、ＳＲＡＭ自身のサイドチャネル情報は、アドレスに依存して偏る可能性がある。
【００１５】
メモリ自身のサイドチャネル情報に関して、高帯域の磁界プローブを用いてサイドチャネル情報（電磁波）を測定した場合、メモリアクセス時のサイドチャネル情報のアドレス依存性が、下式（１）で近似できることが示されている従来技術がある（例えば、非特許文献５参照）。
Ｌａｄｒ≒ｋ０＊ｉｎｔ（Ｒａｄｒ）＋ｋ１＊ＨＷ（Ｒａｄｒ）
＋ｋ２＊ｉｎｔ（Ｃａｄｒ）＋ｋ３＊ＨＷ（Ｃａｄｒ）
＋ｂｉａｓ                                                  （１）
ここで、各符号は、以下の内容を意味している。
ｋｎ              ：比例係数
Ｒａｄｒ          ：行アドレス
Ｃａｄｒ  ｄａｔａ：列アドレス
ＨＷ（Ｘ）        ：Ｘのハミング重み（ハミング重みは、１であるビットの数）
ｉｎｔ（Ｘ）      ：Ｘの整数値
ｂｉａｓ          ：定数
【００１６】
上式（１）は、メモリアクセス時のサイドチャネル情報が、その時の行アドレス、列アドレスのそれぞれの値やハミング重みに比例する成分を持つことを示しており、アドレスに依存してサイドチャネル情報が偏ることを意味する。これは、メモリアクセスに潜在する脆弱性である。
【００１７】
この非特許文献５には、例えば、非特許文献６で提案されている電力解析攻撃に対策したメモリであっても、空間分解能の高い電磁波解析攻撃で、上式（１）で表される関係を利用すると、秘密情報が取得可能であることが示されている。
【００１８】
また、異なるアドレスであっても、メモリアクセス時のアドレスのハミング重みをそろえるように工夫することにより、サイドチャネル攻撃への対策を施す方法が提案されている（例えば、非特許文献７参照）。しかしながら、この非特許文献７においても、上式（１）のアドレスの値に比例する成分については考慮されていないので、やはり秘密情報が取得される可能性がある。
【００１９】
なお、先の図５では、行アドレスから生成されるワード線（ｗｏｒｄ０からｗｏｒｄ２ｎ−ｋ−１に相当）が順番に並んでいる（図には現れていないが、列を選択する信号も同様）。そして、もしもその並びを変えたＳＲＡＭを製造したとすると、上式（１）のアドレスの値に依存する項の形は、変わり得る。しかしながら、サイドチャネル情報がアドレスに依存して偏ることには変わりなく、この偏りを解析することで、秘密情報が取得される可能性があるという問題は、同様に存在する。
【００２０】
本発明は、前記のような課題を解決するためになされたものであり、メモリアクセス時のメモリ自身のサイドチャネル情報のアドレス依存性を低減することのできる耐タンパメモリ方式を得ることを目的とする。
【課題を解決するための手段】
【００２１】
本発明に係る耐タンパメモリ方式は、メモリのアクセス時に、メモリ自身のサイドチャネル情報のアドレス依存性を低減させる耐タンパメモリ方式であって、１つのポートから設定アドレスに対応した読み出しアクセスを実行する際に、設定アドレスの全てのビットを反転させた反転アドレスを生成し、他方のポートあるいはダミーのポートから反転アドレスに対応した読み出しアクセスを実行するアドレス制御部を備えるものである。
【発明の効果】
【００２２】
本発明によれば、本来の設定アドレスによって発生するサイドチャネル情報を打ち消すように、設定アドレスの各ビットの０と１を全て反転させた反転アドレスを生成し、反転アドレスへの擬似的あるいは実際のアクセスを同時に実行することにより、メモリアクセス時のメモリ自身のサイドチャネル情報のアドレス依存性を低減することのできる耐タンパメモリ方式を得ることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態１における２ポートＳＲＡＭについての概要を示した図である。
【図２】従来の２ポートＳＲＡＭについての概要を示した図である。
【図３】本発明の実施の形態２における１ポートＳＲＡＭについての概要を示した図である。
【図４】一般的なシステムＬＳＩの概要を示す図である。
【図５】従来の典型的な１ポートＳＲＡＭについての概要を示した図である。
【発明を実施するための形態】
【００２４】
以下、本発明の耐タンパメモリ方式の好適な実施の形態につき図面を用いて説明する。なお、以下の説明では、主にＳＲＡＭについて説明するが、本発明は、ＳＲＡＭに限定されるものではなく、規則正しい行列構造を持つ他のメモリにも適用可能である。
【００２５】
図１は、本発明の一例である２ポートＳＲＡＭについての概要を示した図である。まず始めに、本発明の基本アイディアについて、図１を用いて説明する。上式（１）で表されるようなアドレス依存性を低減するためには、本来のアドレスによって発生するサイドチャネル情報を打ち消すような、第２のアドレスへの擬似的あるいは実際のアクセスを同時に実行すればよい。
【００２６】
概念的には、次のようになる。まず、各符号を、以下のように定義する。
ａｄｒ    ：本来のアドレス
ａｄｒ’  ：ａｄｒの０と１を全て反転したもの
Ｒａｄｒ  ：ａｄｒの行アドレス
Ｃａｄｒ  ：ａｄｒの列アドレス
Ｒａｄｒ’：ａｄｒ’の行アドレス
Ｃａｄｒ’：ａｄｒ’の列アドレス
【００２７】
先の図５に示した従来の１ポートＳＲＡＭでは実際にはあり得ないが、仮に、単一のメモリに対して、ａｄｒとａｄｒ’に対するデータ読み出しが同時に発生したとする。その時のサイドチャネル情報は、上式（１）を適用すると、下式（２）のようにまとめられる。すなわち、理想的には、ａｄｒによらず、固定値となる。
Ｌａｄｒ≒ｋ０＊ｉｎｔ（Ｒａｄｒ）＋ｋ１＊ＨＷ（Ｒａｄｒ）
＋ｋ２＊ｉｎｔ（Ｃａｄｒ）＋ｋ３＊ＨＷ（Ｃａｄｒ）
＋ｋ０＊ｉｎｔ（Ｒａｄｒ’）＋ｋ１＊ＨＷ（Ｒａｄｒ’）
＋ｋ２＊ｉｎｔ（Ｃａｄｒ’）＋ｋ３＊ＨＷ（Ｃａｄｒ’）
＋ｂｉａｓ’
＝ｋ０＊ｉｎｔ（ａｌｌ  １）＋ｋ１＊ＨＷ（ａｌｌ  １）
＋ｋ２＊ｉｎｔ（ａｌｌ  １）＋ｋ３＊ＨＷ（ａｌｌ  １）＋ｂｉａｓ’
＝（アドレスに依存しない固定値）                              （２）
そこで、上式（２）の概念を実現するための実施の形態を、以下に具体的に説明する。
【００２８】
実施の形態１．
すでに示したが、図１は、本発明の実施の形態１における２ポートＳＲＡＭ（１０）についての概要を示した図である。これに対して、図２は、従来の２ポートＳＲＡＭ（１００）についての概要を示した図である。図２に示した従来技術の２ポートメモリ１００は、先の図５に示した従来技術の１ポートメモリ２００と比較するとわかるように、１ビット分のメモリセルに、２つのワード線（ｗｏｒｄＡ、ｗｏｒｄＢ）が接続されており、２つの行が個別に選択できるようになっており（図には現れていないが、列の選択も同様）、共通のメモリアレイに２つのポート（ａｄｄｒｅｓｓ、ｉｎ、ｏｕｔ、ｒｅｎ、ｗｅｎのそれぞれについてＡポートとＢポート）からアクセス可能な構成となっている。
【００２９】
一方、図１に示した本実施の形態１における２ポートメモリ１０では、各ポートのアドレスデコーダに渡すアドレスとして、アドレス制御部１１が、当該ポートから入力されたアドレスと、他方のポートから入力されたアドレスの各ビットの０と１を全て反転した反転アドレスのいずれかを選択可能としている点を技術的特徴としている。
【００３０】
このような技術的特徴を有するメモリ１０は、次のように動作する。まず、２つのポートから同時にアクセスされる場合には、従来技術の２ポートメモリと同様であり、アドレスデコーダには、それぞれ対応するポートから入力されたアドレスが選択されて渡される。
【００３１】
これに対して、片方のポート（仮にＡポートとする）のみからアクセスされる場合には、アドレス制御部１１は、ＡポートのアドレスデコーダにはＡポートから入力されたアドレスを選択して渡す。一方、アドレス制御部１１は、他方のポート（Ｂポート）のアドレスデコーダには、Ａポートから入力されたアドレスの反転アドレスを選択して渡す。
【００３２】
さらに、当該アクセスが読み出しアクセスであった場合には、Ａポートの出力データ（ｏｕｔＡ）には正規のアドレスのデータが読み出され、Ｂポートの出力データには当該アクセスでは本来必要のないデータ（反転アドレスに格納されていた意味の無いデータ）が読み出される。この時、Ａポートの読み出し制御信号（ｒｅｎＡ）は、有意になっているが、Ｂポートの読み出し制御信号（ｒｅｎＢ）は、非有意である。
【００３３】
図１では省略しているが、いずれかの読み出し制御信号が有意であれば、両ポートがともに読み出し動作をするよう、両ポートの制御回路は動作する。すなわち、各ポートの読み出し制御信号が１で有意であるものとすると、ｒｅｎＡとｒｅｎＢの論理和が両ポートの制御回路に読み出し制御信号として渡される。
【００３４】
一方、当該アクセスが書き込みアクセスであった場合には、Ａポートの書き込み制御信号（ｗｅｎＡ）は、有意になっているが、Ｂポートの書き込み制御信号（ｗｅｎＢ）は、非有意である。
【００３５】
図１では省略しているが、これらがそれぞれ両ポートの制御回路の書き込み制御信号（ｗｅｎＡ、ｗｅｎＢ）として渡される。このため、Ａポートは、外部から入力されたアドレス（ａｄｄｒｅｓｓＡ）に対して、外部から入力されたデータ（ｉｎＡ）を書き込む動作を行う。一方、Ｂポートは、アドレスデコーダには反転アドレスが渡されるが、そのアドレスにデータを書き込む動作は行なわない。
【００３６】
本実施の形態１では、以上のように、特に一方のポートのみが読み出しアクセスされた時に、アドレス制御部１１の働きにより、他方のポートが上式（１）で表されるサイドチャネル情報のアドレス依存性を打ち消すような動作を行なう。この結果、サイドチャネル情報のアドレス依存性を低減することができることとなる。
【００３７】
前述のように、両ポートのサイドチャネル情報のアドレス依存性が近いほど（すなわち、両ポートにおける上式（１）の各係数が近いほど）、それらがうまく打ち消し合って、サイドチャネル情報全体のアドレス依存性が低減される。このため、両ポートのデコーダや同じアドレスに対する行選択信号、列選択信号などは、できるだけ近接させ、同じアドレスにアクセスする際の両ポートのサイドチャネル情報をそろえることが望ましい。
【００３８】
代表的な共通鍵暗号方式の１つであるＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）では、ラウンドと呼ばれる処理を複数回繰り返す。そして、１ラウンド分のデータの流れの中では、Ｓｂｏｘによるデータ変換が１６回行なわれる。このデータ変換をメモリ上のテーブル参照で実現する場合には、例えば、１クロックサイクルで１ラウンド分のデータ変換を行なおうとすると、１ポートメモリを用いる場合には、１６個のテーブルを持つ必要がある。
【００３９】
しかしながら、ＡＥＳでは、全てのテーブルの内容（どのアドレスにどのようなデータが格納されているか）は、同一である。このため、２ポートメモリを使用して２つのポートから１つのテーブルに同時アクセスすることで、テーブルの数を半分にできる。
【００４０】
しかしながら、本実施の形態１における２ポートメモリでテーブル参照時のサイドチャネル情報のアドレス依存性を低減するためには、２つのポートから同時に有効なテーブル参照を行なうことはできない。このため、１クロックサイクルで１６回のテーブル参照を行なうためには、１６個のテーブルを持つことになる。あるいは、テーブルの数を半分にするためには、１ラウンド分のテーブル参照を半数ずつ２回に分けて行うことになり、性能低下につながる。
【００４１】
しかしながら、サイドチャネル攻撃が主に最初または最後のラウンドに対して行われることを考慮すると、アドレス制御部１１が、最初と最後のラウンドだけテーブル参照を半数ずつ２回に分けて行い、中間ラウンドでは２つのポートから同時に参照するように制御することで、テーブルの数を半分に近づけつつ、サイドチャネル攻撃に耐性を持たせることができ、かつ、性能低下を最小限に抑えることが可能となる。
【００４２】
以上のように、実施の形態１によれば、２ポートメモリ方式における各ポートのアドレスデコーダに渡すアドレスとして、当該ポートから入力されたアドレスと、他方のポートから入力されたアドレスの各ビットの０と１を全て反転させた反転アドレスのいずれかを選択可能としている。この結果、他方のポートがサイドチャネル情報のアドレス依存性を打ち消すような動作を行なうこととなり、サイドチャネル情報のアドレス依存性を低減することが可能となる。
【００４３】
さらに、両ポートのデコーダや、同じアドレスに対する行選択信号、列選択信号をできるだけ近接させ、同じアドレスにアクセスする際の両ポートのサイドチャネル情報をそろえることで、サイドチャネル情報全体のアドレス依存性の低減が、より効果的に達成されることとなる。
【００４４】
さらに、本実施の形態１における２ポートメモリ方式をＡＥＳに適用する場合には、最初と最後のラウンドだけテーブル参照を半数ずつ２回に分けて行い、中間ラウンドでは２つのポートから同時に参照するように制御することで、テーブルの数を半分に近づけつつ、サイドチャネル攻撃に耐性を持たせることができ、かつ、性能低下を最小限に抑えることが可能となる。
【００４５】
なお、上述した実施の形態１では、従来技術の２ポートメモリとは異なる２ポートメモリを用いて、「単一ポートからの読み出しアクセスの際は、他方のポートからその反転アドレスに対して読み出しアクセスを実行する」ことを実現した。しかしながら、本発明は、このような構成に限定されず、反転アドレスの制御を行なう論理回路をメモリ外部に設けて、従来技術の２ポートメモリを用いることでも、同等の効果を得ることができる。
【００４６】
実施の形態２．
本発明の実施２では、アドレス依存性を低減するための本発明の基本アイディアを、１ポートメモリに適用する場合について説明する。図３は、本発明の実施の形態２における１ポートＳＲＡＭ（２０）についての概要を示した図である。理想的には、先の実施の形態１で説明したように、２ポートメモリ１０を用いることが望ましい。しかしながら、図３で示すような特別な構成を備えた１ポートメモリ２０によっても、サイドチャネル情報のアドレス依存性を低減する効果を実現できる。
【００４７】
本実施の形態２においてサイドチャネル情報の行アドレス依存性を低減するための手段は、次の通りである。行アドレスに関して、図３の上図で示した１ビット分のメモリセルには、従来技術を示した先の図２と比べるとわかるように、ダミーのワード線（ｄｕｍｍｙ  ｗｏｒｄ）とダミートランジスタが追加されている。
【００４８】
ダミーのワード線は、ダミートランジスタのゲート端子に接続されている。ワード線（ｗｏｒｄ）とダミーのワード線（ｄｕｍｍｙ  ｗｏｒｄ）のサイドチャネル情報の区別を困難にするために、ワード線とダミーのワード線がそれぞれ接続されるゲート端子の入力容量は、できるだけ均等にする。ダミートランジスタのソース端子とドレイン端子の接続先については、特に言及しない。
【００４９】
また、図３の下図に示すように、このメモリがアクセスされた時には、アドレス制御部２１が、ダミー側の行アドレスデコーダに、外部から入力されたアドレスの反転アドレスを渡すことで、反転アドレスに対応したダミー行選択信号（ｄｕｍｍｙ  ｗｏｒｄ）が生成される。この動作は、読み出し時も書き込み時も同様である。
【００５０】
サイドチャネル情報の列アドレス依存性を低減するための手段も、先の実施の形態１とほぼ同様であり、アドレス制御部２１が、本来のアドレスの反転アドレスを列アドレスデコーダに渡すことで、反転アドレスに対応したダミー列選択信号が生成される。
【００５１】
ダミー列選択信号は、列選択信号のサイドチャネル情報の列アドレス依存性を打ち消すためのものであり、その値が０であっても１であっても接続先は何の動作も行わない。接続先は、行アドレスについて示したダミートランジスタのように、単なる負荷で構わないが、その入力容量は、同じアドレスに対応する列選択信号の接続先の入力容量とできるだけ近くなるようにする。
【００５２】
サイドチャネル情報の行アドレス依存性または列アドレス依存性の一方のみを低減すれば十分であるような場合には、上記の手段のうち、行または列の一方のみを実施すればよい。
【００５３】
先の実施の形態１で説明したように、正規の回路動作とダミーの回路動作のサイドチャネル情報のアドレス依存性が近いほど、それらがうまく打ち消し合って、サイドチャネル情報全体のアドレス依存性が低減される。このため、双方のデコーダや同じアドレスに対する行選択信号、列選択信号などは、できるだけ近接させ、同じアドレスにアクセスする際の両ポートのサイドチャネル情報をそろえることが望ましい。
【００５４】
以上のように、実施の形態２によれば、ダミーのワード線とダミートランジスタを追加することで、アドレス依存性を低減するための本発明の基本アイディアを、１ポートメモリに適用することが可能となる。
【符号の説明】
【００５５】
１０  ２ポートメモリ、１１  アドレス制御部、２０  １ポートメモリ、２１  アドレス制御部。
【図１】
2014216659.tif 000003
【図２】
2014216659.tif 000004
【図３】
2014216659.tif 000005
【図４】
2014216659.tif 000006
【図５】
2014216659.tif 000007