JP2019145082A - リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策 - Google Patents

リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策 Download PDF

Info

Publication number
JP2019145082A
JP2019145082A JP2018238536A JP2018238536A JP2019145082A JP 2019145082 A JP2019145082 A JP 2019145082A JP 2018238536 A JP2018238536 A JP 2018238536A JP 2018238536 A JP2018238536 A JP 2018238536A JP 2019145082 A JP2019145082 A JP 2019145082A
Authority
JP
Japan
Prior art keywords
independent
entropy
function
entropy values
random number
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
JP2018238536A
Other languages
English (en)
Other versions
JP7393862B2 (ja
Inventor
ラースロー ハース,
Hars Laszlo
ラースロー ハース,
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.)
Boeing Co
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of JP2019145082A publication Critical patent/JP2019145082A/ja
Application granted granted Critical
Publication of JP7393862B2 publication Critical patent/JP7393862B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Power Engineering (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を提供する。【解決手段】一又は複数の論理回路は、複数の独立した第1のエントロピー値をハードウエア源から受け取り301、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを、第2のエントロピー値を生成するための関数に適用し302、疑似乱数生成器に第2のエントロピー値を初期値として与える304。一又は複数の論理回路はまた、初期値として第2のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成し305、この乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することができるか、さもなければ、生成された数を安全な乱数として暗号化プロトコルといったアプリケーションに使用することができる306。【選択図】図3

Description

本開示は、概してコンピュータシステムのセキュリティを提供することに関し、特に、リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を用いてコンピュータシステムのセキュリティを提供することに関する。
真の乱数は、情報セキュリティに広く用いられている。例えば、真の乱数は、疑似乱数生成器が暗号鍵を生成するためのシードとして使用することができる。リングオシレータは通常、それらの発振信号の位相が真のランダム回路ノイズの影響を受けるため、真の乱数を生成するためのエントロピー源として使用される。しかしながら、リングオシレータの発振信号は、この回路から漏れることがある。よって、権限を有さない第三者が、回路から無線で放射される又は電子回路のコネクタ若しくはピンに出現する漏洩発振信号を検出できる可能性がある。権限を有さない第三者が位相トラッキングアタックを実施して漏洩発振信号からリングオシレータの位相ドリフトを再構築することに成功できる場合、この権限を有さない第三者は、リングオシレータによって生成された真の乱数を再現することができるであろう。これによりこれら真の乱数が情報セキュリティに使用され、例えば暗号鍵が生成されると、セキュリティは失われる。
既存の解決法は、リングオシレータからの電磁(EM)放射から保護するために、高価な金属シールドを回路の周りに用いることを含む。しかしながら、高価な金属シールドの使用は、通常効果的でない。これは、発振信号がEM放射として漏出し、リングオシレータを実現している電子回路のピン若しくはコネクタ又はリングオシレータに給電する電線上に観察可能であるためである。
したがって、上記の問題点のうちの少なくとも幾つかと、起こりうる他の問題点を考慮した、システム及び方法を手に入れることが望ましいであろう。
本開示の例示的実装態様は、リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を用いてコンピュータシステムのセキュリティを提供することを目的としている。既存の解決法とは異なり、例示的実装態様は、権限を有さない第三者が一又は複数のリングオシレータによって生成された真の乱数を再現するために漏出発振信号内の情報を容易に使用することができないように前記情報を難読化するための、プロトコルレベルの解決法を提供する。これらプロトコルレベルの解決法は、一又は複数のリングオシレータによって生成された複数のエントロピー値を関数に適用することに基づいている。したがって、これらプロトコルレベルの解決法は、安価で効果的であり、実施が容易である。
ゆえに、本開示は、限定しないが、下記の例示的な実装態様を含む。
幾つかの例示的実装態様は、コンピュータシステムのセキュリティを提供する方法を提供し、この方法は:ハードウエア源から複数の独立した第1のエントロピー値を受け取ること;複数の独立した第1のエントロピー値を第2のエントロピー値を生成するための関数に適用すること;疑似乱数生成器に第2のエントロピー値を初期値として与えること;初期値として第2のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成すること;及び乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、暗号化テキスト又はメッセージ認証コードのブロックを生成することは、乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、暗号化テキスト又はメッセージ認証コードのブロックを生成することは、少なくとも:鍵が生成される、乱数を用いる鍵共有プロトコルを実施すること;及び鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、ハードウエア源はリングオシレータであり、複数の独立した第1のエントロピー値を受け取ることは、リングオシレータから複数の独立した第1のエントロピー値を受け取ることを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、ハードウエア源は単一のハードウエア源であり、一又は複数の論理回路が複数の独立した第1のエントロピー値を受け取るように構成されていることは、前記単一のハードウエア源から複数の独立した第1のエントロピー値を受け取るように構成されていることを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、ハードウエア源は複数の独立したハードウエア源であり、複数の独立した第1のエントロピー値を受け取ることは、複数の独立したハードウエア源から複数の独立した第1のエントロピー値を受け取ることを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、関数は順列関数であり、一又は複数の論理回路が複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることは、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを順列関数に適用するように構成されていることを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは:複数の独立した第1のエントロピー値を独立した第1のエントロピー値の複数のグループに分けること;独立した第1のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成すること;及び順序変更されたエントロピー値のグループを連結して第2のエントロピー値を生成することを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、関数はハッシュ関数であり、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをハッシュ関数に適用することを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、関数はビットミキサーであり、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用することを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第1のエントロピー値のうちの複数のエントロピー値を、第2のエントロピー値を生成するための関数に選択的に適用することを含む。
いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法の幾つかの例示的実装態様では、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することは、複数の独立した第1のエントロピー値のうちの少なくとも幾つか及び秘密鍵を、第2のエントロピー値を生成するための前記関数に適用することを含む。
幾つかの例示的実装態様は、コンピュータシステムのセキュリティを提供するためのシステムを提供し、このシステムは、少なくとも、いずれかの先述の例示的実装態様又は先述の例示的実装態様のいずれかの組み合わせの方法を実施するように構成された一又は複数の論理回路を備える。
本開示の上記の特徴、態様、及び利点、及びその他の特徴、態様、及び利点は、以下の詳細な説明と共に、簡潔に後述する添付図面を参照することで明らかになろう。本開示は、本開示において明記される二つ、三つ、四つ、又はそれよりも多くの特徴又は要素のあらゆる組み合わせを、そのような特徴又は要素が本明細書に記載される特定の例示的な実装態様において明示的に組み合わされているか、又は他の方法で記載されているかどうかに関係なく含む。本開示は、本開示のすべての分離可能な特徴又は要素が、その態様及び例示的な実装態様のいずれにおいても、本開示の文脈に明記しない限りは、組み合わせ可能であると見なされることを意図している。
したがって、この「発明の概要」は、本開示の幾つかの態様の基本的な理解を提供するために、幾つかの例示的な実装態様を要約することのみを目的に提供されていると理解されたい。したがって、上述の例示的な実装態様は例に過ぎず、いかなる意味においても、本開示の範囲又は本質を狭めると解釈すべきではないことを理解されたい。その他の例示的な実装態様、態様、及び利点は、添付図面と併せて以下の詳細説明を参照することで明らかになろう。添付図面は、例として、記載されている幾つかの例示的実装態様の原理を示すものである。
ここまでは、本開示の例示的実装態様を一般的な用語で説明した。ここからは添付図面を参照する。これらの図面は必ずしも正確な縮尺で描かれているわけではない。
本発明の例示的実装態様による、コンピュータシステムのセキュリティを提供するためのシステムを示している。 種々の例示的実装態様による、システムのリングオシレータを示している。 種々の例示的実装態様による、コンピュータシステムのセキュリティを提供する方法の様々なステップを示すフロー図である。
添付図面を参照し、本開示の幾つかの実装態様について、以下でより詳しく説明する。添付図面には本開示の実装態様の一部が示されているが、すべてが示されているわけではない。実際、本開示の様々な実装態様は、多くの異なる形態で具現化されてよく、本明細書に明記される実装態様に限定されると解釈すべきではない。むしろ、これら例示的実装態様は、本開示が包括的且つ完全なものになるように、及び当業者に本開示の範囲が十分に伝わるように、提供される。例えば、別段の断りがない限り、何かが「第1の」、「第2の」等のものであるという表現は、特定の順番を示すと解釈すべきでない。また、(別段の断りがない限り)何か別のものの上にあると説明され得るものは、その代わりに下にあることもあり、逆もまた然りである。同様に、何か別の物の左にあると説明され得る物は、その代わりに右にあることもあり、逆もまた然りである。全体を通して、類似の参照番号は類似の要素を表している。
本開示の例示的実装態様は、概してコンピュータシステムのセキュリティを提供することを目的とし、特に、リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策を用いてコンピュータシステムのセキュリティを提供することを目的とする。
図1は、本開示の例示的実装態様によるコンピュータシステムのセキュリティ110を提供するためのシステム100を示している。コンピュータシステム110は、図示のシステム100を含むことができる。例えば、コンピュータシステム110はシステム100を備える。別の実施例では、コンピュータシステム110とシステム100とは、二つの分離したシステムである。
システム100は、多数の構成要素、ユニット等(一般に「構成要素」)の各々の一又は複数を含むことができ、そのうちの少なくとも幾つかは、マルチプレクサ、レジスタ、演算論理装置、メモリ、マイクロプロセッサ等といった論理回路を含み得るか、又はそのような論理回路を用いて実施され得る。システム100は、多数の異なる用途のいずれかのために設計することができ、位相トラッキングアタックに対する対応策をシステム100に提供し、コンピュータシステム110のセキュリティを提供するための特定の適用性を有し得る。
コンピュータシステム110は、プロセッサとプロセッサに連結されたコンピュータ可読記憶媒体又はメモリとを含むことができ、プロセッサは、メモリに記憶された一又は複数のコンピュータプログラムを含むコンピュータ可読プログラムコードを実行するように構成されている。一又は複数の機能及び機能の組み合わせが、特殊用途電子ハードウエアに基づくシステム及び/又は特定の機能を実施するプロセッサ、又は特殊用途ハードウエアとプログラムコード命令との組み合わせによって実行されうることも、理解されよう。図示のように、メモリに記憶されてプロセッサによって実行可能コンピュータプログラム(複数可)は、安全なアプリケーションプログラム111(更に簡単に安全なアプリケーションとも呼ばれる)を含み得る。
幾つかの実施例では、図示のように、システム100は、複数の独立した第1のエントロピー値を生成するようにハードウエア源102に命令又はハードウエア源を制御するように構成された制御回路101を含む。独立した第1のエントロピー値は、ハードウエア源によって生成された真の乱数、例えば、真のランダムビットのシーケンスを含み得る。ハードウエア源は、位相トラッキングアタックによって攻撃され得る。権限を有さない第三者は、位相トラッキングアタックを介して独立した第1のエントロピー値を再現し得る。
幾つかの実施例では、ハードウエア源102は、シード生成器103に複数の独立した第1のエントロピー値を提供するように構成される。シード生成器は、複数の独立した第1のエントロピー値を受け取り、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを、第2のエントロピー値を生成するための関数に適用するように構成される。第2のエントロピー値は、位相トラッキングアタックによって容易に攻撃され得ない安全な値である。つまり、権限を有さない第三者が第2のエントロピー値を再現することは、困難であるか、又は不可能である。
幾つかの実施例では、シード生成器103は、システム100のホワイトニング関数104に第2のエントロピー値を提供するように構成される。ホワイトニング関数は、バイアス又は自己相関といった第2のエントロピー値の潜在的な非ランダム特性を除去して、第2のエントロピー値を疑似乱数生成器105に提供することができる。疑似乱数生成器は、シード(第2のエントロピー値)を用いて乱数(真の乱数ではなく疑似乱数)を生成するように構成される。第2のエントロピー値は安全な値であるので、疑似乱数生成器によって使用されるシードは安全である。したがって、疑似乱数生成器によって生成された乱数も安全である。つまり、権限を有さない第三者が疑似乱数生成器によって生成された乱数を再現することは、不可能ではないとしても困難である。
幾つかの実施例では、疑似乱数生成器105は、安全なアプリケーション111の鍵生成器112に乱数を提供するように構成される。鍵生成器は、乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成される。鍵生成器は、生成された暗号化テキスト又はメッセージ認証コードのブロックをコンピュータシステム110の安全なアプリケーション111に提供することができる。疑似乱数生成器によって生成された乱数は安全なので、生成された暗号化テキスト又はメッセージ認証コードのブロックも安全である。したがって、安全なアプリケーションで生成された暗号化テキスト又はメッセージ認証コードのブロックを使用することも安全である。
幾つかの実施例では、安全な又は暗号のアプリケーション111は、乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成される。幾つかの実施例では、鍵生成器112は、少なくとも、鍵が生成される、乱数を用いた鍵共有プロトコルを実施し、鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成される。
幾つかの実施例では、ハードウエア源102はリングオシレータである(以下の図2参照)。このような実施例では、シード生成器103は、リングオシレータから複数の独立した第1のエントロピー値を受け取るように構成される。
幾つかの実施例では、ハードウエア源102は、単一のハードウエア源、例えば単一のリングオシレータである。このような実施例では、シード生成器103は、単一のハードウエア源から複数の独立した第1のエントロピー値を受け取るように構成される。幾つかの実施例では、ハードウエア源は、複数の独立したハードウエア源、例えば複数のリングオシレータである。シード生成器は、複数の独立したハードウエア源から複数の独立した第1のエントロピー値を受け取るように構成される。
幾つかの実施例では、シード生成器103は順列関数を含む。シード生成器は、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを順列関数に適用するように構成される。幾つかの実施例では、シード生成器は、複数の独立した第1のエントロピー値を独立した第1のエントロピー値の複数のグループに分け、独立した第1のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成し、順序変更されたエントロピー値のグループを連結して第2のエントロピー値を生成するように構成される。
幾つかの実施例では、シード生成器103はハッシュ関数を含む。シード生成器は、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを、第2のエントロピー値を生成するように構成されたハッシュ関数に適用する。幾つかの実施例では、シード生成器はビットミキサーを含む。シード生成器は、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用して第2のエントロピー値を生成するように構成される。
幾つかの実施例では、シード生成器103は、複数の独立した第1のエントロピー値のうちの複数のエントロピー値を、第2のエントロピー値を生成するための関数に選択的に適用するように構成される。例えば、シード生成器は、選択アルゴリズムに従って、複数の独立した第1のエントロピー値のうちのすべてではなく一部を、第2のエントロピー値を生成するための関数に選択することができる。
幾つかの実施例では、シード生成器103は、複数の独立した第1のエントロピー値のうちの少なくとも幾つかと秘密鍵とを、第2のエントロピー値を生成するための関数に適用するように構成される。例えば、図示のように、シード生成器は、二つの入力を有する。第1の入力は、ハードウエア源102から複数の独立した第1のエントロピー値を受け取るように構成される。第2の入力は、不揮発性メモリ106から秘密鍵を受け取るように構成される。シード生成器は、二つの入力からのデータを適用して第2のエントロピー値を生成することができる。シード生成器は、コンピュータシステム110の誤作動が秘密を曝露しないように、システム100のローカルビルディングブロックとすることができる。
一実施例では、制御論理101は、乱数が要求されたとき、102において一又は複数のリングオシレータを起動及び停止させるように構成された電子制御論理とすることができる。リングオシレータは、リングオシレータが実行されている間に発振パルスを数えるようにカウンタを駆動する。シード生成器103は、電子論理回路において実施することのできる複数の関数を含む。シード生成器は、保護記憶域106に記憶された秘密鍵にしたがって、カウンタの値を、ハッシュ、順序変更、選択及び/又は組み合わせることができる。記憶域は、不揮発性メモリ、ROM又は磁気若しくは光ディスクドライブでよい。結果として得られた値は、バイアス又は自己相関といった非ランダム特性を除去するために、ホワイトニング関数104の電子論理回路で更に処理される。ホワイトニング関数でのプロセスは、時にデータ調整又はホワイトニングと呼ばれる。別の実施例では、ホワイトニング関数は、102と103の間に配置することもできる。疑似乱数生成器105は、電子論理回路又はマイクロプロセッサ機能とすることのできる、暗号疑似乱数生成器を含む。疑似乱数生成器は、ホワイトニング関数からの難読化された真の乱数によって初期値を与えられる。疑似乱数生成器は、このような値が利用可能であるときは常に、ホワイトニング関数からの真の乱数を更に難読化するために、その内部状態へ混合することができる。最後に、乱数の要求元は安全なアプリケーション111であり、これは暗号鍵の生成及び/又はセキュリティプロトコルに乱数を使用することができる。
図2は、種々の例示的実装態様によるシステム100のリングオシレータ200を示す。幾つかの実施例では、図1のハードウエア源102は、一又は複数のリングオシレータ200を含む。
リングオシレータ200は複数の論理ゲートを含み、そのうち奇数の論理ゲートは、直列接続された直前の論理ゲートに接続されたそれらの入力を反転させ、例えば、図2に示される201〜204と否定積(NAND)ゲートとを反転させる。複数のインバータのうちの第1のインバータ、例えばインバータ201は、入力を受け取り、直列接続の次のインバータ、例えばインバータ202への入力として出力を生成する(入力の論理否定)。複数のインバータのうち最後のインバータを除く各インバータの出力は、複数のインバータのうちの次のインバータのための入力として使用される。複数のインバータのうちの最後のインバータ、例えばインバータ204の出力は、複数のインバータのうちの第1のインバータ、例えばインバータ201へフィードバックされて、その入力として使用される。
リングオシレータ200の電子回路ノイズはインバータのスイッチング閾値をランダムに変化させ、これはオシレータ信号の位相「ジッタ」(ランダム位相変化)に変換することができる。位相ジッタは位相ドリフトにつれて経時的に蓄積し、これはオシレータ信号の位相を、同じ周波数の安定な信号の位相に対して大幅にゆっくりと変化させる。事前設定された期間の後でリングオシレータの発振期間を数えることによりカウンタを使用すること又はオシレータ信号のサンプルを取ることにより、真の乱数、例えば、1ビットの0又は1が生成される。事前設定期間は、独立のクロック信号により設定することができる。
幾つかの実施例では、複数のインバータのうちの最後のインバータ、例えばインバータ204の出力は、所定の期間内の発振期間を数えることにより複数の独立した第1のエントロピー値を生成するためにカウンタ205に送られる。ハードウエア源102から複数の独立した第1のエントロピー値を生成するための複数の方法がある。一実施例では、ハードウエア源102は単一のリングオシレータを含み、複数の独立した第1のエントロピー値は、リングオシレータを複数回にわたって繰り返し起動及び停止させた後で、カウンタの多くの(例えば20の)カウンタ値を記憶することにより生成することができる。別の実施例では、カウンタを読み取るためにリングオシレータを繰り返し起動及び停止させる代わりに、リングオシレータの発振信号を、二つの(デュアル又はピンポン)カウンタのうちの一つへと所定の期間の間に交互にリダイレクトすることができる。リダイレクトの時点で、多くの(例えば20の)カウンタ値を複数の独立した第1のエントロピー値として記憶することができる。第3の実施例では、ハードウエア源102は、各々が各自のカウンタ205を有する複数のリングオシレータ(例えばn=20)を含む。複数のリングオシレータは、同じ又は異なる設計のものとすることができる。複数の独立した第1のエントロピー値は、特定の共通期間にわたり複数のリングオシレータを実施すること又は異なる期間にわたり複数のリングオシレータのうちの幾つかを実施すること、及びそれらのカウンタ値を保存することにより、生成することができる。
リングオシレータ200に基づく乱数生成器のセキュリティに対する一つの可能な攻撃は、サイドチャネル上での情報漏洩を利用することにより発振信号の瞬時位相をトラッキングすることである。発振信号の周波数及び位相に関して十分な量の情報がサイドチャネル上で漏洩している場合、権限を有さない第三者がリングオシレータの位相ドリフトを学習することができ、リングオシレータによって生成された複数の独立した第1のエントロピー値を再現することができる。疑似乱数生成器105が複数の独立した第1のエントロピー値をシードとして使用する場合、権限を有さない第三者は、乱数疑似乱数生成器によって生成された乱数を再現し、この乱数を使用して生成された暗号化テキスト又はメッセージ認証コードのブロックを知ることができる。このような状況では、生成された暗号化テキスト又はメッセージ認証コードのブロックを用いるコンピュータシステム110は安全でない。
本開示の例示的実装態様は、権限を有さない第三者には、一つだけでなく関与する多くのエントロピー値と、場合によっては更に第1のエントロピー値を混合するために使用される秘密鍵も必要となるように、複数の独立した第1のエントロピー値を使用する。本開示の実装態様は、漏出したオシレータ信号のみから権限を有さない第三者が疑似乱数生成器105で使用される実際のシードを決定することができないように、生成された第1のエントロピー値を難読化する様々な方法を再提示する。
幾つかの実施例では、シード生成器103は順列関数を含む。第1のエントロピー値の一つとして使用されることになる単一のカウンタ値は、リングオシレータ200によって生成された利用可能なn個のカウンタ値から疑似ランダムに選択される。この単一のカウンタ値は、不揮発性メモリ106からの秘密鍵に基づいて、暗号アルゴリズムによって疑似ランダムに選択される。権限を有さない第三者は、疑似ランダム的選択のための秘密鍵なしでは、いずれのカウンタ値が実際に使用されるかを知ることがない。複数の(例えば、k=15)このようなステップが、k個の独立したカウンタ値のシーケンス、例えば、k個のビットのシーケンスを提供するために、リングオシレータにおいて実施される。このk個のカウンタ値のシーケンスがシード生成器によって順序変更されて、第2のエントロピー値が生成される。k個のカウンタ値(第2のエントロピー値)の順序変更されたシーケンスはシードとして使用される。権限を有さない第三者がk個のカウンタ値のうちのすべてのカウンタ値を、位相トラッキングアタックの成功により学習したとしても、シードを解き当てる可能性はわずか1/n^kである。n=20及びk=15という実際の値では、アタック成功の可能性は≒2−65であり、これは無視できるものである。n及びkの値が大きくなるほど、この可能性は更に低下する。
より高いスループットを用いる別の実施例は、単一のリングオシレータ200を実行するn回の繰り返しにおいて、又はn個のリングオシレータを実行する一回の繰り返し(又は二回、例えば、n/2個のリングオシレータを実行する二回の繰り返しの組み合わせ)においてにおいて捕獲されるn個すべてのカウンタ値を使用する。捕獲されたカウンタの組の単一のカウンタ値をランダムに選択する代わりに、n個すべてのカウンタ値を、疑似ランダムな順序で(秘密鍵を用いて演算された)使用することができる。一実施例では、n=20のカウンタは、20!=2432902008176640000(約261)の順列に並べることができる。位相トラッキングアタックは、n!の順列すべてを検索しなければならず、これは時間が掛かり過ぎて現実的でない。
上記方法の組み合わせも使用することができる。例えば、n=8のリングオシレータのカウンタが疑似ランダムに順序付けられ、順序変更されたカウンタ値のこのような組のうちの4つが、シードとして連結される(例えば、32ビットのシーケンス)。可能性の数は(n!)≒261であり、これは現実的なアタックとして試みるには多すぎる。
一又は複数のリングオシレータ200によって生成されたカウンタ値を疑似ランダムに選択するために、暗号アルゴリズムを用いるストリーム生成器を使用することができる。例えば、ストリーム生成器は、固定の秘密鍵(記憶域106に記憶された)を用いる高度暗号化標準(AES)といった標準の暗号を用いてカウンタを繰り返し暗号化することによりカウンタモードで、又は標準のフィードバックモードの一つで(例えば、直前の暗号化テキストを反復的に暗号化することにより)、ブロック暗号を含む。秘密の初期データブロック(記憶域106に記憶された鍵)と一定のメッセージブロックとを用いるハッシュ関数を、暗号ストリーム生成器を定義するために繰り返し呼び出すことができる。
例示的な疑似ランダム選択アルゴリズムは、以下のように説明することができる。(A、A…、A)から選択されるN個のアイテムが存在し、bはN≦2となる最小数である。上記ストリーム生成器によって生成されたストリームSから、次の未詳のbのビットが取得され、これが数Bを形成する。B≦Nである場合、選択される入力はAであり、bのビットはSから廃棄される。Bが>Nである場合、bのビットはSから廃棄され、B≦Nが見つかるまで再試行が行われる。疑似ランダム選択アルゴリズムは、シード生成器103の選択器において実施することができる。したがって、選択器を使用して、複数の独立した第1のエントロピー値のすべてではなく一部を、第2のエントロピー値を生成するための順列関数に適用することができる。
第2のエントロピー値を生成するためにシード生成器103によって実施される例示的な疑似ランダム的順序変更は、以下のように説明することができる。エレメントを自然の順序A、A…、Aで用いて始める。i=N…2の場合、現在iの位置にあるエレメントを、位置1…iから疑似ランダムに選択されたエレメントとスワップする。スワップされるエレメントは、上述の疑似ランダム選択アルゴリズムによって選択することができる。例示的疑似ランダム順序変更は、クヌースのシャッフル(Knuth’s shuffle)として知られている。
幾つかの実施例では、シード生成器103はハッシュ関数を含む。多数の(例えばn=20)カウンタ値を混ぜ合わせ、シード生成器103を用いてそれらの長さの合計より小さいサイズにハッシュする。アタッカーが正確に解き当てることができなかった、一又は複数のリングオシレータによって生成された第1のエントロピー値のうちのいずれかの単一ビットのエントロピーは、ハッシュ値を、正確なハッシュ値と相関しないものにする。ハッシングのプロセスは各シード毎に再開することができるか、又はハッシング作業は直前のシード生成の状態から継続することができる。
別の実施例では、不揮発性メモリ106からの秘密鍵と多数の(例えば、n=20)カウンタ値とが、それらの長さの合計より小さいサイズにまとめてハッシュされる。アタッカーが正確に解き当てることのできなかったいずれかの単一の入力ビットは、ハッシュ値を、正確なハッシュ値と相関しないものにする。アタッカーは、エントロピービットを見つける必要があり、更には不揮発性メモリに記憶された秘密鍵を見つける必要がある。ハッシングのプロセスは、同じ秘密鍵を用いてシード毎に再開することができるか、又はハッシング作業は鍵を繰り返すことなく直前のシード生成の状態から継続することができる。また、シード生成器103への入力は、以前のシード生成呼び出しの数を含むことができ、これは出力(第2のエントロピー値)を更に多様化する。
シード生成器103は暗号ハッシュ関数を実施することができる。この関数は、任意のサイズのデータを固定サイズのビット列にマッピングする数学的アルゴリズムであり、反転することが実行不可能な一方向関数となるようにも設計される。幾つかの実施例では、暗号ハッシュ関数は四つの主な特徴を有する:(1)演算が速い;(2)メッセージを少しでも変えると元のハッシュ値とは非相関のハッシュ値が生成される;(3)所与の値をハッシュするメッセージを見つけることは実行不可能である(時間がかかりすぎる);(4)同じハッシュ値を有する二つの異なるメッセージを見つけることは実行不可能である。
幾つかの実施例では、シード生成器103はビットミキサーを含む。ビットミキサーは、ハードコーディングされた鍵(すべてのシステム又は装置で同じ)又は秘密鍵を含むことができる(異なるシステム、装置又は動作の異なるセッションは異なる秘密鍵を使用する)。ビットミキサーは、五つの主な特徴を有する関数である。第1の特徴は、固定長の入力及び出力を独立且つ任意とすることができることである。第2の特徴は、すべての入力ビットがすべての出力ビットに影響するということである。第3の特徴は、入力の単純な変化が出力ビットの平均で半分を変化させることである。第4の特徴は、入力の一連の単純な変化が、入力又はその変化のパターンに明らかな相関を有さない出力値を生成することである。第5の特徴は、パラメータ(鍵)が関数の挙動を変更することである。一実施例では、ビットミキサーの電子機器はハッシュ関数より高速且つ小型であり、ビットミキサーのサイドチャネル漏洩は無視できる程度である。
上記実装態様は、カウンタ値を難読化し、位相トラッキングアタックの複雑性を増大させる。つまり、アタッカーは、複数のリングオシレータ200に対して位相トラッキングアタックを実施する、及び/又は同じリングオシレータに対して複数回の位相トラッキングアタックを実施する必要がある。また、アタッカーは、難読化に用いられている秘密暗号鍵(記憶域106に記憶された)及び/又はハッシュ/ビットミキサー関数の初期状態(シード生成器103における)を見つけて抽出しなければならない。これらデータは、コンピュータシステム110の誤作動により秘密が曝露されないように、保護された消去可能プログラマブルリードオンリーメモリ(EPROM)又は他の種類の不揮発性データ記憶域にセキュリティシステム100のローカルビルディングブロックとして記憶することができる。秘密鍵が使用されない場合も、アタッカーは、実際のシード(第2のエントロピー値)を解き当てることができるためには、膨大な数の可能な選択肢及び/又は使用されたカウンタ値の配列混合の殆どすべてを依然として試行しなければならない。
図3は、種々の例示的実装態様による、コンピュータシステム110のセキュリティを提供する方法300の様々なステップを示すフロー図である。ブロック301において、方法は、ハードウエア源102から複数の独立した第1のエントロピー値を受け取ることを含む。ブロック302では、方法は、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをシード生成器103の関数に適用し、第2のエントロピー値を生成することを含む。ブロック303では、方法は、ホワイトニング関数104を第2のエントロピー値に適用することを含み得る。ブロック304では、方法は、第2のエントロピー値を初期値として疑似乱数生成器105に与えることを含む。ブロック305では、方法は、初期値として第2のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成することを含む。ブロック306では、方法は、乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む。ブロック306において、方法は、疑似乱数生成器の出力を、安全な乱数として、要求しているアプリケーションに提供することも含み得る。安全な乱数は、暗号化のため、又は他の安全目的のための鍵として使用することができる。
このセクションでは、一連の段落として非限定的に提示される、本開示のシステム及び方法の追加の態様及び特徴が記載され、これらの一部又は全部は、明確性及び有効性のために英数字で指定され得る。
A1. コンピュータシステムのセキュリティを提供するためのシステムであって、少なくとも:
複数の独立した第1のエントロピー値をハードウェア源から受け取り;
複数の独立した第1のエントロピー値のうちの少なくとも幾つかを第2のエントロピー値を生成するための関数に適用し;
疑似乱数生成器に第2のエントロピー値を初期値として与え;
初期値として第2のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成し;
前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成する
ように構成された一又は複数の論理回路を備えるシステム。
A2. 一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成されていることが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成されていることを含む、段落A1のシステム。
A3. 一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードのブロックを生成するように構成されていることが、少なくとも:
鍵が生成される、乱数を用いた鍵共有プロトコルを実施し;
鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成する
ように構成されていることを含む、段落A1のシステム。
A4. ハードウエア源がリングオシレータであり、一又は複数の論理回路が複数の独立した第1のエントロピー値を受け取るように構成されていることが、リングオシレータから複数の独立した第1のエントロピー値を受け取るように構成されていることを含む、段落A1のシステム。
A5. ハードウエア源が単一のハードウエア源であり、一又は複数の論理回路が複数の独立した第1のエントロピー値を受け取るように構成されていることが、前記単一のハードウエア源から複数の独立した第1のエントロピー値を受け取るように構成されていることを含む、段落A1のシステム。
A6. ハードウエア源が複数の独立したハードウエア源であり、一又は複数の論理回路が複数の独立した第1のエントロピー値を受け取るように構成されていることが、複数の独立したハードウエア源から複数の独立した第1のエントロピー値を受け取るように構成されていることを含む、段落A1のシステム。
A7. 関数が順列関数であり、一又は複数の論理回路が複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを順列関数に適用するように構成されていることを含む、段落A1のシステム。
A8. 一又は複数の論理回路が複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが:
複数の独立した第1のエントロピー値を独立した第1のエントロピー値の複数のグループに分け;
独立した第1のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成し;
順序変更されたエントロピー値のグループを連結して第2のエントロピー値を生成する
ように構成されていることを含む、段落A7のシステム。
A9. 関数がハッシュ関数であり、一又は複数の論理回路が複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをハッシュ関数に適用するように構成されていることを含む、段落A1のシステム。
A10. 関数がビットミキサーであり、一又は複数の論理回路が複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用するように構成されていることを含む、段落A1のシステム。
A11. 一又は複数の論理回路が複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、複数の独立した第1のエントロピー値のうちの複数のエントロピー値を、第2のエントロピー値を生成するための関数に選択的に適用するように構成されていることを含む、段落A1のシステム。
A12. 一又は複数の論理回路が複数の独立した第1のエントロピー値のうちの少なくとも幾つかを関数に適用するように構成されていることが、複数の独立した第1のエントロピー値のうちの少なくとも幾つかと秘密鍵とを、第2のエントロピー値を生成するための関数に適用するように構成されていることを含む、段落A1のシステム。
B13. コンピュータシステムのセキュリティを提供する方法であって:
ハードウエア源から複数の独立した第1のエントロピー値を受け取ること;
複数の独立した第1のエントロピー値のうちの少なくとも幾つかを第2のエントロピー値を生成するための関数に適用すること;
疑似乱数生成器に第2のエントロピー値を初期値として与えること;
初期値として第2のエントロピー値を与えられた疑似乱数生成器を用いて乱数を生成すること;及び
前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成すること
を含む方法。
B14. 暗号化テキスト又はメッセージ認証コードのブロックを生成することが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成することを含む、段落B13の方法。
B15. 暗号化テキスト又はメッセージ認証コードのブロックを生成することが、少なくとも:
鍵が生成される、乱数を用いた鍵共有プロトコルを実施すること;及び
鍵を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成すること
を含む、段落B13の方法。
B16. ハードウエア源がリングオシレータであり、複数の独立した第1のエントロピー値を受け取ることが、リングオシレータから複数の独立した第1のエントロピー値を受け取ることを含む、段落B13の方法。
B17. ハードウエア源が単一のハードウエア源であり、複数の独立した第1のエントロピー値を受け取ることが、単一のハードウエア源から複数の独立した第1のエントロピー値を受け取ることを含む、段落B13の方法。
B18. ハードウエア源が複数の独立したハードウエア源であり、複数の独立した第1のエントロピー値を受け取ることが、複数の独立したハードウエア源から複数の独立した第1のエントロピー値を受け取ることを含む、段落B13の方法。
B19. 関数が順列関数であり、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを順列関数に適用することを含む、段落B13の方法。
B20. 複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが:
複数の独立した第1のエントロピー値を独立した第1のエントロピー値の複数のグループに分けること;
独立した第1のエントロピー値の複数のグループを順列関数に適用して順序変更されたエントロピー値のグループを生成すること;及び
順序変更されたエントロピー値のグループを連結して第2のエントロピー値を生成すること
を含む、段落B19の方法。
B21. 関数がハッシュ関数であり、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをハッシュ関数に適用することを含む、段落B13の方法。
B22. 関数がビットミキサーであり、複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第1のエントロピー値のうちの少なくとも幾つかをビットミキサーに適用することを含む、段落B13の方法。
B23. 複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第1のエントロピー値のうちの複数のエントロピー値を、第2のエントロピー値を生成するための前記関数に選択的に適用することを含む、段落B13の方法。
B24. 複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用することが、複数の独立した第1のエントロピー値のうちの少なくとも幾つか及び秘密鍵を、第2のエントロピー値を生成するための前記関数に適用することを含む、段落B13の方法。
本開示に関連する分野の当業者には、上述の説明及び添付図面に提示されている教示の恩恵を受ける、本明細書に明記された本開示の多数の修正例及びその他の実装態様が想起されよう。したがって、本開示は開示される特定の実装態様に限定されるものではないこと、及び修正例及び他の実装態様が特許請求の範囲に含まれることが意図されていることを理解されたい。更に、上述の説明及び添付図面は、要素及び/又は機能の特定の実施例の組み合わせに照らして例示的実装態様を説明しているが、特許請求の範囲から逸脱せずに、代替的な実装態様によって要素及び/又は機能の異なる組み合わせが提供され得ることを理解されたい。これに関して、特許請求の範囲の一部に明記されるように、例えば、明示的に上述されているものとは異なる要素及び/又は機能の組み合わせも想定される。本明細書では特定の用語を用いるが、それらは、一般的及び説明的な意味でのみ使用されており、限定を目的とするものではない。

Claims (15)

  1. コンピュータシステムのセキュリティを提供するためのシステムであって、少なくとも:
    複数の独立した第1のエントロピー値をハードウエア源から受け取り;
    前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを第2のエントロピー値を生成するための関数に適用し;
    疑似乱数生成器に前記第2のエントロピー値を初期値として与え;
    初期値として前記第2のエントロピー値を与えられた前記疑似乱数生成器を用いて乱数を生成し;
    前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成する
    ように構成された、一又は複数の論理回路を備えるシステム。
  2. 前記一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードの前記ブロックを生成するように構成されていることが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成するように構成されていることを含む、請求項1に記載のシステム。
  3. 前記一又は複数の論理回路が暗号化テキスト又はメッセージ認証コードの前記ブロックを生成するように構成されていることが、少なくとも:
    鍵が生成される、前記乱数を用いた鍵共有プロトコルを実施し;
    前記鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成する
    ように構成されていることを含む、請求項1又は2に記載のシステム。
  4. 前記ハードウエア源がリングオシレータであり、前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値を受け取るように構成されていることが、前記リングオシレータから前記複数の独立した第1のエントロピー値を受け取るように構成されていることを含む、請求項1から3のいずれか一項に記載のシステム。
  5. 前記ハードウエア源が単一のハードウエア源であり、前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値を受け取るように構成されていることが、前記単一のハードウエア源から前記複数の独立した第1のエントロピー値を受け取るように構成されていることを含む、請求項1から4のいずれか一項に記載のシステム。
  6. 前記ハードウエア源が複数の独立したハードウエア源であり、前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値を受け取るように構成されていることが、前記複数の独立したハードウエア源から前記複数の独立した第1のエントロピー値を受け取るように構成されていることを含む、請求項1から5のいずれか一項に記載のシステム。
  7. 前記関数が順列関数であり、前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記順列関数に適用するように構成されていることを含む、請求項1から6のいずれか一項に記載のシステム。
  8. 前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが:
    前記複数の独立した第1のエントロピー値を独立した第1のエントロピー値の複数のグループに分け;
    前記独立した第1のエントロピー値の複数のグループを前記順列関数に適用して順序変更されたエントロピー値のグループを生成し;
    前記順序変更されたエントロピー値のグループを連結して前記第2のエントロピー値を生成する
    ように構成されていることを含む、請求項7に記載のシステム。
  9. 前記関数がハッシュ関数であり、前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記ハッシュ関数に適用するように構成されていることを含む、請求項1から8のいずれか一項に記載のシステム。
  10. 前記関数がビットミキサーであり、前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記ビットミキサーに適用するように構成されていることを含む、請求項1から9のいずれか一項に記載のシステム。
  11. 前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第1のエントロピー値のうちの複数のエントロピー値を、前記第2のエントロピー値を生成するための前記関数に選択的に適用するように構成されていることを含む、請求項1から10のいずれか一項に記載のシステム。
  12. 前記一又は複数の論理回路が前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを前記関数に適用するように構成されていることが、前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかと秘密鍵とを、前記第2のエントロピー値を生成するための前記関数に適用するように構成されていることを含む、請求項1から11のいずれか一項に記載のシステム。
  13. 請求項1から12のいずれか一項に記載のシステムを実装するコンピュータシステムのセキュリティを提供する方法であって:
    複数の独立した第1のエントロピー値をハードウエア源から受け取ること;
    前記複数の独立した第1のエントロピー値のうちの少なくとも幾つかを第2のエントロピー値を生成するための関数に適用すること;
    疑似乱数生成器に前記第2のエントロピー値を初期値として与えること;
    初期値として前記第2のエントロピー値を与えられた前記疑似乱数生成器を用いて乱数を生成すること;及び
    前記乱数を用いて暗号化テキスト又はメッセージ認証コードのブロックを生成すること
    を含む方法。
  14. 暗号化テキスト又はメッセージ認証コードの前記ブロックを生成することが、前記乱数から構成される又は導かれる鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成することを含む、請求項13に記載の方法。
  15. 暗号化テキスト又はメッセージ認証コードの前記ブロックを生成することが、少なくとも:
    鍵が生成される、前記乱数を用いた鍵共有プロトコルを実施すること;及び
    前記鍵を用いて暗号化テキスト又はメッセージ認証コードの前記ブロックを生成すること
    を含む、請求項13に記載の方法。
JP2018238536A 2017-12-22 2018-12-20 リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策 Active JP7393862B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/853,199 2017-12-22
US15/853,199 US11646867B2 (en) 2017-12-22 2017-12-22 Systems and methods implementing countermeasures to phase tracking attacks on ring oscillator based entropy sources

Publications (2)

Publication Number Publication Date
JP2019145082A true JP2019145082A (ja) 2019-08-29
JP7393862B2 JP7393862B2 (ja) 2023-12-07

Family

ID=64949043

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018238536A Active JP7393862B2 (ja) 2017-12-22 2018-12-20 リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策

Country Status (4)

Country Link
US (1) US11646867B2 (ja)
EP (1) EP3503463B1 (ja)
JP (1) JP7393862B2 (ja)
CN (1) CN110059487A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11843695B2 (en) * 2018-11-09 2023-12-12 Visa International Service Association Distributed entropy system and method
US11283619B2 (en) * 2019-06-20 2022-03-22 The Boeing Company Bit mixer based parallel MAC and hash functions
JP7122722B2 (ja) * 2019-07-25 2022-08-22 ▲しゃーん▼碼科技股▲ふん▼有限公司 高速暗号化鍵生成エンジン
JP7295761B2 (ja) * 2019-09-25 2023-06-21 株式会社日立製作所 情報処理装置
CN112115508A (zh) * 2020-09-07 2020-12-22 翰顺联电子科技(南京)有限公司 应用于区块链的乱数产生方法、装置及乱数产生器
CN113194015A (zh) * 2021-04-29 2021-07-30 洪璐 一种物联网智能家居设备安全控制方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234153A (ja) * 2003-01-29 2004-08-19 Toshiba Corp シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US20060002550A1 (en) * 2004-05-25 2006-01-05 Pitney Bowes Incorporated Method and system for generation of cryptographic keys and the like
US20100106757A1 (en) * 2007-09-18 2010-04-29 Seagate Technology Llc Active Test and Alteration of Sample Times For a Ring Based Random Number Generator
US20100281088A1 (en) * 2009-04-29 2010-11-04 Psigenics Corporation Integrated true random number generator
US20140059100A1 (en) * 2012-08-22 2014-02-27 International Business Machines Corporation Reducing bias in hardware generated random numbers
US20140195576A1 (en) * 2013-01-10 2014-07-10 Advanced Micro Devices, Inc. Hardware Random Number Generator

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954770B1 (en) 2001-08-23 2005-10-11 Cavium Networks Random number generator
JP2008187679A (ja) 2007-01-31 2008-08-14 Seiko Epson Corp 正規品判定システム
US8189778B2 (en) * 2008-07-07 2012-05-29 General Instrument Corporation Adaptive generation of a pseudo random number generator seed
EP2600561B8 (en) 2011-11-30 2019-12-04 BlackBerry Limited Assessing Cryptographic Entropy
WO2013121736A1 (ja) 2012-02-15 2013-08-22 日本電気株式会社 乱数発生装置、乱数発生方法、オブジェクト配置装置、並びにコンピュータ・プログラム
US8971851B2 (en) 2012-06-28 2015-03-03 Certicom Corp. Key agreement for wireless communication
US9569176B2 (en) 2014-10-30 2017-02-14 Seagate Technology Llc Deriving entropy from multiple sources having different trust levels
WO2016162502A1 (en) * 2015-04-08 2016-10-13 Telefonaktiebolaget Lm Ericsson (Publ) Method, apparatus, and system for providing encryption or integrity protection in a wireless network
JP6542171B2 (ja) * 2016-09-15 2019-07-10 東芝メモリ株式会社 ランダマイザおよび半導体記憶装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234153A (ja) * 2003-01-29 2004-08-19 Toshiba Corp シード生成回路、乱数生成回路、半導体集積回路、icカード及び情報端末機器
US20060002550A1 (en) * 2004-05-25 2006-01-05 Pitney Bowes Incorporated Method and system for generation of cryptographic keys and the like
US20100106757A1 (en) * 2007-09-18 2010-04-29 Seagate Technology Llc Active Test and Alteration of Sample Times For a Ring Based Random Number Generator
US20100281088A1 (en) * 2009-04-29 2010-11-04 Psigenics Corporation Integrated true random number generator
US20140059100A1 (en) * 2012-08-22 2014-02-27 International Business Machines Corporation Reducing bias in hardware generated random numbers
US20140195576A1 (en) * 2013-01-10 2014-07-10 Advanced Micro Devices, Inc. Hardware Random Number Generator

Also Published As

Publication number Publication date
US11646867B2 (en) 2023-05-09
CN110059487A (zh) 2019-07-26
EP3503463A1 (en) 2019-06-26
EP3503463B1 (en) 2023-08-16
US20190386820A1 (en) 2019-12-19
JP7393862B2 (ja) 2023-12-07

Similar Documents

Publication Publication Date Title
JP7393862B2 (ja) リングオシレータベースのエントロピー源への位相トラッキングアタックに対する対応策
JP6267207B2 (ja) 物理的クローン不能関数として使用されるメモリから暗号化キーを生成するためのシステム
US11856116B2 (en) Method and apparatus for protecting embedded software
EP2526505B1 (en) Device and method for obtaining a cryptographic key
US6763363B1 (en) Computer efficient linear feedback shift register
RU2661564C2 (ru) Генератор случайных чисел и поточный шифр
JP6366595B2 (ja) 耐グリッチ性暗号離散対数ベースの署名のための方法及びシステム
KR20020008849A (ko) 견고한 난수 발생기
US11728967B2 (en) Dynamic masking
WO2017063986A1 (en) A cryptographic device and an encoding device
Paar et al. Stream ciphers
Puthuparambil et al. Freestyle, a randomized version of ChaCha for resisting offline brute-force and dictionary attacks
US9391770B2 (en) Method of cryption
Vybornova Password-based key derivation function as one of Blum-Blum-Shub pseudo-random generator applications
Genkin et al. Cache vs. key-dependency: Side channeling an implementation of Pilsung
US20040120521A1 (en) Method and system for data encryption and decryption
Kadhim et al. Proposal of new keys generator for DES algorithms depending on multi techniques
Dutta et al. Lightweight polymorphic encryption for the data associated with constrained internet of things devices
TWI608381B (zh) 加解密裝置及其功率分析防禦方法
Kumari et al. Lightweight encryption with data and device integrity using NLFSR and PUF for the Internet of Medical Things
Banerjee et al. EnCash: an Authenticated Encryption scheme using Cellular Automata
US20240020383A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
Gómez Pardo et al. Private-key encryption
Abhishek On Random Number Generation for Kernel Applications
Garay et al. MAC precomputation with applications to secure memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230804

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230818

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231127

R150 Certificate of patent or registration of utility model

Ref document number: 7393862

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150