您的位置:首页 > 其它

几种通信加密的方法(Key Agreement Protocol, Digital Signatures, RSA from Blown to Bits)

2011-05-30 13:03 225 查看
这几天在读《Blown to Bits》中有关加密的章节,在这里做些小结。《Blown to Bits》一本有关计算科学的科普书,这本书是以Creative Commons协议发布的,可以从http://www.bitsbook.com/免费下载。



Key Agreement Protocol

通过场景介绍基本原理是比较通俗易懂的方式,这里首先布置一个场景:



主人公:小白,小黑,小花



背景:小白想和小黑通过公网通信,小花想***





人物介绍:

小白:拥有一个数字私匙a

小黑:拥有一个数字私匙b



非人物介绍:

公共公匙:g,任何人都可以获得





双方开始通话:

小白:利用公共公匙g和自己的私匙a生成自己的公匙A

小黑:利用公共公匙g和自己的私匙b生成自己的公匙B

小白:获取小黑的公匙B,并利用自己的私匙a与B进行运算C = a * B = a * b* g

小黑:获取小白的公匙A,并利用自己的私匙b与A进行运算C = b * A = b * a* g

小花:获取了公匙g, A, B,但无法获得C

这样,双方就可以利用C进行加密、解密操作从而进行安全通信了。



我的迷惑:知道了g和A,难道不能计算出a = A/g吗?不太明白这个数学上的原理,书里也没细讲,欢迎热心人留言讲解一下:)



Public Keys for Private Messages

主人公:小白,小黑们,小花



背景:小白想让小黑们给他发送加密的信息,小花想获取这些信息







人物介绍:

小白:拥有一个数字私匙a,一个公匙A = a * g

小黑:拥有一个数字私匙b,一个公匙B = b * g



非人物介绍:

公共公匙:g,任何人都可以获得



小黑们开始向小白发送消息:

小黑:接受小白的公匙A,利用自己的私匙b和小白的公匙A对数据进行加密C = A * b,然后将加密数据和公匙B发送给小白

小白:接受小黑们的加密信息信息和公匙B,利用C = a * B解密信息

小花:获取了A,B,g,但无法解密数据



这种方式的核心仍是Key Agreement Protocol的原理,与Key Agreement Protocol的不同之处是小黑往往每次都换私匙b,因为不涉及到交互,因此保密性更强。









Digital Signature

数字签名的一个主要作用是验证发行人,例如验证声明为小白发布的信息的确是小白所发布,而不是其他人的冒名顶替。





主人公:小白,小黑,小花



背景:小白发布了一个信息,加入自己的签名,小花想伪造小白的签名,从而发布虚假信息



人物介绍:

小白:拥有一个公匙-私匙对



小白开始发布信息:

小白:在自己发布的信息中提取一个digest,然后使用私匙对这个digest进行加密

小黑:使用小白的公匙对小白的digest进行解密,然后与小白所发布的信息进行对照,如果一致,则可以确定这个信息的确是小白所发

小灰:无法获得小白的私匙a,因此对digest进行加密



公匙-私匙对(key-pair)的主要实现算法就是RSA算法



RSA

RSA算法思想的提出是在Diffie和Hellman于1976年发表的论文中提出的,然后Ron Rivest, Adi Shamir和Len Adleman在1977年提出了一种算法实现。



其核心思想:使用私匙加密的数据只有用公匙才能解密,使用公匙加密的数据只有使用私匙才能解密







这种方法的数学原理我还不清楚,希望热心人帮忙补充:)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: