一種基于內容的三維網格模型的加密和解密方法
【專利摘要】本發明公開了一種基于內容的三維網格模型的加密和解密方法,步驟包括:對三維網格模型進行加密,將三維網格模型根據超混沌映射分別對網格面片構成和網格頂點坐標進行置亂,從而獲得加密后的三維網格模型;對加密后的三維網格模型進行解密,將加密后的三維網格模型根據超混沌映射對網格頂點坐標和面片構成進行逆向恢復,從而獲得解密后的三維網格模型。該三維網格模型的加密和解密方法有效實現了對三維網格模型的內容進行加密,且從面片構成和頂點坐標兩個層面上進行加密,加密和解密形式靈活,加密后的模型亦可渲染顯示,且抗破譯能力強,可為廣泛應用于影視動畫、游戲設計、工業設計以及醫學設計等不同領域的三維網格模型的保護。
【專利說明】
一種基于內容的三維網格模型的加密和解密方法
技術領域
[0001] 本發明涉及一種三維模型版權保護的加密和解密技術,屬于計算機圖形學和多媒 體信息安全技術領域,具體地說是一種基于內容的三維網格模型的加密和解密技術。
【背景技術】
[0002] 數字水印和加密技術可有效地應用于數字內容的版權保護。利用水印技術在多媒 體內容的數據中嵌入水印信息,在發生版權糾紛時,可通過提取的水印信息確認其版權。然 而隨著近年來三維打印技術的興起和發展,在數字模型經歷了打印之后,以及打印及再掃 描重建之后,水印信息將被摧毀。因此,借助加密技術對三維模型進行進一步地保護,在一 定程度上彌補了水印技術的不足,能夠提供對三維模型更好的保護。目前針對三維模型的 加密,大多數的做法是采用傳統的文件加密方式對整個三維網格模型的文件進行加密。但 是這種加密方式對三維網格模型加密后,模型僅能以文件形式存在,無法對加密的三維網 格模型進行渲染,更無法獲知三維網格模型的任何形狀或幾何信息。然而,在目前的三維場 景或游戲設計中,往往需要進行多人協作設計,因此很多時候對于某些模型我們既需要進 行加密,又需要讓協作者了解某處應該存在某個形狀,因此我們有必要設計出一種針對三 維網格模型的內容進行加密和解密的技術。
【發明內容】
[0003] 本發明要解決的技術問題是目前針對三維模型的加密方式對三維網格模型加密 后,模型僅能以文件形式存在,無法對加密的三維網格模型進行渲染,更無法獲知三維網格 模型的任何形狀或幾何信息。
[0004] 為了解決上述技術問題,本發明提供了一種基于內容的三維網格模型的加密和解 密方法,包括如下步驟:
[0005] 步驟1,對三維網格模型進行加密,將三維網格模型根據超混沌映射分別對網格面 片構成和網格頂點坐標進行置亂,從而獲得加密后的三維網格模型;
[0006] 步驟2,對加密后的三維網格模型進行解密,將加密后的三維網格模型根據超混沌 映射對網格頂點坐標和面片構成進行逆向恢復,從而獲得解密后的三維網格模型。
[0007] 采用超混沌映射有效實現了對三維網格模型的內容進行加密,且超混沌映射加密 方式的抗破譯能力強,可為廣泛應用于影視動畫、游戲設計、工業設計以及醫學設計等不同 領域的三維網格模型提供有效地保護;采用從面片構成和頂點坐標兩個層面上對三維網格 模型進行加密,有效增強了加密效果;本發明的加密和解密形式靈活,加密后的模型亦可渲 染顯示,保證了模型可以在場景中以加密的形式顯示,提供了大場景模型設計人員協作設 計的可能性。
[0008] 作為本發明的進一步限定方案,步驟1中,對三維網格模型進行加密的具體步驟 為:
[0009] 步驟11,生成超混沌映射,利用五維超混沌系統生成超混沌序列,并對生成的超混 沌序列進行預處理;
[0010] 步驟12,對網格面片構成進行置亂,對三維網格模型中構成各個網格面片的頂點 序號進行置亂;
[0011] 步驟13,對頂點坐標進行加密,對三維網格模型中的每個頂點的三維坐標進行擾 動加密。
[0012] 采用對頂點序號進行置亂以及對三維坐標進行擾動加密,實現了面片構成和頂點 坐標兩個層面上對三維網格模型進行加密。
[0013] 作為本發明的進一步限定方案,步驟11中,生成超混沌映射的具體步驟為:
[0014] 步驟111,利用五維超混沌系統生成超混沌序列:
[0016]
,(1<13.667,給定初始值叉1(0)32(0)、叉3(0)、叉4(0)和奶 (0)作為加密密鑰進行保存和傳輸,由超混沌系統生成的混沌序列為{X1(k),X2(k), X3(k), X4(k),X5(k),k = 1,2,3,. . .},k表示混沌序列中的各個狀態,混沌系統中每一維的Xj(k),( j =1,2,3,4,5)都可以通過k-1狀態中系統的各個維度值計算獲得;
[0017] 步驟112,對步驟111中生成的混沌序列的前兩個序列進行預處理:
[0019] 式中,round函數為四舍五入對數據進行取整的函數;
[0020] 步驟113,對預處理后的序列X1(k)'進行升序排列變為升序序列X1(i/,其中i = l, 2,3. . .M,M為構成網格面片的頂點數目,原序列^Q(k)'中各項在升序序列xi(i/中的位置索 引為P。
[0021 ]采用五維超混沌系統進行加密,其動態行為更為復雜,對密鑰的敏感性強,抗破譯 能力強,能夠對三維模型進行更強有力的保密;采用升序排列進行重新排列來進行加密,并 記錄下原序列中各項在升序序列中的位置索引為P,以確保恢復時精確重現。
[0022]作為本發明的進一步限定方案,步驟12中,對網格面片構成進行置亂的具體步驟 為:
[0023]步驟121,根據步驟113得到的位置索引p,對三維網格模型中網格面片的頂點構成 進行置亂,原三維網格模型中每個網格面片的每個頂點序號i,經置亂后序號變為i'。采用 根據位置索引P進行置亂,以確保恢復時精確重現。
[0024]作為本發明的進一步限定方案,步驟13中,對頂點坐標進行加密的具體步驟為: [0025]步驟131,將三維網格模型中每個頂點的三維坐標值按設定順序依次加上wXx2 (k)'進行擾動,得到擾動加密后的新坐標值,其中w用于設定擾動的幅度大小,并保存為擾 動密鑰。
[0026] 通過設定擾動密鑰w值的大小來控制擾動的幅度大小,進一步提高了加密效果,且 具有較好的加密靈活性。
[0027] 作為本發明的進一步限定方案,步驟1中,對加密后的三維網格模型進行解密的具 體步驟為:
[0028] 步驟21,將傳輸得到的加密密鑰作為初始值,利用與步驟111相同的方式得到五維 超混沌系統生成的超混沌序列,并進行與步驟112相同的預處理操作得到^(1〇'和 X2(k)';
[0029] 步驟22,將三維網格模型中的每個頂點的三維坐標值按設定順序依次減去w X X2 (k)'取消擾動,解密得到原始的頂點三維坐標,w即為步驟131中保存的擾動密鑰;
[0030] 步驟23,對步驟21中獲得的^(1〇'進行升序排列,根據升序序列^^/與原序列^ (k)'的位置索引p,將加密后三維網格模型中每個網格面片的每個頂點序號i'恢復為序號 i,從而恢復三維網格模型中構成網格面片的頂點序號。
[0031] 按照加密的逆向過程進行解密,并根據傳遞接收的加密密鑰和擾動密鑰進行解 密,能夠確保解密過程的順利進行。
[0032] 本發明的有益效果在于:(1)采用超混沌映射有效實現了對三維網格模型的內容 進行加密,且超混沌映射加密方式的抗破譯能力強,可為廣泛應用于影視動畫、游戲設計、 工業設計以及醫學設計等不同領域的三維網格模型提供有效地保護;(2)采用從面片構成 和頂點坐標兩個層面上對三維網格模型進行加密,有效增強了加密效果;(3)本發明的加密 和解密形式靈活,加密后的模型亦可渲染顯示,保證了模型可以在場景中以加密的形式顯 示,提供了大場景模型設計人員協作設計的可能性。
【附圖說明】
[0033]圖1為本發明的方法流程示意圖。
[0034]圖2a是實施例的輸入三維網格模型示例示意圖。
[0035]圖2b是對圖2a的輸入三維網格模型采用本發明所述加密方法進行加密,獲得的加 密后的三維網格模型的示意圖。
[0036] 圖2c是對圖2b的輸入加密三維網格模型采用本發明所述解密方法進行解密,獲得 的解密后的三維模型的示意圖。
【具體實施方式】
[0037] 如圖1所示,本發明公開了一種基于內容的三維網格模型的加密和解密方法,包括 三維網格模型的加密方法和解密方法。
[0038]其中,三維網格模型的加密包括以下步驟:利用五維超混沌系統生成超混沌序列, 并對前兩個序列進行預處理。對第一個序列按值進行升序排列,根據原序列與升序序列的 位置對應關系,對面片的頂點構成進行置亂。將各頂點的坐標值依次加上加權的第二個序 列值作為加密后的頂點坐標值,權重為頂點擾動的幅度大小,得到加密后的三維網格模型。 [0039]三維網格模型解密方法包括以下步驟:采用混沌密鑰作為初始值,生成五維超混 沌序列,采用與加密過程相同的方式首先根據擾動幅度密鑰對頂點坐標進行解密,再對面 片構成進行恢復,以得到解密后的三維網格模型。本發明的加密方法能夠有效地對三維網 格模型的內容進行加密,并能從面片構成和頂點坐標兩個方面增加保密效果,從而實現了 為應用于不同領域的三維模型進行保密的目的。
[0040] 本發明提出的基于內容的三維網格模型的加密和解密方法,采用了五維超混沌系 統產生的混沌序列進行內容的加密,不僅可以得到更強的保密性能,而且能夠對加密模型 進行渲染輸出,可以適用于大場景協作設計的場合。
[0041] 具體而言,本發明公開了一種基于內容的三維網格模型的加密和解密方法,包括 如下步驟:
[0042]步驟1,對三維網格模型進行加密,將三維網格模型根據超混沌映射分別對網格面 片構成和網格頂點坐標進行置亂,從而獲得加密后的三維網格模型;
[0043]步驟2,對加密后的三維網格模型進行解密,將加密后的三維網格模型根據超混沌 映射對網格頂點坐標和面片構成進行逆向恢復,從而獲得解密后的三維網格模型。
[0044]其中,步驟1中,對三維網格模型進行加密的具體步驟為:
[0045] 步驟11,生成超混沌映射,利用五維超混沌系統生成超混沌序列,并對生成的超混 沌序列進行預處理;
[0046] 步驟12,對網格面片構成進行置亂,對三維網格模型中構成各個網格面片的頂點 序號進行置亂;
[0047]步驟13,對頂點坐標進行加密,對三維網格模型中的每個頂點的三維坐標進行擾 動加密。
[0048] 進一步的,步驟11中,生成超混沌映射的具體步驟為:
[0049] 步驟111,利用五維超混沌系統生成超混沌序列:
[0051 ]
,(1<13.667,給定初始值11(0)、12(0)、13(0)、14(0)和叉5 (0)作為加密密鑰進行保存和傳輸,超混沌系統生成混沌序列{X1(k),X2(k), X3(k),X4(k),χ5 (1〇^=1,2,3,...}汰表示混沌序列中的各個狀態,混沌系統中每一維的幻(1〇,(」=1,2, 3,4,5)都可以通過前一狀態k-1中系統的各個維度值根據上式計算得到;
[0052]步驟112,為了采用混沌序列分別針對網格模型的面片構成和頂點坐標進行加密, 我們可從五維超混沌系統中選取兩個序列進行處理,當步驟111中的d = -6時,混沌系統的 Lyapunov指數分別為(0.2392,0· 1773,0,-4· 539,-15· 72),此時系統擁有兩個正的 Lyapunov指數,系統的動態行為更復雜,隨機性更強,我們針對步驟111中生成的混沌序列 的前兩個序列進行預處理,處理后的兩個序列 X1(k)'和X2(k)'將分別用于對網格模型進行 面片構成和頂點坐標的加密,預處理方式如下:
[0054] 式中,round函數通過四舍五入對數據取整;
[0055] 步驟113,面片加密采用借助X1(k)'對面片頂點構成置亂的方式,具體為對預處理 后的序列xi(k)'進行升序排列變為升序序列 X1(i/,其中i = l,2,3. ..M,M為構成網格面片 的頂點數目,原序列^(10'中各項在升序序列X1(iV中的位置索引為p。
[0056] 進一步的,步驟12中,對網格面片構成進行置亂的具體步驟為:
[0057]步驟121,根據步驟113得到的位置索引p,對三維網格模型中網格面片的頂點構成 進行置亂,原三維網格模型中每個網格面片的每個頂點序號i,經置亂后序號變為i'。
[0058]進一步的,步驟13中,對頂點坐標進行加密的具體步驟為:
[0059]步驟131,將三維網格模型中每個頂點的三維坐標值按原文件中設定的順序依次 加上wXx2(k)'進行擾動,得到擾動加密后的新坐標值,其中w用于設定擾動的幅度大小,并 保存為擾動密鑰。
[0060] 進一步的,步驟1中,對加密后的三維網格模型進行解密的具體步驟為:
[0061] 步驟21,將傳輸得到的加密密鑰作為初始值,利用與步驟111相同的方式得到五維 超混沌系統生成的超混沌序列,并進行與步驟112相同的預處理操作得到^(1〇'和 X2(k)';
[0062] 步驟22,將三維網格模型中的每個頂點的三維坐標值按原文件中設定順序依次減 去wXx2(k)'取消擾動,該步驟中原文件中設定順序與步驟131中設定的順序相同即可,解 密得到原始的頂點三維坐標,w即為步驟131中保存的擾動密鑰;
[0063] 步驟23,對步驟21中獲得的^(1〇'進行升序排列,根據升序序列^^/與原序列^ (k)'的位置索引p,將加密后三維網格模型中每個網格面片的每個頂點序號i'恢復為序號 i,從而恢復三維網格模型中構成網格面片的頂點序號。
[0064]如圖2a所示,本實施例的輸入三維模型為三角形網格表示的三維模型。
[0065]下面具體介紹各個步驟的主要流程:
[0066] 1.三維網格模型的加密過程
[0067]對三維網格模型根據超混沌序列進行面片構成和頂點坐標的置亂和擾動,得到加 密的三維網格模型,包括以下步驟:
[0068] 步驟11,生成超混沌序列,并對混沌序列中的前兩個序列,利用如下公式:
[0070] 進行預處理,對預處理后的序列X1(k)'進行升序排列,變為xKiY,其中i = l,2, 3. . .M,M為構成網格面片的頂點數目,利用序列^Q(k)'中各項在升序序列xi(i/中的位置索 引p進行面片構成的置亂處理。
[0071] 步驟12,根據步驟11得到的位置索引P,對圖2a三維網格模型中,網格面片的頂點 構成進行置亂,原三維網格模型中每個網格面片的每個頂點序號i經置亂后序號變為i'。
[0072] 步驟13,將圖2a中三維網格模型中每個頂點的三維坐標值,按順序加上w X X2 (k) ' 進行擾動,得到加密后的新坐標值,其中w用于設定擾動的幅度大小,亦可作為擾動密鑰。 [0073]如圖2b所示,得到加密后的三維網格模型。
[0074] 2.三維網格模型的解密過程
[0075] 利用加密密鑰,生成超混沌序列對頂點坐標和面片構成進行恢復,得到解密的三 維網格模型,包括以下步驟:
[0076] 步驟21,超混沌映射:將傳輸得到的密鑰作為初始值,利用與步驟111相同的方式 得到五維超混沌系統生成超混沌序列,并進行與加密過程中步驟112相同的預處理操作,得 到xi(k)'和X2(k)' ;
[0077] 步驟22,對頂點坐標進行解密:對三維網格模型中的頂點的三維坐標值,按順序減 去wXx2(k)'取消擾動,解密得到原始的頂點三維坐標,此處的w即為加密過程中保存的擾 動密鑰值。
[0078] 步驟23,對網格面片構成進行恢復:對^(1〇'進行升序排列后,根據新序列中各項 與原序列各項的位置對應關系,對加密后三維網格模型中每個網格面片的每個頂點序號 i',經恢復后序號變為i。從而三維網格模型中構成網格面片的頂點序號進行恢復。
[0079]本實施例中,測試模型選用斯坦福大學著名的bunny模型來進行實驗。如圖2a所示 為輸入的三維網格模型,通過本實施例所述的基于內容的三維網格模型的加密和解密方 法,可將圖2a中的三維網格模型根據加密過程生成如圖2b所示的加密的三維網格模型,而 根據解密過程可將圖2b中的加密模型進行解密,得到如圖2c所示的解密后的三維網格模 型。
[0080] 1、加密
[0081] 采用初始值叉1(〇)=〇.9;叉2(0)=0.8;叉3(0)=0.7;叉4(0)=0.6;叉5(0)=0.5生成超 混沌序列,頂點擾動幅度取為2。該部分取值即為加密和解密的密鑰。
[0082] 2、解密
[0083] 為驗證方法的有效性,我們對加密的模型,采用相同的密鑰進行解密。從圖2b和圖 2c中可以看出加密和解密效果較好。
[0084] 從實驗結果可以看出,應用本發明后,原始模型在加密后依然能夠渲染輸出,但加 密后完全無法看出原始模型的幾何形狀,而采用相同密鑰解密后,可以恢復原始的幾何形 狀。
[0085] 由以上實施方式可以看出,與現有技術相比,本發明基于內容的三維網格模型的 加密和解密方法具有如下有益效果:首先,本發明有效實現了對三維網格模型的內容進行 加密;其次,本發明從面片構成和頂點坐標兩個層面上對三維網格模型進行加密,并可控制 頂點擾動的幅度;最后,本發明的加密和解密形式靈活,加密后的模型亦可渲染顯示,且超 混沌加密方式的抗破譯能力強,可為廣泛應用于影視動畫、游戲設計、工業設計以及醫學設 計等不同領域的三維網格模型提供有效地保護。
[0086]本發明提供了一種基于內容的三維網格模型的加密和解密方法,具體實現該技術 方案的方法和途徑很多,以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域 的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改 進和潤飾也應視為本發明的保護范圍。本實施例中未明確的各組成部分均可用現有技術加 以實現。
【主權項】
1. 一種基于內容的三維網格模型的加密和解密方法,其特征在于,包括如下步驟: 步驟1,對三維網格模型進行加密,將三維網格模型根據超混沌映射分別對網格面片構 成和網格頂點坐標進行置亂,從而獲得加密后的三維網格模型; 步驟2,對加密后的三維網格模型進行解密,將加密后的三維網格模型根據超混沌映射 對網格頂點坐標和面片構成進行逆向恢復,從而獲得解密后的三維網格模型。2. 根據權利要求1所述的基于內容的三維網格模型的加密和解密方法,其特征在于,步 驟1中,對三維網格模型進行加密的具體步驟為: 步驟11,生成超混沌映射,利用五維超混沌系統生成超混沌序列,并對生成的超混沌序 列進行預處理; 步驟12,對網格面片構成進行置亂,對三維網格模型中構成各個網格面片的頂點序號 進行置亂; 步驟13,對頂點坐標進行加密,對三維網格模型中的每個頂點的三維坐標進行擾動加 I_L| 〇3. 根據權利要求2所述的基于內容的三維網格模型的加密和解密方法,其特征在于,步 驟11中,生成超混沌映射的具體步驟為: 步驟111,利用五維超混沌系統生成超混沌序列:式中,8=10,/).= |# = 28,(1<13.667,給定初始值叉1(0)、叉2(0)、叉3(0)、叉4(0)和15(0)作 為加密密鑰進行保存和傳輸,由超混沌系統生成的混沌序列為{X1(k),X2(k),X3(k), X4(k), x5(k),k= 1,2,3,. . .},k表示混沌序列中的各個狀態,混沌系統中每一維的Xj (k),( j = 1,2, 3,4,5)都可以通過k-1狀態中系統的各個維度值計算獲得; 步驟112,對步驟111中生成的混沌序列的前兩個序列進行預處理:式中,round函數為四舍五入對數據進行取整的函數; 步驟113,對預處理后的序列X1(k)'進行升序排列變為升序序列xKi)',其中i = l,2,3. . .M,M為構成網格面片的頂點數目,原序列^Q(k)'中各項在升序序列xi(i/中的位置索引 為P〇4. 根據權利要求3所述的基于內容的三維網格模型的加密和解密方法,其特征在于,步 驟12中,對網格面片構成進行置亂的具體步驟為: 步驟121,根據步驟113得到的位置索引p,對三維網格模型中網格面片的頂點構成進行 置亂,原三維網格模型中每個網格面片的每個頂點序號i,經置亂后序號變為i'。5. 根據權利要求3所述的基于內容的三維網格模型的加密和解密方法,其特征在于,步 驟13中,對頂點坐標進行加密的具體步驟為: 步驟131,將三維網格模型中每個頂點的三維坐標值按設定順序依次加上wXx2(k)'進 行擾動,得到擾動加密后的新坐標值,其中w用于設定擾動的幅度大小,并保存為擾動密鑰。6.根據權利要求3所述的基于內容的三維網格模型的加密和解密方法,其特征在于,步 驟1中,對加密后的三維網格模型進行解密的具體步驟為: 步驟21,將傳輸得到的加密密鑰作為初始值,利用與步驟111相同的方式得到五維超混 沌系統生成的超混沌序列,并進行與步驟112相同的預處理操作得到^(1〇'和X2(k)'; 步驟22,將三維網格模型中的每個頂點的三維坐標值按設定順序依次減去w X X2(k) '取 消擾動,解密得到原始的頂點三維坐標,w即為步驟131中保存的擾動密鑰; 步驟23,對步驟21中獲得的^(1〇'進行升序排列,根據升序序列^^/與原序列^(1〇' 的位置索引P,將加密后三維網格模型中每個網格面片的每個頂點序號i'恢復為序號i,從 而恢復三維網格模型中構成網格面片的頂點序號。
【文檔編號】G06T1/00GK105869103SQ201610180516
【公開日】2016年8月17日
【申請日】2016年3月25日
【發明人】李紅巖, 孫仁鵬, 何淼, 馬秀芳
【申請人】南京信息職業技術學院