This application claims the benefit, under 35 U.S.C. §119 of European Patent Application 12306335.6, filed Oct. 26, 2012.
The present invention relates generally to 3-D models and in particular to the protection of graphical objects of such models.
This section is intended to introduce the reader to various aspects of art, which may be related to various aspects of the present invention that are described and/or claimed below. This discussion is believed to be helpful in providing the reader with background information to facilitate a better understanding of the various aspects of the present invention. Accordingly, it should be understood that these statements are to be read in this light, and not as admissions of prior art.
The use of three-dimensional (3D) objects has been increasing in the last years, particularly with the emergence of metaverses. There are multiple usages for 3D objects: socializing worlds, games, mirroring worlds, simulation tools, but also 3D User interfaces, animation movies and visual effects for television. Generally, 3D virtual objects represent real money value. In socializing worlds and games, players are selling virtual objects or avatars to other players for real money. Building an experienced character within an online game is a very lengthy process that can require hundreds of hours behind the keyboard. The 3D model of a real-world object from a simulation tool allows manufacturing the real (counterfeit) object and selling it. Leaking the 3D model for a scene of the next blockbuster from Hollywood studios may result in bad press for the studios. As can be seen, in many cases, 3D objects are assets of great value for their owner.
Strategies for content protection comprise confidentiality protection—intended to make it impossible for unauthorized users to access the content, e.g. by encryption—and watermarking—intended to make it possible to track a user who has disseminated the content without authorization to do so.
Basic methods of 3D content protection focus on the entire data, i.e. all the data is either encrypted or watermarked (or both), although these methods are somewhat crude.
More subtle ways of protecting 3D content is to protect one or more of its 3D objects. This is possible as 3D content often is made up of a number of distinct objects positioned in a setting. When each 3D object is coded as a separate entity, it becomes possible to protect each of these separately and it is not necessary to protect all of them.
For example, US 2008/0022408 describes a method of 3D object protection by storing the “bounding box” of the object as non-encrypted data in one file and the protected 3D object as encrypted data in a separate file. Any user may access the non-encrypted data, but only authorized users can access the encrypted data; non-authorized users see a basic representation thereof (i.e. the bounding box), such as a parallelepiped instead of a car. However, this method was developed to be used with 3D rendering software and is less suited for multimedia content, such as video and film. In addition, the file format (one file with non-encrypted data and one file with encrypted data) is non-standard and is thus usable only by adapted rendering devices, not standard ones. Indeed, the encrypted data does not respect the syntax of most 3D techniques and can thus normally not be used.
U.S. Pat. No. 6,678,378 describes a solution for protecting a 3D Computer Aided Design (CAD) object by encryption. The solution may encrypt one of the coordinate values of the nodes and the equations for the edges or the contours, by nonlinear or affine transformation, thereby distorting the 3D object or by ‘normal’ encryption such as RSA.
Problems with this solution is that the calculations may be costly (in particular when using RSA) and that the distortions may not be sufficient to deter a malicious user from using the content nevertheless. In addition, in the case of ‘normal’ encryption, the 3D object may not be readable at all by a content consuming device—such as a computer or a television—which may be a drawback in some cases.
A digital rights enabled graphics processing system was proposed in 2006 by Shi, W., Lee, H., Yoo, R., and Boldyreva, A: A Digital Rights Enabled Graphics Processing System. In GH '06: Proceedings of the 21st ACM SIGGRAPH/EUROGRAPHICS symposium on Graphics hardware, ACM, 17-26.]. With this system, the data composing the 3D object (collection of vertices, textures) is encrypted. Their decryption is handled within the Graphic Processing Unit, under control of licenses. It is proposed also to use multi resolution meshes to deliver simultaneously a protected and unprotected version of a 3D element. Although the system itself is a real progress towards secure 3D environments, the use of protected scenes with other Virtual Reality Modelling Language (VRML) renderers will lead to interoperability issues.
David Koller and Marc Levoy describe a system for protection of 3D data in which high-definition 3D data is stored in a server. The users have access to a low-definition 3D object that they can manipulate and when a user has chosen a view, a request is sent to the server that returns a two-dimensional JPEG that corresponds to the view. Hence the high-definition 3D data is protected as it is never provided to the users. (See “Protecting 3D Graphics Content” by David Koller and Marc Levoy. Communications of the ACM, June 2005, vol. 48, no. 6.) While this system works well for its intended use, it is not applicable when the full 3D data is to be transferred to a user.
A common problem with the prior art solutions is that they are not format preserving, but that they are based on the encryption of 3D data and that they provide a second set of 3D data that is usable by non-authorized devices so that the user can see something, e.g. a bounding box.
European patent application 10305692.5 describes a format preserving solution in which a 3D object comprising a list of points (i.e. vertices) is protected by permuting the coordinates of at least some of its points. European patent application 10306250.1 describes a similar solution in which the coordinates of at least one dimension of the vertices of a 3D object are permuted independently of the other dimensions. The lists detailing how the points are connected remain unchanged, but the 3D object no longer “makes sense” as these points no longer have the initial values. Advantages of these solutions is that the protected 3D object is readable also by devices that are not able to ‘decrypt’ the protected 3D object—although it does look very strange—and that the protected 3D object is inscribed in a bounding box of the same size as the original 3D object.
While the latter solutions work well, it will be appreciated that there may be a need for an alternative solution that can enable protection of 3D objects with quick calculations that still enables an unauthorized content consuming device to read and display the 3D object, albeit in a manner that renders the viewing thereof unsatisfactory. The present invention provides such a solution.
In a first aspect, the invention is directed to a method of encrypting a graphical object. An encryption device receives the graphical object; generates a set of secret functions using a secret key K; selects an encryption function from the set of secret functions; encrypts the graphical object using the encryption function to obtain an encrypted graphical object; and outputs the encrypted graphical object and an indication f of the selected encryption function.
In a first preferred embodiment, the selection comprises applying the functions of the set of secret functions to the graphical object to obtain a set of protected graphical objects; and selecting a function that gave a protected graphical object that satisfies a given fitness metric. It is advantageous that the encryption comprises selecting the modified graphical object that corresponds to the encryption function.
In a second preferred embodiment, the graphical object is a three-dimensional object.
In a third preferred embodiment, the set of secret functions is generated using also at least one adaptation parameter that is an intrinsic parameter of the graphical object.
In a second aspect, the invention is directed to a method of decrypting an encrypted graphical object. A decryption device receives the encrypted graphical object and an indication f of an encryption function used to encrypt the encrypted graphical object; generates a decryption function using a secret key K and the indication f; decrypts the encrypted graphical object using the decryption function to obtain a decrypted graphical object; and outputs the decrypted graphical object.
In a first preferred embodiment, the graphical object is a three-dimensional object.
In a second preferred embodiment, the decryption device receives at least one adaptation parameter, an intrinsic parameter of the graphical object, that is also used to generate the decryption function.
In a third aspect, the invention is directed to an encryption device for encrypting a graphical object. The encryption device comprises an interface configured to: receive the graphical object; and output an encrypted graphical object and an indication f of a selected encryption function; and a processor configured to: generate a set of secret functions using a secret key K; select the encryption function from the set of secret functions; encrypt the graphical object using the encryption function to obtain the encrypted graphical object.
In a first preferred embodiment, the processor is configured to select the encryption function by: applying the functions of the set of secret functions to the graphical object to obtain a set of protected graphical objects; and selecting a function that gave a protected graphical object that satisfies a given fitness metric. It is advantageous that the processor is configured to encrypt the graphical object by selecting the modified graphical object that corresponds to the encryption function.
In a fourth aspect, the invention is directed to a decryption device for decrypting an encrypted graphical object. The decryption device comprises an interface configured to: receive the encrypted graphical object; receive an indication f of an encryption function used to encrypt the encrypted graphical object; and output a decrypted graphical object; and a processor configured to: generate a decryption function using a secret key K and the indication f; and decrypt the encrypted graphical object using the decryption function to obtain the decrypted graphical object.
In a first preferred embodiment, the graphical object is a three-dimensional object.
In a fifth aspect, the invention is directed to a non-transitory computable readable storage medium comprising stored instructions that when executed by a processor performs the method of any embodiment of the first aspect of the invention.
In a sixth aspect, the invention is directed to a non-transitory computable readable storage medium comprising stored instructions that when executed by a processor performs the method of any embodiment of the second aspect of the invention.
Preferred features of the present invention will now be described, by way of non-limiting examples, with reference to the accompanying drawings, in which
In most 3D content formats, such as for example Virtual Reality Modelling Language (VRML) and X3D, a 3D graphical object o (“3D object”) is represented by a first list (or array) of vertices, referred to as the “geometry”, wherein each vertex v=(x, y, z) consists of 3D coordinates, and a second list of facets, referred to as the “topology” or the “connectivity”, which indicates how to link the points together to define the facets that the 3D object is made of.
A salient inventive idea of the present invention is to protect a 3D object by using a function with at least one parameter to warp the dimension space, which in a preferred embodiment ‘shapes’ the 3D object, i.e. gives a desired statistical characteristic to the protected 3D object. A secret is used to define the at least one parameter of the function.
In other words, where some of the prior art solutions obtain a protected vertex by applying a function to a key and an input point, the present invention obtains a protected point by using a key to select a function that is applied to an input point. It should however be noted that the key K may also be used as input to the function f′.
The protection results in the creation of a new set of vertices, yielding a protected 3D object than can still be understood by any standard legacy 3D rendering application, but whose resulting display becomes distorted compared to the original. Authorized users with access to the secret are able to reverse the protection so as to obtain the original points. The function that is used to ‘shape’ the 3D object is advantageously chosen from a set of dynamically generated functions.
On the receiver side, a deprotection module receives S15 the protected object o′={v′}, the index P used for protection, and the intrinsic parameters π(o). Using the secret K and the parameters π(o), the receiver generates S16 the secret function (f*, Pf*, Df*), identical to the one generated by the emitter. Subsequently, the receiver decrypts the protected object o′ S17 by applying the deprotection function Df* to the coordinates of the vertices v=Df*(v′)=Df*◯Pf*(v)=Id(v). Finally, the recovered object o={v} is output, e.g. sent to the rendering engine for display S18 or stored.
At this stage, the objective is to define for each partition index p a function mf,p( ) that maps S23 the vertices of the object o contained in Af,p onto Bf,σf(p). These mapping functions need to be injective or bijective functions to ensure uniqueness of the transformed values. It should be noted that theoretically injective functions may yield many-to-one mappings due to insufficient numerical precision. Moreover, these mapping functions can be decomposed in three components mf,p=cf,p◯bf,p◯af,p, where:
The functions af,p( ) and cf,p( ) are fully determined by the partitioning defined in S21 and the permutation defined in S22. The warping function bf,p( ) can be selected from a pre-determined family of parameterised warping functions W={ww( )} and the parameters of the pseudo-randomly selected function set using the secret K.
This function set generation process essentially has 3 degrees of freedom, namely (i) the set of partitions Af and Bf, (ii) the permutations σf( ) and (iii) the set of warping functions W and the associated parameter values. Depending on the targeted security level and/or distortion level and/or computational efficiency, the system designer may decide not to exploit the full variability permitted by this generic design and fix some of the parameters e.g. using the same K-dependent partitions A and B for all functions in the set F.
The whole function set generation process will be exemplified hereafter with a number of preferred embodiments. For the sake of clarity, the 1-dimensional case is first detailed at length prior to a description of how it can be extended to multidimensional case.
In this scenario, the object o is a set of scalar values {xv} and the bounding box B(o) is the segment [L, R]=[minv xv, maxv xv]. The first step consists in generating two partitions Af and Bf made of Np elements. In a first embodiment, this is done by seeding a pseudo-random numbers generator (PRNG) with K+2·f (resp. K+2·f+1), drawing Np−1 numbers uniformly distributed over]L, R[, and sorting them to yield a1<a2< . . . <aNp-1 (resp. b1<b2< . . . <bNp-1). The different elements of the partition Af (resp. Bf) are then defined as Af,p=[ap-1, ap] (resp. Bf,p=[bp-1, bp]), with a0=b0=L and aNp=bNp=R. In a second embodiment, the partitioning operation is determined by some characteristics of the object o. In this case, additional information may need to be transmitted to the receiver through π(o) in order to guarantee that the recipient is able to replicate these operations even if the protection operation perturbs the statistics that the partitioning process rely on. For instance, the boundaries of the segments Af,p can be chosen at the location where the density of vertices is highest in an attempt to strongly impact the rendering of the object. In this case, these boundaries may need to be forwarded to the recipient as it may be unfeasible to retrieve them exactly from the protected object o′.
The second step generates a permutation σf( ) to associate unequivocally elements from Af to elements from Bf. This can be done using any state-of-the-art technique e.g. using a lookup table generated by a PRNG seeded with a secret derived from K and the function index f.
The third step is in charge of defining the mapping functions mf,p=cf,p◯bf,p◯af,p. The mapping function af,p( ) and cf,p( ) are already determined by the partitioning and permutation operations and can be expressed as follows in the 1-dimensional case:
a
f,p( ):Af,p=[af,p-1,af,p]→[0,1]
x
y=(x−af,p-1)/(af,p−af,p-1)
and
c
f,p( ):[0,1]→Bf,σf(p)=[bf,σf(p)-1,bf,σf(p)]
x
y=(bf,σf(p)−bf,σf(p)-1)·x+bf,σf(p)-1
Deriving the inverse functions for af,p( ) and cf,p( ) is straightforward.
The only thing left to define is the warping function bf,p( ): [0, 1]→[0, 1]. Any injective function respecting this constraint of domain definition can be used. A few examples are provided below:
MIRROR:[0,1]→[0,1]
x
y=ε·x+(1−ε)·(1−x),εε{0,1}
POWER:[0,1]→[0,1]
x
y=x
γ,γ>0
WRAP:[0,1]→[0,1]
x
y=x+κ−└x+κ┘,κε[0,1]
The skilled person will appreciate that variants are possible, for example it is possible to use “WRAP” with more than one ‘cut’ along each axis.
In the case of 3D objects o={(xv, yv, zv)}, a first straightforward embodiment consists in applying the system for 1D object previously described to each dimension independently. An example of this is given for the 2D case by 5A in
An alternate embodiment for the partitioning operation consists in iteratively splitting the largest partition element in two using a hyperplane aligned with one of the directions of the canonical coordinate system until the partition contains the desired number of elements Np. The partition is initialized with the whole bounding box B(o). An example of this partitioning strategy is illustrated in the 2D case by 5B in FIG. 5—the order of the partitions has been illustrated to facilitate comprehension.
An alternate embodiment for the mapping function is to consider functions that cannot be reduced to individual functions operating independently along each dimension. For instance, a point p in the unit hypercube can be represented by the radius ρ to the center c of the cube C and the unit direction d=(p−c)/∥p−c∥. The warping functions defined in the 1D case can then be applied to ρ. In order to guarantee that the protected points remain in the hypercube it is necessary to normalize ρ so that it lies in [0, 1] by dividing by a normalization factor ρn e.g. the half-length of the cube diagonal (ρn=√3/2) or the maximum radius (ρn=max{ρ|c+ρdεC}). The protected point is then obtained by p′=c+ρn·mf,p(ρ/ρn)·d. Similarly, the unit cube being invariant to rotations by multiples of π/2 around the canonical axis, such warping functions could also be used. The advantage of such multidimensional functions is that the information is distributed over all dimensions, hence providing additional security.
In a first embodiment, all secret functions {(f, Pf, Df)} are applied to the object o in order to obtain NF protected objects of′. The selection process then identifies the secret function which best satisfies (i.e. minimizes or maximizes) some fitness metric. Keeping in mind that the motivation of this protection technique is to distort the rendering of the object, one may want for instance to isolate the function which maximizes the distortion D( ) between the two 3D objects o and of′, i.e. f*=arg maxf D(o, of′), where the distortion function can be any standard metric used to evaluate the geometrical distortion between two clouds of points e.g. the Hausdorff distance.
In view of the computations required to generate NF protected objects, it is useful to have alternate strategies for scalability reasons. In another embodiment, the selection process is guided by the intrinsic properties of the object o and the characteristic of the secret functions {(f, Pf, Df)}. For instance, for each function, one could compute a correlation score between (i) the proportion of vertices contained in each element of the partition Af and (ii) the volume of each element of the partition Bf. By selecting the function having the highest correlation score, the selection process isolate the function which will spread the vertices of the object o the most evenly in the bounding box B(o).
The system 900 comprises a sender 910 and a receiver 940, each comprising at least one processor 911, 941, memory 912, 942, preferably a user interface 913, 943, and at least one input/output unit 914, 944. The sender 910 may for example be a personal computer or a workstation, while the receiver 920 for example may not only be a personal computer or a workstation, but also a television set, a video recorder, a set-top box or the like.
The sender 910 is configured to receive a 3D object via connection 920, encrypt the 3D object using a method according to any of the embodiments described herein, and send the encrypted 3D object to the receiver 940 via connection 930. The receiver 940 is configured to receive an encrypted 3D object via connection 930, decrypt the encrypted 3D object using a method corresponding to the encryption method according to any of the embodiments described herein, and output or render the decrypted 3D object, possibly via connection 950.
It will be appreciated that ‘connection’ is to be interpreted in a broad sense. As such, it may for example cover storage on a recording medium that is then transferred.
While the invention has been described for three dimensions, it may also be applied to encrypt objects of other dimensions, not only two but also any number of dimensions above three.
It will thus be appreciated that the present invention can provide a mechanism for ensuring the confidentiality of digital objects such as 3D models, and that the mechanism can visually differentiate protected and non-protected models for non-authorized users. It will also be appreciated that the protected 3D object (and the scene comprising the 3D object) can always be rendered, although it will be more or less recognizable.
Each feature disclosed in the description and (where appropriate) the claims and drawings may be provided independently or in any appropriate combination. Features described as being implemented in hardware may also be implemented in software, and vice versa. Reference numerals appearing in the claims are by way of illustration only and shall have no limiting effect on the scope of the claims.
Number | Date | Country | Kind |
---|---|---|---|
12306335.6 | Oct 2012 | EP | regional |