椭圆曲线 另一种非对称加密
RSA回顾
- RSA安全的原因是质因数分解难。
- 比如问221是哪2个质数相乘,不太好算,
- 可如果问17*13=? 很容易算出是221
假设有一种算法 算加法,乘法很容易,算除法极其困难
也就是说正向好算,逆向不好算
不是普通加法
注意:这里的加法不是普通的加法。像是打台球时求的坐标,比如
- A点,球的初始点
- B点,球撞击案边反弹点
- C点,球的停止点
A+B = c ;乘法还是多次的加法运算。
非对称搞起
公私钥
- 有1个公开的点 G
- 小明在 0~10的77次方 随机出一个数k, k即为私钥
- k * G = P, P即公钥
加解密
-
假设,小红也有一套公私钥,
-
这时小明 计算个S
S = 小明k * 小红P然后直接使用密钥S对数据做 对称加密 发给小红 -
小红想解密必须知道S
-
小红算S
S = 小明k * 小红P小红P = 小红k * G- 即
S = 小明k * 小红k * G小明k * G = 小明P - 即
S = 小红k * 小明P至此小红就拿到了S
因为私钥k 不公开的。所以此方法安全。
签名、验签
签名
- 小明生产了一坨数据,要对它签名,
- 对这坨数据算哈希 得到h,计算
h * 小明k = N, N即签名
验签
- 计算
A = h * 小明P - 计算
B = N * G - 如果这个N是真的,A 和 B就相等, 因为
A = h * 小明k * G = N * G - 如果N是真的,则发布N的人 就拥有私钥 小明k
椭圆曲线
其特性 和 为什么不能算除法 见网上