『壹』 如何用PGP加密
PGP採用公匙加密體系,用加密演算法 生成兩個密匙,分別作為公匙和私匙。公匙用來加密,是公開的。私匙用來解密,自己保存。 下面介紹PGP的使用: 1 首先生成你的PGP密匙。在DOS命令行輸入: pgp-kg 2 程序會提示你一步步進行密匙生成工作: ①選擇密匙長度。建議用1024位,安全性相當有保障。 ②輸入用戶名。要盡量避免混淆。 ③選擇口令。和所有密碼一樣,盡量取得難猜一點。PGP是區分口令大小寫的,在生成過程中程序為了得到隨機數,會請你隨意地在鍵盤上敲一系列的鍵,注意盡量多敲些不同的鍵,時間間隔不要太短。 現在你就擁有自己的一對PGP密匙了。文件SECRING PGP是私匙,PUBRING PGP是公匙。 3 PGP的基本命令 ①加密命令: pgp-e[a]源文件收件人ID[其他收件人ID] 用公匙環中收件人的公匙加密源文件,得到密文。加上a參數後將得到7bits編碼的密文( asc後綴),否則是二進制形式密文( pgp後綴)。 ②解密命令: pgp[-d][-p]密文 -d參數用來保留密文(預設刪除密文),-p參數用來恢復源文件加密時的文件名。
『貳』 PGP&GPG key是什麼,有什麼用
GPG和PGP是兩種加密軟體,你可以通過公鑰在網上安全的傳播自己的文件。我前些日子使用了GPG,感覺很方便,使用中也遇到了一些問題。所以把我的使用經過寫出來,目的是讓初次使用GPG的朋友少走彎路。
先說說GPG的獲得吧,GPG是開放源代碼的軟體,是完全免費的,大家可以到www.gnupg.org下載。如果使用 Mandrakelinux或Debian發行版可以直接下載。我使用的是Mandrakelinux,只要在終端中輸入urpmi gpgp就可以下載和安裝。
安裝好後我們在終端下輸入:gpg --help 可以看到GPG的版本信息和幫助。這表示GPG已經裝好了。
下面我們來生成密鑰,鍵入:gpg --gen-key 這時將出現幾個選項,需要我們來選擇:
gpg (GnuPG) 1.4.0; Copyright (C) 2004 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
請選擇您要使用的密鑰種類:
(1) DSA 和 ElGamal (默認)
(2) DSA (僅用於簽字)
(5) RSA (僅用於簽字)
您的選擇? 這個我們一般選擇1,gpg默認的也是1。
SA keypair will have 1024 bits.
ELG-E keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048) 這個是密鑰的長度,一般輸入1024
請設定這把密鑰的有效期限。
0 = 密鑰永不過期
<n> = 密鑰在 n 天後過期
<n>w = 密鑰在 n 周後過期
<n>m = 密鑰在 n 月後過期
<n>y = 密鑰在 n 年後過期
密鑰的有效期限是?(0) 這個是指定密鑰的有效期,你可以自己選擇。
您需要一個用戶標識來辨識您的密鑰;本軟體會用真實姓名、注釋和電子郵件地址組合
成用戶標識,如下所示:
「Heinrich Heine (Der Dichter) <[email protected]>」
真實姓名:
電子郵件地址:
注釋:
這個是用戶標識,你可以輸入自己常用的email地址。
請輸入密碼:
這個需要為你的私鑰指定一個保護密碼,這個一定要保護好,要不然你的加密文件就會被別人輕易解開了。
好了現在GPG已經產生了你的公鑰和私鑰。
現在說說GPG能為我們做什麼,如果你想給你的朋友發送一篇論文,而不希望第三人看到。你可以這樣操作。
在終端輸入:gpg --encrypt -r Bob [文件名] Bob表示為這個收件人簽字及加密 〔文件名〕為需要加密的文件名。
然後你可以把你的公鑰發給你的朋友。導出公鑰的方法是:gpg --export>name.asc
你的朋友只要吧你的公鑰導入他的GPG,就可以解密你發給他的文件了:
解密方法是 gpg --decrypt [加過密的文件]>〔已經解密的文件〕 >為重定向符,意思是把gpg --decrypt [加過密的文件]的結果保存到〔已經解密的文件〕文件中,這要就可以看到你發的原文了。
『叄』 什麼是PGP
PGP(Pretty Good Privacy),是一個基於RSA公匙加密體系的郵件加密軟體。可以用它對郵件保密以防止非授權者閱讀,它還能對郵件加上數字簽名從而使收信人可以確認郵件的發送者,並能確信郵件沒有被篡改。它可以可以提供一種安全的通訊方式,而事先並不需要任何保密的渠道用來傳遞密匙。它採用了一種RSA和傳統加密的雜合演算法,用於數字簽名的郵件文摘演算法,加密前壓縮等,還有一個良好的人機工程設計。它的功能強大,有很快的速度。而且它的源代碼是免費的。 實際上PGP的功能還包括: PGP可以用來加密文件,還可以用PGP代替UUencode 生成RADIX 64 格式(就是MIME 的 BASE 64格式)的編碼文件。 PGP 的創始人是美國的 Phil Zimmermann。他的創造性在於他把RSA公匙體系的方便和傳統加密體系的高速度結合起來,並且在數字簽名和密匙認證管理機制上有巧妙的設計。因此PGP成為幾乎最流行的公匙加密軟體包。 1.首先簡要介紹PGP加密系統的流程。 PGP加密系統是採用公開密鑰加密與傳統密鑰加密相結合的一種加密技術。它使用一對數學上相關的鑰匙,其中一個(公鑰)用來加密信息,另一個(私鑰)用來解密信息。 PGP採用的傳統加密技術部分所使用的密鑰稱為「會話密鑰」(sek)。每次使用時,PGP都隨機產生一個128位的IDEA會話密鑰,用來加密報文。公開密鑰加密技術中的公鑰和私鑰則用來加密會話密鑰,並通過它間接地保護報文內容。 PGP中的每個公鑰和私鑰都伴隨著一個密鑰證書。它一般包含以下內容: 密鑰內容(用長達百位的大數字表示的密鑰) 密鑰類型(表示該密鑰為公鑰還是私鑰) 密鑰長度(密鑰的長度,以二進制位表示) 密鑰編號(用以唯一標識該密鑰) 創建時間 用戶標識 (密鑰創建人的信息,如姓名、電子郵件等) 密鑰指紋(為128位的數字,是密鑰內容的提要表示密鑰唯一的特徵) 中介人簽名(中介人的數字簽名,聲明該密鑰及其所有者的真實性,包括中介人的密鑰編號和標識信息) PGP把公鑰和私鑰存放在密鑰環(KEYR)文件中。PGP提供有效的演算法查找用戶需要的密鑰。 PGP在多處需要用到口令,它主要起到保護私鑰的作用。由於私鑰太長且無規律,所以難以記憶。PGP把它用口令加密後存入密鑰環,這樣用戶可以用易記的口令間接使用私鑰。 PGP的每個私鑰都由一個相應的口令加密。PGP主要在3處需要用戶輸入口令: 需要解開受到的加密信息時,PGP需要用戶輸入口令,取出私鑰解密信息 當用戶需要為文件或信息簽字時,用戶輸入口令,取出私鑰加密 對磁碟上的文件進行傳統加密時,需要用戶輸入口令 2.以上介紹了PGP的工作流程,下面將簡介與PGP相關的加密、解密方法以及PGP的密鑰管理機制。 PGP是一種供大眾使用的加密軟體。電子郵件通過開放的網路傳輸,網路上的其他人都可以監聽或者截取郵件,來獲得郵件的內容,因而郵件的安全問題就比較突出了。保護信息不被第三者獲得,這就需要加密技術。還有一個問題就是信息認證,如何讓收信人確信郵件沒有被第三者篡改,這就需要數字簽名技術。RSA公匙體系的特點使它非常適合用來滿足上述兩個要求:保密性(Privacy)和認證性(Authentication)。 RSA(Rivest-Shamir-Adleman)演算法是一種基於大數不可能質因數分解假設的公匙體系。簡單地說就是找兩個很大的質數,一個公開即公鑰,另一個不告訴任何人,即私鑰。這兩個密匙是互補的,就是說用公匙加密的密文可以用私匙解密,反過來也一樣。 假設甲要寄信給乙,他們互相知道對方的公匙。甲就用乙的公匙加密郵件寄出,乙收到後就可以用自己的私匙解密出甲的原文。由於沒別人知道乙的私匙,所以即使是甲本人也無法解密那封信,這就解決了信件保密的問題。另一方面由於每個人都知道乙的公匙,他們都可以給乙發信,那麼乙就無法確信是不是甲的來信。這時候就需要用數字簽名來認證。 在說明數字簽名前先要解釋一下什麼是「郵件文摘」(message digest)。郵件文摘就是對一封郵件用某種演算法算出一個最能體現這封郵件特徵的數來,一旦郵件有任何改變這個數都會變化,那麼這個數加上作者的名字(實際上在作者的密匙里)還有日期等等,就可以作為一個簽名了。PGP是用一個128位的二進制數作為「郵件文摘」的,用來產生它的演算法叫MD5(message digest 5)。 MD5是一種單向散列演算法,它不像CRC校驗碼,很難找到一份替代的郵件與原件具有同樣的MD5特徵值。 回到數字簽名上來,甲用自己的私匙將上述的128位的特徵值加密,附加在郵件後,再用乙的公匙將整個郵件加密。這樣這份密文被乙收到以後,乙用自己的私匙將郵件解密,得到甲的原文和簽名,乙的PGP也從原文計算出一個128位的特徵值來和用甲的公匙解密簽名所得到的數比較,如果符合就說明這份郵件確實是甲寄來的。這樣兩個安全性要求都得到了滿足。 PGP還可以只簽名而不加密,這適用於公開發表聲明時,聲明人為了證實自己的身份,可以用自己的私匙簽名。這樣就可以讓收件人能確認發信人的身份,也可以防止發信人抵賴自己的聲明。這一點在商業領域有很大的應用前途,它可以防止發信人抵賴和信件被途中篡改。 PGP用的實際上是RSA和傳統加密的雜合演算法。因為RSA演算法計算量極大在速度上不適合加密大量數據,PGP實際上用來加密的不是RSA本身,而是採用了一種叫IDEA的傳統加密演算法。傳統加密,一般說來說就是用一個密匙加密明文,然後用同樣的密匙解密。這種方法的代表是DES,也就是乘法加密,它的主要缺點就是密匙的傳遞渠道解決不了安全性問題,不適合網路環境郵件加密需要。IDEA的加(解)密速度比RSA快得多,所以實際上PGP是以一個隨機生成密匙(每次加密不同)用IDEA演算法對明文加密,然後用RSA演算法對該密匙加密。這樣收件人同樣是用RSA解密出這個隨機密匙,再用IDEA解密郵件本身。這樣的鏈式加密就做到了既有RSA體系的保密性,又有IDEA演算法的快捷性。PGP利用這種鏈式加密,既保證了保密性,又保證了加密的速度。 PGP最核心的功能是:文件加密、通信加密和數字簽名。下面將簡介一些PGP輔助功能,它們雖然不是整個加密系統的核心,但卻起到了協調各部分和方便用戶的作用。這兒主要介紹PGP的密鑰管理機制。 一個成熟的加密體系必然要有一個成熟的密匙管理機制配套。公匙體制的提出就是為了解決傳統加密體系的密匙分配過程難以保密的缺點。如果密匙是通過網路傳送,那麼網路上其他人就可以通過監聽得到。舉個例子:Novell Netware 的老版本中,用戶的密碼是以明文在線路中傳輸的,這樣監聽者輕易就獲得了他人的密碼。當然 Netware 4.1 中數據包頭的用戶密碼現在是加密的了。對PGP來說公匙本來就要公開,就沒有防監聽的問題。但公匙的發布中仍然存在安全性問題,例如公匙的被篡改(Public Key Tampering),這可能是公匙密碼體系中最大的漏洞。必須有一種機制保證用戶所得到的公鑰是正確的,而不是別人偽造的。下面舉一個例子來說明這個問題,以及如何正確地用PGP堵住這個漏洞。