密碼技術(shù)那些事兒

前言

《圖解密碼技術(shù)》一書介紹了很多關(guān)于密碼的知識,通讀一遍需要不少時(shí)間。為了方便學(xué)習(xí),我對書中關(guān)鍵的部分進(jìn)行了總結(jié),希望可以提高大家的學(xué)習(xí)效率。如果想對本文中的某些內(nèi)容進(jìn)行深入研究,您可以查閱原書。

歷史上的密碼

凱撒密碼

凱撒密碼是通過將明文中所使用的字母表按照一定的字?jǐn)?shù)“平移”來進(jìn)行加密和解密的。

簡單替換密碼

簡單替換密碼是將明文中所使用的的字母表替換為另一套字母表的密碼。

Enigma

Enigma是第二次世界大戰(zhàn)中德國使用的一種密碼機(jī),它是一種由鍵盤、齒輪、電池、和燈泡所組成的機(jī)器,通過這一臺機(jī)器就可以完成加密和解密兩種操作。

現(xiàn)代計(jì)算機(jī)之父阿蘭?圖靈曾是破譯德國密碼機(jī)團(tuán)隊(duì)的一員。圖靈在1940年研制出了用于破譯Enigma的機(jī)器。

對稱密碼

對稱密碼是一種用相同的密鑰進(jìn)行加密和解密的技術(shù),用于確保消息的機(jī)密性。

對稱密碼.png
一次性密碼本

只要通過暴力破解法對密鑰空間進(jìn)行遍歷,無論什么密文總有一天也都能夠被破譯。然而一次性密碼本卻是一個例外,即便使用暴力破解法遍歷整個密鑰空間,一次性密碼本也絕對無法被破譯。
一次性密碼本是一種非常簡單的密碼,它的原理是“將明文與一串隨機(jī)的比特序列進(jìn)行XOR(異或)運(yùn)算”。
在一次性密碼本中,由于我們無法判斷得到的是不是正確的明文,因此一次性密碼本是無法破譯的。
由于一次性密碼本存在配送、保存、重用、同步等方面的問題,所以幾乎沒有人應(yīng)用一次性密碼本,因?yàn)樗且环N非常不實(shí)用的密碼。

DES

DES(Data Encryption Standard)是1977年美國聯(lián)邦信息處理標(biāo)準(zhǔn)中所采用的一種對稱碼。
DES是一種將64比特的明文加密成64比特的密文的對稱密碼算法,它的密鑰長度是56比特。盡管從規(guī)格上來說,DES的密鑰長度是64比特,但由于每隔7比特會設(shè)置一個用于錯誤檢查的比特,因此實(shí)質(zhì)上其實(shí)密鑰長度是56比特。

由于DES的密文可以在短時(shí)間內(nèi)被破譯,因此除了用它來解密以前的密文以外,現(xiàn)在我們不應(yīng)該使用DES了。

三重DES

三重DES是為了增加DES的強(qiáng)度,將DES重復(fù)3次所得到的一種密碼算法,也稱為TDEA,通??s寫為3DES。

盡管三重DES目前還被銀行等機(jī)構(gòu)使用,但其處理速度不高,除了特別重視向下兼容性的情況以外,很少被用于新的用途。

AES

AES(Advanced Encryption Standard)是取代其前任標(biāo)準(zhǔn)(DES)而成為新標(biāo)準(zhǔn)的一種對稱密碼算法(Rijndael)。
Rijndael是由比利時(shí)密碼學(xué)家Joan Daemen和Vincent Rijmen設(shè)計(jì)的分組密碼算法,于2000年被選為新一代的標(biāo)準(zhǔn)密碼算法——AES。
Rijndael的分組長度和密鑰長度可以分別以32比特為單位在128比特到256比特的范圍內(nèi)進(jìn)行選擇。不過在AES的規(guī)格中,分組長度固定為128比特,密鑰長度只有128、192、和256比特三種。

AES相比同類對稱加密算法速度算是非常快,比如在有AES-NI的x86服務(wù)器至少能達(dá)到幾百M(fèi)/s的速度。安全性在可預(yù)見的未來是基本等同的,因?yàn)榧词故?28位也足夠復(fù)雜無法被暴力破解?,F(xiàn)在112位密碼還在商業(yè)應(yīng)用,而128位是112位的幾萬倍,所以在實(shí)務(wù)中用128位比較劃算(稍節(jié)約資源)。
AES256比128大概需要多花40%的時(shí)間,用于多出的4輪round key生成以及對應(yīng)的SPN操作。另外,產(chǎn)生256-bit的密鑰可能也需要比128位密鑰多些開銷,不過這部分開銷應(yīng)該可以忽略。安全程度自然是256比128安全,因?yàn)槟壳俺吮┝ζ平?,并沒有十分有效的代數(shù)攻擊方法。
AES128和AES256主要區(qū)別是密鑰長度不同(分別是128bits,256bits)、加密處理輪數(shù)不同(分別是10輪,14輪),后者強(qiáng)度高于前者。當(dāng)前AES是較為安全的公認(rèn)的對稱加密算法。
關(guān)于用AES128還是AES256算法,個人認(rèn)為AES128已經(jīng)足夠用,當(dāng)然AES256可以作為一個營銷手段使用

參考:http://blog.csdn.net/newizan/article/details/45461347

在對稱密碼的算法方面,目前主要使用的是AES,因?yàn)樗踩⒖焖?、而且能夠在各種平臺上工作。盡管對稱密碼能夠確保消息的機(jī)密性,但需要解決將解密秘鑰配送給接收者的密鑰配送問題。

分組密碼的模式

DES和AES都屬于分組密碼,它們只能加密固定長度的明文。如果需要加密任意長度的明文,就需要對分組密碼進(jìn)行迭代,而分組密碼的迭代方法就稱為分組密碼的模式。

ECB模式

Electronic CodeBook Mode(電子密碼本模式)。在ECB模式中,將明文分組加密之后的結(jié)果直接成為密文分組。

由于安全性最差已不推薦使用

CBC模式

Cipher Block Chaining Mode(密文分組鏈接模式)。在CBC模式中,首先將明文分組與前一個密文分組進(jìn)行XOR運(yùn)算,然后再進(jìn)行加密。

初始化向量

當(dāng)加密第一個明文分組時(shí),由于不存在“前一個密文分組”,因此需要事先準(zhǔn)備一個長度為一個分組的比特序列來代替“前一個密文分組”,這個比特序列稱為初始化向量(Initialization Vector),通??s寫為IV

CFB模式

Cipher FeedBack Mode(密文反饋模式)。在CFB模式中,首先將前一個密文分組進(jìn)行加密,最后將加密后的密鑰流與明文分組進(jìn)行XOR運(yùn)算得到密文分組。

OFB模式

Output-Feedback Mode(輸出反饋模式)。在OFB模式中,逐次的對密鑰流進(jìn)行加密后得到流密碼,與明文分組進(jìn)行XOR運(yùn)算得到密文分組。

CTR模式

CounTeR Mode(計(jì)數(shù)器模式)。在CTR模式中,通過將逐次累加的計(jì)數(shù)器進(jìn)行加密來生成密鑰流的流密碼,然后與明文分組進(jìn)行XOR運(yùn)算得到密文分組。

公鑰密碼

公鑰密碼(非對稱密碼)中,密鑰分為加密密鑰和解密密鑰兩種。發(fā)送者用加密密鑰對消息進(jìn)行加密,接收者用解密密鑰對密文進(jìn)行解密。

公鑰密碼.png
RSA

RSA是一種公鑰密碼算法,它的名字是由它的三位開發(fā)者,即Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母組成的(Rivest-Shamir-Adleman)。

RSA的加密是求“E次方的 mod N”,而解密則是求“D次方的 mod N”

密文 = 明文^E mod N

明文 = 密文^D mod N
EIGamal方式

EIGamal方式是由Taher EIGamal設(shè)計(jì)的公鑰算法。RSA利用了質(zhì)因數(shù)分解的困難度,而EIGamal方式則利用了mod N 下求離散對數(shù)的困難度。

Rabin方式

Rabin方式是由M.O.Rabin設(shè)計(jì)的公鑰算法。Rabin方式利用了mod N下求平方根的困難度。

橢圓曲線密碼

橢圓曲線密碼(Elliptic Curve Cryptography,ECC)是最近備受關(guān)注的一種公鑰密碼算法。它的特點(diǎn)是所需的密鑰長度比RSA短。
橢圓曲線密碼是通過將橢圓曲線上的特定點(diǎn)進(jìn)行特殊的乘法運(yùn)算來實(shí)現(xiàn)的,它利用了這種乘法運(yùn)算的逆運(yùn)算非常困難這一特性。

使用公鑰密碼能夠解決密鑰配送問題。公鑰密碼是密碼學(xué)界的一項(xiàng)革命性發(fā)明,現(xiàn)代計(jì)算機(jī)和互聯(lián)網(wǎng)所使用的密碼技術(shù)都得益于公鑰密碼。
盡管公鑰密碼能夠解決對稱密碼中的密鑰交換問題,但存在通過中間人攻擊被偽裝的風(fēng)險(xiǎn),因此需要對帶有數(shù)字簽名的公鑰進(jìn)行認(rèn)證。
即使已經(jīng)有了公鑰密碼,對稱密碼也不會消失。公鑰密碼的運(yùn)行速度遠(yuǎn)遠(yuǎn)低于對稱密碼,因此在一般的通信過程中,往往會配合使用這兩種密碼,即用對稱密碼提高處理速度,用公鑰密碼解決密鑰配送問題。這樣的方式稱為混合密碼系統(tǒng)。

單向散列函數(shù)

單向散列函數(shù)有一個輸入和一個輸出,其中輸入稱為消息(message),輸出稱為散列值(hash code)。單向散列函數(shù)可以根據(jù)消息的內(nèi)容計(jì)算出散列值,而散列值就可以被用來檢查消息的完整性。
散列值的長度和消息的長度無關(guān)。無論消息是1比特,還是100MB,甚至是100GB,單向散列函數(shù)都會計(jì)算出固定長度的散列值。
以SHA-256單向散列函數(shù)為例,它所計(jì)算出的散列值的長度永遠(yuǎn)是256比特(32字節(jié))。
為了能夠確認(rèn)完整性,消息中哪怕只有1比特的改變,也會產(chǎn)生不同的散列值。
單向散列函數(shù)輸出的散列值也稱為消息摘要(message digest)或者指紋(fingerprint)

單向散列函數(shù)根據(jù)消息的內(nèi)容計(jì)算出散列值.png
MD4、MD5

MD(Messge Digest)4是由Rivest于1990年設(shè)計(jì)的單向散列函數(shù),能夠產(chǎn)生128比特的散列值?,F(xiàn)在它已經(jīng)不安全了。
MD(Messge Digest)5是由Rivest于1991年設(shè)計(jì)的單向散列函數(shù),能夠產(chǎn)生128比特的散列值。MD5的強(qiáng)抗碰撞性已經(jīng)被攻破。也就是說,現(xiàn)在已經(jīng)能夠產(chǎn)生具備相同散列值的兩條不同的消息,因此它也不安全了。

SHA-1、SHA-256、SHA-384、SHA512

SHA-1是由NIST(美國國家標(biāo)準(zhǔn)技術(shù)研究所)設(shè)計(jì)的一種能夠產(chǎn)生160比特的散列值的單向散列函數(shù)?,F(xiàn)在已不推薦使用。
SHA-256、SHA-384、SHA512都是由NIST設(shè)計(jì)的單向散列函數(shù),它們的散列值長度分別為256比特、384比特、和512比特。這些單向散列函數(shù)合起來統(tǒng)稱SHA-2。
SHA-1的強(qiáng)抗碰撞性已于2005年被攻破,不過,SHA-2還尚未被攻破。

RIPEMD-160

RIPEMD-160是于1996年由Hans Dobbertin、Antoon Bosselaers和Bart Preneel設(shè)計(jì)的一種能夠產(chǎn)生160比特的散列值的單向散列函數(shù)。RIPEMD-160是歐盟RIPE項(xiàng)目所設(shè)計(jì)的RIPEMD單向散列函數(shù)的修訂版。
RIPEMD的強(qiáng)抗碰撞性已經(jīng)于2004年被攻破,但RIPEMD-160還尚未被攻破。比特幣中使用的就是RIPEMD-160。

SHA-3

SHA-3(Secure Hash Algorithm-3)是一種作為新標(biāo)準(zhǔn)發(fā)布的單向散列函數(shù)算法,用來替代在理論上已被找出攻擊方法的SHA-1算法。
SHA-3的標(biāo)準(zhǔn)是Keccak算法。

Keccak

Keccak是一種被選定為SHA-3標(biāo)準(zhǔn)的單向散列函數(shù)算法。
Keccak可以生成任意長度的散列值,但為了配合SHA-2的散列值長度,SHA-3標(biāo)準(zhǔn)中共規(guī)定了SHA3-224、SHA3-256、SHA3-384、SHA3-512這4種版本。

單向散列函數(shù)能夠辨別出“篡改”,但無法辨別出“偽裝”,這時(shí)就需要進(jìn)行認(rèn)證

消息認(rèn)證碼

消息認(rèn)證碼(Message Authentication Code)是一種確認(rèn)完整性并進(jìn)行認(rèn)證的技術(shù),簡稱為MAC。
消息認(rèn)證指的是“消息來自正確的發(fā)送者”這一性質(zhì)。
消息認(rèn)證碼的輸入包括任意長度的消息和一個發(fā)送者與接受者之間共享的密鑰,它可以輸出固定長度的數(shù)據(jù),這個數(shù)據(jù)成為MAC值。
要計(jì)算MAC必須持有共享密鑰,沒有共享密鑰的人就無法計(jì)算MAC值,消息認(rèn)證碼正是利用這一性質(zhì)來完成認(rèn)證的。此外,和單向散列函數(shù)的散列值一樣,哪怕消息中發(fā)生1比特的變化,MAC值也會產(chǎn)生變化,消息認(rèn)證碼正是利用這一性質(zhì)來確認(rèn)完整性的。
消息認(rèn)證碼可以說是一種與密鑰相關(guān)聯(lián)的單向散列函數(shù)。
消息認(rèn)證碼可以使用單向散列函數(shù)和對稱密碼等技術(shù)來實(shí)現(xiàn)。

單向散列函數(shù)與消息認(rèn)證碼的比較.png
消息認(rèn)證碼的使用步驟.png
HMAC

HMAC是一種使用單向散列函數(shù)來構(gòu)造消息認(rèn)證碼的方法,其中HMAC的H就是Hash的意思。

消息認(rèn)證碼也不能解決所有的問題,例如“對第三方證明”,和“防止否認(rèn)”,這兩個問題就無法通過消息認(rèn)證碼來解決。

數(shù)字簽名

消息認(rèn)證碼之所以無法防止否認(rèn),是因?yàn)橄⒄J(rèn)證碼需要在發(fā)送者和接收者兩者之間共享一個密鑰。
數(shù)字簽名是一種能夠?qū)Φ谌竭M(jìn)行消息認(rèn)證,并能夠防止通信對象作出否認(rèn)的認(rèn)證技術(shù)。
數(shù)字簽名中也同樣會使用公鑰和私鑰組成的密鑰對,不過這兩個密鑰的用法和公鑰密碼是相反的,即用私鑰加密相當(dāng)于生成簽名,而用公鑰解密則相當(dāng)于驗(yàn)證簽名。

生成簽名和驗(yàn)證簽名.png

實(shí)現(xiàn)數(shù)字簽名使用的算法如下:

RSA

RSA是一種公鑰密碼算法,它的名字是由它的三位開發(fā)者,即Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母組成的(Rivest-Shamir-Adleman)。

用RSA生成簽名和驗(yàn)證簽名的過程可用下列公式來表述:

簽名 = 消息^D mod N

由簽名得到的消息 = 密文^E mod N
EIGamal

EIGamal方式是由Taher EIGamal設(shè)計(jì)的公鑰算法。利用了mod N 下求離散對數(shù)的困難度。EIGamal方式可以被用于公鑰密碼和數(shù)字簽名。

DSA

DSA(Digital Signature Algorithm)是一種數(shù)字簽名算法,是由NIST于1991年制定的數(shù)字簽名規(guī)范。
DSA是Scnorr算法與EIGammal方式的變體,只能被用于數(shù)字簽名。

ECDSA

ECDSA(Elliptic Curve Digital Signature Algorithm)是一種利用橢圓曲線密碼來實(shí)現(xiàn)的數(shù)字簽名算法。

Rabin方式

Rabin方式是由M.O.Rabin設(shè)計(jì)的公鑰算法。利用了在mod N下求平方根的困難度。Rabin方式可以被用于公鑰密碼和數(shù)字簽名。

用數(shù)字簽名既可以識別出篡改和偽裝,還可以防止否認(rèn),但是無法確認(rèn)用于驗(yàn)證簽名的公鑰屬于真正的發(fā)送者的。
要確認(rèn)公鑰是否合法,可以對公鑰施加數(shù)字簽名,這就是證書。

證書

公鑰證書(Public-Key Certificate,PKC)其實(shí)和駕照很相似,里面記有姓名、組織、郵箱、地址等個人信息,以及屬于此人的公鑰,并由認(rèn)證機(jī)構(gòu)(Certification Authority,CA)施加數(shù)字簽名。只要看到公鑰證書,我們就可以知道認(rèn)證機(jī)構(gòu)認(rèn)定該公鑰的確屬于此人。公鑰證書也簡稱為證書。
認(rèn)證機(jī)構(gòu)就是能夠認(rèn)定“公鑰確實(shí)屬于此人”并能夠生成數(shù)字簽名的個人或者組織。

消息發(fā)送者利用認(rèn)證機(jī)構(gòu)向消息接收者發(fā)送密文.png
X.509

X.509是一種證書生成和交換的標(biāo)準(zhǔn)規(guī)范。

PKI

PKI(Public-Key Infrastructure)是為了能夠更有效地運(yùn)用公鑰而制定的一系列規(guī)范和規(guī)格的總稱。X.509也是PKI的一種。

密鑰

各種不同的密鑰
1.對稱密碼的密鑰與公鑰密碼的密鑰
2.消息認(rèn)證碼的密鑰與數(shù)字簽名的密鑰
3.用于確保機(jī)密性的密鑰與用于認(rèn)證的密鑰
4.會話密鑰與主密鑰

當(dāng)我們訪問以 https:// 開頭的網(wǎng)頁時(shí),Web服務(wù)器和瀏覽器之間會進(jìn)行基于SSL/TLS的加密通信。在這樣的通信中所使用的密鑰是僅限于本次通信的一次性密鑰,下次通信時(shí)就不能使用了。像這樣每次通信只能使用一次的密鑰稱為會話密鑰(session key)。
相對于每次通信都更換的會話密鑰,一直被重復(fù)使用的密鑰稱為主密鑰(master key)。

5.用于加密內(nèi)容的密鑰與用于加密密鑰的密鑰

一般來說,加密的對象是用戶直接使用的消息(內(nèi)容),這樣的情況下所使用的密鑰稱為CEK(Contents Encrypting Key);相對地,用于加密密鑰的密鑰則稱為KEK(Key Encrypting Key)。
上面提到的會話密鑰都是被作為CEK使用的,而主密鑰則是被作為KEK使用的。

CEK與KEK.png
Diffe-Hellman密鑰交換

Diffe-Hellman密鑰交換是1976年由Whitfield Diffe和Martin Hellman共同發(fā)明的一種算法。使用這種算法,通信雙方通過交換一些可以公開的信息就能夠生成出共享的秘密數(shù)字,而這一秘密數(shù)字就可以被用作對稱密碼的密鑰。

Diffee-Hellman密鑰交換.png
橢圓曲線Diffe-Hellman密鑰交換

Diffe-Hellman密鑰交換是利用“離散對數(shù)問題”的復(fù)雜度來實(shí)現(xiàn)密鑰的安全交換的,如果對“離散對數(shù)問題”改為“橢圓曲線上的離散對數(shù)問題”,這樣的算法就稱為橢圓曲線Diffe-Hellman密鑰交換。
橢圓曲線Diffe-Hellman密鑰交換能夠用較短的密鑰長度實(shí)現(xiàn)較高的安全性。

基于口令的密碼(PBE)

基于口令的密碼(Password Based Encryption,PBE)就是一種根據(jù)口令生成密鑰并用該密鑰進(jìn)行加密的方法。其中加密和解密使用同一個密鑰。
其中密鑰(KEK)是由口令和鹽(由偽隨機(jī)數(shù)生成器生成的隨機(jī)數(shù))一起輸入的單向散列函數(shù)。
鹽是用來防御字典攻擊的。字典攻擊是一種事先進(jìn)行計(jì)算并準(zhǔn)備好候選密鑰列表的方法。

PBE加密.png
PBE解密.png

隨機(jī)數(shù)

隨機(jī)數(shù)的用處
  • 生成密鑰:用于對稱密碼和消息認(rèn)證碼。
  • 生成密鑰對:用于公鑰密碼和數(shù)字簽名。
  • 生成初始化向量(IV):用于分組密碼的CBC、CFB和OFB模式。
  • 生成nonce:用于防御重放攻擊以及分組密碼的CTR模式等。
  • 生成鹽:用于基于口令的密碼等。
隨機(jī)數(shù)的性質(zhì)
  • 隨機(jī)性(弱偽隨機(jī)數(shù))
  • 不可預(yù)測性(強(qiáng)偽隨機(jī)數(shù))
  • 不可重現(xiàn)性(真隨機(jī)數(shù))
隨機(jī)數(shù)生成器

通過硬件生成的隨機(jī)數(shù)列,是根據(jù)傳感器收集的熱量、聲音的變化等事實(shí)上無法預(yù)測和重現(xiàn)的自然現(xiàn)象信息來生成的。像這樣的硬件設(shè)備就稱為隨機(jī)數(shù)生成器。

偽隨機(jī)數(shù)生成器

而可以生成隨機(jī)數(shù)的軟件則稱為偽隨機(jī)數(shù)生成器。因?yàn)閮H靠軟件無法生成真隨機(jī)數(shù),因此要加上一個“偽”字。

SSL/TLS

SSL(Secure Sockets Layer,安全套接層)是1994年由網(wǎng)景公司(Netscape)設(shè)計(jì)的一種協(xié)議,并在該公司的Web瀏覽器上進(jìn)行了實(shí)現(xiàn)。隨后,很多Web瀏覽器都采用了這一協(xié)議,使其成為了事實(shí)上的行業(yè)標(biāo)準(zhǔn)。SSL已經(jīng)于1995年發(fā)布了3.0版本,但在2014年,SSL3.0協(xié)議被發(fā)現(xiàn)存在可能導(dǎo)致POODLE攻擊的安全漏洞,因此SSL3.0已經(jīng)不安全了。

TLS(Transport Layer Security ,傳輸層安全)是IETF在SSL3.0的基礎(chǔ)上設(shè)計(jì)的協(xié)議。在1999年作為RFC2246發(fā)布的TLS1.0,實(shí)際上相當(dāng)于SSL3.1。
2006年,TLS1.1以以RFC4346的形式發(fā)布,這個版本中增加了針對CBC攻擊的策略并加入了AES對稱加密算法。TLS1.2中新增了對GCM、CCM認(rèn)證加密的支持,此外還新增了HMAC-SHA256,并刪除了IDEA和DES,將偽隨機(jī)函數(shù)(PRF)改為基于SHA-256來實(shí)現(xiàn)。

SSL/TLS的工作

我們想要實(shí)現(xiàn)通過本地的Web瀏覽器訪問網(wǎng)絡(luò)上的Web服務(wù)器,并進(jìn)行安全通信。舉個例子來說就是,用戶希望通過Web瀏覽器向xx銀行發(fā)送信用卡號。在這里,我們有幾個必須要解決的問題。

(1)用戶的信用卡號和地址在發(fā)送到xx銀行的過程中不能被竊聽。
(2)用戶的信用卡號和地址在發(fā)送到xx銀行的過程中不能被篡改。
(3)確認(rèn)通信對方的Web服務(wù)器是真正的xx銀行。

在這里,(1)是機(jī)密性問題,(2)是完整性問題,(3)則是認(rèn)證的問題。
要確保機(jī)密性,可以使用對稱密碼。由于對稱密碼的密鑰不能被攻擊者預(yù)測,因此我們使用偽隨機(jī)數(shù)生成器來生成密鑰。若要將對稱密碼的密鑰發(fā)送給通信對象,可以使用公鑰密碼或者Diffie-Hellman密鑰交換。
要識別篡改,對數(shù)據(jù)進(jìn)行認(rèn)證,可以使用消息認(rèn)證碼。消息認(rèn)證碼是使用單向散列函數(shù)來實(shí)現(xiàn)的。
要對通信對象進(jìn)行認(rèn)證,可以使用對公鑰加上數(shù)字簽名所生成的證書。

SSL/TLS就是將對稱密碼、公鑰密碼、單向散列函數(shù)、消息認(rèn)證碼、偽隨機(jī)數(shù)生成器、數(shù)字簽名等技術(shù)相結(jié)合來實(shí)現(xiàn)安全通信的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 對稱加密: DES DES是1977年美國聯(lián)邦信息處理標(biāo)準(zhǔn)中使用的一種對稱密碼技術(shù),曾今被美國和其他國家政府銀行使...
    十三億少女夢丶閱讀 1,196評論 0 10
  • 本文主要介紹移動端的加解密算法的分類、其優(yōu)缺點(diǎn)特性及應(yīng)用,幫助讀者由淺入深地了解和選擇加解密算法。文中會包含算法的...
    蘋果粉閱讀 11,671評論 5 29
  • 這篇文章主要講述在Mobile BI(移動商務(wù)智能)開發(fā)過程中,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲、登錄驗(yàn)證這幾個方面涉及的加密...
    雨_樹閱讀 3,018評論 0 6
  • Guide to BluetoothSecurity原文 本出版物可免費(fèi)從以下網(wǎng)址獲得:https://doi.o...
    公子小水閱讀 8,743評論 0 6
  • 〇、序言 貨幣由于其天然屬性決定了其與安全不可分割的聯(lián)系,從最早的金庫、保險(xiǎn)柜、鏢局到后來的ATM機(jī)、運(yùn)鈔車;從存...
    怒馬2048閱讀 39,815評論 4 79

友情鏈接更多精彩內(nèi)容