【区块链与密码学】第6-9讲:数字签名算法的可证明安全性

2023-11-10

【本课堂内容全部选编自PlatON首席密码学家、武汉大学国家网络安全学院教授、博士生导师何德彪教授的《区块链与密码学》授课讲义、教材及互联网,版权归属其原作者所有,如有侵权请立即与我们联系,我们将及时处理。】

6.9数字签名算法的可证明安全性

可证明安全性的定义

可证明安全性是指这样一种「归约」方法:

首先确定密码体制的安全目标,例如,加密体制的安全目标是信息的机密性,签名体制的安全目标是签名的不可伪造性。

然后根据敌手的能力构建一个形式化的安全模型;最后指出如果敌手能成功攻破密码体制,则存在一种算法在多项式时间内解决一个公认困难的数学问题或公认安全的密码体质。

总之,可证明安全性就是利用反证法的思想把密码算法/协议规约到一个数学难题或密码体质,通过后者的困难性或安全性来证明前者的安全。

对于数字签名体制,存在以下3种伪造类型:

完全攻破:敌手能够产生与私钥持有者相同的签名,这相当于恢复出了私钥

选择性伪造:敌手能够伪造一个他选择的消息的签名

存在性伪造:敌手能够伪造一个消息的签名,这个消息可能仅仅是一个随机比特串

对于数字签名体制,存在以下2种伪造类型:

被动攻击:在被动攻击中,敌手被告知一个公钥,要求产生一个选择性伪造或存在性伪造。这是一种比较弱的攻击模型。

主动攻击:积极攻击中最强的攻击是适应性选择消息攻击(Adaptive Chosen Messages Attack),即敌手可以访问一个签名预言机,它能够产生合法的签名。敌手的目标是产生一个消息的签名,当然这个消息不能是已经询问过签名预言机的消息。

对于一个安全参数为k的密码体制,如果敌手成功的概率大于1/p(k),我们就说这个敌手以一个不可忽略的概率成功,这里的p是一个以k为变量的多项式。

可证明安全性的目的在于证明:如果一个敌手能够攻破一个密码体制的某个安全概念,那么我们就可以利用该敌手做一些认为不可能的事情。我们假设敌手A是一个主动攻击敌手,即对于Schnorr签名算法,他能进行签名询问。

我们现在希望能够构造一个新算法BA,它能够在输入一个离散对数问题实例和调用多项式次敌手A的情况下,以一个不可忽略的概率求解离散对数问题。

算法BA说明了如果存在敌手A,就存在一个多项式时间离散对数问题求解算法,能够以一个不可忽略的概率解决离散对数问题。

既然我们目前并不相信存在这样的离散对数问题求解算法,我们也可以断定这样的敌手A是不存在的。

可证明安全流程示意图

随机预言模型

可证明安全的思想就是给定一个算法A,我们提出一个新算法BA,BA把A作为子程序。输入给BA的是我们希望解决的困难问题,输入给A的是某个密码算法。

然而,如果A是一个积极攻击敌手,即A可以对输入的公钥进行签名预言询问。算法BA要想使用A作为子程序,就需对A的询问提供回答。算法BA需要应对以下几个问题:

它的回答应该看起来是合法的。因为加密应该能够解密,签名应该能够被验证,否则,算法A就知道它的预言机在撒谎。算法BA就不能再确保算法A是以一个不可忽略的概率成功。

它的回答应该与如果预言机是真正的解密/加密预言机时A期望的回答具有相同的概率分布。

自始至终,预言机的回答应该是一致的。

算法BA需要在不知道私钥的情况下提供这些回答。

我们必须让BA在不知道私钥的情况下能够签名,但既然我们的体制是安全的,这一点意味着是不可能的。为了回避这个问题,我们通常使用随机预言模型。

随机预言是一个理想的哈希函数。对于每一个新的询问,随机预言产生一个随机值作为回答,如果进行两次相同的询问,回答一定相同。

在随机预言模型中,我们假设敌手并不使用密码算法中定义的那个哈希函数,而是使用预言机查询得到哈希运算的结果。

对于A的签名预言询问,算法BA是通过欺骗随机预言的回答来适合自己的需要的。

分叉引理

如果算法BA使用随机预言运行敌手A一次,并成功获得一个消息m的两个签名。当算法BA使用不同的随机预言再运行敌手A一次时,BA能够以一个不可忽略的概率获得这个消息m的另外一个签名。[1]

Schnorr数字签名算法的安全性证明

假设p和q是大素数,且q能被p-1整除,q是大于等于160 bit的整数,p是大于等于512 bit的整数,保证GF(p)中求解离散对数困难;g是GF(p)中元素,且gq≡1 mod p。

密钥生成

Alice选择随机数x为私钥,其中1<x<p

Alice计算公钥y≡gx (mod p)

签名算法 

Alice首先随机数k,并计算K=gk mod p,这里1<k<q

Alice计算e=h(M, K)

Alice计算s=k-x·e(mod q)

Alice输出签名(e, s)

验证算法

Bob计算gk=gs·ye mod p 

Bob验证e=h(M, gk mod p)

如果相等则输出「Accept」,否则输出「Reject」

RSA-PSS数字签名算法的安全性证明

定理:在随机预言模型中,假设离散对数问题是一个困难问题,RSA-PSS数字签名算法在主动攻击下是安全的。

密钥生成 

生成一个模数n,一个公钥e和一个私钥d

假设安全参数为k(n是k比特的数),我们定义两个整数k0和k1并且满足:k0+k1≤k-1

然后我们定义两个哈希函数:

扩展数据:

压缩数据:

签名算法

为了对一个消息m进行签名,签名者执行以下步骤:

生成一个随机数

计算w=H(m||r)

设置y=0||w||(G1(w)⊕r)||G2(w)

计算s=yd mod n

消息m的签名为s

验证算法

为了对一个消息m进行的签名s进行验证,验证者执行以下步骤:

计算y=se mod n

将y分解成: b||w||||,其中b的长度为1比特,w的长度为k1比特,的长度为k0比特,的长度为k-k0-k1-1比特

计算r=⊕G1(w)

当且仅当下列等式成立时,接受该签名:b=0, G2(w)= ,且w=H(m||r)

今天的课程就到这里啦,数字签名算法单元的学习就结束啦,同学们记得复习哦~下节课开始我们将进入盲签名的学习,敬请期待!


-- 完 --

关注点宽学园,每周持续更新区块链系列课程,小宽带你进入区块链世界。我们下节课见啦。

【区块链与密码学】课堂回顾:

区块链与密码学系列文章合集

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

【区块链与密码学】第6-9讲:数字签名算法的可证明安全性 的相关文章

  • 巴比特

    摘要 3月15日凌晨 OpenAI在官网上宣告了多模态大模型GPT 4的诞生 GPT 4 实现了以下几个方面的飞跃式提升 强大的识图能力 文字输入限制提升至 2 5 万字 回答准确性显著提高 能够生成歌词 创意文本 实现风格变化 GPT 4
  • 初识区块链

    这篇博客主要从社会和经济层面来直白的向大家讲述区块链是什么 比特币是什么 分享的内容仅限于自己的理解 里面会存在本人的观点 但是希望读者能有自己的独立看法 审慎的阅读本文 甚至能考虑到我的认知不足导致的偏差 不为任何投资电子货币者提供意见
  • 阿里巴巴都害怕的区块链电商到底是什么?

    近日 区块链权威机构中国通信工业协会区块链专业委员会 CCIAPCB 发出倡议 联合各界将中共中央政治局10月24日集体学习区块链主席讲话日作为 区块链中国日 此次中央将区块链技术放在了国家战略层面高度上 让区块链一时间成了全民热点 特别是
  • 不要向全网放通你的ETH系列节点的rpc接口访问权限!!!

    北京时间 2021年 8月 27 日 20 点 50 分左右 区块高度 13107518 一个共识漏洞 利用了 geth v1 10 8 中修复的共识漏洞 袭击了以太坊主网 以太坊因遭到攻击而导致分叉 攻击的根本原因在于 Geth 旧版本在
  • 区块链的安全性与去中心化特点:深入探讨区块链技术的安全性和去中心化特点

    摘要 本文将深入探讨区块链技术的两个核心特点 安全性和去中心化 区块链作为一种分布式账本技术 通过其独特的安全性和去中心化特点 在许多领域引起了广泛关注 我们将分析区块链的安全性原理和其与去中心化的关系 以及区块链技术在保护数据安全和提供信
  • 区块链数据的存储和更新

    目录 1 引言 2 主要流程 2 1数据库读取 2 1 1 从数据库加载块数据 2 1 2从数据库读取账户信息 2 2 区块链数据更新与回滚 2 2 1 交易数据 2 2 2 块数据 1 引言 在第一篇文章里我们从静态的角度讲解了以太坊的数
  • Bridge Champ举办人机对战赛:NFT游戏与传统竞技共生发展编织新格局

    概要 现在 NFT与体育竞技正日益紧密地联系在一起 一些体育项目开始推出与赛事或球队相关的NFT 同时也有部分NFT游戏开始举办电子竞技赛事 这种共生发展正在改变体育竞技的生态 笔者采访了桥牌冠军项目相关负责人 探讨NFT游戏与传统体育竞技
  • 如何使用区块链技术保护个人隐私和数据安全

    区块链技术是一种分布式账本技术 它具有不可篡改 去中心化 透明度高等特点 区块链技术能够实现数据的可信存证 隐私保护和交易安全 并且能够通过智能合约的自动执行 因此被广泛应用于金融 电商 物流 社交网络等领域 区块链技术的核心是 分布式账本
  • 圆石说│彭一鸣:运用区块链技术赋能实体旅游产业;微软开放6万项专利包括一个开源区块链项目……

    智联招聘 区块链岗位需求主要集中在一线和新一线城市 智联招聘报告显示 从目前区块链职位的城市分布来看 该领域的岗位需求主要集中在一线和新一线城市中 其中 北京 上海和深圳位于第一梯队 职位占比分别达到24 20 和10 杭州 广州和成都紧随
  • "我为区块链赋能实体经济代言"第二批代言人:复旦大学张江研究院教授陈文君

    我为区块链赋能实体经济代言 推出以来 颇受行业关注 为进一步规范行业发展 落实区块链赋能实体经济的目标 为行业发展 正本清源而发声 新一轮的 我为区块链赋能实体经济代言 于9月3日重磅启动 我为区块链赋能实体经济代言100人第二批 第3位代
  • 密码学理论10:密钥管理和公钥革命

    加密密钥分发 对称密码 依赖于秘密密钥的安全分发 需要存储和管理大量密钥 在开放 公共系统中遇到严重问题 部分解决方案 密钥分发中心 KDC 某些服务器 密钥分发中心 KDC 将密钥 提供 给用户 它与每个用户共享一个秘密密钥 长期密钥 并
  • 区块链交易平台服务器该怎么选

    区块链交易平台服务器该怎么选 随着互联网技术的发展 区块链也发展成为一种潮流 越来越多的人加入到区块链行业中来 尤其是区块链交易平台 但也有很多人不了解区块链对服务器的要求 那么我们就要好好说说搭建区块链交易平台服务器该怎么选 1 区块链交
  • Cumulus Encrypted Storage System(CESS)激励测试网 v0.7.5 于11月29日正式上线

    Cumulus Encrypted Storage System CESS 是基于区块链的去中心化云存储网络和 CDN 网络 支持数据在线存储和实时共享 为 Web3 高频动态数据的存储和检索提供全栈解决方案 CESS 数据价值网络是以 D
  • Stellar Consensus Protocol(SCP)的共识算法

    Stellar Consensus Protocol SCP 是一种用于Stellar网络的共识算法 旨在确保网络中所有节点对账本的一致性 SCP的设计灵感来自于拜占庭将军问题 Byzantine Generals Problem 它采用了
  • NFTScan | 12.11~12.17 NFT 市场热点汇总

    欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总 周期 2023 12 11 2023 12 17 NFT Hot News 01 Pudgy Penguins 衍生 NFT Lil Pudgys 过去一天
  • 期权有杠杆吗?在哪里看期权有多少倍杠杠?

    期权有杠杆吗 在哪里看期权有多少倍杠杠 期权本身没有杠杆 期权合约自带杠杆 期权买方只需要缴纳较少的权利金就可以获得更高价值的标的资产波动所带来的收益 但是期权卖方不需要缴纳保证金 期权卖方需要付出保证金才可以建仓 这是因为期权卖方需要履行
  • 收单外包服务机构的评级工作已经开始了!

    评级收单外包服务机构的工作不仅是金融监管部门规范和引导收单外包服务市场的重要举措 也影响着外包机构的业务发展 并且是每年最重要的合规工作之一 中国支付清算协会于2023年12月18日发布了一份关于进行2023年度收单外包服务机构评级工作的通
  • 期权开户最低多少钱个人可以开?

    大家新年好 现在2024年龙年 很多想玩期权的小伙伴都知道期权开通需要50万的门槛 那么今天来给大家详细介绍下期权开户最低多少钱个人可以开 本文将对期权开户最低金额进行探讨 帮助投资者更好地了解期权交易的投资门槛 本文来自 期权酱 一 期权
  • 英国金融时报关注TRX登陆Mercado Bitcoin交易所:波场TRON强化南美洲布局,国际化进程持续加速

    近日 波场TRON网络原生代币TRX正式上线巴西最大的合规加密交易所Mercado Bitcoin 英国金融时报 Decrypt Blockworks等财经及加密行业权威媒体对该话题进行了报道 表示此次合作是波场TRON全球业务增长的有力证
  • 你的服务器还安全吗?用户数据是否面临泄露风险?

    一系列严重的网络安全事件引起了广泛关注 多家知名公司的服务器遭到黑客挟持 用户的个人数据和敏感信息面临泄露的风险 这些事件揭示了网络安全的脆弱性和黑客攻击的威胁性 提醒着企业和个人加强对网络安全的重视 一 入侵案例 1 1 蔚来数据泄露 1

随机推荐

  • java几种删除_几种删除Linux目录的方法

    在Linux中有很多方法可以删除目录 在图形化界面可以利用文件管理器 或者通过终端删除 本文将介绍在文本界面使用命令删除目录 使用rmdir删除目录 Rmdir命令间成 remove directory 用于删除空目录的命令 例如 删除一个
  • Spring Boot 整合 JSON - Jackson/Gson/FastJson

    学习 Spring Boot 整合 JSON Jackson Gson FastJson 1 Spring MVC 整合 JSON 先来回顾下在 Spring MVC 中如何整合 JSON Spring MVC 可以接收 JSON 参数 也
  • BeanUtils.copyProperties基本用法与小坑

    1 实际应用 BeanUtils copyProperties 赋值目标对象 模板源对象 我们都知道当有两个对象AB 属性名称一样的情况下 如果需要把A的全部属性给B 传统写法是 B setXX A getXX 如果只有几个特别的参数需要赋
  • 机器学习小窍门:Python 帮你进行特征选择

    转 https www leiphone com news 201807 3gGDmue2OXYZE0vQ html 特征选择 也就是从数据集中找出并选择最有用特征的过程 是机器学习工作流中一个非常重要的步骤 不必要的特征降低了训练速度 降
  • 第七篇 硬件内存资源的获取,解析

    硬件资源的获取 解析 1 生成WDF的KMDFhelloWorld程序 2 改写INF文件中硬件ID 3 编译安装 以上三点不重复介绍 下面直接关注更新 增加的代码 在DeviceADD例程中添加 首先是增加即插即用管理 应该对应于WDM的
  • 内外网切换BAT脚本

    1 切换内网脚本 BAT脚本设置IP 子网掩码 网关 DNS echo off cls color 0A Echo Echo 正在修改IP地址和DNS服务器地址 请耐心等待 Echo cmd c netsh interface ip set
  • AntDesign 自定义图片上传前端压缩画质

    为什么压缩图片 应为现在公司没有使用云数据库 从而为了减少服务器的消耗需要将用户上传的图片压缩 前端压缩图片的技术选择 查阅资料发现当下两种压缩的方法 第一种使用工具库实现 npm install image conversion save
  • EXT4.2.0 + common-fileipload1.3 + 大文件上传(可达到20G)

    待续
  • npm 设置淘宝镜像

    查看当前镜像源 npm config get registry 在国外 受网速的影响的影响比较大 https registry npmjs org 1 配置 npm 为淘宝镜像 npm config set registry https r
  • 寒假小复习1

    1 java标识符 1 由数字 字母 构成 其中数字不能放在开头 2 java的关键字不能用为标识符 3 没有长度限制 注意区分大小写 package demo public class Demo public static final d
  • Vue数组对象,数组中多个对象将colorName值相同的合并

    这里使用到了Object values xx reduce prev cur index 方法 首先这个数据源是长这样的 需要的效果是长这样 代码 skuSizeData 是数据源 skuSizePropData 是在此之前我将所有的尺码进
  • QT事件循环与线程

    初次读到这篇文章 译者感觉如沐春风 深刻体会到原文作者是花了很大功夫来写这篇文章的 文章深入浅出 相信仔细读完原文或下面译文的读者一定会有收获 由于原文很长 原文作者的行文思路是从事件循环逐渐延伸到线程使用的讨论 译者因时间受限 暂发表有关
  • RSA简介

    什么是RSA RSA算法是应用最广泛的公钥密码算法 1977年 RSA算法由MIT的罗纳德 李维斯特 Ron Rivest 阿迪 萨莫尔 Adi Shamir 和伦纳德 阿德曼 Leonard Adleman 共同设计 于1978年正式发布
  • ==和equals

    对比的是栈中的值 基本数据类型是变量值 引用类型是堆中内存对象的值 equals object中默认也是采用 进行比较 通常会重写 String已经重写了equals方法 如下实际上是比较两个字符串中每一个字符的内容 public bool
  • 【C语言进阶】从一组数字中,找出只出现过一次的两个数字

    题目描述 有一组数字 只有两个数字出现过一次 其余数字都出现过两次 请找出只出现过一次的数字 举例 数组 1 2 3 4 6 1 2 3 4 8 输出 6 8 思路 这种题目是一种特定类型 形式1 一组数字 只有一个数字出现过一次 其余数字
  • webstrom 断点调试,小白详细步骤篇

    网上找了很久都是七零八落的 要么就是不够通俗易懂故作此文章记录和分享 设置debug调试 编辑器右上角点编辑配置 点击 号选js调试 url填你项目运行的url和端口 以及用于调试的浏览器 添加断点和运行测试调试 这里打上断点 点击右上角d
  • 应用服务器巡检,服务器巡检-常规检查项

    服务器巡检 常规检查项 由会员分享 可在线阅读 更多相关 服务器巡检 常规检查项 3页珍藏版 请在人人文库网上搜索 1 服务器巡检项目经理需要定期对硬件 软件及数据库环境进行检查常规检查项如下 1 服务器部分 l 服务器前面板有无故障灯闪烁
  • 帆软可以不可以生成文件到服务器_番禺街坊注意!微信发送高清大文件不压缩,网友:QQ可以卸载了?...

    刚上新了表情包的微信 又双叒叕出新功能了 这次的功能有点实用 昨天 腾讯微信团队宣布 微信已支持向朋友发送高清视频和图片 且不会被压缩 微信用户点击对话框右下角的 号 右滑点击文件 在上方选择手机相册 就能选择用户想要发送的视频和图片了 目
  • 为什么mybatisplus这么好用,反而用的不多?

    对会用的人来说 mybatis plus的wrapper非常好用 不再需要去关注dao层了 但是这需要一定的学习成本 而且不太符合经典的三层架构思维 对一些老前辈来说完全是违反常识的 很别扭 对他们来说 dao层还是拿在自己手里更踏实 给第
  • 【区块链与密码学】第6-9讲:数字签名算法的可证明安全性

    本课堂内容全部选编自PlatON首席密码学家 武汉大学国家网络安全学院教授 博士生导师何德彪教授的 区块链与密码学 授课讲义 教材及互联网 版权归属其原作者所有 如有侵权请立即与我们联系 我们将及时处理 6 9数字签名算法的可证明安全性 可