当今社会,网络安全是个火热的话题,在***泛滥的时代,数据的安全性总是那么令人担忧..密码学的研究和发展,对网络数据传输的安全性,起着举足轻重的作用。下面简单介绍下加密算法的原理吧. (是不是有点啰嗦..= =)
首先 简单说明下加密的一些相关术语
明文(plaintext)  密文(ciphertext)
算法(algorithm) 密钥(key)
加密(encryption) 解密(decryption)
一.密码学刚起步的时候,所采用的密码加密方式有以下几种:
1.置换 2.移位  3 置换加移位
1.置换
举个例子说明下,还比我要发送的信息为hellojack . 我可以进行如下置换,将每个字母的asc|| 码都加2
 置换出来的将会是→→→                        jgnnqlcem  与上文对应下  当你截获信息后你不清楚我的置换规则时,你将看不懂这些信息,如果我把这些信息通过互联网发给jack,然后打电话告诉他,我的信息是将每个字母的asc|| 码都加2,他只用反过来 就得到我发送的信息了
 
2.移位
好比我要发送的信息还为hellojack .   我实行移位加密 每3位字符中,我把一位和三位移位 换出来的结果是这样的 lehjklkca   下来同上是不是很简单?当然 实际的置换和移位比这个要复杂的多。
3.置换+移位 就是结合一下
可是但随着计算机的高速发展,这样的加密方式很容易被破解. pc 机的运算速度已经超过若干年前的上百倍,甚至千倍.
 
二.现在网络传输中的加密
先上张图吧。 加密传输的实现基本是这样的. 画的有点丑.基本就是这个过程 明文就是好比你要发送的信息, 都可以看懂的,明文经过你的公钥加密后成了密文
。将密文通过网络传输 发送到对方主机, ***如果在窃听网络的话,捕获你发送的密文数据.但是没有私钥.无法进行阅读,看到的将是乱码.. 密文传输到目标主机后 目标主机用你事先所给的私钥 进行解密 将会看到解密后的明文.基本过程是这样。
是不是对加密有了初步的了解.下面是一些难点..
 
加密算法的分类可分为两类.
一.对称密钥密码算法 
二.和非对称密钥密码算法。
那么他们的区别在什么??
首先来看对称加密算法 上图了..
应该能看的明白, ..举个简单的例子就是说,加密跟解密只是对于不同的人在不同的地点不同的时间怀着不同的心情本着不同的目的却做着同一件事..因为 加密的私钥和解密的私钥是相同的。。对于对称加密来说 优点是他的加密处理速度非常快,因为他的算法不是很复杂, 但是他的缺点是安全性,因为安全性全在于私钥上.私钥被偷了,也就完事了..
整个过程是这样的.清晰了点吧.
目前的一些对称加密算法
基于“对称密钥”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等。
  对称密钥:des、TripleDES算法
  DES算法把64位的明文输入块变为64位的密文输出块,它所使用的密钥也是64位。首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,并进行前后置换,最终由L0输出左32位,R0输出右32位,根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。
  DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行***外,还没有发现更有效的办法,而56位长密钥的穷举空间为256,这意味着如果一台计算机的速度是每秒种检测100万个密钥,那么它搜索完全部密钥就需要将近2285年的时间,因此DES算法是一种很可靠的加密方法。
  对称密钥:RC算法
  RC4算法的原理是“搅乱”,它包括初始化算法和伪随机子密码生成算法两大部分,在初始化的过程中,密钥的主要功能是将一个256字节的初始数簇进行随机搅乱,不同的数簇在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,将得到的子密钥序列和明文进行异或运算(XOR)后,得到密文。
  由于RC4算法加密采用的是异或方式,所以,一旦子密钥序列出现了重复,密文就有可能被破解,但是目前还没有发现密钥长度达到128位的RC4有重复的可能性,所以,RC4也是目前最安全的加密算法之一。 
二 非对称加密算法
在了解非对称加密算法前 需要明白一下概念
首先要明白一个概念:
1,公钥和私钥成对出现
2,公开的密钥叫公钥,只有自己知道的叫私钥
3,用公钥加密的数据只有对应的私钥可以解密
4,用私钥加密的数据只有对应的公钥可以解密
5,如果可以用公钥解密,则必然是对应的私钥加的密
6,如果可以用私钥解密,则必然是对应的公钥加的密
 非对称加密技术,又称作公钥加密技术,他可以理解为是私钥加密的又一升级.
如果你了解以上的概念,你看到这个图就会基本了解公钥加密技术了
举个很经典的例子你就会理解更透彻.
好比你要有份机密文件 要传送给我, 我去定制一个保险箱 这个保险箱只有一把钥匙,而且在我这里,我这时就可以把这个保险箱打开后邮寄给你,你把这份机密文件放进去,然后关好,再给我邮寄过来,然后我再打开取出文件。
这样的加密方式 在整个传输过程中是很安全的,在传输过程中 ***窃取到任何一部分信息都是无用的。除非他来我家把刀架我脖子上 让我交出我的钥匙。(我发现我还是挺能编故事的)..不像对称加密那样 密钥在传输过程也被截获了,那就悲剧了..。
公钥算法的一些特征和描述
另外在简单说明下数字签名
数字签名其实就是非对称加密算法反过来,我给你的信息 你用我给你颁发的私钥进行加密,然后传输过来,我用我的公钥进行解密,如果可以解开,我就检验通过,你是我当初颁发私钥的那位哥们。这在电子商务中应用比较多,比如现在的淘宝网,就需要用数字签名来验证用户的身份,还有就是网上银行也需要的。
 
非对称算法的实际应用举例
如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。

常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
 
在对hash算法的简单说明
Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。

常见的Hash算法有MD2、MD4、MD5、HAVAL、SHA

加密算法的效能通常可以按照算法本身的复杂程度、密钥长度(密钥越长越安全)、加解密速度等来衡量。上述的算法中,除了DES密钥长度不够、MD2速度较慢已逐渐被淘汰外,其他算法仍在目前的加密系统产品中使用。
 
各位有兴趣的多研究研究,很有意思的..呵呵