Method, system and apparatus for improved data encryption
By generating click strings that cannot be recreated, using the block properties and memory encryption characteristics of the nonvolatile data storage medium, the problem of difficulty in preventing fault injection attacks in the prior art is solved, and strong protection and security guarantees for sensitive data are achieved.
Patent Information
- Application Number
- CN202411395636.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-09
- Filing Date
- 2024-10-08
- Publication Date
- 2025-04-11
AI Technical Summary
The prior art is difficult to effectively defend against fault injection attacks, which has caused the security of data storage media to be compromised.
By generating click strings that cannot be recreated, a strong approval mechanism for sensitive data is achieved using the block properties and memory encryption characteristics of the nonvolatile data storage medium.
Effectively defend against fault injection attacks, enhance protection of sensitive data, ensure data security, and provide strong security even in the face of powerful attackers.
Smart Images

Figure CN119814344A_ABST
Abstract
Description
Technical Field
[0001] Example embodiments of the present disclosure relate generally to data processing, and more particularly to methods, systems, and apparatus for improving encryption of data on data storage media (such as, but not limited to, enforcing usage approvals for sensitive materials). Background Art
[0002] Applicants have identified a number of technical challenges and difficulties associated with data encryption. Summary of the invention
[0003] Various embodiments described herein relate to methods, apparatus, and systems for data encryption.
[0004] According to some embodiments of the present disclosure, an example method for generating a page based on a click string for data encryption is provided. In some embodiments, the click string generation page includes a first non-volatile data storage medium unit, and the first non-volatile data storage medium unit stores a first original trigger string. In some embodiments, the example method includes: generating a first over-programming trigger string by a processor by performing a first over-programming operation on the first non-volatile data storage medium unit; generating a first click string by a processor by performing a first computing operation based at least in part on the first original trigger string and the first over-programming trigger string; and generating an encrypted data storage medium by a processor by performing an encryption operation on an unencrypted data storage medium based at least in part on the first click string.
[0005] In some embodiments of some example methods, the click string generation page includes a second non-volatile data storage medium unit, and the second non-volatile data storage medium unit stores the second original trigger string.
[0006] In some embodiments of some example methods, generating a first overprogramming trigger string includes: receiving, by a processor, a second original trigger string from a second nonvolatile data storage medium unit; and performing, by the processor, a first overprogramming operation on the first nonvolatile data storage medium unit based on the second original trigger string.
[0007] In some embodiments, some example methods further include: applying a mask string on the first click string.
[0008] In some embodiments of some example methods, generating an encrypted data storage medium includes: generating, by a processor, a second overprogramming trigger string by performing a second overprogramming operation on a second non-volatile data storage medium unit; generating, by the processor, a second click string by performing a second computing operation based at least in part on the second original trigger string and the second overprogramming trigger string; and generating, by the processor, an encrypted data storage medium by performing an encryption operation on an unencrypted data storage medium based on the first click string and the second click string.
[0009] In some embodiments of some example methods, generating a second overprogramming trigger string includes: before generating the first overprogramming trigger string, receiving a first original trigger string from a first non-volatile data storage medium unit by a processor; and performing a second overprogramming operation on a second non-volatile data storage medium unit based on the first original trigger string by the processor.
[0010] In some embodiments, some example methods further include: applying a mask string on the second click string.
[0011] According to some embodiments of the present disclosure, an example computing device for data encryption based on a click string generation page is provided. In some embodiments, the click string generation page includes a first non-volatile data storage medium unit, and the first non-volatile data storage medium unit stores a first original trigger string. In some embodiments, the example computing device includes a memory, and one or more processors, which are communicatively coupled to the memory. In some embodiments, the one or more processors are configured to: generate a first overprogramming trigger string by performing a first overprogramming operation on the first non-volatile data storage medium unit; generate a first click string by performing a first computing operation based at least in part on the first original trigger string and the first overprogramming trigger string; and generate an encrypted data storage medium by performing an encryption operation on an unencrypted data storage medium based at least in part on the first click string.
[0012] In some embodiments of some example computing devices, the click string generation page includes a second non-volatile data storage medium unit, and the second non-volatile data storage medium unit stores the second original trigger string.
[0013] In some embodiments of some example computing devices, when a first overprogramming trigger string is generated, one or more processors are configured to: receive a second original trigger string from a second non-volatile data storage medium unit; and based on the second original trigger string, perform a first overprogramming operation on the first non-volatile data storage medium unit.
[0014] In some embodiments of some example computing devices, the one or more processors are configured to apply the mask string to the first click string.
[0015] In some embodiments of some example computing devices, when generating an encrypted data storage medium, one or more processors are configured to: generate a second overprogramming trigger string by performing a second overprogramming operation on a second non-volatile data storage medium unit; generate a second click string by performing a second computing operation based at least in part on the second original trigger string and the second overprogramming trigger string; and generate an encrypted data storage medium by performing an encryption operation on an unencrypted data storage medium based on the first click string and the second click string.
[0016] In some embodiments of some example computing devices, when a second overprogramming trigger string is generated, one or more processors are configured to: receive a first original trigger string from a first non-volatile data storage medium unit before generating a first overprogramming trigger string; and perform a second overprogramming operation on a second non-volatile data storage medium unit based on the first original trigger string.
[0017] In some embodiments of some example computing devices, the one or more processors are configured to apply the mask string to the second click string.
[0018] According to various embodiments of the present disclosure, one or more non-transitory computer-readable storage media for data encryption based on a click string generation page are provided. In some embodiments, the click string generation page includes a first non-volatile data storage medium unit, and the first non-volatile data storage medium unit stores a first original trigger string. In some embodiments, the one or more non-transitory computer-readable storage media include instructions, which, when executed by one or more processors, enable the one or more processors to: generate a first overprogramming trigger string by performing a first overprogramming operation on the first non-volatile data storage medium unit; generate a first click string by performing a first computing operation based at least in part on the first original trigger string and the first overprogramming trigger string; and generate an encrypted data storage medium by performing an encryption operation on an unencrypted data storage medium based at least in part on the first click string.
[0019] In some embodiments of some example non-transitory computer-readable storage media, the click string generation page includes a second non-volatile data storage medium unit that stores a second original trigger string.
[0020] In some embodiments of some example non-transitory computer-readable storage media, when a first overprogramming trigger string is generated, the instructions cause one or more processors to: receive a second original trigger string from a second non-volatile data storage medium unit; and based on the second original trigger string, perform a first overprogramming operation on the first non-volatile data storage medium unit.
[0021] In some embodiments of some non-transitory computer-readable storage media, the instructions cause one or more processors to: apply a mask string to the first click string.
[0022] In some embodiments of some example non-transitory computer-readable storage media, when generating an encrypted data storage medium, the instructions cause one or more processors to: generate a second overprogramming trigger string by performing a second overprogramming operation on a second non-volatile data storage medium unit; generate a second click string by performing a second computing operation based at least in part on the second original trigger string and the second overprogramming trigger string; and generate an encrypted data storage medium by performing an encryption operation on an unencrypted data storage medium based on the first click string and the second click string.
[0023] In some embodiments of some example non-transitory computer-readable storage media, when a second overprogramming trigger string is generated, the instructions cause one or more processors to: receive a first original trigger string from a first non-volatile data storage medium unit before generating a first overprogramming trigger string; and perform a second overprogramming operation on a second non-volatile data storage medium unit based on the first original trigger string.
[0024] In some embodiments of some example non-transitory computer-readable storage media, the instructions cause one or more processors to: apply a mask string on the second click string.
[0025] The above exemplary inventive content and other exemplary objects and / or advantages of the present disclosure, and the manner in which they are achieved are further explained in the following detailed description and its accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0026] The description of the exemplary embodiments may be read in conjunction with the accompanying drawings. It will be understood that for simplicity and clarity of illustration, the elements illustrated in the figures are not necessarily drawn to scale unless otherwise noted. For example, the dimensions of some elements may be exaggerated relative to other elements unless otherwise noted. Embodiments incorporating the teachings of the present disclosure are shown and described with respect to the drawings presented herein, in which:
[0027] Figure 1 Provides example schematic block diagrams illustrating example components associated with example apparatus according to some embodiments of the present disclosure;
[0028] Figure 2 Example electronic circuits according to some embodiments of the present disclosure are provided;
[0029] Figure 3 Provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure;
[0030] Figure 4 An example schematic block diagram illustrating an example non-volatile data storage medium unit associated with an example clickstring generation page according to some embodiments of the present disclosure is provided;
[0031] Figure 5 An example data operation chart illustrating data operations associated with an example non-volatile data storage medium unit of an example clickstring generation page according to some embodiments of the present disclosure is provided;
[0032] Figure 6 An example data operation chart illustrating data operations associated with an example non-volatile data storage medium unit of an example clickstring generation page according to some embodiments of the present disclosure is provided;
[0033] Figure 7 An example schematic block diagram illustrating an example non-volatile data storage medium unit associated with an example clickstring generation page according to some embodiments of the present disclosure is provided;
[0034] Figure 8 Provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure;
[0035] Fig. 9 An example data operation chart illustrating data operations associated with an example non-volatile data storage medium unit of an example clickstring generation page according to some embodiments of the present disclosure is provided;
[0036] Fig.10 Provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure;
[0037] Fig.11 An example schematic block diagram illustrating an example non-volatile data storage medium unit associated with an example clickstring generation page according to some embodiments of the present disclosure is provided;
[0038] Fig. 12A Provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure;
[0039] Fig. 12B Provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure;
[0040] Fig.13A Provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure;
[0041] Fig. 13B Provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure;
[0042] Fig.14A provides example flow charts illustrating example steps and / or example operations associated with example methods according to some embodiments of the present disclosure; and
[0043] Fig. 14B Example flow charts are provided that illustrate example steps and / or example operations associated with example methods according to some embodiments of the present disclosure. DETAILED DESCRIPTION
[0044] Some embodiments of the present disclosure will now be described more fully below in conjunction with the accompanying drawings, in which some, but not all, embodiments of the present disclosure are shown. In fact, these disclosures may be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein; rather, these embodiments are provided so that the present disclosure will satisfy applicable legal requirements. The same reference numerals refer to the same elements throughout.
[0045] As used herein, terms such as "front", "rear", "top", etc., are used for explanation purposes in the examples provided below to describe the relative positions of certain components or parts of components. In addition, based on this disclosure, it will be apparent to one of ordinary skill in the art that the terms "substantially" and "approximately" indicate that the referenced element or associated description is accurate to within applicable engineering tolerances.
[0046] As used herein, the term "comprising" means including but not limited to and should be interpreted in the manner in which it is commonly used in a patent context. The use of broad terms such as including, comprising, and having should be understood to support narrower terms such as consisting of, consisting essentially of, and consisting essentially of.
[0047] The phrases "in one embodiment," "according to one embodiment," etc. generally mean that the particular feature, structure, or characteristic following the phrase may be included in at least one embodiment of the present disclosure, and may be included in more than one embodiment of the present disclosure (importantly, such phrases do not necessarily refer to the same embodiment).
[0048] The terms “example” or “exemplary” are used herein to mean “serving as an example, instance, or illustration.” Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations.
[0049] If the specification states that a component or feature "may", "could", "might", "should", "will", "preferably", "likely", "typically", "optionally", "for example", "often", or "might" (or other such language) be included or have a property, the particular component or feature is not required to be included or have that property. Such a component or feature may optionally be included in some embodiments, or it may be excluded.
[0050] As noted above, there are many technical challenges and difficulties associated with data processing, such as, but not limited to, challenges and difficulties associated with encryption of data on data storage media.
[0051] For example, a "fault injection attack" or "fault attack" refers to a mechanism used to attack a computing system by intentionally introducing faults to cause the computing system to leak secure data and / or information stored in such computing system. For example, a fault injection attack on a non-volatile data storage medium involves intentionally introducing faults or errors into the non-volatile data storage medium (e.g., by manipulating voltage, temperature, clock frequency, etc.) to disrupt the normal operation of the non-volatile data storage medium and / or to gain unauthorized access to confidential or sensitive data stored in the non-volatile data storage medium.
[0052] Fault injection attacks can compromise data security and pose a significant challenge to data encryption on data storage media. Some approaches can provide solutions, such as but not limited to replication, SW code integrity checks (e.g., guards), hardware (HW) integrity checks, and / or fault detection (e.g., laser detectors), to address security risks caused by fault injection attacks. However, such solutions may be vulnerable to single-fault attacks or multiple-fault attacks and may be considered weak in some attack models (such as but not limited to attackers with FIB capabilities, attackers in high-value markets, etc.).
[0053] Some methods may use an approval mechanism to limit the use and / or access to confidential / sensitive resources stored in a data storage unit based on a small global limit. In such an approach, an example approval mechanism may limit the use of confidential / sensitive resources and / or access to confidential / sensitive resources by, for example, but not limited to, limiting the use of keys, the number of times a process to access confidential / sensitive resources can be executed, and the like. For example, an example approval mechanism may appear as a restriction on use within a given time period (such as, but not limited to, rate limiting) or as a restriction on the life cycle of a confidential / sensitive resource (e.g., a global limit). However, single-fault or multi-fault injection attacks may be performed against the approval mechanism. If such an attack is successful, an unauthorized party (including, but not limited to, an attacker) may gain access to confidential / sensitive resources, thereby compromising data security.
[0054] For example, the approval mechanism may implement a confidentiality key to unlock confidential / sensitive resources stored in a data storage medium. In such an example, a single or multiple fault injection attack on the approval mechanism may obtain or recreate such confidentiality key, thereby exposing the confidential / sensitive resources to unauthorized access.
[0055] Various embodiments of the present disclosure overcome these technical challenges and difficulties, and provide various technical benefits and advantages. For example, various embodiments of the present disclosure can overcome the technical challenges and security risks of fault injection attacks by generating click strings that cannot be recreated after using the click strings, and can strengthen the approval of the use of sensitive materials. In some embodiments, even in the presence of a powerful attacker (such as but not limited to an attacker with multi-fault capabilities), the example method according to the present disclosure can utilize the block properties associated with non-volatile data storage media (and optional EDC / ECC and memory encryption) to generate click strings that cannot be generated again.
[0056] In some embodiments, each click string may have a size of 64 bits, which corresponds to two words in a non-volatile data storage medium. For example, various embodiments of the present disclosure may implement an example setup process that occurs only once to generate one or more click strings. Such an example setup process may include initializing a computing device based on a click string to protect access to confidential / sensitive resources stored in a computing device. Various embodiments of the present disclosure may implement an example usage process based on a click string generation page to determine whether there is a next available click string. If the example usage process determines that there are no more available click strings, the example usage process is terminated, thereby preventing further access to confidential / sensitive resources stored in the computing device. If the example usage process determines that there are additional available click strings, the example usage process generates a click string based on the click string generation page, and stores the click string in RAM to unlock the confidential / sensitive resources stored in the computing device. After the confidential / sensitive resource is unlocked, the click string cannot be regenerated because the relevant data from the click string generation page is destroyed when the click string is generated.
[0057] Therefore, various embodiments of the present disclosure can overcome the technical challenges and difficulties associated with the security risks posed by fault injection attacks. For example, various embodiments of the present disclosure can provide a robust method for implementing an example global restriction approval mechanism, which is based on generating click strings with the help of non-volatile memory (such as but not limited to EEPROM or FLASH) with separate erase / program cycles. In some embodiments, the example approval mechanism can be used to restrict access to sensitive resources (such as data, IP blocks, or SW functions). In some embodiments, the example approval mechanism is powerful even in the presence of powerful attackers (e.g., controlled multi-fault capabilities). In some examples, the example approval mechanism can implement an interface similar to the erase-on-read memory interface (with some constraints).
[0058] Thus, various embodiments of the present disclosure provide various technical benefits and advantages, including but not limited to improved data security, the additional details described herein.
[0059] Reference now Figure 1 , illustrating an example schematic diagram of an example apparatus 100 according to some embodiments of the present disclosure.
[0060] In general, the terms "device," "controller," "computing entity," "computer," "entity," "equipment," "system," and / or similar terms used herein interchangeably refer to, for example, one or more computers, desktop computers, mobile phones, tablet computers, tablet phones, notebook computers, distributed systems, kiosks, input terminals, servers, server networks, blades, gateways, switches, processing devices, processing entities, set-top boxes, repeaters, routers, network access points, base stations, etc., and / or any combination of devices or entities adapted to perform the functions, operations, and / or processes described herein. Such functions, operations, and / or processes may include, for example, transmitting, receiving, operating, processing, displaying, storing, determining, creating, generating, monitoring, evaluating, comparing, and / or similar terms used interchangeably herein. In some embodiments, these functions, operations, and / or processes may be performed on data, content, information, and / or similar terms used interchangeably herein.
[0061] In some embodiments, the example apparatus 100 includes or is in communication with one or more processors (also referred to as processors, processing circuitry, and / or similar terms used interchangeably herein), such as, but not limited to, processors for performing operations such as, for example, Figure 1The processor 101 of other elements in the example device 100 shown in the illustrated example communicates (for example but not limited to via a bus). In some embodiments, the processor 101 can be embodied in several different ways. For example, the processor 101 can be embodied as one or more microcontrollers, microprocessors, controllers, multi-core processors, complex programmable logic devices (CPLDs), co-processing entities, application-specific instruction set processors (ASIPs), etc. Additionally or alternatively, the processor 101 can be embodied as one or more other forms of processing devices or circuit devices. In the present disclosure, the term "circuit device" can refer to a complete hardware embodiment or a combination of hardware and computer program products. In some embodiments, the processor 101 can be embodied as an integrated circuit, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic array (PLA), a hardware accelerator, other circuit devices, etc. In some embodiments, the processor 101 can be configured for a specific purpose, or configured to execute instructions stored in a volatile data storage medium 105, a non-volatile data storage medium 103 and / or can be accessed by the processor 101 in other ways. Therefore, whether configured by hardware or a computer program product, or by a combination thereof, the processor 101 may be capable of performing steps or operations according to embodiments of the present disclosure when configured accordingly.
[0062] In some embodiments, the example apparatus 100 includes: Figure 1The illustrated example shows or communicates with a nonvolatile data storage medium 103 (also referred to as a nonvolatile memory, a nonvolatile storage device, a nonvolatile medium, a nonvolatile memory storage device, a nonvolatile memory circuit device, and / or similar terms used interchangeably herein). In some embodiments, the nonvolatile data storage medium 103 may include, but is not limited to, a hard disk, a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), etc. Additionally or alternatively, in some embodiments, the nonvolatile data storage medium 103 may include, but is not limited to, a hard disk drive device (HDD), a solid-state drive device (SSD), a flash memory (such as but not limited to a serial flash memory, a NAND flash memory, a NOR flash memory, etc.), a multimedia memory card (MMC), a secure digital (SD) memory card, a SmartMedia card, a CompactFlash (CF) card, a memory stick, etc. Additionally or alternatively, the non-volatile data storage medium 103 may include, but is not limited to, conductive bridging random access memory (CBRAM), phase change RAM (PRAM), ferroelectric RAM (FeRAM), non-volatile RAM (NVRAM), magnetic RAM (MRAM), resistive RAM (RRAM), silicon-oxide-nitride-oxide-silicon (SONOS), floating junction gate RAM (FJG RAM), millipede memory, racetrack memory, etc.
[0063] In some embodiments, the non-volatile data storage medium 103 may store a database, a database instance, a database management system, data, an application, a program, a program module, a script, a source code, an object code, a bytecode, a compiled code, an interpreted code, a machine code, executable instructions, etc. The terms database, database instance, database management system, and / or similar terms used interchangeably herein may refer to a collection of records or data stored in a computer-readable storage medium using one or more database models (such as a hierarchical database model, a network model, a relational model, an entity-relationship model, an object model, a document model, a semantic model, a graph model, etc.).
[0064] In some embodiments, the example apparatus 100 includes: Figure 1The illustrated example shows or communicates with a volatile data storage medium 105 (also referred to as volatile memory, volatile storage, volatile media, volatile memory storage, volatile memory circuitry, and / or similar terms used interchangeably herein). In some embodiments, the volatile storage device or memory may also include, but is not limited to, random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), fast page mode dynamic random access memory (FPM DRAM), extended data output dynamic random access memory (EDO DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), double data rate type two synchronous dynamic random access memory (DDR2 SDRAM), double data rate type three synchronous dynamic random access memory (DDR3 SDRAM), Rambus dynamic random access memory (RDRAM), two-transistor RAM (TTRAM), thyristor RAM (T-RAM), zero capacitor (Z-RAM), Rambus in-line memory module (RIMM), dual in-line memory module (DIMM), single in-line memory module (SIMM), video random access memory (VRAM), cache memory (including various levels), etc. In some embodiments, the volatile data storage medium 105 may be used to store, for example, at least a portion of a database, a database instance, a database management system, data, an application, a program, a program module, a script, a source code, an object code, a bytecode, a compiled code, an interpreted code, a machine code, executable instructions, etc., which are executed by the processor 101. Thus, the database, the database instance, the database management system, data, an application, a program, a program module, a script, a source code, an object code, a bytecode, a compiled code, an interpreted code, a machine code, executable instructions, etc. may be used to control certain aspects of the operation of the example apparatus 100 with the assistance of the processor 101.
[0065] In some embodiments, the example apparatus 100 includes one or more interfaces (including but not limited to interfaces for communicating with at least one processor (such as but not limited to the above-mentioned Figure 1 processor 101) communication interface 107), volatile data storage medium (such as but not limited to the above Figure 1 Volatile data storage medium 105), non-volatile data storage medium (such as but not limited to the above Figure 1The interface 107 may be a non-volatile data storage medium 103), a computing entity, and / or other components. For example, the interface 107 may facilitate the transmission of data, content, information, and / or similar terms that may be used interchangeably herein that may be transmitted, received, manipulated, processed, displayed, stored, etc. In some embodiments, such communication may be performed with the aid of the interface 107 according to a wired data transmission protocol, such as, but not limited to, double data rate (DDR), peripheral component interconnect (PCI), PCI Express, serial advanced technology attachment (serial ATA), fiber distributed data interface (FDDI), digital subscriber line (DSL), Ethernet, asynchronous transfer mode (ATM), non-volatile memory express (NVMe), small computer system interface (SCSI), inter-integrated circuit (I2C), serial peripheral interface (SPI), universal serial bus (USB), frame relay, cable data service interface specification (DOCSIS), and / or any other wired transmission protocol. Additionally or alternatively, in some embodiments, the interface 107 can be configured to communicate via a wireless external communication network using any of a variety of protocols, such as, but not limited to, General Packet Radio Service (GPRS), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), CDMA2000 1X (1xRTT), Wideband Code Division Multiple Access (WCDMA), Global System for Mobile Communications (GSM), Enhanced Data Rates for GSM Evolution (EDGE), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Long Term Evolution (LTE), Evolved Universal Terrestrial Radio Access Network (E-UTRAN), Evolution-Data Optimized (EVDO), High Speed Packet Access (HSPA), High Speed Downlink Packet Access (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), Ultra-Wideband (UWB), Infrared (IR) protocol, Near Field Communication (NFC) protocol, Wibree, Bluetooth protocol, Wireless USB protocol and / or any other wireless protocol.
[0066] Although the above description provides example components of example devices according to some embodiments of the present disclosure, it should be noted that the scope of the present disclosure is not limited to the above description. In some examples, the example device 100 may include one or more additional and / or alternative components. For example, the example device 100 may include one or more input elements or communicate with one or more input elements, one or more input elements such as but not limited to keyboard input, mouse input, touch screen / display input, motion input, mobile input, audio input, pointing device input, joystick input, keypad input, etc. Additionally or alternatively, the example device 100 may include one or more output components or communicate with one or more output components, one or more output components such as but not limited to audio output, video output, screen / display output, motion output, mobile output, etc. Additionally or alternatively, the example device 100 may include one or more other components or communicate with one or more other components.
[0067] Figure 2 An embodiment of an electronic circuit 200 in block form is schematically shown, which electronic circuit 200 may implement example embodiments of the present disclosure.
[0068] In some embodiments, the electronic circuit 200 includes a processing unit 211 (PU), such as a state machine, a microprocessor, a programmable logic circuit, etc. In some embodiments, the electronic circuit 200 includes one or more volatile storage areas 212 (e.g., RAM or register type) for temporarily storing information (such as but not limited to instructions, addresses, data) during processing. In some embodiments, the electronic circuit 200 includes one or more non-volatile storage areas, including at least one flash type memory 202 (FLASH) for persistently storing information, especially when the circuit is not powered. In some embodiments, the electronic circuit 200 includes one or more data, address and / or control buses 214 between different elements inside the electronic circuit 200. In some embodiments, the electronic circuit 200 includes an input / output interface 215 (I / O) for communicating with the outside of the electronic circuit 200 (e.g., serial bus type).
[0069] In some embodiments, the electronic circuit 200 may integrate other functions represented by block 217 such as functional circuits (FCTs) depending on the application (eg, cryptographic processor, other interfaces, other memories, etc.).
[0070] Various example methods described herein (including, for example, Figures 3 to 14B The method shown) can provide the above-mentioned various technical advantages and / or improvements.
[0071] Note that each block of the flowchart and combinations of blocks in the flowchart may be implemented in various ways, such as hardware, firmware, circuitry, and / or other devices associated with the execution of software, which includes one or more computer program instructions. Figures 3 to 14B One or more of the methods described in the method may be embodied by computer program instructions, which may be stored by a non-transitory memory of a device using an embodiment of the present disclosure and executed by a processor in the device. These computer program instructions may instruct a computer or other programmable device to operate in a specific manner, so that the instructions stored in the computer-readable storage memory produce an article, and the execution of the article implements the functions specified in the (multiple) flowchart blocks.
[0072] As described above and will be understood, based on the present disclosure, the embodiments of the present disclosure can be configured as methods, mobile devices, back-end network devices, etc. Therefore, the embodiments may include various components, and the various components include complete hardware or any combination of software and hardware. In addition, the embodiments may take the form of a computer program product on at least one non-transient computer-readable storage medium, and at least one non-transient computer-readable storage medium has a computer-readable program instruction (e.g., computer software) embodied in the storage medium. Similarly, the embodiments may take the form of a computer program code stored on at least one non-transient computer-readable storage medium. Any suitable computer-readable storage medium may be used, including a non-transient hard disk, a CD-ROM, a flash memory, an optical storage device, or a magnetic storage device.
[0073] In the present disclosure, the term "data storage medium unit" refers to a basic unit for storing data and / or information. For example, a data storage medium unit may represent the smallest meaningful entity that a processor can manipulate or manage. In such an example, the size of the data storage medium unit may correspond to the size of data that can be programmed by a processor through a single operation.
[0074] In the context of non-volatile data storage media, a "non-volatile data storage medium unit" refers to a non-volatile data storage medium (such as but not limited to the above combination Figure 3 The nonvolatile data storage medium 103 described herein is a basic unit for storing data and / or information in the nonvolatile data storage medium 103). For example, the nonvolatile data storage medium unit may represent the smallest meaningful entity that a processor can manipulate or manage in the nonvolatile data storage medium. In such an example, the size of the nonvolatile data storage medium unit may correspond to the size of data that can be programmed by a processor in the nonvolatile data storage medium through a single operation.
[0075] In the present disclosure, the term "page" refers to a collection or series of one or more consecutive data storage medium units in a data storage medium. For example, an example page may include multiple data storage medium units, and the data storage medium units are associated with consecutive data storage medium addresses (such as but not limited to consecutive memory addresses).
[0076] In the present disclosure, the term "click string generation page" refers to the type of page that stores data and / or information used to generate one or more click strings. For example, an example click string generation page may include multiple non-volatile data storage media units. In some embodiments, the non-volatile data storage media unit is the smallest writable unit. In such an embodiment, since the non-volatile data storage media unit needs to be programmed when accessing the click string, no more than one trigger string can be stored in the non-volatile data storage media unit, additional details of which are described herein. In some embodiments, the trigger string is stored in one or more non-volatile data storage media units, additional details of which are described herein.
[0077] In the present disclosure, the terms "string" and "word" may be used interchangeably to refer to a continuous sequence of data and / or information (such as but not limited to one or more numbers, one or more binary values, etc.) used as a basic unit of data and / or information in a data storage medium (such as but not limited to, the above combination Figure 3 Non-volatile data storage medium 103 described above).
[0078] In the present disclosure, the term "overprogramming operation" refers to a data operation of programming data and / or information on a data storage medium cell (such as but not limited to a non-volatile data storage medium cell) that has stored data and / or information. For example, an example overprogramming operation in an example non-volatile data storage medium can be implemented by means of a PROGRAM cycle.
[0079] For example, an example nonvolatile data storage medium such as, but not limited to, a nonvolatile memory may support separate ERASE and PROGRAM cycles. In terms of granularity, the PROGRAM cycle granularity may be a byte or word (e.g., 32 bits), and the ERASE cycle granularity may depend on the nonvolatile data storage medium (such as, but not limited to, a byte or word if the nonvolatile data storage medium is an EEPROM, a page or block if the nonvolatile data storage medium is a FLASH, etc.). Continuing with this example, when the ERASE cycle is executed on a nonvolatile data storage medium cell, the ERASE cycle may reset all bits in the nonvolatile data storage medium cell to an ERASE value (e.g., but not limited to one ("1")). Conversely, when the PROGRAM cycle is executed on a nonvolatile data storage medium cell, the PROGRAM cycle may set certain selected bits in the nonvolatile data storage medium cell to a PROGRAM value (e.g., but not limited to zero ("0")) and retain the unchanged bits that have been set to zero ("0") in the nonvolatile data storage medium cell. As shown in this example, the PROGRAM loop may act as a bitwise AND operation on the physical bits of the non-volatile data storage media cells.
[0080] Continuing with this example, the example processor can perform an over-programming operation by executing a PROGRAM cycle on a non-volatile data storage medium unit that has stored data. For example, the following example program code illustrates an example over-programming operation with a PROGRAM cycle:
[0081] ERASE(addr)
[0082] PROG(addr,x1)
[0083] PROG(addr,x2)
[0084] In the above example, the nonvolatile data storage medium cell with memory address "addr" is first programmed with string x1, and then overprogrammed with string x2. If string x1 is the same as string x2, the overprogramming operation may also be referred to as a stable operation because the string stored in the nonvolatile data storage medium cell does not change. If string x1 is different from string x2, the overprogramming operation may also be referred to as an overwrite operation because the string stored in the nonvolatile data storage medium cell changes.
[0085] According to various embodiments of the present disclosure, after an over-programming operation is performed on such a non-volatile data storage medium, the example non-volatile data storage medium may provide functions and / or features, such as but not limited to error detection code (EDC), error correction code (ECC) and / or data encryption, which may affect the strings in such example non-volatile data storage medium.
[0086] In some embodiments, the EDC may indicate whether a string stored in a nonvolatile data storage medium cell has been modified since the last time the nonvolatile data storage medium cell was programmed. The ECC may restore the modified string to its programmed value. Both EDC and ECC require extraction bits for each string (e.g., 1 plus 6 bits for every 32 bits), and may fail if there are too many error bits. The following example programming code illustrates an example addition of EDC and ECC when a PROGRAM cycle is performed in a nonvolatile data storage medium cell, where string x is programmed using address "addr".
[0087] PROG(addr,x)->PROGPHYS(x||EDC(addr,x)||ECC(x))
[0088] In some embodiments, when an over-programming operation (e.g., an overwrite operation) is performed on a non-volatile data storage medium unit, the ECC may change the string stored in the non-volatile data storage medium unit. However, performing the same over-programming operation (e.g., an overwrite operation) at two different non-volatile data storage medium units may result in the two non-volatile data storage medium units storing the same string (if EDC errors are ignored). The following example programming code illustrates such an example:
[0089] PROG(addrA,x1),PROG(addrA,x2)
[0090] PROG(addrB,x1),PROG(addrB,x2)
[0091] READ(addrA)=READ(addrB) #If we ignore EDC errors
[0092] In some embodiments, the memory encryption feature provided by the non-volatile data storage medium may use a global encryption key and the address of the non-volatile data storage medium unit as a diversification tool. The following example programming code illustrates an example PROGRAM loop on a non-volatile data storage medium unit when memory encryption is implemented:
[0093] PROG(addr,x)->PROGPHYS(addr,ENC(key,addr,x))
[0094] In some embodiments, memory encryption can be accomplished by applying an XOR operation to the string with a mask string prior to the PROGRAM loop, as shown in the following example programming code:
[0095] PROG(addr,x)->PROGPHYS(addr,x XOR mask(key,addr)).
[0096] Continuing from the above example, even if a simple mask is implemented, memory encryption may result in over-programming operations (such as but not limited to overwrite operations) at different non-volatile data storage media cells to produce different results. The following example programming code illustrates such an example:
[0097] Let mA = mask(key, addrA), and mB = mask(key, addrB)
[0098] PROG(addrA,x1),PROG(addrA,x2),READ(addrA)=(x1 XOR mA).(x2 XOR mA)XORmA=x1.x2 XOR(x1 XOR x2).mA
[0099] PROG(addrB,x1),PROG(addrB,x2),READ(addrB)=(x1 XOR mB).(x2 XOR mB)XORmB=x1.x2 XOR(x1 XOR x2).mB
[0100] / / If x2=0, then PROG(addr,x),PROG(addr,0),READ(addr)=xm, so this returns the bits of the secret mask m using x as the select vector.
[0101] In some embodiments, the ECC and / or EDC may be calculated based on a mask value from memory encryption, as shown in the following example programming code:
[0102] PROG(addr,x)->PROGPHYS(addr,y||EDC(addr,y)||ECC(y)), where y=x XOR mask(key,addr)
[0103] As shown in the various examples above, the example over-programming operation on the non-volatile data storage medium unit may destroy the string that has been previously stored in the non-volatile data storage medium unit. Various embodiments of the present disclosure can utilize the over-programming operation to generate a click string based on the trigger string stored in the non-volatile data storage medium unit by performing the over-programming operation on the non-volatile data storage medium unit, thereby destroying the trigger string so that they cannot be used to generate the click string again, thereby providing technical benefits and advantages, such as but not limited to, improving data security.
[0104] Reference now Figure 3 , example flowchart diagram 300 illustrates example steps and / or example operations associated with an example method according to some embodiments of the present disclosure.
[0105] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties, and provide various technical improvements and advantages. For example, according to Figure 3 The example method of the example flow chart shown in can facilitate generating one or more click strings that cannot be regenerated through a fault injection attack. Figure 3 The example methods of the example flowcharts shown in the example flowcharts can provide various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in computing devices.
[0106] exist Figure 3 In the example shown, the example method according to some embodiments of the present disclosure starts at step / operation 301. After step / operation 301 and / or in response to step / operation 301, some example methods according to some embodiments of the present disclosure proceed to step / operation 303. In some embodiments, the example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may generate a first over-programming trigger string at step / operation 303.
[0107] In some embodiments, the example processor may generate a first over-programming trigger string from a click string generation page by performing a first over-programming operation on a first non-volatile data storage medium unit.
[0108] As described above, the click string generation page may include a plurality of non-volatile data storage media units storing the original trigger string. For example, the click string generation page may include a first non-volatile data storage media unit storing the first original trigger string.
[0109] In the present disclosure, the term "original trigger string" refers to a string from a click string generation page that is initially stored in a non-volatile data storage medium unit. In some embodiments, the original trigger string can be used to generate a click string based on performing an overprogramming operation on the non-volatile data storage medium unit. In such an embodiment, the overprogramming operation overwrites the original trigger string in the non-volatile data storage medium unit with the overprogramming trigger string, thereby destroying the original trigger string. Additionally, destroying the original trigger string must be done to generate the final click string because there is no other way to generate the final click string except to overprogram the original trigger string and read back the result. One of the reasons is that due to memory encryption, the result of overprogramming is usually address dependent.
[0110] In the present disclosure, the term "overprogrammed trigger string" refers to a string generated based on performing an overprogramming operation on a nonvolatile data storage medium cell storing an original trigger string. In some embodiments, when an example processor performs an overprogramming operation on a nonvolatile data storage medium cell storing an original trigger string, the example processor may perform a PROGRAM loop at an address of the nonvolatile data storage medium cell, and the PROGRAM loop may effectively perform an AND operation between the original trigger string and one or more other strings to generate an overprogrammed trigger string (or any other side effects as described above), and replace the original trigger string in the nonvolatile data storage medium cell with the overprogrammed trigger string. Additional details associated with generating an overprogrammed trigger string are described herein.
[0111] Return to reference Figure 3 After step / operation 303 and / or in response to step / operation 303, some example methods according to some embodiments of the present disclosure proceed to step / operation 305. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a first click string at step / operation 305.
[0112] In some embodiments, the example processor may generate the first click string by performing a first computing operation based at least in part on the first original trigger string initially stored in the first non-volatile data storage medium unit and the first over-programming trigger string generated at step / operation 303. According to some embodiments of the present disclosure, example computing operations may include, but are not limited to, AND operations, OR operations, NAND operations, XOR operations, NOR operations, and the like.
[0113] In this disclosure, the term "AND operation" refers to a type of data operation that determines whether all inputs (e.g., binary bits) are one (1). If one of the inputs is zero (0), then the output from the AND operation is zero (0). If all inputs are one (1), then the output from the AND operation is one (1).
[0114] In the present disclosure, the term "OR operation" refers to a type of data operation that determines whether at least one input (e.g., at least one binary bit) is one (1). If one of the inputs is one (1), then the output from the OR operation is one (1). If none of the inputs are one (1), then the output from the OR operation is zero (0).
[0115] In this disclosure, the terms "NAND" and "not AND" refer to a type of data operation that determines whether all inputs (e.g., binary bits) are one (0). If one of the inputs is zero (0), the output from the AND operation is one (1). If all inputs are one (1), the output from the NAND operation is zero (0).
[0116] In one such example, the term "NOR" refers to a type of data operation that determines whether an input (e.g., a binary bit) includes at least one (1). If one of the inputs is one (1), the output from the NOR operation is zero (0). If all of the inputs are zero (0), the output from the NOR operation is one (1).
[0117] In the present disclosure, the terms "XOR" and "exclusive OR" refer to a type of data operation that compares two inputs (e.g., two binary bits) and produces an output based on the difference between the two inputs. If the two inputs are the same (e.g., if both inputs are zero (0) or both inputs are one (1)), the XOR operation returns zero (0). If the two inputs are different (e.g., if one input is zero (0) and one input is one (1)), the XOR operation returns one (1)).
[0118] For example, the example processor may generate the first click string by performing an XOR operation based at least in part on the first original trigger string originally stored in the first non-volatile data storage medium unit and the first overprogramming trigger string generated at step / operation 303 to generate the first click string.
[0119] Return to reference Figure 3 After step / operation 305 and / or in response to step / operation 305, some example methods according to some embodiments of the present disclosure proceed to step / operation 307. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may generate an encrypted data storage medium in step / operation 307.
[0120] In some embodiments, the example processor may generate an encrypted data storage medium by performing an encryption operation on the unencrypted data storage medium based at least in part on the first click string. For example, the example processor may encrypt the unencrypted data storage medium using the first click string generated at step / operation 305 based on, for example, but not limited to, the Advanced Encryption Standard (AES), Rivest-Shamir-Adleman (RSA), etc.
[0121] Although the above description provides an example encryption mechanism based on click strings, it is noted that the scope of the present disclosure is not limited to the above description. For example, an unencrypted data storage medium may store sensitive data and / or information with N access restrictions. In such an example, the example processor may encrypt the unencrypted data storage medium using an encryption key based on, for example but not limited to, AES, RSA, and may generate N secret shares of the encryption key. At least in combination FIG. 12A to FIG. 14B Additional details are described.
[0122] Return to reference Figure 3 , after step / operation 307 and / or in response to step / operation 307, some example methods according to some embodiments of the present disclosure proceed to step / operation 309 and end.
[0123] Reference now Figure 4 , an example schematic block diagram illustrates an example non-volatile data storage medium unit associated with an example click string generation page 400 according to some embodiments of the present disclosure.
[0124] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Figure 4 The example click string generation page shown in can facilitate the generation of one or more click strings that cannot be regenerated through fault injection attacks, thereby providing various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in a computing device.
[0125] For example, in Figure 4 In the example shown, the example click string generation page 400 may include a first non-volatile data storage medium unit 402 storing a first original trigger string t1, ..., an i-th non-volatile data storage medium unit 404 storing an i-th original trigger string t, ..., a N-th original trigger string t N The Nth nonvolatile data storage medium unit 406. In some embodiments, after the example processor performs an over-programming operation on the first nonvolatile data storage medium unit 402 to generate a first over-programming trigger value, the value of the first original trigger string t1 is destroyed.
[0126] Reference now Figure 5 , the example data operations chart 500 illustrates data operations associated with an example non-volatile data storage medium unit of an example click string generation page according to some embodiments of the present disclosure.
[0127] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties, and provide various technical improvements and advantages. For example, according to Figure 5 The example click string generation page shown in can facilitate the generation of one or more click strings that cannot be regenerated through fault injection attacks, thereby providing various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in a computing device.
[0128] exist Figure 5 In the example shown, at step / operation 501, an example processor (such as but not limited to the above combination Figure 1The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can perform a read operation to obtain a first original trigger string t from a non-volatile data storage medium unit at address addr[i], and then initialize the click string C by setting the value of the click string C based on the first original trigger string t.
[0129] Continuing with the example, at step / operation 503, the example processor may apply a custom function f_PROG (which may be an identity function) to the click string C (which is the first original trigger string t) and obtain a new value y. At step / operation 505, the example processor may perform an overprogramming operation on the non-volatile data storage medium unit at address addr[i] using the value y. Specifically, the overprogramming operation may generate a first overprogramming trigger string t' as a result of an AND operation between the value y (which is the first original trigger string t) and the first original trigger string t stored in the non-volatile data storage medium unit at address addr[i], and the first overprogramming trigger string t' may be saved to the non-volatile data storage medium unit at address addr[i].
[0130] Continuing with the example, at step / operation 507, the example processor may perform a read operation to obtain a first over-programming trigger string t' from the non-volatile data storage medium unit at address addr[i]. At step / operation 509, the example processor may apply a custom function f_READ (which may be an identity function, or any other function, such as but not limited to a CRC function) to the first over-programming trigger string t' and obtain a new value x.
[0131] Continuing with the example, at step / operation 510, the example processor may set the click string C based on performing an XOR operation between the click string C (which is the same as the first original trigger string t') and the value x (which is the first overprogrammed trigger string t'). Continuing with the example, in some embodiments, the example processor may return to step / operation 503 to repeat the above-described steps / operation 505, 507, and 509.
[0132] In some embodiments, at step / operation 511, the example processor may use click string C to combine at least Figure 3 The data storage medium is encrypted as described in step / operation 307 .
[0133] Reference now Figure 6 , example data operations chart 600 illustrates data operations associated with an example non-volatile data storage medium unit of an example click string generation page according to some embodiments of the present disclosure.
[0134] As shown in the figure, Figure 6 The example data operation diagram 600 is rewritten in a different way Figure 5 500, while still achieving the same results. Figure 6 The example click string generation page of the example shown in can help generate one or more click strings that cannot be regenerated through fault injection attacks, thereby providing various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in a computing device.
[0135] exist Figure 6 In the example shown, at step / operation 602, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can initialize the click string C by setting the value of the click string C to zero.
[0136] Continuing with the example, at step / operation 604, the example processor may perform a read operation to obtain a first original trigger string t from the non-volatile data storage medium unit at address addr[i]. At step / operation 606, the example processor may apply a custom function f_READ (which may be an identity function, or any other function, such as but not limited to a CRC function) to the first overprogramming trigger string t' and obtain a new value x.
[0137] Continuing with the example, at step / operation 608, the example processor may set the click string C based on performing an XOR operation between the click string C (which is zero) and the value x (which is the first original trigger string t).
[0138] Continuing with the example, at step / operation 610, the example processor may perform a programming operation to save the click string C as a value y. At step / operation 612, the example processor may apply a custom function f_PROG (which may be an identity function) to the click string C (which is the first original trigger string t) and obtain a new value y. Continuing with the example, in some embodiments, the example processor may return to step / operation 604 to repeat the above-described steps / operation 606, 608, and 610.
[0139] In some embodiments, at step / operation 614, the example processor may use click string C to combine at least Figure 3 The data storage medium is encrypted as described in step / operation 307 .
[0140] Reference now Figure 7 , an example schematic block diagram illustrates an example non-volatile data storage medium unit associated with an example click string generation page 700 according to some embodiments of the present disclosure.
[0141] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Figure 7 The example click string generation page of the example shown in can help generate one or more click strings that cannot be regenerated through fault injection attacks, thereby providing various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in a computing device.
[0142] exist Figure 7 In the example shown, the example click string generation page 700 may include a first nonvolatile data storage medium unit 701 and a second nonvolatile data storage medium unit 703. In some embodiments, the first nonvolatile data storage medium unit 701 stores a first original trigger string t1[0] and the second nonvolatile data storage medium unit 703 stores a second original trigger string t1[1]. In some embodiments, the first nonvolatile data storage medium unit 701 and the second nonvolatile data storage medium unit 703 are adjacent to each other in the example click string generation page 700 of nonvolatile data storage medium. In some embodiments, the first nonvolatile data storage medium unit 701 and the second nonvolatile data storage medium unit 703 are on the same page. In some embodiments, the first nonvolatile data storage medium unit 701 and the second nonvolatile data storage medium unit 703 are not adjacent to each other and / or are not on the same page.
[0143] Figure 7The example shown illustrates an example embodiment in which a single click string is generated based on two trigger strings stored in two non-volatile data storage medium units adjacent to each other. For example, the first click string can be generated based on the first original trigger string t1[0] stored in the first non-volatile data storage medium unit 701 and the second original trigger string t1[1] stored in the second non-volatile data storage medium unit 703. Additionally or alternatively, the i-th click string can be generated based on the original trigger string t[0] stored in the non-volatile data storage medium unit 705 and the original trigger string t[1] stored in the non-volatile data storage medium unit 707. Additionally or alternatively, the N-th click string can be generated based on the original trigger string t[0] stored in the non-volatile data storage medium unit 709. N [0] and the original trigger string stored in the non-volatile data storage medium unit 711 N [1] is generated. Additional details are described in detail in this article.
[0144] Reference now Figure 8 , the example flowchart diagram 800 illustrates example steps and / or example operations associated with an example method according to some embodiments of the present disclosure.
[0145] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Figure 8 The example method of the example flow chart shown in can be helpful in generating one or more click strings that cannot be regenerated through a fault injection attack. Figure 8 The example methods of the example flowcharts shown in can provide various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in computing devices.
[0146] exist Figure 8 In the example shown, the example method according to some embodiments of the present disclosure begins at step / operation 802. After step / operation 802 and / or in response to step / operation 802, some example methods according to some embodiments of the present disclosure proceed to step / operation 804. In some embodiments, the example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2The processing unit 211 of the described example electronic circuit 200, etc.) may generate a first over-programming trigger string at step / operation 804.
[0147] In some embodiments, when the first over-programming trigger string is generated at step / operation 804 , the example processor may perform one or more steps and / or operations, which may include but are not limited to at least step / operation 816 and step / operation 818 .
[0148] For example, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may receive the second original trigger string at step / operation 816.
[0149] In some embodiments, the example processor may receive a second original trigger string from a second non-volatile data storage medium unit. Figure 7 In the example shown, the example processor may receive a second original trigger string t1 [ 1 ] from a second non-volatile data storage medium unit 703 .
[0150] Return to reference Figure 8 After step / operation 816 and / or in response to step / operation 816, some example methods according to some embodiments of the present disclosure proceed to step / operation 818. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may perform a first over-programming operation at step / operation 818.
[0151] In some embodiments, the example processor performs a first over-programming operation on the first non-volatile data storage medium unit based on the second original trigger string received at step / operation 816 .
[0152] For example, in Figure 7 In the example shown, the example processor may perform a first over-programming operation on the first non-volatile data storage medium unit 701 based on the second original trigger string t1[1] stored in the second non-volatile data storage medium unit 703. For example, the first over-programming operation may generate a first over-programming trigger string and may store the first over-programming trigger string in the first non-volatile data storage medium unit 701, the first over-programming trigger string being the result of an AND operation between the second original trigger string t1[1] and the first original trigger string t1[0].
[0153] Return to reference Figure 8 After step / operation 84 and / or in response to step / operation 804, some example methods according to some embodiments of the present disclosure proceed to step / operation 806. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a first click string at step / operation 806.
[0154] In some embodiments, when the first click string is generated at step / operation 806 , the example processor may perform one or more steps and / or operations, which may include but are not limited to at least step / operation 820 and step / operation 822 .
[0155] In some embodiments, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a first mask trigger string at step / operation 820.
[0156] In some embodiments, the example processor generates a first mask trigger string by performing a first mask operation based on the first overprogramming trigger string generated at step / operation 818. For example, the example processor may perform an XOR operation between the first overprogramming trigger string and the first original trigger string to generate the first mask trigger string.
[0157] Return to reference Figure 8 After step / operation 820 and / or in response to step / operation 820, some example methods according to some embodiments of the present disclosure proceed to step / operation 822. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may perform a first computing operation at step / operation 822.
[0158] In some embodiments, the example processor performs a first calculation operation based on the first original trigger string originally stored in the first non-volatile data storage medium unit and the first mask trigger string generated at step / operation 820. For example, the example processor may perform an XOR operation between the first original trigger string and the first mask trigger string to generate the first click string.
[0159] After step / operation 802 and / or in response to step / operation 802, some example methods according to some embodiments of the present disclosure proceed to step / operation 808. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may generate a second over-programming trigger string at step / operation 808.
[0160] In some embodiments, when generating the second over-programming trigger string at step / operation 808 , the example processor may perform one or more steps and / or operations, which may include but are not limited to at least step / operation 824 and step / operation 826 .
[0161] In some embodiments, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can receive the first original trigger string at step / operation 824.
[0162] In some embodiments, the example processor may receive the first original trigger string from the first non-volatile data storage medium unit before generating the first over-programming trigger string at step / operation 804 and / or step / operation 818 (because generating the first over-programming trigger string destroys the first original trigger string in the first non-volatile data storage medium unit). Figure 7 In the example shown, the example processor may receive a first original trigger string t1 [ 0 ] from the first non-volatile data storage medium unit 701 before the first non-volatile data storage medium unit 701 is programmed.
[0163] Return to reference Figure 8 , after step / operation 824 and / or in response to step / operation 824, some example methods according to some embodiments of the present disclosure proceed to step / operation 826. In some embodiments, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may perform a second over-programming operation at step / operation 826.
[0164] In some embodiments, the example processor performs a second over-programming operation on the second non-volatile data storage medium unit based on the first original trigger string received at step / operation 824 to generate a second over-programming trigger string.
[0165] For example, in Figure 7 In the example shown, the example processor may perform a second over-programming operation on the second non-volatile data storage medium unit 703 based on the first original trigger string t1[0] stored in the first non-volatile data storage medium unit 701. For example, the second over-programming operation may generate a second over-programming trigger string and may store the second over-programming trigger string in the second non-volatile data storage medium unit 703, the second over-programming trigger string being the result of an AND operation between the first original trigger string t1[0] and the second original trigger string t1[1].
[0166] Return to reference Figure 8 After step / operation 808 and / or in response to step / operation 808, some example methods according to some embodiments of the present disclosure proceed to step / operation 810. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a second click string at step / operation 810.
[0167] In some embodiments, when the second click string is generated at step / operation 810 , the example processor may perform one or more steps and / or operations, which may include but are not limited to at least step / operation 828 and step / operation 830 .
[0168] In some embodiments, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a second mask trigger string at step / operation 828.
[0169] In some embodiments, the example processor generates a second mask trigger string by performing a second mask operation based on the second overprogramming trigger string generated at step / operation 826. For example, the example processor may perform an XOR operation between the second overprogramming trigger string and the second original trigger string to generate the second mask trigger string.
[0170] Return to reference Figure 8 After step / operation 828 and / or in response to step / operation 828, some example methods according to some embodiments of the present disclosure proceed to step / operation 830. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2The processing unit 211 of the described example electronic circuit 200, etc.) may perform a second computing operation at step / operation 830.
[0171] In some embodiments, the example processor performs a second computation operation based on the second original trigger string originally stored in the second non-volatile data storage medium unit and the second masked trigger string generated at step / operation 828 .
[0172] As described above, the second mask trigger string can be generated based at least in part on the second overprogramming trigger string. Therefore, the example processor can generate a second click string by performing a second calculation operation based at least in part on the second original trigger string and the second overprogramming trigger string.
[0173] For example, the example processor may perform an XOR operation between the second original trigger string and the second masked trigger string to generate the second click string.
[0174] Return to reference Figure 8 , after step / operation 806 and step / operation 810 and / or in response to step / operation 806 and step / operation 810, some example methods according to some embodiments of the present disclosure proceed to step / operation 830. In some embodiments, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may generate an encrypted data storage medium at step / operation 812.
[0175] In some embodiments, the example processor may generate an encrypted data storage medium by performing an encryption operation on the unencrypted data storage medium based on the first click string generated in conjunction with step / operation 806 and the second click string generated in conjunction with step / operation 810. For example, similar to the above combination Figure 3 As described in at least step / operation 307, the example processor may combine the first click string and the second click string (e.g., append the second click string to the first click string), and then encrypt the unencrypted data storage medium based on the combination of the first click string and the second click string.
[0176] Return to reference Figure 8 , after step / operation 812 and / or in response to step / operation 812, some example methods according to some embodiments of the present disclosure proceed to step / operation 814 and end.
[0177] Reference now Fig. 9, example data operations chart 900 illustrates data operations associated with an example non-volatile data storage medium unit of an example click string generation page according to some embodiments of the present disclosure.
[0178] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Fig. 9 The example click string generation page of the example shown in can help generate one or more click strings that cannot be regenerated through fault injection attacks, thereby providing various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in a computing device.
[0179] exist Fig. 9 In the example shown, the example click string generation page includes a first non-volatile data storage medium unit at address addr[i][0] and a second non-volatile data storage medium unit at address addr[i][1], and the first non-volatile data storage medium unit and the second non-volatile data storage medium unit are adjacent to each other. Specifically, the first non-volatile data storage medium unit stores a first original trigger value t[0], and the second non-volatile data storage medium unit stores a second original trigger value t[1].
[0180] At step / operation 901, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can perform a read operation to obtain a first original trigger string t[0] from the first non-volatile data storage medium unit at address addr[i][0], and initialize a first click string C[0] based on the first original trigger string t[0]. In other words, at step / operation 901, C[0] is the same as t[0].
[0181] Then, at step / operation 903, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2The processing unit 211 of the example electronic circuit 200 described above performs a read operation to obtain a second original trigger string t[1] from the non-volatile data storage medium unit at address addr[i][1], and initializes a second click string C[1] based on the second original trigger string t[1]. In some embodiments, at step / operation 903, C[1] is the same as t[1].
[0182] Then, at step / operation 905, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can use the second click string C[1] to perform a programming operation on the first non-volatile data storage medium unit at address addr[i][0]. As described above, the second click string C[1] is the same as the second original trigger string originally stored in the second non-volatile data storage medium unit at address addr[i][1]. Therefore, the example processor can overwrite the first original trigger string t[0] stored in the first non-volatile data storage medium unit at address addr[i][0] with the second original trigger string that has been saved to the second click string C[1].
[0183] Then, at step / operation 907, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can use the first click string C[0] to perform a programming operation on the second non-volatile data storage medium unit at address addr[i][1]. As described above, the first click string C[0] is the same as the first original trigger string originally stored in the first non-volatile data storage medium unit at address addr[i][0]. Therefore, the example processor can use the first original trigger string that has been saved to the first click string C[0] to overwrite the second original trigger string t[1] stored in the second non-volatile data storage medium unit at address addr[i][1].
[0184] Then, at step / operation 909, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2The processing unit 211 of the described example electronic circuit 200, etc.) can read the string t'[0] stored in the first non-volatile data storage medium unit at address addr[i][0] and save the string t'[0] to the temporary memory unit tmp[0]. As described above, features associated with the non-volatile data storage medium (such as but not limited to EDC, ECC and / or data encryption) may affect the value of the string t'[0] after the programming operation is performed on the first non-volatile data storage medium unit at address addr[i][0].
[0185] Then, at step / operation 911, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can read the string t'[1] stored in the second non-volatile data storage medium unit at address addr[i][1] and save the string t'[1] to the temporary memory unit tmp[1]. As described above, features associated with the non-volatile data storage medium (such as but not limited to EDC, ECC and / or data encryption) may affect the value of the string t'[1] after the programming operation is performed on the second non-volatile data storage medium unit at address addr[i][1].
[0186] Then, at step / operation 913, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can update the first click string C[0] based at least in part on performing an XOR operation between the first click string C[0] and the result of a cyclic redundancy check (CRC) operation on the temporary memory unit tmp[0] (which stores the string t'[0]). In some embodiments, at step / operation 913, C[0] is the result of t[0] XOR CRC(t'[0]).
[0187] Then, at step / operation 915, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can update the second click string C[1] based at least in part on performing an XOR operation between the second click string C[1] and the result of the CRC operation on the temporary memory unit tmp[1] (which stores the string t'[1]). In some embodiments, at step / operation 915, C[1] is the result of t[1] XOR CRC(t'[1]).
[0188] Then, at step / operation 917, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may utilize a logic value of 0 to perform an over-programming operation on a first non-volatile data storage medium cell at address addr[i][0].
[0189] Then, in step / operation 919, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may utilize a logic value of 0 to perform an over-programming operation on the second non-volatile data storage medium cell at the address addr[i][1].
[0190] Then, at step / operation 921, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can read the string t"[0] stored in the first non-volatile data storage medium unit at address addr[i][0] and save the string t"[0] to the temporary memory unit tmp[0]. As described above, features associated with the non-volatile data storage medium (such as but not limited to EDC, ECC and / or data encryption) may affect the value of the string t"[0] after a programming operation is performed on the first non-volatile data storage medium unit at address addr[i][0].
[0191] Then, at step / operation 923, an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can read the string t"[1] stored in the second non-volatile data storage medium unit at address addr[i][1] and save the string t"[1] to the temporary memory unit tmp[1]. As described above, features associated with the non-volatile data storage medium (such as but not limited to EDC, ECC and / or data encryption) may affect the value of the string t"[1] after a programming operation is performed on the second non-volatile data storage medium unit at address addr[i][1].
[0192] Then, at step / operation 925, an example processor (such as but not limited to the above combined Figure 1The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can perform an XOR operation between the first click string C[0] and the result of a CRC operation on a temporary memory cell tmp[0] storing the string t”[0]. In some embodiments, at step / operation 925, C[0] is the result of t[0] XOR CRC(t'[0]) XOR CRC(t”[0]).
[0193] Then, at step / operation 927, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can perform an XOR operation between the second click string C[1] and the result of a CRC operation on a temporary memory cell tmp[1] storing the string t”[1]. In some embodiments, at step / operation 927, C[1] is the result of t[1] XOR CRC(t'[1]) XOR CRC(t”[1]).
[0194] Then, at step / operation 929, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a click string C based on the first click string C[0] and the second click string C[1]. For example, the first click string C[0] and the second click string C[1] can each include 32 bits. Therefore, by combining the first click string C[0] and the second click string C[1], a 64-bit click string can be generated.
[0195] like Fig. 9 As shown in the illustrated example, generating click string C erases the data in non-volatile data storage medium units [i][0] and [i][1] such that click string C cannot be retrieved again, thereby providing technical benefits and advantages such as but not limited to improved data security.
[0196] Reference now Fig.10 , example flowchart diagram 1000 illustrates example steps and / or example operations associated with some example methods according to some embodiments of the present disclosure.
[0197] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Fig.10 The example method of the example flow chart shown in may be helpful in generating one or more click strings that cannot be regenerated through a fault injection attack. Fig.10 The example methods of the example flowcharts shown in the example flowcharts may provide various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (e.g., but not limited to, through fault injection attacks), strengthening approvals for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in computing devices.
[0198] exist Fig.10 In the example shown, the example method according to some embodiments of the present disclosure starts at step / operation 1002. After step / operation 1002 and / or in response to step / operation 1002, some example methods according to some embodiments of the present disclosure proceed to step / operation 1004. In some embodiments, the example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can erase the click string generation page at step / operation 1004.
[0199] For example, the example processor may perform an ERASE cycle on a plurality of contiguous data storage media cells in a non-volatile data storage medium and designate such data storage media cells as a click string generation page.
[0200] Return to reference Fig.10 After step / operation 1004 and / or in response to step / operation 1004, some example methods according to some embodiments of the present disclosure proceed to step / operation 1006. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can initialize the click string generation page at step / operation 1006.
[0201] For example, the example processor may generate a plurality of random numbers using one or more random number generators, and initialize the click string generation page using the plurality of random numbers. For example, each non-volatile data storage medium unit of the example click string generation page may store a random number.
[0202] Although the above description provides an example of initializing a click string generation page based on a random number, it is noted that the scope of the present disclosure is not limited to the above description. In some examples, the example method may initialize a click string generation page based on one or more mask strings, the additional information of which is at least combined with Figures 11 to 14B to describe.
[0203] Return to reference Fig.10 After step / operation 1006 and / or in response to step / operation 1006, some example methods according to some embodiments of the present disclosure proceed to step / operation 1008. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a copy of the click string generation page at step / operation 1008.
[0204] Additionally or alternatively, the example processor may implement a deterministic pseudo-random algorithm to generate a trigger string for initializing the click string generation page at step / operation 1006. In such an example, the example processor may store a random seed for the deterministic pseudo-random algorithm in a data storage medium in addition to or alternatively to generating a copy of the click string generation page at step / operation 1008.
[0205] Return to reference Fig.10 After step / operation 1008 and / or in response to step / operation 1008, some example methods according to some embodiments of the present disclosure proceed to step / operation 1010. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate a click string at step / operation 1010.
[0206] For example, various embodiments of the present disclosure may be implemented according to various exemplary methods described herein (including but not limited to at least one of the above combined Figures 1 to 9 The method described in the preceding paragraph generates a click string based on a click string generation page.
[0207] In some embodiments, the example processor may generate multiple click strings. In such examples, the example processor may repeat the various example methods described herein multiple times to generate multiple click strings.
[0208] Return to reference Fig.10After step / operation 1010 and / or in response to step / operation 1010, some example methods according to some embodiments of the present disclosure proceed to step / operation 1012. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can use the click string to initialize the device at step / operation 1012.
[0209] For example, the example processor may use the click string generated at step / operation 1010 as an encryption key for encrypting sensitive data and / or information in the device. For example, if the device stores N different sensitive data, the example processor may repeat the various example methods described herein to generate N different click strings, each click string used as a separate encryption key for encrypting sensitive data.
[0210] Return to reference Fig.10 After step / operation 1012 and / or in response to step / operation 1012, some example methods according to some embodiments of the present disclosure proceed to step / operation 1014. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can restore the click string generation page from the copy at step / operation 1014.
[0211] Continuing from the example, the decryption key can be generated based on generating a click string using the recovered click string generation page. In some embodiments, the decryption key can be stored in RAM so that sensitive data can be decrypted.
[0212] Return to reference Fig.10 After step / operation 1014 and / or in response to step / operation 1014, some example methods according to some embodiments of the present disclosure proceed to step / operation 1016. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can erase the copy of the click string generation page at step / operation 1016.
[0213] In some embodiments, by erasing a copy of a click string generating page, various embodiments of the present disclosure may provide technical benefits and advantages, such as, but not limited to, limiting access to sensitive data by unauthorized parties.
[0214] Return to reference Fig.10 , after step / operation 1016 and / or in response to step / operation 1016, some example methods according to some embodiments of the present disclosure proceed to step / operation 1018 and end.
[0215] Reference now Fig.11 , an example schematic block diagram illustrates an example non-volatile data storage medium unit associated with an example click string generation page 1100 according to some embodiments of the present disclosure.
[0216] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Fig.11 The example click string generation page of the example shown in can help generate one or more click strings that cannot be regenerated through fault injection attacks, thereby providing various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in a computing device.
[0217] exist Fig.11 In the example shown, the example click string generation page 1100 may include multiple non-volatile data storage media units. In some embodiments, similar to the above combination Figure 7 In the example click string generation page 700 described above, a click string is generated based on two strings stored in two non-volatile data storage medium units adjacent to each other on the example click string generation page 1100. Figure 7 In contrast to the example clickstream generation page 700 described, Fig.11 The example click string generation page 1100 shown in defines a pair of trigger strings and mask strings for generating click strings. For example, a first click string can be generated based on a first original trigger string t1 stored in a first non-volatile data storage medium unit 1101 and a first mask string M1[1] stored in a second non-volatile data storage medium unit 1103.
[0218] Reference now Fig. 12A and Fig. 12B , an example flow chart is provided that illustrates example steps and / or example operations associated with an example method according to some embodiments of the present disclosure.
[0219] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Fig. 12A and Fig. 12B The example method of the example flow chart shown in can be helpful in generating one or more click strings that cannot be regenerated through a fault injection attack. Fig. 12A and Fig. 12B The example methods of the example flowcharts shown in can provide various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), strengthening approval for use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in computing devices.
[0220] For example, according to Fig. 12A and Fig. 12B The example method of the example shown in can provide the ability to select or limit the click string value by using a mask string. Specifically, Fig. 12A Illustrated are example steps / operations associated with initializing a click string generation page (e.g., in conjunction with the above Fig.10 Step / operation 1006 described above). Fig. 12B Illustrated are example steps / operations associated with generating a page based on a click string to obtain a defined click string (e.g., in conjunction with the above combination Fig.10 Step / operation 1010 described above).
[0221] Fig. 12A The example flow chart 1200A shown begins at block A, which is connected to Fig.10 Step / operation 1006, in which an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the example electronic circuit 200 described above initializes the click string generation page. Therefore, Fig. 12A The example flow chart 1200A shown in illustrates an example method associated with initializing a click string generation page.
[0222] In some embodiments, after block A and / or in response to block A, some example methods according to some embodiments of the present disclosure proceed to step / operation 1202. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2The processing unit 211 of the described example electronic circuit 200, etc.) can obtain the defined click string C at step / operation 1202.
[0223] In the preset disclosure, the term "defined click string" refers to a click string having values that are set or defined based on, for example, but not limited to, user input. For example, a user may input a string of values, and an example processor may generate a defined click string that includes the string of values. In some embodiments, the defined click string may be stored directly in one or more non-volatile data storage media units.
[0224] In some embodiments, the example processor may obtain more than one defined click string. For example, sensitive data may be limited to a maximum of N times for access. In such an example, the example processor may obtain a total of N defined click strings C (e.g., C1 to C2). N ).
[0225] Return to reference Fig. 12A After step / operation 1202 and / or in response to step / operation 1202, some example methods according to some embodiments of the present disclosure proceed to step / operation 1204. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may receive the trigger string at step / operation 1204. In some embodiments, similar to the various examples described above, the trigger string may be stored in a non-volatile data storage medium unit.
[0226] Continuing with the above example, the example processor may receive a total of N trigger strings generated by, for example but not limited to, a random number generator. Continuing with this example, the example processor may store the N trigger strings in N non-volatile data storage media units of the example click string generation page.
[0227] Return to reference Fig. 12A After step / operation 1204 and / or in response to step / operation 1204, some example methods according to some embodiments of the present disclosure proceed to step / operation 1205. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate the calculated click string c at step / operation 1205.
[0228] For example, the example processor may be based on the trigger string received at step / operation 1204 and in accordance with various examples described herein (including but not limited to in combination with at least Figure 5 , Figure 6 and Fig. 9 Described example) generates the calculated click string c.
[0229] Return to reference Fig. 12A After step / operation 1205 and / or in response to step / operation 1205, some example methods according to some embodiments of the present disclosure proceed to step / operation 1206. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200 , etc.) may generate a mask string at step / operation 1206 .
[0230] In some embodiments, the example processor may generate a mask string based on performing an XOR operation between the defined click string obtained at step / operation 1202 and the trigger string received at step / operation 1204. For example, the i-th mask string M i It can be generated based on the following equation:
[0231] M i =c i XOR C i .
[0232] In the above equation, C i is the defined i-th click string obtained at step / operation 1202, and c i is the calculated i-th click string generated at step / operation 1205. Although the value of the calculated click string cannot be known in advance, the mask string can supplement the various methods of generating click strings described herein so that the value of the defined click string can be obtained (at least in conjunction with the present invention). Fig. 12B Additional details are described herein).
[0233] Return to reference Fig. 12A After step / operation 1206 and / or in response to step / operation 1206, some example methods according to some embodiments of the present disclosure proceed to step / operation 1208. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the example electronic circuit 200 described above, etc.) may store the mask string at step / operation 1208. For example, Fig.11 As shown, the first mask string for the first trigger string may be stored in a non-volatile data storage medium unit adjacent to the non-volatile data storage medium unit storing the first trigger string. Note that the scope of the present disclosure is not limited to this example.
[0234] Continuing with the above example, the example processor may store a total number N of mask strings in a total number N of non-volatile data storage medium units of the example click string generation page.
[0235] Return to reference Fig. 12A After step / operation 1208 and / or in response to step / operation 1208, some example methods according to some embodiments of the present disclosure proceed to block B, which is connected back to Fig.10 Step / operation 1006.
[0236] Fig. 12B The example flow chart 1200B shown begins at block C, which is connected to Fig.10 Step / operation 1010, wherein an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the example electronic circuit 200 described above generates a click string. Therefore, Fig. 12B The example flow chart 1200B shown in illustrates an example method associated with generating a click string.
[0237] In some embodiments, after block C and / or in response to block C, some example methods according to some embodiments of the present disclosure proceed to step / operation 1210. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may receive a trigger string at step / operation 1210.
[0238] In some embodiments, Fig. 12B The trigger string received at step / operation 1210 may be combined with the trigger string received at step / operation 1210. Fig. 12A The same as the trigger string received at step / operation 1204.
[0239] After step / operation 1210 and / or in response to step / operation 1210, some example methods according to some embodiments of the present disclosure proceed to step / operation 1212. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200 , etc.) may receive the mask string at step / operation 1212 .
[0240] In some embodiments, the mask string received at step / operation 1212 corresponds to the trigger string received at step / operation 1210. As an example, the mask string received at step / operation 1212 may be stored in a non-volatile data storage medium unit adjacent to the non-volatile data storage medium unit storing the trigger string received at step / operation 1210, such as Fig.11 Note that the scope of the present disclosure is not limited to this example.
[0241] Return to reference Fig. 12B After step / operation 1212 and / or in response to step / operation 1212, some example methods according to some embodiments of the present disclosure proceed to step / operation 1214. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate the defined click string at step / operation 1214.
[0242] For example, the example processor may firstly generate a trigger string based on the trigger string received at step / operation 1210 and in accordance with various embodiments described herein (including but not limited to at least Figure 5 , Figure 6 and Fig. 9 ) Generate the calculated i-th click string c i In such an embodiment, the example processor may then apply the corresponding mask string to the calculated click string to determine the defined i-th click string C according to the following equation: i :
[0243] C i =c i XOR M i
[0244] In the above equation, c i is the calculated i-th trigger string generated from the corresponding trigger string received at step / operation 1210, and M i is the i-th mask string. As shown in the above formula, the calculated mask string M i Allows to obtain the expected value of the defined click string Ci.
[0245] Return to reference Fig. 12B After step / operation 1214 and / or in response to step / operation 1214, some example methods according to some embodiments of the present disclosure proceed to block D, which is connected back to Fig.10 Step / operation 1010.
[0246] Reference now Fig.13A and Fig. 13B, provides an example flow chart that illustrates example steps and / or example operations associated with example methods according to some embodiments of the present disclosure. Specifically, Fig.13A and Fig. 13B An example method for generating multiple shares of the same click string is illustrated.
[0247] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Fig.13A and Fig. 13B The example method of the example flow chart shown in can be helpful in generating one or more click strings that cannot be regenerated through a fault injection attack. Fig.13A and Fig. 13B The example methods of the example flow charts shown in the example flow charts may provide various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (for example, but not limited to, through fault injection attacks), and improving data security by limiting access to confidential / sensitive data and / or information stored in a computing device.
[0248] Fig.13A The example flow chart 1300A shown in FIG. 1 starts at block A, which is connected to Fig.10 Step / operation 1006, wherein an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the example electronic circuit 200 described above initializes the click string generation page. Therefore, Fig.13A The example flow chart 1300A shown in illustrates an example method associated with initializing a click string generation page.
[0249] In some embodiments, after block A and / or in response to block A, some example methods according to some embodiments of the present disclosure proceed to step / operation 1301. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can obtain the defined click string C at step / operation 1301.
[0250] In some embodiments, Fig.13A Step / operation 1301 and Fig. 12A The step / operation 1202 is similar.
[0251] Return to reference Fig.13A After step / operation 1301 and / or in response to step / operation 1301, some example methods according to some embodiments of the present disclosure proceed to step / operation 1303. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can set the mask string size associated with the mask string and the trigger string size associated with the trigger string. In some embodiments, the mask string size and the trigger string size are the same as the click string size of the defined click string obtained at step / operation 1301.
[0252] For example, the click string size associated with the defined click string may be 32 bits. In such an example, the mask string size associated with the mask string is 32 bits, and the trigger string size associated with the trigger string is also 32 bits.
[0253] Return to reference Fig.13A After step / operation 1303 and / or in response to step / operation 1303, some example methods according to some embodiments of the present disclosure proceed to step / operation 1305. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200 , etc.) may generate a mask string at step / operation 1305 .
[0254] In some embodiments, the example processor may be based on a trigger string (e.g., similar to the above combination Fig. 12A The calculated click string is generated based on the trigger string described in step / operation 1205 of FIG. 1301 , and then a mask string is generated based on an XOR operation performed between the defined click string C obtained at step / operation 1301 and the calculated click string. For example, the i-th mask string M i It can be generated based on the following equation:
[0255] M i =c i XOR C.
[0256] In the above equation, c i According to various examples of the present disclosure (including but not limited to Figure 5 , Figure 6 and Fig. 9) is the calculated i-th click string generated from the i-th trigger string, and C is the defined click string (which may, for example, include an encryption key) obtained at step / operation 1301. As shown in this example, multiple mask strings are generated based on the same defined click string C (which may be an encryption key), thereby facilitating the creation of multiple copies of the same click string C.
[0257] Return to reference Fig.13A After step / operation 1305 and / or in response to step / operation 1305, some example methods according to some embodiments of the present disclosure proceed to step / operation 1307. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200 , etc.) may store the mask string at step / operation 1307 .
[0258] In some embodiments, Fig.13A Step / operation 1307 and Fig. 12A The step / operation 1208 is similar.
[0259] Return to reference Fig.13A After step / operation 1307 and / or in response to step / operation 1307, some example methods according to some embodiments of the present disclosure proceed to block B, which is connected back to Fig.10 Step / operation 1006.
[0260] Fig. 13B The example flow chart 1300B shown begins at block C, which is connected to Fig.10 Step / operation 1010, wherein an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the example electronic circuit 200 described above generates a click string. Therefore, Fig. 13B The example flow chart 1300B shown in illustrates an example method associated with generating a click string.
[0261] In some embodiments, after block C and / or in response to block C, some example methods according to some embodiments of the present disclosure proceed to step / operation 1309. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may receive the trigger string at step / operation 1309.
[0262] In some embodiments, Fig. 13B Step / operation 1309 and Fig. 12B The step / operation 1210 is similar.
[0263] Return to reference Fig. 13B After step / operation 1309 and / or in response to step / operation 1309, some example methods according to some embodiments of the present disclosure proceed to step / operation 1311. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may receive the mask string at step / operation 1311.
[0264] In some embodiments, Fig. 13B Steps / operations 1311 and Fig. 12B The step / operation 1212 is similar.
[0265] Return to reference Fig. 13B After step / operation 1311 and / or in response to step / operation 1311, some example methods according to some embodiments of the present disclosure proceed to step / operation 1313. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate the defined click string at step / operation 1313.
[0266] In some embodiments, Fig. 13B Steps / operations 1313 and Fig. 12B The step / operation 1214 is similar.
[0267] In some embodiments, the example processor may generate the defined click string as a matrix (c i , M i ), instead of performing the above combination Fig. 12A and Fig. 12B The XOR operation described.
[0268] Return to reference Fig. 13B After step / operation 1313 and / or in response to step / operation 1313, some example methods according to some embodiments of the present disclosure proceed to block D, which is connected back to Fig.10 Step / operation 1010.
[0269] like Fig.13A and Fig. 13BAs shown in the example method shown, various embodiments of the present disclosure provide technical benefits and advantages, such as but not limited to improving data approval. For example, if the global restriction approval uses the encryption key K to define the maximum data access limit N, the example method of the present disclosure can initialize the click string generation page based on generating N trigger strings and N mask strings, and the N trigger strings and N mask strings will create a page such as Fig.13A The same defined click string C is shown (which can be set based on the encryption key K).
[0270] Continuing with the above example, each time an authorized data access request is received, the example processor may determine whether at least one value of the trigger string is retained on the click string generation page. If at least one value of the trigger string is retained on the click string generation page, the example processor generates a click string based on one trigger string among N trigger strings and one mask string among N mask strings. As described above, each time a click string is generated, the trigger string and mask string used to generate such a click string are destroyed and cannot be regenerated. Therefore, by limiting the number of trigger strings and the number of mask strings to N, various embodiments of the present disclosure limit the number of data accesses to N. If no more trigger strings are retained on the click string generation page, the example processor determines that the maximum data access limit has been reached and will deny the data access request.
[0271] Reference now Fig.14A and Fig. 14B , an example flow chart is provided that illustrates example steps and / or example operations associated with an example method according to some embodiments of the present disclosure.
[0272] As described above, there are technical challenges, deficiencies, and problems associated with data processing, such as, but not limited to, security risks of unauthorized access to confidential / sensitive data through fault injection attacks. Various embodiments of the present disclosure overcome the above technical challenges and difficulties and provide various technical improvements and advantages. For example, according to Fig.14A and Fig. 14B The example method of the example flow chart shown in can be helpful in generating one or more click strings that cannot be regenerated through a fault injection attack. Fig.14A and Fig. 14B The example methods of the example flowcharts shown in the example flowcharts may provide various technical benefits and advantages, such as, but not limited to, enhancing protection of data from unauthorized access and manipulation (e.g., but not limited to, through fault injection attacks), strengthening approvals for the use of sensitive materials, and improving data security by limiting access to confidential / sensitive data and / or information stored in computing devices.
[0273] Fig.14A The example flow chart 1400A shown begins at block A, which is connected to Fig.10 Step / operation 1006, wherein an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the example electronic circuit 200 described above initializes the click string generation page. Therefore, Fig.14A The example flow chart 1400A shown in illustrates an example method associated with initializing a click string generation page.
[0274] In some embodiments, after block A and / or in response to block A, some example methods according to some embodiments of the present disclosure proceed to step / operation 1402. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can obtain the defined click string at step / operation 1402.
[0275] In some embodiments, the example processor may set a defined click string (eg, from C1 to C2) to N ), the defined click string is a concatenation of a random value (e.g., from a random number generator) and a value C (e.g., an encryption key) masked with the random value. For example, the defined i-th click string C i It can be generated based on the following equation:
[0276] C i =Rndi||(C XOR Rndi)
[0277] In the above equation, Rndi is a random value.
[0278] Return to reference Fig.14A After step / operation 1402 and / or in response to step / operation 1402, some example methods according to some embodiments of the present disclosure proceed to step / operation 1404. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can set the mask string size of the mask string and the trigger string size of the trigger string to twice the click string size of the click string defined at step / operation 1404.
[0279] For example, the click string size associated with the defined click string may be 16 bits. In such an example, the mask string size associated with the mask string is 32 bits, and the trigger string size associated with the trigger string is also 32 bits.
[0280] Return to reference Fig.14A After step / operation 1404 and / or in response to step / operation 1404, some example methods according to some embodiments of the present disclosure proceed to step / operation 1406. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may generate a mask string at step / operation 1406.
[0281] In some embodiments, Fig.14A Step / operation 1406 and Fig.13A Step / operation 1305 and Fig. 12A The step / operation 1206 is similar.
[0282] Return to reference Fig.14A After step / operation 1406 and / or in response to step / operation 1406, some example methods according to some embodiments of the present disclosure proceed to step / operation 1408. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200 , etc.) may store the mask string at step / operation 1408 .
[0283] In some embodiments, Fig.14A Step / operation 1408 and Fig.13A Step / operation 1307 and Fig. 12A The step / operation 1208 is similar.
[0284] Return to reference Fig.14A After step / operation 1408 and / or in response to step / operation 1408, some example methods according to some embodiments of the present disclosure proceed to block B, which is connected back to Fig.10 Step / operation 1006.
[0285] Fig. 14B The example flow chart 1400B shown begins at block C, which is connected to Fig.10 Step / operation 1010, wherein an example processor (such as but not limited to the above combination Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the example electronic circuit 200 described above generates a click string. Therefore, Fig. 14BThe example flow chart 1400B shown in illustrates an example method associated with generating a click string.
[0286] In some embodiments, after block C and / or in response to block C, some example methods according to some embodiments of the present disclosure proceed to step / operation 1410. In some embodiments, an example processor (such as but not limited to the above combined Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) may receive a trigger string at step / operation 1410.
[0287] In some embodiments, Fig. 14B Step / operation 1410 and Fig. 12B Step / operation 1210 and Fig. 13B The step / operation 1309 is similar.
[0288] Return to reference Fig. 14B After step / operation 1410 and / or in response to step / operation 1410, some example methods according to some embodiments of the present disclosure proceed to step / operation 1412. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200 , etc.) may receive the mask string at step / operation 1412 .
[0289] In some embodiments, Fig. 14B The step / operation 1412 is similar to Fig. 12B Steps / operations 1212 and Fig. 13B Step / operation 1311.
[0290] Return to reference Fig. 14B After step / operation 1412 and / or in response to step / operation 1412, some example methods according to some embodiments of the present disclosure proceed to step / operation 1414. In some embodiments, an example processor (such as but not limited to the above combination) Figure 1 The processor 101 of the example device 100 described above is combined with Figure 2 The processing unit 211 of the described example electronic circuit 200, etc.) can generate the defined click string at step / operation 1414.
[0291] In some embodiments, step / operation 1414 of FIG. B is similar to Fig. 12B Steps / operations 1214 and Fig. 13B The step / operation 1313 is similar.
[0292] Return to reference Fig. 14B After step / operation 1414 and / or in response to step / operation 1414, some example methods according to some embodiments of the present disclosure proceed to block D, which is connected back to Fig.10 Step / operation 1010.
[0293] Although this detailed description has described some embodiments of the present invention, the appended claims also cover other embodiments of the present invention that may differ from the described embodiments according to various modifications and improvements. For example, in some embodiments, the first non-volatile data storage medium unit (storing the first original trigger string) and the second non-volatile data storage medium unit (storing the second original trigger string) may not be adjacent to each other and / or may not be on the same memory page.
[0294] In the claims that follow, unless the specific terms "means for" or "step for" are used in a given claim, it is not intended that the claims be interpreted pursuant to 35 USC 112, paragraph 6.
Claims
1. A method for encrypting data based on a click string generation page, the click string generation page comprising a first non-volatile data storage medium unit, the first non-volatile data storage medium unit storing a first original trigger string, the method comprising: generating, by a processor, a first over-programming trigger string by performing a first over-programming operation on the first non-volatile data storage medium unit; generating, by the processor, a first click string by performing a first computation operation based at least in part on the first original trigger string and the first overprogrammed trigger string; as well as An encrypted data storage medium is generated by the processor by performing an encryption operation on an unencrypted data storage medium based at least in part on the first click string. 2 . The method according to claim 1 , wherein the click string generation page comprises a second non-volatile data storage medium unit, and the second non-volatile data storage medium unit stores the second original trigger string.
3. The method according to claim 2, wherein generating the first over-programming trigger string comprises: receiving, by the processor, the second original trigger string from the second non-volatile data storage medium unit; as well as The first over-programming operation is performed by the processor on the first non-volatile data storage medium unit based on the second original trigger string.
4. The method according to claim 2, further comprising: A mask string is applied on the first click string.
5. The method of claim 2, wherein generating the encrypted data storage medium comprises: generating, by the processor, a second over-programming trigger string by performing a second over-programming operation on the second non-volatile data storage medium unit; generating, by the processor, a second click string by performing a second computation operation based at least in part on the second original trigger string and the second overprogrammed trigger string; as well as The encrypted data storage medium is generated by the processor by performing the encryption operation on the unencrypted data storage medium based on the first click string and the second click string.
6. The method according to claim 5, wherein generating the second over-programming trigger string comprises: Before generating the first over-programming trigger string, the processor receives the first original trigger string from the first non-volatile data storage medium unit; as well as The second over-programming operation is performed by the processor on the second non-volatile data storage medium unit based on the first original trigger string.
7. The method according to claim 5, further comprising: A mask string is applied on the second click string.
8. A computing device for performing data encryption based on a click string generation page, the click string generation page comprising a first non-volatile data storage medium unit, the first non-volatile data storage medium unit storing a first original trigger string, the computing device comprising a memory, and one or more processors, the one or more processors being communicatively coupled to the memory, the one or more processors being configured to: generating a first over-programming trigger string by performing a first over-programming operation on the first non-volatile data storage medium unit; generating a first click string by performing a first computation operation based at least in part on the first original trigger string and the first overprogrammed trigger string; and An encrypted data storage medium is generated by performing an encryption operation on an unencrypted data storage medium based at least in part on the first click string.
9. The computing device of claim 8, wherein the click string generation page comprises a second non-volatile data storage medium unit, and the second non-volatile data storage medium unit stores the second original trigger string.
10. The computing device according to claim 9, wherein: When generating the first over-programming trigger string, the one or more processors are configured to: receiving the second original trigger string from the second non-volatile data storage medium unit; and The first over-programming operation is performed on the first non-volatile data storage medium unit based on the second original trigger string.
11. The computing device of claim 9, wherein the one or more processors are configured to: A mask string is applied on the first click string.
12. The computing device according to claim 9, wherein: When generating the encrypted data storage medium, the one or more processors are configured to: generating a second over-programming trigger string by performing a second over-programming operation on the second non-volatile data storage medium unit; generating a second click string by performing a second computation operation based at least in part on the second original trigger string and the second overprogrammed trigger string; and The encrypted data storage medium is generated by performing the encryption operation on the unencrypted data storage medium based on the first click string and the second click string.
13. The computing device of claim 12, wherein: When generating the second over-programming trigger string, the one or more processors are configured to: Before generating the first over-programming trigger string, receiving the first original trigger string from the first non-volatile data storage medium unit; and The second over-programming operation is performed on the second non-volatile data storage medium unit based on the first original trigger string.
14. The computing device of claim 12, wherein the one or more processors are configured to: A mask string is applied on the second click string.
15. One or more non-transitory computer-readable storage media, for performing data encryption based on a click string generation page, the click string generation page comprising a first non-volatile data storage medium unit, the first non-volatile data storage medium unit storing a first original trigger string, the one or more non-transitory computer-readable storage media comprising instructions, the instructions, when executed by one or more processors, causing the one or more processors to: generating a first over-programming trigger string by performing a first over-programming operation on the first non-volatile data storage medium unit; generating a first click string by performing a first computation operation based at least in part on the first original trigger string and the first overprogrammed trigger string; and An encrypted data storage medium is generated by performing an encryption operation on an unencrypted data storage medium based at least in part on the first click string.
16. The one or more non-transitory computer-readable storage media of claim 15, wherein the click string generation page comprises a second non-volatile data storage medium unit, the second non-volatile data storage medium unit storing a second original trigger string.
17. The one or more non-transitory computer-readable storage media of claim 16, wherein: When generating the first overprogramming trigger string, the instructions cause the one or more processors to: receiving the second original trigger string from the second non-volatile data storage medium unit; and The first over-programming operation is performed on the first non-volatile data storage medium unit based on the second original trigger string.
18. The one or more non-transitory computer-readable storage media of claim 16, wherein the instructions cause the one or more processors to: A mask string is applied on the first click string.
19. The one or more non-transitory computer-readable storage media of claim 16, wherein: When generating the encrypted data storage medium, the instructions cause the one or more processors to: generating a second over-programming trigger string by performing a second over-programming operation on the second non-volatile data storage medium unit; generating a second click string by performing a second computation operation based at least in part on the second original trigger string and the second overprogrammed trigger string; and The encrypted data storage medium is generated by performing the encryption operation on the unencrypted data storage medium based on the first click string and the second click string.
20. The one or more non-transitory computer-readable storage media of claim 19, wherein: When generating the second overprogramming trigger string, the instructions cause the one or more processors to: Before generating the first over-programming trigger string, receiving the first original trigger string from the first non-volatile data storage medium unit; and The second over-programming operation is performed on the second non-volatile data storage medium unit based on the first original trigger string.