【正文】
gpg[功能]GPG是加密和數(shù)字簽名的免費(fèi)工具,大多用于加密信息的傳遞。除了僅用密碼加密外,GPG最大的不同是提供了“公鑰/私鑰”對(duì)。利用你的“公鑰”別人加密信息不再需要告訴你密碼,隨時(shí)隨地都能發(fā)送加密信息。而這種加密是單向的,只有你的“私鑰”能解開(kāi)加密。數(shù)字簽名又是另一大使用方向。通過(guò)簽名認(rèn)證,別人能確保發(fā)布的消息來(lái)自你,而且沒(méi)有經(jīng)過(guò)修改。[原理]對(duì)稱(chēng)密鑰加密常用的算法DES、Triple DES或IDEA加密,MD5。對(duì)稱(chēng)密鑰加密通信雙方持有同樣的密鑰對(duì)密文進(jìn)行解密。公共密鑰加密在報(bào)文和網(wǎng)絡(luò)方面的應(yīng)用已成為流行。RSA實(shí)際上用于公共密鑰加密,它是當(dāng)前所能得到的最強(qiáng)的公共密鑰算法。公共密鑰包含兩個(gè)同屬于一方的密鑰:一個(gè)是公共密鑰,它被所有人所共享;另一個(gè)是私有密鑰,歸個(gè)人秘密中存。與對(duì)稱(chēng)密鑰加密不同,公共密鑰加密對(duì)加密與解密使用兩把密鑰。一把是秘密的,這是私有密鑰,用來(lái)對(duì)密文解密。密文本身由公共密鑰產(chǎn)生,公共密鑰分發(fā)給要發(fā)送加密信息給你的人。其他人如何得到你的公共密鑰?很容易,發(fā)布它即可。你—私有密鑰的所有者,是惟一能對(duì)信息進(jìn)行解密的人。數(shù)字簽名常用公共密鑰加密來(lái)產(chǎn)生簽名,如 RSA和DSA。用公共密鑰產(chǎn)生數(shù)字簽名與信息加密的工作相反。信息通過(guò)hash函數(shù)發(fā)送。hash處理后的信息用私有密鑰加密。一旦數(shù)據(jù)用私有密鑰加密,任何持有公共密鑰的人都能檢驗(yàn),它是用私有密鑰產(chǎn)生的,這樣,數(shù)據(jù)就被驗(yàn)證了。因此,任何持有公共密鑰的人都可以進(jìn)行檢驗(yàn)。這里的hash函數(shù)用于產(chǎn)生數(shù)字簽名。Hash函數(shù)(散列函數(shù))是一個(gè)提取信息和產(chǎn)生一個(gè)固定長(zhǎng)度的信息個(gè)性特征的數(shù)學(xué)函數(shù)。無(wú)論要進(jìn)行hash方法的信息有多大,輸出的長(zhǎng)度都一樣。簡(jiǎn)言之,就是將hash處理后的信息用私鑰加密,其它人用公鑰解密恢復(fù)成功(恢復(fù)成的應(yīng)該是hash處理的結(jié)果?)表示加密的人就是你也就是數(shù)字簽名的驗(yàn)證就成功了。[舉例]**對(duì)稱(chēng)加密和解密這里,先簡(jiǎn)單介紹使用gpg進(jìn)行對(duì)稱(chēng)加密和解密,后面重點(diǎn)介紹公鑰加密和數(shù)字驗(yàn)證。*對(duì)稱(chēng)加密myfile:gpg c myfile這樣,會(huì)提示你輸入兩次密碼,,注意不能對(duì)目錄加密,可以用o選項(xiàng)指定輸出文件名稱(chēng)。*解密對(duì)稱(chēng)加密的文件:gpg o mydecrypt d 這樣,會(huì)提示你輸入解密密碼,輸入之后,將會(huì)解密相應(yīng)的文件,通過(guò)o指定生成的解密文件,d指定被解密的文件。****公鑰加密相關(guān)*生成鑰匙對(duì):[root@lvk ~] gpg genkey輸入之后,輸出和交互提示如下所示:以下為輸出以及交互gpg (GnuPG) 。 Copyright (C) 2006 Free Software Foundation, Inc.This program es with ABSOLUTELY NO WARRANTY.This is free software, and you are wele to redistribute itunder certain conditions. See the file COPYING for details.gpg: 已創(chuàng)建目錄‘/root/.gnupg’gpg: 新的配置文件‘/root/.gnupg/’已建立gpg: 警告:在‘/root/.gnupg/’里的選項(xiàng)于此次運(yùn)行期間未被使用gpg: 鑰匙環(huán)‘/root/.gnupg/’已建立gpg: 鑰匙環(huán)‘/root/.gnupg/’已建立請(qǐng)擇您要使用的密鑰種類(lèi):(1) DSA 和 ElGamal (默認(rèn))(2) DSA (僅用于簽名)(5) RSA (僅用于簽名)您的擇?[Enter] ====輸入DSA 密鑰對(duì)會(huì)有 1024 位。ELGE 密鑰長(zhǎng)度應(yīng)在 1024 位與 4096 位之間。您想要用多大的密鑰尺寸?(2048)[Enter] ====輸入您所要求的密鑰尺寸是 2048 位請(qǐng)?jiān)O(shè)定這把密鑰的效期限。0 = 密鑰永不過(guò)期n = 密鑰在 n 天后過(guò)期nw = 密鑰在 n 周后過(guò)期nm = 密鑰在 n 月后過(guò)期ny = 密鑰在 n 年后過(guò)期密鑰的效期限是?(0)[Enter]密鑰永遠(yuǎn)不會(huì)過(guò)期以上正確嗎?(y/n)y ====輸入您需要一個(gè)用戶標(biāo)識(shí)來(lái)辨識(shí)您的密鑰;本軟件會(huì)用真實(shí)姓名、注釋和電子郵件地址組合成用戶標(biāo)識(shí),如下所示:“Heinrich Heine (Der Dichter) heinrichh@”真實(shí)姓名:quietheart ====輸入電子郵件地址:quiet_heart000@ ====輸入注釋?zhuān)簍est ====輸入您定了這個(gè)用戶標(biāo)識(shí):“quietheart (test) quiet_heart000@”更改姓名(N)、注釋(C)、電子郵件地址(E)或確定(O)/退出(Q)?o ====輸入您需要一個(gè)密碼來(lái)保護(hù)您的私鑰。請(qǐng)輸入密碼:====輸入請(qǐng)?jiān)佥斎胍淮蚊艽a:====輸入我們需要生成大量的隨機(jī)字節(jié)。這個(gè)時(shí)候您可以多做些瑣事(像是敲打鍵盤(pán)、移動(dòng)鼠標(biāo)、讀寫(xiě)硬盤(pán)之類(lèi)的),這會(huì)讓隨機(jī)數(shù)字發(fā)生器有更好的機(jī)會(huì)獲得足夠的熵?cái)?shù)。++++++++++.+++++++++++++++.++++++++++.++++++++++++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++.+++++++++++++++++++++++++.+++++........................................+++++我們需要生成大量的隨機(jī)字節(jié)。這個(gè)時(shí)候您可以多做些瑣事(像是敲打鍵盤(pán)、移動(dòng)