在概率事件中確定命中用戶的方法及裝置的制造方法
【技術領域】
[0001]本發明涉及計算機領域,具體而言,涉及一種在概率事件中確定命中用戶的方法及裝置。
【背景技術】
[0002]非對稱加密(asymmetric cryptography),亦稱為公開密鑰加密(public-keycryptography),是一種密碼學算法類型。在這種密碼學方法中,需要一對密鑰,其中,稱公開的密鑰為公鑰,而不公開的密鑰為私鑰。這兩個密鑰之間是數學相關的,當特定用戶采用特定密鑰對需要加密的信息進行加密后,只能使用該用戶的解密密鑰才能夠對已經加密的信息進行解密。然而,如果僅掌握公鑰和私鑰其中的一個,并不能計算出另外一個。因此,如果僅公開一對密鑰中的一個密鑰,并不會危害到另外一個密鑰的私密性。
[0003]常見的公鑰加密算法可以包括但不限于:RSA、ElGamal、背包算法、ECC,其中,使用最為廣泛的公鑰加密算法是RSA算法,其數學基礎(單向函數)是大整數乘法,到目前為止,尚無有效的數學方法可以進行逆運算破解。
[0004]使用非對稱加密算法可以實現數字簽名,使用者可以使用私鑰加密一段消息,并公開自己的公鑰及密文,他人雖然可以輕易地使用其公鑰進行解密,但是卻無法對其進行偽造或篡改,因此,能夠確保該消息/內容一定是原使用者發布的;同時,原使用者也無法抵賴,因為,只有使用者能夠生成密文。此類數字簽名能同時起到防偽造、防篡改以及防抵賴的作用。
[0005]哈希函數(HashFunct1n,又稱散列函數)是一種從任何一種數據中創建小的數字“指紋”的方法。散列函數可以將消息或數據壓縮成摘要,使得數據量變小,將數據的格式固定下來。該函數可以將數據打亂混合,重新創建一個叫做散列值(hash values,hashcodes,hash sums,或hashes)的指紋。散列值通常被用來代表一個短的隨機字母和數字組成的字符串。
[0006]—個設計完美的哈希函數(包括大多數加密哈希函數)具有真正的、均勻的隨機輸出,可以有效地防止經常發生沖突或者被惡意攻擊者破解。哈希函數盡管也是一個單向函數,但與非對稱加密使用的單向函數不同,哈希函數往往是不可逆的,也不需要還原本來的信息,因此哈希函數的一個重要特點便是無法從結果倒推原信息,其作為摘要的可信度較尚O
[0007]常見的哈希函數有:]\?)系列(]\?),]\?)2,]\?)3,]\?)4,]\?)5),5骱系列(5骱-1、5骱-224、SHA-256、SHA-384,和SHA-512)。原流行的哈希函數是MD5算法,但后來由于被證實無法防止碰撞,主流哈希函數由MD5算法轉為SHA-1算法。當然,目前也有不少SHA-2系列算法(即SHA后四種)的應用,另外,新的SHA-3算法也已經被提出。
[0008]目前,相關技術中所采用的抽獎方式通常可以分為如下兩種:
[0009]第一種是基于信任主辦方的抽獎,此類抽獎較為常見,其流程大致可以歸納為以下三個步驟:主辦方宣布抽獎—用戶參與—主辦方宣布獲獎者。此種抽獎方式的具體獲獎過程不對用戶透明,僅能夠通過第三方公證人來提高其公正性。
[0010]此種抽獎方式的明顯缺陷在于:抽獎結果完全掌握在主辦方手中,用戶只能單向信任,但主辦方存在著明顯的利益來驅使其偽造獲獎結果并從中盈利,即使引入第三方公證人也難以從根本上解決問題,公正性較差。
[0011 ]第二種是基于不可控事件,其流程與上述第一種抽獎方式類似,但是,獲獎憑證是由某預先指定的事件,例如:在抽獎報名結束后次日滬股收盤指數小數后若干位,再除以總用戶數,得到獲獎者。由于預測事件不可控,因此,此種抽獎方式不太可能造假。
[0012]此種抽獎方式的明顯缺陷在于:所謂的“不可控事件”并非完全成立,其根本原因在于這個“不可控事件”并非由數學或者物理等客觀事物保證的;另一方面,這個“不可控事件”所引導出的結果,從概率角度來看并非服從均勻分布,換言之,其很可能造成特定范圍內的用戶獲獎概率要高于其他范圍內的用戶獲獎概率,同樣難以確保抽獎活動的公平性。
[0013]針對上述的問題,目前尚未提出有效的解決方案。
【發明內容】
[0014]本發明實施例提供了一種在概率事件中確定命中用戶的方法及裝置,以至少解決相關技術中所提供的抽獎方式難以兼顧公平性與公正性,無法實現整個抽獎過程均對參與抽獎人員透明的技術問題。
[0015]根據本發明實施例的一個方面,提供了一種在概率事件中確定命中用戶的方法,包括:在概率事件設定的時間范圍內獲取參與概率事件的全部用戶的標識信息;在預設函數中采用全部用戶的標識信息、概率事件的主辦方預先設定的干擾因子以及當前選取的解密因子確定命中用戶,其中,干擾因子用于控制對命中用戶進行預判,當前選取的解密因子用于輔助驗證預設函數的計算結果是否滿足預設函數中設定的校驗條件。
[0016]進一步地,在預設函數中采用全部用戶的標識信息、干擾因子以及解密因子確定命中用戶包括:第一合并步驟、按照預設函數中設定的第一計算規則將全部用戶的標識信息與干擾因子進行合并,得到中間結果序列;第二合并步驟、按照預設函數中設定的第二計算規則將中間結果序列與當前選取的解密因子進行合并,得到校驗序列;步驟3、按照校驗條件對校驗序列進行驗證,如果校驗序列不滿足校驗條件,則重新生成下一次待選取的解密因子,返回第二合并步驟;如果校驗序列滿足校驗條件,則根據校驗條件以及全部用戶的總人數確定命中用戶的標識信息。
[0017]進一步地,按照以下方式之一重新生成下一次待選取的解密因子:以當前選取的解密因子為基準,遞增或遞減N,生成下一次待選取的解密因子,其中,N為正整數;隨機生成下一次待選取的解密因子,其中,下一次待選取的解密因子與當前選取的解密因子不同。
[0018]進一步地,按照校驗條件對校驗序列進行驗證并在校驗序列滿足校驗條件時,根據校驗條件以及總人數確定命中用戶的標識信息包括:判斷校驗序列與預設數值運算得到的中間結果是否滿足校驗條件,其中,預設數值用于控制確定命中用戶需要執行的運算量;如果中間結果滿足校驗條件,則采用中間結果與總人數確定命中用戶的標識信息。
[0019]進一步地,在時間范圍內獲取全部用戶的標識信息包括:在時間范圍內依次接收全部用戶中每個用戶的參與概率事件請求,其中,參與概率事件請求中攜帶有每個用戶自身經過簽名認證處理的標識信息;分別將與每個用戶對應的經過簽名認證處理的標識信息進行公示。
[0020]根據本發明實施例的另一方面,還提供了一種在概率事件中確定命中用戶的裝置,包括:獲取模塊,用于在概率事件設定的時間范圍內獲取參與概率事件的全部用戶的標識信息;確定模塊,用于在預設函數中采用全部用戶的標識信息、概率事件的主辦方預先設定的干擾因子以及當前選取的解密因子確定命中用戶,其中,干擾因子用于控制對命中用戶進行預判,當前選取的解密因子用于輔助驗證預設函數的計算結果是否滿足預設函數中設定的校驗條件。
[0021]進一步地,確定模塊包括:第一處理單元,用于按照預設函數中設定的第一計算規則將全部用戶的標識信息與干擾因子進行合并,得到中間結果序列;第二處理單元,用于按照預設函數中設定的第二計算規則將中間結果序列與當前選取的解密因子進行合并,得到校驗序列;驗證單元,用于按照校驗條件對校驗序列進行驗證,如果校驗序列不滿足校驗條件,則重新生成下一次待選取的解密因子,返回第二處理單元;如果校驗序列滿足校驗條件,則根據校驗條件以及全部用戶的總人數確定命中用戶的標識信息。
[0022]進一步地,驗證單元,用于按照以下方式之一重新生成下一次待選取的解密因子:以當前選取的解密因子為基準,遞增或遞減N,生成下一次待選取的解密因子,其中,N為正整數;隨機生成下一次待選取的解密因子,其中,下一次待選取的解密因子與當前選取的解密因子不同。
[0023]進一步地,驗證單元包括:判斷子單元,用于判斷校驗序列與預設數值運算得到的中間結果是否滿足校驗條件,其中,預設數值用于控制確定命中用戶需要執行的運算量;確定子單元,用于在中間結果滿足校驗條件時,則采用中間結果與總人數確定命中用戶的標識信息。
[0024]進一步地,獲取模塊包括:接收單元,用于在時間范圍內依次接收全部用戶中每個用戶的參與概率事件請求,其中,參與概率事件請求中攜帶有每個用戶自身經過簽名認證處理的標識信息;顯示單元,用于分別將與每個用戶對應的經過簽名認證處理的標識信息進行公示。
[0025]在本發明實施例中,采用在概率事件設定的時間范圍內獲取參與概率事件的全部用戶的標識信息;在預設函數中采用全部用戶的標識信息、概率事件的主辦方預先設定的干擾因子以及當前選取的解密因子確定命中用戶,通過在概率事件中添加用于控制對命中用戶進行預判的干擾因子以及用于輔助驗證預設函數的計算結果是否滿足預設函數中設定的校驗條件的解密因子,達到了提高概率事件的公平性與公正性的目的,從而實現了增強概率事件對參與概率事件用戶的透明