加密技术通常分为3种:“对称式”和“非对称式”,信息摘要算法(严格意义上不算加密算法)
1 密码系统概念 ---百科
2 加密算法原理
份分为三种:对称加密,非对称加密,摘要算法
(1 )对称式加密就是加密和解密使用同一个密钥。DES
常见对称加密
DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;
3DES(Triple DES):是基于DES的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。
RC2和RC4:对称算法,用变长密钥对大量数据进行加密,比 DES 快;
IDEA(International
Data Encryption Algorithm)国际数据加密算法,使用
128 位密钥提供非常强的安全性
AES(Advanced Encryption Standard):高级加密标准,对称算法,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法;
(2) 非对称加密
非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
另一方面,甲方可以使用乙方的公钥对机密信息进行加密后再发送给乙方;乙方再用自己的私匙对加密后的信息进行解密。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,优点在于无需共享的通用密钥;但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。(百度百科)
非对称加密的数学原理是 单项函数
使用方法; 如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得 十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。
常见非对称加密
RSA:基于数论非对称性(公开钥)加密算法。大整数的素因子难分解是RSA算法的基础。是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的. 使用RSA算法时,如果攻击者获得了私钥,那么他不仅能解密之前截获的消息,还能解密之后的所有消息。然而,RSA可以通过认证(如使用X.509数字证书)来防止中间人攻击,;
RSA的算法涉及三个参数,n、e1、e2。
其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。 e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。 (n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。[1]
RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n;
(3)hash算法
Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
常见的Hash算法有MD2、MD4、MD5、HAVAL、SHA
MD5:严格来说不算加密算法,只能说是摘要算法
对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在MD5算法中,首先需要对信息进行填充,使其字节长度对512求余的结果等于448。因此,信息的字节长度(Bits Length)将被扩展至N*512+448,即N*64+56个字节(Bytes),N为一个正整数。填充的方法如下,在信息的后面填充一个1和无数个0,直到满足上面的条件时才停止用0对信息的填充。然后,在这个结果后面附加一个以64位二进制表示的填充前信息长度。经过这两步的处理,现在的信息字节长度=N*512+448+64=(N+1)*512,即长度恰好是512的整数倍。这样做的原因是为满足后面处理中对信息长度的要求。(可参见MD5算法词条)
编辑本段
3 性能评估
简单,对称密钥加密解密都是一个钥匙,所以每两人之间都要一个密钥,N个人就需要N*(N-1)个.非对称加密用公钥,解密用私钥,所以每人只需要一对钥匙,公钥发给所有人,私钥自己保存.至于安全性,对称加密密钥一旦泄露,就需要重新约定,那么如何将约定的新密钥安全的传给对方就是一个问题.而非对称加密只要自己换一对密钥,在网上重新公布一下公钥就好了.