亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

動(dòng)態(tài)映射加密的方法

文檔序號(hào):7895454閱讀:420來源:國知局
專利名稱:動(dòng)態(tài)映射加密的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種利用隨機(jī)自同步流密碼對(duì)數(shù)字信息加密的方法。
背景技術(shù)
隨著計(jì)算機(jī)速度的不斷提高,當(dāng)前對(duì)稱加密算法不斷受到挑戰(zhàn),甚至已被破解,這 需要加密強(qiáng)度更高的方法來取代現(xiàn)有的加密方法。另一方面雖然自同步流密碼系統(tǒng)具有 較高的加密強(qiáng)度,但這些方法在應(yīng)用到通信中時(shí),為了糾錯(cuò),往往需要向密文中加入冗余信 息,并且對(duì)當(dāng)前密文字的解密僅僅依賴于固定個(gè)數(shù)的以前的密文字,這為破解提供了可能。

發(fā)明內(nèi)容
本發(fā)明正是針對(duì)以上兩方面的問題而產(chǎn)生。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下1初始化利用初始密鑰對(duì)數(shù)列P、映射池?cái)?shù)列W賦予初始數(shù)據(jù)2針對(duì)第i組明文進(jìn)行下列計(jì)算{①利用數(shù)列P中的數(shù)據(jù)作非線性運(yùn)算得到密鑰ki;用密鑰Iii對(duì)第i個(gè)明文組、加密,得到第i個(gè)密文組Ci,②按照某種算法,利用明文組、或密文組Ci更新映射池?cái)?shù)列W中的數(shù)據(jù),③按照某種算法,計(jì)算映射參數(shù),根據(jù)映射參數(shù)從映射池?cái)?shù)列W中讀取被映射的數(shù)據(jù)Wi,④按照某種算法,利用數(shù)據(jù)Wi對(duì)數(shù)列P進(jìn)行更新。}根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下1初始化利用初始密鑰對(duì)數(shù)列P、數(shù)列Q、數(shù)列K、映射池?cái)?shù)列W賦予初始數(shù)據(jù)2針對(duì)第i組明文進(jìn)行下列計(jì)算{①利用數(shù)列P、數(shù)列Q、數(shù)列K中的數(shù)據(jù)作非線性運(yùn)算得到密鑰ki;用密鑰Iii對(duì)第i個(gè)明文組、加密,得到第i個(gè)密文組Ci,②按照某種算法,利用明文組、或密文組Ci更新映射池?cái)?shù)列W中的數(shù)據(jù),③按照某種算法,計(jì)算映射參數(shù),根據(jù)映射參數(shù)從映射池?cái)?shù)列W中讀取被映射的數(shù)據(jù)Wi,④按照某種算法,利用數(shù)據(jù)Wi對(duì)數(shù)列P、數(shù)列Q、數(shù)列K進(jìn)行更新。}根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下1輸入初始密鑰Key,并利用初始密鑰Key產(chǎn)生數(shù)列K,產(chǎn)生256個(gè)大于65536且mod256為255的質(zhì)數(shù)數(shù)列B,
5
/*...假設(shè)密鑰Key長度為L(L > 8)字節(jié),...*/2針對(duì)第i組明文進(jìn)行下列計(jì)算{. . (0 ^ i
<L) · · · */p[i] = ((k[ (i+1) % L] +i+1)((k[(i+2)%L)%L+1)*(k[ (i+2) % L] +2)((k[(i+3)%L])%L+3)*(k[ (i+3) % L]+3)) % b[i]a = p[i] % Lq[i] = (k[(i+5)%L]+l)(瞧+8)%L])%L+i) + (k[(i+6)%L]+2)(嫌+9)%L]+i)%L)+(k[(i+7) % L]+3)a% b[i+L]w[i] = (p[i]/256+L)*(q[i]/256+l+i)) % b[i+2*L] % 256p[i] = p[i] % 256q[i] = q[i] % 256i = i+1/*...其中 P [i]、q[i]、b [i]、k[i]、w[i]分別表示數(shù)列 P、數(shù)列 Q、數(shù)列 B、數(shù)列K、數(shù)列W中的第i個(gè)數(shù)據(jù),其中數(shù)列P中的數(shù)據(jù)將在用作指數(shù),數(shù)列Q中的數(shù)據(jù)將在后面用作系數(shù),這里是對(duì)數(shù)列P、數(shù)列Q、數(shù)列W進(jìn)行初始化,本文中用” % ”表示mod,” “ ”表示異或......*/}針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*·· · (L < i
<M) · · · */w[i] = ((w[i-6] +1)(w[i-5] +2)w[i"2]+ (w[i-4] +1)w[i"1]+w[i-3]) %(b[i% 256]) % 256i = i+1}/*...其中w[i]表示數(shù)列W中的第i個(gè)數(shù)據(jù),M為某一常數(shù),如M =1048576. . . */3設(shè)置ζ= L,ν = a,C = L計(jì)算r = g-(f% g),產(chǎn)生r+g字節(jié)的隨機(jī)數(shù)據(jù)并 保存在數(shù)列T中,從字節(jié)序號(hào)為r+g的位置開始,將明文添加在數(shù)列T中。/*. . . f為明文的總長度,g為分組的長度,變量ζ用于記錄數(shù)列W中數(shù)據(jù)的個(gè) 數(shù)......*/4針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · ·第一層循環(huán),(0 彡 i < f+r+g) · · · */針對(duì)y用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · ·第二層循環(huán),(0 彡 y < L) · · · */ν = (q[y]+i)*(k[y]+y) (p[y]% L)+v) % b [ (i+y) % C]y = y+1}ν = v% 256
6
e[i] = (v"t[i]+k[i% L]) % 256
/*...其中P [i]、q[i]、k[i]、t [i]、e [i]分別表示數(shù)列P、數(shù)列Q、數(shù)列K、
數(shù)列Τ、數(shù)列E中的第i個(gè)數(shù)據(jù)(0彡i < f+r+g),......*/
w[z] = (t[i]+w[z]) % 256
針對(duì)η用一個(gè)循環(huán)進(jìn)行下列計(jì)算
{ /*...第二層循環(huán),(1<η< 10)...*/
如果3 == 0,指針N指向數(shù)列P /*...此時(shí)N[i]表示p[i]· · ·
如果3 == 1,指針N指向數(shù)列Q /*...此時(shí)N[i]表示q[i]· · ·
如果3 == 2,指針N指向數(shù)列K /*...此時(shí)N[i]表示k[i]...
ν = ((N[(i+n) % L]+n) (n+2)+(i+n)(n+3)) % C
u = (vn+(w[v])(n+1)+(i+n)(n+2)) % C
d = (u+i) % C
χ = ((w[u]+l) (n+3) + (w[d]+2)(n+5)) % 65536
w[d] = (w[d]+w[u]) % 256
w [u] = (w [u] "N [ (i+n) % L] +d) % 256
w[z] = w[z]"(x/256)
N[(i+n) % L] = x% 256
η = n+1
}
ζ = (z+1) % M
if (C ! = M-1)C = ζ
i = i+1
}
5利用初始密鑰派生具有g(shù)個(gè)整數(shù)的數(shù)列H
針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算
{ /*· · ·第一層循環(huán),(0 彡 i < f+r+g) · · · */
對(duì)數(shù)列H中的數(shù)據(jù)按照從大到小的順序排序,并將i 列H中的字節(jié)數(shù)據(jù)在排序后
的位置序號(hào)記錄到由s W],s [1],s [2],s [3],s [4],· · ·,s [i],· · ·構(gòu)成的整數(shù)數(shù)列S中, 從數(shù)列E中位置序號(hào)為i的地方開始讀取g個(gè)字節(jié)與數(shù)列H中原有的數(shù)據(jù)運(yùn)算,并將運(yùn)算 結(jié)果保存在數(shù)列H中,針對(duì)j用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · ·第二層循環(huán),(0 彡 j < g) · · · */e[i] = (e[i]+s[j]) % 256i = i+1j = j+1}}6將r保存在密文數(shù)列E中。
具體實(shí)施例方式本發(fā)明的基本特征是利用生成密鑰的參數(shù)生成密鑰,利用密鑰加密明文,以得到 密文,利用明文或密文來更新映射池中的數(shù)據(jù),利用生成密鑰的參數(shù)產(chǎn)生映射的地址參數(shù), 根據(jù)地址參數(shù),從映射池中讀取數(shù)據(jù),然后利用從映射池中讀取的數(shù)據(jù)更新用來生成密鑰 的參數(shù)。接著,又利用生成密鑰的參數(shù)生成密鑰,利用密鑰加密明文,以得到密文,就這樣循 環(huán)進(jìn)行。前面所述映射池是一個(gè)數(shù)列(或者說代碼表),并且該數(shù)列依據(jù)初始密鑰、明文和 密文生成。本發(fā)明中的映射池可將初始密鑰、明文(或密文)的隨機(jī)性累積起來,并且利用加 密過程中的數(shù)據(jù)映射用來更新的數(shù)據(jù)的地址,然后通過地址再找到所需要的數(shù)據(jù),這樣大 大增強(qiáng)了隨機(jī)性和復(fù)雜度。本發(fā)明利用密鑰加密明文時(shí),可采用異或、同或、加、減、乘、除、取模等算法來加 密。本發(fā)明可在用密鑰加密明文之前或生成密文之后,還可對(duì)明文或密文進(jìn)行如下運(yùn)算可 采用異或、非、與、或等邏輯運(yùn)算來加密;也可采用加、減、乘、除、乘方、開方、取模及函數(shù)等 算術(shù)運(yùn)算來加密;還可采用數(shù)學(xué)關(guān)系運(yùn)算來加密。前句所說的“數(shù)學(xué)關(guān)系”有大小關(guān)系、集 合關(guān)系等,其中大小關(guān)系包括大于、大于或等于、等于、小于或等于、小于、不等于,集合關(guān)系 包括元素與集合之間的關(guān)系(屬于、不屬于)、集合與集合之間的包含、映射關(guān)系等,采用數(shù) 學(xué)關(guān)系運(yùn)算加密是指依據(jù)數(shù)學(xué)關(guān)系所建立的加密算法,例如根據(jù)加密對(duì)象的代碼與某一數(shù) 據(jù)的大小關(guān)系來選擇密碼或加密算法等、根據(jù)元素(本文中指加密對(duì)象或由加密對(duì)象等生 成的代碼)與某集合的關(guān)系來選擇密碼或加密算法等、根據(jù)映射關(guān)系(一一映射或非一一 映射)建立的密碼表加密等。為簡便起見,本文將用邏輯運(yùn)算來實(shí)現(xiàn)的加密簡稱為邏輯加 密,將用算術(shù)運(yùn)算來實(shí)現(xiàn)的加密簡稱為算術(shù)加密,將采用數(shù)學(xué)關(guān)系運(yùn)算來實(shí)現(xiàn)的加密簡稱 為數(shù)學(xué)關(guān)系加密。本發(fā)明在對(duì)信息的加密中既可采用向前移動(dòng)信息代碼位置(后面被移空 的位置既可用前面或后面移出的代碼填充,也可用隨機(jī)碼或非隨機(jī)碼填充),又可采用向后 移動(dòng)信息代碼位置(前面被移空的位置既可用前面或后面移出的代碼填充,也可用隨機(jī)碼 或非隨機(jī)碼填充),也可采用交換信息代碼位置,還可采用按某一規(guī)則重新排列信息代碼位 置,還可采用向信息代碼中插入非隨機(jī)代碼,甚至采用向信息代碼中插入隨機(jī)代碼(該隨 機(jī)代碼在解密時(shí)可能不需要用窮舉法尋找,也可能需要用窮舉法尋找)等引起信息代碼位 置變化的方式加密信息,本文將這種能引起信息代碼位置變化的加密算法叫做變位加密。 本發(fā)明既可采用流密碼加密、線性加密算法、對(duì)稱加密算法,又可采用分組加密算法、非線 性加密算法、不對(duì)稱加密算法,還可利用替代、混淆、擴(kuò)散、迭代、統(tǒng)計(jì)數(shù)據(jù)加密,甚至使用偽 隨機(jī)加密和本發(fā)明之外的隨機(jī)加密算法。本發(fā)明應(yīng)用于加密明文時(shí)的通用流程如下1初始化利用初始密鑰對(duì)數(shù)列P、數(shù)列Q、數(shù)列K、映射池?cái)?shù)列W賦予初始數(shù)據(jù)2針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*...每循環(huán)一次i更新一次,直到加密完成結(jié)束循 環(huán)·· · */①利用數(shù)列P、數(shù)列Q、數(shù)列K中的數(shù)據(jù)作非線性運(yùn)算得到密鑰ki;用密鑰Iii對(duì)第i個(gè)明文組、加密,得到第i個(gè)密文組Ci,②按照某種算法,利用明文組、更新映射池?cái)?shù)列W中的數(shù)據(jù),
8
③按照某種算法,計(jì)算映射參數(shù),根據(jù)映射參數(shù)從映射池?cái)?shù)列W中讀取被映射的數(shù)據(jù)Wi,④按照某種算法,利用數(shù)據(jù)Wi對(duì)數(shù)列中的一個(gè)或多個(gè)進(jìn)行更新。}本發(fā)明第一個(gè)實(shí)施例的加密流程如下1輸入密鑰Key,并利用密鑰Key產(chǎn)生數(shù)列K,產(chǎn)生256個(gè)大于65536且mod256 為255的質(zhì)數(shù)數(shù)列B,/*...假設(shè)密鑰Key長度為L(L > 8)字節(jié),...*/2針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · · (0 彡 i
< L) ·· · */p[i] = ((k[(i+l)%L]+i+l)((k[(i+2)%L])%L+1)*(k[(i+2)%L]+2)(嫌+3)%L鄉(xiāng)L+3)*(k[(i+3) % L]+3)) % b[i]a = p[i] % Lq[i] = (k[(i+5)%L]+l)(瞧+8)%L])%L+i) + (k[(i+6)%L]+2)(嫌+9)%L]+i)%L)+(k[(i+7) % L]+3)a% b[i+L]w[i] = (p[i]/256+L)*(q[i]/256+l+i)) % b[i+2*L] % 256p[i] = p[i] % 256q[i] = q[i] % 256i = i+1/*...其中 P [i]、q[i]、b [i]、k[i]、w[i]分別表示數(shù)列 P、數(shù)列 Q、數(shù)列 B、數(shù)列K、數(shù)列W中的第i個(gè)數(shù)據(jù),其中數(shù)列P中的數(shù)據(jù)將在用作指數(shù),數(shù)列Q中的數(shù)據(jù)將在后面用作系數(shù),這里是對(duì)數(shù)列P、數(shù)列Q、數(shù)列W進(jìn)行初始化,本文中用” % ”表示mod,”"”表示異或......*/}針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · · (L < i < M). · · */w[i] = ((w[i-6] +1)(w[i-5] +2)w[i"2]+ (w[i-4] +1)w[i"1]+w[i-3]) %(b[i% 256]) % 256i = i+1}/*...其中w[i]表示數(shù)列W中的第i個(gè)數(shù)據(jù),M為某一常數(shù),如M =1048576...*/3設(shè)置ζ= L,ν = a,C = L計(jì)算r = g-(f% g),產(chǎn)生r+g字節(jié)的隨機(jī)數(shù)據(jù)并 保存在數(shù)列T中,從字節(jié)序號(hào)為r+g的位置開始,將明文添加在數(shù)列T中。/*. . . f為明文的總長度,g為分組的長度,變量ζ用于記錄數(shù)列W中數(shù)據(jù)的個(gè) 數(shù)......*/4針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · ·第一層循環(huán),(0 彡 i < f+r+g) · · · */
針對(duì)y用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*···第二層循環(huán),(0<y<L)···*/ν = (q[y]+i)*(k[y]+y) (p[y]% L)+v) % b [ (i+y) % C]y = y+1}ν = v% 256e[i] = (v"t[i]+k[i% L]) % 256/*...其中 p[i]、q[i]、k[i]、t [i]、e[i]分別表示數(shù)列 P、數(shù)列 Q、數(shù)列 K、數(shù)列Τ、數(shù)列E中的第i個(gè)數(shù)據(jù)(0彡i < f+r+g),......*/w[z] = (t[i]+w[z])% 256針對(duì)η用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*···第二層循環(huán),(1 彡η< 10)···*/如果3 == 0,指針N指向數(shù)列P/*...此時(shí)N[i]表示p[i]...*/如果3 == 1,指針N指向數(shù)列Q/*...此時(shí)N[i]表示q[i]. . . */如果3 == 2,指針N指向數(shù)列K/*...此時(shí)N[i]表示k[i]...*/ν = ((N[(i+n) % L]+n) (n+2)+(i+n)(n+3)) % Cu = (vn+(w[v])(n+1)+(i+n)(n+2)) % Cd = (u+i) % Cχ = ((w[u]+l)(n+3) + (w[d]+2)(n+5)) % 65536w[d] = (w[d]+w[u]) % 256w [u] = (w[u]"N[(i+n) % L] +d) % 256w[z] = w[z]" (x/256)N[(i+n) % L] = x% 256η = n+1}ζ = (z+1) % Mif (C ! = M-1)C = ζi = i+1}5利用密鑰派生具有g(shù)個(gè)整數(shù)的數(shù)列H針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · ·第一層循環(huán),(0 彡 i < f+r+g) · · · */對(duì)數(shù)列H中的數(shù)據(jù)按照從大到小的順序排序,并將數(shù)列H中的字節(jié)數(shù)據(jù)在排序后 的位置序號(hào)記錄到由s W],s [1],s [2],s [3],s [4],· · ·,s [i],· · ·構(gòu)成的整數(shù)數(shù)列S中, 從數(shù)列E中位置序號(hào)為i的地方開始讀取g個(gè)字節(jié)覆蓋數(shù)列H中原有的數(shù)據(jù),針對(duì)j用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*···第二層循環(huán),(0彡 j<g)···*/e[i] = (e[i]+s[j]) % 256i = i+1
j = j + 1
}}6將r保存在密文數(shù)列E中。可以以多種方法來實(shí)現(xiàn)本發(fā)明的實(shí)施例,包括寫在計(jì)算機(jī)可讀記錄介質(zhì)上的計(jì)算 機(jī)可讀代碼。計(jì)算機(jī)可讀記錄介質(zhì)可以是任意類型的記錄設(shè)備,在其中數(shù)據(jù)以計(jì)算機(jī)可讀 形式存儲(chǔ)。計(jì)算機(jī)可讀記錄介質(zhì)包括、但不局限于ROM、RAM、⑶-ROM、磁帶、軟盤、硬盤、移動(dòng) 存儲(chǔ)盤、光數(shù)據(jù)存儲(chǔ)、和載波(例如,通過因特網(wǎng)的數(shù)據(jù)傳輸)。計(jì)算機(jī)可讀記錄介質(zhì)可以分 布在多個(gè)連接到網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)上,以使得計(jì)算機(jī)可讀代碼能夠以分布方式寫到其上以 及從其上執(zhí)行。另外,實(shí)現(xiàn)本發(fā)明的實(shí)施例所需要的功能程序、代碼或代碼段可以被本領(lǐng)域 的普通技術(shù)人員解釋。盡管已經(jīng)參照本發(fā)明的給定優(yōu)選實(shí)施例示出并描述了本發(fā)明,但是本領(lǐng)域的技術(shù) 人員應(yīng)當(dāng)理解,在不脫離如所附權(quán)利要求所限定的本發(fā)明的精神和范圍的條件下,可以在 這里進(jìn)行形式和細(xì)節(jié)上的各種變化。產(chǎn)業(yè)上的可利用性根據(jù)本發(fā)明的加密方法可以用于加密各種數(shù)字信息和文件,并且生成的密文無有 效方法進(jìn)行破解。
1權(quán)利要求
一種加密方法,其加密流程如下1初始化利用初始密鑰對(duì)數(shù)列P、映射池?cái)?shù)列W賦予初始數(shù)據(jù)2針對(duì)第i組明文進(jìn)行下列計(jì)算{ ①利用數(shù)列P中的數(shù)據(jù)作非線性運(yùn)算得到密鑰ki,用密鑰ki對(duì)第i個(gè)明文 組ti加密,以得到第i個(gè)密文組ci, ②按照某種算法,利用明文組ti或密文組ci更新映射池?cái)?shù)列W中的數(shù)據(jù), ③按照某種算法,計(jì)算映射參數(shù),根據(jù)映射參數(shù)從映射池?cái)?shù)列W中讀 取被映射的數(shù)據(jù)wi, ④按照某種算法,利用數(shù)據(jù)wi對(duì)數(shù)列P進(jìn)行更新。}
2.一種加密方法,其加密流程如下1初始化利用初始密鑰對(duì)數(shù)列P、映射池?cái)?shù)列W賦予初始數(shù)據(jù)2針對(duì)第i組明文進(jìn)行下列計(jì)算{①利用數(shù)列P中的數(shù)據(jù)作非線性運(yùn)算得到密鑰ki;用密鑰Iii對(duì)第i個(gè)明文 組、加密,得到第i個(gè)密文組Ci,②按照某種算法,計(jì)算映射參數(shù),根據(jù)映射參數(shù)從映射池?cái)?shù)列W中讀 取被映射的數(shù)據(jù)Wi,③按照某種算法,利用明文組、或密文組Ci更新映射池?cái)?shù)列W中的數(shù)據(jù),④按照某種算法,利用數(shù)據(jù)Wi對(duì)數(shù)列P進(jìn)行更新。}
3.一種加密方法,其加密流程如下1初始化利用初始密鑰對(duì)數(shù)列P、映射池?cái)?shù)列W賦予初始數(shù)據(jù)2針對(duì)第i組明文進(jìn)行下列計(jì)算{①利用數(shù)列P中的數(shù)據(jù)作非線性運(yùn)算得到密鑰ki;用密鑰ki對(duì)第i個(gè)明文 組ti加密,得到第i個(gè)密文組Ci,②按照某種算法,計(jì)算映射參數(shù),根據(jù)映射參數(shù)從映射池?cái)?shù)列W中讀 取被映射的數(shù)據(jù)Wi,③按照某種算法,利用數(shù)據(jù)Wi對(duì)數(shù)列P進(jìn)行更新,④按照某種算法,利用明文組、或密文組Ci更新映射池?cái)?shù)列W中的數(shù)據(jù)。}
4.根據(jù)權(quán)利要求1或2或3所述加密方法,其特征是其中,“數(shù)列P”被修改為“數(shù)列 P1、數(shù)列 P2”。
5.根據(jù)權(quán)利要求1或2或3所述加密方法,其特征是其中,“數(shù)列P”被修改為“數(shù)列 戸1、數(shù)列?2、數(shù)列?3”。
6.一種加密方法,其加密流程如下1輸入密鑰Key,并利用密鑰Key產(chǎn)生數(shù)列K,產(chǎn)生256個(gè)大于65536且mod256為255的質(zhì)數(shù)數(shù)列B, /*. · ·假設(shè)密鑰Key長度為L(L > 8)字節(jié),...*/2針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算 { /*· · · (0 彡 i < L) · · · */p[i] = ((k[ (i+1) % L] +i+1)((k[(i+2)%L])%L+1)*(k[ (i+2) % L] +2)((k[(i+3)%L])%L+3)*(k[(i+3) % L]+3)) % b[i] a = p[i] % Lq[i] = (k[ (i+5) % L] +1)((k[(i+8)%L])% L+i) + (k[ (i+6) % L] +2)((k[(i+9)%L]+i)% L)+ (k[(i+7) % L]+3)a% b[i+L] w[i] = (p[i]/256+L)*(q[i]/256+l+i)) % b[i+2*L] % 256 p[i] = p[i] % 256 q[i] = q[i] % 256 i = i+1/*...其中ρ [i]、q[i]、b [i]、k[i]、w[i]分別表示數(shù)列P、數(shù)列Q、數(shù)列B、 數(shù)列K、數(shù)列W中的第i個(gè)數(shù)據(jù),其中數(shù)列P中的數(shù)據(jù)將在用作指數(shù), 數(shù)列Q中的數(shù)據(jù)將在后面用作系數(shù),這里是對(duì)數(shù)列P、數(shù)列Q、數(shù)列W 進(jìn)行初始化,本文中用” %,,表示mod,,,“,,表示異或......*/}針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算 /*...其中w[i]表示數(shù)列W中的第i個(gè)數(shù)據(jù),M為某一常數(shù),如M = 1048576. . . */3設(shè)置ζ = L,ν = a ,C = L計(jì)算r = g-(f % g),產(chǎn)生r+g字節(jié)的隨機(jī)數(shù)據(jù)并保 存在數(shù)列T中,從字節(jié)序號(hào)為r+g的位置開始,將明文添加在數(shù)列T中。/*...f為明文的總長度,g為分組的長度,變量ζ用于記錄數(shù)列W中數(shù)據(jù)的個(gè)數(shù)......*/4針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · ·第一層循環(huán),(0 彡 i < f+r+g) · · · */針對(duì)y用一個(gè)循環(huán)進(jìn)行下列計(jì)算 {/*...第二層循環(huán),(0<y <L)...*/ν = (q[y]+i)*(k[y]+y) (p[y]%L)+v) % b[(i+y) % C]y = y+l}V = v% 2563表示 q[i]. . . */ 表示 k[i]. . . */e[i] = (v"t[i]+k[i% L]) % 256/*...其中P [i]、q[i]、k[i]、t [i]、e [i]分別表示數(shù)列P、數(shù)列Q、數(shù)列K、數(shù)列Τ、數(shù)列E中的第i個(gè)數(shù)據(jù)(0彡i < f+r+g),......*/w[z] = (t[i]+w[z]) % 256 針對(duì)η用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*...第二層循環(huán),(1<η<10)...*/如果3 == 0,指針N指向數(shù)列P /*...此時(shí)N[i]表示p[i]...*/ 如果3 == 1,指針N指向數(shù)列Q /*...此時(shí)N[i] 如果3 == 2,指針N指向數(shù)列K /*...此時(shí)N[i] ν = ((N[(i+n) % L]+n) (n+2) + (i+n)(n+3)) % C u = (vn+(w[v])(n+1) + (i+n)(n+2)) % C d = (u+i) % Cχ = ((w[u]+l) (n+3)+(w[d]+2)(n+5)) % 65536 w[d] = (w[d]+w[u]) % 256 w [u] = (w [u] "N [ (i+n) % L] +d) % 256 w[z] = w[z]"(x/256) N[(i+n) % L] = x% 256 η = n+1}ζ = (z+1) % M if (C ! M-1)C = ζ i = i+1}5利用密鑰派生具有g(shù)個(gè)整數(shù)的數(shù)列H針對(duì)i用一個(gè)循環(huán)進(jìn)行下列計(jì)算{/*· · ·第一層循環(huán),(0 彡 i < f+r+g) · · · */對(duì)數(shù)列H中的數(shù)據(jù)按照從大到小的順序排序,并將數(shù)列H中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由s W],s [1],s [2],s [3],s [4],· · ·,s [i],·.構(gòu)成的整數(shù)數(shù)列S中,從數(shù)列E中位置序號(hào)為i的地方開始讀取g個(gè)字節(jié)覆蓋數(shù)列H中原有的數(shù)據(jù),針對(duì)j用一個(gè)循環(huán)進(jìn)行下列計(jì)算{e[i] = (e[i]+s[j])% 256 i = i+1 j = j+1}/*...第二層循環(huán),(0 < j < g)}6將r保存在密文數(shù)列E中,
全文摘要
本發(fā)明涉及一種動(dòng)態(tài)映射加密的方法。該加密方法的步驟如下首先利用初始密鑰對(duì)數(shù)列P、映射池?cái)?shù)列W賦予初始數(shù)據(jù),然后針對(duì)第i組明文進(jìn)行下列計(jì)算①利用數(shù)列P中的數(shù)據(jù)作非線性運(yùn)算得到密鑰ki,用密鑰ki對(duì)第i個(gè)明文組ti加密,得到第i個(gè)密文組ci,②按照某種算法,利用明文組ti或密文組ci更新映射池?cái)?shù)列W中的數(shù)據(jù),③按照某種算法,計(jì)算映射參數(shù),根據(jù)映射參數(shù)從映射池?cái)?shù)列W中讀取被映射的數(shù)據(jù)wi,④按照某種算法,利用數(shù)據(jù)wi對(duì)數(shù)列P進(jìn)行更新。
文檔編號(hào)H04L9/30GK101924631SQ20091014069
公開日2010年12月22日 申請日期2009年6月9日 優(yōu)先權(quán)日2009年6月9日
發(fā)明者劉海云 申請人:劉海云
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1