加密算法概述

加密算法
  数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取、阅读的目的。
  该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程.
加密技术通常分为两大类:“对称式”和“非/不对称式”。
对称算法 
概述 
对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。只要通信需要保密,密钥就必须保密。对称算法的加密和解密表示为:

1
2
Ek(M)=C
Dk(C)=M

其具备:Dk(Ek(M))=M
对称算法-对称算法可分为两类
一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。另一类算法是对明文的一组位进行运算,这些位组称为分组,相应的算法称为分组算法或分组密码。现代计算机密码算法的典型分组长度为64位――这个长度大到足以防止分析破译,但又小到足以方便作用。
对称算法-常用的采用对称密码术的加密方案有5个组成部分
l)明文:原始信息。
2) 加密算法:以密钥为参数,对明文进行多种置换和转换的规则和步骤,变换结果为密文。
3) 密钥:加密与解密算法的参数,直接影响对明文进行变换的结果。
4) 密文:对明文进行变换的结果。
5) 解密算法:加密算法的逆变换,以密文为输入、密钥为参数,变换结果为明文。
不对称加密算法
概述
  非/不对称式加密使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
常见加密算法
  DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;
  3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高;
  RC2和 RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
  IDEA(International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;
  RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的,非对称算法;
  DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法;
  AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法;
  BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;
  MD5:严格来说不算加密算法,只能说是摘要算法