iOS之非對(duì)稱加密算法

1、簡(jiǎn)介
1.1非對(duì)稱加密是計(jì)算機(jī)通信安全的基石策彤,保證了加密數(shù)據(jù)不會(huì)被破解。
1.2非對(duì)稱加密算法需要兩個(gè)密鑰:公開密鑰(publickey) 和私有密(privatekey)
1.3公開密鑰和私有密鑰是一對(duì)
如果用公開密鑰對(duì)數(shù)據(jù)進(jìn)行加密铐料,只有用對(duì)應(yīng)的私有密鑰才能解密定铜。
如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的公開密鑰才能解密繁疤。

2咖为、特點(diǎn)
算法強(qiáng)度復(fù)雜,安全性依賴于算法與密鑰稠腊。
加密解密速度慢躁染。

3、與對(duì)稱加密算法的對(duì)比
對(duì)稱加密只有一種密鑰架忌,并且是非公開的吞彤,如果要解密就得讓對(duì)方知道密鑰。
非對(duì)稱加密有兩種密鑰叹放,其中一個(gè)是公開的备畦。

4、經(jīng)典非對(duì)稱加密算法:RSA算法
1977年许昨,三位數(shù)學(xué)家Rivest懂盐、Shamir
和 Adleman 設(shè)計(jì)了一種算法,可以實(shí)現(xiàn)非對(duì)稱加密糕档。這種算法用他們?nèi)齻€(gè)人的名字命名莉恼,叫做RSA算法。

2速那、原理
1俐银、找出兩個(gè)‘很大’的質(zhì)數(shù):P & Q,一般長(zhǎng)度是上百位。然后通過下面計(jì)算得到 N和 M;
N = P * Q
M = (P - 1) * (Q - 1)
2端仰、找出整數(shù)E捶惜,E與M互質(zhì),即除了1之外荔烧,沒有其他公約數(shù)
3吱七、找出整數(shù)D,使用ED除以M余1鹤竭,即(ED) % M = 1
4踊餐、經(jīng)過上述準(zhǔn)備工作之后,可以得到:
E是公鑰臀稚,負(fù)責(zé)加密
D是私鑰,吝岭,負(fù)責(zé)解密
N負(fù)責(zé)公鑰和私鑰之間的聯(lián)系
5、加密算法,假定對(duì)X進(jìn)行加密
(X^E)%N = Y
6窜管、解密算法散劫,根據(jù)‘費(fèi)馬小定理',可以使用以下公式完成解密
(Y^D)%N = X

3幕帆、RSA算法演練
1获搏、RSA原理代碼演示
2、RSA算法演練

  • (void)RSADemo{
    CryptorTools *tools = [[CryptorTools alloc] init];

// 加載公鑰
NSString *pubPath = [[NSBundle mainBundle] pathForResource:@"rsacert.der" ofType:nil];
[tools loadPublicKeyWithFilePath:pubPath];

// 使用公鑰加密
NSString *result = [tools RSAEncryptString:@"i love you"];
NSLog(@"%@",result);

// 加載私鑰
NSString *privatePath = [[NSBundle mainBundle] pathForResource:@"p.p12" ofType:nil];
[tools loadPrivateKey:privatePath password:@"123"];

// 使用私鑰解密
NSLog(@"%@",[tools
RSADecryptString:result]);
}

4蜓肆、RSA應(yīng)用場(chǎng)景
由于 RSA算法的加密解密速度要比對(duì)稱算法速度慢很多,在實(shí)際應(yīng)用中谋币,通常采取
數(shù)據(jù)本身的加密和解密使用對(duì)稱加密算法(AES)仗扬。
用RSA算法加密并傳輸對(duì)稱算法所需的密鑰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蕾额,一起剝皮案震驚了整個(gè)濱河市早芭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诅蝶,老刑警劉巖退个,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異调炬,居然都是意外死亡语盈,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門缰泡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刀荒,“玉大人,你說我怎么就攤上這事棘钞〔瑁” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵宜猜,是天一觀的道長(zhǎng)泼返。 經(jīng)常有香客問我,道長(zhǎng)姨拥,這世上最難降的妖魔是什么绅喉? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮叫乌,結(jié)果婚禮上霹疫,老公的妹妹穿的比我還像新娘。我一直安慰自己综芥,他們只是感情好丽蝎,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般屠阻。 火紅的嫁衣襯著肌膚如雪红省。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天国觉,我揣著相機(jī)與錄音吧恃,去河邊找鬼。 笑死麻诀,一個(gè)胖子當(dāng)著我的面吹牛痕寓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蝇闭,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼呻率,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了呻引?” 一聲冷哼從身側(cè)響起礼仗,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逻悠,沒想到半個(gè)月后元践,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡童谒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年单旁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饥伊。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡慎恒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出撵渡,到底是詐尸還是另有隱情融柬,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布趋距,位于F島的核電站粒氧,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏节腐。R本人自食惡果不足惜外盯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望翼雀。 院中可真熱鬧饱苟,春花似錦、人聲如沸狼渊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至城须,卻和暖如春蚤认,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背糕伐。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工砰琢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人良瞧。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓陪汽,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親褥蚯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挚冤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容