常見的加密算法、原理缴渊、優(yōu)缺點(diǎn)赏壹、用途

一、概述

在安全領(lǐng)域疟暖,利用密鑰加密算法來對通信的過程進(jìn)行加密是一種常見的安全手段卡儒。利用該手段能夠保障數(shù)據(jù)安全通信的三個目標(biāo):

1、數(shù)據(jù)的保密性俐巴,防止用戶的數(shù)據(jù)被竊取或泄露
2骨望、保證數(shù)據(jù)的完整性,防止用戶傳輸?shù)臄?shù)據(jù)被篡改
3欣舵、通信雙方的身份確認(rèn)擎鸠,確保數(shù)據(jù)來源與合法的用戶

而常見的密鑰加密算法類型大體可以分為三類:對稱加密、非對稱加密缘圈、單向加密劣光。下面我們來了解下相關(guān)的算法原理及其常見的算法。

二糟把、對稱加密

在加密傳輸中最初是采用對稱密鑰方式绢涡,也就是加密和解密都用相同的密鑰。

對稱加密過程如下:

1.對稱加密算法采用單密鑰加密遣疯,在通信過程中雄可,數(shù)據(jù)發(fā)送方將原始數(shù)據(jù)分割成固定大小的塊,經(jīng)過密鑰和加密算法逐個加密后,發(fā)送給接收方

2.接收方收到加密后的報文后数苫,結(jié)合解密算法使用相同密鑰解密組合后得出原始數(shù)據(jù)聪舒。

圖示:

優(yōu)點(diǎn)

是效率高,算法簡單虐急,系統(tǒng)開銷小箱残,適合加密大量數(shù)據(jù)。

缺點(diǎn)

安全性差

加解密算法是公開的止吁,因此在這過程中被辑,密鑰的安全傳遞就成為了至關(guān)重要的事了。而密鑰通常來說是通過雙方協(xié)商赏殃,以物理的方式傳遞給對方敷待,或者利用第三方平臺傳遞給對方,一旦這過程出現(xiàn)了密鑰泄露仁热,不懷好意的人就能結(jié)合相應(yīng)的算法攔截解密出其加密傳輸?shù)膬?nèi)容。

擴(kuò)展性差

每對通信用戶之間都需要協(xié)商密鑰勾哩,n個用戶的團(tuán)體就需要協(xié)商n*(n-1)/2個不同的密鑰抗蠢,不便于管理;而如果都使用相同密鑰的話思劳,密鑰被泄漏的機(jī)率大大增加迅矛,加密也就失去了意義。

常見的對稱加密算法

  • DES:分組式加密算法潜叛,以64位為分組對數(shù)據(jù)加密秽褒,加解密使用同一個算法。
  • 3DES:三重數(shù)據(jù)加密算法威兜,對每個數(shù)據(jù)塊應(yīng)用三次DES加密算法销斟。
  • AES:高級加密標(biāo)準(zhǔn)算法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)椒舵,用于替代原先的DES,目前已被廣泛應(yīng)用。
  • Blowfish:Blowfish算法是一個64位分組及可變密鑰長度的對稱密鑰分組密碼算法扒吁,可用來加密64比特長度的字符串稳摄。

三、非對稱加密

非對稱加密算法采用公鑰和私鑰兩種不同的密碼來進(jìn)行加解密泼橘。公鑰和私鑰是成對存在涝动,公鑰是從私鑰中提取產(chǎn)生公開給所有人的,如果使用公鑰對數(shù)據(jù)進(jìn)行加密炬灭,那么只有對應(yīng)的私鑰(不能公開)才能解密醋粟,反之亦然。N 個用戶通信,需要2N個密鑰昔穴。

用途

非對稱密鑰加密適合對密鑰或身份信息等敏感信息加密镰官,從而在安全性上滿足用戶的需求。

非對稱加密過程

1.甲使用乙的公鑰并結(jié)合相應(yīng)的非對稱算法將明文加密后發(fā)送給乙吗货,并將密文發(fā)送給乙泳唠。
2.乙收到密文后,結(jié)合自己的私鑰和非對稱算法解密得到明文宙搬,得到最初的明文笨腥。

圖示:

優(yōu)點(diǎn)

具有比對稱密鑰加/解密方式更高的安全性,因?yàn)榧用芎徒饷苡玫氖遣煌荑€勇垛,而且無法從一個密鑰推導(dǎo)出另一個密鑰脖母,且公鑰加密的信息只能用同一方的私鑰進(jìn)行解密。

缺點(diǎn)

1.非對稱密鑰加密的缺點(diǎn)是算法非常復(fù)雜闲孤,導(dǎo)致加密大量數(shù)據(jù)所用的時間較長谆级,只適合對少量數(shù)據(jù)進(jìn)行加密。而且由于在加密過程中會添加較多附加信息讼积,使得加密后的報文比較長肥照,容易造成數(shù)據(jù)分片,不利于網(wǎng)絡(luò)傳輸勤众。

2.無法確認(rèn)公鑰的來源合法性以及數(shù)據(jù)的完整性舆绎。如何確認(rèn)我們接下來會說

常見算法包括:

  • RSA:RSA算法基于一個十分簡單的數(shù)論事實(shí):將兩個大素數(shù)相乘十分容易,但那時想要對其乘積進(jìn)行因式分解卻極其困難们颜,因此可以將乘積公開作為加密密鑰吕朵,可用于加密,也能用于簽名窥突。
  • DSA:數(shù)字簽名算法努溃,僅能用于簽名,不能用于加解密波岛。
  • DSS:數(shù)字簽名標(biāo)準(zhǔn)茅坛,技能用于簽名,也可以用于加解密则拷。
  • ELGamal:利用離散對數(shù)的原理對數(shù)據(jù)進(jìn)行加解密或數(shù)據(jù)簽名贡蓖,其速度是最慢的。

四煌茬、單向加密

單向加密算法只能用于對數(shù)據(jù)的加密斥铺,無法被解密,其特點(diǎn)為定長輸出坛善、雪崩效應(yīng)(少量消息位的變化會引起信息摘要的許多位變化)晾蜘。

用途

單向加密算法常用于提取數(shù)據(jù)指紋邻眷,驗(yàn)證數(shù)據(jù)的完整性、數(shù)字摘要剔交、數(shù)字簽名等等肆饶。

單向加密過程

1.發(fā)送者將明文通過單向加密算法加密生成定長的密文串,然后傳遞給接收方岖常。

2.接收方將用于比對驗(yàn)證的明文使用相同的單向加密算法進(jìn)行加密,得出加密后的密文串板惑。

3.將之與發(fā)送者發(fā)送過來的密文串進(jìn)行對比冯乘,若發(fā)送前和發(fā)送后的密文串相一致,則說明傳輸過程中數(shù)據(jù)沒有損壞晒夹;若不一致裆馒,說明傳輸過程中數(shù)據(jù)丟失了领追。

圖示:

常見算法

MD5、sha1舔亭、sha224等等

五钦铺、密鑰交換

密鑰交換IKE(Internet Key Exchange)通常是指雙方通過交換密鑰來實(shí)現(xiàn)數(shù)據(jù)加密和解密

常見的密鑰交換方式有下面兩種:

1矛洞、公鑰加密

將公鑰加密后通過網(wǎng)絡(luò)傳輸?shù)綄Ψ竭M(jìn)行解密沼本,這種方式缺點(diǎn)在于具有很大的可能性被攔截破解锭沟,因此不常用

2族淮、Diffie-Hellman

DH算法是一種密鑰交換算法,其既不用于加密贴妻,也不產(chǎn)生數(shù)字簽名。

DH算法通過雙方共有的參數(shù)澎胡、私有參數(shù)和算法信息來進(jìn)行加密滤馍,然后雙方將計算后的結(jié)果進(jìn)行交換巢株,交換完成后再和屬于自己私有的參數(shù)進(jìn)行特殊算法阁苞,經(jīng)過雙方計算后的結(jié)果是相同的那槽,此結(jié)果即為密鑰骚灸。

如:

A 有p和g兩個參數(shù)甚牲,A還有一個屬于自己的私有參數(shù)x丈钙;
B 有p和g兩個參數(shù)雏赦,A還有一個屬于自己的私有參數(shù)y星岗;
A和B均使用相同的加密算法計算其對應(yīng)的值:value_A=p(x%g)伍茄,value_B=p(y%g)
隨后雙方交換計算后的值敷矫,然后再分別使用自己的私有參數(shù)對去求次方,如:
A拿到value_B值后榨汤,對其求x平方得value_Bx=p(xy%g)收壕;
B拿到value_A值后蜜宪,對其求y平方得value_Ay=p(xy%g);
最終得到的結(jié)果是一致的缝呕。

安全性

在整個過程中摊聋,第三方人員只能獲取p麻裁、g兩個值悲立,AB雙方交換的是計算后的結(jié)果,因此這種方式是很安全的赫悄。

如何確認(rèn)公鑰的來源合法性?

答案:使用公鑰證書

公鑰基礎(chǔ)設(shè)施(PKI)

公鑰基礎(chǔ)設(shè)施是一個包括硬件写隶、軟件倔撞、人員、策略和規(guī)程的集合

用途

用于實(shí)現(xiàn)基于公鑰密碼機(jī)制的密鑰和證書的生成慕趴、管理痪蝇、存儲躏啰、分發(fā)和撤銷的功能

組成

簽證機(jī)構(gòu)CA趁矾、注冊機(jī)構(gòu)RA毫捣、證書吊銷列表CRL和證書存取庫CB。

公鑰證書

公鑰證書是以數(shù)字簽名的方式聲明,它將公鑰的值綁定到持有對應(yīng)私鑰的個人珊佣、設(shè)備或服務(wù)身份。公鑰證書的生成遵循X.509協(xié)議的規(guī)定,其內(nèi)容包括:證書名稱滨巴、證書版本、序列號俺叭、算法標(biāo)識恭取、頒發(fā)者、有效期熄守、有效起始日期攒发、有效終止日期、公鑰 晋南、證書簽名等等的內(nèi)容惠猿。

CA(Certifi_ca_te Authority)證書認(rèn)證的流程

1.客戶A準(zhǔn)備好要傳送的數(shù)字信息(明文)。(準(zhǔn)備明文)

2.客戶A對數(shù)字信息進(jìn)行哈希(hash)運(yùn)算负间,得到一個信息摘要偶妖。(準(zhǔn)備摘要)

3.客戶A用CA的私鑰(SK)對信息摘要進(jìn)行加密得到客戶A的數(shù)字簽名姜凄,并將其附在數(shù)字信息上。(用私鑰對數(shù)字信息進(jìn)行數(shù)字簽名)

4.客戶A隨機(jī)產(chǎn)生一個加密密鑰(DES密鑰)餐屎,并用此密鑰對要發(fā)送的信息進(jìn)行加密檀葛,形成密文。 (生成密文)

5.客戶A用雙方共有的公鑰(PK)對剛才隨機(jī)產(chǎn)生的加密密鑰進(jìn)行加密腹缩,將加密后的DES密鑰連同密文一起傳送給乙屿聋。(非對稱加密,用公鑰對DES密鑰進(jìn)行加密)

6.銀行B收到客戶A傳送過來的密文和加過密的DES密鑰藏鹊,先用自己的私鑰(SK)對加密的DES密鑰進(jìn)行解密润讥,得到DES密鑰。(用私鑰對DES密鑰解密)

7.銀行B然后用DES密鑰對收到的密文進(jìn)行解密盘寡,得到明文的數(shù)字信息楚殿,然后將DES密鑰拋棄(即DES密鑰作廢)。(解密文)

8.銀行B用雙方共有的公鑰(PK)對客戶A的數(shù)字簽名進(jìn)行解密竿痰,得到信息摘要脆粥。銀行B用相同的hash算法對收到的明文再進(jìn)行一次hash運(yùn)算,得到一個新的信息摘要影涉。(用公鑰解密數(shù)字簽名)

9.銀行B將收到的信息摘要和新產(chǎn)生的信息摘要進(jìn)行比較变隔,如果一致,說明收到的信息沒有被修改過蟹倾。(對比信息摘要和信息)

如何保證CA的公鑰沒有被篡改呢匣缘?

答案是沒法保證CA的公鑰沒有被篡改。通常操作系統(tǒng)和瀏覽器會預(yù)制一些CA證書在本地鲜棠。所以發(fā)送方應(yīng)該去那些通過認(rèn)證的CA處申請數(shù)字證書肌厨。這樣是有保障的。

但是如果系統(tǒng)中被插入了惡意的CA證書豁陆,依然可以通過假冒的數(shù)字證書發(fā)送假冒的發(fā)送方公鑰來驗(yàn)證假冒的正文信息柑爸。所以安全的前提是系統(tǒng)中不能被人插入非法的CA證書。

參考:

END

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盒音,一起剝皮案震驚了整個濱河市竖配,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌里逆,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,548評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件用爪,死亡現(xiàn)場離奇詭異原押,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)偎血,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評論 3 399
  • 文/潘曉璐 我一進(jìn)店門诸衔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盯漂,“玉大人,你說我怎么就攤上這事笨农【屠拢” “怎么了?”我有些...
    開封第一講書人閱讀 167,990評論 0 360
  • 文/不壞的土叔 我叫張陵谒亦,是天一觀的道長竭宰。 經(jīng)常有香客問我,道長份招,這世上最難降的妖魔是什么切揭? 我笑而不...
    開封第一講書人閱讀 59,618評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮锁摔,結(jié)果婚禮上廓旬,老公的妹妹穿的比我還像新娘。我一直安慰自己谐腰,他們只是感情好孕豹,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著十气,像睡著了一般励背。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上桦踊,一...
    開封第一講書人閱讀 52,246評論 1 308
  • 那天椅野,我揣著相機(jī)與錄音,去河邊找鬼籍胯。 笑死竟闪,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的杖狼。 我是一名探鬼主播炼蛤,決...
    沈念sama閱讀 40,819評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蝶涩!你這毒婦竟也來了理朋?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,725評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绿聘,失蹤者是張志新(化名)和其女友劉穎嗽上,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體熄攘,經(jīng)...
    沈念sama閱讀 46,268評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兽愤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浅萧。...
    茶點(diǎn)故事閱讀 40,488評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡逐沙,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出洼畅,到底是詐尸還是另有隱情吩案,我是刑警寧澤,帶...
    沈念sama閱讀 36,181評論 5 350
  • 正文 年R本政府宣布帝簇,位于F島的核電站徘郭,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏己儒。R本人自食惡果不足惜崎岂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望闪湾。 院中可真熱鬧冲甘,春花似錦、人聲如沸途样。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽何暇。三九已至陶夜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間裆站,已是汗流浹背条辟。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留宏胯,地道東北人羽嫡。 一個月前我還...
    沈念sama閱讀 48,897評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像肩袍,于是被迫代替她去往敵國和親杭棵。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評論 2 359

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