混淆電路介紹
一、介紹
混淆電路是一種密碼學協議,由姚期智教授在80年代針對安全計算所提出的概念。其效果就是,當幾個通信方需要一起輸入某些數據,然後通過同一個函數計算出一個結果。但是通信的各方都不希望其他人知道自己的輸入是什麼,此時利用混淆電路協議即可完成目的。本文將簡單介紹混淆電路的協議內容。
二、基本協議內容
- 基本交互
- 混淆電路的生成
對於基本的電路,真值表如下:
然後給每一種輸入輸出對應一種密鑰,可以理解爲是一種映射,將原來的0/1輸入輸出對應到一個其他的標籤(可以是整數、字符串等)上。
真正發送過去的真值表還要再經過一個加密和一次混淆(也就是行換位置)
- 混淆電路的解密
Bob在接收到混淆電路後開始解密。Alice發送混淆電路的過程中也將Alice輸入對應的密鑰發送給Bob(Bob此時並不會發現Alice的真實輸入是什麼)。同時Alice也把Bob可以選擇的輸入對應的密鑰都發給了Bob,此時需要運行不經意傳輸協議,可以使得Bob從所有可能輸入對應的密鑰中選擇自己輸入對應的密鑰,且不會讓Alice知道Bob的選擇。Bob得到密鑰後對混淆電路真值表進行解密即可得到混淆電路的輸出。
- 不經意傳輸的適用
可以參考有關不經意傳輸的文章,我的上一篇文章不經意傳輸協議快速入門。
注意不經意傳輸應該不止一次通信,所以最上面基本交互的那種圖像只是一個基本的示意,不代表真正的傳輸交互輪數。