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)

猜你喜欢

转载自blog.csdn.net/m0_37719047/article/details/85601439
bb
今日推荐