公钥加密算法的基石:大素数

如题所述

第1个回答  2022-06-28
素数,又称质数,我们在小数数学课上就已经学习到其概念:是指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。

素数的概念简单至极,但对其的研究,却是数学家们终其一生的目的。当然,本篇文章不是讨论数学中对素数的研究,而是素数在现代密码学中的应用。

RSA公钥加密算法就是素数的一个典型应用。RSA为非对称加密,其加密与解密使用了不同的密钥。而对称加密是加密解密过程使用同一个密钥,更详细的读者可自行搜索。

在 RSA算法中,最基础的一个定理就是RSA定理,描述如下:

下面我们手动选两个数,进行RSA算法的实践,看看这里面计算的奥秘。

从上面计算过程来看,我们使用的是最小的素数,7和11,计算过程中涉及到很大的幂运算(51^43),结果是一个非常大的数。在实际应用中,P,Q要取很大值的素数,则得到的N,D,E值也很大,所以运算时的中间结果也很大,程序语言中提供的基本数据类型没办法使用,这里我在计算时使用的是BigNumber库计算的。

至此,RSA算法中如何用素数进行加密解密计算已完成,以上内容均从《程序员的数学思维修炼》一书中摘录,有兴趣的同学可以看看这本书,作为程序员,还是有必要了解一下基础数学知识。
相似回答