是否存在乙個函式,使得它的逆運算是容易求的,而它的逆運算的逆運算是難求的?

時間 2021-05-30 15:12:00

1樓:我真沒登出

存在的。

Rsa,私鑰加密,公鑰解密。

可以使用雙元法。

加密需要兩個數a,b,解密只需要ab。

ab可以公開,但a和b不能公開。

不能從ab來計算a和b。

a和b最好是比較奇怪的數字,把小數點去掉之後的整數最好有很多因子,做到不能在理想的時間內破解就好了。

2樓:undefined

你這裡有個很嚴重的問題,既然是Y值決定了抽卡結果,那麼函式G就直接告訴了我們「如果我想得到某張卡,那麼我需要怎樣的X」,而有了這個資訊,根據你前面的X的計算方法,玩家可以直接卡時間開包。

所以你真正想做的是公布F,然後令G難求,這個還是很容易的。

而廠商想要證明抽卡概率沒有作假,甚至不需要這樣,而是直接用大數定律即可。雖然單個玩家的資料不足以達到大數定律的要求,但所有玩家的資料是可以達到的。廠商只需要公布抽卡統計結果,讓玩家自己去檢驗概率即可。

防止統計作假的方法還是有很多的。

當然這只能證明概率沒有作假,而不能證明抽卡的公平性,也就是「其他人的卡池和你的卡池一樣」。但是,抽卡遊戲本來就不存在公平。

另外,大多數抽卡具有保底機制,這個保底機制意味著抽卡是「有狀態」的。廠商不太可能公布這個狀態的計算方法。

3樓:張家澍

有一種可驗證隨機函式,估計可以解決這個問題,但是我不是學這方面的,實在是看不懂原理。

網上找了乙個原理說明https://www.

4樓:w2014

我們先說原問題:

逆運算的逆運算就是F函式自己。

所以定義F為某個hash函式的逆即可。

但是這並不滿足題中要求,因為F不可計算。

口胡乙個做法,我們基於簡單的公鑰簽名演算法。

對於使用者提供的x,伺服器計算其簽名y=SIG(x)那麼使用者可以輕易驗證y是否為x的簽名。而再以hash(y)對10取模作為最終解,即可。

這個和您的描述的區別在於:F對於私鑰持有者是容易計算的,而對其它人是難計算的。

當然,乙個技術含量比較低的做法就是開箱子…伺服器生成乙個整數x,公布其hash。使用者猜x%10。之後伺服器公布答案。

5樓:蒙塔基的鋼蛋兒

你看下三角函式。如 sin x cos x是不是?

由x可以得出三角函式值,但是三角函式在R集內是沒有反函式的。

你已知三角函式值,有無數個可能值。

6樓:靈劍

不太明白,逆運算的逆運算不就是原始函式嗎,意思是說雖然這個原始函式也很容易計算,但是從公布的逆運算的形式推導不出來?不如從工程的角度上加一些難度,比如說只提供乙個反覆加密混淆的編譯好的程式,沒必要非得是數學上的吧,畢竟數學上就算成立,工程上不一定實用。而且的確跟你的這個需求也沒啥關係啊。

公開抽取保證公平,其實有個辦法是不一定非得全用這個使用者的輸入來生成結果嘛,你可以每個使用者的輸出是之前的乙個狀態數加上使用者這次的輸入產生的,然後這個輸入同時也更新了這個狀態,比如說最簡單的,輸出和狀態都更新成上個狀態和本次輸入的異或,為了防止所有使用者都不停輸入0可以規定輸入0無效。為了順序也可驗證,可以先從伺服器獲取時間戳,再提交這次想要使用的數。只要同時使用的人足夠多,並且大多數使用者都不參與合謀,輸出結果就是難以控制的,最後只要公布所有使用者的提交記錄就可以驗證,每個使用者可以自己驗證自己的提交記錄是否一致。

那麼可能還有槓精使用者覺得其中某些提交記錄是運營的程式自動插入用來調整輸出結果的,可以再做一些細節的調整,比如說獲取時間戳時同時返回已經提交的最後乙個編號,以及到目前為止的提交的某種hash,這時候你這次提交使用的狀態就鎖定了,然後你自己提交乙個隨機數上去和當前狀態異或,出來的不管是什麼結果都是你最後提交決定的,這就沒法抱怨了。

7樓:張子夜

函式的逆的逆不就是原函式本身嘛,這個函式顯然是不存在的。

不過你說的這個關於向玩家證明卡池概率和公示相等,應該是可以跟據對偶問題來處理。

8樓:星曆表

關注了。

這個函式設為f,它的逆是g,逆的逆是h。顯然有f=h。

但f和g都要好算,只有h很難算。

那算f的肯定有某種能加速f的計算的「作弊數」,而g的計算不需要用這個數。

我聯想到如果f和rsa有關,p和q相當於作弊數,算f需要用到p和q,而算g只需要用到它們的積pq,那h就會很難算。因為客戶端就算知道f的演算法,也必須分解pq得到p和q。

綜上,設f為rsa的私鑰加密,g為rsa的公鑰解密,滿足題意。

此類演算法在數字簽名,https證書上使用廣泛。

9樓:strangebits

這個使用場景的核心在於產生乙個使用者和服務端都認可的隨機數。

你提到的方案就是非對稱加密的過程。伺服器用自己的私鑰對x進行簽名,然後將簽名y傳送給使用者,使用者用公鑰驗證就行了。

然而這個過程裡服務端很容易就能作弊:服務端可以試著產生幾個簽名,然後選擇乙個對自己有利的簽名公開。

解決辦法是commitment scheme。簡單的說,由玩家和伺服器各自產生乙個隨機數,第一步互相交換隨機數的雜湊,第二步再互相交換隨機數。驗證對方的隨機數的雜湊確實是之前收到的雜湊,之後對這些隨機數取異或,做為雙方都同意的隨機數。

有時間再補充。。

10樓:

逆運算的逆運算不就是自己?

另外有了G為什麼還需要F?

直接x0=G(出貨)不就得了

最後 strongly one way function P≠NP

是否存在乙個函式,使得它的連續點集和間斷點集都在定義域上稠密,並且具有正測度?

從前有乙隻嗚喵 一點點粗淺的想法.根據第一位答主的想法繼續下去,希望找乙個函式 使得它在某乙個稠密的零測集上連續,儘管暫時還沒有思路,但是下面給出了乙個除去乙個零測集在一稠密集上處處不連續的例子,希望對這一問題能有一定的幫助。設 是乙個 的排列,並考慮函式 注意到它在任何乙個區間內都無界,因任何區間...

是否存在乙個無窮小函式使得自身積分後降階?

不存在主要過程分兩步 1 證明存在xn大於0且趨於0,使得 f xn 大於1 2 f x 對於任意x屬於 0,xn 考慮反證如果結論不成立,可以證明存在乙個單調遞減數列yn,f y n 1 大於2 n f x1 結合有界匯出矛盾 2 f絕對值在0到xn上小於等於2倍f xn 絕對值,因此f在0到xn...

是否存在乙個級數的 an使得任何其他級數,只要通項大於它的都發散,小於的都收斂

sukanka 顯然不存在,反證法,假結論成立,設 an收斂,則由已經知道的結論,有 an 1 n 和 an 1 n 都收斂,但是這和條件矛盾。故結論不成立 對於p級數,發散的條件是p 1,這時級數為調和級數,以對數階發散,調和級數再除以ln x 那麼與 等階發散,再處以ln ln x 那麼與 等階...