Set It and Forget It! Turnkey ECC for Instant Integration:設定即可忘!提供即時集成的一站式ECC
- 前述
- 關于paper
- 橢圓曲線加密ECC
- 正文
- ECC背景
- GOST
- ECC單元測驗:ECCKAT
- 生成ECC層:ECCKIILA
- 結果
- 心得
前述
坐標2021.1.14
看論文真是隔領域如隔山,隔壁的區塊鏈看得我雖懵懂但津津有味,今天的ECC看得我一頭霧水還自慚形穢,,,o(╥﹏╥)o
關于paper
首先論文的題目:“turnkey”-一站式方案(英語:Turnkey project,又稱turnkey,turn-key),是一種專案型別,指的是賣方將專案架設好并調整完成,在可立即使用的情況下賣給買家,是科技業中一種常見的技術轉移方式, “賣方什么事情都幫你搞定了,買方最后只需要拿鑰匙驗收就可以了”[百度百科]
該論文實作了ECC堆疊的自動化實作、測驗和集成,旨在提供一個集成的ECC架構,解決密碼學上的ECC一些問題,以自動化的方式實作,跨越密碼學研究成果和部署的軟體之間的鴻溝,
Keyword:applied cryptography; public key cryptography; elliptic curve cryp-tography; software engineering; software testing; formal verification; GOST; NSS; OpenSSL
成果在 https://gitlab.com/nisec/ecckiila,汗,得現下git,彩筆屬性暴露無遺
橢圓曲線加密ECC
ECC橢圓曲線加解密原理詳解(配圖). <—大佬們都好會寫,膜
橢圓曲線方程:y2=x3+ax+b,,,
阿貝爾群運算:相加、倍點,,,
有限域運算(mod p),注:如果橢圓曲線上一點P,存在最小的正整數n使得數乘nP=無窮遠點O∞,則稱n為P的階;否則為無限階,,,
ECC加密程序,,,
正文
ECC背景
短Weierstrass曲線 Ew:y2=x3+ax+b,a∈GF( p),b∈GF( p).
假設E的元素個數等于h·q,其中q是一個素數,lg(q)≈lg(P),h∈{1,4,8},P為E上的定點,當4整除h,有:
Twisted Edwards 曲線 Et:eu2+v2=1+du2v2,二者元素個數相同,且線上的點具有一 一對應的關系,
1、Short Weierstrass曲線上的投影點:混合點加法都以投影點和仿射點作為輸入,O是例外,它沒有仿射表示——例外程序攻擊,
2、Twisted Edwards曲線上的投影點:O不會對加法產生例外,
ECC加密三步:
(1)Key generation:給定一個q階點g,用戶隨機均勻地從{1, . . . ,q?1}選擇一個密鑰α,并計算公鑰P=[α]g,
(2)Key agreement with cofactor clearing (ECC CDH):Alice生成私鑰αa∈{1, . . . ,q?1}和公鑰Pa=[αa]g;Bob生成αb和Pb=[αb]g,接下來,Alice和Bob分別計算sab=[h·αa]Pb和sba=[h·αb]Pa,因此,sab=[h·αa]Pb=[h·αa·αb]g=[h·αb·αa]g=[h·αb]Pa=sba是共享密鑰,h的乘法稱為輔因子清除
(3)Digital signature algorithm (ECDSA):用一個公式簽名(r,s)
GOST
1、數字簽名:與上述相同,RFC 4357[39]中描述了前三條lg(p)=256的曲線,所有這些曲線都只有平凡的余因子h=1,即它們是回圈群,所有曲線點都可以是合法的公鑰,采用新的數字簽名標準后,標準化了兩條lg(p)=512和h=1的曲線,以及兩條h=4的Twisted Edwards曲線:一條lg(p)=256,另一條lg(p)=512,所有這些都在RFC 7836[44]中描述,一個重要的方面是Twisted Edwards曲線仍然指定為短曲線由于兼容性,
2、密鑰生成:無規定,亂數,
3、密鑰協議:VKO,使用了UKM:雙方已知的可選非秘密引數,VKO直接在ECC級別對UKM進行編碼,
4、公鑰加密:根據GOST R 34.10,經常使用不正確的短語加密,但實際上從未使用過非對稱密鑰加密,相反,VKO計算一個共享密鑰,然后對稱加密演算法使用該密鑰進行資料加密,因此,它是混合加密,
GOST OpenSSL Engine:gost engine是作為GOST加密演算法的參考實作而創建的,有各種加密部分的實作
支持密鑰生成、密鑰協議(用OpenSSL術語派生)、數字簽名和驗證以及混合加密/解密,它支持相關RFCs的所有曲線,從測驗曲線到h=1短曲線,再到h=4短曲線,具有Twisted Edwards等值,在標準化級別上,總共有八條具有多個物件識別符號(OID)別名的不同曲線,
ECC單元測驗:ECCKAT
用于ECC實作的庫無關單元和回歸測驗框架
使用資料驅動測驗(DDT)方法,嚴重依賴于已知答案測驗(KATs)
流程:
- 從各種來源(如標準、RFC和驗證作業)收集現有的KATs;-ECC-CDH、ECDSA、確定性ECDSA的各種曲線測驗
- 用負測驗和潛在的拐角情況來增強這些KAT,并使用獨立的 測驗中實作(IUT)擴展到任意曲線;-擴展到素數域和二進制域上的一般曲線,一個最顯著的缺陷是缺乏對ECC-CDH的負測驗
—具體:— 即曲線h≠1,ECCKAT生成ECC CDH的負測驗,如下所示,首先,用SageMath方法找到一個完全橢圓曲線群的生成元,即如果群是回圈的,則找到一個 hq階點,或者在(實際上,很少見的)非回圈情況下找到一個最大階的生成元,然后,q標量乘產生一個最大的小子群的惡意生成器,這正是應該導致ECC-CDH協議失敗的對等點,因為清除輔因子(即標量和h之間的整數乘法)將導致產生的標量乘法產生O:對等點具有h階(回圈情況)或h的某些除數(非回圈情況), - 以標準化格式輸出這些測驗,易于下游使用,以便集成到特定于庫的測驗工具中,ECCKAT目前支持的三個后端:測驗萬物協議(TAP)-下游專案必須決議TAP測驗本身;OpenSSL的測驗框架-確定性ECDSA KATs能夠順利地集成,但經典的ECDSA不能;gost-engine的測驗框架-本文提出,目前不支持GOST數字簽名
應用在了幾個發現缺陷的地方:ECC標量乘法失敗、ECC CDH漏洞、VKO漏洞
生成ECC層:ECCKIILA
它允許動態創建有關ECC層的C代碼

1、域上的計算:從fiat-crypto專案獲得了GF( p)演算法的大部分
2、關于兩條曲線:gost-engine中的大多數傳統曲線都作業在素數基數q≈p的曲線Ew上,但其中兩條曲線集中在基數4q為素數q≈p的曲線上,對于這兩條特殊曲線,gost-engine曲線在規范級別以Short Weierstrass形式表示(即“在線”或序列化時),但在內部我們使用Twisted Edwards曲線Et 表示,此外,我們通過將(4)和(3)寫成投影形式來實作連接Ew-Et的映射,以延遲GF §中代價高昂的逆,
3、點加,,,
4、點乘,,,
5、裝配:ECCKiila目前支持三個后端:OpenSSL、NSS和gost engine,對于OpenSSL,ECCKiila生成一個EC_GROUP結構,它是曲線的OpenSSL內部表示,帶有用于各種操作的函式指標,我們為三個相關的函式指標設計了簡單的包裝器,它們是淺層的,最終(在檢查引數是否正確并將輸入轉換為預期格式之后)呼叫圖1中相應的標量乘法實作,NSS類似于ECGroup結構,gost-engine裝配(大部分)將它與OpenSSL的EC模塊分離,因為它只需要支持帶有顯式引數的GOST曲線,
結果
應用程式級視圖,完全集成,測量了未修改的OpenSSL3.0alpha、gost-engine和NSS3.53(稱為基線)以及隨后使用ECCKiila輸出(集成)修改的相同版本的時間,對于它們中的每一個,我們測量了第2節中描述的操作的計時,例如密鑰生成、密鑰協商(派生)、簽名和驗證,,,
gitlab上,有機會下載看看,,,
心得
稀里糊涂的,仿佛看懂了,又仿佛啥都沒看懂,囧,明日再戰
特此宣告,該博文所寫均為本人自己理解,如有爭議以論文原作者為準,(鞠躬
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/249805.html
標籤:區塊鏈
上一篇:量化交易炒幣機器人系統開發方案
