现代密码学第八讲:数字签名

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1

数字签名

《现代密码学》第八讲

2

上章内容回顾

公钥密码体制的提出及分类

公钥密码体制的基本概念

单向陷门函数的概念

设计公钥加密算法--背包密码体制

RSA算法及攻击方法

ElGmal算法

椭圆曲线密码体制

3

本章主要内容

数字签名的基本概念

一般数字签名算法

Z RSA数字签名技术

Z 数字签名标准

Z 基于离散对数的数字签名

Z 椭圆曲线数字签名

4

数字签名的基本概念

手写签名与数字签名的区别

手写签名是一种传统的确认方式,如写信、签订协议、支付确认、批复文件等.

手写签名是所签文件的物理组成部分;数字信息没有固定的物理载体,如何使数字签名与所签文件捆绑在一起?

手写签名通过与标准签名比较或检查笔迹来验证,受验证人主观影响大;二进制数字信息无法用人眼辨识,但可以使用数学算法来验证数字签名,不受验证人主观影响。

手写签名不易复制;二进制数字信息,十分容易复制,所以必须防止数字签名重复使用。

5

数字签名和消息认证码的异同:

消息完整性验证、消息源认证.

消息认证的作用是保护通信双方以防第三方的攻击,然而却不能保护通信双方中的一方防止另一方的欺骗或伪造.

①B伪造一个消息并使用与A共享的密钥产生该消息的认证码,然后声称该消息来自于A.

②由于B有可能伪造A发来的消息,所以A就可以对自己发过的消息予以否认.

数字签名的基本概念

6

数字签名技术则可有效解决这一问题, 类似于手书签名,数字签名应具有以下性质:①能够验证签名产生者的身份,以及产生签名的日期和时间.

②能保证被签消息的内容的完整性.

③数字签名可由第三方公开验证,从而能够解决通信双方的上述争议.

数字签名在网络安全中提供数据完整性、数据源认证性、数据不可否认性等性质

数字签名的基本概念

7

所谓数字签名(Digital Signature ),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码,它是利用数学方法对该电子文档进行关键信息提取并与用户私有信息进行混合运算而形成的,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造.

8

1976,W Diffie 和M Hellman 在“New Directions in Cryptography ”, 首先提出了数字签名的思想并猜测存在这样的方案

1978,R Rivest, A Shamir, 和L Adleman 发明了RSA 算法可以用作数字签名算法.

1984, S Goldwasser, S Micali, 和R Rivest 首次粗略提出了数字签名算法的安全性要求. 2004,中国颁布电子签章法

9

一般签名算法包含

密钥生成(公钥/私钥)

消息签名S=Sig x (M)

用私钥对消息(消息摘要)进行签名运算 消息验证

用公钥验证消息的签名是否正确,输出“True ”或“False ”一般数字签名算法

()()()

,x x x True S Sig M Ver S M False S Sig M =⎧⎪=⎨≠⎪⎩

10数字签名的攻击:

惟密钥攻击:攻击者只有用户公开的密钥. 已知消息攻击:攻击者拥有一些消息的合法签名,但是消息不由他选择.

选择消息攻击:攻击者可以自由选择消息并获取消息的签名.

攻击结果:

完全破译:攻击者恢复出用户的密钥. 一致伪造:攻击者对于任意消息可以伪造其签名. 选择性伪造:攻击者可以对一个自己选取的消息伪造签名.

存在性伪造:攻击者可以生成一些消息的签名,但在伪造前对该消息一无所知.

数字签名的基本概念

11

①参数和密钥生成

选两个保密的大素数p 和q ,计算

n=p ×q ,φ(n)=(p-1)(q-1);

选一整数e ,满足1

gcd(φ(n),e)=1;

计算d ,满足d ·e ≡1 mod φ(n);

以{e,n}为公开钥, {d,n}为秘密密钥.

一般数字签名算法--RSA

12

②签名过程

设消息为m ,对其签名为

s ≡m d mod n

③验证过程

接收方在收到消息m 和签名s 后,验证

是否成立,若成立,则发送方的签名有效.

?mod e m s n

≡一般数字签名算法--RSA

13

加密算法和签名算法同用,攻击者可以方便解密一般攻击者是将某一信息作一下伪装( Blind),让拥有私钥的实体签署。然后,经过计算就可得到它所想要的信息。

解决方法:

不对自己一无所知的信息签名;

不对陌生人送来的随机文档签名;

签名时首先使用One-Way HashFunction 对文档作HASH 处理; 同时使用不同的签名算法。

14

假设Alice 用RSA 算法签署消息,其公私密钥对为(e,n ;d ).攻击如下:

Bob 选取消息(m1,m2),提交给签名预示,签名预示返回这两个消息的签名(s1,s2), 其中,

s1=m1d mod n; s2=m2d mod n.

Bob 可以伪造消息m1*m2的签名(s1*s2) mod n, 因为

s1 * s2=m1d * m2d mod n = s2=(m1 * m2)d mod n.

相关文档
最新文档