Next Article in Journal
Identification of Operating Parameters Most Strongly Influencing the Jetting Performance in a Piezoelectric Actuator-Driven Dispenser
Previous Article in Journal
Robotic Motion Learning Framework to Promote Social Engagement
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

Interpolating Spline Curve-Based Perceptual Encryption for 3D Printing Models

1
Department of IT Convergence & Application Engineering, Pukyong National University, Busan 608-737, Korea
2
Department of Information Security, Tongmyong University, Busan 608-711, Korea
*
Author to whom correspondence should be addressed.
Appl. Sci. 2018, 8(2), 242; https://doi.org/10.3390/app8020242
Submission received: 3 January 2018 / Revised: 22 January 2018 / Accepted: 1 February 2018 / Published: 5 February 2018

Abstract

:
With the development of 3D printing technology, 3D printing has recently been applied to many areas of life including healthcare and the automotive industry. Due to the benefit of 3D printing, 3D printing models are often attacked by hackers and distributed without agreement from the original providers. Furthermore, certain special models and anti-weapon models in 3D printing must be protected against unauthorized users. Therefore, in order to prevent attacks and illegal copying and to ensure that all access is authorized, 3D printing models should be encrypted before being transmitted and stored. A novel perceptual encryption algorithm for 3D printing models for secure storage and transmission is presented in this paper. A facet of 3D printing model is extracted to interpolate a spline curve of degree 2 in three-dimensional space that is determined by three control points, the curvature coefficients of degree 2, and an interpolating vector. Three control points, the curvature coefficients, and interpolating vector of the spline curve of degree 2 are encrypted by a secret key. The encrypted features of the spline curve are then used to obtain the encrypted 3D printing model by inverse interpolation and geometric distortion. The results of experiments and evaluations prove that the entire 3D triangle model is altered and deformed after the perceptual encryption process. The proposed algorithm is responsive to the various formats of 3D printing models. The results of the perceptual encryption process is superior to those of previous methods. The proposed algorithm also provides a better method and more security than previous methods.

1. Introduction

Three-dimensional (3D) printing is widely used in many areas of life [1,2]. Due to the fact that the benefits of 3D printing are enormous in many domains, 3D printing models are often attacked by pirates and distributed in commercial transactions without agreement from the original providers. The price of a 3D printer is cheap enough now that any individual user can buy a 3D printer, download 3D weapon models from the Internet, and print out real weapons such as knives and gun without any restriction. Moreover, certain special 3D printing models must be protected against unauthorized users. Consequently, security in the 3D printing industry is necessary.
Looking at 3D printing security techniques, watermarking methods have recently been proposed [3,4,5]. However, watermarking techniques do not alter the shape of 3D printing models. They only embed watermark data into 3D printing models, and anybody can view the shape of 3D printing models and design them again for printing. Therefore, watermarking is not suitable for secured storage and transmission; 3D printing models need to be encrypted. In addition, encrypting techniques must change the entire content of 3D printing models after the encryption process and be responsive to various model formats.
We propose an algorithm for perceptually encrypting 3D printing models. Facet data, the main component of 3D printing models, is used to interpolate a spline curve of degree 2 in three-dimensional space (3D space) that is determined by three control points, curvature coefficients, and an interpolating vector. The algorithm encrypts and distorts these features of the interpolating spline curve of degree 2 to obtain an encrypted 3D printing model. This paper is arranged as follows. We look into previous encryption techniques for 3D models and discuss 3D printing models related to the proposed method in Section 2. Section 3 presents the proposed algorithm in detail. In Section 4, we report visualization experiments, evaluations, and analysis of the proposed algorithm. Section 5 concludes.

2. Related Works

2.1. 3D Model Security

Watermarking techniques for 3D models have been researched. 3D model watermarking methods focus on the frequency domain and geospatial domain [6,7]. The key point of watermarking methods in the frequency domain is to embed watermark data into the spectrum coefficients of DFT, DWT, and DCT of a sequence of vertices or topologies, while the main concept of watermarking methods in the geospatial domain is based on modifying the value of vertices or geometric features such as length, area, or topology. Consequently, 3D model watermarking is not suitable for secured storage and transmission, as it fails to prevent attacks and illegal copying.
Some techniques that secretly share the content of 3D models and encrypt 3D CAD models have been proposed. Esam et al. [8] presented two methods that secretly transmit 3D models using Blakely, Thien, and Lin schemes. 3D models are separated into parts before they are shared, and users then reconstruct the 3D model from the shared parts of that model. However, this method is only for secured transmission. It is not an encryption method, and none of the 3D model is encrypted. Marc et al. [9] proposed a method by which 3D objects are encrypted based on geometry-preserving. This algorithm encrypts 3D objects by permuting the vertices of a given 3D object and distorting their shape while preserving its intrinsic geometrical properties. However, it does not alter the entire content of a 3D object and is not sensitive to the various formats of 3D objects. Moreover, the reconstruction cannot fully restore the original 3D object from the encrypted 3D object. Furthermore, the security of this method is very low. Cai et al. [10,11,12] proposed an encryption approach for 3D CAD models based on the geometric transformation of features of 3D CAD models. Here, a 3D CAD model is encrypted by randomization of the features of the 3D CAD model with an enhanced encryption transformation matrix. This method slightly changes the shape of 3D CAD models. Consequently, these methods do not achieve secured storage and transmission needed for 3D printing.

2.2. 3D Triangle Mesh-Based Encryption

A 3D triangle mesh has been used as an input for 3D printing [13,14]. A 3D triangle mesh is a set of facets. Each facet contains three vertices (a triangle) and a normal vector (see Figure 1). Each vertex is presented by three coordinates, x, y, and z. Thus, to encrypt a 3D triangle mesh, we only extract facets and encrypt all facets by the secret key. However, the normal vector of a facet only describes the direction of a facet and does not determine the shape of a 3D triangle mesh. Therefore, we only need to encrypt the triangles of 3D triangle mesh to generate the encrypted 3D triangle mesh.

3. The Proposed Algorithm

3.1. Overview

Figure 2 describes the proposed algorithm. Each facet is extracted from a 3D triangle mesh. The index of each facet is then used with the key value K to generate an interpolating vector corresponding to that facet. The key value K is created from a user’s key input by a key hashing function. The interpolating vector is then used to calculate the curvature coefficients of a spline curve of degree 2 in 3D space. These curvature coefficients of degree 2 are then used together with three vertices of facet to calculate three control points of the interpolated spline curve of degree 2 in 3D space. Next, the interpolating vector, curvature coefficients, and three control points of the spline curve are encrypted by the key value K. The encrypted curvature coefficients and the encrypted control points are used in an inverse interpolation process to compute three new vertices. These vertices will be distorted by the encrypted interpolating vector via the geometric distortion process in order to generate the encrypted facet. The encrypted facets are combined to obtain the encrypted 3D triangle mesh.
As mentioned above, a 3D triangle mesh contains a set of facets. Each facet includes three vertices. Each vertex is presented by x, y, and z coordinates. We assume that a 3D triangle mesh M = { F i | i [ 1 , | M | } with |M| the number of facets; F i = { v i , 1 , v i , 2 , v i , 3   and   n i } is the i t h facet with three vertices { v i , 1 , v i , 2 , v i , 3 } and the normal vector n i ( n x i , n y i , n z i ) . Due to the fact that the normal vector of a facet does not determine the shape of 3D triangle mesh, we briefly consider the facet F i includes three vertices as Equation (1):
F i = { v i , 1 , v i , 2 , v i , 3 | i [ 1 , | M | ] } = { v i , j | i [ 1 , | M | ] , j [ 1 , 3 ] }   with   v i , j = ( x i , j , y i , j , z i , j ) .
For brevity, main notations are defined as follows: T i = { t i , j | j [ 1 , 3 ] } is the interpolating vector corresponding to F i ; C i = { c i , k | k [ 1 ,   3 ] } is three control points of the facet F i ; A i is the constructed matrix from the curvature coefficients of the interpolated spline curve corresponding to F i ; E i = { e i , j | i [ 1 , | M | ] , j [ 1 , 3 ] } is the encrypted facet. Finally, G D ( . ) and E F ( . ) are the distortion function and the encryption function, respectively.

3.2. Features of the Interpolating Spline Curve in 3D Space

With each F i we have three vertices { v i , j | j [ 1 , 3 ] } . Each facet F i is used to interpolate a spline curve of degree 2 in 3D space. This spline curve passes three vertices of the facet and is controlled by three control points (see Figure 3) [15,16]. However, these control points are determined by an interpolating vector and curvature coefficients. Thus, we could conclude that an interpolating spline curve of degree 2 in 3D space is determined by three control points, curvature coefficients, and an interpolating vector.
The interpolating vector T i = { t i , j | j [ 1 , 3 ] } is a set of numbers therein t i , j < t i , j + 1 . The interpolating vector T i is then used to calculate the curvature coefficients. In order to respond to the condition t i , j < t i , j + 1 , we calculate t i , j by using indexes i , j , the value of |M| and K as described in Equation (2). The SHA-512 hashing function [17] is used to generate the key value K with a user’s key input. Each key value has a length of 512 bits.
t i , j = i · ( j + 1 ) | M | × K .
With the three vertices of the facet and T i , we can compute the curvature coefficients and three control points of spline curve of degree 2. The relationship between three control points C i = { c i , k | k [ 1 ,   3 ] } , v i , j and t i , j is defined as follows:
v i , j = k = 1 3 B k , d ( t i , j ) · c i , k
where B k , d ( t i , j ) is considered the curvature coefficient of degree d = 2 , corresponding to t i , j and the k t h control point, computed via the recursive function in Equations (4) and (5).
B k , d ( t i , j ) = t i , j t i , k t i , k + d t i , k B k , d 1 ( t i , j ) + t i , k + d + 1 t i , j t i , k + d + 1 t i , k + 1 B k + 1 , d 1 ( t i , j )
B k , 0 ( t i , j ) = { 1 i f   t i , k t i , j < t i , k + 1 0 o t h e r w i s e .
From Equation (3), we can see that there are three curvature coefficients { B 1 , 2 ( t i , j ) ,   B 2 , 2 ( t i , j ) ,   B 3 , 2 ( t i , j ) } with each t i , j . Therefore, we have 3 × 3 coefficients with the interpolating vector T i . These coefficients can be organized into a 3 × 3 matrix A i in which the j t h row contains B 1 , 2 ( t i , j ) ,   B 2 , 2 ( t i , j ) ,   B 3 , d ( t i , j ) :
A i = [ B 1 , 2 ( t i , 1 ) B 2 , 2 ( t i , 1 ) B 3 , 2 ( t i , 1 ) B 1 , 2 ( t i , 2 ) B 2 , 2 ( t i , 2 ) B 3 , 2 ( t i , 2 ) B 1 , 2 ( t i , 3 ) B 2 , 2 ( t i , 3 ) B 3 , 2 ( t i , 3 ) ] = [ a 1 , 1 a 1 , 2 a 1 , 3 a 2 , 1 a 2 , 2 a 2 , 3 a 3 , 1 a 3 , 2 a 3 , 3 ] = { a j , k | j , k [ 1 ,   3 ] }   with   a j , k = B k , 2 ( t i , j ) .
Now, we apply three vertices of F i and t i j | j [ 1 , 3 ] to Equation (3), the relationship between F i ,   T i , and C i is described as follows:
[ v i , 1 v i , 2 v i , 3 ] = [ B 1 , 2 ( t i , 1 ) B 2 , 2 ( t i , 1 ) B 3 , 2 ( t i , 1 ) B 1 , 2 ( t i , 2 ) B 2 , 2 ( t i , 2 ) B 3 , 2 ( t i , 2 ) B 1 , 2 ( t i , 3 ) B 2 , 2 ( t i , 3 ) B 3 , 2 ( t i , 3 ) ] · [ c i , 1 c i , 2 c i , 3 ] = [ a 1 , 1 a 1 , 2 a 1 , 3 a 2 , 1 a 2 , 2 a 2 , 3 a 3 , 1 a 3 , 2 a 3 , 3 ] · [ c i , 1 c i , 2 c i , 3 ] F i = A i · C i
C i = ( A i ) 1 · F i [ c i , 1 c i , 2 c i , 3 ] = ( [ a 1 , 1 a 1 , 2 a 1 , 3 a 2 , 1 a 2 , 2 a 2 , 3 a 3 , 1 a 3 , 2 a 3 , 3 ] ) 1 · [ v i , 1 v i , 2 v i , 3 ] .
Finally, we can calculate three control points C i from the curvature coefficients and three vertices of facet F i as shown in Equation (8).

3.3. Features of Interpolating Spline Curve Encryption

After we compute the features of the interpolating spline curve in 3D space, we can encrypt them by the encryption function E F ( . ) , which is the key value K. We can use conventional encryption functions such as AES, DES, or XOR for the encryption function E F ( . ) . Here, for simplicity, we encrypted features by the secret key value K as described in Equations (9)–(11), where T i , A i , and C i are the encrypted interpolating vector, the encrypted curvature coefficients, and the encrypted control points, respectively.
T i = E F ( K , T i ) = { ( K | M | + j ) × t i , j | j [ 1 ,   3 ] } = { t i , j | j [ 1 ,   3 ] }
A i = E F ( K , A i ) = { K | M | × a j , k | j , k [ 1 ,   3 ] } = { a j , k | j , k [ 1 ,   3 ] }
C i = E F ( K , C i ) = { ( K | M | + j ) × c i , j | j [ 1 ,   3 ] } = { c i , j | j [ 1 ,   3 ] } .
After the feature encryption process, the encrypted curvature coefficients A i and the encrypted control points C i are used in the inverse interpolation process in order to compute three new vertices as shown in Equation (12). Three new vertices are finally altered by the geometric distortion process in order to generate the encrypted facets E i . The geometric distortion process uses the encrypted interpolating vector T i as shown in Equation (13).
F i = A i · C i [ v i , 1 v i , 2 v i , 3 ] = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] · [ c i , 1 c i , 2 c i , 3 ]
E i = G D ( T i , F i ) = { ( t i , j + 1 ) × v i , j | j [ 1 ,   3 ] } = { e i , j | j [ 1 ,   3 ] }   with   e i , j = ( e x i , j , e y i , j , e z i , j )
E M = { E i | i [ 1 , | M | ] } .
The encrypted 3D triangle mesh E M is a set of the encrypted facets as shown in Equation (14). Figure 4 show the encryption process of a facet. Three control points are encrypted by the key value K and are then used to compute three new vertices v i , 1 , v i , 2 and v i , 3 by inverse interpolation (see Figure 4a). Three new vertices are formed into a new facet. Finally, this new facet is distorted by the geometric distortion to obtain the encrypted facets shown in Figure 4b.

3.4. Decryption Process

The decryption process is an inverse process of the encryption process. Each encrypted facet is also extracted from the encrypted 3D triangle mesh. The key value K and the index of each facet is used to generate the interpolating vector and the curvature coefficients as shown in Equation (2) and Equation (6) in Section 3.2. These features are then encrypted by the key value K that is used in Section 3.3. The encrypted interpolating vector and three vertices of the encrypted facet are used in the re-distortion process to compute three new vertices. These vertices are then used with the encrypted curvature coefficients to re-compute three encrypted control points. Three encrypted control points are then decrypted by the key value K in order to get three control points. Finally, three control points and the curvature coefficients are used to decrypt three vertices of the facet. The decrypted 3D triangle mesh is a set of decrypted facets.
The purpose of the proposed algorithm is to prevent illegal copying or illegal access from unauthorized users and attacks from hackers. Thus, if an authorized user or receiver would like to use the encrypted 3D printing models for 3D printing, they only need the secret key to decrypt and use them as 3D printing inputs. The decryption does not affect the printing process. To print a real object from a 3D triangle mesh, the 3D triangle mesh must be cut into a set of 2D slices and stored in G-code format. The content of the G-code format consists in paths that contain 2D coordinates for the CNC machine in a 3D printer. Consequently, the decryption process does not affect other aspects of the 3D printing process.

4. Experimental Results, Analysis, and Evaluation

We tested the proposed algorithm with 3D triangle meshes in Table 1. The format of the 3D triangle meshes was an STL file or a VRML file [13,14]. The information of the 3D triangle meshes is given in Table 1. In order to evaluate the proposed algorithm, we evaluated the perceptual encryption results of the 3D triangle meshes, the security of the encrypted 3D triangle meshes, and the computation time of the algorithm. Section 4.1 shows the perceptual encryption result of the 3D triangle meshes (visualization experiments). The security of the 3D triangle meshes and the computation time of the proposed algorithm are explained in Section 4.2 and Section 4.3, respectively.

4.1. Visualization Experiments

To evaluate the visualization experiments, we evaluated the perceptual encryption results of the 3D printing models. The aim of the proposed algorithm is to alter and distort the shape of 3D printing models. Experimental results are shown in Figure 5. The number of facets in each 3D triangle mesh is different. The encryption process changes the values of the vertices of facets. Thus, the shape of the facets is also altered. After the encryption process, facets are distorted into big facets (see “Encrypted Wheel Camping”) or small facets (see “Encrypted Car” and “Encrypted Knife”) or changed location, positioned disorderly (see “Encrypted Yoda, Encrypted Lion”). Thus, the shape of the 3D triangle meshes is altered. The content of the 3D triangle meshes is completely altered after the perceptual encryption process. Pirates or unauthorized users cannot extract or view the content of 3D triangle meshes.
In Marc’s method [9], he permuted the vertices of 3D meshes. According to his permutation, the shape of the 3D mesh changed, but he did not show the experimental results of his method. Moreover, the decryption of this method cannot fully restore the original 3D meshes from the encrypted 3D objects. In Cai’s method [12], the encrypted CAD model was slightly changed (see Figure 6a,c). Anybody can view the content of the encrypted CAD model. We compared Cai’s model with our proposed algorithm. Results are shown in Figure 6b,d. No unauthorized user could view or steal it, but the entire model was altered. Thus, the perceptual results of our proposed method are superior to those of Cai’s method.

4.2. Security Evaluation

We analyzed the length of the secret key and the entropy of the encrypted 3D triangle mesh to evaluate the security of the proposed algorithm. If the secret key length is long, it is difficult to attack the encrypted 3D triangle mesh. If the entropy of the encrypted 3D triangle mesh is high, the security of the encrypted 3D triangle mesh will be high. In order to decrypt the encrypted 3D triangle mesh, a pirate must decrypt all of the encrypted facets of the 3D triangle mesh without the secret keys. In the proposed algorithm, the SHA-512 hashing function with a 512 bit salt is used to obtain random keys. Thus, if a user inputs a word with length L k as his/her password, an attacker has to compute L k × 2 512 keys to access the encrypted 3D triangle mesh.
The entropy H ( x ) of a discrete random variable x with a possible value { x 1 , x 2 , , x n } is defined as
H ( x ) = τ = 1 n p ( x τ ) · l o g 2 p ( x τ )
where p ( x τ ) is the probability density function of x on range { x 1 , x 2 , , x n } . Based on the equations in Section 3, the entropy of the encrypted 3D triangle mesh is dependent on both the secret key K, the interpolating vector T i , the matrix of curvature coefficients A i , three control points C i , and the number of facets |M|. However, K, T i , A i , C i , and |M| are random independent variables. Therefore, the entropy of the encrypted 3D triangle mesh H M is the sum of the entropies of variables K, T i , A i , C i , and |M| and is determined by Equation (16):
H M = H ( K ) + H ( T i ) + H ( A i ) + H ( C i ) + H ( | M | ) = | K | · log 2 | K | ) + | T i | · log 2 | T i | + | A i | · log 2 | A i | + | C i | · log 2 | C i | + | M | · log 2 | M | ) .
| T i | = | C i | = 3 and | A i | = 9 . In summary, the total entropy H M is dependent on K and the number of facets |M| in the 3D triangle mesh. If the secret key K is fixed, we can calculate the entropy of the encrypted 3D triangle mesh according to the number of facets |M| as shown in Table 1. The entropy of the encrypted 3D triangle mesh is formed from 4981 to 1.3 × 106 dB with | M | [ 544 ,   79162 ] . From Equation (16) and Table 1, we can see that, if |M| is high, the entropy will be high.
Esam [8] divided the faces of a 3D model in N share hyper-planes before sharing. This mean a 3D model is divided into N parts before sharing. Thus, N is the secret key, and the entropy of Esam’s method is always fixed. In Esam’s method, N = 4, so the entropy of Esam’s method is always 8 dB. Moreover, in the 3D space of the 3D model, the maximum number of hyper-planes is 360. Therefore, the maximum entropy of Esam’s method is 3057 dB. Marc used the secret key K to encrypt and change the location of the vertices of the 3D mesh in OXYZ space. Clearly, Marc’s method encrypted the vertices of the 3D mesh with a secret key K. However, the number of vertices in a 3D mesh is always smaller than the number of facets. Thus, the entropy of this method is always lower than the proposed method. The entropy of Marc’s method is formed from 2218 to 6.04 × 105 dB (see Table 1). Cai encrypted the features of the 3D CAD model with a random 3 × 3 matrix generated by a secret key. Thus, we can consider that Cai’s method is encrypted 3D CAD models based on features and a random matrix by a secret key K. Therefore, the entropy of this method is dependent on both the number of features and the 3 × 3 matrix. In the experimental results, around 50% of the facets are selected as the features of the 3D CAD model. Based on the test models in Table 1, the entropy of Cai’s method is formed from 2754 to 7.38 × 105 dB. Figure 7 shows the entropy of the proposed method and the entropy of the previous methods according to the number of facets. The entropy of our method is always greater than the entropy of previous methods. Consequently, our method is superior, providing more security compared with previous methods.

4.3. Computation Time and Analysis

We tested the proposed algorithm with a computer Intel Core i7-CPU 3.5 GHz; RAM-8 GigaBytes; Operating System: Windows 7 Microsoft–64 bits; Visual Studio 2013–C++. The computation time of the proposed algorithm was dependent on the number of facets in each model. With the test models in Table 1, computation time ranged from 17.5 to 17,486 ms with | M | [ 544 , 79162 ] . Based on Table 1, we conclude that, if the number of facets is small, the computation time will be short.
Marc did not provide computation time. He only explained that his method will loop through all of the indices of the set of elements and will permute and swap at each iteration. As a result, the encryption time is expected to scale linearly with the complexity of the object. In addition, the decryption process requires swap operations to be performed in the reverse order than the one used for encryption. As a result, the decryption process is more “expensive” than encryption. We found that the encryption process of Marc’s method was twice as long as our method and that the decryption process of Marc’s method was three times as long. In our method, the encryption time and decryption time are similar. Moreover, the average computation time (including encryption and decryption times) of Marc’s method is 1.25 times greater than the average computation time of the proposed method. In Cai’s method, he only explained and analyzed factors affecting computation time. The computation time of Cai’s method depends on how long it takes for the valid CAD model to check the time of feature encryption and the time of edge and facet encryption. He concluded that his method will meet users’ requirements. We estimate that, with a computer has the same parameters, Cai’s method must compute three parameters: valid model checking, feature encryption, and edges & facet encryption. We were able to estimate that the computation time of Cai’s method is at least twice as long as our method. Therefore, we concluded that our method is faster than Cai’s method as well. Figure 8 shows the computation time of the proposed algorithm and Cai’s method with the test model in Table 1, according to the number of facets.

5. Conclusions

We present an algorithm for perceptually encrypting 3D printing models in this paper. The algorithm encrypts control points and curvature coefficients of the interpolating spline curve and geometric distortion. In light of the results of visualization experiments and evaluations, the proposed algorithm is shown to be effective and responsive to the various formats of 3D printing models. The perceptual encryption results show that the proposed algorithm is more effective than previous methods; security is higher and computation takes less time. Therefore, the proposed algorithm provides more security than previously proposed methods. Our algorithm can be used for secured storage and transmission. However, the proposed algorithm does have limitations: computation is complex, and the algorithm is only useful for directly encrypting original 3D printing models. Some applications may require a combination between encryption and compression, and some may require real-time operation. We seek to improve our algorithm so that it can secure transmission systems and can be used in real-time applications and applied in compression domains. We hope to find other applications for our method as well.

Acknowledgments

This research was supported by the Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education, Science and Technology (NRF-2016R1D1A3B03931003 & NRF-2017R1A2B2012456), the MSIP (Ministry of Science and ICT), Korea, under the Grand Information Technology Research Center support program (IITP-2017-2016-0-00318) supervised by the IITP (Institute for Information & communications Technology Promotion), and Brain Busan (BB21) by the Busan Metropolitan City.

Author Contributions

In this research activity, all of the authors joined and researched in the data analysis and preprocessing phases, the simulation, the results analysis and discussion, and the manuscript’s preparation. All of the authors have approved the submitted manuscript. All the authors equally contributed to the writing of the paper.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. United States Government Accountability Office. 3D Printing Opportunities, Challenges, and Policy Implications of Additive Manufacturing; DIANE Publishing Company: Collingdale, PA, USA, 2015.
  2. 3D Systems Circle Rock Hill. White Paper: How 3D Printing Works, The Vision, Innovation and Technologies behind Inkjet 3D Printing; 333 Three D Systems Circle: Rock Hill, SC, USA, 2012. [Google Scholar]
  3. Ho, J.U.; Kim, D.G.; Choi, S.H.; Lee, H.K. 3D Print-Scan Resilient Watermarking Using a Histogram-Based Circular Shift Coding Structure. In Proceedings of the 3rd ACM Workshop on Information Hiding and Multimedia Security, Portland, OR, USA, 17–19 June 2015; pp. 115–121. [Google Scholar]
  4. Yamazaki, S.; Satoshi, K.; Masaaki, M. Extracting Watermark from 3D Prints. In Proceedings of the 22nd International Conference on Pattern Recognition, Stockholm, Sweden, 24–28 August 2014; pp. 4576–4581. [Google Scholar]
  5. Suzuki, M.; Piyarat, S.; Kazutake, U.; Hiroshi, U.; Takashima, Y. Copyright Protection for 3D Printing by Embedding Information inside Real Fabricated Objects. In Proceedings of the 10th International Conference on Computer Vision Theory and Applications, Berlin, Germany, 11–14 March 2015; pp. 180–185. [Google Scholar]
  6. Tan, X.H. A 3D Model Asymmetric Watermarking Algorithm Based on Optimization Statistics. J. Theor. Appl. Inf. Technol. 2011, 51, 175–181. Available online: http://www.jatit.org/volumes/Vol51No2/2Vol51No2.pdf (accessed on 3 February 2018).
  7. Ramya, P.; Nalini, D. A New Watermarking For 3D Models Based On Integral Invariants. Int. J. Innov. Res. Comput. Commun. Eng. 2013, 1, 190–192. Available online: https://www.ijircce.com/upload/2013/april/8_A%20New.pdf (accessed on 3 February 2018).
  8. Esam, E.; Ben, A. Secret Sharing Approaches for 3D Object Encryption. Expert Syst. Appl. 2011, 38, 13906–13911. [Google Scholar] [CrossRef]
  9. Marc, E.; Maetz, Y.; Gwenael, D. Geometry-preserving Encryption for 3D Meshes. In Proceedings of the Conference: Compression at Representation Signal Audio, Le Creusot, France, 28–29 November 2013; pp. 7–12. [Google Scholar]
  10. Cai, X.T.; He, F.Z.; Li, W.D.; Li, X.X.; Wu, Y.Q. Encryption Based Partial Sharing of CAD models. Integr. Comput.-Aided Eng. 2015, 22, 243–260. [Google Scholar] [CrossRef]
  11. Cai, X.T.; Li, W.D.; He, F.Z.; Li, X.X. Customized Encryption of Computer Aided Design Models for Collaboration in Cloud Manufacturing Environment. J. Manuf. Sci. Eng. 2015, 137, 1–10. [Google Scholar] [CrossRef]
  12. Cai, X.T.; He, F.Z.; Li, W.D.; Li, X.X.; Wu, Y.Q. Parametric and Adaptive Encryption of Feature-Based Computer-Aided Design Models for Cloud-based Collaboration. Integr. Comput.-Aided Eng. 2017, 24, 129–142. [Google Scholar] [CrossRef]
  13. STL Format in 3D Printing. Available online: https://all3dp.com/what-is-stl-file-format-extension-3d-printing/ (accessed on 3 February 2018).
  14. The Virtual Reality Modeling Language. Available online: http://www.cacr.caltech.edu/~slombey/asci/vrml/ (accessed on 3 February 2018).
  15. Shene, C.K. Michigan Technological University. Introduction to Computing With Geometry Notes. Available online: http://pages.mtu.edu/~shene/COURSES/cs3621/NOTES/ (accessed on 3 February 2018).
  16. Lyche, T.; Morken, K. Spline Methods Draft; Dept. Informatics Centre of Mathematics for Applications, University of Oslo: Oslo, Norway, 2008. [Google Scholar]
  17. RSA Lab. Password-Based Cryptography Standard; RSA Lab.: Bedford, MA, USA, 2006. [Google Scholar]
Figure 1. Structure of a 3D triangle mesh.
Figure 1. Structure of a 3D triangle mesh.
Applsci 08 00242 g001
Figure 2. The proposed algorithm.
Figure 2. The proposed algorithm.
Applsci 08 00242 g002
Figure 3. Example interpolating spline curve.
Figure 3. Example interpolating spline curve.
Applsci 08 00242 g003
Figure 4. Facet encryption: (a) features encryption and inverse interpolation; (b) geometric distortion.
Figure 4. Facet encryption: (a) features encryption and inverse interpolation; (b) geometric distortion.
Applsci 08 00242 g004
Figure 5. Experimental results with test models.
Figure 5. Experimental results with test models.
Applsci 08 00242 g005
Figure 6. Perceptual encryption results of our proposed method and Cai’s method. (a,c) Results of Cai’s method; (b,d) results of the proposed method.
Figure 6. Perceptual encryption results of our proposed method and Cai’s method. (a,c) Results of Cai’s method; (b,d) results of the proposed method.
Applsci 08 00242 g006
Figure 7. Entropy of the proposed method.
Figure 7. Entropy of the proposed method.
Applsci 08 00242 g007
Figure 8. Computation time of the proposed method.
Figure 8. Computation time of the proposed method.
Applsci 08 00242 g008
Table 1. Experimental results.
Table 1. Experimental results.
Name# FacetsEntropy (dB)Computation Time (ms)
Proposed MethodCai’s MethodMarc’s MethodEsam’s Method
Wheel Camping5444981275422188.017.5
Knife117612,032670554308.029
Aperture Face202622,29212,48510,1378.046
Flower298634,50819,39015,7668.072
Gun396147,37826,68121,7148.090
Castle746696,09654,36244,3228.0209
Batman13,566186,268105,76786,3608.0591
Rabbit21,056302,443172,161140,7048.01312
Moto-bike22,034317,932181,022147,9598.01421
Car32,426485,937277,229226,7678.02951
Yoda49,844777,86044,4681364,0218.06763
Lion79,1621,288,203737,923604,5358.017,486

Share and Cite

MDPI and ACS Style

Pham, G.N.; Lee, S.-H.; Kwon, K.-R. Interpolating Spline Curve-Based Perceptual Encryption for 3D Printing Models. Appl. Sci. 2018, 8, 242. https://doi.org/10.3390/app8020242

AMA Style

Pham GN, Lee S-H, Kwon K-R. Interpolating Spline Curve-Based Perceptual Encryption for 3D Printing Models. Applied Sciences. 2018; 8(2):242. https://doi.org/10.3390/app8020242

Chicago/Turabian Style

Pham, Giao N., Suk-Hwan Lee, and Ki-Ryong Kwon. 2018. "Interpolating Spline Curve-Based Perceptual Encryption for 3D Printing Models" Applied Sciences 8, no. 2: 242. https://doi.org/10.3390/app8020242

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop