CN112149147A - 用于密码计算的隐式完整性 - Google Patents
用于密码计算的隐式完整性 Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 63
- 238000012360 testing method Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 72
- 238000012545 processing Methods 0.000 claims description 13
- 230000001747 exhibiting effect Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 description 50
- 238000010586 diagram Methods 0.000 description 16
- 238000004364 calculation method Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000004075 alteration Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 101100203322 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SKS1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0207—Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0646—Configuration or reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/54—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6227—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting 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/79—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30178—Runtime instruction translation, e.g. macros of compressed or encrypted instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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/0836—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/402—Encrypted data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2107—File encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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),则我们将此表示为:
与模式类型π和实体数量E关联的熵索引值E则能够定义为x ∈ p(π, N)的概率的负对数,其中假定x是随机的(例如,x从随机预言的输出来得到):
按照上述示例定义,在随机数据值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通过下式给出:
类似地,与由展示彼此相等的m个字的n个16位字所组成的数据单元关联的示例熵索引E通过下式给出:
对于对手要成功攻击字节或字相等模式检测器,对手将需要产生展示m个或更多相等字节/字值的被破坏明文数据。在随机数据中,这类相等以这样的概率来观测,该概率被计算为与n个元素、m个冲突和256个(对于字节)或65536个(对于字)生日关联的生日冲突概率。这种概率能够按照许多方式来被近似,例如按照下式来近似:
这些生日冲突概率略高于与上面给出的熵索引值关联的概率值2-E。这是因为,这些生日冲突概率包括其中数据单元中存在多于m个值相等的全部事件。
用于相邻字节相等模式校验的熵索引
下列计算可用来确定用于相邻字节相等模式校验的熵索引(例如,由图4的操作424基于操作404的模式校验而确定的熵索引)。计算彼此相等并且占用连续索引位置的字节的数量的模式校验也是重要的。这类校验不仅对包含代码和数据结构的数据单元而且还对未初始化的存储器条目(其中单个任意字节值可重复)可以是成功的。与由展示相邻且彼此相等的m个字节的n个字节所组成的数据单元关联的示例熵索引E通过下式给出:
对于对手要成功攻击相邻字节相等模式检测器,对手将需要产生展示m个或更多相邻的相等字节的被破坏明文数据。在随机数据中,这能够以如下概率发生:
由于与以上所述相同的原因,所述概率略高于与熵索引E关联的值2-E。
用于对取特殊值的字节进行计数的模式校验的熵索引
下列计算可用来确定用于对多个取特殊值的字节进行计数的模式校验的熵索引(例如,由图4的操作426基于操作406的模式校验而确定的熵索引)。对取来自集合V的特殊值的字节的最大数量进行计数的模式校验能够成功地表征代码、数据结构和未初始化的存储器条目。在一个实施例中,集合V由两个特殊值组成:0x00和0xFF。这类值在存储器高速缓存行数据中频繁地被遇到。与由其中m个字节取来自基数|V|的集合V的值的n个字节所组成的数据单元关联的示例熵索引E通过下式给出:
对于对手要成功攻击这个模式检测器,对手将需要产生展示具有特殊值的m个或更多字节的被破坏明文数据。在真正随机数据中,这能够以如下概率发生:
用于计算两个最高双字频率的总和的模式校验的熵索引
下列计算可用来确定用于计算两个最高双字频率的总和的模式校验的熵索引(例如,由于图4的操作430基于操作410的模式校验而确定的熵索引)。计算两个最高双字频率的总和的模式校验可以可适用于存储器指针表。在一些情况下,可存在不呈现有效字节或字重复但是包含几对(1-2对)相同32位或64位序列的若干高速缓存行。这些高速缓存行可包含存储器指针表。具有在随机高速缓存行中出现的两对相同32位值是稀少事件,并且以概率2-49.84发生。与由n个双字(其中两个最高双字频率的总和等于m)组成的数据单元关联的示例熵索引E通过下式给出:
对于对手要成功攻击这个模式检测器,对手将需要产生展示如下的双字的被破坏明文数据,对于所述双字其中两个最高频率的总和大于或等于m。在真正随机数据中,这以如下概率发生:
如同全部其他情况那样,这个概率是相似的,但是略高于值2-E,因为它包括其中两个最高双字频率的总和超过m的全部事件。
用于基于半字的模式校验的熵索引的计算
下列计算可用来确定用于基于半字的模式校验的熵索引(例如,由图4的操作432、434、436分别基于操作412、414、416的模式校验而确定的熵索引)。基于半字的模式可适用于作为“半二进制”的数据单元。半二进制数据单元可指的是没有以字或字节粒度呈现模式,但具有足够低的熵以便支持经由隐式完整性的破坏检测的数据。这类数据的一个示例是媒体数据,例如图像、视频帧等。这类数据展示半字重复。以下所述的模式校验计算数据单元中的两个最高半字频率的总和。在某些实施例中能够实现三个变体:一个变体使用数据单元的全部半字来计算两个最高半字频率的总和;第二变体仅使用来自数据单元的字节的最高有效半字来计算两个最高半字频率的总和;以及第三变体仅使用来自数据单元的字节的最低有效半字来计算两个最高半字频率的总和。
与由n个半字(其中两个最高半字频率的总和等于m)组成的数据单元关联的示例熵索引E通过下式给出:
对于对手要成功攻击这个模式检测器,对手将需要产生展示如下的半字的被破坏明文数据,对于所述半字其中两个最高频率的总和大于或等于m。在随机数据中,这以如下概率发生:
图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中的任一项所述的方法。
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)
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)
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 |
-
2019
- 2019-12-10 US US16/709,612 patent/US11580234B2/en active Active
- 2019-12-20 US US16/724,026 patent/US11620391B2/en active Active
- 2019-12-20 US US16/722,707 patent/US11416624B2/en active Active
- 2019-12-20 US US16/724,105 patent/US11321469B2/en active Active
- 2019-12-20 US US16/722,342 patent/US11829488B2/en active Active
- 2019-12-20 US US16/723,927 patent/US11308225B2/en active Active
- 2019-12-20 US US16/723,871 patent/US11768946B2/en active Active
- 2019-12-20 US US16/723,977 patent/US11354423B2/en active Active
-
2020
- 2020-03-13 EP EP20163095.1A patent/EP3757833B1/en active Active
- 2020-03-17 EP EP20163534.9A patent/EP3757850B1/en active Active
- 2020-03-17 EP EP20163661.0A patent/EP3757852B1/en active Active
- 2020-03-17 EP EP20163546.3A patent/EP3757851B1/en active Active
- 2020-03-18 EP EP20163907.7A patent/EP3757854B1/en active Active
- 2020-03-19 EP EP20164326.9A patent/EP3757855A1/en active Pending
- 2020-03-20 EP EP20164636.1A patent/EP3757856B1/en active Active
- 2020-03-24 CN CN202010211440.7A patent/CN112149188A/zh active Pending
- 2020-03-24 CN CN202010211610.1A patent/CN112149143A/zh active Pending
- 2020-03-26 CN CN202010224565.3A patent/CN112149149A/zh active Pending
- 2020-03-26 CN CN202010224151.0A patent/CN112149148A/zh active Pending
- 2020-03-26 CN CN202010223442.8A patent/CN112149145A/zh active Pending
- 2020-03-26 CN CN202010223760.4A patent/CN112149147A/zh active Pending
- 2020-03-27 CN CN202010227190.6A patent/CN112149150A/zh active Pending
-
2022
- 2022-01-14 US US17/576,533 patent/US20220138329A1/en not_active Abandoned
- 2022-06-06 US US17/833,515 patent/US20220300626A1/en active Pending
-
2023
- 2023-10-31 US US18/499,133 patent/US20240061943A1/en active Pending
Also Published As
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 |