Data security for format-preserving data transformations

By generating tags for data segments in a dynamic database and deriveing ​​temporary keys for formatting data transformation, the problem that security after deleting data in a dynamic database is solved, and the forward confidentiality of data is achieved.

CN119918083APending Publication Date: 2025-05-02FACE CUTE CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411532600.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-10-31
Filing Date
2024-10-30
Publication Date
2025-05-02

AI Technical Summary

Technical Problem

User data deleted in dynamic databases may be affected after the decryption key is leaked, resulting in data security threats.

Method used

By generating corresponding tags for the data segment in the database and deriveing ​​a temporary key from the master key, the data is transformed in format retained data to ensure that the data remains forward confidentiality after being deleted.

Benefits of technology

It effectively prevents the security of the data segment from being threatened under the influence of decryption key leakage before and after deletion, ensuring forward confidentiality of the data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119918083A_ABST
    Figure CN119918083A_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to data security for format-preserving data transformations, and provide methods and systems for data security. The method includes generating respective tags for data segments in the dataset, deriving respective temporary keys associated with the respective tags of the plurality of data segments from a master key, and generating respective tags for the plurality of data segments while preserving the format of the data segments. The plurality of data segments are transformed from plaintext to ciphertext using the respective temporary keys as a first input and the respective tags as a second input. The master key may be updated to prevent inverse transformation of selected data segments in the dataset from the ciphertext to the plaintext.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments described herein generally relate to data security of format-preserving data transformations. More specifically, embodiments described herein relate to data security of format-preserving data transformations for dynamic databases. Background Art

[0002] Databases are often dynamic. For example, when a user account is cancelled, the database needs to be updated to remove or delete the user's data from the database. The privacy of the deleted user data may be affected by data breaches that may occur after the deletion. Imagine that an attacker hacks into a database system on a first date and obtains a snapshot of an encrypted database. The decryption key for the database may be well protected, so it may take several weeks for the attacker to finally obtain the decryption key on a later second date. Any user data deleted between the first date and the second date may still be affected by the decryption key leak on the second date. Summary of the invention

[0003] It is desirable to provide data security for a dynamic database. In particular, it is desirable to transform the data in the dynamic database so as to meet security requirements (e.g., forward secrecy) while retaining the original data format (e.g., data length, data type, or overall format). As referred to herein, "forward secrecy" may refer to a feature of a cryptographic protocol / algorithm that can ensure the security of any past data (e.g., user data deleted between an earlier first date and a later second date) by preventing the past data from being affected by key disclosure at a later date (e.g., a second date).

[0004] In one example, when a user account is cancelled, features in the embodiments described herein can update a database to remove or delete the user's data from the database. The deleted data may be a ciphertext obtained by performing a format-preserving data transformation on the original plaintext using a temporary key derived from the original master key as a first input and an associated tag as a second input. Features in the embodiments described herein can update the original master key, revoke the ability of the original master key to inversely transform (e.g., decrypt) the ciphertext, and prevent an attacker from, for example, using the original master key to decrypt the user's data. In this way, even if an attacker obtains an encrypted database on a first date before deletion and obtains a decryption key (e.g., the original master key) on a later second date after deletion, the privacy of the deleted user data can be protected. That is, features of the embodiments described herein can prevent the security of any user data modified / deleted between the first date and the second date from being affected by the leakage of the decryption key on the second date. Therefore, forward secrecy can be retained, wherein the security of past (e.g., modified / deleted) data is not affected by the key leakage at a later time.

[0005] In one example embodiment, a method for secure computing and communication is provided. The method includes: generating respective labels for a plurality of data segments in a data set; deriving respective temporary keys associated with respective labels of the plurality of data segments from a master key; transforming the plurality of data segments from plaintext to ciphertext using the respective temporary keys as a first input and the respective labels as a second input while preserving the format of the plurality of data segments; and updating the master key to prevent the master key from inversely transforming a selected data segment of the plurality of data segments from ciphertext to plaintext.

[0006] In another example embodiment, a secure computing and communication system is provided. The system includes a memory and a processor, the memory being used to store a data set including a plurality of data segments. The processor is used to generate respective labels for the plurality of data segments; derive respective temporary keys associated with respective labels of the plurality of data segments from a master key; transform the plurality of data segments in the data set from plaintext to ciphertext using the respective temporary keys as a first input and the respective labels as a second input while preserving the format of the plurality of data segments; and update the master key to prevent the master key from inversely transforming a selected data segment of the plurality of data segments from ciphertext to plaintext.

[0007] In yet another example embodiment, a non-transitory computer-readable medium having computer-executable instructions stored thereon is provided. The instructions, when executed, cause one or more processors to perform operations including: generating respective tags for a plurality of data segments in a data set; deriving respective temporary keys associated with respective tags of the plurality of data segments from a master key; transforming the plurality of data segments in the data set from plaintext to ciphertext using the respective temporary keys as a first input and the respective tags as a second input while preserving the format of the plurality of data segments; and updating the master key to prevent the master key from inversely transforming a selected data segment of the plurality of data segments from ciphertext to plaintext. BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The accompanying drawings show various embodiments of the system and method of the present disclosure, and embodiments of various other aspects. It will be understood by any person of ordinary skill in the art that the element boundaries (e.g., boxes, multiple groups of boxes or other shapes) shown in the figure represent an example of boundaries. In some examples, it is possible that an element can be designed as multiple elements, or multiple elements can be designed as one element. In some examples, an element shown as an internal component of an element can be implemented as an external component of another element, and vice versa. Non-restrictive and non-exhaustive descriptions are described with reference to the following drawings. The components in the figure are not necessarily drawn to scale, but the emphasis is placed on the explanation principle. In the following detailed description, the embodiments are described only as illustrations, because various changes and modifications may be apparent to those skilled in the art from the following detailed description.

[0009] Figure 1 is a schematic diagram of an example data security system arranged in accordance with at least some embodiments described herein.

[0010] Figure 2 is a block diagram of an example system for providing data security for format-preserving data transformations in accordance with at least some embodiments described herein.

[0011] Figure 3 is a flow diagram illustrating an example of providing data security for format-preserving data transformations in accordance with at least some embodiments described herein.

[0012] Figure 4A A schematic diagram is shown illustrating an example process for format-preserving data transformation in accordance with at least some embodiments described herein.

[0013] Figure 4B A schematic diagram is shown illustrating an example process of data inverse transformation according to at least some embodiments described herein.

[0014] Figure 5is a schematic block diagram of an example computer system suitable for implementing an electronic device, arranged in accordance with at least some embodiments described herein. DETAILED DESCRIPTION

[0015] In the following detailed description, specific embodiments of the present disclosure are described herein with reference to the accompanying drawings, which form a part of this specification. In this specification and the accompanying drawings, unless the context otherwise dictates, the same reference numerals represent elements that can perform the same, similar or equivalent functions. In addition, unless otherwise specified, the description of each subsequent figure may refer to the features of one or more figures from the previous figures to provide a clearer context and a more substantial explanation of the current example embodiment. Nevertheless, the example embodiments described in the detailed description, the accompanying drawings, and the claims are not intended to be limiting. Other embodiments may be utilized and other changes may be made without departing from the spirit or scope of the subject matter presented herein. It will be readily understood that the various aspects of the present disclosure as generally described herein and shown in the accompanying drawings may be arranged, substituted, combined, separated and designed by a variety of configurations, all of which are clearly contemplated herein.

[0016] It should be understood that the disclosed embodiments are merely examples of the present disclosure, which may be embodied in various forms. Well-known functions or configurations are not described in detail to avoid obscuring the present disclosure with unnecessary detail. Therefore, the specific structural and functional details disclosed herein should not be interpreted as limiting, but merely as a basis for the claims and as a representative basis for teaching those skilled in the art to employ the present disclosure in various ways in almost any suitable detailed structure.

[0017] Additionally, the disclosure may be described herein in terms of functional block components and various processing steps. It should be understood that such functional blocks may be implemented by any number of hardware and / or software components configured to perform the specified functions.

[0018] The scope of the present disclosure should be determined by the appended claims and their legal equivalents, rather than by the examples given herein. For example, the steps recited in any method claim may be performed in any order and are not limited to the order presented in the claim. In addition, unless expressly described herein as "critical" or "essential", no element is essential to the practice of the present disclosure.

[0019] As referred to herein, a "data set" or "dataset" may refer to an organized collection of data stored and accessed electronically. In an example embodiment, a data set may refer to a database, a data table, a portion of a database or a data table, etc. It should be understood that a data set may correspond to one or more database tables, wherein each column of the database table represents a specific variable or field, and each row of the database table corresponds to a given record of the data set. The data set may list the value of each variable and / or the value of each record of the data set. It should also be understood that a data set may also or alternatively refer to a group of related data and the organization of the related data. In an example embodiment, each record of the data set may include (multiple) fields or (multiple) elements, such as one or more predefined or predetermined identifiers (e.g., member identity identifiers, user identifiers, etc., such as user names, email addresses, phone numbers, etc.), and / or one or more attributes or features or values ​​associated with one or more identifiers.

[0020] As referred to herein, a "data segment" may refer to a unit of data that can be organized, managed, and / or accessed in a data set or database. A data segment may be used to represent a specific piece of information or record, such as various user data associated with a user account. In an example, a data segment may be represented as row(s) and / or column(s) in a table, where each row corresponds to a record with attributes or fields.

[0021] As referred to herein, a "tag" of a data segment may refer to a piece of metadata or an identifier associated with that particular data segment. A tag may distinguish one data segment from another data segment in a data set.

[0022] As referred to herein, "format preserving" or "format-preserving" may refer to a data transformation property or feature that is capable of preserving the format or structure of the original data (e.g., plaintext) while protecting the original data through a data transformation (e.g., encryption). In other words, when a format-preserving transformation (e.g., encryption) is performed on data, the resulting ciphertext may maintain a structure, data type, or format similar to the original plaintext. For example, the corresponding plaintext and ciphertext may include numeric values, characters, or symbols from the same finite alphabet. An example of a format-preserving transformation is format-preserving encryption (FPE), which may be a specific type of symmetric key encryption and is suitable for encryption applications that can preserve the format (e.g., length, data type, or overall format) of a database field (e.g., a username, phone number, email address, or other structured data element). For example, an FPE algorithm may encrypt a 10-digit phone number in such a way that the resulting ciphertext is also a 10-digit number, thereby preserving the original format.

[0023] As referred to herein, "data transformation" may refer to functions or operations used to "transform" a data set or one or more data segments thereof, including processing (e.g., encrypting, decrypting, encoding, decoding, manipulating, compressing, decompressing, converting, etc.) a data set or one or more data segments thereof. A data segment of a data set may refer to, for example, one or more columns (or rows) of a data set, such as one or more identification fields / columns (or records / rows), etc. An example of data transformation is encryption, which may refer to the process of converting plaintext (unencrypted data) into ciphertext (encrypted data) using an encryption algorithm and a key. "Reverse-transforming or reverse transforming" may refer to functions or operations that reverse the transformation process. An example of an inverse data transformation is decryption, which may refer to the process of converting ciphertext (encrypted data) back to plaintext (unencrypted data) using a decryption algorithm and a key.

[0024] As referred to herein, a "transformation scheme" may refer to an algorithm, protocol, or function that processes (e.g., encrypts, decrypts, encodes, decodes, manipulates, compresses, decompresses, converts, etc.) a data set or one or more data segments thereof.

[0025] As referred to herein, "symmetric key algorithm," "symmetric encryption algorithm," or "symmetric cryptography" is a technical term and may refer to a cryptographic algorithm that uses the same cryptographic key for both encryption of data (i.e., plaintext) and decryption of data (i.e., ciphertext). The cryptographic keys may be the same, or there may be a simple transformation between cryptographic keys. The same key may be used to transform plaintext (i.e., unencrypted data) into ciphertext (i.e., encrypted data) and to inversely transform ciphertext back into plaintext. An example symmetric key algorithm includes the Advanced Encryption Standard (AES).

[0026] As referred to herein, a "secret key" may refer to a cryptographic key used to perform a transformation (e.g., encryption) or an inverse transformation (e.g., decryption) in a symmetric key algorithm. A secret key may refer to (i) a master key used to initialize a symmetric key algorithm and derive a secondary key or a temporary key based on corresponding tags associated with data segments in a data set, and / or (ii) a secondary key or a temporary key derived from the master key. The secondary key or temporary key may be used to transform or inversely transform a data segment based on an associated tag, and specific transformations may be performed for different data segments.

[0027] Figure 1 is a schematic diagram of an example data security system 100 arranged in accordance with at least some embodiments described herein. In an example embodiment, the system 100 may be a digital advertising system, a social media application system, or the like.

[0028] The system 100 may include terminal devices 110, 120, 130, and 140, a network 160, and a server 150 (eg, a server for a digital advertising platform, a server for an advertiser, etc.). It should be understood that Figure 1 Only illustrative numbers of terminal devices, networks, and servers are shown. The embodiments described herein are not limited to the number of terminal devices, networks, and / or servers described. That is, the number of terminal devices, networks, and / or servers described herein is provided for descriptive purposes only and is not intended to be limiting.

[0029] According to at least some example embodiments, terminal devices 110, 120, 130, and 140 may be various electronic devices. Various electronic devices may include, but are not limited to, mobile devices such as smartphones, tablet computers, e-book readers, laptop computers, desktop computers, and / or any other suitable electronic devices.

[0030] According to at least some example embodiments, the network 160 may be a medium for providing a communication link between the terminal devices 110, 120, 130, 140 and the server 150. The network 160 may be the Internet, a local area network (LAN), a wide area network (WAN), a local interconnect network (LIN), a cloud, etc. The network 160 may be implemented through various types of connections, such as a wired communication link, a wireless communication link, a fiber optic cable, etc.

[0031] According to at least some example embodiments, server 150 may be a server for providing various services (such as digital advertising services, online shopping services, etc.) to users using one or more of terminal devices 110, 120, 130, and 140. Server 150 may be implemented by a distributed server cluster including a plurality of servers, or may be implemented by a single server.

[0032] The user may use one or more of the terminal devices 110, 120, 130, and 140 to interact with the server 150 via the network 160. Various applications such as social media applications, online shopping services, or their localized interfaces may be installed on the terminal devices 110, 120, 130, and 140.

[0033] It should be understood that the software application or service according to the embodiments described herein and / or the service provided by the digital advertising and / or online shopping service provider may be executed by the server 150 and / or the terminal devices 110, 120, 130, and 140 (hereinafter referred to as user devices). Therefore, the apparatus for the software application and / or service may be arranged in the server 150 and / or the terminal devices 110, 120, 130, and 140.

[0034] It should also be understood that when the service is not performed remotely, the system 100 may not include the network 160 , but may include only the terminal devices 110 , 120 , 130 , and 140 and / or the server 150 .

[0035] It should be further understood that the terminal devices 110, 120, 130 and 140 and / or the server 150 may each include one or more processors, memories, and storage devices storing one or more programs. The terminal devices 110, 120, 130 and 140 and / or the server 150 may also each include an Ethernet connector, a wireless fidelity receiver, etc. The one or more programs, when executed by one or more processors, may enable one or more processors to perform the (multiple) methods described in any embodiment described herein. In addition, it should be understood that a non-volatile computer-readable medium may be provided according to the embodiments described herein. The computer-readable medium stores a computer program. The computer program is used to perform the (multiple) methods described in any embodiment described herein when executed by a processor.

[0036] Figure 2 is a schematic diagram of an example system 200 for providing data security (eg, satisfying security requirements for forward secrecy) for format-preserving data transformations, arranged in accordance with at least some embodiments described herein.

[0037] The data security system 200 includes functional blocks or modules 210, 220, 230, and 240. It should be understood that such functional blocks may be implemented by any number of hardware and / or software components configured to perform the specified functions. It should also be understood that unless otherwise specified, the data security system 200 and its functional blocks disclosed herein may be implemented by one or more processors (e.g., Figure 1 a processor of one or more of the terminal devices 110, 120, 130 and 140, Figure 1 The processor of the server 150, Figure 5 505, and / or any other suitable processor).

[0038] The data security system 200 receives user input 202 to perform data operations (multiple) on data that may be stored in a database or data set. In an embodiment, the security system 200 may receive an indication to change, update, or delete one or more data segments in a data set. For example, the data security system 200 may receive a user request to cancel a user account. The data security system 200 may update the data set by removing or deleting user data (e.g., one or more selected data segments associated with a user account) from the data set.

[0039] The label generation module 220 generates corresponding labels for the data segments in the data set. The labels can be generated as identifiers or tags that can uniquely or semantically distinguish each data segment in the data set from other data segments. That is, the corresponding labels of the data segments in the data set can be different from each other and are specific to the data segment. The labels can be used to facilitate data retrieval and organization of the data segments in the data set. An example label is a timestamp that can represent the date and time when a specific data segment is created, transformed or modified. For example, when the data security system 200 receives user input 202 to create, add or modify user data, the label generation module 220 can generate a unique timestamp as an identifier for (multiple) related data segments. In an example embodiment, the label generation module 220 can generate a unique label associated with a specific data segment when the specific data segment is transformed, for example, by the data transformation module 240.

[0040] The master key module 210 can initiate (e.g., receive or generate) a secret key as an initial or original master key (i.e., msk0), which can be used by the key derivation module 230 to derive corresponding temporary keys for data segments in the data set. The secret key can be generated by using any suitable symmetric key algorithm or scheme with (multiple) specified security parameters to meet the security requirements of forward secrecy. During the generation process, suitable cryptographic operations can be performed to create a secret key that can be used as an initial or original master key. It should be understood that in an example embodiment, the same initial or original master key can be generated for all or part of the data segments in the data set. It should be understood that the master key module 210 may include a master key generation submodule for generating an initial or original master key (i.e., msk0) in a setup phase, and a master key update submodule for providing subsequent updates to the master key.

[0041] The key derivation module 230 derives corresponding temporary keys associated with corresponding tags of corresponding data segments from the master key. In an example embodiment, a suitable key derivation algorithm may be used to generate temporary keys for relevant data segments by taking the master key and a specific tag as input. The derived temporary keys may be specific to the combination of the master key and the tag. Each data segment in a data set may have its own unique temporary key for data transformation and / or inverse transformation.

[0042] The data transformation module 240 transforms the data segment from plaintext to ciphertext using the corresponding temporary key as a first input and the corresponding tag as a second input while preserving the format of the data segment. That is, the corresponding plaintext and ciphertext can have substantially the same format, including, for example, substantially the same data length, substantially the same data type, substantially the same overall format, etc. The data transformation module 240 uses the tag associated with a particular data segment as a second input and the temporary key as a transformation key (which can provide a relatively strong level of security) while preserving the original data format of the particular data segment associated with the tag. Any suitable format-preserving transformation algorithm or scheme can be used to perform the transformation (e.g., encryption) or inverse transformation (e.g., decryption). It should be understood that (i) when the second input (e.g., tag) is missing, the ciphertext of the same encryption key and message (e.g., plaintext) can be the same, and (ii) when different second inputs (e.g., different tags) are used to transform (e.g., encrypt) the same message (e.g., plaintext), the result (e.g., ciphertext) may be different. It should also be understood that in a format-preserving transformation algorithm or scheme, the ciphertext may preserve the format of the corresponding message (eg, plaintext) regardless of whether a second input (eg, a tag) is used.

[0043] The master key module 210 may update the master key (eg, from the current version of the master key msk i To the newer version of the master key msk i+1 ) to prevent the original master key (e.g., msk i ) reversely transforms the selected data segment in the data set from ciphertext to plaintext. For example, the master key module 210 may (i) the current version of the master key msk i as the first input, and (ii) associate the label t with the selected data segment i As the second input, to output an updated version of the master key msk i+1 In an example embodiment, when the data security system 200 receives user input 202 to change a selected data segment, the master key module 210 may use the tag of the selected data segment to update the original master key to an updated or new master key, which may revoke the key derivation module 230's authority to derive a temporary key for inversely transforming the selected data segment from ciphertext to plaintext.

[0044] When the selected data segment is modified or deleted, the original tag may still be associated with the selected data segment and its ciphertext as an identifier. It should be understood that in an example embodiment, when the selected data segment is modified / updated, the tag generation module 220 may generate an updated tag as an identifier for the updated data segment, and the master key module 210 and the key derivation module 230 may use the updated tag to generate, update or derive key(s).

[0045] In an example embodiment, the updated master key may revoke the authority to decrypt the ciphertext of the selected data segment. The master key module 210 may replace the original master key with the updated master key and delete the original master key to prevent possible decryption key leakage.

[0046] It should be understood that the ability of the updated master key to inversely transform data segments other than the selected data segment can remain unchanged. For example, the updated master key can still access the key derivation module 230 to derive corresponding temporary keys associated with corresponding tags of corresponding data segments in the data set other than the selected data segment. For example, when a user's account is cancelled, the system 200 can update the master key to revoke its ability to inversely transform (multiple) data segments associated with the user account from ciphertext to plaintext. The updated master key can still be used to inversely transform (multiple) other data segments associated with other user accounts in the data set from ciphertext to plaintext.

[0047] Figure 3 is a flow chart illustrating an example process flow 300 for providing data security for format-preserving data transformations in accordance with at least some embodiments described herein. Figure 4A A schematic diagram is shown illustrating an example process 400 for format-preserving data transformation in accordance with at least some embodiments described herein. Figure 4B A schematic diagram is shown illustrating an example process 400 ′ for inverse transformation of data in accordance with at least some embodiments described herein.

[0048] It should be understood that, unless otherwise specified, the data processing flow 300 disclosed herein may be executed by one or more processors (e.g., Figure 1 a processor of one or more of the terminal devices 110, 120, 130 and 140, Figure 1 a processor of the server 150, Figure 5 505, and / or any other suitable processor).

[0049] It should also be understood that the processing flow 300 may include one or more operations, actions, or functions as shown in one or more of the blocks 310, 320, 330, and 340. These various operations, functions, or actions may correspond, for example, to software, program code, or program instructions executable by a processor so that these functions are performed. Although shown as discrete blocks, obvious modifications may be made, for example, two or more blocks may be reordered; more blocks may be added; and individual blocks may be divided into additional blocks, combined into fewer blocks, or deleted according to the desired implementation. It should be understood that operations including initialization may be performed prior to the processing flow 300. For example, system parameters and / or application parameters may be initialized. The processing flow 300 may start at block 310.

[0050] At block 310 (Generate Tags for Data Segments), the processor may generate a tag as an identifier for each data segment in the data set. In an example embodiment, the data set may include multiple data segments (eg, tens or hundreds of thousands of elements, such as records, rows, etc.). Figure 2 The label generation module 220 of the system 200 in can generate labels as identifiers or tags that can uniquely or semantically distinguish each data segment from other data segments. That is, the corresponding labels of the data segments in the data set can be different from each other. An example label is a timestamp that can represent the date and time when the specific data segment was created or modified. For example, when the data security system 200 receives user input 202 to create, add or modify user data, the label generation module 220 can generate a unique timestamp as an identifier for (multiple) related data segments in the data set. Processing can proceed from box 310 to box 320.

[0051] At block 320 (Derive Temporary Keys for Data Segments), the processor may derive, from the master key, respective temporary keys associated with respective tags for data segments in the data set. Figure 2 The master key module 210 of the system 200 may generate a secret key as a master key to derive corresponding temporary keys for data segments in a data set.

[0052] For example, Figure 4A In the embodiment depicted, using input 402, Figure 2 The key derivation module 230 of the system 200 in FIG. 4 may generate an output 404 at block 410 (key derivation). The input 402 includes a master key (msk i ) and the corresponding label (t) of the corresponding data segment in the data set. Output 404 includes the corresponding temporary key (k) associated with the corresponding label (t) of the corresponding data segment in the data set. Processing can proceed from block 320 to block 330.

[0053] At block 330 (Transform Data Segment), a processor of a corresponding device may transform a data segment in a data set from plaintext to ciphertext using a corresponding temporary key as a first input and a corresponding tag as a second input while preserving the format of the data segment (i.e., the corresponding plaintext and ciphertext have substantially the same format). Any suitable format-preserving transformation (e.g., FPE) algorithm or scheme may be used to perform a transformation (e.g., encryption) or an inverse transformation (e.g., decryption).

[0054] According to non-limiting embodiments described and described herein, when utilizing a suitable format-preserving transformation (e.g., FPE) algorithm, a tag may be used as a second input and a temporary key may be used as a transformation key (which may provide a relatively strong level of security) while preserving the original data format of a particular data segment associated with the tag. In other words, a tag may be used as a unique identifier for a particular data segment and may also be used as a second input to a format-preserving transformation to preserve the format or structure of the original data. Tags may help achieve a higher level of format preservation by allowing the transformation process to adapt to format requirements, ensuring that the ciphertext maintains the same format or structure as the plaintext.

[0055] For example, Figure 4A In the case where output 404 from block 410 (key derivation) is provided as input(s), Figure 2 The data transformation module 240 of the system 200 may transform the data segments in the data set from plaintext (m) 412 to ciphertext (ct) 414 using the corresponding temporary key (k) of the output 404 as a first input and the corresponding tag (t) of the output 404 as a second input at block 420 (FPE.Enc). The transformation from plaintext (m) 412 to ciphertext (ct) 414 is format-preserving. That is, the plaintext (m) 412 to the ciphertext (ct) 414 may have substantially the same format, including, for example, substantially the same data length, substantially the same data type, substantially the same overall format, etc. For example, the plaintext (m) 412 may include a 10-digit telephone number, which may be encrypted into the ciphertext (ct) 414 also including 10 digits, thereby preserving the original format. Processing may proceed from block 330 to block 340.

[0056] At block 340 (Update Master Key to Prevent Reverse Transformation), the processor may update the master key to prevent the master key from reversing the transformation of the selected data segment in the data set from ciphertext to plaintext. Figure 2When the data security system 200 receives an indication to change a selected data segment, the master key module 210 can use the tag of the selected data segment to update the master key to an updated or new master key, which can revoke the key derivation module 230's authority to derive a temporary key from the updated master key for inversely transforming the selected data segment from ciphertext to plaintext.

[0057] In an example embodiment, processing may proceed from block 340 to block 320. The updated or new master key may be used to derive corresponding temporary keys associated with corresponding tags of data segments in the data set other than the selected data segment.

[0058] Using the updated or new master key, the key derivation module 230 can still generate corresponding temporary keys for inverse transformation of data segments in the data set other than the selected data segment, because the authority to derive temporary keys for the selected data segment has been revoked by updating the master key. For example, when an indication to modify / delete a selected data segment from the data set is received, the updated master key can revoke the authority to decrypt the ciphertext of the selected data segment. Then, the selected data segment is modified / deleted from the data set, and the master key is updated to revoke the original master key's ability to decrypt the modified / deleted data segment.

[0059] For example, Figure 4B In the embodiment depicted, using input 402', Figure 2 The key derivation module 230 of the system 200 in the embodiment of the present invention may generate an output 404' at block 410' (key derivation). The input 402' includes an updated or new master key (msk i ) and the corresponding labels (t) of the data segments in the data set. Output 404' includes the corresponding temporary keys (k) associated with the corresponding labels (t) of the corresponding data segments other than the selected data segment. In the case where output 404' from block 410' (key derivation) is provided as input(s), Figure 2 The data transformation module 240 of the system 200 may inversely transform the data segments in the data set except the selected data segment from the ciphertext (ct) 414 to the plaintext (m) 412 at block 420' (FPE.Dec). The inverse transformation from the ciphertext (ct) 414 to the plaintext (m) 412 may also be format-preserving.

[0060] Figure 5 is arranged according to at least some embodiments described herein and is suitable for implementing an electronic device (e.g., Figure 1 Schematic diagram of the structure of an example computer system 500 of FIG. 1 . It should be understood that Figure 5 The computer system shown is provided for illustration only and is not intended to limit the functionality and applicability of the embodiments described herein.

[0061] As depicted, computer system 500 may include a central processing unit (CPU) 505. CPU 505 may perform various operations and processes based on programs stored in read-only memory (ROM) 510 or programs loaded from storage device 540 to random access memory (RAM) 515. RAM 515 may also store various data and programs required for the operation of system 500. CPU 505, ROM 510, and RAM 515 may be connected to each other via bus 520. Input / output (I / O) interface 525 may also be connected to bus 520.

[0062] The components connected to the I / O interface 525 may further include: an input device 530 including a keyboard, a mouse, a digital pen, a drawing board, etc.; an output device 535 including a display (such as a liquid crystal display (LCD)), a speaker, etc.; a storage device 540 including a hard disk, etc.; and a communication device 545 including a network interface card, such as a LAN card, a modem, etc. The communication device 545 can perform communication processing via a network such as the Internet, a WAN, a LAN, a LIN, a cloud, etc. In an embodiment, a drive 550 may also be connected to the I / O interface 525. A removable medium 555 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc. can be installed on the drive 550 as needed, so that a computer program read from the removable medium 555 can be installed in the storage device 540.

[0063] It should be understood that reference Figure 3 The processes described in the flowcharts and / or the processes described in other figures may be implemented as computer software programs or implemented in hardware. The computer program product may include a computer program stored in a non-volatile computer-readable medium. The computer program includes program code and / or a GUI for executing the method shown in the flowchart. In this embodiment, the computer program can be downloaded and installed from a network via a communication device 545, and / or can be installed via a removable medium 555. The computer program, when executed by a central processing unit (CPU) 505, can implement the above-mentioned functions specified by the method in the embodiments disclosed herein.

[0064] Compared with existing algorithms, protocols or systems, testing and / or analysis show that, utilizing the features in the embodiments disclosed herein, improved data security (e.g., forward secrecy) can be provided for format-preserving data transformations of dynamic databases. In particular, the security requirements of forward secrecy and the requirements of format preservation can be met simultaneously.

[0065] It should be understood that the disclosed and other solutions, examples, embodiments, modules and functional operations described herein can be implemented in digital electronic circuits, or in computer software, firmware or hardware, including the structures disclosed in this document and their structural equivalents, or in a combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, that is, one or more modules of computer program instructions encoded on a computer-readable medium, for execution by a data processing device or control of the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that affects a machine-readable propagation signal, or a combination of one or more of them. The term "data processing device" covers all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, the device may include code that creates an execution environment for the computer program in question, for example, code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

[0066] A computer program (also referred to as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that stores other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple collaborative files (e.g., files storing one or more modules, subroutines, or code portions). A computer program may be deployed to execute on one computer, or on multiple computers located in one location or distributed in multiple locations and interconnected by a communication network.

[0067] The processes and logic flows described in this document may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and the apparatus may also be implemented as, special purpose logic circuitry, such as field programmable gate arrays, application specific integrated circuits, and the like.

[0068] Processors suitable for executing computer programs include, for example, general and special purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to one or more mass storage devices for storing data to receive data from it or transfer data to it, or both. However, a computer need not have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as erasable programmable read-only memory, electrically erasable programmable read-only memory, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and compact disk read-only memory and digital versatile disk read-only memory disks. The processor and memory may be supplemented by or incorporated into a dedicated logic circuit.

[0069] It should be understood that different features, variants and multiple different embodiments have been shown and described in various details. The content sometimes described in this application from the embodiment aspect is only for illustrative purposes, and is not intended to limit or imply that what is conceived is only a specific embodiment or multiple specific embodiments. It should be understood that the present disclosure is not limited to any single specific embodiment or enumerated variant. Those skilled in the art will think of many modifications, variants and other embodiments, and these modifications, variants and other embodiments are intended to and are in fact covered by the present disclosure. In fact, the scope of the present disclosure should be determined by appropriate legal interpretation and explanation (including equivalents) of the present disclosure as understood by those skilled in the art based on the complete disclosure presented when submitted.

[0070] aspect:

[0071] It should be understood that any of the various aspects may be combined with each other.

[0072] Aspect 1. A method for providing data security, comprising:

[0073] Generate corresponding labels for multiple data segments in the dataset;

[0074] deriving respective temporary keys associated with respective tags of the plurality of data segments from the master key;

[0075] transforming the plurality of data segments from plaintext to ciphertext using the respective temporary keys as a first input and the respective tags as a second input while preserving the format of the plurality of data segments; and

[0076] The master key is updated to prevent the master key from inversely transforming the selected data segment among the multiple data segments from the ciphertext to the plaintext.

[0077] Aspect 2. A method as described in Aspect 1, wherein when an indication to change the selected data segment is received, the master key is changed to an updated master key.

[0078] Aspect 3. A method as described in Aspect 2, wherein the updating of the master key includes revoking the authority to derive a temporary key from the updated master key for inversely transforming the selected data segment from the ciphertext to the plaintext.

[0079] Aspect 4. The method according to aspect 2 or 3, further comprising:

[0080] replacing the master key with the updated master key; and

[0081] Delete the master key.

[0082] Aspect 5. A method as described in any one of Aspects 1 to 4, wherein updating the master key includes revoking the authority to decrypt the ciphertext of the selected data segment.

[0083] Aspect 6. A method as described in any one of Aspects 1 to 5, wherein transforming the multiple data segments includes encrypting the multiple data segments using a format-preserving encryption algorithm.

[0084] Aspect 7. The method as described in any one of Aspects 1 to 6, wherein the corresponding labels of the multiple data segments are different from each other.

[0085] Aspect 8. The method according to any one of aspects 1 to 7, further comprising:

[0086] A secret key is generated as the master key to derive corresponding temporary keys for the plurality of data segments.

[0087] Aspect 9. The method according to any one of aspects 1 to 8, further comprising:

[0088] An indication to delete the selected data segment from the data set is received, and the selected data segment is deleted from the data set.

[0089] Aspect 10. A system for providing data security, the system comprising:

[0090] A memory for storing a data set including a plurality of data segments;

[0091] A processor that is used to:

[0092] generating corresponding labels for the multiple data segments;

[0093] deriving respective temporary keys associated with respective tags of the plurality of data segments from the master key;

[0094] transforming the plurality of data segments in the data set from plaintext to ciphertext using the corresponding temporary keys as a first input and the corresponding tags as a second input while preserving the format of the plurality of data segments; and

[0095] The master key is updated to prevent the master key from inversely transforming the selected data segment among the multiple data segments from the ciphertext to the plaintext.

[0096] Aspect 11. The system of aspect 10, wherein the processor is further configured to change the master key to an updated master key upon receiving an indication to change the selected data segment.

[0097] Aspect 12. The system of aspect 11, wherein the processor is further configured to revoke permission to derive, from the updated master key, a temporary key for inversely transforming the selected data segment from the ciphertext to the plaintext.

[0098] Aspect 13. The system according to any one of aspects 10 to 12, wherein the processor is further configured to revoke the permission to decrypt the ciphertext of the selected data segment.

[0099] Aspect 14. The system of any one of Aspects 10 to 13, wherein the processor is further configured to encrypt the plurality of data segments using a format preserving encryption algorithm.

[0100] Aspect 15. The system as described in any one of Aspects 10 to 14, wherein the processor is further used to generate a secret key as the master key to derive temporary keys for the multiple data segments.

[0101] Aspect 16. A system as described in any one of Aspects 10 to 15, wherein the processor is further used to receive an instruction to delete the selected data segment from the data set, and delete the selected data segment from the data set after receiving the instruction.

[0102] Aspect 17. A non-transitory computer-readable medium having stored thereon computer-executable instructions that, when executed, cause one or more processors to perform operations comprising:

[0103] Generate corresponding labels for multiple data segments in the dataset;

[0104] deriving respective temporary keys associated with respective tags of the plurality of data segments from the master key;

[0105] transforming the plurality of data segments in the data set from plaintext to ciphertext using the corresponding temporary keys as a first input and the corresponding tags as a second input while preserving the format of the plurality of data segments; and

[0106] The master key is updated to prevent the master key from inversely transforming the selected data segment among the multiple data segments from the ciphertext to the plaintext.

[0107] Aspect 18. The computer-readable medium of aspect 17, wherein the operations further comprise updating the master key to an updated master key when an indication to modify the selected data segment is received.

[0108] Aspect 19. The computer-readable medium of aspect 18, wherein the operations further comprise revoking authority to derive, from the updated master key, a temporary key for inversely transforming the selected data segment from the ciphertext to the plaintext.

[0109] Aspect 20. The computer-readable medium of any one of Aspects 17 to 19, wherein the operations further comprise encrypting the plurality of data segments using a format-preserving encryption algorithm.

[0110] The terms used in this specification are intended to describe specific embodiments and are not intended to be limiting. Unless expressly stated otherwise, the terms "a / an" and "the" are intended to include plural forms as well. When used in this specification, the terms "comprises and / or comprising" specify the presence of stated features, integers, steps, operations, elements and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements and / or components.

[0111] With respect to the foregoing description, it should be understood that changes may be made to the details, especially the construction materials adopted and the shapes, sizes and arrangements of the parts without departing from the scope of the present disclosure. This specification and the described embodiments are exemplary only, and the true scope and spirit of the present disclosure are indicated by the appended claims.

Claims

1. A method for providing data security, comprising: Generate corresponding labels for multiple data segments in the dataset; deriving respective temporary keys associated with respective tags of the plurality of data segments from the master key; transforming the plurality of data segments from plaintext to ciphertext using the respective temporary keys as a first input and the respective tags as a second input while preserving the format of the plurality of data segments; as well as The master key is updated to prevent the master key from inversely transforming the selected data segment among the multiple data segments from the ciphertext to the plaintext.

2. The method of claim 1, wherein: When an indication to change the selected data segment is received, the master key is changed to an updated master key.

3. The method of claim 2, wherein: The updating of the master key includes revoking the authority to derive, from the updated master key, a temporary key for inversely transforming the selected data segment from the ciphertext to the plaintext.

4. The method of claim 2, further comprising: replacing the master key with the updated master key; as well as Delete the master key.

5. The method of claim 1, wherein: Updating the master key includes revoking the authority to decrypt the ciphertext of the selected data segment.

6. The method of claim 1, wherein: The transforming of the plurality of data segments includes encrypting the plurality of data segments using a format preserving encryption algorithm.

7. The method of claim 1, wherein: The respective tags of the plurality of data segments are different from each other.

8. The method of claim 1, further comprising: A secret key is generated as the master key to derive corresponding temporary keys for the plurality of data segments.

9. The method of claim 1, further comprising: An indication to delete the selected data segment from the data set is received, and the selected data segment is deleted from the data set.

10. A system for providing data security, the system comprising: A memory for storing a data set including a plurality of data segments; A processor that is used to: generating corresponding labels for the multiple data segments; deriving respective temporary keys associated with respective tags of the plurality of data segments from the master key; transforming the plurality of data segments in the data set from plaintext to ciphertext using the corresponding temporary keys as a first input and the corresponding tags as a second input while preserving the format of the plurality of data segments; as well as The master key is updated to prevent the master key from inversely transforming the selected data segment among the multiple data segments from the ciphertext to the plaintext.

11. The system of claim 10, wherein: The processor is further configured to change the master key to an updated master key upon receiving an indication to change the selected data segment.

12. The system of claim 11, wherein: The processor is further configured to revoke permission to derive, from the updated master key, a temporary key for inversely transforming the selected data segment from the ciphertext to the plaintext.

13. The system of claim 10, wherein: The processor is further configured to revoke permission to decrypt the ciphertext of the selected data segment.

14. The system of claim 10, wherein: The processor is further configured to encrypt the plurality of data segments using a format preserving encryption algorithm.

15. The system of claim 10, wherein: The processor is further configured to generate a secret key as the master key to derive temporary keys for the plurality of data segments.

16. The system of claim 10, wherein: The processor is further configured to receive an instruction to delete the selected data segment from the data set, and delete the selected data segment from the data set after receiving the instruction.

17. A non-transitory computer-readable medium having stored thereon computer-executable instructions that, when executed, cause one or more processors to perform operations comprising: Generate corresponding labels for multiple data segments in the dataset; deriving respective temporary keys associated with respective tags of the plurality of data segments from the master key; transforming the plurality of data segments in the data set from plaintext to ciphertext using the corresponding temporary keys as a first input and the corresponding tags as a second input while preserving the format of the plurality of data segments; and The master key is updated to prevent the master key from inversely transforming the selected data segment among the multiple data segments from the ciphertext to the plaintext.

18. The computer readable medium of claim 17, wherein: The operations further include changing the master key to an updated master key when an indication to change the selected data segment is received.

19. The computer-readable medium of claim 18, wherein: The operations further include revoking authority to derive, from the updated master key, a temporary key for inversely transforming the selected data segment from the ciphertext to the plaintext.

20. The computer-readable medium of claim 17, wherein: The operations further include encrypting the plurality of data segments using a format preserving encryption algorithm.