加密算法的应用

Posted mutudou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了加密算法的应用相关的知识,希望对你有一定的参考价值。

以下是学习加密软件PGP的总结:

我使用的是PGP—Pretty Good Privacy,是一个基于RSA公钥加密体系的邮件加密软件。

它能实现对文件、邮件、磁盘、以及ICQ通信内容实现加密、解密、数字签名的功能,适合企业、政府机构、卫生保健部门、教育部门、家庭个人进行安全通信使用。并且,PGP公司针对不同部门的不同需要,分别推出了PGP不同的解决方案。

PGP的加密是采用了RSA以及杂合传统的加密算法来实现加密的。加密的关键在于一对密钥,该密钥对包含一个公钥以及一个私钥。公钥和私钥是根据某种数学函数生成的,并且通过一个密钥来推测另外一个密钥几乎是不可能的。其中,明文可以用公钥来加密,然后用私钥解密得到原文,明文也可以用私钥加密,然后用公钥解密得到原文。并且,一般来说,公钥用于加密,私钥用于数字签名。而且公钥是发给别人用来加密要发送给自己的文件的,而私钥是自己保留个人使用,不能供别人使用的。需要注意的是,明文通过用户A的公钥加密后,只能使用用户A的私钥解密,不能采用A以外的任何其他人的私钥解密;使用用户A的私钥加密的文件只能用A的公钥解密,不能使用A以外的任何其他人的公钥解密。由于私钥是自己保留,不给别人知道,因此,私钥除了加密的功能之外,还可以具有数字签名的作用。其机制在于:私钥只有自己才有,别人是没有你的私钥的,你用私钥可以对文件进行签名,而别人由于没有你的私钥,无法进行同样的签名,这样就能证明该文件是从你这里发出去的。而公钥是提供给要和你安全通信的人使用的。例如A想要和你通信,但是希望同新的内容不要被别人看到,就可以用你的公钥来对发送的内容进行加密,而你收到A发来的信息后就可以用你的私钥解密,可以阅读文件的内容。假设A发送的内容在途中被人截获了,但是没有你的私钥的话,一样是看不到明文的。这样PGP就能实现加密以及数字签名的功能。PGP之所以流行的原因是,加密的安全性非常高,同时加密速度又很快。

与PGP相关的加密、解密方法以及PGP的密钥管理机制:

PGP采用的传统加密技术部分所使用的密钥称为“会话密钥”(sek)。每次使用时,PGP都随机产生一个128位的IDEA会话密钥,用来加密报文。公开密钥加密技术中的公钥和私钥则用来加密会话密钥,并通过它间接地保护报文内容。

PGP把公钥和私钥存放在密钥环(KEYR)文件中。

PGP在多处需要用到口令,它主要起到保护私钥的作用。由于私钥太长且无规律,所以难以记忆。PGP把它用口令加密后存入密钥环,这样用户可以用易记的口令间接使用私钥。

PGP的每个私钥都由一个相应的口令加密。PGP主要在3处需要用户输入口令:需要解开收到的加密信息时,PGP需要用户输入口令,取出私钥解密信息 ;当用户需要为文件或信息签名时,用户输入口令,取出私钥加密 ;对磁盘上的文件进行传统加密时,需要用户输入口令

电子邮件通过开放的网络传输,网络上的其他人都可以监听或者截取邮件,来获得邮件的内容,因而邮件的安全问题就比较突出了。保护信息不被第三者获得,这就需要加密技术。还有一个问题就是信息认证,如何让收信人确信邮件没有被第三者篡改,这就需要数字签名技术。

 

具体流程:

第一步,PGP会提示这个向导的目的是生成一对密钥,你可以用它来加密文件或对数字文件进行签名。

技术图片

 

 

第二步,如果你要选择密钥的位数或者选择其他加密算法,点击“expert”高级选项,PGP会要求你输入全名和邮件地址。虽然真实的姓名不是必须的,但是输入一个你的朋友看得懂的名字,最好能让别人一下就认出你来,会使他们在加密时很快找到想要的密钥。选择一种加密类型。指定密钥的长度。通常来说位数越大被解密的可能性越小就越安全,但是在执行解密和加密时会需要更多的时间,一般2048位就ok了。 PGP会问你密钥的过期日期,可以选择从不过期或者指定一个日期作为过期的界限。否则就按“下一步”。

技术图片

 

 

第三步,请重复输入你的密码Passphrase。这个密码是对你的私钥进行加密,平时私钥是不公开的,万一别人拿到了你的私钥,没有这个密码,他也没办法使用。建议你的密码大于8位,并且最好包括大小写、空格、数字、标点符号等,为了方便记忆你可以用一句话作为你的密钥,如Amy is 12 years old.等。边上的“Hide Typing”指示是否显示键入的密码。

(Passphrase—口令,密码短语, 在功能上,passphrase同密码一样,只是长度较密码长。通常passphrase使用4到5个单词取代原来数字、字母结合的方式)

技术图片

 

 

第四步,接下来PGP会花一点点时间来生成你的密钥,一直“下一步”就可以完成了。

想废除密钥时,选取Revoke即可。

技术图片

 

 

 

分析:

如果希望发出的信件或者文件不被冒名或篡改,也可以对文件进行签名和加密。操作如下:选择要进行签名的文件,点击右键,选择“sign”。要注意的是,对文件签名只能证明是你发出该文件,但是文件的内容并没有被加密,同时,进行数字签名时,在意的是表明该文件是从自己这里发出,因此对于文件的内容并不在意被别人看到,经过数字签名的文件要同原明文文件一同发送给对方,对方才能验证数字签名是否有效。如果同时要表明文件从自己这里发出,同时又要对文件的信息保密,那么就选择“签名与加密”选项Encrypt&sign。 同样的,在选择密钥的对话框中,从对话框上部的密钥列表中,选择接收文件的用户拖到对话框的下部,点击“OK”。  确定接收人后,输入私钥的密码,进行数字签名或数字签名和加密。收件人使用你的公钥验证签名。

 

心得:

在OE中,如果安装了PGPmail for OutLook Express的插件,我们可以看到PGPmail加载到了OE的工具栏里, OE创建新邮件时,检查工具栏“加密信息(PGP)”和“签名信息(PGP)”按钮状态是否按下,当书写完纯文本的加密邮件时,填入对方Email地址。点击发送,这时PGPmail将会对其使用主密钥和对方公钥进行加密,加密后的邮件也只能由你和对方才能使用自己的私钥进行解密。PGPkey会在服务器上查找相应的公钥,以免对方更新密钥而造成无法收取邮件信息。点击取消,弹出Recipient Selection接收者选择窗口,从上方的列表中用鼠标进行双击添加到下面的接收者列表里面。点击OK,就可以发送通过PGP加密的邮件。接收:连接服务器并使用Outlook收取PGP加密邮件,打开时,看到的是乱码(PGP加密后的信息),这时,我们在任务栏点击PGP图标,在弹出的菜单中点击“当前窗口”-“解密&效验”,在弹出的窗口中输入你设定的密钥密码。将会成功解密邮件信息,并弹出文本查看器窗口,这个时候我们已经看到解密后的信息了。

以上是关于加密算法的应用的主要内容,如果未能解决你的问题,请参考以下文章

转:加密与解密

RSA/SHA1加密和数字签名算法在开放平台中的应用

Golang 椭圆加密算法实现

公钥加密的常见算法

DES加密算法应用:分组加密模式

openssl之对称加密算法命令详解