How to protect your content from unauthorized access
By rearranging data using modular operations, the method conceals relationships between data points, enhancing security and reducing computational costs compared to encryption, addressing vulnerabilities in existing data protection methods.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- CYBERADJUST LLC
- Filing Date
- 2025-02-21
- Publication Date
- 2026-05-15
AI Technical Summary
Existing data protection methods, such as encryption, are vulnerable to decryption by hackers, and successful decryption reveals plaintext immediately, allowing unauthorized access to sensitive information.
A permutation algorithm using modular operations is applied to the cells of specific fields in databases or files, rearranging their order without altering the content, thereby concealing the relationships between data points, making it difficult to discern the original order even if the data is accessed.
This method provides robust security by hiding the relationships between data points, rendering unauthorized access ineffective, and is computationally more efficient than encryption, as it does not require decryption keys, thus maintaining data integrity and reducing computational overhead.
Smart Images

Figure 0007860294000003 
Figure 0007860294000004 
Figure 0007860294000005
Abstract
Description
Cross-reference of related applications
[0001]
[0001] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 153,352, entitled “Protection of Databases, Data Transmissions and Files without Encryption,” filed on 24 February 2021 under Section 119(e) of the U.S. Patent Act, all of which are incorporated herein by reference. [Technical Field]
[0002]
[0002] This disclosure relates generally to computer data security, and more particularly to protecting databases and other types of computer files by sorting fields in columns or rows using modular operations without encrypting the content or altering individual data in the database. Background
[0003]
[0003] Protecting computer data from access by hackers and other malicious actors is of paramount importance. More and more of the world's data is being stored online (for example, in databases of companies, governments, universities, and other organizations, as well as in corporate and personal accounts on various cloud-based storage services). Despite the use of data encryption and other conventional security protocols of varying degrees of effectiveness (such as firewalls and two-factor authentication), hacking of data stored online is often successful. Private and often highly confidential government, corporate, and personal information is frequently illegally accessed, stolen, sold, and / or used for malicious purposes, including espionage, ransomware, extortion, financial fraud, and other criminal activities.
[0004]
[0004] Data stored online is usually protected by encryption. Encryption is the process of encoding information. Encryption converts the original data, called plaintext, into an incomprehensible form called ciphertext. Encryption is usually based on encrypting the plaintext into ciphertext using a pseudo-random encryption key. The ciphertext can be decrypted back into plaintext using a decryption key given to an authorized person. There are many different techniques for encryption. Modern encryption usually uses public-key (asymmetric) or symmetric-key schemes.
[0005]
[0005] Hackers use a variety of techniques to decrypt ciphertext without possessing the decryption key. These techniques typically require considerable computing power, but powerful computing resources are readily available and not prohibitively expensive, even at the level required to decrypt modern commercial-grade encryption. Hackers and computer security experts are constantly engaged in a cat-and-mouse game. Hackers try to stay one step ahead of security experts, and security experts strive to improve their skills to catch up with hackers, or even better, to stay ahead of them.
[0006]
[0006] A characteristic of encryption is that if the ciphertext is successfully decrypted, the result is immediately apparent. The ciphertext is incoherent, while the plaintext is clearly readable. When a hacker attempts to decrypt the ciphertext, it is immediately clear when they have succeeded.
[0007]
[0007] It is desirable to address these issues. Overview
[0008]
[0008] Confidential content such as personal or financial information in a database or other type of file is protected from unauthorized access by concealing the relationship between the confidential content and other related data. For example, in the case of a database, the relationship between the field containing the information to be protected and its associated database record is concealed. To this end, a permutation algorithm using modular operations is applied to the cells of one or more specific fields in the database. This sorting changes the order of the cells in (one or more) specific fields without changing the content of any individual cells. The sorted field still contains all the original cells in the sorted order, thus concealing the relationship between the cells of (one or more) sorted fields and other information in the associated records. Typically, a database stores fields in columns and records in rows, in which case sorting the cells of a specific field in the database is a form of applying a sorting algorithm to the cells of the column containing that field. In one embodiment where the database stores fields in rows and records in columns, sorting a field is a form of sorting the corresponding row.
[0009]
[0009] The sorting algorithm may take the form of a bijective function that uses modular operations, for example, by using modular addition and modular subtraction in any order. In different embodiments, a different sorting algorithm may be applied that uses a single parameter or a different number of parameters. The level of security increases as more parameters are used, but generally at the cost of using more computational resources. In different embodiments, different trade-offs between security and computational resource utilization may be applied as needed in different scenarios.
[0010]
[0010] A specific cell may be located in the sort field by applying one or more parameters used in the step of applying the sorting algorithm in a modular operation. It is understood that the located cell is associated with a specific record as a result of sorting, but is not located within the specific record. To locate the cell, one or more parameters, the identifier of the specific record to which the specific cell in the sort field is associated, and the identifier of the specific sort field are applied in a modular operation, thereby locating the specific cell in the sort field.
[0011]
[0011] The reverse modular operation may retrieve specific records that are associated with a specific cell in the sorting field but do not contain that specific cell. More specifically, the identification information of the specific record in which the specific cell in the sorting field is located and the identification information of the specific sorting field are applied in the modular operation via one or more parameters used in the step of applying the sorting algorithm, thereby locating the specific record to which the specific cell in the sorting field is associated.
[0012]
[0012] In some embodiments, the content in a file is protected from unauthorized access by concealing the relationships between units of content in a particular type of file other than a database. For this purpose, the size of one or more segments of a particular type of file may be determined. The file is then divided into a linear configuration of segments of the determined size (one or more). The linear configuration may be treated as a series of rows and columns, and segments may fill the cells of the rows and columns. Different segments that become cells of different columns may have different sizes. The cells of a particular column or row (or more columns or rows) may be sorted by applying a sorting algorithm using the modular operations described above to the cells of the particular column or row, which changes the order of the cells without changing the content of any individual cells. The sorted column (or more) or sorted row (or more) still contains all the original cells in the sorted order, thus concealing the relationships between the cells of the sorted column (or more) or sorted row (or more) and the other cells in the file.
[0013]
[0013] The sorting function described herein does not change the content of any cells in an unprotected ("clear") database, nor does it change the content of any cells in a protected database (or any other type of file). Therefore, if a cell records the number of items purchased by a particular customer, someone's birthday, or a doctor's prognosis, these values will not change even while protected. Unless a birthday is linked to its context (whose birthday it is), it cannot, in itself, be data that could cause harm even if it falls into the wrong hands. Protection is achieved by changing the position of the cell's content, so it can no longer be linked to a name or other background information. Since nothing is gained by moving a birthday to the "Diagnosis" column, the position of any given cell's content is changed within the column. Once protection is applied, the "Birthday" column will only contain birthdays, the "Practitioner" column will only contain practitioner names, and the "Credit Limit" column will only contain credit limits. By changing the position within a column in this way, [a] the number of rows is maintained, [b] a specific position (usually different from the original position) is assigned to the cell, and [c] each destination position is unique (for example, the contents of {row 4, column 17} and the contents of {row 27, column 17} cannot both be placed in {row 62, column 17}). These characteristics are satisfied when the movement of cell data within a column is a sort (reordering of an ordered set). In fact, any method of moving the contents of cells within a column that satisfies [a], [b], and [c] is a sort.
[0014]
[0014] Systematic sorting of the contents of cells within a column requires modular operations, which means that the operations are configured so that the contents of cells do not move to rows outside the row set of the unprotected database. In the case of sorting with 10,000 rows, the contents of any cell must move to at least the row numbered 0 (top row) and at most the row numbered 9,999 (bottom row). If the range of downward or upward movement of the cell contents is random, the randomization is controlled so that condition [c] above is satisfied.
[0015]
[0015] In this method, it is possible to obtain data necessary for a response to a query (e.g., "Who among Dr. X's patients has also visited Dr. Y?" or "What was the total frozen food sales last week from customers with zip code 90084?") directly from the protected database. This is based on the fact that in the protected database, the zip code at {row 27, column 17} is not related to the frozen food sales at {row 27, column 43}, but rather to the frozen food sales at, for example, {row 196, column 43} (where 196 is obtained from 27 by modular arithmetic used for database protection).
[0016]
[0016] However, assume that the reason file protection is desired is that it is not a database for which frequent and secure queries by an organization are required, but rather a certain type of file that is digitally stored for possible future use and contains highly confidential classified information or proprietary information. Examples include top-secret contracts, date files of images that can prove an owner owned them at a certain date, call records, etc., any type of file that requires digital storage while also needing to be securely protected. The rearrangement function described herein is available for protecting any type of file and makes the protected file more secure than encryption.
[0017]
[0017] Any type of file, such as an image file, audio file, text file, etc., can be protected as described herein. To a computer device, a file may appear as a very long single line of hexadecimal characters in some cases. After splitting the line into segments (perhaps each 4 bytes (or another selected length)), these segments can be converted into a rectangle (perhaps 1,000 rows spanning 2,400 columns each), and each "cell" at {row R, column C} consists of, for example, 4 bytes. Here, when columns are rearranged using modular arithmetic, a protected file is generated that is much more difficult to decrypt (or even difficult to recognize as, for example, a call record) than in the case of protection by encryption.
[0018]
[0018] The features and advantages described in this summary and the following detailed description are not all-inclusive, and in particular, many additional features and advantages may become apparent to those skilled in the relevant art in light of the drawings, specification, and claims of this specification. Further, the expressions used in this specification are mainly selected for readability and teaching purposes, and may not be selected for defining or limiting the subject matter of the present invention. It should be noted that for determining the subject matter of such the present invention, it is necessary to rely on the claims.
Brief Description of the Drawings
[0019] [Figure 1]
[0019] FIG. 1 is a block diagram of an exemplary network architecture in which a rearrangement-based data protection system according to some embodiments may be implemented.
[0020] [Figure 2]
[0020] FIG. 2 is a block diagram of the operation of a rearrangement-based data protection system in the context of database protection according to some embodiments.
[0021] [Figure 3]
[0021] FIG. 3 is a flowchart showing the steps of the operation of a rearrangement-based data protection system in the context of file protection in a non-database format according to some embodiments.
[0022] [Figure 4]
[0022] FIG. 4 is a block diagram of a computer system suitable for implementing a rearrangement-based data protection system according to some embodiments. Detailed Description
[0023]
[0023] The above drawings show various embodiments, but are for illustrative purposes only. Those skilled in the art will readily recognize that other embodiments of the structures and methods shown in this specification can be adopted without departing from the principles described herein.
[0024]
[0024] Figure 1 is a high-level block diagram showing an exemplary network architecture 100 in which a sort-based data protection system 101 may be implemented. As will be explained in more detail below, the sort-based data protection system 101 can be used to protect database 113 (and computer files in other formats) without altering any individual data, and to protect data transmission by adding irrelevant data without altering any requested data. Individual data in database 113 usually have no meaning on their own, but are useful only in relation to other data to which they are linked. For this reason, even if a hacker obtains individual cells of data from database 113, they cannot cause any damage. For example, obtaining individual credit card numbers without any background information is of no use to a hacker. What is desirable to protect are the connections between data points, such as the name of the person associated with that particular credit card number, the associated three-digit code (CVV), the person's zip code, the billing address, etc. As another example, the measurement results of a given medical test performed on a specific patient (e.g., a single cell in database 113) or a group of patients (e.g., an entire column) are useless unless we understand how the raw measurement data is linked to other data (e.g., when the test was performed, who performed it, and how those results are compared to the most recent measurement results for the same patient).
[0025]
[0025] Database 113 typically structures data by organizing it into tables where data types (e.g., name, credit card number, address, etc.) are stored in columns (sometimes called database fields) and data associated with a given entity (e.g., a specific person's name, credit card number, address, etc.) are stored in rows (sometimes called records). In other words, a record contains all the data fields of a given entry in the database. Therefore, the fact that a given credit card number is associated with a given name, CVV, and zip code can only be determined by accessing all records for that person. Accessing individual cells (or the entire column) of the credit card column does not allow a hacker to determine the association between a credit card and a person. Traditionally, records are stored as rows and fields as columns, but this is arbitrary, and it is also possible to store records in columns and fields in rows. Furthermore, it is possible to associate multiple tables with each other using common fields. For example, a table containing patient names, addresses, and credit card information can be linked to a table containing medical history data using a common "Patient ID" field.
[0026]
[0026] The sort-based data protection system 101 sorts the data of one or more fields (e.g., columns) in the database 113 or file and protects the relationships between fields within a record by hiding the relationships between different fields of data in a given record, thereby preventing damage by hackers. This ensures, for example, that measurement results are separated from patient names and supplier names are separated from supplier bank account information.
[0027]
[0027] Sorting is the rearrangement of the elements of a set. If we consider the individual cells of a database column as a set, then the possible permutations of that set are all cases in which the contents of the column can be ordered. For illustrative purposes, using a column with only three rows containing positive integers 1, 2, and 3 as an (obvious) example, the set is {1,2,3} and the possible permutations are (1,2,3), (1,3,2), (2,1,3), (2,3,1), (3,1,2), and (3,2,1). The number of permutations of a set with n elements is n factorial (n!). Therefore, the number of possible permutations of a set increases factorially as the size of the set increases. An exemplary set with three elements has 3!(6) permutations. However, adding just one element increases the number of permutations to 4! (24), adding two elements increases it to 5! (120), and so on.
[0028]
[0028] Even if the data in the database cells is sorted, the data itself does not change; only the order of the data changes. Therefore, instead of changing the data in the cells of the database 113, the sort-based data protection system 101 sorts the data within the columns (or within the rows if the database is row-based, rather than the more typical configuration where fields are column-based and records are stored in rows). The database 113 protected (secured) by the sort-based data protection system 101 still looks like database 113. In other words, unencrypted column data still appears in the columns, and unencrypted row data still appears in the rows. Furthermore, attempts to sort back, i.e., permutations of columns, possibly randomly selected, that attempt to restore the connections by returning the data to its original unprotected order still produce results that look like a valid database 113. Therefore, even if the sort-based data protection system 101 successfully deprotects the database 113, both the success and failure results look like a valid database 113, making it impossible to distinguish between success and failure. This is in stark contrast to a successful attempt to decrypt the ciphertext. This is because the resulting plaintext can be read by humans, while the ciphertext cannot.
[0029]
[0029] Thus, the sort-based data protection system 101 protects data by "hiding it in plain sight," leaving only the content of data points (e.g., cells in the database 113 or configuration data table) and removing the connections between them through sorting. This is not only significantly more secure than data encryption, but is also, in principle, more computationally efficient, because performing a single sort operation requires less computation than performing commercial-grade encryption. However, since it is not possible to distinguish the success or failure of deprotecting the sorted database 113 from failure, data protected by the sort-based data protection system 101 is virtually unaffected even if the computational power available to a hacker increases significantly. As mentioned above, trying all possible sorts for a column consisting of n rows requires performing n! permutations. For a database of only 25 rows (orders of magnitude smaller than a typical real-world deployment), 10 permutations for a single column 25 Among the many possible rearrangements, it is possible that one of them is the only correct rearrangement (for comparison, 1 trillion is 10 12 This already makes the task more difficult for hackers than a 10 million-row database protected by the longest encryption key used by Amazon AWS. This level of security implies relative persistence compared to encryption-based methods. With the increasing computing power available to hackers, beyond skill and perseverance, many companies are now spending vast sums of money on repeated "technological improvements" to stay one step ahead of hackers. Such repeated and expensive efforts become unnecessary if data is protected by a sort-based data protection system 101 as described herein.
[0030]
[0030] Referring to Figure 1, the illustrated network architecture 100 comprises multiple clients 103A, 103B, and 103N (sometimes collectively referred to as "client 103") as well as multiple servers 105A and 105N (sometimes collectively referred to as "server 105"). In Figure 1, the sorting-based data protection system 101 resides on server 105A, the database management system 111 and the corresponding database 113 reside on server 105N, and the client agent 109 operates on each of the clients 103A to 103N. It should be understood that this is merely an example. In various embodiments, it is also possible to instantiate various functions of the sorting-based data protection system 101 on server 105 and client 103, or to distribute them among multiple servers 105 and / or client 103. Furthermore, although the database management system 111 is shown as existing on a single server 105B, it is understood that the database management system 111 and / or the database 113 may be distributed across multiple computer devices and / or storage devices. As will be discussed in more detail below in conjunction with Figure 3, in some embodiments the database management system 111 is not used, and instead (or as an addition), a sort-based data protection system 101 operates in conjunction with data in file formats other than those of the database management system 111.
[0031]
[0031] The client 103 may also be in the form of a computer device operated by a user of the database management system 111 (or a user accessing other forms / types of data). The client agent 109 may also be in the form of an application that includes endpoint-level functionality for using and / or interacting with the sort-based data protection system 101 and / or the database system 101. In some embodiments, the client agent 109 is not used, and the functionality of the sort-based data protection system 101 and / or the database system 101 is accessed by other means (e.g., via a browser (not shown)).
[0032]
[0032] The client 103 and server 105 can be implemented using a computer system 610 as shown in Figure 4 and described later. The client 103 and server 105 are connected to the network 107 via a network interface 248, for example, as shown in Figure 4 and described later. The client 103 can access applications and / or data on the server 105 using, for example, a web browser or other client software such as a client agent 109. The client 103 may take the form of other types of computers / computer devices, including laptops, desktops, and / or mobile computer devices equipped with portable computer systems that can connect to the network 107 and run applications (e.g., smartphones, tablet computers, wearable computer devices, etc.). The server 105 can take the form of, for example, a rack-mount computer device located in a data center.
[0033]
[0033] Figure 1 shows three clients 103 and two servers 105 as an example, but in practice, it is possible to increase (or decrease) the number of clients 103 and / or servers 105 to be deployed. In one embodiment, the network 107 is in the form of the internet. In other embodiments, other networks 107 or network-based environments can be used.
[0034]
[0034] Figure 2 shows the operation of a sort-based data protection system 101 that operates on a server 105 and communicates with a plurality of client agents 109, according to several embodiments. As described above, the functions of the sort-based data protection system 101 can reside on the server 105 or on other specific computers 610, or they can be distributed among multiple computer systems 610, including a cloud-based computer environment in which the functions of the sort-based data protection system 101 are provided as a cloud-based service on a network 107. Although the sort-based data protection system 101 is shown as a single entity in Figure 2, it is understood that the sort-based data protection system 101 represents a collection of functions that can be instantiated as a single module or multiple modules as needed. In some embodiments, different modules of the sort-based data protection system 101 may reside on different computer devices 610 as needed. Each client agent 109 can be instantiated as an application configured to run under an operating system such as Windows®, OS X, or Linux®, or as an application for a given mobile operating system (e.g., Android®, iOS, Windows 10, etc.), and different client agents 109 are explicitly implemented for different types of operating environments used by different end users.
[0035]
[0035] It is understood that the components and modules of the sort-based data protection system 101 are instantiable (e.g., as object code or executable image) in the system memory 617 (e.g., RAM, ROM, flash memory) of any computer system 610 (e.g., RAM, ROM, flash memory) so that the computer system 610 performs the relevant functions when the processor 614 of the computer system 610 processes the modules. As used herein, the terms “computer system,” “computer,” “client,” “client computer,” “server,” “server computer,” and “computing device” mean one or more computers configured and / or programmed to perform the functions described above. Furthermore, the program code that implements the functions of the sort-based data protection system 101 is stored in a computer-readable storage medium. In this context, any form of tangible computer-readable storage medium is available, such as magnetic, optical, flash, and / or semiconductor storage medium, or any other type of medium. As used herein, the term "computer-readable storage medium" does not mean an electrical signal separate from the underlying physical medium.
[0036]
[0036] As shown in Figure 2, in one embodiment, this "hide as it looks" is achieved by sorting the cells in a given column of the database 113. In other embodiments, similar functionality is used in the background of files in other formats, as will be explained in more detail below in conjunction with Figure 3. In the instantiation of the database 113 in Figure 2, the data in the cells of the sorted column is still of the same type as before sorting and represents the same type of object (e.g., first visit date, social security number, etc.), but the order is different and no longer coincides with other columns (i.e., non-sorted columns, referred to herein as "clear")). Thus, when a given column is sorted, the cells of that column are no longer associated with other columns in that given row, and this represents different data points about a given patient, client, customer, supplier, cardholder, member, employee, etc., all of which are specific entries in the database 113. For example, if a record of a hospital patient is stored in a row in database 113, and the column in database 113 containing the patient's social security number is sorted, then the social security number of a given patient will no longer be located in the given row in database 113 related to that patient, making identification impossible for a malicious actor who has gained access to database 113.
[0037]
[0037] It is understood that the sort-based data protection system 101 may further conceal relationships between units in the database 113 by sorting multiple columns. As described above, these sort columns still do not identify relationships with specific patients, and therefore, except that they themselves do not contain any proprietary or highly confidential information, the unprotected database 113 CLEAR This includes the same type of content (e.g., a patient's social security number or specific medical test results).
[0038]
[0038] To sort the cells of a column, the sort-based data protection system 101 applies a sorting algorithm that uses modular operations. In different embodiments, as will be described in more detail below, the sort-based data protection system 101 may apply different modular operation-based sorting algorithms with different numbers and / or orders of parameters to the columns to be protected (one or more). More specifically, the sort-based data protection system 101 may apply a bijective function that uses modular operations, for example, modular subtraction and modular addition in either order. A bijective function is a mathematical function between elements of two sets, such that each element of the first set is paired with exactly one element of the second set, and vice versa, so that no elements are unpaired. In the case of the sort-based data protection system 101, a bijective function from a set to itself is applied, which is the sort. In this context, a bijective function from a set to itself means sorting from the set of elements of the clear column to the same set of elements of the sorting column. Modular arithmetic is a system of integer operations in which, upon reaching a given value called the modulus, the number "returns to its minimum value," leaving a remainder. A typical example is a 12-hour clock, where 12 is the modulus. When time exceeds 12, it returns to the minimum value, and the remainder becomes the new time. For example, in a 12-hour clock, 9 + 5 = 2.
[0039]
[0039] As described above, the specific number of parameters used in the mathematical bijective function applied to sorting the cells in a column is a variable design choice. While increasing the number of parameters increases the level of security, it also increases the processing resources required. Different people will select different balances between these factors as needed in different scenarios.
[0040]
[0040] Sorting cells in one or more columns of database 113 (or other form of data table) clears database 113 to be sorted. CLEARBy converting the clear and clear columns, a protected database 113 having one or more columns in which cells are rearranged PROTECTED is to be obtained. The content of the clear database 113 CLEAR is easily understandable by anyone who accesses the database 113 CLEAR , whereas the content of the rearranged columns of the protected database 113 PROTECTED is meaningless to those who can access the database 113 because, as described herein, the relationship between the cells of the rearranged columns and the database records is hidden. Thus, converting a database into secure content by a rearrangement-based data protection system 101 without using encryption is a major improvement in the field of computer security. PROTECTED
[0041]
[0041] Here, as an example, consider an instantiation where the owner of a top-secret file attaches great importance to security and the performance cost is not a problem. This is a theoretical scenario, and it is understood that in an actual example, there is a high possibility of a trade-off between security and processing cost. In any case, in this hypothetical example, for the desired column rearrangement of the database 113 consisting of R rows and C columns, a procedure that uses the following parameters extensively can be selected. The clear database 113 can be considered as a rectangular array U (unprotected array) of R rows and C columns. In this example, it is assumed that column 0 is not rearranged (for example, there is no security risk in the rearrangement data itself of column 0). The other columns 1 to C - 1 will be rearranged. For this reason, the protected array P is generated by the following steps. Three two-dimensional arrays S, FC, and FR of R + 1 rows and C - 1 columns are generated, and FC and FR are initially filled with all 0s, and while filling each column of S with integers 0, 1, 2, ···, R while going down the rows (for example, making row 3 all consist of 3). Here, column c = 1 is protected. Remove the leftmost column from S to obtain a one-dimensional array T c cThis is assumed to consist of {0,1,2,···,R}. First, in step cr where r=0, the location to move the content of cell r=0 in column c=1 is determined. At this time, a random number X is taken from the set Z={0,1,···,Rr}. rc Take out T c From X rc Remove and reduce the number of elements in the array by one (for example, X rc If =4, T c (This becomes {0,1,2,3,5,6,···,R}). Here, FC 0c element X of set Z rc th Set to equal to, FR's X rc Let U = 0. rc The content of element X of P rc Place it in. As you move down the column in this way, each cell in U goes into a randomly selected cell in the same column of P (from the still-empty cells in that column). The same process is then repeated for each column of P to the right.
[0042]
[0042] While randomization is used in the parameter selection in the exemplary instantiation described herein, it should be understood that the randomness used is merely accidental selection. For example, in a hypothetical example where the parameters are not random but intentionally selected, the selected parameters may not use any or very few numbers ending in, for example, 5 or 0 (for example, due to some preference to avoid them). In this case, the factorial problem becomes somewhat smaller if the scarcity of parameters ending in 5 or 0 can be inferred in some way by the hacker. For 1 million rows, if 0 and 5 are not used at all, the number of permutations will decrease from 5.65 million digits to 2 million digits, and if they are disproportionately fewer than those used, such as 1-4 and 6-9, it will decrease to 5.2 million digits. In other words, even without random parameter selection, the level of protection remains very high.
[0043]
[0043] By using two subroutines provided by the sort-based data protection system 101, the protected database 113 PROTECTED Querying the relevant source may be used to retrieve specific desired content. In this specification, these two subroutines are referred to as FindCell201 and FindRecord203. In the sorting example described above, array FC provides R*(C-1) parameters for FindCell201, and array FR of the same dimension provides R*(C-1) parameters for FindRecord203. The operations of FindCell201 and FindRecord203 will be discussed in more detail below.
[0044]
[0044] The following describes the application of different exemplary algorithms by the sort-based data protection system 101, but these are close to other theoretical limits and have high performance costs, so the application of a one-parameter algorithm minimizes performance costs at the expense of reduced security robustness. In a specific example of one embodiment in which the sort-based data protection system 101 applies a one-parameter algorithm, a random integer A between 11 and N-12 is taken from N rows, for example. Here, using modular arithmetic, the data point that was in row r column c is placed in row r' = mod (r + c * A, N) while remaining in column c. If the data point in row r column c satisfies the query and the corresponding data point in row 0 is needed, then that data point is in row 0 column 0. r = mod(r+Nc*A,N) It is located at (the inverse function of the preceding function). In this specification, * indicates multiplication.
[0045]
[0045] In the application of this exemplary algorithm, the protected data table is filled with a set of projection fields, which is a mathematical term. By definition, two sets A and B, which are partitions of a given set S, constitute a projection field if any element of A intersects all elements of B and any element of B intersects all elements of A. Thus, rows and columns are projection fields. Here, A consists of elements defined by the cells of the leftmost column and the cells of each other column obtained by applying the expression mod(r+c*A,N), and B can consist of a set of columns of the data table. Against this backdrop, projection fields can be used in other instantiations of the sorting algorithm with other numbers of parameters as needed.
[0046]
[0046] Herein we provide an example of a sort-based data protection system 101 that applies a two-parameter algorithm with parameters (x,y). Herein we protect any column c of the unprotected database 113 by performing the following steps: If c is odd, the data points of row r are row r = mod(r+x,N) Place it there, and if c is even, the data point of row r is row
number
[0047]
[0047] In other examples, other numbers of parameters can be used as needed. In the example of four parameters in column C, a random integer D is taken from [0.25C, 0.6C]. Once D is taken, a random integer is taken from [D+1, 0.9C]. D Extract the following. In the left column of D, use a random integer A, similar to the one-parameter example, and in column D and to its right, D The left column uses B, which has been randomized separately using the same formula. D And in the column to its right, use G, which has been randomized separately using the same formula.
[0048]
[0048] In the example with three parameters in column C, a random integer D is taken from [0.3C, 0.8C]. Similar to the example with two parameters, for the column to the left of D, if c is odd, the data point in row r is row r = mod(r+x,N) Place it there, and if c is even, the data point of row r is row
number
[0049]
[0049] As described above, the specific number of parameters used in the bijective function used to sort specific columns of database 113 is a variable design choice, and while increasing the number of parameters increases security, it also uses more processing power. Furthermore, it is understood that the specific modular operations to be applied and their order of application may differ from embodiment to embodiment. Also, the number of columns to be sorted in database 113 is variable and is based on the fields in database 113 that contain sensitive information to be separated from the related records.
[0050]
[0050] For this reason, as described above, the sorting is controlled by the application of an algorithm that implements one of a set of mathematical functions. This can be appropriately described as a random sorting in two senses: (a) A malicious actor who obtains the protected database 113 but does not obtain the algorithm or the function parameters will observe a sorting of all or most columns of the data table that cannot be identified as random; and (b) it is actually possible (though not necessary) to randomly select the parameters themselves (of the specific function used to separate cells), resulting in a random permutation. Database 113 PERMUTED Once sorted, as described later, the desired data can be queried and accessed from there, unlike the unsorted database 113. CLEAR It is understood that there is no need to retain the unsorted database 113, for example, in a location inaccessible to hackers offline. CLEAR It is possible to maintain a copy of it.
[0051]
[0051] The following describes how to retrieve desired content from the sorting database 113 according to several embodiments. By using the functions described herein, the database 113 PERMUTED The query against the sorted database can be processed and the requested data retrieved without removing the protection of any specific column or each specific column that may be relevant to satisfying the query. Database 113 PERMUTED If protected, the data itself is not changed, only sorted, so the data remains in protected database 113 PERMUTED The data exists in and is available for query processing. The data is in unprotected database 113. CLEAR It is not in the same location. Therefore, in contrast to the protected state, sorting database 113 PERMUTEDThe performance cost associated with locating and retrieving specific data within the database is minimal. However, the performance overhead is minimal compared to decryption. More specifically, to read the data sent as a response to the query, the correct row of the queried column is found by utilizing a preliminary step of modular arithmetic. When such modular arithmetic steps are totaled across all aspects of processing the query, the performance overhead is minimal compared to decryption in database 113. ENCRYPTED Whether performed on the whole or separately for each field (i.e., when "structure-preserving encryption" is used), the encrypted database 113 ENCRYPTED This results in significantly lower performance costs compared to decryption. Note that sorting database 113 PERMUTED This query does not involve reordering the entire sorting database or any of its sorting columns.
[0052]
[0052] After data responding to a query is found, its transmission to the querying computer (e.g., a client 103 interacting with the database management system 111) may be protected by essentially the same logic as described above. For example, a query for specific data from a specific supplier may yield one record containing eight fields. A ratio of irrelevant data to actual data may be employed to protect the data transmission. The ratio used is a variable design feature and may be selected by, for example, the database licensee, the database administrator, or the issuer of the sort-based data protection system 101. In an exemplary scenario where this ratio is 4:1, four records of irrelevant data (or entirely fictitious data) are collected, each of these four records containing the same number and types of fields as the actual record (e.g., eight fields per record in this example). The resulting grid of five records, each consisting of eight fields, may be subjected to the same sorting algorithm using time-dependent parameters. Thus, a single record containing the response corresponding to the query is sorted with the four irrelevant records. After sorting, this grid of five records is sent to the querying computer. The transmission is protected because the actual results of the query are sorted with the other four records. The querying computer can then use the same parameters to deprotect the five records through inverse modular operation and select one requested record, which may then be displayed to or used by the requesting device as needed.
[0053]
[0053] In some embodiments, the protection or unprotection of any type of file that is typically rectangular in structure (e.g., a data table in database 113) or that conforms to a rectangular structure (e.g., by treating each byte of the file as if it were a single piece of data in database 113, as will be described later in conjunction with Figure 3) can be achieved by repeatedly using two basic subroutines. The discovery, modification, addition, and removal of data may all depend on the same two subroutines. The subroutines provide results that are determined by various parameters used in the corresponding applied sorting algorithm, as described above, which are typically context-specific. In this specification, these two subroutines are referred to as FindCell201 and FindRecord203, but this naming is not important, and it will be understood that in other embodiments the subroutines may have different names (and / or more subroutines or different subroutines may be used).
[0054]
[0054] The subroutine FindCell201 locates a specific cell associated with a specific record in the sort field. Because the field is sorted, the specific cell is not located within the associated specific record. In one embodiment where the field is stored in columns and the records in rows, FindCell201 locates the specific cell in the sort column associated with a given row, but it is not located in that row for sorting purposes. More specifically, FindCell201 locates the specific cell in the sort field by performing modular operations and applying one or more parameters used to apply the sorting algorithm, the identifier of the specific record in which the specific cell in the sort field is located, and the identifier of the specific sort field.
[0055]
[0055] A rectangular structure (e.g., a database or other file type) will (usually) have a “main field” (but not necessarily). In some embodiments, this will be the leftmost column (in the instantiation where the field is stored in a column). The subroutine FindCell201 takes as input an array of (one or more) parameters used to sort the database 113 (which will have different configurations in different embodiments), the row number of the main column (or another form of identifier of the record to which a particular cell in the sort field is associated), and the desired column, which may be expressed as, for example, a column number or column header (or another form of identifier of the desired field). The subroutine FindCell201 applies (one or more) parameters and performs a modular operation to output the corresponding row of the desired column. For example, suppose the shipment quantities to various customers last month are in the “Qm-1” column, and this data was requested by customer 1234. Here, 1234 appears in row 567 of the main column. The subroutine FindCell201 then takes one or more relevant parameters (8910 in the example with one parameter) and adds them together: 567 + 8910 = 9477, outputting 9477, which is the desired row in the "Qm-1" column where this customer's last month's shipment can be found. For example, if the rectangular structure only has 7000 rows, the desired row would be 9477 - 7000 = 2477, which can be automatically found by adding modulo 7000.
[0056]
[0056] The subroutine FindRecord203 locates the specific record to which a specific cell in the sort field is associated. Because the field is sorted, the specific cell is not located within the associated specific record. In one embodiment where fields are stored in columns and records in rows, FindRecord203 locates the row associated with the specific cell in the sort column. The specific cell is associated with a specific row, but is not located there for sorting purposes. More specifically, FindRecord203 locates the specific record to which a sort field is associated by performing modular operations and applying one or more parameters used to apply the sorting algorithm, the identifier of the specific record in which the specific cell in the sort field is located but is not associated, and the identifier of the specific sort field.
[0057]
[0057] As the requested data, we assume the customer numbers and distances from the shipping plant location for all customers who shipped 100 to 200 units last month. Furthermore, we assume that the contents of the cell in row 9477 of column "Qm-1" fall within that range. In this type of scenario, the subroutine FindRecord203 is used, which is essentially the inverse function of the subroutine FindCell201. FindRecord203 takes the same array of (one or more) parameters, column "Qm-1", and row 9477 where a shipping quantity that fits the range was found as input. In the one-parameter example, FindRecord203 takes the same parameters and outputs 567 by subtracting 9477 - 8910, which is the row in the main column where customer number 1234 for this customer was found. In this example, the distance traveled is not considered confidential unless the customer is identified, so the data is located in row 9477 of the column "Distance," indicated by the fact that the parameters of that column match the parameters of the column "Qm-1."
[0058]
[0058] In almost all databases 113, the most frequently used operation is querying information. Using the sort-based data protection system 101 described above, queries can be handled without decrypting the database 113, whereas in conventional encryption-based systems, the encrypted database 113 must be decrypted in order to query. Since it is not necessary to decrypt the encrypted database 113 into an unprotected state that can be queryed, the performance cost is significantly reduced. Although usually less frequent than queries to the database 113, but still regularly supported, is updating the content of existing records (i.e., updating one or more specific fields in a given record to indicate information such as whether a given person has renewed their subscription or whether a given customer has paid a specific amount).
[0059]
[0059] Another supported database operation, though relatively rare, is the addition of new records, which is performed, for example, when a new customer opens an account at a bank. Deleting existing records is also a relatively rare supported operation, which is performed, for example, when a patient decides to seek treatment from a different doctor other than a given facility, provides information to the new doctor, and then requests deletion. It is also possible to edit the existing schema of database 113 by adding one or more new fields, for example, when a new product is introduced to the market, when a new franchisee is added, etc. In some embodiments, support for these additions and deletions to the existing database 113 in the background of the sort-based data protection system 101 is performed when database 113 is first sorted.
[0060]
[0060] More specifically, before sorting, several additional fields can be added to database 113. One is for system use, as described below, and the others are to allow the addition of new fields later without having to sort and reorder database 113. Any data can be initially stored in the introduced fields for future use. In one embodiment, it can be made more difficult for unauthorized persons to interpret by storing data that duplicates or mimics existing fields. The specific number of fields added for future use is a variable design choice. It is also possible to add many unused records to the database before the initial sort. This is to allow the addition of new records later without having to sort and reorder database 113 each time a record is added. Similar to unused fields, the number of unused records to add and the content to store therein are variable design choices, but for increased security, existing records may be duplicated in the unused records. The new fields for system use described above may be used to encode whether a record contains actual data or is merely a placeholder for adding new records. Placeholder records are sorted together with the actual data records in database 113, but all of these contain placeholder fields.
[0061]
[0061] When a new record is added, the actual data of that record is replaced with the fictitious placeholder data of the placeholder record, and the coded cell that indicated the fictitious data is switched to a coded cell that indicates the actual data. In the case of a real record being removed, the reverse operation is performed (i.e., the real data is replaced with fictitious data, and the coded field is updated accordingly). As with other records, placeholder records that have been found to be replaced with new records in an additional operation, or real records that have been found to be replaced with fictitious data in an erase operation, are located using modular arithmetic as described above, since the records are sorted and not stored straight across the entire row of database 113.
[0062]
[0062] As shown in Figure 3, in some embodiments, the sort-based data protection system 101 may be used to protect files in formats other than the database 113. In such embodiments, any file of any kind containing proprietary or confidential information can also be protected by applying the corresponding functions described herein. This function can be used to protect document files, text files, or any other files containing alphanumeric content (e.g., words, abbreviations, spaces, numbers, etc.), image files, audio files, animations, movies, or other forms of video files, or any file type in any of the various formats used extensively or narrowly (e.g., .docx, .txt, .html, .xls, .pdf, .gif, .jpg, .mp3, .alac, .wav, .flac, .mp4, .mov, .avi, etc.). Furthermore, any file (essentially any file type) that can be represented as a header followed by a series of binary and / or hexadecimal numbers can be protected by applying the functions described herein. Unlike the exemplary embodiment described above that protects database 113, with other formats of protected files, successful deprotection would be visually identifiable to the hacker. This is because all failed attempts to reorder the data would be incoherent, while successful attempts using the correct parameters would result in content that looks like a specific type of file. Nevertheless, despite the lack of such specific advantages, the resulting protection is still very strong compared to encryption, and the computational overhead remains low.
[0063]
[0063] To sort any type of file, the sort-based data protection system 101 may determine a “cell size” for a particular file of a given type (301). The cell size can be, for example, a single character (phonetic character), a number, punctuation, a space, a paragraph end indicator, a single hexadecimal character, a single byte, a group of n consecutive bytes, a grid of n x n pixels, 0.2 seconds of audio or animation, or other size specifications. The sort-based data protection system 101 may divide the file into a linear configuration of cells, each of the size determined in step 301 (303). The sort-based data protection system 101 then arranges the linear configuration in a rectangular shape, filling the top row first, then the next row, and repeating this for all the data in the file (305). Subsequently, the sort-based data protection system 101 may, if necessary, protect this structure by removing the connections between adjacent cells in a row by sorting the cells in a given column by applying a specific mathematical bijective function to all columns, nearly all columns, or a given subset of columns (307). Although we have described organizing non-database files into column-based fields and row-based records, it is understood that in other embodiments, row-based fields and column-based records may be available. In any case, the subroutines FindCell201 and FindRecord203 are available in the context of non-database file types as described above in the context of database embodiments.
[0064]
[0064] Here, as a specific example of improving security by protecting the most frequent types of data transmission using the sort-based data protection system 101, we describe a digital transaction in which a credit card number is transmitted for authentication purposes. More specifically, when a purchaser makes a credit card transaction, the credit card number, other identifying information about the cardholder (e.g., the purchaser's name, a three-digit card verification value (CVV), and the expiration date), and information about the transaction are transmitted to the card issuer or a third-party authentication service to approve or reject the transaction. Traditionally, the credit card number and CCV in such transmissions are only hashed, which is not very secure. This is because by accessing multiple hashed credit card numbers, it is possible to identify the hash algorithm used and access the actual information (after all, a credit card only has 16 decimal digits and a CVV only has 3 digits).
[0065]
[0065] The sort-based data protection system 101 described herein can achieve much higher security by treating the information transmitted for authentication as records, adding irrelevant records to the data, and sorting the actual record of interest with the irrelevant records. As a simple example, suppose the format of the data transmitted for credit card authentication includes name, dollar-cent amount, 16-digit card number, CVV code, and possibly the card's expiration date (month / year) (actual format may differ). Using a ratio of 4:1 as an example, four irrelevant records of the same format may be added to the actual record containing information about the transaction to be authenticated, resulting in a total of five records with each field sorted. Adding irrelevant records does not incur significant additional performance costs because the amount of data transmitted for credit card authentication is not that large. However, it is far more difficult for a hacker or other malicious actor attempting to intercept the transaction to bypass data protection and access the purchaser's credit card information. And, as described above, the authentication service can sort the incoming data.
[0066]
[0066] The methods described herein for protecting both database 113 and other types of files provide a very robust level of protection against breaches. For a hacker, the difficulty of unprotecting a database or files sorted as described herein far exceeds the encryption itself, even if the encryption key is quite long. The hacking task is proportional to the length of the encryption key. Larger files provide more clues to narrow down the possible encryption keys. The unprotection task of the functions described herein is the factorial of the number of rows in the rectangular representation of any file type. If the number of rows is as small as 25, then for a single column, 10 25 Any one of the more than two permutations can be the one correct permutation (for comparison, 1 trillion is 10⁻¹⁰). 12). This already makes the task more difficult for hackers than a 10 million-row database protected by the longest encryption key used by Amazon AWS. With 50 rows (which is still a very small file), 10 64 For permutations that have more ways, in 100 rows, 10 157 There are permutations that exceed the number of ways. Applying this protection method to a medium-sized database 113, a large high-resolution image, or a video clip of a few minutes easily reaches 1 million rows, but against this, 8.26*10 5,565,708 There exist permutations greater than this (this is approximately {the number of hydrogen atoms estimated to exist in the universe}). 50,000 (and is thought to be the largest integer calculated for purposes other than abstract number theory). Since this level of security is unattainable even with encryption, securing the contents stored in database 113 and / or other file formats by applying the sort-based functionality described herein to protect against unauthorized access by malicious actors is a significant improvement in the field of computer security, as well as an improvement in the operation of server farms, data centers, and generally secure storage technologies.
[0067]
[0067] Figure 4 is a block diagram of an exemplary computer system 610 suitable for implementing the sort-based data protection system 101. Both the client 103 and the server 105 can be implemented in the form of such a computer system 610. As shown in the figure, a bus 612 is a component of the computer system 610. The bus 612 communicates with at least one processor 614, system memory 617 (e.g., random access memory (RAM), read-only memory (ROM), flash memory), input / output (I / O) controller 618, audio output interface 622 connected to an audio output device such as a speaker 620, display adapter 626 connected to a video output device such as a display screen 624, one or more interfaces such as a universal serial bus (USB) receptacle 628, serial port 630, parallel port (not shown), keyboard controller 633 connected to a keyboard 632, and one or more hard disks 644 (or (one or more) other forms of storage media). Other components of the computer system 610 are connected to communicate, such as a coupled storage interface 634, a host bus adapter (HBA) interface card 635A configured to connect to a Fibre Channel (FC) network 690, an HBA interface card 635B configured to connect to a SCSI bus 639, an optical disk drive 640 configured to accept an optical disk 642, a mouse 646 (or other pointing device) coupled to the bus 612 via, for example, a USB receptacle 628, a modem 647 coupled to the bus 612 via, for example, a serial port 630, and one or more wired and / or wireless network interfaces 648 directly coupled to the bus 612.
[0068]
[0068] Other components (not shown) (e.g., document scanner, digital camera, printer, etc.) may be connected in the same way. Conversely, it is not necessary for all the components shown in Figure 4 to be present (for example, smartphones and tablets typically do not have an optical disc drive 640, an external keyboard 632, or an external pointing device 646, but various external components can be connected to the mobile computer device via, for example, a USB receptacle 628). Also, various components can be interconnected in ways different from those shown in Figure 4.
[0069]
[0069] The bus 612 enables data communication between the processor 614 and the system memory 617, which may include RAM in addition to ROM and / or flash memory as described above. RAM is typically the main memory into which the operating system 650 and application programs are loaded. ROM and / or flash memory may include the BIOS (Basic Input-Output System), which controls specific basic hardware operations among a variety of codes. Application programs can be stored on local computer-readable media (e.g., hard disk 644, optical disk 642) and loaded into the system memory 617 for execution by the processor 614. Application programs can also be loaded into the system memory 617 from a remote location (i.e., a remotely located computer system 610), for example, via a network interface 648 or modem 647. In Figure 4, the sorting-based data protection system 101 is shown as residing in the system memory 617, but in some embodiments, parts of the system 101 may be located elsewhere, for example, on the hard disk 644 or other storage mechanism.
[0070]
[0070] The storage interface 634 is coupled to one or more hard disks 644 (and / or other standard storage media). The (one or more) hard disks 644 may be part of the computer system 610 or may be physically separate and accessed through other interface systems.
[0071]
[0071] The network interface 648 and / or modem 647 can be connected to a network 107 such as the Internet, either directly or indirectly. Such connection can be wired or wireless.
[0072]
[0072] As will be understood by those skilled in the art, the subject matter described herein may be implemented in other specific forms without departing from its ideas or overall characteristics. Similarly, the specific naming and classification of parts, modules, agents, managers, components, functions, procedures, operations, layers, features, attributes, methods, data structures, and other embodiments are neither essential nor important, and entities used in implementing the subject matter described herein may have different naming, classifications, and / or formats. The above descriptions, for illustrative purposes only, are written with reference to specific embodiments. However, the above exemplary discussion is not exhaustive and is not intended to limit the detailed forms of disclosure. In light of the above teachings, many improvements and modifications are possible. The above embodiments have been selected and described in such a way as to best illustrate the relevant principles and their respective practical applications, so as to make various embodiments available to others in the art, with or without various improvements that may be suitable for specific conceivable uses.
[0073]
[0073] Depending on the context, various embodiments may be presented herein relating to algorithms and symbolic representations of operations on data bytes in computer memory. An algorithm is generally considered here to be a set of self-consistent operations that lead to a desired result. Operations require the physical manipulation of physical quantities. Typically, these quantities are in the form of electrical or magnetic signals that can be stored, converted, combined, compared, or manipulated, although this is not essential. It has been found that these signals are sometimes conveniently represented as bits, bytes, values, elements, symbols, characters, terms, numbers, etc., primarily for reasons of common use.
[0074]
[0074] However, it should be kept in mind that all these terms and similar terms are merely convenient labels associated with and applied to appropriate physical quantities. Unless otherwise specifically stated as will become clear from the following discussion, throughout this disclosure, any discussion using terms including “processing,” “computing,” “calculating,” “configuring,” “determining,” “displaying,” etc., refers to the operation and processes of a computer system or similar electronic device that manipulates data represented as physical (electronic) quantities in the registers and memory of a computer system to convert it into other data similarly represented as physical quantities in the memory or registers of a computer system, or in other such information storage, transmission, or display device.
[0075]
[0075] Finally, the structures, algorithms, and / or interfaces presented herein are essentially independent of any particular computer or other device. Various general-purpose systems may be used in conjunction with the programs relating to the teachings described herein, or it may be convenient to configure more specialized devices for executing the method blocks. Structures for these diverse systems will become apparent from the above description. Furthermore, no particular programming language is referenced in this specification. Naturally, various programming languages can be used to implement the teachings described herein.
[0076]
[0076] The foregoing is merely illustrative and not intended to limit in any way. [Item of the invention] [Item 1] A method for protecting sensitive content from unauthorized access by concealing the relationships between the sensitive content of a database and other fields of related database records, A step of sorting the cells of a particular field in the database by applying a sorting algorithm that uses modular operations to the cells of that particular field, wherein the sorting changes the order of the cells of the particular field without changing the content of any individual cells. A method for concealing the relationship between the cells of the sorted field and the associated database records, such that the sorted field still contains all the original cells in the sorted order. [Item 2] The aforementioned database stores fields in columns and records in rows. The method according to item 1, further comprising the step of sorting the cells of the specific field in the database by applying the sorting algorithm, which uses modular arithmetic, to the cells of a specific column in the database, wherein the specific column includes the cells of the specific field. [Item 3] The aforementioned database stores fields in rows and records in columns. The method according to item 1, further comprising the step of sorting the cells of the particular field in the database by applying the sorting algorithm, which uses modular arithmetic, to the cells of a particular row in the database, wherein the particular row contains the cells of the particular field. [Item 4] The step of sorting the cells of a plurality of specific fields in the database by applying the sorting algorithm, which uses modular arithmetic, to each cell of the plurality of specific fields, further comprising the step of changing the order of the cells in each specific field without changing the content of any individual cells, The method according to item 1, wherein each sorted field still contains all of the original cells in the sorted order, thereby concealing the relationship between the cells of each sorted field and the associated database records. [Item 5] The step of applying a sorting algorithm that uses modular operations is, The method according to item 1, further comprising sorting the cells of the particular field in the database by applying a bijective function that uses modular arithmetic. [Item 6] The step of applying a sorting algorithm that uses modular operations is, The method according to item 1, further comprising applying a sorting algorithm that uses modular addition and modular subtraction in either order. [Item 7] The step of applying a sorting algorithm that uses modular operations is, The method according to item 1, further comprising applying a sorting algorithm that uses modular operations with multiple parameters. [Item 8] The step of applying a sorting algorithm that uses modular operations is, The method according to item 1, further comprising applying a sorting algorithm that uses modular operations with a single parameter. [Item 9] The step of applying a sorting algorithm that uses modular operations is, The method described in item 1, further comprising applying a sorting algorithm that uses modular operations to fill the cells of a field sorted through a projection field. [Item 10] The step of applying a sorting algorithm that uses modular operations is, The method according to item 1, further comprising applying a sorting algorithm that uses modular operations with at least one pseudo-random selection parameter. [Item 11] The step of applying a sorting algorithm that uses modular operations is, The method according to item 1, further comprising applying a sorting algorithm that uses modular operations with at least one intentional selection parameter. [Item 12] The method according to item 1, further comprising the step of locating in a sorted field a specific cell that is associated with a specific record but is not located within the specific record, by applying in a modular operation one or more parameters used in the step of applying the sorting algorithm described above. [Item 13] The step of locating a specific cell in a sorted field by applying one or more parameters used in the step of applying the sorting algorithm in a modular operation is: The method of item 12, further comprising locating the specific cell in the sorted field by applying the one or more parameters, the identification information of the specific record to which the specific cell in the sorted field is associated, and the identification information of the specific sorted field in the modular operation. [Item 14] The method according to item 1, further comprising the step of locating a specific record to which a specific cell in a sorted field is associated by applying one or more parameters used in the step of applying the sorting algorithm in a modular operation, wherein the specific cell is not located in the associated specific record. [Item 15] The step of locating a specific record associated with a specific cell in a sorted field by applying one or more parameters used in the step of applying the sorting algorithm in a modular operation is: The method of item 14, further comprising locating the specific record to which the specific cell in the sorted field is associated by applying the one or more parameters, the identification information of the specific record to which the specific cell in the sorted field is located but is not associated, and the identification information of the specific sorted field in the modular operation. [Item 16] Prior to the sorting step, the steps include adding a plurality of placeholder records to the database, A step prior to the sorting step, wherein a status field is added to each record in the database, the status field of a given record includes content indicating whether the given record is a placeholder record, The steps include adding the new record to the database by, after the sorting step, locating the sorted placeholder record, replacing the content of the fields of the sorted placeholder record with the content of the fields of the new record, and updating the status field of the new record to indicate that it is not a placeholder record, without sorting or resorting the database; The method described in item 1, further including the method described in item 1. [Item 17] A step prior to the sorting step, wherein a status field is added to each record in the database, the status field of a given record includes content indicating whether the given record is a placeholder record, The steps include, after the sorting step, locating the existing sorted records in the database, replacing the content of the fields of the existing sorted records with placeholder content, and updating the status field of the existing records to indicate that they are placeholder records, without sorting or resorting the database, and deleting the existing sorted records. The method described in item 1, further including the method described in item 1. [Item 18] Prior to the sorting step, the steps include adding multiple placeholder fields to each record in the database, The steps include adding the new field to the database by adding the content of the new field to the placeholder field of each record in the database, without rearranging or reordering the database after the sorting step, The method described in item 1, further including the method described in item 1. [Item 19] A method for protecting the content of a file from unauthorized access by concealing the relationships between units of content of a specific type of file, The steps include determining the size of one or more segments of the aforementioned specific type of file, The steps include dividing the aforementioned file into a linear configuration of one or more segments of the determined size, The step of processing the linear configuration as a series of rows and columns, wherein the segment fills the cells of the row and the column, A step of sorting the cells in a specific column or row by applying a sorting algorithm that uses modular arithmetic to the cells in the specific column or row, wherein the sorting changes the order of the cells without changing the content of any individual cells. Includes, A method for concealing the relationship between the cells in the sorted column or sorted row and other cells in the file, such that the sorted column or sorted row still contains all the original cells in the sorted order. [Item 20] The step of sorting the cells in a plurality of specific columns or rows by applying the sorting algorithm, which uses modular arithmetic, to each cell in a plurality of specific columns or rows of the file, further comprising the step of changing the order of the cells in each of the specific columns or rows without changing the content of any individual cells, The method of item 19, wherein each sorted column or sorted row still contains all of the original cells in the sorted order, thereby concealing the relationship between the cells of each sorted column or sorted row and the other contents of the file. [Item 21] The step of applying a sorting algorithm that uses modular operations is, The method of item 19, further comprising sorting the cells in the particular column or row of the file by applying a bijective function that uses modular arithmetic. [Item 22] The step of applying a sorting algorithm that uses modular operations is, The method according to item 19, further comprising applying a sorting algorithm that uses modular addition and modular subtraction in either order. [Item 23] The step of applying a sorting algorithm that uses modular operations is, The method described in item 19, further comprising applying a sorting algorithm that uses modular operations with multiple parameters. [Item 24] The step of applying a sorting algorithm that uses modular operations is, The method described in item 19, further including applying a sorting algorithm that uses modular operations with a single parameter. [Item 25] The step of applying a sorting algorithm that uses modular operations is, The method described in item 19, further comprising applying a sorting algorithm that uses modular operations to fill cells in a sorted column or sorted row via a projection field. [Item 26] The aforementioned one or more segment sizes are The method described in item 19, further including different sizes for segments that will be cells in different columns. [Item 27] A method for protecting content transmitted from unauthorized access from a first computer device to a second computer device by concealing the relationships between units of content, The first computer device obtains a data record to be transmitted to a second computer device, wherein the data record includes a plurality of fields. The step of obtaining a specific number of additional data records of the same type as the transmitted data record, wherein the additional records contain excess data in the transmitted record. A step of processing the transmitted records and the additional records as a data grid containing multiple records, wherein each record in the data grid contains multiple fields, A step of sorting the cells of at least one field of the data grid by applying a sorting algorithm that uses modular arithmetic to the cells of at least one field of the data grid, wherein the sorting changes the order of the cells without changing the content of any individual cells. The steps include transmitting the rearranged data grid to the second computer device, Includes, A method to conceal the relationships between the cells of the sorted field and other cells of the data grid, such that the at least one sorted field still contains all the original cells in the sorted order. [Item 28] The step of applying a sorting algorithm that uses modular operations is, The method of item 27, further comprising sorting the cells of the particular field of the data grid by applying a bijective function that uses modular arithmetic. [Item 29] The step of applying a sorting algorithm that uses modular operations is, The method according to item 27, further comprising applying a sorting algorithm that uses modular addition and modular subtraction in either order. [Item 30] The data record transmitted to the second computer device is The method described in item 27, further including the credit card number and related data transmitted to authenticate a credit card transaction.
Claims
1. A method performed by a database server comprising a processor, program code, and an unsorted database, wherein when the program code is processed by the processor, the processor is instructed to execute the method, The method described above is The step is to convert the unsorted database into a protected database by sorting the cells of a specific field in the database. Rearranging the cells of a specific field in the aforementioned database, The method further includes sorting the cells of a particular field in the database by applying a sorting algorithm that uses modular operations to the cells of that particular field, The sorting changes the order of the cells in the specific field across multiple records without altering the content of any individual cells. The sorted field still contains all the original cells in the sorted order, thereby concealing the relationship between the cells of the sorted field and the associated database records. The transformed and protected database protects the sensitive content from unauthorized access by concealing the relationships between the sensitive content and other fields in the associated database records, A step of obtaining a data record designated for transmission from the protected database to a second computer device, wherein the data record includes a plurality of fields. A step of obtaining a specific number of additional data records of the same type as the data record designated for transmission, wherein the additional data records include data that does not respond to the query that returned the record designated for transmission. A step of processing the data record and the additional data record designated for transmission as a data grid containing multiple records, wherein each record in the data grid contains multiple fields, The step of transforming the data grid into a protected data grid by rearranging the cells of at least one field of the data grid, Rearranging the cells of at least one field in the aforementioned data grid is The further includes applying a sorting algorithm that uses modular operations to the cells of at least one of the fields, The sorting step involves changing the order of cells in the data grid across multiple records without altering the content of any individual cells. The steps include transmitting the rearranged data grid to the second computer device, Methods that include...
2. The aforementioned database stores fields in columns and records in rows. The method according to claim 1, further comprising the step of sorting the cells of the specific field in the database by applying the sorting algorithm, which uses modular arithmetic, to the cells of a specific column in the database, wherein the specific column includes the cells of the specific field.
3. The aforementioned database stores fields in rows and records in columns. The method according to claim 1, further comprising the step of sorting the cells of the particular field in the database by applying the sorting algorithm, which uses modular arithmetic, to the cells of a particular row in the database, wherein the particular row includes the cells of the particular field.
4. The step of sorting the cells of a plurality of specific fields in the database by applying the sorting algorithm, which uses modular arithmetic, to each cell of the plurality of specific fields, further comprising the step of changing the order of the cells in each specific field without changing the content of any individual cells, The method according to claim 1, wherein each sorted field still contains all of the original cells in the sorted order, thereby concealing the relationship between the cells of each sorted field and the associated database records.
5. The step of applying a sorting algorithm that uses modular operations is, The method according to claim 1, further comprising sorting the cells of the particular field in the database by applying a bijective function that uses modular arithmetic.
6. The step of applying a sorting algorithm that uses modular operations is, The method according to claim 1, further comprising applying a sorting algorithm that uses modular addition and modular subtraction in either order.
7. The step of applying a sorting algorithm that uses modular operations is, The method according to claim 1, further comprising applying a sorting algorithm that uses modular operations with multiple parameters.
8. The step of applying a sorting algorithm that uses modular operations is, The method according to claim 1, further comprising applying a sorting algorithm that uses modular operations with a single parameter.
9. The step of applying a sorting algorithm that uses modular operations is, The method according to claim 1, further comprising applying a sorting algorithm that uses modular operations to fill cells in a field sorted through a projection field.
10. The step of applying a sorting algorithm that uses modular operations is, The method according to claim 1, further comprising applying a sorting algorithm that uses a modular operation with at least one pseudo-random selection parameter.
11. The step of applying a sorting algorithm that uses modular operations is, The method according to claim 1, further comprising applying a sorting algorithm that uses modular operations with at least one intentional selection parameter.
12. The method according to claim 1, further comprising the step of locating in a sorted field a specific cell that is associated with a specific record but is not located within the specific record, by applying in a modular operation one or more parameters used in the step of applying the sorting algorithm.
13. The step of locating a specific cell in a sorted field by applying one or more parameters used in the step of applying the sorting algorithm in a modular operation is: The method according to claim 12, further comprising locating the specific cell in the sorted field by applying the one or more parameters, the identification information of the specific record to which the specific cell in the sorted field is associated, and the identification information of the sorted field in the modular operation.
14. The method according to claim 1, further comprising the step of locating a specific record to which a specific cell in a sorted field is associated by applying one or more parameters used in the step of applying the sorting algorithm in a modular operation, wherein the specific cell is not located in the associated specific record.
15. The step of locating a specific record associated with a specific cell in a sorted field by applying one or more parameters used in the step of applying the sorting algorithm in a modular operation is: The method according to claim 14, further comprising locating the specific record to which the specific cell in the sorted field is associated by applying the one or more parameters, the identification information of the specific record to which the sorted field is located but which is not associated, and the identification information of the sorted field in the modular operation.
16. Prior to the sorting step, the steps include adding a plurality of placeholder records to the database, A step prior to the sorting step, wherein a status field is added to each record in the database, the status field of a given record includes content indicating whether the given record is a placeholder record, The steps include adding the new record to the database by, after the sorting step, locating the sorted placeholder record, replacing the content of the fields of the sorted placeholder record with the content of the fields of the new record, and updating the status field of the new record to indicate that it is not a placeholder record, without sorting or resorting the database; The method according to claim 1, further comprising:
17. A step prior to the sorting step, wherein a status field is added to each record in the database, the status field of a given record includes content indicating whether the given record is a placeholder record, The steps include, after the sorting step, locating the existing sorted records in the database, replacing the content of the fields of the existing sorted records with placeholder content, and updating the status field of the existing records to indicate that they are placeholder records, without sorting or resorting the database, and deleting the existing sorted records. The method according to claim 1, further comprising:
18. Prior to the sorting step, the steps include adding multiple placeholder fields to each record in the database, The steps include adding the new field to the database by adding the content of the new field to the placeholder field of each record in the database, without rearranging or reordering the database after the sorting step, The method according to claim 1, further comprising: