A. PGP軟體如何對文件加密,解密使用PGP軟體如何對文件數字簽名
在文件上點右鍵,會出現pgp功能菜單,在這里可以看到加密、解密、簽名的功能。
B. 網路安全與保密
1、《中華人民共和國信息系統安全保護條例》(1994年2月18日)
2、PGP是一個基於RSA公匙加密體系的郵件加密軟體。可以用它對你的郵件保密以防止非授權者閱讀,它還能對你的郵件加上數字簽名從而使收信人可以確信郵件是你發來的。它讓你可以安全地和你從未見過的人們通訊,事先並不需要任何保密的渠道用來傳遞密匙。它採用了:沖碰汪審慎的密匙管理,一種RSA和傳統加密的雜合演算法,用於數字簽名的郵件文摘演算法,加密前壓縮等,還有一個良好的人機工程設計。它的功能強大有很快的速度。
PGP是一種供大眾使用的加密軟體。加密是為了安全,私密權是一種基本人權。在現代社會里,電子郵件和網路上的文件傳輸已經成為生活的一部分。郵件的安全問題就日益突出了,大家都知道在Internet上傳輸的數據是不加密的。如果你自己不保護自己的信息,第三者就會輕易獲得你的隱秘。;還有一個問題就是信息認證,如何讓收信人確信郵件沒有被第三者篡改,就需要數字簽名技術。RSA公匙體系的特點使它非常適合用來滿足散仔上述兩個要求:
保密性(Privacy)和認證性()。
RSA(Rivest-Shamir-Adleman)演算法是一種基於大數不可能質因數分解假設的公匙體系。簡單地說就是找兩個很大的質數,一個公開給世界,一個不告訴任何人。一個稱為「公匙」,另一個叫「私匙」(Public;key;&;Secretkey;or;Private;key)。這兩個密匙是互補的,就是說用公匙加密的密文可以用私匙解密,反過來也一樣。假設甲要寄信給乙,他們互相知道對方的公匙。甲就用乙的公匙加密郵件寄出,乙收到後就可以用自己的私匙解密出甲的原文。由於沒別人知道乙的私匙所以即使是甲本人也無法解密那封信,這就解決了信件保密的問題。另一方面由於每個人都知道乙的公匙,他們都可以給乙發信,那麼乙就無法確信是不是甲的來信。認證的問題就出現了,這時候數字簽名就有用了。
在說明數字簽名前先要解釋一下什麼是「郵件文摘」(message;digest),單地講就是對一封郵件用某種演算法算出一個能體現這封郵件「精華」的數來,一旦郵件有任何改變這個數都會變化,那麼這個數加上作者的名字(實際上在作者的密匙里)還有日期等等,就可以作為一個簽名了。確切地說PGP是用一個128位的二進制數作為「郵件文摘」的,用來產生它的演算法叫MD5(message;digest;5),MD5的提出者是Ron;Rivest,PGP中使用的代碼是由Colin;Plumb編寫的,MD5本身是公用軟體。所以PGP的法律條款中沒有提到它。MD5是一種單向散列演算法,它不像CRC校驗碼,很難找到一份替代的郵件而與原件具有一樣的「精華」。
回到數字簽名上來,甲用自己的私匙將上述的128位的「精華」加密,附加在郵件上,再用乙的公匙將整個郵件加密。這樣這份密文被乙收到以後,乙用自己的私匙將郵件解密,得到甲的原文和簽名,乙的PGP也從原文計算出一個128位的「精華」來再用甲的公匙解密簽名得到的數比較,如果符合就說明這份郵件確實是甲寄來的。這樣兩個要求都得到了滿足。
3、數字水印是一種有效的數字產品版權保護和數據安全維護技術。作為在信息時代下進行數字產品版權保護的新技術,它可以確定版權所有者,識別購買者或者提供關於數字內容的其他附加信息,並將這些信息以人眼不可見的形式嵌入在多媒體信息中。視頻水印吵源可理解為針對數字視頻載體的主觀和客觀的時間冗餘和空間冗餘加入信息,即不影響視頻質量,又能達到用於版權保護和內容完整性檢驗目的的數字水印技術。近年來數字水印技術取得了很大的發展,但研究方向主要集中於靜止圖像水印技術,在視頻水印研究方面,由於包括空間掩蔽效應等特性在內的更為精確的人眼視覺模型尚未完全建立,使得視頻水印技術相對於圖像水印技術發展滯後,現有的標准視頻編碼格式又造成了水印技術引入上的局限性,一些針對視頻水印的特殊攻擊形式(如幀重組、幀平均、幀間組合、幀刪除等)的出現,以及視頻水印演算法的實時性和盲檢測等特點使得視頻水印研究面臨著新的挑戰。
C. 誰知道加密軟體PGP的加密原理是什麼
PGP是一個基於RSA公匙加密體系的郵件加密軟體。可以用它對你的郵件保密以防止非授權者閱讀,它還能對你的郵件加上數字簽名從而使收信人可以確信郵件是你發來的。它讓你可以安全地和你從未見過的人們通訊,事先並不需要任何保密的渠道用來傳遞密匙。它採用了:審慎的密匙管理,一種RSA和傳統加密的雜合演算法,用於數字簽名的郵件文摘演算法,加密前壓縮等,還有一個良好的人機工程設計。它的功能強大有很快的速度。而且它的源代碼是免費的。
實際上PGP的功能還不止上面說的:;PGP可以用來加密文件,還可以用PGP代替UUencode;生成;RADIX;64;格式(就是MIME;的;BASE;64格式)的編碼文件。
PGP;的創始人是美國的;Phil;Zimmermann。他的創造性在於他把RSA公匙體系的方便和傳統加密體系的高速度結合起來,並且在數字簽名和密匙認證管理機制上有巧妙的設計。因此PGP成為幾乎最流行的公匙加密軟體包。
PGP是一種供大眾使用的加密軟體。加密是為了安全,私密權是一種基本人權。在現代社會里,電子郵件和網路上的文件傳輸已經成為生活的一部分。郵件的安全問題就日益突出了,大家都知道在Internet上傳輸的數據是不加密的。如果你自己不保護自己的信息,第三者就會輕易獲得你的隱秘。;還有一個問題就是信息認證,如何讓收信人確信郵件沒有被第三者篡改,就需要數字簽名技術。RSA公匙體系的特點使它非常適合用來滿足上述兩個要求:
保密性(Privacy)和認證性(Authentication)。
RSA(Rivest-Shamir-Adleman)演算法是一種基於大數不可能質因數分解假設的公匙體系。簡單地說就是找兩個很大的質數,一個公開給世界,一個不告訴任何人。一個稱為「公匙」,另一個叫「私匙」(Public;key;&;Secretkey;or;Private;key)。這兩個密匙是互補的,就是說用公匙加密的密文可以用私匙解密,反過來也一樣。假設甲要寄信給乙,他們互相知道對方的公匙。甲就用乙的公匙加密郵件寄出,乙收到後就可以用自己的私匙解密出甲的原文。由於沒別人知道乙的私匙所以即使是甲本人也無法解密那封信,這就解決了信件保密的問題。另一方面由於每個人都知道乙的公匙,他們都可以給乙發信,那麼乙就無法確信是不是甲的來信。認證的問題就出現了,這時候數字簽名就有用了。
在說明數字簽名前先要解釋一下什麼是「郵件文摘」(message;digest),單地講就是對一封郵件用某種演算法算出一個能體現這封郵件「精華」的數來,一旦郵件有任何改變這個數都會變化,那麼這個數加上作者的名字(實際上在作者的密匙里)還有日期等等,就可以作為一個簽名了。確切地說PGP是用一個128位的二進制數作為「郵件文摘」的,用來產生它的演算法叫MD5(message;digest;5),MD5的提出者是Ron;Rivest,PGP中使用的代碼是由Colin;Plumb編寫的,MD5本身是公用軟體。所以PGP的法律條款中沒有提到它。MD5是一種單向散列演算法,它不像CRC校驗碼,很難找到一份替代的郵件而與原件具有一樣的「精華」。
回到數字簽名上來,甲用自己的私匙將上述的128位的「精華」加密,附加在郵件上,再用乙的公匙將整個郵件加密。這樣這份密文被乙收到以後,乙用自己的私匙將郵件解密,得到甲的原文和簽名,乙的PGP也從原文計算出一個128位的 「精華」來再用甲的公匙解密簽名得到的數比較,如果符合就說明這份郵件確實是甲寄來的。這樣兩個要求都得到了滿足。
PGP還可以只簽名而不加密,這適用於公開發表聲明時,聲明人為了證實自己的身份(在網路上只能如此了),可以用自己的私匙簽名。這樣就可以讓收件人能確認發信人的身份,也可以防止發信人抵賴自己的聲明。這一點在商業領域有很大的應用前途,它可以防止發信人抵賴和信件被途中篡改。
那麼為什麼說PGP用的是RSA和傳統加密的雜合演算法呢?因為RSA演算法計算量極大在速度上不適合加密大量數據,所以PGP實際上用來加密的不是RSA本身,而是採用了一種叫IDEA的傳統加密演算法。我先解釋一下什麼叫傳統加密,簡單地說就是用一個密匙加密明文,然後用同樣的密匙解密。這種方法的代表是DES(US;Fed eral;DataEncryption;Standard),也就是乘法加密,它的主要缺點就是密匙的傳遞渠道解決不了安全性問題,不適合網路環境郵件加密需要。
IDEA;是一個有專利的演算法,專利持有者是ETH和一個瑞士公司:Ascom-Tech;AG。
D. 什麼是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堵住這個漏洞。
E. 如何用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參數用來恢復源文件加密時的文件名。
F. pgp加密的內容
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還可以只簽名而不加密,這適用於公開發表聲明時,聲明人為了證實自己的身份,可以用自己的私匙簽名。這樣就可以讓收件人能確認發信人的身份,也可以防止發信人抵賴自己的聲明。這一點在商業領域有很大的應用前途,它可以防止發信人抵賴和信件被途中篡改。
G. PGP加密軟體是怎麼對郵件進行加密處理的
過程和原理這個我也不不能正確解答,相信你也不會去看什麼說明的.我這里就說說是怎麼加密的吧
PGP加密郵件只能加密郵件客戶端,比如OUTLOOK,還要具備的條件就是棗逗,加密人的密鑰和接收人的密鑰才行.比如你要給我發送加密郵件,那麼你必須要在一台有安裝了PGP的電腦上用OUTLOOK來給我發送,並且那台電腦上的PGP裡面還加入了我的公鑰和你的私鑰.這樣,在發送郵件的時侯,PGP會自動查找收件人的公鑰,如果查找到了,就會讓你輸入你的私鑰穗者密碼來加密.如果沒找到則會提猜岩薯示你本次郵件是未加密發送的.大體就是這樣
還有什麼不清楚的,可以再問我.
H. 數據加密原理是什麼 數據解密原理介紹【詳解】
數據加密和解密,數據加密和解密原理是什麼?
隨著Internet 的普及,大量的數據、文件在Internet 傳送,因此在客觀上就需要一種強有力的安全措施來保護機密數據不被竊取或篡改。我們有幾種方法來加密數據流。所有這些方法都可以用軟體很容易的實現,但是當我們只知道密文的時候,是不容易破譯這些加密演算法的(當同時有原文和密文時,破譯加密演算法雖然也不是很容易,但已經是可能的了) 。最好的加密演算法對系統性能幾乎沒有影響,並且還可以帶來其他內在的優點。例如,大家都知道的pkzip ,它既壓縮數據又加密數據。又如,dbms 的一些軟體包總是包含一些加密方法以使復制文件這一功能對一些敏感數據是無效的,或者需要用戶的密碼。所有這些加判啟悔密演算法都要有高效的加密和解密能力。幸運的是,在所有的加密演算法中最簡單的一種就是“置換表”演算法,這種演算法也能很好達到加密的需要。每一個數據段(總是一個位元組) 對應著“置換表”中的一個偏移量,偏移量所對應的值就輸出成為加密後的文件。加密程序和解密程序都需要一個這樣的“置換表”。事實上,80x86 cpu 系列就有一個指令‘xlat’在硬體級來完成這樣的工作。這種加密演算法比較簡單,加密解密速度都很快,但是一旦這個“置換表”被對方獲得,那這個加密方案就完全被識破了。更進一步講,這種加密演算法對於黑客破譯來講是相當直接的,只要找到一個“置換表”就可以了。對這種“置換表”方式的一個改進就是使用2 個或者更多的“置換表”,這些表都是基於數據流中位元組的位置的,或者基於數據流本身。這時,破譯變的更加困難,因為黑客必須正確的做幾旁皮次變換。通過使用更多的“置換表”,並且按偽隨機的方式使用每個表,這種改進的加密方法已經變的很難破譯。比如,我們可以對所有的偶數位置的數據使用a 表,對所有的奇數位置使用b 表,即使黑客獲得了明文和密文,他想破譯這個加密方案也是非常困難的,除非黑客確切的知道用了兩張表。與使用“置換表”相類似“, 變換數據位置”也在計算機加密中使用。但是,這需要更多的執行時間。從輸入中讀入明文放到一個buffer 中,再在buffer 中對他們重排序,然後按這個順序再輸出。解密程序按相反的順序還原數據。這種方法總是和一些別的加密演算法混合使用,這就使得破譯變的特別的困難,幾乎有些不可能了。例如,有這樣一個詞,變換起字母的順序,slient 可以變為listen ,但所有的字母都沒有變化,沒有增加也沒有減少,但是字母之間的順序已經變化了。但是,還有一種更好的加密演算法,只有計算機可以做,就是字/ 位元組循環移位和xor 操作。如果我們把一個字或位元組在一個數據流內做循環移位,使用多個或變化的方向(左移或右移) ,就可以迅速的產生一個加密的數據流。這種方法是很好的,破譯它就更加困難! 而且,更進一步的是,如果再使用xor操作,按位做異或操作,就就使破譯密碼更加困難了。如果再使用偽隨機的方法,這涉及到要產生一系列的數字,我們可以使用fibbonaci 數列。對數列所產生的數做模運算(例如模3) ,得到一個結果,然後循環移位這個結果的次數,將使破譯次密碼變的幾乎不可能! 但是,使用fibbonaci 數列這種偽隨機的掘正方式所產生的密碼對我們的解密程序來講是非常容易的。在一些情況下,我們想能夠知道數據是否已經被篡改了或被破壞了,這時就需要產生一些校驗碼,並且把這些校驗碼插入到數據流中。這樣做對數據的防偽與程序本身都是有好處的。但是感染計算機程序的病毒才不會在意這些數據或程序是否加過密,是否有數字簽名。所以,加密程序在每次load 到內存要開始執行時,都要檢查一下本身是否被病毒感染,對與需要加、解密的文件都要做這種檢查! 很自然,這樣一種方法體制應該保密的,因為病毒程序的編寫者將會利用這些來破壞別人的程序或數據。因此,在一些反病毒或殺病毒軟體中一定要使用加密技術。
循環冗餘校驗是一種典型的校驗數據的方法。對於每一個數據塊,它使用位循環移位和xor 操作來產生一個16 位或32 位的校驗和,這使得丟失一位或兩個位的錯誤一定會導致校驗和出錯。這種方式很久以來就應用於文件的傳輸,例如xmodem - crc。這是方法已經成為標准,而且有詳細的文檔。但是,基於標准crc 演算法的一種修改演算法對於發現加密數據塊中的錯誤和文件是否被病毒感染是很有效的。
一個好的加密演算法的重要特點之一是具有這種能力:可以指定一個密碼或密鑰,並用它來加密明文,不同的密碼或密鑰產生不同的密文。這又分為兩種方式:對稱密鑰演算法和非對稱密鑰演算法。所謂對稱密鑰演算法就是加密解密都使用相同的密鑰,非對稱密鑰演算法就是加密解密使用不同的密鑰。非常著名的pgp公鑰加密以及rsa 加密方法都是非對稱加密演算法。加密密鑰,即公鑰,與解密密鑰,即私鑰,是非常的不同的。從數學理論上講,幾乎沒有真正不可逆的演算法存在。例如,對於一個輸入‘a’執行一個操作得到結果‘b’,那麼我們可以基於‘b’,做一個相對應的操作,導出輸入‘a’。在一些情況下,對於每一種操作,我們可以得到一個確定的值,或者該操作沒有定義(比如,除數為0) 。對於一個沒有定義的操作來講,基於加密演算法,可以成功地防止把一個公鑰變換成為私鑰。因此,要想破譯非對稱加密演算法,找到那個唯一的密鑰,唯一的方法只能是反復的試驗,而這需要大量的處理時間。
rsa 加密演算法使用了兩個非常大的素數來產生公鑰和私鑰。即使從一個公鑰中通過因數分解可以得到私鑰,但這個運算所包含的計算量是非常巨大的,以至於在現實上是不可行的。加密演算法本身也是很慢的,這使得使用rsa 演算法加密大量的數據變的有些不可行。這就使得一些現實中加密演算法都基於rsa 加密演算法。pgp 演算法(以及大多數基於rsa 演算法的加密方法) 使用公鑰來加密一個對稱加密演算法的密鑰,然後再利用一個快速的對稱加密演算法來加密數據。這個對稱演算法的密鑰是隨機產生的,是保密的,因此,得到這個密鑰的唯一方法就是使用私鑰來解密。
我們舉一個例子: 假定現在要加密一些數據使用密鑰‘12345’。利用rsa 公鑰,使用rsa 演算法加密這個密鑰‘12345’,並把它放在要加密的數據的前面(可能後面跟著一個分割符或文件長度,以區分數據和密鑰) ,然後,使用對稱加密演算法加密正文,使用的密鑰就是‘12345’。當對方收到時,解密程序找到加密過的密鑰,並利用rsa 私鑰解密出來,然後再確定出數據的開始位置,利用密鑰‘12345’來解密數據。這樣就使得一個可靠的經過高效加密的數據安全地傳輸和解密。但並不是經過加密的數據就是絕對安全的,數據加密是肯定可以被破解的,但我們所想要的是一個特定時期的安全,也就是說,密文的破解應該是足夠的困難,在現實上是不可能的,尤其是短時間內。
I. 密碼技術(十三)之PGP
————密碼技術的完美組合
PGP是於1990年穗衡左右由菲利普.季默曼(Philip Zimmermann)個人編寫的密碼軟體,現在依然在世界上被廣泛使用。PGP這個名字是Pretty Good Privary(很好的隱私)的縮寫。
PGP可以在Windows、Mac OS X、Linux等很多平台上運行,版本包括商用版和免費版。此外還有一個GNU遵照OpenGPG(RFC4880)規范編寫的叫作GnuPG(GNU privacy Guard)的自由軟體。
這里介紹的主要是根據PGP Command Line User's Guide 10.3 以及GnuPG2.1.4的內容編寫的。在詳細功能以及所支持的演算法方面,PGP和GunPG有所區別,而且不同的版本之間也會有所不同,這里介紹統一PGP為准。
OpenPGP是對密文和數字簽名格式進行定義的標准規格(RFC1991、RFC2440、RFC4880、RFC5581、RFC6637)。
1996年的RFC1991中對PGP的消息格式進行了定義。2007年的悶畢RFC4880中新增了對RSA和DSA的支持。2012年的RFC6637中新增了對橢圓曲線密碼(ECC)的支持,並且還支持基於Curve P-256、P-384和P-521三種橢圓曲線的橢圓曲線DSA和橢圓曲線Diffie-Hellman密鑰交換。
RFC6637中新增了用於比較密碼學強度的平衡的對照表。由這張表可知,例如當我們選用256比特的橢圓曲線密碼演算法時,相應低應該選用256比特的散列散發以及密鑰長度為128比特的對稱密碼演算法。
GNU Privacy Guard(GnuPG、GPG)是一款基於OpenPGP標准開發的密碼學軟體,支持加密、數字簽名、密鑰個管理、S/MIME、ssh等多種功能。GnuPG是基於GNU GPL協議發布的一款自由軟體,因此任何人都可以自由的使用它。GnuPG本身是一款命令行攻擊,但它也經常被集成到其他應用軟體中。
GnuPG 分為stable、modern和classic三個系列。
略
PGP的加密過程,如圖所示,消息經過混合密碼系統進行加密,然後轉換成報文數據(文本數據)。
這里的內容,和前面提到的混合密碼系統的結構基本上是一樣的,差異在於這里還包括了消息的壓縮以及二進制——>文本轉換(轉換為ASCII radix-64)這兩個步驟。
在上圖中,消息與相對應的簽名進行拼合,並最終轉換成報文數據(文本數據)。順便提一下,對於是否要將報文數據轉換成文本數據,在PGP是可以選擇的。
上圖展示了對消息生成數字簽名以及對消息進行壓縮和加密這兩個過程,並將兩者的結果拼合在一起形成報文數據(文本數據)。對於是否要將報文數據轉換成文本數據,在PGP中是可以選擇猜罩做的。
在使用PGP時,確認自己所得到的公鑰是否真的屬於正確的人是非常重要的,因為公鑰可能會通過中間人攻擊被替換。
證書就是由認證機構對公鑰所施加的數字簽名,通過驗證這個數字簽名就可以確認公鑰合法性。
然而,PGP中卻沒有使用認證機構,而二十採用了一種叫作 信任網 (web of trust)的方法。在這種方法中,PGP用戶會互相對對方的公鑰進行數字簽名。
信任網的要點是「不依賴認證機構」,而是建立每個人之間的信任關系。換言之,就是能夠自己決定要信任哪些公鑰。
該系列的主要內容來自《圖解密碼技術第三版》
我只是知識的搬運工
文章中的插圖來源於原著