專利名稱:基于數(shù)字證書的文件加密和分發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)信息安全領(lǐng)域,特別涉及一種基于數(shù)字證書的文件加密和分發(fā) 方法。
背景技術(shù):
隨著信息技術(shù)的推廣和Internet的普及,人們的生活越來(lái)越多的依賴于計(jì)算機(jī)。 人們?cè)谙硎苡?jì)算機(jī)系統(tǒng)提供的便利的同時(shí),也面臨著各種各樣的信息安全的威脅,如個(gè)人 信息泄露、機(jī)密文件被竊取、用戶U盤丟失、網(wǎng)絡(luò)服務(wù)器擁有方惡意的信息泄漏等。日前, SearchSecurity網(wǎng)站針對(duì)358名企業(yè)信息化負(fù)責(zé)人進(jìn)行了一項(xiàng)關(guān)于企業(yè)信息安全的調(diào)查。 調(diào)查的結(jié)果顯示,目前企業(yè)機(jī)密泄露中有30% 40%是由電子文件的泄露造成的,而《財(cái) 富》排名前一千家的公司,每次電子文檔泄密造成的損失約為400萬(wàn)元美金。網(wǎng)絡(luò)硬盤是目前Internet上的一個(gè)重要應(yīng)用,數(shù)據(jù)安全是網(wǎng)絡(luò)硬盤應(yīng)用的一個(gè) 核心問(wèn)題。在傳遞分發(fā)一些重要文件時(shí),傳統(tǒng)的方法通常采用一些對(duì)稱加密算法來(lái)加密 文件,然后將密碼明文告知文件接收者,這種方法操作起來(lái)相對(duì)簡(jiǎn)單,但是也有很多安全隱 患首先,當(dāng)密碼出現(xiàn)泄漏時(shí),我們將無(wú)法保證實(shí)際查看到文件的人是合法的文件接收者; 其次,當(dāng)間隔一段時(shí)間后再去解密文件時(shí),如果忘記最初的加密密碼時(shí),用戶無(wú)法解密加密 的文件;第三,當(dāng)需要將一個(gè)文件加密后分發(fā)給多個(gè)人時(shí),如果采用相同的密碼加密,則風(fēng) 險(xiǎn)將不可控,任何一個(gè)密碼出現(xiàn)泄漏,文件都將被竊取,而追蹤泄漏源時(shí)也很難展開,如果 對(duì)不同的文件接收者采用不同的密鑰分開加密,則無(wú)形中加大了工作量,且密碼表難以維 護(hù)。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服上述的缺點(diǎn)和不足,提供一種基于數(shù)字證書的文件加密和 分發(fā)方法,該方法具有采用多種加密方法結(jié)合、方便、安全分發(fā)、安全性高等優(yōu)點(diǎn),并解決了 傳統(tǒng)對(duì)稱加密算法帶來(lái)的因忘記密碼而無(wú)法恢復(fù)原文的問(wèn)題。本發(fā)明的目的是通過(guò)下述技術(shù)方案實(shí)現(xiàn)的一種基于數(shù)字證書的文件加密和分發(fā) 方法,如圖1所示,包括以下步驟Si、文件主初始化運(yùn)行參數(shù),設(shè)置加密文件時(shí)使用的文件加密密碼,獲取文件接收 者的公鑰,新建一個(gè)文件,進(jìn)入步驟S2 ;S2、將文件接收者的個(gè)數(shù)寫入新文件中,進(jìn)入步驟S3 ;S3、將各文件接收者的加密驗(yàn)證信息依次寫入新文件中,進(jìn)入步驟S4 ;S4、對(duì)需要加密的源文件進(jìn)行分組加密后依次寫入到新文件中,進(jìn)入步驟S5 ;S5、將新文件發(fā)送給各文件接收者。 為更好的實(shí)現(xiàn)本發(fā)明,所述文件接收者包括文件主自身。優(yōu)選的,所述文件接收者的加密驗(yàn)證信息,具體包括(1)使用文件接收者的公鑰,通過(guò)非對(duì)稱加密算法,將步驟Sl中的文件加密密碼字符串加密,得到文件接收者的文件密碼信息;(2)上述文件密碼信息的長(zhǎng)度值。優(yōu)選的,所述步驟S3、將各文件接收者的加密驗(yàn)證信息依次寫入新文件中,具體包 括以下步驟S3. 1、文件主使用文件接收者的公鑰,通過(guò)非對(duì)稱加密算法,將文件加密密碼字符 串加密,得到文件接收者的文件密碼信息,獲取該文件密碼信息字符串長(zhǎng)度,將長(zhǎng)度值追加 到新文件中,進(jìn)入步驟S3. 2;S3. 2、文件主將文件密碼信息追加到新文件中,進(jìn)入步驟S3. 3 ;S3. 3、文件主判斷是否已生成全部文件接收者的文件密碼信息,若是,則進(jìn)入步驟 S4 ;若否,返回步驟S3. 1。優(yōu)選的,所述非對(duì)稱加密算法為RSA加密算法、ECC(橢圓曲線)加密算法或其他 非對(duì)稱加密算法。優(yōu)選的,所述步驟S4、對(duì)需要加密的源文件進(jìn)行分組加密后依次寫入到新文件中, 具體是指文件主根據(jù)要使用的對(duì)稱加密算法,對(duì)源文件進(jìn)行分組,若源文件的最后一個(gè)分 組數(shù)據(jù)不夠組成一分組時(shí),則在數(shù)據(jù)末端補(bǔ)零使最后一個(gè)分組與其它的分組數(shù)據(jù)長(zhǎng)度一 致,文件主通過(guò)對(duì)稱加密算法加密各分組;文件主把源文件最后一組的實(shí)際長(zhǎng)度值追加到新文件中,并把加密后的各分組依 次寫入新文件中。優(yōu)選的,所述步驟S4、對(duì)需要加密的源文件進(jìn)行分組加密后依次寫入到新文件中, 具體包括以下步驟S4. 1、文件主以字節(jié)為單位獲取源文件的長(zhǎng)度值,計(jì)算源文件長(zhǎng)度值與m的模,并 把結(jié)果追加到新文件接中,進(jìn)入步驟S4. 2 ;S4. 2、文件主判斷源文件長(zhǎng)度是否為0,如果不為0,則進(jìn)入步驟S4. 3 ;如果為0,則 跳轉(zhuǎn)至步驟S5 ;S4. 3、文件主讀出源文件的前m字節(jié)數(shù)據(jù),當(dāng)數(shù)據(jù)不夠m字節(jié)時(shí),在數(shù)據(jù)末端補(bǔ)零 使其長(zhǎng)度正好為m字節(jié),使用步驟Sl中的文件加密密碼,通過(guò)對(duì)稱加密算法對(duì)該m字節(jié)數(shù) 據(jù)加密,將加密后的結(jié)果追加到新文件中,進(jìn)入步驟S4. 4 ;S4. 4、文件主判斷源文件中未處理的剩余文件長(zhǎng)度是否為0,如果不為0,則進(jìn)入 步驟S4. 5 ;如果為0,則跳轉(zhuǎn)至步驟S5 ;S4. 5、文件主讀出接下來(lái)的m字節(jié)數(shù)據(jù),當(dāng)數(shù)據(jù)不夠m字節(jié)時(shí),末端補(bǔ)零使其長(zhǎng)度 正好為m字節(jié),使用步驟Sl中的文件加密密碼,通過(guò)對(duì)稱加密算法對(duì)該m字節(jié)數(shù)據(jù)加密,將 加密后的結(jié)果追加到新文件中,返回至步驟S4. 4。優(yōu)選的,所述m表示分組加密時(shí)各分組的原始長(zhǎng)度,m值由所采用的對(duì)稱加密算法決定。若采用AES加密算法,則m取值為16。優(yōu)選的,所述對(duì)稱加密算法為DES、3DES、RC4、RC5和Blowfish中的一種或多種。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果第一、多種加密方法結(jié)合本發(fā)明將傳統(tǒng)的對(duì)稱加密算法和現(xiàn)代公鑰加密算法結(jié)合起來(lái),使用對(duì)稱加密算法實(shí)現(xiàn)文件內(nèi)容加密,使用公鑰加密算法印上文件接收者的指紋 信息和文件加密信息,文件接收者首先使用自己的私鑰解密得到文件加密密碼,再同時(shí)使 用自己的私鑰和文件加密密碼進(jìn)行文件解密,獲得原始文件,保證文件的安全性。第二、安全分發(fā)采用文件使用者公鑰來(lái)對(duì)需要分發(fā)的文件進(jìn)行加密,系統(tǒng)在對(duì)文 件進(jìn)行加密時(shí),在文件頭中使用了 一個(gè)可變長(zhǎng)文件頭格式,對(duì)應(yīng)記錄每一個(gè)文件接收者用 戶的公鑰驗(yàn)證信息和加密驗(yàn)證信息,實(shí)現(xiàn)安全分發(fā)文件。文件主只需要同時(shí)選擇需要分發(fā) 的群組或用戶對(duì)應(yīng)的公鑰,進(jìn)行一次加密,就能將加密后的文件分發(fā)給不同的用戶,達(dá)到一 次加密、多用戶多群組分發(fā)認(rèn)證的目的。第三、解決了傳統(tǒng)對(duì)稱加密算法帶來(lái)的因忘記密碼而無(wú)法恢復(fù)原文的問(wèn)題。在加 密文件中,同時(shí)記錄了文件主的文件密碼信息,如同指紋一樣,方便文件主在忘記密碼的時(shí) 候取回密碼將文件主的文件加密密碼信息通過(guò)他本人的公鑰進(jìn)行加密,將加密后的數(shù)據(jù) 放入到文件頭的指定位置,當(dāng)文件主忘記密碼時(shí),可以通過(guò)文件主自己的私鑰取回對(duì)應(yīng)的 文件加密密碼。第四、提高安全性在解密文件時(shí)用戶必須同時(shí)使用有效的私鑰和文件加密密碼, 提高了文件的安全性。第五、方便性系統(tǒng)可根據(jù)用戶實(shí)際需要,既可以對(duì)一個(gè)文件進(jìn)行以上加密操作, 也可以對(duì)一個(gè)文件夾進(jìn)行以上加密操作,非常方便。
圖1是本發(fā)明一種基于數(shù)字證書的文件加密和分發(fā)方法的工作流程圖;圖2是實(shí)施例一中一種基于數(shù)字證書的文件加密和分發(fā)方法的工作流程圖。
具體實(shí)施例方式下面結(jié)合實(shí)施例及附圖,對(duì)本發(fā)明作進(jìn)一步地詳細(xì)說(shuō)明,但本發(fā)明的實(shí)施方式不 限于此。實(shí)施例一一種基于數(shù)字證書的文件加密和分發(fā)方法,如圖2所示,包括以下步驟Si、文件主初始化運(yùn)行參數(shù),包括加密文件時(shí)使用的文件加密密碼,文件主的公 鑰,以及文件接收者的公鑰,進(jìn)入步驟S2 ;S2、文件主統(tǒng)計(jì)加密文件保存者的個(gè)數(shù),將該數(shù)值寫入到新建文件1的前4個(gè)字節(jié) 中,其中加密文件保存者的個(gè)數(shù)包括文件接收者以及文件主自身(例如用戶A加密一個(gè)文 件后希望發(fā)送給用戶B、C,同時(shí)用戶A自身也保存有該加密文件,則在該處的值為3),進(jìn)入 步驟S3 ;S3、文件主使用自己的公鑰,通過(guò)RSA加密算法,將文件加密密碼字符串加密,得 到文件主的文件密碼信息;文件主獲取文件密碼信息字符串的長(zhǎng)度,將長(zhǎng)度值寫入到新文 件1的接下來(lái)4個(gè)字節(jié)中,進(jìn)入步驟S4;S4、文件主將文件密碼信息追加到新文件1中,進(jìn)入步驟S5 ;S5、文件主使用文件接收者的公鑰,通過(guò)RSA算法,將文件加密密碼字符串加密, 得到文件接收者的文件密碼信息,獲取該文件密碼信息字符串長(zhǎng)度,將長(zhǎng)度值追加到新文件1接下來(lái)的4個(gè)字節(jié)中,進(jìn)入步驟S6 ;S6、文件主將文件密碼信息追加到新文件1中,進(jìn)入步驟S7 ;S7、文件主判斷是否已生成全部文件接收者的文件密碼信息,若是,則進(jìn)入步聚 S8 ;若否,返回步驟S5 ;S8、文件主以字節(jié)為單位獲取源文件的長(zhǎng)度值,計(jì)算源文件長(zhǎng)度值與16的模,并 把結(jié)果追加到新文件1接下來(lái)的4個(gè)字節(jié)中,進(jìn)入步驟S9 ;S9、文件主判斷源文件長(zhǎng)度是否為0,如果不為0,則進(jìn)入步驟SlO ;如果為0,則跳 轉(zhuǎn)至步驟S13 ;S10、文件主讀出源文件的前16字節(jié)數(shù)據(jù),當(dāng)數(shù)據(jù)不夠16字節(jié)時(shí),補(bǔ)充指定數(shù)據(jù), 使用步驟Sl中提供的文件加密密碼,通過(guò)AES加密算法對(duì)該16字節(jié)數(shù)據(jù)加密,將加密后的 結(jié)果追加到新文件1中,進(jìn)入步驟Sll ;S11、文件主判斷源文件中未處理的剩余文件長(zhǎng)度是否為0,如果不為0,則進(jìn)入步 驟S12 ;如果為0,則跳轉(zhuǎn)至步驟S13 ;S12、讀出接下來(lái)的16字節(jié)數(shù)據(jù),當(dāng)數(shù)據(jù)不夠16字節(jié)時(shí),補(bǔ)充指定數(shù)據(jù),使用步驟 Sl中提供的文件加密密碼,通過(guò)AES加密算法對(duì)該16字節(jié)數(shù)據(jù)加密,將加密后的結(jié)果追加 到新文件1中,返回至步驟Sll ;S13、文件主結(jié)束文件加密,將新文件1保存并發(fā)送給各文件接收者。上述步驟SlO和步驟S12中,所述補(bǔ)充指定數(shù)據(jù),具體是指在數(shù)據(jù)末端補(bǔ)零使其長(zhǎng) 度正好為16字節(jié)。因?yàn)樵赟8中記錄了源文件最后一組的實(shí)際長(zhǎng)度,在解密操作時(shí)可根據(jù) 源文件最后一組的實(shí)際長(zhǎng)度刪除添加的那些零。本實(shí)施例一中加密文件的格式,見表1所示
權(quán)利要求
一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,包括以下步驟S1、文件主初始化運(yùn)行參數(shù),設(shè)置加密文件時(shí)使用的文件加密密碼,獲取文件接收者的公鑰,新建一個(gè)文件,進(jìn)入步驟S2;S2、將文件接收者的個(gè)數(shù)寫入新文件中,進(jìn)入步驟S3;S3、將各文件接收者的加密驗(yàn)證信息依次寫入新文件中,進(jìn)入步驟S4;S4、對(duì)需要加密的源文件進(jìn)行分組加密后依次寫入到新文件中,進(jìn)入步驟S5;S5、將新文件發(fā)送給各文件接收者。
2.根據(jù)權(quán)利要求1所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,所述 文件接收者包括文件主自身。
3.根據(jù)權(quán)利要求1所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,步驟 S3中,所述文件接收者的加密驗(yàn)證信息,具體包括(1)使用文件接收者的公鑰,通過(guò)非對(duì)稱加密算法,將步驟S1中的文件加密密碼字符 串加密,得到文件接收者的文件密碼信息;(2)上述文件密碼信息的長(zhǎng)度值。
4.根據(jù)權(quán)利要求3所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,所述 步驟S3、將各文件接收者的加密驗(yàn)證信息依次寫入新文件中,具體包括以下步驟S3. 1、文件主使用文件接收者的公鑰,通過(guò)非對(duì)稱加密算法,將文件加密密碼字符串加 密,得到文件接收者的文件密碼信息,獲取該文件密碼信息字符串長(zhǎng)度,將長(zhǎng)度值追加到新 文件中,進(jìn)入步驟S3. 2;S3. 2、文件主將文件密碼信息追加到新文件中,進(jìn)入步驟S3. 3 ;·53.3、文件主判斷是否已生成全部文件接收者的文件密碼信息,若是,則進(jìn)入步驟S4 ; 若否,返回步驟S3. 1。
5.根據(jù)權(quán)利要求3或4所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,所 述非對(duì)稱加密算法為RSA加密算法或ECC加密算法。
6.根據(jù)權(quán)利要求1所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,所述 步驟S4、對(duì)需要加密的源文件進(jìn)行分組加密后依次寫入到新文件中,具體是指文件主根據(jù)要使用的對(duì)稱加密算法,對(duì)源文件進(jìn)行分組,若源文件的最后一個(gè)分組數(shù) 據(jù)不夠組成一分組時(shí),則在數(shù)據(jù)末端補(bǔ)零使最后一個(gè)分組與其它的分組數(shù)據(jù)長(zhǎng)度一致,文 件主通過(guò)對(duì)稱加密算法加密各分組;文件主把源文件最后一組的實(shí)際長(zhǎng)度值追加到新文件中,并把加密后的各分組依次寫 入新文件中。
7.根據(jù)權(quán)利要求6所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,所述 步驟S4、對(duì)需要加密的源文件進(jìn)行分組加密后依次寫入到新文件中,具體包括以下步驟·54.1、文件主以字節(jié)為單位獲取源文件的長(zhǎng)度值,計(jì)算源文件長(zhǎng)度值與m的模,并把結(jié) 果追加到新文件接中,進(jìn)入步驟S4. 2 ;S4. 2、文件主判斷源文件長(zhǎng)度是否為0,如果不為0,則進(jìn)入步驟S4. 3 ;如果為0,則跳轉(zhuǎn) 至步驟S5 ;S4. 3、文件主讀出源文件的前m字節(jié)數(shù)據(jù),當(dāng)數(shù)據(jù)不夠m字節(jié)時(shí),末端補(bǔ)零使其長(zhǎng)度正 好為m字節(jié),使用步驟S1中的文件加密密碼,通過(guò)對(duì)稱加密算法對(duì)該m字節(jié)數(shù)據(jù)加密,將加密后的結(jié)果追加到新文件中,進(jìn)入步驟S4. 4 ;S4. 4、文件主判斷源文件中未處理的剩余文件長(zhǎng)度是否為0,如果不為0,則進(jìn)入步驟 S4. 5 ;如果為0,則跳轉(zhuǎn)至步驟S5 ;S4. 5、文件主讀出接下來(lái)的m字節(jié)數(shù)據(jù),當(dāng)數(shù)據(jù)不夠m字節(jié)時(shí),在數(shù)據(jù)末端補(bǔ)零使其長(zhǎng) 度正好為m字節(jié),使用步驟S1中的文件加密密碼,通過(guò)對(duì)稱加密算法對(duì)該m字節(jié)數(shù)據(jù)加密, 將加密后的結(jié)果追加到新文件中,返回至步驟S4. 4。
8.根據(jù)權(quán)利要求7所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,所述m 表示分組加密時(shí)各分組的原始長(zhǎng)度,m值由所采用的對(duì)稱加密算法決定。
9.根據(jù)權(quán)利要求8所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在于,若采 用AES加密算法,則m取值為16。
10.根據(jù)權(quán)利要求6或7或8所述一種基于數(shù)字證書的文件加密和分發(fā)方法,其特征在 于,所述對(duì)稱加密算法為DES、3DES、RC4、RC5和Blowfish中的一種或多種。
全文摘要
本發(fā)明公開了一種基于數(shù)字證書的文件加密和分發(fā)方法,包括以下步驟S1、文件主初始化運(yùn)行參數(shù),設(shè)置加密文件時(shí)使用的文件加密密碼,獲取文件接收者的公鑰,新建一個(gè)文件;S2、將文件接收者的個(gè)數(shù)寫入新文件中;S3、將各文件接收者的加密驗(yàn)證信息依次寫入新文件中;S4、對(duì)需要加密的源文件進(jìn)行分組加密后依次寫入到新文件中;S5、將新文件發(fā)送給各文件接收者。本發(fā)明具有采用多種加密方法結(jié)合、方便、安全分發(fā)、安全性高等優(yōu)點(diǎn),并解決了傳統(tǒng)對(duì)稱加密算法帶來(lái)的因忘記密碼而無(wú)法恢復(fù)原文的問(wèn)題。
文檔編號(hào)H04L29/06GK101938481SQ20101027581
公開日2011年1月5日 申請(qǐng)日期2010年9月6日 優(yōu)先權(quán)日2010年9月6日
發(fā)明者張凌, 楊道全, 許勇, 許文民 申請(qǐng)人:華南理工大學(xué);廣州數(shù)園網(wǎng)絡(luò)有限公司