使用開源PGP技術(shù)實(shí)現(xiàn)Solaris 10下的加密解密(圖)
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-08 19:02:37 作者:佚名
我要評(píng)論

一、PGP(Pretty Good Privacy)技術(shù)簡介
1、PGP簡介
PGP技術(shù)是一個(gè)基于非對(duì)稱加密算法RSA公鑰體系的郵件加密技術(shù),也是一種操作簡單、使用方便、普及程度較高的加密軟件。PGP技術(shù)不但可以對(duì)電子郵件加密,防止非授權(quán)者閱讀信件;還能對(duì)電子郵件附加數(shù)字簽名
三、Gunpg在Solais下的配置
確定系統(tǒng)中已經(jīng)安裝了GnuPG后,就可以開始下面加密和簽名的工作了。
1、生成密匙
用戶應(yīng)用GnuPG,首先要有一對(duì)自己的密鑰。所以,第一步就是產(chǎn)生一對(duì)密鑰。gpg命令通過大量參數(shù)提供所需要的幾乎所有操作。其中,參數(shù)“-gen-key”就是用來產(chǎn)生一對(duì)密鑰的。在安裝了GPG的Linux系統(tǒng)上可以運(yùn)行以下命令:
#gpg --gen-key
命令開始運(yùn)行后,首先,會(huì)看到版本和路徑信息。隨后需要回答一系列問題,以幫助產(chǎn)生一對(duì)密鑰。其中,DSA是數(shù)字簽名算法,RSA和ElGamal是兩種不同原理的非對(duì)稱密鑰算法。通??梢赃x擇“1”,這樣生成的密鑰可以同時(shí)用作簽名和加密兩種用途。
接著,會(huì)要求選擇密鑰的長度。這里的密鑰長度有768、1024和2048位三種。如圖 3 。
圖3:選擇密鑰使用的長度
顯然,密鑰越長越安全,但太長又會(huì)影響使用的速度。所以,可以根據(jù)不同的需要選擇適合的長度。筆者選擇了的1024位密鑰。另外,還需要設(shè)定密鑰過期的時(shí)間,原則上,密鑰使用的頻率越高,密鑰有效的時(shí)間越長,被攻擊的可能性就越大。
所以,要根據(jù)應(yīng)用的實(shí)際情況綜合考慮,確定一個(gè)適當(dāng)?shù)臅r(shí)間長度。需要注意的是,密鑰要定期更換,建議絕對(duì)不要永遠(yuǎn)使用同一對(duì)密鑰。
最后,需要輸入一些個(gè)人信息,包括真實(shí)姓名、電子郵件地址等,用來識(shí)別密鑰,最好是如實(shí)填寫。然后,必須輸入一個(gè)密碼。密碼用來保護(hù)密鑰,沒有這個(gè)密碼,任何人都不能看到密鑰本身的內(nèi)容。密碼是在密鑰文件泄露后惟一的保密措施,它的最大敵人是暴力破解和字典攻擊。
所以,一定要選擇一個(gè)強(qiáng)壯的密碼,來有效地對(duì)抗這些攻擊。 密碼確定以后,系統(tǒng)開始運(yùn)算。這時(shí)需要隨便地敲擊鍵盤或是移動(dòng)鼠標(biāo),以產(chǎn)生一些隨機(jī)數(shù),協(xié)助密鑰的順利生成。注意,如果沒有以上動(dòng)作,很可能最終不能產(chǎn)生密鑰。系統(tǒng)運(yùn)算完成后,會(huì)出現(xiàn)類似圖4的信息:
圖4:成功生成鑰匙文件
2、查看密鑰
使用下面的命令:
gpg --list-keys
你會(huì)看到和圖 5相似的輸出:
圖5:查看所有密鑰
3、其他常用命令:
查看所有公鑰:
gpg --list-public-key
查看所有私鑰:
gpg --list-secret-key
列出所有簽名:
gpg --list-sig
4、公鑰的使用
接下來要做的工作是輸出一個(gè)用來發(fā)布的公鑰:
gpg --export -a -o yourpubkey.asc
-a 是ASCII編碼形式,-o 說明輸出公鑰到 yourpubkey.asc 文件。要發(fā)布這個(gè)公鑰,可以將yourpubkey.asc文件放在你的主頁上,也可以通過郵件寄給朋友。
當(dāng)你收到朋友發(fā)來的公鑰,你需要將這把公鑰導(dǎo)入你的鑰匙庫。例如,他寄給你的公鑰是 friendpubkey.asc ,使用下面命令就可以導(dǎo)入進(jìn)鑰匙庫:
gpg --import friendpubkey.asc
5、生成一份廢棄證書
在生成鑰匙對(duì)后,還應(yīng)該為公鑰創(chuàng)建一份廢棄證書。這不是廢棄剛剛生成的鑰匙,而是提供了一種停止鑰匙被繼續(xù)公開使用的安全方法。當(dāng)忘記了口令句,或者該口令句被竊取,或者更換了聯(lián)系郵件地址,或系統(tǒng)崩潰等情況下,可以使用該廢棄證書宣告原來的公鑰無效。使用--gen-revoke選項(xiàng)生成廢棄證書:
#gpg --output revoke.asc --gen-revoke [user-id: goodcjh@2911.net]
確認(rèn)廢棄原因后,輸入用來生成鑰匙的口令句。注意,如果省略了--output revoke.asc選項(xiàng),則廢棄證書只會(huì)被顯示在屏幕上,需要進(jìn)行復(fù)制、粘貼操作,并保存為文件才行。
四、Gunpg在Solaris下的應(yīng)用
1、對(duì)文件進(jìn)行加密和解密
Gunpg使用的是非對(duì)稱的密鑰體系,用戶擁有一對(duì)密鑰,包括一個(gè)公鑰和一個(gè)私鑰。公鑰對(duì)外公布,私鑰則由自己保存。使用公鑰加密的數(shù)據(jù)可以用私鑰解密,同樣,使用私鑰加密的數(shù)據(jù)可以用公鑰解密。
2、使用GnuPG進(jìn)行數(shù)字簽名(sign)
利用GnuPG數(shù)字簽名的方式有三種: 1.顯式數(shù)字簽名,即直接把數(shù)字簽名添加在文件內(nèi)容的后面。這樣做的好處是簡單,可以直接閱讀信息。 2.隱匿數(shù)字簽名,即簽名后隱藏文件內(nèi)容。這樣做的好處是把真實(shí)信息隱藏在簽名檔中。如果想要查看信息,使用命令:
#gpg -d goodcjh.file.asc
3、把數(shù)字簽名單獨(dú)存放于一個(gè)文件。
#gpg -ba goodcjh.file
這時(shí)目錄下會(huì)出現(xiàn)一個(gè)cjh.file.asc的簽名文件。如果此時(shí)修改原文件test.file的內(nèi)容,再次校驗(yàn)數(shù)字簽名檔時(shí)就會(huì)被警告。
使用GnuPG進(jìn)行數(shù)據(jù)加密和解密,例如,現(xiàn)有一份文本文件,內(nèi)容為“goodcjh using GnuPG on solaris”。使用如下命令進(jìn)行數(shù)據(jù)加密:
#gpg -ea -r goodcjh test.txt
-e表示加密選項(xiàng);-a表示使用ASCⅡ字符,如果不指定,默認(rèn)輸出為二進(jìn)制文件;-r指定某用戶的公鑰;text.txt為所要加密的文件名。
解密操作使用命令:
#gpg -d goodcjh.file.asc >test.file
一般可以用以下命令來生成一個(gè)同時(shí)帶有數(shù)字簽名和加密的文檔:
#gpg -o test.gpg -ea -s -r goodcjh.test.file
其中-o表示輸出文件名;-s表示加入數(shù)字簽名。
另外在GPG的使用過程中,可以進(jìn)行多次加密使數(shù)據(jù)更加安全。命令如下:
#gpg -eas -r goodcjh test.file -o test.gpg.nc1
#gpg -eas -r goodcjh test.gpg.nc1 -o test.gpg.nc2
#gpg -eas -r goodcjh test.gpg.nc2 -o test.gpg.nc3
解密操作過程類似。
確定系統(tǒng)中已經(jīng)安裝了GnuPG后,就可以開始下面加密和簽名的工作了。
1、生成密匙
用戶應(yīng)用GnuPG,首先要有一對(duì)自己的密鑰。所以,第一步就是產(chǎn)生一對(duì)密鑰。gpg命令通過大量參數(shù)提供所需要的幾乎所有操作。其中,參數(shù)“-gen-key”就是用來產(chǎn)生一對(duì)密鑰的。在安裝了GPG的Linux系統(tǒng)上可以運(yùn)行以下命令:
#gpg --gen-key
命令開始運(yùn)行后,首先,會(huì)看到版本和路徑信息。隨后需要回答一系列問題,以幫助產(chǎn)生一對(duì)密鑰。其中,DSA是數(shù)字簽名算法,RSA和ElGamal是兩種不同原理的非對(duì)稱密鑰算法。通??梢赃x擇“1”,這樣生成的密鑰可以同時(shí)用作簽名和加密兩種用途。
接著,會(huì)要求選擇密鑰的長度。這里的密鑰長度有768、1024和2048位三種。如圖 3 。

圖3:選擇密鑰使用的長度
顯然,密鑰越長越安全,但太長又會(huì)影響使用的速度。所以,可以根據(jù)不同的需要選擇適合的長度。筆者選擇了的1024位密鑰。另外,還需要設(shè)定密鑰過期的時(shí)間,原則上,密鑰使用的頻率越高,密鑰有效的時(shí)間越長,被攻擊的可能性就越大。
所以,要根據(jù)應(yīng)用的實(shí)際情況綜合考慮,確定一個(gè)適當(dāng)?shù)臅r(shí)間長度。需要注意的是,密鑰要定期更換,建議絕對(duì)不要永遠(yuǎn)使用同一對(duì)密鑰。
最后,需要輸入一些個(gè)人信息,包括真實(shí)姓名、電子郵件地址等,用來識(shí)別密鑰,最好是如實(shí)填寫。然后,必須輸入一個(gè)密碼。密碼用來保護(hù)密鑰,沒有這個(gè)密碼,任何人都不能看到密鑰本身的內(nèi)容。密碼是在密鑰文件泄露后惟一的保密措施,它的最大敵人是暴力破解和字典攻擊。
所以,一定要選擇一個(gè)強(qiáng)壯的密碼,來有效地對(duì)抗這些攻擊。 密碼確定以后,系統(tǒng)開始運(yùn)算。這時(shí)需要隨便地敲擊鍵盤或是移動(dòng)鼠標(biāo),以產(chǎn)生一些隨機(jī)數(shù),協(xié)助密鑰的順利生成。注意,如果沒有以上動(dòng)作,很可能最終不能產(chǎn)生密鑰。系統(tǒng)運(yùn)算完成后,會(huì)出現(xiàn)類似圖4的信息:

圖4:成功生成鑰匙文件
2、查看密鑰
使用下面的命令:
gpg --list-keys
你會(huì)看到和圖 5相似的輸出:

圖5:查看所有密鑰
3、其他常用命令:
查看所有公鑰:
gpg --list-public-key
查看所有私鑰:
gpg --list-secret-key
列出所有簽名:
gpg --list-sig
4、公鑰的使用
接下來要做的工作是輸出一個(gè)用來發(fā)布的公鑰:
gpg --export -a -o yourpubkey.asc
-a 是ASCII編碼形式,-o 說明輸出公鑰到 yourpubkey.asc 文件。要發(fā)布這個(gè)公鑰,可以將yourpubkey.asc文件放在你的主頁上,也可以通過郵件寄給朋友。
當(dāng)你收到朋友發(fā)來的公鑰,你需要將這把公鑰導(dǎo)入你的鑰匙庫。例如,他寄給你的公鑰是 friendpubkey.asc ,使用下面命令就可以導(dǎo)入進(jìn)鑰匙庫:
gpg --import friendpubkey.asc
5、生成一份廢棄證書
在生成鑰匙對(duì)后,還應(yīng)該為公鑰創(chuàng)建一份廢棄證書。這不是廢棄剛剛生成的鑰匙,而是提供了一種停止鑰匙被繼續(xù)公開使用的安全方法。當(dāng)忘記了口令句,或者該口令句被竊取,或者更換了聯(lián)系郵件地址,或系統(tǒng)崩潰等情況下,可以使用該廢棄證書宣告原來的公鑰無效。使用--gen-revoke選項(xiàng)生成廢棄證書:
#gpg --output revoke.asc --gen-revoke [user-id: goodcjh@2911.net]
確認(rèn)廢棄原因后,輸入用來生成鑰匙的口令句。注意,如果省略了--output revoke.asc選項(xiàng),則廢棄證書只會(huì)被顯示在屏幕上,需要進(jìn)行復(fù)制、粘貼操作,并保存為文件才行。
四、Gunpg在Solaris下的應(yīng)用
1、對(duì)文件進(jìn)行加密和解密
Gunpg使用的是非對(duì)稱的密鑰體系,用戶擁有一對(duì)密鑰,包括一個(gè)公鑰和一個(gè)私鑰。公鑰對(duì)外公布,私鑰則由自己保存。使用公鑰加密的數(shù)據(jù)可以用私鑰解密,同樣,使用私鑰加密的數(shù)據(jù)可以用公鑰解密。
2、使用GnuPG進(jìn)行數(shù)字簽名(sign)
利用GnuPG數(shù)字簽名的方式有三種: 1.顯式數(shù)字簽名,即直接把數(shù)字簽名添加在文件內(nèi)容的后面。這樣做的好處是簡單,可以直接閱讀信息。 2.隱匿數(shù)字簽名,即簽名后隱藏文件內(nèi)容。這樣做的好處是把真實(shí)信息隱藏在簽名檔中。如果想要查看信息,使用命令:
#gpg -d goodcjh.file.asc
3、把數(shù)字簽名單獨(dú)存放于一個(gè)文件。
#gpg -ba goodcjh.file
這時(shí)目錄下會(huì)出現(xiàn)一個(gè)cjh.file.asc的簽名文件。如果此時(shí)修改原文件test.file的內(nèi)容,再次校驗(yàn)數(shù)字簽名檔時(shí)就會(huì)被警告。
使用GnuPG進(jìn)行數(shù)據(jù)加密和解密,例如,現(xiàn)有一份文本文件,內(nèi)容為“goodcjh using GnuPG on solaris”。使用如下命令進(jìn)行數(shù)據(jù)加密:
#gpg -ea -r goodcjh test.txt
-e表示加密選項(xiàng);-a表示使用ASCⅡ字符,如果不指定,默認(rèn)輸出為二進(jìn)制文件;-r指定某用戶的公鑰;text.txt為所要加密的文件名。
解密操作使用命令:
#gpg -d goodcjh.file.asc >test.file
一般可以用以下命令來生成一個(gè)同時(shí)帶有數(shù)字簽名和加密的文檔:
#gpg -o test.gpg -ea -s -r goodcjh.test.file
其中-o表示輸出文件名;-s表示加入數(shù)字簽名。
另外在GPG的使用過程中,可以進(jìn)行多次加密使數(shù)據(jù)更加安全。命令如下:
#gpg -eas -r goodcjh test.file -o test.gpg.nc1
#gpg -eas -r goodcjh test.gpg.nc1 -o test.gpg.nc2
#gpg -eas -r goodcjh test.gpg.nc2 -o test.gpg.nc3
解密操作過程類似。
相關(guān)文章
- “CMOS密碼”就是通常所說的“開機(jī)密碼”,主要是為了防止別人使用自已的計(jì)算機(jī),設(shè)置的一個(gè)屏障2023-08-01
QQScreenShot之逆向并提取QQ截圖--OCR和其他功能
上一篇文章逆向并提取QQ截圖沒有提取OCR功能, 再次逆向我發(fā)現(xiàn)是可以本地調(diào)用QQ的OCR的,但翻譯按鈕確實(shí)沒啥用, 于是Patch了翻譯按鈕事件, 改為了將截圖用百度以圖搜圖搜索.2023-02-04- QQ截圖是我用過的最好用的截圖工具, 由于基本不在電腦上登QQ了, 于是就想將其提取出獨(dú)立版目前除了屏幕錄制功能其他都逆出來了, 在此分享一下2023-02-04
非系統(tǒng)分區(qū)使用BitLocker加密導(dǎo)致軟件無法安裝的解決方法
很多電腦用戶在考慮自己電腦磁盤分區(qū)安全時(shí)會(huì)采用 Windows 自帶的 BitLocker 加密工具對(duì)電腦磁盤分區(qū)進(jìn)行加密。但有些人加密后就會(huì)忘記自己設(shè)置的密碼從而導(dǎo)致在安裝其它軟2020-11-25防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生
這篇文章為大家詳細(xì)介紹了如何才能防止離職員工帶走客戶、防止內(nèi)部員工泄密、避免華為員工泄密事件的發(fā)生,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-27徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、涉密人員離崗離職前防范舉
近些年企業(yè)商業(yè)機(jī)密泄漏的事件屢有發(fā)生,這篇文章主要教大家如何徹底防止計(jì)算機(jī)泄密、重要涉密人員離職泄密、告訴大家涉密人員離崗離職前的防范舉措,具有一定的參考價(jià)值,2017-06-27量子計(jì)算機(jī)輕松破解加密算法 如何破解加密算法?
最近有電腦用戶反應(yīng)量子計(jì)算機(jī)可以破解下載的所有的加密算法嗎?其實(shí)也不是不可以,下面虛擬就為大家講解買臺(tái)量子計(jì)算機(jī),如何分分鐘破解加密算法2016-09-26怎么破解Webshell密碼 Burpsuite破解Webshell密碼圖文教程
webshell是以asp、php、jsp或者cgi等網(wǎng)頁文件形式存在的一種命令執(zhí)行環(huán)境,一種網(wǎng)頁后門。黑客通常會(huì)通過它控制別人網(wǎng)絡(luò)服務(wù)器,那么怎么破解webshell密碼呢?一起來看看吧2016-09-19針對(duì)Linux系統(tǒng)全盤加密的啟動(dòng)攻擊
本文討論了針對(duì)Linux系統(tǒng)全盤加密的冷啟動(dòng)攻擊,大家都認(rèn)為這種攻擊是可行的,但執(zhí)行這么一次攻擊有多難?攻擊的可行性有多少呢?需要的朋友可以參考下2015-12-28防止泄露公司機(jī)密、企業(yè)數(shù)據(jù)防泄密軟件排名、電腦文件加密軟件排行
面對(duì)日漸嚴(yán)重的內(nèi)部泄密事件,我們?nèi)绾问刈o(hù)企業(yè)的核心信息,如何防止內(nèi)部泄密也就成了擺在各個(gè)企業(yè)領(lǐng)導(dǎo)面前的一大問題。其實(shí),針對(duì)內(nèi)網(wǎng)安全,防止內(nèi)部信息泄漏早已有了比較2015-12-17