BLS with Random Oracle; BLS 短签名在随机谕言机模型下的安全证明 内容小结

2023-11-04

BLS with Random Oracle;BLS 短签名在随机谕言机模型下的安全证明 内容小结

密码学安全规约推荐书目(博客为这两本书学习笔记与内容小结):

《密码学中的可证明安全性》杨波 清华大学出版社

《Introduction to Security Reduction》Fuchun Guo;Willy Susilo;Yi Mu Springer

数字签名的安全证明

数字签名的安全证明我们需要明确以下三个关键问题:

(1)模拟者构造的模拟协议是不是可模拟的?是不是和真实协议不可区分的?

(2)敌手伪造的数字签名是不是可规约的?是不是能解决困难问题实例的?

(3)规约是不是成功的?是否不可区分?是否考虑到了无用的攻击?是否有效解决问题?

需要关注的几个概率描述:

Ps : 成功模拟的概率

Pu: 敌手发起有用攻击的概率

er : 敌手解决困难问题的优势

T:解决潜在困难问题所花费的时间

紧规约与宽松规约

宽松规约:敌手成功发起能够解决困难问题的概率是与请求签名次数成线性关系的,称之为宽松规约。

紧规约:如果一个消息的签名能够被模拟生成也能被规约的生成,那么每次直接生成可规约的签名,敌手发起能够解决困难问题的概率为小的常量级,称之为紧规约。

注意:随机化签名算法往往可以通过随机salt的方式做到紧规约,但是确定性签名往往无法实现,2017 美密会Fuchun Guo 提出了一个确定性签名的紧规约。

数字签名在随机预言机模型下的总结

1. 潜在的困难问题是计算性困难问题(设计规约的根本依据)

2. 模拟者不掌握签名私钥(如果掌握,则模拟者可以自行解决困难问题)

3. 所有的签名请求都是可模拟的(模拟者可以不依靠私钥给与敌手可以验证的签名)

4. 模拟协议与现实现已不可区分

5. 区分可模拟签名和可规约签名使用绝对困难问题或者分别构造两种模拟的方法

6. 敌手仿造的签名是可规约的

7. 敌手解决困难问题是不可忽略的(因为敌手具有无限的计算能力)

8. 模拟协议运行时间消耗是多项式时间的

BLS协议描述

                      

                                 

安全证明:

BLS的安全证明是被放置在随机预言机模型下的,其中哈希函数H被设置为随机预言机。

安全定义如下:

                   

setup 阶段:

                  

模拟者编程随机预言机,模拟者运行秘钥生成算法,生成公钥。

注意:模拟者并不掌握私钥,要求模拟者能够在不掌握私钥的情况下构造可模拟的签名,并且为敌手设计可规约的签名。

哈希请求阶段:

                    

注意:

哈希请求这里是全局存在的,即使是敌手在最后计算伪造签名的时候,也必须访问随机谕言机获得哈希结果,即在规约算法或者说模拟者模拟算法的过程中,所有的哈希结果必须由随机谕言机来计算得到。

哈希请求开始之前,模拟者猜测第i次询问的消息mi作为敌手输出仿造签名时的那一次请求,所以在哈希请求设计时,将第i次请求设计成为可规约的,将其他时候的请求设计为了可模拟的。这是能够强制敌手发起能够攻破困难问题的核心设计。

签名请求阶段:

                        

模拟者按照上述过程对敌手的签名请求进行回复,如果询问到了mi消息是之前询问过的,则终止询问,因为不允许敌手对一个消息进行两次寻询。

伪造阶段:

                       

                      

注意:我们是在CMA安全模型下证明。在最后伪造时,选择一个没有请求过的消息进行伪造,如果是之前伪造过的消息,则终止伪造过程。对新的消息进行哈希询问,然后计算签名,输出伪造的签名。

规约正确性分析

(1)模拟者是否能够使用敌手伪造的签名解决CDH问题?

                                                

由上式,可以解决CDH困难问题。

(2)模拟是否和现实不可区分?

                                       

上述所有在规约过程中出现过的元素均是独立与随机的。

(3)模拟成功的概率?

如果模拟者猜测正确,则明显的概率是1/qH。

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

BLS with Random Oracle; BLS 短签名在随机谕言机模型下的安全证明 内容小结 的相关文章

  • NPM详解

    NPM详解 介绍 命令 执行多个脚本 pre post 错误 静默消息 日志等级 从文件中引用路径 访问环境变量 传递参数 命名规则 前缀 在拿到一个项目之后 如何看入口文件 如何运行项目 我们都会找到 package json 中的 sc
  • 小点dian儿:pandas数据存入文件,行索引处理

    小点dian儿 存入数据的时候 我们希望对数据在系统的行名 保存或者不保存 参数 index None 类似 header False不保存列名 在我们不进行如上的设计的时候 系统或分配默认的行index 0 1 2 在我们将运行结果存入文
  • Python预测糖尿病

    今天给大家讲解一个实战案例 如何根据现有数据预测糖尿病 在这个案例开始之前 希望大家回忆一下大学里讲过的线性回归的知识 这是数据挖掘里非常重要的一部分知识 当然 鉴于大家都学过 本篇就不再赘述 一 数据集介绍 diabetes datase
  • 人工学习之预测2023年考研英语答案分布

    统计了2012 2022年共计11年的英语一完形和阅读答案 除了20年 ABCD四个选项基本都均匀分布 所以大概率是各自5个或者两个5一个4 20年类似13年 不管完形还是阅读 答案都是十分均匀分布 即5555型 至于原因 可能是老师的偏好
  • 计算机网络(第七版)谢希仁1-2章笔记

    笔记基于谢希仁老师的计算机网络笔记 第七版 第1 2章 1章 概述 2章 物理层 第1章 概述 1 1 计算机网络在信息时代的中的作用 1 21世纪的一些重要特征就是数字化 网络化和信息化 是一个以网络为核心的信息时代 2 三类网络 电信网
  • 登录功能的测试点大全

    登录功能的测试点大全 还是比较全面的 有什么考虑不到的 可以补上 功能性用例 1 输入已注册的用户名和正确的密码 验证是否成功登录 2 输入已注册的用户名和不正确的密码 验证是否成功失败 且提示信息正确 3 输入未注册的用户名和任意密码 验
  • [转]QNX_BSP包分析

    如果你认为本系列文章对你有所帮助 请大家有钱的捧个钱场 点击此处赞助 赞助额0 1元起步 多少随意 声明 本文只用于个人学习交流 若不慎造成侵权 请及时联系我 立即予以改正 锋影 email 174176320 qq com 这篇文章主要分
  • FreeRTOS简述和移植文档

    FreeRTOS简述和移植文档 文章目录 FreeRTOS简述和移植文档 1 前言 2 FreeRTOS简述 1 概述 2 实现 3 主要特色 4 支持平台 3 移植FreeRTOS 4 最后 1 前言 目前由于IOT的飞速发展 针对单片机
  • docker删除镜像和容器后,磁盘空间未释放

    用下列命令 docker container prune f docker image prune f docker volume prune f 它们将释放被停止容器 悬空图像和悬空卷使用的空间
  • 语雀 个人使用指南

    优点 markdown 此处为语雀内容卡片 点击链接查看 https www yuque com nanfang fw1qz wuc5c4 cts7ny 特色卡片 基础模块 思维导图无缝组成文本 第三方服务 免费即够用 多平台 云端存储 中
  • React学习笔记之十四: React hooks初探

    React Hooks 本文参考主要博文 阮一峰老师的 React hooks 教程 How to fetch data with React Hooks useEffect 完整指南 React hooks 的官方文档 demo Reac
  • git lfs的安装和使用

    20220304记录 lfs large file storage 安装 最新版本git lfs 3 0 2要求libc6 高于2 32 而Ubuntu20 04默认的libc6版本是2 31 不支持安装git lfs 3 0 2 因此Ub
  • 一.数组(5)645. 错误的集合(位运算的方法不会)

    集合 s 包含从 1 到 n 的整数 不幸的是 因为数据错误 导致集合里面某一个数字复制了成了集合里面的另外一个数字的值 导致集合 丢失了一个数字 并且 有一个数字重复 给定一个数组 nums 代表了集合 S 发生错误后的结果 请你找出重复
  • RISCV核设计与Chisel语言入门资料

    RISCV SOC设计与Chisel语言入门资料 关于项目的一点说明 Rocket核与Chisel语言 关于项目的一点说明 今年三月 我和舍友一起参加了第四届全国集成电路设计大赛 选择了RISCV挑战杯的子赛题二网址 自二月份开始着手做该项
  • 表单全选与取消全选

    分析 1 全选和取消全选 让下方所有复选框的checked属性 选中状态 跟随全选按钮 2 下方的所有复选框选中全选按钮才选中 其中一个不选中全选按钮都不选中 每次点击下面的某个复选框都要循环检查下方复选框是否都被选中 flag保存全选按钮
  • Java程序员应该具备的技能

    Java程序员的三个阶段 第一阶段 三年 我认为三年对于程序员来说是第一个门槛 这个阶段将会淘汰掉一批不适合写代码的人 这一阶段 我们走出校园 迈入社会 成为一名程序员 正式从书本上的内容迈向真正的企业级开发 我们知道如何团队协作 如何使用
  • linux 远程拷贝命令

    一 scp命令 远程拷贝文件 Linux scp命令用于linux之间进行复制文件 scp 是secure copy 的缩写 scp 是基于ssh登录来进行安全拷贝 补充知识 ssh进行登陆 ssh 用户名 IP地址 scp优势 当服务器的
  • request和requestScope的区别

    1 request对象通常用来接收从客户端通过表单提交过来的数据 然后在servlet或者action中用request getParameter 的方法获取获取参数内容 2 而requestScope通常是在servlet和action中
  • redis详解(一)—— 概述

    首先 分布式缓存框架 可以 看成是nosql的一种 1 什么是redis redis 是一个基于内存的高性能key value数据库 2 Reids的特点 Redis本质上是一个Key Value类型的内存数据库 很像memcached 整

随机推荐

  • 【前端面试

    1 数据类型 1 基本数据类型 Undefined Null Boolean Number String 还有在 ES6 中新增的 Symbol 类型 2 引用数据类型 对象 数组 函数 日期和正则等等 2 判断类型的方法 基本类型判断 t
  • 最新前端面试题整理

    前端技术 常见浏览器的内核分别是什么 IE浏览器 Trident 内核 Firefox浏览器 Gecko内核 Safari浏览器 Webkit内核 Opera浏览器 最初是Presto内核 后来是Webkit 现在是Blink内核 Chro
  • TypeScript中数组类型的定义

    TypeScript中数组类型的定义 现在我们可以定义一个最简单的数组类型 比如就是数字类型 那么就可以这么写 const numberArr 1 2 3 这时候你把鼠标放在numberArr上面可以看出 这个数组的类型就是 number
  • 【Linux】进程间通信

    文章目录 1 进程间通信基础 2 管道 2 1匿名管道 2 1 1匿名管道的原理 2 2匿名管道的特点 2 3匿名管道函数 2 3 1用例 2 3 2实现ps ajx grep bash指令 2 4匿名管道的特点 2 5管道的大小 2 6管
  • 项目管理计算-- PV、EV、AC、BAC、EAC、ETC等计算公式含义

    一 总浮动时间TF和自由浮动时间FF的差别 项目进度网络图 其中每个小方块里面的若干数字是啥意思呢 最早开始时间 ES 最早结束时间 EF 最迟开始时间 LS 最迟结束时间 LF TF Total Flow 总浮动时间 FF Free Fl
  • 史上最全的 Hexo 博客搭建配置完全指南

    欢迎到我的博客查看最新文章 https blog clouder im 本篇博客基于 Centos 7 x root 用户 最近利用 Hexo Github Pages 搭建了一个博客 总体来说比较满意 中间也踩了不少坑 于是将我的配置过程
  • LevelDB使用指南

    这篇文章是levelDB官方文档的译文 原文地址 LevelDB library documentation 这篇文章主要讲leveldb接口使用和注意事项 leveldb是一个持久型的key value数据库 key value可以是任意
  • Node.js 搭配 Socket.io 实现与客户端实时通信

    最近准备用react搭建node搭建一个大数据可视化平台 并且服务端利用到socket io 客户端利用到socket io client 这里总结下基本使用方式 安装 npm i express socket io socket io c
  • SQLi LABS Less-34

    第三十四关注入点为 单引号字符串型 注入类型为 报错注入 此关卡通过 代码WAF 将单引号 转义成 我们使用 编译 绕过WAF 先上结果 and updatexml 1 concat 0x7e substr select group con
  • Delphi多层开发方案比较

    以下转载自 http blog sina com cn s blog 53decb4101009a5m html type v5 one label rela nextarticle http blog csdn net SmallHand
  • 华为机试HJ60 查找组成一个偶数最接近的两个素数

    HJ60 查找组成一个偶数最接近的两个素数 Python 题目 解题思路 代码 结果 题目 解题思路 1 多组输入 需要循环 2 先创建一个判断是否素数的函数以备调用 素数判断 从1以后开始 如果到该数一半的位置有可以整除的数 则不是素数
  • 【pygame杂记】字体

    这一节放在这里挺突兀的 但是因为今天开周会 晚回来了 而且吃晚饭还吃撑了所以就简单写一下吧 举个栗子进行简述 我们知道在python中所有的东西都可以抽象成对象 在这里 我们创建了一个字体的对象 创建字体对象 font pygame fon
  • android Handler详细使用方法实例

    开发环境为android4 1 Handler使用例1 这个例子是最简单的介绍handler使用的 是将handler绑定到它所建立的线程中 本次实验完成的功能是 单击Start按钮 程序会开始启动线程 并且线程程序完成后延时1s会继续启动
  • DDL语言的使用

    第1关 创建数据库 编程要求 在右侧窗口编写 SQL 并创建一个名为 teachingdb 的教学数据库 连接数据库的用户名为 root 密码为 123123 请在此编写代码 操作完毕之后点击评测 Begin create database
  • 蓝桥杯VIP算法训练-轨道炮-看完秒懂的(c++map)

    题目描述 小明在玩一款战争游戏 地图上一共有 N 个敌方单位 可以看作 2D 平面上的点 其中第 i 个单位在 0 时刻的位置是 Xi Yi 方向是 Di 上下左右之一 用 U D L R 表示 速度是 Vi 小明的武器是轨道炮 只能使用一
  • Typescript--Typescript中的新增类型

    一 any any表示的是任意类型 一个变量设置类型为any后 相当于该变量管理了TS的类型检测 尽量不要用any let d any 声明变量如果不指定类型 则TS解析器会自动判断变量的类型为any 隐式的any let d d 10 d
  • DataFrame数据的多种遍历方法

    后续补充 遍历DataFrame的三种方法 iteritem 方法返回一个
  • Unity初探(光源类型与光照模式)

    0 引子 unity的光源有四种 每种光源都有3种光照模式 而场景中不同模式的光源而且对静态和动态的对象有不同的效果 而官方文档又显得有点晦涩难懂 如果是初学者第一次阅读 比如说我 难免会被场景中动态和静态游戏对象与不同模式光源的交互 以及
  • 【DATAX】datax读取hive分区表时,空分区任务报错问题解决

    问题场景 之前在 Dolphinscheduler调度Datax任务读取Hive分区表案例 博客中我分享了调度任务读取hive分区的几个场景 当时提到了分区中有空文件的解决方案 除此之外 我们还遇到了空分区的场景 即该分区没有数据 连所谓的
  • BLS with Random Oracle; BLS 短签名在随机谕言机模型下的安全证明 内容小结

    BLS with Random Oracle BLS 短签名在随机谕言机模型下的安全证明 内容小结 密码学安全规约推荐书目 博客为这两本书学习笔记与内容小结 密码学中的可证明安全性 杨波 清华大学出版社 Introduction to Se