METHOD FOR ENCRYPTING OR DECRYPTING A 3D OBJECT
20170169606 ยท 2017-06-15
Assignee
Inventors
Cpc classification
G06T17/10
PHYSICS
G06T19/20
PHYSICS
G09C5/00
PHYSICS
G06F21/6209
PHYSICS
International classification
G06T17/10
PHYSICS
G06T19/20
PHYSICS
G06F21/62
PHYSICS
Abstract
Embodiments relates to a method for encrypting a 3D object (O) defined at least by a set of first points (p.sub.i) and a set first of faces (F), contained in a bounding box (B), the method being executed by an encryption device and comprising: determining (S4) a set of second points (p.sub.si) by bijection of the set of first points (p.sub.i), and a second set of faces (F.sub.s), determining (S5) an encrypted 3 D object (O.sub.s) defined at least by the set of second points (p.sub.si) and the second set of faces (F.sub.s), wherein the first points (p.sub.i) are associated with respective first indexes (i), the second points (p.sub.si) are associated with respective second indexes (s.sub.j), and a face is specified by a list of indexes, wherein the encrypted 3D object (O.sub.s) is contained in said bounding box (B), the method further comprising: partitioning the bounding box (B) into a set of first sub-boxes (n.sub.j), determining a set of second sub-boxes (n.sub.sj) by bijection of the set of first sub-boxes (n.sub.j), in function of a secret key (k), wherein the position of a second point (p.sub.si) is (c) determined in function the position of the corresponding first point (p.sub.i), the position of the first sub-box (n.sub.j) containing the corresponding first point, and the position of the second sub-box (n.sub.sj) corresponding with said first sub-box (n.sub.j).
Claims
1. Method for encrypting a 3D object (O) defined at least by a set of first points (Nand a first set of faces (F), contained in a bounding box (B), the method being executed by an encryption device and comprising: determining a set of second points (p.sub.si) by bijection of the set of first points (p.sub.i), and a second set of faces (F.sub.s), determining an encrypted 3D object (O.sub.s) defined at least by the set of second points (psi) and the second set of faces (F.sub.s), wherein the first points (p.sub.i) are associated with respective first indexes (i), the second points (p.sub.si) are associated with respective second indexes (s.sub.i), a face of the first set of faces (F) is specified by a list of first indexes (i) and a corresponding face of the second set of faces (F,) is specified by a list of corresponding second indexes (s.sub.i), wherein the encrypted 3D object (O.sub.s) is contained in said bounding box (B), the method further comprising: partitioning the bounding box (B) into a set of first sub-boxes (n.sub.i), determining a set of second sub-boxes (n.sub.si) by bijection of the set of first sub-boxes (n.sub.j), in function of a secret key (k), wherein the position of a second point (p.sub.si) is determined in function the position of the corresponding first point (p.sub.i), the position of the first sub-box (n.sub.j) containing the corresponding first point, and the position of the second sub-box (n.sub.sj) corresponding with said first sub-box (n.sub.j).
2. Method according to claim 1, wherein partitioning the bounding box into a set of first sub-boxes (n.sub.j) comprises an octree decomposition of the bounding box.
3. Method according to claim 2, wherein the octree decomposition is iterated until a predefined maximum decomposition level is reached or until the sub-boxes comprises at maximum one first point (N.
4. Method according to claim 1, wherein the position of a second point (p.sub.si) is determined by one of the following displacement types: a translation of the corresponding first point (p.sub.i) according to the translation between a center of the first sub-box (n.sub.j) containing the corresponding first point and a center of the second sub-box (n.sub.sj) corresponding with said first sub-box (n.sub.j), a translation of the corresponding first point (p.sub.i) according to the translation between the center of the first sub-box (n.sub.j) containing the corresponding first point and the center of the second sub-box (n.sub.sj) corresponding with said first sub-box (n.sub.j), followed by a mirroring with respect to the center of said second sub-box (n.sub.sj), a rotation of the corresponding first point (p.sub.i) according to the rotation between the center of the first sub-box (n.sub.j) containing the corresponding first point and the center of the second sub-box (n.sub.sj) corresponding with said first sub-box (n.sub.j), a translation of the corresponding first point (pi) according to the translation between the center of the first sub-box (n.sub.j) containing the corresponding first point and the center of the second sub-box (n.sub.sj) corresponding with the said first sub-box (n.sub.j), followed by a mirroring of the points with respect to a medial plane of said second sub-box center.
5. Method according to claim 4, wherein the displacement type for determining a second point depends on the secret key (k).
6. Computer program comprising instructions executable by a processor for performing the method according to claim 1 when said instructions are executed by a computer.
7. Device for encrypting a 3D object defined at least by a set of first points (p.sub.i) and a first set of faces (F), contained in a bounding box, comprising: means for determining a set of second points (p.sub.si) by bijection of the set of first points (p.sub.i), and a second set of faces (F.sub.s), means for determining an encrypted 3D object defined at least by the set of second points and the second set of faces (F.sub.s), wherein the first points (p.sub.i) are associated with respective first indexes (i), the second points (p.sub.si) are associated with respective second indexes (s.sub.i), a face of the first set of faces (F) is specified by a list of first indexes (i) and a corresponding face of the second set of faces (F.sub.s) is specified by a list of corresponding second indexes (s.sub.i); wherein the encrypted 3D object is contained in said bounding box, the device further comprising: means for partitioning the bounding box into a set of first sub-boxes (n.sub.j), means for determining a set of second sub-boxes (n.sub.sj) by bijection of the set of first sub-boxes (n.sub.j), in function of a secret key (k), wherein the position of a second point (p.sub.si) is determined in function the position of the corresponding first point (p.sub.i), the position of the first sub-box (n.sub.j) containing the corresponding first point (p.sub.i ), and the position of the second sub-box (n.sub.sj) corresponding with said first sub-box (n.sub.j).
8. Method for decrypting an encrypted 3D object defined at least by a set of second points (p.sub.si) and a second set of faces (F.sub.s), contained in a bounding box, the method being executed by an decryption device and comprising : determining a set of third points (p.sub.si) by bijection of the set of second points (psi), and a third set of faces (F.sub.u), determining a decrypted 3D object defined at least by the set of third points and the third set of faces (F.sub.u), wherein the second points (p.sub.si) are associated with respective second indexes (s.sub.i), the third points (p.sub.ui) are associated with respective third indexes (u.sub.i), a face of the second set of faces (F.sub.s) is specified by a list of second indexes (s.sub.i) and a corresponding face of the third set of faces (F.sub.u) is specified by a list of corresponding third indexes (u.sub.i), wherein the decrypted 3D object is contained in said bounding box, the method further comprising: partitioning the bounding box into a set of second sub-boxes (n.sub.sj), determining a set of third sub-boxes (n.sub.uj) by bijection of the set of second sub-boxes (n.sub.sj), in function of a secret key (k), wherein the position of a third point (p.sub.ui) is determined in function the position of the corresponding second point (p.sub.si), the position of the second sub-box (n.sub.sj) containing the corresponding second point, and the position of the third sub-box (n.sub.uj) corresponding with said first sub-box (n.sub.sj).
9. Method according to claim 8, wherein partitioning the bounding box into a set of second sub-boxes comprises an octree decomposition of the bounding box.
10. Method according to claim 9, wherein the octree decomposition is iterated until a predefined maximum decomposition level is reached or until the sub-boxes comprises at maxi mum one second point.
11. Method according to claim 8, wherein the position of a third point (p.sub.ui) is determined by one of the following displacement types: a translation of the corresponding second point (p.sub.si) according to the translation between a center of the second sub-box (n.sub.sj) containing the corresponding second point and a center of the third sub-box (n.sub.uj) corresponding with said second sub-box (n.sub.sj), a translation of the corresponding second point (p.sub.si) according to the translation between the center of the second sub-box (n.sub.sj) containing the corresponding second point and the center of the third sub-box (n.sub.uj) corresponding with said second sub-box (n.sub.sj), followed by a mirroring with respect to the center of said third sub-box (n.sub.uj), a rotation of the corresponding second point (p.sub.si) according to the rotation between the center of the second sub-box (n.sub.sj) containing the corresponding second point and the center of the third sub-box (n.sub.uj) corresponding with said second sub-box (n.sub.sj), a translation of the corresponding second point (p.sub.si) according to the translation between the center of the second sub-box (n.sub.sj) containing the corresponding second point and the center of the third sub-box (n.sub.uj) corresponding with the said second sub-box (n.sub.sj), followed by a mirroring of the points with respect to a medial plane of said third sub-box center.
12. Method according to claim 11, wherein the displacement type for determining a second point depends on the secret key (k).
13. Computer program comprising instructions executable by a processor for performing the method according to claim 8 when said instructions are executed by a computer.
14. Device for decrypting an encrypted 3D object defined at least by a set of second points (p.sub.si) and a second set of faces (F.sub.s), contained in a bounding box, comprising: means for determining a set of third points (p.sub.ui) by bijection of the set of second points (p.sub.si), and a third set of faces (F.sub.u), means for determining a decrypted 3D object defined at least by the set of third points and the third set of faces (F.sub.u), wherein the second points (p.sub.si) are associated with respective second indexes (s.sub.i), the third points (p.sub.ui) are associated with respective third indexes (u.sub.i), a face of the second set of faces (F.sub.u) is specified by a list of second indexes (s.sub.i) and a corresponding face of the third set of faces (F.sub.u) is specified by a list of corresponding third indexes (u.sub.i), wherein the decrypted 3D object is contained in said bounding box, the device further comprising: means for partitioning the bounding box into a set of second sub-boxes (n.sub.sj), means for determining a set of third sub-boxes (n.sub.uj) by bijection of the set of second sub-boxes (nsj), in function of a secret key (k), wherein the position of a third point (p.sub.ui) is determined in function the position of the corresponding second point (p.sub.si), the position of the second sub-box (n.sub.sj) containing the corresponding second point, and the position of the third sub-box (n.sub.uj) corresponding with said first sub-box (n.sub.sj).
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0038] The above and other objects and features of the invention will become more apparent and the invention itself will be best understood by referring to the following description of embodiments taken in conjunction with the accompanying drawings wherein:
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
DESCRIPTION OF EMBODIMENTS
[0045]
[0046] A 3D object O is defined at least by a set of points p.sub.i and a set of faces F (step 51). A point p.sub.i has an index i ranging for example from 1 to M, where M is the number of points p.sub.i, and is specified for example by its coordinates (x.sub.i, y.sub.i, z.sub.i). A face is defined by an ordered list of points p.sub.i, specified by their indexes i. The 3D object O may be defined also by additional data, such as texture, color . . .
[0047] The bounding box B of the 3D object O is the rectangular parallelepiped of minimum dimension within which all points p.sub.i are included. In order to encrypt the 3D object O, the bounding box B is partitioned in sub-boxes n.sub.j (step S2), and the encryption is based on a scrambling of the indexes j.
[0048] More precisely, in one embodiment illustrated on
[0049] At this stage, the octants of the last decomposition level define a partitioning of the bounding box B in sub-boxes. The sub-nodes of the octree and the corresponding sub-boxes are denoted n.sub.1, with the index j ranging from 1 to 2.sup.3L (or 0 to 2.sup.3L1) where L is the last decomposition level. The indexes j are assigned for example by rastering first along the x axis, then the y axis, and then the z axis. The points p.sub.i are associated with the node n.sub.j corresponding to the sub-box within which they are located.
[0050] Then, the indexes j are scrambled in function of a pseudo random number generator controlled by a secret key k, such that each input index j is associated with one and only one output index s.sub.j (i.e. a bijection) different from j. Spatially, this correspond to permuting the sub-boxes n.sub.1 to determine another set of sub-boxes n.sub.s.sub.
n.sub.s.sub.
[0051] Then, point and faces for the encrypted 3D object O.sub.s are determined (step S4). For this, the points p.sub.i are displaced according to the displacement of the sub-box n.sub.j within which they are contained to the corresponding sub-box n.sub.s.sub.
[0052] The displacement may be done in different ways. Options are: [0053] Type A: to perform a simple translation of the points p.sub.i according to the translation that the center of the sub-box n.sub.j undergoes between its original position and its scrambled position (the position of the corresponding sub-node n.sub.s.sub.
p.sub.in.sub.j, p.sub.s.sub.
p.sub.in.sub.j, p.sub.s.sub.
p.sub.in.sub.j, p.sub.s.sub.
p.sub.in.sub.j, p.sub.s.sub.
[0059] For each sub-box n.sub.1, one of the displacement type is selected. For example, the choice of the displacement option (Type A, B, C or D) depends on the secret key k.
[0060] The resulting set of points p.sub.si and set of faces F, define (at least partially) the encrypted 3D object O.sub.s (step S5).
[0061] The encrypted 3D object O.sub.s is contained in the same bounding box B and may therefore by displayed in a 3D world without interfering with other objects. Displaying the encrypted 3D object O.sub.s give an incentive to obtain the decrypted 3D object, for example by buying the usage right and obtaining the secret key k.
[0062] Moreover, the displacement of the points p.sub.i contained in the same sub-box n.sub.j is performed in the same manner. If the maximum level of decomposition is small, then large group of points p.sub.i are clustered and shuffled in the same way in the 3D space, which reduces triangle intersections and therefore rendering complexity of the encrypted 3D object O.sub.s and its deciphering complexity. If the maximum subdivision step is taken as such that maximum one point p.sub.i is contained in each sub-box n.sub.j, then the security against surface reconstruction attack is high. More, in any case it does not rely on point indexes for its security. The selection of an intermediate threshold for octree maximum subdivision steps provide a good trade-off between security and complexity.
[0063]
[0064] The octree decomposition module 2 partitions the bounding box B of the 3D object O into sub-boxes n.sub.j. The partitioning is based on octree decomposition as explained with respect to step S2 of
[0065] The pseudo random number generator 3 is controlled by the secret key k and determines pseudo random number.
[0066] The octree scrambling module 4 scrambles the nodes of the octree in function of the output of the pseudo random number generator 3, as explained with respect to step S3 of
[0067] The output of the octree scrambling module 4 is the encrypted 3D object O.sub.s.
[0068]
[0069] Accordingly, points p.sub.1 and p.sub.2 of the original object contained in node n.sub.0 are translated to points p.sub.s1and p.sub.s2 of the encrypted object, contained in node n.sub.s5. Similarly, point p.sub.3 of the original object contained in node n.sub.2 is translated to point p.sub.s3 of the encrypted object, contained in node n.sub.s1. The object appearance is significantly changed while still contained into its bounding box B. A face of the original 3D object O, defined by points p.sub.1, p.sub.2 and p.sub.3, correspond to a face defined by points p.sub.s1, p.sub.s2 and p.sub.s3 in the encrypted 3D object O.sub.s. Since p.sub.1 and p.sub.2 are translated together according to the displacement from node n.sub.0 to n.sub.s5, intersections with other faces are limited and rendering complexity of the encrypted 3D object O.sub.s is limited.
[0070]
[0071] The encrypted 3D object O.sub.s has been obtained by encrypting a 3D object O with a secret key k, according to the method of
[0072] The bounding box B of the encrypted 3D object O.sub.s is the rectangular parallelepiped of minimum dimension within which all points p.sub.s.sub.
[0073] More precisely, the bounding box B is partitioned by octree decomposition in the same manner as in step S2 of
[0074] It should be noted that, whether partitioning the bounding box B stops at the threshold maximum_decomposition_level or when the sub-nodes are associated with at maximum one point p.sub.s.sub.
n.sub.u.sub.
[0075] Then, point and faces for the decrypted 3D object O.sub.u are determined (step S9). For this, the points p.sub.s.sub.
[0076] The displacement types correspond to the types used for encryption: [0077] Type A: Noting n.sub.u.sub.
p.sub.s.sub.
p.sub.s.sub.
p.sub.s.sub.
p.sub.in.sub.j, p.sub.u.sub.
[0083] For each sub-box n.sub.s.sub.
[0084] The resulting set of points p.sub.u.sub.
[0085] Thus, decrypting the encrypted 3D object O.sub.s is based on octree decomposition and descrambling, and has a low complexity for low decomposition level as explained before.
[0086]
[0087] The output of the octree descrambling module 8 is the decrypted 3D object O.sub.u.
[0088] The embodiment described above uses octree decomposition. This has the advantage that, provided that the encrypting device 1 and the decrypting device 5 use the same maximum_decomposition_level threshold, the decomposition of the bounding box of the encrypted 3D object O.sub.s by the decrypting device 5 corresponds to the decomposition of the bounding box of the original 3D object O by the encrypting device 1. For this, the decrypting device 5 does not need to obtain data related to the decomposition performed by the encrypting device 1. In other words, the decomposition is implicit. Accordingly, descrambling and displacing the points based on the same secret key k allows determining the decrypted 3D object O.sub.u equal to the original 3D object O, without the need of decomposition data.
[0089] However, in other embodiments, other points clustering techniques may be used for partitioning the bounding box of the original 3D object O into sub-boxes. In some case, the decrypting device 5 may need to obtain decomposition data specifying the decomposition of the bounding box of the original 3D object O by the encrypting device 1, for example parameters, for decomposing the bounding box of the encrypted 3D object O.sub.s in the corresponding manner. This can be done by so-called side-information that is received together with the secret key.
[0090]
[0091] It is to be remarked that the functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which may be shared, for example in a cloud computing architecture. Moreover, explicit use of the term processor should not be construed to refer exclusively to hardware capable of executing software, and may implicitly include, without limitation, digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non volatile storage. Other hardware, conventional and/or custom, may also be included. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the implementer as more specifically understood from the context.
[0092] It should be further appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principles of the invention. Similarly, it will be appreciated that any flow charts represents various processes which may be substantially represented in computer readable medium and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
[0093] Embodiments of the method can be performed by means of dedicated hardware and/of software or any combination of both.
[0094] While the principles of the invention have been described above in connection with specific embodiments, it is to be clearly understood that this description is made only by way of example and not as a limitation on the scope of the invention, as defined in the appended claims.