當前位置:首頁 » 操作系統 » 橢圓密鑰演算法

橢圓密鑰演算法

發布時間: 2022-10-28 18:16:46

❶ 橢圓加密演算法的方程

橢圓曲線密碼體制來源於對橢圓曲線的研究,所謂橢圓曲線指的是由韋爾斯特拉斯(Weierstrass)方程:
y2+a1xy+a3y=x3+a2x2+a4x+a6 (1)
所確定的平面曲線。其中系數ai(I=1,2,…,6)定義在某個域上,可以是有理數域、實數域、復數域,還可以是有限域GF(pr),橢圓曲線密碼體制中用到的橢圓曲線都是定義在有限域上的。
橢圓曲線上所有的點外加一個叫做無窮遠點的特殊點構成的集合連同一個定義的加法運算構成一個Abel群。在等式
mP=P+P+…+P=Q (2)
中,已知m和點P求點Q比較容易,反之已知點Q和點P求m卻是相當困難的,這個問題稱為橢圓曲線上點群的離散對數問題。橢圓曲線密碼體制正是利用這個困難問題設計而來。橢圓曲線應用到密碼學上最早是由Neal Koblitz 和Victor Miller在1985年分別獨立提出的。
橢圓曲線密碼體制是目前已知的公鑰體制中,對每比特所提供加密強度最高的一種體制。解橢圓曲線上的離散對數問題的最好演算法是Pollard rho方法,其時間復雜度為,是完全指數階的。其中n為等式(2)中m的二進製表示的位數。當n=234, 約為2117,需要1.6x1023 MIPS 年的時間。而我們熟知的RSA所利用的是大整數分解的困難問題,目前對於一般情況下的因數分解的最好演算法的時間復雜度是子指數階的,當n=2048時,需要2x1020MIPS年的時間。也就是說當RSA的密鑰使用2048位時,ECC的密鑰使用234位所獲得的安全強度還高出許多。它們之間的密鑰長度卻相差達9倍,當ECC的密鑰更大時它們之間差距將更大。更ECC密鑰短的優點是非常明顯的,隨加密強度的提高,密鑰長度變化不大。
德國、日本、法國、美國、加拿大等國的很多密碼學研究小組及一些公司實現了橢圓曲線密碼體制,我國也有一些密碼學者
做了這方面的工作。許多標准化組織已經或正在制定關於橢圓曲線的標准,同時也有許多的廠商已經或正在開發基於橢圓曲線的產品。對於橢圓曲線密碼的研究也是方興未艾,從ASIACRYPTO』98上專門開辟了ECC的欄目可見一斑。
在橢圓曲線密碼體制的標准化方面,IEEE、ANSI、ISO、IETF、ATM等都作了大量的工作,它們所開發的橢圓曲線標準的文檔有:IEEE P1363 P1363a、ANSI X9.62 X9.63、 ISO/IEC14888等。
2003年5月12日中國頒布的無線區域網國家標准 GB15629.11 中,包含了全新的WAPI(WLAN Authentication and Privacy Infrastructure)安全機制,能為用戶的WLAN系統提供全面的安全保護。這種安全機制由 WAI和WPI兩部分組成,分別實現對用戶身份的鑒別和對傳輸的數據加密。WAI採用公開密鑰密碼體制,利用證書來對WLAN系統中的用戶和AP進行認證。證書裡麵包含有證書頒發者(ASU)的公鑰和簽名以及證書持有者的公鑰和簽名,這里的簽名採用的就是橢圓曲線ECC演算法。
加拿大Certicom公司是國際上最著名的ECC密碼技術公司,已授權300多家企業使用ECC密碼技術,包括Cisco 系統有限公司、摩托羅拉、Palm等企業。Microsoft將Certicom公司的VPN嵌入微軟視窗移動2003系統中。
以下資料摘自:http://www.hids.com.cn/data.asp

❷ 橢圓加密演算法的優點

與經典的RSA,DSA等公鑰密碼體制相比,橢圓密碼體制有以下優點: 在私鑰的加密解密速度上,ecc演算法比RSA、DSA速度更快。
存儲空間佔用小。
帶寬要求低.

❸ 科普:國產密碼演算法


密碼學(cryptography): 通過將信息編碼使其不可讀,從而達到安全性。

演算法 :取一個輸入文本,產生一個輸出文本。

加密演算法 :發送方進行加密的演算法。

解密演算法 :接收方進行解密的演算法。

對稱密鑰加密 (Symmetric Key Cryptography):加密與解密使用相同密鑰。

非對稱密鑰加密 (Asymmetric Key Cryptography):加密與解密使用不同密鑰。

密鑰對 :在非對稱加密技術中,有兩種密鑰,分為私鑰和公鑰,私鑰是密鑰對所有者持有,不可公布,公鑰是密鑰對持有者公布給他人的。

公鑰 :公鑰用來給數據加密,用公鑰加密的數據只能使用私鑰解密。

私鑰 :如上,用來解密公鑰加密的數據。

摘要 :對需要傳輸的文本,做一個HASH計算。

簽名 :使用私鑰對需要傳輸的文本的摘要進行加密,得到的密文即被稱為該次傳輸過程的簽名。

密碼協議是指兩個或兩個以上的參與者為了達到某種特定目的而採取的一系列步驟。規定了一系列有序執行的步驟,必須依次執行。必須有兩個或兩個以上的參與者,有明確的目的。參與者都必須了解、同意並遵循這些步驟。

常見的密碼協議包括IPSEC VPN 協議、SSL VPN 協議、密鑰交換協議等。

密碼是指描述密碼處理過程的一組運算規則或規程,一般是指基於復雜數學問題設計的一組運算,其基本原理基於數學難題、可證明計算、計算復雜度等。主要包括:對稱密碼、公鑰密碼、雜湊演算法、隨機數生成。

在對稱加密演算法中,加密使用的密鑰和解密使用的密鑰是相同的,加密和解密都是使用同一個密鑰,不區分公鑰和私鑰。

通信雙方採用相同的密鑰來加解密會話內容,即一段待加密內容,經過同一個密鑰的兩次對稱加密後,與原來的結果一樣,具有加解密速度快和安全強度高的優點。

國際演算法:DES、AES。

國產演算法:SM1、SM4、SM7。

非對稱加解密演算法又稱為 公鑰密碼 ,其密鑰是成對出現的。雙方通信時,首先要將密鑰對中的一個密鑰傳給對方,這個密鑰可以在不安全的信道中傳輸;傳輸數據時,先使用自己持有的密鑰做加密,對方用自己傳輸過去的密鑰解密。

國際演算法:RSA

國產演算法:SM2

優點:

密鑰分發數目與參與者數目相同,在有大量參與者的情況下易於密鑰管理。

支持數字簽名和不可否認性。

無需事先與對方建立關系,交換密鑰。

缺點:

速度相對較慢。

可能比同等強度的對稱密碼演算法慢10倍到100倍。

加密後,密文變長。

密碼雜湊演算法 :又稱為散列演算法或哈希函數,一種單向函數,要由散列函數輸出的結果,回推輸入的資料是什麼,是非常困難的。

散列函數的輸出結果,被稱為訊息摘要(message digest)或是 摘要(digest) ,也被稱為 數字指紋

雜湊函數用於驗證消息的完整性, 在數字簽名中,非對稱演算法對數據簽名的速度較慢,一般會先將消息進行雜湊運算,生成較短的固定長度的摘要值。然後對摘要值進行簽名,會大大提高計算效率 。

國際演算法:MD5、SHA1、SHA2、SHA3

國產演算法:SM3

2009年國家密碼管理局發布的《信息安全等級保護商用密碼技術實施要求》中明確規定,一、二、三、四級信息系統應使用商用密碼技術來實施等級保護的基本要求和應用要求,一到四級的密碼配用策略要求採用國家密碼管理部門批准使用的演算法。

2010年年底,國家密碼管理局公開了SM2、SM3等國產密碼演算法。

2011年2月28日,國家密碼管理局印發的【2011】145號文中明確指出,1024位RSA演算法正在面臨日益嚴重的安全威脅,並要求各相關企業在2012年6月30日前必須使用SM2密碼演算法

國家密碼管理局在《關於做好公鑰密碼演算法升級工作的函》中要求2011年7月1日以後建立並使用公鑰密碼的信息系統,應使用SM2演算法;已經建設完成的系統,應盡快進行系統升級,使用SM2演算法。

2014年底,國家密碼管理局啟動《重要信息系統密碼應用推進總體研究課題》,確定十三五密碼 科技 專項。

2017年11月底,國家密碼管理局下發了《政務雲密碼支撐方案及應用方案設計要點》。

2017年國家密碼管理局發布了42項金融和重要領域國產密碼應用試點任務。

2018年,中共中央辦公廳、國務院辦公廳印發《金融和重要領域密碼應用與創新發展工作規劃(2018-2022年)。

2018年,為指導當時即將啟動的商用密碼應用安全性評估試點工作,國家密碼管理局發布了密碼行業標准GM/T0054-2018《信息系統密碼應用 基本要求》。

2021年3月,國家市場監管總局、國家標准化管理委員會發布公告,正式發布國家標准GB/T39786-2021《信息安全技術信息系統密碼應用基本要求》,該標准於2021年10月1日起實施。

SM1 演算法是分組密碼演算法,分組長度為 128 位,密鑰長度都為 128 比特,演算法安全保密強度及相關軟硬體實現性能與AES相當,演算法不公開,僅以IP核的形式存在於晶元中。

演算法集成於加密晶元、智能 IC 卡、智能密碼鑰匙、加密卡、加密機等安全產品,廣泛應用於電子政務、電子商務及國民經濟的各個應用領域(包括政務通、警務通等重要領域)。

SM2橢圓曲線公鑰密碼演算法是我國自主設計的公鑰密碼演算法,是一種基於ECC演算法的 非對稱密鑰演算法, 其加密強度為256位,其安全性與目前使用的RSA1024相比具有明顯的優勢。

包括SM2-1橢圓曲線數字簽名演算法,SM2-2橢圓曲線密鑰交換協議,SM2-3橢圓曲線公鑰加密演算法,分別用於實現 數字簽名密鑰協商 數據加密 等功能。

SM3雜湊演算法是我國自主設計的密碼雜湊演算法,屬於哈希(摘要)演算法的一種,雜湊值為256位,安全性要遠高於MD5演算法和SHA-1演算法。

適用於商用密碼應用中的 數字簽名 驗證消息認證碼的生成與驗證 以及 隨機數 的生成,可滿足多種密碼應用的安全需求。

SM4 分組密碼演算法 是我國自主設計的分組對稱密碼演算法,SM4演算法與AES演算法具有相同的密鑰長度分組長度128比特,因此在安全性上高於3DES演算法。

用於實現數據的加密/解密運算,以保證數據和信息的機密性。軟體和硬體加密卡均可實現此演算法。


商用密碼技術框架包括 密碼資源、密碼支撐、密碼服務、密碼應用 等四個層次,以及提供管理服務的密碼管理基礎設施。

密碼資源層: 主要是提供基礎性的密碼演算法資源。

密碼支撐層: 主要提供密碼資源調用,由安全晶元、密碼模塊、智能IC卡、密碼卡、伺服器密碼機、簽名驗簽伺服器、IPSCE/SSL VPN 等商密產品組成。

密碼服務層: 提供密碼應用介面,分為對稱和公鑰密碼服務以及其他三大類。

密碼應用層: 調用密碼服務層提供的密碼應用程序介面,實現數據的加解密、數字簽名驗簽等服務。如應用 於 安全郵件、電子印章系統、安全公文傳輸、移動辦公平台、可信時間戳等系統。

密碼管理基礎設施: 獨立組件,為以上四層提供運維管理、信任管理、設備管理、密鑰管理等功能。


完整的PKI系統必須具有權威認證機構(CA)、數字證書庫、密鑰備份及恢復系統(KMC)、證書作廢系統(CRL)、應用介面(API)等基本構成部分,構建PKI也將圍繞著這五大系統來著手構建。

CA 系統:Ca系統整個PKI的核心,負責證書的簽發。CA首先產生自身的私鑰和公鑰(密鑰長度至少為1024位),然後生成數字證書,並且將數字證書傳輸給安全伺服器。、CA還負責為操作員、安全伺服器以及注冊機構伺服器生成數字證書。安全伺服器的數字證書和私鑰也需要傳輸給安全伺服器。

CA伺服器是整個結構中最為重要的部分,存有CA的私鑰以及發行證書的腳本文件,出於安全的考慮,應將CA伺服器與其他伺服器隔離,任何通信採用人工干預的方式,確保認證中心的安全。


(1)甲使用乙的公鑰對明文進行加密,生成密文信息。

(2)甲使用HASH演算法對明文進行HASH運算,生成數字指紋。

(3)甲使用自己的私鑰對數字指紋進行加密,生成數字簽名。

(4)甲將密文信息和數字簽名一起發送給乙。

(5)乙使用甲的公鑰對數字簽名進行解密,得到數字指紋。

(6)乙接收到甲的加密信息後,使用自己的私鑰對密文信息進行解密,得到最初的明文。

(7)乙使用HASH演算法對還原出的明文用與甲所使用的相同HASH演算法進行HASH運算,生成數字指紋。然後乙將生成的數字指紋與從甲得到的數字指紋進行比較,如果一致,乙接受明文;如果不一致,乙丟棄明文。


SSL 協議建立在可靠的傳輸協議(如 TCP)之上,為高層協議提供數據封裝,壓縮,加密等基本功能。

即可以協商加密演算法實現加密傳輸,防止數據防竊聽和修改,還可以實現對端設備身份驗證、在這個過程中,使用國密演算法進行加密、簽名證書進行身份驗證、加密證書用於密鑰交換

SSL協商過程:

(1)客戶端發出會話請求。

(2)服務端發送X.509證書(包含服務端的公鑰)。

(3)客戶端用已知Ca列表認證證書。

(4)客戶端生成隨機對稱密鑰,並利用服務端的公鑰進行加密。

(5)雙方協商完畢對稱密鑰,隨後用其加密會話期間的用戶最終數據。

利用SSL卸載技術及負載均衡機制,在保障通訊數據安全傳輸的同時,減少後台應用伺服器的性能消耗,並實現伺服器集群的冗餘高可用,大幅度提升整個業務應用系統的安全性和穩定性。此外,藉助多重性能優化技術更可縮短了業務訪問的響應等待時間,明顯提升用戶的業務體驗。


基於 數字證書 實現終端身份認證,給予密碼運算實現本地數據的加密存儲,數字證書硬體存儲和密碼運算由移動終端內置的密碼部件提供。

移動應用管理系統伺服器採用簽名證書對移動應用軟體安裝包進行簽名,移動應用管理系統客戶端對簽名信息進行驗簽,保障移動應用軟體安裝包的真實性和完整性。

移動辦公應用系統採用簽名證書對關鍵訪問請求進行簽名驗證。

採用加密證書對關鍵傳輸數據和業務操作指令,以及移動終端本地存儲的重要數據進行加密保護。

移動辦公系統使用商用密碼,基於數字證書認證系統,構建覆蓋移動終端、網路、移動政務應用的安全保障體系,實現政務移動終端安全、接入安全、傳輸安全和移動應用安全 。

❹ 首次將橢圓曲線用於密碼學,建立公開密鑰加密的演演算法是在那一年

橢圓曲線密碼學(英語:Elliptic curve cryptography,縮寫為 ECC),一種建立公開密鑰加密的演算法,基於橢圓曲線數學。

橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。

橢圓曲線密碼學:

橢圓曲線密碼學(英語:Elliptic curve cryptography,縮寫為ECC),一種建立公開密鑰加密的演算法,基於橢圓曲線數學。橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。

ECC的主要優勢是在某些情況下它比其他的方法使用更小的密鑰——比如RSA加密演算法——提供相當的或更高等級的安全。ECC的另一個優勢是可以定義群之間的雙線性映射。

基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。其缺點是同長度密鑰下加密和解密操作的實現比其他機制花費的時間長。

但由於可以使用更短的密鑰達到同級的安全程度,所以同級安全程度下速度相對更快。一般認為160比特的橢圓曲線密鑰提供的安全強度與1024比特RSA密鑰相當。

❺ 橢圓曲線加密演算法

這需要自己設計,如果明文空間為M,則需要構造一個映射,將M中的元素(一般為二進制序列)映射到橢圓曲線上的點。
一種可能的做法是:將M轉化為十進制整數m,然後令橢圓曲線中點的橫坐標為m,根據曲線方程計算出縱坐標,便得到了一個點。

❻ 橢圓曲線演算法的加密演算法

在橢圓曲線加密(ECC)中,利用了某種特殊形式的橢圓曲線,即定義在有限域上的橢圓曲線。其方程如下:
y²=x³+ax+b(mod p)
這里p是素數,a和b為兩個小於p的非負整數,它們滿足:
4a³+27b²(mod p)≠0 其中,x,y,a,b ∈Fp,則滿足式(2)的點(x,y)和一個無窮點O就組成了橢圓曲線E。
橢圓曲線離散對數問題ECDLP定義如下:給定素數p和橢圓曲線E,對 Q=kP,在已知P,Q的情況下求出小於p的正整數k。可以證明,已知k和P計算Q比較容易,而由Q和P計算k則比較困難,至今沒有有效的方法來解決這個問題,這就是橢圓曲線加密演算法原理之所在。

❼ 理解橢圓曲線加密演算法

橢圓曲線加密演算法,即:Elliptic Curve Cryptography,簡稱ECC,是基於橢圓曲線數學理論實現的一種非對稱加密演算法。相比RSA,ECC優勢是可以使用更短的密鑰,來實現與RSA相當或更高的安全。據研究,160位ECC加密安全性相當於1024位RSA加密,210位ECC加密安全性相當於2048位RSA加密。

一般橢圓曲線方程式表示為:(其中a,b,c,d為系數)
> y2=ax3+ bx2+cx+d
典型的橢圓曲線如:y2=x3−4x2+16

先擺一個栗子:

小米很難算到的那個數,就是公鑰密碼演算法中的私鑰(一個公鑰密碼演算法安全的必要條件(非充分)是「由公鑰不能反推出私鑰」),公鑰密碼演算法最根本的原理是利用信息的不對稱性:即掌握私鑰的人在整個通信過程中掌握最多的信息。
橢圓曲線加密演算法是一個基於加法階數難求問題的密碼方案。 對於橢圓曲線來講,橢圓曲線的基點就是例子裡面的5,而私鑰就是基點的加法階數(例子裡面的11),公鑰是基點(5)進行對應階數的加法(11次)得到的結果(55)。

簡單描述就是:G * k = K (G,K公開,k保密)

上述例子相對簡單,橢圓曲線加密演算法里的加法建立在 「有限域上的二元三次曲線上的點」上 ,組成一個「有限加法循環群」。具體的說,這個加法的幾何定義如下圖,兩個點的加法結果是指這兩點的連線和曲線的交點關於x軸的鏡像。

如果我們從某一點出發(所謂的單位元,比如正整數域的1,代表一個空間里的最基本單元),不停做自增操作(所謂群操作,比如++),枚舉出整個空間的集合元素。如圖:

因此給定橢圓曲線的某一點G,從G出發,不停做切線,找對稱點,依次得到-2G,2G,-4G,4G,-8G,8G... 。即:當給定G點時,已知x,求xG點並不困難。反之,已知xG點,求x則非常困難。即Q = NG,N就是我們的私鑰,Q就是我們的公鑰。

現在我們知道了公鑰(Q)和私鑰(N)的生成的原理,我們在看看橢圓曲線數字簽名演算法(ECDSA)的過程,橢圓曲線數字簽名演算法(ECDSA)是使用橢圓曲線密碼(ECC)對數字簽名演算法(DSA)的模擬。ECDSA於1999年成為ANSI標准,並於2000年成為IEEE和NIST標准。

私鑰主要用於 簽名,解密 ;公鑰主要用於 驗簽,加密 ,可以通過私鑰可以計算出公鑰,反之則不行。
公鑰加密:公鑰加密的內容可以用私鑰來解密——只有私鑰持有者才能解密。
私鑰簽名:私鑰簽名的內容可以用公鑰驗證。公鑰能驗證的簽名均可視為私鑰持有人所簽署。

通常需要六個參數來描敘一個特定的橢圓曲線:T = (p, a, b, G, n, h).
p: 代表有限域Fp的那個質數 a,b:橢圓方程的參數 G: 橢圓曲線上的一個基點G = (xG, yG) n:G在Fp中規定的序號,一個質數。 h:余因數(cofactor),控制選取點的密度。h = #E(Fp) / n。

這里以secp256k1曲線(比特幣簽名所使用的曲線)為例介紹一下公私鑰對的產生的過成。
secp256k1的參數為:

本質上ECDSA的私鑰就是一個隨機數滿足在曲線G的n階里及k∈(0,n),根據Q=kG可以計算出公鑰,生成的私鑰一般為32位元組大小,公鑰通常為64個位元組大小。如:

ECDSA簽名演算法的輸入是數據的哈希值,而不是數據的本身,我們假設用戶的密鑰對:(d, Q);(d為私鑰,Q為公鑰) 待簽名的信息:M; e = Hash(M);簽名:Signature(e) = ( r, s)。

簽名介面:

驗證介面:

一個例子:

❽ ECDSA(橢圓曲線數字簽名演算法)

ECDSA(Elliptic Curve Digital Signature Algorithm)

在現實工作和生活中,我們使用簽名的方式表達對一份文件的認可,其他人可以識別出你的簽名並且無法偽造你的簽名。數字簽名就是對顯示簽名的一種電子實現,它不僅可以完全達到現實簽名的特點,甚至能夠做的更好。
常用的數字簽名演算法有RSA(Rivest-Shamir-Adleman Scheme)、DSS(Digital Signature Standard)等。 比特幣使用ECDSA來生成賬戶的公私鑰以及對交易和區塊進行驗證。

1.Alice(密碼學中常用A到Z開頭的人名代替甲乙丙丁等,字母越靠後出現頻率越低)生成一對密鑰,一個是sk(signing key),是非公開的;另一個是vk(verification key),是公開的。
這一對密鑰同時生成,並且在數學上是相互關聯的,同時,根據vk無法推測出關於sk的任何信息。
2.數字簽名演算法接收兩個輸出:信息M和sk,生成一個數字簽名Sm
3.驗證函數接收信息M、Sm以及vk作為輸入,,返回結果是yes或者no。這一步的目的是為了驗證你看到的針對信息M的數字簽名確實是由Alice的sk來簽發的,用於確認信息與簽名是否相符。
與手寫簽名不同,手寫簽名基本都是相似的,但是數字簽名卻受輸入影響很大。對輸入輕微的改變都會產生一個完全不同的數字簽名。一般不會對信息直接進行數字簽名,而是對信息的哈希值進行簽名。由加密哈希函數的無碰撞性可知,這樣和對原信息進行簽名一樣安全。

在數學上,任何滿足以下方程的點所形成的曲線稱為隨機橢圓曲線: 並且 ,a和b可以為任意值。下面展示幾個隨機橢圓函數的示例:

在了解如何通過基於secp256k1橢圓曲線的ECDSA演算法生成公私鑰之前,我們需要了解在隨機橢圓曲線里,點的加法是如何實現的。
首先定義橢圓曲線上點的加法。設橢圓曲線上有兩點,A和B點,那麼作過這兩點的直線與該曲線相交於第三點(C點),然後關於X軸對稱得到D點,則D為這兩個點的和,記作D=A+BD=A+BD=A+B。很明顯,D點也在該曲線上。所以橢圓曲線上兩點之和也是曲線上的點。

特例:
1.如果兩點重合,則做該點的切線,與曲線相交點的對稱點為和,即A+A=C
如圖:

有了加法以後,乘法實現是不過是進行多次加法運算。有了一個基準點P以後,我們可以對其進行乘法運算,最後可以得到曲線上的另外一個點。
設PPP是橢圓曲線上的一個點,那麼正整數kkk乘以點PPP的結果由下面的式子定義,注意式子中的加法是上面提到的橢圓曲線上點的加法:




點的運算滿足結合律:

很顯然,通過累加 的方式計算 是一種很笨的辦法,其時間復雜度是線性的。上面我們提到過,橢圓曲線上點的加法是滿足結合律的,即 ,擴展一下,就有

於是就有這么一種騷操作,比如計算 ,我們可以先計算 ;然後計算 ;再計算 ;最後計算 。這里我們把15次加法減少到了4次。

當然,k的值不可能總是2的冪。實際上上面的操作可以推廣到k為任意正整數的情況。比如計算23P,首先計算 ,然後



因為 ,所以 。總共只需要7次加法。

分析一下,對於任意正整數k,我們都可以利用這個方法將計算k∗P所需的加法計算次數降低到

也就是說,從時間復雜度的角度來看,這個演算法是一個 的演算法。

這個方法被稱為快速冪演算法,原本常用於快速計算某個數的k次冪,這里將其推廣到橢圓曲線點乘的快速計算中。

為什麼要在介紹了橢圓曲線上點的乘法後突然冒出一個快速冪演算法?快速冪演算法對於橢圓曲線加密有什麼意義?因為數學家/密碼學家發現,利用快速冪演算法計算 的時間復雜度是對數級的,但是要在知道 和 的前提下,倒推出 的值,沒有比挨個嘗試 的值快太多的演算法。於是橢圓曲線加密依賴的數學難題就這么誕生了。

如果我們改一種記法,把橢圓曲線上點的加法記作乘法,原來的乘法就變成了冪運算,那麼上述難題的形式跟離散對數問題應該是一致的。即:

所以這個難題叫橢圓曲線上的離散對數問題。

盡管兩者形式一致,但是他們並不等價。實際上這個問題比大整數質因子分解(RSA)和離散對數(DH)難題都要難得多,目前還沒有出現亞指數級時間復雜度的演算法(大整數質因子分解和離散對數問題都有),以致於同樣的安全強度下,橢圓曲線加密的密鑰比RSA和DH的短不少,這是橢圓曲線加密的一大優勢。

假設隨機取一個 ~ 位之間的值x,計算 ,最後的結果一定會落在曲線上的一點。假設該點為 ,在公開 以及具體曲線的方程的情況下,能否反推出最初的隨機值 ?
證:尋找 的過程只能通過暴力計算, 的可能值為 ~ 中的一個,平均來說需要計算 次能夠找到一次 值。那麼問題來了,運行一次 的計算需要多長的時間呢?
假設我們使用的是超級計算機,主頻為 (一秒鍾可以進行一萬億次運算),從宇宙誕生的那一刻開始計算,到現在也就進行了 次。找到 值的概率為 。這個概率和下一秒地球被巨型隕石撞擊而毀滅的概率接近,既然我們讀到了這里,那麼說明這件事沒有發生。
在上面的案例中, 是 ~ 位的一個隨機數,可以作為私鑰。 是隨機橢圓曲線上的一個點,也就是由私鑰生成的公鑰,因此優點可以1得證。

但是密碼學中,並不能使用上面介紹的實數域上的橢圓曲線。因為

所以我們需要引入有限域上的橢圓曲線。
要證明優點2,還需要將隨機橢圓曲線做一些改動:為了保證最後計算出來的點的坐標值相加是512位,secp256k1引入了一個對質數取模的機制。具體來說,隨機橢圓曲線從
變為了 其中 ,是小於 的最大質數。
此時的隨機橢圓曲線函數圖如下:

具體來說,就是向別人證明我知道 ,但不暴露 的任何信息。(有些類似於零知識證明)
證:前面介紹過結合律: 添加一個hash函數,簡單修改可以得出: 使 ,那麼可知 為 。此時方程為: 為了簡單起見,我們記 和 。此時方程化簡為: 上面這個方程是什麼意思呢?
可以這樣假設:在已知 的情況下,如果能夠提供一個 和 滿足上面的方程,就可以證明一個人擁有 。這個假設有一個前提,如果一個人不知道x,那麼他就無法提供 和 滿足上面的等式。
詳細探討這個前提:如果一個人不知道x,又想計算出 和 ,能夠辦到嗎?結論是不能,首先我們無法從 計算出 (在有限時間內)。
還有一個問題:在已知 和 的情況下,能否計算出關於 的任何信息?
根據公式: 只要解出 就可以了。
要想計算出x,就需要知道r,但是在r沒有公開的情況下,有什麼辦法可以計算r嗎?我們知道R=r*P;但是根據這個公式無法倒推出r(剛才介紹的那個數學難題),所以x也是安全的。
至此,可以證明演算法的第二個優點。

❾ 橢圓加密演算法的介紹

橢圓加密演算法(ECC)是一種公鑰加密體制,最初由Koblitz和Miller兩人於1985年提出,其數學基礎是利用橢圓曲線上的有理點構成Abel加法群上橢圓離散對數的計算困難性。

❿ 橢圓曲線數字簽名演算法(ECDSA)密鑰K中p的作用是什麼

你說的p大概是素數有限域,p為一大素數,橢圓曲線的點都在p素數域空間求模計算。另外還有多項式域F(a^m),這個多項式域大約可以理解為多項式里頭的素性多項式,不能分解。

熱點內容
python實用代碼 發布:2025-05-13 22:19:41 瀏覽:842
dede資料庫的配置文件 發布:2025-05-13 22:19:08 瀏覽:966
給字元加密 發布:2025-05-13 22:12:32 瀏覽:972
資料庫系統實現答案 發布:2025-05-13 22:11:57 瀏覽:140
哪個軟體可以共存安卓 發布:2025-05-13 22:10:15 瀏覽:552
上傳宦妃天下野泉肉肉 發布:2025-05-13 22:10:10 瀏覽:408
洗眼睛解壓 發布:2025-05-13 21:58:28 瀏覽:272
c存儲指針 發布:2025-05-13 21:49:04 瀏覽:921
結繩編程軟體 發布:2025-05-13 21:49:03 瀏覽:850
解壓體育館 發布:2025-05-13 21:27:48 瀏覽:263