什么是公钥加密?说明结构与RSA的计算方法
2024-04-02分类:区块链技术 阅读()
在前述章节中,以传送者与接收者持有相同密钥的加密方式为前提,说明了替换式密码。
此原理即是当文字转变为密码的时候,只要双方持有相同的密钥,便可将密码正确破解恢复。
但是其中存在着一个问题,即是一旦不慎泄漏密钥,第三者就能够解读密码。
由于至少会将密钥资讯以普通文字(尚未加密的文字)传送给对方一次,因此传送时就有可能遭到窃听导致密钥外流。
另外,当发生战争时,若载有密码表与密钥的船只或飞机落入敌方手中,敌人便可借此破解密码。
公钥加密的方式即是为了解决这样的问题而被研发诞生,在现代也广泛运用于各种场合。
在区块链的技术领域中,公钥加密的角色亦被视为相当重要的技术。
加密公钥虽然公开,但奇怪的是不能被第三者解读
公钥加密的使用方式如图1所示。
接收密码的人会准备自己专属的公钥(a,b)与密钥(p,q),并使用电脑先行计算,公钥会公布于网站页面等处,密钥则作为自己的机密资讯。
公钥与密钥为配对组合,如未使用相符的密钥,就无法透过公钥破解加密的文字。
如欲制作密码并传送给对方,就必须复制并利用对方公开的公钥(a,b)制作密码,再将该密码传送给对方。
对方在接收讯息之后,可透过自己才有的密钥(p,q)进行计算,进而将密码破解恢复成原本的文字来阅读。
既然已经得知了密钥,那么是否可以使用该密钥来做反向计算并破解密码呢?
若能够如此,第三者便能够轻易破解密码,因此发明了被称为RSA的不可思议演算法,此方法将无法进行反向计算。
其基本的原理在于,虽然对两个质数(1以及其他除了该数字本身以外无法除尽的整数)进行乘法相当简单,但无论如何尝试,却都无法透过反向计算得出「乘法的结果数值」(因需要耗费庞大的计算时间,故难以实际计算完成)。
多亏此一发明,用于解密的密钥泄漏给他人的可能性能降至为零,即使密码被窃听也无需担心内容遭到破解。
公钥加密「RSA」的计算方式示意图
有鉴于RSA密码的计算方式极为复杂,以下将以图解加以说明。
(针对计算方式的细节,建议可参考网站上的其他说明页面。)
利用RSA密码将原文的文字编码(整数值)进行多次乘法,再将除不尽的数值(余数)除以适当数值,并以此作为密码的文字编码。
图2即是对原文的文字编码直接透过余数计算来进行加密。
整数值文字65代表文字「A」,除以29后得出余数7。
若使用其他的数值、例如41作为除数,则A的余数就会变成24。
当同时出现余数8的时候,将29的余数以文字「B」表示,而41的余数则是文字「Z」。
如此运用余数之后,将无法确认进行除法之前的数值为何。
此处还有一个更有趣的特质,即是在每次计算余数时,若将文字编码的数值进行多次乘法,就会恢复成原本的数字。
由于恢复成原本文字的条件极为复杂,因此将于其它的文献资料中加以说明,在此将先以f代表成立此特质的「某种计算方式」,并在图3解释加密演算的流程。
此特质便是将原文A透过f算法重复计算N次,就会恢复成原文A。
虽然N的次数取决于对f进行余数计算时所使用的数值b,但因b来自于两个质数的乘法结果,故只要不知道这两个质数,就无法算出N的次数。
若两个质数为非常庞大的数值,便会如同先前所述地难以透过b来破解质数。
如此一来N就变成了机密。
(a,b)的两个数字虽然作为公钥而公诸于世,但是b会在f的算式中用于余数计算,而a则是代表重复进行f的次数。
将f算法重复N次就会恢复成原本的文字,但重复a次却会变成杂乱无章的数值而难以理解。
如此也就完成了密码B。
由于无法进行f的反向计算,因此如欲破解密码B,便需要确认计算的次数,并执行共计N次的f算法。
公钥出现的时候也会同时产生密钥(p,q),并能透过此p,q的数值算出剩余的次数。
因为p,q只有密码接收者才会知道,所以第三者无法破解密码。
公钥加密的方式最初是由RSA研发而生,但如今亦有被称为椭圆曲线密码学的其他方式可用。
其目前被广泛运用于网站的SSH连线与IC卡电子证书等领域中。
Tags:
标签云
-
Binance OKx 虚拟货币交易所 USDT 模因币 BRC20 TRC20 Staking 虚拟货币 ARB Sol gamefi 小狐狸钱包 DAO web3.0 流动性挖矿 什么是DeFi ICO 什么是NFT 什么是稳定币 SHIB 虚拟货币钱包 加密货币交易所 加密货币 什么是加密货币 GST 资金费率 MAX 区块链技术 区块链投资 区块链是什么 Coinw BingX Gate.io Bitfinex MEXC BITGET BitMEX Kucoin pionex Bybit BitMart KYC 网格交易 LTC Litecoin PI 什么是狗狗币 LUNA USDC