在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深入解析ECC256橢圓曲線加密算法

大大通 ? 2024-12-26 16:32 ? 次閱讀

一、加密算法概述

數據加密的基本過程就是對原來為明文的文件或數據按某種算法進行處理,使其成為不可讀的一段代碼為 “密文”,使其只能在輸入相應的密鑰之后才能顯示出原容,通過這樣的途徑來達到保護數據不被非法人竊取、閱讀的目的。該過程的逆過程為解密,即將該編碼信息轉化為其原來數據的過程。

1、常見加密算法

常見加密算法可分為三類,對稱加密算法、非對稱加密算法、Hash 加密算法

1.1 對稱加密算法

特點是文件加密與解密使用相同的密鑰,密鑰較短。

優點:算法公開、加密速度快、計算量小、加密效率高。

缺點:加密方與解密方需要提前敲定好密鑰,并雙方保存好密鑰。

常見對稱加密算法:AES、SM4

1.2 非對稱加密算法

可以在不傳遞密鑰的情況下完成解密

優點:相比對稱加密算法其安全性更好

缺點:加解密時間花費更長,適合少量數據加密

常見非對稱加密算法:ECC、RSA、SM2

1.3 Hash 算法

算法特點是單向算法,不能通過 Hash 值還原目標信息

優點:不可逆、易計算、特征化

缺點:存在散列沖突(存在兩個不同的原始值經過哈希運算后得到同樣的結果)

常見非對稱加密算法:SM3、SHA256、SHA384、SHA512、SHA224、SHA512_224、SHA512_25

二、ECC256 算法

ECC(Elliptic Curve Cryptography,橢圓曲線加密)算法公私鑰的長度是 ECC 安全性的關鍵參數之一,ECC 算法后跟著的是橢圓曲線的域長度如 256 位,ECC256 是目前最常用的私鑰長度之一,它提供了一個良好的安全性和性能的平衡。

1、ECC 算法原理介紹

1.1 概述

ECC(Elliptic Curve Cryptography)加密算法是一種基于橢圓曲線數學理論的公鑰加密算法。

ECC 公鑰:是基于私鑰和橢圓曲線上的基點計算得出的,公鑰在加密過程中用于接收者加密消息,在數字簽名中用于驗證簽名。

ECC 私鑰:是一個隨機數,它在橢圓曲線加密算法中用于生成公鑰以及在解密和簽名過程中使用。

ECC 的安全性在很大程度上取決于曲線的選擇,目前美國國家標準與技術研究院(NIST)維護了一系列安全的橢圓曲線參數,即著名的 NIST 曲線。

wKgZPGdyD6uAWO3yAACkhjvKRm4928.png

ECC 公鑰長度的選擇應根據安全要求和可用資源來確定,一般來說 256 位和 384 位的 ECC 公鑰長度足以滿足大多數應用的要求。

1.2 算法概念

橢圓曲線離散對數問題,橢圓曲線上的兩個點 P 和 Q,P 稱為基點(base point)、k 為私鑰(private key)、Q 為公鑰(public key)

Q = k * P

給定 k 和 P,根據加法法則,計算 Q 很容易;

但給定 P 和 Q ,求 k 非常困難(實際應用 ECC,質數 P 取的非常?,窮舉出 k 非常困難)。

1.3 算法過程

選?條橢圓曲線 Ep(a,b), 并取橢圓曲線上?點作為基點 P。

選定?個大數 k 作為私鑰,并?成公鑰 Q= k * P。

加密:選擇隨機數 r,將消息 M 生成密文 C,密文是?個點對,即 C = (rP, M+rQ)。

解密:M+rQ-k(rP) = M+r(kP)-k(rp) = M


1.4 算法過程解析

點運算的加法

過點 A B 交于曲線的一個交點,取這個交點 X 軸對稱的點為 A+B

wKgZPGdyD6uAcwqxAAA6AcfHWIY810.png

點運算的乘法

當 A 和 B 無限接近,A = B 時這條線為曲線上的切線,切線交于曲線的一個交點,取這個交點 X 軸對稱的點為 A+A 即為 2A

wKgZO2dyD6uAT0iOAAAs65iBrvg142.pngwKgZO2dyD6uAM5ZmAAFUec0Cgew356.png

其中,6P 是由 3P 切線交線的來,也可由 2P 切線交線后 4P,再與 2P 交線的來

可得如下式子:

2(3P) = 3(2P)

密鑰生成

私鑰:選擇一個大的隨機整數 k 作為私鑰。這個私鑰應該保密,不應被泄露。

公鑰:選擇一個橢圓曲線上的基點 P(這個點是公開的,并且對于所有使用該曲線的用戶都是相同的)。然后計算公鑰 Q=kP,即私鑰 k 與基點 P 的標量乘法結果,公鑰 Q 可以公開。


加密過程

隨機數:選擇一個隨機數 r,這個隨機數在每次加密時都應該不同,以增加加密的安全性。

密文生成:將消息 M 編碼為一個與橢圓曲線上的點可以相加的數值(這通常涉及到一些數學轉換,比如將消息哈希為一個整數),然后計算密文 C,它是一個點對,即 C=(rP, M+rQ)。

rP 是隨機數 r 與基點 P 的標量乘法結果。 M+rQ 是消息 M 與 rQ(即 r 與公鑰 Q 的標量乘法結果)的加法,這里的加法是在橢圓曲線上的加法,不是普通的整數加法。


解密過程

解密過程:持有私鑰 k 的用戶可以解密密文 C。

從密文 C 中提取出 rP 和 M+rQ。

使用私鑰 k 計算 k(rP)。

然后計算 M:(M+rQ)?k(rP)

由于 Q=kP,所以 rQ=r(kP)。因此:M = (M+rQ)?rQ=(M+rQ)?k(rP)=M+r(kP)?k(rP)

這樣就成功地從密文中恢復出了原始消息 M。

安全性

ECC 的安全性基于橢圓曲線離散對數問題的難度,給定 P 和 Q=kP,很難計算出私鑰 k。

加密過程中使用的隨機數 r 增加了每次加密的多樣性,使得即使相同的消息被多次加密,產生的密文也會不同。

2、ECC 算法公私鑰數組長度

ECC 算法中,公鑰和私鑰的長度是固定的,并且與橢圓曲線的域長度(即 ECC256,256位)直接相關,以下是ECC256 算法中公鑰和私鑰的字節長度:

三、簽名驗簽過程

因為 ECC 通常用于加密密鑰交換或數字簽名,而不是直接用于數據加密,所以簽名驗簽過程分三部分:公鑰生成、明文簽名、簽名驗簽。

1、公鑰生成

1.1 密鑰生成工具

OpenSSL 是一個強大的開源安全套接字層密碼庫,它提供了豐富的密碼算法、密鑰和證書封裝管理功能,實現了目前大部分主流的密碼算法和標準,如對稱算法、非對稱算法、散列算法、數字簽名和認證、X509 數字證書標準、PKCS12、PKCS7 等。

特點:OpenSSL 是一個開源的軟件庫,用戶可以自由地使用、修改和分發它

1.2 工具使用

在 Git 中集成了 OpenSSL 庫,OpenSSL 主要作為一個加密庫來使用,為 Git 的通信和數據存儲提供安全支持,以下公鑰生成章節中生成公鑰等操作均在 Git 中調用 OpenSSL 庫使用。

2、生成 ECC256 密鑰

1.1 ECC256 公私私鑰

① Eg. ECC256 算法生成公私鑰 OpenSSL 命令

生成 ECC256 私鑰

openssl ecparam -genkey -name prime256v1 -param_enc explicit -out secp256r1-key.pem

提取公鑰

openssl ec -in secp256r1-key.pem -pubout -out ecpubkey.pem

打印私鑰

openssl ec -in secp256r1-key.pem -text > pri.hex

打印公鑰

openssl ec -pubin -in ecpubkey.pem -text > pub.hex

② 打開 pri.hex,查看文本,提取其中公鑰與私鑰數據

③ 提取出來的公鑰與私鑰數據數組如下:

// 軟件工程中使用的公私鑰

uint8 ecc_secp256r1_prikey[] = "ca085e45ec036d7a9bcd67d7990a89dd50816b9351141aafbbb75bb3c862cc51"

uint8 ecc_secp256r1_pubkey[] = "f227f1bd2dd624e211580207e248fcc077bc5a5a5877128d85e25a3aedb24b98b0efd869cd9953ca5aed03b9b4528164d2cbf203b35f391d3cd573aebd78646e"

3、ECC256 簽名

簽名方需要待簽名數據 test_data_raw.bin,需要 ECC256 密鑰 secp256r1-key.pem

① 生成簽名數據的哈希,首先對待加密數據文件的內容生成一個哈希值,使用 SHA-256 算法來完成。

# 生成文件的 SHA-256 哈希值

openssl dgst -sha256 -binary -out hash.bin test_data_raw.bin

② 使用 ECC 私鑰簽名上一步驟生成的哈希值。

# 使用 ECC 私鑰對哈希值進行簽名

openssl dgst -sha256 -sign secp256r1-key.pem -out signature.bin hash.bin

將簽名轉換為十六進制表示(用于查看)

openssl base64 -in signature.bin -out signature.hex

③ 對 test_data_raw 的哈希值進行簽名,簽名數據轉為 hex 查看

4、ECC256 簽名驗簽

驗簽方需要待簽名數據 test_data_raw.bin、由 ECC256 密鑰 secp256r1-key.pem 中提取的 ecpubkey.pe公鑰。


① 重新生成簽名數據的哈希,接收方在收到數據和簽名后,首先需要對數據重新生成哈希值,使用 SHA-256 算法來完成。


# 接收方重新生成文件的 SHA-256 哈希值
openssl dgst -sha256 -binary -out received_hash.bin test_data_raw.bin


② 使用公鑰驗簽:然后,接收方使用 ECC256 公鑰對簽名進行驗證,以確保數據在傳輸過程中沒有被篡改。


# 使用公鑰驗證簽名
openssl dgst -sha256 -verify ecpubkey.pem -signature signature.bin data_hash.bin


③ 如果簽名驗證成功,OpenSSL 不會輸出任何內容(或者可能會輸出一個 "Verified OK" 的消息,這取決于你的 OpenSSL 版本和配置);

如果驗證失敗,OpenSSL 會輸出一個錯誤消息,指出簽名無效;

printf >>
$ openssl dgst -sha256 -verify ecpukey.pem -signature signature.bin hash.bin
Verified OK

四、參考文檔

《【ECC加密算法】| ECC加密原理詳解| 橢圓曲線加密| 密碼學| 信息安全》

https://www.bilibili.com/video/BV1v44y1b7Fd/?spm_id_from=333.337.search-card.all.click&vd_source=9fe0b02e4f116cc091f5fa76d03c35c6

《Openssl》

https://www.openssl.org/

《橢圓加密算法》

https://baike.baidu.com/item/%E6%A4%AD%E5%9C%86%E5%8A%A0%E5%AF%86%E7%AE%97%E6%B3%95/10305582?fr=ge_ala

登錄大大通網站,閱讀原文,提問/評論,獲取技術文檔等更多資訊!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 密鑰
    +關注

    關注

    1

    文章

    139

    瀏覽量

    19769
  • 加密算法
    +關注

    關注

    0

    文章

    216

    瀏覽量

    25550
  • 數據加密
    +關注

    關注

    0

    文章

    53

    瀏覽量

    12718
收藏 人收藏

    評論

    相關推薦

    快充充電器基于非對稱橢圓曲線加密算法的單芯片認證方案

    基于非對稱橢圓曲線加密算法的單芯片認證方案
    發表于 08-15 10:41 ?1975次閱讀
    快充充電器基于非對稱<b class='flag-5'>橢圓</b><b class='flag-5'>曲線</b><b class='flag-5'>加密算法</b>的單芯片認證方案

    關于幾種常用加密算法比較

    AES加密算法是密碼學中的高級加密標準,該加密算法采用對稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,算法
    的頭像 發表于 03-19 09:21 ?5896次閱讀
    關于幾種常用<b class='flag-5'>加密算法</b>比較

    基于橢圓曲線算法的數字簽名技術研究

    【作者】:朱利民;王明斐;【來源】:《甘肅科技》2010年04期【摘要】:橢圓曲線密碼體制是一種高安全性、高效率的公鑰密碼體制,它已逐漸取代RSA加密算法,成為下一代公鑰加密的標準。本
    發表于 04-23 11:29

    三種加密器件的熟悉

    :SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最終輪(Final Round),最終輪沒有MixColumns。橢圓加密算法ECC)是一種公鑰加密
    發表于 08-24 11:37

    DES加密算法是什么

    一、加密算法1、 DES加密算法DES數據加密標準,是一種使用密鑰加密的塊算法。DES中的密鑰key為8個字節64位,但每第8個為校驗位不參
    發表于 07-22 09:13

    對稱加密算法是什么

    對稱加密算法也叫私鑰加密算法,其特征是收信方和發信方使用相同的密鑰,即加密密鑰和解密密鑰是相同或等價的。非對稱加密算法也叫公鑰加密算法。其特
    發表于 07-22 07:09

    基于STM32的C語言SHA256加密算法相關資料下載

    標題基于STM32的C語言SHA256加密算法本文博客鏈接:作者:zsj ,轉載請注明.項目中用到了一個新的加密算法(SHA256),我之前只用過AES的
    發表于 02-14 06:48

    基于AES和ECC的混合加密系統的設計

    基于AES的加密算法具有速度快、強度高、便于實現等優點和ECC加密算法具有密鑰分配與管理簡單、安全強度高等優點,采用AES加密算法加密大數據
    發表于 03-20 10:24 ?42次下載
    基于AES和<b class='flag-5'>ECC</b>的混合<b class='flag-5'>加密</b>系統的設計

    基于ECC加密的電子商務系統

    為解決網上交易的安全問題,研究了在嵌入式電子商務系統中SSL協議雙向認證的方法。針對RSA公鑰算法伴隨密鑰長度增加明顯降低系統效率,使用橢圓曲線公鑰算法
    發表于 12-21 10:19 ?10次下載

    基于AES加密算法的信息安全研究(AEC與ECC結合)

    使用AES 對稱加密算法加密明文數據ECC 非對稱加密算法加密密鑰并生成數字簽名,從而既保障了數據在網絡傳輸過程中的安全性,又完成了數字簽名
    發表于 10-31 11:32 ?13次下載
    基于AES<b class='flag-5'>加密算法</b>的信息安全研究(AEC與<b class='flag-5'>ECC</b>結合)

    常見公鑰加密算法有哪些

    Cryptography(ECC,橢圓曲線加密算法)。使用最廣泛的是RSA算法(由發明者Rivest、Shmir和Adleman姓氏首字母
    發表于 12-10 09:41 ?4.4w次閱讀

    基于區塊鏈橢圓曲線密碼學ECC的研究

    明白了橢圓曲線的由來,我們再來看橢圓曲線在密碼學上應用的方案。首先面對的問題就是橢圓曲線是連續的
    發表于 03-25 11:17 ?1825次閱讀
    基于區塊鏈<b class='flag-5'>橢圓</b><b class='flag-5'>曲線</b>密碼學<b class='flag-5'>ECC</b>的研究

    橢圓曲線密碼學詳細解析

    橢圓曲線密碼學(ECC),是一種基于橢圓曲線數學誕生的非對稱秘鑰加密
    發表于 01-06 09:59 ?7386次閱讀
    <b class='flag-5'>橢圓</b><b class='flag-5'>曲線</b>密碼學詳細<b class='flag-5'>解析</b>

    解析加密算法:可逆加密和不可逆加密

    加密算法我們整體可以分為:可逆加密和不可逆加密,可逆加密又可以分為:對稱加密和非對稱加密。
    發表于 08-08 10:11 ?1.8w次閱讀

    基于STM32的C語言SHA256加密算法

    標題基于STM32的C語言SHA256加密算法本文博客鏈接: 作者:zsj ,轉載請注明. 項目中用到了一個新的加密算法(SHA256),我之前只用過AES的
    發表于 12-09 14:36 ?35次下載
    基于STM32的C語言SHA<b class='flag-5'>256</b><b class='flag-5'>加密算法</b>
    主站蜘蛛池模板: 一级不卡毛片| 国产午夜精品理论片免费观看| 激情五月婷婷基地| 六月婷婷综合网| 久久99精品一级毛片| 视频在线免费观看网址| 天天摸天天看天天做天天爽| 五月天婷婷精品视频| 特黄特黄| 国产精品波多野结衣| 欧美极品在线播放| 无码一区二区三区视频| 最新色视频| 婷婷免费高清视频在线观看| 色婷婷六月天| 久久精品视频9| 女色专区| 国内一级特黄女人精品片| 7777sq国产精品| 欧美综合天天夜夜久久| 波多野结衣久久国产精品| 亚洲综合免费| 亚洲天堂免费| 欧美综合久久| 国产www色| 看草逼| 69xxx日本| 亚洲欧美日韩国产一区二区三区精品 | 日本特黄特色| 四虎网址在线观看| 欧美成人aaa大片| 日本黄色视屏| 欧美色欧美色| 欧美视频一区在线观看| 国产精品麻豆va在线播放| 国产二区三区| 日本丰满毛茸茸熟妇| 久久婷五月| 一区二区三区视频观看| 天天操电影| 户外露出 自拍系列|