為什麼質數能被用於加密算法?

2020-12-05 火星科普

素數或者說質數,是指只能被1和自身整除的大於1的自然數。對於其他比1大的自然數,它們就都是合數,能夠被除了1和自身之外的其他數整數。顯然,質數和質數相乘所得到的數必然是合數。

一直以來,質數的研究被認為只有純數學上的意義,實際並沒有什麼價值。直到上個世紀70年代,麻省理工學院(MIT)的三位數學家李維斯特、薩莫爾和阿德曼共同提出了一種公開密鑰加密算法,也就是後來被廣泛應用於銀行加密的RSA算法,人們才認識到了質數的巨大作用。

質數為什麼能用於加密算法?

這個問題就要涉及到大數的質因數分解。如果把一個由較小的兩個質數相乘得到一個合數,將其分解成兩個質數(除了1和自身的組合之外)很容易,例如,51的兩個質因數為3和17。然而,如果兩個很大的質數相乘之後得到一個非常大的合數,想要逆過來把該數分解成兩個質數非常困難。例如,511883,分解成兩個質因數之後為557和919;2538952327(超過25億),分解成兩個質因數之後為29179和87013,這個難度明顯要比上一個數大得多。

截至今年一月份,目前已知最大的質數是2^825899331,這個數擁有超過2486萬位。即便是超級計算機,也很難有效對兩個質數相乘得到的合數進行質因數分解,所以這樣的原理可以用於加密算法。

什麼是RSA加密算法?

RSA算法是一種非對稱加密算法,加密和解密所用的密鑰是不一樣的,解密所用的密鑰對應於加密所用的密鑰。假設甲向乙發送信息a,那麼,a是需要進行加密的信息;再假設b是一個由兩個質數相乘得到的合數;c是一個與歐拉函數有關的數,這是公鑰;d是c關於歐拉函數值的模倒數,d就是私鑰。

信息加密

乙在產生合數b和公鑰c、私鑰d之後,乙會把b和c傳給甲,d則保密不被傳輸。甲利用公鑰c對信息a進行加密,即計算a^c除以b的餘數e,即a^c mod b=e,所得到的e就是密文。於是,甲把密文e傳送給乙。

信息解密

乙在得到密文之後,利用私鑰d對密文e進行解密。可以證明,e^d除以b的餘數正是信息a,即e^d mod b=a,這樣就完成了信息的解密。

由於合數b、公鑰c、密文e都會被傳送,這些信息就有可能被竊取。如果竊取者想要破解信息,需要知道私鑰d。想要通過公鑰c來算出密鑰d,就需要對合數b進行質因數分解。但合數b是由兩個質數相乘得到的大數,想要成功分解該數極其困難。

目前,RSA加密算法用到的大數已經有數百位,它們一般都是分解成兩個上百位的質數。如果繼續增加大數的位數,還能進一步降低被破解的風險。因此,RSA加密算法的安全性能十分有保障,這就是為什麼它會被廣泛應用的原因。

相關焦點

  • 質數如何用於信息加密?
    萬個組合的計算機,來破解隱藏銀行卡信息的400位加密編碼,大約需要10^194秒才能完成這一壯舉。直到400年後網際網路誕生之時,數十億用戶的隱私,從機密的電子郵件內容到電子商務網站的交易都完全依賴於質數。那麼,質數是如何被用於加密的呢?
  • 為什麼數學家對質數如此著魔?
    質數又叫素數,只能被1和自身整除,是所有大於1數字的基本組成。也就是說,每個數字要麼本身就是一個質數,如2、17、53或673,要麼就是質數的乘積,如17119(17 x 19?3)。此外,每個數字都只有一種方法可以分解成質數。
  • 為什麼數學家對質數如此著魔?-數學,數學家,質數 ——快科技(驅動...
    質數又叫素數,只能被1和自身整除,是所有大於1數字的基本組成。也就是說,每個數字要麼本身就是一個質數,如2、17、53或673,要麼就是質數的乘積,如17119(17 x 19?3)。此外,每個數字都只有一種方法可以分解成質數。
  • 區塊鏈丨非對稱加密算法,區塊鏈的加密秘訣!
    前面講到了對稱加密算法,今天講講非對稱加密算法。可以說非對稱算法是對稱算法的升級,因為非對稱算法是基於對稱算法而被研究出來的。非對稱算法與對稱算法的不同之處在於非對稱算法省去了對稱加密算法時要分發密鑰的麻煩,所以說是對稱加密算法的升級。在非對稱加密算法中同樣具有兩種密鑰:私鑰(private key)和公鑰(public key)。
  • 加密類型:5種加密算法以及如何選擇正確的算法
    它是由IBM開發的,用於保護敏感的,未分類的電子政府數據,並於1977年被正式採用,以供聯邦機構使用。DES使用56位加密密鑰,它基於Feistel結構,該結構由密碼學家Horst Feistel設計。DES加密算法是TLS(傳輸層安全性)版本1.0和1.1中包含的算法。
  • 被證明的黎曼猜想跟區塊鏈加密算法有什麼關係?
    而區塊鏈屆跟著躁動,加密算法要被破解了。而除了研究意義外,黎曼猜想因為能揭示素數分布的統計規律,跟需要用到素數的加密算法有一定聯繫,也觸發了一些區塊鏈自媒體和幣圈人士的「G」點。查閱資料了解到,一直以來,素數的分布很難捕捉到規律,黎曼在其論文中指出素數的分布完全蘊藏在一個特殊的函數中(黎曼函數),這也構成了黎曼猜想關於素數的分布。而目前區塊鏈領域用到的加密算法,和素數的分布軌跡有一定聯繫。
  • 質數和網絡安全--簡單科普
    知道這些質數有什麼用?質數在網絡安全領域的應用之一就是RSA加密。1978年Ron Rivest,Adi Shamir,Leonard Adleman三人創建的RSA加密,其中就利用了質數的組合。現在的加密網絡傳輸協議中應用到了RSA加密原理。在這個原理中需要使用2個質數,質數越大加密越安全。
  • 一分鐘算法 —— Miller-Rabin 質數判斷法
    如果 P 就是質數,那麼 a 就一定和 P 互質了,而這個同餘式同時也能夠得以成立。這一質數的特性比較難滿足,但不能輕易下結論,我們不妨試幾個數吧,也可以寫程序驗證。實際上,如果有 a 不滿足同餘式,就意味著 P 不是質數;如果多個 a 都滿足同餘式,我們就可以猜想 P 是質數。前者有些道理,而後者看似不嚴謹,但我們是否可以判斷用多個 a 驗證的結果,很大可能性是質數呢?
  • 數據加密中的DES加密算法詳解
    [摘要] 本文詳細介紹了DES數據加密算法的原理,並給出了一個例子演示了如何使用c#中的加密包進行DES算法加密,最後對DES進行了評價。信息加密技術是一門涉及數學、密碼學和計算機的交叉學科。現代密碼學的發展,使信息加密技術已經不再依賴於對加密算法本身的保密,而是通過在統計學意義上提高破解的成本來提供高加密算法的安全性。密碼學是一門古老而又年輕的科學,它用於保護軍事和外交通信,可追溯到幾千年前。1976年Diffie和Hellman的「密碼學的新方向」一文引發的密碼學的一場革命,開創了公鑰密碼學的新紀元。
  • 區塊鏈加密機制的不同算法及其原理解析
    在EKT中Token鏈是一個並行多鏈的結構,多鏈多共識,共享用戶基礎,這也意味著使用EKT公鏈,可以把Token鏈和Dapp鏈分離,並自由的選擇共識算法和加密算法。很快,萊特幣的成功催生了各種各樣的算法創新,2012至2014年間,算法創新一直都是社區討論的熱門話題,每一個使用創新算法的幣種出現,都能颳起一陣風波。 【串聯算法】 重新排列組合是人類一貫以來最常用的創新發明方法。
  • 整個數學界最重要的問題之一,質數是如何分布的?
    假設有n個質數,記最大質數為。現取Q為全體質數乘積加1,有現在我們可以發現,Q除以以上任何一個質數,都有餘數1,所以Q不能被以上的任何質數整除。但我們知道,任意正整數要麼是質數,要麼能被分解為一組質數。這就意味著,Q要麼是質數,要麼能被比更大的質數整除。與我們的為最大質數假設相矛盾,原假設不成立,故不存在最大質數。
  • 基於AES算法實現對數據的加密
    對稱密碼體制是較傳統的加密體制,主要用於保證數據的機密性,通信雙方在加密/解密過程中使用其共享的單一密鑰,由於其算法實現簡單和加密速度快等優點,目前仍然是主流密碼體制之一。對稱密碼體制分為序列密碼和分組密碼兩類,序列密碼以密鑰控制密鑰發生器,產生一個隨機序列,用這個隨機序列和明文信息逐位進行異或運算,就得到密文,其加密單元為比特。
  • 從數學到物理學:加密算法簡介
    如果你要成為密碼學家,那可能是的,畢竟密碼學家的工作就是構造極難破解的加密算法。但是加密方法在當今世界的用途已經非常普遍了,從保護用戶的信用卡信息、保護遠程用戶的網絡連接,到保護智力產權、防止盜版,密碼學無處不在。我這篇文章的目的,就是把令人望而生畏的密碼學轉述成大白話,讓大家都能理解這些方法是如何用來加密數據的。
  • 質數若是有限個,哥德巴赫猜想會怎樣?
    質數又叫素數,指的是在大於1的自然數中,只能被1和其自身整除的數。如2隻能被1和2整除,2是質數;6能夠被1、2、3、6整除,故6不是質數。對質數的研究屬於數論中的工作,在至少兩千多年前就已經展開。直到現在,還有很多關於質數的問題沒有得到解決。
  • 常見加密算法DES、AES和RSA的原理和特點
    本文轉載自【微信公眾號:strongerHuang,ID:strongerHuang】經微信公眾號授權轉載,如需轉載與原文作者聯繫主要總結下常用的對稱性加密算法DES和AES,非對稱性加密算法RSA。1DES加密算法1.DES含義DES全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),並授權在非密級政府通信中使用,隨後該算法在國際上廣泛流傳開來。DES是對稱性加密裡常見的一種,是一種使用秘鑰加密的塊算法。
  • EKT多鏈技術談丨加密貨幣如何加密
    在EKT中Token鏈是一個並行多鏈的結構,多鏈多共識,共享用戶基礎,這也意味著使用EKT公鏈,可以把Token鏈和Dapp鏈分離,並自由的選擇共識算法和加密算法。在上一篇中(加密貨幣如何加密一),我們了解了EKT中的Token鏈是一個並行多鏈的結構,多鏈多共識,共享用戶基礎,這也意味著使用EKT公鏈,可以把Token鏈和Dapp鏈分離,並自由的選擇共識算法和加密算法。用戶在基於 EKT 主鏈的代碼部署自己的主鏈時,可以選擇使用哪種共識算法。本篇我們將繼續探討為何EKT從一開始就越過了POW算法,直接在主鏈上選擇了DPOS共識。
  • 為什麼2是質數?1不是質數?
    基本上,了解自然數後,先知道奇數和偶數,然後就是質數和合數。質數某種意義上說是自然數的骨架。
  • 終於還是要講到這一篇——RSA算法原理
    1.質數:只能分解成1和它自身乘積的,大於1的自然數。2.互質:最大公因數是1的多個自然數之間就是互質關係。注意,互質的整數不一定都是質數。3.模運算:mod,即計算餘數的運算,如x mod yn,表示x除以y的餘數是n。上述數學概念都是中學學過的,下面的定理就進入數論部分了。
  • 計算:為什麼數學家對質數很著迷?
    我第一次知道質數這個詞應該是小學四年級的時候,教科書裡就要求我們掌握100以內所有質數,據說現在的小學數學教材,已經開始教怎麼判斷100以內的數是不是質數的計算方法了,用的是一種叫做「質數篩」的工具。所以,如果你到現在還不知道什麼是質數,那就等於說在具體的數學知識上,你已經被四年級的學生甩下了。
  • 量子計算機如何分解兩個質數乘積
    知道一個大數是兩個質數的乘積,求出具體兩個質數,這樣的大數分解問題是一個難的問題,但是把兩個質數乘起來就簡單很多,比如n=10,104,547是兩個質數p,q的乘積,把n分解為2789和3623這兩個質數,比起把它們乘起來就耗時很多。