US20130024637A1 - Memory access unlock - Google Patents
Memory access unlock Download PDFInfo
- Publication number
- US20130024637A1 US20130024637A1 US13/459,523 US201213459523A US2013024637A1 US 20130024637 A1 US20130024637 A1 US 20130024637A1 US 201213459523 A US201213459523 A US 201213459523A US 2013024637 A1 US2013024637 A1 US 2013024637A1
- Authority
- US
- United States
- Prior art keywords
- memory
- memory location
- access
- controller
- processor
- 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.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1642—Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- 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/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
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- 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/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- 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
- 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/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/74—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 operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- 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/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic 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
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31719—Security aspects, e.g. preventing unauthorised access during test
-
- 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/2143—Clearing memory, e.g. to prevent the data from being stolen
-
- 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
Definitions
- Memories are used within computing devices to store data.
- data are stored and accessed within computing devices such as personal computers, notebook and laptop computers, smartphones, personal digital assistants (“PDAs”), tablet and slate devices, personal entertainment devices such as MP3 players and media players, set-top boxes, gaming consoles, appliances, embedded devices, smart meters, and other computing devices at memories such as random-access memories (“RAMs”).
- PDAs personal digital assistants
- RAMs random-access memories
- data stored at RAMs or other memories of a computing device are accessed by a processor and some operation is performed by the processor based on the data.
- an encryption key may be stored at a memory and a processor may access the encryption key to encrypt or decrypt a document.
- FIGS. 1-4 are example schematic block diagrams of computing devices including memory control modules and a selector, according to one or more implementations.
- FIG. 5 is an example illustration of address decode logic, memory cell and access lock, according to an implementation.
- FIG. 6 is an example illustration of address decode logic, memory cell and access lock, according to an implementation.
- FIG. 7 is an example illustration of a memory having a plurality of memory map spaces, according to an implementation.
- FIG. 8 is an example illustration of address decode logic, memory cell and access lock, according to an implementation.
- FIG. 9 is an example flowchart of a process to unlock access to memory based on an operation at a control register, according to an implementation.
- FIG. 10 is an example flowchart of a process to unlock access to memory based on an operation at a control register, according to an implementation.
- steps may be taken to protect one or more keys stored in memory.
- steps may be taken to protect one or more keys stored in memory.
- data stored in a memory region which holds the key(s) may be accidentally transmitted out of a computing device, for example, via an Ethernet port, and thus, may completely invalidate all of the system security features.
- an I/O port for example, Ethernet port
- a source address of the data and a length are configured into the hardware of the Ethernet port on the microprocessor, and the port is instructed to transmit. If either the address is wrong and points to the key storage memory, or nearby instead, or if the length is too long and the transmit packet is adjacent to the keys in memory, then the key(s) may be transmitted out of the computing device.
- a memory access lock which protects memory access.
- Software may manipulate a control register, and/or its contents, via an operation to the control register, to unlock access to memory or registers for read and/or write access.
- This access may be limited access, for example, limited to one read or write access or multiple read and/or write accesses.
- a memory location for example, a control register, or unlock register, that is located in a different memory map space than the memory location of the memory or registers being protected may be used.
- control register as used herein may be interpreted as a memory location.
- Unlocked access may be automatically re-locked following the access.
- a timeout may also be applied to automatically re-lock access to the memory.
- a lock When used, for example, in a microprocessor, a lock protects memory or register accesses which may be unlocked by software in accordance with expected operation of the software, but is difficult to defeat by such things as malware, software bugs and DMA-like hardware including DMA, ethernet controllers, etc.
- Examples provided herein describe a memory access lock with respect to a secure key stored in memory.
- the memory access lock may be implemented for any type of data stored in memory.
- unlocking memory means providing access to memory which was initially locked, i.e., access to the memory is not permitted.
- FIGS. 1-4 are schematic block diagrams of computing devices including a memory access lock, according to one or more implementations. Although various implementations of computing devices and memory control modules are illustrated at FIGS. 1-4 , these examples are not exhaustive and memory access locks, systems, and processes discussed herein are applicable to other computing devices or systems not illustrated in FIGS. 1-4 .
- FIG. 1 illustrates a computing device that includes a memory control module with an integrated memory.
- Computing device 100 includes processor 110 , communication interface 120 , memory 130 , and memory control module 140 .
- Processor 110 is any of a variety of processors.
- processor 110 may be a general-purpose processor or an application-specific processor implemented as a hardware module and/or a software module hosted at a hardware module.
- a hardware module may be, for example, a microprocessor, a microcontroller, an application-specific integrated circuit (“ASIC”), a programmable logic device (“PLD”) such as a field programmable gate array (“FPGA”), and/or other electronic circuits that perform operations.
- ASIC application-specific integrated circuit
- PLD programmable logic device
- FPGA field programmable gate array
- a software module may be, for example, instructions, commands, and/or codes stored at a memory and executed at another processor.
- Such a software module may be defined using one or more programming languages such as JavaTM, C++, C, an assembly language, a hardware description language, and/or another suitable programming language.
- a processor may be a virtual machine hosted at a computer server including a microprocessor and a memory.
- processor 110 may include multiple processors.
- processor 110 may be a microprocessor including multiple processing engines (e.g., computation, algorithmic or thread cores).
- processor 110 may be a computing device including multiple processors with a shared clock, memory bus, input/output bus, and/or other shared resources.
- processor 110 may be a distributed processor.
- processor 110 may include multiple computing devices, each including a processor, in communication one with another via a communications link such as a computer network.
- Processor 110 is operatively coupled to communications interface 120 , memory 130 , and memory control module 140 .
- memory 130 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed by processor 110 during operation of computing device 100 .
- memory 130 includes instructions that define operating system 131 , device drivers 132 , and applications 133 (e.g., software application programs).
- operating system 131 , device drivers 132 , applications 133 , and other software modules stored as instructions (not shown) at memory 130 and executed at processor 110 are hosted at computing device 100 .
- Applications 133 may include, for example, an application software module, a hypervisor, a virtual machine module, or an environment such as a runtime environment or virtual machine instance.
- applications 133 may include a cryptographic service such as a file encryption application.
- memory 130 is a volatile memory and computing device 100 includes a non-volatile (or non-transient) memory or processor-readable medium (not shown) such as a hard disk drive (“HDD”), a solid-state drive (“SSD”), a FLASH drive, or is in communication with a data storage service (e.g., via communications interface 120 and a communications link such as a communications network) at which software applications (e.g., computer codes or instructions that implement software applications when executed at a processor), data, or combinations thereof may be stored and accessed by processor 110 . Such software applications, data, or combinations thereof may be moved or copied to memory 130 by processor 110 and accessed by processor 110 at memory 130 during operation of computing device 100 .
- a non-volatile (or non-transient) memory or processor-readable medium such as a hard disk drive (“HDD”), a solid-state drive (“SSD”), a FLASH drive
- a data storage service e.g., via communications interface 120 and a communications link such as a communications network
- processor-readable media include, but are not limited to: magnetic storage media such as a hard disk, a floppy disk, and/or magnetic tape; optical storage media such as a compact disc (“CD”), a digital video disc (“DVDs”), a compact disc read-only memory (“CD-ROM”), and/or a holographic device; magneto-optical storage media; non-volatile memory such as read-only memory (“ROM”), programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), electronically erasable read-only memory (“EEPROM”), and/or FLASH memory; and random-access memory (“RAM”).
- magnetic storage media such as a hard disk, a floppy disk, and/or magnetic tape
- optical storage media such as a compact disc (“CD”), a digital video disc (“DVDs”), a compact disc read-only memory (“CD-ROM”), and/or a holographic device
- magneto-optical storage media non-volatile memory such as
- Examples of computer code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, and files containing higher-level instructions that are executed by a computer using an interpreter.
- machine instructions such as produced by a compiler
- files containing higher-level instructions that are executed by a computer using an interpreter For example, an implementation may be implemented using JavaTM, C++, or other object-oriented programming language and development tools.
- Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.
- Communications interface 120 is an interface accessible to processor 110 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link.
- communications interface 120 may receive data from processor 110 and transmit symbols representing those data via a communications link.
- communications interface 120 may receive symbols from other communications interfaces via a communications link and send data represented by those symbols to processor 110 .
- communications interface 120 may be a telephone network interface, a twisted-pair network interface, a coaxial network interface, a fiber-optic network interface, a wireless network interface such as a wireless local area network (“WLAN”) or a cellular network, or some other network or communications interface.
- WLAN wireless local area network
- Memory control module 140 includes memory controller 144 and memory 141 at which key 145 is stored.
- Memory controller 144 includes circuitry, software hosted at that circuitry, or a combination thereof to provide an access lock 150 for key 145 in memory 141 , as discussed more fully below. Access to key 145 may be unlocked based on an operation to a control register, or unlock register, in memory.
- Key 145 is a data set such as a cryptographic key that is accessed by processor 110 for use within one or more of applications 133 such as a cryptographic service hosted at computing device 100 .
- processor 110 may request key 145 at memory control module 140 , the memory control module 140 providing access to key 145 in accordance with lock 150 , use key 145 to perform a cryptographic process based on instructions or codes stored at memory 130 , and discard key 145 .
- FIG. 2 illustrates a computing device and a memory control module with an integrated memory in communication with the computing device.
- Computing device 200 includes processor 210 , communication interface 220 , and memory 230 .
- Processor 210 is operatively coupled to communications interface 220 , and memory 230 .
- memory 230 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed by processor 210 during operation of computing device 210 similar to those discussed above in relation to FIG. 1 .
- communications interface 220 is an interface accessible to processor 210 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link as discussed above in relation to FIG. 1 .
- Memory control module 240 is separate (or separable) from computing device 200 and includes memory controller 244 and memory 241 at which key 245 is stored.
- Memory controller 244 includes circuitry, software hosted at that circuitry, or a combination thereof to provide an access lock 250 to key 245 in memory 241 . Access to key 245 may be unlocked based on an operation to a control register, or unlock register, in memory.
- memory controller 244 may be a processor at memory control module 240 .
- Key 245 is a data set such as a cryptographic key that is accessed by computing device 200 for use within one or more of applications 233 such as a cryptographic service hosted at computing device 200 .
- computing device 200 may be in communication with memory control module 240 via an interface (not shown) such as a USB interface, a network (e.g., Ethernet) interface, or some other interface.
- processor 210 may request key 245 at memory control module 240 , the memory control module 240 providing access to key 245 in accordance with lock 250 , use key 245 to perform a cryptographic process based on instructions or codes stored at memory 230 , and discard key 245 .
- FIG. 3 illustrates a computing device hosting a memory control module.
- Computing device 300 includes processor 310 , communication interface 320 , and memory 330 .
- Processor 310 is operatively coupled to communications interface 320 , and memory 330 .
- Communications interface 320 is an interface accessible to processor 310 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link as discussed above in relation to FIG. 1 .
- memory 330 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed by processor 310 during operation of computing device 310 similar to those discussed above in relation to FIG. 1 .
- Memory 330 also includes memory control module 340 , and key 345 . That is, memory control module 340 is hosted at processor 310 . In other words, instructions or codes that define memory control module 340 are accessed at memory 330 by processor 310 and executed or interpreted by processor 310 to provide an access lock 350 to key 345 at memory 330 . Access to key 345 may be unlocked based on an operation to a control register, or unlock register, in memory.
- FIG. 4 illustrates a computing device including a memory control module.
- Computing device 400 includes processor 410 , communication interface 420 , memory 430 , and memory control module 440 .
- Processor 410 is operatively coupled to communications interface 420 and memory control module 440 .
- Communications interface 420 is an interface accessible to processor 410 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link as discussed above in relation to FIG. 1 .
- memory 430 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed by processor 410 during operation of computing device 410 similar to those discussed above in relation to FIG. 1 .
- Memory control module 440 includes circuitry, software hosted at that circuitry, or a combination thereof to implement a memory access lock 450 to key 445 in memory 430 . Access to key 445 may be unlocked based on an operation to a control register, or unlock register, in memory.
- Processor 410 accesses memory 430 via memory control module 440 . More specifically, processor 410 requests access to data values at memory 430 from (or at) memory control module 440 . That is, processor 410 provides a request for data values to memory control module 440 , memory control module 440 accesses those data values at memory 430 , and provides the requested data values to processor 410 .
- FIG. 5 is an example illustration of address decode logic, a memory cell, and an access lock according to an implementation.
- address decode logic 502 provides the microprocessor access to locations in memory.
- the microprocessor produces an address on address bus 504 , the address corresponding to memory cell 506 .
- the /Memory 520 output from the address decode logic 502 produces an active-low signal.
- the active-low /Memory decode signal is gated through OR gates 508 to allow the active/Read or /Write signal to control the memory cell.
- /Read and /Write in this example are mutually exclusive, and controlled by the microprocessor core. If the access is a memory write, then /Write will go low; otherwise for a memory read, /Read will go low.
- OR gates 508 have three inputs each. A /Read signal or a /Write signal, a /Memory decode signal, and an inhibit signal controlled by flip-flop 510 .
- the inhibit signal controlled by flip-flop 510 may disallow the progression of /Read and /Write to the memory cell.
- flip-flop 510 has two defined inputs, an active-high Unlock 512 and a rising-edge Relock 514 .
- flip-flop 510 sets, and /Read and /Write are allowed to access memory 506 .
- Memory 506 may access the data in the memory cell via bus 507 .
- the unlock input 512 is controlled by a flip-flop (not shown), the unlock state is retained until relocked.
- flip-flop 510 If flip-flop 510 is not set, /Read and /Write are inhibited and access to memory cell 506 is locked in a disabled state.
- the flip-flop 510 When a rising edge appears at the relock input 514 , the flip-flop 510 resets and /Read and /Write are again inhibited. As the relock 514 is controlled by a flip-flop (not shown), the locked state is retained until unlocked.
- the /Memory signal returns to logic 1, which in turn forces the outputs of the OR gate to their inactive logic-1 states.
- unlock active high 512 different controls may be input into unlock active high 512 .
- Unlock is controlled by any address decode circuit connected to the address bus (not shown).
- the source of the Re-lock signal may be anything that is guaranteed to follow the /Memory access to the memory cell, including /Memory itself (the de-assertion at the end of the access cycle), timers, etc., as shown in later figures.
- FIG. 6 depicts an example illustration where access to the memory is automatically relocked after access is made to the memory.
- address decode logic 602 provides the microprocessor access to locations in memory.
- the microprocessor produces an address on address bus 604 , the address corresponding to memory cell 606 .
- the /Memory output from the address decode logic 602 produces an active-low signal.
- the active-low /Memory decode signal is gated through OR gates 608 to allow the active /Read or /Write signal to control the memory cell.
- /Read and /Write in this example are mutually exclusive, and controlled by the microprocessor core. If the access is a memory write, then /Write will go low; otherwise for a memory read, /Read will go low.
- OR gates 608 have three inputs each. A /Read signal or a /Write signal, a /Memory decode signal, and an inhibit signal controlled by flip-flop 610 .
- the inhibit signal controlled by flip-flop 610 may disallow the progression of /Read and /Write to the memory cell.
- Address decode logic 602 includes logic to decode a signal from address bus 604 corresponding to /UnlockReg 614 .
- UnlockReg may be implemented as a control register or memory location that is used to trigger the unlocking of access to a memory location.
- NOR gate 612 receives two inputs, /UnlockReg 614 from address decode logic 602 and /Write 616 .
- NOR gate 612 logically combines the address decode for /UnlockReg with the /Write 616 control.
- the output of NOR gate 612 provides the input to flip-flop 610 and is used to set the lock control of flip-flop 610 .
- Flip-flop 610 receives the output from NOR gate 612 .
- the flip-flop 612 may be set to unlock access to memory cell 606 .
- the output of flip-flop 610 is input to OR gates 608 thereby unlocking access to memory cell 608 .
- a read or write operation may then be made to memory cell 606 where the memory location is accessed through memory bus 607 .
- an additional input to flip-flop 612 is /Memory signal 620 .
- /Memory signal 620 After access to the memory cell 608 completes and the decode returns to its quiescent active-high state, a rising edge is produced at the relock control and flip-flop 610 resets. Access to the memory cell 608 is relocked.
- access may be granted for one or more accesses.
- an alternative to this example may be a read operation instead of a write operation, where the input to NOR gate 612 is /Read, instead of /Write 616 .
- the operation may be a write operation of a predetermined value in the unlock register.
- unlock registers there may be different unlock registers to memory locations having odd and even addresses.
- an unlock register in a first location may be used to unlock a memory location having an odd number address.
- An unlock register in a second location may be used to unlock a memory location having an even number address.
- FIG. 7 depicts an example memory as discussed herein.
- memory 700 includes a first memory map space 702 and a second memory map space 704 .
- memory map space 702 is physically spaced away from memory map space 704 .
- memory map space 702 may be adjacent to memory map space 704 .
- Memory map space 702 includes a plurality of memory locations, including memory location 706 .
- Memory location 706 may be implemented as, for example, a memory location, for example, an unlock register, a control register, etc.
- Memory map space 704 includes a plurality of memory locations, including memory location 708 .
- Memory location 708 may be implemented as a location in memory to be locked. It may be appreciated that memory locations 706 and 708 may be located anywhere in memory map spaces 702 and 704 respectively.
- memory location 706 when an operation, for example, a read operation, write operation, etc., is made to memory location 706 , access to memory location 708 may be unlocked.
- an operation for example, a read operation, write operation, etc.
- unlock registers may be utilized for different types of memory access.
- an unlock register i.e., a first memory location
- An unlock register i.e., another memory location
- more than one access to the memory cell may be permitted for an unlock cycle. For example, a predetermined number of operations may be permitted to the unlocked memory location when an operation is performed at the unlock register.
- FIG. 8 depicts an example illustration where access to the memory is automatically relocked after a period of time. Components in FIG. 8 are similar to those discussed with respect to those in FIG. 6 , except as discussed herein.
- address decode logic 802 provides the microprocessor access to locations in memory.
- the microprocessor produces an address on address bus 804 , the address corresponding to memory cell 806 .
- the /Memory 820 output from the address decode logic 802 produces an active-low signal.
- the active-low /Memory decode signal is gated through OR gates 808 to allow the active /Read or /Write signal to control the memory cell.
- /Read and /Write in this example are mutually exclusive, and controlled by the microprocessor core. If the access is a memory write, then /Write will go low; otherwise for a memory read, /Read will go low.
- OR gates 808 have three inputs each. A /Read signal or a /Write signal, a /Memory decode signal, and an inhibit signal controlled by flip-flop 810 .
- the inhibit signal controlled by flip-flop 810 may disallow the progression of /Read and /Write to the memory cell.
- Address decode logic 802 includes logic to decode a signal from address bus 804 corresponding to /UnlockReg 814 .
- UnlockReg may be implemented as a control register or memory location that is used to trigger the unlocking of access to another memory location.
- NOR gate 812 receives two inputs, /UnlockReg 814 from address decode logic 802 and /Write 816 .
- NOR gate 812 logically combines the address decode for /UnlockReg 814 with the /Write 816 control.
- the output of NOR gate 812 provides an input to delay counter 822 .
- delay clock signal 824 is input to delay counter 822 .
- Delay counter 822 may be implemented as a standard 2 n -type, which products a short negative pulse when it overflows, for example, 2 n counts from reset. The overflow is combined with the memory address decode /Memory 820 for the relock.
- the /UnlockReg 814 signal is input into NOR gate 812 , thus resetting the counter.
- the overflow output is input to AND gate 826 and input to flip-flop 810 , thus locking access.
- a write to the unlock register unlocks the memory similar to the other examples set forth above.
- completion of the memory access relocks the memory access similar to the other examples set forth above, as the /Memory signal 820 is input to AND gate 826 thereby relocking the flip-flop.
- any delay in addition to direct access can be used to automatically relock access to the memory.
- Choices of delay clock 824 may include, for example, real time input, central processing unit (CPU) clock, and an instruction fetch control signal.
- a real-time input When a real-time input is used, it may be derived from a source other than the CPU's clock, and may allow a fixed time delay, e.g., 10 ⁇ s, which may remain constant regardless of the microprocessor speed, thus permitting a lock after an absolute time period.
- the delay is directly proportional to the operating speed of the microprocessor, e.g., 128 cycles, which would remain constant regardless of the clock frequency, but whose actual time would vary with the CPU clock, thus permitting locking after a processor-relative time period.
- Another clock source may be the CPU instruction fetch signal.
- the delay may be operational, e.g., 128 instructions. In this way, the amount of code between unlock and re-lock is constant, thus permitting locking after a work time period.
- the output of flip-flop 810 is input to OR gates 808 thereby unlocking access to memory cell 806 .
- a read or write operation may then be made to memory cell 806 where the memory location is accessed through memory bus 807 .
- UnlockReg register when there is a write operation to UnlockReg register in memory, this unlocks access to the memory cell for a single access. Once access is made, access to the memory cell is locked. In addition, access to the memory cell is locked after a predetermined number of clock cycles.
- an alternative to this example may be a read operation instead of a write operation, where the input to NOR gate 812 is /Read, instead of /Write 816 .
- FIG. 9 is a flowchart of a process to unlock access to a memory region, for example a memory location, according to an implementation.
- Process 900 may be implemented as a hardware module, as a software module hosted at a computing device, or as a combination thereof.
- process 900 may be implemented as application-specific circuitry or as a software module including instructions stored at a memory and executed at a processor in communication with the memory. More specifically, for example, process 900 may be implemented at a memory control module.
- a signal may be received indicating an operation has been performed at a control register ( 902 ). This signal may be received at a controller, the controller controlling access to one or more memory locations. Access to a memory region may be unlocked based on the operation that was performed at the control register ( 904 ).
- Access to the memory region may be unlocked for one or more accesses to the memory region.
- Access to the memory region may be automatically relocked, for example, after the one or more accesses to the memory region, after a predetermined period of time, the predetermined period of time based on one of a processor-relative time period, an absolute time period, a work time period, etc.
- FIG. 10 is a flowchart of a process to unlock access to a memory region, for example a memory location, and to relock access to a memory region, according to an implementation.
- Process 1000 may be implemented as a hardware module, as a software module hosted at a computing device, or as a combination thereof.
- process 1000 may be implemented as application-specific circuitry or as a software module including instructions stored at a memory and executed at a processor in communication with the memory. More specifically, for example, process 1000 may be implemented at a memory control module.
- a signal may be received indicating an operation has been performed at a control register ( 1002 ). This signal may be received at a controller, the controller controlling access to one or more memory locations. Access to a memory region may be unlocked based on the operation that was performed at the control register ( 1004 ).
- An indication may be received to relock access to the memory region ( 1006 ). This indication may be based on, for example, an indication that one or more predetermined number of operations have been performed at the unlocked memory region, that a predetermined time period has elapsed, the predetermined time period being one of absolute time, work time, or a process-relative time period, etc.
- access to the memory region may be relocked ( 1008 ). Thus, any further operations to the locked memory region are inhibited.
- process 100 is discussed above with reference to an example environment within a memory control module, process 100 is applicable within other environments.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mathematical Physics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Quality & Reliability (AREA)
- Microcomputers (AREA)
- Measurement Of Current Or Voltage (AREA)
- Computer And Data Communications (AREA)
- Debugging And Monitoring (AREA)
- Mobile Radio Communication Systems (AREA)
- Testing Or Calibration Of Command Recording Devices (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
In one implementation, a controller is provided such that when an operation is performed at a first memory location, the controller unlocks access to a second memory location.
Description
- This application claims priority to U.S. provisional patent application no. 61/509,078, filed on Jul. 18, 2011, which is hereby incorporated by reference herein in its entirety.
- Memories are used within computing devices to store data. For example, data are stored and accessed within computing devices such as personal computers, notebook and laptop computers, smartphones, personal digital assistants (“PDAs”), tablet and slate devices, personal entertainment devices such as MP3 players and media players, set-top boxes, gaming consoles, appliances, embedded devices, smart meters, and other computing devices at memories such as random-access memories (“RAMs”).
- Typically, data stored at RAMs or other memories of a computing device are accessed by a processor and some operation is performed by the processor based on the data. For example, an encryption key may be stored at a memory and a processor may access the encryption key to encrypt or decrypt a document.
-
FIGS. 1-4 are example schematic block diagrams of computing devices including memory control modules and a selector, according to one or more implementations. -
FIG. 5 is an example illustration of address decode logic, memory cell and access lock, according to an implementation. -
FIG. 6 is an example illustration of address decode logic, memory cell and access lock, according to an implementation. -
FIG. 7 is an example illustration of a memory having a plurality of memory map spaces, according to an implementation. -
FIG. 8 is an example illustration of address decode logic, memory cell and access lock, according to an implementation. -
FIG. 9 is an example flowchart of a process to unlock access to memory based on an operation at a control register, according to an implementation. -
FIG. 10 is an example flowchart of a process to unlock access to memory based on an operation at a control register, according to an implementation. - In a microprocessor-based system, which performs cryptography or manages cryptographic keys, steps may be taken to protect one or more keys stored in memory. However, due to software bugs, malware, etc., data stored in a memory region which holds the key(s) may be accidentally transmitted out of a computing device, for example, via an Ethernet port, and thus, may completely invalidate all of the system security features.
- This may occur where, for example, an I/O port, for example, Ethernet port, is configured to transmit a packet of data. In order to transmit the packet of data, a source address of the data and a length are configured into the hardware of the Ethernet port on the microprocessor, and the port is instructed to transmit. If either the address is wrong and points to the key storage memory, or nearby instead, or if the length is too long and the transmit packet is adjacent to the keys in memory, then the key(s) may be transmitted out of the computing device.
- As discussed herein, a memory access lock is provided which protects memory access. Software may manipulate a control register, and/or its contents, via an operation to the control register, to unlock access to memory or registers for read and/or write access. This access may be limited access, for example, limited to one read or write access or multiple read and/or write accesses.
- In one implementation, a memory location, for example, a control register, or unlock register, that is located in a different memory map space than the memory location of the memory or registers being protected may be used. The term “control register” as used herein may be interpreted as a memory location.
- Unlocked access may be automatically re-locked following the access. Alternatively, or in addition, a timeout may also be applied to automatically re-lock access to the memory.
- When used, for example, in a microprocessor, a lock protects memory or register accesses which may be unlocked by software in accordance with expected operation of the software, but is difficult to defeat by such things as malware, software bugs and DMA-like hardware including DMA, ethernet controllers, etc.
- Examples provided herein describe a memory access lock with respect to a secure key stored in memory. However, the memory access lock may be implemented for any type of data stored in memory.
- Further, as discussed herein, unlocking memory means providing access to memory which was initially locked, i.e., access to the memory is not permitted.
-
FIGS. 1-4 are schematic block diagrams of computing devices including a memory access lock, according to one or more implementations. Although various implementations of computing devices and memory control modules are illustrated atFIGS. 1-4 , these examples are not exhaustive and memory access locks, systems, and processes discussed herein are applicable to other computing devices or systems not illustrated inFIGS. 1-4 . -
FIG. 1 illustrates a computing device that includes a memory control module with an integrated memory.Computing device 100 includesprocessor 110,communication interface 120,memory 130, andmemory control module 140.Processor 110 is any of a variety of processors. For example,processor 110 may be a general-purpose processor or an application-specific processor implemented as a hardware module and/or a software module hosted at a hardware module. A hardware module may be, for example, a microprocessor, a microcontroller, an application-specific integrated circuit (“ASIC”), a programmable logic device (“PLD”) such as a field programmable gate array (“FPGA”), and/or other electronic circuits that perform operations. A software module may be, for example, instructions, commands, and/or codes stored at a memory and executed at another processor. Such a software module may be defined using one or more programming languages such as Java™, C++, C, an assembly language, a hardware description language, and/or another suitable programming language. For example, a processor may be a virtual machine hosted at a computer server including a microprocessor and a memory. - In some implementations,
processor 110 may include multiple processors. For example,processor 110 may be a microprocessor including multiple processing engines (e.g., computation, algorithmic or thread cores). As another example,processor 110 may be a computing device including multiple processors with a shared clock, memory bus, input/output bus, and/or other shared resources. Furthermore,processor 110 may be a distributed processor. For example,processor 110 may include multiple computing devices, each including a processor, in communication one with another via a communications link such as a computer network. -
Processor 110 is operatively coupled tocommunications interface 120,memory 130, andmemory control module 140. Typically, as illustrated inFIG. 1 ,memory 130 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed byprocessor 110 during operation ofcomputing device 100. For example,memory 130 includes instructions that defineoperating system 131,device drivers 132, and applications 133 (e.g., software application programs). In other words,operating system 131,device drivers 132,applications 133, and other software modules stored as instructions (not shown) atmemory 130 and executed atprocessor 110 are hosted atcomputing device 100.Applications 133 may include, for example, an application software module, a hypervisor, a virtual machine module, or an environment such as a runtime environment or virtual machine instance. As a specific example,applications 133 may include a cryptographic service such as a file encryption application. - In some embodiments,
memory 130 is a volatile memory andcomputing device 100 includes a non-volatile (or non-transient) memory or processor-readable medium (not shown) such as a hard disk drive (“HDD”), a solid-state drive (“SSD”), a FLASH drive, or is in communication with a data storage service (e.g., viacommunications interface 120 and a communications link such as a communications network) at which software applications (e.g., computer codes or instructions that implement software applications when executed at a processor), data, or combinations thereof may be stored and accessed byprocessor 110. Such software applications, data, or combinations thereof may be moved or copied tomemory 130 byprocessor 110 and accessed byprocessor 110 atmemory 130 during operation ofcomputing device 100. - Examples of processor-readable media include, but are not limited to: magnetic storage media such as a hard disk, a floppy disk, and/or magnetic tape; optical storage media such as a compact disc (“CD”), a digital video disc (“DVDs”), a compact disc read-only memory (“CD-ROM”), and/or a holographic device; magneto-optical storage media; non-volatile memory such as read-only memory (“ROM”), programmable read-only memory (“PROM”), erasable programmable read-only memory (“EPROM”), electronically erasable read-only memory (“EEPROM”), and/or FLASH memory; and random-access memory (“RAM”). Examples of computer code include, but are not limited to, micro-code or micro-instructions, machine instructions, such as produced by a compiler, and files containing higher-level instructions that are executed by a computer using an interpreter. For example, an implementation may be implemented using Java™, C++, or other object-oriented programming language and development tools. Additional examples of computer code include, but are not limited to, control signals, encrypted code, and compressed code.
-
Communications interface 120 is an interface accessible toprocessor 110 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link. In other words,communications interface 120 may receive data fromprocessor 110 and transmit symbols representing those data via a communications link. Moreover,communications interface 120 may receive symbols from other communications interfaces via a communications link and send data represented by those symbols toprocessor 110. For example,communications interface 120 may be a telephone network interface, a twisted-pair network interface, a coaxial network interface, a fiber-optic network interface, a wireless network interface such as a wireless local area network (“WLAN”) or a cellular network, or some other network or communications interface. -
Memory control module 140 includesmemory controller 144 andmemory 141 at whichkey 145 is stored.Memory controller 144 includes circuitry, software hosted at that circuitry, or a combination thereof to provide anaccess lock 150 forkey 145 inmemory 141, as discussed more fully below. Access to key 145 may be unlocked based on an operation to a control register, or unlock register, in memory. -
Key 145 is a data set such as a cryptographic key that is accessed byprocessor 110 for use within one or more ofapplications 133 such as a cryptographic service hosted atcomputing device 100. In other words,processor 110 may request key 145 atmemory control module 140, thememory control module 140 providing access tokey 145 in accordance withlock 150, use key 145 to perform a cryptographic process based on instructions or codes stored atmemory 130, and discard key 145. -
FIG. 2 illustrates a computing device and a memory control module with an integrated memory in communication with the computing device.Computing device 200 includesprocessor 210,communication interface 220, andmemory 230. -
Processor 210 is operatively coupled tocommunications interface 220, andmemory 230. Typically, as illustrated inFIG. 2 ,memory 230 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed byprocessor 210 during operation ofcomputing device 210 similar to those discussed above in relation toFIG. 1 . Moreover,communications interface 220 is an interface accessible toprocessor 210 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link as discussed above in relation toFIG. 1 . -
Memory control module 240 is separate (or separable) fromcomputing device 200 and includesmemory controller 244 andmemory 241 at which key 245 is stored.Memory controller 244 includes circuitry, software hosted at that circuitry, or a combination thereof to provide anaccess lock 250 to key 245 inmemory 241. Access to key 245 may be unlocked based on an operation to a control register, or unlock register, in memory. For example,memory controller 244 may be a processor atmemory control module 240. - Key 245 is a data set such as a cryptographic key that is accessed by computing
device 200 for use within one or more ofapplications 233 such as a cryptographic service hosted atcomputing device 200. For example,computing device 200 may be in communication withmemory control module 240 via an interface (not shown) such as a USB interface, a network (e.g., Ethernet) interface, or some other interface. In other words,processor 210 may request key 245 atmemory control module 240, thememory control module 240 providing access to key 245 in accordance withlock 250, use key 245 to perform a cryptographic process based on instructions or codes stored atmemory 230, and discard key 245. -
FIG. 3 illustrates a computing device hosting a memory control module.Computing device 300 includesprocessor 310,communication interface 320, andmemory 330.Processor 310 is operatively coupled tocommunications interface 320, andmemory 330. Communications interface 320 is an interface accessible toprocessor 310 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link as discussed above in relation toFIG. 1 . Moreover, as illustrated inFIG. 3 ,memory 330 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed byprocessor 310 during operation ofcomputing device 310 similar to those discussed above in relation toFIG. 1 . -
Memory 330 also includesmemory control module 340, andkey 345. That is,memory control module 340 is hosted atprocessor 310. In other words, instructions or codes that definememory control module 340 are accessed atmemory 330 byprocessor 310 and executed or interpreted byprocessor 310 to provide anaccess lock 350 to key 345 atmemory 330. Access to key 345 may be unlocked based on an operation to a control register, or unlock register, in memory. -
FIG. 4 illustrates a computing device including a memory control module.Computing device 400 includesprocessor 410,communication interface 420,memory 430, andmemory control module 440.Processor 410 is operatively coupled tocommunications interface 420 andmemory control module 440. Communications interface 420 is an interface accessible toprocessor 410 to communicate with (i.e., transmit symbols representing data to and receive such symbols from) other processors or computing devices via a communications link as discussed above in relation toFIG. 1 . Moreover, as illustrated inFIG. 4 ,memory 430 includes instructions or codes (e.g., computer codes or object codes) defining software modules that are executed byprocessor 410 during operation ofcomputing device 410 similar to those discussed above in relation toFIG. 1 . -
Memory control module 440 includes circuitry, software hosted at that circuitry, or a combination thereof to implement amemory access lock 450 to key 445 inmemory 430. Access to key 445 may be unlocked based on an operation to a control register, or unlock register, in memory. -
Processor 410 accessesmemory 430 viamemory control module 440. More specifically,processor 410 requests access to data values atmemory 430 from (or at)memory control module 440. That is,processor 410 provides a request for data values tomemory control module 440,memory control module 440 accesses those data values atmemory 430, and provides the requested data values toprocessor 410. -
FIG. 5 is an example illustration of address decode logic, a memory cell, and an access lock according to an implementation. As show inFIG. 5 , addressdecode logic 502 provides the microprocessor access to locations in memory. The microprocessor produces an address onaddress bus 504, the address corresponding tomemory cell 506. The /Memory 520 output from theaddress decode logic 502 produces an active-low signal. The active-low /Memory decode signal is gated through ORgates 508 to allow the active/Read or /Write signal to control the memory cell. /Read and /Write in this example are mutually exclusive, and controlled by the microprocessor core. If the access is a memory write, then /Write will go low; otherwise for a memory read, /Read will go low. - OR
gates 508 have three inputs each. A /Read signal or a /Write signal, a /Memory decode signal, and an inhibit signal controlled by flip-flop 510. The inhibit signal controlled by flip-flop 510 may disallow the progression of /Read and /Write to the memory cell. In this example, flip-flop 510 has two defined inputs, an active-high Unlock 512 and a rising-edge Relock 514. - When an active-high level occurs at the unlock input 512, flip-
flop 510 sets, and /Read and /Write are allowed to accessmemory 506.Memory 506 may access the data in the memory cell via bus 507. As the unlock input 512 is controlled by a flip-flop (not shown), the unlock state is retained until relocked. - If flip-
flop 510 is not set, /Read and /Write are inhibited and access tomemory cell 506 is locked in a disabled state. - When a rising edge appears at the
relock input 514, the flip-flop 510 resets and /Read and /Write are again inhibited. As therelock 514 is controlled by a flip-flop (not shown), the locked state is retained until unlocked. - When the memory access is complete, the /Memory signal returns to logic 1, which in turn forces the outputs of the OR gate to their inactive logic-1 states.
- It may be appreciated that different controls may be input into unlock active high 512. For example, Unlock is controlled by any address decode circuit connected to the address bus (not shown). Thus, whenever code in the microprocessor addresses the location in the memory map which decodes to assert Unlock, then the inhibit output from flip-
flop 510 is released and the memory cell can be addressed. The source of the Re-lock signal may be anything that is guaranteed to follow the /Memory access to the memory cell, including /Memory itself (the de-assertion at the end of the access cycle), timers, etc., as shown in later figures. - In this example, relocking of the memory access is not automatic.
FIG. 6 depicts an example illustration where access to the memory is automatically relocked after access is made to the memory. Components inFIG. 6 are similar to those discussed with respect to those inFIG. 5 , except as discussed herein. As shown inFIG. 6 , addressdecode logic 602 provides the microprocessor access to locations in memory. The microprocessor produces an address onaddress bus 604, the address corresponding to memory cell 606. The /Memory output from theaddress decode logic 602 produces an active-low signal. The active-low /Memory decode signal is gated through ORgates 608 to allow the active /Read or /Write signal to control the memory cell. /Read and /Write in this example are mutually exclusive, and controlled by the microprocessor core. If the access is a memory write, then /Write will go low; otherwise for a memory read, /Read will go low. - OR
gates 608 have three inputs each. A /Read signal or a /Write signal, a /Memory decode signal, and an inhibit signal controlled by flip-flop 610. The inhibit signal controlled by flip-flop 610 may disallow the progression of /Read and /Write to the memory cell. -
Address decode logic 602 includes logic to decode a signal fromaddress bus 604 corresponding to /UnlockReg 614. UnlockReg may be implemented as a control register or memory location that is used to trigger the unlocking of access to a memory location. - NOR
gate 612 receives two inputs, /UnlockReg 614 fromaddress decode logic 602 and /Write 616. NORgate 612 logically combines the address decode for /UnlockReg with the /Write 616 control. The output of NORgate 612 provides the input to flip-flop 610 and is used to set the lock control of flip-flop 610. - Flip-
flop 610 receives the output from NORgate 612. Thus, when a write operation is made to the UnlockReg register in memory, the flip-flop 612 may be set to unlock access to memory cell 606. In other words, the output of flip-flop 610 is input to ORgates 608 thereby unlocking access tomemory cell 608. A read or write operation may then be made to memory cell 606 where the memory location is accessed throughmemory bus 607. - As shown in
FIG. 6 , an additional input to flip-flop 612 is /Memory signal 620. After access to thememory cell 608 completes and the decode returns to its quiescent active-high state, a rising edge is produced at the relock control and flip-flop 610 resets. Access to thememory cell 608 is relocked. - Thus, in this example, when there is a write operation to UnlockReg register in memory, this unlocks access to the memory cell for a single access. Once access is made, access to the memory cell is locked.
- It may be appreciated that access may be granted for one or more accesses.
- It may be appreciated an alternative to this example may be a read operation instead of a write operation, where the input to NOR
gate 612 is /Read, instead of /Write 616. - It may further be appreciated that the operation may be a write operation of a predetermined value in the unlock register.
- It may further be appreciated that there may be different unlock registers to memory locations having odd and even addresses. For example, an unlock register in a first location may be used to unlock a memory location having an odd number address. An unlock register in a second location may be used to unlock a memory location having an even number address.
- It may be further appreciated that the unlock register may be located in a memory map space that is separate, or different, from the memory map space where the memory cell is located.
FIG. 7 depicts an example memory as discussed herein. As shown inFIG. 7 ,memory 700 includes a firstmemory map space 702 and a secondmemory map space 704. As can be seen fromFIG. 7 ,memory map space 702 is physically spaced away frommemory map space 704. Alternatively,memory map space 702 may be adjacent tomemory map space 704.Memory map space 702 includes a plurality of memory locations, includingmemory location 706.Memory location 706 may be implemented as, for example, a memory location, for example, an unlock register, a control register, etc.Memory map space 704 includes a plurality of memory locations, includingmemory location 708.Memory location 708 may be implemented as a location in memory to be locked. It may be appreciated thatmemory locations memory map spaces - Thus, when an operation, for example, a read operation, write operation, etc., is made to
memory location 706, access tomemory location 708 may be unlocked. - In another implementation, multiple memory locations, for example, unlock registers may be utilized for different types of memory access. For example, an unlock register, i.e., a first memory location, may trigger unlocking for access to the memory cell for a write operation. An unlock register, i.e., another memory location, may trigger unlocking access to the memory cell for a read operation.
- In another implementation, more than one access to the memory cell may be permitted for an unlock cycle. For example, a predetermined number of operations may be permitted to the unlocked memory location when an operation is performed at the unlock register.
-
FIG. 8 depicts an example illustration where access to the memory is automatically relocked after a period of time. Components inFIG. 8 are similar to those discussed with respect to those inFIG. 6 , except as discussed herein. As shown inFIG. 8 , addressdecode logic 802 provides the microprocessor access to locations in memory. The microprocessor produces an address onaddress bus 804, the address corresponding tomemory cell 806. The /Memory 820 output from theaddress decode logic 802 produces an active-low signal. The active-low /Memory decode signal is gated through ORgates 808 to allow the active /Read or /Write signal to control the memory cell. /Read and /Write in this example are mutually exclusive, and controlled by the microprocessor core. If the access is a memory write, then /Write will go low; otherwise for a memory read, /Read will go low. - OR
gates 808 have three inputs each. A /Read signal or a /Write signal, a /Memory decode signal, and an inhibit signal controlled by flip-flop 810. The inhibit signal controlled by flip-flop 810 may disallow the progression of /Read and /Write to the memory cell. -
Address decode logic 802 includes logic to decode a signal fromaddress bus 804 corresponding to /UnlockReg 814. UnlockReg may be implemented as a control register or memory location that is used to trigger the unlocking of access to another memory location. - NOR
gate 812 receives two inputs, /UnlockReg 814 fromaddress decode logic 802 and /Write 816. NORgate 812 logically combines the address decode for /UnlockReg 814 with the /Write 816 control. The output of NORgate 812 provides an input to delaycounter 822. In addition,delay clock signal 824 is input to delaycounter 822. Delay counter 822 may be implemented as a standard 2n-type, which products a short negative pulse when it overflows, for example, 2 n counts from reset. The overflow is combined with the memory address decode /Memory 820 for the relock. Thus, when the write to the unlock register takes place, the /UnlockReg 814 signal is input into NORgate 812, thus resetting the counter. When the counter overflows, the overflow output is input to ANDgate 826 and input to flip-flop 810, thus locking access. - In this example, a write to the unlock register unlocks the memory similar to the other examples set forth above. In addition, completion of the memory access relocks the memory access similar to the other examples set forth above, as the /
Memory signal 820 is input to ANDgate 826 thereby relocking the flip-flop. - By selecting a choice of counter size and delay clock frequency, any delay, in addition to direct access can be used to automatically relock access to the memory.
- Choices of
delay clock 824 may include, for example, real time input, central processing unit (CPU) clock, and an instruction fetch control signal. When a real-time input is used, it may be derived from a source other than the CPU's clock, and may allow a fixed time delay, e.g., 10 μs, which may remain constant regardless of the microprocessor speed, thus permitting a lock after an absolute time period. - When the CPU clock is used for the delay clock source, the delay is directly proportional to the operating speed of the microprocessor, e.g., 128 cycles, which would remain constant regardless of the clock frequency, but whose actual time would vary with the CPU clock, thus permitting locking after a processor-relative time period.
- Another clock source may be the CPU instruction fetch signal. In this example, the delay may be operational, e.g., 128 instructions. In this way, the amount of code between unlock and re-lock is constant, thus permitting locking after a work time period.
- As in the above examples, the output of flip-
flop 810 is input to ORgates 808 thereby unlocking access tomemory cell 806. A read or write operation may then be made tomemory cell 806 where the memory location is accessed throughmemory bus 807. - Thus, in this example, when there is a write operation to UnlockReg register in memory, this unlocks access to the memory cell for a single access. Once access is made, access to the memory cell is locked. In addition, access to the memory cell is locked after a predetermined number of clock cycles.
- It may be appreciated an alternative to this example may be a read operation instead of a write operation, where the input to NOR
gate 812 is /Read, instead of /Write 816. -
FIG. 9 is a flowchart of a process to unlock access to a memory region, for example a memory location, according to an implementation.Process 900 may be implemented as a hardware module, as a software module hosted at a computing device, or as a combination thereof. For example,process 900 may be implemented as application-specific circuitry or as a software module including instructions stored at a memory and executed at a processor in communication with the memory. More specifically, for example,process 900 may be implemented at a memory control module. - As shown in
FIG. 9 , a signal may be received indicating an operation has been performed at a control register (902). This signal may be received at a controller, the controller controlling access to one or more memory locations. Access to a memory region may be unlocked based on the operation that was performed at the control register (904). - Access to the memory region may be unlocked for one or more accesses to the memory region.
- Access to the memory region may be automatically relocked, for example, after the one or more accesses to the memory region, after a predetermined period of time, the predetermined period of time based on one of a processor-relative time period, an absolute time period, a work time period, etc.
-
FIG. 10 is a flowchart of a process to unlock access to a memory region, for example a memory location, and to relock access to a memory region, according to an implementation.Process 1000 may be implemented as a hardware module, as a software module hosted at a computing device, or as a combination thereof. For example,process 1000 may be implemented as application-specific circuitry or as a software module including instructions stored at a memory and executed at a processor in communication with the memory. More specifically, for example,process 1000 may be implemented at a memory control module. - As shown in
FIG. 10 , a signal may be received indicating an operation has been performed at a control register (1002). This signal may be received at a controller, the controller controlling access to one or more memory locations. Access to a memory region may be unlocked based on the operation that was performed at the control register (1004). - An indication may be received to relock access to the memory region (1006). This indication may be based on, for example, an indication that one or more predetermined number of operations have been performed at the unlocked memory region, that a predetermined time period has elapsed, the predetermined time period being one of absolute time, work time, or a process-relative time period, etc.
- After receipt of the indication to lock access to the memory region, access to the memory region may be relocked (1008). Thus, any further operations to the locked memory region are inhibited.
- Although
process 100 is discussed above with reference to an example environment within a memory control module,process 100 is applicable within other environments.
Claims (15)
1. An apparatus, comprising:
a memory having a first and second memory location, the first memory location being in a first memory map space and the second memory location being in a second memory map space; and
a controller operatively coupled to the memory to unlock access to the second memory location based on an operation to the first memory location.
2. The apparatus of claim 1 , wherein the controller is further to:
automatically lock access to the second memory location a predetermined period of time after access has been unlocked, wherein the predetermined period of time is one of a processor-relative time period, an absolute time period, and a work time period.
3. The apparatus of claim 1 , where the controller is further to:
automatically lock access to the second memory location after completion of an operation to the second memory location.
4. The apparatus of claim 1 , further comprising:
a third memory location, wherein
the controller unlocks access to the second memory location for a write operation based on the operation to the first memory location; and
the controller unlocks access to the second memory location for read operation based on an operation to the third memory location.
5. The apparatus of claim 1 , wherein the controller is to permit a predetermined number of operations to the second memory location after the access to the second memory location is unlocked.
6. An apparatus, comprising:
a controller to unlock access to a first memory location in a first memory map space based on an operation to a second memory location in a second memory map space.
7. The apparatus of claim 6 , further comprising:
a clock; and
a counter to count clock cycles;
wherein the controller is to automatically lock access to the first memory location after a predetermined number of counted clock cycles.
8. The apparatus of claim 6 , wherein the operation is a write operation to the second memory location.
9. The apparatus of claim 6 , wherein the operation is a read operation to the second memory location.
10. The apparatus of claim 6 , wherein the write operation includes writing a predetermined value to the second memory location.
11. The apparatus of claim 6 , the apparatus further including:
a third memory location, wherein
if the first memory location is an odd number address, the controller is to unlock access to the first memory location based on an operation to the second memory location; and
if the first memory location is an even number address, the controller is to unlock access to the first memory location based on an operation to the third memory location.
12. The apparatus of claim 6 , the controller to:
automatically lock access to the unlocked first memory location.
13. A method, comprising:
receiving a signal indicating an operation has been performed at a control register; and
unlocking access to a memory region based on the operation that has been performed at the control register.
14. The method of claim 13 , further comprising:
automatically locking access to the memory region after one of an operation to the memory region and a predetermined time period after unlocking access to the memory region.
15. The method of claim 13 , further comprising:
unlocking access to the second memory location for a write operation based on the operation to the first memory location; and
the controller unlocks access to the second memory location for read operation based on an operation to the third memory location.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/459,523 US20130024637A1 (en) | 2011-07-18 | 2012-04-30 | Memory access unlock |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161509078P | 2011-07-18 | 2011-07-18 | |
US13/459,523 US20130024637A1 (en) | 2011-07-18 | 2012-04-30 | Memory access unlock |
Publications (1)
Publication Number | Publication Date |
---|---|
US20130024637A1 true US20130024637A1 (en) | 2013-01-24 |
Family
ID=47422868
Family Applications (12)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/233,310 Abandoned US20140149729A1 (en) | 2011-07-18 | 2011-12-15 | Reset vectors for boot instructions |
US14/233,321 Active US9465755B2 (en) | 2011-07-18 | 2011-12-15 | Security parameter zeroization |
US14/232,217 Abandoned US20140164793A1 (en) | 2011-07-18 | 2011-12-22 | Cryptographic information association to memory regions |
US14/232,229 Abandoned US20140140512A1 (en) | 2011-06-18 | 2012-01-06 | Requested and allowed cryptographic operations comparison |
US13/355,315 Active 2033-04-20 US8930154B2 (en) | 2011-07-18 | 2012-01-20 | First and second voltage measurements to adjust a voltage measurer |
US14/232,224 Active US9483422B2 (en) | 2011-07-18 | 2012-01-31 | Access to memory region including confidential information |
US14/131,291 Abandoned US20140223113A1 (en) | 2011-07-18 | 2012-02-03 | Selector syncronized with movement of data in memory |
US14/130,871 Expired - Fee Related US9418026B2 (en) | 2011-07-18 | 2012-02-08 | Transition between states in a processor |
US13/407,845 Active 2033-10-14 US9015516B2 (en) | 2011-07-18 | 2012-02-29 | Storing event data and a time value in memory with an event logging module |
US14/233,334 Expired - Fee Related US9418027B2 (en) | 2011-07-18 | 2012-03-30 | Secure boot information with validation control data specifying a validation technique |
US13/455,867 Abandoned US20130024153A1 (en) | 2011-07-18 | 2012-04-25 | Microprocessor testing circuit |
US13/459,523 Abandoned US20130024637A1 (en) | 2011-07-18 | 2012-04-30 | Memory access unlock |
Family Applications Before (11)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/233,310 Abandoned US20140149729A1 (en) | 2011-07-18 | 2011-12-15 | Reset vectors for boot instructions |
US14/233,321 Active US9465755B2 (en) | 2011-07-18 | 2011-12-15 | Security parameter zeroization |
US14/232,217 Abandoned US20140164793A1 (en) | 2011-07-18 | 2011-12-22 | Cryptographic information association to memory regions |
US14/232,229 Abandoned US20140140512A1 (en) | 2011-06-18 | 2012-01-06 | Requested and allowed cryptographic operations comparison |
US13/355,315 Active 2033-04-20 US8930154B2 (en) | 2011-07-18 | 2012-01-20 | First and second voltage measurements to adjust a voltage measurer |
US14/232,224 Active US9483422B2 (en) | 2011-07-18 | 2012-01-31 | Access to memory region including confidential information |
US14/131,291 Abandoned US20140223113A1 (en) | 2011-07-18 | 2012-02-03 | Selector syncronized with movement of data in memory |
US14/130,871 Expired - Fee Related US9418026B2 (en) | 2011-07-18 | 2012-02-08 | Transition between states in a processor |
US13/407,845 Active 2033-10-14 US9015516B2 (en) | 2011-07-18 | 2012-02-29 | Storing event data and a time value in memory with an event logging module |
US14/233,334 Expired - Fee Related US9418027B2 (en) | 2011-07-18 | 2012-03-30 | Secure boot information with validation control data specifying a validation technique |
US13/455,867 Abandoned US20130024153A1 (en) | 2011-07-18 | 2012-04-25 | Microprocessor testing circuit |
Country Status (4)
Country | Link |
---|---|
US (12) | US20140149729A1 (en) |
EP (3) | EP2734951A4 (en) |
CN (3) | CN103688269A (en) |
WO (8) | WO2013012435A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015516B2 (en) | 2011-07-18 | 2015-04-21 | Hewlett-Packard Development Company, L.P. | Storing event data and a time value in memory with an event logging module |
US20230418590A1 (en) * | 2022-06-22 | 2023-12-28 | Hewlett-Packard Development Company, L.P. | Instruction updates |
Families Citing this family (80)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130155081A1 (en) * | 2011-12-15 | 2013-06-20 | Ati Technologies Ulc | Power management in multiple processor system |
US9094830B2 (en) * | 2012-07-05 | 2015-07-28 | Blackberry Limited | Managing data transfer across a network interface |
US9275223B2 (en) * | 2012-10-19 | 2016-03-01 | Mcafee, Inc. | Real-time module protection |
US9575768B1 (en) | 2013-01-08 | 2017-02-21 | Marvell International Ltd. | Loading boot code from multiple memories |
US9258119B2 (en) * | 2013-05-08 | 2016-02-09 | Cyber Solutions International, Llc | Trusted tamper reactive secure storage |
EP3025271B1 (en) * | 2013-07-24 | 2020-04-01 | Marvell World Trade Ltd. | Key rotation for a memory controller |
WO2015015305A1 (en) * | 2013-07-31 | 2015-02-05 | Marvell Word Trade Ltd. | Parallelizing boot operations |
US10235935B2 (en) * | 2013-10-30 | 2019-03-19 | Joled Inc. | Power off method of display device, and display device |
US9253213B2 (en) * | 2013-12-16 | 2016-02-02 | International Business Machines Corporation | Query flow reconstruction in database activity monitoring systems |
WO2015116077A1 (en) * | 2014-01-30 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | Access controlled memory region |
WO2015132838A1 (en) * | 2014-03-03 | 2015-09-11 | 株式会社日立製作所 | Method and device for displaying material fatigue of machine |
EP3771138B1 (en) * | 2014-03-31 | 2021-09-22 | Irdeto B.V. | Cryptographic chip and related methods |
US20150293862A1 (en) * | 2014-04-10 | 2015-10-15 | Andes Technology Corporation | Hardware configuration apparatus |
CN114692167A (en) * | 2014-04-15 | 2022-07-01 | 麦利尔亚洲新加坡私人有限公司 | Root of trust |
GB201413836D0 (en) | 2014-08-05 | 2014-09-17 | Arm Ip Ltd | Device security apparatus and methods |
GB2529429B (en) * | 2014-08-19 | 2021-07-21 | Origami Energy Ltd | Power distribution control system |
US9835043B2 (en) * | 2014-10-01 | 2017-12-05 | United Technologies Corporation | Guided binding-resistant actuation apparatus and method |
WO2016068996A1 (en) | 2014-10-31 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Security record transfer in a computing system |
WO2016068974A1 (en) | 2014-10-31 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | System and method for vulnerability remediation verification |
US10277565B2 (en) | 2014-12-31 | 2019-04-30 | Hewlett Packard Enterprise Development Lp | Enterprise service bus logging |
US10419339B2 (en) * | 2015-01-22 | 2019-09-17 | Hewlett Packard Enterprise Development Lp | Router to send a request from a first subnet to a second subnet |
US9772652B2 (en) * | 2015-02-23 | 2017-09-26 | Dell Products L.P. | Systems and methods for distributing and synchronizing real-time clock |
GB2538091B (en) * | 2015-05-07 | 2018-03-14 | Advanced Risc Mach Ltd | Verifying correct code execution context |
US9444822B1 (en) * | 2015-05-29 | 2016-09-13 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US11503031B1 (en) | 2015-05-29 | 2022-11-15 | Pure Storage, Inc. | Storage array access control from cloud-based user authorization and authentication |
US10691476B2 (en) * | 2015-06-27 | 2020-06-23 | Mcafee, Llc | Protection of sensitive data |
GB2540961B (en) * | 2015-07-31 | 2019-09-18 | Arm Ip Ltd | Controlling configuration data storage |
GB2540965B (en) | 2015-07-31 | 2019-01-30 | Arm Ip Ltd | Secure configuration data storage |
CN108351938B (en) * | 2015-10-29 | 2022-02-08 | 惠普发展公司,有限责任合伙企业 | Apparatus, system, and method for verifying a security value computed for a portion of program code |
US10235297B2 (en) | 2015-11-04 | 2019-03-19 | International Business Machines Corporation | Mechanism for creating friendly transactions with credentials |
US10270773B2 (en) * | 2015-11-04 | 2019-04-23 | International Business Machines Corporation | Mechanism for creating friendly transactions with credentials |
US10185633B2 (en) * | 2015-12-15 | 2019-01-22 | Intel Corporation | Processor state integrity protection using hash verification |
US9685389B1 (en) | 2016-02-03 | 2017-06-20 | Taiwan Semiconductor Manufacturing Co., Ltd. | Formation of getter layer for memory device |
US11734430B2 (en) | 2016-04-22 | 2023-08-22 | Hewlett Packard Enterprise Development Lp | Configuration of a memory controller for copy-on-write with a resource controller |
US10417441B2 (en) * | 2016-04-29 | 2019-09-17 | International Business Machines Corporation | Effectively validating dynamic database queries through database activity monitoring |
FR3052280A1 (en) | 2016-06-03 | 2017-12-08 | Proton World Int Nv | |
FR3052279B1 (en) * | 2016-06-03 | 2019-06-21 | Proton World International N.V. | AUTHENTICATION OF A CARD WITH NON-CONTACT READING |
US11126565B2 (en) * | 2016-06-27 | 2021-09-21 | Hewlett Packard Enterprise Development Lp | Encrypted memory access using page table attributes |
JP6799404B2 (en) * | 2016-07-13 | 2020-12-16 | 株式会社デンソーテン | Information processing device and information processing method |
US10664183B1 (en) | 2016-07-25 | 2020-05-26 | Oracle International Corporation | Method and apparatus for storing memory attributes |
WO2018060769A1 (en) * | 2016-09-28 | 2018-04-05 | Nanolock Security Inc. | Access control for integrated circuit devices |
US10069633B2 (en) * | 2016-09-30 | 2018-09-04 | Data I/O Corporation | Unified programming environment for programmable devices |
US20180275731A1 (en) * | 2017-03-21 | 2018-09-27 | Hewlett Packard Enterprise Development Lp | Processor reset vectors |
US11178160B2 (en) * | 2017-04-26 | 2021-11-16 | Splunk Inc. | Detecting and mitigating leaked cloud authorization keys |
US10909248B2 (en) * | 2017-06-29 | 2021-02-02 | Microsoft Technology Licensing, Llc | Executing encrypted boot loaders |
CN109753821B (en) * | 2017-11-01 | 2022-03-15 | 瑞昱半导体股份有限公司 | Data access device and method |
US10318438B1 (en) * | 2017-12-07 | 2019-06-11 | Nuvoton Technology Corporation | Secure memory access using memory read restriction |
EP3514499B1 (en) * | 2018-01-23 | 2020-08-26 | Siemens Aktiengesellschaft | Verification of sensor data |
LU100844B1 (en) | 2018-06-25 | 2019-12-30 | Univ Luxembourg | Method for preventing ransomware attacks on computing systems |
CN110677250B (en) | 2018-07-02 | 2022-09-02 | 阿里巴巴集团控股有限公司 | Key and certificate distribution method, identity information processing method, device and medium |
EP3599737A1 (en) * | 2018-07-24 | 2020-01-29 | Gemalto Sa | Method to create a primary cryptographic key with owner-defined transformation rules |
CN110795742B (en) | 2018-08-02 | 2023-05-02 | 阿里巴巴集团控股有限公司 | Metric processing method, device, storage medium and processor for high-speed cryptographic operation |
CN110795774B (en) | 2018-08-02 | 2023-04-11 | 阿里巴巴集团控股有限公司 | Measurement method, device and system based on trusted high-speed encryption card |
CN110826113A (en) * | 2018-08-09 | 2020-02-21 | 深圳市菲德越科技有限公司 | Data secure storage method and device |
CN110874478B (en) | 2018-08-29 | 2023-05-02 | 阿里巴巴集团控股有限公司 | Key processing method and device, storage medium and processor |
JP2020043258A (en) | 2018-09-12 | 2020-03-19 | キオクシア株式会社 | Semiconductor memory and manufacturing method thereof |
US10747909B2 (en) | 2018-09-25 | 2020-08-18 | Northrop Grumman Systems Corporation | System architecture to mitigate memory imprinting |
US10754993B2 (en) | 2018-09-25 | 2020-08-25 | Northrop Grumman Systems Corporation | Architecture to mitigate configuration memory imprinting in programmable logic |
US11599403B2 (en) * | 2018-10-03 | 2023-03-07 | SK Hynix Inc. | Logging mechanism for memory system |
US10984108B2 (en) * | 2018-10-05 | 2021-04-20 | International Business Machines Corporation | Trusted computing attestation of system validation state |
JP7018864B2 (en) * | 2018-10-15 | 2022-02-14 | ルネサスエレクトロニクス株式会社 | Semiconductor devices and their control methods |
US11625459B2 (en) * | 2019-02-08 | 2023-04-11 | Raytheon Technologies Corporation | Embedded processing system with multi-stage authentication |
US11228443B2 (en) * | 2019-03-25 | 2022-01-18 | Micron Technology, Inc. | Using memory as a block in a block chain |
CN110309083B (en) * | 2019-06-28 | 2021-09-07 | 兆讯恒达科技股份有限公司 | Memory data scrambling method |
US11169973B2 (en) * | 2019-08-23 | 2021-11-09 | International Business Machines Corporation | Atomically tracking transactions for auditability and security |
DE102019122806A1 (en) * | 2019-08-26 | 2021-03-04 | Infineon Technologies Ag | Cryptographic device |
US20210097184A1 (en) * | 2019-09-27 | 2021-04-01 | Advanced Micro Devices, Inc. | Secure buffer for bootloader |
US11768611B2 (en) | 2020-04-02 | 2023-09-26 | Axiado Corporation | Secure boot of a processing chip |
CN113704144B (en) * | 2020-05-22 | 2024-10-01 | 澜起科技股份有限公司 | Memory controller and method for controlling access to memory module |
US11868476B2 (en) * | 2020-06-02 | 2024-01-09 | Hypori, Inc. | Boot-specific key access in a virtual device platform |
US11184159B1 (en) * | 2020-09-01 | 2021-11-23 | Slack Technologies, Inc. | Encryption key management for channels with multiple organizations |
DE102020212772A1 (en) * | 2020-10-09 | 2022-04-14 | Robert Bosch Gesellschaft mit beschränkter Haftung | Method and device for managing cryptographic keys |
CN112631720B (en) * | 2020-12-23 | 2023-05-23 | 海光信息技术股份有限公司 | Memory control method, medium and equipment |
US12039090B2 (en) | 2021-01-19 | 2024-07-16 | Cirrus Logic Inc. | Integrated circuit with asymmetric access privileges |
WO2022157467A1 (en) * | 2021-01-19 | 2022-07-28 | Cirrus Logic International Semiconductor Limited | Integrated circuit with asymmetric access privileges |
US11809334B2 (en) | 2021-01-19 | 2023-11-07 | Cirrus Logic Inc. | Integrated circuit with asymmetric access privileges |
US11977664B2 (en) * | 2021-11-19 | 2024-05-07 | Nxp Usa, Inc. | Supply voltage proportionality monitoring in a system-on-chip (SOC) |
US12072818B2 (en) * | 2022-04-28 | 2024-08-27 | Infineon Technologies Ag | Systems and methods for concurrent logging and event capture |
US20240160745A1 (en) * | 2022-11-16 | 2024-05-16 | Nxp B.V. | Testing of security systems in integrated circuits |
EP4372567A1 (en) * | 2022-11-18 | 2024-05-22 | Thales Dis France Sas | Processor and method for modifying processor behavior based on memory attributes and instruction type |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4424561A (en) * | 1980-12-31 | 1984-01-03 | Honeywell Information Systems Inc. | Odd/even bank structure for a cache memory |
US20030140228A1 (en) * | 2001-09-06 | 2003-07-24 | Binder Philip A. | Method and device for control by consumers over personal data |
US20030197638A1 (en) * | 2002-04-19 | 2003-10-23 | Enuvis, Inc. | Compensation for frequency adjustment in mobile communication-positioning device with shared oscillator |
US20070192828A1 (en) * | 2005-01-19 | 2007-08-16 | Stmicroelectronics S.R.L. | Enhanced security memory access method and architecture |
US20080162848A1 (en) * | 2006-12-30 | 2008-07-03 | Hewlett-Packard Development Company, L.P. | Controlling access to a memory region |
Family Cites Families (191)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3183498A (en) | 1961-10-02 | 1965-05-11 | Itt | Line-monitor circuit |
JPH0628885B2 (en) | 1986-12-19 | 1994-04-20 | 松下電器産業株式会社 | Injection molding machine |
AU601784B2 (en) | 1986-12-18 | 1990-09-20 | Honeywell Bull Inc. | Data processing system having a bus command generated by one subsystem on behalf of another subsystem |
JPH0628885Y2 (en) | 1987-05-26 | 1994-08-03 | 松下電工株式会社 | Box |
US5214760A (en) | 1988-08-26 | 1993-05-25 | Tektronix, Inc. | Adaptable multiple port data buffer |
US5497497A (en) | 1989-11-03 | 1996-03-05 | Compaq Computer Corp. | Method and apparatus for resetting multiple processors using a common ROM |
US5872967A (en) | 1989-12-29 | 1999-02-16 | Packard Bell Nec | Method for warm boot from reset |
US5249286A (en) | 1990-05-29 | 1993-09-28 | National Semiconductor Corporation | Selectively locking memory locations within a microprocessor's on-chip cache |
US5131040A (en) | 1991-02-28 | 1992-07-14 | Motorola, Inc. | Method for backing up and erasing encryption keys |
US6836548B1 (en) | 1991-10-29 | 2004-12-28 | The Commonwealth Of Australia | Communications security and trusted path method and means |
US5389738A (en) | 1992-05-04 | 1995-02-14 | Motorola, Inc. | Tamperproof arrangement for an integrated circuit device |
JPH0628885A (en) * | 1992-06-23 | 1994-02-04 | Takayama:Kk | Memory device |
JPH06236325A (en) | 1993-02-08 | 1994-08-23 | Sansei Denshi Japan Kk | Data storage device |
US5450082A (en) | 1993-11-29 | 1995-09-12 | Caterpillar Inc. | Single multi-purpose input for different types of sensors with data edge conditioning circuit or ADC to provide digital output |
US5600576A (en) | 1994-03-11 | 1997-02-04 | Northrop Grumman Corporation | Time stress measurement device |
JP2697621B2 (en) | 1994-07-29 | 1998-01-14 | 日本電気株式会社 | Signal cycle detection circuit and signal loss monitoring circuit |
JP3565583B2 (en) | 1994-08-31 | 2004-09-15 | 株式会社日立コミュニケーションテクノロジー | Semiconductor file storage device |
US6948070B1 (en) | 1995-02-13 | 2005-09-20 | Intertrust Technologies Corporation | Systems and methods for secure transaction management and electronic rights protection |
US5956377A (en) | 1996-05-31 | 1999-09-21 | Vtech Communications, Ltd. | Method and apparatus for synchronizing frames within a continuous stream of digital data |
SE516581C2 (en) | 1996-05-31 | 2002-01-29 | Totalfoersvarets Forskningsins | Auto-calibrating analog-to-digital converter and sensor device including such |
US5682328A (en) | 1996-09-11 | 1997-10-28 | Bbn Corporation | Centralized computer event data logging system |
US5825878A (en) | 1996-09-20 | 1998-10-20 | Vlsi Technology, Inc. | Secure memory management unit for microprocessor |
US5937063A (en) | 1996-09-30 | 1999-08-10 | Intel Corporation | Secure boot |
US6047376A (en) | 1996-10-18 | 2000-04-04 | Toshiba Information Systems (Japan) Corporation | Client-server system, server access authentication method, memory medium stores server-access authentication programs, and issuance device which issues the memory medium contents |
US6377691B1 (en) | 1996-12-09 | 2002-04-23 | Microsoft Corporation | Challenge-response authentication and key exchange for a connectionless security protocol |
US7580919B1 (en) | 1997-03-10 | 2009-08-25 | Sonicwall, Inc. | Query interface to policy server |
JPH10333898A (en) * | 1997-05-29 | 1998-12-18 | Nec Corp | Microcomputer |
US5987557A (en) | 1997-06-19 | 1999-11-16 | Sun Microsystems, Inc. | Method and apparatus for implementing hardware protection domains in a system with no memory management unit (MMU) |
US6161180A (en) * | 1997-08-29 | 2000-12-12 | International Business Machines Corporation | Authentication for secure devices with limited cryptography |
US6694460B2 (en) | 1997-09-11 | 2004-02-17 | Renesas Technology Corporation | Semiconductor memory device having deterioration determining function |
JP3204379B2 (en) | 1997-09-29 | 2001-09-04 | エヌイーシーマイクロシステム株式会社 | Nonvolatile semiconductor memory device |
US6078873A (en) | 1997-10-02 | 2000-06-20 | Cummins Engine Company, Inc. | Method and apparatus for real-time data stamping via datalink and volatile ECM timer/clock |
US6003117A (en) | 1997-10-08 | 1999-12-14 | Vlsi Technology, Inc. | Secure memory management unit which utilizes a system processor to perform page swapping |
IES80916B2 (en) | 1997-12-15 | 1999-06-30 | Tellabs Research Limited | Memory addressing |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6292898B1 (en) | 1998-02-04 | 2001-09-18 | Spyrus, Inc. | Active erasure of electronically stored data upon tamper detection |
DE19824362A1 (en) | 1998-05-30 | 1999-12-16 | Micronas Intermetall Gmbh | Process for monitoring the function of a sensor module and sensor module for carrying out the process |
JP2000200218A (en) | 1998-09-01 | 2000-07-18 | Texas Instr Inc <Ti> | Microprocessor with cache memory |
US6463535B1 (en) * | 1998-10-05 | 2002-10-08 | Intel Corporation | System and method for verifying the integrity and authorization of software before execution in a local platform |
US6553496B1 (en) * | 1999-02-01 | 2003-04-22 | Koninklijke Philips Electronics N.V. | Integration of security modules on an integrated circuit |
US6745306B1 (en) * | 1999-07-29 | 2004-06-01 | Microsoft Corporation | Method and system for restricting the load of physical address translations of virtual addresses |
US6289455B1 (en) | 1999-09-02 | 2001-09-11 | Crypotography Research, Inc. | Method and apparatus for preventing piracy of digital content |
WO2001029776A1 (en) | 1999-10-18 | 2001-04-26 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
US6928551B1 (en) * | 1999-10-29 | 2005-08-09 | Lockheed Martin Corporation | Method and apparatus for selectively denying access to encoded data |
US6625727B1 (en) | 1999-11-23 | 2003-09-23 | Motorola, Inc. | Apparatus and method for configuring a data processing system by retrieving a configuration value from storage device using reset vector and configuring parameters after reset |
US6704865B1 (en) | 1999-12-23 | 2004-03-09 | Delphi Technologies, Inc. | Microprocessor conditional deterministic reset vector method |
US6512289B1 (en) | 2000-05-09 | 2003-01-28 | Xilinx, Inc. | Direct current regulation on integrated circuits under high current design conditions |
US6789182B1 (en) | 2000-11-13 | 2004-09-07 | Kevin Jay Brothers | System and method for logging computer event data and physical components of a complex distributed system |
US6938164B1 (en) | 2000-11-22 | 2005-08-30 | Microsoft Corporation | Method and system for allowing code to be securely initialized in a computer |
JP4074057B2 (en) | 2000-12-28 | 2008-04-09 | 株式会社東芝 | Method for sharing encrypted data area among tamper resistant processors |
US6859876B2 (en) | 2000-12-29 | 2005-02-22 | Hewlett-Packard Development Company, L.P. | System and method for detecting and using a replacement boot block during initialization by an original boot block |
US20040088333A1 (en) | 2002-01-25 | 2004-05-06 | David Sidman | Apparatus method and system for tracking information access |
GB2372597B (en) | 2001-02-27 | 2005-08-10 | Hewlett Packard Co | Device and method for data timestamping |
JP2002269065A (en) | 2001-03-08 | 2002-09-20 | Mitsubishi Electric Corp | Microcomputer with incorporated programmable nonvolatile memory |
US6466048B1 (en) | 2001-05-23 | 2002-10-15 | Mosaid Technologies, Inc. | Method and apparatus for switchably selecting an integrated circuit operating mode |
US7237121B2 (en) | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
US7242766B1 (en) * | 2001-11-21 | 2007-07-10 | Silicon Image, Inc. | Method and system for encrypting and decrypting data using an external agent |
JP2003167649A (en) | 2001-11-28 | 2003-06-13 | Mitsubishi Electric Corp | Information processor |
US7107459B2 (en) | 2002-01-16 | 2006-09-12 | Sun Microsystems, Inc. | Secure CPU and memory management unit with cryptographic extensions |
US7065651B2 (en) | 2002-01-16 | 2006-06-20 | Microsoft Corporation | Secure video card methods and systems |
JP2003240810A (en) | 2002-02-14 | 2003-08-27 | Mitsubishi Electric Corp | Break detection circuit |
US6715085B2 (en) | 2002-04-18 | 2004-03-30 | International Business Machines Corporation | Initializing, maintaining, updating and recovering secure operation within an integrated system employing a data access control function |
US7603551B2 (en) | 2003-04-18 | 2009-10-13 | Advanced Micro Devices, Inc. | Initialization of a computer system including a secure execution mode-capable processor |
US7089419B2 (en) | 2002-04-18 | 2006-08-08 | International Business Machines Corporation | Control function with multiple security states for facilitating secure operation of an integrated system |
US7185249B2 (en) | 2002-04-30 | 2007-02-27 | Freescale Semiconductor, Inc. | Method and apparatus for secure scan testing |
US7512810B1 (en) | 2002-09-11 | 2009-03-31 | Guardian Data Storage Llc | Method and system for protecting encrypted files transmitted over a network |
US20040054859A1 (en) * | 2002-09-13 | 2004-03-18 | Chanson Lin | Mouse device capable of storing data |
US7761904B2 (en) * | 2002-09-30 | 2010-07-20 | Harris Corporation | Removable cryptographic ignition key system and method |
GB2396712B (en) | 2002-11-18 | 2005-12-07 | Advanced Risc Mach Ltd | Handling multiple interrupts in a data processing system utilising multiple operating systems |
EP1563388A2 (en) | 2002-11-18 | 2005-08-17 | ARM Limited | Secure memory for protecting against malicious programs |
DE60306952T2 (en) | 2002-11-18 | 2007-02-08 | Arm Ltd., Cherry Hinton | ALLOCATION OF VIRTUAL TO PHYSICAL MEMORY ADDRESSES IN A SYSTEM WITH A SAFE AREA AND A NON-SAFE AREA |
GB0229759D0 (en) | 2002-12-20 | 2003-01-29 | Becrypt Ltd | Security device |
FR2849233B1 (en) * | 2002-12-24 | 2005-05-20 | Trusted Logic | METHOD FOR SECURING COMPUTER SYSTEMS BY SOFTWARE CONFINEMENT |
GB2413914B (en) | 2003-01-16 | 2007-04-04 | Obs Inc | Systems and methods for mobile security and monitoring |
JP3880933B2 (en) | 2003-01-21 | 2007-02-14 | 株式会社東芝 | Data access control method using tamper resistant microprocessor and cache memory processor |
WO2004073163A1 (en) * | 2003-02-11 | 2004-08-26 | Koninklijke Philips Electronics N. V. | Self zeroing for critical, continuous-time applications |
JP4082261B2 (en) | 2003-03-31 | 2008-04-30 | 株式会社デンソー | Disconnection detection circuit for sensor device |
JP2004326671A (en) * | 2003-04-28 | 2004-11-18 | National Institute Of Advanced Industrial & Technology | Remote calibration system for metering instrument and remote calibration method for metering instrument |
US20040267847A1 (en) * | 2003-05-13 | 2004-12-30 | Bsi2000, Inc. | Hardware random-number generator |
US7360073B1 (en) | 2003-05-15 | 2008-04-15 | Pointsec Mobile Technologies, Llc | Method and apparatus for providing a secure boot for a computer system |
CN100363855C (en) | 2003-07-04 | 2008-01-23 | 诺基亚有限公司 | Key storage administration |
US8055910B2 (en) | 2003-07-07 | 2011-11-08 | Rovi Solutions Corporation | Reprogrammable security for controlling piracy and enabling interactive content |
US20050091554A1 (en) | 2003-08-07 | 2005-04-28 | Dmitrii Loukianov | Event time-stamping |
US7062615B2 (en) | 2003-08-29 | 2006-06-13 | Emulex Design & Manufacturing Corporation | Multi-channel memory access arbitration method and system |
KR101044937B1 (en) * | 2003-12-01 | 2011-06-28 | 삼성전자주식회사 | Home network system and method thereof |
US8504798B2 (en) | 2003-12-30 | 2013-08-06 | Sandisk Technologies Inc. | Management of non-volatile memory systems having large erase blocks |
US7299347B1 (en) * | 2004-04-02 | 2007-11-20 | Super Talent Electronics, Inc. | Boot management in computer systems assisted by an endpoint with PCI-XP or USB-V2 interface |
DE102004024002B4 (en) | 2004-05-14 | 2008-05-21 | Aim Infrarot-Module Gmbh | Method for authenticating sensor data and associated sensor |
US7222053B2 (en) | 2004-07-12 | 2007-05-22 | Mack Trucks, Inc. | Event-driven portable data bus message logger |
US8656185B2 (en) | 2004-07-30 | 2014-02-18 | Safenet, Inc. | High-assurance processor active memory content protection |
US7890769B2 (en) | 2004-08-04 | 2011-02-15 | Broadcom Corporation | System and method for secure code downloading |
US20060095726A1 (en) | 2004-08-31 | 2006-05-04 | Ivivity, Inc. | Independent hardware based code locator |
US7818574B2 (en) * | 2004-09-10 | 2010-10-19 | International Business Machines Corporation | System and method for providing dynamically authorized access to functionality present on an integrated circuit chip |
US20060059373A1 (en) | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | Integrated circuit chip for encryption and decryption using instructions supplied through a secure interface |
US20060059368A1 (en) * | 2004-09-10 | 2006-03-16 | International Business Machines Corporation | System and method for processing by distinct entities securely configurable circuit chips |
US7237094B2 (en) | 2004-10-14 | 2007-06-26 | International Business Machines Corporation | Instruction group formation and mechanism for SMT dispatch |
US8621597B1 (en) * | 2004-10-22 | 2013-12-31 | Xilinx, Inc. | Apparatus and method for automatic self-erasing of programmable logic devices |
US8332653B2 (en) | 2004-10-22 | 2012-12-11 | Broadcom Corporation | Secure processing environment |
US7774619B2 (en) | 2004-11-17 | 2010-08-10 | Broadcom Corporation | Secure code execution using external memory |
US7457960B2 (en) | 2004-11-30 | 2008-11-25 | Analog Devices, Inc. | Programmable processor supporting secure mode |
KR100654446B1 (en) | 2004-12-09 | 2006-12-06 | 삼성전자주식회사 | Apparatus and method for Secure booting |
US8601283B2 (en) * | 2004-12-21 | 2013-12-03 | Sandisk Technologies Inc. | Method for versatile content control with partitioning |
WO2006069274A2 (en) | 2004-12-21 | 2006-06-29 | Sandisk Corporation | Versatile content control with partitioning |
US7725703B2 (en) * | 2005-01-07 | 2010-05-25 | Microsoft Corporation | Systems and methods for securely booting a computer with a trusted processing module |
JP4522372B2 (en) | 2005-02-07 | 2010-08-11 | 株式会社ソニー・コンピュータエンタテインメント | Method and apparatus for implementing a secure session between a processor and an external device |
JP4489030B2 (en) | 2005-02-07 | 2010-06-23 | 株式会社ソニー・コンピュータエンタテインメント | Method and apparatus for providing a secure boot sequence within a processor |
US20060184791A1 (en) | 2005-02-14 | 2006-08-17 | Schain Mariano R | Encryption/decryption mechanism of network deployed executable image for secure boot of a device embedded in an un-trusted host |
JP2009510808A (en) | 2005-02-18 | 2009-03-12 | クレダント テクノロジーズ、インク. | Intelligence-based security systems and methods |
US7321314B2 (en) | 2005-03-09 | 2008-01-22 | Intel Corporation | Device, system and method of detection of input unit disconnection |
US20060215437A1 (en) | 2005-03-28 | 2006-09-28 | Trika Sanjeev N | Recovering from memory imprints |
FR2883998A1 (en) | 2005-04-05 | 2006-10-06 | St Microelectronics Sa | Coprocessor`s control execution securing method for e.g. microcontroller, involves placing coprocessor in default error mode from commencement of execution of control accomplished by coprocessor |
US7571475B2 (en) * | 2005-04-05 | 2009-08-04 | Cisco Technology, Inc. | Method and electronic device for triggering zeroization in an electronic device |
US7336212B2 (en) * | 2005-05-02 | 2008-02-26 | Ati Technologies Inc. | Apparatus and methods for measurement of analog voltages in an integrated circuit |
US7549064B2 (en) | 2005-05-10 | 2009-06-16 | Hewlett-Packard Development Company, L.P. | Secure circuit assembly |
US7793067B2 (en) * | 2005-08-12 | 2010-09-07 | Globalfoundries Inc. | Translation data prefetch in an IOMMU |
US20070067644A1 (en) | 2005-08-26 | 2007-03-22 | International Business Machines Corporation | Memory control unit implementing a rotating-key encryption algorithm |
DE602005011967D1 (en) | 2005-09-09 | 2009-02-05 | Infineon Technologies Ag | JTAG port |
US7218567B1 (en) | 2005-09-23 | 2007-05-15 | Xilinx, Inc. | Method and apparatus for the protection of sensitive data within an integrated circuit |
US7496727B1 (en) | 2005-12-06 | 2009-02-24 | Transmeta Corporation | Secure memory access system and method |
JP4643427B2 (en) | 2005-12-08 | 2011-03-02 | 株式会社日立製作所 | Storage system with built-in encryption function |
US7657754B2 (en) * | 2005-12-08 | 2010-02-02 | Agere Systems Inc | Methods and apparatus for the secure handling of data in a microcontroller |
US8001374B2 (en) | 2005-12-16 | 2011-08-16 | Lsi Corporation | Memory encryption for digital video |
US7379325B1 (en) | 2005-12-16 | 2008-05-27 | Maxim Intergrated Products, Inc. | Non-imprinting memory with high speed erase |
US7398441B1 (en) | 2005-12-21 | 2008-07-08 | Rockwell Collins, Inc. | System and method for providing secure boundary scan interface access |
US20070237325A1 (en) | 2006-02-01 | 2007-10-11 | Gershowitz Michael N | Method and apparatus to improve security of cryptographic systems |
US7792302B2 (en) | 2006-02-01 | 2010-09-07 | Dolby Laboratories Licensing Corporation | Securely coupling an FPGA to a security IC |
US8291226B2 (en) | 2006-02-10 | 2012-10-16 | Qualcomm Incorporated | Method and apparatus for securely booting from an external storage device |
US7512719B1 (en) | 2006-03-16 | 2009-03-31 | American Megatrends, Inc. | Sharing a dynamically located memory block between components executing in different processor modes in an extensible firmware interface environment |
US8060744B2 (en) * | 2006-03-23 | 2011-11-15 | Harris Corporation | Computer architecture for an electronic device providing single-level secure access to multi-level secure file system |
EP1845470B1 (en) | 2006-04-13 | 2016-11-09 | STMicroelectronics (Research & Development) Limited | Multiple purpose integrated circuit |
US20070288740A1 (en) | 2006-06-09 | 2007-12-13 | Dale Jason N | System and method for secure boot across a plurality of processors |
US7424398B2 (en) | 2006-06-22 | 2008-09-09 | Lexmark International, Inc. | Boot validation system and method |
US7757098B2 (en) | 2006-06-27 | 2010-07-13 | Intel Corporation | Method and apparatus for verifying authenticity of initial boot code |
US8560863B2 (en) | 2006-06-27 | 2013-10-15 | Intel Corporation | Systems and techniques for datapath security in a system-on-a-chip device |
US7886355B2 (en) * | 2006-06-30 | 2011-02-08 | Motorola Mobility, Inc. | Subsidy lock enabled handset device with asymmetric verification unlocking control and method thereof |
GB2439968B (en) | 2006-07-07 | 2011-05-25 | Advanced Risc Mach Ltd | Memory testing |
US7475226B2 (en) | 2006-09-20 | 2009-01-06 | International Business Machines Corporation | System for managing data dependency using bit field instruction destination vector identifying destination for execution results |
US8732854B2 (en) | 2006-11-01 | 2014-05-20 | Time Warner Cable Enterprises Llc | Methods and apparatus for premises content distribution |
US7414553B1 (en) | 2006-11-17 | 2008-08-19 | Zilog, Inc. | Microcontroller having in-situ autocalibrated integrating analog-to-digital converter (IADC) |
US8254568B2 (en) | 2007-01-07 | 2012-08-28 | Apple Inc. | Secure booting a computing device |
US8725974B2 (en) | 2007-01-17 | 2014-05-13 | Oracle America, Inc. | Page-protection based memory access barrier traps |
US8615665B2 (en) | 2007-01-26 | 2013-12-24 | Harris Corporation | Method for providing high assurance integrity of installed software images in a software defined radio |
US8151118B2 (en) * | 2007-01-29 | 2012-04-03 | Microsoft Corporation | Master-slave security devices |
JP2008192036A (en) | 2007-02-07 | 2008-08-21 | Renesas Technology Corp | Microcontroller |
JP4933946B2 (en) | 2007-04-18 | 2012-05-16 | 株式会社日立製作所 | External storage device and information leakage prevention method |
EP2164020B1 (en) | 2007-05-11 | 2014-02-26 | Nagrastar L.L.C. | Apparatus for controlling processor execution in a secure environment |
JP2008310270A (en) * | 2007-06-18 | 2008-12-25 | Panasonic Corp | Cryptographic equipment and cryptography operation method |
US20090031135A1 (en) | 2007-07-27 | 2009-01-29 | Raghunathan Kothandaraman | Tamper Proof Seal For An Electronic Document |
US7895426B2 (en) | 2007-08-24 | 2011-02-22 | International Business Machines Corporation | Secure power-on reset engine |
US7937596B2 (en) | 2007-08-30 | 2011-05-03 | Harris Corporation | Adaptable microcontroller based security monitor |
JP4993733B2 (en) | 2007-09-28 | 2012-08-08 | 東芝ソリューション株式会社 | Cryptographic client device, cryptographic package distribution system, cryptographic container distribution system, and cryptographic management server device |
US8082439B2 (en) | 2007-12-06 | 2011-12-20 | Hewlett-Packard Development Company, L.P. | Firmware modification in a computer system environment supporting operational state changes |
EP2232759B1 (en) | 2007-12-13 | 2018-08-15 | Symantec Corporation | Apparatus and method for facilitating cryptographic key management services |
US7729156B2 (en) | 2007-12-26 | 2010-06-01 | Texas Instruments Incorporated | Cycling to mitigate imprint in ferroelectric memories |
US7667997B2 (en) | 2007-12-27 | 2010-02-23 | Texas Instruments Incorporated | Method to improve ferroelectronic memory performance and reliability |
US8495438B2 (en) | 2007-12-28 | 2013-07-23 | Texas Instruments Incorporated | Technique for memory imprint reliability improvement |
US8175276B2 (en) | 2008-02-04 | 2012-05-08 | Freescale Semiconductor, Inc. | Encryption apparatus with diverse key retention schemes |
KR101484110B1 (en) * | 2008-02-29 | 2015-01-28 | 삼성전자주식회사 | Memory controller and memory device thereof |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
DE102008021567B4 (en) * | 2008-04-30 | 2018-03-22 | Globalfoundries Inc. | Computer system with secure boot mechanism based on symmetric key encryption |
US8607034B2 (en) | 2008-05-24 | 2013-12-10 | Via Technologies, Inc. | Apparatus and method for disabling a microprocessor that provides for a secure execution mode |
US8819839B2 (en) * | 2008-05-24 | 2014-08-26 | Via Technologies, Inc. | Microprocessor having a secure execution mode with provisions for monitoring, indicating, and managing security levels |
US7958130B2 (en) | 2008-05-26 | 2011-06-07 | Microsoft Corporation | Similarity-based content sampling and relevance feedback |
CN101620466A (en) | 2008-06-30 | 2010-01-06 | 鸿富锦精密工业(深圳)有限公司 | Password protection system and method and password generation device |
US8484486B2 (en) * | 2008-08-06 | 2013-07-09 | Silver Spring Networks, Inc. | Integrated cryptographic security module for a network node |
US8051467B2 (en) | 2008-08-26 | 2011-11-01 | Atmel Corporation | Secure information processing |
US8452984B2 (en) * | 2008-08-28 | 2013-05-28 | Alcatel Lucent | Message authentication code pre-computation with applications to secure memory |
US20100064125A1 (en) | 2008-09-11 | 2010-03-11 | Mediatek Inc. | Programmable device and booting method |
US10802990B2 (en) | 2008-10-06 | 2020-10-13 | International Business Machines Corporation | Hardware based mandatory access control |
WO2010041462A1 (en) * | 2008-10-10 | 2010-04-15 | パナソニック株式会社 | Information processing device, information processing method, information processing program, and integrated circuit |
CN101478538B (en) | 2008-12-31 | 2012-06-06 | 成都市华为赛门铁克科技有限公司 | Storage method, apparatus or system for safety management device |
US7949912B1 (en) | 2009-01-15 | 2011-05-24 | Xilinx, Inc. | System and method of securing data stored in a memory |
US20100268942A1 (en) | 2009-04-15 | 2010-10-21 | Secuware | Systems and Methods for Using Cryptographic Keys |
JP2010282352A (en) | 2009-06-03 | 2010-12-16 | Renesas Electronics Corp | Dma transfer control device |
US8970344B2 (en) | 2009-07-14 | 2015-03-03 | Compx International Inc. | Method and system for data control in electronic locks |
US8644622B2 (en) | 2009-07-30 | 2014-02-04 | Xerox Corporation | Compact signature for unordered vector sets with application to image retrieval |
CN101995301B (en) | 2009-08-20 | 2012-08-01 | 上海华虹Nec电子有限公司 | Temperature detection circuit of integrated circuit and calibration method thereof |
JP5662092B2 (en) | 2009-10-27 | 2015-01-28 | 株式会社ソニー・コンピュータエンタテインメント | Electronic parts and inspection system |
WO2011058533A2 (en) | 2009-11-16 | 2011-05-19 | Discretix Technologies Ltd. | Methods circuits devices and systems for provisioning of cryptographic data to one or more electronic devices |
US20110154501A1 (en) | 2009-12-23 | 2011-06-23 | Banginwar Rajesh P | Hardware attestation techniques |
JP5440613B2 (en) | 2009-12-28 | 2014-03-12 | 富士通株式会社 | Power supply control device and power supply control method |
TW201741925A (en) * | 2010-04-12 | 2017-12-01 | 內數位專利控股公司 | Staged control release in boot process |
US20120185636A1 (en) * | 2010-08-04 | 2012-07-19 | Isc8, Inc. | Tamper-Resistant Memory Device With Variable Data Transmission Rate |
US9030953B2 (en) | 2011-03-04 | 2015-05-12 | Alcatel Lucent | System and method providing resilient data transmission via spectral fragments |
US8667244B2 (en) | 2011-03-21 | 2014-03-04 | Hewlett-Packard Development Company, L.P. | Methods, systems, and apparatus to prevent memory imprinting |
US20140149729A1 (en) | 2011-07-18 | 2014-05-29 | Ted A. Hadley | Reset vectors for boot instructions |
US8527675B2 (en) | 2011-07-27 | 2013-09-03 | Raytheon Company | System and method for implementing a secure processor data bus |
US9759763B2 (en) | 2011-07-28 | 2017-09-12 | Integrated Technology Corporation | Damage reduction method and apparatus for destructive testing of power semiconductors |
EP2665032A1 (en) | 2012-05-14 | 2013-11-20 | Thomson Licensing | Methods and devices for 3d object protection using surface subdivision |
US8572410B1 (en) * | 2012-07-18 | 2013-10-29 | Freescale Semiconductor, Inc. | Virtualized protected storage |
EP2808804A1 (en) | 2013-05-29 | 2014-12-03 | Fujitsu Ltd. | Database controller, method, and program for handling range queries |
-
2011
- 2011-12-15 US US14/233,310 patent/US20140149729A1/en not_active Abandoned
- 2011-12-15 WO PCT/US2011/065066 patent/WO2013012435A1/en active Application Filing
- 2011-12-15 US US14/233,321 patent/US9465755B2/en active Active
- 2011-12-15 WO PCT/US2011/065081 patent/WO2013012436A1/en active Application Filing
- 2011-12-22 CN CN201180072367.9A patent/CN103688269A/en active Pending
- 2011-12-22 US US14/232,217 patent/US20140164793A1/en not_active Abandoned
- 2011-12-22 EP EP11869688.9A patent/EP2734951A4/en not_active Withdrawn
- 2011-12-22 WO PCT/US2011/066750 patent/WO2013012437A1/en active Application Filing
-
2012
- 2012-01-06 WO PCT/US2012/020528 patent/WO2012177295A1/en active Application Filing
- 2012-01-06 US US14/232,229 patent/US20140140512A1/en not_active Abandoned
- 2012-01-20 US US13/355,315 patent/US8930154B2/en active Active
- 2012-01-31 US US14/232,224 patent/US9483422B2/en active Active
- 2012-01-31 CN CN201280035799.7A patent/CN103890852A/en active Pending
- 2012-01-31 WO PCT/US2012/023385 patent/WO2013012444A1/en active Application Filing
- 2012-01-31 EP EP12814537.2A patent/EP2735000A4/en not_active Withdrawn
- 2012-02-03 US US14/131,291 patent/US20140223113A1/en not_active Abandoned
- 2012-02-03 WO PCT/US2012/023794 patent/WO2013012447A1/en active Application Filing
- 2012-02-08 EP EP12814434.2A patent/EP2734903B1/en not_active Not-in-force
- 2012-02-08 US US14/130,871 patent/US9418026B2/en not_active Expired - Fee Related
- 2012-02-08 WO PCT/US2012/024367 patent/WO2013012449A1/en active Application Filing
- 2012-02-08 CN CN201280035506.5A patent/CN103733204A/en active Pending
- 2012-02-29 US US13/407,845 patent/US9015516B2/en active Active
- 2012-03-30 WO PCT/US2012/031542 patent/WO2013012461A1/en active Application Filing
- 2012-03-30 US US14/233,334 patent/US9418027B2/en not_active Expired - Fee Related
- 2012-04-25 US US13/455,867 patent/US20130024153A1/en not_active Abandoned
- 2012-04-30 US US13/459,523 patent/US20130024637A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4424561A (en) * | 1980-12-31 | 1984-01-03 | Honeywell Information Systems Inc. | Odd/even bank structure for a cache memory |
US20030140228A1 (en) * | 2001-09-06 | 2003-07-24 | Binder Philip A. | Method and device for control by consumers over personal data |
US20030197638A1 (en) * | 2002-04-19 | 2003-10-23 | Enuvis, Inc. | Compensation for frequency adjustment in mobile communication-positioning device with shared oscillator |
US20070192828A1 (en) * | 2005-01-19 | 2007-08-16 | Stmicroelectronics S.R.L. | Enhanced security memory access method and architecture |
US20080162848A1 (en) * | 2006-12-30 | 2008-07-03 | Hewlett-Packard Development Company, L.P. | Controlling access to a memory region |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9015516B2 (en) | 2011-07-18 | 2015-04-21 | Hewlett-Packard Development Company, L.P. | Storing event data and a time value in memory with an event logging module |
US9418027B2 (en) | 2011-07-18 | 2016-08-16 | Hewlett Packard Enterprise Development Lp | Secure boot information with validation control data specifying a validation technique |
US9465755B2 (en) | 2011-07-18 | 2016-10-11 | Hewlett Packard Enterprise Development Lp | Security parameter zeroization |
US20230418590A1 (en) * | 2022-06-22 | 2023-12-28 | Hewlett-Packard Development Company, L.P. | Instruction updates |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130024637A1 (en) | Memory access unlock | |
US11777705B2 (en) | Techniques for preventing memory timing attacks | |
TWI467383B (en) | Apparatus and method for accessing a secure partition in non-volatile storage and article comprising a non-transitory machine-accessible storage medium | |
EP3274850B1 (en) | Protecting a memory | |
EP3646223B1 (en) | Remote attestation for multi-core processor | |
US9710651B2 (en) | Secure processor for SoC initialization | |
US8522322B2 (en) | Platform firmware armoring technology | |
CN1808455A (en) | Secure license management | |
JP6682752B2 (en) | Techniques for strengthening data encryption using secure enclaves | |
JP2012089108A (en) | Security protection for memory content of processor main memory | |
US20180285600A1 (en) | Connected secure iot processor | |
EP3373187B1 (en) | Defensive techniques to increase computer security | |
EP3646224B1 (en) | Secure key storage for multi-core processor | |
CN101303721A (en) | Reducing information leakage between processes sharing a cache | |
Buhren et al. | Fault attacks on encrypted general purpose compute platforms | |
US20140344947A1 (en) | Method and apparatus for handling storage of context information | |
US20170286325A1 (en) | Method and system for defining logical block addressing (lba) access permission in storage devices | |
EP3782066B1 (en) | Nop sled defense | |
CN103745140A (en) | Program code protection method and device for microcontroller and other embedded systems | |
CN117471154A (en) | Burr detection unit, method, processing unit and computing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HADLEY, TED A.;REEL/FRAME:028189/0907 Effective date: 20120430 |
|
AS | Assignment |
Owner name: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP, TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.;REEL/FRAME:037079/0001 Effective date: 20151027 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO PAY ISSUE FEE |