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用户会互相对对方的公钥进行数字签名。
信任网的要点是“不依赖认证机构”,而是建立每个人之间的信任关系。换言之,就是能够自己决定要信任哪些公钥。
该系列的主要内容来自《图解密码技术第三版》
我只是知识的搬运工
文章中的插图来源于原着