三維魔方加密算法如何給文本文件加密

三維魔方加密算法因其運(yùn)算速度快、密鑰空間大被廣泛應(yīng)用。那么我們今天就來(lái)看看三維魔方加密算法是如何給文本文件加密的?

一、三維魔方加密算法原理

三維模仿加密算法的思路來(lái)源于魔方,是基于一個(gè)立方體來(lái)作加密和解密的換算。網(wǎng)絡(luò)中的信息較多的是以文本形式存在的,因此我們就介紹一下三維魔方加密算法是如何對(duì)文本文件加密和解密的。

二、三維魔方加密算法給文本文件加密的步驟

(1)設(shè)定x、y、z為三維空間的三條坐標(biāo)軸,選擇需要被加密的文本文件,根據(jù)被加密文本文件的大小,決定x、y、z的最小階數(shù)(階數(shù)是魔方的邊長(zhǎng))m,這樣就形成了一個(gè)三維的立方體。

(2)加密過(guò)程:將文本文件中的內(nèi)容依次排列到魔方中,每個(gè)字符都有固定的位置(Xi,Yi,Zi)(0≤i≤m)。如果用戶設(shè)定的階數(shù)大于文本的最小階數(shù)m,那么魔方中剩下的空間里存放的是空格。輸入密鑰,密鑰的格式為:ababab……其中a代表x、y、z中的任意一個(gè),b代表數(shù)字,1表示第1階,2表示第2階,3表示第3階,以此類推。兩者合起來(lái)表示,將魔方以a代表的軸的第b階順時(shí)針旋轉(zhuǎn)90°。

N維魔方加密算法

(3)經(jīng)過(guò)密鑰對(duì)應(yīng)的所有旋轉(zhuǎn)完成,A、B、C三個(gè)字符順序?qū)⒈淮騺y,分別在不同的面上,得到加密是密文,顯示為亂碼。在魔方加密算法中,密鑰的長(zhǎng)度是隨機(jī)的,可以ababab,也可以ababababab,以此類推,密鑰長(zhǎng)度越長(zhǎng),旋轉(zhuǎn)的次數(shù)越多,文本排列的越亂。另外,如果用戶將階數(shù)擴(kuò)大,即魔方的長(zhǎng)度變長(zhǎng),那么擴(kuò)大的階數(shù)排列著空格,這些空格在旋轉(zhuǎn)過(guò)程中也被排列到文本中,這樣得到的密文包含著空格,文本排列的順序也越亂。

(4)解密過(guò)程:如前所述,魔方加密算法是一個(gè)對(duì)稱算法,因此它的加密和解密使用的是同一個(gè)密鑰。解密過(guò)程就是加密算法的逆運(yùn)算。在密鑰的生成部分,我們引用了三十三進(jìn)制,即0~9,a~w共33個(gè)字符。這樣就擴(kuò)大了密鑰的空間,增加了密鑰的數(shù)量。

例如輸出密鑰的形式為oy2wxwzqyqxuy0zw。其中o代表偏移量,o后面的字符才是真正的密鑰,斷句為:ywxwzqyqxuy0zw,其實(shí)際意思為:y(w-o)x(w-o)z(q-o)y(q-o)x(u-o)y(0-o)z(w-o)=y8x8z2y2x6y(-24)z8。如果出現(xiàn)負(fù)數(shù),如y(-24),就將其加33,這樣就等于y9。所以魔方算法自動(dòng)生成的密鑰為:y8x8z2y2x6y9z8。這樣改變了密鑰的輸出形式,就擴(kuò)大了密鑰的輸入限制,如果用窮舉搜索法搜索密鑰的話,就需要花更長(zhǎng)的時(shí)間。其過(guò)程如圖所示。

N維魔方加密算法

本文主要介紹了三維魔方加密算法如何給文本文件加密,但實(shí)際上,用戶需要加密的不僅僅是文本,也可能是圖片、數(shù)據(jù)庫(kù)、音頻文件、視頻文件等,因此,可以將三維魔方加密算法的應(yīng)用擴(kuò)展到這些文件上。

小知識(shí)之加密算法:

數(shù)據(jù)加密的基本過(guò)程就是對(duì)原來(lái)為明文的文件或數(shù)據(jù)按某種算法進(jìn)行處理,使其成為不可讀的一段代碼,通常稱為“密文”,使其只能在輸入相應(yīng)的密鑰之后才能顯示出本來(lái)內(nèi)容,通過(guò)這樣的途徑來(lái)達(dá)到保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的。 該過(guò)程的逆過(guò)程為解密,即將該編碼信息轉(zhuǎn)化為其原來(lái)數(shù)據(jù)的過(guò)程。