密碼學之公鑰私鑰

網絡應用中的密碼學之公鑰私鑰

簡單瞭解不對稱祕鑰

  • 一對由公鑰和私鑰組成的祕鑰對:
    • 公鑰可公開,由需要通信的對方持有
    • 私鑰保密,自己持有。
  • 一對公鑰和私鑰之間可進行加密解密的可逆操作:
    • 即公鑰加密的密文可用私鑰解密爲原文
    • 私鑰加密的密文可用公鑰解密爲原文
  • 在現有條件下,無法在有效時間內通過公鑰及密文原文等信息破解出私鑰
  • 假設一臺服務器A與客戶端B進行安全的加密的通信
    • 服務器A生成自己的祕鑰對(私鑰KeyASKey_A^S,公鑰KeyAPKey_A^P),且客戶端B持有服務器A的公鑰KeyAPKey_A^P
    • 客戶端B生成自己的祕鑰對(私鑰KeyBSKey_B^S,公鑰KeyBPKey_B^P),且服務端A持有客戶度B的公鑰KeyBPKey_B^P
    • 如何交換持有對方的公鑰先不談,如物理上地理位置較近可直接交換
  • 當客戶端B與服務端A通信時,可用對方服務端A的公鑰KeyAPKey_A^P加密信息,此加密過程保證只有A可用自己的私鑰解密此密文。
  • 再用自己的私鑰KeyBSKey_B^S加密上述密文,此加密過程可用於服務端驗證本信息由客戶端B發送。
  • 兩次加密可完成身份認證及信息加密。

應用

生成

  1. 利用PCG生成祕鑰官網鏈接
  2. 使用OpenSSL生成非對稱密鑰
  3. RSA加密與解密(Java實現)
  4. 在線生成
  5. Xshell生成
  6. 【go語言實現】:
    1. go語言實現:生成非對稱加密密鑰,簽名,驗證簽名
    2. golang實現RSA加密解密
    3. go加密算法:非對稱加密(三)–Elliptic

註冊證書

使用

下方有較詳細的解釋

網絡安全問題

  • 竊聽(eavesdrop): 竊聽信息
  • 插入(insert):主動在連接中插入信息
  • 假冒(impersonation):可以通過僞造(spoof)分組中的源地址(或者分組的任意其他字段)
  • 劫持(hijacking): 通過移除/取代發送發或者接收方“接管”(take over)連接
  • 拒絕服務DoS(denial of service): 阻止服務器爲其他用戶提供服務(e.g., 通過過載資源)

網絡安全的基本需求

  1. 機密性(confidentiality): 只有發送方與預定接收方能夠理解報文內容
    a. 發送方加密報文
    b. 接收方解密報文
  2. 身份認證(authentication): 發送方與接收方希望確認彼此的真實身份
  3. 信息完整性(message integrity):發送方與接收方希 望確保信息未被篡改(傳輸途中或者後期),發生篡改一定會被檢測到
  4. 可訪問與可用性(access and availability): 網絡服務 必須對被授權用戶可訪問與可用

解決方案之祕鑰加密

加密原理簡單示例:python之禪

s = """Gur Mra bs Clguba, ol Gvz Crgref

Ornhgvshy vf orggre guna htyl.
Rkcyvpvg vf orggre guna vzcyvpvg.
Fvzcyr vf orggre guna pbzcyrk.
Pbzcyrk vf orggre guna pbzcyvpngrq.
Syng vf orggre guna arfgrq.
Fcnefr vf orggre guna qrafr.
Ernqnovyvgl pbhagf.
Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.
Nygubhtu cenpgvpnyvgl orngf chevgl.
Reebef fubhyq arire cnff fvyragyl.
Hayrff rkcyvpvgyl fvyraprq.
Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.
Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.
Abj vf orggre guna arire.
Nygubhtu arire vf bsgra orggre guna *evtug* abj.
Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.
Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""

d = {}
for c in (65, 97):
    for i in range(26):
        d[chr(i+c)] = chr((i+13) % 26 + c)

print("".join([d.get(c, c) for c in s]))

凱撒密碼

在這裏插入圖片描述
密碼學基本概念
兩種加密方式:對稱祕鑰、不對稱祕鑰

對稱祕鑰

在這裏插入圖片描述

不對稱祕鑰

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

涉及的問題之祕鑰分發

祕鑰破解

在這裏插入圖片描述

報文完整性

數字簽名

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

公鑰認證中心

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

祕鑰生成與認證

在這裏插入圖片描述

你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,瞭解一下Markdown的基本語法知識。

Markdown編輯器新的改變介紹

我們對Markdown編輯器進行了一些功能拓展與語法支持,除了標準的Markdown編輯器功能,我們增加了如下幾點新功能,幫助你用它寫博客:

  1. 全新的界面設計 ,將會帶來全新的寫作體驗;
  2. 在創作中心設置你喜愛的代碼高亮樣式,Markdown 將代碼片顯示選擇的高亮樣式 進行展示;
  3. 增加了 圖片拖拽 功能,你可以將本地的圖片直接拖拽到編輯區域直接展示;
  4. 全新的 KaTeX數學公式 語法;
  5. 增加了支持甘特圖的mermaid語法1 功能;
  6. 增加了 多屏幕編輯 Markdown文章功能;
  7. 增加了 焦點寫作模式、預覽模式、簡潔寫作模式、左右區域同步滾輪設置 等功能,功能按鈕位於編輯區域與預覽區域中間;
  8. 增加了 檢查列表 功能。

功能快捷鍵

撤銷:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜體:Ctrl/Command + I
標題:Ctrl/Command + Shift + H
無序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
檢查列表:Ctrl/Command + Shift + C
插入代碼:Ctrl/Command + Shift + K
插入鏈接:Ctrl/Command + Shift + L
插入圖片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替換:Ctrl/Command + G

合理的創建標題,有助於目錄的生成

直接輸入1次#,並按下space後,將生成1級標題。
輸入2次#,並按下space後,將生成2級標題。
以此類推,我們支持6級標題。有助於使用TOC語法後生成一個完美的目錄。

如何改變文本的樣式

強調文本 強調文本

加粗文本 加粗文本

標記文本

刪除文本

引用文本

H2O is是液體。

210 運算結果是 1024.

插入鏈接與圖片

鏈接: link.

圖片: Alt

帶尺寸的圖片: Alt

居中的圖片: Alt

居中並且帶尺寸的圖片: Alt

當然,我們爲了讓用戶更加便捷,我們增加了圖片拖拽功能。

如何插入一段漂亮的代碼片

博客設置頁面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的 代碼片.

// An highlighted block
var foo = 'bar';

生成一個適合你的列表

  • 項目
    • 項目
      • 項目
  1. 項目1
  2. 項目2
  3. 項目3
  • 計劃任務
  • 完成任務

創建一個表格

一個簡單的表格是這麼創建的:

項目 Value
電腦 $1600
手機 $12
導管 $1

設定內容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants將ASCII標點字符轉換爲“智能”印刷標點HTML實體。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

創建一個自定義列表

Markdown
Text-to-HTML conversion tool
Authors
John
Luke

如何創建一個註腳

一個具有註腳的文本。2

註釋也是必不可少的

Markdown將文本轉換爲 HTML

KaTeX數學公式

您可以使用渲染LaTeX數學表達式 KaTeX:

Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通過歐拉積分

Γ(z)=0tz1etdt. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

你可以找到更多關於的信息 LaTeX 數學表達式here.

新的甘特圖功能,豐富你的文章

Mon 06Mon 13Mon 20已完成 進行中 計劃一 計劃二 現有任務Adding GANTT diagram functionality to mermaid
  • 關於 甘特圖 語法,參考 這兒,

UML 圖表

可以使用UML圖表進行渲染。 Mermaid. 例如下面產生的一個序列圖:

張三李四王五你好!李四, 最近怎麼樣?你最近怎麼樣,王五?我很好,謝謝!我很好,謝謝!李四想了很長時間,文字太長了不適合放在一行.打量着王五...很好... 王五, 你怎麼樣?張三李四王五

這將產生一個流程圖。:

鏈接
長方形
圓角長方形
菱形
  • 關於 Mermaid 語法,參考 這兒,

FLowchart流程圖

我們依舊會支持flowchart的流程圖:

Created with Raphaël 2.2.0開始我的操作確認?結束yesno
  • 關於 Flowchart流程圖 語法,參考 這兒.

導出與導入

導出

如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到 文章導出 ,生成一個.md文件或者.html文件進行本地保存。

導入

如果你想加載一篇你寫過的.md文件,在上方工具欄可以選擇導入功能進行對應擴展名的文件導入,
繼續你的創作。


  1. mermaid語法說明 ↩︎

  2. 註腳的解釋 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章