房子琪 趙志祥 馬國(guó)軍 李生

摘要:針對(duì)3D打印模型數(shù)據(jù)傳輸面臨復(fù)制、修改、傳播等侵權(quán)行為攻擊的問(wèn)題,提出一種適合3D打印的G代碼文件加密傳輸方法。通過(guò)改變模型面的形狀、隨機(jī)化頂點(diǎn)分布以及亂序重排代碼子文件組實(shí)現(xiàn)模型數(shù)據(jù)的加密,通過(guò)獲取服務(wù)器端的解密用文件實(shí)現(xiàn)G代碼文件的解密,獲取原始的3D模型數(shù)據(jù),降低了被攻擊的風(fēng)險(xiǎn),實(shí)現(xiàn)了版權(quán)的保護(hù)。
關(guān)鍵詞:3D打印;模型傳輸;加密算法;G代碼
中圖分類號(hào):TP391? 文獻(xiàn)標(biāo)識(shí)碼:A? ?文章編號(hào):1007-9416(2020)10-0000-00
3D打印技術(shù)的普及為我們的生活帶來(lái)了許多便利,但常規(guī)3D打印模型易遭到攻擊和盜竊,因此,在存儲(chǔ)和傳輸3D打印模型之前,應(yīng)先對(duì)其進(jìn)行加密,以確保訪問(wèn)安全并防止非法復(fù)制。
1 加密技術(shù)研究現(xiàn)狀
1.1 加密算法
現(xiàn)有的數(shù)據(jù)加密技術(shù)都是以加密-解密理論為核心進(jìn)行研發(fā)的,根據(jù)信息的發(fā)送和接收方使用密鑰的不同,加密算法分為對(duì)稱加密算法和非對(duì)稱性加密算法。
對(duì)稱加密算法如DES、AES等,即數(shù)據(jù)的發(fā)送方和接收方都具有相同的密鑰,只要密鑰未泄露,該數(shù)據(jù)便很難被破解。
非對(duì)稱加密算法如常見的RSA、ECC等,主要有混合非對(duì)稱加密和公開非對(duì)稱加密兩種。其中,公開非對(duì)稱加密算法即雙方使用不同的密鑰。混合非對(duì)稱加密是在這一算法基礎(chǔ)上,結(jié)合對(duì)稱加密算法,以此增加密碼的復(fù)雜性。在現(xiàn)有的數(shù)據(jù)加密算法中,以混合加密算法的安全性最高、保密性最好、應(yīng)用最廣泛。
1.2 加密技術(shù)
數(shù)據(jù)加密技術(shù)比較多樣化,現(xiàn)有加密傳輸方式大多基于隱蔽信道[1]、隱寫術(shù)和文件加密傳輸三種方式,可應(yīng)用于鏈路加密、節(jié)點(diǎn)加密和端到端加密。
鏈路加密主要是通過(guò)網(wǎng)絡(luò)節(jié)點(diǎn)鏈路實(shí)施加密,是指數(shù)據(jù)在OSI的數(shù)據(jù)鏈路層由加密設(shè)備進(jìn)行加密,在下一個(gè)節(jié)點(diǎn)接收數(shù)據(jù)前解密。
節(jié)點(diǎn)加密是指消息在節(jié)點(diǎn)中除報(bào)頭和路由信息外均處于加密狀態(tài)。即密文在中間節(jié)點(diǎn)被解密并重新加密,避免了鏈路加密節(jié)點(diǎn)處易受攻擊。
端到端加密作用于應(yīng)用層數(shù)據(jù)由發(fā)送端加密,接收端解密。即數(shù)據(jù)信息在最終接收解密前都是加密的狀態(tài),這種方式性能更可靠并且成本較低。
2 3D模型加密相關(guān)工作
隨著3D打印技術(shù)的普及,人們對(duì)3D模型版權(quán)的保護(hù)對(duì)象已經(jīng)擴(kuò)展到了3D打印后的實(shí)體模型。數(shù)字水印技術(shù)近年來(lái)被廣泛地應(yīng)用于3D領(lǐng)域中的版權(quán)保護(hù),該技術(shù)可以有效提高信息的安全性。
Ohbuchi等在1997年第一次提出了三維模型水印技術(shù)[2],自此之后數(shù)字水印的研究有了很大進(jìn)展。近幾年的研究更傾向于提高數(shù)字水印的魯棒性和實(shí)用性。喻志強(qiáng)等人提出了一種自適應(yīng)于局部幾何特征的三維模型水印算法[3]。周昕等人在2007年提出一種新的基于小波變換的三維模型水印算法[4]。岳悅等人提出了一種基于遺傳算法的三維變換域盲水印算法[5]。王新宇等人提出了一種通過(guò)構(gòu)造頂點(diǎn)分布特征的三維模型數(shù)字水印算法[6]。
使用數(shù)字水印技術(shù)不會(huì)更改模型內(nèi)容,但此方式不利于存儲(chǔ)和傳輸。所以如何保證3D模型作品的版權(quán)不被侵犯,降低模型信息傳輸過(guò)程中被竊取的幾率是目前亟待解決的問(wèn)題。
為解決上述問(wèn)題,本文提出一種3D模型加解密模型,加密模型包括獲取模塊、切片模塊以及加密模塊,獲取模塊用于獲取3D模型;切片模塊對(duì)該模型進(jìn)行切片處理,以獲取G代碼文件;加密模塊用于加密文件并生成解密用文件。解密裝置包括解密獲取模塊以及解密模塊,解密獲取模塊用于接受G代碼文件以及解密用文件;解密模塊則使用解密用文件對(duì)G代碼文件進(jìn)行解密。
3 方法原理
本文提出一種適合3D打印模型的G代碼文件加密傳輸方法,主要內(nèi)容是先由3D模型生成G代碼文件,通過(guò)幾何變換、隨即加密過(guò)程使其包含的構(gòu)面信息變形,然后對(duì)該文件進(jìn)行特征分離及分片得到第一子文件組,其中包括至少兩個(gè)以上的子文件,各個(gè)子文件以第一排列順序進(jìn)行排序,使用fisher-yates算法對(duì)第一子文件組做隨機(jī)排列得到第二子文件組,實(shí)際傳輸過(guò)程按照第二子文件組的順序進(jìn)行加密傳輸。同時(shí)生成記錄有第二排列順序的排列恢復(fù)文件,并自定時(shí)間延遲傳輸該序列號(hào)。因?yàn)樽游募蛄刑?hào)延遲傳輸,所以先進(jìn)行加密傳輸?shù)牡诙游募M的每一個(gè)分片都是不可讀的,確保了3D模型信息的完整性和隱私性。
接收端收到第二子文件組及第二排列順序后,在文件沒(méi)有缺失的情況下對(duì)排列恢復(fù)文件進(jìn)行解密,得到每個(gè)子文件的真實(shí)排列順序,與文件特征結(jié)合之后完成重組,恢復(fù)原來(lái)的G代碼文件。
3.1 坐標(biāo)幾何變換
對(duì)3D模型進(jìn)行切片處理,以獲取包含3D三角網(wǎng)格模型的頂點(diǎn)坐標(biāo)信息G代碼文件,然后對(duì)G代碼文件中的頂點(diǎn)坐標(biāo)信息進(jìn)行幾何變換。根據(jù)從G代碼文件中提取出的坐標(biāo)信息xi、yi、zi及索引值i,我們考慮一個(gè)3D三角形網(wǎng)格平面,移動(dòng)其頂點(diǎn)得到矢量vi={xi,yi,zi},并利用索引值i對(duì)其進(jìn)行幾何變換得到vi={ixi,iyi,izi}={xi,yi,zi}使每個(gè)構(gòu)面變形,變形小平面的三個(gè)頂點(diǎn)被用于構(gòu)建3×3矩陣A={v1,v2,v3}。
然后用隨機(jī)數(shù)矩陣對(duì)矩陣A進(jìn)行隨機(jī)加密得到加密矩陣A,從而得到加密的構(gòu)面。第一密鑰K由用戶在客戶端任意輸入字符數(shù)字然后通過(guò)MD5算法生成,隨機(jī)數(shù)矩陣R由第一密鑰K和隨機(jī)分布函數(shù)生成。其中,加密矩陣A加密矩陣包括基于第一加密頂點(diǎn)坐標(biāo)信息生成的第二加密頂點(diǎn)坐標(biāo)信息,第二加密頂點(diǎn)坐標(biāo)信息為si={xi,yi,zi}。具體如下所示:
最后,將加密的小平面重新排列以獲得加密的3D三角形網(wǎng)格,加密的3D三角形網(wǎng)格是一組經(jīng)過(guò)隨機(jī)加密的面。
3.2 分片加密傳輸
將第二加密頂點(diǎn)坐標(biāo)信息替換第一加密G代碼文件中的第一加密頂點(diǎn)坐標(biāo)信息,以生成第二加密G代碼文件。對(duì)第二加密G代碼文件進(jìn)行拆分,從而形成第一子文件組,第一子文件組包括至少兩個(gè)子文件,各個(gè)子文件以第一排列順序進(jìn)行排序,使用fisher-yates算法對(duì)第一子文件組中的各個(gè)子文件進(jìn)行隨機(jī)排序并重組,從而生成第二子文件組以及排列恢復(fù)文件,記錄有第二排列順序。
通過(guò)由客戶端響應(yīng)于用戶請(qǐng)求,根據(jù)具體用戶信息,由sm3哈希算法生成第二密鑰,并采用sm4算法通過(guò)第二密鑰對(duì)第二子文件組進(jìn)行加密傳輸,從而生成加密第二子文件組。然后對(duì)加密第二子文件組進(jìn)行傳輸,對(duì)解密用文件進(jìn)行延時(shí)傳輸。
3.3還原解密
在進(jìn)行解密時(shí),獲取自服務(wù)器端發(fā)送的加密的G代碼文件以及解密用文件,根據(jù)解密用文件對(duì)G代碼文件進(jìn)行解密。解密用文件包括第一密鑰、幾何變換邏輯文、排列恢復(fù)文件以及第二密鑰。根據(jù)第二密鑰對(duì)加密第二子文件組進(jìn)行解密,從而獲得第二子文件組;并同時(shí)進(jìn)行根據(jù)排列恢復(fù)文件對(duì)第二子文件組進(jìn)行恢復(fù),從而形成第一子文件組。獲取到第一密鑰K之后,對(duì)第一加密G代碼文件進(jìn)行處理,恢復(fù)G代碼文件,從而得到原始的平面頂點(diǎn)坐標(biāo)信息vi={xi,yi,zi},解密后的平面將重新排列,從而獲得原始的3D打印模型文件。
4 總結(jié)與展望
本文提出了一種用于3D打印模型的加密傳輸模型,基于通過(guò)幾何變換使3D打印模型的各個(gè)面變形,使用隨機(jī)數(shù)矩陣對(duì)變形面的頂點(diǎn)進(jìn)行隨機(jī)化來(lái)加密變形面的頂點(diǎn)。然后在分離文件特征使文件失去可讀性的基礎(chǔ)上,對(duì)G代碼子文件組進(jìn)行亂序重排之后加密傳輸,使實(shí)際捕獲到的子文件順序與真正的順序不同,從而降低了G代碼文件在傳輸過(guò)程中遭到數(shù)據(jù)竊取和非法復(fù)制的風(fēng)險(xiǎn)。實(shí)驗(yàn)結(jié)果證明了該算法對(duì)3D打印模型的加密傳輸非常有效。本文所提出的方法與現(xiàn)有方法相比,安全性得到了提高。將來(lái),我們將通過(guò)加密傳輸系統(tǒng)來(lái)改進(jìn)所提出的方法。
參考文獻(xiàn)
[1] Ahsan K, Kundur D. Practical data hiding in TCP/IP [C]//Proc. of Multimedia Security at ACM Multimedia. Riviera,F(xiàn)R:ACM,2002.
[2]Ohbuchi?R?,?Masuda?H?,?Aono?M?.?Embedding?data?in?3D?models[C]//?International?Workshop?on?Interactive?Distributed?Multimedia?Systems?&?Telecommunication?Services.?Springer-Verlag,1997.
[3] 喻志強(qiáng),趙榮椿,葉豪盛,等.自適應(yīng)于局部幾何特征的三維模型水印算法[J].計(jì)算機(jī)工程與應(yīng)用,2002(22):23-27.
[4] 周昕,俞曉明,朱濤,等.一種基于小波變換的三維網(wǎng)格模型水印算法[J].計(jì)算機(jī)應(yīng)用. 2007(5):1156-1159.
[5] 岳悅,李象霖.遺傳算法在三維網(wǎng)格模型數(shù)字水印的應(yīng)用[J].計(jì)算機(jī)仿真,2010(1):154-157.
[6] 王新宇,詹永照.構(gòu)造頂點(diǎn)分布特征的三維模型數(shù)字水印算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2014(2):272-279.
收稿日期:2020-08-22
基金項(xiàng)目:2017年度國(guó)家重點(diǎn)研發(fā)計(jì)劃《項(xiàng)目名稱:面向創(chuàng)新創(chuàng)業(yè)的3D打印云服務(wù)平臺(tái)研發(fā)及應(yīng)用》(項(xiàng)目編號(hào):2017YFB1104200)
作者簡(jiǎn)介:房子琪(1996—),女,山東濰坊人,碩士,[1]研究方向:保密科學(xué)與技術(shù)。
通訊作者:李生(1976—),男,山東青島人,博士,工程師,研究方向:增材制造技術(shù)應(yīng)用。
Research on Encryption Protection Transmission of 3D Printing Model
FANG Zi-qi1,ZHAO Zhi-xiang1,MA Guo-jun2,LI Sheng2
(1.Ocean University of China, Qingdao Shandong? 266100;
2.Qingdao Haier intelligent technology research and Development Co., Ltd, Qingdao Shandong? 266000)
Abstract:Aiming at the problem of copying, modifying, disseminating and other infringement attacks in 3D printing model data transmission, a G-code file encryption transmission method suitable for 3D printing is proposed. The model data is encrypted by changing the shape of the model surface, randomizing the vertex distribution, and rearranging the code sub-file groups out of order. By obtaining the decryption file on the server side, the G code file is decrypted, and the original 3D model data is obtained. Reduce the risk of being attacked and realize the protection of copyright.
Keywords: 3D printing; model transmission; encryption algorithm; G code