專利名稱:需要采用窮舉法解密的隨機(jī)加密方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種隨機(jī)加密方法,用該加密方法加密生成的密文無論解密程序如 何編寫都需要用窮舉法進(jìn)行解密。
背景技術(shù):
目前普遍使用的操作系統(tǒng)Windows XP和Windows Vista中采用了先進(jìn)的 EFS (Encrypting File System,加密文件系統(tǒng))。該密碼系統(tǒng)中的證書和私鑰丟失后,無法 解密被EFS加密的文件。EFS導(dǎo)出的私鑰備份的加密強(qiáng)度完全取決于用戶導(dǎo)出私鑰過程 中所輸入的密碼。為了保證證書和私鑰備份的安全,使用EFS的人們往往將備份保存在 移動(dòng)存儲(chǔ)設(shè)備中。當(dāng)操作系統(tǒng)中的證書和私鑰丟失時(shí),用戶常常需要翻箱倒柜尋找移動(dòng) 存儲(chǔ)設(shè)備,找到后將保存在移動(dòng)存儲(chǔ)設(shè)備中備份的證書和私鑰導(dǎo)入操作系統(tǒng),然后用導(dǎo) 入的證書和私鑰解密被EFS加密的文件?,F(xiàn)有的EFS導(dǎo)出導(dǎo)入證書和私鑰的方法不但不 易使用,使許多人不敢使用EFS,而且導(dǎo)出導(dǎo)入證書和私鑰、兩次取用和兩次放置移動(dòng) 存儲(chǔ)設(shè)備后所花時(shí)間平均在一分鐘以上,還可能因?yàn)橐苿?dòng)存儲(chǔ)設(shè)備丟失而無法恢復(fù)證書 和私鑰,使許多用戶對(duì)EFS敬而遠(yuǎn)之。另一方面,已公知的加密方法利用用戶身份信息 對(duì)明文加密時(shí),采用各種算法生成密碼識(shí)別信息,利用該密碼識(shí)別信息對(duì)用戶身份信息 的驗(yàn)證,為用戶提供了方便,但也給破解者提供了捷徑,并且該密碼識(shí)別信息往往經(jīng)不 起攻擊。還有,利用用戶身份信息和隨機(jī)數(shù)據(jù)共同對(duì)同一保護(hù)對(duì)象加密時(shí),現(xiàn)有的隨機(jī) 加密方法在生成密碼識(shí)別信息時(shí),雖然將隨機(jī)數(shù)據(jù)加密,但只將用戶身份信息鎖在密碼 識(shí)別信息中,并沒有將隨機(jī)數(shù)據(jù)鎖在密碼識(shí)別信息中,解密時(shí)只需要對(duì)用戶身份信息進(jìn) 行比對(duì),并不需要對(duì)隨機(jī)數(shù)據(jù)進(jìn)行比對(duì)。第四個(gè)方面當(dāng)前云計(jì)算高速發(fā)展,云中的密鑰 托管服務(wù)需要本發(fā)明來增加密文的安全性。
發(fā)明內(nèi)容
本發(fā)明正是針對(duì)以上四方面的問題而產(chǎn)生,主要用來加密保護(hù)證書和私鑰的備 份。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下I輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng) 度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度 為L(zhǎng)ong的隨機(jī)密鑰Random,II利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,采
用預(yù)定算法加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和隨機(jī)密鑰 Random的密碼識(shí)別信息PassID,III利用重要明文Text與密碼識(shí)別信息PassID派生一個(gè)代碼串TP,IV采用預(yù)定算法加密代碼串TP,以生成重要明文Text的密文ReText。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下
I輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng) 度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度 為L(zhǎng)ong的隨機(jī)密鑰Random,II利用用戶身份信息UserlD、隨機(jī)密鑰Random和重要明文Text派生一個(gè)代 碼串URT,III采用預(yù)定算法加密代碼串URT,以生成重要明文Text的密文ReText。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下I輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng) 度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度 為L(zhǎng)ong的隨機(jī)密鑰Random,II利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,采 用預(yù)定算法加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和隨機(jī)密鑰 Random的密碼識(shí)別信息PassID,III采用預(yù)定算法加密重要明文Text,以生成重要明文Text的密文ReText,IV將密碼識(shí)別信息PassID插入密文ReText中,其中,所述將密碼識(shí)別信息PassID插入密文ReText中,是指將密碼識(shí)別信息PassID作 為一個(gè)單位或拆分為多個(gè)單位添加到密文ReText中某一個(gè)或多個(gè)位置構(gòu)成一個(gè)新代碼串 的動(dòng)作,并且插入位置不局限于密文ReText里的位置,也可以添加在密文ReText的首尾 兩端。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下I輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng) 度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度 為L(zhǎng)ong的隨機(jī)密鑰Random,II采用預(yù)定算法加密重要明文Text,以生成重要明文Text的密文ReText,III利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,采 用預(yù)定算法加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和隨機(jī)密鑰 Random的密碼識(shí)別信息PassID,IV將密碼識(shí)別信息PassID插入密文ReText中,其中,所述將密碼識(shí)別信息PassID插入密文ReText中,是指將密碼識(shí)別信息PassID作 為一個(gè)單位或拆分為多個(gè)單位添加到密文ReText中某一個(gè)或多個(gè)位置構(gòu)成一個(gè)新代碼串 的動(dòng)作,并且插入位置不局限于密文ReText里的位置,也可以添加在密文ReText的首尾兩端。前面四個(gè)加密流程中,其中,所述隨機(jī)長(zhǎng)度Long,是由下列之一或多個(gè)構(gòu)成隨機(jī)密鑰的長(zhǎng)度、隨機(jī)密鑰的 變動(dòng)范圍、隨機(jī)密鑰中單元的長(zhǎng)度、隨機(jī)密鑰中單元的變動(dòng)范圍,并且隨機(jī)長(zhǎng)度Long以 明文或密文的形式保存在用于保存密文ReText的相關(guān)存儲(chǔ)空間,用來給解密程序指定用 窮舉法探測(cè)的隨機(jī)密鑰的隨機(jī)長(zhǎng)度范圍,所述用于保存密文Retext的相關(guān)存儲(chǔ)空間是指 以下四者之一①保存密文Retext的空間,②保存密文Retext這個(gè)文件屬性的空間,③ 數(shù)據(jù)庫(kù),④用于保存隨機(jī)長(zhǎng)度Long的文件或空間,
所述密文Retext,其特征是任何針對(duì)密文Retext的解密程序都需要采用窮舉法 或采用窮舉法與密碼分析技術(shù)相結(jié)合的方法尋找隨機(jī)密鑰Random,不僅需要對(duì)解密時(shí)輸 入的用戶身份信息與解密過程中釋放的用戶身份信息進(jìn)行比對(duì),還需要對(duì)窮舉循環(huán)枚舉 的隨機(jī)密鑰與解密過程中釋放的隨機(jī)密鑰進(jìn)行比對(duì),只有在前述兩種密鑰的比對(duì)都一致 后,才能確保正確解密密文ReText,以釋放重要明文Text,所述預(yù)定算法是指利用用戶身份信息UserID和隨機(jī)密鑰Random進(jìn)行加密的加 密算法,并且包括下列加密算法中的一種或多種替代、置換、混淆、擴(kuò)散、迭代、組 合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分組加密、流密碼加密、 線性加密、非線性加密、對(duì)稱加密算法、非對(duì)稱加密算法、統(tǒng)計(jì)數(shù)據(jù)加密、偽隨機(jī)加 密、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加密的算法、利用排 序所產(chǎn)生的序號(hào)代碼加密的算法,所述加密強(qiáng)度取決于加密用戶身份信息UserID和隨機(jī)密鑰Random后所生成的 密碼識(shí)別信息PassID,解密時(shí),只有先完成對(duì)密碼識(shí)別信息PassID的解密,才能保證對(duì) 重要明文Text的密文ReText進(jìn)行正確解密,以釋放重要明文Text,并且解密時(shí),在確認(rèn) 用戶身份信息UserID和隨機(jī)密鑰Random都正確后,從重要明文Text的密文ReText中 解出重要明文Text的計(jì)算量相對(duì)總計(jì)算量而言往往非常小。因此,所述加密強(qiáng)度也等 于對(duì)重要明文Text進(jìn)行加密的加密強(qiáng)度并且是下列其中之一隨機(jī)長(zhǎng)度、解密的平均計(jì) 算量、解密的最大計(jì)算量、解密的平均計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的最 大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的平均計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放 大倍數(shù)、解密的最大計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密的平均嘗試解密次 數(shù)、解密的最多嘗試解密次數(shù)、在預(yù)定速度機(jī)器上的平均解密時(shí)間、在預(yù)定速度機(jī)器上 的最長(zhǎng)解密時(shí)間,所述隨機(jī)密鑰是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī)信息、系統(tǒng) 產(chǎn)生的偽隨機(jī)信息、利用用戶身份信息UserID對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù) 后得到的信息、利用內(nèi)存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到 的信息、利用時(shí)鐘數(shù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)干預(yù)后得到的信息。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下I輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的長(zhǎng)度、加密強(qiáng)度和 預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的長(zhǎng)度Long,產(chǎn)生長(zhǎng)度為L(zhǎng)ong的隨機(jī) 密鑰 Random,II利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利
用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整 冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,III利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串KP,IV利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn) 程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText的 經(jīng)加密的備份ReCome,V將一個(gè)大于或等于隨機(jī)密鑰Random長(zhǎng)度Long的數(shù)據(jù)和私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加密的備份ReCome中。上面加密流程中的V可被修改為將一個(gè)小于隨機(jī)密鑰Random長(zhǎng)度Long 的數(shù)據(jù)和私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加密的備份ReCome中。 本文將大于或小于隨機(jī)密鑰Random長(zhǎng)度Long且用來標(biāo)明隨機(jī)密鑰Random長(zhǎng)度Long范 圍的數(shù)據(jù),當(dāng)作隨機(jī)密鑰Random長(zhǎng)度Long的一種密文。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下A加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,B在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則結(jié)束; 若沒找到,則執(zhí)行C,C輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng) 度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度 為L(zhǎng)ong的隨機(jī)密鑰Random,D利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利 用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整 冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,Ε利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串ΚΡ,F利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串ΚΡ,利用隨著加密進(jìn) 程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串ΚΡ,以生成私鑰KeyText的 經(jīng)加密的備份ReCome,G將隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long和私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰 KeyText的經(jīng)加密的備份ReCome中,H將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相
關(guān)存儲(chǔ)空間中,結(jié)束。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下A判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行B;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存, 然后執(zhí)行C,B在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行
H;若沒找到,則執(zhí)行C,C輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng) 度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度 為L(zhǎng)ong的隨機(jī)密鑰Random,D利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利
用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整 冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,E利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串KP,F利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn) 程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText的 經(jīng)加密的備份ReCome,G將隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long和私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰 KeyText的經(jīng)加密的備份ReCome中,H將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相
關(guān)存儲(chǔ)空間中,I加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,結(jié)束。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存, 然后執(zhí)行5,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行
4;若沒找到,則執(zhí)行5,4加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,然后結(jié)束本進(jìn)程,5增加一個(gè)加密備份私鑰KeyText的進(jìn)程PKey,進(jìn)程PKey執(zhí)行6,原
進(jìn)程執(zhí)行4,6進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密 強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中 當(dāng)前用戶的用戶身份信息,7檢測(cè)用戶命令,如果用戶輸入的命令是確認(rèn),則執(zhí)行8,如果用戶輸 入的命令是退出,則結(jié)束本進(jìn)程,8進(jìn)程PKey判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行9,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行10,9進(jìn)程PKey判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收 用戶輸入的用戶身份信息UserlD,然后執(zhí)行10,若無效,則向6中要顯示的圖 形界面發(fā)送出錯(cuò)提示信息,并執(zhí)行6,10進(jìn)程PKey將384字節(jié)的隨機(jī)數(shù)據(jù)復(fù)制到數(shù)列ID的前384字節(jié)上,進(jìn)程 PKey產(chǎn)生長(zhǎng)度為384字節(jié)的隨機(jī)數(shù)列P,利用私鑰KeyText產(chǎn)生具有384個(gè)整數(shù)的數(shù)列 IS,將數(shù)列IS按照從小到大的順序排列,并將數(shù)列IS中的數(shù)據(jù)在排序后的位置序號(hào)記錄
22到由 ir
,ir[l], ir[2], ir[3], ir[4], ...,ir[i],...構(gòu)成的整數(shù)數(shù)列 IR 中。用一個(gè)循環(huán)
計(jì)算d[i] = d[i]Ap[ir[i]]/*...0<i < 384...V/*...這里對(duì)隨機(jī)數(shù)據(jù)進(jìn)行處理,是為了破壞偽隨機(jī)的周期性,以便后面將這些 數(shù)據(jù)用作隨機(jī)密鑰,其中ir[i]表示數(shù)列IS中原位置序號(hào)為i的整數(shù)在排序后,被放在序 號(hào)為ir[i]的位置,d[i]、p[i]分別表示數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),本文用
“λ”、“/”、“%”、分別表示異或、整除、取模......V11從數(shù)列ID中字節(jié)位置序號(hào)為383的位置開始,向前將用戶身份信息 UserID覆蓋到數(shù)列ID中,并將數(shù)列ID的前128個(gè)字節(jié)信息作為一個(gè)大整數(shù)x,用一個(gè)循 環(huán)計(jì)算(x/K[i]) % 256并將計(jì)算結(jié)果添加在數(shù)列ID后面,/*......添加后,數(shù)列ID已有512字節(jié)的數(shù)據(jù),K[i]為大于65536的質(zhì)數(shù),Od
< 128,這是因?yàn)楹竺嬉捎门判蛩a(chǎn)生的位置序號(hào)代碼來加密,用這種加密方法處理 密碼識(shí)別信息時(shí),可能存在錯(cuò)誤通過比對(duì)的情況,為了防止這種情況的出現(xiàn),通過計(jì)算 (x/K[i])% 256并將結(jié)果保存在數(shù)列ID后面,記錄大整數(shù)χ的一些特征,以便在通過對(duì) 用戶身份信息UserID和隨機(jī)密鑰Randomr的驗(yàn)證后,用大整數(shù)χ的一些特征來進(jìn)一步驗(yàn) 證,以保證密鑰驗(yàn)證的可靠性。.........V根據(jù)隨機(jī)密鑰的長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨 機(jī)密鑰的長(zhǎng)度Long,在數(shù)列ID中從用戶身份信息UserID之前的位置開始,向前讀取 Long位的數(shù)據(jù)作為隨機(jī)密鑰Random,/*...這里要求用戶身份信息UserID和隨機(jī)密鑰Random總長(zhǎng)度不超過384X8比 特,如果超過,要調(diào)整數(shù)列ID的長(zhǎng)度...V12進(jìn)程PKey從數(shù)列ID中序號(hào)為128的字節(jié)開始,向后復(fù)制128個(gè)字節(jié)到 數(shù)列P中,將數(shù)列P復(fù)制到數(shù)列S,按照從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并 將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列R中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的 位置,...V用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]]Ar[i]/*...利用排序產(chǎn)生的序號(hào)代碼重排代碼位置,并作異或運(yùn)算(0盜< 128)......V用一個(gè)循環(huán),計(jì)算d[2 Xi] = d[2 Xi]As[2 Xi]/*...0<i < 64...*/d[2 Xi+1] = ((d[2 Xi+l]+s[2 Xi+1]) % 256) /*...0<i < 64...V/*......即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID首部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列
S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),......V13進(jìn)程PKey將數(shù)列S復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列S中各字 節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],...,r[i],...構(gòu)成的整數(shù)數(shù)列R中。/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的 位置,...V
用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]] [i] /*...(0<i < 128) ...V用一個(gè)循環(huán),計(jì)算d[2Xi] = d[2Xi]As[2Xi-256]/*...128<i < 192...Vd[2Xi+l] = (d[2Xi+l]-s[2Xi-255]+256) % 256 /*...128<i < 192...*//*......即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID中后部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)
列S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),......V14進(jìn)程PKey將數(shù)列ID的最后128個(gè)字節(jié)信息復(fù)制到數(shù)列P中,將數(shù)列P 復(fù)制數(shù)列S,按照從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在 排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4], ...,r[i],...構(gòu)成的整數(shù)數(shù)列R 中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的 位置,...V用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]]Ar[i]計(jì)算d[i] = d[i]As[i]/*...即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID首部數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列S、
數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),0盜<128......V15進(jìn)程PKey將數(shù)列S復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列S中各字 節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],...,r[i],...構(gòu)成的整數(shù)數(shù)列R中,/*......其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]
的位置,...V用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]]Ar[i]/*...0<i < 128...*/計(jì)算d[i] = d[i]As[i-128]/*...128<i < 256...V/*...即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID中前部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)
列S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù)...V16進(jìn)程PKey將數(shù)列ID中字節(jié)序號(hào)為奇數(shù)的數(shù)據(jù)都向前移兩位,并將移出 的信息添加到前一個(gè)字節(jié)序號(hào)為奇數(shù)的數(shù)據(jù)尾部,將第二個(gè)字節(jié)數(shù)據(jù)移出的信息添加在 最后一個(gè)字節(jié)數(shù)據(jù)的尾部,將數(shù)列ID中字節(jié)序號(hào)為偶數(shù)的數(shù)據(jù)都向后移一位,并將移出的信息添加到后一 個(gè)字節(jié)序號(hào)為偶數(shù)的數(shù)據(jù)的首部,將倒數(shù)第二個(gè)字節(jié)數(shù)據(jù)移出的信息添加在第一個(gè)字節(jié) 數(shù)據(jù)的首部,/*......字節(jié)序號(hào)從 0 開始......V用一個(gè)循環(huán),計(jì)算,q[4Xi+2] = d[i]/*...0<i < 128...Vq[i+(i+l)/3] = d[ir[i]+128]A(ir[i]% 256)/*...0<i < 384..."/*...............即用步驟10中所產(chǎn)生的序號(hào)代碼數(shù)列IR的數(shù)據(jù)加密數(shù)列ID中
部及后部的信息,并將結(jié)果保存在數(shù)列Q中,前述d[i]、q[i]分別表示數(shù)列ID、數(shù)列Q中字節(jié)序號(hào)為i的數(shù)據(jù),數(shù)列ir[i]表示數(shù)列IR中序號(hào)為i的整數(shù)數(shù)據(jù),...V將數(shù)列Q的前256字節(jié)數(shù)據(jù)按序復(fù)制到數(shù)列ID中字節(jié)序號(hào)為偶數(shù)的字節(jié)上,將 數(shù)列Q中后256字節(jié)數(shù)據(jù)復(fù)制到數(shù)列ID中字節(jié)序號(hào)為奇數(shù)的字節(jié)上,17進(jìn)程PKey產(chǎn)生一個(gè)由516個(gè)字節(jié)構(gòu)成的隨機(jī)數(shù)列,并將該數(shù)列復(fù)制到數(shù) 列S中,采用某種算法利用隨機(jī)密鑰Random和用戶身份信息UserID派生一個(gè)由516字節(jié) 構(gòu)成的數(shù)列,并將該數(shù)列復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列P中各字節(jié)數(shù)據(jù), 并將數(shù)列P中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列R中,用一個(gè)循環(huán)計(jì)算,p[i] = s[r[i]]Ar[i]/*...S[i]、p[i]分別表示數(shù)列S、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),0盜<516,這一 步用于破壞偽隨機(jī)的周期性,其中r[i]表示數(shù)列P中原位置序號(hào)為i的數(shù)據(jù)在排序后,被 放在序號(hào)為r[i]的位置。......V18進(jìn)程PKey將數(shù)列P前512個(gè)字節(jié)復(fù)制到數(shù)列S,按照從大到小的順序排 列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
, r[l],r[2],r[3],r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列 R 中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的數(shù)據(jù)在排序后,被放在序號(hào)為r[i]的 位置。.........V用一個(gè)循環(huán),將d[r[i]]復(fù)制到 q[i] /^...0<i < 512...V將p[r[i]+4]復(fù)制到 s[i]/*...0<i < 512...V/*...,q[i]、s[i]> d[i]、p[i]分別表示數(shù)列Q、數(shù)列S、數(shù)列ID、數(shù)列P中字節(jié) 序號(hào)為i的數(shù)據(jù),......V19進(jìn)程PKey設(shè)置v = 0,用一個(gè)循環(huán)加密數(shù)列ID ν = ((i+5) (p[i/2]) (1+5). (i+4) (p[i/2+l])(1+4). (i+3) (p[i/2+2]) (1+3).......+ (i/2+1)
(p[i+4])(l/2+1)) % (2563)+v/256 /*...0<i < 512...Vd[i] = q[i]A(v% 256)/*...0<i < 512...V/*............其中ν為定義的變量,取變量ν最后一個(gè)字節(jié)中信息給數(shù)列ID中的信
息加密,d[i]、p[i]、q[i]分別表示數(shù)列ID、數(shù)列P、數(shù)列Q中字節(jié)序號(hào)為i的數(shù)據(jù)......V20進(jìn)程PKey產(chǎn)生一個(gè)由2048個(gè)字節(jié)構(gòu)成的隨機(jī)數(shù)列,并將該數(shù)列復(fù)制到 數(shù)列Q前2048個(gè)字節(jié)中,將私鑰KeyText轉(zhuǎn)變?yōu)橐粋€(gè)字符串KTs,從數(shù)列Q的第2048字 節(jié)開始向前覆蓋,將字符串KTs復(fù)制在數(shù)列Q的前2048字節(jié)內(nèi),從數(shù)列Q的第2049字 節(jié)開始,向后將數(shù)列ID中前512字節(jié)中數(shù)據(jù)添加在Q的尾部,21進(jìn)程PKey從數(shù)列ID第一個(gè)字節(jié)開始,將數(shù)列P復(fù)制到數(shù)列ID上,按照 從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào) 記錄到由 r
,r[l], r[2], r[3], r[4], ...,r[i],...構(gòu)成的整數(shù)數(shù)列 R 中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的數(shù)據(jù)在排序后,被放在序號(hào)為r[i]的 位置。......V用一個(gè)循環(huán)計(jì)算
d[516+iX5] = q[r[i] X 5]
0<i < 512.., *...0<i < 512 *...0<i < 512 *...0<i < 512 *...0<i < 512d[516+iX5+l] = q[r[i]X5+l]d[516+iX5+2] = q[r[i] X 5+2]d[516+iX5+3] = q[r[i] X 5+3]d[516+iX5+4] = q[r[i] X 5+4]/*...d[i]、q[i]分別表示數(shù)列ID、數(shù)列Q中字節(jié)序號(hào)為i的數(shù)據(jù),......V22進(jìn)程PKey將隨機(jī)密鑰Random在前、用戶身份信息UserID在后,兩者連
接在一起,構(gòu)成一個(gè)長(zhǎng)為η位的二進(jìn)制數(shù)列RU,將數(shù)列ID中前(n/4-ll)字節(jié)中的奇數(shù) 位的信息復(fù)制添加到數(shù)列RU的尾部,從數(shù)列ID第(n/4-ΙΟ)個(gè)字節(jié)開始,將數(shù)列ID中字節(jié)數(shù)據(jù)添加到數(shù)列RU的尾 部,直到數(shù)列RU的長(zhǎng)度為3080X8位,設(shè)置V= 0用一個(gè)循環(huán)加密數(shù)列ID ν = ((i + 5) (u[i/2]) (l+5)+(i + 4) (u[i/2 + l]) (l+4)+(i + 3) (u[i/2 + 2]) (l+3) +...+ (i/2+1) (u[i+4]) (l/2+1)+iX (u[i % ((n+7)/8)])(1 %64)) % (2563) +v/256 /*...0>i < 3076...Vd[i] = d[i]A(v% 256)/*...0<i < 3076...*//*............d[i]、u[i]表示數(shù)列ID、數(shù)列RU中字節(jié)序號(hào)為i的數(shù)據(jù),η >8X8,η
為隨機(jī)密鑰Random和用戶身份信息UserID的比特?cái)?shù)之和,這里可能導(dǎo)致加密計(jì)算量過 大,若如此,可將上式適當(dāng)修改,......V23進(jìn)程PKey將隨機(jī)密鑰Random的長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志 KeyID插入數(shù)列ID中,然后將數(shù)列ID作為私鑰KeyText的經(jīng)加密的備份ReCome,保存
在存儲(chǔ)盤Disk中用于保存密文BeMF的相關(guān)存儲(chǔ)空間,結(jié)束本進(jìn)程。其中,上面在生成密碼識(shí)別信息PassID的過程中,多次用到了排序所產(chǎn)生的 序號(hào)代碼來參與運(yùn)算的方法,本文將這種方法叫做利用排序所產(chǎn)生的序號(hào)代碼加密的算 法。利用排序所產(chǎn)生的序號(hào)代碼加密的算法既可利用序號(hào)代碼重排某個(gè)代碼串來實(shí)現(xiàn)加 密,也可用利用序號(hào)代碼與某個(gè)代碼串作其他運(yùn)算來實(shí)現(xiàn)加密,這種加密可防止現(xiàn)有的 各種密碼分析方法,19和22在產(chǎn)生流密碼的算法中都采用了增加多項(xiàng)式中的 項(xiàng)數(shù),增加多項(xiàng)式中的最高冪次的非線性加密的方法來加密,這種加密方法可使線性分 析、差分分析法失效,又因本發(fā)明將隨機(jī)密鑰鎖在密碼識(shí)別信息中,解密時(shí)需要用窮舉 法來尋找,使計(jì)算量完全超出破解者的承受能力,所以唯密文攻擊也失效。在實(shí)際應(yīng)用 中,產(chǎn)生流密碼的方法還可利用項(xiàng)數(shù)隨著加密進(jìn)程增加,冪次隨著加密進(jìn)程變化的多項(xiàng) 式來實(shí)現(xiàn)。即產(chǎn)生流密碼多項(xiàng)式中的冪次可根據(jù)需要調(diào)整。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存, 然后執(zhí)行5,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具
26有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行4;若沒找到,則執(zhí)行5,4加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,然后結(jié)束本進(jìn)程,5增加一個(gè)進(jìn)程,該進(jìn)程和原進(jìn)程兩者之中的一個(gè)進(jìn)程PKey執(zhí)行6,另 一個(gè)進(jìn)程執(zhí)行4,6進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密 強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中 當(dāng)前用戶的用戶身份信息,7檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行8,如果用戶輸 入的命令是退出,則結(jié)束本進(jìn)程,8進(jìn)程PKey判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行9,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行10,9進(jìn)程PKey判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收 用戶輸入的用戶身份信息UserlD,然后執(zhí)行10,若無效,則向6中要顯示的圖 形界面發(fā)送出錯(cuò)提示信息,并執(zhí)行6,10進(jìn)程PKey根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三 者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰 Random,[11]進(jìn)程PKey利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼 串UR,利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加 項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶 身份信息UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,12進(jìn)程PKey提取私鑰KeyText,并利用提取到的私鑰KeyText與密碼識(shí)別 信息PassID派生一個(gè)代碼串KP,13進(jìn)程PKey利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用 隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰 KeyText的經(jīng)加密的備份ReCome,14進(jìn)程PKey將隨機(jī)密鑰Random的隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo) 志KeyID插入私鑰KeyText的經(jīng)加密的備份ReCome中,15進(jìn)程PKey將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文
BeMF的相關(guān)存儲(chǔ)空間,結(jié)束本進(jìn)程。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,
3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則結(jié)束; 若沒找到,則執(zhí)行4,4進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密 強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中 當(dāng)前用戶的用戶身份信息,5檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行6,如果用戶輸 入的命令是退出,則結(jié)束,6判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息UserlD, 若輸入,則執(zhí)行7;若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后執(zhí)行
8,7判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶輸入的 用戶身份信息UserlD,然后執(zhí)行8,若無效,則向4中要顯示的圖形界面發(fā)送出 錯(cuò)提示信息,并執(zhí)行4,8根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān) 系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰Random,9利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利 用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整 冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,10提取私鑰KeyText,并將提取到的私鑰KeyText與密碼識(shí)別信息PassID派 生一個(gè)代碼串KP,11利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn) 程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText的 經(jīng)加密的備份ReCome,12將隨機(jī)密鑰Random的隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID 插入私鑰KeyText的經(jīng)加密的備份ReCome中,13將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相
關(guān)存儲(chǔ)空間,結(jié)束。根據(jù)本發(fā)明的一個(gè)方面,提供一種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存,
然后執(zhí)行4,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行
14;若沒找到,則執(zhí)行4,
4進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密 強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中 當(dāng)前用戶的用戶身份信息,5檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行6,如果用戶輸 入的命令是退出,則執(zhí)行14,6判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息UserlD, 若輸入,則執(zhí)行7,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后執(zhí)行
8,7判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶輸入的 用戶身份信息UserlD,然后執(zhí)行8,若無效,則向4中要顯示的圖形界面發(fā)送出 錯(cuò)提示信息,并執(zhí)行4,8根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān) 系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰Random,9利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利 用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整 冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,10提取私鑰KeyText,并利用提取到的私鑰KeyText與密碼識(shí)別信息PassID 派生一個(gè)代碼串KP,11利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn) 程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText的 經(jīng)加密的備份ReCome,12將隨機(jī)密鑰Random的隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID 插入私鑰KeyText的經(jīng)加密的備份ReCome中,13將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相
關(guān)存儲(chǔ)空間,14加密明文MessFile,以得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志 KeyID插入密文BeMF中,然后結(jié)束。本文中從第4頁(yè)第19行到第6頁(yè)第21行和從第12頁(yè)第22行到第16頁(yè)第15 行,這兩部分的文字共說明了六個(gè)加密流程,根據(jù)這六個(gè)加密流程中的任何一個(gè)所述的 加密方法,其特征是其中,所述備份ReCome,其特征是任何針對(duì)備份ReCome的解密程序都需要采用窮舉 法或采用窮舉法與密碼分析技術(shù)相結(jié)合的方法尋找隨機(jī)密鑰,不僅需要對(duì)解密時(shí)輸入的 用戶身份信息與解密過程中釋放的用戶身份信息進(jìn)行比對(duì),還需要對(duì)窮舉循環(huán)枚舉的隨 機(jī)密鑰與解密過程中釋放的隨機(jī)密鑰進(jìn)行比對(duì),只有在前述兩種密鑰的比對(duì)都一致后, 才能保證對(duì)私鑰KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,所述加密強(qiáng)度取決于加密用戶身份信息UserID和隨機(jī)密鑰Random后所生成的密碼識(shí)別信息PassID,解密時(shí),只有先完成對(duì)密碼識(shí)別信息PassID的解密,才能保證對(duì) 私鑰KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,并且解密 時(shí),在確認(rèn)用戶身份信息UserID和隨機(jī)密鑰Random都正確后,從私鑰KeyText的經(jīng)加 密的備份ReCome中解出私鑰KeyText的計(jì)算量相對(duì)總計(jì)算量而言往往非常小。因此, 所述加密強(qiáng)度也等于對(duì)私鑰KeyText進(jìn)行加密的加密強(qiáng)度并且是下列其中之一隨機(jī)長(zhǎng) 度、解密的平均計(jì)算量、解密的最大計(jì)算量、解密的平均計(jì)算量相對(duì)加密時(shí)計(jì)算量的放 大倍數(shù)、解密的最大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的平均計(jì)算量相對(duì)單次 解密時(shí)計(jì)算量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密 的平均嘗試解密次數(shù)、解密的最多嘗試解密次數(shù)、在預(yù)定速度機(jī)器上的平均解密時(shí)間、 在預(yù)定速度機(jī)器上的最長(zhǎng)解密時(shí)間,所述隨機(jī)密鑰是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī)信息、系統(tǒng) 產(chǎn)生的偽隨機(jī)信息、利用用戶身份信息UserID對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù) 后得到的信息、利用內(nèi)存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到 的信息、利用時(shí)鐘數(shù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)干預(yù)后得到的信息,并且所述系統(tǒng)是指密 碼系統(tǒng)或操作系統(tǒng),所述插入是指將一個(gè)代碼串作為一個(gè)單位或拆分為多個(gè)單位添加到另一個(gè)代碼 串中某一個(gè)或多個(gè)位置構(gòu)成一個(gè)新代碼串的動(dòng)作,并且插入位置不局限于代碼串里的位 置,也可以添加在代碼串的首尾兩端。本文中從第4頁(yè)第19行到第6頁(yè)第21行和從第12頁(yè)第22行到第16頁(yè)第15 行,這兩部分的文字共說明了六個(gè)加密流程,根據(jù)這六個(gè)加密流程中的任何一個(gè)所述的 加密方法,其特征是其中,所述利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程 增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,被修改為采用預(yù)定算法 加密代碼串UR,并且所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、 混淆、擴(kuò)散、迭代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分 組加密、流密碼加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加 密、偽隨機(jī)加密算法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加 密的算法、利用排序所產(chǎn)生的序號(hào)代碼加密的算法,所述利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn)程 增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,被修改為采用預(yù)定算法 加密代碼串KP,并且所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、 混淆、擴(kuò)散、迭代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分 組加密、流密碼加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加 密、偽隨機(jī)加密算法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加 密的算法、利用排序所產(chǎn)生的序號(hào)代碼加密的算法。本文中從第5頁(yè)第7行到第6頁(yè)第21行和從第12頁(yè)第22行到第16頁(yè)第15行, 這兩部分的文字共說明了五個(gè)加密流程,根據(jù)這五個(gè)加密流程中的任何一個(gè)所述的加密 方法,其特征是其中,所述將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)
30加密的備份ReCome中,被修改為將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相 關(guān)存儲(chǔ)空間,將私鑰KeyText的識(shí)別標(biāo)志KeyID備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ) 空間,并且所述將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將 隨機(jī)長(zhǎng)度Long保存在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome 這個(gè)文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存隨機(jī)長(zhǎng)度Long的文件或空間,⑤用于保存 隨機(jī)長(zhǎng)度Long和識(shí)別標(biāo)志KeyID這兩者的文件或空間;所述將私鑰KeyText的識(shí)別標(biāo)志 KeyID備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將私鑰KeyText的識(shí)別標(biāo)志 KeyID備份在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome這個(gè)文件 屬性的空間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志KeyID的文件或空間,⑤用于保存隨機(jī)長(zhǎng) 度Long和識(shí)別標(biāo)志KeyID這兩者的文件或空間,所述將私鑰KeyText的識(shí)別標(biāo)志KeyID插入密文BeMF中,被修改為將私鑰 KeyText的識(shí)別標(biāo)志KeyID備份在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,并且所述將私 鑰KeyText的識(shí)別標(biāo)志KeyID備份在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,是指將私鑰 KeyText的識(shí)別標(biāo)志KeyID備份在以下四者之一①保存密文BeMF的空間,②保存密文 BeMF文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志KeyID的文件或空間,所述將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相 關(guān)存儲(chǔ)空間,是指將私鑰KeyText的經(jīng)加密的備份ReCome保存在以下四者之一①保 存密文BeMF的空間,②保存密文BeMF文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存?zhèn)浞?ReCome的文件或空間,考慮到復(fù)雜的用戶環(huán)境,上面的所述的加密方法,還可具有兩個(gè)特征①在加 密過程中驗(yàn)證用戶的合法性,只有通過驗(yàn)證的用戶才能完成對(duì)私鑰KeyText的加密。所 述驗(yàn)證用戶的合法性是指要求用戶輸入驗(yàn)證信息,并對(duì)輸入的驗(yàn)證信息進(jìn)行驗(yàn)證,所述 驗(yàn)證信息是指保存在系統(tǒng)中的當(dāng)前用戶的用戶身份信息如登陸密碼等,②用戶在帶命令 按鈕的圖形交互界面上,輸入用戶身份信息UserID和加密強(qiáng)度。本發(fā)明中的加密方法即使利用相同的用戶身份信息,對(duì)同樣的信息加密,加密強(qiáng) 度也是可變的,本發(fā)明中的加密方法可以通過調(diào)整隨機(jī)密鑰的隨機(jī)長(zhǎng)度而使該加密方法的 加密強(qiáng)度隨著加密機(jī)器速度的提高而提高或者使用者需求而變化。因此,本發(fā)明中的加密 方法可以應(yīng)對(duì)將來破解設(shè)備的發(fā)展,有效地保證被本發(fā)明中的加密方法加密的信息安全。
圖1為本發(fā)明第一個(gè)實(shí)施例的加密流程圖,圖2為本發(fā)明第二個(gè)實(shí)施例的加密流程圖,圖3為本發(fā)明第三、第四個(gè)實(shí)施例的加密流程圖,圖4-A和圖4-B為本發(fā)明第四個(gè)實(shí)施例的解密流程圖,圖5為本發(fā)明第五個(gè)實(shí)施例的加密流程圖,圖6為本發(fā)明第六個(gè)實(shí)施例的加密流程圖。
具體實(shí)施例方式為與普通文件和信息區(qū)別,本文將用本發(fā)明中的加密方法來加密保護(hù)的私鑰、證書、重要文件等信息稱為重要明文。本發(fā)明利用用戶身份信息和隨機(jī)密鑰共同加密, 將隨機(jī)密鑰和用戶身份信息鎖在密碼識(shí)別信息中,并且在生成密碼識(shí)別信息時(shí)采用反密 碼分析方法的措施。根據(jù)本發(fā)明加密的密文,無論破解者怎樣編寫解密程序,除了使用 窮舉法或采用窮舉法與密碼分析技術(shù)相結(jié)合的方法外,無法有效利用其它密碼分析方法 對(duì)密文進(jìn)行破解,即使在提供的用戶身份信息正確的情況下,任何針對(duì)本發(fā)明的解密程 序仍需要采用窮舉法或采用窮舉法與密碼分析技術(shù)相結(jié)合的方法尋找隨機(jī)密鑰,才能保 證成功的將密文解密。本發(fā)明中的加密方法對(duì)同樣的信息,使用相同的用戶身份信息, 所獲得的加密強(qiáng)度是可變的,本發(fā)明中的加密方法可以通過調(diào)整隨機(jī)密鑰的隨機(jī)長(zhǎng)度而 使該加密方法的加密強(qiáng)度隨著加密機(jī)器速度的提高而提高或者使用者需求而變化。因 此,本發(fā)明中的加密方法可以應(yīng)對(duì)將來破解設(shè)備的發(fā)展,有效地保證被本發(fā)明中的加密 方法加密的信息安全。根據(jù)本發(fā)明的加密方法的基本特征是輸入用戶身份信息和加密強(qiáng)度,根據(jù)隨 機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨 機(jī)長(zhǎng)度,并產(chǎn)生該隨機(jī)長(zhǎng)度的隨機(jī)密鑰,這是一個(gè)不能根據(jù)任何明文、用戶身份信息算 出的隨機(jī)密鑰;利用用戶身份信息和隨機(jī)密鑰共同加密重要明文;并在加密過程中將隨 機(jī)密鑰和用戶身份信息鎖在密碼識(shí)別信息中。即使在提供的用戶身份信息正確的情況 下,任何針對(duì)本發(fā)明的解密程序仍需要采用窮舉法或采用窮舉法與密碼分析技術(shù)相結(jié)合 的方法尋找隨機(jī)密鑰,才能保證成功的將密文解密。本文中所述隨機(jī)長(zhǎng)度是由下列參數(shù) 中的一個(gè)或多個(gè)構(gòu)成將隨機(jī)密鑰的長(zhǎng)度、變動(dòng)范圍及隨機(jī)密鑰中單元的長(zhǎng)度、變動(dòng)范 圍。針對(duì)本發(fā)明的解密程序,使用窮舉法來解密并不指只用窮舉法來解密,也可采 用其它的先進(jìn)的密碼分析技術(shù)來排除部分不可能的隨機(jī)密鑰,以加快窮舉法尋找隨機(jī)密 鑰的速度。前句所述的窮舉法是指在輸入用戶身份信息的前提下,且在隨機(jī)密鑰變動(dòng)范 圍內(nèi),解密程序用某種算法逐個(gè)列出尚未被排除的隨機(jī)密鑰,并用某種算法將當(dāng)前列出 的隨機(jī)密鑰、用戶身份信息與密碼識(shí)別信息進(jìn)行比對(duì)以驗(yàn)證當(dāng)前列出的隨機(jī)密鑰。直至 正確的隨機(jī)密鑰被找到或已嘗試所有可能的隨機(jī)密鑰。本發(fā)明這種密碼系統(tǒng)在加密、解密時(shí)都需要用戶或系統(tǒng)提供被加密信息的用戶 身份信息。本文中所說的用戶身份信息是指能夠由用戶完全掌握的密鑰,加密和解密時(shí) 都可由用戶輸入,包括用戶名、用戶密碼、用戶指紋、DNA、興趣愛好、社會(huì)關(guān)系、特 殊經(jīng)歷、身份證號(hào)碼、軟件序列號(hào)等各種由用戶、軟件設(shè)定用于識(shí)別用戶身份并參與加 密、解密的信息。當(dāng)本發(fā)明應(yīng)用到云系統(tǒng)中的重要明文托管服務(wù)時(shí),用戶身份信息不僅 包括終端用戶或終端系統(tǒng)輸入的終端用戶身份信息,還包括重要明文托管服務(wù)商的云給 終端用戶分配的托管方密鑰。托管方密鑰是重要明文托管服務(wù)商所提供的服務(wù)端用戶身 份信息。本發(fā)明所產(chǎn)生的密碼系統(tǒng)在加密過程中必須使用隨機(jī)信息參與加密,為便于表 述,本文將在加密系統(tǒng)中產(chǎn)生用來加密信息的隨機(jī)信息分為兩種。第一種隨機(jī)信息屬 于密碼識(shí)別對(duì)象中的成員,在解密時(shí)不能確保利用用戶身份信息和其他信息一次性解算 出該隨機(jī)信息,而必須用窮舉法才能找到該隨機(jī)信息,本文將這種隨機(jī)信息稱為隨機(jī)密 鑰。第二種隨機(jī)信息并非密碼識(shí)別對(duì)象中的成員,在解密時(shí)能夠利用用戶身份信息、隨 機(jī)密鑰和密文一次性解算出該隨機(jī)信息,本文將這種隨機(jī)信息簡(jiǎn)稱為隨機(jī)數(shù)。
為便于表述,下面首先在所有密碼分析方法都失效的條件下進(jìn)行說明。為便于 控制解密的平均計(jì)算量,本發(fā)明中的隨機(jī)密鑰采用對(duì)稱密鑰。這里假設(shè)加密時(shí),用戶輸 入的用戶身份信息為含有X個(gè)字符的用戶密碼,并且用戶密碼中每個(gè)字符為含有U個(gè)元素 集合中的任意一個(gè)元素。加密所用的時(shí)間為T,解密時(shí)需要用窮舉法尋找的隨機(jī)密鑰由 y個(gè)單元組成,每個(gè)單元為含有R個(gè)元素集合中的任意一個(gè)元素,且假設(shè)加密、解密過程 都在速度相等的計(jì)算機(jī)上完成。在用戶身份信息正確時(shí),計(jì)算機(jī)解密被加密的信息所需 的時(shí)間為t = kXTXS(式中k為修正系數(shù)且k>0,S為用窮舉法嘗試的次數(shù))。通常隨 著S的增大,k會(huì)逐漸接近某一常數(shù),因此下面可將k作為一個(gè)常數(shù)來考慮。在前述情況 下,合法用戶解密所需的最長(zhǎng)時(shí)間為kXTXRy,平均解密時(shí)間11=0.5父1^\1\0^+1), 破解者因不知道用戶身份信息,所以對(duì)用戶身份信息和隨機(jī)密鑰都要進(jìn)行試探,因此其 平均成功破解時(shí)間t2 = 0.5XkXTX (UxXRy+l)= 0.5XkXTX (Ry+1) (Ux+1+Ry) + (1+1+Ry)。1X (Ux+0) + (1+0)= tlX Ux①破解者在h時(shí)間內(nèi)成功破解的概率為P = h+(kXTXUxXRy)= h(Ry+l) + (2X0.5XkXTX (Ry+1) XUxXRy)= h (1+1+Ry) + (2 X tlX Ux)^h+(2 X tlX Ux)②據(jù)此,我們可推出在平均解密時(shí)間tl為1分鐘,在用戶密碼長(zhǎng)度χ為8,且密碼 中字符僅為數(shù)字與大小英文字母的情況下,此時(shí)U為62,破解者在一年之內(nèi)成功破解的 概率為1.20445119X10_9,即使破解計(jì)算機(jī)的速度為加密計(jì)算機(jī)速度的10000倍,破解者 在一年之內(nèi)成功破解的概率也只有1.20445119X10_5,這個(gè)概率對(duì)絕大多數(shù)用戶來說仍足 夠安全,況且在實(shí)際應(yīng)用中通過用戶輸入多種信息使用戶身份信息的長(zhǎng)度χ很容易大于 8,構(gòu)成用戶身份信息的元素個(gè)數(shù)U還可增大,需要用窮舉法尋找的隨機(jī)密鑰長(zhǎng)度y可進(jìn) 一步增加,即很容易進(jìn)一步降低破解者成功破解的概率。本發(fā)明加密的信息因需要用窮 舉法尋找隨機(jī)密鑰,增加了平均解密計(jì)算量,從而引起平均解密時(shí)間增大,大大降低了 單位時(shí)間內(nèi)成功破解的概率,而且平均解密時(shí)間可以控制在合法用戶能夠接受的范圍之 內(nèi),但對(duì)破解者而言因沒有掌握正確的用戶身份信息,這個(gè)時(shí)間被用戶身份信息進(jìn)一步 增大到Ux倍,使破解時(shí)間超出破解者的承受能力,迫使破解者放棄強(qiáng)行破解,從而達(dá)到 保證信息安全的目的。本發(fā)明中加密強(qiáng)度取決于加密用戶身份信息和隨機(jī)密鑰后所生成的密碼識(shí)別信 息,解密時(shí),只有先完成對(duì)密碼識(shí)別信息的解密,才能保證對(duì)其他密文進(jìn)行正確解密, 以釋放重要明文,并且解密時(shí),在確認(rèn)用戶身份信息和隨機(jī)密鑰都正確后,從密文中解 出重要明文的計(jì)算量相對(duì)總計(jì)算量而言往往非常小。因此,所述加密強(qiáng)度也可被認(rèn)為就 等于對(duì)重要明文進(jìn)行加密的加密強(qiáng)度。用戶或系統(tǒng)通過調(diào)節(jié)隨機(jī)長(zhǎng)度來實(shí)現(xiàn)設(shè)置加密強(qiáng) 度。應(yīng)用本發(fā)明的軟件或機(jī)器可由用戶或系統(tǒng)直接輸入隨機(jī)長(zhǎng)度來設(shè)置加密強(qiáng)度。輸入 隨機(jī)長(zhǎng)度時(shí),可輸入下列參數(shù)之一或多個(gè)隨機(jī)密鑰的長(zhǎng)度、隨機(jī)密鑰的變動(dòng)范圍、隨機(jī)密鑰中單元的長(zhǎng)度、隨機(jī)密鑰中單元的變動(dòng)范圍,例如,只設(shè)置隨機(jī)密鑰的長(zhǎng)度、既 設(shè)置隨機(jī)密鑰的長(zhǎng)度又設(shè)置隨機(jī)密鑰中單元的變動(dòng)范圍、只設(shè)置隨機(jī)密鑰中單元的變動(dòng) 范圍等。實(shí)際應(yīng)用中,也可通過輸入以下參數(shù)來設(shè)置加密強(qiáng)度解密的平均計(jì)算量、最 大計(jì)算量、解密的平均計(jì)算量或最大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的平均 計(jì)算或最大計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密的平均嘗試解密次數(shù)、解密 的最多嘗試解密次數(shù),在預(yù)定速度機(jī)器上解密時(shí)的平均解密時(shí)間或最長(zhǎng)解密時(shí)間,然后 由程序根據(jù)設(shè)置的參數(shù),計(jì)算隨機(jī)長(zhǎng)度??稍诮饷艹绦蛑胁迦胗?jì)數(shù)器統(tǒng)計(jì)得到解密程序枚舉一個(gè)可能的隨機(jī)密鑰,并 用該隨機(jī)密鑰完成一次嘗試解密的計(jì)算量函數(shù)f(x,y,ζ),式中χ為用戶身份信息的長(zhǎng) 度,y為隨機(jī)密鑰的長(zhǎng)度,ζ為密文的長(zhǎng)度,隨機(jī)密鑰長(zhǎng)度以比特為單位。在不考慮密碼 分析威脅的條件下,當(dāng)用戶或系統(tǒng)輸入的加密強(qiáng)度為解密的平均計(jì)算量j時(shí),可通過對(duì)方程jX2 = f(x,y, ζ) X 2y③求解,算出加密時(shí)應(yīng)使用的隨機(jī)密鑰的長(zhǎng)度y,需要注意的是為了簡(jiǎn)化隨機(jī)長(zhǎng)度 的計(jì)算,從公式③到公式⑩中隨機(jī)密鑰都以比特為單元,并且每個(gè)比特的值為0或1,隨 機(jī)密鑰的長(zhǎng)度可根據(jù)需要調(diào)整,在這情況下隨機(jī)長(zhǎng)度完全取決于隨機(jī)密鑰的長(zhǎng)度即比特 數(shù)。當(dāng)然對(duì)于其他類型的隨機(jī)長(zhǎng)度計(jì)算公式,使用者可根據(jù)本發(fā)明的基本原理推出,例 如,以兩比特為一個(gè)單元,每個(gè)單元的取值范圍為00、01、10這三個(gè)值,此時(shí)公式③應(yīng) 為jX2 = f(x,y,ζ) X3y其中y表示隨機(jī)密鑰的單元個(gè)數(shù)。當(dāng)用戶或系統(tǒng)輸入的加密強(qiáng)度為預(yù)定速度為ν的計(jì)算機(jī)上解密的平均解密時(shí) 間tl時(shí),可通過對(duì)方程VXtlX2 = f(x,y,z)X2y④求解,算出加密時(shí)應(yīng)使用 的隨機(jī)密鑰的長(zhǎng)度y??稍诩用艹绦蛑胁迦胗?jì)數(shù)器統(tǒng)計(jì)得到加密程序加密的計(jì)算量函數(shù)g(x,y, ζ),其中X為用戶身份信息的長(zhǎng)度,y為隨機(jī)密鑰的長(zhǎng)度,Z為密文的長(zhǎng)度,隨機(jī)密鑰長(zhǎng) 度以比特為單位。在不考慮密碼分析威脅的條件下,當(dāng)用戶或系統(tǒng)輸入的加密強(qiáng)度為解密的平均計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大 倍數(shù)w時(shí),可通過對(duì)方程g(x, y, ζ) XwX2 = f(x, y, ζ) X 2y ⑤求解,算出加密時(shí)應(yīng)使用的隨機(jī)密鑰的長(zhǎng)度y。以上都是利用計(jì)算量列方程,當(dāng)用戶或系統(tǒng)輸入的加密強(qiáng)度為其它類型參數(shù)時(shí) 也可通過與上面相似的方式,從方程中算出加密時(shí)應(yīng)使用的隨機(jī)密鑰的長(zhǎng)度y。上面的方程都是在密碼分析方法失效的條件下得到的,當(dāng)加密時(shí)生成用于識(shí)別 用戶身份信息和隨機(jī)密鑰的密碼識(shí)別信息的加密算法,能被破解者采用密碼分析方法進(jìn) 行分析時(shí),為防止非法用戶破解,本發(fā)明在加密之前計(jì)算隨機(jī)密鑰長(zhǎng)度時(shí),根據(jù)密碼系 統(tǒng)運(yùn)行的用于計(jì)算加速能力的子程序,得到系統(tǒng)中掌握的最新密碼分析方法對(duì)解密進(jìn)程 的加速能力,適當(dāng)加長(zhǎng)隨機(jī)密鑰的長(zhǎng)度達(dá)到阻止利用該密碼分析方法破解本發(fā)明的效 果,這樣能確保本發(fā)明總能跟上密碼分析方法的發(fā)展,并且采用本發(fā)明編寫的加密程 序,可以做到不更新加密方法,只要及時(shí)更新用于計(jì)算加速能力的子程序即可,有時(shí)該 子程序可能也不需要更新,只需要更新與加速能力相關(guān)的參數(shù),該子程序或參數(shù)更新后,加密程序就可自動(dòng)提高加密強(qiáng)度,自動(dòng)使當(dāng)前最新破解技術(shù)立即失效。下文計(jì)算 時(shí),加速能力用舊破解方法針對(duì)某長(zhǎng)度密文解密時(shí)的平均計(jì)算量與用新破解方法針對(duì)同 樣長(zhǎng)度密文解密時(shí)的平均計(jì)算量比值來表示,當(dāng)然也可其它形式來表示,當(dāng)然在實(shí)際應(yīng) 用中,可用上述比值減1來表示,也可用上述比值的倒數(shù)來表示,還用1減這個(gè)倒數(shù)來表 示,為了在自動(dòng)提高加密強(qiáng)度后,用戶對(duì)密文的平均解密時(shí)間在可以接受的范圍之內(nèi), 本發(fā)明的實(shí)施者應(yīng)及時(shí)將當(dāng)前最快的密碼分析方法應(yīng)用到針對(duì)本發(fā)明的解密程序中,盡 量減少窮舉程序的循環(huán)次數(shù),即要在充分利用密碼分析的基礎(chǔ)上,使用窮舉循環(huán)進(jìn)行解 密,為合法用戶提供便捷。假設(shè)依據(jù)本發(fā)明所產(chǎn)生的加密方法,采用某種算法對(duì)用戶身份信息和隨機(jī)密鑰 加密,以生成用于識(shí)別用戶身份信息和隨機(jī)密鑰的密碼識(shí)別信息,這個(gè)生成密碼識(shí)別信 息的算法在公布之前,除了用窮舉法破解外,沒有其它的有效破解方法,這個(gè)生成密 碼識(shí)別信息的算法公布后,出現(xiàn)了新的密碼分析方法,能加速對(duì)該算法產(chǎn)生的密文的破 解,經(jīng)過統(tǒng)計(jì)或計(jì)算,新的密碼分析方法對(duì)解密進(jìn)程的加速能力可表示為函數(shù)m(x, y,ζ),其中χ為已知的用戶身份信息的長(zhǎng)度,y為隨機(jī)密鑰的長(zhǎng)度,ζ為密文的長(zhǎng)度,隨 機(jī)密鑰長(zhǎng)度以比特為單位,函數(shù)m(x,y,ζ)表示用舊破解方法針對(duì)某長(zhǎng)度密文解密時(shí)的 平均計(jì)算量與用新破解方法針對(duì)同樣長(zhǎng)度密文解密時(shí)的平均計(jì)算量比值。本發(fā)明的實(shí)施 者,在知曉該破解方法后,立即將該破解方法應(yīng)用到合法用戶的解密方法中,以提高合 法用戶解密程序的工作效率,并同時(shí)將包含該方法的加速能力函數(shù)m(x,y,ζ)計(jì)算功能 的子程序提交給加密程序。此時(shí)當(dāng)用戶或系統(tǒng)輸入的加密強(qiáng)度為預(yù)定速度為ν的計(jì)算機(jī)上解密的平均解密時(shí) 間tl時(shí),合法用戶已知用戶身份信息,可得合法用戶解密時(shí)的有關(guān)方程vXtlX2Xm(x, y, ζ) = f(x, y, ζ) X2y ⑥求解,算出加密時(shí)應(yīng)使用的隨機(jī)密鑰的長(zhǎng)度y。當(dāng)用戶或系統(tǒng)輸入的加密強(qiáng)度為 其它類型參數(shù)時(shí),加密前計(jì)算應(yīng)使用的隨機(jī)密鑰的長(zhǎng)度y的過程中也要將加速能力m(x, y,ζ)考慮進(jìn)去。當(dāng)破解者沒有掌握用戶身份信息時(shí),可得破解密時(shí)的有關(guān)方程vXt2X2Xm(0, xLog2U+y, ζ) = f(x, y, ζ) X2yXUx ⑦其中χ為用戶身份信息的長(zhǎng)度,y為隨機(jī)密鑰的長(zhǎng)度,ζ為密文的長(zhǎng)度,隨機(jī)密 鑰長(zhǎng)度以比特為單位。由方程⑥、⑦得到vXt2X2Xm(0, y+xLog2U, ζ) = vXtl X2Xm(x,y, ζ) XUx ⑧由方程⑧得到破解時(shí)間t2為t2 = tlXUxXm(x, y, z)+m(0, y+xLog2U, ζ)⑨由于加速能力函數(shù)m(x,y,ζ)中的χ為已知的用戶身份信息的長(zhǎng)度,y是未 知的隨機(jī)密鑰長(zhǎng)度,ζ為密文的長(zhǎng)度,在被分析的加密算法為現(xiàn)有的非線性加密算法條件 下,當(dāng)ζ不變、χ變小、y變大時(shí),加速能力m(x,y,ζ)減小,據(jù)此,可知,當(dāng)χ>0 時(shí),m(x, y, ζ) > m(0, m(0, y+xLog2U, ζ), ζ),又因m(x,y, ζ) > 0所以m(x,y, z)+m(0,m(0, y+xLog2U, z),z) > 1
35
所以,可由⑨得到t2 > tlXUx ⑩比較①式與⑩就會(huì)發(fā)現(xiàn),當(dāng)采用非線性加密算法依據(jù)本發(fā)明來加密保護(hù)密碼識(shí) 別信息時(shí),在更新計(jì)算新密碼分析方法加速能力的子程序、并利用新密碼分析方法更新 解密程序后,在合法用戶的平均解密時(shí)間不變的情況下,破解者的平均破解時(shí)間將更 長(zhǎng),單位時(shí)間內(nèi)破解成功的概率將更低,也就是本發(fā)明所產(chǎn)生的加密方法將使被加密的 密碼識(shí)別信息變得更加安全,當(dāng)然也使重要明文加密后所生成的密文也更安全。因此, 本發(fā)明主張用非線性加密方法對(duì)用戶身份信息和隨機(jī)密鑰加密,以生成密碼識(shí)別信息, 但不排除在加密過程中使用線性加密方法。若本發(fā)明中的方法加密用戶身份信息和隨機(jī)密鑰的算法已有密碼分析方法,編 寫解密程序時(shí),可將密碼分析方法和窮舉法相結(jié)合,以求在用戶設(shè)置的時(shí)間內(nèi),用窮舉 法處理更長(zhǎng)的隨機(jī)密鑰。為了保證本發(fā)明中所采用的隨機(jī)密鑰具有高度的隨機(jī)性,隨 機(jī)密鑰是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī)信息、系統(tǒng)產(chǎn)生的偽隨機(jī)信 息、利用用戶身份信息對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信息、利用內(nèi) 存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信息、利用時(shí)鐘數(shù)對(duì) 系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信息,并且所述系統(tǒng)是指密碼系統(tǒng)或操 作系統(tǒng)。本發(fā)明在對(duì)信息的加密運(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)系(一一映射或非一一映射)建立 的密碼表加密等。為簡(jiǎn)便起見,本文將用邏輯運(yùn)算來實(shí)現(xiàn)的加密簡(jiǎn)稱為邏輯加密,將用 算術(shù)運(yùn)算來實(shí)現(xiàn)的加密簡(jiǎn)稱為算術(shù)加密,將采用數(shù)學(xué)關(guān)系運(yùn)算來實(shí)現(xiàn)的加密簡(jiǎn)稱為數(shù)學(xué) 關(guān)系加密。本發(fā)明在對(duì)信息的加密中既可采用向前移動(dòng)信息代碼位置(后面被移空的位 置既可用前面或后面移出的代碼填充,也可用隨機(jī)碼或非隨機(jī)碼填充),又可采用向后 移動(dòng)信息代碼位置(前面被移空的位置既可用前面或后面移出的代碼填充,也可用隨機(jī) 碼或非隨機(jī)碼填充),也可采用交換信息代碼位置,還可采用按某一規(guī)則重新排列信息代 碼位置,還可采用向信息代碼中插入非隨機(jī)代碼,甚至采用向信息代碼中插入隨機(jī)代碼 (該隨機(jī)代碼在解密時(shí)可能不需要用窮舉法尋找,也可能需要用窮舉法尋找)等引起信息 代碼位置變化的方式加密信息,本文將這種能引起信息代碼位置變化的加密算法叫做變 位加密。本發(fā)明可利用排序所產(chǎn)生的序號(hào)代碼加密的算法,所謂利用排序所產(chǎn)生的序號(hào) 代碼加密的算法是指根據(jù)排序所產(chǎn)生的序號(hào)代碼重新排列其他信息(明文、密文、用戶 身份信息、密鑰、隨機(jī)數(shù)及其衍生信息等)的代碼位置,以實(shí)現(xiàn)加密的方法,或指利用 排序所產(chǎn)生的序號(hào)代碼直接與其他信息(明文、密文、用戶身份信息、密鑰、隨機(jī)數(shù)及 其衍生信息等)的代碼進(jìn)行異或、力卩、乘、除等各種數(shù)學(xué)運(yùn)算,以實(shí)現(xiàn)加密的方法。本發(fā)明既可采用流密碼加密、線性加密算法、對(duì)稱加密算法,又可采用分組加密算法、非 線性加密算法、不對(duì)稱加密算法,還可利用替代、混淆、擴(kuò)散、迭代、統(tǒng)計(jì)數(shù)據(jù)加密, 甚至使用偽隨機(jī)加密和本發(fā)明之外的隨機(jī)加密算法。本發(fā)明加密重要明文時(shí),還必須對(duì) 用戶身份信息和隨機(jī)密鑰加密,并且在對(duì)重要密文、用戶身份信息和隨機(jī)密鑰這三者加 密過程中,要將多個(gè)(含兩個(gè))代碼串以連接或相互插入的方式組合為一個(gè)或多個(gè)(含兩 個(gè))代碼串,甚至將某個(gè)代碼串以某種方式拆分為多個(gè)(含兩個(gè))代碼串,如果對(duì)代碼 串的組合與拆分利用較好,也可增加加密強(qiáng)度,因此本文將對(duì)代碼串的組合與拆分也作 為一種加密算法,并將這種加密算法稱為組合拆分法。用組合拆分法產(chǎn)生的多個(gè)(含兩 個(gè))代碼串可以分別用不同的加密算法加密,也可用相同的加密算法加密。用組合拆分 法將多個(gè)(含兩個(gè))代碼串合并為一個(gè)新代碼串后,應(yīng)再對(duì)新代碼串進(jìn)行加密,當(dāng)然如果 被合并的代碼串已被加密且加密強(qiáng)度足夠,可以不再對(duì)新代碼串進(jìn)行加密。本發(fā)明對(duì)重 要密文、用戶身份信息和隨機(jī)密鑰這三者加密過程中,并不要求必須先對(duì)誰加密后對(duì)誰 加密。本發(fā)明應(yīng)用于加密重要明文時(shí)的通用流程如下I輸入用戶身份信息UserID和加密強(qiáng)度,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng) 度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨 機(jī)密鑰Random,II采用預(yù)定算法,利用用戶身份信息UserID和隨機(jī)密鑰Random,加密要保 密的重要明文Text以得到密文ReText,其中,所述隨機(jī)長(zhǎng)度Long是由下列之一或多個(gè)構(gòu)成隨機(jī)密鑰的長(zhǎng)度、隨機(jī)密鑰的變 動(dòng)范圍、隨機(jī)密鑰中單元的長(zhǎng)度、隨機(jī)密鑰中單元的變動(dòng)范圍,并且在加密完成后,隨 機(jī)長(zhǎng)度Long以密文或明文的形式保存在用于保存密文Retext的相關(guān)存儲(chǔ)空間,并且所述 用于保存密文Retext的相關(guān)存儲(chǔ)空間是指以下五者之一①保存密文Retext的空間,② 保存密文Retext這個(gè)文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存隨機(jī)長(zhǎng)度Long的文件或空 間,⑤用于保存隨機(jī)長(zhǎng)度Long和識(shí)別標(biāo)志TextID這兩者的文件或空間,所述隨機(jī)密鑰Random既是對(duì)重要明文Text加密的密鑰的一部分,又是對(duì)密文 Retext解密的密鑰的一部分,并且是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī) 信息、系統(tǒng)產(chǎn)生的偽隨機(jī)信息、利用用戶身份信息UserID對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用 某種算法干預(yù)后得到的信息、利用內(nèi)存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算 法干預(yù)后得到的信息、利用時(shí)鐘數(shù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信 息,并且所述系統(tǒng)是指密碼系統(tǒng)或操作系統(tǒng),所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、混淆、擴(kuò) 散、迭代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分組加密、 流密碼加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加密、偽隨機(jī) 加密算法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加密的算法、 利用排序所產(chǎn)生的序號(hào)代碼加密的算法,所述利用用戶身份信息UserID和隨機(jī)密鑰Random,是指除了利用包含用戶身份 信息UserID和隨機(jī)密鑰Random這兩者本身外,還包括利用下列信息中的一種或多種 由用戶身份信息UserID衍生的信息、由隨機(jī)密鑰Random衍生的信息、隨機(jī)數(shù)、由隨機(jī)數(shù)衍生的信息、重要明文Text、由重要明文Text衍生的信息、由用戶身份信息UserlD、 隨機(jī)密鑰Random、隨機(jī)數(shù)和重要明文Text這四者之中兩者共同衍生的信息、由用戶身份 信息UserlD、隨機(jī)密鑰Random、隨機(jī)數(shù)和重要明文Text這四者之中三者共同衍生的信 息,由用戶身份信息UserlD、隨機(jī)密鑰Random、隨機(jī)數(shù)和重要明文Text這四者共同衍生 的信息,所述重要明文Text是指下列信息中的一種或多種私鑰、證書、個(gè)人隱私、商 業(yè)機(jī)密、企事業(yè)單位機(jī)密、計(jì)算機(jī)安全信息,所述加密要保密的重要明文Text以得到密文Retext,就是對(duì)重要明文Text、用 戶身份信息UserID和隨機(jī)密鑰Random這三者加密的過程,并且該過程多種多樣,下面 列出了其中十三種⑴對(duì)重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random分 別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、密文Re2、密文Re3,然后將密文Rel、密 文Re2、密文Re3組合為一個(gè)密文Retext,(2)對(duì)重要明文Text、用戶身份信息UserID和 隨機(jī)密鑰Random分別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、密文Re2、密文Re3, 將密文Rel、密文Re2和密文Re3這三者之中的兩者組合為一個(gè)代碼串S,并對(duì)代碼串S 加密,以得到密文Re4,之后將密文Rel、密文Re2和密文Re3這三者之中沒有參與構(gòu) 成代碼串S的這個(gè)密文和密文Re4組合為一個(gè)密文Retext,(3)對(duì)重要明文Text、用戶 身份信息UserID和隨機(jī)密鑰Random分別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、密 文Re2、密文Re3,將密文Rel、密文Re2和密文Re3這三者之中的兩者組合為一個(gè)代碼 串S,并對(duì)代碼串S加密,以得到密文Re4,之后將密文Rel、密文Re2和密文Re3這三 者之中沒有參與構(gòu)成代碼串S的這個(gè)密文和密文Re4組合為一個(gè)代碼串ReS,接著再對(duì) 代碼串ReS加密,以得到密文Retext,(4)對(duì)重要明文Text、用戶身份信息UserID和隨 機(jī)密鑰Random分別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、密文Re2、密文Re3,然 后將密文Rel、密文Re2、密文Re3組合為一個(gè)代碼串S,并對(duì)代碼串S加密,以得到密 文Retext,(5)先對(duì)重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者之一 進(jìn)行加密,以得到密文Rel,后將前述三者之中尚沒被加密的另外兩者組合為一個(gè)代碼串 S,對(duì)代碼串S加密,以得到密文Re2,然后將密文Rel、密文Re2組合為一個(gè)密文,以 得到密文Retext,(6)先對(duì)重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三 者之一進(jìn)行加密,以得到密文Rel,后將前述三者之中尚沒被加密的另外兩者組合為一個(gè) 代碼串S,對(duì)代碼串S加密,以得到密文Re2,然后將密文Rel、密文Re2組合為一個(gè)代 碼串ReS,再對(duì)代碼串ReS加密,以得到密文Retext,(7)先將重要明文Text、用戶身份 信息UserID和隨機(jī)密鑰Random這三者之中兩者組合為一個(gè)代碼串S,后對(duì)代碼串S和前 述三者之中沒有參與構(gòu)成代碼串S的這個(gè)數(shù)據(jù)分別加密,以得到密文Rel、密文Re2,然 后將密文Rel、密文Re2組合為一個(gè)密文,以得到密文Retext,(8)先將重要明文Text、 用戶身份信息UserID和隨機(jī)密鑰Random這三者之中兩者組合為一個(gè)代碼串S,后對(duì)代碼 串S和前述三者之中沒有參與構(gòu)成代碼串S的這個(gè)數(shù)據(jù)分別加密,以得到密文Rel、密文 Re2,然后將密文Rel、密文Re2組合為一個(gè)代碼串ReS,再對(duì)代碼串ReS加密,以得到 密文Retext,(9)先將重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者之 中兩者組合為一個(gè)代碼串S,接著對(duì)代碼串S加密以生成密文Rel,將前述三者之中沒有 參與構(gòu)成代碼串S的這個(gè)數(shù)據(jù)和密文Rel組合為一個(gè)代碼串ReS,再對(duì)代碼串ReS加密,以得到密文Retext,(10)先將重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random 這三者組合為一個(gè)代碼串S,然后對(duì)代碼串S加密,以得到密文Retext,(11)先對(duì)重要 明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者之一進(jìn)行加密,以得到密文 Rel,后將前述三者之中尚沒被加密的另外兩者和密文Rel組合為一個(gè)代碼串S,然后對(duì) 代碼串S加密,以得到密文Retext,(12)先對(duì)重要明文Text、用戶身份信息UserID和隨 機(jī)密鑰Random這三者之一進(jìn)行加密,以得到密文Rel,接著將前述三者之中尚沒被加密 的另外兩者之一和密文Rel組合為一個(gè)代碼串S,對(duì)代碼串S加密,以得到密文Re2,然 后將前述三者之中尚沒被加密的這個(gè)數(shù)據(jù)和密文Re2組合為一個(gè)代碼串ReS,再對(duì)代碼 串ReS加密,以得到密文Retext,(13)將重要明文Text、用戶身份信息UserID和隨機(jī)密 鑰Random這三者中的代碼相互插入,并分割為多個(gè)(含兩個(gè))新的代碼串Si、代碼串
S2........分別用不同的加密算法加密代碼串Si、代碼串S2........以得到密文Rel、密
文Re2、......,將密文Rel、密文Re2、......組合為一個(gè)代碼串SS,再對(duì)代碼串SS加密,
以得到密文Retext。所述密文Retext,不僅包含對(duì)重要明文Text加密后生成的信息,也包含對(duì)用戶 身份信息UserID和隨機(jī)密鑰Random加密后生成的信息即密碼識(shí)別信息PassID,并且無 論如何編寫解密程序,解密時(shí)在輸入用戶身份信息UserID的條件下,都需要用窮舉法或 采用密碼分析和窮舉攻擊相結(jié)合的方法尋找隨機(jī)密鑰Random,才能確保正確解密密文 ReText,以釋放重要明文Text,所述加密強(qiáng)度取決于加密用戶身份信息UserID和隨機(jī)密鑰Random后所生成的 密碼識(shí)別信息PassID,解密時(shí),只有先完成對(duì)密碼識(shí)別信息PassID的解密,才能保證 對(duì)密文Retext進(jìn)行正確解密,以釋放重要明文Text,并且解密時(shí),在確認(rèn)用戶身份信息 UserID和隨機(jī)密鑰Random都正確后,從密文Retext中解出重要明文Text的計(jì)算量相對(duì) 總計(jì)算量而言往往非常小。因此,所述加密強(qiáng)度也等于對(duì)重要明文Text進(jìn)行加密的加密 強(qiáng)度并且是下列其中之一隨機(jī)長(zhǎng)度、解密的平均計(jì)算量、解密的最大計(jì)算量、解密的 平均計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大 倍數(shù)、解密的平均計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)單 次解密時(shí)計(jì)算量的放大倍數(shù)、解密的平均嘗試解密次數(shù)、解密的最多嘗試解密次數(shù)、在 預(yù)定速度機(jī)器上的平均解密時(shí)間、在預(yù)定速度機(jī)器上的最長(zhǎng)解密時(shí)間,所述輸入用戶身份信息UserID和加密強(qiáng)度,是指按照以下八種順序之一輸入 ①先輸入用戶身份信息UserlD,后輸入加密強(qiáng)度,②先輸入加密強(qiáng)度,并在產(chǎn)生隨機(jī) 密鑰Random之前,輸入用戶身份信息UserlD,③先輸入加密強(qiáng)度,并在產(chǎn)生隨機(jī)密鑰 Random之后,輸入用戶身份信息UserlD,④在輸入用戶身份信息UserID的過程中,輸 入加密強(qiáng)度,并在產(chǎn)生隨機(jī)密鑰Random之前,完成輸入用戶身份信息UserID,⑤在輸入 用戶身份信息UserID的過程中,輸入加密強(qiáng)度,并在產(chǎn)生隨機(jī)密鑰Random之后,完成 輸入用戶身份信息UserlD,⑥由用戶決定用戶身份信息UserID和加密強(qiáng)度這兩者的先后 輸入順序,⑦用兩個(gè)進(jìn)程輸入用戶身份信息UserlD,并用其中一個(gè)進(jìn)程輸入加密強(qiáng)度, ⑧用兩個(gè)線程輸入用戶身份信息UserlD,并用其中一個(gè)線程輸入加密強(qiáng)度,為了標(biāo)明密文Retext的所有者等必要屬性,密碼系統(tǒng)往往給重要明文Text賦予 一個(gè)識(shí)別標(biāo)志TextID,密碼系統(tǒng)在生成密文Retext的過程中,將識(shí)別標(biāo)志TextID備份在用于保存密文Retext的相關(guān)存儲(chǔ)空間,并且其中所述識(shí)別標(biāo)志TextID是由下列信息中的 一種或多種構(gòu)成隨機(jī)數(shù)據(jù)、版本號(hào)、重要明文Text的建立和修改時(shí)間,所述用于保存 密文Retext的相關(guān)存儲(chǔ)空間是是指以下五者之一①保存密文Retext的空間,②保存密 文Retext這個(gè)文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志TextID的文件或空間, ⑤用于保存隨機(jī)長(zhǎng)度Long和識(shí)別標(biāo)志TextID這兩者的文件或空間,當(dāng)本發(fā)明應(yīng)用于云中的重要明文托管服務(wù)時(shí),上面所述用戶身份信息UserlD, 不僅包括終端用戶或終端系統(tǒng)輸入的終端用戶身份信息End-UserlD,還包括重要明文 托管服務(wù)商的云給終端用戶分配的托管方密鑰,并且,加密重要明文Text的過程中,重 要明文托管服務(wù)商的云產(chǎn)生一個(gè)托管方密鑰,使用終端用戶的公鑰加密托管方密鑰后, 將這個(gè)已加密的托管方密鑰發(fā)送給終端用戶計(jì)算機(jī),終端用戶計(jì)算機(jī)利用私鑰對(duì)收到的 密文解密,以得到托管方密鑰,然后使用托管方密鑰參與對(duì)重要明文Text及其密文的加 密,加密完成后,終端用戶計(jì)算機(jī)將密文Retext發(fā)送給重要明文托管服務(wù)商的云進(jìn)行保 存,解密密文Retext時(shí),終端用戶輸入終端用戶身份信息End-UserID后,終端用戶計(jì)算 機(jī)利用重要明文托管服務(wù)商的云公鑰加密終端用戶身份信息End-UserlD,并將已加密的 終端用戶身份信息End-UserID發(fā)送給重要明文托管服務(wù)商的云,云利用私鑰對(duì)收到的密 文解密,以得到終端用戶身份信息End-UserlD,云提取并解密已加密的托管方密鑰,以 得到托管方密鑰,然后,云利用托管方密鑰和終端用戶身份信息End-UserlD,采用窮舉 法解密密文Retext,以得到重要明文Text,云利用終端用戶的公鑰加密重要明文Text,并 將已加密的重要明文Text發(fā)送給終端用戶,終端用戶用私鑰對(duì)已加密的重要明文Text解 密,以得到重要明文Text,當(dāng)然解密密文Retext時(shí),也可在重要明文托管服務(wù)商的云驗(yàn)證 終端用戶提交的請(qǐng)求發(fā)送密文Retext信息正確后,云將密文Retext和托管方密鑰發(fā)送給終 端用戶計(jì)算機(jī),由終端用戶在自己的計(jì)算機(jī)上輸入終端用戶身份信息End-UserlD,利用 終端用戶身份信息End-UserID和托管方密鑰對(duì)密文Retext解密,以得到重要明文Text。 另外,解密密文Retext時(shí),還可由終端用戶選擇在第三方計(jì)算機(jī)上完成解密。在終端用 戶將密文Retext發(fā)送給重要明文托管服務(wù)商的云時(shí),可以用云公鑰再次對(duì)密文Retext加密 然后發(fā)送,也可不用云公鑰加密直接發(fā)送,在重要明文托管服務(wù)商的云將密文Retext發(fā) 送給終端用戶時(shí),可以用終端用戶公鑰再次對(duì)密文Retext加密然后發(fā)送,也可不用終端 用戶公鑰加密直接發(fā)送。本發(fā)明還可具有一些其他的特征如①用戶在帶命令按鈕的圖形交互界面上, 輸入用戶身份信息UserID和加密強(qiáng)度,②驗(yàn)證用戶的合法性,只有通過驗(yàn)證的用戶才能 完成對(duì)重要明文Text的加密。為便于說明,下面將采用本發(fā)明來備份關(guān)鍵密碼、證書的文件保密系統(tǒng)(包括 加密系統(tǒng)和解密系統(tǒng))簡(jiǎn)稱為FKSS ;采用本發(fā)明來備份和恢復(fù)的私鑰KeyText就是利用 本發(fā)明中加密方法來保護(hù)的重要明文;將私鑰KeyText用本發(fā)明中的加密方法加密后生 成私鑰KeyText的經(jīng)加密的備份稱為ReCome(在生成ReCome后,F(xiàn)KSS中仍保留私鑰 KeyText);將除私鑰KeyText以外的等待FKSS加密的文件或信息稱為明文MessFile ;將 明文MessFile被FKSS加密后生成的密文稱為BeMF。FKSS加密明文MessFile時(shí),若采用 對(duì)稱加密算法,則用私鑰KeyText加密明文MessFile,若采用非對(duì)稱加密算法,用與私鑰 KeyText配對(duì)的公鑰加密明文MessFile,由于對(duì)明文MessFile加密并非本發(fā)明的重點(diǎn),因此后面的實(shí)施例中在涉及“FKSS加密明文MessFile得到密文BeMF”這步時(shí),不提用何 種密鑰加密。為了快速識(shí)別,F(xiàn)KSS給私鑰KeyText產(chǎn)生一個(gè)識(shí)別標(biāo)志KeylD,備份私鑰 KeyText生成ReCome時(shí)FKSS將KeyID備份到用于保存密文的相關(guān)空間作為ReCome的識(shí) 別標(biāo)志,加密明文MessFile時(shí)FKSS從即將用于保存密文的相關(guān)空間讀取備份的KeylD, 并根據(jù)該KeyID與當(dāng)前用戶的KeyID是否一致,來判斷當(dāng)前用戶的私鑰KeyText是否已有 備份ReCome。通常,F(xiàn)KSS備份KeyID時(shí)采用復(fù)制的方式進(jìn)行,當(dāng)然也可采用某種算法 保存KeyID的加密副本。本文推薦KeyID由FKSS的版本號(hào)、私鑰KeyText的修改時(shí)間 和隨機(jī)數(shù)據(jù)這三者共同組成,當(dāng)然不排除KeyID由其他數(shù)據(jù)構(gòu)成。參見圖1,本發(fā)明第一個(gè)實(shí)施例,其加密流程如下A加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,B在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則結(jié)束; 若沒找到,則執(zhí)行C,C輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的長(zhǎng)度、加密強(qiáng)度和 預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的長(zhǎng)度Long,產(chǎn)生長(zhǎng)度為L(zhǎng)ong的隨機(jī) 密鑰 Random,D利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利 用排序產(chǎn)生的序號(hào)代碼重排代碼串UR中各代碼的位置,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào) 整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,E利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串KP,F利用排序產(chǎn)生的序號(hào)代碼重排代碼串KP中各代碼的位置,利用隨著加密 進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText 的經(jīng)加密的備份ReCome,G將隨機(jī)密鑰的長(zhǎng)度Long和私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰 KeyText的經(jīng)加密的備份ReCome中,H將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相
關(guān)存儲(chǔ)空間中,結(jié)束。參見圖2,本發(fā)明第二個(gè)實(shí)施例,其加密流程如下A判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行B;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存, 然后執(zhí)行C,B在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行
H;若沒找到,則執(zhí)行C,C輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的長(zhǎng)度、加密強(qiáng)度和 預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的長(zhǎng)度Long,產(chǎn)生長(zhǎng)度為L(zhǎng)ong的隨機(jī) 密鑰 Random,
D利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利 用排序產(chǎn)生的序號(hào)代碼重排代碼串UR中各代碼的位置,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào) 整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,E利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串KP,F利用排序產(chǎn)生的序號(hào)代碼重排代碼串KP中各代碼的位置,利用隨著加密 進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText 的經(jīng)加密的備份ReCome,G將隨機(jī)密鑰的長(zhǎng)度Long和私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰 KeyText的經(jīng)加密的備份ReCome中,H將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相
關(guān)存儲(chǔ)空間中,I加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,結(jié)束。參見圖3,本發(fā)明第三個(gè)實(shí)施例,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存, 然后執(zhí)行5,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具 有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行
4;若沒找到,則執(zhí)行5,4加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,然后結(jié)束本進(jìn)程,5增加一個(gè)加密備份私鑰KeyText的進(jìn)程PKey,進(jìn)程PKey執(zhí)行6,原
進(jìn)程執(zhí)行4,6進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密 強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中 當(dāng)前用戶的用戶身份信息,7檢測(cè)用戶命令,如果用戶輸入的命令是確認(rèn),則執(zhí)行8,如果用戶輸 入的命令是退出,則結(jié)束本進(jìn)程,8進(jìn)程PKey判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行9,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行10,9進(jìn)程PKey判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收 用戶輸入的用戶身份信息UserlD,然后執(zhí)行10,若無效,則向6中要顯示的圖 形界面發(fā)送出錯(cuò)提示信息,并執(zhí)行6,
410進(jìn)程PKey將384字節(jié)的隨機(jī)數(shù)據(jù)復(fù)制到數(shù)列ID的前384字節(jié)上,進(jìn)程 PKey產(chǎn)生長(zhǎng)度為384字節(jié)的隨機(jī)數(shù)列P,利用私鑰KeyText產(chǎn)生具有384個(gè)整數(shù)的數(shù)列 IS,將數(shù)列IS按照從小到大的順序排列,并將數(shù)列IS中的數(shù)據(jù)在排序后的位置序號(hào)記錄 到由 ir
,ir[l], ir[2], ir[3], ir[4], ...,ir[i],...構(gòu)成的整數(shù)數(shù)列 IR 中。用一個(gè)循環(huán)
計(jì)算d[i] = d[i]Ap[ir[i]]/*...0<i < 384...V/*...這里對(duì)隨機(jī)數(shù)據(jù)進(jìn)行處理,是為了破壞偽隨機(jī)的周期性,以便后面將這些 數(shù)據(jù)用作隨機(jī)密鑰,其中ir[i]表示數(shù)列IS中原位置序號(hào)為i的整數(shù)在排序后,被放在序 號(hào)為ir[i]的位置,d[i]、p[i]分別表示數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),本文用
“λ”、“/”、“%”、分別表示異或、整除、取模......V11從數(shù)列ID中字節(jié)位置序號(hào)為383的位置開始,向前將用戶身份信息 UserID覆蓋到數(shù)列ID中,并將數(shù)列ID的前128個(gè)字節(jié)信息作為一個(gè)大整數(shù)x,用一個(gè)循 環(huán)計(jì)算(x/K[i]) % 256并將計(jì)算結(jié)果添加在數(shù)列ID后面,/*......添加后,數(shù)列ID已有512字節(jié)的數(shù)據(jù),K[i]為大于65536的質(zhì)數(shù),Od
< 128,這是因?yàn)楹竺嬉捎门判蛩a(chǎn)生的位置序號(hào)代碼來加密,用這種加密方法處理密 碼識(shí)別信息時(shí),可能存在錯(cuò)誤通過比對(duì)的情況,為了防止這種情況的出現(xiàn),通過計(jì)算(χ/ K[i]) % 256并將結(jié)果保存在數(shù)列ID后面,記錄大整數(shù)χ的一些特征,以便在通過對(duì)用戶 身份信息UserID和隨機(jī)密鑰Randomr的驗(yàn)證后,用大整數(shù)χ的一些特征來進(jìn)一步驗(yàn)證, 以保證密鑰驗(yàn)證的可靠性。.........V根據(jù)隨機(jī)密鑰的長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨 機(jī)密鑰的長(zhǎng)度Long,在數(shù)列ID中從用戶身份信息UserID之前的位置開始,向前讀取 Long位的數(shù)據(jù)作為隨機(jī)密鑰Random,/*...這里要求用戶身份信息UserID和隨機(jī)密鑰Random總長(zhǎng)度不超過384X8比 特,如果超過,要調(diào)整數(shù)列ID的長(zhǎng)度...V12進(jìn)程PKey從數(shù)列ID中序號(hào)為128的字節(jié)開始,向后復(fù)制128個(gè)字節(jié)到 數(shù)列P中,將數(shù)列P復(fù)制到數(shù)列S,按照從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并 將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列R中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的 位置,...V用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]]Ar[i]/*...利用排序產(chǎn)生的序號(hào)代碼重排代碼位置,并作異或運(yùn)算(0<i < 128)......"用一個(gè)循環(huán),計(jì)算d[2Xi] = d[2 Xi]As[2 Xi]/*...0<i < 64...*/d[2 Xi+1] = ((d[2 Xi+l]+s[2 Xi+1]) % 256) /*...0<i < 64...*//*......即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID首部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列
S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),......V13進(jìn)程PKey將數(shù)列S復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],...,r[i],...構(gòu)成的整數(shù)數(shù)列R中。/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的 位置,...V用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]]Ar[i] /*... (0<i < 128)..."用一個(gè)循環(huán),計(jì)算d[2Xi] = d[2Xi]As[2Xi-256]/*...128<i < 192...*/d[2Xi+l] = (d[2Xi+l]-s[2Xi-255]+256) % 256 /*...128<i < 192...*//*......即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID中后部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)
列S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),......V14進(jìn)程PKey將數(shù)列ID的最后128個(gè)字節(jié)信息復(fù)制到數(shù)列P中,將數(shù)列P 復(fù)制數(shù)列S,按照從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在 排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4], ...,r[i],...構(gòu)成的整數(shù)數(shù)列R 中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的 位置,...V用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]]Ar[i]計(jì)算d[i] = d[i]As[i]/*...即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID首部數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列S、
數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),0盜<128......V15進(jìn)程PKey將數(shù)列S復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列S中各字 節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],...,r[i],...構(gòu)成的整數(shù)數(shù)列R中,/*......其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]
的位置,...V用一個(gè)循環(huán),計(jì)算s[i] = p[r[i]]Ar[i]/*...0<i < 128...V計(jì)算d[i] = d[i]As[i-128]/*...128<i < 256...V/*...即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID中前部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)
列S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù)...V16進(jìn)程PKey將數(shù)列ID中字節(jié)序號(hào)為奇數(shù)的數(shù)據(jù)都向前移兩位,并將移出 的信息添加到前一個(gè)字節(jié)序號(hào)為奇數(shù)的數(shù)據(jù)尾部,將第二個(gè)字節(jié)數(shù)據(jù)移出的信息添加在 最后一個(gè)字節(jié)數(shù)據(jù)的尾部,將數(shù)列ID中字節(jié)序號(hào)為偶數(shù)的數(shù)據(jù)都向后移一位,并將移出的信息添加到后一 個(gè)字節(jié)序號(hào)為偶數(shù)的數(shù)據(jù)的首部,將倒數(shù)第二個(gè)字節(jié)數(shù)據(jù)移出的信息添加在第一個(gè)字節(jié) 數(shù)據(jù)的首部,/*......字節(jié)序號(hào)從 0 開始......V用一個(gè)循環(huán),計(jì)算,
q[4Xi+2] = d[i]/*...0<i < 128...Vq[i+(i+l)/3] = d[ir[i]+128]A(ir[i] % 256) /*...0<i < 384...*//*...............即用步驟10中所產(chǎn)生的序號(hào)代碼數(shù)列IR的數(shù)據(jù)加密數(shù)列ID中
部及后部的信息,并將結(jié)果保存在數(shù)列Q中,前述d[i]、q[i]分別表示數(shù)列ID、數(shù)列Q中 字節(jié)序號(hào)為i的數(shù)據(jù),數(shù)列ir[i]表示數(shù)列IR中序號(hào)為i的整數(shù)數(shù)據(jù),...V將數(shù)列Q的前256字節(jié)數(shù)據(jù)按序復(fù)制到數(shù)列ID中字節(jié)序號(hào)為偶數(shù)的字節(jié)上,將 數(shù)列Q中后256字節(jié)數(shù)據(jù)復(fù)制到數(shù)列ID中字節(jié)序號(hào)為奇數(shù)的字節(jié)上,17進(jìn)程PKey產(chǎn)生一個(gè)由516個(gè)字節(jié)構(gòu)成的隨機(jī)數(shù)列,并將該數(shù)列復(fù)制到數(shù) 列S中,采用某種算法利用隨機(jī)密鑰Random和用戶身份信息UserID派生一個(gè)由516字節(jié) 構(gòu)成的數(shù)列,并將該數(shù)列復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列P中各字節(jié)數(shù)據(jù), 并將數(shù)列P中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列R中,用一個(gè)循環(huán)計(jì)算,p[i] = s[r[i]]Ar[i]/*...S[i]、p[i]分別表示數(shù)列S、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),0盜<516,這一 步用于破壞偽隨機(jī)的周期性,其中r[i]表示數(shù)列P中原位置序號(hào)為i的數(shù)據(jù)在排序后,被 放在序號(hào)為r[i]的位置。......V18進(jìn)程PKey將數(shù)列P前512個(gè)字節(jié)復(fù)制到數(shù)列S,按照從大到小的順序排 列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
, r[l], r[2], r[3], r[4], ...,r[i],...構(gòu)成的整數(shù)數(shù)列 R 中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的數(shù)據(jù)在排序后,被放在序號(hào)為r[i]的 位置。.........V用一個(gè)循環(huán),將d[r[i]]復(fù)制到 q[i] /^...0<i < 512...*/將p[r[i]+4]復(fù)制到 s[i]/*...0<i < 512...V/*...,q[i]、s[i]> d[i]、p[i]分別表示數(shù)列Q、數(shù)列S、數(shù)列ID、數(shù)列P中字節(jié) 序號(hào)為i的數(shù)據(jù),......V19進(jìn)程PKey設(shè)置v = 0,
用一個(gè)循環(huán)加密數(shù)列ID ν = ((i+5) (p[i/2]) (1+5). (i+4) (p[i/2+l])(1+4). (i+3) (p[i/2+2]) (1+3).......+ (i/2+1)
(p[i+4])(l/2+1)) % (2563)+v/256 /*...0<i < 512... Vd[i] = q[i]A(v% 256)/*...0<i < 512...*//*............其中v為定義的變量,取變量ν最后一個(gè)字節(jié)中信息給數(shù)列ID中的信
息加密,d[i]、p[i]、q[i]分別表示數(shù)列ID、數(shù)列P、數(shù)列Q中字節(jié)序號(hào)為i的數(shù)據(jù)......V20進(jìn)程PKey產(chǎn)生一個(gè)由2048個(gè)字節(jié)構(gòu)成的隨機(jī)數(shù)列,并將該數(shù)列復(fù)制到 數(shù)列Q前2048個(gè)字節(jié)中,將私鑰KeyText轉(zhuǎn)變?yōu)橐粋€(gè)字符串KTs,從數(shù)列Q的第2048字 節(jié)開始向前覆蓋,將字符串KTs復(fù)制在數(shù)列Q的前2048字節(jié)內(nèi),從數(shù)列Q的第2049字 節(jié)開始,向后將數(shù)列ID中前512字節(jié)中數(shù)據(jù)添加在Q的尾部,21進(jìn)程PKey從數(shù)列ID第一個(gè)字節(jié)開始,將數(shù)列P復(fù)制到數(shù)列ID上,按照 從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由 r
,r[l],r[2],r[3],r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列 R 中,/*...其中r[i]表示數(shù)列S中原位置序號(hào)為i的數(shù)據(jù)在排序后,被放在序號(hào)為r[i]的 位置。......V用一個(gè)循環(huán)計(jì)算/*...d[i]、q[i]分別表示數(shù)列ID、數(shù)列Q中字節(jié)序號(hào)為i的數(shù)據(jù),......V22進(jìn)程PKey將隨機(jī)密鑰Random在前、用戶身份信息UserID在后,兩者連
接在一起,構(gòu)成一個(gè)長(zhǎng)為η位的二進(jìn)制數(shù)列RU,將數(shù)列ID中前(n/4-ll)字節(jié)中的奇數(shù) 位的信息復(fù)制添加到數(shù)列RU的尾部,從數(shù)列ID第(n/4-ΙΟ)個(gè)字節(jié)開始,將數(shù)列ID中字節(jié)數(shù)據(jù)添加到數(shù)列RU的尾 部,直到數(shù)列RU的長(zhǎng)度為3080X8位,設(shè)置ν = 0用一個(gè)循環(huán)加密數(shù)列ID ν = ((i + 5) (u[i/2]) (1+5)+(i + 4) (u [i / 2 + 1 ]) (l+4) + (i +3) (u[i/2 + 2]) G+3) + ...+ (i/2+l) (u[i+4]) (l/2+1)+iX (u[i % ((n+7)/8)])(1 %64)) % (2563) +v/256 /*...0<i < 3076...Vd[i] = d[i]A(v% 256)/*...0<i < 3076...*//*............d[i]、u[i]表示數(shù)列ID、數(shù)列中字節(jié)序號(hào)為i的數(shù)據(jù),η >8X8,η為隨
機(jī)密鑰Random和用戶身份信息UserID的比特?cái)?shù)之和,這里可能導(dǎo)致加密計(jì)算量過大, 若如此,可將上式適當(dāng)修改,......V23進(jìn)程PKey將隨機(jī)密鑰Random的長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志 KeyID插入數(shù)列ID中,然后將數(shù)列ID作為私鑰KeyText的經(jīng)加密的備份ReCome,保存
在存儲(chǔ)盤Disk中用于保存密文BeMF的相關(guān)存儲(chǔ)空間,結(jié)束本進(jìn)程。參見圖3,本發(fā)明第四個(gè)實(shí)施例,其加密流程如下1用戶向FKSS請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2FKSS判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別 標(biāo)志KeylD,然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保
存,然后執(zhí)行5,3FKSS在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰 KeyText具有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到, 則執(zhí)行4;若沒找到,則執(zhí)行5,4FKSS加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志 KeyID插入密文BeMF中,然后結(jié)束本進(jìn)程,5FKSS增加一個(gè)進(jìn)程,該進(jìn)程和原進(jìn)程兩者之中的一個(gè)進(jìn)程PKey執(zhí)行6,另一個(gè)進(jìn)程執(zhí)行4, d[516+iX5] = q[r[i] X 5]
0<i < 512.., *...0<i < 512 *...0<i < 512 *...0<i < 512 *...0<i < 512d[516+iX5+l] = q[r[i]X5+l]d[516+iX5+2] = q[r[i] X 5+2]d[516+iX5+3] = q[r[i] X 5+3]d[516+iX 5+4] = q[r[i] X 5+4]
6進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用FKSS默認(rèn) 的加密強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用 系統(tǒng)中當(dāng)前用戶的用戶身份信息,7檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行8,如果用戶輸 入的命令是退出,則結(jié)束本進(jìn)程,8進(jìn)程PKey判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行9,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行10,9進(jìn)程PKey判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收 用戶輸入的用戶身份信息UserlD,然后執(zhí)行10,若無效,則向6中要顯示的圖 形界面發(fā)送出錯(cuò)提示信息,并執(zhí)行6,10進(jìn)程PKey根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三 者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰 Random,[11]進(jìn)程PKey利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼 串UR,利用排序產(chǎn)生的序號(hào)代碼重排代碼串UR中各代碼的位置,利用隨著加密進(jìn)程增 加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR生成用于在解密時(shí)識(shí)別用戶身 份信息UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,12進(jìn)程PKey提取私鑰KeyText,并利用提取到的私鑰KeyText與密碼識(shí)別 信息PassID派生一個(gè)代碼串KP,13進(jìn)程PKey利用排序產(chǎn)生的序號(hào)代碼重排代碼串KP中各代碼的位置,利 用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私 鑰KeyText的經(jīng)加密的備份ReCome,14進(jìn)程PKey將隨機(jī)密鑰Random的隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo) 志KeyID插入私鑰KeyText的經(jīng)加密的備份ReCome中,15進(jìn)程PKey將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文
BeMF的相關(guān)存儲(chǔ)空間,結(jié)束本進(jìn)程。參見圖4-A和圖4-B,本發(fā)明第四個(gè)實(shí)施例,其解密流程如下1用戶向FKSS請(qǐng)求對(duì)存儲(chǔ)盤Disk中的密文BeMF解密,2用當(dāng)前用戶的私鑰KeyText解密密文BeMF,以得到明文MessFile,若解 密成功,則解密結(jié)束;若解密失敗或當(dāng)前用戶的私鑰KeyText不存在,則執(zhí)行下一步,3在電腦各存儲(chǔ)盤中,尋找與密文BeMF具有相互吻合識(shí)別標(biāo)志KeyID的私 鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行7;若沒找到,則執(zhí)行4,/*......識(shí)別標(biāo)志KeyID中的版本號(hào)可以不相同.........V4顯示一個(gè)帶命令按鈕的圖形交互界面,在該界面上提示電腦中找不到解密 密文BeMF的私鑰KeyText及其備份,提示選擇退出解密或?qū)⑺借€備份移動(dòng)盤連接到電腦 繼續(xù)解密,
45檢測(cè)移動(dòng)盤變更情況和用戶命令,如果檢測(cè)到有剛連接的移動(dòng)盤,則執(zhí)行6,如果系統(tǒng)檢測(cè)到用戶輸入退出命令,則結(jié)束,6在剛連接的移動(dòng)盤中,尋找與密文BeMF具有相互吻合識(shí)別標(biāo)志KeyID 的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行7;若沒找到,則執(zhí)行
4,7依據(jù)私鑰KeyText的經(jīng)加密的備份ReCome中的識(shí)別標(biāo)志KeyID中的版本 號(hào),判斷FKSS能否給私鑰KeyText的經(jīng)加密的備份ReCome解密,若能,則執(zhí)行8,
若不能,則提示用戶FKSS版本陳舊不能解密,并啟動(dòng)更新程序或結(jié)束,8調(diào)用相應(yīng)的解密私鑰KeyText的經(jīng)加密的備份ReCome的程序(下面的步 驟參見圖4-B,針對(duì)本實(shí)施例加密中所產(chǎn)生的私鑰KeyText的經(jīng)加密的備份ReCome的解 密程序步驟如下),9定義隨機(jī)密鑰變量TryPass,從備份密文ReCome中,提取隨機(jī)密鑰 Random的隨機(jī)長(zhǎng)度Long10顯示一個(gè)帶命令按鈕的圖形交互界面,提供輸入用戶身份信息的編輯 框,提示用戶輸入用戶身份信息;11檢測(cè)用戶命令,如果用戶輸入確認(rèn),則執(zhí)行12,如果用戶輸入退 出,則結(jié)束,12判斷用戶是否輸入用來解密私鑰KeyText的經(jīng)加密的備份ReCome的用 戶身份信息,若輸入,則將輸入的用戶身份信息存放在字符串ID中,然后執(zhí)行13, 若沒輸入,則FKSS則從系統(tǒng)中提取當(dāng)前用戶的用戶身份信息,并將該信息存放在字符串 ID中,然后執(zhí)行13,13將TryPass歸O (即將TryPass占用空間的內(nèi)容都設(shè)為0),14利用隨著解密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來解密私 鑰KeyText的經(jīng)加密的備份ReCome,以釋放代碼串KP,利用排序產(chǎn)生的序號(hào)代碼,將代 碼串KP中各代碼的位置復(fù)原,15從代碼串KP提取密碼識(shí)別信息PassID,16利用隨著解密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來解密密 碼識(shí)別信息PassID,以釋放代碼串UR,利用排序產(chǎn)生的序號(hào)代碼,將代碼串UR中各代 碼的位置復(fù)原,17從代碼串UR提取用戶身份信息UserID和隨機(jī)密鑰Random,18將從代碼串UR提取的用戶身份信息UserID與字符串ID進(jìn)行比對(duì),將從 代碼串UR提取的隨機(jī)密鑰Random與程序枚舉的隨機(jī)密鑰TryPass進(jìn)行比對(duì),若用戶身 份信息的比對(duì)和隨機(jī)密鑰的比對(duì)都一致,則執(zhí)行21,否則執(zhí)行19。19將 TryPass 力口 1,/*......這里通過特定的程序?qū)ryPass的前Long位數(shù)據(jù)看作一個(gè)非負(fù)整數(shù),并
用加1這種算法使TryPass更新,從而列出一個(gè)新的隨機(jī)密鑰。本文假設(shè)TryPass的第一 位為前端,且低位在前高位在后。這個(gè)窮舉循環(huán)包括14至20這七步。當(dāng)然使 TryPass更新的方法多種多樣的,例如將TryPass減1等等...........V
20判斷TryPass的第Long+l位是否為1,若是,則向10中要顯示的圖 形界面發(fā)送用戶身份信息錯(cuò)誤的消息,并執(zhí)行10;若不是,則執(zhí)行14,21從代碼串KP提取私鑰KeyText,并用該私鑰KeyText解密密文BeMF, 以得到明文MessFile,解密結(jié)束。參見圖5,本發(fā)明第五個(gè)實(shí)施例,其加密流程如下1用戶向FKSS請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2FKSS加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志 KeyID插入密文BeMF中,3FKSS在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰 KeyText具有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到, 則結(jié)束;若沒找到,則執(zhí)行4,4進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用FKSS默認(rèn) 的加密強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用 系統(tǒng)中當(dāng)前用戶的用戶身份信息,5檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行6,如果用戶輸 入的命令是退出,則結(jié)束,6FKSS判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行7;若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行8,7FKSS判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶 輸入的用戶身份信息UserlD,然后執(zhí)行8,若無效,則向4中要顯示的圖形界面 發(fā)送出錯(cuò)提示信息,并執(zhí)行4,8FKSS根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間 的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰Random,9FKSS利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR, 利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào) 整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,10FKSS提取私鑰KeyText,并將提取到的私鑰KeyText與密碼識(shí)別信息 PassID派生一個(gè)代碼串KP,11FKSS利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨 著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰 KeyText的經(jīng)加密的備份ReCome,12FKSS將隨機(jī)密鑰Random的隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志 KeyID插入私鑰KeyText的經(jīng)加密的備份ReCome中,13FKSS將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF
的相關(guān)存儲(chǔ)空間,結(jié)束。
參見圖6,本發(fā)明第六個(gè)實(shí)施例,其加密流程如下1用戶向FKSS請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存,
然后執(zhí)行4,3FKSS在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰 KeyText具有相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到, 則執(zhí)行14;若沒找到,則執(zhí)行4,4進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型 的選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提 供輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用FKSS默認(rèn) 的加密強(qiáng)度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用 系統(tǒng)中當(dāng)前用戶的用戶身份信息,5檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行6,如果用戶輸 入的命令是退出,則執(zhí)行14,6FKSS判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行7,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行8,7FKSS判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶 輸入的用戶身份信息UserlD,然后執(zhí)行8,若無效,則向4中要顯示的圖形界面 發(fā)送出錯(cuò)提示信息,并執(zhí)行4,8FKSS根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間 的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰Random,9FKSS利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR, 利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào) 整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息 UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,10FKSS提取私鑰KeyText,并利用提取到的私鑰KeyText與密碼識(shí)別信息 PassID派生一個(gè)代碼串KP,11FKSS利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨 著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰 KeyText的經(jīng)加密的備份ReCome,12FKSS將隨機(jī)密鑰Random的隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志 KeyID插入私鑰KeyText的經(jīng)加密的備份ReCome中,13FKSS將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF
的相關(guān)存儲(chǔ)空間,14FKSS加密明文MessFile,以得到密文BeMF,并將私鑰KeyText的識(shí)別 標(biāo)志KeyID插入密文BeMF中,然后結(jié)束。在上述各實(shí)施例中ReCome里被本發(fā)明中的加密方法加密生成的信息,在正常情況下不需要解密,只有在FKSS中現(xiàn)有的私鑰KeyText不能解密BeMF時(shí)才需要解密, 用于挽救被加密的數(shù)據(jù)。實(shí)際上ReCome需要全部解密使用的頻率很低,因此我們可以 通過調(diào)整隨機(jī)長(zhǎng)度,使FKSS在用戶身份信息正確的情況下,將ReCome全部解密的平均 計(jì)算量相對(duì)加密時(shí)的計(jì)算量放大很多倍。當(dāng)然FKSS在設(shè)置隨機(jī)長(zhǎng)度時(shí),可以加密機(jī)器的 速度為依據(jù),在用戶身份信息正確的情況下,將ReCome全部解密的平均解密時(shí)間設(shè)為1 分鐘、1小時(shí)、1天、1周甚至更長(zhǎng),當(dāng)然不排除使用其他設(shè)置方式??梢砸远喾N方法來實(shí)現(xiàn)本發(fā)明的實(shí)施例,包括寫在計(jì)算機(jī)可讀記錄介質(zhì)上的計(jì) 算機(jī)可讀代碼。計(jì)算機(jī)可讀記錄介質(zhì)可以是任意類型的記錄設(shè)備,在其中數(shù)據(jù)以計(jì)算機(jī) 可讀形式存儲(chǔ)。計(jì)算機(jī)可讀記錄介質(zhì)包括、但不局限于ROM、RAM、CD-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í)行。這種加密方法不僅可應(yīng)用于單個(gè)計(jì)算機(jī)系 統(tǒng)中,也可應(yīng)用到重要明文托管服務(wù)商的云系統(tǒng)中。另外,實(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ā)明的加密方法可以自動(dòng)或根據(jù)需要調(diào)整加密強(qiáng)度。根據(jù)本發(fā)明的加密 方法可用于加密私鑰、證書等重要文件信息的備份生成高度安全的密文。根據(jù)本發(fā)明的 加密方法生成的密文可以對(duì)付各種高性能的破解機(jī)器。
5權(quán)利要求
1. 一種加密方法,其加密流程如下I輸入用戶身份信息UserID和加密強(qiáng)度,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和 預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密 鑰 Random,II采用預(yù)定算法,利用用戶身份信息UserID和隨機(jī)密鑰Random,加密要保密的 重要明文Text以得到密文ReText,其中,所述隨機(jī)長(zhǎng)度Long是由下列之一或多個(gè)構(gòu)成隨機(jī)密鑰的長(zhǎng)度、隨機(jī)密鑰的變動(dòng)范 圍、隨機(jī)密鑰中單元的長(zhǎng)度、隨機(jī)密鑰中單元的變動(dòng)范圍,所述隨機(jī)密鑰Random既是對(duì)重要明文Text加密的密鑰的一部分,又是對(duì)密文Retext 解密的密鑰的一部分,所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、混淆、擴(kuò)散、迭 代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分組加密、流密碼 加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加密、偽隨機(jī)加密算 法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加密的算法、利用排 序所產(chǎn)生的序號(hào)代碼加密的算法,所述利用用戶身份信息UserID和隨機(jī)密鑰Random,是指除了利用包含用戶身份信 息UserID和隨機(jī)密鑰Random這兩者本身外,還包括利用下列信息中的一種或多種由 用戶身份信息UserID衍生的信息、由隨機(jī)密鑰Random衍生的信息、隨機(jī)數(shù)、由隨機(jī)數(shù) 衍生的信息、重要明文Text、由重要明文Text衍生的信息、由用戶身份信息UserlD、隨 機(jī)密鑰Random、隨機(jī)數(shù)和重要明文Text這四者之中兩者共同衍生的信息、由用戶身份信 EUserID,隨機(jī)密鑰Random、隨機(jī)數(shù)和重要明文Text這四者之中三者共同衍生的信息, 由用戶身份信息UserlD、隨機(jī)密鑰Random、隨機(jī)數(shù)和重要明文Text這四者共同衍生的信 息?所述重要明文Text是指下列信息中的一種或多種私鑰、證書、個(gè)人隱私、商業(yè)機(jī) 密、企事業(yè)單位機(jī)密、計(jì)算機(jī)安全信息,所述加密要保密的重要明文Text以得到密文Retext,就是對(duì)重要明文Text、用戶身份 信息UserID和隨機(jī)密鑰Random這三者加密的過程,所述密文Retext,不僅包含對(duì)重要明文Text加密后生成的信息,也包含對(duì)用戶身份信 息UserID和隨機(jī)密鑰Random加密后生成的信息即密碼識(shí)別信息PassID,并且無論如何 編寫解密程序,解密時(shí)在輸入用戶身份信息UserID的條件下,都需要用窮舉法或采用密 碼分析和窮舉攻擊相結(jié)合的方法尋找隨機(jī)密鑰Random,才能確保正確解密密文ReText, 以釋放重要明文Text,所述加密強(qiáng)度取決于加密用戶身份信息UserID和隨機(jī)密鑰Random后所生成的密碼 識(shí)別信息PassID,解密時(shí),只有先完成對(duì)密碼識(shí)別信息PassID的解密,才能保證對(duì)密文 Retext進(jìn)行正確解密,以釋放重要明文Text,并且解密時(shí),在確認(rèn)用戶身份信息UserID 和隨機(jī)密鑰Random都正確后,從密文Retext中解出重要明文Text的計(jì)算量相對(duì)總計(jì)算量 而言往往非常小。因此,所述加密強(qiáng)度也等于對(duì)重要明文Text進(jìn)行加密的加密強(qiáng)度并且 是下列其中之一隨機(jī)長(zhǎng)度、解密的平均計(jì)算量、解密的最大計(jì)算量、解密的平均計(jì)算 量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的平均計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)單次解密時(shí) 計(jì)算量的放大倍數(shù)、解密的平均嘗試解密次數(shù)、解密的最多嘗試解密次數(shù)、在預(yù)定速度 機(jī)器上的平均解密時(shí)間、在預(yù)定速度機(jī)器上的最長(zhǎng)解密時(shí)間。
2.根據(jù)權(quán)利要求1所述加密方法,其中,所述輸入用戶身份信息UserID和加密強(qiáng)度,是指按照以下八種順序之一輸入① 先輸入用戶身份信息UserlD,后輸入加密強(qiáng)度,②先輸入加密強(qiáng)度,并在產(chǎn)生隨機(jī)密 鑰Random之前,輸入用戶身份信息UserlD,③先輸入加密強(qiáng)度,并在產(chǎn)生隨機(jī)密鑰 Random之后,輸入用戶身份信息UserlD,④在輸入用戶身份信息UserID的過程中,輸 入加密強(qiáng)度,并在產(chǎn)生隨機(jī)密鑰Random之前,完成輸入用戶身份信息UserID,⑤在輸入 用戶身份信息UserID的過程中,輸入加密強(qiáng)度,并在產(chǎn)生隨機(jī)密鑰Random之后,完成 輸入用戶身份信息UserlD,⑥由用戶決定用戶身份信息UserID和加密強(qiáng)度這兩者的先后 輸入順序,⑦用兩個(gè)進(jìn)程輸入用戶身份信息UserlD,并用其中一個(gè)進(jìn)程輸入加密強(qiáng)度, ⑧用兩個(gè)線程輸入用戶身份信息UserlD,并用其中一個(gè)線程輸入加密強(qiáng)度,所述隨機(jī)長(zhǎng)度Long,以密文或明文的形式保存在用于保存密文Retext的相關(guān)存儲(chǔ)空 間,并且所述用于保存密文Retext的相關(guān)存儲(chǔ)空間是指以下五者之一①保存密文Retext 的空間,②保存密文Retext這個(gè)文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存隨機(jī)長(zhǎng)度Long 的文件或空間,⑤用于保存隨機(jī)長(zhǎng)度Long和識(shí)別標(biāo)志TextID這兩者的文件或空間,所述隨機(jī)密鑰Random是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī)信息、 系統(tǒng)產(chǎn)生的偽隨機(jī)信息、利用用戶身份信息UserID對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法 干預(yù)后得到的信息、利用內(nèi)存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后 得到的信息、利用時(shí)鐘數(shù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信息,并且 所述系統(tǒng)是指密碼系統(tǒng)或操作系統(tǒng),所述對(duì)重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者加密的過 程,是指下列13種過程之一(1)對(duì)重要明文Text、用戶身份信息UserID和隨機(jī)密鑰 Random分別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、密文Re2、密文Re3,然后將密文 ReU密文Re2、密文Re3組合為一個(gè)密文Retext,(2)對(duì)重要明文Text、用戶身份信息 UserID和隨機(jī)密鑰Random分別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、密文Re2、密 文Re3,將密文Rel、密文Re2和密文Re3這三者之中的兩者組合為一個(gè)代碼串S,并對(duì) 代碼串S加密,以得到密文Re4,之后將密文Rel、密文Re2和密文Re3這三者之中沒有 參與構(gòu)成代碼串S的這個(gè)密文和密文Re4組合為一個(gè)密文Retext,(3)對(duì)重要明文Text、 用戶身份信息UserID和隨機(jī)密鑰Random分別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、 密文Re2、密文Re3,將密文Rel、密文Re2和密文Re3這三者之中的兩者組合為一個(gè)代 碼串S,并對(duì)代碼串S加密,以得到密文Re4,之后將密文Rel、密文Re2和密文Re3這 三者之中沒有參與構(gòu)成代碼串S的這個(gè)密文和密文Re4組合為一個(gè)代碼串ReS,接著再對(duì) 代碼串ReS加密,以得到密文Retext,(4)對(duì)重要明文Text、用戶身份信息UserID和隨 機(jī)密鑰Random分別進(jìn)行加密,以得到這三者對(duì)應(yīng)的密文Rel、密文Re2、密文Re3,然 后將密文Rel、密文Re2、密文Re3組合為一個(gè)代碼串S,并對(duì)代碼串S加密,以得到密 文Retext,(5)先對(duì)重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者之一 進(jìn)行加密,以得到密文Rel,后將前述三者之中尚沒被加密的另外兩者組合為一個(gè)代碼串S,對(duì)代碼串S加密,以得到密文Re2,然后將密文Rel、密文Re2組合為一個(gè)密文,以得 到密文Retext,(6)先對(duì)重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者 之一進(jìn)行加密,以得到密文Rel,后將前述三者之中尚沒被加密的另外兩者組合為一個(gè)代 碼串S,對(duì)代碼串S加密,以得到密文Re2,然后將密文Rel、密文Re2組合為一個(gè)代碼 串ReS,再對(duì)代碼串ReS加密,以得到密文Retext,(7)先將重要明文Text、用戶身份信 息UserID和隨機(jī)密鑰Random這三者之中兩者組合為一個(gè)代碼串S,后對(duì)代碼串S和前述 三者之中沒有參與構(gòu)成代碼串S的這個(gè)數(shù)據(jù)分別加密,以得到密文Rel、密文Re2,然后 將密文Rel、密文Re2組合為一個(gè)密文,以得到密文Retext,(8)先將重要明文Text、用 戶身份信息UserID和隨機(jī)密鑰Random這三者之中兩者組合為一個(gè)代碼串S,后對(duì)代碼 串S和前述三者之中沒有參與構(gòu)成代碼串S的這個(gè)數(shù)據(jù)分別加密,以得到密文Rel、密文 Re2,然后將密文Rel、密文Re2組合為一個(gè)代碼串ReS,再對(duì)代碼串ReS加密,以得到 密文Retext,(9)先將重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者之 中兩者組合為一個(gè)代碼串S,接著對(duì)代碼串S加密以生成密文Rel,將前述三者之中沒有 參與構(gòu)成代碼串S的這個(gè)數(shù)據(jù)和密文Rel組合為一個(gè)代碼串ReS,再對(duì)代碼串ReS加密, 以得到密文Retext,(10)先將重要明文Text、用戶身份信息UserID和隨機(jī)密鑰Random 這三者組合為一個(gè)代碼串S,然后對(duì)代碼串S加密,以得到密文Retext,(11)先對(duì)重要 明文Text、用戶身份信息UserID和隨機(jī)密鑰Random這三者之一進(jìn)行加密,以得到密文 Rel,后將前述三者之中尚沒被加密的另外兩者和密文Rel組合為一個(gè)代碼串S,然后對(duì) 代碼串S加密,以得到密文Retext,(12)先對(duì)重要明文Text、用戶身份信息UserID和隨 機(jī)密鑰Random這三者之一進(jìn)行加密,以得到密文Rel,接著將前述三者之中尚沒被加密 的另外兩者之一和密文Rel組合為一個(gè)代碼串S,對(duì)代碼串S加密,以得到密文Re2,然 后將前述三者之中尚沒被加密的這個(gè)數(shù)據(jù)和密文Re2組合為一個(gè)代碼串ReS,再對(duì)代碼 串ReS加密,以得到密文Retext,(13)將重要明文Text、用戶身份信息UserID和隨機(jī)密 鑰Random這三者中的代碼相互插入,并分割為多個(gè)(含兩個(gè))新的代碼串Si、代碼串S2........分別用不同的加密算法加密代碼串Si、代碼串S2........以得到密文Rel、密文Re2、......,將密文Rel、密文Re2、......組合為一個(gè)代碼串SS,再對(duì)代碼串SS加密,以得到密文Retext。
3.根據(jù)權(quán)利要求2所述加密方法,其特征是所述用戶身份信息UserlD,不僅包括 終端用戶或終端系統(tǒng)輸入的終端用戶身份信息End-UserlD,還包括重要明文托管服務(wù)商 的云給終端用戶分配的托管方密鑰,并且,在完成對(duì)重要明文Text加密之前,重要明文托管服務(wù)商的云產(chǎn)生一個(gè)托管方密鑰, 使用終端用戶的公鑰加密托管方密鑰后,將這個(gè)已加密的托管方密鑰發(fā)送給終端用戶計(jì) 算機(jī),終端用戶計(jì)算機(jī)利用私鑰對(duì)收到的密文解密,以得到托管方密鑰,然后使用托管 方密鑰參與對(duì)重要明文Text及其密文的加密,加密完成后,終端用戶計(jì)算機(jī)將密文Retext 發(fā)送給重要明文托管服務(wù)商的云進(jìn)行保存。
4.根據(jù)權(quán)利要求3所述加密方法,其特征是在終端用戶計(jì)算機(jī)對(duì)重要明文Text加 密生成密文Retext后,再利用重要明文托管服務(wù)商的云公鑰加密密文Retext,然后將已被 云公鑰加密的密文Retext發(fā)送給重要明文托管服務(wù)商的云。
5.根據(jù)權(quán)利要求1或2或3或4所述加密方法,其特征是將重要明文Text的識(shí)別標(biāo)志TextID備份在用于保存密文Retext的相關(guān)存儲(chǔ)空間中,并且所述將重要明文Text的 識(shí)別標(biāo)志TextID備份在用于保存密文Retext的相關(guān)存儲(chǔ)空間,是指將重要明文Text的識(shí) 別標(biāo)志TextID備份在以下五者之一①保存密文Retext的空間,②保存密文Retext這個(gè) 文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志TextID的文件或空間,⑤用于保存隨 機(jī)長(zhǎng)度Long和識(shí)別標(biāo)志TextID這兩者的文件或空間所述識(shí)別標(biāo)志TextID是由下列信息中的一種或多種構(gòu)成隨機(jī)數(shù)據(jù)、版本號(hào)、重要 明文Text的建立和修改時(shí)間。
6.根據(jù)權(quán)利要求1或2或3或4或5所述加密方法,其特征是驗(yàn)證用戶的合法性, 只有通過驗(yàn)證的用戶才能完成對(duì)重要明文Text的加密。
7.—種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志KeylD, 然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存,然后執(zhí)行5,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具有相 互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行4; 若沒找到,則執(zhí)行5,4加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID插入 密文BeMF中,然后結(jié)束本進(jìn)程,5增加一個(gè)加密備份私鑰KeyText的進(jìn)程PKey,進(jìn)程PKey執(zhí)行6,原進(jìn)程 執(zhí)行4,6進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型的選 項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提供輸 入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密強(qiáng) 度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中當(dāng) 前用戶的用戶身份信息,7檢測(cè)用戶命令,如果用戶輸入的命令是確認(rèn),則執(zhí)行8,如果用戶輸入的 命令是退出,則結(jié)束本進(jìn)程,8進(jìn)程PKey判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行9,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行10,9進(jìn)程PKey判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶 輸入的用戶身份信息UserlD,然后執(zhí)行10,若無效,則向6中要顯示的圖形界 面發(fā)送出錯(cuò)提示信息,并執(zhí)行6,10進(jìn)程PKey將384字節(jié)的隨機(jī)數(shù)據(jù)復(fù)制到數(shù)列ID的前384字節(jié)上,進(jìn)程PKey 產(chǎn)生長(zhǎng)度為384字節(jié)的隨機(jī)數(shù)列P,利用私鑰KeyText產(chǎn)生具有384個(gè)整數(shù)的數(shù)列IS, 將數(shù)列IS按照從小到大的順序排列,并將數(shù)列IS中的數(shù)據(jù)在排序后的位置序號(hào)記錄到由 ir
, ir[l], ir[2], ir[3], ir[4], ...,ir[i],...構(gòu)成的整數(shù)數(shù)列 IR 中。用一個(gè)循環(huán)計(jì)算 d[i] = d[i]Ap[ir[i]] /*...0<i < 384 ...V/*...這里對(duì)隨機(jī)數(shù)據(jù)進(jìn)行處理,是為了破壞偽隨機(jī)的周期性,以便后面將這些數(shù)據(jù) 用作隨機(jī)密鑰,其中ir[i]表示數(shù)列IS中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為 ir[i]的位置,d[i]、p[i]分別表示數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),本文用“Λ”、 “/”、、分別表示異或、整除、取模......V11從數(shù)列ID中字節(jié)位置序號(hào)為383的位置開始,向前將用戶身份信息UserID 覆蓋到數(shù)列ID中,并將數(shù)列ID的前128個(gè)字節(jié)信息作為一個(gè)大整數(shù)X,用一個(gè)循環(huán)計(jì)算 (x/K[i]) % 256并將計(jì)算結(jié)果添加在數(shù)列ID后面,/*......添加后,數(shù)列ID已有512字節(jié)的數(shù)據(jù),K[i]為大于65536的質(zhì)數(shù),Od <128,這是因?yàn)楹竺嬉捎门判蛩a(chǎn)生的位置序號(hào)代碼來加密,用這種加密方法處理密碼識(shí) 別信息時(shí),可能存在錯(cuò)誤通過比對(duì)的情況,為了防止這種情況的出現(xiàn),通過計(jì)算(χ/ K[i]) % 256并將結(jié)果保存在數(shù)列ID后面,記錄大整數(shù)χ的一些特征,以便在通過對(duì)用戶 身份信息UserID和隨機(jī)密鑰Randomr的驗(yàn)證后,用大整數(shù)χ的一些特征來進(jìn)一步驗(yàn)證, 以保證密鑰驗(yàn)證的可靠性。.........V根據(jù)隨機(jī)密鑰的長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密 鑰的長(zhǎng)度Long,在數(shù)列ID中從用戶身份信息UserID之前的位置開始,向前讀取Long位 的數(shù)據(jù)作為隨機(jī)密鑰Random,/*...這里要求用戶身份信息UserID和隨機(jī)密鑰Random總長(zhǎng)度不超過384X8比特, 如果超過,要調(diào)整數(shù)列ID的長(zhǎng)度...V12進(jìn)程PKey從數(shù)列ID中序號(hào)為128的字節(jié)開始,向后復(fù)制128個(gè)字節(jié)到數(shù)列P 中,將數(shù)列P復(fù)制到數(shù)列S,按照從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S 中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4], ...,r[i],...構(gòu) 成的整數(shù)數(shù)列R中,Λ...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的位 , …用一個(gè)循環(huán),計(jì)算 s[i] = p[r[i]]Ar[i]Λ...利用排序產(chǎn)生的序號(hào)代碼重排代碼位置,并作異或運(yùn)算(04 < 128) ......V用一個(gè)循環(huán),計(jì)算d[2Xi] = d[2Xi]As[2Xi] /*...0<i < 64 ...*/d[2Xi+l] = ((d[2Xi+l]+s[2Xi+l]) % 256) /*...0<i < 64 ..."/*......即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID首部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),......V13進(jìn)程PKey將數(shù)列S復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列S中各字 節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],...,r[i],...構(gòu)成的整數(shù)數(shù)列R中。Λ...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的位 , …用一個(gè)循環(huán),計(jì)算 s[i] = p[r[i]]Ar[i] Λ... (0<i < 128)..."用一個(gè)循環(huán),計(jì)算d[2Xi] = d[2Xi]As[2Xi-256] /*...128<i < 192...Vd[2Xi+l] = (d[2Xi+l]-s[2Xi-255]+256) % 256/*...128<i < 192...*//*......即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID中后部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),......V14進(jìn)程PKey將數(shù)列ID的最后128個(gè)字節(jié)信息復(fù)制到數(shù)列P中,將數(shù)列P復(fù)制 數(shù)列S,按照從大到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序 后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4], ...,r[i],...構(gòu)成的整數(shù)數(shù)列R中, Λ...其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的位,用一個(gè)循環(huán), 計(jì)算 s[i] = p[r[i]]Ar[i] 計(jì)算 d[i] = d[i]As[i]/*...即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID首部數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列S、數(shù)列 ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),Od < 128 ......V15進(jìn)程PKey將數(shù)列S復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列S中各字 節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],...,r[i],...構(gòu)成的整數(shù)數(shù)列R中,/*......其中r[i]表示數(shù)列S中原位置序號(hào)為i的整數(shù)在排序后,被放在序號(hào)為r[i]的位,用一個(gè)循環(huán),計(jì)算 s[i] = p[r[i]]Ar[i] /*...0<i < 128...V 計(jì)算 d[i] = d[i]As[i-128] /*...128<i < 256...*//*...即用數(shù)列S中數(shù)據(jù)加密數(shù)列ID中前部的數(shù)據(jù),s[i]、d[i]、p[i]分別表示數(shù)列S、 數(shù)列ID、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù)...V16進(jìn)程PKey將數(shù)列ID中字節(jié)序號(hào)為奇數(shù)的數(shù)據(jù)都向前移兩位,并將移出的信 息添加到前一個(gè)字節(jié)序號(hào)為奇數(shù)的數(shù)據(jù)尾部,將第二個(gè)字節(jié)數(shù)據(jù)移出的信息添加在最后 一個(gè)字節(jié)數(shù)據(jù)的尾部,將數(shù)列ID中字節(jié)序號(hào)為偶數(shù)的數(shù)據(jù)都向后移一位,并將移出的信息添加到后一個(gè)字 節(jié)序號(hào)為偶數(shù)的數(shù)據(jù)的首部,將倒數(shù)第二個(gè)字節(jié)數(shù)據(jù)移出的信息添加在第一個(gè)字節(jié)數(shù)據(jù) 的首部,/*......字節(jié)序號(hào)從0開始......V用一個(gè)循環(huán),計(jì)算,q[4Xi+2] = d[i] /*... 0<i < 128...Vq[i+(i+l)/3] = d[ir[i]+128]A(ir[i]% 256)/*...0<i < 384...*//*...............即用步驟10中所產(chǎn)生的序號(hào)代碼數(shù)列IR的數(shù)據(jù)加密數(shù)列ID中部及后部的信息,并將結(jié)果保存在數(shù)列Q中,前述d[i]、q[i]分別表示數(shù)列ID、數(shù)列Q中字節(jié) 序號(hào)為i的數(shù)據(jù),數(shù)列ir[i]表示數(shù)列IR中序號(hào)為i的整數(shù)數(shù)據(jù),...V將數(shù)列Q的前256字節(jié)數(shù)據(jù)按序復(fù)制到數(shù)列ID中字節(jié)序號(hào)為偶數(shù)的字節(jié)上,將數(shù)列 Q中后256字節(jié)數(shù)據(jù)復(fù)制到數(shù)列ID中字節(jié)序號(hào)為奇數(shù)的字節(jié)上,17進(jìn)程PKey產(chǎn)生一個(gè)由516個(gè)字節(jié)構(gòu)成的隨機(jī)數(shù)列,并將該數(shù)列復(fù)制到數(shù)列S中,采用某種算法利用隨機(jī)密鑰Random和用戶身份信息UserID派生一個(gè)由516字節(jié)構(gòu) 成的數(shù)列,并將該數(shù)列復(fù)制到數(shù)列P,按照從大到小的順序排列數(shù)列P中各字節(jié)數(shù)據(jù),并 將數(shù)列P中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2], r[3], r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列R中, 用一個(gè)循環(huán)計(jì)算, p[i] = s[r[i]]-r[i]/*...s[i]、p[i]分別表示數(shù)列S、數(shù)列P中字節(jié)序號(hào)為i的數(shù)據(jù),Od <516,這一步用 于破壞偽隨機(jī)的周期性,其中r[i]表示數(shù)列P中原位置序號(hào)為i的數(shù)據(jù)在排序后,被放在 序號(hào)為r[i]的位置。......V18進(jìn)程PKey將數(shù)列P前512個(gè)字節(jié)復(fù)制到數(shù)列S,按照從大到小的順序排列數(shù) 列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄到由r
,r[l], r[2],r[3],r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列 R 中,Λ...其中r[i]表示數(shù)列S中原位置序號(hào)為i的數(shù)據(jù)在排序后,被放在序號(hào)為r[i]的位 置?!璙用一個(gè)循環(huán),將 d[r[i]]復(fù)制到 q[i] /^...0<i < 512...V將 p[r[i]+4]復(fù)制至Ij s[i] /*...0<i < 512...V /*...,q[i]、s[i]、d[i]、p[i]分別表示數(shù)列Q、數(shù)列S、數(shù)列ID、數(shù)列P中字節(jié)序號(hào) 為i的數(shù)據(jù),......V19進(jìn)程PKey設(shè)置ν = 0, 用一個(gè)循環(huán)加密數(shù)列ID ν = ((i+5) (p[i/2]) (l+5)+(i+4) (p[i/2+l]) (l+4)+(i+3) (p[i/2+2])(1+3).......+ (i/2+1) (p[i+4])(l/2+1)) % (2563)+v/256 /*...0<0 < 512...*/d[i] = q[i]A(v% 256)/*...0<i< 512...V/*............其中ν為定義的變量,取變量ν最后一個(gè)字節(jié)中信息給數(shù)列ID中的信息加密,d[i]、p[i]、q[i]分別表示數(shù)列ID、數(shù)列P、數(shù)列Q中字節(jié)序號(hào)為i的數(shù)據(jù)......V20進(jìn)程PKey產(chǎn)生一個(gè)由2048個(gè)字節(jié)構(gòu)成的隨機(jī)數(shù)列,并將該數(shù)列復(fù)制到數(shù)列 Q前2048個(gè)字節(jié)中,將私鑰KeyText轉(zhuǎn)變?yōu)橐粋€(gè)字符串KTs,從數(shù)列Q的第2048字節(jié)開 始向前覆蓋,將字符串KTs復(fù)制在數(shù)列Q的前2048字節(jié)內(nèi),從數(shù)列Q的第2049字節(jié)開 始,向后將數(shù)列ID中前512字節(jié)中數(shù)據(jù)添加在Q的尾部,21進(jìn)程PKey從數(shù)列ID第一個(gè)字節(jié)開始,將數(shù)列P復(fù)制到數(shù)列ID上,按照從大 到小的順序排列數(shù)列S中各字節(jié)數(shù)據(jù),并將數(shù)列S中的字節(jié)數(shù)據(jù)在排序后的位置序號(hào)記錄 到由 r
,r[l],r[2],r[3],r[4],..., r[i],...構(gòu)成的整數(shù)數(shù)列 R 中,Λ...其中r[i]表示數(shù)列S中原位置序號(hào)為i的數(shù)據(jù)在排序后,被放在序號(hào)為r[i]的位 置?!璙用一個(gè)循環(huán)計(jì)算d[516+iX5] = q[r[i]X5] /*...0<i < 512...V d[516+iX5+l] = q[r[i]X5+l] /*...0<i < 512...V d[516+iX5+2] = q[r[i] X 5+2] /*...0<i < 512...V d[516+iX5+3] = q[r[i] X 5+3] /*...0<i < 512...V
8.—種加密方法,其加密流程如下I輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度 和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度為 Long的隨機(jī)密鑰Random,II利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利用排序 所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的 多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和 隨機(jī)密鑰Random的密碼識(shí)別信息PassID,III利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串KP,IV利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn)程增 加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText的經(jīng)加 密的備份ReCome,V將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加密 的備份ReCome中。
9.一種加密方法,其加密流程如下A加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID插入 密文BeMF中,B在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具有相 互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則結(jié)束;若沒 找到,則執(zhí)行C,C輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度為 Long的隨機(jī)密鑰Random,D利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利用排序 所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的 多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和 隨機(jī)密鑰Random的密碼識(shí)別信息PassID,Ε利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串ΚΡ,F利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串ΚΡ,利用隨著加密進(jìn)程增 加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串ΚΡ,以生成私鑰KeyText的經(jīng)加 密的備份ReCome,G將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加密 的備份ReCome中,H將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相關(guān)存 儲(chǔ)空間,結(jié)束。
10.一種加密方法,其加密流程如下A判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志 KeyID,然后執(zhí)行B;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存, 然后執(zhí)行C,B在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具有相 互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行I; 若沒找到,則執(zhí)行C,C輸入加密強(qiáng)度和用戶身份信息UserlD,根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度 和預(yù)定解密程序速度三者之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,產(chǎn)生隨機(jī)長(zhǎng)度為 Long的隨機(jī)密鑰Random,D利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利用排序 所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的 多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和 隨機(jī)密鑰Random的密碼識(shí)別信息PassID,Ε利用私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串ΚΡ,F利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串ΚΡ,利用隨著加密進(jìn)程增 加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串ΚΡ,以生成私鑰KeyText的經(jīng)加 密的備份ReCome,G將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加密 的備份ReCome中,H將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,I加密明文MessFile以得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID插 入密文BeMF中,結(jié)束。
11.根據(jù)權(quán)利要求7所述的加密方法,其特征是其中,所述進(jìn)程PKey將隨機(jī)密鑰Random的長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入數(shù)列ID中,被修改為將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空 間,將私鑰KeyText的識(shí)別標(biāo)志KeyID備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,并 且,所述將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將隨機(jī)長(zhǎng) 度Long保存在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome這個(gè)文 件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存隨機(jī)長(zhǎng)度Long的文件或空間,⑤用于保存隨機(jī)長(zhǎng) 度Long和識(shí)別標(biāo)志TextID這兩者的文件或空間;所述將私鑰KeyText的識(shí)別標(biāo)志KeyID 備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將私鑰KeyText的識(shí)別標(biāo)志KeyID備 份在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome這個(gè)文件屬性的空 間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志KeyID的文件或空間,⑤用于保存隨機(jī)長(zhǎng)度Long和 識(shí)別標(biāo)志KeyID這兩者的文件或空間,所述加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID插入密 文BeMF中,被修改為加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo) 志KeyID備份在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,并且,所述用于保存密文BeMF的 相關(guān)存儲(chǔ)空間,是指以下四者之一①保存密文BeMF的空間,②保存密文BeMF文件屬 性的空間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志KeyID的文件或空間。
12. —種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志KeylD, 然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存,然后執(zhí)行5,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具有相 互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行4; 若沒找到,則執(zhí)行5,4加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID插入 密文BeMF中,然后結(jié)束本進(jìn)程,5增加一個(gè)進(jìn)程,該進(jìn)程和原進(jìn)程兩者之中的一個(gè)進(jìn)程PKey執(zhí)行6,另一個(gè) 進(jìn)程執(zhí)行4,6進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型的 選項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提供 輸入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密強(qiáng) 度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中當(dāng) 前用戶的用戶身份信息,7檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行8,如果用戶輸入的 命令是退出,則結(jié)束本進(jìn)程,8進(jìn)程PKey判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息 UserID,若輸入,則執(zhí)行9,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后 執(zhí)行10,9進(jìn)程PKey判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶輸入的用戶身份信 息UserlD,然后執(zhí)行10,若無效,則向6中要顯示的圖形界 面發(fā)送出錯(cuò)提示信息,并執(zhí)行6,10進(jìn)程PKey根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間 的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰Random,[11]進(jìn)程PKey利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串 UR,利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng) 數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身 份信息UserID和隨機(jī)密鑰Random的密碼識(shí)別信息PassID,12進(jìn)程PKey提取私鑰KeyText,并利用提取到的私鑰KeyText與密碼識(shí)別信息 PassID派生一個(gè)代碼串KP,13進(jìn)程PKey利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨 著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰 KeyText的經(jīng)加密的備份ReCome,14進(jìn)程PKey將隨機(jī)長(zhǎng)度Long、私鑰Key Text的識(shí)別標(biāo)志KeyID插入私鑰Key Text 的經(jīng)加密的備份ReCome中,15進(jìn)程PKey將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF 的相關(guān)存儲(chǔ)空間,結(jié)束本進(jìn)程。
13. —種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2加密明文MessFile得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID插入 密文BeMF中,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具有相 互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則結(jié)束;若沒 找到,則執(zhí)行4,4進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型的選 項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提供輸 入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密強(qiáng) 度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中當(dāng) 前用戶的用戶身份信息,5檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行6,如果用戶輸入的 命令是退出,則結(jié)束,6判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息UserlD,若輸 入,則執(zhí)行7;若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后執(zhí)行8,7判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶輸入的用戶 身份信息UserlD,然后執(zhí)行8,若無效,則向4中要顯示的圖形界面發(fā)送出錯(cuò)提 示信息,并執(zhí)行4,8根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì) 算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰Random,9利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的 多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和 隨機(jī)密鑰Random的密碼識(shí)別信息PassID,10提取私鑰KeyText,并將提取到的私鑰KeyText與密碼識(shí)別信息PassID派生一 個(gè)代碼串KP,11利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn)程增 加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText的經(jīng)加 密的備份ReCome,12將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加 密的備份ReCome中,13將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,結(jié)束。
14. 一種加密方法,其加密流程如下1用戶請(qǐng)求對(duì)存儲(chǔ)盤Disk中的文件加密,2判斷私鑰KeyText是否存在,若存在,則提取私鑰KeyText的識(shí)別標(biāo)志KeylD, 然后執(zhí)行3;若不存在,則產(chǎn)生私鑰KeyText及其識(shí)別標(biāo)志KeyID并保存,然后執(zhí)行4,3在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,尋找與當(dāng)前用戶私鑰KeyText具有 相互吻合識(shí)別標(biāo)志KeyID的私鑰KeyText的經(jīng)加密的備份ReCome,若找到,則執(zhí)行14;若沒找到,則執(zhí)行4,4進(jìn)程PKey在一個(gè)帶命令按鈕的圖形交互界面上,提供選擇加密強(qiáng)度類型的選 項(xiàng),提供輸入加密強(qiáng)度數(shù)值的編輯框及調(diào)整該框內(nèi)數(shù)值的上下箭頭或其它控件,提供輸 入用戶身份信息UserID的編輯框,提示用戶輸入加密強(qiáng)度或不輸入采用默認(rèn)的加密強(qiáng) 度,提示用戶輸入加密私鑰KeyText備份的用戶身份信息UserID或不輸入采用系統(tǒng)中當(dāng) 前用戶的用戶身份信息,5檢測(cè)用戶命令。如果用戶輸入的命令是確認(rèn),則執(zhí)行6,如果用戶輸入的 命令是退出,則執(zhí)行14,6判斷用戶是否輸入用來加密私鑰KeyText備份的用戶身份信息UserlD,若輸 入,則執(zhí)行7,若沒有輸入,則從系統(tǒng)提取用戶身份信息UserlD,然后執(zhí)行8,7判斷用戶輸入的用戶身份信息UserID是否有效,若有效則接收用戶輸入的用戶 身份信息UserlD,然后執(zhí)行8,若無效,則向4中要顯示的圖形界面發(fā)送出錯(cuò)提 示信息,并執(zhí)行4,8根據(jù)隨機(jī)密鑰的隨機(jī)長(zhǎng)度、加密強(qiáng)度和預(yù)定解密程序速度三者之間的關(guān)系,計(jì) 算隨機(jī)密鑰的隨機(jī)長(zhǎng)度Long,并產(chǎn)生隨機(jī)長(zhǎng)度為L(zhǎng)ong的隨機(jī)密鑰Random,9利用用戶身份信息UserID和隨機(jī)密鑰Random派生一個(gè)代碼串UR,利用排序 所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的 多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,以生成用于在解密時(shí)識(shí)別用戶身份信息UserID和 隨機(jī)密鑰Random的密碼識(shí)別信息PassID,10提取私鑰KeyText,并利用提取到的私鑰KeyText與密碼識(shí)別信息PassID派生一個(gè)代碼串KP,11利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn)程增 加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,以生成私鑰KeyText的經(jīng)加 密的備份ReCome,12將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加 密的備份ReCome中,13將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,14加密明文MessFile,以得到密文BeMF,并將私鑰KeyText的識(shí)別標(biāo)志KeyID 插入密文BeMF中,然后結(jié)束。
15.根據(jù)權(quán)利要求8或9或10或12或13或14所述的加密方法,其中,所述備份ReCome,其特征是任何針對(duì)備份ReCome的解密程序都需要采用窮舉法或 采用窮舉法與密碼分析技術(shù)相結(jié)合的方法尋找隨機(jī)密鑰,不僅需要對(duì)解密時(shí)輸入的用戶 身份信息與解密過程中釋放的用戶身份信息進(jìn)行比對(duì),還需要對(duì)窮舉循環(huán)枚舉的隨機(jī)密 鑰與解密過程中釋放的隨機(jī)密鑰進(jìn)行比對(duì),只有在前述兩種密鑰的比對(duì)都一致后,才能 保證對(duì)私鑰KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,所述加密強(qiáng)度取決于加密用戶身份信息UserID和隨機(jī)密鑰Random后所生成的密碼 識(shí)別信息PassID,解密時(shí),只有先完成對(duì)密碼識(shí)別信息PassID的解密,才能保證對(duì)私鑰 KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,并且解密時(shí),在 確認(rèn)用戶身份信息UserID和隨機(jī)密鑰Random都正確后,從私鑰KeyText的經(jīng)加密的備份 ReCome中解出私鑰KeyText的計(jì)算量相對(duì)總計(jì)算量而言往往非常小。因此,所述加密強(qiáng) 度也等于對(duì)私鑰KeyText進(jìn)行加密的加密強(qiáng)度并且是下列其中之一隨機(jī)長(zhǎng)度、解密的 平均計(jì)算量、解密的最大計(jì)算量、解密的平均計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解 密的最大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的平均計(jì)算量相對(duì)單次解密時(shí)計(jì)算 量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密的平均嘗試 解密次數(shù)、解密的最多嘗試解密次數(shù)、在預(yù)定速度機(jī)器上的平均解密時(shí)間、在預(yù)定速度 機(jī)器上的最長(zhǎng)解密時(shí)間,所述隨機(jī)密鑰是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī)信息、系統(tǒng)產(chǎn)生 的偽隨機(jī)信息、利用用戶身份信息UserID對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得 到的信息、利用內(nèi)存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信 息、利用時(shí)鐘數(shù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信息,并且所述系統(tǒng) 是指密碼系統(tǒng)或操作系統(tǒng)。所述插入是指將一個(gè)代碼串作為一個(gè)單位或拆分為多個(gè)單位添加到另一個(gè)代碼串中 某一個(gè)或多個(gè)位置構(gòu)成一個(gè)新代碼串的動(dòng)作,并且插入位置不局限于代碼串里的位置, 也可以添加在代碼串的首尾兩端。
16.根據(jù)權(quán)利要求9或10或12或13或14所述的加密方法,其特征是其中, 所述利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,被修改為采用預(yù)定算法加 密代碼串UR,并且所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、混淆、擴(kuò)散、迭代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分組 加密、流密碼加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加密、 偽隨機(jī)加密算法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加密的 算法、利用排序所產(chǎn)生的序號(hào)代碼加密的算法,所述利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn)程增加 項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,被修改為采用預(yù)定算法加密 代碼串KP,并且所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、混 淆、擴(kuò)散、迭代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分組 加密、流密碼加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加密、 偽隨機(jī)加密算法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加密的 算法、利用排序所產(chǎn)生的序號(hào)代碼加密的算法,所述將私鑰KeyText的識(shí)別標(biāo)志KeyID插入密文BeMF中,被修改為將私鑰 KeyText的識(shí)別標(biāo)志KeyID備份在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,并且所述將私 鑰KeyText的識(shí)別標(biāo)志KeyID備份在用于保存密文BeMF的相關(guān)存儲(chǔ)空間,是指將私鑰 KeyText的識(shí)別標(biāo)志KeyID備份在以下四者之一①保存密文BeMF的空間,②保存密文 BeMF文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志KeyID的文件或空間,所述將私鑰KeyText的經(jīng)加密的備份ReCome保存在用于保存密文BeMF的相關(guān)存儲(chǔ) 空間,是指將私鑰KeyText的經(jīng)加密的備份ReCome保存在以下四者之一①保存密文 BeMF的空間,②保存密文BeMF文件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存?zhèn)浞軷eCome 的文件或空間,所述將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加密的 備份ReCome中,被修改為將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ) 空間,將私鑰KeyText的識(shí)別標(biāo)志KeyID備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間, 并且所述將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將隨機(jī)長(zhǎng) 度Long保存在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome這個(gè)文 件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存隨機(jī)長(zhǎng)度Long的文件或空間,⑤用于保存隨機(jī)長(zhǎng) 度Long和識(shí)別標(biāo)志KeyID這兩者的文件或空間;所述將私鑰KeyText的識(shí)別標(biāo)志KeyID 備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將私鑰KeyText的識(shí)別標(biāo)志KeyID備 份在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome這個(gè)文件屬性的空 間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志KeyID的文件或空間,⑤用于保存隨機(jī)長(zhǎng)度Long和 識(shí)別標(biāo)志KeyID這兩者的文件或空間,所述備份ReCome,其特征是任何針對(duì)備份ReCome的解密程序都需要采用窮舉法或 采用窮舉法與密碼分析技術(shù)相結(jié)合的方法尋找隨機(jī)密鑰,不僅需要對(duì)解密時(shí)輸入的用戶 身份信息與解密過程中釋放的用戶身份信息進(jìn)行比對(duì),還需要對(duì)窮舉循環(huán)枚舉的隨機(jī)密 鑰與解密過程中釋放的隨機(jī)密鑰進(jìn)行比對(duì),只有在前述兩種密鑰的比對(duì)都一致后,才能 保證對(duì)私鑰KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,所述加密強(qiáng)度取決于加密用戶身份信息UserID和隨機(jī)密鑰Random后所生成的密碼 識(shí)別信息PassID,解密時(shí),只有先完成對(duì)密碼識(shí)別信息PassID的解密,才能保證對(duì)私鑰 KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,并且解密時(shí),在確認(rèn)用戶身份信息UserID和隨機(jī)密鑰Random都正確后,從私鑰KeyText的經(jīng)加密的備份 ReCome中解出私鑰KeyText的計(jì)算量相對(duì)總計(jì)算量而言往往非常小。因此,所述加密強(qiáng) 度也等于對(duì)私鑰KeyText進(jìn)行加密的加密強(qiáng)度并且是下列其中之一隨機(jī)長(zhǎng)度、解密的 平均計(jì)算量、解密的最大計(jì)算量、解密的平均計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解 密的最大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的平均計(jì)算量相對(duì)單次解密時(shí)計(jì)算 量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密的平均嘗試 解密次數(shù)、解密的最多嘗試解密次數(shù)、在預(yù)定速度機(jī)器上的平均解密時(shí)間、在預(yù)定速度 機(jī)器上的最長(zhǎng)解密時(shí)間,所述隨機(jī)密鑰是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī)信息、系統(tǒng)產(chǎn)生 的偽隨機(jī)信息、利用用戶身份信息UserID對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得 到的信息、利用內(nèi)存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信 息、利用時(shí)鐘數(shù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信息,并且所述系統(tǒng) 是指密碼系統(tǒng)或操作系統(tǒng)。
17.根據(jù)權(quán)利要求8所述的加密方法,其特征是其中,所述利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串UR,利用隨著加密進(jìn)程增加 項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串UR,被修改為采用預(yù)定算法加 密代碼串UR,并且所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、混 淆、擴(kuò)散、迭代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分組 加密、流密碼加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加密、 偽隨機(jī)加密算法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加密的 算法、利用排序所產(chǎn)生的序號(hào)代碼加密的算法,所述利用排序所產(chǎn)生的序號(hào)代碼加密的算法加密代碼串KP,利用隨著加密進(jìn)程增加 項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼來加密代碼串KP,被修改為采用預(yù)定算法加密 代碼串KP,并且所述預(yù)定算法由下列加密算法中的一種或多種構(gòu)成替代、置換、混 淆、擴(kuò)散、迭代、組合拆分法、數(shù)學(xué)關(guān)系加密、變位加密、邏輯加密、算術(shù)加密、分組 加密、流密碼加密、線性加密、非線性加密、對(duì)稱加密、非對(duì)稱加密、統(tǒng)計(jì)數(shù)據(jù)加密、 偽隨機(jī)加密算法、利用隨著加密進(jìn)程增加項(xiàng)數(shù)和調(diào)整冪次的多項(xiàng)式產(chǎn)生的流密碼加密的 算法、利用排序所產(chǎn)生的序號(hào)代碼加密的算法,所述將隨機(jī)長(zhǎng)度Long、私鑰KeyText的識(shí)別標(biāo)志KeyID插入私鑰KeyText的經(jīng)加密的 備份ReCome中,被修改為將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ) 空間,將私鑰KeyText的識(shí)別標(biāo)志KeyID備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間, 并且所述將隨機(jī)長(zhǎng)度Long保存在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將隨機(jī)長(zhǎng) 度Long保存在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome這個(gè)文 件屬性的空間,③數(shù)據(jù)庫(kù),④用于保存隨機(jī)長(zhǎng)度Long的文件或空間,⑤用于保存隨機(jī)長(zhǎng) 度Long和識(shí)別標(biāo)志KeyID這兩者的文件或空間;所述將私鑰KeyText的識(shí)別標(biāo)志KeyID 備份在用于保存?zhèn)浞軷eCome的相關(guān)存儲(chǔ)空間,是指將私鑰KeyText的識(shí)別標(biāo)志KeyID備 份在以下五者之一①保存?zhèn)浞軷eCome的空間,②保存?zhèn)浞軷eCome這個(gè)文件屬性的空 間,③數(shù)據(jù)庫(kù),④用于保存識(shí)別標(biāo)志KeyID的文件或空間,⑤用于保存隨機(jī)長(zhǎng)度Long和 識(shí)別標(biāo)志KeyID這兩者的文件或空間,所述備份ReCome,其特征是任何針對(duì)備份ReCome的解密程序都需要采用窮舉法或 采用窮舉法與密碼分析技術(shù)相結(jié)合的方法尋找隨機(jī)密鑰,不僅需要對(duì)解密時(shí)輸入的用戶 身份信息與解密過程中釋放的用戶身份信息進(jìn)行比對(duì),還需要對(duì)窮舉循環(huán)枚舉的隨機(jī)密 鑰與解密過程中釋放的隨機(jī)密鑰進(jìn)行比對(duì),只有在前述兩種密鑰的比對(duì)都一致后,才能 保證對(duì)私鑰KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,所述加密 強(qiáng)度取決于加密用戶身份信息UserID和隨機(jī)密鑰Random后所生成的密碼 識(shí)別信息PassID,解密時(shí),只有先完成對(duì)密碼識(shí)別信息PassID的解密,才能保證對(duì)私鑰 KeyText的經(jīng)加密的備份ReCome進(jìn)行正確解密,以釋放私鑰KeyText,并且解密時(shí),在 確認(rèn)用戶身份信息UserID和隨機(jī)密鑰Random都正確后,從私鑰KeyText的經(jīng)加密的備份 ReCome中解出私鑰KeyText的計(jì)算量相對(duì)總計(jì)算量而言往往非常小。因此,所述加密強(qiáng) 度也等于對(duì)私鑰KeyText進(jìn)行加密的加密強(qiáng)度并且是下列其中之一隨機(jī)長(zhǎng)度、解密的 平均計(jì)算量、解密的最大計(jì)算量、解密的平均計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解 密的最大計(jì)算量相對(duì)加密時(shí)計(jì)算量的放大倍數(shù)、解密的平均計(jì)算量相對(duì)單次解密時(shí)計(jì)算 量的放大倍數(shù)、解密的最大計(jì)算量相對(duì)單次解密時(shí)計(jì)算量的放大倍數(shù)、解密的平均嘗試 解密次數(shù)、解密的最多嘗試解密次數(shù)、在預(yù)定速度機(jī)器上的平均解密時(shí)間、在預(yù)定速度 機(jī)器上的最長(zhǎng)解密時(shí)間,所述隨機(jī)密鑰是由下列其中一種或多種信息構(gòu)成系統(tǒng)產(chǎn)生的隨機(jī)信息、系統(tǒng)產(chǎn)生 的偽隨機(jī)信息、利用用戶身份信息UserID對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得 到的信息、利用內(nèi)存或外存中數(shù)據(jù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信 息、利用時(shí)鐘數(shù)對(duì)系統(tǒng)產(chǎn)生的偽隨機(jī)數(shù)據(jù)用某種算法干預(yù)后得到的信息,并且所述系統(tǒng) 是指密碼系統(tǒng)或操作系統(tǒng)。
18.根據(jù)權(quán)利要求11或15或16或17所述加密方法,其特征是驗(yàn)證用戶的合法性, 只有通過驗(yàn)證的用戶才能完成對(duì)私鑰KeyText的加密。
19.根據(jù)權(quán)利要求1或2或3或4或5或6或8或9或10或17所述加密方法,其特 征是用戶在帶命令按鈕的圖形交互界面上,輸入用戶身份信息UserID和加密強(qiáng)度。
全文摘要
本發(fā)明提供一種需要采用窮舉法解密的隨機(jī)加密方法,其主要用途在于加密備份私鑰、證書和重要文件。加密流程如下輸入用戶身份信息和加密強(qiáng)度;根據(jù)加密強(qiáng)度等因素之間的關(guān)系,計(jì)算隨機(jī)密鑰的隨機(jī)長(zhǎng)度,并產(chǎn)生該隨機(jī)長(zhǎng)度的隨機(jī)密鑰;利用用戶身份信息和隨機(jī)密鑰按照預(yù)定的加密算法加密私鑰和證書以得到經(jīng)過加密的私鑰和證書的備份,并用由程序確定的加密算法將用戶身份信息和隨機(jī)密鑰鎖在密碼識(shí)別信息中。用這種加密方法所產(chǎn)生的備份,無論如何編寫解密程序,即使輸入正確的用戶身份信息也需要使用窮舉法進(jìn)行解密,并且既要對(duì)用戶身份信息進(jìn)行比對(duì),還要對(duì)隨機(jī)密鑰進(jìn)行比對(duì)。這種方法不僅可應(yīng)用于單機(jī)系統(tǒng),還可應(yīng)用到云中的密鑰托管服務(wù)。
文檔編號(hào)H04L9/00GK102013980SQ20091014080
公開日2011年4月13日 申請(qǐng)日期2009年5月6日 優(yōu)先權(quán)日2009年5月6日
發(fā)明者劉海云 申請(qǐng)人:劉海云