RSA非對稱加密演算法,加密和簽名

2021-07-06 01:36:22 字數 1102 閱讀 4037

ras演算法:

1、用rsa演算法生成一對金鑰,公鑰發放給外部客戶,私鑰自己保管;有以下應用場景:

【公鑰加密、私鑰解密】或者【私鑰簽名、公鑰驗證】

2、非對稱加解密的理解:

3、當該使用者傳送檔案時,用私鑰簽名,別人用他給的公鑰驗證簽名,可以保證該資訊是由他傳送的。當該使用者接受檔案時,別人用他的公鑰加密,他用私鑰解密,可以保證該資訊只能由他接收到,這裡的簽名和加密是不一樣的,加密時,對方用公匙(接收方提供的)加密,接收方用自己的私匙解密,數字簽名時,是公匙加密的一種逆用,用私匙加密,公匙解密,可以確認傳送方身份,加密是為了防止資料被別人擷取,重點在資料的安全性,防止被竊聽,數字簽名是為了身份認證,重點在核實使用者身份的真實性,呼叫支付介面時,商戶發資訊給支付寶時,用自己的私鑰做簽名,以供支付寶驗證商戶的身份。

4.數字簽名主要經過以下幾個過程:

資訊傳送者使用一單向雜湊函式(hash函式)對資訊生成資訊摘要;

資訊傳送者使用自己的私鑰簽名資訊摘要;

資訊傳送者把資訊本身和已簽名的資訊摘要一起傳送出去;

資訊接收者通過使用與資訊傳送者使用的同乙個單向雜湊函式(hash函式)對接收的資訊本身生成新的資訊摘要,再使用資訊傳送者的公鑰對資訊摘要進行驗證,以確認資訊傳送者的身份和資訊是否被修改過。

所以,一般的,數字簽名=私鑰加密(hash(原始資料)),如果原始資料比較短,也可以直接對原始資料進行私鑰加密

5.證書的作用

非對稱演算法的公鑰是公開的,為了公鑰的安全,可以向權威的證書

簽發機構(ca)申請證書來保護公鑰的安全(為公鑰蓋乙個章,防止別人偽造)

以支付寶移動支付為例,呼叫pay函式時,要傳支付資訊(訂單號,金額,賣家支付寶賬號),同時對支付資訊用商戶的私鑰簽名(支付寶伺服器用商戶的公鑰驗證簽名資訊),把簽名資訊和支付資訊一起組成字串作為pay的入參,這樣支付寶就可以用公鑰解密出簽名資訊,與字串中的支付資訊做對比,達到驗證的目的

但是,如果支付寶伺服器被入侵,存放的商戶公鑰被黑客替換成他偽造的公鑰,這樣黑客就可以用自己的私鑰簽名並傳送資訊給支付寶(呼叫pay),比如可以把錢支付到他指定的賬戶中

為了解決這個問題,就可以用數字證書來保護公鑰。當然支付寶伺服器有其他辦法去保護他得公鑰,所以不一定需要ca。

更詳細資訊參考:

RSA 非對稱加密演算法

1.對稱加密 甲方選擇某一種加密規則,對資訊進行加密 乙方使用同一種規則,對資訊進行解密。非對稱加密 乙方生成兩把金鑰 公鑰和私鑰 公鑰是公開的,任何人都可以獲得,私鑰則是保密的。甲方獲取乙方的公鑰,然後用它對資訊加密。乙方得到加密後的資訊,用私鑰解密。2.尤拉定理 rsa演算法的核心 可以大大簡化...

非對稱加密演算法 RSA

1 非對稱加密過程 國內使用的是雙證書體系 即使用者同時擁有簽名證書 和加密證書 兩張證書。簽名證書 是使用者的身份驗證是和ca協商的結果 加密證書 是用來對資訊進行加密,是使用者和秘鑰管理系統生成 過程是生成公鑰和私鑰的過程,基於rsa演算法實現 過程是ca對使用者的身份進行簽名,目的是驗證a的身...

非對稱加密演算法 RSA

rsa加密演算法於1977年由美國麻省理工學院的ronal rivest,adi shamir和len adleman三位年輕教授提出,並以三人的姓氏rivest,shamir和adleman命名為rsa演算法。這三位科學家榮獲2002年度圖靈獎,以表彰他們在演算法方面的突出貢獻。該演算法利用了數論...