美文网首页
密码学笔记(二)

密码学笔记(二)

作者: icfg66 | 来源:发表于2020-02-02 17:05 被阅读0次

二、非对称加密

对称密钥既可以用来加密,也可以用来解密,看上去很实用也很方便,但是每个有权访问明文的人都必须具有该密钥,如果一个粗心的用户泄露了密钥,那么就等于泄露了密文,因此密钥的发布成了新问题。针对这一问题的解决方案是,公钥加密算法,属于非对称加密。

这种加密算法有两个不同的密钥:一个用来加密,另一个用来解密。加密密钥可以是公开的,只有解密密钥是保密的。

1、RSA

假设Alice要给Bob发消息,Alice先利用Bob的公钥(全网公开)对消息加密,发送给Bob后,Bob用其私钥对消息解密。如果Bob需要反馈Alice,则Bob要利用Alice的公钥(不同于Bob的公钥)对消息加密,然后发送给Alice,最后Alice用她自己的私钥解密读取消息。

比如Alice给Bob发送消息“Hi”,该消息在ASCII中用16位进制表示为01001000 01011001,转化成十进制为72,105。然后Alice用Bob的公钥(139,253)加密:
72^{139} \mod {253}=2, 105^{139} \mod {253}=101
Bob接受到消息(2,101)通过私钥(19,253)解密:
2^{19} \mod {253}=72,101^{19} \mod {253}=105
将两个数转换成二进制并查ASCII表得到消息“Hi”。那么私钥和公钥是如何得到的呢?

先选择两个素数,如p=11,q=23,确定n=pq=253,接下来确定私钥d,满足d(p-1)(q-1)=220互质,这样的数很多,不妨取d=19。最后确定公钥的另一部分e,满足:
19e \mod{220}=1
解得e=139。这样公钥为(139,253),且全网公布,私钥(19,253)中的19只有Bob知道。

2、ElGamal算法

同样,比如Alice向Bob发送消息“Hi”,在ASCII表中对应十进制为72,105。然后Alice用Bob的公钥(p=13171,g=2,y=11852)加密,不同于RSA,这里一个明文会产生两个数组成的密文:(下面的r_1,r_2为随机数)

c_1=g^{r_1} \mod p = 2^{31} \mod {13171}=4782
c'_1=m_1 y^{r_1} \mod p = 72×11852^{31} \mod {13171}=7565
c_2=g^{r_2} \mod p = 2^{16} \mod {13171}=12852
c'_2=m_2 y^{r_2} \mod p = 105×11852^{16} \mod {13171}=2072
因此Alice将密文(4782,7565)、(12852,3898)发给Bob,Bob利用私钥x=23解密:
(c'_1/c^x_1)\mod p=(7565/4782^{23})\mod {13171}=72
(c'_2/c^x_2)\mod p=(3898/12852^{23})\mod {13171}=105
那么公钥和私钥是如何生成的呢?
1、找一个较大的素数p,例子中是13171;
2、找g,它是Z_p^*中的生成元,例子中是2;
3、选一个私钥x,小于p-1的整数,例子中是23;
4、确定公钥y=g^x \mod p,例子中是11852。
这样(p,g,y)为公钥,x为私钥。加密时还需要生成一个随机数,它对解密没有影响。

ElGamal加密法引入了一些新的特征,最显著的是引入随机数,这意味这相同的明文可以有不同的密文,提高了安全性。但是由于密文是明文的两倍大,从而增加了对存储空间的需求,降低数据传输的速度。

3、ECC(Elliptic Curve Cryptography )

椭圆曲线密码体系不像前两个算法一样直接,需要先具备一些数学基础,有一篇不错的科普文:椭圆曲线密码体制

先看一个具体例子吧,假设Alice要把消息“3”发给Bob:
1、Bob先选定一条椭圆曲线,并取椭圆曲线上一点作为基点G。比如E_{29}(4,20),基点G(13,23),基点G的阶数n=37。
E_{29}(4,20):y^2=x^3+4x+20 \mod 29
G点在椭圆曲线上:
13^3+4×13+20 \equiv 23^2 \equiv 7 \mod 29
阶数为n=37表示:
37 G =O_{\infty}
椭圆曲线上的加法和乘法规则可以参考: ECC椭圆曲线详解
2、Bob选择一个私钥k(k<n)比如25,并生成公钥K=kG=25G=(14,6)
3、Bob将E、K、G作为公钥传给Alice(全网公布)
4、Alice收到公钥后,将明文编码映射到E上一点,比如是横坐标为“3”,求得纵坐标为28,明文M=(3,28)。再产生一个随机数r,比如r=6
5、Alice对明文加密:
C_1=M+rK=M+6K=(3,28)+6\times(14,6)=(6,12)
C_2=rG=6G=(5,7)
(注意这里的加法和乘法不同于我们熟知的加乘法,其规则符合椭圆曲线上的加乘法,详见前文链接)
6、Alice将C_1,C_2发给Bob
7、Bob收到密文后,解密明文:
M=C_1-kC_2=(6,12)-25\times(5,7)=(3,28)
横坐标即为Alice传输的明文“3”。

比特币及中国二代身份证都采用256比特的椭圆曲线密码算法,因为它相对于RSA具有更高的安全性,160比特的椭圆曲线密钥与1024比特RSA密钥的安全度相当,其复杂度为全指数时间,RSA为亚指数时间。短密钥的好处在于加解密速度快、节约能源、带宽、存储空间。

三、量子密码学

我们前面介绍了AES算法,如果Alice现在要发送消息给Bob,她发现之前的密钥可能被盗取,希望换一个新密钥,那么如何将这个密钥告知Bob并不让黑客发现呢?这其实像一个悖论,如果可以安全的传输密钥,那么岂不是也能安全的传输明文,也就不用加密了。

山重水复疑无路,柳暗花明又一村

量子密码学恰恰提供了解决方案,而且它只能安全地传输随机数,但不能传输特定的明文,而随机数刚好可以用来作为密钥加密,完美对接!

那么该用什么样的媒介传输密钥,并且具有量子效应呢?光子!BB84协议就是使用光子,它能容易地在光纤链路中实现。它将二进制位0和1按光子地偏振(电场的方向)加密。光子可以在水平、垂直或对角线(+45°和-45°)发生偏振,如下图:


量子1.JPG

接下来的特性很关键,当光子输入不同的滤波器时,其输出会因为滤波器的不同而呈现不同的特点。滤波器有两种:水平垂直滤波器和斜线滤波器。当水平偏振光子通过水平垂直滤波器时,其状态不变;但通过斜线滤波器时,它将随机地变为+45°或-45°的偏振光,如图

量子2.JPG

在发送密钥之前,我们先定义“0”表示垂直或+45°方向偏振的光子,1表示水平或-45°方向偏振的光子,这一点很重要:


量子3.JPG

最后是见证奇迹的时候,假设Alice生成10个随机数:1101000100(这还不是最终的密钥),无序的光子可以通过-45°过滤器得到-45°的偏振光,即发送“1”,通过垂直的过滤器得到垂直偏振光,也发送“1”。Bob在接收端可以随机选择偏振过滤器(x为斜线,+为水平垂直方向),如:+xx__xxx+x,因此他得到的序列是1001010101。他再与Alice通电话(无惧偷听),确定Bob哪个滤波器是对的,比如这里是3、4、5、7、8、9位正确,这样他们就确定了密钥010010。详细过程如下:


量子4.JPG

这种方式可以防止黑客的窃听,如果他也用滤波器截取Alice的发送序列,那么会破坏其状态,能被Bob和Alice发现,而且黑客也不能复制Alice的光子,因为量子系统具有不可复制性。

量子密钥发布(Quantum key distribution。QKD)已经在实验室得到了实现,Los Alamos国家实验室在48km光纤上演示了QKD的过程。日内瓦大学构建的QKD实验中,光纤长达70km,速率为100Hz。2016年8月16日,墨子号量子卫星上天,光纤中的安全传输超过了200km,间隔100km的量子保密电话已经在技术上可行了,但还需要进一步工程设计才能商用。

参考资料:

《经典密码学和现代密码学》
计算机科学速成课-加密
你完全理解的量子信息
中国MOOC-电子科技大学-现代密码学

相关文章

  • 密码学笔记(二)

    二、非对称加密 对称密钥既可以用来加密,也可以用来解密,看上去很实用也很方便,但是每个有权访问明文的人都必须具有该...

  • 双钥加密 数字签名 数字证书 HTTPS SSH

    密码学笔记 公钥和私钥的解释 数字签名是什么&HTTPS ssh

  • Java 密码学习(下)

    前言 接上文java密码学习,继续学习现代密码学 现代密码学 位运算加密 位运算指的是内存中二进制为的操作。 举个...

  • 密码学笔记

    阮一峰密码学笔记 自己提炼的笔记: 目前,通用的单钥加密算法为DES(Data Encryption Standa...

  • 46/70 密码学的前世今生

    今天打算偷个懒,摘录一下密码学学习笔记。 从一下几方面简单介绍密码学 1.密码的种类 2.密码与信息安全常识 3....

  • 密码学笔记

    1 公钥私钥 2 公钥加密 别人用A的公钥加密传输的信息,只有A的私钥可以解密。保证了传输的信息的安全性。 2 私...

  • 密码学笔记

    1、加密方法分为两大类。一类是单钥加密(private key cryptography),还有一类是双钥加密(p...

  • 区块链的故事 - 2

    尼克·萨博 二战及二战之前的密码学家,多数都是高校的学者,且有很多是为政府工作的。 到了现代,涌现了众多另类密码学...

  • 区块链前世今生(二)我的零基础区块链学习第四天

    区块链前世今生(二) 【史前纪事(四)——密码学货币思想诞生】1998年,密码学货币的完整思想终于破茧而出,戴伟(...

  • iOS-密码学(三)-DES、AES、RSA、md5详解

    iOS-密码学(二)-DES、AES、RSA、md5详解分析

网友评论

      本文标题:密码学笔记(二)

      本文链接:https://www.haomeiwen.com/subject/cmpqxhtx.html