公钥密码与数字签名

数字签名的基本流程:将文件通过Hash函数,生成摘要,对摘要签名,得到被签名的摘要+文件。

RSA签名方案:

初始化过程:配制一对RSA钥匙,公钥(n,e),私钥(n,d)

签名过程:S=Sigk(m)=(h(M))d (mod n)

(M是文件,h是单向散列函数,S是文件M的签名)

传输过程:M||S(文件M和签名一同传送)

验证过程:当SeΞh(M) (mod n)则验证成功,否则验证失败。

EIG签名方案:

初始化过程:选择大素数p和g<p(g是p的素根),选一整数x<p,(g,p,x)是私钥,

      计算y=gx(mod p),(g,p,y)作为公钥

签名过程:选择随机数k,满足0<k<p-1,(k,p-1)=1

     计算h(M),r=gk(mod p)

           s=(h(M)-xr)k-1mod(p-1)

传输过程:将(r||s)作为签名,将M||r||s 传送

验证过程:先计算h(M),yrrsΞgh(M)(mod p)则验证成功



如果一个文件需要两个人签名才能生效,怎么设计算法?

把RSA改成两方参与的算法:

1.独立选择大素数p和q,计算n=pXq,计算φ(n)=(p-1)(q-1)

2.选整数Ka,Kb,(1<=Ka,Kb<φ(n),φ(n)分别与Ka,Kb互素,在模φ(n)下,KaKb有唯一逆元e,eKaKb=1 mod (φ(n))

3.取公钥(n,e),私钥A(n,Ka),私钥B(n,Kb),销毁p,q

签名C=MKaKb (mod n)   验证M=Ce (mod n)

时间: 2024-11-08 13:34:22

公钥密码与数字签名的相关文章

密码学初级教程(五)数字签名 Digital Signature

密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 提问: 有了消息认证码为什么还要有数字签名? 因为消息认证码无法防止否认.消息认证码可以识别消息是否被篡改或者发送者身份是否被伪装.(消息认证码保证完整性.可以进行认证) 为什么消息认证码无法防止否认,数字签名就能够否认呢? 消息认证码中,能够计算出MAC值的密钥(共享密钥)是由发送者和接受者双方共同持有的,因此发送者和接受者中的任何一方都能够计算MAC值,发送者也就可以声称“这个MAC值

密码学初级教程(二)公钥密码RSA与单向散列函数与消息认证码

求离散对数非常困难 RSA是Ron Rivest/Adi Shamir/Leonard Adleman的姓氏首字母组成. RSA可以被用于公钥密码和数字签名. RSA加密:密文=明文EmodN(E和N为公钥) RSA解密:明文=密文DmodN(D和N为私钥) 对RSA的破解: 暴力破解:暴力破解的难度会随着D的长度增加而变大,当D足够长时,就不可能在现实的时间内通过暴力破解找出D. 混合密码系统:用对称密码提高速度,用公钥密码保护会话密钥 混合密码系统的组成机制: 用对称密码加密消息 通过伪随机

RSA公钥密码

一.RSA简述 RSA是公钥密码的一种代表算法,它可以被用于公钥密码和数字签名. 二.RSA加密 在RSA中,明文.私钥和密文都是数字.它的加密过程是这样的: 密文 = 明文 ^ E % N 也即是说,RSA的密文是对明文的数字的进行E次方计算,然后再进行求模得到的.这就是RSA的整个加密过程. 在这个式子中,E和N便是RSA加密的密钥,即是说,E和N的组合就是公钥,所以公钥可以表示为(E,N). 当然,E和N并非随便什么数都是可以的,这两个数是经过严密计算得到的. 三.RSA解密 RSA的解密

密码学初级教程(四)SSL/TLS-为了更安全的通信

SSL/TLS是世界上应用最广泛的密码通信方法.用到对称密码.消息认证码.公钥密码.数字签名.伪随机数生成器等密码技术. 密码套件 SSL/TLS提供了一种密码通信的框架,SSL/TLS中使用的对称密码.公钥密码.数字签名.单向散列函数等技术,如果发现所用的密码技术有弱点,可以将这一部分进行替换就行了. SSL(Secure Socket Layer,安全套接层) SSL是网景(Netscape)公司设计的一种协议.SSL3.0 TLS(Transport Layer Security,传输层安

深入理解密码技术

对称加密: DES DES是1977年美国联邦信息处理标准中使用的一种对称密码技术,曾今被美国和其他国家政府银行使用. 不过现在已被暴力破解,我们除了用它解密以前的密文外,已不再使用DES了.不过这里我们可以用它来了解下什么是对称加密. <!--more--> 加密和解密 DES是一种把64比特明文加密成64比特的密文的对称密码算法,密钥长度56位,其中每隔7比特有个错误检查比特.结果DES密钥总长度为64比特. 分组密码 DES以64比特明文为一个单位进行加密,这64比特单位称为分组.so,

[Node.js] 对称加密、公钥加密和RSA

原文地址:http://www.moye.me/2015/06/14/cryptography_rsa/ 引子 对于加解密,我一直处于一种知其然不知其所以然的状态,项目核心部分并不倚重加解密算法时,可以勉强对付过去,一旦需要频繁应用诸如 AES/RSA等算法,这种状态就颇令人捉急了. 是时候了解一下原理了,所以找来了这本图解密码技术 给自己补补课: 在该书深入浅出的指引下 ,补充了一些常识,在此进行一番梳理: 对称加密算法(共享密钥) 顾名思义,对称加密就是用相同的密钥进行加密和解密.说到对称加

HTTPS中的TLS

1. SSL 与 TLS SSL:(Secure Socket Layer) 安全套接层,于 1994 年由网景公司设计,并于 1995 年发布了 3.0 版本TLS:(Transport Layer Security)传输层安全性协议,是 IETF 在 SSL3.0 的基础上设计的协议以下全部使用 TLS 来表示 2. 从网络协议的角度理解 HTTPS HTTP:HyperText Transfer Protocol 超文本传输协议HTTPS:Hypertext Transfer Protoc

密码学之《数字签名》

周六要考密码学了,恰逢身体不舒服,没心情看数字什么的,来整理整理数字签名的一点儿知识点~简简单单的几行文字,看官笑看即可~ 什么是数字签名?有毛用? 数字签名主要用于对数字消息进行签名,以防消息的冒名伪造或篡改,也可以用作通信双方的身份鉴别. 为什么数字签名有这样那样的作用? 数字签名有这样几个特性: 1. 可信.任何人都可以验证签名的有效性 2. 不可伪造.除了合法的签名者,任何其他人伪造签名是困难的. 3. 不可复制.对一个消息的签名不能通过复制变成另一个消息的签名,若是复制得到,任何人都能

(一)数字签名基础知识

一.数字加密技术 1)         单钥密码体制/对称密码体制 指加密密钥和解密密钥为同一密钥的密码体制,因此通信双方必须共同持有该密钥. DES.AES是一种对称密码体制 2)         双钥密码体制/非对称密码体制/公开密钥密码体制 指加密密钥和解密密钥为两个不同密钥的密码体制:这两个密钥之间存在着互相依存关系,即其中任一个密钥加密的信息只能用另一个密钥进行解密. RSA.DSA是一种公钥密码体制. 3)         总结: 对称密码和公钥密码都需要保证密钥的安全,不同之处在于