比特幣dsapython
❶ (p+1)(p-4)+7p+8公式法
導語
本課堂用通俗易懂的系列內容為大家呈現區塊鏈與密碼學領域相關知識。這里有知識也有故事,從感興趣到有樂趣,點寬課堂等你來學。
這個系列中的課程內容首先從比特幣著手進行入門介紹,再延伸至區塊鏈的相關技術原理與發展趨勢,然後深入淺出地依次介紹在區塊鏈中應用的各類密碼學技術。歡迎大家訂閱本公眾號,持續進行學習。
【本課堂內容全部選編自PlatON首席密碼學家、武漢大學國家網路安全學院教授、博士生導師何德彪教授的《區塊鏈與密碼學》授課講義、教材及互聯網,版權歸屬其原作者所有,如有侵權請立即與我們聯系,我們將及時處理。】
6.3
其他數字簽名演算法
EIGamal演算法
數字簽名一般利用公鑰密碼技術來實現,其中私鑰用來簽名,公鑰用來驗證簽名。ElGamal公鑰密碼演算法是在密碼協議中有著重要應用的一類公鑰密碼演算法,其安全性是基於有限域上離散對數學問題的難解性。它至今仍是一個安全性良好的公鑰密碼演算法。它既可用於加密又可用於數字簽名的公鑰密碼體制。
假設p是一個大素數,g是GF(p)的生成元。Alice的公鑰為y = gx mod p, g,p私鑰為x。
簽名演算法:
Alice用H將消息m進行處理,得h=H(m).
Alice選擇秘密隨機數k,滿足
Alice將(m,r,s)發送給Bob
計算消息M的Hash值H(M)
驗證公式
用戶隨機選取k
計算e=h(M);
計算r=(gk mod p) mod q
計算s=k-1(e+x · r) mod q
輸出(r, s),即為消息M的數字簽名
接收者收到M, r, s後,首先驗證0
計算e=h(M);
計算w=(s)-1 mod q
計算u1=e · w mod q
計算u2=r · w mod q
計算①v=[(gu1 · yu2) mod p] mod q
如果v=r,則確認簽名正確,否則拒絕
0
計算
r=gk (mod p)
s=(h- x · r) · k-1(mod (p-1))
驗證簽名過程:
接收方收到M與其簽名(r,s)後:
成立則確認為有效簽名,否則認為簽名是偽造的
PSS演算法的編碼操作過程
上述方案的安全性是基於如下離散對數問題的:已知大素數p、GF(p的生成元g和非零元素y∈GF(p),求解唯一的整數k, 0≤k≤p – 2,使得y≡gk (mod p),k稱為y對g的離散對數。
在1996年的歐洲密碼學會(Proceedings of EUROCRYPT 96)上,David Pointcheval和Jacques Stern給出一個ElGamal簽名的變體,並基於所謂分叉技術證明了在隨機預言模型下所給方案是安全的(在自適應選擇消息攻擊下能抗擊存在性偽造)。
Schnorr演算法
Schnorr簽名方案是一個短簽名方案,它是ElGamal簽名方案的變形,其安全性是基於離散對數困難性和哈希函數的單向性的。
假設p和q是大素數,是q能被p-1整除,q是大於等於160 bit的整數,p是大於等於512 bit的整數,保證GF(p)中求解離散對數困難;g是GF(p)中元素,且gq≡1mod p。
密鑰生成:
Alice選擇隨機數x為私鑰,其中1
Alice計算公鑰y≡gx (mod p)
簽名演算法:
①Alice首先隨機數k,這里1
②Alice計算e=h(M, gk mod p)
③Alice計算s=k-x·e(mod q)
④Alice輸出簽名(e, s)
驗證演算法:
Bob計算gkmod p=gs·ye mod p
Bob驗證e = h(M, gk mod p)是否成立,如果成立則輸出「Accept」,否則輸出「Reject」。
Schnorr簽名與ElGamal簽名的不同點:
安全性比較:在ElGamal體制中,g為域GF(p)的本原元素;而在Schnorr體制中, g只是域GF(p)的階為q的元素,而非本原元素。因此,雖然兩者都是基於離散對數的困難性,然而ElGamal的離散對數階為p-1, Schnorr的離散對數階為q
簽名長度比較:Schnorr比ElGamal簽名長度短
ElGamal:(m,r,s),其中r的長度為|p|, s的長度為|p-1|
Schnorr:(m,e,s),其中e的長度為|q|, s的長度為|q|
DSA演算法
1991年,美國政府頒布了數字簽名標准(Digital Signature Standard, DSS),也稱為數字簽名演算法(Digital Signature Algorithm, DSA) 。
和DES一樣,DSS也引起了激烈的爭論,反對者認為:密鑰太短、效率不如RSA高、不能實現數據加密並懷疑NIST在DSS中留有後門。
隨後,美國政府對其做了一些改進,目前DSS的應用已經十分廣泛,並被一些國際標准化組織採納為國際標准。2000年,美國政府將RSA和橢圓曲線密碼引入到數字簽名標准中,進一步豐富了DSA演算法。
DSA的主要參數:
全局公開密鑰分量,可以為用戶公用
p:素數,要求2L-1
q : (p-1)的素因子,2159
g : =h(p-1)/q mod p.其中h是一整數,11
用戶私有密鑰
x:隨機或偽隨機整數,要求0
用戶公開密鑰
y:=gx mod p
隨機數k
隨機或偽隨機整數,要求0
DSA簽名過程:
DSA驗證過程:
DSA演算法的工作流程
今天的課程就到這里啦,下一堂課我們將學習基於橢圓曲線的數字簽名演算法,帶大家繼續了解數字簽名,敬請期待!
關注點寬學園,每周持續更新區塊鏈系列課程,小寬頻你進入區塊鏈世界。我們下節課見啦。
【區塊鏈與密碼學】課堂回顧:
FOLLOW US
© DigQuant
點擊「閱讀原文」,登錄官網www.digquant.com,一起解鎖更多金融科技姿勢:涵蓋 Python 、 金融基礎 、 量化投資 、 區塊鏈 、 大數據 、 人工智慧 。 Dig More, Learn More!
❷ 美聯儲稱無意爭先央行數字貨幣 比特幣成為世界第一風險避風港
政策法規
美聯儲副主席:美聯儲的重點並不在於在數字貨幣上領先
據金十消息,美聯儲副主席克拉里達表示,美聯儲正在積極地研究央行數字貨幣,美聯儲的重點並不在於在數字貨幣上領先。
FATF計劃對P2P加密貨幣交易平台進行監管
吉爾吉斯斯坦央行正起草法律草案以規范加密貨幣行業
據Cointelegraph消息,中亞國家吉爾吉斯斯坦中央銀行正在起草一項法律草案,以規范該國的加密貨幣行業。根據公告,央行表示,該法律草案將規范加密貨幣的買賣,目的是打擊欺詐性加密貨幣計劃和金融犯罪,以及保障消費者和投資者的權利。該行還預計,加密立法也會遇到自身的障礙,許多私人加密貨幣的跨境性質將使法律在沒有適當的監測和基礎設施下難以執行。
數字金融
對沖基金天橋資本向美國SEC申請投資比特幣
加密研究員Kevin Rooke在推特分享的圖片顯示,美國知名對沖基金公司天橋資本(Skybridge Capital)在11月13日向SEC提交了一份修正案,尋求允許其36億美元的基金開始投資比特幣。Skybridge Capital創始人Anthony Scaramucci為前美國白宮通訊聯絡主任,曾多次公開表示看好數字資產和區塊鏈。據了解,Skybridge Capital是一家全球另類投資機構,主要從事對沖基金產品的多策略混合基金,定製獨立賬戶投資組合和對沖基金解決方案,以滿足從個人認可的投資者到大型機構的廣泛市場參與者的需求,目前管理總資產超過120億美元。
Uniswap社區討論延長流動性挖礦計劃 UNI每月總額降至500萬枚
11月17日,根據Uniswap官方社區治理論壇內容,已有成員提交提案討論延長Uniswap流動性挖礦計劃。該提案具體內容為,維持Uniswap初始流動性挖礦計劃,即維持現有四大池:ETH/USDT、ETH/USDC、ETH/DAI、ETH/WBTC。不過該提案最大變化為,將每月UNI分配總額減少一半,即從每月1000萬UNI減少到每月500萬UNI,藉此再延長兩個月流動性挖礦計劃,屆時四大池每個資金池每月將分配125萬UNI。
目前該提案已從討論階段過渡到民意測驗,若測驗獲得至少25000 UNI的支持,則可以進行下步治理投票計劃。此前消息,根據官方計劃,Uniswap流動性挖礦計劃將於11月17日20:00正式結束。
灰度BTC信託增持3153 BTC 灰度ETH信託持倉增長0.21%
AICoin指數行情顯示,美東時間11月15日,灰度比特幣信託持倉量增加3153 BTC,增長0.62%,總持倉量已達509581 BTC。灰度ETH信託持倉量增長0.21%至2580879 ETH。
與此同時,灰度LTC信託總持倉量為770980 LTC,增持0.18%。此外,灰度BCH信託和ETC信託均減持0.02%。
Willy Woo:比特幣是世界上第一個風險避風港
Peter Schiff晚間發推稱,最近比特幣相對於黃金的上漲並不能證明比特幣是一種優越的價值存儲手段。熱情高漲的投資者正紛紛湧向風險資產,避開全球的避險天堂。作為所有資產中風險最高的資產,人們購買比特幣是出於交易風險的一部分。對此加密貨幣分析師Willy Woo分析稱,比特幣是世界上第一個風險避風港。這意味著,在傳統的繁榮周期它會上升,當投資者湧向安全港時它也會上升。前者是由於採用曲線,後者是由於其技術設計。
資金動向&企業合作
韓媒:火幣或欲收購韓國交易所Bithumb
11月17日,韓國最大投資界媒體The bell報道稱,火幣或將收購韓國最大虛擬資產交易所Bithumb。多位國內投資銀行人士表示,火幣想要通過收購Bithumb,以便在韓國特金法實行後,於韓國國內開展虛擬資產業務,而基於此交易所必須要獲得實名確認帳戶。目前,韓國擁有實名確認帳戶的虛擬資產交易所只有4個,Bithumb、Upbit、Coinone以及Kobit。
Galaxy Digital與CI GAM合作推出新比特幣基金
據Finance Magnates 11月17日消息,加密商業銀行銀河數碼(Galaxy Digital)與全球資產管理公司CI GAM合作,宣布共同推出新比特幣基金CI Galaxy。CI GAM將負責管理,而Galaxy Digital則將擔任其子顧問,這也意味著其將代表該基金執行所有比特幣交易。該比特幣基金定價採用彭博銀河比特幣指數(Bloomberg Galaxy Bitcoin Index),該指數則用以衡量比特幣兌美元的表現。盡管該基金的總規模尚不清楚,但該基金將以每股10美元的價格提供A類基金和F類基金。
OUSD公布閃電貸攻擊事件細節 共損失700萬美元
11月17日,Origin Protocol創始人Matthew Liu發文公布Origin Dollar (OUSD) 閃電貸攻擊事件細節。內容顯示,截止目前,攻擊已造成約700萬美元損失,其中包括Origin及創始人和員工存入的超過100萬美元資金。團隊正在全力以赴確定漏洞原因,以及確定是否能夠收回資金。
官方提醒稱,目前已取消了金庫存款,請不要在Uniswap或Sushiswap上購買OUSD。此外團隊表示,官方不會離開,此次事件不是欺詐,也非內部騙局。
應用動態
德國黑森州農業局在IOTAqua項目中使用IOTA Tangle
據Crypto News Flash消息,IOTA合夥夥伴管理部負責人Holger Köther昨天宣布,IOTA基金會目前正與德國黑森州農業局(LLH)在「IOTAqua」項目的框架內合作,開發一個數字化、符合法律規定的水表系統。該項目的目的是使農業和園藝用水盡可能高效,以應對持續的氣候變化。新水表系統的基礎是已經存在的產品:Lorenz公司的超聲波水表Octave、Nelson公司的1000系列控制閥和peerOS公司的LoRa無線電模塊以及IOTA Tangle,以確保數據的合法安全。
Messari:區塊鏈技術將推動幻想 體育 行業發展
11月16日,數字研究公司Messari在其最新報告中表示,隨著電子競技等「數字原生」生態系統繼續與區塊鏈技術協同合作,幻想 體育 等行業可能會被大量採用。Messari研究員Mason Nystrom認為,由於新冠疫情,幻想 體育 已為顯著增長做好了准備。他還認為基於區塊鏈的應用程序可以幫助促進粉絲在這個快速擴展的市場中的參與度。
Dash與德州炸雞展開合作支持DASH支付
Dash官方剛剛發布推文稱,已與全餐連鎖店德州炸雞(Church's Chicken)合作,並於近日在委內瑞拉Sambil購物中心分店展開活動支持DSAH支付。
交易動態
數字貨幣行情
BTC午間整體震盪下挫,現已跌破16600 USDT。主流幣日內全部 報漲 。其中LTC一度漲過75 USDT,日內漲超5%。BTC在火幣現報16550 USDT,日內漲幅0.60%。全球數字貨幣市場總價值為4824.44億美元(+3.72%),24h成交量為539.89億美元(+25.47%)。
主流數字貨幣表現如下:
- ETH暫報460.52 USDT(+3.16%)
- XRP暫報0.2925 USDT(+9.51%)
- BCH暫報249.4 USDT(-0.19%)
- LTC暫報73.9 USDT(+11.88%)
- EOS暫報2.66 USDT(+6.15%)
- BSV暫報160.92 USDT(+5.70%)
24小時行情市值排名前百幣種漲幅前三為:
- YFI(+14.91%)
- GNT(+12.28%)
- BNT(+11.76%)
24小時行情市值排名前百幣種跌幅前三為:
- CVC(-10.69%)
- DNT(-8.05%)
- XUC(-7.26%)
❸ 非對稱加密演算法 (RSA、DSA、ECC、DH)
非對稱加密需要兩個密鑰:公鑰(publickey) 和私鑰 (privatekey)。公鑰和私鑰是一對,如果用公鑰對數據加密,那麼只能用對應的私鑰解密。如果用私鑰對數據加密,只能用對應的公鑰進行解密。因為加密和解密用的是不同的密鑰,所以稱為非對稱加密。
非對稱加密演算法的保密性好,它消除了最終用戶交換密鑰的需要。但是加解密速度要遠遠慢於對稱加密,在某些極端情況下,甚至能比對稱加密慢上1000倍。
演算法強度復雜、安全性依賴於演算法與密鑰但是由於其演算法復雜,而使得加密解密速度沒有對稱加密解密的速度快。對稱密碼體制中只有一種密鑰,並且是非公開的,如果要解密就得讓對方知道密鑰。所以保證其安全性就是保證密鑰的安全,而非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣傳輸對方的密鑰了。這樣安全性就大了很多。
RSA、Elgamal、背包演算法、Rabin、D-H、ECC (橢圓曲線加密演算法)。使用最廣泛的是 RSA 演算法,Elgamal 是另一種常用的非對稱加密演算法。
收信者是唯一能夠解開加密信息的人,因此收信者手裡的必須是私鑰。發信者手裡的是公鑰,其它人知道公鑰沒有關系,因為其它人發來的信息對收信者沒有意義。
客戶端需要將認證標識傳送給伺服器,此認證標識 (可能是一個隨機數) 其它客戶端可以知道,因此需要用私鑰加密,客戶端保存的是私鑰。伺服器端保存的是公鑰,其它伺服器知道公鑰沒有關系,因為客戶端不需要登錄其它伺服器。
數字簽名是為了表明信息沒有受到偽造,確實是信息擁有者發出來的,附在信息原文的後面。就像手寫的簽名一樣,具有不可抵賴性和簡潔性。
簡潔性:對信息原文做哈希運算,得到消息摘要,信息越短加密的耗時越少。
不可抵賴性:信息擁有者要保證簽名的唯一性,必須是唯一能夠加密消息摘要的人,因此必須用私鑰加密 (就像字跡他人無法學會一樣),得到簽名。如果用公鑰,那每個人都可以偽造簽名了。
問題起源:對1和3,發信者怎麼知道從網上獲取的公鑰就是真的?沒有遭受中間人攻擊?
這樣就需要第三方機構來保證公鑰的合法性,這個第三方機構就是 CA (Certificate Authority),證書中心。
CA 用自己的私鑰對信息原文所有者發布的公鑰和相關信息進行加密,得出的內容就是數字證書。
信息原文的所有者以後發布信息時,除了帶上自己的簽名,還帶上數字證書,就可以保證信息不被篡改了。信息的接收者先用 CA給的公鑰解出信息所有者的公鑰,這樣可以保證信息所有者的公鑰是真正的公鑰,然後就能通過該公鑰證明數字簽名是否真實了。
RSA 是目前最有影響力的公鑰加密演算法,該演算法基於一個十分簡單的數論事實:將兩個大素數相乘十分容易,但想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,即公鑰,而兩個大素數組合成私鑰。公鑰是可發布的供任何人使用,私鑰則為自己所有,供解密之用。
A 要把信息發給 B 為例,確定角色:A 為加密者,B 為解密者。首先由 B 隨機確定一個 KEY,稱之為私鑰,將這個 KEY 始終保存在機器 B 中而不發出來;然後,由這個 KEY 計算出另一個 KEY,稱之為公鑰。這個公鑰的特性是幾乎不可能通過它自身計算出生成它的私鑰。接下來通過網路把這個公鑰傳給 A,A 收到公鑰後,利用公鑰對信息加密,並把密文通過網路發送到 B,最後 B 利用已知的私鑰,就能對密文進行解碼了。以上就是 RSA 演算法的工作流程。
由於進行的都是大數計算,使得 RSA 最快的情況也比 DES 慢上好幾倍,無論是軟體還是硬體實現。速度一直是 RSA 的缺陷。一般來說只用於少量數據加密。RSA 的速度是對應同樣安全級別的對稱密碼演算法的1/1000左右。
比起 DES 和其它對稱演算法來說,RSA 要慢得多。實際上一般使用一種對稱演算法來加密信息,然後用 RSA 來加密比較短的公鑰,然後將用 RSA 加密的公鑰和用對稱演算法加密的消息發送給接收方。
這樣一來對隨機數的要求就更高了,尤其對產生對稱密碼的要求非常高,否則的話可以越過 RSA 來直接攻擊對稱密碼。
和其它加密過程一樣,對 RSA 來說分配公鑰的過程是非常重要的。分配公鑰的過程必須能夠抵擋中間人攻擊。假設 A 交給 B 一個公鑰,並使 B 相信這是A 的公鑰,並且 C 可以截下 A 和 B 之間的信息傳遞,那麼 C 可以將自己的公鑰傳給 B,B 以為這是 A 的公鑰。C 可以將所有 B 傳遞給 A 的消息截下來,將這個消息用自己的密鑰解密,讀這個消息,然後將這個消息再用 A 的公鑰加密後傳給 A。理論上 A 和 B 都不會發現 C 在偷聽它們的消息,今天人們一般用數字認證來防止這樣的攻擊。
(1) 針對 RSA 最流行的攻擊一般是基於大數因數分解。1999年,RSA-155 (512 bits) 被成功分解,花了五個月時間(約8000 MIPS 年)和224 CPU hours 在一台有3.2G 中央內存的 Cray C916計算機上完成。
RSA-158 表示如下:
2009年12月12日,編號為 RSA-768 (768 bits, 232 digits) 數也被成功分解。這一事件威脅了現通行的1024-bit 密鑰的安全性,普遍認為用戶應盡快升級到2048-bit 或以上。
RSA-768表示如下:
(2) 秀爾演算法
量子計算里的秀爾演算法能使窮舉的效率大大的提高。由於 RSA 演算法是基於大數分解 (無法抵抗窮舉攻擊),因此在未來量子計算能對 RSA 演算法構成較大的威脅。一個擁有 N 量子位的量子計算機,每次可進行2^N 次運算,理論上講,密鑰為1024位長的 RSA 演算法,用一台512量子比特位的量子計算機在1秒內即可破解。
DSA (Digital Signature Algorithm) 是 Schnorr 和 ElGamal 簽名演算法的變種,被美國 NIST 作為 DSS (DigitalSignature Standard)。 DSA 是基於整數有限域離散對數難題的。
簡單的說,這是一種更高級的驗證方式,用作數字簽名。不單單只有公鑰、私鑰,還有數字簽名。私鑰加密生成數字簽名,公鑰驗證數據及簽名,如果數據和簽名不匹配則認為驗證失敗。數字簽名的作用就是校驗數據在傳輸過程中不被修改,數字簽名,是單向加密的升級。
橢圓加密演算法(ECC)是一種公鑰加密演算法,最初由 Koblitz 和 Miller 兩人於1985年提出,其數學基礎是利用橢圓曲線上的有理點構成 Abel 加法群上橢圓離散對數的計算困難性。公鑰密碼體制根據其所依據的難題一般分為三類:大整數分解問題類、離散對數問題類、橢圓曲線類。有時也把橢圓曲線類歸為離散對數類。
ECC 的主要優勢是在某些情況下它比其他的方法使用更小的密鑰 (比如 RSA),提供相當的或更高等級的安全。ECC 的另一個優勢是可以定義群之間的雙線性映射,基於 Weil 對或是 Tate 對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。不過一個缺點是加密和解密操作的實現比其他機制花費的時間長。
ECC 被廣泛認為是在給定密鑰長度的情況下,最強大的非對稱演算法,因此在對帶寬要求十分緊的連接中會十分有用。
比特幣錢包公鑰的生成使用了橢圓曲線演算法,通過橢圓曲線乘法可以從私鑰計算得到公鑰, 這是不可逆轉的過程。
https://github.com/esxgx/easy-ecc
Java 中 Chipher、Signature、KeyPairGenerator、KeyAgreement、SecretKey 均不支持 ECC 演算法。
https://www.jianshu.com/p/58c1750c6f22
DH,全稱為"Diffie-Hellman",它是一種確保共享 KEY 安全穿越不安全網路的方法,也就是常說的密鑰一致協議。由公開密鑰密碼體制的奠基人 Diffie 和 Hellman 所提出的一種思想。簡單的說就是允許兩名用戶在公開媒體上交換信息以生成"一致"的、可以共享的密鑰。也就是由甲方產出一對密鑰 (公鑰、私鑰),乙方依照甲方公鑰產生乙方密鑰對 (公鑰、私鑰)。
以此為基線,作為數據傳輸保密基礎,同時雙方使用同一種對稱加密演算法構建本地密鑰 (SecretKey) 對數據加密。這樣,在互通了本地密鑰 (SecretKey) 演算法後,甲乙雙方公開自己的公鑰,使用對方的公鑰和剛才產生的私鑰加密數據,同時可以使用對方的公鑰和自己的私鑰對數據解密。不單單是甲乙雙方兩方,可以擴展為多方共享數據通訊,這樣就完成了網路交互數據的安全通訊。
具體例子可以移步到這篇文章: 非對稱密碼之DH密鑰交換演算法
參考:
https://blog.csdn.net/u014294681/article/details/86705999
https://www.cnblogs.com/wangzxblog/p/13667634.html
https://www.cnblogs.com/taoxw/p/15837729.html
https://www.cnblogs.com/fangfan/p/4086662.html
https://www.cnblogs.com/utank/p/7877761.html
https://blog.csdn.net/m0_59133441/article/details/122686815
https://www.cnblogs.com/muliu/p/10875633.html
https://www.cnblogs.com/wf-zhang/p/14923279.html
https://www.jianshu.com/p/7a927db713e4
https://blog.csdn.net/ljx1400052550/article/details/79587133
https://blog.csdn.net/yuanjian0814/article/details/109815473