BB04簽名(含庫函數)

BB04 簽名

雙線性對在密碼構造中另一個重要的應用是構造短簽名, 短的數字簽名在某些環境下特別是通信帶 寬和存儲空間受限制的情況下是需要的. 例如當在一個掌上驅動設備(象Palm或PDA)上**一個軟件時, 用戶常常被要求鍵入一個提供在CD上的簽名. 類似的, 因爲空間的限制, 當在一個數字郵戳上加一個條碼 時, 短的簽名也是需要的. 兩個常用的數字簽名方案是RSA和DSA. 在80比特的安全級別下, 這兩個籤 名方案分別提供1024比特和320比特長度的簽名. ECDSA提高了DSA的效率, 但簽名長度依然是320比特. 基於雙線性對的簽名可以是G中一個元素, 相當160比特的ECDSA安全級別的橢圓曲線的有理點可以用 160比特表示. 目前利用雙線性對構造的短簽名方案主要有三個, 這些短簽名方案同時也是很多其他基於 雙線性對密碼協議的設計基礎. 第一個利用雙線性對構造的短簽名是Boneh等人[37]2001年提出的BLS方案, 它的構造和安全性是基於CDHP. BLS簽名需要一個特殊Hash函數, 即將任意消息映射到橢圓曲線上的點 (消息嵌入編碼). 在2007年之前, 到任意橢圓曲線上的消息嵌入都是概率算法. 2007年美密會上, Icart[38]提 出了一個確定性多項式時間算法. 在2004年PKC上, 張等人[39]提出了第二個基於雙線性對的短簽名方案 ZSS04,同年Boneh和Boyen[40]在歐密會上給出了標準模型下安全的構造BB04. ZSS04和BB04的構造和安全 性是基於Inv-CDHP, 這個問題與CDHP等價. ZSS04和BB04方案比BLS方案有效, 且不需要特殊Hash函數. 在2006年的越南密碼會上, 張等人[41]基於計算指數平方根問題(CSREP: 12 , aag gg  )提出了ZCSM06方 案. 對於計算指數平方根問題的困難性, 張[42]證明了當羣的階是某種特殊的素數時, CSREP與平方計算 Diffie-Hellman問題(Squ-CDHP)等價, 從而與CDHP等價. Roh等人[43]證明了在大多數情況下CSREP與 CDHP等價.

各類簽名方案

在這裏插入圖片描述在這裏插入圖片描述

基於go語言的函數庫

請見github函數庫,喜歡的朋友請各位在github上給我打星星喔

//調用例子

func  main(){
       msg:="hello  world"
       sys:=Sys_Start()
       _,_,_,_,prikey:=sys.BB04_KenGen()
       delta,r:=prikey.BB04_Sign(msg)
       prikey.BB04_Ver(msg,r,delta)
    }

//函數

func (Reg *Reg)BB04_Ver(msg string,r,delta *pbc.Element)bool
func (Reg *Reg)BB04_Sign(msg string)(*pbc.Element,*pbc.Element)
func (sys *Sys)BB04_KenGen()(*pbc.Element,*pbc.Element,*pbc.Element,*pbc.Element,*Reg)
func Sys_Start()(*Sys)