Method and system for semantic-preserving location encryption

The method employs bijective functions and FPE to translate and encrypt location data, preserving semantic classifications and format, addressing privacy and anonymity issues in geolocation encryption.

DE112019002265B4Active Publication Date: 2025-01-09INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE112019002265
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2018-07-08
Filing Date
2019-06-18
Publication Date
2025-01-09
Estimated Expiration
2039-06-18

AI Technical Summary

Technical Problem

Existing encryption methods for location information lose semantic and format properties, violating privacy and anonymity requirements, as they fail to preserve the meaningful context of geolocation data during encryption.

Method used

A method and system that uses bijective functions to translate location data into indicators, applying format-preserving encryption (FPE) to maintain semantic classifications, allowing inverse mapping to restore original context while ensuring anonymity levels are met.

Benefits of technology

Preserves the format and semantic properties of location data, enabling secure translation and retrieval of encrypted data with maintained context and privacy, suitable for systems requiring geolocation information.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Embodiments of the present systems and methods can provide techniques for encrypting location information while preserving the format and semantics of the information. In one embodiment, a computer-implemented method for encrypting data can, for example, include receiving location data and generating encrypted data from the received location data, wherein the encrypted data retains the format and semantics of the received location data.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] The present invention relates to techniques for format- and semantic-preserving encryption of location information to protect privacy.

[0002] According to the General Data Protection Regulation (GDPR), a person's location is considered private information and should be treated accordingly. However, various systems still require some form of location information to function properly. Generally, format-preserving encryption (FPE) is used to encrypt location-related fields such as GPS data, coordinates, and even IP addresses, preserving properties such as the valid range and format. However, the encryption process loses properties such as geospatial and semantic information, such as whether the person is located in a city or a rural area. While geolocation is also private, some individuals may consent to some relaxation of the anonymity requirements.For example, an individual may restrict the disclosure of their own IP address while allowing the disclosure of an address from their current status. Whether at the neighborhood, city, or state level, or even just semantic information such as population density in the area, it may be advantageous for organizations to retain some information while providing the privacy demanded by users. In particular, by default, it should not be possible to identify an individual from the obfuscated or encrypted data. However, the individual may explicitly relax this restriction after being duly requested with appropriate explanations.

[0003] The article “Semantics-Preserving Encryption for Computer Networking Related Data Types” by Gergő Ladi in 12th International Symposium on Applied Informatics and Related Areas, November 9, 2017, Székesfehérvár, Hungary describes customizable semantics-preserving encryption methods that can be applied to common data types related to computer networks such as IPv4, IPv6 and MAC addresses.

[0004] The Wikipedia article "Classless Inter-Domain Routing" (https: / / en.wikipedia.org / w / index.php?title=Classless_Inter-Domain_Routing&oldid=849160283) from July 6, 2018, describes a method for assigning IP addresses and IP routing. The Internet Engineering Task Force introduced Classless Inter-Domain Routing (CIDR) in 1993 to replace the previous Classful Network Design addressing architecture on the Internet. The goal was to slow the growth of routing tables on Internet routers and to prevent the rapid depletion of IPv4 addresses.

[0005] Therefore, there is a need for techniques that provide encryption of location information while maintaining a format and semantics of the information. SUMMARY

[0006] It is an object of the invention to provide an improved method, system, and computer program product for encrypting location information. The objects underlying the invention are achieved by the features of the independent claims. Embodiments of the present invention may provide techniques for encrypting location information while maintaining a format and semantics of the information.

[0007] In one embodiment of the invention, a computer-implemented method for encrypting data comprises receiving location data and generating encrypted data from the received location data, wherein the encrypted data maintains the format and semantics of the received location data.

[0008] The received location data may comprise a first Internet Protocol address, and generating may comprise translating the first Internet Protocol address into data indicative of a location, determining a semantic classification of the indicated location, converting the data indicative of a location into an indicator using a bijective function, wherein the indicator belongs to a range of indicators of the determined semantic classification, encrypting the indicator using format-preserving encryption, and converting the encrypted indicator into a second Internet Protocol address using an inverse bijective function, wherein the semantic classification of the indicated location is preserved in the second Internet Protocol address.A plurality of semantic classifications of the indicated location can be maintained by encoding categories of specified semantic classifications using a range of indicators corresponding to each semantic classification. If a set of values ​​indicating a set of locations and a set of possible values ​​of indicators are not equal in size, the bijective function is applied to subsets of equal sizes.

[0009] The received location data may comprise first global positioning system coordinates, and generating may comprise establishing a semantic classification of the global positioning system coordinates, converting the global positioning system coordinates into an indicator using a bijective function, wherein the indicator belongs to a range of indicators of the established semantic classification, encrypting the indicator using format-preserving encryption, and converting the encrypted integer into second global positioning system coordinates using an inverse bijective function, wherein the semantic classification of the first global positioning system coordinates is maintained in the second global positioning coordinates.A plurality of semantic classifications of the first Global Positioning System coordinates can be maintained by encoding categories of specified semantic classifications using a range of indicators corresponding to each semantic classification. If a set of values ​​indicating a set of locations and a set of possible indicator values ​​are not equal in size, the bijective function is applied to subsets of equal sizes.

[0010] In one embodiment of the invention, a system for encrypting data comprises a processor, a memory accessible by the processor, and computer program instructions stored in the memory and executable by the processor to perform receiving location data and generating encrypted data from the received location data, wherein the encrypted data maintains the format and semantics of the received location data.

[0011] In one embodiment of the invention, a computer program product for encrypting data comprises a non-volatile, computer-readable memory having program instructions embodied therein, wherein the program instructions are executable by a computer to cause the computer to perform a method comprising receiving location data and generating encrypted data from the received location data, wherein the encrypted data retains the format and semantics of the received location data. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The details of the present invention, both as to its structure and operation, can best be understood from the accompanying drawings, in which like reference numerals and designations correspond to like elements. Fig. 1 illustrates an exemplary system in which embodiments of the present invention may be implemented. Fig. 2 is an exemplary data flow diagram of a process according to embodiments of the present invention. Fig. 3 is an exemplary illustration of encryption according to embodiments of the present invention. Fig. 4 is an exemplary block diagram of a computer system in which embodiments of the present invention may be implemented. DETAILED DESCRIPTION

[0013] Embodiments of the present invention may provide techniques for encrypting location information while preserving the format and semantics of the information. For location information, such as a location derived from IP addresses, a database mapping IP address ranges to physical locations and a semantic criterion may be used to group different ranges and classify them according to the semantic criterion. Once classified, a bijective function may map ranges in a class to a range of indicators, e.g., an integer range. Format-preserving encryption (FPE) techniques may then be used to encrypt the data.Using the inverse of the bijective function, an IP address can be generated that preserves semantic properties while providing the level of anonymity required by the user. These techniques can provide a valid and anonymized database for systems relying on IP-to-location translation functions.

[0014] For GPS coordinates, the process can be similar. First, different regions such as population density ranges, temperature ranges, elevation, etc., can be classified using a semantic classification. Second, the coordinates can be converted into a range of indicators, such as an integer range, using a bijective function. Format-preserving encryption (FPE) techniques can then be used to encrypt the data. Using the inverse function of the bijective function, GPS coordinates can be generated that retain the semantic properties while providing the level of anonymity required by the user.

[0015] An exemplary system 100 in which the present invention may be implemented is shown in Fig. 1. In this example, system 100 includes data sources such as Internet Protocol (IP) address data sources 102, Global Positioning System (GPS) coordinate data sources 104, computer system 106, and encrypted location data 108. IP address data sources 102 may include one or more devices and / or processes that communicate using Internet Protocol networks and for which a physical, logical, and / or network location can be determined. IP addresses are typically assigned based on a variety of factors, such as the Internet service provider making the assignment and, to some extent, the physical location of the device receiving the assignment. Location information may therefore be derived from an IP address.GPS coordinate data sources 104 may include one or more entities and / or processes that establish the physical locations of themselves or of other entities, processes, and / or users using the Global Positioning System. While IP address data sources 102 and GPS coordinate data sources 104 are described herein, they are only examples. The present systems and methods may be applied to any physical, logical, and / or network location data, regardless of how it is generated, who generates it, what processes generate it, or what protocols or formats are used to generate or transmit it.

[0016] Computer system 106 may include one or more data processing systems that may receive data, for example, from IP address data sources 102 and GPS coordinate data sources 104, and process this data according to embodiments of the present invention. For example, IP address data from IP address data sources 102 may be processed by IP address processing 110, and GPS coordinate data from GPS coordinate data sources 104 may be processed by GPS coordinate processing 112. The processed data from IP address processing 110 and GPS coordinate processing 112 may be encrypted and inversely mapped by encryption / inverse mapping processing 114 to form encrypted location data 108 that may be output by computer system 106.

[0017] Fig. 2 is an exemplary flow chart of a process 200 used in the system of Fig. 1. The figure is best used in conjunction with Fig. 1. In this example, the described indicators are integers. However, this is only an example. The present systems and methods may use any type of indicator capable of identifying instances and having value ranges or domains. The process 200 begins at 202, where IP addresses and / or GPS coordinates may be received, for example, for the IP address data sources 102 and the GPS coordinate data sources 104. For the IP addresses, the process 200 may continue at 204, where IP addresses may be mapped to physical locations and classified into semantic classifications. For example, a translation database may map IP address ranges to physical locations, and a semantic criterion may be used to group different ranges and classify them according to the semantic criterion. The translation database may include an anonymity parameter.Physical locations and semantic classifications can be used to subdivide a map. For example, the map can be divided into non-overlapping "tiles" that together cover the map. The tiling procedure can be based on radii based on distance from a defined location. The tiling process can also depend on other geographic / semantic properties. For example, all islands can be grouped as a single tile, as can all cities within a certain population range, all locations within a certain elevation range, etc.

[0018] At 206, a bijective function defining a one-to-one mapping can be generated for each tile to translate each IP address into an integer, such that the resulting integers form a contiguous range for each tile. Given an IP address, the address can be translated into physical coordinates, and the tile to which it belongs can be identified.

[0019] At 208, an encryption process that maintains an integer format (using the range boundaries of the tile) may be applied to the result of the bijective function for the given IP address. At 210, the inverse function of the bijective function may be applied to the encrypted result to obtain a new IP address representing the encrypted result.

[0020] The GPS coordinate process 200 may continue to 212, where the GPS coordinates may be semantically classified. For example, different regions may be classified using a semantic classification such as population density ranges, temperature ranges, elevation, etc. A semantic criterion may be used to group different GPS coordinates and classify them according to the semantic criterion. The semantic classification may be used to subdivide a map. For example, the map may be divided into non-overlapping "tiles" that together cover the map. The tiling process may depend on other geographic / semantic properties. For example, all islands may be grouped as a single tile, as may all cities within a particular population range, all locations within a particular elevation range, etc.

[0021] At 214, a bijective function defining a one-to-one mapping can be generated for each tile to translate each GPS coordinate into an integer, such that the resulting integers for each tile form a contiguous range. Given a GPS coordinate, the coordinate can be translated into a semantic classification, and the tile to which it belongs can be identified. Thus, using a bijective function, the coordinates can be converted into a range of integers depending on their classification. At 208, an encryption process that preserves the integer format can be applied to the result of the bijective function for the given GPS coordinates.At 210, the inverse function of the bijective function can be used on the encrypted result to obtain a new set of real-world coordinates with the same semantic classification as before, representing the encrypted result.

[0022] An example of using the process described above is as follows: assume address X is bijectively mapped to address f(X). An environmental protection control center can analyze data for these addresses and conclude that some addresses require alerting. The alert notifications would be sent to a relevant authority (e.g., the city government), which would decode f(X) back to X and alert the residents. The functionality would be provided to authorized parties to reverse the mapping if necessary.

[0023] However, this bijectivity can cause a problem when mapping sets of cards of different sizes, such as New York IP addresses to Chicago IP addresses. In embodiments, this problem can be solved by mapping the smaller set (e.g., Chicago addresses) to a subset of the same size of the larger set (e.g., New York addresses). This way, not all values ​​in the larger set are mapped. This is not a problem for use cases where only small subsets of categories need to be mapped, e.g., only IP addresses of current customers.

[0024] In embodiments, a construct called a "category tile" may be used to accommodate more than one semantic classification. While the encryption process, which maintains the integer format, essentially permutes the locations within a given tile, more classifications can be incorporated by encrypting the tile number, thereby permuting the tiles into a larger classification context. Each classification category, for example, may use a different integer range. Thus, more than one location semantics, such as the population size of a region, the mean temperature of a region, etc., can be maintained. In embodiments, the permutation may depend on the fact that all permuted tiles have the same integer range size.In embodiments, the tiles may be split and the ranges reduced accordingly until all permuted tiles have the same integer range size. In embodiments, the tiles may be defined as a Cartesian multiplication of the entire semantics. These embodiments do not require the tile integer ranges to be equal in size.

[0025] In embodiments, cluster semantics may be preserved, as well as the properties of clusters that are retained after encryption. An example of this semantics preservation is described in Fig. 3. In this example, locations 302, 304 originally share a street 306 in city 308. Locations 302, 304 may be encrypted as new locations. In embodiments, semantic preservation means that the new locations, if encrypted, may be locations 310, 312, which may continue to share a street 314 in a different city 316. In embodiments, locations on the same street may be mapped to the same tile. After format-preserving encryption has been applied, these locations may be encrypted to other locations on the same tile (street). If different semantics are to be maintained or if a different level of anonymity is required, this may be inherited from the category tile.For example, if the different streets within a city are defined as belonging to the same category tile, embodiments may permute the streets and convert locations that share a street to a different street, e.g., locations 318, 320 on street 322 or locations 324, 326 on street 328.

[0026] An exemplary block diagram of a computer system 402 in which processes included in the embodiments described herein may be implemented is shown in Fig. 4. The computer system 402 may be implemented using one or more programmed general-purpose computer systems such as embedded processors, systems on a chip, personal computers, workstations, server systems, and minicomputers or mainframes, or in distributed, networked data processing environments. The computer system 402 may include one or more processors (CPUs) 402A through 402N, the input / output circuitry 404, the network adapter 402, and the memory 408. The CPUs 402A through 402N execute program instructions to perform the functions of the present data transmission systems and methods. The CPUs 402A through 402N are typically one or more microprocessors such as an INTEL CORE ® -Processor. Fig. 4 illustrates an embodiment in which computer system 402 is implemented as a single multiprocessor computer system in which multiple processors 402A through 402N share system resources such as memory 408, input / output circuitry 404, and network adapter 406. However, the present data transmission systems and methods also include embodiments in which computer system 402 is implemented as a plurality of networked computer systems, which may be single-processor computer systems, multiprocessor computer systems, or a mixture thereof.

[0027] Input / output circuitry 404 provides the functionality to input data to or output data from computer system 402. The input / output circuitry may include input devices such as keyboards, mice, touchpads, trackballs, scanners, analog-to-digital converters, etc., output devices such as video adapters, monitors, printers, etc., and input / output devices such as modems, etc. Network adapter 406 connects device 400 to a network 410. Network 410 may be a public or proprietary LAN or WAN, which may include, but is not limited to, the Internet.

[0028] The memory 408 stores program instructions executed by the CPU 402, as well as data used and processed by the CPU 402 to perform the functions of the computer system 402. The memory 408 may include, for example, electronic storage devices such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), electrically erasable programmable read-only memory (EEPROM), flash memory, etc., as well as electromechanical storage such as magnetic disk drives, tape drives, optical disk drives, etc., that utilize an integrated drive electronics (IDE) interface or a variation or improvement thereof such as Enhanced IDE (EIDE) or Ultra Direct Memory Access (UDMA), or a Small Computer System Interface (SCSI)-based interface or a variation or improvement thereof such as Fast SCSI, Wide SCSI, Fast and Wide SCSI, etc., or Serial Advanced Technology Attachment (SATA) or a variation or improvement thereof, or a Fibre Channel-Arbitrated Loop (FC-AL) interface.

[0029] The contents of memory 408 may vary depending on the function that computer system 402 is programmed to perform. Fig. In the example shown in Figure 4, exemplary memory contents representing routines and data for embodiments of the processes described above are illustrated. However, it will be apparent to those skilled in the art that these routines, along with the memory contents associated with these routines, may not be contained within one system or unit, but may be distributed among a plurality of systems or units based on known technical considerations. The present data transmission systems and methods may include any and all of these arrangements.

[0030] In the Fig. 4, the memory 408 may include the IP address processing routines 412, the GPS coordinate processing routines 414, the encryption / inverse mapping processing routines 416, the IP address data 418, the GPS coordinate data 420, the encrypted location data 422, the translation database 424, and the operating system 426. The IP address processing routines 412 may include software routines to receive and process the IP address data 418 using the translation database 424. The IP address data 418 may, for example, be derived from the Fig. 1. The GPS coordinate processing routines 414 may include software routines to receive and process the GPS coordinate data 420 using the translation database 424. The GPS coordinate data 420 may, for example, be received from the Fig. 1. Encrypt / inverse map processing routines 416 may include software routines to encrypt and inverse map the output from IP address processing routines 412 and GPS coordinate processing routines 414 to generate encrypted location data 422. Matrix generation routines 418 may include software routines to generate matrices in which the rows and columns represent drugs and each cell represents the similarity measure. Model generation routines 420 may include software routines to generate models such as logistic regression models. Hypothesis generation routines 422 may include software routines to generate drug repositioning hypotheses using the models. The operating system 424 can provide the entire system functionality.

[0031] As in Fig.4, the present invention may include implementation on a system or systems providing multiprocessor, multitasking, multiprocess, and / or multi-threaded computing, as well as implementation on systems providing single-processor, single-threaded computing. Multiprocessor computing involves performing computing using more than one processor. Multitasking computing involves performing computing using more than one operating system task. A task is an operating system concept that refers to the combination of an executing program and the bookkeeping information used by the operating system. Whenever a program is executed, the operating system creates a new task for the program.The task acts like a wrapper for the program, identifying the program with a task number and appending other accounting information. Many operating systems, including Linux and UNIX, support this. ® , OS / 2 ® and Windows ®, are capable of performing many tasks simultaneously and are called multitasking operating systems. Multitasking is the ability of an operating system to perform more than one executable function at a time. Each executable function runs in its own address space, which means that the executable functions have no way of sharing their memory. This has advantages because it is impossible for one program to corrupt the execution of any of the other programs running on the system. However, the programs have no way of exchanging information except through the operating system (or by reading files stored on the file system). Multiprocess computing is similar to multitasking computing in that the terms task and process are often used interchangeably, although some operating systems make a distinction between the two.

[0032] The present invention may be a system, a method, and / or a computer program product at any possible technical level of integration. The computer program product may comprise a computer-readable storage medium(s) having stored thereon computer-readable program instructions for causing a processor to perform aspects of the present invention. The computer-readable storage medium may be a physical device capable of retaining and storing instructions for use by an instruction-executing device.

[0033] The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of the computer-readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM).Flash memory), static random access memory (SRAM), portable compact disc read-only memory (CD-ROM), digital versatile disc (DVD), memory stick, floppy disk, mechanically encoded device such as punched cards or raised structures in a groove on which instructions are stored, and any suitable combination thereof. A computer-readable storage medium, as used herein, shall not be construed as carrying transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., pulses of light traveling through an optical fiber), or electrical signals transmitted through a wire.

[0034] Computer-readable program instructions described herein may be downloaded from a computer-readable storage medium to respective computing / processing units or to an external computer or external storage unit via a network such as the Internet, a local area network, a wide area network, and / or a wireless network. The network may include copper transmission cables, fiber optic transmission lines, wireless transmission, routers, firewalls, switching units, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing unit receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in a computer-readable storage medium within the respective computing / processing unit.

[0035] Computer-readable program instructions for performing operations of the present invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state-setting data, integrated circuit configuration data, or either source code or object code written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Smalltalk, C++, or the like, and procedural programming languages ​​such as the C programming language or similar programming languages.The computer-readable program instructions may execute entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on the remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, over the Internet using an Internet service provider).In some embodiments, electronic circuits, including, for example, programmable logic circuits, field programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute the computer-readable program instructions by utilizing state information of the computer-readable program instructions to personalize the electronic circuits to perform aspects of the present invention.

[0036] Aspects of the present invention are described herein with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowcharts and / or block diagrams, as well as combinations of blocks in the flowcharts and / or block diagrams, may be implemented by computer-readable program instructions.

[0037] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device to produce a machine such that the instructions, executed by the processor of the computer or other programmable data processing device, produce a means for implementing the functions / steps defined in the flowchart block(s) and / or block diagrams.These computer-readable program instructions may also be stored on a computer-readable storage medium that can direct a computer, a programmable data processing apparatus, and / or other devices to function in a particular manner, such that the computer-readable storage medium having instructions stored thereon comprises an article of manufacture, including instructions that implement aspects of the function / step specified in the block(s) of the flowchart and / or block diagrams or charts.

[0038] The computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of process steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-executable process such that the instructions executing on the computer, other programmable apparatus, or other device implement the functions / steps defined in the block(s) of flowchart and / or block diagrams.

[0039] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or portion of instructions comprising one or more executable instructions for performing the particular logical function(s). In some alternative implementations, the functions indicated in the block may occur in a different order than shown in the figures. For example, two blocks shown in succession may actually execute substantially concurrently, or the blocks may sometimes execute in reverse order depending on the corresponding functionality.It is further understood that each block of the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by special purpose hardware-based systems that perform the specified functions or steps, or by combinations of special purpose hardware and computer instructions.

[0040] While specific embodiments of the present invention have been described, it will be apparent to those skilled in the art that other embodiments exist that correspond to the described embodiments. It is therefore to be understood that the invention is not limited to the specific embodiments illustrated, but only by the scope of the appended claims.

Claims

[1] A method for encrypting data (418, 420) implemented by a computer (106, 400), the method comprising: receiving location data, wherein the location data comprises a first Internet Protocol address (418) translated into data indicating a physical location in the form of physical coordinates, and / or wherein the location data comprises first Global Positioning System coordinates (420) as data indicating the physical location; specifying a semantic classification of the displayed location; dividing a map into non-overlapping tiles that together cover the map using location and semantic classification; identifying a tile to which the data indicating the location belongs; generating a bijective function for each tile that defines a one-to-one mapping to convert data indicative of locations into integers, the resulting integers for each tile forming a contiguous range, wherein the generating comprises generating a bijective function for the identified tile that converts the data indicative of the location into an integer of a contiguous range of integers for the identified tile; converting the data indicative of a location into an indicator using the bijective function for the identified tile, wherein the indicator belongs to the contiguous range of integers of the identified tile with the specified semantic classification; encrypting the indicator using format-preserving encryption, wherein the encrypting comprises encrypting a tile number of the identified tile, thereby permuting the tiles; and converting the encrypted indicator using an inverse bijective function for the identified tile, wherein if the location data includes the first Internet Protocol address, the encrypted indicator is converted to a second Internet Protocol address, wherein the semantic classification of the displayed location is retained in the second Internet Protocol address, wherein if the location data includes the first Global Positioning System coordinates, the encrypted indicator is converted to second Global Positioning System coordinates, wherein the semantic classification of the first Global Positioning System coordinates is retained in the second Global Positioning System coordinates. [2] The method of claim 1, wherein, when the received location data comprises a first Internet Protocol address (418), a plurality of semantic classifications of the indicated location are maintained by encrypting categories of specified semantic classifications using a range of indicators corresponding to each semantic classification. [3] The method of claim 2, wherein, if a set of values ​​indicative of a set of locations and a set of possible values ​​of indicators are not of equal size, the bijective function for the identified tile is applied to subsets of equal size. [4] The method of claim 1, wherein, when the received location data comprises first global positioning system coordinates (420), a plurality of semantic classifications of the first global positioning system coordinates (420) are maintained by encrypting categories of determined semantic classifications using a range of indicators corresponding to each semantic classification. [5] The method of claim 4, wherein, if a set of values ​​indicative of a set of locations and a set of possible values ​​of indicators are not of equal size, the bijective function for the identified tile is applied to subsets of equal size. [6] A system (106, 400) for encrypting data, the system (106, 400) comprising a processor (402), a memory (408) accessible by the processor (402), and computer program instructions (412, 414, 416) stored in the memory (408) and executable by the processor (402) to perform methods according to any one of the preceding claims. [7] A computer program product for encrypting data, the computer program product comprising a non-volatile memory (408) readable by a computer (106, 400) having program instructions (412, 414, 416) contained therein, the program instructions (412, 414, 416) being executable by a computer (106, 400) to cause the computer (106, 400) to perform a method according to claims 1 to 5.