JP6621533B2 - 暗号攻撃に対する防御のためのクロック周期ランダム化 - Google Patents

暗号攻撃に対する防御のためのクロック周期ランダム化 Download PDF

Info

Publication number
JP6621533B2
JP6621533B2 JP2018525379A JP2018525379A JP6621533B2 JP 6621533 B2 JP6621533 B2 JP 6621533B2 JP 2018525379 A JP2018525379 A JP 2018525379A JP 2018525379 A JP2018525379 A JP 2018525379A JP 6621533 B2 JP6621533 B2 JP 6621533B2
Authority
JP
Japan
Prior art keywords
variable
clock period
clock
generator
delay
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.)
Active
Application number
JP2018525379A
Other languages
English (en)
Other versions
JP2018535606A (ja
Inventor
スターク,ドナルド
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2018535606A publication Critical patent/JP2018535606A/ja
Application granted granted Critical
Publication of JP6621533B2 publication Critical patent/JP6621533B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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]
    • 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/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • 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/72Protecting 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 in cryptographic 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
    • 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/08Randomization, e.g. dummy operations or using noise
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Pulse Circuits (AREA)
  • Manipulation Of Pulses (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

関連出願の相互参照
本願は、2016年2月23日に出願された米国仮特許出願番号第62/298,842号に対する優先権を主張し、米国仮特許出願番号第62/298,842号の開示全体は、引用によって本明細書に援用される。
背景
多くのコンピューティングシステムは、暗号化技術を用いて、エンティティ間での安全な通信を実現する。現在の暗号化システムは、通常、鍵に依拠しており、当該鍵のうちのいくつかは、セキュリティを維持するために外界から秘密にされなければならない。これらの鍵を内密に抽出するための多くのアプローチが提案され、実行されてきた。
暗号攻撃の2つのカテゴリは、サイドチャネル攻撃およびフォールト注入攻撃である。サイドチャネル攻撃では、攻撃者は、暗号アルゴリズムを実行しているデバイスを監視する。たとえば、実行中に、デバイスの電力消費、電磁放射および/またはアコースティックエミッションは、処理されるデータおよび実行される命令に関する情報を攻撃者に対して提供し得る。なぜなら、命令は、特定のデータに作用する際に特徴的なシグネチャを提供し得るからである。攻撃者がデバイスにアクセスして入力を繰返し変更すると、秘密鍵に関する情報を収集することができる。特定の暗号アルゴリズムおよびそのフォールト注入攻撃に対する脆弱性が分かると、攻撃者は、妥当な量の繰返しのみで暗号鍵を推測することができるようになるだろう。
フォールト注入攻撃では、攻撃者は、フォールトを注入して実行し、結果を監視する。フォールト注入は、フォールトを生じさせるために、電力供給を変化させること、デバイスのクロック周期を変化させること、温度を変化させること、または光、レーザ、X線もしくはイオンを使用することを含む。たとえば、電力供給を変化させることは、グリッチを生じさせて命令スキップを引き起こし得る。条件付き飛び越し命令をスキップすることにより、重要なセキュリティチェックが回避される恐れがある。クロックを変化させることは、データの読み違え(たとえば、メモリが適切な値をバスに提供する前にデータバスから値を読み取ってしまうこと)または命令ミス(たとえば、プロセッサが前の命令を完了し終える前に回路が命令を実行し始めること)を引き起こし得る。別の例では、RAMは、書き込みのための1つの温度許容度と読み取りのための別の温度許容度とを有し得るので、これら2つの温度許容度間の数字に温度を変化させることにより、どちらの温度許容度が高いかに応じて、デバイスは、データをRAMに書き込むことができるがRAMから読み取ることができない状態、またはその逆の状態になる。
暗号攻撃が秘密鍵をデバイスから抽出することができる場合、デバイスのセキュリティは損なわれることになる。したがって、攻撃プロセスをできる限り難しくすることが望ましい。
概要
この概要は、本開示のいくつかの局面の基本的理解を提供するために概念一式を簡略化された形態で紹介するものである。この概要は、本開示の広範な概略ではなく、本開示の重要なまたは不可欠な要素を特定することを意図したものではなく、または本開示の範囲を描写することを意図したものでもない。この概要は、以下に記載される詳細な説明の前置きとして本開示の概念のうちのいくつかを提示しているに過ぎない。
本開示は、一般に、データのセキュリティを保護するための方法およびシステムに関する。より具体的には、本開示の局面は、クロック周期ランダム化を用いて暗号攻撃に対して保護することに関する。
一般に、本明細書に記載されている主題の一局面は、暗号化動作中にデバイスクロックをランダムに変化させる装置で実施可能であり、上記装置は、入力クロックと、クロック周期ランダマイザ(randomizer)とを備え、上記クロック周期ランダマイザは、少なくとも暗号化動作中にランダムなクロックレートでデバイスを駆動する出力可変クロックを生成するようにランダムに変化する可変クロック周期を発生させる。
少なくとも1つの実施形態では、上記クロック周期ランダマイザは、可変キャパシタを含む回路と、上記可変キャパシタを回路に接続したり回路から切り離したり切り替えるように構成されたスイッチとを含み、上記スイッチは、トリムコードによって制御され、上記回路は、上記スイッチの動作に基づいて、ローからハイにまたはハイからローにクロック信号を変化させるように構成される。
少なくとも1つの実施形態では、上記装置は、上記トリムコードを発生させるためのトリムコード発生器をさらに備え、上記トリムコード発生器は、乱数または疑似乱数を発生させるための乱数発生器を含む。
少なくとも1つの実施形態では、上記トリムコード発生器は、一群のレジスタを含み、各レジスタは、トリムコードを保持する。
少なくとも1つの実施形態では、上記トリムコード発生器は、線形フィードバックシフトレジスタを含む。
少なくとも1つの実施形態では、上記回路はさらに、インバータ、抵抗器およびキャパシタを含む固定遅延発生器と、インバータ、抵抗器および上記可変キャパシタを含む可変遅延発生器と、上記固定遅延発生器および上記可変遅延発生器に接続された論理ゲートとを含み、上記論理ゲートは、上記可変クロック周期を有する上記クロック信号を出力する。
少なくとも1つの実施形態では、上記クロック周期ランダマイザは、固定遅延を発生させる固定遅延発生器と、可変遅延を発生させる可変遅延発生器と、上記可変遅延発生器を制御するように構成されたトリムコード発生器とを含み、クロック信号は、上記固定遅延および上記可変遅延によって設定される可変周期を有する。
少なくとも1つの実施形態では、上記可変遅延発生器は、第1の遅延ユニットと第2の遅延ユニットとを含み、上記第1の遅延ユニットは、遅延を発生させるように構成された第1の回路と、上記第1の回路を回路に接続したり回路から切り離したり切り替えるように構成された第1のマルチプレクサとを含み、上記第1のマルチプレクサは、上記トリムコード発生器によって発生されるトリムコードによって制御され、上記第2の遅延ユニットは、遅延を発生させるように構成された第2の回路と、上記第2の回路を回路に接続したり回路から切り離したり切り替えるように構成された第2のマルチプレクサとを含み、上記第2のマルチプレクサは、上記トリムコード発生器によって発生されるトリムコードによって制御され、上記トリムコード発生器は、乱数または疑似乱数を発生させる乱数発生器を含む。
少なくとも1つの実施形態では、上記固定遅延は、上記可変遅延発生器の最小遅延に基づいて決定される。
少なくとも1つの実施形態では、上記固定遅延と上記可変遅延発生器の上記最小遅延との合計は、関連付けられたデバイスの最小クロック周期を満たす。
少なくとも1つの実施形態では、上記固定遅延と上記可変遅延発生器の上記最小遅延との合計の上界は、関連付けられたデバイスの予め定められた性能閾値を満たす。
少なくとも1つの実施形態では、上記クロック周期ランダマイザは、固定遅延を発生させる固定遅延発生器と、可変遅延を発生させる可変遅延発生器とを含み、上記可変遅延発生器は、底板を有するバラクタを含み、上記可変遅延は、上記バラクタの上記底板への電圧を変化させることによって発生され、クロック信号は、上記固定遅延および上記可変遅延によって設定される可変周期を有する。
少なくとも1つの実施形態では、上記クロック周期ランダマイザは、固定遅延を発生させる固定遅延発生器と、可変遅延を発生させる可変遅延発生器とを含み、上記可変遅延発生器は、上記可変遅延を発生させる位相補間器を含み、クロック信号は、上記固定遅延および上記可変遅延によって設定される可変周期を有する。
少なくとも1つの実施形態では、上記可変遅延発生器は、遅延を発生させるように構成された回路と、上記回路を回路に接続したり回路から切り離したり切り替えるように構成されたマルチプレクサとを含み、上記マルチプレクサは、上記トリムコード発生器によって発生されるトリムコードによって制御され、上記トリムコード発生器は、乱数または疑似乱数を発生させる乱数発生器を含む。
少なくとも1つの実施形態では、コントローラは、上記入力クロックに基づいて同期的に上記トリムコードを上記スイッチに提供する。
少なくとも1つの実施形態では、上記クロック周期ランダマイザは、デジタルアナログ変換器(digital to analog converter:DAC)と、サイクルごとに変化する入力基準を受信する電圧レギュレータと、直列の2n+1個のインバータとを含み、上記インバータは、上記電圧レギュレータによって出力される信号によって駆動され、nは、ゼロよりも大きな整数である。
少なくとも1つの実施形態では、上記可変キャパシタは線形キャパシタである。
少なくとも1つの実施形態では、上記可変キャパシタは非線形キャパシタである。
少なくとも1つの実施形態では、上記クロック周期ランダマイザはさらに、複数のスイッチを含み、上記回路はさらに、複数の実質的に同一の可変キャパシタを含み、上記実質的に同一の可変キャパシタに適用されるトリムコードは、アルファ符号に基づく。
少なくとも1つの実施形態では、上記クロック周期ランダマイザはさらに、複数のスイッチを含み、上記回路はさらに、複数の可変キャパシタを含み、上記可変キャパシタに適用されるトリムコードは、二進法で重み付けされる。
少なくとも1つの実施形態では、上記クロック周期ランダマイザはさらに、複数のスイッチを含み、上記回路はさらに、第1の可変キャパシタと第2の可変キャパシタとを含み、上記第1の可変キャパシタに適用される第1のトリムコードは、二進法で重み付けされたトリムコードであり、上記第2の可変キャパシタに適用される第2のトリムコードは、アルファ符号に基づく。
一般に、本明細書に記載されている主題の一局面は、暗号攻撃に対して防御するために少なくとも暗号化動作中にデバイスのクロック信号の可変クロック周期を発生させる方法で実施可能であり、上記方法は、固定遅延発生器によって固定遅延を発生させるステップと、可変遅延発生器によって可変遅延を発生させるステップと、乱数発生器によって乱数または疑似乱数を発生させるステップと、上記乱数または上記疑似乱数に基づいて上記可変遅延の量を制御するステップと、上記固定遅延および上記可変遅延に基づいてクロック信号の可変周期を制御するステップと、少なくとも暗号化動作中に上記可変クロック周期で上記デバイスを駆動するステップとを備える。
少なくとも1つの実施形態では、上記固定遅延と上記可変遅延の最小量との合計は、関連付けられたデバイスの最小クロック周期以上である。
少なくとも1つの実施形態では、上記固定遅延と上記可変遅延の最大量との合計は、上記関連付けられたデバイスの予め定められた性能閾値以下である。
一般に、本明細書に記載されている主題の一局面は、暗号攻撃に対して防御するために、少なくとも暗号化動作中に、関連付けられたデバイスのクロックのクロック周期をランダム化する方法で実施可能であり、上記方法は、トリムコードセットを決定するステップを備え、上記セットは、少なくとも第1のトリムコードと第2のトリムコードとを含み、上記方法はさらに、物理的電子ハードウェアによって乱数または疑似乱数を発生させるステップと、上記乱数または上記疑似乱数に基づいて上記トリムコードセットから上記第1のトリムコードを選択するステップと、上記乱数または上記疑似乱数に基づいて上記トリムコードセットから上記第2のトリムコードを選択するステップと、上記第1のトリムコードを可変遅延発生器に提供するステップとを備え、上記可変遅延発生器は、上記トリムコードセットからのいずれかのトリムコードに基づいて動作する要素を含み、上記方法はさらに、上記第2のトリムコードを上記可変遅延発生器に提供するステップを備え、上記第1のトリムコードが上記可変遅延発生器に提供されるとき、上記関連付けられたデバイスのクロック周期は第1の時間であり、上記第2のトリムコードが上記可変遅延発生器に提供されるとき、上記関連付けられたデバイスのクロック周期は第2の時間であり、上記第1の時間は、上記第2の時間よりも長い。
少なくとも1つの実施形態では、上記可変遅延発生器は、最小遅延を有し、固定遅延発生器は、固定遅延を有し、上記固定遅延は、上記関連付けられたデバイスの上記クロック周期の長さに寄与し、上記固定遅延と上記可変遅延発生器の上記最小遅延との合計は、上記関連付けられたデバイスの最小クロック周期以上である。
少なくとも1つの実施形態では、上記固定遅延と上記可変遅延発生器の上記最小遅延との上記合計は、上記関連付けられたデバイスの予め定められた性能閾値以下である。
少なくとも1つの実施形態では、上記第1の時間は、上記第2の時間よりも少なくとも1%長い。
また、本明細書に開示されるプロセッサおよびメモリシステムのうちのいくつかまたは全ての実施形態は、上記の方法実施形態のうちのいくつかまたは全てを実施するように構成されてもよい。上記の方法のうちのいくつかまたは全ての実施形態は、光メモリまたは磁気メモリなどの非一時的なプロセッサ読取可能な記憶媒体上で実施される命令としても表わされてもよい。また、本開示のシステムは、代替的に、たとえば新標準暗号規格(Advanced Encryption Standard:AES)、セキュアハッシュアルゴリズム(Secure Hash Algorithm:SHA)などの暗号化機能を実行する専用のハードウェアで実現されてもよい。
本開示の方法およびシステムの適用可能性のさらなる範囲は、以下に記載される詳細な説明から明らかになるであろう。しかし、本明細書に開示されている概念の精神および範囲内のさまざまな変更および変形がこの詳細な説明から当業者に明らかになるので、詳細な説明および具体的な例は、当該方法およびシステムの実施形態を示しているが、例として示されているに過ぎない、ということが理解されるべきである。
本開示のこれらのおよび他の目的、特徴および特性は、全てが本明細書の一部を構成する添付の特許請求の範囲および図面とともに以下の詳細な説明を検討することによって当業者により明らかになるであろう。
処理デバイスに対する従来の暗号攻撃の例を示すブロック図である。 本明細書に記載される1つ以上の実施形態に係る、クロック周期ランダム化を用いて暗号攻撃に対して防御する例示的な効果を示すブロック図である。 本明細書に記載される1つ以上の実施形態に係る、クロック周期ランダム化を用いて暗号攻撃に対して防御するための例示的なハイレベルシステムを示すブロック図である。 本明細書に記載される1つ以上の実施形態に係る、インバータ、可変キャパシタおよび論理ゲートの構成を含む、クロック周期ランダム化を発生させるための例示的なシステムを示す回路図である。 本明細書に記載される1つ以上の実施形態に係る、トリムコードを発生させるための例示的なシステムを示すブロック図である。 本明細書に記載される1つ以上の実施形態に係る、クロック周期ランダム化を発生させるための例示的な方法を示すフローチャートである。 本明細書に記載される1つ以上の実施形態に係る、同期ミラー遅延を含むクロック周期ランダム化を発生させるための例示的なシステムを示すブロック図である。 例示的な実施形態に係る、暗号攻撃に対して防御するために少なくとも暗号化動作中にデバイスクロック信号の可変クロック周期を発生させる方法を示すブロック図である。 例示的な実施形態に係る、暗号攻撃に対して防御するために、少なくとも暗号化動作中に、関連付けられたデバイスのクロックのクロック周期をランダム化する方法を示すブロック図である。 少なくとも1つの実施形態に係る、回路に接続されたり回路から切り離されたりし得る一群の非線形キャパシタを示す回路図である。 例示的な実施形態に係る、コントローラと基準電圧源と電圧レギュレータと直列の奇数個のインバータとを含む、クロック周期ランダム化を発生させるための例示的なシステムを示す回路図である。
本明細書における見出しは、便宜上のものであるに過ぎず、必ずしも本開示に記載されているものの範囲または意味に影響を及ぼさない。
理解を容易にするために、および便宜上、図中の同一の参照番号およびいかなる頭字語も、同一または同様の構造または機能を有する要素または動作を示すものとする。以下の詳細な説明の中で図面について詳細に説明する。
詳細な説明
ここで、本開示の方法およびシステムのさまざまな実施例および実施形態について説明する。以下の説明は、これらの実施例を完全に理解して説明することができるように具体的な詳細を提供している。しかし、これらの詳細のうちの多くが無くても本明細書に記載される1つ以上の実施形態を実施することができるということを当業者は理解するであろう。同様に、本開示の1つ以上の実施形態が本明細書に詳細に記載されていない他の特徴を含み得るということも当業者は理解するであろう。また、関連の説明を不必要に曖昧にすることを回避するために、いくつかの周知の構造または機能については以下で詳細に示しておらず、または説明していない。
上記のように、現在のコンピューティングシステムは、暗号化技術を用いて、異なるエンティティ間での安全な通信を提供し、実行される暗号化技術は、秘密鍵に依拠し得る。これらの秘密鍵に対して依拠していることにより、このようなシステムを攻撃して鍵を内密に抽出するためのさまざまな方法の開発が助長されてきた。
発明者等によって認識されるように、固定周期を有するクロックでデバイスが動作することが、サイドチャネル攻撃およびフォールト注入攻撃を含む暗号攻撃を行うことを容易にしている。デバイスのクロック周期をランダム化することにより、暗号攻撃がより難しくなる。たとえば、暗号鍵のビットの決定は、少なくとも部分的に、クロック周期の長さを把握することに基づくため、クロック周期のランダム化は、暗号攻撃をより難しくする。
図1は、処理デバイスに対して従来から行われてきた例示的な攻撃を示す。示されている例示的な構成100では、プロセッサは、たとえば新標準暗号規格(AES)などの暗号アルゴリズムを実現するコードを実行している。プロセッサが連続的な命令I,I,Iなどを実行すると、プロセッサは、実行されている命令と処理されているデータとの両方の関数である供給電流(IDD)110を引き込む。別の例示的なシナリオでは、供給電流110は、専用のAESハードウェアが命令を実行した結果として引き込まれてもよい。このシグネチャを解析して当該シグネチャが異なる入力下でどのように変化するかを観察することによって、暗号鍵、または一般に攻撃者にとって関心のあるその他の値もしくはオブジェクトに関する情報を取得して、最終的に推測することが可能になり得る。解析は、電力供給ではなくデバイスの電磁放射(electromagnetic radiation:EMR)またはアコースティックエミッションを測定することによって行われてもよい。このタイプのアプローチ(たとえば、デバイスの電力供給またはEMRを解析すること)は、一般にサイドチャネル攻撃と呼ばれる。
別の種類の攻撃は、プロセッサに動作不良を起こさせることによって、動作中にデバイスを妨害するために、電力供給を操作したり、デバイスのクロック周期を変化させたり、温度を変化させたり、または光、レーザ、X線もしくはイオンを使用することによって、デバイスを混乱させることを狙いとしている。これらの攻撃は、一般にフォールト注入攻撃120と呼ばれ、プロセッサが分岐またはジャンプ命令を実行しているときなどの特定の時点で妨害することに依拠する。
上記のように、暗号攻撃がシステムまたはデバイスから暗号鍵を抽出することができる場合、システムまたはデバイスのセキュリティは損なわれることになる。
したがって、本開示の方法およびシステムは、デバイスまたはシステムを攻撃するプロセスをより難しくするように設計されている。本明細書に記載されるように、本開示の実施形態では、ランダム化されたクロック周期、疑似ランダム化されたクロック周期または可変クロック周期を利用して、暗号攻撃からデバイスを保護する。たとえば、サイドチャネル攻撃およびフォールト注入攻撃は、比較的一貫したクロック周期に依拠し得る。したがって、固定周期Pを有するクロックを用いる代わりに、本開示の方法およびシステムは、可変周期を有するクロックを提供するまたは含む。
例示的な実施形態では、クロックの可変周期は、P+R×Dとして表わすことができ、Pは固定周期であり、Dは一定遅延であり、Rは乱数値または疑似乱数値である。例示的な実施形態では、Rは、たとえば間隔[0...1]における値であってもよい。例示的な実施形態では、Rの値は、あるクロックサイクルにおいて別のクロックサイクルと異なっていてもよい。別の例示的な実施形態では、Rは、各クロックサイクルによって変化してもよい。例示的な実施形態では、Rは、k番目のクロックサイクルごとに変化してもよく、kは正の整数である。別の例示的な実施形態では、Rは、さまざまなクロックサイクルによって変化してもよいが、Rが変化するたびに、Rが変化するサイクル間に同一のサイクル数が存在している必要はない。
図2は、本明細書に記載される1つ以上の実施形態に係る、クロック周期ランダム化を用いて暗号攻撃に対して防御する例示的な効果を示す。図2におけるクロック周期は、上記のようにP+R×Dの観点から定義することができる。しかし、クロック周期をランダム化することにより、暗号攻撃がより難しくなる。なぜなら、攻撃者は、Rが変化するたびにRの予備知識を持つことはないからである。サイドチャネル攻撃の場合、攻撃者は、今回の測定値を事前の測定値と比較し得るが、対応するクロックサイクルの長さが分からなければ当該比較は上手くいかないであろう。攻撃が秘密鍵のビット値を求めるために反復プロセスを必要とする場合には、さらに困難になる。フォールト注入攻撃の場合、所与の暗号アルゴリズムに対する特定の攻撃は、特定の命令を実行する直前にフォールト注入を必要とし得る。攻撃が、時刻tで発生するk番目のクロックサイクルにおいて注入されるフォールトを必要とする場合、クロック周期のランダム化は、tがいつであるのか、またはどのような命令がtで実行されるのかを判断することを難しくする。やはり、攻撃が複数回の反復を必要とする場合には、さらに困難になる。
図2では、サイドチャネル攻撃は、供給電流IDD210を監視し得る。しかし、電力解析に基づくサイドチャネル攻撃は、測定時にどの命令が実行されているかに関する知識が減少することによって上手くいかなくなる。所与の(命令、データ)ペアセットについて電力(またはエミッション)が分かっていても、さまざまなペアのうちの1つのために一致を見つけることは、さまざまな時間窓とともにさまざまな時間歪曲要因(time warp factor)を試みることを含み得る。フォールト220を注入する時刻tを見つけるという問題もより難しくなる。
多くの他の使途および用途の中で、本開示の方法、装置およびシステムは、たとえばフォールト注入攻撃および/または差分サイドチャネル攻撃が懸念されるハードウェアセキュリティアプリケーションで使用されてもよい。サイドチャネル攻撃およびフォールト注入攻撃に対して防御するためのアプローチが存在しているが、当該アプローチのうちのいずれも、本開示の方法およびシステムにおいて提供される態様でのクロック周期ランダム化を提供しないまたは含まない。
本明細書では、「ランダムな」、「ランダム性」、「ランダム化」、「ランダムに」などを実現する実施形態は、当業者によって認識されるであろうように、「疑似ランダムな」、「疑似ランダム性」、「疑似ランダム化」、「疑似ランダムに」などを用いてそうされてもよい。
図3は、クロック周期ランダム化を用いて暗号攻撃に対して防御するための例示的なハイレベルシステム300を示す。集積回路、チップまたはシステムオンチップなどのデバイス(図示せず)は、暗号化された通信などの暗号化動作を含む安全な動作を含む動作を提供する。デバイスは、動作を提供するために、入力クロック360によって駆動またはクロックされる。システム300は、少なくとも安全な動作中にデバイスクロック速度をランダム化して、暗号攻撃から保護する。少なくとも1つの実施形態によれば、システム300は、tFIXED310を発生させる固定遅延発生器と、tVAR320を発生させる可変遅延発生器と、乱数発生器330とを備えるクロック周期ランダマイザ350を含み得る。例示的な実施形態では、tVAR320を発生させる可変遅延発生器は、制御可能な可変遅延発生器であってもよい。クロック周期ランダマイザ350には入力クロック360が提供される。少なくとも1つの実施形態では、ハイレベルシステム300を統合することができるさらに大型のシステムまたはコンピューティングデバイスの設計中に確認されるごくわずかなジッタを除いて、入力クロック360は固定周期を有する。クロック周期ランダマイザ350は、システム300が統合されるデバイスの可変クロック信号駆動動作速度である可変クロック365を出力する。
例示的な実施形態では、tFIXED310を発生させる固定遅延発生器は、tFIXED310の遅延を発生させる回路に含まれてもよい。例示的な実施形態では、tVAR320を発生させる可変遅延発生器は、tVAR320の遅延を発生させる回路に含まれてもよい。例示的な実施形態では、tVAR320を発生させる可変遅延発生器は、乱数発生器330の出力に基づいて制御されてもよく、当該出力は、乱数または疑似乱数である。
例示的な実施形態では、tVAR320を発生させる可変遅延発生器は、トリムコード発生器500(図5)の出力に基づいて制御されてもよい。例示的な実施形態では、tFIXED310を発生させる固定遅延発生器、tVAR320を発生させる可変遅延発生器、および乱数発生器は、接続されてもよい。
例示的な実施形態では、tVAR320を発生させる可変遅延発生器(図3)は、インバータ430a(図4)と、抵抗器445aと、可変キャパシタ440aとを含み得る。
例示的な実施形態では、tFIXED310を発生させる固定遅延発生器(図3)は、キャパシタ420(図4)と、抵抗器415aと、キャパシタ425aとを含み得る。例示的な実施形態では、乱数発生器330は、トリムコード発生器500(図5)の一部であってもよい。
例示的な実施形態では、tFIXED310を発生させる固定遅延発生器(図3)は、tFIXED発生器710(図7)であってもよい。例示的な実施形態では、tVAR320を発生させる可変遅延発生器は、タウ(τ)遅延発生器720と、tVAR320を発生させる可変遅延発生器を備える回路にタウ(τ)遅延発生器720を接続したり当該回路からタウ(τ)遅延発生器720を切り離したり切り替えるマルチプレクサとを含み得る。
例示的な実施形態では、入力クロック360(図3)は、ある長さの周期Pを有してもよい。(実際には、Pは、ゼロではないジッタ量を有するが、ハイレベルの説明のために、Pは、1つのクロックサイクルから次のクロックサイクルまで一貫していると見なすことができる。)例示的な実施形態では、出力可変クロック365は、ある長さの周期P+R×Dを有してもよく、Rはランダム変数または疑似ランダム変数であり、Dは定数である。
デバイス内のシステム300(図3)の適切な動作のために、固定遅延310は、少なくともデバイスがサポートできる最小周期(たとえば、最高周波数)であるべきである。可変遅延320は、何らかの最大値tMAXによって有界であり得る。なお、tMAXの値を大きくすることによって、サイドチャネル攻撃およびフォールト注入攻撃を上手くいきにくくし得るが、有効クロック周波数を低下させることによってシステム性能も低下し得る。少なくとも1つの実施形態によれば、可変遅延320は、アナログまたはデジタル制御信号によって設定される。可変遅延320(図3)の実現例はリングオシレータを含み得るが、他の実現例も可能である。システム300は、それに対してセキュリティを提供するためにさまざまなデバイスの一部分であってもよく、またはさまざまなデバイスに組み込まれてもよく、このようなデバイスは、たとえばセキュリティ集積回路(セキュリティ「チップ」としても知られている)、システムオンチップ(「SoC」としても知られている)、またはコンピューティングデバイスもしくは通信デバイスを含む。
乱数発生器330は、たとえばシステム300がその一部分であるかまたは組み込まれるシステムまたはデバイスにおいて何らかのランダムパラメータまたはイベントを測定する真性乱数発生器(true random number generator:TRNG)、線形フィードバックシフトレジスタなどの疑似乱数発生器、それらの何らかの組み合わせ、またはランダム性もしくは疑似ランダム性を提供する何らかの他の実現例であってもよい。
本開示の1つ以上の実施形態によれば、システムの実現例の詳細は、図3に示される例示的なシステム300のものとは異なっていてもよい。たとえば、可変遅延tVAR320のいずれかの実現例は、特定の最小遅延を有する。この最小遅延は、固定遅延tFIXED310を設計する際に考慮され得る。
出力可変クロック365は、クロック周期ランダマイザが可変クロック周期を発生させるデバイスの最大周波数によって下に有界である。いくつかのデバイス、たとえば動的電圧スケーリングおよび/または動的周波数スケーリングを用いるデバイスでは、クロックの最大周波数は、それ自体が可変である。最大周波数は変化するので、出力可変クロック365の下界も変化する。したがって、可変周期がP+R×Dとして表わされ、Rが間隔[0...1]における値である場合、Pは、クロック周期ランダマイザが可変クロック周期を発生させるデバイスの最大周波数によって下に有界である。
図4は、インバータ、可変キャパシタおよび論理ゲートの構成を含むクロック周期ランダム化を発生させるための例示的なシステム400を示す。図4は、論理ゲート410と、抵抗器415a〜415dと、インバータ420a〜420dと、キャパシタ425a〜425dと、インバータ430a〜430dと、可変キャパシタ440a〜440dと、抵抗器445a〜445dと、クロック周期ランダマイザ450と、入力クロック460と、出力可変クロック465と、信号用接地470a〜470dと、信号用接地475a〜475dと、固定遅延線480と、可変遅延線485と、出力可変クロック線487と、コントローラ490とを含む。コントローラ490は、トリムコード発生器500(図5)を備え得る。代替的に、コントローラ490は、トリムコード発生器500に接続されて、トリムコード発生器500から少なくとも1つのトリムコードを受信してもよい。コントローラ490は、当該少なくとも1つのトリムコードを可変キャパシタ440a〜440dに提供する。
図4に示される例示的な実施形態では、固定遅延tFIXED310(図3)の大部分は、4つのインバータ420a〜420d、抵抗器415a〜415dおよびキャパシタ425a〜425dの組み合わせによって提供される。可変遅延は、たとえばクロックの立ち下がりエッジを押し出すことによって提供されてもよい。たとえば、この可変遅延は、4つのインバータ430a〜430d、4つの抵抗器445a〜445dおよび4つの可変キャパシタ440a〜440dの組み合わせによって実現されてもよい。4つの抵抗器445a〜445dおよび4つの可変キャパシタ440a〜440dは、それらが実現する時定数に基づいて可変遅延を提供し得て、この時定数を実現することは、少なくとも1つのトリムコードを適用することを含み得る。少なくとも1つのトリムコードは、可変遅延tVAR320を実現するように異なるサイクルで変更されてもよい。
図4は、論理ゲート410をNANDゲートとして示しているが、実施形態はそれに限定されるものではない。別の例示的な実施形態では、クロック周期ランダマイザは、NANDゲートの代わりにNORゲートなどのロジックで実現されてもよい。
例示的な実施形態では、システム400は、以下の態様で動作し得る。入力クロック460は、クロック信号をコントローラ490に提供する。少なくとも1つの実施形態では、入力クロック460は、固定周期を有するクロックであってもよく、ごくわずかな量のジッタが除外され、入力クロック460は、クロック周期ランダマイザ450がその一部分であるかまたは組み込まれるデバイスを駆動し得る。少なくとも1つの実施形態では、暗号アルゴリズムの実行中またはセキュリティが要求される手順中に、入力クロック460は、クロック周期ランダマイザ450が出力可変クロック465を提供するように動作するように、クロック周期ランダマイザ450を駆動してもよく、またはクロックをクロック周期ランダマイザ450に提供してもよい。少なくとも1つの実施形態では、出力可変クロック465は、セキュリティが要求される動作を実行する回路またはプロセッサを駆動する可変クロック信号を提供し得る。
コントローラ490は、制御信号を可変キャパシタ440a〜440dに提供する。当該制御信号は、少なくとも1つのトリムコードを備え得る。
図4に基づく実施形態では、クロック周期ランダマイザ450は、キャパシタ470a〜470dと、可変キャパシタ445a〜445dとを両方とも備える。少なくとも1つの実施形態では、設計の1つの利点は、トリムコードをコントローラ490によって可変キャパシタ440a〜440dに同期的に提供できることである。すなわち、入力クロック460と可変キャパシタ440a〜440dにトリムコードを提供するコントローラ490とは、同期システム設計を有し得る。
可変遅延チェーン(インバータ430a〜430d、抵抗器445a〜445d、可変キャパシタ475a〜475d)は、制御信号に従って制御されるので、可変遅延チェーンの時定数τは、制御信号に基づいて変化する。したがって、可変遅延チェーンから論理ゲート410に入力される可変遅延線485における電圧は、制御信号に基づいて変化する。固定遅延線480からの電圧および可変遅延線485からの電圧が論理ゲート410に到達すると、論理ゲート410は、出力可変クロック線487を介してハイからローまたはローからハイへのクロック信号の変化を生じさせ、出力可変クロック465がもたらされる。信号用接地470a〜470dおよび信号用接地475a〜475dは、回路内の各段に基準電圧を提供する。制御信号490は、ランダム性または疑似ランダム性をクロック周期ランダマイザ450に提供して、τにランダムまたは疑似ランダムな変化を生じさせる。
図4に示されるクロック周期ランダマイザ450は、インバータと抵抗器とキャパシタと信号用接地とを備えるセットの4つのインスタンスを含む。さらに、図4に示されるクロック周期ランダマイザ450は、インバータと抵抗器と可変キャパシタと信号用接地とを備えるセットの4つのインスタンスを含む。しかし、実施形態はそれに限定されるものではない。セットの数は設計パラメータまたは好みに応じて変化し得るということを当業者は認識するであろう。
少なくとも1つの実施形態では、可変キャパシタ440a〜440dは、一群の線形キャパシタ(たとえば、図10に図示されており、以下でさらに詳細に説明する)として実現されてもよい。この実施形態では、キャパシタ440a〜440dへの制御信号は、キャパシタ440a〜440dを回路に接続したり回路から切り離したり切り替える1つ以上のスイッチを動作させ得る。この実施形態では、出力可変クロック465が突然故障しないように、固定遅延チェーン(インバータ420a〜420d、抵抗器415a〜415d、キャパシタ425a〜425d)を横断するパルスがない場合にのみキャパシタの設定を更新するように注意すべきである。
少なくとも1つの他の実施形態では、可変キャパシタ440a〜440dは、底板電圧が変更されるバラクタとして実現されてもよい。実施形態では、可変キャパシタ440a〜440dへの制御信号は、バラクタの底板への電圧を変化させるように動作し得る。
上記され、図3および図4に示される例示的な実現例に加えて、またはそれらの例示的な実現例の代わりに、多くの他の可能な実現例がある。たとえば、可変遅延(tVAR320)を提供する要素は、個々の段だけでなく各段に可変キャパシタを含めることによって、より均一にリングの周囲に分散されてもよい。少なくとも1つの他の実施形態では、リング全体に対する供給は、入力基準がサイクルごとに変化する電圧レギュレータ(たとえば、図11に図示されており、以下でさらに詳細に説明する)によって駆動されてもよい。代替的に、リング内の有効な要素の数は、同期ミラー遅延(たとえば、図7に図示されており、以下でさらに詳細に説明する)のマルチプレクサ構造または変形形態を用いて変更されてもよい。
1つ以上の他の実施形態によれば、遅延を変化させるために位相補間器が用いられてもよい。このような実施形態では、位相補間器制御装置のサブセットは、傾斜などの公知のパターンではなくランダムまたは疑似ランダム入力に設定される。
Figure 0006621533
少なくとも1つの実施形態では、線形キャパシタ1040a〜1040nは、デジタル時間変換器(digital to time converter:DTC)に類似しており、そのさまざまな実現例は当業者に公知である。
少なくとも1つの実施形態では、線形キャパシタ1040a〜1040n(または、少なくとも1つの実施形態では、線形キャパシタ1040a〜1040nを備える要素のn個のセット)は、同一であってもよく(または、「実質的に同一」であってもよく、たとえば同一の部品番号もしくは同一のモデル番号を有してもよく)、その場合、スイッチ1030a〜1030nに適用されるトリムコードセットにおける少なくともいくつかのトリムコードは、アルファ符号(たとえば、温度計符号)に基づき得る。
少なくとも1つの実施形態では、線形キャパシタ1040a〜1040n(または、少なくとも1つの実施形態では、線形キャパシタ1040a〜1040nを備える要素のn個のセット)は、二進法で重み付けされてもよく、その場合、トリムコードセットにおける少なくともいくつかのトリムコードは、本明細書では、二進数としてインクリメントする「二進法で重み付けされたトリムコード」と呼ばれる。
少なくとも1つの実施形態では、線形キャパシタ1040a〜1040n(または、少なくとも1つの実施形態では、線形キャパシタ1040a〜1040nを備える要素のn個のセット)は、同一の線形キャパシタ(線形キャパシタを備える要素のn個のセット)と二進法で重み付けられた線形キャパシタ(線形キャパシタを備える要素のn個のセット)との組み合わせであってもよく、上位ビットに対応する線形キャパシタ(線形キャパシタを備える要素のn個のセット)は、二進法で重み付けされ、対応するスイッチに適用される二進法で重み付けされたトリムコードによって制御され、下位ビットに対応する線形キャパシタは、同一であり、アルファ符号に基づいてトリムコードによって制御される。
線形キャパシタ1040a〜1040nは、線形キャパシタであってもよいが、実施形態はそれに限定されるものではない。たとえば、線形キャパシタ1040a〜1040nの代わりのキャパシタは、ソースおよびドレインが短絡したCMOSデバイスに基づき、キャパシタンスは非線形である。
図11は、例示的な実施形態に係る、コントローラと基準電圧源と電圧レギュレータと直列の奇数個のインバータとを含むクロック周期ランダム化を発生させるための例示的なシステムを示す回路図である。図11は、インバータ1130a〜1130(2n+1)と、電圧レギュレータ1150と、コントローラ1190と、出力可変クロック線1187と、出力可変クロック1165と、基準電圧VREFとを含む。図11では、リング全体に対する供給は、入力基準VREFがサイクルごとに変化する電圧レギュレータ1150によって駆動され得る。リングは、直列の奇数個のインバータを含み、すなわちリング内のインバータの数は2n+1であり、n>0である。リング内の全ての段は、電圧レギュレータ1150によって駆動される。それらの段はインバータとして示されているが、実施形態はそれに限定されるものではない。電圧レギュレータ1150からの出力は、コントローラ1190によって提供される基準信号VREFによって制御される。VREFは、入力が周期的に変化するデジタルアナログ変換器(DAC)によって駆動されて、周期的な変化を発生させ、この実施形態では、コントローラ1190がDACを含んでもよい。少なくとも1つの他の実施形態では、電圧レギュレータ1150がDACの機能を含んでもよく、この実施形態では、電圧レギュレータ1150は、デジタル電圧制御入力を有してもよい。
図5は、トリムコードを発生させるための例示的なシステムを示す。図5は、トリムコード発生器500と、乱数発生器530と、シード(seed)543と、mビット疑似ランダム二進数列発生器515と、論理ゲート510と、フリップフロップ520a〜520mを備えるシフトレジスタと、モジュラー算術計算機512と、レジスタ540a〜540pを備えるレジスタバンクと、マルチプレクサ550とを含む。レジスタ540a〜540pを備えるレジスタバンクは、16個のレジスタを含み得るが、実施形態はそれに限定されるものではない。レジスタバンク内のレジスタ540の数は、設計パラメータまたは好みに基づいて、当業者によって選択されてもよい。
少なくとも1つの実施形態によれば、トリムコード発生器500は、疑似ランダム性を用いてトリムコードを出力して、トリムコードセットからのどのトリムコードを出力すべきであるかを判断する。例示的な実施形態では、トリムコードは、オシレータの一部を構成するキャパシタアレイの制御のためのものであり得る。一般に、トリムコード発生器500のアプローチは、どれぐらい周波数を変化させるかをハードウェアにおいて把握するのではなく、対象回路にトリムコードを適用した結果が所望の周波数を中心とするようにプログラム可能なトリムコードセットから単にランダムに選択するというものである。
例示的な実施形態では、乱数発生器530は、シード543をmビット疑似ランダム二進数列発生器515に提供し、mビット疑似ランダム二進数列発生器515は、mビット疑似ランダム二進数列(mPRBS)をモジュラー算術計算機512に提供する。
mビット疑似ランダム二進数列発生器515を更新することができる方法がいくつかある。mビット疑似ランダム二進数列発生器515によって出力されるmPRBSが十分な長さを有する場合には、暗号化ルーチン当たり一度だけmビット疑似ランダム二進数列発生器515へのシード543を更新するだけで十分であろう。少なくとも1つの他の実施形態では、シード543は、有限状態マシンの制御下で周期的に更新されてもよい。
モジュラー算術計算機512は、mPRBS mod λを求め得て、λは正の整数である。モジュラー算術計算機512によって求められた値は、マルチプレクサ550に提供されて、レジスタ540a〜540pを備えるレジスタバンクの特定のレジスタに保持される値がマルチプレクサ550からの出力として提供されるようにマルチプレクサ550を制御する。例示的な実施形態では、マルチプレクサ550からの出力は、クロック周期ランダマイザ450を制御するための制御信号としてコントローラ490(図4)に提供されてもよい。別の実施形態では、マルチプレクサ550の出力は、クロック周期ランダマイザ450の一部であり得る一群の線形キャパシタ1050を制御するための制御信号としてコントローラ1090(図10)に提供されてもよい。
例示的な実施形態では、乱数発生器530は、真性乱数発生器として実現される。例示的な実施形態では、mビット疑似ランダム二進数列発生器515は、線形フィードバックシフトレジスタ(linear feedback shift register:LFSR)として実現される。例示的な実施形態では、mの値は、所望のレベルの疑似ランダム性が達成されるように選択される。論理ゲート510はXNORゲートとして示されているが、mビット疑似ランダム二進数列発生器515はそれに限定されるものではないということを当業者は認識するであろう。LFSRを実現する方法は多数あり、LFSRに含まれる論理ゲートは、XNORゲート以外であってもよい。
例示的な実施形態では、λは、マルチプレクサ550に接続されたレジスタバンク内のレジスタ540a〜540pの数に等しい。例示的な実施形態では、モジュラー算術計算機512は、mPRBS mod 16を求める。例示的な実施形態では、レジスタ540a〜540pに保持される値は、コントローラ490に供給され得るトリムコードである。コントローラ490に供給される可能なトリムコードの数は、クロック周期ランダマイザ450内の可変キャパシタアレイがどのようにして実現されるかに依存し得る。例示的な実施形態では、クロック周期ランダマイザ450は、キャパシタ440a〜440d(または、1040a〜1040n)を切り換える複数のスイッチ(たとえば、1030a〜1030n(図10))を含み得て、スイッチセットは、クロック周期ランダマイザ450の動作にとって許容できる(たとえば、有用な、または有効な、または合法的な)状態数σを有し得る。例示的な実施形態では、σ個のレジスタ540a〜540pが望ましいであろう。
図6は、クロック周期ランダム化を発生させるための例示的な方法600を示す。本明細書に記載される少なくとも1つの実施形態によれば、プロセス600は、ブロック605〜620を含み得る。しかし、本開示の1つ以上の他の実施形態によれば、例示的なプロセス600は、図6に示され、以下でさらに詳細に説明するものに加えて、またはそれらの代わりに、1つ以上の他のステップまたは動作を含んでもよい。
Figure 0006621533
最大動作周波数fMAXは、CPU、ASIC、または暗号アルゴリズムを実行して出力可変クロック365,465または1165を受信する他の集積回路の仕様に基づき得る。
ブロック610において、特定の性能レベルを維持しながら(たとえば、性能閾値を満たしながら)デバイス全体が動作可能な最大期間(tMAX)について判断し得る。
最大期間tMAXは、設計の好みに依存し得る。暗号アルゴリズムの複雑さが比較的低く、暗号アルゴリズムが汎用プロセッサではなくASIC上で実行される場合には、tMAXは比較的低くなるが、ASICは、汎用プロセッサ上で暗号アルゴリズムを実行する以上にコストがかかる可能性がある。一方、暗号アルゴリズムの複雑さが比較的高く、暗号アルゴリズムが汎用プロセッサ上で実行される場合には、tMAXは、設計の好みおよびパラメータにとってさらに重要である。なぜなら、出力可変クロック365,465または1165によって駆動される暗号アルゴリズムの実行には、比較的多くの時間が必要であるからである。
ブロック615において、クロック周期の最小期間を、(ブロック605において求められた)同期システム設計が動作可能な最小期間(tMIN)に設定し得る。
ブロック620において、クロック周期の変化を、ブロック610において求められた最大期間とブロック605において求められた最小期間との間の差、または(tMAX)−(tMIN)に設定し得る。
図7は、同期ミラー遅延(SMD)を含むクロック周期ランダム化を発生させるための例示的なシステム700を示す。例示的な実施形態では、固定遅延tFIXED310は、tFIXED発生器710によって提供される。本明細書に記載される少なくとも1つの実施形態によれば、tFIXED発生器710は、容量性またはRCローディングによりインバータを用いて実現されてもよい。しかし、1つ以上の他の実施形態によれば、tFIXED発生器710は、遅延を発生させる任意の回路で実現されてもよい。示されている例では、tFIXED発生器710はオシレータのための反転も発生させるが、この機能は、リング内の他の場所で提供されてもよい。
遅延の可変部分(図3のtVAR320)は、選択信号Sel,Sel,...,Sel(nは、全ミラー遅延段の数である)を用いて選択され得る。タウ(τ)遅延発生器720の各々は、固定遅延を有する。所与の信号Selを高く選択することにより、2τiの可変遅延がもたらされる(各々のタウ(τ)遅延発生器720は同一の遅延量を提供するように実現されるものとする)。例示的な実施形態では、所与の信号Selを高く選択することは、マルチプレクサ730が選択信号を受信することによってなされ得る。iの選択をランダムまたは疑似ランダムにすることによって、オシレータの遅延全体は、tFIXEDとtFIXED+2τnとの間でランダムまたは疑似ランダムに変化する。
例示的な実施形態では、マルチプレクサ730、および、それが回路に接続したり回路から切り離したり切り替えるタウ(τ)遅延発生器720を備える回路は、遅延ユニットと呼ぶことができる。
例示的な実施形態では、コントローラ790は、選択信号Sel,Sel,...,Selを提供する。例示的な実施形態では、コントローラ790は、トリムコード発生器500である。例示的な実施形態では、コントローラ790は、トリムコード発生器500であり、マルチプレクサ550の出力は、長さnのビットベクトルである。例示的な実施形態では、コントローラ790は、σ個のレジスタ540a〜540pを有するトリムコード発生器500であり、選択信号によって選択される合法的な状態の数はσである。
図7における例は個別のマルチプレクサを示しているが、フォワードパスをリバースパスにループバックする多くの他の構成が等価であると考えられることに注目すべきである。
図8は、例示的な実施形態に係る、暗号攻撃に対して防御するために少なくとも暗号化動作中にデバイスのクロック信号の可変クロック周期を発生させる方法800を示すブロック図である。図8は、暗号化動作の起動(805)で開始する。本明細書に記載されるクロック周期ランダマイザの実施形態が暗号化動作を起動させることは必須ではなく、クロック周期ランダマイザ以外のデバイスまたはユニットが暗号化動作を起動させてもよい。暗号化動作がソフトウェアで実行される場合、当該ソフトウェアが、クロック周期ランダマイザを作動させて、少なくとも暗号化動作中にランダムなクロックレートでデバイスを駆動する出力可変クロックを生成するようにランダムに変化する可変クロック周期を開始してもよい(たとえば、クロック周期ランダマイザにそのような可変クロック周期を開始させてもよい)。暗号化動作が暗号化動作のためのハードウェア(たとえば、暗号化動作のためのASIC、セキュリティまたは暗号化コプロセッサなど)で実行される場合、当該暗号化動作のためのハードウェアの起動は、クロック周期ランダマイザを作動させて、少なくとも暗号化動作中にランダムなクロックレートでデバイスを駆動する出力可変クロックを生成するようにランダムに変化する可変クロック周期を開始してもよい(たとえば、クロック周期ランダマイザにそのような可変クロック周期を開始させてもよい)。一般に、暗号化動作が起動するまたは起動していることを判断するためのその他の従来のまたは公知の手段は、ロジックで補充されて、クロック周期ランダマイザを作動させて、少なくとも暗号化動作中にランダムなクロックレートでデバイスを駆動する出力可変クロックを生成するようにランダムに変化する可変クロック周期を開始してもよい(たとえば、クロック周期ランダマイザにそのような可変クロック周期を開始させてもよい)。
クロック周期ランダマイザは、動作を開始する。
第一に、固定遅延発生器が固定遅延を発生させる(810)。固定遅延発生器は、抵抗器415a〜415dとインバータ420a〜420dとキャパシタ425a〜425dとを含むクロック周期ランダマイザ450の一部などのRC回路を備え得る。少なくとも1つの他の実施形態では、固定遅延発生器は、tFIXED発生器710を備えていてもよい。少なくとも1つの他の実施形態では、tFIXEDは、図11のVREFのパルス間の時間における時間成分であってもよい。少なくとも1つの他の実施形態では、tFIXEDは、電圧レギュレータ1150がDAC機能を含む図11の実施形態におけるデジタル電圧制御入力からのデジタル信号間の時間における時間成分であってもよい。
第二に、可変遅延発生器が可変遅延を発生させる(820)。可変遅延発生器は、インバータ430a〜430dと、抵抗器445a〜445dと、可変キャパシタ440a〜440dとを含み得て、トリムコード発生器500からトリムコードを受信し得る。少なくとも1つの実施形態では、可変遅延発生器は、タウ(τ)遅延発生器720と、マルチプレクサ730〜730とを含んでもよく、コントローラ790から信号を受信してもよい。少なくとも1つの実施形態では、可変遅延発生器は、スイッチ1030a〜1030nと、キャパシタ1040a〜1040nとを含んでもよく、トリムコード発生器500によって発生されたトリムコードをコントローラ1090から受信してもよい。少なくとも1つの実施形態では、可変遅延tVARは、図11のVREFのパルス間の時間におけるランダムまたは疑似ランダムに変化する時間成分であってもよい。少なくとも1つの他の実施形態では、tVARは、電圧レギュレータ1150がDAC機能を含む図11の実施形態におけるデジタル電圧制御入力からのデジタル信号間の時間におけるランダムまたは疑似ランダムに変化する時間成分であってもよい。
第三に、乱数発生器が乱数または疑似乱数を発生させる(830)。乱数発生器は、乱数発生器330または530であってもよい。
第四に、当該乱数または疑似乱数に基づいて可変遅延の量を制御する(840)。可変遅延の量は、トリムコード発生器500およびコントローラ490,790または1090によって、当該乱数または疑似乱数に基づいて制御されてもよい。可変遅延の量は、コントローラ1190によって、当該乱数または疑似乱数に基づいて制御されてもよい。可変遅延の量は、デジタル信号を受信する電圧レギュレータ1150によって、当該乱数または疑似乱数に基づいて制御されてもよく、電圧レギュレータ1150はDAC機能を含む。
第五に、当該固定遅延および可変遅延に基づいてクロック信号の可変周期を制御する(850)。クロック信号の可変周期は、トリムコード発生器500およびコントローラ490,790または1090によって、当該固定遅延および可変遅延に基づいて制御されてもよい。少なくとも1つの実施形態では、クロック信号の可変周期は、コントローラ1190によって、当該固定遅延および可変遅延に基づいて制御されてもよい。少なくとも1つの実施形態では、クロック信号の可変周期は、デジタル信号を受信する電圧レギュレータ1150によって、当該固定遅延および可変遅延に基づいて制御されてもよく、電圧レギュレータ1150はDAC機能を含む。
第六に、少なくとも暗号化動作中に可変クロック周期でデバイスを駆動する(860)。デバイスは、出力可変クロック365,465または1165によって駆動されてもよい。
図9は、例示的な実施形態に係る、暗号攻撃に対して防御するために、少なくとも暗号化動作中に、関連付けられたデバイスのクロックのクロック周期をランダム化する方法900を示すブロック図である。第一に、トリムコードセットを求め(910)、当該セットは、少なくとも第1のトリムコードと第2のトリムコードとを含む。トリムコードセットは、トリムコード発生器500によって発生または求められ得る。トリムコードセットは、トリムコードセットにおける各トリムコードが備え得るビット数に基づいて当業者によって求められてもよい。トリムコードセットにおける各トリムコードのビット数に関連する要因としては、トリムコードを用いて制御する要素の数、および、トリムコードを用いて制御する要素の所望のまたは許容できる状態の数を挙げることができる。
第二に、物理的電子ハードウェアが乱数または疑似乱数を発生させる(920)。乱数または疑似乱数は、乱数発生器330または530によって発生され得る。
第三に、当該乱数または疑似乱数に基づいてトリムコードセットから第1のトリムコードを選択する(930)。トリムコードセットからの第1のトリムコードは、トリムコード発生器500によって当該乱数または疑似乱数に基づいて選択されてもよく、トリムコード発生器500は、mビット疑似ランダム二進数列発生器515と、論理ゲート510と、フリップフロップ520a〜520mを備えるシフトレジスタと、モジュラー算術計算機512と、レジスタ540a〜540pを備えるレジスタバンクと、マルチプレクサ550とを含む。
第四に、当該乱数または疑似乱数に基づいてトリムコードセットから第2のトリムコードを選択する(940)。トリムコードセットからの第2のトリムコードは、トリムコード発生器500によって当該乱数または疑似乱数に基づいて選択されてもよく、トリムコード発生器500は、mビット疑似ランダム二進数列発生器515と、論理ゲート510と、フリップフロップ520a〜520mを備えるシフトレジスタと、モジュラー算術計算機512と、レジスタ540a〜540pを備えるレジスタバンクと、マルチプレクサ550とを含む。
第五に、第1のトリムコードを可変遅延発生器に提供し(950)、可変遅延発生器は、トリムコードセットからのいずれかのトリムコードに基づいて動作する要素を含む。少なくとも1つの実施形態では、トリムコードセットは、許容できる状態のためのトリムコードのみを含んでもよく、少なくとも1つの実施形態では、特定の長さのビットベクトルの全ての順列が、許容できる状態のためのトリムコードであるとは限らない。なぜなら、いくつかの順列は、適用されると、有用でなく、望ましくなく、有効でなく、および/または、合法的でない構成(たとえば、ハードウェア構成またはスイッチ構成)をもたらし得るからである。可変遅延発生器は、インバータ430a〜430dと、抵抗器445a〜445dと、可変キャパシタ440a〜440dとを含んでもよく、トリムコード発生器500から第1のトリムコードおよび第2のトリムコードを受信してもよい。少なくとも1つの実施形態では、可変遅延発生器は、タウ(τ)遅延発生器720と、マルチプレクサ730〜730とを含んでもよく、コントローラ790から信号を受信してもよく、当該信号は、第1のトリムコードと第2のトリムコードとを備える。少なくとも1つの実施形態では、可変遅延発生器は、スイッチ1030a〜1030nと、キャパシタ1040a〜1040nとを含んでもよく、コントローラ1090から第1のトリムコードおよび第2のトリムコードを受信してもよい。少なくとも1つの実施形態では、可変遅延tVARは、図11のVREFのパルス間の時間におけるランダムまたは疑似ランダムに変化する時間成分であってもよく、ランダムまたは疑似ランダムな変化は、第1のトリムコードまたはおよび第2のトリムコードの機能であり得て、当該機能は、集積回路を備えるロジックによって、またはコントローラ1190によって、求められるまたは計算される。少なくとも1つの他の実施形態では、tVARは、電圧レギュレータ1150がDAC機能を含む図11の実施形態におけるデジタル電圧制御入力からのデジタル信号間の時間におけるランダムまたは疑似ランダムに変化する時間成分であってもよく、当該デジタル信号は、第1のトリムコードもしくは第2のトリムコードの機能であり、または第1のトリムコードもしくは第2のトリムコードを備える。
第六に、第2のトリムコードを可変遅延発生器に提供し(960)、第1のトリムコードが可変遅延発生器に提供されるとき、関連付けられたデバイスのクロック周期は第1の時間であり、第2のトリムコードが可変遅延発生器に提供されるとき、関連付けられたデバイスのクロック周期は第2の時間であり、第1の時間は第2の時間よりも少なくとも1%長い。
本明細書において、「暗号化動作」は、暗号アルゴリズムに含まれる動作を備える。「暗号化動作」はさらに、秘密鍵上での動作を備える。暗号アルゴリズムは、連邦情報処理規格刊行物202(SHA−3規格)および連邦情報処理規格刊行物197(AES規格)に規定されるアルゴリズムを含むが、それらに限定されるものではない。
上記の詳細な説明では、ブロック図、フローチャートおよび/または例を用いることによってデバイスおよび/またはプロセスのさまざまな実施形態について説明してきた。このようなブロック図、フローチャートおよび/または例が1つ以上の機能および/または動作を含む限りにおいて、このようなブロック図、フローチャートまたは例の中の各機能および/または動作は、さまざまなハードウェア、ソフトウェア、ファームウェア、または実質的にそれらのいずれかの組み合わせによって、個々におよび/または一括して実行されてもよいということが当業者によって理解されるであろう。少なくとも1つの実施形態によれば、本明細書に記載される主題のいくつかの部分は、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、フィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA)、デジタル信号プロセッサ(digital signal processor:DSP)、または他の集積フォーマットによって実現されてもよい。しかし、本明細書に開示される実施形態のいくつかの局面は、全体または一部が、1つ以上のコンピュータで実行される1つ以上のコンピュータプログラムとして、1つ以上のプロセッサで実行される1つ以上のプログラムとして、ファームウェアとして、または実質的にそれらのいずれかの組み合わせとして、集積回路において同等に実現されてもよく、回路を設計することおよび/またはソフトウェアおよび/またはファームウェアのためのコードを書き込むことは、本開示を踏まえると十分に当業者の技術の範囲内である、ということを当業者は認識するであろう。
本明細書における実質的にいずれの複数形および/または単数形の用語の使用に関しても、当業者は、文脈および/または適用例に適したように、複数形から単数形に、および/または、単数形から複数形に変換することができる。さまざまな単数形/複数形置換は、明確にする目的で本明細書に明記されている。
このように、主題の特定の実施形態について説明してきた。他の実施形態も以下の特許請求の範囲の範囲内である。場合によっては、請求項に記載されている動作は、異なる順序で実施されたとしても依然として望ましい結果を達成することができる。また、添付の図面に示されているプロセスは、望ましい結果を達成するために、示されている特定の順序またはシーケンシャルな順序を必ずしも必要としない。特定の実現例では、マルチタスクおよび並列処理が有利であろう。

Claims (8)

  1. ランダムに変化するデバイスクロック周期を暗号化動作中に生成するための装置であって、
    入力クロックと、
    前記入力クロックから入力クロック周期を受信し、かつ、前記ランダムに変化するデバイスクロック周期を生成するように構成されたクロック周期ランダマイザとを備え、
    前記クロック周期ランダマイザは、
    インバータ、抵抗器およびキャパシタを含む固定遅延発生器と、
    可変遅延発生器とを含み、前記可変遅延発生器は、
    遅延線と、
    各々が前記遅延線に接続されたインバータおよび抵抗器と、
    可変キャパシタと、
    トリムコードに基づいて、前記可変キャパシタを前記遅延線に接続したり前記遅延線から切り離したり切り替えるように構成されたスイッチとを含み
    前記クロック周期ランダマイザは、前記固定遅延発生器および前記可変遅延発生器の前記遅延線に接続された論理ゲートをさらに含み、前記論理ゲートは、前記スイッチの動作に基づいて、ローからハイにまたはハイからローにクロック信号を変化させることによって前記ランダムに変化するデバイスクロック周期を生成するように構成される、装置。
  2. 前記トリムコードは、それぞれトリムコードを含む一群のレジスタから選択される、請求項1に記載の装置。
  3. 前記トリムコードの選択は、乱数または疑似乱数に基づく、請求項2に記載の装置。
  4. 前記乱数または前記疑似乱数は、線形フィードバックシフトレジスタによって生成される、請求項3に記載の装置。
  5. 前記入力クロック周期に基づいて同期的に前記トリムコードを前記スイッチに提供するように構成されたコントローラをさらに含む、請求項1〜4のいずれか1項に記載の装置。
  6. 前記クロック周期ランダマイザはさらに、複数のスイッチおよび複数の可変キャパシタを含み、各々のトリムコードは、アルファ符号に基づいて前記複数の可変キャパシタに適用される、請求項1〜のいずれか1項に記載の装置。
  7. 前記クロック周期ランダマイザはさらに、複数のスイッチおよび複数の可変キャパシタを含み、各々のトリムコードは、二進重み付けに基づいて前記複数の可変キャパシタに適用される、請求項1〜のいずれか1項に記載の装置。
  8. 前記クロック周期ランダマイザはさらに、複数のスイッチおよび複数の可変キャパシタを含み、前記トリムコードは、アルファ符号に基づいて前記可変キャパシタに適用され、他のトリムコードは、二進重み付けに基づいて他の可変キャパシタに適用される、請求項1〜のいずれか1項に記載の装置。
JP2018525379A 2016-02-23 2017-02-22 暗号攻撃に対する防御のためのクロック周期ランダム化 Active JP6621533B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662298842P 2016-02-23 2016-02-23
US62/298,842 2016-02-23
US15/436,489 2017-02-17
US15/436,489 US10958414B2 (en) 2016-02-23 2017-02-17 Clock period randomization for defense against cryptographic attacks
PCT/US2017/018813 WO2017147116A1 (en) 2016-02-23 2017-02-22 Clock period randomization for defense against cryptographic attacks

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019208908A Division JP7094932B2 (ja) 2016-02-23 2019-11-19 暗号攻撃に対する防御のためのクロック周期ランダム化

Publications (2)

Publication Number Publication Date
JP2018535606A JP2018535606A (ja) 2018-11-29
JP6621533B2 true JP6621533B2 (ja) 2019-12-18

Family

ID=59630310

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018525379A Active JP6621533B2 (ja) 2016-02-23 2017-02-22 暗号攻撃に対する防御のためのクロック周期ランダム化
JP2019208908A Active JP7094932B2 (ja) 2016-02-23 2019-11-19 暗号攻撃に対する防御のためのクロック周期ランダム化

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019208908A Active JP7094932B2 (ja) 2016-02-23 2019-11-19 暗号攻撃に対する防御のためのクロック周期ランダム化

Country Status (7)

Country Link
US (2) US10958414B2 (ja)
EP (1) EP3420667B1 (ja)
JP (2) JP6621533B2 (ja)
CN (1) CN107735981B (ja)
DE (2) DE112017000048B4 (ja)
GB (1) GB2555725B (ja)
WO (1) WO2017147116A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017037725A1 (en) * 2015-09-06 2017-03-09 Bar-Ilan University Randomized logic against side channel attacks
US10958414B2 (en) 2016-02-23 2021-03-23 Google Llc Clock period randomization for defense against cryptographic attacks
CN105894079B (zh) * 2016-04-22 2019-03-15 上海东软载波微电子有限公司 时钟加扰电路
US10609068B2 (en) * 2017-10-18 2020-03-31 International Business Machines Corporation Identification of attack flows in a multi-tier network topology
US10305479B1 (en) * 2018-06-12 2019-05-28 Nxp B.V. Fault attack protection against synchronized fault injections
US10263767B1 (en) 2018-07-03 2019-04-16 Rajant Corporation System and method for power analysis resistant clock
US10878133B2 (en) * 2018-11-18 2020-12-29 Nuvoton Technology Corporation Mitigation of side-channel attacks using small-overhead random pre-charging
CN109861818A (zh) * 2019-03-06 2019-06-07 京东方科技集团股份有限公司 加密及解密电路、加密及解密设备以及加密及解密方法
CN110298200B (zh) * 2019-07-05 2023-05-02 电子科技大学 基于温度统计特征分析的asic芯片硬件后门探测方法
CN110726483B (zh) * 2019-09-30 2021-10-08 安徽问天量子科技股份有限公司 抵御雪崩过渡区攻击的装置及方法
FR3102268B1 (fr) * 2019-10-18 2023-03-10 St Microelectronics Rousset Procédé d’authentification d’un circuit sur puce et système sur puce associé
EP3850523B1 (en) * 2019-11-19 2022-03-16 Google LLC Voltage-variation detection under clock fluctuations
US11651194B2 (en) 2019-11-27 2023-05-16 Nvidia Corp. Layout parasitics and device parameter prediction using graph neural networks
KR102348912B1 (ko) * 2019-12-06 2022-01-11 주식회사 이와이엘 부채널 공격 방어를 위한 난수발생기 및 이의 동작 방법
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
US11507704B2 (en) 2020-04-23 2022-11-22 Nvidia Corp. Current flattening circuit for protection against power side channel attacks
KR102374329B1 (ko) * 2020-07-28 2022-03-14 경북대학교 산학협력단 전압의 변화를 이용한 전력분석 공격 방지 장치 및 방법
US11741227B2 (en) 2021-06-22 2023-08-29 Intel Corporation Platform security mechanism
US11762993B2 (en) * 2021-04-12 2023-09-19 Nxp B.V. Securing cryptographic operations from side channel attacks using a chaotic oscillator
GB202107381D0 (en) * 2021-05-24 2021-07-07 Nordic Semiconductor Asa Security in integrated circuits
US20210312045A1 (en) * 2021-06-22 2021-10-07 Intel Corporation Integrated circuit side-channel mitigation mechanism
TWI773430B (zh) * 2021-07-09 2022-08-01 新唐科技股份有限公司 安全啟動系統及其方法
CN114048470B (zh) * 2022-01-13 2022-06-24 浙江大学 基于tdc模块的硬件攻击的防御方法及装置、电子设备
TWI818503B (zh) * 2022-04-11 2023-10-11 新唐科技股份有限公司 加密裝置以及加密方法

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2638869B1 (fr) 1988-11-10 1990-12-21 Sgs Thomson Microelectronics Dispositif de securite contre la detection non autorisee de donnees protegees
US5164677A (en) 1990-01-16 1992-11-17 Digital Equipment Corporation Method and apparatus for synchronizing signals
US5404402A (en) 1993-12-21 1995-04-04 Gi Corporation Clock frequency modulation for secure microprocessors
JP2937919B2 (ja) 1997-01-16 1999-08-23 日本電気アイシーマイコンシステム株式会社 疑似乱数発生回路
JP4531892B2 (ja) 1999-10-29 2010-08-25 富士通セミコンダクター株式会社 半導体集積回路、半導体集積回路の制御方法、および可変遅延回路
JP3799269B2 (ja) 2001-12-10 2006-07-19 株式会社東芝 不揮発性半導体記憶装置
EP1479161B1 (en) * 2002-02-26 2010-04-07 The Regents Of The University Of Michigan Mems-based, computer systems, clock generation and oscillator circuits and lc-tank apparatus for use therein
JP2003337750A (ja) 2002-05-22 2003-11-28 Hitachi Ltd 内部解析防止機能付き半導体デバイス
GB0213687D0 (en) 2002-06-14 2002-07-24 Ibm Multi-byte lempel-ziv 1 (LZ1) decompression
US6987405B1 (en) 2002-10-18 2006-01-17 Mips Technologies, Inc. Apparatus and method for generating multi-phase signals with digitally controlled trim capacitors
GB2411061B (en) 2004-02-12 2008-11-05 Zarlink Semiconductor Ab Directly modulated CMOS VCO
JP2007248380A (ja) 2006-03-17 2007-09-27 Fujitsu Ltd 遅延時間評価方法及び回路、及び半導体装置
JP4117008B2 (ja) 2006-10-30 2008-07-09 シャープ株式会社 暗号化装置
IL188089A (en) * 2007-12-12 2013-02-28 Nds Ltd Bit generator
US8253454B2 (en) * 2007-12-21 2012-08-28 Realtek Semiconductor Corp. Phase lock loop with phase interpolation by reference clock and method for the same
US8344808B2 (en) * 2008-03-31 2013-01-01 Javelin Semiconductor, Inc. Non-linear capacitance compensation
US8115532B2 (en) * 2008-07-11 2012-02-14 Integrated Device Technology, Inc. Linear monotonic delay chain circuit
CN104777876B (zh) * 2009-12-04 2017-11-21 威盛电子股份有限公司 桥接电路
CN102254110A (zh) * 2010-05-20 2011-11-23 中国人民解放军国防科学技术大学 寄存器翻转时刻随机化控制电路
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
US8700919B2 (en) * 2010-05-25 2014-04-15 Via Technologies, Inc. Switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US20110299678A1 (en) * 2010-06-07 2011-12-08 Alexander Roger Deas Secure means for generating a specific key from unrelated parameters
KR20120095699A (ko) * 2011-02-21 2012-08-29 에스케이하이닉스 주식회사 위상 보간기
US8878614B2 (en) * 2012-02-28 2014-11-04 Megachips Corporation Phase-locked loop
CN103378828B (zh) * 2012-04-25 2017-07-07 飞思卡尔半导体公司 用于时钟源的微调电路
US8692599B2 (en) 2012-08-22 2014-04-08 Silicon Laboratories Inc. Interpolative divider linearity enhancement techniques
US9093336B2 (en) 2013-02-12 2015-07-28 Texas Instruments Incorporated Determining optimum code from default, programmable, and test trim codes
US9696350B2 (en) 2013-03-15 2017-07-04 Intel Corporation Non-linear control for voltage regulator
GB2513987B (en) 2013-03-15 2016-01-06 Intel Corp Parallel apparatus for high-speed, highly compressed LZ77 tokenization and huffman encoding for deflate compression
US8971447B1 (en) * 2013-10-17 2015-03-03 Fujitsu Limited Variable delay of data signals
JP6323065B2 (ja) * 2014-02-26 2018-05-16 セイコーエプソン株式会社 マイクロコンピューター及び電子機器
WO2015145487A1 (ja) 2014-03-28 2015-10-01 三菱電機株式会社 クロック位相制御回路
US9252792B2 (en) * 2014-05-12 2016-02-02 Texas Instruments Incorporated Tunable frequency-to-voltage controlled oscillation
US9287893B1 (en) 2015-05-01 2016-03-15 Google Inc. ASIC block for high bandwidth LZ77 decompression
US10958414B2 (en) 2016-02-23 2021-03-23 Google Llc Clock period randomization for defense against cryptographic attacks
CN105894079B (zh) 2016-04-22 2019-03-15 上海东软载波微电子有限公司 时钟加扰电路

Also Published As

Publication number Publication date
JP2018535606A (ja) 2018-11-29
DE112017000048B4 (de) 2024-02-15
CN107735981B (zh) 2021-06-25
DE112017000048T5 (de) 2018-08-16
DE212017000013U1 (de) 2018-01-29
CN107735981A (zh) 2018-02-23
US20210194667A1 (en) 2021-06-24
US11750361B2 (en) 2023-09-05
GB2555725B (en) 2021-11-10
GB2555725A (en) 2018-05-09
EP3420667B1 (en) 2020-09-30
EP3420667A1 (en) 2019-01-02
US20170244546A1 (en) 2017-08-24
JP2020058034A (ja) 2020-04-09
WO2017147116A1 (en) 2017-08-31
US10958414B2 (en) 2021-03-23
JP7094932B2 (ja) 2022-07-04
GB201717083D0 (en) 2017-11-29

Similar Documents

Publication Publication Date Title
JP6621533B2 (ja) 暗号攻撃に対する防御のためのクロック周期ランダム化
CA2781608C (en) Random number generator
KR20100127789A (ko) 디지털 제어 오실레이터를 기반으로한 디지털 난수 생성기
KR101946509B1 (ko) 클락 지연들을 변동시킴으로써 부채널 공격들로부터 보호하는 시스템 및 방법
US10263767B1 (en) System and method for power analysis resistant clock
Łoza et al. A true random number generator using ring oscillators and SHA-256 as post-processing
JP7122142B2 (ja) 電力変動攻撃対策を有するコンピューティングシステム
EP1562291B1 (en) Apparatus for providing a random bit stream
Mahmoud et al. DFAulted: Analyzing and exploiting CPU software faults caused by FPGA-driven undervolting attacks
CN110045947B (zh) 一种随机数发生单元与装置
US9201630B2 (en) Random number generation using startup variances
Luo et al. Faulty clock detection for crypto circuits against differential fault analysis attack
Jessa et al. The use of delay lines in a ring-oscillator-based combined true random number generator
Soorat et al. Hardware Random number Generator for cryptography
Jessa et al. Producing random bits with delay-line-based ring oscillators
Lee et al. Metastability-based feedback method for enhancing fpga-based trng
Chittala et al. Random Number Generation Algorithms for Performance Testing
Thammannagowda et al. Low area FPGA implementation of PRNG-LCC-CSLA architecture based on chaotic circuit
Choi et al. Fault Injection, Simple Power Analysis, and Power Glitch Attacks against FPGA-implemented Xoroshiro128
Jiménez et al. FPGA implementation of hardware countermeasures
JP6212728B2 (ja) 乱数生成装置及び写像演算回路
Deshmukh et al. Pseudo-Random Number Generation by Fibonacci and Galois LFSR Implemented on FPGA
Creţ et al. Exploiting Crosstalk Effects in FPGAs for Generating True Random Numbers
Blaszczyk et al. Experimental validation of a novel chaotic circuit for true random binary digit generation in cryptographic module application
Kilinc et al. True random number generation based on double-scroll chaotic system

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180515

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180619

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190205

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191009

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: 20191023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191119

R150 Certificate of patent or registration of utility model

Ref document number: 6621533

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250