有哪些方法可以讓其他人知道我擁有的秘密,且可以通過驗證加以證明,卻不必公布我擁有的秘密內容?

時間 2021-05-30 23:08:25

1樓:陳子霆

物理狗來答

在量子資訊中,這是量子位元承諾問題(quantum bit commitment)

經典密碼術中應該也有類似的問題,不過我不太清楚(逃

2樓:中禪寺三夜

不請自來 ,這個問題只用密碼學很常見的加密方式就好了呀

我想樓主的問題是不是可以簡化為這個模型: Alice想要給Bob傳送資訊(秘密),除了Bob之外Alice不想任何人知道該資訊的內容(不公開),Bob則想要知道Alice的資訊是不是真實的是由Alice發出而非其他人偽造(獲得秘密且知道秘密是Alice的)。

密碼學裡常用的方法:非對稱加密(RSA)+對稱加密(DES)來完成具體見下圖:

(sourceA為傳送方,即Alice或者你自己。sourceB為接收方,即Bob或者你想要的那個人知道你的秘密[你朋友])

過程:原文(M)經過hash雜湊, 使用Alice的私鑰(kra)加密,密文包與明文一起打包壓縮成報文包,再對壓縮包使用會話金鑰(ks)加密形成EC包,同時,ks使用Bob的公鑰(kub)進行加密,再與EC一起打包成密文包在網路上傳送。

Bob接受到密文包,先使用自己的金鑰krb解密得到ks,再用ks解密EC得到DC,DC中包含的就是壓縮後的報文包對報文包解壓(解壓縮)得到乙個密文和乙個明文包,使用Alice的公鑰解密密文包,再反hash解密出來的包,與明文對比是否是Alice發的。

至此完成傳輸,由於非對稱加密的性質,公私鑰對只要Alice(你)和Bob(你的朋友)的私鑰只有你們自己知道,那麼就可以實現你的訊息只能被你的朋友知道,而且你的朋友肯定那個訊息是你發的(最後對比結果相同)。

3樓:硫氯

公鑰私鑰密碼體系(例如最常用的RSA秘鑰系統)。

擁有公鑰的人可以用公鑰加密報文。擁有私鑰的人可以用私鑰解密報文。

乙個人a要向b證明他有私鑰,可以讓人用公鑰加密一段報文給他。他來解密,返回解密後的報文給b。總能解密正確就證明他有私鑰。

RSA演算法:

4樓:

這不就是非對稱加密嗎,你上網的時候離不開他。比如你用指紋支付的時候,支付寶並不能得到你的指紋資料,但是它知道你的指紋是可信的。

5樓:LLLBK

舉個例子。

假如你有乙個紅綠色盲(看紅看綠是完全一樣的)朋友,他在商場裡買了兩隻除了顏色以外一模一樣的襪子,乙隻紅色乙隻綠色。顯然,他自己不可能知道這兩隻襪子的顏色不同,在他看來,這兩隻襪子就是完全一樣的。

然而,色覺正常的你,想說服他讓他知道這兩隻襪子確實是不一樣的。你該怎麼做?

答: 讓他給襪子編號1和2,然後讓你知道他給每只襪子的編號。然後隨機抽乙隻襪子問你這是幾號襪子。多次重複問你。

如果按他的理解,這襪子完全一樣,那你是不可能準確區分1和2的,即使區分對了也是瞎矇的。但如果他問了很多很多次,你每次都區分對了,那他就會相信,這兩隻襪子確實不一樣。

在例子裡面,對於他來說,你擁有乙個秘密「這兩隻襪子不一樣」。並且你沒有直接告訴他「我知道這兩隻襪子不一樣」,但是你通過上述的流程不斷地驗證並使得他相信了「這兩隻襪子不一樣」。這就達到了題目中的要求。

這是乙個互動式證明的例項。與邏輯證明不一樣的是,邏輯證明的目標在於邏輯地得出乙個命題,而互動式證明的目標在於讓對方相信乙個命題。因此你可以完全不告訴對方你知道什麼命題,但可以通過在你們之間的互動過程來讓他相信這個命題。

6樓:Qian Chen

詳細的可以查詢Zero-knowledge proof(Zero-knowledge proof).

分為interactive 和non-interactive(NIZK: Non-interactive zero-knowledge proof)。顧名思義non-interactive 就是不需要像阿里巴巴那樣多次重複。

只需要提供一次證明就可以。不存在互動。

其中interactive 的很多。存在從interactive 到non-interactive 的一般性轉換(參見 fiat-shamir 變換)。但是,這種變換基於random oracle 實現。

基於一般假設(非random oracle 的)現在基本只存在一種,就是Groth-Sahai proof (Cryptology ePrint Archive: Report 2007/155).

7樓:Bright0574

如果你的秘密以後還是要公開,只是現在不公開的話,可以先把你的秘密寫成乙個文件,Hash之,公布Hash值。日後公開文件的時候,別人可以通過文件算出同樣的Hash值,這樣就可以證明你公布Hash值的時候就已經擁有此文件。

8樓:貓尾巴被踩

謝要不能很確定題主的思路,但是按照題主的舉例,我們平日生活中所接觸的大多數因果關係都是秘密,普通人沒有精力也不覺得有必要了解其中內部的結構和本質

最簡單的,你用的手機電腦電視,你了解其中的原理嗎,各種軟體以及各種言論、主義、思想,大多數知識我們只知道應用,而並非了解內部的專家,即便是專家也還會繼續研究其中的深層秘密

我們都處於一堆無限的秘密之中,至於要讓別人知道你掌握了什麼,那只需給別人看結果就可以了,不過更多時候人們是類似魔術師般使用騙術,甚至像網路謠言一樣使用語言蠱惑,鏈結果都不需要給,因為壓根沒有那樣的結果,只是虛構的秘密

老闆不想讓其他人知道他的專案,所以讓我幫他代簽乙份合同,請問我需要擔負合同的責任嗎?

法眼察001 風險很大。你和他親戚成立新公司,雖然是你老闆租的地或者出的錢,但工商資訊顯示的股東是你跟他的親戚,其他人不知道你老闆的存在,後期新公司籤的合同如果出了問題,是需要這個新公司承擔責任的,如果這個新公司承擔不了責任,那麼你作為股東是要在你出資額範圍內承擔連帶責任。謹慎考慮,三思而行。 王帆...

我想買一台外星人電腦,如何讓其他人知道我是真的很認真的這樣決定的

葵葵葵阿嚏 你都要上大學了,說明有自由時間了,你完全可以去打工啊,兼職賺錢,幾個月就能賺回來了。到時候不僅你父母對你刮目相看,也能體現你真的很認真。如果真的等不了太長時間,你可以先打兩個月的工,不夠的錢向父母要。相信他們不僅很欣慰,更大可能地也會把錢給你。他們會覺得你長大了,慢慢懂事了,今後會更多地...

我想問問有什麼不吵到其他人的辦法而讓我起床的辦法,我比較難吵醒。或者有什麼好推薦的鬧鐘,振動的。?

心裡把第二天醒來要做的事,當成重要的事,自然而然,心情緊張,就容易醒。每次和朋友約好第二天去玩,雖然定了鬧鐘,但是會比鬧鐘醒的早 藍胖子 1.早睡 2.鬧鐘震動 3.睡覺時窗簾不要全部關上 4.睡覺前喝點水,也許第二天很早就會被尿憋醒5.給自己做心理建設,制定早起目標,如果你想做,其實很多事情你都可...