[密码学] 数字签名基础
文章目录
- 基础内容
- 数字签名的组成
- 密钥生成算法KeyGen
- 签名算法Sig
- 验证算法Vrfy
- RSA签名
- 密钥生成
- 签名
- 验证
- RSA签名攻击
- 攻击目的
- 攻击手段
- 唯密钥攻击下的存在性伪造
- 已知消息攻击下的存在性伪造
- 签名与hash函数
- ElGamal签名方案
- 密钥生成
- 签名
- 验证
- 伪造签名
- 注意
- Schnorr签名方案
- 密钥生成
- 签名
- 验证
- 参数长度
- DSA数字签名
- 密钥生成
- 签名
- 验证
- 参数选取
基础内容
数字签名的功能:
用以保障消息的认证性:
消息的完整性:消息在传输过程中未被修改
消息来源的真实性:消息由所声明的用户签署
数字签名与手工签名的区别:
手写签名:模拟的,因人而异,与真实签名比较进行验证,容易伪造他人手写签名。
数字签名:数字的,因消息而异,可公开验证,容易复制。
数字签名与消息认证码的区别
消息认证码:是一种对称加密,只有知道共享密钥的人才可以进行签名和认证。
数字签名:是一种公钥加密,只有私钥拥有者可以进行签名,而任何知道公钥的人都可以认证。
数字签名的组成
密钥生成算法KeyGen
签名算法Sig
验证算法Vrfy
RSA签名
密钥生成
签名
验证
RSA签名攻击
攻击目的
完全破解:破解签名密钥
选择性伪造
存在性伪造
攻击手段
唯密钥攻击:敌手只知道验证密钥(公钥)
已知消息攻击:敌手了解一些消息及其签名
选择消息攻击:敌手可以选择任意消息和其签名
唯密钥攻击下的存在性伪造
已知消息攻击下的存在性伪造
签名与hash函数
ElGamal签名方案
基于求解离散对数的困难性的非确定性数字签名方案
密钥生成
签名
验证
伪造签名
若没有hash函数,则会产生存在性伪造
方法一:
方法二:
注意
Schnorr签名方案
密钥生成
签名
验证
参数长度
DSA数字签名
在ElGamal签名的变形,并吸收了Schnorr方案的思想hash函数采用SHA-1
密钥生成
签名
验证
参数选取
[密码学] 数字签名基础相关推荐
- 密码学–数字签名Digital Signature五种分类
密码学–数字签名Digital Signature五种分类 基于数字签名用途的分类 基于数学难题的分类 基于密码体制的分类 基于数字签名安全性的分类 基于签名用户的个数分类 A. 基于数字签名用途的分 ...
- CTF密码学-编码基础知识点总结
CTF密码学-编码基础知识点总结 0x01 目录 常见编码: 1.ASCII编码 2.Base64/32/16编码 3.shellcode编码 4.Quoted-printable编码 5.XXenc ...
- 密码学相关基础二(非对称加密和数字签名篇)
之前对称加密相关基础可以浏览https://blog.csdn.net/qq_44754515/article/details/123577250 一.密钥 1.1.定义 密钥就是一个巨大的数字 密钥 ...
- [密码学] 公钥密码基础与RSA
文章目录 公钥密码学的基本观点 基本思想 公钥密码的核心 陷门单向函数 RSA加密算法 密钥生成 算法正确性 算法安全性 算法实现 相关模运算时间复杂度 解密算法提速 运用中国剩余定理(CRT) 实 ...
- 密码学---数字签名和认证协议---数字签名的基本概念
数字签名的基本概念 数字签名应该满足的条件 数字签名的产生方式 由加密算法产生 单钥加密 公钥加密 实例 总结 由签名算法产生 数字签名的执行方式 直接方式 具有仲裁的方式 实例 数字签名应该满足的条 ...
- 密码学---数字签名和认证协议---数字签名标准
数字签名标准 DSS的基本方式 RSA签名过程 DSS签名过程 数字签名算法DSA 全局公钥 用户私钥x 用户公钥y 用户为待签消息选取的秘密数k 签名过程 验证过程 数字签名标准(Digital S ...
- 密码学数论基础部分总结之 有限域GF(p) Galois Fields
今天花了一下午的时间学习密码学的数论部分,下面将学到的内容进行一下总结,也算是加深记忆.我本身对密码学这方面比较感兴趣,而且本节出现了许多数学公式,使用刚刚学习的LaTex公式来呈现出来,练习练习,何 ...
- 密码学编程基础——换位加密
换位加密原理: 换位加密就是将消息打乱,例如原文"Common sense is not so common."然后我们假如我们将密钥设置成8,然后从将原文的每个字母从1开始编号, ...
- 【考研—密码学数论基础】环、群、域、多项式运算
注:下述笔记根据 学习通公开课程<数学的思维方式与创新>,部分内容并非严谨数学定义,个人理解居多. 注2:第一遍学的时候理解得太片面了,面试被问到了才意识到理解得有问题,特此重新更正 Pr ...
最新文章
- 编写函数实现员工信息录入和输出_编写我的第一个Linux 内核模块“hello_module”...
- 求职,北京,.netGIS
- 新晋千元王者!红米Note 8系列发布:999元起,价格真香
- Vegas导入PSD格式文件(素材)的方法
- [PYTHON]一个简单的单元測试框架
- catia装配体怎么把零件旋转180度_工件180度翻转装置的设计
- 独立站开发优化问题?
- select ajax加载数据,ajax 执行成功后返回j页面加载 joson 数据(加载select数据)
- 7654:等差数列末项计算
- 1000瓶水里面有一瓶毒水,通过用兔子去喝水的方式检验,只能让兔子喝一次水,那么最少用多少只兔子检验出来是哪一瓶?
- wannier插值能带拟合4
- WSL Ubuntu 20.04 LTS 升级 22.04 LTS
- WeChat苹果多开系统官网下载页源码
- 双向绑定原理(个人理解)
- vue前端项目启动出错处理
- CMakeLists学习二、链接库搜索路径与ld
- 以外派的身份进大厂,或许条程序员升级的途径
- 西安交通大学药物分析专业学硕考研上岸经验分享
- 如何制作及链接静态链接库。
- 数据结构和算法(1)写的有些乱这个系列只是给自己看的
热门文章
- ubuntu19 安装git_如何在Ubuntu 20.04上安装Git
- 配件都包括什么_婚礼婚庆服务都包括什么
- 《浙江省推动数据中心能效提升行动方案(2021-2025年)》出炉
- 机房定期巡检报告报告,全面详实,可以参考
- python 面试题 博客园_python面试题
- sklearn之pipeline:pipeline的简介、使用技巧、案例应用之详细攻略
- 成功解决TypeError: Cannot cast array data from dtype('float64') to dtype('U32') according to the rule '
- docker 配置阿里云镜像加速
- Codeforces - 662A 思路巧妙的异或
- struts解决form提交的中文参数乱码问题