加密是将可读信息(明文)变为代码形式(密文);解密是加密的逆过程,相当于将密文变为明文。从本质上说加密技术是对信息进行编码和解码的技术。
加密算法有很多种,这些算法一般可分为三类:
对称加密算法;
非对称加密算法;
单向加密算法。
对称加密算法应用较早,技术较为成熟。其过程如下:
1:发送方将明文用加密密钥和加密算法进行加密处理,变成密文,连同密钥一起,发送给接收方;
2:接收方收到密文后,使用发送方的加密密钥及相同算法的逆算法对密文解密,恢复为明文。
在对称加密算法中,双方使用的密钥相同,要求解密方事先必须知道对方使用的加密密钥。其算法一般公开,优势是计算量较小、加密速度较快、效率较高。不足之处是,通信双方都使用同样的密钥,密钥在传送的过程中,可能被敌方获取,安全性得不到保证。当然,为了安全起见,用户每次使用该算法,密钥可以更换,但是原来通信的密钥也不能马上删除,这样,使得双方所拥有的密钥数量很大,对于双方来说,密钥管理较为困难。
对称加密算法中,目前流行的算法有:
DES;
3DES;
IDEA;
AES。
其中,AES由美国国家标准局倡导,即将作为新标准取代DES。
与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。每个人都可以产生这两个密钥,其中,公开密钥对外公开(可以通过网上发布,也可以传输给通信的对方),私有密钥不公开。
对于同一段数据,利用非对称加密算法具有如下性质:
1:如果用公开密钥对数据进行加密,那么只有用对应的私有密钥才能对其解密;
2:如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能对其解密。
非对称加密算法的基本过程是:
1:通信前,接收方随机生成一对公开密钥和私有密钥,将公开密钥公开给发送方,自己保留私有密钥;
2:发送方利用接收方的公开密钥加密明文,使其变为密文;
3:接收方收到密文后,使用自己的私有密钥解密密文,获得明文。
目前,在非对称密码体系中,使用得比较广泛的是非对称加密算法有:
RSA;
美国国家标准局提出的DSA;
非对称加密算法和对称加密算法相比,保密性较好
和对称加密算法相比,非对称加密算法的保密性比较好,在通信的过程中,只存在公开密钥在网络上的传输,而公开密钥被敌方获取,也没有用;因此,基本不用担心密钥在网上被截获而引起的安全的问题。但该加密体系中,加密和解密花费时间比较长、速度比较慢,一般情况下,它不适合于对大量数据的文件进行加密,而只适用于对少量数据进行加密。
单向加密算法加密时不需要使用密钥
另一类算法是单向加密算法。该算法在加密过程中,输入明文后由系统直接经过加密算法处理,得到密文,不需要使用密钥。既然没有密钥,那么就无法通过密文恢复为明文。
那么这种方法有什么应用呢?主要是可以用于进行某些信息的鉴别。在鉴别时,重新输入明文,并经过同样的加密算法进行加密处理,得到密文,然后看这个密文是否和以前得到的密文相同,来判断输入的明文是否和以前的明文相同。这在某种程度上讲,也是一种解密。
该方法计算复杂,通常只在数据量不大的情形下使用,如计算机系统口令保护措施中,这种加密算法就得到了广泛的应用。近年来,单向加密的应用领域正在逐渐增大。
应用较多单向加密算法的有:
RSA公司发明的MD5算法;
美国国家安全局(NSA) 设计,美国国家标准与技术研究院(NIST) 发布的SHA;等等。
大多数语言体系(如.net、Java)都具有相关的API支持各种加密算法。
提示:
加密算法的实现,实际上利用了高级语言中包装的API。实际上,在真实应用的场合,我们可以使用系统提供的加密解密函数进行加密解密,因为这些函数的发布,经过了严密的测试,理论上讲是安全的。
相关阅读:
小知识之密文:
为了确保网络安全,仅仅安装防火墙是不够的,还需要采用其他技术,如用户验证、入侵检测、密码技术等。所以产生了密文。通常我们把明文通过密钥加密成密文,从而保护我们的信息。