支撑互联网交易的素数密码_互动科普

使用社交账号登录

购买价格:
付款方式:

互动科普

主页 > 科普纵览 > 数学 • 其他

支撑互联网交易的素数密码

《科学世界》  发表于 2018年05月25日

你是否有过网上刷卡购物的经历?你是否知道,素数是守护着你的钱财不被他人盗取的幕后英雄?

 

以前的密码存在什么问题?

假定我们用下面的方法传送信用卡号。首先,网上会出现加密提示:“请把卡号的每位数加2”。例如,卡号为17852153,则你需要输入“39074375”这组数字,并发送给信用卡公司。就算39074375这组数字被盗取了,因为它不是您真正的卡号,别人也无法恶意使用您的信用卡。

但是,这种方法具有极大的风险。假如有人不仅盗取了39074375这组数字,甚至连“把每位数字加2”的加密方法也盗取了的话,你的卡号就会泄露。

 

RSA密码公开了加密方法!

如果使用由素数组成的RSA密码的话,你就不用担心卡号被窃取了。就算有人窃取了加密规则与加密密钥,还是几乎不可能解开密码。

假如使用RSA密码,通过网络向用户发送“11111111111”等大数(称为公开密钥,下面将具体介绍其加密方法)。用户可使用公钥加密算法,把信用卡号加密后传送给对方。

其实,11111111111216495132392个素数的乘积。只有知道这一信息的人才能破译该密码(21649513239是秘密密钥)。

因为运营商知道11111111111的约数是21649513239这两个素数,所以可以用它们解开密码,最终获悉信用卡号。但是,对于只知道“11111111111”这一数字的第三者来说,仅靠自己的力量几乎不可能算出11111111111的约数是多少,也就无从下手去破译密码了(下面将详细介绍)。实际使用RSA密码时,其公开密钥往往是几百位长的庞大素数乘积,找到它的约数是一件极其困难的事情。

RSA密码的公开密钥可在网络上对外公开。通过公开密钥,不仅可以保证密码的安全性,用户还可以自由方便地向运营商发送加密信息。可以说,互联网交易的安全性是建立在“分解出大整数的约数是极其困难的问题”这一基础上的。

 

20130638支撑互联网交易的素数密码.jpg RSA密码体制

我们来了解一下使用RSA密码向网购运营商发送信用卡号的体制。为了便于计算,我们暂且使用一个较小的数字。

我们用图中的公开密钥“55”来代替上文中提到的公开密钥“11111111111”。实际上,除了上文所提到的素数乘积之外,还有一个公开密钥,这里为“3”。蓝色数字表示公开密钥。同时,我们用55的约数“11与5”来代替上文中的秘密密钥“21649与513239”。红色数字为秘密密钥或由秘密密钥所推导出的数。在这个例子中,我们可以非常简单地找到约数。但是,在实际应用中,公开密钥都是几百位长的素数乘积,找到它的约数是一件极其困难的事情。

 

 

(本文发表于《科学世界》2013年第6期)


全部评论

你的评论