知識來了 | ECC橢圓曲線密碼學簡介

2020-12-06 電子工程世界網

我們在《幾何》課本裡學過二元一次方程表示直線,二元二次方程表示圓錐曲線(圓,橢圓,雙曲線和拋物線),那麼二元三次方程表示什麼曲線呢?答案自然就是橢圓曲線。為了方便研究,大部分的二元三次方程可以簡化成魏爾斯特拉斯方程的形式,見公式(4)。其中,係數a 和b 需要滿足條件4a3 + 27b2 ≠ 0,該條件保證方程中不會出現非奇異點以獲得平滑的橢圓曲線。 

ax + by + z = 0 (1)

ax2 + by2 + cxy + dx + ey + f = 0 (2)

ax3 + bx2y + cxy2 + dy3 + ex2 + fxy + gy2 + hx + iy + j = 0 (3)

y2 = x3 + ax + b (4)

一個違反直覺的事實是:橢圓曲線的形狀跟橢圓毫無關係。當初數學家們在研究如何計算橢圓弧長的時候發現需要求解如下類型的積分, 由於和橢圓相關,積分中的分母項y =√(x3+ax+b) 便被稱作橢圓曲線。

下圖展示了一些合法的橢圓曲線,

下圖展示了兩種非法的橢圓曲線,分別存在一個尖點和叉點使曲線不平滑。

現代密碼學算法和協議中,消息是作為有限空間中的數字或元素來處理的。加密和解密的各種操作必須在消息之間進行變換,以使變換服從有限消息空間內部的封閉性。然而,數的一般運算諸如加減乘除並不滿足有限空間內部的封閉性。所以密碼算法通常運行於具有某些保持封閉性的代數結構的空間中,這種代數結構就是有限循環群。在數學中,群是一種代數結構,由一個集合以及一個二元運算組成。群必須滿足以下四個條件:封閉性,結合律,存在單位元和存在逆元。

最常見的群之一是整數集Z以及加法操作。

有限循環群在群的基礎上滿足兩個額外條件:群元素個數有限以及交換律。循環群由單個元素(產生元)的疊加操作生成,最常見的有限循環群為模擬時鐘。

1985年,Neal KoblitzVictor S.Miller分別獨立提出利用橢圓曲線產生橢圓曲線循環群用於密碼學。在數學上,橢圓曲線群的元素為橢圓曲線上的點,群操作為」+」,」+」的定義為,給定曲線兩點PQP+Q等於PQ兩點的連線與曲線交點沿X軸的對稱點,如果P=Q,則P+P等於P在曲線上的切線與曲線交點沿X軸的對稱點。該群的單位元為無窮遠零點記作O=(0,0),有P+O=P,點P的逆元為其沿X軸的對稱點,記作-P

下圖演示了如何計算P+Q=R(P≠Q)。

下圖演示了如何計算P+Q=2P=R(P=Q)

下圖演示了如何計算P的逆元-P

前面介紹的橢圓曲線都是基於有理數的,但是計算機運算浮點數(小數)的速度較慢,更重要的是四捨五入浮點數會產生誤差,導致多次加密解密操作後原始消息不能被還原。故考慮到加密算法的可實現性,密碼學上使用基於整數的模加運算產生橢圓曲線有限循環群。

本文不涉及具體的數學計算,將用具體的例子展示如何產生ECC有限循環群。例如考慮y2=x3-7x+10(mod 19)的集合,該集合中所有的元素如下圖所示。模運算把發散的橢圓曲線映射到19*19的正方形空間中,並且保持了原有曲線的上下對稱特性。 

下圖展示了y2=x3-7x+10(mod 19)集合中的元素和橢圓曲線的關係。

Q』映射到點Q,點P的對稱點也由點-P』映射到點-P

如果取一個更大的質數p進行模運算,集合中的元素點也會相應地增多。下圖展示了利用同一個曲線方程進行不同模運算的結果。在實際的橢圓曲線加密算法中,使用長度為192-256位的質數p進行模運算。

現在我們基於y2=x3-7x+10(mod 19),利用產生元P=(2,2)來生成ECC有限循環群。如下圖所示。具體的計算使用在線的ECC計算器(連結見參考資料)

G={nP|P=(2,2)}完整的集合為{p=(2,2),2P=(13,8),3P=(1,2),4P=(16,17),5P=(10,3),6P=(18,15),7P=(3,15),8P=(12,1),9P=(9,12),10P=(5,10),11P=(17,15),12P=(7,0),13P=(17,4),14P=(5,9),15P=(9,7),16P=(12,18),17P=(3,4),18P=(18,4),19P=(10,16),20P=(16,2),21P=(1,17),22P=(13,11),23P=(2,17),24P=O=(0,0)}。如下圖所示,隨著n的連續增加,元素點的分布沒有任何特徵,這正是密碼學需要的特性。

請問上圖中與點Q相對應的n值為多少?查找集合G={nP|P=(2,2)}中的元素可知答案是Q=(5,10)=10P,但是實際應用中沒有現成的集合可供查表。若已知某個點Q,只能用比較原始的方法演算可能的n值,目前可實現的效率最高的算法為Baby-step giant-step算法,計算複雜度為O(√n)。反過來,如果已知n計算n*P則簡單的多,因為有限循環群滿足結合律,可以使用square and multiply算法,計算複雜度為O(<2log2n)。例如,比特幣使用名為secp256k1的標準ECC曲線,n的長度為256位. Baby-step giant-step算法的計算複雜度為O(2128),而square and multiply算法的計算複雜度僅為O(<512)。

用密碼學術語描述為:ECC有限循環群構成了一個單向函數Q=nP,已知n,P可以很容易計算Q;反過來已知P,Q則難以計算n.於是(n,Q=n*P )構成了一對私鑰和公鑰。

舉個具體的例子,利用square and multiply 算法計算Q=137P,僅需9步便得到計算結果。

6ECDH基於橢圓曲線的Diffie-Hellman密鑰交換

ECC可以用於加密解密,但是由於其算法複雜計算速度慢,故萊迪思iCE40 UltraPlus系列晶片綜合使用ECDH算法進行密鑰交換,再通過AES進行消息的快速加密/解密助力於IoT通信。故本文以iCE40 UltraPlus晶片的Security IP為例介紹ECDH密鑰交換。下圖為ECDH密鑰交換算法的示意圖,iCE40PlusHost分別產生自己的私鑰和公鑰,然後通過公共網絡把公鑰分享給對方,再各自使用私鑰在本地計算出相同的密鑰進行AES加密通信。

由於有限循環群滿足交換律,我們可以驗證KEYHost=m*n*P=n*m*P=KEYFPGA. 

相比於RSA和經典DL加密,ECC使用更短的密鑰實現更安全的非對稱加密。萊迪思首先在低功耗低成本FPGA中實現了ECC密鑰交換算法助力於IoT通信。本文簡要介紹了ECC的相關知識,希望能對大家在具體實施加密方案的時候提供一定的幫助與指導。

  1. Blog: Andrea Corbellini. Elliptic Curve Cryptography: a gentle introduction. Link: andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/

  2. Book: Wenbo Mao. Modern Cryptography: Theory and Practice.

  3. Blog: Certicom. ECC tutorial. Link: www.certicom.com/content/certicom/en/ecc-tutorial.html

  4. Online Tool: Online tool: ECC calculator. Link: christelbach.com/ECCalculator.aspx

  5. Paper: 陸俊,淺說橢圓曲線。

  6. Paper: Mahesh Agarwal. Elliptic Curves do arise from ellipses.

  7. Online Course: Christof Paar. Understanding Cryptography. Link: www.crpto-textbook.com




相關焦點

  • 一文讀懂橢圓曲線加密學
    前言:本文是關於橢圓曲線加密的非常基礎的介紹。內容雖然基礎,但對於橢圓曲線加密的門外漢來說,簡單易懂,適合於初學者。本文作者Lane Wager,來源於medium,由「藍狐筆記」公眾號社群的「王澤龍」翻譯。這是一篇橢圓曲線密碼學的基本介紹。我假設本文的絕大多數讀者來這裡的目的是:了解為什麼橢圓曲線加密是一種有效的加密工具,以及它為什麼有效。
  • 從零到壹學習密碼學第十七講:橢圓曲線加解密
    橢圓曲線要形成一條光滑的曲線,要求x,y取值均為實數,即實數域上的橢圓曲線。但橢圓曲線加密算法,並非使用實數域,而是使用有限域。按數論定義,有限域GF(p)指給定某個質數p,由0、1、2.p-1共p個元素組成的整數集合中定義的加減乘除運算。
  • 高中數學:橢圓、雙曲線、拋物線重點知識總結
    高中數學:橢圓、雙曲線、拋物線重點知識總結
  • 美國是如何發展後量子密碼學的?
    許多專家並不指望能夠執行破解現代密碼學標準所需的複雜計算的量子計算機能在未來10年內成為現實。但美國國家標準與技術研究所(NIST)希望保持領先,在2022年之前準備好新的密碼學標準。該機構正在監督其後量子密碼學標準化進程的第二階段,以縮小可以取代現代密碼學的量子抗衡算法的最佳候選者。
  • 垂足曲線 三角板畫法畫橢圓、拋物線、......
    點擊上面「邵勇」後面的籃色字「數學教學研究」,訂閱本微信公眾號。每周推送兩到三篇數學趣文,力爭做到深入淺出。垂足曲線 | 反垂足曲線 | 三角板畫法有了下面的垂足曲線的概念,再擁有反垂足曲線的概念,我們就可以畫出很多各種各樣的曲線,比如橢圓、拋物線、雙曲線、心形曲線,甚至蔓葉線。有一條曲線a,作它的切線。在曲線內或外有一點A,過這點作切線的垂線。
  • 在量子計算機到來之前,請準備好抗量子破解的密碼學
    「當前,那些保護廣泛採用的加密系統,如RAS和基於橢圓曲線的密碼方案等的難解計算問題有可能變得可解。這意味著量子計算機有可能最終會夠破壞這個星球上最安全的通信系統,」英特爾公司的密碼學專家 Rafael Misoczki說道,他同時也是參與上述NIST計劃的兩個小組(分別叫Bike和Classic McEliece)的成員之一。
  • 清華學長帶你學習:高中數學橢圓與雙曲線知識點總結,建議收藏
    很多同學後臺給我留言:學姐,橢圓與雙曲線太難了,一道題、兩道題就已經讓我痛不欲生了,腦殼疼,可怎麼辦呀?其實這種現象不是個例,而是在大多數同學學習橢圓與雙曲線部分都存在的問題;如果不會解橢圓與雙曲線相關問題,高考數學就不可能得高分。
  • 【數學.天問】為什麼橢圓的方程和雙曲線的方程長的一模一樣?
    Q: 為什麼橢圓的方程和雙曲線的方程長的一模一樣? A: 這個問題,要從橢圓和雙曲線的定義及曲線方程的推導過程上去研究; 先看定義: 橢圓: 平面內與兩個定點F1,F2的距離的和等於常數
  • 用無窮大的思想分析橢圓,雙曲線,拋物線的來源 - 電子通信和數學
    本篇用無窮大的思想將一個一般方程變成橢圓,雙曲線,拋物線方程。即簡單又容易理解。當坐標原點在圖形中心點時,y的兩個值肯定大小相等,符號相反,所以和為0,所以此時二次曲線通用方程的形狀為:此處 a b d可以為任何值,所以會導致不同的曲線方程第一雙曲線:當d>0,x趨於正無窮大時:
  • 橢圓的周長,你用第一類曲線積分算出來了嗎
    )、parabola(拋物線)、hyperbola(雙曲線)等與圓錐截線有關的名詞,可以說是古希臘幾何學的精擘之作。.的參數方程:那麼,你是否可以利用第一類曲線積分計算橢圓的周長呢?實際上,按照第一類曲線積分的性質,即當被積函數為1時,所對應的曲線積分即為積分曲線周長的性質。我們可以將一個橢圓的周長表示為
  • 費馬大定理:從赫克代數到橢圓曲線,一部輝煌的數學史詩
    現在我們進人故事的最有興趣的部分,其中有很多值得我們體會和學習的東西.在德國黑森林州中部的名叫Oberwalfach的小鎮,多年來,這裡成為世界各地數學家的「旅遊區」,每年舉行幾十個由頂尖高手主持的、研討熱門數學問題的高級研討會,交流數學成果和思想.這裡沒有卡拉OK,私人房間裡沒有電視機,有的是黑板、圖書、計算機房間和供數學家交談的咖啡室.1984年秋,一群優秀的數論學家聚會,討論關於橢圓曲線的各種突破性工作
  • 高中數學說課稿:《橢圓的標準方程》教案
    推導橢圓的標準方程的方法對雙曲線、拋物線方程的推導具有直接的類比作用,為學習雙曲線、拋物線內容提供了基本模式和理論基礎。因此本節課具有承前啟後的作用,是本章的重點內容。3、教學目標根據教學大綱和學生已有的認知基礎,我將本節課的教學目標確定如下:1.知識目標①建立直角坐標系,根據橢圓的定義建立橢圓的標準方程,②能根據已知條件求橢圓的標準方程,③進一步感受曲線方程的概念,了解建立曲線方程的基本方法,體會數形結合的數學思想。
  • 什麼是後量子密碼學?
    量子密碼學對經典公鑰密碼學意味著什麼?量子密碼學可以解決什麼問題。什麼是後量子密碼學?在前一篇文章中,討論了量子計算機的出現對經典公鑰密碼學意味著什麼。我們現有部署的所有公鑰技術都基於大整數分解或求解離散對數問題。
  • 吳軍:《數學之美》中的密碼學原理,古代密碼學和現代密碼學
    在《數學之美》的第17章,吳軍由於很喜歡電視劇《暗算》的構思和演員的表演,給我們科普了密碼學原理。密碼學聽起來很神秘,也比較有趣,那麼密碼學原理究竟是什麼?古代密碼學和現代密碼學又有什麼區別呢?01密碼學原理密碼學是研究編制密碼和破譯密碼的技術科學。研究密碼變化的客觀規律,應用於編制密碼以保守通信秘密的,稱為編碼學;應用於破譯密碼以獲取通信情報的,稱為破譯學,總稱密碼學。密碼是通信雙方按約定的法則進行信息特殊變換的一種重要保密手段。
  • 教學研討|2.2.1 橢圓及其標準方程(第一波)
    》第一課時.在選修2—1第二章,教材利用三種圓錐曲線進一步深化如何利用代數方法研究幾何問題.由於教材以橢圓為重點說明了求方程、利用方程討論幾何性質的一般方法,然後在雙曲線、拋物線的教學中應用和鞏固,因此「橢圓及其標準方程」起到了承上啟下的重要作用.本節內容蘊含了許多重要的數學思想方法,如:數形結合思想、化歸思想等.因此,教學時應重視體現數學的思想方法及價值.
  • 關鍵|《Wisdom Chain文檔知識庫》之Schnorr籤名算法
    s=2001Schnorr籤名算法簡介Schnorr籤名算法最初是由德國密碼學家ClausSchnorr於2008年提出的,在密碼學中,它是一種數字籤名方案,以其簡單高效著稱,其安全性基於某些離散對數問題的難處理性。02Schnorr的原理描述下面用小寫字母表示數字,比如:a=42。
  • 華興集成電路獲1000萬美元A輪融資,已量產第一款高性能橢圓曲線...
    這款110nm高性能橢圓曲線密碼晶片Serica THECC500可用於線上支付、電子合同等線上交易領域。2017年6月,華興集成電路量產了其第一款Serica THECC500晶片,這是一款110nm(110nm指的是晶片中CMOS工藝中電晶體的線寬,線寬越小代表相同單位面積集成的部件越多,性能也越高)的高性能橢圓曲線密碼晶片。可用於線上支付、電子合同等線上交易領域。
  • 高中數學選修(2-1)橢圓
    橢圓是圓錐曲線中最重要的一類曲線,在高考中出現的次數也最多,主要考查橢圓的定義、性質、方程,在解答題中多與直線、向量、軌跡等綜合出題。考試大綱:1、了解橢圓的實際背景。2、掌握橢圓的定義、標準方程、幾何圖形及簡單性質。
  • 雙曲線的定義及其方程推導
    橢圓是到兩點距離之和為定值的點形成的曲線,那麼到兩點距離之差為定值的點形成的曲線又是什麼呢?這個曲線其實是雙曲線的一支,那麼雙曲線的方程是什麼形式呢?雙曲線的方程推導與橢圓的焦點類似,我們也稱形成雙曲線的兩個點為焦點,並且選取焦點為x軸上兩個對稱的點A(-c,0)和B(c,0),假設雙曲線上任意一點為C(x,y),那麼有下列等式那麼用x、y表示上式,可得兩邊平方並化簡到這裡,我們推出來雙曲線的表達式與橢圓是一樣的,但是不同之處在於,雙曲線的a是小於c的(三角形兩邊之差小於第三邊