唤起对密码学的兴趣

整理了 可汗学院公开课:现代密码学 的一些讲解,感觉很有意思。

有兴趣可以去看看原视频

算术基本原理

我们都知道所有数字可分为两类:质数合数

如果把数字按螺旋状排列,将质数点亮:

最后会变成这样:

是不是被数字之美惊艳了!

所以 任何数字都能表示为质数之积

  • 10 = 2*5
    这就是质因数分解

只要给出一个数字所有的质因数,乘起来就能得到原来的数字,这可以当成一种 “ 锁-钥匙 ”: 任何数字有且只有一种质因数分解

公开密钥密码学

颜色的比喻通俗易懂:

  • 混合两种颜色得到第三种颜色很容易
  • 得到混合色后,想要知道原来的两种颜色就很难

所以,这就是单向函数:朝一个方向容易,朝反方向很难

这里解决策略是:

  • Alice和Bob共同选择一个公共颜色,分别选择一个私有颜色
  • 将各自的私有颜色与公共颜色混合,传到对方手中
  • 再将自己的私有颜色混合到传过来的颜色中
  • 就得到了共同的秘密颜色。

离散对数问题

首先引入模运算,又叫时钟运算。

这就是一个单向函数。

根颜色比喻一样:
例如 3 ^ x mod 17 = y

  • 已知 x 可以很容易得出 y
  • 但已知 y 要推出x很困难

单向函数的强度取决于反向过程所需要的时间

迪菲·赫尔曼密钥交换

上述问题的解决策略时:

  • Alice和Bob共同选择一个公共质模数和生产元,比如 3 mod 17
  • 随机选择各自的私有数字,比如 Alice 15, Bob 13
  • Alice 计算 315 mod 17 = 6, 并将结果 6 传给 Bob
    Bob 计算 313 mod 17 = 12,并将结果 12 传给 Alice
  • Alice 计算 1215 mod 17 =10
    Bob 计算 613 mod 17 =10
  • 10 就是他们的共同密钥

虽然选取私有数字不同,但双方做了相同的运算:

  • Alice:(313 mod 17)15 mod 17 = 313*15 mod 17
  • Bob:(315 mod 17)13 mod 17 = 315*13 mod 17

这样第三方Eve没有私有数字,就无法求出结果

RSA加密

以上的策略过程都需要双方拥有共同的密钥,如果一个人与多方建立加密交换,都是不同的密钥,那花费会非常巨大。

所以,1970年英国工程师兼数学家 詹姆斯·艾利斯 提出一个简单而又聪明的想法:

  • 公开锁, 钥匙保留在Alice这里
  • Alice用钥匙将锁打开,并将打开的锁传给Bob
  • Bob将信息放进锁里,并锁起来,传给Alice。
  • 这样只有Alice拥有打开锁的钥匙,Eve无法盗取。

关键在于将密钥分为两部分:加密密钥和解密密钥

首先了解 欧拉函数 :小于或等于n的正整数中与n互质的数的数目
比如 8 满足条件的数为 1 3 5 7
所以 φ(8)=4

对于质数在这里插入图片描述
m,n互质在这里插入图片描述

以下就是推导出来的钥匙:(建议看视频理解)

举个栗子看看过程:
Alice:

  • Alice选择两个随机质数:
    p1=53 p2=59
    则:n=53*59=3127 φ(n)=3016
  • 再选择一个公开小指数 e=3
  • 根据以上公式算出(取k=2,用来保证d是整数,可随便取值)
    d = (2*3016+1)/3 = 2011
  • 把 n=3127 和 e=3 留下,组成公开密钥(开着的锁)

Bob:

  • Bob想要加密的数 m = 89
  • c = me mod n = 893 mod 3127 = 1394
  • 将c传给Alice

Alice:

  • m = c d mod n
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读