加密類型及相關(guān)算法

加密算法與SSL及創(chuàng)建私有CA

標(biāo)簽(空格分隔): Linux 運(yùn)維 加密解密 算法


三個(gè)維度驗(yàn)證數(shù)據(jù)

  • 機(jī)密性: 其安全依賴算法與密鑰
  • 完整性: 單向加密保證
  • 身份驗(yàn)證: 也稱來源合法性 私鑰加密公鑰解密保證

加密算法

對稱加密: 加密與解密都通過同一種轉(zhuǎn)換規(guī)則(即密鑰).保證了數(shù)據(jù)的機(jī)密性 (DES 56位 3DES AES Blowfish)示例如下:

 加密過程: plaintext --> 密鑰 --> ciphertext
 解密過程: ciphertext --> 密鑰 --> plaintext

單向加密: 提取數(shù)據(jù)特征碼(即16進(jìn)制的指紋).保證了數(shù)據(jù)的完整性 (MD4 MD5 SHA1 SHA192 SHA256 SHA384 CRC-32)示例如下:

A: plaintext:footprint --> B

單向加密的幾個(gè)特性:

  • 輸入一樣,輸出必然相同
  • 雪崩效應(yīng),輸入的微小改變,將會引起結(jié)果的巨大改變
  • 定長輸出,無論原始數(shù)據(jù)是多大,結(jié)果大小都是相同的
  • 不可逆,無法根據(jù)特征碼還原原來的數(shù)據(jù)

Diffie-Hellman協(xié)議 密鑰交換(協(xié)商生成密碼)(但無法解決身份驗(yàn)證)

A --> B
p,g (大素?cái)?shù),生成數(shù))都是公開的
A:x (A私有)
B:y (B私有)
A:  g^x%p --發(fā)送--> B
B:  g^y%p --發(fā)送--> A

A得到 (g^y%p),然后計(jì)算: (g^y%p)^x = g^xy%p
B得到 (g^x%p),然后計(jì)算: (g^x%p)^y = g^xy%p(即密鑰)   

公鑰加密(也稱非對稱加密算法)RSA DSA ELGamla

密鑰對:公鑰 私鑰
密鑰對:公鑰(由私鑰生成)/ 私鑰(非常長)

  • 發(fā)送方用自己的私鑰加密數(shù)據(jù),可以實(shí)現(xiàn)身份驗(yàn)證(即數(shù)據(jù)來源合法性)。
  • 發(fā)送方用對方的公鑰加密數(shù)據(jù),可以實(shí)現(xiàn)數(shù)據(jù)的機(jī)密(安全)性。
    公鑰加密使用場景因?yàn)楣€加密解密時(shí)速度太慢所以很少用來加密數(shù)據(jù),主要只用其保證數(shù)據(jù)的機(jī)密性即身份驗(yàn)證。
公鑰加密過程

如上圖,數(shù)據(jù)的完整性與來源合法性都得到了保證,但不能保證文件的機(jī)密性.但此圖的基礎(chǔ)是bob需要得到Alice的公鑰,而Alice的公鑰又需要通過網(wǎng)絡(luò)傳輸給bob,如何解決這個(gè)雞生蛋蛋生雞的問題?這又引入了第三方機(jī)構(gòu)(發(fā)證)來實(shí)現(xiàn)了.如現(xiàn)實(shí)生活中公安局給你發(fā)身份證,民證局給你發(fā)結(jié)婚/離婚證等一樣.

最佳(安全)數(shù)據(jù)傳輸方式:

由于非對稱加密(密鑰對)只做身份驗(yàn)證,那數(shù)據(jù)的機(jī)密性如何解決呢?方式如下(假設(shè)A傳數(shù)據(jù)data給B)
1.A借助于第三方機(jī)構(gòu)的公證(如現(xiàn)實(shí)中的公安局等具有公信力的機(jī)構(gòu))將自己的公鑰發(fā)送給這個(gè)機(jī)構(gòu)。這個(gè)發(fā)證機(jī)關(guān)也有自己的密鑰對,會用其私鑰對A的公鑰做加密以生成一個(gè)完整證書。 然后A將“公證”過的公鑰發(fā)送給B,B用公證機(jī)關(guān)的公鑰解密即可確定A發(fā)送過來的公鑰是否有問題。反之亦然,B也通過相同的方式拿到A的公鑰。雙方都拿到對方的公鑰的同時(shí)通過ike協(xié)議生成對稱密鑰(dcmy)
2.A用單向加密算法給其生成的數(shù)據(jù)data加密生成特征碼(tzm)。數(shù)據(jù)完整性驗(yàn)證
3.A用自己的私鑰給這特征碼加密這段特征碼(tzm)。 身份驗(yàn)證
4.A再用對稱密鑰(dcmy)將data與tzm整體再加密。
4.A將數(shù)據(jù)data與加密過的特征碼再傳給B。

PKI: Public Key Infrastructure
CA: Certificate Authority
證書常見的格式: x509 pkcs12
x509:
公鑰及其有效期限
證書的合法擁有者
證書該如何被使用
CA的信息
CA簽名的校驗(yàn)碼

SSL: Secure Socket Layer 是介于應(yīng)用層與傳輸層的一層協(xié)議或庫
iso制訂的TLS(Transport Layer Security)功能與SSL類似.

SSL會話示意圖

OpenSSL(SSL的開源實(shí)現(xiàn))

組成部分:

libcrypto: 加密庫
libssl: TLS/SSL的實(shí)現(xiàn),基于會話的實(shí)現(xiàn)了身份認(rèn)證 數(shù)據(jù)機(jī)密性和會話完整性的TLS/SSL庫
openssl命令: 多用途,可以實(shí)現(xiàn)私有證書頒發(fā)機(jī)構(gòu)

未完待續(xù)

最后編輯于
?著作權(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)容

  • 互聯(lián)網(wǎng)的通信安全,建立在SSL/TLS協(xié)議之上。 本文簡要介紹SSL/TLS協(xié)議的運(yùn)行機(jī)制。文章的重點(diǎn)是設(shè)計(jì)思想和...
    拉肚閱讀 2,985評論 0 6
  • 公鑰密碼系統(tǒng)及RSA公鑰算法 本文簡單介紹了公開密鑰密碼系統(tǒng)的思想和特點(diǎn),并具體介紹了RSA算法的理論基礎(chǔ),工作原...
    火狼o閱讀 4,419評論 2 15
  • 原文地址 http://blog.csdn.net/u012409247/article/details/4985...
    0fbf551ff6fb閱讀 3,681評論 0 13
  • 一、作用 不使用SSL/TLS的HTTP通信,就是不加密的通信。所有信息明文傳播,帶來了三大風(fēng)險(xiǎn)。 (1)竊聽風(fēng)險(xiǎn)...
    XLsn0w閱讀 11,013評論 2 44
  • 平水韻:七陽 一代興衰應(yīng)有數(shù),百年富貴卻無常??v觀上下五千載,多少寒家生帝王。
    傅逸塵閱讀 575評論 4 14

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