初識零知識證明
畢業論文要用到零知識證明,這個聽起來很酷的名詞,看起來也有點彆扭。請教一位老師,他說這個問題比較難,曾經研究了一年半但都沒有太大收穫,建議我在做論文這麼短的時間內不要去碰它,先保證論文能做完並能夠答辯透過。在網上找了一下,雖然文字上說的也不難理解,但真正做起來應該難度是很大的。
所謂零知識證明,指的是示證者在證明自己身份時不洩露任何資訊,驗證者得不到示證者的任何私有資訊,但又能有效證明對方身份的一種方法。比如:
1)A要向B證明自己擁有某個房間的鑰匙,假設該房間只能用鑰匙開啟鎖,而其他任何方法都打不開。這時有2個方法:(一)A把鑰匙出示給B,B用這把鑰匙開啟該房間的鎖,從而證明A擁有該房間的正確的鑰匙。(二)B確定該房間內有某一物體,A用自己擁有的鑰匙開啟該房間的門,然後把物體拿出來出示給B,從而證明自己確實擁有該房間的鑰匙。後面這個方法屬於零知識證明。好處在於在整個證明的過程中,B始終不能看到鑰匙的樣子,從而避免了鑰匙的洩露。
2)A擁有B的公鑰,A沒有見過B,而B見過A的照片,偶然一天2人見面了,B認出了A,但A不能確定面前的人是否是B,這時B要向A證明自己是B,也有2個方法。(一)B把自己的私鑰給A,A用這個私鑰對某個資料加密,然後用B的公鑰解密,如果正確,則證明對方確實是B。(二)A給出一個隨機值,B用自己的私鑰對其加密,然後把加密後的資料交給A,A用B的公鑰解密,如果能夠得到原來的隨機值,則證明對方是B。後面的方法屬於零知識證明。
3)有一個缺口環形的長廊,出口和入口距離非常近(在目距之內),但走廊中間某處有一道只能用鑰匙開啟的門,A要向B證明自己擁有該門的鑰匙。採用零知識證明,則B看著A從入口進入走廊,然後又從出口走出走廊,這時B沒有得到任何關於這個鑰匙的資訊,但是完全可以證明A擁有鑰匙。
以上寫得很生動,闡明零知識最最基本的原理,但真正在資訊保安上用起來要牽扯到很多理論的東西。越是難的東西,好像就越有想去了解它的慾望,不管我最後用不用它,但還是很想深入地去研究一下它。
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7406370/viewspace-977924/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 帶你走進零知識證明
- 零知識證明: Tornado Cash 專案學習
- 什麼是零知識證明 (Zero Knowledge Proof)?
- 零知識證明的最新發展和應用
- 零知識證明初見
- 詳細講解:零知識證明 之 zk-SNARK 開篇
- 零知識證明在隱私保護和身份驗證中的應用
- 零知識證明與同態加密:隱私計算的雙劍加密
- 詳細講解:零知識證明 之 ZCash 完整的匿名交易流程
- CSS 基礎知識 初識CSS
- 初識Java Java基礎知識Java
- 初識python必知的6個知識點Python
- 區塊鏈交易隱私如何保證?華為零知識證明技術實戰解析區塊鏈
- Maven知識記錄(一)初識Maven私服Maven
- 【隱私計算筆談】MPC系列專題(六):零知識證明和位元承諾
- IdentityServer4系列 | 初識基礎知識點IDEServer
- 【知識分享】 伺服器基礎知識【初學者必看】伺服器
- Flutter小知識-- widget初窺Flutter
- 初學Java該學哪些知識?這6大知識必學Java
- Web 前置知識——Git 和 GitHub:① Git、GitHub初認識WebGithub
- 前端零碎知識點前端
- 鴻蒙零散知識鴻蒙
- 構建知識圖譜-初學
- 從零玩轉jQuery-初識jQueryjQuery
- 從零搭建一個IdentityServer——初識OpenIDConnectIDEServer
- 初識ABP vNext(1):開篇計劃&基礎知識
- 初識python你應該知道的6個知識點!Python
- Java入門知識_Java初學者須知Java
- 海明碼(Hamming Code)的知識點
- Docker 必知必會1----初識Docker
- 從零學腳手架(二)---初識webpackWeb
- wifi認證的相關知識WiFi
- 零碎知識點記事本
- 9.2 什麼是權威證明共識
- 跳出初學MySQL知識的原理整理(一)MySql
- 前端-基礎知識體系(初級-上)前端
- 前端-基礎知識體系(初級-下)前端
- 認證授權方案之授權初識
- 知識圖譜入門——知識表示與知識建模