密碼學(xué)定義
密碼學(xué)是隱藏或編碼信息的過程,以便只有消息的預(yù)期對象才能讀取它。密碼學(xué)藝術(shù)已經(jīng)用于編碼消息數(shù)千年,并繼續(xù)用于銀行卡,計(jì)算機(jī)密碼和電子商務(wù)。
現(xiàn)代加密技術(shù)包括支持加密和解密信息的算法和密碼,例如 128 位和 256 位加密密鑰?,F(xiàn)代密碼,如高級加密標(biāo)準(zhǔn)(AES),被認(rèn)為幾乎牢不可破。
常見的加密定義是編碼信息的做法,以確保只有為其編寫消息的人才能讀取和處理信息。這種網(wǎng)絡(luò)安全實(shí)踐,也稱為密碼學(xué),結(jié)合了計(jì)算機(jī)科學(xué)、工程和數(shù)學(xué)等各種學(xué)科,以創(chuàng)建隱藏消息真正含義的復(fù)雜代碼。
密碼學(xué)可以追溯到古埃及象形文字,但對于保護(hù)傳輸中的通信和信息以及防止其被不受信任的各方讀取仍然至關(guān)重要。它使用算法和數(shù)學(xué)概念,通過加密密鑰和數(shù)字簽名等技術(shù)將消息轉(zhuǎn)換為難以破譯的代碼,以保護(hù)數(shù)據(jù)隱私、信用卡交易、電子郵件和網(wǎng)頁瀏覽。
密碼學(xué)的重要性
密碼學(xué)對于保護(hù)數(shù)據(jù)和用戶、確保機(jī)密性以及防止網(wǎng)絡(luò)犯罪分子攔截敏感的公司信息仍然很重要。加密的常見用途和示例包括:
隱私和保密
個(gè)人和組織每天都使用加密技術(shù)來保護(hù)他們的隱私,并對他們的對話和數(shù)據(jù)保密。加密通過使用只有發(fā)件人和收件人知道的密鑰的算法來加密已發(fā)送的消息,從而確保機(jī)密性。一個(gè)常見的例子是消息傳遞工具WhatsApp,它加密人與人之間的對話,以確保他們不會(huì)被黑客入侵或攔截。
加密還可以保護(hù)瀏覽,例如使用虛擬專用網(wǎng)絡(luò) (VPN),它使用加密隧道、非對稱加密以及公鑰和私鑰共享密鑰。
身份驗(yàn)證
與密碼學(xué)如何確認(rèn)消息的真實(shí)性類似,它也可以證明發(fā)送和接收的信息的完整性。加密可確保信息在存儲(chǔ)過程中或在發(fā)件人和預(yù)期收件人之間傳輸過程中不會(huì)更改。例如,數(shù)字簽名可以檢測軟件分發(fā)和金融交易中的偽造或篡改。
不可否認(rèn)性
密碼學(xué)確認(rèn)消息發(fā)送者的責(zé)任和責(zé)任,這意味著他們以后在創(chuàng)建或傳輸信息時(shí)不能否認(rèn)他們的意圖。數(shù)字簽名就是一個(gè)很好的例子,因?yàn)樗鼈兇_保發(fā)件人不能聲稱他們創(chuàng)建的消息、合同或文檔是欺詐性的。此外,在電子郵件不可否認(rèn)性中,電子郵件跟蹤可確保發(fā)件人無法拒絕發(fā)送郵件,收件人無法拒絕接收郵件。
密鑰交換
密鑰交換是用于在發(fā)件人和收件人之間共享加密密鑰的方法。
加密算法的類型
有許多類型的加密算法可用。它們的復(fù)雜性和安全性各不相同,具體取決于通信類型和所共享信息的敏感性。
密鑰加密
密鑰加密(也稱為對稱加密)使用單個(gè)密鑰來加密和解密消息。發(fā)件人使用密鑰加密純文本消息,并將其發(fā)送給收件人,然后收件人使用相同的密鑰對其進(jìn)行解密并解鎖原始純文本消息。
流密碼
流密碼隨時(shí)處理單個(gè)位或字節(jié),并使用反饋機(jī)制不斷更改密鑰。自同步流密碼通過識(shí)別解密在位密鑰流中的位置,確保解密過程與加密過程保持同步。同步流密碼獨(dú)立于消息流生成密鑰流,并在發(fā)送方和接收方生成相同的密鑰流函數(shù)。
分組密碼
分組密碼一次加密一個(gè)固定大小的數(shù)據(jù)塊。當(dāng)使用相同的密鑰時(shí),它將始終將明文數(shù)據(jù)塊加密為相同的密文。一個(gè)很好的例子是Feistel密碼,它使用密鑰擴(kuò)展,排列和替換的元素在密碼中造成巨大的混亂和擴(kuò)散。
加密和解密的階段即使不相同,也是相似的,這意味著反轉(zhuǎn)密鑰可以減少在軟件或硬件中實(shí)現(xiàn)密碼所需的代碼大小和電路。
公鑰加密
公鑰加密(PKC)或非對稱加密使用數(shù)學(xué)函數(shù)來創(chuàng)建異常難以破解的代碼。它使人們能夠通過不安全的通信通道進(jìn)行安全通信,而無需密鑰。例如,代理重新加密使代理實(shí)體能夠?qū)?shù)據(jù)從一個(gè)公鑰重新加密到另一個(gè)公鑰,而無需訪問明文或私鑰。
常見的PKC類型是乘法與因式分解,它采用兩個(gè)大的素?cái)?shù)并將它們相乘以創(chuàng)建一個(gè)巨大的結(jié)果數(shù)字,這使得破譯變得困難。PKC 的另一種形式是冪與對數(shù),例如 256 位加密,它增加了保護(hù),以至于即使是每秒能夠搜索數(shù)萬億種組合的計(jì)算機(jī)也無法破解它。
PKC 的通用形式使用兩個(gè)在數(shù)學(xué)上相關(guān)的鍵,但不能確定任何一個(gè)鍵。簡而言之,發(fā)件人可以使用其私鑰加密其明文消息,然后收件人使用發(fā)件人的公鑰解密密文。
用于數(shù)字簽名和密鑰交換的常見 PKC 算法包括:
RSA
RSA 是第一個(gè)并且仍然是最常見的 PKC 實(shí)現(xiàn)。該算法以其麻省理工學(xué)院數(shù)學(xué)家Ronald Rivest,Adi Shamir和Leonard Adleman的名字命名,用于數(shù)據(jù)加密,數(shù)字簽名和密鑰交換。它使用一個(gè)大數(shù),這是分解兩個(gè)選定的素?cái)?shù)的結(jié)果。攻擊者不可能計(jì)算出主要因素,這使得RSA特別安全。
ECC
(Elliptic Curve Cryptography)ECC是一種基于密碼學(xué)中使用橢圓曲線的 PKC 算法。它專為計(jì)算能力或內(nèi)存有限的設(shè)備而設(shè)計(jì),用于加密互聯(lián)網(wǎng)流量。ECC的常見用途是嵌入式計(jì)算機(jī),智能手機(jī)和比特幣等加密貨幣網(wǎng)絡(luò),它消耗RSA所需存儲(chǔ)空間和帶寬的10%左右。
數(shù)字簽名算法 (DSA)
DSA (Digital Signature Algorithm)是一種允許在郵件身份驗(yàn)證中使用數(shù)字簽名的標(biāo)準(zhǔn)。它由美國國家標(biāo)準(zhǔn)與技術(shù)研究院 (NIST) 于 1991 年推出,以確保創(chuàng)建數(shù)字簽名的更好方法。
基于身份的加密 (IBE)
IBE(Identity-based Encryption)國際教育局是一個(gè)PKC系統(tǒng),它允許根據(jù)用戶的身份(如電子郵件地址)從唯一信息中計(jì)算公鑰。然后,受信任的第三方或私鑰生成器使用加密算法來計(jì)算相應(yīng)的私鑰。這使用戶能夠創(chuàng)建自己的私鑰,而無需擔(dān)心分發(fā)公鑰。
公鑰加密標(biāo)準(zhǔn) (PKCS)
所有 PKC (Public Key Cryptography Standards )算法和使用都受 RSA Data Security 設(shè)計(jì)的一組標(biāo)準(zhǔn)和準(zhǔn)則的約束。具體如下:
PKCS #1 或 RFC 8017:RSA 加密標(biāo)準(zhǔn)
PKCS #3:迪菲-赫爾曼密鑰協(xié)議標(biāo)準(zhǔn)
PKCS #5 和 PKCS #5 v2.1 或 RFC 8018:基于密碼的密碼學(xué)標(biāo)準(zhǔn)
PKCS #6:擴(kuò)展證書語法標(biāo)準(zhǔn)(由 X.509v3 取代)
PKCS #7 或 RFC 2315:加密消息語法標(biāo)準(zhǔn)
PKCS #8 或 RFC 5958:私鑰信息語法標(biāo)準(zhǔn)
PKCS #9 或 RFC 2985:選定的屬性類型
PKCS #10 或 RFC 2986:認(rèn)證請求語法標(biāo)準(zhǔn)
PKCS #11:加密令牌接口標(biāo)準(zhǔn)
PKCS #12 或 RFC 7292:個(gè)人信息交換語法標(biāo)準(zhǔn)
PKCS #13:橢圓曲線加密標(biāo)準(zhǔn)
PKCS #14:偽隨機(jī)數(shù)生成標(biāo)準(zhǔn)
PKCS #15:加密令牌信息格式標(biāo)準(zhǔn)
Diffie-Hellman and Key Exchange Algorithm (KEA)
Diffie-Hellman算法由斯坦福大學(xué)教授Martin Hellman和他的研究生Whitfield Diffie于1976年設(shè)計(jì),他們被認(rèn)為負(fù)責(zé)引入PKC概念。它用于秘密密鑰交換,需要兩個(gè)人就一個(gè)大的質(zhì)數(shù)達(dá)成一致。