關於加解密的一些常識

2022-09-18 02:46:10 字數 2231 閱讀 3372

對稱加密演算法是應用較早的加密演算法,技術成熟。在對稱加密演算法中,資料發信方將明文(原始資料)和加密金鑰一起經過特殊加密演算法處理後,使其變成複雜的加密密文傳送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的金鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的金鑰只有乙個,發收信雙方都使用這個金鑰對資料進行加密和解密。它要求傳送方和接收方在安全通訊之前,商定乙個金鑰。對稱演算法的安全性依賴於金鑰,洩漏金鑰就意味著任何人都可以對他們傳送或接收的訊息解密,所以金鑰的保密性對通訊的安全性至關重要。

對稱加密演算法的特點是演算法公開、計算量小、加密速度快、加密效率高。不足之處是,交易雙方都使用同樣鑰匙,安全性得不到保證。此外,每對使用者每次使用對稱加密演算法時,都需要使用其他人不知道的惟一鑰匙,這會使得發收信雙方所擁有的鑰匙數量成幾何級數增長,金鑰管理成為使用者的負擔。對稱加密演算法在分布式網路系統上使用較為困難,主要是因為金鑰管理困難,使用成本較高。

不對稱加密演算法使用兩把完全不同但又是完全匹配的一對鑰匙:公鑰(加密秘鑰)和私鑰(解密秘鑰)。

在使用不對稱加密演算法加密檔案時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時採用公鑰加密,解密密文時使用私鑰才能完成,而且發信方(加密者)知道收信方的公鑰,只有收信方(解密者)才是唯一知道自己私鑰的人。不對稱加密演算法的基本原理是,如果發信方想傳送只有收信方才能解讀的加密資訊,發信方必須首先知道收信方的公鑰,然後利用收信方的公鑰來加密原文;收信方收到加密密文後,使用自己的私鑰才能解密密文。顯然,採用不對稱加密演算法,收發信雙方在通訊之前,收信方必須將自己早已隨機生成的公鑰送給發信方,而自己保留私鑰。由於不對稱演算法擁有兩個金鑰,因而特別適用於分布式系統中的資料加密。廣泛應用的不對稱加密演算法有rsa演算法和美國國家標準局提出的dsa。

向雜湊函式有乙個輸入和乙個輸出,其中輸入稱為訊息(message),輸出稱為雜湊值(hash code)。單向雜湊函式可以根據訊息的內容計算出雜湊值,而雜湊值就可以被用來檢查訊息的完整性。雜湊值的長度和訊息的長度無關。無論訊息是1位元,還是100mb,甚至是100gb,單向雜湊函式都會計算出固定長度的雜湊值。以sha-256單向雜湊函式為例,它所計算出的雜湊值的長度永遠是256位元(32位元組)。為了能夠確認完整性,訊息中哪怕只有1位元的改變,也會產生不同的雜湊值。單向雜湊函式輸出的雜湊值也稱為訊息摘要(message digest)或者指紋(fingerprint)

md4、md5便是這樣的加密演算法

md(messge digest)4是由rivest於2023年設計的單向雜湊函式,能夠產生128位元的雜湊值。現在它已經不安全了。md(messge digest)5是由rivest於2023年設計的單向雜湊函式,能夠產生128位元的雜湊值。md5的強抗碰撞性已經被攻破。也就是說,現在已經能夠產生具備相同雜湊值的兩條不同的訊息,因此它也不安全了。

訊息認證碼(message authentication code)是一種確認完整性並進行認證的技術,簡稱為mac。

訊息認證指的是「訊息來自正確的傳送者」這一性質。訊息認證碼的輸入包括任意長度的訊息和乙個傳送者與接受者之間共享的金鑰,它可以輸出固定長度的資料,這個資料成為mac值。要計算mac必須持有共享金鑰,沒有共享金鑰的人就無法計算mac值,訊息認證碼正是利用這一性質來完成認證的。此外,和單向雜湊函式的雜湊值一樣,哪怕訊息中發生1位元的變化,mac值也會產生變化,訊息認證碼正是利用這一性質來確認完整性的。訊息認證碼可以說是一種與金鑰相關聯的單向雜湊函式。

訊息認證碼可以使用單向雜湊函式和對稱密碼等技術來實現。

hmac是一種使用單向雜湊函式來構造訊息認證碼的方法,其中hmac的h就是hash的意思。

訊息認證碼也不能解決所有的問題,例如「對第三方證明」,和「防止否認」,這兩個問題就無法通過訊息認證碼來解決。

(身份認證,銀行u盾就是這個體系啦)

(位元幣錢包的最愛)

更多相關知識見reference

密碼演算法揭秘,一文讓你成為國際安全演算法與國密演算法專家

加解密 簽名驗證的一些感悟

非對稱加密 在資訊加密過程當中,雙方不採用固定的每個字串作為加密的key值,而是採用生成的一對公私鑰 公鑰 對外公開的秘鑰,私鑰 自己保內的私鑰,可以是由加密演算法生成的證書檔案或者一對加密串 拿到這對公私鑰的個人將公鑰暴露出去,以供後續的加解密以及加簽驗籤工程的使用,私鑰自己留存 私鑰對別人是不可...

加解密的一些小特點

對稱加密演算法 加解密共用同一把鑰匙 des 3des idea aes 優點 速度快 缺點 金鑰不能洩露 非對稱密碼演算法 加解密使用不同的鑰匙 rsa ecc elgamal 公鑰 私鑰 公鑰可以分給其他人,私鑰只有一把,只能自己擁有 用公鑰加密,只能私鑰解密 反之亦同 公鑰加密 只有私鑰能解密...

openssl操作公私鑰和加解密的一些常用命令

生成公私鑰實踐 生成私鑰,這裡以橢圓曲線secp256k1為例 openssl ecparam name secp256k1 genkey out secp256k1 priv.pem 帶ec曲線引數 openssl ecparam name secp256k1 genkey noout out s...