3D打印模型的加密保护传输研究
2020-12-09房子琪赵志祥马国军李生
房子琪 赵志祥 马国军 李生
摘要:针对3D打印模型数据传输面临复制、修改、传播等侵权行为攻击的问题,提出一种适合3D打印的G代码文件加密传输方法。通过改变模型面的形状、随机化顶点分布以及乱序重排代码子文件组实现模型数据的加密,通过获取服务器端的解密用文件实现G代码文件的解密,获取原始的3D模型数据,降低了被攻击的风险,实现了版权的保护。
关键词:3D打印;模型传输;加密算法;G代码
中图分类号:TP391 文献标识码:A 文章编号:1007-9416(2020)10-0000-00
3D打印技术的普及为我们的生活带来了许多便利,但常规3D打印模型易遭到攻击和盗窃,因此,在存储和传输3D打印模型之前,应先对其进行加密,以确保访问安全并防止非法复制。
1 加密技术研究现状
1.1 加密算法
现有的数据加密技术都是以加密-解密理论为核心进行研发的,根据信息的发送和接收方使用密钥的不同,加密算法分为对称加密算法和非对称性加密算法。
对称加密算法如DES、AES等,即数据的发送方和接收方都具有相同的密钥,只要密钥未泄露,该数据便很难被破解。
非对称加密算法如常见的RSA、ECC等,主要有混合非对称加密和公开非对称加密两种。其中,公开非对称加密算法即双方使用不同的密钥。混合非对称加密是在这一算法基础上,结合对称加密算法,以此增加密码的复杂性。在现有的数据加密算法中,以混合加密算法的安全性最高、保密性最好、应用最广泛。
1.2 加密技术
数据加密技术比较多样化,现有加密传输方式大多基于隐蔽信道[1]、隐写术和文件加密传输三种方式,可应用于链路加密、节点加密和端到端加密。
链路加密主要是通过网络节点链路实施加密,是指数据在OSI的数据链路层由加密设备进行加密,在下一个节点接收数据前解密。
节点加密是指消息在节点中除报头和路由信息外均处于加密状态。即密文在中间节点被解密并重新加密,避免了链路加密节点处易受攻击。
端到端加密作用于应用层数据由发送端加密,接收端解密。即数据信息在最终接收解密前都是加密的状态,这种方式性能更可靠并且成本较低。
2 3D模型加密相关工作
随着3D打印技术的普及,人们对3D模型版权的保护对象已经扩展到了3D打印后的实体模型。数字水印技术近年来被广泛地应用于3D领域中的版权保护,该技术可以有效提高信息的安全性。
Ohbuchi等在1997年第一次提出了三维模型水印技术[2],自此之后数字水印的研究有了很大进展。近几年的研究更倾向于提高数字水印的鲁棒性和实用性。喻志强等人提出了一种自适应于局部几何特征的三维模型水印算法[3]。周昕等人在2007年提出一种新的基于小波变换的三维模型水印算法[4]。岳悦等人提出了一种基于遗传算法的三维变换域盲水印算法[5]。王新宇等人提出了一种通过构造顶点分布特征的三维模型数字水印算法[6]。
使用数字水印技术不会更改模型内容,但此方式不利于存储和传输。所以如何保证3D模型作品的版权不被侵犯,降低模型信息传输过程中被窃取的几率是目前亟待解决的问题。
为解决上述问题,本文提出一种3D模型加解密模型,加密模型包括获取模块、切片模块以及加密模块,获取模块用于获取3D模型;切片模块对该模型进行切片处理,以获取G代码文件;加密模块用于加密文件并生成解密用文件。解密装置包括解密获取模块以及解密模块,解密获取模块用于接受G代码文件以及解密用文件;解密模块则使用解密用文件对G代码文件进行解密。
3 方法原理
本文提出一种适合3D打印模型的G代码文件加密传输方法,主要内容是先由3D模型生成G代码文件,通过几何变换、随即加密过程使其包含的构面信息变形,然后对该文件进行特征分离及分片得到第一子文件组,其中包括至少两个以上的子文件,各个子文件以第一排列顺序进行排序,使用fisher-yates算法对第一子文件组做随机排列得到第二子文件组,实际传输过程按照第二子文件组的顺序进行加密传输。同时生成记录有第二排列顺序的排列恢复文件,并自定时间延迟传输该序列号。因为子文件序列号延迟传输,所以先进行加密传输的第二子文件组的每一个分片都是不可读的,确保了3D模型信息的完整性和隐私性。
接收端收到第二子文件组及第二排列顺序后,在文件没有缺失的情况下对排列恢复文件进行解密,得到每个子文件的真实排列顺序,与文件特征结合之后完成重组,恢复原来的G代码文件。
3.1 坐标几何变换
对3D模型进行切片处理,以获取包含3D三角网格模型的顶点坐标信息G代码文件,然后对G代码文件中的顶点坐标信息进行几何变换。根据从G代码文件中提取出的坐标信息xi、yi、zi及索引值i,我们考虑一个3D三角形网格平面,移动其顶点得到矢量vi={xi,yi,zi},并利用索引值i對其进行几何变换得到vi={ixi,iyi,izi}={xi,yi,zi}使每个构面变形,变形小平面的三个顶点被用于构建3×3矩阵A={v1,v2,v3}。
然后用随机数矩阵对矩阵A进行随机加密得到加密矩阵A,从而得到加密的构面。第一密钥K由用户在客户端任意输入字符数字然后通过MD5算法生成,随机数矩阵R由第一密钥K和随机分布函数生成。其中,加密矩阵A加密矩阵包括基于第一加密顶点坐标信息生成的第二加密顶点坐标信息,第二加密顶点坐标信息为si={xi,yi,zi}。具体如下所示:
最后,将加密的小平面重新排列以获得加密的3D三角形网格,加密的3D三角形网格是一组经过随机加密的面。
3.2 分片加密传输
将第二加密顶点坐标信息替换第一加密G代码文件中的第一加密顶点坐标信息,以生成第二加密G代码文件。对第二加密G代码文件进行拆分,从而形成第一子文件组,第一子文件组包括至少两个子文件,各个子文件以第一排列顺序进行排序,使用fisher-yates算法对第一子文件组中的各个子文件进行随机排序并重组,从而生成第二子文件组以及排列恢复文件,记录有第二排列顺序。
通过由客户端响应于用户请求,根据具体用户信息,由sm3哈希算法生成第二密钥,并采用sm4算法通过第二密钥对第二子文件组进行加密传输,从而生成加密第二子文件组。然后对加密第二子文件组进行传输,对解密用文件进行延时传输。
3.3还原解密
在进行解密时,获取自服务器端发送的加密的G代码文件以及解密用文件,根据解密用文件对G代码文件进行解密。解密用文件包括第一密钥、几何变换逻辑文、排列恢复文件以及第二密钥。根据第二密钥对加密第二子文件组进行解密,从而获得第二子文件组;并同时进行根据排列恢复文件对第二子文件组进行恢复,从而形成第一子文件组。获取到第一密钥K之后,对第一加密G代码文件进行处理,恢复G代码文件,从而得到原始的平面顶点坐标信息vi={xi,yi,zi},解密后的平面将重新排列,从而获得原始的3D打印模型文件。
4 总结与展望
本文提出了一种用于3D打印模型的加密传输模型,基于通过几何变换使3D打印模型的各个面变形,使用随机数矩阵对变形面的顶点进行随机化来加密变形面的顶点。然后在分离文件特征使文件失去可读性的基础上,对G代码子文件组进行乱序重排之后加密传输,使实际捕获到的子文件顺序与真正的顺序不同,从而降低了G代码文件在传输过程中遭到数据窃取和非法复制的风险。实验结果证明了该算法对3D打印模型的加密传输非常有效。本文所提出的方法与现有方法相比,安全性得到了提高。将来,我们将通过加密传输系统来改进所提出的方法。
参考文献
[1] Ahsan K, Kundur D. Practical data hiding in TCP/IP [C]//Proc. of Multimedia Security at ACM Multimedia. Riviera,FR: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] 喻志强,赵荣椿,叶豪盛,等.自适应于局部几何特征的三维模型水印算法[J].计算机工程与应用,2002(22):23-27.
[4] 周昕,俞晓明,朱涛,等.一种基于小波变换的三维网格模型水印算法[J].计算机应用. 2007(5):1156-1159.
[5] 岳悅,李象霖.遗传算法在三维网格模型数字水印的应用[J].计算机仿真,2010(1):154-157.
[6] 王新宇,詹永照.构造顶点分布特征的三维模型数字水印算法[J].计算机辅助设计与图形学学报,2014(2):272-279.
收稿日期:2020-08-22
基金项目:2017年度国家重点研发计划《项目名称:面向创新创业的3D打印云服务平台研发及应用》(项目编号:2017YFB1104200)
作者简介:房子琪(1996—),女,山东潍坊人,硕士,[1]研究方向:保密科学与技术。
通讯作者:李生(1976—),男,山东青岛人,博士,工程师,研究方向:增材制造技术应用。
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