房子琪 趙志祥 馬國軍 李生
摘要:針對3D打印模型數(shù)據(jù)傳輸面臨復(fù)制、修改、傳播等侵權(quán)行為攻擊的問題,提出一種適合3D打印的G代碼文件加密傳輸方法。通過改變模型面的形狀、隨機化頂點分布以及亂序重排代碼子文件組實現(xiàn)模型數(shù)據(jù)的加密,通過獲取服務(wù)器端的解密用文件實現(xiàn)G代碼文件的解密,獲取原始的3D模型數(shù)據(jù),降低了被攻擊的風(fēng)險,實現(xiàn)了版權(quán)的保護。
關(guān)鍵詞:3D打印;模型傳輸;加密算法;G代碼
中圖分類號:TP391? 文獻標(biāo)識碼:A? ?文章編號:1007-9416(2020)10-0000-00
3D打印技術(shù)的普及為我們的生活帶來了許多便利,但常規(guī)3D打印模型易遭到攻擊和盜竊,因此,在存儲和傳輸3D打印模型之前,應(yīng)先對其進行加密,以確保訪問安全并防止非法復(fù)制。
1 加密技術(shù)研究現(xiàn)狀
1.1 加密算法
現(xiàn)有的數(shù)據(jù)加密技術(shù)都是以加密-解密理論為核心進行研發(fā)的,根據(jù)信息的發(fā)送和接收方使用密鑰的不同,加密算法分為對稱加密算法和非對稱性加密算法。
對稱加密算法如DES、AES等,即數(shù)據(jù)的發(fā)送方和接收方都具有相同的密鑰,只要密鑰未泄露,該數(shù)據(jù)便很難被破解。
非對稱加密算法如常見的RSA、ECC等,主要有混合非對稱加密和公開非對稱加密兩種。其中,公開非對稱加密算法即雙方使用不同的密鑰?;旌戏菍ΨQ加密是在這一算法基礎(chǔ)上,結(jié)合對稱加密算法,以此增加密碼的復(fù)雜性。在現(xiàn)有的數(shù)據(jù)加密算法中,以混合加密算法的安全性最高、保密性最好、應(yīng)用最廣泛。
1.2 加密技術(shù)
數(shù)據(jù)加密技術(shù)比較多樣化,現(xiàn)有加密傳輸方式大多基于隱蔽信道[1]、隱寫術(shù)和文件加密傳輸三種方式,可應(yīng)用于鏈路加密、節(jié)點加密和端到端加密。
鏈路加密主要是通過網(wǎng)絡(luò)節(jié)點鏈路實施加密,是指數(shù)據(jù)在OSI的數(shù)據(jù)鏈路層由加密設(shè)備進行加密,在下一個節(jié)點接收數(shù)據(jù)前解密。
節(jié)點加密是指消息在節(jié)點中除報頭和路由信息外均處于加密狀態(tài)。即密文在中間節(jié)點被解密并重新加密,避免了鏈路加密節(jié)點處易受攻擊。
端到端加密作用于應(yīng)用層數(shù)據(jù)由發(fā)送端加密,接收端解密。即數(shù)據(jù)信息在最終接收解密前都是加密的狀態(tài),這種方式性能更可靠并且成本較低。
2 3D模型加密相關(guān)工作
隨著3D打印技術(shù)的普及,人們對3D模型版權(quán)的保護對象已經(jīng)擴展到了3D打印后的實體模型。數(shù)字水印技術(shù)近年來被廣泛地應(yīng)用于3D領(lǐng)域中的版權(quán)保護,該技術(shù)可以有效提高信息的安全性。
Ohbuchi等在1997年第一次提出了三維模型水印技術(shù)[2],自此之后數(shù)字水印的研究有了很大進展。近幾年的研究更傾向于提高數(shù)字水印的魯棒性和實用性。喻志強等人提出了一種自適應(yīng)于局部幾何特征的三維模型水印算法[3]。周昕等人在2007年提出一種新的基于小波變換的三維模型水印算法[4]。岳悅等人提出了一種基于遺傳算法的三維變換域盲水印算法[5]。王新宇等人提出了一種通過構(gòu)造頂點分布特征的三維模型數(shù)字水印算法[6]。
使用數(shù)字水印技術(shù)不會更改模型內(nèi)容,但此方式不利于存儲和傳輸。所以如何保證3D模型作品的版權(quán)不被侵犯,降低模型信息傳輸過程中被竊取的幾率是目前亟待解決的問題。
為解決上述問題,本文提出一種3D模型加解密模型,加密模型包括獲取模塊、切片模塊以及加密模塊,獲取模塊用于獲取3D模型;切片模塊對該模型進行切片處理,以獲取G代碼文件;加密模塊用于加密文件并生成解密用文件。解密裝置包括解密獲取模塊以及解密模塊,解密獲取模塊用于接受G代碼文件以及解密用文件;解密模塊則使用解密用文件對G代碼文件進行解密。
3 方法原理
本文提出一種適合3D打印模型的G代碼文件加密傳輸方法,主要內(nèi)容是先由3D模型生成G代碼文件,通過幾何變換、隨即加密過程使其包含的構(gòu)面信息變形,然后對該文件進行特征分離及分片得到第一子文件組,其中包括至少兩個以上的子文件,各個子文件以第一排列順序進行排序,使用fisher-yates算法對第一子文件組做隨機排列得到第二子文件組,實際傳輸過程按照第二子文件組的順序進行加密傳輸。同時生成記錄有第二排列順序的排列恢復(fù)文件,并自定時間延遲傳輸該序列號。因為子文件序列號延遲傳輸,所以先進行加密傳輸?shù)牡诙游募M的每一個分片都是不可讀的,確保了3D模型信息的完整性和隱私性。
接收端收到第二子文件組及第二排列順序后,在文件沒有缺失的情況下對排列恢復(fù)文件進行解密,得到每個子文件的真實排列順序,與文件特征結(jié)合之后完成重組,恢復(fù)原來的G代碼文件。
3.1 坐標(biāo)幾何變換
對3D模型進行切片處理,以獲取包含3D三角網(wǎng)格模型的頂點坐標(biāo)信息G代碼文件,然后對G代碼文件中的頂點坐標(biāo)信息進行幾何變換。根據(jù)從G代碼文件中提取出的坐標(biāo)信息xi、yi、zi及索引值i,我們考慮一個3D三角形網(wǎng)格平面,移動其頂點得到矢量vi={xi,yi,zi},并利用索引值i對其進行幾何變換得到vi={ixi,iyi,izi}={xi,yi,zi}使每個構(gòu)面變形,變形小平面的三個頂點被用于構(gòu)建3×3矩陣A={v1,v2,v3}。
然后用隨機數(shù)矩陣對矩陣A進行隨機加密得到加密矩陣A,從而得到加密的構(gòu)面。第一密鑰K由用戶在客戶端任意輸入字符數(shù)字然后通過MD5算法生成,隨機數(shù)矩陣R由第一密鑰K和隨機分布函數(shù)生成。其中,加密矩陣A加密矩陣包括基于第一加密頂點坐標(biāo)信息生成的第二加密頂點坐標(biāo)信息,第二加密頂點坐標(biāo)信息為si={xi,yi,zi}。具體如下所示:
最后,將加密的小平面重新排列以獲得加密的3D三角形網(wǎng)格,加密的3D三角形網(wǎng)格是一組經(jīng)過隨機加密的面。
3.2 分片加密傳輸
將第二加密頂點坐標(biāo)信息替換第一加密G代碼文件中的第一加密頂點坐標(biāo)信息,以生成第二加密G代碼文件。對第二加密G代碼文件進行拆分,從而形成第一子文件組,第一子文件組包括至少兩個子文件,各個子文件以第一排列順序進行排序,使用fisher-yates算法對第一子文件組中的各個子文件進行隨機排序并重組,從而生成第二子文件組以及排列恢復(fù)文件,記錄有第二排列順序。
通過由客戶端響應(yīng)于用戶請求,根據(jù)具體用戶信息,由sm3哈希算法生成第二密鑰,并采用sm4算法通過第二密鑰對第二子文件組進行加密傳輸,從而生成加密第二子文件組。然后對加密第二子文件組進行傳輸,對解密用文件進行延時傳輸。
3.3還原解密
在進行解密時,獲取自服務(wù)器端發(fā)送的加密的G代碼文件以及解密用文件,根據(jù)解密用文件對G代碼文件進行解密。解密用文件包括第一密鑰、幾何變換邏輯文、排列恢復(fù)文件以及第二密鑰。根據(jù)第二密鑰對加密第二子文件組進行解密,從而獲得第二子文件組;并同時進行根據(jù)排列恢復(fù)文件對第二子文件組進行恢復(fù),從而形成第一子文件組。獲取到第一密鑰K之后,對第一加密G代碼文件進行處理,恢復(fù)G代碼文件,從而得到原始的平面頂點坐標(biāo)信息vi={xi,yi,zi},解密后的平面將重新排列,從而獲得原始的3D打印模型文件。
4 總結(jié)與展望
本文提出了一種用于3D打印模型的加密傳輸模型,基于通過幾何變換使3D打印模型的各個面變形,使用隨機數(shù)矩陣對變形面的頂點進行隨機化來加密變形面的頂點。然后在分離文件特征使文件失去可讀性的基礎(chǔ)上,對G代碼子文件組進行亂序重排之后加密傳輸,使實際捕獲到的子文件順序與真正的順序不同,從而降低了G代碼文件在傳輸過程中遭到數(shù)據(jù)竊取和非法復(fù)制的風(fēng)險。實驗結(jié)果證明了該算法對3D打印模型的加密傳輸非常有效。本文所提出的方法與現(xiàn)有方法相比,安全性得到了提高。將來,我們將通過加密傳輸系統(tǒng)來改進所提出的方法。
參考文獻
[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] 喻志強,趙榮椿,葉豪盛,等.自適應(yīng)于局部幾何特征的三維模型水印算法[J].計算機工程與應(yīng)用,2002(22):23-27.
[4] 周昕,俞曉明,朱濤,等.一種基于小波變換的三維網(wǎng)格模型水印算法[J].計算機應(yīng)用. 2007(5):1156-1159.
[5] 岳悅,李象霖.遺傳算法在三維網(wǎng)格模型數(shù)字水印的應(yīng)用[J].計算機仿真,2010(1):154-157.
[6] 王新宇,詹永照.構(gòu)造頂點分布特征的三維模型數(shù)字水印算法[J].計算機輔助設(shè)計與圖形學(xué)學(xué)報,2014(2):272-279.
收稿日期:2020-08-22
基金項目:2017年度國家重點研發(fā)計劃《項目名稱:面向創(chuàng)新創(chuàng)業(yè)的3D打印云服務(wù)平臺研發(fā)及應(yīng)用》(項目編號:2017YFB1104200)
作者簡介:房子琪(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