Encryption method, decryption method, device, equipment, storage medium and program product
By determining the disturbance level in the three-dimensional model data transmission and generating an encryption matrix, the three-dimensional model data is encrypted, and the problem of data transmission security is solved, and the efficient and secure data transmission is achieved.
Patent Information
- Application Number
- CN202411995294.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2025-04-18
- Estimated Expiration
- 2044-12-31
AI Technical Summary
During the process of data transmission of three-dimensional model, how to improve the security of data to prevent malicious access or tampering.
By determining the perturbation level of data requests, a perturbation matrix is generated for encryption, and the vertex data of the three-dimensional model data is encrypted to generate the encrypted three-dimensional model data. At the same time, the decryption key is returned so that the requesting side can decrypt the data.
Improve the security of three-dimensional model data during transmission and prevent data from being maliciously accessed or tampered with.
Smart Images

Figure CN119853996A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data processing technology, and in particular to an encryption method, a decryption method, a device, a equipment, a storage medium and a program product. Background Art
[0002] The 3D model reproduces the topography, buildings and natural landscapes through high-precision spatial data, allowing users to conduct spatial analysis, simulation exercises and decision-making assistance in a virtual environment. Moreover, the high-precision geographic information data embedded in the 3D model (such as the 3D geographic information model), such as coordinate points, elevation values, texture information, etc., not only has extremely high commercial value, but also involves data security and personal privacy in some cases. If these data are maliciously accessed or tampered with, it may cause serious security risks.
[0003] Therefore, how to improve the security of transmission during three-dimensional data transmission has become an urgent problem to be solved. Summary of the invention
[0004] The embodiments of the present application provide an encryption and decryption method, apparatus, device, storage medium and program product, which can improve the security of three-dimensional model data during transmission.
[0005] In a first aspect, the present application provides an encryption method, the method comprising:
[0006] For a current data request, determine the three-dimensional model data requested by the current data request;
[0007] Obtaining a change between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request;
[0008] Based on the variation, determining a perturbation level for the current data request, and determining a perturbation matrix for encryption based on the perturbation level;
[0009] Based on the perturbation matrix, encrypt multiple vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data;
[0010] The encrypted 3D model data is returned to the requesting end of the current data request.
[0011] In one of the embodiments, obtaining a change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request includes: obtaining a first projection area corresponding to a first viewing frustum corresponding to the three-dimensional model data requested by the current data request; and obtaining a second projection area corresponding to a second viewing frustum corresponding to the three-dimensional model data requested in the historical data request; determining an area change of the first projection area relative to the second projection area as a first change; and determining an area change rate of the first projection area relative to the second projection area as a second change; based on the first change and the second change, determining a change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request.
[0012] In one of the embodiments, obtaining the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request also includes: determining the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum as a third change; obtaining historical disturbance levels for multiple historical data requests, and determining a disturbance jump threshold based on the multiple historical disturbance levels, and using the disturbance jump threshold as a fourth change; determining the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request based on the first change, the second change, the third change, and the fourth change.
[0013] In one embodiment, determining the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum as the third change includes: obtaining a first position of each of four vertices of the bottom surface of the first viewing frustum, and obtaining a second position of each of four vertices of the bottom surface of the second viewing frustum; determining the position change between vertices at corresponding positions based on the first position and the second position; determining an average value of the four position changes as the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum, and using the absolute position change as the third change.
[0014] In one of the embodiments, determining a disturbance level for a current data request based on a change amount includes: determining a first value based on a first change amount and a first preset disturbance function; determining a second value based on a second change amount and a second preset disturbance function; determining a third value based on a third change amount and a third preset disturbance function; determining a fourth value based on a fourth change amount and a fourth preset disturbance function; determining weights corresponding to the first value, the second value, the third value, and the fourth value, respectively; determining the disturbance level for the current data request based on the first value, the second value, the third value, the fourth value, and their respective corresponding weights.
[0015] In one of the embodiments, determining a perturbation matrix for encryption based on a perturbation level includes: determining a target constant based on a preset function and an initial key from a requesting end; determining a perturbation amplitude based on the perturbation level, the target constant, and a preset adjustment coefficient; and determining a perturbation matrix for encryption based on the perturbation amplitude.
[0016] In one of the embodiments, a disturbance matrix for encryption is determined based on a disturbance amplitude, including: determining position disturbance amounts corresponding to multiple vertices of three-dimensional model data based on the disturbance amplitude; using a matrix composed of position disturbance amounts corresponding to multiple vertices as a disturbance matrix for encryption; encrypting multiple vertex data of the three-dimensional model data requested by a current data request based on the disturbance matrix to obtain encrypted three-dimensional model data, including: determining the sum of coordinate positions of multiple vertices in the three-dimensional model data requested by the current data request and the corresponding position disturbance amounts in the disturbance matrix to obtain new coordinate position information of the multiple vertices; determining the encrypted three-dimensional model data based on the new coordinate position information of the multiple vertices.
[0017] In one of the embodiments, the current data request includes an initial key for encryption; the method further includes: generating a decryption key based on the disturbance level and the initial key; returning the decryption key to the requesting end of the current data request, so that the requesting end decrypts the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0018] In a second aspect, the present application provides a decryption method, the method comprising:
[0019] Sending a current data request, where the current data request is used to obtain the three-dimensional model data and includes an initial key for encryption;
[0020] Receive the encrypted three-dimensional model data and decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level;
[0021] Based on the decryption key, the encrypted three-dimensional model data is decrypted to obtain the three-dimensional model data.
[0022] In a third aspect, the present application provides a three-dimensional data encryption device, the device comprising:
[0023] A determination module, used for determining the three-dimensional model data requested by the current data request;
[0024] An acquisition module, used to acquire a change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request;
[0025] A determination module, configured to determine a disturbance level for a current data request based on the variation, and to determine a disturbance matrix for encryption based on the disturbance level;
[0026] An encryption module, used for encrypting multiple vertex data of the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain encrypted three-dimensional model data;
[0027] The sending module is used to return the encrypted three-dimensional model data to the request end of the current data request.
[0028] In a fourth aspect, the present application provides a three-dimensional data decryption device, the device comprising:
[0029] A sending module, used for sending a current data request, the current data request is used for obtaining three-dimensional model data, and the current data request includes an initial key for encryption;
[0030] A receiving module, used for receiving the encrypted three-dimensional model data and a decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level;
[0031] The decryption module is used to decrypt the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0032] In a fifth aspect, the present application provides a computer device, including a processor and a memory, wherein the memory stores a computer program; when the processor executes the computer program, the steps in the method provided in the first aspect or the second aspect are implemented.
[0033] In a sixth aspect, the present application further provides a computer-readable storage medium having a computer program stored thereon, which implements the steps in the method provided in the first aspect or the second aspect when the computer program is executed by a processor.
[0034] In a seventh aspect, the present application further provides a computer program product, including a computer program, which, when executed by a processor, implements the steps in the method provided in the first aspect or the second aspect.
[0035] The above encryption method, decryption method, device, equipment, storage medium and program product, the requesting end can send a current data request to the responding end, and correspondingly, the responding end can receive the current data request, the current data request is used to obtain three-dimensional model data, and the current data request includes an initial key for encryption; the responding end determines the three-dimensional model data requested by the current data request for the current data request; the responding end obtains the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the responding end determines the disturbance level for the current data request based on the change, and determines the disturbance matrix for encryption based on the disturbance level; the responding end determines the disturbance level for the current data request based on the disturbance matrix The multiple vertex data of the three-dimensional model data requested by the previous data request are encrypted to obtain the encrypted three-dimensional model data; the responding end returns the encrypted three-dimensional model data to the requesting end of the current data request, and accordingly, the requesting end receives the encrypted three-dimensional model data from the responding end; the requesting end also receives the decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the requesting end decrypts the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data. Using this method, the responding end can determine the disturbance level for the current data request based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request, and determine the disturbance matrix used for encryption based on the disturbance level, and then, based on the disturbance matrix, encrypt the three-dimensional model data requested by the current data request to obtain the encrypted three-dimensional model data, and finally, send the encrypted three-dimensional model data to the requesting end, so that the security of the three-dimensional model data during transmission can be improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0036] In order to more clearly illustrate the technical solutions in the embodiments of the present application or related technologies, the drawings required for use in the embodiments of the present application or related technical descriptions will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other related drawings can be obtained based on these drawings without paying creative work.
[0037] Figure 1 It is a structural diagram of a communication system provided in an embodiment of the present application;
[0038] Figure 2 It is a flowchart of an encryption method provided in an embodiment of the present application;
[0039] Figure 3It is a flowchart of a decryption method provided in an embodiment of the present application;
[0040] Figure 4 It is a flowchart of a three-dimensional model data encryption and decryption method provided in an embodiment of the present application;
[0041] Figure 5 It is a structural schematic diagram of an encryption device provided in an embodiment of the present application;
[0042] Figure 6 It is a structural schematic diagram of a decryption device provided in an embodiment of the present application;
[0043] Figure 7 It is a structural diagram of a computer device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0044] In order to make the purpose, technical solution and advantages of the present application more clearly understood, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application.
[0045] See also Figure 1 , Figure 1 Schematic diagram of a communication system provided by an embodiment of the present application. Figure 1 As shown, the communication system includes a request end 101 and a response end 102. The request end 101 and the response end 102 perform data transmission via a network.
[0046] Among them, the responding end 102 may first receive a current data request from the requesting end 101, and the current data request is used to request to obtain the three-dimensional model data; secondly, the responding end 102 may determine the disturbance level for the current data request based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request, and determine the disturbance matrix for encryption based on the disturbance level; based on the disturbance matrix, encrypt multiple vertex data of the three-dimensional model data requested by the current data request to obtain the encrypted three-dimensional model data; then, the responding end 102 may send the encrypted three-dimensional model data to the requesting end 101, and correspondingly, the requesting end 101 receives the encrypted three-dimensional model data from the responding end 102; the requesting end 101 also receives a decryption key from the responding end 102, and the decryption key is determined by the responding end 102 based on the disturbance matrix; then, the requesting end 101 may decrypt the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional data model. In this way, the security of the three-dimensional model data during transmission can be improved.
[0047] It should be noted that the beneficial effects brought about by the embodiments of the present application or the technical problems solved are not limited to this one, but may also include other implicit or related problems. For details, please refer to the description of the following embodiments.
[0048] Optionally, both the request end 101 and the response end 102 may be terminal devices, which may include but are not limited to various personal computers, laptops, smart phones, tablet computers, Internet of Things devices and portable wearable devices. The Internet of Things devices may be smart speakers, smart TVs, smart air conditioners, smart car devices, projection devices, etc. Portable wearable devices may be smart watches, smart bracelets, head-mounted devices, etc. Head-mounted devices may be virtual reality (VR) devices, augmented reality (AR) devices, smart glasses, etc.
[0049] The following is a detailed description of the 3D model data encryption and decryption method provided by the present application with reference to the accompanying drawings. The following specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described in detail in some embodiments.
[0050] See also Figure 2 , Figure 2 is a flow chart of an encryption method provided in an embodiment of the present application. The method can be applied to a responding end (e.g., Figure 1 102 in the response end). Figure 2 As shown, the method may include but is not limited to the following steps:
[0051] S201. For a current data request, determine the three-dimensional model data requested by the current data request.
[0052] The current data request is used to request to obtain three-dimensional model data.
[0053] Among them, 3D model data refers to the data information corresponding to the 3D model. Among them, the 3D model is a polygonal representation of an object, usually displayed by a computer or other video device. The displayed object can be a real-world entity or a fictional object. Anything that exists in the physical nature can be represented by a 3D model.
[0054] Exemplarily, assuming that the current data request is used to request to obtain the three-dimensional model data corresponding to position A, the responding end can determine the three-dimensional model data corresponding to position A.
[0055] In an optional implementation, before step S201, the responding end may also receive a current data request from the requesting end.
[0056] For example, assuming that the user wants to obtain the three-dimensional model data corresponding to position A, the user can input a start operation for the "map" application in the user interface of the requesting end. The start operation can be a key operation, a voice operation, or a touch operation, etc., which is not limited here. At this time, the requesting end can detect the start operation input for the "map" application and open the map. Afterwards, the requesting end can detect the user operation for position A in the map displayed on the user interface. The user operation is used to indicate the acquisition of the three-dimensional model data corresponding to position A. At this time, the requesting end can send a current data request to the responding end. Correspondingly, the responding end receives the current data request from the requesting end, and the current data request is used to request the acquisition of the three-dimensional model data of position A.
[0057] S202: Obtain a change between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request.
[0058] The historical data request refers to the data request received from the requesting end before the responding end receives the current data request. The current data request and the historical data request come from the same requesting end. For example, suppose the responding end receives the current data request sent by the requesting end 1 at 10:40 on December 27, 2024. Prior to this, the responding end received data requests from the requesting end 1 at 10:35 on December 27, 2024, 10:30 on December 27, 2024, and 10:20 on December 27, 2024, respectively. In this case, the historical data request refers to the data request from the requesting end 1 received by the responding end at 10:35 on December 27, 2024.
[0059] In an optional implementation, the amount of transformation between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request can be determined by the responding end based on the content displayed by the viewing frustum corresponding to the three-dimensional model data requested by the current data request and the content displayed by the viewing frustum corresponding to the three-dimensional model data requested by the historical data request. The viewing frustum refers to a cone of a visible area with the coordinate origin as the optical center in the camera coordinate system. Optionally, the above-mentioned amount of change can be one or more, which is not limited here.
[0060] S203: Determine a disturbance level for the current data request based on the change amount, and determine a disturbance matrix for encryption based on the disturbance level.
[0061] In an optional implementation, the responding end determines the disturbance level for the current data request based on the variation, which may be to input the variation into a preset disturbance level determination model to obtain the disturbance level for the current data request. Optionally, the preset disturbance level determination model may include one or more disturbance functions, and each variation corresponds to a disturbance function. For example, assuming that there are 4 variations, the preset disturbance level determination model includes 4 disturbance functions; assuming that there are 5 variations, the preset disturbance level determination model includes 5 disturbance functions. Optionally, the disturbance level may include low-level disturbances, intermediate disturbances, and high-level disturbances, etc., and may also include primary disturbances, secondary disturbances, tertiary disturbances, and quaternary disturbances, etc., which are not limited here; wherein different disturbance levels correspond to different disturbance values.
[0062] In an optional implementation, the responding end determines the perturbation matrix for encryption based on the perturbation level, and the perturbation level may be input into a preset perturbation matrix determination model to determine the perturbation matrix for encryption. The number of elements in the perturbation matrix is the same as the number of multiple vertices of the three-dimensional model data requested by the current data request, and the data dimension of each element in the perturbation matrix corresponds one-to-one to the data dimension of each vertex in the multiple vertices of the three-dimensional model data requested by the current data request.
[0063] S204 , encrypting multiple vertex data of the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain encrypted three-dimensional model data.
[0064] In an optional implementation, the responding end encrypts the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain the encrypted three-dimensional model data. This may be by utilizing a preset encryption strategy and encrypting multiple vertex data of the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain the encrypted three-dimensional model data.
[0065] S205: Return the encrypted three-dimensional model data to the requesting end of the current data request.
[0066] In an embodiment of the present application, the responding end can determine the three-dimensional model data requested by the current data request for the current data request; obtain the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; determine the disturbance level for the current data request based on the change, and determine the disturbance matrix for encryption based on the disturbance level; encrypt the three-dimensional model data requested by the current data request based on the disturbance matrix to obtain the encrypted three-dimensional model data; and return the encrypted three-dimensional model data to the requesting end of the current data request. Using this method, the responding end can determine the disturbance level for the current data request based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request, and determine the disturbance matrix for encryption based on the disturbance level, and then, encrypt the three-dimensional model data requested by the current data request based on the disturbance matrix, and finally, send the encrypted three-dimensional model data to the requesting end, so that the security of the three-dimensional model data during transmission can be improved.
[0067] In an optional embodiment, Figure 2 In the encryption method shown, the responding end obtains the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request, which may include the following steps:
[0068] Step 1: Obtain a first projection area corresponding to a first viewing frustum corresponding to the three-dimensional model data requested in the current data request; and obtain a second projection area corresponding to a second viewing frustum corresponding to the three-dimensional model data requested in the historical data request.
[0069] The viewing frustum refers to a cone of a visible area with the coordinate origin as the optical center in the camera coordinate system.
[0070] In some embodiments, the first projection area and the second projection area may be carried in the current data request.
[0071] In other embodiments, the first projection area may be carried in the current data request, the second projection area may be obtained by the responding end from a database, and the second projection area stored in the database may be determined by the responding end based on a historical data request when receiving a historical data request, wherein the historical data request includes the second projection area.
[0072] Step 2: Determine the area change of the first projection area relative to the second projection area as the first change; and determine the area change rate of the first projection area relative to the second projection area as the second change.
[0073] In some embodiments, the responding end may use the following formula (1) when determining the area change of the first projection area relative to the second projection area.
[0074] (1)
[0075] In formula (1), It represents the change in area; It represents the first projection area; It represents the second projection area.
[0076] In some embodiments, the responding end may use the following formula (2) when determining the area change rate of the first projection area relative to the second projection area.
[0077] (2)
[0078] In formula (1), It represents the rate of change of area; It represents the first projection area; It represents the second projection area.
[0079] Step three: based on the first change amount and the second change amount, determine the change amount between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request.
[0080] That is to say, the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request includes a first change, i.e., the area change of the first projection area relative to the second projection area, and a second change, i.e., the area change rate of the first projection area relative to the second projection area.
[0081] In an optional implementation manner, the responding end obtains the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request, and may further include the following steps:
[0082] Step 1: Determine the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum as the third change.
[0083] In some embodiments, the responding end determines the absolute position change amount between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum as the third change amount, which may include: obtaining a first position of each of the four vertices of the bottom surface of the first viewing frustum, and obtaining a second position of each of the four vertices of the bottom surface of the second viewing frustum; based on the first position and the second position, determining the position change amount between vertices at corresponding positions; determining an average value of the four position change amounts as the absolute position change amount between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum, and using the absolute position change amount as the third change amount.
[0084] In some embodiments, the first position of each of the four vertices of the bottom surface of the first viewing frustum and the second position of each of the four vertices of the bottom surface of the second viewing frustum may be carried in the current data request.
[0085] In other embodiments, the first position of each of the four vertices of the bottom surface of the first viewing frustum may be carried in the current data request; the second position of each of the four vertices of the bottom surface of the second viewing frustum may be obtained by the responding end from a database, and the second position of each of the four vertices of the bottom surface of the second viewing frustum stored in the database may be determined by the responding end based on a historical data request, and the historical data request carries the second position of each of the four vertices of the bottom surface of the second viewing frustum.
[0086] Exemplarily, the first position of each of the four vertices of the bottom surface of the first viewing frustum is , where i=1,2,3,4; the second position of each of the four vertices on the bottom surface of the second viewing frustum is , where i=1,2,3,4.
[0087] Optionally, when the responding end determines the position change amount between vertices at corresponding positions based on the first position and the second position, the following formula (3) may be used.
[0088] (3)
[0089] In formula (3), Represents the first position of the i-th vertex and the second position of the i-th vertex The position change between .
[0090] In an optional implementation, when the responding end determines the average value of the four position changes as the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum, the following formula (4) may be used.
[0091] (4)
[0092] In formula (4), It represents the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum; Represents the first position of the i-th vertex and the second position of the i-th vertex The position change between .
[0093] Step 2: Obtain historical disturbance levels for multiple historical data requests, and determine a disturbance jump threshold based on the multiple historical disturbance levels, and use the disturbance jump threshold as the fourth variation.
[0094] In an optional implementation, the responding end may obtain historical disturbance levels for multiple historical data requests from a database.
[0095] Step three: based on the first change amount, the second change amount, the third change amount and the fourth change amount, determine the change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request.
[0096] That is to say, the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request includes a first change (an area change of the first projection area relative to the second projection area), a second change (an area change rate of the first projection area relative to the second projection area), a third change (an absolute position change between the bottom surface of the first viewing cone and the bottom surface of the second viewing cone), and a fourth change (a disturbance jump threshold).
[0097] In some embodiments, the responding end determines the disturbance level for the current data request based on the change amount, including: determining a first value based on a first change amount and a first preset disturbance function; determining a second value based on a second change amount and a second preset disturbance function; determining a third value based on a third change amount and a third preset disturbance function; and determining a fourth value based on a fourth change amount and a fourth preset disturbance function; determining weights corresponding to the first value, the second value, the third value, and the fourth value, respectively; determining the disturbance level for the current data request based on the first value, the second value, the third value, the fourth value, and their respective corresponding weights.
[0098] From the above, it can be known that the first change is the area change of the first projection area relative to the second projection area; the second change is the area change rate of the first projection area relative to the second projection area; the third change is the absolute position change between the bottom surface of the first viewing cone and the bottom surface of the second viewing cone; the fourth change is the disturbance jump threshold.
[0099] Among them, the first preset disturbance function refers to the disturbance function corresponding to the absolute area change, which can be expressed as ; The second preset disturbance function refers to the disturbance function corresponding to the area change rate, which can be recorded as ; The third preset disturbance function refers to the disturbance function corresponding to the absolute position change, which can be expressed as ; The fourth preset disturbance function refers to the disturbance function corresponding to the disturbance jump threshold, which can be recorded as .
[0100] Optionally, when the responding end determines the disturbance level for the current data request based on the first value, the second value, the third value, the fourth value and their corresponding weights, the following formula (5) may be used.
[0101] (5)
[0102] In formula (5), D represents the disturbance level for the current data request; It means that the first change Input to the first perturbation function The first value obtained in It means that the second change Input to the second perturbation function The second value obtained in It means that the third variable Input to the third perturbation function The third value obtained in It means that the fourth change T jump Input to the fourth perturbation function The fourth value obtained in It represents the weight corresponding to the first value, which can be recorded as the first weight; It represents the weight corresponding to the second value, which can be recorded as the second weight; It represents the weight corresponding to the third value, which can be recorded as the third weight; It represents the weight corresponding to the fourth value, which can be recorded as the fourth weight.
[0103] By adopting this implementation mode, the response end can adjust the disturbance level in real time based on the change amount. When the change amount is large, the disturbance level determined is larger, and the corresponding encryption strength is larger. When the change amount is small, the disturbance level determined is smaller or unchanged, and the corresponding encryption strength is smaller or unchanged. In this way, the flexibility of three-dimensional model data encryption can be improved.
[0104] In an optional embodiment, Figure 2In the encryption method shown, the responding end determines the perturbation matrix used for encryption based on the perturbation level, which may include: determining a target constant based on a preset function and an initial key from the requesting end; determining a perturbation amplitude based on the perturbation level, the target constant and a preset adjustment coefficient; and determining a perturbation matrix used for encryption based on the perturbation amplitude.
[0105] In some embodiments, the initial key may be carried in the current data request. That is, when the responding end receives the current data request, it may determine the initial key based on the current data request.
[0106] In some embodiments, when the responding end determines the disturbance amplitude based on the disturbance level, the target constant and the preset adjustment coefficient, the following formula (6) may be used.
[0107] X=k*D*y(K) (6)
[0108] In formula (6), X represents the disturbance amplitude; k represents the preset adjustment coefficient; D represents the disturbance level; y(K) represents the target constant, where K represents the initial key.
[0109] Optionally, there may be multiple preset adjustment coefficients, so that the response end can determine the most appropriate disturbance amplitude based on the multiple adjustment coefficients, wherein the target value of the disturbance amplitude determined by the response end should be close to a minimum value.
[0110] In some embodiments, the responding end determines a disturbance matrix for encryption based on the disturbance amplitude, which may include: determining position disturbance amounts corresponding to multiple vertices of the three-dimensional model data based on the disturbance amplitude; using a matrix composed of position disturbance amounts corresponding to multiple vertices as a disturbance matrix for encryption; encrypting multiple vertex data of the three-dimensional model data requested by the current data request based on the disturbance matrix to obtain encrypted three-dimensional model data, including: determining the sum of coordinate positions of multiple vertices in the three-dimensional model data requested by the current data request and the corresponding position disturbance amounts in the disturbance matrix to obtain new coordinate position information of the multiple vertices; determining the encrypted three-dimensional model data based on the new coordinate position information of the multiple vertices.
[0111] Exemplarily, the responding end determines the position disturbance amounts corresponding to the multiple vertices of the three-dimensional model data based on the disturbance amplitude, for example: , where i=1,2,3,4; The matrix composed of the position perturbations corresponding to the multiple vertices, that is, the perturbation matrix used for encryption, is, for example, the following formula (7).
[0112] (7)
[0113] In formula (7), R represents the perturbation matrix used for encryption; It represents the position disturbance corresponding to multiple vertices of the three-dimensional model data, where i=1,2,3,4; .
[0114] Exemplarily, the encrypted three-dimensional model data is, for example, the following formula (8).
[0115] (8)
[0116] In formula (8), M represents the encrypted three-dimensional model data; P represents the three-dimensional model data requested by the current data request; R represents the perturbation matrix used for encryption; It represents the positions corresponding to multiple vertices of the 3D model data, where i=1,2,3,4; It represents the position disturbance corresponding to multiple vertices of the 3D model data, where i=1,2,3,4. .
[0117] By adopting this implementation mode, the responding end can generate a perturbation matrix based on the perturbation amplitude, thereby perturbing (or encrypting) the vertex data of the three-dimensional model based on the perturbation matrix. In this way, since the amount of vertex data of the three-dimensional model is small, the efficiency of encrypting the three-dimensional model data can be improved.
[0118] In an optional embodiment, Figure 2 In the encryption method shown, the current data request may include an initial key for encryption; Figure 2 In the method shown, the responding end can also generate a decryption key based on the disturbance level and the initial key; and return the decryption key to the requesting end of the current data request, so that the requesting end decrypts the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data. In this way, since the decryption key is determined based on the disturbance level and the initial key, and the disturbance level corresponding to each data request may be different, and the initial key may also be different, the responding end can generate a decryption key based on the disturbance level and the initial key corresponding to the data request each time after receiving the data request, and return the decryption key to the requesting end, thereby further determining the security of the three-dimensional model data transmission.
[0119] See also Figure 3 , Figure 3 is a flow chart of a three-dimensional data decryption method provided in an embodiment of the present application. The method can be performed by a requesting end (for example, Figure 1 The method may include but is not limited to the following steps:
[0120] S301. Send a current data request, where the current data request is used to obtain three-dimensional model data and includes an initial key for encryption.
[0121] In an optional implementation, before step S301, the requesting end may also generate an initial key for encryption based on the current state of the requesting end, the current timestamp, and the random number. Optionally, the current state of the requesting end may include but is not limited to the operating state of the requesting end's central processing unit, the memory capacity of the requesting end, etc.
[0122] For example, the initial key for encryption generated by the requesting end is, for example, K=K gen (C s , T, R); where K represents the initial key, C s It represents the current state of the requesting end, T represents the current timestamp, and R represents a random number.
[0123] In an optional implementation, before step S301, the requesting end may further construct a first viewing frustum corresponding to the three-dimensional model data requested by the current data request, determine a first projection area of the content displayed by the first viewing frustum; and obtain a second projection area of the content displayed by the second viewing frustum corresponding to the three-dimensional model data requested in the historical data request; and send the first projection area and the second projection area to the responding end.
[0124] In some embodiments, the requesting end may construct a first viewing frustum corresponding to the three-dimensional model data requested by the current data request based on the following formula (9).
[0125] (9)
[0126] In formula (9), V represents the constructed first viewing frustum; (x0, y0, z0) represents the coordinates of the optical center of the first viewing frustum; (x i ,y i , z i ) represents the coordinates of each vertex in the bottom surface of the first viewing frustum, i = 1, 2, 3, 4. It should be noted that since the optical center of the first viewing frustum and the geographic plane have no intersection, the optical center coordinates of the first viewing frustum do not need to be concerned in this application.
[0127] In some embodiments, the requesting end determines the first projection area of the content displayed by the first viewing frustum, which may include: determining the intersection points of four vertices in the bottom surface of the first viewing frustum and the ground plane respectively; and taking the area of a quadrilateral formed by connecting the four intersection points as the first projection area. The quadrilateral formed by connecting the four intersection points is the minimum circumscribed polygon of the projection area of the displayed three-dimensional model data in the three-dimensional scene.
[0128] Optionally, assuming that the four intersection points are A1 (x1, y1, z1), A2 (x2, y2, z2), A3 (x3, y3, z3), and A4 (x4, y4, z4), the requesting end may use the following formula (10) to determine the first projection area.
[0129] (10)
[0130] In formula (10), It represents the first projection area.
[0131] In some embodiments, the requesting end may obtain from the database the second projection area of the content displayed by the second viewing frustum corresponding to the three-dimensional model data requested in the historical data request. Optionally, the second projection area stored in the database may be determined by the requesting end using the following formula (11).
[0132] (11)
[0133] In formula (11), It represents the second projection area; They respectively represent the intersection points of the four vertices in the bottom surface of the second viewing frustum corresponding to the three-dimensional model data requested in the historical data request and the ground plane.
[0134] S302: Receive the encrypted three-dimensional model data and decryption key from the responding end.
[0135] Among them, the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level.
[0136] In an optional implementation, the responding end determines the disturbance level based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request, and the specific process of the responding end determining the decryption key based on the initial key and the disturbance level of the current data request can be found in the description above and will not be repeated here.
[0137] In an optional implementation, after step S302, the requesting end may also store the encrypted three-dimensional model data, thereby improving the security of the three-dimensional model data during storage.
[0138] S303: Decrypt the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0139] In an embodiment of the present application, the requesting end may send a current data request, the current data request is used to obtain three-dimensional model data, and the current data request includes an initial key for encryption; receive the encrypted three-dimensional model data and decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; based on the decryption key, the encrypted three-dimensional model data is decrypted to obtain the three-dimensional model data. Using this method, the requesting end can decrypt the encrypted three-dimensional model data received from the responding end based on the decryption key received from the responding end. In this way, since the three-dimensional model data is transmitted after encryption, the security of the three-dimensional model data during transmission can be improved.
[0140] See also Figure 4 , Figure 4 : is a flow chart of a method for encrypting and decrypting three-dimensional model data provided in an embodiment of the present application. The method may include but is not limited to the following steps:
[0141] S401, the requesting end sends a current data request to the responding end, and correspondingly, the responding end receives the current data request from the requesting end; the current data request is used to obtain three-dimensional model data, and the current data request includes an initial key for encryption, a first projection area, and a second projection area.
[0142] The first projection area is the projection area of the content displayed by the first viewing frustum corresponding to the three-dimensional model data requested by the current data request; the second area is the projection area of the content displayed by the second viewing frustum corresponding to the three-dimensional model data requested by the historical data request.
[0143] In an optional implementation, before step S401, the requesting end may also use the above formula (9) to construct a first viewing frustum, and use the above formula (10) to determine a first projection area of the content displayed by the first viewing frustum.
[0144] In an optional implementation, after determining the first projection area of the content displayed by the first viewing frustum, the requesting end may also store the first projection area for use when requesting three-dimensional model data next time.
[0145] In an optional implementation, the second projection area may be directly obtained by the requesting end from a database of the requesting end, and the second projection area stored in the database may be determined by the requesting end using the above formula (11).
[0146] For example, assuming that the user wants to obtain the three-dimensional model data corresponding to position A, the user can input a start operation for the "map" application in the user interface of the requesting end. The start operation can be a key operation, a voice operation, or a touch operation, etc., which is not limited here. At this time, the requesting end can detect the start operation input for the "map" application and open the map. Afterwards, the requesting end can detect the user operation for position A in the map displayed on the user interface. The user operation is used to indicate the acquisition of the three-dimensional model data corresponding to position A. At this time, the requesting end can send a current data request to the responding end. Correspondingly, the responding end receives the current data request from the requesting end, and the current data request is used to request the acquisition of the three-dimensional model data of position A.
[0147] In an optional implementation, before step S404, the requesting end may also generate an initial key for encryption based on the current state of the requesting end, the current timestamp, and the random number. Optionally, the current state of the requesting end may include but is not limited to the operating state of the requesting end's central processor, the memory capacity of the requesting end, etc.
[0148] Exemplarily, the initial key for encryption generated by the requester is, for example, ; Where K represents the initial key, It represents the current state of the requesting end, T represents the current timestamp, and R represents a random number.
[0149] In an optional embodiment, the current data request does not carry the second projection area. In this case, the responding end may obtain the second projection area from a database of the responding end. The second projection area in the database may be determined and stored by the responding end based on the historical data request message when the responding end receives the historical data request message. The second projection area is carried in the historical data request.
[0150] S402: The responding end determines an area change amount of the first projection area relative to the second projection area and an area change rate of the first projection area relative to the second projection area.
[0151] In an optional implementation, the responding end may use the above formula (1) to determine the area change of the first projection area relative to the second projection area.
[0152] In an optional implementation, the responding end may use the above formula (2) to determine the area change rate of the first projection area relative to the second projection area.
[0153] S403: The responding end determines an absolute position change between the bottom surface of the first visual frustum and the bottom surface of the second visual frustum, obtains historical disturbance levels for multiple historical data requests, and determines a disturbance jump threshold based on the multiple historical disturbance levels.
[0154] In an optional implementation, the responding end may use the above formula (4) to determine the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum.
[0155] In an optional implementation, the responding end may obtain historical disturbance levels for multiple historical data requests from a database.
[0156] S404: The responding end determines a disturbance level for the current data request based on the area change, the area change rate, the absolute position change, and the disturbance jump function, and determines a disturbance matrix for encryption based on the disturbance level.
[0157] In an optional implementation, the responding end may use the above formula (5) to determine the disturbance level for the current data request based on the area change, the area change rate, the absolute position change, and the disturbance jump function.
[0158] In an optional implementation, the responding end determines the perturbation matrix for encryption based on the perturbation level, which may be to use the above formula (6) to determine the perturbation amplitude; based on the perturbation amplitude, determine the position perturbation amounts corresponding to multiple vertices of the three-dimensional model data; and use the matrix composed of the position perturbation amounts corresponding to the multiple vertices as the perturbation matrix for encryption. The perturbation matrix for encryption may be as shown in the above formula (7).
[0159] S405: The responding end encrypts the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain encrypted three-dimensional model data.
[0160] In an optional implementation, the responding end encrypts the three-dimensional model data requested by the current data request based on the perturbation matrix, and when obtaining the encrypted three-dimensional model data, the above formula (8) may be used.
[0161] S406: The responding end generates a decryption key based on the initial key and the disturbance level included in the current data request.
[0162] Since the initial key included in each data request and the disturbance level corresponding to the data request may be different, the responding end can generate a decryption key based on the initial key and the disturbance level after receiving each data request, thereby ensuring that the encrypted three-dimensional model data is difficult to crack.
[0163] S407: The responding end sends the encrypted three-dimensional model data and the decryption key to the requesting end, and correspondingly, the requesting end receives the encrypted three-dimensional model data and the decryption key from the responding end.
[0164] S408: The requesting end decrypts the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0165] In an embodiment of the present application, the responding end may, upon receiving a current data request from the requesting end, determine an area change amount and an area change rate based on a first projection area of the content displayed by the first viewing frustum corresponding to the three-dimensional model data requested by the current data request and a second projection area of the content displayed by the second viewing frustum corresponding to the three-dimensional model data requested in the historical data request, and determine an absolute position change amount and a disturbance jump threshold between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum; secondly, the responding end may determine a current data request based on the area change amount, the area change rate, the absolute position change amount and the disturbance jump threshold. The disturbance level of the data request is determined, and the disturbance matrix used for encryption is determined based on the disturbance level; then, the responding end encrypts the three-dimensional model data requested by the current data request based on the disturbance matrix to obtain the encrypted three-dimensional model data, and generates a decryption key based on the initial key and the disturbance level included in the current data request; thereafter, the responding end may send the encrypted three-dimensional model data and the decryption key to the requesting end, and correspondingly, the requesting end receives the encrypted three-dimensional model data and the decryption key; finally, the requesting end may decrypt the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data. In this way, on the one hand, since the responding end has encrypted the three-dimensional model data requested by the current data request based on the disturbance matrix determined by the disturbance level corresponding to the current data request before the three-dimensional model data is transmitted, the security of the three-dimensional model data during the transmission process can be improved; on the other hand, since the disturbance matrix used for encryption is determined based on the disturbance level corresponding to the current data request, and the disturbance level is related to the user operation (i.e., the area corresponding to the three-dimensional model data to be obtained selected by the user on the map displayed in the user interface of the requesting end), the user operation is dynamically adjustable. Therefore, the method can improve the flexibility of three-dimensional model data encryption.
[0166] In addition, in the embodiment of the present application, the initial key and the decryption key are determined in each interaction between the requesting end and the responding end. Therefore, the use of this method can also ensure the uniqueness and difficulty of cracking each encryption.
[0167] Optionally, the method provided in the embodiment of the present application can be applied to various complex application scenarios and can enhance the integrity, confidentiality and security of three-dimensional model data.
[0168] It should be understood that although Figures 2 to 4The steps in the flowchart shown are shown in sequence as indicated by the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise specified in this document, there is no strict order restriction for the execution of these steps, and these steps can be executed in other orders. Moreover, Figures 2 to 4 At least part of the steps may include multiple steps or multiple stages. These steps or stages are not necessarily performed at the same time, but can be performed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed in turn or alternately with other steps or at least part of the steps or stages in other steps.
[0169] See also Figure 5 , Figure 5 Schematic diagram of the structure of an encryption device provided in an embodiment of the present application. Figure 5 As shown, the device includes but is not limited to the following modules: a determination module, for determining, with respect to a current data request, the three-dimensional model data requested by the current data request;
[0170] An acquisition module 501 is used to acquire a change between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request;
[0171] A determination module 502, configured to determine a disturbance level for a current data request based on the variation, and determine a disturbance matrix for encryption based on the disturbance level;
[0172] The encryption module 503 is used to encrypt multiple vertex data of the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain encrypted three-dimensional model data;
[0173] The sending module 504 is used to return the encrypted three-dimensional model data to the request end of the current data request.
[0174] It can be understood that the steps that can be implemented by each module in the device and the beneficial effects that can be achieved can refer to the description in the aforementioned encryption method embodiment, or refer to the description of the response end in the aforementioned three-dimensional model data encryption and decryption method embodiment, and will not be repeated here.
[0175] See also Figure 6 , Figure 6 Schematic diagram of a decryption device provided in an embodiment of the present application. Figure 6 As shown, the device includes but is not limited to the following modules:
[0176] A sending module 601 is used to send a current data request, where the current data request is used to obtain three-dimensional model data, and the current data request includes an initial key for encryption;
[0177] The receiving module 602 is used to receive the encrypted three-dimensional model data and the decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level;
[0178] The decryption module 603 is used to decrypt the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0179] It can be understood that the steps that can be implemented by each module in the device and the beneficial effects that can be achieved can refer to the description in the aforementioned decryption method embodiment, or refer to the description of the request end in the aforementioned three-dimensional model data encryption and decryption method embodiment, which will not be repeated here.
[0180] In one embodiment, the present application also provides a computer device. Figure 7 , Figure 7 Schematic diagram of a computer device provided in an embodiment of the present application. The computer device can be a request end or a response end. Figure 7 As shown, the terminal device includes: at least one processor 701, a memory 702, at least one network interface 704 and a user interface 703. The various components in the terminal device are coupled together via a bus system 705. It can be understood that the bus system 705 is used to achieve connection and communication between these components. In addition to the data bus, the bus system 705 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, Figure 7 In the figure, various buses are labeled as bus system 705. In addition, in the embodiment of the present application, a transceiver 706 is also included. The transceiver can be multiple components, that is, including a transmitter and a receiver, and is a unit for communicating with various other devices on a transmission medium.
[0181] The user interface 703 may include a display, a keyboard, or a pointing device (eg, a mouse, a trackball, a touch pad, or a touch screen).
[0182] It can be understood that the memory 702 in the embodiment of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory can be a random access memory (RAM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDRSDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SLDRAM) and direct RAM bus random access memory (DRRAM). The memory 702 of the system and method described in the embodiments of the present application is intended to include but is not limited to these and any other suitable types of memory.
[0183] In some implementations, the memory 702 stores the following elements, executable modules or data structures, or a subset thereof, or an extended set thereof: an operating system 702a and an application 702b.
[0184] The operating system 702a includes various system programs, such as a framework layer, a core library layer, a driver layer, etc., which are used to implement various basic services and process hardware-based tasks. The application 702b includes various application programs, such as a media player (Media Player), a browser (Browser), etc., which are used to implement various application services. Optionally, the program implementing the method of the embodiment of the present application can be included in the application 702b.
[0185] In one embodiment, the operation performed by the responding end in the method provided in the embodiment of the present application is implemented by calling the program or instruction stored in the memory 702, specifically, the program or instruction stored in the application 702b. For example, for the current data request, determine the three-dimensional model data requested by the current data request; obtain the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; based on the change, determine the disturbance level for the current data request, and determine the disturbance matrix for encryption based on the disturbance level; based on the disturbance matrix, encrypt multiple vertex data of the three-dimensional model data requested by the current data request to obtain the encrypted three-dimensional model data; return the encrypted three-dimensional model data to the requesting end of the current data request.
[0186] In one embodiment, the operation performed by the requesting end in the method provided in the embodiment of the present application is implemented by calling the program or instruction stored in the memory 702, specifically, the program or instruction stored in the application 702b. For example, a current data request is sent, the current data request is used to obtain three-dimensional model data, and the current data request includes an initial key for encryption; the encrypted three-dimensional model data and decryption key are received from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level; based on the decryption key, the encrypted three-dimensional model data is decrypted to obtain the three-dimensional model data.
[0187] It is understood that the embodiments described in the embodiments of the present application can be implemented by hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be implemented in one or more application specific integrated circuits (ASIC), digital signal processors (DSP), digital signal processing devices (DSPD), programmable logic devices (PLD), field programmable gate arrays (FPGA), general-purpose processors, controllers, microcontrollers, microprocessors, other electronic units for performing the functions described in the present application or a combination thereof.
[0188] For software implementation, the technology described in the terminal device in the embodiment of the present application can be implemented by a module (such as a process, function, etc.) that executes the functions described in the embodiment of the present application. The software code can be stored in a memory and executed by the processor 701. The memory can be implemented in the processor 701 or outside the processor 701.
[0189] In one embodiment, the present application also provides a computer-readable storage medium on which a computer program is stored.
[0190] In an optional implementation, when the computer program is executed by a processor, the steps performed by the responding end in the above-mentioned three-dimensional model data encryption and decryption method are implemented, for example:
[0191] For a current data request, determine the three-dimensional model data requested by the current data request;
[0192] Obtaining a change between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request;
[0193] Based on the variation, determining a perturbation level for the current data request, and determining a perturbation matrix for encryption based on the perturbation level;
[0194] Based on the perturbation matrix, encrypt multiple vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data;
[0195] The encrypted 3D model data is returned to the requesting end of the current data request.
[0196] In another optional implementation, when the computer program is executed by the processor, the steps performed by the requesting end in the above three-dimensional model data encryption and decryption method are implemented, for example:
[0197] Sending a current data request, where the current data request is used to obtain the three-dimensional model data and includes an initial key for encryption;
[0198] Receive the encrypted three-dimensional model data and decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level;
[0199] Based on the decryption key, the encrypted three-dimensional model data is decrypted to obtain the three-dimensional model data.
[0200] In one embodiment, the present application also provides a computer program product including instructions.
[0201] In an optional implementation, when the computer program product is run on the responding end, the responding end is caused to perform the following steps:
[0202] For a current data request, determine the three-dimensional model data requested by the current data request;
[0203] Obtaining a change between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request;
[0204] Based on the variation, determining a perturbation level for the current data request, and determining a perturbation matrix for encryption based on the perturbation level;
[0205] Based on the perturbation matrix, encrypt multiple vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data;
[0206] The encrypted 3D model data is returned to the requesting end of the current data request.
[0207] In another optional implementation, when the computer program product is run on the requesting end, the requesting end is caused to perform the following steps:
[0208] Sending a current data request, where the current data request is used to obtain the three-dimensional model data and includes an initial key for encryption;
[0209] Receive the encrypted three-dimensional model data and decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level;
[0210] Based on the decryption key, the encrypted three-dimensional model data is decrypted to obtain the three-dimensional model data.
[0211] It should be noted that the data involved in this application (including but not limited to current data requests, changes, disturbance levels, disturbance matrices, encrypted three-dimensional model data, initial keys, decryption keys, etc.) are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with relevant regulations.
[0212] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), tape, floppy disk, flash memory or optical memory, etc. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration and not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).
[0213] The technical features of the above embodiments may be combined arbitrarily. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0214] The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the attached claims.
Claims
1. An encryption method, characterized in that: The method comprises: For a current data request, determining the three-dimensional model data requested by the current data request; Obtaining a change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; Based on the change amount, determining a disturbance level for the current data request, and determining a disturbance matrix for encryption based on the disturbance level; Based on the perturbation matrix, encrypting multiple vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data; The encrypted three-dimensional model data is returned to the requesting end of the current data request.
2. The method according to claim 1, characterized in that The obtaining of a change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request includes: Acquire a first projection area corresponding to a first viewing frustum corresponding to the three-dimensional model data requested in the current data request; and acquire a second projection area corresponding to a second viewing frustum corresponding to the three-dimensional model data requested in the historical data request; Determine an area change amount of the first projection area relative to the second projection area as a first change amount; and determine an area change rate of the first projection area relative to the second projection area as a second change amount; Based on the first change amount and the second change amount, a change amount between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request is determined.
3. The method according to claim 2, characterized in that The obtaining of the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request further includes: determining an absolute position change amount between a bottom surface of the first viewing frustum and a bottom surface of the second viewing frustum as a third change amount; Acquire historical disturbance levels for the plurality of historical data requests, and determine a disturbance jump threshold based on the plurality of historical disturbance levels, and use the disturbance jump threshold as a fourth variation; Based on the first change amount, the second change amount, the third change amount and the fourth change amount, a change amount between the three-dimensional model data requested in the current data request and the three-dimensional model data requested in the historical data request is determined.
4. The method according to claim 3, characterized in that: The step of determining the absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum as a third change includes: Acquire a first position of each of four vertices of the bottom surface of the first viewing frustum, and acquire a second position of each of four vertices of the bottom surface of the second viewing frustum; Based on the first position and the second position, determining a position change between vertices at corresponding positions; An average value of the four position changes is determined as an absolute position change between the bottom surface of the first viewing frustum and the bottom surface of the second viewing frustum, and the absolute position change is used as a third change.
5. The method according to claim 3, characterized in that: The determining, based on the change amount, a disturbance level for the current data request includes: Determining a first value based on the first variation and a first preset disturbance function; Determining a second value based on the second variation and a second preset disturbance function; Determining a third value based on the third variation and a third preset disturbance function; Determining a fourth value based on the fourth variation and a fourth preset disturbance function; Determine weights corresponding to the first value, the second value, the third value, and the fourth value respectively; Based on the first value, the second value, the third value, the fourth value and their corresponding weights, a disturbance level for the current data request is determined.
6. The method according to any one of claims 1 to 5, characterized in that: The determining of a perturbation matrix for encryption based on the perturbation level comprises: Determine a target constant based on a preset function and an initial key from the requesting end; Determining a disturbance amplitude based on the disturbance level, the target constant, and a preset adjustment coefficient; Based on the perturbation amplitude, a perturbation matrix for encryption is determined.
7. The method according to claim 6, characterized in that The step of determining a perturbation matrix for encryption based on the perturbation amplitude includes: Based on the disturbance amplitude, determining position disturbance amounts corresponding to a plurality of vertices of the three-dimensional model data respectively; Using a matrix composed of position disturbance amounts corresponding to a plurality of the vertices as a disturbance matrix for encryption; The step of encrypting the plurality of vertex data of the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain the encrypted three-dimensional model data comprises: Determine the sum of the coordinate positions of multiple vertices in the three-dimensional model data requested by the current data request and the corresponding position disturbance amounts in the disturbance matrix to obtain new coordinate position information of the multiple vertices; The encrypted three-dimensional model data is determined based on the new coordinate position information of the multiple vertices.
8. The method according to any one of claims 1 to 5, characterized in that: The current data request includes an initial key; the method further includes: generating a decryption key based on the disturbance level and the initial key; The decryption key is returned to the request end of the current data request, so that the request end decrypts the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
9. A decryption method, characterized in that: The method comprises: Sending a current data request, where the current data request is used to obtain three-dimensional model data, and the current data request includes an initial key; Receive the encrypted three-dimensional model data and decryption key from the responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on the disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level; Based on the decryption key, the encrypted three-dimensional model data is decrypted to obtain the three-dimensional model data.
10. An encryption device, characterized in that: The device comprises: A determination module, configured to determine, with respect to a current data request, the three-dimensional model data requested by the current data request; An acquisition module, used to acquire a change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; The determination module is used to determine a disturbance level for the current data request based on the change amount, and determine a disturbance matrix for encryption based on the disturbance level; An encryption module, configured to encrypt multiple vertex data of the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain encrypted three-dimensional model data; The sending module is used to return the encrypted three-dimensional model data to the request end of the current data request.
11. A decryption device, characterized in that: The device comprises: A sending module, used for sending a current data request, where the current data request is used for acquiring three-dimensional model data, and the current data request includes an initial key for encryption; A receiving module, used for receiving the encrypted three-dimensional model data and a decryption key from a responding end; the decryption key is determined by the responding end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the responding end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in the historical data request; the encrypted three-dimensional model data is determined by the responding end based on a disturbance matrix used for encryption, and the disturbance matrix is determined based on the disturbance level; The decryption module is used to decrypt the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
12. A computer device, characterized in that: include: A processor and a memory, wherein the memory stores a computer program; when the processor executes the computer program, the steps of the method according to any one of claims 1 to 8 are implemented, or the steps of the method according to claim 9 are implemented.
13. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 8, or implements the steps of the method according to claim 9.
14. A computer program product comprising a computer program, characterized in that When the computer program is executed by a processor, the computer program implements the steps of the method according to any one of claims 1 to 8, or implements the steps of the method according to claim 9.
Citation Information
Patent Citations
CRYPTOGRAPHY MODEL BASED ON HYBRID THREE-DIMENSIONAL CELLULAR AUTOMATA
BR102013010044A2
Method for encrypting and decrypting 3D mesh model based on contents
CN105869103A
Network traffic surveying and mapping prevention method based on gradient confrontation
CN113765716A
Data encryption method and device, electronic equipment, storage medium and computer program
CN118612355A
Decryption of graphics data in a graphics processing pipeline
US7159112B1
Cited By
Smart city data intelligent fusion system
CN121071012A