Encryption method, decryption method, device, equipment, storage medium and program product
By encrypting 3D model data using a perturbation matrix generated based on the change quantity, the security problem in the 3D data transmission process is solved, and secure data transmission and storage are achieved.
Patent Information
- Application Number
- CN202411995294.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-12-31
- Publication Date
- 2025-12-12
- Estimated Expiration
- 2044-12-31
AI Technical Summary
How to improve security during the transmission of 3D data, especially to prevent security risks from malicious access or tampering with high-precision geographic information data.
By determining the amount of change between the 3D model data and historical data requests, the perturbation level is determined based on the amount of change and a perturbation matrix is generated. The vertex data of the 3D model data is then encrypted, and the encrypted data is returned along with a decryption key to ensure data security.
It improves the security of 3D model data during transmission, ensuring the integrity and privacy of data during transmission and storage.
Smart Images

Figure CN119853996B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of data processing, and in particular to an encryption method, a decryption method, a device, an apparatus, a storage medium and a program product. BACKGROUND
[0002] A three-dimensional model reproduces topography, buildings and natural landscapes through high-precision spatial data, enabling users to perform spatial analysis, simulation and decision assistance in a virtual environment. Moreover, high-precision geographic information data, such as coordinate points, elevation values, and texture information, embedded in a three-dimensional model (such as a three-dimensional geographic information model), not only has high commercial value, but in some cases also involves data security and personal privacy. If these data are accessed or tampered with maliciously, it may cause serious security risks.
[0003] Therefore, how to improve the security of three-dimensional model data in the process of transmission has become a problem to be solved. SUMMARY
[0004] The embodiments of the present application provide an encryption and decryption method, device, apparatus, storage medium and program product, which can improve the security of three-dimensional model data in the transmission process.
[0005] In a first aspect, the present application provides an encryption method, which comprises:
[0006] For the current data request, determining the three-dimensional model data requested by the current data request;
[0007] 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;
[0008] Based on the change, determining the perturbation level for the current data request, and determining the perturbation matrix for encryption based on the perturbation level;
[0009] Based on the perturbation matrix, encrypting the multiple vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data;
[0010] Returning the encrypted three-dimensional model data to the request end of the current data request.
[0011] In one of the embodiments, the acquiring the change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request comprises: acquiring a first projection area corresponding to a first view pyramid corresponding to the three-dimensional model data requested by the current data request; and acquiring a second projection area corresponding to a second view pyramid corresponding to the three-dimensional model data requested by the historical data request; determining an area change amount of the first projection area relative to the second projection area as a first change amount; and determining an area change rate of the first projection area relative to the second projection area as a second change amount; and determining the change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request based on the first change amount and the second change amount.
[0012] In one of the embodiments, the acquiring the change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request further comprises: determining an absolute position change amount between a bottom surface of the first view pyramid and a bottom surface of the second view pyramid as a third change amount; acquiring historical disturbance levels for the plurality of historical data requests, and determining a disturbance jump threshold based on the plurality of historical disturbance levels, and taking the disturbance jump threshold as a fourth change amount; and determining the change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request based on the first change amount, the second change amount, the third change amount and the fourth change amount.
[0013] In one of the embodiments, the determining the absolute position change amount between the bottom surface of the first view pyramid and the bottom surface of the second view pyramid as the third change amount comprises: acquiring a first position of each vertex of four vertices of the bottom surface of the first view pyramid, and acquiring a second position of each vertex of four vertices of the bottom surface of the second view pyramid; determining a position change amount between the vertices corresponding to the positions based on the first positions and the second positions; and determining an average value of the four position change amounts as the absolute position change amount between the bottom surface of the first view pyramid and the bottom surface of the second view pyramid, and taking the absolute position change amount as the third change amount.
[0014] In one of the embodiments, the determining the disturbance level for the current data request based on the change amount comprises: determining a first value based on the first change amount and a first preset disturbance function; determining a second value based on the second change amount and a second preset disturbance function; determining a third value based on the third change amount and a third preset disturbance function; determining a fourth value based on the 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; and determining the disturbance level for the current data request based on the first value, the second value, the third value, the fourth value and the weights corresponding to the first value, the second value, the third value and the fourth value respectively.
[0015] In one of the embodiments, the method for determining the perturbation matrix for encryption based on the perturbation level comprises: determining a target constant based on a preset function and an initial key from the request end; determining a perturbation amplitude based on the perturbation level, the target constant and a preset adjustment coefficient; and determining the perturbation matrix for encryption based on the perturbation amplitude.
[0016] In one of the embodiments, the method for determining the perturbation matrix for encryption based on the perturbation amplitude comprises: determining a position perturbation amount corresponding to each vertex of the three-dimensional model data based on the perturbation amplitude; and taking a matrix composed of the position perturbation amounts corresponding to the vertices as the perturbation matrix for encryption.
[0017] In one of the embodiments, the initial key for encryption is included in the current data request; and the method further comprises: generating a decryption key based on the perturbation level and the initial key; and returning the decryption key 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.
[0018] In a second aspect, the application provides a decryption method, which comprises:
[0019] sending a current data request, the current data request being used to obtain three-dimensional model data, and the current data request including an initial key for encryption;
[0020] receiving encrypted three-dimensional model data and a decryption key from a response end; the decryption key being determined by the response end based on the initial key and a perturbation level of the current data request; the perturbation level being determined by the response end based on a change between the three-dimensional model data requested by the current data request and three-dimensional model data requested by a historical data request; and the encrypted three-dimensional model data being determined by the response end based on a perturbation matrix for encryption, the perturbation matrix being determined based on the perturbation level;
[0021] decrypting the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0022] In a third aspect, the application provides a three-dimensional data encryption device, which comprises:
[0023] a determination module configured to determine, for a current data request, three-dimensional model data requested by the current data request;
[0024] an acquisition module, configured to acquire a change amount between three-dimensional model data requested by a current data request and three-dimensional model data requested in a historical data request;
[0025] a determination module, configured to determine a perturbation level for the current data request based on the change amount, and determine a perturbation matrix used for encryption based on the perturbation level;
[0026] an encryption module, configured to perform encryption processing on a plurality of 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] a sending module, configured to return the encrypted three-dimensional model data to a request end of the current data request.
[0028] In a fourth aspect, the present application provides a three-dimensional data decryption device, which comprises:
[0029] a sending module, configured to send a current data request, the current data request being used to acquire three-dimensional model data, and the current data request comprising an initial key used for encryption;
[0030] a receiving module, configured to receive encrypted three-dimensional model data and a decryption key from a response end; the decryption key being determined by the response end based on the initial key and a perturbation level of the current data request; the perturbation level being determined by the response end based on a change amount between three-dimensional model data requested by the current data request and three-dimensional model data requested in a historical data request; and the encrypted three-dimensional model data being determined by the response end based on a perturbation matrix used for encryption, the perturbation matrix being determined based on the perturbation level;
[0031] a decryption module, configured to perform decryption processing on 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, comprising a processor and a memory, the memory storing a computer program; the processor implements steps in the method provided in the first aspect or the second aspect when executing the computer program.
[0033] In a sixth aspect, the present application further provides a computer readable storage medium, which stores a computer program, the computer program being executed by a processor to implement steps in the method provided in the first aspect or the second aspect.
[0034] In a seventh aspect, the present application further provides a computer program product, comprising a computer program, the computer program being executed by a processor to implement steps in the method provided in the first aspect or the second aspect.
[0035] The encryption method, the decryption method, the device, the equipment, the storage medium and the program product can be used to improve the security of the three-dimensional model data in the transmission process. BRIEF DESCRIPTION OF DRAWINGS
[0036] In order to more clearly illustrate the technical solutions in the embodiments of the present application or the related art, the drawings needed to be used in the description of the embodiments of the present application or the related art will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the present application, and other related drawings can be obtained by those skilled in the art without any creative effort on the basis of these drawings.
[0037] Figure 1 is a structural schematic diagram of a communication system provided by an embodiment of the present application;
[0038] Figure 2 is a flowchart of an encryption method provided by an embodiment of the present application;
[0039] Figure 3is a flowchart of a decryption method provided by an embodiment of the present application;
[0040] Figure 4 is a flowchart of a three-dimensional model data encryption and decryption method provided by an embodiment of the present application;
[0041] Figure 5 is a structural diagram of an encryption device provided by an embodiment of the present application;
[0042] Figure 6 is a structural diagram of a decryption device provided by an embodiment of the present application;
[0043] Figure 7 is a structural diagram of a computer device provided by an embodiment of the present application. DETAILED DESCRIPTION
[0044] In order to make the objects, technical solutions and advantages of the present application clearer, the present application will be further described in detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and should not be used to limit the present application.
[0045] Please refer to Figure 1 , Figure 1 is a structural diagram of a communication system provided by an embodiment of the present application. As shown in Figure 1 , 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 through a network.
[0046] The response end 102 can first receive a current data request from the request end 101, the current data request being used to request to obtain three-dimensional model data. Secondly, the response end 102 can determine a perturbation level for the current data request based on a change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in a historical data request, and determine a perturbation matrix used for encryption based on the perturbation level. Based on the perturbation matrix, the response end 102 can perform encryption processing on a plurality of vertex data of the three-dimensional model data requested by the current data request, to obtain encrypted three-dimensional model data. Then, the response end 102 can send the encrypted three-dimensional model data to the request end 101. Correspondingly, the request end 101 receives the encrypted three-dimensional model data from the response end 102. The request end 101 also receives a decryption key from the response end 102, the decryption key being determined by the response end 102 based on the perturbation matrix. Then, the request end 101 can perform decryption processing on the encrypted three-dimensional model data based on the decryption key, to obtain a three-dimensional data model. In this way, the security of the three-dimensional model data in the transmission process can be improved.
[0047] It should be noted that the beneficial effects brought by the embodiments of the present application or the technical problems solved are not limited to the above, but also other implicit or related problems, which can be seen from the following description of the embodiments.
[0048] Optionally, the request end 101 and the response end 102 can be terminal devices, which can include but are not limited to various personal computers, notebook computers, smart phones, tablet computers, Internet of Things devices, and portable wearable devices. The Internet of Things device can be a smart speaker, a smart television, a smart air conditioner, a smart vehicle device, a projection device, etc. The portable wearable device can be a smart watch, a smart bracelet, a head-mounted device, etc. The head-mounted device can be a virtual reality (VR) device, an augmented reality (AR) device, smart glasses, etc.
[0049] The three-dimensional model data encryption and decryption method provided by the present application will be described in detail below with specific embodiments in combination with the accompanying drawings. The following specific embodiments can be combined with each other, and the same or similar concepts or processes can not be described again in some embodiments.
[0050] Please refer to Figure 2 , Figure 2 is a flowchart of an encryption method provided by an embodiment of the present application. The method can be applied to a response end (for example, the response end 102 in Figure 1 ) in a communication system. As shown in Figure 2 , the method can include but is not limited to the following steps:
[0051] S201, for a current data request, determining three-dimensional model data requested by the current data request.
[0052] Wherein, the current data request is used to request to obtain three-dimensional model data.
[0053] Wherein, the three-dimensional model data refers to the data information corresponding to the three-dimensional model. The three-dimensional model is a polygonal representation of an object, which is usually displayed by a computer or other video devices. The displayed object can be a real entity in the real world, or a fictitious object. Anything existing in the physical natural world can be represented by a three-dimensional model.
[0054] For example, assuming that the current data request is used to request to obtain three-dimensional model data corresponding to position A, the response end can determine the three-dimensional model data corresponding to position A.
[0055] In an optional implementation, before step S201, the response end can also receive the current data request from the request end.
[0056] For example, assuming that the user wants to obtain the three-dimensional model data corresponding to the A position, the user can input a start operation in the user interface of the request end for the application of "map", which can be a key operation, a voice operation, a touch operation, etc., which is not limited here. At this time, the request end can detect the start operation input for the application of "map" and open the map. Then, the request end can detect a user operation for the A position in the map displayed by the user interface, which is used to indicate the acquisition of the three-dimensional model data corresponding to the A position. At this time, the request end can send a current data request to the response end, and correspondingly, the response end receives the current data request from the request end, which is used to request the three-dimensional model data of the A position.
[0057] S202, obtaining the change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request.
[0058] The historical data request refers to a data request received by the response end from the request end before the current data request is received. The current data request and the historical data request come from the same request end. For example, assuming that the response end receives the current data request sent by the request end 1 at 10:40 on December 27, 2024, before that, the response end receives data requests from the request 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 received by the response end from the request end 1 at 10:35 on December 27, 2024.
[0059] In an optional implementation, the change amount 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 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 the frustum of a visible region with the coordinate origin as the optical center in the camera coordinate system. Optionally, the above change amount can be one or more, which is not limited here.
[0060] S203, determining the perturbation level for the current data request based on the change amount, and determining the perturbation matrix used for encryption based on the perturbation level.
[0061] In an optional implementation, the response end determines the disturbance level for the current data request based on the change amount. The change amount can be input into a preset disturbance level determination model to obtain the disturbance level for the current data request. Optionally, the preset disturbance level determination model can include one or more disturbance functions, and each change amount corresponds to a disturbance function. For example, if there are four change amounts, the preset disturbance level determination model includes four disturbance functions; if there are five change amounts, the preset disturbance level determination model includes five disturbance functions. Optionally, the disturbance level can include low-level disturbance, medium-level disturbance, and high-level disturbance, or can include first-level disturbance, second-level disturbance, third-level disturbance, and fourth-level disturbance, which are not limited here; different disturbance levels correspond to different disturbance values.
[0062] In an optional implementation, the response end determines the disturbance matrix for encryption based on the disturbance level. The disturbance level can be input into a preset disturbance matrix determination model to determine the disturbance matrix for encryption. The number of elements in the disturbance matrix is the same as the number of vertices of the three-dimensional model data requested by the current data request, and the data dimension of each element in the disturbance matrix corresponds to the data dimension of each vertex of the three-dimensional model data requested by the current data request.
[0063] S204, based on the disturbance matrix, encrypting the vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data.
[0064] In an optional implementation, the response end encrypts the three-dimensional model data requested by the current data request based on the disturbance matrix to obtain encrypted three-dimensional model data. The three-dimensional model data requested by the current data request can be encrypted based on the disturbance matrix using a preset encryption strategy to obtain encrypted three-dimensional model data.
[0065] S205, returning the encrypted three-dimensional model data to the request end of the current data request.
[0066] In the embodiments of the present application, the response end can determine the three-dimensional model data requested by the current data request, obtain the change quantity between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request, determine the perturbation level for the current data request based on the change quantity, determine the perturbation matrix for encryption based on the perturbation level, perform encryption processing on the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain the encrypted three-dimensional model data, and return the encrypted three-dimensional model data to the request end of the current data request. By using the method, the response end can determine the perturbation level for the current data request based on the change quantity between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request, determine the perturbation matrix for encryption based on the perturbation level, then perform encryption processing on the three-dimensional model data requested by the current data request based on the perturbation matrix, and finally send the encrypted three-dimensional model data to the request end, so that the security of the three-dimensional model data in the transmission process can be improved.
[0067] In an alternative embodiment, Figure 2 In the encryption method shown, the response end obtains the change quantity between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request, which can include the following steps:
[0068] Step 1: Obtain the first projection area corresponding to the first visual pyramid corresponding to the three-dimensional model data requested by the current data request; and obtain the second projection area corresponding to the second visual pyramid corresponding to the three-dimensional model data requested by the historical data request.
[0069] The visual pyramid refers to a visual pyramid 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 can be carried in the current data request.
[0071] In other embodiments, the first projection area can be carried in the current data request, and the second projection area can be obtained by the response end from a database. The second projection area stored in the database can be determined by the response end based on the historical data request when the historical data request is received, wherein the historical data request includes the second projection area.
[0072] Step 2: Determine the area change quantity of the first projection area relative to the second projection area as the first change quantity; and determine the area change rate of the first projection area relative to the second projection area as the second change quantity.
[0073] In some embodiments, the responder can employ the following formula (1) when determining the area variation amount of the first projected area relative to the second projected area.
[0074] (1)
[0075] In formula (1), represents the area variation amount; represents the first projected area; represents the second projected area.
[0076] In some embodiments, the responder can employ the following formula (2) when determining the area variation rate of the first projected area relative to the second projected area.
[0077] (2)
[0078] In formula (1), represents the area variation rate amount; represents the first projected area; represents the second projected area.
[0079] Step three, based on the first variation amount and the second variation amount, determine the variation 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.
[0080] That is, the variation 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 includes the first variation amount, i.e. the area variation amount of the first projected area relative to the second projected area, and the second variation amount, i.e. the area variation rate of the first projected area relative to the second projected area.
[0081] In an optional implementation, the responder obtaining the variation 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 can further include the following steps:
[0082] Step one, determine the absolute position variation amount between the bottom surface of the first viewing pyramid and the bottom surface of the second viewing pyramid as a third variation amount.
[0083] In some embodiments, the response end determines the absolute position change amount between the bottom surface of the first view frustum and the bottom surface of the second view frustum as the third change amount, which can include: obtaining a first position of each of the four vertices of the bottom surface of the first view frustum, and obtaining a second position of each of the four vertices of the bottom surface of the second view frustum; determining a position change amount between the vertices of the corresponding positions based on the first position and the second position; determining an average value of the four position change amounts as the absolute position change amount between the bottom surface of the first view frustum and the bottom surface of the second view frustum, and taking 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 view frustum and the second position of each of the four vertices of the bottom surface of the second view frustum can 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 view frustum can be carried in the current data request; the second position of each of the four vertices of the bottom surface of the second view frustum can be obtained by the response end from a database; the second position of each of the four vertices of the bottom surface of the second view frustum stored in the database can be determined by the response end based on historical data requests, and the second position of each of the four vertices of the bottom surface of the second view frustum carried in the historical data requests can be determined by the response end.
[0086] For example, the first position of each of the four vertices of the bottom surface of the first view frustum is wherein i = 1, 2, 3, 4; and the second position of each of the four vertices of the bottom surface of the second view frustum is wherein i = 1, 2, 3, 4.
[0087] Optionally, when the response end determines the position change amount between the vertices of the corresponding positions based on the first position and the second position, the following formula (3) can be used.
[0088] (3)
[0089] In formula (3), represents the first position of the i-th vertex and the position change amount between the second position of the i-th vertex .
[0090] In an optional implementation, when the response end determines the absolute position change amount between the bottom surface of the first view frustum and the bottom surface of the second view frustum as the third change amount, the following formula (4) can be used.
[0091] (4)
[0092] The absolute position change amount between the bottom surface of the first view frustum and the bottom surface of the second view frustum is represented by formula (4). The first position of the i-th vertex is represented by formula (5). The second position of the i-th vertex is represented by formula (6). The position change amount between the first position of the i-th vertex and the second position of the i-th vertex is represented by formula (7).
[0093] Step two, obtaining historical disturbance levels for a plurality of historical data requests, and determining a disturbance jump threshold based on the plurality of historical disturbance levels, taking the disturbance jump threshold as a fourth change amount.
[0094] In an optional embodiment, the response end can obtain historical disturbance levels for a plurality of historical data requests from the database.
[0095] Step three, determining a 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 based on the first change amount, the second change amount, the third change amount, and the fourth change amount.
[0096] That is, 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 includes the first change amount (the area change amount of the first projection area relative to the second projection area), the second change amount (the area change rate of the first projection area relative to the second projection area), the third change amount (the absolute position change amount between the bottom surface of the first view frustum and the bottom surface of the second view frustum), and the fourth change amount (the disturbance jump threshold).
[0097] In some embodiments, the response end determines the disturbance level for the current data request based on the change amount, including: determining a first value based on the first change amount and a first preset disturbance function; determining a second value based on the second change amount and a second preset disturbance function; determining a third value based on the third change amount and a third preset disturbance function; and determining a fourth value based on the fourth change amount and a fourth preset disturbance function; determining the weights corresponding to the first value, the second value, the third value, and the fourth value, respectively; and determining the disturbance level for the current data request based on the first value, the second value, the third value, the fourth value, and the weights corresponding thereto, respectively.
[0098] As known from the foregoing, the first change amount is the area change amount of the first projection area relative to the second projection area; the second change amount is the area change rate of the first projection area relative to the second projection area; the third change amount is the absolute position change amount between the bottom surface of the first view frustum and the bottom surface of the second view frustum; and the fourth change amount is the disturbance jump threshold.
[0099] wherein the first preset disturbance function is an absolute area change amount corresponding disturbance function, which can be denoted as ; the second preset perturbation function refers to a perturbation function corresponding to the area change rate, which can be denoted as ; the third preset perturbation function refers to a perturbation function corresponding to the absolute position change amount, which can be denoted as ; and the fourth preset perturbation function refers to a perturbation function corresponding to the perturbation jump threshold, which can be denoted as .
[0100] Optionally, in a case where the response end determines the perturbation level for the current data request based on the first value, the second value, the third value, the fourth value and the respective weights corresponding thereto, the following formula (5) can be used.
[0101] (5)
[0102] In the formula (5), D represents the perturbation level for the current data request; represents the first value obtained by inputting the first change amount to the first perturbation function ; represents the second value obtained by inputting the second change amount to the second perturbation function ; represents the third value obtained by inputting the third change amount to the third perturbation function ; represents the fourth value obtained by inputting the fourth change amount T jump to the fourth perturbation function ; represents the weight corresponding to the first value, which can be denoted as a first weight; represents the weight corresponding to the second value, which can be denoted as a second weight; represents the weight corresponding to the third value, which can be denoted as a third weight; represents the weight corresponding to the fourth value, which can be denoted as a fourth weight.
[0103] By using this embodiment, the response end can adjust the perturbation level in real time based on the change amount. When the change amount is large, the determined perturbation level is large, and thus the corresponding encryption strength is large. When the change amount is small, the determined perturbation level is small or unchanged, and thus the corresponding encryption strength is small 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 response end determines the perturbation matrix for encryption based on the perturbation level, which can include: determining a target constant based on a preset function and an initial key from the request end; determining a perturbation amplitude based on the perturbation level, the target constant, and a preset adjustment coefficient; and determining the perturbation matrix for encryption based on the perturbation amplitude.
[0105] In some embodiments, the initial key can be carried in the current data request. That is, the response end, upon receiving the current data request, can determine the initial key based on the current data request.
[0106] In some embodiments, when the response end determines the perturbation amplitude based on the perturbation level, the target constant, and the preset adjustment coefficient, it can use the following formula (6).
[0107] X=k*D*y(K) (6)
[0108] In formula (6), X represents the perturbation amplitude; k represents the preset adjustment coefficient; D represents the perturbation level; and y(K) represents the target constant, where K represents the initial key.
[0109] Optionally, there can be multiple preset adjustment coefficients, so that the response end can determine the most appropriate perturbation amplitude based on multiple adjustment coefficients, wherein the target value of the perturbation amplitude determined by the response end should tend to a minimum value.
[0110] In some embodiments, the response end determines the perturbation matrix for encryption based on the perturbation amplitude, which can include: determining a position perturbation amount corresponding to each of a plurality of vertices of the three-dimensional model data based on the perturbation amplitude; taking a matrix composed of the position perturbation amounts corresponding to the plurality of vertices as the perturbation matrix for encryption; and performing encryption processing on a plurality of 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, including: determining the sum of the coordinate positions of the plurality of vertices in the three-dimensional model data requested by the current data request and the corresponding position perturbation amounts in the perturbation matrix to obtain new coordinate position information of the plurality of vertices; and determining the encrypted three-dimensional model data based on the new coordinate position information of the plurality of vertices.
[0111] For example, the response end determines the position perturbation amount corresponding to each of the plurality of vertices of the three-dimensional model data based on the perturbation amplitude, which is, for example, where i=1, 2, 3, 4. The matrix composed of the position perturbation amounts corresponding to the plurality of vertices, i.e., the perturbation matrix for encryption, is, for example, the following formula (7).
[0112] (7)
[0113] In the formula (7), R represents a perturbation matrix used for encryption. represents a position perturbation amount corresponding to each of the plurality of vertices of the three-dimensional model data, where i = 1, 2, 3, and 4. .
[0114] For example, the encrypted three-dimensional model data is as shown in the following formula (8).
[0115] (8)
[0116] In the formula (8), M represents the encrypted three-dimensional model data; P represents the three-dimensional model data requested by the current data request; and R represents a perturbation matrix used for encryption. represents a position corresponding to each of the plurality of vertices of the three-dimensional model data, where i = 1, 2, 3, and 4. represents a position perturbation amount corresponding to each of the plurality of vertices of the three-dimensional model data, where i = 1, 2, 3, and 4. .
[0117] In this embodiment, the response end can generate a perturbation matrix based on the perturbation amplitude, so as to perturb (or encrypt) the vertex data of the three-dimensional model based on the perturbation matrix. In this way, since the data amount of the vertex data of the three-dimensional model is small, the efficiency of the encryption of the three-dimensional model data can be improved.
[0118] In an optional embodiment, Figure 2 In the encryption method shown in the formula (9), the initial key used for encryption can be included in the current data request. Figure 2 In the method shown in the formula (10), the response end can further generate a decryption key based on the perturbation level and the initial key, and return the decryption key 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. In this way, since the decryption key is determined based on the perturbation level and the initial key, and the perturbation level and the initial key can be different each time, the response end can generate the decryption key based on the perturbation level and the initial key corresponding to the current data request each time the data request is received, and return the decryption key to the request end, so that the security of the transmission of the three-dimensional model data can be further determined.
[0119] Please refer to Figure 3 , Figure 3 is a flowchart of a three-dimensional data decryption method provided by an embodiment of the present application. The method can be executed by a request end (for example, the request end 101 in the formula (11)). Figure 1 The method can include but is not limited to the following steps:
[0120] S301. Send a current data request. The current data request is used to obtain 3D model data. The current data request includes an initial key for encryption.
[0121] In an optional implementation, before step S301, the requesting end may generate an initial key for encryption based on its current state, current timestamp, and random number. Optionally, the current state of the requesting end may include, but is not limited to, the running state of the requesting end's central processing unit and the memory capacity of the requesting end.
[0122] For example, the initial key generated by the requesting end for encryption is, for instance, K=K. gen (C) s (T, R); where K represents the initial key, C s This represents the current state of the requesting end; T represents the current timestamp; and R represents a random number.
[0123] In one optional implementation, before step S301, the requesting end may further construct a first view frustum corresponding to the three-dimensional model data requested in the current data request, determine the first projected area of the content displayed by the first view frustum, and obtain the second projected area of the content displayed by the second view frustum corresponding to the three-dimensional model data requested in the historical data request; and send the first projected area and the second projected area to the responding end.
[0124] In some embodiments, the requesting end may construct the first view cone 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 visual cone; (x0, y0, z0) represents the optical center coordinates of the first visual cone; (x i y i , z i The coordinates of each vertex on the base of the first visual cone are represented by , i = 1, 2, 3, 4. It should be noted that since the optical center of the first visual cone does not intersect with the geographic plane, the coordinates of the optical center of the first visual cone are not relevant in this application.
[0127] In some embodiments, the requesting end determines the first projected area of the content displayed by the first view frustum, which may include: determining the intersection points of the four vertices of the bottom surface of the first view frustum with the ground plane; and taking the area of the quadrilateral formed by connecting the four intersection points as the first projected area. The quadrilateral formed by connecting the four intersection points is the smallest bounding polygon of the projected area of the displayed 3D model data in the 3D 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 request end can determine the first projection area by using the following formula (10).
[0129] (10)
[0130] In the formula (10), S1, S2, S3, and S4 represent the first projection area.
[0131] In some embodiments, the request end can obtain the second projection area of the content displayed by the second view volume corresponding to the three-dimensional model data requested in the historical data request from the database. Optionally, the second projection area stored in the database can be determined by the request end by using the following formula (11).
[0132] (11)
[0133] In the formula (11), S1, S2, S3, and S4 represent the second projection area.
[0134] S302, receiving the encrypted three-dimensional model data and the decryption key from the response end.
[0135] In the formula (11), S1, S2, S3, and S4 represent the second projection area.
[0136] In an optional implementation, the specific process of determining the perturbation level based on the 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, and determining the decryption key based on the initial key and the perturbation level of the current data request can be referred to the description in the foregoing, which will not be described here.
[0137] In an optional implementation, after the step S302, the request end can further store the encrypted three-dimensional model data. In this way, the security of the three-dimensional model data in the storage process can be improved.
[0138] S303, decrypting the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0139] In the embodiment of the present application, the request end can send a current data request, the current data request is used to obtain three-dimensional model data, the current data request includes an initial key used for encryption; receive encrypted three-dimensional model data and a decryption key from the response end; the decryption key is determined by the response end based on the initial key and the disturbance level of the current data request; the disturbance level is determined by the response end based on the change between the three-dimensional model data requested by the current data request and the three-dimensional model data requested by the historical data request; based on the decryption key, the encrypted three-dimensional model data is decrypted to obtain the three-dimensional model data. By using the method, the request end can decrypt the encrypted three-dimensional model data received from the response end based on the decryption key received from the response end. Therefore, since the three-dimensional model data is transmitted after being encrypted, the security of the three-dimensional model data in the transmission process can be improved.
[0140] Please refer to Figure 4 , Figure 4 is a flowchart of a three-dimensional model data encryption and decryption method provided by the embodiment of the present application. The method can include but is not limited to the following steps:
[0141] S401, the request end sends a current data request to the response end, and correspondingly, the response end receives the current data request from the request end; the current data request is used to obtain three-dimensional model data, and the current data request includes an initial key used for encryption, a first projection area and a second projection area.
[0142] The first projection area is the projection area of the displayed content of the first viewing pyramid corresponding to the three-dimensional model data requested by the current data request; the second area is the projection area of the displayed content of the second viewing pyramid corresponding to the three-dimensional model data requested by the historical data request.
[0143] In an optional implementation, before step S401, the request end can also use the above formula (9) to construct the first viewing pyramid, and use the above formula (10) to determine the first projection area of the displayed content of the first viewing pyramid.
[0144] In an optional implementation, after determining the first projection area of the displayed content of the first viewing pyramid, the request end can 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 can be directly obtained by the request end from the database of the request end, and the second projection area stored in the database can be determined by the request end using the above formula (11).
[0146] For example, assuming that the user wants to obtain the three-dimensional model data corresponding to the A position, the user can input a starting operation for the "map" application in the user interface of the request end, which can be a key operation, a voice operation, a touch operation, etc., which is not limited here. At this time, the request end can detect the starting operation input for the "map" application and open the map. Then, the request end can detect a user operation for the A position in the map displayed by the user interface, which is used to indicate the acquisition of the three-dimensional model data corresponding to the A position. At this time, the request end can send a current data request to the response end, and correspondingly, the response end receives the current data request from the request end, which is used to request the three-dimensional model data of the A position.
[0147] In an optional implementation, before step S404, the request end can also generate an initial key for encryption based on the current state of the request end, the current timestamp, and the random number. Optionally, the current state of the request end can include, but is not limited to, the running state of the central processing unit of the request end, the memory capacity of the request end, etc.
[0148] For example, the initial key for encryption generated by the request end is, for example, wherein K represents the initial key, the current state of the request end, T represents the current timestamp, and R represents the random number.
[0149] In an optional implementation, the current data request does not carry the second projection area, in which case the response end can obtain the second projection area from the database of the response end. The second projection area in the database can be determined and stored by the response end based on the historical data request message in the case where the response end receives the historical data request message, and the second projection area is carried in the historical data request.
[0150] S402, the response end determines the area change amount of the first projection area relative to the second projection area and the area change rate of the first projection area relative to the second projection area.
[0151] In an optional implementation, the response end can determine the area change amount of the first projection area relative to the second projection area by using the above formula (1).
[0152] In an optional implementation, the response end can determine the area change rate of the first projection area relative to the second projection area by using the above formula (2).
[0153] S403, the response end determines the absolute position change amount between the bottom surface of the first view pyramid and the bottom surface of the second view pyramid, obtains the historical disturbance levels for a plurality of historical data requests, and determines the disturbance jump threshold based on the plurality of historical disturbance levels.
[0154] In an optional implementation, the responder can determine the absolute position change amount between the bottom surface of the first view frustum and the bottom surface of the second view frustum by using the above formula (4).
[0155] In an optional implementation, the responder can obtain the historical perturbation levels corresponding to the plurality of historical data requests from the database.
[0156] S404, the responder determines the perturbation level corresponding to the current data request based on the area change amount, the area change rate, the absolute position change amount, and the perturbation jump function, and determines the perturbation matrix used for encryption based on the perturbation level.
[0157] In an optional implementation, the responder can determine the perturbation level corresponding to the current data request based on the area change amount, the area change rate, the absolute position change amount, and the perturbation jump function by using the above formula (5).
[0158] In an optional implementation, the responder can determine the perturbation amplitude by using the above formula (6) based on the perturbation level, determine the position perturbation amount corresponding to each of the plurality of vertices of the three-dimensional model data based on the perturbation amplitude, and use the matrix composed of the position perturbation amounts corresponding to the plurality of vertices as the perturbation matrix used for encryption. The perturbation matrix used for encryption can be as shown in the above formula (7).
[0159] S405, the responder 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, when the responder encrypts the three-dimensional model data requested by the current data request based on the perturbation matrix to obtain encrypted three-dimensional model data, the above formula (8) can be used.
[0161] S406, the responder generates a decryption key based on the initial key included in the current data request and the perturbation level.
[0162] Since the initial key included in each data request and the perturbation level corresponding to the data request can be different, the responder can generate a decryption key based on the initial key and the perturbation level after receiving each data request, so as to ensure the difficulty of cracking the encrypted three-dimensional model data.
[0163] S407, the responder sends the encrypted three-dimensional model data and the decryption key to the requestor, and correspondingly, the requestor receives the encrypted three-dimensional model data and the decryption key from the responder.
[0164] S408, the request end decrypts the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
[0165] In the embodiments of the present application, the response end can determine the area change amount and the area change rate based on the first projection area of the displayed content of the first view pyramid corresponding to the three-dimensional model data requested by the current data request and the second projection area of the displayed content of the second view pyramid corresponding to the three-dimensional model data requested in the historical data request, and determine the absolute position change amount between the bottom surface of the first view pyramid and the bottom surface of the second view pyramid and the perturbation jump threshold value, in the case that the current data request from the request end is received. Secondly, the response end determines the perturbation level for the current data request based on the area change amount, the area change rate, the absolute position change amount and the perturbation jump threshold value, and determines the perturbation matrix for encryption based on the perturbation level. Then, the response 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, and generates the decryption key based on the initial key and the perturbation level included in the current data request. After that, the response end can send the encrypted three-dimensional model data and the decryption key to the request end, and correspondingly, the request end receives the encrypted three-dimensional model data and the decryption key. Finally, the request end can 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 three-dimensional model data requested by the current data request is encrypted based on the perturbation matrix determined by the response end according to the perturbation level corresponding to the current data request before the data transmission of the three-dimensional model data, the security of the three-dimensional model data in the transmission process can be improved during the transmission of the three-dimensional model data. On the other hand, since the perturbation matrix for encryption is determined based on the perturbation level corresponding to the current data request, and the perturbation level is related to the user operation (i.e. the region corresponding to the three-dimensional model data to be obtained selected by the user on the map displayed in the user interface of the request end), and the user operation is dynamically adjustable, the flexibility of the encryption of the three-dimensional model data can be improved by using this method.
[0166] In addition, in the embodiments of the present application, the initial key and the decryption key are determined in each interaction between the request end and the response end, so that the uniqueness and the difficulty of cracking of each encryption can also be ensured by using this method.
[0167] Optionally, the method provided by the embodiments of the present application can be applied to various complex application scenarios, and the integrity, confidentiality and security of the three-dimensional model data can be enhanced.
[0168] It should be understood that, although Figures 2 to 4The steps in the flowchart shown are displayed in sequence according to the direction of the arrows, but these steps are not necessarily executed in the order indicated by the arrows. Unless otherwise explicitly stated herein, there is no strict order limitation for the execution of these steps, and these steps can be executed in other orders. Moreover, Figures 2 to 4 At least a part of the steps of the method can include multiple steps or multiple stages, which are not necessarily executed at the same time, but can be executed at different times, and the execution order of these steps or stages is not necessarily sequential, but can be executed alternately or alternately with at least a part of other steps or steps or stages in other steps.
[0169] Please refer to Figure 5 , Figure 5 is a structural diagram of an encryption device provided by an embodiment of the present application. As Figure 5 shown, the device includes but is not limited to the following modules: a determination module for determining the three-dimensional model data requested by the current data request for the current data request;
[0170] The acquisition module 501 is configured to acquire 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;
[0171] The determination module 502 is configured to determine the perturbation level for the current data request based on the change, and determine the perturbation matrix used for encryption based on the perturbation level;
[0172] The encryption module 503 is configured to perform encryption processing on the plurality of 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 configured 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 foregoing encryption method embodiments, or refer to the description of the response end in the foregoing three-dimensional model data encryption and decryption method embodiments, which will not be repeated here.
[0175] Please refer to Figure 6 , Figure 6 is a structural diagram of a decryption device provided by an embodiment of the present application. As Figure 6 shown, the device includes but is not limited to the following modules:
[0176] The sending module 601 is configured to send a current data request, the current data request being used to acquire three-dimensional model data, and the current data request including an initial key used for encryption;
[0177] The receiving module 602 is configured to receive encrypted three-dimensional model data and a decryption key from a response end, the decryption key being determined by the response end based on an initial key and a perturbation level requested by a current data request, the perturbation level being determined by the response end based on a change between three-dimensional model data requested by the current data request and three-dimensional model data requested by a historical data request, and the encrypted three-dimensional model data being determined by the response end based on a perturbation matrix used for encryption, the perturbation matrix being determined based on the perturbation level.
[0178] The decryption module 603 is configured to decrypt the encrypted three-dimensional model data based on the decryption key to obtain three-dimensional model data.
[0179] It can be understood that the steps that can be implemented by the modules in the apparatus and the beneficial effects that can be achieved can refer to the descriptions in the foregoing decryption method embodiments or the descriptions about the request end in the foregoing three-dimensional model data encryption and decryption method embodiments, and will not be described here in detail.
[0180] In one embodiment, the present application further provides a computer device. Please refer to Figure 7 , Figure 7 is a structural schematic diagram of a computer device provided by an embodiment of the present application. The computer device can be a request end or a response end. As shown in the figure, the terminal device comprises 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 through a bus system 705. It can be understood that the bus system 705 is used to realize the connection and communication between the components. The bus system 705 comprises a data bus, a power supply bus, a control bus and a status signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the bus system 705 in the figure. In addition, the present embodiment further comprises a transceiver 706, which can be multiple elements, i.e. comprising a transmitter and a receiver, and provides a unit for communicating with various other devices on a transmission medium. Figure 7 Figure 7 The user interface 703 can comprise a display, a keyboard or a clicking device (for example, a mouse, a trackball, a touchpad or a touch screen, etc.).
[0181] The user interface 703 can comprise a display, a keyboard or a clicking device (for example, a mouse, a trackball, a touchpad or a touch screen, etc.).
[0182] It is to be appreciated that the memory 702 in the embodiments of the present application can be a volatile memory or a nonvolatile memory, or can include both volatile and nonvolatile memory. Among them, the nonvolatile memory can be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable Programmable ROM (EPROM), an Electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a Random Access Memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous Dynamic RAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The memory 702 of the system and method described in the embodiments of the present application is intended to include, without being limited to, these and any other suitable types of memory.
[0183] In some embodiments, 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 program 702b.
[0184] Among them, the operating system 702a contains various system programs, such as framework layer, core library layer, driver layer, etc., for implementing various basic services and processing hardware-based tasks. The application program 702b contains various application programs, such as Media Player, Browser, etc., for implementing various application services. Optionally, the program for implementing the method of the embodiments of the present application can be contained in the application program 702b.
[0185] In an embodiment, the operations performed by the response end in the method provided by the embodiments of the present application are implemented by invoking the programs or instructions stored in the memory 702, specifically, the programs or instructions stored in the application programs 702b. For example, for a current data request, determining three-dimensional model data requested by the current data request; obtaining a 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; determining a perturbation level for the current data request based on the change amount, and determining a perturbation matrix used for encryption based on the perturbation level; performing encryption processing on a plurality of 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; and returning the encrypted three-dimensional model data to the request end of the current data request.
[0186] In an embodiment, the operations performed by the request end in the method provided by the embodiments of the present application are implemented by invoking the programs or instructions stored in the memory 702, specifically, the programs or instructions stored in the application programs 702b. For example, sending a current data request, the current data request being used to obtain three-dimensional model data, the current data request including an initial key used for encryption; receiving encrypted three-dimensional model data and a decryption key from the response end; the decryption key being determined by the response end based on the initial key and a perturbation level of the current data request; the perturbation level being determined by the response end based on a 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; the encrypted three-dimensional model data being determined by the response end based on a perturbation matrix used for encryption, the perturbation matrix being determined based on the perturbation level; and performing decryption processing on the encrypted three-dimensional model data based on the decryption key, to obtain the three-dimensional model data.
[0187] It can be 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 (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs), Field-Programmable Gate Arrays (FPGAs), 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 techniques of the terminal device described in the embodiments of the present application can be implemented by means of modules (for example, procedures, functions, and so on) for performing the functions described in the embodiments of the present application. The software codes can be stored in the memory and executed by the processor 701. The memory can be implemented in the processor 701 or implemented outside the processor 701.
[0189] In one embodiment, the present application also provides a computer readable storage medium, having stored thereon a computer program.
[0190] In an alternative implementation, the computer program, when executed by the processor, implements the steps performed by the response end in the three-dimensional model data encryption and decryption method described above, for example:
[0191] For the current data request, determine the three-dimensional model data requested by the current data request;
[0192] 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;
[0193] Based on the change, determine the perturbation level for the current data request, and determine the perturbation matrix for encryption based on the perturbation level;
[0194] Based on the perturbation matrix, encrypt the vertex data of the three-dimensional model data requested by the current data request to obtain the encrypted three-dimensional model data;
[0195] Return the encrypted three-dimensional model data to the request end of the current data request.
[0196] In another alternative implementation, the computer program, when executed by the processor, implements the steps performed by the request end in the three-dimensional model data encryption and decryption method described above, for example:
[0197] Send a current data request, the current data request being used to obtain three-dimensional model data, the current data request including an initial key for encryption;
[0198] Receive encrypted three-dimensional model data and decryption keys from the response end; the decryption keys being determined by the response end based on the initial key and the perturbation level of the current data request; the perturbation level being determined by the response 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 being determined by the response end based on the perturbation matrix for encryption, the perturbation matrix being determined based on the perturbation level;
[0199] Based on the decryption keys, decrypt the encrypted three-dimensional model data to obtain the three-dimensional model data.
[0200] In one embodiment, the embodiments of the present application also provide a computer program product comprising instructions.
[0201] In an alternative implementation, when the computer program product is running on the response end, the response end is caused to perform the following steps:
[0202] For the current data request, determining three-dimensional model data requested by the current data request;
[0203] 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;
[0204] Based on the change, 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, encrypting a plurality of vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data;
[0206] Returning the encrypted three-dimensional model data to the request end of the current data request.
[0207] In another alternative implementation, when the computer program product is running on the request end, the request end is caused to perform the following steps:
[0208] Sending a current data request, the current data request being used to obtain three-dimensional model data, the current data request including an initial key for encryption;
[0209] Receiving encrypted three-dimensional model data and a decryption key from the response end; the decryption key being determined by the response end based on the initial key and a perturbation level of the current data request; the perturbation level being determined by the response 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 being determined by the response end based on a perturbation matrix for encryption, the perturbation matrix being determined based on the perturbation level;
[0210] Based on the decryption key, decrypting the encrypted three-dimensional model data to obtain three-dimensional model data.
[0211] It should be noted that the data (including but not limited to the current data request, the change, the perturbation level, the perturbation matrix, the encrypted three-dimensional model data, the initial key, the decryption key, etc.) involved in the present application are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of the relevant data need to comply with relevant regulations.
[0212] Those skilled 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. The computer program can be stored in a non-volatile computer readable storage medium, and when the computer program is executed, the processes of the above-mentioned embodiments of the methods can be included. Any reference to memory, storage, database or other medium used in each embodiment provided by the present application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory or optical memory. Volatile memory can include random access memory (RAM) or external cache memory. As an illustration but not limitation, RAM can be in various forms, such as static random access memory (SRAM) or dynamic random access memory (DRAM).
[0213] Any combination of the technical features of the above embodiments can be made. In order to make the description simple, all possible combinations of each technical feature in the above embodiments are not described, however, as long as the combination of the technical features does not exist, it should be considered as the scope of the present application.
[0214] The above embodiments only express several implementation manners of the present application, and the description is more specific and detailed, but it should not be understood as a limitation on the scope of the patent. It should be pointed out that for those skilled in the art, without departing from the concept of the present application, some modifications and improvements can be made, which are all within the protection scope of the present application. Therefore, the protection scope of the patent of the present application should be subject to the appended claims.
Claims
1. An encryption method characterized by, The method comprises: For a current data request, determining three-dimensional model data requested by the current data request; Obtaining a change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in a historical data request; Based on the change amount, determining a perturbation level for the current data request, and determining a perturbation matrix for encryption based on the perturbation level; Based on the perturbation matrix, encrypting a plurality of vertex data of the three-dimensional model data requested by the current data request to obtain encrypted three-dimensional model data; Returning the encrypted three-dimensional model data to the request end of the current data request.
2. The method of claim 1, wherein, The obtaining of 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 comprises: Obtaining a first projection area corresponding to a first viewing pyramid corresponding to the three-dimensional model data requested by the current data request; and obtaining a second projection area corresponding to a second viewing pyramid corresponding to the three-dimensional model data requested in the historical data request; Determining an area change amount of the first projection area relative to the second projection area as a first change amount; and determining 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, determining 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.
3. The method of claim 2, wherein, The obtaining of 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 further comprises: Determining an absolute position change amount between the bottom surface of the first viewing pyramid and the bottom surface of the second viewing pyramid as a third change amount; Obtaining historical perturbation levels for a plurality of the historical data requests, and determining a perturbation jump threshold based on a plurality of the historical perturbation levels, taking the perturbation jump threshold as a fourth change amount; Based on the first change amount, the second change amount, the third change amount and the fourth change amount, determining 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.
4. The method of claim 3, wherein, The determination of the absolute position change amount between the bottom surface of the first viewing pyramid and the bottom surface of the second viewing pyramid as the third change amount comprises: Obtaining a first position of each vertex of the four vertices of the bottom surface of the first viewing pyramid, and obtaining a second position of each vertex of the four vertices of the bottom surface of the second viewing pyramid; Based on the first position and the second position, determining a position change amount between the corresponding positions; Taking an average value of the four position change amounts as the absolute position change amount between the bottom surface of the first viewing pyramid and the bottom surface of the second viewing pyramid, and taking the absolute position change amount as the third change amount.
5. The method of claim 3, wherein, The determination of the perturbation level for the current data request based on the change amount comprises: Determining a first value based on the first change amount and a first preset perturbation function; determine a second value based on the second change amount and a second preset perturbation function; determine a third value based on the third change amount and a third preset perturbation function; determine a fourth value based on the fourth change amount and a fourth preset perturbation function; determine weights corresponding to the first value, the second value, the third value, and the fourth value respectively; determine a perturbation level for the current data request based on the first value, the second value, the third value, the fourth value, and the weights corresponding thereto respectively.
6. The method according to any one of claims 1 to 5, characterized in that, determining a perturbation matrix for encryption based on the perturbation level, includes: determining a target constant based on a preset function and an initial key from the request end; determining a perturbation amplitude based on the perturbation level, the target constant, and a preset adjustment coefficient; determining a perturbation matrix for encryption based on the perturbation amplitude.
7. The method of claim 6, wherein, determining a perturbation matrix for encryption based on the perturbation amplitude, includes: determining position perturbation amounts corresponding to a plurality of vertices of the three-dimensional model data respectively based on the perturbation amplitude; taking a matrix composed of the position perturbation amounts corresponding to the plurality of vertices respectively as the perturbation matrix for encryption; the encryption processing of the plurality of 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, includes: determining a sum of coordinate positions of a plurality of vertices in the three-dimensional model data requested by the current data request and corresponding position perturbation amounts in the perturbation matrix, to obtain new coordinate position information of the plurality of vertices; determining encrypted three-dimensional model data based on the new coordinate position information of the plurality of 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 perturbation level and the initial key; returning the decryption key 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 by, The method includes: sending a current data request, the current data request being used to obtain three-dimensional model data, and the current data request including an initial key; receiving encrypted three-dimensional model data and a decryption key from a response end; the decryption key is determined by the response end based on the initial key and a perturbation level of the current data request; the perturbation level is determined by the response end based on a change amount between three-dimensional model data requested by the current data request and three-dimensional model data requested in historical data requests; the encrypted three-dimensional model data is determined by the response end based on a perturbation matrix for encryption, and the perturbation matrix is determined based on the perturbation level; decrypting the encrypted three-dimensional model data based on the decryption key to obtain the three-dimensional model data.
10. An encryption device, characterized by The device includes: a determination module configured to determine, for a current data request, three-dimensional model data requested by the current data request; The acquisition module is configured to acquire a change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in a historical data request. The determination module is configured to determine a perturbation level for the current data request based on the change amount, and determine a perturbation matrix for encryption based on the perturbation level. The encryption module is configured to perform encryption processing on a plurality of 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 configured to return the encrypted three-dimensional model data to a request end of the current data request.
11. A decryption device, characterized by The apparatus comprises: The sending module is configured to send a current data request, the current data request being used to acquire three-dimensional model data, and the current data request comprising an initial key for encryption. The receiving module is configured to receive encrypted three-dimensional model data and a decryption key from a response end, the decryption key being determined by the response end based on the initial key and a perturbation level of the current data request, the perturbation level being determined by the response end based on a change amount between the three-dimensional model data requested by the current data request and the three-dimensional model data requested in a historical data request, and the encrypted three-dimensional model data being determined by the response end based on a perturbation matrix for encryption, the perturbation matrix being determined based on the perturbation level. The decryption module is configured to perform decryption processing on the encrypted three-dimensional model data based on the decryption key, to obtain the three-dimensional model data.
12. A computer device, comprising: The apparatus comprises: A processor and a memory, the memory storing a computer program; the processor implements steps of the method according to any one of claims 1 to 8, or implements steps of the method according to claim 9 when executing the computer program.
13. A computer readable storage medium having stored thereon a computer program, characterized in that, The computer program is executed by the processor to implement steps of the method according to any one of claims 1 to 8, or implement steps of the method according to claim 9.
14. A computer program product comprising a computer program, characterized in that, The computer program is executed by the processor to implement steps of the method according to any one of claims 1 to 8, or implement steps of the method according to claim 9.
Citation Information
Patent Citations
Data encryption method and device, electronic equipment, storage medium and computer program
CN118612355A
Decryption of graphics data in a graphics processing pipeline
US7159112B1