摘要:二如何理解公鑰和私鑰非對稱加密算法需要兩個密鑰公開密鑰和私有密鑰。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。三非對稱加密解密原理非對稱加密算法中,常用的就是算法了,以下就以算法為例來講解非對稱加密算法的實現原理。
非對稱加密,在現在網絡應用中,有這非常廣泛的場景,更是加密貨幣的基礎。本文主要介紹非對稱加密、解密的原理和過程,以及在區塊鏈中的使用。
一、非對稱加密解密過程A要向B發送信息,A和B都要產生一對用于加密、解密的公鑰和私鑰
A保管自己的私鑰,把公鑰告訴B;B保管自己的私鑰,把公鑰告訴A
A要給B發送信息時,A用B的公鑰加密信息,因為A知道B的公鑰。
A將這個消息發給B(已經用B的公鑰加密消息)。
B收到這個消息后,B用自己的私鑰解密A的消息。其他所有收到這個報文的人都無法解密,因為只有B才有B的私鑰。
二、如何理解公鑰和私鑰??非對稱加密算法需要兩個密鑰:公開密鑰(public key)和私有密鑰(private key)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法。
??非對稱加密算法實現機密信息交換的基本過程是:甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開;得到該公用密鑰的乙方使用該密鑰對機密信息進行加密后再發送給甲方;甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密。
??非對稱密碼的特點:算法強度復雜、安全性依賴于算法與密鑰,但是由于其算法復雜,而使得加密解密速度沒有對稱加密解密的速度快。對稱密碼體制中只有一種密鑰,并且是非公開的,如果要解密就得讓對方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了。這樣安全性就大了很多。
非對稱加密算法中,常用的就是RSA算法了,以下就以RSA算法為例來講解非對稱加密算法的實現原理。
RSA算法的基于這樣的數學事實:兩個大質數相乘得到的大數難以被因式分解。
RSA加密過程
$$ 密文=明文^E mod N $$
解釋:也就是說RSA加密是對明文的E次方后除以N后求余數的過程。也就是說只要知道E(Encryption)和N(Number),任何人都可以進行RSA加密了。其中E、N是RSA加密的密鑰,E和N的組合就是公鑰,我們用(E,N)來表示公鑰
$$ 公鑰=(E,N) $$
不過E和N不并不是隨便什么數都可以的,它們都是經過嚴格的數學計算得出的
RSA解密過程
$$ 明文=密文^D mod N $$
也就是說對密文進行D次方后除以N的余數就是明文,這就是RSA解密過程。知道D和N就能進行解密密文了,所以D和N的組合就是私鑰
$$ 私鑰=(D,N) $$
從上述可以看出RSA的加密方式和解密方式是相同的,加密是求"E次方的mod N",解密是求"D次方的mod N"
知道上述的幾個簡單公式后,剩下就是計算各個參數對應的值了
求N。準備兩個質數p,q,這兩個數不能太小,太小則會容易破解,將p乘以q就是N。
$$ N=p?q $$
求L。L為中間數,是 (p-1) 和 (q-1) 的最小公倍數,可用如下表達式表示
$$ L=lcm(p-1,q-1) $$
求E。E必須滿足兩個條件:E是一個比1大比L小的數,E和L的最大公約數為1,用gcd(X,Y)來表示X,Y的最大公約數則E條件如下:
$$ 1 < E < L $$
$$ gcd(E,L)=1 $$
之所以需要E和L的最大公約數為1是為了保證一定存在解密時需要使用的數D。現在我們已經求出了E和N也就是說我們已經生成了密鑰對中的公鑰了。
求D。D是由數E計算出來的。D、E和L之間必須滿足以下關系:
$$ 1 < D < L $$
$$ E * D mod L = 1 $$
至此,公鑰和私鑰都都計算出來了,大家可以自己試著計算下
四、為何非對稱加密難以破解??破解RSA算法的關鍵就是計算N、p、q的值,給出兩個很大的質數p、q,可以計算N,但知道N,去很難算出p、q,只能不停的嘗試,這就是為什么當前RSA很難破解。
??RSA算法的破解與密鑰的長度有關,如果密鑰的長度小于等于256位,一臺較快的電腦可以在幾個小時內成功分解其因子。位數越高因式分解所需時間也越長。例如破解RSA-2048(2048-bit)的密鑰需要耗費傳統電腦10億年的時間,而量子計算機只需要100秒就可以完成。所以隨著科技的發展,算法也會更新換代。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24267.html
摘要:公鑰哈希和錢包地址可以通過互逆運算進行轉換,所以它們是等價的。使用私鑰對交易進行簽名比特幣錢包間的轉賬是通過交易實現的。使用公鑰對簽名進行驗證交易數據被廣播到比特幣網絡后,節點會對這個交易數據進行檢驗,其中就包括對簽名的校驗。 一句話解釋公鑰、私鑰、地址私鑰:實際上是一組隨機數,關于區塊鏈中的隨機數我們已經介紹過了公鑰:對私鑰進行橢圓曲線加密算法生成,但是無法通過公鑰倒推得到私鑰。公...
摘要:算法公鑰加密算法是年由羅納德李維斯特阿迪薩莫爾和倫納德阿德曼一起提出的。是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的絕大多數密碼攻擊,已被推薦為公鑰數據加密標準。 上篇文章介紹了對稱加密的原理,但是它的最大問題就是加密和解密的密鑰是相同的,并且不能保證密鑰能安全的送到雙方手里,即使安全的送到雙方手里,免不了內部會有臥底的存在 非對稱加密 既然有對稱加密,那么自然會聯想到非...
摘要:請勿在密碼學強度系統中使用編程語言提供的通用偽隨機數生成器實現。該偽隨機數發生器是密碼學意義上最強的偽隨機數發生器之一,應用在金融安全和上。 一、隨機數分類 1、真隨機數其定義為隨機樣本不可重現。實際上只要給定邊界條件,真隨機數實際上并不存在,可是如果產生一個真隨機數樣本的邊界條件十分復雜且難以捕捉,可以認為用這個方法演算出來了真隨機數。例如骰子、轉輪、噪音等。 2、偽隨機數,通過一定...
摘要:假如黎曼猜想被證實,區塊鏈將毀滅近日,黎曼猜想四個字瘋狂刷屏。黎曼猜想由數學家波恩哈德黎曼于年提出。因此,黎曼猜想一旦被證明,則意味著素數之密被解開,算法也就將被攻破了。而大多數區塊鏈所用的加密算法不是,而是橢圓曲線加密算法。 瑪麗女王的密碼之生死命懸一線 showImg(https://segmentfault.com/img/bVbhD7s?w=740&h=876); 16世紀伊麗...
摘要:本文首發于深入淺出區塊鏈社區原文鏈接非對稱加密技術算法數學原理分析原文已更新,請讀者前往原文閱讀非對稱加密技術,在現在網絡中,有非常廣泛應用。加密技術更是數字貨幣的基礎。 本文首發于深入淺出區塊鏈社區原文鏈接:非對稱加密技術 - RSA算法數學原理分析原文已更新,請讀者前往原文閱讀非對稱加密技術,在現在網絡中,有非常廣泛應用。加密技術更是數字貨幣的基礎。 所謂非對稱,就是指該算法需要一...
閱讀 1378·2021-11-24 09:38
閱讀 2086·2021-09-22 15:17
閱讀 2341·2021-09-04 16:41
閱讀 3452·2019-08-30 15:56
閱讀 3511·2019-08-29 17:19
閱讀 1939·2019-08-28 18:09
閱讀 1249·2019-08-26 13:35
閱讀 1711·2019-08-23 17:52