《信息安全技术》实验一 PGP的原理与使用

《信息安全技术》实验一 PGP的原理与使用(macOS High Sierra下实现)

实验目的

  • 理解传统加密、公钥加密、混合加密、数字签名等概念
  • 理解公钥、私钥、会话密钥、对称密钥等概念及其应用
  • 掌握电子邮件安全应用
  • 熟悉PGP工具的使用

实验内容

  • 使用PGP进行传统加密
  • 使用PGP进行生成密钥对
  • 使用PGP进行混合方式加密
  • 使用PGP进行数字签名
  • 使用PGP交换并验证公钥
  • 使用PGP分割私钥

实验原理

在一个基于公钥密码体制的安全应用系统中,假设用户A和B分别拥有自己的公钥和私钥:

  1. 在产生A和B的密钥时,如果采用RSA算法,选取的模数n至少为1024位
  2. 为了预防A抵赖,B要求A对其发送的消息进行签名。A将使用A的私钥对消息签名;B使用A的公钥对A的签名进行验签。如果要求对消息保密传输,A将使用B的公钥对消息加密,B使用B的私钥解密消息。
  3. 实际应用中为了缩短签名的长度、提高签名的速度,而且为了更安全,常对信息的消息摘要进行签名。
  4. 实际应用中,通常需要进行身份认证。基于口令的认证简单易用,但是口令明文存储与传输很不安全,对口令认证机制可以进行如下改进:
    • 利用不需使用密钥的哈希算法加密口令,使口令能够以密文形式存储与传输。

实验步骤

一、安装GPG(macOS High Sierra下)

  1. 访问GPGTools网站,点击Download GPG Suite,下载GPG Suite for OS X 2017.1:

  2. 双击打开GPG_Suite-2017.1.dmg,运行安装操作:

  3. 双击Install,出现安装界面,单击继续:

  4. 在选择安装类型(Installation Type)的时候,选择自定义安装(Customize),单击自定:

  5. 去掉"GPGMail"前面的勾,单击安装:

  6. 再输入用户密码获取权限,随后安装完成。

二、创建PGP密钥

  1. 打开GPG,菜单栏中点击"新建",弹出"Generate new key pair"窗口,输入姓名、电子邮件和密码,创建PGP密钥:
  2. 展开"高级选项(Advanced options)",配置密钥类型、密钥长度和有效期:
    • 密钥类型选择RSA和RSA(默认):
      JoV8x.png
    • 密钥长度选择4096字节:
      OH2ey.png
    • 有效期选择一年,点击"Generate Key"生成密钥:
      JQDyR.png
  3. GPG会弹窗提示密码长度过短QAQ不过由于实验方便还是就用短一点的密码吧~点击"Continue with simple password"继续生成:
    JQ6w6.png
    随后GPG会生成4096个随机字节:
    JQrO1.png
    密钥成功创建!此时一定要点击"Upload Public Key",将公钥上传
    JQyex.png
    密钥成功生成如下:
    YuN4g.png

三、设置PGP快捷键

  1. 点击"🍎"-->"系统偏好设置"-->"键盘"-->"快捷键",点击左边的“服务”选项,在右侧中找到一系列以“OpenPGP开头”的操作,把前面的勾去掉:
    JQTmt.png

  2. 打勾启用以下四个操作,并设置快捷键:

    • OpenPGP: Decrypt设置为:control+option+command+minus(-)
    • OpenPGP: Encrypt设置为:control+option+command+equals(=)
    • OpenPGP: Sign设置为:control+option+command+open bracket([)
    • OpenPGP: Verify设置为:control+option+command+close bracket(])

    JQTmt.png

四、发送加密邮件

  1. 选择邮件内容,按control+option+command+open bracket进行签名,GPG会弹窗提示输入Passphrase:
    Ye5KP.png
    点击确认后获得签名(SIGNATURE)后的邮件:
    OaTpT.png
  2. 打开GPG Keychain Access应用,按command+F输入接收者的邮箱地址,软件会去公共密钥服务器上去搜索邮件接收者的公钥,如果对方有多个密钥,选择最新的一个:
    ObJdD.png
  3. 会看到一条确认信息,对方的公钥已经下载完成。点击"好"关闭:
    YeDu6.png
  4. 退出GPG Keychain Access回到邮件撰写页面,全选邮件内容,按control+option+command+equals进行加密,系统会弹出一个窗口,咨询接收者是谁,选择接收者的公钥,点击“OK”。此时,邮件的内容以及加密完成,可以安全发送:
    YerDK.png

五、解密邮件

  1. 复制邮件所有内容到文本编辑器Pages,包括“-----BEGIN PGP MESSAGE---”和“-----END PGP MESSAGE---”:
    YesHO.png
  2. 选中所有内容,按control+option+command+minus进行解密,输入设置的Passphrase,按“OK”就可以看到解密的邮件内容:
    Ye6ED.png
    得到揭秘之后的消息(待验签):
    YeW8A.png
  3. 复制消息到Pages,点击"Pages"-->"服务"-->"OpenPGP:Verify Signature of Selection"验证签名:
    YefgI.png
    成功验证签名:
    YecUe.png

思考题

根据PGP的加密原理,说明为什么PGP要比RSA加密速度要快得多。

  • 答:PGP不是加密方法,是一个软件。由于RSA算法是公钥加密算法,计算过程涉及到很大的幂指数运算,计算量极大,在速度上不适合加密大量数据,所以PGP实际上用来加密的不是RSA本身,而是采用传统加密算法IDEA,IDEA加解密的速度比RSA快得多。PGP随机生成一个密钥,用IDEA算法对明文加密,然后用RSA算法对密钥加密。收件人同样是用RSA解出随机密钥,再用IEDA解出原文。这样的链式加密既有RSA算法的保密性(Privacy)和认证性(Authentication),又保持了IDEA算法速度快的优势。

参考资料

posted @ 2017-10-16 11:21  20155314刘子健  阅读(3810)  评论(3编辑  收藏  举报
Live2D