WO2022256268A2 - Enhanced cryptography systems and methods - Google Patents
Enhanced cryptography systems and methods Download PDFInfo
- Publication number
- WO2022256268A2 WO2022256268A2 PCT/US2022/031453 US2022031453W WO2022256268A2 WO 2022256268 A2 WO2022256268 A2 WO 2022256268A2 US 2022031453 W US2022031453 W US 2022031453W WO 2022256268 A2 WO2022256268 A2 WO 2022256268A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cryptography
- tampering
- white
- keys
- computing device
- 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.)
- Ceased
Links
Classifications
-
- 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/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/101—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/51—Source to source
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/52—Binary to binary
-
- 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/16—Obfuscation or hiding, e.g. involving white box
Definitions
- the present disclosure relates to enhancements or extensions to cryptography systems and methods. More specifically, the present disclosure relates to (i) systems and methods for extending benefits of white-box cryptography protections to unsupported algorithms, and (ii) systems and methods for extending secure storage in secure cryptoprocessors.
- cryptoprocessors implementing cryptography solutions usually store or maintain secret keys in a secure memory of the cryptoprocessor.
- the secret keys are used only within the cryptoprocessor, and are not provided or released outside the cryptoprocessor. The confinement of the secret keys to the cryptoprocessor eliminates or mitigates chances of external access to secret keys.
- One embodiment relates to a method.
- the method includes maintaining, by a computing device in a memory, one or more cryptography keys encrypted using a white-box cryptography solution, the one or more cryptography keys to encrypt or decrypt data with a cryptography algorithm not supported by the white-box cryptography solution; performing, by the computing device, one or more anti-tampering verifications to detect tampering events for tampering with the computing device or an application installed on the computing device; and upon determining that no tampering event is detected, decrypting the one or more cryptography keys using the white-box cryptography solution and providing the one or more cryptography keys to encrypt or decrypt the data using the cryptography algorithm not supported by the white- box cryptography solution
- the apparatus includes a processing circuit having a processor and a memory storing executable instructions, the executable instructions when executed by the processor cause the processing circuit to: maintain, in the memory, one or more decryption keys encrypted using a white-box cryptography mechanism, the one or more decryption keys decrypt data encrypted with an encryption algorithm not supported by the white-box cryptography mechanism; perform one or more anti-tampering verifications to detect tampering events for tampering with the apparatus or an application installed on the apparatus; and upon determining that no tampering event is detected, decrypt the one or more decryption keys using the white-box cryptography mechanism and provide the one or more decryption keys to decrypt the data encrypted with the encryption algorithm not supported by the white-box cryptography mechanism.
- Still another embodiment relates to a computer-readable medium including computer code instructions stored thereon.
- the computer code instructions when executed by a processor cause the processor to: maintain, in a memory of a computing device, one or more decryption keys encrypted using a white-box cryptography mechanism, the one or more decryption keys to decrypt data encrypted with an encryption algorithm not supported by the white-box cryptography mechanism; perform one or more anti-tampering verifications to detect tampering events for tampering with the computing device or an application installed on the computing device; and upon determining that no tampering event is detected, decrypt the one or more decryption keys using the white-box cryptography mechanism, provide the one or more decryption keys to decrypt the data encrypted with the encryption algorithm not supported by the white-box cryptography mechanism
- the method includes a processing circuit maintaining, in a secure memory of a cryptoprocessor integrated in the processing circuit, a first set of cryptography resources, and maintaining, in a second memory of the processing circuit, an encrypted second set of cryptography resources.
- the method includes the processing circuit or the cryptoprocessor decrypting the second set of cryptography resources using at least one cryptography key from the first set of cryptography resources, and providing the decrypted second set of cryptography resources for use to encrypt or decrypt data.
- the method includes the processing circuit disabling debugging in the processing circuit.
- the processing circuit includes an electronic control unit (ECU).
- ECU electronice control unit
- disabling debugging in the processing circuit includes disabling a debugging port of the processing circuit.
- disabling debugging in the processing circuit includes turning off a debugger of the processing circuit in a production state of the processing circuit.
- the processing circuit can include a cryptoprocessor integrated in the processing circuit.
- the cryptoprocessor can include a secure memory.
- the processing circuit or the cryptoprocessor can maintain, in a secure memory of the cryptoprocessor integrated in the processing circuit, a first set of cryptography resources, and can maintain, in a second memory of the processing circuit, an encrypted second set of cryptography resources.
- the cryptoprocessor can decrypt the second set of cryptography resources using at least one cryptography key from the first set of cryptography resources, and provide the decrypted second set of cryptography resources for use to encrypt or decrypt data.
- the processing circuit or the cryptoprocessor can disable debugging in the processing circuit.
- the processing circuit can include an electronic control unit (ECU).
- ECU electronice control unit
- disabling debugging in the processing circuit can include disabling a debugging port of the processing circuit.
- disabling debugging in the processing circuit can include turning off a debugger of the processing circuit in a production state of the processing circuit.
- FIG. l is a block diagram of a computing device implementing a proposed approach for extending benefits of white-box cryptography protections to unsupported algorithms, according to an example embodiment.
- FIG. 2 is a flowchart illustrating a method for extending benefits of white-box cryptography protections to unsupported algorithms, according to an example embodiment.
- FIG. 3 is a block diagram of a cryptography system extending secure storage in secure cryptoprocessors, according to an example embodiment.
- FIG. 4 is a flowchart of a method for extending secure storage in secure cryptoprocessors, according to an example embodiment.
- Embodiments in the current disclosure address at least two technical problems that arise in cryptography systems and methods.
- a first technical problem is associated with white-box cryptography.
- the white-box cryptography mechanism or solutions provide enhanced security of secret keys, not all encryption algorithms are supported by white-box cryptography.
- Some of the embodiments described herein allow for extending benefits of white- box cryptography protection to encryption/decryption algorithms that are not supported by white-box cryptography.
- a second technical problem relates to limited secure storage in cryptoprocessors.
- the secure memory or storage in cryptoprocessors for storing secret keys or other secret information is usually very limited and can store only a predefined number of keys or a predefined amount of information that may not be sufficient to store all secret keys or secret information in some practical scenarios.
- a corresponding cryptographic key (or secret key) is usually retrieved at runtime from memory and passed to an encryption or decryption algorithm.
- a hacker can obtain the cryptographic key if the hacker gains access to the executing code or related data at runtime.
- the cryptography key can be stored in memory at runtime or can be stored as part of the binary code.
- White-box cryptography addresses the above discussed weakness or vulnerability, and improves the security of cryptography keys.
- White-box cryptography never exposes the cryptography key in memory or in the binary code. Instead, white-box cryptography solutions obfuscate, obscure and/or intermingle together the key and the encryption or decryption algorithm so that one cannot reconstruct the cryptography key even when accessing the executing code or the related execution data associated with an encryption event or a decryption event.
- White-box cryptography solutions can keep a derivative (or transformation) of the cryptography key for use to encrypt or decrypt data. Even if a hacker was to attach a debugger to device executing the white-box cryptography algorithm(s), the hacker would not be able to recover the cryptography key.
- white-box cryptography does not support all encryption or decryption algorithms.
- the white-box cryptography solution, or the corresponding library supports a limited set of cryptographic algorithms with corresponding cryptographic keys obfuscated therewith.
- Many companies or entities have legacy or proprietary systems (or applications) that use cryptographic algorithms which are not supported by any of the existing white-box cryptography solutions.
- Systems and methods described herein allow for extending the benefits (e.g., the enhanced security of secret keys) of white-box protection to cryptography algorithms not supported by white-box cryptography solutions.
- cryptographic algorithms supported by white-box cryptography can be used as intended and also to encrypt and/or decrypt the secret keys of unsupported cryptographic algorithms.
- anti-tampering technologies can be used to prevent or mitigate potential access to the secret keys of unsupported cryptographic algorithms when decrypted by white-box cryptographic algorithms.
- the systems and methods described herein can be viewed as comprising two main components; a cryptographic component or module to encrypt and/or decrypt secret keys associated with unsupported algorithms using white-box cryptography, and an anti-tampering module or component for checking or detecting tampering with the computing device, or any application installed thereon, that implements the proposed approach for extending the benefits of white-box protection to unsupported cryptography algorithms.
- the computing device 100 can include an application 102 installed thereon.
- the application 102 can include, or can have access to (e.g., via one or more application programming interfaces (APIs)), a white- box solution (or library) 104, a cryptography component 106 and an anti -tampering component 108.
- the application 102 can have access to, or store data in, a random access memory (or other memory) 110 of the computing device 100.
- the white-box solution 104 can include one or more white-box cryptography key derivatives 112, denoted as Key Derivative 1, ..., Key Derivative N.
- the cryptography component 106 can include an encrypted key blob, or an encrypted set of keys, 114 (e.g., an encrypted set of legacy keys).
- the encrypted set of keys 114 can represent cryptography keys associated with cryptographic algorithms not supported by the white-box solution 104 or the corresponding library.
- the encrypted set of keys 114 can be encrypted using an encryption algorithm supported by the by the white-box solution 104 or the corresponding library.
- the method 200 can include maintaining, in a memory, one or more cryptography keys encrypted using a white-box cryptography solution (STEP 202), and checking for tampering events (DECISION BLOCK 204).
- the method 200 can include decrypting the one or more cryptography keys using the white-box cryptography solution (STEP 206) and providing the one or more cryptography keys to decrypt data encrypted with an encryption algorithm not supported by the white-box cryptography solution (STEP 208), upon determining that no tampering event is detected.
- the method 200 can include halting execution of an application of a software integrating the steps of method 200 upon detecting a tampering event (STEP 210).
- the computing device 100 can include a software application 102 that integrates the cryptography component 106 and the anti -tampering component 108. Both components 106 and 108 can be implemented as a single software module that can be integrated in various software applications or programs.
- the software application 102 can integrate, or can have access via one or more APIs to, the white-box solution 104.
- the white-box solution 104, the cryptography component 106 and the anti -tampering component 108 can be executed by a processor (not shown in FIG. 1) of the computing device 100.
- the computing device 100 or the processor thereof can maintain, in a memory, a set of encrypted cryptography keys 114 that are encrypted using the white-box solution 104 (STEP 202).
- the computing device 100 or the processor upon executing the cryptography component 106, can encrypt a set of cryptography (or secret) keys 116 using an encryption algorithm supported by the white-box solution 104, and store the corresponding encrypted keys 114 in a memory of the computing device 100.
- the processor can store or maintain the encrypted keys 114 in a flash memory of the processor, e.g., with a source or binary code of the cryptography component 106.
- the processor may store or maintain the encrypted cryptography keys in the RAM 110.
- the cryptography keys 116 can be associated (or for use) with one or more cryptography algorithms not supported by the white-box solution 104.
- the cryptography keys 116 can be encryption keys or decryption keys for encrypting or decrypting data using encryption/decryption algorithm(s) not supported by the white-box solution 104.
- the processor, or the computing device 100 can execute the anti -tampering component 108 to perform one or more anti -tampering verifications to detect tampering events for tampering with the computing device 100 or an application 102 installed on the computing device (DECISION BLOCK 204).
- the one or more anti-tampering verifications can include at least one of an anti-debug verification (or check), an anti-root verification, an anti-jailbreak verification, an anti-hooking verification or a build-time integrity verification.
- the processor or the computing device 100 checks whether a debugger is attached to the computing device 100, the application 102 or any component thereof.
- a hacker may attach a debugger to determine or access the cryptography key(s) 116 once decrypted by the cryptography component 106.
- the anti -tampering component 108 when executed can halt execution (or prevent initiation) of the application 102 if a debugger is detected (STEP 210).
- the root is a special account which provides system administrator privileges across the whole system or the whole computing device 100.
- the anti-root verification includes the processor checking whether the computing device 100 was tampered with to cause the operating system to run as root and give the user of the computing device 100 elevated privileges for processes. Under root privileges, the user would have more privileges than the device was originally intended for. Root privileges give the user full access to all of the operating system, and the user can make changes and access various processes.
- the anti -tampering component 108 when executed, can cause the processor to halt execution (or prevent initiation) of the application 102 (STEP 210).
- the anti-jailbreak verification is conceptually equivalent to anti-root verification, but for Apple computing devices. In other words, hackers root Linux devices but jailbreak Apple devices.
- the technologies used to achieve each of these tampering events are different, and so are the techniques for checking for or detecting each of these tampering events.
- the anti tampering component 108 when executed, can cause the processor to check for tampering events to jailbreak the computing device 100 (for an Apple device), and halting execution (or preventing initiation) of the application 102 upon detecting such an event (STEP 210).
- the anti -tampering component 108 when executed, can cause the processor to check whether the application 102 was tampered with post build.
- the processor can check, at runtime, a signature of the application to determine whether the application was modified after it was compiled.
- the processor can halt execution (or prevent initiation) of the application 102 upon detecting a build-time integrity failure (STEP 210).
- the anti -tampering component 108 when executed, can cause the processor to check whether the computing device 100 or the application 102 has been tampered with to include a hook code to intercept function calls, events and/or messages between different software components.
- the processor can halt execution (or prevent initiation) of the application 102 upon detecting hooking event (STEP 210).
- the anti -tampering component 108 can cause the processor to periodically perform the one or more anti-tampering verifications during the execution of the application 102. For instance, the processor can perform the anti-tampering verifications before, during, and after decryption of the encrypted key blob 114. If at any point in time a tampering event is detected, the processor can automatically stop execution (or initiation) of the application 102 on the computing device 100 (STEP 210).
- the processor can decrypt the one or more encrypted cryptography keys 114 using the white-box cryptography solution (STEP 206 and Arrow 118), and provide the decrypted cryptography keys for use with a cryptography algorithm not supported by the white-box solution 104 to encrypt or decrypt data (STEP 208 and Arrow 120).
- the processor can use a decryption algorithm supported by the white-box solution 104 (and a corresponding key derivative) to decrypt the encrypted cryptography keys 114 associated with the unsupported cryptography algorithm.
- the processor can pass the corresponding decrypted keys 116 to the RAM 110 or other memory of the computing device 100.
- the processor can further use the decrypted keys 116 and the corresponding unsupported cryptography algorithm to encrypt or decrypt data.
- the cryptography keys 116 can be encryption keys or decryption keys.
- the unsupported cryptography algorithm and the corresponding cryptography key(s) 116 can enjoy similar protection or security as that provided by the white-box solution 104.
- the cryptography keys are maintained in encrypted form 114 using white-box supported encryption. Since white-box cryptography keys are never exposed, a hacker would not be able to decrypt the encrypted keys 114 if they access the source or binary code of the application 102.
- the anti -tampering component 108 prevents execution of the application if any tampering event is detected, therefore, preventing access to the decrypted cryptography keys 116.
- FIGS. 1 and 2 are described in terms of encrypting a cryptography key blob 114 using the white-box solution 104, the same approach can be used for other secret information e.g., other than cryptography keys.
- the secret information that can be encrypted using the white-box solution 104 can include digital or security certificates, signatures or other secret information or data.
- the computing device 100 can include a mobile device, a smart phone, a tablet device, a smart watch, a desktop, a laptop, a computer server or an electronic control unit (ECU) of a vehicle.
- the computing device 100 can have a Linux or Android operating system, an iOS, a Windows operating system or other operating system.
- the application 102 can be downloaded from an online application store and installed on the computing device 100.
- Secure built-in cryptoprocessors such as but not limited to hardware security modules (HSMs), secure hardware extension (SHE) specification based units or cryptographic service engine (CSEs) units usually have a secure memory for storing cryptography keys or other secret information.
- secure memory is usually limited and can store only a limited amount of security data.
- some secure cryptoprocessors can only store 25 or 30 cryptography keys.
- Such secure storage limitation puts a constraint on the number of protection or cryptography mechanisms that can be used.
- such cryptoprocessors are used in some ECUs therefore limiting the number of protection or cryptography mechanisms, such as legacy mechanisms, that can be used in the ECUs.
- embodiments described herein allow for extending secure storage in secure cryptoprocessors, and therefore increasing the number of protection or cryptography mechanisms that can be used.
- additional cryptography or secret information other than cryptography keys stored in the secure cryptoprocessor, can be stored in another memory in encrypted form.
- the additional cryptography or secret information can be decrypted using one or more of the cryptography keys stored in the secure cryptoprocessor.
- debugging can be disabled to prevent access of the additional cryptography or secret information when decrypted.
- FIG. 3 a block diagram of a processing circuit (or microprocessor) 300 structured to secure storage in secure cryptoprocessors is shown, according to an example embodiment.
- the processing circuit 300 can include a cryptoprocessor secure memory 302, a flash memory 304 and a RAM 306.
- the cryptoprocessor secure memory 302 can store a first set of cryptography resources 308, such as the cryptography keys Key_l-1, ..., Key_l-N.
- the flash memory 304 can store additional encrypted cryptography resources 310, such as the second set of cryptography keys denoted Key_2-1, ..., Key_2-M, which is stored in encrypted form.
- the cryptoprocessor can encrypt the second set of cryptography keys Key_2-1, ..., Key_2-M using one or more encryption algorithms associated with one or more cryptography keys of the first set of cryptography resources 308 stored in the cryptoprocessor secure memory 302.
- the processing circuit (or microprocessor) 300 can be structured or configured to disable debugging 314.
- the method 400 can include maintaining, in a first secure memory (e.g., of a secure cryptoprocessor), a first set of cryptography keys (STEP 402), and maintaining in a second memory an encrypted second set of cryptography keys (STEP 404).
- the method 400 can include decrypting the encrypted second set of cryptography keys using one or more first cryptography keys of the first set of cryptography keys (STEP 406), and providing the decrypted second set of cryptography keys for use to encrypt or decrypt data (STEP 408).
- the method 400 can include disabling debugging of a processing circuit including the cryptoprocessor or a memory storing the decrypted second set of cryptography keys (STEP 410).
- An apparatus e.g., a computing device, can include the processing circuit (or microprocessor) 300 or the processing circuit 300 can perform the method 400 described in FIG. 4.
- the cryptoprocessor can encrypt the second set of cryptography keys, or more generally a second set of secret information, using one or more encryption algorithms associated with one or more first cryptography keys of the first set of cryptography keys maintained in the cryptoprocessor.
- the processing circuitry 300 or the cryptoprocessor can maintain the encrypted second set of cryptography keys, or encrypted second set of secret information, in the flash memory 304 (STEP 404).
- the first set of cryptography keys or the first set of cryptography resources 308 would not be available to anyone and hence cannot be leaked by anyone. As a result, requests for any key (or any information) of the first set of cryptography keys or the first set of cryptography resources 308 from any agency can be denied based, e.g., as not available.
- the crypto processor can decrypt the encrypted second set of cryptography keys, or encrypted second set of secret information, using one or more first cryptography keys of the first set of cryptography keys maintained by the cryptoprocessor (STEP 406).
- the cryptoprocessor can decrypt the encrypted second set of cryptography keys, or encrypted second set of secret information, using a first cryptography key K_l-x.
- the decryption is performed within the cryptoprocessor so that the first cryptography key K_l-x (or any cryptography key of the first set of cryptography keys) is always maintained within the cryptoprocessor.
- the decrypted second set of cryptography keys, or decrypted second set of secret information can be stored in the RAM 306 (or other memory) for use to encrypt or decrypt data.
- Disabling debugging of the processing circuit (or microprocessor) 300 or the RAM 306 can include disabling a debug port (e.g., JTAG port, NEXUS port or other debug port) of the processing circuit (or microprocessor) 300 during production to prevent external access (e.g., by hackers) to the RAM 306, and therefore prevent access to the decrypted second set of cryptography keys, or decrypted second set of secret information, maintained in the RAM 306.
- a debug port e.g., JTAG port, NEXUS port or other debug port
- the debugger can be turned off in the processing circuit (or microprocessor) 300 when going from pre-production phase/state to production phase/state.
- the debugger can be turned on in the processing circuit (or microprocessor) 300 to go from production state to diagnosis state.
- the processing circuit (or microprocessor) 300 cannot be used in production anymore as the security of the second set of cryptography keys, or second set of secret information, is compromised when the debugger is turned on.
- the approach described above in relation with FIGS. 3 and 4 allows for using additional cryptography information outside the crypto processor in secure manner by using one or more cryptography keys maintained in the cryptoprocessor to encrypt or decrypt the additional cryptography information.
- the encrypted additional cryptography information can be maintained in another memory, e.g., flash memory 304, outside the cryptoprocessor.
- the disabling of the debugger in the processing circuit (or microprocessor) 300 prevents access to the additional cryptography information, especially when in decrypted form. Accordingly, the approach discussed above can be viewed as extending secure storage of cryptography (or secret) information in association with a cryptoprocessor.
- the processing circuit (or microprocessor) 300 can include an ECU, and the above discussed approach provides improved cybersecurity using limited existing resources in ECUs. Without storing the first key in the cryptoprocessor and disabling debugging, a hacker could reverse engineer (or de-obfuscate) the second set of cryptography information or keys from the flash memory 304 or access the second set of cryptography information or keys in memory (e.g., RAM 306) at runtime.
- memory e.g., RAM 306
- Coupled means the joining of two members directly or indirectly to one another. Such joining may be stationary (e.g., permanent or fixed) or moveable (e.g., removable or releasable). Such joining may be achieved with the two members coupled directly to each other, with the two members coupled to each other using one or more separate intervening members, or with the two members coupled to each other using an intervening member that is integrally formed as a single unitary body with one of the two members.
- circuit A communicably “coupled” to circuit B may signify that the circuit A communicates directly with circuit B (i.e., no intermediary) or communicates indirectly with circuit B (e.g., through one or more intermediaries).
- references herein to the positions of elements are merely used to describe the orientation of various elements in the FIGURES. It should be noted that the orientation of various elements may differ according to other exemplary embodiments, and that such variations are intended to be encompassed by the present disclosure.
- Embodiments within the scope of the present disclosure include program products comprising computer or machine-readable media for carrying or having computer or machine- executable instructions or data structures stored thereon.
- Such machine-readable media can be any available media that can be accessed by a computer.
- the computer readable medium may be a tangible computer readable storage medium storing the computer readable program code.
- the computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, holographic, micromechanical, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
- the computer readable medium may include but are not limited to a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a portable compact disc read-only memory (CD-ROM), a digital versatile disc (DVD), an optical storage device, a magnetic storage device, a holographic storage medium, a micromechanical storage device, or any suitable combination of the foregoing.
- a computer readable storage medium may be any tangible medium that can contain, and/or store computer readable program code for use by and/or in connection with an instruction execution system, apparatus, or device.
- Machine-executable instructions include, for example, instructions and data which cause a computer or processing machine to perform a certain function or group of functions.
- the computer readable medium may also be a computer readable signal medium.
- a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electrical, electro-magnetic, magnetic, optical, or any suitable combination thereof.
- a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport computer readable program code for use by or in connection with an instruction execution system, apparatus, or device.
- Computer readable program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, Radio Frequency (RF), or the like, or any suitable combination of the foregoing
- the computer readable medium may comprise a combination of one or more computer readable storage mediums and one or more computer readable signal mediums.
- computer readable program code may be both propagated as an electro magnetic signal through a fiber optic cable for execution by a processor and stored on RAM storage device for execution by the processor.
- Computer readable program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more other programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages.
- the computer readable program code may execute entirely on the apparatus/computing device (e.g., controller 104), partly on the apparatus/computing device (e.g., controller), as a stand-alone computer-readable package, partly on the apparatus/computing device and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the apparatus/computing device (e.g., controller) through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
- LAN local area network
- WAN wide area network
- Internet Service Provider an Internet Service Provider
- the program code may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the schematic flowchart diagrams and/or schematic block diagrams block or blocks.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/565,340 US20240259177A1 (en) | 2021-05-31 | 2022-05-27 | Enhanced cryptography systems and methods |
| CN202280037845.0A CN117378170A (en) | 2021-05-31 | 2022-05-27 | Enhanced cryptography systems and methods |
| DE112022001853.4T DE112022001853T5 (en) | 2021-05-31 | 2022-05-27 | IMPROVED CRYPTOGRAPHIC SYSTEMS AND METHODS |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163195080P | 2021-05-31 | 2021-05-31 | |
| US63/195,080 | 2021-05-31 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2022256268A2 true WO2022256268A2 (en) | 2022-12-08 |
| WO2022256268A3 WO2022256268A3 (en) | 2023-01-12 |
Family
ID=84324435
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2022/031453 Ceased WO2022256268A2 (en) | 2021-05-31 | 2022-05-27 | Enhanced cryptography systems and methods |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US20240259177A1 (en) |
| CN (1) | CN117378170A (en) |
| DE (1) | DE112022001853T5 (en) |
| WO (1) | WO2022256268A2 (en) |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5460699B2 (en) * | 2008-05-23 | 2014-04-02 | イルデト カナダ コーポレーション | System and method for generating a white-box implementation of a software application |
| EP2957062B1 (en) * | 2013-03-27 | 2021-07-21 | Irdeto B.V. | Tamper resistant cryptographic algorithm implementation |
| GB201400992D0 (en) * | 2014-01-21 | 2014-03-05 | Metaforic Ltd | Method of protecting dynamic cryptographic keys |
| US10412054B2 (en) * | 2014-06-24 | 2019-09-10 | Nxp B.V. | Method for introducing dependence of white-box implementation on a set of strings |
| US10546119B2 (en) * | 2016-11-14 | 2020-01-28 | Mastercard International Incorporated | Methods for securely storing sensitive data on mobile device |
| US10642979B1 (en) * | 2019-09-19 | 2020-05-05 | Capital One Services, Llc | System and method for application tamper discovery |
-
2022
- 2022-05-27 WO PCT/US2022/031453 patent/WO2022256268A2/en not_active Ceased
- 2022-05-27 US US18/565,340 patent/US20240259177A1/en active Pending
- 2022-05-27 CN CN202280037845.0A patent/CN117378170A/en active Pending
- 2022-05-27 DE DE112022001853.4T patent/DE112022001853T5/en active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2022256268A3 (en) | 2023-01-12 |
| CN117378170A (en) | 2024-01-09 |
| US20240259177A1 (en) | 2024-08-01 |
| DE112022001853T5 (en) | 2024-01-25 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20200125756A1 (en) | Implementing access control by system-on-chip | |
| US9514300B2 (en) | Systems and methods for enhanced security in wireless communication | |
| US8281115B2 (en) | Security method using self-generated encryption key, and security apparatus using the same | |
| CN104318135B (en) | A kind of Java code Safety actuality loading method based on credible performing environment | |
| US20080205651A1 (en) | Secure processor system without need for manufacturer and user to know encryption information of each other | |
| US10325105B2 (en) | Single-chip virtualizing and obfuscating storage system for portable computing devices | |
| US20170372085A1 (en) | Protecting data in a storage device | |
| TWI631462B (en) | Computing system and computing device-implemented method to secure on-board bus transactions and non-transitory computer readable storage medium | |
| Götzfried et al. | Analysing Android's Full Disk Encryption Feature. | |
| JP7256862B2 (en) | Secure communication method and system between protected containers | |
| US20080016127A1 (en) | Utilizing software for backing up and recovering data | |
| US9152798B1 (en) | Securely enabling content protection across a sandboxed application boundary | |
| US20180069707A1 (en) | Future constraints for hierarchical chain of trust | |
| US11044105B2 (en) | System, method, and computer program product for sensitive data recovery in high security systems | |
| US20170169196A1 (en) | Device and method for executing protected ios software modules | |
| US20130097663A1 (en) | Integrated Circuit For Cyber Security Processing | |
| Lee et al. | Classification and analysis of security techniques for the user terminal area in the Internet banking service | |
| US11783027B2 (en) | Systems and methods for managing state | |
| US20240259177A1 (en) | Enhanced cryptography systems and methods | |
| Abela et al. | Runtime verification for trustworthy computing | |
| US11615188B2 (en) | Executing software | |
| US12549359B2 (en) | Micro-controller, secure system, and protection method | |
| Selvaraj | Security and App Hardening | |
| Shanmugam | Securing inter-processor communication in automotive ECUs | |
| CN121765778A (en) | Storage area protection method and electronic equipment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22816691 Country of ref document: EP Kind code of ref document: A2 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 202280037845.0 Country of ref document: CN |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 112022001853 Country of ref document: DE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18565340 Country of ref document: US |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 22816691 Country of ref document: EP Kind code of ref document: A2 |