一下是我整理的数据加密的一些基础知识,囊括数据加密的所有种类概括以及大部分常用数据加密的介绍;
前提:
加密技术是电子商务采取的主要安全保密措施,是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术的应用是多方面的,但最为广泛的还是在电子商务和VPN上的应用,深受广大用户的喜爱。
分类:
一、按照加密时对明文的处理方式,密码算法可分为序列密码和分组密码算法.
1、序列密码算法是对明文消息按字符逐位进行处理,它利用少量的密钥通过某种复杂的运算产生大量的伪随机位流,用于对明文位流的加密;密钥在每次使用之前必须更换,一般存储在密码设备内部或是从外部输入密码设备的;它的优点在于运算速度快,适合干线信息加密:其缺点是密钥变换过于频繁,密钥分配较难,密钥同步问题严重。
2、分组密码算法是把密文分成等长的组分别加密,由于它适应了网络数据成块处理的需要以及易于解决密码同步问题,成为了商用密码的主流。
二、按照加解密时密钥是否相同来分类,可以将加密算法分为对称密码算法(或称单钥制密码算法)和公钥制密码算法Hash算法.
1、对称算法在日称密码算法中,收信方和发信方使用相同的密钥(简称密钥).即加密密钥和解密密钥是相同或等价的.比较著名的对称密码算法是美国的DES及其各种变形,比如DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、AESTriple、FEAL-N、LOKI-91、Skipjack等。对称密码的缺点是密钥分配问题严重,因为它需要一个单独的安全信道,对N个用户相互通信而言,需要N(N-1)/2组密钥。
AES
随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[1]。经过三轮的筛选,比利时Joan
Daeman和VincetRijmen提交的Rijndael算法被提议为AES的最终算法。此算法将成为美国新的数据加密标准而被广泛应用在各个领域中。尽管人们对AES还有不同的看法,但总体来说,AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用和灵活等优点。
BLOWFISH
BlowFish算法用来加密64Bit长度的字符串。
BlowFish算法使用两个“盒”——ungigned long
pbox[18]和unsigned long sbox[4,256]。
BlowFish算法中,有一个核心加密函数:BF_En(后文详细介绍)。该函数输入64位信息,运算后,
以64位密文的形式输出。 用BlowFish算法加密信
息,需要两个过程: 1.密钥预处理
2.信息加密
DES
数据加密算法(Data
Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初
开发的DEA是嵌入硬件中的。通常,自动取款机(Automated Teller
Machine,ATM)都使用DEA。它出自IBM的研究工作,IBM也曾对它拥有几年的专利
权,但是在1983年已到期后,处于公有范围中,允许在特定条件下可以免除专利使用费而使用。1977年被美国政府正式采纳。
还有DES2和DES3等算法。
3DES
3DES(即Triple
DES)是DES向AES过渡的加密算法,它使用3条64位的密钥对数据进行三次加密。是DES的一个更安全的变形。它以DES为基本模块,通
过组合分组方法设计出分组加密算法。比起最初的DES,3DES更为安全。
RC2
RC2是由著名密码学家Ron
Rivest设计的一种传统对称分组加密算法,它可作为DES算法的建议替代算法。它的输入和输出都是64比特。密钥的长度是
从8字节到128字节可变,但目前的实现是8字节(1998年)。
RC4
RC4加密算法是大名鼎鼎的RSA三人组中的头号人物Ron
Rivest在1987年设计的密钥长度可变的流加密算法簇。之所以称其为簇,是由于其核心部分的
S-box长度可为任意,但一般为256字节。该算法的速度可以达到DES加密的10倍左右,且具有很高级别的非线性。RC4起初是用于保护商业机密的。但
是在1994年9月,它的算法被发布在互联网上,也就不再有什么商业机密了。RC4也被叫做ARC4(Alleged
RC4——所谓的RC4),因为RSA从来就没有
正式发布过这个算法。
RC5
RC5密码是1994由麻萨诸塞技术研究所的RonaldL.Rivest教授发明的。它是一种非常快速且简单的算法由块尺寸,轮数,和密钥长度参数化。这些参数
能被调整以满足不同的安全目的,性能和出口能力。合并的RSA数据安全已经归档了RC5密码的专利的申请和RC5,RC5-CBC,RC5-CBC-Pad,RC5-CTS并
分类了各种变更
ECDSA
椭圆曲线数字签名算法(ECDSA)设计的数学原理是基于椭圆曲线离散对数问题的难解性。EC点上离散对数的研究现状表明:所使用的ECDSA密钥至少需
要192比特,才能保证有足够的中长期安全。
SKIPJACK
Skipjack分组加密算法是由美国国家安全局(NSA)从1985年开始设计,1990年完成评估,于1993年由美国政府正式对外宣布的,是"Capstone"(美国政
府根据1987年国会通过的计算机安全法案所订立的长远计划)中的一个项目(另外三个项目分别是数字签名标准(DSA)、安全散列函数(SHA)及密钥交换
方法)。Skipjack算法曾经被列为“机密”等级。
2、在公钥密码中,收信方和发信方使用的密钥互不相同,而且几乎不可能由解密密钥(简称公钥)推导出加密密钥(简称私钥)。比较著名的公钥密码算法有:RSA、McEliece密码、Diffe-Hcllman、Rabin、Ong-Fiat
Shamir、零知识证明的算法、ECC、EIGamal算法等公钥制密码算法的优点在于它密钥分配很方便.不需要单独的安全密钥信道,并且N个用户相互通信时只要N组密钥(公钥和私钥),从公钥到私钥的过程是不可逆的。同时它还具有身份的认证性,可满足当前数字签名等认证的需受.例如RSA
DSA(数字签名)
RSA
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA公钥加密算法是1977年由Ron
Rivest、Adi Shamirh和LenAdleman在(美
国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,
已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困
难,因此可以将乘积公开作为加密密钥。
DSA
Digital
Signature Algorithm
(DSA)是Schnorr和ElGamal签名算法的变种,被美国NIST(美国国家标准局)作为数字签名标准(DigitalSignature
Standard)。同样属于公匙密码体系,并使用Secure Hash Algorithm(SHA/SHA-1)作为中间单向计算算法。
DH
Diffie-Hellman算法(D-H算法),密钥一致协议。是由公开密钥密码体制的奠基人Diffie和Hellman所提出的一种思想。简单的说就是允许两名用户在
公开媒体上交换信息以生成"一致"的、可以共享的密钥。换句话说,就是由甲方产出一对密钥(公钥、私钥),乙方依照甲方公钥产生乙方密钥对
(公钥、私钥)。以此为基线,作为数据传输保密基础,同时双方使用同一种对称加密算法构建本地密钥(SecretKey)对数据加密。这样,在互通了
本地密(SecretKey)算法后,甲乙双方公开自己的公钥,使用对方的公钥和刚才产生的私钥加密数据,同时可以使用对方的公钥和自己的私钥对数据
解密。不单单是甲乙双方两方,可以扩展为多方共享数据通讯,这样就完成了网络交互数据的安全通讯!该算法源于中国的同余定理—中国馀数定理
ECC
2000年10月,国际密码学界在德国ESSEN召开了学术大会(ECC2000),在这次会议上,来自世界各国的密码学家、数学家证明了对ECC算法的最快破解
效率是高于亚指数级的,而RSA算法的最快破解效率是亚指数级的。ECC2000的召开进一步从学术上奠定了ECC算法的安全性,极大的推动了它在世界各
国的应用。
3、HASH 算法:HASH算法是一种单向算法。通过单项三列函数,一类特殊的加密算法,一般用来认证,输入变长的数据可获得定长的输出,输入数据发生变化输出数据立即发生变化。通过特定HASH算法可以对原始数据生成特定的HASH值数据,但是反向不可逆的;例如MD5
,主要用于密码存储。例如各大型门户网站存储的用户密码的数据形式应该是HASH算法之后的形式。有:MD5、RSA、MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
SHA
SHA(即Secure
Hash Algorlthm,安全散列算法)是一种常用的数据加密算法.它由美国国家标准与技术局(Natlonal Instituteof Standards
and
Technology)于1993年作为联邦信息处理标准公布(即第一代SHA算法——SHA-0)。在1995年和2002年.其改进版本SHA-1、SHA-2也分别正式公布
(SHA-1和SHA-2具有比SHA-0更高的安全性)。SHA算法与MD5算法的设计原理类似.同样也按2blt数据块为单位来处理输入
SHA-1
SHA-1杂凑算法起初是针对DSA算法而设计的,其设计原理与Ron
Rivest提出的MD2,MD4,尤其是MD5杂凑函数的设计原理类似。
MD2
Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息
末尾。并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验将和MD2产生冲突。MD2算法加密后结果是唯一
的-----即没有重复。
MD4
MD4是麻省理工学院教授Ronald
Rivest于1990年设计的一种信息摘要算法。它是一种用来测试信息完整性的密码散列函数的实行。其摘要长度为128
位。这个算法影响了后来的算法如MD5、SHA 家族和RIPEMD等。
MD5
MD5的全称是Message-Digest
Algorithm 5(信息-摘要算法),在90年代初由MIT Laboratory for ComputerScience和RSA Data
Security Inc的
Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。
HAMC
HAMC是密钥相关的哈希运算消息认证码(keyed-Hash Message
Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成
一个消息摘要作为输出。HMAC引擎提供HMAC运算功能,发挥两方面的作用:
(1)验证TPM接受的授权数据和认证数据;
(2)确认TPM接受到的命令请求是已授权的请求,并且,命令在传送的过程中没有被改动过。
HMAC_SHA1
HMAC_SHA1(Hashed Message
Authentication Code, Secure Hash Algorithm)是一种安全的基于加密hash函数和共享密钥的消息认证协议。它可以有
效地防止数据在传输过程中被截获和篡改,维护了数据的完整性、可靠性和安全性。HMAC_SHA1消息认证机制的成功在于一个加密的hash函数、一个加
密的随机密钥和一个安全的密钥交换机制。HMAC_SHA1 其实还是一种散列算法,只不过是用密钥来求取摘要值的散列算法。
HMAC_SHA1算法在身份验证和数据完整性方面可以得到很好的应用,在目前网络安全也得到较好的实现
三、 除了以上几类密码外,近些年米,国内外还在研究的多种其他新型密码,
如量子密码(Quantum
Cryptography).热流密码(Heat Flow Cryptography).混沌密码(Chaos Cryptography)和图视密码(Visual
Cryptography)。
这些都还处于预研段,特别是其安全性和可靠性需要研究.离实用尚有距离.