数字签名

概况

  • 2004年8月28日,胡主席签署了 中华人名共和国电子签名法,2005年4月1日起施行
  • 电子签名:是指数据电文中以电子形式所含,所附用于识别签名人身份并表明签名人认可的其中内容的数据

基本要求

  • 完整性:内容在经过数字签名之后未经更改或篡改
  • 不可伪造性:不能伪造他人的签名
  • 不可否认:能证明签署内容的来源,签名人不得否认自己曾经签名

数字签名技术

没有加密功能

数字签名通常采用公钥技术

  • 私钥签名

私钥自己拥有

  • 公钥验证

数字签名系统

  • 密钥生成算法
    • 生成公私钥对(公钥公开,私钥保密)
  • 签名算法
    • 签名者用自己的私钥进行运算
  • 签名验证算法
    • 验证者用(签名者的)公钥进行验证(由于公钥公开,任何人都可以验证)

RSA签名方案(简化版)

  1. 密钥生成算法 用户用RSA密钥生成算法,产生私钥d,公钥是e和n

  2. 签名算法

    用户(用自己的私钥d)对消息m签名进行签名
    r = m^d mod n
    (m,r)是带签名的消息
    
  3. 签名算法验证

    r^e mod n == m^d^e mod n
    

加密:公钥加密,私钥解密(接收者)

签名:私钥签名,公钥验证(签名者)

RSA签名方案(带hash)

  • 密钥生成算法
用户用RSA密钥生成算法,产生私钥d,公钥是e和n
  • 签名算法
用户(用自己的私钥d)对消息m签名进行签名
r = H(m)^d mod n
(H(m),r)是带签名的消息
  • 签名算法验证
r^e mod n == [H(m)^d mod n]^e mod n == H(m)^e^d mod n

ElGamal 加密

密钥生成算法

签名过程
用户随机选取k:1<=x<=p-1 (k保密),计算
r = g^k mod p ,s = (m-xr)*k^(-1) (mod p-1)

(r,s)为用户对m的签名,即(m,(r,s))为带签名的文件
验证过程
验证者收到签名(m,(r,s))后,验证等式是否成立
.....

Schnorr 数字签名算法

schnorr数字签名方式ElGamal的一种变形

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值