第五十个知识点:什么是BLS基于对的签名方案?

第五十个知识点:什么是BLS基于对的签名方案?

BLS签名方案使用了椭圆曲线上了Weil对,本质上是一个在曲线上除n划分的双线性形式,使用 \(n^{th}\) 个单位根。

假设我们有一个椭圆曲线\(E/F_{3^l}\),根据原始论文中的记号,方案如下描述:

密钥生成:让\(E/F_{3^l}\)是一个椭圆曲线,\(q\)是这个曲线阶数的最大因数。让\(P\)是其中的一个阶数是\(q\)的点,然后随机的选择\(x \in Z_q^*\)。最后让\(R = x \cdot P\)。那么输出\((l,q,P,R)\)作为公钥,\(x\)作为私钥。

签名:为了签名消息\(M \in \{ 0,1 \}^*\)。我们将\(M\)映射到一个在椭圆曲线群子群\(<P>\)中的一个点\(P_M\)。这可以通过一个\(hash\)函数来进行这样的签名。然后让\(S_M= x \cdot P_M\)。签名\(\sigma\)就是点\(S_M\)的\(x\)轴坐标,同时满足了\(\sigma \in F_3^{l}\)。

验证:给定一个公钥\((l,q,P,R)\),一个消息\(M\)和一个签名\(\sigma\),做下面的算法:

  • 找到椭圆曲线上的一个阶数为\(q\)的点\(S\),它的横坐标是\(\sigma\),纵坐标在\(F_{3^l}\)中,如果不存在这样的点,那么拒绝这个签名。
  • 令\(u = e(P,\phi(S))\),同时\(v = e(R,\phi(h(M)))\),其中\(e\)是Weil对中的映射,\(\phi\)是一个\(E \leftarrow E\)的同态,\(h\)就是之前提到的函数。
  • 如果\(u = v\)或者\(u = v^{-1}\),那么就接受这个签名,否则拒绝这个签名。

原文地址:https://www.cnblogs.com/zhuowangy2k/p/12248721.html

时间: 2024-10-12 20:12:41

第五十个知识点:什么是BLS基于对的签名方案?的相关文章

《javascript高级程序设计》第五章知识点总结

第五章知识点总结 1.object类型 访问对象的方法:①点表示法        (people.name) :      ②方括号表示法         (people[name]). 常用方法:hasOwnProperty()         用于检查给定属性在当前对象实例中是否存在 isPrototypeOf()              用于检测传入的对象是否传入对象原型 toString()                        返回对象的字符串表示 valueOf()    

第五个知识点 复杂性为NP类是什么意思

第五个知识点 复杂性为NP类是什么意思 原文地址:http://bristolcrypto.blogspot.com/2014/11/52-things-number-5-what-is-meant-by.html 这是52个密码学知识点的第五篇.我们继续关于NP的复杂性理论部分. 上周,Ryan给我们介绍了P类复杂问题的定义: P 就是一类能被确定的图灵机在有限时间内判定的语言. 这周我们介绍另一个复杂类: NP就是一类能被非确定的图灵机在有限时间内判定的语言. 什么是非确定的图灵机(NDTM

Linux新手要了解的十个知识点

Linux对于有的新手来说,感觉无从下手,或者不知道从哪儿学起?怎么学?针对这些问题,我给大家说说新手学习Linux需要了解的十个知识点. 注意大小写Linux是大小写敏感的系统,举个例子,Mozilla, MOZILLA, mOzilla和 mozilla是四个不同的命令(但是只有第四个mozilla是真正有效的命令).还有,my_filE, my_file,和 my_FILE是三个不同的文件.用户的登录名和秘密也是大小写敏感的(这是因为UNIX系统和C语言的传统一向是大小写敏感所致). 命名

第二十五个知识点:使用特殊的素数定义$GF(p)$和$GF(2^n)$的方法。

第二十五个知识点:使用特殊的素数定义\(GF(p)\)和\(GF(2^n)\)的方法. 在我们之前看到的博客中,当实现密码学方案时,一个最频繁调用的操作就是模运算.不幸的是,尽管模块化的使用非常广泛,但是它不能像其它算术运算(如加法和乘法)那样容易的执行.蒙哥马利表达提供了一种解决方案,这里我们讨论另一种解决方法--伪梅森素数规约. 定义:如果一个素数\(p\)被写成如下形式,那么就称\(p\)位伪梅森素数.其中\(b=2,c=1\)时就是梅森素数. \[ P = b^n-c,其中0<|c|<

第二十个知识点:Merkle-Damgaard hash函数如何构造

第二十个知识点:Merkle-Damgaard hash函数如何构造 这里讲的是MD变换,MD变换的全称为Merkle-Damgaard变换.我们平时接触的hash函数都是先构造出一个防碰撞的压缩函数.然后先证明这个小的,固定长度的压缩函数是安全的,然后再用它构造一个任意长度的哈希算法.虽然存在很多其它的构造方法,MD是迄今为止最常用的(至少是被用到最多的),例如MD5,SHA1,SHA2.因此是时候来了解一下它了. 安全的哈希函数? 一般来说,一个安全的哈希函数\(h\)应该是: 抗原象攻击(

WebApi基于Token和签名的验证

最近一段时间在学习WebApi,涉及到验证部分的一些知识觉得自己并不是太懂,所以来博客园看了几篇博文,发现一篇讲的特别好的,读了几遍茅塞顿开(都闪开,我要装逼了),刚开始读有些地方不理解,所以想了很久,因此对原文中省略的部分这里做一点个人的理解和补充,非常基础,知道的园友就不需要了,只是帮助初次学习的园友理解.原文传送门: http://www.cnblogs.com/MR-YY/p/5972380.html#!comments 本篇博文中的所有代码均来自上述链接,如果你觉得有帮助,请点击链接给

利用基于控制器的加密方案进行数据保护(三)

利用基于控制器的加密方案进行数据保护(三) 提交加密模块进行FIPS验证须知 本系列文章中第一篇简要介绍了FIPS验证流程:第二篇则探究了FIPS 140-2的验证级别及其要求. 本篇是此系列博文的最后一篇,讲解提交加密模块进行FIPS验证时的其他注意事项. 客户须知 开发加密模块进行FIPS验证时需要完成若干步骤,高级别的认证包括如下步骤: 1.    与一家FIPS140加密及安全测试(CST)实验室签订合同. 2.   定义加密边界,并确保其满足FIPS 140-2要求. 3.   采取措

利用基于控制器的加密方案进行数据保护(二)

利用基于控制器的加密方案进行数据保护(二) FIPS 140-2验证级别及需求 本加密系列的第一篇博文解释了基于控制器的加密(CBE),并概要介绍了FIPS验证流程.现在来探讨一下Federal Information Processing Standards 140 (FIPS 140-2,联邦信息处理标准)的验证级别及其需求. FIPS 140-2验证级别 与加密模块的设计与实现相关的领域共有十一个,其中每个领域的安全级别可以划分为1(最低)到4(最高)不等. 加密模块还有一个总安全级别的评

HttpClient基于HTTP协议认证方案

简介 HttpClient支持三种不同形式的HTTP协议验证发难:Basic,Digest和NTLM.这些都可以解决同http服务器或是代理服务器之间的认证. 认证服务器 HttpClient处理服务器认证几乎是透明的,发开者只需要做一件事情,提供一个合法login证书.此证书被保存到HttpState实例中并且可调用方法setCredentials(AuthScopeauthscope, Credentials cred)和getCredentials(AuthScope authscope)