系统集成论坛

标题: 加密算法及分类 [打印本页]

作者: 思考的牛    时间: 2013-10-6 18:29
标题: 加密算法及分类
常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES

常见的非对称加密算法:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)

常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1

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)算法

后,甲乙双方公开自己的公钥,使用对方的公钥和刚才产生的私钥加密数据,同时可以使用对方的公钥和自己的私钥对数

据解密。不单单是甲乙双方两方,可以扩展为多方共享数据通讯,这样就完成了网络交互数据的安全通讯!该算法源于中

国的同余定理——中国馀数定理。

ECDSA
椭圆曲线数字签名算法(ECDSA)设计的数学原理是基于椭圆曲线离散对数问题的难解性。EC点上离散对数的研究

现状表明:所使用的ECDSA密钥至少需要192比特,才能保证有足够的中长期安全。                                 
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并分类了各种变更

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更为安全。

CAST  
CAST算法是由加拿大的Carlisle Adams(Entrust Technologies)和Stafford Tavares共同设计的。尽管CAST常常

被看作算法,实际上它是用于构造算法的设计过程。结果算法(由CAST构造的算法)将是一个“CAST 算法”。
CAST设计过程的细节已经向密码学界公布了,专家们可以评论和分析它,并且必须承受全部密码分析的尝试。各

种各样的研究表明CAST比DES具有更强的抗攻击能力,而且在加密和解密上要更快一些。应用在Entrust产品线中的“CAST

算法”比典型的DES算法大约快5-6倍。
“CAST算法”是分组算法,它使用64位分组作为输入。“CAST算法”的设计允许可变的密钥长度,变化范围在

40-256位。“CAST算法”使用的迭代轮数由设计者决定。报告已经显示一个仅仅使用8轮迭代的“CAST算法”比DES(使用

16轮迭代)具有稍强一些的抗攻击能力。
CAST算法已经被美国和加拿大政府接受作为代替DES的后选算法之一。        
               
IDEA  
IDEA(International Data Encryption Algorithm)是瑞士的James Massey,Xuejia  Lai等人提出的加密算法,

在密码学中属于数据块加密算法(Block Cipher)类。
         IDEA使用长度为128bit的密钥,数据块大小为64bit。从理论上讲,IDEA属于“强”加密算法,至今还没有出现

对该算法的有效攻击算法
      
SKIPJACK
Skipjack分组加密算法是由美国国家安全局(NSA)从1985年开始设计,1990年完成评估,于1993年由美国政府正

式对外宣布的,是"Capstone"(美国政府根据1987年国会通过的计算机安全法案所订立的长远计划)中的一个项目(另外三

个项目分别是数字签名标准(DSA)、安全散列函数(SHA)及密钥交换方法)。Skipjack算法曾经被列为“机密”等级。
               
AES            
随着对称密码的发展,DES数据加密标准算法由于密钥长度较小(56位),已经不适应当今分布式开放网络对数据加

密安全性的要求,因此1997年NIST公开征集新的数据加密标准,即AES[1]。经过三轮的筛选,比利时Joan Daeman和Vincent

Rijmen提交的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.信息加密  

TWOFISH      
在1972到1974年中,National Bureau of Standards (现在更名为National Institute of Standards and

Tecnology,缩写为NIST)首次公开征求一种标准的数据加密算法,结果产生了 DES ( Data Encryption Standard) 加密

算法。

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杂凑函数的

设计原理类似。

ECC
2000年10月,国际密码学界在德国ESSEN召开了学术大会(ECC2000),在这次会议上,来自世界各国的密码学家

、数学家证明了对ECC算法的最快破解效率是高于亚指数级的,而RSA算法的最快破解效率是亚指数级的。ECC2000的召开

进一步从学术上奠定了ECC算法的安全性,极大的推动了它在世界各国的应用。

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 Computer

Science和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算法在身份验证和数据完整性方面可以得到很好的应用,在目前网络安全也得到较好的实现

SCB2
SCB2 算法是国家密码管理局推出的一款对称分组密码算法,与以往的对称分组密码算法相比具有安全性高,加

解密性能快等特点,因此目前 SCB2 算法成为国家主管部门在商用密码领域主力推广使用的对称分组密码算法。
SCB2 算法可以用于各种文件传输过程中进行加解密的安全文件传输系统。目前,该领域主要有使用县乡专用

SCB2 算法的安全文件传输系统如: SJY117 和使用通用 SCB2 算法的安全文件传输系统

SSF33
国内的一些行业应用智能卡规范中,凡是涉及到CPU卡的大多会提到采用SSF33算法。但是目前在任何公开的资料

中始终不能找到SSF33算法的详细内容,开始的时候大家都疑窦丛生,后来也就习以为常见怪不怪了。因为虽然规范中定

义了SSF33算法,但是在实际应用中几乎都不使用这套算法。尤其是针对那些需要在国际间实现互联互通的领域,比如银

行卡方面,从来就没用过SSF33算法。
  从本质上看,SSF33算法相当于3DES算法的一个扩展,但是在内部的具体实现方式,比如移位、迭代、替换、压

缩和扩充是否完全符合DES算法则不得而知。

  在加密领域也存在一些算法和密钥都不公开的模式,比如NXP公司的Mifare产品。不过这种不公开的算法很难保

证安全,因为没有经过众多破解专家的分析和破译,事实也证明了这种不安全。

    回过头来再看看我们的国产SSF33算法,假设它足够安全那就应该公开让大家去测评。否则,这种算法本身就没

有多大的存在意义。换句话说,对于这种存在潜在风险的加密算法不应该在应用中采纳。

     当然还有一种可能,就是我们的SSF33算法本身就是在DES算法基础上进行了简单的修改,安全性是没有问题的,

不过根本算不上一个全新的算法,这样也不好公开,否则我们怎么面对国内外专家的质疑呢?




欢迎光临 系统集成论坛 (http://bbs.xtjc.com/) Powered by Discuz! X3.1