JP2022084538A - 電子回路、電子回路の設計方法、電子回路内のデータ処理方法 - Google Patents

電子回路、電子回路の設計方法、電子回路内のデータ処理方法 Download PDF

Info

Publication number
JP2022084538A
JP2022084538A JP2021182855A JP2021182855A JP2022084538A JP 2022084538 A JP2022084538 A JP 2022084538A JP 2021182855 A JP2021182855 A JP 2021182855A JP 2021182855 A JP2021182855 A JP 2021182855A JP 2022084538 A JP2022084538 A JP 2022084538A
Authority
JP
Japan
Prior art keywords
electronic circuit
drive unit
capacitive load
logical state
driven
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021182855A
Other languages
English (en)
Other versions
JP7349482B2 (ja
Inventor
ハーシュマン,ジヴ
Hershman Ziv
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nuvoton Technology Corp
Original Assignee
Nuvoton Technology Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nuvoton Technology Corp filed Critical Nuvoton Technology Corp
Publication of JP2022084538A publication Critical patent/JP2022084538A/ja
Application granted granted Critical
Publication of JP7349482B2 publication Critical patent/JP7349482B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/20Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0002Multistate logic
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/0005Modifications of input or output impedance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7266Hardware adaptation, e.g. dual rail logic; calculate add and double simultaneously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

【課題】電子回路に対するサイドチャネル攻撃を防止する方法及びシステムを提供する。【解決手段】電子回路は、少なくとも2つの入力及び少なくとも1つの出力を含み、入力に応答して出力を第1の論理状態と第2の論理状態との間で切り替えるように構成される駆動ユニット、少なくとも1つの被駆動ユニットのそれぞれが、少なくとも2つの入力を含み、少なくとも2つの入力のうちの少なくとも1つが、駆動ユニットの出力によって駆動される少なくとも1つの被駆動ユニット及び駆動ユニットを被駆動ユニットに接続する信号ネットワークに設置され、信号ネットワークでの第1の容量負荷と第2の容量負荷を平衡化させる。第1の容量負荷は、第1の論理状態から第2の論理状態への遷移により生じる電流に応答し、第2の容量負荷は、第2の論理状態から第1の論理状態への遷移により生じる電流に応答する少なくとも1つのインバータを含む。【選択図】図6

Description

本発明は、電子回路のデータセキュリティに関するものであり、特に、サイドチャネル攻撃を防止するための方法およびシステムに関するものである。
サイドチャネル攻撃と呼ばれるさまざまな技術が電子機器から情報を抽出するように開発されている。サイドチャネル攻撃は通常、機器内に保存されている機密情報にアクセスするために、許可を得ていない第三者によって実行されている。一部のサイドチャネル攻撃は、電子機器が通常、論理素子の遷移時に電力を消費するという事実を利用している。この攻撃は、情報を搬送する機器に電気的に接続する必要なく、電気信号および/または機器から放射された電磁放射を非侵襲的に測定することによって情報を抽出する。
さまざまな対策がサイドチャネル攻撃から電子機器を保護するために、提案されている。例えば、「Hardware Level Countermeasures Against Differential Power Analysis」と題された2012年2月のUniversity of Southampton, Faculty of Physical and Applied Sciences, School of Electronics and Computer Scienceの博士論文で、Baddamは、いくつかのタイプの対策、特にDual Rail Precharge(DRP)回路について説明している。
米国特許第10,521,530号では、電力解析攻撃を軽減するために電子設計自動化システムを用いて、データ関連の遅延を有する論理回路の論理回路を設計する方法が説明されている。この論理回路は、論理入力から少なくとも1つの論理出力までの論理パス(logic path)を含む。この方法は、初期回路設計を取得し、初期回路設計内の複数の論理パスの対応する遅延を割り当てて、少なくとも一部の出力が一クロックサイクル中の異なる時間に、異なる論理入力の組み合わせに切り替わるようにし、指定された対応する遅延に基づいて遅延素子を初期回路設計に加えることにより、第2の回路設計を形成し、第2の回路設計は、対応する論理パス上に指定された対応する遅延を有することを含む。
本明細書に記載の本発明の実施形態は、駆動ユニット、少なくとも1つの被駆動ユニット、および少なくとも1つのインバータを含む電子回路を提供する。駆動ユニットは、少なくとも2つの入力および少なくとも1つの出力を含み、且つ少なくとも2つの入力に応答して、少なくとも1つの出力を第1の論理状態と第2の論理状態との間で切り替えるように構成される。少なくとも1つの被駆動ユニットのそれぞれは、少なくとも2つの入力を含み、少なくとも2つの入力のうちの少なくとも1つは、駆動ユニットの出力によって駆動されるように構成される。少なくとも1つのインバータは、駆動ユニットを被駆動ユニットに接続する信号ネットワークに設置され、少なくとも1つのインバータは、信号ネットワークでの第1の容量負荷と第2の容量負荷を平衡化させるように構成され、第1の容量負荷は、第1の論理状態から第2の論理状態への遷移により生じる電流に応答し、第2の容量負荷は、第2の論理状態から前記第1の論理状態への遷移により生じる電流に応答する。
通常、少なくとも1つのインバータは、第1の電流と第2の電流を平衡化させるように構成され、第1の電流は、駆動ユニットの第1の論理状態から第2の論理状態への遷移に応答して信号ネットワークで消費され、第2の電流は、駆動ユニットの第2の論理状態から第1の論理状態への遷移に応答して信号ネットワークで消費される。
いくつかの実施形態では、第1の容量負荷および第2の容量負荷の少なくとも1つは接地される。いくつかの実施形態では、第1の容量負荷および第2の容量負荷の少なくとも1つは、電子回路の供給電圧レールに接続される。
一実施形態では、少なくとも1つの被駆動ユニットは、1つの被駆動ユニットを含み、信号ネットワークは、駆動ユニットの出力と被駆動ユニットの入力の少なくとも1つの間に配線された導体を含み、且つ少なくとも1つのインバータは、導体に沿って設置される。もう1つの実施形態では、少なくとも1つの被駆動ユニットは、複数の被駆動ユニットを含み、信号ネットワークは、分岐を含み、分岐は、対応する被駆動ユニットの入力に配線された複数の導体を接続し、且つ少なくとも1つのインバータは、分岐と被駆動ユニットの入力との間に設置されたインバータを含む。
また、本発明の一実施形態によれば、電子回路を設計する方法が提供される。この方法は、駆動ユニットを指定し、駆動ユニットは、少なくとも2つの入力および少なくとも1つの出力を含み、且つ少なくとも2つの入力に応答して、少なくとも1つの出力を第1の論理状態と第2の論理状態との間で切り替えるように構成されるステップを含む。少なくとも1つの被駆動ユニットを指定し、少なくとも1つの被駆動ユニットは、少なくとも2つの入力を含み、少なくとも2つの入力のうちの少なくとも1つは、駆動ユニットの少なくとも1つの出力によって駆動される。駆動ユニットと被駆動ユニットを接続する信号ネットワークには、少なくとも1つのインバータが設置され、少なくとも1つのインバータは、信号ネットワークに設置され、第1の容量負荷と第2の容量負荷を平衡させる。第1の容量負荷は、第1の論理状態から第2の論理状態への遷移により生じる電流に応答し、第2の容量負荷は、第2の論理状態から第1の論理状態への遷移により生じる電流に応答する。
一実施形態では、少なくとも1つのインバータは、駆動ユニットと被駆動ユニットとの間の所与のパスに奇数個のインバータを追加し、駆動ユニットまたは被駆動ユニットの1つに追加のインバータを埋め込むことを含む。
また、本発明の一実施形態によれば、電子回路におけるデータ処理方法も提供される。この方法は、駆動ユニットを用い、駆動ユニットは、少なくとも2つの入力および少なくとも1つの出力を含み、且つ少なくとも2つの入力に応答して、出力を第1の論理状態と第2の論理状態との間で切り替えるように構成される。駆動ユニットの少なくとも1つの出力によって少なくとも1つの被駆動ユニットを駆動し、少なくとも1つの被駆動ユニットのそれぞれは、少なくとも2つの入力を含み、少なくとも2つの入力のうちの少なくとも1つは、駆動ユニットの少なくとも1つの出力によって駆動される。少なくとも1つのインバータを用いて、信号ネットワークでの第1の容量負荷と第2の容量負荷を平衡化させ、第1の容量負荷は、第1の論理状態から第2の論理状態への遷移により生じる電流に応答し、第2の容量負荷は、第2の論理状態から前記第1の論理状態への遷移により生じる電流に応答する。
添付の図面とともに以下の詳細な説明及び実施例を検討することで、本発明をより完全に理解できる。
図1は、本発明の一実施形態による、安全回路および非安全回路を含む集積回路(Integrated Circuit; IC)を示すブロック図である。 図2は、本発明のいくつかの実施形態による、平衡化された容量負荷を有する電子回路を示すブロック図である。 図3は、本発明のいくつかの実施形態による、平衡化された容量負荷を有する電子回路を示すブロック図である。 図4は、本発明のいくつかの実施形態による、平衡化された容量負荷を有する電子回路を示すブロック図である。 図5Aは、本発明の一実施形態による、インバータの「0」から「1」、および「1」から「0」の状態遷移を示す回路図である。 図5Bは、本発明の一実施形態による、インバータの「0」から「1」、および「1」から「0」の状態遷移を示す回路図である。 図6は、本発明の一実施形態による、電子回路を設計する方法を示すフローチャートである。
本明細書に記載された本発明の実施形態として、サイドチャネル攻撃から電子回路を保護するための改善された方法を提供する。本開示の技術は、例えば安全な埋め込みコントローラおよびメモリデバイスなどの様々な形態のセキュリティデバイスで用いられることができる。
いくつかの実施形態では、電子回路は、複数の論理ユニットを含み、各論理ユニットは、1つ以上の入力および1つ以上の出力を含む。各出力は、回路トレースなどの導電体によって、1つ以上の他の論理ユニットの1つ以上の入力に接続される。各クロックサイクルにおいて、一部の論理ユニットは、1つの論理状態からその出力をもう1つの論理状態(「0」から「1」または「1」から「0」)に遷移し、1つ以上のその入力の遷移に応答さユニットことができる。軽減されない限り、この論理ユニットの状態遷移のシーケンスは、回路全体の消費電流の変動を生じさせる可能性があり、これは、攻撃者に測定されて攻撃者をアシストする可能性がある。
このような消費電流の変動の主な原因の1つは、状態遷移中に容量負荷が充電されることである。容量負荷は、通常、回路導体と接地間の容量、回路導体と電源電圧(Vdd)間の容量、回路導体間の容量(他の信号線への容量)、および/または論理ユニット自体の容量を含む。
複合論理ユニット(即ち、複数の入力を有し、いくつかの論理演算を実行して出力を生成する論理ユニット)について考えると、複合論理ユニットの出力は、1つ以上の他の複合論理ユニットの入力を駆動する。前者の論理ユニットは、本明細書では「駆動ユニット」と呼ばれ、後者の論理ユニットは、「被駆動ユニット」と呼ばれる。(複合)駆動ユニットの出力は、(複合)被駆動ユニットの入力に接続するパスは、本明細書では「信号ネットワーク」と呼ばれる。
駆動ユニットを1つ以上の被駆動ユニットに接続する信号ネットワークは、接地に対して特定の容量(または、より広義には、接地に対する特定の容量と、例えば電源電圧レールまたは他の信号などの他の電圧源に対するもう1つの容量)を有する。駆動ユニットの出力が1つの論理状態からもう1つの論理状態に遷移したとき、駆動ユニットの出力の電圧遷移は電流を流動させ、上述の容量を充電する。生成された電流は、回路の瞬間的な総消費電流に寄与する。
しかしながら、一般に、駆動ユニットの出力が「0」から「1」への遷移による消費電流は、「1」から「0」への遷移による消費電流と異なる可能性がある。「0」から「1」への遷移の消費電流が「1」から「0」への遷移と異なるとき、回路の瞬間的な消費電流は、機密情報を含む内部演算を表す可能性がある。この不均衡は、電力解析攻撃によって悪用され得るセキュリティ上の脆弱性をもたらす。
本明細書に記載された本発明のいくつかの実施形態は、回路の電流消費上の状態遷移の衝撃を低減するように用いられる、回路構成および関連する設計方法を提供している。開示された実施形態では、1つ以上の追加のインバータが、駆動ユニットとその被駆動ユニットとの間の信号ネットワークに加えられる。インバータは、駆動ユニットの出力の「0」から「1」への遷移により充電された容量負荷と、出力の「1」から「0」への遷移により充電された容量負荷を平衡化させる方式で加えられる。必要に応じて、駆動ユニットおよび/または被駆動ユニットの論理を変更し、追加のインバータが回路の論理機能を変えないようにすることができる。
本開示の技術は、回路全体、または回路内の機密情報を操作する選択された部分の容量負担を平衡化させるように用いられることができる。このように、回路の瞬間的な消費電流は、処理されている機密情報と基本的に無関係であることが可能である。従って、開示された技術は、電力解析攻撃に対する回路の感度を低減させる。本明細書に開示された技術を用いたいくつかの例示的な回路構成について説明する。設計ツールがインバータを挿入することで容量負荷を平衡化させるように用いられた例示的な設計技術についても説明する。
電力解析攻撃に対する回路の感度を低減するように用いられる1つの代替の方法は、デュアルレールプリチャージロジック(Dual-rail Pre-charge Logic; DPL)と呼ばれる技術を適用することである。DPLでは、回路は並列に動作する相補回路によって保護される。各保護回路のネットワークは、相補回路では逆の状態遷移を経る対応するネットワークを有する。従って、各クロックサイクルでは、処理されたデータ値に関係なく、「0」から「1」への遷移の総数は、「1」から「0」への遷移の総数と同じになる。しかしながら、この結果の代償は、ハードウェアを2倍にさせ、且つこれにより、コスト、サイズ、および回路の消費電力を倍にする。DPLと比較すると、本開示を実施するための技術は、比較的単純であり、且つハードウェアを2倍にすることと比較すると、必要なハードウェアも比較的少なくなる。
いくつかの実施形態では、本開示の技術は他の電力解析攻撃を軽減する技術と組み合わせて、暗号化エンジンなど、例えば高度暗号化標準(Advanced Encryption Standard; AES)エンジンの安全な回路を実施するように用いられることができる。例えば、例示的な技術は、「Coupling of Combinational Logic Circuits for Protection against Side-Channel Attacks」と題された米国特許出願第16/741,799号、および「Mitigation of Side-Channel Attacks using Small-Overhead Random Pre-Charging」と題された米国特許出願第16/194,342号に開示されている。これらの両方の特許出願は、本特許出願の譲受人に譲渡され、それらの開示内容は、参照により本明細書に組み込まれている。
システム記述
図1は、本発明の一実施形態による、安全な集積回路(IC)20を示すブロック図である。例えば、安全なIC20は、集積された暗号化回路を有するメモリ装置、暗号化または認証回路を含む埋め込みコントローラ(Embedded Controller,EC)またはベースボード管理コントローラ(Baseboard Management Controller,BMC)、または任意の他の適切な安全な電子機器を含むことができる。
この例では必要ないが、IC20は非安全回路24と安全回路28の両方を含んでいる。例えば、安全回路28は、暗号化エンジンまたはサイドチャネル攻撃から保護される必要がある任意の他の回路を含むことができる。非安全回路24は、保護がそれほど重要でない任意の回路を含むことができる。
この例では、非安全回路24は、駆動ユニット32および被駆動ユニット36を含む。明確にするために、図1は、1つの駆動ユニット、1つの被駆動ユニット、および1つのそれらの間にあるネットワークのみを描いている。実際には、回路24は、通常、乗算器、AES Sボックス(S-box)、または任意の他の適切な論理機能などの論理機能を一緒に実現する多数のユニットを含む。
駆動ユニット32と被駆動ユニット36はどちらも複雑な論理ユニットであり、即ち、複数の入力(例えば、バッファおよびインバータと相反する)を有する。駆動ユニット32は、複数の入力40および出力44を含む。被駆動ユニット36は、複数の入力を含み、そのうちの1つの入力48は、駆動ユニット32の出力44によって駆動される。駆動ユニット32と被駆動ユニット36の間の信号ネットワークは、回路トレースを含み、その接地への容量はCと表される。
信号ネットワークの容量Cは、被駆動ユニット32の出力44の容量負荷となる。この例では、出力44の「0」から「1」への遷移の期間に充電された容量と、出力44の「1」から「0」への遷移の期間に充電された容量との間に平衡化はない。従って、出力44の「0」から「1」への遷移と「1」から「0」への遷移の消費電流は徐々に異なる。
図1の例の安全回路28は、駆動ユニット52および被駆動ユニット56を含む。ここでも明確にするために、1つの駆動ユニット、1つの被駆動ユニット、および1つのそれらの間にあるネットワークのみを描いている。実際には、安全回路28は、通常、互いに駆動し合う多数のユニットを含む。
駆動ユニット52は、複数の入力60および出力64を含む。被駆動ユニット56は複数の入力を含み、そのうちの1つの入力68は駆動ユニット52の出力64によって駆動される。容量負荷の不均衡を防ぐために、追加のインバータ72が出力64と入力68間のネットワークに設置される。適切に設定されたとき、インバータ72の前(C1で表される)の信号ネットワークの容量の部分は、インバータ72の後(C2で表される)の信号ネットワークの容量の部分と同じである。
このようにインバータ72を設定すると、出力64の「0」から「1」への遷移による消費電流と、出力64の「1」から「0」への遷移による消費電流とが平衡化する。
出力64の「0」から「1」への遷移について考えてみる。この遷移では、出力64の電圧は、論理「0」を表す電圧から論理「1」を表す電圧に遷移する。この電圧遷移は、特定の電流が容量C1に流れるようにする。この電流はi(「0」から「1」、C1)で表され、且つ「0」と「1」を表す電圧と容量C1の関数である。出力64の「0」から「1」への遷移は、インバータ72で逆の遷移、即ち「1」から「0」をもたらす。従って、インバータ72の出力の電圧は、論理「1」を表す電圧から論理「0」を表す電圧に遷移する。この電圧遷移は、特定の電流を容量C2に流動させる。この電流はi(「0」から「1」、C2)で表され、且つ「0」と「1」を表す電圧と容量C2の関数である。
ここで、出力64の「1」から「0」への逆の遷移について考えてみる。この遷移では、出力64の電圧は、論理「1」を表す電圧から論理「0」を表す電圧に遷移する。この電圧遷移は、特定の電流が容量C1に流れるようにする。この電流はi(「1」から「0」、C1)で表され、且つ「0」と「1」を表す電圧と容量C1の関数である。出力64の「0」から「1」への遷移は、インバータ72で逆の遷移、即ち「0」から「1」をもたらす。従って、インバータ72の出力の電圧は、論理「0」を表す電圧から論理「1」を表す電圧に遷移する。この電圧遷移は、特定の電流を容量C2に流動させる。この電流はi(「0」から「1」、C2)で表され、且つ「0」と「1」を表す電圧と容量C2の関数である。
出力64の「0」から「1」への遷移の期間の信号ネットワークの総消費電流はi(「0」から「1」)=i(「0」から「1」、C1)+i(「1」から「0」、C2)であると仮定し、且つ出力64の「1」から「0」への遷移の期間の信号ネットワークの総消費電流は、i(「1」から「0」)=i(「1」から「0」、C1)+i(「0」から「1」、C2)であると仮定される。このように、C1=C2であれば、i(「0」から「1」)=i(「1」から「0」)であることがわかる。従って、容量負荷がインバータ72によって平衡化されたとき、信号ネットワークでの総電流消費は、状態遷移の方向とは無関係である(即ち、出力64の「1」から「0」への、または「0」から「1」への遷移は無関係である)。
上述の説明では、消費電流の完全な平衡化は、容量負荷の完全な平衡化によって得られることが示されている。特定の実施形態では、容量C1とC2間は、いくらかの残差が保持される可能性があることが理解されるであろう。それにもかかわらず、この残差は通常、十分に小さいため、安全回路28上の電力解析攻撃を効果的に軽減させることができ、他の対策と組み合わせることもできる。本特許出願の文脈および特許請求項では、「平衡化された容量」、「平衡化された容量負荷」および「平衡化された消費電流」などは、容量、容量負荷、または消費電流の攻撃を効果的に軽減するのに十分であると考えられる所定の閾値以下であることを表している。
平衡化された容量負荷を有する代替のネットワーク設計
図2~図4は、本発明の代替の実施形態による、平衡化された容量負荷を有する電子回路を示すブロック図である。
図2では、2つのインバータ72が、駆動ユニット52の出力と駆動ユニット56の入力間のネットワークに設定される。この実施形態では、駆動ユニット52の出力状態が遷移したとき、C3およびC5で表される容量は一方向(「0」から「1」または「1」から「0」)に駆動され、且つC4で表される容量は逆の方向(それに応じて、「1」から「0」または「0」から「1」)に駆動される。従って、容量負荷において平衡化を得るために、容量はC4=C3+C5の条件を満たす必要がある。
図3は、駆動ユニット52の出力が分岐され、2つの被駆動ユニット56の入力を並列に駆動するように用いられる状況を示している。この例では、分岐前の信号ネットワークの容量はC6で表され、分岐後の2つの分岐の容量はC7とC8で表される。2つのインバータ72が信号ネットワーク内に設置され、この分岐と被駆動ユニットの入力との間でこの分岐に隣接する。この場合、容量負荷内での平衡化を得るために、容量はC6=C7+C8の条件を満たす必要がある。一代替の実施形態では、1つのインバータが分岐の前(駆動ユニットの出力と分岐の間に、C6の後に、この分岐に隣接して)に配置され、図に示されている2つのインバータと置き換えることができる。
図4は、信号ネットワークが接地と電圧レールVddの両方に対して容量を有している場合を示している。1つのインバータ72は信号ネットワーク内に設置される。インバータの前の部分の容量はC01(接地への)とC11(Vddへの)で示される。インバータの後の部分の容量はC02(接地への)とC12(Vddへの)で示される。この場合、容量負荷内の平衡化を得るために、容量はC11+C02=C01+C12の条件を満たす必要がある。
図5Aおよび図5Bは、本発明の一実施形態による、インバータ72内の状態遷移を示す回路図である。この例では、インバータ72は、Pで表されるP型金属酸化物半導体電界効果トランジスタ(P-type Metal-Oxide-Semiconductor Field-Efect Transistor,PMOS FET)と、Nで表されるN型金属酸化物半導体電界効果トランジスタ(NMOS FET)とを含み、Vddと接地間では、ソースからドレインの方式で接続される。インバータ72の入力は、2つのトランジスタのゲートに印加される。インバータ72の出力は、P型トランジスタのソースとN型トランジスタのドレインとの間の接続点から得られる。
図5Aは、出力と接地間の容量負荷(C0で表される)の場合を示している。図5Bは、出力と供給電圧(Vdd)間の容量負荷(C1で表される)の場合を示している。2つの図では、「0→1」と書かれた矢印は、「0」から「1」への出力の遷移の期間の電流を示しており、「1→0」と書かれた矢印は、「1」から「0」への出力の遷移の期間の電流を示している。ほとんどの実際的なシナリオでは、2つの場合の重ね合わせを含む。
図5Aと図5Bに見られるように、消費電流は対称的ではない。例えば、図5Aでは、Vddから接地への電流は「0」から「1」への遷移の期間にのみ流れる。「1」から「0」への遷移の期間、電流はほとんど一方のコンデンサの極からもう一方の極に流れ、必ずしも接地に到達するとは限らない。上述の図4の条件を満たすように容量を設定すると、「0」から「1」への遷移と「1」から「0」への遷移の消費電流を平衡化させる。
様々な電子回路の構成が図1~図4に示され、図5Aおよび図5Bは、概念を明確にするためにのみ描かれた構成例である。代替の実施形態では、任意の他の適切な回路構成を用いることができる。例えば、図1~図4の構成の任意の適切な組み合わせを用いることができる。
もう1つの例として、上述の例では、駆動ユニットおよび被駆動ユニットは、3入力ORまたはNORユニットである。しかしながら、この選択は一例にすぎない。代替の実施形態では、任意の駆動ユニットおよび被駆動ユニットは、2つ以上の入力および1つ以上の出力を有する任意の他の適切な論理ユニット、例えば、様々なOR、AND、NOR、NAND、およびXORゲートを含むことができる。
さらに、もう1つの例として、所与の駆動ユニットと所与の被駆動ユニットとの間に設置されるインバータ72の数は、1つまたは2つに限定されず、任意の適切な数を含むことができる。もう1つの例として、駆動ユニットの出力は2つ以上の分岐に分岐させて、2つ以上の被駆動ユニットを駆動させることができる。一般的に、被駆動ユニットは、互いに異なる、および/または駆動ユニットと異なることができ、回路が必要な論理機能を行うように適合させることができる。
様々な実施形態では、任意の開示された回路が、任意の適切なハードウェアまたはファームウェア、例えば1つ以上のディスクリート部品、1つ以上の特定用途向け集積回路(Application Specific Integrated Circuit,ASIC)および/または1つ以上のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array,FPGA)を用いて実施することができる。
平衡化された容量負荷を実現するための設計方法
いくつかの実施形態では、図1~図4に示される例などの本発明の実施形態による安全回路は、既存の超大規模集積回路(very-large-scale integration,VLSI)設計ツールを用いて設計および処理することができる。設計の例示的な指針は、以下の例を含むことができる:
・合成プロセスの誘導は、小さなサイズの論理ユニット、例えばORユニットの代わりにNORユニットの後にインバータを用いる。
・最大遷移時間を制限して、インバータの挿入を誘導する。
・バッファの使用を避け、代わりにインバータを用いる(または既存のバッファを一対のインバータと置き換える)。
・駆動強度の低いユニットを用いて、インバータの挿入を誘導する。
・合成プロセスを誘導して、出力の段階で余分なインバータを有するユニット(AND、OR、バッファーなど)を用いないように回避し、代わりに、対応するより簡略化したバージョン(NAND、MOR、インバータなど)を用いる。これは、合成プロセスが外部インバータで論理を補完するように強制し、後で容量を平衡化させるように用いられることができる。
・駆動ユニットと被駆動ユニットの間にインバータがない場合、保護が必要なネットワーク上に一対の直列接続されたインバータを明示的に追加することができる。
・設計のバックエンドの段階の一部として、インバータの位置を平衡化させる。
図6は、本発明の一実施形態による、電子回路を設計する方法を示すフローチャートである。この方法は、設計者または設計ツールが駆動ユニット指定ステップ80で駆動ユニットを指定するステップから始まる。被駆動ユニット指定ステップ84では、設計者または設計ツールは、駆動ユニットにより駆動される1つ以上の被駆動ユニットを指定する。
本明細書に記載されるように、平衡化ステップ88では、設計者または設計ツールは、駆動ユニットおよび被駆動ユニットの信号ネットワークに1つ以上のインバータを追加または変更する。インバータの追加または変更は、さまざまな方法で行なわれることができる。例えば、いくつかの状況では、例えば1つ以上の既存のインバータのサイズを調整、または1つ以上の既存のインバータのネットワーク内にある場所を変えるなど、既存のインバータを変更するだけで十分な場合もある。もう1つの例として、例えばORゲートをNORゲートに置き換える、またはその逆、またはANDゲートをNANDゲートに置き換える、またはその逆など、既存の論理ゲートをもう1つの論理ゲートに置き換えることによってインバータを追加することができる。また、もう1つの例として、追加のインバータが被駆動ユニットの入力に埋め込まれ、それにより、1つのインバータのみが挿入されることを保証することができる。
留意すべきことは、一般に、駆動ユニットと被駆動ユニットとの間のパスに奇数個のインバータが追加された場合、駆動ユニットまたは被駆動ユニットのいずれかが変更されて、正確な回路機能を維持する必要がある。前記変更は通常、駆動ユニットの出力に、または被駆動ユニットの入力に、追加のインバータを埋め込むことを含む。
図6のプロセスは、例えば、ICまたは一部の追加の保護が必要な回路など、電子回路全体に実施することができる。
いくつかの実施形態では、図6の方法など、開示された設計技術は、汎用コンピュータにより行なわれることができ、前記汎用コンピュータは、ソフトウェアでプログラムされて、本明細書に記載の機能を行う。例えば、ソフトウェアは、ネットワークからコンピュータに電子形式でダウンロードされ得るか、あるいは代替的または追加的に、非一時的な有形媒体、例えば磁気、光学、または電子メモリに提供および/または格納され得る。
本明細書の実施形態は、主に状態遷移中での容量負荷の平衡化を解決しているが、本明細書に記載の方法およびシステムは、他のアプリケーション、例えばデータが変わらない状況(静的データ)での容量負荷の平衡化でも用いられることができる。このようなアプリケーションでは、平衡化されるパラメータは、論理「0」でのリーク電流と論理「1」でのリーク電流である。
上述の実施形態は、例として引用されており、本発明は、上述に具体的に開示および記載された内容に限定されないことに留意されたい。むしろ、本発明の範囲は、上述の様々な特徴のコンビネーションおよびサブコンビネーションの両方、ならびに前述の説明を読んで当業者が知るであろう、先行技術に開示されていないその変形および修正を含む。参照することにより本特許出願に組み込まれた文書は、組み込まれた文書の用語の定義が本明細書で明示的または暗黙的になされた定義と矛盾する場合を除いて、本出願の不可欠な部分と見なされ、本明細書の定義のみが考慮されるべきである。
20 IC
24 非安全回路
28 安全回路
32 駆動ユニット
36 被駆動ユニット
40 入力
44 出力
48 入力
52 駆動ユニット
56 被駆動ユニット
60 入力
64 出力
68 入力
72 インバータ
C、C1~C8 容量
C01、C02、C11、C12 容量
80~88 ステップ

Claims (19)

  1. 少なくとも2つの入力および少なくとも1つの出力を含み、且つ前記少なくとも2つの入力に応答して、前記少なくとも1つの出力を第1の論理状態と第2の論理状態との間で切り替えるように構成される駆動ユニット、
    少なくとも2つの入力を含み、前記少なくとも2つの入力のうちの少なくとも1つは、前記駆動ユニットの前記出力によって駆動される少なくとも1つの被駆動ユニット、および
    前記駆動ユニットを前記被駆動ユニットに接続する信号ネットワークに設置され、前記信号ネットワークでの第1の容量負荷と第2の容量負荷を平衡化させるように構成され、前記第1の容量負荷は、前記第1の論理状態から前記第2の論理状態への遷移により生じる電流に応答し、前記第2の容量負荷は、前記第2の論理状態から前記第1の論理状態への遷移により生じる電流に応答する少なくとも1つのインバータを含む電子回路。
  2. 前記少なくとも1つのインバータは、第1の電流と第2の電流を平衡化させるように構成され、前記第1の電流は、前記駆動ユニットの前記第1の論理状態から前記第2の論理状態への遷移に応答して前記信号ネットワークで消費され、前記第2の電流は、前記駆動ユニットの前記第2の論理状態から前記第1の論理状態への遷移に応答して前記信号ネットワークで消費される請求項1に記載の電子回路。
  3. 前記第1の容量負荷および前記第2の容量負荷の少なくとも1つは接地される請求項1に記載の電子回路。
  4. 前記第1の容量負荷および前記第2の容量負荷の少なくとも1つは、前記電子回路の供給電圧レールに接続される請求項1に記載の電子回路。
  5. 前記少なくとも1つの被駆動ユニットは、単一の被駆動ユニットで構成され、前記信号ネットワークは、前記駆動ユニットの前記出力と前記単一の被駆動ユニットの前記入力の少なくとも1つの間に配線された導体を含み、且つ前記少なくとも1つのインバータは、前記導体に沿って設置される請求項1に記載の電子回路。
  6. 前記少なくとも1つの被駆動ユニットは、複数の被駆動ユニットを含み、前記信号ネットワークは、分岐を含み、前記分岐は、対応する前記被駆動ユニットの前記入力に配線された複数の導体を接続し、且つ前記少なくとも1つのインバータは、前記分岐と前記被駆動ユニットの前記入力との間に設置されたインバータを含む請求項1に記載の電子回路。
  7. 前記少なくとも1つの被駆動ユニットは、複数の被駆動ユニットを含み、前記信号ネットワークは、分岐を含み、前記分岐は、対応する前記被駆動ユニットの前記入力に配線された複数の導体を接続し、且つ前記少なくとも1つのインバータは、前記駆動ユニットの出力と前記分岐との間に設置されたインバータを含む請求項1に記載の電子回路。
  8. 駆動ユニットを指定し、前記駆動ユニットは、少なくとも2つの入力および少なくとも1つの出力を含み、前記少なくとも2つの入力に応答して、前記少なくとも1つの出力を第1の論理状態と第2の論理状態との間で切り替えるように構成されるステップ、
    少なくとも1つの被駆動ユニットを指定し、前記少なくとも1つの被駆動ユニットは、少なくとも2つの入力を含み、前記少なくとも2つの入力のうちの少なくとも1つは、前記駆動ユニットの前記少なくとも1つの出力によって駆動されるステップ、および
    前記駆動ユニットと前記被駆動ユニットを接続する信号ネットワークには、少なくとも1つのインバータが設置され、前記少なくとも1つのインバータは、前記信号ネットワークに設置され、第1の容量負荷と第2の容量負荷を平衡させ、前記第1の容量負荷は、前記第1の論理状態から前記第2の論理状態への遷移により生じる電流に応答し、前記第2の容量負荷は、前記第2の論理状態から前記第1の論理状態への遷移により生じる電流に応答するステップを含む電子回路を設計する方法。
  9. 前記少なくとも1つのインバータは、第1の電流と第2の電流を平衡化させるように構成され、前記第1の電流は、前記駆動ユニットの前記第1の論理状態から前記第2の論理状態への遷移に応答して前記信号ネットワークで消費され、前記第2の電流は、前記駆動ユニットの前記第2の論理状態から前記第1の論理状態への遷移に応答して前記信号ネットワークで消費される請求項8に記載の電子回路を設計する方法。
  10. 前記第1の容量負荷および前記第2の容量負荷の少なくとも1つは接地される請求項8に記載の電子回路を設計する方法。
  11. 前記第1の容量負荷および前記第2の容量負荷の少なくとも1つは、前記電子回路の供給電圧レールに接続される請求項8に記載の電子回路を設計する方法。
  12. 前記少なくとも1つの被駆動ユニットは、単一の被駆動ユニットで構成され、前記信号ネットワークは、前記駆動ユニットの前記出力と前記単一の被駆動ユニットの前記入力の少なくとも1つの間に配線された導体を含み、且つ前記少なくとも1つのインバータは、前記導体に沿って設置される前記少なくとも1つのインバータを含む請求項8に記載の電子回路を設計する方法。
  13. 前記少なくとも1つの被駆動ユニットは、複数の被駆動ユニットを含み、前記信号ネットワークは、分岐を含み、前記分岐は、対応する前記被駆動ユニットの前記入力に配線された複数の導体を接続し、且つ前記少なくとも1つのインバータは、前記分岐と前記被駆動ユニットの前記入力との間に設置されたインバータを含む請求項8に記載の電子回路を設計する方法。
  14. 前記1つ以上の被駆動ユニットは、複数の被駆動ユニットを含み、前記信号ネットワークは、分岐を含み、前記分岐は、対応する前記被駆動ユニットの前記入力に配線された複数の導体を接続し、且つ前記少なくとも1つのインバータは、前記駆動ユニットの前記出力と前記分岐との間に設置されたインバータを含む請求項8に記載の電子回路を設計する方法。
  15. 前記少なくとも1つのインバータは、前記駆動ユニットと前記被駆動ユニットとの間の所与のパスに奇数個のインバータを追加し、前記駆動ユニットまたは前記被駆動ユニットの1つに追加のインバータを埋め込むステップを含む請求項8に記載の電子回路を設計する方法。
  16. 少なくとも2つの入力および少なくとも1つの出力を含み、且つ前記少なくとも2つの入力に応答して、前記出力を第1の論理状態と第2の論理状態との間で切り替えるように構成される駆動ユニットを用いるステップ、
    前記駆動ユニットの前記少なくとも1つの出力によって少なくとも1つの被駆動ユニットを駆動し、前記少なくとも1つの被駆動ユニットのそれぞれは、少なくとも2つの入力を含み、前記少なくとも2つの入力のうちの少なくとも1つは、前記駆動ユニットの前記少なくとも1つの出力によって駆動されるステップ、および
    信号ネットワークでの第1の容量負荷と第2の容量負荷を平衡化させ、前記第1の容量負荷は、前記第1の論理状態から前記第2の論理状態への遷移により生じる電流に応答し、前記第2の容量負荷は、前記第2の論理状態から前記第1の論理状態への遷移により生じる電流に応答する少なくとも1つのインバータを用いるステップを含む電子回路におけるデータ処理方法。
  17. 前記容量負荷を平衡化させるステップは、第1の電流と第2の電流を平衡化させるステップを含み、前記第1の電流は、前記駆動ユニットの前記第1の論理状態から前記第2の論理状態への遷移に応答して前記信号ネットワークで消費され、前記第2の電流は、前記駆動ユニットの前記第2の論理状態から前記第1の論理状態への遷移に応答して前記信号ネットワークで消費される請求項16に記載の電子回路におけるデータ処理方法。
  18. 前記第1の容量負荷および前記第2の容量負荷の少なくとも1つは接地される請求項16に記載の電子回路におけるデータ処理方法。
  19. 前記第1の容量負荷および前記第2の容量負荷の少なくとも1つは、前記電子回路の供給電圧レールに接続される請求項16に記載の電子回路におけるデータ処理方法。
JP2021182855A 2020-11-19 2021-11-09 電子回路、電子回路の設計方法、電子回路内のデータ処理方法 Active JP7349482B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/952,119 US11799627B2 (en) 2020-11-19 2020-11-19 Protection against side-channel attacks by balancing cell drive polarity
US16/952,119 2020-11-19

Publications (2)

Publication Number Publication Date
JP2022084538A true JP2022084538A (ja) 2022-06-07
JP7349482B2 JP7349482B2 (ja) 2023-09-22

Family

ID=81588059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021182855A Active JP7349482B2 (ja) 2020-11-19 2021-11-09 電子回路、電子回路の設計方法、電子回路内のデータ処理方法

Country Status (4)

Country Link
US (1) US11799627B2 (ja)
JP (1) JP7349482B2 (ja)
CN (1) CN114553217A (ja)
TW (1) TWI773568B (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090302882A1 (en) * 2005-05-04 2009-12-10 Duflot Loic Device forming a logic gate for minimizing the differences in electrical of electro-magnetic behavior in an intergrated circuit manipulating a secret
JP2013167729A (ja) * 2012-02-15 2013-08-29 Nec Software Hokuriku Ltd 暗号化装置、暗号化回路、暗号化方法、及び、暗号化プログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7924057B2 (en) 2004-02-13 2011-04-12 The Regents Of The University Of California Logic system for DPA resistance and/or side channel attack resistance
KR101135056B1 (ko) 2009-12-04 2012-04-13 고려대학교 산학협력단 전력 분석 공격을 대비한 스위칭 로직
US8427194B2 (en) * 2010-05-24 2013-04-23 Alexander Roger Deas Logic system with resistance to side-channel attack by exhibiting a closed clock-data eye diagram
US8912814B2 (en) * 2012-11-12 2014-12-16 Chaologix, Inc. Clocked charge domain logic
US8912816B2 (en) * 2012-11-12 2014-12-16 Chaologix, Inc. Charge distribution control for secure systems
US9569616B2 (en) * 2013-12-12 2017-02-14 Cryptography Research, Inc. Gate-level masking
US10521530B2 (en) 2016-07-28 2019-12-31 Bar-Ilan University Data-dependent delay circuits
US10691836B2 (en) * 2017-04-28 2020-06-23 University Of South Florida System and method for switched-capacitor based side-channel countermeasures
EP3850523B1 (en) * 2019-11-19 2022-03-16 Google LLC Voltage-variation detection under clock fluctuations
US11283349B2 (en) * 2020-04-23 2022-03-22 Nvidia Corp. Techniques to improve current regulator capability to protect the secured circuit from power side channel attack

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090302882A1 (en) * 2005-05-04 2009-12-10 Duflot Loic Device forming a logic gate for minimizing the differences in electrical of electro-magnetic behavior in an intergrated circuit manipulating a secret
JP2013167729A (ja) * 2012-02-15 2013-08-29 Nec Software Hokuriku Ltd 暗号化装置、暗号化回路、暗号化方法、及び、暗号化プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
豊嶋 太樹: "ランダム遅延素子を用いた耐タンパ非同期式パイプライン回路", IEICE TECHNICAL REPORT, JPN6023009624, 17 June 2016 (2016-06-17), JP, pages 185 - 190, ISSN: 0005012481 *

Also Published As

Publication number Publication date
TWI773568B (zh) 2022-08-01
CN114553217A (zh) 2022-05-27
TW202221542A (zh) 2022-06-01
JP7349482B2 (ja) 2023-09-22
US20220158817A1 (en) 2022-05-19
US11799627B2 (en) 2023-10-24

Similar Documents

Publication Publication Date Title
Jin et al. Cycle-accurate information assurance by proof-carrying based signal sensitivity tracing
US7555787B2 (en) IC intrusion detection
Li et al. New fault-based side-channel attack using fault sensitivity
Kison et al. Security implications of intentional capacitive crosstalk
Kulikowski et al. Power attacks on secure hardware based on early propagation of data
Levi et al. Data-dependent delays as a barrier against power attacks
CN108694323B (zh) 用于检测故障点的设备和方法
Kumar et al. Detection of hardware Trojan in SEA using path delay
US8564324B2 (en) Monitoring of the activity of an electronic circuit
Kulikowski et al. Delay insensitive encoding and power analysis: a balancing act [cryptographic hardware protection]
Ghalaty et al. Analyzing and eliminating the causes of fault sensitivity analysis
Iyengar et al. Threshold voltage-defined switches for programmable gates
Das et al. EM/power side-channel attack: White-box modeling and signature attenuation countermeasures
US20140292371A1 (en) Multi-threshold dual-spacer dual-rail delay-insensitive logic (mtd3l) circuit design
US10979054B1 (en) Coupling of combinational logic circuits for protection against side-channel attacks
Kim et al. Three phase dynamic current mode logic: A more secure DyCML to achieve a more balanced power consumption
JP2022084538A (ja) 電子回路、電子回路の設計方法、電子回路内のデータ処理方法
Lodhi et al. Formal analysis of macro synchronous micro asychronous pipeline for hardware Trojan detection
Galathy et al. A systematic approach to fault attack resistant design
Verbauwhede et al. Circuits and design techniques for secure ICs resistant to side-channel attacks
Kumar et al. Analysis of side-channel attack AES hardware trojan benchmarks against countermeasures
Zhang et al. Red team: Design of intelligent hardware trojans with known defense schemes
US20220237332A1 (en) Systems and methods for asynchronous programmable gate array devices
Emmert et al. An asynchronous MPGA THx2 cell and architecture for mitigating side-channel attacks
Guilley et al. Global faults on cryptographic circuits

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230314

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230822

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230911

R150 Certificate of patent or registration of utility model

Ref document number: 7349482

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150