專利名稱:同音替代對稱加密的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及密碼學(xué),更具體地,涉及編碼數(shù)據(jù)生成或轉(zhuǎn)換。
背景技術(shù):
加密技術(shù)已經(jīng)廣泛地用于在網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)以提供信息安全性。 已經(jīng)推薦了用于加密信息的若干不同技術(shù)和算法,當(dāng)前在產(chǎn)業(yè)中廣泛 使用這些技術(shù)中的多種技術(shù)進(jìn)行加密??梢詫⒓用芗夹g(shù)分類成對稱密 鑰加密或公共密鑰加密。選擇特定加密技術(shù)和算法的主要標(biāo)準(zhǔn)是由該 技術(shù)提供的安全等級、整體性能和執(zhí)行方便性。
對稱密鑰加密涉及使用相同加密密鑰加密和解密所關(guān)注的數(shù)據(jù) 消息。典型地,可以根據(jù)加密密鑰計算出解密密鑰,反之亦然。通常 可以非??焖俚仉娮訄?zhí)行用于對稱密鑰加密的算法。然而,加密密鑰 副本應(yīng)當(dāng)保密或者安全地保存在加密傳輸?shù)拿慷松稀?一些最公知的對 稱密鑰數(shù)據(jù)加密技術(shù)是簡單替代密碼、同音替代密碼、多碼替代密碼、 互換密碼、密碼合成和流密碼。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的一個實施例, 一種對稱密鑰數(shù)據(jù)加密方法可以涉及 使用導(dǎo)致增強(qiáng)同音替代的轉(zhuǎn)換的合成,其中字符映射根據(jù)消息文本內(nèi) 的字符序列而改變。在執(zhí)行該方法中,首先生成加密密鑰。隨后,在 數(shù)據(jù)上執(zhí)行多碼替代,這涉及"異或,,(例如布爾邏輯異或運(yùn)算/計算) 原始數(shù)據(jù)和所生成的密鑰。接著,將存儲格式從高字節(jié)開頭
(big-endian)改變成低字節(jié)開頭(little-endian),或者反之。最后, 在將數(shù)據(jù)放置在一個或多個方陣(square matrix)內(nèi)之后,執(zhí)行増強(qiáng) 同音替代(homophonic substitution )。現(xiàn)有的同音替代可以將預(yù)替代域中的每個元素映射成后替代共
域中的分離子集。本發(fā)明的增強(qiáng)同音替代可以是對合(involution), 以便可以在共域(co-domain)內(nèi)將元素映射到的子集是整個共域本 身。因此,可以將該域中的任意給定元素映射到共域的任意元素。此 外,域中的元素映射到的共域中的特定元素隨著在數(shù)據(jù)塊內(nèi)的字符或 其它數(shù)據(jù)元素的順序和選定的密鑰而改變。
本發(fā)明一個實施例的特征可以在于一種用于加密多個數(shù)據(jù)元素 的同音替代方法,其中將每個數(shù)據(jù)元素從預(yù)替代域映射到后替代共域 中的多個元素之一,和其中每個數(shù)據(jù)元素可映射到任一共域元素。為 了將數(shù)據(jù)元素映射到共域元素,使用另 一單元中的數(shù)據(jù)交換在每個方 陣內(nèi)每個單元中的一部分?jǐn)?shù)據(jù)元素。具體而言,在對角線上跨矩陣借 助另一個單元中的四位字節(jié)交換一個單元中的四個比特的(這些比特
不必是連續(xù)的)一個四位字節(jié)。根據(jù)對角交換公式選擇特定的單元對。 根據(jù)基于加密密鑰的值、并且取決于預(yù)替代域中數(shù)據(jù)元素順序針對每 一交換改變的線性等式,計算將要交換的比特位置。
根據(jù)本發(fā)明的附加實施例,該數(shù)據(jù)加密方法可以涉及使用 一個或 多個加密密鑰對數(shù)據(jù)執(zhí)行多碼(polyalphabetic)替代操作,隨后改變 數(shù)據(jù)的存儲格式(可選擇地從高字節(jié)開頭格式到低字節(jié)開頭格式或者 反之)。隨后,可以對數(shù)據(jù)執(zhí)行同音替代操作,例如上述的增強(qiáng)同音 替代操作,或者另一種同音替代操作。通過級聯(lián)一個或多個中間密鑰 和初始密鑰,可以生成一個或多個加密密鑰,其中中間密鑰的數(shù)量基 于密鑰深度,并且中間密鑰是從初始密鑰計算的。
通過參考附圖,閱讀非限制實施例的下述描述,將更好地理解本 發(fā)明,在附圖中
圖1是圖示根據(jù)本發(fā)明一個實施例的對稱密鑰數(shù)據(jù)加密方法的 步驟的流程圖2是該方法的示意圖;圖3是標(biāo)準(zhǔn)的十六進(jìn)制到二進(jìn)制到十進(jìn)制的轉(zhuǎn)換圖; 圖4是圖示用于生成加密密鑰的步驟的流程圖; 圖5是圖示用于加密數(shù)據(jù)的步驟的流程圖;和 圖6是在方陣內(nèi)排列中間密文的示意圖。
具體實施例方式
參考圖1至圖6,本發(fā)明的實施例涉及一種使用對稱密鑰算法加 密數(shù)據(jù)的方法。典型地,將把本方法實施為用于使用計算機(jī)或其它電 子設(shè)備執(zhí)行本方法的計算機(jī)編程代碼。為了加密所關(guān)注的數(shù)據(jù),在步 驟100訪問包含"明文"數(shù)據(jù)12 (指將要加密的原始數(shù)據(jù))的文件10。 例如,該文件可以是包含計算機(jī)可讀格式的數(shù)據(jù),例如二進(jìn)制格式的 數(shù)據(jù)等,的電子文件或記錄。在步驟102,生成一個或多個加密密鑰 14以在加密明文數(shù)據(jù)12中使用。這可以在訪問數(shù)據(jù)文件IO之前執(zhí)行。 隨后,在步驟104,執(zhí)行多碼替代,其涉及"異或"16 (例如布爾邏輯 異或計算/運(yùn)算,也稱作模2相加)數(shù)據(jù)12與所生成的加密密鑰14 以生成包含中間密文20的記錄、文件或其它數(shù)據(jù)陣列18。換句話說, 中間密文20=明文數(shù)據(jù)12 加密密鑰14。接著,在步驟106,將具有 中間密文20的文件18的存儲格式從高字節(jié)開頭改變成低字節(jié)開頭, 或者反之。這產(chǎn)生包含中間密文20、但是具有重新排列的存儲格式/ 順序的修正文件或數(shù)據(jù)陣列22。(該新文件22可以占用與原始文件 18相同的存儲空間。)最后,在步驟108執(zhí)行中間密文20的增強(qiáng)同 音替代以生成"最后的,,完整加密密文24,可以將其存儲在文件、記錄 或數(shù)據(jù)陣列26內(nèi)。
根據(jù)兩個參數(shù),用于密鑰生成過程的"最小深度"和初始密鑰,生 成加密密鑰14。舉例來說,假定最小深度為2,初始密鑰為十六進(jìn)制 0xCA8E。(在圖3中圖示用于在十六進(jìn)制、二進(jìn)制和十進(jìn)制之間轉(zhuǎn) 換的標(biāo)準(zhǔn)表格。)根據(jù)圖4所示的步驟,使用該初始密鑰生成該組加 密密鑰14。典型地,根據(jù)給定的例子,初始密鑰將對應(yīng)于兩個字節(jié)的 數(shù)據(jù),例如四位十六進(jìn)制數(shù)或十六位二進(jìn)制數(shù)。首先,在步驟IIO,用二進(jìn)制格式表示該初始密鑰。例如,對于 上面給定的初始密鑰(CA8E ) , 二進(jìn)制表示是1100 1010 1000 1110。 接著,在步驟112,確定二進(jìn)制表示初始密鑰內(nèi)每個四位字節(jié)("四位 字節(jié)"是四個比特)的十進(jìn)制等價數(shù)。因而,四位字節(jié)1=1100=>12; 四位字節(jié)2=1010=>10;四位字節(jié)3=1000=>8;和四位字節(jié)4=1110=>4。 接著,在步驟114,計算四位字節(jié)1和四位字節(jié)4的乘積,例如 12*14=168。隨后,在步驟116,分別對后兩個數(shù)字執(zhí)行模8操作(6 模8-6)和(8模8 - 0 )。如應(yīng)當(dāng)理解的,將模8操作("a,,模"b,^"n") 定義為計算"a,,除以"b,,的整數(shù)余數(shù)。因而,(6模8)具有整數(shù)余數(shù)6, 和(8模8)具有余數(shù)0,即8/8=1,余數(shù)O。
為了計算所需要的密鑰生成深度,在步驟118,計算四位字節(jié)2 和四位字節(jié)3的乘積,例如10.8=80。隨后,在步驟120,對乘積執(zhí) 行模2操作,例如(80模2=0)。再次,80/2=40,余數(shù)O。隨后,在 步驟122,將初始選擇的最小密鑰深度,例如2,添加給這個值。在 當(dāng)前的例子中,這產(chǎn)生所需要的密鑰生成深度2 (0+2=2)??傊?br>
所需要的深度=最小深度+ ((四位字節(jié)一2—十進(jìn)制*四位字節(jié)一3— 十進(jìn)制)模2)。
如果已經(jīng)為了計算所需要的密鑰生成深度執(zhí)行步驟118-122,如 在步驟123中確定的,該算法可以直接前進(jìn)到步驟124。
繼續(xù)地,在步驟124,使用在步驟116中獲得的值(例如6和0 ), 如果在步驟116中獲得的數(shù)值乘積是偶數(shù),則將四位字節(jié)1和四位字 節(jié)2在一起向右旋轉(zhuǎn)六次。反之,將它們向左旋轉(zhuǎn)六次。在任一情況 下,旋轉(zhuǎn)程度等于在步驟116中獲得的第一值,例如6。類似地,根 據(jù)可能的情況,將四位字節(jié)3和4向左或向右旋轉(zhuǎn)到等于在步驟116 中獲得的第二值的程度,例如0。因而,在該例子中,不旋轉(zhuǎn)四位字 節(jié)3和4,因為在步驟116中獲得的第二值是O。在當(dāng)前的例子中, 在旋轉(zhuǎn)之后,將初始密鑰0xCA8E轉(zhuǎn)換為0x2B8E。 0x2B8E是"l級,, 中間密鑰。在步驟125,根據(jù)所需要的密鑰深度,確定是否已經(jīng)計算 出全部所需的中間密鑰。例如,如果所需要的深度是3,則計算三個中間密鑰。通過對前一中間密鑰重復(fù)該處理,生成其它中間密鑰。在
當(dāng)前的例子中,因為所需要的深度是2,對1級密鑰,例如0x2B8E, 重復(fù)步驟112、 114、 116和124以獲得"2級,,中間密鑰,在該例子中 將是0xCA8E。
根據(jù)其標(biāo)準(zhǔn)含義,如本領(lǐng)域技術(shù)人員公知的,術(shù)語"向右旋轉(zhuǎn),, 和"向左旋轉(zhuǎn),,是指將二進(jìn)制數(shù)(在這種情況下)向左或向右移位,但 是將移位數(shù)字"環(huán)繞"返回該數(shù)的前端或后端。如果將二進(jìn)制數(shù)向右旋 轉(zhuǎn)一個位置,則將最低有效數(shù)(最右數(shù))移至最高有效位置(最左位 置)。類似地,如果將二進(jìn)制數(shù)向左旋轉(zhuǎn)一個位置,將最高有效數(shù)(最 左數(shù))移至最低有效位置(最右位置)。例如,將二進(jìn)制數(shù)10010111 向右旋轉(zhuǎn)兩個位置生成11100101。將該數(shù)向左旋轉(zhuǎn)一個位置生成 00101111。
一旦計算出中間密鑰,則通過級聯(lián)中間密鑰和初始密鑰的四位字
節(jié),在步驟126獲得最后的加密密鑰組14。級聯(lián)順序是
a) 2級密鑰的四位字節(jié)1和2
b) l級密鑰的四位字節(jié)l和2
c) 初始密鑰的四位字節(jié)1和2
d) 初始密鑰的四位字節(jié)3和4
e) 2級密鑰的四位字節(jié)3和4
f) l級密鑰的四位字節(jié)3和4。
在假定的例子中,最后的密鑰將是OxCA、 0x2B、 OxCA、 0x8E、 0x8E和0x8E。如果存在附加中間密鑰,將使用其以類似方式生成最 后的密鑰,例如a-d)分別地,3-1級密鑰和初始密鑰的四位字節(jié)1和 2; e-h)分別地,初始密鑰和3-1級密鑰的四位字節(jié)3和4。
參見圖5,在該數(shù)據(jù)加密方法中的隨后步驟順序涉及使用在步驟 102 (圖4)中生成的密鑰14的多碼替換(圖1中的步驟104)。在 步驟130,如果需要,使用二進(jìn)制等價數(shù)表示將要加密的數(shù)據(jù)12 (例 如文本等)。例如,可以將文本轉(zhuǎn)換稱ASCII格式,其中每個鍵盤字 符具有標(biāo)準(zhǔn)的指定十六進(jìn)制等價數(shù),例如在ASCII中,字母"b"具有十六進(jìn)制值62,分號具有十六進(jìn)制值3B。在步驟132,為了多碼替 換,將二進(jìn)制的每個數(shù)據(jù)字符按順序逐個與加密密鑰14異或。具體 而言,將第一數(shù)據(jù)字節(jié)與第一密鑰字節(jié)異或。隨后,將下一個數(shù)據(jù)字 節(jié)與下一個密鑰字節(jié)異或,該處理以循環(huán)隊列方式繼續(xù),即一旦達(dá)到
密鑰的最后一個字節(jié),該處理從開始繼續(xù)。根據(jù)其標(biāo)準(zhǔn)定義,如果僅 輸入之一為真,則異或功能16返回真值(1);如果兩者都為真或者 都不為真,則返回假值(O)。因而,0XOR0-0; 1XOR1=0; 1 XOR 0 =1;和0 XOR 1 =1。因此,在將異或功能應(yīng)用于小寫字母"b", ASCII 十六進(jìn)制值62 (二進(jìn)制01100010)時,所獲得的中間密文20將是62 XOR CA=>01100001 XOR 11001010 = 10101011。如果下一個數(shù)據(jù)字 符是分號,則所獲得的中間密文20將是3BXOR2B。
典型地,將在步驟132中計算出的中間密文20存儲在臨時存儲 器或存儲裝置18內(nèi)。在步驟134 (圖1中的步驟106),根據(jù)一開始 如何存儲密文20,從高字節(jié)開頭格式到低字節(jié)開頭格式或者反之,反 轉(zhuǎn)中間密文20的存儲格式。"高字節(jié)開頭"和"低字節(jié)開頭"是指在多 字節(jié)數(shù)據(jù)類型中哪些字節(jié)是最高有效位,并描述字節(jié)序列在計算機(jī)存 儲器內(nèi)存儲的順序。在高字節(jié)開頭系統(tǒng)中,將序列中的最高有效值存 儲在最低存儲地址上(例如第一)。在低字節(jié)開頭系統(tǒng)中,首先存儲 序列中的最低有效值。因此,對于二進(jìn)制數(shù)1001 0001 0101 1111:
高字節(jié)開頭/低字節(jié)開頭
地址0: 1001/1111
地址1: 0001/0101
地址2: 0101/0001
地址3: 1111/1001
在步驟136,將中間密文20存儲在一個或多個方陣28。如果"L" 是在塊內(nèi)將要編碼的文本的長度,將方陣大小"J,,選擇成最高可能的 "j^丄",以{更J"2,"(1,2,3,…7V)。換句話i兌,因為I是整數(shù), J-1,4,9,16,…N2,其中將J限制為最大值L??商娲兀梢赃M(jìn)一步 使方陣的大小取決于初始密鑰。為了根據(jù)初始密鑰選擇矩陣大小,計算初始密鑰的最高有效字節(jié)和最低有效字節(jié)的乘積"P"。將矩陣大小選擇為J二(2 + (尸mod(/-2)))2,/e(l,2,3,…A0 。
剩余字符(L-J)也設(shè)置在一個或多個方陣內(nèi)。將用于剩余字符(L-J )的方陣大小"K,,選擇為最高可能的"K"i:-J)",以便
《=M2,Me (1,2,3,... TV)。如果((L-J ) <4 ),則在執(zhí)行異或運(yùn)算之后,將最后的(L-J)字節(jié)放置在方陣內(nèi)的恰好在這些最后(L-J)字節(jié)之
前編碼的那些字符之前。
圖6圖示對于30字符數(shù)據(jù)塊,L=30,如何將數(shù)據(jù)設(shè)置在方陣內(nèi)。
滿足J"和J〃2,/e(I,2,3,.JV)的最大"J"將是25。因而,用于該數(shù)據(jù)的第一矩陣將是5x5方陣28a。剩余五個字符(L-J-30-25-5 )將排列在2x2矩陣28b內(nèi)。因為五個字符不能放置在2x2矩陣內(nèi),將留下一個剩余字符28c,將其放置在方陣28b之前。如所指示的,方陣將包括劃分成8比特數(shù)據(jù)元素30等的中間密文。(再次,數(shù)據(jù)元素是指數(shù)據(jù)的特定片段、串或組。)
增強(qiáng)同音替代是加密方法的最后步驟(圖1中的步驟108), —般來說,同音替代涉及將數(shù)據(jù)元素從預(yù)替代域(在此,方陣28內(nèi)的中間密文20)映射到多個共域元素,例如密碼符號。為了執(zhí)行同音替代,對于每個矩陣28,跨越該矩陣28的對角線,交換該矩陣28內(nèi)每個單元中數(shù)據(jù)元素30中的四位字節(jié)(四個比特)。將要交換的特定四位字節(jié)的選擇基于y-mx形式的線性等式(是指定義和圖示兩個變量之間直線關(guān)系的雙變量等式)。因為從字符到字符將"x"遞增一正數(shù),針對塊內(nèi)的每個字符交換的四位字節(jié)也改變,從而產(chǎn)生增強(qiáng)同音替代。在等式y(tǒng)-mx中,在步驟138,根據(jù)下述等式,從在密鑰生成步驟(圖4)內(nèi)生成的最后密鑰14確定出"m"的值(直線斜率)、x的開始值和x的增量
m的值=第一密鑰/最后一個密鑰
x的初始值=(第一密鑰*最后一個密鑰)模10
x的增量- (第二密鑰)模10
如果最后一個密鑰具有數(shù)值零,則采用4作為最后一個密鑰的缺省值。在這種情況下,m-第一密鑰/4。對于上面計算出的示例最后密鑰m=0xCA/0x8E=202/142=1.4x的初始值=(202'142)模10=4乂的增量=43模10=3
在更一般的含義上,用于選擇將要交換的特定四位字節(jié)的線性等式的形式可以是y-mx+b,其中"b"是常數(shù)。如應(yīng)當(dāng)理解的,上面給出的線性等式y(tǒng)-mx具有b值0??梢詫⒉煌瑪?shù)值用于"b",但是因為它是常數(shù)偏移,將不影響整體加密結(jié)果。
在位置"a[i[j,,和a[n-l-i[n-l-j處的數(shù)據(jù)元素之間跨越矩陣對角交換四位字節(jié),其中
矩陣大小-(nxn)
0^"(( /2)-1)0".""-1)
因而,關(guān)于圖6所示的矩陣28a:n=5
0化1.5 (舍入為2)
a[i川與a[4-i[4-j交換:
a(0)(0)—a(4)(4) ; a(0)(1)—a(4)(3) ; a(0)(2)—a(4)(2);a(0)(3)—a(4)(l); a(0)(4)—a(4)(0)
a(1)(0)—a(3)(4) ; a(1)(1)—a(3)(3) ; a(1)(2)—a(3)(2);a(1)(3)—a(3)(l); a(1)(4)—a(3)(0)
a(2)(0)—a(2)(4); a(2)(1)—a(2)(3); a(2)(2)—a(2)(2)
如應(yīng)當(dāng)理解的,由a[i[j]和a[n-l-i[n-l-j定義的每對方陣單元形成"排它對,,,由此意味著在每單元中的一部分?jǐn)?shù)據(jù)元素與一個和僅一個其它單元中的一部分交換。
用于確定將在數(shù)據(jù)元素之間交換的四位字節(jié)的具體步驟如下。首先,在步驟140,根據(jù)m的計算值和x的初始值,從線性等式y(tǒng)-mx計算y值。在步驟142,根據(jù)yl-(7-(y mod 8))計算"yl"值,其中yl是需要交換的四位字節(jié)的開始比特。在步驟144,開始于yl,交換a[i[j內(nèi)的四個比特與a[n-l-in-l-j內(nèi)的對應(yīng)比特。交換的比特位置將是yl、 ( (yl+7) mod 8) 、 ( ( yl+6 ) mod 8 )和((yl+5 ) mod 8 )。隨后,在步驟146,將x值遞增增量值,例如在上面給出的例子中,增量值是三。繼續(xù)地,為每個"i",如在步驟147中確定的,和為每個矩陣,重復(fù)步驟140-146。以這種方式,將明文數(shù)據(jù)12加密成最終的密文24,如在步驟148,可以將其存儲在文件26內(nèi)。隨后,可以發(fā)送和隨后解密該文件26。
如上文指出的,現(xiàn)有的同音替代將預(yù)替代域中的每個元素映射到后替代共域中的分離子集。舉例來說,根據(jù)一種現(xiàn)有方法,將字母表內(nèi)的每個字母映射到排它地與該字母關(guān)聯(lián)的多個符號之一 (共域元素),其中符號數(shù)量基于該字母在所關(guān)注的語言中的頻率。例如
"A,,映射到3、 4、 12、 19、 23、 25、 32"B"映射到:5、 14、 20"C,,映射到1、 24、 34等等。
在此,例如"A,,是在包括A、 B、 C.......的預(yù)替代域中的元素。
后替代共域包括所有的數(shù)字符號1、 3、 4、 5、 12、 14、等等。符號5、14和20是B的共域的分離子集,其中"分離"(disjoint)是指沒有子集具有公共符號,以便每個符號排它地與其對應(yīng)字母關(guān)聯(lián)。根據(jù)本發(fā)明的增強(qiáng)同音替代的處理,可以將預(yù)替代域中的每個數(shù)據(jù)元素(例如在交換之前的矩陣28內(nèi)的數(shù)據(jù)元素30)映射到后替代共域中的任一元素(例如在已經(jīng)進(jìn)行交換之后,在矩陣內(nèi)的數(shù)據(jù)元素)。例如,可以將預(yù)替代(交換前)方陣28a內(nèi)的8比特數(shù)映射成共域中的任一其它8比特數(shù),其中共域包括所有256個可能的8比特數(shù)(包括零)。因而,對于每個元素,在共域中可以將元素映射到的子集是整個共域本身,從而提供用于給定共域的最大可能子集。此外,域中的元素映射到的共域中的特定元素隨著數(shù)據(jù)塊中字符的順序和選定密鑰而改變。
為了解密,如下所述,以相反順序執(zhí)行上述加密步驟。首先,以
與上文參考圖5描述的相反順序,"重新交換"方陣內(nèi)的四位字節(jié)。在重新交換四位字節(jié)之前,計算在方陣塊的塊中設(shè)置字符之后留下的最后若干字符"R"(例如在圖6內(nèi)的28c)。如果"R,,小于四,則互換最后"R"個字符與最后一個方陣的前"R"個字符。隨后,在此從高字節(jié)開頭到低字節(jié)開頭格式或者反之反轉(zhuǎn)存儲格式。最后,使用如上所述的異或運(yùn)算和最后密鑰執(zhí)行多碼替代。
如上文指出的,根據(jù)本發(fā)明的用于對稱密鑰數(shù)據(jù)加密的方法使用轉(zhuǎn)換組合。用于同音替代的對合具有使用給定共域的最大可能子集來替代字符的優(yōu)點(diǎn)。該轉(zhuǎn)換具有動態(tài)的附加優(yōu)點(diǎn),意味著將任一給定字符映射到共域中的元素在消息文本內(nèi)的不同位置上不同,從而增強(qiáng)該加密技術(shù)的安全性。
使用可由計算機(jī)或其它電子設(shè)備執(zhí)行的指令,如在諸如光盤、固定盤或集成電路等計算機(jī)可讀介質(zhì)(未圖示)上存儲的,可以執(zhí)行本發(fā)明的方法。
因為可以在對稱密鑰數(shù)據(jù)加密的上述方法中進(jìn)行某些改變,而不脫離在此所述的本發(fā)明的精神和范圍,應(yīng)當(dāng)將上文描述或者附圖所示的全部主題僅解釋為示例,其說明在此的創(chuàng)造性概念,而不應(yīng)當(dāng)構(gòu)建為限制本發(fā)明。
權(quán)利要求
1. 一種加密多個數(shù)據(jù)元素的方法,所述方法包括步驟將每個數(shù)據(jù)元素從一個域映射到多個共域元素之一,其中每個數(shù)據(jù)元素可映射到任一共域元素。
2. 權(quán)利要求l的方法,其中數(shù)據(jù)元素映射到的共域元素隨著該域中數(shù)據(jù)元素的順序而改變;和映射數(shù)據(jù)元素的步驟包括在排它對中相互交換數(shù)據(jù)元素的各部分。
3. 權(quán)利要求2的方法,進(jìn)一步包括步驟使用隨著每次交換改變的線性等式計算將要交換的數(shù)據(jù)元素部 分,其中每個數(shù)據(jù)元素是長于四個比特的二進(jìn)制數(shù),并且用于交換的 每個數(shù)據(jù)元素部分是四個比特的四位字節(jié),所述四個比特是連續(xù)或不 連續(xù)的;生成一個或多個密鑰;和根據(jù)一個或多個密鑰對數(shù)據(jù)元素執(zhí)行多碼替代操作,其中該線性 等式至少部分地基于至少一個密鑰。
4. 權(quán)利要求3的方法,還包括步驟將數(shù)據(jù)元素設(shè)置在至少一個方陣內(nèi);和 計算要跨越至少一個方陣的對角交換的排它對。
5. —種加密數(shù)據(jù)的方法,包括步驟使用至少一個密鑰對數(shù)據(jù)執(zhí)行多碼替代操作以生成第一組加密數(shù)據(jù);改變第一組加密數(shù)據(jù)的存儲格式以生成第二組加密數(shù)據(jù);和 對第二組加密數(shù)據(jù)執(zhí)行同音替代操作。
6. 權(quán)利要求5的方法,還包括步驟在執(zhí)行同音替代操作的步驟之前,在至少一個方陣內(nèi)存儲第二組 加密數(shù)據(jù),其中在該至少一個方陣中的每個單元包括來自第二組加密數(shù)據(jù)的數(shù)據(jù)元素。
7. 權(quán)利要求5的方法,包括步驟 生成至少一個密鑰; 計算所需要的密鑰深度;從初始密鑰計算一個或多個中間密鑰,中間密鑰數(shù)量對應(yīng)于所需 要的密鑰深度;和級聯(lián)一個或多個中間密鑰和初始密鑰以生成至少一個密鑰。
8. 權(quán)利要求5的方法,其中執(zhí)行多碼替代操作的步驟包括異或 該數(shù)據(jù)與至少一個密鑰。
9. 權(quán)利要求8的方法,其中將該數(shù)據(jù)初始存儲成高字節(jié)開頭格式或低字節(jié)開頭格式;和 改變第 一組加密數(shù)據(jù)存儲格式的步驟包括根據(jù)初始數(shù)據(jù)存儲格式從高字節(jié)開頭格式改變成低字節(jié)開頭格式或者反之。
10. 權(quán)利要求9的方法,包括在執(zhí)行同音替代操作的步驟之前,在至少一個方陣內(nèi)存儲第二組 加密數(shù)據(jù),在該至少一個方陣內(nèi)的每個單元包括來自第二組加密數(shù)據(jù) 的數(shù)據(jù)元素;其中執(zhí)行同音替代操作的步驟包括跨越至少一個方陣的對角線 在排它對中相互交換數(shù)據(jù)元素的各部分,并使用隨著每次交換改變的 線性等式計算將要交換的數(shù)據(jù)元素部分。
全文摘要
一種對稱密鑰加密方法涉及使用轉(zhuǎn)換組合,產(chǎn)生增強(qiáng)同音替代,其中字符映射根據(jù)消息文本內(nèi)的字符順序而改變。在執(zhí)行該方法時,首先生成加密密鑰。隨后,執(zhí)行多碼替代,這涉及異或(例如布爾邏輯異或操作/計算)明文數(shù)據(jù)元素與所生成的密鑰。接著,從高字節(jié)開頭到低字節(jié)開頭或者反之,改變存儲格式,并將數(shù)據(jù)存儲在一個或多個方陣內(nèi)。最后,執(zhí)行增強(qiáng)同音替代,意味著對于每個元素,在共域中該元素可映射到的子集是整個共域本身,從而提供用于給定共域的最大可能子集。換句話說,可以將在該域中的任意給定元素映射到共域的任意元素。
文檔編號H04L9/06GK101461173SQ200680027168
公開日2009年6月17日 申請日期2006年7月17日 優(yōu)先權(quán)日2005年7月28日
發(fā)明者杰亞迪普·班特沃 申請人:朗迅科技公司