CN112149147A - 用于密码计算的隐式完整性 - Google Patents

用于密码计算的隐式完整性 Download PDF

Info

Publication number
CN112149147A
CN112149147A CN202010223760.4A CN202010223760A CN112149147A CN 112149147 A CN112149147 A CN 112149147A CN 202010223760 A CN202010223760 A CN 202010223760A CN 112149147 A CN112149147 A CN 112149147A
Authority
CN
China
Prior art keywords
data
processor
entropy
determining
sum
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
CN202010223760.4A
Other languages
English (en)
Inventor
M.E.库纳维斯
S.戈什
S.多奇
D.M.德拉姆
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.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN112149147A publication Critical patent/CN112149147A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/321Program or instruction counter, e.g. incrementing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • 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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/402Encrypted data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种用于密码计算的隐式完整性。在一个实施例中,处理器包括存储器分级结构及耦合到存储器分级结构的核。存储器分级结构存储加密数据,且核包括执行下列步骤的电路:访问存储器分级结构中存储的加密数据;对加密数据进行解密,以产生解密数据;对解密数据执行熵测试;以及基于熵测试的结果来更新处理器状态。熵测试可包括:确定解密数据中其值彼此相等的数据实体的数量,确定解密数据中其值彼此相等的相邻数据实体的数量,确定解密数据中其值等于来自特殊值集合的至少一个特殊值的数据实体的数量,或者确定n个最高数据实体值频率的总和。

Description

用于密码计算的隐式完整性
对相关申请的交叉引用
本申请要求序列号为62/868884的美国临时专利申请(其标题为“CryptographicComputing”且于2019年6月29日提交)的权益和优先权,该临时申请的全部公开通过引用被并入本文。
技术领域
本公开一般涉及计算机系统领域,且更特别地,涉及密码计算实现中的隐式完整性校验。
背景技术
密码计算可指的是用于计算机系统安全性的解决方案,所述解决方案采用处理器组件内部的密码机制。一些密码计算系统可以在存储器指针或用户数据离开处理器边界并且进入一些外部存储器单元或被传送到某一设备之前在这样的数据上在处理器核内采用加密和/或其它密码机制。此外,加密和解密可以是存储器加载和存储操作的组成部分。这类灵活加密操作能够充分降低与诸如访问具有准许、存储器范围或其他安全元数据的表的当前解决方案关联的典型开销,因为此类表可能是大的、被存储在外部存储器单元中、并且访问其是费时的。
附图说明
为了提供对本公开及其特征和优点的更全面了解,参照以下结合附图的描述,其中相似参考标号表示相似部件,附图中:
图1是加密数据中发生的示例数据破坏的简化图。
图2是用于实现隐式完整性的示例过程的简化流程图。
图3是示出用于确定解密数据是具有高还是低熵的示例过程的简化图。
图4是用于确定解密数据是具有高还是低熵的另一个示例过程的简化图。
图5A-5C是按照本公开、支持处理器中的完整性校验的处理器状态的示例实施例的简化图。
图6A-6C是示出当采用计数器模式块密码时隐式完整性如何检测处理器核中的破坏的图。
图7是示出按照至少一个实施例的示例处理器核和存储器的框图;以及
图8是按照至少一个实施例的示例计算机架构的框图。
具体实施方式
以下公开提供用于密码计算的实现的各种可能实施例或示例。密码计算可指的是用于计算机系统安全性的解决方案,所述解决方案采用处理器组件内部的密码机制。一些密码计算系统可以在存储器指针或用户数据离开处理器边界并且进入一些外部存储器单元或被传送到某一设备之前在这样的数据上在处理器核内采用加密和/或其它密码机制。这类灵活加密操作能够充分降低与诸如访问具有准许、存储器范围或其他安全元数据的表的当前解决方案关联的典型开销,因为此类表可能是大的、被存储在外部存储器单元中、并且访问其是费时的。
数据完整性是计算的重要方面。数据破坏可在各种情况下发生,以及对任何数据破坏的检测能够防止许多问题。在一些当前系统中,通过产生、存储和验证在密码上较强的消息认证代码(MAC)(例如K-MAC SHA3代码)来实现破坏检测。但是,存在关联于与MAC的使用相关的附加元数据的使用的空间和计算功率方面的成本,并且如果存储器加载和存储操作执行对处理器核中的处理的密码工作(例如在密码计算实现中),则成本可显著地增加。例如,每个高速缓存行和寄存器需要扩大空间以存储MAC。这种计算成本可需要被包含在计算管线等的总延迟中。
本公开的方面可检测数据破坏,同时避免当前技术的一些缺点(例如以上针对MAC的使用所述的成本)。在一些实施例中,例如,通过使用隐式完整性校验,破坏检测能够在密码计算的上下文中被支持在处理器核处以及作为加密存储器加载和存储操作的一部分。隐式完整性背后的原理能够一般地被描述如下。用户数据通常具有低熵,并且通常示范模式(例如超过阈值的多个相等字节可存在于数据中,或者两个最高半字频率的数量可能超过阈值,等等)。在数据被加密的情况下,对密文的破坏可引起没有模式的解密明文。通过检查模式或者某个解密的内容的低熵状态,可检测数据破坏。在一些实施例中,能够通过当数据在核中被解密时更新处理器状态(该处理器状态是软件可访问的)以指示潜在数据破坏,而在处理器核中支持隐式完整性校验。软件可以能够通过读取相关处理器状态信息对潜在数据破坏/完整性违规作出反应。在某些实施例中,处理器状态(例如在标志寄存器中的新位)可用来指示完整性违规,以及新指令(例如分支指令)可对标志位作出反应。指令可以是处理器的指令集架构(ISA)的部分。
在一些实施例中,隐式完整性校验可用于在加密的存储器读操作(其中加密在处理器内部(例如在处理器核中)发生)完成之后检测破坏。在一些实施例中,可通过熵标志(EF)、通过与模式、阈值或呈现模式(例如被存储在型号特定寄存器(MSR)中)的实体有关的信息或者通过与所呈现熵索引值有关的信息,实现指定解密数据是否具有低熵的新处理器状态。此外,在一些实施例中,隐式完整性可在处理器中连同加密模式(例如计数器模式)一起实现。
图1是在加密的数据中发生的示例数据破坏的简化图。在所示示例中,一些明文内容102存在。明文内容102可包括任何适当类型的数据,诸如例如高速缓存行或者可在处理器内使用的其他类型的数据。如果明文内容102模式化(即,具有低熵),则这种内容能够与随机数据加以区分。当加密明文内容102(其中加密算法近似随机预言)时,产生密文104,该密文104不再是与随机数据可区分的。对密文104的任何破坏引起被破坏密文106,所述被破坏密文106与原始密文104是不同的。对被破坏密文106的任何后续解密操作将引起被破坏明文值108,所述被破坏明文值108与原始明文内容102是不同的。
由于解密是加密的逆操作,所以解密算法也近似随机预言。因此,被破坏明文108与随机数据也是不可区分的。此外,被破坏明文108因与解密预言关联的‘雪崩效应’而与随机数据是不可区分的。甚至密文104中的单个位变化也影响解密明文(例如108)的全部位。由于这些原因,检查解密操作结果的熵能够是用于检测破坏的可靠测试。这个方法学可称作隐式完整性。
在密码计算的上下文中,隐式完整性可以是特别重要的,因为存储器加载和存储操作恰在退出CPU核之前并且在进入1级(L1)高速缓存(或者存储器分级结构的另一部分)之前对数据进行加密,以及当数据进入CPU核时类似地对它们进行解密。隐式完整性允许CPU核通过执行解密操作并且检查解密内容的熵,来无缝地检测对数据的破坏。这是低成本操作,完全没有引起近乎上述MAC方式的成本。
图2是用于实现隐式完整性的示例过程200的简化流程图。示例过程200的一个或多个操作可在处理器中(例如在处理器核中)实现,以按照低成本方式来检测存储器中存储的数据是否已经被破坏或者可能将要被破坏。
在202,由处理器核来访问存储器分级结构中存储的加密数据D0。加密数据D0可驻留在存储器分级结构中的任何位置,诸如例如在处理器的1级(L1)高速缓存、2级(L2)高速缓存或3级(L3)高速缓存内部或者在处理器外部的存储器中。
在204,在处理器核中对加密的数据D0进行解密。例如,在一些实施例中,加密的数据可在它从存储器被读取并且进入处理器核时被解密。在数据已经解密之后,在206对解密的数据执行熵测试。熵测试可检查解密的数据中的一个或多个模式,并且进行关于解密的数据是否具有低熵的确定。例如,在一个实施例中,处理器核可检查是否存在彼此相等的4个或更多16位字(例如在32个字的集合之中)。下面分别针对图3和图4的过程300和400来描述其他示例模式校验及关联操作。
一旦熵测试完成,在208基于熵测试的结果来更新处理器状态。在一些实施例中,可通过处理器寄存器中的一个或多个位来实现处理器状态,以及熵测试的输出(例如关于解密的数据是否具有低熵的指示)可用来更新寄存器的位。例如,在一个实施例中,基于在解密的数据中检测的高熵以及通过在206的熵测试所输出的关联指示,例如可通过设置为1来将CPU标志寄存器中的单个位进行更新。在一些实施例中,为了在CPU核状态中表示解密的数据的熵,可存储与数据所展示的准确模式(例如它是否等同于字节、字或半字)以及数据中展示该模式的实体的数量有关的信息。在一些实施例中,可如以下所述来计算和存储适合于小消息的熵的量度(称作“熵索引”)。
最后,在210,在处理器上执行的软件可读取(一个或多个)寄存器值,并且相应地作出反应。例如,软件可执行分支指令,以开始执行重置应用的指令序列。如果软件将所检测的隐式完整性违规视为明显的安全违反的迹象,则可要求这种重置。重置步骤可包括改变指针和数据加密密钥、重新加密整个应用状态(包括代码和数据)、将被破坏数据结构的内容重置成缺省值、或者任何其他适当步骤。
图3是示出用于确定解密的数据是具有高还是低熵的示例过程300的简化图。在所示示例中,过程300使用阈值集合{T1, T2, …}来执行多个模式校验。示例过程300是可称作“扩展模式匹配”(EPM)的算法的一个变体,该算法采用模式校验的不同样式来确定数据集是具有高还是低熵。在被组合时,这些模式校验能够产生用于隐式完整性的成功方案。示例过程300被描述为对解密的数据所执行的熵测试(例如,作为图2的操作204的部分),但是其可应用于任何类型的数据来执行熵测试。
在示例过程300中,解密的数据经过并行模式校验。第一模式校验在操作302中确定在解密的数据中彼此相等的字节的数量(N1),并且在操作322中将相等字节的数量与第一阈值T1进行比较。第二模式校验在操作304中确定彼此相等的相邻字节的最大数量(N2),并且在操作324中将相邻的相等字节的数量与第二阈值T2进行比较。第二模式校验关注在输入数据之中不仅彼此相等而且还被放入连续索引位置的实体。这个第二模式校验不必与第一模式校验相同。例如,能够将这两种类型的模式校验与不同阈值关联,并且通过这样做,构建两个不同模式检测器。
第三模式校验在操作306中确定与特殊值集合(V)的特殊值相等的字节的数量(N3),并且在操作326中将该数量与第三阈值T3进行比较。特殊值集合(即,集合V)可包括在规则用户数据中频繁遇到但是在随机或者被破坏明文数据中不频繁遇到的值。例如,在一些情况下,从客户端数据工作负荷所得到的存储器高速缓存行可包括高百分比的具有0x00或0xFF的值的字节。虽然以上针对解密的数据中的字节来描述第一、第二和第三模式校验,但是这些模式校验可针对不同类型的数据实体(诸如例如半字、字(16位)、双字(32位)或者另一种类型的数据实体)来执行。对不同类型的数据实体的这类校验可作为对第一、第二或第三模式校验的替代或其的补充来执行。例如,在所示示例中,第四模式校验在操作308中确定在解密的数据中彼此相等的16位字的数量(N4),并且在操作328中将该数量与第四阈值T4进行比较。
另一种类型的模式校验检测数据实体,所述数据实体的值直方图展示n个最高条目(即,频率)的总和高于阈值。这种类型的模式校验背后的直觉在于,存在若干类型的输入消息,其内容不是与加密的数据的内容同样随机的,而且也不以字节或字粒度来展示模式。这种内容的一个示例是媒体数据,其中可重复半字值,但是其中数据没有展示有效字节或字重复。计算n个最高半字频率的总和是否超过阈值的备选模式校验更为有效。如果输入数据由高速缓存行组成,则这个模式校验对n=2最为有效。这种类型的模式校验能够在包括操作310、312、314、316的图3的模式校验中看到。
例如,在操作310中,确定两个最高32位双字频率的总和(N5),并且该总和在操作330中与第五阈值T5进行比较。作为另一个示例,操作312确定两个最高半字频率的总和(N6),并且该总和在操作332中与第六阈值T6进行比较。在一些实施例中,这个概念能够扩展到也查看最高和最低有效实体。作为示例,操作314确定两个最高的最高有效半字频率的总和(N7),并且该总和在操作334中与第七阈值T7进行比较。作为另一个示例,操作316确定两个最高的最低有效半字频率的总和(N8),并且该总和在操作336中与第八阈值T8进行比较。通过组合这些类型的模式校验,能够实现更灵活模式检测器,此模式检测器在一方面包含明显更多规则用户输入,且在另一方面与随机数据之间不频繁的事件关联。
图3中所示的每个模式校验产生“是/否(Y/N)”确定,且模式校验的输出可然后被分析以进行关于解密的数据是具有高还是低熵的确定。例如,在所示示例中,阈值比较322、324、326、328、330、332、334、336中的每个对“是”(例如,其中所确定数量超过相关阈值)产生1的位值或者对“否”产生0的位值(例如,其中所确定数量没有超过相关阈值)。通过每个模式校验所输出的位值可组成位向量,该位向量指示在数据中找到所述8个模式中的哪些模式。例如,通过使用示例过程300,操作322、324、326、328、330、332、334、336的输出可形成八个布尔值的向量。这些值可被提供给逻辑OR(或)操作340,且这个逻辑OR操作的结果344可以是关于对过程300所输入的解密的数据是否具有低熵的指示。在一些情况下,该指示可实现为处理器标志寄存器中设置的单个位值。因此,图3的过程300基本上从所采用模式校验集合之中确定是否存在至少一个模式校验,在其中展现该模式的所观测的数据实体超过阈值。如果这种模式校验存在,则对过程300的输入数据被表征为具有低熵;否则不是。在一些实施例中,除了上述模式位向量之外,处理器状态还可包括展示模式类型中的每个模式类型的实体的数量(例如图3中所示的N1、N2、N3、N4、N5、N6、N7、N8)。
图4是用于确定解密的数据是具有高还是低熵的另一个示例过程400的简化图。示例过程400是没有包括阈值的使用的扩展模式匹配过程300的扩展。特别地,过程400按照与图3的过程300相似的方式来计算在某个解密的数据中呈现模式的实体的数量(图4中通过操作402、404、406、408、410、412、414、416所确定的N),但不是如同过程300中一样将这些数量与阈值进行比较,过程400而是基于所确定数量来确定‘熵索引’值(图4中通过操作422、424、426、428、430、432、434、436所确定的E)。以下描述定义可在过程400中实现的示例熵索引。
考虑类型π的模式p(例如,相等的字节的最大数量,如在图4的402中那样)。如果某个输入数据x展示模式p且来自x的正好N个实体呈现这个模式(例如相等的字节的最大数量正好为N),则我们将此表示为:
Figure DEST_PATH_IMAGE001
与模式类型π和实体数量E关联的熵索引值E则能够定义为x ∈ p(π, N)的概率的负对数,其中假定x是随机的(例如,x从随机预言的输出来得到):
Figure 116314DEST_PATH_IMAGE002
按照上述示例定义,在随机数据值x中看到模式p(π, N)的概率等于2-E。在这个示例中,熵索引E按照位来测量。此外,在找到一个展示模式p(π, N)的随机值之前要检查的随机值的预计数量为2E。因此,模式类型π和实体数量N关联的熵索引E也等于一直到找到值x以使得x ∈ p(π, N)之前要嵌入检查的随机值的预期数量的对数。
图4的示例过程400采用与图3的过程300相同的模式校验,只有一个例外:过程400的模式校验不返回布尔响应;它们而是返回呈现模式的实体的数量{N1, N2,…, N8}。这些数量的每个然后用来确定对应熵索引值{E1, E2,…, E8}。每一个熵索引值的计算取决于所使用模式校验的类型以及取决于数据中呈现模式的实体的数量。下面描述了针对不同类型的模式校验能够如何来计算熵索引值的一些示例。
从数量{N1, N2,…, N8}所得到的熵索引值{E1, E2,…, E8}经过处理级440,该处理级440选择熵索引值的最大数(E = max({E1, E2,…, E8})),且最大熵索引E在442与阈值(E阈值)进行比较。如果最大熵索引E超过阈值,则对过程400所输入的解密的数据被表征为展示低熵;否则被表征为高熵。这个表征然后能够按照如以上针对图3的指示322所述相似的方式作为指示444来提供。
过程400能够说成是基本上搜索由对过程所输入的解密的数据所呈现的模式中的最稀少模式。模式中的最稀少模式是随机数据之中以最小概率出现的模式,并且与最高熵索引值关联。由于熵索引值{E1, E2,…, E8}从数量{N1, N2,…, N8}来确定,所以过程400无需对独立阈值(所述阈值表征如同在过程300中呈现模式的数据实体)直接操作。过程400而是对单个熵索引阈值(E阈值)进行操作,这具有实际意义。例如,这个阈值可反映对手通过破坏明文数据来产生过程400中所考虑模式中的至少一个所要求的预期的努力次数。这种概率与最高熵索引值关联。
用于字节和字相等模式校验的熵索引
下列计算可用来确定用于字节和字相等模式校验的熵索引(例如,由图4的操作422、428分别基于操作402、408的模式校验而确定的熵索引)。字节和字相等校验可以可适用于存储器和存储数据的保护,因为计算系统中的许多数据单元包含展示有效字节或字值重复的代码或数据结构。与由展示彼此相等的m个字节的n个字节所组成的数据单元关联的示例熵索引E通过下式给出:
Figure DEST_PATH_IMAGE003
类似地,与由展示彼此相等的m个字的n个16位字所组成的数据单元关联的示例熵索引E通过下式给出:
Figure 656623DEST_PATH_IMAGE004
对于对手要成功攻击字节或字相等模式检测器,对手将需要产生展示m个或更多相等字节/字值的被破坏明文数据。在随机数据中,这类相等以这样的概率来观测,该概率被计算为与n个元素、m个冲突和256个(对于字节)或65536个(对于字)生日关联的生日冲突概率。这种概率能够按照许多方式来被近似,例如按照下式来近似:
Figure DEST_PATH_IMAGE005
这些生日冲突概率略高于与上面给出的熵索引值关联的概率值2-E。这是因为,这些生日冲突概率包括其中数据单元中存在多于m个值相等的全部事件。
用于相邻字节相等模式校验的熵索引
下列计算可用来确定用于相邻字节相等模式校验的熵索引(例如,由图4的操作424基于操作404的模式校验而确定的熵索引)。计算彼此相等并且占用连续索引位置的字节的数量的模式校验也是重要的。这类校验不仅对包含代码和数据结构的数据单元而且还对未初始化的存储器条目(其中单个任意字节值可重复)可以是成功的。与由展示相邻且彼此相等的m个字节的n个字节所组成的数据单元关联的示例熵索引E通过下式给出:
Figure 436361DEST_PATH_IMAGE006
对于对手要成功攻击相邻字节相等模式检测器,对手将需要产生展示m个或更多相邻的相等字节的被破坏明文数据。在随机数据中,这能够以如下概率发生:
Figure DEST_PATH_IMAGE007
由于与以上所述相同的原因,所述概率略高于与熵索引E关联的值2-E
用于对取特殊值的字节进行计数的模式校验的熵索引
下列计算可用来确定用于对多个取特殊值的字节进行计数的模式校验的熵索引(例如,由图4的操作426基于操作406的模式校验而确定的熵索引)。对取来自集合V的特殊值的字节的最大数量进行计数的模式校验能够成功地表征代码、数据结构和未初始化的存储器条目。在一个实施例中,集合V由两个特殊值组成:0x00和0xFF。这类值在存储器高速缓存行数据中频繁地被遇到。与由其中m个字节取来自基数|V|的集合V的值的n个字节所组成的数据单元关联的示例熵索引E通过下式给出:
Figure 893887DEST_PATH_IMAGE008
对于对手要成功攻击这个模式检测器,对手将需要产生展示具有特殊值的m个或更多字节的被破坏明文数据。在真正随机数据中,这能够以如下概率发生:
Figure DEST_PATH_IMAGE009
用于计算两个最高双字频率的总和的模式校验的熵索引
下列计算可用来确定用于计算两个最高双字频率的总和的模式校验的熵索引(例如,由于图4的操作430基于操作410的模式校验而确定的熵索引)。计算两个最高双字频率的总和的模式校验可以可适用于存储器指针表。在一些情况下,可存在不呈现有效字节或字重复但是包含几对(1-2对)相同32位或64位序列的若干高速缓存行。这些高速缓存行可包含存储器指针表。具有在随机高速缓存行中出现的两对相同32位值是稀少事件,并且以概率2-49.84发生。与由n个双字(其中两个最高双字频率的总和等于m)组成的数据单元关联的示例熵索引E通过下式给出:
Figure 708259DEST_PATH_IMAGE010
对于对手要成功攻击这个模式检测器,对手将需要产生展示如下的双字的被破坏明文数据,对于所述双字其中两个最高频率的总和大于或等于m。在真正随机数据中,这以如下概率发生:
Figure DEST_PATH_IMAGE011
如同全部其他情况那样,这个概率是相似的,但是略高于值2-E,因为它包括其中两个最高双字频率的总和超过m的全部事件。
用于基于半字的模式校验的熵索引的计算
下列计算可用来确定用于基于半字的模式校验的熵索引(例如,由图4的操作432、434、436分别基于操作412、414、416的模式校验而确定的熵索引)。基于半字的模式可适用于作为“半二进制”的数据单元。半二进制数据单元可指的是没有以字或字节粒度呈现模式,但具有足够低的熵以便支持经由隐式完整性的破坏检测的数据。这类数据的一个示例是媒体数据,例如图像、视频帧等。这类数据展示半字重复。以下所述的模式校验计算数据单元中的两个最高半字频率的总和。在某些实施例中能够实现三个变体:一个变体使用数据单元的全部半字来计算两个最高半字频率的总和;第二变体仅使用来自数据单元的字节的最高有效半字来计算两个最高半字频率的总和;以及第三变体仅使用来自数据单元的字节的最低有效半字来计算两个最高半字频率的总和。
与由n个半字(其中两个最高半字频率的总和等于m)组成的数据单元关联的示例熵索引E通过下式给出:
Figure 858618DEST_PATH_IMAGE012
对于对手要成功攻击这个模式检测器,对手将需要产生展示如下的半字的被破坏明文数据,对于所述半字其中两个最高频率的总和大于或等于m。在随机数据中,这以如下概率发生:
Figure DEST_PATH_IMAGE013
图5A-5C是按照本公开、支持处理器中的完整性校验的处理器状态的示例实施例的简化图。处理器状态可基于如上所述的过程300或过程400的输出。在图5A中所示的示例中,处理器状态作为单个位状态(实现为熵标志(EF)512)保持在处理器核的RFLAGS寄存器510中。在其他实施例中,寄存器510可以是FLAGS寄存器、EFLAGS寄存器或者另一种类型的处理器寄存器。在图5B所示的示例中,处理器状态作为模式位向量522(该模式位向量522指示数据所呈现的模式的特定类型)连同实体524(所述实体524参与模式中)的数量一起被保持在型号特定寄存器(MSR)520中。例如,参照图3中所示的示例过程300,模式位向量522可包括来自每个模式校验操作302、304、306、308、310、312、314、316的布尔输出,并且通过模式校验操作所确定的数量(例如对于操作302彼此相等的字节的数量)可在524中被存储。在图5C所示的示例中,型号特定寄存器(MSR)530保持熵索引值的数组532以及数据所呈现的最大熵索引534。例如,参照图4的示例过程400,熵索引数组532可存储操作422、424、426、428、430、432、434、436的输出,而通过操作440所计算的最大熵索引可在534中被存储。其他信息可存储在图5B-5C的MSR中,作为对所示信息的补充或替代。
图6A-6C是示出当采用计数器模式块密码时隐式完整性如何检测处理器核中的破坏的图。在图6A中所示的示例过程600中,采用第一(正确)密钥对第一计数器值602进行加密(例如作为常规加密写操作的组成部分),以产生加密的第一计数器值604(第一密钥流),该加密的第一计数器值604又与第一数据进行XOR(异或),以产生加密数据606。加密数据可存储在某个软件所拥有的地址中。
在图6B中所示的示例过程610中,数据的破坏发生。特别地,在新的写操作期间,使用第二(不正确)密钥对独立的第二计数器值612进行加密,以产生加密的第二计数器值614(第二密钥流),该加密的第二计数器值614又与新的第二数据进行XOR,以产生加密的第二数据616。加密的第一数据606在所拥有的地址被加密的第二数据616所取代。
在图6B的过程610中发生的破坏可在图6C中所示的示例过程620中被检测。例如,在过程620中,采用第一密钥对第一计数器622进行加密以产生加密的第一计数器624(第一密钥流),如同过程600中一样。但是,现在当拥有被破坏的地址的软件从该地址进行读时,在该地址所存储的加密的第二数据616变成与两个不同密钥流进行XOR:与过程600的第一计数器602关联的第一密钥流(即,合法访问)以及与过程610的第二计数器612关联的第二密钥流(即,破坏)。如果没有破坏已发生,则第一和第二密钥流相互抵消,且正确数据被操作626返回。在这种情况下,所产生数据628将呈现低熵。但是,如果破坏已经发生,则来自操作626的所产生数据628将呈现高熵。因此,可基于来自操作626的所产生数据中的高熵的检测来检测破坏。
上述示例过程可包括附加或不同操作,且操作可按照所示顺序或者按照另一种顺序执行。在一些情况下,图2-4和图6的流程图中所示的操作中的一个或多个被实现为包括多个操作、子过程或其他类型的例程的过程。在一些情况下,操作能够被组合、按照另一顺序执行、并行地执行、被迭代或者以其他方式重复进行或者按照另一种方式执行。
图7-8是可按照本文所公开实施例而使用的示范计算机架构的框图。一般来说,可使用用于处理器和计算系统的本领域已知的任何计算机架构设计。在示例中,用于膝上型计算机、台式计算机、手持PC、个人数字助理、平板、工程工作站、服务器、网络装置、服务器设备、网络中枢、路由器、交换机、嵌入式处理器,数字信号处理器(DSP)、图形装置、视频游戏装置、机顶盒、微控制器,智能电话、移动装置、可佩戴电子装置、便携媒体播放器、手持装置和各种其他电子装置的本领域已知的系统设计和配置也适合于本文所述计算系统的实施例。一般来说,用于本文所公开实施例的适当计算机架构能够包括但不限于图7-8所示的配置。
图7是按照实施例的处理器的示例图示。处理器700是能够与上述实现结合使用的一种类型的硬件装置的示例。处理器700可以是任何类型的处理器,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、多核处理器、单核处理器或者执行代码的其他装置。虽然图7中仅示出一个处理器700,但是处理元件备选地可包括多于一个图7中所示的处理器700。处理器700可以是单线程核,或者对于至少一个实施例,处理器700可以是多线程的,因为它可包括每核多于一个硬件线程上下文(或者“逻辑处理器”)。
图7还示出按照实施例、耦合到处理器700的存储器702。存储器702可以是如本领域的技术人员已知或者以其他方式可得到的各种存储器(包括存储器分级结构的各种层)中的任何一种。这类存储器元件能够包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)的逻辑块、可擦可编程只读存储器(EPROM)和电可擦可编程ROM(EEPROM)。
处理器700能够执行与本文详述的算法、过程或操作关联的任何类型的指令。一般来说,处理器700能够将元件或项目(例如数据)从一种状态或情况变换成另一种状态或情况。
可以是将要由处理器700执行的一个或多个指令的代码704可被存储在存储器702中,或者可被存储在软件、硬件、固件或者它们的任何适当组合中或者在适当的时候并基于特定需要而被存储在任何其他内部或外部组件、装置、元件或对象中。在一个示例中,处理器700能够遵循代码704所指示的指令的程序序列。每个指令进入前端逻辑706,并且由一个或多个解码器708来处理。解码器可生成作为其输出的微操作(例如采用预定义格式的固定宽度微操作),或者可生成反映原始代码指令的其他指令、微指令或控制信号。前端逻辑706还包括寄存器重命名逻辑710和调度逻辑712,它们一般分配资源并且将与指令对应的操作进行排队以供执行。
处理器700还能够包括执行逻辑714,所述执行逻辑714具有一组执行单元716a、716b、716n等。一些实施例可包括专用于特定功能或者功能集合的多个执行单元。其他实施例可以仅包括一个执行单元或者能够执行特定功能的一个执行单元。执行逻辑714执行代码指令所指定的操作。
在代码指令所指定的操作的执行完成之后,后端逻辑718能够隐退代码704的指令。在一个实施例中,处理器700允许无序执行,但是要求指令的有序隐退。隐退逻辑720可采取多种已知形式(例如重排序缓冲器等)。按照这种方式,至少根据解码器、寄存器重命名逻辑710所利用的硬件寄存器和表、以及执行逻辑714所修改的任何寄存器(未示出)生成的输出在代码704的执行期间变换处理器700。
虽然图7中未示出,但是处理元件可在芯片上包括与处理器700一起的其他元件。例如,处理元件可包括随同处理器700的存储器控制逻辑。处理元件可包括I/O控制逻辑,和/或可包括与存储器控制逻辑相集成的I/O控制逻辑。处理元件还可包括一个或多个高速缓存。在一些实施例中,非易失性存储器(例如闪速存储器或熔丝(fuse))也可随处理器700一起被包含在芯片上。
图8示出按照实施例、按照点对点(PtP)配置所布置的计算系统800。特别地,图8示出一种系统,其中处理器、存储器和输入/输出装置通过多个点对点接口来互连。一般来说,本文所述计算系统或计算装置中的一个或多个可按照与计算系统800相同或相似的方式来被配置。
处理器870和880可实现为单核处理器874a和884a或者多核处理器874a-874b和884a-884b。处理器870和880各自可包括被它们的相应一个或多个核所使用的高速缓存871和881。共享高速缓存(未示出)可被包含在任一处理器中或者两个处理器外部,但是仍然经由P-P互连与处理器连接,使得如果处理器被置入低功率模式,则任一个或两个处理器的本地高速缓存信息可存储在共享高速缓存中。
处理器870和880各自还可包括集成的存储器控制器逻辑(MC)872和882,以便与存储器元件832和834进行通信,所述存储器元件832和834可以是本地附连到相应处理器的主存储器的部分。在备选实施例中,存储器控制器逻辑872和882可以是与处理器870和880分开的分立逻辑。存储器元件832和/或834可存储将要由处理器870和880在实现本文所述操作和功能性中使用的各种数据。
处理器870和880可以是任何类型的处理器,诸如联系其他附图而论述的那些处理器。处理器870和880可分别使用点对点(PtP)接口电路878和888来经由点对点接口850交换数据。处理器870和880各自可使用点对点接口电路876、886、894和898来经由单独点对点接口852和854与输入/输出(I/O)子系统890交换数据。I/O子系统890还可使用接口电路892(该接口电路892能够是PtP接口电路)来经由高性能图形接口839与高性能图形电路838交换数据。在一个实施例中,高性能图形电路838是专用处理器,诸如例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。I/O子系统890还可与显示器833进行通信,以用于显示由人类用户可查看的数据。在备选实施例中,图8中所示的PtP链路中的任一个或全部可实现为多点总线而不是PtP链路。
I/O子系统890可经由接口电路896与总线820进行通信。总线820可具有通过其进行通信的一个或多个装置,例如总线桥818和I/O装置816。经由总线810,总线桥818可与诸如用户接口812(例如键盘、鼠标、触摸屏或其他输入装置)、通信装置826(例如调制解调器、网络接口装置或者可经过计算机网络860进行通信的其他类型的通信装置)、音频I/O装置814和/或数据存储装置828之类的其他装置进行通信。数据存储装置828可存储可由处理器870和/或880所执行的代码和数据830。在备选实施例中,总线架构的任何部分可采用一个或多个PtP链路来实现。
图8中所描绘的计算机系统是可用来实现本文所述的各个实施例的计算系统的实施例的示意图。将会理解,图8中所描绘的系统的各种组件可组合在片上系统(SoC)架构中或者在能够实现本文所提供示例和实现的功能性和特征的任何其他适当配置中。
虽然根据某些实现和一般地关联的方法来描述本公开,但是这些实现和方法的变更和置换将对本领域的技术人员是显而易见的。例如,本文所述的动作能够按照与如所述顺序不同的顺序来执行,并且仍然实现期望结果。作为一个示例,附图中所描绘的过程不一定要求所示的特定顺序或依次顺序来实现期望的结果。在某些实现中,多任务和并行处理可以是有利的。其他变化落入以下权利要求书的范围之内。
本文所给出的架构仅作为示例来提供,并且旨在是非排他和非限制性的。此外,所公开的各种部分旨在只是逻辑划分,而无需必然表示物理分离硬件和/或软件组件。某些计算系统可在单个物理存储器装置中提供存储器元件,且在其他情况下,存储器元件可在功能上跨许多物理装置而分布。在虚拟机管理器或管理程序的情况下,功能的全部或部分可采取在虚拟化层上运行以提供所公开的逻辑功能的软件或固件的形式来被提供。
注意,通过本文中所提供的示例,可在单个计算系统方面来描述交互。但是,这只是为了清楚和示例的目的而进行。在某些情况下,通过仅引用单个计算系统来描述流程的给定集合的功能性中的一个或多个可以是更容易的。此外,用于深度学习和恶意软件检测的系统是易于缩放的,并且能够跨大量组件(例如多个计算系统)以及更复杂/精密布置和配置来实现。相应地,所提供的示例不应当限制潜在地应用于无数其他架构的计算系统的范围或约束其广义教导。
在本文中使用时,除非明确地相反说明,否则对措辞‘...至少一个’的使用指的是所提到的元件、条件或活动的任何组合。例如,‘X、Y和Z的至少一个’意在表示下列任一个:1)至少一个X,但不是Y并且不是Z;2)至少一个Y,但不是X并且不是Z;3)至少一个Z,但不是X并且不是Y;4)至少一个X和Y,但不是Z;5)至少一个X和Z,但不是Y;6)至少一个Y和Z,但不是X;或者7)至少一个X、至少一个Y以及至少一个Z。
另外,除非明确地相反说明,否则术语‘第一’、‘第二’、‘第三’等旨在区分它们修饰的特定名词(例如元件、条件、模块、活动、操作、权利要求元素等),而不是旨在指示被修饰名词的任何类型的顺序、分级、重要性、时间序列或者分级结构。例如,‘第一X’和‘第二X’旨在表示两个独立X元素,这两个独立X元素不一定受它们的任何顺序、分级、重要性、时间序列或分级结构所限制。
说明书中提到“一个实施例”、“一实施例”、“一些实施例”等指示所述的(一个或多个)实施例可包括特定特征、结构或特性,但是可能一定或者可能不一定每一个实施例都包括那个特定特征、结构或特性。此外,这类措辞不一定指同一实施例。
虽然本说明书包含许多具体实现细节,但是这些不应当被理解为对任何实施例或者可要求保护的内容的范围的限制,而是应当被理解为对特定实施例特定的特征的描述。本说明书中在独立实施例的上下文中描述的某些特征也能够在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也能够在多个实施例中独立地或者以任何适当的子组合来实现。此外,虽然特征在上文中可描述为通过某些组合来起作用并且甚至最初这样要求保护,但是来自要求保护的组合的一个或多个特征在一些情况下能够脱离组合,并且要求保护的组合可指向子组合或者子组合的变化。
类似地,上述实施例中的各种系统组件和模块的分离不应当被理解为在全部实施例中都要求这种分离。应当理解,所描述的程序组件、模块和系统一般能够共同集成在单个软件产品中或者封装到多个软件产品中。
因此,描述了本主题的特定实施例。其他实施例落入本公开的范围之内。许多其他更改、置换、变更、改变和修改是本领域的技术人员可确定的,并且本公开旨在包含落入所附权利要求书的范围之内的所有这类更改、置换、变更、改变和修改。
下列示例涉及按照本说明书的实施例。将会理解,以下所描述的某些示例的一个或多个方面可与某些其他示例(包括未明确指出的示例)组合或者在其中实现。
示例1包括一种处理器,包括:存储加密数据的存储器分级结构;以及耦合到所述存储器分级结构的核。所述核包括执行下列操作的电路:访问所述存储器分级结构中存储的所述加密数据;对所述加密数据进行解密,以产生解密数据;对所述解密数据执行熵测试;以及基于所述熵测试的结果来更新处理器状态。
示例2包括示例1的所述主题,且可选地,其中执行所述熵测试的所述电路将执行操作集合,所述操作集合包括下列操作中的至少一个:确定所述解密数据中其值彼此相等的数据实体的数量;确定所述解密数据中其值彼此相等的相邻数据实体的数量;确定所述解密数据中其值等于来自特殊值集合的至少一个特殊值的数据实体的数量;以及确定n个最高数据实体值频率的总和。
示例3包括示例2的所述主题,且可选地,其中执行所述熵测试的所述电路进一步:基于通过所述操作所确定的数量与相应阈值的比较来生成所述操作集合中的每个操作的布尔输出;对所生成的布尔输出执行逻辑OR操作;以及基于所述逻辑OR操作的输出来更新所述处理器状态。
示例4包括示例2的所述主题,且可选地,其中执行所述熵测试的所述电路进一步:对每个操作基于通过所述操作所确定的数量来确定熵索引;确定所确定的熵索引中的最大熵索引;将所述最大熵索引与阈值进行比较;以及基于所述比较来更新所述处理器状态。
示例5包括示例2-4中任一项的所述主题,且可选地,其中所述数据实体包括字节、16位字、32位双字和半字其中之一。
示例6包括示例2-5中任一项的所述主题,且可选地,其中确定n个最高数据实体值频率的所述总和的所述电路执行下列操作中的一个或多个:确定n个最高半字频率的总和;确定n个最高的最高有效半字频率的总和;以及确定n个最高的最低有效半字频率的总和。
示例7包括示例6的所述主题,且可选地,其中n=2。
示例8示例1-7中任一项所述的主题,且可选地,其中所述处理器进一步包括RFLAGS寄存器,且所述核电路将通过更新所述RFLAGS寄存器中的位来更新所述处理器状态。
示例9包括示例1-7中任一项所述的主题,且可选地,其中所述处理器进一步包括型号特定寄存器(MSR),且所述核电路将通过在所述MSR中存储与所述解密数据中检测到的一个或多个模式及展示所述一个或多个模式的实体的数量有关的信息来更新所述处理器状态。
示例10包括示例1-7中任一项所述的主题,且可选地,其中所述处理器进一步包括型号特定寄存器(MSR),且所述核电路将通过在所述MSR中存储通过所述熵测试所确定的熵的至少一个量度来更新所述处理器状态。
示例11包括示例1-10中任一项所述的主题,且可选地,其中所述存储器分级结构包括1级(L1)高速缓存、2级(L2)高速缓存和3级(L3)高速缓存中的一个或多个。
示例12包括一种方法,所述方法包括:在处理器核接收来自存储器分级结构的加密数据;对所述处理器核中的所述加密数据进行解密;确定所解密数据是否具有低熵;以及基于所述数据具有低熵的确定来更新一个或多个处理器寄存器值。
示例13包括示例12所述的主题,且可选地,其中确定所解密数据是否具有低熵包括执行下列操作中的至少一个:确定所解密数据中其值彼此相等的数据实体的数量;确定所解密数据中其值彼此相等的相邻数据实体的数量;确定所解密数据中其值等于来自特殊值集合的至少一个特殊值的数据实体的数量;以及确定n个最高数据实体值频率的总和。
示例14包括示例13所述的主题,且可选地,其中确定所解密数据是否具有低熵进一步包括:基于通过所述操作所确定的数量与相应阈值的比较来生成所述操作集合中的每个操作的布尔输出;以及对所生成的布尔输出执行逻辑OR操作;其中更新所述处理器寄存器值基于所述逻辑OR操作的输出。
示例15包括示例13所述的主题,且可选地,其中确定所解密数据是否具有低熵进一步包括:对每个操作基于通过所述操作所确定的数量来确定熵索引;确定所确定的熵索引中的最大熵索引;以及将所述最大熵索引与阈值进行比较;其中更新所述处理器寄存器值基于所述比较。
示例16包括示例13-15中任一项所述的主题,且可选地,其中所述数据实体包括字节、16位字、32位双字和半字其中之一。
示例17包括示例13-15中任一项所述的主题,且可选地,其中确定n个最高数据实体值频率的所述总和包括执行下列操作中的一个或多个:确定n个最高半字频率的总和;确定n个最高的最高有效半字频率的总和;以及确定n个最高的最低有效半字频率的总和。
示例18包括示例17所述的主题,且可选地,其中n=2。
示例19包括示例12-18中任一项所述的主题,且可选地,其中更新一个或多个处理器寄存器值包括更新RFLAGS寄存器中的位。
示例20包括示例12-18中任一项所述的主题,且可选地,其中更新一个或多个处理器寄存器值包括在型号特定寄存器中存储与所解密数据中检测到的一个或多个模式及展示所述一个或多个模式的实体的数量有关的信息。
示例21包括示例12-18中任一项所述的主题,且可选地,其中更新一个或多个处理器寄存器值包括在型号特定寄存器中存储通过所述熵测试所确定的熵的至少一个量度。
示例22包括一种存储指令的计算机可读介质,所述指令在由数据处理设备执行时将执行如示例12-21所述的方法中的任一方法。
示例23包括一种设备,所述设备配置成执行示例12-21的方法中的任一个。
示例24包括一种系统,所述系统包括执行示例12-21的方法的任一个的一个或多个步骤的部件。
示例25包括一种存储指令的计算机可读介质,所述指令在由数据处理设备执行时将执行如下操作:访问存储器分级结构中存储的加密数据;对所述加密数据进行解密,以产生解密数据;对所述解密数据执行熵测试;以及基于所述熵测试的结果来更新所述数据处理设备中的寄存器的一个或多个位。
示例26包括示例25的所述主题,且可选地,其中执行所述熵测试的所述指令将执行包括下列操作中的至少一个的操作集合:确定所述解密数据中其值彼此相等的数据实体的数量;确定所述解密数据中其值彼此相等的相邻数据实体的数量;确定所述解密数据中其值等于来自特殊值集合的至少一个特殊值的数据实体的数量;以及确定n个最高数据实体值频率的总和。
示例27包括示例25的所述主题,且可选地,其中执行所述熵测试的所述指令进一步执行如下操作:基于通过所述操作所确定的数量与相应阈值的比较来生成所述操作集合中的每个操作的布尔输出;对所生成的布尔输出执行逻辑OR操作;以及基于所述逻辑OR操作的输出来更新所述处理器状态。
示例28包括示例26的所述主题,且可选地,其中执行所述熵测试的所述指令进一步执行如下操作:对每个操作基于通过所述操作所确定的数量来确定熵索引;确定所确定的熵索引中的最大熵索引;将所述最大熵索引与阈值进行比较;以及基于所述比较来更新所述处理器状态。
示例29包括示例25-28中任一项所述的主题,且可选地,其中更新处理器状态的指令将更新RFLAGS寄存器的位。
示例30包括示例25-28中任一项所述的主题,且可选地,其中更新处理器状态的指令更新型号特定寄存器(MSR)的一个或多个位。
示例31包括示例30的主题,且可选地,其中更新处理器状态的指令将在MSR中存储与解密数据中检测到的一个或多个模式以及展示所述一个或多个模式的实体的数量有关的信息。
示例32包括示例30所述的主题,且可选地,其中更新处理器状态的指令将在MSR中存储通过熵测试所确定的熵的至少一个量度。
示例33可包括一种装置,其包括执行在以上示例的任一个中所描述的或者与其相关的方法或者本文所描述的任何其他方法或过程的一个或多个元素的逻辑、模块、电路或其他部件。

Claims (22)

1. 一种处理器,包括:
存储加密数据的存储器分级结构;以及
耦合到所述存储器分级结构的核,所述核包括执行下列操作的电路:
访问所述存储器分级结构中存储的所述加密数据;
对所述加密数据进行解密,以产生解密数据;
对所述解密数据执行熵测试;以及
基于所述熵测试的结果来更新处理器状态。
2.如权利要求1所述的处理器,其中执行所述熵测试的所述电路将执行操作集合,所述操作集合包括下列操作中的至少一个:
确定所述解密数据中其值彼此相等的数据实体的数量;
确定所述解密数据中其值彼此相等的相邻数据实体的数量;
确定所述解密数据中其值等于来自特殊值集合的至少一个特殊值的数据实体的数量;以及
确定n个最高数据实体值频率的总和。
3.如权利要求2所述的处理器,其中执行所述熵测试的所述电路进一步:
基于通过所述操作所确定的数量与相应阈值的比较来生成所述操作集合中的每个操作的布尔输出;
对所生成的布尔输出执行逻辑OR操作;以及
基于所述逻辑OR操作的输出来更新所述处理器状态。
4.如权利要求2所述的处理器,其中执行所述熵测试的所述电路进一步:
对每个操作基于通过所述操作所确定的数量来确定熵索引;
确定所确定的熵索引中的最大熵索引;
将所述最大熵索引与阈值进行比较;以及
基于所述比较来更新所述处理器状态。
5.如权利要求2所述的处理器,其中所述数据实体包括字节、16位字、32位双字和半字其中之一。
6.如权利要求2所述的处理器,其中确定n个最高数据实体值频率的所述总和的所述电路执行下列操作中的一个或多个:
确定n个最高半字频率的总和;
确定n个最高的最高有效半字频率的总和;以及
确定n个最高的最低有效半字频率的总和。
7.如权利要求6所述的处理器,其中n=2。
8.如权利要求1-7中任一项所述的处理器,其中所述处理器进一步包括RFLAGS寄存器,且所述核电路将通过更新所述RFLAGS寄存器中的位来更新所述处理器状态。
9.如权利要求1-7中任一项所述的处理器,其中所述处理器进一步包括型号特定寄存器(MSR),且所述核电路将通过在所述MSR中存储与所述解密数据中检测到的一个或多个模式及展示所述一个或多个模式的实体的数量有关的信息来更新所述处理器状态。
10.如权利要求1-7中任一项所述的处理器,其中所述处理器进一步包括型号特定寄存器(MSR),且所述核电路将通过在所述MSR中存储通过所述熵测试所确定的熵的至少一个量度来更新所述处理器状态。
11.如权利要求1-7中任一项所述的处理器,其中所述存储器分级结构包括1级(L1)高速缓存、2级(L2)高速缓存和3级(L3)高速缓存中的一个或多个。
12.一种方法,包括:
在处理器核接收来自存储器分级结构的加密数据;
对所述处理器核中的所述加密数据进行解密;
确定所解密数据是否具有低熵;以及
基于所述数据具有低熵的确定来更新一个或多个处理器寄存器值。
13.如权利要求12所述的方法,其中确定所解密数据是否具有低熵包括执行下列操作中的至少一个:
确定所解密数据中其值彼此相等的数据实体的数量;
确定所解密数据中其值彼此相等的相邻数据实体的数量;
确定所解密数据中其值等于来自特殊值集合的至少一个特殊值的数据实体的数量;以及
确定n个最高数据实体值频率的总和。
14. 如权利要求13所述的方法,其中确定所解密数据是否具有低熵进一步包括:
基于通过所述操作所确定的数量与相应阈值的比较来生成所述操作集合中的每个操作的布尔输出;以及
对所生成的布尔输出执行逻辑OR操作;
其中更新所述处理器寄存器值基于所述逻辑OR操作的输出。
15.如权利要求13所述的方法,其中确定所解密数据是否具有低熵进一步包括:
对每个操作基于通过所述操作所确定的数量来确定熵索引;
确定所确定的熵索引中的最大熵索引;以及
将所述最大熵索引与阈值进行比较;
其中更新所述处理器寄存器值基于所述比较。
16.如权利要求13所述的方法,其中所述数据实体包括字节、16位字、32位双字和半字其中之一。
17.如权利要求13所述的方法,其中确定n个最高数据实体值频率的所述总和包括执行下列操作中的一个或多个:
确定n个最高半字频率的总和;
确定n个最高的最高有效半字频率的总和;以及
确定n个最高的最低有效半字频率的总和。
18.如权利要求17所述的方法,其中n=2。
19.如权利要求12-18中的任一项所述的方法,其中更新一个或多个处理器寄存器值包括更新RFLAGS寄存器中的位。
20.如权利要求12-18中的任一项所述的方法,其中更新一个或多个处理器寄存器值包括在型号特定寄存器(MSR)中存储与所解密数据中检测到的一个或多个模式及展示所述一个或多个模式的实体的数量有关的信息。
21.如权利要求12-18中的任一项所述的方法,其中更新一个或多个处理器寄存器值包括在型号特定寄存器(MSR)中存储通过所述熵测试所确定的熵的至少一个量度。
22.一种存储指令的计算机可读介质,所述指令在由数据处理设备执行时将实现如权利要求12-21中的任一项所述的方法。
CN202010223760.4A 2019-06-29 2020-03-26 用于密码计算的隐式完整性 Pending CN112149147A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962868884P 2019-06-29 2019-06-29
US62/868884 2019-06-29
US16/709612 2019-12-10
US16/709,612 US11580234B2 (en) 2019-06-29 2019-12-10 Implicit integrity for cryptographic computing

Publications (1)

Publication Number Publication Date
CN112149147A true CN112149147A (zh) 2020-12-29

Family

ID=70159013

Family Applications (7)

Application Number Title Priority Date Filing Date
CN202010211440.7A Pending CN112149188A (zh) 2019-06-29 2020-03-24 支持加密计算的微处理器流水线电路
CN202010211610.1A Pending CN112149143A (zh) 2019-06-29 2020-03-24 用于存储器标记的低存储器开销堆管理
CN202010224565.3A Pending CN112149149A (zh) 2019-06-29 2020-03-26 基于指针的数据加密
CN202010224151.0A Pending CN112149148A (zh) 2019-06-29 2020-03-26 计算环境中存储器隔间的密码隔离
CN202010223442.8A Pending CN112149145A (zh) 2019-06-29 2020-03-26 基于不变指针的数据加密
CN202010223760.4A Pending CN112149147A (zh) 2019-06-29 2020-03-26 用于密码计算的隐式完整性
CN202010227190.6A Pending CN112149150A (zh) 2019-06-29 2020-03-27 用于密码计算的密钥管理

Family Applications Before (5)

Application Number Title Priority Date Filing Date
CN202010211440.7A Pending CN112149188A (zh) 2019-06-29 2020-03-24 支持加密计算的微处理器流水线电路
CN202010211610.1A Pending CN112149143A (zh) 2019-06-29 2020-03-24 用于存储器标记的低存储器开销堆管理
CN202010224565.3A Pending CN112149149A (zh) 2019-06-29 2020-03-26 基于指针的数据加密
CN202010224151.0A Pending CN112149148A (zh) 2019-06-29 2020-03-26 计算环境中存储器隔间的密码隔离
CN202010223442.8A Pending CN112149145A (zh) 2019-06-29 2020-03-26 基于不变指针的数据加密

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202010227190.6A Pending CN112149150A (zh) 2019-06-29 2020-03-27 用于密码计算的密钥管理

Country Status (3)

Country Link
US (11) US11580234B2 (zh)
EP (7) EP3757833B1 (zh)
CN (7) CN112149188A (zh)

Families Citing this family (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) * 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US11212097B2 (en) * 2015-05-17 2021-12-28 Gideon Samid Mixed unary cryptography
US11843597B2 (en) * 2016-05-18 2023-12-12 Vercrio, Inc. Automated scalable identity-proofing and authentication process
CA3086236A1 (en) * 2017-12-18 2019-06-27 Beijing Sankuai Online Technology Co., Ltd Encrypted storage of data
TW201935306A (zh) 2018-02-02 2019-09-01 美商多佛微系統公司 用於安全初始化的策略連結及/或載入之系統和方法
EP3788488A1 (en) 2018-04-30 2021-03-10 Dover Microsystems, Inc. Systems and methods for checking safety properties
US10860709B2 (en) * 2018-06-29 2020-12-08 Intel Corporation Encoded inline capabilities
US11106441B2 (en) * 2018-09-14 2021-08-31 Microsoft Technology Licensing, Llc Secure device-bound edge workload delivery
TW202022678A (zh) 2018-11-06 2020-06-16 美商多佛微系統公司 用於停滯主處理器的系統和方法
US11841956B2 (en) 2018-12-18 2023-12-12 Dover Microsystems, Inc. Systems and methods for data lifecycle protection
US11575504B2 (en) 2019-06-29 2023-02-07 Intel Corporation Cryptographic computing engine for memory load and store units of a microarchitecture pipeline
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US11250165B2 (en) 2019-12-20 2022-02-15 Intel Corporation Binding of cryptographic operations to context or speculative execution restrictions
US11403234B2 (en) 2019-06-29 2022-08-02 Intel Corporation Cryptographic computing using encrypted base addresses and used in multi-tenant environments
WO2021025490A1 (ko) * 2019-08-06 2021-02-11 주식회사 아이씨티케이 홀딩스 프로세서, 프로세서의 동작 방법 및 이를 포함한 전자 장치
US11386101B2 (en) * 2019-08-08 2022-07-12 Cisco Technology, Inc. Systems and methods for fuzzy search without full text
US11689475B2 (en) 2019-08-09 2023-06-27 Oracle International Corporation System and method for tag based resource limits or quotas in a cloud infrastructure environment
US11646975B2 (en) * 2019-08-09 2023-05-09 Oracle International Corporation System and method for compartment quotas in a cloud infrastructure environment
US20210049036A1 (en) * 2019-08-13 2021-02-18 Facebook Technologies, Llc Capability Space
US11303437B2 (en) 2019-08-19 2022-04-12 Red Hat, Inc. Proof-of-work key wrapping with key thresholding
US11436352B2 (en) 2019-08-19 2022-09-06 Red Hat, Inc. Proof-of-work key wrapping for restricting data execution based on device capabilities
US11271734B2 (en) * 2019-08-19 2022-03-08 Red Hat, Inc. Proof-of-work key wrapping for verifying device capabilities
US11316839B2 (en) 2019-08-19 2022-04-26 Red Hat, Inc. Proof-of-work key wrapping for temporally restricting data access
US11411728B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with individual key fragments
US11411938B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
US11424920B2 (en) 2019-08-19 2022-08-23 Red Hat, Inc. Proof-of-work key wrapping for cryptographically controlling data access
US11294715B2 (en) 2019-08-28 2022-04-05 Marvell Asia Pte, Ltd. System and method for queuing work within a virtualized scheduler based on in-unit accounting of in-unit entries
US11681806B2 (en) * 2019-10-15 2023-06-20 International Business Machines Corporation Protecting against out-of-bounds buffer references
US11263310B2 (en) * 2019-11-26 2022-03-01 Red Hat, Inc. Using a trusted execution environment for a proof-of-work key wrapping scheme that verifies remote device capabilities
US11520878B2 (en) * 2019-11-26 2022-12-06 Red Hat, Inc. Using a trusted execution environment for a proof-of-work key wrapping scheme that restricts execution based on device capabilities
US11176058B2 (en) * 2020-01-22 2021-11-16 Arm Limited Address decryption for memory storage
US11216366B2 (en) 2020-02-13 2022-01-04 Intel Corporation Security check systems and methods for memory allocations
WO2021162439A1 (en) * 2020-02-14 2021-08-19 Samsung Electronics Co., Ltd. Electronic device performing restoration on basis of comparison of constant value and control method thereof
US11249976B1 (en) 2020-02-18 2022-02-15 Wells Fargo Bank, N.A. Data structures for computationally efficient data promulgation among devices in decentralized networks
US11861364B2 (en) * 2020-03-24 2024-01-02 Microsoft Technology Licensing, Llc Circular shadow stack in audit mode
US11379579B2 (en) * 2020-03-24 2022-07-05 Microsoft Technology Licensing, Llc Shadow stack violation enforcement at module granularity
US11500981B2 (en) * 2020-03-24 2022-11-15 Microsoft Technology Licensing, Llc Shadow stack enforcement range for dynamic code
US11429580B2 (en) 2020-06-25 2022-08-30 Intel Corporation Collision-free hashing for accessing cryptographic computing metadata and for cache expansion
US11070621B1 (en) * 2020-07-21 2021-07-20 Cisco Technology, Inc. Reuse of execution environments while guaranteeing isolation in serverless computing
WO2022051189A1 (en) * 2020-09-01 2022-03-10 Intel Corporation Creating, using, and managing protected cryptography keys
US11494356B2 (en) 2020-09-23 2022-11-08 Salesforce.Com, Inc. Key permission distribution
US11816228B2 (en) * 2020-09-25 2023-11-14 Advanced Micro Devices, Inc. Metadata tweak for channel encryption differentiation
US11928472B2 (en) 2020-09-26 2024-03-12 Intel Corporation Branch prefetch mechanisms for mitigating frontend branch resteers
US11886332B2 (en) 2020-10-30 2024-01-30 Universitat Politecnica De Valencia Dynamic memory allocation methods and systems
CN112492580B (zh) * 2020-11-25 2023-08-18 北京小米移动软件有限公司 信息处理方法及装置、通信设备及存储介质
US11604740B2 (en) * 2020-12-01 2023-03-14 Capital One Services, Llc Obfuscating cryptographic material in memory
US11797713B2 (en) 2020-12-16 2023-10-24 International Business Machines Corporation Systems and methods for dynamic control of a secure mode of operation in a processor
US20220197822A1 (en) * 2020-12-23 2022-06-23 Intel Corporation 64-bit virtual addresses having metadata bit(s) and canonicality check that does not fail due to non-canonical values of metadata bit(s)
WO2022133860A1 (en) * 2020-12-24 2022-06-30 Intel Corporation Key management for crypto processors attached to other processing units
WO2022139850A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Cryptographic computing including enhanced cryptographic addresses
US11755500B2 (en) 2020-12-26 2023-09-12 Intel Corporation Cryptographic computing with disaggregated memory
US11669625B2 (en) 2020-12-26 2023-06-06 Intel Corporation Data type based cryptographic computing
US20210117341A1 (en) * 2020-12-26 2021-04-22 Intel Corporation Cache line slot level encryption based on context information
US20210120077A1 (en) * 2020-12-26 2021-04-22 Intel Corporation Multi-tenant isolated data regions for collaborative platform architectures
US11580035B2 (en) * 2020-12-26 2023-02-14 Intel Corporation Fine-grained stack protection using cryptographic computing
US11625337B2 (en) * 2020-12-26 2023-04-11 Intel Corporation Encoded pointer based data encryption
CN112738219B (zh) * 2020-12-28 2022-06-10 中国第一汽车股份有限公司 程序运行方法、装置、车辆及存储介质
EP4248323A1 (en) * 2021-02-12 2023-09-27 Huawei Technologies Co., Ltd. Low overhead active mitigation of security vulnerabilities by memory tagging
US20220261509A1 (en) * 2021-02-13 2022-08-18 Intel Corporation Region-based deterministic memory safety
US11223489B1 (en) 2021-02-23 2022-01-11 Garantir LLC Advanced security control implementation of proxied cryptographic keys
EP4060537A1 (en) * 2021-03-17 2022-09-21 Secure Thingz Limited A method and system for securely provisioning electronic devices
US11972126B2 (en) 2021-03-26 2024-04-30 Intel Corporation Data relocation for inline metadata
US11218317B1 (en) 2021-05-28 2022-01-04 Garantir LLC Secure enclave implementation of proxied cryptographic keys
US11418329B1 (en) 2021-05-28 2022-08-16 Garantir LLC Shared secret implementation of proxied cryptographic keys
US11868275B2 (en) 2021-06-24 2024-01-09 International Business Machines Corporation Encrypted data processing design including local buffers
US20230029331A1 (en) * 2021-07-26 2023-01-26 Microsoft Technology Licensing, Llc Dynamically allocatable physically addressed metadata storage
WO2023025370A1 (en) * 2021-08-24 2023-03-02 Huawei Technologies Co., Ltd. Control flow integrity
US11502827B1 (en) 2021-09-03 2022-11-15 Garantir LLC Exporting remote cryptographic keys
WO2023034586A1 (en) * 2021-09-03 2023-03-09 Dover Microsystems, Inc. Systems and methods for on-demand loading of metadata
JP2023039697A (ja) 2021-09-09 2023-03-22 キオクシア株式会社 メモリシステム
US11372969B1 (en) * 2021-09-17 2022-06-28 Polyverse Corporation Randomized canary and shadow stack for JIT-ROP defense
US11954045B2 (en) 2021-09-24 2024-04-09 Intel Corporation Object and cacheline granularity cryptographic memory integrity
US20220100911A1 (en) * 2021-12-10 2022-03-31 Intel Corporation Cryptographic computing with legacy peripheral devices
US20220114285A1 (en) * 2021-12-22 2022-04-14 Intel Corporation Data oblivious cryptographic computing
EP4207679A1 (en) * 2021-12-31 2023-07-05 G-Innovations Viet Nam Joint Stock Company Method, mobile equipment, and system for keystream protection
CN114357488B (zh) * 2022-01-04 2022-09-16 深圳市智百威科技发展有限公司 一种数据加密系统及方法
US20230251782A1 (en) * 2022-02-10 2023-08-10 Macronix International Co., Ltd. Memory device and associated control method
WO2023164167A2 (en) * 2022-02-25 2023-08-31 Cryptography Research, Inc. Techniques and devices for configurable memory encryption and authentication
US20220179949A1 (en) * 2022-02-28 2022-06-09 Intel Corporation Compiler-directed selection of objects for capability protection
US20220207133A1 (en) 2022-03-16 2022-06-30 Intel Corporation Cryptographic enforcement of borrow checking across groups of pointers
US11836094B2 (en) * 2022-03-21 2023-12-05 Intel Corporation Cryptographic data objects page conversion
US11789737B2 (en) 2022-03-24 2023-10-17 Intel Corporation Capability-based stack protection for software fault isolation
US20220222183A1 (en) * 2022-03-25 2022-07-14 Intel Corporation Tagless implicit integrity with multi-perspective pattern search
CN114968088B (zh) * 2022-04-08 2023-09-05 中移互联网有限公司 文件存储方法、文件读取方法及装置
WO2023212149A1 (en) * 2022-04-28 2023-11-02 Dover Microsystems, Inc. Systems and methods for enforcing encoded policies
US11949593B2 (en) * 2022-05-10 2024-04-02 Cisco Technology, Inc. Stateless address translation at an autonomous system (AS) boundary for host privacy
TWI816456B (zh) * 2022-06-30 2023-09-21 新唐科技股份有限公司 密碼裝置及其密碼方法
EP4325387A1 (de) * 2022-08-19 2024-02-21 Steen Harbach AG Verfahren zum bereitstellen eines digitalen schlüssels
US20240104013A1 (en) * 2022-09-28 2024-03-28 Intel Corporation Deterministic adjacent overflow detection for slotted memory pointers
CN117667423A (zh) * 2023-12-21 2024-03-08 摩尔线程智能科技(北京)有限责任公司 编解码器访问存储设备的方法、系统、装置、设备和介质

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570989B1 (en) 1998-04-27 2003-05-27 Matsushita Electric Industrial Co., Ltd. Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security
KR100889465B1 (ko) 2000-07-04 2009-03-20 코닌클리케 필립스 일렉트로닉스 엔.브이. 대칭-키 암호들을 위한 치환-박스
US7684565B2 (en) 2001-01-16 2010-03-23 General Instrument Corporation System for securely communicating information packets
JP4199937B2 (ja) 2001-03-06 2008-12-24 株式会社日立製作所 耐タンパー暗号処理方法
US7043017B2 (en) 2001-09-13 2006-05-09 Freescale Semiconductor, Inc. Key stream cipher device
US6792551B2 (en) * 2001-11-26 2004-09-14 Intel Corporation Method and apparatus for enabling a self suspend mode for a processor
US6694401B2 (en) * 2001-12-28 2004-02-17 Intel Corporation Method and apparatus for executing real-mode interrupts from within extended SMRAM handler
US20030149869A1 (en) 2002-02-01 2003-08-07 Paul Gleichauf Method and system for securely storing and trasmitting data by applying a one-time pad
US7793286B2 (en) * 2002-12-19 2010-09-07 Intel Corporation Methods and systems to manage machine state in virtual machine operations
US7225298B2 (en) 2003-04-11 2007-05-29 Sun Microsystems, Inc. Multi-node computer system in which networks in different nodes implement different conveyance modes
WO2004092968A2 (en) 2003-04-11 2004-10-28 Sun Microsystems, Inc. Multi-node system with global access states
US20070152854A1 (en) * 2005-12-29 2007-07-05 Drew Copley Forgery detection using entropy modeling
JP2007235323A (ja) 2006-02-28 2007-09-13 Toshiba Corp 高度機密情報の保存/記録方法、高度機密情報を利用する再生装置および高度機密情報を格納するメモリ
EP1870829B1 (en) 2006-06-23 2014-12-03 Microsoft Corporation Securing software by enforcing data flow integrity
US20080080708A1 (en) 2006-09-29 2008-04-03 Mcalister Donald Kent Key wrapping system and method using encryption
US8155308B1 (en) 2006-10-10 2012-04-10 Marvell International Ltd. Advanced encryption system hardware architecture
US7907723B2 (en) 2006-10-11 2011-03-15 Frank Rubin Device, system and method for fast secure message encryption without key distribution
EP2080314A2 (en) 2006-10-25 2009-07-22 Spyrus, Inc. Method and system for deploying advanced cryptographic algorithms
US7761676B2 (en) 2006-12-12 2010-07-20 Intel Corporation Protecting memory by containing pointer accesses
US20080263117A1 (en) * 2007-04-23 2008-10-23 Gregory Gordon Rose Initial seed management for pseudorandom number generator
US8085934B1 (en) 2007-07-11 2011-12-27 Marvell International Ltd. Reverse cryptographic key expansion
US9424315B2 (en) 2007-08-27 2016-08-23 Teradata Us, Inc. Methods and systems for run-time scheduling database operations that are executed in hardware
JP5044848B2 (ja) 2007-12-04 2012-10-10 剣 竜沢 Pi++ストリーム暗号の暗号方法および復号方法、並びにパイ・データに基づく暗号算法及び復号化算法
EP2073430B1 (en) 2007-12-21 2013-07-24 Research In Motion Limited Methods and systems for secure channel initialization transaction security based on a low entropy shared secret
US20090172393A1 (en) 2007-12-31 2009-07-02 Haluk Kent Tanik Method And System For Transferring Data And Instructions Through A Host File System
US8879725B2 (en) 2008-02-29 2014-11-04 Intel Corporation Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
US8675868B1 (en) 2008-07-01 2014-03-18 Maxim Integrated Products, Inc. Encrypting an address-dependent value along with code to prevent execution or use of moved code
US9372718B2 (en) * 2008-07-28 2016-06-21 Advanced Micro Devices, Inc. Virtualizable advanced synchronization facility
US8156385B2 (en) 2009-10-28 2012-04-10 International Business Machines Corporation Systems and methods for backward-compatible constant-time exception-protection memory
US8762343B2 (en) 2009-12-29 2014-06-24 Cleversafe, Inc. Dispersed storage of software
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US8639945B2 (en) 2010-05-25 2014-01-28 Via Technologies, Inc. Branch and switch key instruction in a microprocessor that fetches and decrypts encrypted instructions
US10244239B2 (en) * 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
EP2506487B1 (en) 2011-03-30 2013-10-23 Nagravision S.A. Method of encryption with bidirectional difference propagation
US9201652B2 (en) 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
EP2653992A1 (en) 2012-04-17 2013-10-23 Itron, Inc. Microcontroller configured for external memory decryption
US9904788B2 (en) 2012-08-08 2018-02-27 Amazon Technologies, Inc. Redundant key management
US9037872B2 (en) 2012-12-17 2015-05-19 Advanced Micro Devices, Inc. Hardware based return pointer encryption
KR101795771B1 (ko) 2013-03-18 2017-11-09 한국전자통신연구원 정수 기반 준동형 암호 기법에서 압축 암복호화를 제공하는 시스템 및 방법
US9053216B1 (en) * 2013-08-09 2015-06-09 Datto, Inc. CPU register assisted virtual machine screenshot capture timing apparatuses, methods and systems
US10700856B2 (en) 2013-11-19 2020-06-30 Network-1 Technologies, Inc. Key derivation for a module using an embedded universal integrated circuit card
US9213653B2 (en) 2013-12-05 2015-12-15 Intel Corporation Memory integrity
KR101516574B1 (ko) 2014-02-21 2015-05-04 한국전자통신연구원 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법
US9703733B2 (en) 2014-06-27 2017-07-11 Intel Corporation Instructions and logic to interrupt and resume paging in a secure enclave page cache
KR101593169B1 (ko) 2014-08-20 2016-02-15 한국전자통신연구원 페이스텔 구조의 가변길이 블록암호 장치 및 방법
US9436847B2 (en) 2014-09-26 2016-09-06 Intel Corporation Cryptographic pointer address encoding
US9514285B2 (en) 2014-09-26 2016-12-06 Intel Corporation Creating stack position dependent cryptographic return address to mitigate return oriented programming attacks
US9830162B2 (en) 2014-12-15 2017-11-28 Intel Corporation Technologies for indirect branch target security
US9852301B2 (en) 2014-12-24 2017-12-26 Intel Corporation Creating secure channels between a protected execution environment and fixed-function endpoints
US9792229B2 (en) 2015-03-27 2017-10-17 Intel Corporation Protecting a memory
IN2015DE01753A (zh) 2015-06-11 2015-08-28 Pradeep Varma
US9893881B2 (en) 2015-06-29 2018-02-13 Intel Corporation Efficient sharing of hardware encryption pipeline for multiple security solutions
US10181946B2 (en) 2015-07-20 2019-01-15 Intel Corporation Cryptographic protection of I/O data for DMA capable I/O controllers
US10235176B2 (en) 2015-12-17 2019-03-19 The Charles Stark Draper Laboratory, Inc. Techniques for metadata processing
US9990249B2 (en) 2015-12-24 2018-06-05 Intel Corporation Memory integrity with error detection and correction
GB2547249B (en) 2016-02-12 2019-09-11 Advanced Risc Mach Ltd An apparatus and method for generating signed bounded pointers
US10585809B2 (en) 2016-04-01 2020-03-10 Intel Corporation Convolutional memory integrity
RU2634173C1 (ru) 2016-06-24 2017-10-24 Акционерное общество "Лаборатория Касперского" Система и способ обнаружения приложения удалённого администрирования
US11989332B2 (en) 2016-08-11 2024-05-21 Intel Corporation Secure public cloud with protected guest-verified host control
US20180082057A1 (en) 2016-09-22 2018-03-22 Intel Corporation Access control
US10261854B2 (en) 2016-09-30 2019-04-16 Intel Corporation Memory integrity violation analysis method and apparatus
US20180095906A1 (en) 2016-09-30 2018-04-05 Intel Corporation Hardware-based shared data coherency
US10235304B2 (en) 2016-10-01 2019-03-19 Intel Corporation Multi-crypto-color-group VM/enclave memory integrity method and apparatus
US11005650B2 (en) 2016-10-19 2021-05-11 Stripe, Inc. Systems and methods for data management and the use of salts and keys in data encryption/decryption
US10387305B2 (en) 2016-12-23 2019-08-20 Intel Corporation Techniques for compression memory coloring
US10469254B2 (en) 2017-03-29 2019-11-05 Intuit Inc. Method and system for hierarchical cryptographic key management
US10536266B2 (en) * 2017-05-02 2020-01-14 Seagate Technology Llc Cryptographically securing entropy for later use
US10877806B2 (en) 2017-06-14 2020-12-29 Intel Corporation Method and apparatus for securely binding a first processor to a second processor
US10657071B2 (en) 2017-09-25 2020-05-19 Intel Corporation System, apparatus and method for page granular, software controlled multiple key memory encryption
US10776525B2 (en) 2017-09-29 2020-09-15 Intel Corporation Multi-tenant cryptographic memory isolation
US10706164B2 (en) 2017-09-29 2020-07-07 Intel Corporation Crypto-enforced capabilities for isolation
US10769272B2 (en) 2017-09-29 2020-09-08 Intel Corporation Technology to protect virtual machines from malicious virtual machine managers
DE102018125786A1 (de) * 2017-11-17 2019-05-23 Intel Corporation Verschlüsselte Systemspeicherverwaltung
US11082432B2 (en) 2017-12-05 2021-08-03 Intel Corporation Methods and apparatus to support reliable digital communications without integrity metadata
US10929527B2 (en) 2017-12-20 2021-02-23 Intel Corporation Methods and arrangements for implicit integrity
CN110490008B (zh) 2018-05-14 2021-08-10 英韧科技(上海)有限公司 安全装置及安全芯片
IT201800005506A1 (it) 2018-05-18 2019-11-18 Sistema di elaborazione, relativo circuito integrato e procedimento
US20210004470A1 (en) 2018-05-21 2021-01-07 Google Llc Automatic Generation Of Patches For Security Violations
US10871983B2 (en) 2018-05-31 2020-12-22 Intel Corporation Process-based multi-key total memory encryption
US10785028B2 (en) 2018-06-29 2020-09-22 Intel Corporation Protection of keys and sensitive data from attack within microprocessor architecture
US10860709B2 (en) 2018-06-29 2020-12-08 Intel Corporation Encoded inline capabilities
US11258861B2 (en) * 2018-06-29 2022-02-22 Intel Corporation Secure reporting of platform state information to a remote server
US10922439B2 (en) 2018-06-29 2021-02-16 Intel Corporation Technologies for verifying memory integrity across multiple memory regions
US11630920B2 (en) 2018-06-29 2023-04-18 Intel Corporation Memory tagging for side-channel defense, memory safety, and sandboxing
US11188639B2 (en) 2018-07-19 2021-11-30 Intel Corporation System, method and apparatus for automatic program compartmentalization
US11126733B2 (en) 2018-08-27 2021-09-21 Intel Corporation System, apparatus and method for configurable trusted input/output access from authorized software
US11991273B2 (en) 2018-09-04 2024-05-21 International Business Machines Corporation Storage device key management for encrypted host data
US10802910B2 (en) * 2018-09-17 2020-10-13 Intel Corporation System for identifying and correcting data errors
US11288213B2 (en) 2019-03-29 2022-03-29 Intel Corporation Memory protection with hidden inline metadata
US11398899B2 (en) 2019-05-28 2022-07-26 Shanghai Zhaoxin Semiconductor Co., Ltd. Data processing device and data processing method
US11295025B2 (en) 2019-05-31 2022-04-05 Nxp B.V Probabilistic memory safety using cryptography
US20190319781A1 (en) 2019-06-27 2019-10-17 Intel Corporation Deterministic Encryption Key Rotation
US11580234B2 (en) 2019-06-29 2023-02-14 Intel Corporation Implicit integrity for cryptographic computing
US20200145187A1 (en) 2019-12-20 2020-05-07 Intel Corporation Bit-length parameterizable cipher
US11250165B2 (en) 2019-12-20 2022-02-15 Intel Corporation Binding of cryptographic operations to context or speculative execution restrictions
US20220382885A1 (en) 2019-06-29 2022-12-01 David M. Durham Cryptographic computing using encrypted base addresses and used in multi-tenant environments
US20200257827A1 (en) 2019-06-29 2020-08-13 Intel Corporation Memory write for ownership access in a core
US11575504B2 (en) 2019-06-29 2023-02-07 Intel Corporation Cryptographic computing engine for memory load and store units of a microarchitecture pipeline
US11403234B2 (en) 2019-06-29 2022-08-02 Intel Corporation Cryptographic computing using encrypted base addresses and used in multi-tenant environments
US11411938B2 (en) 2019-08-19 2022-08-09 Red Hat, Inc. Proof-of-work key wrapping with integrated key fragments
US11784786B2 (en) 2020-08-14 2023-10-10 Intel Corporation Mitigating security vulnerabilities with memory allocation markers in cryptographic computing systems
US11580035B2 (en) 2020-12-26 2023-02-14 Intel Corporation Fine-grained stack protection using cryptographic computing
US11669625B2 (en) 2020-12-26 2023-06-06 Intel Corporation Data type based cryptographic computing
US11755500B2 (en) 2020-12-26 2023-09-12 Intel Corporation Cryptographic computing with disaggregated memory
US11625337B2 (en) 2020-12-26 2023-04-11 Intel Corporation Encoded pointer based data encryption

Also Published As

Publication number Publication date
US11354423B2 (en) 2022-06-07
US11416624B2 (en) 2022-08-16
US11829488B2 (en) 2023-11-28
CN112149149A (zh) 2020-12-29
EP3757855A1 (en) 2020-12-30
US20200125742A1 (en) 2020-04-23
US11768946B2 (en) 2023-09-26
US20220300626A1 (en) 2022-09-22
EP3757833A1 (en) 2020-12-30
CN112149145A (zh) 2020-12-29
US11308225B2 (en) 2022-04-19
EP3757833B1 (en) 2022-12-07
EP3757850A1 (en) 2020-12-30
US11620391B2 (en) 2023-04-04
EP3757854A1 (en) 2020-12-30
EP3757852B1 (en) 2022-11-02
CN112149143A (zh) 2020-12-29
CN112149148A (zh) 2020-12-29
US20200117810A1 (en) 2020-04-16
US20200125501A1 (en) 2020-04-23
EP3757850B1 (en) 2023-05-03
US20200125502A1 (en) 2020-04-23
US11580234B2 (en) 2023-02-14
US20200145199A1 (en) 2020-05-07
US20220138329A1 (en) 2022-05-05
EP3757851A1 (en) 2020-12-30
US20240061943A1 (en) 2024-02-22
US20200159676A1 (en) 2020-05-21
CN112149188A (zh) 2020-12-29
EP3757854B1 (en) 2023-07-12
US11321469B2 (en) 2022-05-03
CN112149150A (zh) 2020-12-29
US20200125769A1 (en) 2020-04-23
EP3757856A1 (en) 2020-12-30
US20200125770A1 (en) 2020-04-23
EP3757851B1 (en) 2023-05-24
EP3757852A1 (en) 2020-12-30
EP3757856B1 (en) 2023-06-14

Similar Documents

Publication Publication Date Title
CN112149147A (zh) 用于密码计算的隐式完整性
CN107851170B (zh) 支持用于存储器地址范围的可配置安全级别
US11784786B2 (en) Mitigating security vulnerabilities with memory allocation markers in cryptographic computing systems
US11392703B2 (en) Systems, apparatuses, and methods for platform security
US20200257827A1 (en) Memory write for ownership access in a core
CN113260994A (zh) 针对对计算机系统的推测性边信道分析的防御
US11243893B2 (en) Preventing unauthorized access to encrypted memory
CN114692131A (zh) 带有分解式存储器的密码式计算
US10289554B2 (en) Supporting fault information delivery
TW201730770A (zh) 用於記憶體損毀偵測的硬體設備和方法
US20180097839A1 (en) Systems, apparatuses, and methods for platform security
CN112149125A (zh) 使用与高速缓存行有关的存储器所有权位防止信任域访问
US20140223129A1 (en) Key-based data security management
CN116260606A (zh) 与遗留外围设备的密态计算
CN117546168A (zh) 用于瞬态侧信道安全的使用上下文信息的密码计算
CN114490444A (zh) 用于与缓存数据相对应的元数据的选择性存储的隔离存储器
JP7497806B2 (ja) コンピュータシステムの投機的サイドチャネル分析に対する防御
CN116340963A (zh) 用于密态计算的瞬时侧信道感知架构
CN116805083A (zh) 具有多视角模式搜索的无标签隐式完整性

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination