JP2022517534A - リプレイ保護ノンス生成 - Google Patents

リプレイ保護ノンス生成 Download PDF

Info

Publication number
JP2022517534A
JP2022517534A JP2021537804A JP2021537804A JP2022517534A JP 2022517534 A JP2022517534 A JP 2022517534A JP 2021537804 A JP2021537804 A JP 2021537804A JP 2021537804 A JP2021537804 A JP 2021537804A JP 2022517534 A JP2022517534 A JP 2022517534A
Authority
JP
Japan
Prior art keywords
nonce
length
hash
memory
subset
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.)
Pending
Application number
JP2021537804A
Other languages
English (en)
Inventor
アントニノ モンデッロ
アルベルト トロイア
Original Assignee
マイクロン テクノロジー,インク.
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 マイクロン テクノロジー,インク. filed Critical マイクロン テクノロジー,インク.
Publication of JP2022517534A publication Critical patent/JP2022517534A/ja
Pending legal-status Critical Current

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/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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/44Program or device authentication
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • 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
    • 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
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Software Systems (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

リプレイ保護ノンス生成のためのデバイス及び技術が本明細書で説明される。第1の長さのハッシュは、第1の入力から発生させることができる。ハッシュの第1のサブセットは、セレクタとして抽出することができる。ハッシュの第2のサブセットは、セレクタを使用して選択することができる。ここで、第2のサブセットは、第1の長さよりも小さい第2の長さを有する。第2のサブセットは、リプレイ保護された通信における鮮度値用のノンスとして送信することができる。

Description

[優先権出願]
本出願は、2018年12月28日に出願された米国出願整理番号第16/235,189号の利益を主張するものであり、参照によりその全体が本明細書に組み込まれる。
メモリデバイスは、典型的には、コンピュータまたは他の電子デバイスの内部の、半導体、集積回路として提供される。揮発性メモリ及び不揮発性メモリを含む多くの異なるタイプのメモリが存在する。
揮発性メモリは、そのデータを維持するために電力を必要とし、とりわけ、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)、または同期ダイナミックランダムアクセスメモリ(SDRAM)を含む。
不揮発性メモリは、電力が供給されていないときに記憶されたデータを保持することができ、とりわけ、フラッシュメモリ、読み出し専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM)、スタティックRAM(SRAM)、消去可能プログラマブルROM(EPROM)、相変化ランダムアクセスメモリ(PCRAM)、抵抗ランダムアクセスメモリ(RRAM)、磁気抵抗型ランダムアクセスメモリ(MRAM)などの抵抗可変メモリを含む。
フラッシュメモリは、広範囲な電子的用途のために不揮発性メモリとして利用される。フラッシュメモリデバイスは、典型的には、メモリが高密度であり、信頼性が高く、消費電力が低いことを可能にする、1トランジスタ、フローティングゲートまたは電荷トラップメモリセルの1つ以上のグループを含む。
フラッシュメモリアレイアーキテクチャの2つの一般的なタイプは、それぞれの基本的なメモリセル構成が配置される論理形式にちなんで名付けられた、NANDアーキテクチャ及びNORアーキテクチャを含む。メモリアレイのメモリセルは、通常、マトリックス状に配置される。一実施例では、アレイの行内の各フローティングゲートメモリセルのゲートは、アクセス線(例えば、ワード線)に結合される。NORアーキテクチャでは、アレイの列にある各メモリセルのドレインがデータ線(例えば、ビット線)に結合される。NANDアーキテクチャでは、アレイのストリング内の各メモリセルのドレインは、ソース線とビット線との間で、ソースからドレインに、共に直列に結合される。
NOR及びNANDアーキテクチャの半導体メモリアレイの両方は、ゲートに結合されたワード線を選択することによって特定のメモリセルをアクティブ化するデコーダを介してアクセスされる。NORアーキテクチャの半導体メモリアレイでは、アクティブ化されると、選択されたメモリセルがデータ値をビット線に配置することにより、特定のセルがプログラムされる状態に応じて異なる電流が流れる。NANDアーキテクチャの半導体メモリアレイでは、高バイアス電圧がドレイン側選択ゲート(SGD)線に印加される。各グループの選択されていないメモリセルのゲートに結合されたワード線は、指定されたパス電圧(例えば、Vpass)で駆動されて、各グループの選択されていないメモリセルをパストランジスタとして動作させる(例えば、記憶されたデータ値によって制限されない方式で電流を通過させる)。次いで、電流は、各グループの選択されたメモリセルのみによって制限され、直列に結合されたグループのそれぞれを経由してソース線からビット線に流れ、選択されたメモリセルの電流の符号化されたデータ値をビット線に配置する。
NORまたはNANDアーキテクチャの半導体メモリアレイ内の各フラッシュメモリセルは、個々にまたはまとめて1つまたは複数のプログラムされた状態にプログラムすることができる。例えば、シングルレベルセル(SLC)は、1ビットのデータを表す、2つのプログラムされた状態(例えば、1または0)のうちの1つを表すことができる。
ただし、フラッシュメモリセルは、2つより多いプログラムされた状態のうちの1つを表すこともできることにより、各セルが1つより多い二進数(例えば、1ビットよりも多い)を表すことができるため、メモリセルの数を増やすことなく、より高密度のメモリの製造を可能にする。それらのようなセルは、マルチステートメモリセル、マルチデジットセルまたはマルチレベルセル(MLC)と称することができる。ある特定の実施例では、MLCは、セルあたり2ビットのデータ(例えば、4つのプログラムされた状態のうちの1つ)を記憶することができるメモリセルを指すことができ、トリプルレベルセル(TLC)は、セルあたり3ビットのデータ(例えば、8つのプログラムされた状態のうちの1つ)を記憶することができるメモリセルを指すことができ、クアッドレベルセル(QLC)は、セルあたり4ビットのデータを記憶することができる。MLCは、本明細書では、そのより広い文脈で使用されて、セルあたり1ビットより多いデータを記憶することができる(すなわち、2つより多いプログラムされた状態を表すことができる)任意のメモリセルを指すことができる。
従来のメモリアレイは、半導体基板の表面上に配置された二次元(2D)構造である。所与の領域についてのメモリ容量を増やし、コストを削減するために、個々のメモリセルのサイズは小さくなっている。ただし、個々のメモリセルのサイズの縮小、したがって、2Dメモリアレイのメモリの密度には、技術的な限界がある。これに応じて、三次元(3D)NANDアーキテクチャの半導体メモリデバイスなどの3Dメモリ構造は、さらにメモリの密度を高め、メモリコストを下げるように開発されている。
それらのような3D NANDデバイスは、ストレージセルのストリングを含むことが多く、これらのストレージセルのストリングは、ソースに近接する1つ以上のソース側選択ゲート(SGS)と、ビット線に近接する1つ以上のドレイン側選択ゲート(SGD)との間に、直列に(例えば、ドレインからソースに)結合される。一実施例では、SGSまたはSGDは、1つ以上の電界効果トランジスタ(FET)または金属酸化物半導体(MOS)構造デバイスなどを含むことができる。いくつかの実施例では、ストリングは、それぞれのワード線を含む、複数の垂直方向に離隔されたティアを通って垂直方向に延在する。半導体構造(例えば、ポリシリコン構造)は、ストレージセルのストリングに隣接して延在することにより、このストリングのストレージセルについてチャネルを形成することができる。垂直方向のストリングの実施例では、ポリシリコン構造は、垂直方向に延在するピラーの形状とすることができる。いくつかの実施例では、ストリングを「折りたたむ」ことができるため、U字形のピラーに対して配置することができる。他の実施例では、複数の垂直構造を互いの上に積層させて、ストレージセルストリングの積層型アレイを形成することができる。
メモリアレイまたはデバイスを共に組み合わせて、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS(商標))デバイス、MultiMediaCard(MMC)ソリッドステートストレージデバイス、組み込みMMCデバイス(eMMC(商標))などのようなメモリシステムのストレージボリュームを形成することができる。SSDは、とりわけ、コンピュータのメインストレージデバイスとして使用することができ、例えば、パフォーマンス、サイズ、重量、耐久性、動作温度範囲及び消費電力に関して、可動部品を備えた従来のハードドライブに対する利点を有する。例えば、SSDは、磁気ディスクドライブ(例えば、電気機械など)に関連したシーク時間、レイテンシまたは他の遅延を低減させることができる。SSDは、フラッシュメモリセルなどの不揮発性メモリセルを使用して、内部バッテリ供給要件を不要にすることにより、ドライブをより多用途でコンパクトにすることを可能にする。
SSDは、複数のダイまたは論理ユニット(例えば、論理ユニット番号またはLUN)を含む、複数のメモリデバイスを含むことができ、メモリデバイスまたはインターフェースを外部システムを用いて動作させるために必要な論理機能を実行する1つ以上のプロセッサまたは他のコントローラを含むことができる。このようなSSDは、複数のメモリアレイ、及びそれらの上の周辺回路を含む、1つ以上のフラッシュメモリダイを含むことができる。フラッシュメモリアレイは、複数の物理ページに編成されたメモリセルの複数のブロックを含むことができる。多くの実施例では、SSDはまた、DRAMまたはSRAM(あるいは他のメモリダイの形態または他のメモリ構造)を含む。SSDは、メモリデバイスとホストとの間でデータ(例えば、エラーデータ及びアドレスデータなどの、ユーザデータ及び関連する完全性データ)を転送する読み出しもしくは書き込み動作、またはメモリデバイスからのデータを消去する消去動作などのメモリ動作に関連してホストからコマンドを受信することができる。
必ずしも一定の縮尺で描かれているわけではない図面では、類似数字が異なる図中の類似構成要素を説明し得る。異なる文字接尾辞を有する類似数字は、類似構成要素の別の例を表す場合がある。図面は、概して、限定ではなく実施例として、本明細書で論じられた様々な実施形態を示す。
メモリデバイスを含む環境の実施例を示す。 リプレイ保護のためのノンスを生成するシステムの実施例を示す。 ハッシュからの自己完結型ノンス作成の実施例を示す。 ノンス生成を実行するホストとメモリデバイスとの間の制御フローの実施例を示す。 ノンス生成の初期化中に使用されるメッセージフォーマットのいくつかの実施例を示す。 リプレイ保護ノンス生成のための方法の実施例のフローチャートを示す。 1つ以上の実施形態を実装することができるマシンの実施例を示すブロック図である。
通信セキュリティは、これまで以上に重要な役割を果たしている。安全な通信の異なる態様を理解するために、識別、認証、メッセージの完全性、データ保護(例えば、暗号化)、データアテステーション(attestation)及びアンチリプレイといった、いくつかの異なる領域が考慮される。安全な通信のこれらの異なる態様を実装するために、様々な技術が使用される。しかしながら、本明細書で説明されるシステム及び技術は、アンチリプレイに焦点を合てる。
リプレイ攻撃は、本明細書ではリプレイと称され、攻撃者が、通常の場合には安全な2つの当事者間の通信の一部または全てをコピーし、後になってそれを使用することにより、これら2つの当事者のうちの一方からの認証されていない応答を実現する技術である。例えば、ガレージドアのリモコンは、ガレージドアを開けるためにガレージドア制御に無線信号を送信する。リモコンが通信を認証及び暗号化する必要がある場合でも、単に無線シンボルを記録し、それらを後日リプレイすることで、攻撃者によって望まれるガレージを開ける効果が生じる可能性がある。このようなリプレイ攻撃は、(例えば、コントローラエリアネットワーク(CAN)バスを介した)車両の構成要素の間、産業用コントローラとアクチュエータとの間、またはメモリデバイスとそれらのメモリデバイスを使用する他の構成要素との間などの、他の通信において使用される可能性がある。
リプレイを阻止するために、種々の技術が設計されてきた。一般に、これらの技術は、通信の有効な当事者が各通信と共に予測することができる絶え間なく変化する要素を含めることを含む。例えば、単調な(例えば、これまで増加している)カウンタが考えられる。通信における各メッセージと共に、両当事者は、それぞれのカウンタを(例えば、1つずつ)増加させ、その値を応答メッセージに含める。応答メッセージを検証するとき、受信者は、検証の一部として単調なカウンタの予想値を使用する。攻撃者がメッセージを記録し、それをリプレイすることを試みた場合、リプレイ攻撃に伴ってカウンタ検証が失敗する。絶え間なく変化する要素は、鮮度値と呼ぶことができる。鮮度値を使用することは、メッセージにそれを追加し、HMAC-SHA256または他の暗号化技術(例えば、楕円曲線デジタル署名アルゴリズム(ECDSA))などの、暗号化、メッセージ認証コード(MAC)を使用してメッセージを安全化することを含むことができる。しかしながら、鮮度値の一般的機能は、通信の各当事者が次の有効な鮮度値を予測することで、将来の交換においてその鮮度値が正しいかどうかを確認できるようにすることである。
単調なカウンタ及びタイムスタンプは、鮮度値を作成するために使用される2つの技術である。しかしながら、NANDフラッシュメモリデバイスとして動作するメモリデバイスの状況では、これらの技術にはいくつかの課題がある。第1に、単調なカウンタは、急速に変化する可能性がある現在のカウント値の保存を必要とする。NANDフラッシュの特性により、個々のカウンタの更新は、一般に、カウンタの継続的な書き込み及びガベージコレクションを含み、基礎となるストレージデバイスの過度の摩耗及び非効率的な維持動作を伴う。タイムスタンプには、様々なハードウェアが既に時計を有することが多いという利点がある。しかしながら、鮮度値を継続させるためには、クロックを大規模に同期させる必要がある。多種多様なハードウェア構成に展開されたアドオンのメモリデバイスの場合、このような同期は実用的ではない。
鮮度値生成のこれらの問題を解決するために、ノンス(例えば、一度の数字)生成を使用することができる。ここで、ノンスとは、それ自体では意味を持たない何らかの値を指す。むしろ、ノンス内の値により、2つの当事者がノンスシーケンスにおいて次のノンスがどうあるべきかを把握することができる。したがって、ノンス生成は、当事者間の既知のシードに基づく疑似乱数生成を介して達成することができる。疑似乱数生成器が機能していることにより、シードにアクセスすることができない観察者は(例えば、統計解析を介して)シーケンスにおける次の値が何になるかを伝えることができないはずであるが、2つの当事者はこの値を別々に生成することが可能となる。
一実施例では、最初のシードが2つの当事者によって合意された後、メモリデバイスは、そのシードを使用してハッシュを作成することができる。このハッシュの一部は、鮮度値として使用することができる。例えば、256ビットのハッシュ及び32ビットの所望の鮮度値について考える。ハッシュの256ビットは、8つの32ビットセグメントに分割することができる。最初の3ビットが、または最後の3ビット、最初のビット、中間のビット及び最後のビット、4ビットごとの最初の3つなどの、何らかの定義された技術の3ビットが、グループの識別として使用される。したがって、それらの3つのビットによって識別される8つのグループ内のいずれものビットグループのビットが鮮度値として使用される。次いで、ハッシュをこのプロセスの新しい反復のシードとして使用して、次の鮮度値を決定することができる。
シードはセッション中に記憶及び再使用することができ(例えば、不揮発性メモリは必要とされない)、タイムスタンプと同様にクロック同期を正確に制御する必要がないため、ノンス生成は、NANDフラッシュタイプデバイスのための他の鮮度値技術よりも良好に作用する。加えて、現在の多くのメモリデバイスは、とりわけ、物理複製困難関数(PUF)ブロック、HASHブロック、MACブロック、暗号化及びキー管理ブロックなどの、安全な通信の他の態様を可能にするためのいくつかのハードウェアまたはソフトウェア構成要素を含む。そのため、ノンス生成は、最小限の影響で既存のデバイス設計に追加することができる。加えて、本明細書で説明されるようにノンス値を生じさせるように構成されたメモリデバイスはまた、プロセッサなどの、そのメモリデバイスが通信する他の構成要素のためのハッシュ決定論的ランダムビット生成器(HASH-DRBG)とすることができる。
追加の詳細及び実施例について以下に説明する。図1は、管理されたメモリデバイスに関するいくつかの詳細を含み(例えば、メモリコントローラがメモリデバイスに含まれる)、図2は、リプレイ保護ノンス生成により特有のアーキテクチャ機能を示し、図6は、このアーキテクチャの動作に対するいくつかの変形例を示す。
図1は、通信インターフェースを経由して通信するように構成されたホストデバイス105及びメモリデバイス110を含む環境100の実施例を示す。ホストデバイス105またはメモリデバイス110を、モノのインターネット(IoT)デバイス(例えば、冷蔵庫または他の電化製品、センサ、モータまたはアクチュエータ、移動体通信デバイス、自動車、ドローンなど)などの多種多様な製品150に含めることにより、製品150の処理、通信または制御をサポートすることができる。図2は、pSLC符号化を使用した調整可能なNAND書き込みの実行により特有の詳細を提供する。
メモリデバイス110は、メモリコントローラ115と、例えば、複数の個別のメモリダイ(例えば、三次元(3D)NANDダイのスタック)を含むメモリアレイ120とを含む。3Dアーキテクチャ半導体メモリ技術では、垂直構造は、積層されて、ティアの数、物理ページを増加させ、及びそれに応じてメモリデバイス(ストレージデバイスなど)の密度を増加させる。一実施例では、メモリデバイス110は、ホストデバイス105のディスクリートのメモリまたはストレージデバイス構成要素とすることができる。他の実施例では、メモリデバイス110は、集積回路(例えば、システムオンチップ(SOC)など)の一部とするか、ホストデバイス105の1つ以上の他の構成要素と共に積層するか、またはその他の方法で含めることができる。これらの実施例では、メモリデバイス110は、バスなどのインターリンク111を介してホストデバイス105の構成要素と通信する。したがって、本明細書で説明されるように、ホストまたはホストデバイス105の動作は、メモリデバイス110がホストデバイス105に統合されている場合でも、メモリデバイス110の動作とは異なる。
シリアルアドバンストテクノロジーアタッチメント(SATA)インターフェース、ペリフェラルコンポーネントインターコネクトエクスプレス(PCIe)インターフェース、ユニバーサルシリアルバス(USB)インターフェース、ユニバーサルフラッシュストレージ(UFS)インターフェース、eMMC(商標)インターフェース、または1つ以上の他のコネクタもしくはインターフェースなどの、1つ以上の通信インターフェース(例えば、インターリンク111)を使用して、メモリデバイス110とホストデバイス105の1つ以上の他の構成要素との間でデータを転送することができる。ホストデバイス105は、ホストシステム、電子デバイス、プロセッサ、メモリカードリーダ、またはメモリデバイス110の外部にある1つ以上の他の電子デバイスを含むことができる。いくつかの実施例では、ホスト105は、図7のマシン700を参照して論じられる構成要素の、一部または全てを有するマシンとすることができる。
メモリコントローラ115は、ホスト105から命令を受信することができ、メモリアレイ120のメモリセル、プレーン、サブブロック、ブロックまたはページの1つ以上にデータを転送する(例えば、書き込む、もしくは消去する)、またはそれらからデータを転送する(例えば、読み出す)などのために、メモリアレイ120と通信することができる。メモリコントローラ115は、とりわけ、1つ以上の構成要素または集積回路を含む、回路またはファームウェアを含むことができる。例えば、メモリコントローラ115は、メモリアレイ120全体のアクセスを制御し、ホスト105とメモリデバイス110との間に変換層を提供するように構成された1つ以上のメモリ制御ユニット、回路または構成要素を含むことができる。本明細書ではメモリコントローラ115がメモリデバイス110パッケージの一部として示されているが、メモリコントローラ115が(例えば、メモリサービス110とは別のホスト105のシステムオンチップ上のディスクリートパッケージとして)ホスト105の構成要素となっているなどの他の構成を採用することができ、またはそのような構成をホスト105の中央処理ユニット(CPU)を介して実装することもできる。
メモリマネージャ125は、とりわけ、様々なメモリ管理機能に関連したいくつかの構成要素または集積回路などの回路またはファームウェアを含むことができる。本説明の目的のために、例示的なメモリ動作及び管理機能は、NANDメモリの文脈において説明される。当業者は、不揮発性メモリの他の形態が類似のメモリ動作または管理機能を有することができることを認識するであろう。このようなNAND管理機能は、ウェアレベリング(例えば、ガベージコレクションまたは再利用)、エラー検出もしくは訂正、ブロック退避、または1つ以上の他のメモリ管理機能を含む。メモリマネージャ125は、ホストコマンド(例えば、ホストから受信したコマンド)をデバイスコマンド(例えば、メモリアレイの動作に関連したコマンドなど)にパースもしくはフォーマットすることができるか、またはアレイコントローラ135もしくはメモリデバイス110の1つ以上の他の構成要素について(例えば、様々なメモリ管理機能を達成するために)デバイスコマンドを生成することができる。
メモリマネージャ125は、メモリデバイス110の1つ以上の構成要素に関連した様々な情報(例えば、メモリコントローラ115に結合された1つのメモリアレイまたは1つ以上のメモリセルに関連した様々な情報)を維持するように構成された一式の管理テーブル130を含むことができる。例えば、管理テーブル130は、メモリコントローラ115に結合されたメモリセルの1つ以上のブロックについて、ブロック寿命、ブロック消去カウント、エラー履歴、または1つ以上のエラーカウント(例えば、書き込み動作エラーカウント、読み出しビットエラーカウント、読み出し動作エラーカウント、消去エラーカウントなど)に関する情報を含むことができる。特定の実施例では、エラーカウントのうちの1つ以上について検出されたエラーの数が閾値を上回る場合、ビットエラーは訂正不可能なビットエラーと称することができる。管理テーブル130は、とりわけ、訂正可能または訂正不可能なビットエラーのカウントを維持することができる。一実施例では、管理テーブル103は、変換テーブルまたは論理対物理(L2P)マッピングを含むことができる。
アレイコントローラ135は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つ以上のメモリセルへのデータの書き込み、当該メモリセルからのデータの読み出し、または当該メモリセルの消去に関連したメモリ動作を制御するように構成された回路または構成要素を含むことができる。メモリ動作は、例えば、ホスト105から受信したか、またはメモリマネージャ125によって内部的に生成された(例えば、ウェアレベリング、エラー検出もしくは訂正などに関連した)ホストコマンドに基づくことができる。
アレイコントローラ135は、エラー訂正コード(ECC)構成要素140を含むことができ、この構成要素は、とりわけ、メモリコントローラ115に結合されたメモリデバイス110の1つ以上のメモリセルへのデータの書き込みまたは当該メモリセルからのデータの読み出しに関連したエラーを検出または訂正するように構成されたECCエンジンまたは他の回路を含むことができる。メモリコントローラ115は、アレイコントローラ135によって維持されたECCデータに基づくデータの様々な動作または保存に関連したエラー発生(例えば、ビットエラー、動作エラーなど)を能動的に検出し、そのようなエラー発生から回復するように構成することができる。これにより、メモリコントローラ115は、ホスト105とメモリデバイス110との間で転送されるデータの完全性を維持するか、または記憶されたデータの完全性を維持することができる。この完全性の維持の一部には、将来のエラーを防ぐために、障害のあるメモリリソース(例えば、メモリセル、メモリアレイ、ページ、ブロックなど)を削除すること(例えば、退避すること)を含めることができる。RAINは、データの完全性を維持するためにメモリデバイス110によって利用可能である別の技術である。アレイコントローラ135は、アレイ120においてRAINパリティデータの生成及び保存を実施するように構成することができる。メモリコントローラ115は、損傷したデータを再構築するためにパリティデータを使用することに関わることができる。
メモリアレイ120は、例えば、複数のデバイス、プレーン、サブブロック、ブロックまたはページに配置された、いくつかのメモリセルを含むことができる。一実施例として、48GB TLC NANDメモリデバイスは、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1536ページ、プレーンあたり548ブロック、及びデバイスあたり4つ以上のプレーンを含むことができる。別の実施例として、32GB MLCメモリデバイス(セルあたり2ビットのデータ(すなわち、4つのプログラム可能な状態)を記憶する)は、ページあたり18,592バイト(B)のデータ(16,384+2208バイト)、ブロックあたり1024ページ、プレーンあたり548ブロック、及びデバイスあたり4プレーンを含むことができるが、必要な書き込み時間は、対応するTLCメモリデバイスの半分であり、プログラム/消去(P/E)サイクルはその2倍である。他の実施例は、他の数または配置を含むことができる。いくつかの実施例では、メモリデバイスまたはその一部は、SLCモードで、または(TLC、QLCなどといった)所望のMLCモードで選択的に動作することができる。
動作中、データは、典型的には、ページ単位でNANDメモリデバイス110に書き込まれ、またはそこから読み出され、ブロック単位で消去される。しかしながら、1つ以上のメモリ動作(例えば、読み出し、書き込み、消去など)は、必要に応じて、メモリセルのより大きい、またはより小さいグループに対して実行することができる。NANDメモリデバイス110のデータ転送サイズは、典型的にはページと称されるのに対し、ホストのデータ転送サイズは、典型的にはセクタと称される。
データのページは、複数バイトのユーザデータ(例えば、複数セクタのデータを含むデータペイロード)、及びその対応するメタデータを含むことができるが、ページサイズは、ユーザデータを記憶するために使用されるバイト数のみを指すことが多い。一実施例として、4KBのページサイズを有するデータのページは、4KBのユーザデータ(例えば、512Bのセクタサイズと仮定して8セクタ)だけでなく、完全性データ(例えば、エラー検出または訂正コードデータ)、アドレスデータ(例えば、論理アドレスデータなど)、またはユーザデータに関連した他のメタデータなどの、ユーザデータに対応する複数バイト(例えば、32B、54B、224Bなど)のメタデータを含むことができる。
異なるタイプのメモリセルまたはメモリアレイ120は、異なるページサイズを提供することができるか、またはそれに関連した異なる量のメタデータを必要とする可能性がある。例えば、異なるメモリデバイスタイプは、異なるビットエラーレートを有する可能性がある。これにより、結果としてデータのページの完全性を保証するために必要なメタデータの量が異なる可能性がある(例えば、ビットエラーレートのより高いメモリデバイスは、ビットエラーレートのより低いメモリデバイスよりも多いバイトのエラー訂正コードデータを必要とする可能性がある)。一実施例として、マルチレベルセル(MLC)NANDフラッシュデバイスは、対応するシングルレベルセル(SLC)NANDフラッシュデバイスよりも高いビットエラーレートを有する可能性がある。同様に、MLCデバイスは、対応するSLCデバイスよりも多いメタデータバイトをエラーデータに必要とする可能性がある。
図2は、リプレイ保護のためのノンスを生成するシステムの実施例を示す。このシステムは、ホスト205と、図1に関して上述したように動作することができるメモリデバイス210とを含む。以下の実施例では、ホスト205は、メモリデバイス210との安全な通信における相手である。示されているように、メモリデバイス210は、コントローラ220と、公開鍵及び秘密鍵(PU/PR)ストレージを備えたECDSA要素ならびに秘密(例えば、対称)鍵ストレージを備えたMAC要素を含む認証ブロック225と、楕円曲線ディフィー・ヘルマン(ECDH)要素へのPU/PRストレージを含むディフィー・ヘルマンブロック235と、PUF及び鍵導出関数(KDF)要素を含む鍵生成器215と、マルチプレクサ240と、ハッシュエンジン245と、セレクタブロック250とを含む。
認証及びリプレイ保護された通信中、ノンスシーケンスが初期化される。これはシードの初期化から開始される。一実施例では、ホスト205は、鮮度(またはDRBG生成器)を初期化するために、メモリデバイス210にノンス要求コマンドを発行する。一実施例では、要求は、実質的なデータをメモリデバイス210に渡さない。一実施例では、要求は、ホスト205の署名を含む。
ノンス要求コマンドに応答して、メモリデバイス210は、ゼロノンス(例えば、nonce_0)値をホスト205に送るように構成され、このゼロノンスは、残りのノンスシーケンスの初期化のために使用される。ゼロノンスを受信した後、ホスト205は、メモリデバイス210によってサポートされるいくつかの使用モードのうちの1つを選択するためのシステムセットアップコマンドを提供する。一実施例では、このコマンドは認証され、アンチリプレイ対策としてゼロノンスを使用する。
受信すると、コントローラ220は、使用モードを使用して、セレクタ230を介してマルチプレクサ240を構成する。示されているように、3つの使用モードがホスト205によって選択可能である。これらのモードは、シードA(モード0)、シードB(モード1)及びシードC(モード2)に対応する。示されているように、モード0では、メモリデバイス210は、KDFによって処理されたPUF値を使用することによって秘密シードを生成する(例えば、シード=KDF(PUF))。モード1では、ホスト205とメモリデバイス210とは、公開シードを共有する。一実施例では、シードは、署名されておらず、例えば、ホスト205からコントローラ220に直接渡される。一実施例では、シードは(例えば、ECDSAまたはMACによって)署名され、認証ブロック225によって検証される。モード2では、ホスト205とメモリデバイス210とは、ECDH、または秘密がプロトコルセットアップの一部である他のそのような技術を使用することによって秘密シードを共有する。
ホスト205によってモードが一旦選択されると、コントローラ220は、calculus_on信号をハッシュエンジン240にパルス出力して、選択されたシードソースからハッシュを発生させるように構成される。ハッシュはセレクタブロック250に送られる。セレクタブロックは、ハッシュから直接、ノンス255、またはノンス255のためのベースを選択するように構成される。例えば、ハッシュがNビット長である場合、セレクタ250は、ハッシュからmビットを選択して、mビットのノンス255を発生させる。図3は、ハッシュからノンス255を発生させるために使用するようにセレクタブロック250が構成されている例示的な技術を示す。
初期化に続いて第1のハッシュが作成された後、コントローラ220は、マルチプレクサに対してモード3を選択し、ハッシュは、ハッシュエンジン245によってマルチプレクサ240にフィードバックされる。このようにして、ハッシュは、ノンスシーケンスにおける次のノンス生成のシードとして使用される。例えば、hash=SELECTOR(HASH(hashn-1))、式中、SELECTORはセレクタブロック250であり、HASHはハッシュエンジン245である。ハッシュエンジン245は、コントローラ220から次のcalculus_on信号を受信するまで(その時点でハッシュはマルチプレクサ240に送り出される)、またはコントローラ220からリセット信号を受信するまでハッシュを記憶するための何らかのメモリ(例えば、レジスタ)を含む。図4は、ノンスシーケンスにおける初期化とその後の通信との両方のための、ホスト205とメモリデバイス210(例えば、コントローラ220)との間のメッセージの実施例を示す。
示されたアーキテクチャにより、ノンスシーケンスを開始するために多種多様なシードを使用することができる。さらに、要素の多くは既に最新のメモリデバイスに含まれているため、本明細書で説明されるアンチリプレイノンス技術を実装するために必要なのは、マルチプレクサ240及びセレクタブロック250などの小規模な追加のみである。
図3は、ハッシュからの自己完結型ノンス作成の実施例を示す。ここで、ハッシュは256ビットであり、重複しない8つの32ビットグループに分割される。したがって、グループ0はハッシュのビット0~31を含み、グループ1はハッシュのビット32~63を含み、その他も同様である。8つのグループのうちのどれがノンスであるかを決定するために、グループのうちの1つを明確に選択するのに十分なセレクタビットのセットがハッシュから抽出される。したがって、8つのグループの場合、3つのセレクタビットが抽出される。抽出は、最初のビット、最後のビット、1つおきのビットなどの、定位置とすることができる。抽出されたビットの値により、選択されるグループが決定される。したがって、8つのグループの場合、3つのセレクタビットを使用して、8つのグループのうちの1つを明確に選択する。最初の3ビットが抽出され、それらのビットが110の値を有する場合、グループ6が選択され、グループ6に属するハッシュのビットがノンスとなる。
図4は、ノンス生成を実行するホストとメモリデバイスとの間の制御フローの実施例を示す。ホストは、ノンス要求(メッセージ405)を介してノンスシーケンス用のメモリデバイスを初期化する。この要求は保護されておらず、例えば、任意のエンティティが要求を行うことが可能であり、後のメッセージにおける認証を使用して、どのエンティティがノンスシーケンスの保護された通信セッションに参加可能であるかを制限することができる。
ノンス要求に応答して、メモリデバイスはゼロノンス値で応答する(メッセージ410)。一実施例では、ゼロノンスは、入力としてPUFを使用するKDFの出力のm個の最下位ビット、すなわち、nonce=LSB(KDF(PUF),m)として計算される。図2に示されたアーキテクチャを使用して、コントローラ220は、セレクタ230を介してモード0を選択して、鍵ブロック215の出力をマルチプレクサ240に供給することができる。次いで、コントローラ220は、calculus_on信号をハッシュエンジン245にパルス出力してゼロノンスを発生させることができる。一実施例では、ゼロノンスを取得した後、コントローラ220は、ハッシュエンジン245へのリセット信号を使用してゼロノンスをクリアする。
次に、ホストは、システムをセットアップするために、ゼロノンスによってリプレイ保護されているシステムセットアップコマンド(メッセージ415)を発行する。一実施例では、システムセットアップコマンドは認証される。この実施例は、不要なエンティティがメモリデバイスにてノンス生成シーケンスを有効化またはリセットするのを防ぐのに役立つ。一実施例では、システムセットアップコマンドは、コマンドデータ構造に指示されているように(例えば、図5に示されているように)、ECDSAまたは代わりにMACを使用することによって認証される。
メモリデバイスは、システムセットアップコマンド内のデータを使用して、(例えば、図2で上述したように、または図6で後述するように)ノンスシーケンス生成を構成し、タスクを行うためのその能力に応じて成功または失敗で応答する(メッセージ420)。成功したと仮定すると、メッセージ420に続いて、ホスト及びメモリデバイスは、ノンスシーケンス(例えば、メッセージ425及び430)を使用して通信セッションに関与することができる。ホストが何らかの理由でノンスシーケンスを再開したい場合、ホストは、ノンス要求コマンド(メッセージ405)を再度発行し、プロセスを更新することができる。
図5は、ノンス生成の初期化中に使用されるメッセージフォーマットのいくつかの実施例を示す。示されているように、これらのメッセージデータ構造のそれぞれは、図でラベル付けされているいくつかのフィールドを含む。
ノンス要求メッセージ505は、動作コード(オペコード)、オプションパラメータ(例えば、モードを選択するため)、ならびに応答において要求された署名のタイプ(例えば、0=MAC、1=ECDSA、及び2=署名なし)を含む。
ノンス要求メッセージ505に対する応答メッセージ510は、ノンス(例えば、ゼロノンス)、及びメッセージ505において署名が要求された場合には署名を含む。
システムセットアップメッセージ515は、オペコード、リプレイ保護のためのゼロノンス、セットアップパラメータ、署名タイプ識別子、及び署名自体を含む。示されているように、パラメータは、モード識別を含み、メモリデバイスによって期待された対応データを提供するように構築することができる。例えば、ここでは、モード1及び2の場合、シードが期待されるのに対し、モード3は、シードの共有を必要としないが、むしろ外部プロトコル(例えば、ディフィー・ヘルマン)に依存する。この場合、パラメータは、プロトコルのセットアップに使用されるデータを含む。
図6は、リプレイ保護ノンス生成のための方法600の実施例のフローチャートを示す。方法600の動作は、上述したもの(例えば、メモリデバイス)または後述するもの(例えば、処理回路)などのコンピュータハードウェアにおいて実施される。
動作605で、第1の入力からハッシュを発生させる。ハッシュは、使用されるハッシュ化アルゴリズムによって決定されるような長さの値を有する。一実施例では、ハッシュは暗号化ハッシュである。一実施例では、暗号化ハッシュは、MD5ハッシュ、セキュアハッシュ(SHA)(例えば、SGA-0、SHA-1、SHA-2、SHA-3など)、RIPEMD-160ハッシュ、ワールプールハッシュまたはBLAKE2ハッシュのうちの1つである。
動作610で、ハッシュの第1のサブセットをセレクタとして抽出する。
動作615で、ハッシュの第2のサブセットをセレクタを使用して選択する。一実施例では、第2のサブセットは、第1の長さであるハッシュの長さよりも短い(例えば、より小さい第2の長さを有する)。したがって、セレクタは、ハッシュから取得され、ハッシュの一部を選択するために使用される。この目的のために、セレクタの特性は、リプレイ保護ノンスの基礎となる第2のサブセットの所望の特性に基づいて選択される。
例えば、ハッシュは、いくつかのグループに分割することができ、それぞれは、所望の第2のサブセットサイズに等しい複数ビットを有する。グループは、重複しないか、もしくは重複することが可能であり、またはグループは、連続するか、もしくは連続しないことが可能である。例えば、5つのグループが存在する場合、グループは、ハッシュの先頭に対するオフセットによって区別される5ビットごとに構成される(例えば、グループ0は0オフセットを有し、グループ1は1ビットオフセットを有する、など)。この場合、第1のサブセットはグループの数を表すようにサイズ設定される(例えば、2つのグループが存在する場合には第1のサブセットは1ビットであり、8つのグループが存在する場合には第2のサブセットは3ビットである、など)。次いで、セレクタの値を使用して、グループのうちのどれが第2のサブセットであるかを決定する。例えば、セレクタが0010の場合、第2のサブセットは、16個のグループのうちの、(最小のグループインデックスのゼロに対する)グループ2である。
さらに、第1のサブセットの選択は、それが第1のサブセットのサイズと一致するまで、任意の反復可能な方法で達成することができる。したがって、セレクタは、指定された長さの最初のビット、その長さの最後のビット、その長さの7ビットごとなどとすることができる。ただし、ハッシュの統計的にランダムな性質に近づくため、多くの場合、最初の3ビットを選ぶことが最も効率的である。
以下の実施例は、重複しないグループの選択を示す。具体的には、第1のサブセット(例えば、セレクタ)は、第1の長さ及び第2の長さに基づく第3の長さを有する。一実施例では、第3の長さは、第1の長さを第2の長さで割ったものを表すビット数に等しい。一実施例では、ハッシュは、第2の長さに等しい長さを有する重複しないグループに分割される。一実施例では、セレクタを使用してハッシュの第2のサブセットを選択することは、セレクタ内のビットの数値を評価すること、及びその数値に対応する重複しないグループ内のグループを第2のサブセットとして使用することを含む。
動作620で、第2のサブセットを、リプレイ保護された通信における鮮度値用のノンスとして送信する。送信は、同一のデバイスの暗号化構成要素、または外部エンティティに提供された暗号化構成要素にノンスを渡すことを含むことができる。一実施例では、ノンスは、HASH-DRBGとして機能することができる。
上述した動作は、通信セッションにおける鮮度生成の1回の反復に関連する。一実施例では、方法600は、ノンスシーケンスの初期化を含むように拡張される。ここで、ノンスはノンスシーケンスの最初のノンスであり、シードは最初の入力である。一実施例では、シードは、(例えば、PUFもしくは他の乱数生成器による)自己生成型、符号なしの共有公開値、符号付きの共有公開値、またはディフィー・ヘルマンプロトコル(もしくは安全な通信セットアップの一部として使用される任意の他の鍵もしくは秘密交換)から生成された秘密値のうちの1つであるタイプである。最後のオプションは、署名された共有公開値に似ているが、安全なチャネルをセットアップするためにプロトコルが使用するものを超えた設定を必要としないため、より効率化することができる。
ハードウェアに実装されたとき、動作パラメータが与えられた場合の多種多様なシードの選択を維持するために、デバイスは、種々のタイプのシードのうちのいずれかを受け入れるためのハードウェア、及び任意の与えられたノンスシーケンスに対してどのシードを使用するかを選択する選択機構を含むことができる。したがって、一実施例では、シードを選択することは、例えば、リプレイ保護された通信における相手から、モードを指定するコマンドを受信することを含む。次いで、このモードを使用してマルチプレクサを更新することができる。ここで、マルチプレクサは、サポートされているシードのタイプごとに入力を有する。次いで、デバイスは、マルチプレクサを介してシードを発生させることができる。したがって、モード選択は、いくつかの入力のうちのどれをマルチプレクサがシードとして出力するかを定義する。
一実施例では、利用可能なモードは、いくつかの入力モードと、次に進行中のシーケンスモードとを含む。進行中のシーケンスモードは、ノンスが作成された後に使用されて、ノンスシーケンス内に追加のノンス値を作成する。したがって、一実施例では、方法600は、ノンスシーケンスにおいて、第1のノンスに続いて第2のノンスを作成することを含むように拡張される。第2のノンスは、第1のノンスのハッシュを第2のノンスへの第1の入力として使用することによって作成される。ここで、進行中のシーケンスモードを使用して、新しいハッシュごとに作成された最後のハッシュにシードを置き換える。
初期化シーケンスは、ノンスシーケンスをセットアップするための安全な交換を保証するのに役立つ追加の要素を含むことができる。一実施例では、シードについて承諾するために受信したコマンドは、初期化における最後の通信である。ここで、初期化を開始するための相手からの最初の要求、及びゼロノンスでリプレイ保護されている最初の要求への応答を含む。ゼロノンス(例えば、nonce_0)は、ノンスシーケンスの一部ではなく、むしろ、デバイスがその相手に送り返すことを期待する1回限りの値である。したがって、コマンドは、ゼロノンスを使用して初期化中のリプレイ攻撃を防ぐ。一実施例では、コマンドは、動作コードフィールド、ゼロノンスフィールド、パラメータフィールド、署名フィールドのタイプ及び署名フィールドを備えたデータ構造である。一実施例では、パラメータフィールドは、モード識別及びペイロードを含む。ここで、モード識別を使用して、マルチプレクサに対するモードセレクタを設定する。ペイロードは、シード、またはシードを導出するために使用される他のパラメータとすることができる。
図7は、本明細書で論じられる技術(例えば、方法論)のうちの任意の1つ以上を実行することができる例示的なマシン700のブロック図を示す。代替の実施形態では、マシン700は、スタンドアロンデバイスとして動作する場合もあれば、他のマシンに接続される(例えば、ネットワーク化される)場合もある。ネットワーク化された展開では、マシン700は、サーバクライアントネットワーク環境においてサーバマシン、クライアントマシン、または両方の能力で動作することができる。一実施例では、マシン700は、ピアツーピア(P2P)(または他の分散型)ネットワーク環境でピアマシンとして機能することができる。マシン700は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、パーソナルデジタルアシスタント(PDA)、携帯電話、ウェブアプライアンス、IoTデバイス、自動車システム、またはそのマシンによってとられるアクションを指定する命令(シーケンシャルまたはその他の方法)を実行することが可能な任意のマシンとすることができる。さらに、単一のマシンのみを示しているが、用語「マシン」はまた、クラウドコンピューティング、ソフトウェアアズアサービス(SaaS)、他のコンピュータクラスタ構成などの本明細書で論じられる方法論のうちの任意の1つ以上を実行するために1セット(または複数セット)の命令を個別に、または合わせて実行するマシンの任意の集合を含むと解釈されるものとする。
本明細書で説明される例は、論理、構成要素、デバイス、パッケージ、または機構を含むことができ、またはそれらによって動作することができる。電子回路は、ハードウェア(例えば、単純な回路、ゲート、ロジックなど)を含む有形のエンティティに実装された回路の集合(例えば、セット)である。電子回路の構成要素は、時間の経過及び基礎となるハードウェアの変動性に柔軟に対応することができる。電子回路は、単独でまたは組み合わせて、動作時に特定のタスクを実行することができる構成要素を含む。一実施例では、電子回路のハードウェアは、特定の動作を行うように不変に設計することができる(例えば、ハードワイヤード)。一実施例では、電子回路のハードウェアは、特定の動作の命令を符号化するために、物理的に修正された(例えば、不変密集粒子などの磁気的に、電気的に可動な配置)コンピュータ可読媒体を含む可変に接続された物理的構成要素(例えば、実行ユニット、トランジスタ、単純な回路)を含むことができる。物理的構成要素を接続する際に、ハードウェア構成物の基礎となる電気的特性は、例えば、絶縁体から導体に、またはその逆に変更される。この命令により、関係するハードウェア(例えば、実行ユニットまたはロード機構)は、可変接続を介してハードウェア内に電子回路の構成要素を作成して、動作中に特定のタスクの一部を行うことが可能になる。したがって、コンピュータ可読媒体は、デバイスが動作しているときに、電子回路の他の構成要素に通信可能に結合される。一実施例では、物理的構成要素のいずれも、複数の電子回路の複数の構成要素内で使用することができる。例えば、動作中、実行ユニットは、ある時点で第1の電子回路の第1の回路で使用することができ、別の時点で第1の電子回路の第2の回路によってまたは第2の電子回路の第3の回路によって再使用することができる。
マシン(例えば、コンピュータシステム)700(例えば、ホストデバイス105、メモリデバイス110など)は、ハードウェアプロセッサ702(例えば、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、ハードウェアプロセッサコア、またはメモリコントローラ115などのそれらの任意の組み合わせなど)、メインメモリ704及びスタティックメモリ706を含むことができ、これらの一部または全ては、インターリンク(例えば、バス)708を介して互いに通信することができる。マシン700は、ディスプレイユニット710、英数字入力デバイス712(例えば、キーボード)、及びユーザインターフェース(UI)ナビゲーションデバイス714(例えば、マウス)をさらに含むことができる。一実施例では、ディスプレイユニット710、入力デバイス712及びUIナビゲーションデバイス714は、タッチスクリーンディスプレイとすることができる。マシン700は、ストレージデバイス(例えば、ドライブユニット)708、信号発生デバイス718(例えば、スピーカ)、ネットワークインターフェースデバイス720、及び全地球測位システム(GPS)センサ、コンパス、加速度計または他のセンサなどの1つ以上のセンサ716を追加的に含むことができる。マシン700は、1つ以上の周辺デバイス(例えば、プリンタ、カードリーダなど)と通信するか、またはそれらを制御するために、シリアル(例えば、ユニバーサルシリアルバス(USB))、パラレル、または他の有線もしくは無線(例えば、赤外線(IR)、近距離無線通信(NFC)など)接続などの出力コントローラ728を含むことができる。
ストレージデバイス708は、機械可読媒体722を含むことができ、この機械可読媒体には、本明細書で説明される技術または機能のうちの任意の1つ以上を具体化するか、またはそれらによって利用される、1セット以上のデータ構造または命令724(例えば、ソフトウェア)が記憶される。命令724はまた、マシン700によるそれらの実行中、メインメモリ704内に、スタティックメモリ706内に、またはハードウェアプロセッサ702内に、完全に、または少なくとも部分的に存在することができる。一実施例では、ハードウェアプロセッサ702、メインメモリ704、スタティックメモリ706またはストレージデバイス708の1つまたは任意の組み合わせは、機械可読媒体722を構成することができる。
機械可読媒体722は、単一の媒体として示されているが、用語「機械可読媒体」は、1つ以上の命令724を記憶するように構成された単一の媒体または複数の媒体(例えば、集中型もしくは分散型のデータベース、または関連付けられたキャッシュ及びサーバ)を含むことができる。
用語「機械可読媒体」は、マシン700による実行のための命令を記憶する、符号化する、または搬送することができ、マシン700に、本開示の技術のうちの任意の1つ以上を実行させるか、またはそのような命令によって使用される、もしくはそのような命令と関連付けられるデータ構造を記憶する、符号化する、もしくは搬送することができる任意の媒体を含むことができる。非限定的な機械可読媒体の実施例は、ソリッドステートメモリ、ならびに光及び磁気媒体を含むことができる。一実施例では、大容量の機械可読媒体は不変(例えば、静止)質量を有する複数の粒子を有する機械可読媒体を含む。したがって、大容量の機械可読媒体は一時的な伝播信号ではない。大容量の機械可読媒体の具体的な実施例は、半導体メモリデバイス(例えば、電気的プログラマブル読み出し専用メモリ(EPROM)、電子的消去可能プログラマブル読み出し専用メモリ(EEPROM))及びフラッシュメモリデバイスなどの不揮発性メモリ、内蔵ハードディスク及びリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROM及びDVD-ROMディスクを含むことができる。
ストレージデバイス721に記憶される命令724(例えば、ソフトウェア、プログラム、オペレーティングシステム(OS)など)または他のデータは、プロセッサ702による使用のためにメモリ704によってアクセスすることができる。メモリ704(例えば、DRAM)は、典型的には、高速であるが揮発性であり、したがって、「オフ」状態にある間を含む長期保存に適しているストレージデバイス721(例えば、SSD)とは異なるタイプのストレージである。ユーザまたはマシン700によって使用される命令724またはデータは、典型的には、プロセッサ702による使用のためにメモリ704にロードされる。メモリ704が一杯になると、メモリ704を補うために、ストレージデバイス721からの仮想空間を割り当てることができるが、ストレージデバイス721が典型的には、メモリ704よりも遅く、書き込み速度が典型的には、読み出し速度の少なくとも2倍遅いので、仮想メモリの使用は、ストレージデバイスのレイテンシに起因してユーザエクスペリエンスを大幅に低下させる可能性がある(メモリ704、例えば、DRAMとは対照的に)。さらに、仮想メモリのためのストレージデバイス721の使用は、ストレージデバイス721の使用可能な寿命期間を大幅に減少させる可能性がある。
仮想メモリとは対照的に、仮想メモリ圧縮(例えば、Linux(登録商標)カーネル機能「ZRAM」)は、メモリの一部を圧縮ブロックストレージとして使用して、ストレージデバイス721へのページングを回避する。ページングは、そのようなデータをストレージデバイス721に書き込むことが必要となるまで圧縮ブロックで行われる。仮想メモリ圧縮は、メモリ704の使用可能なサイズを増加させると共にストレージデバイス721での摩耗を減少させる。
モバイル電子デバイスまたはモバイルストレージ用に最適化されたストレージデバイスには、従来、MMCソリッドステートストレージデバイス(例えば、micro Secure Digital(microSD(商標))カードなど)が含まれる。MMCデバイスは、ホストデバイスとの複数のパラレルインターフェース(例えば、8ビットパラレルインターフェースなど)を含み、多くの場合、ホストデバイスから取り外し可能で分離している構成要素である。対照的に、eMMC(商標)デバイスは、回路基板に取り付けられ、ホストデバイスの構成要素とみなされ、シリアルATA(商標)(シリアルAT(アドバンストテクノロジー)アタッチメント、すなわちSATA)ベースのSSDデバイスに匹敵する読み出し速度を備える。しかしながら、仮想デバイスまたは拡張現実デバイスを完全に有効にする、増加しつつあるネットワーク速度を利用するといったことなどのために、モバイルデバイスのパフォーマンスに対する需要は増え続けている。この需要に応えて、ストレージデバイスはパラレル通信インターフェースからシリアル通信インターフェースに移行してきた。コントローラ及びファームウェアを含むユニバーサルフラッシュストレージ(UFS)デバイスは、専用の読み出し/書き込み経路を備えた低電圧差動信号(LVDS)シリアルインターフェースを使用してホストデバイスと通信し、さらに、読み出し/書き込み速度をより向上させる。
命令724はさらに、複数の転送プロトコル(例えば、フレームリレー、インターネットプロトコル(IP)、伝送制御プロトコル(TCP)、ユーザデータグラムプロトコル(UDP)、ハイパーテキスト転送プロトコル(HTTP)など)のうちの任意の1つを利用するネットワークインターフェースデバイス720を介して伝送媒体を使用して通信ネットワーク726を経由して送信または受信することができる。例示的な通信ネットワークは、とりわけ、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、パケットデータネットワーク(例えば、インターネット)、第三世代パートナーシッププロジェクト(3GPP)ファミリの規格(例えば、3G、4G、5G、ロングタームエボリューション(LTE)など)によって定義されたものなどの携帯電話ネットワーク(例えば、セルラーネットワーク)、従来型電話サービス(POTS)ネットワーク、及び無線データネットワーク(例えば、Wi-Fi(登録商標)として知られる電気電子技術者協会(IEEE)802.11ファミリの規格)、IEEE802.15.4ファミリの規格、ピアツーピア(P2P)ネットワークを含むことができる。一実施例では、ネットワークインターフェースデバイス720は、通信ネットワーク726に接続するために1つ以上の物理的ジャック(例えば、イーサネット、同軸ジャックもしくは電話ジャック)または1つ以上のアンテナを含むことができる。一実施例では、ネットワークインターフェースデバイス720は、単一入力複数出力(SIMO)技術、複数入力複数出力(MIMO)技術、または複数入力単一出力(MISO)技術のうちの少なくとも1つを使用して無線通信するために複数のアンテナを含むことができる。用語「伝送媒体」は、マシン700による実行のための命令を記憶する、符号化する、または搬送することができる任意の無形媒体を含むと解釈されるものとし、そのようなソフトウェアの通信を容易にするためにデジタルもしくはアナログ通信信号、または他の無形媒体を含む。
[追加の実施例]
実施例1は、リプレイ保護ノンス生成のためのメモリデバイスであって、第1の入力から、第1の長さを有するハッシュを発生させるハッシュエンジンと、処理回路であって、前記ハッシュの第1のサブセットをセレクタとして抽出することと、前記ハッシュの第2のサブセットであって、前記第1の長さよりも小さい第2の長さを有する前記第2のサブセットを前記セレクタを使用して選択することと、リプレイ保護された通信における鮮度値用のノンスとして前記第2のサブセットを送信することとを行う前記処理回路とを含む前記メモリデバイスである。
実施例2では、前記第1のサブセットが、前記第1の長さ及び前記第2の長さに基づく第3の長さを有する、実施例1に記載の主題である。
実施例3では、前記第3の長さが、前記第1の長さを前記第2の長さで割ったものを表すビット数に等しい、実施例2に記載の主題である。
実施例4では、前記ハッシュが、前記第2の長さに等しい長さを有する重複しないグループに分割される、実施例3に記載の主題である。
実施例5では、前記セレクタを使用して前記ハッシュの前記第2のサブセットを選択するために、前記処理回路が、前記セレクタ内のビットの数値を評価することと、前記数値に対応する前記重複しないグループ内のグループを前記第2のサブセットとして使用することとを行うように構成される、実施例4に記載の主題である。
実施例6では、前記処理回路が、ノンスシーケンスを初期化するように構成され、前記ノンスが第1のノンスとして使用され、シードが前記第1の入力として選択される、実施例1~5のいずれかに記載の主題である。
実施例7では、前記シードが、自己生成型、符号なしの共有公開値、符号付きの共有公開値、またはディフィー・ヘルマンプロトコルから生成された秘密値のうちの1つであるタイプである、実施例6に記載の主題である。
実施例8では、前記シードを選択するために、前記処理回路が、前記リプレイ保護された通信における相手から、モードを指定するコマンドを受信することと、前記モードを使用して、サポートされているシードのタイプごとに入力を有するマルチプレクサを更新することと、前記マルチプレクサを介して前記シードを発生させることとを行うように構成される、実施例6~7のいずれかに記載の主題である。
実施例9では、前記コマンドが前記初期化における最後の通信であり、前記初期化が、前記初期化を開始するための前記相手からの第1の要求と、ゼロノンスでリプレイ保護されている前記第1の要求に対する応答であって、前記ゼロノンスが前記ノンスシーケンスの一部ではなく、前記コマンドが前記ゼロノンスを使用して前記初期化中のリプレイ攻撃を防ぐ、前記応答とを含む、実施例8に記載の主題である。
実施例10では、前記コマンドが、動作コードフィールド、ゼロノンスフィールド、パラメータフィールド、署名フィールドのタイプ及び署名フィールドを備えたデータ構造である、実施例9に記載の主題である。
実施例11では、前記パラメータフィールドがモード識別及びペイロードを含む、実施例10に記載の主題である。
実施例12では、前記処理回路が、前記ノンスシーケンスにおいて、前記第1のノンスに続いて第2のノンスを作成するように構成され、前記第1のノンスのハッシュが前記第2のノンスへの前記第1の入力として使用される、実施例6~11のいずれかに記載の主題である。
実施例13は、リプレイ保護ノンス生成のための方法であって、第1の入力から、第1の長さを有するハッシュを発生させることと、前記ハッシュの第1のサブセットをセレクタとして抽出することと、前記ハッシュの第2のサブセットであって、前記第1の長さよりも小さい第2の長さを有する前記第2のサブセットを前記セレクタを使用して選択することと、リプレイ保護された通信における鮮度値用のノンスとして前記第2のサブセットを送信することとを含む前記方法である。
実施例14では、前記第1のサブセットが、前記第1の長さ及び前記第2の長さに基づく第3の長さを有する、実施例13に記載の主題である。
実施例15では、前記第3の長さが、前記第1の長さを前記第2の長さで割ったものを表すビット数に等しい、実施例14に記載の主題である。
実施例16では、前記ハッシュが、前記第2の長さに等しい長さを有する重複しないグループに分割される、実施例15に記載の主題である。
実施例17では、前記セレクタを使用して前記ハッシュの前記第2のサブセットを選択することが、前記セレクタ内のビットの数値を評価することと、前記数値に対応する前記重複しないグループ内のグループを前記第2のサブセットとして使用することとを含む、実施例16に記載の主題である。
実施例18では、シードを前記第1の入力として選択することにより、前記第1のノンスとして前記ノンスを含む、ノンスシーケンスを初期化することを含む、実施例13~17のいずれかに記載の主題である。
実施例19では、前記シードが、自己生成型、符号なしの共有公開値、符号付きの共有公開値、またはディフィー・ヘルマンプロトコルから生成された秘密値のうちの1つであるタイプである、実施例18に記載の主題である。
実施例20では、前記シードを選択することが、前記リプレイ保護された通信における相手から、モードを指定するコマンドを受信することと、前記モードを使用して、サポートされているシードのタイプごとに入力を有するマルチプレクサを更新することと、前記マルチプレクサを介して前記シードを発生させることとを含む、実施例18~19のいずれかに記載の主題である。
実施例21では、前記コマンドが前記初期化における最後の通信であり、前記初期化が、前記初期化を開始するための前記相手からの第1の要求と、ゼロノンスでリプレイ保護されている前記第1の要求に対する応答であって、前記ゼロノンスが前記ノンスシーケンスの一部ではなく、前記コマンドが前記ゼロノンスを使用して前記初期化中のリプレイ攻撃を防ぐ、前記応答とを含む、実施例20に記載の主題である。
実施例22では、前記コマンドが、動作コードフィールド、ゼロノンスフィールド、パラメータフィールド、署名フィールドのタイプ及び署名フィールドを備えたデータ構造である、実施例21に記載の主題である。
実施例23では、前記パラメータフィールドがモード識別及びペイロードを含む、実施例22に記載の主題である。
実施例24では、前記第1のノンスのハッシュを第2のノンスへの前記第1の入力として使用することにより、前記第1のノンスに続いて、前記ノンスシーケンスにおいて前記第2のノンスを作成することを含む、実施例18~23のいずれかに記載の主題。
実施例25は、リプレイ保護ノンス生成のための命令を含む機械可読媒体であって、前記命令が、処理回路によって実行されると、前記処理回路に、第1の入力から、第1の長さを有するハッシュを発生させることと、前記ハッシュの第1のサブセットをセレクタとして抽出することと、前記ハッシュの第2のサブセットであって、前記第1の長さよりも小さい第2の長さを有する前記第2のサブセットを前記セレクタを使用して選択することと、リプレイ保護された通信における鮮度値用のノンスとして前記第2のサブセットを送信することとを含む動作を実行させる、前記機械可読媒体である。
実施例26では、前記第1のサブセットが、前記第1の長さ及び前記第2の長さに基づく第3の長さを有する、実施例25に記載の主題である。
実施例27では、前記第3の長さが、前記第1の長さを前記第2の長さで割ったものを表すビット数に等しい、実施例26に記載の主題である。
実施例28では、前記ハッシュが、前記第2の長さに等しい長さを有する重複しないグループに分割される、実施例27に記載の主題である。
実施例29では、前記セレクタを使用して前記ハッシュの前記第2のサブセットを選択することが、前記セレクタ内のビットの数値を評価することと、前記数値に対応する前記重複しないグループ内のグループを前記第2のサブセットとして使用することとを含む、実施例28に記載の主題である。
実施例30では、前記命令が、シードを前記第1の入力として選択することにより、前記第1のノンスとして前記ノンスを含む、ノンスシーケンスを初期化することを含む、実施例25~29のいずれかに記載の主題である。
実施例31では、前記シードが、自己生成型、符号なしの共有公開値、符号付きの共有公開値、またはディフィー・ヘルマンプロトコルから生成された秘密値のうちの1つであるタイプである、実施例30に記載の主題である。
実施例32では、前記シードを選択することが、前記リプレイ保護された通信における相手から、モードを指定するコマンドを受信することと、前記モードを使用して、サポートされているシードのタイプごとに入力を有するマルチプレクサを更新することと、前記マルチプレクサを介してシードを発生させることとを含む、実施例30~31のいずれかに記載の主題である。
実施例33では、前記コマンドが前記初期化における最後の通信であり、前記初期化が、前記初期化を開始するための前記相手からの第1の要求と、ゼロノンスでリプレイ保護されている前記第1の要求に対する応答であって、前記ゼロノンスが前記ノンスシーケンスの一部ではなく、前記コマンドが前記ゼロノンスを使用して前記初期化中のリプレイ攻撃を防ぐ、前記応答とを含む、実施例32に記載の主題である。
実施例34では、前記コマンドが、動作コードフィールド、ゼロノンスフィールド、パラメータフィールド、署名フィールドのタイプ及び署名フィールドを備えたデータ構造である、実施例33に記載の主題である。
実施例35では、前記パラメータフィールドがモード識別及びペイロードを含む、実施例34に記載の主題。
実施例36では、前記命令が、前記第1のノンスのハッシュを第2のノンスへの前記第1の入力として使用することにより、前記第1のノンスに続いて、前記ノンスシーケンスにおいて前記第2のノンスを作成することを含む、実施例30~35のいずれかに記載の主題である。
実施例37は、リプレイ保護ノンス生成のためのシステムであって、第1の入力から、第1の長さを有するハッシュを発生させる手段と、前記ハッシュの第1のサブセットをセレクタとして抽出する手段と、前記ハッシュの第2のサブセットであって、前記第1の長さよりも小さい第2の長さを有する前記第2のサブセットを前記セレクタを使用して選択する手段と、リプレイ保護された通信における鮮度値用のノンスとして前記第2のサブセットを送信する手段とを含む前記システムである。
実施例38では、前記第1のサブセットが、前記第1の長さ及び前記第2の長さに基づく第3の長さを有する、実施例37に記載の主題である。
実施例39では、前記第3の長さが、前記第1の長さを前記第2の長さで割ったものを表すビット数に等しい、実施例38に記載の主題である。
実施例40では、前記ハッシュが、前記第2の長さに等しい長さを有する重複しないグループに分割される、実施例39に記載の主題である。
実施例41では、前記セレクタを使用して前記ハッシュの前記第2のサブセットを選択する前記手段が、前記セレクタ内のビットの数値を評価する手段と、前記数値に対応する前記重複しないグループ内のグループを前記第2のサブセットとして使用する手段とを含む、実施例40に記載の主題である。
実施例42では、シードを前記第1の入力として選択することにより、前記第1のノンスとして前記ノンスを含む、ノンスシーケンスを初期化する手段を含む、実施例37~41のいずれかに記載の主題である。
実施例43では、前記シードが、自己生成型、符号なしの共有公開値、符号付きの共有公開値、またはディフィー・ヘルマンプロトコルから生成された秘密値のうちの1つであるタイプである、実施例42に記載の主題である。
実施例44では、前記シードを選択する前記手段が、前記リプレイ保護された通信における相手から、モードを指定するコマンドを受信する手段と、前記モードを使用して、サポートされているシードのタイプごとに入力を有するマルチプレクサを更新する手段と、前記マルチプレクサを介して前記シードを発生させる手段とを含む、実施例42~43のいずれかに記載の主題である。
実施例45では、前記コマンドが前記初期化における最後の通信であり、前記初期化が、前記初期化を開始するための前記相手からの第1の要求と、ゼロノンスでリプレイ保護されている前記第1の要求に対する応答であって、前記ゼロノンスが前記ノンスシーケンスの一部ではなく、前記コマンドが前記ゼロノンスを使用して前記初期化中のリプレイ攻撃を防ぐ、前記応答とを含む、実施例44に記載の主題である。
実施例46では、前記コマンドが、動作コードフィールド、ゼロノンスフィールド、パラメータフィールド、署名フィールドのタイプ及び署名フィールドを備えたデータ構造である、実施例45に記載の主題である。
実施例47では、前記パラメータフィールドがモード識別及びペイロードを含む、実施例46に記載の主題である。
実施例48では、前記第1のノンスのハッシュを第2のノンスへの前記第1の入力として使用することにより、第1のノンスに続いて、前記ノンスシーケンスにおいて前記第2のノンスを作成する手段を含む、実施例42~47のいずれかに記載の主題である。
実施例49は、少なくとも1つの機械可読媒体であって、処理回路によって実行されると、実施例1~48のいずれかを実施する動作を前記処理回路に実行させる命令を含む前記機械可読媒体である。
実施例50は、実施例1~48のいずれかを実施する手段を含む装置である。
実施例51は、実施例1~48のいずれかを実施するシステムである。
実施例52は、実施例1~48のいずれかを実施する方法である。
上記の詳細な説明は、詳細な説明の一部を形成する添付の図面に対する参照を含む。図面は、例示として、本発明を実施することができる特定の実施形態を示す。これらの実施形態は、本明細書では「実施例」とも称される。こうした実施例は、図示または説明された要素に加えて要素を含むことができる。しかしながら、本発明者らは、図示または説明されたそれらの要素のみが提供される実施例も企図する。さらに、本発明者らは、本明細書に図示または説明された特定の実施例(あるいはその1つ以上の態様)に関して、または他の実施例(あるいはその1つ以上の態様)に関して、図示または説明されたそれらの要素(あるいはその1つ以上の態様)の任意の組み合わせまたは変形を使用する実施例も企図する。
本明細書では、用語「a」または「an」は、特許文書で一般的であるように、「少なくとも1つの(at least one)」または「1つ以上の(one or more)」の任意の他の例または用法とは関係なく、1つまたは複数を含むように使用される。本明細書では、用語「または(or)」は、非排他的を指す、つまり別段の指示がない限り、「AまたはB(A or B)」は「AであるがBではなく(A but not B)」、「BであるがAではなく(B but not A)」、及び「A及びB(A and B)」を含むことができるように使用される。添付の特許請求の範囲では、用語「含む(including)」及び「~において(in which)」は、それぞれの用語「含む(comprising)」及び「そこで(wherein)」の分かりやすい英語の同等物として使用される。また、以下の特許請求の範囲では、用語「含む(including)」及び「備える(comprising)」は非限定型である。つまり、請求項の中のそのような用語の後に記載される要素以外の要素を含むシステム、デバイス、物品またはプロセスは、依然としてその請求項の範囲内に含まれるとみなされる。さらに、以下の特許請求の範囲では、用語「第1の」、「第2の」、及び「第3の」などは、単にラベルとして使用されており、その対象に対する数的な要件を課すことを意図していない。
様々な実施例では、本明細書で説明される構成要素、コントローラ、プロセッサ、ユニット、エンジンまたはテーブルは、とりわけ、物理デバイスに記憶された物理的回路またはファームウェアを含むことができる。本明細書で使用される場合、「プロセッサ」は、限定されないが、マイクロプロセッサ、マイクロコントローラ、グラフィックスプロセッサ、デジタルシグナルプロセッサ(DSP)、または、プロセッサもしくはマルチコアデバイスのグループを含む、任意の他のタイプのプロセッサもしくは処理回路などの任意のタイプの計算回路を意味する。
「ウェーハ」及び「基板」という用語は、一般に、集積回路が形成される任意の構造を、及び集積回路製造の様々な段階中のそのような構造をも指すために本明細書で使用される。したがって、以下の詳細な説明は、限定的な意味で解釈されず、様々な実施形態の範囲は、添付の特許請求の範囲のみにより、特許請求の範囲によって権利が与えられる均等物の全範囲と一緒に定義される。
本開示による及び本明細書で説明される様々な実施形態は、メモリセルの垂直構造(例えば、メモリセルのNANDストリング)を利用するメモリを含む。本明細書で使用される場合、方向に関する形容詞は、メモリセルが形成される基板の表面に対するものとして解釈される(すなわち、垂直構造は、基板表面から離れて延在すると解釈され、垂直構造の下端部は、基板表面に最も近い端部と解釈され、垂直構造の上端部は、基板表面から最も遠い端部と解釈される)。
本明細書で使用される場合、メモリセルの動作は、メモリセルから読み出すこと、メモリセルに書き込むこと、またはメモリセルを消去することを含む。メモリセルを意図された状態にする動作は、本明細書では「プログラミング」と呼ばれ、メモリセルへの書き込みまたはメモリセルからの消去(例えば、メモリセルは消去状態にプログラムすることができる)の両方を含むことができる。
本開示の1つ以上の実施形態によれば、メモリデバイスの内部に、または外部に配置されるメモリコントローラ(例えば、プロセッサ、コントローラ、ファームウェアなど)は、摩耗サイクルの量、または摩耗状態(例えば、摩耗サイクルを記録すること、摩耗サイクルの発生時にメモリデバイスの動作をカウントすること、カウントを開始するメモリデバイスの動作を追跡すること、摩耗状態に対応するメモリデバイス特性を評価することなど)を決定すること(例えば、選択すること、設定すること、調整すること、計算すること、変更すること、クリアすること、通信すること、適合させること、導出すること、定義すること、利用すること、修正すること、適用することなど)ができる。
本開示の1つ以上の実施形態によれば、メモリアクセスデバイスは、メモリ動作のたびにメモリデバイスに摩耗サイクル情報を提供するように構成することができる。メモリデバイス制御回路(例えば、制御ロジック)は、摩耗サイクル情報に対応するメモリデバイスパフォーマンスの変化を補償するようにプログラムすることができる。メモリデバイスは、摩耗サイクル情報を受信し、この摩耗サイクル情報に応答して、1つ以上の動作パラメータ(例えば、値、特性)を決定することができる。
本明細書で説明される方法の実施例は、少なくとも部分的に機械またはコンピュータに実装することができる。一部の実施例は、上記の実施例で説明されたように方法を実行するために電子デバイスを構成するように動作可能な命令で符号化されたコンピュータ可読媒体または機械可読媒体を含むことができる。このような方法の実装は、マイクロコード、アセンブリ言語コード、高水準言語コードなどのようなコードを含むことができる。このようなコードは、様々な方法を実行するためのコンピュータ可読命令を含むことができる。コードは、コンピュータプログラム製品の一部を形成することができる。さらに、コードは、実行中または他の時間などに、1つ以上の揮発性または不揮発性の有形のコンピュータ可読媒体に有形に記憶することができる。これらの有形のコンピュータ可読媒体の実施例は、限定されないが、ハードディスク、リムーバブル磁気ディスク、リムーバブル光ディスク(例えば、コンパクトディスク及びデジタルビデオディスク)、磁気カセット、メモリカードまたはスティック、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ソリッドステートドライブ(SSD)、ユニバーサルフラッシュストレージ(UFS)デバイス、組み込みMMC(eMMC)デバイスなどを含むことができる。
上記の説明は、例示を意図したものであり、限定的なものではない。例えば、上述の実施例(またはその1つ以上の態様)は、互いに組み合わせて使用することができる。上記の説明を検討する際に当業者などによって他の実施形態を使用することができる。これは、特許請求の範囲または意味を解釈または限定するために使用されないとの理解のもとに提供される。また、上記の発明を実施するための形態では、様々な特徴を共にグループ化して本開示を効率化することができる。これは、特許請求されていない開示された特徴が任意の請求項に対して不可欠であることを意図すると解釈されるべきではない。むしろ、本発明の主題は、特定の開示されている実施形態の全てに満たない特徴に存在する可能性がある。したがって、以下の特許請求の範囲は、発明を実施するための形態に組み込まれ、各請求項は、別個の実施形態として自立しており、そのような実施形態は、様々な組み合わせまたは順列で互いに組み合わせることができると考えられる。本発明の範囲は、添付された特許請求の範囲に関して、そのような特許請求の範囲によって権利が与えられる均等物の全範囲と共に定められるべきである。

Claims (26)

  1. リプレイ保護ノンス生成のためのメモリデバイスであって、
    第1の入力から、第1の長さを有するハッシュを発生させるハッシュエンジンと、
    処理回路であって、
    前記ハッシュの第1のサブセットをセレクタとして抽出することと、
    前記ハッシュの第2のサブセットであって、前記第1の長さよりも小さい第2の長さを有する前記第2のサブセットを、前記セレクタを使用して選択することと、
    リプレイ保護された通信における鮮度値用のノンスとして前記第2のサブセットを送信することと、
    を行う、前記処理回路と、
    を含む、前記メモリデバイス。
  2. 前記第1のサブセットが、前記第1の長さ及び前記第2の長さに基づく第3の長さを有する、請求項1に記載のメモリデバイス。
  3. 前記第3の長さが、前記第1の長さを前記第2の長さで割ったものを表すビット数に等しい、請求項2に記載のメモリデバイス。
  4. 前記ハッシュが、前記第2の長さに等しい長さを有する重複しないグループに分割される、請求項3に記載のメモリデバイス。
  5. 前記セレクタを使用して前記ハッシュの前記第2のサブセットを選択するために、前記処理回路が、
    前記セレクタ内のビットの数値を評価することと、
    前記数値に対応する前記重複しないグループ内のグループを前記第2のサブセットとして使用することと、
    を行うように構成される、請求項4に記載のメモリデバイス。
  6. 前記処理回路が、ノンスシーケンスを初期化するように構成され、
    前記ノンスが第1のノンスとして使用され、
    シードが前記第1の入力として選択される、請求項1に記載のメモリデバイス。
  7. 前記シードが、自己生成型、符号なしの共有公開値、符号付きの共有公開値、またはディフィー・ヘルマンプロトコルから生成された秘密値のうちの1つであるタイプである、請求項6に記載のメモリデバイス。
  8. 前記シードを選択するために、前記処理回路が、
    前記リプレイ保護された通信における相手から、モードを指定するコマンドを受信することと、
    前記モードを使用して、サポートされているシードのタイプごとに入力を有するマルチプレクサを更新することと、
    前記マルチプレクサを介して前記シードを発生させることと、
    を行うように構成される、請求項6に記載のメモリデバイス。
  9. 前記コマンドが前記初期化における最後の通信であり、前記初期化が、
    前記初期化を開始するための前記相手からの第1の要求と、
    ゼロノンスでリプレイ保護されている前記第1の要求に対する応答であって、前記ゼロノンスが前記ノンスシーケンスの一部ではなく、前記コマンドが前記ゼロノンスを使用して前記初期化中のリプレイ攻撃を防ぐ、前記応答と、
    を含む、請求項8に記載のメモリデバイス。
  10. 前記コマンドが、動作コードフィールド、ゼロノンスフィールド、パラメータフィールド、署名フィールドのタイプ及び署名フィールドを備えたデータ構造である、請求項9に記載のメモリデバイス。
  11. 前記パラメータフィールドがモード識別及びペイロードを含む、請求項10に記載のメモリデバイス。
  12. 前記処理回路が、前記ノンスシーケンスにおいて、前記第1のノンスに続いて第2のノンスを作成するように構成され、
    前記第1のノンスのハッシュが前記第2のノンスへの前記第1の入力として使用される、請求項6に記載のメモリデバイス。
  13. リプレイ保護ノンス生成のための方法であって、
    第1の入力から、第1の長さを有するハッシュを発生させることと、
    前記ハッシュの第1のサブセットをセレクタとして抽出することと、
    前記ハッシュの第2のサブセットであって、前記第1の長さよりも小さい第2の長さを有する前記第2のサブセットを、前記セレクタを使用して選択することと、
    リプレイ保護された通信における鮮度値用のノンスとして前記第2のサブセットを送信することと、
    を含む、前記方法。
  14. 前記第1のサブセットが、前記第1の長さ及び前記第2の長さに基づく第3の長さを有する、請求項13に記載の方法。
  15. 前記第3の長さが、前記第1の長さを前記第2の長さで割ったものを表すビット数に等しい、請求項14に記載の方法。
  16. 前記ハッシュが、前記第2の長さに等しい長さを有する重複しないグループに分割される、請求項15に記載の方法。
  17. 前記セレクタを使用して前記ハッシュの前記第2のサブセットを選択することが、
    前記セレクタ内のビットの数値を評価することと、
    前記数値に対応する前記重複しないグループ内のグループを前記第2のサブセットとして使用することと、
    を含む、請求項16に記載の方法。
  18. シードを前記第1の入力として選択することにより、前記第1のノンスとして前記ノンスを含む、ノンスシーケンスを初期化することを含む、請求項13に記載の方法。
  19. 前記シードが、自己生成型、符号なしの共有公開値、符号付きの共有公開値、またはディフィー・ヘルマンプロトコルから生成された秘密値のうちの1つであるタイプである、請求項18に記載の方法。
  20. 前記シードを選択することが、
    前記リプレイ保護された通信における相手から、モードを指定するコマンドを受信することと、
    前記モードを使用して、サポートされているシードのタイプごとに入力を有するマルチプレクサを更新することと、
    前記マルチプレクサを介して前記シードを発生させることと、
    を含む、請求項18に記載の方法。
  21. 前記コマンドが前記初期化における最後の通信であり、前記初期化が、
    前記初期化を開始するための前記相手からの第1の要求と、
    ゼロノンスでリプレイ保護されている前記第1の要求に対する応答であって、前記ゼロノンスが前記ノンスシーケンスの一部ではなく、前記コマンドが前記ゼロノンスを使用して前記初期化中のリプレイ攻撃を防ぐ、前記応答と、
    を含む、請求項20に記載の方法。
  22. 前記コマンドが、動作コードフィールド、ゼロノンスフィールド、パラメータフィールド、署名フィールドのタイプ及び署名フィールドを備えたデータ構造である、請求項21に記載の方法。
  23. 前記パラメータフィールドがモード識別及びペイロードを含む、請求項22に記載の方法。
  24. 前記第1のノンスのハッシュを第2のノンスへの前記第1の入力として使用することにより、前記第1のノンスに続いて、前記ノンスシーケンスにおいて前記第2のノンスを作成することを含む、請求項18に記載の方法。
  25. 回路によって実行されると、請求項13~24に記載のいずれかの方法を前記回路に実行させる命令を含む機械可読媒体。
  26. 請求項13~24に記載のいずれかの方法を実行する手段を含むシステム。
JP2021537804A 2018-12-28 2019-12-12 リプレイ保護ノンス生成 Pending JP2022517534A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/235,189 2018-12-28
US16/235,189 US11012425B2 (en) 2018-12-28 2018-12-28 Replay protection nonce generation
PCT/US2019/066004 WO2020139573A1 (en) 2018-12-28 2019-12-12 Replay protection nonce generation

Publications (1)

Publication Number Publication Date
JP2022517534A true JP2022517534A (ja) 2022-03-09

Family

ID=71124505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021537804A Pending JP2022517534A (ja) 2018-12-28 2019-12-12 リプレイ保護ノンス生成

Country Status (7)

Country Link
US (2) US11012425B2 (ja)
EP (1) EP3903194A4 (ja)
JP (1) JP2022517534A (ja)
KR (1) KR20210096683A (ja)
CN (2) CN113383321B (ja)
TW (2) TWI763468B (ja)
WO (1) WO2020139573A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11012425B2 (en) 2018-12-28 2021-05-18 Micron Technology, Inc. Replay protection nonce generation
KR20200082982A (ko) * 2018-12-31 2020-07-08 삼성전자주식회사 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
US11303456B2 (en) * 2019-02-15 2022-04-12 International Business Machines Corporation Compute digital signature authentication sign instruction
US11245680B2 (en) * 2019-03-01 2022-02-08 Analog Devices, Inc. Garbled circuit for device authentication
SG10201906806XA (en) * 2019-07-23 2021-02-25 Mastercard International Inc Methods and computing devices for auto-submission of user authentication credential
CN112582009B (zh) * 2020-12-11 2022-06-21 武汉新芯集成电路制造有限公司 单调计数器及其计数方法
US11784827B2 (en) * 2021-03-09 2023-10-10 Micron Technology, Inc. In-memory signing of messages with a personal identifier

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010525417A (ja) * 2007-04-23 2010-07-22 クゥアルコム・インコーポレイテッド 擬似乱数生成器のための初期シード管理
JP2012252195A (ja) * 2011-06-03 2012-12-20 Toshiba Corp 半導体記憶装置
US20180101360A1 (en) * 2016-10-10 2018-04-12 International Business Machines Corporation Secured pseudo-random number generator

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430170B1 (en) * 1999-05-27 2002-08-06 Qualcomm Inc. Method and apparatus for generating random numbers from a communication signal
US7170997B2 (en) 2000-12-07 2007-01-30 Cryptico A/S Method of generating pseudo-random numbers in an electronic device, and a method of encrypting and decrypting electronic data
US7885112B2 (en) 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US7970128B2 (en) * 2007-07-20 2011-06-28 Freescale Semiconductor, Inc. Systems and methods for efficient generation of hash values of varying bit widths
WO2009100259A2 (en) * 2008-02-05 2009-08-13 Icontrol, Inc. Methods and systems for shortened hash authentication and implicit session key agreement
DE102008046563A1 (de) 2008-09-10 2010-03-11 Siemens Aktiengesellschaft Verfahren zur Datenübertragung zwischen Netzwerkknoten
WO2010131563A1 (ja) * 2009-05-11 2010-11-18 日本電気株式会社 タグ生成装置、タグ検証装置、通信システム、タグ生成方法、タグ検証方法および記録媒体
US8812570B2 (en) * 2009-05-28 2014-08-19 Red Hat, Inc. String hashing using a number generator
WO2011027352A1 (en) 2009-09-03 2011-03-10 Mcafee, Inc. Network access control
CN105468982A (zh) * 2010-04-12 2016-04-06 交互数字专利控股公司 无线网络设备及将其完整性确认绑定至其它功能的方法
US9311403B1 (en) * 2010-06-16 2016-04-12 Google Inc. Hashing techniques for data set similarity determination
CN103621126B (zh) * 2011-04-15 2018-06-19 三星电子株式会社 提供机器到机器服务的方法和装置
US9166793B2 (en) * 2011-12-05 2015-10-20 University Of Washington Efficient authentication for mobile and pervasive computing
CA2865548C (en) * 2012-03-01 2021-03-02 Ologn Technologies Ag Systems, methods and apparatuses for the secure transmission and restricted use of media content
TWI512734B (zh) 2012-11-09 2015-12-11 Asolid Technology Co Ltd 快閃記憶體及其存取方法
US8873750B2 (en) * 2013-03-14 2014-10-28 International Business Machines Corporation Instruction for performing a pseudorandom number generate operation
CN105960775B (zh) * 2014-03-03 2020-01-07 英特尔公司 用于迁移密钥的方法和装置
JP6338949B2 (ja) * 2014-07-04 2018-06-06 国立大学法人名古屋大学 通信システム及び鍵情報共有方法
TWI533130B (zh) 2014-08-01 2016-05-11 華邦電子股份有限公司 記憶體電路及其再新方法
US10353638B2 (en) 2014-11-18 2019-07-16 Microsemi SoC Corporation Security method and apparatus to prevent replay of external memory data to integrated circuits having only one-time programmable non-volatile memory
US10372695B2 (en) * 2014-12-27 2019-08-06 Intel Corporation Technologies for computing rolling hashes
US9875378B2 (en) 2015-06-12 2018-01-23 QUALCOMOM Incorporated Physically unclonable function assisted memory encryption device techniques
US10205595B2 (en) * 2016-06-22 2019-02-12 Vmware, Inc. Methods and apparatus to authenticate and differentiate virtually identical resources using session chaining
US10269420B2 (en) 2016-12-13 2019-04-23 Taiwan Semiconductor Manufacturing Co., Ltd. Memory with symmetric read current profile and read method thereof
US10599796B2 (en) * 2017-04-28 2020-03-24 Taiwan Semiconductor Manufacturing Co., Ltd. Metastable flip-flop based true random number generator (TRNG) structure and compiler for same
US11316696B2 (en) * 2017-09-29 2022-04-26 R3 Ltd. Hash subtrees for grouping components by component type
KR101977159B1 (ko) * 2018-12-28 2019-06-21 (주)그린아이티코리아 경량화된 보안 방식을 지원하는 보안 서비스 제공 장치 및 방법
US11012425B2 (en) 2018-12-28 2021-05-18 Micron Technology, Inc. Replay protection nonce generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010525417A (ja) * 2007-04-23 2010-07-22 クゥアルコム・インコーポレイテッド 擬似乱数生成器のための初期シード管理
JP2012252195A (ja) * 2011-06-03 2012-12-20 Toshiba Corp 半導体記憶装置
US8976586B2 (en) * 2011-06-03 2015-03-10 Kabushiki Kaisha Toshiba Semiconductor memory device for pseudo-random number generation
US20180101360A1 (en) * 2016-10-10 2018-04-12 International Business Machines Corporation Secured pseudo-random number generator

Also Published As

Publication number Publication date
US11012425B2 (en) 2021-05-18
WO2020139573A1 (en) 2020-07-02
US20210273924A1 (en) 2021-09-02
EP3903194A4 (en) 2022-09-07
CN113383321A (zh) 2021-09-10
TWI763468B (zh) 2022-05-01
US11558359B2 (en) 2023-01-17
TWI729636B (zh) 2021-06-01
TW202134857A (zh) 2021-09-16
KR20210096683A (ko) 2021-08-05
EP3903194A1 (en) 2021-11-03
US20200213281A1 (en) 2020-07-02
CN114911456A (zh) 2022-08-16
TW202032360A (zh) 2020-09-01
CN113383321B (zh) 2022-06-14

Similar Documents

Publication Publication Date Title
US11983106B2 (en) Host accelerated operations in managed NAND devices
US10936250B2 (en) Host accelerated operations in managed NAND devices
US11558359B2 (en) Replay protection nonce generation
US11138108B2 (en) Logical-to-physical map synchronization in a memory device
US10884944B2 (en) Host accelerated operations in managed NAND devices
US11886339B2 (en) Secure logical-to-physical caching
US20220404988A1 (en) Replay protected memory block data frame
JP2022522595A (ja) ホストベースのフラッシュメモリメンテナンス技術
CN112654993A (zh) 安全存储器系统编程

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220815

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220823

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20221117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230418