电子邮件的安全问题已成为网络时代的一个重要课题。通过对电子邮件加密可以提高它在传输中的安全性,那么,我们今天就来给大家介绍一下电子邮件加密技术如何通过Visual C++实现。

一、电子邮件的加密技术

计算机网络安全问题涉及面甚广,数据保密(Data Confidentiality)是网络安全服务的一个重要方面,数据保密可通过给数据文件加密来实现。利用数据加密技术对电子邮件加密可防止邮件在传输过程中被别人截取或阅读,从而保证邮件的安全,数据加密技术分为非对称加密技术和对称加密技术两类,两类加密技术各有优缺点,使用中常常将两类技术结合在一起,以达到取长朴短目的。

1、对称加密技术

对称加密技术是基于对称密钥加密的算法。所谓的对称就可iam算法(symmetric algorithm),就是加密密钥能够从解密密钥中推算出来,解密密钥也可以从加密密钥中推算出来,在多数对称加密算法中,加密密钥和解密密钥是相同的,因此,该加密算法又称单密钥加密算法,对称加密算法可分成序列加密算法(steamalgorithm)和分组加密算法(block algorithm)两类,后者更为常用,目前常用的对称密钥加密算法有TEA、EDS和IDEA加密算法等。

对称加密和解密的原理图如图1所示:

电子邮件加密技术如何通过VC++实现

对称加密算法具有速度快、效率高的优点,但加密算法的安全性依附于密钥,密钥的管理相对复杂。

2、非对称加密技术

非对称加密技术基于非对称密钥加密的算法。非对称加密(dissymmetrical encryption),即加密的密钥与解密的密钥互不相同,且根据加密的密钥无法推算出解密的密钥。该加密算法又叫公开密钥加密算法(public key algorithm),即加密密钥可以公开,任何人均可利用它来加密信息,但只有用相应的解密密钥才能解密信息。加密密钥称作公开密钥( public_key),解密密钥称作私有密钥(private key)。常用的非对称加密算法是RSA加密算法。

非对称加密的优点是密钥的管理和使用简单。其缺点在于加密算法实现后的效率低、速度慢。

二、 IDEA加密算法原理

IDEA是常用的一种对称加密算法,该加密算法产生于上世纪90年代。

1、确定加密或解密的分组长度

利用IDEA加密算法对信息文件加密或解密,要对信息进行分组。一次加密或解密的分组长度64位,密钥长度为128位.加密和解密的密钥相同,但密钥的结构不同。

2、用IDEA加密算法加密或解密的过程

加密和解密的过程是一样的,只是所用的子密钥不同。IDEA加密算法的描述如图2所示,在加密时,64位的明文被分为4块,每块的长度为16位,设它们是Y1,Y2,Y3,Y4,作为第一次迭代的输入,整个过程要作8次迭代计算。

电子邮件加密技术如何通过VC++实现

三、电子邮件加密技术如何通过Visual C++实现

1、加密技术方案的确定

(1)加密算法的选择

要实现对电子邮件进行加密,首先要选择一种合适的加密算法和解密算法。IDEA加密算法具有速度快、效率高的优点,且属于单密钥算法,实现起来较为容易。因此选择IDEA加密算法作为电子邮件的加密算法。

(2)程序设计语言及开发工具的选择

加密算法确定以后,就要选择合适的程序设计语言及相应的开发工具来实现加密算法。Visual C+ +是Microsoft公司开发的基于C/C++的集成开发工具,它是Visual Studio中功能最为强大、代码效率最高的工具C++与C相比有许多优点,如封装性、继承性、多态性等.封装把数据和操作结合成一体,使程序结构更加紧凑,同时避免了数据紊乱带来的调试与维护困难。类构成了实现C++面向对象程序设计的基础。类是C++封装的基本单元,它把数据和函数封装在一起。当类的成员声明为保护时,外部不能访问;声明为公共时,则在任何地方都可以访问。

由于visual C++具有上述优点,可以选择C++为程序设计语言、visual C++为开发环境来实现IDEA加密算法。

2、在VC++中实现IDEA加密算法

(1)基本过程

在Visual C++中实现IDEA加密算法的基本过程是:在Visual C++环境下编写一个名为Cidea的类,这个类封装了IDEA加密算法,它可以对文件和字符串进行加密或解密操作。

(2)Cidea类的数据成员和成员函数

a类的私有效据成员

加密密钥/解密密钥

加密子密钥组

解密子密钥组

b类的私有成员函数

生成加密子密钥组的函数

生成解密子密钥组的函数以及用到它的函数:包括inv()

加密解密64位的函数以及用到它的函数:包括:mul()

c类的公有成员函数

构造函数

析构函散

加密函数(接口函数)

解密函数(接口函数)

Gct密钥函数(接口函数)

Set密钥函数(接口函数)

加密字符串函数(接口函效)

解密字符串函数(接口函致)

3、用Cidea类进行邮件加密与解密

用户可以通过将Cidea类引人到相应的电子邮件加密/解密工程中,并调用它的接口函数就可以实现邮件的加密或解密功能。

小知识之Visual Studio

Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。