常用的密码学 --------参考文档
散列函数(也称哈希函数)算法 | 对称加密算法 | 非对称加密算法 | |
---|---|---|---|
MD5,SHA | DES,3DES,AES | RSA,DSA,ECC(椭圆加密算法) |
ECC
优势是可以使用更短的密钥,来实现与RSA相当或更高的安全
一,(散列算法)Hash 算法
散列算法(Hash Algorithm),又称哈希算法,杂凑算法。以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点
对不同的关键字可能得到同一散列地址,即key1≠key2,而f(key1)=f(key2),这种现象称碰撞。
*散列算法总结
特点 | 常用Hash函数 | Hash有哪些流行的算法 |
---|---|---|
正向快速;逆向困难;输入敏感; 冲突避免 | 直接取余法;乘法取整法;平方取中法 | MD5,SHA |
二、对称加密算法
DES :安全性不高
3DES:3DES因密钥长度变长,安全性有所提高,但其处理速度不高
AES:AES较于3DES速度更快、安全性更高
分组密码
分组密码(block cipher):是每次只能处理特定长度的一块数据的一类密码算法,这里的“一块”就称为分组(block)。一个分组的比特数就称为分组长度(block lenght)。例如 DES和3DES的分组长度都是64比特。AES的分组长度为128比特。
流密码(stream cipher):是对数据流进行连续处理的一类密码算法。流密码中一般以1比特、8比特、或32比特等为单位进行加密和解密。
迭代的方法就称为分组密码的模式(mode)
ECB模式:Electronic CodeBook mode(电子密码模式)
CBC模式:Cipher Block Chaining mode(密码分组链接模式)
CFB模式:Cipher FeedBack mode(密文反馈模式)
OFB模式:Output FeedBack mode(输出反馈模式)
CTR模式:CounTeR mode(计数器模式
三、非对称加密算法
-
公钥密码
( public-key cryptography),又称为非对称密码,密钥分为加密密钥和解密密钥两种。发送者用加密密钥对消息进行加密,接收者用解密密钥对密文进行解密。 -
加密密钥和解密密钥的区别
:
发送者只需要加密密钥
接收者只需要解密密钥
解密密钥不可以被窃听者获取
加密密钥被窃听者获取也没问题
解密密钥从一开始就是由接收者自己保管的,因此只要将加密密钥发给发送者就可以解决密钥配送问题了,而根本不需要配送解密密钥。
*公钥通信流程
我们还是假设Alice要给Bob发送一条消息,Alice是发送者,Bob 是接收者,而这次窃听者Eve依然能够窃听到他们之间 的通信内容。
-
中间人攻击
虽然不能破译RSA,但却是一种针对机密性的有效攻击。所谓中间人攻击,就是主动攻击者Mallory混入发送者和接收者的中间,对发送者伪装成接收者,对接收者伪装成发送者的攻击方式,在这里,Mallory就是“中间人”。
要防御中间人攻击,还需要一种手段来确认所收到的公钥是否真的属于Bob,这种手段称为认证。在这种情况下,我们可以使用公钥的证书。
------数字签名
四、数字签名
- 公钥密码机制
公钥密码包括一个由公钥和私钥组成的密钥对,其中公钥用于加密,私钥用于解密。用公钥加密所得到的密文只有 用与之对应的私钥才能正确解密。 - 数字签名
数字签名中也同样会使用公钥和私钥组成的密钥对,不过这两个密钥的用法和公钥密码是相反的,即用 私钥加密 相当于 生成签名,而用 公钥解密 则相当于验证签名。
数字签名的方法
1)直接对消息签名
Alice需要事先生成一个包括公钥和私钥的密钥对,而需要验证签名的Bob则需要得到Alice的公钥。在此基础上,签名和验证的过程如下:
签名和验证过程2)对消息的散列值签名
先用单向散列函数求出消息的散列值,然后再将散列值进行加密(对散列值签名)就可以了。
应用
1,网站应用 ---浏览器里面的锁
2,代码签名 ---可执行文件里面的数字证书。
根证书可以被轻易添加或者修改,
五,PKI公钥基础设施---双密钥对(加解密,签名密钥对)
公钥证书
:公钥:用户的基本信息+
认证机构( Certification Authority. Certifying Authority, CA )施加数字签名
公钥基础设施( Public-Key Infrastructure)是为了能够更有效地运用公钥而制定的一系列规范和规格的总称。公钥基础设施( Public-Key Infrastructure)是为了能够更有效地运用公钥而制定的一系列规范和规格的总称。
PKI的组成要素主要有以下3个
- 用户一使用PKI的人
- 认证机构一颁发证书的人
- 仓库一保存证书的数据库
由于PKI中用户和认证机构不仅限于“人”(也有可能是计算机),因此我们可以给他们起一个特殊的名字,叫作实体( entitiy)。实体就是进行证书和密钥相关处理的行为主体。
网友评论