密碼學I:什麼是密碼學
02-04
本文章原為Markdown所寫,請訪問作者博客以獲得更佳閱讀體驗。
課程地址請見Coursera。
密碼學的核心
- 安全密鑰的構造
- 在協議結束時,兩方均能獲得一個只有通信雙方知道的密鑰。
- 通信雙方均能確信自己是在和對方通信。(而不是和其它什麼人通信)
- 安全通信
- 使用密鑰加密的信息是絕對安全且可信的。
- 個人理解:即 密鑰安全 ≡ 信息安全 ,密鑰可信完整 ≡ 信息可信完整
關鍵:密碼學應保證信息的安全性和完整性。
但是密碼學還能做到更多
- 數字簽名
- 關鍵:基於內容的簽署函數
- 個人理解:即內容(文本)不同或密鑰(特徵)不同,得到的簽名都不同。
- 匿名通信
- Mixnet:通過多重代理實現通信雙方的互相不可知或單方可知
- 即 發信人不知道收信人,收信人也不知道發信人,代理伺服器不知道「發信人在和收信人通信」。
- 或 發信人知道收信人,但 收信人不知道發信人,代理伺服器不知道「發信人在和收信人通信」。
- 匿名電子貨幣
- 收款人不知道付款人(付款人匿名)
- 阻止付款人將 一單位貨幣 非法拷貝多次以得到 單位貨幣
- 關鍵:當一單位電子貨幣被消費一次,則付款人匿名;但若一單位電子貨幣被消費多次(出現了非法拷貝),則付款人信息被公開。
協議
安全多方計算
- 保證「外界只知道輸出的結果,而不知道用戶的輸入(因為可能包含不應透露的信息)」?
- 通常情況下,這是對進行計算,公布的計算結果且保證不被泄露。
- 「一種較呆板、不安全的方法」:找到一個「可信機構」,將輸入交給可信機構,由可信機構計算並輸出結果。但你需確保可信機構是可信的。(因為可信機構能夠掌握這些 「不應被泄露」 的輸入)
- 密碼學中非常中心的理論:如果任何計算能通過將該計算交給「可信機構」計算來完成,那麼該計算不依賴「可信機構」也一定能完成。
- 可信機構一定不必須。
關鍵:各個參與者之間互相建立通信,通過某種協議,使得在計算結束後,每個參與者只知道自己的信息和計算結果。
密碼學的「魔法」
私密外包計算
- 搜索
- 通信發起方將加密後的信息傳送給接收方,接收方可以依據已經加密後的信息進行搜索運算並返回搜索結果,但接收方不知道信息的實際內容(只知道加密後的內容)
- 接收方能對加密後的信息進行特定運算,但接收方不知道信息本身。
零知識證明
通信發起方能夠向接收方證明「我擁有」,並且接收方能夠確信「發起方擁有」,但是接收方不知道是什麼。
一門嚴謹的科學
三個步驟
- 給出一個「威脅模型」
- 攻擊者會對數字簽名的「可靠性(不可偽造)」發起攻擊
- 證明「任何需要通過方案去破解系統的攻擊者都能解決難題」
- 任何攻擊者要攻擊數字簽名的可靠性必須能夠解決因子整數分解
- 證明難題是「不可解決」的
- 因子整數分解是普遍認為不可解的
- 最終證明:該威脅模型下沒有一種方法能夠攻破體系
- 該體系在該威脅模型下是安全的
本節完
推薦閱讀:
※實用密碼學工具——Digital Signature
※在讀密碼學英文文獻的時候,總是會遇到一些專業辭彙或短語搭配,但是上網查找又查不到,有什麼好辦法呢?
※Don't Panic! KRACK 沒你想像的那麼糟
※軍事級加密演算法有哪些?
※【科普】白盒密碼技術