几种通信加密的方法(Key Agreement Protocol, Digital Signatures, RSA from Blown to Bits)
来源:互联网 发布:多客服源码 编辑:程序博客网 时间:2024/05/01 21:57
这几天在读《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年提出了一种算法实现。
其核心思想:使用私匙加密的数据只有用公匙才能解密,使用公匙加密的数据只有使用私匙才能解密
这种方法的数学原理我还不清楚,希望热心人帮忙补充:)
- 几种通信加密的方法(Key Agreement Protocol, Digital Signatures, RSA from Blown to Bits)
- An Introduction to XML Digital Signatures
- GKA(Group Key Agreement) 前言
- 工作中常常使用的几种加密以及签名的方式:RSA加密
- 数据加密-怎样确定RSA Key 的长度
- 数据加密-怎样确定RSA Key 的长度
- eclipse 上调试android的自带应用方法 二 (Re-installation failed due to different application signatures.)
- iOS下的RSA加密方法
- iOS下的RSA加密方法
- iOS下的RSA加密方法
- iOS下的RSA加密方法
- iOS下的RSA加密方法
- 关于IOS 中RSA加密的方法
- iOS下的RSA加密方法
- iOS下的RSA加密方法
- iOS下的RSA加密方法
- DH key agreement
- 几种加密解密的方法(仅代码)
- WindowsXP Ubuntu双系统安装实记
- 服务器网页缓存的深入分析
- Ubuntu10.10下嵌入式开发环境的配置
- linux下的解压缩命令
- Ubuntu10.10 下安装低版本GCC方法
- 几种通信加密的方法(Key Agreement Protocol, Digital Signatures, RSA from Blown to Bits)
- Failure to open file: /usr/lib/qt4/examples/dialogs/tabdialog/Makefile
- 点击文字 选中 checkbox
- windows下的android-ndk-r4开发环境
- 第一部分 声卡UDA1341TS驱动程序播放部分的移植
- javascript:window.open()
- linux的chmod,chown命令 详解
- 使用LineShape绘制线段
- 谷歌的在线翻译API