现代密码学基本知识
一 现代密码学基本知识
现代密码学的分类:
对称密码体制(传统密码体制)
非对称密码体制(公钥密码体制)
现在密码学的基本原则:
实际上的安全(虽然没有在理论上严格证明出来,但经过许多人许多年的攻击并没有找到有效的攻击方法)
柯克霍夫原则(密码系统的安全性不应该取决于不易改变的算法,而应该取决于可随时改变的密钥)
二 对称密码体制的缺陷
密钥分配问题
通信双方要进行保密通信,需要通过秘密的安全通道传送或协商加密密钥,而这种安全通道在实际中很难实现
密钥管理问题
在有N个用户的通信网络中,每个用户要想和其他N-1个用户进行通信,必须使用N-1个密钥,而系统中总的密钥数量将达到n(n-1)/2。当n 比较大时,这样大的密钥量,在生产和保存,传递,销毁等各个环节将变得复杂,易存在安全隐患。
数字签名问题
对称密码体制中通信双方拥有同样的密钥,所以接收方可以伪造签名,发送方也可以否认发送过某消息,难于解决陌生人之间的身份认证和交易不可否认的问题
三 公钥密码体制加解密原型
发送方A查找接收方B的公钥
A用公钥加密算法以B的公钥作为加密密钥对明文进行加密
A通过不安全信道将密文发送给B
B收到密文后使用自己的私钥对密文解密还原成明文
四 RSA加密算法及签名算法分析(因为linux ssh 登陆用的是ssh 所以单独分析一下)
转自 http://www.zhihu.com/question/25912483/answer/31653639,具体细节请移步大神的数学讲解。
RSA公钥加密体制包含如下3个算法:KeyGen(密钥生成算法),Encrypt(加密算法)以及Decrypt(解密算法)。
其中公钥用于对数据进行加密,私钥用于对数据进行解密。当然了,这个也可以很直观的理解:公钥就是公开的密钥,其公开了大家才能用它来加密数据。私钥是私有的密钥,谁有这个密钥才能够解密密文。否则大家都能看到私钥,就都能解密,那不就乱套了。
=================分割线=================
RSA签名体制。签名体制同样包含3个算法:KeyGen(密钥生成算法),Sign(签名算法),Verify(验证算法)。
在签名算法中,私钥用于对数据进行签名,公钥用于对签名进行验证。这也可以直观地进行理解:对一个文件签名,当然要用私钥,因为我们希望只有自己才能完成签字。验证过程当然希望所有人都能够执行,大家看到签名都能通过验证证明确实是我自己签的。
用公钥加密,私钥解密 —加密文件
用私钥加密,用公钥解密 –数字签名