1. 程式人生 > >ECC橢圓曲線加密演算法

ECC橢圓曲線加密演算法

橢圓曲線加密也是一種公鑰加密演算法,和RSA與離散對數一樣,它也是基於一個數學求解的難題,並且它的難度比RSA和離散對數都要大,它基於的數字難題就是求取定義在橢圓曲線上的離散對數的求取難題,對於這個難題的描述比大數分解和離散對數要稍微複雜一些,不過它也還算比較形象,理解起來也不難,如果有公式恐懼的直接看文字也能明白大致的意思。

1、定義在實數域上的橢圓曲線

曲線方程是:y2=x3+ax+b4a3+27b20
曲線形狀是:
這裡寫圖片描述
一個橢圓曲線群指的就是由曲線上的點和無窮遠點O組成的集合。
這個群是一個加法群,這個加法群是這樣定義的:
對於橢圓曲線上不同的兩點PQ,則有P+Q=R,它表示為一條通過P

Q的直線與橢圓曲線相交於一點R,R關於X軸對稱的點即為R,如下圖所示:
這裡寫圖片描述
對於曲線上的任意一點P,有P+(P)=OO是無窮遠點。如果P點的座標是(x,y),那麼P點的座標是(x,y),如下圖所示(下圖也是一種橢圓曲線):
這裡寫圖片描述
對於橢圓曲線上的任意一點P,有P+P=2P=R,相對於在P點做一條切線,切線與曲線相交於一點,然後取橢圓曲線上關於該交點的對稱點,如下圖所示:
這裡寫圖片描述
特別的,對於點P,如果y=0,那麼交點在無窮遠點,則有2P=O,如下圖所示:
這裡寫圖片描述
上面的幾條運演算法則定義了橢圓曲線的加法,依據這個加法現在就可以說明一下橢圓曲線加密所利用的數學難題:
對於橢圓曲線上的點P
,其中y0,也就是縱座標不能於0,依據前面定義的加法的計演算法則,給定一個整數n,很容易求出Q=nP,也就是nP相加,但是在已知了PQ的條件下求取n則是一個很難的問題。
前面給出了實數域上橢圓曲線的加法的定義,利用一定的平面解析幾何的方法就可以得到加法的計算公式:
如果P=(xP,yP)Q=(xQ,yQ)不是互反的,也就是不是橫座標相等,縱座標相反,那麼求取P+Q=R,R=(xR,yR)的演算法是:
s=yPyQxPxQ,可以看出s就是直線的斜率
xR=s2xPxQ,yR=yP+s(xPxR)
求取R=2P的公式是(這個是針對P=(xP,yP),且yP0):
s=3
xp2+a
2yp

xR=s22xP,yR=yP+s(xPxR)

2、定義在FP域和F2m域上的橢圓曲線

相關推薦

ECC橢圓曲線加密演算法

橢圓曲線加密也是一種公鑰加密演算法,和RSA與離散對數一樣,它也是基於一個數學求解的難題,並且它的難度比RSA和離散對數都要大,它基於的數字難題就是求取定義在橢圓曲線上的離散對數的求取難題,對於這個難題的描述比大數分解和離散對數要稍微複雜一些,不過它也還算比較形

簡單橢圓曲線加密演算法ECC)示例(MATLAB實現)

摘要 本文主要是使用MATLAB演示橢圓曲線加密演算法(ECC)的加密/解密過程,內容包括金鑰、公鑰生成,以及通過加密並解密一個簡單數字的過程來描述其使用方法。 本文實際是對以下兩篇文章的一個MATLAB實現,並且提供了兩個實用的MATLAB工具函式以便在閱

如何給小學生講清楚ECC橢圓曲線加密

對於RSA這套公私鑰加密的思路,我以為我挺明白的,運用的嫻熟自如。 當然現在RSA用的不多,而是基於ECC曲線來做簽名驗籤,最大名鼎鼎的莫過於比特幣。 可是前兩天和別人講程式碼,被問了ECC為什麼可以用來做驗籤,發現自己講不清楚。 所以做了點功課,來把這個問題講清楚。 首先我們跳過ECC曲線是個啥這個話題,這

橢圓曲線加密演算法

  橢圓曲線密碼學(Elliptic curve cryptography),簡稱ECC,是一種建立公開金鑰加密的演算法,也就是非對稱加密。類似的還有RSA,ElGamal演算法等。ECC被公認為在給定金鑰長度下最安全的加密演算法。比特幣中的公私鑰生成以及簽名演算法ECDSA都是基於ECC的。下面簡單介紹E

c++ 簡單的實現橢圓曲線加密演算法

橢圓曲線演算法 橢圓曲線密碼體制來源於對橢圓曲線的研究,所謂橢圓曲線指的是由韋爾斯特拉斯(Weierstrass)方程: y2+a1xy+a3y=x3+a2x2+a4x+a6 (1) 所確定的平面曲線。其中係數ai(I=1,2,…,6)定義在某個域上,可以是有理數域、實數域

橢圓曲線加密演算法SM2在Android用Java呼叫實現

        SM2基於ECC,ECC(Elliptic Curves Cryptography)加密演算法是一種公鑰加密演算法,與主流的RSA演算法相比,ECC演算法可以使用較短的金鑰達到相同的安全程度。近年來,人們對ECC的認識已經不再處於研究階段,開始逐步進入實際應用

橢圓曲線加密演算法的證書

網上介紹openssl建立RSA演算法的證書很多,但是建立橢圓曲線證書的少。即使這些介紹橢圓曲線的,都不對,創建出來的證書無法使用。 最終基於該開源工具成功建立了: http://sourceforge.net/projects/xca/

關於密碼中的RSA演算法ecc(橢圓曲線)演算法加密過程是怎樣的?

作者:Kalafinaian 連結:https://www.zhihu.com/question/26662683/answer/325511510 來源:知乎 著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。   Oblivious 何処へ行くの

什麼是橢圓曲線加密ECC)?

轉載自http://8btc.com/article-138-1.html,一次沒看明白記錄下來多看幾次。 比特幣使用橢圓曲線演算法生成公鑰和私鑰,選擇的是secp256k1曲線。與RSA(Ron Rivest,Adi Shamir,Len Adleman三位

ECC橢圓曲線、ECDSA簽名驗籤和ECIES加解密

ECC橢圓曲線詳解前言ECC英文全稱"Ellipse Curve Cryptography",與傳統的基於大質數因子分解困難性的加密方法不同,ECC通過橢圓曲線方程式的性質產生金鑰ECC164位的金鑰產生一個安全級,相當於RSA 1024位金鑰提供的保密強度,而且計算量較小,

離散對數和橢圓曲線加密原理

序言 現代公鑰加密系統中,常用的加密演算法除了RSA還有離散對數加密和橢圓曲線加密。這兩者原理比較相似,在這裡一併介紹。 離散對數問題 我們在中學裡學的對數問題是指, 給定正實數aa和axax,求xx。也就是計算x=logaaxx=lo

橢圓曲線加密學習的菜鳥入門

橢圓曲線:一個更好的trapdoor構件 橢圓曲線是滿足特定數學等式的點的集合。橢圓曲線的方程像如下的樣子:   它的影象:   還有其他形式的橢圓曲線的表達形式,但是一般的橢圓曲線方程,一個變數為2階,一個變數為3階。它有一些好的屬性用於加密。 1.奇怪的對稱性 它是水平

區塊鏈中的密碼學(三)-橢圓曲線加密算法分析

自己的 愛好 focus 一個數 如果 imp 變化 關註 bre 在目前密碼學的非對稱加密算法中,RSA算法依然是一種主流,但是隨著比特幣中對於一種之前不太流行的算法:橢圓加密算法(ECC)的成功應用後,這種算法得到了很大的關註和普及。有一種說法是中本聰不信任RSA算法,

python實現的橢圓曲線加密

col sha2 -s emp for in spa 屬於 質數分解 app 我也看得雲裏霧裏, 但是ECC和RSA並列為非對稱加密雙雄, 還是很有必要了解一下的。 RSA是用質數分解,ECC是用離散的橢圓方程解,安全度更高。 而且,這個ECC的加法乘法規則,和普通

比特幣錢包地址的概念以及SHA256和橢圓曲線乘法加密演算法的詳解

比特幣錢包,金鑰,地址 錢包就是金鑰所在之處,錢包是私鑰的容器,通過有序檔案或者簡單的資料庫實現或者用原有的私鑰通過單向雜湊函式生成每一個新的私鑰,並將新的金鑰順序連線。 比特幣錢包包含的是私鑰而不是比特幣,一個使用者可以有一個或者多個私鑰的錢包,錢包中含有成對的私鑰和公鑰

[分享]ECC加密演算法入門介紹 【演算法乾貨】

前言 同RSA(Ron Rivest,Adi Shamir,Len Adleman三位天才的名字)一樣,ECC(Elliptic Curves Cryptography,橢圓曲線密碼編碼學)也屬於公開金鑰演算法。目前,國內詳細介紹ECC的公開文獻並不多(反正我沒有找到)。有一些簡介,也是

區塊鏈教程區塊鏈資訊保安3橢圓曲線加解密及簽名演算法的技術原理一

  區塊鏈教程區塊鏈資訊保安3橢圓曲線加解密及簽名演算法的技術原理一,2018年下半年,區塊鏈行業正逐漸褪去發展之初的浮躁、迴歸理性,表面上看相關人才需求與身價似乎正在回落。但事實上,正是初期泡沫的漸退,讓人們更多的關注點放在了區塊鏈真正的技術之上。 橢圓曲線加解密及簽名演算法的技術原理及其Go語言實現

區塊鏈教程Fabric1.0原始碼分析ECDSA橢圓曲線數字簽名演算法

  兄弟連區塊鏈教程Fabric1.0原始碼分析ECDSA橢圓曲線數字簽名演算法,2018年下半年,區塊鏈行業正逐漸褪去發展之初的浮躁、迴歸理性,表面上看相關人才需求與身價似乎正在回落。但事實上,正是初期泡沫的漸退,讓人們更多的關注點放在了區塊鏈真正的技術之上。 Fabric 1.0原始碼筆記 之 ECDS

公鑰加密演算法那些事 | RSA 與 ECC 系統對比

https://blog.csdn.net/u010646653/article/details/73888734 一、背景 據記載,公元前 400 年,古希臘人發明了置換密碼。1881 年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用「恩尼格瑪」密碼機,密碼學在戰爭中起著非

加密演算法RSA與ECC對比,以及Android、java中使用

一、加密演算法前言 根據金鑰型別不同將現代密碼技術分為兩類:對稱加密演算法和非對稱加密演算法。對稱鑰匙加密系統是加密和解密均採用同一把祕金鑰匙,而且通訊雙方都必須獲得這把鑰匙,並保持鑰匙的祕密。 非對稱金鑰加密系統採用的加金鑰匙(公鑰)和解金鑰匙(私鑰)是不同的。 常見