Vector tile data encryption method
By receiving encrypted request parameters, encrypted map point coordinate information, and dynamically generating encrypted keys in the vector data transmission of high -precision map data, and dynamically generate encryption key, it solves the lack of efficient, secure, and highly compressed data in the existing technology. The problem of transmission encryption methods has realized the security and visual requirements of high -precision map data.
Patent Information
- Application Number
- CN202411216804.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-30
- Publication Date
- 2025-01-24
AI Technical Summary
The prior art lacks a data transmission encryption method with high efficiency, security and high compression rate to ensure the security and visualization requirements of high-precision map data.
Provides a method for encrypting vector tile data, including receiving encryption request parameters from the user terminal, encrypting map point coordinate information based on target tile level information, generating an encrypted vector tile file, and including the username in the file header. Instructions for generating encryption keys.
By encrypted request parameters and map point coordinate information at the source, dynamically generate the encryption key to ensure that the security and compression rate of vector tile data is high, and the security and visual requirements of high -precision map data are met.
Smart Images

Figure CN119357984A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of high-precision map technology, and in particular to a method for encrypting vector tile data. Background Art
[0002] High-precision maps are an important part of the cloud control basic platform and an important cornerstone for vehicle movement trajectories, indicator calculations, big data analysis and other functions. With the application of high-precision map data in vehicle-road-cloud integration, in order to ensure the security of data transmission and map visualization requirements, an efficient, secure, and highly compressed data transmission encryption method is needed. Summary of the invention
[0003] The present invention provides a method for encrypting vector tile data, so as to overcome at least one technical problem existing in the prior art.
[0004] An embodiment of the present invention provides a method for encrypting vector tile data, which is applied to a service platform storing vector tile data, and includes:
[0005] Receiving a request for obtaining vector tile data sent by a user terminal, wherein the request for obtaining vector tile data carries several sets of encrypted request parameter information, and any set of request parameter information in the several sets of encrypted request parameter information includes target tile level information, encrypted horizontal coordinate information, and encrypted vertical coordinate information;
[0006] In response to the request for obtaining the vector tile data, determining the target vector data requested by the user terminal based on the plurality of groups of encrypted request parameter information;
[0007] For the target vector data, encrypting each map point coordinate information in the target vector data based on the target tile level information to obtain encrypted target vector data;
[0008] Generate a file header part of the vector tile file, so that the service platform generates a body part of the encrypted vector tile file based on the encrypted target vector data and the file header part;
[0009] The file header part of the generated vector tile file specifically includes:
[0010] The file header part is set to include a signature sub-part, an encryption method sub-part, a version number sub-part and a description information sub-part; it is determined whether the signature length of the signature sub-part contained in the file header generated by the service platform by default is less than 20 bytes, and if it is less than 20 bytes, the header of the part of the signature sub-part generated by default that is less than 20 bytes is filled with zeros to obtain a filled signature sub-part;
[0011] Setting the encryption mode sub-part with a length of two bytes, dividing the encryption mode sub-part with a length of two bytes into four sub-segments including a first sub-segment, a second sub-segment, a third sub-segment and a fourth sub-segment which are adjacent to each other, and each of the four sub-segments has a length of four bits;
[0012] The binary value of the first sub-segment is used to indicate whether to encrypt the body part of the vector tile file, wherein the first three bits of the first sub-segment are filled with zeros; if the fourth bit of the first sub-segment is set to 1, it indicates that the body part of the vector tile file is encrypted, and if it is set to 0, the body part of the vector tile file is not encrypted;
[0013] The decimal value of the second sub-segment is used to indicate whether to perform data deflection on the body part of the vector tile file, wherein if the decimal value of the second sub-segment is set to 1, it indicates that the data deflection is not performed on the body part of the vector tile file; if the decimal value of the second sub-segment is set to 2, it indicates that the data deflection is performed on the body part of the vector tile file in a data inversion manner; if the decimal value of the second sub-segment is set to 3, it indicates that the data deflection is performed on the body part of the vector tile file in a proximity exchange manner; if the decimal value of the second sub-segment is set to an integer value between the interval [4,9], it is a reserved type; then the left side of the part of the binary representation of the second sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0014] The decimal value corresponding to the third sub-segment is used to indicate whether to perform a logical bit operation on the body part of the vector tile file; wherein, if the decimal value corresponding to the third sub-segment is 0 or 1, it indicates that no logical bit operation is performed on the body part of the vector tile file; if the decimal value corresponding to the third sub-segment is between the values 2 and 9, it indicates that a logical bit operation is performed on the body part of the vector tile file; the decimal value corresponding to the third sub-segment is used to indicate the key length of the key required for encrypting the body part of the vector tile file; then the left side of the part of the binary representation of the third sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0015] The decimal value corresponding to the fourth sub-segment is used to represent the position of the flag bit of the key required for encrypting the text portion of the vector tile file, and then the left side of the part of the binary representation of the fourth sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0016] Generate a signature sub-portion that meets the processing requirements and an encryption mode sub-portion that meets the processing requirements in the file header portion according to the processing requirements for the body portion of the vector tile file, then generate the version number sub-portion and the description information sub-portion, and splice the signature sub-portion that meets the processing requirements, the encryption mode sub-portion that meets the processing requirements, the version number sub-portion and the description information sub-portion to obtain the file header portion;
[0017] The generating the body part of the encrypted vector tile file based on the encrypted target vector data and the file header part specifically includes:
[0018] Encoding the encrypted target vector data into a binary vector tile file based on a binary encoding format Geobuf, and using the binary vector tile file as a body part of the vector tile file; wherein, in the process of generating the body part of the binary vector tile file based on the binary encoding format Geobuf, defining a field writing order based on a custom tag order, and the custom tag order is different from a default field writing order of the binary encoding format Geobuf;
[0019] Determining whether to perform data deflection on the text part of the vector tile file based on the decimal value of the second sub-segment, to obtain the processed text part of the vector tile file;
[0020] Determining whether to encrypt the body portion of the processed vector tile file based on the binary value of the first sub-segment, to obtain a first determination result;
[0021] If the first judgment result is no, then the body part of the processed vector tile file is not further encrypted;
[0022] If the first judgment result is yes, then generating a key required for performing the encryption processing on the content of the text part of the processed vector tile file based on the content of the text part of the processed vector tile file, and performing encryption processing on the content of the text part of the processed vector tile file based on the key required for encryption processing to obtain the encrypted text part of the vector tile file;
[0023] splicing the file header part and the body part of the encrypted vector tile file to generate a vector tile file sent to the user terminal;
[0024] The vector tile file is sent to the user terminal, so that the user terminal decrypts the acquired vector tile file to obtain the target vector tile data.
[0025] Preferably, the target vector data is encrypted based on the target tile level information on each map point coordinate information in the target vector data to obtain the encrypted target vector data, specifically including:
[0026] The numerical value corresponding to the target tile level information is marked as symbol m, and the maximum longitude and latitude offset delta_max(m) is defined based on the following formula:
[0027] delta_max(m)=M±a·b m ·cos(θ)
[0028] Wherein, symbol M represents a preset reference value, symbol a represents a first predetermined constant, symbol b represents a second predetermined constant, and symbol θ represents an angle corresponding to the deflection motion direction of the target vector data;
[0029] A deflection amount is added to the horizontal and vertical coordinates of each map point in the target vector data, and the numerical value of the deflection amount is within the range of [-delta_max(m),delta_max(m)]*cos(θ), thereby obtaining the encrypted target vector data.
[0030] Preferably, the generating, based on the content of the body part of the processed vector tile file, a key required for performing the encryption process on the content of the body part of the processed vector tile file specifically includes:
[0031] Mark the decimal value corresponding to the third sub-segment as symbol N, and mark the decimal value corresponding to the fourth sub-segment as symbol P;
[0032] Construct an array M, set the length of the array M to the decimal value N corresponding to the third subsegment, and mark the subscript of the array M with the symbol I;
[0033] The body part of the processed vector tile file is represented as an array L in decimal, starting from subscript 0 to subscript N-1, and the data with subscript P+N*I in the array L are filled into the corresponding position I in the array M one by one to obtain the array M after assignment;
[0034] The array element value with the subscript P in the assigned array M is assigned a value of 0, so as to obtain the key required for the encryption process represented in the form of an array.
[0035] Preferably, encrypting the content of the body part of the processed vector tile file based on the key required for the encryption process to obtain the body part of the encrypted vector tile file specifically includes:
[0036] Perform a logical bit operation on the key required for the encryption process represented in the form of an array and the content L of the main body part of the processed vector tile file at the array elements with the same subscript to obtain the result of the bit operation; wherein, if the length of the key required for the encryption process is less than the length of the array L, start counting again from the subscript 0 of the key required for the encryption process represented in the form of an array, and iteratively perform a logical bit operation on the array elements in the array L that have not undergone a logical bit operation, and use the result of the final bit operation as the main body part of the vector tile file after encryption processing.
[0037] Preferably, the several groups of encrypted request parameter information are obtained by the user terminal based on performing a non-linear process on the several groups of original request parameter information. Any one of the several groups of original request parameter information includes target tile level information, original abscissa information X, and original ordinate information Y;
[0038] The user terminal is obtained based on performing a non-linear process on the several groups of original request parameter information, which specifically includes: performing the following process on the target tile level information, original abscissa information X, and original ordinate information Y included in any one of the several groups of original request parameter information:
[0039] S1: Determine whether the value L corresponding to the target tile level information is less than a predetermined threshold with an integer numerical type, and the numerical size of the predetermined threshold is in the interval [8, 12], to obtain a second determination result;
[0040] S2: If the second determination result is no, proceed to step S4; if the second determination result is yes, calculate a first intermediate parameter s, where the calculation formula for the first intermediate parameter s is s = 2 ^ Z;
[0041] S3: Determine whether the original abscissa information X satisfies the following judgment formula: X >= s || X < 0, to obtain a third determination result; if the third determination result is yes, set the numerical size of the original abscissa information X to new1X = (X + s) % s, if the third determination result is no, proceed to step S4;
[0042] S4: Define a second intermediate parameter d and a third intermediate parameter e, where d = floor(Z / 2), e = Z - d; update the numerical size of the second intermediate parameter according to the following formula to obtain the second intermediate parameter newd with the updated numerical size = ((1 << d) - 1) << e; update the numerical size of the third intermediate parameter according to the following formula to obtain the third intermediate parameter newe with the updated numerical size = (1 << e) - 1;
[0043] The value of the original horizontal coordinate information X is calculated and set to new2X=(new1X&d)|(Y&e) according to the following formula;
[0044] The value of the original horizontal coordinate information Y is calculated and set to newY=(Y&d)|(new1X&e) according to the following formula;
[0045] The value represented by the symbol new2X is used as the value of the original horizontal coordinate information X after the nonlinear processing, and the value represented by the symbol newY is used as the value of the original vertical coordinate information Y after the nonlinear processing.
[0046] An embodiment of the present specification can at least achieve the following beneficial effects: In the technical solution of the present application, when the user terminal sends a request for obtaining vector tile data to the service platform, the request itself is encrypted by the user terminal, which firstly ensures data security at the source. Thirdly, before providing the target vector tile data corresponding to the acquisition request, the service platform encrypts the coordinate information of each map point in the target vector data based on the hierarchical information of the target tile to obtain the encrypted target vector data. Secondly, the technical solution of the present application provides a new definition method for the file header of the vector tile file and the body of the vector tile file. The file header contains guidance information for guiding the key required to encrypt the body of the vector tile file. Based on the guidance information and the content of the body of the vector tile file, the key required to encrypt the body can be generated. Therefore, in the technical solution of the present application, the key required to encrypt the body is dynamically generated based on the content of the file header and the body, without the need to transmit the encryption key, which further ensures the security of the tile data. BRIEF DESCRIPTION OF THE DRAWINGS
[0047] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0048] Figure 1 A schematic diagram illustrating the pyramid structure of tile data;
[0049] Figure 2 A schematic diagram of a process of encrypting the coordinate information of each map point in target vector tile data in a method for encrypting vector tile data provided in an embodiment of this specification;
[0050] Figure 3A file encryption flow chart for generating an encrypted vector tile file for sending to a user terminal in a vector tile data encryption method provided in an embodiment of this specification;
[0051] Figure 4 In the encryption method of vector tile data provided in the embodiment of this specification, the service platform does not perform Figure 2 A schematic diagram of the original display effect of the encryption operation in , where different colors represent different line segments;
[0052] Figure 5 express Figure 4 Schematic diagram of the effect of normal topological structure after the lines of different colors are enlarged;
[0053] Figure 6 Indicates passing Figure 4 The tile data involved in the different colored segments in Figure 2 After the encryption operation, the data visualization is normal;
[0054] Figure 7 express Figure 6 The data topology structure of the data involved has changed and cannot be used normally, but it does not affect the visual display effect diagram;
[0055] Figure 8 A schematic diagram of a vector tile data encryption method provided in an embodiment of the present specification splicing a file header part and a body part of the encrypted vector tile file to generate a vector tile file sent to a user terminal;
[0056] Fig. 9 A schematic diagram for showing the effect that plain text data will expose part of the attribute information of the data when a method for encrypting vector tile data provided by an embodiment of this specification is not applied;
[0057] Fig.10 A schematic diagram for showing the effect that all plaintext data is hidden when a method for encrypting vector tile data provided by an embodiment of this specification is applied;
[0058] Fig.11 A schematic diagram for representing a flow chart of data decryption performed by a user terminal when applying a vector tile data encryption method provided in an embodiment of this specification. DETAILED DESCRIPTION
[0059] In order to make the purpose, technical solutions and advantages of one or more embodiments of this specification clearer, the technical solutions of one or more embodiments of this specification will be clearly and completely described below in combination with the specific embodiments of this specification and the corresponding drawings. Obviously, the described embodiments are only part of the embodiments of this specification, not all of the embodiments. Based on the embodiments in this specification, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of one or more embodiments of this specification.
[0060] It should be understood that although the terms first, second, third, etc. may be used in this application document to describe various information, this information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other.
[0061] In order to make the technical solution of this application clear, the meaning of the relevant technical books involved in this application is first explained below.
[0062] Tile: A data block consisting of several rows and columns formed by dividing the map data within a specific spatial range at a certain resolution or scale. With the development of science and technology, maps are widely used in autonomous driving, smart cities and other fields. Due to the use of high-precision maps, the number of map layers has increased, and the layer details are richer, resulting in a doubling of map data volume. At present, most maps are divided into tiles, and tile data is used to store flaky map data.
[0063] Pyramid structure of tiles: Maps are displayed on a plane, so spherical coordinates need to be converted to plane coordinates. This conversion process is called projection. The most common projection is Mercator projection. After Web Mercator projection, the map becomes a flat map. Considering that sometimes you need to see macroscopic map information (such as the borders of each country in the world map), and sometimes you need to see very microscopic map information (such as road conditions during navigation). For this reason, the map can be divided into levels. At the highest level (zoom = 0), the least information is required, and only the most important macro information needs to be retained, so it can be represented by a 256x256 pixel picture; at the next level (zoom = 1), the amount of information becomes more, and it can be represented by a 512x512 pixel picture; and so on, the lower the level, the higher the pixels, and the pixels of the next level are 4 times that of the current level. In this way, a pyramid coordinate system is formed from the highest level to the lowest level. For each picture, it can be divided into 256x256 pictures, called tiles. In this way, at the highest level (zoom = 0), there is only one tile; at the next level (zoom = 1), there are 4 tiles; at the next level (zoom = 2), there are 16 tiles, and so on. Tile maps are like pyramids, with each layer made up of small squares. Take a small square as an example. When the map is enlarged, the actual geographic space occupied by this small square is divided into 4 small squares of 2×2. The pixel width and length of the newly generated small square are the same as the original small square. The content of the original small square is displayed by 4 small squares. The larger the display space, the more detailed it becomes.
[0064] Geobuf: A compact binary geospatial format for lossless compression of GeoJSON and TopoJSON data. The project was initiated by Mapbox and transferred to the pygeobuf organization, aiming to provide a smaller and more efficient solution to replace the traditional GeoJSON and TopoJSON formats. Geobuf can not only significantly reduce the data size, but also provide a powerful function of incremental parsing and partial reading while preserving the integrity of the original data.
[0065] The following is a possible application scenario of the technical solution of the embodiment of the present application. A map of a certain level is displayed on the display interface of a user terminal such as a PC. The user pushes the mouse wheel and changes the scale to zoom in and out the map. Because the size of the computer screen is fixed, the larger the scale, the smaller the displayed geographical range, and the more detailed the map content. The smaller the scale, the larger the displayed geographical range, and the more general the map content. When the user operates the mouse wheel, the service platform needs to feed back the tile data of the corresponding level to the user terminal. After the user operates the mouse wheel, the service platform determines the corresponding tile data, encrypts the tile data and returns it to the user terminal, and then the user terminal decrypts it for visual display.
[0066] In order to solve the defects in the prior art, this solution provides the following embodiments:
[0067] The embodiments of this specification provide a method for encrypting vector tile data applied to a service platform. From a program perspective, the execution subject of the process may be a program installed on a server of the service platform.
[0068] like Figure 1 As shown, the process may include the following steps.
[0069] Step 102: Receive a request for obtaining vector tile data sent by a user terminal, wherein the request for obtaining vector tile data carries several groups of encrypted request parameter information, and any group of request parameter information among the several groups of encrypted request parameter information includes target tile level information, encrypted horizontal coordinate information and encrypted vertical coordinate information.
[0070] In this embodiment, the user terminal may be a smart terminal or a PC terminal, for example, the smart terminal may be a smart phone. In practical applications, various main applications (APPs) may be installed on the user terminal. The user may generate the digital label generation request through the main application installed on the user terminal. Alternatively, the user may also generate the acquisition request of the vector tile data through a small program that is parasitic on the host application (i.e., the main application).
[0071] Step 104: In response to the request for obtaining the vector tile data, determine the target vector data requested by the user terminal based on the several groups of encrypted request parameter information.
[0072] Step 106: For the target vector tile data, encrypt each map point coordinate information in the target vector tile data based on the target tile level information to obtain encrypted target vector tile data.
[0073] Step 108: For the target vector data, encrypt each map point coordinate information in the target vector data based on the target tile level information to obtain encrypted target vector data;
[0074] Generate a file header part of the vector tile file, so that the service platform generates a body part of the encrypted vector tile file based on the encrypted target vector data and the file header part;
[0075] The file header part of generating the vector tile file may specifically include:
[0076] The file header part is set to include a signature sub-part, an encryption method sub-part, a version number sub-part and a description information sub-part; it is determined whether the signature length of the signature sub-part contained in the file header generated by the service platform by default is less than 20 bytes, and if it is less than 20 bytes, the header of the part of the signature sub-part generated by default that is less than 20 bytes is filled with zeros to obtain a filled signature sub-part;
[0077] Setting the encryption mode sub-part with a length of two bytes, dividing the encryption mode sub-part with a length of two bytes into four sub-segments including a first sub-segment, a second sub-segment, a third sub-segment and a fourth sub-segment which are adjacent to each other, and each of the four sub-segments has a length of four bits;
[0078] The binary value of the first sub-segment is used to indicate whether to encrypt the body part of the vector tile file, wherein the first three bits of the first sub-segment are filled with zeros; if the fourth bit of the first sub-segment is set to 1, it indicates that the body part of the vector tile file is encrypted, and if it is set to 0, the body part of the vector tile file is not encrypted;
[0079] The decimal value of the second sub-segment is used to indicate whether to perform data deflection on the body part of the vector tile file, wherein if the decimal value of the second sub-segment is set to 1, it indicates that the data deflection is not performed on the body part of the vector tile file; if the decimal value of the second sub-segment is set to 2, it indicates that the data deflection is performed on the body part of the vector tile file in a data inversion manner; if the decimal value of the second sub-segment is set to 3, it indicates that the data deflection is performed on the body part of the vector tile file in a proximity exchange manner; if the decimal value of the second sub-segment is set to an integer value between the interval [4,9], it is a reserved type; then the left side of the part of the binary representation of the second sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0080] The decimal value corresponding to the third sub-segment is used to indicate whether to perform a logical bit operation on the body part of the vector tile file; wherein, if the decimal value corresponding to the third sub-segment is 0 or 1, it indicates that no logical bit operation is performed on the body part of the vector tile file; if the decimal value corresponding to the third sub-segment is between the values 2 and 9, it indicates that a logical bit operation is performed on the body part of the vector tile file; the decimal value corresponding to the third sub-segment is used to indicate the key length of the key required for encrypting the body part of the vector tile file; then the left side of the part of the binary representation of the third sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0081] The decimal value corresponding to the fourth sub-segment is used to represent the position of the flag bit of the key required for encrypting the text portion of the vector tile file, and then the left side of the part of the binary representation of the fourth sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0082] Generate a signature sub-portion that meets the processing requirements and an encryption mode sub-portion that meets the processing requirements in the file header portion according to the processing requirements for the body portion of the vector tile file, then generate the version number sub-portion and the description information sub-portion, and splice the signature sub-portion that meets the processing requirements, the encryption mode sub-portion that meets the processing requirements, the version number sub-portion and the description information sub-portion to obtain the file header portion;
[0083] The generating the body part of the encrypted vector tile file based on the encrypted target vector data and the file header part may specifically include:
[0084] Encoding the encrypted target vector data into a binary vector tile file based on a binary encoding format Geobuf, and using the binary vector tile file as a body part of the vector tile file; wherein, in the process of generating the body part of the binary vector tile file based on the binary encoding format Geobuf, defining a field writing order based on a custom tag order, and the custom tag order is different from a default field writing order of the binary encoding format Geobuf;
[0085] Determining whether to perform data deflection on the text part of the vector tile file based on the decimal value of the second sub-segment, to obtain the processed text part of the vector tile file;
[0086] Determining whether to encrypt the body portion of the processed vector tile file based on the binary value of the first sub-segment, to obtain a first determination result;
[0087] If the first judgment result is no, then the body part of the processed vector tile file is not further encrypted;
[0088] If the first judgment result is yes, then generating a key required for performing the encryption processing on the content of the text part of the processed vector tile file based on the content of the text part of the processed vector tile file, and performing encryption processing on the content of the text part of the processed vector tile file based on the key required for encryption processing to obtain the encrypted text part of the vector tile file;
[0089] The file header part and the body part of the encrypted vector tile file are concatenated to generate an encrypted vector tile file sent to the user terminal.
[0090] Step 110: Send the encrypted vector tile file to the user terminal, so that the user terminal decrypts the acquired encrypted vector tile file to obtain the target vector data.
[0091] In the technical solution of the present application, when the user terminal sends a request for obtaining vector tile data to the service platform, the request itself is encrypted by the user terminal, which firstly ensures data security at the source. Thirdly, before providing the target vector tile data corresponding to the acquisition request, the service platform encrypts the coordinate information of each map point in the target vector data based on the hierarchical information of the target tile to obtain the encrypted target vector data. Secondly, the technical solution of the present application provides a new definition method for the file header of the vector tile file and the body of the vector tile file. The file header contains guidance information for guiding the key required to encrypt the body of the vector tile file. Based on the guidance information and the content of the body of the vector tile file, the key required to encrypt the body can be generated. Therefore, in the technical solution of the present application, the key required to encrypt the body is dynamically generated based on the content of the file header and the body, without the need to transmit the encryption key, which further ensures the security of the tile data.
[0092] The examples of this specification also provide some specific implementation plans of the method, which are described below.
[0093] In an optional embodiment technical solution, for the target vector data, encrypting each map point coordinate information in the target vector data based on the target tile level information to obtain the encrypted target vector data may specifically include:
[0094] The numerical value corresponding to the target tile level information is marked as symbol m, and the maximum longitude and latitude offset delta_max(m) is defined based on the following formula:
[0095] delta_max(m)=M±a·b m ·cos(θ)
[0096] Wherein, symbol M represents a preset reference value, symbol a represents a first predetermined constant, symbol b represents a second predetermined constant, and symbol θ represents an angle corresponding to the deflection motion direction of the target vector data;
[0097] A deflection is added to the horizontal and vertical coordinates of each map point in the target vector data, and the value of the deflection is within the range of [-delta_max(m), delta_max(m)]*cos(θ), and the encrypted target vector data is obtained. This solution can destroy the original data structure without affecting the visualization requirements, making it impossible to use it again, and ensuring data security from the source. Its actual effect can be seen from Figures 4 to 7 Understand it in.
[0098] In an optional embodiment technical solution, the generating, based on the content of the body part of the processed vector tile file, a key required for performing the encryption processing on the content of the body part of the processed vector tile file may specifically include:
[0099] Mark the decimal value corresponding to the third sub-segment as symbol N, and mark the decimal value corresponding to the fourth sub-segment as symbol P;
[0100] Construct an array M, set the length of the array M to the decimal value N corresponding to the third subsegment, and mark the subscript of the array M with the symbol I;
[0101] The body part of the processed vector tile file is represented as an array L in decimal, starting from subscript 0 to subscript N-1, and the data with subscript P+N*I in the array L are filled into the corresponding position I in the array M one by one to obtain the array M after assignment;
[0102] The array element value with the subscript P in the assigned array M is assigned a value of 0, so as to obtain the key required for the encryption process represented in the form of an array.
[0103] In an optional embodiment technical solution, encrypting the content of the body part of the processed vector tile file based on the key required for the encryption process to obtain the body part of the encrypted vector tile file may specifically include:
[0104] A logical bit operation is performed on the key required for the encryption process represented in array form and the array elements with the same subscript in the content L of the body part of the processed vector tile file to obtain a result after the bit operation; wherein, if the length of the key required for the encryption process is less than the length of the array L, then the counting is restarted from the subscript 0 of the key required for the encryption process represented in array form, and the logical bit operation is iteratively performed on the array elements in the array L that have not been subjected to the logical bit operation, and the final result of the bit operation is used as the body part of the vector tile file after the encryption process.
[0105] In an optional embodiment technical solution, the plurality of groups of encrypted request parameter information are obtained by the user terminal based on nonlinear processing of the plurality of groups of original request parameter information, and any group of original request parameter information among the plurality of groups of original request parameter information includes target tile level information, original horizontal coordinate information X, and original vertical coordinate information Y;
[0106] The user terminal obtains the information based on nonlinear processing of the plurality of groups of original request parameter information, specifically comprising: performing the following processing on the target tile level information, the original horizontal coordinate information X and the original vertical coordinate information Y included in any group of the original request parameter information:
[0107] S1: Determine whether the value L corresponding to the target tile level information is less than a predetermined threshold whose value type is an integer, and the value of the predetermined threshold is in the interval [8, 12], to obtain a second determination result;
[0108] S2: If the second judgment result is no, proceed to step S4; if the second judgment result is yes, calculate the first intermediate parameter s, wherein the calculation formula of the first intermediate parameter s is s=2^Z;
[0109] S3: Determine whether the original horizontal coordinate information X satisfies the following judgment formula: X>=s||X<0, and obtain a third judgment result; if the third judgment result is yes, set the value of the original horizontal coordinate information X to new1X=(X+s)%s; if the third judgment result is no, enter step S4;
[0110] S4: define a second intermediate parameter d and a third intermediate parameter e, wherein d=floor(Z / 2), e=Zd; update the value of the second intermediate parameter according to the following formula to obtain the second intermediate parameter after the value is updated: newd=((1<<d)-1)<<e; update the value of the third intermediate parameter according to the following formula to obtain the third intermediate parameter after the value is updated: newe=(1<<e)-1;
[0111] The value of the original horizontal coordinate information X is calculated and set to new2X=(new1X&d)|(Y&e) according to the following formula;
[0112] The value of the original horizontal coordinate information Y is calculated and set to newY=(Y&d)|(new1X&e) according to the following formula;
[0113] The value represented by the symbol new2X is used as the value of the original horizontal coordinate information X after the nonlinear processing, and the value represented by the symbol newY is used as the value of the original vertical coordinate information Y after the nonlinear processing.
[0114] like Figure 2 As shown, Figure 2 The present invention provides a schematic diagram of a flow chart of encrypting the coordinate information of each map point in the target vector tile data in a method for encrypting vector tile data provided by an embodiment of the present invention. Figure 2 The method aims at ensuring that when a user terminal sends a request for obtaining vector tile data to a service platform, the request itself is encrypted by the user terminal, thereby ensuring data security at the source.
[0115] According to the above process, the request parameter change example is as follows:
[0116]
[0117] In this solution, tiles are requested according to the calculated parameters. If the original tile address is not known, the real tile data cannot be parsed. The internally defined parameters s and z can be adjusted according to different situations.
[0118] The following is an illustrative example of a method for encrypting vector tile data provided by the present invention.
[0119] like Figure 3 As shown, Figure 3 A file encryption flow chart of generating an encrypted vector tile file for sending to a user terminal in a method for encrypting vector tile data provided in an embodiment of this specification, the Figure 3 Logically, it can be divided into the following parts: defining file header information, determining whether to encrypt the main body of the vector tile file, performing data deflection on the main body of the vector tile file, generating a key for encrypting the main body of the vector tile file, encrypting the main body of the vector tile file based on the generated key, and performing splicing operations to generate a vector tile file sent to the user terminal.
[0120] Herein, referring to the previous content, the previous part records: generating a file header corresponding to a vector tile file may specifically include:
[0121] The file header part is set to include a signature sub-part, an encryption method sub-part, a version number sub-part and a description information sub-part; it is determined whether the signature length of the signature sub-part contained in the file header generated by the service platform by default is less than 20 bytes, and if it is less than 20 bytes, the header of the part of the signature sub-part generated by default that is less than 20 bytes is filled with zeros to obtain a filled signature sub-part;
[0122] Setting the encryption mode sub-part with a length of two bytes, dividing the encryption mode sub-part with a length of two bytes into four sub-segments including a first sub-segment, a second sub-segment, a third sub-segment and a fourth sub-segment, wherein the length of each of the four sub-segments is four bits;
[0123] The binary value of the first sub-segment is used to indicate whether to encrypt the body part of the vector tile file, wherein the first three bits of the first sub-segment are filled with zeros, and if the fourth bit of the first sub-segment is set to 1, it indicates that the body part of the vector tile file is encrypted, and if it is set to 0, the body part of the vector tile file is not encrypted;
[0124] The decimal value of the second sub-segment is used to indicate whether to perform data deflection on the body part of the vector tile file, wherein if the decimal value of the second sub-segment is set to 1, it indicates that the data deflection is not performed on the body part of the vector tile file; if the decimal value of the second sub-segment is set to 2, it indicates that the data deflection is performed on the body part of the vector tile file in a data inversion manner; if the decimal value of the second sub-segment is set to 3, it indicates that the data deflection is performed on the body part of the vector tile file in a proximity exchange manner; if the decimal value of the second sub-segment is set to an integer value between the interval [4,9], it is a reserved type; then the left side of the part of the binary representation of the second sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0125] The decimal value corresponding to the third sub-segment is used to indicate whether to perform a logical bit operation on the body part of the vector tile file; wherein, if the decimal value corresponding to the third sub-segment is 0 or 1, it indicates that the logical bit operation is not performed on the body part of the vector tile file, and if the decimal value corresponding to the third sub-segment is between 2 and 9, it indicates that the logical bit operation is performed on the body part of the vector tile file; the decimal value corresponding to the third sub-segment is used to indicate the key length of the key required for encrypting the body part of the vector tile file; then the left side of the part of the binary representation of the third sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits;
[0126] The decimal value corresponding to the fourth sub-segment is used to represent the position of the flag bit of the key required to encrypt the main body of the vector tile file, and then the part of the binary representation of the fourth sub-segment that is less than four bits is padded on the left with 0 to form a binary representation with a length of four bits.
[0127] Here are some examples to illustrate some of the above contents:
[0128] The file header information Header is defined in the technical solution of the embodiment of the present application. The file header consists of 4 parts, including signature, encryption method, version and description information. The signature part includes 20 bytes, the encryption method part includes 2 bytes, the version number part includes 4 bytes, and the length of the description information part is variable.
[0129] The length of the signature field is fixed at 20 bytes, which is used to indicate the data publisher and other related information. If the signature information is less than 20 bytes long, 0 can be used to fill it to meet the fixed length requirement.
[0130] The encryption method field consists of 4 parts, each of which has the same length, a total of 2 bytes, a total of 16 bits, each part occupies 4 bits, and 0 is added on the left. Each part in the description is used to refer to the terms "first sub-segment", "second sub-segment", "third sub-segment" or "fourth sub-segment" mentioned above.
[0131] The first sub-segment is used to indicate whether the original file is to be encrypted. 1 indicates encryption, and 0 indicates no encryption. The second sub-segment indicates whether to deflect the bits data and the deflection method. Possible values are 1 (no deflection), 2 (data inversion), 3 (adjacent exchange), etc. 4 to 9 are reserved types. The third sub-segment indicates whether to perform logical bit operations and the key length used for bit operations. Among them, 0 and 1 indicate no logical bit operations, 2 to 9 indicate bit operations, and represent different key lengths. The fourth sub-segment is used to represent the position of the key flag bit. 0 indicates that the 0th bit is the flag bit, 1 indicates that the first bit is the flag bit, and so on. The version number field is 4 bytes long and is used to indicate the version information of the file, which can help ensure the compatibility and identification of the file. The description information field is variable length and is used to store custom file description content. This part can contain any necessary information related to the file to provide more context and explanation.
[0132] The next step is to determine whether to encrypt the main body of the vector tile file. As mentioned above, the first sub-segment is used to indicate whether the original file is to be encrypted. After determining that encryption is to be performed, the operation of encrypting the main body of the file as described in the next paragraph can be performed.
[0133] The following describes the encrypted content of the main body of the vector tile file:
[0134] (1) The encryption method of the main text is defined by the second part of the header file, which includes three parts: 1. Deflection method; 2. Original file encryption method; 3. Logical bit operation.
[0135] (2) Vector tile encryption
[0136] The encrypted target vector tile data is encoded into a binary vector tile file based on the binary encoding format Geobuf, and the binary vector tile file is used as the main body of the vector tile file; wherein, in the process of generating the binary vector tile file based on the binary encoding format Geobuf, the field writing order is defined based on a custom label order, and the custom label order is different from the default field writing order of the binary encoding format Geobuf.
[0137] Specifically, the current generation rules of vector tile files are all based on Geobuf writing. When defining field writing, the default label 1 represents the writing of attribute KEY information, 4 represents the data type FeatureCollection, 5 represents the Feature type, and 6 represents the Geometry type. When writing, the write label can be reversed to 1 for Geometry type, 4 for Feature type, and 5 for FeatureCollection type. 6 represents the KEY information set. This change will not cause a major intrusion on the file organization form, which not only guarantees the compression ratio of data writing, but also because of the custom label order, when decoding the data, if the label meaning is unknown, the data cannot be restored.
[0138] After the first round of encryption mentioned above, assume that the binary representation of the vector file is as follows: the result is set to a one-dimensional array L with a length of N, and its content is represented by an array as [159, 92, 233, 62, 217, 82, 207, 224, 34, 222, 155, 161, 188, 32, 95, 118, 178].
[0139] (3) Deflection: This part is used to illustrate the content of "deflecting data on the main body of the vector tile file" mentioned above with a practical example.
[0140] After the first round of encryption of the text content in method 1, the array L is deflected twice. The deflection method can be defined as needed:
[0141] 1) If the decimal value of the second sub-segment is 2, it means that the order of the characters is reversed. The data subscript of array L is 0-(n-1), then the n-1 bit is swapped with the 0 bit, the n-2 bit is swapped with the 1 bit, and so on. In this deflection mode, the deflection result of array L is [178,118,95,32,188,161,155,222,34,224,207,82,217,62,233,92,159].
[0142] 2) If the decimal value of the second sub-segment is 3, it means that the positions of adjacent characters are reversed, and the data subscript of the array L is 0-(n-1).
[0143] Then 0 and 1 exchange data positions, 2 and 3 exchange data positions, and so on. In this deflection mode, the deflection result of array L is:
[0144] [92,159,62,233,82,217,224,207,222,34,161,155,32,188,118,95,178].
[0145] (4) Obtaining the encryption key
[0146] The key definition rules are obtained from the third and fourth sub-segments of the encryption method part of the file header. As mentioned above, "the data with the subscript P+N*I in the array L is filled into the corresponding position I in the array M to obtain the assigned array M". The array M is used as the key for encrypting the text part of the vector tile file. For example:
[0147] ① Determine the key array as M, length as N, sign as P, and symbol I represents the subscript position of array M.
[0148] ② In order to reduce the risk of key transmission, the key is obtained from the existing array L.
[0149] ③Define the flag bit. The flag bit position indicates the location where the key 0 exists. The key must contain the 0 flag position.
[0150] The meaning of subscript
[0151] ④ Take the data with the subscript P+N*I in array L and fill it into the corresponding position I in array M until M is filled. Assume N=4, P=2; then M[2] is 0, M=[62,224,0,118].
[0152] (5) Logical bit operations
[0153] ① Encrypt L based on the key M.
[0154] ② Take the 0th bit of M and encrypt the 0th bit of L, take the 1st bit of M and encrypt the 1st bit of L, take the 3rd bit of M and encrypt the 3rd bit of L, take the 4th bit of M, and if the number of K bits is insufficient, start over from 0 and encrypt the 4th bit of L, and so on, until all the bits of the array are encrypted. The encryption result of the above example is [98,127,62,159,108,57,224,185,224,194,161,237,30,92,118,41,140]. All bitwise forms are acceptable.
[0155] (6)Data combination.
[0156] The Foot content is calculated based on the Header length. Foot records the Header length information, and the insufficient digits are padded with 0. The final returned data structure is as follows: File = Header + L + Foot. This can be done by Figure 8 for display.
[0157] 4) Client Decryption
[0158] Currently, most data encryption and decryption solutions on the client side are run in JS. Since JS is an interpreted execution language, its performance is relatively low. It is not efficient enough for complex encryption algorithms. At the same time, since JS code is public, it is easy to be decompiled and tampered with.
[0159] Therefore, to ensure security, a new browser technology, WebAssembly, is used to ensure its security and efficiency. WebAssembly is a compiled bytecode that is difficult to reverse engineer and has close native performance, making it suitable for computationally intensive tasks such as encryption algorithms and spatial operations.
[0160] The request parameter encryption in step 2 is implemented using WebAssembly technology. WebAssembly obtains a series of tile addresses through the interface range, encrypts the tile addresses to obtain the encrypted addresses, and sends them to the background for data request. After the background returns the data, the decryption operation is performed in WebAssembly. The tile data decryption process is as follows.
[0161] The instructions are as follows: (1) Convert the file stream information into an array with a length of K; (2) Read the last 10 bytes of data at the end of the file to obtain the file header length of M; (3) Obtain the header file; (4) Parse the data header, extract the first 20 bits, and obtain the data signature information; (5) Parse the encryption bit 21 to obtain the data encryption method, and the 22nd bit to obtain the key identification bit position.
[0162] For example, the result obtained for the 21st bit is 135, and the result obtained for the 22nd bit is 2; this means that the original file has been encrypted, and adjacent exchange is used, and bit operations are performed. The bit operation key length is 5, and the second bit is the flag bit.
[0163] 1) Get the text content
[0164] a) Extract the content between [M, KM-10] from the file to represent the data body content.
[0165] 2) Get the key file
[0166] a) Determine that the key array is M, the length is N=5, the flag is P=2, and I represents the subscript position of the array M.
[0167] b) Take the subscript P+N*I in array L and fill the corresponding position I in array M until M is filled.
[0168] a) For example: N = 4, P = 2; then N[2] is 0M = [62, 224, 0, 118].
[0169] 3) Text analysis
[0170] a) Perform decryption operation according to the encryption step (5).
[0171] b) Perform deflection operation according to encryption step (3).
[0172] c) Decrypt the data using the vector tile encryption method in encryption step (2).
[0173] d) After completing the above steps, the complete tile data can be obtained.
[0174] 4) Analysis of real tile data
[0175] a) Based on the request parameter encryption algorithm, restore the real tile number and parse the real data in the tile.
[0176] According to the scheme mentioned in the previous paragraph, the browser implements request algorithm encryption and pbf decryption based on WebAssembly, and the operation method runs in the sandbox. The use of bytecode form and optimized obfuscation mechanism, combined with sandbox execution, makes decryption extremely difficult, more secure, and more efficient.
[0177] Those skilled in the art can understand that the accompanying drawings are only schematic diagrams of an embodiment, and the modules or processes in the accompanying drawings are not necessarily required to implement the present invention.
[0178] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, rather than to limit it. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the aforementioned embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for encrypting vector tile data, applied to a service platform storing vector tile data, characterized in that: The method comprises: Receiving a request for obtaining vector tile data sent by a user terminal, wherein the request for obtaining vector tile data carries several sets of encrypted request parameter information, and any set of request parameter information in the several sets of encrypted request parameter information includes target tile level information, encrypted horizontal coordinate information, and encrypted vertical coordinate information; In response to the request for obtaining the vector tile data, determining the target vector data requested by the user terminal based on the plurality of groups of encrypted request parameter information; For the target vector data, encrypting each map point coordinate information in the target vector data based on the target tile level information to obtain encrypted target vector data; Generate a file header part of the vector tile file, so that the service platform generates a body part of the encrypted vector tile file based on the encrypted target vector data and the file header part; The file header part of the generated vector tile file specifically includes: The file header part is set to include a signature sub-part, an encryption method sub-part, a version number sub-part and a description information sub-part; it is determined whether the signature length of the signature sub-part contained in the file header generated by the service platform by default is less than 20 bytes, and if it is less than 20 bytes, the header of the part of the signature sub-part generated by default that is less than 20 bytes is filled with zeros to obtain a filled signature sub-part; Setting the encryption mode sub-part with a length of two bytes, dividing the encryption mode sub-part with a length of two bytes into four sub-segments including a first sub-segment, a second sub-segment, a third sub-segment and a fourth sub-segment which are adjacent to each other, and each of the four sub-segments has a length of four bits; The binary value of the first sub-segment is used to indicate whether to encrypt the body part of the vector tile file, wherein the first three bits of the first sub-segment are filled with zeros; if the fourth bit of the first sub-segment is set to 1, it indicates that the body part of the vector tile file is encrypted, and if it is set to 0, the body part of the vector tile file is not encrypted; The decimal value of the second sub-segment is used to indicate whether to perform data deflection on the body part of the vector tile file, wherein if the decimal value of the second sub-segment is set to 1, it indicates that the data deflection is not performed on the body part of the vector tile file; if the decimal value of the second sub-segment is set to 2, it indicates that the data deflection is performed on the body part of the vector tile file in a data inversion manner; if the decimal value of the second sub-segment is set to 3, it indicates that the data deflection is performed on the body part of the vector tile file in a proximity exchange manner; if the decimal value of the second sub-segment is set to an integer value between the interval [4,9], it is a reserved type; then the left side of the part of the binary representation of the second sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits; The decimal value corresponding to the third sub-segment is used to indicate whether to perform a logical bit operation on the body part of the vector tile file; wherein, if the decimal value corresponding to the third sub-segment is 0 or 1, it indicates that no logical bit operation is performed on the body part of the vector tile file; if the decimal value corresponding to the third sub-segment is between the values 2 and 9, it indicates that a logical bit operation is performed on the body part of the vector tile file; the decimal value corresponding to the third sub-segment is used to indicate the key length of the key required for encrypting the body part of the vector tile file; then the left side of the part of the binary representation of the third sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits; The decimal value corresponding to the fourth sub-segment is used to represent the position of the flag bit of the key required for encrypting the text portion of the vector tile file, and then the left side of the part of the binary representation of the fourth sub-segment that is less than four bits is padded with 0 to form a binary representation with a length of four bits; Generate a signature sub-portion that meets the processing requirements and an encryption mode sub-portion that meets the processing requirements in the file header portion according to the processing requirements for the body portion of the vector tile file, then generate the version number sub-portion and the description information sub-portion, and splice the signature sub-portion that meets the processing requirements, the encryption mode sub-portion that meets the processing requirements, the version number sub-portion and the description information sub-portion to obtain the file header portion; The generating the body part of the encrypted vector tile file based on the encrypted target vector data and the file header part specifically includes: Encoding the encrypted target vector data into a binary vector tile file based on a binary encoding format Geobuf, and using the binary vector tile file as a body part of the vector tile file; wherein, in the process of generating the body part of the binary vector tile file based on the binary encoding format Geobuf, defining a field writing order based on a custom tag order, and the custom tag order is different from a default field writing order of the binary encoding format Geobuf; Determining whether to perform data deflection on the text part of the vector tile file based on the decimal value of the second sub-segment, to obtain the processed text part of the vector tile file; Determining whether to encrypt the body portion of the processed vector tile file based on the binary value of the first sub-segment, to obtain a first determination result; If the first judgment result is no, then the body part of the processed vector tile file is not further encrypted; If the first judgment result is yes, then generating a key required for performing the encryption processing on the content of the text part of the processed vector tile file based on the content of the text part of the processed vector tile file, and performing encryption processing on the content of the text part of the processed vector tile file based on the key required for encryption processing to obtain the encrypted text part of the vector tile file; splicing the file header part and the body part of the encrypted vector tile file to generate an encrypted vector tile file sent to the user terminal; The encrypted vector tile file is sent to the user terminal, so that the user terminal decrypts the acquired encrypted vector tile file to obtain the target vector data.
2. The method for encrypting vector tile data according to claim 1, characterized in that: The target vector data is encrypted based on the target tile level information on each map point coordinate information in the target vector data to obtain the encrypted target vector data, specifically including: The value corresponding to the target tile level information is marked as symbol n, and the maximum longitude and latitude offset delta_max(m) is defined based on the following formula: delta_max(m)=M±a·b m ·cos(θ) Wherein, symbol M represents a preset reference value, symbol a represents a first predetermined constant, symbol b represents a second predetermined constant, and symbol θ represents an angle corresponding to the deflection motion direction of the target vector data; A deflection amount is added to the horizontal and vertical coordinates of each map point in the target vector data, and the numerical value of the deflection amount is within the range of [-delta_max(m),delta_max(m)]*cos(θ), thereby obtaining the encrypted target vector data.
3. The method for encrypting vector tile data according to claim 1, characterized in that: The step of generating a key required for performing the encryption process on the content of the body part of the processed vector tile file based on the content of the body part of the processed vector tile file specifically includes: Mark the decimal value corresponding to the third sub-segment as symbol N, and mark the decimal value corresponding to the fourth sub-segment as symbol P; Construct an array M, set the length of the array M to the decimal value N corresponding to the third subsegment, and mark the subscript of the array M with the symbol I; The body part of the processed vector tile file is represented as an array L in decimal, starting from subscript 0 to subscript N-1, and the data with subscript P+N*I in the array L are filled into the corresponding position I in the array M one by one to obtain the array M after assignment; The array element value with the subscript P in the assigned array M is assigned a value of 0, so as to obtain the key required for the encryption process represented in the form of an array.
4. The method for encrypting vector tile data according to claim 3, characterized in that: The encrypting the content of the body part of the processed vector tile file based on the key required for the encryption process to obtain the body part of the encrypted vector tile file specifically includes: A logical bit operation is performed on the key required for the encryption process represented in array form and the array elements with the same subscript in the content L of the body part of the processed vector tile file to obtain a result after the bit operation; wherein, if the length of the key required for the encryption process is less than the length of the array L, then the counting is restarted from the subscript 0 of the key required for the encryption process represented in array form, and the logical bit operation is iteratively performed on the array elements in the array L that have not been subjected to the logical bit operation, and the final result of the bit operation is used as the body part of the vector tile file after the encryption process.
5. The method for encrypting vector tile data according to claim 1, characterized in that: The several groups of encrypted request parameter information are obtained by the user terminal based on performing non-linear processing on the several groups of original request parameter information, and any one of the several groups of original request parameter information includes target tile level information, original abscissa information X, and original ordinate information Y; The user terminal is obtained based on performing non-linear processing on the several groups of original request parameter information, specifically including: performing the following processing on the target tile level information, original abscissa information X, and original ordinate information Y included in any one of the several groups of original request parameter information: S1: Determine whether the value L corresponding to the target tile level information is less than a predetermined threshold with an integer numerical type, and the numerical size of the predetermined threshold is in the interval [8, 12], to obtain a second determination result; S2: If the second judgment result is no, proceed to step S4; if the second judgment result is yes, calculate the first intermediate parameter s, wherein the calculation formula of the first intermediate parameter s is s=2 ^ Z; S3: Determine whether the original abscissa information X satisfies the following judgment formula: X >= s || X < 0, to obtain a third determination result; if the third determination result is yes, set the numerical size of the original abscissa information X to new1X = (X + s) % s, if the third determination result is no, then enter step S4; S4: Define a second intermediate parameter d and a third intermediate parameter e, where d = floor(Z / 2), e = Z - d; update the numerical size of the second intermediate parameter according to the following formula to obtain the second intermediate parameter newd with the updated numerical size = ((1 << d) - 1) << e; update the numerical size of the third intermediate parameter according to the following formula to obtain the third intermediate parameter newe with the updated numerical size = (1 << e) - 1; Calculate and set the numerical size of the original abscissa information X to new2X = (new1X & d) | (Y & e) according to the following formula; Calculate and set the numerical size of the original ordinate information Y to newY = (Y & d) | (new1X & e) according to the following formula; Use the value represented by the symbol new2X as the value after non-linear processing of the original abscissa information X, and use the value represented by the symbol newY as the value after non-linear processing of the original ordinate information Y.