1 Introduction

With the development of multimedia applications, 3D models are almost everywhere in the field of digital images due to their complex spatial information [8, 18, 20]. Today, 3D models have been widely used in various fields, such as computer-aided design, virtual reality, digital visualization, and 3D printing [10]. Among them, 3D printing based on Stereolithography (STL) file format [4] is widely used in medical institutions, aerospace, education, e-commerce, military and other fields. Therefore, 3D models plays an important role in the modern big data era. However, an unauthorized cryptanalysis is a major threat to multimedia messaging [1, 13, 32, 36, 42]. So how to effectively protect the security of 3D models in the communication becomes a problem that needs to be solved.

Chaos is sensitive to initial values and parameters, ergodicity and deterministic inherent randomness. This makes him have some characteristics of cryptography and provides a new solution for multimedia encryption [41]. However, some chaotic encryption systems are pointed out to be insecure. For example, M. Preishuber et al. [24] pointed out that deliberately chosen insecure encryption systems still pass the type of tests used to support the security of chaotic image security systems. Therefore, it is very important to carry out a comprehensive evaluation of chaotic cryptography.

In this paper, a fast encryption scheme of 3D models based on chaotic system is proposed, which converts 3D model into 2D object similar to image format. For the difference between 3D models encryption and image encryption, The additional work in this article is as follows:

  1. (1)

    The coordinate point data in 3D models is a floating point type. We split the array of floating point numbers into an array of integers and an array of decimals during the diffusion process. The integer part is XOR-encrypted, and the fractional part is only scrambled. Finally, a new array of floating point numbers is formed according to the same position addition operation to complete its diffusion.

  2. (2)

    There are some redundant and duplicate text information in the STL file that stores 3D models. As shown in Section 3.1, text information such as “facet normal”, “outer loop”, “vertex”, and so on exists in the STL file. It exists only to facilitate reading without having any effect on the structural information of the 3D models. Therefore, only the key information (coordinate point data) is extracted for encryption in order to achieve the effect of fast encryption.

  3. (3)

    We generated a set of random points using a one-dimensional (1D) chaotic map and added it to a scrambled data. The addition of random points not only hides the original coordinate quantity information, but also plays a certain interference effect on the original data.

The remainder of the article is divided into six parts. Section 2 introduces related works; Section 3 introduces preparation works; Section 4 introduces the encryption algorithm; Section 5 analyzes the experimental results; Section 6 analyzes the security; Section 7 summarizes the full text and suggests further work.

2 Related works

The study of cryptography is a hot spot from beginning to end [11, 12, 28]. Since Matthews proposed the chaotic encryption algorithm in 1989 [21], many related studies have been proposed. These include image encryption [19, 31, 33,34,35, 39, 43, 44], voice encryption and text encryption [2, 3, 23, 26, 27]. In recent years, some 3D models encryption algorithms based on chaos theory have also been proposed. Rey [25] proposes 3D models encryption method using 2D Arnold map and 3D celluar automata; Jin et al. [14] propose a 3D models encryption method using 3D Lu mapping. 3D objects mean higher levels of representation or semantics than 1D and 2D data [15]. The proposed algorithm directly encrypts the 3D objects of 3D models, which makes the encryption process tedious and increases the encryption time. Therefore, in this paper, 3D models is transformed into two-dimensional objects, and then processed to achieve the effect of fast encryption.

In addition, Fridrich [9] proposed a chaotic-based image encryption scheme should consist of two processes: permutation (relative position change of elements) and diffusion (modification of element values). Various image encryption systems based on this method are proposed, which demonstrates the security of the method and has excellent encryption effect [6, 7, 38, 40, 45]. Because of the similarity between 3D models data and image data, the encryption scheme based on scrambling-diffusion approach is adopted in this paper.

3 Preparation

3.1 Introduction to STL Files in 3D models

An STL file is a tessellated (triangulated) surface model [5, 16, 29]. It’s an interface protocol developed by 3D SYSTEM in 1988. It is divided into ASCII code and binary. Among them, ASCII files and binary files can be easily converted by professional software, such as Siemens NX 12.0. The ASCII format file is easy to read and test. So it is selected as the research object. The STL file format is as follows:

figure d

Due to the standardization of its format, the extraction of coordinate data in STL file is very convenient. Therefore, it was chosen as the research object. In fact, for other formats of 3D models files, the reading method will change. Though the encryption process will not change much.

3.2 Sort scrambling introduction

The algorithm uses the pseudo-random sequence generated by the chaotic system to sort and scramble, as shown in Eq. (1):

$$ \left\{\begin{array}{l} index=\mathrm{sort}(w)\\ {}{p}_1=p(index)\end{array}\right. $$
(1)

w is a random sequence generated by the chaotic system, p is the original data sequence. sort(w) is a function to find the index mapping between a sequence w and its sortedversion w in the ascending order. Then p is reordered according to the sequence index to generate p1. For example, whenw = [0.45, 0.21, 0.8, 0.7, 0.9], Use the sort(w) function to get w = [0.21, 0.45, 0.7, 0.8, 0.9], index = [2 1 4 3 5]. if p = [1, 2, 3, 4, 5], reorder by index to get p1 = [2, 1, 4, 3, 5].

3.3 The 1D chaotic map

In this algorithm, we use the 1D chaotic map proposed by May to perform early scrambling and generate random numbers [22, 37]. The 1D chaotic map can be defined as Eq. (2).

$$ {x}_{n+1}=\mu {x}_n\left(1-{x}_n\right) $$
(2)

In this model, when xn ∈ (0, 1) and μ ∈ (3.5699456, 4], the 1D chaotic map is in chaotic state that the resulting sequence {xn, n = 0, 1, 2, 3…} is aperiodic, non-converged, and very sensitive to initial values. In order to avoid the periodic window, this article uses the parameters in the μ ∈ (3.99, 4] range.

3.4 The Logistic-dynamic coupled logistic map lattice (LDCML) Model

Traditional coupled Logistic map (CML) model proposed by Kaneko [17]:

$$ xn+1(i)=\left(1-e\right)\left(f\left( xn(i)\right)\right)+\left(e/2\right)f\left( xn\left(i-1\right)\right)+f\left( xn\left(i+1\right)\right) $$
(3)

In this model, the parameter e(0 ≤ e ≤ 1) is coupling coefficient; the parameter n(n = 1, 2, 3…) is time sequence. The parameter i(1 ≤ i ≤ L) is the number of lattices, i + 1 or i − 1 is the lattices adjacent to i.The function is the 1D logical map. The boundary conditions are that i + 1 = 1 when i = L and i − 1 = L when i = 1, which can ensure that lattice is in the range of (1, L).

However, due to the simple structure of the CML spatiotemporal chaotic system, its chaos is only determined by the parameter μ and parameter e. The most important thing is that when e < 0.3 or μ < 3.8, a lot of crystal lattice in CML will be reduced or even disappeared. The LDCML proposed by Wang, Feng et al. [30] is as follows:

$$ xn+1(i)=\left(1-L(e)\right)\left(f\left( xn(i)\right)\right)+\left(L(e)/2\right)f\left( xn\left(i-1\right)\right)+f\left( xn\left(i+1\right)\right) $$
(4)

In LDCM, the meaning and boundary conditions of i, n, f(x) are the same as CML. The difference is that the coupling coefficient is e in CML and the coupling coefficient is L(e) in LDCM, where L(e) = μ0e(1 − e). In order to obtain the best dynamic, the μ0 in the logic map L(e) is 3.99.

The paper [17] studied the Kolmogorov-Sinai entropy, bifurcation diagram, information entropy, spatiotemporal behavior and mutual information of the LDCML system to prove that LDCML is more advanced than the traditional CML model. As shown in Fig. 1, this paper takes the number of 3 lattices, and its initial value and parameters use the data of Eq. (4) in this experiment, and generate its bifurcation diagram in 3 lattices. It can be found that it has good chaotic characteristics.

Fig. 1
figure 1

Bifurcation diagram of lattices of LDCML: a Bifurcation diagram of the first lattice of LDCML, b Bifurcation diagram of the Second lattice of LDCML, c Bifurcation diagram of the Third lattice of LDCML

4 Algorithm description

4.1 Reading and writing of STL files

The main method of reading in this paper is to first detect the file format of the STL. If it is a binary format, it can be converted into ASCII format using professional processing software. Since the normal vector coordinates can be calculated according to Eq. (5), in this paper, the while loop in Matlab are used to extract only the coordinate points according to their file format, and an r × 3 matrix is generated to encrypt it.

$$ \left\{\begin{array}{l} nx=\left(v1y-v3y\right)\left(v2z-v3z\right)-\left(v1z-v3z\right)\left(v2y-v3y\right)\\ {} ny=\left(v1z-v3z\right)\left(v2x-v3x\right)-\left(v2z-v3z\right)\left(v1x-v3x\right)\\ {} nz=\left(v1x-v3x\right)\left(v2y-v3y\right)-\left(v2x-v3x\right)\left(v1y-v3y\right)\end{array}\right. $$
(5)

nx, ny, nz refers to the normal vector coordinate; v1x, v1y, v1z refers to the x, y, z coordinate points of the i(i = 1, 2, 3)th points of the triangular face.

After the decryption is completed, we write the data of the coordinate points to the file to generate a ciphertext file. In this article, we only write coordinate point data and write all normal vectors to zero. Even if the attacker uses the Eq. (5) to calculate the normal vector coordinates and successfully read the STL file, the result is a meaningless, messy model.

As shown in Fig. 2. This paper selects two 3D models: the first is a simpler cylindrical model, and the second is a topographic map of a certain area of the United States. The reason for selecting the Terrain model is that it has complex detail structure, which is more helpful to verify the effect of the algorithm. The data type is all positive floating point numbers with a total of 29,757 vertex information.

Fig. 2
figure 2

3D models showing an angle Encryption: a Cylindrical model, b Terrain model

4.2 Initial key generation

The keys used in this article are as follows:

$$ Key=\left({x}_1,x{}_2,{x}_3,u,{u}_0,e, bitxor\_ value,T\right) $$
(6)

where x1, x2, x3 is the initial value corresponding to 3 lattice in the LCDML system, u, u0, e is the parameter of the Eq. (4) chaotic system, and bitxor _ value is the value used for the pseudo-random sequence required for the diffusion. T is the number of discarded values when the transient is removed.

In this paper, the plaintext data P uses hash-256 to generate a 256-bit key and extracts the first 240-bit generated key K. The key K is divided into six groups of 40-bit subkeys (K1, K2, K3, K4, K5, K6), and is converted into a decimal fraction (b1, b2, b3, b4, b5, b6)between [0, 1]. Where (b1, b2, b3) is the initial value of the 3 cells of the LDCML system coefficient u = 3.99 + 0.01 × b4, u0 = 3.99 + 0.01 × b5, e = 0.01 + 0.09 × b1.

The method of generation of bitxor _ value is shown in Fig. 3. Its value is used in XOR encryption phase, and the function is to limit the value after the diffusion of plaintext data to a certain range. First, the largest integer in plaintext P is counted and converted to binary. Then the maximum integer within this binary bit is calculated according to its binary bits, and finally it is added 1.

Fig. 3
figure 3

Bitxor_value generation process

4.3 Encryption algorithm

  1. Step 1:

    Generate Key. Bring K into Eq. (6) and generate Key. The specific steps are discussed in Section 4.2.

  2. Step 2:

    Generate A. Use Eq. (7) to rewrite x1 to generate x0. Bring x0, u0 into Eq. (2) and iterate r × 3 + T times. Take the values of the last r × 3 iterations to form A.

$$ {x}_0= abs\left({x}_1-\operatorname{mod}\left( sum\left( floor(P)\right),100\right)/1000\right) $$
(7)
  1. Step 3:

    Permutation. Use A and scramble the plaintext P according to Eq. (1) to generate P1.

  2. Step 4:

    Generate and insert random points. Bring A into Eq. (8) and generate Z1. The matrix that converts Z1 into a matrix with a size of r1 × 3 is connected to the end of P1 to generate P2.

$$ \left\{\begin{array}{l} random=\mathrm{floor}\left(\left(r\times 3\times {x}_1\right)/100+1\right)\times 3\times 3\\ {}{Z}_0=A\left(1, random+1: random\times 2\right)\\ {}{Z}_1=\mathrm{floor}\left( bitxor\_ value\times A\right)+\mathrm{roundn}\left({Z}_0,-4\right)\end{array}\right. $$
(8)

where floor represents round down for the number; roundn represents the first 4 decimal places of the Z0 sequence.

  1. Step 5:

    Generate sequence (B1, B2, B3). The (b1, b2, b3) in the K is taken as the initial value of the LDCML system. Bring u, u0, e into Eq. (4) and iterate r × 3 + random + T times. Take the values of the last r × 3 + random iterations to form (B1, B2, B3).

  2. Step 6:

    Secondary permutation. Use B1 and scramble P2 according to Eq. (1) to generate P3.

  3. Step 7:

    Diffusion. Firstly, P3 is divided into an integer part P4 and a fractional part P5. Secondly, use bitxor _ value and B2 into Eq. (9) for XOR operation on P4; P5 is scrambled using the Eq. (1). Finally, the integer part and the fractional part are added to obtain P6.

$$ \left\{\begin{array}{l}{T}_i=\operatorname{mod}\left(\left\lfloor P\mathrm{i}\times {B}_2\times {10}^{14}\right\rfloor, bitxor\_ value\right)\\ {}{T}^{\hbox{'}}=\left\{\begin{array}{l}{T}_1^{\hbox{'}}=p1\oplus {T}_1\\ {}{T}_{1+1}^{\hbox{'}}={p}_{i+1}\oplus {T}_i^{\hbox{'}}\oplus {T}_i\end{array}\right.\end{array}\right. $$
(9)
  1. Step 8:

    Loop or output ciphertext. Judge whether round < L is true. If it is established, P6 is ciphertext V. If it is not true, the Step 6 - Step 7 are carried out again by re-entering the cycle.

The meaning of variables in encryption can be found in Table 1. To put it simply, the encryption process of this algorithm is as follows: Firstly, the parameters Key for chaos system are generated in accordance with Section 4.2. Secondly, the 1D chaotic system is used to scramble its plaintext. Thirdly, the LDCML system is used to scramble and diffusion it again. Finally, determine if you need to cycle again and finally generate ciphertext. Figure 4 shows the schematic block diagram in the encryption process.

Table 1 Table of variables in encryption algorithm
Fig. 4
figure 4

Encryption flow chart

4.4 Decryption algorithm

The decryption process is the inverse of the encryption algorithm. I will not go into details here. It is worth noting that:

  1. (1)

    The rewrite operation should be located before the last unwinding of the outer loop, and the sum of the integer parts of the data at this time is the same.

  2. (2)

    Only need to calculate the value of random when decrypting, without calculating random data.

  3. (3)

    The algorithm only uses the permutation operation on the fractional part, the value will not be lost during the encryption and decryption process, which ensures that the decrypted model is identical to the original model.

5 Analysis of experimental results

5.1 Experimental results

In the article, according to the plain text, Give a key value: K = 28011745815b1a545e7d064b5998ba73392f11b8d144c82a9ef4e64ddd47. Other parameters: bitxor _ value=256, T=1000, random=1260. All results will then be displayed in MATLAB, where 3D models of the ciphertext file is read, and 3D models generated by the decryption is shown in Fig. 5. It can be found that 3D models obtained after encryption has completely lost the appearance characteristics of the plaintext. The naked eye observation shows that clear text and ciphertext have the same appearance characteristics. In addition, we subtract the original model from the decrypted model. If there is a difference between the original 3D model and the decrypted 3D model, the stereo structure will be displayed; The original 3D model is completely different from the decrypted model, then the blank space will be displayed. As shown by Fig. 5g and h, the original 3D model of decrypted 3D model is exactly the same as the is obtained.

Fig. 5
figure 5

Encryption effect display: a Plaintext cylindrical model, b Ciphertext cylindrical model, c Decrypted cylindrical model d Plaintext terrain model, e Ciphertext terrain model, f Decrypted terrain model, g Fig. 5(a)-Fig. 5(c), (g) Fig. 5(f)–Fig. 5(f)

5.2 Key space analysis

In order to improve the security of the encryption algorithm, there should be enough key space to defend against brute force attacks. All key spaces include the keys used in the proliferation and scrambling process. The valid keys of this algorithm are as follows:

The key is shown in Eq. (6). The key K in the algorithm includes 240 bits. The coefficients of the LDCML system are completely dependent on the key K and the key space is 2240. Also because of the introduction of bitxor _ value, T. Therefore, the key space should be greater than 2240, which is greater than the theoretical requirement of 2100. So in theory, the algorithm in this paper can resist brute force attacks.

5.3 Algorithm complexity analysis

For the encryption algorithm, in addition to considering the security of encryption, it is also necessary to analyze the computational complexity. Assume that the size of the data is r × 3. The most time consuming step in this algorithm, the least squares system needs to generate a set of pseudo-random sequences of length r × 3 + T and 3 groups of length r × 3 + random + T and the time complexity is about O(4 × r × 3).

Specifically, when the algorithm is running in windows10 operating system, 2.80GHz CPU frequency, 8G memory and Matlab2016a running software, the encryption time of 89,271 data is 0.261795 s. Obviously, the time performance of the algorithm is excellent.

6 Security analysis

The security analysis method in this paper adopts key sensitivity analysis, histogram analysis, correlation analysis, information entropy analysis and differential attack. The terrain map of Fig. 2b is selected as the test object in this section.

6.1 Key sensitivity analysis

In this algorithm, the initial value of the lattice and the coefficients of the DCML system are generated by the key K. Therefore, the analysis of the key sensitivity is also an indirect analysis. The sensitivity of the LDCML system to the initial state. Of course, the sensitivity of the key is also related to the design of the algorithm. In this section, the sensitivity to the key may be to quantitatively describe the relationship between the two sets of data using NPCR and UACI, calculated as Eq. (10) and Eq. (11), respectively.

$$ NPCR=\frac{\sum_{i,j}D\left(i,j\right)}{W\times H}\times 100\% $$
(10)
$$ UACI=\frac{1}{W\times H}\left[\sum \limits_{i,j}\frac{\left|{c}_1\left(i,j\right)-{c}_2\Big(i,j\Big)\right|}{bitxor\_ value}\right]\times 100\% $$
(11)

where c1 and c2 denote two ciphertext data, W and H denote the length and width of the matrix. When the NPCR reaches about 1 and the UACI reaches about 0.3346, the algorithm meets the safety standards.

For the key K, the first 120-bit average allocation constitutes the initial value of the three cells of the LDCML system, the [120, 160] bits are part of the coefficient u, and the [161, 200] bits are part of the u0, [201, 240] The bit is part of u0. Therefore, the analysis of key sensitivity can be divided into 8 cases. 40th, 80th, 120th, 160th, 200th, and 240th. The last digit of each group is incremented by 1, and the sum of 1 is also used for the sum of the sums. According to Fig. 6, the NPCR and UACI calculated by different key change methods are shown in Table 1. It can be found that the algorithm is fully compliant with security standards.

Fig. 6
figure 6

Key change mode

Before decrypting, change the key one by one as shown in Fig. 6. As shown in Fig. 7, only minor changes have been made to each key and the decrypted 3D model has changed dramatically. It can be seen that the decrypted 3D models are all stacked triangles, losing the original structure of plaintext. On the other hand, according to Eq. (10) and Eq. (11), we carry out numerical analysis of the test results. As shown in Table 2, both NPCR and UACI are close to ideal values. The above conclusions show that the key sensitivity of this algorithm is very good.

Fig. 7
figure 7

Key change mode: a First change mode, b Second change mode, c Third change mode, d Fourth change mode, e Fifth change mode, f Sixth change mode, g Seventh change mode, h Eighth change mode

Table 2 Changes the NPCR and UACI values of the key

6.2 Histogram analysis

The histogram of the data is an important indicator of whether an algorithm can resist statistical analysis attacks [17, 30]. The histogram describes the distribution of pixel values for an image. If the distribution is not uniform, a certain amount of information can be obtained through statistical analysis attacks. By analyzing the statistical properties of ciphertext data, it is easy to select ciphertext attacks. The source of information in this article is a floating point number with a maximum of less than 256. The statistics of the histogram in this paper are divided into integers, which is 256. Specifically, these 256 data ranges s1 = [0, 1), s2 = [1, 2), s3 = [2, 3), ..., s254 = [253, 254), s255 = [254, 255) and s256 = [255, 256).

As shown in Fig. 8. This paper tests the histograms of the x, y, and z values of 3D models, that is, the histograms of the three columns in the matrix. It can be found that the distribution of the values in the encrypted data histogram is more averagely.

Fig. 8
figure 8

Information entropy analysis: a Plaintext x direction histogra, b Ciphertext x direction histogram, c Plaintext y direction histogram, d Ciphertext y direction histogram, e Plaintext z direction histogram, f Ciphertext z direction histogram

6.3 Correlation analysis

In three kinds of coordinate data of plaintext x, y, z, it is found through experiments that adjacent coordinate values often have strong correlation. The reason is that STL files are often generated with bottom-up or top-down vertex values. In order to avoid statistical information being used for attacks, it is necessary to reduce the correlation between adjacent data in the ciphertext [17]. In this experiment, 2000 values are compared in plaintext and ciphertext respectively.

As shown in Fig. 9, The distribution of the points in the encrypted graph is more uniform, which indicates that the correlation of coordinate points in the STL file is weaker. The more uniform the distribution of the points, the lower the correlation between the coordinate point.

$$ \left\{\begin{array}{l}E(x)=\frac{1}{N}\sum \limits_{i=1}^N{x}_i\\ {}D(x)=\frac{1}{N}\sum \limits_{i+1}^N{\left({x}_i-E(x)\right)}^2\\ {}\operatorname{cov}\left(x,y\right)=\frac{1}{N}\sum \limits_{i=1}^N\left({x}_i-E(x)\right)\left({y}_i-E(y)\right)\\ {}{r}_{xy}=\frac{\operatorname{cov}\left(x,y\right)}{\sqrt{D(x)}\sqrt{D(y)}}\end{array}\right. $$
(12)

where x and y are two adjacent values and N is the total number of (x, y) that exists from the matrix. E(x) is the expected and D(x) is the variance.

Fig. 9
figure 9

Adjacent data correlation: a Plaintext x-direction correlation, b Plain text y-direction correlation, c Plain text z-direction correlation, d Ciphertext x-direction correlation, e Ciphertext y-direction correlation, f Ciphertext z-direction correlation

We use Eq. (12) to digitize the results to better illustrate the results. The correlation coefficients of the plaintext and ciphertext data are given in Table 3. As can be found from the table, there is a great correlation between adjacent data of the original plaintext data. In order to be able to resist statistical attacks, the correlation between adjacent data must be effectively reduced. The correlation between adjacent data of ciphertext data encrypted by the algorithm is very low, close to zero. Therefore, the algorithm in this paper can better resist statistical analysis attacks.

Table 3 Correlation coefficients between plaintext and ciphertext in different directions

6.4 Information entropy analysis

Information entropy was proposed by Shannon in 1948 and it reflects the degree of confusion in the system. The higher the order of the system, the lower the information entropy of the system. The more disordered the system, the higher the information entropy of the system. The coordinate data of 3D models is essentially an information source, so it is analyzed by information entropy. The more uniform the distribution of values, the less effective information the information source has. Its definition is [30]:

$$ H(s)=\sum \limits_{i=0}^np\left({s}_i\right){\log}_2\frac{1}{p\left({s}_i\right)} $$
(13)

where s is the information source, i is the number of data, and n is the total number of data. The source of information in this article is a floating point number with a maximum of less than 256. This article is divided into integers, which is 256. Specifically, these 256 states are s1 = [0, 1), s2 = [1, 2), s3 = [2, 3), ..., s254 = [253, 254), s255 = [254, 255) and s256 = [255, 256).

In addition, p(si) indicates the probability of occurrence of si. Therefore, in theory, the maximum information entropy of this information source is log2256 = 8. Information entropy of plaintext is 6.8030, and Information entropy of ciphertext is 7.9980. The information entropy of the encrypted data is significantly improved and is close to the ideal value of 8. The ciphertext encrypted by the algorithm is difficult to disclose information, and can better resist statistical attacks.

6.5 Differential attack

Differential attack is a method of making minor changes to the plaintext, obtaining ciphertext before and after modifying the ciphertext, and performing data analysis on the data. Data analysis is performed on the data source to obtain a key. Therefore, a good data encryption system should be able to make small differences in the plaintext, so that the ciphertext changes greatly to resist different attacks. The data change rate (NPCR) and the uniform mean change intensity (UACI) are shown in Eq. (10) and Eq. (11), respectively [30]. This article adds 1 to the first data of 9.6790, which becomes 10.6790. Encrypt it with the same algorithm and key. Theoretically, the closer the values of NPCR and UACI are to 100% and 33.4635%, the better. NPCR and UACI after changing a value are 0.9958% and 0.3311%. It can be found that the algorithm can better resist differential attacks.

7 Conclusion

Chaos theory is one of the hotspots of modern cryptography research. In this paper, a fast encryption scheme of 3D models based on chaotic system is proposed. It’s rapidity mainly comes from simplifying 3D objects to 2D objects for processing. In the era of big data wide application in 3D models, the scheme has certain practical significance and universality. The experimental results and security analysis show that the scheme has large key space, is sensitive to key and plaintext data, can resist common attack methods, and has good encryption effect.

In this paper, only the most commonly used 3D models file encryption and decryption processing. For other 3D model files, they often have more structural features. For example, polygons and texture. This scheme can not fully encrypt this kind of model. The future work will be to propose a general encryption scheme for all 3D model files to solve the above problems.