本节内容主要转载于:弄清楚DL,D-H,CDH problem,CDH assumption,DDH,BDDH,BCDH

DLP(Discrete Logarithm Problem)

在乘法群\((G,*)\)中:

离散对数问题:就是给出两个群元素\(P,Q\),求整数\(n\in Z_q^*\)是困难的,满足\(Q=P^n\)

DH密钥交换协议

具体请参考:计算困难假设(Computational hardness assumption)DH密钥交换

基于DLP( 离散对数问题)的困难性。

DDHP(Decision Diffie-Hellman Problem)

给出任意\((a,b,c)\), 有多项式时间算法能将\((g^a,g^b,g^{ab})\) 和\((g^a,g^b,g^c)\)两者明显的区分开来。说白了就是区分\(ab\)和\(c\),仍然是基于DLP。

BDDHP(bilinear decisional Diffie-Hellman Problem)

给出任意\((a,b,c,d)\), 有多项式时间算法能\((g^a,g^b,g^c,g^{abc}))\)和\((g^a,g^b,g^c,g^d)\)两者区分开来是困难的。

CDHP(Computational Diffie-Hellman Problem)

给出任意的\(g^a,g^b\),当数值较大时,求\(g^{ab}\)是困难的。

CDHP又分为两种:

Inv-CDHP(Inverse Computational Diffie-Hellman Problem)

求逆:对于\(a ∈ Z_q^*\), 给出\(P, P^a\),计算\(P^{a^{-1}}\)是困难的.

Squ-CDHP(Square Computational Diffie-Hellman Problem)

求平方:对于\(a ∈ Z_q^*\), 给出\(P, P^a\),计算\(P^{a^{2}}\)是困难的.

BCDHP(Bilinear Computational Diffie-Hellman problem )

任意选取\((a,b,c)\),在多项式时间内计算出\(g^{abc}\)是困难的

GHP群(Gap Diffie-Hellman group)

在一个群中,DDHP是容易的但CDHP很难的就被称为GDH。通过双线性对(bilinear pairing),我们可以得到GDH群,这种群在有限域上的supersingular 椭圆曲线或者hyperelliptic 椭圆曲线上可以找到,双线性对来自Weil 或者 Tate pairing。

可以看出BDDHP和BCDHP比DDHP和CDHP多了一个变量,为什么要多加一个变量?

因为,如果存在一个\(GxG\to G'\)(\(G,G'\)都是群)的双线性对的话, DDH问题是可以被快速解决的。所以就有了BDDH,故即使存在双线性对,BDDH问题仍然是难以计算的。

参考

1、An Efficient Signature Scheme from Bilinear Pairings and Its Applications

DH问题汇总的更多相关文章

  1. x86汇编知识点汇总

    目录: 1.进制转换 2.原码.反码.补码 3.寄存器 4.存储器的段结构 5.堆栈 6.传送类指令 7.算术运算类指令(不含乘除) 8.位操作类指令 9.标志位操作指令 10.标识符.常量与变量 1 ...

  2. vim命令汇总

    文章首发:http://www.cnblogs.com/sprying/p/3864631.html 上一次学习vim还是快一年了,倒腾了一个月之后就没碰过.现在重新汇总下vim命令. 1.有些命令回 ...

  3. 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

    前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...

  4. 异常处理汇总 ~ 修正果带着你的Net飞奔吧!

    经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...

  5. UWP开发必备:常用数据列表控件汇总比较

    今天是想通过实例将UWP开发常用的数据列表做汇总比较,作为以后项目开发参考.UWP开发必备知识点总结请参照[UWP开发必备以及常用知识点总结]. 本次主要讨论以下控件: GridView:用于显示数据 ...

  6. Oracle手边常用70则脚本知识汇总

    Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...

  7. Oracle 数据库知识汇总篇

    Oracle 数据库知识汇总篇(更新中..) 1.安装部署篇 2.管理维护篇 3.数据迁移篇 4.故障处理篇 5.性能调优篇 6.SQL PL/SQL篇 7.考试认证篇 8.原理体系篇 9.架构设计篇 ...

  8. Vertica 数据库知识汇总篇

    Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...

  9. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

随机推荐

  1. Redis的安装与启动(一)

    Redis是c语言开发的. 安装redis需要c语言的编译环境.如果没有gcc需要在线安装.yum install gcc-c++ 安装步骤: 第一步:redis的源码包上传到linux系统.--源码 ...

  2. IDEA 创建javaWeb以及Servlet

    1.新建项目 2.Web工程设置:点击项目名称,按F4 (1)配置sources:在WEB-INF下新建两个文件夹classes和lib (2)配置path:刚刚创建的classes文件夹路径 (3) ...

  3. 转载:STL常用容器的底层数据结构实现

    转载至:https://blog.csdn.net/qq_28584889/article/details/88763090 vector :底层数据结构为数组,支持快速随机访问 list:底层数据结 ...

  4. Redis缓存穿透、缓存雪崩、缓存击穿

    缓存穿透: ​ 缓存穿透,是指查询一个数据库一定不存在的数据.正常的使用缓存流程大致是,数据查询先进行缓存查询,如果key不存在或者key已经过期,再对数据库进行查询,并把查询到的对象,放进缓存.如果 ...

  5. buuctf 荷兰带宽数据泄露

    荷兰带宽数据泄露 下载附件得一个conf.bin文件,这个文件是路由信息文件,题目并没有任何提示,我们先来测试一下最简单的,找username或password然后当作flag交上去,我们使用Rout ...

  6. 探索前端黑科技——通过 png 图的 rgba 值缓存数据

    本文系原创,欢迎转载,转载请注明作者信息项目地址:SphinxJS在线体验地址:https://jrainlau.github.io/sp... 说起前端缓存,大部分人想到的无非是几个常规的方案,比如 ...

  7. js如何获取iframe页面内的对象

    简单介绍iframe标签,所有的浏览器都支持<iframe>标签,iframe 元素会创建包含另外一个文档的内联框架(即行内框架).通常我们常用的iframe标签的属性有:width(if ...

  8. VasSonic Android源码解析

    VasSonic是腾讯推出的为了提高H5页面首屏加载速度而推出的高性能Hybrid框架,目前广泛应用在QQ商城等Hybrid界面中,以提高用户体验. https://github.com/Tencen ...

  9. 何使用派生类指针指向基类,即downcast向下转型?

    基类指针指向派生类,我们已经很熟了.假如我们想用派生类反过来指向基类,就需要有两个要求:1)马克-to-win:基类指针开始时指向派生类,2)我们还需要清清楚楚的转型一下. if you want t ...

  10. [ SOS ] 版本控制工具 笔记

    https://www.cnblogs.com/yeungchie/ soscmd 创建工作区 soscmd newworkarea $serverName $projectName [$path] ...