秀爾算法是怎樣破解RSA算法的?
RSA算法一度是最可靠的算法,但是秀爾算法卻終結(jié)者了RSA算法的神話,值得一提的是秀爾算法不是通過暴力破解的方式找到最終密碼的,而是利用量子計(jì)算的并行性,可以快速分解出公約數(shù),從而打破了RSA算法的基礎(chǔ)(即假設(shè)我們不能很有效的分解一個(gè)已知的整數(shù))。同時(shí),秀爾算法展示了因數(shù)分解這問題在量子計(jì)算機(jī)上可以很有效率的解決,所以一個(gè)足夠大的量子計(jì)算機(jī)可以破解RSA。
RSA加密“曾經(jīng)”之所以強(qiáng)大,是因?yàn)樗鼘?duì)極大整數(shù)做因數(shù)分解的難度。將兩個(gè)質(zhì)數(shù)相乘是件很容易的事情,但要找到一個(gè)龐大數(shù)字的質(zhì)因子卻非常困難。這便是大量現(xiàn)代科技的依靠之處,RSA加密就是憑借其簡(jiǎn)潔性迅速風(fēng)靡。秀爾算法可以破解RSA,但是怎樣才能讓它真正見效呢?如果我們快速找到下面這個(gè)周期函數(shù)的周期,f(x) = m^x (mod N)我們便可以破解RSA加密。
那么,秀爾算法究竟是怎樣工作的呢?可以通過五個(gè)步驟來進(jìn)行:
第一步:
使用傳統(tǒng)最大公約數(shù)分解(gcd)算法,也就是輾轉(zhuǎn)相除法。N是你需要嘗試的因子,m則是一個(gè)小于N的隨機(jī)正整數(shù)。
如果gcd(m,N)=1,則繼續(xù)。一旦你使用gcd找到一個(gè)因子,你便能獲得一個(gè)非凡因子,然后結(jié)束。
第二步:
找到周期 P
m mod N, m^2 mod N, m^3 mod N
這是使用量子計(jì)算的一步。
第三步:
如果周期P是奇數(shù),回到第一步,選擇另一個(gè)隨機(jī)整數(shù)。如果不是,繼續(xù)下一步。
第四步:
檢驗(yàn)
如果成立,則繼續(xù)第五步;反之,回到第一步。
第五步:
解
解得一個(gè)非凡素因數(shù)N的值,然后你便能破解RSA加密了。
那么第二步是怎樣實(shí)現(xiàn)的?
我們來看一下周期 P :
m mod N, m^2 mod N, m^3 mod N
(由于這是一個(gè)指數(shù)函數(shù),我們可以將一個(gè)復(fù)雜的質(zhì)數(shù)轉(zhuǎn)換成雙曲正弦、余弦然后得到周期)
這個(gè)發(fā)現(xiàn)周期的過程需要依賴量子計(jì)算機(jī)同時(shí)計(jì)算許多狀態(tài)的能力,也就是狀態(tài)的“疊加”,因此我們能找到方程的周期。
我們需要這么做:
1、應(yīng)用Hadamard gate來創(chuàng)建一個(gè)量子疊加態(tài)
2、量子轉(zhuǎn)換使方程生效
3、執(zhí)行量子傅立葉變換
與傳統(tǒng)情況類似,在這些轉(zhuǎn)化之后,一個(gè)測(cè)量值將會(huì)產(chǎn)生一個(gè)近似方程周期的值(你可以獲得“波峰”,就像傅立葉變換中的,而準(zhǔn)確性會(huì)更高一點(diǎn))。使用量子傅立葉變換,我們能夠解決排序和因數(shù)問題,這二者相同。量子傅立葉變換可以讓一臺(tái)量子計(jì)算機(jī)進(jìn)行相位估計(jì)(酉算子特征值的近似值)。
當(dāng)你完成量子部分(第二步)的時(shí)候,你可以檢查一下周期的有效性,然后使用另一個(gè)傳統(tǒng)的最大公約數(shù)算法得到密鑰的質(zhì)因素。
有趣的是,由于這項(xiàng)技術(shù)并不是在于找到所有潛在質(zhì)因數(shù),而是找到潛在周期,你就不必嘗試很多隨機(jī)數(shù)直到找到一個(gè)成功的質(zhì)因數(shù)N。如果P是奇數(shù),那你不得不回到第一步,這里
K是一個(gè)不同于N的質(zhì)因素。因此,即使你加倍密鑰長(zhǎng)度(N),尋找質(zhì)因數(shù)也不會(huì)出現(xiàn)放緩的情況。RSA是不安全的,同樣加倍密鑰長(zhǎng)度也不能幫你抵御量子計(jì)算的洶涌來襲,而保障安全。
“破解RSA-2048(2048-bit)的密鑰可能需要耗費(fèi)傳統(tǒng)電腦10億年的時(shí)間,而量子計(jì)算機(jī)只需要100秒就可以完成?!?/p>
量子傅立葉變換被用于建立量子線路,使得秀爾算法的物理實(shí)現(xiàn)成了量子計(jì)算機(jī)最為輕松的任務(wù)之一。
秀爾算法中只有一個(gè)步驟是需要在量子計(jì)算機(jī)上完成的,其他的都可以在普通的超級(jí)計(jì)算機(jī)上完成。量子計(jì)算機(jī)運(yùn)行完子程序后就會(huì)將結(jié)果返回給超級(jí)計(jì)算機(jī)讓它繼續(xù)完成計(jì)算過程。量子計(jì)算機(jī)可能永遠(yuǎn)不會(huì)是單獨(dú)存在的,而是一直和超級(jí)計(jì)算機(jī)配合執(zhí)行任務(wù),經(jīng)過這樣的配合它們就可以破解RSA密鑰。
最后小編想說,技術(shù)在不斷的進(jìn)步,這個(gè)世界,這個(gè)社會(huì)也在不斷向前發(fā)展,為了不被前進(jìn)的社會(huì)淘汰,我們也要不斷的學(xué)習(xí)。雖然聽起來是有點(diǎn)雞湯,但是所有的所有最終受益的都是我們自己(正經(jīng)臉)來我們一起干了這碗老雞湯。





