【《数学之美》笔记(四)】加密算法

2019-04-22  本文已影响0人  UnderStorm

1. 对称性加密与非对称性加密

假设一个形象理解的场景:

考试时,超模君通过小天给学渣表妹传递答案

2. RSA加密算法

2.1. 加密解密原理

RSA算法是1977年由三位麻省理工学院教授——罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出。RSA就是他们三人姓氏开头字母拼在一起组成的

RSA算法过程:

举个例子:

(1) 找出两个质数,一个是7,另一个是13

(2) n=p\times q=7 \times 13=91

(3) \psi(n)=(p-1)\times(q-1)=6 \times 12=72

(4) 找出公匙e和匙d\begin{cases}e=5 \\ d=29\end{cases}

(5) 假设我们要加密的数字是m=4

(6) 加密:m^e \div n=4^5 \div 91...23

(7) 解密:c^d \div n=23^29 \div 91...4

2.2. 安全性分析

为什么RSA算法是安全的(目前来说)?

在传输的过程中,e(公匙)、n(质数乘积)、c(余数)是可以被黑客窃听到的,但参考上面加密公式可以知道 d(私匙)和 \psi(n) 没有参与加密过程,所以窃听者并不知道d\psi(n)

那么窃听者能不能通过e、n、c算出私匙d呢?

\begin{cases} (e · d)\,\%\,\psi(n)=1 & (1)\\ \psi(n) = (p-1)(q-1) & (2)\\ n=p·q & (3) \end{cases}

看看用这3个公式黑客能不能算出私匙d:

假设黑客已经监听到了:

e=5,\quad c=23,\quad n=p·q=91

根据公式(1)知:

5·d\,\%\,\psi(n)=1

要想求出d就得知道\psi(n),而\psi(n) = (p-1)(q-1)

因此要想知道\psi(n),就得知道pq,而黑客已经知道了

n=p·q=91

所以只需要对n进行质因式分解,可以得到

p=7,\quad q=13

从上面的分析中可以看出,破解私匙的关键的一步是对n进行质因式分解,虽然上面举的例子中的因式分解很简单,分分钟就能被破解,但是在实际使用中的n是一个很大的数——1024位的二进制数字,换算成十进制约为308位

目前还没有公式可以对这么大的一个数进行质因数分解,想硬解就需要用穷举法一个个的试出p、q

那么,用普通计算机进行穷举需要花费多久的时间呢?答案是整整一年


参考资料:

(1) 超级数学建模《区区6位密码,凭什么守护我的百万家产? 》

上一篇 下一篇

猜你喜欢

热点阅读