非均勻B-樣條曲線的加密算法

非均勻B-樣條曲線的加密算法是利用隨機生成的節(jié)點信息,對非均勻樣條曲線形態(tài)特征進行調(diào)整,從而避免控制點加密曲線散列碰撞問題。由明文生成控制點信息,有效地豐富了非均勻B-樣條曲線的幾何特征。非均勻B-樣條曲線的加密算法計算效率高、散列強度好,能夠有效地應(yīng)用于軟件加密過程和身份認證中。

非均勻B-樣條曲線的加密算法密鑰生成與埋置

密鑰一般具備以下3種特性:

(1)由一串固定長度的雜亂無章的字符串表示。

(2)能夠隨機生成,且盡量唯一。

(3)滿足加密算法需要。

在非均勻B-樣條曲線的加密算法中,密鑰信息用來構(gòu)建基函數(shù)的節(jié)點信息,有效調(diào)整曲線形態(tài),達到加密曲線形態(tài)多樣化,從而有效防止密文沖突。專家研究表明,通過調(diào)整一個節(jié)點使之變大或者變小可以調(diào)整B-樣條曲線的形狀,為B-樣條曲線形狀調(diào)整提供了簡便有效的方法。

根據(jù)非均勻B-樣條曲線基函數(shù)要求,密鑰序列或密鑰變形序列需滿足數(shù)值非遞減,且首尾數(shù)值為0和1的特征。在實際編程實現(xiàn)中,可通過以下兩個步驟生成密鑰。

(1)利用計算機時間獲取函數(shù)GetSystemTime(&st)獲取當(dāng)前時間,時間包括年/月/日/時/分/秒。

(2)然后對獲取的時鐘進行變形,映射到N維數(shù)值串(N一般取8),且數(shù)值滿足非遞減,為了滿足非遞減可采取對應(yīng)字符ASCII值累加,然后除以最大,最后通過對密鑰變形得到節(jié)點信息串U(u1,u2,…,un),且0=u1≤u2≤…≤un=1。

基于間距的明文變異方法

通常明文是由一串字符組成,該字符串包括字母、數(shù)字標(biāo)點符號或操作符,且字母區(qū)分大小寫。為了能使明文信息轉(zhuǎn)化為非均勻B-樣條曲線的控制點,需要把字符串中的字符轉(zhuǎn)化為坐標(biāo)點信息(坐標(biāo)點信息包括橫縱坐標(biāo)值),根據(jù)非均勻B-樣條曲線的特性,為了構(gòu)建比較光滑的曲線,控制點應(yīng)該避免局部交叉,且能保證明文變異是一一對應(yīng)關(guān)系的,從而我們提出的基于間距的明文變異方法是:

假設(shè)明文為S =“dfFGE,2WE/Fat”,首先確定起始控制點坐標(biāo)P0(x0,y0),依次求明文S中各字符對應(yīng)的ASCII值tn=ASCII(Sn),則P1=(x1,y1)=(x0+ t1,t1),P2=(x2,y2)=(x1+ t2,t2),…,Pn=(xn,yn)=(xn-1+ tn,tn)。使控制點在x軸方向上坐標(biāo)值累加,避免局部交叉,在y軸方向上保持不變,保持原來的幾何形態(tài)多變特征。從而明文到控制點數(shù)列的映射關(guān)系為(P1,P2,…,Pn)= F(S)。

非均勻B-樣條曲線的加密算法

由密鑰組成非均勻B-樣條曲線基函數(shù)的節(jié)點,0= u1≤u2≤…≤un=1,然后對明文進行基于間距的映射處理,使明文轉(zhuǎn)化為控制點坐標(biāo)值。根據(jù)非均勻B-樣條基函數(shù)的定義:

利用隨機生成密鑰,并進行處理得到非均勻B-樣條基函數(shù),為了提高非均勻B-樣條曲線的加密算法效率,可以設(shè)定基函數(shù)的次數(shù)為有限次(2,6次),并根據(jù)非均勻B-樣條定義,可求得在該基函數(shù)和控制點約束下的非均勻B-樣條曲線函數(shù),從而可以從該曲線上獲取有用的信息作為密文。根據(jù)非均勻B-樣條曲線定義(式(1)),得到直角坐標(biāo)系下x、y分量上的方程為:

由于該曲線是連續(xù)的,可以從該曲線上獲取無限的坐標(biāo)點作為密文,根據(jù)需求得到密文字符串長度,坐標(biāo)點可根據(jù)t區(qū)間的等間距求得。首先獲取密文長度L,計算間隔距離S =1/L,密文坐標(biāo)點為C(xm,ym)=(x(S × m),y(S ×m)),0≤m≤L,然后由密文坐標(biāo)映射為字符,為了把密文字符串中的字符均勻分布,采用坐標(biāo)求和然后整體縮放算法,縮放映射為P→M,P為密文坐標(biāo)點0< m<74,其中0 ~74代表密文的表現(xiàn)形式(大寫字母、小寫字母和數(shù)字),最后通過ASCII轉(zhuǎn)化得到密文。

非均勻B-樣條曲線的加密算法

非均勻B-樣條曲線的加密算法,屬于散列加密算法范疇,能夠廣泛地應(yīng)用于軟件加密和身份認證領(lǐng)域,非均勻B-樣條曲線的加密算法可以根據(jù)應(yīng)用領(lǐng)域不同而進行變形。如下給出算法實現(xiàn)流程及詳細實現(xiàn)步驟。

1、輸入明文,并對明文進行基于間距的明文變異。

2、根據(jù)明文變異信息,生成非均勻B-樣條控制點序列。

3、根據(jù)時鐘信息,隨機獲取密鑰。

4、根據(jù)隨機密鑰生成非均勻B-樣條基函數(shù)節(jié)點序列。

5、通過輸入加密次數(shù),構(gòu)建非均勻B-樣條函數(shù),進行基于非均勻B-樣條曲線的加密。

6、對曲線加密信息,進行基于坐標(biāo)值縮放算法的密文處理,獲得散列密文,并對密文進行輸出。

非均勻B-樣條曲線的加密算法加密強度分析

為了適應(yīng)當(dāng)前數(shù)字化時代對加密算法需要不斷創(chuàng)新和更新的需求,非均勻B-樣條曲線加密算法有效地利用了樣條基函數(shù)節(jié)點變化對曲線的形態(tài)變化影響和算法加密效率比較高的優(yōu)點。它的加密強度依賴于對密鑰的設(shè)置長度和對文件加密的輸出長度信息。根據(jù)非均勻B-樣條的局部性特征,密鑰作為樣條基函數(shù)節(jié)點信息的變形,密鑰的長短勢必影響到樣條曲線的振蕩敏感程度(每個局部都在變化),從而使樣條曲線的形態(tài)隨著密鑰的長度增加而豐富。另外,密文作為非均勻B-樣條曲線離散點的反映,密文的長度對應(yīng)著離散點的數(shù)量,從而密文越長越能表達曲線幾何特征,也越能避免散列碰撞問題。

由于非均勻B-樣條曲線的加密算法屬于不可逆加密算法,在加密的過程中既要滿足加密強度,也要考慮加密時間。對密碼的破解一般有兩種方法,一種是窮舉法,另一種是根據(jù)密文和加密算法的加密過程分析進行破譯。由于該加密算法屬于散列不可逆算法,從而使用窮舉法是不可取的。只能在獲得加密流程后,通過分析非均勻B-樣條的加密算法的加密過程進行解密。非均勻B-樣條加密算法的解密關(guān)鍵點在于控制點數(shù)及取控制點的規(guī)律、取樣條次數(shù)、取密文長度以及取密文點規(guī)律。下表中,我們給出了根據(jù)幾個關(guān)鍵點對解密時間復(fù)雜度的影響。

從非均勻樣條函數(shù)來看,影響加密時間的主要在于樣條次數(shù),非均勻B-樣條曲線的加密算法中開放了樣條次數(shù)的設(shè)置,理論上可以選取n次非均勻B-樣條進行加密。通過實驗表明樣條次數(shù)控制在2到5之間,加密迅速,適應(yīng)于軟件加密或身份認證需求。在處理器為P43. 0、內(nèi)存512 M、Windows XP操作系統(tǒng)下進行加密時間測試結(jié)果,結(jié)果表明,加密效率比較高,適應(yīng)于軟件加密網(wǎng)絡(luò)化需求。

非均勻B-樣條曲線的加密算法有效地利用了非均勻B-樣條特征信息,并通過樣條曲線豐富的特征信息進行加密散列,在增強加密強度的同時有效地保證了加密效率。非均勻B-樣條曲線的加密算法的可擴充性較強,可以通過修改基函數(shù)節(jié)點布局以及加密長度等信息對加密算法進行擴展,但關(guān)于算法散列強度還需進一步的驗證和非均勻B-樣條的特征信息有待進一步挖掘,從而才能夠進一步提高加密強度和效率。

小知識之非均勻B-樣條曲線

非均勻B-樣條曲線(NURBS),是一種用途廣泛的樣條曲線,它不僅能夠用于描述自由曲線和曲面,而且還提供了包括能精確表達圓錐曲線曲面在內(nèi)各種幾何體的統(tǒng)一表達式。