1.原理
电子邮件在网络上传输的过程中易于被第三方窥视和篡改,采用现代密码算法对邮件加密和签名可以有效的防御这些威胁。以RSA公钥算法为例,RSA加密基于难以对大数进行分解质因子的数学假设,使用2 个大素数的乘积导出一对称为公钥私钥的数。这2 个密钥是互补的,公钥加密的密文可以用对应的私钥解密,公钥只会确认对应的私钥计算出的签名值
邮件发送者只需要使用收件人的公钥加密邮件,加密后的邮件只有拥有私钥的收件人才可能有办法解密阅读,也就实现了邮件的加密,从而保证了邮件不会被任何第三者所阅读。
邮件发送者使用自己的私钥在邮件上签名过程为:邮件的内容通过哈希函数运算取得一个唯一的哈希值,对哈希值使用私钥运算产生一个签名值。由于公钥可以验证对应的私钥所产生的签名值与内容的一致性,邮件的内容有任何改变都会导致验证的失败。这样,收件人收到邮件时即可知道邮件的内容是否被篡改。
以现有的个人和商业机构甚至大多数国家的计算能力,在没有私钥的情况下解密内容或者是伪造签名是不可能的,所以传输的过程中被第三者截取仍然不至于泄密或是被篡改
2.实施与操作
实际的应用系统中,用户的公私钥对是包含在用户的数字证书中的。在网络中部署证书服务后,用户即可在客户端申请到数字证书。证书服务的部署过程比较复杂,需要专业技术人员予以规划、部署和实施。用户对邮件的签名验证、加密解密,都通过邮件客户端软件完成。客户端的操作方法是简单的,以下是几种主流的客户端相关操作方法。
 Outlook:选择“工具”-“选项”-“安全”,打开“安全”选项页,在上方的“加密邮件”栏中,通过复选框选择是否需要加密所有发出的邮件,或者为所有发出的邮件签名。单击“默认设置”旁边的“设置”按钮,在弹出的“更改安全设置”对话框中,单击“选择”指定用于加密和签名的数字证书,指定加密算法以及选择是否在发送签名的邮件时将包含公钥的证书一同发出。设置完毕后,在使用Outlook撰写邮件时,可以使用邮件编辑窗口工具栏上的“签名”和“加密”按钮,使用发件人的证书对邮件签名或使用收件人的证书加密邮件。   
Outlook Express:选择“工具”-“选项”-“安全”,打开“安全”选项页,在下方的“安全邮件”栏中,通过复选框选择是否需要加密所有发出的邮件,或者为所有发出的邮件签名。单击“设置”按钮,可以在“高级安全设置”对话框中作更详细的设置,选择在收到签名的邮件时是否自动验证证书,以及是否将对方的证书添加到地址簿,以便用于在将来发送加密邮件给对方。设置完毕后,编辑邮件时即可使用邮件编辑窗口工具栏上的“签名”和“加密”按钮,使用发件人的证书对邮件签名或使用收件人的证书加密邮件。   
FoxMail:选择“账户”-“账户属性”-“安全”-“选择”,在弹出的“选择证书”对话框中选中证书名称前的复选框并单击“确定”,返回“账户属性”对话框,右侧将显示证书的相关信息。单击“确定”关闭“账户属性”存储设置,以后在使用Foxmail 编辑邮件时,通过邮件编辑窗口工具栏上的“签名”和“加密”按钮,使用自己的发件人的证书签名或使用收件人的证书加密邮件。
在完成上述操作之后,您就可以确信邮件在传输过程中不会被窃取和篡改了。