RSA使用總結(ios,openssl)

2021-07-13 13:24:55 字數 769 閱讀 2004

rsa:使用openssl庫可方便實現rsa加解密,網上的資料很多,不詳述。

金鑰通常有兩種方式,一種是字串格式的公私鑰,通常是---

--begin public key-----開頭,

-----end public key-----結尾並且沒有換行的字串,這是pkcs8格式的;在這裡,重點說第二種,就是使用n,e,d表示的金鑰,其中(n,e)是公鑰,(n,d)是私鑰,加密使用(n,e),解密使用(n,d),使用openssl時,需要先構造rsa金鑰資料結構,簡單來說就是使用n,e,d三個引數中的兩個來初始化乙個金鑰,通常使用n,e初始化為公鑰用來加密和驗籤,使用n,d初始化為私鑰用來解密和簽名,詳見這個文件。

再乙個不得不說的東西就是填充方式,rsa加密的特點決定了一次加密的長度固定,比如1024位的金鑰可加密128個位元組的資料,如果你在加密時選擇填充方式為rsa_no_padding,那麼你可以傳入128個位元組的明文資料進行加密,但是如果你選擇了填充方式為rsa_pkcs1_padding,那麼你能一次加密的明文長度就不能大於117個位元組,否則加密失敗。這是加密時,解密時,你需要選擇和加密時相同的方式,如果你加密時是rsa_no_padding,那解密時也應該是rsa_no_padding,如果你加密時是rsa_pkcs1_padding,那解密時也應該是rsa_pkcs1_padding。rsa_no_padding方式的加密如果長度不夠128,解密的資料裡除了有效資料外,其他的不一定全是0,而使用rsa_pkcs1_padding加密後,解密出來的資料就是原始資料,不會有無用的一對0還有富有迷惑性的其他的資料。總結一下,供參考。

RSA演算法總結

1 選擇一對不同的 足夠大的素數p,q。2 計算n pq。3 計算f n p 1 q 1 4 找乙個與f n 互質的數e,且1安全性方面需注意引數的選取 建議參考 應用密碼學 2017版 p156 p157 1 不同的使用者不能用相同的模數 n,即乙個模數只能乙個人用 2 p 和 q 的差值要大,一...

RSA過程總結

一共有6個數字 p,q,n,o n e,d p 質數 q 質數 n 模 特性 p q n,n的長度為金鑰的長度 第一步 計算n的尤拉函式o n p 1 q 1 第二步 隨機選取乙個數e,要求 1加密的原理 傳送加密資訊m必須小於n 加密過程e m m e n,即m的e次方,然後對n取模,得到的餘數就...

RSA攻擊總結

相關概念 什麼是dp dp d mod p 1 推導過程 dp equiv d mod p 1 dp times e equiv d times e mod p 1 d times e k times p 1 dp times e d times e equiv 1 mod p 1 times q ...