關於BLS門限簽名的學習

2021-10-12 10:55:58 字數 1011 閱讀 3402

e(σ, g2) ==e(h(m), v),驗證是否成立!

現在可以在 bls 簽名方案的基礎上通過使 shamir 秘密分享方法[4]來構造門限簽名演算法,為了便於理解,在給出具體構造演算法之前,我先介紹一下拉格朗日差值法,這是 shamir 秘密分享方法的核心。

已知一條 n-1 次曲線上的 n 個點 (x1,y1), (x2,y2), …, (xn,yn) , 我們可以使用拉格朗日插值法來恢復這條曲線方程,具體如下:

現在改變一下問題,想要實現 t-of-n 的秘密分享。t=3,n=4 時,先任意選擇一條 t-1=2 次曲線,以這條曲線在 x=0 處的值作為秘密。然後任意取出曲線上的n=4個點 (1,2),(2,5), (3,10),(4,17) 後,任選其中三個點後恢復出來 t-1=2 次曲線是一樣的。因此,我可以將這四個點(橫座標分別是 1、2、3、4)傳送給四個不同的人,這樣就是乙個 3-of-4 的秘密分享了。

有了以上知識,應該可以理解基於 bls 簽名的門限簽名演算法 ,這個演算法包括:初始化,金鑰生成,簽名,驗證,四個部分,具體構造如下

​ 門限簽名的通俗理解是:在乙個簽名者群體中,有超過 t(門限)個簽名者對一條訊息進行簽名就可以得到這個群體對這條訊息的簽名,這個簽名是唯一的(即超過 t 個簽名者的不同子集生成的簽名是一樣的)且任何人都可以驗證。由門限簽名的性質可知,少於 t 個簽名者的群體是得不到群體簽名的。

成立?

package com.cyq.signatures.bls;

import it.unisa.dia.gas.jpbc.element;

import it.unisa.dia.gas.jpbc.field;

import it.unisa.dia.gas.jpbc.pairing;

import it.unisa.dia.gas.plaf.jpbc.pairing.pairingfactory;

//bls簽名(單個)

public

class

bls}

關於引數簽名的總結

引數簽名 這是我們今天討論的重點 引數簽名可以保證開發的者的資訊被冒用後,資訊不會被洩露和受損。原因在於接入者和提供者都會對每一次的介面訪問進行簽名和驗證。下面我們就簡述下這個過程。可以這樣理解接入者把需求訪問的介面的所有必要的引數資訊 一般都會有乙個accesskey id,用於標示接入者的資訊,...

關於Objective C方法簽名規則的說明

引入 import selsel selector methodsignature method signm class getclassmethod uiview class sel constchar s method gettypeencoding signm nslog s s oc 方法簽...

關於簽名時加密失敗錯誤的解決

蒐集自csdn 有些開源專案,在編譯時會有一大堆的錯誤,其中最常見的是 對程式集 dll 簽名時加密失敗 讀取金鑰檔案 x.snk 時出錯 系統找不到指定的檔案。原因是沒有金鑰檔案,可以使用這樣的方法建立乙個金鑰檔案 1,找到簽名工具sn.exe,預設的路徑是 系統盤 program files m...