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

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

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

3天內不再提示

算法科普:非對稱算法

嵌入式物聯網開發 ? 來源:嵌入式物聯網開發 ? 作者:嵌入式物聯網開發 ? 2022-09-05 21:07 ? 次閱讀

通過本文的閱讀,你可以了解到以下知識:

什么是非對稱加密算法

對稱加密算法和非對稱加密算法最本質的區別是什么?

常見的非對稱算法哪些以及它們的特性和區別是什么?

非對稱加密算法的應用場景有哪些?


非對稱加密算法


世界萬物都是平衡的,正如計算機的世界一樣,有0的地方就一定有1;同樣的,在算法理論上,既然有【對稱加密算法】,那肯定就會有【非對稱加密算法】。

非對稱算法,顧名思義:算法的執行過程是不對稱的,也就是說加解密雙方的密鑰是不對稱的。在非對稱算法的理論上,密鑰有公鑰和私鑰之分:其中私鑰是代表自己唯一身份的一組密鑰標識,不同的非對稱加密算法,采用不同的數學理論來標識這個“唯一性”,比如RSA算法,使用的是“很大的素數”這種方法來標識;通常來說,私鑰是不對外公開的,就好比藏在自己心里的秘密一樣,不能被外人知曉,否則,數據的加密就變得不可靠,存在密鑰泄露的風險。與私鑰對應的密鑰叫公鑰,公鑰與私鑰正好相反,它是允許對外公開的,也就是任何人都可以持有加密方的公鑰信息。看到這里,很多童鞋開始疑問:既然密鑰(公鑰)都公開了,那加密還有什么用,談何安全性可言?有這樣疑問的童鞋,大概思路還停留在【對稱加密算法】的基礎上,等我詳細講解完【非對稱加密算法】的加密和解密,你就一定明白到底是怎么一回事了。

非對稱算法的加密和解密的特點是:一段數據明文經私鑰加密后,則需要使用該私鑰對應的公鑰做解密;反之,一段數據明文經公鑰加密后,則需要使用該公鑰對應的私鑰做解密;即【公鑰加密對應私鑰解密,私鑰加密對應公鑰解密】。使用公式表達如下:其他E表示加密,D表示解密,PriKey表示私鑰,PubKey表示公鑰,A、B分別表示通訊雙方,P表示數據明文,C表示數據密文。

通訊方A 通訊方B

E(P) by PriKey[A] = C 對應 D(C) by PubKey[A] = P

E(P) by PubKey[B] = C 對應 D(C) by PriKey[B] = P

通過如上公式,我們可以很清晰的看到,通訊AB雙方需要使用非對稱算法加密通訊報文,必須想方設法獲取到對方的公鑰,這樣整個加密的通道才能完全打通。而前面我們也說到了,自己的公鑰一般都是公開的,允許任何人持有,只要保證自己的私鑰是保密的即可,這就是SSL通訊的理論基礎。在SSL通訊之前,通常會有通訊握手動作,這個握手動作就是為了取得對方可信任的公鑰,至于如何保證自己取得的公鑰就是對方的真實公鑰,而不是非法監聽報文的“中間人”的假公鑰,這就是SSL雙向認證要解決的核心問題。該部分的內容,后續會有更為詳細的文章做更近一步的介紹。


對稱加密算法與非對稱加密算法的本質區別


通過上面對非對稱算法的介紹,大家可以了解到非對稱算法核心的部分就是:密鑰分為公鑰和私鑰,私鑰保密公鑰公開,私鑰加密的密文需要使用公鑰解密,公鑰加密的密文需要私鑰解密。具體的非對稱算法和對稱算法的區別如下表所列:

算法 密鑰類型 加密解密的特點
對稱加密算法 通訊雙方有且只有一個共同的密鑰K 加密方使用密鑰K加密,解密方使用密鑰K解密
非對稱加密算法 密鑰有分私鑰和公鑰; 通訊雙方分別持有自己的私鑰和對方的公鑰; 加密方使用自己的私鑰加密數據,解密方使用對方的公鑰解密數據; 加密方使用對方的公鑰加密數據,解密方使用自己的私鑰解密數據;

非對稱加密算法的分類和對比


常見的非對稱加密算法有RSA算法、SM2算法;前者是國際通用的算法,后者是國密算法的一種。

RSA算法

RSA加密算法是一種非對稱加密算法。在公開密鑰加密和電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。【摘自: 百度百科 RSA算法 】

RSA加密算法的密鑰長度不像我們所認知的對稱加密算法 ,它的密鑰長度是可變的,一般用位來表示,常見的有1024位和2048位,甚至4096位。密鑰的位數越長,理論上來說,解密的難度越大,加密的強度就越大。綜合加密級別和使用的便利性,【RSA2048】是我們最常見的。當RSA的密鑰位數確定了,那它的【模長】也就確定了,模長的值為密鑰位數對應的字節數;計算公式如下,其實M為模長,B為密鑰的長度:

M = (B + 7) / 8 當M等于1024位時,對應的模長為128字節;當M等于2048位時,對應的模長為256字節。

了解【模長】的概念之后,我們需要知道RSA算法執行加密解密操作時,基本的數據塊長度。在RSA算法中,執行加密和解密操作,輸入的數據塊長度都必須等于模長,否則算法內部無法處理;即RSA密鑰的長度不同,對應輸入數據塊的長度也是不同的,這一點與DES、AES等對稱加密算法是完全不一樣的。

假設我們有4個RSA接口

RSA_prikey_encrypt(uint8_t *out, int *out_len, const uint8_t *in, int in_len, const RSA_KEY *pri_key);

RSA_prikey_decrypt(uint8_t *out, int *out_len, const uint8_t *in, int in_len, const RSA_KEY *pri_key);

RSA_pubkey_encrypt(uint8_t *out, int *out_len, const uint8_t *in, int in_len, const RSA_KEY *pub_key);

RSA_pubkey_decrypt(uint8_t *out, int *out_len, const uint8_t *in, int in_len, const RSA_KEY *pub_key);

有趣的是,當我們有一段固定的數據in,分別輸入RSA_pubkey_encrypt和RSA_pubkey_decrypt接口,得出的out居然是一樣的!同樣的在類似的私鑰接口,也有類似的現象。經過這個實驗,我么可以得出結論:根本沒有所謂的公鑰加密和公鑰解密之分,公鑰加密就是公鑰解密,私鑰加密也就是私鑰解密;所以我們應該對公鑰私鑰、加密解密做個統一叫法,應該就是私鑰運算和公鑰運算。所以以上的接口應改為:

RSA_prikey_operation(uint8_t *out, int *out_len, const uint8_t *in, int in_len, const RSA_KEY *pri_key);

RSA_pubkey_operation(uint8_t *out, int *out_len, const uint8_t *in, int in_len, const RSA_KEY *pub_key);

SM2算法

SM2算法是國產的非對稱算法,它的誕生就是為了取代RSA算法。SM2性能更優更安全:密碼復雜度高、處理速度快、機器性能消耗更小。SM2算法和RSA算法比較如下:

SM2 RSA
算法結構 基本橢圓曲線(ECC) 基于特殊的可逆模冪運算
計算復雜度 完全指數級 亞指數級
存儲空間 192-256bit 2048-4096bit
秘鑰生成速度 較RSA算法快百倍以上
解密加密速度 較快 一般

SM2算法與RSA算法類型,它也有公鑰和私鑰之分,它的密鑰特點是私鑰固定長度32字節,而公鑰有x和y兩個分量,每個分量都是32字節,總共是64字節。

在執行加密運算時,輸入數據塊的長度是變長的,而加密后的密文長度等于輸入長度+96字節。

在執行簽名運算時,輸入數據塊的長度也是變長的,但簽名后的數據長度則固定為64字節。

限于篇幅原因,后續再寫專門的文章來介紹SM2算法。


非對稱加密算法的應用場景


值得注意的是,數據加解密的過程中,雖然公鑰和私鑰都可以用于加密,也都可以用于解密,并沒有嚴格的限制;但是,在實際的應用中,通常有:

私鑰加密,公鑰解密:通常應用有簽名、驗簽,即產生簽名的一方使用自己的私鑰對數據進行簽名操作,而驗簽簽名數據是否合法的一方使用簽名方的公鑰對簽名數據進行驗簽;所以這里可以簡單地認為,簽名就是私鑰加密,驗簽就是公鑰解密。

公鑰解密,私鑰解密:通常應用在對數據的加密傳輸,即加密方使用解密方的公鑰做加密動作,這樣就意味著這段加密數據只有解密方一人能解開,因為解密方的私鑰是不公開的,只有它自己知道,這樣就可以很好地保證的加密數據的安全性。


此次關于非對稱加密算法的介紹,就到此結束,如果需要學習更多有關非對稱加密算法的知識,可以自行深入學習RSA算法和SM2算法的更多算法細節,相信你一定有更多的收獲。后續會有詳細介紹非對稱算法在實際應用場景的文章,敬請關注,謝謝。

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

    關注

    5087

    文章

    19158

    瀏覽量

    306448
  • 算法
    +關注

    關注

    23

    文章

    4624

    瀏覽量

    93112
  • 加密算法
    +關注

    關注

    0

    文章

    216

    瀏覽量

    25560
  • 非對稱算法
    +關注

    關注

    0

    文章

    1

    瀏覽量

    940
收藏 人收藏

    評論

    相關推薦

    Littelfuse推出新型TPSMB非對稱TVS二極管

    Littelfuse公司,一家專注于工業技術制造的公司,致力于為可持續發展、互聯互通和更安全的世界提供動力。近日,該公司宣布推出其首款TPSMB非對稱瞬態電壓抑制(TVS)二極管系列,專為汽車應用中
    的頭像 發表于 01-02 14:24 ?114次閱讀

    Littelfuse推出TPSMB非對稱TVS二極管系列

    Littelfuse宣布推出TPSMB非對稱TVS二極管系列,這是首款上市的非對稱瞬態電壓抑制(TVS)二極管,專門用于保護汽車應用中的碳化硅(SiC)MOSFET柵極驅動器。 這一創新產品滿足
    的頭像 發表于 12-30 14:39 ?172次閱讀

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

    保護數據不被非法人竊取、閱讀的目的。該過程的逆過程為解密,即將該編碼信息轉化為其原來數據的過程。1、常見加密算法常見加密算法可分為三類,對稱加密算法
    的頭像 發表于 12-26 16:32 ?124次閱讀
    深入解析ECC256橢圓曲線加密<b class='flag-5'>算法</b>

    加密算法在網絡安全中扮演什么角色?

    : 通過哈希函數和消息認證碼(MAC),加密算法可以檢測數據在傳輸過程中是否被篡改,確保數據的完整性。 提供身份驗證 : 非對稱加密算法和數字簽名技術可以驗證通信雙方的身份,防止身份冒充攻擊。 實現數據簽名 : 數字簽名使用
    的頭像 發表于 12-17 16:00 ?109次閱讀

    常見的加密算法有哪些?它們各自的優勢是什么?

    常見的加密算法及其優勢如下: AES(Advanced Encryption Standard): AES是一種對稱加密算法,采用分組密碼體制,支持128位、192位和256位密鑰長度。AES的優勢
    的頭像 發表于 12-17 15:57 ?166次閱讀

    “雙系統”出爐!瑞芯微RK3562J非對稱AMP:Linux+RTOS/裸機

    本帖最后由 Tronlong創龍科技 于 2024-11-25 08:44 編輯 “非對稱AMP”雙系統 AMP(Asymmetric Multi-Processing),即非對稱多處理架構
    發表于 11-21 16:44

    對稱多處理器和非對稱多處理器的區別

    多處理器(Symmetric Multi-Processing,簡稱SMP)和非對稱多處理器(Asymmetric Multi-Processing,簡稱AMP)。這兩種架構在設計理念、資源管理、任務分配和性能優化等方面存在顯著差異。 對稱多處理器(SMP) 定義
    的頭像 發表于 10-10 15:58 ?1197次閱讀

    請問高頻放大器用非對稱電源供電會有什么影響?

    高頻放大器用非對稱電源供電會有什么影響?
    發表于 08-29 06:22

    OPA828運放非對稱電源供電有什么好處嗎?

    看到一些精密儀器的電路運放好像特意設計成非對稱電源供電,比如+14v、-17v這種,請問運放非對稱電源供電有什么好處嗎?信號擺幅不超過正負7v
    發表于 08-01 06:48

    TL084能否采用-5V和+ 32V的非對稱雙電源供電呢?

    看手冊雙電源最高支持到+-20V,單電源是4.5V到40V。請問一下能否采用-5V和+ 32V的非對稱雙電源供電呢?
    發表于 07-29 06:50

    bp神經網絡算法的基本流程包括哪些

    。 初始化網絡參數 在BP神經網絡算法中,首先需要初始化網絡的參數,包括權重和偏置。權重是連接神經元之間的系數,偏置是神經元的閾值。權重和偏置的初始值通常設置為小的隨機數,以避免對稱性問題。 1.1 隨機初始化權重 權重的初始化
    的頭像 發表于 07-04 09:47 ?705次閱讀

    單相降壓轉換器雙非對稱BG評估板數據手冊

    電子發燒友網站提供《單相降壓轉換器雙非對稱BG評估板數據手冊.rar》資料免費下載
    發表于 04-14 17:10 ?0次下載
    單相降壓轉換器雙<b class='flag-5'>非對稱</b>BG評估板數據手冊

    單相降壓轉換器雙非對稱AG評估板數據手冊

    電子發燒友網站提供《單相降壓轉換器雙非對稱AG評估板數據手冊.rar》資料免費下載
    發表于 04-14 17:02 ?0次下載
    單相降壓轉換器雙<b class='flag-5'>非對稱</b>AG評估板數據手冊

    G473使用TIM1非對稱模式做移相,用TIM8Combined PWM模式做對角的移相與門輸出,為什么時序不對?

    G473使用TIM1非對稱模式做移相,用TIM8Combined PWM模式做對角的移相與門輸出,為啥占空比對了時序不對?
    發表于 03-14 07:49

    為什么三相短路是對稱故障?單相短路是非對稱故障呢?

    為什么三相短路是對稱故障?單相短路是非對稱故障呢? 三相短路是對稱故障,而單相短路是非對稱故障,其根本原因在于電網中的相量關系和電壓分布。 首先,
    的頭像 發表于 02-18 11:41 ?4261次閱讀
    主站蜘蛛池模板: 91麻豆麻豆| 美女扒开尿口给男人爽的视频 | 国产一区在线mmai| 日韩1024| 一级做a爰片久久毛片图片| 亚洲综合精品一区二区三区中文| 高清成年美女xx免费网站黄| 激情综合激情五月| 五月激情丁香| 中文一区二区在线观看| 国产偷啪视频一区| 1024你懂的在线观看| 91人成网站色www免费| 日本欧美一区二区三区不卡视频 | 日日夜夜爽| 成人剧场| 国产精品超清大白屁股| 亚洲性夜| 欧美一区二区不卡视频| 少妇被按摩| 伊人888| 天天怕夜夜怕狠狠怕| 禁漫羞羞入口| 亚洲综合成人网在线观看| 午夜私人影院| 月夜免费观看完整视频| 亚洲一区小说区中文字幕| 国产99在线播放免费| 五月婷婷丁香| 你懂的在线免费| 日韩a毛片| 黄色三级视频| 亚洲第一久久| 天天躁日日2018躁狠狠躁| 亚洲伊人色一综合网| 女女同免费播放毛片| 91华人在线视频| 亚州免费一级毛片| 五月亭亭激情五月| 欧美性色视频| 免费一级毛毛片|