Query of personal identifiable information (PII) data using a range index
The decryption-based range index system addresses the challenge of searching encrypted PII data by decrypting and indexing it, enabling efficient retrieval of desired information.
Patent Information
- Application Number
- PCT/US2024/038095
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-15
- Publication Date
- 2026-01-22
AI Technical Summary
Existing search engines are unable to effectively query encrypted personal identifiable information (PII) data due to the encryption, which limits their ability to perform partial searches.
A decryption-based range index system is employed to decrypt PII data, generate a range index, and search for specific words within the decrypted data, allowing for efficient retrieval of PII data without directly searching the encrypted data.
Enables effective searching of encrypted PII data by generating a decryption-based range index, facilitating the retrieval of desired information without the need to search the encrypted data directly, thus overcoming the limitations of traditional search engines.
Smart Images

Figure 00000033_0000 
Figure 00000034_0000 
Figure 00000035_0000
Abstract
Description
QUERY OF PERSONAL IDENTIFIABLE INFORMATION (PII) DATA USING A RANGE INDEXBACKGROUND
[0001] The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventor(s), to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
[0002] Executing data searches on personal records, such as, for example, personal identifiable information (PII) data, is generally problematic due to the vast size of the PII data and the encryption utilized to protect the PII data. As PII data is generally kept encrypted at rest, the encryption of PII data makes it nearly impossible to query PII data for partial search use cases. Furthermore, since the PII data is encrypted, the ability to search the encrypted data is limited due to the data search engine not being aware of the contents of the encrypted data. Therefore, a need exists to provide systems that allow search engines to perform searches of encrypted PII data.BRIEF DESCRIPTION OF THE DRAWINGS
[0003] FIG. 1 illustrates a block diagram of a system in accordance with some embodiments.
[0004] FIG. 2 illustrates a block diagram of a PII data search system of FIG. 1 in accordance with some embodiments.
[0005] FIG. 3 is a flow diagram illustrating a method for performing a PII data search using the PII data search system of FIG. 1 in accordance with some embodiments.DETAILED DESCRIPTION
[0006] FIG. 1 illustrates a block diagram of an exemplary system 100 for implementing embodiments consistent with the present disclosure. In some nonlimiting embodiments or aspects, the system 100 may utilize a personal identifiable information (PII) data search system 150 to implement a method for performing a PII data search. In some embodiments, the processor / s 102 may comprise at least one data processors for executing program components for dynamic resource allocation at run time. The processors 102 may include specialized processing units such as integrated system (bus) controllers, memory management control units, floating point units, graphics processing units, digital signal processing units, etc.
[0007] In some embodiments, the processors 102 may be disposed in communication with one or more input / output (I / O) devices (not shown) via an I / O interface 101. The I / O interface 101 may employ communication protocols / methods such as, without limitation, audio, analog, digital, monoaural, RCA, stereo, IEEE- 1394, serial bus, universal serial bus (USB), infrared, PS / 2, BNC, coaxial, component, composite, digital visual interface (DVI), high-definition multimedia interface (HDMi), RF antennas, S-Video, VGA, IEEE 802.1 n / b / g / n / x, Bluetooth®, cellular (e.g., code-division multiple access (CDMA), high-speed packet access (HSPA+), global system for mobile communications (GSM), long-tenn evolution (LTE), WiMax®, or the like), etc.
[0008] In some embodiments, using the I / O interface 101, the system 100 may communicate with one or more I / O devices. For example, an input device 110 may be an antenna, keyboard, mouse, joystick, (infrared) remote control, camera, card reader, fax machine, dongle, biometric reader, microphone, touch screen, touchpad, trackball, stylus, scanner, storage device, transceiver, video device / source, etc. An output device 111 may be a printer, fax machine, videodisplay (e.g., cathode ray tube (CRT), liquid crystal display (LCD), light-emitting diode (LED), plasma, Plasma display panel (PDP), Organic light-emitting diode display (OLED) or the like), audio speaker, etc.
[0009] In some embodiments, the processors 102 may be disposed in communication with a communication network via a network interface 103. The network interface 103 may communicate with the communication network. The network interface 103 may employ connection protocols including, without limitation, direct connect, Ethernet (e.g., twisted pair 10 / 100 / 1000 Base T), transmission control protocol / Internet protocol (TCP / IP), token ring, IEEE 802.1 la / b / g / n / x, etc. The communication network may include, without limitation, a direct interconnection, e-commerce network, a peer to peer (P2P) network, local area network (LAN), wide area network (WAN), wireless network (e.g., using Wireless Application Protocol), the internet, Wi-Fi®, etc. Using the network interface 103 and the communication network, the system 100 may communicate with the one or more service operators or other computers.
[0010] In some non-limiting embodiments or aspects, the processors 102 may be disposed in communication with a memory 105 (e.g., RAM, ROM, etc.) via a storage interface 104. In some embodiments, the storage interface 104 may connect to memory 105 including, without limitation, memory drives, removable disc drives, etc., employing connection protocols such as serial advanced technology attachment (SATA), Integrated Drive Electronics (IDE), IEEE-1394, Universal Serial Bus (USB), fiber channel, Small Computer Systems interface (SCSI), etc. The memory drives may further include a drum, magnetic disc drive, magneto-optical drive, optical drive, Redundant Array of Independent Discs (RAID), solid-state memory devices, solid- state drives, etc.
[0011] In some embodiments, the memory 105 may store a collection of program or database components, including, without limitation, a user interface, an operating system 107, a PII data repository 130, a web server, processes 120, etc. In some embodiments, processes 120 may include PII data search system 150 that utilizes a decryption-based range index 261 to search for a search word 290, described further in detail herein. In some non-limiting embodiments or aspects, the system 100 may store user / application data, such as the data, variables, records, etc. as described in this disclosure. Such databases may be implemented as fault-tolerant, relational, scalable, secure databases such as Oracle or Sybase.
[0012] In some embodiments, the operating system 107 may facilitate resource management and operation of the system 100. Examples of operating systems include, without limitation, APPLE® MACINTOSH® OS X®, UNIX®, UNIX-like system distributions (E.G., BERKELEY SOFTWARE DISTRIBUTION® (BSD), FREEBSD®, NETBSD®, OPENBSD, etc.), LINUX® DISTRIBUTIONS (E.G., RED HAT®, UBUNTU®, KUBUNTU®, etc.), IBM®OS / 2®, MICROSOFT® WINDOWS® (XP®, VISTA® / 7 / 8, 10 etc.), APPLE® OS®, GOOGLE™ ANDROID™, BLACKBERRY® OS, or the like.
[0013] In some non-limiting embodiments or aspects, the system 100 may implement a web browser (not shown in the figures) stored program component. The web browser (not shown in the figures) may be a hypertext viewing application, such as MICROSOFT® INTERNET EXPLORER®, GOOGLE™ CHROME™, MOZILLA® FIREFOX®, APPLE® SAFARI®, etc. Secure web browsing may be provided using Secure Hypertext Transport Protocol (HTTPS), Secure Sockets Layer (SSL), Transport Layer Security (TLS), etc. Web browsers may utilize facilities such as AJAX, DHTML, ADOBE® FLASH®, JAVASCRIPT®, JAVA®, ApplicationProgramming Interfaces (APIs), etc.
[0014] Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. In some embodiments, a computer- readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term “computer-readable medium” should be understood to include tangible items and exclude carrier waves and transient signals, e.g., non-transitory. Examples include Random Access Memory (RAM), Read-Only Memory (ROM), volatile memory, non-volatile memory, hard drives, Compact Disc (CD) ROMs, Digital Video Disc (DVDs), flash drives, disks, and any other known physical storage media.
[0015] FIG. 2 illustrates a block diagram of a PII data search system 150 of FIG. 1 in accordance with some embodiments. In some embodiments, PII data search system 150 is executable code configured to perform a PII data search of a search word 290 utilizing a decryption-based range index 261 generated by range-index PII search engine 220. In some embodiments, the PII data search system 150 includes a PII data decryption unit 210 and a range-index PII search engine 220. In some embodiments, the range-index PII search engine 220 includes a PII data arrangement unit 240, an index value assignment unit 250, a decryption-based range index generation unit 260, a range-index-associated PII data encryption unit 270, and a range indexbased PII data search and identification unit 280. In some embodiments, PII data arrangement unit 240 includes a table generation unit 241, a data ascension unit 243, and a data positioning unit 244. In some embodiments, range-index PII search engine 220 is configured to utilize thePII data arrangement unit 240, the index value assignment unit 250, the decryption-based rangeindex generation unit 260, the range-index-associated PIT data encryption unit 270, and the range index-based PII data search and identification unit 280 of PII data search system 150 to perform a PII data search of a search word 290 utilizing a decryption-based range index 261 , described further in detail herein.
[0016] In some embodiments, in operation, PII data decryption unit 210 receives encrypted PII data 205 from PII data repository 130 of system 100. In some embodiments, PII data decryption unit 210 is executable code configured to decrypt encrypted PII data 205 provided from, for example, PII data repository 130. In some embodiments, PII data repository 130 is a data repository configured to store encrypted PII data 205. In some embodiments, encrypted PII data 205 may be encrypted for, for example, security purposes and thus not available for direct searching purposes by traditional search engines. In some embodiments, the PII data that is encrypted as encrypted PII data 205 and stored by PII data repository 130 is personal identifiable information that is used to, for example, identify persons, customers, or other entities for purposes of conducting business or other types of financial transactions. In some embodiments, the PII data may refer to, for example, a name, an address, a phone number, an email address, a social security number, a driver's license number, a passport number, financial account information, etc. In some embodiments, PII data repository 130 may be located external to system 100 and operated as a stand-alone repository configured to store encrypted PII data 205 for use by system 100.
[0017] In some embodiments, after receiving the encrypted PII data 205 from PII data repository 130, PII data decryption unit 210 decrypts the encrypted PII data 205 for use by range-index PII search engine 220 in generating a decryption-based range index 261. In some embodiments, decryption-based range index 261 is a plurality of a range of indexes mapped to characters ofwords of decrypted PIT data 206 that are generated by decryption-based range index generation unit 260 and utilized to perform a search for a search word (e.g., search word 290), as described in further detail herein. In some embodiments, PII data decryption unit 210 decrypts the encrypted PII data 205 by utilizing a decryption key provided to PII data search system 150 prior to receiving the encrypted PII data 205. In some embodiments, PII data decryption unit 210 decrypts the encrypted PII data 205 in order to generate decryption-based range index 261, described further herein with reference to decryption-based range index generation unit 260. In some embodiments, general PII data decryption techniques may be utilized by PII data decryption unit 210 to decrypt encrypted PII data 205. In some embodiments, after decrypting the encrypted PII data 205, the decrypted PII data 206 is provided to PII data arrangement unit 240 of range-index PII search engine 220 for further processing.
[0018] In some embodiments, table generation unit 2 1 of PII data arrangement unit 240 receives the decrypted PII data 206 and commences the process of generating a PII table 249. In some embodiments, table generation unit 241 of PII data arrangement unit 240 is executable code configured to generate PII table 249 for use in generating the decryption-based range index 261. In some embodiments, PII table 249 is a table that is utilized by range-index PII search engine 220 to store the decrypted PII data 206 and generate decryption-based range index 261 , described further herein. In some embodiments, an enterprise-level relational database management system (RDBMS) may be utilized to store the decrypted PII data 206 in PII table 249. In some embodiments, in order to generate PII table 249, table generation unit 241 assesses the decrypted PII data 206 to determine the size and amount of PII data provided by PII data repository 130. In turn, table generation unit 241 generates PII table 249 according to the size and amount of PII data provided in decrypted PII data 206. In some embodiments, tablegeneration unit 241 generates PIT table 249 by generating rows and columns that are utilized to store the decrypted PII data 206.
[0019] In some embodiments, after the PII table 249 is generated by table generation unit 241, data position unit 244 commences the process of positioning decrypted PII data 206 into the PII table 249. In some embodiments, data positioning unit 244 is executable code configured to position the decrypted PII data 206 received from PII data decryption unit 210 into the PII table 249 generated by table generation unit 241. In some embodiments, data position unit 244 positions the decrypted PII data 206 into PII table 249 by placing each word of PII data into rows of PII table 249 and placing each character of each word in a column of the associated row of PII table 249. In some embodiments, a row of PII table 249 maps to a word of decrypted PII data 206 and each column of the row maps to a character in the word of decrypted PII data 206. For example, in some embodiments, when a word of the decrypted PII data 206 received from the PII data decryption unit 210 is “TIMOTHY”, data positioning unit 244 positions the word in PII table 249 such that “TIMOTHY” maps to a row in the PII table 249 and a first column of the row includes a first character “T”, a second column in the row includes the second character “I”, a third column in the row includes the third character “M”, etc. In some embodiments, data positioning unit 244 positions all the decrypted PII data 206 received from PII data decryption unit 210 into PII table 249.
[0020] In some embodiments, after data positioning unit 244 positions the decrypted PII data 206 into PII table 249, data ascension unit 243 performs a data ascension process on the decrypted PII data for use by range-index PII search engine 220. In some embodiments, data ascension unit 243 is executable code configured to assess decrypted PII data 206 of PII table249 and arrange the decrypted PII data 206 in ascending alphabetical order to generatedecryption-based range index generation PIT table 247. In some embodiments, the decryptionbased range index generation PII table 247 is a table generated from PII table 249 by data ascension unit 243 for purposes of generating a decryption-based range index 261 to be utilized by range-index PII search engine 220 to search for search word 290. In some embodiments, for example, each word of the decrypted PII data 206 of PII table 249 is placed by data ascension unit 243 in ascending alphabetical order in decryption-based range index generation PII table 247. In some embodiments, data ascension unit 243 generates decryption-based range index generation PII table 247 for processing by index value assignment unit 250.
[0021] In some embodiments, after data ascension unit 243 arranges the decrypted PII data 206 in ascending alphabetical order, index value assignment unit 250 performs an index value assignment of the arranged decrypted PII data 206 in PII table 249. In some embodiments, index value assignment unit 250 is executable code configured to assess and assign index values (in the form of whole numbers commencing with the whole number 0) to the decrypted PII data positioned in ascending order in decryption-based range index generation PII table 247. In some embodiments, for example, each row (and thus each corresponding word) of decryption-based range index generation PII table 247 is assigned an index value. For example, the first row of the decryption-based range index generation PII table 247 may be assigned an index value of 0, the second row of the decryption-based range index generation PII table 247 may be assigned an index value of 1, the third row of the decryption-based range index generation PII table 247 may be assigned an index value of 2, etc. In some embodiments, after the index value assignment unit 250 assigns an index value to each word of each row of the decryption-based range index generation PII table 247, index value assignment unit 250 generates a decryption-based range index generation PII table 251 that includes an index value column for placement of thegenerated index value. In some embodiments, the index value is placed in the index value column of the decryption-based range index generation PII table 251. In some embodiments, index value assignment unit 250 generates the decryption-based range index generation PII table 251 by adding the index value column to decryption-based range index generation PII table 247. Thus, in some embodiments, decryption-based range index generation PII table 251 includes the index value arranged in ascending order in the index value column of decryption-based range index generation PII table 251.
[0022] In some embodiments, after the decryption-based range index generation PII table 251 is generated by index value assignment unit 250, the decryption-based range index generation PII table 251 is assessed by decryption-based range index generation unit 260. In some embodiments, decryption-based range index generation unit 260 is executable code configured to assess decryption-based range index generation PII table 251 and generate a decryption-based range index 261 for range-index PII search engine 220. In some embodiments, the decryptionbased range index 261 is a plurality of a range of indexes mapped to characters of words of decrypted PII data 206 that are generated by decryption-based range index generation unit 260 and utilized to perform a search for a search word (e.g., search word 290). In some embodiments, instead of performing a search for search word 290 directly on encrypted PII data, which is traditionally not feasible, range-index PII search engine 220 utilizes the decryption-based range index 261 to search for search word 290, which is an improvement over other search engines that do not conduct searches of PII data that has been encrypted.
[0023] In some embodiments, decryption-based range index generation unit 260 generates the decryption-based range index 261 by assigning a character position value to each column in the decryption-based range index generation PII table 251 , determining the index value range foreach character of each character position, and assigning a decryption-based range index to each character. In some embodiments, the output of the decryption-based range index generation unit 260 is a decryption-based range index 261 that may be stored in JavaScript Object Notation (JSON) form in, for example, memory as a file, by decryption-based range index generation unit 260 that is utilized during search operations by range-index PII search engine 220. JSON is an open standard file format and data interchange format that utilizes human-readable text to store and transmit data objects. In some embodiments, decryption-based range index generation unit 260 continues the decryption-based range index determination process for each character in each column of decryption-based range index generation PII table 251 resulting in the generation of decryption-based range index 261.
[0024] In some embodiments, after the decryption-based range index 261 is generated by decryption-based range index generation unit 260, range-index-associated PII data encryption unit 270 encrypts the decrypted PII data 206 to generate encrypted PII data 271. In some embodiments, encrypted PII data 271 is PII data encrypted by range-index-associated PII data encryption unit 270 after the PII data has been utilized to generate decryption-based range index 261. In some embodiments, a decryption-based range index key is generated by range-index- associated PII data encryption unit 270 that is utilized during the search for search word 290. In some embodiments, decryption-based range index key is an encryption key generated by range- index-associated PII data encryption unit 270 that is based upon the decryption-based range index that corresponds to the decryption-based range index associated with a word in decryptionbased range index 261. In some embodiments, the description-based range index key may be utilized to decrypt the search word 290 ascertained utilizing the range-index PII search engine 220.
[0025] In some embodiments, during search operations by PIT data search system 1 0, range- index-based PII data search and identification unit 280 of range-index PII search engine 220 receives search word 290 from, for example, system 100, and commences the process of searching for search word 290. In some embodiments, range-index-based PII data search and identification unit 280 is executable code configured to search for search word 290 utilizing the decryption-based range index 261 generated by range-index PII search engine 220. In some embodiments, range-index-based PII data search and identification unit 280 is configured to perform the search utilizing the decryption-based range index 261 via a single pass over the decryption-based range index for each character in search word 290. In some embodiments, after receiving the search word 290, range-index-based PII data search and identification unit 280 of range-index PII search engine 220 ascertains a character position and a character alphanumeric characterization of each character of the search word 290.
[0026] In some embodiments, a character position is a numerical position of a character in search word 290 generated by range-index-based PII data search and identification unit 280. In some embodiments, the character position of a character in search word 290 is indicated by a whole number, commencing with 0 for a first character position of a given search word 290 and increasing sequentially by 1 for each subsequent character position. For example, range-index- based PII data search and identification unit 280 may identify the first character position of a first character in search word 290 as character position 0, identify the second character position of a second character in search word 290 as character position 1 , etc.
[0027] In some embodiments, a character alphanumeric characterization is an alphanumeric characterization of a character in search word 290. For example, if search word 290 is a word“Timothy”, the alphanumeric characterization of the first character is a “T” (where the characterposition is 0), the alphanumeric characterization of the second character is a “i” (where the character position is 1), etc. In some embodiments, after attaining the character position and alphanumeric characterization of each character in the search word 290, range-index-based PII data search and identification unit 280 accesses decryption-based range index 261 generated by decryption-based range index generation unit 260 in order to perform the search for search word 290.
[0028] In some embodiments, upon accessing decryption-based range index 261, range-index- based PII data search and identification unit 280 utilizes the decryption-based range index 261 to generate a decryption-based search word character range and a decryption-based search word character range occurrence count for each character of search word 290. In some embodiments, a decryption-based search word character range is an index value range (e.g., in numerical form) generated by range-index-based PII data search and identification unit 280 that indicates the range of index values associated with a character of search word 290 in decryption-based range index 261. In some embodiments, range-index -based PII data search and identification unit 280 generates the decryption-based search word character range by ascertaining an index value range for a given character of search word 290 from decryption-based range index 261. Recall that decryption-based range index 261 is a plurality of a range of indexes mapped to characters of words of decrypted PII data 206 that are generated by decryption-based range index generation unit 260 and utilized to perform a search for a search word (e.g., search word 290).
[0029] In some embodiments, a range-index-based PII data search and identification example is provided herein for illustration purposes. For example, assume decryption-based range index generation unit 260 of range-index-based PII data search and identification unit 280 hasgenerated the following decryption-based range index 261 for a given set of decrypted words from decrypted PII data 206 in j son form:
[0030] {
[0031] “0”: {“A” : [“0-0”], “B” : [“1-2”], “L”: [“3-3”], “S”: [“4-4”] },
[0032] “1”: {“B”:[“0-0”, “4-4”], “L”:[“l-2”], “I”:[“3-3”] },
[0033] “2”: {“C”:[“0-0”], “A”:[“l-1”], “U”:[“2-2”], “O”:[“3-3”], “D”:[“4-4”]},
[0034] “3”: {“D”:[“0-0”], “C”:[“l-1”], “E”:[“2-2”], “N”:[“3-3”]}
[0035] “4”: {“E”:[“0-0”], “K”:[“l-l”], “B”:[“2-2”]}
[0036] }
[0037] where a position of a character / s of a word / s is indicated by the character position value located in the initial quotations “ “ ” ”, each line commencing with the character position value is a decryption-based range index for characters associated with the character position value, the index value of ranges of characters located at the character position are listed in the “{ }” brackets, and the index value range of each character is indicated in the square brackets “[]” following the character. For example, at character position 0, “B” has the index value range of “0-0”, “B” has the index value range of “1-2”, “L” has the index value range of “3-3”, etc. Similarly, at character position 1, “B” has the index value range of “0-0” and “4-4”, “L” has the index value range of “1-2”, “I” has the index value range of “3-3”, etc.
[0038] In some embodiments, assume the search word 290 received by range-index-based PII data search and identification unit 280 is the word “BLACK” and a decryption-based range index 261 has been generated that includes the word “BLACK” indexed accordingly. In some embodiments, utilizing the decryption-based range index 261, range-index -based PII data search and identification unit 280 generates a decryption-based search word character range for the firstcharacter (e.g., “B”) at character position 0 such that the decryption-based search word character range is R1 = 1-2, where R1 indicates the decryption-based search word character range. Thus, for the example given, the decryption-based search word character range generated by rangeindex-based PII data search and identification unit 280 utilizing the decryption-based range index 261 indicates that the first character of search word 290 at position 0 has a decryption-based search word character range from an index value of 1 to an index value of 2. In some embodiments, after generating the decryption-based search word character range, range-index- based PII data search and identification unit 280 proceeds to generate a decryption-based search word character range occurrence count associated with the decryption-based search word character range, as described further herein.
[0039] In some embodiments, as stated previously, after generating the decryption-based search word character range, range-index-based PII data search and identification unit 280 generates a decryption-based search word character range occurrence count that is associated with the decryption-based search word character range generated by range-index-based PII data search and identification unit 280. In some embodiments, the decryption-based search word character range occurrence count is an occurrence count of a decryption-based search word character range that, after generation of an initial decryption-based search word character range occurrence count, is generated and / or updated based upon a decryption-based search word character range matching assessment performed by range-index -based PII data search and identification unit 280.
[0040] In some embodiments, the decryption-based search word character range matching assessment is a matching assessment of a dummy-decryption-based search word character range associated with a current character of search word 290 against a decryption-based search word character range / s associated with a previous or preceding character / s of search word 290. Insome embodiments, a “current character” is a character of search word 290 that is currently being searched for by range-index-based PII data search and identification unit 280. In some embodiments, a “previous character” or “preceding character” is a character of search word 290 that has been previously searched for by range-index-based PII data search and identification unit 280 and precedes the current character, either directly or indirectly, in terms of placement in search word 290. In some embodiments, the dummy-decryption-based search word character range is a decryption-based search word character range generated by range-index-based PII data search and identification unit 280 that is utilized temporarily to perform the decryption-based search word character range matching assessment against previously generated decryption-based search word character ranges for previous character / s of search word 290.
[0041] In some embodiments, range-index-based PII data search and identification unit 280 performs the decryption-based search word character range matching assessment by comparing a dummy-decryption-based search word character range associated with a current character to the previous decryption-based search word character range / s associated with a previous character / s in order to determine whether the dummy -decryption-based search word character range associated with the current character is equivalent, partially-equivalent, or non-equivalent to the previous decryption-based search word character range / s associated with the previous character / s.
[0042] In some embodiments, a dummy-decryption-based search word character range is equivalent to a previous decryption-based search word character range when the dummy- decryption-based search word character range and the decryption-based search word character range are an exact match or overlap exactly (e.g., R1 = 1-2 overlaps exactly with DR2 = 1 -2, where R1 is the previous decryption-based search word character range and DR2 is the dummy-decryption-based search word character range). Thus, in some embodiments, decryption-based search word character ranges are equivalent when the index values associated with a previous character of search word 290 and a current character of search word 290 are equivalent.
[0043] In some embodiments, a dummy-decryption-based search word character range is partially-equivalent to a previous decryption-based search word character range when the dummy-decryption-based search word character range and the previous decryption-based search word character range partially match or overlap partially (e.g., R1 = 1-2, DR2 = 1-1 in which the index value of 1 for the previous character and the current character match and the index value of 2 for the previous character does not match with an index value of DR2).
[0044] In some embodiments, a dummy-decryption-based search word character range is not equivalent or non-equivalent to a previous decryption-based search word character range when the dummy-decryption-based search word character range and decryption-based search word character range do not match or overlap (e.g., R1 = 1-2, DR2 = 3-4 in which the index values of 1-2 associated with the previous character of search word 290 do not match with the index values of 3-4 for the current character of search word 290). Thus, for non-equivalence of the dummydecryption-based search word character range and decryption-based search word character range, none of the index values associated with the previous character of the decryption-based search word character range and the current character of the dummy-decryption-based search word character range overlap.
[0045] In some embodiments, after performing the decryption-based search word character range matching assessment, range-index-based PII data search and identification unit 280 utilizes the results of the decryption-based search word character range matching assessment to: (1) modify a previous decryption-based search word character range occurrence count (e.g., update a 1previous decryption-based search word character range occurrence count by increasing the decryption-based search word character range occurrence count generated for a previous character by 1 when the dummy-decryption-based search word character range for the current character is an exact match with the decryption-based search word character range associated with the previous character); or (2) generate a new decryption-based search word character range and a decryption-based search word character range occurrence count associated with the current character. In some embodiments, whether a previous decryption-based search word character range occurrence count is modified or a new decryption-based search word character range and a decryption-based search word character range occurrence count are generated is dependent upon the results of the decryption-based search word character range matching assessment as illustrated herein.
[0046] For example, in some embodiments, when range-index-based PII data search and identification unit 280 determines that the dummy-decryption-based search word character range for the current character is equivalent to a previous decryption-based search word character range for a previous character, range-index-based PII data search and identification unit 280 modifies the previous decryption-based search word character range occurrence count by increasing the count of the previous decryption-based search word character range occurrence count by a count value of 1. In some embodiments, the previous decryption-based search word character range occurrence count is stored and logged by range-index-based PII data search and identification unit 280.
[0047] In some embodiments, when range-index-based PII data search and identification unit 280 determines that the dummy-decryption-based search word character range for the current character is partially-equivalent (e.g., partially matches) to the previous decryption-based searchword character range associated with the previous character, range-index-based PIT data search and identification unit 280 does not increase the previous decryption-based search word character range occurrence count associated with the previous character, but instead generates a new decryption-based search word character range associated with the current character that is equivalent to the dummy-decryption-based search word character range of the current character that was utilized to perform the decryption-based search word character range matching assessment, generates a decryption-based search word character range occurrence count associated with the current character, and sets the decryption-based search word character range occurrence count associated with the current character to the previous decryption-based search word character range occurrence count associated with the previous character increased by a value of 1. In some embodiments, the new decryption-based search word character range associated with the current character and the associated decryption-based search word character range occurrence count are stored and logged by range-index PII search engine 220. In some embodiments, the new decryption-based search word character range associated with the current character and the associated decryption-based search word character range occurrence count may be utilized for additional decryption-based search word character range matching assessments until, for example, there are no additional characters for assessment in search word 290 or for a decryption-based search word character range occurrence count assessment, described further herein.
[0048] In some embodiments, when range-index-based PII data search and identification unit 280 determines that the dummy-decryption-based search word character range for the current character is not equivalent to the previous decryption-based search word character range / s for the previous character / s, range-index-based PII data search and identification unit 280 does notincrease the count of the decryption-based search word character range occurrence count associated with the previous decryption-based search word character range / s and generates the new decryption-based search word character range for the current character with an associated decryption-based search word character range occurrence count. In some embodiments, the decryption-based search word character range occurrence count initializes to 1 and is stored by range-index PII search engine 220 for additional decryption-based search word character range matching assessments until, for example, there are no additional characters for assessment in search word 290. In some embodiments, range-index-based PII data search and identification unit 280 repeats the decryption-based search word character range matching assessments for each remaining character in search word 290 until all decryption-based search word character range occurrence counts have been generated and updated by range-index-based PII data search and identification unit 280.
[0049] In some embodiments, after the decryption-based search word character range occurrence counts have been generated for each character in search word 290, range-index-based PII data search and identification unit 280 performs a decryption-based search word character range occurrence count assessment of the generated decryption-based search word character range occurrence counts. In some embodiments, a decryption-based search word character range occurrence count assessment is an assessment of the decryption-based search word character range occurrence counts to determine the word or words that are returned from the decryptionbased range index 261 as part of the search word 290 search. In some embodiments, range- index-based PII data search and identification unit 280 performs the decryption-based search word character range matching assessment by comparing the generated decryption-based search word character range occurrence counts to ascertain the decryption-based search word characterrange with the maximum decryption-based search word character range occurrence count and returning the word / s associated with decryption-based search word character range with the maximum decryption-based search word character range occurrence count.
[0050] With further reference to the range-index-based PII data search and identification example, assume that the search word 290 received by range-index-based PII data search and identification unit 280 is the word “BLACK” and the decryption-based search word character range generated by range-index-based PII data search and identification unit 280 associated with the first character (e.g., character “B”) is R1 = 1-2. In some embodiments, range-index-based PII data search and identification unit 280 generates an initial decryption-based search word character range occurrence count initialized to a count of 1 (e.g., decryption-based search word character range occurrence count = 1). In some embodiments, the decryption-based search word character range occurrence count is stored and logged by range-index-based PII data search and identification unit 280.
[0051] In some embodiments, after generating the initial decryption-based search word character range occurrence count, range-index-based PII data search and identification unit 280 utilizes the decryption-based range index 261 to generate a dummy-decryption-based search word character range for the current character (e.g., second character (e.g., “L”)) at character position 1 of decryption-based search word character range is DR1 = 1-2. In some embodiments, range-index- based PII data search and identification unit 280 performs a decryption-based search word character range matching assessment and compares the dummy-decryption-based search word character range associated with the current character (e.g., DRl=l-2) to the previous decryptionbased search word character range associated the previous character (e.g., Rl=l-2). For the example given, range-index-based PII data search and identification unit 280 determines that thedummy-decryption-based search word character range matches fully with the previous decryption-based search word character range and increases the decryption-based search word character range occurrence count associated with the previous decryption-based search word character range (e.g., R1 = 1-2) by 1, (e.g., decryption-based search word character range occurrence count increases from 1 to 2). In some embodiments, the updated decryption-based search word character range occurrence count is stored and logged by range-index-based PII data search and identification unit 280.
[0052] In some embodiments, with further reference to the range-index-based PII data search and identification example, after updating the decryption-based search word character range occurrence count, range-index-based PII data search and identification unit 280 utilizes the decryption-based range index 261 to generate a dummy-decryption-based search word character range for the current character (e.g., character (e.g., “A”)) at character position 2 of decryptionbased search word character range is DR1 = 1-1. In some embodiments, range-index-based PII data search and identification unit 280 performs a decryption-based search word character range matching assessment and compares the dummy-decryption-based search word character range associated with the current character (e.g., DR1=1-1) to the previous decryption-based search word character range associated the previous character (e.g., Rl=l-2). In some embodiments, range-index-based PII data search and identification unit 280 determines that the dummy - decryption-based search word character range matches partially with decryption-based search word character range, generates a new decryption-based search word character range that is equivalent to the dummy-decryption-based search word character range (e.g., Rl=l - 1), generates a decryption-based search word character range occurrence count associated with the current character and sets the decryption-based search word character range occurrence count associatedwith the current character to the decryption-based search word character range occurrence count of the previous decryption-based search word character range occurrence count (e.g., the occurrence value takes the occurrence value from the previous occurrence value) increased by a value of 1 (e.g., decryption-based search word character range occurrence count = 3). In some embodiments, the new decryption-based search word character range associated with the current character and the associated decryption-based search word character range occurrence count are stored by range-index PII search engine 220 for additional decryption-based search word character range matching assessments until, for example, there are no additional characters for assessment in search word 290.
[0053] With further reference to the range-index-based PII data search and identification example, range-index -based PII data search and identification unit 280, after performing the decryption-based search word character range matching assessments for the characters “C” and “K”, determines that the decryption-based search word character ranges associated with “C” and “K” are R1 = 1-2 and R2 = 1-1 respectively, with decryption-based search word character range occurrence counts of 2 and 5, respectively. In some embodiments, range-index-based PII data search and identification unit 280, as part of the decryption-based search word character range occurrence count assessment, determines that the maximum decryption-based search word character range occurrence count is associated with the decryption-based search word character range of Rl=l-1 (e.g., decryption-based search word character range occurrence count = 5) and the word associated with the maximum decryption-based search word character range occurrence count is “BLACK”. In some embodiments, range-index-based PII data search and identification unit 280 returns the word “BLACK” as output to the search of search word 290 by range-indexPII search engine 220 utilizing decryption-based range index 261. In some embodiments, thereturned word that matches the search word 290 is returned and provided as output from rangeindex PII search engine 220 without having to search encrypted PII data 205. As illustrated, range-index PII search engine 220 is configured to search for and retrieve search word 290 utilizing the decryption-based range index 261 generated by decryption-based range index generation unit 260.
[0054] FIG. 3 illustrates a method for performing a PII data search using the PII data search system 150 of FIG. 1 and FIG. 2 in accordance with some embodiments. The method, process steps, or stages illustrated in FIG. 3 may be implemented as an independent routine or process, or as part of a larger routine or process. Note that each process step or stage depicted may be implemented as an apparatus that includes a processor executing a set of instructions, a method, or a system, among other embodiments. In some embodiments, method 300 is described with reference to FIG. 1 - FIG. 3.
[0055] In some embodiments, with reference to FIGS. 1-3, at block 305, range index-based PII data search and identification unit 280 receives encrypted PII data 205. In some embodiments, at block 310, PII data decryption unit 210 decrypts the encrypted PII data 205. In some embodiments, at block 315, PII data arrangement unit 240 positions the decrypted PII data 206 in a PII table. In some embodiments, at block 320, PII data arrangement unit 240 places the decrypted PII data 206 in ascending alphabetical order. In some embodiments, at operation 330, index value assignment unit 250 assigns an index value to each sectionized portion (e.g., word) of decrypted PII data. In some embodiments, index value assignment unit 250 arranges the index values in ascending numerical order.
[0056] In some embodiments, at operation 340, decryption-based range index generation unit260 utilizes a position of each character of each sectionized portion of the decrypted PII data anda range of index values representing each character in each sectionized portion of the decrypted PII data to generate decryption-based range index 261. In some embodiments, at operation 350, range-index-associated PII data encryption unit 270 encrypts decrypted PII data 206. In some embodiments, range-index-associated PII data encryption unit 270 encrypts decrypted PII data 206 after generating decryption-based range index 261. In some embodiments, at operation 360, range index-based search and identification unit 280 utilizes, when queried for a search of search word 290, decryption-based range index 261 associated with decrypted PII data 206 to search for and identify search word 290.
[0057] In some embodiments, a range index may be utilized to perform a PII data search at the range-index-based PII search engine range without utilizing encryption and decryption. For example, in some embodiments, a computer-implemented method includes ascertaining personal identifiable information (PII) data from a PII data repository; utilizing a range-index-based PII search engine to generate a range index, the range index being generated from the PII data; and utilizing the range index to perform a PII data search at the range-index-based PII search engine.
[0058] In some embodiments, a computer-implemented method, includes ascertaining encrypted personal identifiable information (PII) data from a PII data repository; decrypting the encrypted PII data to generate decrypted PII data; utilizing a range-index-based PII search engine to generate a decryption-based range index, the decryption-based range index being generated from the decrypted PII data; and utilizing the decryption-based range index to perform a PII data search at the range-index-based PII search engine.
[0059] In some embodiments of the computer-implemented method, the decrypted PII data includes words of characters.
[0060] In some embodiments, the computer-implemented method further includes positioning the words of characters of the decrypted PII in a decryption-based range index generation PII table.
[0061] In some embodiments of the computer- implemented method, each word is placed in the decryption-based range index generation PII table in ascending alphabetical order.
[0062] In some embodiments, the computer-implemented method further includes assigning, at the decryption-based range index generation PII table, an index value to each word of the PII table, the index values being arranged in ascending numerical order.
[0063] In some embodiments, the computer-implemented method further includes utilizing a position of each character of each word and a range of index values representing each character to generate the decryption-based range index.
[0064] In some embodiments, the computer-implemented method further includes encrypting, after generating the decryption-based range index, the decrypted PII data of the decryption-based range index generation PII table.
[0065] In some embodiments, the computer-implemented method further includes utilizing, when queried for a search word during the PII data search, the decryption-based range index to search for and identify individual characters in the search word.
[0066] In some embodiments, a system, includes a processor; and a non-transitory computer readable medium coupled to the processor, the non-transitory computer readable medium including code that: ascertains encrypted personal identifiable information (PII) data from a PII data repository; decrypts the encrypted PII data to generate decrypted PII data; utilizes a rangeindex-based PII search engine to generate a decryption-based range index, the decryption-basedrange index being generated from the decrypted PIT data; and utilizes the decryption-based range index to perform a PII data search at the range-index-based PII search engine.
[0067] In some embodiments of the system, the decrypted PII data includes words of characters.
[0068] In some embodiments, the system further includes code that positions the words of characters of the decrypted PII in a decryption-based range index generation PII table.
[0069] In some embodiments of the system each word is placed in the decryption-based range index generation PII table in ascending alphabetical order.
[0070] In some embodiments, the system further includes code that assigns, at the decryptionbased range index generation PII table, an index value to each word of the PII table, the index values being arranged in ascending numerical order.
[0071] In some embodiments, the system further includes code that utilizes a position of each character of each word and a range of index values representing each character to generate the decryption-based range index.
[0072] In some embodiments, the system further includes code that encrypts, after generating the decryption-based range index, the decrypted PII data of the decryption-based range index generation PII table.
[0073] In some embodiments, the system further includes code that utilizes, when queried for a search word during the PII data search, the decryption-based range index to search for and identify individual characters in the search word.
[0074] In some embodiments, a method includes ascertaining unencrypted personal identifiable information (PII) data; generating a range index from the unencrypted PII data, encrypting, once the range index is generated, the unencrypted PII data to generate encrypted PII data associatedT1with the range index; and utilizing, during a PIT data search, the range index to search for and identify the PIT search data.
[0075] In some embodiments of the method, the search occurs via a single pass over the range index for each character in the search word.
[0076] In some embodiments of the method, updates to the range index occur periodically by decrypting the PII data in memory.
[0077] In some embodiments of the method, the range index is in JavaScript Object Notation (JSON) form.
[0078] In some embodiments, the use of the PII data search system 150 for search purposes represents a technical improvement over other computing systems by enhancing the efficiency and performance of data retrieval in computing systems. For example, by decrypting encrypted PII data to generate decrypted PII data, utilizing a range-index-based PII search engine to generate a decryption-based range index, (the decryption-based range index being generated from the decrypted PII data), and utilizing the decryption-based range index to perform a PII data search at the range-index -based PII search engine, PII data search system 150 is able to search for a search word associated with encrypted PII data without requiring additional hardware necessary to perform the search in other computing systems, which serves as a practical application and improves the efficiency of data retrieval in computing systems. Further, the use of PII data search system 150 improves the efficiency of data retrieval in computing systems by optimizing the search process, thereby enhancing the overall functionality of computing systems and improving data storage and retrieval.
Claims
WHAT IS CLAIMED IS:
1. A computer-implemented method, comprising: ascertaining encrypted personal identifiable information (PII) data from a PII data repository; decrypting the encrypted PII data to generate decrypted PII data; utilizing a range-index-based PII search engine to generate a decryption-based range index, the decryption-based range index being generated from the decrypted PII data; and utilizing the decryption-based range index to perform a PII data search at the rangeindex-based PII search engine.
2. The computer- implemented method of claim 1, wherein: the decrypted PII data includes words of characters.
3. The computer- implemented method of claim 2, further comprising: positioning the words of characters of the decrypted PII in a decryption-based range index generation PII table.
4. The computer-implemented method of claim 3, wherein: each word is placed in the decryption-based range index generation PII table in ascending alphabetical order.
5. The computer- implemented method of claim 4, further comprising: assigning, at the decryption-based range index generation PII table, an index value to each word of the PII table, the index values being arranged in ascending numerical order.
6. The computer- implemented method of claim 5, further comprising:utilizing a position of each character of each word and a range of index values representing each character to generate the decryption-based range index.
7. The computer-implemented method of claim 6, further comprising: encrypting, after generating the decryption-based range index, the decrypted PII data of the decryption-based range index generation PII table.
8. The computer- implemented method of claim 7, further comprising: utilizing, when queried for a search word during the PII data search, the decryption-based range index to search for and identify individual characters in the search word.
9. A system, comprising: a processor; and a non-transitory computer readable medium coupled to the processor, the non-transitory computer readable medium including code that: ascertains encrypted personal identifiable information (PII) data from a PII data repository; decrypts the encrypted PII data to generate decrypted PII data; utilizes a range-index-based PII search engine to generate a decryption-based range index, the decryption-based range index being generated from the decrypted PII data; and utilizes the decryption-based range index to perform a PII data search at the range-index- based PII search engine.
10. The system of claim 9, wherein: the decrypted PII data includes words of characters.
11. The system of claim 10, further comprising code that:positions the words of characters of the decrypted PII in a decryption-based range index generation PII table.
12. The system of claim 11, wherein: each word is placed in the decryption-based range index generation PII table in ascending alphabetical order.
13. The system of claim 12, further comprising code that: assigns, at the decryption-based range index generation PII table, an index value to each word of the PII table, the index values being arranged in ascending numerical order.
14. The system of claim 13, further comprising code that: utilizes a position of each character of each word and a range of index values representing each character to generate the decryption-based range index.
15. The system of claim 14, further comprising code that: encrypts, after generating the decryption-based range index, the decrypted PII data of the decryption-based range index generation PII table.
16. The system of claim 15, further comprising code that: utilizes, when queried for a search word during the PII data search, the decryption-based range index to search for and identify individual characters in the search word.
17. A method, comprising: ascertaining unencrypted personal identifiable information (PII) data; generating a range index from the unencrypted PII data, encrypting, once the range index is generated, the unencrypted PII data to generate encrypted PII data associated with the range index; andutilizing, during a PII data search, the range index to search for and identify the PII search data.
18. The method of claim 17, wherein: the search occurs via a single pass over the range index for each character in the search word.
19. The method of claim 18, wherein: updates to the range index occur periodically by decrypting the PII data in memory.
20. The method of claim 19, wherein: the range index is in JavaScript Object Notation (JSON) form.
Citation Information
Patent Citations
Method and apparatus for generating index for encrypted field in database
US10402386B2
Searchable Encrypted Data
US20140052999A1
Methods And Systems For Securing And Retrieving Sensitive Data Using Indexable Databases
US20200076578A1
Device and method for increasing the security of a database
US20210374257A1
Facilitating queries of encrypted sensitive data via encrypted variant data objects
US20240045877A1